3.7.0 :rocket:
diff --git a/lib/constants.d.ts b/lib/constants.d.ts
index 58e0a9e..36a355a 100644
--- a/lib/constants.d.ts
+++ b/lib/constants.d.ts
@@ -17,6 +17,8 @@
     email?: string;
     /** The folder to deploy. */
     folder: string;
+    /** The auto generated folder path. */
+    folderPath?: string;
     /** GitHub deployment token. */
     gitHubToken?: string | null;
     /** Determines if the action is running in test mode or not. */
@@ -31,8 +33,6 @@
     repositoryName?: string;
     /** The fully qualified repositpory path, this gets auto generated if repositoryName is provided. */
     repositoryPath?: string;
-    /** The root directory where your project lives. */
-    root?: string;
     /** Wipes the commit history from the deployment branch in favor of a single commit. */
     singleCommit?: boolean | null;
     /** Determines if the action should run in silent mode or not. */
@@ -46,7 +46,28 @@
     /** The folder where your deployment project lives. */
     workspace: string;
 }
+/** The minimum required values to run the action as a node module. */
+export interface NodeActionInterface {
+    /** Deployment access token. */
+    accessToken?: string | null;
+    /** The branch that the action should deploy to. */
+    branch: string;
+    /** The folder to deploy. */
+    folder: string;
+    /** GitHub deployment token. */
+    gitHubToken?: string | null;
+    /** The repository path, for example JamesIves/github-pages-deploy-action. */
+    repositoryName: string;
+    /** Determines if the action should run in silent mode or not. */
+    silent: boolean;
+    /** Set to true if you're using an ssh client in your build step. */
+    ssh?: boolean | null;
+    /** The folder where your deployment project lives. */
+    workspace: string;
+}
 export declare const action: ActionInterface;
+/** Types for the required action parameters. */
+export declare type RequiredActionParameters = Pick<ActionInterface, 'accessToken' | 'gitHubToken' | 'ssh' | 'branch' | 'folder'>;
 /** Status codes for the action. */
 export declare enum Status {
     SUCCESS = "success",
diff --git a/lib/constants.js b/lib/constants.js
index 05e5110..5422832 100644
--- a/lib/constants.js
+++ b/lib/constants.js
@@ -63,7 +63,6 @@
         : repository && repository.full_name
             ? repository.full_name
             : process.env.GITHUB_REPOSITORY,
-    root: '.',
     singleCommit: !util_1.isNullOrUndefined(core_1.getInput('SINGLE_COMMIT'))
         ? core_1.getInput('SINGLE_COMMIT').toLowerCase() === 'true'
         : false,
diff --git a/lib/git.js b/lib/git.js
index 9ac52e1..8237030 100644
--- a/lib/git.js
+++ b/lib/git.js
@@ -23,7 +23,6 @@
 function init(action) {
     return __awaiter(this, void 0, void 0, function* () {
         try {
-            util_1.hasRequiredParameters(action);
             core_1.info(`Deploying using ${action.tokenType}… 🔑`);
             core_1.info('Configuring git…');
             yield execute_1.execute(`git init`, action.workspace, action.silent);
@@ -56,7 +55,6 @@
 function switchToBaseBranch(action) {
     return __awaiter(this, void 0, void 0, function* () {
         try {
-            util_1.hasRequiredParameters(action);
             yield execute_1.execute(`git checkout --progress --force ${action.baseBranch ? action.baseBranch : action.defaultBranch}`, action.workspace, action.silent);
         }
         catch (error) {
@@ -69,7 +67,6 @@
 function generateBranch(action) {
     return __awaiter(this, void 0, void 0, function* () {
         try {
-            util_1.hasRequiredParameters(action);
             core_1.info(`Creating the ${action.branch} branch…`);
             yield switchToBaseBranch(action);
             yield execute_1.execute(`git checkout --orphan ${action.branch}`, action.workspace, action.silent);
@@ -94,7 +91,6 @@
             .substr(2, 9)}`;
         core_1.info('Starting to commit changes…');
         try {
-            util_1.hasRequiredParameters(action);
             const commitMessage = !util_1.isNullOrUndefined(action.commitMessage)
                 ? action.commitMessage
                 : `Deploying to ${action.branch} from ${action.baseBranch} ${process.env.GITHUB_SHA ? `@ ${process.env.GITHUB_SHA}` : ''} 🚀`;
@@ -118,9 +114,6 @@
                 core_1.info(`Applying stashed workspace changes… ⬆️`);
                 try {
                     yield execute_1.execute(`git stash apply`, action.workspace, action.silent);
-                    if (action.isTest) {
-                        throw new Error();
-                    }
                 }
                 catch (_a) {
                     core_1.info('Unable to apply from stash, continuing…');
@@ -150,13 +143,15 @@
               Pushes all of the build files into the deployment directory.
               Allows the user to specify the root if '.' is provided.
               rsync is used to prevent file duplication. */
-            yield execute_1.execute(`rsync -q -av --checksum --progress ${action.folder}/. ${action.targetFolder
+            yield execute_1.execute(`rsync -q -av --checksum --progress ${action.folderPath}/. ${action.targetFolder
                 ? `${temporaryDeploymentDirectory}/${action.targetFolder}`
                 : temporaryDeploymentDirectory} ${action.clean
-                ? `--delete ${excludes} ${!fs_1.default.existsSync(`${action.folder}/CNAME`) ? '--exclude CNAME' : ''} ${!fs_1.default.existsSync(`${action.folder}/.nojekyll`)
+                ? `--delete ${excludes} ${!fs_1.default.existsSync(`${action.folderPath}/CNAME`)
+                    ? '--exclude CNAME'
+                    : ''} ${!fs_1.default.existsSync(`${action.folderPath}/.nojekyll`)
                     ? '--exclude .nojekyll'
                     : ''}`
-                : ''}  --exclude .ssh --exclude .git --exclude .github ${action.folder === action.root
+                : ''}  --exclude .ssh --exclude .git --exclude .github ${action.folderPath === action.workspace
                 ? `--exclude ${temporaryDeploymentDirectory}`
                 : ''}`, action.workspace, action.silent);
             const hasFilesToCommit = yield execute_1.execute(`git status --porcelain`, `${action.workspace}/${temporaryDeploymentDirectory}`, action.silent);
diff --git a/lib/lib.d.ts b/lib/lib.d.ts
index ed545d5..90d04d2 100644
--- a/lib/lib.d.ts
+++ b/lib/lib.d.ts
@@ -1,8 +1,6 @@
-import { ActionInterface } from './constants';
-import { deploy, generateBranch, init } from './git';
+import { ActionInterface, NodeActionInterface } from './constants';
 /** Initializes and runs the action.
  *
  * @param {object} configuration - The action configuration.
  */
-export default function run(configuration: ActionInterface): Promise<void>;
-export { init, deploy, generateBranch, ActionInterface };
+export default function run(configuration: ActionInterface | NodeActionInterface): Promise<void>;
diff --git a/lib/lib.js b/lib/lib.js
index 9ba68e8..2de5ff2 100644
--- a/lib/lib.js
+++ b/lib/lib.js
@@ -9,13 +9,9 @@
     });
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.generateBranch = exports.deploy = exports.init = void 0;
 const core_1 = require("@actions/core");
 const constants_1 = require("./constants");
 const git_1 = require("./git");
-Object.defineProperty(exports, "deploy", { enumerable: true, get: function () { return git_1.deploy; } });
-Object.defineProperty(exports, "generateBranch", { enumerable: true, get: function () { return git_1.generateBranch; } });
-Object.defineProperty(exports, "init", { enumerable: true, get: function () { return git_1.init; } });
 const util_1 = require("./util");
 /** Initializes and runs the action.
  *
@@ -29,14 +25,17 @@
     GitHub Pages Deploy Action 🚀
 
     🚀 Getting Started Guide: https://github.com/marketplace/actions/deploy-to-github-pages
-    ❓ FAQ/Wiki: https://github.com/JamesIves/github-pages-deploy-action/wiki
-    🔧 Support: https://github.com/JamesIves/github-pages-deploy-action/issues
-    ⭐ Contribute: https://github.com/JamesIves/github-pages-deploy-action/blob/dev/CONTRIBUTING.md
+    ❓ Discussions / Q&A: https://github.com/JamesIves/github-pages-deploy-action/discussions
+    🔧 Report a Bug: https://github.com/JamesIves/github-pages-deploy-action/issues
 
-    📣 Maintained by James Ives (https://jamesiv.es)`);
+    📣 Maintained by James Ives: https://jamesiv.es
+    💖 Support: https://github.com/sponsors/JamesIves`);
             core_1.info('Checking configuration and starting deployment… 🚦');
-            const settings = Object.assign(Object.assign({}, constants_1.action), configuration);
-            // Defines the repository paths and token types.
+            const settings = Object.assign({}, configuration);
+            // Defines the repository/folder paths and token types.
+            // Also verifies that the action has all of the required parameters.
+            settings.folderPath = util_1.generateFolderPath(settings);
+            util_1.checkParameters(settings);
             settings.repositoryPath = util_1.generateRepositoryPath(settings);
             settings.tokenType = util_1.generateTokenType(settings);
             yield git_1.init(settings);
diff --git a/lib/util.d.ts b/lib/util.d.ts
index b4e30ab..d110e8b 100644
--- a/lib/util.d.ts
+++ b/lib/util.d.ts
@@ -2,5 +2,6 @@
 export declare const isNullOrUndefined: (value: any) => boolean;
 export declare const generateTokenType: (action: ActionInterface) => string;
 export declare const generateRepositoryPath: (action: ActionInterface) => string;
-export declare const hasRequiredParameters: (action: ActionInterface) => void;
+export declare const generateFolderPath: (action: ActionInterface) => string;
+export declare const checkParameters: (action: ActionInterface) => void;
 export declare const suppressSensitiveInformation: (str: string, action: ActionInterface) => string;
diff --git a/lib/util.js b/lib/util.js
index 697f5d2..9d24472 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -1,7 +1,13 @@
 "use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.suppressSensitiveInformation = exports.hasRequiredParameters = exports.generateRepositoryPath = exports.generateTokenType = exports.isNullOrUndefined = void 0;
+exports.suppressSensitiveInformation = exports.checkParameters = exports.generateFolderPath = exports.generateRepositoryPath = exports.generateTokenType = exports.isNullOrUndefined = void 0;
+const fs_1 = require("fs");
+const path_1 = __importDefault(require("path"));
 const core_1 = require("@actions/core");
+/* Replaces all instances of a match in a string. */
 const replaceAll = (input, find, replace) => input.split(find).join(replace);
 /* Utility function that checks to see if a value is undefined or not. */
 exports.isNullOrUndefined = (value) => typeof value === 'undefined' || value === null || value === '';
@@ -17,23 +23,33 @@
 exports.generateRepositoryPath = (action) => action.ssh
     ? `git@github.com:${action.repositoryName}`
     : `https://${action.accessToken || `x-access-token:${action.gitHubToken}`}@github.com/${action.repositoryName}.git`;
+/* Genetate absolute folder path by the provided folder name */
+exports.generateFolderPath = (action) => {
+    const folderName = action['folder'];
+    return path_1.default.isAbsolute(folderName)
+        ? folderName
+        : folderName.startsWith('~')
+            ? folderName.replace('~', process.env.HOME)
+            : path_1.default.join(action.workspace, folderName);
+};
 /* Checks for the required tokens and formatting. Throws an error if any case is matched. */
-exports.hasRequiredParameters = (action) => {
-    if ((exports.isNullOrUndefined(action.accessToken) &&
-        exports.isNullOrUndefined(action.gitHubToken) &&
-        exports.isNullOrUndefined(action.ssh)) ||
-        exports.isNullOrUndefined(action.repositoryPath) ||
-        (action.accessToken && action.accessToken === '')) {
+const hasRequiredParameters = (action, params) => {
+    const nonNullParams = params.filter(param => !exports.isNullOrUndefined(action[param]));
+    return Boolean(nonNullParams.length);
+};
+/* Verifies the action has the required parameters to run, otherwise throw an error. */
+exports.checkParameters = (action) => {
+    if (!hasRequiredParameters(action, ['accessToken', 'gitHubToken', 'ssh'])) {
         throw new Error('No deployment token/method was provided. You must provide the action with either a Personal Access Token or the GitHub Token secret in order to deploy. If you wish to use an ssh deploy token then you must set SSH to true.');
     }
-    if (exports.isNullOrUndefined(action.branch)) {
+    if (!hasRequiredParameters(action, ['branch'])) {
         throw new Error('Branch is required.');
     }
-    if (!action.folder || exports.isNullOrUndefined(action.folder)) {
+    if (!hasRequiredParameters(action, ['folder'])) {
         throw new Error('You must provide the action with a folder to deploy.');
     }
-    if (action.folder.startsWith('/') || action.folder.startsWith('./')) {
-        throw new Error("Incorrectly formatted build folder. The deployment folder cannot be prefixed with '/' or './'. Instead reference the folder name directly.");
+    if (!fs_1.existsSync(action.folderPath)) {
+        throw new Error(`The directory you're trying to deploy named ${action.folderPath} doesn't exist. Please double check the path and any prerequisite build scripts and try again. ❗`);
     }
 };
 /* Suppresses sensitive information from being exposed in error messages. */
diff --git a/node_modules/.bin/eslint-github-init b/node_modules/.bin/eslint-github-init
deleted file mode 120000
index 5f657e9..0000000
--- a/node_modules/.bin/eslint-github-init
+++ /dev/null
@@ -1 +0,0 @@
-../eslint-plugin-github/bin/eslint-github-init.js
\ No newline at end of file
diff --git a/node_modules/.bin/eslint-unused-modules b/node_modules/.bin/eslint-unused-modules
deleted file mode 120000
index abc0e5d..0000000
--- a/node_modules/.bin/eslint-unused-modules
+++ /dev/null
@@ -1 +0,0 @@
-../eslint-plugin-github/bin/eslint-unused-modules.js
\ No newline at end of file
diff --git a/node_modules/.bin/flow-coverage b/node_modules/.bin/flow-coverage
deleted file mode 120000
index 05e9f7a..0000000
--- a/node_modules/.bin/flow-coverage
+++ /dev/null
@@ -1 +0,0 @@
-../eslint-plugin-github/bin/flow-coverage.js
\ No newline at end of file
diff --git a/node_modules/.bin/github-lint b/node_modules/.bin/github-lint
deleted file mode 120000
index 466698f..0000000
--- a/node_modules/.bin/github-lint
+++ /dev/null
@@ -1 +0,0 @@
-../eslint-plugin-github/bin/github-lint.js
\ No newline at end of file
diff --git a/node_modules/.bin/jsdoctypeparser b/node_modules/.bin/jsdoctypeparser
deleted file mode 120000
index 5b82c28..0000000
--- a/node_modules/.bin/jsdoctypeparser
+++ /dev/null
@@ -1 +0,0 @@
-../jsdoctypeparser/bin/jsdoctypeparser
\ No newline at end of file
diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify
deleted file mode 120000
index ed9009c..0000000
--- a/node_modules/.bin/loose-envify
+++ /dev/null
@@ -1 +0,0 @@
-../loose-envify/cli.js
\ No newline at end of file
diff --git a/node_modules/.bin/npm-check-github-package-requirements b/node_modules/.bin/npm-check-github-package-requirements
deleted file mode 120000
index fdeac3b..0000000
--- a/node_modules/.bin/npm-check-github-package-requirements
+++ /dev/null
@@ -1 +0,0 @@
-../eslint-plugin-github/bin/npm-check-github-package-requirements.js
\ No newline at end of file
diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf
index 7d23b3f..4cd49a4 120000
--- a/node_modules/.bin/rimraf
+++ b/node_modules/.bin/rimraf
@@ -1 +1 @@
-../flat-cache/node_modules/rimraf/bin.js
\ No newline at end of file
+../rimraf/bin.js
\ No newline at end of file
diff --git a/node_modules/@babel/core/node_modules/.bin/semver b/node_modules/@babel/core/node_modules/.bin/semver
index 317eb29..085f561 120000
--- a/node_modules/@babel/core/node_modules/.bin/semver
+++ b/node_modules/@babel/core/node_modules/.bin/semver
@@ -1 +1 @@
-../semver/bin/semver
\ No newline at end of file
+../../../../normalize-package-data/node_modules/semver/bin/semver
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/LICENSE b/node_modules/@babel/runtime-corejs3/LICENSE
deleted file mode 100644
index f31575e..0000000
--- a/node_modules/@babel/runtime-corejs3/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-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.
diff --git a/node_modules/@babel/runtime-corejs3/README.md b/node_modules/@babel/runtime-corejs3/README.md
deleted file mode 100644
index 78ce1b4..0000000
--- a/node_modules/@babel/runtime-corejs3/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# @babel/runtime-corejs3
-
-> babel's modular runtime helpers with core-js@3 polyfilling
-
-## Install
-
-Using npm:
-
-```sh
-npm install --save-dev @babel/runtime-corejs3
-```
-
-or using yarn:
-
-```sh
-yarn add @babel/runtime-corejs3 --dev
-```
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js b/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js
deleted file mode 100644
index 468393e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/array/from");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js b/node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js
deleted file mode 100644
index 974dfb4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/array/is-array");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/array/of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/array/of.js
deleted file mode 100644
index c3355a8..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/array/of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/array/of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/clear-immediate.js b/node_modules/@babel/runtime-corejs3/core-js-stable/clear-immediate.js
deleted file mode 100644
index f2e7116..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/clear-immediate.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/clear-immediate");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js b/node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js
deleted file mode 100644
index de1eb3f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/date/now");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js
deleted file mode 100644
index 7e53580..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/bind");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/code-point-at.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/code-point-at.js
deleted file mode 100644
index 4301cab..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/code-point-at.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/code-point-at");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js
deleted file mode 100644
index 3e9fe5d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/concat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/copy-within.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/copy-within.js
deleted file mode 100644
index 4c6b64c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/copy-within");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/ends-with.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/ends-with.js
deleted file mode 100644
index 8c87327..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/ends-with.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/ends-with");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js
deleted file mode 100644
index 536beb0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js
deleted file mode 100644
index b8caa69..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/every");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js
deleted file mode 100644
index ab4e00d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/fill");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js
deleted file mode 100644
index 82c3d4f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/filter");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js
deleted file mode 100644
index 54547e0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/find-index");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js
deleted file mode 100644
index a97795c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/find");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flags.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flags.js
deleted file mode 100644
index 126ca63..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flags.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/flags");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat-map.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat-map.js
deleted file mode 100644
index 5008ceb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat-map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/flat-map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat.js
deleted file mode 100644
index 9113bd4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/flat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js
deleted file mode 100644
index def7519..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/for-each");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js
deleted file mode 100644
index 6481029..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/includes");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js
deleted file mode 100644
index 349cbb2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/index-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js
deleted file mode 100644
index e418fa7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js
deleted file mode 100644
index 0493997..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/last-index-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js
deleted file mode 100644
index 823c96d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-end.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-end.js
deleted file mode 100644
index 4643368..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-end.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/pad-end");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-start.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-start.js
deleted file mode 100644
index 0fc1290..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/pad-start.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/pad-start");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce-right.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce-right.js
deleted file mode 100644
index 05939ae..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/reduce-right");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js
deleted file mode 100644
index 6b268bf..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/reduce");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/repeat.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/repeat.js
deleted file mode 100644
index cf6db61..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/repeat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/repeat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js
deleted file mode 100644
index 665219c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/reverse");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js
deleted file mode 100644
index 237e11d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/slice");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js
deleted file mode 100644
index 1d9c925..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/some");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js
deleted file mode 100644
index 43c83a8..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/sort");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js
deleted file mode 100644
index 70794ea..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/splice");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js
deleted file mode 100644
index 5898867..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/starts-with");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-end.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-end.js
deleted file mode 100644
index 3684244..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-end.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/trim-end");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-left.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-left.js
deleted file mode 100644
index 9b63733..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-left.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/trim-left");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-right.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-right.js
deleted file mode 100644
index 4680046..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-right.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/trim-right");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-start.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-start.js
deleted file mode 100644
index c964460..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim-start.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/trim-start");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js
deleted file mode 100644
index fa394d7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/trim");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js b/node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js
deleted file mode 100644
index 17def65..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/instance/values");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js b/node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js
deleted file mode 100644
index 16028c0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/json/stringify");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/map.js b/node_modules/@babel/runtime-corejs3/core-js-stable/map.js
deleted file mode 100644
index 007829f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/acosh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/acosh.js
deleted file mode 100644
index 9ad4163..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/acosh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/acosh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/asinh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/asinh.js
deleted file mode 100644
index 3cfde2b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/asinh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/asinh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/atanh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/atanh.js
deleted file mode 100644
index 4fb7f70..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/atanh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/atanh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/cbrt.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/cbrt.js
deleted file mode 100644
index ea8b8bb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/cbrt.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/cbrt");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/clz32.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/clz32.js
deleted file mode 100644
index b407eea..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/clz32.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/clz32");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/cosh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/cosh.js
deleted file mode 100644
index 1fb429e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/cosh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/cosh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/expm1.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/expm1.js
deleted file mode 100644
index 7263979..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/expm1.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/expm1");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/fround.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/fround.js
deleted file mode 100644
index 3cc97d0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/fround.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/fround");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/hypot.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/hypot.js
deleted file mode 100644
index 3ce6bd5..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/hypot.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/hypot");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/imul.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/imul.js
deleted file mode 100644
index 5a34abd..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/imul.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/imul");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log10.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/log10.js
deleted file mode 100644
index f2879dc..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log10.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/log10");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log1p.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/log1p.js
deleted file mode 100644
index 3a0247d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log1p.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/log1p");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log2.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/log2.js
deleted file mode 100644
index 908d2f6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/log2.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/log2");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/sign.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/sign.js
deleted file mode 100644
index 9e8d539..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/sign.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/sign");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/sinh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/sinh.js
deleted file mode 100644
index 5cc1b55..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/sinh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/sinh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/tanh.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/tanh.js
deleted file mode 100644
index f3859e7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/tanh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/tanh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/math/trunc.js b/node_modules/@babel/runtime-corejs3/core-js-stable/math/trunc.js
deleted file mode 100644
index 93bbcff..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/math/trunc.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/math/trunc");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/epsilon.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/epsilon.js
deleted file mode 100644
index dfb1c3b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/epsilon.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/epsilon");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-finite.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-finite.js
deleted file mode 100644
index d65bd35..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-finite.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/is-finite");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-integer.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-integer.js
deleted file mode 100644
index fc11947..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/is-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-nan.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-nan.js
deleted file mode 100644
index a9939a4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-nan.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/is-nan");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-safe-integer.js
deleted file mode 100644
index a333254..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/is-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/max-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/max-safe-integer.js
deleted file mode 100644
index 855bd4c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/max-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/max-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/min-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/min-safe-integer.js
deleted file mode 100644
index b242906..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/min-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/min-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-float.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-float.js
deleted file mode 100644
index 9d2c7c4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-float.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/parse-float");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-int.js b/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-int.js
deleted file mode 100644
index 54120af..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/number/parse-int.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/number/parse-int");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js
deleted file mode 100644
index 5e3e128..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/assign");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js
deleted file mode 100644
index b0d00d3..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/create");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js
deleted file mode 100644
index 60d7637..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/define-properties");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js
deleted file mode 100644
index bdf30c6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/define-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js
deleted file mode 100644
index 0b0b76c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/freeze.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/freeze.js
deleted file mode 100644
index abbc7d6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/freeze.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/freeze");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/from-entries.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/from-entries.js
deleted file mode 100644
index 01164ef..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/from-entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/from-entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js
deleted file mode 100644
index c2ed98b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/get-own-property-descriptor");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js
deleted file mode 100644
index 8f0fc95..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/get-own-property-descriptors");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-names.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-names.js
deleted file mode 100644
index 0807d5d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-names.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/get-own-property-names");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js
deleted file mode 100644
index bf45955..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/get-own-property-symbols");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-prototype-of.js
deleted file mode 100644
index f22b095..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/get-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-extensible.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-extensible.js
deleted file mode 100644
index 2cafb77..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-extensible.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/is-extensible");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-frozen.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-frozen.js
deleted file mode 100644
index 8067ae7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-frozen.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/is-frozen");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-sealed.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-sealed.js
deleted file mode 100644
index fb94859..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is-sealed.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/is-sealed");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/is.js
deleted file mode 100644
index 056f817..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/is.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/is");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js
deleted file mode 100644
index 40bccaf..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/prevent-extensions.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/prevent-extensions.js
deleted file mode 100644
index ae6d21d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/prevent-extensions.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/prevent-extensions");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/seal.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/seal.js
deleted file mode 100644
index faa2d34..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/seal.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/seal");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/set-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/set-prototype-of.js
deleted file mode 100644
index 28a8b6a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/set-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/set-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/object/values.js b/node_modules/@babel/runtime-corejs3/core-js-stable/object/values.js
deleted file mode 100644
index 3ccfa47..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/object/values.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/object/values");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js b/node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js
deleted file mode 100644
index 994dc6a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/parse-float");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js b/node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js
deleted file mode 100644
index c9d10ed..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/parse-int");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/promise.js b/node_modules/@babel/runtime-corejs3/core-js-stable/promise.js
deleted file mode 100644
index 32f1fab..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/promise.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/promise");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/queue-microtask.js b/node_modules/@babel/runtime-corejs3/core-js-stable/queue-microtask.js
deleted file mode 100644
index 743d81b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/queue-microtask.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/queue-microtask");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/apply.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/apply.js
deleted file mode 100644
index 3ef9afb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/apply.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/apply");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/construct.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/construct.js
deleted file mode 100644
index 24d1ac3..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/construct.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/construct");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/define-property.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/define-property.js
deleted file mode 100644
index 92a1f7a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/define-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/define-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/delete-property.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/delete-property.js
deleted file mode 100644
index 21bb710..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/delete-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/delete-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-own-property-descriptor.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-own-property-descriptor.js
deleted file mode 100644
index def452d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/get-own-property-descriptor");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of.js
deleted file mode 100644
index 0219996..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/get-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get.js
deleted file mode 100644
index c4c91de..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/get");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/has.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/has.js
deleted file mode 100644
index 66082e9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/has.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/has");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/is-extensible.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/is-extensible.js
deleted file mode 100644
index 93446d0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/is-extensible.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/is-extensible");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/own-keys.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/own-keys.js
deleted file mode 100644
index 443b23b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/own-keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/own-keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/prevent-extensions.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/prevent-extensions.js
deleted file mode 100644
index 77c69d9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/prevent-extensions.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/prevent-extensions");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set-prototype-of.js
deleted file mode 100644
index bb0cdff..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/set-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set.js b/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set.js
deleted file mode 100644
index 857bdc9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/reflect/set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/set-immediate.js b/node_modules/@babel/runtime-corejs3/core-js-stable/set-immediate.js
deleted file mode 100644
index f941542..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/set-immediate.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/set-immediate");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/set-interval.js b/node_modules/@babel/runtime-corejs3/core-js-stable/set-interval.js
deleted file mode 100644
index 0e41ff5..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/set-interval.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/set-interval");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js b/node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js
deleted file mode 100644
index 401edca..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/set-timeout");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/set.js b/node_modules/@babel/runtime-corejs3/core-js-stable/set.js
deleted file mode 100644
index 21ef670..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/string/from-code-point.js b/node_modules/@babel/runtime-corejs3/core-js-stable/string/from-code-point.js
deleted file mode 100644
index f1d0c10..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/string/from-code-point.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/string/from-code-point");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/string/raw.js b/node_modules/@babel/runtime-corejs3/core-js-stable/string/raw.js
deleted file mode 100644
index 894439a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/string/raw.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/string/raw");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js
deleted file mode 100644
index 060d2c8..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/async-iterator.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/async-iterator.js
deleted file mode 100644
index 2794af4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/async-iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/async-iterator");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/for.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/for.js
deleted file mode 100644
index e7cbdb2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/for.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/for");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/has-instance.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/has-instance.js
deleted file mode 100644
index e12df6e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/has-instance.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/has-instance");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/is-concat-spreadable.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/is-concat-spreadable.js
deleted file mode 100644
index c82b4aa..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/is-concat-spreadable");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/iterator.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/iterator.js
deleted file mode 100644
index a1fbb82..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/iterator");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/key-for.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/key-for.js
deleted file mode 100644
index 9a061e1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/key-for.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/key-for");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/match.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/match.js
deleted file mode 100644
index 8491342..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/match.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/match");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/replace.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/replace.js
deleted file mode 100644
index 1e00079..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/replace.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/replace");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/search.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/search.js
deleted file mode 100644
index 439812c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/search.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/search");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/species.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/species.js
deleted file mode 100644
index 5aa5fac..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/species.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/species");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/split.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/split.js
deleted file mode 100644
index 3d19398..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/split.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/split");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-primitive.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-primitive.js
deleted file mode 100644
index 2751de4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-primitive.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/to-primitive");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-string-tag.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-string-tag.js
deleted file mode 100644
index 6132896..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/to-string-tag.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/to-string-tag");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/unscopables.js b/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/unscopables.js
deleted file mode 100644
index b84e75e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/symbol/unscopables");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/url-search-params.js b/node_modules/@babel/runtime-corejs3/core-js-stable/url-search-params.js
deleted file mode 100644
index 4147a64..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/url-search-params.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/url-search-params");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/url.js b/node_modules/@babel/runtime-corejs3/core-js-stable/url.js
deleted file mode 100644
index 8d302fc..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/url.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/url");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/weak-map.js b/node_modules/@babel/runtime-corejs3/core-js-stable/weak-map.js
deleted file mode 100644
index d6715bb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/weak-map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/weak-map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js-stable/weak-set.js b/node_modules/@babel/runtime-corejs3/core-js-stable/weak-set.js
deleted file mode 100644
index d73724c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js-stable/weak-set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/stable/weak-set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/aggregate-error.js b/node_modules/@babel/runtime-corejs3/core-js/aggregate-error.js
deleted file mode 100644
index 8adca0a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/aggregate-error.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/aggregate-error");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/array/from.js b/node_modules/@babel/runtime-corejs3/core-js/array/from.js
deleted file mode 100644
index cfba3a9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/array/from.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/array/from");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/array/is-array.js b/node_modules/@babel/runtime-corejs3/core-js/array/is-array.js
deleted file mode 100644
index b1d8071..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/array/is-array.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/array/is-array");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/array/of.js b/node_modules/@babel/runtime-corejs3/core-js/array/of.js
deleted file mode 100644
index fb8b393..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/array/of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/array/of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/clear-immediate.js b/node_modules/@babel/runtime-corejs3/core-js/clear-immediate.js
deleted file mode 100644
index a7db03b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/clear-immediate.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/clear-immediate");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/composite-key.js b/node_modules/@babel/runtime-corejs3/core-js/composite-key.js
deleted file mode 100644
index 13af38a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/composite-key.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/composite-key");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/composite-symbol.js b/node_modules/@babel/runtime-corejs3/core-js/composite-symbol.js
deleted file mode 100644
index 1e1d420..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/composite-symbol.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/composite-symbol");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/date/now.js b/node_modules/@babel/runtime-corejs3/core-js/date/now.js
deleted file mode 100644
index 65e4acd..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/date/now.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/date/now");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js b/node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js
deleted file mode 100644
index 16a1cfe..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/get-iterator-method");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/get-iterator.js b/node_modules/@babel/runtime-corejs3/core-js/get-iterator.js
deleted file mode 100644
index efb412e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/get-iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/get-iterator");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/global-this.js b/node_modules/@babel/runtime-corejs3/core-js/global-this.js
deleted file mode 100644
index 37f697a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/global-this.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/global-this");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/at.js b/node_modules/@babel/runtime-corejs3/core-js/instance/at.js
deleted file mode 100644
index b997e2a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/at.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/at");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/bind.js b/node_modules/@babel/runtime-corejs3/core-js/instance/bind.js
deleted file mode 100644
index c22c3ac..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/bind.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/bind");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/code-point-at.js b/node_modules/@babel/runtime-corejs3/core-js/instance/code-point-at.js
deleted file mode 100644
index 9662545..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/code-point-at.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/code-point-at");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/code-points.js b/node_modules/@babel/runtime-corejs3/core-js/instance/code-points.js
deleted file mode 100644
index c356dc2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/code-points.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/code-points");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/concat.js b/node_modules/@babel/runtime-corejs3/core-js/instance/concat.js
deleted file mode 100644
index 9c78c5b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/concat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/concat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/copy-within.js b/node_modules/@babel/runtime-corejs3/core-js/instance/copy-within.js
deleted file mode 100644
index f3be320..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/copy-within");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/ends-with.js b/node_modules/@babel/runtime-corejs3/core-js/instance/ends-with.js
deleted file mode 100644
index 98cf0cc..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/ends-with.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/ends-with");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/entries.js b/node_modules/@babel/runtime-corejs3/core-js/instance/entries.js
deleted file mode 100644
index 32864e2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/every.js b/node_modules/@babel/runtime-corejs3/core-js/instance/every.js
deleted file mode 100644
index 4663214..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/every.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/every");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/fill.js b/node_modules/@babel/runtime-corejs3/core-js/instance/fill.js
deleted file mode 100644
index 69eba3d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/fill.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/fill");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/filter.js b/node_modules/@babel/runtime-corejs3/core-js/instance/filter.js
deleted file mode 100644
index e147151..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/filter.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/filter");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/find-index.js b/node_modules/@babel/runtime-corejs3/core-js/instance/find-index.js
deleted file mode 100644
index fccbd05..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/find-index");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/find.js b/node_modules/@babel/runtime-corejs3/core-js/instance/find.js
deleted file mode 100644
index ae62982..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/find.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/find");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/flags.js b/node_modules/@babel/runtime-corejs3/core-js/instance/flags.js
deleted file mode 100644
index 984243e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/flags.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/flags");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/flat-map.js b/node_modules/@babel/runtime-corejs3/core-js/instance/flat-map.js
deleted file mode 100644
index 8bc910d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/flat-map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/flat-map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/flat.js b/node_modules/@babel/runtime-corejs3/core-js/instance/flat.js
deleted file mode 100644
index 71143f9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/flat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/flat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js b/node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js
deleted file mode 100644
index 520c6ea..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/for-each");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/includes.js b/node_modules/@babel/runtime-corejs3/core-js/instance/includes.js
deleted file mode 100644
index 4a8a5bd..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/includes.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/includes");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/index-of.js b/node_modules/@babel/runtime-corejs3/core-js/instance/index-of.js
deleted file mode 100644
index 68a1200..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/index-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/keys.js b/node_modules/@babel/runtime-corejs3/core-js/instance/keys.js
deleted file mode 100644
index 704da3f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/last-index-of.js b/node_modules/@babel/runtime-corejs3/core-js/instance/last-index-of.js
deleted file mode 100644
index 1552e76..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/last-index-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/map.js b/node_modules/@babel/runtime-corejs3/core-js/instance/map.js
deleted file mode 100644
index f7cc5e0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/match-all.js b/node_modules/@babel/runtime-corejs3/core-js/instance/match-all.js
deleted file mode 100644
index d69fb2f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/match-all.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/match-all");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/pad-end.js b/node_modules/@babel/runtime-corejs3/core-js/instance/pad-end.js
deleted file mode 100644
index d2ea8bb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/pad-end.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/pad-end");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/pad-start.js b/node_modules/@babel/runtime-corejs3/core-js/instance/pad-start.js
deleted file mode 100644
index 8ad02c0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/pad-start.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/pad-start");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/reduce-right.js b/node_modules/@babel/runtime-corejs3/core-js/instance/reduce-right.js
deleted file mode 100644
index 8d15c13..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/reduce-right");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/reduce.js b/node_modules/@babel/runtime-corejs3/core-js/instance/reduce.js
deleted file mode 100644
index 86e5ba6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/reduce");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/repeat.js b/node_modules/@babel/runtime-corejs3/core-js/instance/repeat.js
deleted file mode 100644
index 9671960..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/repeat.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/repeat");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js b/node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js
deleted file mode 100644
index 61aae15..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/replace-all");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js b/node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js
deleted file mode 100644
index 93d6f41..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/reverse");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/slice.js b/node_modules/@babel/runtime-corejs3/core-js/instance/slice.js
deleted file mode 100644
index b09f830..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/slice");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/some.js b/node_modules/@babel/runtime-corejs3/core-js/instance/some.js
deleted file mode 100644
index 2492d93..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/some.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/some");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/sort.js b/node_modules/@babel/runtime-corejs3/core-js/instance/sort.js
deleted file mode 100644
index b2446c8..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/sort.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/sort");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/splice.js b/node_modules/@babel/runtime-corejs3/core-js/instance/splice.js
deleted file mode 100644
index a11dd12..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/splice.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/splice");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/starts-with.js b/node_modules/@babel/runtime-corejs3/core-js/instance/starts-with.js
deleted file mode 100644
index 207e095..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/starts-with.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/starts-with");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-end.js b/node_modules/@babel/runtime-corejs3/core-js/instance/trim-end.js
deleted file mode 100644
index 0168e67..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-end.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/trim-end");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-left.js b/node_modules/@babel/runtime-corejs3/core-js/instance/trim-left.js
deleted file mode 100644
index 08c5ddb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-left.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/trim-left");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-right.js b/node_modules/@babel/runtime-corejs3/core-js/instance/trim-right.js
deleted file mode 100644
index db70121..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-right.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/trim-right");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-start.js b/node_modules/@babel/runtime-corejs3/core-js/instance/trim-start.js
deleted file mode 100644
index 9bd4e4a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/trim-start.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/trim-start");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/trim.js b/node_modules/@babel/runtime-corejs3/core-js/instance/trim.js
deleted file mode 100644
index 3fc0269..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/trim.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/trim");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/instance/values.js b/node_modules/@babel/runtime-corejs3/core-js/instance/values.js
deleted file mode 100644
index 9a8607d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/instance/values.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/instance/values");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/is-iterable.js b/node_modules/@babel/runtime-corejs3/core-js/is-iterable.js
deleted file mode 100644
index b2323fe..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/is-iterable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/is-iterable");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/json/stringify.js b/node_modules/@babel/runtime-corejs3/core-js/json/stringify.js
deleted file mode 100644
index 4f20a95..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/json/stringify.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/json/stringify");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/map.js b/node_modules/@babel/runtime-corejs3/core-js/map.js
deleted file mode 100644
index 9dc3dd1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/acosh.js b/node_modules/@babel/runtime-corejs3/core-js/math/acosh.js
deleted file mode 100644
index 630dfa3..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/acosh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/acosh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/asinh.js b/node_modules/@babel/runtime-corejs3/core-js/math/asinh.js
deleted file mode 100644
index 58c55cd..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/asinh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/asinh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/atanh.js b/node_modules/@babel/runtime-corejs3/core-js/math/atanh.js
deleted file mode 100644
index 1f85a68..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/atanh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/atanh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/cbrt.js b/node_modules/@babel/runtime-corejs3/core-js/math/cbrt.js
deleted file mode 100644
index bcdfa5c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/cbrt.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/cbrt");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/clamp.js b/node_modules/@babel/runtime-corejs3/core-js/math/clamp.js
deleted file mode 100644
index 6517db9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/clamp.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/clamp");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/clz32.js b/node_modules/@babel/runtime-corejs3/core-js/math/clz32.js
deleted file mode 100644
index 39fc6a2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/clz32.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/clz32");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/cosh.js b/node_modules/@babel/runtime-corejs3/core-js/math/cosh.js
deleted file mode 100644
index 0471ef5..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/cosh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/cosh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/deg-per-rad.js b/node_modules/@babel/runtime-corejs3/core-js/math/deg-per-rad.js
deleted file mode 100644
index bb1717b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/deg-per-rad.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/deg-per-rad");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/degrees.js b/node_modules/@babel/runtime-corejs3/core-js/math/degrees.js
deleted file mode 100644
index 56ee32a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/degrees.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/degrees");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/expm1.js b/node_modules/@babel/runtime-corejs3/core-js/math/expm1.js
deleted file mode 100644
index 3dda5cf..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/expm1.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/expm1");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/fround.js b/node_modules/@babel/runtime-corejs3/core-js/math/fround.js
deleted file mode 100644
index 2e7bb79..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/fround.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/fround");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/fscale.js b/node_modules/@babel/runtime-corejs3/core-js/math/fscale.js
deleted file mode 100644
index 6e4deff..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/fscale.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/fscale");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/hypot.js b/node_modules/@babel/runtime-corejs3/core-js/math/hypot.js
deleted file mode 100644
index 1eb1f88..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/hypot.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/hypot");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/iaddh.js b/node_modules/@babel/runtime-corejs3/core-js/math/iaddh.js
deleted file mode 100644
index ae8cb2b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/iaddh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/iaddh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/imul.js b/node_modules/@babel/runtime-corejs3/core-js/math/imul.js
deleted file mode 100644
index c0577a7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/imul.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/imul");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/imulh.js b/node_modules/@babel/runtime-corejs3/core-js/math/imulh.js
deleted file mode 100644
index ae2226a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/imulh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/imulh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/isubh.js b/node_modules/@babel/runtime-corejs3/core-js/math/isubh.js
deleted file mode 100644
index 7f5f30b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/isubh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/isubh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/log10.js b/node_modules/@babel/runtime-corejs3/core-js/math/log10.js
deleted file mode 100644
index d9aaf59..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/log10.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/log10");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/log1p.js b/node_modules/@babel/runtime-corejs3/core-js/math/log1p.js
deleted file mode 100644
index 19be200..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/log1p.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/log1p");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/log2.js b/node_modules/@babel/runtime-corejs3/core-js/math/log2.js
deleted file mode 100644
index b23be53..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/log2.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/log2");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/rad-per-deg.js b/node_modules/@babel/runtime-corejs3/core-js/math/rad-per-deg.js
deleted file mode 100644
index f702240..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/rad-per-deg.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/rad-per-deg");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/radians.js b/node_modules/@babel/runtime-corejs3/core-js/math/radians.js
deleted file mode 100644
index e81c8e0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/radians.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/radians");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/scale.js b/node_modules/@babel/runtime-corejs3/core-js/math/scale.js
deleted file mode 100644
index 997a9e8..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/scale.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/scale");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/seeded-prng.js b/node_modules/@babel/runtime-corejs3/core-js/math/seeded-prng.js
deleted file mode 100644
index 0ee49f6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/seeded-prng.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/seeded-prng");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/sign.js b/node_modules/@babel/runtime-corejs3/core-js/math/sign.js
deleted file mode 100644
index a077429..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/sign.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/sign");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/signbit.js b/node_modules/@babel/runtime-corejs3/core-js/math/signbit.js
deleted file mode 100644
index fe0d3bf..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/signbit.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/signbit");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/sinh.js b/node_modules/@babel/runtime-corejs3/core-js/math/sinh.js
deleted file mode 100644
index 5d04b70..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/sinh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/sinh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/tanh.js b/node_modules/@babel/runtime-corejs3/core-js/math/tanh.js
deleted file mode 100644
index ac400f4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/tanh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/tanh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/trunc.js b/node_modules/@babel/runtime-corejs3/core-js/math/trunc.js
deleted file mode 100644
index cdeb996..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/trunc.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/trunc");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/math/umulh.js b/node_modules/@babel/runtime-corejs3/core-js/math/umulh.js
deleted file mode 100644
index af11f0b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/math/umulh.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/math/umulh");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/epsilon.js b/node_modules/@babel/runtime-corejs3/core-js/number/epsilon.js
deleted file mode 100644
index 994cd88..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/epsilon.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/epsilon");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/from-string.js b/node_modules/@babel/runtime-corejs3/core-js/number/from-string.js
deleted file mode 100644
index d81c011..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/from-string.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/from-string");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/is-finite.js b/node_modules/@babel/runtime-corejs3/core-js/number/is-finite.js
deleted file mode 100644
index 3de1455..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/is-finite.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/is-finite");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/is-integer.js b/node_modules/@babel/runtime-corejs3/core-js/number/is-integer.js
deleted file mode 100644
index 4023e4e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/is-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/is-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/is-nan.js b/node_modules/@babel/runtime-corejs3/core-js/number/is-nan.js
deleted file mode 100644
index 7a38bc3..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/is-nan.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/is-nan");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/is-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js/number/is-safe-integer.js
deleted file mode 100644
index 35dd12b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/is-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/is-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/max-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js/number/max-safe-integer.js
deleted file mode 100644
index 351d645..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/max-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/max-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/min-safe-integer.js b/node_modules/@babel/runtime-corejs3/core-js/number/min-safe-integer.js
deleted file mode 100644
index e2c6f22..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/min-safe-integer.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/min-safe-integer");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/parse-float.js b/node_modules/@babel/runtime-corejs3/core-js/number/parse-float.js
deleted file mode 100644
index c468d11..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/parse-float.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/parse-float");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/number/parse-int.js b/node_modules/@babel/runtime-corejs3/core-js/number/parse-int.js
deleted file mode 100644
index e694ff0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/number/parse-int.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/number/parse-int");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/assign.js b/node_modules/@babel/runtime-corejs3/core-js/object/assign.js
deleted file mode 100644
index 6c9b32f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/assign.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/assign");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/create.js b/node_modules/@babel/runtime-corejs3/core-js/object/create.js
deleted file mode 100644
index 582da6e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/create.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/create");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/define-properties.js b/node_modules/@babel/runtime-corejs3/core-js/object/define-properties.js
deleted file mode 100644
index f326118..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/define-properties.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/define-properties");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/define-property.js b/node_modules/@babel/runtime-corejs3/core-js/object/define-property.js
deleted file mode 100644
index 9aa5e2b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/define-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/define-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/entries.js b/node_modules/@babel/runtime-corejs3/core-js/object/entries.js
deleted file mode 100644
index 3cefbcf..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/freeze.js b/node_modules/@babel/runtime-corejs3/core-js/object/freeze.js
deleted file mode 100644
index 9c93002..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/freeze.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/freeze");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/from-entries.js b/node_modules/@babel/runtime-corejs3/core-js/object/from-entries.js
deleted file mode 100644
index 7000f10..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/from-entries.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/from-entries");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js b/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js
deleted file mode 100644
index 8a04870..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/get-own-property-descriptor");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptors.js b/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptors.js
deleted file mode 100644
index d6a59e6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/get-own-property-descriptors");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-names.js b/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-names.js
deleted file mode 100644
index b825da0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-names.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/get-own-property-names");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js b/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js
deleted file mode 100644
index c998127..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/get-own-property-symbols");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js
deleted file mode 100644
index 97d61f1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/get-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/is-extensible.js b/node_modules/@babel/runtime-corejs3/core-js/object/is-extensible.js
deleted file mode 100644
index 2be029c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/is-extensible.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/is-extensible");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/is-frozen.js b/node_modules/@babel/runtime-corejs3/core-js/object/is-frozen.js
deleted file mode 100644
index 0c4906f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/is-frozen.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/is-frozen");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/is-sealed.js b/node_modules/@babel/runtime-corejs3/core-js/object/is-sealed.js
deleted file mode 100644
index d343920..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/is-sealed.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/is-sealed");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/is.js b/node_modules/@babel/runtime-corejs3/core-js/object/is.js
deleted file mode 100644
index 8a764ae..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/is.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/is");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/keys.js b/node_modules/@babel/runtime-corejs3/core-js/object/keys.js
deleted file mode 100644
index 8121852..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/prevent-extensions.js b/node_modules/@babel/runtime-corejs3/core-js/object/prevent-extensions.js
deleted file mode 100644
index ad55d7b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/prevent-extensions.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/prevent-extensions");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/seal.js b/node_modules/@babel/runtime-corejs3/core-js/object/seal.js
deleted file mode 100644
index f98205e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/seal.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/seal");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js
deleted file mode 100644
index 3535dbc..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/set-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/object/values.js b/node_modules/@babel/runtime-corejs3/core-js/object/values.js
deleted file mode 100644
index e192401..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/object/values.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/object/values");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/observable.js b/node_modules/@babel/runtime-corejs3/core-js/observable.js
deleted file mode 100644
index 9a0cd33..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/observable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/observable");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/parse-float.js b/node_modules/@babel/runtime-corejs3/core-js/parse-float.js
deleted file mode 100644
index d6ab95d..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/parse-float.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/parse-float");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/parse-int.js b/node_modules/@babel/runtime-corejs3/core-js/parse-int.js
deleted file mode 100644
index 73ed9db..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/parse-int.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/parse-int");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/promise.js b/node_modules/@babel/runtime-corejs3/core-js/promise.js
deleted file mode 100644
index 46b8ddd..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/promise.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/promise");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/queue-microtask.js b/node_modules/@babel/runtime-corejs3/core-js/queue-microtask.js
deleted file mode 100644
index 131d625..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/queue-microtask.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/queue-microtask");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/apply.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/apply.js
deleted file mode 100644
index db86be6..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/apply.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/apply");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/construct.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/construct.js
deleted file mode 100644
index 3e7f8f7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/construct.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/construct");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/define-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/define-metadata.js
deleted file mode 100644
index 0eadd23..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/define-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/define-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/define-property.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/define-property.js
deleted file mode 100644
index 9665eeb..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/define-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/define-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-metadata.js
deleted file mode 100644
index d65f6b4..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/delete-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-property.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-property.js
deleted file mode 100644
index c1db05f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/delete-property.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/delete-property");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata-keys.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata-keys.js
deleted file mode 100644
index 179a701..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata-keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-metadata-keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata.js
deleted file mode 100644
index d1c1f7f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata-keys.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata-keys.js
deleted file mode 100644
index 8061b75..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata-keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-own-metadata-keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata.js
deleted file mode 100644
index c9c1345..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-own-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-property-descriptor.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 19634a7..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-own-property-descriptor");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get-prototype-of.js
deleted file mode 100644
index 6499584..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/get.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/get.js
deleted file mode 100644
index f123bfc..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/get.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/get");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/has-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/has-metadata.js
deleted file mode 100644
index 28e8758..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/has-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/has-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/has-own-metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/has-own-metadata.js
deleted file mode 100644
index d14f150..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/has-own-metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/has-own-metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/has.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/has.js
deleted file mode 100644
index 66072e0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/has.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/has");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/is-extensible.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/is-extensible.js
deleted file mode 100644
index f358991..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/is-extensible.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/is-extensible");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/metadata.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/metadata.js
deleted file mode 100644
index 5d3b28c..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/metadata");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/own-keys.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/own-keys.js
deleted file mode 100644
index 703fb6e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/own-keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/own-keys");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/prevent-extensions.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/prevent-extensions.js
deleted file mode 100644
index 35f54e5..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/prevent-extensions.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/prevent-extensions");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/set-prototype-of.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/set-prototype-of.js
deleted file mode 100644
index b8e09ef..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/set-prototype-of.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/set-prototype-of");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/reflect/set.js b/node_modules/@babel/runtime-corejs3/core-js/reflect/set.js
deleted file mode 100644
index 0bd4a84..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/reflect/set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/reflect/set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/set-immediate.js b/node_modules/@babel/runtime-corejs3/core-js/set-immediate.js
deleted file mode 100644
index d41ffb1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/set-immediate.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/set-immediate");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/set-interval.js b/node_modules/@babel/runtime-corejs3/core-js/set-interval.js
deleted file mode 100644
index 091f3a9..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/set-interval.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/set-interval");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/set-timeout.js b/node_modules/@babel/runtime-corejs3/core-js/set-timeout.js
deleted file mode 100644
index 3938f30..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/set-timeout.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/set-timeout");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/set.js b/node_modules/@babel/runtime-corejs3/core-js/set.js
deleted file mode 100644
index 20d7679..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/string/from-code-point.js b/node_modules/@babel/runtime-corejs3/core-js/string/from-code-point.js
deleted file mode 100644
index 2fc0d7f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/string/from-code-point.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/string/from-code-point");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/string/raw.js b/node_modules/@babel/runtime-corejs3/core-js/string/raw.js
deleted file mode 100644
index 6f6af11..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/string/raw.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/string/raw");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol.js b/node_modules/@babel/runtime-corejs3/core-js/symbol.js
deleted file mode 100644
index ded5c62..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/async-iterator.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/async-iterator.js
deleted file mode 100644
index 0e3012e..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/async-iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/async-iterator");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/dispose.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/dispose.js
deleted file mode 100644
index cf5db36..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/dispose.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/dispose");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/for.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/for.js
deleted file mode 100644
index a05c72f..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/for.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/for");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/has-instance.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/has-instance.js
deleted file mode 100644
index ee6c73b..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/has-instance.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/has-instance");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/is-concat-spreadable.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/is-concat-spreadable.js
deleted file mode 100644
index ed3aec0..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/is-concat-spreadable");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js
deleted file mode 100644
index 305a0c2..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/iterator");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/key-for.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/key-for.js
deleted file mode 100644
index 5855279..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/key-for.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/key-for");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/match.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/match.js
deleted file mode 100644
index 8cf9e94..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/match.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/match");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/observable.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/observable.js
deleted file mode 100644
index e035146..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/observable.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/observable");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/pattern-match.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/pattern-match.js
deleted file mode 100644
index 2f36f0a..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/pattern-match.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/pattern-match");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/replace.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/replace.js
deleted file mode 100644
index dcc29ca..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/replace.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/replace");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/search.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/search.js
deleted file mode 100644
index ef064ca..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/search.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/search");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/species.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/species.js
deleted file mode 100644
index c034dff..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/species.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/species");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/split.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/split.js
deleted file mode 100644
index a8414a1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/split.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/split");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/to-primitive.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/to-primitive.js
deleted file mode 100644
index e2b9ada..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/to-primitive.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/to-primitive");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/to-string-tag.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/to-string-tag.js
deleted file mode 100644
index 238bb98..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/to-string-tag.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/to-string-tag");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/symbol/unscopables.js b/node_modules/@babel/runtime-corejs3/core-js/symbol/unscopables.js
deleted file mode 100644
index 9fe1283..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/symbol/unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/symbol/unscopables");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/url-search-params.js b/node_modules/@babel/runtime-corejs3/core-js/url-search-params.js
deleted file mode 100644
index 3fe02ce..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/url-search-params.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/url-search-params");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/url.js b/node_modules/@babel/runtime-corejs3/core-js/url.js
deleted file mode 100644
index 4b3e1f1..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/url.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/url");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/weak-map.js b/node_modules/@babel/runtime-corejs3/core-js/weak-map.js
deleted file mode 100644
index a8e96be..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/weak-map.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/weak-map");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/core-js/weak-set.js b/node_modules/@babel/runtime-corejs3/core-js/weak-set.js
deleted file mode 100644
index f512041..0000000
--- a/node_modules/@babel/runtime-corejs3/core-js/weak-set.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("core-js-pure/features/weak-set");
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/AsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/AsyncGenerator.js
deleted file mode 100644
index 46c0358..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/AsyncGenerator.js
+++ /dev/null
@@ -1,107 +0,0 @@
-var _Symbol$asyncIterator = require("../core-js/symbol/async-iterator");
-
-var _Symbol = require("../core-js/symbol");
-
-var _Promise = require("../core-js/promise");
-
-var AwaitValue = require("./AwaitValue");
-
-function AsyncGenerator(gen) {
-  var front, back;
-
-  function send(key, arg) {
-    return new _Promise(function (resolve, reject) {
-      var request = {
-        key: key,
-        arg: arg,
-        resolve: resolve,
-        reject: reject,
-        next: null
-      };
-
-      if (back) {
-        back = back.next = request;
-      } else {
-        front = back = request;
-        resume(key, arg);
-      }
-    });
-  }
-
-  function resume(key, arg) {
-    try {
-      var result = gen[key](arg);
-      var value = result.value;
-      var wrappedAwait = value instanceof AwaitValue;
-
-      _Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
-        if (wrappedAwait) {
-          resume(key === "return" ? "return" : "next", arg);
-          return;
-        }
-
-        settle(result.done ? "return" : "normal", arg);
-      }, function (err) {
-        resume("throw", err);
-      });
-    } catch (err) {
-      settle("throw", err);
-    }
-  }
-
-  function settle(type, value) {
-    switch (type) {
-      case "return":
-        front.resolve({
-          value: value,
-          done: true
-        });
-        break;
-
-      case "throw":
-        front.reject(value);
-        break;
-
-      default:
-        front.resolve({
-          value: value,
-          done: false
-        });
-        break;
-    }
-
-    front = front.next;
-
-    if (front) {
-      resume(front.key, front.arg);
-    } else {
-      back = null;
-    }
-  }
-
-  this._invoke = send;
-
-  if (typeof gen["return"] !== "function") {
-    this["return"] = undefined;
-  }
-}
-
-if (typeof _Symbol === "function" && _Symbol$asyncIterator) {
-  AsyncGenerator.prototype[_Symbol$asyncIterator] = function () {
-    return this;
-  };
-}
-
-AsyncGenerator.prototype.next = function (arg) {
-  return this._invoke("next", arg);
-};
-
-AsyncGenerator.prototype["throw"] = function (arg) {
-  return this._invoke("throw", arg);
-};
-
-AsyncGenerator.prototype["return"] = function (arg) {
-  return this._invoke("return", arg);
-};
-
-module.exports = AsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/AwaitValue.js b/node_modules/@babel/runtime-corejs3/helpers/AwaitValue.js
deleted file mode 100644
index f9f4184..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/AwaitValue.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _AwaitValue(value) {
-  this.wrapped = value;
-}
-
-module.exports = _AwaitValue;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/applyDecoratedDescriptor.js b/node_modules/@babel/runtime-corejs3/helpers/applyDecoratedDescriptor.js
deleted file mode 100644
index 7558588..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _sliceInstanceProperty = require("../core-js/instance/slice");
-
-var _reverseInstanceProperty = require("../core-js/instance/reverse");
-
-var _reduceInstanceProperty = require("../core-js/instance/reduce");
-
-var _Object$keys = require("../core-js/object/keys");
-
-var _forEachInstanceProperty = require("../core-js/instance/for-each");
-
-function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
-  var _context, _context2, _context3;
-
-  var desc = {};
-
-  _forEachInstanceProperty(_context = _Object$keys(descriptor)).call(_context, function (key) {
-    desc[key] = descriptor[key];
-  });
-
-  desc.enumerable = !!desc.enumerable;
-  desc.configurable = !!desc.configurable;
-
-  if ('value' in desc || desc.initializer) {
-    desc.writable = true;
-  }
-
-  desc = _reduceInstanceProperty(_context2 = _reverseInstanceProperty(_context3 = _sliceInstanceProperty(decorators).call(decorators)).call(_context3)).call(_context2, function (desc, decorator) {
-    return decorator(target, property, desc) || desc;
-  }, desc);
-
-  if (context && desc.initializer !== void 0) {
-    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
-    desc.initializer = undefined;
-  }
-
-  if (desc.initializer === void 0) {
-    _Object$defineProperty(target, property, desc);
-
-    desc = null;
-  }
-
-  return desc;
-}
-
-module.exports = _applyDecoratedDescriptor;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js b/node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js
deleted file mode 100644
index 4522bd5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var _Array$isArray = require("../core-js/array/is-array");
-
-function _arrayWithHoles(arr) {
-  if (_Array$isArray(arr)) return arr;
-}
-
-module.exports = _arrayWithHoles;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js b/node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js
deleted file mode 100644
index 13f124c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/arrayWithoutHoles.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var _Array$isArray = require("../core-js/array/is-array");
-
-function _arrayWithoutHoles(arr) {
-  if (_Array$isArray(arr)) {
-    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
-      arr2[i] = arr[i];
-    }
-
-    return arr2;
-  }
-}
-
-module.exports = _arrayWithoutHoles;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js b/node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js
deleted file mode 100644
index 98d2949..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/assertThisInitialized.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-module.exports = _assertThisInitialized;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/asyncGeneratorDelegate.js b/node_modules/@babel/runtime-corejs3/helpers/asyncGeneratorDelegate.js
deleted file mode 100644
index 839f973..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var _Symbol$iterator = require("../core-js/symbol/iterator");
-
-var _Symbol = require("../core-js/symbol");
-
-var _Promise = require("../core-js/promise");
-
-function _asyncGeneratorDelegate(inner, awaitWrap) {
-  var iter = {},
-      waiting = false;
-
-  function pump(key, value) {
-    waiting = true;
-    value = new _Promise(function (resolve) {
-      resolve(inner[key](value));
-    });
-    return {
-      done: false,
-      value: awaitWrap(value)
-    };
-  }
-
-  ;
-
-  if (typeof _Symbol === "function" && _Symbol$iterator) {
-    iter[_Symbol$iterator] = function () {
-      return this;
-    };
-  }
-
-  iter.next = function (value) {
-    if (waiting) {
-      waiting = false;
-      return value;
-    }
-
-    return pump("next", value);
-  };
-
-  if (typeof inner["throw"] === "function") {
-    iter["throw"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        throw value;
-      }
-
-      return pump("throw", value);
-    };
-  }
-
-  if (typeof inner["return"] === "function") {
-    iter["return"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        return value;
-      }
-
-      return pump("return", value);
-    };
-  }
-
-  return iter;
-}
-
-module.exports = _asyncGeneratorDelegate;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/asyncIterator.js b/node_modules/@babel/runtime-corejs3/helpers/asyncIterator.js
deleted file mode 100644
index 1366cc6..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/asyncIterator.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var _getIteratorMethod = require("../core-js/get-iterator-method");
-
-var _Symbol$iterator = require("../core-js/symbol/iterator");
-
-var _Symbol$asyncIterator = require("../core-js/symbol/async-iterator");
-
-var _Symbol = require("../core-js/symbol");
-
-function _asyncIterator(iterable) {
-  var method;
-
-  if (typeof _Symbol !== "undefined") {
-    if (_Symbol$asyncIterator) {
-      method = iterable[_Symbol$asyncIterator];
-      if (method != null) return method.call(iterable);
-    }
-
-    if (_Symbol$iterator) {
-      method = _getIteratorMethod(iterable);
-      if (method != null) return method.call(iterable);
-    }
-  }
-
-  throw new TypeError("Object is not async iterable");
-}
-
-module.exports = _asyncIterator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/asyncToGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/asyncToGenerator.js
deleted file mode 100644
index f15531d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/asyncToGenerator.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var _Promise = require("../core-js/promise");
-
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
-  try {
-    var info = gen[key](arg);
-    var value = info.value;
-  } catch (error) {
-    reject(error);
-    return;
-  }
-
-  if (info.done) {
-    resolve(value);
-  } else {
-    _Promise.resolve(value).then(_next, _throw);
-  }
-}
-
-function _asyncToGenerator(fn) {
-  return function () {
-    var self = this,
-        args = arguments;
-    return new _Promise(function (resolve, reject) {
-      var gen = fn.apply(self, args);
-
-      function _next(value) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
-      }
-
-      function _throw(err) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
-      }
-
-      _next(undefined);
-    });
-  };
-}
-
-module.exports = _asyncToGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/awaitAsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/awaitAsyncGenerator.js
deleted file mode 100644
index 59f797a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var AwaitValue = require("./AwaitValue");
-
-function _awaitAsyncGenerator(value) {
-  return new AwaitValue(value);
-}
-
-module.exports = _awaitAsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js b/node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js
deleted file mode 100644
index f389f2e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classCallCheck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-module.exports = _classCallCheck;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classNameTDZError.js b/node_modules/@babel/runtime-corejs3/helpers/classNameTDZError.js
deleted file mode 100644
index 8c1bdf5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classNameTDZError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classNameTDZError(name) {
-  throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
-
-module.exports = _classNameTDZError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldDestructureSet.js
deleted file mode 100644
index fab9105..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function _classPrivateFieldDestructureSet(receiver, privateMap) {
-  if (!privateMap.has(receiver)) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  var descriptor = privateMap.get(receiver);
-
-  if (descriptor.set) {
-    if (!("__destrObj" in descriptor)) {
-      descriptor.__destrObj = {
-        set value(v) {
-          descriptor.set.call(receiver, v);
-        }
-
-      };
-    }
-
-    return descriptor.__destrObj;
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    return descriptor;
-  }
-}
-
-module.exports = _classPrivateFieldDestructureSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldGet.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldGet.js
deleted file mode 100644
index 106c3cd..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldGet.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _classPrivateFieldGet(receiver, privateMap) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
-
-module.exports = _classPrivateFieldGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseBase.js
deleted file mode 100644
index 64ed79d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classPrivateFieldBase(receiver, privateKey) {
-  if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
-    throw new TypeError("attempted to use private field on non-instance");
-  }
-
-  return receiver;
-}
-
-module.exports = _classPrivateFieldBase;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseKey.js
deleted file mode 100644
index a1a6417..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var id = 0;
-
-function _classPrivateFieldKey(name) {
-  return "__private_" + id++ + "_" + name;
-}
-
-module.exports = _classPrivateFieldKey;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldSet.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldSet.js
deleted file mode 100644
index c92f97a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateFieldSet.js
+++ /dev/null
@@ -1,21 +0,0 @@
-function _classPrivateFieldSet(receiver, privateMap, value) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
-
-module.exports = _classPrivateFieldSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodGet.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodGet.js
deleted file mode 100644
index a3432b9..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodGet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classPrivateMethodGet(receiver, privateSet, fn) {
-  if (!privateSet.has(receiver)) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  return fn;
-}
-
-module.exports = _classPrivateMethodGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodSet.js b/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodSet.js
deleted file mode 100644
index 3847284..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classPrivateMethodSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classPrivateMethodSet() {
-  throw new TypeError("attempted to reassign private method");
-}
-
-module.exports = _classPrivateMethodSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecGet.js
deleted file mode 100644
index c2b6766..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
-
-module.exports = _classStaticPrivateFieldSpecGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecSet.js
deleted file mode 100644
index 8799fbb..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
-
-module.exports = _classStaticPrivateFieldSpecSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodGet.js
deleted file mode 100644
index f9b0d00..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  return method;
-}
-
-module.exports = _classStaticPrivateMethodGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodSet.js
deleted file mode 100644
index 89042da..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classStaticPrivateMethodSet() {
-  throw new TypeError("attempted to set read only static private field");
-}
-
-module.exports = _classStaticPrivateMethodSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/construct.js b/node_modules/@babel/runtime-corejs3/helpers/construct.js
deleted file mode 100644
index 1869f24..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/construct.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var _bindInstanceProperty = require("../core-js/instance/bind");
-
-var _Reflect$construct = require("../core-js/reflect/construct");
-
-var setPrototypeOf = require("./setPrototypeOf");
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
-  if (_Reflect$construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(_Reflect$construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    module.exports = _construct = _Reflect$construct;
-  } else {
-    module.exports = _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-
-      var Constructor = _bindInstanceProperty(Function).apply(Parent, a);
-
-      var instance = new Constructor();
-      if (Class) setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
-
-module.exports = _construct;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/createClass.js b/node_modules/@babel/runtime-corejs3/helpers/createClass.js
deleted file mode 100644
index c04c910..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/createClass.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-
-    _Object$defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-module.exports = _createClass;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/decorate.js b/node_modules/@babel/runtime-corejs3/helpers/decorate.js
deleted file mode 100644
index 1b98c4e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/decorate.js
+++ /dev/null
@@ -1,433 +0,0 @@
-var _findInstanceProperty = require("../core-js/instance/find");
-
-var _Object$assign = require("../core-js/object/assign");
-
-var _Symbol$toStringTag = require("../core-js/symbol/to-string-tag");
-
-var _spliceInstanceProperty = require("../core-js/instance/splice");
-
-var _indexOfInstanceProperty = require("../core-js/instance/index-of");
-
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _forEachInstanceProperty = require("../core-js/instance/for-each");
-
-var _mapInstanceProperty = require("../core-js/instance/map");
-
-var toArray = require("./toArray");
-
-var toPropertyKey = require("./toPropertyKey");
-
-function _decorate(decorators, factory, superClass, mixins) {
-  var _context;
-
-  var api = _getDecoratorsApi();
-
-  if (mixins) {
-    for (var i = 0; i < mixins.length; i++) {
-      api = mixins[i](api);
-    }
-  }
-
-  var r = factory(function initialize(O) {
-    api.initializeInstanceElements(O, decorated.elements);
-  }, superClass);
-  var decorated = api.decorateClass(_coalesceClassElements(_mapInstanceProperty(_context = r.d).call(_context, _createElementDescriptor)), decorators);
-  api.initializeClassElements(r.F, decorated.elements);
-  return api.runClassFinishers(r.F, decorated.finishers);
-}
-
-function _getDecoratorsApi() {
-  _getDecoratorsApi = function _getDecoratorsApi() {
-    return api;
-  };
-
-  var api = {
-    elementsDefinitionOrder: [["method"], ["field"]],
-    initializeInstanceElements: function initializeInstanceElements(O, elements) {
-      var _context2;
-
-      _forEachInstanceProperty(_context2 = ["method", "field"]).call(_context2, function (kind) {
-        _forEachInstanceProperty(elements).call(elements, function (element) {
-          if (element.kind === kind && element.placement === "own") {
-            this.defineClassElement(O, element);
-          }
-        }, this);
-      }, this);
-    },
-    initializeClassElements: function initializeClassElements(F, elements) {
-      var _context3;
-
-      var proto = F.prototype;
-
-      _forEachInstanceProperty(_context3 = ["method", "field"]).call(_context3, function (kind) {
-        _forEachInstanceProperty(elements).call(elements, function (element) {
-          var placement = element.placement;
-
-          if (element.kind === kind && (placement === "static" || placement === "prototype")) {
-            var receiver = placement === "static" ? F : proto;
-            this.defineClassElement(receiver, element);
-          }
-        }, this);
-      }, this);
-    },
-    defineClassElement: function defineClassElement(receiver, element) {
-      var descriptor = element.descriptor;
-
-      if (element.kind === "field") {
-        var initializer = element.initializer;
-        descriptor = {
-          enumerable: descriptor.enumerable,
-          writable: descriptor.writable,
-          configurable: descriptor.configurable,
-          value: initializer === void 0 ? void 0 : initializer.call(receiver)
-        };
-      }
-
-      _Object$defineProperty(receiver, element.key, descriptor);
-    },
-    decorateClass: function decorateClass(elements, decorators) {
-      var newElements = [];
-      var finishers = [];
-      var placements = {
-        "static": [],
-        prototype: [],
-        own: []
-      };
-
-      _forEachInstanceProperty(elements).call(elements, function (element) {
-        this.addElementPlacement(element, placements);
-      }, this);
-
-      _forEachInstanceProperty(elements).call(elements, function (element) {
-        if (!_hasDecorators(element)) return newElements.push(element);
-        var elementFinishersExtras = this.decorateElement(element, placements);
-        newElements.push(elementFinishersExtras.element);
-        newElements.push.apply(newElements, elementFinishersExtras.extras);
-        finishers.push.apply(finishers, elementFinishersExtras.finishers);
-      }, this);
-
-      if (!decorators) {
-        return {
-          elements: newElements,
-          finishers: finishers
-        };
-      }
-
-      var result = this.decorateConstructor(newElements, decorators);
-      finishers.push.apply(finishers, result.finishers);
-      result.finishers = finishers;
-      return result;
-    },
-    addElementPlacement: function addElementPlacement(element, placements, silent) {
-      var keys = placements[element.placement];
-
-      if (!silent && _indexOfInstanceProperty(keys).call(keys, element.key) !== -1) {
-        throw new TypeError("Duplicated element (" + element.key + ")");
-      }
-
-      keys.push(element.key);
-    },
-    decorateElement: function decorateElement(element, placements) {
-      var extras = [];
-      var finishers = [];
-
-      for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
-        var keys = placements[element.placement];
-
-        _spliceInstanceProperty(keys).call(keys, _indexOfInstanceProperty(keys).call(keys, element.key), 1);
-
-        var elementObject = this.fromElementDescriptor(element);
-        var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
-        element = elementFinisherExtras.element;
-        this.addElementPlacement(element, placements);
-
-        if (elementFinisherExtras.finisher) {
-          finishers.push(elementFinisherExtras.finisher);
-        }
-
-        var newExtras = elementFinisherExtras.extras;
-
-        if (newExtras) {
-          for (var j = 0; j < newExtras.length; j++) {
-            this.addElementPlacement(newExtras[j], placements);
-          }
-
-          extras.push.apply(extras, newExtras);
-        }
-      }
-
-      return {
-        element: element,
-        finishers: finishers,
-        extras: extras
-      };
-    },
-    decorateConstructor: function decorateConstructor(elements, decorators) {
-      var finishers = [];
-
-      for (var i = decorators.length - 1; i >= 0; i--) {
-        var obj = this.fromClassDescriptor(elements);
-        var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
-
-        if (elementsAndFinisher.finisher !== undefined) {
-          finishers.push(elementsAndFinisher.finisher);
-        }
-
-        if (elementsAndFinisher.elements !== undefined) {
-          elements = elementsAndFinisher.elements;
-
-          for (var j = 0; j < elements.length - 1; j++) {
-            for (var k = j + 1; k < elements.length; k++) {
-              if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
-                throw new TypeError("Duplicated element (" + elements[j].key + ")");
-              }
-            }
-          }
-        }
-      }
-
-      return {
-        elements: elements,
-        finishers: finishers
-      };
-    },
-    fromElementDescriptor: function fromElementDescriptor(element) {
-      var obj = {
-        kind: element.kind,
-        key: element.key,
-        placement: element.placement,
-        descriptor: element.descriptor
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-
-      _Object$defineProperty(obj, _Symbol$toStringTag, desc);
-
-      if (element.kind === "field") obj.initializer = element.initializer;
-      return obj;
-    },
-    toElementDescriptors: function toElementDescriptors(elementObjects) {
-      var _context4;
-
-      if (elementObjects === undefined) return;
-      return _mapInstanceProperty(_context4 = toArray(elementObjects)).call(_context4, function (elementObject) {
-        var element = this.toElementDescriptor(elementObject);
-        this.disallowProperty(elementObject, "finisher", "An element descriptor");
-        this.disallowProperty(elementObject, "extras", "An element descriptor");
-        return element;
-      }, this);
-    },
-    toElementDescriptor: function toElementDescriptor(elementObject) {
-      var kind = String(elementObject.kind);
-
-      if (kind !== "method" && kind !== "field") {
-        throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
-      }
-
-      var key = toPropertyKey(elementObject.key);
-      var placement = String(elementObject.placement);
-
-      if (placement !== "static" && placement !== "prototype" && placement !== "own") {
-        throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
-      }
-
-      var descriptor = elementObject.descriptor;
-      this.disallowProperty(elementObject, "elements", "An element descriptor");
-      var element = {
-        kind: kind,
-        key: key,
-        placement: placement,
-        descriptor: _Object$assign({}, descriptor)
-      };
-
-      if (kind !== "field") {
-        this.disallowProperty(elementObject, "initializer", "A method descriptor");
-      } else {
-        this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
-        element.initializer = elementObject.initializer;
-      }
-
-      return element;
-    },
-    toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
-      var element = this.toElementDescriptor(elementObject);
-
-      var finisher = _optionalCallableProperty(elementObject, "finisher");
-
-      var extras = this.toElementDescriptors(elementObject.extras);
-      return {
-        element: element,
-        finisher: finisher,
-        extras: extras
-      };
-    },
-    fromClassDescriptor: function fromClassDescriptor(elements) {
-      var obj = {
-        kind: "class",
-        elements: _mapInstanceProperty(elements).call(elements, this.fromElementDescriptor, this)
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-
-      _Object$defineProperty(obj, _Symbol$toStringTag, desc);
-
-      return obj;
-    },
-    toClassDescriptor: function toClassDescriptor(obj) {
-      var kind = String(obj.kind);
-
-      if (kind !== "class") {
-        throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
-      }
-
-      this.disallowProperty(obj, "key", "A class descriptor");
-      this.disallowProperty(obj, "placement", "A class descriptor");
-      this.disallowProperty(obj, "descriptor", "A class descriptor");
-      this.disallowProperty(obj, "initializer", "A class descriptor");
-      this.disallowProperty(obj, "extras", "A class descriptor");
-
-      var finisher = _optionalCallableProperty(obj, "finisher");
-
-      var elements = this.toElementDescriptors(obj.elements);
-      return {
-        elements: elements,
-        finisher: finisher
-      };
-    },
-    runClassFinishers: function runClassFinishers(constructor, finishers) {
-      for (var i = 0; i < finishers.length; i++) {
-        var newConstructor = (0, finishers[i])(constructor);
-
-        if (newConstructor !== undefined) {
-          if (typeof newConstructor !== "function") {
-            throw new TypeError("Finishers must return a constructor.");
-          }
-
-          constructor = newConstructor;
-        }
-      }
-
-      return constructor;
-    },
-    disallowProperty: function disallowProperty(obj, name, objectType) {
-      if (obj[name] !== undefined) {
-        throw new TypeError(objectType + " can't have a ." + name + " property.");
-      }
-    }
-  };
-  return api;
-}
-
-function _createElementDescriptor(def) {
-  var key = toPropertyKey(def.key);
-  var descriptor;
-
-  if (def.kind === "method") {
-    descriptor = {
-      value: def.value,
-      writable: true,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "get") {
-    descriptor = {
-      get: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "set") {
-    descriptor = {
-      set: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "field") {
-    descriptor = {
-      configurable: true,
-      writable: true,
-      enumerable: true
-    };
-  }
-
-  var element = {
-    kind: def.kind === "field" ? "field" : "method",
-    key: key,
-    placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
-    descriptor: descriptor
-  };
-  if (def.decorators) element.decorators = def.decorators;
-  if (def.kind === "field") element.initializer = def.value;
-  return element;
-}
-
-function _coalesceGetterSetter(element, other) {
-  if (element.descriptor.get !== undefined) {
-    other.descriptor.get = element.descriptor.get;
-  } else {
-    other.descriptor.set = element.descriptor.set;
-  }
-}
-
-function _coalesceClassElements(elements) {
-  var newElements = [];
-
-  var isSameElement = function isSameElement(other) {
-    return other.kind === "method" && other.key === element.key && other.placement === element.placement;
-  };
-
-  for (var i = 0; i < elements.length; i++) {
-    var element = elements[i];
-    var other;
-
-    if (element.kind === "method" && (other = _findInstanceProperty(newElements).call(newElements, isSameElement))) {
-      if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
-        if (_hasDecorators(element) || _hasDecorators(other)) {
-          throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
-        }
-
-        other.descriptor = element.descriptor;
-      } else {
-        if (_hasDecorators(element)) {
-          if (_hasDecorators(other)) {
-            throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
-          }
-
-          other.decorators = element.decorators;
-        }
-
-        _coalesceGetterSetter(element, other);
-      }
-    } else {
-      newElements.push(element);
-    }
-  }
-
-  return newElements;
-}
-
-function _hasDecorators(element) {
-  return element.decorators && element.decorators.length;
-}
-
-function _isDataDescriptor(desc) {
-  return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-
-function _optionalCallableProperty(obj, name) {
-  var value = obj[name];
-
-  if (value !== undefined && typeof value !== "function") {
-    throw new TypeError("Expected '" + name + "' to be a function");
-  }
-
-  return value;
-}
-
-module.exports = _decorate;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/defaults.js b/node_modules/@babel/runtime-corejs3/helpers/defaults.js
deleted file mode 100644
index 77c4b85..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/defaults.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _Object$getOwnPropertyNames = require("../core-js/object/get-own-property-names");
-
-function _defaults(obj, defaults) {
-  var keys = _Object$getOwnPropertyNames(defaults);
-
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-
-    var value = _Object$getOwnPropertyDescriptor(defaults, key);
-
-    if (value && value.configurable && obj[key] === undefined) {
-      _Object$defineProperty(obj, key, value);
-    }
-  }
-
-  return obj;
-}
-
-module.exports = _defaults;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/defineEnumerableProperties.js b/node_modules/@babel/runtime-corejs3/helpers/defineEnumerableProperties.js
deleted file mode 100644
index 0ef3a34..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/defineEnumerableProperties.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var _Object$getOwnPropertySymbols = require("../core-js/object/get-own-property-symbols");
-
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-function _defineEnumerableProperties(obj, descs) {
-  for (var key in descs) {
-    var desc = descs[key];
-    desc.configurable = desc.enumerable = true;
-    if ("value" in desc) desc.writable = true;
-
-    _Object$defineProperty(obj, key, desc);
-  }
-
-  if (_Object$getOwnPropertySymbols) {
-    var objectSymbols = _Object$getOwnPropertySymbols(descs);
-
-    for (var i = 0; i < objectSymbols.length; i++) {
-      var sym = objectSymbols[i];
-      var desc = descs[sym];
-      desc.configurable = desc.enumerable = true;
-      if ("value" in desc) desc.writable = true;
-
-      _Object$defineProperty(obj, sym, desc);
-    }
-  }
-
-  return obj;
-}
-
-module.exports = _defineEnumerableProperties;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/defineProperty.js b/node_modules/@babel/runtime-corejs3/helpers/defineProperty.js
deleted file mode 100644
index b08c5e8..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/defineProperty.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    _Object$defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-module.exports = _defineProperty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/AsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/esm/AsyncGenerator.js
deleted file mode 100644
index d37824f..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/AsyncGenerator.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import _Symbol$asyncIterator from "../../core-js/symbol/async-iterator";
-import _Symbol from "../../core-js/symbol";
-import _Promise from "../../core-js/promise";
-import AwaitValue from "./AwaitValue";
-export default function AsyncGenerator(gen) {
-  var front, back;
-
-  function send(key, arg) {
-    return new _Promise(function (resolve, reject) {
-      var request = {
-        key: key,
-        arg: arg,
-        resolve: resolve,
-        reject: reject,
-        next: null
-      };
-
-      if (back) {
-        back = back.next = request;
-      } else {
-        front = back = request;
-        resume(key, arg);
-      }
-    });
-  }
-
-  function resume(key, arg) {
-    try {
-      var result = gen[key](arg);
-      var value = result.value;
-      var wrappedAwait = value instanceof AwaitValue;
-
-      _Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
-        if (wrappedAwait) {
-          resume(key === "return" ? "return" : "next", arg);
-          return;
-        }
-
-        settle(result.done ? "return" : "normal", arg);
-      }, function (err) {
-        resume("throw", err);
-      });
-    } catch (err) {
-      settle("throw", err);
-    }
-  }
-
-  function settle(type, value) {
-    switch (type) {
-      case "return":
-        front.resolve({
-          value: value,
-          done: true
-        });
-        break;
-
-      case "throw":
-        front.reject(value);
-        break;
-
-      default:
-        front.resolve({
-          value: value,
-          done: false
-        });
-        break;
-    }
-
-    front = front.next;
-
-    if (front) {
-      resume(front.key, front.arg);
-    } else {
-      back = null;
-    }
-  }
-
-  this._invoke = send;
-
-  if (typeof gen["return"] !== "function") {
-    this["return"] = undefined;
-  }
-}
-
-if (typeof _Symbol === "function" && _Symbol$asyncIterator) {
-  AsyncGenerator.prototype[_Symbol$asyncIterator] = function () {
-    return this;
-  };
-}
-
-AsyncGenerator.prototype.next = function (arg) {
-  return this._invoke("next", arg);
-};
-
-AsyncGenerator.prototype["throw"] = function (arg) {
-  return this._invoke("throw", arg);
-};
-
-AsyncGenerator.prototype["return"] = function (arg) {
-  return this._invoke("return", arg);
-};
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/AwaitValue.js b/node_modules/@babel/runtime-corejs3/helpers/esm/AwaitValue.js
deleted file mode 100644
index 5237e18..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/AwaitValue.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _AwaitValue(value) {
-  this.wrapped = value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor.js b/node_modules/@babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor.js
deleted file mode 100644
index 52f9e4e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _sliceInstanceProperty from "../../core-js/instance/slice";
-import _reverseInstanceProperty from "../../core-js/instance/reverse";
-import _reduceInstanceProperty from "../../core-js/instance/reduce";
-import _Object$keys from "../../core-js/object/keys";
-import _forEachInstanceProperty from "../../core-js/instance/for-each";
-export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
-  var _context, _context2, _context3;
-
-  var desc = {};
-
-  _forEachInstanceProperty(_context = _Object$keys(descriptor)).call(_context, function (key) {
-    desc[key] = descriptor[key];
-  });
-
-  desc.enumerable = !!desc.enumerable;
-  desc.configurable = !!desc.configurable;
-
-  if ('value' in desc || desc.initializer) {
-    desc.writable = true;
-  }
-
-  desc = _reduceInstanceProperty(_context2 = _reverseInstanceProperty(_context3 = _sliceInstanceProperty(decorators).call(decorators)).call(_context3)).call(_context2, function (desc, decorator) {
-    return decorator(target, property, desc) || desc;
-  }, desc);
-
-  if (context && desc.initializer !== void 0) {
-    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
-    desc.initializer = undefined;
-  }
-
-  if (desc.initializer === void 0) {
-    _Object$defineProperty(target, property, desc);
-
-    desc = null;
-  }
-
-  return desc;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithHoles.js b/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithHoles.js
deleted file mode 100644
index 2c3a087..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithHoles.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import _Array$isArray from "../../core-js/array/is-array";
-export default function _arrayWithHoles(arr) {
-  if (_Array$isArray(arr)) return arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithoutHoles.js b/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithoutHoles.js
deleted file mode 100644
index 5f86abc..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithoutHoles.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import _Array$isArray from "../../core-js/array/is-array";
-export default function _arrayWithoutHoles(arr) {
-  if (_Array$isArray(arr)) {
-    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
-      arr2[i] = arr[i];
-    }
-
-    return arr2;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js b/node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js
deleted file mode 100644
index bbf849c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncGeneratorDelegate.js b/node_modules/@babel/runtime-corejs3/helpers/esm/asyncGeneratorDelegate.js
deleted file mode 100644
index 13088ef..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import _Symbol$iterator from "../../core-js/symbol/iterator";
-import _Symbol from "../../core-js/symbol";
-import _Promise from "../../core-js/promise";
-export default function _asyncGeneratorDelegate(inner, awaitWrap) {
-  var iter = {},
-      waiting = false;
-
-  function pump(key, value) {
-    waiting = true;
-    value = new _Promise(function (resolve) {
-      resolve(inner[key](value));
-    });
-    return {
-      done: false,
-      value: awaitWrap(value)
-    };
-  }
-
-  ;
-
-  if (typeof _Symbol === "function" && _Symbol$iterator) {
-    iter[_Symbol$iterator] = function () {
-      return this;
-    };
-  }
-
-  iter.next = function (value) {
-    if (waiting) {
-      waiting = false;
-      return value;
-    }
-
-    return pump("next", value);
-  };
-
-  if (typeof inner["throw"] === "function") {
-    iter["throw"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        throw value;
-      }
-
-      return pump("throw", value);
-    };
-  }
-
-  if (typeof inner["return"] === "function") {
-    iter["return"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        return value;
-      }
-
-      return pump("return", value);
-    };
-  }
-
-  return iter;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncIterator.js b/node_modules/@babel/runtime-corejs3/helpers/esm/asyncIterator.js
deleted file mode 100644
index b2d65bf..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncIterator.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import _getIteratorMethod from "../../core-js/get-iterator-method";
-import _Symbol$iterator from "../../core-js/symbol/iterator";
-import _Symbol$asyncIterator from "../../core-js/symbol/async-iterator";
-import _Symbol from "../../core-js/symbol";
-export default function _asyncIterator(iterable) {
-  var method;
-
-  if (typeof _Symbol !== "undefined") {
-    if (_Symbol$asyncIterator) {
-      method = iterable[_Symbol$asyncIterator];
-      if (method != null) return method.call(iterable);
-    }
-
-    if (_Symbol$iterator) {
-      method = _getIteratorMethod(iterable);
-      if (method != null) return method.call(iterable);
-    }
-  }
-
-  throw new TypeError("Object is not async iterable");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js
deleted file mode 100644
index c597faa..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import _Promise from "../../core-js/promise";
-
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
-  try {
-    var info = gen[key](arg);
-    var value = info.value;
-  } catch (error) {
-    reject(error);
-    return;
-  }
-
-  if (info.done) {
-    resolve(value);
-  } else {
-    _Promise.resolve(value).then(_next, _throw);
-  }
-}
-
-export default function _asyncToGenerator(fn) {
-  return function () {
-    var self = this,
-        args = arguments;
-    return new _Promise(function (resolve, reject) {
-      var gen = fn.apply(self, args);
-
-      function _next(value) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
-      }
-
-      function _throw(err) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
-      }
-
-      _next(undefined);
-    });
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js
deleted file mode 100644
index 462f99c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import AwaitValue from "./AwaitValue";
-export default function _awaitAsyncGenerator(value) {
-  return new AwaitValue(value);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classCallCheck.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classCallCheck.js
deleted file mode 100644
index 2f1738a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classCallCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classNameTDZError.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classNameTDZError.js
deleted file mode 100644
index f7b6dd5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classNameTDZError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classNameTDZError(name) {
-  throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldDestructureSet.js
deleted file mode 100644
index 1f265bc..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default function _classPrivateFieldDestructureSet(receiver, privateMap) {
-  if (!privateMap.has(receiver)) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  var descriptor = privateMap.get(receiver);
-
-  if (descriptor.set) {
-    if (!("__destrObj" in descriptor)) {
-      descriptor.__destrObj = {
-        set value(v) {
-          descriptor.set.call(receiver, v);
-        }
-
-      };
-    }
-
-    return descriptor.__destrObj;
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    return descriptor;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldGet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldGet.js
deleted file mode 100644
index f8287f1..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldGet.js
+++ /dev/null
@@ -1,13 +0,0 @@
-export default function _classPrivateFieldGet(receiver, privateMap) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseBase.js
deleted file mode 100644
index 5b10916..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classPrivateFieldBase(receiver, privateKey) {
-  if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
-    throw new TypeError("attempted to use private field on non-instance");
-  }
-
-  return receiver;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseKey.js
deleted file mode 100644
index 5b7e5ac..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var id = 0;
-export default function _classPrivateFieldKey(name) {
-  return "__private_" + id++ + "_" + name;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldSet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldSet.js
deleted file mode 100644
index fb4e5d2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateFieldSet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default function _classPrivateFieldSet(receiver, privateMap, value) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodGet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodGet.js
deleted file mode 100644
index 38b9d58..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classPrivateMethodGet(receiver, privateSet, fn) {
-  if (!privateSet.has(receiver)) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  return fn;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodSet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodSet.js
deleted file mode 100644
index 2bbaf3a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classPrivateMethodSet() {
-  throw new TypeError("attempted to reassign private method");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecGet.js
deleted file mode 100644
index 75a9b7c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecSet.js
deleted file mode 100644
index 163279f..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodGet.js
deleted file mode 100644
index da9b1e5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  return method;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodSet.js
deleted file mode 100644
index d5ab60a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classStaticPrivateMethodSet() {
-  throw new TypeError("attempted to set read only static private field");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/construct.js b/node_modules/@babel/runtime-corejs3/helpers/esm/construct.js
deleted file mode 100644
index 213320e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/construct.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import _bindInstanceProperty from "../../core-js/instance/bind";
-import _Reflect$construct from "../../core-js/reflect/construct";
-import setPrototypeOf from "./setPrototypeOf";
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
-  if (_Reflect$construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(_Reflect$construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-export default function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    _construct = _Reflect$construct;
-  } else {
-    _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-
-      var Constructor = _bindInstanceProperty(Function).apply(Parent, a);
-
-      var instance = new Constructor();
-      if (Class) setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/createClass.js b/node_modules/@babel/runtime-corejs3/helpers/esm/createClass.js
deleted file mode 100644
index 8a6ab38..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/createClass.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-
-    _Object$defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-export default function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/decorate.js b/node_modules/@babel/runtime-corejs3/helpers/esm/decorate.js
deleted file mode 100644
index b91bd49..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/decorate.js
+++ /dev/null
@@ -1,421 +0,0 @@
-import _findInstanceProperty from "../../core-js/instance/find";
-import _Object$assign from "../../core-js/object/assign";
-import _Symbol$toStringTag from "../../core-js/symbol/to-string-tag";
-import _spliceInstanceProperty from "../../core-js/instance/splice";
-import _indexOfInstanceProperty from "../../core-js/instance/index-of";
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _forEachInstanceProperty from "../../core-js/instance/for-each";
-import _mapInstanceProperty from "../../core-js/instance/map";
-import toArray from "./toArray";
-import toPropertyKey from "./toPropertyKey";
-export default function _decorate(decorators, factory, superClass, mixins) {
-  var _context;
-
-  var api = _getDecoratorsApi();
-
-  if (mixins) {
-    for (var i = 0; i < mixins.length; i++) {
-      api = mixins[i](api);
-    }
-  }
-
-  var r = factory(function initialize(O) {
-    api.initializeInstanceElements(O, decorated.elements);
-  }, superClass);
-  var decorated = api.decorateClass(_coalesceClassElements(_mapInstanceProperty(_context = r.d).call(_context, _createElementDescriptor)), decorators);
-  api.initializeClassElements(r.F, decorated.elements);
-  return api.runClassFinishers(r.F, decorated.finishers);
-}
-
-function _getDecoratorsApi() {
-  _getDecoratorsApi = function _getDecoratorsApi() {
-    return api;
-  };
-
-  var api = {
-    elementsDefinitionOrder: [["method"], ["field"]],
-    initializeInstanceElements: function initializeInstanceElements(O, elements) {
-      var _context2;
-
-      _forEachInstanceProperty(_context2 = ["method", "field"]).call(_context2, function (kind) {
-        _forEachInstanceProperty(elements).call(elements, function (element) {
-          if (element.kind === kind && element.placement === "own") {
-            this.defineClassElement(O, element);
-          }
-        }, this);
-      }, this);
-    },
-    initializeClassElements: function initializeClassElements(F, elements) {
-      var _context3;
-
-      var proto = F.prototype;
-
-      _forEachInstanceProperty(_context3 = ["method", "field"]).call(_context3, function (kind) {
-        _forEachInstanceProperty(elements).call(elements, function (element) {
-          var placement = element.placement;
-
-          if (element.kind === kind && (placement === "static" || placement === "prototype")) {
-            var receiver = placement === "static" ? F : proto;
-            this.defineClassElement(receiver, element);
-          }
-        }, this);
-      }, this);
-    },
-    defineClassElement: function defineClassElement(receiver, element) {
-      var descriptor = element.descriptor;
-
-      if (element.kind === "field") {
-        var initializer = element.initializer;
-        descriptor = {
-          enumerable: descriptor.enumerable,
-          writable: descriptor.writable,
-          configurable: descriptor.configurable,
-          value: initializer === void 0 ? void 0 : initializer.call(receiver)
-        };
-      }
-
-      _Object$defineProperty(receiver, element.key, descriptor);
-    },
-    decorateClass: function decorateClass(elements, decorators) {
-      var newElements = [];
-      var finishers = [];
-      var placements = {
-        "static": [],
-        prototype: [],
-        own: []
-      };
-
-      _forEachInstanceProperty(elements).call(elements, function (element) {
-        this.addElementPlacement(element, placements);
-      }, this);
-
-      _forEachInstanceProperty(elements).call(elements, function (element) {
-        if (!_hasDecorators(element)) return newElements.push(element);
-        var elementFinishersExtras = this.decorateElement(element, placements);
-        newElements.push(elementFinishersExtras.element);
-        newElements.push.apply(newElements, elementFinishersExtras.extras);
-        finishers.push.apply(finishers, elementFinishersExtras.finishers);
-      }, this);
-
-      if (!decorators) {
-        return {
-          elements: newElements,
-          finishers: finishers
-        };
-      }
-
-      var result = this.decorateConstructor(newElements, decorators);
-      finishers.push.apply(finishers, result.finishers);
-      result.finishers = finishers;
-      return result;
-    },
-    addElementPlacement: function addElementPlacement(element, placements, silent) {
-      var keys = placements[element.placement];
-
-      if (!silent && _indexOfInstanceProperty(keys).call(keys, element.key) !== -1) {
-        throw new TypeError("Duplicated element (" + element.key + ")");
-      }
-
-      keys.push(element.key);
-    },
-    decorateElement: function decorateElement(element, placements) {
-      var extras = [];
-      var finishers = [];
-
-      for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
-        var keys = placements[element.placement];
-
-        _spliceInstanceProperty(keys).call(keys, _indexOfInstanceProperty(keys).call(keys, element.key), 1);
-
-        var elementObject = this.fromElementDescriptor(element);
-        var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
-        element = elementFinisherExtras.element;
-        this.addElementPlacement(element, placements);
-
-        if (elementFinisherExtras.finisher) {
-          finishers.push(elementFinisherExtras.finisher);
-        }
-
-        var newExtras = elementFinisherExtras.extras;
-
-        if (newExtras) {
-          for (var j = 0; j < newExtras.length; j++) {
-            this.addElementPlacement(newExtras[j], placements);
-          }
-
-          extras.push.apply(extras, newExtras);
-        }
-      }
-
-      return {
-        element: element,
-        finishers: finishers,
-        extras: extras
-      };
-    },
-    decorateConstructor: function decorateConstructor(elements, decorators) {
-      var finishers = [];
-
-      for (var i = decorators.length - 1; i >= 0; i--) {
-        var obj = this.fromClassDescriptor(elements);
-        var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
-
-        if (elementsAndFinisher.finisher !== undefined) {
-          finishers.push(elementsAndFinisher.finisher);
-        }
-
-        if (elementsAndFinisher.elements !== undefined) {
-          elements = elementsAndFinisher.elements;
-
-          for (var j = 0; j < elements.length - 1; j++) {
-            for (var k = j + 1; k < elements.length; k++) {
-              if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
-                throw new TypeError("Duplicated element (" + elements[j].key + ")");
-              }
-            }
-          }
-        }
-      }
-
-      return {
-        elements: elements,
-        finishers: finishers
-      };
-    },
-    fromElementDescriptor: function fromElementDescriptor(element) {
-      var obj = {
-        kind: element.kind,
-        key: element.key,
-        placement: element.placement,
-        descriptor: element.descriptor
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-
-      _Object$defineProperty(obj, _Symbol$toStringTag, desc);
-
-      if (element.kind === "field") obj.initializer = element.initializer;
-      return obj;
-    },
-    toElementDescriptors: function toElementDescriptors(elementObjects) {
-      var _context4;
-
-      if (elementObjects === undefined) return;
-      return _mapInstanceProperty(_context4 = toArray(elementObjects)).call(_context4, function (elementObject) {
-        var element = this.toElementDescriptor(elementObject);
-        this.disallowProperty(elementObject, "finisher", "An element descriptor");
-        this.disallowProperty(elementObject, "extras", "An element descriptor");
-        return element;
-      }, this);
-    },
-    toElementDescriptor: function toElementDescriptor(elementObject) {
-      var kind = String(elementObject.kind);
-
-      if (kind !== "method" && kind !== "field") {
-        throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
-      }
-
-      var key = toPropertyKey(elementObject.key);
-      var placement = String(elementObject.placement);
-
-      if (placement !== "static" && placement !== "prototype" && placement !== "own") {
-        throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
-      }
-
-      var descriptor = elementObject.descriptor;
-      this.disallowProperty(elementObject, "elements", "An element descriptor");
-      var element = {
-        kind: kind,
-        key: key,
-        placement: placement,
-        descriptor: _Object$assign({}, descriptor)
-      };
-
-      if (kind !== "field") {
-        this.disallowProperty(elementObject, "initializer", "A method descriptor");
-      } else {
-        this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
-        element.initializer = elementObject.initializer;
-      }
-
-      return element;
-    },
-    toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
-      var element = this.toElementDescriptor(elementObject);
-
-      var finisher = _optionalCallableProperty(elementObject, "finisher");
-
-      var extras = this.toElementDescriptors(elementObject.extras);
-      return {
-        element: element,
-        finisher: finisher,
-        extras: extras
-      };
-    },
-    fromClassDescriptor: function fromClassDescriptor(elements) {
-      var obj = {
-        kind: "class",
-        elements: _mapInstanceProperty(elements).call(elements, this.fromElementDescriptor, this)
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-
-      _Object$defineProperty(obj, _Symbol$toStringTag, desc);
-
-      return obj;
-    },
-    toClassDescriptor: function toClassDescriptor(obj) {
-      var kind = String(obj.kind);
-
-      if (kind !== "class") {
-        throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
-      }
-
-      this.disallowProperty(obj, "key", "A class descriptor");
-      this.disallowProperty(obj, "placement", "A class descriptor");
-      this.disallowProperty(obj, "descriptor", "A class descriptor");
-      this.disallowProperty(obj, "initializer", "A class descriptor");
-      this.disallowProperty(obj, "extras", "A class descriptor");
-
-      var finisher = _optionalCallableProperty(obj, "finisher");
-
-      var elements = this.toElementDescriptors(obj.elements);
-      return {
-        elements: elements,
-        finisher: finisher
-      };
-    },
-    runClassFinishers: function runClassFinishers(constructor, finishers) {
-      for (var i = 0; i < finishers.length; i++) {
-        var newConstructor = (0, finishers[i])(constructor);
-
-        if (newConstructor !== undefined) {
-          if (typeof newConstructor !== "function") {
-            throw new TypeError("Finishers must return a constructor.");
-          }
-
-          constructor = newConstructor;
-        }
-      }
-
-      return constructor;
-    },
-    disallowProperty: function disallowProperty(obj, name, objectType) {
-      if (obj[name] !== undefined) {
-        throw new TypeError(objectType + " can't have a ." + name + " property.");
-      }
-    }
-  };
-  return api;
-}
-
-function _createElementDescriptor(def) {
-  var key = toPropertyKey(def.key);
-  var descriptor;
-
-  if (def.kind === "method") {
-    descriptor = {
-      value: def.value,
-      writable: true,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "get") {
-    descriptor = {
-      get: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "set") {
-    descriptor = {
-      set: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "field") {
-    descriptor = {
-      configurable: true,
-      writable: true,
-      enumerable: true
-    };
-  }
-
-  var element = {
-    kind: def.kind === "field" ? "field" : "method",
-    key: key,
-    placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
-    descriptor: descriptor
-  };
-  if (def.decorators) element.decorators = def.decorators;
-  if (def.kind === "field") element.initializer = def.value;
-  return element;
-}
-
-function _coalesceGetterSetter(element, other) {
-  if (element.descriptor.get !== undefined) {
-    other.descriptor.get = element.descriptor.get;
-  } else {
-    other.descriptor.set = element.descriptor.set;
-  }
-}
-
-function _coalesceClassElements(elements) {
-  var newElements = [];
-
-  var isSameElement = function isSameElement(other) {
-    return other.kind === "method" && other.key === element.key && other.placement === element.placement;
-  };
-
-  for (var i = 0; i < elements.length; i++) {
-    var element = elements[i];
-    var other;
-
-    if (element.kind === "method" && (other = _findInstanceProperty(newElements).call(newElements, isSameElement))) {
-      if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
-        if (_hasDecorators(element) || _hasDecorators(other)) {
-          throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
-        }
-
-        other.descriptor = element.descriptor;
-      } else {
-        if (_hasDecorators(element)) {
-          if (_hasDecorators(other)) {
-            throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
-          }
-
-          other.decorators = element.decorators;
-        }
-
-        _coalesceGetterSetter(element, other);
-      }
-    } else {
-      newElements.push(element);
-    }
-  }
-
-  return newElements;
-}
-
-function _hasDecorators(element) {
-  return element.decorators && element.decorators.length;
-}
-
-function _isDataDescriptor(desc) {
-  return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-
-function _optionalCallableProperty(obj, name) {
-  var value = obj[name];
-
-  if (value !== undefined && typeof value !== "function") {
-    throw new TypeError("Expected '" + name + "' to be a function");
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/defaults.js b/node_modules/@babel/runtime-corejs3/helpers/esm/defaults.js
deleted file mode 100644
index 8f7670a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/defaults.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _Object$getOwnPropertyNames from "../../core-js/object/get-own-property-names";
-export default function _defaults(obj, defaults) {
-  var keys = _Object$getOwnPropertyNames(defaults);
-
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-
-    var value = _Object$getOwnPropertyDescriptor(defaults, key);
-
-    if (value && value.configurable && obj[key] === undefined) {
-      _Object$defineProperty(obj, key, value);
-    }
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/defineEnumerableProperties.js b/node_modules/@babel/runtime-corejs3/helpers/esm/defineEnumerableProperties.js
deleted file mode 100644
index 5c19c68..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/defineEnumerableProperties.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import _Object$getOwnPropertySymbols from "../../core-js/object/get-own-property-symbols";
-import _Object$defineProperty from "../../core-js/object/define-property";
-export default function _defineEnumerableProperties(obj, descs) {
-  for (var key in descs) {
-    var desc = descs[key];
-    desc.configurable = desc.enumerable = true;
-    if ("value" in desc) desc.writable = true;
-
-    _Object$defineProperty(obj, key, desc);
-  }
-
-  if (_Object$getOwnPropertySymbols) {
-    var objectSymbols = _Object$getOwnPropertySymbols(descs);
-
-    for (var i = 0; i < objectSymbols.length; i++) {
-      var sym = objectSymbols[i];
-      var desc = descs[sym];
-      desc.configurable = desc.enumerable = true;
-      if ("value" in desc) desc.writable = true;
-
-      _Object$defineProperty(obj, sym, desc);
-    }
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js b/node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js
deleted file mode 100644
index 54752ab..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-export default function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    _Object$defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/extends.js b/node_modules/@babel/runtime-corejs3/helpers/esm/extends.js
deleted file mode 100644
index ed3c050..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/extends.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import _Object$assign from "../../core-js/object/assign";
-export default function _extends() {
-  _extends = _Object$assign || function (target) {
-    for (var i = 1; i < arguments.length; i++) {
-      var source = arguments[i];
-
-      for (var key in source) {
-        if (Object.prototype.hasOwnProperty.call(source, key)) {
-          target[key] = source[key];
-        }
-      }
-    }
-
-    return target;
-  };
-
-  return _extends.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/get.js b/node_modules/@babel/runtime-corejs3/helpers/esm/get.js
deleted file mode 100644
index 7c30d6b..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/get.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _Reflect$get from "../../core-js/reflect/get";
-import superPropBase from "./superPropBase";
-export default function _get(target, property, receiver) {
-  if (typeof Reflect !== "undefined" && _Reflect$get) {
-    _get = _Reflect$get;
-  } else {
-    _get = function _get(target, property, receiver) {
-      var base = superPropBase(target, property);
-      if (!base) return;
-
-      var desc = _Object$getOwnPropertyDescriptor(base, property);
-
-      if (desc.get) {
-        return desc.get.call(receiver);
-      }
-
-      return desc.value;
-    };
-  }
-
-  return _get(target, property, receiver || target);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/getPrototypeOf.js b/node_modules/@babel/runtime-corejs3/helpers/esm/getPrototypeOf.js
deleted file mode 100644
index 5fb6b56..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/getPrototypeOf.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import _Object$getPrototypeOf from "../../core-js/object/get-prototype-of";
-import _Object$setPrototypeOf from "../../core-js/object/set-prototype-of";
-export default function _getPrototypeOf(o) {
-  _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || _Object$getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/inherits.js b/node_modules/@babel/runtime-corejs3/helpers/esm/inherits.js
deleted file mode 100644
index a80b414..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/inherits.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import _Object$create from "../../core-js/object/create";
-import setPrototypeOf from "./setPrototypeOf";
-export default function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = _Object$create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/inheritsLoose.js b/node_modules/@babel/runtime-corejs3/helpers/esm/inheritsLoose.js
deleted file mode 100644
index a5fc29d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/inheritsLoose.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import _Object$create from "../../core-js/object/create";
-export default function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = _Object$create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/initializerDefineProperty.js b/node_modules/@babel/runtime-corejs3/helpers/esm/initializerDefineProperty.js
deleted file mode 100644
index d43d6a4..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/initializerDefineProperty.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-export default function _initializerDefineProperty(target, property, descriptor, context) {
-  if (!descriptor) return;
-
-  _Object$defineProperty(target, property, {
-    enumerable: descriptor.enumerable,
-    configurable: descriptor.configurable,
-    writable: descriptor.writable,
-    value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
-  });
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/initializerWarningHelper.js b/node_modules/@babel/runtime-corejs3/helpers/esm/initializerWarningHelper.js
deleted file mode 100644
index 30d518c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/initializerWarningHelper.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _initializerWarningHelper(descriptor, context) {
-  throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.');
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/instanceof.js b/node_modules/@babel/runtime-corejs3/helpers/esm/instanceof.js
deleted file mode 100644
index 3769adc..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/instanceof.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import _Symbol$hasInstance from "../../core-js/symbol/has-instance";
-import _Symbol from "../../core-js/symbol";
-export default function _instanceof(left, right) {
-  if (right != null && typeof _Symbol !== "undefined" && right[_Symbol$hasInstance]) {
-    return !!right[_Symbol$hasInstance](left);
-  } else {
-    return left instanceof right;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireDefault.js b/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireDefault.js
deleted file mode 100644
index c2df7b6..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireDefault.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireWildcard.js b/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireWildcard.js
deleted file mode 100644
index a51ab4d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/interopRequireWildcard.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _typeof from "../../helpers/esm/typeof";
-import _WeakMap from "../../core-js/weak-map";
-
-function _getRequireWildcardCache() {
-  if (typeof _WeakMap !== "function") return null;
-  var cache = new _WeakMap();
-
-  _getRequireWildcardCache = function _getRequireWildcardCache() {
-    return cache;
-  };
-
-  return cache;
-}
-
-export default function _interopRequireWildcard(obj) {
-  if (obj && obj.__esModule) {
-    return obj;
-  }
-
-  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
-    return {
-      "default": obj
-    };
-  }
-
-  var cache = _getRequireWildcardCache();
-
-  if (cache && cache.has(obj)) {
-    return cache.get(obj);
-  }
-
-  var newObj = {};
-  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;
-
-      if (desc && (desc.get || desc.set)) {
-        _Object$defineProperty(newObj, key, desc);
-      } else {
-        newObj[key] = obj[key];
-      }
-    }
-  }
-
-  newObj["default"] = obj;
-
-  if (cache) {
-    cache.set(obj, newObj);
-  }
-
-  return newObj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/isNativeFunction.js b/node_modules/@babel/runtime-corejs3/helpers/esm/isNativeFunction.js
deleted file mode 100644
index 102a53a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/isNativeFunction.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import _indexOfInstanceProperty from "../../core-js/instance/index-of";
-export default function _isNativeFunction(fn) {
-  var _context;
-
-  return _indexOfInstanceProperty(_context = Function.toString.call(fn)).call(_context, "[native code]") !== -1;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArray.js b/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArray.js
deleted file mode 100644
index 9f20ecd..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import _Array$from from "../../core-js/array/from";
-import _isIterable from "../../core-js/is-iterable";
-export default function _iterableToArray(iter) {
-  if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimit.js b/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimit.js
deleted file mode 100644
index 748cf7b..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimit.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import _getIterator from "../../core-js/get-iterator";
-import _isIterable from "../../core-js/is-iterable";
-export default function _iterableToArrayLimit(arr, i) {
-  if (!(_isIterable(Object(arr)) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-  var _n = true;
-  var _d = false;
-  var _e = undefined;
-
-  try {
-    for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
-      _arr.push(_s.value);
-
-      if (i && _arr.length === i) break;
-    }
-  } catch (err) {
-    _d = true;
-    _e = err;
-  } finally {
-    try {
-      if (!_n && _i["return"] != null) _i["return"]();
-    } finally {
-      if (_d) throw _e;
-    }
-  }
-
-  return _arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimitLoose.js
deleted file mode 100644
index 13b8ff9..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import _getIterator from "../../core-js/get-iterator";
-import _isIterable from "../../core-js/is-iterable";
-export default function _iterableToArrayLimitLoose(arr, i) {
-  if (!(_isIterable(Object(arr)) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-
-  for (var _iterator = _getIterator(arr), _step; !(_step = _iterator.next()).done;) {
-    _arr.push(_step.value);
-
-    if (i && _arr.length === i) break;
-  }
-
-  return _arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/jsx.js b/node_modules/@babel/runtime-corejs3/helpers/esm/jsx.js
deleted file mode 100644
index 6a6f5db..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/jsx.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import _Symbol$for from "../../core-js/symbol/for";
-import _Symbol from "../../core-js/symbol";
-var REACT_ELEMENT_TYPE;
-export default function _createRawReactElement(type, props, key, children) {
-  if (!REACT_ELEMENT_TYPE) {
-    REACT_ELEMENT_TYPE = typeof _Symbol === "function" && _Symbol$for && _Symbol$for("react.element") || 0xeac7;
-  }
-
-  var defaultProps = type && type.defaultProps;
-  var childrenLength = arguments.length - 3;
-
-  if (!props && childrenLength !== 0) {
-    props = {
-      children: void 0
-    };
-  }
-
-  if (childrenLength === 1) {
-    props.children = children;
-  } else if (childrenLength > 1) {
-    var childArray = new Array(childrenLength);
-
-    for (var i = 0; i < childrenLength; i++) {
-      childArray[i] = arguments[i + 3];
-    }
-
-    props.children = childArray;
-  }
-
-  if (props && defaultProps) {
-    for (var propName in defaultProps) {
-      if (props[propName] === void 0) {
-        props[propName] = defaultProps[propName];
-      }
-    }
-  } else if (!props) {
-    props = defaultProps || {};
-  }
-
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key === undefined ? null : '' + key,
-    ref: null,
-    props: props,
-    _owner: null
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/newArrowCheck.js b/node_modules/@babel/runtime-corejs3/helpers/esm/newArrowCheck.js
deleted file mode 100644
index d6cd864..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/newArrowCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _newArrowCheck(innerThis, boundThis) {
-  if (innerThis !== boundThis) {
-    throw new TypeError("Cannot instantiate an arrow function");
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableRest.js b/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableRest.js
deleted file mode 100644
index f94186d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableRest.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableSpread.js b/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableSpread.js
deleted file mode 100644
index d6bc738..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableSpread.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableSpread() {
-  throw new TypeError("Invalid attempt to spread non-iterable instance");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty.js b/node_modules/@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty.js
deleted file mode 100644
index 82b67d2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _objectDestructuringEmpty(obj) {
-  if (obj == null) throw new TypeError("Cannot destructure undefined");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread.js b/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread.js
deleted file mode 100644
index 50bb9ca..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import _forEachInstanceProperty from "../../core-js/instance/for-each";
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _filterInstanceProperty from "../../core-js/instance/filter";
-import _concatInstanceProperty from "../../core-js/instance/concat";
-import _Object$getOwnPropertySymbols from "../../core-js/object/get-own-property-symbols";
-import _Object$keys from "../../core-js/object/keys";
-import defineProperty from "./defineProperty";
-export default function _objectSpread(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? Object(arguments[i]) : {};
-
-    var ownKeys = _Object$keys(source);
-
-    if (typeof _Object$getOwnPropertySymbols === 'function') {
-      var _context;
-
-      ownKeys = _concatInstanceProperty(ownKeys).call(ownKeys, _filterInstanceProperty(_context = _Object$getOwnPropertySymbols(source)).call(_context, function (sym) {
-        return _Object$getOwnPropertyDescriptor(source, sym).enumerable;
-      }));
-    }
-
-    _forEachInstanceProperty(ownKeys).call(ownKeys, function (key) {
-      defineProperty(target, key, source[key]);
-    });
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread2.js b/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread2.js
deleted file mode 100644
index e203c5e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/objectSpread2.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _Object$defineProperties from "../../core-js/object/define-properties";
-import _Object$getOwnPropertyDescriptors from "../../core-js/object/get-own-property-descriptors";
-import _forEachInstanceProperty from "../../core-js/instance/for-each";
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _filterInstanceProperty from "../../core-js/instance/filter";
-import _Object$getOwnPropertySymbols from "../../core-js/object/get-own-property-symbols";
-import _Object$keys from "../../core-js/object/keys";
-import defineProperty from "./defineProperty";
-
-function ownKeys(object, enumerableOnly) {
-  var keys = _Object$keys(object);
-
-  if (_Object$getOwnPropertySymbols) {
-    var symbols = _Object$getOwnPropertySymbols(object);
-
-    if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) {
-      return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-export default function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      var _context;
-
-      _forEachInstanceProperty(_context = ownKeys(Object(source), true)).call(_context, function (key) {
-        defineProperty(target, key, source[key]);
-      });
-    } else if (_Object$getOwnPropertyDescriptors) {
-      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
-    } else {
-      var _context2;
-
-      _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) {
-        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
-      });
-    }
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutProperties.js b/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutProperties.js
deleted file mode 100644
index 04df2e1..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutProperties.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import _indexOfInstanceProperty from "../../core-js/instance/index-of";
-import _Object$getOwnPropertySymbols from "../../core-js/object/get-own-property-symbols";
-import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose";
-export default function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = objectWithoutPropertiesLoose(source, excluded);
-  var key, i;
-
-  if (_Object$getOwnPropertySymbols) {
-    var sourceSymbolKeys = _Object$getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutPropertiesLoose.js
deleted file mode 100644
index 6518d0b..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import _indexOfInstanceProperty from "../../core-js/instance/index-of";
-import _Object$keys from "../../core-js/object/keys";
-export default function _objectWithoutPropertiesLoose(source, excluded) {
-  if (source == null) return {};
-  var target = {};
-
-  var sourceKeys = _Object$keys(source);
-
-  var key, i;
-
-  for (i = 0; i < sourceKeys.length; i++) {
-    key = sourceKeys[i];
-    if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;
-    target[key] = source[key];
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/package.json b/node_modules/@babel/runtime-corejs3/helpers/esm/package.json
deleted file mode 100644
index aead43d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "type": "module"
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn.js b/node_modules/@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn.js
deleted file mode 100644
index be7b7a4..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-import assertThisInitialized from "./assertThisInitialized";
-export default function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/readOnlyError.js b/node_modules/@babel/runtime-corejs3/helpers/esm/readOnlyError.js
deleted file mode 100644
index 45d01d7..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/readOnlyError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _readOnlyError(name) {
-  throw new Error("\"" + name + "\" is read-only");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/set.js b/node_modules/@babel/runtime-corejs3/helpers/esm/set.js
deleted file mode 100644
index 7a5a804..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/set.js
+++ /dev/null
@@ -1,55 +0,0 @@
-import _Object$defineProperty from "../../core-js/object/define-property";
-import _Object$getOwnPropertyDescriptor from "../../core-js/object/get-own-property-descriptor";
-import _Reflect$set from "../../core-js/reflect/set";
-import superPropBase from "./superPropBase";
-import defineProperty from "./defineProperty";
-
-function set(target, property, value, receiver) {
-  if (typeof Reflect !== "undefined" && _Reflect$set) {
-    set = _Reflect$set;
-  } else {
-    set = function set(target, property, value, receiver) {
-      var base = superPropBase(target, property);
-      var desc;
-
-      if (base) {
-        desc = _Object$getOwnPropertyDescriptor(base, property);
-
-        if (desc.set) {
-          desc.set.call(receiver, value);
-          return true;
-        } else if (!desc.writable) {
-          return false;
-        }
-      }
-
-      desc = _Object$getOwnPropertyDescriptor(receiver, property);
-
-      if (desc) {
-        if (!desc.writable) {
-          return false;
-        }
-
-        desc.value = value;
-
-        _Object$defineProperty(receiver, property, desc);
-      } else {
-        defineProperty(receiver, property, value);
-      }
-
-      return true;
-    };
-  }
-
-  return set(target, property, value, receiver);
-}
-
-export default function _set(target, property, value, receiver, isStrict) {
-  var s = set(target, property, value, receiver || target);
-
-  if (!s && isStrict) {
-    throw new Error('failed to set property');
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/setPrototypeOf.js b/node_modules/@babel/runtime-corejs3/helpers/esm/setPrototypeOf.js
deleted file mode 100644
index 56682d5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/setPrototypeOf.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import _Object$setPrototypeOf from "../../core-js/object/set-prototype-of";
-export default function _setPrototypeOf(o, p) {
-  _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/skipFirstGeneratorNext.js b/node_modules/@babel/runtime-corejs3/helpers/esm/skipFirstGeneratorNext.js
deleted file mode 100644
index cadd9bb..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _skipFirstGeneratorNext(fn) {
-  return function () {
-    var it = fn.apply(this, arguments);
-    it.next();
-    return it;
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js b/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js
deleted file mode 100644
index f6f1081..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArrayLimit from "./iterableToArrayLimit";
-import nonIterableRest from "./nonIterableRest";
-export default function _slicedToArray(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArrayLoose.js b/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArrayLoose.js
deleted file mode 100644
index e675789..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArrayLoose.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose";
-import nonIterableRest from "./nonIterableRest";
-export default function _slicedToArrayLoose(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/superPropBase.js b/node_modules/@babel/runtime-corejs3/helpers/esm/superPropBase.js
deleted file mode 100644
index eace947..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/superPropBase.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf";
-export default function _superPropBase(object, property) {
-  while (!Object.prototype.hasOwnProperty.call(object, property)) {
-    object = getPrototypeOf(object);
-    if (object === null) break;
-  }
-
-  return object;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteral.js b/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteral.js
deleted file mode 100644
index d29648a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import _Object$defineProperties from "../../core-js/object/define-properties";
-import _Object$freeze from "../../core-js/object/freeze";
-import _sliceInstanceProperty from "../../core-js/instance/slice";
-export default function _taggedTemplateLiteral(strings, raw) {
-  if (!raw) {
-    raw = _sliceInstanceProperty(strings).call(strings, 0);
-  }
-
-  return _Object$freeze(_Object$defineProperties(strings, {
-    raw: {
-      value: _Object$freeze(raw)
-    }
-  }));
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteralLoose.js
deleted file mode 100644
index cc03511..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import _sliceInstanceProperty from "../../core-js/instance/slice";
-export default function _taggedTemplateLiteralLoose(strings, raw) {
-  if (!raw) {
-    raw = _sliceInstanceProperty(strings).call(strings, 0);
-  }
-
-  strings.raw = raw;
-  return strings;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/tdz.js b/node_modules/@babel/runtime-corejs3/helpers/esm/tdz.js
deleted file mode 100644
index d5d0adc..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/tdz.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _tdzError(name) {
-  throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/temporalRef.js b/node_modules/@babel/runtime-corejs3/helpers/esm/temporalRef.js
deleted file mode 100644
index 6d167a3..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/temporalRef.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import undef from "./temporalUndefined";
-import err from "./tdz";
-export default function _temporalRef(val, name) {
-  return val === undef ? err(name) : val;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/temporalUndefined.js b/node_modules/@babel/runtime-corejs3/helpers/esm/temporalUndefined.js
deleted file mode 100644
index 1a35717..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/temporalUndefined.js
+++ /dev/null
@@ -1 +0,0 @@
-export default function _temporalUndefined() {}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/toArray.js b/node_modules/@babel/runtime-corejs3/helpers/esm/toArray.js
deleted file mode 100644
index 5acb22b..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/toArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArray from "./iterableToArray";
-import nonIterableRest from "./nonIterableRest";
-export default function _toArray(arr) {
-  return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/toConsumableArray.js b/node_modules/@babel/runtime-corejs3/helpers/esm/toConsumableArray.js
deleted file mode 100644
index 7e480b9..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/toConsumableArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithoutHoles from "./arrayWithoutHoles";
-import iterableToArray from "./iterableToArray";
-import nonIterableSpread from "./nonIterableSpread";
-export default function _toConsumableArray(arr) {
-  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js b/node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js
deleted file mode 100644
index ddfb41e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import _Symbol$toPrimitive from "../../core-js/symbol/to-primitive";
-import _typeof from "../../helpers/esm/typeof";
-export default function _toPrimitive(input, hint) {
-  if (_typeof(input) !== "object" || input === null) return input;
-  var prim = input[_Symbol$toPrimitive];
-
-  if (prim !== undefined) {
-    var res = prim.call(input, hint || "default");
-    if (_typeof(res) !== "object") return res;
-    throw new TypeError("@@toPrimitive must return a primitive value.");
-  }
-
-  return (hint === "string" ? String : Number)(input);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js b/node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js
deleted file mode 100644
index 7b53a4d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-import toPrimitive from "./toPrimitive";
-export default function _toPropertyKey(arg) {
-  var key = toPrimitive(arg, "string");
-  return _typeof(key) === "symbol" ? key : String(key);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js b/node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js
deleted file mode 100644
index 499dd0c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import _Symbol$iterator from "../../core-js/symbol/iterator";
-import _Symbol from "../../core-js/symbol";
-export default function _typeof(obj) {
-  "@babel/helpers - typeof";
-
-  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
-    _typeof = function _typeof(obj) {
-      return typeof obj;
-    };
-  } else {
-    _typeof = function _typeof(obj) {
-      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
-    };
-  }
-
-  return _typeof(obj);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapAsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/esm/wrapAsyncGenerator.js
deleted file mode 100644
index 6d6d981..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import AsyncGenerator from "./AsyncGenerator";
-export default function _wrapAsyncGenerator(fn) {
-  return function () {
-    return new AsyncGenerator(fn.apply(this, arguments));
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapNativeSuper.js b/node_modules/@babel/runtime-corejs3/helpers/esm/wrapNativeSuper.js
deleted file mode 100644
index c2778d8..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapNativeSuper.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import _Object$create from "../../core-js/object/create";
-import _Map from "../../core-js/map";
-import getPrototypeOf from "./getPrototypeOf";
-import setPrototypeOf from "./setPrototypeOf";
-import isNativeFunction from "./isNativeFunction";
-import construct from "./construct";
-export default function _wrapNativeSuper(Class) {
-  var _cache = typeof _Map === "function" ? new _Map() : undefined;
-
-  _wrapNativeSuper = function _wrapNativeSuper(Class) {
-    if (Class === null || !isNativeFunction(Class)) return Class;
-
-    if (typeof Class !== "function") {
-      throw new TypeError("Super expression must either be null or a function");
-    }
-
-    if (typeof _cache !== "undefined") {
-      if (_cache.has(Class)) return _cache.get(Class);
-
-      _cache.set(Class, Wrapper);
-    }
-
-    function Wrapper() {
-      return construct(Class, arguments, getPrototypeOf(this).constructor);
-    }
-
-    Wrapper.prototype = _Object$create(Class.prototype, {
-      constructor: {
-        value: Wrapper,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-    return setPrototypeOf(Wrapper, Class);
-  };
-
-  return _wrapNativeSuper(Class);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapRegExp.js b/node_modules/@babel/runtime-corejs3/helpers/esm/wrapRegExp.js
deleted file mode 100644
index 8b32bac..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/esm/wrapRegExp.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import _Object$create from "../../core-js/object/create";
-import _Object$keys from "../../core-js/object/keys";
-import _reduceInstanceProperty from "../../core-js/instance/reduce";
-import _typeof from "../../helpers/esm/typeof";
-import _Symbol$replace from "../../core-js/symbol/replace";
-import _WeakMap from "../../core-js/weak-map";
-import wrapNativeSuper from "./wrapNativeSuper";
-import getPrototypeOf from "./getPrototypeOf";
-import possibleConstructorReturn from "./possibleConstructorReturn";
-import inherits from "./inherits";
-export default function _wrapRegExp(re, groups) {
-  _wrapRegExp = function _wrapRegExp(re, groups) {
-    return new BabelRegExp(re, undefined, groups);
-  };
-
-  var _RegExp = wrapNativeSuper(RegExp);
-
-  var _super = RegExp.prototype;
-
-  var _groups = new _WeakMap();
-
-  function BabelRegExp(re, flags, groups) {
-    var _this = _RegExp.call(this, re, flags);
-
-    _groups.set(_this, groups || _groups.get(re));
-
-    return _this;
-  }
-
-  inherits(BabelRegExp, _RegExp);
-
-  BabelRegExp.prototype.exec = function (str) {
-    var result = _super.exec.call(this, str);
-
-    if (result) result.groups = buildGroups(result, this);
-    return result;
-  };
-
-  BabelRegExp.prototype[_Symbol$replace] = function (str, substitution) {
-    if (typeof substitution === "string") {
-      var groups = _groups.get(this);
-
-      return _super[_Symbol$replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
-        return "$" + groups[name];
-      }));
-    } else if (typeof substitution === "function") {
-      var _this = this;
-
-      return _super[_Symbol$replace].call(this, str, function () {
-        var args = [];
-        args.push.apply(args, arguments);
-
-        if (_typeof(args[args.length - 1]) !== "object") {
-          args.push(buildGroups(args, _this));
-        }
-
-        return substitution.apply(this, args);
-      });
-    } else {
-      return _super[_Symbol$replace].call(this, str, substitution);
-    }
-  };
-
-  function buildGroups(result, re) {
-    var _context;
-
-    var g = _groups.get(re);
-
-    return _reduceInstanceProperty(_context = _Object$keys(g)).call(_context, function (groups, name) {
-      groups[name] = result[g[name]];
-      return groups;
-    }, _Object$create(null));
-  }
-
-  return _wrapRegExp.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/extends.js b/node_modules/@babel/runtime-corejs3/helpers/extends.js
deleted file mode 100644
index 7327dea..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/extends.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var _Object$assign = require("../core-js/object/assign");
-
-function _extends() {
-  module.exports = _extends = _Object$assign || function (target) {
-    for (var i = 1; i < arguments.length; i++) {
-      var source = arguments[i];
-
-      for (var key in source) {
-        if (Object.prototype.hasOwnProperty.call(source, key)) {
-          target[key] = source[key];
-        }
-      }
-    }
-
-    return target;
-  };
-
-  return _extends.apply(this, arguments);
-}
-
-module.exports = _extends;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/get.js b/node_modules/@babel/runtime-corejs3/helpers/get.js
deleted file mode 100644
index a51e99d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/get.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _Reflect$get = require("../core-js/reflect/get");
-
-var superPropBase = require("./superPropBase");
-
-function _get(target, property, receiver) {
-  if (typeof Reflect !== "undefined" && _Reflect$get) {
-    module.exports = _get = _Reflect$get;
-  } else {
-    module.exports = _get = function _get(target, property, receiver) {
-      var base = superPropBase(target, property);
-      if (!base) return;
-
-      var desc = _Object$getOwnPropertyDescriptor(base, property);
-
-      if (desc.get) {
-        return desc.get.call(receiver);
-      }
-
-      return desc.value;
-    };
-  }
-
-  return _get(target, property, receiver || target);
-}
-
-module.exports = _get;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js b/node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js
deleted file mode 100644
index ac8d552..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/getPrototypeOf.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var _Object$getPrototypeOf = require("../core-js/object/get-prototype-of");
-
-var _Object$setPrototypeOf = require("../core-js/object/set-prototype-of");
-
-function _getPrototypeOf(o) {
-  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || _Object$getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-module.exports = _getPrototypeOf;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/inherits.js b/node_modules/@babel/runtime-corejs3/helpers/inherits.js
deleted file mode 100644
index 4540e02..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/inherits.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var _Object$create = require("../core-js/object/create");
-
-var setPrototypeOf = require("./setPrototypeOf");
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = _Object$create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
-
-module.exports = _inherits;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/inheritsLoose.js b/node_modules/@babel/runtime-corejs3/helpers/inheritsLoose.js
deleted file mode 100644
index bb367a5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/inheritsLoose.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var _Object$create = require("../core-js/object/create");
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = _Object$create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-module.exports = _inheritsLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/initializerDefineProperty.js b/node_modules/@babel/runtime-corejs3/helpers/initializerDefineProperty.js
deleted file mode 100644
index c0b86d9..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/initializerDefineProperty.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-function _initializerDefineProperty(target, property, descriptor, context) {
-  if (!descriptor) return;
-
-  _Object$defineProperty(target, property, {
-    enumerable: descriptor.enumerable,
-    configurable: descriptor.configurable,
-    writable: descriptor.writable,
-    value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
-  });
-}
-
-module.exports = _initializerDefineProperty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/initializerWarningHelper.js b/node_modules/@babel/runtime-corejs3/helpers/initializerWarningHelper.js
deleted file mode 100644
index 50ec82c..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/initializerWarningHelper.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _initializerWarningHelper(descriptor, context) {
-  throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.');
-}
-
-module.exports = _initializerWarningHelper;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/instanceof.js b/node_modules/@babel/runtime-corejs3/helpers/instanceof.js
deleted file mode 100644
index 9ccb3f6..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/instanceof.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var _Symbol$hasInstance = require("../core-js/symbol/has-instance");
-
-var _Symbol = require("../core-js/symbol");
-
-function _instanceof(left, right) {
-  if (right != null && typeof _Symbol !== "undefined" && right[_Symbol$hasInstance]) {
-    return !!right[_Symbol$hasInstance](left);
-  } else {
-    return left instanceof right;
-  }
-}
-
-module.exports = _instanceof;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js b/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js
deleted file mode 100644
index f713d13..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
-
-module.exports = _interopRequireDefault;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js b/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js
deleted file mode 100644
index 812a934..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/interopRequireWildcard.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _typeof = require("../helpers/typeof");
-
-var _WeakMap = require("../core-js/weak-map");
-
-function _getRequireWildcardCache() {
-  if (typeof _WeakMap !== "function") return null;
-  var cache = new _WeakMap();
-
-  _getRequireWildcardCache = function _getRequireWildcardCache() {
-    return cache;
-  };
-
-  return cache;
-}
-
-function _interopRequireWildcard(obj) {
-  if (obj && obj.__esModule) {
-    return obj;
-  }
-
-  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
-    return {
-      "default": obj
-    };
-  }
-
-  var cache = _getRequireWildcardCache();
-
-  if (cache && cache.has(obj)) {
-    return cache.get(obj);
-  }
-
-  var newObj = {};
-  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;
-
-      if (desc && (desc.get || desc.set)) {
-        _Object$defineProperty(newObj, key, desc);
-      } else {
-        newObj[key] = obj[key];
-      }
-    }
-  }
-
-  newObj["default"] = obj;
-
-  if (cache) {
-    cache.set(obj, newObj);
-  }
-
-  return newObj;
-}
-
-module.exports = _interopRequireWildcard;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js b/node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js
deleted file mode 100644
index 5f44eb5..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/isNativeFunction.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var _indexOfInstanceProperty = require("../core-js/instance/index-of");
-
-function _isNativeFunction(fn) {
-  var _context;
-
-  return _indexOfInstanceProperty(_context = Function.toString.call(fn)).call(_context, "[native code]") !== -1;
-}
-
-module.exports = _isNativeFunction;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js b/node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js
deleted file mode 100644
index c7834a3..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/iterableToArray.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var _Array$from = require("../core-js/array/from");
-
-var _isIterable = require("../core-js/is-iterable");
-
-function _iterableToArray(iter) {
-  if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === "[object Arguments]") return _Array$from(iter);
-}
-
-module.exports = _iterableToArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js b/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js
deleted file mode 100644
index c52fd5e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var _getIterator = require("../core-js/get-iterator");
-
-var _isIterable = require("../core-js/is-iterable");
-
-function _iterableToArrayLimit(arr, i) {
-  if (!(_isIterable(Object(arr)) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-  var _n = true;
-  var _d = false;
-  var _e = undefined;
-
-  try {
-    for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
-      _arr.push(_s.value);
-
-      if (i && _arr.length === i) break;
-    }
-  } catch (err) {
-    _d = true;
-    _e = err;
-  } finally {
-    try {
-      if (!_n && _i["return"] != null) _i["return"]();
-    } finally {
-      if (_d) throw _e;
-    }
-  }
-
-  return _arr;
-}
-
-module.exports = _iterableToArrayLimit;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimitLoose.js
deleted file mode 100644
index 326d8dd..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var _getIterator = require("../core-js/get-iterator");
-
-var _isIterable = require("../core-js/is-iterable");
-
-function _iterableToArrayLimitLoose(arr, i) {
-  if (!(_isIterable(Object(arr)) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-
-  for (var _iterator = _getIterator(arr), _step; !(_step = _iterator.next()).done;) {
-    _arr.push(_step.value);
-
-    if (i && _arr.length === i) break;
-  }
-
-  return _arr;
-}
-
-module.exports = _iterableToArrayLimitLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/jsx.js b/node_modules/@babel/runtime-corejs3/helpers/jsx.js
deleted file mode 100644
index 6b72de2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/jsx.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var _Symbol$for = require("../core-js/symbol/for");
-
-var _Symbol = require("../core-js/symbol");
-
-var REACT_ELEMENT_TYPE;
-
-function _createRawReactElement(type, props, key, children) {
-  if (!REACT_ELEMENT_TYPE) {
-    REACT_ELEMENT_TYPE = typeof _Symbol === "function" && _Symbol$for && _Symbol$for("react.element") || 0xeac7;
-  }
-
-  var defaultProps = type && type.defaultProps;
-  var childrenLength = arguments.length - 3;
-
-  if (!props && childrenLength !== 0) {
-    props = {
-      children: void 0
-    };
-  }
-
-  if (childrenLength === 1) {
-    props.children = children;
-  } else if (childrenLength > 1) {
-    var childArray = new Array(childrenLength);
-
-    for (var i = 0; i < childrenLength; i++) {
-      childArray[i] = arguments[i + 3];
-    }
-
-    props.children = childArray;
-  }
-
-  if (props && defaultProps) {
-    for (var propName in defaultProps) {
-      if (props[propName] === void 0) {
-        props[propName] = defaultProps[propName];
-      }
-    }
-  } else if (!props) {
-    props = defaultProps || {};
-  }
-
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key === undefined ? null : '' + key,
-    ref: null,
-    props: props,
-    _owner: null
-  };
-}
-
-module.exports = _createRawReactElement;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/newArrowCheck.js b/node_modules/@babel/runtime-corejs3/helpers/newArrowCheck.js
deleted file mode 100644
index 9b59f58..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/newArrowCheck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _newArrowCheck(innerThis, boundThis) {
-  if (innerThis !== boundThis) {
-    throw new TypeError("Cannot instantiate an arrow function");
-  }
-}
-
-module.exports = _newArrowCheck;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js b/node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js
deleted file mode 100644
index eb447dd..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
-
-module.exports = _nonIterableRest;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js b/node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js
deleted file mode 100644
index 7d7ca43..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/nonIterableSpread.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _nonIterableSpread() {
-  throw new TypeError("Invalid attempt to spread non-iterable instance");
-}
-
-module.exports = _nonIterableSpread;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/objectDestructuringEmpty.js b/node_modules/@babel/runtime-corejs3/helpers/objectDestructuringEmpty.js
deleted file mode 100644
index 1d5c04a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _objectDestructuringEmpty(obj) {
-  if (obj == null) throw new TypeError("Cannot destructure undefined");
-}
-
-module.exports = _objectDestructuringEmpty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/objectSpread.js b/node_modules/@babel/runtime-corejs3/helpers/objectSpread.js
deleted file mode 100644
index 09a794a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/objectSpread.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var _forEachInstanceProperty = require("../core-js/instance/for-each");
-
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _filterInstanceProperty = require("../core-js/instance/filter");
-
-var _concatInstanceProperty = require("../core-js/instance/concat");
-
-var _Object$getOwnPropertySymbols = require("../core-js/object/get-own-property-symbols");
-
-var _Object$keys = require("../core-js/object/keys");
-
-var defineProperty = require("./defineProperty");
-
-function _objectSpread(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? Object(arguments[i]) : {};
-
-    var ownKeys = _Object$keys(source);
-
-    if (typeof _Object$getOwnPropertySymbols === 'function') {
-      var _context;
-
-      ownKeys = _concatInstanceProperty(ownKeys).call(ownKeys, _filterInstanceProperty(_context = _Object$getOwnPropertySymbols(source)).call(_context, function (sym) {
-        return _Object$getOwnPropertyDescriptor(source, sym).enumerable;
-      }));
-    }
-
-    _forEachInstanceProperty(ownKeys).call(ownKeys, function (key) {
-      defineProperty(target, key, source[key]);
-    });
-  }
-
-  return target;
-}
-
-module.exports = _objectSpread;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/objectSpread2.js b/node_modules/@babel/runtime-corejs3/helpers/objectSpread2.js
deleted file mode 100644
index ab4a226..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/objectSpread2.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _Object$defineProperties = require("../core-js/object/define-properties");
-
-var _Object$getOwnPropertyDescriptors = require("../core-js/object/get-own-property-descriptors");
-
-var _forEachInstanceProperty = require("../core-js/instance/for-each");
-
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _filterInstanceProperty = require("../core-js/instance/filter");
-
-var _Object$getOwnPropertySymbols = require("../core-js/object/get-own-property-symbols");
-
-var _Object$keys = require("../core-js/object/keys");
-
-var defineProperty = require("./defineProperty");
-
-function ownKeys(object, enumerableOnly) {
-  var keys = _Object$keys(object);
-
-  if (_Object$getOwnPropertySymbols) {
-    var symbols = _Object$getOwnPropertySymbols(object);
-
-    if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) {
-      return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      var _context;
-
-      _forEachInstanceProperty(_context = ownKeys(Object(source), true)).call(_context, function (key) {
-        defineProperty(target, key, source[key]);
-      });
-    } else if (_Object$getOwnPropertyDescriptors) {
-      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
-    } else {
-      var _context2;
-
-      _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) {
-        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
-      });
-    }
-  }
-
-  return target;
-}
-
-module.exports = _objectSpread2;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/objectWithoutProperties.js b/node_modules/@babel/runtime-corejs3/helpers/objectWithoutProperties.js
deleted file mode 100644
index 85672e2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/objectWithoutProperties.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var _indexOfInstanceProperty = require("../core-js/instance/index-of");
-
-var _Object$getOwnPropertySymbols = require("../core-js/object/get-own-property-symbols");
-
-var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose");
-
-function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = objectWithoutPropertiesLoose(source, excluded);
-  var key, i;
-
-  if (_Object$getOwnPropertySymbols) {
-    var sourceSymbolKeys = _Object$getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
-
-module.exports = _objectWithoutProperties;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose.js
deleted file mode 100644
index ad79fd4..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var _indexOfInstanceProperty = require("../core-js/instance/index-of");
-
-var _Object$keys = require("../core-js/object/keys");
-
-function _objectWithoutPropertiesLoose(source, excluded) {
-  if (source == null) return {};
-  var target = {};
-
-  var sourceKeys = _Object$keys(source);
-
-  var key, i;
-
-  for (i = 0; i < sourceKeys.length; i++) {
-    key = sourceKeys[i];
-    if (_indexOfInstanceProperty(excluded).call(excluded, key) >= 0) continue;
-    target[key] = source[key];
-  }
-
-  return target;
-}
-
-module.exports = _objectWithoutPropertiesLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js b/node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js
deleted file mode 100644
index 84f7bf6..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/possibleConstructorReturn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-var assertThisInitialized = require("./assertThisInitialized");
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
-
-module.exports = _possibleConstructorReturn;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/readOnlyError.js b/node_modules/@babel/runtime-corejs3/helpers/readOnlyError.js
deleted file mode 100644
index 4e61e3f..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/readOnlyError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _readOnlyError(name) {
-  throw new Error("\"" + name + "\" is read-only");
-}
-
-module.exports = _readOnlyError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/set.js b/node_modules/@babel/runtime-corejs3/helpers/set.js
deleted file mode 100644
index ca46857..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/set.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var _Object$defineProperty = require("../core-js/object/define-property");
-
-var _Object$getOwnPropertyDescriptor = require("../core-js/object/get-own-property-descriptor");
-
-var _Reflect$set = require("../core-js/reflect/set");
-
-var superPropBase = require("./superPropBase");
-
-var defineProperty = require("./defineProperty");
-
-function set(target, property, value, receiver) {
-  if (typeof Reflect !== "undefined" && _Reflect$set) {
-    set = _Reflect$set;
-  } else {
-    set = function set(target, property, value, receiver) {
-      var base = superPropBase(target, property);
-      var desc;
-
-      if (base) {
-        desc = _Object$getOwnPropertyDescriptor(base, property);
-
-        if (desc.set) {
-          desc.set.call(receiver, value);
-          return true;
-        } else if (!desc.writable) {
-          return false;
-        }
-      }
-
-      desc = _Object$getOwnPropertyDescriptor(receiver, property);
-
-      if (desc) {
-        if (!desc.writable) {
-          return false;
-        }
-
-        desc.value = value;
-
-        _Object$defineProperty(receiver, property, desc);
-      } else {
-        defineProperty(receiver, property, value);
-      }
-
-      return true;
-    };
-  }
-
-  return set(target, property, value, receiver);
-}
-
-function _set(target, property, value, receiver, isStrict) {
-  var s = set(target, property, value, receiver || target);
-
-  if (!s && isStrict) {
-    throw new Error('failed to set property');
-  }
-
-  return value;
-}
-
-module.exports = _set;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js b/node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js
deleted file mode 100644
index ccca1c2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/setPrototypeOf.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var _Object$setPrototypeOf = require("../core-js/object/set-prototype-of");
-
-function _setPrototypeOf(o, p) {
-  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-module.exports = _setPrototypeOf;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/skipFirstGeneratorNext.js b/node_modules/@babel/runtime-corejs3/helpers/skipFirstGeneratorNext.js
deleted file mode 100644
index e1d6c86..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _skipFirstGeneratorNext(fn) {
-  return function () {
-    var it = fn.apply(this, arguments);
-    it.next();
-    return it;
-  };
-}
-
-module.exports = _skipFirstGeneratorNext;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js b/node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js
deleted file mode 100644
index 243ea9e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArrayLimit = require("./iterableToArrayLimit");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _slicedToArray(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
-}
-
-module.exports = _slicedToArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/slicedToArrayLoose.js b/node_modules/@babel/runtime-corejs3/helpers/slicedToArrayLoose.js
deleted file mode 100644
index c7e4313..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/slicedToArrayLoose.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _slicedToArrayLoose(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || nonIterableRest();
-}
-
-module.exports = _slicedToArrayLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/superPropBase.js b/node_modules/@babel/runtime-corejs3/helpers/superPropBase.js
deleted file mode 100644
index bbb34a2..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/superPropBase.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf");
-
-function _superPropBase(object, property) {
-  while (!Object.prototype.hasOwnProperty.call(object, property)) {
-    object = getPrototypeOf(object);
-    if (object === null) break;
-  }
-
-  return object;
-}
-
-module.exports = _superPropBase;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteral.js b/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteral.js
deleted file mode 100644
index 6385c66..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var _Object$defineProperties = require("../core-js/object/define-properties");
-
-var _Object$freeze = require("../core-js/object/freeze");
-
-var _sliceInstanceProperty = require("../core-js/instance/slice");
-
-function _taggedTemplateLiteral(strings, raw) {
-  if (!raw) {
-    raw = _sliceInstanceProperty(strings).call(strings, 0);
-  }
-
-  return _Object$freeze(_Object$defineProperties(strings, {
-    raw: {
-      value: _Object$freeze(raw)
-    }
-  }));
-}
-
-module.exports = _taggedTemplateLiteral;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteralLoose.js
deleted file mode 100644
index 223ab3e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var _sliceInstanceProperty = require("../core-js/instance/slice");
-
-function _taggedTemplateLiteralLoose(strings, raw) {
-  if (!raw) {
-    raw = _sliceInstanceProperty(strings).call(strings, 0);
-  }
-
-  strings.raw = raw;
-  return strings;
-}
-
-module.exports = _taggedTemplateLiteralLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/tdz.js b/node_modules/@babel/runtime-corejs3/helpers/tdz.js
deleted file mode 100644
index 6075e8d..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/tdz.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _tdzError(name) {
-  throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
-
-module.exports = _tdzError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/temporalRef.js b/node_modules/@babel/runtime-corejs3/helpers/temporalRef.js
deleted file mode 100644
index 8aa5e5e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/temporalRef.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var temporalUndefined = require("./temporalUndefined");
-
-var tdz = require("./tdz");
-
-function _temporalRef(val, name) {
-  return val === temporalUndefined ? tdz(name) : val;
-}
-
-module.exports = _temporalRef;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/temporalUndefined.js b/node_modules/@babel/runtime-corejs3/helpers/temporalUndefined.js
deleted file mode 100644
index 416d9b3..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/temporalUndefined.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function _temporalUndefined() {}
-
-module.exports = _temporalUndefined;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/toArray.js b/node_modules/@babel/runtime-corejs3/helpers/toArray.js
deleted file mode 100644
index c28fd9e..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/toArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArray = require("./iterableToArray");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _toArray(arr) {
-  return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();
-}
-
-module.exports = _toArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js b/node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js
deleted file mode 100644
index 4cd54a3..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/toConsumableArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithoutHoles = require("./arrayWithoutHoles");
-
-var iterableToArray = require("./iterableToArray");
-
-var nonIterableSpread = require("./nonIterableSpread");
-
-function _toConsumableArray(arr) {
-  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
-}
-
-module.exports = _toConsumableArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js b/node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js
deleted file mode 100644
index 9959204..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var _Symbol$toPrimitive = require("../core-js/symbol/to-primitive");
-
-var _typeof = require("../helpers/typeof");
-
-function _toPrimitive(input, hint) {
-  if (_typeof(input) !== "object" || input === null) return input;
-  var prim = input[_Symbol$toPrimitive];
-
-  if (prim !== undefined) {
-    var res = prim.call(input, hint || "default");
-    if (_typeof(res) !== "object") return res;
-    throw new TypeError("@@toPrimitive must return a primitive value.");
-  }
-
-  return (hint === "string" ? String : Number)(input);
-}
-
-module.exports = _toPrimitive;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js b/node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js
deleted file mode 100644
index 108b083..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-var toPrimitive = require("./toPrimitive");
-
-function _toPropertyKey(arg) {
-  var key = toPrimitive(arg, "string");
-  return _typeof(key) === "symbol" ? key : String(key);
-}
-
-module.exports = _toPropertyKey;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/typeof.js b/node_modules/@babel/runtime-corejs3/helpers/typeof.js
deleted file mode 100644
index 897af2a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/typeof.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var _Symbol$iterator = require("../core-js/symbol/iterator");
-
-var _Symbol = require("../core-js/symbol");
-
-function _typeof(obj) {
-  "@babel/helpers - typeof";
-
-  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
-    module.exports = _typeof = function _typeof(obj) {
-      return typeof obj;
-    };
-  } else {
-    module.exports = _typeof = function _typeof(obj) {
-      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
-    };
-  }
-
-  return _typeof(obj);
-}
-
-module.exports = _typeof;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/wrapAsyncGenerator.js b/node_modules/@babel/runtime-corejs3/helpers/wrapAsyncGenerator.js
deleted file mode 100644
index 11554f3..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var AsyncGenerator = require("./AsyncGenerator");
-
-function _wrapAsyncGenerator(fn) {
-  return function () {
-    return new AsyncGenerator(fn.apply(this, arguments));
-  };
-}
-
-module.exports = _wrapAsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js b/node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js
deleted file mode 100644
index 0d9cb7a..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/wrapNativeSuper.js
+++ /dev/null
@@ -1,47 +0,0 @@
-var _Object$create = require("../core-js/object/create");
-
-var _Map = require("../core-js/map");
-
-var getPrototypeOf = require("./getPrototypeOf");
-
-var setPrototypeOf = require("./setPrototypeOf");
-
-var isNativeFunction = require("./isNativeFunction");
-
-var construct = require("./construct");
-
-function _wrapNativeSuper(Class) {
-  var _cache = typeof _Map === "function" ? new _Map() : undefined;
-
-  module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {
-    if (Class === null || !isNativeFunction(Class)) return Class;
-
-    if (typeof Class !== "function") {
-      throw new TypeError("Super expression must either be null or a function");
-    }
-
-    if (typeof _cache !== "undefined") {
-      if (_cache.has(Class)) return _cache.get(Class);
-
-      _cache.set(Class, Wrapper);
-    }
-
-    function Wrapper() {
-      return construct(Class, arguments, getPrototypeOf(this).constructor);
-    }
-
-    Wrapper.prototype = _Object$create(Class.prototype, {
-      constructor: {
-        value: Wrapper,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-    return setPrototypeOf(Wrapper, Class);
-  };
-
-  return _wrapNativeSuper(Class);
-}
-
-module.exports = _wrapNativeSuper;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/helpers/wrapRegExp.js b/node_modules/@babel/runtime-corejs3/helpers/wrapRegExp.js
deleted file mode 100644
index 84c123f..0000000
--- a/node_modules/@babel/runtime-corejs3/helpers/wrapRegExp.js
+++ /dev/null
@@ -1,88 +0,0 @@
-var _Object$create = require("../core-js/object/create");
-
-var _Object$keys = require("../core-js/object/keys");
-
-var _reduceInstanceProperty = require("../core-js/instance/reduce");
-
-var _typeof = require("../helpers/typeof");
-
-var _Symbol$replace = require("../core-js/symbol/replace");
-
-var _WeakMap = require("../core-js/weak-map");
-
-var wrapNativeSuper = require("./wrapNativeSuper");
-
-var getPrototypeOf = require("./getPrototypeOf");
-
-var possibleConstructorReturn = require("./possibleConstructorReturn");
-
-var inherits = require("./inherits");
-
-function _wrapRegExp(re, groups) {
-  module.exports = _wrapRegExp = function _wrapRegExp(re, groups) {
-    return new BabelRegExp(re, undefined, groups);
-  };
-
-  var _RegExp = wrapNativeSuper(RegExp);
-
-  var _super = RegExp.prototype;
-
-  var _groups = new _WeakMap();
-
-  function BabelRegExp(re, flags, groups) {
-    var _this = _RegExp.call(this, re, flags);
-
-    _groups.set(_this, groups || _groups.get(re));
-
-    return _this;
-  }
-
-  inherits(BabelRegExp, _RegExp);
-
-  BabelRegExp.prototype.exec = function (str) {
-    var result = _super.exec.call(this, str);
-
-    if (result) result.groups = buildGroups(result, this);
-    return result;
-  };
-
-  BabelRegExp.prototype[_Symbol$replace] = function (str, substitution) {
-    if (typeof substitution === "string") {
-      var groups = _groups.get(this);
-
-      return _super[_Symbol$replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
-        return "$" + groups[name];
-      }));
-    } else if (typeof substitution === "function") {
-      var _this = this;
-
-      return _super[_Symbol$replace].call(this, str, function () {
-        var args = [];
-        args.push.apply(args, arguments);
-
-        if (_typeof(args[args.length - 1]) !== "object") {
-          args.push(buildGroups(args, _this));
-        }
-
-        return substitution.apply(this, args);
-      });
-    } else {
-      return _super[_Symbol$replace].call(this, str, substitution);
-    }
-  };
-
-  function buildGroups(result, re) {
-    var _context;
-
-    var g = _groups.get(re);
-
-    return _reduceInstanceProperty(_context = _Object$keys(g)).call(_context, function (groups, name) {
-      groups[name] = result[g[name]];
-      return groups;
-    }, _Object$create(null));
-  }
-
-  return _wrapRegExp.apply(this, arguments);
-}
-
-module.exports = _wrapRegExp;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime-corejs3/package.json b/node_modules/@babel/runtime-corejs3/package.json
deleted file mode 100644
index d00f5de..0000000
--- a/node_modules/@babel/runtime-corejs3/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "name": "@babel/runtime-corejs3",
-  "version": "7.8.7",
-  "description": "babel's modular runtime helpers with core-js@3 polyfilling",
-  "license": "MIT",
-  "publishConfig": {
-    "access": "public"
-  },
-  "repository": "https://github.com/babel/babel/tree/master/packages/babel-runtime-corejs3",
-  "author": "Denis Pushkarev <zloirock@zloirock.ru>",
-  "dependencies": {
-    "core-js-pure": "^3.0.0",
-    "regenerator-runtime": "^0.13.4"
-  },
-  "gitHead": "595f65f33b8e948e34d12be83f700cf8d070c790"
-}
diff --git a/node_modules/@babel/runtime-corejs3/regenerator/index.js b/node_modules/@babel/runtime-corejs3/regenerator/index.js
deleted file mode 100644
index 9fd4158..0000000
--- a/node_modules/@babel/runtime-corejs3/regenerator/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("regenerator-runtime");
diff --git a/node_modules/@babel/runtime/LICENSE b/node_modules/@babel/runtime/LICENSE
deleted file mode 100644
index f31575e..0000000
--- a/node_modules/@babel/runtime/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-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.
diff --git a/node_modules/@babel/runtime/README.md b/node_modules/@babel/runtime/README.md
deleted file mode 100644
index 72e8daa..0000000
--- a/node_modules/@babel/runtime/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# @babel/runtime
-
-> babel's modular runtime helpers
-
-See our website [@babel/runtime](https://babeljs.io/docs/en/next/babel-runtime.html) for more information.
-
-## Install
-
-Using npm:
-
-```sh
-npm install --save @babel/runtime
-```
-
-or using yarn:
-
-```sh
-yarn add @babel/runtime 
-```
diff --git a/node_modules/@babel/runtime/helpers/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/AsyncGenerator.js
deleted file mode 100644
index 5e23730..0000000
--- a/node_modules/@babel/runtime/helpers/AsyncGenerator.js
+++ /dev/null
@@ -1,100 +0,0 @@
-var AwaitValue = require("./AwaitValue");
-
-function AsyncGenerator(gen) {
-  var front, back;
-
-  function send(key, arg) {
-    return new Promise(function (resolve, reject) {
-      var request = {
-        key: key,
-        arg: arg,
-        resolve: resolve,
-        reject: reject,
-        next: null
-      };
-
-      if (back) {
-        back = back.next = request;
-      } else {
-        front = back = request;
-        resume(key, arg);
-      }
-    });
-  }
-
-  function resume(key, arg) {
-    try {
-      var result = gen[key](arg);
-      var value = result.value;
-      var wrappedAwait = value instanceof AwaitValue;
-      Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
-        if (wrappedAwait) {
-          resume(key === "return" ? "return" : "next", arg);
-          return;
-        }
-
-        settle(result.done ? "return" : "normal", arg);
-      }, function (err) {
-        resume("throw", err);
-      });
-    } catch (err) {
-      settle("throw", err);
-    }
-  }
-
-  function settle(type, value) {
-    switch (type) {
-      case "return":
-        front.resolve({
-          value: value,
-          done: true
-        });
-        break;
-
-      case "throw":
-        front.reject(value);
-        break;
-
-      default:
-        front.resolve({
-          value: value,
-          done: false
-        });
-        break;
-    }
-
-    front = front.next;
-
-    if (front) {
-      resume(front.key, front.arg);
-    } else {
-      back = null;
-    }
-  }
-
-  this._invoke = send;
-
-  if (typeof gen["return"] !== "function") {
-    this["return"] = undefined;
-  }
-}
-
-if (typeof Symbol === "function" && Symbol.asyncIterator) {
-  AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
-    return this;
-  };
-}
-
-AsyncGenerator.prototype.next = function (arg) {
-  return this._invoke("next", arg);
-};
-
-AsyncGenerator.prototype["throw"] = function (arg) {
-  return this._invoke("throw", arg);
-};
-
-AsyncGenerator.prototype["return"] = function (arg) {
-  return this._invoke("return", arg);
-};
-
-module.exports = AsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/AwaitValue.js b/node_modules/@babel/runtime/helpers/AwaitValue.js
deleted file mode 100644
index f9f4184..0000000
--- a/node_modules/@babel/runtime/helpers/AwaitValue.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _AwaitValue(value) {
-  this.wrapped = value;
-}
-
-module.exports = _AwaitValue;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js
deleted file mode 100644
index b0b41dd..0000000
--- a/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,30 +0,0 @@
-function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
-  var desc = {};
-  Object.keys(descriptor).forEach(function (key) {
-    desc[key] = descriptor[key];
-  });
-  desc.enumerable = !!desc.enumerable;
-  desc.configurable = !!desc.configurable;
-
-  if ('value' in desc || desc.initializer) {
-    desc.writable = true;
-  }
-
-  desc = decorators.slice().reverse().reduce(function (desc, decorator) {
-    return decorator(target, property, desc) || desc;
-  }, desc);
-
-  if (context && desc.initializer !== void 0) {
-    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
-    desc.initializer = undefined;
-  }
-
-  if (desc.initializer === void 0) {
-    Object.defineProperty(target, property, desc);
-    desc = null;
-  }
-
-  return desc;
-}
-
-module.exports = _applyDecoratedDescriptor;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/arrayWithHoles.js
deleted file mode 100644
index 5a62a8c..0000000
--- a/node_modules/@babel/runtime/helpers/arrayWithHoles.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _arrayWithHoles(arr) {
-  if (Array.isArray(arr)) return arr;
-}
-
-module.exports = _arrayWithHoles;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js
deleted file mode 100644
index 3234017..0000000
--- a/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function _arrayWithoutHoles(arr) {
-  if (Array.isArray(arr)) {
-    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
-      arr2[i] = arr[i];
-    }
-
-    return arr2;
-  }
-}
-
-module.exports = _arrayWithoutHoles;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/assertThisInitialized.js
deleted file mode 100644
index 98d2949..0000000
--- a/node_modules/@babel/runtime/helpers/assertThisInitialized.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-module.exports = _assertThisInitialized;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js
deleted file mode 100644
index c37ecf2..0000000
--- a/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,58 +0,0 @@
-function _asyncGeneratorDelegate(inner, awaitWrap) {
-  var iter = {},
-      waiting = false;
-
-  function pump(key, value) {
-    waiting = true;
-    value = new Promise(function (resolve) {
-      resolve(inner[key](value));
-    });
-    return {
-      done: false,
-      value: awaitWrap(value)
-    };
-  }
-
-  ;
-
-  if (typeof Symbol === "function" && Symbol.iterator) {
-    iter[Symbol.iterator] = function () {
-      return this;
-    };
-  }
-
-  iter.next = function (value) {
-    if (waiting) {
-      waiting = false;
-      return value;
-    }
-
-    return pump("next", value);
-  };
-
-  if (typeof inner["throw"] === "function") {
-    iter["throw"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        throw value;
-      }
-
-      return pump("throw", value);
-    };
-  }
-
-  if (typeof inner["return"] === "function") {
-    iter["return"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        return value;
-      }
-
-      return pump("return", value);
-    };
-  }
-
-  return iter;
-}
-
-module.exports = _asyncGeneratorDelegate;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/asyncIterator.js b/node_modules/@babel/runtime/helpers/asyncIterator.js
deleted file mode 100644
index ef5db27..0000000
--- a/node_modules/@babel/runtime/helpers/asyncIterator.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function _asyncIterator(iterable) {
-  var method;
-
-  if (typeof Symbol !== "undefined") {
-    if (Symbol.asyncIterator) {
-      method = iterable[Symbol.asyncIterator];
-      if (method != null) return method.call(iterable);
-    }
-
-    if (Symbol.iterator) {
-      method = iterable[Symbol.iterator];
-      if (method != null) return method.call(iterable);
-    }
-  }
-
-  throw new TypeError("Object is not async iterable");
-}
-
-module.exports = _asyncIterator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/asyncToGenerator.js
deleted file mode 100644
index f5db93d..0000000
--- a/node_modules/@babel/runtime/helpers/asyncToGenerator.js
+++ /dev/null
@@ -1,37 +0,0 @@
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
-  try {
-    var info = gen[key](arg);
-    var value = info.value;
-  } catch (error) {
-    reject(error);
-    return;
-  }
-
-  if (info.done) {
-    resolve(value);
-  } else {
-    Promise.resolve(value).then(_next, _throw);
-  }
-}
-
-function _asyncToGenerator(fn) {
-  return function () {
-    var self = this,
-        args = arguments;
-    return new Promise(function (resolve, reject) {
-      var gen = fn.apply(self, args);
-
-      function _next(value) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
-      }
-
-      function _throw(err) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
-      }
-
-      _next(undefined);
-    });
-  };
-}
-
-module.exports = _asyncToGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js
deleted file mode 100644
index 59f797a..0000000
--- a/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var AwaitValue = require("./AwaitValue");
-
-function _awaitAsyncGenerator(value) {
-  return new AwaitValue(value);
-}
-
-module.exports = _awaitAsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classCallCheck.js b/node_modules/@babel/runtime/helpers/classCallCheck.js
deleted file mode 100644
index f389f2e..0000000
--- a/node_modules/@babel/runtime/helpers/classCallCheck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-module.exports = _classCallCheck;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classNameTDZError.js b/node_modules/@babel/runtime/helpers/classNameTDZError.js
deleted file mode 100644
index 8c1bdf5..0000000
--- a/node_modules/@babel/runtime/helpers/classNameTDZError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classNameTDZError(name) {
-  throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
-
-module.exports = _classNameTDZError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js
deleted file mode 100644
index fab9105..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function _classPrivateFieldDestructureSet(receiver, privateMap) {
-  if (!privateMap.has(receiver)) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  var descriptor = privateMap.get(receiver);
-
-  if (descriptor.set) {
-    if (!("__destrObj" in descriptor)) {
-      descriptor.__destrObj = {
-        set value(v) {
-          descriptor.set.call(receiver, v);
-        }
-
-      };
-    }
-
-    return descriptor.__destrObj;
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    return descriptor;
-  }
-}
-
-module.exports = _classPrivateFieldDestructureSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js
deleted file mode 100644
index 106c3cd..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _classPrivateFieldGet(receiver, privateMap) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
-
-module.exports = _classPrivateFieldGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js
deleted file mode 100644
index 64ed79d..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classPrivateFieldBase(receiver, privateKey) {
-  if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
-    throw new TypeError("attempted to use private field on non-instance");
-  }
-
-  return receiver;
-}
-
-module.exports = _classPrivateFieldBase;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js
deleted file mode 100644
index a1a6417..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var id = 0;
-
-function _classPrivateFieldKey(name) {
-  return "__private_" + id++ + "_" + name;
-}
-
-module.exports = _classPrivateFieldKey;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js
deleted file mode 100644
index c92f97a..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js
+++ /dev/null
@@ -1,21 +0,0 @@
-function _classPrivateFieldSet(receiver, privateMap, value) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
-
-module.exports = _classPrivateFieldSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js
deleted file mode 100644
index a3432b9..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classPrivateMethodGet(receiver, privateSet, fn) {
-  if (!privateSet.has(receiver)) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  return fn;
-}
-
-module.exports = _classPrivateMethodGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js
deleted file mode 100644
index 3847284..0000000
--- a/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classPrivateMethodSet() {
-  throw new TypeError("attempted to reassign private method");
-}
-
-module.exports = _classPrivateMethodSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js
deleted file mode 100644
index c2b6766..0000000
--- a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
-
-module.exports = _classStaticPrivateFieldSpecGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js
deleted file mode 100644
index 8799fbb..0000000
--- a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
-
-module.exports = _classStaticPrivateFieldSpecSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js
deleted file mode 100644
index f9b0d00..0000000
--- a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  return method;
-}
-
-module.exports = _classStaticPrivateMethodGet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js
deleted file mode 100644
index 89042da..0000000
--- a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _classStaticPrivateMethodSet() {
-  throw new TypeError("attempted to set read only static private field");
-}
-
-module.exports = _classStaticPrivateMethodSet;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/construct.js b/node_modules/@babel/runtime/helpers/construct.js
deleted file mode 100644
index 723a7ea..0000000
--- a/node_modules/@babel/runtime/helpers/construct.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var setPrototypeOf = require("./setPrototypeOf");
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-  if (Reflect.construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    module.exports = _construct = Reflect.construct;
-  } else {
-    module.exports = _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-      var Constructor = Function.bind.apply(Parent, a);
-      var instance = new Constructor();
-      if (Class) setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
-
-module.exports = _construct;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/createClass.js b/node_modules/@babel/runtime/helpers/createClass.js
deleted file mode 100644
index f9d4841..0000000
--- a/node_modules/@babel/runtime/helpers/createClass.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-module.exports = _createClass;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/decorate.js b/node_modules/@babel/runtime/helpers/decorate.js
deleted file mode 100644
index 77c0b98..0000000
--- a/node_modules/@babel/runtime/helpers/decorate.js
+++ /dev/null
@@ -1,400 +0,0 @@
-var toArray = require("./toArray");
-
-var toPropertyKey = require("./toPropertyKey");
-
-function _decorate(decorators, factory, superClass, mixins) {
-  var api = _getDecoratorsApi();
-
-  if (mixins) {
-    for (var i = 0; i < mixins.length; i++) {
-      api = mixins[i](api);
-    }
-  }
-
-  var r = factory(function initialize(O) {
-    api.initializeInstanceElements(O, decorated.elements);
-  }, superClass);
-  var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
-  api.initializeClassElements(r.F, decorated.elements);
-  return api.runClassFinishers(r.F, decorated.finishers);
-}
-
-function _getDecoratorsApi() {
-  _getDecoratorsApi = function _getDecoratorsApi() {
-    return api;
-  };
-
-  var api = {
-    elementsDefinitionOrder: [["method"], ["field"]],
-    initializeInstanceElements: function initializeInstanceElements(O, elements) {
-      ["method", "field"].forEach(function (kind) {
-        elements.forEach(function (element) {
-          if (element.kind === kind && element.placement === "own") {
-            this.defineClassElement(O, element);
-          }
-        }, this);
-      }, this);
-    },
-    initializeClassElements: function initializeClassElements(F, elements) {
-      var proto = F.prototype;
-      ["method", "field"].forEach(function (kind) {
-        elements.forEach(function (element) {
-          var placement = element.placement;
-
-          if (element.kind === kind && (placement === "static" || placement === "prototype")) {
-            var receiver = placement === "static" ? F : proto;
-            this.defineClassElement(receiver, element);
-          }
-        }, this);
-      }, this);
-    },
-    defineClassElement: function defineClassElement(receiver, element) {
-      var descriptor = element.descriptor;
-
-      if (element.kind === "field") {
-        var initializer = element.initializer;
-        descriptor = {
-          enumerable: descriptor.enumerable,
-          writable: descriptor.writable,
-          configurable: descriptor.configurable,
-          value: initializer === void 0 ? void 0 : initializer.call(receiver)
-        };
-      }
-
-      Object.defineProperty(receiver, element.key, descriptor);
-    },
-    decorateClass: function decorateClass(elements, decorators) {
-      var newElements = [];
-      var finishers = [];
-      var placements = {
-        "static": [],
-        prototype: [],
-        own: []
-      };
-      elements.forEach(function (element) {
-        this.addElementPlacement(element, placements);
-      }, this);
-      elements.forEach(function (element) {
-        if (!_hasDecorators(element)) return newElements.push(element);
-        var elementFinishersExtras = this.decorateElement(element, placements);
-        newElements.push(elementFinishersExtras.element);
-        newElements.push.apply(newElements, elementFinishersExtras.extras);
-        finishers.push.apply(finishers, elementFinishersExtras.finishers);
-      }, this);
-
-      if (!decorators) {
-        return {
-          elements: newElements,
-          finishers: finishers
-        };
-      }
-
-      var result = this.decorateConstructor(newElements, decorators);
-      finishers.push.apply(finishers, result.finishers);
-      result.finishers = finishers;
-      return result;
-    },
-    addElementPlacement: function addElementPlacement(element, placements, silent) {
-      var keys = placements[element.placement];
-
-      if (!silent && keys.indexOf(element.key) !== -1) {
-        throw new TypeError("Duplicated element (" + element.key + ")");
-      }
-
-      keys.push(element.key);
-    },
-    decorateElement: function decorateElement(element, placements) {
-      var extras = [];
-      var finishers = [];
-
-      for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
-        var keys = placements[element.placement];
-        keys.splice(keys.indexOf(element.key), 1);
-        var elementObject = this.fromElementDescriptor(element);
-        var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
-        element = elementFinisherExtras.element;
-        this.addElementPlacement(element, placements);
-
-        if (elementFinisherExtras.finisher) {
-          finishers.push(elementFinisherExtras.finisher);
-        }
-
-        var newExtras = elementFinisherExtras.extras;
-
-        if (newExtras) {
-          for (var j = 0; j < newExtras.length; j++) {
-            this.addElementPlacement(newExtras[j], placements);
-          }
-
-          extras.push.apply(extras, newExtras);
-        }
-      }
-
-      return {
-        element: element,
-        finishers: finishers,
-        extras: extras
-      };
-    },
-    decorateConstructor: function decorateConstructor(elements, decorators) {
-      var finishers = [];
-
-      for (var i = decorators.length - 1; i >= 0; i--) {
-        var obj = this.fromClassDescriptor(elements);
-        var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
-
-        if (elementsAndFinisher.finisher !== undefined) {
-          finishers.push(elementsAndFinisher.finisher);
-        }
-
-        if (elementsAndFinisher.elements !== undefined) {
-          elements = elementsAndFinisher.elements;
-
-          for (var j = 0; j < elements.length - 1; j++) {
-            for (var k = j + 1; k < elements.length; k++) {
-              if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
-                throw new TypeError("Duplicated element (" + elements[j].key + ")");
-              }
-            }
-          }
-        }
-      }
-
-      return {
-        elements: elements,
-        finishers: finishers
-      };
-    },
-    fromElementDescriptor: function fromElementDescriptor(element) {
-      var obj = {
-        kind: element.kind,
-        key: element.key,
-        placement: element.placement,
-        descriptor: element.descriptor
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-      Object.defineProperty(obj, Symbol.toStringTag, desc);
-      if (element.kind === "field") obj.initializer = element.initializer;
-      return obj;
-    },
-    toElementDescriptors: function toElementDescriptors(elementObjects) {
-      if (elementObjects === undefined) return;
-      return toArray(elementObjects).map(function (elementObject) {
-        var element = this.toElementDescriptor(elementObject);
-        this.disallowProperty(elementObject, "finisher", "An element descriptor");
-        this.disallowProperty(elementObject, "extras", "An element descriptor");
-        return element;
-      }, this);
-    },
-    toElementDescriptor: function toElementDescriptor(elementObject) {
-      var kind = String(elementObject.kind);
-
-      if (kind !== "method" && kind !== "field") {
-        throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
-      }
-
-      var key = toPropertyKey(elementObject.key);
-      var placement = String(elementObject.placement);
-
-      if (placement !== "static" && placement !== "prototype" && placement !== "own") {
-        throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
-      }
-
-      var descriptor = elementObject.descriptor;
-      this.disallowProperty(elementObject, "elements", "An element descriptor");
-      var element = {
-        kind: kind,
-        key: key,
-        placement: placement,
-        descriptor: Object.assign({}, descriptor)
-      };
-
-      if (kind !== "field") {
-        this.disallowProperty(elementObject, "initializer", "A method descriptor");
-      } else {
-        this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
-        element.initializer = elementObject.initializer;
-      }
-
-      return element;
-    },
-    toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
-      var element = this.toElementDescriptor(elementObject);
-
-      var finisher = _optionalCallableProperty(elementObject, "finisher");
-
-      var extras = this.toElementDescriptors(elementObject.extras);
-      return {
-        element: element,
-        finisher: finisher,
-        extras: extras
-      };
-    },
-    fromClassDescriptor: function fromClassDescriptor(elements) {
-      var obj = {
-        kind: "class",
-        elements: elements.map(this.fromElementDescriptor, this)
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-      Object.defineProperty(obj, Symbol.toStringTag, desc);
-      return obj;
-    },
-    toClassDescriptor: function toClassDescriptor(obj) {
-      var kind = String(obj.kind);
-
-      if (kind !== "class") {
-        throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
-      }
-
-      this.disallowProperty(obj, "key", "A class descriptor");
-      this.disallowProperty(obj, "placement", "A class descriptor");
-      this.disallowProperty(obj, "descriptor", "A class descriptor");
-      this.disallowProperty(obj, "initializer", "A class descriptor");
-      this.disallowProperty(obj, "extras", "A class descriptor");
-
-      var finisher = _optionalCallableProperty(obj, "finisher");
-
-      var elements = this.toElementDescriptors(obj.elements);
-      return {
-        elements: elements,
-        finisher: finisher
-      };
-    },
-    runClassFinishers: function runClassFinishers(constructor, finishers) {
-      for (var i = 0; i < finishers.length; i++) {
-        var newConstructor = (0, finishers[i])(constructor);
-
-        if (newConstructor !== undefined) {
-          if (typeof newConstructor !== "function") {
-            throw new TypeError("Finishers must return a constructor.");
-          }
-
-          constructor = newConstructor;
-        }
-      }
-
-      return constructor;
-    },
-    disallowProperty: function disallowProperty(obj, name, objectType) {
-      if (obj[name] !== undefined) {
-        throw new TypeError(objectType + " can't have a ." + name + " property.");
-      }
-    }
-  };
-  return api;
-}
-
-function _createElementDescriptor(def) {
-  var key = toPropertyKey(def.key);
-  var descriptor;
-
-  if (def.kind === "method") {
-    descriptor = {
-      value: def.value,
-      writable: true,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "get") {
-    descriptor = {
-      get: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "set") {
-    descriptor = {
-      set: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "field") {
-    descriptor = {
-      configurable: true,
-      writable: true,
-      enumerable: true
-    };
-  }
-
-  var element = {
-    kind: def.kind === "field" ? "field" : "method",
-    key: key,
-    placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
-    descriptor: descriptor
-  };
-  if (def.decorators) element.decorators = def.decorators;
-  if (def.kind === "field") element.initializer = def.value;
-  return element;
-}
-
-function _coalesceGetterSetter(element, other) {
-  if (element.descriptor.get !== undefined) {
-    other.descriptor.get = element.descriptor.get;
-  } else {
-    other.descriptor.set = element.descriptor.set;
-  }
-}
-
-function _coalesceClassElements(elements) {
-  var newElements = [];
-
-  var isSameElement = function isSameElement(other) {
-    return other.kind === "method" && other.key === element.key && other.placement === element.placement;
-  };
-
-  for (var i = 0; i < elements.length; i++) {
-    var element = elements[i];
-    var other;
-
-    if (element.kind === "method" && (other = newElements.find(isSameElement))) {
-      if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
-        if (_hasDecorators(element) || _hasDecorators(other)) {
-          throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
-        }
-
-        other.descriptor = element.descriptor;
-      } else {
-        if (_hasDecorators(element)) {
-          if (_hasDecorators(other)) {
-            throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
-          }
-
-          other.decorators = element.decorators;
-        }
-
-        _coalesceGetterSetter(element, other);
-      }
-    } else {
-      newElements.push(element);
-    }
-  }
-
-  return newElements;
-}
-
-function _hasDecorators(element) {
-  return element.decorators && element.decorators.length;
-}
-
-function _isDataDescriptor(desc) {
-  return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-
-function _optionalCallableProperty(obj, name) {
-  var value = obj[name];
-
-  if (value !== undefined && typeof value !== "function") {
-    throw new TypeError("Expected '" + name + "' to be a function");
-  }
-
-  return value;
-}
-
-module.exports = _decorate;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/defaults.js b/node_modules/@babel/runtime/helpers/defaults.js
deleted file mode 100644
index 55ba1fe..0000000
--- a/node_modules/@babel/runtime/helpers/defaults.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function _defaults(obj, defaults) {
-  var keys = Object.getOwnPropertyNames(defaults);
-
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-    var value = Object.getOwnPropertyDescriptor(defaults, key);
-
-    if (value && value.configurable && obj[key] === undefined) {
-      Object.defineProperty(obj, key, value);
-    }
-  }
-
-  return obj;
-}
-
-module.exports = _defaults;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js
deleted file mode 100644
index 5d80ea1..0000000
--- a/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js
+++ /dev/null
@@ -1,24 +0,0 @@
-function _defineEnumerableProperties(obj, descs) {
-  for (var key in descs) {
-    var desc = descs[key];
-    desc.configurable = desc.enumerable = true;
-    if ("value" in desc) desc.writable = true;
-    Object.defineProperty(obj, key, desc);
-  }
-
-  if (Object.getOwnPropertySymbols) {
-    var objectSymbols = Object.getOwnPropertySymbols(descs);
-
-    for (var i = 0; i < objectSymbols.length; i++) {
-      var sym = objectSymbols[i];
-      var desc = descs[sym];
-      desc.configurable = desc.enumerable = true;
-      if ("value" in desc) desc.writable = true;
-      Object.defineProperty(obj, sym, desc);
-    }
-  }
-
-  return obj;
-}
-
-module.exports = _defineEnumerableProperties;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/defineProperty.js b/node_modules/@babel/runtime/helpers/defineProperty.js
deleted file mode 100644
index 32a8d73..0000000
--- a/node_modules/@babel/runtime/helpers/defineProperty.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
-
-module.exports = _defineProperty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js
deleted file mode 100644
index 65361d9..0000000
--- a/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js
+++ /dev/null
@@ -1,97 +0,0 @@
-import AwaitValue from "./AwaitValue";
-export default function AsyncGenerator(gen) {
-  var front, back;
-
-  function send(key, arg) {
-    return new Promise(function (resolve, reject) {
-      var request = {
-        key: key,
-        arg: arg,
-        resolve: resolve,
-        reject: reject,
-        next: null
-      };
-
-      if (back) {
-        back = back.next = request;
-      } else {
-        front = back = request;
-        resume(key, arg);
-      }
-    });
-  }
-
-  function resume(key, arg) {
-    try {
-      var result = gen[key](arg);
-      var value = result.value;
-      var wrappedAwait = value instanceof AwaitValue;
-      Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
-        if (wrappedAwait) {
-          resume(key === "return" ? "return" : "next", arg);
-          return;
-        }
-
-        settle(result.done ? "return" : "normal", arg);
-      }, function (err) {
-        resume("throw", err);
-      });
-    } catch (err) {
-      settle("throw", err);
-    }
-  }
-
-  function settle(type, value) {
-    switch (type) {
-      case "return":
-        front.resolve({
-          value: value,
-          done: true
-        });
-        break;
-
-      case "throw":
-        front.reject(value);
-        break;
-
-      default:
-        front.resolve({
-          value: value,
-          done: false
-        });
-        break;
-    }
-
-    front = front.next;
-
-    if (front) {
-      resume(front.key, front.arg);
-    } else {
-      back = null;
-    }
-  }
-
-  this._invoke = send;
-
-  if (typeof gen["return"] !== "function") {
-    this["return"] = undefined;
-  }
-}
-
-if (typeof Symbol === "function" && Symbol.asyncIterator) {
-  AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
-    return this;
-  };
-}
-
-AsyncGenerator.prototype.next = function (arg) {
-  return this._invoke("next", arg);
-};
-
-AsyncGenerator.prototype["throw"] = function (arg) {
-  return this._invoke("throw", arg);
-};
-
-AsyncGenerator.prototype["return"] = function (arg) {
-  return this._invoke("return", arg);
-};
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/AwaitValue.js b/node_modules/@babel/runtime/helpers/esm/AwaitValue.js
deleted file mode 100644
index 5237e18..0000000
--- a/node_modules/@babel/runtime/helpers/esm/AwaitValue.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _AwaitValue(value) {
-  this.wrapped = value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js
deleted file mode 100644
index 84b5961..0000000
--- a/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,28 +0,0 @@
-export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
-  var desc = {};
-  Object.keys(descriptor).forEach(function (key) {
-    desc[key] = descriptor[key];
-  });
-  desc.enumerable = !!desc.enumerable;
-  desc.configurable = !!desc.configurable;
-
-  if ('value' in desc || desc.initializer) {
-    desc.writable = true;
-  }
-
-  desc = decorators.slice().reverse().reduce(function (desc, decorator) {
-    return decorator(target, property, desc) || desc;
-  }, desc);
-
-  if (context && desc.initializer !== void 0) {
-    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
-    desc.initializer = undefined;
-  }
-
-  if (desc.initializer === void 0) {
-    Object.defineProperty(target, property, desc);
-    desc = null;
-  }
-
-  return desc;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
deleted file mode 100644
index be734fc..0000000
--- a/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _arrayWithHoles(arr) {
-  if (Array.isArray(arr)) return arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
deleted file mode 100644
index cbcffa1..0000000
--- a/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function _arrayWithoutHoles(arr) {
-  if (Array.isArray(arr)) {
-    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
-      arr2[i] = arr[i];
-    }
-
-    return arr2;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
deleted file mode 100644
index bbf849c..0000000
--- a/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js
deleted file mode 100644
index eb56fe5..0000000
--- a/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,56 +0,0 @@
-export default function _asyncGeneratorDelegate(inner, awaitWrap) {
-  var iter = {},
-      waiting = false;
-
-  function pump(key, value) {
-    waiting = true;
-    value = new Promise(function (resolve) {
-      resolve(inner[key](value));
-    });
-    return {
-      done: false,
-      value: awaitWrap(value)
-    };
-  }
-
-  ;
-
-  if (typeof Symbol === "function" && Symbol.iterator) {
-    iter[Symbol.iterator] = function () {
-      return this;
-    };
-  }
-
-  iter.next = function (value) {
-    if (waiting) {
-      waiting = false;
-      return value;
-    }
-
-    return pump("next", value);
-  };
-
-  if (typeof inner["throw"] === "function") {
-    iter["throw"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        throw value;
-      }
-
-      return pump("throw", value);
-    };
-  }
-
-  if (typeof inner["return"] === "function") {
-    iter["return"] = function (value) {
-      if (waiting) {
-        waiting = false;
-        return value;
-      }
-
-      return pump("return", value);
-    };
-  }
-
-  return iter;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/asyncIterator.js b/node_modules/@babel/runtime/helpers/esm/asyncIterator.js
deleted file mode 100644
index e03fa97..0000000
--- a/node_modules/@babel/runtime/helpers/esm/asyncIterator.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default function _asyncIterator(iterable) {
-  var method;
-
-  if (typeof Symbol !== "undefined") {
-    if (Symbol.asyncIterator) {
-      method = iterable[Symbol.asyncIterator];
-      if (method != null) return method.call(iterable);
-    }
-
-    if (Symbol.iterator) {
-      method = iterable[Symbol.iterator];
-      if (method != null) return method.call(iterable);
-    }
-  }
-
-  throw new TypeError("Object is not async iterable");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
deleted file mode 100644
index 2a25f54..0000000
--- a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
+++ /dev/null
@@ -1,35 +0,0 @@
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
-  try {
-    var info = gen[key](arg);
-    var value = info.value;
-  } catch (error) {
-    reject(error);
-    return;
-  }
-
-  if (info.done) {
-    resolve(value);
-  } else {
-    Promise.resolve(value).then(_next, _throw);
-  }
-}
-
-export default function _asyncToGenerator(fn) {
-  return function () {
-    var self = this,
-        args = arguments;
-    return new Promise(function (resolve, reject) {
-      var gen = fn.apply(self, args);
-
-      function _next(value) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
-      }
-
-      function _throw(err) {
-        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
-      }
-
-      _next(undefined);
-    });
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js
deleted file mode 100644
index 462f99c..0000000
--- a/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import AwaitValue from "./AwaitValue";
-export default function _awaitAsyncGenerator(value) {
-  return new AwaitValue(value);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classCallCheck.js b/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
deleted file mode 100644
index 2f1738a..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js b/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js
deleted file mode 100644
index f7b6dd5..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classNameTDZError(name) {
-  throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js
deleted file mode 100644
index 1f265bc..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,26 +0,0 @@
-export default function _classPrivateFieldDestructureSet(receiver, privateMap) {
-  if (!privateMap.has(receiver)) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  var descriptor = privateMap.get(receiver);
-
-  if (descriptor.set) {
-    if (!("__destrObj" in descriptor)) {
-      descriptor.__destrObj = {
-        set value(v) {
-          descriptor.set.call(receiver, v);
-        }
-
-      };
-    }
-
-    return descriptor.__destrObj;
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    return descriptor;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js
deleted file mode 100644
index f8287f1..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js
+++ /dev/null
@@ -1,13 +0,0 @@
-export default function _classPrivateFieldGet(receiver, privateMap) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js
deleted file mode 100644
index 5b10916..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classPrivateFieldBase(receiver, privateKey) {
-  if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
-    throw new TypeError("attempted to use private field on non-instance");
-  }
-
-  return receiver;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js
deleted file mode 100644
index 5b7e5ac..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var id = 0;
-export default function _classPrivateFieldKey(name) {
-  return "__private_" + id++ + "_" + name;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js
deleted file mode 100644
index fb4e5d2..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default function _classPrivateFieldSet(receiver, privateMap, value) {
-  var descriptor = privateMap.get(receiver);
-
-  if (!descriptor) {
-    throw new TypeError("attempted to set private field on non-instance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js
deleted file mode 100644
index 38b9d58..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classPrivateMethodGet(receiver, privateSet, fn) {
-  if (!privateSet.has(receiver)) {
-    throw new TypeError("attempted to get private field on non-instance");
-  }
-
-  return fn;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js
deleted file mode 100644
index 2bbaf3a..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classPrivateMethodSet() {
-  throw new TypeError("attempted to reassign private method");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js
deleted file mode 100644
index 75a9b7c..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.get) {
-    return descriptor.get.call(receiver);
-  }
-
-  return descriptor.value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js
deleted file mode 100644
index 163279f..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  if (descriptor.set) {
-    descriptor.set.call(receiver, value);
-  } else {
-    if (!descriptor.writable) {
-      throw new TypeError("attempted to set read only private field");
-    }
-
-    descriptor.value = value;
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js
deleted file mode 100644
index da9b1e5..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
-  if (receiver !== classConstructor) {
-    throw new TypeError("Private static access of wrong provenance");
-  }
-
-  return method;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js
deleted file mode 100644
index d5ab60a..0000000
--- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classStaticPrivateMethodSet() {
-  throw new TypeError("attempted to set read only static private field");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/construct.js b/node_modules/@babel/runtime/helpers/esm/construct.js
deleted file mode 100644
index 82f20fa..0000000
--- a/node_modules/@babel/runtime/helpers/esm/construct.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import setPrototypeOf from "./setPrototypeOf";
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-  if (Reflect.construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-export default function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    _construct = Reflect.construct;
-  } else {
-    _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-      var Constructor = Function.bind.apply(Parent, a);
-      var instance = new Constructor();
-      if (Class) setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/createClass.js b/node_modules/@babel/runtime/helpers/esm/createClass.js
deleted file mode 100644
index d6cf412..0000000
--- a/node_modules/@babel/runtime/helpers/esm/createClass.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-export default function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/decorate.js b/node_modules/@babel/runtime/helpers/esm/decorate.js
deleted file mode 100644
index b6acd1f..0000000
--- a/node_modules/@babel/runtime/helpers/esm/decorate.js
+++ /dev/null
@@ -1,396 +0,0 @@
-import toArray from "./toArray";
-import toPropertyKey from "./toPropertyKey";
-export default function _decorate(decorators, factory, superClass, mixins) {
-  var api = _getDecoratorsApi();
-
-  if (mixins) {
-    for (var i = 0; i < mixins.length; i++) {
-      api = mixins[i](api);
-    }
-  }
-
-  var r = factory(function initialize(O) {
-    api.initializeInstanceElements(O, decorated.elements);
-  }, superClass);
-  var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
-  api.initializeClassElements(r.F, decorated.elements);
-  return api.runClassFinishers(r.F, decorated.finishers);
-}
-
-function _getDecoratorsApi() {
-  _getDecoratorsApi = function _getDecoratorsApi() {
-    return api;
-  };
-
-  var api = {
-    elementsDefinitionOrder: [["method"], ["field"]],
-    initializeInstanceElements: function initializeInstanceElements(O, elements) {
-      ["method", "field"].forEach(function (kind) {
-        elements.forEach(function (element) {
-          if (element.kind === kind && element.placement === "own") {
-            this.defineClassElement(O, element);
-          }
-        }, this);
-      }, this);
-    },
-    initializeClassElements: function initializeClassElements(F, elements) {
-      var proto = F.prototype;
-      ["method", "field"].forEach(function (kind) {
-        elements.forEach(function (element) {
-          var placement = element.placement;
-
-          if (element.kind === kind && (placement === "static" || placement === "prototype")) {
-            var receiver = placement === "static" ? F : proto;
-            this.defineClassElement(receiver, element);
-          }
-        }, this);
-      }, this);
-    },
-    defineClassElement: function defineClassElement(receiver, element) {
-      var descriptor = element.descriptor;
-
-      if (element.kind === "field") {
-        var initializer = element.initializer;
-        descriptor = {
-          enumerable: descriptor.enumerable,
-          writable: descriptor.writable,
-          configurable: descriptor.configurable,
-          value: initializer === void 0 ? void 0 : initializer.call(receiver)
-        };
-      }
-
-      Object.defineProperty(receiver, element.key, descriptor);
-    },
-    decorateClass: function decorateClass(elements, decorators) {
-      var newElements = [];
-      var finishers = [];
-      var placements = {
-        "static": [],
-        prototype: [],
-        own: []
-      };
-      elements.forEach(function (element) {
-        this.addElementPlacement(element, placements);
-      }, this);
-      elements.forEach(function (element) {
-        if (!_hasDecorators(element)) return newElements.push(element);
-        var elementFinishersExtras = this.decorateElement(element, placements);
-        newElements.push(elementFinishersExtras.element);
-        newElements.push.apply(newElements, elementFinishersExtras.extras);
-        finishers.push.apply(finishers, elementFinishersExtras.finishers);
-      }, this);
-
-      if (!decorators) {
-        return {
-          elements: newElements,
-          finishers: finishers
-        };
-      }
-
-      var result = this.decorateConstructor(newElements, decorators);
-      finishers.push.apply(finishers, result.finishers);
-      result.finishers = finishers;
-      return result;
-    },
-    addElementPlacement: function addElementPlacement(element, placements, silent) {
-      var keys = placements[element.placement];
-
-      if (!silent && keys.indexOf(element.key) !== -1) {
-        throw new TypeError("Duplicated element (" + element.key + ")");
-      }
-
-      keys.push(element.key);
-    },
-    decorateElement: function decorateElement(element, placements) {
-      var extras = [];
-      var finishers = [];
-
-      for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
-        var keys = placements[element.placement];
-        keys.splice(keys.indexOf(element.key), 1);
-        var elementObject = this.fromElementDescriptor(element);
-        var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
-        element = elementFinisherExtras.element;
-        this.addElementPlacement(element, placements);
-
-        if (elementFinisherExtras.finisher) {
-          finishers.push(elementFinisherExtras.finisher);
-        }
-
-        var newExtras = elementFinisherExtras.extras;
-
-        if (newExtras) {
-          for (var j = 0; j < newExtras.length; j++) {
-            this.addElementPlacement(newExtras[j], placements);
-          }
-
-          extras.push.apply(extras, newExtras);
-        }
-      }
-
-      return {
-        element: element,
-        finishers: finishers,
-        extras: extras
-      };
-    },
-    decorateConstructor: function decorateConstructor(elements, decorators) {
-      var finishers = [];
-
-      for (var i = decorators.length - 1; i >= 0; i--) {
-        var obj = this.fromClassDescriptor(elements);
-        var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
-
-        if (elementsAndFinisher.finisher !== undefined) {
-          finishers.push(elementsAndFinisher.finisher);
-        }
-
-        if (elementsAndFinisher.elements !== undefined) {
-          elements = elementsAndFinisher.elements;
-
-          for (var j = 0; j < elements.length - 1; j++) {
-            for (var k = j + 1; k < elements.length; k++) {
-              if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
-                throw new TypeError("Duplicated element (" + elements[j].key + ")");
-              }
-            }
-          }
-        }
-      }
-
-      return {
-        elements: elements,
-        finishers: finishers
-      };
-    },
-    fromElementDescriptor: function fromElementDescriptor(element) {
-      var obj = {
-        kind: element.kind,
-        key: element.key,
-        placement: element.placement,
-        descriptor: element.descriptor
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-      Object.defineProperty(obj, Symbol.toStringTag, desc);
-      if (element.kind === "field") obj.initializer = element.initializer;
-      return obj;
-    },
-    toElementDescriptors: function toElementDescriptors(elementObjects) {
-      if (elementObjects === undefined) return;
-      return toArray(elementObjects).map(function (elementObject) {
-        var element = this.toElementDescriptor(elementObject);
-        this.disallowProperty(elementObject, "finisher", "An element descriptor");
-        this.disallowProperty(elementObject, "extras", "An element descriptor");
-        return element;
-      }, this);
-    },
-    toElementDescriptor: function toElementDescriptor(elementObject) {
-      var kind = String(elementObject.kind);
-
-      if (kind !== "method" && kind !== "field") {
-        throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
-      }
-
-      var key = toPropertyKey(elementObject.key);
-      var placement = String(elementObject.placement);
-
-      if (placement !== "static" && placement !== "prototype" && placement !== "own") {
-        throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
-      }
-
-      var descriptor = elementObject.descriptor;
-      this.disallowProperty(elementObject, "elements", "An element descriptor");
-      var element = {
-        kind: kind,
-        key: key,
-        placement: placement,
-        descriptor: Object.assign({}, descriptor)
-      };
-
-      if (kind !== "field") {
-        this.disallowProperty(elementObject, "initializer", "A method descriptor");
-      } else {
-        this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
-        this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
-        element.initializer = elementObject.initializer;
-      }
-
-      return element;
-    },
-    toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
-      var element = this.toElementDescriptor(elementObject);
-
-      var finisher = _optionalCallableProperty(elementObject, "finisher");
-
-      var extras = this.toElementDescriptors(elementObject.extras);
-      return {
-        element: element,
-        finisher: finisher,
-        extras: extras
-      };
-    },
-    fromClassDescriptor: function fromClassDescriptor(elements) {
-      var obj = {
-        kind: "class",
-        elements: elements.map(this.fromElementDescriptor, this)
-      };
-      var desc = {
-        value: "Descriptor",
-        configurable: true
-      };
-      Object.defineProperty(obj, Symbol.toStringTag, desc);
-      return obj;
-    },
-    toClassDescriptor: function toClassDescriptor(obj) {
-      var kind = String(obj.kind);
-
-      if (kind !== "class") {
-        throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
-      }
-
-      this.disallowProperty(obj, "key", "A class descriptor");
-      this.disallowProperty(obj, "placement", "A class descriptor");
-      this.disallowProperty(obj, "descriptor", "A class descriptor");
-      this.disallowProperty(obj, "initializer", "A class descriptor");
-      this.disallowProperty(obj, "extras", "A class descriptor");
-
-      var finisher = _optionalCallableProperty(obj, "finisher");
-
-      var elements = this.toElementDescriptors(obj.elements);
-      return {
-        elements: elements,
-        finisher: finisher
-      };
-    },
-    runClassFinishers: function runClassFinishers(constructor, finishers) {
-      for (var i = 0; i < finishers.length; i++) {
-        var newConstructor = (0, finishers[i])(constructor);
-
-        if (newConstructor !== undefined) {
-          if (typeof newConstructor !== "function") {
-            throw new TypeError("Finishers must return a constructor.");
-          }
-
-          constructor = newConstructor;
-        }
-      }
-
-      return constructor;
-    },
-    disallowProperty: function disallowProperty(obj, name, objectType) {
-      if (obj[name] !== undefined) {
-        throw new TypeError(objectType + " can't have a ." + name + " property.");
-      }
-    }
-  };
-  return api;
-}
-
-function _createElementDescriptor(def) {
-  var key = toPropertyKey(def.key);
-  var descriptor;
-
-  if (def.kind === "method") {
-    descriptor = {
-      value: def.value,
-      writable: true,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "get") {
-    descriptor = {
-      get: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "set") {
-    descriptor = {
-      set: def.value,
-      configurable: true,
-      enumerable: false
-    };
-  } else if (def.kind === "field") {
-    descriptor = {
-      configurable: true,
-      writable: true,
-      enumerable: true
-    };
-  }
-
-  var element = {
-    kind: def.kind === "field" ? "field" : "method",
-    key: key,
-    placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
-    descriptor: descriptor
-  };
-  if (def.decorators) element.decorators = def.decorators;
-  if (def.kind === "field") element.initializer = def.value;
-  return element;
-}
-
-function _coalesceGetterSetter(element, other) {
-  if (element.descriptor.get !== undefined) {
-    other.descriptor.get = element.descriptor.get;
-  } else {
-    other.descriptor.set = element.descriptor.set;
-  }
-}
-
-function _coalesceClassElements(elements) {
-  var newElements = [];
-
-  var isSameElement = function isSameElement(other) {
-    return other.kind === "method" && other.key === element.key && other.placement === element.placement;
-  };
-
-  for (var i = 0; i < elements.length; i++) {
-    var element = elements[i];
-    var other;
-
-    if (element.kind === "method" && (other = newElements.find(isSameElement))) {
-      if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
-        if (_hasDecorators(element) || _hasDecorators(other)) {
-          throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
-        }
-
-        other.descriptor = element.descriptor;
-      } else {
-        if (_hasDecorators(element)) {
-          if (_hasDecorators(other)) {
-            throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
-          }
-
-          other.decorators = element.decorators;
-        }
-
-        _coalesceGetterSetter(element, other);
-      }
-    } else {
-      newElements.push(element);
-    }
-  }
-
-  return newElements;
-}
-
-function _hasDecorators(element) {
-  return element.decorators && element.decorators.length;
-}
-
-function _isDataDescriptor(desc) {
-  return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-
-function _optionalCallableProperty(obj, name) {
-  var value = obj[name];
-
-  if (value !== undefined && typeof value !== "function") {
-    throw new TypeError("Expected '" + name + "' to be a function");
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/defaults.js b/node_modules/@babel/runtime/helpers/esm/defaults.js
deleted file mode 100644
index 3de1d8e..0000000
--- a/node_modules/@babel/runtime/helpers/esm/defaults.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default function _defaults(obj, defaults) {
-  var keys = Object.getOwnPropertyNames(defaults);
-
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-    var value = Object.getOwnPropertyDescriptor(defaults, key);
-
-    if (value && value.configurable && obj[key] === undefined) {
-      Object.defineProperty(obj, key, value);
-    }
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js
deleted file mode 100644
index 7981acd..0000000
--- a/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js
+++ /dev/null
@@ -1,22 +0,0 @@
-export default function _defineEnumerableProperties(obj, descs) {
-  for (var key in descs) {
-    var desc = descs[key];
-    desc.configurable = desc.enumerable = true;
-    if ("value" in desc) desc.writable = true;
-    Object.defineProperty(obj, key, desc);
-  }
-
-  if (Object.getOwnPropertySymbols) {
-    var objectSymbols = Object.getOwnPropertySymbols(descs);
-
-    for (var i = 0; i < objectSymbols.length; i++) {
-      var sym = objectSymbols[i];
-      var desc = descs[sym];
-      desc.configurable = desc.enumerable = true;
-      if ("value" in desc) desc.writable = true;
-      Object.defineProperty(obj, sym, desc);
-    }
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/defineProperty.js b/node_modules/@babel/runtime/helpers/esm/defineProperty.js
deleted file mode 100644
index 7cf6e59..0000000
--- a/node_modules/@babel/runtime/helpers/esm/defineProperty.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default function _defineProperty(obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/extends.js b/node_modules/@babel/runtime/helpers/esm/extends.js
deleted file mode 100644
index b9b138d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/extends.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default function _extends() {
-  _extends = Object.assign || function (target) {
-    for (var i = 1; i < arguments.length; i++) {
-      var source = arguments[i];
-
-      for (var key in source) {
-        if (Object.prototype.hasOwnProperty.call(source, key)) {
-          target[key] = source[key];
-        }
-      }
-    }
-
-    return target;
-  };
-
-  return _extends.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/get.js b/node_modules/@babel/runtime/helpers/esm/get.js
deleted file mode 100644
index a369d4d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/get.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import superPropBase from "./superPropBase";
-export default function _get(target, property, receiver) {
-  if (typeof Reflect !== "undefined" && Reflect.get) {
-    _get = Reflect.get;
-  } else {
-    _get = function _get(target, property, receiver) {
-      var base = superPropBase(target, property);
-      if (!base) return;
-      var desc = Object.getOwnPropertyDescriptor(base, property);
-
-      if (desc.get) {
-        return desc.get.call(receiver);
-      }
-
-      return desc.value;
-    };
-  }
-
-  return _get(target, property, receiver || target);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
deleted file mode 100644
index 5abafe3..0000000
--- a/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _getPrototypeOf(o) {
-  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || Object.getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/inherits.js b/node_modules/@babel/runtime/helpers/esm/inherits.js
deleted file mode 100644
index 035648d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/inherits.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import setPrototypeOf from "./setPrototypeOf";
-export default function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = Object.create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js b/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
deleted file mode 100644
index 32017e6..0000000
--- a/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js
deleted file mode 100644
index 26fdea0..0000000
--- a/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function _initializerDefineProperty(target, property, descriptor, context) {
-  if (!descriptor) return;
-  Object.defineProperty(target, property, {
-    enumerable: descriptor.enumerable,
-    configurable: descriptor.configurable,
-    writable: descriptor.writable,
-    value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
-  });
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js
deleted file mode 100644
index 30d518c..0000000
--- a/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _initializerWarningHelper(descriptor, context) {
-  throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.');
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/instanceof.js b/node_modules/@babel/runtime/helpers/esm/instanceof.js
deleted file mode 100644
index 8c43b71..0000000
--- a/node_modules/@babel/runtime/helpers/esm/instanceof.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _instanceof(left, right) {
-  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
-    return !!right[Symbol.hasInstance](left);
-  } else {
-    return left instanceof right;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js
deleted file mode 100644
index c2df7b6..0000000
--- a/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js
deleted file mode 100644
index d39be9e..0000000
--- a/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-
-function _getRequireWildcardCache() {
-  if (typeof WeakMap !== "function") return null;
-  var cache = new WeakMap();
-
-  _getRequireWildcardCache = function _getRequireWildcardCache() {
-    return cache;
-  };
-
-  return cache;
-}
-
-export default function _interopRequireWildcard(obj) {
-  if (obj && obj.__esModule) {
-    return obj;
-  }
-
-  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
-    return {
-      "default": obj
-    };
-  }
-
-  var cache = _getRequireWildcardCache();
-
-  if (cache && cache.has(obj)) {
-    return cache.get(obj);
-  }
-
-  var newObj = {};
-  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
-
-      if (desc && (desc.get || desc.set)) {
-        Object.defineProperty(newObj, key, desc);
-      } else {
-        newObj[key] = obj[key];
-      }
-    }
-  }
-
-  newObj["default"] = obj;
-
-  if (cache) {
-    cache.set(obj, newObj);
-  }
-
-  return newObj;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js b/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
deleted file mode 100644
index 7b1bc82..0000000
--- a/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _isNativeFunction(fn) {
-  return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArray.js b/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
deleted file mode 100644
index 671e400..0000000
--- a/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _iterableToArray(iter) {
-  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
deleted file mode 100644
index 535cdde..0000000
--- a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default function _iterableToArrayLimit(arr, i) {
-  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-  var _n = true;
-  var _d = false;
-  var _e = undefined;
-
-  try {
-    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
-      _arr.push(_s.value);
-
-      if (i && _arr.length === i) break;
-    }
-  } catch (err) {
-    _d = true;
-    _e = err;
-  } finally {
-    try {
-      if (!_n && _i["return"] != null) _i["return"]();
-    } finally {
-      if (_d) throw _e;
-    }
-  }
-
-  return _arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js
deleted file mode 100644
index aac8223..0000000
--- a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default function _iterableToArrayLimitLoose(arr, i) {
-  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-
-  for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
-    _arr.push(_step.value);
-
-    if (i && _arr.length === i) break;
-  }
-
-  return _arr;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/jsx.js b/node_modules/@babel/runtime/helpers/esm/jsx.js
deleted file mode 100644
index 3a98cec..0000000
--- a/node_modules/@babel/runtime/helpers/esm/jsx.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var REACT_ELEMENT_TYPE;
-export default function _createRawReactElement(type, props, key, children) {
-  if (!REACT_ELEMENT_TYPE) {
-    REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7;
-  }
-
-  var defaultProps = type && type.defaultProps;
-  var childrenLength = arguments.length - 3;
-
-  if (!props && childrenLength !== 0) {
-    props = {
-      children: void 0
-    };
-  }
-
-  if (childrenLength === 1) {
-    props.children = children;
-  } else if (childrenLength > 1) {
-    var childArray = new Array(childrenLength);
-
-    for (var i = 0; i < childrenLength; i++) {
-      childArray[i] = arguments[i + 3];
-    }
-
-    props.children = childArray;
-  }
-
-  if (props && defaultProps) {
-    for (var propName in defaultProps) {
-      if (props[propName] === void 0) {
-        props[propName] = defaultProps[propName];
-      }
-    }
-  } else if (!props) {
-    props = defaultProps || {};
-  }
-
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key === undefined ? null : '' + key,
-    ref: null,
-    props: props,
-    _owner: null
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js b/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js
deleted file mode 100644
index d6cd864..0000000
--- a/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _newArrowCheck(innerThis, boundThis) {
-  if (innerThis !== boundThis) {
-    throw new TypeError("Cannot instantiate an arrow function");
-  }
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js b/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
deleted file mode 100644
index f94186d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
deleted file mode 100644
index d6bc738..0000000
--- a/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableSpread() {
-  throw new TypeError("Invalid attempt to spread non-iterable instance");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js
deleted file mode 100644
index 82b67d2..0000000
--- a/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _objectDestructuringEmpty(obj) {
-  if (obj == null) throw new TypeError("Cannot destructure undefined");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread.js b/node_modules/@babel/runtime/helpers/esm/objectSpread.js
deleted file mode 100644
index 0e189fb..0000000
--- a/node_modules/@babel/runtime/helpers/esm/objectSpread.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import defineProperty from "./defineProperty";
-export default function _objectSpread(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? Object(arguments[i]) : {};
-    var ownKeys = Object.keys(source);
-
-    if (typeof Object.getOwnPropertySymbols === 'function') {
-      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
-        return Object.getOwnPropertyDescriptor(source, sym).enumerable;
-      }));
-    }
-
-    ownKeys.forEach(function (key) {
-      defineProperty(target, key, source[key]);
-    });
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread2.js b/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
deleted file mode 100644
index 1da0866..0000000
--- a/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import defineProperty from "./defineProperty";
-
-function ownKeys(object, enumerableOnly) {
-  var keys = Object.keys(object);
-
-  if (Object.getOwnPropertySymbols) {
-    var symbols = Object.getOwnPropertySymbols(object);
-    if (enumerableOnly) symbols = symbols.filter(function (sym) {
-      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-export default function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      ownKeys(Object(source), true).forEach(function (key) {
-        defineProperty(target, key, source[key]);
-      });
-    } else if (Object.getOwnPropertyDescriptors) {
-      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
-    } else {
-      ownKeys(Object(source)).forEach(function (key) {
-        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
-      });
-    }
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
deleted file mode 100644
index 2af6091..0000000
--- a/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose";
-export default function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = objectWithoutPropertiesLoose(source, excluded);
-  var key, i;
-
-  if (Object.getOwnPropertySymbols) {
-    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (excluded.indexOf(key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
deleted file mode 100644
index c36815c..0000000
--- a/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default function _objectWithoutPropertiesLoose(source, excluded) {
-  if (source == null) return {};
-  var target = {};
-  var sourceKeys = Object.keys(source);
-  var key, i;
-
-  for (i = 0; i < sourceKeys.length; i++) {
-    key = sourceKeys[i];
-    if (excluded.indexOf(key) >= 0) continue;
-    target[key] = source[key];
-  }
-
-  return target;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/package.json b/node_modules/@babel/runtime/helpers/esm/package.json
deleted file mode 100644
index aead43d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "type": "module"
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
deleted file mode 100644
index be7b7a4..0000000
--- a/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-import assertThisInitialized from "./assertThisInitialized";
-export default function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/readOnlyError.js b/node_modules/@babel/runtime/helpers/esm/readOnlyError.js
deleted file mode 100644
index 45d01d7..0000000
--- a/node_modules/@babel/runtime/helpers/esm/readOnlyError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _readOnlyError(name) {
-  throw new Error("\"" + name + "\" is read-only");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/set.js b/node_modules/@babel/runtime/helpers/esm/set.js
deleted file mode 100644
index fb20af7..0000000
--- a/node_modules/@babel/runtime/helpers/esm/set.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import superPropBase from "./superPropBase";
-import defineProperty from "./defineProperty";
-
-function set(target, property, value, receiver) {
-  if (typeof Reflect !== "undefined" && Reflect.set) {
-    set = Reflect.set;
-  } else {
-    set = function set(target, property, value, receiver) {
-      var base = superPropBase(target, property);
-      var desc;
-
-      if (base) {
-        desc = Object.getOwnPropertyDescriptor(base, property);
-
-        if (desc.set) {
-          desc.set.call(receiver, value);
-          return true;
-        } else if (!desc.writable) {
-          return false;
-        }
-      }
-
-      desc = Object.getOwnPropertyDescriptor(receiver, property);
-
-      if (desc) {
-        if (!desc.writable) {
-          return false;
-        }
-
-        desc.value = value;
-        Object.defineProperty(receiver, property, desc);
-      } else {
-        defineProperty(receiver, property, value);
-      }
-
-      return true;
-    };
-  }
-
-  return set(target, property, value, receiver);
-}
-
-export default function _set(target, property, value, receiver, isStrict) {
-  var s = set(target, property, value, receiver || target);
-
-  if (!s && isStrict) {
-    throw new Error('failed to set property');
-  }
-
-  return value;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
deleted file mode 100644
index e6ef03e..0000000
--- a/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function _setPrototypeOf(o, p) {
-  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js
deleted file mode 100644
index cadd9bb..0000000
--- a/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _skipFirstGeneratorNext(fn) {
-  return function () {
-    var it = fn.apply(this, arguments);
-    it.next();
-    return it;
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArray.js b/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
deleted file mode 100644
index f6f1081..0000000
--- a/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArrayLimit from "./iterableToArrayLimit";
-import nonIterableRest from "./nonIterableRest";
-export default function _slicedToArray(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js
deleted file mode 100644
index e675789..0000000
--- a/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose";
-import nonIterableRest from "./nonIterableRest";
-export default function _slicedToArrayLoose(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/superPropBase.js b/node_modules/@babel/runtime/helpers/esm/superPropBase.js
deleted file mode 100644
index eace947..0000000
--- a/node_modules/@babel/runtime/helpers/esm/superPropBase.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf";
-export default function _superPropBase(object, property) {
-  while (!Object.prototype.hasOwnProperty.call(object, property)) {
-    object = getPrototypeOf(object);
-    if (object === null) break;
-  }
-
-  return object;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
deleted file mode 100644
index 421f18a..0000000
--- a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default function _taggedTemplateLiteral(strings, raw) {
-  if (!raw) {
-    raw = strings.slice(0);
-  }
-
-  return Object.freeze(Object.defineProperties(strings, {
-    raw: {
-      value: Object.freeze(raw)
-    }
-  }));
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js
deleted file mode 100644
index c8f081e..0000000
--- a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function _taggedTemplateLiteralLoose(strings, raw) {
-  if (!raw) {
-    raw = strings.slice(0);
-  }
-
-  strings.raw = raw;
-  return strings;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/tdz.js b/node_modules/@babel/runtime/helpers/esm/tdz.js
deleted file mode 100644
index d5d0adc..0000000
--- a/node_modules/@babel/runtime/helpers/esm/tdz.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _tdzError(name) {
-  throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/temporalRef.js b/node_modules/@babel/runtime/helpers/esm/temporalRef.js
deleted file mode 100644
index 6d167a3..0000000
--- a/node_modules/@babel/runtime/helpers/esm/temporalRef.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import undef from "./temporalUndefined";
-import err from "./tdz";
-export default function _temporalRef(val, name) {
-  return val === undef ? err(name) : val;
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js b/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js
deleted file mode 100644
index 1a35717..0000000
--- a/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js
+++ /dev/null
@@ -1 +0,0 @@
-export default function _temporalUndefined() {}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/toArray.js b/node_modules/@babel/runtime/helpers/esm/toArray.js
deleted file mode 100644
index 5acb22b..0000000
--- a/node_modules/@babel/runtime/helpers/esm/toArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles";
-import iterableToArray from "./iterableToArray";
-import nonIterableRest from "./nonIterableRest";
-export default function _toArray(arr) {
-  return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js b/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
deleted file mode 100644
index 7e480b9..0000000
--- a/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import arrayWithoutHoles from "./arrayWithoutHoles";
-import iterableToArray from "./iterableToArray";
-import nonIterableSpread from "./nonIterableSpread";
-export default function _toConsumableArray(arr) {
-  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js
deleted file mode 100644
index 72a4a09..0000000
--- a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-export default function _toPrimitive(input, hint) {
-  if (_typeof(input) !== "object" || input === null) return input;
-  var prim = input[Symbol.toPrimitive];
-
-  if (prim !== undefined) {
-    var res = prim.call(input, hint || "default");
-    if (_typeof(res) !== "object") return res;
-    throw new TypeError("@@toPrimitive must return a primitive value.");
-  }
-
-  return (hint === "string" ? String : Number)(input);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
deleted file mode 100644
index 7b53a4d..0000000
--- a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-import toPrimitive from "./toPrimitive";
-export default function _toPropertyKey(arg) {
-  var key = toPrimitive(arg, "string");
-  return _typeof(key) === "symbol" ? key : String(key);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/typeof.js b/node_modules/@babel/runtime/helpers/esm/typeof.js
deleted file mode 100644
index eb444f7..0000000
--- a/node_modules/@babel/runtime/helpers/esm/typeof.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default function _typeof(obj) {
-  "@babel/helpers - typeof";
-
-  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
-    _typeof = function _typeof(obj) {
-      return typeof obj;
-    };
-  } else {
-    _typeof = function _typeof(obj) {
-      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-    };
-  }
-
-  return _typeof(obj);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js
deleted file mode 100644
index 6d6d981..0000000
--- a/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import AsyncGenerator from "./AsyncGenerator";
-export default function _wrapAsyncGenerator(fn) {
-  return function () {
-    return new AsyncGenerator(fn.apply(this, arguments));
-  };
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
deleted file mode 100644
index 5c55d05..0000000
--- a/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf";
-import setPrototypeOf from "./setPrototypeOf";
-import isNativeFunction from "./isNativeFunction";
-import construct from "./construct";
-export default function _wrapNativeSuper(Class) {
-  var _cache = typeof Map === "function" ? new Map() : undefined;
-
-  _wrapNativeSuper = function _wrapNativeSuper(Class) {
-    if (Class === null || !isNativeFunction(Class)) return Class;
-
-    if (typeof Class !== "function") {
-      throw new TypeError("Super expression must either be null or a function");
-    }
-
-    if (typeof _cache !== "undefined") {
-      if (_cache.has(Class)) return _cache.get(Class);
-
-      _cache.set(Class, Wrapper);
-    }
-
-    function Wrapper() {
-      return construct(Class, arguments, getPrototypeOf(this).constructor);
-    }
-
-    Wrapper.prototype = Object.create(Class.prototype, {
-      constructor: {
-        value: Wrapper,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-    return setPrototypeOf(Wrapper, Class);
-  };
-
-  return _wrapNativeSuper(Class);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js b/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js
deleted file mode 100644
index c885450..0000000
--- a/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import _typeof from "../../helpers/esm/typeof";
-import wrapNativeSuper from "./wrapNativeSuper";
-import getPrototypeOf from "./getPrototypeOf";
-import possibleConstructorReturn from "./possibleConstructorReturn";
-import inherits from "./inherits";
-export default function _wrapRegExp(re, groups) {
-  _wrapRegExp = function _wrapRegExp(re, groups) {
-    return new BabelRegExp(re, undefined, groups);
-  };
-
-  var _RegExp = wrapNativeSuper(RegExp);
-
-  var _super = RegExp.prototype;
-
-  var _groups = new WeakMap();
-
-  function BabelRegExp(re, flags, groups) {
-    var _this = _RegExp.call(this, re, flags);
-
-    _groups.set(_this, groups || _groups.get(re));
-
-    return _this;
-  }
-
-  inherits(BabelRegExp, _RegExp);
-
-  BabelRegExp.prototype.exec = function (str) {
-    var result = _super.exec.call(this, str);
-
-    if (result) result.groups = buildGroups(result, this);
-    return result;
-  };
-
-  BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
-    if (typeof substitution === "string") {
-      var groups = _groups.get(this);
-
-      return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
-        return "$" + groups[name];
-      }));
-    } else if (typeof substitution === "function") {
-      var _this = this;
-
-      return _super[Symbol.replace].call(this, str, function () {
-        var args = [];
-        args.push.apply(args, arguments);
-
-        if (_typeof(args[args.length - 1]) !== "object") {
-          args.push(buildGroups(args, _this));
-        }
-
-        return substitution.apply(this, args);
-      });
-    } else {
-      return _super[Symbol.replace].call(this, str, substitution);
-    }
-  };
-
-  function buildGroups(result, re) {
-    var g = _groups.get(re);
-
-    return Object.keys(g).reduce(function (groups, name) {
-      groups[name] = result[g[name]];
-      return groups;
-    }, Object.create(null));
-  }
-
-  return _wrapRegExp.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/extends.js b/node_modules/@babel/runtime/helpers/extends.js
deleted file mode 100644
index 1816877..0000000
--- a/node_modules/@babel/runtime/helpers/extends.js
+++ /dev/null
@@ -1,19 +0,0 @@
-function _extends() {
-  module.exports = _extends = Object.assign || function (target) {
-    for (var i = 1; i < arguments.length; i++) {
-      var source = arguments[i];
-
-      for (var key in source) {
-        if (Object.prototype.hasOwnProperty.call(source, key)) {
-          target[key] = source[key];
-        }
-      }
-    }
-
-    return target;
-  };
-
-  return _extends.apply(this, arguments);
-}
-
-module.exports = _extends;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/get.js b/node_modules/@babel/runtime/helpers/get.js
deleted file mode 100644
index 31ffc65..0000000
--- a/node_modules/@babel/runtime/helpers/get.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var superPropBase = require("./superPropBase");
-
-function _get(target, property, receiver) {
-  if (typeof Reflect !== "undefined" && Reflect.get) {
-    module.exports = _get = Reflect.get;
-  } else {
-    module.exports = _get = function _get(target, property, receiver) {
-      var base = superPropBase(target, property);
-      if (!base) return;
-      var desc = Object.getOwnPropertyDescriptor(base, property);
-
-      if (desc.get) {
-        return desc.get.call(receiver);
-      }
-
-      return desc.value;
-    };
-  }
-
-  return _get(target, property, receiver || target);
-}
-
-module.exports = _get;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/getPrototypeOf.js
deleted file mode 100644
index 5fc9a16..0000000
--- a/node_modules/@babel/runtime/helpers/getPrototypeOf.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _getPrototypeOf(o) {
-  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || Object.getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-module.exports = _getPrototypeOf;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/inherits.js b/node_modules/@babel/runtime/helpers/inherits.js
deleted file mode 100644
index 6b4f286..0000000
--- a/node_modules/@babel/runtime/helpers/inherits.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var setPrototypeOf = require("./setPrototypeOf");
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = Object.create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
-
-module.exports = _inherits;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/inheritsLoose.js b/node_modules/@babel/runtime/helpers/inheritsLoose.js
deleted file mode 100644
index c3f7cdb..0000000
--- a/node_modules/@babel/runtime/helpers/inheritsLoose.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-module.exports = _inheritsLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/initializerDefineProperty.js
deleted file mode 100644
index 4caa5ca..0000000
--- a/node_modules/@babel/runtime/helpers/initializerDefineProperty.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function _initializerDefineProperty(target, property, descriptor, context) {
-  if (!descriptor) return;
-  Object.defineProperty(target, property, {
-    enumerable: descriptor.enumerable,
-    configurable: descriptor.configurable,
-    writable: descriptor.writable,
-    value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
-  });
-}
-
-module.exports = _initializerDefineProperty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/initializerWarningHelper.js
deleted file mode 100644
index 50ec82c..0000000
--- a/node_modules/@babel/runtime/helpers/initializerWarningHelper.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _initializerWarningHelper(descriptor, context) {
-  throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.');
-}
-
-module.exports = _initializerWarningHelper;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/instanceof.js b/node_modules/@babel/runtime/helpers/instanceof.js
deleted file mode 100644
index efe134c..0000000
--- a/node_modules/@babel/runtime/helpers/instanceof.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _instanceof(left, right) {
-  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
-    return !!right[Symbol.hasInstance](left);
-  } else {
-    return left instanceof right;
-  }
-}
-
-module.exports = _instanceof;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/interopRequireDefault.js
deleted file mode 100644
index f713d13..0000000
--- a/node_modules/@babel/runtime/helpers/interopRequireDefault.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
-
-module.exports = _interopRequireDefault;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/interopRequireWildcard.js
deleted file mode 100644
index 68fd84c..0000000
--- a/node_modules/@babel/runtime/helpers/interopRequireWildcard.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-function _getRequireWildcardCache() {
-  if (typeof WeakMap !== "function") return null;
-  var cache = new WeakMap();
-
-  _getRequireWildcardCache = function _getRequireWildcardCache() {
-    return cache;
-  };
-
-  return cache;
-}
-
-function _interopRequireWildcard(obj) {
-  if (obj && obj.__esModule) {
-    return obj;
-  }
-
-  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
-    return {
-      "default": obj
-    };
-  }
-
-  var cache = _getRequireWildcardCache();
-
-  if (cache && cache.has(obj)) {
-    return cache.get(obj);
-  }
-
-  var newObj = {};
-  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
-
-      if (desc && (desc.get || desc.set)) {
-        Object.defineProperty(newObj, key, desc);
-      } else {
-        newObj[key] = obj[key];
-      }
-    }
-  }
-
-  newObj["default"] = obj;
-
-  if (cache) {
-    cache.set(obj, newObj);
-  }
-
-  return newObj;
-}
-
-module.exports = _interopRequireWildcard;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/isNativeFunction.js b/node_modules/@babel/runtime/helpers/isNativeFunction.js
deleted file mode 100644
index e2dc3ed..0000000
--- a/node_modules/@babel/runtime/helpers/isNativeFunction.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _isNativeFunction(fn) {
-  return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
-
-module.exports = _isNativeFunction;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/iterableToArray.js b/node_modules/@babel/runtime/helpers/iterableToArray.js
deleted file mode 100644
index e917e57..0000000
--- a/node_modules/@babel/runtime/helpers/iterableToArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _iterableToArray(iter) {
-  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
-}
-
-module.exports = _iterableToArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js
deleted file mode 100644
index cd01642..0000000
--- a/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js
+++ /dev/null
@@ -1,31 +0,0 @@
-function _iterableToArrayLimit(arr, i) {
-  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-  var _n = true;
-  var _d = false;
-  var _e = undefined;
-
-  try {
-    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
-      _arr.push(_s.value);
-
-      if (i && _arr.length === i) break;
-    }
-  } catch (err) {
-    _d = true;
-    _e = err;
-  } finally {
-    try {
-      if (!_n && _i["return"] != null) _i["return"]();
-    } finally {
-      if (_d) throw _e;
-    }
-  }
-
-  return _arr;
-}
-
-module.exports = _iterableToArrayLimit;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js
deleted file mode 100644
index ccf8d2f..0000000
--- a/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function _iterableToArrayLimitLoose(arr, i) {
-  if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-
-  for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
-    _arr.push(_step.value);
-
-    if (i && _arr.length === i) break;
-  }
-
-  return _arr;
-}
-
-module.exports = _iterableToArrayLimitLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/jsx.js b/node_modules/@babel/runtime/helpers/jsx.js
deleted file mode 100644
index 4b1ee54..0000000
--- a/node_modules/@babel/runtime/helpers/jsx.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var REACT_ELEMENT_TYPE;
-
-function _createRawReactElement(type, props, key, children) {
-  if (!REACT_ELEMENT_TYPE) {
-    REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7;
-  }
-
-  var defaultProps = type && type.defaultProps;
-  var childrenLength = arguments.length - 3;
-
-  if (!props && childrenLength !== 0) {
-    props = {
-      children: void 0
-    };
-  }
-
-  if (childrenLength === 1) {
-    props.children = children;
-  } else if (childrenLength > 1) {
-    var childArray = new Array(childrenLength);
-
-    for (var i = 0; i < childrenLength; i++) {
-      childArray[i] = arguments[i + 3];
-    }
-
-    props.children = childArray;
-  }
-
-  if (props && defaultProps) {
-    for (var propName in defaultProps) {
-      if (props[propName] === void 0) {
-        props[propName] = defaultProps[propName];
-      }
-    }
-  } else if (!props) {
-    props = defaultProps || {};
-  }
-
-  return {
-    $$typeof: REACT_ELEMENT_TYPE,
-    type: type,
-    key: key === undefined ? null : '' + key,
-    ref: null,
-    props: props,
-    _owner: null
-  };
-}
-
-module.exports = _createRawReactElement;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/newArrowCheck.js b/node_modules/@babel/runtime/helpers/newArrowCheck.js
deleted file mode 100644
index 9b59f58..0000000
--- a/node_modules/@babel/runtime/helpers/newArrowCheck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _newArrowCheck(innerThis, boundThis) {
-  if (innerThis !== boundThis) {
-    throw new TypeError("Cannot instantiate an arrow function");
-  }
-}
-
-module.exports = _newArrowCheck;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/nonIterableRest.js b/node_modules/@babel/runtime/helpers/nonIterableRest.js
deleted file mode 100644
index eb447dd..0000000
--- a/node_modules/@babel/runtime/helpers/nonIterableRest.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
-
-module.exports = _nonIterableRest;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/nonIterableSpread.js
deleted file mode 100644
index 7d7ca43..0000000
--- a/node_modules/@babel/runtime/helpers/nonIterableSpread.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _nonIterableSpread() {
-  throw new TypeError("Invalid attempt to spread non-iterable instance");
-}
-
-module.exports = _nonIterableSpread;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js
deleted file mode 100644
index 1d5c04a..0000000
--- a/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _objectDestructuringEmpty(obj) {
-  if (obj == null) throw new TypeError("Cannot destructure undefined");
-}
-
-module.exports = _objectDestructuringEmpty;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/objectSpread.js b/node_modules/@babel/runtime/helpers/objectSpread.js
deleted file mode 100644
index ad8036e..0000000
--- a/node_modules/@babel/runtime/helpers/objectSpread.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var defineProperty = require("./defineProperty");
-
-function _objectSpread(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? Object(arguments[i]) : {};
-    var ownKeys = Object.keys(source);
-
-    if (typeof Object.getOwnPropertySymbols === 'function') {
-      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
-        return Object.getOwnPropertyDescriptor(source, sym).enumerable;
-      }));
-    }
-
-    ownKeys.forEach(function (key) {
-      defineProperty(target, key, source[key]);
-    });
-  }
-
-  return target;
-}
-
-module.exports = _objectSpread;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/objectSpread2.js b/node_modules/@babel/runtime/helpers/objectSpread2.js
deleted file mode 100644
index f067f3e..0000000
--- a/node_modules/@babel/runtime/helpers/objectSpread2.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var defineProperty = require("./defineProperty");
-
-function ownKeys(object, enumerableOnly) {
-  var keys = Object.keys(object);
-
-  if (Object.getOwnPropertySymbols) {
-    var symbols = Object.getOwnPropertySymbols(object);
-    if (enumerableOnly) symbols = symbols.filter(function (sym) {
-      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-    });
-    keys.push.apply(keys, symbols);
-  }
-
-  return keys;
-}
-
-function _objectSpread2(target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i] != null ? arguments[i] : {};
-
-    if (i % 2) {
-      ownKeys(Object(source), true).forEach(function (key) {
-        defineProperty(target, key, source[key]);
-      });
-    } else if (Object.getOwnPropertyDescriptors) {
-      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
-    } else {
-      ownKeys(Object(source)).forEach(function (key) {
-        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
-      });
-    }
-  }
-
-  return target;
-}
-
-module.exports = _objectSpread2;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/objectWithoutProperties.js
deleted file mode 100644
index 253d33c..0000000
--- a/node_modules/@babel/runtime/helpers/objectWithoutProperties.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose");
-
-function _objectWithoutProperties(source, excluded) {
-  if (source == null) return {};
-  var target = objectWithoutPropertiesLoose(source, excluded);
-  var key, i;
-
-  if (Object.getOwnPropertySymbols) {
-    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
-    for (i = 0; i < sourceSymbolKeys.length; i++) {
-      key = sourceSymbolKeys[i];
-      if (excluded.indexOf(key) >= 0) continue;
-      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
-      target[key] = source[key];
-    }
-  }
-
-  return target;
-}
-
-module.exports = _objectWithoutProperties;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js
deleted file mode 100644
index a58c56b..0000000
--- a/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function _objectWithoutPropertiesLoose(source, excluded) {
-  if (source == null) return {};
-  var target = {};
-  var sourceKeys = Object.keys(source);
-  var key, i;
-
-  for (i = 0; i < sourceKeys.length; i++) {
-    key = sourceKeys[i];
-    if (excluded.indexOf(key) >= 0) continue;
-    target[key] = source[key];
-  }
-
-  return target;
-}
-
-module.exports = _objectWithoutPropertiesLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
deleted file mode 100644
index 84f7bf6..0000000
--- a/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-var assertThisInitialized = require("./assertThisInitialized");
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
-
-module.exports = _possibleConstructorReturn;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/readOnlyError.js b/node_modules/@babel/runtime/helpers/readOnlyError.js
deleted file mode 100644
index 4e61e3f..0000000
--- a/node_modules/@babel/runtime/helpers/readOnlyError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _readOnlyError(name) {
-  throw new Error("\"" + name + "\" is read-only");
-}
-
-module.exports = _readOnlyError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/set.js b/node_modules/@babel/runtime/helpers/set.js
deleted file mode 100644
index 97fa8c3..0000000
--- a/node_modules/@babel/runtime/helpers/set.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var superPropBase = require("./superPropBase");
-
-var defineProperty = require("./defineProperty");
-
-function set(target, property, value, receiver) {
-  if (typeof Reflect !== "undefined" && Reflect.set) {
-    set = Reflect.set;
-  } else {
-    set = function set(target, property, value, receiver) {
-      var base = superPropBase(target, property);
-      var desc;
-
-      if (base) {
-        desc = Object.getOwnPropertyDescriptor(base, property);
-
-        if (desc.set) {
-          desc.set.call(receiver, value);
-          return true;
-        } else if (!desc.writable) {
-          return false;
-        }
-      }
-
-      desc = Object.getOwnPropertyDescriptor(receiver, property);
-
-      if (desc) {
-        if (!desc.writable) {
-          return false;
-        }
-
-        desc.value = value;
-        Object.defineProperty(receiver, property, desc);
-      } else {
-        defineProperty(receiver, property, value);
-      }
-
-      return true;
-    };
-  }
-
-  return set(target, property, value, receiver);
-}
-
-function _set(target, property, value, receiver, isStrict) {
-  var s = set(target, property, value, receiver || target);
-
-  if (!s && isStrict) {
-    throw new Error('failed to set property');
-  }
-
-  return value;
-}
-
-module.exports = _set;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/setPrototypeOf.js
deleted file mode 100644
index d86e2fc..0000000
--- a/node_modules/@babel/runtime/helpers/setPrototypeOf.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _setPrototypeOf(o, p) {
-  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-module.exports = _setPrototypeOf;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js
deleted file mode 100644
index e1d6c86..0000000
--- a/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _skipFirstGeneratorNext(fn) {
-  return function () {
-    var it = fn.apply(this, arguments);
-    it.next();
-    return it;
-  };
-}
-
-module.exports = _skipFirstGeneratorNext;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/slicedToArray.js b/node_modules/@babel/runtime/helpers/slicedToArray.js
deleted file mode 100644
index 243ea9e..0000000
--- a/node_modules/@babel/runtime/helpers/slicedToArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArrayLimit = require("./iterableToArrayLimit");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _slicedToArray(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
-}
-
-module.exports = _slicedToArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js
deleted file mode 100644
index c7e4313..0000000
--- a/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _slicedToArrayLoose(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || nonIterableRest();
-}
-
-module.exports = _slicedToArrayLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/superPropBase.js b/node_modules/@babel/runtime/helpers/superPropBase.js
deleted file mode 100644
index bbb34a2..0000000
--- a/node_modules/@babel/runtime/helpers/superPropBase.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf");
-
-function _superPropBase(object, property) {
-  while (!Object.prototype.hasOwnProperty.call(object, property)) {
-    object = getPrototypeOf(object);
-    if (object === null) break;
-  }
-
-  return object;
-}
-
-module.exports = _superPropBase;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js
deleted file mode 100644
index bdcc1e9..0000000
--- a/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _taggedTemplateLiteral(strings, raw) {
-  if (!raw) {
-    raw = strings.slice(0);
-  }
-
-  return Object.freeze(Object.defineProperties(strings, {
-    raw: {
-      value: Object.freeze(raw)
-    }
-  }));
-}
-
-module.exports = _taggedTemplateLiteral;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js
deleted file mode 100644
index beced54..0000000
--- a/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _taggedTemplateLiteralLoose(strings, raw) {
-  if (!raw) {
-    raw = strings.slice(0);
-  }
-
-  strings.raw = raw;
-  return strings;
-}
-
-module.exports = _taggedTemplateLiteralLoose;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/tdz.js b/node_modules/@babel/runtime/helpers/tdz.js
deleted file mode 100644
index 6075e8d..0000000
--- a/node_modules/@babel/runtime/helpers/tdz.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _tdzError(name) {
-  throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
-
-module.exports = _tdzError;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/temporalRef.js b/node_modules/@babel/runtime/helpers/temporalRef.js
deleted file mode 100644
index 8aa5e5e..0000000
--- a/node_modules/@babel/runtime/helpers/temporalRef.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var temporalUndefined = require("./temporalUndefined");
-
-var tdz = require("./tdz");
-
-function _temporalRef(val, name) {
-  return val === temporalUndefined ? tdz(name) : val;
-}
-
-module.exports = _temporalRef;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/temporalUndefined.js b/node_modules/@babel/runtime/helpers/temporalUndefined.js
deleted file mode 100644
index 416d9b3..0000000
--- a/node_modules/@babel/runtime/helpers/temporalUndefined.js
+++ /dev/null
@@ -1,3 +0,0 @@
-function _temporalUndefined() {}
-
-module.exports = _temporalUndefined;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/toArray.js b/node_modules/@babel/runtime/helpers/toArray.js
deleted file mode 100644
index c28fd9e..0000000
--- a/node_modules/@babel/runtime/helpers/toArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArray = require("./iterableToArray");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _toArray(arr) {
-  return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();
-}
-
-module.exports = _toArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/toConsumableArray.js b/node_modules/@babel/runtime/helpers/toConsumableArray.js
deleted file mode 100644
index 4cd54a3..0000000
--- a/node_modules/@babel/runtime/helpers/toConsumableArray.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var arrayWithoutHoles = require("./arrayWithoutHoles");
-
-var iterableToArray = require("./iterableToArray");
-
-var nonIterableSpread = require("./nonIterableSpread");
-
-function _toConsumableArray(arr) {
-  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
-}
-
-module.exports = _toConsumableArray;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/toPrimitive.js b/node_modules/@babel/runtime/helpers/toPrimitive.js
deleted file mode 100644
index cd1d383..0000000
--- a/node_modules/@babel/runtime/helpers/toPrimitive.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-function _toPrimitive(input, hint) {
-  if (_typeof(input) !== "object" || input === null) return input;
-  var prim = input[Symbol.toPrimitive];
-
-  if (prim !== undefined) {
-    var res = prim.call(input, hint || "default");
-    if (_typeof(res) !== "object") return res;
-    throw new TypeError("@@toPrimitive must return a primitive value.");
-  }
-
-  return (hint === "string" ? String : Number)(input);
-}
-
-module.exports = _toPrimitive;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/toPropertyKey.js b/node_modules/@babel/runtime/helpers/toPropertyKey.js
deleted file mode 100644
index 108b083..0000000
--- a/node_modules/@babel/runtime/helpers/toPropertyKey.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-var toPrimitive = require("./toPrimitive");
-
-function _toPropertyKey(arg) {
-  var key = toPrimitive(arg, "string");
-  return _typeof(key) === "symbol" ? key : String(key);
-}
-
-module.exports = _toPropertyKey;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/typeof.js b/node_modules/@babel/runtime/helpers/typeof.js
deleted file mode 100644
index cad1233..0000000
--- a/node_modules/@babel/runtime/helpers/typeof.js
+++ /dev/null
@@ -1,17 +0,0 @@
-function _typeof(obj) {
-  "@babel/helpers - typeof";
-
-  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
-    module.exports = _typeof = function _typeof(obj) {
-      return typeof obj;
-    };
-  } else {
-    module.exports = _typeof = function _typeof(obj) {
-      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-    };
-  }
-
-  return _typeof(obj);
-}
-
-module.exports = _typeof;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js
deleted file mode 100644
index 11554f3..0000000
--- a/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var AsyncGenerator = require("./AsyncGenerator");
-
-function _wrapAsyncGenerator(fn) {
-  return function () {
-    return new AsyncGenerator(fn.apply(this, arguments));
-  };
-}
-
-module.exports = _wrapAsyncGenerator;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/wrapNativeSuper.js
deleted file mode 100644
index 3d4bd7a..0000000
--- a/node_modules/@babel/runtime/helpers/wrapNativeSuper.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf");
-
-var setPrototypeOf = require("./setPrototypeOf");
-
-var isNativeFunction = require("./isNativeFunction");
-
-var construct = require("./construct");
-
-function _wrapNativeSuper(Class) {
-  var _cache = typeof Map === "function" ? new Map() : undefined;
-
-  module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {
-    if (Class === null || !isNativeFunction(Class)) return Class;
-
-    if (typeof Class !== "function") {
-      throw new TypeError("Super expression must either be null or a function");
-    }
-
-    if (typeof _cache !== "undefined") {
-      if (_cache.has(Class)) return _cache.get(Class);
-
-      _cache.set(Class, Wrapper);
-    }
-
-    function Wrapper() {
-      return construct(Class, arguments, getPrototypeOf(this).constructor);
-    }
-
-    Wrapper.prototype = Object.create(Class.prototype, {
-      constructor: {
-        value: Wrapper,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-    return setPrototypeOf(Wrapper, Class);
-  };
-
-  return _wrapNativeSuper(Class);
-}
-
-module.exports = _wrapNativeSuper;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/helpers/wrapRegExp.js b/node_modules/@babel/runtime/helpers/wrapRegExp.js
deleted file mode 100644
index fcf91d8..0000000
--- a/node_modules/@babel/runtime/helpers/wrapRegExp.js
+++ /dev/null
@@ -1,76 +0,0 @@
-var _typeof = require("../helpers/typeof");
-
-var wrapNativeSuper = require("./wrapNativeSuper");
-
-var getPrototypeOf = require("./getPrototypeOf");
-
-var possibleConstructorReturn = require("./possibleConstructorReturn");
-
-var inherits = require("./inherits");
-
-function _wrapRegExp(re, groups) {
-  module.exports = _wrapRegExp = function _wrapRegExp(re, groups) {
-    return new BabelRegExp(re, undefined, groups);
-  };
-
-  var _RegExp = wrapNativeSuper(RegExp);
-
-  var _super = RegExp.prototype;
-
-  var _groups = new WeakMap();
-
-  function BabelRegExp(re, flags, groups) {
-    var _this = _RegExp.call(this, re, flags);
-
-    _groups.set(_this, groups || _groups.get(re));
-
-    return _this;
-  }
-
-  inherits(BabelRegExp, _RegExp);
-
-  BabelRegExp.prototype.exec = function (str) {
-    var result = _super.exec.call(this, str);
-
-    if (result) result.groups = buildGroups(result, this);
-    return result;
-  };
-
-  BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
-    if (typeof substitution === "string") {
-      var groups = _groups.get(this);
-
-      return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
-        return "$" + groups[name];
-      }));
-    } else if (typeof substitution === "function") {
-      var _this = this;
-
-      return _super[Symbol.replace].call(this, str, function () {
-        var args = [];
-        args.push.apply(args, arguments);
-
-        if (_typeof(args[args.length - 1]) !== "object") {
-          args.push(buildGroups(args, _this));
-        }
-
-        return substitution.apply(this, args);
-      });
-    } else {
-      return _super[Symbol.replace].call(this, str, substitution);
-    }
-  };
-
-  function buildGroups(result, re) {
-    var g = _groups.get(re);
-
-    return Object.keys(g).reduce(function (groups, name) {
-      groups[name] = result[g[name]];
-      return groups;
-    }, Object.create(null));
-  }
-
-  return _wrapRegExp.apply(this, arguments);
-}
-
-module.exports = _wrapRegExp;
\ No newline at end of file
diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json
deleted file mode 100644
index 0d2b215..0000000
--- a/node_modules/@babel/runtime/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "name": "@babel/runtime",
-  "version": "7.8.7",
-  "description": "babel's modular runtime helpers",
-  "license": "MIT",
-  "publishConfig": {
-    "access": "public"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/babel/babel.git",
-    "directory": "packages/babel-runtime"
-  },
-  "homepage": "https://babeljs.io/docs/en/next/babel-runtime",
-  "author": "Sebastian McKenzie <sebmck@gmail.com>",
-  "dependencies": {
-    "regenerator-runtime": "^0.13.4"
-  },
-  "devDependencies": {
-    "@babel/helpers": "^7.8.4"
-  },
-  "gitHead": "595f65f33b8e948e34d12be83f700cf8d070c790"
-}
diff --git a/node_modules/@babel/runtime/regenerator/index.js b/node_modules/@babel/runtime/regenerator/index.js
deleted file mode 100644
index 9fd4158..0000000
--- a/node_modules/@babel/runtime/regenerator/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("regenerator-runtime");
diff --git a/node_modules/@babel/template/node_modules/.bin/parser b/node_modules/@babel/template/node_modules/.bin/parser
index ce7bf97..c99c430 120000
--- a/node_modules/@babel/template/node_modules/.bin/parser
+++ b/node_modules/@babel/template/node_modules/.bin/parser
@@ -1 +1 @@
-../@babel/parser/bin/babel-parser.js
\ No newline at end of file
+../../../../istanbul-lib-instrument/node_modules/@babel/parser/bin/babel-parser.js
\ No newline at end of file
diff --git a/node_modules/@babel/traverse/node_modules/.bin/parser b/node_modules/@babel/traverse/node_modules/.bin/parser
index ce7bf97..c99c430 120000
--- a/node_modules/@babel/traverse/node_modules/.bin/parser
+++ b/node_modules/@babel/traverse/node_modules/.bin/parser
@@ -1 +1 @@
-../@babel/parser/bin/babel-parser.js
\ No newline at end of file
+../../../../istanbul-lib-instrument/node_modules/@babel/parser/bin/babel-parser.js
\ No newline at end of file
diff --git a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.d.ts b/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.d.ts
deleted file mode 100644
index dd5f5ef..0000000
--- a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-declare const resolveFrom: {
-	/**
-	Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path.
-
-	@param fromDirectory - Directory to resolve from.
-	@param moduleId - What you would use in `require()`.
-	@returns Resolved module path. Throws when the module can't be found.
-
-	@example
-	```
-	import resolveFrom = require('resolve-from');
-
-	// There is a file at `./foo/bar.js`
-
-	resolveFrom('foo', './bar');
-	//=> '/Users/sindresorhus/dev/test/foo/bar.js'
-	```
-	*/
-	(fromDirectory: string, moduleId: string): string;
-
-	/**
-	Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path.
-
-	@param fromDirectory - Directory to resolve from.
-	@param moduleId - What you would use in `require()`.
-	@returns Resolved module path or `undefined` when the module can't be found.
-	*/
-	silent(fromDirectory: string, moduleId: string): string | undefined;
-};
-
-export = resolveFrom;
diff --git a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.js b/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.js
deleted file mode 100644
index 44f291c..0000000
--- a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-const path = require('path');
-const Module = require('module');
-const fs = require('fs');
-
-const resolveFrom = (fromDirectory, moduleId, silent) => {
-	if (typeof fromDirectory !== 'string') {
-		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``);
-	}
-
-	if (typeof moduleId !== 'string') {
-		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
-	}
-
-	try {
-		fromDirectory = fs.realpathSync(fromDirectory);
-	} catch (error) {
-		if (error.code === 'ENOENT') {
-			fromDirectory = path.resolve(fromDirectory);
-		} else if (silent) {
-			return;
-		} else {
-			throw error;
-		}
-	}
-
-	const fromFile = path.join(fromDirectory, 'noop.js');
-
-	const resolveFileName = () => Module._resolveFilename(moduleId, {
-		id: fromFile,
-		filename: fromFile,
-		paths: Module._nodeModulePaths(fromDirectory)
-	});
-
-	if (silent) {
-		try {
-			return resolveFileName();
-		} catch (error) {
-			return;
-		}
-	}
-
-	return resolveFileName();
-};
-
-module.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId);
-module.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true);
diff --git a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/package.json b/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/package.json
deleted file mode 100644
index 733df16..0000000
--- a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-	"name": "resolve-from",
-	"version": "5.0.0",
-	"description": "Resolve the path of a module like `require.resolve()` but from a given path",
-	"license": "MIT",
-	"repository": "sindresorhus/resolve-from",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && ava && tsd"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"require",
-		"resolve",
-		"path",
-		"module",
-		"from",
-		"like",
-		"import"
-	],
-	"devDependencies": {
-		"ava": "^1.4.1",
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
-}
diff --git a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/readme.md b/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/readme.md
deleted file mode 100644
index fd4f46f..0000000
--- a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/readme.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from)
-
-> Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path
-
-
-## Install
-
-```
-$ npm install resolve-from
-```
-
-
-## Usage
-
-```js
-const resolveFrom = require('resolve-from');
-
-// There is a file at `./foo/bar.js`
-
-resolveFrom('foo', './bar');
-//=> '/Users/sindresorhus/dev/test/foo/bar.js'
-```
-
-
-## API
-
-### resolveFrom(fromDirectory, moduleId)
-
-Like `require()`, throws when the module can't be found.
-
-### resolveFrom.silent(fromDirectory, moduleId)
-
-Returns `undefined` instead of throwing when the module can't be found.
-
-#### fromDirectory
-
-Type: `string`
-
-Directory to resolve from.
-
-#### moduleId
-
-Type: `string`
-
-What you would use in `require()`.
-
-
-## Tip
-
-Create a partial using a bound function if you want to resolve from the same `fromDirectory` multiple times:
-
-```js
-const resolveFromFoo = resolveFrom.bind(null, 'foo');
-
-resolveFromFoo('./bar');
-resolveFromFoo('./baz');
-```
-
-
-## Related
-
-- [resolve-cwd](https://github.com/sindresorhus/resolve-cwd) - Resolve the path of a module from the current working directory
-- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path
-- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory
-- [resolve-pkg](https://github.com/sindresorhus/resolve-pkg) - Resolve the path of a package regardless of it having an entry point
-- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily
-- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/@jest/core/node_modules/.bin/rimraf b/node_modules/@jest/core/node_modules/.bin/rimraf
index ec9dc7b..4cd49a4 120000
--- a/node_modules/@jest/core/node_modules/.bin/rimraf
+++ b/node_modules/@jest/core/node_modules/.bin/rimraf
@@ -1 +1 @@
-../../../../rimraf/bin.js
\ No newline at end of file
+../rimraf/bin.js
\ No newline at end of file
diff --git a/node_modules/mute-stream/LICENSE b/node_modules/@jest/core/node_modules/rimraf/LICENSE
similarity index 100%
rename from node_modules/mute-stream/LICENSE
rename to node_modules/@jest/core/node_modules/rimraf/LICENSE
diff --git a/node_modules/@jest/core/node_modules/rimraf/README.md b/node_modules/@jest/core/node_modules/rimraf/README.md
new file mode 100644
index 0000000..423b8cf
--- /dev/null
+++ b/node_modules/@jest/core/node_modules/rimraf/README.md
@@ -0,0 +1,101 @@
+[![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies)
+
+The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node.
+
+Install with `npm install rimraf`, or just drop rimraf.js somewhere.
+
+## API
+
+`rimraf(f, [opts], callback)`
+
+The first parameter will be interpreted as a globbing pattern for files. If you
+want to disable globbing you can do so with `opts.disableGlob` (defaults to
+`false`). This might be handy, for instance, if you have filenames that contain
+globbing wildcard characters.
+
+The callback will be called with an error if there is one.  Certain
+errors are handled for you:
+
+* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of
+  `opts.maxBusyTries` times before giving up, adding 100ms of wait
+  between each attempt.  The default `maxBusyTries` is 3.
+* `ENOENT` - If the file doesn't exist, rimraf will return
+  successfully, since your desired outcome is already the case.
+* `EMFILE` - Since `readdir` requires opening a file descriptor, it's
+  possible to hit `EMFILE` if too many file descriptors are in use.
+  In the sync case, there's nothing to be done for this.  But in the
+  async case, rimraf will gradually back off with timeouts up to
+  `opts.emfileWait` ms, which defaults to 1000.
+
+## options
+
+* unlink, chmod, stat, lstat, rmdir, readdir,
+  unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync
+
+    In order to use a custom file system library, you can override
+    specific fs functions on the options object.
+
+    If any of these functions are present on the options object, then
+    the supplied function will be used instead of the default fs
+    method.
+
+    Sync methods are only relevant for `rimraf.sync()`, of course.
+
+    For example:
+
+    ```javascript
+    var myCustomFS = require('some-custom-fs')
+
+    rimraf('some-thing', myCustomFS, callback)
+    ```
+
+* maxBusyTries
+
+    If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered
+    on Windows systems, then rimraf will retry with a linear backoff
+    wait of 100ms longer on each try.  The default maxBusyTries is 3.
+
+    Only relevant for async usage.
+
+* emfileWait
+
+    If an `EMFILE` error is encountered, then rimraf will retry
+    repeatedly with a linear backoff of 1ms longer on each try, until
+    the timeout counter hits this max.  The default limit is 1000.
+
+    If you repeatedly encounter `EMFILE` errors, then consider using
+    [graceful-fs](http://npm.im/graceful-fs) in your program.
+
+    Only relevant for async usage.
+
+* glob
+
+    Set to `false` to disable [glob](http://npm.im/glob) pattern
+    matching.
+
+    Set to an object to pass options to the glob module.  The default
+    glob options are `{ nosort: true, silent: true }`.
+
+    Glob version 6 is used in this module.
+
+    Relevant for both sync and async usage.
+
+* disableGlob
+
+    Set to any non-falsey value to disable globbing entirely.
+    (Equivalent to setting `glob: false`.)
+
+## rimraf.sync
+
+It can remove stuff synchronously, too.  But that's not so good.  Use
+the async API.  It's better.
+
+## CLI
+
+If installed with `npm install rimraf -g` it can be used as a global
+command `rimraf <path> [<path> ...]` which is useful for cross platform support.
+
+## mkdirp
+
+If you need to create a directory recursively, check out
+[mkdirp](https://github.com/substack/node-mkdirp).
diff --git a/node_modules/@jest/core/node_modules/rimraf/bin.js b/node_modules/@jest/core/node_modules/rimraf/bin.js
new file mode 100755
index 0000000..023814c
--- /dev/null
+++ b/node_modules/@jest/core/node_modules/rimraf/bin.js
@@ -0,0 +1,68 @@
+#!/usr/bin/env node
+
+const rimraf = require('./')
+
+const path = require('path')
+
+const isRoot = arg => /^(\/|[a-zA-Z]:\\)$/.test(path.resolve(arg))
+const filterOutRoot = arg => {
+  const ok = preserveRoot === false || !isRoot(arg)
+  if (!ok) {
+    console.error(`refusing to remove ${arg}`)
+    console.error('Set --no-preserve-root to allow this')
+  }
+  return ok
+}
+
+let help = false
+let dashdash = false
+let noglob = false
+let preserveRoot = true
+const args = process.argv.slice(2).filter(arg => {
+  if (dashdash)
+    return !!arg
+  else if (arg === '--')
+    dashdash = true
+  else if (arg === '--no-glob' || arg === '-G')
+    noglob = true
+  else if (arg === '--glob' || arg === '-g')
+    noglob = false
+  else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/))
+    help = true
+  else if (arg === '--preserve-root')
+    preserveRoot = true
+  else if (arg === '--no-preserve-root')
+    preserveRoot = false
+  else
+    return !!arg
+}).filter(arg => !preserveRoot || filterOutRoot(arg))
+
+const go = n => {
+  if (n >= args.length)
+    return
+  const options = noglob ? { glob: false } : {}
+  rimraf(args[n], options, er => {
+    if (er)
+      throw er
+    go(n+1)
+  })
+}
+
+if (help || args.length === 0) {
+  // If they didn't ask for help, then this is not a "success"
+  const log = help ? console.log : console.error
+  log('Usage: rimraf <path> [<path> ...]')
+  log('')
+  log('  Deletes all files and folders at "path" recursively.')
+  log('')
+  log('Options:')
+  log('')
+  log('  -h, --help          Display this usage info')
+  log('  -G, --no-glob       Do not expand glob patterns in arguments')
+  log('  -g, --glob          Expand glob patterns in arguments (default)')
+  log('  --preserve-root     Do not remove \'/\' (default)')
+  log('  --no-preserve-root  Do not treat \'/\' specially')
+  log('  --                  Stop parsing flags')
+  process.exit(help ? 0 : 1)
+} else
+  go(0)
diff --git a/node_modules/@jest/core/node_modules/rimraf/package.json b/node_modules/@jest/core/node_modules/rimraf/package.json
new file mode 100644
index 0000000..68c98f9
--- /dev/null
+++ b/node_modules/@jest/core/node_modules/rimraf/package.json
@@ -0,0 +1,29 @@
+{
+  "name": "rimraf",
+  "version": "3.0.0",
+  "main": "rimraf.js",
+  "description": "A deep deletion module for node (like `rm -rf`)",
+  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
+  "license": "ISC",
+  "repository": "git://github.com/isaacs/rimraf.git",
+  "scripts": {
+    "preversion": "npm test",
+    "postversion": "npm publish",
+    "postpublish": "git push origin --follow-tags",
+    "test": "tap test/*.js"
+  },
+  "bin": "./bin.js",
+  "dependencies": {
+    "glob": "^7.1.3"
+  },
+  "files": [
+    "LICENSE",
+    "README.md",
+    "bin.js",
+    "rimraf.js"
+  ],
+  "devDependencies": {
+    "mkdirp": "^0.5.1",
+    "tap": "^12.1.1"
+  }
+}
diff --git a/node_modules/@jest/core/node_modules/rimraf/rimraf.js b/node_modules/@jest/core/node_modules/rimraf/rimraf.js
new file mode 100644
index 0000000..309b8ca
--- /dev/null
+++ b/node_modules/@jest/core/node_modules/rimraf/rimraf.js
@@ -0,0 +1,368 @@
+const assert = require("assert")
+const path = require("path")
+const fs = require("fs")
+let glob = undefined
+try {
+  glob = require("glob")
+} catch (_err) {
+  // treat glob as optional.
+}
+
+const defaultGlobOpts = {
+  nosort: true,
+  silent: true
+}
+
+// for EMFILE handling
+let timeout = 0
+
+const isWindows = (process.platform === "win32")
+
+const defaults = options => {
+  const methods = [
+    'unlink',
+    'chmod',
+    'stat',
+    'lstat',
+    'rmdir',
+    'readdir'
+  ]
+  methods.forEach(m => {
+    options[m] = options[m] || fs[m]
+    m = m + 'Sync'
+    options[m] = options[m] || fs[m]
+  })
+
+  options.maxBusyTries = options.maxBusyTries || 3
+  options.emfileWait = options.emfileWait || 1000
+  if (options.glob === false) {
+    options.disableGlob = true
+  }
+  if (options.disableGlob !== true && glob === undefined) {
+    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')
+  }
+  options.disableGlob = options.disableGlob || false
+  options.glob = options.glob || defaultGlobOpts
+}
+
+const rimraf = (p, options, cb) => {
+  if (typeof options === 'function') {
+    cb = options
+    options = {}
+  }
+
+  assert(p, 'rimraf: missing path')
+  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
+  assert.equal(typeof cb, 'function', 'rimraf: callback function required')
+  assert(options, 'rimraf: invalid options argument provided')
+  assert.equal(typeof options, 'object', 'rimraf: options should be object')
+
+  defaults(options)
+
+  let busyTries = 0
+  let errState = null
+  let n = 0
+
+  const next = (er) => {
+    errState = errState || er
+    if (--n === 0)
+      cb(errState)
+  }
+
+  const afterGlob = (er, results) => {
+    if (er)
+      return cb(er)
+
+    n = results.length
+    if (n === 0)
+      return cb()
+
+    results.forEach(p => {
+      const CB = (er) => {
+        if (er) {
+          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") &&
+              busyTries < options.maxBusyTries) {
+            busyTries ++
+            // try again, with the same exact callback as this one.
+            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)
+          }
+
+          // this one won't happen if graceful-fs is used.
+          if (er.code === "EMFILE" && timeout < options.emfileWait) {
+            return setTimeout(() => rimraf_(p, options, CB), timeout ++)
+          }
+
+          // already gone
+          if (er.code === "ENOENT") er = null
+        }
+
+        timeout = 0
+        next(er)
+      }
+      rimraf_(p, options, CB)
+    })
+  }
+
+  if (options.disableGlob || !glob.hasMagic(p))
+    return afterGlob(null, [p])
+
+  options.lstat(p, (er, stat) => {
+    if (!er)
+      return afterGlob(null, [p])
+
+    glob(p, options.glob, afterGlob)
+  })
+
+}
+
+// Two possible strategies.
+// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
+// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
+//
+// Both result in an extra syscall when you guess wrong.  However, there
+// are likely far more normal files in the world than directories.  This
+// is based on the assumption that a the average number of files per
+// directory is >= 1.
+//
+// If anyone ever complains about this, then I guess the strategy could
+// be made configurable somehow.  But until then, YAGNI.
+const rimraf_ = (p, options, cb) => {
+  assert(p)
+  assert(options)
+  assert(typeof cb === 'function')
+
+  // sunos lets the root user unlink directories, which is... weird.
+  // so we have to lstat here and make sure it's not a dir.
+  options.lstat(p, (er, st) => {
+    if (er && er.code === "ENOENT")
+      return cb(null)
+
+    // Windows can EPERM on stat.  Life is suffering.
+    if (er && er.code === "EPERM" && isWindows)
+      fixWinEPERM(p, options, er, cb)
+
+    if (st && st.isDirectory())
+      return rmdir(p, options, er, cb)
+
+    options.unlink(p, er => {
+      if (er) {
+        if (er.code === "ENOENT")
+          return cb(null)
+        if (er.code === "EPERM")
+          return (isWindows)
+            ? fixWinEPERM(p, options, er, cb)
+            : rmdir(p, options, er, cb)
+        if (er.code === "EISDIR")
+          return rmdir(p, options, er, cb)
+      }
+      return cb(er)
+    })
+  })
+}
+
+const fixWinEPERM = (p, options, er, cb) => {
+  assert(p)
+  assert(options)
+  assert(typeof cb === 'function')
+  if (er)
+    assert(er instanceof Error)
+
+  options.chmod(p, 0o666, er2 => {
+    if (er2)
+      cb(er2.code === "ENOENT" ? null : er)
+    else
+      options.stat(p, (er3, stats) => {
+        if (er3)
+          cb(er3.code === "ENOENT" ? null : er)
+        else if (stats.isDirectory())
+          rmdir(p, options, er, cb)
+        else
+          options.unlink(p, cb)
+      })
+  })
+}
+
+const fixWinEPERMSync = (p, options, er) => {
+  assert(p)
+  assert(options)
+  if (er)
+    assert(er instanceof Error)
+
+  try {
+    options.chmodSync(p, 0o666)
+  } catch (er2) {
+    if (er2.code === "ENOENT")
+      return
+    else
+      throw er
+  }
+
+  let stats
+  try {
+    stats = options.statSync(p)
+  } catch (er3) {
+    if (er3.code === "ENOENT")
+      return
+    else
+      throw er
+  }
+
+  if (stats.isDirectory())
+    rmdirSync(p, options, er)
+  else
+    options.unlinkSync(p)
+}
+
+const rmdir = (p, options, originalEr, cb) => {
+  assert(p)
+  assert(options)
+  if (originalEr)
+    assert(originalEr instanceof Error)
+  assert(typeof cb === 'function')
+
+  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
+  // if we guessed wrong, and it's not a directory, then
+  // raise the original error.
+  options.rmdir(p, er => {
+    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
+      rmkids(p, options, cb)
+    else if (er && er.code === "ENOTDIR")
+      cb(originalEr)
+    else
+      cb(er)
+  })
+}
+
+const rmkids = (p, options, cb) => {
+  assert(p)
+  assert(options)
+  assert(typeof cb === 'function')
+
+  options.readdir(p, (er, files) => {
+    if (er)
+      return cb(er)
+    let n = files.length
+    if (n === 0)
+      return options.rmdir(p, cb)
+    let errState
+    files.forEach(f => {
+      rimraf(path.join(p, f), options, er => {
+        if (errState)
+          return
+        if (er)
+          return cb(errState = er)
+        if (--n === 0)
+          options.rmdir(p, cb)
+      })
+    })
+  })
+}
+
+// this looks simpler, and is strictly *faster*, but will
+// tie up the JavaScript thread and fail on excessively
+// deep directory trees.
+const rimrafSync = (p, options) => {
+  options = options || {}
+  defaults(options)
+
+  assert(p, 'rimraf: missing path')
+  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
+  assert(options, 'rimraf: missing options')
+  assert.equal(typeof options, 'object', 'rimraf: options should be object')
+
+  let results
+
+  if (options.disableGlob || !glob.hasMagic(p)) {
+    results = [p]
+  } else {
+    try {
+      options.lstatSync(p)
+      results = [p]
+    } catch (er) {
+      results = glob.sync(p, options.glob)
+    }
+  }
+
+  if (!results.length)
+    return
+
+  for (let i = 0; i < results.length; i++) {
+    const p = results[i]
+
+    let st
+    try {
+      st = options.lstatSync(p)
+    } catch (er) {
+      if (er.code === "ENOENT")
+        return
+
+      // Windows can EPERM on stat.  Life is suffering.
+      if (er.code === "EPERM" && isWindows)
+        fixWinEPERMSync(p, options, er)
+    }
+
+    try {
+      // sunos lets the root user unlink directories, which is... weird.
+      if (st && st.isDirectory())
+        rmdirSync(p, options, null)
+      else
+        options.unlinkSync(p)
+    } catch (er) {
+      if (er.code === "ENOENT")
+        return
+      if (er.code === "EPERM")
+        return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
+      if (er.code !== "EISDIR")
+        throw er
+
+      rmdirSync(p, options, er)
+    }
+  }
+}
+
+const rmdirSync = (p, options, originalEr) => {
+  assert(p)
+  assert(options)
+  if (originalEr)
+    assert(originalEr instanceof Error)
+
+  try {
+    options.rmdirSync(p)
+  } catch (er) {
+    if (er.code === "ENOENT")
+      return
+    if (er.code === "ENOTDIR")
+      throw originalEr
+    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
+      rmkidsSync(p, options)
+  }
+}
+
+const rmkidsSync = (p, options) => {
+  assert(p)
+  assert(options)
+  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))
+
+  // We only end up here once we got ENOTEMPTY at least once, and
+  // at this point, we are guaranteed to have removed all the kids.
+  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
+  // try really hard to delete stuff on windows, because it has a
+  // PROFOUNDLY annoying habit of not closing handles promptly when
+  // files are deleted, resulting in spurious ENOTEMPTY errors.
+  const retries = isWindows ? 100 : 1
+  let i = 0
+  do {
+    let threw = true
+    try {
+      const ret = options.rmdirSync(p, options)
+      threw = false
+      return ret
+    } finally {
+      if (++i < retries && threw)
+        continue
+    }
+  } while (true)
+}
+
+module.exports = rimraf
+rimraf.sync = rimrafSync
diff --git a/node_modules/@jest/environment/build/index.d.ts b/node_modules/@jest/environment/build/index.d.ts
index 5310d92..4c5a409 100644
--- a/node_modules/@jest/environment/build/index.d.ts
+++ b/node_modules/@jest/environment/build/index.d.ts
@@ -16,7 +16,7 @@
     docblockPragmas: Record<string, string | Array<string>>;
     testPath: Config.Path;
 }>;
-export declare type ModuleWrapper = (this: Module['exports'], module: Module, exports: Module['exports'], require: Module['require'], __dirname: string, __filename: Module['filename'], global: Global.Global, jest: Jest, ...extraGlobals: Array<Global.Global[keyof Global.Global]>) => unknown;
+export declare type ModuleWrapper = (this: Module['exports'], module: Module, exports: Module['exports'], require: Module['require'], __dirname: string, __filename: Module['filename'], global: Global.Global, jest?: Jest, ...extraGlobals: Array<Global.Global[keyof Global.Global]>) => unknown;
 export declare class JestEnvironment {
     constructor(config: Config.ProjectConfig, context?: EnvironmentContext);
     global: Global.Global;
@@ -39,7 +39,7 @@
      *
      * @deprecated Use `expect.extend` instead
      */
-    addMatchers(matchers: Record<string, any>): void;
+    addMatchers(matchers: Record<string, unknown>): void;
     /**
      * Advances all timers by the needed milliseconds so that only the next timeouts/intervals will run.
      * Optionally, you can provide steps, so it will run steps amount of next timeouts/intervals.
@@ -118,7 +118,7 @@
     /**
      * Determines if the given function is a mocked function.
      */
-    isMockFunction(fn: Function): fn is ReturnType<JestMockFn>;
+    isMockFunction(fn: (...args: Array<any>) => unknown): fn is ReturnType<JestMockFn>;
     /**
      * Mocks a module with an auto-mocked version when it is being required.
      */
diff --git a/node_modules/@jest/environment/node_modules/@jest/types/build/Circus.d.ts b/node_modules/@jest/environment/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/@jest/environment/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/@jest/environment/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/@jest/environment/node_modules/@jest/types/build/Config.d.ts b/node_modules/@jest/environment/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/@jest/environment/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/@jest/environment/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/@jest/environment/node_modules/@jest/types/build/Global.d.ts b/node_modules/@jest/environment/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/@jest/environment/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/@jest/environment/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/@jest/environment/node_modules/@jest/types/package.json b/node_modules/@jest/environment/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/@jest/environment/node_modules/@jest/types/package.json
+++ b/node_modules/@jest/environment/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/environment/node_modules/jest-mock/build/index.d.ts b/node_modules/@jest/environment/node_modules/jest-mock/build/index.d.ts
index 4360cd5..ce7ba58 100644
--- a/node_modules/@jest/environment/node_modules/jest-mock/build/index.d.ts
+++ b/node_modules/@jest/environment/node_modules/jest-mock/build/index.d.ts
@@ -42,12 +42,13 @@
         mockReturnThis(): this;
         mockReturnValue(value: T): this;
         mockReturnValueOnce(value: T): this;
-        mockResolvedValue(value: T): this;
-        mockResolvedValueOnce(value: T): this;
-        mockRejectedValue(value: T): this;
-        mockRejectedValueOnce(value: T): this;
+        mockResolvedValue(value: Unpromisify<T>): this;
+        mockResolvedValueOnce(value: Unpromisify<T>): this;
+        mockRejectedValue(value: unknown): this;
+        mockRejectedValueOnce(value: unknown): this;
     }
 }
+declare type Unpromisify<T> = T extends Promise<infer R> ? R : never;
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
diff --git a/node_modules/@jest/environment/node_modules/jest-mock/build/index.js b/node_modules/@jest/environment/node_modules/jest-mock/build/index.js
index 7c1e40d..2ebc513 100644
--- a/node_modules/@jest/environment/node_modules/jest-mock/build/index.js
+++ b/node_modules/@jest/environment/node_modules/jest-mock/build/index.js
@@ -21,6 +21,8 @@
  * LICENSE file in the root directory of this source tree.
  */
 
+/* eslint-disable local/ban-types-eventually, local/prefer-rest-params-eventually */
+
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
@@ -909,7 +911,6 @@
     return value == null ? '' + value : typeof value;
   }
 }
-/* eslint-disable-next-line no-redeclare */
 
 const JestMock = new ModuleMockerClass(global);
 module.exports = JestMock;
diff --git a/node_modules/@jest/environment/node_modules/jest-mock/package.json b/node_modules/@jest/environment/node_modules/jest-mock/package.json
index 7478b55..7d60952 100644
--- a/node_modules/@jest/environment/node_modules/jest-mock/package.json
+++ b/node_modules/@jest/environment/node_modules/jest-mock/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-mock",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
     "node": ">= 10.14.2"
   },
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*"
   },
   "license": "MIT",
@@ -19,5 +19,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/environment/package.json b/node_modules/@jest/environment/package.json
index 6d43ea9..ef830fa 100644
--- a/node_modules/@jest/environment/package.json
+++ b/node_modules/@jest/environment/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/environment",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,10 +10,10 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/fake-timers": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/fake-timers": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
-    "jest-mock": "^26.3.0"
+    "jest-mock": "^26.5.2"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -21,5 +21,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Circus.d.ts b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Config.d.ts b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Global.d.ts b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/@jest/fake-timers/node_modules/@jest/types/package.json b/node_modules/@jest/fake-timers/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/@jest/fake-timers/node_modules/@jest/types/package.json
+++ b/node_modules/@jest/fake-timers/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/LICENSE b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/LICENSE
@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    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
diff --git a/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/README.md b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/README.md
new file mode 100644
index 0000000..92a34de
--- /dev/null
+++ b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/README.md
@@ -0,0 +1,16 @@
+# Installation

+> `npm install --save @types/stack-utils`

+

+# Summary

+This package contains type definitions for stack-utils (https://github.com/tapjs/stack-utils#readme).

+

+# Details

+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/stack-utils.

+

+### Additional Details

+ * Last updated: Tue, 22 Sep 2020 00:22:28 GMT

+ * Dependencies: none

+ * Global values: none

+

+# Credits

+These definitions were written by [BendingBender](https://github.com/BendingBender).

diff --git a/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/index.d.ts b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/index.d.ts
new file mode 100644
index 0000000..3427e35
--- /dev/null
+++ b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/index.d.ts
@@ -0,0 +1,65 @@
+// Type definitions for stack-utils 2.0
+// Project: https://github.com/tapjs/stack-utils#readme
+// Definitions by: BendingBender <https://github.com/BendingBender>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.2
+
+export = StackUtils;
+
+declare class StackUtils {
+    static nodeInternals(): RegExp[];
+    constructor(options?: StackUtils.Options);
+    clean(stack: string | string[]): string;
+    capture(limit?: number, startStackFunction?: Function): StackUtils.CallSite[];
+    capture(startStackFunction: Function): StackUtils.CallSite[];
+    captureString(limit?: number, startStackFunction?: Function): string;
+    captureString(startStackFunction: Function): string;
+    at(startStackFunction?: Function): StackUtils.CallSiteLike;
+    parseLine(line: string): StackUtils.StackLineData | null;
+}
+
+declare namespace StackUtils {
+    interface Options {
+        internals?: RegExp[];
+        ignoredPackages?: string[];
+        cwd?: string;
+        wrapCallSite?(callSite: CallSite): CallSite;
+    }
+
+    interface CallSite {
+        getThis(): object | undefined;
+        getTypeName(): string;
+        getFunction(): Function | undefined;
+        getFunctionName(): string;
+        getMethodName(): string | null;
+        getFileName(): string | undefined;
+        getLineNumber(): number;
+        getColumnNumber(): number;
+        getEvalOrigin(): CallSite | string;
+        isToplevel(): boolean;
+        isEval(): boolean;
+        isNative(): boolean;
+        isConstructor(): boolean;
+    }
+
+    interface CallSiteLike extends StackData {
+        type?: string;
+    }
+
+    interface StackLineData extends StackData {
+        evalLine?: number;
+        evalColumn?: number;
+        evalFile?: string;
+    }
+
+    interface StackData {
+        line?: number;
+        column?: number;
+        file?: string;
+        constructor?: boolean;
+        evalOrigin?: string;
+        native?: boolean;
+        function?: string;
+        method?: string;
+    }
+}
diff --git a/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/package.json b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/package.json
new file mode 100644
index 0000000..1f9393a
--- /dev/null
+++ b/node_modules/@jest/fake-timers/node_modules/@types/stack-utils/package.json
@@ -0,0 +1,24 @@
+{
+    "name": "@types/stack-utils",
+    "version": "2.0.0",
+    "description": "TypeScript definitions for stack-utils",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "BendingBender",
+            "url": "https://github.com/BendingBender",
+            "githubUsername": "BendingBender"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/stack-utils"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typesPublisherContentHash": "53c84779043276d5e313653eabfc4fedae5b103c7dc645555065fdc3b4b0a982",
+    "typeScriptVersion": "3.2"
+}
\ No newline at end of file
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-message-util/package.json b/node_modules/@jest/fake-timers/node_modules/jest-message-util/package.json
index 6f8b6c4..2bbf224 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-message-util/package.json
+++ b/node_modules/@jest/fake-timers/node_modules/jest-message-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-message-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -14,8 +14,8 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/code-frame": "^7.0.0",
-    "@jest/types": "^26.3.0",
-    "@types/stack-utils": "^1.0.1",
+    "@jest/types": "^26.5.2",
+    "@types/stack-utils": "^2.0.0",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
     "micromatch": "^4.0.2",
@@ -30,5 +30,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.d.ts b/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.d.ts
index 4360cd5..ce7ba58 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.d.ts
@@ -42,12 +42,13 @@
         mockReturnThis(): this;
         mockReturnValue(value: T): this;
         mockReturnValueOnce(value: T): this;
-        mockResolvedValue(value: T): this;
-        mockResolvedValueOnce(value: T): this;
-        mockRejectedValue(value: T): this;
-        mockRejectedValueOnce(value: T): this;
+        mockResolvedValue(value: Unpromisify<T>): this;
+        mockResolvedValueOnce(value: Unpromisify<T>): this;
+        mockRejectedValue(value: unknown): this;
+        mockRejectedValueOnce(value: unknown): this;
     }
 }
+declare type Unpromisify<T> = T extends Promise<infer R> ? R : never;
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.js b/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.js
index 7c1e40d..2ebc513 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.js
+++ b/node_modules/@jest/fake-timers/node_modules/jest-mock/build/index.js
@@ -21,6 +21,8 @@
  * LICENSE file in the root directory of this source tree.
  */
 
+/* eslint-disable local/ban-types-eventually, local/prefer-rest-params-eventually */
+
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
@@ -909,7 +911,6 @@
     return value == null ? '' + value : typeof value;
   }
 }
-/* eslint-disable-next-line no-redeclare */
 
 const JestMock = new ModuleMockerClass(global);
 module.exports = JestMock;
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-mock/package.json b/node_modules/@jest/fake-timers/node_modules/jest-mock/package.json
index 7478b55..7d60952 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-mock/package.json
+++ b/node_modules/@jest/fake-timers/node_modules/jest-mock/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-mock",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
     "node": ">= 10.14.2"
   },
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*"
   },
   "license": "MIT",
@@ -19,5 +19,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-util/build/ErrorWithStack.d.ts b/node_modules/@jest/fake-timers/node_modules/jest-util/build/ErrorWithStack.d.ts
index 2698f36..79764bd 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-util/build/ErrorWithStack.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/jest-util/build/ErrorWithStack.d.ts
@@ -5,5 +5,5 @@
  * LICENSE file in the root directory of this source tree.
  */
 export default class ErrorWithStack extends Error {
-    constructor(message: string | undefined, callsite: Function);
+    constructor(message: string | undefined, callsite: (...args: Array<any>) => unknown);
 }
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-util/build/convertDescriptorToString.js b/node_modules/@jest/fake-timers/node_modules/jest-util/build/convertDescriptorToString.js
index 0cfab68..4b776af 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-util/build/convertDescriptorToString.js
+++ b/node_modules/@jest/fake-timers/node_modules/jest-util/build/convertDescriptorToString.js
@@ -11,6 +11,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 // See: https://github.com/facebook/jest/pull/5154
 function convertDescriptorToString(descriptor) {
   if (
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.d.ts b/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.d.ts
index 4e6cc5b..687684f 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.d.ts
+++ b/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.d.ts
@@ -5,6 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { Config } from '@jest/types';
+declare type Matcher = (str: Config.Path) => boolean;
 /**
  * Converts a list of globs into a function that matches a path against the
  * globs.
@@ -22,4 +23,5 @@
  * isMatch('pizza.js'); // true
  * isMatch('pizza.test.js'); // false
  */
-export default function globsToMatcher(globs: Array<Config.Glob>): (path: Config.Path) => boolean;
+export default function globsToMatcher(globs: Array<Config.Glob>): Matcher;
+export {};
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.js b/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.js
index e517762..9e63c5c 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.js
+++ b/node_modules/@jest/fake-timers/node_modules/jest-util/build/globsToMatcher.js
@@ -55,7 +55,7 @@
   if (globs.length === 0) {
     // Since there were no globs given, we can simply have a fast path here and
     // return with a very simple function.
-    return _ => false;
+    return () => false;
   }
 
   const matchers = globs.map(glob => {
diff --git a/node_modules/@jest/fake-timers/node_modules/jest-util/package.json b/node_modules/@jest/fake-timers/node_modules/jest-util/package.json
index 01d0850..b584b93 100644
--- a/node_modules/@jest/fake-timers/node_modules/jest-util/package.json
+++ b/node_modules/@jest/fake-timers/node_modules/jest-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
@@ -28,5 +28,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@jest/fake-timers/package.json b/node_modules/@jest/fake-timers/package.json
index 73ddfc6..310497f 100644
--- a/node_modules/@jest/fake-timers/package.json
+++ b/node_modules/@jest/fake-timers/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/fake-timers",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,12 +10,12 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@sinonjs/fake-timers": "^6.0.1",
     "@types/node": "*",
-    "jest-message-util": "^26.3.0",
-    "jest-mock": "^26.3.0",
-    "jest-util": "^26.3.0"
+    "jest-message-util": "^26.5.2",
+    "jest-mock": "^26.5.2",
+    "jest-util": "^26.5.2"
   },
   "devDependencies": {
     "@types/sinonjs__fake-timers": "^6.0.1"
@@ -26,5 +26,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/LICENSE b/node_modules/@octokit/request/node_modules/@octokit/endpoint/LICENSE
deleted file mode 100644
index af5366d..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2018 Octokit contributors
-
-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.
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/README.md b/node_modules/@octokit/request/node_modules/@octokit/endpoint/README.md
deleted file mode 100644
index ec54be2..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/README.md
+++ /dev/null
@@ -1,421 +0,0 @@
-# endpoint.js
-
-> Turns GitHub REST API endpoints into generic request options
-
-[![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint)
-![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg)
-
-`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library.
-
-<!-- update table of contents by running `npx markdown-toc README.md -i` -->
-
-<!-- toc -->
-
-- [Usage](#usage)
-- [API](#api)
-  - [`endpoint(route, options)` or `endpoint(options)`](#endpointroute-options-or-endpointoptions)
-  - [`endpoint.defaults()`](#endpointdefaults)
-  - [`endpoint.DEFAULTS`](#endpointdefaults)
-  - [`endpoint.merge(route, options)` or `endpoint.merge(options)`](#endpointmergeroute-options-or-endpointmergeoptions)
-  - [`endpoint.parse()`](#endpointparse)
-- [Special cases](#special-cases)
-  - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly)
-  - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body)
-- [LICENSE](#license)
-
-<!-- tocstop -->
-
-## Usage
-
-<table>
-<tbody valign=top align=left>
-<tr><th>
-Browsers
-</th><td width=100%>
-Load <code>@octokit/endpoint</code> directly from <a href="https://cdn.pika.dev">cdn.pika.dev</a>
-        
-```html
-<script type="module">
-import { endpoint } from "https://cdn.pika.dev/@octokit/endpoint";
-</script>
-```
-
-</td></tr>
-<tr><th>
-Node
-</th><td>
-
-Install with <code>npm install @octokit/endpoint</code>
-
-```js
-const { endpoint } = require("@octokit/endpoint");
-// or: import { endpoint } from "@octokit/endpoint";
-```
-
-</td></tr>
-</tbody>
-</table>
-
-Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories)
-
-```js
-const requestOptions = endpoint("GET /orgs/:org/repos", {
-  headers: {
-    authorization: "token 0000000000000000000000000000000000000001",
-  },
-  org: "octokit",
-  type: "private",
-});
-```
-
-The resulting `requestOptions` looks as follows
-
-```json
-{
-  "method": "GET",
-  "url": "https://api.github.com/orgs/octokit/repos?type=private",
-  "headers": {
-    "accept": "application/vnd.github.v3+json",
-    "authorization": "token 0000000000000000000000000000000000000001",
-    "user-agent": "octokit/endpoint.js v1.2.3"
-  }
-}
-```
-
-You can pass `requestOptions` to common request libraries
-
-```js
-const { url, ...options } = requestOptions;
-// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
-fetch(url, options);
-// using with request (https://github.com/request/request)
-request(requestOptions);
-// using with got (https://github.com/sindresorhus/got)
-got[options.method](url, options);
-// using with axios
-axios(requestOptions);
-```
-
-## API
-
-### `endpoint(route, options)` or `endpoint(options)`
-
-<table>
-  <thead align=left>
-    <tr>
-      <th>
-        name
-      </th>
-      <th>
-        type
-      </th>
-      <th width=100%>
-        description
-      </th>
-    </tr>
-  </thead>
-  <tbody align=left valign=top>
-    <tr>
-      <th>
-        <code>route</code>
-      </th>
-      <td>
-        String
-      </td>
-      <td>
-        If set, it has to be a string consisting of URL and the request method, e.g., <code>GET /orgs/:org</code>. If it’s set to a URL, only the method defaults to <code>GET</code>.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.method</code>
-      </th>
-      <td>
-        String
-      </td>
-      <td>
-        <strong>Required unless <code>route</code> is set.</strong> Any supported <a href="https://developer.github.com/v3/#http-verbs">http verb</a>. <em>Defaults to <code>GET</code></em>.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.url</code>
-      </th>
-      <td>
-        String
-      </td>
-      <td>
-        <strong>Required unless <code>route</code> is set.</strong> A path or full URL which may contain <code>:variable</code> or <code>{variable}</code> placeholders,
-        e.g., <code>/orgs/:org/repos</code>. The <code>url</code> is parsed using <a href="https://github.com/bramstein/url-template">url-template</a>.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.baseUrl</code>
-      </th>
-      <td>
-        String
-      </td>
-      <td>
-        <em>Defaults to <code>https://api.github.com</code></em>.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.headers</code>
-      </th>
-      <td>
-        Object
-      </td>
-      <td>
-        Custom headers. Passed headers are merged with defaults:<br>
-        <em><code>headers['user-agent']</code> defaults to <code>octokit-endpoint.js/1.2.3</code> (where <code>1.2.3</code> is the released version)</em>.<br>
-        <em><code>headers['accept']</code> defaults to <code>application/vnd.github.v3+json</code></em>.<br>
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.mediaType.format</code>
-      </th>
-      <td>
-        String
-      </td>
-      <td>
-        Media type param, such as <code>raw</code>, <code>diff</code>, or <code>text+json</code>. See <a href="https://developer.github.com/v3/media/">Media Types</a>. Setting <code>options.mediaType.format</code> will amend the <code>headers.accept</code> value.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.mediaType.previews</code>
-      </th>
-      <td>
-        Array of Strings
-      </td>
-      <td>
-        Name of previews, such as <code>mercy</code>, <code>symmetra</code>, or <code>scarlet-witch</code>. See <a href="https://developer.github.com/v3/previews/">API Previews</a>. If <code>options.mediaType.previews</code> was set as default, the new previews will be merged into the default ones. Setting <code>options.mediaType.previews</code> will amend the <code>headers.accept</code> value. <code>options.mediaType.previews</code> will be merged with an existing array set using <code>.defaults()</code>.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.data</code>
-      </th>
-      <td>
-        Any
-      </td>
-      <td>
-        Set request body directly instead of setting it to JSON based on additional parameters. See <a href="#data-parameter">"The <code>data</code> parameter"</a> below.
-      </td>
-    </tr>
-    <tr>
-      <th>
-        <code>options.request</code>
-      </th>
-      <td>
-        Object
-      </td>
-      <td>
-        Pass custom meta information for the request. The <code>request</code> object will be returned as is.
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-All other options will be passed depending on the `method` and `url` options.
-
-1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`.
-2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter.
-3. Otherwise, the parameter is passed in the request body as a JSON key.
-
-**Result**
-
-`endpoint()` is a synchronous method and returns an object with the following keys:
-
-<table>
-  <thead align=left>
-    <tr>
-      <th>
-        key
-      </th>
-      <th>
-        type
-      </th>
-      <th width=100%>
-        description
-      </th>
-    </tr>
-  </thead>
-  <tbody align=left valign=top>
-    <tr>
-      <th><code>method</code></th>
-      <td>String</td>
-      <td>The http method. Always lowercase.</td>
-    </tr>
-    <tr>
-      <th><code>url</code></th>
-      <td>String</td>
-      <td>The url with placeholders replaced with passed parameters.</td>
-    </tr>
-    <tr>
-      <th><code>headers</code></th>
-      <td>Object</td>
-      <td>All header names are lowercased.</td>
-    </tr>
-    <tr>
-      <th><code>body</code></th>
-      <td>Any</td>
-      <td>The request body if one is present. Only for <code>PATCH</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code> requests.</td>
-    </tr>
-    <tr>
-      <th><code>request</code></th>
-      <td>Object</td>
-      <td>Request meta option, it will be returned as it was passed into <code>endpoint()</code></td>
-    </tr>
-  </tbody>
-</table>
-
-### `endpoint.defaults()`
-
-Override or set default options. Example:
-
-```js
-const request = require("request");
-const myEndpoint = require("@octokit/endpoint").defaults({
-  baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
-  headers: {
-    "user-agent": "myApp/1.2.3",
-    authorization: `token 0000000000000000000000000000000000000001`,
-  },
-  org: "my-project",
-  per_page: 100,
-});
-
-request(myEndpoint(`GET /orgs/:org/repos`));
-```
-
-You can call `.defaults()` again on the returned method, the defaults will cascade.
-
-```js
-const myProjectEndpoint = endpoint.defaults({
-  baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
-  headers: {
-    "user-agent": "myApp/1.2.3",
-  },
-  org: "my-project",
-});
-const myProjectEndpointWithAuth = myProjectEndpoint.defaults({
-  headers: {
-    authorization: `token 0000000000000000000000000000000000000001`,
-  },
-});
-```
-
-`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`,
-`org` and `headers['authorization']` on top of `headers['accept']` that is set
-by the global default.
-
-### `endpoint.DEFAULTS`
-
-The current default options.
-
-```js
-endpoint.DEFAULTS.baseUrl; // https://api.github.com
-const myEndpoint = endpoint.defaults({
-  baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
-});
-myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3
-```
-
-### `endpoint.merge(route, options)` or `endpoint.merge(options)`
-
-Get the defaulted endpoint options, but without parsing them into request options:
-
-```js
-const myProjectEndpoint = endpoint.defaults({
-  baseUrl: "https://github-enterprise.acme-inc.com/api/v3",
-  headers: {
-    "user-agent": "myApp/1.2.3",
-  },
-  org: "my-project",
-});
-myProjectEndpoint.merge("GET /orgs/:org/repos", {
-  headers: {
-    authorization: `token 0000000000000000000000000000000000000001`,
-  },
-  org: "my-secret-project",
-  type: "private",
-});
-
-// {
-//   baseUrl: 'https://github-enterprise.acme-inc.com/api/v3',
-//   method: 'GET',
-//   url: '/orgs/:org/repos',
-//   headers: {
-//     accept: 'application/vnd.github.v3+json',
-//     authorization: `token 0000000000000000000000000000000000000001`,
-//     'user-agent': 'myApp/1.2.3'
-//   },
-//   org: 'my-secret-project',
-//   type: 'private'
-// }
-```
-
-### `endpoint.parse()`
-
-Stateless method to turn endpoint options into request options. Calling
-`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`.
-
-## Special cases
-
-<a name="data-parameter"></a>
-
-### The `data` parameter – set request body directly
-
-Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter.
-
-```js
-const options = endpoint("POST /markdown/raw", {
-  data: "Hello world github/linguist#1 **cool**, and #1!",
-  headers: {
-    accept: "text/html;charset=utf-8",
-    "content-type": "text/plain",
-  },
-});
-
-// options is
-// {
-//   method: 'post',
-//   url: 'https://api.github.com/markdown/raw',
-//   headers: {
-//     accept: 'text/html;charset=utf-8',
-//     'content-type': 'text/plain',
-//     'user-agent': userAgent
-//   },
-//   body: 'Hello world github/linguist#1 **cool**, and #1!'
-// }
-```
-
-### Set parameters for both the URL/query and the request body
-
-There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570).
-
-Example
-
-```js
-endpoint(
-  "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}",
-  {
-    name: "example.zip",
-    label: "short description",
-    headers: {
-      "content-type": "text/plain",
-      "content-length": 14,
-      authorization: `token 0000000000000000000000000000000000000001`,
-    },
-    data: "Hello, world!",
-  }
-);
-```
-
-## LICENSE
-
-[MIT](LICENSE)
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js
deleted file mode 100644
index 35f5878..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js
+++ /dev/null
@@ -1,379 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
-var isPlainObject = _interopDefault(require('is-plain-object'));
-var universalUserAgent = require('universal-user-agent');
-
-function lowercaseKeys(object) {
-  if (!object) {
-    return {};
-  }
-
-  return Object.keys(object).reduce((newObj, key) => {
-    newObj[key.toLowerCase()] = object[key];
-    return newObj;
-  }, {});
-}
-
-function mergeDeep(defaults, options) {
-  const result = Object.assign({}, defaults);
-  Object.keys(options).forEach(key => {
-    if (isPlainObject(options[key])) {
-      if (!(key in defaults)) Object.assign(result, {
-        [key]: options[key]
-      });else result[key] = mergeDeep(defaults[key], options[key]);
-    } else {
-      Object.assign(result, {
-        [key]: options[key]
-      });
-    }
-  });
-  return result;
-}
-
-function merge(defaults, route, options) {
-  if (typeof route === "string") {
-    let [method, url] = route.split(" ");
-    options = Object.assign(url ? {
-      method,
-      url
-    } : {
-      url: method
-    }, options);
-  } else {
-    options = Object.assign({}, route);
-  } // lowercase header names before merging with defaults to avoid duplicates
-
-
-  options.headers = lowercaseKeys(options.headers);
-  const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten
-
-  if (defaults && defaults.mediaType.previews.length) {
-    mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);
-  }
-
-  mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, ""));
-  return mergedOptions;
-}
-
-function addQueryParameters(url, parameters) {
-  const separator = /\?/.test(url) ? "&" : "?";
-  const names = Object.keys(parameters);
-
-  if (names.length === 0) {
-    return url;
-  }
-
-  return url + separator + names.map(name => {
-    if (name === "q") {
-      return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
-    }
-
-    return `${name}=${encodeURIComponent(parameters[name])}`;
-  }).join("&");
-}
-
-const urlVariableRegex = /\{[^}]+\}/g;
-
-function removeNonChars(variableName) {
-  return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
-}
-
-function extractUrlVariableNames(url) {
-  const matches = url.match(urlVariableRegex);
-
-  if (!matches) {
-    return [];
-  }
-
-  return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
-}
-
-function omit(object, keysToOmit) {
-  return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {
-    obj[key] = object[key];
-    return obj;
-  }, {});
-}
-
-// Based on https://github.com/bramstein/url-template, licensed under BSD
-// TODO: create separate package.
-//
-// Copyright (c) 2012-2014, Bram Stein
-// All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//  1. Redistributions of source code must retain the above copyright
-//     notice, this list of conditions and the following disclaimer.
-//  2. Redistributions in binary form must reproduce the above copyright
-//     notice, this list of conditions and the following disclaimer in the
-//     documentation and/or other materials provided with the distribution.
-//  3. The name of the author may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-/* istanbul ignore file */
-function encodeReserved(str) {
-  return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
-    if (!/%[0-9A-Fa-f]/.test(part)) {
-      part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
-    }
-
-    return part;
-  }).join("");
-}
-
-function encodeUnreserved(str) {
-  return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
-    return "%" + c.charCodeAt(0).toString(16).toUpperCase();
-  });
-}
-
-function encodeValue(operator, value, key) {
-  value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
-
-  if (key) {
-    return encodeUnreserved(key) + "=" + value;
-  } else {
-    return value;
-  }
-}
-
-function isDefined(value) {
-  return value !== undefined && value !== null;
-}
-
-function isKeyOperator(operator) {
-  return operator === ";" || operator === "&" || operator === "?";
-}
-
-function getValues(context, operator, key, modifier) {
-  var value = context[key],
-      result = [];
-
-  if (isDefined(value) && value !== "") {
-    if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
-      value = value.toString();
-
-      if (modifier && modifier !== "*") {
-        value = value.substring(0, parseInt(modifier, 10));
-      }
-
-      result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-    } else {
-      if (modifier === "*") {
-        if (Array.isArray(value)) {
-          value.filter(isDefined).forEach(function (value) {
-            result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-          });
-        } else {
-          Object.keys(value).forEach(function (k) {
-            if (isDefined(value[k])) {
-              result.push(encodeValue(operator, value[k], k));
-            }
-          });
-        }
-      } else {
-        const tmp = [];
-
-        if (Array.isArray(value)) {
-          value.filter(isDefined).forEach(function (value) {
-            tmp.push(encodeValue(operator, value));
-          });
-        } else {
-          Object.keys(value).forEach(function (k) {
-            if (isDefined(value[k])) {
-              tmp.push(encodeUnreserved(k));
-              tmp.push(encodeValue(operator, value[k].toString()));
-            }
-          });
-        }
-
-        if (isKeyOperator(operator)) {
-          result.push(encodeUnreserved(key) + "=" + tmp.join(","));
-        } else if (tmp.length !== 0) {
-          result.push(tmp.join(","));
-        }
-      }
-    }
-  } else {
-    if (operator === ";") {
-      if (isDefined(value)) {
-        result.push(encodeUnreserved(key));
-      }
-    } else if (value === "" && (operator === "&" || operator === "?")) {
-      result.push(encodeUnreserved(key) + "=");
-    } else if (value === "") {
-      result.push("");
-    }
-  }
-
-  return result;
-}
-
-function parseUrl(template) {
-  return {
-    expand: expand.bind(null, template)
-  };
-}
-
-function expand(template, context) {
-  var operators = ["+", "#", ".", "/", ";", "?", "&"];
-  return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
-    if (expression) {
-      let operator = "";
-      const values = [];
-
-      if (operators.indexOf(expression.charAt(0)) !== -1) {
-        operator = expression.charAt(0);
-        expression = expression.substr(1);
-      }
-
-      expression.split(/,/g).forEach(function (variable) {
-        var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
-        values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
-      });
-
-      if (operator && operator !== "+") {
-        var separator = ",";
-
-        if (operator === "?") {
-          separator = "&";
-        } else if (operator !== "#") {
-          separator = operator;
-        }
-
-        return (values.length !== 0 ? operator : "") + values.join(separator);
-      } else {
-        return values.join(",");
-      }
-    } else {
-      return encodeReserved(literal);
-    }
-  });
-}
-
-function parse(options) {
-  // https://fetch.spec.whatwg.org/#methods
-  let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible
-
-  let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}");
-  let headers = Object.assign({}, options.headers);
-  let body;
-  let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later
-
-  const urlVariableNames = extractUrlVariableNames(url);
-  url = parseUrl(url).expand(parameters);
-
-  if (!/^http/.test(url)) {
-    url = options.baseUrl + url;
-  }
-
-  const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl");
-  const remainingParameters = omit(parameters, omittedParameters);
-  const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
-
-  if (!isBinaryRequset) {
-    if (options.mediaType.format) {
-      // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
-      headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(",");
-    }
-
-    if (options.mediaType.previews.length) {
-      const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
-      headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {
-        const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
-        return `application/vnd.github.${preview}-preview${format}`;
-      }).join(",");
-    }
-  } // for GET/HEAD requests, set URL query parameters from remaining parameters
-  // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
-
-
-  if (["GET", "HEAD"].includes(method)) {
-    url = addQueryParameters(url, remainingParameters);
-  } else {
-    if ("data" in remainingParameters) {
-      body = remainingParameters.data;
-    } else {
-      if (Object.keys(remainingParameters).length) {
-        body = remainingParameters;
-      } else {
-        headers["content-length"] = 0;
-      }
-    }
-  } // default content-type for JSON if body is set
-
-
-  if (!headers["content-type"] && typeof body !== "undefined") {
-    headers["content-type"] = "application/json; charset=utf-8";
-  } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
-  // fetch does not allow to set `content-length` header, but we can set body to an empty string
-
-
-  if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
-    body = "";
-  } // Only return body/request keys if present
-
-
-  return Object.assign({
-    method,
-    url,
-    headers
-  }, typeof body !== "undefined" ? {
-    body
-  } : null, options.request ? {
-    request: options.request
-  } : null);
-}
-
-function endpointWithDefaults(defaults, route, options) {
-  return parse(merge(defaults, route, options));
-}
-
-function withDefaults(oldDefaults, newDefaults) {
-  const DEFAULTS = merge(oldDefaults, newDefaults);
-  const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
-  return Object.assign(endpoint, {
-    DEFAULTS,
-    defaults: withDefaults.bind(null, DEFAULTS),
-    merge: merge.bind(null, DEFAULTS),
-    parse
-  });
-}
-
-const VERSION = "6.0.2";
-
-const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.
-// So we use RequestParameters and add method as additional required property.
-
-const DEFAULTS = {
-  method: "GET",
-  baseUrl: "https://api.github.com",
-  headers: {
-    accept: "application/vnd.github.v3+json",
-    "user-agent": userAgent
-  },
-  mediaType: {
-    format: "",
-    previews: []
-  }
-};
-
-const endpoint = withDefaults(null, DEFAULTS);
-
-exports.endpoint = endpoint;
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js.map b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js.map
deleted file mode 100644
index 911601b..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-node/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n    if (!object) {\n        return {};\n    }\n    return Object.keys(object).reduce((newObj, key) => {\n        newObj[key.toLowerCase()] = object[key];\n        return newObj;\n    }, {});\n}\n","import isPlainObject from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n    const result = Object.assign({}, defaults);\n    Object.keys(options).forEach((key) => {\n        if (isPlainObject(options[key])) {\n            if (!(key in defaults))\n                Object.assign(result, { [key]: options[key] });\n            else\n                result[key] = mergeDeep(defaults[key], options[key]);\n        }\n        else {\n            Object.assign(result, { [key]: options[key] });\n        }\n    });\n    return result;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nexport function merge(defaults, route, options) {\n    if (typeof route === \"string\") {\n        let [method, url] = route.split(\" \");\n        options = Object.assign(url ? { method, url } : { url: method }, options);\n    }\n    else {\n        options = Object.assign({}, route);\n    }\n    // lowercase header names before merging with defaults to avoid duplicates\n    options.headers = lowercaseKeys(options.headers);\n    const mergedOptions = mergeDeep(defaults || {}, options);\n    // mediaType.previews arrays are merged, instead of overwritten\n    if (defaults && defaults.mediaType.previews.length) {\n        mergedOptions.mediaType.previews = defaults.mediaType.previews\n            .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n            .concat(mergedOptions.mediaType.previews);\n    }\n    mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n    return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n    const separator = /\\?/.test(url) ? \"&\" : \"?\";\n    const names = Object.keys(parameters);\n    if (names.length === 0) {\n        return url;\n    }\n    return (url +\n        separator +\n        names\n            .map((name) => {\n            if (name === \"q\") {\n                return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n            }\n            return `${name}=${encodeURIComponent(parameters[name])}`;\n        })\n            .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n    return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n    const matches = url.match(urlVariableRegex);\n    if (!matches) {\n        return [];\n    }\n    return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n    return Object.keys(object)\n        .filter((option) => !keysToOmit.includes(option))\n        .reduce((obj, key) => {\n        obj[key] = object[key];\n        return obj;\n    }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n//  1. Redistributions of source code must retain the above copyright\n//     notice, this list of conditions and the following disclaimer.\n//  2. Redistributions in binary form must reproduce the above copyright\n//     notice, this list of conditions and the following disclaimer in the\n//     documentation and/or other materials provided with the distribution.\n//  3. The name of the author may not be used to endorse or promote products\n//     derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n    return str\n        .split(/(%[0-9A-Fa-f]{2})/g)\n        .map(function (part) {\n        if (!/%[0-9A-Fa-f]/.test(part)) {\n            part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n        }\n        return part;\n    })\n        .join(\"\");\n}\nfunction encodeUnreserved(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n        return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n    });\n}\nfunction encodeValue(operator, value, key) {\n    value =\n        operator === \"+\" || operator === \"#\"\n            ? encodeReserved(value)\n            : encodeUnreserved(value);\n    if (key) {\n        return encodeUnreserved(key) + \"=\" + value;\n    }\n    else {\n        return value;\n    }\n}\nfunction isDefined(value) {\n    return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n    return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n    var value = context[key], result = [];\n    if (isDefined(value) && value !== \"\") {\n        if (typeof value === \"string\" ||\n            typeof value === \"number\" ||\n            typeof value === \"boolean\") {\n            value = value.toString();\n            if (modifier && modifier !== \"*\") {\n                value = value.substring(0, parseInt(modifier, 10));\n            }\n            result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n        }\n        else {\n            if (modifier === \"*\") {\n                if (Array.isArray(value)) {\n                    value.filter(isDefined).forEach(function (value) {\n                        result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n                    });\n                }\n                else {\n                    Object.keys(value).forEach(function (k) {\n                        if (isDefined(value[k])) {\n                            result.push(encodeValue(operator, value[k], k));\n                        }\n                    });\n                }\n            }\n            else {\n                const tmp = [];\n                if (Array.isArray(value)) {\n                    value.filter(isDefined).forEach(function (value) {\n                        tmp.push(encodeValue(operator, value));\n                    });\n                }\n                else {\n                    Object.keys(value).forEach(function (k) {\n                        if (isDefined(value[k])) {\n                            tmp.push(encodeUnreserved(k));\n                            tmp.push(encodeValue(operator, value[k].toString()));\n                        }\n                    });\n                }\n                if (isKeyOperator(operator)) {\n                    result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n                }\n                else if (tmp.length !== 0) {\n                    result.push(tmp.join(\",\"));\n                }\n            }\n        }\n    }\n    else {\n        if (operator === \";\") {\n            if (isDefined(value)) {\n                result.push(encodeUnreserved(key));\n            }\n        }\n        else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n            result.push(encodeUnreserved(key) + \"=\");\n        }\n        else if (value === \"\") {\n            result.push(\"\");\n        }\n    }\n    return result;\n}\nexport function parseUrl(template) {\n    return {\n        expand: expand.bind(null, template),\n    };\n}\nfunction expand(template, context) {\n    var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n    return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n        if (expression) {\n            let operator = \"\";\n            const values = [];\n            if (operators.indexOf(expression.charAt(0)) !== -1) {\n                operator = expression.charAt(0);\n                expression = expression.substr(1);\n            }\n            expression.split(/,/g).forEach(function (variable) {\n                var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n                values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n            });\n            if (operator && operator !== \"+\") {\n                var separator = \",\";\n                if (operator === \"?\") {\n                    separator = \"&\";\n                }\n                else if (operator !== \"#\") {\n                    separator = operator;\n                }\n                return (values.length !== 0 ? operator : \"\") + values.join(separator);\n            }\n            else {\n                return values.join(\",\");\n            }\n        }\n        else {\n            return encodeReserved(literal);\n        }\n    });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n    // https://fetch.spec.whatwg.org/#methods\n    let method = options.method.toUpperCase();\n    // replace :varname with {varname} to make it RFC 6570 compatible\n    let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{+$1}\");\n    let headers = Object.assign({}, options.headers);\n    let body;\n    let parameters = omit(options, [\n        \"method\",\n        \"baseUrl\",\n        \"url\",\n        \"headers\",\n        \"request\",\n        \"mediaType\",\n    ]);\n    // extract variable names from URL to calculate remaining variables later\n    const urlVariableNames = extractUrlVariableNames(url);\n    url = parseUrl(url).expand(parameters);\n    if (!/^http/.test(url)) {\n        url = options.baseUrl + url;\n    }\n    const omittedParameters = Object.keys(options)\n        .filter((option) => urlVariableNames.includes(option))\n        .concat(\"baseUrl\");\n    const remainingParameters = omit(parameters, omittedParameters);\n    const isBinaryRequset = /application\\/octet-stream/i.test(headers.accept);\n    if (!isBinaryRequset) {\n        if (options.mediaType.format) {\n            // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n            headers.accept = headers.accept\n                .split(/,/)\n                .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n                .join(\",\");\n        }\n        if (options.mediaType.previews.length) {\n            const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n            headers.accept = previewsFromAcceptHeader\n                .concat(options.mediaType.previews)\n                .map((preview) => {\n                const format = options.mediaType.format\n                    ? `.${options.mediaType.format}`\n                    : \"+json\";\n                return `application/vnd.github.${preview}-preview${format}`;\n            })\n                .join(\",\");\n        }\n    }\n    // for GET/HEAD requests, set URL query parameters from remaining parameters\n    // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n    if ([\"GET\", \"HEAD\"].includes(method)) {\n        url = addQueryParameters(url, remainingParameters);\n    }\n    else {\n        if (\"data\" in remainingParameters) {\n            body = remainingParameters.data;\n        }\n        else {\n            if (Object.keys(remainingParameters).length) {\n                body = remainingParameters;\n            }\n            else {\n                headers[\"content-length\"] = 0;\n            }\n        }\n    }\n    // default content-type for JSON if body is set\n    if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n        headers[\"content-type\"] = \"application/json; charset=utf-8\";\n    }\n    // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n    // fetch does not allow to set `content-length` header, but we can set body to an empty string\n    if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n        body = \"\";\n    }\n    // Only return body/request keys if present\n    return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n    return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n    const DEFAULTS = merge(oldDefaults, newDefaults);\n    const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n    return Object.assign(endpoint, {\n        DEFAULTS,\n        defaults: withDefaults.bind(null, DEFAULTS),\n        merge: merge.bind(null, DEFAULTS),\n        parse,\n    });\n}\n","export const VERSION = \"6.0.2\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n    method: \"GET\",\n    baseUrl: \"https://api.github.com\",\n    headers: {\n        accept: \"application/vnd.github.v3+json\",\n        \"user-agent\": userAgent,\n    },\n    mediaType: {\n        format: \"\",\n        previews: [],\n    },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":["lowercaseKeys","object","Object","keys","reduce","newObj","key","toLowerCase","mergeDeep","defaults","options","result","assign","forEach","isPlainObject","merge","route","method","url","split","headers","mergedOptions","mediaType","previews","length","filter","preview","includes","concat","map","replace","addQueryParameters","parameters","separator","test","names","name","q","encodeURIComponent","join","urlVariableRegex","removeNonChars","variableName","extractUrlVariableNames","matches","match","a","b","omit","keysToOmit","option","obj","encodeReserved","str","part","encodeURI","encodeUnreserved","c","charCodeAt","toString","toUpperCase","encodeValue","operator","value","isDefined","undefined","isKeyOperator","getValues","context","modifier","substring","parseInt","push","Array","isArray","k","tmp","parseUrl","template","expand","bind","operators","_","expression","literal","values","indexOf","charAt","substr","variable","exec","parse","body","urlVariableNames","baseUrl","omittedParameters","remainingParameters","isBinaryRequset","accept","format","previewsFromAcceptHeader","data","request","endpointWithDefaults","withDefaults","oldDefaults","newDefaults","DEFAULTS","endpoint","VERSION","userAgent","getUserAgent"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/defaults.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/defaults.js
deleted file mode 100644
index 456e586..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/defaults.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { getUserAgent } from "universal-user-agent";
-import { VERSION } from "./version";
-const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
-// DEFAULTS has all properties set that EndpointOptions has, except url.
-// So we use RequestParameters and add method as additional required property.
-export const DEFAULTS = {
-    method: "GET",
-    baseUrl: "https://api.github.com",
-    headers: {
-        accept: "application/vnd.github.v3+json",
-        "user-agent": userAgent,
-    },
-    mediaType: {
-        format: "",
-        previews: [],
-    },
-};
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
deleted file mode 100644
index 5763758..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { merge } from "./merge";
-import { parse } from "./parse";
-export function endpointWithDefaults(defaults, route, options) {
-    return parse(merge(defaults, route, options));
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/index.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/index.js
deleted file mode 100644
index 599917f..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { withDefaults } from "./with-defaults";
-import { DEFAULTS } from "./defaults";
-export const endpoint = withDefaults(null, DEFAULTS);
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/merge.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/merge.js
deleted file mode 100644
index d79ae65..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/merge.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { lowercaseKeys } from "./util/lowercase-keys";
-import { mergeDeep } from "./util/merge-deep";
-export function merge(defaults, route, options) {
-    if (typeof route === "string") {
-        let [method, url] = route.split(" ");
-        options = Object.assign(url ? { method, url } : { url: method }, options);
-    }
-    else {
-        options = Object.assign({}, route);
-    }
-    // lowercase header names before merging with defaults to avoid duplicates
-    options.headers = lowercaseKeys(options.headers);
-    const mergedOptions = mergeDeep(defaults || {}, options);
-    // mediaType.previews arrays are merged, instead of overwritten
-    if (defaults && defaults.mediaType.previews.length) {
-        mergedOptions.mediaType.previews = defaults.mediaType.previews
-            .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))
-            .concat(mergedOptions.mediaType.previews);
-    }
-    mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, ""));
-    return mergedOptions;
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/parse.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/parse.js
deleted file mode 100644
index 91197c8..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/parse.js
+++ /dev/null
@@ -1,81 +0,0 @@
-import { addQueryParameters } from "./util/add-query-parameters";
-import { extractUrlVariableNames } from "./util/extract-url-variable-names";
-import { omit } from "./util/omit";
-import { parseUrl } from "./util/url-template";
-export function parse(options) {
-    // https://fetch.spec.whatwg.org/#methods
-    let method = options.method.toUpperCase();
-    // replace :varname with {varname} to make it RFC 6570 compatible
-    let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}");
-    let headers = Object.assign({}, options.headers);
-    let body;
-    let parameters = omit(options, [
-        "method",
-        "baseUrl",
-        "url",
-        "headers",
-        "request",
-        "mediaType",
-    ]);
-    // extract variable names from URL to calculate remaining variables later
-    const urlVariableNames = extractUrlVariableNames(url);
-    url = parseUrl(url).expand(parameters);
-    if (!/^http/.test(url)) {
-        url = options.baseUrl + url;
-    }
-    const omittedParameters = Object.keys(options)
-        .filter((option) => urlVariableNames.includes(option))
-        .concat("baseUrl");
-    const remainingParameters = omit(parameters, omittedParameters);
-    const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
-    if (!isBinaryRequset) {
-        if (options.mediaType.format) {
-            // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
-            headers.accept = headers.accept
-                .split(/,/)
-                .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))
-                .join(",");
-        }
-        if (options.mediaType.previews.length) {
-            const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
-            headers.accept = previewsFromAcceptHeader
-                .concat(options.mediaType.previews)
-                .map((preview) => {
-                const format = options.mediaType.format
-                    ? `.${options.mediaType.format}`
-                    : "+json";
-                return `application/vnd.github.${preview}-preview${format}`;
-            })
-                .join(",");
-        }
-    }
-    // for GET/HEAD requests, set URL query parameters from remaining parameters
-    // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
-    if (["GET", "HEAD"].includes(method)) {
-        url = addQueryParameters(url, remainingParameters);
-    }
-    else {
-        if ("data" in remainingParameters) {
-            body = remainingParameters.data;
-        }
-        else {
-            if (Object.keys(remainingParameters).length) {
-                body = remainingParameters;
-            }
-            else {
-                headers["content-length"] = 0;
-            }
-        }
-    }
-    // default content-type for JSON if body is set
-    if (!headers["content-type"] && typeof body !== "undefined") {
-        headers["content-type"] = "application/json; charset=utf-8";
-    }
-    // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
-    // fetch does not allow to set `content-length` header, but we can set body to an empty string
-    if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
-        body = "";
-    }
-    // Only return body/request keys if present
-    return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null);
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
deleted file mode 100644
index d26be31..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export function addQueryParameters(url, parameters) {
-    const separator = /\?/.test(url) ? "&" : "?";
-    const names = Object.keys(parameters);
-    if (names.length === 0) {
-        return url;
-    }
-    return (url +
-        separator +
-        names
-            .map((name) => {
-            if (name === "q") {
-                return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+"));
-            }
-            return `${name}=${encodeURIComponent(parameters[name])}`;
-        })
-            .join("&"));
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
deleted file mode 100644
index 3e75db2..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const urlVariableRegex = /\{[^}]+\}/g;
-function removeNonChars(variableName) {
-    return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
-}
-export function extractUrlVariableNames(url) {
-    const matches = url.match(urlVariableRegex);
-    if (!matches) {
-        return [];
-    }
-    return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
deleted file mode 100644
index 0780642..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export function lowercaseKeys(object) {
-    if (!object) {
-        return {};
-    }
-    return Object.keys(object).reduce((newObj, key) => {
-        newObj[key.toLowerCase()] = object[key];
-        return newObj;
-    }, {});
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js
deleted file mode 100644
index eca9a72..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import isPlainObject from "is-plain-object";
-export function mergeDeep(defaults, options) {
-    const result = Object.assign({}, defaults);
-    Object.keys(options).forEach((key) => {
-        if (isPlainObject(options[key])) {
-            if (!(key in defaults))
-                Object.assign(result, { [key]: options[key] });
-            else
-                result[key] = mergeDeep(defaults[key], options[key]);
-        }
-        else {
-            Object.assign(result, { [key]: options[key] });
-        }
-    });
-    return result;
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/omit.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/omit.js
deleted file mode 100644
index 6245031..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/omit.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export function omit(object, keysToOmit) {
-    return Object.keys(object)
-        .filter((option) => !keysToOmit.includes(option))
-        .reduce((obj, key) => {
-        obj[key] = object[key];
-        return obj;
-    }, {});
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/url-template.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/url-template.js
deleted file mode 100644
index 439b3fe..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/util/url-template.js
+++ /dev/null
@@ -1,164 +0,0 @@
-// Based on https://github.com/bramstein/url-template, licensed under BSD
-// TODO: create separate package.
-//
-// Copyright (c) 2012-2014, Bram Stein
-// All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//  1. Redistributions of source code must retain the above copyright
-//     notice, this list of conditions and the following disclaimer.
-//  2. Redistributions in binary form must reproduce the above copyright
-//     notice, this list of conditions and the following disclaimer in the
-//     documentation and/or other materials provided with the distribution.
-//  3. The name of the author may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-/* istanbul ignore file */
-function encodeReserved(str) {
-    return str
-        .split(/(%[0-9A-Fa-f]{2})/g)
-        .map(function (part) {
-        if (!/%[0-9A-Fa-f]/.test(part)) {
-            part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
-        }
-        return part;
-    })
-        .join("");
-}
-function encodeUnreserved(str) {
-    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
-        return "%" + c.charCodeAt(0).toString(16).toUpperCase();
-    });
-}
-function encodeValue(operator, value, key) {
-    value =
-        operator === "+" || operator === "#"
-            ? encodeReserved(value)
-            : encodeUnreserved(value);
-    if (key) {
-        return encodeUnreserved(key) + "=" + value;
-    }
-    else {
-        return value;
-    }
-}
-function isDefined(value) {
-    return value !== undefined && value !== null;
-}
-function isKeyOperator(operator) {
-    return operator === ";" || operator === "&" || operator === "?";
-}
-function getValues(context, operator, key, modifier) {
-    var value = context[key], result = [];
-    if (isDefined(value) && value !== "") {
-        if (typeof value === "string" ||
-            typeof value === "number" ||
-            typeof value === "boolean") {
-            value = value.toString();
-            if (modifier && modifier !== "*") {
-                value = value.substring(0, parseInt(modifier, 10));
-            }
-            result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-        }
-        else {
-            if (modifier === "*") {
-                if (Array.isArray(value)) {
-                    value.filter(isDefined).forEach(function (value) {
-                        result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-                    });
-                }
-                else {
-                    Object.keys(value).forEach(function (k) {
-                        if (isDefined(value[k])) {
-                            result.push(encodeValue(operator, value[k], k));
-                        }
-                    });
-                }
-            }
-            else {
-                const tmp = [];
-                if (Array.isArray(value)) {
-                    value.filter(isDefined).forEach(function (value) {
-                        tmp.push(encodeValue(operator, value));
-                    });
-                }
-                else {
-                    Object.keys(value).forEach(function (k) {
-                        if (isDefined(value[k])) {
-                            tmp.push(encodeUnreserved(k));
-                            tmp.push(encodeValue(operator, value[k].toString()));
-                        }
-                    });
-                }
-                if (isKeyOperator(operator)) {
-                    result.push(encodeUnreserved(key) + "=" + tmp.join(","));
-                }
-                else if (tmp.length !== 0) {
-                    result.push(tmp.join(","));
-                }
-            }
-        }
-    }
-    else {
-        if (operator === ";") {
-            if (isDefined(value)) {
-                result.push(encodeUnreserved(key));
-            }
-        }
-        else if (value === "" && (operator === "&" || operator === "?")) {
-            result.push(encodeUnreserved(key) + "=");
-        }
-        else if (value === "") {
-            result.push("");
-        }
-    }
-    return result;
-}
-export function parseUrl(template) {
-    return {
-        expand: expand.bind(null, template),
-    };
-}
-function expand(template, context) {
-    var operators = ["+", "#", ".", "/", ";", "?", "&"];
-    return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
-        if (expression) {
-            let operator = "";
-            const values = [];
-            if (operators.indexOf(expression.charAt(0)) !== -1) {
-                operator = expression.charAt(0);
-                expression = expression.substr(1);
-            }
-            expression.split(/,/g).forEach(function (variable) {
-                var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
-                values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
-            });
-            if (operator && operator !== "+") {
-                var separator = ",";
-                if (operator === "?") {
-                    separator = "&";
-                }
-                else if (operator !== "#") {
-                    separator = operator;
-                }
-                return (values.length !== 0 ? operator : "") + values.join(separator);
-            }
-            else {
-                return values.join(",");
-            }
-        }
-        else {
-            return encodeReserved(literal);
-        }
-    });
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/version.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/version.js
deleted file mode 100644
index 8a0d49c..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/version.js
+++ /dev/null
@@ -1 +0,0 @@
-export const VERSION = "6.0.2";
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/with-defaults.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/with-defaults.js
deleted file mode 100644
index 81baf6c..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-src/with-defaults.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { endpointWithDefaults } from "./endpoint-with-defaults";
-import { merge } from "./merge";
-import { parse } from "./parse";
-export function withDefaults(oldDefaults, newDefaults) {
-    const DEFAULTS = merge(oldDefaults, newDefaults);
-    const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
-    return Object.assign(endpoint, {
-        DEFAULTS,
-        defaults: withDefaults.bind(null, DEFAULTS),
-        merge: merge.bind(null, DEFAULTS),
-        parse,
-    });
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/defaults.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/defaults.d.ts
deleted file mode 100644
index 30fcd20..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/defaults.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { EndpointDefaults } from "@octokit/types";
-export declare const DEFAULTS: EndpointDefaults;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
deleted file mode 100644
index ff39e5e..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { EndpointOptions, RequestParameters, Route } from "@octokit/types";
-import { DEFAULTS } from "./defaults";
-export declare function endpointWithDefaults(defaults: typeof DEFAULTS, route: Route | EndpointOptions, options?: RequestParameters): import("@octokit/types").RequestOptions;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/index.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/index.d.ts
deleted file mode 100644
index 1ede136..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const endpoint: import("@octokit/types").EndpointInterface<object>;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/merge.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/merge.d.ts
deleted file mode 100644
index b75a15e..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/merge.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { EndpointDefaults, RequestParameters, Route } from "@octokit/types";
-export declare function merge(defaults: EndpointDefaults | null, route?: Route | RequestParameters, options?: RequestParameters): EndpointDefaults;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/parse.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/parse.d.ts
deleted file mode 100644
index fbe2144..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/parse.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { EndpointDefaults, RequestOptions } from "@octokit/types";
-export declare function parse(options: EndpointDefaults): RequestOptions;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
deleted file mode 100644
index 4b192ac..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare function addQueryParameters(url: string, parameters: {
-    [x: string]: string | undefined;
-    q?: string;
-}): string;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
deleted file mode 100644
index 93586d4..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function extractUrlVariableNames(url: string): string[];
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
deleted file mode 100644
index 1daf307..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare function lowercaseKeys(object?: {
-    [key: string]: any;
-}): {
-    [key: string]: any;
-};
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts
deleted file mode 100644
index 914411c..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function mergeDeep(defaults: any, options: any): object;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
deleted file mode 100644
index 06927d6..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare function omit(object: {
-    [key: string]: any;
-}, keysToOmit: string[]): {
-    [key: string]: any;
-};
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts
deleted file mode 100644
index 5d967ca..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export declare function parseUrl(template: string): {
-    expand: (context: object) => string;
-};
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/version.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/version.d.ts
deleted file mode 100644
index 8aaf0c6..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/version.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const VERSION = "6.0.2";
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
deleted file mode 100644
index 6f5afd1..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { EndpointInterface, RequestParameters, EndpointDefaults } from "@octokit/types";
-export declare function withDefaults(oldDefaults: EndpointDefaults | null, newDefaults: RequestParameters): EndpointInterface;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js
deleted file mode 100644
index 87b4369..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js
+++ /dev/null
@@ -1,369 +0,0 @@
-import isPlainObject from 'is-plain-object';
-import { getUserAgent } from 'universal-user-agent';
-
-function lowercaseKeys(object) {
-    if (!object) {
-        return {};
-    }
-    return Object.keys(object).reduce((newObj, key) => {
-        newObj[key.toLowerCase()] = object[key];
-        return newObj;
-    }, {});
-}
-
-function mergeDeep(defaults, options) {
-    const result = Object.assign({}, defaults);
-    Object.keys(options).forEach((key) => {
-        if (isPlainObject(options[key])) {
-            if (!(key in defaults))
-                Object.assign(result, { [key]: options[key] });
-            else
-                result[key] = mergeDeep(defaults[key], options[key]);
-        }
-        else {
-            Object.assign(result, { [key]: options[key] });
-        }
-    });
-    return result;
-}
-
-function merge(defaults, route, options) {
-    if (typeof route === "string") {
-        let [method, url] = route.split(" ");
-        options = Object.assign(url ? { method, url } : { url: method }, options);
-    }
-    else {
-        options = Object.assign({}, route);
-    }
-    // lowercase header names before merging with defaults to avoid duplicates
-    options.headers = lowercaseKeys(options.headers);
-    const mergedOptions = mergeDeep(defaults || {}, options);
-    // mediaType.previews arrays are merged, instead of overwritten
-    if (defaults && defaults.mediaType.previews.length) {
-        mergedOptions.mediaType.previews = defaults.mediaType.previews
-            .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))
-            .concat(mergedOptions.mediaType.previews);
-    }
-    mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, ""));
-    return mergedOptions;
-}
-
-function addQueryParameters(url, parameters) {
-    const separator = /\?/.test(url) ? "&" : "?";
-    const names = Object.keys(parameters);
-    if (names.length === 0) {
-        return url;
-    }
-    return (url +
-        separator +
-        names
-            .map((name) => {
-            if (name === "q") {
-                return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+"));
-            }
-            return `${name}=${encodeURIComponent(parameters[name])}`;
-        })
-            .join("&"));
-}
-
-const urlVariableRegex = /\{[^}]+\}/g;
-function removeNonChars(variableName) {
-    return variableName.replace(/^\W+|\W+$/g, "").split(/,/);
-}
-function extractUrlVariableNames(url) {
-    const matches = url.match(urlVariableRegex);
-    if (!matches) {
-        return [];
-    }
-    return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
-}
-
-function omit(object, keysToOmit) {
-    return Object.keys(object)
-        .filter((option) => !keysToOmit.includes(option))
-        .reduce((obj, key) => {
-        obj[key] = object[key];
-        return obj;
-    }, {});
-}
-
-// Based on https://github.com/bramstein/url-template, licensed under BSD
-// TODO: create separate package.
-//
-// Copyright (c) 2012-2014, Bram Stein
-// All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//  1. Redistributions of source code must retain the above copyright
-//     notice, this list of conditions and the following disclaimer.
-//  2. Redistributions in binary form must reproduce the above copyright
-//     notice, this list of conditions and the following disclaimer in the
-//     documentation and/or other materials provided with the distribution.
-//  3. The name of the author may not be used to endorse or promote products
-//     derived from this software without specific prior written permission.
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-/* istanbul ignore file */
-function encodeReserved(str) {
-    return str
-        .split(/(%[0-9A-Fa-f]{2})/g)
-        .map(function (part) {
-        if (!/%[0-9A-Fa-f]/.test(part)) {
-            part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
-        }
-        return part;
-    })
-        .join("");
-}
-function encodeUnreserved(str) {
-    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
-        return "%" + c.charCodeAt(0).toString(16).toUpperCase();
-    });
-}
-function encodeValue(operator, value, key) {
-    value =
-        operator === "+" || operator === "#"
-            ? encodeReserved(value)
-            : encodeUnreserved(value);
-    if (key) {
-        return encodeUnreserved(key) + "=" + value;
-    }
-    else {
-        return value;
-    }
-}
-function isDefined(value) {
-    return value !== undefined && value !== null;
-}
-function isKeyOperator(operator) {
-    return operator === ";" || operator === "&" || operator === "?";
-}
-function getValues(context, operator, key, modifier) {
-    var value = context[key], result = [];
-    if (isDefined(value) && value !== "") {
-        if (typeof value === "string" ||
-            typeof value === "number" ||
-            typeof value === "boolean") {
-            value = value.toString();
-            if (modifier && modifier !== "*") {
-                value = value.substring(0, parseInt(modifier, 10));
-            }
-            result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-        }
-        else {
-            if (modifier === "*") {
-                if (Array.isArray(value)) {
-                    value.filter(isDefined).forEach(function (value) {
-                        result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : ""));
-                    });
-                }
-                else {
-                    Object.keys(value).forEach(function (k) {
-                        if (isDefined(value[k])) {
-                            result.push(encodeValue(operator, value[k], k));
-                        }
-                    });
-                }
-            }
-            else {
-                const tmp = [];
-                if (Array.isArray(value)) {
-                    value.filter(isDefined).forEach(function (value) {
-                        tmp.push(encodeValue(operator, value));
-                    });
-                }
-                else {
-                    Object.keys(value).forEach(function (k) {
-                        if (isDefined(value[k])) {
-                            tmp.push(encodeUnreserved(k));
-                            tmp.push(encodeValue(operator, value[k].toString()));
-                        }
-                    });
-                }
-                if (isKeyOperator(operator)) {
-                    result.push(encodeUnreserved(key) + "=" + tmp.join(","));
-                }
-                else if (tmp.length !== 0) {
-                    result.push(tmp.join(","));
-                }
-            }
-        }
-    }
-    else {
-        if (operator === ";") {
-            if (isDefined(value)) {
-                result.push(encodeUnreserved(key));
-            }
-        }
-        else if (value === "" && (operator === "&" || operator === "?")) {
-            result.push(encodeUnreserved(key) + "=");
-        }
-        else if (value === "") {
-            result.push("");
-        }
-    }
-    return result;
-}
-function parseUrl(template) {
-    return {
-        expand: expand.bind(null, template),
-    };
-}
-function expand(template, context) {
-    var operators = ["+", "#", ".", "/", ";", "?", "&"];
-    return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) {
-        if (expression) {
-            let operator = "";
-            const values = [];
-            if (operators.indexOf(expression.charAt(0)) !== -1) {
-                operator = expression.charAt(0);
-                expression = expression.substr(1);
-            }
-            expression.split(/,/g).forEach(function (variable) {
-                var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
-                values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
-            });
-            if (operator && operator !== "+") {
-                var separator = ",";
-                if (operator === "?") {
-                    separator = "&";
-                }
-                else if (operator !== "#") {
-                    separator = operator;
-                }
-                return (values.length !== 0 ? operator : "") + values.join(separator);
-            }
-            else {
-                return values.join(",");
-            }
-        }
-        else {
-            return encodeReserved(literal);
-        }
-    });
-}
-
-function parse(options) {
-    // https://fetch.spec.whatwg.org/#methods
-    let method = options.method.toUpperCase();
-    // replace :varname with {varname} to make it RFC 6570 compatible
-    let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}");
-    let headers = Object.assign({}, options.headers);
-    let body;
-    let parameters = omit(options, [
-        "method",
-        "baseUrl",
-        "url",
-        "headers",
-        "request",
-        "mediaType",
-    ]);
-    // extract variable names from URL to calculate remaining variables later
-    const urlVariableNames = extractUrlVariableNames(url);
-    url = parseUrl(url).expand(parameters);
-    if (!/^http/.test(url)) {
-        url = options.baseUrl + url;
-    }
-    const omittedParameters = Object.keys(options)
-        .filter((option) => urlVariableNames.includes(option))
-        .concat("baseUrl");
-    const remainingParameters = omit(parameters, omittedParameters);
-    const isBinaryRequset = /application\/octet-stream/i.test(headers.accept);
-    if (!isBinaryRequset) {
-        if (options.mediaType.format) {
-            // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw
-            headers.accept = headers.accept
-                .split(/,/)
-                .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))
-                .join(",");
-        }
-        if (options.mediaType.previews.length) {
-            const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || [];
-            headers.accept = previewsFromAcceptHeader
-                .concat(options.mediaType.previews)
-                .map((preview) => {
-                const format = options.mediaType.format
-                    ? `.${options.mediaType.format}`
-                    : "+json";
-                return `application/vnd.github.${preview}-preview${format}`;
-            })
-                .join(",");
-        }
-    }
-    // for GET/HEAD requests, set URL query parameters from remaining parameters
-    // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters
-    if (["GET", "HEAD"].includes(method)) {
-        url = addQueryParameters(url, remainingParameters);
-    }
-    else {
-        if ("data" in remainingParameters) {
-            body = remainingParameters.data;
-        }
-        else {
-            if (Object.keys(remainingParameters).length) {
-                body = remainingParameters;
-            }
-            else {
-                headers["content-length"] = 0;
-            }
-        }
-    }
-    // default content-type for JSON if body is set
-    if (!headers["content-type"] && typeof body !== "undefined") {
-        headers["content-type"] = "application/json; charset=utf-8";
-    }
-    // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.
-    // fetch does not allow to set `content-length` header, but we can set body to an empty string
-    if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
-        body = "";
-    }
-    // Only return body/request keys if present
-    return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null);
-}
-
-function endpointWithDefaults(defaults, route, options) {
-    return parse(merge(defaults, route, options));
-}
-
-function withDefaults(oldDefaults, newDefaults) {
-    const DEFAULTS = merge(oldDefaults, newDefaults);
-    const endpoint = endpointWithDefaults.bind(null, DEFAULTS);
-    return Object.assign(endpoint, {
-        DEFAULTS,
-        defaults: withDefaults.bind(null, DEFAULTS),
-        merge: merge.bind(null, DEFAULTS),
-        parse,
-    });
-}
-
-const VERSION = "6.0.2";
-
-const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
-// DEFAULTS has all properties set that EndpointOptions has, except url.
-// So we use RequestParameters and add method as additional required property.
-const DEFAULTS = {
-    method: "GET",
-    baseUrl: "https://api.github.com",
-    headers: {
-        accept: "application/vnd.github.v3+json",
-        "user-agent": userAgent,
-    },
-    mediaType: {
-        format: "",
-        previews: [],
-    },
-};
-
-const endpoint = withDefaults(null, DEFAULTS);
-
-export { endpoint };
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js.map b/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js.map
deleted file mode 100644
index 8f1749b..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/dist-web/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n    if (!object) {\n        return {};\n    }\n    return Object.keys(object).reduce((newObj, key) => {\n        newObj[key.toLowerCase()] = object[key];\n        return newObj;\n    }, {});\n}\n","import isPlainObject from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n    const result = Object.assign({}, defaults);\n    Object.keys(options).forEach((key) => {\n        if (isPlainObject(options[key])) {\n            if (!(key in defaults))\n                Object.assign(result, { [key]: options[key] });\n            else\n                result[key] = mergeDeep(defaults[key], options[key]);\n        }\n        else {\n            Object.assign(result, { [key]: options[key] });\n        }\n    });\n    return result;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nexport function merge(defaults, route, options) {\n    if (typeof route === \"string\") {\n        let [method, url] = route.split(\" \");\n        options = Object.assign(url ? { method, url } : { url: method }, options);\n    }\n    else {\n        options = Object.assign({}, route);\n    }\n    // lowercase header names before merging with defaults to avoid duplicates\n    options.headers = lowercaseKeys(options.headers);\n    const mergedOptions = mergeDeep(defaults || {}, options);\n    // mediaType.previews arrays are merged, instead of overwritten\n    if (defaults && defaults.mediaType.previews.length) {\n        mergedOptions.mediaType.previews = defaults.mediaType.previews\n            .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n            .concat(mergedOptions.mediaType.previews);\n    }\n    mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n    return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n    const separator = /\\?/.test(url) ? \"&\" : \"?\";\n    const names = Object.keys(parameters);\n    if (names.length === 0) {\n        return url;\n    }\n    return (url +\n        separator +\n        names\n            .map((name) => {\n            if (name === \"q\") {\n                return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n            }\n            return `${name}=${encodeURIComponent(parameters[name])}`;\n        })\n            .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n    return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n    const matches = url.match(urlVariableRegex);\n    if (!matches) {\n        return [];\n    }\n    return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n    return Object.keys(object)\n        .filter((option) => !keysToOmit.includes(option))\n        .reduce((obj, key) => {\n        obj[key] = object[key];\n        return obj;\n    }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n//  1. Redistributions of source code must retain the above copyright\n//     notice, this list of conditions and the following disclaimer.\n//  2. Redistributions in binary form must reproduce the above copyright\n//     notice, this list of conditions and the following disclaimer in the\n//     documentation and/or other materials provided with the distribution.\n//  3. The name of the author may not be used to endorse or promote products\n//     derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n    return str\n        .split(/(%[0-9A-Fa-f]{2})/g)\n        .map(function (part) {\n        if (!/%[0-9A-Fa-f]/.test(part)) {\n            part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n        }\n        return part;\n    })\n        .join(\"\");\n}\nfunction encodeUnreserved(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n        return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n    });\n}\nfunction encodeValue(operator, value, key) {\n    value =\n        operator === \"+\" || operator === \"#\"\n            ? encodeReserved(value)\n            : encodeUnreserved(value);\n    if (key) {\n        return encodeUnreserved(key) + \"=\" + value;\n    }\n    else {\n        return value;\n    }\n}\nfunction isDefined(value) {\n    return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n    return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n    var value = context[key], result = [];\n    if (isDefined(value) && value !== \"\") {\n        if (typeof value === \"string\" ||\n            typeof value === \"number\" ||\n            typeof value === \"boolean\") {\n            value = value.toString();\n            if (modifier && modifier !== \"*\") {\n                value = value.substring(0, parseInt(modifier, 10));\n            }\n            result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n        }\n        else {\n            if (modifier === \"*\") {\n                if (Array.isArray(value)) {\n                    value.filter(isDefined).forEach(function (value) {\n                        result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n                    });\n                }\n                else {\n                    Object.keys(value).forEach(function (k) {\n                        if (isDefined(value[k])) {\n                            result.push(encodeValue(operator, value[k], k));\n                        }\n                    });\n                }\n            }\n            else {\n                const tmp = [];\n                if (Array.isArray(value)) {\n                    value.filter(isDefined).forEach(function (value) {\n                        tmp.push(encodeValue(operator, value));\n                    });\n                }\n                else {\n                    Object.keys(value).forEach(function (k) {\n                        if (isDefined(value[k])) {\n                            tmp.push(encodeUnreserved(k));\n                            tmp.push(encodeValue(operator, value[k].toString()));\n                        }\n                    });\n                }\n                if (isKeyOperator(operator)) {\n                    result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n                }\n                else if (tmp.length !== 0) {\n                    result.push(tmp.join(\",\"));\n                }\n            }\n        }\n    }\n    else {\n        if (operator === \";\") {\n            if (isDefined(value)) {\n                result.push(encodeUnreserved(key));\n            }\n        }\n        else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n            result.push(encodeUnreserved(key) + \"=\");\n        }\n        else if (value === \"\") {\n            result.push(\"\");\n        }\n    }\n    return result;\n}\nexport function parseUrl(template) {\n    return {\n        expand: expand.bind(null, template),\n    };\n}\nfunction expand(template, context) {\n    var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n    return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n        if (expression) {\n            let operator = \"\";\n            const values = [];\n            if (operators.indexOf(expression.charAt(0)) !== -1) {\n                operator = expression.charAt(0);\n                expression = expression.substr(1);\n            }\n            expression.split(/,/g).forEach(function (variable) {\n                var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n                values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n            });\n            if (operator && operator !== \"+\") {\n                var separator = \",\";\n                if (operator === \"?\") {\n                    separator = \"&\";\n                }\n                else if (operator !== \"#\") {\n                    separator = operator;\n                }\n                return (values.length !== 0 ? operator : \"\") + values.join(separator);\n            }\n            else {\n                return values.join(\",\");\n            }\n        }\n        else {\n            return encodeReserved(literal);\n        }\n    });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n    // https://fetch.spec.whatwg.org/#methods\n    let method = options.method.toUpperCase();\n    // replace :varname with {varname} to make it RFC 6570 compatible\n    let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{+$1}\");\n    let headers = Object.assign({}, options.headers);\n    let body;\n    let parameters = omit(options, [\n        \"method\",\n        \"baseUrl\",\n        \"url\",\n        \"headers\",\n        \"request\",\n        \"mediaType\",\n    ]);\n    // extract variable names from URL to calculate remaining variables later\n    const urlVariableNames = extractUrlVariableNames(url);\n    url = parseUrl(url).expand(parameters);\n    if (!/^http/.test(url)) {\n        url = options.baseUrl + url;\n    }\n    const omittedParameters = Object.keys(options)\n        .filter((option) => urlVariableNames.includes(option))\n        .concat(\"baseUrl\");\n    const remainingParameters = omit(parameters, omittedParameters);\n    const isBinaryRequset = /application\\/octet-stream/i.test(headers.accept);\n    if (!isBinaryRequset) {\n        if (options.mediaType.format) {\n            // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n            headers.accept = headers.accept\n                .split(/,/)\n                .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n                .join(\",\");\n        }\n        if (options.mediaType.previews.length) {\n            const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n            headers.accept = previewsFromAcceptHeader\n                .concat(options.mediaType.previews)\n                .map((preview) => {\n                const format = options.mediaType.format\n                    ? `.${options.mediaType.format}`\n                    : \"+json\";\n                return `application/vnd.github.${preview}-preview${format}`;\n            })\n                .join(\",\");\n        }\n    }\n    // for GET/HEAD requests, set URL query parameters from remaining parameters\n    // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n    if ([\"GET\", \"HEAD\"].includes(method)) {\n        url = addQueryParameters(url, remainingParameters);\n    }\n    else {\n        if (\"data\" in remainingParameters) {\n            body = remainingParameters.data;\n        }\n        else {\n            if (Object.keys(remainingParameters).length) {\n                body = remainingParameters;\n            }\n            else {\n                headers[\"content-length\"] = 0;\n            }\n        }\n    }\n    // default content-type for JSON if body is set\n    if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n        headers[\"content-type\"] = \"application/json; charset=utf-8\";\n    }\n    // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n    // fetch does not allow to set `content-length` header, but we can set body to an empty string\n    if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n        body = \"\";\n    }\n    // Only return body/request keys if present\n    return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n    return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n    const DEFAULTS = merge(oldDefaults, newDefaults);\n    const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n    return Object.assign(endpoint, {\n        DEFAULTS,\n        defaults: withDefaults.bind(null, DEFAULTS),\n        merge: merge.bind(null, DEFAULTS),\n        parse,\n    });\n}\n","export const VERSION = \"6.0.2\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n    method: \"GET\",\n    baseUrl: \"https://api.github.com\",\n    headers: {\n        accept: \"application/vnd.github.v3+json\",\n        \"user-agent\": userAgent,\n    },\n    mediaType: {\n        format: \"\",\n        previews: [],\n    },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@octokit/request/node_modules/@octokit/endpoint/package.json b/node_modules/@octokit/request/node_modules/@octokit/endpoint/package.json
deleted file mode 100644
index ca7c780..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/endpoint/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "@octokit/endpoint",
-  "description": "Turns REST API endpoints into generic request options",
-  "version": "6.0.2",
-  "license": "MIT",
-  "files": [
-    "dist-*/",
-    "bin/"
-  ],
-  "pika": true,
-  "sideEffects": false,
-  "keywords": [
-    "octokit",
-    "github",
-    "api",
-    "rest"
-  ],
-  "homepage": "https://github.com/octokit/endpoint.js#readme",
-  "bugs": {
-    "url": "https://github.com/octokit/endpoint.js/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/octokit/endpoint.js.git"
-  },
-  "dependencies": {
-    "@octokit/types": "^4.0.1",
-    "is-plain-object": "^3.0.0",
-    "universal-user-agent": "^5.0.0"
-  },
-  "devDependencies": {
-    "@pika/pack": "^0.5.0",
-    "@pika/plugin-build-node": "^0.9.0",
-    "@pika/plugin-build-web": "^0.9.0",
-    "@pika/plugin-ts-standard-pkg": "^0.9.0",
-    "@types/jest": "^25.1.0",
-    "jest": "^26.0.1",
-    "prettier": "2.0.5",
-    "semantic-release": "^17.0.0",
-    "semantic-release-plugin-update-version-in-files": "^1.0.0",
-    "ts-jest": "^26.0.0",
-    "typescript": "^3.4.5"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "source": "dist-src/index.js",
-  "types": "dist-types/index.d.ts",
-  "main": "dist-node/index.js",
-  "module": "dist-web/index.js"
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/LICENSE b/node_modules/@octokit/request/node_modules/@octokit/request-error/LICENSE
deleted file mode 100644
index ef2c18e..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2019 Octokit contributors
-
-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.
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/README.md b/node_modules/@octokit/request/node_modules/@octokit/request-error/README.md
deleted file mode 100644
index 315064c..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# http-error.js
-
-> Error class for Octokit request errors
-
-[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error)
-[![Build Status](https://github.com/octokit/request-error.js/workflows/Test/badge.svg)](https://github.com/octokit/request-error.js/actions?query=workflow%3ATest)
-
-## Usage
-
-<table>
-<tbody valign=top align=left>
-<tr><th>
-Browsers
-</th><td width=100%>
-Load <code>@octokit/request-error</code> directly from <a href="https://cdn.pika.dev">cdn.pika.dev</a>
-        
-```html
-<script type="module">
-import { RequestError } from "https://cdn.pika.dev/@octokit/request-error";
-</script>
-```
-
-</td></tr>
-<tr><th>
-Node
-</th><td>
-
-Install with <code>npm install @octokit/request-error</code>
-
-```js
-const { RequestError } = require("@octokit/request-error");
-// or: import { RequestError } from "@octokit/request-error";
-```
-
-</td></tr>
-</tbody>
-</table>
-
-```js
-const error = new RequestError("Oops", 500, {
-  headers: {
-    "x-github-request-id": "1:2:3:4",
-  }, // response headers
-  request: {
-    method: "POST",
-    url: "https://api.github.com/foo",
-    body: {
-      bar: "baz",
-    },
-    headers: {
-      authorization: "token secret123",
-    },
-  },
-});
-
-error.message; // Oops
-error.status; // 500
-error.headers; // { 'x-github-request-id': '1:2:3:4' }
-error.request.method; // POST
-error.request.url; // https://api.github.com/foo
-error.request.body; // { bar: 'baz' }
-error.request.headers; // { authorization: 'token [REDACTED]' }
-```
-
-## LICENSE
-
-[MIT](LICENSE)
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js
deleted file mode 100644
index 95b9c57..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
-var deprecation = require('deprecation');
-var once = _interopDefault(require('once'));
-
-const logOnce = once(deprecation => console.warn(deprecation));
-/**
- * Error with extra properties to help with debugging
- */
-
-class RequestError extends Error {
-  constructor(message, statusCode, options) {
-    super(message); // Maintains proper stack trace (only available on V8)
-
-    /* istanbul ignore next */
-
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, this.constructor);
-    }
-
-    this.name = "HttpError";
-    this.status = statusCode;
-    Object.defineProperty(this, "code", {
-      get() {
-        logOnce(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));
-        return statusCode;
-      }
-
-    });
-    this.headers = options.headers || {}; // redact request credentials without mutating original request options
-
-    const requestCopy = Object.assign({}, options.request);
-
-    if (options.request.headers.authorization) {
-      requestCopy.headers = Object.assign({}, options.request.headers, {
-        authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]")
-      });
-    }
-
-    requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit
-    // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
-    .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended
-    // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header
-    .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
-    this.request = requestCopy;
-  }
-
-}
-
-exports.RequestError = RequestError;
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js.map b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js.map
deleted file mode 100644
index 2562006..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-node/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n    constructor(message, statusCode, options) {\n        super(message);\n        // Maintains proper stack trace (only available on V8)\n        /* istanbul ignore next */\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, this.constructor);\n        }\n        this.name = \"HttpError\";\n        this.status = statusCode;\n        Object.defineProperty(this, \"code\", {\n            get() {\n                logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n                return statusCode;\n            },\n        });\n        this.headers = options.headers || {};\n        // redact request credentials without mutating original request options\n        const requestCopy = Object.assign({}, options.request);\n        if (options.request.headers.authorization) {\n            requestCopy.headers = Object.assign({}, options.request.headers, {\n                authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n            });\n        }\n        requestCopy.url = requestCopy.url\n            // client_id & client_secret can be passed as URL query parameters to increase rate limit\n            // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n            .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n            // OAuth tokens can be passed as URL query parameters, although it is not recommended\n            // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n            .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n        this.request = requestCopy;\n    }\n}\n"],"names":["logOnce","once","deprecation","console","warn","RequestError","Error","constructor","message","statusCode","options","captureStackTrace","name","status","Object","defineProperty","get","Deprecation","headers","requestCopy","assign","request","authorization","replace","url"],"mappings":";;;;;;;;;AAEA,MAAMA,OAAO,GAAGC,IAAI,CAAEC,WAAD,IAAiBC,OAAO,CAACC,IAAR,CAAaF,WAAb,CAAlB,CAApB;AACA;;;;AAGO,MAAMG,YAAN,SAA2BC,KAA3B,CAAiC;AACpCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,UAAV,EAAsBC,OAAtB,EAA+B;AACtC,UAAMF,OAAN,EADsC;;AAGtC;;AACA,QAAIF,KAAK,CAACK,iBAAV,EAA6B;AACzBL,MAAAA,KAAK,CAACK,iBAAN,CAAwB,IAAxB,EAA8B,KAAKJ,WAAnC;AACH;;AACD,SAAKK,IAAL,GAAY,WAAZ;AACA,SAAKC,MAAL,GAAcJ,UAAd;AACAK,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;AAChCC,MAAAA,GAAG,GAAG;AACFhB,QAAAA,OAAO,CAAC,IAAIiB,uBAAJ,CAAgB,0EAAhB,CAAD,CAAP;AACA,eAAOR,UAAP;AACH;;AAJ+B,KAApC;AAMA,SAAKS,OAAL,GAAeR,OAAO,CAACQ,OAAR,IAAmB,EAAlC,CAfsC;;AAiBtC,UAAMC,WAAW,GAAGL,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAA1B,CAApB;;AACA,QAAIX,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAA5B,EAA2C;AACvCH,MAAAA,WAAW,CAACD,OAAZ,GAAsBJ,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAAR,CAAgBH,OAAlC,EAA2C;AAC7DI,QAAAA,aAAa,EAAEZ,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAAxB,CAAsCC,OAAtC,CAA8C,MAA9C,EAAsD,aAAtD;AAD8C,OAA3C,CAAtB;AAGH;;AACDJ,IAAAA,WAAW,CAACK,GAAZ,GAAkBL,WAAW,CAACK,GAAZ;AAEd;AAFc,KAGbD,OAHa,CAGL,sBAHK,EAGmB,0BAHnB;AAKd;AALc,KAMbA,OANa,CAML,qBANK,EAMkB,yBANlB,CAAlB;AAOA,SAAKF,OAAL,GAAeF,WAAf;AACH;;AAhCmC;;;;"}
\ No newline at end of file
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/index.js b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/index.js
deleted file mode 100644
index c880b45..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Deprecation } from "deprecation";
-import once from "once";
-const logOnce = once((deprecation) => console.warn(deprecation));
-/**
- * Error with extra properties to help with debugging
- */
-export class RequestError extends Error {
-    constructor(message, statusCode, options) {
-        super(message);
-        // Maintains proper stack trace (only available on V8)
-        /* istanbul ignore next */
-        if (Error.captureStackTrace) {
-            Error.captureStackTrace(this, this.constructor);
-        }
-        this.name = "HttpError";
-        this.status = statusCode;
-        Object.defineProperty(this, "code", {
-            get() {
-                logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));
-                return statusCode;
-            },
-        });
-        this.headers = options.headers || {};
-        // redact request credentials without mutating original request options
-        const requestCopy = Object.assign({}, options.request);
-        if (options.request.headers.authorization) {
-            requestCopy.headers = Object.assign({}, options.request.headers, {
-                authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"),
-            });
-        }
-        requestCopy.url = requestCopy.url
-            // client_id & client_secret can be passed as URL query parameters to increase rate limit
-            // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
-            .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]")
-            // OAuth tokens can be passed as URL query parameters, although it is not recommended
-            // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header
-            .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
-        this.request = requestCopy;
-    }
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/index.d.ts b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/index.d.ts
deleted file mode 100644
index baa8a0e..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/index.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { RequestOptions, ResponseHeaders } from "@octokit/types";
-import { RequestErrorOptions } from "./types";
-/**
- * Error with extra properties to help with debugging
- */
-export declare class RequestError extends Error {
-    name: "HttpError";
-    /**
-     * http status code
-     */
-    status: number;
-    /**
-     * http status code
-     *
-     * @deprecated `error.code` is deprecated in favor of `error.status`
-     */
-    code: number;
-    /**
-     * error response headers
-     */
-    headers: ResponseHeaders;
-    /**
-     * Request options that lead to the error.
-     */
-    request: RequestOptions;
-    constructor(message: string, statusCode: number, options: RequestErrorOptions);
-}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/types.d.ts b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/types.d.ts
deleted file mode 100644
index 865d213..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-types/types.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { RequestOptions, ResponseHeaders } from "@octokit/types";
-export declare type RequestErrorOptions = {
-    headers?: ResponseHeaders;
-    request: RequestOptions;
-};
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js
deleted file mode 100644
index feec58e..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Deprecation } from 'deprecation';
-import once from 'once';
-
-const logOnce = once((deprecation) => console.warn(deprecation));
-/**
- * Error with extra properties to help with debugging
- */
-class RequestError extends Error {
-    constructor(message, statusCode, options) {
-        super(message);
-        // Maintains proper stack trace (only available on V8)
-        /* istanbul ignore next */
-        if (Error.captureStackTrace) {
-            Error.captureStackTrace(this, this.constructor);
-        }
-        this.name = "HttpError";
-        this.status = statusCode;
-        Object.defineProperty(this, "code", {
-            get() {
-                logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));
-                return statusCode;
-            },
-        });
-        this.headers = options.headers || {};
-        // redact request credentials without mutating original request options
-        const requestCopy = Object.assign({}, options.request);
-        if (options.request.headers.authorization) {
-            requestCopy.headers = Object.assign({}, options.request.headers, {
-                authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"),
-            });
-        }
-        requestCopy.url = requestCopy.url
-            // client_id & client_secret can be passed as URL query parameters to increase rate limit
-            // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
-            .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]")
-            // OAuth tokens can be passed as URL query parameters, although it is not recommended
-            // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header
-            .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
-        this.request = requestCopy;
-    }
-}
-
-export { RequestError };
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js.map b/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js.map
deleted file mode 100644
index 130740d..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-web/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n    constructor(message, statusCode, options) {\n        super(message);\n        // Maintains proper stack trace (only available on V8)\n        /* istanbul ignore next */\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, this.constructor);\n        }\n        this.name = \"HttpError\";\n        this.status = statusCode;\n        Object.defineProperty(this, \"code\", {\n            get() {\n                logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n                return statusCode;\n            },\n        });\n        this.headers = options.headers || {};\n        // redact request credentials without mutating original request options\n        const requestCopy = Object.assign({}, options.request);\n        if (options.request.headers.authorization) {\n            requestCopy.headers = Object.assign({}, options.request.headers, {\n                authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n            });\n        }\n        requestCopy.url = requestCopy.url\n            // client_id & client_secret can be passed as URL query parameters to increase rate limit\n            // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n            .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n            // OAuth tokens can be passed as URL query parameters, although it is not recommended\n            // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n            .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n        this.request = requestCopy;\n    }\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE;AACA;AACA;AACO,MAAM,YAAY,SAAS,KAAK,CAAC;AACxC,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9C,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;AACjC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,YAAY,GAAG,GAAG;AAClB,gBAAgB,OAAO,CAAC,IAAI,WAAW,CAAC,0EAA0E,CAAC,CAAC,CAAC;AACrH,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC7C;AACA,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;AACnD,YAAY,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7E,gBAAgB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;AACnG,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;AACzC;AACA;AACA,aAAa,OAAO,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AACxE;AACA;AACA,aAAa,OAAO,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACnC,KAAK;AACL;;;;"}
\ No newline at end of file
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/package.json b/node_modules/@octokit/request/node_modules/@octokit/request-error/package.json
deleted file mode 100644
index 7559a54..0000000
--- a/node_modules/@octokit/request/node_modules/@octokit/request-error/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-  "name": "@octokit/request-error",
-  "description": "Error class for Octokit request errors",
-  "version": "2.0.1",
-  "license": "MIT",
-  "files": [
-    "dist-*/",
-    "bin/"
-  ],
-  "pika": true,
-  "sideEffects": false,
-  "keywords": [
-    "octokit",
-    "github",
-    "api",
-    "error"
-  ],
-  "homepage": "https://github.com/octokit/request-error.js#readme",
-  "bugs": {
-    "url": "https://github.com/octokit/request-error.js/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/octokit/request-error.js.git"
-  },
-  "dependencies": {
-    "@octokit/types": "^4.0.1",
-    "deprecation": "^2.0.0",
-    "once": "^1.4.0"
-  },
-  "devDependencies": {
-    "@pika/pack": "^0.5.0",
-    "@pika/plugin-build-node": "^0.9.0",
-    "@pika/plugin-build-web": "^0.9.0",
-    "@pika/plugin-bundle-web": "^0.9.0",
-    "@pika/plugin-ts-standard-pkg": "^0.9.0",
-    "@types/jest": "^25.1.0",
-    "@types/node": "^14.0.4",
-    "@types/once": "^1.4.0",
-    "jest": "^25.1.0",
-    "pika-plugin-unpkg-field": "^1.1.0",
-    "prettier": "^2.0.1",
-    "semantic-release": "^17.0.0",
-    "ts-jest": "^25.1.0",
-    "typescript": "^3.4.5"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "source": "dist-src/index.js",
-  "types": "dist-types/index.d.ts",
-  "main": "dist-node/index.js",
-  "module": "dist-web/index.js"
-}
diff --git a/node_modules/@types/babel__traverse/LICENSE b/node_modules/@types/babel__traverse/LICENSE
index 4b1ad51..9e841e7 100644
--- a/node_modules/@types/babel__traverse/LICENSE
+++ b/node_modules/@types/babel__traverse/LICENSE
@@ -1,21 +1,21 @@
-    MIT License

-

-    Copyright (c) Microsoft Corporation. All rights reserved.

-

-    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

+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    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
diff --git a/node_modules/@types/babel__traverse/README.md b/node_modules/@types/babel__traverse/README.md
index f2e1c54..ddd8134 100644
--- a/node_modules/@types/babel__traverse/README.md
+++ b/node_modules/@types/babel__traverse/README.md
@@ -2,15 +2,15 @@
 > `npm install --save @types/babel__traverse`

 

 # Summary

-This package contains type definitions for @babel/traverse ( https://github.com/babel/babel/tree/master/packages/babel-traverse ).

+This package contains type definitions for @babel/traverse (https://github.com/babel/babel/tree/main/packages/babel-traverse).

 

 # Details

-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/babel__traverse

+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/babel__traverse.

 

-Additional Details

- * Last updated: Tue, 11 Jun 2019 02:00:21 GMT

- * Dependencies: @types/babel__types

+### Additional Details

+ * Last updated: Fri, 25 Sep 2020 23:55:30 GMT

+ * Dependencies: [@types/babel__types](https://npmjs.com/package/@types/babel__types)

  * Global values: none

 

 # Credits

-These definitions were written by Troy Gerwien <https://github.com/yortus>, Marvin Hagemeister <https://github.com/marvinhagemeister>, Ryan Petrich <https://github.com/rpetrich>, Melvin Groenhoff <https://github.com/mgroenhoff>.

+These definitions were written by [Troy Gerwien](https://github.com/yortus), [Marvin Hagemeister](https://github.com/marvinhagemeister), [Ryan Petrich](https://github.com/rpetrich), [Melvin Groenhoff](https://github.com/mgroenhoff), [Dean L.](https://github.com/dlgrit), [Ifiok Jr.](https://github.com/ifiokjr), and [ExE Boss](https://github.com/ExE-Boss).

diff --git a/node_modules/@types/babel__traverse/index.d.ts b/node_modules/@types/babel__traverse/index.d.ts
index 0e9ff76..827bae1 100644
--- a/node_modules/@types/babel__traverse/index.d.ts
+++ b/node_modules/@types/babel__traverse/index.d.ts
@@ -1,44 +1,80 @@
 // Type definitions for @babel/traverse 7.0
-// Project: https://github.com/babel/babel/tree/master/packages/babel-traverse, https://babeljs.io
+// Project: https://github.com/babel/babel/tree/main/packages/babel-traverse, https://babeljs.io
 // Definitions by: Troy Gerwien <https://github.com/yortus>
 //                 Marvin Hagemeister <https://github.com/marvinhagemeister>
 //                 Ryan Petrich <https://github.com/rpetrich>
 //                 Melvin Groenhoff <https://github.com/mgroenhoff>
+//                 Dean L. <https://github.com/dlgrit>
+//                 Ifiok Jr. <https://github.com/ifiokjr>
+//                 ExE Boss <https://github.com/ExE-Boss>
 // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.9
+// Minimum TypeScript Version: 3.4
 
-import * as t from "@babel/types";
+import * as t from '@babel/types';
+export import Node = t.Node;
 
-export type Node = t.Node;
+declare const traverse: {
+    <S>(
+        parent: Node | Node[] | null | undefined,
+        opts: TraverseOptions<S>,
+        scope: Scope | undefined,
+        state: S,
+        parentPath?: NodePath,
+    ): void;
+    (
+        parent: Node | Node[] | null | undefined,
+        opts?: TraverseOptions,
+        scope?: Scope,
+        state?: any,
+        parentPath?: NodePath,
+    ): void;
 
-export default function traverse<S>(
-    parent: Node | Node[],
-    opts: TraverseOptions<S>,
-    scope: Scope | undefined,
-    state: S,
-    parentPath?: NodePath,
-): void;
-export default function traverse(
-    parent: Node | Node[],
-    opts: TraverseOptions,
-    scope?: Scope,
-    state?: any,
-    parentPath?: NodePath,
-): void;
+    visitors: typeof visitors;
+    verify: typeof visitors.verify;
+    explode: typeof visitors.explode;
+};
+
+export namespace visitors {
+    /**
+     * `explode()` will take a `Visitor` object with all of the various shorthands
+     * that we support, and validates & normalizes it into a common format, ready
+     * to be used in traversal.
+     *
+     * The various shorthands are:
+     * - `Identifier() { ... }` -> `Identifier: { enter() { ... } }`
+     * - `"Identifier|NumericLiteral": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`
+     * - Aliases in `@babel/types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`
+     *
+     * Other normalizations are:
+     * - Visitors of virtual types are wrapped, so that they are only visited when their dynamic check passes
+     * - `enter` and `exit` functions are wrapped in arrays, to ease merging of visitors
+     */
+    function explode<S = {}>(
+        visitor: Visitor<S>,
+    ): {
+        [Type in Node['type']]?: VisitNodeObject<S, Extract<Node, { type: Type }>>;
+    };
+    function verify(visitor: Visitor): void;
+    function merge<S = {}>(visitors: Array<Visitor<S>>, states?: S[]): Visitor<unknown>;
+}
+
+export default traverse;
 
 export interface TraverseOptions<S = Node> extends Visitor<S> {
     scope?: Scope;
     noScope?: boolean;
 }
 
+export type ArrayKeys<T> = { [P in keyof T]: T[P] extends any[] ? P : never }[keyof T];
+
 export class Scope {
     constructor(path: NodePath, parentScope?: Scope);
     path: NodePath;
     block: Node;
     parentBlock: Node;
     parent: Scope;
-    hub: Hub;
-    bindings: { [name: string]: Binding; };
+    hub: HubInterface;
+    bindings: { [name: string]: Binding };
 
     /** Traverse node with current scope and path. */
     traverse<S>(node: Node | Node[], opts: TraverseOptions<S>, state: S): void;
@@ -102,12 +138,7 @@
 
     removeData(key: string): void;
 
-    push(opts: {
-        id: t.LVal,
-        init?: t.Expression,
-        unique?: boolean,
-        kind?: "var" | "let" | "const",
-    }): void;
+    push(opts: { id: t.LVal; init?: t.Expression; unique?: boolean; kind?: 'var' | 'let' | 'const' }): void;
 
     getProgramParent(): Scope;
 
@@ -143,11 +174,17 @@
 }
 
 export class Binding {
-    constructor(opts: { existing: Binding; identifier: t.Identifier; scope: Scope; path: NodePath; kind: "var" | "let" | "const"; });
+    constructor(opts: {
+        existing: Binding;
+        identifier: t.Identifier;
+        scope: Scope;
+        path: NodePath;
+        kind: 'var' | 'let' | 'const';
+    });
     identifier: t.Identifier;
     scope: Scope;
     path: NodePath;
-    kind: "var" | "let" | "const" | "module";
+    kind: 'var' | 'let' | 'const' | 'module';
     referenced: boolean;
     references: number;
     referencePaths: NodePath[];
@@ -155,21 +192,29 @@
     constantViolations: NodePath[];
 }
 
-export type Visitor<S = {}> = VisitNodeObject<S, Node> & {
-    [Type in Node["type"]]?: VisitNode<S, Extract<Node, { type: Type; }>>;
-} & {
-    [K in keyof t.Aliases]?: VisitNode<S, t.Aliases[K]>
-};
+export type Visitor<S = {}> = VisitNodeObject<S, Node> &
+    {
+        [Type in Node['type']]?: VisitNode<S, Extract<Node, { type: Type }>>;
+    } &
+    {
+        [K in keyof t.Aliases]?: VisitNode<S, t.Aliases[K]>;
+    };
 
-export type VisitNode<S, P> = VisitNodeFunction<S, P> | VisitNodeObject<S, P>;
+export type VisitNode<S, P extends Node> = VisitNodeFunction<S, P> | VisitNodeObject<S, P>;
 
-export type VisitNodeFunction<S, P> = (this: S, path: NodePath<P>, state: S) => void;
+export type VisitNodeFunction<S, P extends Node> = (this: S, path: NodePath<P>, state: S) => void;
 
-export interface VisitNodeObject<S, P> {
+export interface VisitNodeObject<S, P extends Node> {
     enter?: VisitNodeFunction<S, P>;
     exit?: VisitNodeFunction<S, P>;
 }
 
+export type NodePaths<T extends Node | readonly Node[]> = T extends readonly Node[]
+    ? { -readonly [K in keyof T]: NodePath<Extract<T[K], Node>> }
+    : T extends Node
+    ? [NodePath<T>]
+    : never;
+
 export class NodePath<T = Node> {
     constructor(hub: Hub, parent: Node);
     parent: Node;
@@ -191,7 +236,7 @@
     key: string | number;
     node: T;
     scope: Scope;
-    type: T extends undefined | null ? string | null : string;
+    type: T extends null | undefined ? undefined : T extends Node ? T['type'] : string | undefined;
     typeAnnotation: object;
 
     getScope(scope: Scope): Scope;
@@ -212,20 +257,36 @@
     // Example: https://github.com/babel/babel/blob/63204ae51e020d84a5b246312f5eeb4d981ab952/packages/babel-traverse/src/path/modification.js#L83
     debug(buildMessage: () => string): void;
 
-    // ------------------------- ancestry -------------------------
-    /**
-     * Call the provided `callback` with the `NodePath`s of all the parents.
-     * When the `callback` returns a truthy value, we return that node path.
-     */
-    findParent(callback: (path: NodePath) => boolean): NodePath;
+    static get<C extends Node, K extends keyof C>(opts: {
+        hub: HubInterface;
+        parentPath: NodePath | null;
+        parent: Node;
+        container: C;
+        listKey?: string;
+        key: K;
+    }): NodePath<C[K]>;
 
-    find(callback: (path: NodePath) => boolean): NodePath;
+    //#region ------------------------- ancestry -------------------------
+    /**
+     * Starting at the parent path of the current `NodePath` and going up the
+     * tree, return the first `NodePath` that causes the provided `callback`
+     * to return a truthy value, or `null` if the `callback` never returns a
+     * truthy value.
+     */
+    findParent(callback: (path: NodePath) => boolean): NodePath | null;
+
+    /**
+     * Starting at current `NodePath` and going up the tree, return the first
+     * `NodePath` that causes the provided `callback` to return a truthy value,
+     * or `null` if the `callback` never returns a truthy value.
+     */
+    find(callback: (path: NodePath) => boolean): NodePath | null;
 
     /** Get the parent function of the current path. */
-    getFunctionParent(): NodePath<t.Function>;
+    getFunctionParent(): NodePath<t.Function> | null;
 
     /** Walk up the tree until we hit a parent node path in a list. */
-    getStatementParent(): NodePath<t.Statement>;
+    getStatementParent(): NodePath<t.Statement> | null;
 
     /**
      * Get the deepest common ancestor and then from it, get the earliest relationship path
@@ -234,12 +295,12 @@
      * Earliest is defined as being "before" all the other nodes in terms of list container
      * position and visiting key.
      */
-    getEarliestCommonAncestorFrom(paths: NodePath[]): NodePath[];
+    getEarliestCommonAncestorFrom(paths: NodePath[]): NodePath;
 
     /** Get the earliest path in the tree where the provided `paths` intersect. */
     getDeepestCommonAncestorFrom(
         paths: NodePath[],
-        filter?: (deepest: Node, i: number, ancestries: NodePath[]) => NodePath
+        filter?: (deepest: Node, i: number, ancestries: NodePath[]) => NodePath,
     ): NodePath;
 
     /**
@@ -247,11 +308,22 @@
      *
      * NOTE: The current node path is included in this.
      */
-    getAncestry(): NodePath[];
+    getAncestry(): [this, ...NodePath[]];
+
+    /**
+     * A helper to find if `this` path is an ancestor of `maybeDescendant`
+     */
+    isAncestor(maybeDescendant: NodePath): boolean;
+
+    /**
+     * A helper to find if `this` path is a descendant of `maybeAncestor`
+     */
+    isDescendant(maybeAncestor: NodePath): boolean;
 
     inType(...candidateTypes: string[]): boolean;
+    //#endregion
 
-    // ------------------------- inference -------------------------
+    //#region ------------------------- inference -------------------------
     /** Infer the type of the current `NodePath`. */
     getTypeAnnotation(): t.FlowType;
 
@@ -262,8 +334,9 @@
     baseTypeStrictlyMatches(right: NodePath): boolean;
 
     isGenericType(genericName: string): boolean;
+    //#endregion
 
-    // ------------------------- replacement -------------------------
+    //#region ------------------------- replacement -------------------------
     /**
      * Replace a node with an array of multiple. This method performs the following steps:
      *
@@ -271,7 +344,7 @@
      *  - Insert the provided nodes after the current node.
      *  - Remove the current node.
      */
-    replaceWithMultiple(nodes: Node[]): void;
+    replaceWithMultiple<Nodes extends readonly Node[]>(nodes: Nodes): NodePaths<Nodes>;
 
     /**
      * Parse a string as an expression and replace the current node with the result.
@@ -280,21 +353,22 @@
      * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it's
      * easier to use, your transforms will be extremely brittle.
      */
-    replaceWithSourceString(replacement: any): void;
+    replaceWithSourceString(replacement: any): [NodePath];
 
     /** Replace the current node with another. */
-    replaceWith(replacement: Node | NodePath): void;
+    replaceWith<T extends Node>(replacement: T | NodePath<T>): [NodePath<T>];
 
     /**
      * This method takes an array of statements nodes and then explodes it
      * into expressions. This method retains completion records which is
      * extremely important to retain original semantics.
      */
-    replaceExpressionWithStatements(nodes: Node[]): Node;
+    replaceExpressionWithStatements<Nodes extends readonly Node[]>(nodes: Nodes): NodePaths<Nodes>;
 
-    replaceInline(nodes: Node | Node[]): void;
+    replaceInline<Nodes extends Node | readonly Node[]>(nodes: Nodes): NodePaths<Nodes>;
+    //#endregion
 
-    // ------------------------- evaluation -------------------------
+    //#region ------------------------- evaluation -------------------------
     /**
      * Walk the input `node` and statically evaluate if it's truthy.
      *
@@ -319,8 +393,9 @@
      *   t.evaluate(parse("foo + foo")) // { confident: false, value: undefined }
      */
     evaluate(): { confident: boolean; value: any };
+    //#endregion
 
-    // ------------------------- introspection -------------------------
+    //#region ------------------------- introspection -------------------------
     /**
      * Match the current node if it matches the provided `pattern`.
      *
@@ -389,8 +464,9 @@
 
     /** Check if the current path will maybe execute before another path */
     willIMaybeExecuteBefore(path: NodePath): boolean;
+    //#endregion
 
-    // ------------------------- context -------------------------
+    //#region ------------------------- context -------------------------
     call(key: string): boolean;
 
     isBlacklisted(): boolean;
@@ -410,27 +486,44 @@
     popContext(): void;
 
     pushContext(context: TraversalContext): void;
+    //#endregion
 
-    // ------------------------- removal -------------------------
+    //#region ------------------------- removal -------------------------
     remove(): void;
+    //#endregion
 
-    // ------------------------- modification -------------------------
+    //#region ------------------------- modification -------------------------
     /** Insert the provided nodes before the current one. */
-    insertBefore(nodes: Node | Node[]): any;
+    insertBefore<Nodes extends Node | readonly Node[]>(nodes: Nodes): NodePaths<Nodes>;
 
     /**
      * Insert the provided nodes after the current one. When inserting nodes after an
      * expression, ensure that the completion record is correct by pushing the current node.
      */
-    insertAfter(nodes: Node | Node[]): any;
+    insertAfter<Nodes extends Node | readonly Node[]>(nodes: Nodes): NodePaths<Nodes>;
 
     /** Update all sibling node paths after `fromIndex` by `incrementBy`. */
     updateSiblingKeys(fromIndex: number, incrementBy: number): void;
 
+    /**
+     * Insert child nodes at the start of the current node.
+     * @param listKey - The key at which the child nodes are stored (usually body).
+     * @param nodes - the nodes to insert.
+     */
+    unshiftContainer<Nodes extends Node | readonly Node[]>(listKey: ArrayKeys<T>, nodes: Nodes): NodePaths<Nodes>;
+
+    /**
+     * Insert child nodes at the end of the current node.
+     * @param listKey - The key at which the child nodes are stored (usually body).
+     * @param nodes - the nodes to insert.
+     */
+    pushContainer<Nodes extends Node | readonly Node[]>(listKey: ArrayKeys<T>, nodes: Nodes): NodePaths<Nodes>;
+
     /** Hoist the current node to the highest scope possible and return a UID referencing it. */
     hoist(scope: Scope): void;
+    //#endregion
 
-    // ------------------------- family -------------------------
+    //#region ------------------------- family -------------------------
     getOpposite(): NodePath;
 
     getCompletionRecords(): NodePath[];
@@ -439,17 +532,22 @@
     getAllPrevSiblings(): NodePath[];
     getAllNextSiblings(): NodePath[];
 
-    get<K extends keyof T>(key: K, context?: boolean | TraversalContext):
-        T[K] extends Array<Node | null | undefined> ? Array<NodePath<T[K][number]>> :
-        T[K] extends Node | null | undefined ? NodePath<T[K]> :
-        never;
+    get<K extends keyof T>(
+        key: K,
+        context?: boolean | TraversalContext,
+    ): T[K] extends Array<Node | null | undefined>
+        ? Array<NodePath<T[K][number]>>
+        : T[K] extends Node | null | undefined
+        ? NodePath<T[K]>
+        : never;
     get(key: string, context?: boolean | TraversalContext): NodePath | NodePath[];
 
     getBindingIdentifiers(duplicates?: boolean): Node[];
 
     getOuterBindingIdentifiers(duplicates?: boolean): Node[];
+    //#endregion
 
-    // ------------------------- comments -------------------------
+    //#region ------------------------- comments -------------------------
     /** Share comments amongst siblings. */
     shareCommentsWithSiblings(): void;
 
@@ -457,368 +555,602 @@
 
     /** Give node `comments` of the specified `type`. */
     addComments(type: string, comments: any[]): void;
+    //#endregion
 
-    // ------------------------- isXXX -------------------------
-    isArrayExpression(opts?: object): this is NodePath<t.ArrayExpression>;
-    isAssignmentExpression(opts?: object): this is NodePath<t.AssignmentExpression>;
-    isBinaryExpression(opts?: object): this is NodePath<t.BinaryExpression>;
-    isDirective(opts?: object): this is NodePath<t.Directive>;
-    isDirectiveLiteral(opts?: object): this is NodePath<t.DirectiveLiteral>;
-    isBlockStatement(opts?: object): this is NodePath<t.BlockStatement>;
-    isBreakStatement(opts?: object): this is NodePath<t.BreakStatement>;
-    isCallExpression(opts?: object): this is NodePath<t.CallExpression>;
-    isCatchClause(opts?: object): this is NodePath<t.CatchClause>;
-    isConditionalExpression(opts?: object): this is NodePath<t.ConditionalExpression>;
-    isContinueStatement(opts?: object): this is NodePath<t.ContinueStatement>;
-    isDebuggerStatement(opts?: object): this is NodePath<t.DebuggerStatement>;
-    isDoWhileStatement(opts?: object): this is NodePath<t.DoWhileStatement>;
-    isEmptyStatement(opts?: object): this is NodePath<t.EmptyStatement>;
-    isExpressionStatement(opts?: object): this is NodePath<t.ExpressionStatement>;
-    isFile(opts?: object): this is NodePath<t.File>;
-    isForInStatement(opts?: object): this is NodePath<t.ForInStatement>;
-    isForStatement(opts?: object): this is NodePath<t.ForStatement>;
-    isFunctionDeclaration(opts?: object): this is NodePath<t.FunctionDeclaration>;
-    isFunctionExpression(opts?: object): this is NodePath<t.FunctionExpression>;
-    isIdentifier(opts?: object): this is NodePath<t.Identifier>;
-    isIfStatement(opts?: object): this is NodePath<t.IfStatement>;
-    isLabeledStatement(opts?: object): this is NodePath<t.LabeledStatement>;
-    isStringLiteral(opts?: object): this is NodePath<t.StringLiteral>;
-    isNumericLiteral(opts?: object): this is NodePath<t.NumericLiteral>;
-    isNullLiteral(opts?: object): this is NodePath<t.NullLiteral>;
-    isBooleanLiteral(opts?: object): this is NodePath<t.BooleanLiteral>;
-    isRegExpLiteral(opts?: object): this is NodePath<t.RegExpLiteral>;
-    isLogicalExpression(opts?: object): this is NodePath<t.LogicalExpression>;
-    isMemberExpression(opts?: object): this is NodePath<t.MemberExpression>;
-    isNewExpression(opts?: object): this is NodePath<t.NewExpression>;
-    isProgram(opts?: object): this is NodePath<t.Program>;
-    isObjectExpression(opts?: object): this is NodePath<t.ObjectExpression>;
-    isObjectMethod(opts?: object): this is NodePath<t.ObjectMethod>;
-    isObjectProperty(opts?: object): this is NodePath<t.ObjectProperty>;
-    isRestElement(opts?: object): this is NodePath<t.RestElement>;
-    isReturnStatement(opts?: object): this is NodePath<t.ReturnStatement>;
-    isSequenceExpression(opts?: object): this is NodePath<t.SequenceExpression>;
-    isSwitchCase(opts?: object): this is NodePath<t.SwitchCase>;
-    isSwitchStatement(opts?: object): this is NodePath<t.SwitchStatement>;
-    isThisExpression(opts?: object): this is NodePath<t.ThisExpression>;
-    isThrowStatement(opts?: object): this is NodePath<t.ThrowStatement>;
-    isTryStatement(opts?: object): this is NodePath<t.TryStatement>;
-    isUnaryExpression(opts?: object): this is NodePath<t.UnaryExpression>;
-    isUpdateExpression(opts?: object): this is NodePath<t.UpdateExpression>;
-    isVariableDeclaration(opts?: object): this is NodePath<t.VariableDeclaration>;
-    isVariableDeclarator(opts?: object): this is NodePath<t.VariableDeclarator>;
-    isWhileStatement(opts?: object): this is NodePath<t.WhileStatement>;
-    isWithStatement(opts?: object): this is NodePath<t.WithStatement>;
-    isAssignmentPattern(opts?: object): this is NodePath<t.AssignmentPattern>;
-    isArrayPattern(opts?: object): this is NodePath<t.ArrayPattern>;
-    isArrowFunctionExpression(opts?: object): this is NodePath<t.ArrowFunctionExpression>;
-    isClassBody(opts?: object): this is NodePath<t.ClassBody>;
-    isClassDeclaration(opts?: object): this is NodePath<t.ClassDeclaration>;
-    isClassExpression(opts?: object): this is NodePath<t.ClassExpression>;
-    isExportAllDeclaration(opts?: object): this is NodePath<t.ExportAllDeclaration>;
-    isExportDefaultDeclaration(opts?: object): this is NodePath<t.ExportDefaultDeclaration>;
-    isExportNamedDeclaration(opts?: object): this is NodePath<t.ExportNamedDeclaration>;
-    isExportSpecifier(opts?: object): this is NodePath<t.ExportSpecifier>;
-    isForOfStatement(opts?: object): this is NodePath<t.ForOfStatement>;
-    isImportDeclaration(opts?: object): this is NodePath<t.ImportDeclaration>;
-    isImportDefaultSpecifier(opts?: object): this is NodePath<t.ImportDefaultSpecifier>;
-    isImportNamespaceSpecifier(opts?: object): this is NodePath<t.ImportNamespaceSpecifier>;
-    isImportSpecifier(opts?: object): this is NodePath<t.ImportSpecifier>;
-    isMetaProperty(opts?: object): this is NodePath<t.MetaProperty>;
-    isClassMethod(opts?: object): this is NodePath<t.ClassMethod>;
-    isObjectPattern(opts?: object): this is NodePath<t.ObjectPattern>;
-    isSpreadElement(opts?: object): this is NodePath<t.SpreadElement>;
-    isSuper(opts?: object): this is NodePath<t.Super>;
-    isTaggedTemplateExpression(opts?: object): this is NodePath<t.TaggedTemplateExpression>;
-    isTemplateElement(opts?: object): this is NodePath<t.TemplateElement>;
-    isTemplateLiteral(opts?: object): this is NodePath<t.TemplateLiteral>;
-    isYieldExpression(opts?: object): this is NodePath<t.YieldExpression>;
-    isAnyTypeAnnotation(opts?: object): this is NodePath<t.AnyTypeAnnotation>;
-    isArrayTypeAnnotation(opts?: object): this is NodePath<t.ArrayTypeAnnotation>;
-    isBooleanTypeAnnotation(opts?: object): this is NodePath<t.BooleanTypeAnnotation>;
-    isBooleanLiteralTypeAnnotation(opts?: object): this is NodePath<t.BooleanLiteralTypeAnnotation>;
-    isNullLiteralTypeAnnotation(opts?: object): this is NodePath<t.NullLiteralTypeAnnotation>;
-    isClassImplements(opts?: object): this is NodePath<t.ClassImplements>;
-    isClassProperty(opts?: object): this is NodePath<t.ClassProperty>;
-    isDeclareClass(opts?: object): this is NodePath<t.DeclareClass>;
-    isDeclareFunction(opts?: object): this is NodePath<t.DeclareFunction>;
-    isDeclareInterface(opts?: object): this is NodePath<t.DeclareInterface>;
-    isDeclareModule(opts?: object): this is NodePath<t.DeclareModule>;
-    isDeclareTypeAlias(opts?: object): this is NodePath<t.DeclareTypeAlias>;
-    isDeclareVariable(opts?: object): this is NodePath<t.DeclareVariable>;
-    isFunctionTypeAnnotation(opts?: object): this is NodePath<t.FunctionTypeAnnotation>;
-    isFunctionTypeParam(opts?: object): this is NodePath<t.FunctionTypeParam>;
-    isGenericTypeAnnotation(opts?: object): this is NodePath<t.GenericTypeAnnotation>;
-    isInterfaceExtends(opts?: object): this is NodePath<t.InterfaceExtends>;
-    isInterfaceDeclaration(opts?: object): this is NodePath<t.InterfaceDeclaration>;
-    isIntersectionTypeAnnotation(opts?: object): this is NodePath<t.IntersectionTypeAnnotation>;
-    isMixedTypeAnnotation(opts?: object): this is NodePath<t.MixedTypeAnnotation>;
-    isNullableTypeAnnotation(opts?: object): this is NodePath<t.NullableTypeAnnotation>;
-    isNumberTypeAnnotation(opts?: object): this is NodePath<t.NumberTypeAnnotation>;
-    isStringLiteralTypeAnnotation(opts?: object): this is NodePath<t.StringLiteralTypeAnnotation>;
-    isStringTypeAnnotation(opts?: object): this is NodePath<t.StringTypeAnnotation>;
-    isThisTypeAnnotation(opts?: object): this is NodePath<t.ThisTypeAnnotation>;
-    isTupleTypeAnnotation(opts?: object): this is NodePath<t.TupleTypeAnnotation>;
-    isTypeofTypeAnnotation(opts?: object): this is NodePath<t.TypeofTypeAnnotation>;
-    isTypeAlias(opts?: object): this is NodePath<t.TypeAlias>;
-    isTypeAnnotation(opts?: object): this is NodePath<t.TypeAnnotation>;
-    isTypeCastExpression(opts?: object): this is NodePath<t.TypeCastExpression>;
-    isTypeParameterDeclaration(opts?: object): this is NodePath<t.TypeParameterDeclaration>;
-    isTypeParameterInstantiation(opts?: object): this is NodePath<t.TypeParameterInstantiation>;
-    isObjectTypeAnnotation(opts?: object): this is NodePath<t.ObjectTypeAnnotation>;
-    isObjectTypeCallProperty(opts?: object): this is NodePath<t.ObjectTypeCallProperty>;
-    isObjectTypeIndexer(opts?: object): this is NodePath<t.ObjectTypeIndexer>;
-    isObjectTypeProperty(opts?: object): this is NodePath<t.ObjectTypeProperty>;
-    isQualifiedTypeIdentifier(opts?: object): this is NodePath<t.QualifiedTypeIdentifier>;
-    isUnionTypeAnnotation(opts?: object): this is NodePath<t.UnionTypeAnnotation>;
-    isVoidTypeAnnotation(opts?: object): this is NodePath<t.VoidTypeAnnotation>;
-    isJSXAttribute(opts?: object): this is NodePath<t.JSXAttribute>;
-    isJSXClosingElement(opts?: object): this is NodePath<t.JSXClosingElement>;
-    isJSXElement(opts?: object): this is NodePath<t.JSXElement>;
-    isJSXEmptyExpression(opts?: object): this is NodePath<t.JSXEmptyExpression>;
-    isJSXExpressionContainer(opts?: object): this is NodePath<t.JSXExpressionContainer>;
-    isJSXIdentifier(opts?: object): this is NodePath<t.JSXIdentifier>;
-    isJSXMemberExpression(opts?: object): this is NodePath<t.JSXMemberExpression>;
-    isJSXNamespacedName(opts?: object): this is NodePath<t.JSXNamespacedName>;
-    isJSXOpeningElement(opts?: object): this is NodePath<t.JSXOpeningElement>;
-    isJSXSpreadAttribute(opts?: object): this is NodePath<t.JSXSpreadAttribute>;
-    isJSXText(opts?: object): this is NodePath<t.JSXText>;
-    isNoop(opts?: object): this is NodePath<t.Noop>;
-    isParenthesizedExpression(opts?: object): this is NodePath<t.ParenthesizedExpression>;
-    isAwaitExpression(opts?: object): this is NodePath<t.AwaitExpression>;
-    isBindExpression(opts?: object): this is NodePath<t.BindExpression>;
-    isDecorator(opts?: object): this is NodePath<t.Decorator>;
-    isDoExpression(opts?: object): this is NodePath<t.DoExpression>;
-    isExportDefaultSpecifier(opts?: object): this is NodePath<t.ExportDefaultSpecifier>;
-    isExportNamespaceSpecifier(opts?: object): this is NodePath<t.ExportNamespaceSpecifier>;
-    isRestProperty(opts?: object): this is NodePath<t.RestProperty>;
-    isSpreadProperty(opts?: object): this is NodePath<t.SpreadProperty>;
-    isExpression(opts?: object): this is NodePath<t.Expression>;
-    isBinary(opts?: object): this is NodePath<t.Binary>;
-    isScopable(opts?: object): this is NodePath<t.Scopable>;
-    isBlockParent(opts?: object): this is NodePath<t.BlockParent>;
-    isBlock(opts?: object): this is NodePath<t.Block>;
-    isStatement(opts?: object): this is NodePath<t.Statement>;
-    isTerminatorless(opts?: object): this is NodePath<t.Terminatorless>;
-    isCompletionStatement(opts?: object): this is NodePath<t.CompletionStatement>;
-    isConditional(opts?: object): this is NodePath<t.Conditional>;
-    isLoop(opts?: object): this is NodePath<t.Loop>;
-    isWhile(opts?: object): this is NodePath<t.While>;
-    isExpressionWrapper(opts?: object): this is NodePath<t.ExpressionWrapper>;
-    isFor(opts?: object): this is NodePath<t.For>;
-    isForXStatement(opts?: object): this is NodePath<t.ForXStatement>;
-    isFunction(opts?: object): this is NodePath<t.Function>;
-    isFunctionParent(opts?: object): this is NodePath<t.FunctionParent>;
-    isPureish(opts?: object): this is NodePath<t.Pureish>;
-    isDeclaration(opts?: object): this is NodePath<t.Declaration>;
-    isLVal(opts?: object): this is NodePath<t.LVal>;
-    isLiteral(opts?: object): this is NodePath<t.Literal>;
-    isImmutable(opts?: object): this is NodePath<t.Immutable>;
-    isUserWhitespacable(opts?: object): this is NodePath<t.UserWhitespacable>;
-    isMethod(opts?: object): this is NodePath<t.Method>;
-    isObjectMember(opts?: object): this is NodePath<t.ObjectMember>;
-    isProperty(opts?: object): this is NodePath<t.Property>;
-    isUnaryLike(opts?: object): this is NodePath<t.UnaryLike>;
-    isPattern(opts?: object): this is NodePath<t.Pattern>;
-    isClass(opts?: object): this is NodePath<t.Class>;
-    isModuleDeclaration(opts?: object): this is NodePath<t.ModuleDeclaration>;
-    isExportDeclaration(opts?: object): this is NodePath<t.ExportDeclaration>;
-    isModuleSpecifier(opts?: object): this is NodePath<t.ModuleSpecifier>;
-    isFlow(opts?: object): this is NodePath<t.Flow>;
-    isFlowBaseAnnotation(opts?: object): this is NodePath<t.FlowBaseAnnotation>;
-    isFlowDeclaration(opts?: object): this is NodePath<t.FlowDeclaration>;
-    isJSX(opts?: object): this is NodePath<t.JSX>;
-    isNumberLiteral(opts?: object): this is NodePath<t.NumericLiteral>;
-    isRegexLiteral(opts?: object): this is NodePath<t.RegExpLiteral>;
-    isReferencedIdentifier(opts?: object): this is NodePath<t.Identifier | t.JSXIdentifier>;
-    isReferencedMemberExpression(opts?: object): this is NodePath<t.MemberExpression>;
-    isBindingIdentifier(opts?: object): this is NodePath<t.Identifier>;
-    isScope(opts?: object): this is NodePath<t.Scopable>;
-    isReferenced(opts?: object): boolean;
-    isBlockScoped(opts?: object): this is NodePath<t.FunctionDeclaration | t.ClassDeclaration | t.VariableDeclaration>;
-    isVar(opts?: object): this is NodePath<t.VariableDeclaration>;
-    isUser(opts?: object): boolean;
-    isGenerated(opts?: object): boolean;
-    isPure(opts?: object): boolean;
+    //#region ------------------------- isXXX -------------------------
+    isAnyTypeAnnotation(props?: object | null): this is NodePath<t.AnyTypeAnnotation>;
+    isArrayExpression(props?: object | null): this is NodePath<t.ArrayExpression>;
+    isArrayPattern(props?: object | null): this is NodePath<t.ArrayPattern>;
+    isArrayTypeAnnotation(props?: object | null): this is NodePath<t.ArrayTypeAnnotation>;
+    isArrowFunctionExpression(props?: object | null): this is NodePath<t.ArrowFunctionExpression>;
+    isAssignmentExpression(props?: object | null): this is NodePath<t.AssignmentExpression>;
+    isAssignmentPattern(props?: object | null): this is NodePath<t.AssignmentPattern>;
+    isAwaitExpression(props?: object | null): this is NodePath<t.AwaitExpression>;
+    isBigIntLiteral(props?: object | null): this is NodePath<t.BigIntLiteral>;
+    isBinary(props?: object | null): this is NodePath<t.Binary>;
+    isBinaryExpression(props?: object | null): this is NodePath<t.BinaryExpression>;
+    isBindExpression(props?: object | null): this is NodePath<t.BindExpression>;
+    isBlock(props?: object | null): this is NodePath<t.Block>;
+    isBlockParent(props?: object | null): this is NodePath<t.BlockParent>;
+    isBlockStatement(props?: object | null): this is NodePath<t.BlockStatement>;
+    isBooleanLiteral(props?: object | null): this is NodePath<t.BooleanLiteral>;
+    isBooleanLiteralTypeAnnotation(props?: object | null): this is NodePath<t.BooleanLiteralTypeAnnotation>;
+    isBooleanTypeAnnotation(props?: object | null): this is NodePath<t.BooleanTypeAnnotation>;
+    isBreakStatement(props?: object | null): this is NodePath<t.BreakStatement>;
+    isCallExpression(props?: object | null): this is NodePath<t.CallExpression>;
+    isCatchClause(props?: object | null): this is NodePath<t.CatchClause>;
+    isClass(props?: object | null): this is NodePath<t.Class>;
+    isClassBody(props?: object | null): this is NodePath<t.ClassBody>;
+    isClassDeclaration(props?: object | null): this is NodePath<t.ClassDeclaration>;
+    isClassExpression(props?: object | null): this is NodePath<t.ClassExpression>;
+    isClassImplements(props?: object | null): this is NodePath<t.ClassImplements>;
+    isClassMethod(props?: object | null): this is NodePath<t.ClassMethod>;
+    isClassPrivateMethod(props?: object | null): this is NodePath<t.ClassPrivateMethod>;
+    isClassPrivateProperty(props?: object | null): this is NodePath<t.ClassPrivateProperty>;
+    isClassProperty(props?: object | null): this is NodePath<t.ClassProperty>;
+    isCompletionStatement(props?: object | null): this is NodePath<t.CompletionStatement>;
+    isConditional(props?: object | null): this is NodePath<t.Conditional>;
+    isConditionalExpression(props?: object | null): this is NodePath<t.ConditionalExpression>;
+    isContinueStatement(props?: object | null): this is NodePath<t.ContinueStatement>;
+    isDebuggerStatement(props?: object | null): this is NodePath<t.DebuggerStatement>;
+    isDeclaration(props?: object | null): this is NodePath<t.Declaration>;
+    isDeclareClass(props?: object | null): this is NodePath<t.DeclareClass>;
+    isDeclareExportAllDeclaration(props?: object | null): this is NodePath<t.DeclareExportAllDeclaration>;
+    isDeclareExportDeclaration(props?: object | null): this is NodePath<t.DeclareExportDeclaration>;
+    isDeclareFunction(props?: object | null): this is NodePath<t.DeclareFunction>;
+    isDeclareInterface(props?: object | null): this is NodePath<t.DeclareInterface>;
+    isDeclareModule(props?: object | null): this is NodePath<t.DeclareModule>;
+    isDeclareModuleExports(props?: object | null): this is NodePath<t.DeclareModuleExports>;
+    isDeclareOpaqueType(props?: object | null): this is NodePath<t.DeclareOpaqueType>;
+    isDeclareTypeAlias(props?: object | null): this is NodePath<t.DeclareTypeAlias>;
+    isDeclareVariable(props?: object | null): this is NodePath<t.DeclareVariable>;
+    isDeclaredPredicate(props?: object | null): this is NodePath<t.DeclaredPredicate>;
+    isDecorator(props?: object | null): this is NodePath<t.Decorator>;
+    isDirective(props?: object | null): this is NodePath<t.Directive>;
+    isDirectiveLiteral(props?: object | null): this is NodePath<t.DirectiveLiteral>;
+    isDoExpression(props?: object | null): this is NodePath<t.DoExpression>;
+    isDoWhileStatement(props?: object | null): this is NodePath<t.DoWhileStatement>;
+    isEmptyStatement(props?: object | null): this is NodePath<t.EmptyStatement>;
+    isEmptyTypeAnnotation(props?: object | null): this is NodePath<t.EmptyTypeAnnotation>;
+    isExistsTypeAnnotation(props?: object | null): this is NodePath<t.ExistsTypeAnnotation>;
+    isExportAllDeclaration(props?: object | null): this is NodePath<t.ExportAllDeclaration>;
+    isExportDeclaration(props?: object | null): this is NodePath<t.ExportDeclaration>;
+    isExportDefaultDeclaration(props?: object | null): this is NodePath<t.ExportDefaultDeclaration>;
+    isExportDefaultSpecifier(props?: object | null): this is NodePath<t.ExportDefaultSpecifier>;
+    isExportNamedDeclaration(props?: object | null): this is NodePath<t.ExportNamedDeclaration>;
+    isExportNamespaceSpecifier(props?: object | null): this is NodePath<t.ExportNamespaceSpecifier>;
+    isExportSpecifier(props?: object | null): this is NodePath<t.ExportSpecifier>;
+    isExpression(props?: object | null): this is NodePath<t.Expression>;
+    isExpressionStatement(props?: object | null): this is NodePath<t.ExpressionStatement>;
+    isExpressionWrapper(props?: object | null): this is NodePath<t.ExpressionWrapper>;
+    isFile(props?: object | null): this is NodePath<t.File>;
+    isFlow(props?: object | null): this is NodePath<t.Flow>;
+    isFlowBaseAnnotation(props?: object | null): this is NodePath<t.FlowBaseAnnotation>;
+    isFlowDeclaration(props?: object | null): this is NodePath<t.FlowDeclaration>;
+    isFlowPredicate(props?: object | null): this is NodePath<t.FlowPredicate>;
+    isFlowType(props?: object | null): this is NodePath<t.FlowType>;
+    isFor(props?: object | null): this is NodePath<t.For>;
+    isForInStatement(props?: object | null): this is NodePath<t.ForInStatement>;
+    isForOfStatement(props?: object | null): this is NodePath<t.ForOfStatement>;
+    isForStatement(props?: object | null): this is NodePath<t.ForStatement>;
+    isForXStatement(props?: object | null): this is NodePath<t.ForXStatement>;
+    isFunction(props?: object | null): this is NodePath<t.Function>;
+    isFunctionDeclaration(props?: object | null): this is NodePath<t.FunctionDeclaration>;
+    isFunctionExpression(props?: object | null): this is NodePath<t.FunctionExpression>;
+    isFunctionParent(props?: object | null): this is NodePath<t.FunctionParent>;
+    isFunctionTypeAnnotation(props?: object | null): this is NodePath<t.FunctionTypeAnnotation>;
+    isFunctionTypeParam(props?: object | null): this is NodePath<t.FunctionTypeParam>;
+    isGenericTypeAnnotation(props?: object | null): this is NodePath<t.GenericTypeAnnotation>;
+    isIdentifier(props?: object | null): this is NodePath<t.Identifier>;
+    isIfStatement(props?: object | null): this is NodePath<t.IfStatement>;
+    isImmutable(props?: object | null): this is NodePath<t.Immutable>;
+    isImport(props?: object | null): this is NodePath<t.Import>;
+    isImportDeclaration(props?: object | null): this is NodePath<t.ImportDeclaration>;
+    isImportDefaultSpecifier(props?: object | null): this is NodePath<t.ImportDefaultSpecifier>;
+    isImportNamespaceSpecifier(props?: object | null): this is NodePath<t.ImportNamespaceSpecifier>;
+    isImportSpecifier(props?: object | null): this is NodePath<t.ImportSpecifier>;
+    isInferredPredicate(props?: object | null): this is NodePath<t.InferredPredicate>;
+    isInterfaceDeclaration(props?: object | null): this is NodePath<t.InterfaceDeclaration>;
+    isInterfaceExtends(props?: object | null): this is NodePath<t.InterfaceExtends>;
+    isInterfaceTypeAnnotation(props?: object | null): this is NodePath<t.InterfaceTypeAnnotation>;
+    isInterpreterDirective(props?: object | null): this is NodePath<t.InterpreterDirective>;
+    isIntersectionTypeAnnotation(props?: object | null): this is NodePath<t.IntersectionTypeAnnotation>;
+    isJSX(props?: object | null): this is NodePath<t.JSX>;
+    isJSXAttribute(props?: object | null): this is NodePath<t.JSXAttribute>;
+    isJSXClosingElement(props?: object | null): this is NodePath<t.JSXClosingElement>;
+    isJSXClosingFragment(props?: object | null): this is NodePath<t.JSXClosingFragment>;
+    isJSXElement(props?: object | null): this is NodePath<t.JSXElement>;
+    isJSXEmptyExpression(props?: object | null): this is NodePath<t.JSXEmptyExpression>;
+    isJSXExpressionContainer(props?: object | null): this is NodePath<t.JSXExpressionContainer>;
+    isJSXFragment(props?: object | null): this is NodePath<t.JSXFragment>;
+    isJSXIdentifier(props?: object | null): this is NodePath<t.JSXIdentifier>;
+    isJSXMemberExpression(props?: object | null): this is NodePath<t.JSXMemberExpression>;
+    isJSXNamespacedName(props?: object | null): this is NodePath<t.JSXNamespacedName>;
+    isJSXOpeningElement(props?: object | null): this is NodePath<t.JSXOpeningElement>;
+    isJSXOpeningFragment(props?: object | null): this is NodePath<t.JSXOpeningFragment>;
+    isJSXSpreadAttribute(props?: object | null): this is NodePath<t.JSXSpreadAttribute>;
+    isJSXSpreadChild(props?: object | null): this is NodePath<t.JSXSpreadChild>;
+    isJSXText(props?: object | null): this is NodePath<t.JSXText>;
+    isLVal(props?: object | null): this is NodePath<t.LVal>;
+    isLabeledStatement(props?: object | null): this is NodePath<t.LabeledStatement>;
+    isLiteral(props?: object | null): this is NodePath<t.Literal>;
+    isLogicalExpression(props?: object | null): this is NodePath<t.LogicalExpression>;
+    isLoop(props?: object | null): this is NodePath<t.Loop>;
+    isMemberExpression(props?: object | null): this is NodePath<t.MemberExpression>;
+    isMetaProperty(props?: object | null): this is NodePath<t.MetaProperty>;
+    isMethod(props?: object | null): this is NodePath<t.Method>;
+    isMixedTypeAnnotation(props?: object | null): this is NodePath<t.MixedTypeAnnotation>;
+    isModuleDeclaration(props?: object | null): this is NodePath<t.ModuleDeclaration>;
+    isModuleSpecifier(props?: object | null): this is NodePath<t.ModuleSpecifier>;
+    isNewExpression(props?: object | null): this is NodePath<t.NewExpression>;
+    isNoop(props?: object | null): this is NodePath<t.Noop>;
+    isNullLiteral(props?: object | null): this is NodePath<t.NullLiteral>;
+    isNullLiteralTypeAnnotation(props?: object | null): this is NodePath<t.NullLiteralTypeAnnotation>;
+    isNullableTypeAnnotation(props?: object | null): this is NodePath<t.NullableTypeAnnotation>;
 
-    // ------------------------- assertXXX -------------------------
-    assertArrayExpression(opts?: object): void;
-    assertAssignmentExpression(opts?: object): void;
-    assertBinaryExpression(opts?: object): void;
-    assertDirective(opts?: object): void;
-    assertDirectiveLiteral(opts?: object): void;
-    assertBlockStatement(opts?: object): void;
-    assertBreakStatement(opts?: object): void;
-    assertCallExpression(opts?: object): void;
-    assertCatchClause(opts?: object): void;
-    assertConditionalExpression(opts?: object): void;
-    assertContinueStatement(opts?: object): void;
-    assertDebuggerStatement(opts?: object): void;
-    assertDoWhileStatement(opts?: object): void;
-    assertEmptyStatement(opts?: object): void;
-    assertExpressionStatement(opts?: object): void;
-    assertFile(opts?: object): void;
-    assertForInStatement(opts?: object): void;
-    assertForStatement(opts?: object): void;
-    assertFunctionDeclaration(opts?: object): void;
-    assertFunctionExpression(opts?: object): void;
-    assertIdentifier(opts?: object): void;
-    assertIfStatement(opts?: object): void;
-    assertLabeledStatement(opts?: object): void;
-    assertStringLiteral(opts?: object): void;
-    assertNumericLiteral(opts?: object): void;
-    assertNullLiteral(opts?: object): void;
-    assertBooleanLiteral(opts?: object): void;
-    assertRegExpLiteral(opts?: object): void;
-    assertLogicalExpression(opts?: object): void;
-    assertMemberExpression(opts?: object): void;
-    assertNewExpression(opts?: object): void;
-    assertProgram(opts?: object): void;
-    assertObjectExpression(opts?: object): void;
-    assertObjectMethod(opts?: object): void;
-    assertObjectProperty(opts?: object): void;
-    assertRestElement(opts?: object): void;
-    assertReturnStatement(opts?: object): void;
-    assertSequenceExpression(opts?: object): void;
-    assertSwitchCase(opts?: object): void;
-    assertSwitchStatement(opts?: object): void;
-    assertThisExpression(opts?: object): void;
-    assertThrowStatement(opts?: object): void;
-    assertTryStatement(opts?: object): void;
-    assertUnaryExpression(opts?: object): void;
-    assertUpdateExpression(opts?: object): void;
-    assertVariableDeclaration(opts?: object): void;
-    assertVariableDeclarator(opts?: object): void;
-    assertWhileStatement(opts?: object): void;
-    assertWithStatement(opts?: object): void;
-    assertAssignmentPattern(opts?: object): void;
-    assertArrayPattern(opts?: object): void;
-    assertArrowFunctionExpression(opts?: object): void;
-    assertClassBody(opts?: object): void;
-    assertClassDeclaration(opts?: object): void;
-    assertClassExpression(opts?: object): void;
-    assertExportAllDeclaration(opts?: object): void;
-    assertExportDefaultDeclaration(opts?: object): void;
-    assertExportNamedDeclaration(opts?: object): void;
-    assertExportSpecifier(opts?: object): void;
-    assertForOfStatement(opts?: object): void;
-    assertImportDeclaration(opts?: object): void;
-    assertImportDefaultSpecifier(opts?: object): void;
-    assertImportNamespaceSpecifier(opts?: object): void;
-    assertImportSpecifier(opts?: object): void;
-    assertMetaProperty(opts?: object): void;
-    assertClassMethod(opts?: object): void;
-    assertObjectPattern(opts?: object): void;
-    assertSpreadElement(opts?: object): void;
-    assertSuper(opts?: object): void;
-    assertTaggedTemplateExpression(opts?: object): void;
-    assertTemplateElement(opts?: object): void;
-    assertTemplateLiteral(opts?: object): void;
-    assertYieldExpression(opts?: object): void;
-    assertAnyTypeAnnotation(opts?: object): void;
-    assertArrayTypeAnnotation(opts?: object): void;
-    assertBooleanTypeAnnotation(opts?: object): void;
-    assertBooleanLiteralTypeAnnotation(opts?: object): void;
-    assertNullLiteralTypeAnnotation(opts?: object): void;
-    assertClassImplements(opts?: object): void;
-    assertClassProperty(opts?: object): void;
-    assertDeclareClass(opts?: object): void;
-    assertDeclareFunction(opts?: object): void;
-    assertDeclareInterface(opts?: object): void;
-    assertDeclareModule(opts?: object): void;
-    assertDeclareTypeAlias(opts?: object): void;
-    assertDeclareVariable(opts?: object): void;
-    assertExistentialTypeParam(opts?: object): void;
-    assertFunctionTypeAnnotation(opts?: object): void;
-    assertFunctionTypeParam(opts?: object): void;
-    assertGenericTypeAnnotation(opts?: object): void;
-    assertInterfaceExtends(opts?: object): void;
-    assertInterfaceDeclaration(opts?: object): void;
-    assertIntersectionTypeAnnotation(opts?: object): void;
-    assertMixedTypeAnnotation(opts?: object): void;
-    assertNullableTypeAnnotation(opts?: object): void;
-    assertNumericLiteralTypeAnnotation(opts?: object): void;
-    assertNumberTypeAnnotation(opts?: object): void;
-    assertStringLiteralTypeAnnotation(opts?: object): void;
-    assertStringTypeAnnotation(opts?: object): void;
-    assertThisTypeAnnotation(opts?: object): void;
-    assertTupleTypeAnnotation(opts?: object): void;
-    assertTypeofTypeAnnotation(opts?: object): void;
-    assertTypeAlias(opts?: object): void;
-    assertTypeAnnotation(opts?: object): void;
-    assertTypeCastExpression(opts?: object): void;
-    assertTypeParameterDeclaration(opts?: object): void;
-    assertTypeParameterInstantiation(opts?: object): void;
-    assertObjectTypeAnnotation(opts?: object): void;
-    assertObjectTypeCallProperty(opts?: object): void;
-    assertObjectTypeIndexer(opts?: object): void;
-    assertObjectTypeProperty(opts?: object): void;
-    assertQualifiedTypeIdentifier(opts?: object): void;
-    assertUnionTypeAnnotation(opts?: object): void;
-    assertVoidTypeAnnotation(opts?: object): void;
-    assertJSXAttribute(opts?: object): void;
-    assertJSXClosingElement(opts?: object): void;
-    assertJSXElement(opts?: object): void;
-    assertJSXEmptyExpression(opts?: object): void;
-    assertJSXExpressionContainer(opts?: object): void;
-    assertJSXIdentifier(opts?: object): void;
-    assertJSXMemberExpression(opts?: object): void;
-    assertJSXNamespacedName(opts?: object): void;
-    assertJSXOpeningElement(opts?: object): void;
-    assertJSXSpreadAttribute(opts?: object): void;
-    assertJSXText(opts?: object): void;
-    assertNoop(opts?: object): void;
-    assertParenthesizedExpression(opts?: object): void;
-    assertAwaitExpression(opts?: object): void;
-    assertBindExpression(opts?: object): void;
-    assertDecorator(opts?: object): void;
-    assertDoExpression(opts?: object): void;
-    assertExportDefaultSpecifier(opts?: object): void;
-    assertExportNamespaceSpecifier(opts?: object): void;
-    assertRestProperty(opts?: object): void;
-    assertSpreadProperty(opts?: object): void;
-    assertExpression(opts?: object): void;
-    assertBinary(opts?: object): void;
-    assertScopable(opts?: object): void;
-    assertBlockParent(opts?: object): void;
-    assertBlock(opts?: object): void;
-    assertStatement(opts?: object): void;
-    assertTerminatorless(opts?: object): void;
-    assertCompletionStatement(opts?: object): void;
-    assertConditional(opts?: object): void;
-    assertLoop(opts?: object): void;
-    assertWhile(opts?: object): void;
-    assertExpressionWrapper(opts?: object): void;
-    assertFor(opts?: object): void;
-    assertForXStatement(opts?: object): void;
-    assertFunction(opts?: object): void;
-    assertFunctionParent(opts?: object): void;
-    assertPureish(opts?: object): void;
-    assertDeclaration(opts?: object): void;
-    assertLVal(opts?: object): void;
-    assertLiteral(opts?: object): void;
-    assertImmutable(opts?: object): void;
-    assertUserWhitespacable(opts?: object): void;
-    assertMethod(opts?: object): void;
-    assertObjectMember(opts?: object): void;
-    assertProperty(opts?: object): void;
-    assertUnaryLike(opts?: object): void;
-    assertPattern(opts?: object): void;
-    assertClass(opts?: object): void;
-    assertModuleDeclaration(opts?: object): void;
-    assertExportDeclaration(opts?: object): void;
-    assertModuleSpecifier(opts?: object): void;
-    assertFlow(opts?: object): void;
-    assertFlowBaseAnnotation(opts?: object): void;
-    assertFlowDeclaration(opts?: object): void;
-    assertJSX(opts?: object): void;
-    assertNumberLiteral(opts?: object): void;
-    assertRegexLiteral(opts?: object): void;
+    /** @deprecated Use `isNumericLiteral` */
+    isNumberLiteral(props?: object | null): this is NodePath<t.NumericLiteral>;
+    isNumberLiteralTypeAnnotation(props?: object | null): this is NodePath<t.NumberLiteralTypeAnnotation>;
+    isNumberTypeAnnotation(props?: object | null): this is NodePath<t.NumberTypeAnnotation>;
+    isNumericLiteral(props?: object | null): this is NodePath<t.NumericLiteral>;
+    isObjectExpression(props?: object | null): this is NodePath<t.ObjectExpression>;
+    isObjectMember(props?: object | null): this is NodePath<t.ObjectMember>;
+    isObjectMethod(props?: object | null): this is NodePath<t.ObjectMethod>;
+    isObjectPattern(props?: object | null): this is NodePath<t.ObjectPattern>;
+    isObjectProperty(props?: object | null): this is NodePath<t.ObjectProperty>;
+    isObjectTypeAnnotation(props?: object | null): this is NodePath<t.ObjectTypeAnnotation>;
+    isObjectTypeCallProperty(props?: object | null): this is NodePath<t.ObjectTypeCallProperty>;
+    isObjectTypeIndexer(props?: object | null): this is NodePath<t.ObjectTypeIndexer>;
+    isObjectTypeInternalSlot(props?: object | null): this is NodePath<t.ObjectTypeInternalSlot>;
+    isObjectTypeProperty(props?: object | null): this is NodePath<t.ObjectTypeProperty>;
+    isObjectTypeSpreadProperty(props?: object | null): this is NodePath<t.ObjectTypeSpreadProperty>;
+    isOpaqueType(props?: object | null): this is NodePath<t.OpaqueType>;
+    isOptionalCallExpression(props?: object | null): this is NodePath<t.OptionalCallExpression>;
+    isOptionalMemberExpression(props?: object | null): this is NodePath<t.OptionalMemberExpression>;
+    isParenthesizedExpression(props?: object | null): this is NodePath<t.ParenthesizedExpression>;
+    isPattern(props?: object | null): this is NodePath<t.Pattern>;
+    isPatternLike(props?: object | null): this is NodePath<t.PatternLike>;
+    isPipelineBareFunction(props?: object | null): this is NodePath<t.PipelineBareFunction>;
+    isPipelinePrimaryTopicReference(props?: object | null): this is NodePath<t.PipelinePrimaryTopicReference>;
+    isPipelineTopicExpression(props?: object | null): this is NodePath<t.PipelineTopicExpression>;
+    isPrivate(props?: object | null): this is NodePath<t.Private>;
+    isPrivateName(props?: object | null): this is NodePath<t.PrivateName>;
+    isProgram(props?: object | null): this is NodePath<t.Program>;
+    isProperty(props?: object | null): this is NodePath<t.Property>;
+    isPureish(props?: object | null): this is NodePath<t.Pureish>;
+    isQualifiedTypeIdentifier(props?: object | null): this is NodePath<t.QualifiedTypeIdentifier>;
+    isRegExpLiteral(props?: object | null): this is NodePath<t.RegExpLiteral>;
+
+    /** @deprecated Use `isRegExpLiteral` */
+    isRegexLiteral(props?: object | null): this is NodePath<t.RegExpLiteral>;
+    isRestElement(props?: object | null): this is NodePath<t.RestElement>;
+
+    /** @deprecated Use `isRestElement` */
+    isRestProperty(props?: object | null): this is NodePath<t.RestElement>;
+    isReturnStatement(props?: object | null): this is NodePath<t.ReturnStatement>;
+    isScopable(props?: object | null): this is NodePath<t.Scopable>;
+    isSequenceExpression(props?: object | null): this is NodePath<t.SequenceExpression>;
+    isSpreadElement(props?: object | null): this is NodePath<t.SpreadElement>;
+
+    /** @deprecated Use `isSpreadElement` */
+    isSpreadProperty(props?: object | null): this is NodePath<t.SpreadElement>;
+    isStatement(props?: object | null): this is NodePath<t.Statement>;
+    isStringLiteral(props?: object | null): this is NodePath<t.StringLiteral>;
+    isStringLiteralTypeAnnotation(props?: object | null): this is NodePath<t.StringLiteralTypeAnnotation>;
+    isStringTypeAnnotation(props?: object | null): this is NodePath<t.StringTypeAnnotation>;
+    isSuper(props?: object | null): this is NodePath<t.Super>;
+    isSwitchCase(props?: object | null): this is NodePath<t.SwitchCase>;
+    isSwitchStatement(props?: object | null): this is NodePath<t.SwitchStatement>;
+    isTSAnyKeyword(props?: object | null): this is NodePath<t.TSAnyKeyword>;
+    isTSArrayType(props?: object | null): this is NodePath<t.TSArrayType>;
+    isTSAsExpression(props?: object | null): this is NodePath<t.TSAsExpression>;
+    isTSBooleanKeyword(props?: object | null): this is NodePath<t.TSBooleanKeyword>;
+    isTSCallSignatureDeclaration(props?: object | null): this is NodePath<t.TSCallSignatureDeclaration>;
+    isTSConditionalType(props?: object | null): this is NodePath<t.TSConditionalType>;
+    isTSConstructSignatureDeclaration(props?: object | null): this is NodePath<t.TSConstructSignatureDeclaration>;
+    isTSConstructorType(props?: object | null): this is NodePath<t.TSConstructorType>;
+    isTSDeclareFunction(props?: object | null): this is NodePath<t.TSDeclareFunction>;
+    isTSDeclareMethod(props?: object | null): this is NodePath<t.TSDeclareMethod>;
+    isTSEntityName(props?: object | null): this is NodePath<t.TSEntityName>;
+    isTSEnumDeclaration(props?: object | null): this is NodePath<t.TSEnumDeclaration>;
+    isTSEnumMember(props?: object | null): this is NodePath<t.TSEnumMember>;
+    isTSExportAssignment(props?: object | null): this is NodePath<t.TSExportAssignment>;
+    isTSExpressionWithTypeArguments(props?: object | null): this is NodePath<t.TSExpressionWithTypeArguments>;
+    isTSExternalModuleReference(props?: object | null): this is NodePath<t.TSExternalModuleReference>;
+    isTSFunctionType(props?: object | null): this is NodePath<t.TSFunctionType>;
+    isTSImportEqualsDeclaration(props?: object | null): this is NodePath<t.TSImportEqualsDeclaration>;
+    isTSImportType(props?: object | null): this is NodePath<t.TSImportType>;
+    isTSIndexSignature(props?: object | null): this is NodePath<t.TSIndexSignature>;
+    isTSIndexedAccessType(props?: object | null): this is NodePath<t.TSIndexedAccessType>;
+    isTSInferType(props?: object | null): this is NodePath<t.TSInferType>;
+    isTSInterfaceBody(props?: object | null): this is NodePath<t.TSInterfaceBody>;
+    isTSInterfaceDeclaration(props?: object | null): this is NodePath<t.TSInterfaceDeclaration>;
+    isTSIntersectionType(props?: object | null): this is NodePath<t.TSIntersectionType>;
+    isTSLiteralType(props?: object | null): this is NodePath<t.TSLiteralType>;
+    isTSMappedType(props?: object | null): this is NodePath<t.TSMappedType>;
+    isTSMethodSignature(props?: object | null): this is NodePath<t.TSMethodSignature>;
+    isTSModuleBlock(props?: object | null): this is NodePath<t.TSModuleBlock>;
+    isTSModuleDeclaration(props?: object | null): this is NodePath<t.TSModuleDeclaration>;
+    isTSNamespaceExportDeclaration(props?: object | null): this is NodePath<t.TSNamespaceExportDeclaration>;
+    isTSNeverKeyword(props?: object | null): this is NodePath<t.TSNeverKeyword>;
+    isTSNonNullExpression(props?: object | null): this is NodePath<t.TSNonNullExpression>;
+    isTSNullKeyword(props?: object | null): this is NodePath<t.TSNullKeyword>;
+    isTSNumberKeyword(props?: object | null): this is NodePath<t.TSNumberKeyword>;
+    isTSObjectKeyword(props?: object | null): this is NodePath<t.TSObjectKeyword>;
+    isTSOptionalType(props?: object | null): this is NodePath<t.TSOptionalType>;
+    isTSParameterProperty(props?: object | null): this is NodePath<t.TSParameterProperty>;
+    isTSParenthesizedType(props?: object | null): this is NodePath<t.TSParenthesizedType>;
+    isTSPropertySignature(props?: object | null): this is NodePath<t.TSPropertySignature>;
+    isTSQualifiedName(props?: object | null): this is NodePath<t.TSQualifiedName>;
+    isTSRestType(props?: object | null): this is NodePath<t.TSRestType>;
+    isTSStringKeyword(props?: object | null): this is NodePath<t.TSStringKeyword>;
+    isTSSymbolKeyword(props?: object | null): this is NodePath<t.TSSymbolKeyword>;
+    isTSThisType(props?: object | null): this is NodePath<t.TSThisType>;
+    isTSTupleType(props?: object | null): this is NodePath<t.TSTupleType>;
+    isTSType(props?: object | null): this is NodePath<t.TSType>;
+    isTSTypeAliasDeclaration(props?: object | null): this is NodePath<t.TSTypeAliasDeclaration>;
+    isTSTypeAnnotation(props?: object | null): this is NodePath<t.TSTypeAnnotation>;
+    isTSTypeAssertion(props?: object | null): this is NodePath<t.TSTypeAssertion>;
+    isTSTypeElement(props?: object | null): this is NodePath<t.TSTypeElement>;
+    isTSTypeLiteral(props?: object | null): this is NodePath<t.TSTypeLiteral>;
+    isTSTypeOperator(props?: object | null): this is NodePath<t.TSTypeOperator>;
+    isTSTypeParameter(props?: object | null): this is NodePath<t.TSTypeParameter>;
+    isTSTypeParameterDeclaration(props?: object | null): this is NodePath<t.TSTypeParameterDeclaration>;
+    isTSTypeParameterInstantiation(props?: object | null): this is NodePath<t.TSTypeParameterInstantiation>;
+    isTSTypePredicate(props?: object | null): this is NodePath<t.TSTypePredicate>;
+    isTSTypeQuery(props?: object | null): this is NodePath<t.TSTypeQuery>;
+    isTSTypeReference(props?: object | null): this is NodePath<t.TSTypeReference>;
+    isTSUndefinedKeyword(props?: object | null): this is NodePath<t.TSUndefinedKeyword>;
+    isTSUnionType(props?: object | null): this is NodePath<t.TSUnionType>;
+    isTSUnknownKeyword(props?: object | null): this is NodePath<t.TSUnknownKeyword>;
+    isTSVoidKeyword(props?: object | null): this is NodePath<t.TSVoidKeyword>;
+    isTaggedTemplateExpression(props?: object | null): this is NodePath<t.TaggedTemplateExpression>;
+    isTemplateElement(props?: object | null): this is NodePath<t.TemplateElement>;
+    isTemplateLiteral(props?: object | null): this is NodePath<t.TemplateLiteral>;
+    isTerminatorless(props?: object | null): this is NodePath<t.Terminatorless>;
+    isThisExpression(props?: object | null): this is NodePath<t.ThisExpression>;
+    isThisTypeAnnotation(props?: object | null): this is NodePath<t.ThisTypeAnnotation>;
+    isThrowStatement(props?: object | null): this is NodePath<t.ThrowStatement>;
+    isTryStatement(props?: object | null): this is NodePath<t.TryStatement>;
+    isTupleTypeAnnotation(props?: object | null): this is NodePath<t.TupleTypeAnnotation>;
+    isTypeAlias(props?: object | null): this is NodePath<t.TypeAlias>;
+    isTypeAnnotation(props?: object | null): this is NodePath<t.TypeAnnotation>;
+    isTypeCastExpression(props?: object | null): this is NodePath<t.TypeCastExpression>;
+    isTypeParameter(props?: object | null): this is NodePath<t.TypeParameter>;
+    isTypeParameterDeclaration(props?: object | null): this is NodePath<t.TypeParameterDeclaration>;
+    isTypeParameterInstantiation(props?: object | null): this is NodePath<t.TypeParameterInstantiation>;
+    isTypeofTypeAnnotation(props?: object | null): this is NodePath<t.TypeofTypeAnnotation>;
+    isUnaryExpression(props?: object | null): this is NodePath<t.UnaryExpression>;
+    isUnaryLike(props?: object | null): this is NodePath<t.UnaryLike>;
+    isUnionTypeAnnotation(props?: object | null): this is NodePath<t.UnionTypeAnnotation>;
+    isUpdateExpression(props?: object | null): this is NodePath<t.UpdateExpression>;
+    isUserWhitespacable(props?: object | null): this is NodePath<t.UserWhitespacable>;
+    isVariableDeclaration(props?: object | null): this is NodePath<t.VariableDeclaration>;
+    isVariableDeclarator(props?: object | null): this is NodePath<t.VariableDeclarator>;
+    isVariance(props?: object | null): this is NodePath<t.Variance>;
+    isVoidTypeAnnotation(props?: object | null): this is NodePath<t.VoidTypeAnnotation>;
+    isWhile(props?: object | null): this is NodePath<t.While>;
+    isWhileStatement(props?: object | null): this is NodePath<t.WhileStatement>;
+    isWithStatement(props?: object | null): this is NodePath<t.WithStatement>;
+    isYieldExpression(props?: object | null): this is NodePath<t.YieldExpression>;
+
+    isBindingIdentifier(props?: object | null): this is NodePath<t.Identifier>;
+    isBlockScoped(
+        props?: object | null,
+    ): this is NodePath<t.FunctionDeclaration | t.ClassDeclaration | t.VariableDeclaration>;
+    isGenerated(props?: object | null): boolean;
+    isPure(props?: object | null): boolean;
+    isReferenced(props?: object | null): boolean;
+    isReferencedIdentifier(props?: object | null): this is NodePath<t.Identifier | t.JSXIdentifier>;
+    isReferencedMemberExpression(props?: object | null): this is NodePath<t.MemberExpression>;
+    isScope(props?: object | null): this is NodePath<t.Scopable>;
+    isUser(props?: object | null): boolean;
+    isVar(props?: object | null): this is NodePath<t.VariableDeclaration>;
+    //#endregion
+
+    //#region ------------------------- assertXXX -------------------------
+    assertAnyTypeAnnotation(props?: object | null): void;
+    assertArrayExpression(props?: object | null): void;
+    assertArrayPattern(props?: object | null): void;
+    assertArrayTypeAnnotation(props?: object | null): void;
+    assertArrowFunctionExpression(props?: object | null): void;
+    assertAssignmentExpression(props?: object | null): void;
+    assertAssignmentPattern(props?: object | null): void;
+    assertAwaitExpression(props?: object | null): void;
+    assertBigIntLiteral(props?: object | null): void;
+    assertBinary(props?: object | null): void;
+    assertBinaryExpression(props?: object | null): void;
+    assertBindExpression(props?: object | null): void;
+    assertBlock(props?: object | null): void;
+    assertBlockParent(props?: object | null): void;
+    assertBlockStatement(props?: object | null): void;
+    assertBooleanLiteral(props?: object | null): void;
+    assertBooleanLiteralTypeAnnotation(props?: object | null): void;
+    assertBooleanTypeAnnotation(props?: object | null): void;
+    assertBreakStatement(props?: object | null): void;
+    assertCallExpression(props?: object | null): void;
+    assertCatchClause(props?: object | null): void;
+    assertClass(props?: object | null): void;
+    assertClassBody(props?: object | null): void;
+    assertClassDeclaration(props?: object | null): void;
+    assertClassExpression(props?: object | null): void;
+    assertClassImplements(props?: object | null): void;
+    assertClassMethod(props?: object | null): void;
+    assertClassPrivateMethod(props?: object | null): void;
+    assertClassPrivateProperty(props?: object | null): void;
+    assertClassProperty(props?: object | null): void;
+    assertCompletionStatement(props?: object | null): void;
+    assertConditional(props?: object | null): void;
+    assertConditionalExpression(props?: object | null): void;
+    assertContinueStatement(props?: object | null): void;
+    assertDebuggerStatement(props?: object | null): void;
+    assertDeclaration(props?: object | null): void;
+    assertDeclareClass(props?: object | null): void;
+    assertDeclareExportAllDeclaration(props?: object | null): void;
+    assertDeclareExportDeclaration(props?: object | null): void;
+    assertDeclareFunction(props?: object | null): void;
+    assertDeclareInterface(props?: object | null): void;
+    assertDeclareModule(props?: object | null): void;
+    assertDeclareModuleExports(props?: object | null): void;
+    assertDeclareOpaqueType(props?: object | null): void;
+    assertDeclareTypeAlias(props?: object | null): void;
+    assertDeclareVariable(props?: object | null): void;
+    assertDeclaredPredicate(props?: object | null): void;
+    assertDecorator(props?: object | null): void;
+    assertDirective(props?: object | null): void;
+    assertDirectiveLiteral(props?: object | null): void;
+    assertDoExpression(props?: object | null): void;
+    assertDoWhileStatement(props?: object | null): void;
+    assertEmptyStatement(props?: object | null): void;
+    assertEmptyTypeAnnotation(props?: object | null): void;
+    assertExistsTypeAnnotation(props?: object | null): void;
+    assertExportAllDeclaration(props?: object | null): void;
+    assertExportDeclaration(props?: object | null): void;
+    assertExportDefaultDeclaration(props?: object | null): void;
+    assertExportDefaultSpecifier(props?: object | null): void;
+    assertExportNamedDeclaration(props?: object | null): void;
+    assertExportNamespaceSpecifier(props?: object | null): void;
+    assertExportSpecifier(props?: object | null): void;
+    assertExpression(props?: object | null): void;
+    assertExpressionStatement(props?: object | null): void;
+    assertExpressionWrapper(props?: object | null): void;
+    assertFile(props?: object | null): void;
+    assertFlow(props?: object | null): void;
+    assertFlowBaseAnnotation(props?: object | null): void;
+    assertFlowDeclaration(props?: object | null): void;
+    assertFlowPredicate(props?: object | null): void;
+    assertFlowType(props?: object | null): void;
+    assertFor(props?: object | null): void;
+    assertForInStatement(props?: object | null): void;
+    assertForOfStatement(props?: object | null): void;
+    assertForStatement(props?: object | null): void;
+    assertForXStatement(props?: object | null): void;
+    assertFunction(props?: object | null): void;
+    assertFunctionDeclaration(props?: object | null): void;
+    assertFunctionExpression(props?: object | null): void;
+    assertFunctionParent(props?: object | null): void;
+    assertFunctionTypeAnnotation(props?: object | null): void;
+    assertFunctionTypeParam(props?: object | null): void;
+    assertGenericTypeAnnotation(props?: object | null): void;
+    assertIdentifier(props?: object | null): void;
+    assertIfStatement(props?: object | null): void;
+    assertImmutable(props?: object | null): void;
+    assertImport(props?: object | null): void;
+    assertImportDeclaration(props?: object | null): void;
+    assertImportDefaultSpecifier(props?: object | null): void;
+    assertImportNamespaceSpecifier(props?: object | null): void;
+    assertImportSpecifier(props?: object | null): void;
+    assertInferredPredicate(props?: object | null): void;
+    assertInterfaceDeclaration(props?: object | null): void;
+    assertInterfaceExtends(props?: object | null): void;
+    assertInterfaceTypeAnnotation(props?: object | null): void;
+    assertInterpreterDirective(props?: object | null): void;
+    assertIntersectionTypeAnnotation(props?: object | null): void;
+    assertJSX(props?: object | null): void;
+    assertJSXAttribute(props?: object | null): void;
+    assertJSXClosingElement(props?: object | null): void;
+    assertJSXClosingFragment(props?: object | null): void;
+    assertJSXElement(props?: object | null): void;
+    assertJSXEmptyExpression(props?: object | null): void;
+    assertJSXExpressionContainer(props?: object | null): void;
+    assertJSXFragment(props?: object | null): void;
+    assertJSXIdentifier(props?: object | null): void;
+    assertJSXMemberExpression(props?: object | null): void;
+    assertJSXNamespacedName(props?: object | null): void;
+    assertJSXOpeningElement(props?: object | null): void;
+    assertJSXOpeningFragment(props?: object | null): void;
+    assertJSXSpreadAttribute(props?: object | null): void;
+    assertJSXSpreadChild(props?: object | null): void;
+    assertJSXText(props?: object | null): void;
+    assertLVal(props?: object | null): void;
+    assertLabeledStatement(props?: object | null): void;
+    assertLiteral(props?: object | null): void;
+    assertLogicalExpression(props?: object | null): void;
+    assertLoop(props?: object | null): void;
+    assertMemberExpression(props?: object | null): void;
+    assertMetaProperty(props?: object | null): void;
+    assertMethod(props?: object | null): void;
+    assertMixedTypeAnnotation(props?: object | null): void;
+    assertModuleDeclaration(props?: object | null): void;
+    assertModuleSpecifier(props?: object | null): void;
+    assertNewExpression(props?: object | null): void;
+    assertNoop(props?: object | null): void;
+    assertNullLiteral(props?: object | null): void;
+    assertNullLiteralTypeAnnotation(props?: object | null): void;
+    assertNullableTypeAnnotation(props?: object | null): void;
+
+    /** @deprecated Use `assertNumericLiteral` */
+    assertNumberLiteral(props?: object | null): void;
+    assertNumberLiteralTypeAnnotation(props?: object | null): void;
+    assertNumberTypeAnnotation(props?: object | null): void;
+    assertNumericLiteral(props?: object | null): void;
+    assertObjectExpression(props?: object | null): void;
+    assertObjectMember(props?: object | null): void;
+    assertObjectMethod(props?: object | null): void;
+    assertObjectPattern(props?: object | null): void;
+    assertObjectProperty(props?: object | null): void;
+    assertObjectTypeAnnotation(props?: object | null): void;
+    assertObjectTypeCallProperty(props?: object | null): void;
+    assertObjectTypeIndexer(props?: object | null): void;
+    assertObjectTypeInternalSlot(props?: object | null): void;
+    assertObjectTypeProperty(props?: object | null): void;
+    assertObjectTypeSpreadProperty(props?: object | null): void;
+    assertOpaqueType(props?: object | null): void;
+    assertOptionalCallExpression(props?: object | null): void;
+    assertOptionalMemberExpression(props?: object | null): void;
+    assertParenthesizedExpression(props?: object | null): void;
+    assertPattern(props?: object | null): void;
+    assertPatternLike(props?: object | null): void;
+    assertPipelineBareFunction(props?: object | null): void;
+    assertPipelinePrimaryTopicReference(props?: object | null): void;
+    assertPipelineTopicExpression(props?: object | null): void;
+    assertPrivate(props?: object | null): void;
+    assertPrivateName(props?: object | null): void;
+    assertProgram(props?: object | null): void;
+    assertProperty(props?: object | null): void;
+    assertPureish(props?: object | null): void;
+    assertQualifiedTypeIdentifier(props?: object | null): void;
+    assertRegExpLiteral(props?: object | null): void;
+
+    /** @deprecated Use `assertRegExpLiteral` */
+    assertRegexLiteral(props?: object | null): void;
+    assertRestElement(props?: object | null): void;
+
+    /** @deprecated Use `assertRestElement` */
+    assertRestProperty(props?: object | null): void;
+    assertReturnStatement(props?: object | null): void;
+    assertScopable(props?: object | null): void;
+    assertSequenceExpression(props?: object | null): void;
+    assertSpreadElement(props?: object | null): void;
+
+    /** @deprecated Use `assertSpreadElement` */
+    assertSpreadProperty(props?: object | null): void;
+    assertStatement(props?: object | null): void;
+    assertStringLiteral(props?: object | null): void;
+    assertStringLiteralTypeAnnotation(props?: object | null): void;
+    assertStringTypeAnnotation(props?: object | null): void;
+    assertSuper(props?: object | null): void;
+    assertSwitchCase(props?: object | null): void;
+    assertSwitchStatement(props?: object | null): void;
+    assertTSAnyKeyword(props?: object | null): void;
+    assertTSArrayType(props?: object | null): void;
+    assertTSAsExpression(props?: object | null): void;
+    assertTSBooleanKeyword(props?: object | null): void;
+    assertTSCallSignatureDeclaration(props?: object | null): void;
+    assertTSConditionalType(props?: object | null): void;
+    assertTSConstructSignatureDeclaration(props?: object | null): void;
+    assertTSConstructorType(props?: object | null): void;
+    assertTSDeclareFunction(props?: object | null): void;
+    assertTSDeclareMethod(props?: object | null): void;
+    assertTSEntityName(props?: object | null): void;
+    assertTSEnumDeclaration(props?: object | null): void;
+    assertTSEnumMember(props?: object | null): void;
+    assertTSExportAssignment(props?: object | null): void;
+    assertTSExpressionWithTypeArguments(props?: object | null): void;
+    assertTSExternalModuleReference(props?: object | null): void;
+    assertTSFunctionType(props?: object | null): void;
+    assertTSImportEqualsDeclaration(props?: object | null): void;
+    assertTSImportType(props?: object | null): void;
+    assertTSIndexSignature(props?: object | null): void;
+    assertTSIndexedAccessType(props?: object | null): void;
+    assertTSInferType(props?: object | null): void;
+    assertTSInterfaceBody(props?: object | null): void;
+    assertTSInterfaceDeclaration(props?: object | null): void;
+    assertTSIntersectionType(props?: object | null): void;
+    assertTSLiteralType(props?: object | null): void;
+    assertTSMappedType(props?: object | null): void;
+    assertTSMethodSignature(props?: object | null): void;
+    assertTSModuleBlock(props?: object | null): void;
+    assertTSModuleDeclaration(props?: object | null): void;
+    assertTSNamespaceExportDeclaration(props?: object | null): void;
+    assertTSNeverKeyword(props?: object | null): void;
+    assertTSNonNullExpression(props?: object | null): void;
+    assertTSNullKeyword(props?: object | null): void;
+    assertTSNumberKeyword(props?: object | null): void;
+    assertTSObjectKeyword(props?: object | null): void;
+    assertTSOptionalType(props?: object | null): void;
+    assertTSParameterProperty(props?: object | null): void;
+    assertTSParenthesizedType(props?: object | null): void;
+    assertTSPropertySignature(props?: object | null): void;
+    assertTSQualifiedName(props?: object | null): void;
+    assertTSRestType(props?: object | null): void;
+    assertTSStringKeyword(props?: object | null): void;
+    assertTSSymbolKeyword(props?: object | null): void;
+    assertTSThisType(props?: object | null): void;
+    assertTSTupleType(props?: object | null): void;
+    assertTSType(props?: object | null): void;
+    assertTSTypeAliasDeclaration(props?: object | null): void;
+    assertTSTypeAnnotation(props?: object | null): void;
+    assertTSTypeAssertion(props?: object | null): void;
+    assertTSTypeElement(props?: object | null): void;
+    assertTSTypeLiteral(props?: object | null): void;
+    assertTSTypeOperator(props?: object | null): void;
+    assertTSTypeParameter(props?: object | null): void;
+    assertTSTypeParameterDeclaration(props?: object | null): void;
+    assertTSTypeParameterInstantiation(props?: object | null): void;
+    assertTSTypePredicate(props?: object | null): void;
+    assertTSTypeQuery(props?: object | null): void;
+    assertTSTypeReference(props?: object | null): void;
+    assertTSUndefinedKeyword(props?: object | null): void;
+    assertTSUnionType(props?: object | null): void;
+    assertTSUnknownKeyword(props?: object | null): void;
+    assertTSVoidKeyword(props?: object | null): void;
+    assertTaggedTemplateExpression(props?: object | null): void;
+    assertTemplateElement(props?: object | null): void;
+    assertTemplateLiteral(props?: object | null): void;
+    assertTerminatorless(props?: object | null): void;
+    assertThisExpression(props?: object | null): void;
+    assertThisTypeAnnotation(props?: object | null): void;
+    assertThrowStatement(props?: object | null): void;
+    assertTryStatement(props?: object | null): void;
+    assertTupleTypeAnnotation(props?: object | null): void;
+    assertTypeAlias(props?: object | null): void;
+    assertTypeAnnotation(props?: object | null): void;
+    assertTypeCastExpression(props?: object | null): void;
+    assertTypeParameter(props?: object | null): void;
+    assertTypeParameterDeclaration(props?: object | null): void;
+    assertTypeParameterInstantiation(props?: object | null): void;
+    assertTypeofTypeAnnotation(props?: object | null): void;
+    assertUnaryExpression(props?: object | null): void;
+    assertUnaryLike(props?: object | null): void;
+    assertUnionTypeAnnotation(props?: object | null): void;
+    assertUpdateExpression(props?: object | null): void;
+    assertUserWhitespacable(props?: object | null): void;
+    assertVariableDeclaration(props?: object | null): void;
+    assertVariableDeclarator(props?: object | null): void;
+    assertVariance(props?: object | null): void;
+    assertVoidTypeAnnotation(props?: object | null): void;
+    assertWhile(props?: object | null): void;
+    assertWhileStatement(props?: object | null): void;
+    assertWithStatement(props?: object | null): void;
+    assertYieldExpression(props?: object | null): void;
+
+    assertBindingIdentifier(props?: object | null): void;
+    assertBlockScoped(props?: object | null): void;
+    assertGenerated(props?: object | null): void;
+    assertPure(props?: object | null): void;
+    assertReferenced(props?: object | null): void;
+    assertReferencedIdentifier(props?: object | null): void;
+    assertReferencedMemberExpression(props?: object | null): void;
+    assertScope(props?: object | null): void;
+    assertUser(props?: object | null): void;
+    assertVar(props?: object | null): void;
+    //#endregion
 }
 
-export class Hub {
-    constructor(file: any, options: any);
-    file: any;
-    options: any;
+export interface HubInterface {
+    getCode(): string | undefined;
+    getScope(): Scope | undefined;
+    addHelper(name: string): any;
+    buildError<E extends Error>(node: Node, msg: string, Error: new (message?: string) => E): E;
+}
+
+export class Hub implements HubInterface {
+    constructor();
+    getCode(): string | undefined;
+    getScope(): Scope | undefined;
+    addHelper(name: string): any;
+    buildError<E extends Error>(node: Node, msg: string, Constructor: new (message?: string) => E): E;
 }
 
 export interface TraversalContext {
diff --git a/node_modules/@types/babel__traverse/package.json b/node_modules/@types/babel__traverse/package.json
index ff9b6e1..5a40b28 100644
--- a/node_modules/@types/babel__traverse/package.json
+++ b/node_modules/@types/babel__traverse/package.json
@@ -1,6 +1,6 @@
 {
     "name": "@types/babel__traverse",
-    "version": "7.0.7",
+    "version": "7.0.15",
     "description": "TypeScript definitions for @babel/traverse",
     "license": "MIT",
     "contributors": [
@@ -23,10 +23,25 @@
             "name": "Melvin Groenhoff",
             "url": "https://github.com/mgroenhoff",
             "githubUsername": "mgroenhoff"
+        },
+        {
+            "name": "Dean L.",
+            "url": "https://github.com/dlgrit",
+            "githubUsername": "dlgrit"
+        },
+        {
+            "name": "Ifiok Jr.",
+            "url": "https://github.com/ifiokjr",
+            "githubUsername": "ifiokjr"
+        },
+        {
+            "name": "ExE Boss",
+            "url": "https://github.com/ExE-Boss",
+            "githubUsername": "ExE-Boss"
         }
     ],
     "main": "",
-    "types": "index",
+    "types": "index.d.ts",
     "repository": {
         "type": "git",
         "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
@@ -36,6 +51,6 @@
     "dependencies": {
         "@babel/types": "^7.3.0"
     },
-    "typesPublisherContentHash": "37e6c080b57f5b07ab86b0af01352617892a3cd9fc9db8bd3c69fa0610672457",
-    "typeScriptVersion": "2.9"
+    "typesPublisherContentHash": "b641c5a48237d080c85b2821d25a5c49c2677fe8418c25b0b0d1df7b70cbcda9",
+    "typeScriptVersion": "3.4"
 }
\ No newline at end of file
diff --git a/node_modules/@types/eslint-visitor-keys/LICENSE b/node_modules/@types/eslint-visitor-keys/LICENSE
deleted file mode 100644
index 2107107..0000000
--- a/node_modules/@types/eslint-visitor-keys/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation. All rights reserved.
-
-    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
diff --git a/node_modules/@types/eslint-visitor-keys/README.md b/node_modules/@types/eslint-visitor-keys/README.md
deleted file mode 100644
index 46bc834..0000000
--- a/node_modules/@types/eslint-visitor-keys/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Installation

-> `npm install --save @types/eslint-visitor-keys`

-

-# Summary

-This package contains type definitions for eslint-visitor-keys (https://github.com/eslint/eslint-visitor-keys#readme).

-

-# Details

-Files were exported from https://www.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint-visitor-keys

-

-Additional Details

- * Last updated: Sun, 18 Feb 2018 01:53:11 GMT

- * Dependencies: none

- * Global values: none

-

-# Credits

-These definitions were written by Toru Nagashima <https://github.com/mysticatea>.

diff --git a/node_modules/@types/eslint-visitor-keys/index.d.ts b/node_modules/@types/eslint-visitor-keys/index.d.ts
deleted file mode 100644
index b63c4f8..0000000
--- a/node_modules/@types/eslint-visitor-keys/index.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// Type definitions for eslint-visitor-keys 1.0
-// Project: https://github.com/eslint/eslint-visitor-keys#readme
-// Definitions by: Toru Nagashima <https://github.com/mysticatea>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.2
-
-export interface VisitorKeys {
-    readonly [type: string]: ReadonlyArray<string> | undefined;
-}
-
-export const KEYS: VisitorKeys;
-export function getKeys(node: {}): ReadonlyArray<string>;
-export function unionWith(keys: VisitorKeys): VisitorKeys;
diff --git a/node_modules/@types/eslint-visitor-keys/package.json b/node_modules/@types/eslint-visitor-keys/package.json
deleted file mode 100644
index a004d66..0000000
--- a/node_modules/@types/eslint-visitor-keys/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "name": "@types/eslint-visitor-keys",
-    "version": "1.0.0",
-    "description": "TypeScript definitions for eslint-visitor-keys",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Toru Nagashima",
-            "url": "https://github.com/mysticatea",
-            "githubUsername": "mysticatea"
-        }
-    ],
-    "main": "",
-    "repository": {
-        "type": "git",
-        "url": "https://www.github.com/DefinitelyTyped/DefinitelyTyped.git"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "439a0b912c49f6aedb6456cd8485eddf2444a36dd4ae5767258b663df3dfb6dc",
-    "typeScriptVersion": "2.2"
-}
\ No newline at end of file
diff --git a/node_modules/@types/json5/README.md b/node_modules/@types/json5/README.md
new file mode 100644
index 0000000..ea81c5c
--- /dev/null
+++ b/node_modules/@types/json5/README.md
@@ -0,0 +1,18 @@
+# Installation

+> `npm install --save @types/json5`

+

+# Summary

+This package contains type definitions for JSON5 (http://json5.org/).

+

+# Details

+Files were exported from https://www.github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0/json5

+

+Additional Details

+ * Last updated: Mon, 19 Sep 2016 17:28:59 GMT

+ * File structure: ProperModule

+ * Library Dependencies: none

+ * Module Dependencies: none

+ * Global values: json5

+

+# Credits

+These definitions were written by Jason Swearingen <https://jasonswearingen.github.io>.

diff --git a/node_modules/@types/json5/index.d.ts b/node_modules/@types/json5/index.d.ts
new file mode 100644
index 0000000..76a0352
--- /dev/null
+++ b/node_modules/@types/json5/index.d.ts
@@ -0,0 +1,44 @@
+// Type definitions for JSON5
+// Project: http://json5.org/
+// Definitions by: Jason Swearingen <https://jasonswearingen.github.io>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+
+//commonjs loader
+
+/** 
+ * The following is the exact list of additions to JSON's syntax introduced by JSON5. All of these are optional, and all of these come from ES5.
+
+Objects
+
+Object keys can be unquoted if they're valid identifiers. Yes, even reserved keywords (like default) are valid unquoted keys in ES5 [§11.1.5, §7.6]. (More info)
+
+(TODO: Unicode characters and escape sequences aren’t yet supported in this implementation.)
+
+Objects can have trailing commas.
+
+Arrays
+
+Arrays can have trailing commas.
+Strings
+
+Strings can be single-quoted.
+
+Strings can be split across multiple lines; just prefix each newline with a backslash. [ES5 §7.8.4]
+
+Numbers
+
+Numbers can be hexadecimal (base 16).
+
+Numbers can begin or end with a (leading or trailing) decimal point.
+
+Numbers can include Infinity, -Infinity, NaN, and -NaN.
+
+Numbers can begin with an explicit plus sign.
+
+Comments
+
+Both inline (single-line) and block (multi-line) comments are allowed.
+  */
+declare var json5: JSON;
+export = json5;
diff --git a/node_modules/@types/json5/package.json b/node_modules/@types/json5/package.json
new file mode 100644
index 0000000..ff784d5
--- /dev/null
+++ b/node_modules/@types/json5/package.json
@@ -0,0 +1,16 @@
+{
+    "name": "@types/json5",
+    "version": "0.0.29",
+    "description": "TypeScript definitions for JSON5",
+    "license": "MIT",
+    "author": "Jason Swearingen <https://jasonswearingen.github.io>",
+    "main": "",
+    "repository": {
+        "type": "git",
+        "url": "https://www.github.com/DefinitelyTyped/DefinitelyTyped.git"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typings": "index.d.ts",
+    "typesPublisherContentHash": "1ed77f2bfd59d290798abf89db281c36565f4a78d97d4e9caab25319d54c6331"
+}
\ No newline at end of file
diff --git a/node_modules/@types/json5/types-metadata.json b/node_modules/@types/json5/types-metadata.json
new file mode 100644
index 0000000..1c02afe
--- /dev/null
+++ b/node_modules/@types/json5/types-metadata.json
@@ -0,0 +1,25 @@
+{
+    "authors": "Jason Swearingen <https://jasonswearingen.github.io>",
+    "definitionFilename": "index.d.ts",
+    "libraryDependencies": [],
+    "moduleDependencies": [],
+    "libraryMajorVersion": "0",
+    "libraryMinorVersion": "0",
+    "libraryName": "JSON5",
+    "typingsPackageName": "json5",
+    "projectName": "http://json5.org/",
+    "sourceRepoURL": "https://www.github.com/DefinitelyTyped/DefinitelyTyped",
+    "sourceBranch": "types-2.0",
+    "kind": "ProperModule",
+    "globals": [
+        "json5"
+    ],
+    "declaredModules": [
+        "json5"
+    ],
+    "files": [
+        "index.d.ts"
+    ],
+    "hasPackageJson": false,
+    "contentHash": "1ed77f2bfd59d290798abf89db281c36565f4a78d97d4e9caab25319d54c6331"
+}
\ No newline at end of file
diff --git a/node_modules/@types/node/README.md b/node_modules/@types/node/README.md
index 2e47ae2..2a792d6 100644
--- a/node_modules/@types/node/README.md
+++ b/node_modules/@types/node/README.md
@@ -8,7 +8,7 @@
 Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.

 

 ### Additional Details

- * Last updated: Tue, 22 Sep 2020 00:22:04 GMT

+ * Last updated: Fri, 09 Oct 2020 06:51:10 GMT

  * Dependencies: none

  * Global values: `Buffer`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout`

 

diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts
index 5feaa34..3706d99 100644
--- a/node_modules/@types/node/assert.d.ts
+++ b/node_modules/@types/node/assert.d.ts
@@ -1,4 +1,4 @@
-declare module "assert" {
+declare module 'assert' {
     /** An alias of `assert.ok()`. */
     function assert(value: any, message?: string | Error): asserts value;
     namespace assert {
@@ -21,7 +21,7 @@
                 /** The `operator` property on the error instance. */
                 operator?: string;
                 /** If provided, the generated stack trace omits frames before this function. */
-                stackStartFn?: Function
+                stackStartFn?: Function;
             });
         }
 
@@ -43,11 +43,17 @@
             stack: object;
         }
 
-        type AssertPredicate = RegExp | (new() => object) | ((thrown: any) => boolean) | object | Error;
+        type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error;
 
         function fail(message?: string | Error): never;
         /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */
-        function fail(actual: any, expected: any, message?: string | Error, operator?: string, stackStartFn?: Function): never;
+        function fail(
+            actual: any,
+            expected: any,
+            message?: string | Error,
+            operator?: string,
+            stackStartFn?: Function,
+        ): never;
         function ok(value: any, message?: string | Error): asserts value;
         /** @deprecated since v9.9.0 - use strictEqual() instead. */
         function equal(actual: any, expected: any, message?: string | Error): void;
@@ -70,14 +76,44 @@
         function ifError(value: any): asserts value is null | undefined;
 
         function rejects(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
-        function rejects(block: (() => Promise<any>) | Promise<any>, error: AssertPredicate, message?: string | Error): Promise<void>;
+        function rejects(
+            block: (() => Promise<any>) | Promise<any>,
+            error: AssertPredicate,
+            message?: string | Error,
+        ): Promise<void>;
         function doesNotReject(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
-        function doesNotReject(block: (() => Promise<any>) | Promise<any>, error: RegExp | Function, message?: string | Error): Promise<void>;
+        function doesNotReject(
+            block: (() => Promise<any>) | Promise<any>,
+            error: RegExp | Function,
+            message?: string | Error,
+        ): Promise<void>;
 
         function match(value: string, regExp: RegExp, message?: string | Error): void;
         function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
 
-        const strict: typeof assert;
+        const strict: Omit<
+            typeof assert,
+            | 'strict'
+            | 'deepEqual'
+            | 'notDeepEqual'
+            | 'equal'
+            | 'notEqual'
+            | 'ok'
+            | 'strictEqual'
+            | 'deepStrictEqual'
+            | 'ifError'
+        > & {
+            (value: any, message?: string | Error): asserts value;
+            strict: typeof strict;
+            deepEqual: typeof deepStrictEqual;
+            notDeepEqual: typeof notDeepStrictEqual;
+            equal: typeof strictEqual;
+            notEqual: typeof notStrictEqual;
+            ok(value: any, message?: string | Error): asserts value;
+            strictEqual<T>(actual: any, expected: T, message?: string | Error): asserts actual is T;
+            deepStrictEqual<T>(actual: any, expected: T, message?: string | Error): asserts actual is T;
+            ifError(value: any): asserts value is null | undefined;
+        };
     }
 
     export = assert;
diff --git a/node_modules/@types/node/crypto.d.ts b/node_modules/@types/node/crypto.d.ts
index 258ea7f..17660cf 100644
--- a/node_modules/@types/node/crypto.d.ts
+++ b/node_modules/@types/node/crypto.d.ts
@@ -278,7 +278,7 @@
 
     function createPrivateKey(key: PrivateKeyInput | string | Buffer): KeyObject;
     function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject): KeyObject;
-    function createSecretKey(key: Buffer): KeyObject;
+    function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject;
 
     function createSign(algorithm: string, options?: stream.WritableOptions): Signer;
 
@@ -448,7 +448,7 @@
     /** @deprecated since v10.0.0 */
     const DEFAULT_ENCODING: BufferEncoding;
 
-    type KeyType = 'rsa' | 'dsa' | 'ec' | 'ed25519' | 'x25519';
+    type KeyType = 'rsa' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448';
     type KeyFormat = 'pem' | 'der';
 
     interface BasePrivateKeyEncodingOptions<T extends KeyFormat> {
@@ -468,12 +468,24 @@
          */
     }
 
+    interface ED448KeyPairKeyObjectOptions {
+        /**
+         * No options.
+         */
+    }
+
     interface X25519KeyPairKeyObjectOptions {
        /**
         * No options.
         */
     }
 
+    interface X448KeyPairKeyObjectOptions {
+       /**
+        * No options.
+        */
+    }
+
     interface ECKeyPairKeyObjectOptions {
         /**
          * Name of the curve to use.
@@ -568,6 +580,16 @@
         };
     }
 
+    interface ED448KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
+        publicKeyEncoding: {
+            type: 'spki';
+            format: PubF;
+        };
+        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {
+            type: 'pkcs8';
+        };
+    }
+
     interface X25519KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
         publicKeyEncoding: {
             type: 'spki';
@@ -578,6 +600,16 @@
         };
     }
 
+    interface X448KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
+        publicKeyEncoding: {
+            type: 'spki';
+            format: PubF;
+        };
+        privateKeyEncoding: BasePrivateKeyEncodingOptions<PrivF> & {
+            type: 'pkcs8';
+        };
+    }
+
     interface KeyPairSyncResult<T1 extends string | Buffer, T2 extends string | Buffer> {
         publicKey: T1;
         privateKey: T2;
@@ -605,13 +637,25 @@
     function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;
     function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;
     function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;
-    function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
+    function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
+
+    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;
+    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;
+    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;
+    function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;
+    function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
 
     function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;
     function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;
     function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;
     function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;
-    function generateKeyPairSync(type: 'x25519', options: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
+    function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
+
+    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult<string, string>;
+    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult<string, Buffer>;
+    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult<Buffer, string>;
+    function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'der'>): KeyPairSyncResult<Buffer, Buffer>;
+    function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
 
     function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
     function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
@@ -635,13 +679,25 @@
     function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
     function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
     function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
-    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
+    function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
+
+    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
+    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
+    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
+    function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
+    function generateKeyPair(type: 'ed448', options: ED448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
 
     function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
     function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
     function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
     function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
-    function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
+    function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
+
+    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
+    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
+    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
+    function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
+    function generateKeyPair(type: 'x448', options: X448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
 
     namespace generateKeyPair {
         function __promisify__(type: "rsa", options: RSAKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>;
@@ -666,13 +722,25 @@
         function __promisify__(type: "ed25519", options: ED25519KeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>;
         function __promisify__(type: "ed25519", options: ED25519KeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>;
         function __promisify__(type: "ed25519", options: ED25519KeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>;
-        function __promisify__(type: "ed25519", options: ED25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
+        function __promisify__(type: "ed25519", options?: ED25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
+
+        function __promisify__(type: "ed448", options: ED448KeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>;
+        function __promisify__(type: "ed448", options: ED448KeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>;
+        function __promisify__(type: "ed448", options: ED448KeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>;
+        function __promisify__(type: "ed448", options: ED448KeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>;
+        function __promisify__(type: "ed448", options?: ED448KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
 
         function __promisify__(type: "x25519", options: X25519KeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>;
         function __promisify__(type: "x25519", options: X25519KeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>;
         function __promisify__(type: "x25519", options: X25519KeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>;
         function __promisify__(type: "x25519", options: X25519KeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>;
-        function __promisify__(type: "x25519", options: X25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
+        function __promisify__(type: "x25519", options?: X25519KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
+
+        function __promisify__(type: "x448", options: X448KeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>;
+        function __promisify__(type: "x448", options: X448KeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>;
+        function __promisify__(type: "x448", options: X448KeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>;
+        function __promisify__(type: "x448", options: X448KeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>;
+        function __promisify__(type: "x448", options?: X448KeyPairKeyObjectOptions): Promise<KeyPairKeyObjectResult>;
     }
 
     /**
diff --git a/node_modules/@types/node/http.d.ts b/node_modules/@types/node/http.d.ts
index 673196c..0cfb456 100644
--- a/node_modules/@types/node/http.d.ts
+++ b/node_modules/@types/node/http.d.ts
@@ -160,8 +160,8 @@
         /**
          * @deprecate Use `socket` instead.
          */
-        connection: Socket;
-        socket: Socket;
+        connection: Socket | null;
+        socket: Socket | null;
 
         constructor();
 
@@ -205,8 +205,6 @@
 
     // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L77
     class ClientRequest extends OutgoingMessage {
-        connection: Socket;
-        socket: Socket;
         aborted: number;
 
         constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void);
diff --git a/node_modules/@types/node/package.json b/node_modules/@types/node/package.json
index 58a0d64..e15aee1 100644
--- a/node_modules/@types/node/package.json
+++ b/node_modules/@types/node/package.json
@@ -1,6 +1,6 @@
 {
     "name": "@types/node",
-    "version": "14.11.2",
+    "version": "14.11.8",
     "description": "TypeScript definitions for Node.js",
     "license": "MIT",
     "contributors": [
@@ -246,6 +246,6 @@
     },
     "scripts": {},
     "dependencies": {},
-    "typesPublisherContentHash": "95c31ecd7dac923f86a6c9be84dca043a8e12b784d38a9fd13883ee95fac1971",
+    "typesPublisherContentHash": "2648fdcf6d0b183d3a081cb17833d47c55084f5245aa4f9a8ea246ed71a45a8b",
     "typeScriptVersion": "3.2"
 }
\ No newline at end of file
diff --git a/node_modules/@types/node/punycode.d.ts b/node_modules/@types/node/punycode.d.ts
index 75d2811..9089773 100644
--- a/node_modules/@types/node/punycode.d.ts
+++ b/node_modules/@types/node/punycode.d.ts
@@ -1,12 +1,68 @@
 declare module "punycode" {
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     function decode(string: string): string;
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     function encode(string: string): string;
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     function toUnicode(domain: string): string;
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     function toASCII(domain: string): string;
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     const ucs2: ucs2;
     interface ucs2 {
+        /**
+         * @deprecated since v7.0.0
+         * The version of the punycode module bundled in Node.js is being deprecated.
+         * In a future major version of Node.js this module will be removed.
+         * Users currently depending on the punycode module should switch to using
+         * the userland-provided Punycode.js module instead.
+         */
         decode(string: string): number[];
+        /**
+         * @deprecated since v7.0.0
+         * The version of the punycode module bundled in Node.js is being deprecated.
+         * In a future major version of Node.js this module will be removed.
+         * Users currently depending on the punycode module should switch to using
+         * the userland-provided Punycode.js module instead.
+         */
         encode(codePoints: number[]): string;
     }
+    /**
+     * @deprecated since v7.0.0
+     * The version of the punycode module bundled in Node.js is being deprecated.
+     * In a future major version of Node.js this module will be removed.
+     * Users currently depending on the punycode module should switch to using
+     * the userland-provided Punycode.js module instead.
+     */
     const version: string;
 }
diff --git a/node_modules/@types/node/ts3.4/assert.d.ts b/node_modules/@types/node/ts3.4/assert.d.ts
index 3f01820..68b189c 100644
--- a/node_modules/@types/node/ts3.4/assert.d.ts
+++ b/node_modules/@types/node/ts3.4/assert.d.ts
@@ -1,4 +1,4 @@
-declare module "assert" {
+declare module 'assert' {
     function assert(value: any, message?: string | Error): void;
     namespace assert {
         class AssertionError implements Error {
@@ -11,16 +11,25 @@
             code: 'ERR_ASSERTION';
 
             constructor(options?: {
-                message?: string; actual?: any; expected?: any;
-                operator?: string; stackStartFn?: Function
+                message?: string;
+                actual?: any;
+                expected?: any;
+                operator?: string;
+                stackStartFn?: Function;
             });
         }
 
-        type AssertPredicate = RegExp | (new() => object) | ((thrown: any) => boolean) | object | Error;
+        type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error;
 
         function fail(message?: string | Error): never;
         /** @deprecated since v10.0.0 - use `fail([message])` or other assert functions instead. */
-        function fail(actual: any, expected: any, message?: string | Error, operator?: string, stackStartFn?: Function): never;
+        function fail(
+            actual: any,
+            expected: any,
+            message?: string | Error,
+            operator?: string,
+            stackStartFn?: Function,
+        ): never;
         function ok(value: any, message?: string | Error): void;
         /** @deprecated since v9.9.0 - use `strictEqual()` instead. */
         function equal(actual: any, expected: any, message?: string | Error): void;
@@ -43,9 +52,17 @@
         function ifError(value: any): void;
 
         function rejects(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
-        function rejects(block: (() => Promise<any>) | Promise<any>, error: AssertPredicate, message?: string | Error): Promise<void>;
+        function rejects(
+            block: (() => Promise<any>) | Promise<any>,
+            error: AssertPredicate,
+            message?: string | Error,
+        ): Promise<void>;
         function doesNotReject(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
-        function doesNotReject(block: (() => Promise<any>) | Promise<any>, error: RegExp | Function, message?: string | Error): Promise<void>;
+        function doesNotReject(
+            block: (() => Promise<any>) | Promise<any>,
+            error: RegExp | Function,
+            message?: string | Error,
+        ): Promise<void>;
 
         function match(value: string, regExp: RegExp, message?: string | Error): void;
         function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
diff --git a/node_modules/@types/node/wasi.d.ts b/node_modules/@types/node/wasi.d.ts
index ecf3170..fe2b2aa 100644
--- a/node_modules/@types/node/wasi.d.ts
+++ b/node_modules/@types/node/wasi.d.ts
@@ -6,11 +6,13 @@
          * WASI command itself.
          */
         args?: string[];
+
         /**
          * An object similar to `process.env` that the WebAssembly
          * application will see as its environment.
          */
         env?: object;
+
         /**
          * This object represents the WebAssembly application's
          * sandbox directory structure. The string keys of `preopens` are treated as
@@ -27,6 +29,24 @@
          * @default false
          */
         returnOnExit?: boolean;
+
+        /**
+         * The file descriptor used as standard input in the WebAssembly application.
+         * @default 0
+         */
+        stdin?: number;
+
+        /**
+         * The file descriptor used as standard output in the WebAssembly application.
+         * @default 1
+         */
+        stdout?: number;
+
+        /**
+         * The file descriptor used as standard error in the WebAssembly application.
+         * @default 2
+         */
+        stderr?: number;
     }
 
     class WASI {
@@ -40,11 +60,25 @@
          *
          * `start()` requires that `instance` exports a [`WebAssembly.Memory`][] named
          * `memory`. If `instance` does not have a `memory` export an exception is thrown.
+         *
+         * If `start()` is called more than once, an exception is thrown.
          */
         start(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib.
+
+        /**
+         * Attempt to initialize `instance` as a WASI reactor by invoking its `_initialize()` export, if it is present.
+         * If `instance` contains a `_start()` export, then an exception is thrown.
+         *
+         * `start()` requires that `instance` exports a [`WebAssembly.Memory`][] named
+         * `memory`. If `instance` does not have a `memory` export an exception is thrown.
+         *
+         * If `initialize()` is called more than once, an exception is thrown.
+         */
+        initialize(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib.
+
         /**
          * Is an object that implements the WASI system call API. This object
-         * should be passed as the `wasi_unstable` import during the instantiation of a
+         * should be passed as the `wasi_snapshot_preview1` import during the instantiation of a
          * [`WebAssembly.Instance`][].
          */
         readonly wasiImport: NodeJS.Dict<any>; // TODO: Narrow to DOM types
diff --git a/node_modules/@types/node/worker_threads.d.ts b/node_modules/@types/node/worker_threads.d.ts
index 1aea5d4..b1e59df 100644
--- a/node_modules/@types/node/worker_threads.d.ts
+++ b/node_modules/@types/node/worker_threads.d.ts
@@ -3,9 +3,11 @@
     import { EventEmitter } from "events";
     import { Readable, Writable } from "stream";
     import { URL } from "url";
+    import { FileHandle } from "fs/promises";
 
     const isMainThread: boolean;
     const parentPort: null | MessagePort;
+    const resourceLimits: ResourceLimits;
     const SHARE_ENV: unique symbol;
     const threadId: number;
     const workerData: any;
@@ -15,43 +17,53 @@
         readonly port2: MessagePort;
     }
 
+    type TransferListItem = ArrayBuffer | MessagePort | FileHandle;
+
     class MessagePort extends EventEmitter {
         close(): void;
-        postMessage(value: any, transferList?: Array<ArrayBuffer | MessagePort>): void;
+        postMessage(value: any, transferList?: TransferListItem[]): void;
         ref(): void;
         unref(): void;
         start(): void;
 
         addListener(event: "close", listener: () => void): this;
         addListener(event: "message", listener: (value: any) => void): this;
+        addListener(event: "messageerror", listener: (error: Error) => void): this;
         addListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         emit(event: "close"): boolean;
         emit(event: "message", value: any): boolean;
+        emit(event: "messageerror", error: Error): boolean;
         emit(event: string | symbol, ...args: any[]): boolean;
 
         on(event: "close", listener: () => void): this;
         on(event: "message", listener: (value: any) => void): this;
+        on(event: "messageerror", listener: (error: Error) => void): this;
         on(event: string | symbol, listener: (...args: any[]) => void): this;
 
         once(event: "close", listener: () => void): this;
         once(event: "message", listener: (value: any) => void): this;
+        once(event: "messageerror", listener: (error: Error) => void): this;
         once(event: string | symbol, listener: (...args: any[]) => void): this;
 
         prependListener(event: "close", listener: () => void): this;
         prependListener(event: "message", listener: (value: any) => void): this;
+        prependListener(event: "messageerror", listener: (error: Error) => void): this;
         prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         prependOnceListener(event: "close", listener: () => void): this;
         prependOnceListener(event: "message", listener: (value: any) => void): this;
+        prependOnceListener(event: "messageerror", listener: (error: Error) => void): this;
         prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         removeListener(event: "close", listener: () => void): this;
         removeListener(event: "message", listener: (value: any) => void): this;
+        removeListener(event: "messageerror", listener: (error: Error) => void): this;
         removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         off(event: "close", listener: () => void): this;
         off(event: "message", listener: (value: any) => void): this;
+        off(event: "messageerror", listener: (error: Error) => void): this;
         off(event: string | symbol, listener: (...args: any[]) => void): this;
     }
 
@@ -74,14 +86,28 @@
         /**
          * Additional data to send in the first worker message.
          */
-        transferList?: Array<ArrayBuffer | MessagePort>;
+        transferList?: TransferListItem[];
         trackUnmanagedFds?: boolean;
     }
 
     interface ResourceLimits {
+        /**
+         * The maximum size of a heap space for recently created objects.
+         */
         maxYoungGenerationSizeMb?: number;
+        /**
+         * The maximum size of the main heap in MB.
+         */
         maxOldGenerationSizeMb?: number;
+        /**
+         * The size of a pre-allocated memory range used for generated code.
+         */
         codeRangeSizeMb?: number;
+        /**
+         * The default maximum stack size for the thread. Small values may lead to unusable Worker instances.
+         * @default 4
+         */
+        stackSizeMb?: number;
     }
 
     class Worker extends EventEmitter {
@@ -98,7 +124,7 @@
          */
         constructor(filename: string | URL, options?: WorkerOptions);
 
-        postMessage(value: any, transferList?: Array<ArrayBuffer | MessagePort>): void;
+        postMessage(value: any, transferList?: TransferListItem[]): void;
         ref(): void;
         unref(): void;
         /**
@@ -120,53 +146,73 @@
         addListener(event: "error", listener: (err: Error) => void): this;
         addListener(event: "exit", listener: (exitCode: number) => void): this;
         addListener(event: "message", listener: (value: any) => void): this;
+        addListener(event: "messageerror", listener: (error: Error) => void): this;
         addListener(event: "online", listener: () => void): this;
         addListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         emit(event: "error", err: Error): boolean;
         emit(event: "exit", exitCode: number): boolean;
         emit(event: "message", value: any): boolean;
+        emit(event: "messageerror", error: Error): boolean;
         emit(event: "online"): boolean;
         emit(event: string | symbol, ...args: any[]): boolean;
 
         on(event: "error", listener: (err: Error) => void): this;
         on(event: "exit", listener: (exitCode: number) => void): this;
         on(event: "message", listener: (value: any) => void): this;
+        on(event: "messageerror", listener: (error: Error) => void): this;
         on(event: "online", listener: () => void): this;
         on(event: string | symbol, listener: (...args: any[]) => void): this;
 
         once(event: "error", listener: (err: Error) => void): this;
         once(event: "exit", listener: (exitCode: number) => void): this;
         once(event: "message", listener: (value: any) => void): this;
+        once(event: "messageerror", listener: (error: Error) => void): this;
         once(event: "online", listener: () => void): this;
         once(event: string | symbol, listener: (...args: any[]) => void): this;
 
         prependListener(event: "error", listener: (err: Error) => void): this;
         prependListener(event: "exit", listener: (exitCode: number) => void): this;
         prependListener(event: "message", listener: (value: any) => void): this;
+        prependListener(event: "messageerror", listener: (error: Error) => void): this;
         prependListener(event: "online", listener: () => void): this;
         prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         prependOnceListener(event: "error", listener: (err: Error) => void): this;
         prependOnceListener(event: "exit", listener: (exitCode: number) => void): this;
         prependOnceListener(event: "message", listener: (value: any) => void): this;
+        prependOnceListener(event: "messageerror", listener: (error: Error) => void): this;
         prependOnceListener(event: "online", listener: () => void): this;
         prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         removeListener(event: "error", listener: (err: Error) => void): this;
         removeListener(event: "exit", listener: (exitCode: number) => void): this;
         removeListener(event: "message", listener: (value: any) => void): this;
+        removeListener(event: "messageerror", listener: (error: Error) => void): this;
         removeListener(event: "online", listener: () => void): this;
         removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
 
         off(event: "error", listener: (err: Error) => void): this;
         off(event: "exit", listener: (exitCode: number) => void): this;
         off(event: "message", listener: (value: any) => void): this;
+        off(event: "messageerror", listener: (error: Error) => void): this;
         off(event: "online", listener: () => void): this;
         off(event: string | symbol, listener: (...args: any[]) => void): this;
     }
 
     /**
+     * Mark an object as not transferable.
+     * If `object` occurs in the transfer list of a `port.postMessage()` call, it will be ignored.
+     *
+     * In particular, this makes sense for objects that can be cloned, rather than transferred,
+     * and which are used by other objects on the sending side. For example, Node.js marks
+     * the `ArrayBuffer`s it uses for its Buffer pool with this.
+     *
+     * This operation cannot be undone.
+     */
+    function markAsUntransferable(object: object): void;
+
+    /**
      * Transfer a `MessagePort` to a different `vm` Context. The original `port`
      * object will be rendered unusable, and the returned `MessagePort` instance will
      * take its place.
diff --git a/node_modules/@types/node/zlib.d.ts b/node_modules/@types/node/zlib.d.ts
index a03e900..5ed1a0c 100644
--- a/node_modules/@types/node/zlib.d.ts
+++ b/node_modules/@types/node/zlib.d.ts
@@ -19,6 +19,8 @@
         memLevel?: number; // compression only
         strategy?: number; // compression only
         dictionary?: NodeJS.ArrayBufferView | ArrayBuffer; // deflate/inflate only, empty dictionary by default
+        info?: boolean;
+        maxOutputLength?: number;
     }
 
     interface BrotliOptions {
@@ -40,6 +42,7 @@
              */
             [key: number]: boolean | number;
         };
+        maxOutputLength?: number;
     }
 
     interface Zlib {
@@ -111,6 +114,43 @@
     function unzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void;
     function unzipSync(buf: InputType, options?: ZlibOptions): Buffer;
 
+    namespace brotliCompress {
+        function __promisify__(buffer: InputType, options: BrotliOptions): Promise<Buffer>;
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+    }
+    namespace brotliDecompress {
+        function __promisify__(buffer: InputType, options: BrotliOptions): Promise<Buffer>;
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+    }
+    namespace deflate {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace deflateRaw {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace gzip {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace gunzip {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace inflate {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace inflateRaw {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+    namespace unzip {
+        function __promisify__(buffer: InputType): Promise<Buffer>;
+        function __promisify__(buffer: InputType, options: ZlibOptions): Promise<Buffer>;
+    }
+
     namespace constants {
         const BROTLI_DECODE: number;
         const BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md b/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md
index 09fdc41..eb0a0c0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md
@@ -3,6 +3,638 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** added safe getTypeOfPropertyOfType wrapper ([#2567](https://github.com/typescript-eslint/typescript-eslint/issues/2567)) ([7cba2de](https://github.com/typescript-eslint/typescript-eslint/commit/7cba2de138542563d678fbfc738cd1b3ebf01e07))
+* **experimental-utils:** treat RuleTester arrays as readonly ([#2601](https://github.com/typescript-eslint/typescript-eslint/issues/2601)) ([8025777](https://github.com/typescript-eslint/typescript-eslint/commit/80257776b78bd2b2b4389d6bd530b009a75fb520))
+
+
+### Features
+
+* **eslint-plugin:** [no-invalid-void-type] add option to allow `this: void` ([#2481](https://github.com/typescript-eslint/typescript-eslint/issues/2481)) ([ddf5660](https://github.com/typescript-eslint/typescript-eslint/commit/ddf5660846784003cab4b10ae7a5e510b9dd562b))
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [naming-convention] ignore properties inside object patterns ([#2566](https://github.com/typescript-eslint/typescript-eslint/issues/2566)) ([53a3cbc](https://github.com/typescript-eslint/typescript-eslint/commit/53a3cbc6f002e55135efbdf4982a3ad308ac708b))
+* **eslint-plugin:** [prefer-ts-expect-error] support block comments ([#2541](https://github.com/typescript-eslint/typescript-eslint/issues/2541)) ([c6f72fb](https://github.com/typescript-eslint/typescript-eslint/commit/c6f72fbd3ccc19e39954cfe3d36d358ef43b7daa))
+* **scope-manager:** correct analysis of inferred types in conditional types ([#2537](https://github.com/typescript-eslint/typescript-eslint/issues/2537)) ([4f660fd](https://github.com/typescript-eslint/typescript-eslint/commit/4f660fd31acbb88b30719f925dcb2b3022cc2bab))
+
+
+### Features
+
+* **eslint-plugin:** add extension rule `comma-dangle` ([#2416](https://github.com/typescript-eslint/typescript-eslint/issues/2416)) ([f7babcf](https://github.com/typescript-eslint/typescript-eslint/commit/f7babcf4e6da3e5cba8f2c75d57abf8089432d05))
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [naming-convention] allow an array of selectors with types and modifiers ([#2415](https://github.com/typescript-eslint/typescript-eslint/issues/2415)) ([7ca54c3](https://github.com/typescript-eslint/typescript-eslint/commit/7ca54c3e4601ad07db5b882a67965cd67a18c4b3))
+* **eslint-plugin:** [no-implied-eval] handle the `Function` type ([#2435](https://github.com/typescript-eslint/typescript-eslint/issues/2435)) ([e1401dc](https://github.com/typescript-eslint/typescript-eslint/commit/e1401dc5897d01da516802cfb2333cf4bc6d0e93))
+* **eslint-plugin:** [no-unused-vars] better handling for declared modules ([#2553](https://github.com/typescript-eslint/typescript-eslint/issues/2553)) ([02d72d4](https://github.com/typescript-eslint/typescript-eslint/commit/02d72d480be7a8f7ddc66a028338cfb996886f3c)), closes [#2523](https://github.com/typescript-eslint/typescript-eslint/issues/2523)
+* **eslint-plugin:** [no-use-before-define] false positive for function type arguments ([#2554](https://github.com/typescript-eslint/typescript-eslint/issues/2554)) ([189162d](https://github.com/typescript-eslint/typescript-eslint/commit/189162d46ecb116c420232937a7f86df913f4e79)), closes [#2527](https://github.com/typescript-eslint/typescript-eslint/issues/2527)
+* **eslint-plugin:** [prefer-function-type] handle `this` return ([#2437](https://github.com/typescript-eslint/typescript-eslint/issues/2437)) ([7c6fcee](https://github.com/typescript-eslint/typescript-eslint/commit/7c6fcee657dffd041e389e0aeaa4f3e278e92986))
+* **eslint-plugin:** [return-await] don't error for `in-try-catch` if the return is in a `catch` without a `finally` ([#2356](https://github.com/typescript-eslint/typescript-eslint/issues/2356)) ([efdd521](https://github.com/typescript-eslint/typescript-eslint/commit/efdd5213ceaef332cf0b2c26573176f844d22a09))
+
+
+
+
+
+# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [explicit-module-boundary-types] cyclical reference infinite recursion crash ([#2482](https://github.com/typescript-eslint/typescript-eslint/issues/2482)) ([8693653](https://github.com/typescript-eslint/typescript-eslint/commit/86936537bd6f1075cbceeb8d2d4e254d75188409))
+* **eslint-plugin:** [no-unused-vars] correct detection of unused vars in a declared module with `export =` ([#2505](https://github.com/typescript-eslint/typescript-eslint/issues/2505)) ([3d07a99](https://github.com/typescript-eslint/typescript-eslint/commit/3d07a99faa0a5fc1b44acdb43ddbfc90a5105833))
+* **eslint-plugin:** [no-unused-vars] properly handle ambient declaration exports ([#2496](https://github.com/typescript-eslint/typescript-eslint/issues/2496)) ([4d3ce5f](https://github.com/typescript-eslint/typescript-eslint/commit/4d3ce5f696985389bf53a31d62766041c703c70c))
+* **eslint-plugin:** [no-use-before-define] false positive with jsx pragma reference ([#2503](https://github.com/typescript-eslint/typescript-eslint/issues/2503)) ([5afeeab](https://github.com/typescript-eslint/typescript-eslint/commit/5afeeab24ad013142f2431750f24e6085d0a6f3a)), closes [#2502](https://github.com/typescript-eslint/typescript-eslint/issues/2502)
+* **eslint-plugin:** [typedef] false positive for rest parameter with array destructuring ([#2441](https://github.com/typescript-eslint/typescript-eslint/issues/2441)) ([2ada5af](https://github.com/typescript-eslint/typescript-eslint/commit/2ada5aff1ef37bc260d7a0eaafe9ff04f8a08fe4))
+* **eslint-plugin:** handle missing message IDs in eslint v5/v6 ([#2461](https://github.com/typescript-eslint/typescript-eslint/issues/2461)) ([ffdfade](https://github.com/typescript-eslint/typescript-eslint/commit/ffdfade106d602bcc12b074bdfa489e9f661491e))
+* **scope-manager:** add `const` as a global type variable ([#2499](https://github.com/typescript-eslint/typescript-eslint/issues/2499)) ([eb3f6e3](https://github.com/typescript-eslint/typescript-eslint/commit/eb3f6e39391d62ac424baa305a15e61806b2fd65))
+* **scope-manager:** correctly handle inferred types in nested type scopes ([#2497](https://github.com/typescript-eslint/typescript-eslint/issues/2497)) ([95f6bf4](https://github.com/typescript-eslint/typescript-eslint/commit/95f6bf4818cdec48a0583bf82f928c598af22736))
+* **scope-manager:** don't create references for intrinsic JSX elements ([#2504](https://github.com/typescript-eslint/typescript-eslint/issues/2504)) ([cdb9807](https://github.com/typescript-eslint/typescript-eslint/commit/cdb9807a5a368a136856cd03048b68e0f2dfb405))
+* **scope-manager:** support rest function type parameters ([#2491](https://github.com/typescript-eslint/typescript-eslint/issues/2491)) ([9d8b4c4](https://github.com/typescript-eslint/typescript-eslint/commit/9d8b4c479c98623e4198aa07639321929a8a876f)), closes [#2449](https://github.com/typescript-eslint/typescript-eslint/issues/2449)
+* **scope-manager:** support tagged template string generic type parameters ([#2492](https://github.com/typescript-eslint/typescript-eslint/issues/2492)) ([a2686c0](https://github.com/typescript-eslint/typescript-eslint/commit/a2686c04293ab9070c1500a0dab7e205bd1fa9d2))
+* **scope-manager:** support type predicates ([#2493](https://github.com/typescript-eslint/typescript-eslint/issues/2493)) ([a40f54c](https://github.com/typescript-eslint/typescript-eslint/commit/a40f54c39d59096a0d12a492807dcd52fbcdc384)), closes [#2462](https://github.com/typescript-eslint/typescript-eslint/issues/2462)
+* **scope-manager:** treat type imports as both values and types ([#2494](https://github.com/typescript-eslint/typescript-eslint/issues/2494)) ([916e95a](https://github.com/typescript-eslint/typescript-eslint/commit/916e95a505689746dda38a67148c95cc7d207d9f)), closes [#2453](https://github.com/typescript-eslint/typescript-eslint/issues/2453)
+
+
+### Features
+
+* **eslint-plugin:** [no-shadow] add option `ignoreFunctionTypeParameterNameValueShadow` ([#2470](https://github.com/typescript-eslint/typescript-eslint/issues/2470)) ([bfe255f](https://github.com/typescript-eslint/typescript-eslint/commit/bfe255fde0cb5fe5e32c02eb5ba35d27fb23d9ea))
+* **eslint-plugin:** add extension rule `no-loop-func` ([#2490](https://github.com/typescript-eslint/typescript-eslint/issues/2490)) ([36305df](https://github.com/typescript-eslint/typescript-eslint/commit/36305df74b3c26b60364f7ec13390be492b4b2ec))
+* **scope-manager:** add support for JSX scope analysis ([#2498](https://github.com/typescript-eslint/typescript-eslint/issues/2498)) ([f887ab5](https://github.com/typescript-eslint/typescript-eslint/commit/f887ab51f58c1b3571f9a14832864bc0ca59623f)), closes [#2455](https://github.com/typescript-eslint/typescript-eslint/issues/2455) [#2477](https://github.com/typescript-eslint/typescript-eslint/issues/2477)
+
+
+
+
+
+## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** update parser dependency range ([#2445](https://github.com/typescript-eslint/typescript-eslint/issues/2445)) ([2cb6620](https://github.com/typescript-eslint/typescript-eslint/commit/2cb66205de797479d9b2d362652c42fe032e913b)), closes [#2444](https://github.com/typescript-eslint/typescript-eslint/issues/2444)
+
+
+
+
+
+# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
+
+## [Please see the release notes for v4.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v4.0.0)
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-shadow] fix false-positive on enum declaration ([#2374](https://github.com/typescript-eslint/typescript-eslint/issues/2374)) ([9de669f](https://github.com/typescript-eslint/typescript-eslint/commit/9de669f339fef62a98f745dc08b833aa5c632e62))
+* **eslint-plugin:** [no-unused-vars] handle TSCallSignature ([#2336](https://github.com/typescript-eslint/typescript-eslint/issues/2336)) ([c70f54f](https://github.com/typescript-eslint/typescript-eslint/commit/c70f54fd3a46a12060ae3aec0faae872c431dd88))
+* correct decorator traversal for AssignmentPattern ([#2375](https://github.com/typescript-eslint/typescript-eslint/issues/2375)) ([d738fa4](https://github.com/typescript-eslint/typescript-eslint/commit/d738fa4eff0a5c4cfc9b30b1c0502f8d1e78d7b6))
+* **scope-manager:** correct analysis of abstract class properties ([#2420](https://github.com/typescript-eslint/typescript-eslint/issues/2420)) ([cd84549](https://github.com/typescript-eslint/typescript-eslint/commit/cd84549beba3cf471d75cfd9ba26f80366842ed5))
+* **typescript-estree:** correct ChainExpression interaction with parentheses and non-nulls ([#2380](https://github.com/typescript-eslint/typescript-eslint/issues/2380)) ([762bc99](https://github.com/typescript-eslint/typescript-eslint/commit/762bc99584ede4d0b8099a743991e957aec86aa8))
+
+
+### Features
+
+* consume new scope analysis package ([#2039](https://github.com/typescript-eslint/typescript-eslint/issues/2039)) ([3be125d](https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0))
+* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
+* **eslint-plugin:** [ban-ts-comment] change default for `ts-expect-error` to `allow-with-description` ([#2351](https://github.com/typescript-eslint/typescript-eslint/issues/2351)) ([a3f163a](https://github.com/typescript-eslint/typescript-eslint/commit/a3f163abc03f0fefc6dca1f205b728a4425209e4)), closes [#2146](https://github.com/typescript-eslint/typescript-eslint/issues/2146)
+* **eslint-plugin:** [no-unnecessary-condition][strict-boolean-expressions] add option to make the rules error on files without `strictNullChecks` turned on ([#2345](https://github.com/typescript-eslint/typescript-eslint/issues/2345)) ([9273441](https://github.com/typescript-eslint/typescript-eslint/commit/9273441f7592b52620e10432cb2dd4dc5c3b4db1))
+* **eslint-plugin:** [typedef] remove all defaults ([#2352](https://github.com/typescript-eslint/typescript-eslint/issues/2352)) ([a9cd6fb](https://github.com/typescript-eslint/typescript-eslint/commit/a9cd6fb893074e4f2ca9ad3497eaddfacb3cfd25))
+* **eslint-plugin:** add `consistent-type-imports` rule ([#2367](https://github.com/typescript-eslint/typescript-eslint/issues/2367)) ([58b1c2d](https://github.com/typescript-eslint/typescript-eslint/commit/58b1c2d463f34895798b9a61340e49ffc3ec4f1a))
+
+
+### BREAKING CHANGES
+
+* - Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
+- Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.
+* **eslint-plugin:** Default rule options is a breaking change.
+
+
+
+
+
+## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-unnecessary-condition] correct regression with unary negations ([#2422](https://github.com/typescript-eslint/typescript-eslint/issues/2422)) ([d1f0887](https://github.com/typescript-eslint/typescript-eslint/commit/d1f08879338c825a1a20406fe47c051a287d6519)), closes [#2421](https://github.com/typescript-eslint/typescript-eslint/issues/2421)
+
+
+
+
+
+# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [explicit-module-boundary-types] ignore abstract setters ([#2410](https://github.com/typescript-eslint/typescript-eslint/issues/2410)) ([3764248](https://github.com/typescript-eslint/typescript-eslint/commit/3764248084455409f085c5bc4706079405cef618))
+* **eslint-plugin:** [explicit-module-boundary-types] ignore all bodyless setters ([#2413](https://github.com/typescript-eslint/typescript-eslint/issues/2413)) ([a53f8c6](https://github.com/typescript-eslint/typescript-eslint/commit/a53f8c6ff37aa47b3fc1b729e359d81ea079ff75))
+* **eslint-plugin:** [no-unnecessary-condition] better handling for unary negation ([#2382](https://github.com/typescript-eslint/typescript-eslint/issues/2382)) ([32fe2bb](https://github.com/typescript-eslint/typescript-eslint/commit/32fe2bb4fe5524355eef4f3a9bd85c824e9d7f46))
+
+
+### Features
+
+* **eslint-plugin:** add `no-implicit-any-catch` rule ([#2202](https://github.com/typescript-eslint/typescript-eslint/issues/2202)) ([fde89d4](https://github.com/typescript-eslint/typescript-eslint/commit/fde89d4d392ef35cac2bc09f2774bfe397b20100))
+
+
+
+
+
+## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-unnecessary-condition] fix false positive with nullish coalescing ([#2385](https://github.com/typescript-eslint/typescript-eslint/issues/2385)) ([092c969](https://github.com/typescript-eslint/typescript-eslint/commit/092c96967fd9b58fb2d8d325e1dbc750ccbeb746))
+* **eslint-plugin:** [prefer-includes] don't auto fix when `test` method's argument type doesn't have an 'includes' method ([#2391](https://github.com/typescript-eslint/typescript-eslint/issues/2391)) ([71c4c72](https://github.com/typescript-eslint/typescript-eslint/commit/71c4c729e90e308e0afd70af7db5e9d9ff238527))
+
+
+
+
+
+# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-throw-literal] support type assertions ([#2354](https://github.com/typescript-eslint/typescript-eslint/issues/2354)) ([470174a](https://github.com/typescript-eslint/typescript-eslint/commit/470174ad51fdb12d82129a896559075513f6c912))
+
+
+### Features
+
+* **eslint-plugin:** [no-unsafe-assignment/return] allow assigning any => unknown ([#2371](https://github.com/typescript-eslint/typescript-eslint/issues/2371)) ([e7528e6](https://github.com/typescript-eslint/typescript-eslint/commit/e7528e686f5fe5cce8504fc15d3cd06b8733712e))
+* **typescript-estree:** support TSv4 labelled tuple members ([#2378](https://github.com/typescript-eslint/typescript-eslint/issues/2378)) ([00d84ff](https://github.com/typescript-eslint/typescript-eslint/commit/00d84ffbcbe9d0ec98bdb2f2ce59959a27ce4dbe))
+
+
+
+
+
+# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-implied-eval] don't report when `Function` is imported ([#2348](https://github.com/typescript-eslint/typescript-eslint/issues/2348)) ([fa169e7](https://github.com/typescript-eslint/typescript-eslint/commit/fa169e79661821f0e0e64a56d6db9da42c3c8654))
+* **eslint-plugin:** [no-unsafe-assignment] fix typo in message ([#2347](https://github.com/typescript-eslint/typescript-eslint/issues/2347)) ([2027bb1](https://github.com/typescript-eslint/typescript-eslint/commit/2027bb11689b76c297f93ba8a918b35fe68e5b9d))
+
+
+### Features
+
+* **eslint-plugin:** [naming-convention] allow specifying an array of selectors ([#2335](https://github.com/typescript-eslint/typescript-eslint/issues/2335)) ([3ef6bd5](https://github.com/typescript-eslint/typescript-eslint/commit/3ef6bd5cadc225e42ef1330d15919a39f53f2a2b))
+* **eslint-plugin:** add `prefer-enum-initializers` rule ([#2326](https://github.com/typescript-eslint/typescript-eslint/issues/2326)) ([4f38ea3](https://github.com/typescript-eslint/typescript-eslint/commit/4f38ea39c97289db11501d6368d01db8c5787257))
+
+
+
+
+
+## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [adjacent-overload-signatures] fix false positive on call signatures and a method named `call` ([#2313](https://github.com/typescript-eslint/typescript-eslint/issues/2313)) ([30fafb0](https://github.com/typescript-eslint/typescript-eslint/commit/30fafb09422b3aca881f4785d89b0536092d4952))
+* **eslint-plugin:** [no-extra-parens] stop reporting on calling generic functions with one argument and type parameters containing parentheses ([#2319](https://github.com/typescript-eslint/typescript-eslint/issues/2319)) ([616a841](https://github.com/typescript-eslint/typescript-eslint/commit/616a841032bec310d9f31f1c987888273df27008))
+
+
+
+
+
+# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
+
+
+### Features
+
+* **eslint-plugin:** [naming-convention] allow selecting only `const` variables ([#2291](https://github.com/typescript-eslint/typescript-eslint/issues/2291)) ([156d058](https://github.com/typescript-eslint/typescript-eslint/commit/156d058fee835fdf1ed827a5ad4a80d57190cc54))
+* **eslint-plugin:** [no-empty-function] add `decoratedFunctions` option ([#2295](https://github.com/typescript-eslint/typescript-eslint/issues/2295)) ([88f08f4](https://github.com/typescript-eslint/typescript-eslint/commit/88f08f410760f58fdc2de58ecd9dab9610821642))
+
+
+
+
+
+## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-unnecessary-condition] handle computed member access ([#2288](https://github.com/typescript-eslint/typescript-eslint/issues/2288)) ([3a187ca](https://github.com/typescript-eslint/typescript-eslint/commit/3a187cafb7302a3c05de0e6a236dd142a5e2d741))
+* **eslint-plugin:** [prefer-literal-enum-member] allow negative numbers ([#2277](https://github.com/typescript-eslint/typescript-eslint/issues/2277)) ([00ac9c3](https://github.com/typescript-eslint/typescript-eslint/commit/00ac9c3ccaad27bab08ec3c3a104f612bb593df5))
+* **eslint-plugin:** [space-before-function-paren] incorrect handling of abstract methods ([#2275](https://github.com/typescript-eslint/typescript-eslint/issues/2275)) ([ced6591](https://github.com/typescript-eslint/typescript-eslint/commit/ced65918b16f46c383496a9b4bd43eca8a76baf6)), closes [#2274](https://github.com/typescript-eslint/typescript-eslint/issues/2274)
+* **eslint-plugin:** [switch-exhaustiveness-check] handle special characters in enum keys ([#2207](https://github.com/typescript-eslint/typescript-eslint/issues/2207)) ([98ab010](https://github.com/typescript-eslint/typescript-eslint/commit/98ab010fb7fca884984bb4200fd806ecee8071b6))
+
+
+
+
+
+# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-namespace] allow namespaces in nested declarations with `allowDeclarations` ([#2238](https://github.com/typescript-eslint/typescript-eslint/issues/2238)) ([c1df669](https://github.com/typescript-eslint/typescript-eslint/commit/c1df6694f7866d3ef7ede0b1c6c9dd6f3955e682))
+* **eslint-plugin:** [space-before-function-paren] handle abstract functions ([#2199](https://github.com/typescript-eslint/typescript-eslint/issues/2199)) ([88a3edf](https://github.com/typescript-eslint/typescript-eslint/commit/88a3edfce8349f871b7b660d2b76508b67c94eda))
+
+
+### Features
+
+* **eslint-plugin:** add rule `prefer-literal-enum-member` ([#1898](https://github.com/typescript-eslint/typescript-eslint/issues/1898)) ([fe2b2ec](https://github.com/typescript-eslint/typescript-eslint/commit/fe2b2ec39ef04ac8b73eef9d29d12fd1b24fa183))
+
+
+
+
+
+# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [naming-convention] support unicode in regex ([#2241](https://github.com/typescript-eslint/typescript-eslint/issues/2241)) ([5fdd21a](https://github.com/typescript-eslint/typescript-eslint/commit/5fdd21a1726fb6928098c4152aec55a30df960d4))
+
+
+### Features
+
+* add package scope-manager ([#1939](https://github.com/typescript-eslint/typescript-eslint/issues/1939)) ([682eb7e](https://github.com/typescript-eslint/typescript-eslint/commit/682eb7e009c3f22a542882dfd3602196a60d2a1e))
+
+
+
+
+
+# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-base-to-string] handle intersection types ([#2170](https://github.com/typescript-eslint/typescript-eslint/issues/2170)) ([9cca3a9](https://github.com/typescript-eslint/typescript-eslint/commit/9cca3a9584d5d5ef0536219c5a734f4e87efb543))
+* **eslint-plugin:** [unbound-method] handling destructuring ([#2228](https://github.com/typescript-eslint/typescript-eslint/issues/2228)) ([c3753c2](https://github.com/typescript-eslint/typescript-eslint/commit/c3753c21768d355ecdb9e7ae8e0bfdfbbc1d3bbe))
+
+
+### Features
+
+* **eslint-plugin:** [no-unnecessary-boolean-literal-compare] add option to check nullable booleans ([#1983](https://github.com/typescript-eslint/typescript-eslint/issues/1983)) ([c0b3057](https://github.com/typescript-eslint/typescript-eslint/commit/c0b3057b7f7d515891ad2efe32e4ef8c01e0478f))
+* **eslint-plugin:** add extension rule `no-loss-of-precision` ([#2196](https://github.com/typescript-eslint/typescript-eslint/issues/2196)) ([535b0f2](https://github.com/typescript-eslint/typescript-eslint/commit/535b0f2ddd82efa6a2c40307a61c480f4b3cdea3))
+
+
+
+
+
+# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-unused-expressions] handle ternary and short-circuit options ([#2194](https://github.com/typescript-eslint/typescript-eslint/issues/2194)) ([ee9f100](https://github.com/typescript-eslint/typescript-eslint/commit/ee9f100a2f9a874c2b361482742686eeaa9bdac7))
+
+
+### Features
+
+* **eslint-plugin:** [naming-convention] better error message and docs for prefix/suffix ([#2195](https://github.com/typescript-eslint/typescript-eslint/issues/2195)) ([a2ffe55](https://github.com/typescript-eslint/typescript-eslint/commit/a2ffe5568df0f7224bfe9141d298e538383d5f09))
+
+
+
+
+
+# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [explicit-module-boundary-types] dont report return type errors on constructor overloads ([#2158](https://github.com/typescript-eslint/typescript-eslint/issues/2158)) ([53232d7](https://github.com/typescript-eslint/typescript-eslint/commit/53232d775ca0b808e2d75d9501f4411a868b2b48))
+* **eslint-plugin:** [explicit-module-boundary-types] handle bodyless arrow functions with explicit return types that return functions ([#2169](https://github.com/typescript-eslint/typescript-eslint/issues/2169)) ([58db655](https://github.com/typescript-eslint/typescript-eslint/commit/58db655133aaae006efe3e3ceee971cf88dc348f))
+* **eslint-plugin:** [explicit-module-boundary-types] handle nested functions and functions expressions in a typed variable declaration ([#2176](https://github.com/typescript-eslint/typescript-eslint/issues/2176)) ([6ff450d](https://github.com/typescript-eslint/typescript-eslint/commit/6ff450da3abec93223a33f6b52484c9ca99b7abe))
+* **eslint-plugin:** [no-extra-non-null-assertion] dont report for assertions not followed by the optional chain ([#2167](https://github.com/typescript-eslint/typescript-eslint/issues/2167)) ([e4c1834](https://github.com/typescript-eslint/typescript-eslint/commit/e4c1834c7c5934332dd1d58c09018453568c4889))
+* **eslint-plugin:** [no-unnecessary-conditionals] Handle comparison of generics and loose comparisons with undefined values ([#2152](https://github.com/typescript-eslint/typescript-eslint/issues/2152)) ([c86e2a2](https://github.com/typescript-eslint/typescript-eslint/commit/c86e2a235372149db9b1700d39c2145e0ce5221a))
+* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
+* **eslint-plugin:** [return-await] correct handling of ternaries ([#2168](https://github.com/typescript-eslint/typescript-eslint/issues/2168)) ([fe4c0bf](https://github.com/typescript-eslint/typescript-eslint/commit/fe4c0bf8c04f070d6642fbe86c5e5614bc88e8fd))
+
+
+### Features
+
+* **eslint-plugin:** [naming-convention] put identifiers in quotes in error messages ([#2182](https://github.com/typescript-eslint/typescript-eslint/issues/2182)) ([fc61932](https://github.com/typescript-eslint/typescript-eslint/commit/fc619326eedf7ef2efa51444ecdead81a36a204f)), closes [#2178](https://github.com/typescript-eslint/typescript-eslint/issues/2178)
+* **eslint-plugin:** [require-array-sort-compare] add `ignoreStringArrays` option ([#1972](https://github.com/typescript-eslint/typescript-eslint/issues/1972)) ([6dee784](https://github.com/typescript-eslint/typescript-eslint/commit/6dee7840a3af1dfe4c38a128d1c4655bdac625df))
+* **eslint-plugin:** add rule `ban-tslint-comment` ([#2140](https://github.com/typescript-eslint/typescript-eslint/issues/2140)) ([43ee226](https://github.com/typescript-eslint/typescript-eslint/commit/43ee226ffbaaa3e7126081db9476c24b89ec16e9))
+* **eslint-plugin:** add rule `no-confusing-non-null-assertion` ([#1941](https://github.com/typescript-eslint/typescript-eslint/issues/1941)) ([9b51c44](https://github.com/typescript-eslint/typescript-eslint/commit/9b51c44f29d8b3e95a510985544e8ded8a14404d))
+
+
+
+
+
+# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [explicit-module-boundary-types] don't check returned functions if parent function has return type ([#2084](https://github.com/typescript-eslint/typescript-eslint/issues/2084)) ([d7d4eeb](https://github.com/typescript-eslint/typescript-eslint/commit/d7d4eeb03f2918d5d9e361fdb47c2d42e83bd593))
+* **eslint-plugin:** [no-unnecessary-condition] handle comparison of any, unknown and loose comparisons with nullish values ([#2123](https://github.com/typescript-eslint/typescript-eslint/issues/2123)) ([1ae1d01](https://github.com/typescript-eslint/typescript-eslint/commit/1ae1d01e5603ec7cef8051ed018c3c3c88b29867))
+* **eslint-plugin:** [no-unnecessary-condition] improve optional chain handling ([#2111](https://github.com/typescript-eslint/typescript-eslint/issues/2111)) ([9ee399b](https://github.com/typescript-eslint/typescript-eslint/commit/9ee399b5906e82f346ff89141207a6630786de54))
+* **eslint-plugin:** [no-unnecessary-condition] improve optional chain handling 2 - electric boogaloo ([#2138](https://github.com/typescript-eslint/typescript-eslint/issues/2138)) ([c87cfaf](https://github.com/typescript-eslint/typescript-eslint/commit/c87cfaf6746775bb8ad9eb45b0002f068a822dbe))
+* **eslint-plugin:** [no-unused-expressions] ignore import expressions ([#2130](https://github.com/typescript-eslint/typescript-eslint/issues/2130)) ([e383691](https://github.com/typescript-eslint/typescript-eslint/commit/e3836910efdafd9edf04daed149c9e839c08047e))
+* **eslint-plugin:** [no-var-requires] false negative for TSAsExpression and MemberExpression ([#2139](https://github.com/typescript-eslint/typescript-eslint/issues/2139)) ([df95338](https://github.com/typescript-eslint/typescript-eslint/commit/df953388913b22d45242e65ce231d92a8b8a0080))
+* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
+
+
+### Features
+
+* **eslint-plugin:** [ban-ts-comments] add "allow-with-description" option ([#2099](https://github.com/typescript-eslint/typescript-eslint/issues/2099)) ([8a0fd18](https://github.com/typescript-eslint/typescript-eslint/commit/8a0fd1899f544470a35afb3117f4c71aad7e4e42))
+* **eslint-plugin:** [ban-types] allow selective disable of default options with `false` value ([#2137](https://github.com/typescript-eslint/typescript-eslint/issues/2137)) ([1cb8ca4](https://github.com/typescript-eslint/typescript-eslint/commit/1cb8ca483d029935310e6904580df8501837084d))
+* **eslint-plugin:** [explicit-module-boundary-types] improve accuracy and coverage ([#2135](https://github.com/typescript-eslint/typescript-eslint/issues/2135)) ([caaa859](https://github.com/typescript-eslint/typescript-eslint/commit/caaa8599284d02ab3341e282cad35a52d0fb86c7))
+
+
+
+
+
+## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
+
+**Note:** Version bump only for package @typescript-eslint/eslint-plugin
+
+
+
+
+
+## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [naming-convention] handle no options correctly ([#2095](https://github.com/typescript-eslint/typescript-eslint/issues/2095)) ([fd7d02b](https://github.com/typescript-eslint/typescript-eslint/commit/fd7d02b31ebd995b7fdd857d7c054042aa4f2001))
+* **eslint-plugin:** [no-throw-literal] handle intersection and union types ([#2085](https://github.com/typescript-eslint/typescript-eslint/issues/2085)) ([cae037f](https://github.com/typescript-eslint/typescript-eslint/commit/cae037ff9b20363b970cc600a09505b98bf10a14))
+* **eslint-plugin:** [unbound-method] fix crash due to missing `Intl` ([#2090](https://github.com/typescript-eslint/typescript-eslint/issues/2090)) ([f2fa82c](https://github.com/typescript-eslint/typescript-eslint/commit/f2fa82c532ae858ccfb064268cfcc9df657a54be))
+
+
+
+
+
+# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
+
+## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
+
+### Bug Fixes
+
+* **eslint-plugin:** [dot-notation] fix typo in schema ([#2040](https://github.com/typescript-eslint/typescript-eslint/issues/2040)) ([242328f](https://github.com/typescript-eslint/typescript-eslint/commit/242328fa749ee4c72af93433a9bef95f329ac62f))
+* **eslint-plugin:** correct parser peerDep version ([fe59f69](https://github.com/typescript-eslint/typescript-eslint/commit/fe59f69381a0915a4f5135e2e88637a5eea246ba))
+* **experimental-utils:** add back SourceCode.isSpaceBetweenTokens ([ae82ea4](https://github.com/typescript-eslint/typescript-eslint/commit/ae82ea4a85a4ca332ebe6104e96c59dba30411be))
+* **typescript-estree:** remove now defunct `Import` node type ([f199cbd](https://github.com/typescript-eslint/typescript-eslint/commit/f199cbdbbd892b5ba03bfff66f463f3d9c92ee9b))
+* **typescript-estree:** use `TSEmptyBodyFunctionExpression` for body-less nodes ([#1289](https://github.com/typescript-eslint/typescript-eslint/issues/1289)) ([82e7163](https://github.com/typescript-eslint/typescript-eslint/commit/82e7163214b56ccde93ba97807b161669a50a60b))
+
+
+### Features
+
+* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
+* **eslint-plugin:** [no-floating-promises] ignore void operator by default ([#2003](https://github.com/typescript-eslint/typescript-eslint/issues/2003)) ([3626a67](https://github.com/typescript-eslint/typescript-eslint/commit/3626a673cf8117cc995245cd86e466e2553e9b0e))
+* **eslint-plugin:** [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers ([52b6085](https://github.com/typescript-eslint/typescript-eslint/commit/52b60852d0ba6bb6abe519c9d3ec1b231793e91d))
+* **experimental-utils:** upgrade eslint types for v7 ([#2023](https://github.com/typescript-eslint/typescript-eslint/issues/2023)) ([06869c9](https://github.com/typescript-eslint/typescript-eslint/commit/06869c9656fa37936126666845aee40aad546ebd))
+* upgrade to ESLint v7 ([#2022](https://github.com/typescript-eslint/typescript-eslint/issues/2022)) ([208de71](https://github.com/typescript-eslint/typescript-eslint/commit/208de71059746bf38e94bd460346ffb2698a3e12))
+* **eslint-plugin:** [no-unnecessary-condition] remove `checkArrayPredicates` and always check it ([#1579](https://github.com/typescript-eslint/typescript-eslint/issues/1579)) ([bfd9b60](https://github.com/typescript-eslint/typescript-eslint/commit/bfd9b606d17d30d5694967a1f01e0e1501ba1022))
+* **eslint-plugin:** [no-unnecessary-condition] remove option `ignoreRHS` ([#1163](https://github.com/typescript-eslint/typescript-eslint/issues/1163)) ([ee8dd8f](https://github.com/typescript-eslint/typescript-eslint/commit/ee8dd8f8a9e6c25ac426ce9bb71c5f012c51f264))
+* **eslint-plugin:** [no-unnecessary-condition] report when non-nullish is compared to `null`/`undefined` ([#1659](https://github.com/typescript-eslint/typescript-eslint/issues/1659)) ([7fa9060](https://github.com/typescript-eslint/typescript-eslint/commit/7fa906073903c5eb70609c25f1a91ada14dcdc71))
+* **eslint-plugin:** [restrict-template-expressions] `allowNumber: true` by default ([#2005](https://github.com/typescript-eslint/typescript-eslint/issues/2005)) ([643ec24](https://github.com/typescript-eslint/typescript-eslint/commit/643ec240bd901295d9e9ea5c43fc20109c33e982))
+* **eslint-plugin:** [restrict-template-expressions] rename `allowNullable` to `allowNullish` ([#2006](https://github.com/typescript-eslint/typescript-eslint/issues/2006)) ([264b017](https://github.com/typescript-eslint/typescript-eslint/commit/264b017c11c2ab132fcbad18b42a9a0fe639386e))
+* **eslint-plugin:** [strict-boolean-expression] rework options ([#1631](https://github.com/typescript-eslint/typescript-eslint/issues/1631)) ([cd14482](https://github.com/typescript-eslint/typescript-eslint/commit/cd1448240dca11762fcb9c10e18bb6541a840485))
+* **eslint-plugin:** delete deprecated rules ([#2002](https://github.com/typescript-eslint/typescript-eslint/issues/2002)) ([da0aec2](https://github.com/typescript-eslint/typescript-eslint/commit/da0aec2cfa27902aae7c438a2fe91343c822e4ae))
+* **eslint-plugin:** eslint-recommended: disable no-func-assign ([#984](https://github.com/typescript-eslint/typescript-eslint/issues/984)) ([ae9b8a9](https://github.com/typescript-eslint/typescript-eslint/commit/ae9b8a9c73c0328287de956466257d8bbfbdb20f))
+* **eslint-plugin:** eslint-recommended: disable no-obj-calls ([#1000](https://github.com/typescript-eslint/typescript-eslint/issues/1000)) ([b9ca14c](https://github.com/typescript-eslint/typescript-eslint/commit/b9ca14c5f5ec28a3fde1a9b2d2f6a4dc74d903e4))
+* **eslint-plugin:** update `eslint-recommended` set ([#1996](https://github.com/typescript-eslint/typescript-eslint/issues/1996)) ([9a96e18](https://github.com/typescript-eslint/typescript-eslint/commit/9a96e18400e0a0d738d159d9d01faf41d3586249))
+* **eslint-plugin:** update recommended sets ([#2001](https://github.com/typescript-eslint/typescript-eslint/issues/2001)) ([0126b4f](https://github.com/typescript-eslint/typescript-eslint/commit/0126b4f56f9197d561e90b09962ccceb4f88bc41))
+* **typescript-estree:** align nodes with estree 2020 ([#1389](https://github.com/typescript-eslint/typescript-eslint/issues/1389)) ([aff5b62](https://github.com/typescript-eslint/typescript-eslint/commit/aff5b62044f9b93f2087a1d261e9be3f8d6fd54d))
+* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
+* **typescript-estree:** always return parserServices ([#716](https://github.com/typescript-eslint/typescript-eslint/issues/716)) ([5b23443](https://github.com/typescript-eslint/typescript-eslint/commit/5b23443c48f3f62424db3e742243f3568080b946))
+* **typescript-estree:** handle 3.9's non-null assertion changes ([#2036](https://github.com/typescript-eslint/typescript-eslint/issues/2036)) ([06bec63](https://github.com/typescript-eslint/typescript-eslint/commit/06bec63c56536db070608ab136d2ad57083f0c6a))
+
+
+
+
+
+# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
+
+
+### Features
+
+* **eslint-plugin:** [no-invalid-void-type] allow union of void and `allowInGenericTypeArguments` ([#1960](https://github.com/typescript-eslint/typescript-eslint/issues/1960)) ([1bc105a](https://github.com/typescript-eslint/typescript-eslint/commit/1bc105a2c6ae3fde9596f0419fed0de699dc57c7))
+* **eslint-plugin:** [restrict-template-expressions] improve error message ([#1926](https://github.com/typescript-eslint/typescript-eslint/issues/1926)) ([1af59ba](https://github.com/typescript-eslint/typescript-eslint/commit/1af59ba8ac0ceabb008d9c61556acf7db0a1d352))
+* **experimental-utils:** add `suggestion` property for rule  modules ([#2033](https://github.com/typescript-eslint/typescript-eslint/issues/2033)) ([f42a5b0](https://github.com/typescript-eslint/typescript-eslint/commit/f42a5b09ebfa173f418a99c552b0cbe221567194))
+
+
+
+
+
+# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
+
+
+### Features
+
+* **eslint-plugin:** add extension rule `lines-between-class-members` ([#1684](https://github.com/typescript-eslint/typescript-eslint/issues/1684)) ([08f93e6](https://github.com/typescript-eslint/typescript-eslint/commit/08f93e69347a8e7f3a7e8a1455bb5d069c2faeef))
+
+
+
+
+
+# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-base-to-string] support boolean in unions ([#1979](https://github.com/typescript-eslint/typescript-eslint/issues/1979)) ([6987ecc](https://github.com/typescript-eslint/typescript-eslint/commit/6987ecc1dacfb45c0f8ed3e81d08aa708eb96ad1))
+* **eslint-plugin:** [no-type-alias] handle readonly types in aliases ([#1990](https://github.com/typescript-eslint/typescript-eslint/issues/1990)) ([56d9870](https://github.com/typescript-eslint/typescript-eslint/commit/56d987070f83d1b6410b04750b20a761fd793073))
+* **eslint-plugin:** [no-unused-expressions] inherit `messages` from base rule ([#1992](https://github.com/typescript-eslint/typescript-eslint/issues/1992)) ([51ca404](https://github.com/typescript-eslint/typescript-eslint/commit/51ca404af645eed194269ab7f8f67b97bd52e32d))
+
+
+### Features
+
+* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
+
+
+
+
+
+# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [dot-notation] handle missing declarations ([#1947](https://github.com/typescript-eslint/typescript-eslint/issues/1947)) ([383f931](https://github.com/typescript-eslint/typescript-eslint/commit/383f93182599c00e231a0f0d36575ca0e19369a6))
+* **eslint-plugin:** [method-signature-style] fix overloaded methods to an intersection type ([#1966](https://github.com/typescript-eslint/typescript-eslint/issues/1966)) ([7f3fba3](https://github.com/typescript-eslint/typescript-eslint/commit/7f3fba348d432d7637e1c737df943ee1f9105062))
+* **eslint-plugin:** [return-await] await in a normal function ([#1962](https://github.com/typescript-eslint/typescript-eslint/issues/1962)) ([f82fd7b](https://github.com/typescript-eslint/typescript-eslint/commit/f82fd7bb81f986c4861d0b4e2ecdb0c496d7a602))
+* **eslint-plugin:** [unbound-method] false positives for unary expressions ([#1964](https://github.com/typescript-eslint/typescript-eslint/issues/1964)) ([b35070e](https://github.com/typescript-eslint/typescript-eslint/commit/b35070ec6f84ad5ce606386cdb6eeb91488dfdd7))
+* **eslint-plugin:** no-base-to-string boolean expression detect ([#1969](https://github.com/typescript-eslint/typescript-eslint/issues/1969)) ([f78f13a](https://github.com/typescript-eslint/typescript-eslint/commit/f78f13aedd59d5b5880903d48c779a6c50fd937e))
+
+
+### Features
+
+* **eslint-plugin:** [member-ordering] add decorators support ([#1870](https://github.com/typescript-eslint/typescript-eslint/issues/1870)) ([f7ec192](https://github.com/typescript-eslint/typescript-eslint/commit/f7ec1920607cb8eec8020b08cd7247de0bf19ce1))
+* **eslint-plugin:** [prefer-optional-chain] added option to convert to suggestion fixer ([#1965](https://github.com/typescript-eslint/typescript-eslint/issues/1965)) ([2f0824b](https://github.com/typescript-eslint/typescript-eslint/commit/2f0824b0a41f3043b6242fc1d49faae540abaf22))
+* **eslint-plugin:** new extended rule 'no-invalid-this' ([#1823](https://github.com/typescript-eslint/typescript-eslint/issues/1823)) ([b18bc35](https://github.com/typescript-eslint/typescript-eslint/commit/b18bc357507337b9725f8d9c1b549513075a0da5))
+* **experimental-utils:** expose our RuleTester extension ([#1948](https://github.com/typescript-eslint/typescript-eslint/issues/1948)) ([2dd1638](https://github.com/typescript-eslint/typescript-eslint/commit/2dd1638aaa2658ba99b2341861146b586f489121))
+
+
+
+
+
+# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [prefer-string-starts-ends-with] check for negative start index in slice ([#1920](https://github.com/typescript-eslint/typescript-eslint/issues/1920)) ([ed2bd60](https://github.com/typescript-eslint/typescript-eslint/commit/ed2bd6067f74ae33e36a084719bb91efedfba599))
+* **eslint-plugin:** fix no-base-to-string boolean literal check ([#1850](https://github.com/typescript-eslint/typescript-eslint/issues/1850)) ([2f45e99](https://github.com/typescript-eslint/typescript-eslint/commit/2f45e9992a8f12b6233716e77a6159f9cea2c879))
+
+
+### Features
+
+* **eslint-plugin:** add extension rule `dot-notation` ([#1867](https://github.com/typescript-eslint/typescript-eslint/issues/1867)) ([a85c3e1](https://github.com/typescript-eslint/typescript-eslint/commit/a85c3e1515d735b6c245cc658cdaec6deb05d630))
+* **eslint-plugin:** create `no-invalid-void-type` rule ([#1847](https://github.com/typescript-eslint/typescript-eslint/issues/1847)) ([f667ff1](https://github.com/typescript-eslint/typescript-eslint/commit/f667ff1708d4ed28b7ea5beea742889da69a76d9))
+
+
+
+
+
+# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-base-to-string] soft remove `ignoreTaggedTemplateExpressions` option ([#1916](https://github.com/typescript-eslint/typescript-eslint/issues/1916)) ([369978e](https://github.com/typescript-eslint/typescript-eslint/commit/369978e9685bacb3e3882b0510ff06eaf8df4ca1))
+
+
+### Features
+
+* **eslint-plugin:** [no-floating-promise] add option to ignore IIFEs ([#1799](https://github.com/typescript-eslint/typescript-eslint/issues/1799)) ([cea51bf](https://github.com/typescript-eslint/typescript-eslint/commit/cea51bf130d6d3c2935f5e2dcc468196f2ad9d00))
+* **eslint-plugin:** [restrict-template-expressions] add support for intersection types ([#1803](https://github.com/typescript-eslint/typescript-eslint/issues/1803)) ([cc70e4f](https://github.com/typescript-eslint/typescript-eslint/commit/cc70e4fbadd0b15fd6af913a2e1e2ddd346fa558))
+* **eslint-plugin:** add extension rule `init-declarations` ([#1814](https://github.com/typescript-eslint/typescript-eslint/issues/1814)) ([b01f5e7](https://github.com/typescript-eslint/typescript-eslint/commit/b01f5e778ac28e0797a3734fc58d025bb224f418))
+* **eslint-plugin:** add extension rule `keyword-spacing` ([#1739](https://github.com/typescript-eslint/typescript-eslint/issues/1739)) ([c5106dd](https://github.com/typescript-eslint/typescript-eslint/commit/c5106dd4bf2bc8846cc39aa8bb50c33bec026d4d))
+
+
+
+
+
+# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [method-signature-style] handle multiline params ([#1861](https://github.com/typescript-eslint/typescript-eslint/issues/1861)) ([5832a86](https://github.com/typescript-eslint/typescript-eslint/commit/5832a8643bbe174ec02df5966bb333e506e45f5d))
+* **eslint-plugin:** [no-empty-interface] use suggestion fixer for ambient contexts ([#1880](https://github.com/typescript-eslint/typescript-eslint/issues/1880)) ([62b2278](https://github.com/typescript-eslint/typescript-eslint/commit/62b2278aec0011c93eae17bed8b278114d3379a2))
+* **eslint-plugin:** [unbound-method] false positive on property function initializer ([#1890](https://github.com/typescript-eslint/typescript-eslint/issues/1890)) ([f1c3b18](https://github.com/typescript-eslint/typescript-eslint/commit/f1c3b18f7aadc81f7dca7aa32aa1a8fe424e04e7))
+* **eslint-plugin:** [unbound-method] ignore assignments _to_ methods ([#1736](https://github.com/typescript-eslint/typescript-eslint/issues/1736)) ([6b4680b](https://github.com/typescript-eslint/typescript-eslint/commit/6b4680b6e7343d9d98fa1de170f387a36d98b73e))
+* **eslint-plugin:** no-empty-interface autofix ([#1865](https://github.com/typescript-eslint/typescript-eslint/issues/1865)) ([829a2f7](https://github.com/typescript-eslint/typescript-eslint/commit/829a2f728f876d356908e2338c2d6620e58f9943)), closes [#1864](https://github.com/typescript-eslint/typescript-eslint/issues/1864)
+* **eslint-plugin:** use `isTypeArrayTypeOrUnionOfArrayTypes` util for checking if type is array ([#1728](https://github.com/typescript-eslint/typescript-eslint/issues/1728)) ([05030f8](https://github.com/typescript-eslint/typescript-eslint/commit/05030f8d2bd5a50e95053bc61380891da71cc567))
+
+
+### Features
+
+* **eslint-plugin:** [ban-ts-comment] support `ts-expect-error` ([#1706](https://github.com/typescript-eslint/typescript-eslint/issues/1706)) ([469cff3](https://github.com/typescript-eslint/typescript-eslint/commit/469cff332c041f38f60de052769287342455cff1))
+* **eslint-plugin:** [consistent-type-assertions] always allow `const` assertions ([#1713](https://github.com/typescript-eslint/typescript-eslint/issues/1713)) ([af2c00d](https://github.com/typescript-eslint/typescript-eslint/commit/af2c00de62f7e31eaeb88996ebf3f330cc8473b9))
+* **eslint-plugin:** [explicit-function-return-type] add option to allow concise arrows that start with void ([#1732](https://github.com/typescript-eslint/typescript-eslint/issues/1732)) ([2e9c202](https://github.com/typescript-eslint/typescript-eslint/commit/2e9c2028a8a0b226e0f87d4bcc997fa259ca3ebd))
+* **eslint-plugin:** [explicit-module-boundary-types] add optio… ([#1778](https://github.com/typescript-eslint/typescript-eslint/issues/1778)) ([3eee804](https://github.com/typescript-eslint/typescript-eslint/commit/3eee804461d017ea6189cd7f64fcd473623684b4))
+* **eslint-plugin:** [no-base-to-string] add option to ignore tagged templates ([#1763](https://github.com/typescript-eslint/typescript-eslint/issues/1763)) ([f5edb99](https://github.com/typescript-eslint/typescript-eslint/commit/f5edb9938c33f8b68f026eba00db3abe9359ced3))
+* **eslint-plugin:** [restrict-template-expressions] add option `allowAny` ([#1762](https://github.com/typescript-eslint/typescript-eslint/issues/1762)) ([d44c0f9](https://github.com/typescript-eslint/typescript-eslint/commit/d44c0f9bed2404ca00b020b35fd825929e213398))
+* **eslint-plugin:** add rule `prefer-reduce-type-parameter` ([#1707](https://github.com/typescript-eslint/typescript-eslint/issues/1707)) ([c92d240](https://github.com/typescript-eslint/typescript-eslint/commit/c92d240e49113779053eac32038382b282812afc))
+* **eslint-plugin:** add rule `prefer-ts-expect-error` ([#1705](https://github.com/typescript-eslint/typescript-eslint/issues/1705)) ([7021f21](https://github.com/typescript-eslint/typescript-eslint/commit/7021f2151a25db2a8edf17e06cd6f21e90761ec8))
+* **eslint-plugin:** add rule no-unsafe-assignment ([#1694](https://github.com/typescript-eslint/typescript-eslint/issues/1694)) ([a49b860](https://github.com/typescript-eslint/typescript-eslint/commit/a49b860cbbb2c7d718b99f561e2fb6eaadf16f17))
+
+
+
+
+
+# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-throw-literal] fix crash caused by getBaseTypes ([#1830](https://github.com/typescript-eslint/typescript-eslint/issues/1830)) ([9d53c76](https://github.com/typescript-eslint/typescript-eslint/commit/9d53c761983dd964109b9f13eb9bfe20caf9defb))
+* **eslint-plugin:** [no-unsafe-call] fix incorrect selector ([#1826](https://github.com/typescript-eslint/typescript-eslint/issues/1826)) ([8ec53a3](https://github.com/typescript-eslint/typescript-eslint/commit/8ec53a3579fcb59cdffea0c60fbb755d056f4c8a))
+* **eslint-plugin:** [require-await] handle async generators ([#1782](https://github.com/typescript-eslint/typescript-eslint/issues/1782)) ([9642d9d](https://github.com/typescript-eslint/typescript-eslint/commit/9642d9dce693befac89a4e9d8bf8dd18f4361e2a))
+* **eslint-plugin:** no-explicit-any constructor functions (& mo… ([#1711](https://github.com/typescript-eslint/typescript-eslint/issues/1711)) ([ab8572e](https://github.com/typescript-eslint/typescript-eslint/commit/ab8572e30e14ebda91c8437be5ee35e7dc9add2e))
+
+
+### Features
+
+* **eslint-plugin:** new rule method-signature-style ([#1685](https://github.com/typescript-eslint/typescript-eslint/issues/1685)) ([c49d771](https://github.com/typescript-eslint/typescript-eslint/commit/c49d771ba62f1a21d3c1aec106341daddfcd3c9a))
+* **eslint-plugin:** sort members alphabetically ([#263](https://github.com/typescript-eslint/typescript-eslint/issues/263)) ([485e902](https://github.com/typescript-eslint/typescript-eslint/commit/485e90213a0f8baac0587f7d56925448883fc5bd))
+* **eslint-plugin-internal:** add plugin-test-formatting rule ([#1821](https://github.com/typescript-eslint/typescript-eslint/issues/1821)) ([9b0023a](https://github.com/typescript-eslint/typescript-eslint/commit/9b0023a4996ecdd7dfcb30abd1678091a78f3064))
+
+
+
+
+
+# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-explicit-any] error with ignoreRestArgs ([#1796](https://github.com/typescript-eslint/typescript-eslint/issues/1796)) ([638d84d](https://github.com/typescript-eslint/typescript-eslint/commit/638d84ddd77d07117b3ec7c5431f3b0e44b1995d))
+* **eslint-plugin:** [no-unsafe-call] allow import expressions ([#1800](https://github.com/typescript-eslint/typescript-eslint/issues/1800)) ([4fa7107](https://github.com/typescript-eslint/typescript-eslint/commit/4fa710754ecc412b65ac3864fe0c7857c254ac1b))
+* **eslint-plugin:** [no-unsafe-return] error with <TS3.7 ([#1815](https://github.com/typescript-eslint/typescript-eslint/issues/1815)) ([f3160b4](https://github.com/typescript-eslint/typescript-eslint/commit/f3160b471f8247e157555b6cf5b40a1f6ccdc233))
+
+
+
+
+
+# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [quotes] false positive with backtick in import equals statement ([#1769](https://github.com/typescript-eslint/typescript-eslint/issues/1769)) ([199863d](https://github.com/typescript-eslint/typescript-eslint/commit/199863d35cb36bdb7178b8116d146258506644c7))
+* **eslint-plugin:** fix message of no-base-to-string ([#1755](https://github.com/typescript-eslint/typescript-eslint/issues/1755)) ([6646959](https://github.com/typescript-eslint/typescript-eslint/commit/6646959b255b08afe5175bba6621bad11b9e1d5e))
+
+
+### Features
+
+* **eslint-plugin:** [no-unnec-type-assertion] allow const assertions ([#1741](https://github.com/typescript-eslint/typescript-eslint/issues/1741)) ([f76a1b3](https://github.com/typescript-eslint/typescript-eslint/commit/f76a1b3e63afda9f239e46f4ad5b36c1d7a6e8da))
+* **eslint-plugin:** [no-unnecessary-condition] ignore basic array indexing false positives ([#1534](https://github.com/typescript-eslint/typescript-eslint/issues/1534)) ([2b9603d](https://github.com/typescript-eslint/typescript-eslint/commit/2b9603d868c57556d8cd6087685e798d74cb6f26))
+* **eslint-plugin:** add `class-literal-property-style` rule ([#1582](https://github.com/typescript-eslint/typescript-eslint/issues/1582)) ([b2dbd89](https://github.com/typescript-eslint/typescript-eslint/commit/b2dbd890a5bef81aa6978d68c166457838ee04a1))
+* **experimental-utils:** expose ast utility functions ([#1670](https://github.com/typescript-eslint/typescript-eslint/issues/1670)) ([3eb5d45](https://github.com/typescript-eslint/typescript-eslint/commit/3eb5d4525e95c8ab990f55588b8d830a02ce5a9c))
+
+
+
+
+
+# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
+
+**Note:** Version bump only for package @typescript-eslint/eslint-plugin
+
+
+
+
+
+# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [prefer-readonly-parameter-types] handle recursive types ([#1672](https://github.com/typescript-eslint/typescript-eslint/issues/1672)) ([e5db36f](https://github.com/typescript-eslint/typescript-eslint/commit/e5db36f140b6463965858ad4ed77f71a9a00c5a7)), closes [#1665](https://github.com/typescript-eslint/typescript-eslint/issues/1665)
+* **eslint-plugin:** [type-annotation-spacing] handle constructor types ([#1664](https://github.com/typescript-eslint/typescript-eslint/issues/1664)) ([fbf1640](https://github.com/typescript-eslint/typescript-eslint/commit/fbf1640c5ab67770a1ace5a9bad2bddfa35bd88d)), closes [#1663](https://github.com/typescript-eslint/typescript-eslint/issues/1663)
+* **eslint-plugin:** fix autofixer for computed properties ([#1662](https://github.com/typescript-eslint/typescript-eslint/issues/1662)) ([ba22ea7](https://github.com/typescript-eslint/typescript-eslint/commit/ba22ea7f604b236828ce4dcff75831ec1da01ec1))
+* **eslint-plugin:** fix placeholder in `ban-ts-comment` ([#1703](https://github.com/typescript-eslint/typescript-eslint/issues/1703)) ([144345c](https://github.com/typescript-eslint/typescript-eslint/commit/144345c4774c0664752116ef2cf28f46cf52052f))
+
+
+### Features
+
+* **eslint-plugin:** [no-unsafe-call] support tagged templates ([#1680](https://github.com/typescript-eslint/typescript-eslint/issues/1680)) ([55a58ff](https://github.com/typescript-eslint/typescript-eslint/commit/55a58ff0ae0434970537657ec2cb0bc7ab64c13d))
+* **eslint-plugin:** [no-unsafe-member-access] report any typed… ([#1683](https://github.com/typescript-eslint/typescript-eslint/issues/1683)) ([1543117](https://github.com/typescript-eslint/typescript-eslint/commit/1543117874047726a6bc1b71bd2f68779f266591))
+* **eslint-plugin:** add rule no-unsafe-call ([#1647](https://github.com/typescript-eslint/typescript-eslint/issues/1647)) ([91423e4](https://github.com/typescript-eslint/typescript-eslint/commit/91423e49d19163fae7b03cbc79bb3cd3db8c2c6d))
+* **eslint-plugin:** add rule no-unsafe-member-access ([#1643](https://github.com/typescript-eslint/typescript-eslint/issues/1643)) ([608a750](https://github.com/typescript-eslint/typescript-eslint/commit/608a750d53c39e892fdb982aeea9e4f9c5e2382d))
+* **eslint-plugin:** add rule no-unsafe-return ([#1644](https://github.com/typescript-eslint/typescript-eslint/issues/1644)) ([cfc3ef1](https://github.com/typescript-eslint/typescript-eslint/commit/cfc3ef10941f46cdbc084e99e1d48d6d3a928903))
+
+
+
+
+
 # [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
 
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/README.md b/node_modules/@typescript-eslint/eslint-plugin/README.md
index 19ee263..37a27ca 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/README.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/README.md
@@ -1,11 +1,11 @@
 <h1 align="center">ESLint Plugin TypeScript</h1>
 
+<p align="center">An ESLint plugin which provides lint rules for TypeScript codebases.</p>
+
 <p align="center">
-    <a href="https://dev.azure.com/typescript-eslint/TypeScript%20ESLint/_build/latest?definitionId=1&branchName=master"><img src="https://img.shields.io/azure-devops/build/typescript-eslint/TypeScript%20ESLint/1/master.svg?label=%F0%9F%9A%80%20Azure%20Pipelines&style=flat-square" alt="Azure Pipelines"/></a>
-    <a href="https://github.com/typescript-eslint/typescript-eslint/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/typescript-estree.svg?style=flat-square" alt="GitHub license" /></a>
+    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
     <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/v/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Version" /></a>
     <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/dm/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Downloads" /></a>
-    <a href="http://commitizen.github.io/cz-cli/"><img src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square" alt="Commitizen friendly" /></a>
 </p>
 
 ## Getting Started
@@ -19,10 +19,18 @@
 
 ### Installation
 
-Make sure you have TypeScript and [`@typescript-eslint/parser`](../parser) installed, then install the plugin:
+Make sure you have TypeScript and [`@typescript-eslint/parser`](../parser) installed:
 
-```sh
-yarn add -D @typescript-eslint/eslint-plugin
+```bash
+$ yarn add -D typescript @typescript-eslint/parser
+$ npm i --save-dev typescript @typescript-eslint/parser
+```
+
+Then install the plugin:
+
+```bash
+$ yarn add -D @typescript-eslint/eslint-plugin
+$ npm i --save-dev @typescript-eslint/eslint-plugin
 ```
 
 It is important that you use the same version number for `@typescript-eslint/parser` and `@typescript-eslint/eslint-plugin`.
@@ -55,15 +63,11 @@
 
 ### Recommended Configs
 
-You can also use [`eslint:recommended`](https://eslint.org/docs/rules/) (the set of rules which are recommended for all projects by the ESLint Team) with this plugin. As noted in the root README, not all ESLint core rules are compatible with TypeScript, so you need to add both `eslint:recommended` and `plugin:@typescript-eslint/eslint-recommended` (which will adjust the one from ESLint appropriately for TypeScript) to your config:
+You can also use [`eslint:recommended`](https://eslint.org/docs/rules/) (the set of rules which are recommended for all projects by the ESLint Team) with this plugin:
 
 ```json
 {
-  "extends": [
-    "eslint:recommended",
-    "plugin:@typescript-eslint/eslint-recommended",
-    "plugin:@typescript-eslint/recommended"
-  ]
+  "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"]
 }
 ```
 
@@ -75,7 +79,6 @@
 {
   "extends": [
     "eslint:recommended",
-    "plugin:@typescript-eslint/eslint-recommended",
     "plugin:@typescript-eslint/recommended",
     "plugin:@typescript-eslint/recommended-requiring-type-checking"
   ]
@@ -97,30 +100,37 @@
 | [`@typescript-eslint/adjacent-overload-signatures`](./docs/rules/adjacent-overload-signatures.md)                     | Require that member overloads be consecutive                                                                            | :heavy_check_mark: |          |                   |
 | [`@typescript-eslint/array-type`](./docs/rules/array-type.md)                                                         | Requires using either `T[]` or `Array<T>` for arrays                                                                    |                    | :wrench: |                   |
 | [`@typescript-eslint/await-thenable`](./docs/rules/await-thenable.md)                                                 | Disallows awaiting a value that is not a Thenable                                                                       | :heavy_check_mark: |          | :thought_balloon: |
-| [`@typescript-eslint/ban-ts-comment`](./docs/rules/ban-ts-comment.md)                                                 | Bans `// @ts-<directive>` comments from being used                                                                      |                    |          |                   |
+| [`@typescript-eslint/ban-ts-comment`](./docs/rules/ban-ts-comment.md)                                                 | Bans `// @ts-<directive>` comments from being used or requires descriptions after directive                             | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/ban-tslint-comment`](./docs/rules/ban-tslint-comment.md)                                         | Bans `// tslint:<rule-flag>` comments from being used                                                                   |                    | :wrench: |                   |
 | [`@typescript-eslint/ban-types`](./docs/rules/ban-types.md)                                                           | Bans specific types from being used                                                                                     | :heavy_check_mark: | :wrench: |                   |
-| [`@typescript-eslint/consistent-type-assertions`](./docs/rules/consistent-type-assertions.md)                         | Enforces consistent usage of type assertions                                                                            | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/class-literal-property-style`](./docs/rules/class-literal-property-style.md)                     | Ensures that literals on classes are exposed in a consistent style                                                      |                    | :wrench: |                   |
+| [`@typescript-eslint/consistent-type-assertions`](./docs/rules/consistent-type-assertions.md)                         | Enforces consistent usage of type assertions                                                                            |                    |          |                   |
 | [`@typescript-eslint/consistent-type-definitions`](./docs/rules/consistent-type-definitions.md)                       | Consistent with type definition either `interface` or `type`                                                            |                    | :wrench: |                   |
-| [`@typescript-eslint/explicit-function-return-type`](./docs/rules/explicit-function-return-type.md)                   | Require explicit return types on functions and class methods                                                            | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/consistent-type-imports`](./docs/rules/consistent-type-imports.md)                               | Enforces consistent usage of type imports                                                                               |                    | :wrench: |                   |
+| [`@typescript-eslint/explicit-function-return-type`](./docs/rules/explicit-function-return-type.md)                   | Require explicit return types on functions and class methods                                                            |                    |          |                   |
 | [`@typescript-eslint/explicit-member-accessibility`](./docs/rules/explicit-member-accessibility.md)                   | Require explicit accessibility modifiers on class properties and methods                                                |                    | :wrench: |                   |
-| [`@typescript-eslint/explicit-module-boundary-types`](./docs/rules/explicit-module-boundary-types.md)                 | Require explicit return and argument types on exported functions' and classes' public class methods                     |                    |          |                   |
-| [`@typescript-eslint/member-delimiter-style`](./docs/rules/member-delimiter-style.md)                                 | Require a specific member delimiter style for interfaces and type literals                                              | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/explicit-module-boundary-types`](./docs/rules/explicit-module-boundary-types.md)                 | Require explicit return and argument types on exported functions' and classes' public class methods                     | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/member-delimiter-style`](./docs/rules/member-delimiter-style.md)                                 | Require a specific member delimiter style for interfaces and type literals                                              |                    | :wrench: |                   |
 | [`@typescript-eslint/member-ordering`](./docs/rules/member-ordering.md)                                               | Require a consistent member declaration order                                                                           |                    |          |                   |
+| [`@typescript-eslint/method-signature-style`](./docs/rules/method-signature-style.md)                                 | Enforces using a particular method signature syntax.                                                                    |                    | :wrench: |                   |
 | [`@typescript-eslint/naming-convention`](./docs/rules/naming-convention.md)                                           | Enforces naming conventions for everything across a codebase                                                            |                    |          | :thought_balloon: |
 | [`@typescript-eslint/no-base-to-string`](./docs/rules/no-base-to-string.md)                                           | Requires that `.toString()` is only called on objects which provide useful information when stringified                 |                    |          | :thought_balloon: |
+| [`@typescript-eslint/no-confusing-non-null-assertion`](./docs/rules/no-confusing-non-null-assertion.md)               | Disallow non-null assertion in locations that may be confusing                                                          |                    | :wrench: |                   |
 | [`@typescript-eslint/no-dynamic-delete`](./docs/rules/no-dynamic-delete.md)                                           | Disallow the delete operator with computed key expressions                                                              |                    | :wrench: |                   |
 | [`@typescript-eslint/no-empty-interface`](./docs/rules/no-empty-interface.md)                                         | Disallow the declaration of empty interfaces                                                                            | :heavy_check_mark: | :wrench: |                   |
 | [`@typescript-eslint/no-explicit-any`](./docs/rules/no-explicit-any.md)                                               | Disallow usage of the `any` type                                                                                        | :heavy_check_mark: | :wrench: |                   |
-| [`@typescript-eslint/no-extra-non-null-assertion`](./docs/rules/no-extra-non-null-assertion.md)                       | Disallow extra non-null assertion                                                                                       |                    | :wrench: |                   |
+| [`@typescript-eslint/no-extra-non-null-assertion`](./docs/rules/no-extra-non-null-assertion.md)                       | Disallow extra non-null assertion                                                                                       | :heavy_check_mark: | :wrench: |                   |
 | [`@typescript-eslint/no-extraneous-class`](./docs/rules/no-extraneous-class.md)                                       | Forbids the use of classes as namespaces                                                                                |                    |          |                   |
-| [`@typescript-eslint/no-floating-promises`](./docs/rules/no-floating-promises.md)                                     | Requires Promise-like values to be handled appropriately                                                                |                    |          | :thought_balloon: |
+| [`@typescript-eslint/no-floating-promises`](./docs/rules/no-floating-promises.md)                                     | Requires Promise-like values to be handled appropriately                                                                | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/no-for-in-array`](./docs/rules/no-for-in-array.md)                                               | Disallow iterating over an array with a for-in loop                                                                     | :heavy_check_mark: |          | :thought_balloon: |
-| [`@typescript-eslint/no-implied-eval`](./docs/rules/no-implied-eval.md)                                               | Disallow the use of `eval()`-like methods                                                                               |                    |          | :thought_balloon: |
+| [`@typescript-eslint/no-implicit-any-catch`](./docs/rules/no-implicit-any-catch.md)                                   | Disallow usage of the implicit `any` type in catch clauses                                                              |                    | :wrench: |                   |
+| [`@typescript-eslint/no-implied-eval`](./docs/rules/no-implied-eval.md)                                               | Disallow the use of `eval()`-like methods                                                                               | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/no-inferrable-types`](./docs/rules/no-inferrable-types.md)                                       | Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean            | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/no-invalid-void-type`](./docs/rules/no-invalid-void-type.md)                                     | Disallows usage of `void` type outside of generic or return types                                                       |                    |          |                   |
 | [`@typescript-eslint/no-misused-new`](./docs/rules/no-misused-new.md)                                                 | Enforce valid definition of `new` and `constructor`                                                                     | :heavy_check_mark: |          |                   |
 | [`@typescript-eslint/no-misused-promises`](./docs/rules/no-misused-promises.md)                                       | Avoid using promises in places not designed to handle them                                                              | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/no-namespace`](./docs/rules/no-namespace.md)                                                     | Disallow the use of custom TypeScript modules and namespaces                                                            | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/no-non-null-asserted-optional-chain`](./docs/rules/no-non-null-asserted-optional-chain.md)       | Disallows using a non-null assertion after an optional chain expression                                                 |                    |          |                   |
+| [`@typescript-eslint/no-non-null-asserted-optional-chain`](./docs/rules/no-non-null-asserted-optional-chain.md)       | Disallows using a non-null assertion after an optional chain expression                                                 | :heavy_check_mark: |          |                   |
 | [`@typescript-eslint/no-non-null-assertion`](./docs/rules/no-non-null-assertion.md)                                   | Disallows non-null assertions using the `!` postfix operator                                                            | :heavy_check_mark: |          |                   |
 | [`@typescript-eslint/no-parameter-properties`](./docs/rules/no-parameter-properties.md)                               | Disallow the use of parameter properties in class constructors                                                          |                    |          |                   |
 | [`@typescript-eslint/no-require-imports`](./docs/rules/no-require-imports.md)                                         | Disallows invocation of `require()`                                                                                     |                    |          |                   |
@@ -132,27 +142,34 @@
 | [`@typescript-eslint/no-unnecessary-qualifier`](./docs/rules/no-unnecessary-qualifier.md)                             | Warns when a namespace qualifier is unnecessary                                                                         |                    | :wrench: | :thought_balloon: |
 | [`@typescript-eslint/no-unnecessary-type-arguments`](./docs/rules/no-unnecessary-type-arguments.md)                   | Enforces that type arguments will not be used if not required                                                           |                    | :wrench: | :thought_balloon: |
 | [`@typescript-eslint/no-unnecessary-type-assertion`](./docs/rules/no-unnecessary-type-assertion.md)                   | Warns if a type assertion does not change the type of an expression                                                     | :heavy_check_mark: | :wrench: | :thought_balloon: |
-| [`@typescript-eslint/no-unused-vars-experimental`](./docs/rules/no-unused-vars-experimental.md)                       | Disallow unused variables and arguments                                                                                 |                    |          | :thought_balloon: |
+| [`@typescript-eslint/no-unsafe-assignment`](./docs/rules/no-unsafe-assignment.md)                                     | Disallows assigning any to variables and properties                                                                     | :heavy_check_mark: |          | :thought_balloon: |
+| [`@typescript-eslint/no-unsafe-call`](./docs/rules/no-unsafe-call.md)                                                 | Disallows calling an any type value                                                                                     | :heavy_check_mark: |          | :thought_balloon: |
+| [`@typescript-eslint/no-unsafe-member-access`](./docs/rules/no-unsafe-member-access.md)                               | Disallows member access on any typed variables                                                                          | :heavy_check_mark: |          | :thought_balloon: |
+| [`@typescript-eslint/no-unsafe-return`](./docs/rules/no-unsafe-return.md)                                             | Disallows returning any from a function                                                                                 | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/no-var-requires`](./docs/rules/no-var-requires.md)                                               | Disallows the use of require statements except in import statements                                                     | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/prefer-as-const`](./docs/rules/prefer-as-const.md)                                               | Prefer usage of `as const` over literal type                                                                            |                    | :wrench: |                   |
+| [`@typescript-eslint/prefer-as-const`](./docs/rules/prefer-as-const.md)                                               | Prefer usage of `as const` over literal type                                                                            | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/prefer-enum-initializers`](./docs/rules/prefer-enum-initializers.md)                             | Prefer initializing each enums member value                                                                             |                    |          |                   |
 | [`@typescript-eslint/prefer-for-of`](./docs/rules/prefer-for-of.md)                                                   | Prefer a ‘for-of’ loop over a standard ‘for’ loop if the index is only used to access the array being iterated          |                    |          |                   |
 | [`@typescript-eslint/prefer-function-type`](./docs/rules/prefer-function-type.md)                                     | Use function types instead of interfaces with call signatures                                                           |                    | :wrench: |                   |
-| [`@typescript-eslint/prefer-includes`](./docs/rules/prefer-includes.md)                                               | Enforce `includes` method over `indexOf` method                                                                         | :heavy_check_mark: | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/prefer-includes`](./docs/rules/prefer-includes.md)                                               | Enforce `includes` method over `indexOf` method                                                                         |                    | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/prefer-literal-enum-member`](./docs/rules/prefer-literal-enum-member.md)                         | Require that all enum members be literal values to prevent unintended enum member name shadow issues                    |                    |          |                   |
 | [`@typescript-eslint/prefer-namespace-keyword`](./docs/rules/prefer-namespace-keyword.md)                             | Require the use of the `namespace` keyword instead of the `module` keyword to declare custom TypeScript modules         | :heavy_check_mark: | :wrench: |                   |
-| [`@typescript-eslint/prefer-nullish-coalescing`](./docs/rules/prefer-nullish-coalescing.md)                           | Enforce the usage of the nullish coalescing operator instead of logical chaining                                        |                    | :wrench: | :thought_balloon: |
-| [`@typescript-eslint/prefer-optional-chain`](./docs/rules/prefer-optional-chain.md)                                   | Prefer using concise optional chain expressions instead of chained logical ands                                         |                    | :wrench: |                   |
+| [`@typescript-eslint/prefer-nullish-coalescing`](./docs/rules/prefer-nullish-coalescing.md)                           | Enforce the usage of the nullish coalescing operator instead of logical chaining                                        |                    |          | :thought_balloon: |
+| [`@typescript-eslint/prefer-optional-chain`](./docs/rules/prefer-optional-chain.md)                                   | Prefer using concise optional chain expressions instead of chained logical ands                                         |                    |          |                   |
 | [`@typescript-eslint/prefer-readonly`](./docs/rules/prefer-readonly.md)                                               | Requires that private members are marked as `readonly` if they're never modified outside of the constructor             |                    | :wrench: | :thought_balloon: |
 | [`@typescript-eslint/prefer-readonly-parameter-types`](./docs/rules/prefer-readonly-parameter-types.md)               | Requires that function parameters are typed as readonly to prevent accidental mutation of inputs                        |                    |          | :thought_balloon: |
+| [`@typescript-eslint/prefer-reduce-type-parameter`](./docs/rules/prefer-reduce-type-parameter.md)                     | Prefer using type parameter when calling `Array#reduce` instead of casting                                              |                    | :wrench: | :thought_balloon: |
 | [`@typescript-eslint/prefer-regexp-exec`](./docs/rules/prefer-regexp-exec.md)                                         | Enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided                              | :heavy_check_mark: |          | :thought_balloon: |
-| [`@typescript-eslint/prefer-string-starts-ends-with`](./docs/rules/prefer-string-starts-ends-with.md)                 | Enforce the use of `String#startsWith` and `String#endsWith` instead of other equivalent methods of checking substrings | :heavy_check_mark: | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/prefer-string-starts-ends-with`](./docs/rules/prefer-string-starts-ends-with.md)                 | Enforce the use of `String#startsWith` and `String#endsWith` instead of other equivalent methods of checking substrings |                    | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/prefer-ts-expect-error`](./docs/rules/prefer-ts-expect-error.md)                                 | Recommends using `@ts-expect-error` over `@ts-ignore`                                                                   |                    | :wrench: |                   |
 | [`@typescript-eslint/promise-function-async`](./docs/rules/promise-function-async.md)                                 | Requires any function or method that returns a Promise to be marked async                                               |                    |          | :thought_balloon: |
 | [`@typescript-eslint/require-array-sort-compare`](./docs/rules/require-array-sort-compare.md)                         | Requires `Array#sort` calls to always provide a `compareFunction`                                                       |                    |          | :thought_balloon: |
-| [`@typescript-eslint/restrict-plus-operands`](./docs/rules/restrict-plus-operands.md)                                 | When adding two variables, operands must both be of type number or of type string                                       |                    |          | :thought_balloon: |
-| [`@typescript-eslint/restrict-template-expressions`](./docs/rules/restrict-template-expressions.md)                   | Enforce template literal expressions to be of string type                                                               |                    |          | :thought_balloon: |
+| [`@typescript-eslint/restrict-plus-operands`](./docs/rules/restrict-plus-operands.md)                                 | When adding two variables, operands must both be of type number or of type string                                       | :heavy_check_mark: |          | :thought_balloon: |
+| [`@typescript-eslint/restrict-template-expressions`](./docs/rules/restrict-template-expressions.md)                   | Enforce template literal expressions to be of string type                                                               | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/strict-boolean-expressions`](./docs/rules/strict-boolean-expressions.md)                         | Restricts the types allowed in boolean expressions                                                                      |                    |          | :thought_balloon: |
 | [`@typescript-eslint/switch-exhaustiveness-check`](./docs/rules/switch-exhaustiveness-check.md)                       | Exhaustiveness checking in switch with union type                                                                       |                    |          | :thought_balloon: |
 | [`@typescript-eslint/triple-slash-reference`](./docs/rules/triple-slash-reference.md)                                 | Sets preference level for triple slash directives versus ES6-style import declarations                                  | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/type-annotation-spacing`](./docs/rules/type-annotation-spacing.md)                               | Require consistent spacing around type annotations                                                                      | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/type-annotation-spacing`](./docs/rules/type-annotation-spacing.md)                               | Require consistent spacing around type annotations                                                                      |                    | :wrench: |                   |
 | [`@typescript-eslint/typedef`](./docs/rules/typedef.md)                                                               | Requires type annotations to exist                                                                                      |                    |          |                   |
 | [`@typescript-eslint/unbound-method`](./docs/rules/unbound-method.md)                                                 | Enforces unbound methods are called with their expected scope                                                           | :heavy_check_mark: |          | :thought_balloon: |
 | [`@typescript-eslint/unified-signatures`](./docs/rules/unified-signatures.md)                                         | Warns for any two overloads that could be unified into one by using a union or an optional/rest parameter               |                    |          |                   |
@@ -168,28 +185,38 @@
 
 **Key**: :heavy_check_mark: = recommended, :wrench: = fixable, :thought_balloon: = requires type information
 
-| Name                                                                                            | Description                                                                    | :heavy_check_mark: | :wrench: | :thought_balloon: |
-| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------ | -------- | ----------------- |
-| [`@typescript-eslint/brace-style`](./docs/rules/brace-style.md)                                 | Enforce consistent brace style for blocks                                      |                    | :wrench: |                   |
-| [`@typescript-eslint/comma-spacing`](./docs/rules/comma-spacing.md)                             | Enforces consistent spacing before and after commas                            |                    | :wrench: |                   |
-| [`@typescript-eslint/default-param-last`](./docs/rules/default-param-last.md)                   | Enforce default parameters to be last                                          |                    |          |                   |
-| [`@typescript-eslint/func-call-spacing`](./docs/rules/func-call-spacing.md)                     | Require or disallow spacing between function identifiers and their invocations |                    | :wrench: |                   |
-| [`@typescript-eslint/indent`](./docs/rules/indent.md)                                           | Enforce consistent indentation                                                 |                    | :wrench: |                   |
-| [`@typescript-eslint/no-array-constructor`](./docs/rules/no-array-constructor.md)               | Disallow generic `Array` constructors                                          | :heavy_check_mark: | :wrench: |                   |
-| [`@typescript-eslint/no-dupe-class-members`](./docs/rules/no-dupe-class-members.md)             | Disallow duplicate class members                                               |                    |          |                   |
-| [`@typescript-eslint/no-empty-function`](./docs/rules/no-empty-function.md)                     | Disallow empty functions                                                       | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/no-extra-parens`](./docs/rules/no-extra-parens.md)                         | Disallow unnecessary parentheses                                               |                    | :wrench: |                   |
-| [`@typescript-eslint/no-extra-semi`](./docs/rules/no-extra-semi.md)                             | Disallow unnecessary semicolons                                                |                    | :wrench: |                   |
-| [`@typescript-eslint/no-magic-numbers`](./docs/rules/no-magic-numbers.md)                       | Disallow magic numbers                                                         |                    |          |                   |
-| [`@typescript-eslint/no-unused-expressions`](./docs/rules/no-unused-expressions.md)             | Disallow unused expressions                                                    |                    |          |                   |
-| [`@typescript-eslint/no-unused-vars`](./docs/rules/no-unused-vars.md)                           | Disallow unused variables                                                      | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/no-use-before-define`](./docs/rules/no-use-before-define.md)               | Disallow the use of variables before they are defined                          | :heavy_check_mark: |          |                   |
-| [`@typescript-eslint/no-useless-constructor`](./docs/rules/no-useless-constructor.md)           | Disallow unnecessary constructors                                              |                    |          |                   |
-| [`@typescript-eslint/quotes`](./docs/rules/quotes.md)                                           | Enforce the consistent use of either backticks, double, or single quotes       |                    | :wrench: |                   |
-| [`@typescript-eslint/require-await`](./docs/rules/require-await.md)                             | Disallow async functions which have no `await` expression                      | :heavy_check_mark: |          | :thought_balloon: |
-| [`@typescript-eslint/return-await`](./docs/rules/return-await.md)                               | Enforces consistent returning of awaited values                                |                    | :wrench: | :thought_balloon: |
-| [`@typescript-eslint/semi`](./docs/rules/semi.md)                                               | Require or disallow semicolons instead of ASI                                  |                    | :wrench: |                   |
-| [`@typescript-eslint/space-before-function-paren`](./docs/rules/space-before-function-paren.md) | Enforces consistent spacing before function parenthesis                        |                    | :wrench: |                   |
+| Name                                                                                            | Description                                                                          | :heavy_check_mark: | :wrench: | :thought_balloon: |
+| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------ | -------- | ----------------- |
+| [`@typescript-eslint/brace-style`](./docs/rules/brace-style.md)                                 | Enforce consistent brace style for blocks                                            |                    | :wrench: |                   |
+| [`@typescript-eslint/comma-dangle`](./docs/rules/comma-dangle.md)                               | Require or disallow trailing comma                                                   |                    | :wrench: |                   |
+| [`@typescript-eslint/comma-spacing`](./docs/rules/comma-spacing.md)                             | Enforces consistent spacing before and after commas                                  |                    | :wrench: |                   |
+| [`@typescript-eslint/default-param-last`](./docs/rules/default-param-last.md)                   | Enforce default parameters to be last                                                |                    |          |                   |
+| [`@typescript-eslint/dot-notation`](./docs/rules/dot-notation.md)                               | enforce dot notation whenever possible                                               |                    | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/func-call-spacing`](./docs/rules/func-call-spacing.md)                     | Require or disallow spacing between function identifiers and their invocations       |                    | :wrench: |                   |
+| [`@typescript-eslint/indent`](./docs/rules/indent.md)                                           | Enforce consistent indentation                                                       |                    | :wrench: |                   |
+| [`@typescript-eslint/init-declarations`](./docs/rules/init-declarations.md)                     | require or disallow initialization in variable declarations                          |                    |          |                   |
+| [`@typescript-eslint/keyword-spacing`](./docs/rules/keyword-spacing.md)                         | Enforce consistent spacing before and after keywords                                 |                    | :wrench: |                   |
+| [`@typescript-eslint/lines-between-class-members`](./docs/rules/lines-between-class-members.md) | Require or disallow an empty line between class members                              |                    | :wrench: |                   |
+| [`@typescript-eslint/no-array-constructor`](./docs/rules/no-array-constructor.md)               | Disallow generic `Array` constructors                                                | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/no-dupe-class-members`](./docs/rules/no-dupe-class-members.md)             | Disallow duplicate class members                                                     |                    |          |                   |
+| [`@typescript-eslint/no-empty-function`](./docs/rules/no-empty-function.md)                     | Disallow empty functions                                                             | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/no-extra-parens`](./docs/rules/no-extra-parens.md)                         | Disallow unnecessary parentheses                                                     |                    | :wrench: |                   |
+| [`@typescript-eslint/no-extra-semi`](./docs/rules/no-extra-semi.md)                             | Disallow unnecessary semicolons                                                      | :heavy_check_mark: | :wrench: |                   |
+| [`@typescript-eslint/no-invalid-this`](./docs/rules/no-invalid-this.md)                         | disallow `this` keywords outside of classes or class-like objects                    |                    |          |                   |
+| [`@typescript-eslint/no-loop-func`](./docs/rules/no-loop-func.md)                               | Disallow function declarations that contain unsafe references inside loop statements |                    |          |                   |
+| [`@typescript-eslint/no-loss-of-precision`](./docs/rules/no-loss-of-precision.md)               | Disallow literal numbers that lose precision                                         |                    |          |                   |
+| [`@typescript-eslint/no-magic-numbers`](./docs/rules/no-magic-numbers.md)                       | Disallow magic numbers                                                               |                    |          |                   |
+| [`@typescript-eslint/no-redeclare`](./docs/rules/no-redeclare.md)                               | Disallow variable redeclaration                                                      |                    |          |                   |
+| [`@typescript-eslint/no-shadow`](./docs/rules/no-shadow.md)                                     | Disallow variable declarations from shadowing variables declared in the outer scope  |                    |          |                   |
+| [`@typescript-eslint/no-unused-expressions`](./docs/rules/no-unused-expressions.md)             | Disallow unused expressions                                                          |                    |          |                   |
+| [`@typescript-eslint/no-unused-vars`](./docs/rules/no-unused-vars.md)                           | Disallow unused variables                                                            | :heavy_check_mark: |          |                   |
+| [`@typescript-eslint/no-use-before-define`](./docs/rules/no-use-before-define.md)               | Disallow the use of variables before they are defined                                |                    |          |                   |
+| [`@typescript-eslint/no-useless-constructor`](./docs/rules/no-useless-constructor.md)           | Disallow unnecessary constructors                                                    |                    |          |                   |
+| [`@typescript-eslint/quotes`](./docs/rules/quotes.md)                                           | Enforce the consistent use of either backticks, double, or single quotes             |                    | :wrench: |                   |
+| [`@typescript-eslint/require-await`](./docs/rules/require-await.md)                             | Disallow async functions which have no `await` expression                            | :heavy_check_mark: |          | :thought_balloon: |
+| [`@typescript-eslint/return-await`](./docs/rules/return-await.md)                               | Enforces consistent returning of awaited values                                      |                    | :wrench: | :thought_balloon: |
+| [`@typescript-eslint/semi`](./docs/rules/semi.md)                                               | Require or disallow semicolons instead of ASI                                        |                    | :wrench: |                   |
+| [`@typescript-eslint/space-before-function-paren`](./docs/rules/space-before-function-paren.md) | Enforces consistent spacing before function parenthesis                              |                    | :wrench: |                   |
 
 <!-- end extension rule list -->
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js
new file mode 100644
index 0000000..cf3bab7
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js
@@ -0,0 +1,146 @@
+"use strict";
+// THIS CODE WAS AUTOMATICALLY GENERATED
+// DO NOT EDIT THIS CODE BY HAND
+// YOU CAN REGENERATE IT USING yarn generate:configs
+module.exports = {
+    extends: ['./configs/base', './configs/eslint-recommended'],
+    rules: {
+        '@typescript-eslint/adjacent-overload-signatures': 'error',
+        '@typescript-eslint/array-type': 'error',
+        '@typescript-eslint/await-thenable': 'error',
+        '@typescript-eslint/ban-ts-comment': 'error',
+        '@typescript-eslint/ban-tslint-comment': 'error',
+        '@typescript-eslint/ban-types': 'error',
+        'brace-style': 'off',
+        '@typescript-eslint/brace-style': 'error',
+        '@typescript-eslint/class-literal-property-style': 'error',
+        'comma-spacing': 'off',
+        '@typescript-eslint/comma-spacing': 'error',
+        '@typescript-eslint/consistent-type-assertions': 'error',
+        '@typescript-eslint/consistent-type-definitions': 'error',
+        '@typescript-eslint/consistent-type-imports': 'error',
+        'default-param-last': 'off',
+        '@typescript-eslint/default-param-last': 'error',
+        'dot-notation': 'off',
+        '@typescript-eslint/dot-notation': 'error',
+        '@typescript-eslint/explicit-function-return-type': 'error',
+        '@typescript-eslint/explicit-member-accessibility': 'error',
+        '@typescript-eslint/explicit-module-boundary-types': 'error',
+        'func-call-spacing': 'off',
+        '@typescript-eslint/func-call-spacing': 'error',
+        indent: 'off',
+        '@typescript-eslint/indent': 'error',
+        'init-declarations': 'off',
+        '@typescript-eslint/init-declarations': 'error',
+        'keyword-spacing': 'off',
+        '@typescript-eslint/keyword-spacing': 'error',
+        'lines-between-class-members': 'off',
+        '@typescript-eslint/lines-between-class-members': 'error',
+        '@typescript-eslint/member-delimiter-style': 'error',
+        '@typescript-eslint/member-ordering': 'error',
+        '@typescript-eslint/method-signature-style': 'error',
+        '@typescript-eslint/naming-convention': 'error',
+        'no-array-constructor': 'off',
+        '@typescript-eslint/no-array-constructor': 'error',
+        '@typescript-eslint/no-base-to-string': 'error',
+        '@typescript-eslint/no-confusing-non-null-assertion': 'error',
+        'no-dupe-class-members': 'off',
+        '@typescript-eslint/no-dupe-class-members': 'error',
+        '@typescript-eslint/no-dynamic-delete': 'error',
+        'no-empty-function': 'off',
+        '@typescript-eslint/no-empty-function': 'error',
+        '@typescript-eslint/no-empty-interface': 'error',
+        '@typescript-eslint/no-explicit-any': 'error',
+        '@typescript-eslint/no-extra-non-null-assertion': 'error',
+        'no-extra-parens': 'off',
+        '@typescript-eslint/no-extra-parens': 'error',
+        'no-extra-semi': 'off',
+        '@typescript-eslint/no-extra-semi': 'error',
+        '@typescript-eslint/no-extraneous-class': 'error',
+        '@typescript-eslint/no-floating-promises': 'error',
+        '@typescript-eslint/no-for-in-array': 'error',
+        '@typescript-eslint/no-implicit-any-catch': 'error',
+        '@typescript-eslint/no-implied-eval': 'error',
+        '@typescript-eslint/no-inferrable-types': 'error',
+        'no-invalid-this': 'off',
+        '@typescript-eslint/no-invalid-this': 'error',
+        '@typescript-eslint/no-invalid-void-type': 'error',
+        'no-loop-func': 'off',
+        '@typescript-eslint/no-loop-func': 'error',
+        'no-loss-of-precision': 'off',
+        '@typescript-eslint/no-loss-of-precision': 'error',
+        'no-magic-numbers': 'off',
+        '@typescript-eslint/no-magic-numbers': 'error',
+        '@typescript-eslint/no-misused-new': 'error',
+        '@typescript-eslint/no-misused-promises': 'error',
+        '@typescript-eslint/no-namespace': 'error',
+        '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
+        '@typescript-eslint/no-non-null-assertion': 'error',
+        '@typescript-eslint/no-parameter-properties': 'error',
+        'no-redeclare': 'off',
+        '@typescript-eslint/no-redeclare': 'error',
+        '@typescript-eslint/no-require-imports': 'error',
+        'no-shadow': 'off',
+        '@typescript-eslint/no-shadow': 'error',
+        '@typescript-eslint/no-this-alias': 'error',
+        '@typescript-eslint/no-throw-literal': 'error',
+        '@typescript-eslint/no-type-alias': 'error',
+        '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error',
+        '@typescript-eslint/no-unnecessary-condition': 'error',
+        '@typescript-eslint/no-unnecessary-qualifier': 'error',
+        '@typescript-eslint/no-unnecessary-type-arguments': 'error',
+        '@typescript-eslint/no-unnecessary-type-assertion': 'error',
+        '@typescript-eslint/no-unsafe-assignment': 'error',
+        '@typescript-eslint/no-unsafe-call': 'error',
+        '@typescript-eslint/no-unsafe-member-access': 'error',
+        '@typescript-eslint/no-unsafe-return': 'error',
+        'no-unused-expressions': 'off',
+        '@typescript-eslint/no-unused-expressions': 'error',
+        'no-unused-vars': 'off',
+        '@typescript-eslint/no-unused-vars': 'error',
+        'no-use-before-define': 'off',
+        '@typescript-eslint/no-use-before-define': 'error',
+        'no-useless-constructor': 'off',
+        '@typescript-eslint/no-useless-constructor': 'error',
+        '@typescript-eslint/no-var-requires': 'error',
+        '@typescript-eslint/prefer-as-const': 'error',
+        '@typescript-eslint/prefer-enum-initializers': 'error',
+        '@typescript-eslint/prefer-for-of': 'error',
+        '@typescript-eslint/prefer-function-type': 'error',
+        '@typescript-eslint/prefer-includes': 'error',
+        '@typescript-eslint/prefer-literal-enum-member': 'error',
+        '@typescript-eslint/prefer-namespace-keyword': 'error',
+        '@typescript-eslint/prefer-nullish-coalescing': 'error',
+        '@typescript-eslint/prefer-optional-chain': 'error',
+        '@typescript-eslint/prefer-readonly': 'error',
+        '@typescript-eslint/prefer-readonly-parameter-types': 'error',
+        '@typescript-eslint/prefer-reduce-type-parameter': 'error',
+        '@typescript-eslint/prefer-regexp-exec': 'error',
+        '@typescript-eslint/prefer-string-starts-ends-with': 'error',
+        '@typescript-eslint/prefer-ts-expect-error': 'error',
+        '@typescript-eslint/promise-function-async': 'error',
+        quotes: 'off',
+        '@typescript-eslint/quotes': 'error',
+        '@typescript-eslint/require-array-sort-compare': 'error',
+        'require-await': 'off',
+        '@typescript-eslint/require-await': 'error',
+        '@typescript-eslint/restrict-plus-operands': 'error',
+        '@typescript-eslint/restrict-template-expressions': 'error',
+        'no-return-await': 'off',
+        '@typescript-eslint/return-await': 'error',
+        semi: 'off',
+        '@typescript-eslint/semi': 'error',
+        'space-before-function-paren': 'off',
+        '@typescript-eslint/space-before-function-paren': 'error',
+        '@typescript-eslint/strict-boolean-expressions': 'error',
+        '@typescript-eslint/switch-exhaustiveness-check': 'error',
+        '@typescript-eslint/triple-slash-reference': 'error',
+        '@typescript-eslint/type-annotation-spacing': 'error',
+        '@typescript-eslint/typedef': 'error',
+        '@typescript-eslint/unbound-method': 'error',
+        '@typescript-eslint/unified-signatures': 'error',
+        'comma-dangle': 'off',
+        '@typescript-eslint/comma-dangle': 'error',
+    },
+};
+//# sourceMappingURL=all.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map
new file mode 100644
index 0000000..35b7760
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.json b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.json
deleted file mode 100644
index ff629e0..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
-    "extends": "./configs/base.json",
-    "rules": {
-        "@typescript-eslint/adjacent-overload-signatures": "error",
-        "@typescript-eslint/array-type": "error",
-        "@typescript-eslint/await-thenable": "error",
-        "@typescript-eslint/ban-ts-comment": "error",
-        "@typescript-eslint/ban-types": "error",
-        "brace-style": "off",
-        "@typescript-eslint/brace-style": "error",
-        "comma-spacing": "off",
-        "@typescript-eslint/comma-spacing": "error",
-        "@typescript-eslint/consistent-type-assertions": "error",
-        "@typescript-eslint/consistent-type-definitions": "error",
-        "default-param-last": "off",
-        "@typescript-eslint/default-param-last": "error",
-        "@typescript-eslint/explicit-function-return-type": "error",
-        "@typescript-eslint/explicit-member-accessibility": "error",
-        "@typescript-eslint/explicit-module-boundary-types": "error",
-        "func-call-spacing": "off",
-        "@typescript-eslint/func-call-spacing": "error",
-        "indent": "off",
-        "@typescript-eslint/indent": "error",
-        "@typescript-eslint/member-delimiter-style": "error",
-        "@typescript-eslint/member-ordering": "error",
-        "@typescript-eslint/naming-convention": "error",
-        "no-array-constructor": "off",
-        "@typescript-eslint/no-array-constructor": "error",
-        "@typescript-eslint/no-base-to-string": "error",
-        "no-dupe-class-members": "off",
-        "@typescript-eslint/no-dupe-class-members": "error",
-        "@typescript-eslint/no-dynamic-delete": "error",
-        "no-empty-function": "off",
-        "@typescript-eslint/no-empty-function": "error",
-        "@typescript-eslint/no-empty-interface": "error",
-        "@typescript-eslint/no-explicit-any": "error",
-        "@typescript-eslint/no-extra-non-null-assertion": "error",
-        "no-extra-parens": "off",
-        "@typescript-eslint/no-extra-parens": "error",
-        "no-extra-semi": "off",
-        "@typescript-eslint/no-extra-semi": "error",
-        "@typescript-eslint/no-extraneous-class": "error",
-        "@typescript-eslint/no-floating-promises": "error",
-        "@typescript-eslint/no-for-in-array": "error",
-        "@typescript-eslint/no-implied-eval": "error",
-        "@typescript-eslint/no-inferrable-types": "error",
-        "no-magic-numbers": "off",
-        "@typescript-eslint/no-magic-numbers": "error",
-        "@typescript-eslint/no-misused-new": "error",
-        "@typescript-eslint/no-misused-promises": "error",
-        "@typescript-eslint/no-namespace": "error",
-        "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
-        "@typescript-eslint/no-non-null-assertion": "error",
-        "@typescript-eslint/no-parameter-properties": "error",
-        "@typescript-eslint/no-require-imports": "error",
-        "@typescript-eslint/no-this-alias": "error",
-        "@typescript-eslint/no-throw-literal": "error",
-        "@typescript-eslint/no-type-alias": "error",
-        "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
-        "@typescript-eslint/no-unnecessary-condition": "error",
-        "@typescript-eslint/no-unnecessary-qualifier": "error",
-        "@typescript-eslint/no-unnecessary-type-arguments": "error",
-        "@typescript-eslint/no-unnecessary-type-assertion": "error",
-        "no-unused-expressions": "off",
-        "@typescript-eslint/no-unused-expressions": "error",
-        "no-unused-vars": "off",
-        "@typescript-eslint/no-unused-vars": "error",
-        "@typescript-eslint/no-unused-vars-experimental": "error",
-        "no-use-before-define": "off",
-        "@typescript-eslint/no-use-before-define": "error",
-        "no-useless-constructor": "off",
-        "@typescript-eslint/no-useless-constructor": "error",
-        "@typescript-eslint/no-var-requires": "error",
-        "@typescript-eslint/prefer-as-const": "error",
-        "@typescript-eslint/prefer-for-of": "error",
-        "@typescript-eslint/prefer-function-type": "error",
-        "@typescript-eslint/prefer-includes": "error",
-        "@typescript-eslint/prefer-namespace-keyword": "error",
-        "@typescript-eslint/prefer-nullish-coalescing": "error",
-        "@typescript-eslint/prefer-optional-chain": "error",
-        "@typescript-eslint/prefer-readonly": "error",
-        "@typescript-eslint/prefer-readonly-parameter-types": "error",
-        "@typescript-eslint/prefer-regexp-exec": "error",
-        "@typescript-eslint/prefer-string-starts-ends-with": "error",
-        "@typescript-eslint/promise-function-async": "error",
-        "quotes": "off",
-        "@typescript-eslint/quotes": "error",
-        "@typescript-eslint/require-array-sort-compare": "error",
-        "require-await": "off",
-        "@typescript-eslint/require-await": "error",
-        "@typescript-eslint/restrict-plus-operands": "error",
-        "@typescript-eslint/restrict-template-expressions": "error",
-        "no-return-await": "off",
-        "@typescript-eslint/return-await": "error",
-        "semi": "off",
-        "@typescript-eslint/semi": "error",
-        "space-before-function-paren": "off",
-        "@typescript-eslint/space-before-function-paren": "error",
-        "@typescript-eslint/strict-boolean-expressions": "error",
-        "@typescript-eslint/switch-exhaustiveness-check": "error",
-        "@typescript-eslint/triple-slash-reference": "error",
-        "@typescript-eslint/type-annotation-spacing": "error",
-        "@typescript-eslint/typedef": "error",
-        "@typescript-eslint/unbound-method": "error",
-        "@typescript-eslint/unified-signatures": "error"
-    }
-}
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js
new file mode 100644
index 0000000..52d1fe8
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js
@@ -0,0 +1,10 @@
+"use strict";
+// THIS CODE WAS AUTOMATICALLY GENERATED
+// DO NOT EDIT THIS CODE BY HAND
+// YOU CAN REGENERATE IT USING yarn generate:configs
+module.exports = {
+    parser: '@typescript-eslint/parser',
+    parserOptions: { sourceType: 'module' },
+    plugins: ['@typescript-eslint'],
+};
+//# sourceMappingURL=base.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js.map
new file mode 100644
index 0000000..a2f415f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/configs/base.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,oBAAoB,CAAC;CAChC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json
deleted file mode 100644
index e5af602..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "parser": "@typescript-eslint/parser",
-    "parserOptions": { "sourceType": "module" },
-    "plugins": ["@typescript-eslint"]
-}
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js
index 4395919..f1b5191 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js
@@ -1,36 +1,30 @@
 "use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * This is a compatibility ruleset that disables rules from eslint:recommended
- * which are already handled by TypeScript.
- */
-exports.default = {
+module.exports = {
     overrides: [
         {
             files: ['*.ts', '*.tsx'],
             rules: {
-                // Checked by Typescript - ts(2378)
+                'constructor-super': 'off',
                 'getter-return': 'off',
-                // Checked by Typescript - ts(2300)
-                'no-dupe-args': 'off',
-                // Checked by Typescript - ts(1117)
-                'no-dupe-keys': 'off',
-                // Checked by Typescript - ts(7027)
-                'no-unreachable': 'off',
-                // Checked by Typescript - ts(2367)
-                'valid-typeof': 'off',
-                // Checked by Typescript - ts(2588)
                 'no-const-assign': 'off',
-                // Checked by Typescript - ts(2588)
-                'no-new-symbol': 'off',
-                // Checked by Typescript - ts(2376)
-                'no-this-before-super': 'off',
-                // This is checked by Typescript using the option `strictNullChecks`.
-                'no-undef': 'off',
-                // This is already checked by Typescript.
+                'no-dupe-args': 'off',
                 'no-dupe-class-members': 'off',
-                // This is already checked by Typescript.
+                'no-dupe-keys': 'off',
+                'no-func-assign': 'off',
+                'no-import-assign': 'off',
+                'no-new-symbol': 'off',
+                'no-obj-calls': 'off',
                 'no-redeclare': 'off',
+                'no-setter-return': 'off',
+                'no-this-before-super': 'off',
+                'no-undef': 'off',
+                'no-unreachable': 'off',
+                'no-unsafe-negation': 'off',
+                'no-var': 'error',
+                'prefer-const': 'error',
+                'prefer-rest-params': 'error',
+                'prefer-spread': 'error',
+                'valid-typeof': 'off',
             },
         },
     ],
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map
index 21b2ecb..8181881 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map
@@ -1 +1 @@
-{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,kBAAe;IACb,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,KAAK,EAAE;gBACL,mCAAmC;gBACnC,eAAe,EAAE,KAAK;gBACtB,mCAAmC;gBACnC,cAAc,EAAE,KAAK;gBACrB,mCAAmC;gBACnC,cAAc,EAAE,KAAK;gBACrB,mCAAmC;gBACnC,gBAAgB,EAAE,KAAK;gBACvB,mCAAmC;gBACnC,cAAc,EAAE,KAAK;gBACrB,mCAAmC;gBACnC,iBAAiB,EAAE,KAAK;gBACxB,mCAAmC;gBACnC,eAAe,EAAE,KAAK;gBACtB,mCAAmC;gBACnC,sBAAsB,EAAE,KAAK;gBAC7B,qEAAqE;gBACrE,UAAU,EAAE,KAAK;gBACjB,yCAAyC;gBACzC,uBAAuB,EAAE,KAAK;gBAC9B,yCAAyC;gBACzC,cAAc,EAAE,KAAK;aACtB;SACF;KACF;CACF,CAAC"}
\ No newline at end of file
+{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";AAKA,iBAAS;IACP,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,KAAK,EAAE;gBACL,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,KAAK;gBACtB,iBAAiB,EAAE,KAAK;gBACxB,cAAc,EAAE,KAAK;gBACrB,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;gBACzB,sBAAsB,EAAE,KAAK;gBAC7B,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,cAAc,EAAE,OAAO;gBACvB,oBAAoB,EAAE,OAAO;gBAC7B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,KAAK;aACtB;SACF;KACF;CACF,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js
new file mode 100644
index 0000000..cb31319
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js
@@ -0,0 +1,26 @@
+"use strict";
+// THIS CODE WAS AUTOMATICALLY GENERATED
+// DO NOT EDIT THIS CODE BY HAND
+// YOU CAN REGENERATE IT USING yarn generate:configs
+module.exports = {
+    extends: ['./configs/base', './configs/eslint-recommended'],
+    rules: {
+        '@typescript-eslint/await-thenable': 'error',
+        '@typescript-eslint/no-floating-promises': 'error',
+        '@typescript-eslint/no-for-in-array': 'error',
+        '@typescript-eslint/no-implied-eval': 'error',
+        '@typescript-eslint/no-misused-promises': 'error',
+        '@typescript-eslint/no-unnecessary-type-assertion': 'error',
+        '@typescript-eslint/no-unsafe-assignment': 'error',
+        '@typescript-eslint/no-unsafe-call': 'error',
+        '@typescript-eslint/no-unsafe-member-access': 'error',
+        '@typescript-eslint/no-unsafe-return': 'error',
+        '@typescript-eslint/prefer-regexp-exec': 'error',
+        'require-await': 'off',
+        '@typescript-eslint/require-await': 'error',
+        '@typescript-eslint/restrict-plus-operands': 'error',
+        '@typescript-eslint/restrict-template-expressions': 'error',
+        '@typescript-eslint/unbound-method': 'error',
+    },
+};
+//# sourceMappingURL=recommended-requiring-type-checking.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map
new file mode 100644
index 0000000..ef21991
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"recommended-requiring-type-checking.js","sourceRoot":"","sources":["../../src/configs/recommended-requiring-type-checking.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,wCAAwC,EAAE,OAAO;QACjD,kDAAkD,EAAE,OAAO;QAC3D,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,uCAAuC,EAAE,OAAO;QAChD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,mCAAmC,EAAE,OAAO;KAC7C;CACF,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.json b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.json
deleted file mode 100644
index 2f56a1b..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "extends": "./configs/base.json",
-    "rules": {
-        "@typescript-eslint/await-thenable": "error",
-        "@typescript-eslint/no-for-in-array": "error",
-        "@typescript-eslint/no-misused-promises": "error",
-        "@typescript-eslint/no-unnecessary-type-assertion": "error",
-        "@typescript-eslint/prefer-includes": "error",
-        "@typescript-eslint/prefer-regexp-exec": "error",
-        "@typescript-eslint/prefer-string-starts-ends-with": "error",
-        "require-await": "off",
-        "@typescript-eslint/require-await": "error",
-        "@typescript-eslint/unbound-method": "error",
-        "no-var": "error",
-        "prefer-const": "error",
-        "prefer-rest-params": "error",
-        "prefer-spread": "error"
-    }
-}
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js
new file mode 100644
index 0000000..e8e5a6f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js
@@ -0,0 +1,35 @@
+"use strict";
+// THIS CODE WAS AUTOMATICALLY GENERATED
+// DO NOT EDIT THIS CODE BY HAND
+// YOU CAN REGENERATE IT USING yarn generate:configs
+module.exports = {
+    extends: ['./configs/base', './configs/eslint-recommended'],
+    rules: {
+        '@typescript-eslint/adjacent-overload-signatures': 'error',
+        '@typescript-eslint/ban-ts-comment': 'error',
+        '@typescript-eslint/ban-types': 'error',
+        '@typescript-eslint/explicit-module-boundary-types': 'warn',
+        'no-array-constructor': 'off',
+        '@typescript-eslint/no-array-constructor': 'error',
+        'no-empty-function': 'off',
+        '@typescript-eslint/no-empty-function': 'error',
+        '@typescript-eslint/no-empty-interface': 'error',
+        '@typescript-eslint/no-explicit-any': 'warn',
+        '@typescript-eslint/no-extra-non-null-assertion': 'error',
+        'no-extra-semi': 'off',
+        '@typescript-eslint/no-extra-semi': 'error',
+        '@typescript-eslint/no-inferrable-types': 'error',
+        '@typescript-eslint/no-misused-new': 'error',
+        '@typescript-eslint/no-namespace': 'error',
+        '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
+        '@typescript-eslint/no-non-null-assertion': 'warn',
+        '@typescript-eslint/no-this-alias': 'error',
+        'no-unused-vars': 'off',
+        '@typescript-eslint/no-unused-vars': 'warn',
+        '@typescript-eslint/no-var-requires': 'error',
+        '@typescript-eslint/prefer-as-const': 'error',
+        '@typescript-eslint/prefer-namespace-keyword': 'error',
+        '@typescript-eslint/triple-slash-reference': 'error',
+    },
+};
+//# sourceMappingURL=recommended.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js.map
new file mode 100644
index 0000000..406ea3f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,iDAAiD,EAAE,OAAO;QAC1D,mCAAmC,EAAE,OAAO;QAC5C,8BAA8B,EAAE,OAAO;QACvC,mDAAmD,EAAE,MAAM;QAC3D,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,uCAAuC,EAAE,OAAO;QAChD,oCAAoC,EAAE,MAAM;QAC5C,gDAAgD,EAAE,OAAO;QACzD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,wCAAwC,EAAE,OAAO;QACjD,mCAAmC,EAAE,OAAO;QAC5C,iCAAiC,EAAE,OAAO;QAC1C,wDAAwD,EAAE,OAAO;QACjE,0CAA0C,EAAE,MAAM;QAClD,kCAAkC,EAAE,OAAO;QAC3C,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,MAAM;QAC3C,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,6CAA6C,EAAE,OAAO;QACtD,2CAA2C,EAAE,OAAO;KACrD;CACF,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.json b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.json
deleted file mode 100644
index 2ea1819..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-    "extends": "./configs/base.json",
-    "rules": {
-        "@typescript-eslint/adjacent-overload-signatures": "error",
-        "@typescript-eslint/ban-ts-ignore": "error",
-        "@typescript-eslint/ban-types": "error",
-        "camelcase": "off",
-        "@typescript-eslint/camelcase": "error",
-        "@typescript-eslint/class-name-casing": "error",
-        "@typescript-eslint/consistent-type-assertions": "error",
-        "@typescript-eslint/explicit-function-return-type": "warn",
-        "@typescript-eslint/interface-name-prefix": "error",
-        "@typescript-eslint/member-delimiter-style": "error",
-        "no-array-constructor": "off",
-        "@typescript-eslint/no-array-constructor": "error",
-        "no-empty-function": "off",
-        "@typescript-eslint/no-empty-function": "error",
-        "@typescript-eslint/no-empty-interface": "error",
-        "@typescript-eslint/no-explicit-any": "warn",
-        "@typescript-eslint/no-inferrable-types": "error",
-        "@typescript-eslint/no-misused-new": "error",
-        "@typescript-eslint/no-namespace": "error",
-        "@typescript-eslint/no-non-null-assertion": "warn",
-        "@typescript-eslint/no-this-alias": "error",
-        "no-unused-vars": "off",
-        "@typescript-eslint/no-unused-vars": "warn",
-        "no-use-before-define": "off",
-        "@typescript-eslint/no-use-before-define": "error",
-        "@typescript-eslint/no-var-requires": "error",
-        "@typescript-eslint/prefer-namespace-keyword": "error",
-        "@typescript-eslint/triple-slash-reference": "error",
-        "@typescript-eslint/type-annotation-spacing": "error",
-        "no-var": "error",
-        "prefer-const": "error",
-        "prefer-rest-params": "error",
-        "prefer-spread": "error"
-    }
-}
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/index.js
index 12dffdf..37426f2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/index.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/index.js
@@ -3,19 +3,19 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 const rules_1 = __importDefault(require("./rules"));
-const all_json_1 = __importDefault(require("./configs/all.json"));
-const base_json_1 = __importDefault(require("./configs/base.json"));
-const recommended_json_1 = __importDefault(require("./configs/recommended.json"));
-const recommended_requiring_type_checking_json_1 = __importDefault(require("./configs/recommended-requiring-type-checking.json"));
+const all_1 = __importDefault(require("./configs/all"));
+const base_1 = __importDefault(require("./configs/base"));
+const recommended_1 = __importDefault(require("./configs/recommended"));
+const recommended_requiring_type_checking_1 = __importDefault(require("./configs/recommended-requiring-type-checking"));
 const eslint_recommended_1 = __importDefault(require("./configs/eslint-recommended"));
 module.exports = {
     rules: rules_1.default,
     configs: {
-        all: all_json_1.default,
-        base: base_json_1.default,
-        recommended: recommended_json_1.default,
+        all: all_1.default,
+        base: base_1.default,
+        recommended: recommended_1.default,
         'eslint-recommended': eslint_recommended_1.default,
-        'recommended-requiring-type-checking': recommended_requiring_type_checking_json_1.default,
+        'recommended-requiring-type-checking': recommended_requiring_type_checking_1.default,
     },
 };
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/index.js.map
index 13a4000..2469809 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/index.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA4B;AAE5B,kEAAqC;AACrC,oEAAuC;AACvC,kFAAqD;AACrD,kIAAkG;AAClG,sFAA6D;AAE7D,iBAAS;IACP,KAAK,EAAL,eAAK;IACL,OAAO,EAAE;QACP,GAAG,EAAH,kBAAG;QACH,IAAI,EAAJ,mBAAI;QACJ,WAAW,EAAX,0BAAW;QACX,oBAAoB,EAAE,4BAAiB;QACvC,qCAAqC,EAAE,kDAAgC;KACxE;CACF,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA4B;AAE5B,wDAAgC;AAChC,0DAAkC;AAClC,wEAAgD;AAChD,wHAA6F;AAC7F,sFAA6D;AAE7D,iBAAS;IACP,KAAK,EAAL,eAAK;IACL,OAAO,EAAE;QACP,GAAG,EAAH,aAAG;QACH,IAAI,EAAJ,cAAI;QACJ,WAAW,EAAX,qBAAW;QACX,oBAAoB,EAAE,4BAAiB;QACvC,qCAAqC,EAAE,6CAAgC;KACxE;CACF,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js
index 06c8fac..6b68714 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -27,14 +39,16 @@
     create(context) {
         const sourceCode = context.getSourceCode();
         /**
-         * Gets the name of the member being processed.
+         * Gets the name and attribute of the member being processed.
          * @param member the member being processed.
-         * @returns the name of the member or null if it's a member not relevant to the rule.
+         * @returns the name and attribute of the member or null if it's a member not relevant to the rule.
          */
-        function getMemberName(member) {
+        function getMemberMethod(member) {
+            var _a, _b;
             if (!member) {
                 return null;
             }
+            const isStatic = 'static' in member && !!member.static;
             switch (member.type) {
                 case experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration:
                 case experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration: {
@@ -43,26 +57,52 @@
                     if (!member.declaration) {
                         return null;
                     }
-                    return getMemberName(member.declaration);
+                    return getMemberMethod(member.declaration);
                 }
                 case experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction:
-                case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration:
-                    return member.id && member.id.name;
+                case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration: {
+                    const name = (_b = (_a = member.id) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;
+                    if (name === null) {
+                        return null;
+                    }
+                    return {
+                        name,
+                        static: isStatic,
+                        callSignature: false,
+                    };
+                }
                 case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
-                    return util.getNameFromMember(member, sourceCode);
+                    return {
+                        name: util.getNameFromMember(member, sourceCode),
+                        static: isStatic,
+                        callSignature: false,
+                    };
                 case experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration:
-                    return 'call';
+                    return {
+                        name: 'call',
+                        static: isStatic,
+                        callSignature: true,
+                    };
                 case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration:
-                    return 'new';
+                    return {
+                        name: 'new',
+                        static: isStatic,
+                        callSignature: false,
+                    };
                 case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
-                    return util.getNameFromMember(member, sourceCode);
+                    return {
+                        name: util.getNameFromMember(member, sourceCode),
+                        static: isStatic,
+                        callSignature: false,
+                    };
             }
             return null;
         }
         function isSameMethod(method1, method2) {
             return (!!method2 &&
                 method1.name === method2.name &&
-                method1.static === method2.static);
+                method1.static === method2.static &&
+                method1.callSignature === method2.callSignature);
         }
         function getMembers(node) {
             switch (node.type) {
@@ -85,15 +125,11 @@
                 let lastMethod = null;
                 const seenMethods = [];
                 members.forEach(member => {
-                    const name = getMemberName(member);
-                    if (name === null) {
+                    const method = getMemberMethod(member);
+                    if (method === null) {
                         lastMethod = null;
                         return;
                     }
-                    const method = {
-                        name,
-                        static: 'static' in member && !!member.static,
-                    };
                     const index = seenMethods.findIndex(seenMethod => isSameMethod(method, seenMethod));
                     if (index > -1 && !isSameMethod(method, lastMethod)) {
                         context.report({
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map
index 0a11771..7371090 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map
@@ -1 +1 @@
-{"version":3,"file":"adjacent-overload-signatures.js","sourceRoot":"","sources":["../../src/rules/adjacent-overload-signatures.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"adjacent-overload-signatures.js","sourceRoot":"","sources":["../../src/rules/adjacent-overload-signatures.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAahC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,iBAAiB,EAAE,+CAA+C;SACnE;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAQ3C;;;;WAIG;QACH,SAAS,eAAe,CAAC,MAAqB;;YAC5C,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,IAAI,CAAC;aACb;YAED,MAAM,QAAQ,GAAG,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YAEvD,QAAQ,MAAM,CAAC,IAAI,EAAE;gBACnB,KAAK,mCAAc,CAAC,wBAAwB,CAAC;gBAC7C,KAAK,mCAAc,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,yCAAyC;oBACzC,uCAAuC;oBACvC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;wBACvB,OAAO,IAAI,CAAC;qBACb;oBAED,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC5C;gBACD,KAAK,mCAAc,CAAC,iBAAiB,CAAC;gBACtC,KAAK,mCAAc,CAAC,mBAAmB,CAAC,CAAC;oBACvC,MAAM,IAAI,eAAG,MAAM,CAAC,EAAE,0CAAE,IAAI,mCAAI,IAAI,CAAC;oBACrC,IAAI,IAAI,KAAK,IAAI,EAAE;wBACjB,OAAO,IAAI,CAAC;qBACb;oBACD,OAAO;wBACL,IAAI;wBACJ,MAAM,EAAE,QAAQ;wBAChB,aAAa,EAAE,KAAK;qBACrB,CAAC;iBACH;gBACD,KAAK,mCAAc,CAAC,iBAAiB;oBACnC,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC;wBAChD,MAAM,EAAE,QAAQ;wBAChB,aAAa,EAAE,KAAK;qBACrB,CAAC;gBACJ,KAAK,mCAAc,CAAC,0BAA0B;oBAC5C,OAAO;wBACL,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE,QAAQ;wBAChB,aAAa,EAAE,IAAI;qBACpB,CAAC;gBACJ,KAAK,mCAAc,CAAC,+BAA+B;oBACjD,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,QAAQ;wBAChB,aAAa,EAAE,KAAK;qBACrB,CAAC;gBACJ,KAAK,mCAAc,CAAC,gBAAgB;oBAClC,OAAO;wBACL,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC;wBAChD,MAAM,EAAE,QAAQ;wBAChB,aAAa,EAAE,KAAK;qBACrB,CAAC;aACL;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,YAAY,CAAC,OAAe,EAAE,OAAsB;YAC3D,OAAO,CACL,CAAC,CAAC,OAAO;gBACT,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;gBAC7B,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBACjC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,CAChD,CAAC;QACJ,CAAC;QAED,SAAS,UAAU,CAAC,IAAc;YAChC,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,SAAS,CAAC;gBAC9B,KAAK,mCAAc,CAAC,OAAO,CAAC;gBAC5B,KAAK,mCAAc,CAAC,aAAa,CAAC;gBAClC,KAAK,mCAAc,CAAC,eAAe;oBACjC,OAAO,IAAI,CAAC,IAAI,CAAC;gBAEnB,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;QACH,CAAC;QAED;;;WAGG;QACH,SAAS,2BAA2B,CAAC,IAAc;YACjD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,OAAO,EAAE;gBACX,IAAI,UAAU,GAAkB,IAAI,CAAC;gBACrC,MAAM,WAAW,GAAa,EAAE,CAAC;gBAEjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACvB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,MAAM,KAAK,IAAI,EAAE;wBACnB,UAAU,GAAG,IAAI,CAAC;wBAClB,OAAO;qBACR;oBAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAC/C,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CACjC,CAAC;oBACF,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;wBACnD,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,MAAM;4BACZ,SAAS,EAAE,mBAAmB;4BAC9B,IAAI,EAAE;gCACJ,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI;6BACrD;yBACF,CAAC,CAAC;qBACJ;yBAAM,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;wBACvB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC1B;oBAED,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE,2BAA2B;YACpC,aAAa,EAAE,2BAA2B;YAC1C,aAAa,EAAE,2BAA2B;YAC1C,eAAe,EAAE,2BAA2B;SAC7C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js
index 3ab552a..4f4d2d1 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -110,7 +122,7 @@
         var _a;
         const sourceCode = context.getSourceCode();
         const defaultOption = options.default;
-        const readonlyOption = (_a = options.readonly, (_a !== null && _a !== void 0 ? _a : defaultOption));
+        const readonlyOption = (_a = options.readonly) !== null && _a !== void 0 ? _a : defaultOption;
         const isArraySimpleOption = defaultOption === 'array-simple' && readonlyOption === 'array-simple';
         const isArrayOption = defaultOption === 'array' && readonlyOption === 'array';
         const isGenericOption = defaultOption === 'generic' && readonlyOption === 'generic';
@@ -206,6 +218,7 @@
                 });
             },
             TSTypeReference(node) {
+                var _a;
                 if (isGenericOption ||
                     node.typeName.type !== experimental_utils_1.AST_NODE_TYPES.Identifier) {
                     return;
@@ -218,7 +231,7 @@
                     return;
                 }
                 const readonlyPrefix = isReadonlyArrayType ? 'readonly ' : '';
-                const typeParams = node.typeParameters && node.typeParameters.params;
+                const typeParams = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params;
                 const messageId = defaultOption === 'array'
                     ? 'errorStringArray'
                     : 'errorStringArraySimple';
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map
index 02df701..2acd2d2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map
@@ -1 +1 @@
-{"version":3,"file":"array-type.js","sourceRoot":"","sources":["../../src/rules/array-type.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"array-type.js","sourceRoot":"","sources":["../../src/rules/array-type.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js
index 3e58858..e00e853 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js
@@ -1,14 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const tsutils = __importStar(require("tsutils"));
-const ts = __importStar(require("typescript"));
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
     name: 'await-thenable',
@@ -33,8 +44,8 @@
             AwaitExpression(node) {
                 const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
                 const type = checker.getTypeAtLocation(originalNode.expression);
-                if (!tsutils.isTypeFlagSet(type, ts.TypeFlags.Any) &&
-                    !tsutils.isTypeFlagSet(type, ts.TypeFlags.Unknown) &&
+                if (!util.isTypeAnyType(type) &&
+                    !util.isTypeUnknownType(type) &&
                     !tsutils.isThenableType(checker, originalNode.expression, type)) {
                     context.report({
                         messageId: 'await',
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js.map
index d8df670..b53e8dc 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js.map
@@ -1 +1 @@
-{"version":3,"file":"await-thenable.js","sourceRoot":"","sources":["../../src/rules/await-thenable.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAAmC;AACnC,+CAAiC;AAEjC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,6DAA6D;SACrE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAChB;IACD,cAAc,EAAE,EAAE;IAElB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEhE,IACE,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;oBAC9C,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBAClD,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,EAC/D;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,OAAO;wBAClB,IAAI;qBACL,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"await-thenable.js","sourceRoot":"","sources":["../../src/rules/await-thenable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAEnC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,6DAA6D;SACrE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAChB;IACD,cAAc,EAAE,EAAE;IAElB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEhE,IACE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;oBACzB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC7B,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,EAC/D;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,OAAO;wBAClB,IAAI;qBACL,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js
index 83f25bc..d2a19b4 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js
@@ -1,57 +1,109 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.defaultMinimumDescriptionLength = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
-const defaultOptions = [
-    {
-        'ts-ignore': true,
-        'ts-nocheck': true,
-        'ts-check': false,
-    },
-];
+exports.defaultMinimumDescriptionLength = 3;
 exports.default = util.createRule({
     name: 'ban-ts-comment',
     meta: {
         type: 'problem',
         docs: {
-            description: 'Bans `// @ts-<directive>` comments from being used',
+            description: 'Bans `// @ts-<directive>` comments from being used or requires descriptions after directive',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
         },
         messages: {
-            tsDirectiveComment: 'Do not use "// @ts-{directive}" because it alters compilation errors.',
+            tsDirectiveComment: 'Do not use "// @ts-{{directive}}" because it alters compilation errors.',
+            tsDirectiveCommentRequiresDescription: 'Include a description after the "// @ts-{{directive}}" directive to explain why the @ts-{{directive}} is necessary. The description must be {{minimumDescriptionLength}} characters or longer.',
         },
         schema: [
             {
                 type: 'object',
                 properties: {
+                    'ts-expect-error': {
+                        oneOf: [
+                            {
+                                type: 'boolean',
+                                default: true,
+                            },
+                            {
+                                enum: ['allow-with-description'],
+                            },
+                        ],
+                    },
                     'ts-ignore': {
-                        type: 'boolean',
-                        default: true,
+                        oneOf: [
+                            {
+                                type: 'boolean',
+                                default: true,
+                            },
+                            {
+                                enum: ['allow-with-description'],
+                            },
+                        ],
                     },
                     'ts-nocheck': {
-                        type: 'boolean',
-                        default: true,
+                        oneOf: [
+                            {
+                                type: 'boolean',
+                                default: true,
+                            },
+                            {
+                                enum: ['allow-with-description'],
+                            },
+                        ],
                     },
                     'ts-check': {
-                        type: 'boolean',
-                        default: false,
+                        oneOf: [
+                            {
+                                type: 'boolean',
+                                default: true,
+                            },
+                            {
+                                enum: ['allow-with-description'],
+                            },
+                        ],
+                    },
+                    minimumDescriptionLength: {
+                        type: 'number',
+                        default: exports.defaultMinimumDescriptionLength,
                     },
                 },
                 additionalProperties: false,
             },
         ],
     },
-    defaultOptions,
+    defaultOptions: [
+        {
+            'ts-expect-error': 'allow-with-description',
+            'ts-ignore': true,
+            'ts-nocheck': true,
+            'ts-check': false,
+            minimumDescriptionLength: exports.defaultMinimumDescriptionLength,
+        },
+    ],
     create(context, [options]) {
-        const tsCommentRegExp = /^\/*\s*@ts-(ignore|check|nocheck)/;
+        const tsCommentRegExp = /^\/*\s*@ts-(expect-error|ignore|check|nocheck)(.*)/;
         const sourceCode = context.getSourceCode();
         return {
             Program() {
@@ -61,15 +113,26 @@
                     if (comment.type !== experimental_utils_1.AST_TOKEN_TYPES.Line) {
                         return;
                     }
-                    const [, directive] = (_a = tsCommentRegExp.exec(comment.value), (_a !== null && _a !== void 0 ? _a : []));
+                    const [, directive, description] = (_a = tsCommentRegExp.exec(comment.value)) !== null && _a !== void 0 ? _a : [];
                     const fullDirective = `ts-${directive}`;
-                    if (options[fullDirective]) {
+                    const option = options[fullDirective];
+                    if (option === true) {
                         context.report({
                             data: { directive },
                             node: comment,
                             messageId: 'tsDirectiveComment',
                         });
                     }
+                    if (option === 'allow-with-description') {
+                        const { minimumDescriptionLength = exports.defaultMinimumDescriptionLength, } = options;
+                        if (description.trim().length < minimumDescriptionLength) {
+                            context.report({
+                                data: { directive, minimumDescriptionLength },
+                                node: comment,
+                                messageId: 'tsDirectiveCommentRequiresDescription',
+                            });
+                        }
+                    }
                 });
             },
         };
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map
index 2766ba5..7d6e421 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map
@@ -1 +1 @@
-{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAQhC,MAAM,cAAc,GAAc;IAChC;QACE,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC;AAIF,kBAAe,IAAI,CAAC,UAAU,CAAwB;IACpD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,kBAAkB,EAChB,uEAAuE;SAC1E;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;qBACd;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;qBACd;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc;IACd,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,eAAe,GAAG,mCAAmC,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAE7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;;oBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,oCAAe,CAAC,IAAI,EAAE;wBACzC,OAAO;qBACR;oBAED,MAAM,CAAC,EAAE,SAAS,CAAC,SAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uCAAI,EAAE,EAAA,CAAC;oBAEhE,MAAM,aAAa,GAAG,MAAM,SAAS,EAAmB,CAAC;oBAEzD,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;wBAC1B,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,EAAE,SAAS,EAAE;4BACnB,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,oBAAoB;yBAChC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js
deleted file mode 100644
index 8c2e441..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const util = __importStar(require("../util"));
-exports.default = util.createRule({
-    name: 'ban-ts-ignore',
-    meta: {
-        type: 'problem',
-        docs: {
-            description: 'Bans “// @ts-ignore” comments from being used',
-            category: 'Best Practices',
-            recommended: 'error',
-        },
-        schema: [],
-        messages: {
-            tsIgnoreComment: 'Do not use "// @ts-ignore" comments because they suppress compilation errors.',
-        },
-        deprecated: true,
-        replacedBy: ['@typescript-eslint/ban-ts-comment'],
-    },
-    defaultOptions: [],
-    create(context) {
-        const tsIgnoreRegExp = /^\/*\s*@ts-ignore/;
-        const sourceCode = context.getSourceCode();
-        return {
-            Program() {
-                const comments = sourceCode.getAllComments();
-                comments.forEach(comment => {
-                    if (comment.type !== experimental_utils_1.AST_TOKEN_TYPES.Line) {
-                        return;
-                    }
-                    if (tsIgnoreRegExp.test(comment.value)) {
-                        context.report({
-                            node: comment,
-                            messageId: 'tsIgnoreComment',
-                        });
-                    }
-                });
-            },
-        };
-    },
-});
-//# sourceMappingURL=ban-ts-ignore.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js.map
deleted file mode 100644
index 077bc4a..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ban-ts-ignore.js","sourceRoot":"","sources":["../../src/rules/ban-ts-ignore.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,eAAe,EACb,+EAA+E;SAClF;QACD,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,mCAAmC,CAAC;KAClD;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,mBAAmB,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAE7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,oCAAe,CAAC,IAAI,EAAE;wBACzC,OAAO;qBACR;oBACD,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,iBAAiB;yBAC7B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js
new file mode 100644
index 0000000..46cab0d
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js
@@ -0,0 +1,75 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+// tslint regex
+// https://github.com/palantir/tslint/blob/95d9d958833fd9dc0002d18cbe34db20d0fbf437/src/enableDisableRules.ts#L32
+const ENABLE_DISABLE_REGEX = /^\s*tslint:(enable|disable)(?:-(line|next-line))?(:|\s|$)/;
+const toText = (text, type) => type === experimental_utils_1.AST_TOKEN_TYPES.Line
+    ? ['//', text.trim()].join(' ')
+    : ['/*', text.trim(), '*/'].join(' ');
+exports.default = util.createRule({
+    name: 'ban-tslint-comment',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Bans `// tslint:<rule-flag>` comments from being used',
+            category: 'Stylistic Issues',
+            recommended: false,
+        },
+        messages: {
+            commentDetected: 'tslint comment detected: "{{ text }}"',
+        },
+        schema: [],
+        fixable: 'code',
+    },
+    defaultOptions: [],
+    create: context => {
+        const sourceCode = context.getSourceCode();
+        return {
+            Program() {
+                const comments = sourceCode.getAllComments();
+                comments.forEach(c => {
+                    if (ENABLE_DISABLE_REGEX.test(c.value)) {
+                        context.report({
+                            data: { text: toText(c.value, c.type) },
+                            node: c,
+                            messageId: 'commentDetected',
+                            fix(fixer) {
+                                const rangeStart = sourceCode.getIndexFromLoc({
+                                    column: c.loc.start.column > 0 ? c.loc.start.column - 1 : 0,
+                                    line: c.loc.start.line,
+                                });
+                                const rangeEnd = sourceCode.getIndexFromLoc({
+                                    column: c.loc.end.column,
+                                    line: c.loc.end.line,
+                                });
+                                return fixer.removeRange([rangeStart, rangeEnd + 1]);
+                            },
+                        });
+                    }
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=ban-tslint-comment.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map
new file mode 100644
index 0000000..301958f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ban-tslint-comment.js","sourceRoot":"","sources":["../../src/rules/ban-tslint-comment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAEhC,eAAe;AACf,iHAAiH;AACjH,MAAM,oBAAoB,GAAG,2DAA2D,CAAC;AAEzF,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,IAAkD,EAC1C,EAAE,CACV,IAAI,KAAK,oCAAe,CAAC,IAAI;IAC3B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,uCAAuC;SACzD;QACD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,OAAO,CAAC,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;4BACvC,IAAI,EAAE,CAAC;4BACP,SAAS,EAAE,iBAAiB;4BAC5B,GAAG,CAAC,KAAK;gCACP,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC5C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3D,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;iCACvB,CAAC,CAAC;gCACH,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC1C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;oCACxB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;iCACrB,CAAC,CAAC;gCACH,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BACvD,CAAC;yBACF,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js
index f0cba4b..eb9fc2d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js
@@ -1,12 +1,26 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.TYPE_KEYWORDS = void 0;
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
 function removeSpaces(str) {
     return str.replace(/ /g, '');
@@ -26,12 +40,6 @@
     }
     return '';
 }
-/*
-  Defaults for this rule should be treated as an "all or nothing"
-  merge, so we need special handling here.
-
-  See: https://github.com/typescript-eslint/typescript-eslint/issues/686
- */
 const defaultTypes = {
     String: {
         message: 'Use string instead',
@@ -45,14 +53,52 @@
         message: 'Use number instead',
         fixWith: 'number',
     },
-    Object: {
-        message: 'Use Record<string, any> instead',
-        fixWith: 'Record<string, any>',
-    },
     Symbol: {
         message: 'Use symbol instead',
         fixWith: 'symbol',
     },
+    Function: {
+        message: [
+            'The `Function` type accepts any function-like value.',
+            'It provides no type safety when calling the function, which can be a common source of bugs.',
+            'It also accepts things like class declarations, which will throw at runtime as they will not be called with `new`.',
+            'If you are expecting the function to accept certain arguments, you should explicitly define the function shape.',
+        ].join('\n'),
+    },
+    // object typing
+    Object: {
+        message: [
+            'The `Object` type actually means "any non-nullish value", so it is marginally better than `unknown`.',
+            '- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
+            '- If you want a type meaning "any value", you probably want `unknown` instead.',
+        ].join('\n'),
+    },
+    '{}': {
+        message: [
+            '`{}` actually means "any non-nullish value".',
+            '- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
+            '- If you want a type meaning "any value", you probably want `unknown` instead.',
+        ].join('\n'),
+    },
+    object: {
+        message: [
+            'The `object` type is currently hard to use ([see this issue](https://github.com/microsoft/TypeScript/issues/21732)).',
+            'Consider using `Record<string, unknown>` instead, as it allows you to more easily inspect and use the keys.',
+        ].join('\n'),
+    },
+};
+exports.TYPE_KEYWORDS = {
+    bigint: experimental_utils_1.AST_NODE_TYPES.TSBigIntKeyword,
+    boolean: experimental_utils_1.AST_NODE_TYPES.TSBooleanKeyword,
+    never: experimental_utils_1.AST_NODE_TYPES.TSNeverKeyword,
+    null: experimental_utils_1.AST_NODE_TYPES.TSNullKeyword,
+    number: experimental_utils_1.AST_NODE_TYPES.TSNumberKeyword,
+    object: experimental_utils_1.AST_NODE_TYPES.TSObjectKeyword,
+    string: experimental_utils_1.AST_NODE_TYPES.TSStringKeyword,
+    symbol: experimental_utils_1.AST_NODE_TYPES.TSSymbolKeyword,
+    undefined: experimental_utils_1.AST_NODE_TYPES.TSUndefinedKeyword,
+    unknown: experimental_utils_1.AST_NODE_TYPES.TSUnknownKeyword,
+    void: experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword,
 };
 exports.default = util.createRule({
     name: 'ban-types',
@@ -65,7 +111,7 @@
         },
         fixable: 'code',
         messages: {
-            bannedTypeMessage: "Don't use '{{name}}' as a type.{{customMessage}}",
+            bannedTypeMessage: "Don't use `{{name}}` as a type.{{customMessage}}",
         },
         schema: [
             {
@@ -76,6 +122,7 @@
                         additionalProperties: {
                             oneOf: [
                                 { type: 'null' },
+                                { type: 'boolean' },
                                 { type: 'string' },
                                 {
                                     type: 'object',
@@ -99,37 +146,36 @@
     defaultOptions: [{}],
     create(context, [options]) {
         var _a, _b;
-        const extendDefaults = (_a = options.extendDefaults, (_a !== null && _a !== void 0 ? _a : true));
-        const customTypes = (_b = options.types, (_b !== null && _b !== void 0 ? _b : {}));
-        const types = Object.assign(Object.assign({}, (extendDefaults ? defaultTypes : {})), customTypes);
+        const extendDefaults = (_a = options.extendDefaults) !== null && _a !== void 0 ? _a : true;
+        const customTypes = (_b = options.types) !== null && _b !== void 0 ? _b : {};
+        const types = Object.assign({}, extendDefaults ? defaultTypes : {}, customTypes);
         const bannedTypes = new Map(Object.entries(types).map(([type, data]) => [removeSpaces(type), data]));
         function checkBannedTypes(typeNode, name = stringifyTypeName(typeNode, context.getSourceCode())) {
             const bannedType = bannedTypes.get(name);
-            if (bannedType !== undefined) {
-                const customMessage = getCustomMessage(bannedType);
-                const fixWith = bannedType && typeof bannedType === 'object' && bannedType.fixWith;
-                context.report({
-                    node: typeNode,
-                    messageId: 'bannedTypeMessage',
-                    data: {
-                        name,
-                        customMessage,
-                    },
-                    fix: fixWith
-                        ? (fixer) => fixer.replaceText(typeNode, fixWith)
-                        : null,
-                });
+            if (bannedType === undefined || bannedType === false) {
+                return;
             }
+            const customMessage = getCustomMessage(bannedType);
+            const fixWith = bannedType && typeof bannedType === 'object' && bannedType.fixWith;
+            context.report({
+                node: typeNode,
+                messageId: 'bannedTypeMessage',
+                data: {
+                    name,
+                    customMessage,
+                },
+                fix: fixWith
+                    ? (fixer) => fixer.replaceText(typeNode, fixWith)
+                    : null,
+            });
         }
-        return Object.assign(Object.assign(Object.assign({}, (bannedTypes.has('null') && {
-            TSNullKeyword(node) {
-                checkBannedTypes(node, 'null');
-            },
-        })), (bannedTypes.has('undefined') && {
-            TSUndefinedKeyword(node) {
-                checkBannedTypes(node, 'undefined');
-            },
-        })), { TSTypeLiteral(node) {
+        const keywordSelectors = util.objectReduceKey(exports.TYPE_KEYWORDS, (acc, keyword) => {
+            if (bannedTypes.has(keyword)) {
+                acc[exports.TYPE_KEYWORDS[keyword]] = (node) => checkBannedTypes(node, keyword);
+            }
+            return acc;
+        }, {});
+        return Object.assign(Object.assign({}, keywordSelectors), { TSTypeLiteral(node) {
                 if (node.members.length) {
                     return;
                 }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map
index 686410e..3f3eb61 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map
@@ -1 +1 @@
-{"version":3,"file":"ban-types.js","sourceRoot":"","sources":["../../src/rules/ban-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"ban-types.js","sourceRoot":"","sources":["../../src/rules/ban-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js
deleted file mode 100644
index 9a31bc0..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js
+++ /dev/null
@@ -1,144 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const camelcase_1 = __importDefault(require("eslint/lib/rules/camelcase"));
-const util = __importStar(require("../util"));
-const schema = util.deepMerge(Array.isArray(camelcase_1.default.meta.schema)
-    ? camelcase_1.default.meta.schema[0]
-    : camelcase_1.default.meta.schema, {
-    properties: {
-        genericType: {
-            enum: ['always', 'never'],
-        },
-    },
-});
-exports.default = util.createRule({
-    name: 'camelcase',
-    meta: {
-        type: 'suggestion',
-        docs: {
-            description: 'Enforce camelCase naming convention',
-            category: 'Stylistic Issues',
-            recommended: 'error',
-            extendsBaseRule: true,
-        },
-        deprecated: true,
-        replacedBy: ['naming-convention'],
-        schema: [schema],
-        messages: camelcase_1.default.meta.messages,
-    },
-    defaultOptions: [
-        {
-            allow: ['^UNSAFE_'],
-            ignoreDestructuring: false,
-            properties: 'never',
-            genericType: 'never',
-        },
-    ],
-    create(context, [options]) {
-        var _a, _b;
-        const rules = camelcase_1.default.create(context);
-        const TS_PROPERTY_TYPES = [
-            experimental_utils_1.AST_NODE_TYPES.TSPropertySignature,
-            experimental_utils_1.AST_NODE_TYPES.ClassProperty,
-            experimental_utils_1.AST_NODE_TYPES.TSParameterProperty,
-            experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty,
-        ];
-        const genericType = options.genericType;
-        const properties = options.properties;
-        const allow = (_b = (_a = options.allow) === null || _a === void 0 ? void 0 : _a.map(entry => ({
-            name: entry,
-            regex: new RegExp(entry),
-        })), (_b !== null && _b !== void 0 ? _b : []));
-        /**
-         * Checks if a string contains an underscore and isn't all upper-case
-         * @param  name The string to check.
-         */
-        function isUnderscored(name) {
-            // if there's an underscore, it might be A_CONSTANT, which is okay
-            return name.includes('_') && name !== name.toUpperCase();
-        }
-        /**
-         * Checks if a string match the ignore list
-         * @param name The string to check.
-         * @returns if the string is ignored
-         * @private
-         */
-        function isAllowed(name) {
-            return (allow.findIndex(entry => name === entry.name || entry.regex.test(name)) !== -1);
-        }
-        /**
-         * Checks if the the node is a valid TypeScript property type.
-         * @param node the node to be validated.
-         * @returns true if the node is a TypeScript property type.
-         * @private
-         */
-        function isTSPropertyType(node) {
-            if (TS_PROPERTY_TYPES.includes(node.type)) {
-                return true;
-            }
-            if (node.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern) {
-                return (node.parent !== undefined &&
-                    TS_PROPERTY_TYPES.includes(node.parent.type));
-            }
-            return false;
-        }
-        function report(node) {
-            context.report({
-                node,
-                messageId: 'notCamelCase',
-                data: { name: node.name },
-            });
-        }
-        return {
-            Identifier(node) {
-                /*
-                 * Leading and trailing underscores are commonly used to flag
-                 * private/protected identifiers, strip them
-                 */
-                const name = node.name.replace(/^_+|_+$/g, '');
-                // First, we ignore the node if it match the ignore list
-                if (isAllowed(name)) {
-                    return;
-                }
-                // Check TypeScript specific nodes
-                const parent = node.parent;
-                if (parent && isTSPropertyType(parent)) {
-                    if (properties === 'always' && isUnderscored(name)) {
-                        report(node);
-                    }
-                    return;
-                }
-                if (parent && parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeParameter) {
-                    if (genericType === 'always' && isUnderscored(name)) {
-                        report(node);
-                    }
-                    return;
-                }
-                if (parent && parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) {
-                    // Report underscored object names
-                    if (properties === 'always' &&
-                        parent.object.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
-                        parent.object.name === node.name &&
-                        isUnderscored(name)) {
-                        report(node);
-                    }
-                    return;
-                }
-                // Let the base rule deal with the rest
-                rules.Identifier(node);
-            },
-        };
-    },
-});
-//# sourceMappingURL=camelcase.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js.map
deleted file mode 100644
index 73957ec..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"camelcase.js","sourceRoot":"","sources":["../../src/rules/camelcase.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAG+C;AAC/C,2EAAkD;AAClD,8CAAgC;AAKhC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,KAAK,CAAC,OAAO,CAAC,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC,CAAC,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,mBAAQ,CAAC,IAAI,CAAC,MAAM,EACxB;IACE,UAAU,EAAE;QACV,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC1B;KACF;CACF,CACF,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;SACtB;QACD,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,MAAM,EAAE,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,mBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,mBAAmB,EAAE,KAAK;YAC1B,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,OAAO;SACrB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;;QACvB,MAAM,KAAK,GAAG,mBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG;YACxB,mCAAc,CAAC,mBAAmB;YAClC,mCAAc,CAAC,aAAa;YAC5B,mCAAc,CAAC,mBAAmB;YAClC,mCAAc,CAAC,uBAAuB;SACvC,CAAC;QAEF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM,KAAK,eACT,OAAO,CAAC,KAAK,0CAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;SACzB,CAAC,wCAAK,EAAE,EAAA,CAAC;QAEZ;;;WAGG;QACH,SAAS,aAAa,CAAC,IAAY;YACjC,kEAAkE;YAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3D,CAAC;QAED;;;;;WAKG;QACH,SAAS,SAAS,CAAC,IAAY;YAC7B,OAAO,CACL,KAAK,CAAC,SAAS,CACb,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACvD,KAAK,CAAC,CAAC,CACT,CAAC;QACJ,CAAC;QAED;;;;;WAKG;QACH,SAAS,gBAAgB,CAAC,IAAmB;YAC3C,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;gBAClD,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,SAAS;oBACzB,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAC7C,CAAC;aACH;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,MAAM,CAAC,IAAyB;YACvC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,cAAc;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,UAAU,CAAC,IAAI;gBACb;;;mBAGG;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAE/C,wDAAwD;gBACxD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO;iBACR;gBAED,kCAAkC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;oBACtC,IAAI,UAAU,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;wBAClD,MAAM,CAAC,IAAI,CAAC,CAAC;qBACd;oBAED,OAAO;iBACR;gBAED,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAAE;oBAC5D,IAAI,WAAW,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;wBACnD,MAAM,CAAC,IAAI,CAAC,CAAC;qBACd;oBAED,OAAO;iBACR;gBAED,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,wBAAwB,EAAE;oBACrE,kCAAkC;oBAClC,IACE,UAAU,KAAK,QAAQ;wBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBAChD,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;wBAChC,aAAa,CAAC,IAAI,CAAC,EACnB;wBACA,MAAM,CAAC,IAAI,CAAC,CAAC;qBACd;oBAED,OAAO;iBACR;gBAED,uCAAuC;gBACvC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js
new file mode 100644
index 0000000..2d6e062
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js
@@ -0,0 +1,114 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+const printNodeModifiers = (node, final) => {
+    var _a;
+    return `${(_a = node.accessibility) !== null && _a !== void 0 ? _a : ''}${node.static ? ' static' : ''} ${final} `.trimLeft();
+};
+const isSupportedLiteral = (node) => {
+    if (node.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
+        return true;
+    }
+    if (node.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression ||
+        node.type === experimental_utils_1.AST_NODE_TYPES.TemplateLiteral) {
+        return ('quasi' in node ? node.quasi.quasis : node.quasis).length === 1;
+    }
+    return false;
+};
+exports.default = util.createRule({
+    name: 'class-literal-property-style',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Ensures that literals on classes are exposed in a consistent style',
+            category: 'Best Practices',
+            recommended: false,
+        },
+        fixable: 'code',
+        messages: {
+            preferFieldStyle: 'Literals should be exposed using readonly fields.',
+            preferGetterStyle: 'Literals should be exposed using getters.',
+        },
+        schema: [{ enum: ['fields', 'getters'] }],
+    },
+    defaultOptions: ['fields'],
+    create(context, [style]) {
+        if (style === 'fields') {
+            return {
+                MethodDefinition(node) {
+                    if (node.kind !== 'get' ||
+                        !node.value.body ||
+                        !node.value.body.body.length) {
+                        return;
+                    }
+                    const [statement] = node.value.body.body;
+                    if (statement.type !== experimental_utils_1.AST_NODE_TYPES.ReturnStatement) {
+                        return;
+                    }
+                    const { argument } = statement;
+                    if (!argument || !isSupportedLiteral(argument)) {
+                        return;
+                    }
+                    context.report({
+                        node: node.key,
+                        messageId: 'preferFieldStyle',
+                        fix(fixer) {
+                            const sourceCode = context.getSourceCode();
+                            const name = sourceCode.getText(node.key);
+                            let text = '';
+                            text += printNodeModifiers(node, 'readonly');
+                            text += node.computed ? `[${name}]` : name;
+                            text += ` = ${sourceCode.getText(argument)};`;
+                            return fixer.replaceText(node, text);
+                        },
+                    });
+                },
+            };
+        }
+        return {
+            ClassProperty(node) {
+                if (!node.readonly || node.declare) {
+                    return;
+                }
+                const { value } = node;
+                if (!value || !isSupportedLiteral(value)) {
+                    return;
+                }
+                context.report({
+                    node: node.key,
+                    messageId: 'preferGetterStyle',
+                    fix(fixer) {
+                        const sourceCode = context.getSourceCode();
+                        const name = sourceCode.getText(node.key);
+                        let text = '';
+                        text += printNodeModifiers(node, 'get');
+                        text += node.computed ? `[${name}]` : name;
+                        text += `() { return ${sourceCode.getText(value)}; }`;
+                        return fixer.replaceText(node, text);
+                    },
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=class-literal-property-style.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js.map
new file mode 100644
index 0000000..99fba14
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-literal-property-style.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"class-literal-property-style.js","sourceRoot":"","sources":["../../src/rules/class-literal-property-style.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,MAAM,kBAAkB,GAAG,CACzB,IAAuB,EACvB,KAAyB,EACjB,EAAE;;IACV,OAAA,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,GACzB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC5B,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAA;CAAA,CAAC;AAE1B,MAAM,kBAAkB,GAAG,CACzB,IAAmB,EACiB,EAAE;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IAED,IACE,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,wBAAwB;QACrD,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAC5C;QACA,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KACzE;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,oEAAoE;YACtE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,gBAAgB,EAAE,mDAAmD;YACrE,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;KAC1C;IACD,cAAc,EAAE,CAAC,QAAQ,CAAC;IAC1B,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QACrB,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,OAAO;gBACL,gBAAgB,CAAC,IAA+B;oBAC9C,IACE,IAAI,CAAC,IAAI,KAAK,KAAK;wBACnB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;wBAChB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAC5B;wBACA,OAAO;qBACR;oBAED,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAEzC,IAAI,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAAE;wBACrD,OAAO;qBACR;oBAED,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;oBAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;wBAC9C,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI,CAAC,GAAG;wBACd,SAAS,EAAE,kBAAkB;wBAC7B,GAAG,CAAC,KAAK;4BACP,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;4BAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAE1C,IAAI,IAAI,GAAG,EAAE,CAAC;4BAEd,IAAI,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;4BAC7C,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC3C,IAAI,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;4BAE9C,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACvC,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;SACH;QAED,OAAO;YACL,aAAa,CAAC,IAA4B;gBACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;oBAClC,OAAO;iBACR;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;gBAEvB,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;oBACxC,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,GAAG;oBACd,SAAS,EAAE,mBAAmB;oBAC9B,GAAG,CAAC,KAAK;wBACP,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAE1C,IAAI,IAAI,GAAG,EAAE,CAAC;wBAEd,IAAI,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACxC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC3C,IAAI,IAAI,eAAe,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;wBAEtD,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACvC,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js
deleted file mode 100644
index 2103564..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js
+++ /dev/null
@@ -1,112 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const util = __importStar(require("../util"));
-exports.default = util.createRule({
-    name: 'class-name-casing',
-    meta: {
-        type: 'suggestion',
-        docs: {
-            description: 'Require PascalCased class and interface names',
-            category: 'Best Practices',
-            recommended: 'error',
-        },
-        deprecated: true,
-        replacedBy: ['naming-convention'],
-        messages: {
-            notPascalCased: "{{friendlyName}} '{{name}}' must be PascalCased.",
-        },
-        schema: [
-            {
-                type: 'object',
-                properties: {
-                    allowUnderscorePrefix: {
-                        type: 'boolean',
-                        default: false,
-                    },
-                },
-                additionalProperties: false,
-            },
-        ],
-    },
-    defaultOptions: [{ allowUnderscorePrefix: false }],
-    create(context, [options]) {
-        const UNDERSCORE = '_';
-        /**
-         * Determine if the string is Upper cased
-         * @param str
-         */
-        function isUpperCase(str) {
-            return str === str.toUpperCase();
-        }
-        /**
-         * Determine if the identifier name is PascalCased
-         * @param name The identifier name
-         */
-        function isPascalCase(name) {
-            const startIndex = options.allowUnderscorePrefix && name.startsWith(UNDERSCORE) ? 1 : 0;
-            return (isUpperCase(name.charAt(startIndex)) &&
-                !name.includes(UNDERSCORE, startIndex));
-        }
-        /**
-         * Report a class declaration as invalid
-         * @param decl The declaration
-         * @param id The name of the declaration
-         */
-        function report(decl, id) {
-            let friendlyName;
-            switch (decl.type) {
-                case experimental_utils_1.AST_NODE_TYPES.ClassDeclaration:
-                case experimental_utils_1.AST_NODE_TYPES.ClassExpression:
-                    friendlyName = decl.abstract ? 'Abstract class' : 'Class';
-                    break;
-                case experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration:
-                    friendlyName = 'Interface';
-                    break;
-            }
-            context.report({
-                node: id,
-                messageId: 'notPascalCased',
-                data: {
-                    friendlyName,
-                    name: id.name,
-                },
-            });
-        }
-        return {
-            'ClassDeclaration, TSInterfaceDeclaration, ClassExpression'(node) {
-                // class expressions (i.e. export default class {}) are OK
-                if (node.id && !isPascalCase(node.id.name)) {
-                    report(node, node.id);
-                }
-            },
-            "VariableDeclarator[init.type='ClassExpression']"(node) {
-                if (node.id.type === experimental_utils_1.AST_NODE_TYPES.ArrayPattern ||
-                    node.id.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
-                    // TODO - handle the BindingPattern case maybe?
-                    /*
-                    // this example makes me barf, but it's valid code
-                    var { bar } = class {
-                      static bar() { return 2 }
-                    }
-                    */
-                }
-                else {
-                    const id = node.id;
-                    const nodeInit = node.init;
-                    if (id && !nodeInit.id && !isPascalCase(id.name)) {
-                        report(nodeInit, id);
-                    }
-                }
-            },
-        };
-    },
-});
-//# sourceMappingURL=class-name-casing.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js.map
deleted file mode 100644
index cd520f2..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"class-name-casing.js","sourceRoot":"","sources":["../../src/rules/class-name-casing.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACR,cAAc,EAAE,kDAAkD;SACnE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,qBAAqB,EAAE;wBACrB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC;QAEvB;;;WAGG;QACH,SAAS,WAAW,CAAC,GAAW;YAC9B,OAAO,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;QAED;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAY;YAChC,MAAM,UAAU,GACd,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACpC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CACvC,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,SAAS,MAAM,CACb,IAG4B,EAC5B,EAAuB;YAEvB,IAAI,YAAY,CAAC;YAEjB,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,gBAAgB,CAAC;gBACrC,KAAK,mCAAc,CAAC,eAAe;oBACjC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1D,MAAM;gBACR,KAAK,mCAAc,CAAC,sBAAsB;oBACxC,YAAY,GAAG,WAAW,CAAC;oBAC3B,MAAM;aACT;YAED,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,gBAAgB;gBAC3B,IAAI,EAAE;oBACJ,YAAY;oBACZ,IAAI,EAAE,EAAE,CAAC,IAAI;iBACd;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,2DAA2D,CACzD,IAG4B;gBAE5B,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC1C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;iBACvB;YACH,CAAC;YACD,iDAAiD,CAC/C,IAAiC;gBAEjC,IACE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY;oBAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa,EAC7C;oBACA,+CAA+C;oBAC/C;;;;;sBAKE;iBACH;qBAAM;oBACL,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAgC,CAAC;oBAEvD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;wBAChD,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;qBACtB;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js
new file mode 100644
index 0000000..5083584
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js
@@ -0,0 +1,177 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+const comma_dangle_1 = __importDefault(require("eslint/lib/rules/comma-dangle"));
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const OPTION_VALUE_SCHEME = [
+    'always-multiline',
+    'always',
+    'never',
+    'only-multiline',
+];
+const DEFAULT_OPTION_VALUE = 'never';
+function normalizeOptions(options) {
+    var _a, _b, _c;
+    if (typeof options === 'string') {
+        return {
+            enums: options,
+            generics: options,
+            tuples: options,
+        };
+    }
+    return {
+        enums: (_a = options.enums) !== null && _a !== void 0 ? _a : DEFAULT_OPTION_VALUE,
+        generics: (_b = options.generics) !== null && _b !== void 0 ? _b : DEFAULT_OPTION_VALUE,
+        tuples: (_c = options.tuples) !== null && _c !== void 0 ? _c : DEFAULT_OPTION_VALUE,
+    };
+}
+exports.default = util.createRule({
+    name: 'comma-dangle',
+    meta: {
+        type: 'layout',
+        docs: {
+            description: 'Require or disallow trailing comma',
+            category: 'Stylistic Issues',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: {
+            definitions: {
+                value: {
+                    enum: OPTION_VALUE_SCHEME,
+                },
+                valueWithIgnore: {
+                    enum: [...OPTION_VALUE_SCHEME, 'ignore'],
+                },
+            },
+            type: 'array',
+            items: [
+                {
+                    oneOf: [
+                        {
+                            $ref: '#/definitions/value',
+                        },
+                        {
+                            type: 'object',
+                            properties: {
+                                arrays: { $ref: '#/definitions/valueWithIgnore' },
+                                objects: { $ref: '#/definitions/valueWithIgnore' },
+                                imports: { $ref: '#/definitions/valueWithIgnore' },
+                                exports: { $ref: '#/definitions/valueWithIgnore' },
+                                functions: { $ref: '#/definitions/valueWithIgnore' },
+                                enums: { $ref: '#/definitions/valueWithIgnore' },
+                                generics: { $ref: '#/definitions/valueWithIgnore' },
+                                tuples: { $ref: '#/definitions/valueWithIgnore' },
+                            },
+                            additionalProperties: false,
+                        },
+                    ],
+                },
+            ],
+        },
+        fixable: 'code',
+        messages: comma_dangle_1.default.meta.messages,
+    },
+    defaultOptions: ['never'],
+    create(context, [options]) {
+        const rules = comma_dangle_1.default.create(context);
+        const sourceCode = context.getSourceCode();
+        const normalizedOptions = normalizeOptions(options);
+        const predicate = {
+            always: forceComma,
+            'always-multiline': forceCommaIfMultiline,
+            'only-multiline': allowCommaIfMultiline,
+            never: forbidComma,
+            ignore: () => { },
+        };
+        function last(nodes) {
+            var _a;
+            return (_a = nodes[nodes.length - 1]) !== null && _a !== void 0 ? _a : null;
+        }
+        function getLastItem(node) {
+            switch (node.type) {
+                case experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration:
+                    return last(node.members);
+                case experimental_utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration:
+                    return last(node.params);
+                case experimental_utils_1.AST_NODE_TYPES.TSTupleType:
+                    return last(node.elementTypes);
+                default:
+                    return null;
+            }
+        }
+        function getTrailingToken(node) {
+            const last = getLastItem(node);
+            const trailing = last && sourceCode.getTokenAfter(last);
+            return trailing;
+        }
+        function isMultiline(node) {
+            const last = getLastItem(node);
+            const lastToken = sourceCode.getLastToken(node);
+            return (last === null || last === void 0 ? void 0 : last.loc.end.line) !== (lastToken === null || lastToken === void 0 ? void 0 : lastToken.loc.end.line);
+        }
+        function forbidComma(node) {
+            const last = getLastItem(node);
+            const trailing = getTrailingToken(node);
+            if (last && trailing && util.isCommaToken(trailing)) {
+                context.report({
+                    node,
+                    messageId: 'unexpected',
+                    fix(fixer) {
+                        return fixer.remove(trailing);
+                    },
+                });
+            }
+        }
+        function forceComma(node) {
+            const last = getLastItem(node);
+            const trailing = getTrailingToken(node);
+            if (last && trailing && !util.isCommaToken(trailing)) {
+                context.report({
+                    node,
+                    messageId: 'missing',
+                    fix(fixer) {
+                        return fixer.insertTextAfter(last, ',');
+                    },
+                });
+            }
+        }
+        function allowCommaIfMultiline(node) {
+            if (!isMultiline(node)) {
+                forbidComma(node);
+            }
+        }
+        function forceCommaIfMultiline(node) {
+            if (isMultiline(node)) {
+                forceComma(node);
+            }
+            else {
+                forbidComma(node);
+            }
+        }
+        return Object.assign(Object.assign({}, rules), { TSEnumDeclaration: predicate[normalizedOptions.enums], TSTypeParameterDeclaration: predicate[normalizedOptions.generics], TSTupleType: predicate[normalizedOptions.tuples] });
+    },
+});
+//# sourceMappingURL=comma-dangle.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map
new file mode 100644
index 0000000..d9f1400
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"comma-dangle.js","sourceRoot":"","sources":["../../src/rules/comma-dangle.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,iFAAqD;AACrD,8EAG+C;AAU/C,MAAM,mBAAmB,GAAG;IAC1B,kBAAkB;IAClB,QAAQ;IACR,OAAO;IACP,gBAAgB;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAErC,SAAS,gBAAgB,CAAC,OAAe;;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO;YACL,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,OAAO;SAChB,CAAC;KACH;IACD,OAAO;QACL,KAAK,QAAE,OAAO,CAAC,KAAK,mCAAI,oBAAoB;QAC5C,QAAQ,QAAE,OAAO,CAAC,QAAQ,mCAAI,oBAAoB;QAClD,MAAM,QAAE,OAAO,CAAC,MAAM,mCAAI,oBAAoB;KAC/C,CAAC;AACJ,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE;YACN,WAAW,EAAE;gBACX,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;iBAC1B;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,CAAC,GAAG,mBAAmB,EAAE,QAAQ,CAAC;iBACzC;aACF;YACD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,qBAAqB;yBAC5B;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,MAAM,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCACjD,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCAClD,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCAClD,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCAClD,SAAS,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCACpD,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;gCACnD,MAAM,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;6BAClD;4BACD,oBAAoB,EAAE,KAAK;yBAC5B;qBACF;iBACF;aACF;SACF;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,sBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,CAAC,OAAO,CAAC;IACzB,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,KAAK,GAAG,sBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,UAAU;YAClB,kBAAkB,EAAE,qBAAqB;YACzC,gBAAgB,EAAE,qBAAqB;YACvC,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,GAAS,EAAE,GAAE,CAAC;SACvB,CAAC;QAEF,SAAS,IAAI,CAAC,KAAsB;;YAClC,aAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;QACzC,CAAC;QAED,SAAS,WAAW,CAAC,IAAmB;YACtC,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,iBAAiB;oBACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,mCAAc,CAAC,0BAA0B;oBAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,KAAK,mCAAc,CAAC,WAAW;oBAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC;oBACE,OAAO,IAAI,CAAC;aACf;QACH,CAAC;QAED,SAAS,gBAAgB,CAAC,IAAmB;YAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,SAAS,WAAW,CAAC,IAAmB;YACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,GAAG,CAAC,IAAI,OAAK,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAA,CAAC;QACxD,CAAC;QAED,SAAS,WAAW,CAAC,IAAmB;YACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBACnD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,YAAY;oBACvB,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,SAAS,UAAU,CAAC,IAAmB;YACrC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,SAAS;oBACpB,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC1C,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,SAAS,qBAAqB,CAAC,IAAmB;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBACtB,WAAW,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC;QAED,SAAS,qBAAqB,CAAC,IAAmB;YAChD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;gBACrB,UAAU,CAAC,IAAI,CAAC,CAAC;aAClB;iBAAM;gBACL,WAAW,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC;QAED,uCACK,KAAK,KACR,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACrD,0BAA0B,EAAE,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EACjE,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAChD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js
index 59a10e2..6e2c440 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js
@@ -1,7 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const util_1 = require("../util");
 exports.default = util_1.createRule({
     name: 'comma-spacing',
@@ -55,7 +54,7 @@
                 let token;
                 if (element === null) {
                     token = sourceCode.getTokenAfter(previousToken);
-                    if (token && eslint_utils_1.isCommaToken(token)) {
+                    if (token && util_1.isCommaToken(token)) {
                         ignoredTokens.add(token);
                     }
                 }
@@ -72,7 +71,7 @@
         function addTypeParametersTrailingCommaToIgnoreList(node) {
             const param = node.params[node.params.length - 1];
             const afterToken = sourceCode.getTokenAfter(param);
-            if (afterToken && eslint_utils_1.isCommaToken(afterToken)) {
+            if (afterToken && util_1.isCommaToken(afterToken)) {
                 ignoredTokens.add(afterToken);
             }
         }
@@ -85,7 +84,7 @@
         function validateCommaSpacing(commaToken, prevToken, nextToken) {
             if (prevToken &&
                 util_1.isTokenOnSameLine(prevToken, commaToken) &&
-                spaceBefore !== sourceCode.isSpaceBetween(prevToken, commaToken)) {
+                spaceBefore !== sourceCode.isSpaceBetweenTokens(prevToken, commaToken)) {
                 context.report({
                     node: commaToken,
                     data: {
@@ -97,7 +96,7 @@
                         : fixer.replaceTextRange([prevToken.range[1], commaToken.range[0]], ''),
                 });
             }
-            if (nextToken && eslint_utils_1.isClosingParenToken(nextToken)) {
+            if (nextToken && util_1.isClosingParenToken(nextToken)) {
                 return;
             }
             if (!spaceAfter && nextToken && nextToken.type === experimental_utils_1.AST_TOKEN_TYPES.Line) {
@@ -105,7 +104,7 @@
             }
             if (nextToken &&
                 util_1.isTokenOnSameLine(commaToken, nextToken) &&
-                spaceAfter !== sourceCode.isSpaceBetween(commaToken, nextToken)) {
+                spaceAfter !== sourceCode.isSpaceBetweenTokens(commaToken, nextToken)) {
                 context.report({
                     node: commaToken,
                     data: {
@@ -124,14 +123,14 @@
             ArrayPattern: addNullElementsToIgnoreList,
             'Program:exit'() {
                 tokensAndComments.forEach((token, i) => {
-                    if (!eslint_utils_1.isCommaToken(token)) {
+                    if (!util_1.isCommaToken(token)) {
                         return;
                     }
                     const prevToken = tokensAndComments[i - 1];
                     const nextToken = tokensAndComments[i + 1];
-                    validateCommaSpacing(token, eslint_utils_1.isCommaToken(prevToken) || ignoredTokens.has(token)
+                    validateCommaSpacing(token, util_1.isCommaToken(prevToken) || ignoredTokens.has(token)
                         ? null
-                        : prevToken, eslint_utils_1.isCommaToken(nextToken) || ignoredTokens.has(token)
+                        : prevToken, util_1.isCommaToken(nextToken) || ignoredTokens.has(token)
                         ? null
                         : nextToken);
                 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map
index 82702c1..9ddd17a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map
@@ -1 +1 @@
-{"version":3,"file":"comma-spacing.js","sourceRoot":"","sources":["../../src/rules/comma-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"comma-spacing.js","sourceRoot":"","sources":["../../src/rules/comma-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js
index 7f517a1..00e292a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -16,7 +28,7 @@
         docs: {
             category: 'Best Practices',
             description: 'Enforces consistent usage of type assertions',
-            recommended: 'error',
+            recommended: false,
         },
         messages: {
             as: "Use 'as {{cast}}' instead of '<{{cast}}>'.",
@@ -62,7 +74,18 @@
     ],
     create(context, [options]) {
         const sourceCode = context.getSourceCode();
+        function isConst(node) {
+            if (node.type !== experimental_utils_1.AST_NODE_TYPES.TSTypeReference) {
+                return false;
+            }
+            return (node.typeName.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
+                node.typeName.name === 'const');
+        }
         function reportIncorrectAssertionType(node) {
+            // If this node is `as const`, then don't report an error.
+            if (isConst(node.typeAnnotation)) {
+                return;
+            }
             const messageId = options.assertionStyle;
             context.report({
                 node,
@@ -80,8 +103,7 @@
                 case experimental_utils_1.AST_NODE_TYPES.TSTypeReference:
                     return (
                     // Ignore `as const` and `<const>`
-                    (node.typeName.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
-                        node.typeName.name !== 'const') ||
+                    !isConst(node) ||
                         // Allow qualified names which have dots between identifiers, `Foo.Bar`
                         node.typeName.type === experimental_utils_1.AST_NODE_TYPES.TSQualifiedName);
                 default:
@@ -98,7 +120,6 @@
                 node.parent &&
                 (node.parent.type === experimental_utils_1.AST_NODE_TYPES.NewExpression ||
                     node.parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                    node.parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression ||
                     node.parent.type === experimental_utils_1.AST_NODE_TYPES.ThrowStatement ||
                     node.parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern)) {
                 return;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map
index b30cb14..41dd8b1 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map
@@ -1 +1 @@
-{"version":3,"file":"consistent-type-assertions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-assertions.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgC;AAChC,8EAG+C;AAmB/C,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,8CAA8C;YAC3D,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,EAAE,EAAE,4CAA4C;YAChD,eAAe,EAAE,4CAA4C;YAC7D,KAAK,EAAE,iCAAiC;YACxC,6BAA6B,EAAE,qCAAqC;SACrE;QACD,MAAM,EAAE;YACN;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,cAAc,EAAE;gCACd,IAAI,EAAE,CAAC,OAAO,CAAC;6BAChB;yBACF;wBACD,oBAAoB,EAAE,KAAK;wBAC3B,QAAQ,EAAE,CAAC,gBAAgB,CAAC;qBAC7B;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,cAAc,EAAE;gCACd,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;6BAC9B;4BACD,2BAA2B,EAAE;gCAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC;6BAC/C;yBACF;wBACD,oBAAoB,EAAE,KAAK;wBAC3B,QAAQ,EAAE,CAAC,gBAAgB,CAAC;qBAC7B;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,cAAc,EAAE,IAAI;YACpB,2BAA2B,EAAE,OAAO;SACrC;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,4BAA4B,CACnC,IAAwD;YAExD,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS;gBACT,IAAI,EACF,SAAS,KAAK,OAAO;oBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBACnD,CAAC,CAAC,EAAE;aACT,CAAC,CAAC;QACL,CAAC;QAED,SAAS,SAAS,CAAC,IAAuB;YACxC,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,YAAY,CAAC;gBACjC,KAAK,mCAAc,CAAC,gBAAgB;oBAClC,OAAO,KAAK,CAAC;gBACf,KAAK,mCAAc,CAAC,eAAe;oBACjC,OAAO;oBACL,kCAAkC;oBAClC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;wBACjC,uEAAuE;wBACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,CACtD,CAAC;gBAEJ;oBACE,OAAO,IAAI,CAAC;aACf;QACH,CAAC;QAED,SAAS,eAAe,CACtB,IAAwD;YAExD,IACE,OAAO,CAAC,cAAc,KAAK,OAAO;gBAClC,OAAO,CAAC,2BAA2B,KAAK,OAAO;gBAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,EACxD;gBACA,OAAO;aACR;YAED,IACE,OAAO,CAAC,2BAA2B,KAAK,oBAAoB;gBAC5D,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa;oBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;oBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB;oBAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;oBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,CAAC,EACxD;gBACA,OAAO;aACR;YAED,IACE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,EACxD;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,+BAA+B;iBAC3C,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,IAAI,OAAO,CAAC,cAAc,KAAK,eAAe,EAAE;oBAC9C,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBACnC,OAAO;iBACR;gBAED,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YACD,cAAc,CAAC,IAAI;gBACjB,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE;oBACnC,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBACnC,OAAO;iBACR;gBAED,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"consistent-type-assertions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-assertions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js
index 2789140..cd0de69 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -20,8 +32,8 @@
             recommended: false,
         },
         messages: {
-            interfaceOverType: 'Use an `interface` instead of a `type`',
-            typeOverInterface: 'Use a `type` instead of an `interface`',
+            interfaceOverType: 'Use an `interface` instead of a `type`.',
+            typeOverInterface: 'Use a `type` instead of an `interface`.',
         },
         schema: [
             {
@@ -41,7 +53,7 @@
                         messageId: 'interfaceOverType',
                         fix(fixer) {
                             var _a;
-                            const typeNode = (_a = node.typeParameters, (_a !== null && _a !== void 0 ? _a : node.id));
+                            const typeNode = (_a = node.typeParameters) !== null && _a !== void 0 ? _a : node.id;
                             const fixes = [];
                             const firstToken = sourceCode.getFirstToken(node);
                             if (firstToken) {
@@ -66,7 +78,7 @@
                         messageId: 'typeOverInterface',
                         fix(fixer) {
                             var _a;
-                            const typeNode = (_a = node.typeParameters, (_a !== null && _a !== void 0 ? _a : node.id));
+                            const typeNode = (_a = node.typeParameters) !== null && _a !== void 0 ? _a : node.id;
                             const fixes = [];
                             const firstToken = sourceCode.getFirstToken(node);
                             if (firstToken) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map
index 593e029..a9d96cb 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map
@@ -1 +1 @@
-{"version":3,"file":"consistent-type-definitions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-definitions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"consistent-type-definitions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-definitions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js
new file mode 100644
index 0000000..c61196c
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js
@@ -0,0 +1,392 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+function isImportToken(token) {
+    return token.type === experimental_utils_1.AST_TOKEN_TYPES.Keyword && token.value === 'import';
+}
+function isTypeToken(token) {
+    return token.type === experimental_utils_1.AST_TOKEN_TYPES.Identifier && token.value === 'type';
+}
+exports.default = util.createRule({
+    name: 'consistent-type-imports',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Enforces consistent usage of type imports',
+            category: 'Stylistic Issues',
+            recommended: false,
+        },
+        messages: {
+            typeOverValue: 'All imports in the declaration are only used as types. Use `import type`',
+            someImportsAreOnlyTypes: 'Imports {{typeImports}} are only used as types',
+            aImportIsOnlyTypes: 'Import {{typeImports}} is only used as types',
+            valueOverType: 'Use an `import` instead of an `import type`.',
+            noImportTypeAnnotations: '`import()` type annotations are forbidden.',
+        },
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    prefer: {
+                        enum: ['type-imports', 'no-type-imports'],
+                    },
+                    disallowTypeAnnotations: {
+                        type: 'boolean',
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
+        fixable: 'code',
+    },
+    defaultOptions: [
+        {
+            prefer: 'type-imports',
+            disallowTypeAnnotations: true,
+        },
+    ],
+    create(context, [option]) {
+        var _a;
+        const prefer = (_a = option.prefer) !== null && _a !== void 0 ? _a : 'type-imports';
+        const disallowTypeAnnotations = option.disallowTypeAnnotations !== false;
+        const sourceCode = context.getSourceCode();
+        const sourceImportsMap = {};
+        return Object.assign(Object.assign({}, (prefer === 'type-imports'
+            ? {
+                // prefer type imports
+                ImportDeclaration(node) {
+                    var _a;
+                    const source = node.source.value;
+                    const sourceImports = (_a = sourceImportsMap[source]) !== null && _a !== void 0 ? _a : (sourceImportsMap[source] = {
+                        source,
+                        reportValueImports: [],
+                        typeOnlyNamedImport: null,
+                    });
+                    if (node.importKind === 'type') {
+                        if (!sourceImports.typeOnlyNamedImport &&
+                            node.specifiers.every(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier)) {
+                            sourceImports.typeOnlyNamedImport = node;
+                        }
+                        return;
+                    }
+                    // if importKind === 'value'
+                    const typeSpecifiers = [];
+                    const valueSpecifiers = [];
+                    const unusedSpecifiers = [];
+                    for (const specifier of node.specifiers) {
+                        const [variable] = context.getDeclaredVariables(specifier);
+                        if (variable.references.length === 0) {
+                            unusedSpecifiers.push(specifier);
+                        }
+                        else {
+                            const onlyHasTypeReferences = variable.references.every(ref => {
+                                if (ref.isValueReference) {
+                                    // `type T = typeof foo` will create a value reference because "foo" must be a value type
+                                    // however this value reference is safe to use with type-only imports
+                                    let parent = ref.identifier.parent;
+                                    while (parent) {
+                                        if (parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeQuery) {
+                                            return true;
+                                        }
+                                        // TSTypeQuery must have a TSESTree.EntityName as its child, so we can filter here and break early
+                                        if (parent.type !== experimental_utils_1.AST_NODE_TYPES.TSQualifiedName) {
+                                            break;
+                                        }
+                                        parent = parent.parent;
+                                    }
+                                    return false;
+                                }
+                                return ref.isTypeReference;
+                            });
+                            if (onlyHasTypeReferences) {
+                                typeSpecifiers.push(specifier);
+                            }
+                            else {
+                                valueSpecifiers.push(specifier);
+                            }
+                        }
+                    }
+                    if (typeSpecifiers.length) {
+                        sourceImports.reportValueImports.push({
+                            node,
+                            typeSpecifiers,
+                            valueSpecifiers,
+                            unusedSpecifiers,
+                        });
+                    }
+                },
+                'Program:exit'() {
+                    for (const sourceImports of Object.values(sourceImportsMap)) {
+                        if (sourceImports.reportValueImports.length === 0) {
+                            continue;
+                        }
+                        for (const report of sourceImports.reportValueImports) {
+                            if (report.valueSpecifiers.length === 0 &&
+                                report.unusedSpecifiers.length === 0) {
+                                // import is all type-only, convert the entire import to `import type`
+                                context.report({
+                                    node: report.node,
+                                    messageId: 'typeOverValue',
+                                    *fix(fixer) {
+                                        yield* fixToTypeImport(fixer, report, sourceImports);
+                                    },
+                                });
+                            }
+                            else {
+                                // we have a mixed type/value import, so we need to split them out into multiple exports
+                                const typeImportNames = report.typeSpecifiers.map(specifier => `"${specifier.local.name}"`);
+                                context.report({
+                                    node: report.node,
+                                    messageId: typeImportNames.length === 1
+                                        ? 'aImportIsOnlyTypes'
+                                        : 'someImportsAreOnlyTypes',
+                                    data: {
+                                        typeImports: typeImportNames.length === 1
+                                            ? typeImportNames[0]
+                                            : [
+                                                typeImportNames.slice(0, -1).join(', '),
+                                                typeImportNames.slice(-1)[0],
+                                            ].join(' and '),
+                                    },
+                                    *fix(fixer) {
+                                        yield* fixToTypeImport(fixer, report, sourceImports);
+                                    },
+                                });
+                            }
+                        }
+                    }
+                },
+            }
+            : {
+                // prefer no type imports
+                'ImportDeclaration[importKind = "type"]'(node) {
+                    context.report({
+                        node,
+                        messageId: 'valueOverType',
+                        fix(fixer) {
+                            return fixToValueImport(fixer, node);
+                        },
+                    });
+                },
+            })), (disallowTypeAnnotations
+            ? {
+                // disallow `import()` type
+                TSImportType(node) {
+                    context.report({
+                        node,
+                        messageId: 'noImportTypeAnnotations',
+                    });
+                },
+            }
+            : {}));
+        function* fixToTypeImport(fixer, report, sourceImports) {
+            const { node } = report;
+            const defaultSpecifier = node.specifiers[0].type === experimental_utils_1.AST_NODE_TYPES.ImportDefaultSpecifier
+                ? node.specifiers[0]
+                : null;
+            const namespaceSpecifier = node.specifiers[0].type === experimental_utils_1.AST_NODE_TYPES.ImportNamespaceSpecifier
+                ? node.specifiers[0]
+                : null;
+            const namedSpecifiers = node.specifiers.filter((specifier) => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier);
+            if (namespaceSpecifier) {
+                // e.g.
+                // import * as types from 'foo'
+                yield* fixToTypeImportByInsertType(fixer, node, false);
+                return;
+            }
+            else if (defaultSpecifier) {
+                if (report.typeSpecifiers.includes(defaultSpecifier) &&
+                    namedSpecifiers.length === 0) {
+                    // e.g.
+                    // import Type from 'foo'
+                    yield* fixToTypeImportByInsertType(fixer, node, true);
+                    return;
+                }
+            }
+            else {
+                if (namedSpecifiers.every(specifier => report.typeSpecifiers.includes(specifier))) {
+                    // e.g.
+                    // import {Type1, Type2} from 'foo'
+                    yield* fixToTypeImportByInsertType(fixer, node, false);
+                    return;
+                }
+            }
+            const typeNamedSpecifiers = namedSpecifiers.filter(specifier => report.typeSpecifiers.includes(specifier));
+            const fixesNamedSpecifiers = getFixesNamedSpecifiers(typeNamedSpecifiers, namedSpecifiers);
+            const afterFixes = [];
+            if (typeNamedSpecifiers.length) {
+                if (sourceImports.typeOnlyNamedImport) {
+                    const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(sourceCode.getFirstToken(sourceImports.typeOnlyNamedImport), sourceImports.typeOnlyNamedImport.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', sourceImports.typeOnlyNamedImport.type));
+                    let insertText = fixesNamedSpecifiers.typeNamedSpecifiersText;
+                    const before = sourceCode.getTokenBefore(closingBraceToken);
+                    if (!util.isCommaToken(before) && !util.isOpeningBraceToken(before)) {
+                        insertText = ',' + insertText;
+                    }
+                    // import type { Already, Type1, Type2 } from 'foo'
+                    //                       ^^^^^^^^^^^^^ insert
+                    const insertTypeNamedSpecifiers = fixer.insertTextBefore(closingBraceToken, insertText);
+                    if (sourceImports.typeOnlyNamedImport.range[1] <= node.range[0]) {
+                        yield insertTypeNamedSpecifiers;
+                    }
+                    else {
+                        afterFixes.push(insertTypeNamedSpecifiers);
+                    }
+                }
+                else {
+                    yield fixer.insertTextBefore(node, `import type {${fixesNamedSpecifiers.typeNamedSpecifiersText}} from ${sourceCode.getText(node.source)};\n`);
+                }
+            }
+            if (defaultSpecifier &&
+                report.typeSpecifiers.includes(defaultSpecifier)) {
+                if (typeNamedSpecifiers.length === namedSpecifiers.length) {
+                    const importToken = util.nullThrows(sourceCode.getFirstToken(node, isImportToken), util.NullThrowsReasons.MissingToken('import', node.type));
+                    // import type Type from 'foo'
+                    //        ^^^^ insert
+                    yield fixer.insertTextAfter(importToken, ' type');
+                }
+                else {
+                    yield fixer.insertTextBefore(node, `import type ${sourceCode.getText(defaultSpecifier)} from ${sourceCode.getText(node.source)};\n`);
+                    // import Type , {...} from 'foo'
+                    //        ^^^^^^ remove
+                    yield fixer.remove(defaultSpecifier);
+                    yield fixer.remove(sourceCode.getTokenAfter(defaultSpecifier));
+                }
+            }
+            yield* fixesNamedSpecifiers.removeTypeNamedSpecifiers;
+            yield* afterFixes;
+            /**
+             * Returns information for fixing named specifiers.
+             */
+            function getFixesNamedSpecifiers(typeNamedSpecifiers, allNamedSpecifiers) {
+                const typeNamedSpecifiersTexts = [];
+                const removeTypeNamedSpecifiers = [];
+                if (typeNamedSpecifiers.length === allNamedSpecifiers.length) {
+                    // e.g.
+                    // import Foo, {Type1, Type2} from 'foo'
+                    // import DefType, {Type1, Type2} from 'foo'
+                    const openingBraceToken = util.nullThrows(sourceCode.getTokenBefore(typeNamedSpecifiers[0], util.isOpeningBraceToken), util.NullThrowsReasons.MissingToken('{', node.type));
+                    const commaToken = util.nullThrows(sourceCode.getTokenBefore(openingBraceToken, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', node.type));
+                    const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(openingBraceToken, node.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', node.type));
+                    // import DefType, {...} from 'foo'
+                    //               ^^^^^^^ remove
+                    removeTypeNamedSpecifiers.push(fixer.removeRange([
+                        commaToken.range[0],
+                        closingBraceToken.range[1],
+                    ]));
+                    typeNamedSpecifiersTexts.push(sourceCode.text.slice(openingBraceToken.range[1], closingBraceToken.range[0]));
+                }
+                else {
+                    const typeNamedSpecifierGroups = [];
+                    let group = [];
+                    for (const namedSpecifier of allNamedSpecifiers) {
+                        if (typeNamedSpecifiers.includes(namedSpecifier)) {
+                            group.push(namedSpecifier);
+                        }
+                        else if (group.length) {
+                            typeNamedSpecifierGroups.push(group);
+                            group = [];
+                        }
+                    }
+                    if (group.length) {
+                        typeNamedSpecifierGroups.push(group);
+                    }
+                    for (const namedSpecifiers of typeNamedSpecifierGroups) {
+                        const { removeRange, textRange } = getNamedSpecifierRanges(namedSpecifiers, allNamedSpecifiers);
+                        removeTypeNamedSpecifiers.push(fixer.removeRange(removeRange));
+                        typeNamedSpecifiersTexts.push(sourceCode.text.slice(...textRange));
+                    }
+                }
+                return {
+                    typeNamedSpecifiersText: typeNamedSpecifiersTexts.join(','),
+                    removeTypeNamedSpecifiers,
+                };
+            }
+            /**
+             * Returns ranges for fixing named specifier.
+             */
+            function getNamedSpecifierRanges(namedSpecifierGroup, allNamedSpecifiers) {
+                const first = namedSpecifierGroup[0];
+                const last = namedSpecifierGroup[namedSpecifierGroup.length - 1];
+                const removeRange = [first.range[0], last.range[1]];
+                const textRange = [...removeRange];
+                const before = sourceCode.getTokenBefore(first);
+                textRange[0] = before.range[1];
+                if (util.isCommaToken(before)) {
+                    removeRange[0] = before.range[0];
+                }
+                else {
+                    removeRange[0] = before.range[1];
+                }
+                const isFirst = allNamedSpecifiers[0] === first;
+                const isLast = allNamedSpecifiers[allNamedSpecifiers.length - 1] === last;
+                const after = sourceCode.getTokenAfter(last);
+                textRange[1] = after.range[0];
+                if (isFirst || isLast) {
+                    if (util.isCommaToken(after)) {
+                        removeRange[1] = after.range[1];
+                    }
+                }
+                return {
+                    textRange,
+                    removeRange,
+                };
+            }
+        }
+        function* fixToTypeImportByInsertType(fixer, node, isDefaultImport) {
+            // import type Foo from 'foo'
+            //       ^^^^^ insert
+            const importToken = util.nullThrows(sourceCode.getFirstToken(node, isImportToken), util.NullThrowsReasons.MissingToken('import', node.type));
+            yield fixer.insertTextAfter(importToken, ' type');
+            if (isDefaultImport) {
+                // Has default import
+                const openingBraceToken = sourceCode.getFirstTokenBetween(importToken, node.source, util.isOpeningBraceToken);
+                if (openingBraceToken) {
+                    // Only braces. e.g. import Foo, {} from 'foo'
+                    const commaToken = util.nullThrows(sourceCode.getTokenBefore(openingBraceToken, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', node.type));
+                    const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(openingBraceToken, node.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', node.type));
+                    // import type Foo, {} from 'foo'
+                    //                  ^^ remove
+                    yield fixer.removeRange([
+                        commaToken.range[0],
+                        closingBraceToken.range[1],
+                    ]);
+                    const specifiersText = sourceCode.text.slice(commaToken.range[1], closingBraceToken.range[1]);
+                    if (node.specifiers.length > 1) {
+                        // import type Foo from 'foo'
+                        // import type {...} from 'foo' // <- insert
+                        yield fixer.insertTextAfter(node, `\nimport type${specifiersText} from ${sourceCode.getText(node.source)};`);
+                    }
+                }
+            }
+        }
+        function fixToValueImport(fixer, node) {
+            var _a, _b;
+            // import type Foo from 'foo'
+            //        ^^^^ remove
+            const importToken = util.nullThrows(sourceCode.getFirstToken(node, isImportToken), util.NullThrowsReasons.MissingToken('import', node.type));
+            const typeToken = util.nullThrows(sourceCode.getFirstTokenBetween(importToken, (_b = (_a = node.specifiers[0]) === null || _a === void 0 ? void 0 : _a.local) !== null && _b !== void 0 ? _b : node.source, isTypeToken), util.NullThrowsReasons.MissingToken('type', node.type));
+            return fixer.remove(typeToken);
+        }
+    },
+});
+//# sourceMappingURL=consistent-type-imports.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map
new file mode 100644
index 0000000..ce74bfd
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"consistent-type-imports.js","sourceRoot":"","sources":["../../src/rules/consistent-type-imports.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js
new file mode 100644
index 0000000..a4a89d0
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js
@@ -0,0 +1,90 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const ts = __importStar(require("typescript"));
+const dot_notation_1 = __importDefault(require("eslint/lib/rules/dot-notation"));
+const util_1 = require("../util");
+exports.default = util_1.createRule({
+    name: 'dot-notation',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'enforce dot notation whenever possible',
+            category: 'Best Practices',
+            recommended: false,
+            extendsBaseRule: true,
+            requiresTypeChecking: true,
+        },
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    allowKeywords: {
+                        type: 'boolean',
+                        default: true,
+                    },
+                    allowPattern: {
+                        type: 'string',
+                        default: '',
+                    },
+                    allowPrivateClassPropertyAccess: {
+                        type: 'boolean',
+                        default: false,
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
+        fixable: dot_notation_1.default.meta.fixable,
+        messages: dot_notation_1.default.meta.messages,
+    },
+    defaultOptions: [
+        {
+            allowPrivateClassPropertyAccess: false,
+            allowKeywords: true,
+            allowPattern: '',
+        },
+    ],
+    create(context, [options]) {
+        const rules = dot_notation_1.default.create(context);
+        const allowPrivateClassPropertyAccess = options.allowPrivateClassPropertyAccess;
+        const parserServices = util_1.getParserServices(context);
+        const typeChecker = parserServices.program.getTypeChecker();
+        return {
+            MemberExpression(node) {
+                var _a, _b, _c;
+                if (allowPrivateClassPropertyAccess && node.computed) {
+                    // for perf reasons - only fetch the symbol if we have to
+                    const objectSymbol = typeChecker.getSymbolAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node.property));
+                    if (((_c = (_b = (_a = objectSymbol === null || objectSymbol === void 0 ? void 0 : objectSymbol.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.modifiers) === null || _c === void 0 ? void 0 : _c[0].kind) ===
+                        ts.SyntaxKind.PrivateKeyword) {
+                        return;
+                    }
+                }
+                rules.MemberExpression(node);
+            },
+        };
+    },
+});
+//# sourceMappingURL=dot-notation.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map
new file mode 100644
index 0000000..297244e
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"dot-notation.js","sourceRoot":"","sources":["../../src/rules/dot-notation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAiC;AACjC,iFAAqD;AACrD,kCAKiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;qBACd;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;qBACZ;oBACD,+BAA+B,EAAE;wBAC/B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,OAAO,EAAE,sBAAQ,CAAC,IAAI,CAAC,OAAO;QAC9B,QAAQ,EAAE,sBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,+BAA+B,EAAE,KAAK;YACtC,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,KAAK,GAAG,sBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,+BAA+B,GACnC,OAAO,CAAC,+BAA+B,CAAC;QAE1C,MAAM,cAAc,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAE5D,OAAO;YACL,gBAAgB,CAAC,IAA+B;;gBAC9C,IAAI,+BAA+B,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACpD,yDAAyD;oBACzD,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAClD,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CACxD,CAAC;oBACF,IACE,mBAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,4CAAK,CAAC,2CAAG,SAAS,0CAAG,CAAC,EAAE,IAAI;wBACzD,EAAE,CAAC,UAAU,CAAC,cAAc,EAC5B;wBACA,OAAO;qBACR;iBACF;gBACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js
index 4bac6cc..5f39168 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js
@@ -1,12 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
 const explicitReturnTypeUtils_1 = require("../util/explicitReturnTypeUtils");
 exports.default = util.createRule({
@@ -16,7 +29,7 @@
         docs: {
             description: 'Require explicit return types on functions and class methods',
             category: 'Stylistic Issues',
-            recommended: 'warn',
+            recommended: false,
         },
         messages: {
             missingReturnType: 'Missing return type on function.',
@@ -37,6 +50,9 @@
                     allowDirectConstAssertionInArrowFunctions: {
                         type: 'boolean',
                     },
+                    allowConciseArrowFunctionExpressionsStartingWithVoid: {
+                        type: 'boolean',
+                    },
                 },
                 additionalProperties: false,
             },
@@ -48,12 +64,20 @@
             allowTypedFunctionExpressions: true,
             allowHigherOrderFunctions: true,
             allowDirectConstAssertionInArrowFunctions: true,
+            allowConciseArrowFunctionExpressionsStartingWithVoid: false,
         },
     ],
     create(context, [options]) {
         const sourceCode = context.getSourceCode();
         return {
             'ArrowFunctionExpression, FunctionExpression'(node) {
+                if (options.allowConciseArrowFunctionExpressionsStartingWithVoid &&
+                    node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+                    node.expression &&
+                    node.body.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
+                    node.body.operator === 'void') {
+                    return;
+                }
                 explicitReturnTypeUtils_1.checkFunctionExpressionReturnType(node, options, sourceCode, loc => context.report({
                     node,
                     loc,
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js.map
index 2cca7b6..6384a05 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js.map
@@ -1 +1 @@
-{"version":3,"file":"explicit-function-return-type.js","sourceRoot":"","sources":["../../src/rules/explicit-function-return-type.ts"],"names":[],"mappings":";;;;;;;;;AACA,8CAAgC;AAChC,6EAGyC;AAYzC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,MAAM;SACpB;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,kCAAkC;SACtD;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;qBAChB;oBACD,6BAA6B,EAAE;wBAC7B,IAAI,EAAE,SAAS;qBAChB;oBACD,yBAAyB,EAAE;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD,yCAAyC,EAAE;wBACzC,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,gBAAgB,EAAE,KAAK;YACvB,6BAA6B,EAAE,IAAI;YACnC,yBAAyB,EAAE,IAAI;YAC/B,yCAAyC,EAAE,IAAI;SAChD;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,6CAA6C,CAC3C,IAAoE;gBAEpE,2DAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CACjE,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CACH,CAAC;YACJ,CAAC;YACD,mBAAmB,CAAC,IAAI;gBACtB,iDAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CACvD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CACH,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"explicit-function-return-type.js","sourceRoot":"","sources":["../../src/rules/explicit-function-return-type.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAChC,6EAGyC;AAazC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,kCAAkC;SACtD;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;qBAChB;oBACD,6BAA6B,EAAE;wBAC7B,IAAI,EAAE,SAAS;qBAChB;oBACD,yBAAyB,EAAE;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD,yCAAyC,EAAE;wBACzC,IAAI,EAAE,SAAS;qBAChB;oBACD,oDAAoD,EAAE;wBACpD,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,gBAAgB,EAAE,KAAK;YACvB,6BAA6B,EAAE,IAAI;YACnC,yBAAyB,EAAE,IAAI;YAC/B,yCAAyC,EAAE,IAAI;YAC/C,oDAAoD,EAAE,KAAK;SAC5D;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,6CAA6C,CAC3C,IAAoE;gBAEpE,IACE,OAAO,CAAC,oDAAoD;oBAC5D,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,uBAAuB;oBACpD,IAAI,CAAC,UAAU;oBACf,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,EAC7B;oBACA,OAAO;iBACR;gBAED,2DAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CACjE,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CACH,CAAC;YACJ,CAAC;YACD,mBAAmB,CAAC,IAAI;gBACtB,iDAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CACvD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CACH,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js
index 3e48adb..d6d7063 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -56,14 +68,14 @@
     create(context, [option]) {
         var _a, _b, _c, _d, _e, _f, _g, _h;
         const sourceCode = context.getSourceCode();
-        const baseCheck = (_a = option.accessibility, (_a !== null && _a !== void 0 ? _a : 'explicit'));
-        const overrides = (_b = option.overrides, (_b !== null && _b !== void 0 ? _b : {}));
-        const ctorCheck = (_c = overrides.constructors, (_c !== null && _c !== void 0 ? _c : baseCheck));
-        const accessorCheck = (_d = overrides.accessors, (_d !== null && _d !== void 0 ? _d : baseCheck));
-        const methodCheck = (_e = overrides.methods, (_e !== null && _e !== void 0 ? _e : baseCheck));
-        const propCheck = (_f = overrides.properties, (_f !== null && _f !== void 0 ? _f : baseCheck));
-        const paramPropCheck = (_g = overrides.parameterProperties, (_g !== null && _g !== void 0 ? _g : baseCheck));
-        const ignoredMethodNames = new Set((_h = option.ignoredMethodNames, (_h !== null && _h !== void 0 ? _h : [])));
+        const baseCheck = (_a = option.accessibility) !== null && _a !== void 0 ? _a : 'explicit';
+        const overrides = (_b = option.overrides) !== null && _b !== void 0 ? _b : {};
+        const ctorCheck = (_c = overrides.constructors) !== null && _c !== void 0 ? _c : baseCheck;
+        const accessorCheck = (_d = overrides.accessors) !== null && _d !== void 0 ? _d : baseCheck;
+        const methodCheck = (_e = overrides.methods) !== null && _e !== void 0 ? _e : baseCheck;
+        const propCheck = (_f = overrides.properties) !== null && _f !== void 0 ? _f : baseCheck;
+        const paramPropCheck = (_g = overrides.parameterProperties) !== null && _g !== void 0 ? _g : baseCheck;
+        const ignoredMethodNames = new Set((_h = option.ignoredMethodNames) !== null && _h !== void 0 ? _h : []);
         /**
          * Generates the report for rule violations
          */
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map
index feac814..ba2416f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map
@@ -1 +1 @@
-{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js
index 2b982e0..61858dc 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,20 +29,20 @@
         docs: {
             description: "Require explicit return and argument types on exported functions' and classes' public class methods",
             category: 'Stylistic Issues',
-            recommended: false,
+            recommended: 'warn',
         },
         messages: {
             missingReturnType: 'Missing return type on function.',
             missingArgType: "Argument '{{name}}' should be typed.",
+            missingArgTypeUnnamed: '{{type}} argument should be typed.',
+            anyTypedArg: "Argument '{{name}}' should be typed with a non-any type.",
+            anyTypedArgUnnamed: '{{type}} argument should be typed with a non-any type.',
         },
         schema: [
             {
                 type: 'object',
                 properties: {
-                    allowTypedFunctionExpressions: {
-                        type: 'boolean',
-                    },
-                    allowHigherOrderFunctions: {
+                    allowArgumentsExplicitlyTypedAsAny: {
                         type: 'boolean',
                     },
                     allowDirectConstAssertionInArrowFunctions: {
@@ -42,6 +54,16 @@
                             type: 'string',
                         },
                     },
+                    allowHigherOrderFunctions: {
+                        type: 'boolean',
+                    },
+                    allowTypedFunctionExpressions: {
+                        type: 'boolean',
+                    },
+                    // DEPRECATED - To be removed in next major
+                    shouldTrackReferences: {
+                        type: 'boolean',
+                    },
                 },
                 additionalProperties: false,
             },
@@ -49,57 +71,124 @@
     },
     defaultOptions: [
         {
-            allowTypedFunctionExpressions: true,
-            allowHigherOrderFunctions: true,
+            allowArgumentsExplicitlyTypedAsAny: false,
             allowDirectConstAssertionInArrowFunctions: true,
             allowedNames: [],
+            allowHigherOrderFunctions: true,
+            allowTypedFunctionExpressions: true,
         },
     ],
     create(context, [options]) {
         const sourceCode = context.getSourceCode();
-        function isUnexported(node) {
-            let isReturnedValue = false;
-            while (node) {
-                if (node.type === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration ||
-                    node.type === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration ||
-                    node.type === experimental_utils_1.AST_NODE_TYPES.ExportSpecifier) {
-                    return false;
+        // tracks all of the functions we've already checked
+        const checkedFunctions = new Set();
+        // tracks functions that were found whilst traversing
+        const foundFunctions = [];
+        // all nodes visited, avoids infinite recursion for cyclic references
+        // (such as class member referring to itself)
+        const alreadyVisited = new Set();
+        /*
+        # How the rule works:
+    
+        As the rule traverses the AST, it immediately checks every single function that it finds is exported.
+        "exported" means that it is either directly exported, or that its name is exported.
+    
+        It also collects a list of every single function it finds on the way, but does not check them.
+        After it's finished traversing the AST, it then iterates through the list of found functions, and checks to see if
+        any of them are part of a higher-order function
+        */
+        return {
+            ExportDefaultDeclaration(node) {
+                checkNode(node.declaration);
+            },
+            'ExportNamedDeclaration:not([source])'(node) {
+                if (node.declaration) {
+                    checkNode(node.declaration);
                 }
-                if (node.type === experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer) {
-                    return true;
+                else {
+                    for (const specifier of node.specifiers) {
+                        followReference(specifier.local);
+                    }
                 }
-                if (node.type === experimental_utils_1.AST_NODE_TYPES.ReturnStatement) {
-                    isReturnedValue = true;
+            },
+            TSExportAssignment(node) {
+                checkNode(node.expression);
+            },
+            'ArrowFunctionExpression, FunctionDeclaration, FunctionExpression'(node) {
+                foundFunctions.push(node);
+            },
+            'Program:exit'() {
+                for (const func of foundFunctions) {
+                    if (isExportedHigherOrderFunction(func)) {
+                        checkNode(func);
+                    }
                 }
-                if (node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
-                    node.type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration ||
-                    node.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression) {
-                    isReturnedValue = false;
+            },
+        };
+        function checkParameters(node) {
+            function checkParameter(param) {
+                function report(namedMessageId, unnamedMessageId) {
+                    if (param.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
+                        context.report({
+                            node: param,
+                            messageId: namedMessageId,
+                            data: { name: param.name },
+                        });
+                    }
+                    else if (param.type === experimental_utils_1.AST_NODE_TYPES.ArrayPattern) {
+                        context.report({
+                            node: param,
+                            messageId: unnamedMessageId,
+                            data: { type: 'Array pattern' },
+                        });
+                    }
+                    else if (param.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
+                        context.report({
+                            node: param,
+                            messageId: unnamedMessageId,
+                            data: { type: 'Object pattern' },
+                        });
+                    }
+                    else if (param.type === experimental_utils_1.AST_NODE_TYPES.RestElement) {
+                        if (param.argument.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
+                            context.report({
+                                node: param,
+                                messageId: namedMessageId,
+                                data: { name: param.argument.name },
+                            });
+                        }
+                        else {
+                            context.report({
+                                node: param,
+                                messageId: unnamedMessageId,
+                                data: { type: 'Rest' },
+                            });
+                        }
+                    }
                 }
-                if (node.type === experimental_utils_1.AST_NODE_TYPES.BlockStatement && !isReturnedValue) {
-                    return true;
+                switch (param.type) {
+                    case experimental_utils_1.AST_NODE_TYPES.ArrayPattern:
+                    case experimental_utils_1.AST_NODE_TYPES.Identifier:
+                    case experimental_utils_1.AST_NODE_TYPES.ObjectPattern:
+                    case experimental_utils_1.AST_NODE_TYPES.RestElement:
+                        if (!param.typeAnnotation) {
+                            report('missingArgType', 'missingArgTypeUnnamed');
+                        }
+                        else if (options.allowArgumentsExplicitlyTypedAsAny !== true &&
+                            param.typeAnnotation.typeAnnotation.type ===
+                                experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword) {
+                            report('anyTypedArg', 'anyTypedArgUnnamed');
+                        }
+                        return;
+                    case experimental_utils_1.AST_NODE_TYPES.TSParameterProperty:
+                        return checkParameter(param.parameter);
+                    case experimental_utils_1.AST_NODE_TYPES.AssignmentPattern: // ignored as it has a type via its assignment
+                        return;
                 }
-                node = node.parent;
             }
-            return true;
-        }
-        function isArgumentUntyped(node) {
-            return (!node.typeAnnotation ||
-                node.typeAnnotation.typeAnnotation.type === experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword);
-        }
-        /**
-         * Checks if a function declaration/expression has a return type.
-         */
-        function checkArguments(node) {
-            const paramIdentifiers = node.params.filter(util.isIdentifier);
-            const untypedArgs = paramIdentifiers.filter(isArgumentUntyped);
-            untypedArgs.forEach(untypedArg => context.report({
-                node,
-                messageId: 'missingArgType',
-                data: {
-                    name: untypedArg.name,
-                },
-            }));
+            for (const arg of node.params) {
+                checkParameter(arg);
+            }
         }
         /**
          * Checks if a function name is allowed and should not be checked.
@@ -128,38 +217,196 @@
             }
             return false;
         }
-        return {
-            'ArrowFunctionExpression, FunctionExpression'(node) {
-                var _a;
-                if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
-                    node.parent.accessibility === 'private') {
-                    // don't check private methods as they aren't part of the public signature
-                    return;
+        function isExportedHigherOrderFunction(node) {
+            var _a;
+            let current = node.parent;
+            while (current) {
+                if (current.type === experimental_utils_1.AST_NODE_TYPES.ReturnStatement) {
+                    // the parent of a return will always be a block statement, so we can skip over it
+                    current = (_a = current.parent) === null || _a === void 0 ? void 0 : _a.parent;
+                    continue;
                 }
-                if (isAllowedName(node.parent) ||
-                    isUnexported(node) ||
-                    explicitReturnTypeUtils_1.isTypedFunctionExpression(node, options)) {
-                    return;
+                if (!util.isFunction(current) ||
+                    !explicitReturnTypeUtils_1.doesImmediatelyReturnFunctionExpression(current)) {
+                    return false;
                 }
-                explicitReturnTypeUtils_1.checkFunctionExpressionReturnType(node, options, sourceCode, loc => context.report({
+                if (checkedFunctions.has(current)) {
+                    return true;
+                }
+                current = current.parent;
+            }
+            return false;
+        }
+        function followReference(node) {
+            const scope = context.getScope();
+            const variable = scope.set.get(node.name);
+            /* istanbul ignore if */ if (!variable) {
+                return;
+            }
+            // check all of the definitions
+            for (const definition of variable.defs) {
+                // cases we don't care about in this rule
+                if (definition.type === 'ImplicitGlobalVariable' ||
+                    definition.type === 'ImportBinding' ||
+                    // eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
+                    definition.type === 'CatchClause' ||
+                    definition.type === 'Parameter') {
+                    continue;
+                }
+                checkNode(definition.node);
+            }
+            // follow references to find writes to the variable
+            for (const reference of variable.references) {
+                if (
+                // we don't want to check the initialization ref, as this is handled by the declaration check
+                !reference.init &&
+                    reference.writeExpr) {
+                    checkNode(reference.writeExpr);
+                }
+            }
+        }
+        function checkNode(node) {
+            if (node == null || alreadyVisited.has(node)) {
+                return;
+            }
+            alreadyVisited.add(node);
+            switch (node.type) {
+                case experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
+                case experimental_utils_1.AST_NODE_TYPES.FunctionExpression:
+                    return checkFunctionExpression(node);
+                case experimental_utils_1.AST_NODE_TYPES.ArrayExpression:
+                    for (const element of node.elements) {
+                        checkNode(element);
+                    }
+                    return;
+                case experimental_utils_1.AST_NODE_TYPES.ClassProperty:
+                case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty:
+                    if (node.accessibility === 'private') {
+                        return;
+                    }
+                    return checkNode(node.value);
+                case experimental_utils_1.AST_NODE_TYPES.ClassDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.ClassExpression:
+                    for (const element of node.body.body) {
+                        checkNode(element);
+                    }
+                    return;
+                case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration:
+                    return checkFunction(node);
+                case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
+                case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
+                    if (node.accessibility === 'private') {
+                        return;
+                    }
+                    return checkNode(node.value);
+                case experimental_utils_1.AST_NODE_TYPES.Identifier:
+                    return followReference(node);
+                case experimental_utils_1.AST_NODE_TYPES.ObjectExpression:
+                    for (const property of node.properties) {
+                        checkNode(property);
+                    }
+                    return;
+                case experimental_utils_1.AST_NODE_TYPES.Property:
+                    return checkNode(node.value);
+                case experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression:
+                    return checkEmptyBodyFunctionExpression(node);
+                case experimental_utils_1.AST_NODE_TYPES.VariableDeclaration:
+                    for (const declaration of node.declarations) {
+                        checkNode(declaration);
+                    }
+                    return;
+                case experimental_utils_1.AST_NODE_TYPES.VariableDeclarator:
+                    return checkNode(node.init);
+            }
+        }
+        /**
+         * Check whether any ancestor of the provided function has a valid return type.
+         * This function assumes that the function either:
+         * - belongs to an exported function chain validated by isExportedHigherOrderFunction
+         * - is directly exported itself
+         */
+        function ancestorHasReturnType(node) {
+            let ancestor = node.parent;
+            // if the ancestor is not a return, then this function was not returned at all, so we can exit early
+            const isReturnStatement = (ancestor === null || ancestor === void 0 ? void 0 : ancestor.type) === experimental_utils_1.AST_NODE_TYPES.ReturnStatement;
+            const isBodylessArrow = (ancestor === null || ancestor === void 0 ? void 0 : ancestor.type) === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+                ancestor.body.type !== experimental_utils_1.AST_NODE_TYPES.BlockStatement;
+            if (!isReturnStatement && !isBodylessArrow) {
+                return false;
+            }
+            while (ancestor) {
+                switch (ancestor.type) {
+                    case experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
+                    case experimental_utils_1.AST_NODE_TYPES.FunctionExpression:
+                    case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration:
+                        if (ancestor.returnType) {
+                            return true;
+                        }
+                        // assume
+                        break;
+                    // const x: Foo = () => {};
+                    // Assume that a typed variable types the function expression
+                    case experimental_utils_1.AST_NODE_TYPES.VariableDeclarator:
+                        if (ancestor.id.typeAnnotation) {
+                            return true;
+                        }
+                        break;
+                }
+                ancestor = ancestor.parent;
+            }
+            return false;
+        }
+        function checkEmptyBodyFunctionExpression(node) {
+            var _a, _b, _c;
+            const isConstructor = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
+                node.parent.kind === 'constructor';
+            const isSetAccessor = (((_b = node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition ||
+                ((_c = node.parent) === null || _c === void 0 ? void 0 : _c.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition) &&
+                node.parent.kind === 'set';
+            if (!isConstructor && !isSetAccessor && !node.returnType) {
+                context.report({
+                    node,
+                    messageId: 'missingReturnType',
+                });
+            }
+            checkParameters(node);
+        }
+        function checkFunctionExpression(node) {
+            if (checkedFunctions.has(node)) {
+                return;
+            }
+            checkedFunctions.add(node);
+            if (isAllowedName(node.parent) ||
+                explicitReturnTypeUtils_1.isTypedFunctionExpression(node, options) ||
+                ancestorHasReturnType(node)) {
+                return;
+            }
+            explicitReturnTypeUtils_1.checkFunctionExpressionReturnType(node, options, sourceCode, loc => {
+                context.report({
                     node,
                     loc,
                     messageId: 'missingReturnType',
-                }));
-                checkArguments(node);
-            },
-            FunctionDeclaration(node) {
-                if (isAllowedName(node.parent) || isUnexported(node)) {
-                    return;
-                }
-                explicitReturnTypeUtils_1.checkFunctionReturnType(node, options, sourceCode, loc => context.report({
+                });
+            });
+            checkParameters(node);
+        }
+        function checkFunction(node) {
+            if (checkedFunctions.has(node)) {
+                return;
+            }
+            checkedFunctions.add(node);
+            if (isAllowedName(node.parent) || ancestorHasReturnType(node)) {
+                return;
+            }
+            explicitReturnTypeUtils_1.checkFunctionReturnType(node, options, sourceCode, loc => {
+                context.report({
                     node,
                     loc,
                     messageId: 'missingReturnType',
-                }));
-                checkArguments(node);
-            },
-        };
+                });
+            });
+            checkParameters(node);
+        }
     },
 });
 //# sourceMappingURL=explicit-module-boundary-types.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map
index 5f6e0d5..564b792 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map
@@ -1 +1 @@
-{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js
index 02c709f..ab51dee 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js
@@ -1,13 +1,24 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-const eslint_utils_1 = require("eslint-utils");
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
     name: 'func-call-spacing',
@@ -54,7 +65,8 @@
             ],
         },
         messages: {
-            unexpected: 'Unexpected space or newline between function name and paren.',
+            unexpectedWhitespace: 'Unexpected whitespace between function name and paren.',
+            unexpectedNewline: 'Unexpected newline between function name and paren.',
             missing: 'Missing space between function name and paren.',
         },
     },
@@ -70,10 +82,10 @@
          */
         function checkSpacing(node) {
             var _a;
-            const isOptionalCall = util.isOptionalOptionalChain(node);
+            const isOptionalCall = util.isOptionalCallExpression(node);
             const closingParenToken = sourceCode.getLastToken(node);
-            const lastCalleeTokenWithoutPossibleParens = sourceCode.getLastToken((_a = node.typeParameters, (_a !== null && _a !== void 0 ? _a : node.callee)));
-            const openingParenToken = sourceCode.getFirstTokenBetween(lastCalleeTokenWithoutPossibleParens, closingParenToken, eslint_utils_1.isOpeningParenToken);
+            const lastCalleeTokenWithoutPossibleParens = sourceCode.getLastToken((_a = node.typeParameters) !== null && _a !== void 0 ? _a : node.callee);
+            const openingParenToken = sourceCode.getFirstTokenBetween(lastCalleeTokenWithoutPossibleParens, closingParenToken, util.isOpeningParenToken);
             if (!openingParenToken || openingParenToken.range[1] >= node.range[1]) {
                 // new expression with no parens...
                 return;
@@ -89,7 +101,7 @@
                     return context.report({
                         node,
                         loc: lastCalleeToken.loc.start,
-                        messageId: 'unexpected',
+                        messageId: 'unexpectedWhitespace',
                         fix(fixer) {
                             /*
                              * Only autofix if there is no newline
@@ -117,7 +129,7 @@
                     context.report({
                         node,
                         loc: lastCalleeToken.loc.start,
-                        messageId: 'unexpected',
+                        messageId: 'unexpectedWhitespace',
                     });
                 }
             }
@@ -136,7 +148,7 @@
                     context.report({
                         node,
                         loc: lastCalleeToken.loc.start,
-                        messageId: 'unexpected',
+                        messageId: 'unexpectedNewline',
                         fix(fixer) {
                             return fixer.replaceTextRange([lastCalleeToken.range[1], openingParenToken.range[0]], ' ');
                         },
@@ -146,7 +158,6 @@
         }
         return {
             CallExpression: checkSpacing,
-            OptionalCallExpression: checkSpacing,
             NewExpression: checkSpacing,
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map
index e03cb08..a677e9d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map
@@ -1 +1 @@
-{"version":3,"file":"func-call-spacing.js","sourceRoot":"","sources":["../../src/rules/func-call-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"func-call-spacing.js","sourceRoot":"","sources":["../../src/rules/func-call-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js
deleted file mode 100644
index c7da0b0..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const util = __importStar(require("../util"));
-exports.default = util.createRule({
-    name: 'generic-type-naming',
-    meta: {
-        type: 'suggestion',
-        docs: {
-            description: 'Enforces naming of generic type variables',
-            category: 'Stylistic Issues',
-            // too opinionated to be recommended
-            recommended: false,
-        },
-        deprecated: true,
-        replacedBy: ['naming-convention'],
-        messages: {
-            paramNotMatchRule: 'Type parameter {{name}} does not match rule {{rule}}.',
-        },
-        schema: [
-            {
-                type: 'string',
-            },
-        ],
-    },
-    defaultOptions: [
-        // Matches: T , TA , TAbc , TA1Bca , T1 , T2
-        '^T([A-Z0-9][a-zA-Z0-9]*){0,1}$',
-    ],
-    create(context, [rule]) {
-        const regex = new RegExp(rule);
-        return {
-            TSTypeParameter(node) {
-                const name = node.name.name;
-                if (name && !regex.test(name)) {
-                    context.report({
-                        node,
-                        messageId: 'paramNotMatchRule',
-                        data: {
-                            name,
-                            rule,
-                        },
-                    });
-                }
-            },
-        };
-    },
-});
-//# sourceMappingURL=generic-type-naming.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js.map
deleted file mode 100644
index 3dc33ca..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generic-type-naming.js","sourceRoot":"","sources":["../../src/rules/generic-type-naming.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;SACnB;QACD,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,QAAQ,EAAE;YACR,iBAAiB,EACf,uDAAuD;SAC1D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;aACf;SACF;KACF;IACD,cAAc,EAAE;QACd,4CAA4C;QAC5C,gCAAgC;KACjC;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAK,CAAC,CAAC;QAEhC,OAAO;YACL,eAAe,CAAC,IAAI;gBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAE5B,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,mBAAmB;wBAC9B,IAAI,EAAE;4BACJ,IAAI;4BACJ,IAAI;yBACL;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js
index f9d4b5f..9ae7106 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js
@@ -5,6 +5,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.BinarySearchTree = void 0;
 const functional_red_black_tree_1 = __importDefault(require("functional-red-black-tree"));
 /**
  * A mutable balanced binary search tree that stores (key, value) pairs. The keys are numeric, and must be unique.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map
index 1101ca4..6f0c20e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map
@@ -1 +1 @@
-{"version":3,"file":"BinarySearchTree.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/BinarySearchTree.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;;;AAGlG,0FAAmD;AASnD;;;;GAIG;AACH,MAAa,gBAAgB;IAA7B;QACU,WAAM,GAAG,mCAAU,EAAa,CAAC;IAwC3C,CAAC;IAtCC;;OAEG;IACI,MAAM,CAAC,GAAW,EAAE,KAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC9C;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAErC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa,EAAE,GAAW;QAC3C,+DAA+D;QAC/D,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC;SACjB;IACH,CAAC;CACF;AAzCD,4CAyCC"}
\ No newline at end of file
+{"version":3,"file":"BinarySearchTree.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/BinarySearchTree.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;;;;AAGlG,0FAAmD;AASnD;;;;GAIG;AACH,MAAa,gBAAgB;IAA7B;QACU,WAAM,GAAG,mCAAU,EAAa,CAAC;IAwC3C,CAAC;IAtCC;;OAEG;IACI,MAAM,CAAC,GAAW,EAAE,KAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC9C;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAErC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa,EAAE,GAAW;QAC3C,+DAA+D;QAC/D,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC;SACjB;IACH,CAAC;CACF;AAzCD,4CAyCC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js
index 7a2fdf1..a48651d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js
@@ -2,6 +2,7 @@
 // The following code is adapted from the the code in eslint.
 // License: https://github.com/eslint/eslint/blob/48700fc8408f394887cdedd071b22b757700fdcb/LICENSE
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.OffsetStorage = void 0;
 const BinarySearchTree_1 = require("./BinarySearchTree");
 /**
  * A class to store information on desired offsets of tokens from each other
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map
index 74d053e..dc3aa66 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map
@@ -1 +1 @@
-{"version":3,"file":"OffsetStorage.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/OffsetStorage.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"OffsetStorage.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/OffsetStorage.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;AAGlG,yDAI4B;AAG5B;;GAEG;AACH,MAAa,aAAa;IAQxB;;;;OAIG;IACH,YAAY,SAAoB,EAAE,UAAkB,EAAE,UAAkB;QACtE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,IAAI,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;IACrC,CAAC;IAEO,mBAAmB,CAAC,KAAqB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAyB,EACzB,WAA2B;QAE3B;;;;;;WAMG;QACH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACI,gBAAgB,CACrB,KAAqB,EACrB,SAAgC,EAChC,MAAc;QAEd,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,iBAAiB,CACtB,KAAuB,EACvB,SAAgC,EAChC,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,KAAK;QAEb;;;;;;;;;;;;;WAaG;QAEH,MAAM,kBAAkB,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAE9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9D,MAAM,kBAAkB,GACtB,SAAS;YACT,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YAC9B,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,kFAAkF;QAClF,MAAM,mBAAmB,GAAG,kBAAkB;YAC5C,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAU,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC;QAET,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAE/C;;;WAGG;QACH,IAAI,kBAAkB,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,mBAAoB,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;SAC3D;QAED;;;WAGG;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,KAAqB;QAC3C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjC;;;mBAGG;gBACH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CACrC,CAAC;aACH;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBAEtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,KAAK;gBAEL,6CAA6C;gBAC7C,IAAI,CAAC,gBAAgB,CACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAC/C;oBACC,8EAA8E;oBAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CACpB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;wBACzB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAClE,CACJ,CAAC;aACH;iBAAM;gBACL,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,MAAM,GACV,UAAU,CAAC,IAAI;oBACf,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;oBACvD,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC7B,CAAC,UAAU,CAAC,KAAK;oBACf,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAE1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,KAAK,EACL,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CACjC,CAAC;aACH;SACF;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAqB;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAUD,kBAAkB,CAAC,KAAqB;QACtC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;CACF;AA5QD,sCA4QC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js
index 7fb64dd..5da8a48 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js
@@ -2,6 +2,7 @@
 // The following code is adapted from the the code in eslint.
 // License: https://github.com/eslint/eslint/blob/48700fc8408f394887cdedd071b22b757700fdcb/LICENSE
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.TokenInfo = void 0;
 /**
  * A helper class to get token-based info related to indentation
  */
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map
index 2c96727..7bc04ad 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map
@@ -1 +1 @@
-{"version":3,"file":"TokenInfo.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/TokenInfo.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;AAKlG;;GAEG;AACH,MAAa,SAAS;IAIpB,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtC;YACD,IACE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5B,UAAU,CAAC,IAAI;qBACZ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC5D,IAAI,EAAE,EACT;gBACA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAAE,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,mBAAmB,CACxB,KAAqC;QAErC,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,KAAqB;QAC7C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAqB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAC/B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EACvC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC;CACF;AAtDD,8BAsDC"}
\ No newline at end of file
+{"version":3,"file":"TokenInfo.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/TokenInfo.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;AAKlG;;GAEG;AACH,MAAa,SAAS;IAIpB,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtC;YACD,IACE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5B,UAAU,CAAC,IAAI;qBACZ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC5D,IAAI,EAAE,EACT;gBACA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAAE,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,mBAAmB,CACxB,KAAqC;QAErC,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,KAAqB;QAC7C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAqB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAC/B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EACvC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC;CACF;AAtDD,8BAsDC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js
index 536a9f8..c43a8a3 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js
@@ -4,7 +4,6 @@
 //------------------------------------------------------------------------------
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const OffsetStorage_1 = require("./OffsetStorage");
 const TokenInfo_1 = require("./TokenInfo");
 const util_1 = require("../../util");
@@ -425,6 +424,7 @@
          * @returns True if the node is the outer IIFE
          */
         function isOuterIIFE(node) {
+            var _a;
             /*
              * Verify that the node is an IIFE
              */
@@ -438,7 +438,7 @@
              * A "legal ancestor" is an expression or statement that causes the function to get executed immediately.
              * For example, `!(function(){})()` is an outer IIFE even though it is preceded by a ! operator.
              */
-            let statement = node.parent && node.parent.parent;
+            let statement = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent;
             while (statement &&
                 ((statement.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
                     ['!', '~', '+', '-'].includes(statement.operator)) ||
@@ -480,7 +480,7 @@
              */
             function getFirstToken(element) {
                 let token = sourceCode.getTokenBefore(element);
-                while (eslint_utils_1.isOpeningParenToken(token) && token !== startToken) {
+                while (util_1.isOpeningParenToken(token) && token !== startToken) {
                     token = sourceCode.getTokenBefore(token);
                 }
                 return sourceCode.getTokenAfter(token);
@@ -530,11 +530,11 @@
          */
         function addBlocklessNodeIndent(node) {
             if (node.type !== experimental_utils_1.AST_NODE_TYPES.BlockStatement) {
-                const lastParentToken = sourceCode.getTokenBefore(node, eslint_utils_1.isNotOpeningParenToken);
+                const lastParentToken = sourceCode.getTokenBefore(node, util_1.isNotOpeningParenToken);
                 let firstBodyToken = sourceCode.getFirstToken(node);
                 let lastBodyToken = sourceCode.getLastToken(node);
-                while (eslint_utils_1.isOpeningParenToken(sourceCode.getTokenBefore(firstBodyToken)) &&
-                    eslint_utils_1.isClosingParenToken(sourceCode.getTokenAfter(lastBodyToken))) {
+                while (util_1.isOpeningParenToken(sourceCode.getTokenBefore(firstBodyToken)) &&
+                    util_1.isClosingParenToken(sourceCode.getTokenAfter(lastBodyToken))) {
                     firstBodyToken = sourceCode.getTokenBefore(firstBodyToken);
                     lastBodyToken = sourceCode.getTokenAfter(lastBodyToken);
                 }
@@ -548,7 +548,7 @@
                 const lastToken = sourceCode.getLastToken(node);
                 if (lastToken &&
                     node.type !== experimental_utils_1.AST_NODE_TYPES.EmptyStatement &&
-                    eslint_utils_1.isSemicolonToken(lastToken)) {
+                    util_1.isSemicolonToken(lastToken)) {
                     offsets.setDesiredOffset(lastToken, lastParentToken, 0);
                 }
             }
@@ -558,7 +558,7 @@
          */
         function addFunctionCallIndent(node) {
             const openingParen = node.arguments.length
-                ? sourceCode.getFirstTokenBetween(node.callee, node.arguments[0], eslint_utils_1.isOpeningParenToken)
+                ? sourceCode.getFirstTokenBetween(node.callee, node.arguments[0], util_1.isOpeningParenToken)
                 : sourceCode.getLastToken(node, 1);
             const closingParen = sourceCode.getLastToken(node);
             parameterParens.add(openingParen);
@@ -575,10 +575,10 @@
             const parenPairs = [];
             tokens.forEach(nextToken => {
                 // Accumulate a list of parenthesis pairs
-                if (eslint_utils_1.isOpeningParenToken(nextToken)) {
+                if (util_1.isOpeningParenToken(nextToken)) {
                     parenStack.push(nextToken);
                 }
-                else if (eslint_utils_1.isClosingParenToken(nextToken)) {
+                else if (util_1.isClosingParenToken(nextToken)) {
                     parenPairs.unshift({ left: parenStack.pop(), right: nextToken });
                 }
             });
@@ -656,14 +656,14 @@
             'ArrayExpression, ArrayPattern'(node) {
                 var _a;
                 const openingBracket = sourceCode.getFirstToken(node);
-                const closingBracket = sourceCode.getTokenAfter((_a = node.elements[node.elements.length - 1], (_a !== null && _a !== void 0 ? _a : openingBracket)), eslint_utils_1.isClosingBracketToken);
+                const closingBracket = sourceCode.getTokenAfter((_a = node.elements[node.elements.length - 1]) !== null && _a !== void 0 ? _a : openingBracket, util_1.isClosingBracketToken);
                 addElementListIndent(node.elements, openingBracket, closingBracket, options.ArrayExpression);
             },
             ArrowFunctionExpression(node) {
                 const firstToken = sourceCode.getFirstToken(node);
-                if (eslint_utils_1.isOpeningParenToken(firstToken)) {
+                if (util_1.isOpeningParenToken(firstToken)) {
                     const openingParen = firstToken;
-                    const closingParen = sourceCode.getTokenBefore(node.body, eslint_utils_1.isClosingParenToken);
+                    const closingParen = sourceCode.getTokenBefore(node.body, util_1.isClosingParenToken);
                     parameterParens.add(openingParen);
                     parameterParens.add(closingParen);
                     addElementListIndent(node.params, openingParen, closingParen, options.FunctionExpression.parameters);
@@ -717,7 +717,7 @@
             CallExpression: addFunctionCallIndent,
             'ClassDeclaration[superClass], ClassExpression[superClass]'(node) {
                 const classToken = sourceCode.getFirstToken(node);
-                const extendsToken = sourceCode.getTokenBefore(node.superClass, eslint_utils_1.isNotOpeningParenToken);
+                const extendsToken = sourceCode.getTokenBefore(node.superClass, util_1.isNotOpeningParenToken);
                 offsets.setDesiredOffsets([extendsToken.range[0], node.body.range[0]], classToken, 1);
             },
             ConditionalExpression(node) {
@@ -771,7 +771,7 @@
             },
             ExportNamedDeclaration(node) {
                 if (node.declaration === null) {
-                    const closingCurly = sourceCode.getLastToken(node, eslint_utils_1.isClosingBraceToken);
+                    const closingCurly = sourceCode.getLastToken(node, util_1.isClosingBraceToken);
                     // Indent the specifiers in `export {foo, bar, baz}`
                     addElementListIndent(node.specifiers, sourceCode.getFirstToken(node, { skip: 1 }), closingCurly, 1);
                     if (node.source) {
@@ -809,8 +809,8 @@
             },
             ImportDeclaration(node) {
                 if (node.specifiers.some(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier)) {
-                    const openingCurly = sourceCode.getFirstToken(node, eslint_utils_1.isOpeningBraceToken);
-                    const closingCurly = sourceCode.getLastToken(node, eslint_utils_1.isClosingBraceToken);
+                    const openingCurly = sourceCode.getFirstToken(node, util_1.isOpeningBraceToken);
+                    const closingCurly = sourceCode.getLastToken(node, util_1.isClosingBraceToken);
                     addElementListIndent(node.specifiers.filter(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier), openingCurly, closingCurly, options.ImportDeclaration);
                 }
                 const fromToken = sourceCode.getLastToken(node, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Identifier && token.value === 'from');
@@ -826,9 +826,9 @@
             'MemberExpression, JSXMemberExpression, MetaProperty'(node) {
                 const object = node.type === experimental_utils_1.AST_NODE_TYPES.MetaProperty ? node.meta : node.object;
                 const isComputed = 'computed' in node && node.computed;
-                const firstNonObjectToken = sourceCode.getFirstTokenBetween(object, node.property, eslint_utils_1.isNotClosingParenToken);
+                const firstNonObjectToken = sourceCode.getFirstTokenBetween(object, node.property, util_1.isNotClosingParenToken);
                 const secondNonObjectToken = sourceCode.getTokenAfter(firstNonObjectToken);
-                const objectParenCount = sourceCode.getTokensBetween(object, node.property, { filter: eslint_utils_1.isClosingParenToken }).length;
+                const objectParenCount = sourceCode.getTokensBetween(object, node.property, { filter: util_1.isClosingParenToken }).length;
                 const firstObjectToken = objectParenCount
                     ? sourceCode.getTokenBefore(object, { skip: objectParenCount - 1 })
                     : sourceCode.getFirstToken(object);
@@ -874,8 +874,8 @@
             NewExpression(node) {
                 // Only indent the arguments if the NewExpression has parens (e.g. `new Foo(bar)` or `new Foo()`, but not `new Foo`
                 if (node.arguments.length > 0 ||
-                    (eslint_utils_1.isClosingParenToken(sourceCode.getLastToken(node)) &&
-                        eslint_utils_1.isOpeningParenToken(sourceCode.getLastToken(node, 1)))) {
+                    (util_1.isClosingParenToken(sourceCode.getLastToken(node)) &&
+                        util_1.isOpeningParenToken(sourceCode.getLastToken(node, 1)))) {
                     addFunctionCallIndent(node);
                 }
             },
@@ -883,24 +883,24 @@
                 const openingCurly = sourceCode.getFirstToken(node);
                 const closingCurly = sourceCode.getTokenAfter(node.properties.length
                     ? node.properties[node.properties.length - 1]
-                    : openingCurly, eslint_utils_1.isClosingBraceToken);
+                    : openingCurly, util_1.isClosingBraceToken);
                 addElementListIndent(node.properties, openingCurly, closingCurly, options.ObjectExpression);
             },
             Property(node) {
                 if (!node.shorthand && !node.method && node.kind === 'init') {
-                    const colon = sourceCode.getFirstTokenBetween(node.key, node.value, eslint_utils_1.isColonToken);
+                    const colon = sourceCode.getFirstTokenBetween(node.key, node.value, util_1.isColonToken);
                     offsets.ignoreToken(sourceCode.getTokenAfter(colon));
                 }
             },
             SwitchStatement(node) {
-                const openingCurly = sourceCode.getTokenAfter(node.discriminant, eslint_utils_1.isOpeningBraceToken);
+                const openingCurly = sourceCode.getTokenAfter(node.discriminant, util_1.isOpeningBraceToken);
                 const closingCurly = sourceCode.getLastToken(node);
                 offsets.setDesiredOffsets([openingCurly.range[1], closingCurly.range[0]], openingCurly, options.SwitchCase);
                 if (node.cases.length) {
                     sourceCode
                         .getTokensBetween(node.cases[node.cases.length - 1], closingCurly, {
                         includeComments: true,
-                        filter: eslint_utils_1.isCommentToken,
+                        filter: util_1.isCommentToken,
                     })
                         .forEach(token => offsets.ignoreToken(token));
                 }
@@ -966,13 +966,13 @@
                 else {
                     offsets.setDesiredOffsets(node.range, firstToken, variableIndent);
                 }
-                if (eslint_utils_1.isSemicolonToken(lastToken)) {
+                if (util_1.isSemicolonToken(lastToken)) {
                     offsets.ignoreToken(lastToken);
                 }
             },
             VariableDeclarator(node) {
                 if (node.init) {
-                    const equalOperator = sourceCode.getTokenBefore(node.init, eslint_utils_1.isNotOpeningParenToken);
+                    const equalOperator = sourceCode.getTokenBefore(node.init, util_1.isNotOpeningParenToken);
                     const tokenAfterOperator = sourceCode.getTokenAfter(equalOperator);
                     offsets.ignoreToken(equalOperator);
                     offsets.ignoreToken(tokenAfterOperator);
@@ -1117,7 +1117,7 @@
                     if (validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(firstTokenOfLine))) {
                         return;
                     }
-                    if (eslint_utils_1.isCommentToken(firstTokenOfLine)) {
+                    if (util_1.isCommentToken(firstTokenOfLine)) {
                         const tokenBefore = precedingTokens.get(firstTokenOfLine);
                         const tokenAfter = tokenBefore
                             ? sourceCode.getTokenAfter(tokenBefore)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map
index c26f167..5556626 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js
index abb3c23..bdb0d7a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js
@@ -5,16 +5,29 @@
  * This is done intentionally based on the internal implementation of the base indent rule.
  */
 /* eslint-disable @typescript-eslint/no-explicit-any */
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const indent_1 = __importDefault(require("eslint/lib/rules/indent"));
@@ -98,7 +111,9 @@
         },
         fixable: 'whitespace',
         schema: indent_1.default.meta.schema,
-        messages: indent_1.default.meta.messages,
+        messages: (_a = indent_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            wrongIndentation: 'Expected indentation of {{expected}} but found {{actual}}.',
+        },
     },
     defaultOptions: [
         // typescript docs and playground use 4 space indent
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map
index d4c35b4..9ec4bd5 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map
@@ -1 +1 @@
-{"version":3,"file":"indent.js","sourceRoot":"","sources":["../../src/rules/indent.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"indent.js","sourceRoot":"","sources":["../../src/rules/indent.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js
index 4a9a552..314f327 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js
@@ -7,25 +7,29 @@
 const array_type_1 = __importDefault(require("./array-type"));
 const await_thenable_1 = __importDefault(require("./await-thenable"));
 const ban_ts_comment_1 = __importDefault(require("./ban-ts-comment"));
-const ban_ts_ignore_1 = __importDefault(require("./ban-ts-ignore"));
+const ban_tslint_comment_1 = __importDefault(require("./ban-tslint-comment"));
 const ban_types_1 = __importDefault(require("./ban-types"));
 const brace_style_1 = __importDefault(require("./brace-style"));
-const camelcase_1 = __importDefault(require("./camelcase"));
-const class_name_casing_1 = __importDefault(require("./class-name-casing"));
+const class_literal_property_style_1 = __importDefault(require("./class-literal-property-style"));
+const comma_dangle_1 = __importDefault(require("./comma-dangle"));
 const comma_spacing_1 = __importDefault(require("./comma-spacing"));
+const no_confusing_non_null_assertion_1 = __importDefault(require("./no-confusing-non-null-assertion"));
 const consistent_type_assertions_1 = __importDefault(require("./consistent-type-assertions"));
 const consistent_type_definitions_1 = __importDefault(require("./consistent-type-definitions"));
+const consistent_type_imports_1 = __importDefault(require("./consistent-type-imports"));
 const default_param_last_1 = __importDefault(require("./default-param-last"));
+const dot_notation_1 = __importDefault(require("./dot-notation"));
 const explicit_function_return_type_1 = __importDefault(require("./explicit-function-return-type"));
 const explicit_member_accessibility_1 = __importDefault(require("./explicit-member-accessibility"));
 const explicit_module_boundary_types_1 = __importDefault(require("./explicit-module-boundary-types"));
 const func_call_spacing_1 = __importDefault(require("./func-call-spacing"));
-const generic_type_naming_1 = __importDefault(require("./generic-type-naming"));
 const indent_1 = __importDefault(require("./indent"));
-const interface_name_prefix_1 = __importDefault(require("./interface-name-prefix"));
+const init_declarations_1 = __importDefault(require("./init-declarations"));
+const keyword_spacing_1 = __importDefault(require("./keyword-spacing"));
+const lines_between_class_members_1 = __importDefault(require("./lines-between-class-members"));
 const member_delimiter_style_1 = __importDefault(require("./member-delimiter-style"));
-const member_naming_1 = __importDefault(require("./member-naming"));
 const member_ordering_1 = __importDefault(require("./member-ordering"));
+const method_signature_style_1 = __importDefault(require("./method-signature-style"));
 const naming_convention_1 = __importDefault(require("./naming-convention"));
 const no_array_constructor_1 = __importDefault(require("./no-array-constructor"));
 const no_base_to_string_1 = __importDefault(require("./no-base-to-string"));
@@ -34,14 +38,20 @@
 const no_empty_function_1 = __importDefault(require("./no-empty-function"));
 const no_empty_interface_1 = __importDefault(require("./no-empty-interface"));
 const no_explicit_any_1 = __importDefault(require("./no-explicit-any"));
+const no_implicit_any_catch_1 = __importDefault(require("./no-implicit-any-catch"));
 const no_extraneous_class_1 = __importDefault(require("./no-extraneous-class"));
 const no_extra_non_null_assertion_1 = __importDefault(require("./no-extra-non-null-assertion"));
 const no_extra_parens_1 = __importDefault(require("./no-extra-parens"));
 const no_extra_semi_1 = __importDefault(require("./no-extra-semi"));
 const no_floating_promises_1 = __importDefault(require("./no-floating-promises"));
 const no_for_in_array_1 = __importDefault(require("./no-for-in-array"));
+const prefer_literal_enum_member_1 = __importDefault(require("./prefer-literal-enum-member"));
 const no_implied_eval_1 = __importDefault(require("./no-implied-eval"));
 const no_inferrable_types_1 = __importDefault(require("./no-inferrable-types"));
+const no_invalid_this_1 = __importDefault(require("./no-invalid-this"));
+const no_invalid_void_type_1 = __importDefault(require("./no-invalid-void-type"));
+const no_loss_of_precision_1 = __importDefault(require("./no-loss-of-precision"));
+const no_loop_func_1 = __importDefault(require("./no-loop-func"));
 const no_magic_numbers_1 = __importDefault(require("./no-magic-numbers"));
 const no_misused_new_1 = __importDefault(require("./no-misused-new"));
 const no_misused_promises_1 = __importDefault(require("./no-misused-promises"));
@@ -49,7 +59,9 @@
 const no_non_null_asserted_optional_chain_1 = __importDefault(require("./no-non-null-asserted-optional-chain"));
 const no_non_null_assertion_1 = __importDefault(require("./no-non-null-assertion"));
 const no_parameter_properties_1 = __importDefault(require("./no-parameter-properties"));
+const no_redeclare_1 = __importDefault(require("./no-redeclare"));
 const no_require_imports_1 = __importDefault(require("./no-require-imports"));
+const no_shadow_1 = __importDefault(require("./no-shadow"));
 const no_this_alias_1 = __importDefault(require("./no-this-alias"));
 const no_throw_literal_1 = __importDefault(require("./no-throw-literal"));
 const no_type_alias_1 = __importDefault(require("./no-type-alias"));
@@ -58,7 +70,10 @@
 const no_unnecessary_qualifier_1 = __importDefault(require("./no-unnecessary-qualifier"));
 const no_unnecessary_type_arguments_1 = __importDefault(require("./no-unnecessary-type-arguments"));
 const no_unnecessary_type_assertion_1 = __importDefault(require("./no-unnecessary-type-assertion"));
-const no_untyped_public_signature_1 = __importDefault(require("./no-untyped-public-signature"));
+const no_unsafe_assignment_1 = __importDefault(require("./no-unsafe-assignment"));
+const no_unsafe_call_1 = __importDefault(require("./no-unsafe-call"));
+const no_unsafe_member_access_1 = __importDefault(require("./no-unsafe-member-access"));
+const no_unsafe_return_1 = __importDefault(require("./no-unsafe-return"));
 const no_unused_expressions_1 = __importDefault(require("./no-unused-expressions"));
 const no_unused_vars_1 = __importDefault(require("./no-unused-vars"));
 const no_unused_vars_experimental_1 = __importDefault(require("./no-unused-vars-experimental"));
@@ -66,6 +81,7 @@
 const no_useless_constructor_1 = __importDefault(require("./no-useless-constructor"));
 const no_var_requires_1 = __importDefault(require("./no-var-requires"));
 const prefer_as_const_1 = __importDefault(require("./prefer-as-const"));
+const prefer_enum_initializers_1 = __importDefault(require("./prefer-enum-initializers"));
 const prefer_for_of_1 = __importDefault(require("./prefer-for-of"));
 const prefer_function_type_1 = __importDefault(require("./prefer-function-type"));
 const prefer_includes_1 = __importDefault(require("./prefer-includes"));
@@ -74,8 +90,10 @@
 const prefer_optional_chain_1 = __importDefault(require("./prefer-optional-chain"));
 const prefer_readonly_1 = __importDefault(require("./prefer-readonly"));
 const prefer_readonly_parameter_types_1 = __importDefault(require("./prefer-readonly-parameter-types"));
+const prefer_reduce_type_parameter_1 = __importDefault(require("./prefer-reduce-type-parameter"));
 const prefer_regexp_exec_1 = __importDefault(require("./prefer-regexp-exec"));
 const prefer_string_starts_ends_with_1 = __importDefault(require("./prefer-string-starts-ends-with"));
+const prefer_ts_expect_error_1 = __importDefault(require("./prefer-ts-expect-error"));
 const promise_function_async_1 = __importDefault(require("./promise-function-async"));
 const quotes_1 = __importDefault(require("./quotes"));
 const require_array_sort_compare_1 = __importDefault(require("./require-array-sort-compare"));
@@ -97,28 +115,31 @@
     'array-type': array_type_1.default,
     'await-thenable': await_thenable_1.default,
     'ban-ts-comment': ban_ts_comment_1.default,
-    'ban-ts-ignore': ban_ts_ignore_1.default,
+    'ban-tslint-comment': ban_tslint_comment_1.default,
     'ban-types': ban_types_1.default,
-    'no-base-to-string': no_base_to_string_1.default,
     'brace-style': brace_style_1.default,
-    camelcase: camelcase_1.default,
-    'class-name-casing': class_name_casing_1.default,
+    'class-literal-property-style': class_literal_property_style_1.default,
+    'comma-dangle': comma_dangle_1.default,
     'comma-spacing': comma_spacing_1.default,
     'consistent-type-assertions': consistent_type_assertions_1.default,
     'consistent-type-definitions': consistent_type_definitions_1.default,
+    'consistent-type-imports': consistent_type_imports_1.default,
     'default-param-last': default_param_last_1.default,
+    'dot-notation': dot_notation_1.default,
     'explicit-function-return-type': explicit_function_return_type_1.default,
     'explicit-member-accessibility': explicit_member_accessibility_1.default,
     'explicit-module-boundary-types': explicit_module_boundary_types_1.default,
     'func-call-spacing': func_call_spacing_1.default,
-    'generic-type-naming': generic_type_naming_1.default,
-    indent: indent_1.default,
-    'interface-name-prefix': interface_name_prefix_1.default,
+    'init-declarations': init_declarations_1.default,
+    'keyword-spacing': keyword_spacing_1.default,
+    'lines-between-class-members': lines_between_class_members_1.default,
     'member-delimiter-style': member_delimiter_style_1.default,
-    'member-naming': member_naming_1.default,
     'member-ordering': member_ordering_1.default,
+    'method-signature-style': method_signature_style_1.default,
     'naming-convention': naming_convention_1.default,
     'no-array-constructor': no_array_constructor_1.default,
+    'no-base-to-string': no_base_to_string_1.default,
+    'no-confusing-non-null-assertion': no_confusing_non_null_assertion_1.default,
     'no-dupe-class-members': no_dupe_class_members_1.default,
     'no-dynamic-delete': no_dynamic_delete_1.default,
     'no-empty-function': no_empty_function_1.default,
@@ -130,8 +151,13 @@
     'no-extraneous-class': no_extraneous_class_1.default,
     'no-floating-promises': no_floating_promises_1.default,
     'no-for-in-array': no_for_in_array_1.default,
+    'no-implicit-any-catch': no_implicit_any_catch_1.default,
     'no-implied-eval': no_implied_eval_1.default,
     'no-inferrable-types': no_inferrable_types_1.default,
+    'no-invalid-this': no_invalid_this_1.default,
+    'no-invalid-void-type': no_invalid_void_type_1.default,
+    'no-loop-func': no_loop_func_1.default,
+    'no-loss-of-precision': no_loss_of_precision_1.default,
     'no-magic-numbers': no_magic_numbers_1.default,
     'no-misused-new': no_misused_new_1.default,
     'no-misused-promises': no_misused_promises_1.default,
@@ -139,7 +165,9 @@
     'no-non-null-asserted-optional-chain': no_non_null_asserted_optional_chain_1.default,
     'no-non-null-assertion': no_non_null_assertion_1.default,
     'no-parameter-properties': no_parameter_properties_1.default,
+    'no-redeclare': no_redeclare_1.default,
     'no-require-imports': no_require_imports_1.default,
+    'no-shadow': no_shadow_1.default,
     'no-this-alias': no_this_alias_1.default,
     'no-throw-literal': no_throw_literal_1.default,
     'no-type-alias': no_type_alias_1.default,
@@ -148,7 +176,10 @@
     'no-unnecessary-qualifier': no_unnecessary_qualifier_1.default,
     'no-unnecessary-type-arguments': no_unnecessary_type_arguments_1.default,
     'no-unnecessary-type-assertion': no_unnecessary_type_assertion_1.default,
-    'no-untyped-public-signature': no_untyped_public_signature_1.default,
+    'no-unsafe-assignment': no_unsafe_assignment_1.default,
+    'no-unsafe-call': no_unsafe_call_1.default,
+    'no-unsafe-member-access': no_unsafe_member_access_1.default,
+    'no-unsafe-return': no_unsafe_return_1.default,
     'no-unused-expressions': no_unused_expressions_1.default,
     'no-unused-vars-experimental': no_unused_vars_experimental_1.default,
     'no-unused-vars': no_unused_vars_1.default,
@@ -156,31 +187,36 @@
     'no-useless-constructor': no_useless_constructor_1.default,
     'no-var-requires': no_var_requires_1.default,
     'prefer-as-const': prefer_as_const_1.default,
+    'prefer-enum-initializers': prefer_enum_initializers_1.default,
     'prefer-for-of': prefer_for_of_1.default,
     'prefer-function-type': prefer_function_type_1.default,
     'prefer-includes': prefer_includes_1.default,
+    'prefer-literal-enum-member': prefer_literal_enum_member_1.default,
     'prefer-namespace-keyword': prefer_namespace_keyword_1.default,
     'prefer-nullish-coalescing': prefer_nullish_coalescing_1.default,
     'prefer-optional-chain': prefer_optional_chain_1.default,
     'prefer-readonly-parameter-types': prefer_readonly_parameter_types_1.default,
     'prefer-readonly': prefer_readonly_1.default,
+    'prefer-reduce-type-parameter': prefer_reduce_type_parameter_1.default,
     'prefer-regexp-exec': prefer_regexp_exec_1.default,
     'prefer-string-starts-ends-with': prefer_string_starts_ends_with_1.default,
+    'prefer-ts-expect-error': prefer_ts_expect_error_1.default,
     'promise-function-async': promise_function_async_1.default,
-    quotes: quotes_1.default,
     'require-array-sort-compare': require_array_sort_compare_1.default,
     'require-await': require_await_1.default,
     'restrict-plus-operands': restrict_plus_operands_1.default,
     'restrict-template-expressions': restrict_template_expressions_1.default,
     'return-await': return_await_1.default,
-    semi: semi_1.default,
     'space-before-function-paren': space_before_function_paren_1.default,
     'strict-boolean-expressions': strict_boolean_expressions_1.default,
     'switch-exhaustiveness-check': switch_exhaustiveness_check_1.default,
     'triple-slash-reference': triple_slash_reference_1.default,
     'type-annotation-spacing': type_annotation_spacing_1.default,
-    typedef: typedef_1.default,
     'unbound-method': unbound_method_1.default,
     'unified-signatures': unified_signatures_1.default,
+    indent: indent_1.default,
+    quotes: quotes_1.default,
+    semi: semi_1.default,
+    typedef: typedef_1.default,
 };
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map
index 531d336..ca13740 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js
new file mode 100644
index 0000000..9b4b331
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js
@@ -0,0 +1,47 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const init_declarations_1 = __importDefault(require("eslint/lib/rules/init-declarations"));
+const util_1 = require("../util");
+exports.default = util_1.createRule({
+    name: 'init-declarations',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'require or disallow initialization in variable declarations',
+            category: 'Variables',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: init_declarations_1.default.meta.schema,
+        messages: (_a = init_declarations_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            initialized: "Variable '{{idName}}' should be initialized on declaration.",
+            notInitialized: "Variable '{{idName}}' should not be initialized on declaration.",
+        },
+    },
+    defaultOptions: ['always'],
+    create(context) {
+        const rules = init_declarations_1.default.create(context);
+        const mode = context.options[0] || 'always';
+        return {
+            'VariableDeclaration:exit'(node) {
+                var _a, _b, _c;
+                if (mode === 'always') {
+                    if (node.declare) {
+                        return;
+                    }
+                    if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleBlock &&
+                        ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration && ((_c = node.parent.parent) === null || _c === void 0 ? void 0 : _c.declare)) {
+                        return;
+                    }
+                }
+                rules['VariableDeclaration:exit'](node);
+            },
+        };
+    },
+});
+//# sourceMappingURL=init-declarations.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map
new file mode 100644
index 0000000..99bf077
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"init-declarations.js","sourceRoot":"","sources":["../../src/rules/init-declarations.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,2FAA0D;AAC1D,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,2BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,2BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EACT,6DAA6D;YAC/D,cAAc,EACZ,iEAAiE;SACpE;KACF;IACD,cAAc,EAAE,CAAC,QAAQ,CAAC;IAC1B,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,2BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAE5C,OAAO;YACL,0BAA0B,CAAC,IAAkC;;gBAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,OAAO;qBACR;oBACD,IACE,OAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,aAAa;wBAClD,OAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB,WAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,OAAO,CAAA,EAC3B;wBACA,OAAO;qBACR;iBACF;gBAED,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js
deleted file mode 100644
index 17ca3f4..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js
+++ /dev/null
@@ -1,132 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const util = __importStar(require("../util"));
-/**
- * Parses a given value as options.
- */
-function parseOptions([options]) {
-    if (options === 'always') {
-        return { prefixWithI: 'always', allowUnderscorePrefix: false };
-    }
-    if (options !== 'never' && options.prefixWithI === 'always') {
-        return {
-            prefixWithI: 'always',
-            allowUnderscorePrefix: !!options.allowUnderscorePrefix,
-        };
-    }
-    return { prefixWithI: 'never' };
-}
-exports.parseOptions = parseOptions;
-exports.default = util.createRule({
-    name: 'interface-name-prefix',
-    meta: {
-        type: 'suggestion',
-        docs: {
-            description: 'Require that interface names should or should not prefixed with `I`',
-            category: 'Stylistic Issues',
-            // this will always be recommended as there's no reason to use this convention
-            // https://github.com/typescript-eslint/typescript-eslint/issues/374
-            recommended: 'error',
-        },
-        deprecated: true,
-        replacedBy: ['naming-convention'],
-        messages: {
-            noPrefix: 'Interface name must not be prefixed with "I".',
-            alwaysPrefix: 'Interface name must be prefixed with "I".',
-        },
-        schema: [
-            {
-                oneOf: [
-                    {
-                        enum: [
-                            // Deprecated, equivalent to: { prefixWithI: 'never' }
-                            'never',
-                            // Deprecated, equivalent to: { prefixWithI: 'always', allowUnderscorePrefix: false }
-                            'always',
-                        ],
-                    },
-                    {
-                        type: 'object',
-                        properties: {
-                            prefixWithI: {
-                                type: 'string',
-                                enum: ['never'],
-                            },
-                        },
-                        additionalProperties: false,
-                    },
-                    {
-                        type: 'object',
-                        properties: {
-                            prefixWithI: {
-                                type: 'string',
-                                enum: ['always'],
-                            },
-                            allowUnderscorePrefix: {
-                                type: 'boolean',
-                            },
-                        },
-                        required: ['prefixWithI'],
-                        additionalProperties: false,
-                    },
-                ],
-            },
-        ],
-    },
-    defaultOptions: [{ prefixWithI: 'never' }],
-    create(context, [options]) {
-        const parsedOptions = parseOptions([options]);
-        /**
-         * Checks if a string is prefixed with "I".
-         * @param name The string to check
-         */
-        function isPrefixedWithI(name) {
-            return /^I[A-Z]/.test(name);
-        }
-        /**
-         * Checks if a string is prefixed with "I" or "_I".
-         * @param name The string to check
-         */
-        function isPrefixedWithIOrUnderscoreI(name) {
-            return /^_?I[A-Z]/.test(name);
-        }
-        return {
-            TSInterfaceDeclaration(node) {
-                if (parsedOptions.prefixWithI === 'never') {
-                    if (isPrefixedWithIOrUnderscoreI(node.id.name)) {
-                        context.report({
-                            node: node.id,
-                            messageId: 'noPrefix',
-                        });
-                    }
-                }
-                else {
-                    if (parsedOptions.allowUnderscorePrefix) {
-                        if (!isPrefixedWithIOrUnderscoreI(node.id.name)) {
-                            context.report({
-                                node: node.id,
-                                messageId: 'alwaysPrefix',
-                            });
-                        }
-                    }
-                    else {
-                        if (!isPrefixedWithI(node.id.name)) {
-                            context.report({
-                                node: node.id,
-                                messageId: 'alwaysPrefix',
-                            });
-                        }
-                    }
-                }
-            },
-        };
-    },
-});
-//# sourceMappingURL=interface-name-prefix.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js.map
deleted file mode 100644
index a015464..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interface-name-prefix.js","sourceRoot":"","sources":["../../src/rules/interface-name-prefix.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js
new file mode 100644
index 0000000..a0d9871
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js
@@ -0,0 +1,67 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const keyword_spacing_1 = __importDefault(require("eslint/lib/rules/keyword-spacing"));
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'keyword-spacing',
+    meta: {
+        type: 'layout',
+        docs: {
+            description: 'Enforce consistent spacing before and after keywords',
+            category: 'Stylistic Issues',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        fixable: 'whitespace',
+        schema: keyword_spacing_1.default.meta.schema,
+        messages: (_a = keyword_spacing_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            expectedBefore: 'Expected space(s) before "{{value}}".',
+            expectedAfter: 'Expected space(s) after "{{value}}".',
+            unexpectedBefore: 'Unexpected space(s) before "{{value}}".',
+            unexpectedAfter: 'Unexpected space(s) after "{{value}}".',
+        },
+    },
+    defaultOptions: [{}],
+    create(context) {
+        const sourceCode = context.getSourceCode();
+        const baseRules = keyword_spacing_1.default.create(context);
+        return Object.assign(Object.assign({}, baseRules), { TSAsExpression(node) {
+                const asToken = util.nullThrows(sourceCode.getTokenAfter(node.expression, token => token.value === 'as'), util.NullThrowsReasons.MissingToken('as', node.type));
+                const oldTokenType = asToken.type;
+                // as is a contextual keyword, so it's always reported as an Identifier
+                // the rule looks for keyword tokens, so we temporarily override it
+                // we mutate it at the token level because the rule calls sourceCode.getFirstToken,
+                // so mutating a copy would not change the underlying copy returned by that method
+                asToken.type = experimental_utils_1.AST_TOKEN_TYPES.Keyword;
+                // use this selector just because it is just a call to `checkSpacingAroundFirstToken`
+                baseRules.DebuggerStatement(asToken);
+                // make sure to reset the type afterward so we don't permanently mutate the AST
+                asToken.type = oldTokenType;
+            } });
+    },
+});
+//# sourceMappingURL=keyword-spacing.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map
new file mode 100644
index 0000000..181f8ee
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"keyword-spacing.js","sourceRoot":"","sources":["../../src/rules/keyword-spacing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,uFAAwD;AACxD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,uCAAuC;YACvD,aAAa,EAAE,sCAAsC;YACrD,gBAAgB,EAAE,yCAAyC;YAC3D,eAAe,EAAE,wCAAwC;SAC1D;KACF;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IAEpB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,uCACK,SAAS,KACZ,cAAc,CAAC,IAAI;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAC7B,UAAU,CAAC,aAAa,CACtB,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAC9B,EACD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;gBAClC,uEAAuE;gBACvE,mEAAmE;gBACnE,mFAAmF;gBACnF,kFAAkF;gBAClF,OAAO,CAAC,IAAI,GAAG,oCAAe,CAAC,OAAO,CAAC;gBAEvC,qFAAqF;gBACrF,SAAS,CAAC,iBAAiB,CAAC,OAAgB,CAAC,CAAC;gBAE9C,+EAA+E;gBAC/E,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js
new file mode 100644
index 0000000..7d55e43
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js
@@ -0,0 +1,79 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const lines_between_class_members_1 = __importDefault(require("eslint/lib/rules/lines-between-class-members"));
+const util = __importStar(require("../util"));
+const schema = util.deepMerge(Object.assign({}, lines_between_class_members_1.default.meta.schema), {
+    1: {
+        exceptAfterOverload: {
+            type: 'booleean',
+            default: true,
+        },
+    },
+});
+exports.default = util.createRule({
+    name: 'lines-between-class-members',
+    meta: {
+        type: 'layout',
+        docs: {
+            description: 'Require or disallow an empty line between class members',
+            category: 'Stylistic Issues',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        fixable: 'whitespace',
+        schema,
+        messages: (_a = lines_between_class_members_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            never: 'Unexpected blank line between class members.',
+            always: 'Expected blank line between class members.',
+        },
+    },
+    defaultOptions: [
+        'always',
+        {
+            exceptAfterOverload: true,
+            exceptAfterSingleLine: false,
+        },
+    ],
+    create(context, options) {
+        var _a;
+        const rules = lines_between_class_members_1.default.create(context);
+        const exceptAfterOverload = ((_a = options[1]) === null || _a === void 0 ? void 0 : _a.exceptAfterOverload) && options[0] === 'always';
+        function isOverload(node) {
+            return (node.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
+                node.value.type === experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression);
+        }
+        return {
+            ClassBody(node) {
+                const body = exceptAfterOverload
+                    ? node.body.filter(node => !isOverload(node))
+                    : node.body;
+                rules.ClassBody(Object.assign(Object.assign({}, node), { body }));
+            },
+        };
+    },
+});
+//# sourceMappingURL=lines-between-class-members.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map
new file mode 100644
index 0000000..f8300c0
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"lines-between-class-members.js","sourceRoot":"","sources":["../../src/rules/lines-between-class-members.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,+GAAoE;AACpE,8CAAgC;AAKhC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,mBACtB,qCAAQ,CAAC,IAAI,CAAC,MAAM,GACzB;IACE,CAAC,EAAE;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,IAAI;SACd;KACF;CACF,CACF,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM;QACN,QAAQ,QAAE,qCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,KAAK,EAAE,8CAA8C;YACrD,MAAM,EAAE,4CAA4C;SACrD;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,mBAAmB,EAAE,IAAI;YACzB,qBAAqB,EAAE,KAAK;SAC7B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;;QACrB,MAAM,KAAK,GAAG,qCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,mBAAmB,GACvB,OAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,mBAAmB,KAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QAE7D,SAAS,UAAU,CAAC,IAAmB;YACrC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,CACjE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,CAAC,IAAI;gBACZ,MAAM,IAAI,GAAG,mBAAmB;oBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEd,KAAK,CAAC,SAAS,iCAAM,IAAI,KAAE,IAAI,IAAG,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js
index c9de8f9..2faac1c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -39,7 +51,7 @@
         docs: {
             description: 'Require a specific member delimiter style for interfaces and type literals',
             category: 'Stylistic Issues',
-            recommended: 'error',
+            recommended: false,
         },
         fixable: 'code',
         messages: {
@@ -82,7 +94,7 @@
         const sourceCode = context.getSourceCode();
         // use the base options as the defaults for the cases
         const baseOptions = options;
-        const overrides = (_a = baseOptions.overrides, (_a !== null && _a !== void 0 ? _a : {}));
+        const overrides = (_a = baseOptions.overrides) !== null && _a !== void 0 ? _a : {};
         const interfaceOptions = util.deepMerge(baseOptions, overrides.interface);
         const typeLiteralOptions = util.deepMerge(baseOptions, overrides.typeLiteral);
         /**
@@ -184,7 +196,7 @@
                 : typeLiteralOptions;
             const opts = isSingleLine ? typeOpts.singleline : typeOpts.multiline;
             members.forEach((member, index) => {
-                checkLastToken(member, (opts !== null && opts !== void 0 ? opts : {}), index === members.length - 1);
+                checkLastToken(member, opts !== null && opts !== void 0 ? opts : {}, index === members.length - 1);
             });
         }
         return {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map
index 1b06390..f48cf7b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map
@@ -1 +1 @@
-{"version":3,"file":"member-delimiter-style.js","sourceRoot":"","sources":["../../src/rules/member-delimiter-style.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"member-delimiter-style.js","sourceRoot":"","sources":["../../src/rules/member-delimiter-style.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js
deleted file mode 100644
index 6b31f7f..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js
+++ /dev/null
@@ -1,107 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const util = __importStar(require("../util"));
-exports.default = util.createRule({
-    name: 'member-naming',
-    meta: {
-        type: 'suggestion',
-        docs: {
-            description: 'Enforces naming conventions for class members by visibility',
-            category: 'Stylistic Issues',
-            recommended: false,
-        },
-        deprecated: true,
-        replacedBy: ['naming-convention'],
-        messages: {
-            incorrectName: '{{accessibility}} property {{name}} should match {{convention}}.',
-        },
-        schema: [
-            {
-                type: 'object',
-                properties: {
-                    public: {
-                        type: 'string',
-                        minLength: 1,
-                        format: 'regex',
-                    },
-                    protected: {
-                        type: 'string',
-                        minLength: 1,
-                        format: 'regex',
-                    },
-                    private: {
-                        type: 'string',
-                        minLength: 1,
-                        format: 'regex',
-                    },
-                },
-                additionalProperties: false,
-                minProperties: 1,
-            },
-        ],
-    },
-    defaultOptions: [{}],
-    create(context, [config]) {
-        const sourceCode = context.getSourceCode();
-        const conventions = Object.keys(config).reduce((acc, accessibility) => {
-            acc[accessibility] = new RegExp(config[accessibility]);
-            return acc;
-        }, {});
-        function getParameterNode(node) {
-            if (node.parameter.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern) {
-                return node.parameter.left;
-            }
-            if (node.parameter.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
-                return node.parameter;
-            }
-            return null;
-        }
-        function validateParameterName(node) {
-            const parameterNode = getParameterNode(node);
-            if (!parameterNode) {
-                return;
-            }
-            validate(parameterNode, parameterNode.name, node.accessibility);
-        }
-        function validateName(node) {
-            if (node.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
-                node.kind === 'constructor') {
-                return;
-            }
-            validate(node.key, util.getNameFromMember(node, sourceCode), node.accessibility);
-        }
-        /**
-         * Check that the name matches the convention for its accessibility.
-         * @param {ASTNode}   node the named node to evaluate.
-         * @param {string}    name
-         * @param {Modifiers} accessibility
-         * @returns {void}
-         * @private
-         */
-        function validate(node, name, accessibility = 'public') {
-            const convention = conventions[accessibility];
-            if (!convention || convention.test(name)) {
-                return;
-            }
-            context.report({
-                node,
-                messageId: 'incorrectName',
-                data: { accessibility, name, convention },
-            });
-        }
-        return {
-            TSParameterProperty: validateParameterName,
-            MethodDefinition: validateName,
-            ClassProperty: validateName,
-        };
-    },
-});
-//# sourceMappingURL=member-naming.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js.map
deleted file mode 100644
index 8d39643..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"member-naming.js","sourceRoot":"","sources":["../../src/rules/member-naming.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js
index 8eb1f94..2dbbe7d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js
@@ -1,20 +1,120 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.defaultOrder = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
-const allMemberTypes = ['field', 'method', 'constructor'].reduce((all, type) => {
+const neverConfig = {
+    type: 'string',
+    enum: ['never'],
+};
+const arrayConfig = (memberTypes) => ({
+    type: 'array',
+    items: {
+        enum: memberTypes,
+    },
+});
+const objectConfig = (memberTypes) => ({
+    type: 'object',
+    properties: {
+        memberTypes: {
+            oneOf: [arrayConfig(memberTypes), neverConfig],
+        },
+        order: {
+            type: 'string',
+            enum: ['alphabetically', 'as-written'],
+        },
+    },
+    additionalProperties: false,
+});
+exports.defaultOrder = [
+    // Index signature
+    'signature',
+    // Fields
+    'public-static-field',
+    'protected-static-field',
+    'private-static-field',
+    'public-decorated-field',
+    'protected-decorated-field',
+    'private-decorated-field',
+    'public-instance-field',
+    'protected-instance-field',
+    'private-instance-field',
+    'public-abstract-field',
+    'protected-abstract-field',
+    'private-abstract-field',
+    'public-field',
+    'protected-field',
+    'private-field',
+    'static-field',
+    'instance-field',
+    'abstract-field',
+    'decorated-field',
+    'field',
+    // Constructors
+    'public-constructor',
+    'protected-constructor',
+    'private-constructor',
+    'constructor',
+    // Methods
+    'public-static-method',
+    'protected-static-method',
+    'private-static-method',
+    'public-decorated-method',
+    'protected-decorated-method',
+    'private-decorated-method',
+    'public-instance-method',
+    'protected-instance-method',
+    'private-instance-method',
+    'public-abstract-method',
+    'protected-abstract-method',
+    'private-abstract-method',
+    'public-method',
+    'protected-method',
+    'private-method',
+    'static-method',
+    'instance-method',
+    'abstract-method',
+    'decorated-method',
+    'method',
+];
+const allMemberTypes = ['signature', 'field', 'method', 'constructor'].reduce((all, type) => {
     all.push(type);
     ['public', 'protected', 'private'].forEach(accessibility => {
-        all.push(`${accessibility}-${type}`); // e.g. `public-field`
-        if (type !== 'constructor') {
-            // There is no `static-constructor` or `instance-constructor or `abstract-constructor`
+        if (type !== 'signature') {
+            all.push(`${accessibility}-${type}`); // e.g. `public-field`
+        }
+        // Only class instance fields and methods can have decorators attached to them
+        if (type === 'field' || type === 'method') {
+            const decoratedMemberType = `${accessibility}-decorated-${type}`;
+            const decoratedMemberTypeNoAccessibility = `decorated-${type}`;
+            if (!all.includes(decoratedMemberType)) {
+                all.push(decoratedMemberType);
+            }
+            if (!all.includes(decoratedMemberTypeNoAccessibility)) {
+                all.push(decoratedMemberTypeNoAccessibility);
+            }
+        }
+        if (type !== 'constructor' && type !== 'signature') {
+            // There is no `static-constructor` or `instance-constructor` or `abstract-constructor`
             ['static', 'instance', 'abstract'].forEach(scope => {
                 if (!all.includes(`${scope}-${type}`)) {
                     all.push(`${scope}-${type}`);
@@ -25,7 +125,152 @@
     });
     return all;
 }, []);
-allMemberTypes.unshift('signature');
+const functionExpressions = [
+    experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
+    experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
+];
+/**
+ * Gets the node type.
+ *
+ * @param node the node to be evaluated.
+ */
+function getNodeType(node) {
+    // TODO: add missing TSCallSignatureDeclaration
+    switch (node.type) {
+        case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
+        case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
+            return node.kind;
+        case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
+            return 'method';
+        case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration:
+            return 'constructor';
+        case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty:
+        case experimental_utils_1.AST_NODE_TYPES.ClassProperty:
+            return node.value && functionExpressions.includes(node.value.type)
+                ? 'method'
+                : 'field';
+        case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature:
+            return 'field';
+        case experimental_utils_1.AST_NODE_TYPES.TSIndexSignature:
+            return 'signature';
+        default:
+            return null;
+    }
+}
+/**
+ * Gets the member name based on the member type.
+ *
+ * @param node the node to be evaluated.
+ * @param sourceCode
+ */
+function getMemberName(node, sourceCode) {
+    switch (node.type) {
+        case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature:
+        case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
+        case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty:
+        case experimental_utils_1.AST_NODE_TYPES.ClassProperty:
+            return util.getNameFromMember(node, sourceCode);
+        case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
+        case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
+            return node.kind === 'constructor'
+                ? 'constructor'
+                : util.getNameFromMember(node, sourceCode);
+        case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration:
+            return 'new';
+        case experimental_utils_1.AST_NODE_TYPES.TSIndexSignature:
+            return util.getNameFromIndexSignature(node);
+        default:
+            return null;
+    }
+}
+/**
+ * Gets the calculated rank using the provided method definition.
+ * The algorithm is as follows:
+ * - Get the rank based on the accessibility-scope-type name, e.g. public-instance-field
+ * - If there is no order for accessibility-scope-type, then strip out the accessibility.
+ * - If there is no order for scope-type, then strip out the scope.
+ * - If there is no order for type, then return -1
+ * @param memberGroups the valid names to be validated.
+ * @param orderConfig the current order to be validated.
+ *
+ * @return Index of the matching member type in the order configuration.
+ */
+function getRankOrder(memberGroups, orderConfig) {
+    let rank = -1;
+    const stack = memberGroups.slice(); // Get a copy of the member groups
+    while (stack.length > 0 && rank === -1) {
+        rank = orderConfig.indexOf(stack.shift());
+    }
+    return rank;
+}
+/**
+ * Gets the rank of the node given the order.
+ * @param node the node to be evaluated.
+ * @param orderConfig the current order to be validated.
+ * @param supportsModifiers a flag indicating whether the type supports modifiers (scope or accessibility) or not.
+ */
+function getRank(node, orderConfig, supportsModifiers) {
+    const type = getNodeType(node);
+    if (type === null) {
+        // shouldn't happen but just in case, put it on the end
+        return orderConfig.length - 1;
+    }
+    const abstract = node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty ||
+        node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition;
+    const scope = 'static' in node && node.static
+        ? 'static'
+        : abstract
+            ? 'abstract'
+            : 'instance';
+    const accessibility = 'accessibility' in node && node.accessibility
+        ? node.accessibility
+        : 'public';
+    // Collect all existing member groups (e.g. 'public-instance-field', 'instance-field', 'public-field', 'constructor' etc.)
+    const memberGroups = [];
+    if (supportsModifiers) {
+        const decorated = 'decorators' in node && node.decorators.length > 0;
+        if (decorated && (type === 'field' || type === 'method')) {
+            memberGroups.push(`${accessibility}-decorated-${type}`);
+            memberGroups.push(`decorated-${type}`);
+        }
+        if (type !== 'constructor') {
+            // Constructors have no scope
+            memberGroups.push(`${accessibility}-${scope}-${type}`);
+            memberGroups.push(`${scope}-${type}`);
+        }
+        memberGroups.push(`${accessibility}-${type}`);
+    }
+    memberGroups.push(type);
+    return getRankOrder(memberGroups, orderConfig);
+}
+/**
+ * Gets the lowest possible rank higher than target.
+ * e.g. given the following order:
+ *   ...
+ *   public-static-method
+ *   protected-static-method
+ *   private-static-method
+ *   public-instance-method
+ *   protected-instance-method
+ *   private-instance-method
+ *   ...
+ * and considering that a public-instance-method has already been declared, so ranks contains
+ * public-instance-method, then the lowest possible rank for public-static-method is
+ * public-instance-method.
+ * @param ranks the existing ranks in the object.
+ * @param target the target rank.
+ * @param order the current order to be validated.
+ * @returns the name of the lowest possible rank without dashes (-).
+ */
+function getLowestRank(ranks, target, order) {
+    let lowest = ranks[ranks.length - 1];
+    ranks.forEach(rank => {
+        if (rank > target) {
+            lowest = Math.min(lowest, rank);
+        }
+    });
+    return order[lowest].replace(/-/g, ' ');
+}
 exports.default = util.createRule({
     name: 'member-ordering',
     meta: {
@@ -36,7 +281,8 @@
             recommended: false,
         },
         messages: {
-            incorrectOrder: 'Member {{name}} should be declared before all {{rank}} definitions.',
+            incorrectOrder: 'Member "{{member}}" should be declared before member "{{beforeMember}}".',
+            incorrectGroupOrder: 'Member {{name}} should be declared before all {{rank}} definitions.',
         },
         schema: [
             {
@@ -44,67 +290,37 @@
                 properties: {
                     default: {
                         oneOf: [
-                            {
-                                enum: ['never'],
-                            },
-                            {
-                                type: 'array',
-                                items: {
-                                    enum: allMemberTypes,
-                                },
-                            },
+                            neverConfig,
+                            arrayConfig(allMemberTypes),
+                            objectConfig(allMemberTypes),
                         ],
                     },
                     classes: {
                         oneOf: [
-                            {
-                                enum: ['never'],
-                            },
-                            {
-                                type: 'array',
-                                items: {
-                                    enum: allMemberTypes,
-                                },
-                            },
+                            neverConfig,
+                            arrayConfig(allMemberTypes),
+                            objectConfig(allMemberTypes),
                         ],
                     },
                     classExpressions: {
                         oneOf: [
-                            {
-                                enum: ['never'],
-                            },
-                            {
-                                type: 'array',
-                                items: {
-                                    enum: allMemberTypes,
-                                },
-                            },
+                            neverConfig,
+                            arrayConfig(allMemberTypes),
+                            objectConfig(allMemberTypes),
                         ],
                     },
                     interfaces: {
                         oneOf: [
-                            {
-                                enum: ['never'],
-                            },
-                            {
-                                type: 'array',
-                                items: {
-                                    enum: ['signature', 'field', 'method', 'constructor'],
-                                },
-                            },
+                            neverConfig,
+                            arrayConfig(['signature', 'field', 'method', 'constructor']),
+                            objectConfig(['signature', 'field', 'method', 'constructor']),
                         ],
                     },
                     typeLiterals: {
                         oneOf: [
-                            {
-                                enum: ['never'],
-                            },
-                            {
-                                type: 'array',
-                                items: {
-                                    enum: ['signature', 'field', 'method', 'constructor'],
-                                },
-                            },
+                            neverConfig,
+                            arrayConfig(['signature', 'field', 'method', 'constructor']),
+                            objectConfig(['signature', 'field', 'method', 'constructor']),
                         ],
                     },
                 },
@@ -114,230 +330,137 @@
     },
     defaultOptions: [
         {
-            default: [
-                'signature',
-                'public-static-field',
-                'protected-static-field',
-                'private-static-field',
-                'public-instance-field',
-                'protected-instance-field',
-                'private-instance-field',
-                'public-abstract-field',
-                'protected-abstract-field',
-                'private-abstract-field',
-                'public-field',
-                'protected-field',
-                'private-field',
-                'static-field',
-                'instance-field',
-                'abstract-field',
-                'field',
-                'constructor',
-                'public-static-method',
-                'protected-static-method',
-                'private-static-method',
-                'public-instance-method',
-                'protected-instance-method',
-                'private-instance-method',
-                'public-abstract-method',
-                'protected-abstract-method',
-                'private-abstract-method',
-                'public-method',
-                'protected-method',
-                'private-method',
-                'static-method',
-                'instance-method',
-                'abstract-method',
-                'method',
-            ],
+            default: exports.defaultOrder,
         },
     ],
     create(context, [options]) {
-        const sourceCode = context.getSourceCode();
-        const functionExpressions = [
-            experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
-            experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
-        ];
         /**
-         * Gets the node type.
-         * @param node the node to be evaluated.
-         */
-        function getNodeType(node) {
-            // TODO: add missing TSCallSignatureDeclaration
-            switch (node.type) {
-                case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
-                case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
-                    return node.kind;
-                case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
-                    return 'method';
-                case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration:
-                    return 'constructor';
-                case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty:
-                case experimental_utils_1.AST_NODE_TYPES.ClassProperty:
-                    return node.value && functionExpressions.includes(node.value.type)
-                        ? 'method'
-                        : 'field';
-                case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature:
-                    return 'field';
-                case experimental_utils_1.AST_NODE_TYPES.TSIndexSignature:
-                    return 'signature';
-                default:
-                    return null;
-            }
-        }
-        /**
-         * Gets the member name based on the member type.
-         * @param node the node to be evaluated.
-         */
-        function getMemberName(node) {
-            switch (node.type) {
-                case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature:
-                case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
-                case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty:
-                case experimental_utils_1.AST_NODE_TYPES.ClassProperty:
-                    return util.getNameFromMember(node, sourceCode);
-                case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
-                case experimental_utils_1.AST_NODE_TYPES.MethodDefinition:
-                    return node.kind === 'constructor'
-                        ? 'constructor'
-                        : util.getNameFromMember(node, sourceCode);
-                case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration:
-                    return 'new';
-                case experimental_utils_1.AST_NODE_TYPES.TSIndexSignature:
-                    return util.getNameFromIndexSignature(node);
-                default:
-                    return null;
-            }
-        }
-        /**
-         * Gets the calculated rank using the provided method definition.
-         * The algorithm is as follows:
-         * - Get the rank based on the accessibility-scope-type name, e.g. public-instance-field
-         * - If there is no order for accessibility-scope-type, then strip out the accessibility.
-         * - If there is no order for scope-type, then strip out the scope.
-         * - If there is no order for type, then return -1
-         * @param memberTypes the valid names to be validated.
-         * @param order the current order to be validated.
+         * Checks if the member groups are correctly sorted.
          *
-         * @return Index of the matching member type in the order configuration.
+         * @param members Members to be validated.
+         * @param groupOrder Group order to be validated.
+         * @param supportsModifiers A flag indicating whether the type supports modifiers (scope or accessibility) or not.
+         *
+         * @return Array of member groups or null if one of the groups is not correctly sorted.
          */
-        function getRankOrder(memberTypes, order) {
-            let rank = -1;
-            const stack = memberTypes.slice(); // Get a copy of the member types
-            while (stack.length > 0 && rank === -1) {
-                rank = order.indexOf(stack.shift());
-            }
-            return rank;
-        }
-        /**
-         * Gets the rank of the node given the order.
-         * @param node the node to be evaluated.
-         * @param order the current order to be validated.
-         * @param supportsModifiers a flag indicating whether the type supports modifiers (scope or accessibility) or not.
-         */
-        function getRank(node, order, supportsModifiers) {
-            const type = getNodeType(node);
-            if (type === null) {
-                // shouldn't happen but just in case, put it on the end
-                return order.length - 1;
-            }
-            const abstract = node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty ||
-                node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition;
-            const scope = 'static' in node && node.static
-                ? 'static'
-                : abstract
-                    ? 'abstract'
-                    : 'instance';
-            const accessibility = 'accessibility' in node && node.accessibility
-                ? node.accessibility
-                : 'public';
-            const memberTypes = [];
-            if (supportsModifiers) {
-                if (type !== 'constructor') {
-                    // Constructors have no scope
-                    memberTypes.push(`${accessibility}-${scope}-${type}`);
-                    memberTypes.push(`${scope}-${type}`);
+        function checkGroupSort(members, groupOrder, supportsModifiers) {
+            const previousRanks = [];
+            const memberGroups = [];
+            let isCorrectlySorted = true;
+            // Find first member which isn't correctly sorted
+            members.forEach(member => {
+                const rank = getRank(member, groupOrder, supportsModifiers);
+                const name = getMemberName(member, context.getSourceCode());
+                const rankLastMember = previousRanks[previousRanks.length - 1];
+                if (rank === -1) {
+                    return;
                 }
-                memberTypes.push(`${accessibility}-${type}`);
-            }
-            memberTypes.push(type);
-            return getRankOrder(memberTypes, order);
-        }
-        /**
-         * Gets the lowest possible rank higher than target.
-         * e.g. given the following order:
-         *   ...
-         *   public-static-method
-         *   protected-static-method
-         *   private-static-method
-         *   public-instance-method
-         *   protected-instance-method
-         *   private-instance-method
-         *   ...
-         * and considering that a public-instance-method has already been declared, so ranks contains
-         * public-instance-method, then the lowest possible rank for public-static-method is
-         * public-instance-method.
-         * @param ranks the existing ranks in the object.
-         * @param target the target rank.
-         * @param order the current order to be validated.
-         * @returns the name of the lowest possible rank without dashes (-).
-         */
-        function getLowestRank(ranks, target, order) {
-            let lowest = ranks[ranks.length - 1];
-            ranks.forEach(rank => {
-                if (rank > target) {
-                    lowest = Math.min(lowest, rank);
+                // Works for 1st item because x < undefined === false for any x (typeof string)
+                if (rank < rankLastMember) {
+                    context.report({
+                        node: member,
+                        messageId: 'incorrectGroupOrder',
+                        data: {
+                            name,
+                            rank: getLowestRank(previousRanks, rank, groupOrder),
+                        },
+                    });
+                    isCorrectlySorted = false;
+                }
+                else if (rank === rankLastMember) {
+                    // Same member group --> Push to existing member group array
+                    memberGroups[memberGroups.length - 1].push(member);
+                }
+                else {
+                    // New member group --> Create new member group array
+                    previousRanks.push(rank);
+                    memberGroups.push([member]);
                 }
             });
-            return order[lowest].replace(/-/g, ' ');
+            return isCorrectlySorted ? memberGroups : null;
+        }
+        /**
+         * Checks if the members are alphabetically sorted.
+         *
+         * @param members Members to be validated.
+         *
+         * @return True if all members are correctly sorted.
+         */
+        function checkAlphaSort(members) {
+            let previousName = '';
+            let isCorrectlySorted = true;
+            // Find first member which isn't correctly sorted
+            members.forEach(member => {
+                const name = getMemberName(member, context.getSourceCode());
+                // Note: Not all members have names
+                if (name) {
+                    if (name < previousName) {
+                        context.report({
+                            node: member,
+                            messageId: 'incorrectOrder',
+                            data: {
+                                member: name,
+                                beforeMember: previousName,
+                            },
+                        });
+                        isCorrectlySorted = false;
+                    }
+                    previousName = name;
+                }
+            });
+            return isCorrectlySorted;
         }
         /**
          * Validates if all members are correctly sorted.
          *
          * @param members Members to be validated.
-         * @param order Current order to be validated.
+         * @param orderConfig Order config to be validated.
          * @param supportsModifiers A flag indicating whether the type supports modifiers (scope or accessibility) or not.
          */
-        function validateMembersOrder(members, order, supportsModifiers) {
-            if (members && order !== 'never') {
-                const previousRanks = [];
-                // Find first member which isn't correctly sorted
-                members.forEach(member => {
-                    const rank = getRank(member, order, supportsModifiers);
-                    if (rank !== -1) {
-                        if (rank < previousRanks[previousRanks.length - 1]) {
-                            context.report({
-                                node: member,
-                                messageId: 'incorrectOrder',
-                                data: {
-                                    name: getMemberName(member),
-                                    rank: getLowestRank(previousRanks, rank, order),
-                                },
-                            });
-                        }
-                        else {
-                            previousRanks.push(rank);
-                        }
-                    }
-                });
+        function validateMembersOrder(members, orderConfig, supportsModifiers) {
+            if (orderConfig === 'never') {
+                return;
+            }
+            // Standardize config
+            let order = null;
+            let memberTypes;
+            if (Array.isArray(orderConfig)) {
+                memberTypes = orderConfig;
+            }
+            else {
+                order = orderConfig.order;
+                memberTypes = orderConfig.memberTypes;
+            }
+            // Check order
+            if (Array.isArray(memberTypes)) {
+                const grouped = checkGroupSort(members, memberTypes, supportsModifiers);
+                if (grouped === null) {
+                    return;
+                }
+                if (order === 'alphabetically') {
+                    grouped.some(groupMember => !checkAlphaSort(groupMember));
+                }
+            }
+            else if (order === 'alphabetically') {
+                checkAlphaSort(members);
             }
         }
         return {
             ClassDeclaration(node) {
                 var _a;
-                validateMembersOrder(node.body.body, (_a = options.classes, (_a !== null && _a !== void 0 ? _a : options.default)), true);
+                validateMembersOrder(node.body.body, (_a = options.classes) !== null && _a !== void 0 ? _a : options.default, true);
             },
             ClassExpression(node) {
                 var _a;
-                validateMembersOrder(node.body.body, (_a = options.classExpressions, (_a !== null && _a !== void 0 ? _a : options.default)), true);
+                validateMembersOrder(node.body.body, (_a = options.classExpressions) !== null && _a !== void 0 ? _a : options.default, true);
             },
             TSInterfaceDeclaration(node) {
                 var _a;
-                validateMembersOrder(node.body.body, (_a = options.interfaces, (_a !== null && _a !== void 0 ? _a : options.default)), false);
+                validateMembersOrder(node.body.body, (_a = options.interfaces) !== null && _a !== void 0 ? _a : options.default, false);
             },
             TSTypeLiteral(node) {
                 var _a;
-                validateMembersOrder(node.members, (_a = options.typeLiterals, (_a !== null && _a !== void 0 ? _a : options.default)), false);
+                validateMembersOrder(node.members, (_a = options.typeLiterals) !== null && _a !== void 0 ? _a : options.default, false);
             },
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map
index 27863fd..912eb4b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map
@@ -1 +1 @@
-{"version":3,"file":"member-ordering.js","sourceRoot":"","sources":["../../src/rules/member-ordering.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"member-ordering.js","sourceRoot":"","sources":["../../src/rules/member-ordering.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js
new file mode 100644
index 0000000..f73a017
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js
@@ -0,0 +1,162 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'method-signature-style',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Enforces using a particular method signature syntax.',
+            category: 'Best Practices',
+            recommended: false,
+        },
+        fixable: 'code',
+        messages: {
+            errorMethod: 'Shorthand method signature is forbidden. Use a function property instead.',
+            errorProperty: 'Function property signature is forbidden. Use a method shorthand instead.',
+        },
+        schema: [
+            {
+                enum: ['property', 'method'],
+            },
+        ],
+    },
+    defaultOptions: ['property'],
+    create(context, [mode]) {
+        const sourceCode = context.getSourceCode();
+        function getMethodKey(node) {
+            let key = sourceCode.getText(node.key);
+            if (node.computed) {
+                key = `[${key}]`;
+            }
+            if (node.optional) {
+                key = `${key}?`;
+            }
+            if (node.readonly) {
+                key = `readonly ${key}`;
+            }
+            return key;
+        }
+        function getMethodParams(node) {
+            let params = '()';
+            if (node.params.length > 0) {
+                const openingParen = util.nullThrows(sourceCode.getTokenBefore(node.params[0], util.isOpeningParenToken), 'Missing opening paren before first parameter');
+                const closingParen = util.nullThrows(sourceCode.getTokenAfter(node.params[node.params.length - 1], util.isClosingParenToken), 'Missing closing paren after last parameter');
+                params = sourceCode.text.substring(openingParen.range[0], closingParen.range[1]);
+            }
+            if (node.typeParameters != null) {
+                const typeParams = sourceCode.getText(node.typeParameters);
+                params = `${typeParams}${params}`;
+            }
+            return params;
+        }
+        function getMethodReturnType(node) {
+            return sourceCode.getText(node.returnType.typeAnnotation);
+        }
+        function getDelimiter(node) {
+            const lastToken = sourceCode.getLastToken(node);
+            if (lastToken &&
+                (util.isSemicolonToken(lastToken) || util.isCommaToken(lastToken))) {
+                return lastToken.value;
+            }
+            return '';
+        }
+        return {
+            TSMethodSignature(methodNode) {
+                var _a;
+                if (mode === 'method') {
+                    return;
+                }
+                const duplicatedKeyMethodNodes = ((_a = methodNode.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody
+                    ? methodNode.parent.body.filter((element) => element.type === experimental_utils_1.AST_NODE_TYPES.TSMethodSignature &&
+                        element !== methodNode &&
+                        getMethodKey(element) === getMethodKey(methodNode))
+                    : [];
+                if (duplicatedKeyMethodNodes.length > 0) {
+                    context.report({
+                        node: methodNode,
+                        messageId: 'errorMethod',
+                        *fix(fixer) {
+                            const methodNodes = [
+                                methodNode,
+                                ...duplicatedKeyMethodNodes,
+                            ].sort((a, b) => (a.range[0] < b.range[0] ? -1 : 1));
+                            const typeString = methodNodes.reduce((str, node, idx, nodes) => {
+                                const params = getMethodParams(node);
+                                const returnType = getMethodReturnType(node);
+                                return `${str}(${params} => ${returnType})${idx !== nodes.length - 1 ? ' & ' : ''}`;
+                            }, '');
+                            const key = getMethodKey(methodNode);
+                            const delimiter = getDelimiter(methodNode);
+                            yield fixer.replaceText(methodNode, `${key}: ${typeString}${delimiter}`);
+                            for (const node of duplicatedKeyMethodNodes) {
+                                const lastToken = sourceCode.getLastToken(node);
+                                if (lastToken) {
+                                    const nextToken = sourceCode.getTokenAfter(lastToken);
+                                    if (nextToken) {
+                                        yield fixer.remove(node);
+                                        yield fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], '');
+                                    }
+                                }
+                            }
+                        },
+                    });
+                    return;
+                }
+                context.report({
+                    node: methodNode,
+                    messageId: 'errorMethod',
+                    fix: fixer => {
+                        const key = getMethodKey(methodNode);
+                        const params = getMethodParams(methodNode);
+                        const returnType = getMethodReturnType(methodNode);
+                        const delimiter = getDelimiter(methodNode);
+                        return fixer.replaceText(methodNode, `${key}: ${params} => ${returnType}${delimiter}`);
+                    },
+                });
+            },
+            TSPropertySignature(propertyNode) {
+                var _a;
+                const typeNode = (_a = propertyNode.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeAnnotation;
+                if ((typeNode === null || typeNode === void 0 ? void 0 : typeNode.type) !== experimental_utils_1.AST_NODE_TYPES.TSFunctionType) {
+                    return;
+                }
+                if (mode === 'property') {
+                    return;
+                }
+                context.report({
+                    node: propertyNode,
+                    messageId: 'errorProperty',
+                    fix: fixer => {
+                        const key = getMethodKey(propertyNode);
+                        const params = getMethodParams(typeNode);
+                        const returnType = getMethodReturnType(typeNode);
+                        const delimiter = getDelimiter(propertyNode);
+                        return fixer.replaceText(propertyNode, `${key}${params}: ${returnType}${delimiter}`);
+                    },
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=method-signature-style.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map
new file mode 100644
index 0000000..e7081d2
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"method-signature-style.js","sourceRoot":"","sources":["../../src/rules/method-signature-style.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js
index 7f2e651..e709fd7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js
@@ -1,12 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.selectorTypeToMessageString = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
 // #region Options Type Config
@@ -16,7 +29,6 @@
     PredefinedFormats[PredefinedFormats["strictCamelCase"] = 2] = "strictCamelCase";
     PredefinedFormats[PredefinedFormats["PascalCase"] = 4] = "PascalCase";
     PredefinedFormats[PredefinedFormats["StrictPascalCase"] = 8] = "StrictPascalCase";
-    // eslint-disable-next-line @typescript-eslint/camelcase
     PredefinedFormats[PredefinedFormats["snake_case"] = 16] = "snake_case";
     PredefinedFormats[PredefinedFormats["UPPER_CASE"] = 32] = "UPPER_CASE";
 })(PredefinedFormats || (PredefinedFormats = {}));
@@ -55,12 +67,13 @@
 })(MetaSelectors || (MetaSelectors = {}));
 var Modifiers;
 (function (Modifiers) {
-    Modifiers[Modifiers["readonly"] = 1] = "readonly";
-    Modifiers[Modifiers["static"] = 2] = "static";
-    Modifiers[Modifiers["public"] = 4] = "public";
-    Modifiers[Modifiers["protected"] = 8] = "protected";
-    Modifiers[Modifiers["private"] = 16] = "private";
-    Modifiers[Modifiers["abstract"] = 32] = "abstract";
+    Modifiers[Modifiers["const"] = 1] = "const";
+    Modifiers[Modifiers["readonly"] = 2] = "readonly";
+    Modifiers[Modifiers["static"] = 4] = "static";
+    Modifiers[Modifiers["public"] = 8] = "public";
+    Modifiers[Modifiers["protected"] = 16] = "protected";
+    Modifiers[Modifiers["private"] = 32] = "private";
+    Modifiers[Modifiers["abstract"] = 64] = "abstract";
 })(Modifiers || (Modifiers = {}));
 var TypeModifiers;
 (function (TypeModifiers) {
@@ -159,13 +172,59 @@
         },
     ];
 }
+function selectorsSchema() {
+    return {
+        type: 'object',
+        properties: Object.assign(Object.assign({}, FORMAT_OPTIONS_PROPERTIES), {
+            filter: {
+                oneOf: [
+                    {
+                        type: 'string',
+                        minLength: 1,
+                    },
+                    MATCH_REGEX_SCHEMA,
+                ],
+            },
+            selector: {
+                type: 'array',
+                items: {
+                    type: 'string',
+                    enum: [
+                        ...util.getEnumNames(MetaSelectors),
+                        ...util.getEnumNames(Selectors),
+                    ],
+                },
+                additionalItems: false,
+            },
+            modifiers: {
+                type: 'array',
+                items: {
+                    type: 'string',
+                    enum: util.getEnumNames(Modifiers),
+                },
+                additionalItems: false,
+            },
+            types: {
+                type: 'array',
+                items: {
+                    type: 'string',
+                    enum: util.getEnumNames(TypeModifiers),
+                },
+                additionalItems: false,
+            },
+        }),
+        required: ['selector', 'format'],
+        additionalProperties: false,
+    };
+}
 const SCHEMA = {
     type: 'array',
     items: {
         oneOf: [
+            selectorsSchema(),
             ...selectorSchema('default', false, util.getEnumNames(Modifiers)),
             ...selectorSchema('variableLike', false),
-            ...selectorSchema('variable', true),
+            ...selectorSchema('variable', true, ['const']),
             ...selectorSchema('function', false),
             ...selectorSchema('parameter', true),
             ...selectorSchema('memberLike', false, [
@@ -248,17 +307,19 @@
         },
         type: 'suggestion',
         messages: {
-            unexpectedUnderscore: '{{type}} name {{name}} must not have a {{position}} underscore.',
-            missingUnderscore: '{{type}} name {{name}} must have a {{position}} underscore',
-            missingAffix: '{{type}} name {{name}} must have one of the following {{position}}es: {{affixes}}',
-            satisfyCustom: '{{type}} name {{name}} must {{regexMatch}} the RegExp: {{regex}}',
-            doesNotMatchFormat: '{{type}} name {{name}} must match one of the following formats: {{formats}}',
+            unexpectedUnderscore: '{{type}} name `{{name}}` must not have a {{position}} underscore.',
+            missingUnderscore: '{{type}} name `{{name}}` must have a {{position}} underscore.',
+            missingAffix: '{{type}} name `{{name}}` must have one of the following {{position}}es: {{affixes}}',
+            satisfyCustom: '{{type}} name `{{name}}` must {{regexMatch}} the RegExp: {{regex}}',
+            doesNotMatchFormat: '{{type}} name `{{name}}` must match one of the following formats: {{formats}}',
+            doesNotMatchFormatTrimmed: '{{type}} name `{{name}}` trimmed as `{{processedName}}` must match one of the following formats: {{formats}}',
         },
         schema: SCHEMA,
     },
     defaultOptions: defaultCamelCaseAllTheThingsConfig,
     create(contextWithoutDefaults) {
-        const context = contextWithoutDefaults.options
+        const context = contextWithoutDefaults.options &&
+            contextWithoutDefaults.options.length > 0
             ? contextWithoutDefaults
             : // only apply the defaults when the user provides no config
                 Object.setPrototypeOf({
@@ -301,8 +362,15 @@
                 }
                 const identifiers = [];
                 getIdentifiersFromPattern(node.id, identifiers);
+                const modifiers = new Set();
+                const parent = node.parent;
+                if (parent &&
+                    parent.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration &&
+                    parent.kind === 'const') {
+                    modifiers.add(Modifiers.const);
+                }
                 identifiers.forEach(i => {
-                    validator(i);
+                    validator(i, modifiers);
                 });
             },
             // #endregion
@@ -348,7 +416,7 @@
             },
             // #endregion parameterProperty
             // #region property
-            'Property[computed = false][kind = "init"][value.type != "ArrowFunctionExpression"][value.type != "FunctionExpression"][value.type != "TSEmptyBodyFunctionExpression"]'(node) {
+            ':not(ObjectPattern) > Property[computed = false][kind = "init"][value.type != "ArrowFunctionExpression"][value.type != "FunctionExpression"][value.type != "TSEmptyBodyFunctionExpression"]'(node) {
                 const modifiers = new Set([Modifiers.public]);
                 handleMember(validators.property, node, modifiers);
             },
@@ -502,12 +570,13 @@
     }
 }
 function parseOptions(context) {
-    const normalizedOptions = context.options.map(opt => normalizeOption(opt));
-    const parsedOptions = util.getEnumNames(Selectors).reduce((acc, k) => {
+    const normalizedOptions = context.options
+        .map(opt => normalizeOption(opt))
+        .reduce((acc, val) => acc.concat(val), []);
+    return util.getEnumNames(Selectors).reduce((acc, k) => {
         acc[k] = createValidator(k, context, normalizedOptions);
         return acc;
     }, {});
-    return parsedOptions;
 }
 function createValidator(type, context, allConfigs) {
     // make sure the "highest priority" configs are checked first
@@ -589,18 +658,19 @@
         }
     };
     // centralizes the logic for formatting the report data
-    function formatReportData({ affixes, formats, originalName, position, custom, }) {
-        var _a, _b, _c, _d, _e, _f;
+    function formatReportData({ affixes, formats, originalName, processedName, position, custom, }) {
+        var _a;
         return {
             type: selectorTypeToMessageString(type),
             name: originalName,
+            processedName,
             position,
-            affixes: (_a = affixes) === null || _a === void 0 ? void 0 : _a.join(', '),
-            formats: (_b = formats) === null || _b === void 0 ? void 0 : _b.map(f => PredefinedFormats[f]).join(', '),
-            regex: (_d = (_c = custom) === null || _c === void 0 ? void 0 : _c.regex) === null || _d === void 0 ? void 0 : _d.toString(),
-            regexMatch: ((_e = custom) === null || _e === void 0 ? void 0 : _e.match) === true
+            affixes: affixes === null || affixes === void 0 ? void 0 : affixes.join(', '),
+            formats: formats === null || formats === void 0 ? void 0 : formats.map(f => PredefinedFormats[f]).join(', '),
+            regex: (_a = custom === null || custom === void 0 ? void 0 : custom.regex) === null || _a === void 0 ? void 0 : _a.toString(),
+            regexMatch: (custom === null || custom === void 0 ? void 0 : custom.match) === true
                 ? 'match'
-                : ((_f = custom) === null || _f === void 0 ? void 0 : _f.match) === false
+                : (custom === null || custom === void 0 ? void 0 : custom.match) === false
                     ? 'not match'
                     : null,
         };
@@ -721,9 +791,12 @@
         }
         context.report({
             node,
-            messageId: 'doesNotMatchFormat',
+            messageId: originalName === name
+                ? 'doesNotMatchFormat'
+                : 'doesNotMatchFormatTrimmed',
             data: formatReportData({
                 originalName,
+                processedName: name,
                 formats,
             }),
         });
@@ -745,22 +818,18 @@
 */
 function isPascalCase(name) {
     return (name.length === 0 ||
-        // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
         (name[0] === name[0].toUpperCase() && !name.includes('_')));
 }
 function isStrictPascalCase(name) {
     return (name.length === 0 ||
-        // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
         (name[0] === name[0].toUpperCase() && hasStrictCamelHumps(name, true)));
 }
 function isCamelCase(name) {
     return (name.length === 0 ||
-        // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
         (name[0] === name[0].toLowerCase() && !name.includes('_')));
 }
 function isStrictCamelCase(name) {
     return (name.length === 0 ||
-        // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
         (name[0] === name[0].toLowerCase() && hasStrictCamelHumps(name, false)));
 }
 function hasStrictCamelHumps(name, isUpper) {
@@ -842,12 +911,12 @@
     if (option.filter) {
         weight |= 1 << 30;
     }
-    return {
+    const normalizedOption = {
         // format options
         format: option.format ? option.format.map(f => PredefinedFormats[f]) : null,
         custom: option.custom
             ? {
-                regex: new RegExp(option.custom.regex),
+                regex: new RegExp(option.custom.regex, 'u'),
                 match: option.custom.match,
             }
             : null,
@@ -859,23 +928,36 @@
             : null,
         prefix: option.prefix && option.prefix.length > 0 ? option.prefix : null,
         suffix: option.suffix && option.suffix.length > 0 ? option.suffix : null,
-        // selector options
-        selector: isMetaSelector(option.selector)
-            ? MetaSelectors[option.selector]
-            : Selectors[option.selector],
-        modifiers: (_d = (_c = option.modifiers) === null || _c === void 0 ? void 0 : _c.map(m => Modifiers[m]), (_d !== null && _d !== void 0 ? _d : null)),
-        types: (_f = (_e = option.types) === null || _e === void 0 ? void 0 : _e.map(m => TypeModifiers[m]), (_f !== null && _f !== void 0 ? _f : null)),
+        modifiers: (_d = (_c = option.modifiers) === null || _c === void 0 ? void 0 : _c.map(m => Modifiers[m])) !== null && _d !== void 0 ? _d : null,
+        types: (_f = (_e = option.types) === null || _e === void 0 ? void 0 : _e.map(m => TypeModifiers[m])) !== null && _f !== void 0 ? _f : null,
         filter: option.filter !== undefined
             ? typeof option.filter === 'string'
-                ? { regex: new RegExp(option.filter), match: true }
+                ? { regex: new RegExp(option.filter, 'u'), match: true }
                 : {
-                    regex: new RegExp(option.filter.regex),
+                    regex: new RegExp(option.filter.regex, 'u'),
                     match: option.filter.match,
                 }
             : null,
         // calculated ordering weight based on modifiers
         modifierWeight: weight,
     };
+    const selectors = Array.isArray(option.selector)
+        ? option.selector
+        : [option.selector];
+    const selectorsAllowedToHaveTypes = [
+        Selectors.variable,
+        Selectors.parameter,
+        Selectors.property,
+        Selectors.parameterProperty,
+        Selectors.accessor,
+    ];
+    const config = [];
+    selectors
+        .map(selector => isMetaSelector(selector) ? MetaSelectors[selector] : Selectors[selector])
+        .forEach(selector => selectorsAllowedToHaveTypes.includes(selector)
+        ? config.push(Object.assign({ selector: selector }, normalizedOption))
+        : config.push(Object.assign(Object.assign({ selector: selector }, normalizedOption), { types: null })));
+    return config;
 }
 function isCorrectType(node, config, context) {
     if (config.types === null) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map
index 200d2ce..76ea393 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map
@@ -1 +1 @@
-{"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/rules/naming-convention.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/rules/naming-convention.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js
index 861a4c4..806672e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -36,7 +48,7 @@
                 node.callee.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
                 node.callee.name === 'Array' &&
                 !node.typeParameters &&
-                !util.isOptionalOptionalChain(node)) {
+                !util.isOptionalCallExpression(node)) {
                 context.report({
                     node,
                     messageId: 'useLiteral',
@@ -53,7 +65,6 @@
         }
         return {
             CallExpression: check,
-            OptionalCallExpression: check,
             NewExpression: check,
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js.map
index 7f4596e..db44e48 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-array-constructor.js","sourceRoot":"","sources":["../../src/rules/no-array-constructor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,UAAU,EAAE,8CAA8C;SAC3D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ;;;WAGG;QACH,SAAS,KAAK,CACZ,IAG0B;YAE1B,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAC5B,CAAC,IAAI,CAAC,cAAc;gBACpB,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EACnC;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,YAAY;oBACvB,GAAG,CAAC,KAAK;wBACP,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;yBACtC;wBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACvD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAE5D,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,EACJ,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9C,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,cAAc,EAAE,KAAK;YACrB,sBAAsB,EAAE,KAAK;YAC7B,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-array-constructor.js","sourceRoot":"","sources":["../../src/rules/no-array-constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,UAAU,EAAE,8CAA8C;SAC3D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ;;;WAGG;QACH,SAAS,KAAK,CACZ,IAAsD;YAEtD,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAC5B,CAAC,IAAI,CAAC,cAAc;gBACpB,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EACpC;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,YAAY;oBACvB,GAAG,CAAC,KAAK;wBACP,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;yBACtC;wBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACvD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAE5D,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,EACJ,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9C,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js
index c2f33cc..b3b994b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -26,20 +38,39 @@
             requiresTypeChecking: true,
         },
         messages: {
-            baseToString: "'{{name}} {{certainty}} evaluate to '[Object object]' when stringified.",
+            baseToString: "'{{name}} {{certainty}} evaluate to '[object Object]' when stringified.",
         },
-        schema: [],
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    ignoredTypeNames: {
+                        type: 'array',
+                        items: {
+                            type: 'string',
+                        },
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
         type: 'suggestion',
     },
-    defaultOptions: [],
-    create(context) {
+    defaultOptions: [
+        {
+            ignoredTypeNames: ['RegExp'],
+        },
+    ],
+    create(context, [option]) {
+        var _a;
         const parserServices = util.getParserServices(context);
         const typeChecker = parserServices.program.getTypeChecker();
+        const ignoredTypeNames = (_a = option.ignoredTypeNames) !== null && _a !== void 0 ? _a : [];
         function checkExpression(node, type) {
             if (node.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
                 return;
             }
-            const certainty = collectToStringCertainty((type !== null && type !== void 0 ? type : typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node))));
+            const certainty = collectToStringCertainty(type !== null && type !== void 0 ? type : typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node)));
             if (certainty === Usefulness.Always) {
                 return;
             }
@@ -54,19 +85,49 @@
         }
         function collectToStringCertainty(type) {
             const toString = typeChecker.getPropertyOfType(type, 'toString');
-            if (toString === undefined || toString.declarations.length === 0) {
+            const declarations = toString === null || toString === void 0 ? void 0 : toString.getDeclarations();
+            if (!toString || !declarations || declarations.length === 0) {
                 return Usefulness.Always;
             }
-            if (toString.declarations.every(({ parent }) => !ts.isInterfaceDeclaration(parent) || parent.name.text !== 'Object')) {
+            // Patch for old version TypeScript, the Boolean type definition missing toString()
+            if (type.flags & ts.TypeFlags.Boolean ||
+                type.flags & ts.TypeFlags.BooleanLiteral) {
                 return Usefulness.Always;
             }
+            if (ignoredTypeNames.includes(util.getTypeName(typeChecker, type))) {
+                return Usefulness.Always;
+            }
+            if (declarations.every(({ parent }) => !ts.isInterfaceDeclaration(parent) || parent.name.text !== 'Object')) {
+                return Usefulness.Always;
+            }
+            if (type.isIntersection()) {
+                for (const subType of type.types) {
+                    const subtypeUsefulness = collectToStringCertainty(subType);
+                    if (subtypeUsefulness === Usefulness.Always) {
+                        return Usefulness.Always;
+                    }
+                }
+                return Usefulness.Never;
+            }
             if (!type.isUnion()) {
                 return Usefulness.Never;
             }
+            let allSubtypesUseful = true;
+            let someSubtypeUseful = false;
             for (const subType of type.types) {
-                if (collectToStringCertainty(subType) !== Usefulness.Never) {
-                    return Usefulness.Sometimes;
+                const subtypeUsefulness = collectToStringCertainty(subType);
+                if (subtypeUsefulness !== Usefulness.Always && allSubtypesUseful) {
+                    allSubtypesUseful = false;
                 }
+                if (subtypeUsefulness !== Usefulness.Never && !someSubtypeUseful) {
+                    someSubtypeUseful = true;
+                }
+            }
+            if (allSubtypesUseful && someSubtypeUseful) {
+                return Usefulness.Always;
+            }
+            if (someSubtypeUseful) {
+                return Usefulness.Sometimes;
             }
             return Usefulness.Never;
         }
@@ -86,6 +147,10 @@
                 checkExpression(memberExpr.object);
             },
             TemplateLiteral(node) {
+                if (node.parent &&
+                    node.parent.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression) {
+                    return;
+                }
                 for (const expression of node.expressions) {
                     checkExpression(expression);
                 }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map
index 48f5468..378fe4c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-base-to-string.js","sourceRoot":"","sources":["../../src/rules/no-base-to-string.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-base-to-string.js","sourceRoot":"","sources":["../../src/rules/no-base-to-string.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js
new file mode 100644
index 0000000..9369dc9
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js
@@ -0,0 +1,97 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-confusing-non-null-assertion',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallow non-null assertion in locations that may be confusing',
+            category: 'Stylistic Issues',
+            recommended: false,
+        },
+        fixable: 'code',
+        messages: {
+            confusingEqual: 'Confusing combinations of non-null assertion and equal test like "a! == b", which looks very similar to not equal "a !== b"',
+            confusingAssign: 'Confusing combinations of non-null assertion and equal test like "a! = b", which looks very similar to not equal "a != b"',
+            notNeedInEqualTest: 'Unnecessary non-null assertion (!) in equal test',
+            notNeedInAssign: 'Unnecessary non-null assertion (!) in assignment left hand',
+            wrapUpLeft: 'Wrap up left hand to avoid putting non-null assertion "!" and "=" together',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const sourceCode = context.getSourceCode();
+        return {
+            'BinaryExpression, AssignmentExpression'(node) {
+                function isLeftHandPrimaryExpression(node) {
+                    return node.type === experimental_utils_1.AST_NODE_TYPES.TSNonNullExpression;
+                }
+                if (node.operator === '==' ||
+                    node.operator === '===' ||
+                    node.operator === '=') {
+                    const isAssign = node.operator === '=';
+                    const leftHandFinalToken = sourceCode.getLastToken(node.left);
+                    const tokenAfterLeft = sourceCode.getTokenAfter(node.left);
+                    if ((leftHandFinalToken === null || leftHandFinalToken === void 0 ? void 0 : leftHandFinalToken.type) === experimental_utils_1.AST_TOKEN_TYPES.Punctuator &&
+                        (leftHandFinalToken === null || leftHandFinalToken === void 0 ? void 0 : leftHandFinalToken.value) === '!' &&
+                        (tokenAfterLeft === null || tokenAfterLeft === void 0 ? void 0 : tokenAfterLeft.value) !== ')') {
+                        if (isLeftHandPrimaryExpression(node.left)) {
+                            context.report({
+                                node,
+                                messageId: isAssign ? 'confusingAssign' : 'confusingEqual',
+                                suggest: [
+                                    {
+                                        messageId: isAssign
+                                            ? 'notNeedInAssign'
+                                            : 'notNeedInEqualTest',
+                                        fix: (fixer) => [
+                                            fixer.remove(leftHandFinalToken),
+                                        ],
+                                    },
+                                ],
+                            });
+                        }
+                        else {
+                            context.report({
+                                node,
+                                messageId: isAssign ? 'confusingAssign' : 'confusingEqual',
+                                suggest: [
+                                    {
+                                        messageId: 'wrapUpLeft',
+                                        fix: (fixer) => [
+                                            fixer.insertTextBefore(node.left, '('),
+                                            fixer.insertTextAfter(node.left, ')'),
+                                        ],
+                                    },
+                                ],
+                            });
+                        }
+                    }
+                }
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-confusing-non-null-assertion.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js.map
new file mode 100644
index 0000000..d789e54
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-non-null-assertion.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-confusing-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-confusing-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAK+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,gEAAgE;YAClE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,cAAc,EACZ,6HAA6H;YAC/H,eAAe,EACb,2HAA2H;YAC7H,kBAAkB,EAAE,kDAAkD;YACtE,eAAe,EACb,4DAA4D;YAC9D,UAAU,EACR,4EAA4E;SAC/E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO;YACL,wCAAwC,CACtC,IAA+D;gBAE/D,SAAS,2BAA2B,CAClC,IAAyB;oBAEzB,OAAO,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBAC1D,CAAC;gBAED,IACE,IAAI,CAAC,QAAQ,KAAK,IAAI;oBACtB,IAAI,CAAC,QAAQ,KAAK,KAAK;oBACvB,IAAI,CAAC,QAAQ,KAAK,GAAG,EACrB;oBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC;oBACvC,MAAM,kBAAkB,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9D,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,IACE,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,MAAK,oCAAe,CAAC,UAAU;wBACvD,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,MAAK,GAAG;wBACjC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,MAAK,GAAG,EAC7B;wBACA,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BAC1C,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI;gCACJ,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB;gCAC1D,OAAO,EAAE;oCACP;wCACE,SAAS,EAAE,QAAQ;4CACjB,CAAC,CAAC,iBAAiB;4CACnB,CAAC,CAAC,oBAAoB;wCACxB,GAAG,EAAE,CAAC,KAAK,EAAsB,EAAE,CAAC;4CAClC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC;yCACjC;qCACF;iCACF;6BACF,CAAC,CAAC;yBACJ;6BAAM;4BACL,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI;gCACJ,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB;gCAC1D,OAAO,EAAE;oCACP;wCACE,SAAS,EAAE,YAAY;wCACvB,GAAG,EAAE,CAAC,KAAK,EAAsB,EAAE,CAAC;4CAClC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;4CACtC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;yCACtC;qCACF;iCACF;6BACF,CAAC,CAAC;yBACJ;qBACF;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js
index 9c4a211..a823830 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js
@@ -1,14 +1,26 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_dupe_class_members_1 = __importDefault(require("eslint/lib/rules/no-dupe-class-members"));
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js.map
index 010b7b7..7e93bad 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dupe-class-members.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-dupe-class-members.js","sourceRoot":"","sources":["../../src/rules/no-dupe-class-members.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAuE;AACvE,mGAA8D;AAC9D,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,+BAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,uCACK,KAAK,KACR,gBAAgB,CAAC,IAAI;gBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,EAAE;oBACpE,OAAO;iBACR;gBAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-dupe-class-members.js","sourceRoot":"","sources":["../../src/rules/no-dupe-class-members.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAuE;AACvE,mGAA8D;AAC9D,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,+BAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,uCACK,KAAK,KACR,gBAAgB,CAAC,IAAI;gBACnB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,EAAE;oBACpE,OAAO;iBACR;gBAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js
index 8d254e0..911e401 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js.map
index fc1a44e..bf3450b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-dynamic-delete.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-delete.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAI+C;AAC/C,iDAAmC;AACnC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,4DAA4D;YACzE,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,aAAa,EAAE,mDAAmD;SACnE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,WAAW,CAClB,MAAiC;YAEjC,IACE,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;gBAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EACzC;gBACA,OAAO,yBAAyB,CAC9B,MAAM,CAAC,QAAQ,EACf,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAC5B,CAAC;aACH;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,kCAAkC,CAAC,IAA8B;gBAC/D,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;oBACtD,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBACvB,wBAAwB,CACtB,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACnD,EACD;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC/B,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QAEF,SAAS,yBAAyB,CAChC,QAA6B,EAC7B,WAAmB;YAEnB,OAAO,CAAC,KAAyB,EAAoB,EAAE,CACrD,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC;QAED,SAAS,aAAa,CAAC,QAA6B;YAClD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAE3C,OAAO;gBACL,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,0BAA0B,CACjC,IAAyB;IAEzB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAAE;QAChD,OAAO,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClD;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA6B;IAC7D,IAAI,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;QAC5C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAClC,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC/C,CAAC;AACJ,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-dynamic-delete.js","sourceRoot":"","sources":["../../src/rules/no-dynamic-delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iDAAmC;AACnC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,4DAA4D;YACzE,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,aAAa,EAAE,mDAAmD;SACnE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,WAAW,CAClB,MAAiC;YAEjC,IACE,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;gBAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EACzC;gBACA,OAAO,yBAAyB,CAC9B,MAAM,CAAC,QAAQ,EACf,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAC5B,CAAC;aACH;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,kCAAkC,CAAC,IAA8B;gBAC/D,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;oBACtD,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBACvB,wBAAwB,CACtB,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACnD,EACD;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC/B,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QAEF,SAAS,yBAAyB,CAChC,QAA6B,EAC7B,WAAmB;YAEnB,OAAO,CAAC,KAAyB,EAAoB,EAAE,CACrD,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC;QAED,SAAS,aAAa,CAAC,QAA6B;YAClD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAE3C,OAAO;gBACL,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,0BAA0B,CACjC,IAAyB;IAEzB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAAE;QAChD,OAAO,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClD;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA6B;IAC7D,IAAI,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;QAC5C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAClC,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC/C,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js
index c2ac27d..775e85c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js
@@ -1,14 +1,26 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_empty_function_1 = __importDefault(require("eslint/lib/rules/no-empty-function"));
@@ -30,6 +42,9 @@
                     'constructors',
                     'private-constructors',
                     'protected-constructors',
+                    'asyncFunctions',
+                    'asyncMethods',
+                    'decoratedFunctions',
                 ],
             },
         },
@@ -57,6 +72,7 @@
         const rules = no_empty_function_1.default.create(context);
         const isAllowedProtectedConstructors = allow.includes('protected-constructors');
         const isAllowedPrivateConstructors = allow.includes('private-constructors');
+        const isAllowedDecoratedFunctions = allow.includes('decoratedFunctions');
         /**
          * Check if the method body is empty
          * @param node the node to be validated
@@ -73,8 +89,8 @@
          * @private
          */
         function hasParameterProperties(node) {
-            return (node.params &&
-                node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.TSParameterProperty));
+            var _a;
+            return (_a = node.params) === null || _a === void 0 ? void 0 : _a.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.TSParameterProperty);
         }
         /**
          * @param node the node to be validated
@@ -82,10 +98,9 @@
          * @private
          */
         function isAllowedEmptyConstructor(node) {
-            var _a;
             const parent = node.parent;
             if (isBodyEmpty(node) &&
-                ((_a = parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
+                (parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
                 parent.kind === 'constructor') {
                 const { accessibility } = parent;
                 return (
@@ -98,11 +113,33 @@
             }
             return false;
         }
+        /**
+         * @param node the node to be validated
+         * @returns true if a function has decorators
+         * @private
+         */
+        function isAllowedEmptyDecoratedFunctions(node) {
+            var _a;
+            if (isAllowedDecoratedFunctions && isBodyEmpty(node)) {
+                const decorators = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition
+                    ? node.parent.decorators
+                    : undefined;
+                return !!decorators && !!decorators.length;
+            }
+            return false;
+        }
         return Object.assign(Object.assign({}, rules), { FunctionExpression(node) {
-                if (isAllowedEmptyConstructor(node)) {
+                if (isAllowedEmptyConstructor(node) ||
+                    isAllowedEmptyDecoratedFunctions(node)) {
                     return;
                 }
                 rules.FunctionExpression(node);
+            },
+            FunctionDeclaration(node) {
+                if (isAllowedEmptyDecoratedFunctions(node)) {
+                    return;
+                }
+                rules.FunctionDeclaration(node);
             } });
     },
 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map
index 4507125..e081d10 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-empty-function.js","sourceRoot":"","sources":["../../src/rules/no-empty-function.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-empty-function.js","sourceRoot":"","sources":["../../src/rules/no-empty-function.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js
index 6944792..f4037c2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -16,6 +28,7 @@
             description: 'Disallow the declaration of empty interfaces',
             category: 'Best Practices',
             recommended: 'error',
+            suggestion: true,
         },
         fixable: 'code',
         messages: {
@@ -43,6 +56,7 @@
         return {
             TSInterfaceDeclaration(node) {
                 const sourceCode = context.getSourceCode();
+                const filename = context.getFilename();
                 if (node.body.body.length !== 0) {
                     // interface contains members --> Nothing to report
                     return;
@@ -57,11 +71,31 @@
                 else if (extend.length === 1) {
                     // interface extends exactly 1 interface --> Report depending on rule setting
                     if (!allowSingleExtends) {
-                        context.report({
-                            node: node.id,
-                            messageId: 'noEmptyWithSuper',
-                            fix: fixer => fixer.replaceText(node, `type ${sourceCode.getText(node.id)} = ${sourceCode.getText(extend[0])}`),
-                        });
+                        const fix = (fixer) => {
+                            let typeParam = '';
+                            if (node.typeParameters) {
+                                typeParam = sourceCode.getText(node.typeParameters);
+                            }
+                            return fixer.replaceText(node, `type ${sourceCode.getText(node.id)}${typeParam} = ${sourceCode.getText(extend[0])}`);
+                        };
+                        // Check if interface is within ambient declaration
+                        let useAutoFix = true;
+                        if (util.isDefinitionFile(filename)) {
+                            const scope = context.getScope();
+                            if (scope.type === 'tsModule' && scope.block.declare) {
+                                useAutoFix = false;
+                            }
+                        }
+                        context.report(Object.assign({ node: node.id, messageId: 'noEmptyWithSuper' }, (useAutoFix
+                            ? { fix }
+                            : {
+                                suggest: [
+                                    {
+                                        messageId: 'noEmptyWithSuper',
+                                        fix,
+                                    },
+                                ],
+                            })));
                     }
                 }
             },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js.map
index 1588210..ba663fe 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-empty-interface.js","sourceRoot":"","sources":["../../src/rules/no-empty-interface.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,2CAA2C;YACpD,gBAAgB,EACd,mEAAmE;SACtE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,kBAAkB,EAAE,KAAK;SAC1B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;QACtC,OAAO;YACL,sBAAsB,CAAC,IAAI;gBACzB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;gBAE3C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/B,mDAAmD;oBACnD,OAAO;iBACR;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI,CAAC,EAAE;wBACb,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAC;iBACJ;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,6EAA6E;oBAC7E,IAAI,CAAC,kBAAkB,EAAE;wBACvB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,IAAI,CAAC,EAAE;4BACb,SAAS,EAAE,kBAAkB;4BAC7B,GAAG,EAAE,KAAK,CAAC,EAAE,CACX,KAAK,CAAC,WAAW,CACf,IAAI,EACJ,QAAQ,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,OAAO,CACzD,MAAM,CAAC,CAAC,CAAC,CACV,EAAE,CACJ;yBACJ,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-empty-interface.js","sourceRoot":"","sources":["../../src/rules/no-empty-interface.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,2CAA2C;YACpD,gBAAgB,EACd,mEAAmE;SACtE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,kBAAkB,EAAE,KAAK;SAC1B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;QACtC,OAAO;YACL,sBAAsB,CAAC,IAAI;gBACzB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBAEvC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/B,mDAAmD;oBACnD,OAAO;iBACR;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI,CAAC,EAAE;wBACb,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAC;iBACJ;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,6EAA6E;oBAC7E,IAAI,CAAC,kBAAkB,EAAE;wBACvB,MAAM,GAAG,GAAG,CAAC,KAAyB,EAAoB,EAAE;4BAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;4BACnB,IAAI,IAAI,CAAC,cAAc,EAAE;gCACvB,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;6BACrD;4BACD,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,EACJ,QAAQ,UAAU,CAAC,OAAO,CACxB,IAAI,CAAC,EAAE,CACR,GAAG,SAAS,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CACnD,CAAC;wBACJ,CAAC,CAAC;wBAEF,mDAAmD;wBACnD,IAAI,UAAU,GAAG,IAAI,CAAC;wBACtB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;4BACnC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACjC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;gCACpD,UAAU,GAAG,KAAK,CAAC;6BACpB;yBACF;wBAED,OAAO,CAAC,MAAM,iBACZ,IAAI,EAAE,IAAI,CAAC,EAAE,EACb,SAAS,EAAE,kBAAkB,IAC1B,CAAC,UAAU;4BACZ,CAAC,CAAC,EAAE,GAAG,EAAE;4BACT,CAAC,CAAC;gCACE,OAAO,EAAE;oCACP;wCACE,SAAS,EAAE,kBAAkB;wCAC7B,GAAG;qCACJ;iCACF;6BACF,CAAC,EACN,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js
index 4940491..f64ee14 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,6 +29,7 @@
             description: 'Disallow usage of the `any` type',
             category: 'Best Practices',
             recommended: 'warn',
+            suggestion: true,
         },
         fixable: 'code',
         messages: {
@@ -47,9 +60,9 @@
     ],
     create(context, [{ ignoreRestArgs, fixToUnknown }]) {
         /**
-         * Checks if the node is an arrow function, function declaration or function expression
+         * Checks if the node is an arrow function, function/constructor declaration or function expression
          * @param node the node to be validated.
-         * @returns true if the node is an arrow function, function declaration, function expression, function type, or call signature
+         * @returns true if the node is any kind of function declaration or expression
          * @private
          */
         function isNodeValidFunction(node) {
@@ -57,8 +70,13 @@
                 experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
                 experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration,
                 experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
+                experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,
                 experimental_utils_1.AST_NODE_TYPES.TSFunctionType,
+                experimental_utils_1.AST_NODE_TYPES.TSConstructorType,
                 experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration,
+                experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration,
+                experimental_utils_1.AST_NODE_TYPES.TSMethodSignature,
+                experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction,
             ].includes(node.type);
         }
         /**
@@ -111,9 +129,8 @@
          * @private
          */
         function isGreatGrandparentRestElement(node) {
-            return (typeof node.parent !== 'undefined' &&
-                typeof node.parent.parent !== 'undefined' &&
-                typeof node.parent.parent.parent !== 'undefined' &&
+            var _a, _b;
+            return (((_b = (_a = node === null || node === void 0 ? void 0 : node.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent) != null &&
                 isNodeRestElementInFunction(node.parent.parent.parent));
         }
         /**
@@ -123,11 +140,9 @@
          * @private
          */
         function isGreatGreatGrandparentRestElement(node) {
-            return (typeof node.parent !== 'undefined' &&
-                typeof node.parent.parent !== 'undefined' &&
+            var _a, _b, _c;
+            return (((_c = (_b = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent) === null || _c === void 0 ? void 0 : _c.parent) != null &&
                 isNodeValidTSType(node.parent.parent) &&
-                typeof node.parent.parent.parent !== 'undefined' &&
-                typeof node.parent.parent.parent.parent !== 'undefined' &&
                 isNodeRestElementInFunction(node.parent.parent.parent.parent));
         }
         /**
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map
index f3311cd..d9f8f54 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-explicit-any.js","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-explicit-any.js","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js
index 47a814d..9c0ac37 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -15,7 +27,7 @@
         docs: {
             description: 'Disallow extra non-null assertion',
             category: 'Stylistic Issues',
-            recommended: false,
+            recommended: 'error',
         },
         fixable: 'code',
         schema: [],
@@ -36,8 +48,8 @@
         }
         return {
             'TSNonNullExpression > TSNonNullExpression': checkExtraNonNullAssertion,
-            'OptionalMemberExpression > TSNonNullExpression': checkExtraNonNullAssertion,
-            'OptionalCallExpression > TSNonNullExpression.callee': checkExtraNonNullAssertion,
+            'MemberExpression[optional = true] > TSNonNullExpression': checkExtraNonNullAssertion,
+            'CallExpression[optional = true] > TSNonNullExpression.callee': checkExtraNonNullAssertion,
         };
     },
 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map
index 4799984..ad93d3f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-extra-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-extra-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8CAAgC;AAGhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,uBAAuB,EAAE,qCAAqC;SAC/D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,0BAA0B,CACjC,IAAkC;YAElC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,yBAAyB;gBACpC,GAAG,CAAC,KAAK;oBACP,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,2CAA2C,EAAE,0BAA0B;YACvE,gDAAgD,EAAE,0BAA0B;YAC5E,qDAAqD,EAAE,0BAA0B;SAClF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-extra-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-extra-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,uBAAuB,EAAE,qCAAqC;SAC/D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,0BAA0B,CACjC,IAAkC;YAElC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,yBAAyB;gBACpC,GAAG,CAAC,KAAK;oBACP,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,2CAA2C,EAAE,0BAA0B;YACvE,yDAAyD,EAAE,0BAA0B;YACrF,8DAA8D,EAAE,0BAA0B;SAC3F,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js
index 18d7a2a..713be4d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js
@@ -1,16 +1,28 @@
 "use strict";
 // any is required to work around manipulating the AST in weird ways
 /* eslint-disable @typescript-eslint/no-explicit-any */
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_extra_parens_1 = __importDefault(require("eslint/lib/rules/no-extra-parens"));
@@ -49,11 +61,18 @@
             return rule(node);
         }
         function callExp(node) {
+            var _a;
             const rule = rules.CallExpression;
             if (util.isTypeAssertion(node.callee)) {
                 // reduces the precedence of the node so the rule thinks it needs to be wrapped
                 return rule(Object.assign(Object.assign({}, node), { callee: Object.assign(Object.assign({}, node.callee), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }) }));
             }
+            if (node.arguments.length === 1 && ((_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType ||
+                param.type === experimental_utils_1.AST_NODE_TYPES.TSImportType))) {
+                return rule(Object.assign(Object.assign({}, node), { arguments: [
+                        Object.assign(Object.assign({}, node.arguments[0]), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }),
+                    ] }));
+            }
             return rule(node);
         }
         function unaryUpdateExpression(node) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map
index a010fc2..b3b7d7e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-extra-parens.js","sourceRoot":"","sources":["../../src/rules/no-extra-parens.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-extra-parens.js","sourceRoot":"","sources":["../../src/rules/no-extra-parens.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js
index 0c1d99b..7c89f97 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js
@@ -1,14 +1,26 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
 const no_extra_semi_1 = __importDefault(require("eslint/lib/rules/no-extra-semi"));
 const util = __importStar(require("../util"));
@@ -19,7 +31,7 @@
         docs: {
             description: 'Disallow unnecessary semicolons',
             category: 'Possible Errors',
-            recommended: false,
+            recommended: 'error',
             extendsBaseRule: true,
         },
         fixable: 'code',
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js.map
index ac68a4f..c7e87d7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-semi.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-extra-semi.js","sourceRoot":"","sources":["../../src/rules/no-extra-semi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mFAAsD;AACtD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,uBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,uBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,uBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,uCACK,KAAK,KACR,aAAa,CAAC,IAAI;gBAChB,KAAK,CAAC,gBAAgB,CAAC,IAAa,CAAC,CAAC;YACxC,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-extra-semi.js","sourceRoot":"","sources":["../../src/rules/no-extra-semi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAsD;AACtD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,uBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,uBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,uBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,uCACK,KAAK,KACR,aAAa,CAAC,IAAI;gBAChB,KAAK,CAAC,gBAAgB,CAAC,IAAa,CAAC,CAAC;YACxC,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js
index 1b7c971..3e81369 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map
index aa83cc0..6865a15 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-extraneous-class.js","sourceRoot":"","sources":["../../src/rules/no-extraneous-class.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAYhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;qBAChB;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,SAAS;qBAChB;oBACD,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,yBAAyB;YAChC,UAAU,EAAE,+CAA+C;YAC3D,eAAe,EAAE,2CAA2C;SAC7D;KACF;IACD,cAAc,EAAE;QACd;YACE,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,KAAK;SAC1B;KACF;IACD,MAAM,CACJ,OAAO,EACP,CAAC,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;QAE3E,MAAM,oBAAoB,GAAG,CAC3B,IAAsE,EAC7D,EAAE;YACX,OAAO,CAAC,CAAC,CACP,kBAAkB;gBAClB,IAAI;gBACJ,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,SAAS,CAAC,IAAI;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAGP,CAAC;gBAEd,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;oBAChC,OAAO;iBACR;gBAED,MAAM,UAAU,GAAG,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,IAAI,UAAU,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;wBAC9C,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,OAAO;qBACnB,CAAC,CAAC;oBAEH,OAAO;iBACR;gBAED,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,IAAI,eAAe,GAAG,IAAI,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;oBAC5B,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;wBACjD,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACpB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,EACD;4BACA,eAAe,GAAG,KAAK,CAAC;4BACxB,UAAU,GAAG,KAAK,CAAC;yBACpB;qBACF;yBAAM;wBACL,eAAe,GAAG,KAAK,CAAC;wBACxB,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;4BACpC,UAAU,GAAG,KAAK,CAAC;yBACpB;qBACF;oBACD,IAAI,CAAC,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE;wBACpC,MAAM;qBACP;iBACF;gBAED,IAAI,eAAe,EAAE;oBACnB,IAAI,CAAC,oBAAoB,EAAE;wBACzB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,UAAU;4BAChB,SAAS,EAAE,iBAAiB;yBAC7B,CAAC,CAAC;qBACJ;oBACD,OAAO;iBACR;gBACD,IAAI,UAAU,IAAI,CAAC,eAAe,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,YAAY;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-extraneous-class.js","sourceRoot":"","sources":["../../src/rules/no-extraneous-class.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAYhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;qBAChB;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,SAAS;qBAChB;oBACD,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,yBAAyB;YAChC,UAAU,EAAE,+CAA+C;YAC3D,eAAe,EAAE,2CAA2C;SAC7D;KACF;IACD,cAAc,EAAE;QACd;YACE,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,KAAK;SAC1B;KACF;IACD,MAAM,CACJ,OAAO,EACP,CAAC,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;QAE3E,MAAM,oBAAoB,GAAG,CAC3B,IAAsE,EAC7D,EAAE;YACX,OAAO,CAAC,CAAC,CACP,kBAAkB;gBAClB,IAAI;gBACJ,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,SAAS,CAAC,IAAI;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAGP,CAAC;gBAEd,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;oBAChC,OAAO;iBACR;gBAED,MAAM,UAAU,GAAG,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,IAAI,UAAU,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;wBAC9C,OAAO;qBACR;oBAED,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,OAAO;qBACnB,CAAC,CAAC;oBAEH,OAAO;iBACR;gBAED,IAAI,UAAU,GAAG,IAAI,CAAC;gBACtB,IAAI,eAAe,GAAG,IAAI,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;oBAC5B,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;wBACjD,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACpB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,EACD;4BACA,eAAe,GAAG,KAAK,CAAC;4BACxB,UAAU,GAAG,KAAK,CAAC;yBACpB;qBACF;yBAAM;wBACL,eAAe,GAAG,KAAK,CAAC;wBACxB,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;4BACpC,UAAU,GAAG,KAAK,CAAC;yBACpB;qBACF;oBACD,IAAI,CAAC,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE;wBACpC,MAAM;qBACP;iBACF;gBAED,IAAI,eAAe,EAAE;oBACnB,IAAI,CAAC,oBAAoB,EAAE;wBACzB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,UAAU;4BAChB,SAAS,EAAE,iBAAiB;yBAC7B,CAAC,CAAC;qBACJ;oBACD,OAAO;iBACR;gBACD,IAAI,UAAU,IAAI,CAAC,eAAe,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,YAAY;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js
index 6ee0cb6..38191bc 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js
@@ -1,14 +1,27 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const tsutils = __importStar(require("tsutils"));
 const ts = __importStar(require("typescript"));
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
     name: 'no-floating-promises',
@@ -16,20 +29,22 @@
         docs: {
             description: 'Requires Promise-like values to be handled appropriately',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
+            suggestion: true,
             requiresTypeChecking: true,
         },
         messages: {
-            floating: 'Promises must be handled appropriately',
+            floating: 'Promises must be handled appropriately.',
             floatingVoid: 'Promises must be handled appropriately' +
-                ' or explicitly marked as ignored with the `void` operator',
-            floatingFixVoid: 'Add void operator to ignore',
+                ' or explicitly marked as ignored with the `void` operator.',
+            floatingFixVoid: 'Add void operator to ignore.',
         },
         schema: [
             {
                 type: 'object',
                 properties: {
                     ignoreVoid: { type: 'boolean' },
+                    ignoreIIFE: { type: 'boolean' },
                 },
                 additionalProperties: false,
             },
@@ -38,7 +53,8 @@
     },
     defaultOptions: [
         {
-            ignoreVoid: false,
+            ignoreVoid: true,
+            ignoreIIFE: false,
         },
     ],
     create(context, [options]) {
@@ -48,6 +64,9 @@
         return {
             ExpressionStatement(node) {
                 const { expression } = parserServices.esTreeNodeToTSNodeMap.get(node);
+                if (options.ignoreIIFE && isAsyncIife(node)) {
+                    return;
+                }
                 if (isUnhandledPromise(checker, expression)) {
                     if (options.ignoreVoid) {
                         context.report({
@@ -74,6 +93,15 @@
                 }
             },
         };
+        function isAsyncIife(node) {
+            if (node.expression.type !== experimental_utils_1.AST_NODE_TYPES.CallExpression) {
+                return false;
+            }
+            return (node.expression.type === experimental_utils_1.AST_NODE_TYPES.CallExpression &&
+                (node.expression.callee.type ===
+                    experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
+                    node.expression.callee.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression));
+        }
         function isUnhandledPromise(checker, node) {
             // First, check expressions whose resulting types may not be promise-like
             if (ts.isBinaryExpression(node) &&
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map
index bbc262e..d025287 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js
index 8f6d962..e1b7fc7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -31,9 +43,8 @@
                 const parserServices = util.getParserServices(context);
                 const checker = parserServices.program.getTypeChecker();
                 const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
-                const type = checker.getTypeAtLocation(originalNode.expression);
-                if ((typeof type.symbol !== 'undefined' &&
-                    type.symbol.name === 'Array') ||
+                const type = util.getConstrainedTypeAtLocation(checker, originalNode.expression);
+                if (util.isTypeArrayTypeOrUnionOfArrayTypes(type, checker) ||
                     (type.flags & ts.TypeFlags.StringLike) !== 0) {
                     context.report({
                         node,
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js.map
index 88288ab..67767b3 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-for-in-array.js","sourceRoot":"","sources":["../../src/rules/no-for-in-array.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAiC;AACjC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,cAAc,EACZ,8EAA8E;SACjF;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAChB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAAI;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACxD,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEpE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEhE,IACE,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW;oBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;oBAC/B,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAC5C;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,gBAAgB;qBAC5B,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-for-in-array.js","sourceRoot":"","sources":["../../src/rules/no-for-in-array.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,cAAc,EACZ,8EAA8E;SACjF;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;KAChB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAAI;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACxD,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAC5C,OAAO,EACP,YAAY,CAAC,UAAU,CACxB,CAAC;gBAEF,IACE,IAAI,CAAC,kCAAkC,CAAC,IAAI,EAAE,OAAO,CAAC;oBACtD,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAC5C;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,gBAAgB;qBAC5B,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js
new file mode 100644
index 0000000..fb3d31e
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js
@@ -0,0 +1,97 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+exports.default = util.createRule({
+    name: 'no-implicit-any-catch',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Disallow usage of the implicit `any` type in catch clauses',
+            category: 'Best Practices',
+            recommended: false,
+            suggestion: true,
+        },
+        fixable: 'code',
+        messages: {
+            implicitAnyInCatch: 'Implicit any in catch clause',
+            explicitAnyInCatch: 'Explicit any in catch clause',
+            suggestExplicitUnknown: 'Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.',
+        },
+        schema: [
+            {
+                type: 'object',
+                additionalProperties: false,
+                properties: {
+                    allowExplicitAny: {
+                        type: 'boolean',
+                    },
+                },
+            },
+        ],
+    },
+    defaultOptions: [
+        {
+            allowExplicitAny: false,
+        },
+    ],
+    create(context, [{ allowExplicitAny }]) {
+        return {
+            CatchClause(node) {
+                if (!node.param) {
+                    return; // ignore catch without variable
+                }
+                if (!node.param.typeAnnotation) {
+                    context.report({
+                        node,
+                        messageId: 'implicitAnyInCatch',
+                        suggest: [
+                            {
+                                messageId: 'suggestExplicitUnknown',
+                                fix(fixer) {
+                                    return fixer.insertTextAfter(node.param, ': unknown');
+                                },
+                            },
+                        ],
+                    });
+                }
+                else if (!allowExplicitAny &&
+                    node.param.typeAnnotation.typeAnnotation.type ===
+                        experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword) {
+                    context.report({
+                        node,
+                        messageId: 'explicitAnyInCatch',
+                        suggest: [
+                            {
+                                messageId: 'suggestExplicitUnknown',
+                                fix(fixer) {
+                                    return fixer.replaceText(node.param.typeAnnotation, ': unknown');
+                                },
+                            },
+                        ],
+                    });
+                }
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-implicit-any-catch.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js.map
new file mode 100644
index 0000000..e5ed504
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implicit-any-catch.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-implicit-any-catch.js","sourceRoot":"","sources":["../../src/rules/no-implicit-any-catch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,8EAG+C;AAY/C,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,kBAAkB,EAAE,8BAA8B;YAClD,kBAAkB,EAAE,8BAA8B;YAClD,sBAAsB,EACpB,kGAAkG;SACrG;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,gBAAgB,EAAE,KAAK;SACxB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACpC,OAAO;YACL,WAAW,CAAC,IAAI;gBACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,OAAO,CAAC,gCAAgC;iBACzC;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;oBAC9B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,wBAAwB;gCACnC,GAAG,CAAC,KAAK;oCACP,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,WAAW,CAAC,CAAC;gCACzD,CAAC;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;qBAAM,IACL,CAAC,gBAAgB;oBACjB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI;wBAC3C,mCAAc,CAAC,YAAY,EAC7B;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,oBAAoB;wBAC/B,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,wBAAwB;gCACnC,GAAG,CAAC,KAAK;oCACP,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,CAAC,KAAM,CAAC,cAAe,EAC3B,WAAW,CACZ,CAAC;gCACJ,CAAC;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js
index f4d4f62..86eb806 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -12,6 +24,7 @@
 const tsutils = __importStar(require("tsutils"));
 const util = __importStar(require("../util"));
 const FUNCTION_CONSTRUCTOR = 'Function';
+const GLOBAL_CANDIDATES = new Set(['global', 'window', 'globalThis']);
 const EVAL_LIKE_METHODS = new Set([
     'setImmediate',
     'setInterval',
@@ -24,7 +37,7 @@
         docs: {
             description: 'Disallow the use of `eval()`-like methods',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
             requiresTypeChecking: true,
         },
         messages: {
@@ -37,6 +50,7 @@
     defaultOptions: [],
     create(context) {
         const parserServices = util.getParserServices(context);
+        const program = parserServices.program;
         const checker = parserServices.program.getTypeChecker();
         function getCalleeName(node) {
             if (node.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
@@ -44,7 +58,7 @@
             }
             if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
                 node.object.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
-                node.object.name === 'window') {
+                GLOBAL_CANDIDATES.has(node.object.name)) {
                 if (node.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
                     return node.property.name;
                 }
@@ -56,6 +70,7 @@
             return null;
         }
         function isFunctionType(node) {
+            var _a;
             const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
             const type = checker.getTypeAtLocation(tsNode);
             const symbol = type.getSymbol();
@@ -63,6 +78,15 @@
                 tsutils.isSymbolFlagSet(symbol, ts.SymbolFlags.Function | ts.SymbolFlags.Method)) {
                 return true;
             }
+            if (symbol && symbol.escapedName === FUNCTION_CONSTRUCTOR) {
+                const declarations = (_a = symbol.getDeclarations()) !== null && _a !== void 0 ? _a : [];
+                for (const declaration of declarations) {
+                    const sourceFile = declaration.getSourceFile();
+                    if (program.isSourceFileDefaultLibrary(sourceFile)) {
+                        return true;
+                    }
+                }
+            }
             const signatures = checker.getSignaturesOfType(type, ts.SignatureKind.Call);
             return signatures.length > 0;
         }
@@ -84,13 +108,29 @@
             }
         }
         function checkImpliedEval(node) {
+            var _a;
+            const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node.callee);
+            const type = checker.getTypeAtLocation(tsNode);
             const calleeName = getCalleeName(node.callee);
             if (calleeName === null) {
                 return;
             }
             if (calleeName === FUNCTION_CONSTRUCTOR) {
-                context.report({ node, messageId: 'noFunctionConstructor' });
-                return;
+                const symbol = type.getSymbol();
+                if (symbol) {
+                    const declarations = (_a = symbol.getDeclarations()) !== null && _a !== void 0 ? _a : [];
+                    for (const declaration of declarations) {
+                        const sourceFile = declaration.getSourceFile();
+                        if (program.isSourceFileDefaultLibrary(sourceFile)) {
+                            context.report({ node, messageId: 'noFunctionConstructor' });
+                            return;
+                        }
+                    }
+                }
+                else {
+                    context.report({ node, messageId: 'noFunctionConstructor' });
+                    return;
+                }
             }
             if (node.arguments.length === 0) {
                 return;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map
index a20d459..38b1988 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-implied-eval.js","sourceRoot":"","sources":["../../src/rules/no-implied-eval.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-implied-eval.js","sourceRoot":"","sources":["../../src/rules/no-implied-eval.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js
index b4006a0..60ff6fb 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -45,8 +57,10 @@
     ],
     create(context, [{ ignoreParameters, ignoreProperties }]) {
         function isFunctionCall(init, callName) {
-            return ((init.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                init.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) &&
+            if (init.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression) {
+                return isFunctionCall(init.expression, callName);
+            }
+            return (init.type === experimental_utils_1.AST_NODE_TYPES.CallExpression &&
                 init.callee.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
                 init.callee.name === callName);
         }
@@ -80,7 +94,8 @@
                         ? init.argument
                         : init;
                     return (isFunctionCall(unwrappedInit, 'BigInt') ||
-                        unwrappedInit.type === experimental_utils_1.AST_NODE_TYPES.BigIntLiteral);
+                        (unwrappedInit.type === experimental_utils_1.AST_NODE_TYPES.Literal &&
+                            'bigint' in unwrappedInit));
                 }
                 case experimental_utils_1.AST_NODE_TYPES.TSBooleanKeyword:
                     return (hasUnaryPrefix(init, '!') ||
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map
index 25be70a..a31baf2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/no-inferrable-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/no-inferrable-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js
new file mode 100644
index 0000000..bfa7ae2
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js
@@ -0,0 +1,59 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const no_invalid_this_1 = __importDefault(require("eslint/lib/rules/no-invalid-this"));
+const util_1 = require("../util");
+exports.default = util_1.createRule({
+    name: 'no-invalid-this',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'disallow `this` keywords outside of classes or class-like objects',
+            category: 'Best Practices',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        messages: (_a = no_invalid_this_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            unexpectedThis: "Unexpected 'this'.",
+        },
+        schema: no_invalid_this_1.default.meta.schema,
+    },
+    defaultOptions: [{ capIsConstructor: true }],
+    create(context) {
+        const rules = no_invalid_this_1.default.create(context);
+        const argList = [];
+        return Object.assign(Object.assign({}, rules), { FunctionDeclaration(node) {
+                argList.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this'));
+                // baseRule's work
+                rules.FunctionDeclaration(node);
+            },
+            'FunctionDeclaration:exit'(node) {
+                argList.pop();
+                // baseRule's work
+                rules['FunctionDeclaration:exit'](node);
+            },
+            FunctionExpression(node) {
+                argList.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this'));
+                // baseRule's work
+                rules.FunctionExpression(node);
+            },
+            'FunctionExpression:exit'(node) {
+                argList.pop();
+                // baseRule's work
+                rules['FunctionExpression:exit'](node);
+            },
+            ThisExpression(node) {
+                const lastFnArg = argList[argList.length - 1];
+                if (lastFnArg) {
+                    return;
+                }
+                // baseRule's work
+                rules.ThisExpression(node);
+            } });
+    },
+});
+//# sourceMappingURL=no-invalid-this.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map
new file mode 100644
index 0000000..1d60a4e
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-invalid-this.js","sourceRoot":"","sources":["../../src/rules/no-invalid-this.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,uFAAwD;AACxD,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,QAAQ,QAAE,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,oBAAoB;SACrC;QACD,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,OAAO,GAAc,EAAE,CAAC;QAE9B,uCACK,KAAK,KACR,mBAAmB,CAAC,IAAkC;gBACpD,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,0BAA0B,CAAC,IAAkC;gBAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,kBAAkB;gBAClB,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,kBAAkB,CAAC,IAAiC;gBAClD,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,yBAAyB,CAAC,IAAiC;gBACzD,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,kBAAkB;gBAClB,KAAK,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,cAAc,CAAC,IAA6B;gBAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE9C,IAAI,SAAS,EAAE;oBACb,OAAO;iBACR;gBAED,kBAAkB;gBAClB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js
new file mode 100644
index 0000000..f58aa23
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js
@@ -0,0 +1,183 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-invalid-void-type',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallows usage of `void` type outside of generic or return types',
+            category: 'Best Practices',
+            recommended: false,
+        },
+        messages: {
+            invalidVoidForGeneric: '{{ generic }} may not have void as a type variable',
+            invalidVoidNotReturnOrGeneric: 'void is only valid as a return type or generic type variable',
+            invalidVoidNotReturn: 'void is only valid as a return type',
+            invalidVoidNotReturnOrThisParam: 'void is only valid as return type or type of `this` parameter',
+            invalidVoidNotReturnOrThisParamOrGeneric: 'void is only valid as a return type or generic type variable or the type of a `this` parameter',
+        },
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    allowInGenericTypeArguments: {
+                        oneOf: [
+                            { type: 'boolean' },
+                            {
+                                type: 'array',
+                                items: { type: 'string' },
+                                minLength: 1,
+                            },
+                        ],
+                    },
+                    allowAsThisParameter: {
+                        type: 'boolean',
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
+    },
+    defaultOptions: [
+        { allowInGenericTypeArguments: true, allowAsThisParameter: false },
+    ],
+    create(context, [{ allowInGenericTypeArguments, allowAsThisParameter }]) {
+        const validParents = [
+            experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation,
+        ];
+        const invalidGrandParents = [
+            experimental_utils_1.AST_NODE_TYPES.TSPropertySignature,
+            experimental_utils_1.AST_NODE_TYPES.CallExpression,
+            experimental_utils_1.AST_NODE_TYPES.ClassProperty,
+            experimental_utils_1.AST_NODE_TYPES.Identifier,
+        ];
+        const validUnionMembers = [
+            experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword,
+            experimental_utils_1.AST_NODE_TYPES.TSNeverKeyword,
+        ];
+        if (allowInGenericTypeArguments === true) {
+            validParents.push(experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation);
+        }
+        /**
+         * @brief check if the given void keyword is used as a valid generic type
+         *
+         * reports if the type parametrized by void is not in the whitelist, or
+         * allowInGenericTypeArguments is false.
+         * no-op if the given void keyword is not used as generic type
+         */
+        function checkGenericTypeArgument(node) {
+            var _a, _b;
+            // only matches T<..., void, ...>
+            // extra check for precaution
+            /* istanbul ignore next */
+            if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation ||
+                ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeReference) {
+                return;
+            }
+            // check whitelist
+            if (Array.isArray(allowInGenericTypeArguments)) {
+                const sourceCode = context.getSourceCode();
+                const fullyQualifiedName = sourceCode
+                    .getText(node.parent.parent.typeName)
+                    .replace(/ /gu, '');
+                if (!allowInGenericTypeArguments
+                    .map(s => s.replace(/ /gu, ''))
+                    .includes(fullyQualifiedName)) {
+                    context.report({
+                        messageId: 'invalidVoidForGeneric',
+                        data: { generic: fullyQualifiedName },
+                        node,
+                    });
+                }
+                return;
+            }
+            if (!allowInGenericTypeArguments) {
+                context.report({
+                    messageId: allowAsThisParameter
+                        ? 'invalidVoidNotReturnOrThisParam'
+                        : 'invalidVoidNotReturn',
+                    node,
+                });
+            }
+        }
+        /**
+         * @brief checks that a union containing void is valid
+         * @return true if every member of the union is specified as a valid type in
+         * validUnionMembers, or is a valid generic type parametrized by void
+         */
+        function isValidUnionType(node) {
+            return node.types.every(member => {
+                var _a, _b;
+                return validUnionMembers.includes(member.type) ||
+                    // allows any T<..., void, ...> here, checked by checkGenericTypeArgument
+                    (member.type === experimental_utils_1.AST_NODE_TYPES.TSTypeReference &&
+                        ((_a = member.typeParameters) === null || _a === void 0 ? void 0 : _a.type) ===
+                            experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation && ((_b = member.typeParameters) === null || _b === void 0 ? void 0 : _b.params.map(param => param.type).includes(experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword)));
+            });
+        }
+        return {
+            TSVoidKeyword(node) {
+                var _a;
+                /* istanbul ignore next */
+                if (!((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent)) {
+                    return;
+                }
+                // checks T<..., void, ...> against specification of allowInGenericArguments option
+                if (node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation &&
+                    node.parent.parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeReference) {
+                    checkGenericTypeArgument(node);
+                    return;
+                }
+                // union w/ void must contain types from validUnionMembers, or a valid generic void type
+                if (node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSUnionType &&
+                    isValidUnionType(node.parent)) {
+                    return;
+                }
+                // this parameter is ok to be void.
+                if (allowAsThisParameter &&
+                    node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation &&
+                    node.parent.parent.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
+                    node.parent.parent.name === 'this') {
+                    return;
+                }
+                // default cases
+                if (validParents.includes(node.parent.type) &&
+                    !invalidGrandParents.includes(node.parent.parent.type)) {
+                    return;
+                }
+                context.report({
+                    messageId: allowInGenericTypeArguments && allowAsThisParameter
+                        ? 'invalidVoidNotReturnOrThisParamOrGeneric'
+                        : allowInGenericTypeArguments
+                            ? 'invalidVoidNotReturnOrGeneric'
+                            : allowAsThisParameter
+                                ? 'invalidVoidNotReturnOrThisParam'
+                                : 'invalidVoidNotReturn',
+                    node,
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-invalid-void-type.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map
new file mode 100644
index 0000000..bd9e5ae
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-invalid-void-type.js","sourceRoot":"","sources":["../../src/rules/no-invalid-void-type.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js
new file mode 100644
index 0000000..50e42bb
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js
@@ -0,0 +1,196 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const no_loop_func_1 = __importDefault(require("eslint/lib/rules/no-loop-func"));
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-loop-func',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Disallow function declarations that contain unsafe references inside loop statements',
+            category: 'Best Practices',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: [],
+        messages: (_a = no_loop_func_1.default === null || no_loop_func_1.default === void 0 ? void 0 : no_loop_func_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            unsafeRefs: 'Function declared in a loop contains unsafe references to variable(s) {{ varNames }}.',
+        },
+    },
+    defaultOptions: [],
+    create(context) {
+        /**
+         * Reports functions which match the following condition:
+         * - has a loop node in ancestors.
+         * - has any references which refers to an unsafe variable.
+         *
+         * @param node The AST node to check.
+         * @returns Whether or not the node is within a loop.
+         */
+        function checkForLoops(node) {
+            const loopNode = getContainingLoopNode(node);
+            if (!loopNode) {
+                return;
+            }
+            const references = context.getScope().through;
+            const unsafeRefs = references
+                .filter(r => !isSafe(loopNode, r))
+                .map(r => r.identifier.name);
+            if (unsafeRefs.length > 0) {
+                context.report({
+                    node,
+                    messageId: 'unsafeRefs',
+                    data: { varNames: `'${unsafeRefs.join("', '")}'` },
+                });
+            }
+        }
+        return {
+            ArrowFunctionExpression: checkForLoops,
+            FunctionExpression: checkForLoops,
+            FunctionDeclaration: checkForLoops,
+        };
+    },
+});
+/**
+ * Gets the containing loop node of a specified node.
+ *
+ * We don't need to check nested functions, so this ignores those.
+ * `Scope.through` contains references of nested functions.
+ *
+ * @param node An AST node to get.
+ * @returns The containing loop node of the specified node, or `null`.
+ */
+function getContainingLoopNode(node) {
+    for (let currentNode = node; currentNode.parent; currentNode = currentNode.parent) {
+        const parent = currentNode.parent;
+        switch (parent.type) {
+            case experimental_utils_1.AST_NODE_TYPES.WhileStatement:
+            case experimental_utils_1.AST_NODE_TYPES.DoWhileStatement:
+                return parent;
+            case experimental_utils_1.AST_NODE_TYPES.ForStatement:
+                // `init` is outside of the loop.
+                if (parent.init !== currentNode) {
+                    return parent;
+                }
+                break;
+            case experimental_utils_1.AST_NODE_TYPES.ForInStatement:
+            case experimental_utils_1.AST_NODE_TYPES.ForOfStatement:
+                // `right` is outside of the loop.
+                if (parent.right !== currentNode) {
+                    return parent;
+                }
+                break;
+            case experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
+            case experimental_utils_1.AST_NODE_TYPES.FunctionExpression:
+            case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration:
+                // We don't need to check nested functions.
+                return null;
+            default:
+                break;
+        }
+    }
+    return null;
+}
+/**
+ * Gets the containing loop node of a given node.
+ * If the loop was nested, this returns the most outer loop.
+ * @param node A node to get. This is a loop node.
+ * @param excludedNode A node that the result node should not include.
+ * @returns The most outer loop node.
+ */
+function getTopLoopNode(node, excludedNode) {
+    const border = excludedNode ? excludedNode.range[1] : 0;
+    let retv = node;
+    let containingLoopNode = node;
+    while (containingLoopNode && containingLoopNode.range[0] >= border) {
+        retv = containingLoopNode;
+        containingLoopNode = getContainingLoopNode(containingLoopNode);
+    }
+    return retv;
+}
+/**
+ * Checks whether a given reference which refers to an upper scope's variable is
+ * safe or not.
+ * @param loopNode A containing loop node.
+ * @param reference A reference to check.
+ * @returns `true` if the reference is safe or not.
+ */
+function isSafe(loopNode, reference) {
+    var _a;
+    const variable = reference.resolved;
+    const definition = variable === null || variable === void 0 ? void 0 : variable.defs[0];
+    const declaration = definition === null || definition === void 0 ? void 0 : definition.parent;
+    const kind = (declaration === null || declaration === void 0 ? void 0 : declaration.type) === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration
+        ? declaration.kind
+        : '';
+    // type references are all safe
+    // this only really matters for global types that haven't been configured
+    if (reference.isTypeReference) {
+        return true;
+    }
+    // Variables which are declared by `const` is safe.
+    if (kind === 'const') {
+        return true;
+    }
+    /*
+     * Variables which are declared by `let` in the loop is safe.
+     * It's a different instance from the next loop step's.
+     */
+    if (kind === 'let' &&
+        declaration &&
+        declaration.range[0] > loopNode.range[0] &&
+        declaration.range[1] < loopNode.range[1]) {
+        return true;
+    }
+    /*
+     * WriteReferences which exist after this border are unsafe because those
+     * can modify the variable.
+     */
+    const border = getTopLoopNode(loopNode, kind === 'let' ? declaration : null)
+        .range[0];
+    /**
+     * Checks whether a given reference is safe or not.
+     * The reference is every reference of the upper scope's variable we are
+     * looking now.
+     *
+     * It's safe if the reference matches one of the following condition.
+     * - is readonly.
+     * - doesn't exist inside a local function and after the border.
+     *
+     * @param upperRef A reference to check.
+     * @returns `true` if the reference is safe.
+     */
+    function isSafeReference(upperRef) {
+        var _a;
+        const id = upperRef.identifier;
+        return (!upperRef.isWrite() ||
+            (((_a = variable === null || variable === void 0 ? void 0 : variable.scope) === null || _a === void 0 ? void 0 : _a.variableScope) === upperRef.from.variableScope &&
+                id.range[0] < border));
+    }
+    return (_a = variable === null || variable === void 0 ? void 0 : variable.references.every(isSafeReference)) !== null && _a !== void 0 ? _a : false;
+}
+//# sourceMappingURL=no-loop-func.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map
new file mode 100644
index 0000000..45c6496
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-loop-func.js","sourceRoot":"","sources":["../../src/rules/no-loop-func.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js
new file mode 100644
index 0000000..154caa1
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js
@@ -0,0 +1,63 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+const baseRule = (() => {
+    try {
+        return require('eslint/lib/rules/no-loss-of-precision');
+    }
+    catch (_a) {
+        /* istanbul ignore next */
+        return null;
+    }
+})();
+exports.default = util.createRule({
+    name: 'no-loss-of-precision',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallow literal numbers that lose precision',
+            category: 'Possible Errors',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: [],
+        messages: (_a = baseRule === null || baseRule === void 0 ? void 0 : baseRule.meta.messages) !== null && _a !== void 0 ? _a : { noLossOfPrecision: '' },
+    },
+    defaultOptions: [],
+    create(context) {
+        /* istanbul ignore if */ if (baseRule === null) {
+            throw new Error('@typescript-eslint/no-loss-of-precision requires at least ESLint v7.1.0');
+        }
+        // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
+        const rules = baseRule.create(context);
+        function isSeperatedNumeric(node) {
+            return typeof node.value === 'number' && node.raw.includes('_');
+        }
+        return {
+            Literal(node) {
+                rules.Literal(Object.assign(Object.assign({}, node), { raw: isSeperatedNumeric(node) ? node.raw.replace(/_/g, '') : node.raw }));
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-loss-of-precision.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map
new file mode 100644
index 0000000..ad268ed
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-loss-of-precision.js","sourceRoot":"","sources":["../../src/rules/no-loss-of-precision.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,8CAAgC;AAEhC,MAAM,QAAQ,GAAG,CAAC,GAA2B,EAAE;IAC7C,IAAI;QACF,OAAO,OAAO,CAAC,uCAAuC,CAAC,CAAC;KACzD;IAAC,WAAM;QACN,0BAA0B;QAC1B,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC,EAAE,CAAC;AAKL,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,QAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,QAAQ,mCAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE;KAC/D;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,wBAAwB,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC9C,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;SACH;QAED,4EAA4E;QAC5E,MAAM,KAAK,GAAG,QAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExC,SAAS,kBAAkB,CAAC,IAAsB;YAChD,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,OAAO,CAAC,IAAsB;gBAC5B,KAAK,CAAC,OAAO,iCACR,IAAI,KACP,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IACrE,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js
index 9d4c33f..f413422 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js
@@ -1,14 +1,27 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_magic_numbers_1 = __importDefault(require("eslint/lib/rules/no-magic-numbers"));
@@ -36,7 +49,10 @@
                         type: 'boolean',
                     } }) }),
         ],
-        messages: no_magic_numbers_1.default.meta.messages,
+        messages: (_a = no_magic_numbers_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            useConst: "Number constants declarations must use 'const'.",
+            noMagic: 'No magic number: {{raw}}.',
+        },
     },
     defaultOptions: [
         {
@@ -133,9 +149,8 @@
  * @private
  */
 function isParentTSEnumDeclaration(node) {
-    var _a;
     const parent = getLiteralParent(node);
-    return ((_a = parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSEnumMember;
+    return (parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.TSEnumMember;
 }
 /**
  * Checks if the node parent is a Typescript literal type
@@ -181,9 +196,8 @@
  * @private
  */
 function isParentTSReadonlyClassProperty(node) {
-    var _a;
     const parent = getLiteralParent(node);
-    if (((_a = parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ClassProperty && parent.readonly) {
+    if ((parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.ClassProperty && parent.readonly) {
         return true;
     }
     return false;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map
index 76a327a..98542b9 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-magic-numbers.js","sourceRoot":"","sources":["../../src/rules/no-magic-numbers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-magic-numbers.js","sourceRoot":"","sources":["../../src/rules/no-magic-numbers.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js
index 2c3b8e9..3a310de 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js.map
index f04b8f5..36e0d34 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-misused-new.js","sourceRoot":"","sources":["../../src/rules/no-misused-new.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,qBAAqB,EAAE,iDAAiD;YACxE,iBAAiB,EAAE,uCAAuC;SAC3D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ;;;WAGG;QACH,SAAS,oBAAoB,CAC3B,IAIa;YAEb,IAAI,IAAI,EAAE;gBACR,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,mCAAc,CAAC,gBAAgB;wBAClC,OAAO,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACnD,KAAK,mCAAc,CAAC,eAAe;wBACjC,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7C,KAAK,mCAAc,CAAC,UAAU;wBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC;oBACnB;wBACE,MAAM;iBACT;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED;;;WAGG;QACH,SAAS,oBAAoB,CAC3B,MAAiC,EACjC,UAAiD;YAEjD,IACE,MAAM;gBACN,IAAI,IAAI,MAAM;gBACd,MAAM,CAAC,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAC5C;gBACA,OAAO,oBAAoB,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;aAC5D;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL,mDAAmD,CACjD,IAA8C;gBAE9C,IACE,oBAAoB,CAClB,IAAI,CAAC,MAAO,CAAC,MAAyC,EACtD,IAAI,CAAC,UAAU,CAChB,EACD;oBACA,cAAc;oBACd,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,uBAAuB;qBACnC,CAAC,CAAC;iBACJ;YACH,CAAC;YACD,2CAA2C,CACzC,IAAgC;gBAEhC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,uBAAuB;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,8CAA8C,CAC5C,IAA+B;gBAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,EAAE;oBACpE,IACE,IAAI,CAAC,MAAM;wBACX,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAC/D;wBACA,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI;4BACJ,SAAS,EAAE,mBAAmB;yBAC/B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-misused-new.js","sourceRoot":"","sources":["../../src/rules/no-misused-new.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,qBAAqB,EAAE,iDAAiD;YACxE,iBAAiB,EAAE,uCAAuC;SAC3D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ;;;WAGG;QACH,SAAS,oBAAoB,CAC3B,IAIa;YAEb,IAAI,IAAI,EAAE;gBACR,QAAQ,IAAI,CAAC,IAAI,EAAE;oBACjB,KAAK,mCAAc,CAAC,gBAAgB;wBAClC,OAAO,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACnD,KAAK,mCAAc,CAAC,eAAe;wBACjC,OAAO,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7C,KAAK,mCAAc,CAAC,UAAU;wBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC;oBACnB;wBACE,MAAM;iBACT;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED;;;WAGG;QACH,SAAS,oBAAoB,CAC3B,MAAiC,EACjC,UAAiD;YAEjD,IACE,MAAM;gBACN,IAAI,IAAI,MAAM;gBACd,MAAM,CAAC,EAAE;gBACT,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAC5C;gBACA,OAAO,oBAAoB,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;aAC5D;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL,mDAAmD,CACjD,IAA8C;gBAE9C,IACE,oBAAoB,CAClB,IAAI,CAAC,MAAO,CAAC,MAAyC,EACtD,IAAI,CAAC,UAAU,CAChB,EACD;oBACA,cAAc;oBACd,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,uBAAuB;qBACnC,CAAC,CAAC;iBACJ;YACH,CAAC;YACD,2CAA2C,CACzC,IAAgC;gBAEhC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,uBAAuB;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,8CAA8C,CAC5C,IAA+B;gBAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,EAAE;oBACpE,IACE,IAAI,CAAC,MAAM;wBACX,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAC/D;wBACA,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI;4BACJ,SAAS,EAAE,mBAAmB;yBAC/B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js
index acaaca1..5c5b72f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -66,7 +78,6 @@
         };
         const voidReturnChecks = {
             CallExpression: checkArguments,
-            OptionalCallExpression: checkArguments,
             NewExpression: checkArguments,
         };
         function checkTestConditional(node) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map
index 097ee07..ae24636 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-misused-promises.js","sourceRoot":"","sources":["../../src/rules/no-misused-promises.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-misused-promises.js","sourceRoot":"","sources":["../../src/rules/no-misused-promises.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js
index ad0ec8e..cfd3d37 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -44,12 +56,18 @@
     ],
     create(context, [{ allowDeclarations, allowDefinitionFiles }]) {
         const filename = context.getFilename();
+        function isDeclaration(node) {
+            var _a;
+            return (node.declare === true ||
+                (((_a = node.parent.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration &&
+                    isDeclaration(node.parent.parent)));
+        }
         return {
             "TSModuleDeclaration[global!=true][id.type='Identifier']"(node) {
                 if ((node.parent &&
                     node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration) ||
                     (allowDefinitionFiles && util.isDefinitionFile(filename)) ||
-                    (allowDeclarations && node.declare === true)) {
+                    (allowDeclarations && isDeclaration(node))) {
                     return;
                 }
                 context.report({
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map
index d1b04f6..db4bd76 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-namespace.js","sourceRoot":"","sources":["../../src/rules/no-namespace.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,uBAAuB,EACrB,kFAAkF;SACrF;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;qBAChB;oBACD,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO;YACL,yDAAyD,CACvD,IAAkC;gBAElC,IACE,CAAC,IAAI,CAAC,MAAM;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;oBAC1D,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACzD,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,EAC5C;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,yBAAyB;iBACrC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-namespace.js","sourceRoot":"","sources":["../../src/rules/no-namespace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,uBAAuB,EACrB,kFAAkF;SACrF;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;qBAChB;oBACD,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEvC,SAAS,aAAa,CAAC,IAAkC;;YACvD,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,IAAI;gBACrB,CAAC,OAAA,IAAI,CAAC,MAAO,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB;oBAC/D,aAAa,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,yDAAyD,CACvD,IAAkC;gBAElC,IACE,CAAC,IAAI,CAAC,MAAM;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;oBAC1D,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACzD,CAAC,iBAAiB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAC1C;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,yBAAyB;iBACrC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js
index 2fbea0f..e86f3ce 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js
@@ -1,13 +1,31 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const ts = __importStar(require("typescript"));
+const semver = __importStar(require("semver"));
 const util = __importStar(require("../util"));
+const is3dot9 = semver.satisfies(ts.version, `>= 3.9.0 || >= 3.9.1-rc || >= 3.9.0-beta`, {
+    includePrerelease: true,
+});
 exports.default = util.createRule({
     name: 'no-non-null-asserted-optional-chain',
     meta: {
@@ -15,7 +33,8 @@
         docs: {
             description: 'Disallows using a non-null assertion after an optional chain expression',
             category: 'Possible Errors',
-            recommended: false,
+            recommended: 'error',
+            suggestion: true,
         },
         messages: {
             noNonNullOptionalChain: 'Optional chain expressions can return undefined by design - using a non-null assertion is unsafe and wrong.',
@@ -25,8 +44,19 @@
     },
     defaultOptions: [],
     create(context) {
-        return {
-            'TSNonNullExpression > :matches(OptionalMemberExpression, OptionalCallExpression)'(node) {
+        // TS3.9 made a breaking change to how non-null works with optional chains.
+        // Pre-3.9,  `x?.y!.z` means `(x?.y).z` - i.e. it essentially scrubbed the optionality from the chain
+        // Post-3.9, `x?.y!.z` means `x?.y!.z`  - i.e. it just asserts that the property `y` is non-null, not the result of `x?.y`.
+        // This means that for > 3.9, x?.y!.z is valid!
+        //
+        // NOTE: these cases are still invalid for 3.9:
+        // - x?.y.z!
+        // - (x?.y)!.z
+        const baseSelectors = {
+            // non-nulling a wrapped chain will scrub all nulls introduced by the chain
+            // (x?.y)!
+            // (x?.())!
+            'TSNonNullExpression > ChainExpression'(node) {
                 // selector guarantees this assertion
                 const parent = node.parent;
                 context.report({
@@ -46,7 +76,71 @@
                     ],
                 });
             },
+            // non-nulling at the end of a chain will scrub all nulls introduced by the chain
+            // x?.y!
+            // x?.()!
+            'ChainExpression > TSNonNullExpression'(node) {
+                context.report({
+                    node,
+                    messageId: 'noNonNullOptionalChain',
+                    // use a suggestion instead of a fixer, because this can obviously break type checks
+                    suggest: [
+                        {
+                            messageId: 'suggestRemovingNonNull',
+                            fix(fixer) {
+                                return fixer.removeRange([node.range[1] - 1, node.range[1]]);
+                            },
+                        },
+                    ],
+                });
+            },
         };
+        if (is3dot9) {
+            return baseSelectors;
+        }
+        return Object.assign(Object.assign({}, baseSelectors), { [[
+                // > :not(ChainExpression) because that case is handled by a previous selector
+                'MemberExpression > TSNonNullExpression.object > :not(ChainExpression)',
+                'CallExpression > TSNonNullExpression.callee > :not(ChainExpression)',
+            ].join(', ')](child) {
+                // selector guarantees this assertion
+                const node = child.parent;
+                let current = child;
+                while (current) {
+                    switch (current.type) {
+                        case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
+                            if (current.optional) {
+                                // found an optional chain! stop traversing
+                                break;
+                            }
+                            current = current.object;
+                            continue;
+                        case experimental_utils_1.AST_NODE_TYPES.CallExpression:
+                            if (current.optional) {
+                                // found an optional chain! stop traversing
+                                break;
+                            }
+                            current = current.callee;
+                            continue;
+                        default:
+                            // something that's not a ChainElement, which means this is not an optional chain we want to check
+                            return;
+                    }
+                }
+                context.report({
+                    node,
+                    messageId: 'noNonNullOptionalChain',
+                    // use a suggestion instead of a fixer, because this can obviously break type checks
+                    suggest: [
+                        {
+                            messageId: 'suggestRemovingNonNull',
+                            fix(fixer) {
+                                return fixer.removeRange([node.range[1] - 1, node.range[1]]);
+                            },
+                        },
+                    ],
+                });
+            } });
     },
 });
 //# sourceMappingURL=no-non-null-asserted-optional-chain.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js.map
index 63375b6..21f4056 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-asserted-optional-chain.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-non-null-asserted-optional-chain.js","sourceRoot":"","sources":["../../src/rules/no-non-null-asserted-optional-chain.ts"],"names":[],"mappings":";;;;;;;;;AACA,8CAAgC;AAIhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,qCAAqC;IAC3C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,yEAAyE;YAC3E,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,sBAAsB,EACpB,6GAA6G;YAC/G,sBAAsB,EAAE,2CAA2C;SACpE;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,kFAAkF,CAChF,IAEqC;gBAErC,qCAAqC;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAsC,CAAC;gBAC3D,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,wBAAwB;oBACnC,oFAAoF;oBACpF,OAAO,EAAE;wBACP;4BACE,SAAS,EAAE,wBAAwB;4BACnC,GAAG,CAAC,KAAK;gCACP,OAAO,KAAK,CAAC,WAAW,CAAC;oCACvB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;oCACnB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iCAChB,CAAC,CAAC;4BACL,CAAC;yBACF;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-non-null-asserted-optional-chain.js","sourceRoot":"","sources":["../../src/rules/no-non-null-asserted-optional-chain.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js
index e9e0333..82ab1fd 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,6 +29,7 @@
             description: 'Disallows non-null assertions using the `!` postfix operator',
             category: 'Stylistic Issues',
             recommended: 'warn',
+            suggestion: true,
         },
         messages: {
             noNonNull: 'Forbidden non-null assertion.',
@@ -29,6 +42,7 @@
         const sourceCode = context.getSourceCode();
         return {
             TSNonNullExpression(node) {
+                var _a, _b;
                 const suggest = [];
                 function convertTokenToOptional(replacement) {
                     return (fixer) => {
@@ -48,60 +62,56 @@
                         return null;
                     };
                 }
-                if (node.parent) {
-                    if ((node.parent.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-                        node.parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) &&
-                        node.parent.object === node) {
-                        if (!node.parent.optional) {
-                            if (node.parent.computed) {
-                                // it is x![y]?.z
-                                suggest.push({
-                                    messageId: 'suggestOptionalChain',
-                                    fix: convertTokenToOptional('?.'),
-                                });
-                            }
-                            else {
-                                // it is x!.y?.z
-                                suggest.push({
-                                    messageId: 'suggestOptionalChain',
-                                    fix: convertTokenToOptional('?'),
-                                });
-                            }
-                        }
-                        else {
-                            if (node.parent.computed) {
-                                // it is x!?.[y].z
-                                suggest.push({
-                                    messageId: 'suggestOptionalChain',
-                                    fix: removeToken(),
-                                });
-                            }
-                            else {
-                                // it is x!?.y.z
-                                suggest.push({
-                                    messageId: 'suggestOptionalChain',
-                                    fix: removeToken(),
-                                });
-                            }
-                        }
-                    }
-                    else if ((node.parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                        node.parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) &&
-                        node.parent.callee === node) {
-                        if (!node.parent.optional) {
-                            // it is x.y?.z!()
+                if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
+                    node.parent.object === node) {
+                    if (!node.parent.optional) {
+                        if (node.parent.computed) {
+                            // it is x![y]?.z
                             suggest.push({
                                 messageId: 'suggestOptionalChain',
                                 fix: convertTokenToOptional('?.'),
                             });
                         }
                         else {
-                            // it is x.y.z!?.()
+                            // it is x!.y?.z
+                            suggest.push({
+                                messageId: 'suggestOptionalChain',
+                                fix: convertTokenToOptional('?'),
+                            });
+                        }
+                    }
+                    else {
+                        if (node.parent.computed) {
+                            // it is x!?.[y].z
                             suggest.push({
                                 messageId: 'suggestOptionalChain',
                                 fix: removeToken(),
                             });
                         }
+                        else {
+                            // it is x!?.y.z
+                            suggest.push({
+                                messageId: 'suggestOptionalChain',
+                                fix: removeToken(),
+                            });
+                        }
+                    }
+                }
+                else if (((_b = node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.CallExpression &&
+                    node.parent.callee === node) {
+                    if (!node.parent.optional) {
+                        // it is x.y?.z!()
+                        suggest.push({
+                            messageId: 'suggestOptionalChain',
+                            fix: convertTokenToOptional('?.'),
+                        });
+                    }
+                    else {
+                        // it is x.y.z!?.()
+                        suggest.push({
+                            messageId: 'suggestOptionalChain',
+                            fix: removeToken(),
+                        });
                     }
                 }
                 context.report({
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map
index 4a3b4d2..4f1d31d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAIhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,MAAM;SACpB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,+BAA+B;YAC1C,oBAAoB,EAClB,mKAAmK;SACtK;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,MAAM,OAAO,GAA+C,EAAE,CAAC;gBAC/D,SAAS,sBAAsB,CAC7B,WAAuB;oBAEvB,OAAO,CAAC,KAAyB,EAA2B,EAAE;wBAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CACvC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,4BAA4B,CAClC,CAAC;wBACF,IAAI,QAAQ,EAAE;4BACZ,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;yBACjD;wBAED,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC;gBACJ,CAAC;gBACD,SAAS,WAAW;oBAClB,OAAO,CAAC,KAAyB,EAA2B,EAAE;wBAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CACvC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,4BAA4B,CAClC,CAAC;wBACF,IAAI,QAAQ,EAAE;4BACZ,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;yBAC/B;wBAED,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IACE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;wBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,wBAAwB,CAAC;wBAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;wBACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BACzB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACxB,iBAAiB;gCACjB,OAAO,CAAC,IAAI,CAAC;oCACX,SAAS,EAAE,sBAAsB;oCACjC,GAAG,EAAE,sBAAsB,CAAC,IAAI,CAAC;iCAClC,CAAC,CAAC;6BACJ;iCAAM;gCACL,gBAAgB;gCAChB,OAAO,CAAC,IAAI,CAAC;oCACX,SAAS,EAAE,sBAAsB;oCACjC,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;iCACjC,CAAC,CAAC;6BACJ;yBACF;6BAAM;4BACL,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gCACxB,kBAAkB;gCAClB,OAAO,CAAC,IAAI,CAAC;oCACX,SAAS,EAAE,sBAAsB;oCACjC,GAAG,EAAE,WAAW,EAAE;iCACnB,CAAC,CAAC;6BACJ;iCAAM;gCACL,gBAAgB;gCAChB,OAAO,CAAC,IAAI,CAAC;oCACX,SAAS,EAAE,sBAAsB;oCACjC,GAAG,EAAE,WAAW,EAAE;iCACnB,CAAC,CAAC;6BACJ;yBACF;qBACF;yBAAM,IACL,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,CAAC;wBAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;wBACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;4BACzB,kBAAkB;4BAClB,OAAO,CAAC,IAAI,CAAC;gCACX,SAAS,EAAE,sBAAsB;gCACjC,GAAG,EAAE,sBAAsB,CAAC,IAAI,CAAC;6BAClC,CAAC,CAAC;yBACJ;6BAAM;4BACL,mBAAmB;4BACnB,OAAO,CAAC,IAAI,CAAC;gCACX,SAAS,EAAE,sBAAsB;gCACjC,GAAG,EAAE,WAAW,EAAE;6BACnB,CAAC,CAAC;yBACJ;qBACF;iBACF;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,WAAW;oBACtB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-non-null-assertion.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js
index daef997..7e7a10b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js.map
index 43e9a71..3a15f4c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-parameter-properties.js","sourceRoot":"","sources":["../../src/rules/no-parameter-properties.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAiBhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,gEAAgE;YAClE,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,+DAA+D;SAClE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,UAAU;gCACV,SAAS;gCACT,WAAW;gCACX,QAAQ;gCACR,kBAAkB;gCAClB,oBAAoB;gCACpB,iBAAiB;6BAClB;yBACF;wBACD,QAAQ,EAAE,CAAC;qBACZ;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,MAAM,EAAE,EAAE;SACX;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAkC;YACtD,MAAM,SAAS,GAAe,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5B;YAED,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAa,CAAC;QACzD,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC/B,0DAA0D;oBAC1D,IACE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EACxD;wBACA,OAAO;qBACR;oBAED,MAAM,IAAI,GACR,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBAC/C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;wBACrB,CAAC,CAAC,qDAAqD;4BACpD,IAAI,CAAC,SAAS,CAAC,IAA4B,CAAC,IAAI,CAAC;oBAExD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,aAAa;wBACxB,IAAI,EAAE;4BACJ,SAAS,EAAE,IAAI;yBAChB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-parameter-properties.js","sourceRoot":"","sources":["../../src/rules/no-parameter-properties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAiBhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,gEAAgE;YAClE,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,+DAA+D;SAClE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE;gCACJ,UAAU;gCACV,SAAS;gCACT,WAAW;gCACX,QAAQ;gCACR,kBAAkB;gCAClB,oBAAoB;gCACpB,iBAAiB;6BAClB;yBACF;wBACD,QAAQ,EAAE,CAAC;qBACZ;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,MAAM,EAAE,EAAE;SACX;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAkC;YACtD,MAAM,SAAS,GAAe,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5B;YAED,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAa,CAAC;QACzD,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAC/B,0DAA0D;oBAC1D,IACE,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EACxD;wBACA,OAAO;qBACR;oBAED,MAAM,IAAI,GACR,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBAC/C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;wBACrB,CAAC,CAAC,qDAAqD;4BACpD,IAAI,CAAC,SAAS,CAAC,IAA4B,CAAC,IAAI,CAAC;oBAExD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,aAAa;wBACxB,IAAI,EAAE;4BACJ,SAAS,EAAE,IAAI;yBAChB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js
new file mode 100644
index 0000000..ccea8a9
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js
@@ -0,0 +1,224 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+// https://github.com/lodash/lodash/blob/86a852fe763935bb64c12589df5391fd7d3bb14d/escapeRegExp.js
+const reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+const reHasRegExpChar = RegExp(reRegExpChar.source);
+function escapeRegExp(str) {
+    return str && reHasRegExpChar.test(str)
+        ? str.replace(reRegExpChar, '\\$&')
+        : str || '';
+}
+function getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) {
+    const namePattern = new RegExp(`[\\s,]${escapeRegExp(name)}(?:$|[\\s,:])`, 'gu');
+    // To ignore the first text "global".
+    namePattern.lastIndex = comment.value.indexOf('global') + 6;
+    // Search a given variable name.
+    const match = namePattern.exec(comment.value);
+    // Convert the index to loc.
+    const start = sourceCode.getLocFromIndex(comment.range[0] + '/*'.length + (match ? match.index + 1 : 0));
+    const end = {
+        line: start.line,
+        column: start.column + (match ? name.length : 1),
+    };
+    return { start, end };
+}
+exports.default = util.createRule({
+    name: 'no-redeclare',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Disallow variable redeclaration',
+            category: 'Best Practices',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    builtinGlobals: {
+                        type: 'boolean',
+                    },
+                    ignoreDeclarationMerge: {
+                        type: 'boolean',
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
+        messages: {
+            redeclared: "'{{id}}' is already defined.",
+            redeclaredAsBuiltin: "'{{id}}' is already defined as a built-in global variable.",
+            redeclaredBySyntax: "'{{id}}' is already defined by a variable declaration.",
+        },
+    },
+    defaultOptions: [
+        {
+            builtinGlobals: true,
+            ignoreDeclarationMerge: true,
+        },
+    ],
+    create(context, [options]) {
+        const sourceCode = context.getSourceCode();
+        const CLASS_DECLARATION_MERGE_NODES = new Set([
+            experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration,
+            experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration,
+            experimental_utils_1.AST_NODE_TYPES.ClassDeclaration,
+        ]);
+        const FUNCTION_DECLARATION_MERGE_NODES = new Set([
+            experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration,
+            experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration,
+        ]);
+        function* iterateDeclarations(variable) {
+            if ((options === null || options === void 0 ? void 0 : options.builtinGlobals) &&
+                'eslintImplicitGlobalSetting' in variable &&
+                (variable.eslintImplicitGlobalSetting === 'readonly' ||
+                    variable.eslintImplicitGlobalSetting === 'writable')) {
+                yield { type: 'builtin' };
+            }
+            if ('eslintExplicitGlobalComments' in variable &&
+                variable.eslintExplicitGlobalComments) {
+                for (const comment of variable.eslintExplicitGlobalComments) {
+                    yield {
+                        type: 'comment',
+                        node: comment,
+                        loc: getNameLocationInGlobalDirectiveComment(sourceCode, comment, variable.name),
+                    };
+                }
+            }
+            const identifiers = variable.identifiers
+                .map(id => ({
+                identifier: id,
+                parent: id.parent,
+            }))
+                // ignore function declarations because TS will treat them as an overload
+                .filter(({ parent }) => parent.type !== experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction);
+            if (options.ignoreDeclarationMerge && identifiers.length > 1) {
+                if (
+                // interfaces merging
+                identifiers.every(({ parent }) => parent.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration)) {
+                    return;
+                }
+                if (
+                // namespace/module merging
+                identifiers.every(({ parent }) => parent.type === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration)) {
+                    return;
+                }
+                if (
+                // class + interface/namespace merging
+                identifiers.every(({ parent }) => CLASS_DECLARATION_MERGE_NODES.has(parent.type))) {
+                    const classDecls = identifiers.filter(({ parent }) => parent.type === experimental_utils_1.AST_NODE_TYPES.ClassDeclaration);
+                    if (classDecls.length === 1) {
+                        // safe declaration merging
+                        return;
+                    }
+                    // there's more than one class declaration, which needs to be reported
+                    for (const { identifier } of classDecls) {
+                        yield { type: 'syntax', node: identifier, loc: identifier.loc };
+                    }
+                    return;
+                }
+                if (
+                // class + interface/namespace merging
+                identifiers.every(({ parent }) => FUNCTION_DECLARATION_MERGE_NODES.has(parent.type))) {
+                    const functionDecls = identifiers.filter(({ parent }) => parent.type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration);
+                    if (functionDecls.length === 1) {
+                        // safe declaration merging
+                        return;
+                    }
+                    // there's more than one class declaration, which needs to be reported
+                    for (const { identifier } of functionDecls) {
+                        yield { type: 'syntax', node: identifier, loc: identifier.loc };
+                    }
+                    return;
+                }
+            }
+            for (const { identifier } of identifiers) {
+                yield { type: 'syntax', node: identifier, loc: identifier.loc };
+            }
+        }
+        function findVariablesInScope(scope) {
+            for (const variable of scope.variables) {
+                const [declaration, ...extraDeclarations] = iterateDeclarations(variable);
+                if (extraDeclarations.length === 0) {
+                    continue;
+                }
+                /*
+                 * If the type of a declaration is different from the type of
+                 * the first declaration, it shows the location of the first
+                 * declaration.
+                 */
+                const detailMessageId = declaration.type === 'builtin'
+                    ? 'redeclaredAsBuiltin'
+                    : 'redeclaredBySyntax';
+                const data = { id: variable.name };
+                // Report extra declarations.
+                for (const { type, node, loc } of extraDeclarations) {
+                    const messageId = type === declaration.type ? 'redeclared' : detailMessageId;
+                    if (node) {
+                        context.report({ node, loc, messageId, data });
+                    }
+                    else if (loc) {
+                        context.report({ loc, messageId, data });
+                    }
+                }
+            }
+        }
+        /**
+         * Find variables in the current scope.
+         */
+        function checkForBlock(node) {
+            const scope = context.getScope();
+            /*
+             * In ES5, some node type such as `BlockStatement` doesn't have that scope.
+             * `scope.block` is a different node in such a case.
+             */
+            if (scope.block === node) {
+                findVariablesInScope(scope);
+            }
+        }
+        return {
+            Program() {
+                const scope = context.getScope();
+                findVariablesInScope(scope);
+                // Node.js or ES modules has a special scope.
+                if (scope.type === 'global' &&
+                    scope.childScopes[0] &&
+                    // The special scope's block is the Program node.
+                    scope.block === scope.childScopes[0].block) {
+                    findVariablesInScope(scope.childScopes[0]);
+                }
+            },
+            FunctionDeclaration: checkForBlock,
+            FunctionExpression: checkForBlock,
+            ArrowFunctionExpression: checkForBlock,
+            BlockStatement: checkForBlock,
+            ForStatement: checkForBlock,
+            ForInStatement: checkForBlock,
+            ForOfStatement: checkForBlock,
+            SwitchStatement: checkForBlock,
+        };
+    },
+});
+//# sourceMappingURL=no-redeclare.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map
new file mode 100644
index 0000000..38aac7a
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-redeclare.js","sourceRoot":"","sources":["../../src/rules/no-redeclare.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js
index 1439b2b..3bf5f6b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,7 +37,7 @@
     defaultOptions: [],
     create(context) {
         return {
-            ':matches(CallExpression, OptionalCallExpression) > Identifier[name="require"]'(node) {
+            'CallExpression > Identifier[name="require"]'(node) {
                 context.report({
                     node: node.parent,
                     messageId: 'noRequireImports',
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js.map
index c3f3da7..48ae71e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-require-imports.js","sourceRoot":"","sources":["../../src/rules/no-require-imports.ts"],"names":[],"mappings":";;;;;;;;;AACA,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,gBAAgB,EAAE,0CAA0C;SAC7D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,+EAA+E,CAC7E,IAAyB;gBAEzB,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,MAAO;oBAClB,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,yBAAyB,CAAC,IAAI;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-require-imports.js","sourceRoot":"","sources":["../../src/rules/no-require-imports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,gBAAgB,EAAE,0CAA0C;SAC7D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,6CAA6C,CAC3C,IAAyB;gBAEzB,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,MAAO;oBAClB,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,yBAAyB,CAAC,IAAI;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,kBAAkB;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js
new file mode 100644
index 0000000..e70d5c1
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js
@@ -0,0 +1,278 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-shadow',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Disallow variable declarations from shadowing variables declared in the outer scope',
+            category: 'Variables',
+            recommended: false,
+            extendsBaseRule: true,
+        },
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    builtinGlobals: {
+                        type: 'boolean',
+                    },
+                    hoist: {
+                        enum: ['all', 'functions', 'never'],
+                    },
+                    allow: {
+                        type: 'array',
+                        items: {
+                            type: 'string',
+                        },
+                    },
+                    ignoreTypeValueShadow: {
+                        type: 'boolean',
+                    },
+                    ignoreFunctionTypeParameterNameValueShadow: {
+                        type: 'boolean',
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
+        messages: {
+            noShadow: "'{{name}}' is already declared in the upper scope.",
+        },
+    },
+    defaultOptions: [
+        {
+            allow: [],
+            builtinGlobals: false,
+            hoist: 'functions',
+            ignoreTypeValueShadow: true,
+            ignoreFunctionTypeParameterNameValueShadow: true,
+        },
+    ],
+    create(context, [options]) {
+        /**
+         * Check if variable is a `this` parameter.
+         */
+        function isThisParam(variable) {
+            return variable.defs[0].type === 'Parameter' && variable.name === 'this';
+        }
+        function isTypeValueShadow(variable, shadowed) {
+            if (options.ignoreTypeValueShadow !== true) {
+                return false;
+            }
+            if (!('isValueVariable' in variable)) {
+                // this shouldn't happen...
+                return false;
+            }
+            const isShadowedValue = 'isValueVariable' in shadowed ? shadowed.isValueVariable : true;
+            return variable.isValueVariable !== isShadowedValue;
+        }
+        function isFunctionTypeParameterNameValueShadow(variable, shadowed) {
+            if (options.ignoreFunctionTypeParameterNameValueShadow !== true) {
+                return false;
+            }
+            if (!('isValueVariable' in variable)) {
+                // this shouldn't happen...
+                return false;
+            }
+            const isShadowedValue = 'isValueVariable' in shadowed ? shadowed.isValueVariable : true;
+            if (!isShadowedValue) {
+                return false;
+            }
+            const id = variable.identifiers[0];
+            return util.isFunctionType(id.parent);
+        }
+        /**
+         * Check if variable name is allowed.
+         * @param variable The variable to check.
+         * @returns Whether or not the variable name is allowed.
+         */
+        function isAllowed(variable) {
+            return options.allow.indexOf(variable.name) !== -1;
+        }
+        /**
+         * Checks if a variable of the class name in the class scope of ClassDeclaration.
+         *
+         * ClassDeclaration creates two variables of its name into its outer scope and its class scope.
+         * So we should ignore the variable in the class scope.
+         * @param variable The variable to check.
+         * @returns Whether or not the variable of the class name in the class scope of ClassDeclaration.
+         */
+        function isDuplicatedClassNameVariable(variable) {
+            const block = variable.scope.block;
+            return (block.type === experimental_utils_1.AST_NODE_TYPES.ClassDeclaration &&
+                block.id === variable.identifiers[0]);
+        }
+        /**
+         * Checks if a variable of the class name in the class scope of TSEnumDeclaration.
+         *
+         * TSEnumDeclaration creates two variables of its name into its outer scope and its class scope.
+         * So we should ignore the variable in the class scope.
+         * @param variable The variable to check.
+         * @returns Whether or not the variable of the class name in the class scope of TSEnumDeclaration.
+         */
+        function isDuplicatedEnumNameVariable(variable) {
+            const block = variable.scope.block;
+            return (block.type === experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration &&
+                block.id === variable.identifiers[0]);
+        }
+        /**
+         * Checks if a variable is inside the initializer of scopeVar.
+         *
+         * To avoid reporting at declarations such as `var a = function a() {};`.
+         * But it should report `var a = function(a) {};` or `var a = function() { function a() {} };`.
+         * @param variable The variable to check.
+         * @param scopeVar The scope variable to look for.
+         * @returns Whether or not the variable is inside initializer of scopeVar.
+         */
+        function isOnInitializer(variable, scopeVar) {
+            var _a;
+            const outerScope = scopeVar.scope;
+            const outerDef = scopeVar.defs[0];
+            const outer = (_a = outerDef === null || outerDef === void 0 ? void 0 : outerDef.parent) === null || _a === void 0 ? void 0 : _a.range;
+            const innerScope = variable.scope;
+            const innerDef = variable.defs[0];
+            const inner = innerDef === null || innerDef === void 0 ? void 0 : innerDef.name.range;
+            return !!(outer &&
+                inner &&
+                outer[0] < inner[0] &&
+                inner[1] < outer[1] &&
+                ((innerDef.type === 'FunctionName' &&
+                    innerDef.node.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression) ||
+                    innerDef.node.type === experimental_utils_1.AST_NODE_TYPES.ClassExpression) &&
+                outerScope === innerScope.upper);
+        }
+        /**
+         * Get a range of a variable's identifier node.
+         * @param variable The variable to get.
+         * @returns The range of the variable's identifier node.
+         */
+        function getNameRange(variable) {
+            const def = variable.defs[0];
+            return def === null || def === void 0 ? void 0 : def.name.range;
+        }
+        /**
+         * Checks if a variable is in TDZ of scopeVar.
+         * @param variable The variable to check.
+         * @param scopeVar The variable of TDZ.
+         * @returns Whether or not the variable is in TDZ of scopeVar.
+         */
+        function isInTdz(variable, scopeVar) {
+            const outerDef = scopeVar.defs[0];
+            const inner = getNameRange(variable);
+            const outer = getNameRange(scopeVar);
+            return !!(inner &&
+                outer &&
+                inner[1] < outer[0] &&
+                // Excepts FunctionDeclaration if is {"hoist":"function"}.
+                (options.hoist !== 'functions' ||
+                    !outerDef ||
+                    outerDef.node.type !== experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration));
+        }
+        /**
+         * Finds the variable by a given name in a given scope and its upper scopes.
+         * @param initScope A scope to start find.
+         * @param name A variable name to find.
+         * @returns A found variable or `null`.
+         */
+        function getVariableByName(initScope, name) {
+            let scope = initScope;
+            while (scope) {
+                const variable = scope.set.get(name);
+                if (variable) {
+                    return variable;
+                }
+                scope = scope.upper;
+            }
+            return null;
+        }
+        /**
+         * Checks the current context for shadowed variables.
+         * @param {Scope} scope Fixme
+         */
+        function checkForShadows(scope) {
+            const variables = scope.variables;
+            for (const variable of variables) {
+                // ignore "arguments"
+                if (variable.identifiers.length === 0) {
+                    continue;
+                }
+                // this params are pseudo-params that cannot be shadowed
+                if (isThisParam(variable)) {
+                    continue;
+                }
+                // ignore variables of a class name in the class scope of ClassDeclaration
+                if (isDuplicatedClassNameVariable(variable)) {
+                    continue;
+                }
+                // ignore variables of a class name in the class scope of ClassDeclaration
+                if (isDuplicatedEnumNameVariable(variable)) {
+                    continue;
+                }
+                // ignore configured allowed names
+                if (isAllowed(variable)) {
+                    continue;
+                }
+                // Gets shadowed variable.
+                const shadowed = getVariableByName(scope.upper, variable.name);
+                if (!shadowed) {
+                    continue;
+                }
+                // ignore type value variable shadowing if configured
+                if (isTypeValueShadow(variable, shadowed)) {
+                    continue;
+                }
+                // ignore function type parameter name shadowing if configured
+                if (isFunctionTypeParameterNameValueShadow(variable, shadowed)) {
+                    continue;
+                }
+                const isESLintGlobal = 'writeable' in shadowed;
+                if ((shadowed.identifiers.length > 0 ||
+                    (options.builtinGlobals && isESLintGlobal)) &&
+                    !isOnInitializer(variable, shadowed) &&
+                    !(options.hoist !== 'all' && isInTdz(variable, shadowed))) {
+                    context.report({
+                        node: variable.identifiers[0],
+                        messageId: 'noShadow',
+                        data: {
+                            name: variable.name,
+                        },
+                    });
+                }
+            }
+        }
+        return {
+            'Program:exit'() {
+                const globalScope = context.getScope();
+                const stack = globalScope.childScopes.slice();
+                while (stack.length) {
+                    const scope = stack.pop();
+                    stack.push(...scope.childScopes);
+                    checkForShadows(scope);
+                }
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-shadow.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map
new file mode 100644
index 0000000..188c172
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-shadow.js","sourceRoot":"","sources":["../../src/rules/no-shadow.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js
index ca6e7e3..cd0ae56 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js.map
index fb80481..99bf7d3 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-this-alias.js","sourceRoot":"","sources":["../../src/rules/no-this-alias.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,kDAAkD;YAClE,eAAe,EACb,8DAA8D;SACjE;KACF;IACD,cAAc,EAAE;QACd;YACE,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;QACpD,OAAO;YACL,gDAAgD,CAC9C,IAAiC;gBAEjC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;gBAEpB,IAAI,kBAAkB,IAAI,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;oBAC/D,OAAO;iBACR;gBAED,MAAM,cAAc,GAClB,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBACnC,CAAC,CAAC,YAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC;gBACZ,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,EAAE;wBACR,SAAS,EACP,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;4BACnC,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,iBAAiB;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-this-alias.js","sourceRoot":"","sources":["../../src/rules/no-this-alias.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,kDAAkD;YAClE,eAAe,EACb,8DAA8D;SACjE;KACF;IACD,cAAc,EAAE;QACd;YACE,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;QACpD,OAAO;YACL,gDAAgD,CAC9C,IAAiC;gBAEjC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;gBAEpB,IAAI,kBAAkB,IAAI,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;oBAC/D,OAAO;iBACR;gBAED,MAAM,cAAc,GAClB,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBACnC,CAAC,CAAC,YAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC;gBACZ,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,EAAE;wBACR,SAAS,EACP,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;4BACnC,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,iBAAiB;qBACxB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js
index bb155f8..b11fa4b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -33,12 +45,18 @@
         const checker = program.getTypeChecker();
         function isErrorLike(type) {
             var _a;
+            if (type.isIntersection()) {
+                return type.types.some(isErrorLike);
+            }
+            if (type.isUnion()) {
+                return type.types.every(isErrorLike);
+            }
             const symbol = type.getSymbol();
             if (!symbol) {
                 return false;
             }
             if (symbol.getName() === 'Error') {
-                const declarations = (_a = symbol.getDeclarations(), (_a !== null && _a !== void 0 ? _a : []));
+                const declarations = (_a = symbol.getDeclarations()) !== null && _a !== void 0 ? _a : [];
                 for (const declaration of declarations) {
                     const sourceFile = declaration.getSourceFile();
                     if (program.isSourceFileDefaultLibrary(sourceFile)) {
@@ -46,10 +64,11 @@
                     }
                 }
             }
-            const baseTypes = checker.getBaseTypes(type);
-            for (const baseType of baseTypes) {
-                if (isErrorLike(baseType)) {
-                    return true;
+            if (symbol.flags & (ts.SymbolFlags.Class | ts.SymbolFlags.Interface)) {
+                for (const baseType of checker.getBaseTypes(type)) {
+                    if (isErrorLike(baseType)) {
+                        return true;
+                    }
                 }
             }
             return false;
@@ -59,7 +78,8 @@
                 case experimental_utils_1.AST_NODE_TYPES.Identifier:
                 case experimental_utils_1.AST_NODE_TYPES.CallExpression:
                 case experimental_utils_1.AST_NODE_TYPES.NewExpression:
-                case experimental_utils_1.AST_NODE_TYPES.MemberExpression: {
+                case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
+                case experimental_utils_1.AST_NODE_TYPES.TSAsExpression: {
                     const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
                     return checker.getTypeAtLocation(tsNode);
                 }
@@ -69,11 +89,11 @@
                     return tryGetThrowArgumentType(node.expressions[node.expressions.length - 1]);
                 case experimental_utils_1.AST_NODE_TYPES.LogicalExpression: {
                     const left = tryGetThrowArgumentType(node.left);
-                    return (left !== null && left !== void 0 ? left : tryGetThrowArgumentType(node.right));
+                    return left !== null && left !== void 0 ? left : tryGetThrowArgumentType(node.right);
                 }
                 case experimental_utils_1.AST_NODE_TYPES.ConditionalExpression: {
                     const consequent = tryGetThrowArgumentType(node.consequent);
-                    return (consequent !== null && consequent !== void 0 ? consequent : tryGetThrowArgumentType(node.alternate));
+                    return consequent !== null && consequent !== void 0 ? consequent : tryGetThrowArgumentType(node.alternate);
                 }
                 default:
                     return null;
@@ -90,7 +110,8 @@
                     context.report({ node, messageId: 'undef' });
                     return;
                 }
-                if (type.flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown) ||
+                if (util.isTypeAnyType(type) ||
+                    util.isTypeUnknownType(type) ||
                     isErrorLike(type)) {
                     return;
                 }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map
index 9a52e80..86d94ff 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-throw-literal.js","sourceRoot":"","sources":["../../src/rules/no-throw-literal.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-throw-literal.js","sourceRoot":"","sources":["../../src/rules/no-throw-literal.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js
index b03e5df..62b9398 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -191,7 +203,11 @@
             else if (
             // eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
             type.node.type.endsWith('Keyword') ||
-                aliasTypes.has(type.node.type)) {
+                aliasTypes.has(type.node.type) ||
+                (type.node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeOperator &&
+                    type.node.operator === 'readonly' &&
+                    type.node.typeAnnotation &&
+                    aliasTypes.has(type.node.typeAnnotation.type))) {
                 // alias / keyword
                 checkAndReport(allowAliases, isTopLevel, type, 'Aliases');
             }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map
index 22018ed..ad55508 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-type-alias.js","sourceRoot":"","sources":["../../src/rules/no-type-alias.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-type-alias.js","sourceRoot":"","sources":["../../src/rules/no-type-alias.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js
index 935feb1..7da37ad 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -22,14 +34,35 @@
         },
         fixable: 'code',
         messages: {
-            direct: 'This expression unnecessarily compares a boolean value to a boolean instead of using it directly',
+            direct: 'This expression unnecessarily compares a boolean value to a boolean instead of using it directly.',
             negated: 'This expression unnecessarily compares a boolean value to a boolean instead of negating it.',
+            comparingNullableToTrueDirect: 'This expression unnecessarily compares a nullable boolean value to true instead of using it directly.',
+            comparingNullableToTrueNegated: 'This expression unnecessarily compares a nullable boolean value to true instead of negating it.',
+            comparingNullableToFalse: 'This expression unnecessarily compares a nullable boolean value to false instead of using the ?? operator to provide a default.',
         },
-        schema: [],
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    allowComparingNullableBooleansToTrue: {
+                        type: 'boolean',
+                    },
+                    allowComparingNullableBooleansToFalse: {
+                        type: 'boolean',
+                    },
+                },
+                additionalProperties: false,
+            },
+        ],
         type: 'suggestion',
     },
-    defaultOptions: [],
-    create(context) {
+    defaultOptions: [
+        {
+            allowComparingNullableBooleansToTrue: true,
+            allowComparingNullableBooleansToFalse: true,
+        },
+    ],
+    create(context, [options]) {
         const parserServices = util.getParserServices(context);
         const checker = parserServices.program.getTypeChecker();
         function getBooleanComparison(node) {
@@ -38,10 +71,42 @@
                 return undefined;
             }
             const expressionType = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(comparison.expression));
-            if (!tsutils.isTypeFlagSet(expressionType, ts.TypeFlags.Boolean | ts.TypeFlags.BooleanLiteral)) {
-                return undefined;
+            if (isBooleanType(expressionType)) {
+                return Object.assign(Object.assign({}, comparison), { expressionIsNullableBoolean: false });
             }
-            return comparison;
+            if (isNullableBoolean(expressionType)) {
+                return Object.assign(Object.assign({}, comparison), { expressionIsNullableBoolean: true });
+            }
+            return undefined;
+        }
+        function isBooleanType(expressionType) {
+            return tsutils.isTypeFlagSet(expressionType, ts.TypeFlags.Boolean | ts.TypeFlags.BooleanLiteral);
+        }
+        /**
+         * checks if the expressionType is a union that
+         *   1) contains at least one nullish type (null or undefined)
+         *   2) contains at least once boolean type (true or false or boolean)
+         *   3) does not contain any types besides nullish and boolean types
+         */
+        function isNullableBoolean(expressionType) {
+            if (!expressionType.isUnion()) {
+                return false;
+            }
+            const { types } = expressionType;
+            const nonNullishTypes = types.filter(type => !tsutils.isTypeFlagSet(type, ts.TypeFlags.Undefined | ts.TypeFlags.Null));
+            const hasNonNullishType = nonNullishTypes.length > 0;
+            if (!hasNonNullishType) {
+                return false;
+            }
+            const hasNullableType = nonNullishTypes.length < types.length;
+            if (!hasNullableType) {
+                return false;
+            }
+            const allNonNullishTypesAreBoolean = nonNullishTypes.every(isBooleanType);
+            if (!allNonNullishTypesAreBoolean) {
+                return false;
+            }
+            return true;
         }
         function deconstructComparison(node) {
             const comparisonType = util.getEqualsKind(node.operator);
@@ -56,10 +121,11 @@
                     typeof against.value !== 'boolean') {
                     continue;
                 }
-                const { value } = against;
-                const negated = node.operator.startsWith('!');
+                const { value: literalBooleanInComparison } = against;
+                const negated = !comparisonType.isPositive;
                 return {
-                    forTruthy: value ? !negated : negated,
+                    literalBooleanInComparison,
+                    forTruthy: literalBooleanInComparison ? !negated : negated,
                     expression,
                     negated,
                     range: expression.range[0] < against.range[0]
@@ -69,21 +135,71 @@
             }
             return undefined;
         }
+        function nodeIsUnaryNegation(node) {
+            return (node.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
+                node.prefix &&
+                node.operator === '!');
+        }
         return {
             BinaryExpression(node) {
                 const comparison = getBooleanComparison(node);
-                if (comparison) {
-                    context.report({
-                        fix: function* (fixer) {
-                            yield fixer.removeRange(comparison.range);
+                if (comparison === undefined) {
+                    return;
+                }
+                if (comparison.expressionIsNullableBoolean) {
+                    if (comparison.literalBooleanInComparison &&
+                        options.allowComparingNullableBooleansToTrue) {
+                        return;
+                    }
+                    if (!comparison.literalBooleanInComparison &&
+                        options.allowComparingNullableBooleansToFalse) {
+                        return;
+                    }
+                }
+                context.report({
+                    fix: function* (fixer) {
+                        yield fixer.removeRange(comparison.range);
+                        // if the expression `exp` isn't nullable, or we're comparing to `true`,
+                        // we can just replace the entire comparison with `exp` or `!exp`
+                        if (!comparison.expressionIsNullableBoolean ||
+                            comparison.literalBooleanInComparison) {
                             if (!comparison.forTruthy) {
                                 yield fixer.insertTextBefore(node, '!');
                             }
-                        },
-                        messageId: comparison.negated ? 'negated' : 'direct',
-                        node,
-                    });
-                }
+                            return;
+                        }
+                        // if we're here, then the expression is a nullable boolean and we're
+                        // comparing to a literal `false`
+                        // if we're doing `== false` or `=== false`, then we need to negate the expression
+                        if (!comparison.negated) {
+                            const { parent } = node;
+                            // if the parent is a negation, we can instead just get rid of the parent's negation.
+                            // i.e. instead of resulting in `!(!(exp))`, we can just result in `exp`
+                            if (parent != null && nodeIsUnaryNegation(parent)) {
+                                // remove from the beginning of the parent to the beginning of this node
+                                yield fixer.removeRange([parent.range[0], node.range[0]]);
+                                // remove from the end of the node to the end of the parent
+                                yield fixer.removeRange([node.range[1], parent.range[1]]);
+                            }
+                            else {
+                                yield fixer.insertTextBefore(node, '!');
+                            }
+                        }
+                        // provide the default `true`
+                        yield fixer.insertTextBefore(node, '(');
+                        yield fixer.insertTextAfter(node, ' ?? true)');
+                    },
+                    messageId: comparison.expressionIsNullableBoolean
+                        ? comparison.literalBooleanInComparison
+                            ? comparison.negated
+                                ? 'comparingNullableToTrueNegated'
+                                : 'comparingNullableToTrueDirect'
+                            : 'comparingNullableToFalse'
+                        : comparison.negated
+                            ? 'negated'
+                            : 'direct',
+                    node,
+                });
             },
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js.map
index 6c7c170..be36dbf 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-boolean-literal-compare.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unnecessary-boolean-literal-compare.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-boolean-literal-compare.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,iDAAmC;AACnC,+CAAiC;AACjC,8CAAgC;AAWhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,wCAAwC;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EACT,iEAAiE;YACnE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,MAAM,EACJ,kGAAkG;YACpG,OAAO,EACL,6FAA6F;SAChG;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD,SAAS,oBAAoB,CAC3B,IAA+B;YAE/B,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAC9C,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAChE,CAAC;YAEF,IACE,CAAC,OAAO,CAAC,aAAa,CACpB,cAAc,EACd,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CACnD,EACD;gBACA,OAAO,SAAS,CAAC;aAClB;YAED,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,SAAS,qBAAqB,CAC5B,IAA+B;YAE/B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE;gBACnB,OAAO,SAAS,CAAC;aAClB;YAED,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI;gBAClC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;gBACvB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;aACxB,EAAE;gBACD,IACE,OAAO,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;oBACvC,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,EAClC;oBACA,SAAS;iBACV;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAE9C,OAAO;oBACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;oBACrC,UAAU;oBACV,OAAO;oBACP,KAAK,EACH,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACzC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC9C,CAAC;aACH;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAE9C,IAAI,UAAU,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC;wBACb,GAAG,EAAE,QAAQ,CAAC,EAAC,KAAK;4BAClB,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;4BAE1C,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gCACzB,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;6BACzC;wBACH,CAAC;wBACD,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;wBACpD,IAAI;qBACL,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-unnecessary-boolean-literal-compare.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-boolean-literal-compare.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js
index eeacb86..32b7139 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -18,11 +30,11 @@
     // PossiblyFalsy flag includes literal values, so exclude ones that
     // are definitely truthy
     .filter(t => !isTruthyLiteral(t))
-    .some(type => tsutils_1.isTypeFlagSet(type, ts.TypeFlags.PossiblyFalsy));
+    .some(type => util_1.isTypeFlagSet(type, ts.TypeFlags.PossiblyFalsy));
 const isPossiblyTruthy = (type) => tsutils_1.unionTypeParts(type).some(type => !tsutils_1.isFalsyType(type));
 // Nullish utilities
 const nullishFlag = ts.TypeFlags.Undefined | ts.TypeFlags.Null;
-const isNullishType = (type) => tsutils_1.isTypeFlagSet(type, nullishFlag);
+const isNullishType = (type) => util_1.isTypeFlagSet(type, nullishFlag);
 const isPossiblyNullish = (type) => tsutils_1.unionTypeParts(type).some(isNullishType);
 const isAlwaysNullish = (type) => tsutils_1.unionTypeParts(type).every(isNullishType);
 // isLiteralType only covers numbers and strings, this is a more exhaustive check.
@@ -49,10 +61,7 @@
                     allowConstantLoopConditions: {
                         type: 'boolean',
                     },
-                    ignoreRhs: {
-                        type: 'boolean',
-                    },
-                    checkArrayPredicates: {
+                    allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: {
                         type: 'boolean',
                     },
                 },
@@ -63,71 +72,133 @@
         messages: {
             alwaysTruthy: 'Unnecessary conditional, value is always truthy.',
             alwaysFalsy: 'Unnecessary conditional, value is always falsy.',
-            alwaysTruthyFunc: 'This callback should return a conditional, but return is always truthy',
-            alwaysFalsyFunc: 'This callback should return a conditional, but return is always falsy',
+            alwaysTruthyFunc: 'This callback should return a conditional, but return is always truthy.',
+            alwaysFalsyFunc: 'This callback should return a conditional, but return is always falsy.',
             neverNullish: 'Unnecessary conditional, expected left-hand side of `??` operator to be possibly null or undefined.',
-            alwaysNullish: 'Unnecessary conditional, left-hand side of `??` operator is always `null` or `undefined`',
+            alwaysNullish: 'Unnecessary conditional, left-hand side of `??` operator is always `null` or `undefined`.',
             literalBooleanExpression: 'Unnecessary conditional, both sides of the expression are literal values',
+            noOverlapBooleanExpression: 'Unnecessary conditional, the types have no overlap',
             never: 'Unnecessary conditional, value is `never`',
             neverOptionalChain: 'Unnecessary optional chain on a non-nullish value',
+            noStrictNullCheck: 'This rule requires the `strictNullChecks` compiler option to be turned on to function correctly.',
         },
     },
     defaultOptions: [
         {
             allowConstantLoopConditions: false,
-            ignoreRhs: false,
-            checkArrayPredicates: false,
+            allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
         },
     ],
-    create(context, [{ allowConstantLoopConditions, checkArrayPredicates, ignoreRhs }]) {
+    create(context, [{ allowConstantLoopConditions, allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing, },]) {
         const service = util_1.getParserServices(context);
         const checker = service.program.getTypeChecker();
         const sourceCode = context.getSourceCode();
+        const compilerOptions = service.program.getCompilerOptions();
+        const isStrictNullChecks = tsutils_1.isStrictCompilerOptionEnabled(compilerOptions, 'strictNullChecks');
+        if (!isStrictNullChecks &&
+            allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing !== true) {
+            context.report({
+                loc: {
+                    start: { line: 0, column: 0 },
+                    end: { line: 0, column: 0 },
+                },
+                messageId: 'noStrictNullCheck',
+            });
+        }
         function getNodeType(node) {
             const tsNode = service.esTreeNodeToTSNodeMap.get(node);
             return util_1.getConstrainedTypeAtLocation(checker, tsNode);
         }
         function nodeIsArrayType(node) {
             const nodeType = getNodeType(node);
-            return checker.isArrayType(nodeType) || checker.isTupleType(nodeType);
+            return checker.isArrayType(nodeType);
+        }
+        function nodeIsTupleType(node) {
+            const nodeType = getNodeType(node);
+            return checker.isTupleType(nodeType);
+        }
+        function isArrayIndexExpression(node) {
+            return (
+            // Is an index signature
+            node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
+                node.computed &&
+                // ...into an array type
+                (nodeIsArrayType(node.object) ||
+                    // ... or a tuple type
+                    (nodeIsTupleType(node.object) &&
+                        // Exception: literal index into a tuple - will have a sound type
+                        node.property.type !== experimental_utils_1.AST_NODE_TYPES.Literal)));
         }
         /**
          * Checks if a conditional node is necessary:
          * if the type of the node is always true or always false, it's not necessary.
          */
-        function checkNode(node) {
+        function checkNode(node, isUnaryNotArgument = false) {
+            // Check if the node is Unary Negation expression and handle it
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
+                node.operator === '!') {
+                return checkNode(node.argument, true);
+            }
+            // Since typescript array index signature types don't represent the
+            //  possibility of out-of-bounds access, if we're indexing into an array
+            //  just skip the check, to avoid false positives
+            if (isArrayIndexExpression(node)) {
+                return;
+            }
+            // When checking logical expressions, only check the right side
+            //  as the left side has been checked by checkLogicalExpressionForUnnecessaryConditionals
+            //
+            // Unless the node is nullish coalescing, as it's common to use patterns like `nullBool ?? true` to to strict
+            //  boolean checks if we inspect the right here, it'll usually be a constant condition on purpose.
+            // In this case it's better to inspect the type of the expression as a whole.
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression &&
+                node.operator !== '??') {
+                return checkNode(node.right);
+            }
             const type = getNodeType(node);
             // Conditional is always necessary if it involves:
             //    `any` or `unknown` or a naked type parameter
-            if (tsutils_1.unionTypeParts(type).some(part => tsutils_1.isTypeFlagSet(part, ts.TypeFlags.Any |
-                ts.TypeFlags.Unknown |
-                ts.TypeFlags.TypeParameter))) {
+            if (tsutils_1.unionTypeParts(type).some(part => util_1.isTypeAnyType(part) ||
+                util_1.isTypeUnknownType(part) ||
+                util_1.isTypeFlagSet(part, ts.TypeFlags.TypeParameter))) {
                 return;
             }
-            const messageId = tsutils_1.isTypeFlagSet(type, ts.TypeFlags.Never)
-                ? 'never'
-                : !isPossiblyTruthy(type)
-                    ? 'alwaysFalsy'
-                    : !isPossiblyFalsy(type)
-                        ? 'alwaysTruthy'
-                        : undefined;
+            let messageId = null;
+            if (util_1.isTypeFlagSet(type, ts.TypeFlags.Never)) {
+                messageId = 'never';
+            }
+            else if (!isPossiblyTruthy(type)) {
+                messageId = !isUnaryNotArgument ? 'alwaysFalsy' : 'alwaysTruthy';
+            }
+            else if (!isPossiblyFalsy(type)) {
+                messageId = !isUnaryNotArgument ? 'alwaysTruthy' : 'alwaysFalsy';
+            }
             if (messageId) {
                 context.report({ node, messageId });
             }
         }
         function checkNodeForNullish(node) {
-            const type = getNodeType(node);
-            // Conditional is always necessary if it involves `any` or `unknown`
-            if (tsutils_1.isTypeFlagSet(type, ts.TypeFlags.Any | ts.TypeFlags.Unknown)) {
+            // Since typescript array index signature types don't represent the
+            //  possibility of out-of-bounds access, if we're indexing into an array
+            //  just skip the check, to avoid false positives
+            if (isArrayIndexExpression(node)) {
                 return;
             }
-            const messageId = tsutils_1.isTypeFlagSet(type, ts.TypeFlags.Never)
-                ? 'never'
-                : !isPossiblyNullish(type)
-                    ? 'neverNullish'
-                    : isAlwaysNullish(type)
-                        ? 'alwaysNullish'
-                        : undefined;
+            const type = getNodeType(node);
+            // Conditional is always necessary if it involves `any` or `unknown`
+            if (util_1.isTypeAnyType(type) || util_1.isTypeUnknownType(type)) {
+                return;
+            }
+            let messageId = null;
+            if (util_1.isTypeFlagSet(type, ts.TypeFlags.Never)) {
+                messageId = 'never';
+            }
+            else if (!isPossiblyNullish(type)) {
+                messageId = 'neverNullish';
+            }
+            else if (isAlwaysNullish(type)) {
+                messageId = 'alwaysNullish';
+            }
             if (messageId) {
                 context.report({ node, messageId });
             }
@@ -138,6 +209,9 @@
          *
          * NOTE: It's also unnecessary if the types that don't overlap at all
          *    but that case is handled by the Typescript compiler itself.
+         *    Known exceptions:
+         *      * https://github.com/microsoft/TypeScript/issues/32627
+         *      * https://github.com/microsoft/TypeScript/issues/37160 (handled)
          */
         const BOOL_OPERATORS = new Set([
             '<',
@@ -150,21 +224,41 @@
             '!==',
         ]);
         function checkIfBinaryExpressionIsNecessaryConditional(node) {
-            if (BOOL_OPERATORS.has(node.operator) &&
-                isLiteral(getNodeType(node.left)) &&
-                isLiteral(getNodeType(node.right))) {
-                context.report({ node, messageId: 'literalBooleanExpression' });
-            }
-        }
-        /**
-         * Checks that a testable expression is necessarily conditional, reports otherwise.
-         * Filters all LogicalExpressions to prevent some duplicate reports.
-         */
-        function checkIfTestExpressionIsNecessaryConditional(node) {
-            if (node.test.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression) {
+            if (!BOOL_OPERATORS.has(node.operator)) {
                 return;
             }
-            checkNode(node.test);
+            const leftType = getNodeType(node.left);
+            const rightType = getNodeType(node.right);
+            if (isLiteral(leftType) && isLiteral(rightType)) {
+                context.report({ node, messageId: 'literalBooleanExpression' });
+                return;
+            }
+            // Workaround for https://github.com/microsoft/TypeScript/issues/37160
+            if (isStrictNullChecks) {
+                const UNDEFINED = ts.TypeFlags.Undefined;
+                const NULL = ts.TypeFlags.Null;
+                const isComparable = (type, flag) => {
+                    // Allow comparison to `any`, `unknown` or a naked type parameter.
+                    flag |=
+                        ts.TypeFlags.Any |
+                            ts.TypeFlags.Unknown |
+                            ts.TypeFlags.TypeParameter;
+                    // Allow loose comparison to nullish values.
+                    if (node.operator === '==' || node.operator === '!=') {
+                        flag |= NULL | UNDEFINED;
+                    }
+                    return util_1.isTypeFlagSet(type, flag);
+                };
+                if ((leftType.flags === UNDEFINED &&
+                    !isComparable(rightType, UNDEFINED)) ||
+                    (rightType.flags === UNDEFINED &&
+                        !isComparable(leftType, UNDEFINED)) ||
+                    (leftType.flags === NULL && !isComparable(rightType, NULL)) ||
+                    (rightType.flags === NULL && !isComparable(leftType, NULL))) {
+                    context.report({ node, messageId: 'noOverlapBooleanExpression' });
+                    return;
+                }
+            }
         }
         /**
          * Checks that a logical expression contains a boolean, reports otherwise.
@@ -174,17 +268,16 @@
                 checkNodeForNullish(node.left);
                 return;
             }
+            // Only checks the left side, since the right side might not be "conditional" at all.
+            // The right side will be checked if the LogicalExpression is used in a conditional context
             checkNode(node.left);
-            if (!ignoreRhs) {
-                checkNode(node.right);
-            }
         }
         /**
          * Checks that a testable expression of a loop is necessarily conditional, reports otherwise.
          */
         function checkIfLoopIsNecessaryConditional(node) {
-            if (node.test === null ||
-                node.test.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression) {
+            if (node.test === null) {
+                // e.g. `for(;;)`
                 return;
             }
             /**
@@ -205,21 +298,20 @@
             'some',
             'every',
         ]);
-        function shouldCheckCallback(node) {
+        function isArrayPredicateFunction(node) {
             const { callee } = node;
             return (
-            // option is on
-            !!checkArrayPredicates &&
-                // looks like `something.filter` or `something.find`
-                callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
+            // looks like `something.filter` or `something.find`
+            callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
                 callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
                 ARRAY_PREDICATE_FUNCTIONS.has(callee.property.name) &&
                 // and the left-hand side is an array, according to the types
-                nodeIsArrayType(callee.object));
+                (nodeIsArrayType(callee.object) || nodeIsTupleType(callee.object)));
         }
         function checkCallExpression(node) {
-            const { arguments: [callback], } = node;
-            if (callback && shouldCheckCallback(node)) {
+            // If this is something like arr.filter(x => /*condition*/), check `condition`
+            if (isArrayPredicateFunction(node) && node.arguments.length) {
+                const callback = node.arguments[0];
                 // Inline defined functions
                 if ((callback.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
                     callback.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression) &&
@@ -260,16 +352,88 @@
                 }
             }
         }
+        // Recursively searches an optional chain for an array index expression
+        //  Has to search the entire chain, because an array index will "infect" the rest of the types
+        //  Example:
+        //  ```
+        //  [{x: {y: "z"} }][n] // type is {x: {y: "z"}}
+        //    ?.x // type is {y: "z"}
+        //    ?.y // This access is considered "unnecessary" according to the types
+        //  ```
+        function optionChainContainsArrayIndex(node) {
+            const lhsNode = node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ? node.callee : node.object;
+            if (isArrayIndexExpression(lhsNode)) {
+                return true;
+            }
+            if (lhsNode.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
+                lhsNode.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
+                return optionChainContainsArrayIndex(lhsNode);
+            }
+            return false;
+        }
+        function isNullablePropertyType(objType, propertyType) {
+            if (propertyType.isUnion()) {
+                return propertyType.types.some(type => isNullablePropertyType(objType, type));
+            }
+            if (propertyType.isNumberLiteral() || propertyType.isStringLiteral()) {
+                const propType = util_1.getTypeOfPropertyOfName(checker, objType, propertyType.value.toString());
+                if (propType) {
+                    return util_1.isNullableType(propType, { allowUndefined: true });
+                }
+            }
+            const typeName = util_1.getTypeName(checker, propertyType);
+            return !!((typeName === 'string' &&
+                checker.getIndexInfoOfType(objType, ts.IndexKind.String)) ||
+                (typeName === 'number' &&
+                    checker.getIndexInfoOfType(objType, ts.IndexKind.Number)));
+        }
+        // Checks whether a member expression is nullable or not regardless of it's previous node.
+        //  Example:
+        //  ```
+        //  // 'bar' is nullable if 'foo' is null.
+        //  // but this function checks regardless of 'foo' type, so returns 'true'.
+        //  declare const foo: { bar : { baz: string } } | null
+        //  foo?.bar;
+        //  ```
+        function isNullableOriginFromPrev(node) {
+            const prevType = getNodeType(node.object);
+            const property = node.property;
+            if (prevType.isUnion() && util_1.isIdentifier(property)) {
+                const isOwnNullable = prevType.types.some(type => {
+                    if (node.computed) {
+                        const propertyType = getNodeType(node.property);
+                        return isNullablePropertyType(type, propertyType);
+                    }
+                    const propType = util_1.getTypeOfPropertyOfName(checker, type, property.name);
+                    return propType && util_1.isNullableType(propType, { allowUndefined: true });
+                });
+                return (!isOwnNullable && util_1.isNullableType(prevType, { allowUndefined: true }));
+            }
+            return false;
+        }
+        function isOptionableExpression(node) {
+            const type = getNodeType(node);
+            const isOwnNullable = node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression
+                ? !isNullableOriginFromPrev(node)
+                : true;
+            return (util_1.isTypeAnyType(type) ||
+                util_1.isTypeUnknownType(type) ||
+                (util_1.isNullableType(type, { allowUndefined: true }) && isOwnNullable));
+        }
         function checkOptionalChain(node, beforeOperator, fix) {
             // We only care if this step in the chain is optional. If just descend
             // from an optional chain, then that's fine.
             if (!node.optional) {
                 return;
             }
-            const type = getNodeType(node);
-            if (tsutils_1.isTypeFlagSet(type, ts.TypeFlags.Any) ||
-                tsutils_1.isTypeFlagSet(type, ts.TypeFlags.Unknown) ||
-                util_1.isNullableType(type, { allowUndefined: true })) {
+            // Since typescript array index signature types don't represent the
+            //  possibility of out-of-bounds access, if we're indexing into an array
+            //  just skip the check, to avoid false positives
+            if (optionChainContainsArrayIndex(node)) {
+                return;
+            }
+            const nodeToCheck = node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ? node.callee : node.object;
+            if (isOptionableExpression(nodeToCheck)) {
                 return;
             }
             const questionDotOperator = util_1.nullThrows(sourceCode.getTokenAfter(beforeOperator, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '?.'), util_1.NullThrowsReasons.MissingToken('operator', node.type));
@@ -283,7 +447,7 @@
             });
         }
         function checkOptionalMemberExpression(node) {
-            checkOptionalChain(node, node.object, '.');
+            checkOptionalChain(node, node.object, node.computed ? '' : '.');
         }
         function checkOptionalCallExpression(node) {
             checkOptionalChain(node, node.callee, '');
@@ -291,14 +455,14 @@
         return {
             BinaryExpression: checkIfBinaryExpressionIsNecessaryConditional,
             CallExpression: checkCallExpression,
-            ConditionalExpression: checkIfTestExpressionIsNecessaryConditional,
+            ConditionalExpression: (node) => checkNode(node.test),
             DoWhileStatement: checkIfLoopIsNecessaryConditional,
             ForStatement: checkIfLoopIsNecessaryConditional,
-            IfStatement: checkIfTestExpressionIsNecessaryConditional,
+            IfStatement: (node) => checkNode(node.test),
             LogicalExpression: checkLogicalExpressionForUnnecessaryConditionals,
             WhileStatement: checkIfLoopIsNecessaryConditional,
-            OptionalMemberExpression: checkOptionalMemberExpression,
-            OptionalCallExpression: checkOptionalCallExpression,
+            'MemberExpression[optional = true]': checkOptionalMemberExpression,
+            'CallExpression[optional = true]': checkOptionalCallExpression,
         };
     },
 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map
index c0bb104..d3b5c58 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unnecessary-condition.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-condition.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-unnecessary-condition.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-condition.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js
index aca12b0..52202a0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -43,7 +55,7 @@
         }
         function symbolIsNamespaceInScope(symbol) {
             var _a;
-            const symbolDeclarations = (_a = symbol.getDeclarations(), (_a !== null && _a !== void 0 ? _a : []));
+            const symbolDeclarations = (_a = symbol.getDeclarations()) !== null && _a !== void 0 ? _a : [];
             if (symbolDeclarations.some(decl => namespacesInScope.some(ns => ns === decl))) {
                 return true;
             }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map
index ecb696f..c516a45 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unnecessary-qualifier.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-qualifier.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-unnecessary-qualifier.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-qualifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,+CAAiC;AACjC,iDAAmC;AACnC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,iDAAiD;YAC9D,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,oBAAoB,EAClB,0DAA0D;SAC7D;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,iBAAiB,GAAc,EAAE,CAAC;QACxC,IAAI,gCAAgC,GAAyB,IAAI,CAAC;QAClE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,qBAAqB,GAAG,cAAc,CAAC,qBAAqB,CAAC;QACnE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,mBAAmB,CAC1B,MAAiB,EACjB,OAAuB;YAEvB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC1D,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QAED,SAAS,wBAAwB,CAAC,MAAiB;;YACjD,MAAM,kBAAkB,SAAG,MAAM,CAAC,eAAe,EAAE,mCAAI,EAAE,CAAC;YAE1D,IACE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7B,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAC1C,EACD;gBACA,OAAO,IAAI,CAAC;aACb;YAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEnD,OAAO,KAAK,KAAK,IAAI,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,SAAS,gBAAgB,CACvB,IAAa,EACb,KAAqB,EACrB,IAAY;YAEZ,yEAAyE;YACzE,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,SAAS,eAAe,CAAC,QAAmB,EAAE,OAAkB;YAC9D,OAAO,QAAQ,KAAK,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,SAAS,sBAAsB,CAC7B,SAA0D,EAC1D,IAAyB;YAEzB,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAEjE,IACE,OAAO,eAAe,KAAK,WAAW;gBACtC,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAC1C;gBACA,OAAO,KAAK,CAAC;aACd;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAE3D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;gBACzC,OAAO,KAAK,CAAC;aACd;YAED,mEAAmE;YACnE,MAAM,SAAS,GAAG,gBAAgB,CAChC,WAAW,EACX,cAAc,CAAC,KAAK,EACpB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CACzB,CAAC;YAEF,OAAO,CACL,OAAO,SAAS,KAAK,WAAW;gBAChC,eAAe,CAAC,cAAc,EAAE,SAAS,CAAC,CAC3C,CAAC;QACJ,CAAC;QAED,SAAS,oBAAoB,CAC3B,IAAmB,EACnB,SAA0D,EAC1D,IAAyB;YAEzB,0FAA0F;YAC1F,IACE,CAAC,gCAAgC;gBACjC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,EACvC;gBACA,gCAAgC,GAAG,IAAI,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,sBAAsB;oBACjC,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;qBAC/B;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,SAAS,gBAAgB,CACvB,IAGmC;YAEnC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,SAAS,eAAe;YACtB,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED,SAAS,+BAA+B,CAAC,IAAmB;YAC1D,IAAI,IAAI,KAAK,gCAAgC,EAAE;gBAC7C,gCAAgC,GAAG,IAAI,CAAC;aACzC;QACH,CAAC;QAED,SAAS,0BAA0B,CACjC,IAAmB;YAEnB,OAAO,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzE,CAAC;QAED,SAAS,sBAAsB,CAC7B,IAAmB;YAEnB,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;gBACvC,CAAC,0BAA0B,CAAC,IAAI,CAAC;oBAC/B,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACvC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,EAAE,gBAAgB;YACrC,iBAAiB,EAAE,gBAAgB;YACnC,gEAAgE,EAAE,gBAAgB;YAClF,8DAA8D,EAAE,gBAAgB;YAChF,0BAA0B,EAAE,eAAe;YAC3C,wBAAwB,EAAE,eAAe;YACzC,qEAAqE,EAAE,eAAe;YACtF,mEAAmE,EAAE,eAAe;YACpF,eAAe,CAAC,IAA8B;gBAC5C,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC;YACD,kCAAkC,EAAE,UAClC,IAA+B;gBAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA+B,CAAC;gBACtD,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACnD;YACH,CAAC;YACD,sBAAsB,EAAE,+BAA+B;YACvD,uBAAuB,EAAE,+BAA+B;SACzD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js
index 5fa768b..d8fab61 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -33,13 +45,12 @@
         const checker = parserServices.program.getTypeChecker();
         const sourceCode = context.getSourceCode();
         function checkTSArgsAndParameters(esParameters, typeParameters) {
-            var _a;
             // Just check the last one. Must specify previous type parameters if the last one is specified.
             const i = esParameters.params.length - 1;
             const arg = esParameters.params[i];
             const param = typeParameters[i];
             // TODO: would like checker.areTypesEquivalent. https://github.com/Microsoft/TypeScript/issues/13502
-            if (!((_a = param) === null || _a === void 0 ? void 0 : _a.default) ||
+            if (!(param === null || param === void 0 ? void 0 : param.default) ||
                 param.default.getText() !== sourceCode.getText(arg)) {
                 return;
             }
@@ -80,19 +91,19 @@
         return undefined;
     }
     const sym = getAliasedSymbol(symAtLocation, checker);
-    if (!sym.declarations) {
+    const declarations = sym.getDeclarations();
+    if (!declarations) {
         return undefined;
     }
-    return util_1.findFirstResult(sym.declarations, decl => tsutils.isClassLikeDeclaration(decl) ||
+    return util_1.findFirstResult(declarations, decl => tsutils.isClassLikeDeclaration(decl) ||
         ts.isTypeAliasDeclaration(decl) ||
         ts.isInterfaceDeclaration(decl)
         ? decl.typeParameters
         : undefined);
 }
 function getTypeParametersFromCall(node, checker) {
-    var _a;
     const sig = checker.getResolvedSignature(node);
-    const sigDecl = (_a = sig) === null || _a === void 0 ? void 0 : _a.getDeclaration();
+    const sigDecl = sig === null || sig === void 0 ? void 0 : sig.getDeclaration();
     if (!sigDecl) {
         return ts.isNewExpression(node)
             ? getTypeParametersFromType(node.expression, checker)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map
index 9cf40b2..c669509 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unnecessary-type-arguments.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-arguments.ts"],"names":[],"mappings":";;;;;;;;;AACA,iDAAmC;AACnC,+CAAiC;AACjC,8CAAgC;AAChC,kCAA0C;AAc1C,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EACT,+DAA+D;YACjE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,wBAAwB,EACtB,0EAA0E;SAC7E;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,wBAAwB,CAC/B,YAAmD,EACnD,cAAsD;;YAEtD,+FAA+F;YAC/F,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAEhC,oGAAoG;YACpG,IACE,QAAC,KAAK,0CAAE,OAAO,CAAA;gBACf,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EACnD;gBACA,OAAO;aACR;YAED,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,0BAA0B;gBACrC,GAAG,EAAE,KAAK,CAAC,EAAE,CACX,KAAK,CAAC,WAAW,CACf,CAAC,KAAK,CAAC;oBACL,CAAC,CAAC,YAAY,CAAC,KAAK;oBACpB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACxD;aACJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,4BAA4B,CAAC,IAAI;gBAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAElE,MAAM,cAAc,GAAG,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtE,IAAI,cAAc,EAAE;oBAClB,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;iBAChD;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,yBAAyB,CAChC,IAA4B,EAC5B,OAAuB;IAEvB,IAAI,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE;QAC1C,OAAO,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;KAC5D;IAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC1D;IAED,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACzD,OAAO,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAyD,EACzD,OAAuB;IAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,sBAAe,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAC9C,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACpC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAC/B,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,cAAc;QACrB,CAAC,CAAC,SAAS,CACd,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,IAA0C,EAC1C,OAAuB;;IAEvB,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,SAAG,GAAG,0CAAE,cAAc,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;KACf;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAiB,EACjB,OAAuB;IAEvB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC;AACb,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-unnecessary-type-arguments.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-arguments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AACnC,+CAAiC;AACjC,8CAAgC;AAChC,kCAA0C;AAc1C,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EACT,+DAA+D;YACjE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,wBAAwB,EACtB,0EAA0E;SAC7E;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,wBAAwB,CAC/B,YAAmD,EACnD,cAAsD;YAEtD,+FAA+F;YAC/F,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAEhC,oGAAoG;YACpG,IACE,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA;gBACf,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EACnD;gBACA,OAAO;aACR;YAED,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,0BAA0B;gBACrC,GAAG,EAAE,KAAK,CAAC,EAAE,CACX,KAAK,CAAC,WAAW,CACf,CAAC,KAAK,CAAC;oBACL,CAAC,CAAC,YAAY,CAAC,KAAK;oBACpB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACxD;aACJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,4BAA4B,CAAC,IAAI;gBAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAElE,MAAM,cAAc,GAAG,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACtE,IAAI,cAAc,EAAE;oBAClB,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;iBAChD;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,yBAAyB,CAChC,IAA4B,EAC5B,OAAuB;IAEvB,IAAI,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE;QAC1C,OAAO,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;KAC5D;IAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC1D;IAED,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QACzD,OAAO,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAyD,EACzD,OAAuB;IAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,sBAAe,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAC1C,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACpC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAC/B,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,cAAc;QACrB,CAAC,CAAC,SAAS,CACd,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,IAA0C,EAC1C,OAAuB;IAEvB,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;KACf;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAiB,EACjB,OAAuB;IAEvB,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC;AACb,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js
index 379c846..249849f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js
@@ -1,12 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const tsutils_1 = require("tsutils");
 const ts = __importStar(require("typescript"));
 const util = __importStar(require("../util"));
@@ -73,39 +86,6 @@
             return true;
         }
         /**
-         * Returns the contextual type of a given node.
-         * Contextual type is the type of the target the node is going into.
-         * i.e. the type of a called function's parameter, or the defined type of a variable declaration
-         */
-        function getContextualType(checker, node) {
-            const parent = node.parent;
-            if (!parent) {
-                return;
-            }
-            if (tsutils_1.isCallExpression(parent) || tsutils_1.isNewExpression(parent)) {
-                if (node === parent.expression) {
-                    // is the callee, so has no contextual type
-                    return;
-                }
-            }
-            else if (tsutils_1.isVariableDeclaration(parent) ||
-                tsutils_1.isPropertyDeclaration(parent) ||
-                tsutils_1.isParameterDeclaration(parent)) {
-                return parent.type
-                    ? checker.getTypeFromTypeNode(parent.type)
-                    : undefined;
-            }
-            else if (tsutils_1.isJsxExpression(parent)) {
-                return checker.getContextualType(parent);
-            }
-            else if (![ts.SyntaxKind.TemplateSpan, ts.SyntaxKind.JsxExpression].includes(parent.kind)) {
-                // parent is not something we know we can get the contextual type of
-                return;
-            }
-            // TODO - support return statement checking
-            return checker.getContextualType(node);
-        }
-        /**
          * Returns true if there's a chance the variable has been used before a value has been assigned to it
          */
         function isPossiblyUsedBeforeAssigned(node) {
@@ -138,6 +118,11 @@
             }
             return false;
         }
+        function isConstAssertion(node) {
+            return (node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeReference &&
+                node.typeName.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
+                node.typeName.name === 'const');
+        }
         return {
             TSNonNullExpression(node) {
                 const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
@@ -160,7 +145,7 @@
                 else {
                     // we know it's a nullable type
                     // so figure out if the variable is used in a place that accepts nullable types
-                    const contextualType = getContextualType(checker, originalNode);
+                    const contextualType = util.getContextualType(checker, originalNode);
                     if (contextualType) {
                         // in strict mode you can't assign null to undefined, so we have to make sure that
                         // the two types share a nullable type
@@ -193,7 +178,8 @@
             },
             'TSAsExpression, TSTypeAssertion'(node) {
                 var _a;
-                if ((_a = options.typesToIgnore) === null || _a === void 0 ? void 0 : _a.includes(sourceCode.getText(node.typeAnnotation))) {
+                if (((_a = options.typesToIgnore) === null || _a === void 0 ? void 0 : _a.includes(sourceCode.getText(node.typeAnnotation))) ||
+                    isConstAssertion(node.typeAnnotation)) {
                     return;
                 }
                 const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map
index e9e0957..31dfa14 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js
new file mode 100644
index 0000000..42b1f9c
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js
@@ -0,0 +1,265 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-unsafe-assignment',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallows assigning any to variables and properties',
+            category: 'Possible Errors',
+            recommended: 'error',
+            requiresTypeChecking: true,
+        },
+        messages: {
+            anyAssignment: 'Unsafe assignment of an any value.',
+            unsafeArrayPattern: 'Unsafe array destructuring of an any array value.',
+            unsafeArrayPatternFromTuple: 'Unsafe array destructuring of a tuple element with an any value.',
+            unsafeAssignment: 'Unsafe assignment of type {{sender}} to a variable of type {{receiver}}.',
+            unsafeArraySpread: 'Unsafe spread of an any value in an array.',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context);
+        const checker = program.getTypeChecker();
+        // returns true if the assignment reported
+        function checkArrayDestructureHelper(receiverNode, senderNode) {
+            if (receiverNode.type !== experimental_utils_1.AST_NODE_TYPES.ArrayPattern) {
+                return false;
+            }
+            const senderTsNode = esTreeNodeToTSNodeMap.get(senderNode);
+            const senderType = checker.getTypeAtLocation(senderTsNode);
+            return checkArrayDestructure(receiverNode, senderType, senderTsNode);
+        }
+        // returns true if the assignment reported
+        function checkArrayDestructure(receiverNode, senderType, senderNode) {
+            // any array
+            // const [x] = ([] as any[]);
+            if (util.isTypeAnyArrayType(senderType, checker)) {
+                context.report({
+                    node: receiverNode,
+                    messageId: 'unsafeArrayPattern',
+                });
+                return false;
+            }
+            if (!checker.isTupleType(senderType)) {
+                return true;
+            }
+            const tupleElements = util.getTypeArguments(senderType, checker);
+            // tuple with any
+            // const [x] = [1 as any];
+            let didReport = false;
+            for (let receiverIndex = 0; receiverIndex < receiverNode.elements.length; receiverIndex += 1) {
+                const receiverElement = receiverNode.elements[receiverIndex];
+                if (!receiverElement) {
+                    continue;
+                }
+                if (receiverElement.type === experimental_utils_1.AST_NODE_TYPES.RestElement) {
+                    // don't handle rests as they're not a 1:1 assignment
+                    continue;
+                }
+                const senderType = tupleElements[receiverIndex];
+                if (!senderType) {
+                    continue;
+                }
+                // check for the any type first so we can handle [[[x]]] = [any]
+                if (util.isTypeAnyType(senderType)) {
+                    context.report({
+                        node: receiverElement,
+                        messageId: 'unsafeArrayPatternFromTuple',
+                    });
+                    // we want to report on every invalid element in the tuple
+                    didReport = true;
+                }
+                else if (receiverElement.type === experimental_utils_1.AST_NODE_TYPES.ArrayPattern) {
+                    didReport = checkArrayDestructure(receiverElement, senderType, senderNode);
+                }
+                else if (receiverElement.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
+                    didReport = checkObjectDestructure(receiverElement, senderType, senderNode);
+                }
+            }
+            return didReport;
+        }
+        // returns true if the assignment reported
+        function checkObjectDestructureHelper(receiverNode, senderNode) {
+            if (receiverNode.type !== experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
+                return false;
+            }
+            const senderTsNode = esTreeNodeToTSNodeMap.get(senderNode);
+            const senderType = checker.getTypeAtLocation(senderTsNode);
+            return checkObjectDestructure(receiverNode, senderType, senderTsNode);
+        }
+        // returns true if the assignment reported
+        function checkObjectDestructure(receiverNode, senderType, senderNode) {
+            const properties = new Map(senderType
+                .getProperties()
+                .map(property => [
+                property.getName(),
+                checker.getTypeOfSymbolAtLocation(property, senderNode),
+            ]));
+            let didReport = false;
+            for (let receiverIndex = 0; receiverIndex < receiverNode.properties.length; receiverIndex += 1) {
+                const receiverProperty = receiverNode.properties[receiverIndex];
+                if (receiverProperty.type === experimental_utils_1.AST_NODE_TYPES.RestElement) {
+                    // don't bother checking rest
+                    continue;
+                }
+                let key;
+                if (receiverProperty.computed === false) {
+                    key =
+                        receiverProperty.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier
+                            ? receiverProperty.key.name
+                            : String(receiverProperty.key.value);
+                }
+                else if (receiverProperty.key.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
+                    key = String(receiverProperty.key.value);
+                }
+                else if (receiverProperty.key.type === experimental_utils_1.AST_NODE_TYPES.TemplateLiteral &&
+                    receiverProperty.key.quasis.length === 1) {
+                    key = String(receiverProperty.key.quasis[0].value.cooked);
+                }
+                else {
+                    // can't figure out the name, so skip it
+                    continue;
+                }
+                const senderType = properties.get(key);
+                if (!senderType) {
+                    continue;
+                }
+                // check for the any type first so we can handle {x: {y: z}} = {x: any}
+                if (util.isTypeAnyType(senderType)) {
+                    context.report({
+                        node: receiverProperty.value,
+                        messageId: 'unsafeArrayPatternFromTuple',
+                    });
+                    didReport = true;
+                }
+                else if (receiverProperty.value.type === experimental_utils_1.AST_NODE_TYPES.ArrayPattern) {
+                    didReport = checkArrayDestructure(receiverProperty.value, senderType, senderNode);
+                }
+                else if (receiverProperty.value.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
+                    didReport = checkObjectDestructure(receiverProperty.value, senderType, senderNode);
+                }
+            }
+            return didReport;
+        }
+        // returns true if the assignment reported
+        function checkAssignment(receiverNode, senderNode, reportingNode, comparisonType) {
+            var _a;
+            const receiverTsNode = esTreeNodeToTSNodeMap.get(receiverNode);
+            const receiverType = comparisonType === 2 /* Contextual */
+                ? (_a = util.getContextualType(checker, receiverTsNode)) !== null && _a !== void 0 ? _a : checker.getTypeAtLocation(receiverTsNode) : checker.getTypeAtLocation(receiverTsNode);
+            const senderType = checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(senderNode));
+            if (util.isTypeAnyType(senderType)) {
+                // handle cases when we assign any ==> unknown.
+                if (util.isTypeUnknownType(receiverType)) {
+                    return false;
+                }
+                context.report({
+                    node: reportingNode,
+                    messageId: 'anyAssignment',
+                });
+                return true;
+            }
+            if (comparisonType === 0 /* None */) {
+                return false;
+            }
+            const result = util.isUnsafeAssignment(senderType, receiverType, checker);
+            if (!result) {
+                return false;
+            }
+            const { sender, receiver } = result;
+            context.report({
+                node: reportingNode,
+                messageId: 'unsafeAssignment',
+                data: {
+                    sender: checker.typeToString(sender),
+                    receiver: checker.typeToString(receiver),
+                },
+            });
+            return true;
+        }
+        function getComparisonType(typeAnnotation) {
+            return typeAnnotation
+                ? // if there's a type annotation, we can do a comparison
+                    1 /* Basic */
+                : // no type annotation means the variable's type will just be inferred, thus equal
+                    0 /* None */;
+        }
+        return {
+            'VariableDeclarator[init != null]'(node) {
+                const init = util.nullThrows(node.init, util.NullThrowsReasons.MissingToken(node.type, 'init'));
+                let didReport = checkAssignment(node.id, init, node, getComparisonType(node.id.typeAnnotation));
+                if (!didReport) {
+                    didReport = checkArrayDestructureHelper(node.id, init);
+                }
+                if (!didReport) {
+                    checkObjectDestructureHelper(node.id, init);
+                }
+            },
+            'ClassProperty[value != null]'(node) {
+                checkAssignment(node.key, node.value, node, getComparisonType(node.typeAnnotation));
+            },
+            'AssignmentExpression[operator = "="], AssignmentPattern'(node) {
+                let didReport = checkAssignment(node.left, node.right, node, 1 /* Basic */);
+                if (!didReport) {
+                    didReport = checkArrayDestructureHelper(node.left, node.right);
+                }
+                if (!didReport) {
+                    checkObjectDestructureHelper(node.left, node.right);
+                }
+            },
+            // object pattern props are checked via assignments
+            ':not(ObjectPattern) > Property'(node) {
+                if (node.value.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern ||
+                    node.value.type === experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression) {
+                    // handled by other selector
+                    return;
+                }
+                checkAssignment(node.key, node.value, node, 2 /* Contextual */);
+            },
+            'ArrayExpression > SpreadElement'(node) {
+                const resetNode = esTreeNodeToTSNodeMap.get(node.argument);
+                const restType = checker.getTypeAtLocation(resetNode);
+                if (util.isTypeAnyType(restType) ||
+                    util.isTypeAnyArrayType(restType, checker)) {
+                    context.report({
+                        node: node,
+                        messageId: 'unsafeArraySpread',
+                    });
+                }
+            },
+            'JSXAttribute[value != null]'(node) {
+                const value = util.nullThrows(node.value, util.NullThrowsReasons.MissingToken(node.type, 'value'));
+                if (value.type !== experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer ||
+                    value.expression.type === experimental_utils_1.AST_NODE_TYPES.JSXEmptyExpression) {
+                    return;
+                }
+                checkAssignment(node.name, value.expression, value.expression, 2 /* Contextual */);
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-unsafe-assignment.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map
new file mode 100644
index 0000000..272d4ac
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-unsafe-assignment.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-assignment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAE/C,8CAAgC;AAWhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,aAAa,EAAE,oCAAoC;YACnD,kBAAkB,EAAE,mDAAmD;YACvE,2BAA2B,EACzB,kEAAkE;YACpE,gBAAgB,EACd,0EAA0E;YAC5E,iBAAiB,EAAE,4CAA4C;SAChE;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,0CAA0C;QAC1C,SAAS,2BAA2B,CAClC,YAA2B,EAC3B,UAAyB;YAEzB,IAAI,YAAY,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY,EAAE;gBACrD,OAAO,KAAK,CAAC;aACd;YAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE3D,OAAO,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACvE,CAAC;QAED,0CAA0C;QAC1C,SAAS,qBAAqB,CAC5B,YAAmC,EACnC,UAAmB,EACnB,UAAmB;YAEnB,YAAY;YACZ,6BAA6B;YAC7B,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAChD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,oBAAoB;iBAChC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEjE,iBAAiB;YACjB,0BAA0B;YAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAC5C,aAAa,IAAI,CAAC,EAClB;gBACA,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,EAAE;oBACpB,SAAS;iBACV;gBAED,IAAI,eAAe,CAAC,IAAI,KAAK,mCAAc,CAAC,WAAW,EAAE;oBACvD,qDAAqD;oBACrD,SAAS;iBACV;gBAED,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAwB,CAAC;gBACvE,IAAI,CAAC,UAAU,EAAE;oBACf,SAAS;iBACV;gBAED,gEAAgE;gBAChE,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,eAAe;wBACrB,SAAS,EAAE,6BAA6B;qBACzC,CAAC,CAAC;oBACH,0DAA0D;oBAC1D,SAAS,GAAG,IAAI,CAAC;iBAClB;qBAAM,IAAI,eAAe,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY,EAAE;oBAC/D,SAAS,GAAG,qBAAqB,CAC/B,eAAe,EACf,UAAU,EACV,UAAU,CACX,CAAC;iBACH;qBAAM,IAAI,eAAe,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa,EAAE;oBAChE,SAAS,GAAG,sBAAsB,CAChC,eAAe,EACf,UAAU,EACV,UAAU,CACX,CAAC;iBACH;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0CAA0C;QAC1C,SAAS,4BAA4B,CACnC,YAA2B,EAC3B,UAAyB;YAEzB,IAAI,YAAY,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa,EAAE;gBACtD,OAAO,KAAK,CAAC;aACd;YAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE3D,OAAO,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,0CAA0C;QAC1C,SAAS,sBAAsB,CAC7B,YAAoC,EACpC,UAAmB,EACnB,UAAmB;YAEnB,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,UAAU;iBACP,aAAa,EAAE;iBACf,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACf,QAAQ,CAAC,OAAO,EAAE;gBAClB,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC;aACxD,CAAC,CACL,CAAC;YAEF,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KACE,IAAI,aAAa,GAAG,CAAC,EACrB,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAC9C,aAAa,IAAI,CAAC,EAClB;gBACA,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAChE,IAAI,gBAAgB,CAAC,IAAI,KAAK,mCAAc,CAAC,WAAW,EAAE;oBACxD,6BAA6B;oBAC7B,SAAS;iBACV;gBAED,IAAI,GAAW,CAAC;gBAChB,IAAI,gBAAgB,CAAC,QAAQ,KAAK,KAAK,EAAE;oBACvC,GAAG;wBACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;4BACrD,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI;4BAC3B,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBAC1C;qBAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBAC/D,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBAC1C;qBAAM,IACL,gBAAgB,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBAC5D,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EACxC;oBACA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBAC3D;qBAAM;oBACL,wCAAwC;oBACxC,SAAS;iBACV;gBAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,EAAE;oBACf,SAAS;iBACV;gBAED,uEAAuE;gBACvE,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;oBAClC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,gBAAgB,CAAC,KAAK;wBAC5B,SAAS,EAAE,6BAA6B;qBACzC,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;iBAClB;qBAAM,IACL,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY,EAC3D;oBACA,SAAS,GAAG,qBAAqB,CAC/B,gBAAgB,CAAC,KAAK,EACtB,UAAU,EACV,UAAU,CACX,CAAC;iBACH;qBAAM,IACL,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa,EAC5D;oBACA,SAAS,GAAG,sBAAsB,CAChC,gBAAgB,CAAC,KAAK,EACtB,UAAU,EACV,UAAU,CACX,CAAC;iBACH;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0CAA0C;QAC1C,SAAS,eAAe,CACtB,YAA2B,EAC3B,UAA+B,EAC/B,aAA4B,EAC5B,cAA8B;;YAE9B,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,YAAY,GAChB,cAAc,uBAA8B;gBAC1C,CAAC,OAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAA+B,CAAC,mCAChE,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAC3C,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAC1C,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CACtC,CAAC;YAEF,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;gBAClC,+CAA+C;gBAC/C,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE;oBACxC,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,eAAe;iBAC3B,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACb;YAED,IAAI,cAAc,iBAAwB,EAAE;gBAC1C,OAAO,KAAK,CAAC;aACd;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,KAAK,CAAC;aACd;YAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,kBAAkB;gBAC7B,IAAI,EAAE;oBACJ,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;oBACpC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;iBACzC;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,iBAAiB,CACxB,cAAqD;YAErD,OAAO,cAAc;gBACnB,CAAC,CAAC,uDAAuD;;gBAEzD,CAAC,CAAC,iFAAiF;gCAC9D,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,kCAAkC,CAChC,IAAiC;gBAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAC1B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CACvD,CAAC;gBACF,IAAI,SAAS,GAAG,eAAe,CAC7B,IAAI,CAAC,EAAE,EACP,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAC1C,CAAC;gBAEF,IAAI,CAAC,SAAS,EAAE;oBACd,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBACxD;gBACD,IAAI,CAAC,SAAS,EAAE;oBACd,4BAA4B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;iBAC7C;YACH,CAAC;YACD,8BAA8B,CAAC,IAA4B;gBACzD,eAAe,CACb,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAM,EACX,IAAI,EACJ,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CACvC,CAAC;YACJ,CAAC;YACD,yDAAyD,CACvD,IAAgE;gBAEhE,IAAI,SAAS,GAAG,eAAe,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,gBAGL,CAAC;gBAEF,IAAI,CAAC,SAAS,EAAE;oBACd,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChE;gBACD,IAAI,CAAC,SAAS,EAAE;oBACd,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACrD;YACH,CAAC;YACD,mDAAmD;YACnD,gCAAgC,CAAC,IAAuB;gBACtD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB;oBACpD,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,EAChE;oBACA,4BAA4B;oBAC5B,OAAO;iBACR;gBAED,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,qBAA4B,CAAC;YACzE,CAAC;YACD,iCAAiC,CAAC,IAA4B;gBAC5D,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACtD,IACE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1C;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI;wBACV,SAAS,EAAE,mBAAmB;qBAC/B,CAAC,CAAC;iBACJ;YACH,CAAC;YACD,6BAA6B,CAAC,IAA2B;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CACxD,CAAC;gBACF,IACE,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB;oBACpD,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB,EAC3D;oBACA,OAAO;iBACR;gBAED,eAAe,CACb,IAAI,CAAC,IAAI,EACT,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,qBAEjB,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js
new file mode 100644
index 0000000..b3d4b5d
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js
@@ -0,0 +1,67 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-unsafe-call',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallows calling an any type value',
+            category: 'Possible Errors',
+            recommended: 'error',
+            requiresTypeChecking: true,
+        },
+        messages: {
+            unsafeCall: 'Unsafe call of an any typed value.',
+            unsafeNew: 'Unsafe construction of an any type value.',
+            unsafeTemplateTag: 'Unsafe any typed template tag.',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context);
+        const checker = program.getTypeChecker();
+        function checkCall(node, reportingNode, messageId) {
+            const tsNode = esTreeNodeToTSNodeMap.get(node);
+            const type = util.getConstrainedTypeAtLocation(checker, tsNode);
+            if (util.isTypeAnyType(type)) {
+                context.report({
+                    node: reportingNode,
+                    messageId: messageId,
+                });
+            }
+        }
+        return {
+            'CallExpression > *.callee'(node) {
+                checkCall(node, node, 'unsafeCall');
+            },
+            NewExpression(node) {
+                checkCall(node.callee, node, 'unsafeNew');
+            },
+            'TaggedTemplateExpression > *.tag'(node) {
+                checkCall(node, node, 'unsafeTemplateTag');
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-unsafe-call.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map
new file mode 100644
index 0000000..2f8e7e8
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-unsafe-call.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-call.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAIhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,oCAAoC;YAChD,SAAS,EAAE,2CAA2C;YACtD,iBAAiB,EAAE,gCAAgC;SACpD;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,SAAS,SAAS,CAChB,IAAmB,EACnB,aAA4B,EAC5B,SAAqB;YAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,2BAA2B,CACzB,IAAuC;gBAEvC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACtC,CAAC;YACD,aAAa,CAAC,IAAI;gBAChB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;YACD,kCAAkC,CAAC,IAAmB;gBACpD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js
new file mode 100644
index 0000000..21c6c31
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js
@@ -0,0 +1,105 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-unsafe-member-access',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallows member access on any typed variables',
+            category: 'Possible Errors',
+            recommended: 'error',
+            requiresTypeChecking: true,
+        },
+        messages: {
+            unsafeMemberExpression: 'Unsafe member access {{property}} on an any value.',
+            unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an any value.',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context);
+        const checker = program.getTypeChecker();
+        const sourceCode = context.getSourceCode();
+        const stateCache = new Map();
+        function checkMemberExpression(node) {
+            const cachedState = stateCache.get(node);
+            if (cachedState) {
+                return cachedState;
+            }
+            if (node.object.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
+                const objectState = checkMemberExpression(node.object);
+                if (objectState === 1 /* Unsafe */) {
+                    // if the object is unsafe, we know this will be unsafe as well
+                    // we don't need to report, as we have already reported on the inner member expr
+                    stateCache.set(node, objectState);
+                    return objectState;
+                }
+            }
+            const tsNode = esTreeNodeToTSNodeMap.get(node.object);
+            const type = checker.getTypeAtLocation(tsNode);
+            const state = util.isTypeAnyType(type) ? 1 /* Unsafe */ : 2 /* Safe */;
+            stateCache.set(node, state);
+            if (state === 1 /* Unsafe */) {
+                const propertyName = sourceCode.getText(node.property);
+                context.report({
+                    node,
+                    messageId: 'unsafeMemberExpression',
+                    data: {
+                        property: node.computed ? `[${propertyName}]` : `.${propertyName}`,
+                    },
+                });
+            }
+            return state;
+        }
+        return {
+            MemberExpression: checkMemberExpression,
+            'MemberExpression[computed = true] > *.property'(node) {
+                if (
+                // x[1]
+                node.type === experimental_utils_1.AST_NODE_TYPES.Literal ||
+                    // x[1++] x[++x] etc
+                    // FUN FACT - **all** update expressions return type number, regardless of the argument's type,
+                    // because JS engines return NaN if there the argument is not a number.
+                    node.type === experimental_utils_1.AST_NODE_TYPES.UpdateExpression) {
+                    // perf optimizations - literals can obviously never be `any`
+                    return;
+                }
+                const tsNode = esTreeNodeToTSNodeMap.get(node);
+                const type = checker.getTypeAtLocation(tsNode);
+                if (util.isTypeAnyType(type)) {
+                    const propertyName = sourceCode.getText(node);
+                    context.report({
+                        node,
+                        messageId: 'unsafeComputedMemberAccess',
+                        data: {
+                            property: `[${propertyName}]`,
+                        },
+                    });
+                }
+            },
+        };
+    },
+});
+//# sourceMappingURL=no-unsafe-member-access.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map
new file mode 100644
index 0000000..4a2df7a
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js
new file mode 100644
index 0000000..50b809c
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js
@@ -0,0 +1,137 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const tsutils_1 = require("tsutils");
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'no-unsafe-return',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Disallows returning any from a function',
+            category: 'Possible Errors',
+            recommended: 'error',
+            requiresTypeChecking: true,
+        },
+        messages: {
+            unsafeReturn: 'Unsafe return of an {{type}} typed value',
+            unsafeReturnAssignment: 'Unsafe return of type {{sender}} from function with return type {{receiver}}.',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context);
+        const checker = program.getTypeChecker();
+        function getParentFunctionNode(node) {
+            let current = node.parent;
+            while (current) {
+                if (current.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
+                    current.type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration ||
+                    current.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression) {
+                    return current;
+                }
+                current = current.parent;
+            }
+            // this shouldn't happen in correct code, but someone may attempt to parse bad code
+            // the parser won't error, so we shouldn't throw here
+            /* istanbul ignore next */ return null;
+        }
+        function checkReturn(returnNode, reportingNode = returnNode) {
+            const tsNode = esTreeNodeToTSNodeMap.get(returnNode);
+            const anyType = util.isAnyOrAnyArrayTypeDiscriminated(tsNode, checker);
+            const functionNode = getParentFunctionNode(returnNode);
+            /* istanbul ignore if */ if (!functionNode) {
+                return;
+            }
+            // function has an explicit return type, so ensure it's a safe return
+            const returnNodeType = util.getConstrainedTypeAtLocation(checker, esTreeNodeToTSNodeMap.get(returnNode));
+            const functionTSNode = esTreeNodeToTSNodeMap.get(functionNode);
+            // function expressions will not have their return type modified based on receiver typing
+            // so we have to use the contextual typing in these cases, i.e.
+            // const foo1: () => Set<string> = () => new Set<any>();
+            // the return type of the arrow function is Set<any> even though the variable is typed as Set<string>
+            let functionType = tsutils_1.isExpression(functionTSNode)
+                ? util.getContextualType(checker, functionTSNode)
+                : checker.getTypeAtLocation(functionTSNode);
+            if (!functionType) {
+                functionType = checker.getTypeAtLocation(functionTSNode);
+            }
+            if (anyType !== 2 /* Safe */) {
+                // Allow cases when the declared return type of the function is either unknown or unknown[]
+                // and the function is returning any or any[].
+                for (const signature of functionType.getCallSignatures()) {
+                    const functionReturnType = signature.getReturnType();
+                    if (anyType === 0 /* Any */ &&
+                        util.isTypeUnknownType(functionReturnType)) {
+                        return;
+                    }
+                    if (anyType === 1 /* AnyArray */ &&
+                        util.isTypeUnknownArrayType(functionReturnType, checker)) {
+                        return;
+                    }
+                }
+                // If the function return type was not unknown/unknown[], mark usage as unsafeReturn.
+                return context.report({
+                    node: reportingNode,
+                    messageId: 'unsafeReturn',
+                    data: {
+                        type: anyType === 0 /* Any */ ? 'any' : 'any[]',
+                    },
+                });
+            }
+            for (const signature of functionType.getCallSignatures()) {
+                const functionReturnType = signature.getReturnType();
+                if (returnNodeType === functionReturnType) {
+                    // don't bother checking if they're the same
+                    // either the function is explicitly declared to return the same type
+                    // or there was no declaration, so the return type is implicit
+                    return;
+                }
+                const result = util.isUnsafeAssignment(returnNodeType, functionReturnType, checker);
+                if (!result) {
+                    return;
+                }
+                const { sender, receiver } = result;
+                return context.report({
+                    node: reportingNode,
+                    messageId: 'unsafeReturnAssignment',
+                    data: {
+                        sender: checker.typeToString(sender),
+                        receiver: checker.typeToString(receiver),
+                    },
+                });
+            }
+        }
+        return {
+            ReturnStatement(node) {
+                const argument = node.argument;
+                if (!argument) {
+                    return;
+                }
+                checkReturn(argument, node);
+            },
+            'ArrowFunctionExpression > :not(BlockStatement).body': checkReturn,
+        };
+    },
+});
+//# sourceMappingURL=no-unsafe-return.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map
new file mode 100644
index 0000000..e2f30ca
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"no-unsafe-return.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-return.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js
deleted file mode 100644
index 6834e58..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const util = __importStar(require("../util"));
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-exports.default = util.createRule({
-    name: 'no-untyped-public-signature',
-    meta: {
-        deprecated: true,
-        replacedBy: ['explicit-module-boundary-types'],
-        docs: {
-            description: 'Disallow untyped public methods',
-            category: 'Best Practices',
-            recommended: false,
-        },
-        messages: {
-            noReturnType: 'Public method has no return type',
-            untypedParameter: 'Public method parameters should be typed',
-        },
-        schema: [
-            {
-                allowAdditionalProperties: false,
-                properties: {
-                    ignoredMethods: {
-                        type: 'array',
-                        items: {
-                            type: 'string',
-                        },
-                    },
-                },
-                type: 'object',
-            },
-        ],
-        type: 'suggestion',
-    },
-    defaultOptions: [{ ignoredMethods: [] }],
-    create(context, [options]) {
-        const ignoredMethods = new Set(options.ignoredMethods);
-        function isPublicMethod(node) {
-            return node.accessibility === 'public' || !node.accessibility;
-        }
-        function isIgnoredMethod(node, ignoredMethods) {
-            if (node.key.type === experimental_utils_1.AST_NODE_TYPES.Literal &&
-                typeof node.key.value === 'string') {
-                return ignoredMethods.has(node.key.value);
-            }
-            if (node.key.type === experimental_utils_1.AST_NODE_TYPES.TemplateLiteral &&
-                node.key.expressions.length === 0) {
-                return ignoredMethods.has(node.key.quasis[0].value.raw);
-            }
-            if (!node.computed && node.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
-                return ignoredMethods.has(node.key.name);
-            }
-            return false;
-        }
-        function isParamTyped(node) {
-            return (!!node.typeAnnotation &&
-                node.typeAnnotation.typeAnnotation.type !== experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword);
-        }
-        function isReturnTyped(node) {
-            if (!node) {
-                return false;
-            }
-            return (node.typeAnnotation &&
-                node.typeAnnotation.type !== experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword);
-        }
-        return {
-            'TSAbstractMethodDefinition, MethodDefinition'(node) {
-                if (isPublicMethod(node) && !isIgnoredMethod(node, ignoredMethods)) {
-                    const paramIdentifiers = node.value.params.filter(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier);
-                    const identifiersHaveTypes = paramIdentifiers.every(isParamTyped);
-                    if (!identifiersHaveTypes) {
-                        context.report({
-                            node,
-                            messageId: 'untypedParameter',
-                            data: {},
-                        });
-                    }
-                    if (node.kind !== 'constructor' &&
-                        node.kind !== 'set' &&
-                        !isReturnTyped(node.value.returnType)) {
-                        context.report({
-                            node,
-                            messageId: 'noReturnType',
-                            data: {},
-                        });
-                    }
-                }
-            },
-        };
-    },
-});
-//# sourceMappingURL=no-untyped-public-signature.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js.map
deleted file mode 100644
index a51d901..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-untyped-public-signature.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"no-untyped-public-signature.js","sourceRoot":"","sources":["../../src/rules/no-untyped-public-signature.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js
index 4842a26..1b3a2d4 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js
@@ -1,14 +1,27 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_unused_expressions_1 = __importDefault(require("eslint/lib/rules/no-unused-expressions"));
@@ -24,15 +37,35 @@
             extendsBaseRule: true,
         },
         schema: no_unused_expressions_1.default.meta.schema,
-        messages: {},
+        messages: (_a = no_unused_expressions_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            unusedExpression: 'Expected an assignment or function call and instead saw an expression.',
+        },
     },
-    defaultOptions: [],
-    create(context) {
+    defaultOptions: [
+        {
+            allowShortCircuit: false,
+            allowTernary: false,
+            allowTaggedTemplates: false,
+        },
+    ],
+    create(context, options) {
         const rules = no_unused_expressions_1.default.create(context);
+        const { allowShortCircuit = false, allowTernary = false } = options[0];
+        function isValidExpression(node) {
+            if (allowShortCircuit && node.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression) {
+                return isValidExpression(node.right);
+            }
+            if (allowTernary && node.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression) {
+                return (isValidExpression(node.alternate) &&
+                    isValidExpression(node.consequent));
+            }
+            return ((node.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression &&
+                node.expression.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) ||
+                node.type === experimental_utils_1.AST_NODE_TYPES.ImportExpression);
+        }
         return {
             ExpressionStatement(node) {
-                if (node.directive ||
-                    node.expression.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) {
+                if (node.directive || isValidExpression(node.expression)) {
                     return;
                 }
                 rules.ExpressionStatement(node);
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map
index 3fa9a2e..d9fc646 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAuE;AACvE,mGAA8D;AAC9D,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,EAAE;KACb;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IACE,IAAI,CAAC,SAAS;oBACd,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,EAC9D;oBACA,OAAO;iBACR;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,mGAA8D;AAC9D,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,+BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,gBAAgB,EACd,wEAAwE;SAC3E;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;QACrB,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEvE,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;gBACvE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,qBAAqB,EAAE;gBACtE,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CACnC,CAAC;aACH;YACD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACxD,OAAO;iBACR;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js
index 11b8b77..fd05722 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js
@@ -1,13 +1,26 @@
 "use strict";
 /* eslint-disable no-fallthrough */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.DEFAULT_IGNORED_REGEX_STRING = void 0;
 const ts = __importStar(require("typescript"));
 const util = __importStar(require("../util"));
 exports.DEFAULT_IGNORED_REGEX_STRING = '^_';
@@ -19,8 +32,9 @@
             description: 'Disallow unused variables and arguments',
             category: 'Best Practices',
             recommended: false,
-            requiresTypeChecking: true,
         },
+        deprecated: true,
+        replacedBy: ['no-unused-vars'],
         schema: [
             {
                 type: 'object',
@@ -45,7 +59,7 @@
         ],
         messages: {
             unused: "{{type}} '{{name}}' is declared but its value is never read.",
-            unusedWithIgnorePattern: "{{type}} '{{name}}' is declared but its value is never read. Allowed unused names must match {{pattern}}",
+            unusedWithIgnorePattern: "{{type}} '{{name}}' is declared but its value is never read. Allowed unused names must match {{pattern}}.",
             unusedImport: 'All imports in import declaration are unused.',
             unusedTypeParameters: 'All type parameters are unused.',
         },
@@ -58,14 +72,14 @@
     ],
     create(context, [userOptions]) {
         var _a;
-        const parserServices = util.getParserServices(context);
+        const parserServices = util.getParserServices(context, true);
         const tsProgram = parserServices.program;
         const afterAllDiagnosticsCallbacks = [];
         const options = {
             ignoredNames: userOptions && typeof userOptions.ignoredNamesRegex === 'string'
                 ? new RegExp(userOptions.ignoredNamesRegex)
                 : null,
-            ignoreArgsIfArgsAfterAreUsed: (_a = userOptions.ignoreArgsIfArgsAfterAreUsed, (_a !== null && _a !== void 0 ? _a : false)),
+            ignoreArgsIfArgsAfterAreUsed: (_a = userOptions.ignoreArgsIfArgsAfterAreUsed) !== null && _a !== void 0 ? _a : false,
         };
         function handleIdentifier(identifier) {
             function report(type) {
@@ -122,7 +136,6 @@
                 case ts.SyntaxKind.ImportSpecifier:
                 // a namespace import is NOT used, but the default import is used
                 case ts.SyntaxKind.NamespaceImport:
-                    // eslint-disable-next-line @typescript-eslint/internal/prefer-ast-types-enum
                     report('Import');
                     break;
                 case ts.SyntaxKind.InterfaceDeclaration:
@@ -157,7 +170,7 @@
         const unusedParameters = new Set();
         function handleParameterDeclaration(identifier, parent) {
             const name = identifier.getText();
-            // regardless of if the paramter is ignored, track that it had a diagnostic fired on it
+            // regardless of if the parameter is ignored, track that it had a diagnostic fired on it
             unusedParameters.add(identifier);
             /*
             NOTE - Typescript will automatically ignore parameters that have a
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map
index 55f3d88..d5e1583 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unused-vars-experimental.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars-experimental.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"no-unused-vars-experimental.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars-experimental.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js
index 2ab3871..fbb7b03 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js
@@ -1,16 +1,30 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const scope_manager_1 = require("@typescript-eslint/scope-manager");
 const no_unused_vars_1 = __importDefault(require("eslint/lib/rules/no-unused-vars"));
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
@@ -24,61 +38,320 @@
             extendsBaseRule: true,
         },
         schema: no_unused_vars_1.default.meta.schema,
-        messages: no_unused_vars_1.default.meta.messages,
+        messages: (_a = no_unused_vars_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            unusedVar: "'{{varName}}' is {{action}} but never used{{additional}}.",
+        },
     },
-    defaultOptions: [],
+    defaultOptions: [{}],
     create(context) {
         const rules = no_unused_vars_1.default.create(context);
+        const filename = context.getFilename();
+        const MODULE_DECL_CACHE = new Map();
         /**
-         * Mark heritage clause as used
-         * @param node The node currently being traversed
+         * Gets a list of TS module definitions for a specified variable.
+         * @param variable eslint-scope variable object.
          */
-        function markHeritageAsUsed(node) {
+        function getModuleNameDeclarations(variable) {
+            const moduleDeclarations = [];
+            variable.defs.forEach(def => {
+                if (def.type === 'TSModuleName') {
+                    moduleDeclarations.push(def.node);
+                }
+            });
+            return moduleDeclarations;
+        }
+        /**
+         * Determine if an identifier is referencing an enclosing name.
+         * This only applies to declarations that create their own scope (modules, functions, classes)
+         * @param ref The reference to check.
+         * @param nodes The candidate function nodes.
+         * @returns True if it's a self-reference, false if not.
+         */
+        function isBlockSelfReference(ref, nodes) {
+            let scope = ref.from;
+            while (scope) {
+                if (nodes.indexOf(scope.block) >= 0) {
+                    return true;
+                }
+                scope = scope.upper;
+            }
+            return false;
+        }
+        function isExported(variable, target) {
+            // TS will require that all merged namespaces/interfaces are exported, so we only need to find one
+            return variable.defs.some(def => {
+                var _a, _b;
+                return def.node.type === target &&
+                    (((_a = def.node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration ||
+                        ((_b = def.node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration);
+            });
+        }
+        return Object.assign(Object.assign({}, rules), { 'TSCallSignatureDeclaration, TSConstructorType, TSConstructSignatureDeclaration, TSDeclareFunction, TSEmptyBodyFunctionExpression, TSFunctionType, TSMethodSignature'(node) {
+                // function type signature params create variables because they can be referenced within the signature,
+                // but they obviously aren't unused variables for the purposes of this rule.
+                for (const param of node.params) {
+                    visitPattern(param, name => {
+                        context.markVariableAsUsed(name.name);
+                    });
+                }
+            },
+            TSEnumDeclaration() {
+                // enum members create variables because they can be referenced within the enum,
+                // but they obviously aren't unused variables for the purposes of this rule.
+                const scope = context.getScope();
+                for (const variable of scope.variables) {
+                    context.markVariableAsUsed(variable.name);
+                }
+            },
+            TSMappedType(node) {
+                // mapped types create a variable for their type name, but it's not necessary to reference it,
+                // so we shouldn't consider it as unused for the purpose of this rule.
+                context.markVariableAsUsed(node.typeParameter.name.name);
+            },
+            TSModuleDeclaration() {
+                const childScope = context.getScope();
+                const scope = util.nullThrows(context.getScope().upper, util.NullThrowsReasons.MissingToken(childScope.type, 'upper scope'));
+                for (const variable of scope.variables) {
+                    const moduleNodes = getModuleNameDeclarations(variable);
+                    if (moduleNodes.length === 0 ||
+                        // ignore unreferenced module definitions, as the base rule will report on them
+                        variable.references.length === 0 ||
+                        // ignore exported nodes
+                        isExported(variable, experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration)) {
+                        continue;
+                    }
+                    // check if the only reference to a module's name is a self-reference in its body
+                    // this won't be caught by the base rule because it doesn't understand TS modules
+                    const isOnlySelfReferenced = variable.references.every(ref => {
+                        return isBlockSelfReference(ref, moduleNodes);
+                    });
+                    if (isOnlySelfReferenced) {
+                        context.report({
+                            node: variable.identifiers[0],
+                            messageId: 'unusedVar',
+                            data: {
+                                varName: variable.name,
+                                action: 'defined',
+                                additional: '',
+                            },
+                        });
+                    }
+                }
+            },
+            [[
+                'TSParameterProperty > AssignmentPattern > Identifier.left',
+                'TSParameterProperty > Identifier.parameter',
+            ].join(', ')](node) {
+                // just assume parameter properties are used as property usage tracking is beyond the scope of this rule
+                context.markVariableAsUsed(node.name);
+            },
+            ':matches(FunctionDeclaration, FunctionExpression, ArrowFunctionExpression) > Identifier[name="this"].params'(node) {
+                // this parameters should always be considered used as they're pseudo-parameters
+                context.markVariableAsUsed(node.name);
+            },
+            'TSInterfaceDeclaration, TSTypeAliasDeclaration'(node) {
+                const variable = context.getScope().set.get(node.id.name);
+                if (!variable) {
+                    return;
+                }
+                if (variable.references.length === 0 ||
+                    // ignore exported nodes
+                    isExported(variable, node.type)) {
+                    return;
+                }
+                // check if the type is only self-referenced
+                // this won't be caught by the base rule because it doesn't understand self-referencing types
+                const isOnlySelfReferenced = variable.references.every(ref => {
+                    if (ref.identifier.range[0] >= node.range[0] &&
+                        ref.identifier.range[1] <= node.range[1]) {
+                        return true;
+                    }
+                    return false;
+                });
+                if (isOnlySelfReferenced) {
+                    context.report({
+                        node: variable.identifiers[0],
+                        messageId: 'unusedVar',
+                        data: {
+                            varName: variable.name,
+                            action: 'defined',
+                            additional: '',
+                        },
+                    });
+                }
+            },
+            // declaration file handling
+            [ambientDeclarationSelector(experimental_utils_1.AST_NODE_TYPES.Program, true)](node) {
+                if (!util.isDefinitionFile(filename)) {
+                    return;
+                }
+                markDeclarationChildAsUsed(node);
+            },
+            // global augmentation can be in any file, and they do not need exports
+            'TSModuleDeclaration[declare = true][global = true]'() {
+                context.markVariableAsUsed('global');
+            },
+            // children of a namespace that is a child of a declared namespace are auto-exported
+            [ambientDeclarationSelector('TSModuleDeclaration[declare = true] > TSModuleBlock TSModuleDeclaration > TSModuleBlock', false)](node) {
+                markDeclarationChildAsUsed(node);
+            },
+            // declared namespace handling
+            [ambientDeclarationSelector('TSModuleDeclaration[declare = true] > TSModuleBlock', false)](node) {
+                var _a;
+                const moduleDecl = util.nullThrows((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent, util.NullThrowsReasons.MissingParent);
+                // declared ambient modules with an `export =` statement will only export that one thing
+                // all other statements are not automatically exported in this case
+                if (moduleDecl.id.type === experimental_utils_1.AST_NODE_TYPES.Literal &&
+                    checkModuleDeclForExportEquals(moduleDecl)) {
+                    return;
+                }
+                markDeclarationChildAsUsed(node);
+            } });
+        function checkModuleDeclForExportEquals(node) {
+            var _a, _b;
+            const cached = MODULE_DECL_CACHE.get(node);
+            if (cached != null) {
+                return cached;
+            }
+            for (const statement of (_b = (_a = node.body) === null || _a === void 0 ? void 0 : _a.body) !== null && _b !== void 0 ? _b : []) {
+                if (statement.type === experimental_utils_1.AST_NODE_TYPES.TSExportAssignment) {
+                    MODULE_DECL_CACHE.set(node, true);
+                    return true;
+                }
+            }
+            MODULE_DECL_CACHE.set(node, false);
+            return false;
+        }
+        function ambientDeclarationSelector(parent, childDeclare) {
+            return [
+                // Types are ambiently exported
+                `${parent} > :matches(${[
+                    experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration,
+                    experimental_utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration,
+                ].join(', ')})`,
+                // Value things are ambiently exported if they are "declare"d
+                `${parent} > :matches(${[
+                    experimental_utils_1.AST_NODE_TYPES.ClassDeclaration,
+                    experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction,
+                    experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration,
+                    experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration,
+                    experimental_utils_1.AST_NODE_TYPES.VariableDeclaration,
+                ].join(', ')})${childDeclare ? '[declare = true]' : ''}`,
+            ].join(', ');
+        }
+        function markDeclarationChildAsUsed(node) {
+            var _a;
+            const identifiers = [];
             switch (node.type) {
-                case experimental_utils_1.AST_NODE_TYPES.Identifier:
-                    context.markVariableAsUsed(node.name);
+                case experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.ClassDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction:
+                case experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration:
+                case experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration:
+                    if (((_a = node.id) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.Identifier) {
+                        identifiers.push(node.id);
+                    }
                     break;
-                case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
-                    markHeritageAsUsed(node.object);
-                    break;
-                case experimental_utils_1.AST_NODE_TYPES.CallExpression:
-                    markHeritageAsUsed(node.callee);
+                case experimental_utils_1.AST_NODE_TYPES.VariableDeclaration:
+                    for (const declaration of node.declarations) {
+                        visitPattern(declaration, pattern => {
+                            identifiers.push(pattern);
+                        });
+                    }
                     break;
             }
-        }
-        return Object.assign({}, rules, {
-            'TSTypeReference Identifier'(node) {
-                context.markVariableAsUsed(node.name);
-            },
-            TSInterfaceHeritage(node) {
-                if (node.expression) {
-                    markHeritageAsUsed(node.expression);
-                }
-            },
-            TSClassImplements(node) {
-                if (node.expression) {
-                    markHeritageAsUsed(node.expression);
-                }
-            },
-            'TSParameterProperty Identifier'(node) {
-                // just assume parameter properties are used
-                context.markVariableAsUsed(node.name);
-            },
-            'TSEnumMember Identifier'(node) {
-                context.markVariableAsUsed(node.name);
-            },
-            '*[declare=true] Identifier'(node) {
-                context.markVariableAsUsed(node.name);
-                const scope = context.getScope();
-                const { variableScope } = scope;
-                if (variableScope !== scope) {
-                    const superVar = variableScope.set.get(node.name);
+            const scope = context.getScope();
+            const { variableScope } = scope;
+            if (variableScope !== scope) {
+                for (const id of identifiers) {
+                    const superVar = variableScope.set.get(id.name);
                     if (superVar) {
                         superVar.eslintUsed = true;
                     }
                 }
-            },
-        });
+            }
+            else {
+                for (const id of identifiers) {
+                    context.markVariableAsUsed(id.name);
+                }
+            }
+        }
+        function visitPattern(node, cb) {
+            const visitor = new scope_manager_1.PatternVisitor({}, node, cb);
+            visitor.visit(node);
+        }
     },
 });
+/*
+
+###### TODO ######
+
+Edge cases that aren't currently handled due to laziness and them being super edgy edge cases
+
+
+--- function params referenced in typeof type refs in the function declaration ---
+--- NOTE - TS gets these cases wrong
+
+function _foo(
+  arg: number // arg should be unused
+): typeof arg {
+  return 1 as any;
+}
+
+function _bar(
+  arg: number, // arg should be unused
+  _arg2: typeof arg,
+) {}
+
+
+--- function names referenced in typeof type refs in the function declaration ---
+--- NOTE - TS gets these cases right
+
+function foo( // foo should be unused
+): typeof foo {
+    return 1 as any;
+}
+
+function bar( // bar should be unused
+  _arg: typeof bar
+) {}
+
+*/
+/*
+
+###### TODO ######
+
+We currently extend base `no-unused-vars` implementation because it's easier and lighter-weight.
+
+Because of this, there are a few false-negatives which won't get caught.
+We could fix these if we fork the base rule; but that's a lot of code (~650 lines) to add in.
+I didn't want to do that just yet without some real-world issues, considering these are pretty rare edge-cases.
+
+These cases are mishandled because the base rule assumes that each variable has one def, but type-value shadowing
+creates a variable with two defs
+
+--- type-only or value-only references to type/value shadowed variables ---
+--- NOTE - TS gets these cases wrong
+
+type T = 1;
+const T = 2; // this T should be unused
+
+type U = T; // this U should be unused
+const U = 3;
+
+const _V = U;
+
+
+--- partially exported type/value shadowed variables ---
+--- NOTE - TS gets these cases wrong
+
+export interface Foo {}
+const Foo = 1; // this Foo should be unused
+
+interface Bar {} // this Bar should be unused
+export const Bar = 1;
+
+*/
 //# sourceMappingURL=no-unused-vars.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map
index 2c4990e..af5677d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qFAAuD;AACvD,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,MAAM;YACnB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,wBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,wBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,wBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC;;;WAGG;QACH,SAAS,kBAAkB,CAAC,IAAyB;YACnD,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,UAAU;oBAC5B,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtC,MAAM;gBACR,KAAK,mCAAc,CAAC,gBAAgB;oBAClC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACR,KAAK,mCAAc,CAAC,cAAc;oBAChC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAChC,MAAM;aACT;QACH,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;YAC9B,4BAA4B,CAAC,IAAyB;gBACpD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,mBAAmB,CAAC,IAAkC;gBACpD,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACrC;YACH,CAAC;YACD,iBAAiB,CAAC,IAAgC;gBAChD,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACrC;YACH,CAAC;YACD,gCAAgC,CAAC,IAAyB;gBACxD,4CAA4C;gBAC5C,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,yBAAyB,CAAC,IAAyB;gBACjD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,4BAA4B,CAAC,IAAyB;gBACpD,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;gBAChC,IAAI,aAAa,KAAK,KAAK,EAAE;oBAC3B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,QAAQ,EAAE;wBACZ,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;qBAC5B;iBACF;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js
index 5a14dab..c7807f1 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -19,6 +31,7 @@
     let enums = true;
     let variables = true;
     let typedefs = true;
+    let ignoreTypeReferences = true;
     if (typeof options === 'string') {
         functions = options !== 'nofunc';
     }
@@ -28,26 +41,16 @@
         enums = options.enums !== false;
         variables = options.variables !== false;
         typedefs = options.typedefs !== false;
+        ignoreTypeReferences = options.ignoreTypeReferences !== false;
     }
-    return { functions, classes, enums, variables, typedefs };
-}
-/**
- * Checks whether or not a given scope is a top level scope.
- */
-function isTopLevelScope(scope) {
-    return scope.type === 'module' || scope.type === 'global';
-}
-/**
- * Checks whether or not a given variable declaration in an upper scope.
- */
-function isOuterScope(variable, reference) {
-    if (variable.scope.variableScope === reference.from.variableScope) {
-        // allow the same scope only if it's the top level global/module scope
-        if (!isTopLevelScope(variable.scope.variableScope)) {
-            return false;
-        }
-    }
-    return true;
+    return {
+        functions,
+        classes,
+        enums,
+        variables,
+        typedefs,
+        ignoreTypeReferences,
+    };
 }
 /**
  * Checks whether or not a given variable is a function declaration.
@@ -56,24 +59,31 @@
     return variable.defs[0].type === 'FunctionName';
 }
 /**
- * Checks whether or not a given variable is a enum declaration in an upper function scope.
+ * Checks whether or not a given variable is a type declaration.
+ */
+function isTypedef(variable) {
+    return variable.defs[0].type === 'Type';
+}
+/**
+ * Checks whether or not a given variable is a enum declaration.
  */
 function isOuterEnum(variable, reference) {
-    const node = variable.defs[0].node;
-    return (node.type === experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration &&
-        isOuterScope(variable, reference));
+    return (variable.defs[0].type == 'TSEnumName' &&
+        variable.scope.variableScope !== reference.from.variableScope);
 }
 /**
  * Checks whether or not a given variable is a class declaration in an upper function scope.
  */
 function isOuterClass(variable, reference) {
-    return (variable.defs[0].type === 'ClassName' && isOuterScope(variable, reference));
+    return (variable.defs[0].type === 'ClassName' &&
+        variable.scope.variableScope !== reference.from.variableScope);
 }
 /**
  * Checks whether or not a given variable is a variable declaration in an upper function scope.
  */
 function isOuterVariable(variable, reference) {
-    return (variable.defs[0].type === 'Variable' && isOuterScope(variable, reference));
+    return (variable.defs[0].type === 'Variable' &&
+        variable.scope.variableScope !== reference.from.variableScope);
 }
 /**
  * Checks whether or not a given location is inside of the range of a given node.
@@ -92,6 +102,7 @@
  * - for (var a of a) {}
  */
 function isInInitializer(variable, reference) {
+    var _a;
     if (variable.scope !== reference.from) {
         return false;
     }
@@ -102,8 +113,7 @@
             if (isInRange(node.init, location)) {
                 return true;
             }
-            if (node.parent &&
-                node.parent.parent &&
+            if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent) &&
                 (node.parent.parent.type === experimental_utils_1.AST_NODE_TYPES.ForInStatement ||
                     node.parent.parent.type === experimental_utils_1.AST_NODE_TYPES.ForOfStatement) &&
                 isInRange(node.parent.parent.right, location)) {
@@ -130,7 +140,7 @@
         docs: {
             description: 'Disallow the use of variables before they are defined',
             category: 'Variables',
-            recommended: 'error',
+            recommended: false,
             extendsBaseRule: true,
         },
         messages: {
@@ -150,6 +160,7 @@
                             enums: { type: 'boolean' },
                             variables: { type: 'boolean' },
                             typedefs: { type: 'boolean' },
+                            ignoreTypeReferences: { type: 'boolean' },
                         },
                         additionalProperties: false,
                     },
@@ -164,6 +175,7 @@
             enums: true,
             variables: true,
             typedefs: true,
+            ignoreTypeReferences: true,
         },
     ],
     create(context, optionsWithDefault) {
@@ -174,17 +186,23 @@
          * @param reference The reference to the variable
          */
         function isForbidden(variable, reference) {
+            if (reference.isTypeReference && options.ignoreTypeReferences) {
+                return false;
+            }
             if (isFunction(variable)) {
-                return !!options.functions;
+                return options.functions;
             }
             if (isOuterClass(variable, reference)) {
-                return !!options.classes;
+                return options.classes;
             }
             if (isOuterVariable(variable, reference)) {
-                return !!options.variables;
+                return options.variables;
             }
             if (isOuterEnum(variable, reference)) {
-                return !!options.enums;
+                return options.enums;
+            }
+            if (isTypedef(variable)) {
+                return options.typedefs;
             }
             return true;
         }
@@ -203,9 +221,10 @@
                 if (reference.init ||
                     !variable ||
                     variable.identifiers.length === 0 ||
-                    (variable.identifiers[0].range[1] < reference.identifier.range[1] &&
+                    (variable.identifiers[0].range[1] <= reference.identifier.range[1] &&
                         !isInInitializer(variable, reference)) ||
-                    !isForbidden(variable, reference)) {
+                    !isForbidden(variable, reference) ||
+                    reference.from.type === experimental_utils_1.TSESLint.Scope.ScopeType.functionType) {
                     return;
                 }
                 // Reports.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map
index ef84689..e715a5b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-use-before-define.js","sourceRoot":"","sources":["../../src/rules/no-use-before-define.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAEhC,MAAM,aAAa,GAAG,iIAAiI,CAAC;AAExJ;;GAEG;AACH,SAAS,YAAY,CAAC,OAA+B;IACnD,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,SAAS,GAAG,OAAO,KAAK,QAAQ,CAAC;KAClC;SAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QAC1D,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QACpC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;QAChC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QACxC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;KACvC;IAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAA2B;IAClD,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,QAAiC,EACjC,SAAmC;IAEnC,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE;QACjE,sEAAsE;QACtE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAiC;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,QAAiC,EACjC,SAAmC;IAEnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAqB,CAAC;IAEpD,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB;QAC9C,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,QAAiC,EACjC,SAAmC;IAEnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,QAAiC,EACjC,SAAmC;IAEnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,IAA4C,EAC5C,QAAgB;IAEhB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe,CACtB,QAAiC,EACjC,SAAmC;IAEnC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/C,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB,EAAE;YACnD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBAClC,OAAO,IAAI,CAAC;aACb;YACD,IACE,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;oBACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAAC;gBAC5D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC7C;gBACA,OAAO,IAAI,CAAC;aACb;YACD,MAAM;SACP;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;YACzD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACnC,OAAO,IAAI,CAAC;aACb;SACF;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,MAAM;SACP;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAYD,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;SACtB;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,4CAA4C;SAChE;QACD,MAAM,EAAE;YACN;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC,QAAQ,CAAC;qBACjB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC9B;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;SACf;KACF;IACD,MAAM,CAAC,OAAO,EAAE,kBAAkB;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD;;;;WAIG;QACH,SAAS,WAAW,CAClB,QAAiC,EACjC,SAAmC;YAEnC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACxB,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;aAC5B;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACrC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;aAC1B;YACD,IAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACxC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;aAC5B;YACD,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACpC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;aACxB;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED;;WAEG;QACH,SAAS,oBAAoB,CAAC,KAA2B;YACvD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAEpC,+BAA+B;gBAC/B,qBAAqB;gBACrB,wCAAwC;gBACxC,0EAA0E;gBAC1E,+DAA+D;gBAC/D,wBAAwB;gBACxB,IACE,SAAS,CAAC,IAAI;oBACd,CAAC,QAAQ;oBACT,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBACjC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC/D,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACxC,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EACjC;oBACA,OAAO;iBACR;gBAED,WAAW;gBACX,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,SAAS,CAAC,UAAU;oBAC1B,SAAS,EAAE,mBAAmB;oBAC9B,IAAI,EAAE;wBACJ,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI;qBAChC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,OAAO;gBACL,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-use-before-define.js","sourceRoot":"","sources":["../../src/rules/no-use-before-define.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAEhC,MAAM,aAAa,GAAG,iIAAiI,CAAC;AAExJ;;GAEG;AACH,SAAS,YAAY,CAAC,OAA+B;IACnD,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAEhC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,SAAS,GAAG,OAAO,KAAK,QAAQ,CAAC;KAClC;SAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;QAC1D,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QACxC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QACpC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC;QAChC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;QACxC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC;QACtC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,KAAK,KAAK,CAAC;KAC/D;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAiC;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,QAAiC;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,QAAiC,EACjC,SAAmC;IAEnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY;QACrC,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,CAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,QAAiC,EACjC,SAAmC;IAEnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;QACrC,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,CAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,QAAiC,EACjC,SAAmC;IAEnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU;QACpC,QAAQ,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,CAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,IAA4C,EAC5C,QAAgB;IAEhB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe,CACtB,QAAiC,EACjC,SAAmC;;IAEnC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/C,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB,EAAE;YACnD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;gBAClC,OAAO,IAAI,CAAC;aACb;YACD,IACE,OAAA,IAAI,CAAC,MAAM,0CAAE,MAAM;gBACnB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;oBACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAAC;gBAC5D,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAC7C;gBACA,OAAO,IAAI,CAAC;aACb;YACD,MAAM;SACP;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;YACzD,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACnC,OAAO,IAAI,CAAC;aACb;SACF;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,MAAM;SACP;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,4CAA4C;SAChE;QACD,MAAM,EAAE;YACN;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC,QAAQ,CAAC;qBACjB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7B,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;yBAC1C;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;aACF;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,kBAAkB;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD;;;;WAIG;QACH,SAAS,WAAW,CAClB,QAAiC,EACjC,SAAmC;YAEnC,IAAI,SAAS,CAAC,eAAe,IAAI,OAAO,CAAC,oBAAoB,EAAE;gBAC7D,OAAO,KAAK,CAAC;aACd;YACD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACxB,OAAO,OAAO,CAAC,SAAS,CAAC;aAC1B;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACrC,OAAO,OAAO,CAAC,OAAO,CAAC;aACxB;YACD,IAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACxC,OAAO,OAAO,CAAC,SAAS,CAAC;aAC1B;YACD,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACpC,OAAO,OAAO,CAAC,KAAK,CAAC;aACtB;YACD,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;aACzB;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED;;WAEG;QACH,SAAS,oBAAoB,CAAC,KAA2B;YACvD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAEpC,+BAA+B;gBAC/B,qBAAqB;gBACrB,wCAAwC;gBACxC,0EAA0E;gBAC1E,+DAA+D;gBAC/D,wBAAwB;gBACxB,IACE,SAAS,CAAC,IAAI;oBACd,CAAC,QAAQ;oBACT,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBACjC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;wBAChE,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACxC,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;oBACjC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,6BAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAC7D;oBACA,OAAO;iBACR;gBAED,WAAW;gBACX,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,SAAS,CAAC,UAAU;oBAC1B,SAAS,EAAE,mBAAmB;oBAC9B,IAAI,EAAE;wBACJ,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI;qBAChC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,OAAO;gBACL,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js
index 6c135a4..936e083 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js
@@ -1,14 +1,27 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const no_useless_constructor_1 = __importDefault(require("eslint/lib/rules/no-useless-constructor"));
@@ -51,7 +64,9 @@
             extendsBaseRule: true,
         },
         schema: no_useless_constructor_1.default.meta.schema,
-        messages: no_useless_constructor_1.default.meta.messages,
+        messages: (_a = no_useless_constructor_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            noUselessConstructor: 'Useless constructor.',
+        },
     },
     defaultOptions: [],
     create(context) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map
index 5eb8159..865009c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-useless-constructor.js","sourceRoot":"","sources":["../../src/rules/no-useless-constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qGAA+D;AAC/D,8CAAgC;AAKhC;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAA+B;IACzD,QAAQ,IAAI,CAAC,aAAa,EAAE;QAC1B,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,IACE,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,SAAS;gBAC7C,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAC7B;gBACA,OAAO,KAAK,CAAC;aACd;YACD,MAAM;KACT;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAClB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACrB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,CACF,CAAC;AACJ,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,gCAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,gCAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,gCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI;oBACf,kBAAkB,CAAC,IAAI,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,EACjB;oBACA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-useless-constructor.js","sourceRoot":"","sources":["../../src/rules/no-useless-constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qGAA+D;AAC/D,8CAAgC;AAKhC;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAA+B;IACzD,QAAQ,IAAI,CAAC,aAAa,EAAE;QAC1B,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,IACE,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,SAAS;gBAC7C,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAC7B;gBACA,OAAO,KAAK,CAAC;aACd;YACD,MAAM;KACT;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAClB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACrB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,CACF,CAAC;AACJ,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,gCAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,gCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,oBAAoB,EAAE,sBAAsB;SAC7C;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,gCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI;oBACf,kBAAkB,CAAC,IAAI,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,EACjB;oBACA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js
index 0e0dc38..c042fe0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -26,13 +38,18 @@
     defaultOptions: [],
     create(context) {
         return {
-            'CallExpression, OptionalCallExpression'(node) {
+            CallExpression(node) {
+                var _a;
+                const parent = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ChainExpression
+                    ? node.parent.parent
+                    : node.parent;
                 if (node.callee.type === experimental_utils_1.AST_NODE_TYPES.Identifier &&
                     node.callee.name === 'require' &&
-                    node.parent &&
-                    (node.parent.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator ||
-                        node.parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                        node.parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression)) {
+                    parent &&
+                    (parent.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator ||
+                        parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
+                        parent.type === experimental_utils_1.AST_NODE_TYPES.TSAsExpression ||
+                        parent.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression)) {
                     context.report({
                         node,
                         messageId: 'noVarReqs',
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map
index 12dd67c..3d9eefc 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map
@@ -1 +1 @@
-{"version":3,"file":"no-var-requires.js","sourceRoot":"","sources":["../../src/rules/no-var-requires.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,qEAAqE;YACvE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,iDAAiD;SAC7D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,wCAAwC,CACtC,IAA+D;gBAE/D,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBAC9B,IAAI,CAAC,MAAM;oBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;wBACrD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,CAAC,EAC7D;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,WAAW;qBACvB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"no-var-requires.js","sourceRoot":"","sources":["../../src/rules/no-var-requires.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,qEAAqE;YACvE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,iDAAiD;SAC7D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAA6B;;gBAC1C,MAAM,MAAM,GACV,OAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,eAAe;oBAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBAC9B,MAAM;oBACN,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;wBAChD,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAAC,EAClD;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,WAAW;qBACvB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js
index 2c557b4..caf2a55 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -16,12 +28,13 @@
         docs: {
             description: 'Prefer usage of `as const` over literal type',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
+            suggestion: true,
         },
         fixable: 'code',
         messages: {
-            preferConstAssertion: 'Expected a `const` instead of a literal type assertion',
-            variableConstAssertion: 'Expected a `const` assertion instead of a literal type annotation',
+            preferConstAssertion: 'Expected a `const` instead of a literal type assertion.',
+            variableConstAssertion: 'Expected a `const` assertion instead of a literal type annotation.',
             variableSuggest: 'You should use `as const` instead of type annotation.',
         },
         schema: [],
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js.map
index 00a715e..93e89b8 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-as-const.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-as-const.js","sourceRoot":"","sources":["../../src/rules/prefer-as-const.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,oBAAoB,EAClB,wDAAwD;YAC1D,sBAAsB,EACpB,mEAAmE;YACrE,eAAe,EAAE,uDAAuD;SACzE;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,YAAY,CACnB,SAA8B,EAC9B,QAA2B,EAC3B,MAAe;YAEf,IACE,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;gBACzC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa;gBAC9C,KAAK,IAAI,QAAQ,CAAC,OAAO;gBACzB,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,EACtC;gBACA,IAAI,MAAM,EAAE;oBACV,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,sBAAsB;wBACjC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;qBACnD,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,wBAAwB;wBACnC,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,iBAAiB;gCAC5B,GAAG,EAAE,CAAC,KAAK,EAAsB,EAAE,CAAC;oCAClC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAO,CAAC;oCAC9B,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;iCAC9C;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;aACF;QACH,CAAC;QAED,OAAO;YACL,cAAc,CAAC,IAAI;gBACjB,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,eAAe,CAAC,IAAI;gBAClB,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,kBAAkB,CAAC,IAAI;gBACrB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;oBACvC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;iBACvE;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"prefer-as-const.js","sourceRoot":"","sources":["../../src/rules/prefer-as-const.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,oBAAoB,EAClB,yDAAyD;YAC3D,sBAAsB,EACpB,oEAAoE;YACtE,eAAe,EAAE,uDAAuD;SACzE;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,YAAY,CACnB,SAA8B,EAC9B,QAA2B,EAC3B,MAAe;YAEf,IACE,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;gBACzC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,aAAa;gBAC9C,KAAK,IAAI,QAAQ,CAAC,OAAO;gBACzB,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,GAAG,EACtC;gBACA,IAAI,MAAM,EAAE;oBACV,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,sBAAsB;wBACjC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;qBACnD,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,wBAAwB;wBACnC,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,iBAAiB;gCAC5B,GAAG,EAAE,CAAC,KAAK,EAAsB,EAAE,CAAC;oCAClC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAO,CAAC;oCAC9B,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC;iCAC9C;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;aACF;QACH,CAAC;QAED,OAAO;YACL,cAAc,CAAC,IAAI;gBACjB,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,eAAe,CAAC,IAAI;gBAClB,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC3D,CAAC;YACD,kBAAkB,CAAC,IAAI;gBACrB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;oBACvC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;iBACvE;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js
new file mode 100644
index 0000000..f81e3dc
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js
@@ -0,0 +1,85 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+exports.default = util.createRule({
+    name: 'prefer-enum-initializers',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Prefer initializing each enums member value',
+            category: 'Best Practices',
+            recommended: false,
+            suggestion: true,
+        },
+        messages: {
+            defineInitializer: "The value of the member '{{ name }}' should be explicitly defined",
+            defineInitializerSuggestion: 'Can be fixed to {{ name }} = {{ suggested }}',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const sourceCode = context.getSourceCode();
+        function TSEnumDeclaration(node) {
+            const { members } = node;
+            members.forEach((member, index) => {
+                if (member.initializer == null) {
+                    const name = sourceCode.getText(member);
+                    context.report({
+                        node: member,
+                        messageId: 'defineInitializer',
+                        data: {
+                            name,
+                        },
+                        suggest: [
+                            {
+                                messageId: 'defineInitializerSuggestion',
+                                data: { name, suggested: index },
+                                fix: (fixer) => {
+                                    return fixer.replaceText(member, `${name} = ${index}`);
+                                },
+                            },
+                            {
+                                messageId: 'defineInitializerSuggestion',
+                                data: { name, suggested: index + 1 },
+                                fix: (fixer) => {
+                                    return fixer.replaceText(member, `${name} = ${index + 1}`);
+                                },
+                            },
+                            {
+                                messageId: 'defineInitializerSuggestion',
+                                data: { name, suggested: `'${name}'` },
+                                fix: (fixer) => {
+                                    return fixer.replaceText(member, `${name} = '${name}'`);
+                                },
+                            },
+                        ],
+                    });
+                }
+            });
+        }
+        return {
+            TSEnumDeclaration,
+        };
+    },
+});
+//# sourceMappingURL=prefer-enum-initializers.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js.map
new file mode 100644
index 0000000..5a2c3bf
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-enum-initializers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prefer-enum-initializers.js","sourceRoot":"","sources":["../../src/rules/prefer-enum-initializers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6CAA6C;YAC1D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB;QACD,QAAQ,EAAE;YACR,iBAAiB,EACf,mEAAmE;YACrE,2BAA2B,EACzB,8CAA8C;SACjD;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,iBAAiB,CAAC,IAAgC;YACzD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YAEzB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE;oBAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,mBAAmB;wBAC9B,IAAI,EAAE;4BACJ,IAAI;yBACL;wBACD,OAAO,EAAE;4BACP;gCACE,SAAS,EAAE,6BAA6B;gCACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;gCAChC,GAAG,EAAE,CAAC,KAAK,EAAoB,EAAE;oCAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;gCACzD,CAAC;6BACF;4BACD;gCACE,SAAS,EAAE,6BAA6B;gCACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE;gCACpC,GAAG,EAAE,CAAC,KAAK,EAAoB,EAAE;oCAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;gCAC7D,CAAC;6BACF;4BACD;gCACE,SAAS,EAAE,6BAA6B;gCACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,GAAG,EAAE;gCACtC,GAAG,EAAE,CAAC,KAAK,EAAoB,EAAE;oCAC/B,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC;gCAC1D,CAAC;6BACF;yBACF;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,iBAAiB;SAClB,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js
index d3d6771..acd31ea 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -19,7 +31,7 @@
             recommended: false,
         },
         messages: {
-            preferForOf: 'Expected a `for-of` loop instead of a `for` loop with this simple iteration',
+            preferForOf: 'Expected a `for-of` loop instead of a `for` loop with this simple iteration.',
         },
         schema: [],
     },
@@ -45,8 +57,7 @@
                 node.type === experimental_utils_1.AST_NODE_TYPES.BinaryExpression &&
                 node.operator === '<' &&
                 isMatchingIdentifier(node.left, name) &&
-                (node.right.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-                    node.right.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) &&
+                node.right.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
                 isMatchingIdentifier(node.right.property, 'length')) {
                 return node.right.object;
             }
@@ -130,8 +141,7 @@
                 const node = id.parent;
                 return (!contains(body, id) ||
                     (node !== undefined &&
-                        (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-                            node.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) &&
+                        node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
                         node.property === id &&
                         sourceCode.getText(node.object) === arrayText &&
                         !isAssignee(node)));
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map
index cdd145d..b7cc1d9 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,gHAAgH;YAClH,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,WAAW,EACT,8EAA8E;SACjF;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,2BAA2B,CAClC,IAA0B;YAE1B,OAAO,CACL,IAAI,KAAK,IAAI;gBACb,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;gBAChD,IAAI,CAAC,IAAI,KAAK,OAAO;gBACrB,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;QAED,SAAS,SAAS,CAAC,IAAyB,EAAE,KAAa;YACzD,OAAO,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QACtE,CAAC;QAED,SAAS,iBAAiB,CAAC,IAAiC;YAC1D,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,SAAS,oBAAoB,CAC3B,IAAyB,EACzB,IAAY;YAEZ,OAAO,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;QACvE,CAAC;QAED,SAAS,0BAA0B,CACjC,IAA0B,EAC1B,IAAY;YAEZ,IACE,IAAI,KAAK,IAAI;gBACb,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,QAAQ,KAAK,GAAG;gBACrB,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBACnD,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACnD;gBACA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aAC1B;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,WAAW,CAAC,IAA0B,EAAE,IAAY;YAC3D,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,KAAK,CAAC;aACd;YACD,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,gBAAgB;oBAClC,aAAa;oBACb,OAAO,CACL,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CACpE,CAAC;gBACJ,KAAK,mCAAc,CAAC,oBAAoB;oBACtC,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;wBACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;4BAC1B,SAAS;4BACT,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;yBACjC;6BAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;4BAChC,yBAAyB;4BACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;4BACxB,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gCAC7C,IAAI,CAAC,QAAQ,KAAK,GAAG;gCACrB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;oCACrC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oCACzB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;wCACtB,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAC7C,CAAC;yBACH;qBACF;aACJ;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,QAAQ,CAAC,KAAoB,EAAE,KAAoB;YAC1D,OAAO,CACL,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACrE,CAAC;QACJ,CAAC;QAED,SAAS,UAAU,CAAC,IAAmB;;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,KAAK,CAAC;aACd;YAED,4BAA4B;YAC5B,IACE,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,oBAAoB;gBACnD,MAAM,CAAC,IAAI,KAAK,IAAI,EACpB;gBACA,OAAO,IAAI,CAAC;aACb;YAED,cAAc;YACd,IACE,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;gBAC9C,MAAM,CAAC,QAAQ,KAAK,QAAQ;gBAC5B,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB;gBACA,OAAO,IAAI,CAAC;aACb;YAED,uBAAuB;YACvB,IACE,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC/C,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB;gBACA,OAAO,IAAI,CAAC;aACb;YAED,eAAe;YACf,IAAI,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY,EAAE;gBAC/C,OAAO,IAAI,CAAC;aACb;YAED,kBAAkB;YAClB,IAAI,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,WAAW,EAAE;gBAC9C,OAAO,IAAI,CAAC;aACb;YAED,+BAA+B;YAC/B,IACE,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,QAAQ;gBACvC,MAAM,CAAC,KAAK,KAAK,IAAI;gBACrB,OAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,gBAAgB;gBACvD,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EACzB;gBACA,OAAO,IAAI,CAAC;aACb;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,wBAAwB,CAC/B,IAAwB,EACxB,QAAiC,EACjC,eAAoC;YAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBAC3C,MAAM,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC;gBAChC,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;gBACvB,OAAO,CACL,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,CAAC,IAAI,KAAK,SAAS;wBACjB,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;wBAC7C,IAAI,CAAC,QAAQ,KAAK,EAAE;wBACpB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS;wBAC7C,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACrB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAA2B;gBAC7C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC3C,OAAO;iBACR;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAE9B,CAAC;gBACd,IACE,CAAC,UAAU;oBACX,CAAC,iBAAiB,CAAC,UAAU,CAAC;oBAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAChD;oBACA,OAAO;iBACR;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrC,MAAM,eAAe,GAAG,0BAA0B,CAChD,IAAI,CAAC,IAAI,EACT,SAAS,CACV,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE;oBACpB,OAAO;iBACR;gBAED,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IACE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;oBACnC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,EAC9D;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,aAAa;qBACzB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js
index 08b3f53..b10172c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js
@@ -1,14 +1,31 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.phrases = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const util = __importStar(require("../util"));
+exports.phrases = {
+    [experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral]: 'Type literal',
+    [experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration]: 'Interface',
+};
 exports.default = util.createRule({
     name: 'prefer-function-type',
     meta: {
@@ -19,7 +36,8 @@
         },
         fixable: 'code',
         messages: {
-            functionTypeOverCallableType: "{{ type }} has only a call signature - use '{{ sigSuggestion }}' instead.",
+            functionTypeOverCallableType: '{{ literalOrInterface }} only has a call signature, you should use a function type instead.',
+            unexpectedThisOnFunctionOnlyInterface: "`this` refers to the function type '{{ interfaceName }}', did you intend to use a generic `this` parameter like `<Self>(this: Self, ...) => Self` instead?",
         },
         schema: [],
         type: 'suggestion',
@@ -84,10 +102,24 @@
          * @param member The TypeElement being checked
          * @param node The parent of member being checked
          */
-        function checkMember(member, node) {
+        function checkMember(member, node, tsThisTypes = null) {
             if ((member.type === experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration ||
                 member.type === experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration) &&
                 typeof member.returnType !== 'undefined') {
+                if (tsThisTypes !== null &&
+                    tsThisTypes.length > 0 &&
+                    node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration) {
+                    // the message can be confusing if we don't point directly to the `this` node instead of the whole member
+                    // and in favour of generating at most one error we'll only report the first occurrence of `this` if there are multiple
+                    context.report({
+                        node: tsThisTypes[0],
+                        messageId: 'unexpectedThisOnFunctionOnlyInterface',
+                        data: {
+                            interfaceName: node.id.name,
+                        },
+                    });
+                    return;
+                }
                 const suggestion = renderSuggestion(member, node);
                 const fixStart = node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral
                     ? node.range[0]
@@ -99,10 +131,7 @@
                     node: member,
                     messageId: 'functionTypeOverCallableType',
                     data: {
-                        type: node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral
-                            ? 'Type literal'
-                            : 'Interface',
-                        sigSuggestion: suggestion,
+                        literalOrInterface: exports.phrases[node.type],
                     },
                     fix(fixer) {
                         return fixer.replaceTextRange([fixStart, node.range[1]], suggestion);
@@ -110,12 +139,35 @@
                 });
             }
         }
+        let tsThisTypes = null;
+        let literalNesting = 0;
         return {
-            TSInterfaceDeclaration(node) {
-                if (!hasOneSupertype(node) && node.body.body.length === 1) {
-                    checkMember(node.body.body[0], node);
+            TSInterfaceDeclaration() {
+                // when entering an interface reset the count of `this`s to empty.
+                tsThisTypes = [];
+            },
+            'TSInterfaceDeclaration TSThisType'(node) {
+                // inside an interface keep track of all ThisType references.
+                // unless it's inside a nested type literal in which case it's invalid code anyway
+                // we don't want to incorrectly say "it refers to name" while typescript says it's completely invalid.
+                if (literalNesting === 0 && tsThisTypes !== null) {
+                    tsThisTypes.push(node);
                 }
             },
+            'TSInterfaceDeclaration:exit'(node) {
+                if (!hasOneSupertype(node) && node.body.body.length === 1) {
+                    checkMember(node.body.body[0], node, tsThisTypes);
+                }
+                // on exit check member and reset the array to nothing.
+                tsThisTypes = null;
+            },
+            // keep track of nested literals to avoid complaining about invalid `this` uses
+            'TSInterfaceDeclaration TSTypeLiteral'() {
+                literalNesting += 1;
+            },
+            'TSInterfaceDeclaration TSTypeLiteral:exit'() {
+                literalNesting -= 1;
+            },
             'TSTypeLiteral[members.length = 1]'(node) {
                 checkMember(node.members[0], node);
             },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map
index e8bcad2..e87d7e2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-function-type.js","sourceRoot":"","sources":["../../src/rules/prefer-function-type.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-function-type.js","sourceRoot":"","sources":["../../src/rules/prefer-function-type.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js
index 3627d3e..e352e96 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js
@@ -1,14 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const regexpp_1 = require("regexpp");
 const ts = __importStar(require("typescript"));
 const util_1 = require("../util");
@@ -20,7 +31,7 @@
         docs: {
             description: 'Enforce `includes` method over `indexOf` method',
             category: 'Best Practices',
-            recommended: 'error',
+            recommended: false,
             requiresTypeChecking: true,
         },
         fixable: 'code',
@@ -35,7 +46,7 @@
         const services = util_1.getParserServices(context);
         const types = services.program.getTypeChecker();
         function isNumber(node, value) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             return evaluated !== null && evaluated.value === value;
         }
         function isPositiveCheck(node) {
@@ -86,7 +97,7 @@
          * @param node The node to parse.
          */
         function parseRegExp(node) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             if (evaluated == null || !(evaluated.value instanceof RegExp)) {
                 return null;
             }
@@ -105,29 +116,40 @@
             return String.fromCodePoint(...chars.map(c => c.value));
         }
         return {
-            "BinaryExpression > :matches(CallExpression, OptionalCallExpression).left > :matches(MemberExpression, OptionalMemberExpression).callee[property.name='indexOf'][computed=false]"(node) {
+            [[
+                // a.indexOf(b) !== 1
+                "BinaryExpression > CallExpression.left > MemberExpression.callee[property.name='indexOf'][computed=false]",
+                // a?.indexOf(b) !== 1
+                "BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name='indexOf'][computed=false]",
+            ].join(', ')](node) {
+                var _a, _b, _c;
                 // Check if the comparison is equivalent to `includes()`.
                 const callNode = node.parent;
-                const compareNode = callNode.parent;
+                const compareNode = (((_a = callNode.parent) === null || _a === void 0 ? void 0 : _a.type) ===
+                    experimental_utils_1.AST_NODE_TYPES.ChainExpression
+                    ? callNode.parent.parent
+                    : callNode.parent);
                 const negative = isNegativeCheck(compareNode);
                 if (!negative && !isPositiveCheck(compareNode)) {
                     return;
                 }
                 // Get the symbol of `indexOf` method.
                 const tsNode = services.esTreeNodeToTSNodeMap.get(node.property);
-                const indexofMethodSymbol = types.getSymbolAtLocation(tsNode);
-                if (indexofMethodSymbol == null ||
-                    indexofMethodSymbol.declarations.length === 0) {
+                const indexofMethodDeclarations = (_b = types
+                    .getSymbolAtLocation(tsNode)) === null || _b === void 0 ? void 0 : _b.getDeclarations();
+                if (indexofMethodDeclarations == null ||
+                    indexofMethodDeclarations.length === 0) {
                     return;
                 }
                 // Check if every declaration of `indexOf` method has `includes` method
                 // and the two methods have the same parameters.
-                for (const instanceofMethodDecl of indexofMethodSymbol.declarations) {
+                for (const instanceofMethodDecl of indexofMethodDeclarations) {
                     const typeDecl = instanceofMethodDecl.parent;
                     const type = types.getTypeAtLocation(typeDecl);
-                    const includesMethodSymbol = type.getProperty('includes');
-                    if (includesMethodSymbol == null ||
-                        !includesMethodSymbol.declarations.some(includesMethodDecl => hasSameParameters(includesMethodDecl, instanceofMethodDecl))) {
+                    const includesMethodDecl = (_c = type
+                        .getProperty('includes')) === null || _c === void 0 ? void 0 : _c.getDeclarations();
+                    if (includesMethodDecl == null ||
+                        !includesMethodDecl.some(includesMethodDecl => hasSameParameters(includesMethodDecl, instanceofMethodDecl))) {
                         return;
                     }
                 }
@@ -145,12 +167,22 @@
                 });
             },
             // /bar/.test(foo)
-            ':matches(CallExpression, OptionalCallExpression) > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="test"][computed=false]'(node) {
+            'CallExpression > MemberExpression.callee[property.name="test"][computed=false]'(node) {
+                var _a;
                 const callNode = node.parent;
                 const text = callNode.arguments.length === 1 ? parseRegExp(node.object) : null;
                 if (text == null) {
                     return;
                 }
+                //check the argument type of test methods
+                const argument = callNode.arguments[0];
+                const tsNode = services.esTreeNodeToTSNodeMap.get(argument);
+                const type = util_1.getConstrainedTypeAtLocation(types, tsNode);
+                const includesMethodDecl = (_a = type
+                    .getProperty('includes')) === null || _a === void 0 ? void 0 : _a.getDeclarations();
+                if (includesMethodDecl == null) {
+                    return;
+                }
                 context.report({
                     node: callNode,
                     messageId: 'preferStringIncludes',
@@ -160,17 +192,13 @@
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.TemplateLiteral &&
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.Identifier &&
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.CallExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression;
+                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.CallExpression;
                         yield fixer.removeRange([callNode.range[0], argNode.range[0]]);
                         if (needsParen) {
                             yield fixer.insertTextBefore(argNode, '(');
                             yield fixer.insertTextAfter(argNode, ')');
                         }
-                        yield fixer.insertTextAfter(argNode, `${callNode.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression
-                            ? '?.'
-                            : '.'}includes(${JSON.stringify(text)}`);
+                        yield fixer.insertTextAfter(argNode, `${node.optional ? '?.' : '.'}includes(${JSON.stringify(text)}`);
                     },
                 });
             },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map
index 4ec9f07..b0f5b80 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-includes.js","sourceRoot":"","sources":["../../src/rules/prefer-includes.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-includes.js","sourceRoot":"","sources":["../../src/rules/prefer-includes.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js
new file mode 100644
index 0000000..475f4e7
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js
@@ -0,0 +1,46 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util_1 = require("../util");
+exports.default = util_1.createRule({
+    name: 'prefer-literal-enum-member',
+    meta: {
+        type: 'suggestion',
+        docs: {
+            description: 'Require that all enum members be literal values to prevent unintended enum member name shadow issues',
+            category: 'Best Practices',
+            recommended: false,
+            requiresTypeChecking: false,
+        },
+        messages: {
+            notLiteral: `Explicit enum value must only be a literal value (string, number, boolean, etc).`,
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        return {
+            TSEnumMember(node) {
+                // If there is no initializer, then this node is just the name of the member, so ignore.
+                if (node.initializer == null) {
+                    return;
+                }
+                // any old literal
+                if (node.initializer.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
+                    return;
+                }
+                // -1 and +1
+                if (node.initializer.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
+                    ['+', '-'].includes(node.initializer.operator) &&
+                    node.initializer.argument.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
+                    return;
+                }
+                context.report({
+                    node: node.id,
+                    messageId: 'notLiteral',
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=prefer-literal-enum-member.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map
new file mode 100644
index 0000000..9d5f038
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prefer-literal-enum-member.js","sourceRoot":"","sources":["../../src/rules/prefer-literal-enum-member.ts"],"names":[],"mappings":";;AAAA,8EAAuE;AACvE,kCAAqC;AAErC,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,sGAAsG;YACxG,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,kFAAkF;SAC/F;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,YAAY,CAAC,IAAI;gBACf,wFAAwF;gBACxF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;oBAC5B,OAAO;iBACR;gBACD,kBAAkB;gBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBACpD,OAAO;iBACR;gBACD,YAAY;gBACZ,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACxD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EACzD;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js
index 866bf59..26303e7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js.map
index cfdf2e8..c4765a0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-namespace-keyword.js","sourceRoot":"","sources":["../../src/rules/prefer-namespace-keyword.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,iHAAiH;YACnH,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,YAAY,EACV,2EAA2E;SAC9E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,sCAAsC;gBACtC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBACvD,OAAO;iBACR;gBACD,wCAAwC;gBACxC,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEtD,IACE,UAAU;oBACV,UAAU,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU;oBAC9C,UAAU,CAAC,KAAK,KAAK,QAAQ,EAC7B;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,cAAc;wBACzB,GAAG,CAAC,KAAK;4BACP,OAAO,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;wBACpD,CAAC;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"prefer-namespace-keyword.js","sourceRoot":"","sources":["../../src/rules/prefer-namespace-keyword.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,iHAAiH;YACnH,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,YAAY,EACV,2EAA2E;SAC9E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,sCAAsC;gBACtC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBACvD,OAAO;iBACR;gBACD,wCAAwC;gBACxC,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEtD,IACE,UAAU;oBACV,UAAU,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU;oBAC9C,UAAU,CAAC,KAAK,KAAK,QAAQ,EAC7B;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,cAAc;wBACzB,GAAG,CAAC,KAAK;4BACP,OAAO,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;wBACpD,CAAC;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js
index f6b4a6d..840e5c3 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,11 +29,12 @@
             description: 'Enforce the usage of the nullish coalescing operator instead of logical chaining',
             category: 'Best Practices',
             recommended: false,
+            suggestion: true,
             requiresTypeChecking: true,
         },
-        fixable: 'code',
         messages: {
             preferNullish: 'Prefer using nullish coalescing operator (`??`) instead of a logical or (`||`), as it is a safer operator.',
+            suggestNullish: 'Fix to nullish coalescing operator (`??`).',
         },
         schema: [
             {
@@ -45,10 +58,9 @@
         {
             ignoreConditionalTests: true,
             ignoreMixedLogicalExpressions: true,
-            forceSuggestionFixer: false,
         },
     ],
-    create(context, [{ ignoreConditionalTests, ignoreMixedLogicalExpressions, forceSuggestionFixer, },]) {
+    create(context, [{ ignoreConditionalTests, ignoreMixedLogicalExpressions }]) {
         const parserServices = util.getParserServices(context);
         const sourceCode = context.getSourceCode();
         const checker = parserServices.program.getTypeChecker();
@@ -83,18 +95,16 @@
                     }
                     yield fixer.replaceText(barBarOperator, '??');
                 }
-                const fixer = isMixedLogical || forceSuggestionFixer
-                    ? // suggestion instead for cases where we aren't sure if the fixer is completely safe
+                context.report({
+                    node: barBarOperator,
+                    messageId: 'preferNullish',
+                    suggest: [
                         {
-                            suggest: [
-                                {
-                                    messageId: 'preferNullish',
-                                    fix,
-                                },
-                            ],
-                        }
-                    : { fix };
-                context.report(Object.assign({ node: barBarOperator, messageId: 'preferNullish' }, fixer));
+                            messageId: 'suggestNullish',
+                            fix,
+                        },
+                    ],
+                });
             },
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js.map
index 5e24231..b46f8d4 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-nullish-coalescing.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-nullish-coalescing.js","sourceRoot":"","sources":["../../src/rules/prefer-nullish-coalescing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-nullish-coalescing.js","sourceRoot":"","sources":["../../src/rules/prefer-nullish-coalescing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js
index 3673794..c8eb961 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js
@@ -1,14 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const util = __importStar(require("../util"));
 /*
 The AST is always constructed such the first element is always the deepest element.
@@ -34,10 +45,11 @@
             description: 'Prefer using concise optional chain expressions instead of chained logical ands',
             category: 'Best Practices',
             recommended: false,
+            suggestion: true,
         },
-        fixable: 'code',
         messages: {
             preferOptionalChain: "Prefer using an optional chain expression instead, as it's more concise and easier to read.",
+            optionalChainSuggest: 'Change to an optional chain.',
         },
         schema: [],
     },
@@ -47,13 +59,18 @@
         return {
             [[
                 'LogicalExpression[operator="&&"] > Identifier',
+                'LogicalExpression[operator="&&"] > MemberExpression',
+                'LogicalExpression[operator="&&"] > ChainExpression > MemberExpression',
                 'LogicalExpression[operator="&&"] > BinaryExpression[operator="!=="]',
                 'LogicalExpression[operator="&&"] > BinaryExpression[operator="!="]',
             ].join(',')](initialIdentifierOrNotEqualsExpr) {
+                var _a;
                 // selector guarantees this cast
-                const initialExpression = initialIdentifierOrNotEqualsExpr.parent;
+                const initialExpression = (((_a = initialIdentifierOrNotEqualsExpr.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ChainExpression
+                    ? initialIdentifierOrNotEqualsExpr.parent.parent
+                    : initialIdentifierOrNotEqualsExpr.parent);
                 if (initialExpression.left !== initialIdentifierOrNotEqualsExpr) {
-                    // the identifier is not the deepest left node
+                    // the node(identifier or member expression) is not the deepest left node
                     return;
                 }
                 if (!isValidChainTarget(initialIdentifierOrNotEqualsExpr, true)) {
@@ -136,9 +153,14 @@
                     context.report({
                         node: previous,
                         messageId: 'preferOptionalChain',
-                        fix(fixer) {
-                            return fixer.replaceText(previous, optionallyChainedCode);
-                        },
+                        suggest: [
+                            {
+                                messageId: 'optionalChainSuggest',
+                                fix: (fixer) => [
+                                    fixer.replaceText(previous, optionallyChainedCode),
+                                ],
+                            },
+                        ],
                     });
                 }
             },
@@ -149,8 +171,7 @@
                 // isValidChainTarget ensures this is type safe
                 node.left);
             }
-            if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                node.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) {
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
                 const calleeText = getText(
                 // isValidChainTarget ensures this is type safe
                 node.callee);
@@ -158,7 +179,7 @@
                 // - JSX: <Foo Needs Space Between Attrs />
                 // - Unary Operators: typeof foo, await bar, delete baz
                 const closingParenToken = util.nullThrows(sourceCode.getLastToken(node), util.NullThrowsReasons.MissingToken('closing parenthesis', node.type));
-                const openingParenToken = util.nullThrows(sourceCode.getFirstTokenBetween(node.callee, closingParenToken, eslint_utils_1.isOpeningParenToken), util.NullThrowsReasons.MissingToken('opening parenthesis', node.type));
+                const openingParenToken = util.nullThrows(sourceCode.getFirstTokenBetween(node.callee, closingParenToken, util.isOpeningParenToken), util.NullThrowsReasons.MissingToken('opening parenthesis', node.type));
                 const argumentsText = sourceCode.text.substring(openingParenToken.range[0], closingParenToken.range[1]);
                 return `${calleeText}${argumentsText}`;
             }
@@ -168,6 +189,13 @@
             if (node.type === experimental_utils_1.AST_NODE_TYPES.ThisExpression) {
                 return 'this';
             }
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression) {
+                /* istanbul ignore if */ if (node.expression.type === experimental_utils_1.AST_NODE_TYPES.TSNonNullExpression) {
+                    // this shouldn't happen
+                    return '';
+                }
+                return getText(node.expression);
+            }
             return getMemberExpressionText(node);
         }
         /**
@@ -178,12 +206,10 @@
             // cases should match the list in ALLOWED_MEMBER_OBJECT_TYPES
             switch (node.object.type) {
                 case experimental_utils_1.AST_NODE_TYPES.CallExpression:
-                case experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression:
                 case experimental_utils_1.AST_NODE_TYPES.Identifier:
                     objectText = getText(node.object);
                     break;
                 case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
-                case experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression:
                     objectText = getMemberExpressionText(node.object);
                     break;
                 case experimental_utils_1.AST_NODE_TYPES.ThisExpression:
@@ -201,12 +227,10 @@
                         propertyText = getText(node.property);
                         break;
                     case experimental_utils_1.AST_NODE_TYPES.Literal:
-                    case experimental_utils_1.AST_NODE_TYPES.BigIntLiteral:
                     case experimental_utils_1.AST_NODE_TYPES.TemplateLiteral:
                         propertyText = sourceCode.getText(node.property);
                         break;
                     case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
-                    case experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression:
                         propertyText = getMemberExpressionText(node.property);
                         break;
                     /* istanbul ignore next */
@@ -234,39 +258,35 @@
     experimental_utils_1.AST_NODE_TYPES.CallExpression,
     experimental_utils_1.AST_NODE_TYPES.Identifier,
     experimental_utils_1.AST_NODE_TYPES.MemberExpression,
-    experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression,
-    experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression,
     experimental_utils_1.AST_NODE_TYPES.ThisExpression,
 ]);
 const ALLOWED_COMPUTED_PROP_TYPES = new Set([
-    experimental_utils_1.AST_NODE_TYPES.BigIntLiteral,
     experimental_utils_1.AST_NODE_TYPES.Identifier,
     experimental_utils_1.AST_NODE_TYPES.Literal,
     experimental_utils_1.AST_NODE_TYPES.MemberExpression,
-    experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression,
     experimental_utils_1.AST_NODE_TYPES.TemplateLiteral,
 ]);
 const ALLOWED_NON_COMPUTED_PROP_TYPES = new Set([
     experimental_utils_1.AST_NODE_TYPES.Identifier,
 ]);
 function isValidChainTarget(node, allowIdentifier) {
-    if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-        node.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) {
+    if (node.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression) {
+        return isValidChainTarget(node.expression, allowIdentifier);
+    }
+    if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
         const isObjectValid = ALLOWED_MEMBER_OBJECT_TYPES.has(node.object.type) &&
             // make sure to validate the expression is of our expected structure
             isValidChainTarget(node.object, true);
         const isPropertyValid = node.computed
             ? ALLOWED_COMPUTED_PROP_TYPES.has(node.property.type) &&
                 // make sure to validate the member expression is of our expected structure
-                (node.property.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-                    node.property.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression
+                (node.property.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression
                     ? isValidChainTarget(node.property, allowIdentifier)
                     : true)
             : ALLOWED_NON_COMPUTED_PROP_TYPES.has(node.property.type);
         return isObjectValid && isPropertyValid;
     }
-    if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-        node.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) {
+    if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
         return isValidChainTarget(node.callee, allowIdentifier);
     }
     if (allowIdentifier &&
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map
index bf51065..1ce75dd 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-optional-chain.js","sourceRoot":"","sources":["../../src/rules/prefer-optional-chain.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-optional-chain.js","sourceRoot":"","sources":["../../src/rules/prefer-optional-chain.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js
index bb2269b..1c79049 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -31,7 +43,7 @@
             },
         ],
         messages: {
-            shouldBeReadonly: 'Parameter should be a read only type',
+            shouldBeReadonly: 'Parameter should be a read only type.',
         },
     },
     defaultOptions: [
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map
index 58be343..be616c8 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-readonly-parameter-types.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly-parameter-types.ts"],"names":[],"mappings":";;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,kGAAkG;YACpG,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,wBAAwB,EAAE;wBACxB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,gBAAgB,EAAE,sCAAsC;SACzD;KACF;IACD,cAAc,EAAE;QACd;YACE,wBAAwB,EAAE,IAAI;SAC/B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,wBAAwB,EAAE,CAAC;QAC5C,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,OAAO;YACL,CAAC;gBACC,mCAAc,CAAC,uBAAuB;gBACtC,mCAAc,CAAC,mBAAmB;gBAClC,mCAAc,CAAC,kBAAkB;gBACjC,mCAAc,CAAC,0BAA0B;gBACzC,mCAAc,CAAC,+BAA+B;gBAC9C,mCAAc,CAAC,iBAAiB;gBAChC,mCAAc,CAAC,6BAA6B;gBAC5C,mCAAc,CAAC,cAAc;gBAC7B,mCAAc,CAAC,iBAAiB;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACX,IAS8B;gBAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IACE,CAAC,wBAAwB;wBACzB,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,EACjD;wBACA,SAAS;qBACV;oBAED,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;wBAC/C,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,KAAK,CAAC;oBACZ,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEtD,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"prefer-readonly-parameter-types.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly-parameter-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,kGAAkG;YACpG,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,wBAAwB,EAAE;wBACxB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,gBAAgB,EAAE,uCAAuC;SAC1D;KACF;IACD,cAAc,EAAE;QACd;YACE,wBAAwB,EAAE,IAAI;SAC/B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,wBAAwB,EAAE,CAAC;QAC5C,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,OAAO;YACL,CAAC;gBACC,mCAAc,CAAC,uBAAuB;gBACtC,mCAAc,CAAC,mBAAmB;gBAClC,mCAAc,CAAC,kBAAkB;gBACjC,mCAAc,CAAC,0BAA0B;gBACzC,mCAAc,CAAC,+BAA+B;gBAC9C,mCAAc,CAAC,iBAAiB;gBAChC,mCAAc,CAAC,6BAA6B;gBAC5C,mCAAc,CAAC,cAAc;gBAC7B,mCAAc,CAAC,iBAAiB;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACX,IAS8B;gBAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IACE,CAAC,wBAAwB;wBACzB,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,EACjD;wBACA,SAAS;qBACV;oBAED,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;wBAC/C,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,KAAK,CAAC;oBACZ,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEtD,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js
index 74d34ad..ede07d7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -202,7 +214,7 @@
     }
     addVariableModification(node) {
         const modifierType = this.checker.getTypeAtLocation(node.expression);
-        if (modifierType.symbol === undefined ||
+        if (!modifierType.getSymbol() ||
             !util_1.typeIsOrHasBaseType(modifierType, this.classType)) {
             return;
         }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map
index e550b41..1aae677 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js
new file mode 100644
index 0000000..d108479
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js
@@ -0,0 +1,92 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+const util = __importStar(require("../util"));
+const getMemberExpressionName = (member) => {
+    if (!member.computed) {
+        return member.property.name;
+    }
+    if (member.property.type === experimental_utils_1.AST_NODE_TYPES.Literal &&
+        typeof member.property.value === 'string') {
+        return member.property.value;
+    }
+    return null;
+};
+exports.default = util.createRule({
+    name: 'prefer-reduce-type-parameter',
+    meta: {
+        type: 'problem',
+        docs: {
+            category: 'Best Practices',
+            recommended: false,
+            description: 'Prefer using type parameter when calling `Array#reduce` instead of casting',
+            requiresTypeChecking: true,
+        },
+        messages: {
+            preferTypeParameter: 'Unnecessary cast: Array#reduce accepts a type parameter for the default value.',
+        },
+        fixable: 'code',
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const service = util.getParserServices(context);
+        const checker = service.program.getTypeChecker();
+        return {
+            'CallExpression > MemberExpression.callee'(callee) {
+                if (getMemberExpressionName(callee) !== 'reduce') {
+                    return;
+                }
+                const [, secondArg] = callee.parent.arguments;
+                if (callee.parent.arguments.length < 2 ||
+                    !util.isTypeAssertion(secondArg)) {
+                    return;
+                }
+                // Get the symbol of the `reduce` method.
+                const tsNode = service.esTreeNodeToTSNodeMap.get(callee.object);
+                const calleeObjType = util.getConstrainedTypeAtLocation(checker, tsNode);
+                // Check the owner type of the `reduce` method.
+                if (checker.isArrayType(calleeObjType)) {
+                    context.report({
+                        messageId: 'preferTypeParameter',
+                        node: secondArg,
+                        fix: fixer => [
+                            fixer.removeRange([
+                                secondArg.range[0],
+                                secondArg.expression.range[0],
+                            ]),
+                            fixer.removeRange([
+                                secondArg.expression.range[1],
+                                secondArg.range[1],
+                            ]),
+                            fixer.insertTextAfter(callee, `<${context
+                                .getSourceCode()
+                                .getText(secondArg.typeAnnotation)}>`),
+                        ],
+                    });
+                    return;
+                }
+            },
+        };
+    },
+});
+//# sourceMappingURL=prefer-reduce-type-parameter.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js.map
new file mode 100644
index 0000000..647e716
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-reduce-type-parameter.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prefer-reduce-type-parameter.js","sourceRoot":"","sources":["../../src/rules/prefer-reduce-type-parameter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAMhC,MAAM,uBAAuB,GAAG,CAC9B,MAAiC,EAClB,EAAE;IACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC7B;IAED,IACE,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EACzC;QACA,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC9B;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,WAAW,EACT,4EAA4E;YAC9E,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,mBAAmB,EACjB,gFAAgF;SACnF;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAEjD,OAAO;YACL,0CAA0C,CACxC,MAAgD;gBAEhD,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;oBAChD,OAAO;iBACR;gBAED,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBAE9C,IACE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBAClC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAChC;oBACA,OAAO;iBACR;gBAED,yCAAyC;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACrD,OAAO,EACP,MAAM,CACP,CAAC;gBAEF,+CAA+C;gBAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;oBACtC,OAAO,CAAC,MAAM,CAAC;wBACb,SAAS,EAAE,qBAAqB;wBAChC,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;4BACZ,KAAK,CAAC,WAAW,CAAC;gCAChB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gCAClB,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;6BAC9B,CAAC;4BACF,KAAK,CAAC,WAAW,CAAC;gCAChB,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gCAC7B,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;6BACnB,CAAC;4BACF,KAAK,CAAC,eAAe,CACnB,MAAM,EACN,IAAI,OAAO;iCACR,aAAa,EAAE;iCACf,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CACxC;yBACF;qBACF,CAAC,CAAC;oBAEH,OAAO;iBACR;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js
index 59ccb3f..a09b655 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js
@@ -1,6 +1,5 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-const eslint_utils_1 = require("eslint-utils");
 const util_1 = require("../util");
 exports.default = util_1.createRule({
     name: 'prefer-regexp-exec',
@@ -34,7 +33,7 @@
             "CallExpression[arguments.length=1] > MemberExpression.callee[property.name='match'][computed=false]"(node) {
                 const callNode = node.parent;
                 const arg = callNode.arguments[0];
-                const evaluated = eslint_utils_1.getStaticValue(arg, globalScope);
+                const evaluated = util_1.getStaticValue(arg, globalScope);
                 // Don't report regular expressions with global flag.
                 if (evaluated &&
                     evaluated.value instanceof RegExp &&
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map
index c9b3091..3aa5e73 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-regexp-exec.js","sourceRoot":"","sources":["../../src/rules/prefer-regexp-exec.ts"],"names":[],"mappings":";;AACA,+CAA8C;AAC9C,kCAAqE;AAErE,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,oBAAoB;IAC1B,cAAc,EAAE,EAAE;IAElB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,4FAA4F;YAC9F,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,yBAAyB,EAAE,yCAAyC;SACrE;QACD,MAAM,EAAE,EAAE;KACX;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAErD;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAqC;YACzD,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAC9C,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CACxC,CAAC;YACF,OAAO,kBAAW,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,QAAQ,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,qGAAqG,CACnG,IAA+B;gBAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAiC,CAAC;gBACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,6BAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAEnD,qDAAqD;gBACrD,IACE,SAAS;oBACT,SAAS,CAAC,KAAK,YAAY,MAAM;oBACjC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnC;oBACA,OAAO;iBACR;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,2BAA2B;qBACvC,CAAC,CAAC;oBACH,OAAO;iBACR;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"prefer-regexp-exec.js","sourceRoot":"","sources":["../../src/rules/prefer-regexp-exec.ts"],"names":[],"mappings":";;AACA,kCAKiB;AAEjB,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,oBAAoB;IAC1B,cAAc,EAAE,EAAE;IAElB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,4FAA4F;YAC9F,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,yBAAyB,EAAE,yCAAyC;SACrE;QACD,MAAM,EAAE,EAAE;KACX;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAErD;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAqC;YACzD,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAC9C,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CACxC,CAAC;YACF,OAAO,kBAAW,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,QAAQ,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,qGAAqG,CACnG,IAA+B;gBAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAiC,CAAC;gBACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,qBAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAEnD,qDAAqD;gBACrD,IACE,SAAS;oBACT,SAAS,CAAC,KAAK,YAAY,MAAM;oBACjC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnC;oBACA,OAAO;iBACR;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,2BAA2B;qBACvC,CAAC,CAAC;oBACH,OAAO;iBACR;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js
index fa41e4c..5b3e028 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js
@@ -1,7 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const regexpp_1 = require("regexpp");
 const util_1 = require("../util");
 const EQ_OPERATORS = /^[=!]=/;
@@ -14,7 +13,7 @@
         docs: {
             description: 'Enforce the use of `String#startsWith` and `String#endsWith` instead of other equivalent methods of checking substrings',
             category: 'Best Practices',
-            recommended: 'error',
+            recommended: false,
             requiresTypeChecking: true,
         },
         messages: {
@@ -42,7 +41,7 @@
          * @param node The node to check.
          */
         function isNull(node) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             return evaluated != null && evaluated.value === null;
         }
         /**
@@ -51,7 +50,7 @@
          * @param value The expected value of the `Literal` node.
          */
         function isNumber(node, value) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             return evaluated != null && evaluated.value === value;
         }
         /**
@@ -60,11 +59,10 @@
          * @param kind The method name to get a character.
          */
         function isCharacter(node) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             return (evaluated != null &&
                 typeof evaluated.value === 'string' &&
                 // checks if the string is a character long
-                // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
                 evaluated.value[0] === evaluated.value);
         }
         /**
@@ -107,13 +105,12 @@
          * @param expectedObjectNode The node which is expected as the receiver of `length` property.
          */
         function isLengthExpression(node, expectedObjectNode) {
-            if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression ||
-                node.type === experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression) {
-                return (eslint_utils_1.getPropertyName(node, globalScope) === 'length' &&
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
+                return (util_1.getPropertyName(node, globalScope) === 'length' &&
                     isSameTokens(node.object, expectedObjectNode));
             }
-            const evaluatedLength = eslint_utils_1.getStaticValue(node, globalScope);
-            const evaluatedString = eslint_utils_1.getStaticValue(expectedObjectNode, globalScope);
+            const evaluatedLength = util_1.getStaticValue(node, globalScope);
+            const evaluatedString = util_1.getStaticValue(expectedObjectNode, globalScope);
             return (evaluatedLength != null &&
                 evaluatedString != null &&
                 typeof evaluatedLength.value === 'number' &&
@@ -121,6 +118,21 @@
                 evaluatedLength.value === evaluatedString.value.length);
         }
         /**
+         * Check if a given node is a negative index expression
+         *
+         * E.g. `s.slice(- <expr>)`, `s.substring(s.length - <expr>)`
+         *
+         * @param node The node to check.
+         * @param expectedIndexedNode The node which is expected as the receiver of index expression.
+         */
+        function isNegativeIndexExpression(node, expectedIndexedNode) {
+            return ((node.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
+                node.operator === '-') ||
+                (node.type === experimental_utils_1.AST_NODE_TYPES.BinaryExpression &&
+                    node.operator === '-' &&
+                    isLengthExpression(node.left, expectedIndexedNode)));
+        }
+        /**
          * Check if a given node is the expression of the last index.
          *
          * E.g. `foo.length - 1`
@@ -144,7 +156,7 @@
          * @param node The member expression node to get.
          */
         function getPropertyRange(node) {
-            const dotOrOpenBracket = sourceCode.getTokenAfter(node.object, eslint_utils_1.isNotClosingParenToken);
+            const dotOrOpenBracket = sourceCode.getTokenAfter(node.object, util_1.isNotClosingParenToken);
             return [dotOrOpenBracket.range[0], node.range[1]];
         }
         /**
@@ -179,7 +191,7 @@
          * @param node The node to parse.
          */
         function parseRegExp(node) {
-            const evaluated = eslint_utils_1.getStaticValue(node, globalScope);
+            const evaluated = util_1.getStaticValue(node, globalScope);
             if (evaluated == null || !(evaluated.value instanceof RegExp)) {
                 return null;
             }
@@ -197,6 +209,22 @@
             }
             return { isEndsWith, isStartsWith, text };
         }
+        function getLeftNode(node) {
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression) {
+                return getLeftNode(node.expression);
+            }
+            let leftNode;
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
+                leftNode = node.callee;
+            }
+            else {
+                leftNode = node;
+            }
+            if (leftNode.type !== experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
+                throw new Error(`Expected a MemberExpression, got ${leftNode.type}`);
+            }
+            return leftNode;
+        }
         /**
          * Fix code with using the right operand as the search string.
          * For example: `foo.slice(0, 3) === 'bar'` → `foo.startsWith('bar')`
@@ -207,10 +235,7 @@
          */
         function* fixWithRightOperand(fixer, node, kind, isNegative, isOptional) {
             // left is CallExpression or MemberExpression.
-            const leftNode = (node.left.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                node.left.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression
-                ? node.left.callee
-                : node.left);
+            const leftNode = getLeftNode(node.left);
             const propertyRange = getPropertyRange(leftNode);
             if (isNegative) {
                 yield fixer.insertTextBefore(node, '!');
@@ -226,32 +251,37 @@
          * @param kind The kind of the report.
          * @param negative The flag to fix to negative condition.
          */
-        function* fixWithArgument(fixer, node, kind, negative, isOptional) {
-            const callNode = node.left;
-            const calleeNode = callNode.callee;
+        function* fixWithArgument(fixer, node, callNode, calleeNode, kind, negative, isOptional) {
             if (negative) {
                 yield fixer.insertTextBefore(node, '!');
             }
             yield fixer.replaceTextRange(getPropertyRange(calleeNode), `${isOptional ? '?.' : '.'}${kind}sWith`);
             yield fixer.removeRange([callNode.range[1], node.range[1]]);
         }
+        function getParent(node) {
+            var _a;
+            return util_1.nullThrows(((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ChainExpression
+                ? node.parent.parent
+                : node.parent, util_1.NullThrowsReasons.MissingParent);
+        }
         return {
             // foo[0] === "a"
             // foo.charAt(0) === "a"
             // foo[foo.length - 1] === "a"
             // foo.charAt(foo.length - 1) === "a"
             [[
-                'BinaryExpression > :matches(MemberExpression, OptionalMemberExpression).left[computed=true]',
-                'BinaryExpression > :matches(CallExpression, OptionalCallExpression).left > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="charAt"][computed=false]',
+                'BinaryExpression > MemberExpression.left[computed=true]',
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="charAt"][computed=false]',
+                'BinaryExpression > ChainExpression.left > MemberExpression[computed=true]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="charAt"][computed=false]',
             ].join(', ')](node) {
-                let parentNode = node.parent;
+                let parentNode = getParent(node);
                 let indexNode = null;
-                if (parentNode.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-                    parentNode.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) {
+                if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
                     if (parentNode.arguments.length === 1) {
                         indexNode = parentNode.arguments[0];
                     }
-                    parentNode = parentNode.parent;
+                    parentNode = getParent(parentNode);
                 }
                 else {
                     indexNode = node.property;
@@ -280,12 +310,14 @@
                 });
             },
             // foo.indexOf('bar') === 0
-            'BinaryExpression > :matches(CallExpression, OptionalCallExpression).left > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="indexOf"][computed=false]'(node) {
-                const callNode = node.parent;
-                const parentNode = callNode.parent;
+            [[
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="indexOf"][computed=false]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="indexOf"][computed=false]',
+            ].join(', ')](node) {
+                const callNode = getParent(node);
+                const parentNode = getParent(callNode);
                 if (callNode.arguments.length !== 1 ||
                     !isEqualityComparison(parentNode) ||
-                    parentNode.left !== callNode ||
                     !isNumber(parentNode.right, 0) ||
                     !isStringType(node.object)) {
                     return;
@@ -294,18 +326,20 @@
                     node: parentNode,
                     messageId: 'preferStartsWith',
                     fix(fixer) {
-                        return fixWithArgument(fixer, parentNode, 'start', parentNode.operator.startsWith('!'), node.optional);
+                        return fixWithArgument(fixer, parentNode, callNode, node, 'start', parentNode.operator.startsWith('!'), node.optional);
                     },
                 });
             },
             // foo.lastIndexOf('bar') === foo.length - 3
             // foo.lastIndexOf(bar) === foo.length - bar.length
-            'BinaryExpression > :matches(CallExpression, OptionalCallExpression).left > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="lastIndexOf"][computed=false]'(node) {
-                const callNode = node.parent;
-                const parentNode = callNode.parent;
+            [[
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="lastIndexOf"][computed=false]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="lastIndexOf"][computed=false]',
+            ].join(', ')](node) {
+                const callNode = getParent(node);
+                const parentNode = getParent(callNode);
                 if (callNode.arguments.length !== 1 ||
                     !isEqualityComparison(parentNode) ||
-                    parentNode.left !== callNode ||
                     parentNode.right.type !== experimental_utils_1.AST_NODE_TYPES.BinaryExpression ||
                     parentNode.right.operator !== '-' ||
                     !isLengthExpression(parentNode.right.left, node.object) ||
@@ -317,15 +351,18 @@
                     node: parentNode,
                     messageId: 'preferEndsWith',
                     fix(fixer) {
-                        return fixWithArgument(fixer, parentNode, 'end', parentNode.operator.startsWith('!'), node.optional);
+                        return fixWithArgument(fixer, parentNode, callNode, node, 'end', parentNode.operator.startsWith('!'), node.optional);
                     },
                 });
             },
             // foo.match(/^bar/) === null
             // foo.match(/bar$/) === null
-            'BinaryExpression > :matches(CallExpression, OptionalCallExpression).left > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="match"][computed=false]'(node) {
-                const callNode = node.parent;
-                const parentNode = callNode.parent;
+            [[
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="match"][computed=false]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="match"][computed=false]',
+            ].join(', ')](node) {
+                const callNode = getParent(node);
+                const parentNode = getParent(callNode);
                 if (!isEqualityComparison(parentNode) ||
                     !isNull(parentNode.right) ||
                     !isStringType(node.object)) {
@@ -358,19 +395,20 @@
             // foo.substring(foo.length - 3) === 'bar'
             // foo.substring(foo.length - 3, foo.length) === 'bar'
             [[
-                ':matches(CallExpression, OptionalCallExpression) > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="slice"][computed=false]',
-                ':matches(CallExpression, OptionalCallExpression) > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="substring"][computed=false]',
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="slice"][computed=false]',
+                'BinaryExpression > CallExpression.left > MemberExpression.callee[property.name="substring"][computed=false]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="slice"][computed=false]',
+                'BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name="substring"][computed=false]',
             ].join(', ')](node) {
-                const callNode = node.parent;
-                const parentNode = callNode.parent;
-                if (!isEqualityComparison(parentNode) ||
-                    parentNode.left !== callNode ||
-                    !isStringType(node.object)) {
+                const callNode = getParent(node);
+                const parentNode = getParent(callNode);
+                if (!isEqualityComparison(parentNode) || !isStringType(node.object)) {
                     return;
                 }
-                const isEndsWith = callNode.arguments.length === 1 ||
+                const isEndsWith = (callNode.arguments.length === 1 ||
                     (callNode.arguments.length === 2 &&
-                        isLengthExpression(callNode.arguments[1], node.object));
+                        isLengthExpression(callNode.arguments[1], node.object))) &&
+                    isNegativeIndexExpression(callNode.arguments[0], node.object);
                 const isStartsWith = !isEndsWith &&
                     callNode.arguments.length === 2 &&
                     isNumber(callNode.arguments[0], 0);
@@ -389,6 +427,9 @@
                                 typeof eqNode.right.value !== 'string')) {
                             return null;
                         }
+                        // code being checked is likely mistake:
+                        // unequal length of strings being checked for equality
+                        // or reliant on behavior of substring (negative indices interpreted as 0)
                         if (isStartsWith) {
                             if (!isLengthExpression(callNode.arguments[1], eqNode.right)) {
                                 return null;
@@ -414,8 +455,8 @@
             },
             // /^bar/.test(foo)
             // /bar$/.test(foo)
-            ':matches(CallExpression, OptionalCallExpression) > :matches(MemberExpression, OptionalMemberExpression).callee[property.name="test"][computed=false]'(node) {
-                const callNode = node.parent;
+            'CallExpression > MemberExpression.callee[property.name="test"][computed=false]'(node) {
+                const callNode = getParent(node);
                 const parsed = callNode.arguments.length === 1 ? parseRegExp(node.object) : null;
                 if (parsed == null) {
                     return;
@@ -432,17 +473,13 @@
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.TemplateLiteral &&
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.Identifier &&
                             argNode.type !== experimental_utils_1.AST_NODE_TYPES.MemberExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.CallExpression &&
-                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression;
+                            argNode.type !== experimental_utils_1.AST_NODE_TYPES.CallExpression;
                         yield fixer.removeRange([callNode.range[0], argNode.range[0]]);
                         if (needsParen) {
                             yield fixer.insertTextBefore(argNode, '(');
                             yield fixer.insertTextAfter(argNode, ')');
                         }
-                        yield fixer.insertTextAfter(argNode, `${callNode.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression
-                            ? '?.'
-                            : '.'}${methodName}(${JSON.stringify(text)}`);
+                        yield fixer.insertTextAfter(argNode, `${node.optional ? '?.' : '.'}${methodName}(${JSON.stringify(text)}`);
                     },
                 });
             },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map
index 9d229c0..55dc08b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map
@@ -1 +1 @@
-{"version":3,"file":"prefer-string-starts-ends-with.js","sourceRoot":"","sources":["../../src/rules/prefer-string-starts-ends-with.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"prefer-string-starts-ends-with.js","sourceRoot":"","sources":["../../src/rules/prefer-string-starts-ends-with.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js
new file mode 100644
index 0000000..e086529
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js
@@ -0,0 +1,81 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const util = __importStar(require("../util"));
+const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
+exports.default = util.createRule({
+    name: 'prefer-ts-expect-error',
+    meta: {
+        type: 'problem',
+        docs: {
+            description: 'Recommends using `@ts-expect-error` over `@ts-ignore`',
+            category: 'Best Practices',
+            recommended: false,
+        },
+        fixable: 'code',
+        messages: {
+            preferExpectErrorComment: 'Use "@ts-expect-error" to ensure an error is actually being suppressed.',
+        },
+        schema: [],
+    },
+    defaultOptions: [],
+    create(context) {
+        const tsIgnoreRegExpSingleLine = /^\s*\/?\s*@ts-ignore/;
+        const tsIgnoreRegExpMultiLine = /^\s*(?:\/|\*)*\s*@ts-ignore/;
+        const sourceCode = context.getSourceCode();
+        function isLineComment(comment) {
+            return comment.type === experimental_utils_1.AST_TOKEN_TYPES.Line;
+        }
+        function getLastCommentLine(comment) {
+            if (isLineComment(comment)) {
+                return comment.value;
+            }
+            // For multiline comments - we look at only the last line.
+            const commentlines = comment.value.split('\n');
+            return commentlines[commentlines.length - 1];
+        }
+        function isValidTsIgnorePresent(comment) {
+            const line = getLastCommentLine(comment);
+            return isLineComment(comment)
+                ? tsIgnoreRegExpSingleLine.test(line)
+                : tsIgnoreRegExpMultiLine.test(line);
+        }
+        return {
+            Program() {
+                const comments = sourceCode.getAllComments();
+                comments.forEach(comment => {
+                    if (isValidTsIgnorePresent(comment)) {
+                        const lineCommentRuleFixer = (fixer) => fixer.replaceText(comment, `//${comment.value.replace('@ts-ignore', '@ts-expect-error')}`);
+                        const blockCommentRuleFixer = (fixer) => fixer.replaceText(comment, `/*${comment.value.replace('@ts-ignore', '@ts-expect-error')}*/`);
+                        context.report({
+                            node: comment,
+                            messageId: 'preferExpectErrorComment',
+                            fix: isLineComment(comment)
+                                ? lineCommentRuleFixer
+                                : blockCommentRuleFixer,
+                        });
+                    }
+                });
+            },
+        };
+    },
+});
+//# sourceMappingURL=prefer-ts-expect-error.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map
new file mode 100644
index 0000000..4680747
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prefer-ts-expect-error.js","sourceRoot":"","sources":["../../src/rules/prefer-ts-expect-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,8EAG+C;AAQ/C,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,wBAAwB,EACtB,yEAAyE;SAC5E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;QACxD,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,aAAa,CAAC,OAAyB;YAC9C,OAAO,OAAO,CAAC,IAAI,KAAK,oCAAe,CAAC,IAAI,CAAC;QAC/C,CAAC;QAED,SAAS,kBAAkB,CAAC,OAAyB;YACnD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC1B,OAAO,OAAO,CAAC,KAAK,CAAC;aACtB;YAED,0DAA0D;YAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,SAAS,sBAAsB,CAAC,OAAyB;YACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,aAAa,CAAC,OAAO,CAAC;gBAC3B,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE;wBACnC,MAAM,oBAAoB,GAAG,CAAC,KAAgB,EAAW,EAAE,CACzD,KAAK,CAAC,WAAW,CACf,OAAO,EACP,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAC/D,CAAC;wBAEJ,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAW,EAAE,CAC1D,KAAK,CAAC,WAAW,CACf,OAAO,EACP,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CACxB,YAAY,EACZ,kBAAkB,CACnB,IAAI,CACN,CAAC;wBAEJ,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,0BAA0B;4BACrC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC;gCACzB,CAAC,CAAC,oBAAoB;gCACtB,CAAC,CAAC,qBAAqB;yBAC1B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js
index c1dcaf5..b216a9c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map
index 7d8cb4e..bfd56d5 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map
@@ -1 +1 @@
-{"version":3,"file":"promise-function-async.js","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"promise-function-async.js","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js
index 34653d8..17e820c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js
@@ -1,14 +1,27 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const quotes_1 = __importDefault(require("eslint/lib/rules/quotes"));
@@ -24,7 +37,9 @@
             extendsBaseRule: true,
         },
         fixable: 'code',
-        messages: quotes_1.default.meta.messages,
+        messages: (_a = quotes_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            wrongQuotes: 'Strings must use {{description}}.',
+        },
         schema: quotes_1.default.meta.schema,
     },
     defaultOptions: [
@@ -37,14 +52,14 @@
     create(context, [option]) {
         const rules = quotes_1.default.create(context);
         function isAllowedAsNonBacktick(node) {
-            var _a;
             const parent = node.parent;
-            switch ((_a = parent) === null || _a === void 0 ? void 0 : _a.type) {
+            switch (parent === null || parent === void 0 ? void 0 : parent.type) {
                 case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
                 case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature:
                 case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature:
                 case experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration:
                 case experimental_utils_1.AST_NODE_TYPES.TSLiteralType:
+                case experimental_utils_1.AST_NODE_TYPES.TSExternalModuleReference:
                     return true;
                 case experimental_utils_1.AST_NODE_TYPES.TSEnumMember:
                     return node === parent.id;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map
index 95dee9c..de3a0e5 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map
@@ -1 +1 @@
-{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/rules/quotes.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qEAA+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EACT,0EAA0E;YAC5E,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,gBAAQ,CAAC,IAAI,CAAC,QAAQ;QAChC,MAAM,EAAE,gBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,KAAK;SACnB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,sBAAsB,CAAC,IAAsB;;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,cAAQ,MAAM,0CAAE,IAAI,EAAE;gBACpB,KAAK,mCAAc,CAAC,0BAA0B,CAAC;gBAC/C,KAAK,mCAAc,CAAC,iBAAiB,CAAC;gBACtC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,CAAC;gBAEd,KAAK,mCAAc,CAAC,YAAY;oBAC9B,OAAO,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAE5B,KAAK,mCAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;gBAE7B;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAED,OAAO;YACL,OAAO,CAAC,IAAI;gBACV,IAAI,MAAM,KAAK,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE;oBACzD,OAAO;iBACR;gBAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/rules/quotes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qEAA+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EACT,0EAA0E;YAC5E,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,QAAE,gBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,mCAAmC;SACjD;QACD,MAAM,EAAE,gBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,KAAK;SACnB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,sBAAsB,CAAC,IAAsB;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;gBACpB,KAAK,mCAAc,CAAC,0BAA0B,CAAC;gBAC/C,KAAK,mCAAc,CAAC,iBAAiB,CAAC;gBACtC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,aAAa,CAAC;gBAClC,KAAK,mCAAc,CAAC,yBAAyB;oBAC3C,OAAO,IAAI,CAAC;gBAEd,KAAK,mCAAc,CAAC,YAAY;oBAC9B,OAAO,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAE5B,KAAK,mCAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;gBAE7B;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAED,OAAO;YACL,OAAO,CAAC,IAAI;gBACV,IAAI,MAAM,KAAK,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE;oBACzD,OAAO;iBACR;gBAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js
index 797d091..e71e0d5 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js
@@ -1,17 +1,32 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-const ts = __importStar(require("typescript"));
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
     name: 'require-array-sort-compare',
-    defaultOptions: [],
+    defaultOptions: [
+        {
+            ignoreStringArrays: false,
+        },
+    ],
     meta: {
         type: 'problem',
         docs: {
@@ -23,28 +38,41 @@
         messages: {
             requireCompare: "Require 'compare' argument.",
         },
-        schema: [],
+        schema: [
+            {
+                type: 'object',
+                properties: {
+                    ignoreStringArrays: {
+                        type: 'boolean',
+                    },
+                },
+            },
+        ],
     },
-    create(context) {
+    create(context, [options]) {
         const service = util.getParserServices(context);
         const checker = service.program.getTypeChecker();
+        /**
+         * Check if a given node is an array which all elements are string.
+         * @param node
+         */
+        function isStringArrayNode(node) {
+            const type = checker.getTypeAtLocation(service.esTreeNodeToTSNodeMap.get(node));
+            if (checker.isArrayType(type) || checker.isTupleType(type)) {
+                const typeArgs = checker.getTypeArguments(type);
+                return typeArgs.every(arg => util.getTypeName(checker, arg) === 'string');
+            }
+            return false;
+        }
         return {
-            ":matches(CallExpression, OptionalCallExpression)[arguments.length=0] > :matches(MemberExpression, OptionalMemberExpression)[property.name='sort'][computed=false]"(node) {
-                // Get the symbol of the `sort` method.
-                const tsNode = service.esTreeNodeToTSNodeMap.get(node);
-                const sortSymbol = checker.getSymbolAtLocation(tsNode);
-                if (sortSymbol == null) {
+            "CallExpression[arguments.length=0] > MemberExpression[property.name='sort'][computed=false]"(callee) {
+                const tsNode = service.esTreeNodeToTSNodeMap.get(callee.object);
+                const calleeObjType = util.getConstrainedTypeAtLocation(checker, tsNode);
+                if (options.ignoreStringArrays && isStringArrayNode(callee.object)) {
                     return;
                 }
-                // Check the owner type of the `sort` method.
-                for (const methodDecl of sortSymbol.declarations) {
-                    const typeDecl = methodDecl.parent;
-                    if (ts.isInterfaceDeclaration(typeDecl) &&
-                        ts.isSourceFile(typeDecl.parent) &&
-                        typeDecl.name.escapedText === 'Array') {
-                        context.report({ node: node.parent, messageId: 'requireCompare' });
-                        return;
-                    }
+                if (util.isTypeArrayTypeOrUnionOfArrayTypes(calleeObjType, checker)) {
+                    context.report({ node: callee.parent, messageId: 'requireCompare' });
                 }
             },
         };
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js.map
index 1e1d48d..1a04cc4 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js.map
@@ -1 +1 @@
-{"version":3,"file":"require-array-sort-compare.js","sourceRoot":"","sources":["../../src/rules/require-array-sort-compare.ts"],"names":[],"mappings":";;;;;;;;;AACA,+CAAiC;AACjC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,4BAA4B;IAClC,cAAc,EAAE,EAAE;IAElB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,6BAA6B;SAC9C;QACD,MAAM,EAAE,EAAE;KACX;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAEjD,OAAO;YACL,mKAAmK,CACjK,IAAmE;gBAEnE,uCAAuC;gBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACvD,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,OAAO;iBACR;gBAED,6CAA6C;gBAC7C,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE;oBAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;oBACnC,IACE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC;wBACnC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,EACrC;wBACA,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;wBACpE,OAAO;qBACR;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"require-array-sort-compare.js","sourceRoot":"","sources":["../../src/rules/require-array-sort-compare.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,4BAA4B;IAClC,cAAc,EAAE;QACd;YACE,kBAAkB,EAAE,KAAK;SAC1B;KACF;IAED,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,6BAA6B;SAC9C;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;KACF;IAED,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAEjD;;;WAGG;QACH,SAAS,iBAAiB,CAAC,IAAqC;YAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CACpC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CACxC,CAAC;YACF,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAChD,OAAO,QAAQ,CAAC,KAAK,CACnB,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,QAAQ,CACnD,CAAC;aACH;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL,6FAA6F,CAC3F,MAAiC;gBAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CACrD,OAAO,EACP,MAAM,CACP,CAAC;gBAEF,IAAI,OAAO,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBAClE,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,kCAAkC,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE;oBACnE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;iBACvE;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js
index 0da4691..3bdbc09 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js
@@ -1,14 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const tsutils = __importStar(require("tsutils"));
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
@@ -41,6 +52,8 @@
                 upper: scopeInfo,
                 hasAwait: false,
                 hasAsync: node.async,
+                isGen: node.generator || false,
+                isAsyncYield: false,
             };
         }
         /**
@@ -52,13 +65,16 @@
                 // this shouldn't ever happen, as we have to exit a function after we enter it
                 return;
             }
-            if (node.async && !scopeInfo.hasAwait && !isEmptyFunction(node)) {
+            if (node.async &&
+                !scopeInfo.hasAwait &&
+                !isEmptyFunction(node) &&
+                !(scopeInfo.isGen && scopeInfo.isAsyncYield)) {
                 context.report({
                     node,
                     loc: getFunctionHeadLoc(node, sourceCode),
                     messageId: 'missingAwait',
                     data: {
-                        name: util.upperCaseFirst(eslint_utils_1.getFunctionNameWithKind(node)),
+                        name: util.upperCaseFirst(util.getFunctionNameWithKind(node)),
                     },
                 });
             }
@@ -80,6 +96,28 @@
             }
             scopeInfo.hasAwait = true;
         }
+        /**
+         * mark `scopeInfo.isAsyncYield` to `true` if its a generator
+         * function and the delegate is `true`
+         */
+        function markAsHasDelegateGen(node) {
+            var _a;
+            if (!scopeInfo || !scopeInfo.isGen || !node.argument) {
+                return;
+            }
+            if (((_a = node === null || node === void 0 ? void 0 : node.argument) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.Literal) {
+                // making this `false` as for literals we don't need to check the definition
+                // eg : async function* run() { yield* 1 }
+                scopeInfo.isAsyncYield = false;
+            }
+            const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node === null || node === void 0 ? void 0 : node.argument);
+            const type = checker.getTypeAtLocation(tsNode);
+            const symbol = type.getSymbol();
+            // async function* test1() {yield* asyncGenerator() }
+            if ((symbol === null || symbol === void 0 ? void 0 : symbol.getName()) === 'AsyncGenerator') {
+                scopeInfo.isAsyncYield = true;
+            }
+        }
         return {
             FunctionDeclaration: enterFunction,
             FunctionExpression: enterFunction,
@@ -89,6 +127,7 @@
             'ArrowFunctionExpression:exit': exitFunction,
             AwaitExpression: markAsHasAwait,
             'ForOfStatement[await = true]': markAsHasAwait,
+            'YieldExpression[delegate = true]': markAsHasDelegateGen,
             // check body-less async arrow function.
             // ignore `async () => await foo` because it's obviously correct
             'ArrowFunctionExpression[async = true] > :not(BlockStatement, AwaitExpression)'(node) {
@@ -121,8 +160,8 @@
  */
 function getOpeningParenOfParams(node, sourceCode) {
     return util.nullThrows(node.id
-        ? sourceCode.getTokenAfter(node.id, eslint_utils_1.isOpeningParenToken)
-        : sourceCode.getFirstToken(node, eslint_utils_1.isOpeningParenToken), util.NullThrowsReasons.MissingToken('(', node.type));
+        ? sourceCode.getTokenAfter(node.id, util.isOpeningParenToken)
+        : sourceCode.getFirstToken(node, util.isOpeningParenToken), util.NullThrowsReasons.MissingToken('(', node.type));
 }
 // https://github.com/eslint/eslint/blob/03a69dbe86d5b5768a310105416ae726822e3c1c/lib/rules/utils/ast-utils.js#L1220-L1242
 /**
@@ -133,7 +172,7 @@
     let start = null;
     let end = null;
     if (node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
-        const arrowToken = util.nullThrows(sourceCode.getTokenBefore(node.body, eslint_utils_1.isArrowToken), util.NullThrowsReasons.MissingToken('=>', node.type));
+        const arrowToken = util.nullThrows(sourceCode.getTokenBefore(node.body, util.isArrowToken), util.NullThrowsReasons.MissingToken('=>', node.type));
         start = arrowToken.loc.start;
         end = arrowToken.loc.end;
     }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map
index 5c5e6ca..bab6931 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map
@@ -1 +1 @@
-{"version":3,"file":"require-await.js","sourceRoot":"","sources":["../../src/rules/require-await.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"require-await.js","sourceRoot":"","sources":["../../src/rules/require-await.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js
index b00a983..aa2ba07 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -16,7 +28,7 @@
         docs: {
             description: 'When adding two variables, operands must both be of type number or of type string',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
             requiresTypeChecking: true,
         },
         messages: {
@@ -48,13 +60,6 @@
          * Helper function to get base type of node
          */
         function getBaseTypeOfLiteralType(type) {
-            const constraint = type.getConstraint();
-            if (constraint &&
-                // for generic types with union constraints, it will return itself from getConstraint
-                // so we have to guard against infinite recursion...
-                constraint !== type) {
-                return getBaseTypeOfLiteralType(constraint);
-            }
             if (type.isNumberLiteral()) {
                 return 'number';
             }
@@ -83,7 +88,7 @@
          */
         function getNodeType(node) {
             const tsNode = service.esTreeNodeToTSNodeMap.get(node);
-            const type = typeChecker.getTypeAtLocation(tsNode);
+            const type = util.getConstrainedTypeAtLocation(typeChecker, tsNode);
             return getBaseTypeOfLiteralType(type);
         }
         function checkPlusOperands(node) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map
index ffacf1d..df5c3ce 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map
@@ -1 +1 @@
-{"version":3,"file":"restrict-plus-operands.js","sourceRoot":"","sources":["../../src/rules/restrict-plus-operands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"restrict-plus-operands.js","sourceRoot":"","sources":["../../src/rules/restrict-plus-operands.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js
index b0bb7b9..e72f791 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,40 +29,52 @@
         docs: {
             description: 'Enforce template literal expressions to be of string type',
             category: 'Best Practices',
-            recommended: false,
+            recommended: 'error',
             requiresTypeChecking: true,
         },
         messages: {
-            invalidType: 'Invalid type of template literal expression.',
+            invalidType: 'Invalid type "{{type}}" of template literal expression.',
         },
         schema: [
             {
                 type: 'object',
                 properties: {
-                    allowBoolean: { type: 'boolean' },
-                    allowNullable: { type: 'boolean' },
                     allowNumber: { type: 'boolean' },
+                    allowBoolean: { type: 'boolean' },
+                    allowAny: { type: 'boolean' },
+                    allowNullish: { type: 'boolean' },
                 },
             },
         ],
     },
-    defaultOptions: [{}],
+    defaultOptions: [
+        {
+            allowNumber: true,
+        },
+    ],
     create(context, [options]) {
         const service = util.getParserServices(context);
         const typeChecker = service.program.getTypeChecker();
-        const allowedTypes = [
-            'string',
-            ...(options.allowNumber ? ['number', 'bigint'] : []),
-            ...(options.allowBoolean ? ['boolean'] : []),
-            ...(options.allowNullable ? ['null', 'undefined'] : []),
-        ];
-        function isAllowedType(types) {
-            for (const type of types) {
-                if (!allowedTypes.includes(type)) {
-                    return false;
-                }
+        function isUnderlyingTypePrimitive(type) {
+            if (util.isTypeFlagSet(type, ts.TypeFlags.StringLike)) {
+                return true;
             }
-            return true;
+            if (options.allowNumber &&
+                util.isTypeFlagSet(type, ts.TypeFlags.NumberLike | ts.TypeFlags.BigIntLike)) {
+                return true;
+            }
+            if (options.allowBoolean &&
+                util.isTypeFlagSet(type, ts.TypeFlags.BooleanLike)) {
+                return true;
+            }
+            if (options.allowAny && util.isTypeAnyType(type)) {
+                return true;
+            }
+            if (options.allowNullish &&
+                util.isTypeFlagSet(type, ts.TypeFlags.Null | ts.TypeFlags.Undefined)) {
+                return true;
+            }
+            return false;
         }
         return {
             TemplateLiteral(node) {
@@ -58,64 +82,29 @@
                 if (node.parent.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression) {
                     return;
                 }
-                for (const expr of node.expressions) {
-                    const type = getNodeType(expr);
-                    if (!isAllowedType(type)) {
+                for (const expression of node.expressions) {
+                    const expressionType = util.getConstrainedTypeAtLocation(typeChecker, service.esTreeNodeToTSNodeMap.get(expression));
+                    if (!isInnerUnionOrIntersectionConformingTo(expressionType, isUnderlyingTypePrimitive)) {
                         context.report({
-                            node: expr,
+                            node: expression,
                             messageId: 'invalidType',
+                            data: { type: typeChecker.typeToString(expressionType) },
                         });
                     }
                 }
             },
         };
-        /**
-         * Helper function to get base type of node
-         * @param node the node to be evaluated.
-         */
-        function getNodeType(node) {
-            const tsNode = service.esTreeNodeToTSNodeMap.get(node);
-            const type = typeChecker.getTypeAtLocation(tsNode);
-            return getBaseType(type);
-        }
-        function getBaseType(type) {
-            const constraint = type.getConstraint();
-            if (constraint &&
-                // for generic types with union constraints, it will return itself
-                constraint !== type) {
-                return getBaseType(constraint);
+        function isInnerUnionOrIntersectionConformingTo(type, predicate) {
+            return rec(type);
+            function rec(innerType) {
+                if (innerType.isUnion()) {
+                    return innerType.types.every(rec);
+                }
+                if (innerType.isIntersection()) {
+                    return innerType.types.some(rec);
+                }
+                return predicate(innerType);
             }
-            if (type.isStringLiteral()) {
-                return ['string'];
-            }
-            if (type.isNumberLiteral()) {
-                return ['number'];
-            }
-            if (type.flags & ts.TypeFlags.BigIntLiteral) {
-                return ['bigint'];
-            }
-            if (type.flags & ts.TypeFlags.BooleanLiteral) {
-                return ['boolean'];
-            }
-            if (type.flags & ts.TypeFlags.Null) {
-                return ['null'];
-            }
-            if (type.flags & ts.TypeFlags.Undefined) {
-                return ['undefined'];
-            }
-            if (type.isUnion()) {
-                return type.types
-                    .map(getBaseType)
-                    .reduce((all, array) => [...all, ...array], []);
-            }
-            const stringType = typeChecker.typeToString(type);
-            if (stringType === 'string' ||
-                stringType === 'number' ||
-                stringType === 'bigint' ||
-                stringType === 'boolean') {
-                return [stringType];
-            }
-            return ['other'];
         }
     },
 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js.map
index be2c177..2e51705 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-template-expressions.js.map
@@ -1 +1 @@
-{"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js
index 193ecab..910c332 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -24,9 +36,9 @@
         fixable: 'code',
         type: 'problem',
         messages: {
-            nonPromiseAwait: 'returning an awaited value that is not a promise is not allowed',
-            disallowedPromiseAwait: 'returning an awaited promise is not allowed in this context',
-            requiredPromiseAwait: 'returning an awaited promise is required in this context',
+            nonPromiseAwait: 'Returning an awaited value that is not a promise is not allowed.',
+            disallowedPromiseAwait: 'Returning an awaited promise is not allowed in this context.',
+            requiredPromiseAwait: 'Returning an awaited promise is required in this context.',
         },
         schema: [
             {
@@ -39,27 +51,61 @@
         const parserServices = util.getParserServices(context);
         const checker = parserServices.program.getTypeChecker();
         const sourceCode = context.getSourceCode();
-        function inTryCatch(node) {
+        let scopeInfo = null;
+        function enterFunction(node) {
+            scopeInfo = {
+                hasAsync: node.async,
+            };
+        }
+        function inTry(node) {
             let ancestor = node.parent;
             while (ancestor && !ts.isFunctionLike(ancestor)) {
-                if (tsutils.isTryStatement(ancestor) ||
-                    tsutils.isCatchClause(ancestor)) {
+                if (tsutils.isTryStatement(ancestor)) {
                     return true;
                 }
                 ancestor = ancestor.parent;
             }
             return false;
         }
+        function inCatch(node) {
+            let ancestor = node.parent;
+            while (ancestor && !ts.isFunctionLike(ancestor)) {
+                if (tsutils.isCatchClause(ancestor)) {
+                    return true;
+                }
+                ancestor = ancestor.parent;
+            }
+            return false;
+        }
+        function isReturnPromiseInFinally(node) {
+            let ancestor = node.parent;
+            while (ancestor && !ts.isFunctionLike(ancestor)) {
+                if (tsutils.isTryStatement(ancestor.parent) &&
+                    tsutils.isBlock(ancestor) &&
+                    ancestor.parent.end === ancestor.end) {
+                    return true;
+                }
+                ancestor = ancestor.parent;
+            }
+            return false;
+        }
+        function hasFinallyBlock(node) {
+            let ancestor = node.parent;
+            while (ancestor && !ts.isFunctionLike(ancestor)) {
+                if (tsutils.isTryStatement(ancestor)) {
+                    return !!ancestor.finallyBlock;
+                }
+                ancestor = ancestor.parent;
+            }
+            return false;
+        }
         // function findTokensToRemove()
         function removeAwait(fixer, node) {
-            const awaitNode = node.type === experimental_utils_1.AST_NODE_TYPES.ReturnStatement
-                ? node.argument
-                : node.body;
             // Should always be an await node; but let's be safe.
-            /* istanbul ignore if */ if (!util.isAwaitExpression(awaitNode)) {
+            /* istanbul ignore if */ if (!util.isAwaitExpression(node)) {
                 return null;
             }
-            const awaitToken = sourceCode.getFirstToken(awaitNode, util.isAwaitKeyword);
+            const awaitToken = sourceCode.getFirstToken(node, util.isAwaitKeyword);
             // Should always be the case; but let's be safe.
             /* istanbul ignore if */ if (!awaitToken) {
                 return null;
@@ -76,14 +122,7 @@
             return fixer.removeRange([startAt, endAt]);
         }
         function insertAwait(fixer, node) {
-            const targetNode = node.type === experimental_utils_1.AST_NODE_TYPES.ReturnStatement
-                ? node.argument
-                : node.body;
-            // There should always be a target node; but let's be safe.
-            /* istanbul ignore if */ if (!targetNode) {
-                return null;
-            }
-            return fixer.insertTextBefore(targetNode, 'await ');
+            return fixer.insertTextBefore(node, 'await ');
         }
         function test(node, expression) {
             let child;
@@ -128,7 +167,7 @@
                 return;
             }
             if (option === 'in-try-catch') {
-                const isInTryCatch = inTryCatch(expression);
+                const isInTryCatch = inTry(expression) || inCatch(expression);
                 if (isAwait && !isInTryCatch) {
                     context.report({
                         messageId: 'disallowedPromiseAwait',
@@ -137,6 +176,12 @@
                     });
                 }
                 else if (!isAwait && isInTryCatch) {
+                    if (inCatch(expression) && !hasFinallyBlock(expression)) {
+                        return;
+                    }
+                    if (isReturnPromiseInFinally(expression)) {
+                        return;
+                    }
                     context.report({
                         messageId: 'requiredPromiseAwait',
                         node,
@@ -146,20 +191,35 @@
                 return;
             }
         }
+        function findPossiblyReturnedNodes(node) {
+            if (node.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression) {
+                return [
+                    ...findPossiblyReturnedNodes(node.alternate),
+                    ...findPossiblyReturnedNodes(node.consequent),
+                ];
+            }
+            return [node];
+        }
         return {
+            FunctionDeclaration: enterFunction,
+            FunctionExpression: enterFunction,
+            ArrowFunctionExpression: enterFunction,
             'ArrowFunctionExpression[async = true]:exit'(node) {
                 if (node.body.type !== experimental_utils_1.AST_NODE_TYPES.BlockStatement) {
-                    const expression = parserServices.esTreeNodeToTSNodeMap.get(node.body);
-                    test(node, expression);
+                    findPossiblyReturnedNodes(node.body).forEach(node => {
+                        const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
+                        test(node, tsNode);
+                    });
                 }
             },
             ReturnStatement(node) {
-                const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
-                const { expression } = originalNode;
-                if (!expression) {
+                if (!scopeInfo || !scopeInfo.hasAsync || !node.argument) {
                     return;
                 }
-                test(node, expression);
+                findPossiblyReturnedNodes(node.argument).forEach(node => {
+                    const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
+                    test(node, tsNode);
+                });
             },
         };
     },
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map
index e765cc7..3806c18 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map
@@ -1 +1 @@
-{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js
index 9a3cf0e..7e2ccde 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js
@@ -1,14 +1,27 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+var _a;
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const semi_1 = __importDefault(require("eslint/lib/rules/semi"));
@@ -26,7 +39,10 @@
         },
         fixable: 'code',
         schema: semi_1.default.meta.schema,
-        messages: semi_1.default.meta.messages,
+        messages: (_a = semi_1.default.meta.messages) !== null && _a !== void 0 ? _a : {
+            missingSemi: 'Missing semicolon.',
+            extraSemi: 'Extra semicolon.',
+        },
     },
     defaultOptions: [
         'always',
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map
index 5295d55..5c2e0f7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map
@@ -1 +1 @@
-{"version":3,"file":"semi.js","sourceRoot":"","sources":["../../src/rules/semi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iEAA6C;AAC7C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,cAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,cAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,sBAAsB,EAAE,KAAK;YAC7B,gCAAgC,EAAE,KAAK;SACxC;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,cAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,mBAE/B,CAAC;QAEF;;;;;;;UAOE;QACF,MAAM,YAAY,GAAG;YACnB,mCAAc,CAAC,aAAa;YAC5B,mCAAc,CAAC,uBAAuB;YACtC,mCAAc,CAAC,0BAA0B;YACzC,mCAAc,CAAC,iBAAiB;YAChC,mCAAc,CAAC,kBAAkB;YACjC,mCAAc,CAAC,yBAAyB;YACxC,mCAAc,CAAC,sBAAsB;SACtC,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,GAAG,CAAC,IAAc,CAAC,GAAG,iBAAiB,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,qDACK,KAAK,GACL,YAAY,KACf,wBAAwB,CAAC,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,EAAE;oBACnE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;iBACtC;YACH,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"semi.js","sourceRoot":"","sources":["../../src/rules/semi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iEAA6C;AAC7C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,cAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,cAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,kBAAkB;SAC9B;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,sBAAsB,EAAE,KAAK;YAC7B,gCAAgC,EAAE,KAAK;SACxC;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,cAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,mBAE/B,CAAC;QAEF;;;;;;;UAOE;QACF,MAAM,YAAY,GAAG;YACnB,mCAAc,CAAC,aAAa;YAC5B,mCAAc,CAAC,uBAAuB;YACtC,mCAAc,CAAC,0BAA0B;YACzC,mCAAc,CAAC,iBAAiB;YAChC,mCAAc,CAAC,kBAAkB;YACjC,mCAAc,CAAC,yBAAyB;YACxC,mCAAc,CAAC,sBAAsB;SACtC,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,GAAG,CAAC,IAAc,CAAC,GAAG,iBAAiB,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,qDACK,KAAK,GACL,YAAY,KACf,wBAAwB,CAAC,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,EAAE;oBACnE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;iBACtC;YACH,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js
index ae95604..3d97723 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js
@@ -1,14 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_utils_1 = require("eslint-utils");
 const util = __importStar(require("../util"));
 exports.default = util.createRule({
     name: 'space-before-function-paren',
@@ -61,11 +72,12 @@
          * @returns {boolean} Whether the function has a name.
          */
         function isNamedFunction(node) {
-            if (node.id) {
+            if (node.id != null) {
                 return true;
             }
             const parent = node.parent;
             return (parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition ||
+                parent.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition ||
                 (parent.type === experimental_utils_1.AST_NODE_TYPES.Property &&
                     (parent.kind === 'get' || parent.kind === 'set' || parent.method)));
         }
@@ -79,16 +91,16 @@
             if (node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
                 // Always ignore non-async functions and arrow functions without parens, e.g. async foo => bar
                 if (node.async &&
-                    eslint_utils_1.isOpeningParenToken(sourceCode.getFirstToken(node, { skip: 1 }))) {
-                    return _a = overrideConfig.asyncArrow, (_a !== null && _a !== void 0 ? _a : baseConfig);
+                    util.isOpeningParenToken(sourceCode.getFirstToken(node, { skip: 1 }))) {
+                    return (_a = overrideConfig.asyncArrow) !== null && _a !== void 0 ? _a : baseConfig;
                 }
             }
             else if (isNamedFunction(node)) {
-                return _b = overrideConfig.named, (_b !== null && _b !== void 0 ? _b : baseConfig);
+                return (_b = overrideConfig.named) !== null && _b !== void 0 ? _b : baseConfig;
                 // `generator-star-spacing` should warn anonymous generators. E.g. `function* () {}`
             }
             else if (!node.generator) {
-                return _c = overrideConfig.anonymous, (_c !== null && _c !== void 0 ? _c : baseConfig);
+                return (_c = overrideConfig.anonymous) !== null && _c !== void 0 ? _c : baseConfig;
             }
             return 'ignore';
         }
@@ -108,14 +120,17 @@
                 rightToken = sourceCode.getTokenAfter(leftToken);
             }
             else {
-                rightToken = sourceCode.getFirstToken(node, eslint_utils_1.isOpeningParenToken);
+                rightToken = sourceCode.getFirstToken(node, util.isOpeningParenToken);
                 leftToken = sourceCode.getTokenBefore(rightToken);
             }
             const hasSpacing = sourceCode.isSpaceBetweenTokens(leftToken, rightToken);
             if (hasSpacing && functionConfig === 'never') {
                 context.report({
                     node,
-                    loc: leftToken.loc.end,
+                    loc: {
+                        start: leftToken.loc.end,
+                        end: rightToken.loc.start,
+                    },
                     messageId: 'unexpected',
                     fix: fixer => fixer.removeRange([leftToken.range[1], rightToken.range[0]]),
                 });
@@ -125,7 +140,7 @@
                 (!node.typeParameters || node.id)) {
                 context.report({
                     node,
-                    loc: leftToken.loc.end,
+                    loc: rightToken.loc,
                     messageId: 'missing',
                     fix: fixer => fixer.insertTextAfter(leftToken, ' '),
                 });
@@ -135,6 +150,8 @@
             ArrowFunctionExpression: checkFunction,
             FunctionDeclaration: checkFunction,
             FunctionExpression: checkFunction,
+            TSEmptyBodyFunctionExpression: checkFunction,
+            TSDeclareFunction: checkFunction,
         };
     },
 });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map
index 91b155a..4f69e19 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map
@@ -1 +1 @@
-{"version":3,"file":"space-before-function-paren.js","sourceRoot":"","sources":["../../src/rules/space-before-function-paren.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"space-before-function-paren.js","sourceRoot":"","sources":["../../src/rules/space-before-function-paren.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js
index b18ba77..3f2454c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,13 +37,14 @@
             {
                 type: 'object',
                 properties: {
-                    ignoreRhs: {
-                        type: 'boolean',
-                    },
-                    allowNullable: {
-                        type: 'boolean',
-                    },
-                    allowSafe: {
+                    allowString: { type: 'boolean' },
+                    allowNumber: { type: 'boolean' },
+                    allowNullableObject: { type: 'boolean' },
+                    allowNullableBoolean: { type: 'boolean' },
+                    allowNullableString: { type: 'boolean' },
+                    allowNullableNumber: { type: 'boolean' },
+                    allowAny: { type: 'boolean' },
+                    allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: {
                         type: 'boolean',
                     },
                 },
@@ -59,18 +72,36 @@
                 'The condition is always true.',
             conditionErrorNullableObject: 'Unexpected nullable object value in conditional. ' +
                 'An explicit null check is required.',
+            noStrictNullCheck: 'This rule requires the `strictNullChecks` compiler option to be turned on to function correctly.',
         },
     },
     defaultOptions: [
         {
-            ignoreRhs: false,
-            allowNullable: false,
-            allowSafe: false,
+            allowString: true,
+            allowNumber: true,
+            allowNullableObject: true,
+            allowNullableBoolean: false,
+            allowNullableString: false,
+            allowNullableNumber: false,
+            allowAny: false,
+            allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
         },
     ],
     create(context, [options]) {
         const service = util.getParserServices(context);
         const checker = service.program.getTypeChecker();
+        const compilerOptions = service.program.getCompilerOptions();
+        const isStrictNullChecks = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'strictNullChecks');
+        if (!isStrictNullChecks &&
+            options.allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing !== true) {
+            context.report({
+                loc: {
+                    start: { line: 0, column: 0 },
+                    end: { line: 0, column: 0 },
+                },
+                messageId: 'noStrictNullCheck',
+            });
+        }
         const checkedNodes = new Set();
         return {
             ConditionalExpression: checkTestExpression,
@@ -91,125 +122,106 @@
             checkNode(node.argument, true);
         }
         /**
-         * This function analyzes the type of a boolean expression node and checks if it is allowed.
-         * It can recurse when checking nested logical operators, so that only the outermost expressions are reported.
+         * This function analyzes the type of a node and checks if it is allowed in a boolean context.
+         * It can recurse when checking nested logical operators, so that only the outermost operands are reported.
+         * The right operand of a logical expression is ignored unless it's a part of a test expression (if/while/ternary/etc).
          * @param node The AST node to check.
-         * @param isRoot Whether it is the root of a logical expression and there was no recursion yet.
-         * @returns `true` if there was an error reported.
+         * @param isTestExpr Whether the node is a descendant of a test expression.
          */
-        function checkNode(node, isRoot = false) {
+        function checkNode(node, isTestExpr = false) {
             // prevent checking the same node multiple times
             if (checkedNodes.has(node)) {
-                return false;
+                return;
             }
             checkedNodes.add(node);
-            // for logical operator, we also check its operands
+            // for logical operator, we check its operands
             if (node.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression &&
                 node.operator !== '??') {
-                let hasError = false;
-                if (checkNode(node.left)) {
-                    hasError = true;
+                checkNode(node.left, isTestExpr);
+                // we ignore the right operand when not in a context of a test expression
+                if (isTestExpr) {
+                    checkNode(node.right, isTestExpr);
                 }
-                if (!options.ignoreRhs) {
-                    if (checkNode(node.right)) {
-                        hasError = true;
-                    }
-                }
-                // if this logical operator is not the root of a logical expression
-                // we only check its operands and return
-                if (!isRoot) {
-                    return hasError;
-                }
-                // if this is the root of a logical expression
-                // we want to check its resulting type too
-                else {
-                    // ...unless there already was an error, we exit so we don't double-report
-                    if (hasError) {
-                        return true;
-                    }
-                }
+                return;
             }
             const tsNode = service.esTreeNodeToTSNodeMap.get(node);
             const type = util.getConstrainedTypeAtLocation(checker, tsNode);
-            let messageId;
             const types = inspectVariantTypes(tsutils.unionTypeParts(type));
             const is = (...wantedTypes) => types.size === wantedTypes.length &&
                 wantedTypes.every(type => types.has(type));
             // boolean
             if (is('boolean')) {
                 // boolean is always okay
-                return false;
+                return;
             }
             // never
             if (is('never')) {
                 // never is always okay
-                return false;
+                return;
             }
             // nullish
-            else if (is('nullish')) {
+            if (is('nullish')) {
                 // condition is always false
-                messageId = 'conditionErrorNullish';
+                context.report({ node, messageId: 'conditionErrorNullish' });
+                return;
             }
             // nullable boolean
-            else if (is('nullish', 'boolean')) {
-                if (!options.allowNullable) {
-                    messageId = 'conditionErrorNullableBoolean';
+            if (is('nullish', 'boolean')) {
+                if (!options.allowNullableBoolean) {
+                    context.report({ node, messageId: 'conditionErrorNullableBoolean' });
                 }
+                return;
             }
             // string
-            else if (is('string')) {
-                messageId = 'conditionErrorString';
+            if (is('string')) {
+                if (!options.allowString) {
+                    context.report({ node, messageId: 'conditionErrorString' });
+                }
+                return;
             }
             // nullable string
-            else if (is('nullish', 'string')) {
-                messageId = 'conditionErrorNullableString';
+            if (is('nullish', 'string')) {
+                if (!options.allowNullableString) {
+                    context.report({ node, messageId: 'conditionErrorNullableString' });
+                }
+                return;
             }
             // number
-            else if (is('number')) {
-                messageId = 'conditionErrorNumber';
+            if (is('number')) {
+                if (!options.allowNumber) {
+                    context.report({ node, messageId: 'conditionErrorNumber' });
+                }
+                return;
             }
             // nullable number
-            else if (is('nullish', 'number')) {
-                messageId = 'conditionErrorNullableNumber';
+            if (is('nullish', 'number')) {
+                if (!options.allowNullableNumber) {
+                    context.report({ node, messageId: 'conditionErrorNullableNumber' });
+                }
+                return;
             }
             // object
-            else if (is('object')) {
+            if (is('object')) {
                 // condition is always true
-                if (!options.allowSafe) {
-                    messageId = 'conditionErrorObject';
-                }
+                context.report({ node, messageId: 'conditionErrorObject' });
+                return;
             }
             // nullable object
-            else if (is('nullish', 'object')) {
-                if (!options.allowSafe || !options.allowNullable) {
-                    messageId = 'conditionErrorNullableObject';
+            if (is('nullish', 'object')) {
+                if (!options.allowNullableObject) {
+                    context.report({ node, messageId: 'conditionErrorNullableObject' });
                 }
-            }
-            // boolean/object
-            else if (is('boolean', 'object')) {
-                if (!options.allowSafe) {
-                    messageId = 'conditionErrorOther';
-                }
-            }
-            // nullable boolean/object
-            else if (is('nullish', 'boolean', 'object')) {
-                if (!options.allowSafe || !options.allowNullable) {
-                    messageId = 'conditionErrorOther';
-                }
+                return;
             }
             // any
-            else if (is('any')) {
-                messageId = 'conditionErrorAny';
+            if (is('any')) {
+                if (!options.allowAny) {
+                    context.report({ node, messageId: 'conditionErrorAny' });
+                }
+                return;
             }
             // other
-            else {
-                messageId = 'conditionErrorOther';
-            }
-            if (messageId != null) {
-                context.report({ node, messageId });
-                return true;
-            }
-            return false;
+            context.report({ node, messageId: 'conditionErrorOther' });
         }
         /**
          * Check union variants for the types we care about
@@ -225,7 +237,7 @@
             if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.StringLike))) {
                 variantTypes.add('string');
             }
-            if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.NumberLike))) {
+            if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.NumberLike | ts.TypeFlags.BigIntLike))) {
                 variantTypes.add('number');
             }
             if (types.some(type => !tsutils.isTypeFlagSet(type, ts.TypeFlags.Null |
@@ -234,12 +246,13 @@
                 ts.TypeFlags.BooleanLike |
                 ts.TypeFlags.StringLike |
                 ts.TypeFlags.NumberLike |
+                ts.TypeFlags.BigIntLike |
                 ts.TypeFlags.Any |
                 ts.TypeFlags.Unknown |
                 ts.TypeFlags.Never))) {
                 variantTypes.add('object');
             }
-            if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.Any | ts.TypeFlags.Unknown))) {
+            if (types.some(type => util.isTypeAnyType(type) || util.isTypeUnknownType(type))) {
                 variantTypes.add('any');
             }
             if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.Never))) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map
index e07cb44..0c4d8df 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map
@@ -1 +1 @@
-{"version":3,"file":"strict-boolean-expressions.js","sourceRoot":"","sources":["../../src/rules/strict-boolean-expressions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"strict-boolean-expressions.js","sourceRoot":"","sources":["../../src/rules/strict-boolean-expressions.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js
index 3d927b4..92ea5fa 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js
@@ -1,16 +1,27 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
 const ts = __importStar(require("typescript"));
 const util_1 = require("../util");
 const tsutils_1 = require("tsutils");
-const eslint_utils_1 = require("eslint-utils");
 exports.default = util_1.createRule({
     name: 'switch-exhaustiveness-check',
     meta: {
@@ -19,12 +30,13 @@
             description: 'Exhaustiveness checking in switch with union type',
             category: 'Best Practices',
             recommended: false,
+            suggestion: true,
             requiresTypeChecking: true,
         },
         schema: [],
         messages: {
             switchIsNotExhaustive: 'Switch is not exhaustive. Cases not matched: {{missingBranches}}',
-            addMissingCases: 'Add branches for missing cases',
+            addMissingCases: 'Add branches for missing cases.',
         },
     },
     defaultOptions: [],
@@ -32,11 +44,27 @@
         const sourceCode = context.getSourceCode();
         const service = util_1.getParserServices(context);
         const checker = service.program.getTypeChecker();
+        const compilerOptions = service.program.getCompilerOptions();
+        function requiresQuoting(name) {
+            if (name.length === 0) {
+                return true;
+            }
+            if (!ts.isIdentifierStart(name.charCodeAt(0), compilerOptions.target)) {
+                return true;
+            }
+            for (let i = 1; i < name.length; i += 1) {
+                if (!ts.isIdentifierPart(name.charCodeAt(i), compilerOptions.target)) {
+                    return true;
+                }
+            }
+            return false;
+        }
         function getNodeType(node) {
             const tsNode = service.esTreeNodeToTSNodeMap.get(node);
             return util_1.getConstrainedTypeAtLocation(checker, tsNode);
         }
-        function fixSwitch(fixer, node, missingBranchTypes) {
+        function fixSwitch(fixer, node, missingBranchTypes, symbolName) {
+            var _a;
             const lastCase = node.cases.length > 0 ? node.cases[node.cases.length - 1] : null;
             const caseIndent = lastCase
                 ? ' '.repeat(lastCase.loc.start.column)
@@ -58,7 +86,13 @@
                 if (missingBranchType.isIntersection()) {
                     continue;
                 }
-                const caseTest = checker.typeToString(missingBranchType);
+                const missingBranchName = (_a = missingBranchType.getSymbol()) === null || _a === void 0 ? void 0 : _a.escapedName;
+                let caseTest = checker.typeToString(missingBranchType);
+                if (symbolName &&
+                    (missingBranchName || missingBranchName === '') &&
+                    requiresQuoting(missingBranchName.toString())) {
+                    caseTest = `${symbolName}['${missingBranchName}']`;
+                }
                 const errorMessage = `Not implemented yet: ${caseTest} case`;
                 missingCases.push(`case ${caseTest}: { throw new Error('${errorMessage}') }`);
             }
@@ -69,12 +103,14 @@
                 return fixer.insertTextAfter(lastCase, `\n${fixString}`);
             }
             // there were no existing cases
-            const openingBrace = sourceCode.getTokenAfter(node.discriminant, eslint_utils_1.isOpeningBraceToken);
-            const closingBrace = sourceCode.getTokenAfter(node.discriminant, eslint_utils_1.isClosingBraceToken);
+            const openingBrace = sourceCode.getTokenAfter(node.discriminant, util_1.isOpeningBraceToken);
+            const closingBrace = sourceCode.getTokenAfter(node.discriminant, util_1.isClosingBraceToken);
             return fixer.replaceTextRange([openingBrace.range[0], closingBrace.range[1]], ['{', fixString, `${caseIndent}}`].join('\n'));
         }
         function checkSwitchExhaustive(node) {
+            var _a;
             const discriminantType = getNodeType(node.discriminant);
+            const symbolName = (_a = discriminantType.getSymbol()) === null || _a === void 0 ? void 0 : _a.escapedName;
             if (discriminantType.isUnion()) {
                 const unionTypes = tsutils_1.unionTypeParts(discriminantType);
                 const caseTypes = new Set();
@@ -95,16 +131,19 @@
                     messageId: 'switchIsNotExhaustive',
                     data: {
                         missingBranches: missingBranchTypes
-                            .map(missingType => tsutils_1.isTypeFlagSet(missingType, ts.TypeFlags.ESSymbolLike)
-                            ? `typeof ${missingType.symbol.escapedName}`
-                            : checker.typeToString(missingType))
+                            .map(missingType => {
+                            var _a;
+                            return tsutils_1.isTypeFlagSet(missingType, ts.TypeFlags.ESSymbolLike)
+                                ? `typeof ${(_a = missingType.getSymbol()) === null || _a === void 0 ? void 0 : _a.escapedName}`
+                                : checker.typeToString(missingType);
+                        })
                             .join(' | '),
                     },
                     suggest: [
                         {
                             messageId: 'addMissingCases',
                             fix(fixer) {
-                                return fixSwitch(fixer, node, missingBranchTypes);
+                                return fixSwitch(fixer, node, missingBranchTypes, symbolName === null || symbolName === void 0 ? void 0 : symbolName.toString());
                             },
                         },
                     ],
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map
index 0943b0f..0a8b9da 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map
@@ -1 +1 @@
-{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,+CAAiC;AACjC,kCAMiB;AACjB,qCAAwD;AAExD,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;YAChB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,qBAAqB,EACnB,kEAAkE;YACpE,eAAe,EAAE,iCAAiC;SACnD;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAE7D,SAAS,eAAe,CAAC,IAAY;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAC;aACb;YAED,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE;gBACrE,OAAO,IAAI,CAAC;aACb;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACvC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE;oBACpE,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,WAAW,CAAC,IAAmB;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,mCAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,SAAS,SAAS,CAChB,KAAyB,EACzB,IAA8B,EAC9B,kBAAkC,EAClC,UAAmB;;YAEnB,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnE,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvC,CAAC,CAAC,iEAAiE;oBACjE,8CAA8C;oBAC9C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE;gBAClD,8DAA8D;gBAC9D,8CAA8C;gBAC9C,EAAE;gBACF,8BAA8B;gBAC9B,qCAAqC;gBACrC,qBAAqB;gBACrB,qCAAqC;gBACrC,+BAA+B;gBAC/B,EAAE;gBACF,gCAAgC;gBAChC,IAAI,iBAAiB,CAAC,cAAc,EAAE,EAAE;oBACtC,SAAS;iBACV;gBAED,MAAM,iBAAiB,SAAG,iBAAiB,CAAC,SAAS,EAAE,0CAAE,WAAW,CAAC;gBACrE,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAEvD,IACE,UAAU;oBACV,CAAC,iBAAiB,IAAI,iBAAiB,KAAK,EAAE,CAAC;oBAC/C,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,EAC7C;oBACA,QAAQ,GAAG,GAAG,UAAU,KAAK,iBAAiB,IAAI,CAAC;iBACpD;gBAED,MAAM,YAAY,GAAG,wBAAwB,QAAQ,OAAO,CAAC;gBAE7D,YAAY,CAAC,IAAI,CACf,QAAQ,QAAQ,wBAAwB,YAAY,MAAM,CAC3D,CAAC;aACH;YAED,MAAM,SAAS,GAAG,YAAY;iBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC;iBACnC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,IAAI,QAAQ,EAAE;gBACZ,OAAO,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC,CAAC;aAC1D;YAED,+BAA+B;YAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAC3C,IAAI,CAAC,YAAY,EACjB,0BAAmB,CACnB,CAAC;YACH,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAC3C,IAAI,CAAC,YAAY,EACjB,0BAAmB,CACnB,CAAC;YAEH,OAAO,KAAK,CAAC,gBAAgB,CAC3B,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QACJ,CAAC;QAED,SAAS,qBAAqB,CAAC,IAA8B;;YAC3D,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,UAAU,SAAG,gBAAgB,CAAC,SAAS,EAAE,0CAAE,WAAW,CAAC;YAE7D,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,wBAAc,CAAC,gBAAgB,CAAC,CAAC;gBACpD,MAAM,SAAS,GAAiB,IAAI,GAAG,EAAE,CAAC;gBAC1C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;oBACnC,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE;wBAC5B,4CAA4C;wBAC5C,OAAO;qBACR;oBAED,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC7C;gBAED,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAC1C,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CACvC,CAAC;gBAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,kCAAkC;oBAClC,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,SAAS,EAAE,uBAAuB;oBAClC,IAAI,EAAE;wBACJ,eAAe,EAAE,kBAAkB;6BAChC,GAAG,CAAC,WAAW,CAAC,EAAE;;4BACjB,OAAA,uBAAa,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC;gCACnD,CAAC,CAAC,UAAU,MAAA,WAAW,CAAC,SAAS,EAAE,0CAAE,WAAW,EAAE;gCAClD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;yBAAA,CACtC;6BACA,IAAI,CAAC,KAAK,CAAC;qBACf;oBACD,OAAO,EAAE;wBACP;4BACE,SAAS,EAAE,iBAAiB;4BAC5B,GAAG,CAAC,KAAK;gCACP,OAAO,SAAS,CACd,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,GACrB,CAAC;4BACJ,CAAC;yBACF;qBACF;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,eAAe,EAAE,qBAAqB;SACvC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js
index 45792ac..943df2e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map
index 08e29db..3efae8a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map
@@ -1 +1 @@
-{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js
index fda4292..fc017d7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -18,23 +30,22 @@
     additionalProperties: false,
 };
 function createRules(options) {
-    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
-    const globals = Object.assign(Object.assign({}, (((_a = options) === null || _a === void 0 ? void 0 : _a.before) !== undefined ? { before: options.before } : {})), (((_b = options) === null || _b === void 0 ? void 0 : _b.after) !== undefined ? { after: options.after } : {}));
-    const override = (_d = (_c = options) === null || _c === void 0 ? void 0 : _c.overrides, (_d !== null && _d !== void 0 ? _d : {}));
-    const colon = Object.assign(Object.assign({ before: false, after: true }, globals), (_e = override) === null || _e === void 0 ? void 0 : _e.colon);
-    const arrow = Object.assign(Object.assign({ before: true, after: true }, globals), (_f = override) === null || _f === void 0 ? void 0 : _f.arrow);
+    var _a;
+    const globals = Object.assign(Object.assign({}, ((options === null || options === void 0 ? void 0 : options.before) !== undefined ? { before: options.before } : {})), ((options === null || options === void 0 ? void 0 : options.after) !== undefined ? { after: options.after } : {}));
+    const override = (_a = options === null || options === void 0 ? void 0 : options.overrides) !== null && _a !== void 0 ? _a : {};
+    const colon = Object.assign(Object.assign({ before: false, after: true }, globals), override === null || override === void 0 ? void 0 : override.colon);
+    const arrow = Object.assign(Object.assign({ before: true, after: true }, globals), override === null || override === void 0 ? void 0 : override.arrow);
     return {
         colon: colon,
         arrow: arrow,
-        variable: Object.assign(Object.assign({}, colon), (_g = override) === null || _g === void 0 ? void 0 : _g.variable),
-        property: Object.assign(Object.assign({}, colon), (_h = override) === null || _h === void 0 ? void 0 : _h.property),
-        parameter: Object.assign(Object.assign({}, colon), (_j = override) === null || _j === void 0 ? void 0 : _j.parameter),
-        returnType: Object.assign(Object.assign({}, colon), (_k = override) === null || _k === void 0 ? void 0 : _k.returnType),
+        variable: Object.assign(Object.assign({}, colon), override === null || override === void 0 ? void 0 : override.variable),
+        property: Object.assign(Object.assign({}, colon), override === null || override === void 0 ? void 0 : override.property),
+        parameter: Object.assign(Object.assign({}, colon), override === null || override === void 0 ? void 0 : override.parameter),
+        returnType: Object.assign(Object.assign({}, colon), override === null || override === void 0 ? void 0 : override.returnType),
     };
 }
 function getIdentifierRules(rules, node) {
-    var _a;
-    const scope = (_a = node) === null || _a === void 0 ? void 0 : _a.parent;
+    const scope = node === null || node === void 0 ? void 0 : node.parent;
     if (util_1.isVariableDeclarator(scope)) {
         return rules.variable;
     }
@@ -46,9 +57,9 @@
     }
 }
 function getRules(rules, node) {
-    var _a, _b;
-    const scope = (_b = (_a = node) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.parent;
-    if (util_1.isTSFunctionType(scope)) {
+    var _a;
+    const scope = (_a = node === null || node === void 0 ? void 0 : node.parent) === null || _a === void 0 ? void 0 : _a.parent;
+    if (util_1.isTSFunctionType(scope) || util_1.isTSConstructorType(scope)) {
         return rules.arrow;
     }
     else if (util_1.isIdentifier(scope)) {
@@ -71,7 +82,7 @@
         docs: {
             description: 'Require consistent spacing around type annotations',
             category: 'Stylistic Issues',
-            recommended: 'error',
+            recommended: false,
         },
         fixable: 'whitespace',
         messages: {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map
index 932308a..fb00864 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map
@@ -1 +1 @@
-{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js
index 6b42b03..fb4c63c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -18,8 +30,8 @@
             recommended: false,
         },
         messages: {
-            expectedTypedef: 'expected a type annotation',
-            expectedTypedefNamed: 'expected {{name}} to have a type annotation',
+            expectedTypedef: 'Expected a type annotation.',
+            expectedTypedefNamed: 'Expected {{name}} to have a type annotation.',
         },
         schema: [
             {
@@ -40,10 +52,14 @@
     },
     defaultOptions: [
         {
-            ["arrowParameter" /* ArrowParameter */]: true,
-            ["memberVariableDeclaration" /* MemberVariableDeclaration */]: true,
-            ["parameter" /* Parameter */]: true,
-            ["propertyDeclaration" /* PropertyDeclaration */]: true,
+            ["arrayDestructuring" /* ArrayDestructuring */]: false,
+            ["arrowParameter" /* ArrowParameter */]: false,
+            ["memberVariableDeclaration" /* MemberVariableDeclaration */]: false,
+            ["objectDestructuring" /* ObjectDestructuring */]: false,
+            ["parameter" /* Parameter */]: false,
+            ["propertyDeclaration" /* PropertyDeclaration */]: false,
+            ["variableDeclaration" /* VariableDeclaration */]: false,
+            ["variableDeclarationIgnoreFunction" /* VariableDeclarationIgnoreFunction */]: false,
         },
     ],
     create(context, [options]) {
@@ -107,6 +123,11 @@
         }
         return {
             ArrayPattern(node) {
+                var _a;
+                if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.RestElement &&
+                    node.parent.typeAnnotation) {
+                    return;
+                }
                 if (options["arrayDestructuring" /* ArrayDestructuring */] &&
                     !node.typeAnnotation &&
                     !isForOfStatementContext(node)) {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map
index a78b59c..bc20808 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map
@@ -1 +1 @@
-{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js
index 7d166b5..88777e0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -75,6 +87,11 @@
     'Intl',
 ];
 const nativelyBoundMembers = SUPPORTED_GLOBALS.map(namespace => {
+    if (!(namespace in global)) {
+        // node.js might not have namespaces like Intl depending on compilation options
+        // https://nodejs.org/api/intl.html#intl_options_for_building_node_js
+        return [];
+    }
     const object = global[namespace];
     return Object.getOwnPropertyNames(object)
         .filter(name => !name.startsWith('_') &&
@@ -83,7 +100,7 @@
 })
     .reduce((arr, names) => arr.concat(names), [])
     .filter(name => !nativelyNotBoundMembers.has(name));
-const isMemberNotImported = (symbol, currentSourceFile) => {
+const isNotImported = (symbol, currentSourceFile) => {
     const { valueDeclaration } = symbol;
     if (!valueDeclaration) {
         // working around https://github.com/microsoft/TypeScript/issues/31294
@@ -129,14 +146,14 @@
         const checker = parserServices.program.getTypeChecker();
         const currentSourceFile = parserServices.program.getSourceFile(context.getFilename());
         return {
-            'MemberExpression, OptionalMemberExpression'(node) {
+            MemberExpression(node) {
                 if (isSafeUse(node)) {
                     return;
                 }
                 const objectSymbol = checker.getSymbolAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node.object));
                 if (objectSymbol &&
                     nativelyBoundMembers.includes(getMemberFullName(node)) &&
-                    isMemberNotImported(objectSymbol, currentSourceFile)) {
+                    isNotImported(objectSymbol, currentSourceFile)) {
                     return;
                 }
                 const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node);
@@ -148,16 +165,48 @@
                     });
                 }
             },
+            'VariableDeclarator, AssignmentExpression'(node) {
+                const [idNode, initNode] = node.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator
+                    ? [node.id, node.init]
+                    : [node.left, node.right];
+                if (initNode && idNode.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern) {
+                    const tsNode = parserServices.esTreeNodeToTSNodeMap.get(initNode);
+                    const rightSymbol = checker.getSymbolAtLocation(tsNode);
+                    const initTypes = checker.getTypeAtLocation(tsNode);
+                    const notImported = rightSymbol && isNotImported(rightSymbol, currentSourceFile);
+                    idNode.properties.forEach(property => {
+                        if (property.type === experimental_utils_1.AST_NODE_TYPES.Property &&
+                            property.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
+                            if (notImported &&
+                                util.isIdentifier(initNode) &&
+                                nativelyBoundMembers.includes(`${initNode.name}.${property.key.name}`)) {
+                                return;
+                            }
+                            const symbol = initTypes.getProperty(property.key.name);
+                            if (symbol && isDangerousMethod(symbol, ignoreStatic)) {
+                                context.report({
+                                    messageId: 'unbound',
+                                    node,
+                                });
+                            }
+                        }
+                    });
+                }
+            },
         };
     },
 });
 function isDangerousMethod(symbol, ignoreStatic) {
+    var _a;
     const { valueDeclaration } = symbol;
     if (!valueDeclaration) {
         // working around https://github.com/microsoft/TypeScript/issues/31294
         return false;
     }
     switch (valueDeclaration.kind) {
+        case ts.SyntaxKind.PropertyDeclaration:
+            return (((_a = valueDeclaration.initializer) === null || _a === void 0 ? void 0 : _a.kind) ===
+                ts.SyntaxKind.FunctionExpression);
         case ts.SyntaxKind.MethodDeclaration:
         case ts.SyntaxKind.MethodSignature:
             return !(ignoreStatic &&
@@ -166,28 +215,31 @@
     return false;
 }
 function isSafeUse(node) {
-    var _a;
     const parent = node.parent;
-    switch ((_a = parent) === null || _a === void 0 ? void 0 : _a.type) {
+    switch (parent === null || parent === void 0 ? void 0 : parent.type) {
         case experimental_utils_1.AST_NODE_TYPES.IfStatement:
         case experimental_utils_1.AST_NODE_TYPES.ForStatement:
         case experimental_utils_1.AST_NODE_TYPES.MemberExpression:
-        case experimental_utils_1.AST_NODE_TYPES.OptionalMemberExpression:
         case experimental_utils_1.AST_NODE_TYPES.SwitchStatement:
         case experimental_utils_1.AST_NODE_TYPES.UpdateExpression:
         case experimental_utils_1.AST_NODE_TYPES.WhileStatement:
             return true;
         case experimental_utils_1.AST_NODE_TYPES.CallExpression:
-        case experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression:
             return parent.callee === node;
         case experimental_utils_1.AST_NODE_TYPES.ConditionalExpression:
             return parent.test === node;
         case experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression:
             return parent.tag === node;
         case experimental_utils_1.AST_NODE_TYPES.UnaryExpression:
-            return parent.operator === 'typeof';
+            // the first case is safe for obvious
+            // reasons. The second one is also fine
+            // since we're returning something falsy
+            return ['typeof', '!', 'void', 'delete'].includes(parent.operator);
         case experimental_utils_1.AST_NODE_TYPES.BinaryExpression:
             return ['instanceof', '==', '!=', '===', '!=='].includes(parent.operator);
+        case experimental_utils_1.AST_NODE_TYPES.AssignmentExpression:
+            return parent.operator === '=' && node === parent.left;
+        case experimental_utils_1.AST_NODE_TYPES.ChainExpression:
         case experimental_utils_1.AST_NODE_TYPES.TSNonNullExpression:
         case experimental_utils_1.AST_NODE_TYPES.TSAsExpression:
         case experimental_utils_1.AST_NODE_TYPES.TSTypeAssertion:
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map
index 81ceae7..a42745e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map
@@ -1 +1 @@
-{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js
index 1ce3a0c..c20553a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js
@@ -1,9 +1,21 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
@@ -40,7 +52,6 @@
             return `${overloads} can be combined into one signature`;
         }
         function addFailures(failures) {
-            var _a, _b;
             for (const failure of failures) {
                 const { unify, only2 } = failure;
                 switch (unify.kind) {
@@ -58,8 +69,8 @@
                             messageId: 'singleParameterDifference',
                             data: {
                                 failureStringStart: failureStringStart(lineOfOtherOverload),
-                                type1: sourceCode.getText((_a = typeAnnotation0) === null || _a === void 0 ? void 0 : _a.typeAnnotation),
-                                type2: sourceCode.getText((_b = typeAnnotation1) === null || _b === void 0 ? void 0 : _b.typeAnnotation),
+                                type1: sourceCode.getText(typeAnnotation0 === null || typeAnnotation0 === void 0 ? void 0 : typeAnnotation0.typeAnnotation),
+                                type2: sourceCode.getText(typeAnnotation1 === null || typeAnnotation1 === void 0 ? void 0 : typeAnnotation1.typeAnnotation),
                             },
                             node: p1,
                         });
@@ -301,7 +312,7 @@
             currentScope = scopes.pop();
         }
         function addOverload(signature, key, containingNode) {
-            key = (key !== null && key !== void 0 ? key : getOverloadKey(signature));
+            key = key !== null && key !== void 0 ? key : getOverloadKey(signature);
             if (currentScope &&
                 (containingNode || signature).parent === currentScope.parent) {
                 const overloads = currentScope.overloads.get(key);
@@ -328,9 +339,9 @@
             TSTypeLiteral: createScope,
             // collect overloads
             TSDeclareFunction(node) {
-                var _a, _b, _c;
+                var _a, _b;
                 const exportingNode = getExportingNode(node);
-                addOverload(node, (_b = (_a = node.id) === null || _a === void 0 ? void 0 : _a.name, (_b !== null && _b !== void 0 ? _b : (_c = exportingNode) === null || _c === void 0 ? void 0 : _c.type)), exportingNode);
+                addOverload(node, (_b = (_a = node.id) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : exportingNode === null || exportingNode === void 0 ? void 0 : exportingNode.type, exportingNode);
             },
             TSCallSignatureDeclaration: addOverload,
             TSConstructSignatureDeclaration: addOverload,
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map
index 395fdf6..ce84d5c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map
@@ -1 +1 @@
-{"version":3,"file":"unified-signatures.js","sourceRoot":"","sources":["../../src/rules/unified-signatures.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"unified-signatures.js","sourceRoot":"","sources":["../../src/rules/unified-signatures.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js
index 07fdb69..249bf79 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js
@@ -1,161 +1,15 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const LINEBREAK_MATCHER = /\r\n|[\r\n\u2028\u2029]/;
-exports.LINEBREAK_MATCHER = LINEBREAK_MATCHER;
-function isOptionalChainPunctuator(token) {
-    return token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '?.';
-}
-exports.isOptionalChainPunctuator = isOptionalChainPunctuator;
-function isNotOptionalChainPunctuator(token) {
-    return !isOptionalChainPunctuator(token);
-}
-exports.isNotOptionalChainPunctuator = isNotOptionalChainPunctuator;
-function isNonNullAssertionPunctuator(token) {
-    return token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '!';
-}
-exports.isNonNullAssertionPunctuator = isNonNullAssertionPunctuator;
-function isNotNonNullAssertionPunctuator(token) {
-    return !isNonNullAssertionPunctuator(token);
-}
-exports.isNotNonNullAssertionPunctuator = isNotNonNullAssertionPunctuator;
-/**
- * Returns true if and only if the node represents: foo?.() or foo.bar?.()
- */
-function isOptionalOptionalChain(node) {
-    return (node.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression &&
-        // this flag means the call expression itself is option
-        // i.e. it is foo.bar?.() and not foo?.bar()
-        node.optional);
-}
-exports.isOptionalOptionalChain = isOptionalOptionalChain;
-/**
- * Returns true if and only if the node represents logical OR
- */
-function isLogicalOrOperator(node) {
-    return (node.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression && node.operator === '||');
-}
-exports.isLogicalOrOperator = isLogicalOrOperator;
-/**
- * Determines whether two adjacent tokens are on the same line
- */
-function isTokenOnSameLine(left, right) {
-    return left.loc.end.line === right.loc.start.line;
-}
-exports.isTokenOnSameLine = isTokenOnSameLine;
-/**
- * Checks if a node is a type assertion:
- * ```
- * x as foo
- * <foo>x
- * ```
- */
-function isTypeAssertion(node) {
-    if (!node) {
-        return false;
-    }
-    return (node.type === experimental_utils_1.AST_NODE_TYPES.TSAsExpression ||
-        node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeAssertion);
-}
-exports.isTypeAssertion = isTypeAssertion;
-function isVariableDeclarator(node) {
-    var _a;
-    return ((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator;
-}
-exports.isVariableDeclarator = isVariableDeclarator;
-function isFunction(node) {
-    if (!node) {
-        return false;
-    }
-    return [
-        experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
-        experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration,
-        experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
-    ].includes(node.type);
-}
-exports.isFunction = isFunction;
-function isFunctionType(node) {
-    if (!node) {
-        return false;
-    }
-    return [
-        experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration,
-        experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration,
-        experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,
-        experimental_utils_1.AST_NODE_TYPES.TSFunctionType,
-        experimental_utils_1.AST_NODE_TYPES.TSMethodSignature,
-    ].includes(node.type);
-}
-exports.isFunctionType = isFunctionType;
-function isFunctionOrFunctionType(node) {
-    return isFunction(node) || isFunctionType(node);
-}
-exports.isFunctionOrFunctionType = isFunctionOrFunctionType;
-function isTSFunctionType(node) {
-    var _a;
-    return ((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSFunctionType;
-}
-exports.isTSFunctionType = isTSFunctionType;
-function isClassOrTypeElement(node) {
-    if (!node) {
-        return false;
-    }
-    return [
-        // ClassElement
-        experimental_utils_1.AST_NODE_TYPES.ClassProperty,
-        experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
-        experimental_utils_1.AST_NODE_TYPES.MethodDefinition,
-        experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty,
-        experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition,
-        experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,
-        experimental_utils_1.AST_NODE_TYPES.TSIndexSignature,
-        // TypeElement
-        experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration,
-        experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration,
-        // AST_NODE_TYPES.TSIndexSignature,
-        experimental_utils_1.AST_NODE_TYPES.TSMethodSignature,
-        experimental_utils_1.AST_NODE_TYPES.TSPropertySignature,
-    ].includes(node.type);
-}
-exports.isClassOrTypeElement = isClassOrTypeElement;
-/**
- * Checks if a node is a constructor method.
- */
-function isConstructor(node) {
-    var _a;
-    return (((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
-        node.kind === 'constructor');
-}
-exports.isConstructor = isConstructor;
-/**
- * Checks if a node is a setter method.
- */
-function isSetter(node) {
-    return (!!node &&
-        (node.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition ||
-            node.type === experimental_utils_1.AST_NODE_TYPES.Property) &&
-        node.kind === 'set');
-}
-exports.isSetter = isSetter;
-function isIdentifier(node) {
-    var _a;
-    return ((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.Identifier;
-}
-exports.isIdentifier = isIdentifier;
-/**
- * Checks if a node represents an `await …` expression.
- */
-function isAwaitExpression(node) {
-    var _a;
-    return ((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.AwaitExpression;
-}
-exports.isAwaitExpression = isAwaitExpression;
-/**
- * Checks if a possible token is the `await` keyword.
- */
-function isAwaitKeyword(node) {
-    var _a;
-    return ((_a = node) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_TOKEN_TYPES.Identifier && node.value === 'await';
-}
-exports.isAwaitKeyword = isAwaitKeyword;
+// deeply re-export, for convenience
+__exportStar(require("@typescript-eslint/experimental-utils/dist/ast-utils"), exports);
 //# sourceMappingURL=astUtils.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map
index a203039..872e04e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map
@@ -1 +1 @@
-{"version":3,"file":"astUtils.js","sourceRoot":"","sources":["../../src/util/astUtils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"astUtils.js","sourceRoot":"","sources":["../../src/util/astUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAoC;AACpC,uFAAqE"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js
index fc86af0..b7066ab 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.createRule = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 // note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder
 const version = require('../../package.json').version;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map
index 1bbd139..768d51b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map
@@ -1 +1 @@
-{"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../src/util/createRule.ts"],"names":[],"mappings":";;AAAA,8EAAoE;AAEpE,sHAAsH;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAEzC,QAAA,UAAU,GAAG,gCAAW,CAAC,WAAW,CAC/C,IAAI,CAAC,EAAE,CACL,gEAAgE,OAAO,sCAAsC,IAAI,KAAK,CACzH,CAAC"}
\ No newline at end of file
+{"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../src/util/createRule.ts"],"names":[],"mappings":";;;AAAA,8EAAoE;AAEpE,sHAAsH;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAEzC,QAAA,UAAU,GAAG,gCAAW,CAAC,WAAW,CAC/C,IAAI,CAAC,EAAE,CACL,gEAAgE,OAAO,sCAAsC,IAAI,KAAK,CACzH,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js
index f6835a1..ad10249 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.isTypedFunctionExpression = exports.doesImmediatelyReturnFunctionExpression = exports.checkFunctionReturnType = exports.checkFunctionExpressionReturnType = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 const astUtils_1 = require("./astUtils");
 const nullThrows_1 = require("./nullThrows");
@@ -132,6 +133,7 @@
     return (body.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
         body.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression);
 }
+exports.doesImmediatelyReturnFunctionExpression = doesImmediatelyReturnFunctionExpression;
 /**
  * Checks if a node belongs to:
  * ```
@@ -139,8 +141,7 @@
  * ```
  */
 function isFunctionArgument(parent, callee) {
-    return ((parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression ||
-        parent.type === experimental_utils_1.AST_NODE_TYPES.OptionalCallExpression) &&
+    return (parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression &&
         // make sure this isn't an IIFE
         parent.callee !== callee);
 }
@@ -165,19 +166,8 @@
     return false;
 }
 /**
- * Checks if a function declaration/expression has a return type.
+ * True when the provided function expression is typed.
  */
-function checkFunctionReturnType(node, options, sourceCode, report) {
-    if (options.allowHigherOrderFunctions &&
-        doesImmediatelyReturnFunctionExpression(node)) {
-        return;
-    }
-    if (node.returnType || astUtils_1.isConstructor(node.parent) || astUtils_1.isSetter(node.parent)) {
-        return;
-    }
-    report(getReporLoc(node, sourceCode));
-}
-exports.checkFunctionReturnType = checkFunctionReturnType;
 function isTypedFunctionExpression(node, options) {
     const parent = nullThrows_1.nullThrows(node.parent, nullThrows_1.NullThrowsReasons.MissingParent);
     if (!options.allowTypedFunctionExpressions) {
@@ -192,11 +182,12 @@
 }
 exports.isTypedFunctionExpression = isTypedFunctionExpression;
 /**
- * Checks if a function declaration/expression has a return type.
+ * Check whether the function expression return type is either typed or valid
+ * with the provided options.
  */
-function checkFunctionExpressionReturnType(node, options, sourceCode, report) {
+function isValidFunctionExpressionReturnType(node, options) {
     if (isTypedFunctionExpression(node, options)) {
-        return;
+        return true;
     }
     const parent = nullThrows_1.nullThrows(node.parent, nullThrows_1.NullThrowsReasons.MissingParent);
     if (options.allowExpressions &&
@@ -204,12 +195,44 @@
         parent.type !== experimental_utils_1.AST_NODE_TYPES.MethodDefinition &&
         parent.type !== experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration &&
         parent.type !== experimental_utils_1.AST_NODE_TYPES.ClassProperty) {
-        return;
+        return true;
     }
     // https://github.com/typescript-eslint/typescript-eslint/issues/653
     if (options.allowDirectConstAssertionInArrowFunctions &&
         node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
         returnsConstAssertionDirectly(node)) {
+        return true;
+    }
+    return false;
+}
+/**
+ * Check that the function expression or declaration is valid.
+ */
+function isValidFunctionReturnType(node, options) {
+    if (options.allowHigherOrderFunctions &&
+        doesImmediatelyReturnFunctionExpression(node)) {
+        return true;
+    }
+    if (node.returnType || astUtils_1.isConstructor(node.parent) || astUtils_1.isSetter(node.parent)) {
+        return true;
+    }
+    return false;
+}
+/**
+ * Checks if a function declaration/expression has a return type.
+ */
+function checkFunctionReturnType(node, options, sourceCode, report) {
+    if (isValidFunctionReturnType(node, options)) {
+        return;
+    }
+    report(getReporLoc(node, sourceCode));
+}
+exports.checkFunctionReturnType = checkFunctionReturnType;
+/**
+ * Checks if a function declaration/expression has a return type.
+ */
+function checkFunctionExpressionReturnType(node, options, sourceCode, report) {
+    if (isValidFunctionExpressionReturnType(node, options)) {
         return;
     }
     checkFunctionReturnType(node, options, sourceCode, report);
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map
index d89a5d4..1dbb920 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map
@@ -1 +1 @@
-{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js
index ef8976d..c625d72 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js
@@ -1,15 +1,25 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getParserServices = exports.isObjectNotArray = exports.deepMerge = exports.applyDefault = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-__export(require("./astUtils"));
-__export(require("./createRule"));
-__export(require("./isTypeReadonly"));
-__export(require("./misc"));
-__export(require("./nullThrows"));
-__export(require("./types"));
+__exportStar(require("./astUtils"), exports);
+__exportStar(require("./createRule"), exports);
+__exportStar(require("./isTypeReadonly"), exports);
+__exportStar(require("./misc"), exports);
+__exportStar(require("./nullThrows"), exports);
+__exportStar(require("./objectIterators"), exports);
+__exportStar(require("./propertyTypes"), exports);
+__exportStar(require("./types"), exports);
 // this is done for convenience - saves migrating all of the old rules
 const { applyDefault, deepMerge, isObjectNotArray, getParserServices, } = experimental_utils_1.ESLintUtils;
 exports.applyDefault = applyDefault;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map
index 8079e78..b29dfed 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;AAAA,8EAAoE;AAEpE,gCAA2B;AAC3B,kCAA6B;AAC7B,sCAAiC;AACjC,4BAAuB;AACvB,kCAA6B;AAC7B,6BAAwB;AAExB,sEAAsE;AACtE,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,GAAG,gCAAW,CAAC;AACP,oCAAY;AAAE,8BAAS;AAAE,4CAAgB;AAAE,8CAAiB"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,8EAAoE;AAEpE,6CAA2B;AAC3B,+CAA6B;AAC7B,mDAAiC;AACjC,yCAAuB;AACvB,+CAA6B;AAC7B,oDAAkC;AAClC,kDAAgC;AAChC,0CAAwB;AAExB,sEAAsE;AACtE,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,GAAG,gCAAW,CAAC;AAOd,oCAAY;AACZ,8BAAS;AACT,4CAAgB;AAChB,8CAAiB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js
index 840a5a5..78f5f46 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js
@@ -1,72 +1,76 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.isTypeReadonly = void 0;
 const tsutils_1 = require("tsutils");
 const ts = __importStar(require("typescript"));
 const _1 = require(".");
-/**
- * Returns:
- * - null if the type is not an array or tuple,
- * - true if the type is a readonly array or readonly tuple,
- * - false if the type is a mutable array or mutable tuple.
- */
-function isTypeReadonlyArrayOrTuple(checker, type) {
+function isTypeReadonlyArrayOrTuple(checker, type, seenTypes) {
     function checkTypeArguments(arrayType) {
         const typeArguments = checker.getTypeArguments(arrayType);
+        // this shouldn't happen in reality as:
+        // - tuples require at least 1 type argument
+        // - ReadonlyArray requires at least 1 type argument
         /* istanbul ignore if */ if (typeArguments.length === 0) {
-            // this shouldn't happen in reality as:
-            // - tuples require at least 1 type argument
-            // - ReadonlyArray requires at least 1 type argument
-            return true;
+            return 3 /* Readonly */;
         }
         // validate the element types are also readonly
-        if (typeArguments.some(typeArg => !isTypeReadonly(checker, typeArg))) {
-            return false;
+        if (typeArguments.some(typeArg => isTypeReadonlyRecurser(checker, typeArg, seenTypes) ===
+            2 /* Mutable */)) {
+            return 2 /* Mutable */;
         }
-        return true;
+        return 3 /* Readonly */;
     }
     if (checker.isArrayType(type)) {
         const symbol = _1.nullThrows(type.getSymbol(), _1.NullThrowsReasons.MissingToken('symbol', 'array type'));
         const escapedName = symbol.getEscapedName();
-        if (escapedName === 'Array' && escapedName !== 'ReadonlyArray') {
-            return false;
+        if (escapedName === 'Array') {
+            return 2 /* Mutable */;
         }
         return checkTypeArguments(type);
     }
     if (checker.isTupleType(type)) {
         if (!type.target.readonly) {
-            return false;
+            return 2 /* Mutable */;
         }
         return checkTypeArguments(type);
     }
-    return null;
+    return 1 /* UnknownType */;
 }
-/**
- * Returns:
- * - null if the type is not an object,
- * - true if the type is an object with only readonly props,
- * - false if the type is an object with at least one mutable prop.
- */
-function isTypeReadonlyObject(checker, type) {
+function isTypeReadonlyObject(checker, type, seenTypes) {
     function checkIndexSignature(kind) {
         const indexInfo = checker.getIndexInfoOfType(type, kind);
         if (indexInfo) {
-            return indexInfo.isReadonly ? true : false;
+            return indexInfo.isReadonly
+                ? 3 /* Readonly */
+                : 2 /* Mutable */;
         }
-        return null;
+        return 1 /* UnknownType */;
     }
     const properties = type.getProperties();
     if (properties.length) {
         // ensure the properties are marked as readonly
         for (const property of properties) {
             if (!tsutils_1.isPropertyReadonlyInType(type, property.getEscapedName(), checker)) {
-                return false;
+                return 2 /* Mutable */;
             }
         }
         // all properties were readonly
@@ -75,49 +79,62 @@
         // as we might be able to bail out early due to a mutable property before
         // doing this deep, potentially expensive check.
         for (const property of properties) {
-            const propertyType = _1.nullThrows(checker.getTypeOfPropertyOfType(type, property.getName()), _1.NullThrowsReasons.MissingToken(`property "${property.name}"`, 'type'));
-            if (!isTypeReadonly(checker, propertyType)) {
-                return false;
+            const propertyType = _1.nullThrows(_1.getTypeOfPropertyOfType(checker, type, property), _1.NullThrowsReasons.MissingToken(`property "${property.name}"`, 'type'));
+            // handle recursive types.
+            // we only need this simple check, because a mutable recursive type will break via the above prop readonly check
+            if (seenTypes.has(propertyType)) {
+                continue;
+            }
+            if (isTypeReadonlyRecurser(checker, propertyType, seenTypes) ===
+                2 /* Mutable */) {
+                return 2 /* Mutable */;
             }
         }
     }
     const isStringIndexSigReadonly = checkIndexSignature(ts.IndexKind.String);
-    if (isStringIndexSigReadonly === false) {
+    if (isStringIndexSigReadonly === 2 /* Mutable */) {
         return isStringIndexSigReadonly;
     }
     const isNumberIndexSigReadonly = checkIndexSignature(ts.IndexKind.Number);
-    if (isNumberIndexSigReadonly === false) {
+    if (isNumberIndexSigReadonly === 2 /* Mutable */) {
         return isNumberIndexSigReadonly;
     }
-    return true;
+    return 3 /* Readonly */;
+}
+// a helper function to ensure the seenTypes map is always passed down, except by the external caller
+function isTypeReadonlyRecurser(checker, type, seenTypes) {
+    seenTypes.add(type);
+    if (tsutils_1.isUnionType(type)) {
+        // all types in the union must be readonly
+        const result = tsutils_1.unionTypeParts(type).every(t => isTypeReadonlyRecurser(checker, t, seenTypes));
+        const readonlyness = result ? 3 /* Readonly */ : 2 /* Mutable */;
+        return readonlyness;
+    }
+    // all non-object, non-intersection types are readonly.
+    // this should only be primitive types
+    if (!tsutils_1.isObjectType(type) && !tsutils_1.isUnionOrIntersectionType(type)) {
+        return 3 /* Readonly */;
+    }
+    // pure function types are readonly
+    if (type.getCallSignatures().length > 0 &&
+        type.getProperties().length === 0) {
+        return 3 /* Readonly */;
+    }
+    const isReadonlyArray = isTypeReadonlyArrayOrTuple(checker, type, seenTypes);
+    if (isReadonlyArray !== 1 /* UnknownType */) {
+        return isReadonlyArray;
+    }
+    const isReadonlyObject = isTypeReadonlyObject(checker, type, seenTypes);
+    /* istanbul ignore else */ if (isReadonlyObject !== 1 /* UnknownType */) {
+        return isReadonlyObject;
+    }
+    throw new Error('Unhandled type');
 }
 /**
  * Checks if the given type is readonly
  */
 function isTypeReadonly(checker, type) {
-    if (tsutils_1.isUnionType(type)) {
-        // all types in the union must be readonly
-        return tsutils_1.unionTypeParts(type).every(t => isTypeReadonly(checker, t));
-    }
-    // all non-object, non-intersection types are readonly.
-    // this should only be primitive types
-    if (!tsutils_1.isObjectType(type) && !tsutils_1.isUnionOrIntersectionType(type)) {
-        return true;
-    }
-    // pure function types are readonly
-    if (type.getCallSignatures().length > 0 &&
-        type.getProperties().length === 0) {
-        return true;
-    }
-    const isReadonlyArray = isTypeReadonlyArrayOrTuple(checker, type);
-    if (isReadonlyArray !== null) {
-        return isReadonlyArray;
-    }
-    const isReadonlyObject = isTypeReadonlyObject(checker, type);
-    /* istanbul ignore else */ if (isReadonlyObject !== null) {
-        return isReadonlyObject;
-    }
-    throw new Error('Unhandled type');
+    return (isTypeReadonlyRecurser(checker, type, new Set()) === 3 /* Readonly */);
 }
 exports.isTypeReadonly = isTypeReadonly;
 //# sourceMappingURL=isTypeReadonly.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map
index ec3a1cc..7cfab62 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map
@@ -1 +1 @@
-{"version":3,"file":"isTypeReadonly.js","sourceRoot":"","sources":["../../src/util/isTypeReadonly.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"isTypeReadonly.js","sourceRoot":"","sources":["../../src/util/isTypeReadonly.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js
index d878416..0cb96ca 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js
@@ -3,6 +3,7 @@
  * @fileoverview Really small utility functions that didn't deserve their own files
  */
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.upperCaseFirst = exports.isDefinitionFile = exports.getNameFromMember = exports.getNameFromIndexSignature = exports.getEnumNames = exports.findFirstResult = exports.arraysAreEqual = void 0;
 const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
 /**
  * Check if the context file name is *.d.ts or *.d.tsx
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js.map
index db3bfb4..c3a0e48 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js.map
@@ -1 +1 @@
-{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,8EAI+C;AAE/C;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AA8HC,4CAAgB;AA5HlB;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAyHC,wCAAc;AA1FhB,SAAS,cAAc,CACrB,CAAkB,EAClB,CAAkB,EAClB,EAA2B;IAE3B,OAAO,CACL,CAAC,KAAK,CAAC;QACP,CAAC,CAAC,KAAK,SAAS;YACd,CAAC,KAAK,SAAS;YACf,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC;AACJ,CAAC;AAoEC,wCAAc;AAlEhB,gDAAgD;AAChD,SAAS,eAAe,CACtB,MAAW,EACX,SAAkC;IAElC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAyDC,0CAAe;AAvDjB;;GAEG;AACH,SAAgB,yBAAyB,CACvC,IAA+B;IAE/B,MAAM,QAAQ,GAAsC,IAAI,CAAC,UAAU,CAAC,IAAI,CACtE,CAAC,SAA6B,EAAoC,EAAE,CAClE,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,CAC/C,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACxD,CAAC;AARD,8DAQC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,MAOgC,EAChC,UAA+B;IAE/B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;QACjD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;KACxB;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;KAC9B;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAqBC,8CAAiB;AAVnB,SAAS,YAAY,CAAmB,MAA0B;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;AACpE,CAAC;AAOC,oCAAY"}
\ No newline at end of file
+{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8EAI+C;AAE/C;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAiGC,4CAAgB;AA/FlB;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AA4FC,wCAAc;AAvFhB,SAAS,cAAc,CACrB,CAAkB,EAClB,CAAkB,EAClB,EAA2B;IAE3B,OAAO,CACL,CAAC,KAAK,CAAC;QACP,CAAC,CAAC,KAAK,SAAS;YACd,CAAC,KAAK,SAAS;YACf,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YACrB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC;AACJ,CAAC;AAkEC,wCAAc;AAhEhB,gDAAgD;AAChD,SAAS,eAAe,CACtB,MAAW,EACX,SAAkC;IAElC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAuDC,0CAAe;AArDjB;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAA+B;IAChE,MAAM,QAAQ,GAAsC,IAAI,CAAC,UAAU,CAAC,IAAI,CACtE,CAAC,SAA6B,EAAoC,EAAE,CAClE,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,CAC/C,CAAC;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACxD,CAAC;AA8CC,8DAAyB;AA5C3B;;;GAGG;AACH,SAAS,iBAAiB,CACxB,MAOgC,EAChC,UAA+B;IAE/B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;QACjD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;KACxB;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;KAC9B;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAsBC,8CAAiB;AAXnB,SAAS,YAAY,CAAmB,MAA0B;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;AACpE,CAAC;AAOC,oCAAY"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js
index ff9eb73..e5507a2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.NullThrowsReasons = exports.nullThrows = void 0;
 /**
  * A set of common reasons for calling nullThrows
  */
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js.map
index 60ddf86..acc485a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js.map
@@ -1 +1 @@
-{"version":3,"file":"nullThrows.js","sourceRoot":"","sources":["../../src/util/nullThrows.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAC7C,sBAAsB,KAAK,YAAY,KAAK,GAAG;CACzC,CAAC;AAoBU,8CAAiB;AAlBtC;;;GAGG;AACH,SAAS,UAAU,CAAI,KAA2B,EAAE,OAAe;IACjE,oEAAoE;IACpE,4DAA4D;IAC5D,sEAAsE;IAEtE,oCAAoC;IACpC,wBAAwB;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;KAC1D;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEQ,gCAAU"}
\ No newline at end of file
+{"version":3,"file":"nullThrows.js","sourceRoot":"","sources":["../../src/util/nullThrows.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,CAC7C,sBAAsB,KAAK,YAAY,KAAK,GAAG;CACzC,CAAC;AAoBU,8CAAiB;AAlBtC;;;GAGG;AACH,SAAS,UAAU,CAAI,KAA2B,EAAE,OAAe;IACjE,oEAAoE;IACpE,4DAA4D;IAC5D,sEAAsE;IAEtE,oCAAoC;IACpC,wBAAwB;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;KAC1D;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEQ,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js
new file mode 100644
index 0000000..16f7336
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.objectReduceKey = exports.objectMapKey = exports.objectForEachKey = void 0;
+function objectForEachKey(obj, callback) {
+    const keys = Object.keys(obj);
+    for (const key of keys) {
+        callback(key);
+    }
+}
+exports.objectForEachKey = objectForEachKey;
+function objectMapKey(obj, callback) {
+    const values = [];
+    objectForEachKey(obj, key => {
+        values.push(callback(key));
+    });
+    return values;
+}
+exports.objectMapKey = objectMapKey;
+function objectReduceKey(obj, callback, initial) {
+    let accumulator = initial;
+    objectForEachKey(obj, key => {
+        accumulator = callback(accumulator, key);
+    });
+    return accumulator;
+}
+exports.objectReduceKey = objectReduceKey;
+//# sourceMappingURL=objectIterators.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js.map
new file mode 100644
index 0000000..82a35bf
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/objectIterators.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"objectIterators.js","sourceRoot":"","sources":["../../src/util/objectIterators.ts"],"names":[],"mappings":";;;AAAA,SAAS,gBAAgB,CACvB,GAAM,EACN,QAAgC;IAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,QAAQ,CAAC,GAAG,CAAC,CAAC;KACf;AACH,CAAC;AAyBQ,4CAAgB;AAvBzB,SAAS,YAAY,CACnB,GAAM,EACN,QAAmC;IAEnC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAc0B,oCAAY;AAZvC,SAAS,eAAe,CACtB,GAAM,EACN,QAA2D,EAC3D,OAAqB;IAErB,IAAI,WAAW,GAAG,OAAO,CAAC;IAC1B,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAC1B,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAEwC,0CAAe"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js
new file mode 100644
index 0000000..6470d8f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getTypeOfPropertyOfType = exports.getTypeOfPropertyOfName = void 0;
+function getTypeOfPropertyOfName(checker, type, name, escapedName) {
+    // Most names are directly usable in the checker and aren't different from escaped names
+    if (!escapedName || !name.startsWith('__')) {
+        return checker.getTypeOfPropertyOfType(type, name);
+    }
+    // Symbolic names may differ in their escaped name compared to their human-readable name
+    // https://github.com/typescript-eslint/typescript-eslint/issues/2143
+    const escapedProperty = type
+        .getProperties()
+        .find(property => property.escapedName === escapedName);
+    return escapedProperty
+        ? checker.getDeclaredTypeOfSymbol(escapedProperty)
+        : undefined;
+}
+exports.getTypeOfPropertyOfName = getTypeOfPropertyOfName;
+function getTypeOfPropertyOfType(checker, type, property) {
+    return getTypeOfPropertyOfName(checker, type, property.getName(), property.getEscapedName());
+}
+exports.getTypeOfPropertyOfType = getTypeOfPropertyOfType;
+//# sourceMappingURL=propertyTypes.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map
new file mode 100644
index 0000000..06e4a07
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"propertyTypes.js","sourceRoot":"","sources":["../../src/util/propertyTypes.ts"],"names":[],"mappings":";;;AAEA,SAAgB,uBAAuB,CACrC,OAAuB,EACvB,IAAa,EACb,IAAY,EACZ,WAAyB;IAEzB,wFAAwF;IACxF,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1C,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,wFAAwF;IACxF,qEAAqE;IACrE,MAAM,eAAe,GAAG,IAAI;SACzB,aAAa,EAAE;SACf,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IAE1D,OAAO,eAAe;QACpB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AApBD,0DAoBC;AAED,SAAgB,uBAAuB,CACrC,OAAuB,EACvB,IAAa,EACb,QAAmB;IAEnB,OAAO,uBAAuB,CAC5B,OAAO,EACP,IAAI,EACJ,QAAQ,CAAC,OAAO,EAAE,EAClB,QAAQ,CAAC,cAAc,EAAE,CAC1B,CAAC;AACJ,CAAC;AAXD,0DAWC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js
index 47b7b58..bb543a3 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js
@@ -1,14 +1,45 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getContextualType = exports.isUnsafeAssignment = exports.isAnyOrAnyArrayTypeDiscriminated = exports.isTypeUnknownArrayType = exports.isTypeAnyArrayType = exports.isTypeAnyType = exports.isTypeUnknownType = exports.getTypeArguments = exports.getEqualsKind = exports.getTokenAtPosition = exports.getSourceFileOfNode = exports.typeIsOrHasBaseType = exports.isTypeFlagSet = exports.getTypeFlags = exports.getDeclaration = exports.isNullableType = exports.getConstrainedTypeAtLocation = exports.getTypeName = exports.containsAllTypesByName = exports.isTypeArrayTypeOrUnionOfArrayTypes = void 0;
+const debug_1 = __importDefault(require("debug"));
 const tsutils_1 = require("tsutils");
 const ts = __importStar(require("typescript"));
+const log = debug_1.default('typescript-eslint:eslint-plugin:utils:types');
+/**
+ * Checks if the given type is either an array type,
+ * or a union made up solely of array types.
+ */
+function isTypeArrayTypeOrUnionOfArrayTypes(type, checker) {
+    for (const t of tsutils_1.unionTypeParts(type)) {
+        if (!checker.isArrayType(t)) {
+            return false;
+        }
+    }
+    return true;
+}
+exports.isTypeArrayTypeOrUnionOfArrayTypes = isTypeArrayTypeOrUnionOfArrayTypes;
 /**
  * @param type Type being checked by name.
  * @param allowedNames Symbol names checking on the type.
@@ -21,8 +52,8 @@
     if (tsutils_1.isTypeReference(type)) {
         type = type.target;
     }
-    if (typeof type.symbol !== 'undefined' &&
-        allowedNames.has(type.symbol.name)) {
+    const symbol = type.getSymbol();
+    if (symbol && allowedNames.has(symbol.name)) {
         return true;
     }
     if (tsutils_1.isUnionOrIntersectionType(type)) {
@@ -51,9 +82,12 @@
         // `type.getConstraint()` method doesn't return the constraint type of
         // the type parameter for some reason. So this gets the constraint type
         // via AST.
-        const node = type.symbol.declarations[0];
-        if (node.constraint != null) {
-            return getTypeName(typeChecker, typeChecker.getTypeFromTypeNode(node.constraint));
+        const symbol = type.getSymbol();
+        const decls = symbol === null || symbol === void 0 ? void 0 : symbol.getDeclarations();
+        const typeParamDecl = decls === null || decls === void 0 ? void 0 : decls[0];
+        if (ts.isTypeParameterDeclaration(typeParamDecl) &&
+            typeParamDecl.constraint != null) {
+            return getTypeName(typeChecker, typeChecker.getTypeFromTypeNode(typeParamDecl.constraint));
         }
     }
     // If the type is a union and all types in the union are string like,
@@ -83,7 +117,7 @@
 function getConstrainedTypeAtLocation(checker, node) {
     const nodeType = checker.getTypeAtLocation(node);
     const constrained = checker.getBaseConstraintOfType(nodeType);
-    return (constrained !== null && constrained !== void 0 ? constrained : nodeType);
+    return constrained !== null && constrained !== void 0 ? constrained : nodeType;
 }
 exports.getConstrainedTypeAtLocation = getConstrainedTypeAtLocation;
 /**
@@ -107,15 +141,13 @@
  * Gets the declaration for the given variable
  */
 function getDeclaration(checker, node) {
+    var _a;
     const symbol = checker.getSymbolAtLocation(node);
     if (!symbol) {
         return null;
     }
-    const declarations = symbol.declarations;
-    if (!declarations) {
-        return null;
-    }
-    return declarations[0];
+    const declarations = symbol.getDeclarations();
+    return (_a = declarations === null || declarations === void 0 ? void 0 : declarations[0]) !== null && _a !== void 0 ? _a : null;
 }
 exports.getDeclaration = getDeclaration;
 /**
@@ -145,17 +177,18 @@
  * @returns Whether a type is an instance of the parent type, including for the parent's base types.
  */
 function typeIsOrHasBaseType(type, parentType) {
-    if (type.symbol === undefined || parentType.symbol === undefined) {
+    const parentSymbol = parentType.getSymbol();
+    if (!type.getSymbol() || !parentSymbol) {
         return false;
     }
     const typeAndBaseTypes = [type];
     const ancestorTypes = type.getBaseTypes();
-    if (ancestorTypes !== undefined) {
+    if (ancestorTypes) {
         typeAndBaseTypes.push(...ancestorTypes);
     }
     for (const baseType of typeAndBaseTypes) {
-        if (baseType.symbol !== undefined &&
-            baseType.symbol.name === parentType.symbol.name) {
+        const baseSymbol = baseType.getSymbol();
+        if (baseSymbol && baseSymbol.name === parentSymbol.name) {
             return true;
         }
     }
@@ -214,7 +247,7 @@
             };
         case '!==':
             return {
-                isPositive: true,
+                isPositive: false,
                 isStrict: true,
             };
         default:
@@ -222,4 +255,157 @@
     }
 }
 exports.getEqualsKind = getEqualsKind;
+function getTypeArguments(type, checker) {
+    var _a;
+    // getTypeArguments was only added in TS3.7
+    if (checker.getTypeArguments) {
+        return checker.getTypeArguments(type);
+    }
+    return (_a = type.typeArguments) !== null && _a !== void 0 ? _a : [];
+}
+exports.getTypeArguments = getTypeArguments;
+/**
+ * @returns true if the type is `unknown`
+ */
+function isTypeUnknownType(type) {
+    return isTypeFlagSet(type, ts.TypeFlags.Unknown);
+}
+exports.isTypeUnknownType = isTypeUnknownType;
+/**
+ * @returns true if the type is `any`
+ */
+function isTypeAnyType(type) {
+    if (isTypeFlagSet(type, ts.TypeFlags.Any)) {
+        if (type.intrinsicName === 'error') {
+            log('Found an "error" any type');
+        }
+        return true;
+    }
+    return false;
+}
+exports.isTypeAnyType = isTypeAnyType;
+/**
+ * @returns true if the type is `any[]`
+ */
+function isTypeAnyArrayType(type, checker) {
+    return (checker.isArrayType(type) &&
+        isTypeAnyType(
+        // getTypeArguments was only added in TS3.7
+        getTypeArguments(type, checker)[0]));
+}
+exports.isTypeAnyArrayType = isTypeAnyArrayType;
+/**
+ * @returns true if the type is `unknown[]`
+ */
+function isTypeUnknownArrayType(type, checker) {
+    return (checker.isArrayType(type) &&
+        isTypeUnknownType(
+        // getTypeArguments was only added in TS3.7
+        getTypeArguments(type, checker)[0]));
+}
+exports.isTypeUnknownArrayType = isTypeUnknownArrayType;
+/**
+ * @returns `AnyType.Any` if the type is `any`, `AnyType.AnyArray` if the type is `any[]` or `readonly any[]`,
+ *          otherwise it returns `AnyType.Safe`.
+ */
+function isAnyOrAnyArrayTypeDiscriminated(node, checker) {
+    const type = checker.getTypeAtLocation(node);
+    if (isTypeAnyType(type)) {
+        return 0 /* Any */;
+    }
+    if (isTypeAnyArrayType(type, checker)) {
+        return 1 /* AnyArray */;
+    }
+    return 2 /* Safe */;
+}
+exports.isAnyOrAnyArrayTypeDiscriminated = isAnyOrAnyArrayTypeDiscriminated;
+/**
+ * Does a simple check to see if there is an any being assigned to a non-any type.
+ *
+ * This also checks generic positions to ensure there's no unsafe sub-assignments.
+ * Note: in the case of generic positions, it makes the assumption that the two types are the same.
+ *
+ * @example See tests for examples
+ *
+ * @returns false if it's safe, or an object with the two types if it's unsafe
+ */
+function isUnsafeAssignment(type, receiver, checker) {
+    var _a, _b;
+    if (isTypeAnyType(type)) {
+        // Allow assignment of any ==> unknown.
+        if (isTypeUnknownType(receiver)) {
+            return false;
+        }
+        if (!isTypeAnyType(receiver)) {
+            return { sender: type, receiver };
+        }
+    }
+    if (tsutils_1.isTypeReference(type) && tsutils_1.isTypeReference(receiver)) {
+        // TODO - figure out how to handle cases like this,
+        // where the types are assignable, but not the same type
+        /*
+        function foo(): ReadonlySet<number> { return new Set<any>(); }
+    
+        // and
+    
+        type Test<T> = { prop: T }
+        type Test2 = { prop: string }
+        declare const a: Test<any>;
+        const b: Test2 = a;
+        */
+        if (type.target !== receiver.target) {
+            // if the type references are different, assume safe, as we won't know how to compare the two types
+            // the generic positions might not be equivalent for both types
+            return false;
+        }
+        const typeArguments = (_a = type.typeArguments) !== null && _a !== void 0 ? _a : [];
+        const receiverTypeArguments = (_b = receiver.typeArguments) !== null && _b !== void 0 ? _b : [];
+        for (let i = 0; i < typeArguments.length; i += 1) {
+            const arg = typeArguments[i];
+            const receiverArg = receiverTypeArguments[i];
+            const unsafe = isUnsafeAssignment(arg, receiverArg, checker);
+            if (unsafe) {
+                return { sender: type, receiver };
+            }
+        }
+        return false;
+    }
+    return false;
+}
+exports.isUnsafeAssignment = isUnsafeAssignment;
+/**
+ * Returns the contextual type of a given node.
+ * Contextual type is the type of the target the node is going into.
+ * i.e. the type of a called function's parameter, or the defined type of a variable declaration
+ */
+function getContextualType(checker, node) {
+    const parent = node.parent;
+    if (!parent) {
+        return;
+    }
+    if (tsutils_1.isCallExpression(parent) || tsutils_1.isNewExpression(parent)) {
+        if (node === parent.expression) {
+            // is the callee, so has no contextual type
+            return;
+        }
+    }
+    else if (tsutils_1.isVariableDeclaration(parent) ||
+        tsutils_1.isPropertyDeclaration(parent) ||
+        tsutils_1.isParameterDeclaration(parent)) {
+        return parent.type ? checker.getTypeFromTypeNode(parent.type) : undefined;
+    }
+    else if (tsutils_1.isJsxExpression(parent)) {
+        return checker.getContextualType(parent);
+    }
+    else if (tsutils_1.isPropertyAssignment(parent) && tsutils_1.isIdentifier(node)) {
+        return checker.getContextualType(node);
+    }
+    else if (![ts.SyntaxKind.TemplateSpan, ts.SyntaxKind.JsxExpression].includes(parent.kind)) {
+        // parent is not something we know we can get the contextual type of
+        return;
+    }
+    // TODO - support return statement checking
+    return checker.getContextualType(node);
+}
+exports.getContextualType = getContextualType;
 //# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map
index 8d55857..275e1ee 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map
+++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map
@@ -1 +1 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md
index 58f99dc..2509793 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md
@@ -1,11 +1,12 @@
-# Bans `// @ts-<directive>` comments from being used (`ban-ts-comment`)
+# Bans `// @ts-<directive>` comments from being used or requires descriptions after directive (`ban-ts-comment`)
 
 TypeScript provides several directive comments that can be used to alter how it processes files.
 Using these to suppress TypeScript Compiler Errors reduces the effectiveness of TypeScript overall.
 
 The directive comments supported by TypeScript are:
 
-```
+```ts
+// @ts-expect-error
 // @ts-ignore
 // @ts-nocheck
 // @ts-check
@@ -14,24 +15,30 @@
 ## Rule Details
 
 This rule lets you set which directive comments you want to allow in your codebase.
-By default, only `@ts-check` is allowed, as it enables rather then suppresses errors.
+By default, only `@ts-check` is allowed, as it enables rather than suppresses errors.
 
 The configuration looks like this:
 
-```
+```ts
 interface Options {
-  'ts-ignore'?: boolean;
-  'ts-nocheck'?: boolean;
-  'ts-check'?: boolean;
+  'ts-expect-error'?: boolean | 'allow-with-description';
+  'ts-ignore'?: boolean | 'allow-with-description';
+  'ts-nocheck'?: boolean | 'allow-with-description';
+  'ts-check'?: boolean | 'allow-with-description';
+  minimumDescriptionLength?: number;
 }
 
 const defaultOptions: Options = {
+  'ts-expect-error': 'allow-with-description',
   'ts-ignore': true,
   'ts-nocheck': true,
-  'ts-check': false
-}
+  'ts-check': false,
+  minimumDescriptionLength: 3,
+};
 ```
 
+### `ts-expect-error`, `ts-ignore`, `ts-nocheck`, `ts-check` directives
+
 A value of `true` for a particular directive means that this rule will report if it finds any usage of said directive.
 
 For example, with the defaults above the following patterns are considered warnings:
@@ -52,6 +59,50 @@
 }
 ```
 
+### `allow-with-description`
+
+A value of `'allow-with-description'` for a particular directive means that this rule will report if it finds a directive that does not have a description following the directive (on the same line).
+
+For example, with `{ 'ts-expect-error': 'allow-with-description' }` the following pattern is considered a warning:
+
+```ts
+if (false) {
+  // @ts-expect-error
+  console.log('hello');
+}
+```
+
+The following pattern is not a warning:
+
+```ts
+if (false) {
+  // @ts-expect-error: Unreachable code error
+  console.log('hello');
+}
+```
+
+### `minimumDescriptionLength`
+
+Use `minimumDescriptionLength` to set a minimum length for descriptions when using the `allow-with-description` option for a directive.
+
+For example, with `{ 'ts-expect-error': 'allow-with-description', minimumDescriptionLength: 10 }` the following pattern is considered a warning:
+
+```ts
+if (false) {
+  // @ts-expect-error: TODO
+  console.log('hello');
+}
+```
+
+The following pattern is not a warning:
+
+```ts
+if (false) {
+  // @ts-expect-error The rationale for this override is described in issue #1337 on GitLab
+  console.log('hello');
+}
+```
+
 ## When Not To Use It
 
 If you want to use all of the TypeScript directives.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-ignore.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-ignore.md
deleted file mode 100644
index 8f69c86..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-ignore.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Bans “// @ts-ignore” comments from being used (`ban-ts-ignore`)
-
-This rule has been deprecated in favor of [`ban-ts-comment`](./ban-ts-comment.md)
-
-Suppressing TypeScript Compiler Errors can be hard to discover.
-
-## Rule Details
-
-Does not allow the use of `// @ts-ignore` comments.
-
-The following patterns are considered warnings:
-
-```ts
-if (false) {
-  // @ts-ignore: Unreachable code error
-  console.log('hello');
-}
-```
-
-The following patterns are not warnings:
-
-```ts
-if (false) {
-  // Compiler warns about unreachable code error
-  console.log('hello');
-}
-```
-
-## When Not To Use It
-
-If you are sure, compiler errors won't affect functionality and you need to disable them.
-
-## Further Reading
-
-- TypeScript [Type Checking JavaScript Files](https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html)
-
-## Compatibility
-
-- TSLint: [ban-ts-ignore](https://palantir.github.io/tslint/rules/ban-ts-ignore/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-tslint-comment.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-tslint-comment.md
new file mode 100644
index 0000000..6af168f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-tslint-comment.md
@@ -0,0 +1,29 @@
+# Bans `// tslint:<rule-flag>` comments from being used (`ban-tslint-comment`)
+
+Useful when migrating from TSLint to ESLint. Once TSLint has been removed, this rule helps locate TSLint annotations (e.g. `// tslint:disable`).
+
+## Rule Details
+
+Examples of **incorrect** code for this rule:
+
+All TSLint [rule flags](https://palantir.github.io/tslint/usage/rule-flags/)
+
+```js
+/* tslint:disable */
+/* tslint:enable */
+/* tslint:disable:rule1 rule2 rule3... */
+/* tslint:enable:rule1 rule2 rule3... */
+// tslint:disable-next-line
+someCode(); // tslint:disable-line
+// tslint:disable-next-line:rule1 rule2 rule3...
+```
+
+Examples of **correct** code for this rule:
+
+```js
+// This is a comment that just happens to mention tslint
+```
+
+## When Not To Use It
+
+If you are still using TSLint.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md
index e92e57b..ab8320d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md
@@ -1,93 +1,62 @@
 # Bans specific types from being used (`ban-types`)
 
-This rule bans specific types and can suggest alternatives. It does not ban the
-corresponding runtime objects from being used.
+Some builtin types have aliases, some types are considered dangerous or harmful.
+It's often a good idea to ban certain types to help with consistency and safety.
 
 ## Rule Details
 
-Examples of **incorrect** code for this rule `"String": "Use string instead"`
-
-```ts
-class Foo<F = String> extends Bar<String> implements Baz<String> {
-  constructor(foo: String) {}
-
-  exit(): Array<String> {
-    const foo: String = 1 as String;
-  }
-}
-```
-
-Examples of **correct** code for this rule `"String": "Use string instead"`
-
-```ts
-class Foo<F = string> extends Bar<string> implements Baz<string> {
-  constructor(foo: string) {}
-
-  exit(): Array<string> {
-    const foo: string = 1 as string;
-  }
-}
-```
+This rule bans specific types and can suggest alternatives.
+Note that it does not ban the corresponding runtime objects from being used.
 
 ## Options
 
-The banned type can either be a type name literal (`Foo`), a type name with generic parameter instantiations(s) (`Foo<Bar>`), or the empty object literal (`{}`).
-
-```CJSON
-{
-    "@typescript-eslint/ban-types": ["error", {
-        "types": {
-            // report usages of the type using the default error message
-            "Foo": null,
-
-            // add a custom message to help explain why not to use it
-            "Bar": "Don't use bar!",
-
-            // add a custom message, AND tell the plugin how to fix it
-            "String": {
-                "message": "Use string instead",
-                "fixWith": "string"
-            }
-
-            "{}": {
-              "message": "Use object instead",
-              "fixWith": "object"
-            }
-        }
-    }]
-}
+```ts
+type Options = {
+  types?: {
+    [typeName: string]:
+      | false
+      | string
+      | {
+          message: string;
+          fixWith?: string;
+        };
+  };
+  extendDefaults?: boolean;
+};
 ```
 
-By default, this rule includes types which are likely to be mistakes, such as `String` and `Number`. If you don't want these enabled, set the `extendDefaults` option to `false`:
+The rule accepts a single object as options, with the following keys:
 
-```CJSON
-{
-    "@typescript-eslint/ban-types": ["error", {
-        "types": {
-            // add a custom message, AND tell the plugin how to fix it
-            "String": {
-                "message": "Use string instead",
-                "fixWith": "string"
-            }
-        },
-        "extendDefaults": false
-    }]
-}
-```
+- `types` - An object whose keys are the types you want to ban, and the values are error messages.
+  - The type can either be a type name literal (`Foo`), a type name with generic parameter instantiation(s) (`Foo<Bar>`), or the empty object literal (`{}`).
+  - The values can be a string, which is the error message to be reported, `false` to specifically disable this type
+    or it can be an object with the following properties:
+    - `message: string` - the message to display when the type is matched.
+    - `fixWith?: string` - a string to replace the banned type with when the fixer is run. If this is omitted, no fix will be done.
+- `extendDefaults` - if you're specifying custom `types`, you can set this to `true` to extend the default `types` configuration.
+  - This is a convenience option to save you copying across the defaults when adding another type.
+  - If this is `false`, the rule will _only_ use the types defined in your configuration.
 
-### Example
+Example configuration:
 
-```json
+```jsonc
 {
   "@typescript-eslint/ban-types": [
     "error",
     {
       "types": {
-        "Array": null,
-        "Object": "Use {} instead",
+        // add a custom message to help explain why not to use it
+        "Foo": "Don't use Foo because it is unsafe",
+
+        // add a custom message, AND tell the plugin how to fix it
         "String": {
           "message": "Use string instead",
           "fixWith": "string"
+        },
+
+        "{}": {
+          "message": "Use object instead",
+          "fixWith": "object"
         }
       }
     }
@@ -95,6 +64,124 @@
 }
 ```
 
+### Default Options
+
+The default options provide a set of "best practices", intended to provide safety and standardization in your codebase:
+
+- Don't use the upper-case primitive types, you should use the lower-case types for consistency.
+- Avoid the `Function` type, as it provides little safety for the following reasons:
+  - It provides no type safety when calling the value, which means it's easy to provide the wrong arguments.
+  - It accepts class declarations, which will fail when called, as they are called without the `new` keyword.
+- Avoid the `Object` and `{}` types, as they mean "any non-nullish value".
+  - This is a point of confusion for many developers, who think it means "any object type".
+- Avoid the `object` type, as it is currently hard to use due to not being able to assert that keys exist.
+  - See [microsoft/TypeScript#21732](https://github.com/microsoft/TypeScript/issues/21732).
+
+**_Important note:_** the default options suggest using `Record<string, unknown>`; this was a stylistic decision, as the built-in `Record` type is considered to look cleaner.
+
+<details>
+<summary>Default Options</summary>
+
+```ts
+const defaultTypes = {
+  String: {
+    message: 'Use string instead',
+    fixWith: 'string',
+  },
+  Boolean: {
+    message: 'Use boolean instead',
+    fixWith: 'boolean',
+  },
+  Number: {
+    message: 'Use number instead',
+    fixWith: 'number',
+  },
+  Symbol: {
+    message: 'Use symbol instead',
+    fixWith: 'symbol',
+  },
+
+  Function: {
+    message: [
+      'The `Function` type accepts any function-like value.',
+      'It provides no type safety when calling the function, which can be a common source of bugs.',
+      'It also accepts things like class declarations, which will throw at runtime as they will not be called with `new`.',
+      'If you are expecting the function to accept certain arguments, you should explicitly define the function shape.',
+    ].join('\n'),
+  },
+
+  // object typing
+  Object: {
+    message: [
+      'The `Object` type actually means "any non-nullish value", so it is marginally better than `unknown`.',
+      '- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
+      '- If you want a type meaning "any value", you probably want `unknown` instead.',
+    ].join('\n'),
+  },
+  '{}': {
+    message: [
+      '`{}` actually means "any non-nullish value".',
+      '- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
+      '- If you want a type meaning "any value", you probably want `unknown` instead.',
+    ].join('\n'),
+  },
+  object: {
+    message: [
+      'The `object` type is currently hard to use ([see this issue](https://github.com/microsoft/TypeScript/issues/21732)).',
+      'Consider using `Record<string, unknown>` instead, as it allows you to more easily inspect and use the keys.',
+    ].join('\n'),
+  },
+};
+```
+
+</details>
+
+### Examples
+
+Examples of **incorrect** code with the default options:
+
+```ts
+// use lower-case primitives for consistency
+const str: String = 'foo';
+const bool: Boolean = true;
+const num: Number = 1;
+const symb: Symbol = Symbol('foo');
+
+// use a proper function type
+const func: Function = () => 1;
+
+// use safer object types
+const lowerObj: object = {};
+
+const capitalObj1: Object = 1;
+const capitalObj2: Object = { a: 'string' };
+
+const curly1: {} = 1;
+const curly2: {} = { a: 'string' };
+```
+
+Examples of **correct** code with the default options:
+
+```ts
+// use lower-case primitives for consistency
+const str: string = 'foo';
+const bool: boolean = true;
+const num: number = 1;
+const symb: symbol = Symbol('foo');
+
+// use a proper function type
+const func: () => number = () => 1;
+
+// use safer object types
+const lowerObj: Record<string, unknown> = {};
+
+const capitalObj1: number = 1;
+const capitalObj2: { a: string } = { a: 'string' };
+
+const curly1: number = 1;
+const curly2: Record<'a', string> = { a: 'string' };
+```
+
 ## Compatibility
 
 - TSLint: [ban-types](https://palantir.github.io/tslint/rules/ban-types/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/brace-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/brace-style.md
index c8268de..06dfa16 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/brace-style.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/brace-style.md
@@ -3,11 +3,11 @@
 ## Rule Details
 
 This rule extends the base [`eslint/brace-style`](https://eslint.org/docs/rules/brace-style) rule.
-It supports all options and features of the base rule.
+It adds support for `enum`, `interface`, `namespace` and `module` declarations.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "brace-style": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md
index f0b49d0..cea2822 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md
@@ -1,298 +1,8 @@
-# Enforce camelCase naming convention (`camelcase`)
+## DEPRECATED
 
-When it comes to naming variables, style guides generally fall into one of two
-camps: camelCase (`variableName`) and underscores (`variable_name`). This rule
-focuses on using the camelCase approach. If your style guide calls for
-camelCasing your variable names, then this rule is for you!
+This rule has been deprecated in favour of the [`naming-convention`](./naming-convention.md) rule.
 
-## Rule Details
-
-This rule looks for any underscores (`_`) located within the source code.
-It ignores leading and trailing underscores and only checks those in the middle
-of a variable name. If ESLint decides that the variable is a constant
-(all uppercase), then no warning will be thrown. Otherwise, a warning will be
-thrown. This rule only flags definitions and assignments but not function calls.
-In case of ES6 `import` statements, this rule only targets the name of the
-variable that will be imported into the local module scope.
-
-**_This rule was taken from the ESLint core rule `camelcase`._**
-**_Available options and test cases may vary depending on the version of ESLint installed in the system._**
-
-## Options
-
-```cjson
-{
-    // note you must disable the base rule as it can report incorrect errors
-    "camelcase": "off",
-    "@typescript-eslint/camelcase": ["error", { "properties": "always" }]
-}
-```
-
-This rule has an object option:
-
-- `"properties": "never"` (default) does not check property names
-- `"properties": "always"` enforces camelCase style for property names
-- `"genericType": "never"` (default) does not check generic identifiers
-- `"genericType": "always"` enforces camelCase style for generic identifiers
-- `"ignoreDestructuring": false` (default) enforces camelCase style for destructured identifiers
-- `"ignoreDestructuring": true` does not check destructured identifiers
-- `allow` (`string[]`) list of properties to accept. Accept regex.
-
-### properties: "always"
-
-Examples of **incorrect** code for this rule with the default `{ "properties": "always" }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: "error"*/
-
-import { no_camelcased } from 'external-module';
-
-var my_favorite_color = '#112C85';
-
-function do_something() {
-  // ...
-}
-
-obj.do_something = function() {
-  // ...
-};
-
-function foo({ no_camelcased }) {
-  // ...
-}
-
-function foo({ isCamelcased: no_camelcased }) {
-  // ...
-}
-
-function foo({ no_camelcased = 'default value' }) {
-  // ...
-}
-
-var obj = {
-  my_pref: 1,
-};
-
-var { category_id = 1 } = query;
-
-var { foo: no_camelcased } = bar;
-
-var { foo: bar_baz = 1 } = quz;
-```
-
-Examples of **correct** code for this rule with the default `{ "properties": "always" }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: "error"*/
-
-import { no_camelcased as camelCased } from 'external-module';
-
-var myFavoriteColor = '#112C85';
-var _myFavoriteColor = '#112C85';
-var myFavoriteColor_ = '#112C85';
-var MY_FAVORITE_COLOR = '#112C85';
-var foo = bar.baz_boom;
-var foo = { qux: bar.baz_boom };
-
-obj.do_something();
-do_something();
-new do_something();
-
-var { category_id: category } = query;
-
-function foo({ isCamelCased }) {
-  // ...
-}
-
-function foo({ isCamelCased: isAlsoCamelCased }) {
-  // ...
-}
-
-function foo({ isCamelCased = 'default value' }) {
-  // ...
-}
-
-var { categoryId = 1 } = query;
-
-var { foo: isCamelCased } = bar;
-
-var { foo: isCamelCased = 1 } = quz;
-```
-
-### `properties: "never"`
-
-Examples of **correct** code for this rule with the `{ "properties": "never" }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: ["error", {properties: "never"}]*/
-
-var obj = {
-  my_pref: 1,
-};
-```
-
-### `genericType: "always"`
-
-Examples of **incorrect** code for this rule with the default `{ "genericType": "always" }` option:
-
-```typescript
-/* eslint @typescript-eslint/camelcase: ["error", { "genericType": "always" }] */
-
-interface Foo<t_foo> {}
-function foo<t_foo>() {}
-class Foo<t_foo> {}
-type Foo<t_foo> = {};
-class Foo {
-  method<t_foo>() {}
-}
-
-interface Foo<t_foo extends object> {}
-function foo<t_foo extends object>() {}
-class Foo<t_foo extends object> {}
-type Foo<t_foo extends object> = {};
-class Foo {
-  method<t_foo extends object>() {}
-}
-
-interface Foo<t_foo = object> {}
-function foo<t_foo = object>() {}
-class Foo<t_foo = object> {}
-type Foo<t_foo = object> = {};
-class Foo {
-  method<t_foo = object>() {}
-}
-```
-
-Examples of **correct** code for this rule with the default `{ "genericType": "always" }` option:
-
-```typescript
-/* eslint @typescript-eslint/camelcase: ["error", { "genericType": "always" }] */
-
-interface Foo<T> {}
-function foo<t>() {}
-class Foo<T> {}
-type Foo<T> = {};
-class Foo {
-  method<T>() {}
-}
-
-interface Foo<T extends object> {}
-function foo<T extends object>() {}
-class Foo<T extends object> {}
-type Foo<T extends object> = {};
-class Foo {
-  method<T extends object>() {}
-}
-
-interface Foo<T = object> {}
-function foo<T = object>() {}
-class Foo<T = object> {}
-type Foo<T = object> = {};
-class Foo {
-  method<T = object>() {}
-}
-```
-
-### `genericType: "never"`
-
-Examples of **correct** code for this rule with the `{ "genericType": "never" }` option:
-
-```typescript
-/* eslint @typescript-eslint/camelcase: ["error", { "genericType": "never" }] */
-
-interface Foo<t_foo> {}
-function foo<t_foo>() {}
-class Foo<t_foo> {}
-type Foo<t_foo> = {};
-class Foo {
-  method<t_foo>() {}
-}
-
-interface Foo<t_foo extends object> {}
-function foo<t_foo extends object>() {}
-class Foo<t_foo extends object> {}
-type Foo<t_foo extends object> = {};
-class Foo {
-  method<t_foo extends object>() {}
-}
-
-interface Foo<t_foo = object> {}
-function foo<t_foo = object>() {}
-class Foo<t_foo = object> {}
-type Foo<t_foo = object> = {};
-class Foo {
-  method<t_foo = object>() {}
-}
-```
-
-### `ignoreDestructuring: false`
-
-Examples of **incorrect** code for this rule with the default `{ "ignoreDestructuring": false }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: "error"*/
-
-var { category_id } = query;
-
-var { category_id = 1 } = query;
-
-var { category_id: category_id } = query;
-
-var { category_id: category_alias } = query;
-
-var { category_id: categoryId, ...other_props } = query;
-```
-
-### `ignoreDestructuring: true`
-
-Examples of **incorrect** code for this rule with the `{ "ignoreDestructuring": true }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: ["error", {ignoreDestructuring: true}]*/
-
-var { category_id: category_alias } = query;
-
-var { category_id, ...other_props } = query;
-```
-
-Examples of **correct** code for this rule with the `{ "ignoreDestructuring": true }` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: ["error", {ignoreDestructuring: true}]*/
-
-var { category_id } = query;
-
-var { category_id = 1 } = query;
-
-var { category_id: category_id } = query;
-```
-
-## allow
-
-Examples of **correct** code for this rule with the `allow` option:
-
-```js
-/*eslint @typescript-eslint/camelcase: ["error", {allow: ["UNSAFE_componentWillMount"]}]*/
-
-function UNSAFE_componentWillMount() {
-  // ...
-}
-```
-
-```js
-/*eslint @typescript-eslint/camelcase: ["error", {allow: ["^UNSAFE_"]}]*/
-
-function UNSAFE_componentWillMount() {
-  // ...
-}
-
-function UNSAFE_componentWillMount() {
-  // ...
-}
-```
-
-## When Not To Use It
-
-If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off.
-
-<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/camelcase.md)</sup>
+<!--
+This doc file has been left on purpose because `camelcase` is a core eslint rule.
+This exists to help direct people to the replacement rule.
+-->
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-literal-property-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-literal-property-style.md
new file mode 100644
index 0000000..1bca839
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-literal-property-style.md
@@ -0,0 +1,96 @@
+# Ensures that literals on classes are exposed in a consistent style (`class-literal-property-style`)
+
+When writing TypeScript applications, it's typically safe to store literal values on classes using fields with the `readonly` modifier to prevent them from being reassigned.
+When writing TypeScript libraries that could be used by JavaScript users however, it's typically safer to expose these literals using `getter`s, since the `readonly` modifier is enforced at compile type.
+
+## Rule Details
+
+This rule aims to ensure that literals exposed by classes are done so consistently, in one of the two style described above.
+By default this rule prefers the `fields` style as it means JS doesn't have to setup & teardown a function closure.
+
+Note that this rule only checks for constant _literal_ values (string, template string, number, bigint, boolean, regexp, null). It does not check objects or arrays, because a readonly field behaves differently to a getter in those cases. It also does not check functions, as it is a common pattern to use readonly fields with arrow function values as auto-bound methods.
+This is because these types can be mutated and carry with them more complex implications about their usage.
+
+### The `fields` style
+
+This style checks for any getter methods that return literal values, and requires them to be defined using fields with the `readonly` modifier instead.
+
+Examples of **correct** code with the `fields` style:
+
+```ts
+/* eslint @typescript-eslint/class-literal-property-style: ["error", "fields"] */
+
+class Mx {
+  public readonly myField1 = 1;
+
+  // not a literal
+  public readonly myField2 = [1, 2, 3];
+
+  private readonly ['myField3'] = 'hello world';
+
+  public get myField4() {
+    return `hello from ${window.location.href}`;
+  }
+}
+```
+
+Examples of **incorrect** code with the `fields` style:
+
+```ts
+/* eslint @typescript-eslint/class-literal-property-style: ["error", "fields"] */
+
+class Mx {
+  public static get myField1() {
+    return 1;
+  }
+
+  private get ['myField2']() {
+    return 'hello world';
+  }
+}
+```
+
+### The `getters` style
+
+This style checks for any `readonly` fields that are assigned literal values, and requires them to be defined as getters instead.
+This style pairs well with the [`@typescript-eslint/prefer-readonly`](prefer-readonly.md) rule,
+as it will identify fields that can be `readonly`, and thus should be made into getters.
+
+Examples of **correct** code with the `getters` style:
+
+```ts
+/* eslint @typescript-eslint/class-literal-property-style: ["error", "getters"] */
+
+class Mx {
+  // no readonly modifier
+  public myField1 = 'hello';
+
+  // not a literal
+  public readonly myField2 = [1, 2, 3];
+
+  public static get myField3() {
+    return 1;
+  }
+
+  private get ['myField4']() {
+    return 'hello world';
+  }
+}
+```
+
+Examples of **incorrect** code with the `getters` style:
+
+```ts
+/* eslint @typescript-eslint/class-literal-property-style: ["error", "getters"] */
+
+class Mx {
+  readonly myField1 = 1;
+  readonly myField2 = `hello world`;
+  private readonly myField3 = 'hello world';
+}
+```
+
+## When Not To Use It
+
+When you have no strong preference, or do not wish to enforce a particular style
+for how literal values are exposed by your classes.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-name-casing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-name-casing.md
deleted file mode 100644
index 38c3060..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-name-casing.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Require PascalCased class and interface names (`class-name-casing`)
-
-This rule enforces PascalCase names for classes and interfaces.
-
-## Rule Details
-
-This rule aims to make it easy to differentiate classes from regular variables at a glance.
-The `_` prefix is sometimes used to designate a private declaration, so the rule also supports a name
-that might be `_Example` instead of `Example`.
-
-## Options
-
-This rule has an object option:
-
-- `"allowUnderscorePrefix": false`: (default) does not allow the name to have an underscore prefix
-- `"allowUnderscorePrefix": true`: allows the name to optionally have an underscore prefix
-
-## Examples
-
-Examples of **incorrect** code for this rule:
-
-```ts
-class invalidClassName {}
-
-class Another_Invalid_Class_Name {}
-
-var bar = class invalidName {};
-
-interface someInterface {}
-
-class _InternalClass {}
-```
-
-Examples of **correct** code for this rule:
-
-```ts
-class ValidClassName {}
-
-export default class {}
-
-var foo = class {};
-
-interface SomeInterface {}
-
-/* eslint @typescript-eslint/class-name-casing: { "allowUnderscorePrefix": true } */
-class _InternalClass {}
-```
-
-## When Not To Use It
-
-You should turn off this rule if you do not care about class name casing, or if
-you use a different type of casing.
-
-## Further Reading
-
-- [`class-name`](https://palantir.github.io/tslint/rules/class-name/) in [TSLint](https://palantir.github.io/tslint/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md
new file mode 100644
index 0000000..bfb40d3
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md
@@ -0,0 +1,34 @@
+# Require or disallow trailing comma (`comma-dangle`)
+
+## Rule Details
+
+This rule extends the base [`eslint/comma-dangle`](https://eslint.org/docs/rules/comma-dangle) rule.
+It adds support for TypeScript syntax.
+
+See the [ESLint documentation](https://eslint.org/docs/rules/comma-dangle) for more details on the `comma-dangle` rule.
+
+## Rule Changes
+
+```cjson
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "comma-dangle": "off",
+  "@typescript-eslint/comma-dangle": ["error"]
+}
+```
+
+In addition to the options supported by the `comma-dangle` rule in ESLint core, the rule adds the following options:
+
+## Options
+
+This rule has a string option and an object option.
+
+- Object option:
+
+  - `"enums"` is for trailing comma in enum. (e.g. `enum Foo = {Bar,}`)
+  - `"generics"` is for trailing comma in generic. (e.g. `function foo<T,>() {}`)
+  - `"tuples"` is for trailing comma in tuple. (e.g. `type Foo = [string,]`)
+
+- [See the other options allowed](https://github.com/eslint/eslint/blob/master/docs/rules/comma-dangle.md#options)
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/comma-dangle.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-spacing.md
index 145e360..0920180 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-spacing.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-spacing.md
@@ -7,7 +7,7 @@
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "comma-spacing": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md
index cdf0fb7..43e67b7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md
@@ -8,6 +8,8 @@
 
 In addition to ensuring that type assertions are written in a consistent way, this rule also helps make your codebase more type-safe.
 
+`const` assertions, [introduced in TypeScript 3.4](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions), is always allowed by this rule. Examples of it include `let x = "hello" as const;` and `let x = <const>"hello";`.
+
 ## Options
 
 ```ts
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md
index 1688552..52afd3f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md
@@ -25,10 +25,10 @@
 
 For example:
 
-```CJSON
+```jsonc
 {
-    // Use type for object definitions
-    "@typescript-eslint/consistent-type-definitions": ["error", "type"]
+  // Use type for object definitions
+  "@typescript-eslint/consistent-type-definitions": ["error", "type"]
 }
 ```
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md
new file mode 100644
index 0000000..3487bf9
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md
@@ -0,0 +1,64 @@
+# Enforces consistent usage of type imports (`consistent-type-imports`)
+
+TypeScript 3.8 added support for type-only imports.
+Type-only imports allow you to specify that an import can only be used in a type location, allowing certain optimizations within compilers.
+
+## Rule Details
+
+This rule aims to standardize the use of type imports style across the codebase.
+
+## Options
+
+```ts
+type Options = {
+  prefer: 'type-imports' | 'no-type-imports';
+  disallowTypeAnnotations: boolean;
+};
+
+const defaultOptions: Options = {
+  prefer: 'type-imports',
+  disallowTypeAnnotations: true,
+};
+```
+
+### `prefer`
+
+This option defines the expected import kind for type-only imports. Valid values for `prefer` are:
+
+- `type-imports` will enforce that you always use `import type Foo from '...'`. It is default.
+- `no-type-imports` will enforce that you always use `import Foo from '...'`.
+
+Examples of **correct** code with `{prefer: 'type-imports'}`, and **incorrect** code with `{prefer: 'no-type-imports'}`.
+
+```ts
+import type { Foo } from 'Foo';
+import type Bar from 'Bar';
+type T = Foo;
+const x: Bar = 1;
+```
+
+Examples of **incorrect** code with `{prefer: 'type-imports'}`, and **correct** code with `{prefer: 'no-type-imports'}`.
+
+```ts
+import { Foo } from 'Foo';
+import Bar from 'Bar';
+type T = Foo;
+const x: Bar = 1;
+```
+
+### `disallowTypeAnnotations`
+
+If `true`, type imports in type annotations (`import()`) is not allowed.
+Default is `true`.
+
+Examples of **incorrect** code with `{disallowTypeAnnotations: true}`.
+
+```ts
+type T = import('Foo').Foo;
+const x: import('Bar') = 1;
+```
+
+## When Not To Use It
+
+- If you are not using TypeScript 3.8 (or greater), then you will not be able to use this rule, as type-only imports are not allowed.
+- If you specifically want to use both import kinds for stylistic reasons, you can disable this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.md
index f3eb9f2..c9c51df 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.md
@@ -2,7 +2,8 @@
 
 ## Rule Details
 
-This rule enforces default or optional parameters to be the last of parameters.
+This rule extends the base [`eslint/default-param-last`](https://eslint.org/docs/rules/default-param-last) rule.
+It adds support for optional parameters.
 
 Examples of **incorrect** code for this rule:
 
@@ -38,4 +39,18 @@
 }
 ```
 
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "default-param-last": "off",
+  "@typescript-eslint/default-param-last": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/default-param-last` options](https://eslint.org/docs/rules/default-param-last#options).
+
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/default-param-last.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md
new file mode 100644
index 0000000..bd1ea74
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md
@@ -0,0 +1,46 @@
+# enforce dot notation whenever possible (`dot-notation`)
+
+## Rule Details
+
+This rule extends the base [`eslint/dot-notation`](https://eslint.org/docs/rules/dot-notation) rule.
+It adds support for optionally ignoring computed `private` member access.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "dot-notation": "off",
+  "@typescript-eslint/dot-notation": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/dot-notation`](https://eslint.org/docs/rules/dot-notation#options) options.
+This rule adds the following options:
+
+```ts
+interface Options extends BaseDotNotationOptions {
+  allowPrivateClassPropertyAccess?: boolean;
+}
+const defaultOptions: Options = {
+  ...baseDotNotationDefaultOptions,
+  allowPrivateClassPropertyAccess: false,
+};
+```
+
+### `allowPrivateClassPropertyAccess`
+
+Example of a correct code when `allowPrivateClassPropertyAccess` is set to `true`
+
+```ts
+class X {
+  private priv_prop = 123;
+}
+
+const x = new X();
+x['priv_prop'] = 123;
+```
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/dot-notation.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md
index 360fdce..9e5b4c8 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md
@@ -18,7 +18,7 @@
 }
 
 // Should indicate that a number is returned
-var fn = function() {
+var fn = function () {
   return 1;
 };
 
@@ -42,7 +42,7 @@
 }
 
 // A return value of type number
-var fn = function(): number {
+var fn = function (): number {
   return 1;
 };
 
@@ -69,12 +69,18 @@
   allowTypedFunctionExpressions?: boolean;
   // if true, functions immediately returning another function expression will not be checked
   allowHigherOrderFunctions?: boolean;
+  // if true, arrow functions immediately returning a `as const` value will not be checked
+  allowDirectConstAssertionInArrowFunctions?: boolean;
+  // if true, concise arrow functions that start with the void keyword will not be checked
+  allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean;
 };
 
 const defaults = {
   allowExpressions: false,
   allowTypedFunctionExpressions: true,
   allowHigherOrderFunctions: true,
+  allowDirectConstAssertionInArrowFunctions: true,
+  allowConciseArrowFunctionExpressionsStartingWithVoid: true,
 };
 ```
 
@@ -117,7 +123,7 @@
 ```ts
 node.addEventListener('click', () => {});
 
-node.addEventListener('click', function() {});
+node.addEventListener('click', function () {});
 
 const foo = arr.map(i => i * i);
 ```
@@ -129,7 +135,7 @@
 ```ts
 let arrowFn = () => 'test';
 
-let funcExpr = function() {
+let funcExpr = function () {
   return 'test';
 };
 
@@ -184,7 +190,7 @@
 var arrowFn = () => () => {};
 
 function fn() {
-  return function() {};
+  return function () {};
 }
 ```
 
@@ -194,10 +200,44 @@
 var arrowFn = () => (): void => {};
 
 function fn() {
-  return function(): void {};
+  return function (): void {};
 }
 ```
 
+### `allowDirectConstAssertionInArrowFunctions`
+
+Examples of **incorrect** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`:
+
+```ts
+const func = (value: number) => ({ type: 'X', value } as any);
+const func = (value: number) => ({ type: 'X', value } as Action);
+```
+
+Examples of **correct** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`:
+
+```ts
+const func = (value: number) => ({ foo: 'bar', value } as const);
+const func = () => x as const;
+```
+
+### `allowConciseArrowFunctionExpressionsStartingWithVoid`
+
+Examples of **incorrect** code for this rule with `{ allowConciseArrowFunctionExpressionsStartingWithVoid: true }`:
+
+```ts
+var join = (a: string, b: string) => `${a}${b}`;
+
+const log = (message: string) => {
+  console.log(message);
+};
+```
+
+Examples of **correct** code for this rule with `{ allowConciseArrowFunctionExpressionsStartingWithVoid: true }`:
+
+```ts
+var log = (message: string) => void console.log(message);
+```
+
 ## When Not To Use It
 
 If you don't wish to prevent calling code from using function return values in unexpected ways, then
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md
index 9b148d9..cfbb315 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md
@@ -258,6 +258,10 @@
 class Animal {
   constructor(public animalName: string) {}
 }
+
+class Animal {
+  constructor(animalName: string) {}
+}
 ```
 
 e.g. `[ { accessibility: 'off', overrides: { parameterProperties: 'no-public' } } ]`
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md
index a5327a1..f33a8d5 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md
@@ -17,7 +17,7 @@
 }
 
 // Should indicate that a number is returned
-export default function() {
+export default function () {
   return 1;
 }
 
@@ -26,6 +26,7 @@
 
 // All arguments should be typed
 export var arrowFn = (arg): string => `test ${arg}`;
+export var arrowFn = (arg: any): string => `test ${arg}`;
 
 export class Test {
   // Should indicate that no value is returned (void)
@@ -44,13 +45,17 @@
 }
 
 // A return value of type number
-export var fn = function(): number {
+export var fn = function (): number {
   return 1;
 };
 
 // A return value of type string
 export var arrowFn = (arg: string): string => `test ${arg}`;
 
+// All arguments should be typed
+export var arrowFn = (arg: string): string => `test ${arg}`;
+export var arrowFn = (arg: unknown): string => `test ${arg}`;
+
 // Class is not exported
 class Test {
   method() {
@@ -66,16 +71,9 @@
 ```ts
 type Options = {
   /**
-   * If true, type annotations are also allowed on the variable of a function expression
-   * rather than on the function arguments/return value directly.
+   * If true, the rule will not report for arguments that are explicitly typed as `any`
    */
-  allowTypedFunctionExpressions?: boolean;
-  /**
-   * If true, functions immediately returning another function expression will not
-   * require an explicit return value annotation.
-   * You must still type the parameters of the function.
-   */
-  allowHigherOrderFunctions?: boolean;
+  allowArgumentsExplicitlyTypedAsAny?: boolean;
   /**
    * If true, body-less arrow functions that return an `as const` type assertion will not
    * require an explicit return value annotation.
@@ -86,12 +84,25 @@
    * An array of function/method names that will not have their arguments or their return values checked.
    */
   allowedNames?: string[];
+  /**
+   * If true, functions immediately returning another function expression will not
+   * require an explicit return value annotation.
+   * You must still type the parameters of the function.
+   */
+  allowHigherOrderFunctions?: boolean;
+  /**
+   * If true, type annotations are also allowed on the variable of a function expression
+   * rather than on the function arguments/return value directly.
+   */
+  allowTypedFunctionExpressions?: boolean;
 };
 
 const defaults = {
-  allowTypedFunctionExpressions: true,
-  allowHigherOrderFunctions: true,
+  allowArgumentsExplicitlyTypedAsAny: false,
+  allowDirectConstAssertionInArrowFunctions: true,
   allowedNames: [],
+  allowHigherOrderFunctions: true,
+  allowTypedFunctionExpressions: true,
 };
 ```
 
@@ -117,83 +128,20 @@
 }
 ```
 
-### `allowTypedFunctionExpressions`
+### `allowArgumentsExplicitlyTypedAsAny`
 
-Examples of **incorrect** code for this rule with `{ allowTypedFunctionExpressions: true }`:
+Examples of **incorrect** code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: true }`:
 
 ```ts
-export let arrowFn = () => 'test';
-
-export let funcExpr = function() {
-  return 'test';
-};
-
-export let objectProp = {
-  foo: () => 1,
-};
-
-export const foo = bar => {};
+export const func = (value: any): void => ({ type: 'X', value });
+export function foo(value: any): void {}
 ```
 
-Examples of additional **correct** code for this rule with `{ allowTypedFunctionExpressions: true }`:
+Examples of **correct** code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: true }`:
 
 ```ts
-type FuncType = () => string;
-
-export let arrowFn: FuncType = () => 'test';
-
-export let funcExpr: FuncType = function() {
-  return 'test';
-};
-
-export let asTyped = (() => '') as () => string;
-export let castTyped = <() => string>(() => '');
-
-interface ObjectType {
-  foo(): number;
-}
-export let objectProp: ObjectType = {
-  foo: () => 1,
-};
-export let objectPropAs = {
-  foo: () => 1,
-} as ObjectType;
-export let objectPropCast = <ObjectType>{
-  foo: () => 1,
-};
-
-type FooType = (bar: string) => void;
-export const foo: FooType = bar => {};
-```
-
-### `allowHigherOrderFunctions`
-
-Examples of **incorrect** code for this rule with `{ allowHigherOrderFunctions: true }`:
-
-```ts
-export var arrowFn = () => () => {};
-
-export function fn() {
-  return function() {};
-}
-
-export function foo(outer) {
-  return function(inner): void {};
-}
-```
-
-Examples of **correct** code for this rule with `{ allowHigherOrderFunctions: true }`:
-
-```ts
-export var arrowFn = () => (): void => {};
-
-export function fn() {
-  return function(): void {};
-}
-
-export function foo(outer: string) {
-  return function(inner: string): void {};
-}
+export const func = (value: number): void => ({ type: 'X', value });
+export function foo(value: number): void {}
 ```
 
 ### `allowDirectConstAssertionInArrowFunctions`
@@ -232,15 +180,94 @@
   "@typescript-eslint/explicit-module-boundary-types": [
     "error",
     {
-      "allowedName": ["ignoredFunctionName", "ignoredMethodName"]
+      "allowedNames": ["ignoredFunctionName", "ignoredMethodName"]
     }
   ]
 }
 ```
 
+### `allowHigherOrderFunctions`
+
+Examples of **incorrect** code for this rule with `{ allowHigherOrderFunctions: true }`:
+
+```ts
+export var arrowFn = () => () => {};
+
+export function fn() {
+  return function () {};
+}
+
+export function foo(outer) {
+  return function (inner): void {};
+}
+```
+
+Examples of **correct** code for this rule with `{ allowHigherOrderFunctions: true }`:
+
+```ts
+export var arrowFn = () => (): void => {};
+
+export function fn() {
+  return function (): void {};
+}
+
+export function foo(outer: string) {
+  return function (inner: string): void {};
+}
+```
+
+### `allowTypedFunctionExpressions`
+
+Examples of **incorrect** code for this rule with `{ allowTypedFunctionExpressions: true }`:
+
+```ts
+export let arrowFn = () => 'test';
+
+export let funcExpr = function () {
+  return 'test';
+};
+
+export let objectProp = {
+  foo: () => 1,
+};
+
+export const foo = bar => {};
+```
+
+Examples of additional **correct** code for this rule with `{ allowTypedFunctionExpressions: true }`:
+
+```ts
+type FuncType = () => string;
+
+export let arrowFn: FuncType = () => 'test';
+
+export let funcExpr: FuncType = function () {
+  return 'test';
+};
+
+export let asTyped = (() => '') as () => string;
+export let castTyped = <() => string>(() => '');
+
+interface ObjectType {
+  foo(): number;
+}
+export let objectProp: ObjectType = {
+  foo: () => 1,
+};
+export let objectPropAs = {
+  foo: () => 1,
+} as ObjectType;
+export let objectPropCast = <ObjectType>{
+  foo: () => 1,
+};
+
+type FooType = (bar: string) => void;
+export const foo: FooType = bar => {};
+```
+
 ## When Not To Use It
 
-If you wish to make sure all functions have explicit return types, as opposed to only the module boundaries, you can use [explicit-function-return-type](https://github.com/eslint/eslint/blob/master/docs/rules/explicit-function-return-type.md)
+If you wish to make sure all functions have explicit return types, as opposed to only the module boundaries, you can use [explicit-function-return-type](./explicit-function-return-type.md)
 
 ## Further Reading
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md
index aa1d3fd..8aa9e7e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md
@@ -1,17 +1,13 @@
 # Require or disallow spacing between function identifiers and their invocations (`func-call-spacing`)
 
-When calling a function, developers may insert optional whitespace between the function’s name and the parentheses that invoke it.
-This rule requires or disallows spaces between the function name and the opening parenthesis that calls it.
-
 ## Rule Details
 
 This rule extends the base [`eslint/func-call-spacing`](https://eslint.org/docs/rules/func-call-spacing) rule.
-It supports all options and features of the base rule.
-This version adds support for generic type parameters on function calls.
+It adds support for generic type parameters on function calls.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "func-call-spacing": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md
deleted file mode 100644
index 185b381..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Enforces naming of generic type variables (`generic-type-naming`)
-
-It can be helpful to enforce a consistent naming style for generic type variables used within a type.
-For example, prefixing them with `T` and ensuring a somewhat descriptive name, or enforcing Hungarian notation.
-
-## Rule Details
-
-This rule allows you to enforce conventions over type variables. By default, it does nothing.
-
-## Options
-
-The rule takes a single string option, which is a regular expression that type variables should match.
-
-Examples of **correct** code with a configuration of `'^T[A-Z][a-zA-Z]+$'`:
-
-```typescript
-type ReadOnly<TType extends object> = {
-  readonly [TKey in keyof TType]: TType[TKey];
-};
-
-interface SimpleMap<TValue> {
-  [key: string]: TValue;
-}
-```
-
-Examples of **incorrect** code with a configuration of `'^T[A-Z][a-zA-Z]+$'`:
-
-```typescript
-type ReadOnly<T extends object> = { readonly [Key in keyof T]: T[Key] };
-
-interface SimpleMap<T> {
-  [key: string]: T;
-}
-```
-
-## When Not To Use It
-
-If you do not want to enforce a naming convention for type variables.
-
-## Further Reading
-
-- [TypeScript Generics](https://www.typescriptlang.org/docs/handbook/generics.html)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md
index 4636cfe..023c774 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md
@@ -1,713 +1,24 @@
 # Enforce consistent indentation (`indent`)
 
-There are several common guidelines which require specific indentation of nested blocks and statements, like:
-
-```js
-function hello(indentSize, type) {
-  if (indentSize === 4 && type !== 'tab') {
-    console.log('Each next indentation will increase on 4 spaces');
-  }
-}
-```
-
-These are the most common scenarios recommended in different style guides:
-
-- Two spaces, not longer and no tabs: Google, npm, NodeJS, Idiomatic, Felix
-- Tabs: jQuery
-- Four spaces: Crockford
+## PLEASE READ THIS ISSUE BEFORE USING THIS RULE [#1824](https://github.com/typescript-eslint/typescript-eslint/issues/1824)
 
 ## Rule Details
 
-This rule enforces a consistent indentation style. The default style is `4 spaces`.
+This rule extends the base [`eslint/indent`](https://eslint.org/docs/rules/indent) rule.
+It adds support for TypeScript nodes.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "indent": "off",
+  "@typescript-eslint/indent": ["error"]
+}
+```
 
 ## Options
 
-This rule has a mixed option:
-
-For example, for 2-space indentation:
-
-```cjson
-{
-    // note you must disable the base rule as it can report incorrect errors
-    "indent": "off",
-    "@typescript-eslint/indent": ["error", 2]
-}
-```
-
-Or for tabbed indentation:
-
-```cjson
-{
-    // note you must disable the base rule as it can report incorrect errors
-    "indent": "off",
-    "@typescript-eslint/indent": ["error", "tab"]
-}
-```
-
-Examples of **incorrect** code for this rule with the default options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: "error"*/
-
-if (a) {
-  b=c;
-  function foo(d) {
-    e=f;
-  }
-}
-```
-
-Examples of **correct** code for this rule with the default options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: "error"*/
-
-if (a) {
-    b=c;
-    function foo(d) {
-        e=f;
-    }
-}
-```
-
-This rule has an object option:
-
-- `"SwitchCase"` (default: 0) enforces indentation level for `case` clauses in `switch` statements
-- `"VariableDeclarator"` (default: 1) enforces indentation level for `var` declarators; can also take an object to define separate rules for `var`, `let` and `const` declarations.
-- `"outerIIFEBody"` (default: 1) enforces indentation level for file-level IIFEs.
-- `"MemberExpression"` (default: 1) enforces indentation level for multi-line property chains. This can also be set to `"off"` to disable checking for `MemberExpression` indentation.
-- `"FunctionDeclaration"` takes an object to define rules for function declarations.
-  - `parameters` (default: 1) enforces indentation level for parameters in a function declaration. This can either be a number indicating indentation level, or the string `"first"` indicating that all parameters of the declaration must be aligned with the first parameter. This can also be set to `"off"` to disable checking for `FunctionDeclaration` parameters.
-  - `body` (default: 1) enforces indentation level for the body of a function declaration.
-- `"FunctionExpression"` takes an object to define rules for function expressions.
-  - `parameters` (default: 1) enforces indentation level for parameters in a function expression. This can either be a number indicating indentation level, or the string `"first"` indicating that all parameters of the expression must be aligned with the first parameter. This can also be set to `"off"` to disable checking for `FunctionExpression` parameters.
-  - `body` (default: 1) enforces indentation level for the body of a function expression.
-- `"CallExpression"` takes an object to define rules for function call expressions.
-  - `arguments` (default: 1) enforces indentation level for arguments in a call expression. This can either be a number indicating indentation level, or the string `"first"` indicating that all arguments of the expression must be aligned with the first argument. This can also be set to `"off"` to disable checking for `CallExpression` arguments.
-- `"ArrayExpression"` (default: 1) enforces indentation level for elements in arrays. It can also be set to the string `"first"`, indicating that all the elements in the array should be aligned with the first element. This can also be set to `"off"` to disable checking for array elements.
-- `"ObjectExpression"` (default: 1) enforces indentation level for properties in objects. It can be set to the string `"first"`, indicating that all properties in the object should be aligned with the first property. This can also be set to `"off"` to disable checking for object properties.
-- `"ImportDeclaration"` (default: 1) enforces indentation level for import statements. It can be set to the string `"first"`, indicating that all imported members from a module should be aligned with the first member in the list. This can also be set to `"off"` to disable checking for imported module members.
-- `"flatTernaryExpressions": true` (`false` by default) requires no indentation for ternary expressions which are nested in other ternary expressions.
-- `"ignoredNodes"` accepts an array of [selectors](https://eslint.org/docs/developer-guide/selectors). If an AST node is matched by any of the selectors, the indentation of tokens which are direct children of that node will be ignored. This can be used as an escape hatch to relax the rule if you disagree with the indentation that it enforces for a particular syntactic pattern.
-- `"ignoreComments"` (default: false) can be used when comments do not need to be aligned with nodes on the previous or next line.
-
-Level of indentation denotes the multiple of the indent specified. Example:
-
-- Indent of 4 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 8 spaces.
-- Indent of 2 spaces with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 4 spaces.
-- Indent of 2 spaces with `VariableDeclarator` set to `{"var": 2, "let": 2, "const": 3}` will indent the multi-line variable declarations with 4 spaces for `var` and `let`, 6 spaces for `const` statements.
-- Indent of tab with `VariableDeclarator` set to `2` will indent the multi-line variable declarations with 2 tabs.
-- Indent of 2 spaces with `SwitchCase` set to `0` will not indent `case` clauses with respect to `switch` statements.
-- Indent of 2 spaces with `SwitchCase` set to `1` will indent `case` clauses with 2 spaces with respect to `switch` statements.
-- Indent of 2 spaces with `SwitchCase` set to `2` will indent `case` clauses with 4 spaces with respect to `switch` statements.
-- Indent of tab with `SwitchCase` set to `2` will indent `case` clauses with 2 tabs with respect to `switch` statements.
-- Indent of 2 spaces with `MemberExpression` set to `0` will indent the multi-line property chains with 0 spaces.
-- Indent of 2 spaces with `MemberExpression` set to `1` will indent the multi-line property chains with 2 spaces.
-- Indent of 2 spaces with `MemberExpression` set to `2` will indent the multi-line property chains with 4 spaces.
-- Indent of 4 spaces with `MemberExpression` set to `0` will indent the multi-line property chains with 0 spaces.
-- Indent of 4 spaces with `MemberExpression` set to `1` will indent the multi-line property chains with 4 spaces.
-- Indent of 4 spaces with `MemberExpression` set to `2` will indent the multi-line property chains with 8 spaces.
-
-### tab
-
-Examples of **incorrect** code for this rule with the `"tab"` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", "tab"]*/
-
-if (a) {
-     b=c;
-function foo(d) {
-           e=f;
- }
-}
-```
-
-Examples of **correct** code for this rule with the `"tab"` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", "tab"]*/
-
-if (a) {
-/*tab*/b=c;
-/*tab*/function foo(d) {
-/*tab*//*tab*/e=f;
-/*tab*/}
-}
-```
-
-### `SwitchCase`
-
-Examples of **incorrect** code for this rule with the `2, { "SwitchCase": 1 }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "SwitchCase": 1 }]*/
-
-switch(a){
-case "a":
-    break;
-case "b":
-    break;
-}
-```
-
-Examples of **correct** code for this rule with the `2, { "SwitchCase": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "SwitchCase": 1 }]*/
-
-switch(a){
-  case "a":
-    break;
-  case "b":
-    break;
-}
-```
-
-### `VariableDeclarator`
-
-Examples of **incorrect** code for this rule with the `2, { "VariableDeclarator": 1 }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "VariableDeclarator": 1 }]*/
-/*eslint-env es6*/
-
-var a,
-    b,
-    c;
-let a,
-    b,
-    c;
-const a = 1,
-    b = 2,
-    c = 3;
-```
-
-Examples of **correct** code for this rule with the `2, { "VariableDeclarator": 1 }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "VariableDeclarator": 1 }]*/
-/*eslint-env es6*/
-
-var a,
-  b,
-  c;
-let a,
-  b,
-  c;
-const a = 1,
-  b = 2,
-  c = 3;
-```
-
-Examples of **correct** code for this rule with the `2, { "VariableDeclarator": 2 }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "VariableDeclarator": 2 }]*/
-/*eslint-env es6*/
-
-var a,
-    b,
-    c;
-let a,
-    b,
-    c;
-const a = 1,
-    b = 2,
-    c = 3;
-```
-
-Examples of **correct** code for this rule with the `2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "VariableDeclarator": { "var": 2, "let": 2, "const": 3 } }]*/
-/*eslint-env es6*/
-
-var a,
-    b,
-    c;
-let a,
-    b,
-    c;
-const a = 1,
-      b = 2,
-      c = 3;
-```
-
-### `outerIIFEBody`
-
-Examples of **incorrect** code for this rule with the options `2, { "outerIIFEBody": 0 }`:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "outerIIFEBody": 0 }]*/
-
-(function() {
-
-  function foo(x) {
-    return x + 1;
-  }
-
-})();
-
-
-if(y) {
-console.log('foo');
-}
-```
-
-Examples of **correct** code for this rule with the options `2, {"outerIIFEBody": 0}`:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "outerIIFEBody": 0 }]*/
-
-(function() {
-
-function foo(x) {
-  return x + 1;
-}
-
-})();
-
-
-if(y) {
-   console.log('foo');
-}
-```
-
-### `MemberExpression`
-
-Examples of **incorrect** code for this rule with the `2, { "MemberExpression": 1 }` options:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "MemberExpression": 1 }]*/
-
-foo
-.bar
-.baz()
-```
-
-Examples of **correct** code for this rule with the `2, { "MemberExpression": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "MemberExpression": 1 }]*/
-
-foo
-  .bar
-  .baz();
-```
-
-### `FunctionDeclaration`
-
-Examples of **incorrect** code for this rule with the `2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
-
-function foo(bar,
-  baz,
-  qux) {
-    qux();
-}
-```
-
-Examples of **correct** code for this rule with the `2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "FunctionDeclaration": {"body": 1, "parameters": 2} }]*/
-
-function foo(bar,
-    baz,
-    qux) {
-  qux();
-}
-```
-
-Examples of **incorrect** code for this rule with the `2, { "FunctionDeclaration": {"parameters": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
-
-function foo(bar, baz,
-  qux, boop) {
-  qux();
-}
-```
-
-Examples of **correct** code for this rule with the `2, { "FunctionDeclaration": {"parameters": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"FunctionDeclaration": {"parameters": "first"}}]*/
-
-function foo(bar, baz,
-             qux, boop) {
-  qux();
-}
-```
-
-### `FunctionExpression`
-
-Examples of **incorrect** code for this rule with the `2, { "FunctionExpression": {"body": 1, "parameters": 2} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
-
-var foo = function(bar,
-  baz,
-  qux) {
-    qux();
-}
-```
-
-Examples of **correct** code for this rule with the `2, { "FunctionExpression": {"body": 1, "parameters": 2} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "FunctionExpression": {"body": 1, "parameters": 2} }]*/
-
-var foo = function(bar,
-    baz,
-    qux) {
-  qux();
-}
-```
-
-Examples of **incorrect** code for this rule with the `2, { "FunctionExpression": {"parameters": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
-
-var foo = function(bar, baz,
-  qux, boop) {
-  qux();
-}
-```
-
-Examples of **correct** code for this rule with the `2, { "FunctionExpression": {"parameters": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"FunctionExpression": {"parameters": "first"}}]*/
-
-var foo = function(bar, baz,
-                   qux, boop) {
-  qux();
-}
-```
-
-### `CallExpression`
-
-Examples of **incorrect** code for this rule with the `2, { "CallExpression": {"arguments": 1} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
-
-foo(bar,
-    baz,
-      qux
-);
-```
-
-Examples of **correct** code for this rule with the `2, { "CallExpression": {"arguments": 1} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "CallExpression": {"arguments": 1} }]*/
-
-foo(bar,
-  baz,
-  qux
-);
-```
-
-Examples of **incorrect** code for this rule with the `2, { "CallExpression": {"arguments": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
-
-foo(bar, baz,
-  baz, boop, beep);
-```
-
-Examples of **correct** code for this rule with the `2, { "CallExpression": {"arguments": "first"} }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"CallExpression": {"arguments": "first"}}]*/
-
-foo(bar, baz,
-    baz, boop, beep);
-```
-
-### `ArrayExpression`
-
-Examples of **incorrect** code for this rule with the `2, { "ArrayExpression": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "ArrayExpression": 1 }]*/
-
-var foo = [
-    bar,
-baz,
-      qux
-];
-```
-
-Examples of **correct** code for this rule with the `2, { "ArrayExpression": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "ArrayExpression": 1 }]*/
-
-var foo = [
-  bar,
-  baz,
-  qux
-];
-```
-
-Examples of **incorrect** code for this rule with the `2, { "ArrayExpression": "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"ArrayExpression": "first"}]*/
-
-var foo = [bar,
-  baz,
-  qux
-];
-```
-
-Examples of **correct** code for this rule with the `2, { "ArrayExpression": "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"ArrayExpression": "first"}]*/
-
-var foo = [bar,
-           baz,
-           qux
-];
-```
-
-### `ObjectExpression`
-
-Examples of **incorrect** code for this rule with the `2, { "ObjectExpression": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "ObjectExpression": 1 }]*/
-
-var foo = {
-    bar: 1,
-baz: 2,
-      qux: 3
-};
-```
-
-Examples of **correct** code for this rule with the `2, { "ObjectExpression": 1 }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, { "ObjectExpression": 1 }]*/
-
-var foo = {
-  bar: 1,
-  baz: 2,
-  qux: 3
-};
-```
-
-Examples of **incorrect** code for this rule with the `2, { "ObjectExpression": "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"ObjectExpression": "first"}]*/
-
-var foo = { bar: 1,
-  baz: 2 };
-```
-
-Examples of **correct** code for this rule with the `2, { "ObjectExpression": "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 2, {"ObjectExpression": "first"}]*/
-
-var foo = { bar: 1,
-            baz: 2 };
-```
-
-### `ImportDeclaration`
-
-Examples of **correct** code for this rule with the `4, { "ImportDeclaration": 1 }` option (the default):
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { ImportDeclaration: 1 }]*/
-
-import { foo,
-    bar,
-    baz,
-} from 'qux';
-
-import {
-    foo,
-    bar,
-    baz,
-} from 'qux';
-```
-
-Examples of **incorrect** code for this rule with the `4, { ImportDeclaration: "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { ImportDeclaration: "first" }]*/
-
-import { foo,
-    bar,
-    baz,
-} from 'qux';
-```
-
-Examples of **correct** code for this rule with the `4, { ImportDeclaration: "first" }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { ImportDeclaration: "first" }]*/
-
-import { foo,
-         bar,
-         baz,
-} from 'qux';
-```
-
-### `flatTernaryExpressions`
-
-Examples of **incorrect** code for this rule with the default `4, { "flatTernaryExpressions": false }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "flatTernaryExpressions": false }]*/
-
-var a =
-    foo ? bar :
-    baz ? qux :
-    boop;
-```
-
-Examples of **correct** code for this rule with the default `4, { "flatTernaryExpressions": false }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "flatTernaryExpressions": false }]*/
-
-var a =
-    foo ? bar :
-        baz ? qux :
-            boop;
-```
-
-Examples of **incorrect** code for this rule with the `4, { "flatTernaryExpressions": true }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "flatTernaryExpressions": true }]*/
-
-var a =
-    foo ? bar :
-        baz ? qux :
-            boop;
-```
-
-Examples of **correct** code for this rule with the `4, { "flatTernaryExpressions": true }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "flatTernaryExpressions": true }]*/
-
-var a =
-    foo ? bar :
-    baz ? qux :
-    boop;
-```
-
-### `ignoredNodes`
-
-The following configuration ignores the indentation of `ConditionalExpression` ("ternary expression") nodes:
-
-Examples of **correct** code for this rule with the `4, { "ignoredNodes": ["ConditionalExpression"] }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "ignoredNodes": ["ConditionalExpression"] }]*/
-
-var a = foo
-      ? bar
-      : baz;
-
-var a = foo
-                ? bar
-: baz;
-```
-
-The following configuration ignores indentation in the body of IIFEs.
-
-Examples of **correct** code for this rule with the `4, { "ignoredNodes": ["CallExpression > FunctionExpression.callee > BlockStatement.body"] }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "ignoredNodes": ["CallExpression > FunctionExpression.callee > BlockStatement.body"] }]*/
-
-(function() {
-
-foo();
-bar();
-
-})
-```
-
-### `ignoreComments`
-
-Examples of additional **correct** code for this rule with the `4, { "ignoreComments": true }` option:
-
-<!-- prettier-ignore -->
-```js
-/*eslint @typescript-eslint/indent: ["error", 4, { "ignoreComments": true }] */
-
-if (foo) {
-    doSomething();
-
-// comment intentionally de-indented
-    doSomethingElse();
-}
-```
-
-## Compatibility
-
-- **JSHint**: `indent`
-- **JSCS**: [`validateIndentation`](https://jscs-dev.github.io/rule/validateIndentation)
+See [`eslint/indent` options](https://eslint.org/docs/rules/indent#options).
 
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/indent.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md
new file mode 100644
index 0000000..f83c5bd
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md
@@ -0,0 +1,22 @@
+# require or disallow initialization in variable declarations (`init-declarations`)
+
+## Rule Details
+
+This rule extends the base [`eslint/init-declarations`](https://eslint.org/docs/rules/init-declarations) rule.
+It adds support for TypeScript's `declare` variables.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "init-declarations": "off",
+  "@typescript-eslint/init-declarations": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/init-declarations` options](https://eslint.org/docs/rules/init-declarations#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/init-declarations.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/interface-name-prefix.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/interface-name-prefix.md
deleted file mode 100644
index f6439b4..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/interface-name-prefix.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# Require that interface names should or should not prefixed with `I` (`interface-name-prefix`)
-
-Interfaces often represent important software contracts, so it can be helpful to prefix their names with `I`.
-The unprefixed name is then available for a class that provides a standard implementation of the interface.
-Alternatively, the contributor guidelines for the TypeScript repo suggest
-[never prefixing](https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names) interfaces with `I`.
-
-## Rule Details
-
-This rule enforces whether or not the `I` prefix is required for interface names.
-The `_` prefix is sometimes used to designate a private declaration, so the rule also supports a private interface
-that might be named `_IAnimal` instead of `IAnimal`.
-
-## Options
-
-This rule has an object option:
-
-- `{ "prefixWithI": "never" }`: (default) disallows all interfaces being prefixed with `"I"` or `"_I"`
-- `{ "prefixWithI": "always" }`: requires all interfaces be prefixed with `"I"` (but does not allow `"_I"`)
-- `{ "prefixWithI": "always", "allowUnderscorePrefix": true }`: requires all interfaces be prefixed with
-  either `"I"` or `"_I"`
-
-For backwards compatibility, this rule supports a string option instead:
-
-- `"never"`: Equivalent to `{ "prefixWithI": "never" }`
-- `"always"`: Equivalent to `{ "prefixWithI": "always" }`
-
-## Examples
-
-### never
-
-**Configuration:** `{ "prefixWithI": "never" }`
-
-The following patterns are considered warnings:
-
-```ts
-interface IAnimal {
-  name: string;
-}
-
-interface IIguana {
-  name: string;
-}
-
-interface _IAnimal {
-  name: string;
-}
-```
-
-The following patterns are not warnings:
-
-```ts
-interface Animal {
-  name: string;
-}
-
-interface Iguana {
-  name: string;
-}
-```
-
-### always
-
-**Configuration:** `{ "prefixWithI": "always" }`
-
-The following patterns are considered warnings:
-
-```ts
-interface Animal {
-  name: string;
-}
-
-interface Iguana {
-  name: string;
-}
-
-interface _IAnimal {
-  name: string;
-}
-```
-
-The following patterns are not warnings:
-
-```ts
-interface IAnimal {
-  name: string;
-}
-
-interface IIguana {
-  name: string;
-}
-```
-
-### always and allowing underscores
-
-**Configuration:** `{ "prefixWithI": "always", "allowUnderscorePrefix": true }`
-
-The following patterns are considered warnings:
-
-```ts
-interface Animal {
-  name: string;
-}
-
-interface Iguana {
-  name: string;
-}
-```
-
-The following patterns are not warnings:
-
-```ts
-interface IAnimal {
-  name: string;
-}
-
-interface IIguana {
-  name: string;
-}
-
-interface _IAnimal {
-  name: string;
-}
-```
-
-## When Not To Use It
-
-If you do not want to enforce interface name prefixing.
-
-## Further Reading
-
-TypeScript [Interfaces](https://www.typescriptlang.org/docs/handbook/interfaces.html)
-
-## Compatibility
-
-TSLint: [interface-name](https://palantir.github.io/tslint/rules/interface-name/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md
new file mode 100644
index 0000000..3178542
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md
@@ -0,0 +1,22 @@
+# Enforce consistent spacing before and after keywords (`keyword-spacing`)
+
+## Rule Details
+
+This rule extends the base [`eslint/keyword-spacing`](https://eslint.org/docs/rules/keyword-spacing) rule.
+This version adds support for generic type parameters on function calls.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "keyword-spacing": "off",
+  "@typescript-eslint/keyword-spacing": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/keyword-spacing` options](https://eslint.org/docs/rules/keyword-spacing#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/keyword-spacing.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md
new file mode 100644
index 0000000..e2692bb
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md
@@ -0,0 +1,73 @@
+# Require or disallow an empty line between class members (`lines-between-class-members`)
+
+This rule improves readability by enforcing lines between class members. It will not check empty lines before the first member and after the last member. This rule require or disallow an empty line between class members.
+
+## Rule Details
+
+This rule extends the base [`eslint/lines-between-class-members`](https://eslint.org/docs/rules/lines-between-class-members) rule.
+It adds support for ignoring overload methods in a class.
+
+See the [ESLint documentation](https://eslint.org/docs/rules/lines-between-class-members) for more details on the `lines-between-class-members` rule.
+
+## Rule Changes
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "lines-between-class-members": "off",
+  "@typescript-eslint/lines-between-class-members": ["error"]
+}
+```
+
+In addition to the options supported by the `lines-between-class-members` rule in ESLint core, the rule adds the following options:
+
+## Options
+
+This rule has a string option and an object option.
+
+- Object option:
+
+  - `"exceptAfterOverload": true` (default) - Skip checking empty lines after overload class members
+  - `"exceptAfterOverload": false` - **do not** skip checking empty lines after overload class members
+
+- [See the other options allowed](https://github.com/eslint/eslint/blob/master/docs/rules/lines-between-class-members.md#options)
+
+### `exceptAfterOverload: true`
+
+Examples of **correct** code for the `{ "exceptAfterOverload": true }` option:
+
+```ts
+/*eslint @typescript-eslint/lines-between-class-members: ["error", "always", { "exceptAfterOverload": true }]*/
+
+class foo {
+  bar(a: string): void;
+  bar(a: string, b: string): void;
+  bar(a: string, b: string) {}
+
+  baz() {}
+
+  qux() {}
+}
+```
+
+### `exceptAfterOverload: false`
+
+Examples of **correct** code for the `{ "exceptAfterOverload": false }` option:
+
+```ts
+/*eslint @typescript-eslint/lines-between-class-members: ["error", "always", { "exceptAfterOverload": false }]*/
+
+class foo {
+  bar(a: string): void;
+
+  bar(a: string, b: string): void;
+
+  bar(a: string, b: string) {}
+
+  baz() {}
+
+  qux() {}
+}
+```
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/lines-between-class-members.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-naming.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-naming.md
deleted file mode 100644
index e12f4f2..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-naming.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Enforces naming conventions for class members by visibility (`member-naming`)
-
-It can be helpful to enforce naming conventions for `private` (and sometimes `protected`) members of an object. For example, prefixing private properties with a `_` allows them to be easily discerned when being inspected by tools that do not have knowledge of TypeScript (such as most debuggers).
-
-## Rule Details
-
-This rule allows you to enforce conventions for class property and method names by their visibility. By default, it enforces nothing.
-
-> Note: constructors are explicitly ignored regardless of the the regular expression options provided
-
-## Options
-
-You can specify a regular expression to test the names of properties for each visibility level: `public`, `protected`, `private`.
-
-Examples of **correct** code with `{ "private": "^_" }` specified:
-
-```ts
-class HappyClass {
-  private _foo: string;
-  private _bar = 123;
-  private _fizz() {}
-}
-```
-
-Examples of **incorrect** code with `{ "private": "^_" }` specified:
-
-```ts
-class SadClass {
-  private foo: string;
-  private bar = 123;
-  private fizz() {}
-}
-```
-
-## When Not To Use It
-
-If you do not want to enforce per-visibility naming rules for member properties.
-
-## Further Reading
-
-- ESLint's [`camelcase` rule](https://eslint.org/docs/rules/camelcase)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md
index d028d84..eda1c57 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md
@@ -1,64 +1,95 @@
 # Require a consistent member declaration order (`member-ordering`)
 
-A consistent ordering of fields, methods and constructors can make interfaces, type literals, classes and class
-expressions easier to read, navigate and edit.
+A consistent ordering of fields, methods and constructors can make interfaces, type literals, classes and class expressions easier to read, navigate and edit.
 
 ## Rule Details
 
-This rule aims to standardize the way class declarations, class expressions, interfaces and type literals are structured.
+This rule aims to standardize the way class declarations, class expressions, interfaces and type literals are structured and ordered.
 
-It allows to group members by their type (e.g. `public-static-field`, `protected-static-field`, `private-static-field`, `public-instance-field`, ...). By default, their order is the same inside `classes`, `classExpressions`, `interfaces` and `typeLiterals` (note: not all member types apply to `interfaces` and `typeLiterals`). It is possible to define the order for any of those individually or to change the default order for all of them by setting the `default` option.
+### Grouping and sorting member groups
+
+It allows to group members by their type (e.g. `public-static-field`, `protected-static-field`, `private-static-field`, `public-instance-field`, ...) and enforce a certain order for these groups. By default, their order is the same inside `classes`, `classExpressions`, `interfaces` and `typeLiterals` (note: not all member types apply to `interfaces` and `typeLiterals`). It is possible to define the order for any of those individually or to change the default order for all of them by setting the `default` option.
+
+### Sorting members
+
+Besides grouping the members and sorting their groups, this rule also allows to sort the members themselves (e.g. `a`, `b`, `c`, ...). You have 2 options: Sort all of them while ignoring their type or sort them while respecting their types (e.g. sort all fields in an interface alphabetically).
 
 ## Options
 
-```ts
-{
-  default?: Array<MemberType> | never
-  classes?: Array<MemberType> | never
-  classExpressions?: Array<MemberType> | never
+These options allow to specify how to group the members and sort their groups.
 
-  interfaces?: ['signature' | 'field' | 'method' | 'constructor'] | never
-  typeLiterals?: ['signature' | 'field' | 'method' | 'constructor'] | never
+- Sort groups, don't enforce member order: Use `memberTypes`
+- Sort members, don't enforce group order: Use `order`
+- Sort members within groups: Use `memberTypes` and `order`
+
+```ts
+type TypeOptions<T> =
+  | {
+    memberTypes: Array<T> | 'never',
+    order?: 'alphabetically' | 'as-written',
+  }
+  | {
+    order: 'alphabetically',
+  };
+
+{
+  default?: TypeOptions<MemberTypes>,
+
+  classes?: TypeOptions<MemberTypes>,
+  classExpressions?: TypeOptions<MemberTypes>,
+
+  interfaces?: TypeOptions<'signature' | 'field' | 'method' | 'constructor'>,
+  typeLiterals?: TypeOptions<'signature' | 'field' | 'method' | 'constructor'>,
 }
 ```
 
 See below for the possible definitions of `MemberType`.
 
+### Deprecated syntax
+
+Note: There is a deprecated syntax to specify the member types as an array.
+
 ### Member types (granular form)
 
 There are multiple ways to specify the member types. The most explicit and granular form is the following:
 
-```json5
+```jsonc
 [
   // Index signature
-  'signature',
+  "signature",
 
   // Fields
-  'public-static-field',
-  'protected-static-field',
-  'private-static-field',
-  'public-instance-field',
-  'protected-instance-field',
-  'private-instance-field',
-  'public-abstract-field',
-  'protected-abstract-field',
-  'private-abstract-field',
+  "public-static-field",
+  "protected-static-field",
+  "private-static-field",
+  "public-decorated-field",
+  "protected-decorated-field",
+  "private-decorated-field",
+  "public-instance-field",
+  "protected-instance-field",
+  "private-instance-field",
+  "public-abstract-field",
+  "protected-abstract-field",
+  "private-abstract-field",
 
   // Constructors
-  'public-constructor',
-  'protected-constructor',
-  'private-constructor',
+  "public-constructor",
+  "protected-constructor",
+  "private-constructor",
 
   // Methods
-  'public-static-method',
-  'protected-static-method',
-  'private-static-method',
-  'public-instance-method',
-  'protected-instance-method',
-  'private-instance-method',
-  'public-abstract-method',
-  'protected-abstract-method',
-  'private-abstract-method',
+  "public-static-method",
+  "protected-static-method",
+  "private-static-method",
+  "public-decorated-method",
+  "protected-decorated-method",
+  "private-decorated-method",
+  "public-instance-method",
+  "protected-instance-method",
+  "private-instance-method",
+  "public-abstract-method",
+  "protected-abstract-method",
+  "private-abstract-method"
 ]
 ```
 
@@ -68,23 +99,51 @@
 
 It is also possible to group member types by their accessibility (`static`, `instance`, `abstract`), ignoring their scope.
 
-```json5
+```jsonc
 [
   // Index signature
   // No accessibility for index signature. See above.
 
   // Fields
-  'public-field', // = ['public-static-field', 'public-instance-field'])
-  'protected-field', // = ['protected-static-field', 'protected-instance-field'])
-  'private-field', // = ['private-static-field', 'private-instance-field'])
+  "public-field", // = ["public-static-field", "public-instance-field"]
+  "protected-field", // = ["protected-static-field", "protected-instance-field"]
+  "private-field", // = ["private-static-field", "private-instance-field"]
 
   // Constructors
   // Only the accessibility of constructors is configurable. See below.
 
   // Methods
-  'public-method', // = ['public-static-method', 'public-instance-method'])
-  'protected-method', // = ['protected-static-method', 'protected-instance-method'])
-  'private-method', // = ['private-static-method', 'private-instance-method'])
+  "public-method", // = ["public-static-method", "public-instance-method"]
+  "protected-method", // = ["protected-static-method", "protected-instance-method"]
+  "private-method" // = ["private-static-method", "private-instance-method"]
+]
+```
+
+### Member group types (with accessibility and a decorator)
+
+It is also possible to group methods or fields with a decorator separately, optionally specifying
+their accessibility.
+
+```jsonc
+[
+  // Index signature
+  // No decorators for index signature.
+
+  // Fields
+  "public-decorated-field",
+  "protected-decorated-field",
+  "private-decorated-field",
+
+  "decorated-field", // = ["public-decorated-field", "protected-decorated-field", "private-decorated-field"]
+
+  // Constructors
+  // There are no decorators for constructors.
+
+  "public-decorated-method",
+  "protected-decorated-method",
+  "private-decorated-method",
+
+  "decorated-method" // = ["public-decorated-method", "protected-decorated-method", "private-decorated-method"]
 ]
 ```
 
@@ -92,23 +151,23 @@
 
 Another option is to group the member types by their scope (`public`, `protected`, `private`), ignoring their accessibility.
 
-```json5
+```jsonc
 [
   // Index signature
   // No scope for index signature. See above.
 
   // Fields
-  'static-field', // = ['public-static-field', 'protected-static-field', 'private-static-field'])
-  'instance-field', // = ['public-instance-field', 'protected-instance-field', 'private-instance-field'])
-  'abstract-field', // = ['public-abstract-field', 'protected-abstract-field', 'private-abstract-field'])
+  "static-field", // = ["public-static-field", "protected-static-field", "private-static-field"]
+  "instance-field", // = ["public-instance-field", "protected-instance-field", "private-instance-field"]
+  "abstract-field", // = ["public-abstract-field", "protected-abstract-field", "private-abstract-field"]
 
   // Constructors
-  'constructor', // = ['public-constructor', 'protected-constructor', 'private-constructor'])
+  "constructor", // = ["public-constructor", "protected-constructor", "private-constructor"]
 
   // Methods
-  'static-method', // = ['public-static-method', 'protected-static-method', 'private-static-method'])
-  'instance-method', // = ['public-instance-method', 'protected-instance-method', 'private-instance-method'])
-  'abstract-method', // = ['public-abstract-method', 'protected-abstract-method', 'private-abstract-method'])
+  "static-method", // = ["public-static-method", "protected-static-method", "private-static-method"]
+  "instance-method", // = ["public-instance-method", "protected-instance-method", "private-instance-method"]
+  "abstract-method" // = ["public-abstract-method", "protected-abstract-method", "private-abstract-method"]
 ]
 ```
 
@@ -116,21 +175,21 @@
 
 The third grouping option is to ignore both scope and accessibility.
 
-```json5
+```jsonc
 [
   // Index signature
   // No grouping for index signature. See above.
 
   // Fields
-  'field', // = ['public-static-field', 'protected-static-field', 'private-static-field', 'public-instance-field', 'protected-instance-field', 'private-instance-field',
-  //              'public-abstract-field', 'protected-abstract-field', private-abstract-field'])
+  "field", // = ["public-static-field", "protected-static-field", "private-static-field", "public-instance-field", "protected-instance-field", "private-instance-field",
+  //              "public-abstract-field", "protected-abstract-field", private-abstract-field"]
 
   // Constructors
   // Only the accessibility of constructors is configurable. See above.
 
   // Methods
-  'method', // = ['public-static-method', 'protected-static-method', 'private-static-method', 'public-instance-method', 'protected-instance-method', 'private-instance-method',
-  //                'public-abstract-method', 'protected-abstract-method', 'private-abstract-method'])
+  "method" // = ["public-static-method", "protected-static-method", "private-static-method", "public-instance-method", "protected-instance-method", "private-instance-method",
+  //                "public-abstract-method", "protected-abstract-method", "private-abstract-method"]
 ]
 ```
 
@@ -138,15 +197,21 @@
 
 The default configuration looks as follows:
 
-```json
+```jsonc
 {
   "default": [
+    // Index signature
     "signature",
 
+    // Fields
     "public-static-field",
     "protected-static-field",
     "private-static-field",
 
+    "public-decorated-field",
+    "protected-decorated-field",
+    "private-decorated-field",
+
     "public-instance-field",
     "protected-instance-field",
     "private-instance-field",
@@ -163,14 +228,26 @@
     "instance-field",
     "abstract-field",
 
+    "decorated-field",
+
     "field",
 
+    // Constructors
+    "public-constructor",
+    "protected-constructor",
+    "private-constructor",
+
     "constructor",
 
+    // Methods
     "public-static-method",
     "protected-static-method",
     "private-static-method",
 
+    "public-decorated-method",
+    "protected-decorated-method",
+    "private-decorated-method",
+
     "public-instance-method",
     "protected-instance-method",
     "private-instance-method",
@@ -187,6 +264,8 @@
     "instance-method",
     "abstract-method",
 
+    "decorated-method",
+
     "method"
   ]
 }
@@ -194,6 +273,8 @@
 
 Note: The default configuration contains member group types which contain other member types (see above). This is intentional to provide better error messages.
 
+Note: By default, the members are not sorted. If you want to sort them alphabetically, you have to provide a custom configuration.
+
 ## Examples
 
 ### Custom `default` configuration
@@ -448,7 +529,7 @@
 };
 ```
 
-Issue: Public static fields should come first, followed by static fields and instance fields.
+Note: Public static fields should come first, followed by static fields and instance fields.
 
 ##### Correct examples
 
@@ -542,21 +623,19 @@
 
 ##### Correct example
 
-Examples of **correct** code for `{ "classes": [...] }` option:
-
 ```ts
 class Foo {
   private C: string; // (irrelevant)
 
   public D: string; // (irrelevant)
 
-  public static E: string; // -> public static field
+  public B(): void {} // -> public instance method
 
   constructor() {} // (irrelevant)
 
   public static A(): void {} // (irrelevant)
 
-  public B(): void {} // -> public instance method
+  public static E: string; // -> public static field
 }
 ```
 
@@ -712,6 +791,73 @@
 };
 ```
 
+### Sorting alphabetically within member groups
+
+It is possible to sort all members within a group alphabetically.
+
+#### Configuration: `{ "default": { "memberTypes": <Default Order>, "order": "alphabetically" } }`
+
+This will apply the default order (see above) and enforce an alphabetic order within each group.
+
+##### Incorrect examples
+
+```ts
+interface Foo {
+  a: x;
+  b: x;
+  c: x;
+
+  new (): Bar;
+  (): Baz;
+
+  a(): void;
+  b(): void;
+  c(): void;
+
+  // Wrong group order, should be placed before all field definitions
+  [a: string]: number;
+}
+```
+
+```ts
+interface Foo {
+  [a: string]: number;
+
+  a: x;
+  b: x;
+  c: x;
+
+  new (): Bar;
+  (): Baz;
+
+  // Wrong alphabetic order within group
+  c(): void;
+  b(): void;
+  a(): void;
+}
+```
+
+### Sorting alphabetically while ignoring member groups
+
+It is also possible to sort all members and ignore the member groups completely.
+
+#### Configuration: `{ "default": { "memberTypes": "never", "order": "alphabetically" } }`
+
+##### Incorrect example
+
+```ts
+interface Foo {
+  b(): void;
+  a: b;
+
+  [a: string]: number; // Order doesn't matter (no sortable identifier)
+  new (): Bar; // Order doesn't matter (no sortable identifier)
+  (): Baz; // Order doesn't matter (no sortable identifier)
+}
+```
+
+Note: Wrong alphabetic order `b(): void` should come after `a: b`.
+
 ## When Not To Use It
 
 If you don't care about the general structure of your classes and interfaces, then you will not need this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/method-signature-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/method-signature-style.md
new file mode 100644
index 0000000..4358ee3
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/method-signature-style.md
@@ -0,0 +1,94 @@
+# Enforces using a particular method signature syntax. (`method-signature-style`)
+
+There are two ways to define an object/interface function property.
+
+```ts
+// method shorthand syntax
+interface T1 {
+  func(arg: string): number;
+}
+
+// regular property with function type
+interface T2 {
+  func: (arg: string) => number;
+}
+```
+
+A good practice is to use the TypeScript's `strict` option (which implies `strictFunctionTypes`) which enables correct typechecking for function properties only (method signatures get old behavior).
+
+TypeScript FAQ:
+
+> A method and a function property of the same type behave differently.
+> Methods are always bivariant in their argument, while function properties are contravariant in their argument under `strictFunctionTypes`.
+
+See the reasoning behind that in the [TypeScript PR for the compiler option](https://github.com/microsoft/TypeScript/pull/18654).
+
+## Options
+
+This rule accepts one string option:
+
+- `"property"`: Enforce using property signature for functions. Use this to enforce maximum correctness together with TypeScript's strict mode.
+- `"method"`: Enforce using method signature for functions. Use this if you aren't using TypeScript's strict mode and prefer this style.
+
+The default is `"property"`.
+
+## Rule Details
+
+Examples of **incorrect** code with `property` option.
+
+```ts
+interface T1 {
+  func(arg: string): number;
+}
+type T2 = {
+  func(arg: boolean): void;
+};
+interface T3 {
+  func(arg: number): void;
+  func(arg: string): void;
+  func(arg: boolean): void;
+}
+```
+
+Examples of **correct** code with `property` option.
+
+```ts
+interface T1 {
+  func: (arg: string) => number;
+}
+type T2 = {
+  func: (arg: boolean) => void;
+};
+// this is equivalent to the overload
+interface T3 {
+  func: ((arg: number) => void) &
+    ((arg: string) => void) &
+    ((arg: boolean) => void);
+}
+```
+
+Examples of **incorrect** code with `method` option.
+
+```ts
+interface T1 {
+  func: (arg: string) => number;
+}
+type T2 = {
+  func: (arg: boolean) => void;
+};
+```
+
+Examples of **correct** code with `method` option.
+
+```ts
+interface T1 {
+  func(arg: string): number;
+}
+type T2 = {
+  func(arg: boolean): void;
+};
+```
+
+## When Not To Use It
+
+If you don't want to enforce a particular style for object/interface function types, and/or if you don't use `strictFunctionTypes`, then you don't need this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md
index 7766123..d57bc1c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md
@@ -1,7 +1,7 @@
 # Enforces naming conventions for everything across a codebase (`naming-convention`)
 
 Enforcing naming conventions helps keep the codebase consistent, and reduces overhead when thinking about how to name a variable.
-Additionally, a well designed style guide can help communicate intent, such as by enforcing all private properties begin with an `_`, and all global-level constants are written in `UPPER_CASE`.
+Additionally, a well-designed style guide can help communicate intent, such as by enforcing all private properties begin with an `_`, and all global-level constants are written in `UPPER_CASE`.
 
 There are many different rules that have existed over time, but they have had the problem of not having enough granularity, meaning it was hard to have a well defined style guide, and most of the time you needed 3 or more rules at once to enforce different conventions, hoping they didn't conflict.
 
@@ -39,7 +39,7 @@
   suffix?: string[];
 
   // selector options
-  selector: Selector;
+  selector: Selector | Selector[];
   filter?:
     | string
     | {
@@ -51,7 +51,7 @@
   types?: Types<Selector>[];
 }[];
 
-// the default config essentially does the same thing as ESLint's camelcase rule
+// the default config is similar to ESLint's camelcase rule but more strict
 const defaultOptions: Options = [
   {
     selector: 'default',
@@ -150,9 +150,13 @@
 
 If these are provided, the identifier must start with one of the provided values. For example, if you provide `{ prefix: ['IFace', 'Class', 'Type'] }`, then the following names are valid: `IFaceFoo`, `ClassBar`, `TypeBaz`, but the name `Bang` is not valid, as it contains none of the prefixes.
 
+**Note:** As [documented above](#format-options), the prefix is trimmed before format is validated, therefore PascalCase must be used to allow variables such as `isEnabled` using the prefix `is`.
+
 ### Selector Options
 
 - `selector` (see "Allowed Selectors, Modifiers and Types" below).
+  - Accepts one or array of selectors to define an option block that applies to one or multiple selectors.
+  - For example, if you provide `{ selector: ['variable', 'function'] }`, then it will apply the same option to variable and function nodes.
 - `modifiers` allows you to specify which modifiers to granularly apply to, such as the accessibility (`private`/`public`/`protected`), or if the thing is `static`, etc.
   - The name must match _all_ of the modifiers.
   - For example, if you provide `{ modifiers: ['private', 'static', 'readonly'] }`, then it will only match something that is `private static readonly`, and something that is just `private` will not match.
@@ -174,7 +178,7 @@
 [
   /* 1 */ { selector: 'default', format: ['camelCase'] },
   /* 2 */ { selector: 'variable', format: ['snake_case'] },
-  /* 3 */ { selector: 'variable', type: ['boolean'], format: ['UPPER_CASE'] },
+  /* 3 */ { selector: 'variable', types: ['boolean'], format: ['UPPER_CASE'] },
   /* 4 */ { selector: 'variableLike', format: ['PascalCase'] },
 ];
 ```
@@ -190,7 +194,7 @@
 Individual Selectors match specific, well-defined sets. There is no overlap between each of the individual selectors.
 
 - `variable` - matches any `var` / `let` / `const` variable name.
-  - Allowed `modifiers`: none.
+  - Allowed `modifiers`: `const`.
   - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`.
 - `function` - matches any named function declaration or named function expression.
   - Allowed `modifiers`: none.
@@ -277,6 +281,8 @@
 
 ### Enforce that boolean variables are prefixed with an allowed verb
 
+**Note:** As [documented above](#format-options), the prefix is trimmed before format is validated, thus PascalCase must be used to allow variables such as `isEnabled`.
+
 ```json
 {
   "@typescript-eslint/naming-convention": [
@@ -305,8 +311,25 @@
 }
 ```
 
+### Enforce that all const variables are in UPPER_CASE
+
+```json
+{
+  "@typescript-eslint/naming-convention": [
+    "error",
+    {
+      "selector": "variable",
+      "modifiers": ["const"],
+      "format": ["UPPER_CASE"]
+    }
+  ]
+}
+```
+
 ### Enforce that type parameters (generics) are prefixed with `T`
 
+This allows you to emulate the old `generic-type-naming` rule.
+
 ```json
 {
   "@typescript-eslint/naming-convention": [
@@ -320,10 +343,91 @@
 }
 ```
 
+### Enforce that interface names do not begin with an `I`
+
+This allows you to emulate the old `interface-name-prefix` rule.
+
+```json
+{
+  "@typescript-eslint/naming-convention": [
+    "error",
+    {
+      "selector": "interface",
+      "format": ["PascalCase"],
+      "custom": {
+        "regex": "^I[A-Z]",
+        "match": false
+      }
+    }
+  ]
+}
+```
+
+### Enforce that variable and function names are in camelCase
+
+This allows you to lint multiple type with same pattern.
+
+```json
+{
+  "@typescript-eslint/naming-convention": [
+    "error",
+    {
+      "selector": ["variable", "function"],
+      "format": ["camelCase"],
+      "leadingUnderscore": "allow"
+    }
+  ]
+}
+```
+
+### Ignore properties that require quotes
+
+Sometimes you have to use a quoted name that breaks the convention (for example, HTTP headers).
+If this is a common thing in your codebase, then you can use the `filter` option in one of two ways:
+
+You can use the `filter` option to ignore specific names only:
+
+```jsonc
+{
+  "@typescript-eslint/naming-convention": [
+    "error",
+    {
+      "selector": "property",
+      "format": ["strictCamelCase"],
+      "filter": {
+        // you can expand this regex to add more allowed names
+        "regex": "^(Property-Name-One|Property-Name-Two)$",
+        "match": false
+      }
+    }
+  ]
+}
+```
+
+You can use the `filter` option to ignore names that require quoting:
+
+```jsonc
+{
+  "@typescript-eslint/naming-convention": [
+    "error",
+    {
+      "selector": "property",
+      "format": ["strictCamelCase"],
+      "filter": {
+        // you can expand this regex as you find more cases that require quoting that you want to allow
+        "regex": "[- ]",
+        "match": false
+      }
+    }
+  ]
+}
+```
+
 ### Enforce the codebase follows ESLint's `camelcase` conventions
 
 ```json
 {
+  "camelcase": "off",
   "@typescript-eslint/naming-convention": [
     "error",
     {
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md
index 3ab59cb..fb9a68e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md
@@ -1,10 +1,9 @@
 # Disallow generic `Array` constructors (`no-array-constructor`)
 
-Use of the `Array` constructor to construct a new array is generally discouraged in favor of array literal notation because of the single-argument pitfall and because the `Array` global may be redefined. Two exceptions are when the Array constructor is used to intentionally create sparse arrays of a specified size by giving the constructor a single numeric argument, or when using TypeScript type parameters to specify the type of the items of the array (`new Array<Foo>()`).
-
 ## Rule Details
 
-This rule disallows `Array` constructors.
+This rule extends the base [`eslint/no-array-constructor`](https://eslint.org/docs/rules/no-array-constructor) rule.
+It adds support for the generically typed `Array` constructor (`new Array<Foo>()`).
 
 Examples of **incorrect** code for this rule:
 
@@ -27,8 +26,18 @@
 new Array(someOtherArray.length);
 ```
 
-## When Not To Use It
+## How to use
 
-This rule enforces a nearly universal stylistic concern. That being said, this rule may be disabled if the constructor style is preferred.
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-array-constructor": "off",
+  "@typescript-eslint/no-array-constructor": ["error"]
+}
+```
 
-<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/7685fed33b15763ee3cf7dbe1facfc5ba85173f3/docs/rules/no-array-constructor.md)</sup>
+## Options
+
+See [`eslint/no-array-constructor` options](https://eslint.org/docs/rules/no-array-constructor#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-array-constructor.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-base-to-string.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-base-to-string.md
index 4050047..f1c2aba 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-base-to-string.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-base-to-string.md
@@ -1,13 +1,13 @@
 # Requires that `.toString()` is only called on objects which provide useful information when stringified (`no-base-to-string`)
 
-JavaScript will call `toString()` on an object when it is converted to a string, such as when `+` adding to a string or in <code>`${}`</code> template literals.
+JavaScript will call `toString()` on an object when it is converted to a string, such as when `+` adding to a string or in `${}` template literals.
 
 The default Object `.toString()` returns `"[object Object]"`, so this rule requires stringified objects define a more useful `.toString()` method.
 
 Note that `Function` provides its own `.toString()` that returns the function's code.
 Functions are not flagged by this rule.
 
-This rule has some overlap with with [`restrict-plus-operands`](./restrict-plus-operands.md) and [`restrict-template-expressions`](./restrict-template-expressions.md).
+This rule has some overlap with [`restrict-plus-operands`](./restrict-plus-operands.md) and [`restrict-template-expressions`](./restrict-template-expressions.md).
 
 ## Rule Details
 
@@ -52,6 +52,34 @@
 `Value: ${literalWithToString}`;
 ```
 
+## Options
+
+```ts
+type Options = {
+  ignoredTypeNames?: string[];
+};
+
+const defaultOptions: Options = {
+  ignoredTypeNames: ['RegExp'],
+};
+```
+
+### `ignoredTypeNames`
+
+A string array of type names to ignore, this is useful for types missing `toString()` (but actually has `toString()`).
+There are some types missing `toString()` in old version TypeScript, like `RegExp`, `URL`, `URLSearchParams` etc.
+
+The following patterns are considered correct with the default options `{ ignoredTypeNames: ["RegExp"] }`:
+
+```ts
+`${/regex/}`;
+'' + /regex/;
+/regex/.toString();
+let value = /regex/;
+value.toString();
+let text = `${value}`;
+```
+
 ## When Not To Use It
 
 If you don't mind `"[object Object]"` in your strings, then you will not need this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md
new file mode 100644
index 0000000..a61f6a8
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md
@@ -0,0 +1,46 @@
+# Disallow non-null assertion in locations that may be confusing (`no-confusing-non-null-assertion`)
+
+## Rule Details
+
+Using a non-null assertion (`!`) next to an assign or equals check (`=` or `==` or `===`) creates code that is confusing as it looks similar to a not equals check (`!=` `!==`).
+
+```typescript
+a! == b; // a non-null assertions(`!`) and an equals test(`==`)
+a !== b; // not equals test(`!==`)
+a! === b; // a non-null assertions(`!`) and an triple equals test(`===`)
+```
+
+Examples of **incorrect** code for this rule:
+
+```ts
+interface Foo {
+  bar?: string;
+  num?: number;
+}
+
+const foo: Foo = getFoo();
+const isEqualsBar = foo.bar! == 'hello';
+const isEqualsNum = 1 + foo.num! == 2;
+```
+
+Examples of **correct** code for this rule:
+
+<!-- prettier-ignore -->
+```ts
+interface Foo {
+  bar?: string;
+  num?: number;
+}
+
+const foo: Foo = getFoo();
+const isEqualsBar = foo.bar == 'hello';
+const isEqualsNum = (1 + foo.num!) == 2;
+```
+
+## When Not To Use It
+
+If you don't care about this confusion, then you will not need this rule.
+
+## Further Reading
+
+- [`Issue: Easy misunderstanding: "! ==="`](https://github.com/microsoft/TypeScript/issues/37837) in [TypeScript repo](https://github.com/microsoft/TypeScript)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dupe-class-members.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dupe-class-members.md
index d0b3b57..ddfc1b9 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dupe-class-members.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-dupe-class-members.md
@@ -7,7 +7,7 @@
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "no-dupe-class-members": "off",
@@ -15,4 +15,8 @@
 }
 ```
 
+## Options
+
+See [`eslint/no-dupe-class-members` options](https://eslint.org/docs/rules/no-dupe-class-members#options).
+
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-dupe-class-members.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md
index 17628cb..356700d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md
@@ -1,80 +1,90 @@
 # Disallow empty functions (`no-empty-function`)
 
-Empty functions can reduce readability because readers need to guess whether it’s intentional or not. So writing a clear comment for empty functions is a good practice.
-
 ## Rule Details
 
-The `@typescript-eslint/no-empty-function` rule extends the `no-empty-function` rule from ESLint core, and adds support for handling TypeScript specific code that would otherwise trigger the rule.
+This rule extends the base [`eslint/no-empty-function`](https://eslint.org/docs/rules/no-empty-function) rule.
+It adds support for handling TypeScript specific code that would otherwise trigger the rule.
 
-One example of valid TypeScript specific code that would otherwise trigger the `no-empty-function` rule is the use of [parameter properties](https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties) in constructor functions:
+One example of valid TypeScript specific code that would otherwise trigger the `no-empty-function` rule is the use of [parameter properties](https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties) in constructor functions.
 
-```typescript
-class Person {
-  constructor(private firstName: string, private surname: string) {}
-}
-```
+## How to use
 
-The above code is functionally equivalent to:
-
-```typescript
-class Person {
-  private firstName: string;
-  private surname: string;
-
-  constructor(firstName: string, surname: string) {
-    this.firstName = firstName;
-    this.surname = surname;
-  }
-}
-```
-
-Parameter properties enable both the _declaration_ and _initialization_ of member properties in a single location, avoiding the boilerplate & duplication that is common when initializing member properties from parameter values in a constructor function.
-
-In these cases, although the constructor has an empty function body, it is technically valid and should not trigger an error.
-
-See the [ESLint documentation](https://eslint.org/docs/rules/no-empty-function) for more details on the `no-empty-function` rule.
-
-## Rule Changes
-
-```cjson
+```jsonc
 {
-    // note you must disable the base rule as it can report incorrect errors
-    "no-empty-function": "off",
-    "@typescript-eslint/no-empty-function": "error"
+  // note you must disable the base rule as it can report incorrect errors
+  "no-empty-function": "off",
+  "@typescript-eslint/no-empty-function": ["error"]
 }
 ```
 
 ## Options
 
-This rule has an object option:
-
-- `allow` (`string[]`)
-  - `"protected-constructors"` - Protected class constructors.
-  - `"private-constructors"` - Private class constructors.
-  - [See the other options allowed](https://github.com/eslint/eslint/blob/master/docs/rules/no-empty-function.md#options)
-
-#### allow: protected-constructors
-
-Examples of **correct** code for the `{ "allow": ["protected-constructors"] }` option:
+See [`eslint/no-empty-function` options](https://eslint.org/docs/rules/no-empty-function#options).
+This rule adds the following options:
 
 ```ts
-/*eslint @typescript-eslint/no-empty-function: ["error", { "allow": ["protected-constructors"] }]*/
+type AdditionalAllowOptionEntries =
+  | 'private-constructors'
+  | 'protected-constructors'
+  | 'decoratedFunctions';
 
+type AllowOptionEntries =
+  | BaseNoEmptyFunctionAllowOptionEntries
+  | AdditionalAllowOptionEntries;
+
+interface Options extends BaseNoEmptyFunctionOptions {
+  allow?: Array<AllowOptionEntries>;
+}
+const defaultOptions: Options = {
+  ...baseNoEmptyFunctionDefaultOptions,
+  allow: [],
+};
+```
+
+### allow: `private-constructors`
+
+Examples of correct code for the `{ "allow": ["private-constructors"] }` option:
+
+```ts
+class Foo {
+  private constructor() {}
+}
+```
+
+### allow: `protected-constructors`
+
+Examples of correct code for the `{ "allow": ["protected-constructors"] }` option:
+
+```ts
 class Foo {
   protected constructor() {}
 }
 ```
 
-#### allow: private-constructors
+### allow: `decoratedFunctions`
 
-Examples of **correct** code for the `{ "allow": ["private-constructors"] }` option:
+Examples of correct code for the `{ "allow": ["decoratedFunctions"] }` option:
 
 ```ts
-/*eslint @typescript-eslint/no-empty-function: ["error", { "allow": ["private-constructors"] }]*/
+@decorator()
+function foo() {}
 
 class Foo {
-  private constructor() {}
+  @decorator()
+  foo() {}
 }
 ```
 
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-empty-function": "off",
+  "@typescript-eslint/no-empty-function": ["error"]
+}
+```
+
+---
+
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-empty-function.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md
index 0c27139..7aeb465 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md
@@ -119,30 +119,23 @@
 function foo3(...args: Array<any>): void {}
 function foo4(...args: ReadonlyArray<any>): void {}
 
-const bar1 = (...args: any[]): void {}
-const bar2 = (...args: readonly any[]): void {}
-const bar3 = (...args: Array<any>): void {}
-const bar4 = (...args: ReadonlyArray<any>): void {}
+declare function bar(...args: any[]): void;
 
-const baz1 = function (...args: any[]) {}
-const baz2 = function (...args: readonly any[]) {}
-const baz3 = function (...args: Array<any>) {}
-const baz4 = function (...args: ReadonlyArray<any>) {}
+const baz = (...args: any[]) => {};
+const qux = function (...args: any[]) {};
 
-interface Qux1 { (...args: any[]): void; }
-interface Qux2 { (...args: readonly any[]): void; }
-interface Qux3 { (...args: Array<any>): void; }
-interface Qux4 { (...args: ReadonlyArray<any>): void; }
+type Quux = (...args: any[]) => void;
+type Quuz = new (...args: any[]) => void;
 
-function quux1(fn: (...args: any[]) => void): void {}
-function quux2(fn: (...args: readonly any[]) => void): void {}
-function quux3(fn: (...args: Array<any>) => void): void {}
-function quux4(fn: (...args: ReadonlyArray<any>) => void): void {}
-
-function quuz1(): ((...args: any[]) => void) {}
-function quuz2(): ((...args: readonly any[]) => void) {}
-function quuz3(): ((...args: Array<any>) => void) {}
-function quuz4(): ((...args: ReadonlyArray<any>) => void) {}
+interface Grault {
+  (...args: any[]): void;
+}
+interface Corge {
+  new (...args: any[]): void;
+}
+interface Garply {
+  f(...args: any[]): void;
+}
 ```
 
 Examples of **correct** code for the `{ "ignoreRestArgs": true }` option:
@@ -155,30 +148,23 @@
 function foo3(...args: Array<any>): void {}
 function foo4(...args: ReadonlyArray<any>): void {}
 
-const bar1 = (...args: any[]): void {}
-const bar2 = (...args: readonly any[]): void {}
-const bar3 = (...args: Array<any>): void {}
-const bar4 = (...args: ReadonlyArray<any>): void {}
+declare function bar(...args: any[]): void;
 
-const baz1 = function (...args: any[]) {}
-const baz2 = function (...args: readonly any[]) {}
-const baz3 = function (...args: Array<any>) {}
-const baz4 = function (...args: ReadonlyArray<any>) {}
+const baz = (...args: any[]) => {};
+const qux = function (...args: any[]) {};
 
-interface Qux1 { (...args: any[]): void; }
-interface Qux2 { (...args: readonly any[]): void; }
-interface Qux3 { (...args: Array<any>): void; }
-interface Qux4 { (...args: ReadonlyArray<any>): void; }
+type Quux = (...args: any[]) => void;
+type Quuz = new (...args: any[]) => void;
 
-function quux1(fn: (...args: any[]) => void): void {}
-function quux2(fn: (...args: readonly any[]) => void): void {}
-function quux3(fn: (...args: Array<any>) => void): void {}
-function quux4(fn: (...args: ReadonlyArray<any>) => void): void {}
-
-function quuz1(): ((...args: any[]) => void) {}
-function quuz2(): ((...args: readonly any[]) => void) {}
-function quuz3(): ((...args: Array<any>) => void) {}
-function quuz4(): ((...args: ReadonlyArray<any>) => void) {}
+interface Grault {
+  (...args: any[]): void;
+}
+interface Corge {
+  new (...args: any[]): void;
+}
+interface Garply {
+  f(...args: any[]): void;
+}
 ```
 
 ## When Not To Use It
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md
index bcb21de..8173b2e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md
@@ -1,22 +1,22 @@
 # Disallow unnecessary parentheses (`no-extra-parens`)
 
-This rule restricts the use of parentheses to only where they are necessary.
-
 ## Rule Details
 
 This rule extends the base [`eslint/no-extra-parens`](https://eslint.org/docs/rules/no-extra-parens) rule.
-It supports all options and features of the base rule plus TS type assertions.
+It adds support for TypeScript type assertions.
 
 ## How to use
 
-```cjson
+```jsonc
 {
-    // note you must disable the base rule as it can report incorrect errors
-    "no-extra-parens": "off",
-    "@typescript-eslint/no-extra-parens": ["error"]
+  // note you must disable the base rule as it can report incorrect errors
+  "no-extra-parens": "off",
+  "@typescript-eslint/no-extra-parens": ["error"]
 }
 ```
 
 ## Options
 
 See [`eslint/no-extra-parens` options](https://eslint.org/docs/rules/no-extra-parens#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-extra-parens.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-semi.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-semi.md
index bed5e29..f6865bd 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-semi.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-semi.md
@@ -3,10 +3,11 @@
 ## Rule Details
 
 This rule extends the base [`eslint/no-extra-semi`](https://eslint.org/docs/rules/no-extra-semi) rule.
+It adds support for class properties.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "no-extra-semi": "off",
@@ -14,4 +15,8 @@
 }
 ```
 
+## Options
+
+See [`eslint/no-extra-semi` options](https://eslint.org/docs/rules/no-extra-semi#options).
+
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-extra-semi.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md
index b387d67..abc84f2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md
@@ -58,7 +58,7 @@
   allowEmpty?: boolean;
   // allow extraneous classes if they only contain static members
   allowStaticOnly?: boolean;
-  // allow extraneous classes if they are have a decorator
+  // allow extraneous classes if they have a decorator
   allowWithDecorator?: boolean;
 };
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md
index ffaa542..bda8c26 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md
@@ -51,16 +51,20 @@
 type Options = {
   // if true, checking void expressions will be skipped
   ignoreVoid?: boolean;
+  // if true, checking for async iife will be skipped
+  ignoreIIFE?: boolean;
 };
 
 const defaults = {
-  ignoreVoid: false,
+  ignoreVoid: true,
+  ignoreIIFE: false,
 };
 ```
 
 ### `ignoreVoid`
 
-This allows to easily suppress false-positives with void operator.
+This allows you to stop the rule reporting promises consumed with void operator.
+This can be a good way to explicitly mark a promise as intentionally not awaited.
 
 Examples of **correct** code for this rule with `{ ignoreVoid: true }`:
 
@@ -73,10 +77,27 @@
 void Promise.reject('value');
 ```
 
+With this option set to `true`, and if you are using `no-void`, you should turn on the [`allowAsAStatement`](https://eslint.org/docs/rules/no-void#allowasstatement) option.
+
+### `ignoreIIFE`
+
+This allows you to skip checking of async iife
+
+Examples of **correct** code for this rule with `{ ignoreIIFE: true }`:
+
+```ts
+await(async function () {
+  await res(1);
+})();
+
+(async function () {
+  await res(1);
+})();
+```
+
 ## When Not To Use It
 
-If you do not use Promise-like values in your codebase or want to allow them to
-remain unhandled.
+If you do not use Promise-like values in your codebase, or want to allow them to remain unhandled.
 
 ## Related to
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implicit-any-catch.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implicit-any-catch.md
new file mode 100644
index 0000000..8ef946b
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implicit-any-catch.md
@@ -0,0 +1,76 @@
+# Disallow usage of the implicit `any` type in catch clauses (`no-implicit-any-catch`)
+
+TypeScript 4.0 added support for adding an explicit `any` or `unknown` type annotation on a catch clause variable.
+
+By default, TypeScript will type a catch clause variable as `any`, so explicitly annotating it as `unknown` can add a lot of safety to your codebase.
+
+The `noImplicitAny` flag in TypeScript does not cover this for backwards compatibility reasons.
+
+## Rule Details
+
+This rule requires an explicit type to be declared on a catch clause variable.
+
+The following pattern is considered a warning:
+
+```ts
+try {
+  // ...
+} catch (e) {
+  // ...
+}
+```
+
+The following pattern is **_not_** considered a warning:
+
+<!-- TODO: prettier currently removes the type annotations, re-enable this once prettier is updated -->
+<!-- prettier-ignore-start -->
+
+```ts
+try {
+  // ...
+} catch (e: unknown) {
+  // ...
+}
+```
+
+<!-- prettier-ignore-end -->
+
+## Options
+
+The rule accepts an options object with the following properties:
+
+```ts
+type Options = {
+  // if false, disallow specifying `: any` as the error type as well. See also `no-explicit-any`
+  allowExplicitAny: boolean;
+};
+
+const defaults = {
+  allowExplicitAny: false,
+};
+```
+
+### `allowExplicitAny`
+
+The follow is is **_not_** considered a warning with `{ allowExplicitAny: true }`
+
+<!-- TODO: prettier currently removes the type annotations, re-enable this once prettier is updated -->
+<!-- prettier-ignore-start -->
+
+```ts
+try {
+  // ...
+} catch (e: any) {
+  // ...
+}
+```
+
+<!-- prettier-ignore-end -->
+
+## When Not To Use It
+
+If you are not using TypeScript 4.0 (or greater), then you will not be able to use this rule, annotations on catch clauses is not supported.
+
+## Further Reading
+
+- [TypeScript 4.0 Beta Release Notes](https://devblogs.microsoft.com/typescript/announcing-typescript-4-0-beta/#unknown-on-catch)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md
index a16844a..a03ce72 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md
@@ -56,19 +56,19 @@
 ```ts
 /* eslint @typescript-eslint/no-implied-eval: "error" */
 
-setTimeout(function() {
+setTimeout(function () {
   alert('Hi!');
 }, 100);
 
-setInterval(function() {
+setInterval(function () {
   alert('Hi!');
 }, 100);
 
-setImmediate(function() {
+setImmediate(function () {
   alert('Hi!');
 });
 
-execScript(function() {
+execScript(function () {
   alert('Hi!');
 });
 
@@ -76,7 +76,7 @@
 setTimeout(fn, 100);
 
 const foo = {
-  fn: function() {},
+  fn: function () {},
 };
 setTimeout(foo.fn, 100);
 setTimeout(foo.fn.bind(this), 100);
@@ -88,6 +88,16 @@
 setTimeout(Foo.fn, 100);
 ```
 
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-implied-eval": "off",
+  "@typescript-eslint/no-implied-eval": ["error"]
+}
+```
+
 ## When Not To Use It
 
 If you want to allow `new Function()` or `setTimeout()`, `setInterval()`, `setImmediate()` and `execScript()` with string arguments, then you can safely disable this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md
new file mode 100644
index 0000000..728c42b
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md
@@ -0,0 +1,26 @@
+# disallow `this` keywords outside of classes or class-like objects (`no-invalid-this`)
+
+## Rule Details
+
+This rule extends the base [`eslint/no-invalid-this`](https://eslint.org/docs/rules/no-invalid-this) rule.
+It adds support for TypeScript's `this` parameters.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-invalid-this": "off",
+  "@typescript-eslint/no-invalid-this": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/no-invalid-this` options](https://eslint.org/docs/rules/no-invalid-this#options).
+
+## When Not To Use It
+
+When you are indifferent as to how your variables are initialized.
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-invalid-this.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md
new file mode 100644
index 0000000..567d9c0
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md
@@ -0,0 +1,126 @@
+# Disallows usage of `void` type outside of generic or return types (`no-invalid-void-type`)
+
+Disallows usage of `void` type outside of return types or generic type arguments.
+If `void` is used as return type, it shouldn’t be a part of intersection/union type with most other types.
+
+## Rationale
+
+The `void` type means “nothing” or that a function does not return any value,
+in contrast with implicit `undefined` type which means that a function returns a value `undefined`.
+So “nothing” cannot be mixed with any other types, other than `never`, which accepts all types.
+If you need this - use the `undefined` type instead.
+
+## Rule Details
+
+This rule aims to ensure that the `void` type is only used in valid places.
+
+The following patterns are considered warnings:
+
+```ts
+type PossibleValues = string | number | void;
+type MorePossibleValues = string | ((number & any) | (string | void));
+
+function logSomething(thing: void) {}
+function printArg<T = void>(arg: T) {}
+
+logAndReturn<void>(undefined);
+
+interface Interface {
+  lambda: () => void;
+  prop: void;
+}
+
+class MyClass {
+  private readonly propName: void;
+}
+```
+
+The following patterns are not considered warnings:
+
+```ts
+type NoOp = () => void;
+
+function noop(): void {}
+
+let trulyUndefined = void 0;
+
+async function promiseMeSomething(): Promise<void> {}
+
+type stillVoid = void | never;
+```
+
+### Options
+
+```ts
+interface Options {
+  allowInGenericTypeArguments?: boolean | string[];
+  allowAsThisParameter?: boolean;
+}
+
+const defaultOptions: Options = {
+  allowInGenericTypeArguments: true,
+  allowAsThisParameter: false,
+};
+```
+
+#### `allowInGenericTypeArguments`
+
+This option lets you control if `void` can be used as a valid value for generic type parameters.
+
+Alternatively, you can provide an array of strings which whitelist which types may accept `void` as a generic type parameter.
+
+Any types considered valid by this option will be considered valid as part of a union type with `void`.
+
+This option is `true` by default.
+
+The following patterns are considered warnings with `{ allowInGenericTypeArguments: false }`:
+
+```ts
+logAndReturn<void>(undefined);
+
+let voidPromise: Promise<void> = new Promise<void>(() => {});
+let voidMap: Map<string, void> = new Map<string, void>();
+```
+
+The following patterns are considered warnings with `{ allowInGenericTypeArguments: ['Ex.Mx.Tx'] }`:
+
+```ts
+logAndReturn<void>(undefined);
+
+type NotAllowedVoid1 = Mx.Tx<void>;
+type NotAllowedVoid2 = Tx<void>;
+type NotAllowedVoid3 = Promise<void>;
+```
+
+The following patterns are not considered warnings with `{ allowInGenericTypeArguments: ['Ex.Mx.Tx'] }`:
+
+```ts
+type AllowedVoid = Ex.Mx.Tx<void>;
+type AllowedVoidUnion = void | Ex.Mx.Tx<void>;
+```
+
+#### `allowAsThisParameter`
+
+This option allows specifying a `this` parameter of a function to be `void` when set to `true`.
+This pattern can be useful to explicitly label function types that do not use a `this` argument. [See the TypeScript docs for more information](https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters-in-callbacks).
+
+This option is `false` by default.
+
+The following patterns are considered warnings with `{ allowAsThisParameter: false }` but valid with `{ allowAsThisParameter: true }`:
+
+```ts
+function doThing(this: void) {}
+class Example {
+  static helper(this: void) {}
+  callback(this: void) {}
+}
+```
+
+## When Not To Use It
+
+If you don't care about if `void` is used with other types,
+or in invalid places, then you don't need this rule.
+
+## Compatibility
+
+- TSLint: [invalid-void](https://palantir.github.io/tslint/rules/invalid-void/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md
new file mode 100644
index 0000000..d4e66d6
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md
@@ -0,0 +1,22 @@
+# Disallow function declarations that contain unsafe references inside loop statements (`no-loop-func`)
+
+## Rule Details
+
+This rule extends the base [`eslint/no-loop-func`](https://eslint.org/docs/rules/no-loop-func) rule.
+It adds support for TypeScript types.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-loop-func": "off",
+  "@typescript-eslint/no-loop-func": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/no-loop-func` options](https://eslint.org/docs/rules/no-loop-func#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-loop-func.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loss-of-precision.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loss-of-precision.md
new file mode 100644
index 0000000..d6cf7b7
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loss-of-precision.md
@@ -0,0 +1,19 @@
+# Disallow literal numbers that lose precision (`no-loss-of-precision`)
+
+## Rule Details
+
+This rule extends the base [`eslint/no-loss-of-precision`](https://eslint.org/docs/rules/no-loss-of-precision) rule.
+It adds support for [numeric separators](https://github.com/tc39/proposal-numeric-separator).
+Note that this rule requires ESLint v7.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-loss-of-precision": "off",
+  "@typescript-eslint/no-loss-of-precision": ["error"]
+}
+```
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-loss-of-precision.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md
index 377e927..f41204c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md
@@ -1,25 +1,72 @@
 # Disallow magic numbers (`no-magic-numbers`)
 
-'Magic numbers' are numbers that occur multiple times in code without an explicit meaning.
-They should preferably be replaced by named constants.
-
 ## Rule Details
 
-The `@typescript-eslint/no-magic-numbers` rule extends the `no-magic-numbers` rule from ESLint core, and adds support for handling TypeScript specific code that would otherwise trigger the rule.
+This rule extends the base [`eslint/no-magic-numbers`](https://eslint.org/docs/rules/no-magic-numbers) rule.
+It adds support for:
 
-See the [ESLint documentation](https://eslint.org/docs/rules/no-magic-numbers) for more details on the `no-magic-numbers` rule.
+- numeric literal types (`type T = 1`),
+- `enum` members (`enum Foo { bar = 1 }`),
+- `readonly` class properties (`class Foo { readonly bar = 1 }`).
 
-## Rule Changes
+## How to use
 
-```cjson
+```jsonc
 {
-    // note you must disable the base rule as it can report incorrect errors
-    "no-magic-numbers": "off",
-    "@typescript-eslint/no-magic-numbers": ["error", { "ignoreNumericLiteralTypes": true }]
+  // note you must disable the base rule as it can report incorrect errors
+  "no-magic-numbers": "off",
+  "@typescript-eslint/no-magic-numbers": [
+    "error",
+    {
+      /* options */
+    }
+  ]
 }
 ```
 
-In addition to the options supported by the `no-magic-numbers` rule in ESLint core, the rule adds the following options:
+## Options
+
+See [`eslint/no-magic-numbers` options](https://eslint.org/docs/rules/no-magic-numbers#options).
+This rule adds the following options:
+
+```ts
+interface Options extends BaseNoMagicNumbersOptions {
+  ignoreEnums?: boolean;
+  ignoreNumericLiteralTypes?: boolean;
+  ignoreReadonlyClassProperties?: boolean;
+}
+
+const defaultOptions: Options = {
+  ...baseNoMagicNumbersDefaultOptions,
+  ignoreEnums: false,
+  ignoreNumericLiteralTypes: false,
+  ignoreReadonlyClassProperties: false,
+};
+```
+
+### `ignoreEnums`
+
+A boolean to specify if enums used in TypeScript are considered okay. `false` by default.
+
+Examples of **incorrect** code for the `{ "ignoreEnums": false }` option:
+
+```ts
+/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": false }]*/
+
+enum foo = {
+    SECOND = 1000,
+}
+```
+
+Examples of **correct** code for the `{ "ignoreEnums": true }` option:
+
+```ts
+/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": true }]*/
+
+enum foo = {
+    SECOND = 1000,
+}
+```
 
 ### `ignoreNumericLiteralTypes`
 
@@ -69,28 +116,4 @@
 }
 ```
 
-### `ignoreEnums`
-
-A boolean to specify if enums used in TypeScript are considered okay. `false` by default.
-
-Examples of **incorrect** code for the `{ "ignoreEnums": false }` option:
-
-```ts
-/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": false }]*/
-
-enum foo = {
-    SECOND = 1000,
-}
-```
-
-Examples of **correct** code for the `{ "ignoreEnums": true }` option:
-
-```ts
-/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": true }]*/
-
-enum foo = {
-    SECOND = 1000,
-}
-```
-
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-magic-numbers.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md
index 3bcb1a3..b155c2a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md
@@ -16,7 +16,7 @@
 
 - `allowDeclarations` set to `true` will allow you to `declare` custom TypeScript modules and namespaces (Default: `false`).
 - `allowDefinitionFiles` set to `true` will allow you to `declare` and use custom TypeScript modules and namespaces
-  inside definition files (Default: `false`).
+  inside definition files (Default: `true`).
 
 Examples of **incorrect** code for the default `{ "allowDeclarations": false, "allowDefinitionFiles": false }` options:
 
@@ -51,6 +51,14 @@
 declare module 'foo' {}
 declare module foo {}
 declare namespace foo {}
+
+declare global {
+  namespace foo {}
+}
+
+declare module foo {
+  namespace foo {}
+}
 ```
 
 Examples of **incorrect** code for the `{ "allowDeclarations": false }` option:
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md
index 95ee927..fdb2a8a 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md
@@ -11,8 +11,12 @@
 /* eslint @typescript-eslint/no-non-null-asserted-optional-chain: "error" */
 
 foo?.bar!;
-foo?.bar!.baz;
 foo?.bar()!;
+
+// Prior to TS3.9, foo?.bar!.baz meant (foo?.bar).baz - i.e. the non-null assertion is applied to the entire chain so far.
+// For TS3.9 and greater, the non-null assertion is only applied to the property itself, so it's safe.
+// The following is incorrect code if you're using less than TS3.9
+foo?.bar!.baz;
 foo?.bar!();
 foo?.bar!().baz;
 ```
@@ -27,6 +31,11 @@
 foo?.bar();
 foo?.bar();
 foo?.bar().baz;
+
+// The following is correct code if you're using TS3.9 or greater
+foo?.bar!.baz;
+foo?.bar!();
+foo?.bar!().baz;
 ```
 
 ## When Not To Use It
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md
index 5241a43..04de576 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md
@@ -23,7 +23,7 @@
 }
 
 const foo: Foo = getFoo();
-const includesBaz: boolean = foo.bar && foo.bar.includes('baz');
+const includesBaz: boolean = foo.bar?.includes('baz') ?? false;
 ```
 
 ## When Not To Use It
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md
new file mode 100644
index 0000000..4b5164d
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md
@@ -0,0 +1,79 @@
+# Disallow variable redeclaration (`no-redeclare`)
+
+## Rule Details
+
+This rule extends the base [`eslint/no-redeclare`](https://eslint.org/docs/rules/no-redeclare) rule.
+It adds support for TypeScript function overloads, and declaration merging.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-redeclare": "off",
+  "@typescript-eslint/no-redeclare": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/no-redeclare` options](https://eslint.org/docs/rules/no-redeclare#options).
+This rule adds the following options:
+
+```ts
+interface Options extends BaseNoRedeclareOptions {
+  ignoreDeclarationMerge?: boolean;
+}
+
+const defaultOptions: Options = {
+  ...baseNoRedeclareDefaultOptions,
+  ignoreDeclarationMerge: true,
+};
+```
+
+### `ignoreDeclarationMerge`
+
+When set to `true`, the rule will ignore declaration merges between the following sets:
+
+- interface + interface
+- namespace + namespace
+- class + interface
+- class + namespace
+- class + interface + namespace
+- function + namespace
+
+Examples of **correct** code with `{ ignoreDeclarationMerge: true }`:
+
+```ts
+interface A {
+  prop1: 1;
+}
+interface A {
+  prop2: 2;
+}
+
+namespace Foo {
+  export const a = 1;
+}
+namespace Foo {
+  export const b = 2;
+}
+
+class Bar {}
+namespace Bar {}
+
+function Baz() {}
+namespace Baz {}
+```
+
+**Note:** Even with this option set to true, this rule will report if you name a type and a variable the same name. **_This is intentional_**.
+Declaring a variable and a type and a variable the same is usually an accident, and it can lead to hard-to-understand code.
+If you have a rare case where you're intentionally naming a type the same name as a variable, use a disable comment. For example:
+
+```ts
+type something = string;
+// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentionally naming the variable the same as the type
+const something = 2;
+```
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-redeclare.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md
new file mode 100644
index 0000000..ed241b8
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md
@@ -0,0 +1,87 @@
+# Disallow variable declarations from shadowing variables declared in the outer scope (`no-shadow`)
+
+## Rule Details
+
+This rule extends the base [`eslint/no-shadow`](https://eslint.org/docs/rules/no-shadow) rule.
+It adds support for TypeScript's `this` parameters, and adds options for TypeScript features.
+
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-shadow": "off",
+  "@typescript-eslint/no-shadow": ["error"]
+}
+```
+
+## Options
+
+See [`eslint/no-shadow` options](https://eslint.org/docs/rules/no-shadow#options).
+This rule adds the following options:
+
+```ts
+interface Options extends BaseNoShadowOptions {
+  ignoreTypeValueShadow?: boolean;
+  ignoreFunctionTypeParameterNameValueShadow?: boolean;
+}
+
+const defaultOptions: Options = {
+  ...baseNoShadowDefaultOptions,
+  ignoreTypeValueShadow: true,
+  ignoreFunctionTypeParameterNameValueShadow: true,
+};
+```
+
+### `ignoreTypeValueShadow`
+
+When set to `true`, the rule will ignore the case when you name a type the same as a variable.
+
+TypeScript allows types and variables to shadow one-another. This is generally safe because you cannot use variables in type locations without a `typeof` operator, so there's little risk of confusion.
+
+Examples of **correct** code with `{ ignoreTypeValueShadow: true }`:
+
+```ts
+type Foo = number;
+const Foo = 1;
+
+interface Bar {
+  prop: number;
+}
+const Bar = 'test';
+```
+
+### `ignoreFunctionTypeParameterNameValueShadow`
+
+When set to `true`, the rule will ignore the case when you name a function type argument the same as a variable.
+
+Each of a function type's arguments creates a value variable within the scope of the function type. This is done so that you can reference the type later using the `typeof` operator:
+
+```ts
+type Func = (test: string) => typeof test;
+
+declare const fn: Func;
+const result = fn('str'); // typeof result === string
+```
+
+This means that function type arguments shadow value variable names in parent scopes:
+
+```ts
+let test = 1;
+type TestType = typeof test; // === number
+type Func = (test: string) => typeof test; // this "test" references the argument, not the variable
+
+declare const fn: Func;
+const result = fn('str'); // typeof result === string
+```
+
+If you do not use the `typeof` operator in a function type return type position, you can safely turn this option on.
+
+Examples of **correct** code with `{ ignoreFunctionTypeParameterNameValueShadow: true }`:
+
+```ts
+const test = 1;
+type Func = (test: string) => typeof test;
+```
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-shadow.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md
index 7f5ee71..324929e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md
@@ -14,7 +14,7 @@
 > ```js
 > const self = this;
 >
-> setTimeout(function() {
+> setTimeout(function () {
 >   self.doWork();
 > });
 > ```
@@ -39,15 +39,15 @@
 
 You can pass an object option:
 
-```json5
+```jsonc
 {
-  '@typescript-eslint/no-this-alias': [
-    'error',
+  "@typescript-eslint/no-this-alias": [
+    "error",
     {
-      allowDestructuring: true, // Allow `const { props, state } = this`; false by default
-      allowedNames: ['self'], // Allow `const self = this`; `[]` by default
-    },
-  ],
+      "allowDestructuring": true, // Allow `const { props, state } = this`; false by default
+      "allowedNames": ["self"] // Allow `const self = this`; `[]` by default
+    }
+  ]
 }
 ```
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md
index 3b7ee9c..0b89f10 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md
@@ -79,6 +79,16 @@
 throw new CustomError();
 ```
 
+## How to use
+
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-throw-literal": "off",
+  "@typescript-eslint/no-throw-literal": ["error"]
+}
+```
+
 ---
 
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-throw-literal.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md
index 9d7f1d4..5b720b2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md
@@ -69,7 +69,7 @@
 - Debug your code: interfaces create a new name, so is easy to identify the base type of an object
   while debugging the application.
 
-Finally, mapping types is an advance technique, leaving it open can quickly become a pain point
+Finally, mapping types is an advanced technique and leaving it open can quickly become a pain point
 in your application.
 
 ## Rule Details
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md
index 81b4a5c..d600bb7 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md
@@ -8,6 +8,12 @@
 A comparison is considered unnecessary if it checks a boolean literal against any variable with just the `boolean` type.
 A comparison is **_not_** considered unnecessary if the type is a union of booleans (`string | boolean`, `someObject | boolean`).
 
+**Note**: Throughout this page, only strict equality (`===` and `!==`) are
+used in the examples. However, the implementation of the rule does not
+distinguish between strict and loose equality. Any example below that uses
+`===` would be treated the same way if `==` was used, and any example below
+that uses `!==` would be treated the same way if `!=` was used.
+
 Examples of **incorrect** code for this rule:
 
 ```ts
@@ -30,12 +36,99 @@
 declare const someStringBoolean: boolean | string;
 if (someStringBoolean === true) {
 }
+```
 
+## Options
+
+The rule accepts an options object with the following properties.
+
+```ts
+type Options = {
+  // if false, comparisons between a nullable boolean variable to `true` will be checked and fixed
+  allowComparingNullableBooleansToTrue?: boolean;
+  // if false, comparisons between a nullable boolean variable to `false` will be checked and fixed
+  allowComparingNullableBooleansToFalse?: boolean;
+};
+```
+
+### Defaults
+
+This rule always checks comparisons between a boolean variable and a boolean
+literal. Comparisons between nullable boolean variables and boolean literals
+are **not** checked by default.
+
+```ts
+const defaults = {
+  allowComparingNullableBooleansToTrue: true,
+  allowComparingNullableBooleansToFalse: true,
+};
+```
+
+### `allowComparingNullableBooleansToTrue`
+
+Examples of **incorrect** code for this rule with `{ allowComparingNullableBooleansToTrue: false }`:
+
+```ts
+declare const someUndefinedCondition: boolean | undefined;
+if (someUndefinedCondition === true) {
+}
+
+declare const someNullCondition: boolean | null;
+if (someNullCondition !== true) {
+}
+```
+
+Examples of **correct** code for this rule with `{ allowComparingNullableBooleansToTrue: false }`:
+
+```ts
+declare const someUndefinedCondition: boolean | undefined;
+if (someUndefinedCondition) {
+}
+
+declare const someNullCondition: boolean | null;
+if (!someNullCondition) {
+}
+```
+
+### `allowComparingNullableBooleansToFalse`
+
+Examples of **incorrect** code for this rule with `{ allowComparingNullableBooleansToFalse: false }`:
+
+```ts
 declare const someUndefinedCondition: boolean | undefined;
 if (someUndefinedCondition === false) {
 }
+
+declare const someNullCondition: boolean | null;
+if (someNullCondition !== false) {
+}
 ```
 
+Examples of **correct** code for this rule with `{ allowComparingNullableBooleansToFalse: false }`:
+
+```ts
+declare const someUndefinedCondition: boolean | undefined;
+if (someUndefinedCondition ?? true) {
+}
+
+declare const someNullCondition: boolean | null;
+if (!(someNullCondition ?? true)) {
+}
+```
+
+## Fixer
+
+|           Comparison           | Fixer Output                    | Notes                                                                               |
+| :----------------------------: | ------------------------------- | ----------------------------------------------------------------------------------- |
+|     `booleanVar === true`      | `booleanLiteral`                |                                                                                     |
+|     `booleanVar !== true`      | `!booleanLiteral`               |                                                                                     |
+|     `booleanVar === false`     | `!booleanLiteral`               |                                                                                     |
+|     `booleanVar !== false`     | `booleanLiteral`                |                                                                                     |
+| `nullableBooleanVar === true`  | `nullableBooleanVar`            | Only checked/fixed if the `allowComparingNullableBooleansToTrue` option is `false`  |
+| `nullableBooleanVar !== true`  | `!nullableBooleanVar`           | Only checked/fixed if the `allowComparingNullableBooleansToTrue` option is `false`  |
+| `nullableBooleanVar === false` | `nullableBooleanVar ?? true`    | Only checked/fixed if the `allowComparingNullableBooleansToFalse` option is `false` |
+| `nullableBooleanVar !== false` | `!(nullableBooleanVar ?? true)` | Only checked/fixed if the `allowComparingNullableBooleansToFalse` option is `false` |
+
 ## Related to
 
 - TSLint: [no-boolean-literal-compare](https://palantir.github.io/tslint/rules/no-boolean-literal-compare)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-condition.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-condition.md
index f2bea6f..bff0f54 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-condition.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-condition.md
@@ -28,6 +28,12 @@
   // arg can never be nullish, so ?. is unnecessary
   return arg?.length;
 }
+
+// Checks array predicate return types, where possible
+[
+  [1, 2],
+  [3, 4],
+].filter(t => t); // number[] is always truthy
 ```
 
 Examples of **correct** code for this rule:
@@ -50,23 +56,29 @@
   // Necessary, since arg might be nullish
   return arg?.length;
 }
+
+[0, 1, 2, 3].filter(t => t); // number can be truthy or falsy
 ```
 
 ## Options
 
-Accepts an object with the following options:
-
-- `ignoreRhs` (default `false`) - doesn't check if the right-hand side of `&&` and `||` is a necessary condition. For example, the following code is valid with this option on:
-
 ```ts
-function head<T>(items: T[]) {
-  return items.length && items[0].toUpperCase();
-}
+type Options = {
+  // if true, the rule will ignore constant loop conditions
+  allowConstantLoopConditions?: boolean;
+  // if true, the rule will not error when running with a tsconfig that has strictNullChecks turned **off**
+  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean;
+};
+
+const defaultOptions: Options = {
+  allowConstantLoopConditions: false,
+  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
+};
 ```
 
-- `allowConstantLoopConditions` (default `false`) - allows constant expressions in loops.
+### `allowConstantLoopConditions`
 
-Example of correct code for when `allowConstantLoopConditions` is `true`:
+Example of correct code for `{ allowConstantLoopConditions: true }`:
 
 ```ts
 while (true) {}
@@ -74,18 +86,15 @@
 do {} while (true);
 ```
 
-- `checkArrayPredicates` (default: `false`) - if set checks that the return value from certain array method callbacks (`filter`, `find`, `some`, `every`) is necessarily conditional.
+### `allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing`
 
-```ts
-// Valid: numbers can be truthy or falsy.
-[0, 1, 2, 3].filter(t => t);
+If this is set to `false`, then the rule will error on every file whose `tsconfig.json` does _not_ have the `strictNullChecks` compiler option (or `strict`) set to `true`.
 
-// Invalid: arrays are always falsy.
-[
-  [1, 2],
-  [3, 4],
-].filter(t => t);
-```
+Without `strictNullChecks`, TypeScript essentially erases `undefined` and `null` from the types. This means when this rule inspects the types from a variable, **it will not be able to tell that the variable might be `null` or `undefined`**, which essentially makes this rule useless.
+
+You should be using `strictNullChecks` to ensure complete type-safety in your codebase.
+
+If for some reason you cannot turn on `strictNullChecks`, but still want to use this rule - you can use this option to allow it - but know that the behavior of this rule is _undefined_ with the compiler option turned off. We will not accept bug reports if you are using this option.
 
 ## When Not To Use It
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md
index 14819c5..4464b64 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md
@@ -44,6 +44,10 @@
 ```
 
 ```ts
+const foo = 'foo' as const;
+```
+
+```ts
 function foo(x: number | undefined): number {
   return x!;
 }
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-assignment.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-assignment.md
new file mode 100644
index 0000000..64207e5
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-assignment.md
@@ -0,0 +1,72 @@
+# Disallows assigning any to variables and properties (`no-unsafe-assignment`)
+
+Despite your best intentions, the `any` type can sometimes leak into your codebase.
+Assigning an `any` typed value to a variable can be hard to pick up on, particularly if it leaks in from an external library. Operations on the variable will not be checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase.
+
+## Rule Details
+
+This rule disallows assigning `any` to a variable, and assigning `any[]` to an array destructuring.
+This rule also compares the assigned type to the variable's type to ensure you don't assign an unsafe `any` in a generic position to a receiver that's expecting a specific type. For example, it will error if you assign `Set<any>` to a variable declared as `Set<string>`.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+const x = 1 as any,
+  y = 1 as any;
+const [x] = 1 as any;
+const [x] = [] as any[];
+const [x] = [1 as any];
+[x] = [1] as [any];
+
+function foo(a = 1 as any) {}
+class Foo {
+  constructor(private a = 1 as any) {}
+}
+class Foo {
+  private a = 1 as any;
+}
+
+// generic position examples
+const x: Set<string> = new Set<any>();
+const x: Map<string, string> = new Map<string, any>();
+const x: Set<string[]> = new Set<any[]>();
+const x: Set<Set<Set<string>>> = new Set<Set<Set<any>>>();
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+const x = 1,
+  y = 1;
+const [x] = [1];
+[x] = [1] as [number];
+
+function foo(a = 1) {}
+class Foo {
+  constructor(private a = 1) {}
+}
+class Foo {
+  private a = 1;
+}
+
+// generic position examples
+const x: Set<string> = new Set<string>();
+const x: Map<string, string> = new Map<string, string>();
+const x: Set<string[]> = new Set<string[]>();
+const x: Set<Set<Set<string>>> = new Set<Set<Set<string>>>();
+```
+
+There are cases where the rule allows assignment of `any` to `unknown`.
+
+Example of `any` to `unknown` assignment that are allowed.
+
+```ts
+const x: unknown = y as any;
+const x: unknown[] = y as any[];
+const x: Set<unknown> = y as Set<any>;
+```
+
+## Related to
+
+- [`no-explicit-any`](./no-explicit-any.md)
+- TSLint: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-call.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-call.md
new file mode 100644
index 0000000..1000e59
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-call.md
@@ -0,0 +1,48 @@
+# Disallows calling an any type value (`no-unsafe-call`)
+
+Despite your best intentions, the `any` type can sometimes leak into your codebase.
+The arguments to, and return value of calling an `any` typed variable are not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase.
+
+## Rule Details
+
+This rule disallows calling any variable that is typed as `any`.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+declare const anyVar: any;
+declare const nestedAny: { prop: any };
+
+anyVar();
+anyVar.a.b();
+
+nestedAny.prop();
+nestedAny.prop['a']();
+
+new anyVar();
+new nestedAny.prop();
+
+anyVar`foo`;
+nestedAny.prop`foo`;
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+declare const typedVar: () => void;
+declare const typedNested: { prop: { a: () => void } };
+
+typedVar();
+typedNested.prop.a();
+
+(() => {})();
+
+new Map();
+
+String.raw`foo`;
+```
+
+## Related to
+
+- [`no-explicit-any`](./no-explicit-any.md)
+- TSLint: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md
new file mode 100644
index 0000000..e64294f
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md
@@ -0,0 +1,54 @@
+# Disallows member access on any typed variables (`no-unsafe-member-access`)
+
+Despite your best intentions, the `any` type can sometimes leak into your codebase.
+Member access on `any` typed variables is not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase.
+
+## Rule Details
+
+This rule disallows member access on any variable that is typed as `any`.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+declare const anyVar: any;
+declare const nestedAny: { prop: any };
+
+anyVar.a;
+anyVar.a.b;
+anyVar['a'];
+anyVar['a']['b'];
+
+nestedAny.prop.a;
+nestedAny.prop['a'];
+
+const key = 'a';
+nestedAny.prop[key];
+
+// Using an any to access a member is unsafe
+const arr = [1, 2, 3];
+arr[anyVar];
+nestedAny[anyVar];
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+declare const properlyTyped: { prop: { a: string } };
+
+properlyTyped.prop.a;
+properlyTyped.prop['a'];
+
+const key = 'a';
+properlyTyped.prop[key];
+
+const arr = [1, 2, 3];
+arr[1];
+const idx = 1;
+arr[idx];
+arr[idx++];
+```
+
+## Related to
+
+- [`no-explicit-any`](./no-explicit-any.md)
+- TSLint: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md
new file mode 100644
index 0000000..9810be3
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md
@@ -0,0 +1,89 @@
+# Disallows returning any from a function (`no-unsafe-return`)
+
+Despite your best intentions, the `any` type can sometimes leak into your codebase.
+Returned `any` typed values not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase.
+
+## Rule Details
+
+This rule disallows returning `any` or `any[]` from a function.
+This rule also compares the return type to the function's declared/inferred return type to ensure you don't return an unsafe `any` in a generic position to a receiver that's expecting a specific type. For example, it will error if you return `Set<any>` from a function declared as returning `Set<string>`.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+function foo1() {
+  return 1 as any;
+}
+function foo2() {
+  return Object.create(null);
+}
+const foo3 = () => {
+  return 1 as any;
+};
+const foo4 = () => Object.create(null);
+
+function foo5() {
+  return [] as any[];
+}
+function foo6() {
+  return [] as Array<any>;
+}
+function foo7() {
+  return [] as readonly any[];
+}
+function foo8() {
+  return [] as Readonly<any[]>;
+}
+const foo9 = () => {
+  return [] as any[];
+};
+const foo10 = () => [] as any[];
+
+const foo11 = (): string[] => [1, 2, 3] as any[];
+
+// generic position examples
+function assignability1(): Set<string> {
+  return new Set<any>([1]);
+}
+type TAssign = () => Set<string>;
+const assignability2: TAssign = () => new Set<any>([true]);
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+function foo1() {
+  return 1;
+}
+function foo2() {
+  return Object.create(null) as Record<string, unknown>;
+}
+
+const foo3 = () => [];
+const foo4 = () => ['a'];
+
+function assignability1(): Set<string> {
+  return new Set<string>(['foo']);
+}
+type TAssign = () => Set<string>;
+const assignability2: TAssign = () => new Set(['foo']);
+```
+
+There are cases where the rule allows to return `any` to `unknown`.
+
+Examples of `any` to `unknown` return that are allowed.
+
+```ts
+function foo1(): unknown {
+  return JSON.parse(singleObjString); // Return type for JSON.parse is any.
+}
+
+function foo2(): unknown[] {
+  return [] as any[];
+}
+```
+
+## Related to
+
+- [`no-explicit-any`](./no-explicit-any.md)
+- TSLint: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-untyped-public-signature.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-untyped-public-signature.md
deleted file mode 100644
index 87a1789..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-untyped-public-signature.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Disallow untyped public methods (`no-untyped-public-signature`)
-
-public methods are meant to be used by code outside of your class. By typing both the parameters and the return type of public methods they will be more readable and easy to use.
-
-## Rule Details
-
-This rule aims to ensure that only typed public methods are declared in the code.
-
-The following patterns are considered warnings:
-
-```ts
-// untyped parameter
-public foo(param1): void {
-}
-
-// untyped parameter
-public foo(param1: any): void {
-}
-
-// untyped return type
-public foo(param1: string) {
-}
-
-// untyped return type
-public foo(param1: string): any {
-}
-```
-
-The following patterns are not warnings:
-
-```ts
-// typed public method
-public foo(param1: string): void {
-}
-
-// untyped private method
-private foo(param1) {
-}
-```
-
-## Options
-
-This rule, in its default state, does not require any argument.
-
-### `ignoredMethods`
-
-You may pass method names you would like this rule to ignore, like so:
-
-```cjson
-{
-    "@typescript-eslint/no-untyped-public-signature": ["error", { "ignoredMethods": ["ignoredMethodName"] }]
-}
-```
-
-## When Not To Use It
-
-If you don't wish to type public methods.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-expressions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-expressions.md
index 6367412..cb61c2e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-expressions.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-expressions.md
@@ -1,16 +1,13 @@
 # Disallow unused expressions (`no-unused-expressions`)
 
-This rule aims to eliminate unused expressions which have no effect on the state of the program.
-
 ## Rule Details
 
 This rule extends the base [`eslint/no-unused-expressions`](https://eslint.org/docs/rules/no-unused-expressions) rule.
-It supports all options and features of the base rule.
-This version adds support for numerous typescript features.
+It adds support for optional call expressions `x?.()`, and directive in module declarations.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "no-unused-expressions": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md
index a84b436..5eaf167 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md
@@ -1,305 +1,22 @@
 # Disallow unused variables (`no-unused-vars`)
 
-Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.
-
 ## Rule Details
 
-This rule is aimed at eliminating unused variables, functions, and parameters of functions.
+This rule extends the base [`eslint/no-unused-vars`](https://eslint.org/docs/rules/no-unused-vars) rule.
+It adds support for TypeScript features, such as types.
 
-A variable is considered to be used if any of the following are true:
+## How to use
 
-- It represents a function that is called (`doSomething()`)
-- It is read (`var y = x`)
-- It is passed into a function as an argument (`doSomething(x)`)
-- It is read inside of a function that is passed to another function (`doSomething(function() { foo(); })`)
-
-A variable is _not_ considered to be used if it is only ever assigned to (`var x = 5`) or declared.
-
-Examples of **incorrect** code for this rule:
-
-```js
-/*eslint no-unused-vars: "error"*/
-/*global some_unused_var*/
-
-// It checks variables you have defined as global
-some_unused_var = 42;
-
-var x;
-
-// Write-only variables are not considered as used.
-var y = 10;
-y = 5;
-
-// A read for a modification of itself is not considered as used.
-var z = 0;
-z = z + 1;
-
-// By default, unused arguments cause warnings.
-(function(foo) {
-  return 5;
-})();
-
-// Unused recursive functions also cause warnings.
-function fact(n) {
-  if (n < 2) return 1;
-  return n * fact(n - 1);
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-unused-vars": "off",
+  "@typescript-eslint/no-unused-vars": ["error"]
 }
-
-// When a function definition destructures an array, unused entries from the array also cause warnings.
-function getY([x, y]) {
-  return y;
-}
-```
-
-Examples of **correct** code for this rule:
-
-```js
-/*eslint no-unused-vars: "error"*/
-
-var x = 10;
-alert(x);
-
-// foo is considered used here
-myFunc(
-  function foo() {
-    // ...
-  }.bind(this),
-);
-
-(function(foo) {
-  return foo;
-})();
-
-var myFunc;
-myFunc = setTimeout(function() {
-  // myFunc is considered used
-  myFunc();
-}, 50);
-
-// Only the second argument from the destructured array is used.
-function getY([, y]) {
-  return y;
-}
-```
-
-### exported
-
-In environments outside of CommonJS or ECMAScript modules, you may use `var` to create a global variable that may be used by other scripts. You can use the `/* exported variableName */` comment block to indicate that this variable is being exported and therefore should not be considered unused.
-
-Note that `/* exported */` has no effect for any of the following:
-
-- when the environment is `node` or `commonjs`
-- when `parserOptions.sourceType` is `module`
-- when `ecmaFeatures.globalReturn` is `true`
-
-The line comment `// exported variableName` will not work as `exported` is not line-specific.
-
-Examples of **correct** code for `/* exported variableName */` operation:
-
-```js
-/* exported global_var */
-
-var global_var = 42;
 ```
 
 ## Options
 
-This rule takes one argument which can be a string or an object. The string settings are the same as those of the `vars` property (explained below).
-
-By default this rule is enabled with `all` option for variables and `after-used` for arguments.
-
-```CJSON
-{
-  "rules": {
-    // note you must disable the base rule as it can report incorrect errors
-    "no-unused-vars": "off",
-    "@typescript-eslint/no-unused-vars": ["error", {
-      "vars": "all",
-      "args": "after-used",
-      "ignoreRestSiblings": false
-    }]
-  }
-}
-```
-
-### `vars`
-
-The `vars` option has two settings:
-
-- `all` checks all variables for usage, including those in the global scope. This is the default setting.
-- `local` checks only that locally-declared variables are used but will allow global variables to be unused.
-
-#### `vars: local`
-
-Examples of **correct** code for the `{ "vars": "local" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "vars": "local" }]*/
-/*global some_unused_var */
-
-some_unused_var = 42;
-```
-
-### `varsIgnorePattern`
-
-The `varsIgnorePattern` option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain `ignored` or `Ignored`.
-
-Examples of **correct** code for the `{ "varsIgnorePattern": "[iI]gnored" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
-
-var firstVarIgnored = 1;
-var secondVar = 2;
-console.log(secondVar);
-```
-
-### `args`
-
-The `args` option has three settings:
-
-- `after-used` - unused positional arguments that occur before the last used argument will not be checked, but all named arguments and all positional arguments after the last used argument will be checked.
-- `all` - all named arguments must be used.
-- `none` - do not check arguments.
-
-#### `args: after-used`
-
-Examples of **incorrect** code for the default `{ "args": "after-used" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
-
-// 2 errors, for the parameters after the last used parameter (bar)
-// "baz" is defined but never used
-// "qux" is defined but never used
-(function(foo, bar, baz, qux) {
-  return bar;
-})();
-```
-
-Examples of **correct** code for the default `{ "args": "after-used" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
-
-(function(foo, bar, baz, qux) {
-  return qux;
-})();
-```
-
-#### `args: all`
-
-Examples of **incorrect** code for the `{ "args": "all" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "args": "all" }]*/
-
-// 2 errors
-// "foo" is defined but never used
-// "baz" is defined but never used
-(function(foo, bar, baz) {
-  return bar;
-})();
-```
-
-#### `args: none`
-
-Examples of **correct** code for the `{ "args": "none" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "args": "none" }]*/
-
-(function(foo, bar, baz) {
-  return bar;
-})();
-```
-
-### `ignoreRestSiblings`
-
-The `ignoreRestSiblings` option is a boolean (default: `false`). Using a [Rest Property](https://github.com/tc39/proposal-object-rest-spread) it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.
-
-Examples of **correct** code for the `{ "ignoreRestSiblings": true }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
-// 'type' is ignored because it has a rest property sibling.
-var { type, ...coords } = data;
-```
-
-### `argsIgnorePattern`
-
-The `argsIgnorePattern` option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.
-
-Examples of **correct** code for the `{ "argsIgnorePattern": "^_" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
-
-function foo(x, _y) {
-  return x + 1;
-}
-foo();
-```
-
-### `caughtErrors`
-
-The `caughtErrors` option is used for `catch` block arguments validation.
-
-It has two settings:
-
-- `none` - do not check error objects. This is the default setting.
-- `all` - all named arguments must be used.
-
-#### `caughtErrors: none`
-
-Not specifying this rule is equivalent of assigning it to `none`.
-
-Examples of **correct** code for the `{ "caughtErrors": "none" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
-
-try {
-  //...
-} catch (err) {
-  console.error('errors');
-}
-```
-
-#### `caughtErrors: all`
-
-Examples of **incorrect** code for the `{ "caughtErrors": "all" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
-
-// 1 error
-// "err" is defined but never used
-try {
-  //...
-} catch (err) {
-  console.error('errors');
-}
-```
-
-### `caughtErrorsIgnorePattern`
-
-The `caughtErrorsIgnorePattern` option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.
-
-Examples of **correct** code for the `{ "caughtErrorsIgnorePattern": "^ignore" }` option:
-
-```js
-/*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
-
-try {
-  //...
-} catch (ignoreErr) {
-  console.error('errors');
-}
-```
-
-## When Not To Use It
-
-If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off.
+See [`eslint/no-unused-vars` options](https://eslint.org/docs/rules/no-unused-vars#options).
 
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-unused-vars.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md
index e6acf60..dfdab4d 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md
@@ -1,164 +1,56 @@
 # Disallow the use of variables before they are defined (`no-use-before-define`)
 
-In JavaScript, prior to ES6, variable and function declarations are hoisted to the top of a scope, so it's possible to use identifiers before their formal declarations in code. This can be confusing and some believe it is best to always declare variables and functions before using them.
-
-In ES6, block-level bindings (`let` and `const`) introduce a "temporal dead zone" where a `ReferenceError` will be thrown with any attempt to access the variable before its declaration.
+## PLEASE READ THIS ISSUE BEFORE USING THIS RULE [#1856](https://github.com/typescript-eslint/typescript-eslint/issues/1856)
 
 ## Rule Details
 
-This rule will warn when it encounters a reference to an identifier that has not yet been declared.
+This rule extends the base [`eslint/no-use-before-define`](https://eslint.org/docs/rules/no-use-before-define) rule.
+It adds support for `type`, `interface` and `enum` declarations.
 
-Examples of **incorrect** code for this rule:
+## How to use
 
-```ts
-/*eslint no-use-before-define: "error"*/
-/*eslint-env es6*/
-
-alert(a);
-var a = 10;
-
-f();
-function f() {}
-
-function g() {
-  return b;
-}
-var b = 1;
-
-// With blockBindings: true
+```jsonc
 {
-  alert(c);
-  let c = 1;
+  // note you must disable the base rule as it can report incorrect errors
+  "no-use-before-define": "off",
+  "@typescript-eslint/no-use-before-define": ["error"]
 }
-
-let myVar: StringOrNumber;
-type StringOrNumber = string | number;
-```
-
-Examples of **correct** code for this rule:
-
-```ts
-/*eslint no-use-before-define: "error"*/
-/*eslint-env es6*/
-
-var a;
-a = 10;
-alert(a);
-
-function f() {}
-f(1);
-
-var b = 1;
-function g() {
-  return b;
-}
-
-// With blockBindings: true
-{
-  let C;
-  c++;
-}
-
-type StringOrNumber = string | number;
-let myVar: StringOrNumber;
 ```
 
 ## Options
 
-```json
-{
-  "no-use-before-define": ["error", { "functions": true, "classes": true }]
-}
-```
+See [`eslint/no-use-before-define` options](https://eslint.org/docs/rules/no-use-before-define#options).
+This rule adds the following options:
 
-- `functions` (`boolean`) -
-  The flag which shows whether or not this rule checks function declarations.
-  If this is `true`, this rule warns every reference to a function before the function declaration.
-  Otherwise, ignores those references.
-  Function declarations are hoisted, so it's safe.
-  Default is `true`.
-- `classes` (`boolean`) -
-  The flag which shows whether or not this rule checks class declarations of upper scopes.
-  If this is `true`, this rule warns every reference to a class before the class declaration.
-  Otherwise, ignores those references if the declaration is in upper function scopes.
-  Class declarations are not hoisted, so it might be danger.
-  Default is `true`.
-- `enums` (`boolean`) -
-  The flag which shows whether or not this rule checks enum declarations of upper scopes.
-  If this is `true`, this rule warns every reference to a enum before the enum declaration.
-  Otherwise, ignores those references.
-  Default is `true`.
-- `variables` (`boolean`) -
-  This flag determines whether or not the rule checks variable declarations in upper scopes.
-  If this is `true`, the rule warns every reference to a variable before the variable declaration.
-  Otherwise, the rule ignores a reference if the declaration is in an upper scope, while still reporting the reference if it's in the same scope as the declaration.
-  Default is `true`.
-- `typedefs` (`boolean`, **added** in `@typescript-eslint/eslint-plugin`) -
-  The flag which shows whether or not this rule checks type declarations.
-  If this is `true`, this rule warns every reference to a type before the type declaration.
-  Otherwise, ignores those references.
-  Type declarations are hoisted, so it's safe.
-  Default is `true`.
-
-This rule accepts `"nofunc"` string as an option.
-`"nofunc"` is the same as `{ "functions": false, "classes": true }`.
-
-### `functions`
-
-Examples of **correct** code for the `{ "functions": false }` option:
-
-```js
-/*eslint no-use-before-define: ["error", { "functions": false }]*/
-
-f();
-function f() {}
-```
-
-### `classes`
-
-Examples of **incorrect** code for the `{ "classes": false }` option:
-
-```js
-/*eslint no-use-before-define: ["error", { "classes": false }]*/
-/*eslint-env es6*/
-
-new A();
-class A {}
-```
-
-Examples of **correct** code for the `{ "classes": false }` option:
-
-```js
-/*eslint no-use-before-define: ["error", { "classes": false }]*/
-/*eslint-env es6*/
-
-function foo() {
-  return new A();
+```ts
+interface Options extends BaseNoUseBeforeDefineOptions {
+  enums?: boolean;
+  typedefs?: boolean;
+  ignoreTypeReferences?: boolean;
 }
 
-class A {}
+const defaultOptions: Options = {
+  ...baseNoUseBeforeDefineDefaultOptions,
+  enums: true,
+  typedefs: true,
+  ignoreTypeReferences: true,
+};
 ```
 
 ### `enums`
 
-Examples of **incorrect** code for the `{ "enums": true }` option:
+If this is `true`, this rule warns every reference to a enum before the enum declaration.
+If this is `false`, this rule will ignore references to enums, when the reference is in a child scope.
+
+Examples of **incorrect** code for the `{ "enums": false }` option:
 
 ```ts
-/*eslint no-use-before-define: ["error", { "enums": true }]*/
+/*eslint no-use-before-define: ["error", { "enums": false }]*/
 
-function foo() {
-  return Foo.FOO;
-}
-
-class Test {
-  foo() {
-    return Foo.FOO;
-  }
-}
+const x = Foo.FOO;
 
 enum Foo {
   FOO,
-  BAR,
 }
 ```
 
@@ -176,31 +68,11 @@
 }
 ```
 
-### `variables`
-
-Examples of **incorrect** code for the `{ "variables": false }` option:
-
-```js
-/*eslint no-use-before-define: ["error", { "variables": false }]*/
-
-console.log(foo);
-var foo = 1;
-```
-
-Examples of **correct** code for the `{ "variables": false }` option:
-
-```js
-/*eslint no-use-before-define: ["error", { "variables": false }]*/
-
-function baz() {
-  console.log(foo);
-}
-
-var foo = 1;
-```
-
 ### `typedefs`
 
+If this is `true`, this rule warns every reference to a type before the type declaration.
+If this is `false`, this rule will ignore references to types.
+
 Examples of **correct** code for the `{ "typedefs": false }` option:
 
 ```ts
@@ -210,4 +82,25 @@
 type StringOrNumber = string | number;
 ```
 
-Copied from [the original ESLint rule docs](https://github.com/eslint/eslint/blob/a113cd3/docs/rules/no-use-before-define.md)
+### `ignoreTypeReferences`
+
+If this is `true`, this rule ignores all type references, such as in type annotations and assertions.
+If this is `false`, this will will check all type references.
+
+Examples of **correct** code for the `{ "ignoreTypeReferences": true }` option:
+
+```ts
+/*eslint no-use-before-define: ["error", { "ignoreTypeReferences": true }]*/
+
+let var1: StringOrNumber;
+type StringOrNumber = string | number;
+
+let var2: Enum;
+enum Enum {}
+```
+
+### Other Options
+
+See [`eslint/no-use-before-define` options](https://eslint.org/docs/rules/no-use-before-define#options).
+
+<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-use-before-define.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md
index 757ae5d..524ad4b 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md
@@ -1,88 +1,26 @@
 # Disallow unnecessary constructors (`no-useless-constructor`)
 
-ES2015 provides a default class constructor if one is not specified. As such, it is unnecessary to provide an empty constructor or one that simply delegates into its parent class, as in the following examples:
-
-```js
-class A {
-  constructor() {}
-}
-
-class A extends B {
-  constructor(value) {
-    super(value);
-  }
-}
-```
-
 ## Rule Details
 
-This rule flags class constructors that can be safely removed without changing how the class works.
+This rule extends the base [`eslint/no-useless-constructor`](https://eslint.org/docs/rules/no-useless-constructor) rule.
+It adds support for:
 
-## Examples
+- constructors marked as `protected` / `private` (i.e. marking a constructor as non-public),
+- `public` constructors when there is no superclass,
+- constructors with only parameter properties.
 
-Examples of **incorrect** code for this rule:
+## How to use
 
-```js
-/*eslint @typescript-eslint/no-useless-constructor: "error"*/
-
-class A {
-  constructor() {}
-}
-
-class A extends B {
-  constructor(...args) {
-    super(...args);
-  }
-}
-```
-
-Examples of **correct** code for this rule:
-
-```js
-/*eslint @typescript-eslint/no-useless-constructor: "error"*/
-
-class A {}
-
-class A {
-  constructor() {
-    doSomething();
-  }
-}
-
-class A extends B {
-  constructor() {
-    super('foo');
-  }
-}
-
-class A extends B {
-  constructor() {
-    super();
-    doSomething();
-  }
-}
-
-class A extends B {
-  constructor(protected name: string) {}
-}
-
-class A extends B {
-  protected constructor() {}
-}
-```
-
-## Rule Changes
-
-```cjson
+```jsonc
 {
-    // note you must disable the base rule as it can report incorrect errors
-    "no-useless-constructor": "off",
-    "@typescript-eslint/no-useless-constructor": "error",
+  // note you must disable the base rule as it can report incorrect errors
+  "no-useless-constructor": "off",
+  "@typescript-eslint/no-useless-constructor": ["error"]
 }
 ```
 
-## When Not To Use It
+## Options
 
-If you don't want to be notified about unnecessary constructors, you can safely disable this rule.
+See [`eslint/no-useless-constructor` options](https://eslint.org/docs/rules/no-useless-constructor#options).
 
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-useless-constructor.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-as-const.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-as-const.md
index bb28819..b710a82 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-as-const.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-as-const.md
@@ -25,4 +25,4 @@
 
 ## When Not To Use It
 
-If you are using typescript < 3.4
+If you are using TypeScript < 3.4
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-enum-initializers.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-enum-initializers.md
new file mode 100644
index 0000000..1e8f568
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-enum-initializers.md
@@ -0,0 +1,70 @@
+# Prefer initializing each enums member value (`prefer-enum-initializers`)
+
+This rule recommends having each `enum`s member value explicitly initialized.
+
+`enum`s are a practical way to organize semantically related constant values. However, by implicitly defining values, `enum`s can lead to unexpected bugs if it's modified without paying attention to the order of its items.
+
+## Rule Details
+
+`enum`s infers sequential numbers automatically when initializers are omitted:
+
+```ts
+enum Status {
+  Open, // infer 0
+  Closed, // infer 1
+}
+```
+
+If a new member is added to the top of `Status`, both `Open` and `Closed` would have its values altered:
+
+```ts
+enum Status {
+  Pending, // infer 0
+  Open, // infer 1
+  Closed, // infer 2
+}
+```
+
+Examples of **incorrect** code for this rule:
+
+```ts
+enum Status {
+  Open = 1,
+  Close,
+}
+
+enum Direction {
+  Up,
+  Down,
+}
+
+enum Color {
+  Red,
+  Green = 'Green'
+  Blue = 'Blue',
+}
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+enum Status {
+  Open = 'Open',
+  Close = 'Close',
+}
+
+enum Direction {
+  Up = 1,
+  Down = 2,
+}
+
+enum Color {
+  Red = 'Red',
+  Green = 'Green',
+  Blue = 'Blue',
+}
+```
+
+## When Not To Use It
+
+If you don't care about `enum`s having implicit values you can safely disable this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md
index a3210a1..5c3bc55 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md
@@ -24,6 +24,13 @@
 }
 ```
 
+```ts
+interface MixinMethod {
+  // returns the function itself, not the `this` argument.
+  (arg: string): this;
+}
+```
+
 Examples of **correct** code for this rule:
 
 ```ts
@@ -48,6 +55,23 @@
 }
 ```
 
+```ts
+// returns the `this` argument of function, retaining it's type.
+type MixinMethod = <TSelf>(this: TSelf, arg: string) => TSelf;
+// a function that returns itself is much clearer in this form.
+type ReturnsSelf = (arg: string) => ReturnsSelf;
+```
+
+```ts
+// multiple call signatures (overloads) is allowed:
+interface Overloaded {
+  (data: string): number;
+  (id: number): string;
+}
+// this is equivelent to Overloaded interface.
+type Intersection = ((data: string) => number) & ((id: number) => string);
+```
+
 ## When Not To Use It
 
 If you specifically want to use an interface or type literal with a single call signature for stylistic reasons, you can disable this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md
new file mode 100644
index 0000000..e2350f3
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md
@@ -0,0 +1,51 @@
+# Require that all enum members be literal values to prevent unintended enum member name shadow issues (`prefer-literal-enum-member`)
+
+TypeScript allows the value of an enum member to be many different kinds of valid JavaScript expressions. However, because enums create their own scope whereby each enum member becomes a variable in that scope, unexpected values could be used at runtime. Example:
+
+```ts
+const imOutside = 2;
+const b = 2;
+enum Foo {
+  outer = imOutside,
+  a = 1,
+  b = a,
+  c = b,
+  // does c == Foo.b == Foo.c == 1?
+  // or does c == b == 2?
+}
+```
+
+The answer is that `Foo.c` will be `1` at runtime. The [playground](https://www.typescriptlang.org/play/#src=const%20imOutside%20%3D%202%3B%0D%0Aconst%20b%20%3D%202%3B%0D%0Aenum%20Foo%20%7B%0D%0A%20%20%20%20outer%20%3D%20imOutside%2C%0D%0A%20%20%20%20a%20%3D%201%2C%0D%0A%20%20%20%20b%20%3D%20a%2C%0D%0A%20%20%20%20c%20%3D%20b%2C%0D%0A%20%20%20%20%2F%2F%20does%20c%20%3D%3D%20Foo.b%20%3D%3D%20Foo.c%20%3D%3D%201%3F%0D%0A%20%20%20%20%2F%2F%20or%20does%20c%20%3D%3D%20b%20%3D%3D%202%3F%0D%0A%7D) illustrates this quite nicely.
+
+## Rule Details
+
+This rule is meant to prevent unexpected results in code by requiring the use of literal values as enum members to prevent unexpected runtime behavior. Template literals, arrays, objects, constructors, and all other expression types can end up using a variable from its scope or the parent scope, which can result in the same unexpected behavior at runtime.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+const str = 'Test';
+enum Invalid {
+  A = str, // Variable assignment
+  B = {}, // Object assignment
+  C = `A template literal string`, // Template literal
+  D = new Set(1, 2, 3), // Constructor in assignment
+  E = 2 + 2, // Expression assignment
+}
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+enum Valid {
+  A,
+  B = 'TestStr', // A regular string
+  C = 4, // A number
+  D = null,
+  E = /some_regex/,
+}
+```
+
+## When Not To Use It
+
+If you want use anything other than simple literals as an enum value.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-nullish-coalescing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-nullish-coalescing.md
index 5b99e5c..bb32c02 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-nullish-coalescing.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-nullish-coalescing.md
@@ -46,7 +46,6 @@
   {
     ignoreConditionalTests?: boolean;
     ignoreMixedLogicalExpressions?: boolean;
-    forceSuggestionFixer?: boolean;
   },
 ];
 
@@ -54,7 +53,6 @@
   {
     ignoreConditionalTests: true,
     ignoreMixedLogicalExpressions: true,
-    forceSuggestionFixer: false,
   },
 ];
 ```
@@ -133,12 +131,6 @@
 
 **_NOTE:_** Errors for this specific case will be presented as suggestions (see below), instead of fixes. This is because it is not always safe to automatically convert `||` to `??` within a mixed logical expression, as we cannot tell the intended precedence of the operator. Note that by design, `??` requires parentheses when used with `&&` or `||` in the same expression.
 
-### `forceSuggestionFixer`
-
-Setting this option to `true` will cause the rule to use ESLint's "suggested fix" mode for all fixes. _This option is provided as to aid in transitioning your codebase onto this rule_.
-
-Suggestion fixes cannot be automatically applied via the `--fix` CLI command, but can be _manually_ chosen to be applied one at a time via an IDE or similar. This makes it safe to run autofixers on an existing codebase without worrying about potential runtime behavior changes from this rule's fixer.
-
 ## When Not To Use It
 
 If you are not using TypeScript 3.7 (or greater), then you will not be able to use this rule, as the operator is not supported.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.md
index 9a046b3..6505c93 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.md
@@ -70,6 +70,8 @@
 foo?.a?.b?.c?.d?.e;
 ```
 
+**Note:** there are a few edge cases where this rule will false positive. Use your best judgement when evaluating reported errors.
+
 ## When Not To Use It
 
 If you are not using TypeScript 3.7 (or greater), then you will not be able to use this rule, as the operator is not supported.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md
index c69b3b2..74697f2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md
@@ -74,7 +74,8 @@
 interface CustomArrayType extends ReadonlyArray<string> {
   readonly prop: string;
 }
-function custom1(arg: CustomArrayType) {}
+function custom1(arg: Readonly<CustomArrayType>) {}
+// interfaces that extend the array types are not considered arrays, and thus must be made readonly.
 
 interface CustomFunction {
   (): void;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md
index 6731a75..9ce16a8 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md
@@ -52,9 +52,9 @@
 
 You may pass `"onlyInlineLambdas": true` as a rule option within an object to restrict checking only to members immediately assigned a lambda value.
 
-```cjson
+```jsonc
 {
-    "@typescript-eslint/prefer-readonly": ["error", { "onlyInlineLambdas": true }]
+  "@typescript-eslint/prefer-readonly": ["error", { "onlyInlineLambdas": true }]
 }
 ```
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md
new file mode 100644
index 0000000..d6f6802
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md
@@ -0,0 +1,54 @@
+# Prefer using type parameter when calling `Array#reduce` instead of casting (`prefer-reduce-type-parameter`)
+
+It's common to call `Array#reduce` with a generic type, such as an array or object, as the initial value.
+Since these values are empty, their types are not usable:
+
+- `[]` has type `never[]`, which can't have items pushed into it as nothing is type `never`
+- `{}` has type `{}`, which doesn't have an index signature and so can't have properties added to it
+
+A common solution to this problem is to cast the initial value. While this will work, it's not the most optimal
+solution as casting has subtle effects on the underlying types that can allow bugs to slip in.
+
+A better (and lesser known) solution is to pass the type in as a generic parameter to `Array#reduce` explicitly.
+This means that TypeScript doesn't have to try to infer the type, and avoids the common pitfalls that come with casting.
+
+## Rule Details
+
+This rule looks for calls to `Array#reduce`, and warns if an initial value is being passed & casted,
+suggesting instead to pass the cast type to `Array#reduce` as its generic parameter.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+[1, 2, 3].reduce((arr, num) => arr.concat(num * 2), [] as number[]);
+
+['a', 'b'].reduce(
+  (accum, name) => ({
+    ...accum,
+    [name]: true,
+  }),
+  {} as Record<string, boolean>,
+);
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+[1, 2, 3].reduce<number[]>((arr, num) => arr.concat(num * 2), []);
+
+['a', 'b'].reduce<Record<string, boolean>>(
+  (accum, name) => ({
+    ...accum,
+    [name]: true,
+  }),
+  {},
+);
+```
+
+## Options
+
+There are no options.
+
+## When Not To Use It
+
+If you don't want to use typechecking in your linting, you can't use this rule.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md
new file mode 100644
index 0000000..60fdf79
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md
@@ -0,0 +1,65 @@
+# Recommends using `@ts-expect-error` over `@ts-ignore` (`prefer-ts-expect-error`)
+
+TypeScript allows you to suppress all errors on a line by placing a single-line comment or a comment block line starting with `@ts-ignore` immediately before the erroring line.
+While powerful, there is no way to know if a `@ts-ignore` is actually suppressing an error without manually investigating what happens when the `@ts-ignore` is removed.
+
+This means its easy for `@ts-ignore`s to be forgotten about, and remain in code even after the error they were suppressing is fixed.
+This is dangerous, as if a new error arises on that line it'll be suppressed by the forgotten about `@ts-ignore`, and so be missed.
+
+To address this, TS3.9 ships with a new single-line comment directive: `// @ts-expect-error`.
+
+This directive operates in the same manner as `@ts-ignore`, but will error if the line it's meant to be suppressing doesn't actually contain an error, making it a lot safer.
+
+## Rule Details
+
+This rule looks for usages of `@ts-ignore`, and flags them to be replaced with `@ts-expect-error`.
+
+Examples of **incorrect** code for this rule:
+
+```ts
+// @ts-ignore
+const str: string = 1;
+
+/**
+ * Explaining comment
+ *
+ * @ts-ignore */
+const multiLine: number = 'value';
+
+/** @ts-ignore */
+const block: string = 1;
+
+const isOptionEnabled = (key: string): boolean => {
+  // @ts-ignore: if key isn't in globalOptions it'll be undefined which is false
+  return !!globalOptions[key];
+};
+```
+
+Examples of **correct** code for this rule:
+
+```ts
+// @ts-expect-error
+const str: string = 1;
+
+/**
+ * Explaining comment
+ *
+ * @ts-expect-error */
+const multiLine: number = 'value';
+
+/** @ts-expect-error */
+const block: string = 1;
+
+const isOptionEnabled = (key: string): boolean => {
+  // @ts-expect-error: if key isn't in globalOptions it'll be undefined which is false
+  return !!globalOptions[key];
+};
+```
+
+## When Not To Use It
+
+If you are **NOT** using TypeScript 3.9 (or greater), then you will not be able to use this rule, as the directive is not supported
+
+## Further Reading
+
+- [Original Implementing PR](https://github.com/microsoft/TypeScript/pull/36014)
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/quotes.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/quotes.md
index e9c37df..6b63587 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/quotes.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/quotes.md
@@ -3,11 +3,11 @@
 ## Rule Details
 
 This rule extends the base [`eslint/quotes`](https://eslint.org/docs/rules/quotes) rule.
-It supports all options and features of the base rule.
+It adds support for TypeScript features which allow quoted names, but not backtick quoted names.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "quotes": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md
index 3a939f7..78de198 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md
@@ -45,7 +45,40 @@
 
 ## Options
 
-None.
+The rule accepts an options object with the following properties:
+
+```ts
+type Options = {
+  /**
+   * If true, an array which all elements are string is ignored.
+   */
+  ignoreStringArrays?: boolean;
+};
+
+const defaults = {
+  ignoreStringArrays: false,
+};
+```
+
+### `ignoreStringArrays`
+
+Examples of **incorrect** code for this rule with `{ ignoreStringArrays: true }`:
+
+```ts
+const one = 1;
+const two = 2;
+const three = 3;
+[one, two, three].sort();
+```
+
+Examples of **correct** code for this rule with `{ ignoreStringArrays: true }`:
+
+```ts
+const one = '1';
+const two = '2';
+const three = '3';
+[one, two, three].sort();
+```
 
 ## When Not To Use It
 
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md
index 23160dc..2d8ad41 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md
@@ -1,49 +1,32 @@
 # Disallow async functions which have no `await` expression (`require-await`)
 
-Asynchronous functions that don’t use `await` might not need to be asynchronous functions and could be the unintentional result of refactoring.
-
 ## Rule Details
 
-The `@typescript-eslint/require-await` rule extends the `require-await` rule from ESLint core, and allows for cases where the additional typing information can prevent false positives that would otherwise trigger the rule.
+This rule extends the base [`eslint/require-await`](https://eslint.org/docs/rules/require-await) rule.
+It uses type information to add support for `async` functions that return a `Promise`.
 
-One example is when a function marked as `async` returns a value that is:
+Examples of **correct** code for this rule:
 
-1. already a promise; or
-2. the result of calling another `async` function
-
-```typescript
-async function numberOne(): Promise<number> {
+```ts
+async function returnsPromise1() {
   return Promise.resolve(1);
 }
 
-async function getDataFromApi(endpoint: string): Promise<Response> {
-  return fetch(endpoint);
-}
+const returnsPromise2 = () => returnsPromise1();
 ```
 
-In the above examples, the core `require-await` triggers the following warnings:
+## How to use
 
-```
-async function 'numberOne' has no 'await' expression
-async function 'getDataFromApi' has no 'await' expression
-```
-
-One way to resolve these errors is to remove the `async` keyword. However doing so can cause a conflict with the [`@typescript-eslint/promise-function-async`](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/promise-function-async.md) rule (if enabled), which requires any function returning a promise to be marked as `async`.
-
-Another way to resolve these errors is to add an `await` keyword to the return statements. However doing so can cause a conflict with the [`no-return-await`](https://eslint.org/docs/rules/no-return-await) rule (if enabled), which warns against using `return await` since the return value of an `async` function is always wrapped in `Promise.resolve` anyway.
-
-With the additional typing information available in TypeScript code, this extension to the `require-await` rule is able to look at the _actual_ return types of an `async` function (before being implicitly wrapped in `Promise.resolve`), and avoid the need for an `await` expression when the return value is already a promise.
-
-See the [ESLint documentation](https://eslint.org/docs/rules/require-await) for more details on the `require-await` rule.
-
-## Rule Changes
-
-```cjson
+```jsonc
 {
-    // note you must disable the base rule as it can report incorrect errors
-    "require-await": "off",
-    "@typescript-eslint/require-await": "error"
+  // note you must disable the base rule as it can report incorrect errors
+  "require-await": "off",
+  "@typescript-eslint/require-await": "error"
 }
 ```
 
+## Options
+
+See [`eslint/require-await` options](https://eslint.org/docs/rules/require-await#options).
+
 <sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/require-await.md)</sup>
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md
index 549da98..0ee7427 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md
@@ -6,6 +6,9 @@
 const arg = 'foo';
 const msg1 = `arg = ${arg}`;
 const msg2 = `arg = ${arg || 'default'}`;
+
+const stringWithKindProp: string & { _kind?: 'MyString' } = 'foo';
+const msg3 = `stringWithKindProp = ${stringWithKindProp}`;
 ```
 
 Examples of **incorrect** code:
@@ -28,14 +31,17 @@
   allowNumber?: boolean;
   // if true, also allow boolean type in template expressions
   allowBoolean?: boolean;
+  // if true, also allow any in template expressions
+  allowAny?: boolean;
   // if true, also allow null and undefined in template expressions
-  allowNullable?: boolean;
+  allowNullish?: boolean;
 };
 
 const defaults = {
-  allowNumber: false,
+  allowNumber: true,
   allowBoolean: false,
-  allowNullable: false,
+  allowAny: false,
+  allowNullish: false,
 };
 ```
 
@@ -59,9 +65,19 @@
 const msg2 = `arg = ${arg || 'not truthy'}`;
 ```
 
-### `allowNullable`
+### `allowAny`
 
-Examples of additional **correct** code for this rule with `{ allowNullable: true }`:
+Examples of additional **correct** code for this rule with `{ allowAny: true }`:
+
+```ts
+const user = JSON.parse('{ "name": "foo" }');
+const msg1 = `arg = ${user.name}`;
+const msg2 = `arg = ${user.name || 'the user with no name'}`;
+```
+
+### `allowNullish`
+
+Examples of additional **correct** code for this rule with `{ allowNullish: true }`:
 
 ```ts
 const arg = condition ? 'ok' : null;
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md
index c00c2be..3c621d2 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md
@@ -4,65 +4,40 @@
 
 ## Rule Details
 
-The `@typescript-eslint/return-await` rule specifies that awaiting a returned non-promise is never allowed. By default, the rule requires awaiting a returned promise in a `try-catch-finally` block and disallows returning an awaited promise in any other context. Optionally, the rule can require awaiting returned promises in all contexts, or disallow them in all contexts.
+This rule builds on top of the [`eslint/no-return-await`](https://eslint.org/docs/rules/no-return-await) rule.
+It expands upon the base rule to add support for optionally requiring `return await` in certain cases.
 
-## Options
+## How to use
 
-`in-try-catch` (default): `await`-ing a returned promise is required in `try-catch-finally` blocks and disallowed elsewhere.
-
-`always`: `await`-ing a returned promise is required everywhere.
-
-`never`: `await`-ing a returned promise is disallowed everywhere.
-
-```typescript
-// valid in-try-catch
-async function validInTryCatch1() {
-  try {
-    return await Promise.resolve('try');
-  } catch (e) {}
-}
-
-async function validInTryCatch2() {
-  return Promise.resolve('try');
-}
-
-async function validInTryCatch3() {
-  return 'value';
-}
-
-// valid always
-async function validAlways1() {
-  try {
-    return await Promise.resolve('try');
-  } catch (e) {}
-}
-
-async function validAlways2() {
-  return await Promise.resolve('try');
-}
-
-async function validAlways3() {
-  return 'value';
-}
-
-// valid never
-async function validNever1() {
-  try {
-    return Promise.resolve('try');
-  } catch (e) {}
-}
-
-async function validNever2() {
-  return Promise.resolve('try');
-}
-
-async function validNever3() {
-  return 'value';
+```jsonc
+{
+  // note you must disable the base rule as it can report incorrect errors
+  "no-return-await": "off",
+  "@typescript-eslint/return-await": "error"
 }
 ```
 
-```typescript
-// invalid in-try-catch
+## Options
+
+```ts
+type Options = 'in-try-catch' | 'always' | 'never';
+
+const defaultOptions: Options = 'in-try-catch';
+```
+
+### `in-try-catch`
+
+Requires that a returned promise must be `await`ed in `try-catch-finally` blocks, and disallows it elsewhere.
+Specifically:
+
+- if you `return` a promise within a `try`, then it must be `await`ed.
+- if you `return` a promise within a `catch`, and there **_is no_** `finally`, then it **_must not_** be `await`ed.
+- if you `return` a promise within a `catch`, and there **_is a_** `finally`, then it **_must_** be `await`ed.
+- if you `return` a promise within a `finally`, then it **_must not_** be `await`ed.
+
+Examples of **incorrect** code with `in-try-catch`:
+
+```ts
 async function invalidInTryCatch1() {
   try {
     return Promise.resolve('try');
@@ -70,14 +45,95 @@
 }
 
 async function invalidInTryCatch2() {
-  return await Promise.resolve('try');
+  try {
+    throw new Error('error');
+  } catch (e) {
+    return await Promise.resolve('catch');
+  }
 }
 
 async function invalidInTryCatch3() {
-  return await 'value';
+  try {
+    throw new Error('error');
+  } catch (e) {
+    return Promise.resolve('catch');
+  } finally {
+    console.log('cleanup');
+  }
 }
 
-// invalid always
+async function invalidInTryCatch4() {
+  try {
+    throw new Error('error');
+  } catch (e) {
+    throw new Error('error2');
+  } finally {
+    return await Promise.resolve('finally');
+  }
+}
+
+async function invalidInTryCatch5() {
+  return await Promise.resolve('try');
+}
+
+async function invalidInTryCatch6() {
+  return await 'value';
+}
+```
+
+Examples of **correct** code with `in-try-catch`:
+
+```ts
+async function validInTryCatch1() {
+  try {
+    return await Promise.resolve('try');
+  } catch (e) {}
+}
+
+async function validInTryCatch2() {
+  try {
+    throw new Error('error');
+  } catch (e) {
+    return Promise.resolve('catch');
+  }
+}
+
+async function validInTryCatch3() {
+  try {
+    throw new Error('error');
+  } catch (e) {
+    return await Promise.resolve('catch');
+  } finally {
+    console.log('cleanup');
+  }
+}
+
+async function validInTryCatch4() {
+  try {
+    throw new Error('error');
+  } catch (e) {
+    throw new Error('error2');
+  } finally {
+    return Promise.resolve('finally');
+  }
+}
+
+async function validInTryCatch5() {
+  return Promise.resolve('try');
+}
+
+async function validInTryCatch6() {
+  return 'value';
+}
+```
+
+### `always`
+
+Requires that all returned promises are `await`ed.
+
+Examples of **incorrect** code with `always`:
+
+```ts
 async function invalidAlways1() {
   try {
     return Promise.resolve('try');
@@ -91,8 +147,33 @@
 async function invalidAlways3() {
   return await 'value';
 }
+```
 
-// invalid never
+Examples of **correct** code with `always`:
+
+```ts
+async function validAlways1() {
+  try {
+    return await Promise.resolve('try');
+  } catch (e) {}
+}
+
+async function validAlways2() {
+  return await Promise.resolve('try');
+}
+
+async function validAlways3() {
+  return 'value';
+}
+```
+
+### `never`
+
+Disallows all `await`ing any returned promises.
+
+Examples of **incorrect** code with `never`:
+
+```ts
 async function invalidNever1() {
   try {
     return await Promise.resolve('try');
@@ -108,16 +189,20 @@
 }
 ```
 
-The rule also applies to `finally` blocks. So the following would be invalid with default options:
+Examples of **correct** code with `never`:
 
-```typescript
-async function invalid() {
+```ts
+async function validNever1() {
   try {
-    return await Promise.resolve('try');
-  } catch (e) {
-    return Promise.resolve('catch');
-  } finally {
-    // cleanup
-  }
+    return Promise.resolve('try');
+  } catch (e) {}
+}
+
+async function validNever2() {
+  return Promise.resolve('try');
+}
+
+async function validNever3() {
+  return 'value';
 }
 ```
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md
index bbb3154..c233d35 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md
@@ -5,15 +5,13 @@
 ## Rule Details
 
 This rule extends the base [`eslint/semi`](https://eslint.org/docs/rules/semi) rule.
-It supports all options and features of the base rule.
-This version adds support for numerous typescript features.
+It adds support for TypeScript features that require semicolons.
 
-See also the [`@typescript-eslint/member-delimiter-style`](member-delimiter-style.md) rule,
-which allows you to specify the delimiter for `type` and `interface` members.
+See also the [`@typescript-eslint/member-delimiter-style`](member-delimiter-style.md) rule, which allows you to specify the delimiter for `type` and `interface` members.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "semi": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-function-paren.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-function-paren.md
index bfbcb22..db2579e 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-function-paren.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-function-paren.md
@@ -1,33 +1,13 @@
 # Enforces consistent spacing before function parenthesis (`space-before-function-paren`)
 
-When formatting a function, whitespace is allowed between the function name or `function` keyword and the opening parenthesis. Named functions also require a space between the `function` keyword and the function name, but anonymous functions require no whitespace. For example:
-
-<!-- prettier-ignore -->
-```ts
-function withoutSpace(x) {
-  // ...
-}
-
-function withSpace (x) {
-  // ...
-}
-
-var anonymousWithoutSpace = function() {};
-
-var anonymousWithSpace = function () {};
-```
-
-Style guides may require a space after the `function` keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.
-
 ## Rule Details
 
 This rule extends the base [`eslint/space-before-function-paren`](https://eslint.org/docs/rules/space-before-function-paren) rule.
-It supports all options and features of the base rule.
-This version adds support for generic type parameters on function calls.
+It adds support for generic type parameters on function calls.
 
 ## How to use
 
-```cjson
+```jsonc
 {
   // note you must disable the base rule as it can report incorrect errors
   "space-before-function-paren": "off",
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md
index cec6215..243d54f 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md
@@ -1,67 +1,162 @@
 # Restricts the types allowed in boolean expressions (`strict-boolean-expressions`)
 
-Requires that any boolean expression is limited to true booleans rather than
-casting another primitive to a boolean at runtime.
+Forbids usage of non-boolean types in expressions where a boolean is expected.
+`boolean` and `never` types are always allowed.
+Additional types which are considered safe in a boolean context can be configured via options.
 
-It is useful to be explicit, for example, if you were trying to check if a
-number was defined. Doing `if (number)` would evaluate to `false` if `number`
-was defined and `0`. This rule forces these expressions to be explicit and to
-strictly use booleans.
+The following nodes are considered boolean expressions and their type is checked:
 
-The following nodes are checked:
-
-- Arguments to the `!`, `&&`, and `||` operators
-- The condition in a conditional expression `(cond ? x : y)`
+- Argument to the logical negation operator (`!arg`).
+- The condition in a conditional expression (`cond ? x : y`).
 - Conditions for `if`, `for`, `while`, and `do-while` statements.
+- Operands of logical binary operators (`lhs || rhs` and `lhs && rhs`).
+  - Right-hand side operand is ignored when it's not a descendant of another boolean expression.
+    This is to allow usage of boolean operators for their short-circuiting behavior.
+
+## Examples
 
 Examples of **incorrect** code for this rule:
 
 ```ts
-const number = 0;
-if (number) {
-  return;
+// nullable numbers are considered unsafe by default
+let num: number | undefined = 0;
+if (num) {
+  console.log('num is defined');
 }
 
-let foo = bar || 'foobar';
+// nullable strings are considered unsafe by default
+let str: string | null = null;
+if (!str) {
+  console.log('str is empty');
+}
 
-let undefinedItem;
-let foo = undefinedItem ? 'foo' : 'bar';
+// nullable booleans are considered unsafe by default
+function foo(bool?: boolean) {
+  if (bool) {
+    bar();
+  }
+}
 
-let str = 'foo';
-while (str) {
-  break;
+// `any`, unconstrained generics and unions of more than one primitive type are disallowed
+const foo = <T>(arg: T) => (arg ? 1 : 0);
+
+// always-truthy and always-falsy types are disallowed
+let obj = {};
+while (obj) {
+  obj = getObj();
 }
 ```
 
 Examples of **correct** code for this rule:
 
-```ts
-const number = 0;
-if (typeof number !== 'undefined') {
-  return;
+```tsx
+// Using logical operators for their side effects is allowed
+const Component = () => {
+  const entry = map.get('foo') || {};
+  return entry && <p>Name: {entry.name}</p>;
+};
+
+// nullable values should be checked explicitly against null or undefined
+let num: number | undefined = 0;
+if (num != null) {
+  console.log('num is defined');
 }
 
-let foo = typeof bar !== 'undefined' ? bar : 'foobar';
-
-let undefinedItem;
-let foo = typeof undefinedItem !== 'undefined' ? 'foo' : 'bar';
-
-let str = 'foo';
-while (typeof str !== 'undefined') {
-  break;
+let str: string | null = null;
+if (str != null && !str) {
+  console.log('str is empty');
 }
+
+function foo(bool?: boolean) {
+  if (bool ?? false) {
+    bar();
+  }
+}
+
+// `any` types should be cast to boolean explicitly
+const foo = (arg: any) => (Boolean(arg) ? 1 : 0);
 ```
 
 ## Options
 
-Options may be provided as an object with:
+```ts
+type Options = {
+  allowString?: boolean;
+  allowNumber?: boolean;
+  allowNullableObject?: boolean;
+  allowNullableBoolean?: boolean;
+  allowNullableString?: boolean;
+  allowNullableNumber?: boolean;
+  allowAny?: boolean;
+};
 
-- `allowNullable` to allow `undefined` and `null` in addition to `boolean` as a type of all boolean expressions. (`false` by default).
-- `allowSafe` to allow non-falsy types (i.e. non string / number / boolean) in addition to `boolean` as a type of all boolean expressions. (`false` by default).
-- `ignoreRhs` to skip the check on the right hand side of expressions like `a && b` or `a || b` - allows these operators to be used for their short-circuiting behavior. (`false` by default).
+const defaultOptions: Options = {
+  allowString: true,
+  allowNumber: true,
+  allowNullableObject: true,
+  allowNullableBoolean: false,
+  allowNullableString: false,
+  allowNullableNumber: false,
+  allowAny: false,
+  allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
+};
+```
+
+### `allowString`
+
+Allows `string` in a boolean context.
+This is safe because strings have only one falsy value (`""`).
+Set this to `false` if you prefer the explicit `str != ""` or `str.length > 0` style.
+
+### `allowNumber`
+
+Allows `number` in a boolean context.
+This is safe because numbers have only two falsy values (`0` and `NaN`).
+Set this to `false` if you prefer the explicit `num != 0` and `!Number.isNaN(num)` style.
+
+### `allowNullableObject`
+
+Allows `object | function | symbol | null | undefined` in a boolean context.
+This is safe because objects, functions and symbols don't have falsy values.
+Set this to `false` if you prefer the explicit `obj != null` style.
+
+### `allowNullableBoolean`
+
+Allows `boolean | null | undefined` in a boolean context.
+This is unsafe because nullable booleans can be either `false` or nullish.
+Set this to `false` if you want to enforce explicit `bool ?? false` or `bool ?? true` style.
+Set this to `true` if you don't mind implicitly treating false the same as a nullish value.
+
+### `allowNullableString`
+
+Allows `string | null | undefined` in a boolean context.
+This is unsafe because nullable strings can be either an empty string or nullish.
+Set this to `true` if you don't mind implicitly treating an empty string the same as a nullish value.
+
+### `allowNullableNumber`
+
+Allows `number | null | undefined` in a boolean context.
+This is unsafe because nullable numbers can be either a falsy number or nullish.
+Set this to `true` if you don't mind implicitly treating zero or NaN the same as a nullish value.
+
+### `allowAny`
+
+Allows `any` in a boolean context.
+This is unsafe for obvious reasons.
+Set this to `true` at your own risk.
+
+### `allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing`
+
+If this is set to `false`, then the rule will error on every file whose `tsconfig.json` does _not_ have the `strictNullChecks` compiler option (or `strict`) set to `true`.
+
+Without `strictNullChecks`, TypeScript essentially erases `undefined` and `null` from the types. This means when this rule inspects the types from a variable, **it will not be able to tell that the variable might be `null` or `undefined`**, which essentially makes this rule a lot less useful.
+
+You should be using `strictNullChecks` to ensure complete type-safety in your codebase.
+
+If for some reason you cannot turn on `strictNullChecks`, but still want to use this rule - you can use this option to allow it - but know that the behavior of this rule is _undefined_ with the compiler option turned off. We will not accept bug reports if you are using this option.
 
 ## Related To
 
 - TSLint: [strict-boolean-expressions](https://palantir.github.io/tslint/rules/strict-boolean-expressions)
 
-- [no-unnecessary-condition](./no-unnecessary-condition.md) - essentially a less opinionated alternative to this rule. `strict-boolean-expressions` enforces a specific code style, while `no-unnecessary-condition` is about correctness.
+- [no-unnecessary-condition](./no-unnecessary-condition.md) - Similar rule which reports always-truthy and always-falsy values in conditions
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md
index a7c43a7..32b7b65 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md
@@ -69,6 +69,8 @@
     name : string;
 }
 
+type Foo = ()=>{};
+type Foo = () =>{};
 type Foo = ()=> {};
 ```
 
@@ -113,6 +115,8 @@
     name : string;
 }
 
+type Foo = ()=>{};
+type Foo = () =>{};
 type Foo = () => {};
 ```
 
@@ -156,6 +160,10 @@
 class Foo {
     name :string;
 }
+
+type Foo = ()=>{};
+type Foo = () =>{};
+type Foo = ()=> {};
 ```
 
 Examples of **correct** code for this rule with `{ "before": true, "after": true }` options:
@@ -169,6 +177,8 @@
 class Foo {
     name : string;
 }
+
+type Foo = () => {};
 ```
 
 ### overrides - colon
@@ -197,12 +207,12 @@
     name :string;
 }
 
-type Foo = {
-    name: (name:string) => string;
-}
+type Foo = () =>{};
+type Foo = ()=> {};
+type Foo = () => {};
 ```
 
-Examples of **correct** code for this rule with `{ "before": true, "after": true, overrides: { colon: { before: true, after: true }} }` options:
+Examples of **correct** code for this rule with `{ "before": false, "after": false, overrides: { colon: { before: true, after: true }} }` options:
 
 <!-- prettier-ignore -->
 ```ts
@@ -217,6 +227,8 @@
 type Foo = {
     name: (name : string)=>string;
 }
+
+type Foo = ()=>{};
 ```
 
 ### overrides - arrow
@@ -245,17 +257,9 @@
     name :string;
 }
 
-type Foo = {
-    name: (name : string)=>string;
-}
-
-type Foo = {
-    name: (name : string) =>string;
-}
-
-type Foo = {
-    name: (name : string)=> string;
-}
+type Foo = ()=>{};
+type Foo = () =>{};
+type Foo = ()=> {};
 ```
 
 Examples of **correct** code for this rule with `{ "before": false, "after": false, overrides: { arrow: { before: true, after: true }} }` options:
@@ -270,9 +274,7 @@
     name:string;
 }
 
-type Foo = {
-    name: (name:string) => string;
-}
+type Foo = () => {};
 ```
 
 ## When Not To Use It
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md
index 07f4bb1..6c96fa0 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md
+++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md
@@ -16,29 +16,43 @@
 }
 ```
 
-> Note: requiring type annotations unnecessarily can be cumbersome to maintain and generally reduces code readability.
-> TypeScript is often better at inferring types than easily written type annotations would allow.
-> Instead of enabling `typedef`, it is generally recommended to use the `--noImplicitAny` and/or `--strictPropertyInitialization` compiler options to enforce type annotations only when useful.
+**_Note:_** requiring type annotations unnecessarily can be cumbersome to maintain and generally reduces code readability.
+TypeScript is often better at inferring types than easily written type annotations would allow.
+
+**Instead of enabling `typedef`, it is generally recommended to use the `--noImplicitAny` and `--strictPropertyInitialization` compiler options to enforce type annotations only when useful.**
 
 ## Rule Details
 
 This rule can enforce type annotations in locations regardless of whether they're required.
 This is typically used to maintain consistency for element types that sometimes require them.
 
-> To enforce type definitions existing on call signatures as per TSLint's `arrow-call-signature` and `call-signature` options, use `explicit-function-return-type`.
+> To enforce type definitions existing on call signatures as per TSLint's `arrow-call-signature` and `call-signature` options, use `explicit-function-return-type`, or `explicit-module-boundary-types`.
 
 ## Options
 
-This rule has an object option that may receive any of the following as booleans:
+```ts
+type Options = {
+  arrayDestructuring?: boolean;
+  arrowParameter?: boolean;
+  memberVariableDeclaration?: boolean;
+  objectDestructuring?: boolean;
+  parameter?: boolean;
+  propertyDeclaration?: boolean;
+  variableDeclaration?: boolean;
+  variableDeclarationIgnoreFunction?: boolean;
+};
 
-- `"arrayDestructuring"`
-- `"arrowParameter"`: `true` by default
-- `"memberVariableDeclaration"`: `true` by default
-- `"objectDestructuring"`
-- `"parameter"`: `true` by default
-- `"propertyDeclaration"`: `true` by default
-- `"variableDeclaration"`,
-- `"variableDeclarationIgnoreFunction"`
+const defaultOptions: Options = {
+  arrayDestructuring: false,
+  arrowParameter: false,
+  memberVariableDeclaration: false,
+  objectDestructuring: false,
+  parameter: false,
+  propertyDeclaration: false,
+  variableDeclaration: false,
+  variableDeclarationIgnoreFunction: false,
+};
+```
 
 For example, with the following configuration:
 
@@ -48,7 +62,7 @@
     "@typescript-eslint/typedef": [
       "error",
       {
-        "arrowParameter": false,
+        "arrowParameter": true,
         "variableDeclaration": true
       }
     ]
@@ -56,9 +70,8 @@
 }
 ```
 
-- Type annotations on arrow function parameters are not required
+- Type annotations on arrow function parameters are required
 - Type annotations on variables are required
-- Options otherwise adhere to the defaults
 
 ### `arrayDestructuring`
 
@@ -164,7 +177,7 @@
   console.log(size);
 }
 
-const doublesSize = function(size): number {
+const doublesSize = function (size): number {
   return size * 2;
 };
 
@@ -172,7 +185,7 @@
   curriesSize(size): number {
     return size;
   },
-  dividesSize: function(size): number {
+  dividesSize: function (size): number {
     return size / 2;
   },
 };
@@ -192,7 +205,7 @@
   console.log(size);
 }
 
-const doublesSize = function(size: number): number {
+const doublesSize = function (size: number): number {
   return size * 2;
 };
 
@@ -200,7 +213,7 @@
   curriesSize(size: number): number {
     return size;
   },
-  dividesSize: function(size: number): number {
+  dividesSize: function (size: number): number {
     return size / 2;
   },
 };
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint b/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint
new file mode 120000
index 0000000..da97b4e
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint
@@ -0,0 +1 @@
+../../../../eslint/bin/eslint.js
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/semver b/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/semver
new file mode 120000
index 0000000..bb49af1
--- /dev/null
+++ b/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/semver
@@ -0,0 +1 @@
+../../../../jest-circus/node_modules/semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/LICENSE b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/LICENSE
deleted file mode 100644
index 883ee1f..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Toru Nagashima
-
-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.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/README.md b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/README.md
deleted file mode 100644
index 0358380..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# eslint-utils
-
-[![npm version](https://img.shields.io/npm/v/eslint-utils.svg)](https://www.npmjs.com/package/eslint-utils)
-[![Downloads/month](https://img.shields.io/npm/dm/eslint-utils.svg)](http://www.npmtrends.com/eslint-utils)
-[![Build Status](https://github.com/mysticatea/eslint-utils/workflows/CI/badge.svg)](https://github.com/mysticatea/eslint-utils/actions)
-[![Coverage Status](https://codecov.io/gh/mysticatea/eslint-utils/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/eslint-utils)
-[![Dependency Status](https://david-dm.org/mysticatea/eslint-utils.svg)](https://david-dm.org/mysticatea/eslint-utils)
-
-## 🏁 Goal
-
-This package provides utility functions and classes for make ESLint custom rules.
-
-For examples:
-
-- [getStaticValue](https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue) evaluates static value on AST.
-- [PatternMatcher](https://eslint-utils.mysticatea.dev/api/ast-utils.html#patternmatcher-class) finds a regular expression pattern as handling escape sequences.
-- [ReferenceTracker](https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class) checks the members of modules/globals as handling assignments and destructuring.
-
-## 📖 Usage
-
-See [documentation](https://eslint-utils.mysticatea.dev/).
-
-## 📰 Changelog
-
-See [releases](https://github.com/mysticatea/eslint-utils/releases).
-
-## ❤️ Contributing
-
-Welcome contributing!
-
-Please use GitHub's Issues/PRs.
-
-### Development Tools
-
-- `npm test` runs tests and measures coverage.
-- `npm run clean` removes the coverage result of `npm test` command.
-- `npm run coverage` shows the coverage result of the last `npm test` command.
-- `npm run lint` runs ESLint.
-- `npm run watch` runs tests on each file change.
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js
deleted file mode 100644
index f5d3f3e..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js
+++ /dev/null
@@ -1,1827 +0,0 @@
-/*! @author Toru Nagashima <https://github.com/mysticatea> */
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
-
-var evk = _interopDefault(require('eslint-visitor-keys'));
-
-/**
- * Get the innermost scope which contains a given location.
- * @param {Scope} initialScope The initial scope to search.
- * @param {Node} node The location to search.
- * @returns {Scope} The innermost scope.
- */
-function getInnermostScope(initialScope, node) {
-    const location = node.range[0];
-
-    let scope = initialScope;
-    let found = false;
-    do {
-        found = false;
-        for (const childScope of scope.childScopes) {
-            const range = childScope.block.range;
-
-            if (range[0] <= location && location < range[1]) {
-                scope = childScope;
-                found = true;
-                break
-            }
-        }
-    } while (found)
-
-    return scope
-}
-
-/**
- * Find the variable of a given name.
- * @param {Scope} initialScope The scope to start finding.
- * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.
- * @returns {Variable|null} The found variable or null.
- */
-function findVariable(initialScope, nameOrNode) {
-    let name = "";
-    let scope = initialScope;
-
-    if (typeof nameOrNode === "string") {
-        name = nameOrNode;
-    } else {
-        name = nameOrNode.name;
-        scope = getInnermostScope(scope, nameOrNode);
-    }
-
-    while (scope != null) {
-        const variable = scope.set.get(name);
-        if (variable != null) {
-            return variable
-        }
-        scope = scope.upper;
-    }
-
-    return null
-}
-
-/**
- * Negate the result of `this` calling.
- * @param {Token} token The token to check.
- * @returns {boolean} `true` if the result of `this(token)` is `false`.
- */
-function negate0(token) {
-    return !this(token) //eslint-disable-line no-invalid-this
-}
-
-/**
- * Creates the negate function of the given function.
- * @param {function(Token):boolean} f - The function to negate.
- * @returns {function(Token):boolean} Negated function.
- */
-function negate(f) {
-    return negate0.bind(f)
-}
-
-/**
- * Checks if the given token is an arrow token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an arrow token.
- */
-function isArrowToken(token) {
-    return token.value === "=>" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a comma token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a comma token.
- */
-function isCommaToken(token) {
-    return token.value === "," && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a semicolon token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a semicolon token.
- */
-function isSemicolonToken(token) {
-    return token.value === ";" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a colon token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a colon token.
- */
-function isColonToken(token) {
-    return token.value === ":" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening parenthesis token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening parenthesis token.
- */
-function isOpeningParenToken(token) {
-    return token.value === "(" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing parenthesis token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing parenthesis token.
- */
-function isClosingParenToken(token) {
-    return token.value === ")" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening square bracket token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening square bracket token.
- */
-function isOpeningBracketToken(token) {
-    return token.value === "[" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing square bracket token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing square bracket token.
- */
-function isClosingBracketToken(token) {
-    return token.value === "]" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening brace token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening brace token.
- */
-function isOpeningBraceToken(token) {
-    return token.value === "{" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing brace token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing brace token.
- */
-function isClosingBraceToken(token) {
-    return token.value === "}" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a comment token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a comment token.
- */
-function isCommentToken(token) {
-    return (
-        token.type === "Line" ||
-        token.type === "Block" ||
-        token.type === "Shebang"
-    )
-}
-
-const isNotArrowToken = negate(isArrowToken);
-const isNotCommaToken = negate(isCommaToken);
-const isNotSemicolonToken = negate(isSemicolonToken);
-const isNotColonToken = negate(isColonToken);
-const isNotOpeningParenToken = negate(isOpeningParenToken);
-const isNotClosingParenToken = negate(isClosingParenToken);
-const isNotOpeningBracketToken = negate(isOpeningBracketToken);
-const isNotClosingBracketToken = negate(isClosingBracketToken);
-const isNotOpeningBraceToken = negate(isOpeningBraceToken);
-const isNotClosingBraceToken = negate(isClosingBraceToken);
-const isNotCommentToken = negate(isCommentToken);
-
-/**
- * Get the `(` token of the given function node.
- * @param {Node} node - The function node to get.
- * @param {SourceCode} sourceCode - The source code object to get tokens.
- * @returns {Token} `(` token.
- */
-function getOpeningParenOfParams(node, sourceCode) {
-    return node.id
-        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)
-        : sourceCode.getFirstToken(node, isOpeningParenToken)
-}
-
-/**
- * Get the location of the given function node for reporting.
- * @param {Node} node - The function node to get.
- * @param {SourceCode} sourceCode - The source code object to get tokens.
- * @returns {string} The location of the function node for reporting.
- */
-function getFunctionHeadLocation(node, sourceCode) {
-    const parent = node.parent;
-    let start = null;
-    let end = null;
-
-    if (node.type === "ArrowFunctionExpression") {
-        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken);
-
-        start = arrowToken.loc.start;
-        end = arrowToken.loc.end;
-    } else if (
-        parent.type === "Property" ||
-        parent.type === "MethodDefinition"
-    ) {
-        start = parent.loc.start;
-        end = getOpeningParenOfParams(node, sourceCode).loc.start;
-    } else {
-        start = node.loc.start;
-        end = getOpeningParenOfParams(node, sourceCode).loc.start;
-    }
-
-    return {
-        start: Object.assign({}, start),
-        end: Object.assign({}, end),
-    }
-}
-
-/* globals BigInt, globalThis, global, self, window */
-
-const globalObject =
-    typeof globalThis !== "undefined"
-        ? globalThis
-        : typeof self !== "undefined"
-        ? self
-        : typeof window !== "undefined"
-        ? window
-        : typeof global !== "undefined"
-        ? global
-        : {};
-
-const builtinNames = Object.freeze(
-    new Set([
-        "Array",
-        "ArrayBuffer",
-        "BigInt",
-        "BigInt64Array",
-        "BigUint64Array",
-        "Boolean",
-        "DataView",
-        "Date",
-        "decodeURI",
-        "decodeURIComponent",
-        "encodeURI",
-        "encodeURIComponent",
-        "escape",
-        "Float32Array",
-        "Float64Array",
-        "Function",
-        "Infinity",
-        "Int16Array",
-        "Int32Array",
-        "Int8Array",
-        "isFinite",
-        "isNaN",
-        "isPrototypeOf",
-        "JSON",
-        "Map",
-        "Math",
-        "NaN",
-        "Number",
-        "Object",
-        "parseFloat",
-        "parseInt",
-        "Promise",
-        "Proxy",
-        "Reflect",
-        "RegExp",
-        "Set",
-        "String",
-        "Symbol",
-        "Uint16Array",
-        "Uint32Array",
-        "Uint8Array",
-        "Uint8ClampedArray",
-        "undefined",
-        "unescape",
-        "WeakMap",
-        "WeakSet",
-    ])
-);
-const callAllowed = new Set(
-    [
-        Array.isArray,
-        typeof BigInt === "function" ? BigInt : undefined,
-        Boolean,
-        Date,
-        Date.parse,
-        decodeURI,
-        decodeURIComponent,
-        encodeURI,
-        encodeURIComponent,
-        escape,
-        isFinite,
-        isNaN,
-        isPrototypeOf,
-        ...Object.getOwnPropertyNames(Math)
-            .map(k => Math[k])
-            .filter(f => typeof f === "function"),
-        Number,
-        Number.isFinite,
-        Number.isNaN,
-        Number.parseFloat,
-        Number.parseInt,
-        Object,
-        Object.entries,
-        Object.is,
-        Object.isExtensible,
-        Object.isFrozen,
-        Object.isSealed,
-        Object.keys,
-        Object.values,
-        parseFloat,
-        parseInt,
-        RegExp,
-        String,
-        String.fromCharCode,
-        String.fromCodePoint,
-        String.raw,
-        Symbol,
-        Symbol.for,
-        Symbol.keyFor,
-        unescape,
-    ].filter(f => typeof f === "function")
-);
-const callPassThrough = new Set([
-    Object.freeze,
-    Object.preventExtensions,
-    Object.seal,
-]);
-
-/**
- * Get the property descriptor.
- * @param {object} object The object to get.
- * @param {string|number|symbol} name The property name to get.
- */
-function getPropertyDescriptor(object, name) {
-    let x = object;
-    while ((typeof x === "object" || typeof x === "function") && x !== null) {
-        const d = Object.getOwnPropertyDescriptor(x, name);
-        if (d) {
-            return d
-        }
-        x = Object.getPrototypeOf(x);
-    }
-    return null
-}
-
-/**
- * Check if a property is getter or not.
- * @param {object} object The object to check.
- * @param {string|number|symbol} name The property name to check.
- */
-function isGetter(object, name) {
-    const d = getPropertyDescriptor(object, name);
-    return d != null && d.get != null
-}
-
-/**
- * Get the element values of a given node list.
- * @param {Node[]} nodeList The node list to get values.
- * @param {Scope|undefined} initialScope The initial scope to find variables.
- * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.
- */
-function getElementValues(nodeList, initialScope) {
-    const valueList = [];
-
-    for (let i = 0; i < nodeList.length; ++i) {
-        const elementNode = nodeList[i];
-
-        if (elementNode == null) {
-            valueList.length = i + 1;
-        } else if (elementNode.type === "SpreadElement") {
-            const argument = getStaticValueR(elementNode.argument, initialScope);
-            if (argument == null) {
-                return null
-            }
-            valueList.push(...argument.value);
-        } else {
-            const element = getStaticValueR(elementNode, initialScope);
-            if (element == null) {
-                return null
-            }
-            valueList.push(element.value);
-        }
-    }
-
-    return valueList
-}
-
-const operations = Object.freeze({
-    ArrayExpression(node, initialScope) {
-        const elements = getElementValues(node.elements, initialScope);
-        return elements != null ? { value: elements } : null
-    },
-
-    AssignmentExpression(node, initialScope) {
-        if (node.operator === "=") {
-            return getStaticValueR(node.right, initialScope)
-        }
-        return null
-    },
-
-    //eslint-disable-next-line complexity
-    BinaryExpression(node, initialScope) {
-        if (node.operator === "in" || node.operator === "instanceof") {
-            // Not supported.
-            return null
-        }
-
-        const left = getStaticValueR(node.left, initialScope);
-        const right = getStaticValueR(node.right, initialScope);
-        if (left != null && right != null) {
-            switch (node.operator) {
-                case "==":
-                    return { value: left.value == right.value } //eslint-disable-line eqeqeq
-                case "!=":
-                    return { value: left.value != right.value } //eslint-disable-line eqeqeq
-                case "===":
-                    return { value: left.value === right.value }
-                case "!==":
-                    return { value: left.value !== right.value }
-                case "<":
-                    return { value: left.value < right.value }
-                case "<=":
-                    return { value: left.value <= right.value }
-                case ">":
-                    return { value: left.value > right.value }
-                case ">=":
-                    return { value: left.value >= right.value }
-                case "<<":
-                    return { value: left.value << right.value }
-                case ">>":
-                    return { value: left.value >> right.value }
-                case ">>>":
-                    return { value: left.value >>> right.value }
-                case "+":
-                    return { value: left.value + right.value }
-                case "-":
-                    return { value: left.value - right.value }
-                case "*":
-                    return { value: left.value * right.value }
-                case "/":
-                    return { value: left.value / right.value }
-                case "%":
-                    return { value: left.value % right.value }
-                case "**":
-                    return { value: Math.pow(left.value, right.value) }
-                case "|":
-                    return { value: left.value | right.value }
-                case "^":
-                    return { value: left.value ^ right.value }
-                case "&":
-                    return { value: left.value & right.value }
-
-                // no default
-            }
-        }
-
-        return null
-    },
-
-    CallExpression(node, initialScope) {
-        const calleeNode = node.callee;
-        const args = getElementValues(node.arguments, initialScope);
-
-        if (args != null) {
-            if (calleeNode.type === "MemberExpression") {
-                const object = getStaticValueR(calleeNode.object, initialScope);
-                const property = calleeNode.computed
-                    ? getStaticValueR(calleeNode.property, initialScope)
-                    : { value: calleeNode.property.name };
-
-                if (object != null && property != null) {
-                    const receiver = object.value;
-                    const methodName = property.value;
-                    if (callAllowed.has(receiver[methodName])) {
-                        return { value: receiver[methodName](...args) }
-                    }
-                    if (callPassThrough.has(receiver[methodName])) {
-                        return { value: args[0] }
-                    }
-                }
-            } else {
-                const callee = getStaticValueR(calleeNode, initialScope);
-                if (callee != null) {
-                    const func = callee.value;
-                    if (callAllowed.has(func)) {
-                        return { value: func(...args) }
-                    }
-                    if (callPassThrough.has(func)) {
-                        return { value: args[0] }
-                    }
-                }
-            }
-        }
-
-        return null
-    },
-
-    ConditionalExpression(node, initialScope) {
-        const test = getStaticValueR(node.test, initialScope);
-        if (test != null) {
-            return test.value
-                ? getStaticValueR(node.consequent, initialScope)
-                : getStaticValueR(node.alternate, initialScope)
-        }
-        return null
-    },
-
-    ExpressionStatement(node, initialScope) {
-        return getStaticValueR(node.expression, initialScope)
-    },
-
-    Identifier(node, initialScope) {
-        if (initialScope != null) {
-            const variable = findVariable(initialScope, node);
-
-            // Built-in globals.
-            if (
-                variable != null &&
-                variable.defs.length === 0 &&
-                builtinNames.has(variable.name) &&
-                variable.name in globalObject
-            ) {
-                return { value: globalObject[variable.name] }
-            }
-
-            // Constants.
-            if (variable != null && variable.defs.length === 1) {
-                const def = variable.defs[0];
-                if (
-                    def.parent &&
-                    def.parent.kind === "const" &&
-                    // TODO(mysticatea): don't support destructuring here.
-                    def.node.id.type === "Identifier"
-                ) {
-                    return getStaticValueR(def.node.init, initialScope)
-                }
-            }
-        }
-        return null
-    },
-
-    Literal(node) {
-        //istanbul ignore if : this is implementation-specific behavior.
-        if ((node.regex != null || node.bigint != null) && node.value == null) {
-            // It was a RegExp/BigInt literal, but Node.js didn't support it.
-            return null
-        }
-        return { value: node.value }
-    },
-
-    LogicalExpression(node, initialScope) {
-        const left = getStaticValueR(node.left, initialScope);
-        if (left != null) {
-            if (
-                (node.operator === "||" && Boolean(left.value) === true) ||
-                (node.operator === "&&" && Boolean(left.value) === false)
-            ) {
-                return left
-            }
-
-            const right = getStaticValueR(node.right, initialScope);
-            if (right != null) {
-                return right
-            }
-        }
-
-        return null
-    },
-
-    MemberExpression(node, initialScope) {
-        const object = getStaticValueR(node.object, initialScope);
-        const property = node.computed
-            ? getStaticValueR(node.property, initialScope)
-            : { value: node.property.name };
-
-        if (
-            object != null &&
-            property != null &&
-            !isGetter(object.value, property.value)
-        ) {
-            return { value: object.value[property.value] }
-        }
-        return null
-    },
-
-    NewExpression(node, initialScope) {
-        const callee = getStaticValueR(node.callee, initialScope);
-        const args = getElementValues(node.arguments, initialScope);
-
-        if (callee != null && args != null) {
-            const Func = callee.value;
-            if (callAllowed.has(Func)) {
-                return { value: new Func(...args) }
-            }
-        }
-
-        return null
-    },
-
-    ObjectExpression(node, initialScope) {
-        const object = {};
-
-        for (const propertyNode of node.properties) {
-            if (propertyNode.type === "Property") {
-                if (propertyNode.kind !== "init") {
-                    return null
-                }
-                const key = propertyNode.computed
-                    ? getStaticValueR(propertyNode.key, initialScope)
-                    : { value: propertyNode.key.name };
-                const value = getStaticValueR(propertyNode.value, initialScope);
-                if (key == null || value == null) {
-                    return null
-                }
-                object[key.value] = value.value;
-            } else if (
-                propertyNode.type === "SpreadElement" ||
-                propertyNode.type === "ExperimentalSpreadProperty"
-            ) {
-                const argument = getStaticValueR(
-                    propertyNode.argument,
-                    initialScope
-                );
-                if (argument == null) {
-                    return null
-                }
-                Object.assign(object, argument.value);
-            } else {
-                return null
-            }
-        }
-
-        return { value: object }
-    },
-
-    SequenceExpression(node, initialScope) {
-        const last = node.expressions[node.expressions.length - 1];
-        return getStaticValueR(last, initialScope)
-    },
-
-    TaggedTemplateExpression(node, initialScope) {
-        const tag = getStaticValueR(node.tag, initialScope);
-        const expressions = getElementValues(
-            node.quasi.expressions,
-            initialScope
-        );
-
-        if (tag != null && expressions != null) {
-            const func = tag.value;
-            const strings = node.quasi.quasis.map(q => q.value.cooked);
-            strings.raw = node.quasi.quasis.map(q => q.value.raw);
-
-            if (func === String.raw) {
-                return { value: func(strings, ...expressions) }
-            }
-        }
-
-        return null
-    },
-
-    TemplateLiteral(node, initialScope) {
-        const expressions = getElementValues(node.expressions, initialScope);
-        if (expressions != null) {
-            let value = node.quasis[0].value.cooked;
-            for (let i = 0; i < expressions.length; ++i) {
-                value += expressions[i];
-                value += node.quasis[i + 1].value.cooked;
-            }
-            return { value }
-        }
-        return null
-    },
-
-    UnaryExpression(node, initialScope) {
-        if (node.operator === "delete") {
-            // Not supported.
-            return null
-        }
-        if (node.operator === "void") {
-            return { value: undefined }
-        }
-
-        const arg = getStaticValueR(node.argument, initialScope);
-        if (arg != null) {
-            switch (node.operator) {
-                case "-":
-                    return { value: -arg.value }
-                case "+":
-                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion
-                case "!":
-                    return { value: !arg.value }
-                case "~":
-                    return { value: ~arg.value }
-                case "typeof":
-                    return { value: typeof arg.value }
-
-                // no default
-            }
-        }
-
-        return null
-    },
-});
-
-/**
- * Get the value of a given node if it's a static value.
- * @param {Node} node The node to get.
- * @param {Scope|undefined} initialScope The scope to start finding variable.
- * @returns {{value:any}|null} The static value of the node, or `null`.
- */
-function getStaticValueR(node, initialScope) {
-    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {
-        return operations[node.type](node, initialScope)
-    }
-    return null
-}
-
-/**
- * Get the value of a given node if it's a static value.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.
- * @returns {{value:any}|null} The static value of the node, or `null`.
- */
-function getStaticValue(node, initialScope = null) {
-    try {
-        return getStaticValueR(node, initialScope)
-    } catch (_error) {
-        return null
-    }
-}
-
-/**
- * Get the value of a given node if it's a literal or a template literal.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.
- * @returns {string|null} The value of the node, or `null`.
- */
-function getStringIfConstant(node, initialScope = null) {
-    // Handle the literals that the platform doesn't support natively.
-    if (node && node.type === "Literal" && node.value === null) {
-        if (node.regex) {
-            return `/${node.regex.pattern}/${node.regex.flags}`
-        }
-        if (node.bigint) {
-            return node.bigint
-        }
-    }
-
-    const evaluated = getStaticValue(node, initialScope);
-    return evaluated && String(evaluated.value)
-}
-
-/**
- * Get the property name from a MemberExpression node or a Property node.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.
- * @returns {string|null} The property name of the node.
- */
-function getPropertyName(node, initialScope) {
-    switch (node.type) {
-        case "MemberExpression":
-            if (node.computed) {
-                return getStringIfConstant(node.property, initialScope)
-            }
-            return node.property.name
-
-        case "Property":
-        case "MethodDefinition":
-            if (node.computed) {
-                return getStringIfConstant(node.key, initialScope)
-            }
-            if (node.key.type === "Literal") {
-                return String(node.key.value)
-            }
-            return node.key.name
-
-        // no default
-    }
-
-    return null
-}
-
-/**
- * Get the name and kind of the given function node.
- * @param {ASTNode} node - The function node to get.
- * @returns {string} The name and kind of the function node.
- */
-function getFunctionNameWithKind(node) {
-    const parent = node.parent;
-    const tokens = [];
-
-    if (parent.type === "MethodDefinition" && parent.static) {
-        tokens.push("static");
-    }
-    if (node.async) {
-        tokens.push("async");
-    }
-    if (node.generator) {
-        tokens.push("generator");
-    }
-
-    if (node.type === "ArrowFunctionExpression") {
-        tokens.push("arrow", "function");
-    } else if (
-        parent.type === "Property" ||
-        parent.type === "MethodDefinition"
-    ) {
-        if (parent.kind === "constructor") {
-            return "constructor"
-        }
-        if (parent.kind === "get") {
-            tokens.push("getter");
-        } else if (parent.kind === "set") {
-            tokens.push("setter");
-        } else {
-            tokens.push("method");
-        }
-    } else {
-        tokens.push("function");
-    }
-
-    if (node.id) {
-        tokens.push(`'${node.id.name}'`);
-    } else {
-        const name = getPropertyName(parent);
-
-        if (name) {
-            tokens.push(`'${name}'`);
-        }
-    }
-
-    return tokens.join(" ")
-}
-
-const typeConversionBinaryOps = Object.freeze(
-    new Set([
-        "==",
-        "!=",
-        "<",
-        "<=",
-        ">",
-        ">=",
-        "<<",
-        ">>",
-        ">>>",
-        "+",
-        "-",
-        "*",
-        "/",
-        "%",
-        "|",
-        "^",
-        "&",
-        "in",
-    ])
-);
-const typeConversionUnaryOps = Object.freeze(new Set(["-", "+", "!", "~"]));
-const visitor = Object.freeze(
-    Object.assign(Object.create(null), {
-        $visit(node, options, visitorKeys) {
-            const { type } = node;
-
-            if (typeof this[type] === "function") {
-                return this[type](node, options, visitorKeys)
-            }
-
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-
-        $visitChildren(node, options, visitorKeys) {
-            const { type } = node;
-
-            for (const key of visitorKeys[type] || evk.getKeys(node)) {
-                const value = node[key];
-
-                if (Array.isArray(value)) {
-                    for (const element of value) {
-                        if (
-                            element &&
-                            this.$visit(element, options, visitorKeys)
-                        ) {
-                            return true
-                        }
-                    }
-                } else if (value && this.$visit(value, options, visitorKeys)) {
-                    return true
-                }
-            }
-
-            return false
-        },
-
-        ArrowFunctionExpression() {
-            return false
-        },
-        AssignmentExpression() {
-            return true
-        },
-        AwaitExpression() {
-            return true
-        },
-        BinaryExpression(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                typeConversionBinaryOps.has(node.operator) &&
-                (node.left.type !== "Literal" || node.right.type !== "Literal")
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        CallExpression() {
-            return true
-        },
-        FunctionExpression() {
-            return false
-        },
-        ImportExpression() {
-            return true
-        },
-        MemberExpression(node, options, visitorKeys) {
-            if (options.considerGetters) {
-                return true
-            }
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.property.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        MethodDefinition(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.key.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        NewExpression() {
-            return true
-        },
-        Property(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.key.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        UnaryExpression(node, options, visitorKeys) {
-            if (node.operator === "delete") {
-                return true
-            }
-            if (
-                options.considerImplicitTypeConversion &&
-                typeConversionUnaryOps.has(node.operator) &&
-                node.argument.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        UpdateExpression() {
-            return true
-        },
-        YieldExpression() {
-            return true
-        },
-    })
-);
-
-/**
- * Check whether a given node has any side effect or not.
- * @param {Node} node The node to get.
- * @param {SourceCode} sourceCode The source code object.
- * @param {object} [options] The option object.
- * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.
- * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.
- * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.
- * @returns {boolean} `true` if the node has a certain side effect.
- */
-function hasSideEffect(
-    node,
-    sourceCode,
-    { considerGetters = false, considerImplicitTypeConversion = false } = {}
-) {
-    return visitor.$visit(
-        node,
-        { considerGetters, considerImplicitTypeConversion },
-        sourceCode.visitorKeys || evk.KEYS
-    )
-}
-
-/**
- * Get the left parenthesis of the parent node syntax if it exists.
- * E.g., `if (a) {}` then the `(`.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {Token|null} The left parenthesis of the parent node syntax
- */
-function getParentSyntaxParen(node, sourceCode) {
-    const parent = node.parent;
-
-    switch (parent.type) {
-        case "CallExpression":
-        case "NewExpression":
-            if (parent.arguments.length === 1 && parent.arguments[0] === node) {
-                return sourceCode.getTokenAfter(
-                    parent.callee,
-                    isOpeningParenToken
-                )
-            }
-            return null
-
-        case "DoWhileStatement":
-            if (parent.test === node) {
-                return sourceCode.getTokenAfter(
-                    parent.body,
-                    isOpeningParenToken
-                )
-            }
-            return null
-
-        case "IfStatement":
-        case "WhileStatement":
-            if (parent.test === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "ImportExpression":
-            if (parent.source === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "SwitchStatement":
-            if (parent.discriminant === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "WithStatement":
-            if (parent.object === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        default:
-            return null
-    }
-}
-
-/**
- * Check whether a given node is parenthesized or not.
- * @param {number} times The number of parantheses.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {boolean} `true` if the node is parenthesized the given times.
- */
-/**
- * Check whether a given node is parenthesized or not.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {boolean} `true` if the node is parenthesized.
- */
-function isParenthesized(
-    timesOrNode,
-    nodeOrSourceCode,
-    optionalSourceCode
-) {
-    let times, node, sourceCode, maybeLeftParen, maybeRightParen;
-    if (typeof timesOrNode === "number") {
-        times = timesOrNode | 0;
-        node = nodeOrSourceCode;
-        sourceCode = optionalSourceCode;
-        if (!(times >= 1)) {
-            throw new TypeError("'times' should be a positive integer.")
-        }
-    } else {
-        times = 1;
-        node = timesOrNode;
-        sourceCode = nodeOrSourceCode;
-    }
-
-    if (node == null) {
-        return false
-    }
-
-    maybeLeftParen = maybeRightParen = node;
-    do {
-        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen);
-        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen);
-    } while (
-        maybeLeftParen != null &&
-        maybeRightParen != null &&
-        isOpeningParenToken(maybeLeftParen) &&
-        isClosingParenToken(maybeRightParen) &&
-        // Avoid false positive such as `if (a) {}`
-        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&
-        --times > 0
-    )
-
-    return times === 0
-}
-
-/**
- * @author Toru Nagashima <https://github.com/mysticatea>
- * See LICENSE file in root directory for full license.
- */
-
-const placeholder = /\$(?:[$&`']|[1-9][0-9]?)/gu;
-
-/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */
-const internal = new WeakMap();
-
-/**
- * Check whether a given character is escaped or not.
- * @param {string} str The string to check.
- * @param {number} index The location of the character to check.
- * @returns {boolean} `true` if the character is escaped.
- */
-function isEscaped(str, index) {
-    let escaped = false;
-    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {
-        escaped = !escaped;
-    }
-    return escaped
-}
-
-/**
- * Replace a given string by a given matcher.
- * @param {PatternMatcher} matcher The pattern matcher.
- * @param {string} str The string to be replaced.
- * @param {string} replacement The new substring to replace each matched part.
- * @returns {string} The replaced string.
- */
-function replaceS(matcher, str, replacement) {
-    const chunks = [];
-    let index = 0;
-
-    /** @type {RegExpExecArray} */
-    let match = null;
-
-    /**
-     * @param {string} key The placeholder.
-     * @returns {string} The replaced string.
-     */
-    function replacer(key) {
-        switch (key) {
-            case "$$":
-                return "$"
-            case "$&":
-                return match[0]
-            case "$`":
-                return str.slice(0, match.index)
-            case "$'":
-                return str.slice(match.index + match[0].length)
-            default: {
-                const i = key.slice(1);
-                if (i in match) {
-                    return match[i]
-                }
-                return key
-            }
-        }
-    }
-
-    for (match of matcher.execAll(str)) {
-        chunks.push(str.slice(index, match.index));
-        chunks.push(replacement.replace(placeholder, replacer));
-        index = match.index + match[0].length;
-    }
-    chunks.push(str.slice(index));
-
-    return chunks.join("")
-}
-
-/**
- * Replace a given string by a given matcher.
- * @param {PatternMatcher} matcher The pattern matcher.
- * @param {string} str The string to be replaced.
- * @param {(...strs[])=>string} replace The function to replace each matched part.
- * @returns {string} The replaced string.
- */
-function replaceF(matcher, str, replace) {
-    const chunks = [];
-    let index = 0;
-
-    for (const match of matcher.execAll(str)) {
-        chunks.push(str.slice(index, match.index));
-        chunks.push(String(replace(...match, match.index, match.input)));
-        index = match.index + match[0].length;
-    }
-    chunks.push(str.slice(index));
-
-    return chunks.join("")
-}
-
-/**
- * The class to find patterns as considering escape sequences.
- */
-class PatternMatcher {
-    /**
-     * Initialize this matcher.
-     * @param {RegExp} pattern The pattern to match.
-     * @param {{escaped:boolean}} options The options.
-     */
-    constructor(pattern, { escaped = false } = {}) {
-        if (!(pattern instanceof RegExp)) {
-            throw new TypeError("'pattern' should be a RegExp instance.")
-        }
-        if (!pattern.flags.includes("g")) {
-            throw new Error("'pattern' should contains 'g' flag.")
-        }
-
-        internal.set(this, {
-            pattern: new RegExp(pattern.source, pattern.flags),
-            escaped: Boolean(escaped),
-        });
-    }
-
-    /**
-     * Find the pattern in a given string.
-     * @param {string} str The string to find.
-     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.
-     */
-    *execAll(str) {
-        const { pattern, escaped } = internal.get(this);
-        let match = null;
-        let lastIndex = 0;
-
-        pattern.lastIndex = 0;
-        while ((match = pattern.exec(str)) != null) {
-            if (escaped || !isEscaped(str, match.index)) {
-                lastIndex = pattern.lastIndex;
-                yield match;
-                pattern.lastIndex = lastIndex;
-            }
-        }
-    }
-
-    /**
-     * Check whether the pattern is found in a given string.
-     * @param {string} str The string to check.
-     * @returns {boolean} `true` if the pattern was found in the string.
-     */
-    test(str) {
-        const it = this.execAll(str);
-        const ret = it.next();
-        return !ret.done
-    }
-
-    /**
-     * Replace a given string.
-     * @param {string} str The string to be replaced.
-     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.
-     * @returns {string} The replaced string.
-     */
-    [Symbol.replace](str, replacer) {
-        return typeof replacer === "function"
-            ? replaceF(this, String(str), replacer)
-            : replaceS(this, String(str), String(replacer))
-    }
-}
-
-const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u;
-const has = Function.call.bind(Object.hasOwnProperty);
-
-const READ = Symbol("read");
-const CALL = Symbol("call");
-const CONSTRUCT = Symbol("construct");
-const ESM = Symbol("esm");
-
-const requireCall = { require: { [CALL]: true } };
-
-/**
- * Check whether a given variable is modified or not.
- * @param {Variable} variable The variable to check.
- * @returns {boolean} `true` if the variable is modified.
- */
-function isModifiedGlobal(variable) {
-    return (
-        variable == null ||
-        variable.defs.length !== 0 ||
-        variable.references.some(r => r.isWrite())
-    )
-}
-
-/**
- * Check if the value of a given node is passed through to the parent syntax as-is.
- * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.
- * @param {Node} node A node to check.
- * @returns {boolean} `true` if the node is passed through.
- */
-function isPassThrough(node) {
-    const parent = node.parent;
-
-    switch (parent && parent.type) {
-        case "ConditionalExpression":
-            return parent.consequent === node || parent.alternate === node
-        case "LogicalExpression":
-            return true
-        case "SequenceExpression":
-            return parent.expressions[parent.expressions.length - 1] === node
-
-        default:
-            return false
-    }
-}
-
-/**
- * The reference tracker.
- */
-class ReferenceTracker {
-    /**
-     * Initialize this tracker.
-     * @param {Scope} globalScope The global scope.
-     * @param {object} [options] The options.
-     * @param {"legacy"|"strict"} [options.mode="strict"] The mode to determine the ImportDeclaration's behavior for CJS modules.
-     * @param {string[]} [options.globalObjectNames=["global","self","window"]] The variable names for Global Object.
-     */
-    constructor(
-        globalScope,
-        {
-            mode = "strict",
-            globalObjectNames = ["global", "self", "window"],
-        } = {}
-    ) {
-        this.variableStack = [];
-        this.globalScope = globalScope;
-        this.mode = mode;
-        this.globalObjectNames = globalObjectNames.slice(0);
-    }
-
-    /**
-     * Iterate the references of global variables.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateGlobalReferences(traceMap) {
-        for (const key of Object.keys(traceMap)) {
-            const nextTraceMap = traceMap[key];
-            const path = [key];
-            const variable = this.globalScope.set.get(key);
-
-            if (isModifiedGlobal(variable)) {
-                continue
-            }
-
-            yield* this._iterateVariableReferences(
-                variable,
-                path,
-                nextTraceMap,
-                true
-            );
-        }
-
-        for (const key of this.globalObjectNames) {
-            const path = [];
-            const variable = this.globalScope.set.get(key);
-
-            if (isModifiedGlobal(variable)) {
-                continue
-            }
-
-            yield* this._iterateVariableReferences(
-                variable,
-                path,
-                traceMap,
-                false
-            );
-        }
-    }
-
-    /**
-     * Iterate the references of CommonJS modules.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateCjsReferences(traceMap) {
-        for (const { node } of this.iterateGlobalReferences(requireCall)) {
-            const key = getStringIfConstant(node.arguments[0]);
-            if (key == null || !has(traceMap, key)) {
-                continue
-            }
-
-            const nextTraceMap = traceMap[key];
-            const path = [key];
-
-            if (nextTraceMap[READ]) {
-                yield {
-                    node,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-            yield* this._iteratePropertyReferences(node, path, nextTraceMap);
-        }
-    }
-
-    /**
-     * Iterate the references of ES modules.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateEsmReferences(traceMap) {
-        const programNode = this.globalScope.block;
-
-        for (const node of programNode.body) {
-            if (!IMPORT_TYPE.test(node.type) || node.source == null) {
-                continue
-            }
-            const moduleId = node.source.value;
-
-            if (!has(traceMap, moduleId)) {
-                continue
-            }
-            const nextTraceMap = traceMap[moduleId];
-            const path = [moduleId];
-
-            if (nextTraceMap[READ]) {
-                yield { node, path, type: READ, info: nextTraceMap[READ] };
-            }
-
-            if (node.type === "ExportAllDeclaration") {
-                for (const key of Object.keys(nextTraceMap)) {
-                    const exportTraceMap = nextTraceMap[key];
-                    if (exportTraceMap[READ]) {
-                        yield {
-                            node,
-                            path: path.concat(key),
-                            type: READ,
-                            info: exportTraceMap[READ],
-                        };
-                    }
-                }
-            } else {
-                for (const specifier of node.specifiers) {
-                    const esm = has(nextTraceMap, ESM);
-                    const it = this._iterateImportReferences(
-                        specifier,
-                        path,
-                        esm
-                            ? nextTraceMap
-                            : this.mode === "legacy"
-                            ? Object.assign(
-                                  { default: nextTraceMap },
-                                  nextTraceMap
-                              )
-                            : { default: nextTraceMap }
-                    );
-
-                    if (esm) {
-                        yield* it;
-                    } else {
-                        for (const report of it) {
-                            report.path = report.path.filter(exceptDefault);
-                            if (
-                                report.path.length >= 2 ||
-                                report.type !== READ
-                            ) {
-                                yield report;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Iterate the references for a given variable.
-     * @param {Variable} variable The variable to iterate that references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @param {boolean} shouldReport = The flag to report those references.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {
-        if (this.variableStack.includes(variable)) {
-            return
-        }
-        this.variableStack.push(variable);
-        try {
-            for (const reference of variable.references) {
-                if (!reference.isRead()) {
-                    continue
-                }
-                const node = reference.identifier;
-
-                if (shouldReport && traceMap[READ]) {
-                    yield { node, path, type: READ, info: traceMap[READ] };
-                }
-                yield* this._iteratePropertyReferences(node, path, traceMap);
-            }
-        } finally {
-            this.variableStack.pop();
-        }
-    }
-
-    /**
-     * Iterate the references for a given AST node.
-     * @param rootNode The AST node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    //eslint-disable-next-line complexity
-    *_iteratePropertyReferences(rootNode, path, traceMap) {
-        let node = rootNode;
-        while (isPassThrough(node)) {
-            node = node.parent;
-        }
-
-        const parent = node.parent;
-        if (parent.type === "MemberExpression") {
-            if (parent.object === node) {
-                const key = getPropertyName(parent);
-                if (key == null || !has(traceMap, key)) {
-                    return
-                }
-
-                path = path.concat(key); //eslint-disable-line no-param-reassign
-                const nextTraceMap = traceMap[key];
-                if (nextTraceMap[READ]) {
-                    yield {
-                        node: parent,
-                        path,
-                        type: READ,
-                        info: nextTraceMap[READ],
-                    };
-                }
-                yield* this._iteratePropertyReferences(
-                    parent,
-                    path,
-                    nextTraceMap
-                );
-            }
-            return
-        }
-        if (parent.type === "CallExpression") {
-            if (parent.callee === node && traceMap[CALL]) {
-                yield { node: parent, path, type: CALL, info: traceMap[CALL] };
-            }
-            return
-        }
-        if (parent.type === "NewExpression") {
-            if (parent.callee === node && traceMap[CONSTRUCT]) {
-                yield {
-                    node: parent,
-                    path,
-                    type: CONSTRUCT,
-                    info: traceMap[CONSTRUCT],
-                };
-            }
-            return
-        }
-        if (parent.type === "AssignmentExpression") {
-            if (parent.right === node) {
-                yield* this._iterateLhsReferences(parent.left, path, traceMap);
-                yield* this._iteratePropertyReferences(parent, path, traceMap);
-            }
-            return
-        }
-        if (parent.type === "AssignmentPattern") {
-            if (parent.right === node) {
-                yield* this._iterateLhsReferences(parent.left, path, traceMap);
-            }
-            return
-        }
-        if (parent.type === "VariableDeclarator") {
-            if (parent.init === node) {
-                yield* this._iterateLhsReferences(parent.id, path, traceMap);
-            }
-        }
-    }
-
-    /**
-     * Iterate the references for a given Pattern node.
-     * @param {Node} patternNode The Pattern node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateLhsReferences(patternNode, path, traceMap) {
-        if (patternNode.type === "Identifier") {
-            const variable = findVariable(this.globalScope, patternNode);
-            if (variable != null) {
-                yield* this._iterateVariableReferences(
-                    variable,
-                    path,
-                    traceMap,
-                    false
-                );
-            }
-            return
-        }
-        if (patternNode.type === "ObjectPattern") {
-            for (const property of patternNode.properties) {
-                const key = getPropertyName(property);
-
-                if (key == null || !has(traceMap, key)) {
-                    continue
-                }
-
-                const nextPath = path.concat(key);
-                const nextTraceMap = traceMap[key];
-                if (nextTraceMap[READ]) {
-                    yield {
-                        node: property,
-                        path: nextPath,
-                        type: READ,
-                        info: nextTraceMap[READ],
-                    };
-                }
-                yield* this._iterateLhsReferences(
-                    property.value,
-                    nextPath,
-                    nextTraceMap
-                );
-            }
-            return
-        }
-        if (patternNode.type === "AssignmentPattern") {
-            yield* this._iterateLhsReferences(patternNode.left, path, traceMap);
-        }
-    }
-
-    /**
-     * Iterate the references for a given ModuleSpecifier node.
-     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateImportReferences(specifierNode, path, traceMap) {
-        const type = specifierNode.type;
-
-        if (type === "ImportSpecifier" || type === "ImportDefaultSpecifier") {
-            const key =
-                type === "ImportDefaultSpecifier"
-                    ? "default"
-                    : specifierNode.imported.name;
-            if (!has(traceMap, key)) {
-                return
-            }
-
-            path = path.concat(key); //eslint-disable-line no-param-reassign
-            const nextTraceMap = traceMap[key];
-            if (nextTraceMap[READ]) {
-                yield {
-                    node: specifierNode,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-            yield* this._iterateVariableReferences(
-                findVariable(this.globalScope, specifierNode.local),
-                path,
-                nextTraceMap,
-                false
-            );
-
-            return
-        }
-
-        if (type === "ImportNamespaceSpecifier") {
-            yield* this._iterateVariableReferences(
-                findVariable(this.globalScope, specifierNode.local),
-                path,
-                traceMap,
-                false
-            );
-            return
-        }
-
-        if (type === "ExportSpecifier") {
-            const key = specifierNode.local.name;
-            if (!has(traceMap, key)) {
-                return
-            }
-
-            path = path.concat(key); //eslint-disable-line no-param-reassign
-            const nextTraceMap = traceMap[key];
-            if (nextTraceMap[READ]) {
-                yield {
-                    node: specifierNode,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-        }
-    }
-}
-
-ReferenceTracker.READ = READ;
-ReferenceTracker.CALL = CALL;
-ReferenceTracker.CONSTRUCT = CONSTRUCT;
-ReferenceTracker.ESM = ESM;
-
-/**
- * This is a predicate function for Array#filter.
- * @param {string} name A name part.
- * @param {number} index The index of the name.
- * @returns {boolean} `false` if it's default.
- */
-function exceptDefault(name, index) {
-    return !(index === 1 && name === "default")
-}
-
-var index = {
-    CALL,
-    CONSTRUCT,
-    ESM,
-    findVariable,
-    getFunctionHeadLocation,
-    getFunctionNameWithKind,
-    getInnermostScope,
-    getPropertyName,
-    getStaticValue,
-    getStringIfConstant,
-    hasSideEffect,
-    isArrowToken,
-    isClosingBraceToken,
-    isClosingBracketToken,
-    isClosingParenToken,
-    isColonToken,
-    isCommaToken,
-    isCommentToken,
-    isNotArrowToken,
-    isNotClosingBraceToken,
-    isNotClosingBracketToken,
-    isNotClosingParenToken,
-    isNotColonToken,
-    isNotCommaToken,
-    isNotCommentToken,
-    isNotOpeningBraceToken,
-    isNotOpeningBracketToken,
-    isNotOpeningParenToken,
-    isNotSemicolonToken,
-    isOpeningBraceToken,
-    isOpeningBracketToken,
-    isOpeningParenToken,
-    isParenthesized,
-    isSemicolonToken,
-    PatternMatcher,
-    READ,
-    ReferenceTracker,
-};
-
-exports.CALL = CALL;
-exports.CONSTRUCT = CONSTRUCT;
-exports.ESM = ESM;
-exports.PatternMatcher = PatternMatcher;
-exports.READ = READ;
-exports.ReferenceTracker = ReferenceTracker;
-exports.default = index;
-exports.findVariable = findVariable;
-exports.getFunctionHeadLocation = getFunctionHeadLocation;
-exports.getFunctionNameWithKind = getFunctionNameWithKind;
-exports.getInnermostScope = getInnermostScope;
-exports.getPropertyName = getPropertyName;
-exports.getStaticValue = getStaticValue;
-exports.getStringIfConstant = getStringIfConstant;
-exports.hasSideEffect = hasSideEffect;
-exports.isArrowToken = isArrowToken;
-exports.isClosingBraceToken = isClosingBraceToken;
-exports.isClosingBracketToken = isClosingBracketToken;
-exports.isClosingParenToken = isClosingParenToken;
-exports.isColonToken = isColonToken;
-exports.isCommaToken = isCommaToken;
-exports.isCommentToken = isCommentToken;
-exports.isNotArrowToken = isNotArrowToken;
-exports.isNotClosingBraceToken = isNotClosingBraceToken;
-exports.isNotClosingBracketToken = isNotClosingBracketToken;
-exports.isNotClosingParenToken = isNotClosingParenToken;
-exports.isNotColonToken = isNotColonToken;
-exports.isNotCommaToken = isNotCommaToken;
-exports.isNotCommentToken = isNotCommentToken;
-exports.isNotOpeningBraceToken = isNotOpeningBraceToken;
-exports.isNotOpeningBracketToken = isNotOpeningBracketToken;
-exports.isNotOpeningParenToken = isNotOpeningParenToken;
-exports.isNotSemicolonToken = isNotSemicolonToken;
-exports.isOpeningBraceToken = isOpeningBraceToken;
-exports.isOpeningBracketToken = isOpeningBracketToken;
-exports.isOpeningParenToken = isOpeningParenToken;
-exports.isParenthesized = isParenthesized;
-exports.isSemicolonToken = isSemicolonToken;
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js.map
deleted file mode 100644
index de4dd42..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n    const location = node.range[0]\n\n    let scope = initialScope\n    let found = false\n    do {\n        found = false\n        for (const childScope of scope.childScopes) {\n            const range = childScope.block.range\n\n            if (range[0] <= location && location < range[1]) {\n                scope = childScope\n                found = true\n                break\n            }\n        }\n    } while (found)\n\n    return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n    let name = \"\"\n    let scope = initialScope\n\n    if (typeof nameOrNode === \"string\") {\n        name = nameOrNode\n    } else {\n        name = nameOrNode.name\n        scope = getInnermostScope(scope, nameOrNode)\n    }\n\n    while (scope != null) {\n        const variable = scope.set.get(name)\n        if (variable != null) {\n            return variable\n        }\n        scope = scope.upper\n    }\n\n    return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n    return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n    return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n    return token.value === \"=>\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n    return token.value === \",\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n    return token.value === \";\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n    return token.value === \":\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n    return token.value === \"(\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n    return token.value === \")\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n    return token.value === \"[\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n    return token.value === \"]\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n    return token.value === \"{\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n    return token.value === \"}\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n    return (\n        token.type === \"Line\" ||\n        token.type === \"Block\" ||\n        token.type === \"Shebang\"\n    )\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n    return node.id\n        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n        : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n    const parent = node.parent\n    let start = null\n    let end = null\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n        start = arrowToken.loc.start\n        end = arrowToken.loc.end\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        start = parent.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    } else {\n        start = node.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    }\n\n    return {\n        start: Object.assign({}, start),\n        end: Object.assign({}, end),\n    }\n}\n","/* globals BigInt, globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n    typeof globalThis !== \"undefined\"\n        ? globalThis\n        : typeof self !== \"undefined\"\n        ? self\n        : typeof window !== \"undefined\"\n        ? window\n        : typeof global !== \"undefined\"\n        ? global\n        : {}\n\nconst builtinNames = Object.freeze(\n    new Set([\n        \"Array\",\n        \"ArrayBuffer\",\n        \"BigInt\",\n        \"BigInt64Array\",\n        \"BigUint64Array\",\n        \"Boolean\",\n        \"DataView\",\n        \"Date\",\n        \"decodeURI\",\n        \"decodeURIComponent\",\n        \"encodeURI\",\n        \"encodeURIComponent\",\n        \"escape\",\n        \"Float32Array\",\n        \"Float64Array\",\n        \"Function\",\n        \"Infinity\",\n        \"Int16Array\",\n        \"Int32Array\",\n        \"Int8Array\",\n        \"isFinite\",\n        \"isNaN\",\n        \"isPrototypeOf\",\n        \"JSON\",\n        \"Map\",\n        \"Math\",\n        \"NaN\",\n        \"Number\",\n        \"Object\",\n        \"parseFloat\",\n        \"parseInt\",\n        \"Promise\",\n        \"Proxy\",\n        \"Reflect\",\n        \"RegExp\",\n        \"Set\",\n        \"String\",\n        \"Symbol\",\n        \"Uint16Array\",\n        \"Uint32Array\",\n        \"Uint8Array\",\n        \"Uint8ClampedArray\",\n        \"undefined\",\n        \"unescape\",\n        \"WeakMap\",\n        \"WeakSet\",\n    ])\n)\nconst callAllowed = new Set(\n    [\n        Array.isArray,\n        typeof BigInt === \"function\" ? BigInt : undefined,\n        Boolean,\n        Date,\n        Date.parse,\n        decodeURI,\n        decodeURIComponent,\n        encodeURI,\n        encodeURIComponent,\n        escape,\n        isFinite,\n        isNaN,\n        isPrototypeOf,\n        ...Object.getOwnPropertyNames(Math)\n            .map(k => Math[k])\n            .filter(f => typeof f === \"function\"),\n        Number,\n        Number.isFinite,\n        Number.isNaN,\n        Number.parseFloat,\n        Number.parseInt,\n        Object,\n        Object.entries,\n        Object.is,\n        Object.isExtensible,\n        Object.isFrozen,\n        Object.isSealed,\n        Object.keys,\n        Object.values,\n        parseFloat,\n        parseInt,\n        RegExp,\n        String,\n        String.fromCharCode,\n        String.fromCodePoint,\n        String.raw,\n        Symbol,\n        Symbol.for,\n        Symbol.keyFor,\n        unescape,\n    ].filter(f => typeof f === \"function\")\n)\nconst callPassThrough = new Set([\n    Object.freeze,\n    Object.preventExtensions,\n    Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n    let x = object\n    while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n        const d = Object.getOwnPropertyDescriptor(x, name)\n        if (d) {\n            return d\n        }\n        x = Object.getPrototypeOf(x)\n    }\n    return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n    const d = getPropertyDescriptor(object, name)\n    return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n    const valueList = []\n\n    for (let i = 0; i < nodeList.length; ++i) {\n        const elementNode = nodeList[i]\n\n        if (elementNode == null) {\n            valueList.length = i + 1\n        } else if (elementNode.type === \"SpreadElement\") {\n            const argument = getStaticValueR(elementNode.argument, initialScope)\n            if (argument == null) {\n                return null\n            }\n            valueList.push(...argument.value)\n        } else {\n            const element = getStaticValueR(elementNode, initialScope)\n            if (element == null) {\n                return null\n            }\n            valueList.push(element.value)\n        }\n    }\n\n    return valueList\n}\n\nconst operations = Object.freeze({\n    ArrayExpression(node, initialScope) {\n        const elements = getElementValues(node.elements, initialScope)\n        return elements != null ? { value: elements } : null\n    },\n\n    AssignmentExpression(node, initialScope) {\n        if (node.operator === \"=\") {\n            return getStaticValueR(node.right, initialScope)\n        }\n        return null\n    },\n\n    //eslint-disable-next-line complexity\n    BinaryExpression(node, initialScope) {\n        if (node.operator === \"in\" || node.operator === \"instanceof\") {\n            // Not supported.\n            return null\n        }\n\n        const left = getStaticValueR(node.left, initialScope)\n        const right = getStaticValueR(node.right, initialScope)\n        if (left != null && right != null) {\n            switch (node.operator) {\n                case \"==\":\n                    return { value: left.value == right.value } //eslint-disable-line eqeqeq\n                case \"!=\":\n                    return { value: left.value != right.value } //eslint-disable-line eqeqeq\n                case \"===\":\n                    return { value: left.value === right.value }\n                case \"!==\":\n                    return { value: left.value !== right.value }\n                case \"<\":\n                    return { value: left.value < right.value }\n                case \"<=\":\n                    return { value: left.value <= right.value }\n                case \">\":\n                    return { value: left.value > right.value }\n                case \">=\":\n                    return { value: left.value >= right.value }\n                case \"<<\":\n                    return { value: left.value << right.value }\n                case \">>\":\n                    return { value: left.value >> right.value }\n                case \">>>\":\n                    return { value: left.value >>> right.value }\n                case \"+\":\n                    return { value: left.value + right.value }\n                case \"-\":\n                    return { value: left.value - right.value }\n                case \"*\":\n                    return { value: left.value * right.value }\n                case \"/\":\n                    return { value: left.value / right.value }\n                case \"%\":\n                    return { value: left.value % right.value }\n                case \"**\":\n                    return { value: Math.pow(left.value, right.value) }\n                case \"|\":\n                    return { value: left.value | right.value }\n                case \"^\":\n                    return { value: left.value ^ right.value }\n                case \"&\":\n                    return { value: left.value & right.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n\n    CallExpression(node, initialScope) {\n        const calleeNode = node.callee\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (args != null) {\n            if (calleeNode.type === \"MemberExpression\") {\n                const object = getStaticValueR(calleeNode.object, initialScope)\n                const property = calleeNode.computed\n                    ? getStaticValueR(calleeNode.property, initialScope)\n                    : { value: calleeNode.property.name }\n\n                if (object != null && property != null) {\n                    const receiver = object.value\n                    const methodName = property.value\n                    if (callAllowed.has(receiver[methodName])) {\n                        return { value: receiver[methodName](...args) }\n                    }\n                    if (callPassThrough.has(receiver[methodName])) {\n                        return { value: args[0] }\n                    }\n                }\n            } else {\n                const callee = getStaticValueR(calleeNode, initialScope)\n                if (callee != null) {\n                    const func = callee.value\n                    if (callAllowed.has(func)) {\n                        return { value: func(...args) }\n                    }\n                    if (callPassThrough.has(func)) {\n                        return { value: args[0] }\n                    }\n                }\n            }\n        }\n\n        return null\n    },\n\n    ConditionalExpression(node, initialScope) {\n        const test = getStaticValueR(node.test, initialScope)\n        if (test != null) {\n            return test.value\n                ? getStaticValueR(node.consequent, initialScope)\n                : getStaticValueR(node.alternate, initialScope)\n        }\n        return null\n    },\n\n    ExpressionStatement(node, initialScope) {\n        return getStaticValueR(node.expression, initialScope)\n    },\n\n    Identifier(node, initialScope) {\n        if (initialScope != null) {\n            const variable = findVariable(initialScope, node)\n\n            // Built-in globals.\n            if (\n                variable != null &&\n                variable.defs.length === 0 &&\n                builtinNames.has(variable.name) &&\n                variable.name in globalObject\n            ) {\n                return { value: globalObject[variable.name] }\n            }\n\n            // Constants.\n            if (variable != null && variable.defs.length === 1) {\n                const def = variable.defs[0]\n                if (\n                    def.parent &&\n                    def.parent.kind === \"const\" &&\n                    // TODO(mysticatea): don't support destructuring here.\n                    def.node.id.type === \"Identifier\"\n                ) {\n                    return getStaticValueR(def.node.init, initialScope)\n                }\n            }\n        }\n        return null\n    },\n\n    Literal(node) {\n        //istanbul ignore if : this is implementation-specific behavior.\n        if ((node.regex != null || node.bigint != null) && node.value == null) {\n            // It was a RegExp/BigInt literal, but Node.js didn't support it.\n            return null\n        }\n        return { value: node.value }\n    },\n\n    LogicalExpression(node, initialScope) {\n        const left = getStaticValueR(node.left, initialScope)\n        if (left != null) {\n            if (\n                (node.operator === \"||\" && Boolean(left.value) === true) ||\n                (node.operator === \"&&\" && Boolean(left.value) === false)\n            ) {\n                return left\n            }\n\n            const right = getStaticValueR(node.right, initialScope)\n            if (right != null) {\n                return right\n            }\n        }\n\n        return null\n    },\n\n    MemberExpression(node, initialScope) {\n        const object = getStaticValueR(node.object, initialScope)\n        const property = node.computed\n            ? getStaticValueR(node.property, initialScope)\n            : { value: node.property.name }\n\n        if (\n            object != null &&\n            property != null &&\n            !isGetter(object.value, property.value)\n        ) {\n            return { value: object.value[property.value] }\n        }\n        return null\n    },\n\n    NewExpression(node, initialScope) {\n        const callee = getStaticValueR(node.callee, initialScope)\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (callee != null && args != null) {\n            const Func = callee.value\n            if (callAllowed.has(Func)) {\n                return { value: new Func(...args) }\n            }\n        }\n\n        return null\n    },\n\n    ObjectExpression(node, initialScope) {\n        const object = {}\n\n        for (const propertyNode of node.properties) {\n            if (propertyNode.type === \"Property\") {\n                if (propertyNode.kind !== \"init\") {\n                    return null\n                }\n                const key = propertyNode.computed\n                    ? getStaticValueR(propertyNode.key, initialScope)\n                    : { value: propertyNode.key.name }\n                const value = getStaticValueR(propertyNode.value, initialScope)\n                if (key == null || value == null) {\n                    return null\n                }\n                object[key.value] = value.value\n            } else if (\n                propertyNode.type === \"SpreadElement\" ||\n                propertyNode.type === \"ExperimentalSpreadProperty\"\n            ) {\n                const argument = getStaticValueR(\n                    propertyNode.argument,\n                    initialScope\n                )\n                if (argument == null) {\n                    return null\n                }\n                Object.assign(object, argument.value)\n            } else {\n                return null\n            }\n        }\n\n        return { value: object }\n    },\n\n    SequenceExpression(node, initialScope) {\n        const last = node.expressions[node.expressions.length - 1]\n        return getStaticValueR(last, initialScope)\n    },\n\n    TaggedTemplateExpression(node, initialScope) {\n        const tag = getStaticValueR(node.tag, initialScope)\n        const expressions = getElementValues(\n            node.quasi.expressions,\n            initialScope\n        )\n\n        if (tag != null && expressions != null) {\n            const func = tag.value\n            const strings = node.quasi.quasis.map(q => q.value.cooked)\n            strings.raw = node.quasi.quasis.map(q => q.value.raw)\n\n            if (func === String.raw) {\n                return { value: func(strings, ...expressions) }\n            }\n        }\n\n        return null\n    },\n\n    TemplateLiteral(node, initialScope) {\n        const expressions = getElementValues(node.expressions, initialScope)\n        if (expressions != null) {\n            let value = node.quasis[0].value.cooked\n            for (let i = 0; i < expressions.length; ++i) {\n                value += expressions[i]\n                value += node.quasis[i + 1].value.cooked\n            }\n            return { value }\n        }\n        return null\n    },\n\n    UnaryExpression(node, initialScope) {\n        if (node.operator === \"delete\") {\n            // Not supported.\n            return null\n        }\n        if (node.operator === \"void\") {\n            return { value: undefined }\n        }\n\n        const arg = getStaticValueR(node.argument, initialScope)\n        if (arg != null) {\n            switch (node.operator) {\n                case \"-\":\n                    return { value: -arg.value }\n                case \"+\":\n                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n                case \"!\":\n                    return { value: !arg.value }\n                case \"~\":\n                    return { value: ~arg.value }\n                case \"typeof\":\n                    return { value: typeof arg.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n        return operations[node.type](node, initialScope)\n    }\n    return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n    try {\n        return getStaticValueR(node, initialScope)\n    } catch (_error) {\n        return null\n    }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n    // Handle the literals that the platform doesn't support natively.\n    if (node && node.type === \"Literal\" && node.value === null) {\n        if (node.regex) {\n            return `/${node.regex.pattern}/${node.regex.flags}`\n        }\n        if (node.bigint) {\n            return node.bigint\n        }\n    }\n\n    const evaluated = getStaticValue(node, initialScope)\n    return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n    switch (node.type) {\n        case \"MemberExpression\":\n            if (node.computed) {\n                return getStringIfConstant(node.property, initialScope)\n            }\n            return node.property.name\n\n        case \"Property\":\n        case \"MethodDefinition\":\n            if (node.computed) {\n                return getStringIfConstant(node.key, initialScope)\n            }\n            if (node.key.type === \"Literal\") {\n                return String(node.key.value)\n            }\n            return node.key.name\n\n        // no default\n    }\n\n    return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @returns {string} The name and kind of the function node.\n */\nexport function getFunctionNameWithKind(node) {\n    const parent = node.parent\n    const tokens = []\n\n    if (parent.type === \"MethodDefinition\" && parent.static) {\n        tokens.push(\"static\")\n    }\n    if (node.async) {\n        tokens.push(\"async\")\n    }\n    if (node.generator) {\n        tokens.push(\"generator\")\n    }\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        tokens.push(\"arrow\", \"function\")\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        if (parent.kind === \"constructor\") {\n            return \"constructor\"\n        }\n        if (parent.kind === \"get\") {\n            tokens.push(\"getter\")\n        } else if (parent.kind === \"set\") {\n            tokens.push(\"setter\")\n        } else {\n            tokens.push(\"method\")\n        }\n    } else {\n        tokens.push(\"function\")\n    }\n\n    if (node.id) {\n        tokens.push(`'${node.id.name}'`)\n    } else {\n        const name = getPropertyName(parent)\n\n        if (name) {\n            tokens.push(`'${name}'`)\n        }\n    }\n\n    return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n    new Set([\n        \"==\",\n        \"!=\",\n        \"<\",\n        \"<=\",\n        \">\",\n        \">=\",\n        \"<<\",\n        \">>\",\n        \">>>\",\n        \"+\",\n        \"-\",\n        \"*\",\n        \"/\",\n        \"%\",\n        \"|\",\n        \"^\",\n        \"&\",\n        \"in\",\n    ])\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\nconst visitor = Object.freeze(\n    Object.assign(Object.create(null), {\n        $visit(node, options, visitorKeys) {\n            const { type } = node\n\n            if (typeof this[type] === \"function\") {\n                return this[type](node, options, visitorKeys)\n            }\n\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n\n        $visitChildren(node, options, visitorKeys) {\n            const { type } = node\n\n            for (const key of visitorKeys[type] || evk.getKeys(node)) {\n                const value = node[key]\n\n                if (Array.isArray(value)) {\n                    for (const element of value) {\n                        if (\n                            element &&\n                            this.$visit(element, options, visitorKeys)\n                        ) {\n                            return true\n                        }\n                    }\n                } else if (value && this.$visit(value, options, visitorKeys)) {\n                    return true\n                }\n            }\n\n            return false\n        },\n\n        ArrowFunctionExpression() {\n            return false\n        },\n        AssignmentExpression() {\n            return true\n        },\n        AwaitExpression() {\n            return true\n        },\n        BinaryExpression(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionBinaryOps.has(node.operator) &&\n                (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        CallExpression() {\n            return true\n        },\n        FunctionExpression() {\n            return false\n        },\n        ImportExpression() {\n            return true\n        },\n        MemberExpression(node, options, visitorKeys) {\n            if (options.considerGetters) {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.property.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        MethodDefinition(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        NewExpression() {\n            return true\n        },\n        Property(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UnaryExpression(node, options, visitorKeys) {\n            if (node.operator === \"delete\") {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionUnaryOps.has(node.operator) &&\n                node.argument.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UpdateExpression() {\n            return true\n        },\n        YieldExpression() {\n            return true\n        },\n    })\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n    node,\n    sourceCode,\n    { considerGetters = false, considerImplicitTypeConversion = false } = {}\n) {\n    return visitor.$visit(\n        node,\n        { considerGetters, considerImplicitTypeConversion },\n        sourceCode.visitorKeys || evk.KEYS\n    )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n    const parent = node.parent\n\n    switch (parent.type) {\n        case \"CallExpression\":\n        case \"NewExpression\":\n            if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n                return sourceCode.getTokenAfter(\n                    parent.callee,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"DoWhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getTokenAfter(\n                    parent.body,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"IfStatement\":\n        case \"WhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"ImportExpression\":\n            if (parent.source === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"SwitchStatement\":\n            if (parent.discriminant === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"WithStatement\":\n            if (parent.object === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        default:\n            return null\n    }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n    timesOrNode,\n    nodeOrSourceCode,\n    optionalSourceCode\n) {\n    let times, node, sourceCode, maybeLeftParen, maybeRightParen\n    if (typeof timesOrNode === \"number\") {\n        times = timesOrNode | 0\n        node = nodeOrSourceCode\n        sourceCode = optionalSourceCode\n        if (!(times >= 1)) {\n            throw new TypeError(\"'times' should be a positive integer.\")\n        }\n    } else {\n        times = 1\n        node = timesOrNode\n        sourceCode = nodeOrSourceCode\n    }\n\n    if (node == null) {\n        return false\n    }\n\n    maybeLeftParen = maybeRightParen = node\n    do {\n        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n    } while (\n        maybeLeftParen != null &&\n        maybeRightParen != null &&\n        isOpeningParenToken(maybeLeftParen) &&\n        isClosingParenToken(maybeRightParen) &&\n        // Avoid false positive such as `if (a) {}`\n        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n        --times > 0\n    )\n\n    return times === 0\n}\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n    let escaped = false\n    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n        escaped = !escaped\n    }\n    return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n    const chunks = []\n    let index = 0\n\n    /** @type {RegExpExecArray} */\n    let match = null\n\n    /**\n     * @param {string} key The placeholder.\n     * @returns {string} The replaced string.\n     */\n    function replacer(key) {\n        switch (key) {\n            case \"$$\":\n                return \"$\"\n            case \"$&\":\n                return match[0]\n            case \"$`\":\n                return str.slice(0, match.index)\n            case \"$'\":\n                return str.slice(match.index + match[0].length)\n            default: {\n                const i = key.slice(1)\n                if (i in match) {\n                    return match[i]\n                }\n                return key\n            }\n        }\n    }\n\n    for (match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(replacement.replace(placeholder, replacer))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n    const chunks = []\n    let index = 0\n\n    for (const match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(String(replace(...match, match.index, match.input)))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n    /**\n     * Initialize this matcher.\n     * @param {RegExp} pattern The pattern to match.\n     * @param {{escaped:boolean}} options The options.\n     */\n    constructor(pattern, { escaped = false } = {}) {\n        if (!(pattern instanceof RegExp)) {\n            throw new TypeError(\"'pattern' should be a RegExp instance.\")\n        }\n        if (!pattern.flags.includes(\"g\")) {\n            throw new Error(\"'pattern' should contains 'g' flag.\")\n        }\n\n        internal.set(this, {\n            pattern: new RegExp(pattern.source, pattern.flags),\n            escaped: Boolean(escaped),\n        })\n    }\n\n    /**\n     * Find the pattern in a given string.\n     * @param {string} str The string to find.\n     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.\n     */\n    *execAll(str) {\n        const { pattern, escaped } = internal.get(this)\n        let match = null\n        let lastIndex = 0\n\n        pattern.lastIndex = 0\n        while ((match = pattern.exec(str)) != null) {\n            if (escaped || !isEscaped(str, match.index)) {\n                lastIndex = pattern.lastIndex\n                yield match\n                pattern.lastIndex = lastIndex\n            }\n        }\n    }\n\n    /**\n     * Check whether the pattern is found in a given string.\n     * @param {string} str The string to check.\n     * @returns {boolean} `true` if the pattern was found in the string.\n     */\n    test(str) {\n        const it = this.execAll(str)\n        const ret = it.next()\n        return !ret.done\n    }\n\n    /**\n     * Replace a given string.\n     * @param {string} str The string to be replaced.\n     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n     * @returns {string} The replaced string.\n     */\n    [Symbol.replace](str, replacer) {\n        return typeof replacer === \"function\"\n            ? replaceF(this, String(str), replacer)\n            : replaceS(this, String(str), String(replacer))\n    }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n    return (\n        variable == null ||\n        variable.defs.length !== 0 ||\n        variable.references.some(r => r.isWrite())\n    )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n    const parent = node.parent\n\n    switch (parent && parent.type) {\n        case \"ConditionalExpression\":\n            return parent.consequent === node || parent.alternate === node\n        case \"LogicalExpression\":\n            return true\n        case \"SequenceExpression\":\n            return parent.expressions[parent.expressions.length - 1] === node\n\n        default:\n            return false\n    }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n    /**\n     * Initialize this tracker.\n     * @param {Scope} globalScope The global scope.\n     * @param {object} [options] The options.\n     * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n     * @param {string[]} [options.globalObjectNames=[\"global\",\"self\",\"window\"]] The variable names for Global Object.\n     */\n    constructor(\n        globalScope,\n        {\n            mode = \"strict\",\n            globalObjectNames = [\"global\", \"self\", \"window\"],\n        } = {}\n    ) {\n        this.variableStack = []\n        this.globalScope = globalScope\n        this.mode = mode\n        this.globalObjectNames = globalObjectNames.slice(0)\n    }\n\n    /**\n     * Iterate the references of global variables.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateGlobalReferences(traceMap) {\n        for (const key of Object.keys(traceMap)) {\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                nextTraceMap,\n                true\n            )\n        }\n\n        for (const key of this.globalObjectNames) {\n            const path = []\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                traceMap,\n                false\n            )\n        }\n    }\n\n    /**\n     * Iterate the references of CommonJS modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateCjsReferences(traceMap) {\n        for (const { node } of this.iterateGlobalReferences(requireCall)) {\n            const key = getStringIfConstant(node.arguments[0])\n            if (key == null || !has(traceMap, key)) {\n                continue\n            }\n\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n\n            if (nextTraceMap[READ]) {\n                yield {\n                    node,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n        }\n    }\n\n    /**\n     * Iterate the references of ES modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateEsmReferences(traceMap) {\n        const programNode = this.globalScope.block\n\n        for (const node of programNode.body) {\n            if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n                continue\n            }\n            const moduleId = node.source.value\n\n            if (!has(traceMap, moduleId)) {\n                continue\n            }\n            const nextTraceMap = traceMap[moduleId]\n            const path = [moduleId]\n\n            if (nextTraceMap[READ]) {\n                yield { node, path, type: READ, info: nextTraceMap[READ] }\n            }\n\n            if (node.type === \"ExportAllDeclaration\") {\n                for (const key of Object.keys(nextTraceMap)) {\n                    const exportTraceMap = nextTraceMap[key]\n                    if (exportTraceMap[READ]) {\n                        yield {\n                            node,\n                            path: path.concat(key),\n                            type: READ,\n                            info: exportTraceMap[READ],\n                        }\n                    }\n                }\n            } else {\n                for (const specifier of node.specifiers) {\n                    const esm = has(nextTraceMap, ESM)\n                    const it = this._iterateImportReferences(\n                        specifier,\n                        path,\n                        esm\n                            ? nextTraceMap\n                            : this.mode === \"legacy\"\n                            ? Object.assign(\n                                  { default: nextTraceMap },\n                                  nextTraceMap\n                              )\n                            : { default: nextTraceMap }\n                    )\n\n                    if (esm) {\n                        yield* it\n                    } else {\n                        for (const report of it) {\n                            report.path = report.path.filter(exceptDefault)\n                            if (\n                                report.path.length >= 2 ||\n                                report.type !== READ\n                            ) {\n                                yield report\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given variable.\n     * @param {Variable} variable The variable to iterate that references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @param {boolean} shouldReport = The flag to report those references.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n        if (this.variableStack.includes(variable)) {\n            return\n        }\n        this.variableStack.push(variable)\n        try {\n            for (const reference of variable.references) {\n                if (!reference.isRead()) {\n                    continue\n                }\n                const node = reference.identifier\n\n                if (shouldReport && traceMap[READ]) {\n                    yield { node, path, type: READ, info: traceMap[READ] }\n                }\n                yield* this._iteratePropertyReferences(node, path, traceMap)\n            }\n        } finally {\n            this.variableStack.pop()\n        }\n    }\n\n    /**\n     * Iterate the references for a given AST node.\n     * @param rootNode The AST node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    //eslint-disable-next-line complexity\n    *_iteratePropertyReferences(rootNode, path, traceMap) {\n        let node = rootNode\n        while (isPassThrough(node)) {\n            node = node.parent\n        }\n\n        const parent = node.parent\n        if (parent.type === \"MemberExpression\") {\n            if (parent.object === node) {\n                const key = getPropertyName(parent)\n                if (key == null || !has(traceMap, key)) {\n                    return\n                }\n\n                path = path.concat(key) //eslint-disable-line no-param-reassign\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: parent,\n                        path,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iteratePropertyReferences(\n                    parent,\n                    path,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (parent.type === \"CallExpression\") {\n            if (parent.callee === node && traceMap[CALL]) {\n                yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n            }\n            return\n        }\n        if (parent.type === \"NewExpression\") {\n            if (parent.callee === node && traceMap[CONSTRUCT]) {\n                yield {\n                    node: parent,\n                    path,\n                    type: CONSTRUCT,\n                    info: traceMap[CONSTRUCT],\n                }\n            }\n            return\n        }\n        if (parent.type === \"AssignmentExpression\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n                yield* this._iteratePropertyReferences(parent, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"AssignmentPattern\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"VariableDeclarator\") {\n            if (parent.init === node) {\n                yield* this._iterateLhsReferences(parent.id, path, traceMap)\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given Pattern node.\n     * @param {Node} patternNode The Pattern node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateLhsReferences(patternNode, path, traceMap) {\n        if (patternNode.type === \"Identifier\") {\n            const variable = findVariable(this.globalScope, patternNode)\n            if (variable != null) {\n                yield* this._iterateVariableReferences(\n                    variable,\n                    path,\n                    traceMap,\n                    false\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"ObjectPattern\") {\n            for (const property of patternNode.properties) {\n                const key = getPropertyName(property)\n\n                if (key == null || !has(traceMap, key)) {\n                    continue\n                }\n\n                const nextPath = path.concat(key)\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: property,\n                        path: nextPath,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iterateLhsReferences(\n                    property.value,\n                    nextPath,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"AssignmentPattern\") {\n            yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n        }\n    }\n\n    /**\n     * Iterate the references for a given ModuleSpecifier node.\n     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateImportReferences(specifierNode, path, traceMap) {\n        const type = specifierNode.type\n\n        if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n            const key =\n                type === \"ImportDefaultSpecifier\"\n                    ? \"default\"\n                    : specifierNode.imported.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                nextTraceMap,\n                false\n            )\n\n            return\n        }\n\n        if (type === \"ImportNamespaceSpecifier\") {\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                traceMap,\n                false\n            )\n            return\n        }\n\n        if (type === \"ExportSpecifier\") {\n            const key = specifierNode.local.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n        }\n    }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n    return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    READ,\n    ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\nexport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs
deleted file mode 100644
index 4b2a20e..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs
+++ /dev/null
@@ -1,1785 +0,0 @@
-/*! @author Toru Nagashima <https://github.com/mysticatea> */
-import evk from 'eslint-visitor-keys';
-
-/**
- * Get the innermost scope which contains a given location.
- * @param {Scope} initialScope The initial scope to search.
- * @param {Node} node The location to search.
- * @returns {Scope} The innermost scope.
- */
-function getInnermostScope(initialScope, node) {
-    const location = node.range[0];
-
-    let scope = initialScope;
-    let found = false;
-    do {
-        found = false;
-        for (const childScope of scope.childScopes) {
-            const range = childScope.block.range;
-
-            if (range[0] <= location && location < range[1]) {
-                scope = childScope;
-                found = true;
-                break
-            }
-        }
-    } while (found)
-
-    return scope
-}
-
-/**
- * Find the variable of a given name.
- * @param {Scope} initialScope The scope to start finding.
- * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.
- * @returns {Variable|null} The found variable or null.
- */
-function findVariable(initialScope, nameOrNode) {
-    let name = "";
-    let scope = initialScope;
-
-    if (typeof nameOrNode === "string") {
-        name = nameOrNode;
-    } else {
-        name = nameOrNode.name;
-        scope = getInnermostScope(scope, nameOrNode);
-    }
-
-    while (scope != null) {
-        const variable = scope.set.get(name);
-        if (variable != null) {
-            return variable
-        }
-        scope = scope.upper;
-    }
-
-    return null
-}
-
-/**
- * Negate the result of `this` calling.
- * @param {Token} token The token to check.
- * @returns {boolean} `true` if the result of `this(token)` is `false`.
- */
-function negate0(token) {
-    return !this(token) //eslint-disable-line no-invalid-this
-}
-
-/**
- * Creates the negate function of the given function.
- * @param {function(Token):boolean} f - The function to negate.
- * @returns {function(Token):boolean} Negated function.
- */
-function negate(f) {
-    return negate0.bind(f)
-}
-
-/**
- * Checks if the given token is an arrow token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an arrow token.
- */
-function isArrowToken(token) {
-    return token.value === "=>" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a comma token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a comma token.
- */
-function isCommaToken(token) {
-    return token.value === "," && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a semicolon token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a semicolon token.
- */
-function isSemicolonToken(token) {
-    return token.value === ";" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a colon token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a colon token.
- */
-function isColonToken(token) {
-    return token.value === ":" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening parenthesis token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening parenthesis token.
- */
-function isOpeningParenToken(token) {
-    return token.value === "(" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing parenthesis token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing parenthesis token.
- */
-function isClosingParenToken(token) {
-    return token.value === ")" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening square bracket token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening square bracket token.
- */
-function isOpeningBracketToken(token) {
-    return token.value === "[" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing square bracket token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing square bracket token.
- */
-function isClosingBracketToken(token) {
-    return token.value === "]" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is an opening brace token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is an opening brace token.
- */
-function isOpeningBraceToken(token) {
-    return token.value === "{" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a closing brace token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a closing brace token.
- */
-function isClosingBraceToken(token) {
-    return token.value === "}" && token.type === "Punctuator"
-}
-
-/**
- * Checks if the given token is a comment token or not.
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a comment token.
- */
-function isCommentToken(token) {
-    return (
-        token.type === "Line" ||
-        token.type === "Block" ||
-        token.type === "Shebang"
-    )
-}
-
-const isNotArrowToken = negate(isArrowToken);
-const isNotCommaToken = negate(isCommaToken);
-const isNotSemicolonToken = negate(isSemicolonToken);
-const isNotColonToken = negate(isColonToken);
-const isNotOpeningParenToken = negate(isOpeningParenToken);
-const isNotClosingParenToken = negate(isClosingParenToken);
-const isNotOpeningBracketToken = negate(isOpeningBracketToken);
-const isNotClosingBracketToken = negate(isClosingBracketToken);
-const isNotOpeningBraceToken = negate(isOpeningBraceToken);
-const isNotClosingBraceToken = negate(isClosingBraceToken);
-const isNotCommentToken = negate(isCommentToken);
-
-/**
- * Get the `(` token of the given function node.
- * @param {Node} node - The function node to get.
- * @param {SourceCode} sourceCode - The source code object to get tokens.
- * @returns {Token} `(` token.
- */
-function getOpeningParenOfParams(node, sourceCode) {
-    return node.id
-        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)
-        : sourceCode.getFirstToken(node, isOpeningParenToken)
-}
-
-/**
- * Get the location of the given function node for reporting.
- * @param {Node} node - The function node to get.
- * @param {SourceCode} sourceCode - The source code object to get tokens.
- * @returns {string} The location of the function node for reporting.
- */
-function getFunctionHeadLocation(node, sourceCode) {
-    const parent = node.parent;
-    let start = null;
-    let end = null;
-
-    if (node.type === "ArrowFunctionExpression") {
-        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken);
-
-        start = arrowToken.loc.start;
-        end = arrowToken.loc.end;
-    } else if (
-        parent.type === "Property" ||
-        parent.type === "MethodDefinition"
-    ) {
-        start = parent.loc.start;
-        end = getOpeningParenOfParams(node, sourceCode).loc.start;
-    } else {
-        start = node.loc.start;
-        end = getOpeningParenOfParams(node, sourceCode).loc.start;
-    }
-
-    return {
-        start: Object.assign({}, start),
-        end: Object.assign({}, end),
-    }
-}
-
-/* globals BigInt, globalThis, global, self, window */
-
-const globalObject =
-    typeof globalThis !== "undefined"
-        ? globalThis
-        : typeof self !== "undefined"
-        ? self
-        : typeof window !== "undefined"
-        ? window
-        : typeof global !== "undefined"
-        ? global
-        : {};
-
-const builtinNames = Object.freeze(
-    new Set([
-        "Array",
-        "ArrayBuffer",
-        "BigInt",
-        "BigInt64Array",
-        "BigUint64Array",
-        "Boolean",
-        "DataView",
-        "Date",
-        "decodeURI",
-        "decodeURIComponent",
-        "encodeURI",
-        "encodeURIComponent",
-        "escape",
-        "Float32Array",
-        "Float64Array",
-        "Function",
-        "Infinity",
-        "Int16Array",
-        "Int32Array",
-        "Int8Array",
-        "isFinite",
-        "isNaN",
-        "isPrototypeOf",
-        "JSON",
-        "Map",
-        "Math",
-        "NaN",
-        "Number",
-        "Object",
-        "parseFloat",
-        "parseInt",
-        "Promise",
-        "Proxy",
-        "Reflect",
-        "RegExp",
-        "Set",
-        "String",
-        "Symbol",
-        "Uint16Array",
-        "Uint32Array",
-        "Uint8Array",
-        "Uint8ClampedArray",
-        "undefined",
-        "unescape",
-        "WeakMap",
-        "WeakSet",
-    ])
-);
-const callAllowed = new Set(
-    [
-        Array.isArray,
-        typeof BigInt === "function" ? BigInt : undefined,
-        Boolean,
-        Date,
-        Date.parse,
-        decodeURI,
-        decodeURIComponent,
-        encodeURI,
-        encodeURIComponent,
-        escape,
-        isFinite,
-        isNaN,
-        isPrototypeOf,
-        ...Object.getOwnPropertyNames(Math)
-            .map(k => Math[k])
-            .filter(f => typeof f === "function"),
-        Number,
-        Number.isFinite,
-        Number.isNaN,
-        Number.parseFloat,
-        Number.parseInt,
-        Object,
-        Object.entries,
-        Object.is,
-        Object.isExtensible,
-        Object.isFrozen,
-        Object.isSealed,
-        Object.keys,
-        Object.values,
-        parseFloat,
-        parseInt,
-        RegExp,
-        String,
-        String.fromCharCode,
-        String.fromCodePoint,
-        String.raw,
-        Symbol,
-        Symbol.for,
-        Symbol.keyFor,
-        unescape,
-    ].filter(f => typeof f === "function")
-);
-const callPassThrough = new Set([
-    Object.freeze,
-    Object.preventExtensions,
-    Object.seal,
-]);
-
-/**
- * Get the property descriptor.
- * @param {object} object The object to get.
- * @param {string|number|symbol} name The property name to get.
- */
-function getPropertyDescriptor(object, name) {
-    let x = object;
-    while ((typeof x === "object" || typeof x === "function") && x !== null) {
-        const d = Object.getOwnPropertyDescriptor(x, name);
-        if (d) {
-            return d
-        }
-        x = Object.getPrototypeOf(x);
-    }
-    return null
-}
-
-/**
- * Check if a property is getter or not.
- * @param {object} object The object to check.
- * @param {string|number|symbol} name The property name to check.
- */
-function isGetter(object, name) {
-    const d = getPropertyDescriptor(object, name);
-    return d != null && d.get != null
-}
-
-/**
- * Get the element values of a given node list.
- * @param {Node[]} nodeList The node list to get values.
- * @param {Scope|undefined} initialScope The initial scope to find variables.
- * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.
- */
-function getElementValues(nodeList, initialScope) {
-    const valueList = [];
-
-    for (let i = 0; i < nodeList.length; ++i) {
-        const elementNode = nodeList[i];
-
-        if (elementNode == null) {
-            valueList.length = i + 1;
-        } else if (elementNode.type === "SpreadElement") {
-            const argument = getStaticValueR(elementNode.argument, initialScope);
-            if (argument == null) {
-                return null
-            }
-            valueList.push(...argument.value);
-        } else {
-            const element = getStaticValueR(elementNode, initialScope);
-            if (element == null) {
-                return null
-            }
-            valueList.push(element.value);
-        }
-    }
-
-    return valueList
-}
-
-const operations = Object.freeze({
-    ArrayExpression(node, initialScope) {
-        const elements = getElementValues(node.elements, initialScope);
-        return elements != null ? { value: elements } : null
-    },
-
-    AssignmentExpression(node, initialScope) {
-        if (node.operator === "=") {
-            return getStaticValueR(node.right, initialScope)
-        }
-        return null
-    },
-
-    //eslint-disable-next-line complexity
-    BinaryExpression(node, initialScope) {
-        if (node.operator === "in" || node.operator === "instanceof") {
-            // Not supported.
-            return null
-        }
-
-        const left = getStaticValueR(node.left, initialScope);
-        const right = getStaticValueR(node.right, initialScope);
-        if (left != null && right != null) {
-            switch (node.operator) {
-                case "==":
-                    return { value: left.value == right.value } //eslint-disable-line eqeqeq
-                case "!=":
-                    return { value: left.value != right.value } //eslint-disable-line eqeqeq
-                case "===":
-                    return { value: left.value === right.value }
-                case "!==":
-                    return { value: left.value !== right.value }
-                case "<":
-                    return { value: left.value < right.value }
-                case "<=":
-                    return { value: left.value <= right.value }
-                case ">":
-                    return { value: left.value > right.value }
-                case ">=":
-                    return { value: left.value >= right.value }
-                case "<<":
-                    return { value: left.value << right.value }
-                case ">>":
-                    return { value: left.value >> right.value }
-                case ">>>":
-                    return { value: left.value >>> right.value }
-                case "+":
-                    return { value: left.value + right.value }
-                case "-":
-                    return { value: left.value - right.value }
-                case "*":
-                    return { value: left.value * right.value }
-                case "/":
-                    return { value: left.value / right.value }
-                case "%":
-                    return { value: left.value % right.value }
-                case "**":
-                    return { value: Math.pow(left.value, right.value) }
-                case "|":
-                    return { value: left.value | right.value }
-                case "^":
-                    return { value: left.value ^ right.value }
-                case "&":
-                    return { value: left.value & right.value }
-
-                // no default
-            }
-        }
-
-        return null
-    },
-
-    CallExpression(node, initialScope) {
-        const calleeNode = node.callee;
-        const args = getElementValues(node.arguments, initialScope);
-
-        if (args != null) {
-            if (calleeNode.type === "MemberExpression") {
-                const object = getStaticValueR(calleeNode.object, initialScope);
-                const property = calleeNode.computed
-                    ? getStaticValueR(calleeNode.property, initialScope)
-                    : { value: calleeNode.property.name };
-
-                if (object != null && property != null) {
-                    const receiver = object.value;
-                    const methodName = property.value;
-                    if (callAllowed.has(receiver[methodName])) {
-                        return { value: receiver[methodName](...args) }
-                    }
-                    if (callPassThrough.has(receiver[methodName])) {
-                        return { value: args[0] }
-                    }
-                }
-            } else {
-                const callee = getStaticValueR(calleeNode, initialScope);
-                if (callee != null) {
-                    const func = callee.value;
-                    if (callAllowed.has(func)) {
-                        return { value: func(...args) }
-                    }
-                    if (callPassThrough.has(func)) {
-                        return { value: args[0] }
-                    }
-                }
-            }
-        }
-
-        return null
-    },
-
-    ConditionalExpression(node, initialScope) {
-        const test = getStaticValueR(node.test, initialScope);
-        if (test != null) {
-            return test.value
-                ? getStaticValueR(node.consequent, initialScope)
-                : getStaticValueR(node.alternate, initialScope)
-        }
-        return null
-    },
-
-    ExpressionStatement(node, initialScope) {
-        return getStaticValueR(node.expression, initialScope)
-    },
-
-    Identifier(node, initialScope) {
-        if (initialScope != null) {
-            const variable = findVariable(initialScope, node);
-
-            // Built-in globals.
-            if (
-                variable != null &&
-                variable.defs.length === 0 &&
-                builtinNames.has(variable.name) &&
-                variable.name in globalObject
-            ) {
-                return { value: globalObject[variable.name] }
-            }
-
-            // Constants.
-            if (variable != null && variable.defs.length === 1) {
-                const def = variable.defs[0];
-                if (
-                    def.parent &&
-                    def.parent.kind === "const" &&
-                    // TODO(mysticatea): don't support destructuring here.
-                    def.node.id.type === "Identifier"
-                ) {
-                    return getStaticValueR(def.node.init, initialScope)
-                }
-            }
-        }
-        return null
-    },
-
-    Literal(node) {
-        //istanbul ignore if : this is implementation-specific behavior.
-        if ((node.regex != null || node.bigint != null) && node.value == null) {
-            // It was a RegExp/BigInt literal, but Node.js didn't support it.
-            return null
-        }
-        return { value: node.value }
-    },
-
-    LogicalExpression(node, initialScope) {
-        const left = getStaticValueR(node.left, initialScope);
-        if (left != null) {
-            if (
-                (node.operator === "||" && Boolean(left.value) === true) ||
-                (node.operator === "&&" && Boolean(left.value) === false)
-            ) {
-                return left
-            }
-
-            const right = getStaticValueR(node.right, initialScope);
-            if (right != null) {
-                return right
-            }
-        }
-
-        return null
-    },
-
-    MemberExpression(node, initialScope) {
-        const object = getStaticValueR(node.object, initialScope);
-        const property = node.computed
-            ? getStaticValueR(node.property, initialScope)
-            : { value: node.property.name };
-
-        if (
-            object != null &&
-            property != null &&
-            !isGetter(object.value, property.value)
-        ) {
-            return { value: object.value[property.value] }
-        }
-        return null
-    },
-
-    NewExpression(node, initialScope) {
-        const callee = getStaticValueR(node.callee, initialScope);
-        const args = getElementValues(node.arguments, initialScope);
-
-        if (callee != null && args != null) {
-            const Func = callee.value;
-            if (callAllowed.has(Func)) {
-                return { value: new Func(...args) }
-            }
-        }
-
-        return null
-    },
-
-    ObjectExpression(node, initialScope) {
-        const object = {};
-
-        for (const propertyNode of node.properties) {
-            if (propertyNode.type === "Property") {
-                if (propertyNode.kind !== "init") {
-                    return null
-                }
-                const key = propertyNode.computed
-                    ? getStaticValueR(propertyNode.key, initialScope)
-                    : { value: propertyNode.key.name };
-                const value = getStaticValueR(propertyNode.value, initialScope);
-                if (key == null || value == null) {
-                    return null
-                }
-                object[key.value] = value.value;
-            } else if (
-                propertyNode.type === "SpreadElement" ||
-                propertyNode.type === "ExperimentalSpreadProperty"
-            ) {
-                const argument = getStaticValueR(
-                    propertyNode.argument,
-                    initialScope
-                );
-                if (argument == null) {
-                    return null
-                }
-                Object.assign(object, argument.value);
-            } else {
-                return null
-            }
-        }
-
-        return { value: object }
-    },
-
-    SequenceExpression(node, initialScope) {
-        const last = node.expressions[node.expressions.length - 1];
-        return getStaticValueR(last, initialScope)
-    },
-
-    TaggedTemplateExpression(node, initialScope) {
-        const tag = getStaticValueR(node.tag, initialScope);
-        const expressions = getElementValues(
-            node.quasi.expressions,
-            initialScope
-        );
-
-        if (tag != null && expressions != null) {
-            const func = tag.value;
-            const strings = node.quasi.quasis.map(q => q.value.cooked);
-            strings.raw = node.quasi.quasis.map(q => q.value.raw);
-
-            if (func === String.raw) {
-                return { value: func(strings, ...expressions) }
-            }
-        }
-
-        return null
-    },
-
-    TemplateLiteral(node, initialScope) {
-        const expressions = getElementValues(node.expressions, initialScope);
-        if (expressions != null) {
-            let value = node.quasis[0].value.cooked;
-            for (let i = 0; i < expressions.length; ++i) {
-                value += expressions[i];
-                value += node.quasis[i + 1].value.cooked;
-            }
-            return { value }
-        }
-        return null
-    },
-
-    UnaryExpression(node, initialScope) {
-        if (node.operator === "delete") {
-            // Not supported.
-            return null
-        }
-        if (node.operator === "void") {
-            return { value: undefined }
-        }
-
-        const arg = getStaticValueR(node.argument, initialScope);
-        if (arg != null) {
-            switch (node.operator) {
-                case "-":
-                    return { value: -arg.value }
-                case "+":
-                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion
-                case "!":
-                    return { value: !arg.value }
-                case "~":
-                    return { value: ~arg.value }
-                case "typeof":
-                    return { value: typeof arg.value }
-
-                // no default
-            }
-        }
-
-        return null
-    },
-});
-
-/**
- * Get the value of a given node if it's a static value.
- * @param {Node} node The node to get.
- * @param {Scope|undefined} initialScope The scope to start finding variable.
- * @returns {{value:any}|null} The static value of the node, or `null`.
- */
-function getStaticValueR(node, initialScope) {
-    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {
-        return operations[node.type](node, initialScope)
-    }
-    return null
-}
-
-/**
- * Get the value of a given node if it's a static value.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.
- * @returns {{value:any}|null} The static value of the node, or `null`.
- */
-function getStaticValue(node, initialScope = null) {
-    try {
-        return getStaticValueR(node, initialScope)
-    } catch (_error) {
-        return null
-    }
-}
-
-/**
- * Get the value of a given node if it's a literal or a template literal.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.
- * @returns {string|null} The value of the node, or `null`.
- */
-function getStringIfConstant(node, initialScope = null) {
-    // Handle the literals that the platform doesn't support natively.
-    if (node && node.type === "Literal" && node.value === null) {
-        if (node.regex) {
-            return `/${node.regex.pattern}/${node.regex.flags}`
-        }
-        if (node.bigint) {
-            return node.bigint
-        }
-    }
-
-    const evaluated = getStaticValue(node, initialScope);
-    return evaluated && String(evaluated.value)
-}
-
-/**
- * Get the property name from a MemberExpression node or a Property node.
- * @param {Node} node The node to get.
- * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.
- * @returns {string|null} The property name of the node.
- */
-function getPropertyName(node, initialScope) {
-    switch (node.type) {
-        case "MemberExpression":
-            if (node.computed) {
-                return getStringIfConstant(node.property, initialScope)
-            }
-            return node.property.name
-
-        case "Property":
-        case "MethodDefinition":
-            if (node.computed) {
-                return getStringIfConstant(node.key, initialScope)
-            }
-            if (node.key.type === "Literal") {
-                return String(node.key.value)
-            }
-            return node.key.name
-
-        // no default
-    }
-
-    return null
-}
-
-/**
- * Get the name and kind of the given function node.
- * @param {ASTNode} node - The function node to get.
- * @returns {string} The name and kind of the function node.
- */
-function getFunctionNameWithKind(node) {
-    const parent = node.parent;
-    const tokens = [];
-
-    if (parent.type === "MethodDefinition" && parent.static) {
-        tokens.push("static");
-    }
-    if (node.async) {
-        tokens.push("async");
-    }
-    if (node.generator) {
-        tokens.push("generator");
-    }
-
-    if (node.type === "ArrowFunctionExpression") {
-        tokens.push("arrow", "function");
-    } else if (
-        parent.type === "Property" ||
-        parent.type === "MethodDefinition"
-    ) {
-        if (parent.kind === "constructor") {
-            return "constructor"
-        }
-        if (parent.kind === "get") {
-            tokens.push("getter");
-        } else if (parent.kind === "set") {
-            tokens.push("setter");
-        } else {
-            tokens.push("method");
-        }
-    } else {
-        tokens.push("function");
-    }
-
-    if (node.id) {
-        tokens.push(`'${node.id.name}'`);
-    } else {
-        const name = getPropertyName(parent);
-
-        if (name) {
-            tokens.push(`'${name}'`);
-        }
-    }
-
-    return tokens.join(" ")
-}
-
-const typeConversionBinaryOps = Object.freeze(
-    new Set([
-        "==",
-        "!=",
-        "<",
-        "<=",
-        ">",
-        ">=",
-        "<<",
-        ">>",
-        ">>>",
-        "+",
-        "-",
-        "*",
-        "/",
-        "%",
-        "|",
-        "^",
-        "&",
-        "in",
-    ])
-);
-const typeConversionUnaryOps = Object.freeze(new Set(["-", "+", "!", "~"]));
-const visitor = Object.freeze(
-    Object.assign(Object.create(null), {
-        $visit(node, options, visitorKeys) {
-            const { type } = node;
-
-            if (typeof this[type] === "function") {
-                return this[type](node, options, visitorKeys)
-            }
-
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-
-        $visitChildren(node, options, visitorKeys) {
-            const { type } = node;
-
-            for (const key of visitorKeys[type] || evk.getKeys(node)) {
-                const value = node[key];
-
-                if (Array.isArray(value)) {
-                    for (const element of value) {
-                        if (
-                            element &&
-                            this.$visit(element, options, visitorKeys)
-                        ) {
-                            return true
-                        }
-                    }
-                } else if (value && this.$visit(value, options, visitorKeys)) {
-                    return true
-                }
-            }
-
-            return false
-        },
-
-        ArrowFunctionExpression() {
-            return false
-        },
-        AssignmentExpression() {
-            return true
-        },
-        AwaitExpression() {
-            return true
-        },
-        BinaryExpression(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                typeConversionBinaryOps.has(node.operator) &&
-                (node.left.type !== "Literal" || node.right.type !== "Literal")
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        CallExpression() {
-            return true
-        },
-        FunctionExpression() {
-            return false
-        },
-        ImportExpression() {
-            return true
-        },
-        MemberExpression(node, options, visitorKeys) {
-            if (options.considerGetters) {
-                return true
-            }
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.property.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        MethodDefinition(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.key.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        NewExpression() {
-            return true
-        },
-        Property(node, options, visitorKeys) {
-            if (
-                options.considerImplicitTypeConversion &&
-                node.computed &&
-                node.key.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        UnaryExpression(node, options, visitorKeys) {
-            if (node.operator === "delete") {
-                return true
-            }
-            if (
-                options.considerImplicitTypeConversion &&
-                typeConversionUnaryOps.has(node.operator) &&
-                node.argument.type !== "Literal"
-            ) {
-                return true
-            }
-            return this.$visitChildren(node, options, visitorKeys)
-        },
-        UpdateExpression() {
-            return true
-        },
-        YieldExpression() {
-            return true
-        },
-    })
-);
-
-/**
- * Check whether a given node has any side effect or not.
- * @param {Node} node The node to get.
- * @param {SourceCode} sourceCode The source code object.
- * @param {object} [options] The option object.
- * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.
- * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.
- * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.
- * @returns {boolean} `true` if the node has a certain side effect.
- */
-function hasSideEffect(
-    node,
-    sourceCode,
-    { considerGetters = false, considerImplicitTypeConversion = false } = {}
-) {
-    return visitor.$visit(
-        node,
-        { considerGetters, considerImplicitTypeConversion },
-        sourceCode.visitorKeys || evk.KEYS
-    )
-}
-
-/**
- * Get the left parenthesis of the parent node syntax if it exists.
- * E.g., `if (a) {}` then the `(`.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {Token|null} The left parenthesis of the parent node syntax
- */
-function getParentSyntaxParen(node, sourceCode) {
-    const parent = node.parent;
-
-    switch (parent.type) {
-        case "CallExpression":
-        case "NewExpression":
-            if (parent.arguments.length === 1 && parent.arguments[0] === node) {
-                return sourceCode.getTokenAfter(
-                    parent.callee,
-                    isOpeningParenToken
-                )
-            }
-            return null
-
-        case "DoWhileStatement":
-            if (parent.test === node) {
-                return sourceCode.getTokenAfter(
-                    parent.body,
-                    isOpeningParenToken
-                )
-            }
-            return null
-
-        case "IfStatement":
-        case "WhileStatement":
-            if (parent.test === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "ImportExpression":
-            if (parent.source === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "SwitchStatement":
-            if (parent.discriminant === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        case "WithStatement":
-            if (parent.object === node) {
-                return sourceCode.getFirstToken(parent, 1)
-            }
-            return null
-
-        default:
-            return null
-    }
-}
-
-/**
- * Check whether a given node is parenthesized or not.
- * @param {number} times The number of parantheses.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {boolean} `true` if the node is parenthesized the given times.
- */
-/**
- * Check whether a given node is parenthesized or not.
- * @param {Node} node The AST node to check.
- * @param {SourceCode} sourceCode The source code object to get tokens.
- * @returns {boolean} `true` if the node is parenthesized.
- */
-function isParenthesized(
-    timesOrNode,
-    nodeOrSourceCode,
-    optionalSourceCode
-) {
-    let times, node, sourceCode, maybeLeftParen, maybeRightParen;
-    if (typeof timesOrNode === "number") {
-        times = timesOrNode | 0;
-        node = nodeOrSourceCode;
-        sourceCode = optionalSourceCode;
-        if (!(times >= 1)) {
-            throw new TypeError("'times' should be a positive integer.")
-        }
-    } else {
-        times = 1;
-        node = timesOrNode;
-        sourceCode = nodeOrSourceCode;
-    }
-
-    if (node == null) {
-        return false
-    }
-
-    maybeLeftParen = maybeRightParen = node;
-    do {
-        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen);
-        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen);
-    } while (
-        maybeLeftParen != null &&
-        maybeRightParen != null &&
-        isOpeningParenToken(maybeLeftParen) &&
-        isClosingParenToken(maybeRightParen) &&
-        // Avoid false positive such as `if (a) {}`
-        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&
-        --times > 0
-    )
-
-    return times === 0
-}
-
-/**
- * @author Toru Nagashima <https://github.com/mysticatea>
- * See LICENSE file in root directory for full license.
- */
-
-const placeholder = /\$(?:[$&`']|[1-9][0-9]?)/gu;
-
-/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */
-const internal = new WeakMap();
-
-/**
- * Check whether a given character is escaped or not.
- * @param {string} str The string to check.
- * @param {number} index The location of the character to check.
- * @returns {boolean} `true` if the character is escaped.
- */
-function isEscaped(str, index) {
-    let escaped = false;
-    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {
-        escaped = !escaped;
-    }
-    return escaped
-}
-
-/**
- * Replace a given string by a given matcher.
- * @param {PatternMatcher} matcher The pattern matcher.
- * @param {string} str The string to be replaced.
- * @param {string} replacement The new substring to replace each matched part.
- * @returns {string} The replaced string.
- */
-function replaceS(matcher, str, replacement) {
-    const chunks = [];
-    let index = 0;
-
-    /** @type {RegExpExecArray} */
-    let match = null;
-
-    /**
-     * @param {string} key The placeholder.
-     * @returns {string} The replaced string.
-     */
-    function replacer(key) {
-        switch (key) {
-            case "$$":
-                return "$"
-            case "$&":
-                return match[0]
-            case "$`":
-                return str.slice(0, match.index)
-            case "$'":
-                return str.slice(match.index + match[0].length)
-            default: {
-                const i = key.slice(1);
-                if (i in match) {
-                    return match[i]
-                }
-                return key
-            }
-        }
-    }
-
-    for (match of matcher.execAll(str)) {
-        chunks.push(str.slice(index, match.index));
-        chunks.push(replacement.replace(placeholder, replacer));
-        index = match.index + match[0].length;
-    }
-    chunks.push(str.slice(index));
-
-    return chunks.join("")
-}
-
-/**
- * Replace a given string by a given matcher.
- * @param {PatternMatcher} matcher The pattern matcher.
- * @param {string} str The string to be replaced.
- * @param {(...strs[])=>string} replace The function to replace each matched part.
- * @returns {string} The replaced string.
- */
-function replaceF(matcher, str, replace) {
-    const chunks = [];
-    let index = 0;
-
-    for (const match of matcher.execAll(str)) {
-        chunks.push(str.slice(index, match.index));
-        chunks.push(String(replace(...match, match.index, match.input)));
-        index = match.index + match[0].length;
-    }
-    chunks.push(str.slice(index));
-
-    return chunks.join("")
-}
-
-/**
- * The class to find patterns as considering escape sequences.
- */
-class PatternMatcher {
-    /**
-     * Initialize this matcher.
-     * @param {RegExp} pattern The pattern to match.
-     * @param {{escaped:boolean}} options The options.
-     */
-    constructor(pattern, { escaped = false } = {}) {
-        if (!(pattern instanceof RegExp)) {
-            throw new TypeError("'pattern' should be a RegExp instance.")
-        }
-        if (!pattern.flags.includes("g")) {
-            throw new Error("'pattern' should contains 'g' flag.")
-        }
-
-        internal.set(this, {
-            pattern: new RegExp(pattern.source, pattern.flags),
-            escaped: Boolean(escaped),
-        });
-    }
-
-    /**
-     * Find the pattern in a given string.
-     * @param {string} str The string to find.
-     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.
-     */
-    *execAll(str) {
-        const { pattern, escaped } = internal.get(this);
-        let match = null;
-        let lastIndex = 0;
-
-        pattern.lastIndex = 0;
-        while ((match = pattern.exec(str)) != null) {
-            if (escaped || !isEscaped(str, match.index)) {
-                lastIndex = pattern.lastIndex;
-                yield match;
-                pattern.lastIndex = lastIndex;
-            }
-        }
-    }
-
-    /**
-     * Check whether the pattern is found in a given string.
-     * @param {string} str The string to check.
-     * @returns {boolean} `true` if the pattern was found in the string.
-     */
-    test(str) {
-        const it = this.execAll(str);
-        const ret = it.next();
-        return !ret.done
-    }
-
-    /**
-     * Replace a given string.
-     * @param {string} str The string to be replaced.
-     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.
-     * @returns {string} The replaced string.
-     */
-    [Symbol.replace](str, replacer) {
-        return typeof replacer === "function"
-            ? replaceF(this, String(str), replacer)
-            : replaceS(this, String(str), String(replacer))
-    }
-}
-
-const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u;
-const has = Function.call.bind(Object.hasOwnProperty);
-
-const READ = Symbol("read");
-const CALL = Symbol("call");
-const CONSTRUCT = Symbol("construct");
-const ESM = Symbol("esm");
-
-const requireCall = { require: { [CALL]: true } };
-
-/**
- * Check whether a given variable is modified or not.
- * @param {Variable} variable The variable to check.
- * @returns {boolean} `true` if the variable is modified.
- */
-function isModifiedGlobal(variable) {
-    return (
-        variable == null ||
-        variable.defs.length !== 0 ||
-        variable.references.some(r => r.isWrite())
-    )
-}
-
-/**
- * Check if the value of a given node is passed through to the parent syntax as-is.
- * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.
- * @param {Node} node A node to check.
- * @returns {boolean} `true` if the node is passed through.
- */
-function isPassThrough(node) {
-    const parent = node.parent;
-
-    switch (parent && parent.type) {
-        case "ConditionalExpression":
-            return parent.consequent === node || parent.alternate === node
-        case "LogicalExpression":
-            return true
-        case "SequenceExpression":
-            return parent.expressions[parent.expressions.length - 1] === node
-
-        default:
-            return false
-    }
-}
-
-/**
- * The reference tracker.
- */
-class ReferenceTracker {
-    /**
-     * Initialize this tracker.
-     * @param {Scope} globalScope The global scope.
-     * @param {object} [options] The options.
-     * @param {"legacy"|"strict"} [options.mode="strict"] The mode to determine the ImportDeclaration's behavior for CJS modules.
-     * @param {string[]} [options.globalObjectNames=["global","self","window"]] The variable names for Global Object.
-     */
-    constructor(
-        globalScope,
-        {
-            mode = "strict",
-            globalObjectNames = ["global", "self", "window"],
-        } = {}
-    ) {
-        this.variableStack = [];
-        this.globalScope = globalScope;
-        this.mode = mode;
-        this.globalObjectNames = globalObjectNames.slice(0);
-    }
-
-    /**
-     * Iterate the references of global variables.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateGlobalReferences(traceMap) {
-        for (const key of Object.keys(traceMap)) {
-            const nextTraceMap = traceMap[key];
-            const path = [key];
-            const variable = this.globalScope.set.get(key);
-
-            if (isModifiedGlobal(variable)) {
-                continue
-            }
-
-            yield* this._iterateVariableReferences(
-                variable,
-                path,
-                nextTraceMap,
-                true
-            );
-        }
-
-        for (const key of this.globalObjectNames) {
-            const path = [];
-            const variable = this.globalScope.set.get(key);
-
-            if (isModifiedGlobal(variable)) {
-                continue
-            }
-
-            yield* this._iterateVariableReferences(
-                variable,
-                path,
-                traceMap,
-                false
-            );
-        }
-    }
-
-    /**
-     * Iterate the references of CommonJS modules.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateCjsReferences(traceMap) {
-        for (const { node } of this.iterateGlobalReferences(requireCall)) {
-            const key = getStringIfConstant(node.arguments[0]);
-            if (key == null || !has(traceMap, key)) {
-                continue
-            }
-
-            const nextTraceMap = traceMap[key];
-            const path = [key];
-
-            if (nextTraceMap[READ]) {
-                yield {
-                    node,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-            yield* this._iteratePropertyReferences(node, path, nextTraceMap);
-        }
-    }
-
-    /**
-     * Iterate the references of ES modules.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *iterateEsmReferences(traceMap) {
-        const programNode = this.globalScope.block;
-
-        for (const node of programNode.body) {
-            if (!IMPORT_TYPE.test(node.type) || node.source == null) {
-                continue
-            }
-            const moduleId = node.source.value;
-
-            if (!has(traceMap, moduleId)) {
-                continue
-            }
-            const nextTraceMap = traceMap[moduleId];
-            const path = [moduleId];
-
-            if (nextTraceMap[READ]) {
-                yield { node, path, type: READ, info: nextTraceMap[READ] };
-            }
-
-            if (node.type === "ExportAllDeclaration") {
-                for (const key of Object.keys(nextTraceMap)) {
-                    const exportTraceMap = nextTraceMap[key];
-                    if (exportTraceMap[READ]) {
-                        yield {
-                            node,
-                            path: path.concat(key),
-                            type: READ,
-                            info: exportTraceMap[READ],
-                        };
-                    }
-                }
-            } else {
-                for (const specifier of node.specifiers) {
-                    const esm = has(nextTraceMap, ESM);
-                    const it = this._iterateImportReferences(
-                        specifier,
-                        path,
-                        esm
-                            ? nextTraceMap
-                            : this.mode === "legacy"
-                            ? Object.assign(
-                                  { default: nextTraceMap },
-                                  nextTraceMap
-                              )
-                            : { default: nextTraceMap }
-                    );
-
-                    if (esm) {
-                        yield* it;
-                    } else {
-                        for (const report of it) {
-                            report.path = report.path.filter(exceptDefault);
-                            if (
-                                report.path.length >= 2 ||
-                                report.type !== READ
-                            ) {
-                                yield report;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Iterate the references for a given variable.
-     * @param {Variable} variable The variable to iterate that references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @param {boolean} shouldReport = The flag to report those references.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {
-        if (this.variableStack.includes(variable)) {
-            return
-        }
-        this.variableStack.push(variable);
-        try {
-            for (const reference of variable.references) {
-                if (!reference.isRead()) {
-                    continue
-                }
-                const node = reference.identifier;
-
-                if (shouldReport && traceMap[READ]) {
-                    yield { node, path, type: READ, info: traceMap[READ] };
-                }
-                yield* this._iteratePropertyReferences(node, path, traceMap);
-            }
-        } finally {
-            this.variableStack.pop();
-        }
-    }
-
-    /**
-     * Iterate the references for a given AST node.
-     * @param rootNode The AST node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    //eslint-disable-next-line complexity
-    *_iteratePropertyReferences(rootNode, path, traceMap) {
-        let node = rootNode;
-        while (isPassThrough(node)) {
-            node = node.parent;
-        }
-
-        const parent = node.parent;
-        if (parent.type === "MemberExpression") {
-            if (parent.object === node) {
-                const key = getPropertyName(parent);
-                if (key == null || !has(traceMap, key)) {
-                    return
-                }
-
-                path = path.concat(key); //eslint-disable-line no-param-reassign
-                const nextTraceMap = traceMap[key];
-                if (nextTraceMap[READ]) {
-                    yield {
-                        node: parent,
-                        path,
-                        type: READ,
-                        info: nextTraceMap[READ],
-                    };
-                }
-                yield* this._iteratePropertyReferences(
-                    parent,
-                    path,
-                    nextTraceMap
-                );
-            }
-            return
-        }
-        if (parent.type === "CallExpression") {
-            if (parent.callee === node && traceMap[CALL]) {
-                yield { node: parent, path, type: CALL, info: traceMap[CALL] };
-            }
-            return
-        }
-        if (parent.type === "NewExpression") {
-            if (parent.callee === node && traceMap[CONSTRUCT]) {
-                yield {
-                    node: parent,
-                    path,
-                    type: CONSTRUCT,
-                    info: traceMap[CONSTRUCT],
-                };
-            }
-            return
-        }
-        if (parent.type === "AssignmentExpression") {
-            if (parent.right === node) {
-                yield* this._iterateLhsReferences(parent.left, path, traceMap);
-                yield* this._iteratePropertyReferences(parent, path, traceMap);
-            }
-            return
-        }
-        if (parent.type === "AssignmentPattern") {
-            if (parent.right === node) {
-                yield* this._iterateLhsReferences(parent.left, path, traceMap);
-            }
-            return
-        }
-        if (parent.type === "VariableDeclarator") {
-            if (parent.init === node) {
-                yield* this._iterateLhsReferences(parent.id, path, traceMap);
-            }
-        }
-    }
-
-    /**
-     * Iterate the references for a given Pattern node.
-     * @param {Node} patternNode The Pattern node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateLhsReferences(patternNode, path, traceMap) {
-        if (patternNode.type === "Identifier") {
-            const variable = findVariable(this.globalScope, patternNode);
-            if (variable != null) {
-                yield* this._iterateVariableReferences(
-                    variable,
-                    path,
-                    traceMap,
-                    false
-                );
-            }
-            return
-        }
-        if (patternNode.type === "ObjectPattern") {
-            for (const property of patternNode.properties) {
-                const key = getPropertyName(property);
-
-                if (key == null || !has(traceMap, key)) {
-                    continue
-                }
-
-                const nextPath = path.concat(key);
-                const nextTraceMap = traceMap[key];
-                if (nextTraceMap[READ]) {
-                    yield {
-                        node: property,
-                        path: nextPath,
-                        type: READ,
-                        info: nextTraceMap[READ],
-                    };
-                }
-                yield* this._iterateLhsReferences(
-                    property.value,
-                    nextPath,
-                    nextTraceMap
-                );
-            }
-            return
-        }
-        if (patternNode.type === "AssignmentPattern") {
-            yield* this._iterateLhsReferences(patternNode.left, path, traceMap);
-        }
-    }
-
-    /**
-     * Iterate the references for a given ModuleSpecifier node.
-     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.
-     * @param {string[]} path The current path.
-     * @param {object} traceMap The trace map.
-     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.
-     */
-    *_iterateImportReferences(specifierNode, path, traceMap) {
-        const type = specifierNode.type;
-
-        if (type === "ImportSpecifier" || type === "ImportDefaultSpecifier") {
-            const key =
-                type === "ImportDefaultSpecifier"
-                    ? "default"
-                    : specifierNode.imported.name;
-            if (!has(traceMap, key)) {
-                return
-            }
-
-            path = path.concat(key); //eslint-disable-line no-param-reassign
-            const nextTraceMap = traceMap[key];
-            if (nextTraceMap[READ]) {
-                yield {
-                    node: specifierNode,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-            yield* this._iterateVariableReferences(
-                findVariable(this.globalScope, specifierNode.local),
-                path,
-                nextTraceMap,
-                false
-            );
-
-            return
-        }
-
-        if (type === "ImportNamespaceSpecifier") {
-            yield* this._iterateVariableReferences(
-                findVariable(this.globalScope, specifierNode.local),
-                path,
-                traceMap,
-                false
-            );
-            return
-        }
-
-        if (type === "ExportSpecifier") {
-            const key = specifierNode.local.name;
-            if (!has(traceMap, key)) {
-                return
-            }
-
-            path = path.concat(key); //eslint-disable-line no-param-reassign
-            const nextTraceMap = traceMap[key];
-            if (nextTraceMap[READ]) {
-                yield {
-                    node: specifierNode,
-                    path,
-                    type: READ,
-                    info: nextTraceMap[READ],
-                };
-            }
-        }
-    }
-}
-
-ReferenceTracker.READ = READ;
-ReferenceTracker.CALL = CALL;
-ReferenceTracker.CONSTRUCT = CONSTRUCT;
-ReferenceTracker.ESM = ESM;
-
-/**
- * This is a predicate function for Array#filter.
- * @param {string} name A name part.
- * @param {number} index The index of the name.
- * @returns {boolean} `false` if it's default.
- */
-function exceptDefault(name, index) {
-    return !(index === 1 && name === "default")
-}
-
-var index = {
-    CALL,
-    CONSTRUCT,
-    ESM,
-    findVariable,
-    getFunctionHeadLocation,
-    getFunctionNameWithKind,
-    getInnermostScope,
-    getPropertyName,
-    getStaticValue,
-    getStringIfConstant,
-    hasSideEffect,
-    isArrowToken,
-    isClosingBraceToken,
-    isClosingBracketToken,
-    isClosingParenToken,
-    isColonToken,
-    isCommaToken,
-    isCommentToken,
-    isNotArrowToken,
-    isNotClosingBraceToken,
-    isNotClosingBracketToken,
-    isNotClosingParenToken,
-    isNotColonToken,
-    isNotCommaToken,
-    isNotCommentToken,
-    isNotOpeningBraceToken,
-    isNotOpeningBracketToken,
-    isNotOpeningParenToken,
-    isNotSemicolonToken,
-    isOpeningBraceToken,
-    isOpeningBracketToken,
-    isOpeningParenToken,
-    isParenthesized,
-    isSemicolonToken,
-    PatternMatcher,
-    READ,
-    ReferenceTracker,
-};
-
-export default index;
-export { CALL, CONSTRUCT, ESM, PatternMatcher, READ, ReferenceTracker, findVariable, getFunctionHeadLocation, getFunctionNameWithKind, getInnermostScope, getPropertyName, getStaticValue, getStringIfConstant, hasSideEffect, isArrowToken, isClosingBraceToken, isClosingBracketToken, isClosingParenToken, isColonToken, isCommaToken, isCommentToken, isNotArrowToken, isNotClosingBraceToken, isNotClosingBracketToken, isNotClosingParenToken, isNotColonToken, isNotCommaToken, isNotCommentToken, isNotOpeningBraceToken, isNotOpeningBracketToken, isNotOpeningParenToken, isNotSemicolonToken, isOpeningBraceToken, isOpeningBracketToken, isOpeningParenToken, isParenthesized, isSemicolonToken };
-//# sourceMappingURL=index.mjs.map
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs.map b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs.map
deleted file mode 100644
index 62ad50a..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/index.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.mjs","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n    const location = node.range[0]\n\n    let scope = initialScope\n    let found = false\n    do {\n        found = false\n        for (const childScope of scope.childScopes) {\n            const range = childScope.block.range\n\n            if (range[0] <= location && location < range[1]) {\n                scope = childScope\n                found = true\n                break\n            }\n        }\n    } while (found)\n\n    return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n    let name = \"\"\n    let scope = initialScope\n\n    if (typeof nameOrNode === \"string\") {\n        name = nameOrNode\n    } else {\n        name = nameOrNode.name\n        scope = getInnermostScope(scope, nameOrNode)\n    }\n\n    while (scope != null) {\n        const variable = scope.set.get(name)\n        if (variable != null) {\n            return variable\n        }\n        scope = scope.upper\n    }\n\n    return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n    return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n    return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n    return token.value === \"=>\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n    return token.value === \",\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n    return token.value === \";\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n    return token.value === \":\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n    return token.value === \"(\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n    return token.value === \")\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n    return token.value === \"[\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n    return token.value === \"]\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n    return token.value === \"{\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n    return token.value === \"}\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n    return (\n        token.type === \"Line\" ||\n        token.type === \"Block\" ||\n        token.type === \"Shebang\"\n    )\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n    return node.id\n        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n        : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n    const parent = node.parent\n    let start = null\n    let end = null\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n        start = arrowToken.loc.start\n        end = arrowToken.loc.end\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        start = parent.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    } else {\n        start = node.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    }\n\n    return {\n        start: Object.assign({}, start),\n        end: Object.assign({}, end),\n    }\n}\n","/* globals BigInt, globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n    typeof globalThis !== \"undefined\"\n        ? globalThis\n        : typeof self !== \"undefined\"\n        ? self\n        : typeof window !== \"undefined\"\n        ? window\n        : typeof global !== \"undefined\"\n        ? global\n        : {}\n\nconst builtinNames = Object.freeze(\n    new Set([\n        \"Array\",\n        \"ArrayBuffer\",\n        \"BigInt\",\n        \"BigInt64Array\",\n        \"BigUint64Array\",\n        \"Boolean\",\n        \"DataView\",\n        \"Date\",\n        \"decodeURI\",\n        \"decodeURIComponent\",\n        \"encodeURI\",\n        \"encodeURIComponent\",\n        \"escape\",\n        \"Float32Array\",\n        \"Float64Array\",\n        \"Function\",\n        \"Infinity\",\n        \"Int16Array\",\n        \"Int32Array\",\n        \"Int8Array\",\n        \"isFinite\",\n        \"isNaN\",\n        \"isPrototypeOf\",\n        \"JSON\",\n        \"Map\",\n        \"Math\",\n        \"NaN\",\n        \"Number\",\n        \"Object\",\n        \"parseFloat\",\n        \"parseInt\",\n        \"Promise\",\n        \"Proxy\",\n        \"Reflect\",\n        \"RegExp\",\n        \"Set\",\n        \"String\",\n        \"Symbol\",\n        \"Uint16Array\",\n        \"Uint32Array\",\n        \"Uint8Array\",\n        \"Uint8ClampedArray\",\n        \"undefined\",\n        \"unescape\",\n        \"WeakMap\",\n        \"WeakSet\",\n    ])\n)\nconst callAllowed = new Set(\n    [\n        Array.isArray,\n        typeof BigInt === \"function\" ? BigInt : undefined,\n        Boolean,\n        Date,\n        Date.parse,\n        decodeURI,\n        decodeURIComponent,\n        encodeURI,\n        encodeURIComponent,\n        escape,\n        isFinite,\n        isNaN,\n        isPrototypeOf,\n        ...Object.getOwnPropertyNames(Math)\n            .map(k => Math[k])\n            .filter(f => typeof f === \"function\"),\n        Number,\n        Number.isFinite,\n        Number.isNaN,\n        Number.parseFloat,\n        Number.parseInt,\n        Object,\n        Object.entries,\n        Object.is,\n        Object.isExtensible,\n        Object.isFrozen,\n        Object.isSealed,\n        Object.keys,\n        Object.values,\n        parseFloat,\n        parseInt,\n        RegExp,\n        String,\n        String.fromCharCode,\n        String.fromCodePoint,\n        String.raw,\n        Symbol,\n        Symbol.for,\n        Symbol.keyFor,\n        unescape,\n    ].filter(f => typeof f === \"function\")\n)\nconst callPassThrough = new Set([\n    Object.freeze,\n    Object.preventExtensions,\n    Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n    let x = object\n    while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n        const d = Object.getOwnPropertyDescriptor(x, name)\n        if (d) {\n            return d\n        }\n        x = Object.getPrototypeOf(x)\n    }\n    return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n    const d = getPropertyDescriptor(object, name)\n    return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n    const valueList = []\n\n    for (let i = 0; i < nodeList.length; ++i) {\n        const elementNode = nodeList[i]\n\n        if (elementNode == null) {\n            valueList.length = i + 1\n        } else if (elementNode.type === \"SpreadElement\") {\n            const argument = getStaticValueR(elementNode.argument, initialScope)\n            if (argument == null) {\n                return null\n            }\n            valueList.push(...argument.value)\n        } else {\n            const element = getStaticValueR(elementNode, initialScope)\n            if (element == null) {\n                return null\n            }\n            valueList.push(element.value)\n        }\n    }\n\n    return valueList\n}\n\nconst operations = Object.freeze({\n    ArrayExpression(node, initialScope) {\n        const elements = getElementValues(node.elements, initialScope)\n        return elements != null ? { value: elements } : null\n    },\n\n    AssignmentExpression(node, initialScope) {\n        if (node.operator === \"=\") {\n            return getStaticValueR(node.right, initialScope)\n        }\n        return null\n    },\n\n    //eslint-disable-next-line complexity\n    BinaryExpression(node, initialScope) {\n        if (node.operator === \"in\" || node.operator === \"instanceof\") {\n            // Not supported.\n            return null\n        }\n\n        const left = getStaticValueR(node.left, initialScope)\n        const right = getStaticValueR(node.right, initialScope)\n        if (left != null && right != null) {\n            switch (node.operator) {\n                case \"==\":\n                    return { value: left.value == right.value } //eslint-disable-line eqeqeq\n                case \"!=\":\n                    return { value: left.value != right.value } //eslint-disable-line eqeqeq\n                case \"===\":\n                    return { value: left.value === right.value }\n                case \"!==\":\n                    return { value: left.value !== right.value }\n                case \"<\":\n                    return { value: left.value < right.value }\n                case \"<=\":\n                    return { value: left.value <= right.value }\n                case \">\":\n                    return { value: left.value > right.value }\n                case \">=\":\n                    return { value: left.value >= right.value }\n                case \"<<\":\n                    return { value: left.value << right.value }\n                case \">>\":\n                    return { value: left.value >> right.value }\n                case \">>>\":\n                    return { value: left.value >>> right.value }\n                case \"+\":\n                    return { value: left.value + right.value }\n                case \"-\":\n                    return { value: left.value - right.value }\n                case \"*\":\n                    return { value: left.value * right.value }\n                case \"/\":\n                    return { value: left.value / right.value }\n                case \"%\":\n                    return { value: left.value % right.value }\n                case \"**\":\n                    return { value: Math.pow(left.value, right.value) }\n                case \"|\":\n                    return { value: left.value | right.value }\n                case \"^\":\n                    return { value: left.value ^ right.value }\n                case \"&\":\n                    return { value: left.value & right.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n\n    CallExpression(node, initialScope) {\n        const calleeNode = node.callee\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (args != null) {\n            if (calleeNode.type === \"MemberExpression\") {\n                const object = getStaticValueR(calleeNode.object, initialScope)\n                const property = calleeNode.computed\n                    ? getStaticValueR(calleeNode.property, initialScope)\n                    : { value: calleeNode.property.name }\n\n                if (object != null && property != null) {\n                    const receiver = object.value\n                    const methodName = property.value\n                    if (callAllowed.has(receiver[methodName])) {\n                        return { value: receiver[methodName](...args) }\n                    }\n                    if (callPassThrough.has(receiver[methodName])) {\n                        return { value: args[0] }\n                    }\n                }\n            } else {\n                const callee = getStaticValueR(calleeNode, initialScope)\n                if (callee != null) {\n                    const func = callee.value\n                    if (callAllowed.has(func)) {\n                        return { value: func(...args) }\n                    }\n                    if (callPassThrough.has(func)) {\n                        return { value: args[0] }\n                    }\n                }\n            }\n        }\n\n        return null\n    },\n\n    ConditionalExpression(node, initialScope) {\n        const test = getStaticValueR(node.test, initialScope)\n        if (test != null) {\n            return test.value\n                ? getStaticValueR(node.consequent, initialScope)\n                : getStaticValueR(node.alternate, initialScope)\n        }\n        return null\n    },\n\n    ExpressionStatement(node, initialScope) {\n        return getStaticValueR(node.expression, initialScope)\n    },\n\n    Identifier(node, initialScope) {\n        if (initialScope != null) {\n            const variable = findVariable(initialScope, node)\n\n            // Built-in globals.\n            if (\n                variable != null &&\n                variable.defs.length === 0 &&\n                builtinNames.has(variable.name) &&\n                variable.name in globalObject\n            ) {\n                return { value: globalObject[variable.name] }\n            }\n\n            // Constants.\n            if (variable != null && variable.defs.length === 1) {\n                const def = variable.defs[0]\n                if (\n                    def.parent &&\n                    def.parent.kind === \"const\" &&\n                    // TODO(mysticatea): don't support destructuring here.\n                    def.node.id.type === \"Identifier\"\n                ) {\n                    return getStaticValueR(def.node.init, initialScope)\n                }\n            }\n        }\n        return null\n    },\n\n    Literal(node) {\n        //istanbul ignore if : this is implementation-specific behavior.\n        if ((node.regex != null || node.bigint != null) && node.value == null) {\n            // It was a RegExp/BigInt literal, but Node.js didn't support it.\n            return null\n        }\n        return { value: node.value }\n    },\n\n    LogicalExpression(node, initialScope) {\n        const left = getStaticValueR(node.left, initialScope)\n        if (left != null) {\n            if (\n                (node.operator === \"||\" && Boolean(left.value) === true) ||\n                (node.operator === \"&&\" && Boolean(left.value) === false)\n            ) {\n                return left\n            }\n\n            const right = getStaticValueR(node.right, initialScope)\n            if (right != null) {\n                return right\n            }\n        }\n\n        return null\n    },\n\n    MemberExpression(node, initialScope) {\n        const object = getStaticValueR(node.object, initialScope)\n        const property = node.computed\n            ? getStaticValueR(node.property, initialScope)\n            : { value: node.property.name }\n\n        if (\n            object != null &&\n            property != null &&\n            !isGetter(object.value, property.value)\n        ) {\n            return { value: object.value[property.value] }\n        }\n        return null\n    },\n\n    NewExpression(node, initialScope) {\n        const callee = getStaticValueR(node.callee, initialScope)\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (callee != null && args != null) {\n            const Func = callee.value\n            if (callAllowed.has(Func)) {\n                return { value: new Func(...args) }\n            }\n        }\n\n        return null\n    },\n\n    ObjectExpression(node, initialScope) {\n        const object = {}\n\n        for (const propertyNode of node.properties) {\n            if (propertyNode.type === \"Property\") {\n                if (propertyNode.kind !== \"init\") {\n                    return null\n                }\n                const key = propertyNode.computed\n                    ? getStaticValueR(propertyNode.key, initialScope)\n                    : { value: propertyNode.key.name }\n                const value = getStaticValueR(propertyNode.value, initialScope)\n                if (key == null || value == null) {\n                    return null\n                }\n                object[key.value] = value.value\n            } else if (\n                propertyNode.type === \"SpreadElement\" ||\n                propertyNode.type === \"ExperimentalSpreadProperty\"\n            ) {\n                const argument = getStaticValueR(\n                    propertyNode.argument,\n                    initialScope\n                )\n                if (argument == null) {\n                    return null\n                }\n                Object.assign(object, argument.value)\n            } else {\n                return null\n            }\n        }\n\n        return { value: object }\n    },\n\n    SequenceExpression(node, initialScope) {\n        const last = node.expressions[node.expressions.length - 1]\n        return getStaticValueR(last, initialScope)\n    },\n\n    TaggedTemplateExpression(node, initialScope) {\n        const tag = getStaticValueR(node.tag, initialScope)\n        const expressions = getElementValues(\n            node.quasi.expressions,\n            initialScope\n        )\n\n        if (tag != null && expressions != null) {\n            const func = tag.value\n            const strings = node.quasi.quasis.map(q => q.value.cooked)\n            strings.raw = node.quasi.quasis.map(q => q.value.raw)\n\n            if (func === String.raw) {\n                return { value: func(strings, ...expressions) }\n            }\n        }\n\n        return null\n    },\n\n    TemplateLiteral(node, initialScope) {\n        const expressions = getElementValues(node.expressions, initialScope)\n        if (expressions != null) {\n            let value = node.quasis[0].value.cooked\n            for (let i = 0; i < expressions.length; ++i) {\n                value += expressions[i]\n                value += node.quasis[i + 1].value.cooked\n            }\n            return { value }\n        }\n        return null\n    },\n\n    UnaryExpression(node, initialScope) {\n        if (node.operator === \"delete\") {\n            // Not supported.\n            return null\n        }\n        if (node.operator === \"void\") {\n            return { value: undefined }\n        }\n\n        const arg = getStaticValueR(node.argument, initialScope)\n        if (arg != null) {\n            switch (node.operator) {\n                case \"-\":\n                    return { value: -arg.value }\n                case \"+\":\n                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n                case \"!\":\n                    return { value: !arg.value }\n                case \"~\":\n                    return { value: ~arg.value }\n                case \"typeof\":\n                    return { value: typeof arg.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n        return operations[node.type](node, initialScope)\n    }\n    return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n    try {\n        return getStaticValueR(node, initialScope)\n    } catch (_error) {\n        return null\n    }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n    // Handle the literals that the platform doesn't support natively.\n    if (node && node.type === \"Literal\" && node.value === null) {\n        if (node.regex) {\n            return `/${node.regex.pattern}/${node.regex.flags}`\n        }\n        if (node.bigint) {\n            return node.bigint\n        }\n    }\n\n    const evaluated = getStaticValue(node, initialScope)\n    return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n    switch (node.type) {\n        case \"MemberExpression\":\n            if (node.computed) {\n                return getStringIfConstant(node.property, initialScope)\n            }\n            return node.property.name\n\n        case \"Property\":\n        case \"MethodDefinition\":\n            if (node.computed) {\n                return getStringIfConstant(node.key, initialScope)\n            }\n            if (node.key.type === \"Literal\") {\n                return String(node.key.value)\n            }\n            return node.key.name\n\n        // no default\n    }\n\n    return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @returns {string} The name and kind of the function node.\n */\nexport function getFunctionNameWithKind(node) {\n    const parent = node.parent\n    const tokens = []\n\n    if (parent.type === \"MethodDefinition\" && parent.static) {\n        tokens.push(\"static\")\n    }\n    if (node.async) {\n        tokens.push(\"async\")\n    }\n    if (node.generator) {\n        tokens.push(\"generator\")\n    }\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        tokens.push(\"arrow\", \"function\")\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        if (parent.kind === \"constructor\") {\n            return \"constructor\"\n        }\n        if (parent.kind === \"get\") {\n            tokens.push(\"getter\")\n        } else if (parent.kind === \"set\") {\n            tokens.push(\"setter\")\n        } else {\n            tokens.push(\"method\")\n        }\n    } else {\n        tokens.push(\"function\")\n    }\n\n    if (node.id) {\n        tokens.push(`'${node.id.name}'`)\n    } else {\n        const name = getPropertyName(parent)\n\n        if (name) {\n            tokens.push(`'${name}'`)\n        }\n    }\n\n    return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n    new Set([\n        \"==\",\n        \"!=\",\n        \"<\",\n        \"<=\",\n        \">\",\n        \">=\",\n        \"<<\",\n        \">>\",\n        \">>>\",\n        \"+\",\n        \"-\",\n        \"*\",\n        \"/\",\n        \"%\",\n        \"|\",\n        \"^\",\n        \"&\",\n        \"in\",\n    ])\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\nconst visitor = Object.freeze(\n    Object.assign(Object.create(null), {\n        $visit(node, options, visitorKeys) {\n            const { type } = node\n\n            if (typeof this[type] === \"function\") {\n                return this[type](node, options, visitorKeys)\n            }\n\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n\n        $visitChildren(node, options, visitorKeys) {\n            const { type } = node\n\n            for (const key of visitorKeys[type] || evk.getKeys(node)) {\n                const value = node[key]\n\n                if (Array.isArray(value)) {\n                    for (const element of value) {\n                        if (\n                            element &&\n                            this.$visit(element, options, visitorKeys)\n                        ) {\n                            return true\n                        }\n                    }\n                } else if (value && this.$visit(value, options, visitorKeys)) {\n                    return true\n                }\n            }\n\n            return false\n        },\n\n        ArrowFunctionExpression() {\n            return false\n        },\n        AssignmentExpression() {\n            return true\n        },\n        AwaitExpression() {\n            return true\n        },\n        BinaryExpression(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionBinaryOps.has(node.operator) &&\n                (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        CallExpression() {\n            return true\n        },\n        FunctionExpression() {\n            return false\n        },\n        ImportExpression() {\n            return true\n        },\n        MemberExpression(node, options, visitorKeys) {\n            if (options.considerGetters) {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.property.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        MethodDefinition(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        NewExpression() {\n            return true\n        },\n        Property(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UnaryExpression(node, options, visitorKeys) {\n            if (node.operator === \"delete\") {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionUnaryOps.has(node.operator) &&\n                node.argument.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UpdateExpression() {\n            return true\n        },\n        YieldExpression() {\n            return true\n        },\n    })\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n    node,\n    sourceCode,\n    { considerGetters = false, considerImplicitTypeConversion = false } = {}\n) {\n    return visitor.$visit(\n        node,\n        { considerGetters, considerImplicitTypeConversion },\n        sourceCode.visitorKeys || evk.KEYS\n    )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n    const parent = node.parent\n\n    switch (parent.type) {\n        case \"CallExpression\":\n        case \"NewExpression\":\n            if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n                return sourceCode.getTokenAfter(\n                    parent.callee,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"DoWhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getTokenAfter(\n                    parent.body,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"IfStatement\":\n        case \"WhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"ImportExpression\":\n            if (parent.source === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"SwitchStatement\":\n            if (parent.discriminant === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"WithStatement\":\n            if (parent.object === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        default:\n            return null\n    }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n    timesOrNode,\n    nodeOrSourceCode,\n    optionalSourceCode\n) {\n    let times, node, sourceCode, maybeLeftParen, maybeRightParen\n    if (typeof timesOrNode === \"number\") {\n        times = timesOrNode | 0\n        node = nodeOrSourceCode\n        sourceCode = optionalSourceCode\n        if (!(times >= 1)) {\n            throw new TypeError(\"'times' should be a positive integer.\")\n        }\n    } else {\n        times = 1\n        node = timesOrNode\n        sourceCode = nodeOrSourceCode\n    }\n\n    if (node == null) {\n        return false\n    }\n\n    maybeLeftParen = maybeRightParen = node\n    do {\n        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n    } while (\n        maybeLeftParen != null &&\n        maybeRightParen != null &&\n        isOpeningParenToken(maybeLeftParen) &&\n        isClosingParenToken(maybeRightParen) &&\n        // Avoid false positive such as `if (a) {}`\n        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n        --times > 0\n    )\n\n    return times === 0\n}\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n    let escaped = false\n    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n        escaped = !escaped\n    }\n    return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n    const chunks = []\n    let index = 0\n\n    /** @type {RegExpExecArray} */\n    let match = null\n\n    /**\n     * @param {string} key The placeholder.\n     * @returns {string} The replaced string.\n     */\n    function replacer(key) {\n        switch (key) {\n            case \"$$\":\n                return \"$\"\n            case \"$&\":\n                return match[0]\n            case \"$`\":\n                return str.slice(0, match.index)\n            case \"$'\":\n                return str.slice(match.index + match[0].length)\n            default: {\n                const i = key.slice(1)\n                if (i in match) {\n                    return match[i]\n                }\n                return key\n            }\n        }\n    }\n\n    for (match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(replacement.replace(placeholder, replacer))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n    const chunks = []\n    let index = 0\n\n    for (const match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(String(replace(...match, match.index, match.input)))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n    /**\n     * Initialize this matcher.\n     * @param {RegExp} pattern The pattern to match.\n     * @param {{escaped:boolean}} options The options.\n     */\n    constructor(pattern, { escaped = false } = {}) {\n        if (!(pattern instanceof RegExp)) {\n            throw new TypeError(\"'pattern' should be a RegExp instance.\")\n        }\n        if (!pattern.flags.includes(\"g\")) {\n            throw new Error(\"'pattern' should contains 'g' flag.\")\n        }\n\n        internal.set(this, {\n            pattern: new RegExp(pattern.source, pattern.flags),\n            escaped: Boolean(escaped),\n        })\n    }\n\n    /**\n     * Find the pattern in a given string.\n     * @param {string} str The string to find.\n     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.\n     */\n    *execAll(str) {\n        const { pattern, escaped } = internal.get(this)\n        let match = null\n        let lastIndex = 0\n\n        pattern.lastIndex = 0\n        while ((match = pattern.exec(str)) != null) {\n            if (escaped || !isEscaped(str, match.index)) {\n                lastIndex = pattern.lastIndex\n                yield match\n                pattern.lastIndex = lastIndex\n            }\n        }\n    }\n\n    /**\n     * Check whether the pattern is found in a given string.\n     * @param {string} str The string to check.\n     * @returns {boolean} `true` if the pattern was found in the string.\n     */\n    test(str) {\n        const it = this.execAll(str)\n        const ret = it.next()\n        return !ret.done\n    }\n\n    /**\n     * Replace a given string.\n     * @param {string} str The string to be replaced.\n     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n     * @returns {string} The replaced string.\n     */\n    [Symbol.replace](str, replacer) {\n        return typeof replacer === \"function\"\n            ? replaceF(this, String(str), replacer)\n            : replaceS(this, String(str), String(replacer))\n    }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n    return (\n        variable == null ||\n        variable.defs.length !== 0 ||\n        variable.references.some(r => r.isWrite())\n    )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n    const parent = node.parent\n\n    switch (parent && parent.type) {\n        case \"ConditionalExpression\":\n            return parent.consequent === node || parent.alternate === node\n        case \"LogicalExpression\":\n            return true\n        case \"SequenceExpression\":\n            return parent.expressions[parent.expressions.length - 1] === node\n\n        default:\n            return false\n    }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n    /**\n     * Initialize this tracker.\n     * @param {Scope} globalScope The global scope.\n     * @param {object} [options] The options.\n     * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n     * @param {string[]} [options.globalObjectNames=[\"global\",\"self\",\"window\"]] The variable names for Global Object.\n     */\n    constructor(\n        globalScope,\n        {\n            mode = \"strict\",\n            globalObjectNames = [\"global\", \"self\", \"window\"],\n        } = {}\n    ) {\n        this.variableStack = []\n        this.globalScope = globalScope\n        this.mode = mode\n        this.globalObjectNames = globalObjectNames.slice(0)\n    }\n\n    /**\n     * Iterate the references of global variables.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateGlobalReferences(traceMap) {\n        for (const key of Object.keys(traceMap)) {\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                nextTraceMap,\n                true\n            )\n        }\n\n        for (const key of this.globalObjectNames) {\n            const path = []\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                traceMap,\n                false\n            )\n        }\n    }\n\n    /**\n     * Iterate the references of CommonJS modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateCjsReferences(traceMap) {\n        for (const { node } of this.iterateGlobalReferences(requireCall)) {\n            const key = getStringIfConstant(node.arguments[0])\n            if (key == null || !has(traceMap, key)) {\n                continue\n            }\n\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n\n            if (nextTraceMap[READ]) {\n                yield {\n                    node,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n        }\n    }\n\n    /**\n     * Iterate the references of ES modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateEsmReferences(traceMap) {\n        const programNode = this.globalScope.block\n\n        for (const node of programNode.body) {\n            if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n                continue\n            }\n            const moduleId = node.source.value\n\n            if (!has(traceMap, moduleId)) {\n                continue\n            }\n            const nextTraceMap = traceMap[moduleId]\n            const path = [moduleId]\n\n            if (nextTraceMap[READ]) {\n                yield { node, path, type: READ, info: nextTraceMap[READ] }\n            }\n\n            if (node.type === \"ExportAllDeclaration\") {\n                for (const key of Object.keys(nextTraceMap)) {\n                    const exportTraceMap = nextTraceMap[key]\n                    if (exportTraceMap[READ]) {\n                        yield {\n                            node,\n                            path: path.concat(key),\n                            type: READ,\n                            info: exportTraceMap[READ],\n                        }\n                    }\n                }\n            } else {\n                for (const specifier of node.specifiers) {\n                    const esm = has(nextTraceMap, ESM)\n                    const it = this._iterateImportReferences(\n                        specifier,\n                        path,\n                        esm\n                            ? nextTraceMap\n                            : this.mode === \"legacy\"\n                            ? Object.assign(\n                                  { default: nextTraceMap },\n                                  nextTraceMap\n                              )\n                            : { default: nextTraceMap }\n                    )\n\n                    if (esm) {\n                        yield* it\n                    } else {\n                        for (const report of it) {\n                            report.path = report.path.filter(exceptDefault)\n                            if (\n                                report.path.length >= 2 ||\n                                report.type !== READ\n                            ) {\n                                yield report\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given variable.\n     * @param {Variable} variable The variable to iterate that references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @param {boolean} shouldReport = The flag to report those references.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n        if (this.variableStack.includes(variable)) {\n            return\n        }\n        this.variableStack.push(variable)\n        try {\n            for (const reference of variable.references) {\n                if (!reference.isRead()) {\n                    continue\n                }\n                const node = reference.identifier\n\n                if (shouldReport && traceMap[READ]) {\n                    yield { node, path, type: READ, info: traceMap[READ] }\n                }\n                yield* this._iteratePropertyReferences(node, path, traceMap)\n            }\n        } finally {\n            this.variableStack.pop()\n        }\n    }\n\n    /**\n     * Iterate the references for a given AST node.\n     * @param rootNode The AST node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    //eslint-disable-next-line complexity\n    *_iteratePropertyReferences(rootNode, path, traceMap) {\n        let node = rootNode\n        while (isPassThrough(node)) {\n            node = node.parent\n        }\n\n        const parent = node.parent\n        if (parent.type === \"MemberExpression\") {\n            if (parent.object === node) {\n                const key = getPropertyName(parent)\n                if (key == null || !has(traceMap, key)) {\n                    return\n                }\n\n                path = path.concat(key) //eslint-disable-line no-param-reassign\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: parent,\n                        path,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iteratePropertyReferences(\n                    parent,\n                    path,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (parent.type === \"CallExpression\") {\n            if (parent.callee === node && traceMap[CALL]) {\n                yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n            }\n            return\n        }\n        if (parent.type === \"NewExpression\") {\n            if (parent.callee === node && traceMap[CONSTRUCT]) {\n                yield {\n                    node: parent,\n                    path,\n                    type: CONSTRUCT,\n                    info: traceMap[CONSTRUCT],\n                }\n            }\n            return\n        }\n        if (parent.type === \"AssignmentExpression\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n                yield* this._iteratePropertyReferences(parent, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"AssignmentPattern\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"VariableDeclarator\") {\n            if (parent.init === node) {\n                yield* this._iterateLhsReferences(parent.id, path, traceMap)\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given Pattern node.\n     * @param {Node} patternNode The Pattern node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateLhsReferences(patternNode, path, traceMap) {\n        if (patternNode.type === \"Identifier\") {\n            const variable = findVariable(this.globalScope, patternNode)\n            if (variable != null) {\n                yield* this._iterateVariableReferences(\n                    variable,\n                    path,\n                    traceMap,\n                    false\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"ObjectPattern\") {\n            for (const property of patternNode.properties) {\n                const key = getPropertyName(property)\n\n                if (key == null || !has(traceMap, key)) {\n                    continue\n                }\n\n                const nextPath = path.concat(key)\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: property,\n                        path: nextPath,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iterateLhsReferences(\n                    property.value,\n                    nextPath,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"AssignmentPattern\") {\n            yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n        }\n    }\n\n    /**\n     * Iterate the references for a given ModuleSpecifier node.\n     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateImportReferences(specifierNode, path, traceMap) {\n        const type = specifierNode.type\n\n        if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n            const key =\n                type === \"ImportDefaultSpecifier\"\n                    ? \"default\"\n                    : specifierNode.imported.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                nextTraceMap,\n                false\n            )\n\n            return\n        }\n\n        if (type === \"ImportNamespaceSpecifier\") {\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                traceMap,\n                false\n            )\n            return\n        }\n\n        if (type === \"ExportSpecifier\") {\n            const key = specifierNode.local.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n        }\n    }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n    return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    READ,\n    ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\nexport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/package.json b/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/package.json
deleted file mode 100644
index 8af7d4f..0000000
--- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-utils/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "name": "eslint-utils",
-  "version": "1.4.3",
-  "description": "Utilities for ESLint plugins.",
-  "engines": {
-    "node": ">=6"
-  },
-  "sideEffects": false,
-  "main": "index",
-  "module": "index.mjs",
-  "files": [
-    "index.*"
-  ],
-  "dependencies": {
-    "eslint-visitor-keys": "^1.1.0"
-  },
-  "devDependencies": {
-    "@mysticatea/eslint-plugin": "^12.0.0",
-    "codecov": "^3.6.1",
-    "dot-prop": "^4.2.0",
-    "eslint": "^6.5.1",
-    "esm": "^3.2.25",
-    "espree": "^6.1.1",
-    "mocha": "^6.2.2",
-    "npm-run-all": "^4.1.5",
-    "nyc": "^14.1.1",
-    "opener": "^1.5.1",
-    "rimraf": "^3.0.0",
-    "rollup": "^1.25.0",
-    "rollup-plugin-sourcemaps": "^0.4.2",
-    "vuepress": "^1.2.0",
-    "warun": "^1.0.0"
-  },
-  "scripts": {
-    "prebuild": "npm run -s clean",
-    "build": "rollup -c",
-    "clean": "rimraf .nyc_output coverage index.*",
-    "codecov": "nyc report -r lcovonly && codecov",
-    "coverage": "opener ./coverage/lcov-report/index.html",
-    "docs:build": "vuepress build docs",
-    "docs:watch": "vuepress dev docs",
-    "lint": "eslint src test",
-    "test": "run-s lint build test:mocha",
-    "test:mocha": "nyc mocha --reporter dot \"test/*.js\"",
-    "preversion": "npm test && npm run -s build",
-    "postversion": "git push && git push --tags",
-    "prewatch": "npm run -s clean",
-    "watch": "warun \"{src,test}/**/*.js\" -- npm run -s test:mocha"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mysticatea/eslint-utils.git"
-  },
-  "keywords": [
-    "eslint"
-  ],
-  "author": "Toru Nagashima",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/mysticatea/eslint-utils/issues"
-  },
-  "homepage": "https://github.com/mysticatea/eslint-utils#readme"
-}
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/CHANGELOG.md b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/CHANGELOG.md
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/CHANGELOG.md
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/CHANGELOG.md
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/LICENSE b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/LICENSE
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/LICENSE
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/LICENSE
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/README.md b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/README.md
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/README.md
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/README.md
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/bin/semver.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/bin/semver.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/bin/semver.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/bin/semver.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/comparator.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/comparator.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/classes/comparator.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/comparator.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/index.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/classes/index.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/range.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/range.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/classes/range.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/range.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/semver.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/semver.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/classes/semver.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/classes/semver.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/clean.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/clean.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/clean.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/clean.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/cmp.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/cmp.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/cmp.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/cmp.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/coerce.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/coerce.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/coerce.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/coerce.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-build.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare-build.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-build.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare-build.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-loose.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare-loose.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-loose.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare-loose.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/compare.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/diff.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/diff.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/diff.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/diff.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/eq.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/eq.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/eq.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/eq.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/gt.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/gt.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/gt.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/gt.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/gte.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/gte.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/gte.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/gte.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/inc.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/inc.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/inc.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/inc.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/lt.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/lt.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/lt.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/lt.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/lte.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/lte.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/lte.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/lte.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/major.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/major.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/major.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/major.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/minor.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/minor.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/minor.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/minor.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/neq.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/neq.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/neq.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/neq.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/parse.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/parse.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/parse.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/parse.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/patch.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/patch.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/patch.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/patch.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/prerelease.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/prerelease.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/prerelease.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/prerelease.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/rcompare.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/rcompare.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/rcompare.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/rcompare.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/rsort.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/rsort.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/rsort.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/rsort.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/satisfies.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/satisfies.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/satisfies.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/satisfies.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/sort.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/sort.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/sort.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/sort.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/valid.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/valid.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/functions/valid.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/functions/valid.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/index.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/index.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/constants.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/constants.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/internal/constants.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/constants.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/debug.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/debug.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/internal/debug.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/debug.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/identifiers.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/identifiers.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/internal/identifiers.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/identifiers.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/re.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/re.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/internal/re.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/internal/re.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/package.json b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/package.json
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/package.json
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/package.json
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/preload.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/preload.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/preload.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/preload.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/range.bnf b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/range.bnf
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/range.bnf
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/range.bnf
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/gtr.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/gtr.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/gtr.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/gtr.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/intersects.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/intersects.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/intersects.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/intersects.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/ltr.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/ltr.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/ltr.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/ltr.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/max-satisfying.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/max-satisfying.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/max-satisfying.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/max-satisfying.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-satisfying.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/min-satisfying.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-satisfying.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/min-satisfying.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-version.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/min-version.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-version.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/min-version.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/outside.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/outside.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/outside.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/outside.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/simplify.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/simplify.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/simplify.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/simplify.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/subset.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/subset.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/subset.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/subset.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/to-comparators.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/to-comparators.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/to-comparators.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/to-comparators.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/valid.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/valid.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/semver/ranges/valid.js
rename to node_modules/@typescript-eslint/eslint-plugin/node_modules/semver/ranges/valid.js
diff --git a/node_modules/@typescript-eslint/eslint-plugin/package.json b/node_modules/@typescript-eslint/eslint-plugin/package.json
index e2fa131..04c205c 100644
--- a/node_modules/@typescript-eslint/eslint-plugin/package.json
+++ b/node_modules/@typescript-eslint/eslint-plugin/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/eslint-plugin",
-  "version": "2.22.0",
+  "version": "4.3.0",
   "description": "TypeScript plugin for ESLint",
   "keywords": [
     "eslint",
@@ -9,7 +9,7 @@
     "typescript"
   ],
   "engines": {
-    "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+    "node": "^10.12.0 || >=12.0.0"
   },
   "files": [
     "dist",
@@ -33,6 +33,7 @@
     "check:docs": "jest tests/docs.test.ts --runTestsByPath --silent --runInBand",
     "check:configs": "jest tests/configs.test.ts --runTestsByPath --silent --runInBand",
     "clean": "tsc -b tsconfig.build.json --clean",
+    "postclean": "rimraf dist",
     "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
     "generate:configs": "../../node_modules/.bin/ts-node --files --transpile-only tools/generate-configs.ts",
     "generate:rules-lists": "../../node_modules/.bin/ts-node --files --transpile-only tools/generate-rules-lists.ts",
@@ -41,24 +42,26 @@
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
-    "@typescript-eslint/experimental-utils": "2.22.0",
-    "eslint-utils": "^1.4.3",
+    "@typescript-eslint/experimental-utils": "4.3.0",
+    "@typescript-eslint/scope-manager": "4.3.0",
+    "debug": "^4.1.1",
     "functional-red-black-tree": "^1.0.1",
     "regexpp": "^3.0.0",
+    "semver": "^7.3.2",
     "tsutils": "^3.17.1"
   },
   "devDependencies": {
-    "@types/json-schema": "^7.0.3",
-    "@types/marked": "^0.7.1",
-    "@types/prettier": "^1.18.2",
-    "chalk": "^3.0.0",
-    "marked": "^0.7.0",
+    "@types/debug": "*",
+    "@types/marked": "^1.1.0",
+    "@types/prettier": "*",
+    "chalk": "^4.0.0",
+    "marked": "^1.0.0",
     "prettier": "*",
     "typescript": "*"
   },
   "peerDependencies": {
-    "@typescript-eslint/parser": "^2.0.0",
-    "eslint": "^5.0.0 || ^6.0.0"
+    "@typescript-eslint/parser": "^4.0.0",
+    "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
   },
   "peerDependenciesMeta": {
     "typescript": {
@@ -69,5 +72,5 @@
     "type": "opencollective",
     "url": "https://opencollective.com/typescript-eslint"
   },
-  "gitHead": "5a097d316fb084dc4b13e87d68fe9bf43d8a9548"
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md b/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md
index fc8b6a8..88a8ced 100644
--- a/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md
@@ -3,6 +3,364 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+
+### Bug Fixes
+
+* **experimental-utils:** treat RuleTester arrays as readonly ([#2601](https://github.com/typescript-eslint/typescript-eslint/issues/2601)) ([8025777](https://github.com/typescript-eslint/typescript-eslint/commit/80257776b78bd2b2b4389d6bd530b009a75fb520))
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-use-before-define] false positive for function type arguments ([#2554](https://github.com/typescript-eslint/typescript-eslint/issues/2554)) ([189162d](https://github.com/typescript-eslint/typescript-eslint/commit/189162d46ecb116c420232937a7f86df913f4e79)), closes [#2527](https://github.com/typescript-eslint/typescript-eslint/issues/2527)
+
+
+
+
+
+# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
+
+## [Please see the release notes for v4.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v4.0.0)
+
+### Features
+
+* consume new scope analysis package ([#2039](https://github.com/typescript-eslint/typescript-eslint/issues/2039)) ([3be125d](https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0))
+* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
+
+
+
+
+
+## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
+
+
+### Features
+
+* add package scope-manager ([#1939](https://github.com/typescript-eslint/typescript-eslint/issues/1939)) ([682eb7e](https://github.com/typescript-eslint/typescript-eslint/commit/682eb7e009c3f22a542882dfd3602196a60d2a1e))
+* split types into their own package ([#2229](https://github.com/typescript-eslint/typescript-eslint/issues/2229)) ([5f45918](https://github.com/typescript-eslint/typescript-eslint/commit/5f4591886f3438329fbf2229b03ac66174334a24))
+
+
+
+
+
+# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
+
+
+### Bug Fixes
+
+* **experimental-utils:** correct types for TS versions older than 3.8 ([#2217](https://github.com/typescript-eslint/typescript-eslint/issues/2217)) ([5e4dda2](https://github.com/typescript-eslint/typescript-eslint/commit/5e4dda264a7d6a6a1626848e7599faea1ac34922))
+* **experimental-utils:** getParserServices takes a readonly context ([#2235](https://github.com/typescript-eslint/typescript-eslint/issues/2235)) ([26da8de](https://github.com/typescript-eslint/typescript-eslint/commit/26da8de7fcde9eddec63212d79af781c4bb22991))
+
+
+
+
+
+# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
+
+
+
+
+
+# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
+
+
+### Bug Fixes
+
+* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
+
+
+### Features
+
+* **eslint-plugin:** [explicit-module-boundary-types] improve accuracy and coverage ([#2135](https://github.com/typescript-eslint/typescript-eslint/issues/2135)) ([caaa859](https://github.com/typescript-eslint/typescript-eslint/commit/caaa8599284d02ab3341e282cad35a52d0fb86c7))
+
+
+
+
+
+## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
+
+
+### Bug Fixes
+
+* regression for eslint v6 ([#2105](https://github.com/typescript-eslint/typescript-eslint/issues/2105)) ([31fc503](https://github.com/typescript-eslint/typescript-eslint/commit/31fc5039ed919e1515fda673c186d5c83eb5beb3))
+
+
+
+
+
+## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
+
+
+### Bug Fixes
+
+* **experimental-utils:** export `CLIEngine` & `ESLint` ([#2083](https://github.com/typescript-eslint/typescript-eslint/issues/2083)) ([014341b](https://github.com/typescript-eslint/typescript-eslint/commit/014341bb23261f609fc2a6fe7fece191466a084a))
+
+
+
+
+
+# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
+
+## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
+
+### Bug Fixes
+
+* **experimental-utils:** add back SourceCode.isSpaceBetweenTokens ([ae82ea4](https://github.com/typescript-eslint/typescript-eslint/commit/ae82ea4a85a4ca332ebe6104e96c59dba30411be))
+* **typescript-estree:** remove now defunct `Import` node type ([f199cbd](https://github.com/typescript-eslint/typescript-eslint/commit/f199cbdbbd892b5ba03bfff66f463f3d9c92ee9b))
+
+
+### Features
+
+* **experimental-utils:** upgrade eslint types for v7 ([#2023](https://github.com/typescript-eslint/typescript-eslint/issues/2023)) ([06869c9](https://github.com/typescript-eslint/typescript-eslint/commit/06869c9656fa37936126666845aee40aad546ebd))
+* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
+* upgrade to ESLint v7 ([#2022](https://github.com/typescript-eslint/typescript-eslint/issues/2022)) ([208de71](https://github.com/typescript-eslint/typescript-eslint/commit/208de71059746bf38e94bd460346ffb2698a3e12))
+* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
+* **typescript-estree:** always return parserServices ([#716](https://github.com/typescript-eslint/typescript-eslint/issues/716)) ([5b23443](https://github.com/typescript-eslint/typescript-eslint/commit/5b23443c48f3f62424db3e742243f3568080b946))
+
+
+
+
+
+# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
+
+
+### Features
+
+* **experimental-utils:** add `suggestion` property for rule  modules ([#2033](https://github.com/typescript-eslint/typescript-eslint/issues/2033)) ([f42a5b0](https://github.com/typescript-eslint/typescript-eslint/commit/f42a5b09ebfa173f418a99c552b0cbe221567194))
+
+
+
+
+
+# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
+
+
+### Bug Fixes
+
+* **experimental-utils:** remove accidental dep on json-schema ([#2010](https://github.com/typescript-eslint/typescript-eslint/issues/2010)) ([1875fba](https://github.com/typescript-eslint/typescript-eslint/commit/1875fbad41f2a3dda8f610f5dcd180c6205b73d3))
+
+
+
+
+
+# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
+
+
+### Features
+
+* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
+
+
+
+
+
+# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
+
+
+### Features
+
+* **experimental-utils:** expose our RuleTester extension ([#1948](https://github.com/typescript-eslint/typescript-eslint/issues/1948)) ([2dd1638](https://github.com/typescript-eslint/typescript-eslint/commit/2dd1638aaa2658ba99b2341861146b586f489121))
+
+
+
+
+
+# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
+
+
+### Features
+
+* **experimental-utils:** allow rule options to be a readonly tuple ([#1924](https://github.com/typescript-eslint/typescript-eslint/issues/1924)) ([4ef6788](https://github.com/typescript-eslint/typescript-eslint/commit/4ef67884962b6aac61cc895aaa3ba16aa892ecf4))
+
+
+
+
+
+# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
+
+
+### Features
+
+* **eslint-plugin:** add rule `prefer-reduce-type-parameter` ([#1707](https://github.com/typescript-eslint/typescript-eslint/issues/1707)) ([c92d240](https://github.com/typescript-eslint/typescript-eslint/commit/c92d240e49113779053eac32038382b282812afc))
+
+
+
+
+
+# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
+
+
+### Features
+
+* **experimental-utils:** add types for suggestions from CLIEngine ([#1844](https://github.com/typescript-eslint/typescript-eslint/issues/1844)) ([7c11bd6](https://github.com/typescript-eslint/typescript-eslint/commit/7c11bd66f2d0e5ea9d3943e6b8c66e6ddff50862))
+* **experimental-utils:** update eslint types to match v6.8 ([#1846](https://github.com/typescript-eslint/typescript-eslint/issues/1846)) ([16ce74d](https://github.com/typescript-eslint/typescript-eslint/commit/16ce74d247781ac890dc0baa30c384f97e581b6b))
+
+
+
+
+
+# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
+
+
+### Features
+
+* **typescript-estree:** add option to ignore certain folders from glob resolution ([#1802](https://github.com/typescript-eslint/typescript-eslint/issues/1802)) ([1e29e69](https://github.com/typescript-eslint/typescript-eslint/commit/1e29e69b289d61107a7de67592beae331ba50222))
+
+
+
+
+
+# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
+
+
+### Features
+
+* **experimental-utils:** expose ast utility functions ([#1670](https://github.com/typescript-eslint/typescript-eslint/issues/1670)) ([3eb5d45](https://github.com/typescript-eslint/typescript-eslint/commit/3eb5d4525e95c8ab990f55588b8d830a02ce5a9c))
+
+
+
+
+
+# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
+# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
+
+**Note:** Version bump only for package @typescript-eslint/experimental-utils
+
+
+
+
+
 # [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
 
 **Note:** Version bump only for package @typescript-eslint/experimental-utils
diff --git a/node_modules/@typescript-eslint/experimental-utils/README.md b/node_modules/@typescript-eslint/experimental-utils/README.md
index 2f02ef1..208578b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/README.md
+++ b/node_modules/@typescript-eslint/experimental-utils/README.md
@@ -1,27 +1,36 @@
-# `@typescript-eslint/experimental-utils`
+<h1 align="center">Utils for ESLint Plugins</h1>
 
-(Experimental) Utilities for working with TypeScript + ESLint together.
+<p align="center">Utilities for working with TypeScript + ESLint together.</p>
+
+<p align="center">
+    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
+    <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/v/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Version" /></a>
+    <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/dm/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Downloads" /></a>
+</p>
 
 ## Note
 
 This package has inherited its version number from the `@typescript-eslint` project.
-Meaning that even though this package is `1.x.y`, you shouldn't expect 100% stability between minor version bumps.
+Meaning that even though this package is `2.x.y`, you shouldn't expect 100% stability between minor version bumps.
 i.e. treat it as a `0.x.y` package.
 
 Feel free to use it now, and let us know what utilities you need or send us PRs with utilities you build on top of it.
 
-Once it is stable, it will be renamed to `@typescript-eslint/util` for a `2.0.0` release.
+Once it is stable, it will be renamed to `@typescript-eslint/util` for a `4.0.0` release.
 
 ## Exports
 
-| Name                                                                               | Description                                                                                    |
-| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
-| [`TSESTree`](../packages/typescript-estree/src/ts-estree/ts-estree.ts)             | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`.   |
-| [`AST_NODE_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts)  | An enum with the names of every single _node_ found in `TSESTree`.                             |
-| [`AST_TOKEN_TYPES`](../packages/typescript-estree/src/ts-estree/ast-node-types.ts) | An enum with the names of every single _token_ found in `TSESTree`.                            |
-| [`TSESLint`](./src/ts-eslint)                                                      | Types for ESLint, correctly typed to work with the types found in `TSESTree`.                  |
-| [`ESLintUtils`](./src/eslint-utils)                                                | Tools for creating ESLint rules with TypeScript.                                               |
-| [`ParserServices`](../packages/typescript-estree/src/ts-estree/parser.ts)          | The parser services provided when parsing a file using `@typescript-eslint/typescript-estree`. |
+| Name                                                           | Description                                                                                                                                                                                                                       |
+| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [`ASTUtils`](./src/ast-utils)                                  | Tools for operating on the ESTree AST. Also includes the [`eslint-utils`](https://www.npmjs.com/package/eslint-utils) package, correctly typed to work with the types found in `TSESTree`                                         |
+| [`ESLintUtils`](./src/eslint-utils)                            | Tools for creating ESLint rules with TypeScript.                                                                                                                                                                                  |
+| `JSONSchema`                                                   | Types from the [`@types/json-schema`](https://www.npmjs.com/package/@types/json-schema) package, re-exported to save you having to manually import them. Also ensures you're using the same version of the types as this package. |
+| [`TSESLint`](./src/ts-eslint)                                  | Types for ESLint, correctly typed to work with the types found in `TSESTree`.                                                                                                                                                     |
+| [`TSESLintScope`](./src/ts-eslint-scope)                       | The [`eslint-scope`](https://www.npmjs.com/package/eslint-scope) package, correctly typed to work with the types found in both `TSESTree` and `TSESLint`                                                                          |
+| [`TSESTree`](../types/src/ts-estree.ts)                        | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`.                                                                                                                                      |
+| [`AST_NODE_TYPES`](../types/src/ast-node-types.ts)             | An enum with the names of every single _node_ found in `TSESTree`.                                                                                                                                                                |
+| [`AST_TOKEN_TYPES`](../types/src/ast-token-types.ts)           | An enum with the names of every single _token_ found in `TSESTree`.                                                                                                                                                               |
+| [`ParserServices`](../typescript-estree/src/parser-options.ts) | Typing for the parser services provided when parsing a file using `@typescript-eslint/typescript-estree`.                                                                                                                         |
 
 ## Contributing
 
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/PatternMatcher.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleCreator.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleCreator.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleCreator.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleCreator.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleTester.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleTester.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/RuleTester.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/batchedSingleLineTests.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/batchedSingleLineTests.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/batchedSingleLineTests.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/batchedSingleLineTests.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/deepMerge.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/deepMerge.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/deepMerge.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/deepMerge.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/getParserServices.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/getParserServices.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/getParserServices.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/getParserServices.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/json-schema.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/json-schema.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/json-schema.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/json-schema.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Definition.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Definition.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Definition.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Definition.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Options.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Options.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Options.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Options.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/PatternVisitor.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/PatternVisitor.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/PatternVisitor.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/PatternVisitor.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Referencer.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Referencer.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Referencer.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Referencer.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Scope.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Scope.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Scope.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/ScopeManager.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/ScopeManager.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/ScopeManager.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/ScopeManager.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Variable.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Variable.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Variable.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Variable.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/analyze.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/analyze.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/analyze.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/analyze.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/AST.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/AST.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/AST.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/AST.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/CLIEngine.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/CLIEngine.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/CLIEngine.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/CLIEngine.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ESLint.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ESLint.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ESLint.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ESLint.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ParserOptions.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ParserOptions.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ParserOptions.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/ParserOptions.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts
diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts
new file mode 100644
index 0000000..c8f5d2f
--- /dev/null
+++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts
@@ -0,0 +1,137 @@
+import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree';

+import { ParserOptions } from './ParserOptions';

+import { RuleModule } from './Rule';

+interface ValidTestCase<TOptions extends Readonly<unknown[]>> {

+    /**

+     * Code for the test case.

+     */

+    readonly code: string;

+    /**

+     * Environments for the test case.

+     */

+    readonly env?: Readonly<Record<string, boolean>>;

+    /**

+     * The fake filename for the test case. Useful for rules that make assertion about filenames.

+     */

+    readonly filename?: string;

+    /**

+     * The additional global variables.

+     */

+    readonly globals?: Record<string, 'readonly' | 'writable' | 'off'>;

+    /**

+     * Options for the test case.

+     */

+    readonly options?: Readonly<TOptions>;

+    /**

+     * The absolute path for the parser.

+     */

+    readonly parser?: string;

+    /**

+     * Options for the parser.

+     */

+    readonly parserOptions?: Readonly<ParserOptions>;

+    /**

+     * Settings for the test case.

+     */

+    readonly settings?: Readonly<Record<string, unknown>>;

+}

+interface SuggestionOutput<TMessageIds extends string> {

+    /**

+     * Reported message ID.

+     */

+    readonly messageId: TMessageIds;

+    /**

+     * The data used to fill the message template.

+     */

+    readonly data?: Readonly<Record<string, unknown>>;

+    /**

+     * NOTE: Suggestions will be applied as a stand-alone change, without triggering multi-pass fixes.

+     * Each individual error has its own suggestion, so you have to show the correct, _isolated_ output for each suggestion.

+     */

+    readonly output: string;

+}

+interface InvalidTestCase<TMessageIds extends string, TOptions extends Readonly<unknown[]>> extends ValidTestCase<TOptions> {

+    /**

+     * Expected errors.

+     */

+    readonly errors: readonly TestCaseError<TMessageIds>[];

+    /**

+     * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested.

+     */

+    readonly output?: string | null;

+}

+interface TestCaseError<TMessageIds extends string> {

+    /**

+     * The 1-based column number of the reported start location.

+     */

+    readonly column?: number;

+    /**

+     * The data used to fill the message template.

+     */

+    readonly data?: Readonly<Record<string, unknown>>;

+    /**

+     * The 1-based column number of the reported end location.

+     */

+    readonly endColumn?: number;

+    /**

+     * The 1-based line number of the reported end location.

+     */

+    readonly endLine?: number;

+    /**

+     * The 1-based line number of the reported start location.

+     */

+    readonly line?: number;

+    /**

+     * Reported message ID.

+     */

+    readonly messageId: TMessageIds;

+    /**

+     * Reported suggestions.

+     */

+    readonly suggestions?: SuggestionOutput<TMessageIds>[] | null;

+    /**

+     * The type of the reported AST node.

+     */

+    readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES;

+}

+interface RunTests<TMessageIds extends string, TOptions extends Readonly<unknown[]>> {

+    readonly valid: readonly (ValidTestCase<TOptions> | string)[];

+    readonly invalid: readonly InvalidTestCase<TMessageIds, TOptions>[];

+}

+interface RuleTesterConfig {

+    readonly parser: string;

+    readonly parserOptions?: Readonly<ParserOptions>;

+}

+declare class RuleTesterBase {

+    /**

+     * Creates a new instance of RuleTester.

+     * @param testerConfig extra configuration for the tester

+     */

+    constructor(testerConfig?: RuleTesterConfig);

+    /**

+     * Adds a new rule test to execute.

+     * @param ruleName The name of the rule to run.

+     * @param rule The rule to test.

+     * @param test The collection of tests to run.

+     */

+    run<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(ruleName: string, rule: RuleModule<TMessageIds, TOptions>, tests: RunTests<TMessageIds, TOptions>): void;

+    /**

+     * If you supply a value to this property, the rule tester will call this instead of using the version defined on

+     * the global namespace.

+     * @param text a string describing the rule

+     * @param callback the test callback

+     */

+    static describe?: (text: string, callback: () => void) => void;

+    /**

+     * If you supply a value to this property, the rule tester will call this instead of using the version defined on

+     * the global namespace.

+     * @param text a string describing the test case

+     * @param callback the test callback

+     */

+    static it?: (text: string, callback: () => void) => void;

+}

+declare const RuleTester_base: typeof RuleTesterBase;

+declare class RuleTester extends RuleTester_base {

+}

+export { InvalidTestCase, SuggestionOutput, RuleTester, RuleTesterConfig, RunTests, TestCaseError, ValidTestCase, };

+//# sourceMappingURL=RuleTester.d.ts.map

diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts
new file mode 100644
index 0000000..57b425c
--- /dev/null
+++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts
@@ -0,0 +1,46 @@
+import * as scopeManager from '@typescript-eslint/scope-manager';

+import { TSESTree } from '@typescript-eslint/types';

+declare namespace Scope {

+    class ESLintScopeVariable {

+        readonly defs: Definition[];

+        readonly identifiers: TSESTree.Identifier[];

+        readonly name: string;

+        readonly references: Reference[];

+        readonly scope: Scope;

+        /**

+         * Written to by ESLint.

+         * If this key exists, this variable is a global variable added by ESLint.

+         * If this is `true`, this variable can be assigned arbitrary values.

+         * If this is `false`, this variable is readonly.

+         */

+        writeable?: boolean;

+        /**

+         * Written to by ESLint.

+         * This property is undefined if there are no globals directive comments.

+         * The array of globals directive comments which defined this global variable in the source code file.

+         */

+        eslintExplicitGlobal?: boolean;

+        /**

+         * Written to by ESLint.

+         * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments.

+         */

+        eslintImplicitGlobalSetting?: 'readonly' | 'writable';

+        /**

+         * Written to by ESLint.

+         * If this key exists, it is a global variable added by ESLint.

+         * If `true`, this global variable was defined by a globals directive comment in the source code file.

+         */

+        eslintExplicitGlobalComments?: TSESTree.Comment[];

+    }

+    export type ScopeManager = scopeManager.ScopeManager;

+    export type Reference = scopeManager.Reference;

+    export type Variable = scopeManager.Variable | ESLintScopeVariable;

+    export type Scope = scopeManager.Scope;

+    export const ScopeType: typeof scopeManager.ScopeType;

+    export type DefinitionType = scopeManager.Definition;

+    export type Definition = scopeManager.Definition;

+    export const DefinitionType: typeof scopeManager.DefinitionType;

+    export {};

+}

+export { Scope };

+//# sourceMappingURL=Scope.d.ts.map

diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-estree.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-estree.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-estree.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-estree.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/PatternMatcher.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/index.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/scopeAnalysis.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/index.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.js.map
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts
index 8b7158c..565a6a9 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts
@@ -3,11 +3,11 @@
 declare type CreateRuleMeta<TMessageIds extends string> = {
     docs: CreateRuleMetaDocs;
 } & Omit<RuleMetaData<TMessageIds>, 'docs'>;
-export declare function RuleCreator(urlCreator: (ruleName: string) => string): <TOptions extends unknown[], TMessageIds extends string, TRuleListener extends RuleListener = RuleListener>({ name, meta, defaultOptions, create, }: {
+declare function RuleCreator(urlCreator: (ruleName: string) => string): <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener = RuleListener>({ name, meta, defaultOptions, create, }: Readonly<{
     name: string;
     meta: CreateRuleMeta<TMessageIds>;
-    defaultOptions: TOptions;
-    create: (context: RuleContext<TMessageIds, TOptions>, optionsWithDefault: TOptions) => TRuleListener;
-}) => RuleModule<TMessageIds, TOptions, TRuleListener>;
-export {};
+    defaultOptions: Readonly<TOptions>;
+    create: (context: Readonly<RuleContext<TMessageIds, TOptions>>, optionsWithDefault: Readonly<TOptions>) => TRuleListener;
+}>) => RuleModule<TMessageIds, TOptions, TRuleListener>;
+export { RuleCreator };
 //# sourceMappingURL=RuleCreator.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map
index fd10e53..2d86f2a 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"RuleCreator.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAI3B,aAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACxD,aAAK,cAAc,CAAC,WAAW,SAAS,MAAM,IAAI;IAChD,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAE5C,wBAAgB,WAAW,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;;;;;uDAsCnE"}
\ No newline at end of file
+{"version":3,"file":"RuleCreator.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAI3B,aAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACxD,aAAK,cAAc,CAAC,WAAW,SAAS,MAAM,IAAI;IAChD,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAE5C,iBAAS,WAAW,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;UAanD,MAAM;;;;wDA2Bf;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js
index a7f5999..cba8ed6 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.RuleCreator = void 0;
 const applyDefault_1 = require("./applyDefault");
 function RuleCreator(urlCreator) {
     // This function will get much easier to call when this is merged https://github.com/Microsoft/TypeScript/pull/26349
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map
index 1939fbb..cea4eb0 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map
@@ -1 +1 @@
-{"version":3,"file":"RuleCreator.js","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":";;AAOA,iDAA8C;AAQ9C,SAAgB,WAAW,CAAC,UAAwC;IAClE,oHAAoH;IACpH,2FAA2F;IAC3F,OAAO,SAAS,UAAU,CAIxB,EACA,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,MAAM,GASP;QACC,OAAO;YACL,IAAI,kCACC,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,MAExB;YACD,MAAM,CAAC,OAAO;gBACZ,MAAM,kBAAkB,GAAG,2BAAY,CACrC,cAAc,EACd,OAAO,CAAC,OAAO,CAChB,CAAC;gBACF,OAAO,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAtCD,kCAsCC"}
\ No newline at end of file
+{"version":3,"file":"RuleCreator.js","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":";;;AAOA,iDAA8C;AAQ9C,SAAS,WAAW,CAAC,UAAwC;IAC3D,oHAAoH;IACpH,2FAA2F;IAC3F,OAAO,SAAS,UAAU,CAIxB,EACA,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,MAAM,GASN;QACA,OAAO;YACL,IAAI,kCACC,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,MAExB;YACD,MAAM,CACJ,OAAqD;gBAErD,MAAM,kBAAkB,GAAG,2BAAY,CACrC,cAAc,EACd,OAAO,CAAC,OAAO,CAChB,CAAC;gBACF,OAAO,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEQ,kCAAW"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts
index bbee816..b92df58 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts
@@ -5,5 +5,6 @@
  * @param userOptions the user opts
  * @returns the options with defaults
  */
-export declare function applyDefault<TUser extends unknown[], TDefault extends TUser>(defaultOptions: TDefault, userOptions: TUser | null): TDefault;
+declare function applyDefault<TUser extends readonly unknown[], TDefault extends TUser>(defaultOptions: TDefault, userOptions: TUser | null): TDefault;
+export { applyDefault };
 //# sourceMappingURL=applyDefault.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map
index 69af49e..50c710e 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"applyDefault.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAS,KAAK,EAC1E,cAAc,EAAE,QAAQ,EACxB,WAAW,EAAE,KAAK,GAAG,IAAI,GACxB,QAAQ,CAqBV"}
\ No newline at end of file
+{"version":3,"file":"applyDefault.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAS,KAAK,EAC5E,cAAc,EAAE,QAAQ,EACxB,WAAW,EAAE,KAAK,GAAG,IAAI,GACxB,QAAQ,CAuBV;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
index 3519fc7..6ae1a79 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.applyDefault = void 0;
 const deepMerge_1 = require("./deepMerge");
 /**
  * Pure function - doesn't mutate either parameter!
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map
index 3de41a5..797a3b5 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map
@@ -1 +1 @@
-{"version":3,"file":"applyDefault.js","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":";;AAAA,2CAA0D;AAE1D;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,cAAwB,EACxB,WAAyB;IAEzB,iBAAiB;IACjB,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,4BAAgB,CAAC,OAAO,CAAC,IAAI,4BAAgB,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAxBD,oCAwBC"}
\ No newline at end of file
+{"version":3,"file":"applyDefault.js","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,cAAwB,EACxB,WAAyB;IAEzB,iBAAiB;IACjB,MAAM,OAAO,GAAwB,IAAI,CAAC,KAAK,CAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAC/B,CAAC;IAEF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,4BAAgB,CAAC,OAAO,CAAC,IAAI,4BAAgB,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAMQ,oCAAY"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js
index 31ce405..7ff9390 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.batchedSingleLineTests = void 0;
 function batchedSingleLineTests(options) {
     // eslint counts lines from 1
     const lineOffset = options.code.startsWith('\n') ? 2 : 1;
@@ -10,13 +11,12 @@
         .trim()
         .split('\n')
         .map((code, i) => {
-        var _a;
         const lineNum = i + lineOffset;
         const errors = 'errors' in options
             ? options.errors.filter(e => e.line === lineNum)
             : [];
         const returnVal = Object.assign(Object.assign({}, options), { code, errors: errors.map(e => (Object.assign(Object.assign({}, e), { line: 1 }))) });
-        if ((_a = output) === null || _a === void 0 ? void 0 : _a[i]) {
+        if (output === null || output === void 0 ? void 0 : output[i]) {
             return Object.assign(Object.assign({}, returnVal), { output: output[i] });
         }
         return returnVal;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map
index 2bb0224..31f68d6 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map
@@ -1 +1 @@
-{"version":3,"file":"batchedSingleLineTests.js","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":";;AA8BA,SAAS,sBAAsB,CAI7B,OAAyE;IAEzE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,OAAO,CAAC,IAAI;SAChB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/B,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,mCACV,OAAO,KACV,IAAI,EACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACnB,CAAC,KACJ,IAAI,EAAE,CAAC,IACP,CAAC,GACJ,CAAC;QACF,UAAI,MAAM,0CAAG,CAAC,GAAG;YACf,uCACK,SAAS,KACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAEQ,wDAAsB"}
\ No newline at end of file
+{"version":3,"file":"batchedSingleLineTests.js","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":";;;AA8BA,SAAS,sBAAsB,CAI7B,OAAyE;IAEzE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,OAAO,CAAC,IAAI;SAChB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/B,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,mCACV,OAAO,KACV,IAAI,EACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACnB,CAAC,KACJ,IAAI,EAAE,CAAC,IACP,CAAC,GACJ,CAAC;QACF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,GAAG;YACf,uCACK,SAAS,KACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAEQ,wDAAsB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts
index b09d1fa..9650020 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts
@@ -4,7 +4,7 @@
  * @param obj an object
  * @returns `true` if obj is an object
  */
-export declare function isObjectNotArray<T extends ObjectLike>(obj: unknown | unknown[]): obj is T;
+declare function isObjectNotArray<T extends ObjectLike>(obj: unknown | unknown[]): obj is T;
 /**
  * Pure function - doesn't mutate either parameter!
  * Merges two objects together deeply, overwriting the properties in first with the properties in second
@@ -13,5 +13,5 @@
  * @returns a new object
  */
 export declare function deepMerge(first?: ObjectLike, second?: ObjectLike): Record<string, unknown>;
-export {};
+export { isObjectNotArray };
 //# sourceMappingURL=deepMerge.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map
index 93c6cd6..769f39c 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EACnD,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,GACvB,GAAG,IAAI,CAAC,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,GAAE,UAAe,EACtB,MAAM,GAAE,UAAe,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB"}
\ No newline at end of file
+{"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjD;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAC5C,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,GACvB,GAAG,IAAI,CAAC,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,GAAE,UAAe,EACtB,MAAM,GAAE,UAAe,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js
index 6df1ceb..34fdffc 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.isObjectNotArray = exports.deepMerge = void 0;
 /**
  * Check if the variable contains an object strictly rejecting arrays
  * @param obj an object
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map
index 34941bd..7ee4604 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map
@@ -1 +1 @@
-{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;AACH,SAAgB,gBAAgB,CAC9B,GAAwB;IAExB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAJD,4CAIC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CACvB,QAAoB,EAAE,EACtB,SAAqB,EAAE;IAEvB,iDAAiD;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,WAAW,GAAG,GAAG,IAAI,KAAK,CAAC;QACjC,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBACjE,cAAc;gBACd,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;aAC/C;iBAAM;gBACL,aAAa;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;aACxB;SACF;aAAM,IAAI,WAAW,EAAE;YACtB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;SACvB;aAAM;YACL,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SACxB;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAgB,CAAC,CAAC;AACvB,CAAC;AA7BD,8BA6BC"}
\ No newline at end of file
+{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,GAAwB;IAExB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAwCQ,4CAAgB;AAtCzB;;;;;;GAMG;AACH,SAAgB,SAAS,CACvB,QAAoB,EAAE,EACtB,SAAqB,EAAE;IAEvB,iDAAiD;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,MAAM,WAAW,GAAG,GAAG,IAAI,KAAK,CAAC;QACjC,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBACjE,cAAc;gBACd,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;aAC/C;iBAAM;gBACL,aAAa;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;aACxB;SACF;aAAM,IAAI,WAAW,EAAE;YACtB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;SACvB;aAAM;YACL,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SACxB;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AA7BD,8BA6BC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts
index ad9926c..98626f4 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts
@@ -1,10 +1,8 @@
-import { ParserServices, TSESLint } from '../';
-declare type RequiredParserServices = {
-    [k in keyof ParserServices]: Exclude<ParserServices[k], undefined>;
-};
+import * as TSESLint from '../ts-eslint';
+import { ParserServices } from '../ts-estree';
 /**
  * Try to retrieve typescript parser service from context
  */
-export declare function getParserServices<TMessageIds extends string, TOptions extends unknown[]>(context: TSESLint.RuleContext<TMessageIds, TOptions>): RequiredParserServices;
-export {};
+declare function getParserServices<TMessageIds extends string, TOptions extends readonly unknown[]>(context: Readonly<TSESLint.RuleContext<TMessageIds, TOptions>>, allowWithoutFullTypeInformation?: boolean): ParserServices;
+export { getParserServices };
 //# sourceMappingURL=getParserServices.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map
index 7e76cfb..52fea2c 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"getParserServices.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAK/C,aAAK,sBAAsB,GAAG;KAC3B,CAAC,IAAI,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CACnE,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,OAAO,EAAE,EAE1B,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,GACnD,sBAAsB,CAaxB"}
\ No newline at end of file
+{"version":3,"file":"getParserServices.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C;;GAEG;AACH,iBAAS,iBAAiB,CACxB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,SAAS,OAAO,EAAE,EAEnC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAC9D,+BAA+B,UAAQ,GACtC,cAAc,CAuBhB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js
index 5e7862b..09302fd 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js
@@ -1,17 +1,25 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getParserServices = void 0;
 const ERROR_MESSAGE = 'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.';
 /**
  * Try to retrieve typescript parser service from context
  */
-function getParserServices(context) {
+function getParserServices(context, allowWithoutFullTypeInformation = false) {
+    var _a;
+    // backwards compatibility check
+    // old versions of the parser would not return any parserServices unless parserOptions.project was set
     if (!context.parserServices ||
         !context.parserServices.program ||
-        !context.parserServices.esTreeNodeToTSNodeMap) {
-        /**
-         * The user needs to have configured "project" in their parserOptions
-         * for @typescript-eslint/parser
-         */
+        !context.parserServices.esTreeNodeToTSNodeMap ||
+        !context.parserServices.tsNodeToESTreeNodeMap) {
+        throw new Error(ERROR_MESSAGE);
+    }
+    const hasFullTypeInformation = (_a = context.parserServices.hasFullTypeInformation) !== null && _a !== void 0 ? _a : 
+    /* backwards compatible */ true;
+    // if a rule requires full type information, then hard fail if it doesn't exist
+    // this forces the user to supply parserOptions.project
+    if (!hasFullTypeInformation && !allowWithoutFullTypeInformation) {
         throw new Error(ERROR_MESSAGE);
     }
     return context.parserServices;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map
index 2fc7ad2..4d40125 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map
@@ -1 +1 @@
-{"version":3,"file":"getParserServices.js","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":";;AAEA,MAAM,aAAa,GACjB,gLAAgL,CAAC;AAMnL;;GAEG;AACH,SAAgB,iBAAiB,CAI/B,OAAoD;IAEpD,IACE,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO;QAC/B,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAC7C;QACA;;;WAGG;QACH,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IACD,OAAO,OAAO,CAAC,cAAwC,CAAC;AAC1D,CAAC;AAlBD,8CAkBC"}
\ No newline at end of file
+{"version":3,"file":"getParserServices.js","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GACjB,gLAAgL,CAAC;AAEnL;;GAEG;AACH,SAAS,iBAAiB,CAIxB,OAA8D,EAC9D,+BAA+B,GAAG,KAAK;;IAEvC,gCAAgC;IAChC,sGAAsG;IACtG,IACE,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO;QAC/B,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB;QAC7C,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAC7C;QACA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,MAAM,sBAAsB,SAC1B,OAAO,CAAC,cAAc,CAAC,sBAAsB;IAC7C,0BAA0B,CAAC,IAAI,CAAC;IAElC,+EAA+E;IAC/E,uDAAuD;IACvD,IAAI,CAAC,sBAAsB,IAAI,CAAC,+BAA+B,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAEQ,8CAAiB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts
index 512f280..8cdfcb0 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts
@@ -1,6 +1,8 @@
 export * from './applyDefault';
 export * from './batchedSingleLineTests';
 export * from './getParserServices';
+export * from './InferTypesFromRule';
 export * from './RuleCreator';
+export * from './RuleTester';
 export * from './deepMerge';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map
index 7af1995..7aca90d 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js
index dc41bf3..dde280d 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js
@@ -1,11 +1,20 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("./applyDefault"));
-__export(require("./batchedSingleLineTests"));
-__export(require("./getParserServices"));
-__export(require("./RuleCreator"));
-__export(require("./deepMerge"));
+__exportStar(require("./applyDefault"), exports);
+__exportStar(require("./batchedSingleLineTests"), exports);
+__exportStar(require("./getParserServices"), exports);
+__exportStar(require("./InferTypesFromRule"), exports);
+__exportStar(require("./RuleCreator"), exports);
+__exportStar(require("./RuleTester"), exports);
+__exportStar(require("./deepMerge"), exports);
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map
index 2f54b5b..f24be47 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":";;;;;AAAA,oCAA+B;AAC/B,8CAAyC;AACzC,yCAAoC;AACpC,mCAA8B;AAC9B,iCAA4B"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B;AAC/B,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,gDAA8B;AAC9B,+CAA6B;AAC7B,8CAA4B"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts
index 43f41b7..b8a60a9 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts
@@ -1,8 +1,8 @@
+import * as ASTUtils from './ast-utils';
 import * as ESLintUtils from './eslint-utils';
+import * as JSONSchema from './json-schema';
 import * as TSESLint from './ts-eslint';
 import * as TSESLintScope from './ts-eslint-scope';
-import * as JSONSchema from './json-schema';
-export { ESLintUtils, JSONSchema, TSESLint, TSESLintScope };
-export { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree, } from '@typescript-eslint/typescript-estree/dist/ts-estree';
-export { ParserServices } from '@typescript-eslint/typescript-estree/dist/parser-options';
+export { ASTUtils, ESLintUtils, JSONSchema, TSESLint, TSESLintScope };
+export * from './ts-estree';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map
index 4e4d616..822db07 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAQ5D,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACtE,cAAc,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/index.js
index b502f73..ef12e06 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/index.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/index.js
@@ -1,27 +1,37 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.TSESLintScope = exports.TSESLint = exports.JSONSchema = exports.ESLintUtils = exports.ASTUtils = void 0;
+const ASTUtils = __importStar(require("./ast-utils"));
+exports.ASTUtils = ASTUtils;
 const ESLintUtils = __importStar(require("./eslint-utils"));
 exports.ESLintUtils = ESLintUtils;
+const JSONSchema = __importStar(require("./json-schema"));
+exports.JSONSchema = JSONSchema;
 const TSESLint = __importStar(require("./ts-eslint"));
 exports.TSESLint = TSESLint;
 const TSESLintScope = __importStar(require("./ts-eslint-scope"));
 exports.TSESLintScope = TSESLintScope;
-const JSONSchema = __importStar(require("./json-schema"));
-exports.JSONSchema = JSONSchema;
-// for convenience's sake - export the types directly from here so consumers
-// don't need to reference/install both packages in their code
-// NOTE - this uses hard links inside ts-estree to avoid initialization of entire package
-//        via its main file (which imports typescript at runtime).
-//        Not every eslint-plugin written in typescript requires typescript at runtime.
-var ts_estree_1 = require("@typescript-eslint/typescript-estree/dist/ts-estree");
-exports.AST_NODE_TYPES = ts_estree_1.AST_NODE_TYPES;
-exports.AST_TOKEN_TYPES = ts_estree_1.AST_TOKEN_TYPES;
-exports.TSESTree = ts_estree_1.TSESTree;
+__exportStar(require("./ts-estree"), exports);
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map
index c3c8160..b500da1 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4DAA8C;AAKrC,kCAAW;AAJpB,sDAAwC;AAIN,4BAAQ;AAH1C,iEAAmD;AAGP,sCAAa;AAFzD,0DAA4C;AAEtB,gCAAU;AAEhC,4EAA4E;AAC5E,8DAA8D;AAE9D,yFAAyF;AACzF,kEAAkE;AAClE,uFAAuF;AACvF,iFAI6D;AAH3D,qCAAA,cAAc,CAAA;AACd,sCAAA,eAAe,CAAA;AACf,+BAAA,QAAQ,CAAA"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AAM/B,4BAAQ;AALjB,4DAA8C;AAK3B,kCAAW;AAJ9B,0DAA4C;AAIZ,gCAAU;AAH1C,sDAAwC;AAGI,4BAAQ;AAFpD,iEAAmD;AAEG,sCAAa;AACnE,8CAA4B"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts
index 26619fa..bd6f29c 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts
@@ -1,2 +1,2 @@
-export * from 'json-schema';
+export { JSONSchema4, JSONSchema4Type, JSONSchema4TypeName, JSONSchema4Version, JSONSchema6, JSONSchema6Definition, JSONSchema6Type, JSONSchema6TypeName, JSONSchema6Version, JSONSchema7, JSONSchema7Array, JSONSchema7Definition, JSONSchema7Type, JSONSchema7TypeName, JSONSchema7Version, ValidationError, ValidationResult, } from 'json-schema';
 //# sourceMappingURL=json-schema.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map
index 37965b4..845788b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
\ No newline at end of file
+{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js
index 2d8f98d..289fb57 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js
@@ -1,3 +1,6 @@
 "use strict";
+// Note - @types/json-schema@7.0.4 added some function declarations to the type package
+// If we do export *, then it will also export these function declarations.
+// This will cause typescript to not scrub the require from the build, breaking anyone who doesn't have it as a dependency
 Object.defineProperty(exports, "__esModule", { value: true });
 //# sourceMappingURL=json-schema.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map
index d826a14..51d0b02 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map
@@ -1 +1 @@
-{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":""}
\ No newline at end of file
+{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":";AAAA,uFAAuF;AACvF,2EAA2E;AAC3E,0HAA0H"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts
index a42899e..bcaf94a 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 interface Definition {
     type: string;
     name: TSESTree.BindingName;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map
index fea0bd8..ab9c638 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAMhE,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,qBAAqB;IAC7B,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,EAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,UAAU,CAAC;CACf;AACD,QAAA,MAAM,UAAU,uBAA4C,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,UAAU;CAAG;AACnD,QAAA,MAAM,mBAAmB,gKAOxB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,qBAAqB;IAC7B,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,EAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,UAAU,CAAC;CACf;AACD,QAAA,MAAM,UAAU,uBAA4C,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,UAAU;CAAG;AACnD,QAAA,MAAM,mBAAmB,sCAEf,SAAS,IAAI,QACb,SAAS,IAAI,oEAGlB,mBAAmB,CACvB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js
index 46d90a0..dd3de1f 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.ParameterDefinition = exports.Definition = void 0;
 const definition_1 = require("eslint-scope/lib/definition");
 const Definition = definition_1.Definition;
 exports.Definition = Definition;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map
index 99c0988..fa19c8c 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map
@@ -1 +1 @@
-{"version":3,"file":"Definition.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":";;AACA,4DAGqC;AAqBrC,MAAM,UAAU,GAAG,uBAAyC,CAAC;AAapD,gCAAU;AATnB,MAAM,mBAAmB,GAAG,gCAO3B,CAAC;AAEmB,kDAAmB"}
\ No newline at end of file
+{"version":3,"file":"Definition.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":";;;AAAA,4DAGqC;AAsBrC,MAAM,UAAU,GAAG,uBAAyC,CAAC;AAapD,gCAAU;AATnB,MAAM,mBAAmB,GAAG,gCAO3B,CAAC;AAEmB,kDAAmB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts
index f87c44d..48ce3c5 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 declare type PatternVisitorCallback = (pattern: TSESTree.Identifier, info: {
     rest: boolean;
     topLevel: boolean;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map
index b505a49..fae66aa 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,aAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAC5B,IAAI,EAAE;IACJ,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;CAC3C,KACE,IAAI,CAAC;AAEV,UAAU,qBAAqB;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,UAAU,OAAO;IACf,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9E,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,aAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAC5B,IAAI,EAAE;IACJ,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;CAC3C,KACE,IAAI,CAAC;AAEV,UAAU,qBAAqB;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,UAAU,OAAO;IACf,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9E,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts
index 32127a0..e21224b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 import { ScopeManager } from './ScopeManager';
 import { PatternVisitorCallback, PatternVisitorOptions, Visitor } from './Options';
 interface PatternVisitor extends Visitor {
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map
index 4949422..eec5b0b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"PatternVisitor.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACR,MAAM,WAAW,CAAC;AAEnB,UAAU,cAAe,SAAQ,OAAO;IACtC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEhC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;CAC3C;AACD,QAAA,MAAM,cAAc;;;CASnB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"PatternVisitor.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACR,MAAM,WAAW,CAAC;AAEnB,UAAU,cAAe,SAAQ,OAAO;IACtC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEhC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;CAC3C;AACD,QAAA,MAAM,cAAc;kBAEP,qBAAqB,eACjB,SAAS,QAAQ,YACpB,sBAAsB,GAC/B,cAAc;oBAGD,SAAS,IAAI,GAAG,OAAO;CACxC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js
index 9682bd0..43aa849 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js
@@ -3,6 +3,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.PatternVisitor = void 0;
 const pattern_visitor_1 = __importDefault(require("eslint-scope/lib/pattern-visitor"));
 const PatternVisitor = pattern_visitor_1.default;
 exports.PatternVisitor = PatternVisitor;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map
index 631dd9e..e08efc8 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map
@@ -1 +1 @@
-{"version":3,"file":"PatternVisitor.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":";;;;;AACA,uFAAoE;AAyBpE,MAAM,cAAc,GAAG,yBAStB,CAAC;AAEO,wCAAc"}
\ No newline at end of file
+{"version":3,"file":"PatternVisitor.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":";;;;;;AAAA,uFAAoE;AA0BpE,MAAM,cAAc,GAAG,yBAStB,CAAC;AAEO,wCAAc"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts
index 27b24a5..0d479b3 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 import { Scope } from './Scope';
 import { Variable } from './Variable';
 export declare type ReferenceFlag = 0x1 | 0x2 | 0x3;
@@ -19,10 +19,10 @@
     isReadWrite(): boolean;
 }
 declare const Reference: {
-    new (identifier: TSESTree.Identifier, scope: Scope, flag?: 1 | 2 | 3 | undefined, writeExpr?: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.Import | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXMemberExpression | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.OptionalCallExpression | TSESTree.OptionalMemberExpressionComputedName | TSESTree.OptionalMemberExpressionNonComputedName | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSPublicKeyword | TSESTree.TSPrivateKeyword | TSESTree.TSProtectedKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UpdateExpression | TSESTree.UnaryExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference;
-    READ: 1;
-    WRITE: 2;
-    RW: 3;
+    new (identifier: TSESTree.Identifier, scope: Scope, flag?: 2 | 3 | 1 | undefined, writeExpr?: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ChainExpression | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportExpression | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamedTupleMember | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPrivateKeyword | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSProtectedKeyword | TSESTree.TSPublicKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference;
+    READ: 0x1;
+    WRITE: 0x2;
+    RW: 0x3;
 };
 export { Reference };
 //# sourceMappingURL=Reference.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map
index 635aa0c..1384afb 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAU,SAAS;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC;CACxB;AACD,QAAA,MAAM,SAAS;;;;;CAcd,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAU,SAAS;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC;CACxB;AACD,QAAA,MAAM,SAAS;qBAEC,SAAS,UAAU,SACxB,KAAK,2lKAMX,SAAS;UAEN,GAAG;WACF,GAAG;QACN,GAAG;CACR,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js
index 9723b7d..71a4559 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js
@@ -3,6 +3,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Reference = void 0;
 const reference_1 = __importDefault(require("eslint-scope/lib/reference"));
 const Reference = reference_1.default;
 exports.Reference = Reference;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map
index b4dd782..8b1c95b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map
@@ -1 +1 @@
-{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":";;;;;AACA,2EAAyD;AAwBzD,MAAM,SAAS,GAAG,mBAcjB,CAAC;AAEO,8BAAS"}
\ No newline at end of file
+{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAyD;AAyBzD,MAAM,SAAS,GAAG,mBAcjB,CAAC;AAEO,8BAAS"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts
index 43a39ea..beeb288 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 import { PatternVisitorCallback, PatternVisitorOptions, Visitor } from './Options';
 import { Scope } from './Scope';
 import { ScopeManager } from './ScopeManager';
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map
index 89740fb..37a11bf 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Referencer.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Referencer.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,UAAU,CAAC,EAAE,SAAS,YAAY,CAAE,SAAQ,OAAO;IAC3D,uBAAuB,EAAE,OAAO,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC;IACb,YAAY,EAAE,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEvB,YAAY,IAAI,KAAK,CAAC;IACtB,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACjC,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,GAAG,OAAO,CAAC;IACrE,wBAAwB,CAAC,uBAAuB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEjE,uBAAuB,CACrB,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,GAAG,EAChB,mBAAmB,EAAE,GAAG,EACxB,IAAI,EAAE,OAAO,GACZ,IAAI,CAAC;IACR,YAAY,CACV,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,sBAAsB,GAC/B,IAAI,CAAC;IACR,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACtC,wBAAwB,CACtB,mBAAmB,EAAE,GAAG,EACxB,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,KAAK,EAAE,GAAG,GACT,IAAI,CAAC;IAER,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IACtC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,cAAc,IAAI,IAAI,CAAC;IACvB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,cAAc,IAAI,IAAI,CAAC;IACvB,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/C,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9C,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAClD,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAClD,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,YAAY,IAAI,IAAI,CAAC;CACtB;AACD,QAAA,MAAM,UAAU,yCACyB,GAAG,qCAC3C,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js
index ed33411..4aafa5a 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js
@@ -3,6 +3,8 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Referencer = void 0;
+/* eslint-disable @typescript-eslint/no-explicit-any */
 const referencer_1 = __importDefault(require("eslint-scope/lib/referencer"));
 const Referencer = referencer_1.default;
 exports.Referencer = Referencer;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map
index 44ec03a..2d80e28 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map
@@ -1 +1 @@
-{"version":3,"file":"Referencer.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":";;;;;AAEA,6EAA2D;AA0E3D,MAAM,UAAU,GAAG,oBAElB,CAAC;AAEO,gCAAU"}
\ No newline at end of file
+{"version":3,"file":"Referencer.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,6EAA2D;AA2E3D,MAAM,UAAU,GAAG,oBAElB,CAAC;AAEO,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts
index 8093856..ae6bd11 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 import { Definition } from './Definition';
 import { Reference, ReferenceFlag } from './Reference';
 import { ScopeManager } from './ScopeManager';
@@ -71,7 +71,7 @@
 }
 interface GlobalScope extends Scope {
 }
-declare const GlobalScope: ScopeConstructor & (new (scopeManager: ScopeManager, block: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.Import | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXMemberExpression | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.OptionalCallExpression | TSESTree.OptionalMemberExpressionComputedName | TSESTree.OptionalMemberExpressionNonComputedName | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSPublicKeyword | TSESTree.TSPrivateKeyword | TSESTree.TSProtectedKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UpdateExpression | TSESTree.UnaryExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null) => GlobalScope);
+declare const GlobalScope: ScopeConstructor & (new (scopeManager: ScopeManager, block: TSESTree.Node | null) => GlobalScope);
 interface ModuleScope extends Scope {
 }
 declare const ModuleScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ModuleScope>;
@@ -92,7 +92,7 @@
 declare const SwitchScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<SwitchScope>;
 interface FunctionScope extends Scope {
 }
-declare const FunctionScope: ScopeConstructor & (new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.Import | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXMemberExpression | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.OptionalCallExpression | TSESTree.OptionalMemberExpressionComputedName | TSESTree.OptionalMemberExpressionNonComputedName | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSPublicKeyword | TSESTree.TSPrivateKeyword | TSESTree.TSProtectedKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UpdateExpression | TSESTree.UnaryExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null, isMethodDefinition: boolean) => FunctionScope);
+declare const FunctionScope: ScopeConstructor & (new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.Node | null, isMethodDefinition: boolean) => FunctionScope);
 interface ForScope extends Scope {
 }
 declare const ForScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ForScope>;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map
index 7f7bd63..8b6f342 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js
index 6965dc6..f4f604f 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js
@@ -1,6 +1,7 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-empty-interface, @typescript-eslint/no-explicit-any */
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClassScope = exports.ForScope = exports.FunctionScope = exports.SwitchScope = exports.BlockScope = exports.WithScope = exports.CatchScope = exports.FunctionExpressionNameScope = exports.ModuleScope = exports.GlobalScope = exports.Scope = void 0;
 const scope_1 = require("eslint-scope/lib/scope");
 const Scope = scope_1.Scope;
 exports.Scope = Scope;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map
index 2832582..b0d7969 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map
@@ -1 +1 @@
-{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":";AAAA,8FAA8F;;AAG9F,kDAYgC;AA6GhC,MAAM,KAAK,GAAG,aAA+B,CAAC;AA2D5C,sBAAK;AAhDP,MAAM,WAAW,GAAG,mBAEnB,CAAC;AA+CA,kCAAW;AA5Cb,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA4CjD,kCAAW;AAzCb,MAAM,2BAA2B,GAAG,mCAC8B,CAAC;AAyCjE,kEAA2B;AAtC7B,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAsChD,gCAAU;AAnCZ,MAAM,SAAS,GAAG,iBAC8B,CAAC;AAmC/C,8BAAS;AAhCX,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAgChD,gCAAU;AA7BZ,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6BjD,kCAAW;AA1Bb,MAAM,aAAa,GAAG,qBAOrB,CAAC;AAoBA,sCAAa;AAjBf,MAAM,QAAQ,GAAG,gBAC8B,CAAC;AAiB9C,4BAAQ;AAdV,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAchD,gCAAU"}
\ No newline at end of file
+{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,kDAYgC;AA8GhC,MAAM,KAAK,GAAG,aAA+B,CAAC;AA2D5C,sBAAK;AAhDP,MAAM,WAAW,GAAG,mBAEnB,CAAC;AA+CA,kCAAW;AA5Cb,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA4CjD,kCAAW;AAzCb,MAAM,2BAA2B,GAAG,mCAC8B,CAAC;AAyCjE,kEAA2B;AAtC7B,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAsChD,gCAAU;AAnCZ,MAAM,SAAS,GAAG,iBAC8B,CAAC;AAmC/C,8BAAS;AAhCX,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAgChD,gCAAU;AA7BZ,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6BjD,kCAAW;AA1Bb,MAAM,aAAa,GAAG,qBAOrB,CAAC;AAoBA,sCAAa;AAjBf,MAAM,QAAQ,GAAG,gBAC8B,CAAC;AAiB9C,4BAAQ;AAdV,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAchD,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts
index a865aa7..9b7e929 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts
@@ -1,4 +1,5 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
+import { EcmaVersion } from '../ts-eslint';
 import { Scope } from './Scope';
 import { Variable } from './Variable';
 interface ScopeManagerOptions {
@@ -8,7 +9,7 @@
     nodejsScope?: boolean;
     sourceType?: 'module' | 'script';
     impliedStrict?: boolean;
-    ecmaVersion?: number;
+    ecmaVersion?: EcmaVersion;
 }
 interface ScopeManager {
     __options: ScopeManagerOptions;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map
index aeb32e3..7c9ba53 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ScopeManager.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"ScopeManager.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js
index a37ab9c..c886eb7 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js
@@ -3,6 +3,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.ScopeManager = void 0;
 const scope_manager_1 = __importDefault(require("eslint-scope/lib/scope-manager"));
 const ScopeManager = scope_manager_1.default;
 exports.ScopeManager = ScopeManager;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map
index 4cb95d6..35d90d1 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map
@@ -1 +1 @@
-{"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":";;;;;AACA,mFAAgE;AAsDhE,MAAM,YAAY,GAAG,uBAEpB,CAAC;AAEO,oCAAY"}
\ No newline at end of file
+{"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":";;;;;;AAAA,mFAAgE;AAwDhE,MAAM,YAAY,GAAG,uBAEpB,CAAC;AAEO,oCAAY"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts
index 14323b0..a5d6ddf 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import { TSESTree } from '../ts-estree';
 import { Reference } from './Reference';
 import { Definition } from './Definition';
 import { Scope } from './Scope';
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map
index 9c581e3..604e185 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Variable.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,QAAA,MAAM,QAAQ,oBAEb,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"Variable.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,QAAA,MAAM,QAAQ,YACJ,QACT,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js
index 1fe0510..c0fdac2 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js
@@ -3,6 +3,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Variable = void 0;
 const variable_1 = __importDefault(require("eslint-scope/lib/variable"));
 const Variable = variable_1.default;
 exports.Variable = Variable;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map
index 3d3036f..d6545bb 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map
@@ -1 +1 @@
-{"version":3,"file":"Variable.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":";;;;;AACA,yEAAuD;AAgBvD,MAAM,QAAQ,GAAG,kBAEhB,CAAC;AAEO,4BAAQ"}
\ No newline at end of file
+{"version":3,"file":"Variable.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAuD;AAiBvD,MAAM,QAAQ,GAAG,kBAEhB,CAAC;AAEO,4BAAQ"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts
index a719dd6..dbcb76b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts
@@ -1,3 +1,5 @@
+import { EcmaVersion } from '../ts-eslint';
+import { TSESTree } from '../ts-estree';
 import { ScopeManager } from './ScopeManager';
 interface AnalysisOptions {
     optimistic?: boolean;
@@ -5,10 +7,10 @@
     ignoreEval?: boolean;
     nodejsScope?: boolean;
     impliedStrict?: boolean;
-    fallback?: string | ((node: {}) => string[]);
+    fallback?: string | ((node: TSESTree.Node) => string[]);
     sourceType?: 'script' | 'module';
-    ecmaVersion?: number;
+    ecmaVersion?: EcmaVersion;
 }
-declare const analyze: (ast: {}, options?: AnalysisOptions | undefined) => ScopeManager;
+declare const analyze: (ast: TSESTree.Node, options?: AnalysisOptions | undefined) => ScopeManager;
 export { analyze, AnalysisOptions };
 //# sourceMappingURL=analyze.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map
index aa13050..9a3654b 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,QAAA,MAAM,OAAO,kEAGI,CAAC;AAElB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AACD,QAAA,MAAM,OAAO,QACN,SAAS,IAAI,4CAEf,YAAY,CAAC;AAElB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js
index 4f34a8f..7fddff1 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.analyze = void 0;
 const eslint_scope_1 = require("eslint-scope");
 const analyze = eslint_scope_1.analyze;
 exports.analyze = analyze;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map
index 4db6fd8..f015cc4 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map
@@ -1 +1 @@
-{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":";;AAAA,+CAAwD;AAaxD,MAAM,OAAO,GAAG,sBAGC,CAAC;AAET,0BAAO"}
\ No newline at end of file
+{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":";;;AAAA,+CAAwD;AAexD,MAAM,OAAO,GAAG,sBAGC,CAAC;AAET,0BAAO"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js
index 7735874..34d3243 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js
@@ -1,16 +1,25 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.version = void 0;
 const eslint_scope_1 = require("eslint-scope");
-__export(require("./analyze"));
-__export(require("./Definition"));
-__export(require("./PatternVisitor"));
-__export(require("./Reference"));
-__export(require("./Referencer"));
-__export(require("./Scope"));
-__export(require("./ScopeManager"));
-__export(require("./Variable"));
+__exportStar(require("./analyze"), exports);
+__exportStar(require("./Definition"), exports);
+__exportStar(require("./Options"), exports);
+__exportStar(require("./PatternVisitor"), exports);
+__exportStar(require("./Reference"), exports);
+__exportStar(require("./Referencer"), exports);
+__exportStar(require("./Scope"), exports);
+__exportStar(require("./ScopeManager"), exports);
+__exportStar(require("./Variable"), exports);
 exports.version = eslint_scope_1.version;
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map
index 5e963f6..8872a9f 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":";;;;;AAAA,+CAAwD;AAExD,+BAA0B;AAC1B,kCAA6B;AAE7B,sCAAiC;AACjC,iCAA4B;AAC5B,kCAA6B;AAC7B,6BAAwB;AACxB,oCAA+B;AAC/B,gCAA2B;AACd,QAAA,OAAO,GAAW,sBAAa,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAwD;AAExD,4CAA0B;AAC1B,+CAA6B;AAC7B,4CAA0B;AAC1B,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,6CAA2B;AACd,QAAA,OAAO,GAAW,sBAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts
index bd38a81..88d6379 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts
@@ -1,4 +1,4 @@
-import { TSESTree, AST_TOKEN_TYPES } from '@typescript-eslint/typescript-estree';
+import { TSESTree, AST_TOKEN_TYPES } from '../ts-estree';
 declare namespace AST {
     type TokenType = AST_TOKEN_TYPES;
     type Token = TSESTree.Token;
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map
index e9b730d..8dca544 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"AST.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/AST.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAE9C,kBAAU,GAAG,CAAC;IACZ,KAAY,SAAS,GAAG,eAAe,CAAC;IAExC,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnC,KAAY,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAErD,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;CACpC;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"AST.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/AST.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzD,kBAAU,GAAG,CAAC;IACZ,KAAY,SAAS,GAAG,eAAe,CAAC;IAExC,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnC,KAAY,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAErD,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;CACpC;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts
index 412c3b3..f996162 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts
@@ -1,15 +1,75 @@
 import { Linter } from './Linter';
-import { RuleModule, RuleListener } from './Rule';
-interface CLIEngine {
-    version: string;
+import { RuleListener, RuleMetaData, RuleModule } from './Rule';
+declare class CLIEngineBase {
+    /**
+     * Creates a new instance of the core CLI engine.
+     * @param providedOptions The options for this instance.
+     */
+    constructor(options: CLIEngine.Options);
+    /**
+     * Add a plugin by passing its configuration
+     * @param name Name of the plugin.
+     * @param pluginObject Plugin configuration object.
+     */
+    addPlugin(name: string, pluginObject: Linter.Plugin): void;
+    /**
+     * Executes the current configuration on an array of file and directory names.
+     * @param patterns An array of file and directory names.
+     * @returns The results for all files that were linted.
+     */
     executeOnFiles(patterns: string[]): CLIEngine.LintReport;
-    resolveFileGlobPatterns(patterns: string[]): string[];
+    /**
+     * Executes the current configuration on text.
+     * @param text A string of JavaScript code to lint.
+     * @param filename An optional string representing the texts filename.
+     * @param warnIgnored Always warn when a file is ignored
+     * @returns The results for the linting.
+     */
+    executeOnText(text: string, filename?: string, warnIgnored?: boolean): CLIEngine.LintReport;
+    /**
+     * Returns a configuration object for the given file based on the CLI options.
+     * This is the same logic used by the ESLint CLI executable to determine configuration for each file it processes.
+     * @param filePath The path of the file to retrieve a config object for.
+     * @returns A configuration object for the file.
+     */
     getConfigForFile(filePath: string): Linter.Config;
-    executeOnText(text: string, filename?: string): CLIEngine.LintReport;
-    addPlugin(name: string, pluginObject: unknown): void;
-    isPathIgnored(filePath: string): boolean;
+    /**
+     * Returns the formatter representing the given format.
+     * @param format The name of the format to load or the path to a custom formatter.
+     * @returns The formatter function.
+     */
     getFormatter(format?: string): CLIEngine.Formatter;
+    /**
+     * Checks if a given path is ignored by ESLint.
+     * @param filePath The path of the file to check.
+     * @returns Whether or not the given path is ignored.
+     */
+    isPathIgnored(filePath: string): boolean;
+    /**
+     * Resolves the patterns passed into `executeOnFiles()` into glob-based patterns for easier handling.
+     * @param patterns The file patterns passed on the command line.
+     * @returns The equivalent glob patterns.
+     */
+    resolveFileGlobPatterns(patterns: string[]): string[];
     getRules<TMessageIds extends string = string, TOptions extends readonly unknown[] = unknown[], TRuleListener extends RuleListener = RuleListener>(): Map<string, RuleModule<TMessageIds, TOptions, TRuleListener>>;
+    /**
+     * Returns results that only contains errors.
+     * @param results The results to filter.
+     * @returns The filtered results.
+     */
+    static getErrorResults(results: CLIEngine.LintResult[]): CLIEngine.LintResult[];
+    /**
+     * Returns the formatter representing the given format or null if the `format` is not a string.
+     * @param format The name of the format to load or the path to a custom formatter.
+     * @returns The formatter function.
+     */
+    static getFormatter(format?: string): CLIEngine.Formatter;
+    /**
+     * Outputs fixes from the given results to files.
+     * @param report The report object created by CLIEngine.
+     */
+    static outputFixes(report: CLIEngine.LintReport): void;
+    static version: string;
 }
 declare namespace CLIEngine {
     interface Options {
@@ -23,6 +83,7 @@
         configFile?: string;
         cwd?: string;
         envs?: string[];
+        errorOnUnmatchedPattern?: boolean;
         extensions?: string[];
         fix?: boolean;
         globals?: string[];
@@ -33,6 +94,7 @@
         parser?: string;
         parserOptions?: Linter.ParserOptions;
         plugins?: string[];
+        resolvePluginsRelativeTo?: string;
         rules?: {
             [name: string]: Linter.RuleLevel | Linter.RuleLevelAndOptions;
         };
@@ -55,13 +117,27 @@
         warningCount: number;
         fixableErrorCount: number;
         fixableWarningCount: number;
+        usedDeprecatedRules: DeprecatedRuleUse[];
     }
-    type Formatter = (results: LintResult[]) => string;
+    interface DeprecatedRuleUse {
+        ruleId: string;
+        replacedBy: string[];
+    }
+    interface LintResultData<TMessageIds extends string> {
+        rulesMeta: {
+            [ruleId: string]: RuleMetaData<TMessageIds>;
+        };
+    }
+    type Formatter = <TMessageIds extends string>(results: LintResult[], data?: LintResultData<TMessageIds>) => string;
 }
-declare const CLIEngine: {
-    new (options: CLIEngine.Options): CLIEngine;
-    getErrorResults(results: CLIEngine.LintResult[]): CLIEngine.LintResult[];
-    outputFixes(report: CLIEngine.LintReport): void;
-};
+declare const CLIEngine_base: typeof CLIEngineBase;
+/**
+ * The underlying utility that runs the ESLint command line interface. This object will read the filesystem for
+ * configuration and file information but will not output any results. Instead, it allows you direct access to the
+ * important information so you can deal with the output yourself.
+ * @deprecated use the ESLint class instead
+ */
+declare class CLIEngine extends CLIEngine_base {
+}
 export { CLIEngine };
 //# sourceMappingURL=CLIEngine.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map
index 4adb507..6d8d24e 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"CLIEngine.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"CLIEngine.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js
index 861cf4a..8ccf2b7 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js
@@ -1,7 +1,15 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-namespace */
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.CLIEngine = void 0;
 const eslint_1 = require("eslint");
-const CLIEngine = eslint_1.CLIEngine;
+/**
+ * The underlying utility that runs the ESLint command line interface. This object will read the filesystem for
+ * configuration and file information but will not output any results. Instead, it allows you direct access to the
+ * important information so you can deal with the output yourself.
+ * @deprecated use the ESLint class instead
+ */
+class CLIEngine extends eslint_1.CLIEngine {
+}
 exports.CLIEngine = CLIEngine;
 //# sourceMappingURL=CLIEngine.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map
index 81a10f2..4ac1481 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map
@@ -1 +1 @@
-{"version":3,"file":"CLIEngine.js","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAEpD,mCAAsD;AA8EtD,MAAM,SAAS,GAAG,kBAOjB,CAAC;AAEO,8BAAS"}
\ No newline at end of file
+{"version":3,"file":"CLIEngine.js","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAsD;AAyKtD;;;;;GAKG;AACH,MAAM,SAAU,SAAS,kBAAwC;CAAG;AAE3D,8BAAS"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ESLint.js.map
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts
index 572ad34..248e8fb 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts
@@ -1,84 +1,324 @@
-import { TSESTree, ParserServices } from '@typescript-eslint/typescript-estree';
+import { TSESTree, ParserServices } from '../ts-estree';
 import { ParserOptions as TSParserOptions } from './ParserOptions';
-import { RuleModule, RuleFix } from './Rule';
+import { RuleCreateFunction, RuleFix, RuleModule } from './Rule';
 import { Scope } from './Scope';
 import { SourceCode } from './SourceCode';
-interface Linter {
-    version: string;
-    verify(code: SourceCode | string, config: Linter.Config, filename?: string): Linter.LintMessage[];
-    verify(code: SourceCode | string, config: Linter.Config, options: Linter.LintOptions): Linter.LintMessage[];
-    verifyAndFix(code: string, config: Linter.Config, filename?: string): Linter.FixReport;
-    verifyAndFix(code: string, config: Linter.Config, options: Linter.FixOptions): Linter.FixReport;
+declare class LinterBase {
+    /**
+     * Initialize the Linter.
+     * @param config the config object
+     */
+    constructor(config?: Linter.LinterOptions);
+    /**
+     * Define a new parser module
+     * @param parserId Name of the parser
+     * @param parserModule The parser object
+     */
+    defineParser(parserId: string, parserModule: Linter.ParserModule): void;
+    /**
+     * Defines a new linting rule.
+     * @param ruleId A unique rule identifier
+     * @param ruleModule Function from context to object mapping AST node types to event handlers
+     */
+    defineRule<TMessageIds extends string, TOptions extends readonly unknown[]>(ruleId: string, ruleModule: RuleModule<TMessageIds, TOptions> | RuleCreateFunction): void;
+    /**
+     * Defines many new linting rules.
+     * @param rulesToDefine map from unique rule identifier to rule
+     */
+    defineRules<TMessageIds extends string, TOptions extends readonly unknown[]>(rulesToDefine: Record<string, RuleModule<TMessageIds, TOptions> | RuleCreateFunction>): void;
+    /**
+     * Gets an object with all loaded rules.
+     * @returns All loaded rules
+     */
+    getRules(): Map<string, RuleModule<string, unknown[]>>;
+    /**
+     * Gets the `SourceCode` object representing the parsed source.
+     * @returns The `SourceCode` object.
+     */
     getSourceCode(): SourceCode;
-    defineRule<TMessageIds extends string, TOptions extends readonly unknown[]>(name: string, rule: {
-        meta?: RuleModule<TMessageIds, TOptions>['meta'];
-        create: RuleModule<TMessageIds, TOptions>['create'];
-    }): void;
-    defineRules<TMessageIds extends string, TOptions extends readonly unknown[]>(rules: Record<string, RuleModule<TMessageIds, TOptions>>): void;
-    getRules<TMessageIds extends string, TOptions extends readonly unknown[]>(): Map<string, RuleModule<TMessageIds, TOptions>>;
-    defineParser(name: string, parser: Linter.ParserModule): void;
+    /**
+     * Verifies the text against the rules specified by the second argument.
+     * @param textOrSourceCode The text to parse or a SourceCode object.
+     * @param config An ESLintConfig instance to configure everything.
+     * @param filenameOrOptions The optional filename of the file being checked.
+     *        If this is not set, the filename will default to '<input>' in the rule context.
+     *        If this is an object, then it has "filename", "allowInlineConfig", and some properties.
+     * @returns The results as an array of messages or an empty array if no messages.
+     */
+    verify(textOrSourceCode: SourceCode | string, config: Linter.Config, filenameOrOptions?: string | Linter.VerifyOptions): Linter.LintMessage[];
+    /**
+     * Performs multiple autofix passes over the text until as many fixes as possible have been applied.
+     * @param text The source text to apply fixes to.
+     * @param config The ESLint config object to use.
+     * @param options The ESLint options object to use.
+     * @returns The result of the fix operation as returned from the SourceCodeFixer.
+     */
+    verifyAndFix(code: string, config: Linter.Config, options: Linter.FixOptions): Linter.FixReport;
+    /**
+     * The version from package.json.
+     */
+    readonly version: string;
+    /**
+     * The version from package.json.
+     */
+    static readonly version: string;
 }
 declare namespace Linter {
-    type Severity = 0 | 1 | 2;
-    type RuleLevel = Severity | 'off' | 'warn' | 'error';
-    type RuleLevelAndOptions = [RuleLevel, ...unknown[]];
-    interface Config {
-        rules?: {
-            [name: string]: RuleLevel | RuleLevelAndOptions;
-        };
-        parser?: string;
-        parserOptions?: ParserOptions;
-        settings?: {
-            [name: string]: unknown;
-        };
+    export interface LinterOptions {
+        /**
+         * path to a directory that should be considered as the current working directory.
+         */
+        cwd?: string;
+    }
+    export type Severity = 0 | 1 | 2;
+    export type SeverityString = 'off' | 'warn' | 'error';
+    export type RuleLevel = Severity | SeverityString;
+    export type RuleLevelAndOptions = [RuleLevel, ...unknown[]];
+    export type RuleEntry = RuleLevel | RuleLevelAndOptions;
+    export type RulesRecord = Partial<Record<string, RuleEntry>>;
+    interface BaseConfig {
+        $schema?: string;
+        /**
+         * The environment settings.
+         */
         env?: {
             [name: string]: boolean;
         };
+        /**
+         * The path to other config files or the package name of shareable configs.
+         */
+        extends?: string | string[];
+        /**
+         * The global variable settings.
+         */
         globals?: {
             [name: string]: boolean;
         };
-    }
-    type ParserOptions = TSParserOptions;
-    interface LintOptions {
-        filename?: string;
-        preprocess?: (code: string) => string[];
-        postprocess?: (problemLists: LintMessage[][]) => LintMessage[];
-        allowInlineConfig?: boolean;
+        /**
+         * The flag that disables directive comments.
+         */
+        noInlineConfig?: boolean;
+        /**
+         * The override settings per kind of files.
+         */
+        overrides?: ConfigOverride[];
+        /**
+         * The path to a parser or the package name of a parser.
+         */
+        parser?: string;
+        /**
+         * The parser options.
+         */
+        parserOptions?: ParserOptions;
+        /**
+         * The plugin specifiers.
+         */
+        plugins?: string[];
+        /**
+         * The processor specifier.
+         */
+        processor?: string;
+        /**
+         * The flag to report unused `eslint-disable` comments.
+         */
         reportUnusedDisableDirectives?: boolean;
+        /**
+         * The rule settings.
+         */
+        rules?: RulesRecord;
+        /**
+         * The shared settings.
+         */
+        settings?: {
+            [name: string]: unknown;
+        };
     }
-    interface LintMessage {
-        column: number;
-        line: number;
-        endColumn?: number;
-        endLine?: number;
-        ruleId: string | null;
-        message: string;
-        nodeType: string;
-        fatal?: true;
-        severity: Severity;
-        fix?: RuleFix;
-        source: string | null;
+    export interface ConfigOverride extends BaseConfig {
+        excludedFiles?: string | string[];
+        files: string | string[];
     }
-    interface FixOptions extends LintOptions {
+    export interface Config extends BaseConfig {
+        /**
+         * The glob patterns that ignore to lint.
+         */
+        ignorePatterns?: string | string[];
+        /**
+         * The root flag.
+         */
+        root?: boolean;
+    }
+    export type ParserOptions = TSParserOptions;
+    export interface VerifyOptions {
+        /**
+         * Allow/disallow inline comments' ability to change config once it is set. Defaults to true if not supplied.
+         * Useful if you want to validate JS without comments overriding rules.
+         */
+        allowInlineConfig?: boolean;
+        /**
+         * if `true` then the linter doesn't make `fix` properties into the lint result.
+         */
+        disableFixes?: boolean;
+        /**
+         * the filename of the source code.
+         */
+        filename?: string;
+        /**
+         * the predicate function that selects adopt code blocks.
+         */
+        filterCodeBlock?: (filename: string, text: string) => boolean;
+        /**
+         * postprocessor for report messages.
+         * If provided, this should accept an array of the message lists
+         * for each code block returned from the preprocessor, apply a mapping to
+         * the messages as appropriate, and return a one-dimensional array of
+         * messages.
+         */
+        postprocess?: Processor['postprocess'];
+        /**
+         * preprocessor for source text.
+         * If provided, this should accept a string of source text, and return an array of code blocks to lint.
+         */
+        preprocess?: Processor['preprocess'];
+        /**
+         * Adds reported errors for unused `eslint-disable` directives.
+         */
+        reportUnusedDisableDirectives?: boolean | SeverityString;
+    }
+    export interface FixOptions extends VerifyOptions {
+        /**
+         * Determines whether fixes should be applied.
+         */
         fix?: boolean;
     }
-    interface FixReport {
+    export interface LintSuggestion {
+        desc: string;
+        fix: RuleFix;
+        messageId?: string;
+    }
+    export interface LintMessage {
+        /**
+         * The 1-based column number.
+         */
+        column: number;
+        /**
+         * The 1-based column number of the end location.
+         */
+        endColumn?: number;
+        /**
+         * The 1-based line number of the end location.
+         */
+        endLine?: number;
+        /**
+         * If `true` then this is a fatal error.
+         */
+        fatal?: true;
+        /**
+         * Information for autofix.
+         */
+        fix?: RuleFix;
+        /**
+         * The 1-based line number.
+         */
+        line: number;
+        /**
+         * The error message.
+         */
+        message: string;
+        messageId?: string;
+        nodeType: string;
+        /**
+         * The ID of the rule which makes this message.
+         */
+        ruleId: string | null;
+        /**
+         * The severity of this message.
+         */
+        severity: Severity;
+        source: string | null;
+        /**
+         * Information for suggestions
+         */
+        suggestions?: LintSuggestion[];
+    }
+    export interface FixReport {
+        /**
+         * True, if the code was fixed
+         */
         fixed: boolean;
+        /**
+         * Fixed code text (might be the same as input if no fixes were applied).
+         */
         output: string;
+        /**
+         * Collection of all messages for the given code
+         */
         messages: LintMessage[];
     }
-    type ParserModule = {
-        parse(text: string, options?: unknown): TSESTree.Program;
+    export type ParserModule = {
+        parse(text: string, options?: ParserOptions): TSESTree.Program;
     } | {
-        parseForESLint(text: string, options?: unknown): ESLintParseResult;
+        parseForESLint(text: string, options?: ParserOptions): ESLintParseResult;
     };
-    interface ESLintParseResult {
+    export interface ESLintParseResult {
         ast: TSESTree.Program;
         parserServices?: ParserServices;
         scopeManager?: Scope.ScopeManager;
         visitorKeys?: SourceCode.VisitorKeys;
     }
+    export interface Processor {
+        /**
+         * The function to extract code blocks.
+         */
+        preprocess?: (text: string, filename: string) => Array<string | {
+            text: string;
+            filename: string;
+        }>;
+        /**
+         * The function to merge messages.
+         */
+        postprocess?: (messagesList: Linter.LintMessage[][], filename: string) => Linter.LintMessage[];
+        /**
+         * If `true` then it means the processor supports autofix.
+         */
+        supportsAutofix?: boolean;
+    }
+    export interface Environment {
+        /**
+         * The definition of global variables.
+         */
+        globals?: Record<string, Linter.Config>;
+        /**
+         * The parser options that will be enabled under this environment.
+         */
+        parserOptions?: ParserOptions;
+    }
+    export interface Plugin {
+        /**
+         * The definition of plugin configs.
+         */
+        configs?: Record<string, Linter.Config>;
+        /**
+         * The definition of plugin environments.
+         */
+        environments?: Record<string, Environment>;
+        /**
+         * The definition of plugin processors.
+         */
+        processors?: Record<string, Processor>;
+        /**
+         * The definition of plugin rules.
+         */
+        rules?: Record<string, RuleCreateFunction | RuleModule<string, unknown[]>>;
+    }
+    export {};
 }
-declare const Linter: new () => Linter;
+declare const Linter_base: typeof LinterBase;
+/**
+ * The Linter object does the actual evaluation of the JavaScript code. It doesn't do any filesystem operations, it
+ * simply parses and reports on the code. In particular, the Linter object does not process configuration objects
+ * or files.
+ */
+declare class Linter extends Linter_base {
+}
 export { Linter };
 //# sourceMappingURL=Linter.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map
index 608e0a7..5c2bc13 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Linter.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Linter.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js
index a8a046c..4fd16f1 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js
@@ -1,7 +1,14 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-namespace */
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Linter = void 0;
 const eslint_1 = require("eslint");
-const Linter = eslint_1.Linter;
+/**
+ * The Linter object does the actual evaluation of the JavaScript code. It doesn't do any filesystem operations, it
+ * simply parses and reports on the code. In particular, the Linter object does not process configuration objects
+ * or files.
+ */
+class Linter extends eslint_1.Linter {
+}
 exports.Linter = Linter;
 //# sourceMappingURL=Linter.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map
index 7d93985..8c8e207 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map
@@ -1 +1 @@
-{"version":3,"file":"Linter.js","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAGpD,mCAAgD;AAwHhD,MAAM,MAAM,GAAG,eAEd,CAAC;AAEO,wBAAM"}
\ No newline at end of file
+{"version":3,"file":"Linter.js","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAgD;AA8WhD;;;;GAIG;AACH,MAAM,MAAO,SAAS,eAAkC;CAAG;AAElD,wBAAM"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts
index 05c9f40..d864322 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts
@@ -1,24 +1,2 @@
-import { TSESTreeOptions } from '@typescript-eslint/typescript-estree';
-export interface ParserOptions {
-    comment?: boolean;
-    ecmaFeatures?: {
-        globalReturn?: boolean;
-        jsx?: boolean;
-    };
-    ecmaVersion?: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 2015 | 2016 | 2017 | 2018 | 2019;
-    errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
-    errorOnUnknownASTType?: boolean;
-    extraFileExtensions?: string[];
-    debugLevel?: TSESTreeOptions['debugLevel'];
-    filePath?: string;
-    loc?: boolean;
-    noWatch?: boolean;
-    project?: string | string[];
-    range?: boolean;
-    sourceType?: 'script' | 'module';
-    tokens?: boolean;
-    tsconfigRootDir?: string;
-    useJSXTextNode?: boolean;
-    warnOnUnsupportedTypeScriptVersion?: boolean;
-}
+export { DebugLevel, EcmaVersion, ParserOptions, SourceType, } from '@typescript-eslint/types';
 //# sourceMappingURL=ParserOptions.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map
index 26b50de..33c6d0e 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ParserOptions.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/ParserOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5E,2CAA2C,CAAC,EAAE,OAAO,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C"}
\ No newline at end of file
+{"version":3,"file":"ParserOptions.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/ParserOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,0BAA0B,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts
index 87e3dd9..66a6599 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts
@@ -1,5 +1,5 @@
-import { ParserServices, TSESTree } from '@typescript-eslint/typescript-estree';
 import { JSONSchema4 } from '../json-schema';
+import { ParserServices, TSESTree } from '../ts-estree';
 import { AST } from './AST';
 import { Linter } from './Linter';
 import { Scope } from './Scope';
@@ -24,6 +24,10 @@
      */
     url: string;
     /**
+     * Specifies whether the rule can return suggestions.
+     */
+    suggestion?: boolean;
+    /**
      * Does the rule require us to create a full TypeScript Program in order for it
      * to type-check code. This is only used for documentation purposes.
      */
@@ -90,37 +94,37 @@
     /**
      * The parameters for the message string associated with `messageId`.
      */
-    data?: Record<string, unknown>;
+    readonly data?: Readonly<Record<string, unknown>>;
     /**
      * The fixer function.
      */
-    fix?: ReportFixFunction | null;
+    readonly fix?: ReportFixFunction | null;
     /**
      * The messageId which is being reported.
      */
-    messageId: TMessageIds;
+    readonly messageId: TMessageIds;
 }
 interface ReportDescriptorWithSuggestion<TMessageIds extends string> extends ReportDescriptorBase<TMessageIds> {
     /**
      * 6.7's Suggestions API
      */
-    suggest?: Readonly<ReportSuggestionArray<TMessageIds>> | null;
+    readonly suggest?: Readonly<ReportSuggestionArray<TMessageIds>> | null;
 }
 interface ReportDescriptorNodeOptionalLoc {
     /**
      * The Node or AST Token which the report is being attached to
      */
-    node: TSESTree.Node | TSESTree.Comment | TSESTree.Token;
+    readonly node: TSESTree.Node | TSESTree.Comment | TSESTree.Token;
     /**
      * An override of the location of the report
      */
-    loc?: TSESTree.SourceLocation | TSESTree.LineAndColumnData;
+    readonly loc?: Readonly<TSESTree.SourceLocation> | Readonly<TSESTree.LineAndColumnData>;
 }
 interface ReportDescriptorLocOnly {
     /**
      * An override of the location of the report
      */
-    loc: TSESTree.SourceLocation | TSESTree.LineAndColumnData;
+    loc: Readonly<TSESTree.SourceLocation> | Readonly<TSESTree.LineAndColumnData>;
 }
 declare type ReportDescriptor<TMessageIds extends string> = ReportDescriptorWithSuggestion<TMessageIds> & (ReportDescriptorNodeOptionalLoc | ReportDescriptorLocOnly);
 interface RuleContext<TMessageIds extends string, TOptions extends readonly unknown[]> {
@@ -134,11 +138,6 @@
      */
     options: TOptions;
     /**
-     * The shared settings from configuration.
-     * We do not have any shared settings in this plugin.
-     */
-    settings: Record<string, unknown>;
-    /**
      * The name of the parser from configuration.
      */
     parserPath: string;
@@ -151,6 +150,11 @@
      */
     parserServices?: ParserServices;
     /**
+     * The shared settings from configuration.
+     * We do not have any shared settings in this plugin.
+     */
+    settings: Record<string, unknown>;
+    /**
      * Returns an array of the ancestors of the currently-traversed node, starting at
      * the root of the AST and continuing through the direct parent of the current node.
      * This array does not include the currently-traversed node itself.
@@ -174,7 +178,7 @@
      * Returns a SourceCode object that you can use to work with the source that
      * was passed to ESLint.
      */
-    getSourceCode(): SourceCode;
+    getSourceCode(): Readonly<SourceCode>;
     /**
      * Marks a variable with the given name in the current scope as used.
      * This affects the no-unused-vars rule.
@@ -200,6 +204,7 @@
     BreakStatement?: RuleFunction<TSESTree.BreakStatement>;
     CallExpression?: RuleFunction<TSESTree.CallExpression>;
     CatchClause?: RuleFunction<TSESTree.CatchClause>;
+    ChainExpression?: RuleFunction<TSESTree.ChainExpression>;
     ClassBody?: RuleFunction<TSESTree.ClassBody>;
     ClassDeclaration?: RuleFunction<TSESTree.ClassDeclaration>;
     ClassExpression?: RuleFunction<TSESTree.ClassExpression>;
@@ -223,9 +228,9 @@
     FunctionExpression?: RuleFunction<TSESTree.FunctionExpression>;
     Identifier?: RuleFunction<TSESTree.Identifier>;
     IfStatement?: RuleFunction<TSESTree.IfStatement>;
-    Import?: RuleFunction<TSESTree.Import>;
     ImportDeclaration?: RuleFunction<TSESTree.ImportDeclaration>;
     ImportDefaultSpecifier?: RuleFunction<TSESTree.ImportDefaultSpecifier>;
+    ImportExpression?: RuleFunction<TSESTree.ImportExpression>;
     ImportNamespaceSpecifier?: RuleFunction<TSESTree.ImportNamespaceSpecifier>;
     ImportSpecifier?: RuleFunction<TSESTree.ImportSpecifier>;
     JSXAttribute?: RuleFunction<TSESTree.JSXAttribute>;
@@ -251,8 +256,6 @@
     NewExpression?: RuleFunction<TSESTree.NewExpression>;
     ObjectExpression?: RuleFunction<TSESTree.ObjectExpression>;
     ObjectPattern?: RuleFunction<TSESTree.ObjectPattern>;
-    OptionalCallExpression?: RuleFunction<TSESTree.OptionalCallExpression>;
-    OptionalMemberExpression?: RuleFunction<TSESTree.OptionalMemberExpression>;
     Program?: RuleFunction<TSESTree.Program>;
     Property?: RuleFunction<TSESTree.Property>;
     RestElement?: RuleFunction<TSESTree.RestElement>;
@@ -359,7 +362,8 @@
      * Function which returns an object with methods that ESLint calls to “visit”
      * nodes while traversing the abstract syntax tree.
      */
-    create(context: RuleContext<TMessageIds, TOptions>): TRuleListener;
+    create(context: Readonly<RuleContext<TMessageIds, TOptions>>): TRuleListener;
 }
-export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, };
+declare type RuleCreateFunction = (context: Readonly<RuleContext<never, unknown[]>>) => RuleListener;
+export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, };
 //# sourceMappingURL=Rule.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map
index 38bdbbd..0e858f8 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts
index 9496d90..12de0ff 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts
@@ -1,53 +1,137 @@
-import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/typescript-estree';
+import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree';
 import { ParserOptions } from './ParserOptions';
 import { RuleModule } from './Rule';
 interface ValidTestCase<TOptions extends Readonly<unknown[]>> {
-    code: string;
-    options?: TOptions;
-    filename?: string;
-    parserOptions?: ParserOptions;
-    settings?: Record<string, unknown>;
-    parser?: string;
-    globals?: Record<string, boolean>;
-    env?: {
-        browser?: boolean;
-    };
+    /**
+     * Code for the test case.
+     */
+    readonly code: string;
+    /**
+     * Environments for the test case.
+     */
+    readonly env?: Readonly<Record<string, boolean>>;
+    /**
+     * The fake filename for the test case. Useful for rules that make assertion about filenames.
+     */
+    readonly filename?: string;
+    /**
+     * The additional global variables.
+     */
+    readonly globals?: Record<string, 'readonly' | 'writable' | 'off'>;
+    /**
+     * Options for the test case.
+     */
+    readonly options?: Readonly<TOptions>;
+    /**
+     * The absolute path for the parser.
+     */
+    readonly parser?: string;
+    /**
+     * Options for the parser.
+     */
+    readonly parserOptions?: Readonly<ParserOptions>;
+    /**
+     * Settings for the test case.
+     */
+    readonly settings?: Readonly<Record<string, unknown>>;
 }
 interface SuggestionOutput<TMessageIds extends string> {
-    messageId: TMessageIds;
-    data?: Record<string, unknown>;
+    /**
+     * Reported message ID.
+     */
+    readonly messageId: TMessageIds;
+    /**
+     * The data used to fill the message template.
+     */
+    readonly data?: Readonly<Record<string, unknown>>;
     /**
      * NOTE: Suggestions will be applied as a stand-alone change, without triggering multi-pass fixes.
      * Each individual error has its own suggestion, so you have to show the correct, _isolated_ output for each suggestion.
      */
-    output: string;
+    readonly output: string;
 }
 interface InvalidTestCase<TMessageIds extends string, TOptions extends Readonly<unknown[]>> extends ValidTestCase<TOptions> {
-    errors: TestCaseError<TMessageIds>[];
-    output?: string | null;
+    /**
+     * Expected errors.
+     */
+    readonly errors: readonly TestCaseError<TMessageIds>[];
+    /**
+     * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested.
+     */
+    readonly output?: string | null;
 }
 interface TestCaseError<TMessageIds extends string> {
-    messageId: TMessageIds;
-    data?: Record<string, unknown>;
-    type?: AST_NODE_TYPES | AST_TOKEN_TYPES;
-    line?: number;
-    column?: number;
-    endLine?: number;
-    endColumn?: number;
-    suggestions?: SuggestionOutput<TMessageIds>[] | null;
+    /**
+     * The 1-based column number of the reported start location.
+     */
+    readonly column?: number;
+    /**
+     * The data used to fill the message template.
+     */
+    readonly data?: Readonly<Record<string, unknown>>;
+    /**
+     * The 1-based column number of the reported end location.
+     */
+    readonly endColumn?: number;
+    /**
+     * The 1-based line number of the reported end location.
+     */
+    readonly endLine?: number;
+    /**
+     * The 1-based line number of the reported start location.
+     */
+    readonly line?: number;
+    /**
+     * Reported message ID.
+     */
+    readonly messageId: TMessageIds;
+    /**
+     * Reported suggestions.
+     */
+    readonly suggestions?: SuggestionOutput<TMessageIds>[] | null;
+    /**
+     * The type of the reported AST node.
+     */
+    readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES;
 }
 interface RunTests<TMessageIds extends string, TOptions extends Readonly<unknown[]>> {
-    valid: (ValidTestCase<TOptions> | string)[];
-    invalid: InvalidTestCase<TMessageIds, TOptions>[];
+    readonly valid: readonly (ValidTestCase<TOptions> | string)[];
+    readonly invalid: readonly InvalidTestCase<TMessageIds, TOptions>[];
 }
 interface RuleTesterConfig {
-    parser: string;
-    parserOptions?: ParserOptions;
+    readonly parser: string;
+    readonly parserOptions?: Readonly<ParserOptions>;
 }
-declare const RuleTester_base: new (...args: unknown[]) => any;
+declare class RuleTesterBase {
+    /**
+     * Creates a new instance of RuleTester.
+     * @param testerConfig extra configuration for the tester
+     */
+    constructor(testerConfig?: RuleTesterConfig);
+    /**
+     * Adds a new rule test to execute.
+     * @param ruleName The name of the rule to run.
+     * @param rule The rule to test.
+     * @param test The collection of tests to run.
+     */
+    run<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(ruleName: string, rule: RuleModule<TMessageIds, TOptions>, tests: RunTests<TMessageIds, TOptions>): void;
+    /**
+     * If you supply a value to this property, the rule tester will call this instead of using the version defined on
+     * the global namespace.
+     * @param text a string describing the rule
+     * @param callback the test callback
+     */
+    static describe?: (text: string, callback: () => void) => void;
+    /**
+     * If you supply a value to this property, the rule tester will call this instead of using the version defined on
+     * the global namespace.
+     * @param text a string describing the test case
+     * @param callback the test callback
+     */
+    static it?: (text: string, callback: () => void) => void;
+}
+declare const RuleTester_base: typeof RuleTesterBase;
 declare class RuleTester extends RuleTester_base {
-    constructor(config?: RuleTesterConfig);
-    run<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(name: string, rule: RuleModule<TMessageIds, TOptions>, tests: RunTests<TMessageIds, TOptions>): void;
 }
 export { InvalidTestCase, SuggestionOutput, RuleTester, RuleTesterConfig, RunTests, TestCaseError, ValidTestCase, };
 //# sourceMappingURL=RuleTester.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map
index 582cd76..209fca5 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,UAAU,gBAAgB,CAAC,WAAW,SAAS,MAAM;IACnD,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe,CACvB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,CACpC,SAAQ,aAAa,CAAC,QAAQ,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,UAAU,aAAa,CAAC,WAAW,SAAS,MAAM;IAChD,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;CACtD;AAED,UAAU,QAAQ,CAChB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;IAGpC,KAAK,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;CACnD;AACD,UAAU,gBAAgB;IAExB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;;AAGD,cAAM,UAAW,SAAQ,eAGvB;gBACY,MAAM,CAAC,EAAE,gBAAgB;IAWrC,GAAG,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAClE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EACvC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GACrC,IAAI;CAIR;AAED,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,aAAa,GACd,CAAC"}
\ No newline at end of file
+{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js
index 1e04595..f31d0a6 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js
@@ -1,22 +1,8 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.RuleTester = void 0;
 const eslint_1 = require("eslint");
-// the cast on the extends is so that we don't want to have the built type defs to attempt to import eslint
 class RuleTester extends eslint_1.RuleTester {
-    constructor(config) {
-        var _a, _b;
-        super(config);
-        // nobody will ever need watching in tests
-        // so we can give everyone a perf win by disabling watching
-        if ((_b = (_a = config) === null || _a === void 0 ? void 0 : _a.parserOptions) === null || _b === void 0 ? void 0 : _b.project) {
-            config.parserOptions.noWatch =
-                typeof config.parserOptions.noWatch === 'boolean' || true;
-        }
-    }
-    run(name, rule, tests) {
-        // this method is only defined here because we lazily type the eslint import with `any`
-        super.run(name, rule, tests);
-    }
 }
 exports.RuleTester = RuleTester;
 //# sourceMappingURL=RuleTester.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map
index 1374a80..4fe5fc6 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map
@@ -1 +1 @@
-{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":";;AAIA,mCAAwD;AA4DxD,2GAA2G;AAC3G,MAAM,UAAW,SAAS,mBAGxB;IACA,YAAY,MAAyB;;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,0CAA0C;QAC1C,2DAA2D;QAC3D,gBAAI,MAAM,0CAAE,aAAa,0CAAE,OAAO,EAAE;YAClC,MAAM,CAAC,aAAa,CAAC,OAAO;gBAC1B,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC;SAC7D;IACH,CAAC;IAED,GAAG,CACD,IAAY,EACZ,IAAuC,EACvC,KAAsC;QAEtC,uFAAuF;QACvF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AAKC,gCAAU"}
\ No newline at end of file
+{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":";;;AAAA,mCAAwD;AAiKxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAKrE,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts
index 43afac6..a1389e7 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts
@@ -1,80 +1,46 @@
-import { TSESTree } from '@typescript-eslint/typescript-estree';
+import * as scopeManager from '@typescript-eslint/scope-manager';
+import { TSESTree } from '@typescript-eslint/types';
 declare namespace Scope {
-    interface ScopeManager {
-        scopes: Scope[];
-        globalScope: Scope | null;
-        acquire(node: TSESTree.Node, inner?: boolean): Scope | null;
-        getDeclaredVariables(node: TSESTree.Node): Variable[];
+    class ESLintScopeVariable {
+        readonly defs: Definition[];
+        readonly identifiers: TSESTree.Identifier[];
+        readonly name: string;
+        readonly references: Reference[];
+        readonly scope: Scope;
+        /**
+         * Written to by ESLint.
+         * If this key exists, this variable is a global variable added by ESLint.
+         * If this is `true`, this variable can be assigned arbitrary values.
+         * If this is `false`, this variable is readonly.
+         */
+        writeable?: boolean;
+        /**
+         * Written to by ESLint.
+         * This property is undefined if there are no globals directive comments.
+         * The array of globals directive comments which defined this global variable in the source code file.
+         */
+        eslintExplicitGlobal?: boolean;
+        /**
+         * Written to by ESLint.
+         * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments.
+         */
+        eslintImplicitGlobalSetting?: 'readonly' | 'writable';
+        /**
+         * Written to by ESLint.
+         * If this key exists, it is a global variable added by ESLint.
+         * If `true`, this global variable was defined by a globals directive comment in the source code file.
+         */
+        eslintExplicitGlobalComments?: TSESTree.Comment[];
     }
-    interface Reference {
-        identifier: TSESTree.Identifier;
-        from: Scope;
-        resolved: Variable | null;
-        writeExpr: TSESTree.Node | null;
-        init: boolean;
-        isWrite(): boolean;
-        isRead(): boolean;
-        isWriteOnly(): boolean;
-        isReadOnly(): boolean;
-        isReadWrite(): boolean;
-    }
-    interface Variable {
-        name: string;
-        identifiers: TSESTree.Identifier[];
-        references: Reference[];
-        defs: Definition[];
-        scope: Scope;
-        eslintUsed?: boolean;
-    }
-    interface Scope {
-        type: 'block' | 'catch' | 'class' | 'for' | 'function' | 'function-expression-name' | 'global' | 'module' | 'switch' | 'with' | 'TDZ';
-        isStrict: boolean;
-        upper: Scope | null;
-        childScopes: Scope[];
-        variableScope: Scope;
-        block: TSESTree.Node;
-        variables: Variable[];
-        set: Map<string, Variable>;
-        references: Reference[];
-        through: Reference[];
-        functionExpressionScope: boolean;
-    }
-    type DefinitionType = {
-        type: 'CatchClause';
-        node: TSESTree.CatchClause;
-        parent: null;
-    } | {
-        type: 'ClassName';
-        node: TSESTree.ClassDeclaration | TSESTree.ClassExpression;
-        parent: null;
-    } | {
-        type: 'FunctionName';
-        node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression;
-        parent: null;
-    } | {
-        type: 'ImplicitGlobalVariable';
-        node: TSESTree.Program;
-        parent: null;
-    } | {
-        type: 'ImportBinding';
-        node: TSESTree.ImportSpecifier | TSESTree.ImportDefaultSpecifier | TSESTree.ImportNamespaceSpecifier;
-        parent: TSESTree.ImportDeclaration;
-    } | {
-        type: 'Parameter';
-        node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression;
-        parent: null;
-    } | {
-        type: 'TDZ';
-        node: unknown;
-        parent: null;
-    } | {
-        type: 'Variable';
-        node: TSESTree.VariableDeclarator;
-        parent: TSESTree.VariableDeclaration;
-    };
-    type Definition = DefinitionType & {
-        name: TSESTree.Identifier;
-    };
+    export type ScopeManager = scopeManager.ScopeManager;
+    export type Reference = scopeManager.Reference;
+    export type Variable = scopeManager.Variable | ESLintScopeVariable;
+    export type Scope = scopeManager.Scope;
+    export const ScopeType: typeof scopeManager.ScopeType;
+    export type DefinitionType = scopeManager.Definition;
+    export type Definition = scopeManager.Definition;
+    export const DefinitionType: typeof scopeManager.DefinitionType;
+    export {};
 }
 export { Scope };
 //# sourceMappingURL=Scope.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map
index c7c3311..0a97fe2 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,kBAAU,KAAK,CAAC;IAGd,MAAc,mBAAmB;QAC/B,SAAgB,IAAI,EAAE,UAAU,EAAE,CAAC;QACnC,SAAgB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,SAAgB,IAAI,EAAE,MAAM,CAAC;QAC7B,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAC;QACxC,SAAgB,KAAK,EAAE,KAAK,CAAC;QAE7B;;;;;WAKG;QACI,SAAS,CAAC,EAAE,OAAO,CAAC;QAE3B;;;;WAIG;QACI,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAEtC;;;WAGG;QACI,2BAA2B,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;QAE7D;;;;WAIG;QACI,4BAA4B,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC1D;IAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAC/C,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACnE,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,MAAM,SAAS,+BAAyB,CAAC;IAEhD,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC;IACrD,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IACjD,MAAM,CAAC,MAAM,cAAc,oCAA8B,CAAC;;CAC3D;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js
index 58352c5..f2d43b6 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js
@@ -1,4 +1,31 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-namespace */
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
+    return result;
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Scope = void 0;
+const scopeManager = __importStar(require("@typescript-eslint/scope-manager"));
+var Scope;
+(function (Scope) {
+    Scope.ScopeType = scopeManager.ScopeType;
+    Scope.DefinitionType = scopeManager.DefinitionType;
+})(Scope || (Scope = {}));
+exports.Scope = Scope;
 //# sourceMappingURL=Scope.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map
index aa9a3e0..6c89e79 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map
@@ -1 +1 @@
-{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":";AAAA,oDAAoD"}
\ No newline at end of file
+{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;AAEpD,+EAAiE;AAGjE,IAAU,KAAK,CAgDd;AAhDD,WAAU,KAAK;IA2CA,eAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAInC,oBAAc,GAAG,YAAY,CAAC,cAAc,CAAC;AAC5D,CAAC,EAhDS,KAAK,KAAL,KAAK,QAgDd;AAEQ,sBAAK"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts
index d4c3a8c..5d5b193 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts
@@ -1,64 +1,311 @@
-import { ParserServices, TSESTree } from '@typescript-eslint/typescript-estree';
+import { ParserServices, TSESTree } from '../ts-estree';
 import { Scope } from './Scope';
-declare interface SourceCode {
-    text: string;
+declare class TokenStore {
+    /**
+     * Checks whether any comments exist or not between the given 2 nodes.
+     * @param left The node to check.
+     * @param right The node to check.
+     * @returns `true` if one or more comments exist.
+     */
+    commentsExistBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token): boolean;
+    /**
+     * Gets all comment tokens directly after the given node or token.
+     * @param nodeOrToken The AST node or token to check for adjacent comment tokens.
+     * @returns An array of comments in occurrence order.
+     */
+    getCommentsAfter(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
+    /**
+     * Gets all comment tokens directly before the given node or token.
+     * @param nodeOrToken The AST node or token to check for adjacent comment tokens.
+     * @returns An array of comments in occurrence order.
+     */
+    getCommentsBefore(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
+    /**
+     * Gets all comment tokens inside the given node.
+     * @param node The AST node to get the comments for.
+     * @returns An array of comments in occurrence order.
+     */
+    getCommentsInside(node: TSESTree.Node): TSESTree.Comment[];
+    /**
+     * Gets the first token of the given node.
+     * @param node The AST node.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns An object representing the token.
+     */
+    getFirstToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the first token between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns An object representing the token.
+     */
+    getFirstTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the first `count` tokens of the given node.
+     * @param node The AST node.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens.
+     */
+    getFirstTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the first `count` tokens between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens between left and right.
+     */
+    getFirstTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the last token of the given node.
+     * @param node The AST node.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns An object representing the token.
+     */
+    getLastToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the last token between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns An object representing the token.
+     */
+    getLastTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the last `count` tokens of the given node.
+     * @param node The AST node.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens.
+     */
+    getLastTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the last `count` tokens between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens between left and right.
+     */
+    getLastTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the token that follows a given node or token.
+     * @param node The AST node or token.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns An object representing the token.
+     */
+    getTokenAfter<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the token that precedes a given node or token.
+     * @param node The AST node or token.
+     * @param options The option object
+     * @returns An object representing the token.
+     */
+    getTokenBefore<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets the token starting at the specified index.
+     * @param offset Index of the start of the token's range.
+     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
+     * @returns The token starting at index, or null if no such token.
+     */
+    getTokenByRangeStart<T extends {
+        includeComments?: boolean;
+    }>(offset: number, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
+    /**
+     * Gets all tokens that are related to the given node.
+     * @param node The AST node.
+     * @param beforeCount The number of tokens before the node to retrieve.
+     * @param afterCount The number of tokens after the node to retrieve.
+     * @returns Array of objects representing tokens.
+     */
+    getTokens(node: TSESTree.Node, beforeCount?: number, afterCount?: number): TSESTree.Token[];
+    /**
+     * Gets all tokens that are related to the given node.
+     * @param node The AST node.
+     * @param options The option object. If this is a function then it's `options.filter`.
+     * @returns Array of objects representing tokens.
+     */
+    getTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the `count` tokens that follows a given node or token.
+     * @param node The AST node.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens.
+     */
+    getTokensAfter<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets the `count` tokens that precedes a given node or token.
+     * @param node The AST node.
+     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
+     * @returns Tokens.
+     */
+    getTokensBefore<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets all of the tokens between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param options The option object. If this is a function then it's `options.filter`.
+     * @returns Tokens between left and right.
+     */
+    getTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: T): SourceCode.ReturnTypeFromOptions<T>[];
+    /**
+     * Gets all of the tokens between two non-overlapping nodes.
+     * @param left Node before the desired token range.
+     * @param right Node after the desired token range.
+     * @param padding Number of extra tokens on either side of center.
+     * @returns Tokens between left and right.
+     */
+    getTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: number): SourceCode.ReturnTypeFromOptions<T>[];
+}
+declare class SourceCodeBase extends TokenStore {
+    /**
+     * Represents parsed source code.
+     * @param text The source code text.
+     * @param ast The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
+     */
+    constructor(text: string, ast: SourceCode.Program);
+    /**
+     * Represents parsed source code.
+     * @param config The config object.
+     */
+    constructor(config: SourceCode.SourceCodeConfig);
+    /**
+     * The parsed AST for the source code.
+     */
     ast: SourceCode.Program;
-    lines: string[];
-    hasBOM: boolean;
-    parserServices: ParserServices;
-    scopeManager: Scope.ScopeManager;
-    visitorKeys: SourceCode.VisitorKeys;
-    tokensAndComments: (TSESTree.Comment | TSESTree.Token)[];
-    getText(node?: TSESTree.Node, beforeCount?: number, afterCount?: number): string;
-    getLines(): string[];
+    /**
+     * Retrieves an array containing all comments in the source code.
+     * @returns An array of comment nodes.
+     */
     getAllComments(): TSESTree.Comment[];
+    /**
+     * Gets all comments for the given node.
+     * @param node The AST node to get the comments for.
+     * @returns An object containing a leading and trailing array of comments indexed by their position.
+     */
     getComments(node: TSESTree.Node): {
         leading: TSESTree.Comment[];
         trailing: TSESTree.Comment[];
     };
-    getJSDocComment(node: TSESTree.Node): TSESTree.Node | TSESTree.Token | null;
-    getNodeByRangeIndex(index: number): TSESTree.Node | null;
-    isSpaceBetween(first: TSESTree.Token | TSESTree.Comment | TSESTree.Node, second: TSESTree.Token | TSESTree.Comment | TSESTree.Node): boolean;
     /**
-     * @deprecated in favor of isSpaceBetween()
+     * Converts a (line, column) pair into a range index.
+     * @param loc A line/column location
+     * @returns The range index of the location in the file.
+     */
+    getIndexFromLoc(location: TSESTree.LineAndColumnData): number;
+    /**
+     * Gets the entire source text split into an array of lines.
+     * @returns The source text as an array of lines.
+     */
+    getLines(): string[];
+    /**
+     * Converts a source text index into a (line, column) pair.
+     * @param index The index of a character in a file
+     * @returns A {line, column} location object with a 0-indexed column
+     */
+    getLocFromIndex(index: number): TSESTree.LineAndColumnData;
+    /**
+     * Gets the deepest node containing a range index.
+     * @param index Range index of the desired node.
+     * @returns The node if found or `null` if not found.
+     */
+    getNodeByRangeIndex(index: number): TSESTree.Node | null;
+    /**
+     * Gets the source code for the given node.
+     * @param node The AST node to get the text for.
+     * @param beforeCount The number of characters before the node to retrieve.
+     * @param afterCount The number of characters after the node to retrieve.
+     * @returns The text representing the AST node.
+     */
+    getText(node?: TSESTree.Node, beforeCount?: number, afterCount?: number): string;
+    /**
+     * The flag to indicate that the source code has Unicode BOM.
+     */
+    hasBOM: boolean;
+    /**
+     * Determines if two nodes or tokens have at least one whitespace character
+     * between them. Order does not matter. Returns false if the given nodes or
+     * tokens overlap.
+     * This was added in v6.7.0.
+     * @since 6.7.0
+     * @param first The first node or token to check between.
+     * @param second The second node or token to check between.
+     * @returns True if there is a whitespace character between any of the tokens found between the two given nodes or tokens.
+     */
+    isSpaceBetween?(first: TSESTree.Token | TSESTree.Comment | TSESTree.Node, second: TSESTree.Token | TSESTree.Comment | TSESTree.Node): boolean;
+    /**
+     * Determines if two nodes or tokens have at least one whitespace character
+     * between them. Order does not matter. Returns false if the given nodes or
+     * tokens overlap.
+     * For backward compatibility, this method returns true if there are
+     * `JSXText` tokens that contain whitespace between the two.
+     * @param first The first node or token to check between.
+     * @param second The second node or token to check between.
+     * @returns {boolean} True if there is a whitespace character between
+     * any of the tokens found between the two given nodes or tokens.
+     * @deprecated in favor of isSpaceBetween
      */
     isSpaceBetweenTokens(first: TSESTree.Token, second: TSESTree.Token): boolean;
-    getLocFromIndex(index: number): TSESTree.LineAndColumnData;
-    getIndexFromLoc(location: TSESTree.LineAndColumnData): number;
-    getTokenByRangeStart<T extends {
-        includeComments?: boolean;
-    }>(offset: number, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getFirstToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getFirstTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getLastToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getLastTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getTokenBefore<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getTokensBefore<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getTokenAfter<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getTokensAfter<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getFirstTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getFirstTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getLastTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    getLastTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    getTokens(node: TSESTree.Node, beforeCount?: number, afterCount?: number): TSESTree.Token[];
-    getTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options: T): SourceCode.ReturnTypeFromOptions<T>[];
-    commentsExistBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token): boolean;
-    getCommentsBefore(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
-    getCommentsAfter(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
-    getCommentsInside(node: TSESTree.Node): TSESTree.Comment[];
+    /**
+     * The source code split into lines according to ECMA-262 specification.
+     * This is done to avoid each rule needing to do so separately.
+     */
+    lines: string[];
+    /**
+     * The indexes in `text` that each line starts
+     */
+    lineStartIndices: number[];
+    /**
+     * The parser services of this source code.
+     */
+    parserServices: ParserServices;
+    /**
+     * The scope of this source code.
+     */
+    scopeManager: Scope.ScopeManager | null;
+    /**
+     * The original text source code. BOM was stripped from this text.
+     */
+    text: string;
+    /**
+     * All of the tokens and comments in the AST.
+     */
+    tokensAndComments: (TSESTree.Comment | TSESTree.Token)[];
+    /**
+     * The visitor keys to traverse AST.
+     */
+    visitorKeys: SourceCode.VisitorKeys;
+    /**
+     * Split the source code into multiple lines based on the line delimiters.
+     * @param text Source code as a string.
+     * @returns Array of source code lines.
+     */
+    static splitLines(text: string): string[];
 }
 declare namespace SourceCode {
     interface Program extends TSESTree.Program {
         comments: TSESTree.Comment[];
         tokens: TSESTree.Token[];
     }
-    interface Config {
-        text: string;
+    interface SourceCodeConfig {
+        /**
+         * The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
+         */
         ast: Program;
-        parserServices?: ParserServices;
-        scopeManager?: Scope.ScopeManager;
-        visitorKeys?: VisitorKeys;
+        /**
+         * The parser services.
+         */
+        parserServices: ParserServices | null;
+        /**
+         * The scope of this source code.
+         */
+        scopeManager: Scope.ScopeManager | null;
+        /**
+         * The source code text.
+         */
+        text: string;
+        /**
+         * The visitor keys to traverse AST.
+         */
+        visitorKeys: VisitorKeys | null;
     }
     interface VisitorKeys {
         [nodeType: string]: string[];
@@ -66,22 +313,38 @@
     type FilterPredicate = (tokenOrComment: TSESTree.Token | TSESTree.Comment) => boolean;
     type ReturnTypeFromOptions<T> = T extends {
         includeComments: true;
-    } ? TSESTree.Token | TSESTree.Comment : TSESTree.Token;
+    } ? TSESTree.Token : Exclude<TSESTree.Token, TSESTree.Comment>;
     type CursorWithSkipOptions = number | FilterPredicate | {
-        includeComments?: boolean;
+        /**
+         * The predicate function to choose tokens.
+         */
         filter?: FilterPredicate;
+        /**
+         * The flag to iterate comments as well.
+         */
+        includeComments?: boolean;
+        /**
+         * The count of tokens the cursor skips.
+         */
         skip?: number;
     };
     type CursorWithCountOptions = number | FilterPredicate | {
-        includeComments?: boolean;
+        /**
+         * The predicate function to choose tokens.
+         */
         filter?: FilterPredicate;
+        /**
+         * The flag to iterate comments as well.
+         */
+        includeComments?: boolean;
+        /**
+         * The maximum count of tokens the cursor iterates.
+         */
         count?: number;
     };
 }
-declare const SourceCode: {
-    new (text: string, ast: SourceCode.Program): SourceCode;
-    new (config: SourceCode.Config): SourceCode;
-    splitLines(text: string): string[];
-};
+declare const SourceCode_base: typeof SourceCodeBase;
+declare class SourceCode extends SourceCode_base {
+}
 export { SourceCode };
 //# sourceMappingURL=SourceCode.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map
index da39616..18f49a7 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"SourceCode.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"SourceCode.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js
index 6d18c4b..8e029b1 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js
@@ -1,7 +1,9 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-namespace */
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.SourceCode = void 0;
 const eslint_1 = require("eslint");
-const SourceCode = eslint_1.SourceCode;
+class SourceCode extends eslint_1.SourceCode {
+}
 exports.SourceCode = SourceCode;
 //# sourceMappingURL=SourceCode.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map
index 50641bd..60f58ea 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map
@@ -1 +1 @@
-{"version":3,"file":"SourceCode.js","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":";AAAA,oDAAoD;;AAGpD,mCAAwD;AAkMxD,MAAM,UAAU,GAAG,mBAMlB,CAAC;AAEO,gCAAU"}
\ No newline at end of file
+{"version":3,"file":"SourceCode.js","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAwD;AAubxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAE9D,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts
index b8762a7..05d889d 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts
@@ -1,4 +1,6 @@
 export * from './AST';
+export * from './CLIEngine';
+export * from './ESLint';
 export * from './Linter';
 export * from './ParserOptions';
 export * from './Rule';
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map
index d81d9f7..6b3df41 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js
index 10c07ab..4125958 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js
@@ -1,9 +1,22 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
 Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("./Linter"));
-__export(require("./RuleTester"));
-__export(require("./SourceCode"));
+__exportStar(require("./AST"), exports);
+__exportStar(require("./CLIEngine"), exports);
+__exportStar(require("./ESLint"), exports);
+__exportStar(require("./Linter"), exports);
+__exportStar(require("./ParserOptions"), exports);
+__exportStar(require("./Rule"), exports);
+__exportStar(require("./RuleTester"), exports);
+__exportStar(require("./Scope"), exports);
+__exportStar(require("./SourceCode"), exports);
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map
index 7e9c6a3..7ffb898 100644
--- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map
+++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":";;;;;AACA,8BAAyB;AAGzB,kCAA6B;AAE7B,kCAA6B"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js.map
rename to node_modules/@typescript-eslint/experimental-utils/dist/ts-estree.js.map
diff --git a/node_modules/@typescript-eslint/experimental-utils/package.json b/node_modules/@typescript-eslint/experimental-utils/package.json
index 06af978..5750f69 100644
--- a/node_modules/@typescript-eslint/experimental-utils/package.json
+++ b/node_modules/@typescript-eslint/experimental-utils/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/experimental-utils",
-  "version": "2.22.0",
+  "version": "4.3.0",
   "description": "(Experimental) Utilities for working with TypeScript + ESLint together",
   "keywords": [
     "eslint",
@@ -8,10 +8,11 @@
     "estree"
   ],
   "engines": {
-    "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+    "node": "^10.12.0 || >=12.0.0"
   },
   "files": [
     "dist",
+    "_ts3.4",
     "package.json",
     "README.md",
     "LICENSE"
@@ -29,7 +30,9 @@
   "types": "dist/index.d.ts",
   "scripts": {
     "build": "tsc -b tsconfig.build.json",
+    "postbuild": "downlevel-dts dist _ts3.4/dist",
     "clean": "tsc -b tsconfig.build.json --clean",
+    "postclean": "rimraf dist && rimraf _ts3.4",
     "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
     "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'",
     "test": "jest --coverage",
@@ -37,8 +40,11 @@
   },
   "dependencies": {
     "@types/json-schema": "^7.0.3",
-    "@typescript-eslint/typescript-estree": "2.22.0",
-    "eslint-scope": "^5.0.0"
+    "@typescript-eslint/scope-manager": "4.3.0",
+    "@typescript-eslint/types": "4.3.0",
+    "@typescript-eslint/typescript-estree": "4.3.0",
+    "eslint-scope": "^5.0.0",
+    "eslint-utils": "^2.0.0"
   },
   "peerDependencies": {
     "eslint": "*"
@@ -50,5 +56,12 @@
     "type": "opencollective",
     "url": "https://opencollective.com/typescript-eslint"
   },
-  "gitHead": "5a097d316fb084dc4b13e87d68fe9bf43d8a9548"
+  "typesVersions": {
+    "<3.8": {
+      "*": [
+        "_ts3.4/*"
+      ]
+    }
+  },
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/parser/CHANGELOG.md b/node_modules/@typescript-eslint/parser/CHANGELOG.md
index 963551c..4b41359 100644
--- a/node_modules/@typescript-eslint/parser/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/parser/CHANGELOG.md
@@ -3,6 +3,347 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
+
+
+### Features
+
+* **scope-manager:** add support for JSX scope analysis ([#2498](https://github.com/typescript-eslint/typescript-eslint/issues/2498)) ([f887ab5](https://github.com/typescript-eslint/typescript-eslint/commit/f887ab51f58c1b3571f9a14832864bc0ca59623f)), closes [#2455](https://github.com/typescript-eslint/typescript-eslint/issues/2455) [#2477](https://github.com/typescript-eslint/typescript-eslint/issues/2477)
+
+
+
+
+
+## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
+
+## [Please see the release notes for v4.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v4.0.0)
+
+### Features
+
+* consume new scope analysis package ([#2039](https://github.com/typescript-eslint/typescript-eslint/issues/2039)) ([3be125d](https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0))
+* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
+* **typescript-estree:** switch to globby ([#2418](https://github.com/typescript-eslint/typescript-eslint/issues/2418)) ([3a7ec9b](https://github.com/typescript-eslint/typescript-eslint/commit/3a7ec9bcf1873a99c6da2f19ade8ab4763b4793c)), closes [#2398](https://github.com/typescript-eslint/typescript-eslint/issues/2398)
+
+
+### BREAKING CHANGES
+
+* **typescript-estree:** - removes the ability to supply a `RegExp` to `projectFolderIgnoreList`, and changes the meaning of the string value from a regex to a glob.
+
+
+
+
+
+## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
+
+
+### Features
+
+* **typescript-estree:** support TSv4 labelled tuple members ([#2378](https://github.com/typescript-eslint/typescript-eslint/issues/2378)) ([00d84ff](https://github.com/typescript-eslint/typescript-eslint/commit/00d84ffbcbe9d0ec98bdb2f2ce59959a27ce4dbe))
+
+
+
+
+
+# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
+
+
+### Features
+
+* **typescript-estree:** support short-circuiting assignment operators ([#2307](https://github.com/typescript-eslint/typescript-eslint/issues/2307)) ([2c90d9f](https://github.com/typescript-eslint/typescript-eslint/commit/2c90d9fa3aa5ebd7db697dddb7762bca2dd0e06b))
+* **typescript-estree:** support type annotations on catch clauses ([#2306](https://github.com/typescript-eslint/typescript-eslint/issues/2306)) ([b5afe9c](https://github.com/typescript-eslint/typescript-eslint/commit/b5afe9c560b9f38c8dffc312a600db30944129c8))
+
+
+
+
+
+## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
+
+
+### Features
+
+* split types into their own package ([#2229](https://github.com/typescript-eslint/typescript-eslint/issues/2229)) ([5f45918](https://github.com/typescript-eslint/typescript-eslint/commit/5f4591886f3438329fbf2229b03ac66174334a24))
+
+
+
+
+
+# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
+
+
+
+
+
+# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
+
+
+### Bug Fixes
+
+* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
+
+
+
+
+
+## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
+
+
+### Bug Fixes
+
+* **typescript-estree:** handle `BigInt` with `_` numeric separator ([#2067](https://github.com/typescript-eslint/typescript-eslint/issues/2067)) ([66f1627](https://github.com/typescript-eslint/typescript-eslint/commit/66f1627b11a566d5b925a577e800f99d5c808be2))
+
+
+
+
+
+# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
+
+## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
+
+### Bug Fixes
+
+* **typescript-estree:** use `TSEmptyBodyFunctionExpression` for body-less nodes ([#1289](https://github.com/typescript-eslint/typescript-eslint/issues/1289)) ([82e7163](https://github.com/typescript-eslint/typescript-eslint/commit/82e7163214b56ccde93ba97807b161669a50a60b))
+
+
+### Features
+
+* add index files to parser and typescript-estree ([3dfc46d](https://github.com/typescript-eslint/typescript-eslint/commit/3dfc46dccbbd28eed2d74c7b6cacddf1a0848598))
+* **experimental-utils:** upgrade eslint types for v7 ([#2023](https://github.com/typescript-eslint/typescript-eslint/issues/2023)) ([06869c9](https://github.com/typescript-eslint/typescript-eslint/commit/06869c9656fa37936126666845aee40aad546ebd))
+* upgrade to ESLint v7 ([#2022](https://github.com/typescript-eslint/typescript-eslint/issues/2022)) ([208de71](https://github.com/typescript-eslint/typescript-eslint/commit/208de71059746bf38e94bd460346ffb2698a3e12))
+* **typescript-estree:** align nodes with estree 2020 ([#1389](https://github.com/typescript-eslint/typescript-eslint/issues/1389)) ([aff5b62](https://github.com/typescript-eslint/typescript-eslint/commit/aff5b62044f9b93f2087a1d261e9be3f8d6fd54d))
+* **typescript-estree:** align optional fields ([#1429](https://github.com/typescript-eslint/typescript-eslint/issues/1429)) ([0e0010f](https://github.com/typescript-eslint/typescript-eslint/commit/0e0010f82952f9beeeb84136eea00cc5eecc9db6))
+* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
+* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
+* **typescript-estree:** handle 3.9's non-null assertion changes ([#2036](https://github.com/typescript-eslint/typescript-eslint/issues/2036)) ([06bec63](https://github.com/typescript-eslint/typescript-eslint/commit/06bec63c56536db070608ab136d2ad57083f0c6a))
+
+
+
+
+
+# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
+
+
+### Features
+
+* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
+
+
+
+
+
+# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
+
+
+### Features
+
+* **typescript-estree:** add option to ignore certain folders from glob resolution ([#1802](https://github.com/typescript-eslint/typescript-eslint/issues/1802)) ([1e29e69](https://github.com/typescript-eslint/typescript-eslint/commit/1e29e69b289d61107a7de67592beae331ba50222))
+
+
+
+
+
+# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
+
+**Note:** Version bump only for package @typescript-eslint/parser
+
+
+
+
+
+# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
+
+
+### Features
+
+* **typescript-estree:** support 3.8 `export * as ns` ([#1698](https://github.com/typescript-eslint/typescript-eslint/issues/1698)) ([133f622](https://github.com/typescript-eslint/typescript-eslint/commit/133f622f38a286eac45288a9789d2ee529d5e582))
+
+
+
+
+
+# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
+
+
+### Features
+
+* **typescript-estree:** support 3.8 import/export type ([#1697](https://github.com/typescript-eslint/typescript-eslint/issues/1697)) ([625d603](https://github.com/typescript-eslint/typescript-eslint/commit/625d603f94bf0521f834313bf31c734ce4948b7a))
+
+
+
+
+
 # [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
 
 **Note:** Version bump only for package @typescript-eslint/parser
diff --git a/node_modules/@typescript-eslint/parser/README.md b/node_modules/@typescript-eslint/parser/README.md
index cf69891..f6417fd 100644
--- a/node_modules/@typescript-eslint/parser/README.md
+++ b/node_modules/@typescript-eslint/parser/README.md
@@ -1,13 +1,11 @@
 <h1 align="center">TypeScript ESLint Parser</h1>
 
-<p align="center">An ESLint custom parser which leverages <a href="https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/typescript-estree">TypeScript ESTree</a> to allow for ESLint to lint TypeScript source code.</p>
+<p align="center">An ESLint parser which leverages <a href="https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/typescript-estree">TypeScript ESTree</a> to allow for ESLint to lint TypeScript source code.</p>
 
 <p align="center">
-    <a href="https://dev.azure.com/typescript-eslint/TypeScript%20ESLint/_build/latest?definitionId=1&branchName=master"><img src="https://img.shields.io/azure-devops/build/typescript-eslint/TypeScript%20ESLint/1/master.svg?label=%F0%9F%9A%80%20Azure%20Pipelines&style=flat-square" alt="Azure Pipelines"/></a>
-    <a href="https://github.com/typescript-eslint/typescript-eslint/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/typescript-estree.svg?style=flat-square" alt="GitHub license" /></a>
+    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
     <a href="https://www.npmjs.com/package/@typescript-eslint/parser"><img src="https://img.shields.io/npm/v/@typescript-eslint/parser.svg?style=flat-square" alt="NPM Version" /></a>
     <a href="https://www.npmjs.com/package/@typescript-eslint/parser"><img src="https://img.shields.io/npm/dm/@typescript-eslint/parser.svg?style=flat-square" alt="NPM Downloads" /></a>
-    <a href="http://commitizen.github.io/cz-cli/"><img src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square" alt="Commitizen friendly" /></a>
 </p>
 
 ## Getting Started
@@ -20,8 +18,9 @@
 
 ### Installation
 
-```sh
-yarn add -D @typescript-eslint/parser
+```bash
+$ yarn add -D typescript @typescript-eslint/parser
+$ npm i --save-dev typescript @typescript-eslint/parser
 ```
 
 ### Usage
@@ -52,8 +51,16 @@
 interface ParserOptions {
   ecmaFeatures?: {
     jsx?: boolean;
+    globalReturn?: boolean;
   };
+  ecmaVersion?: number;
+
+  jsxPragma?: string;
+  jsxFragmentName?: string | null;
+  lib?: string[];
+
   project?: string | string[];
+  projectFolderIgnoreList?: string[];
   tsconfigRootDir?: string;
   extraFileExtensions?: string[];
   warnOnUnsupportedTypeScriptVersion?: boolean;
@@ -66,7 +73,7 @@
 
 Enable parsing JSX when `true`. More details can be found [here](https://www.typescriptlang.org/docs/handbook/jsx.html).
 
-**NOTE:** this setting does not affect known file types (`.js`, `.jsx`, `.ts`, `.tsx`, `.json`) because the typescript compiler has its own internal handling for known file extensions. The exact behavior is as follows:
+**NOTE:** this setting does not affect known file types (`.js`, `.jsx`, `.ts`, `.tsx`, `.json`) because the TypeScript compiler has its own internal handling for known file extensions. The exact behavior is as follows:
 
 - if `parserOptions.project` is _not_ provided:
   - `.js`, `.jsx`, `.tsx` files are parsed as if this is true.
@@ -77,6 +84,54 @@
   - `.ts` files are parsed as if this is false.
   - "unknown" extensions (`.md`, `.vue`) **are parsed as if this is false**.
 
+### `parserOptions.ecmaFeatures.globalReturn`
+
+Default `false`.
+
+This options allows you to tell the parser if you want to allow global `return` statements in your codebase.
+
+### `parserOptions.ecmaVersion`
+
+Default `2018`.
+
+Accepts any valid ECMAScript version number:
+
+- A version: es3, es5, es6, es7, es8, es9, es10, es11, ..., or
+- A year: es2015, es2016, es2017, es2018, es2019, es2020, ...
+
+Specifies the version of ECMAScript syntax you want to use. This is used by the parser to determine how to perform scope analysis, and it affects the default
+
+### `parserOptions.jsxPragma`
+
+Default `'React'`
+
+The identifier that's used for JSX Elements creation (after transpilation).
+If you're using a library other than React (like `preact`), then you should change this value.
+
+This should not be a member expression - just the root identifier (i.e. use `"React"` instead of `"React.createElement"`).
+
+If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler.
+
+### `parserOptions.jsxFragmentName`
+
+Default `null`
+
+The identifier that's used for JSX fragment elements (after transpilation).
+If `null`, assumes transpilation will always use a member of the configured `jsxPragma`.
+This should not be a member expression - just the root identifier (i.e. use `"h"` instead of `"h.Fragment"`).
+
+If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler.
+
+### `parserOptions.lib`
+
+Default `['es2018']`
+
+For valid options, see the [TypeScript compiler options](https://www.typescriptlang.org/tsconfig#lib).
+
+Specifies the TypeScript `lib`s that are available. This is used by the scope analyser to ensure there are global variables declared for the types exposed by TypeScript.
+
+If you provide `parserOptions.project`, you do not need to set this, as it will automatically detected from the compiler.
+
 ### `parserOptions.project`
 
 Default `undefined`.
@@ -118,26 +173,37 @@
   }
   ```
 
-### `tsconfigRootDir`
+### `parserOptions.tsconfigRootDir`
 
 Default `undefined`.
 
 This option allows you to provide the root directory for relative tsconfig paths specified in the `project` option above.
 
-### `extraFileExtensions`
+### `parserOptions.projectFolderIgnoreList`
+
+Default `["**/node_modules/**"]`.
+
+This option allows you to ignore folders from being included in your provided list of `project`s.
+This is useful if you have configured glob patterns, but want to make sure you ignore certain folders.
+
+It accepts an array of globs to exclude from the `project` globs.
+
+For example, by default it will ensure that a glob like `./**/tsconfig.json` will not match any `tsconfig`s within your `node_modules` folder (some npm packages do not exclude their source files from their published packages).
+
+### `parserOptions.extraFileExtensions`
 
 Default `undefined`.
 
 This option allows you to provide one or more additional file extensions which should be considered in the TypeScript Program compilation.
 The default extensions are `.ts`, `.tsx`, `.js`, and `.jsx`. Add extensions starting with `.`, followed by the file extension. E.g. for a `.vue` file use `"extraFileExtensions: [".vue"]`.
 
-### `warnOnUnsupportedTypeScriptVersion`
+### `parserOptions.warnOnUnsupportedTypeScriptVersion`
 
 Default `true`.
 
 This option allows you to toggle the warning that the parser will give you if you use a version of TypeScript which is not explicitly supported
 
-### `createDefaultProgram`
+### `parserOptions.createDefaultProgram`
 
 Default `false`.
 
diff --git a/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts b/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts
deleted file mode 100644
index d039e61..0000000
--- a/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { TSESTree } from '@typescript-eslint/experimental-utils';
-import { ParserOptions } from './parser-options';
-import { ScopeManager } from './scope/scope-manager';
-export declare function analyzeScope(ast: TSESTree.Program, parserOptions: ParserOptions): ScopeManager;
-//# sourceMappingURL=analyze-scope.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts.map b/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts.map
deleted file mode 100644
index 469f570..0000000
--- a/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"analyze-scope.d.ts","sourceRoot":"","sources":["../src/analyze-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAGT,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA21BrD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,QAAQ,CAAC,OAAO,EACrB,aAAa,EAAE,aAAa,GAC3B,YAAY,CAsBd"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/analyze-scope.js b/node_modules/@typescript-eslint/parser/dist/analyze-scope.js
deleted file mode 100644
index 0f25f49..0000000
--- a/node_modules/@typescript-eslint/parser/dist/analyze-scope.js
+++ /dev/null
@@ -1,684 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const eslint_visitor_keys_1 = require("eslint-visitor-keys");
-const scope_manager_1 = require("./scope/scope-manager");
-const typescript_estree_1 = require("@typescript-eslint/typescript-estree");
-/**
- * Define the override function of `Scope#__define` for global augmentation.
- * @param {Function} define The original Scope#__define method.
- * @returns {Function} The override function.
- */
-function overrideDefine(define) {
-    return function (node, definition) {
-        define.call(this, node, definition);
-        // Set `variable.eslintUsed` to tell ESLint that the variable is exported.
-        const variable = 'name' in node &&
-            typeof node.name === 'string' &&
-            this.set.get(node.name);
-        if (variable) {
-            variable.eslintUsed = true;
-        }
-    };
-}
-class PatternVisitor extends experimental_utils_1.TSESLintScope.PatternVisitor {
-    constructor(options, rootPattern, callback) {
-        super(options, rootPattern, callback);
-    }
-    Identifier(node) {
-        super.Identifier(node);
-        if (node.decorators) {
-            this.rightHandNodes.push(...node.decorators);
-        }
-        if (node.typeAnnotation) {
-            this.rightHandNodes.push(node.typeAnnotation);
-        }
-    }
-    ArrayPattern(node) {
-        node.elements.forEach(this.visit, this);
-        if (node.decorators) {
-            this.rightHandNodes.push(...node.decorators);
-        }
-        if (node.typeAnnotation) {
-            this.rightHandNodes.push(node.typeAnnotation);
-        }
-    }
-    ObjectPattern(node) {
-        node.properties.forEach(this.visit, this);
-        if (node.decorators) {
-            this.rightHandNodes.push(...node.decorators);
-        }
-        if (node.typeAnnotation) {
-            this.rightHandNodes.push(node.typeAnnotation);
-        }
-    }
-    RestElement(node) {
-        super.RestElement(node);
-        if (node.decorators) {
-            this.rightHandNodes.push(...node.decorators);
-        }
-        if (node.typeAnnotation) {
-            this.rightHandNodes.push(node.typeAnnotation);
-        }
-    }
-    TSParameterProperty(node) {
-        this.visit(node.parameter);
-        if (node.decorators) {
-            this.rightHandNodes.push(...node.decorators);
-        }
-    }
-}
-class Referencer extends experimental_utils_1.TSESLintScope.Referencer {
-    constructor(options, scopeManager) {
-        super(options, scopeManager);
-        this.typeMode = false;
-    }
-    /**
-     * Override to use PatternVisitor we overrode.
-     * @param node The Identifier node to visit.
-     * @param [options] The flag to visit right-hand side nodes.
-     * @param callback The callback function for left-hand side nodes.
-     */
-    visitPattern(node, options, callback) {
-        if (!node) {
-            return;
-        }
-        if (typeof options === 'function') {
-            callback = options;
-            options = { processRightHandNodes: false };
-        }
-        const visitor = new PatternVisitor(this.options, node, callback);
-        visitor.visit(node);
-        if (options.processRightHandNodes) {
-            visitor.rightHandNodes.forEach(this.visit, this);
-        }
-    }
-    /**
-     * Override.
-     * Visit `node.typeParameters` and `node.returnType` additionally to find `typeof` expressions.
-     * @param node The function node to visit.
-     */
-    visitFunction(node) {
-        const { type, id, typeParameters, params, returnType, body } = node;
-        const scopeManager = this.scopeManager;
-        const upperScope = this.currentScope();
-        // Process the name.
-        if (type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration && id) {
-            upperScope.__define(id, new experimental_utils_1.TSESLintScope.Definition('FunctionName', id, node, null, null, null));
-            // Remove overload definition to avoid confusion of no-redeclare rule.
-            const { defs, identifiers } = upperScope.set.get(id.name);
-            for (let i = 0; i < defs.length; ++i) {
-                const def = defs[i];
-                if (def.type === 'FunctionName' &&
-                    def.node.type === experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction) {
-                    defs.splice(i, 1);
-                    identifiers.splice(i, 1);
-                    break;
-                }
-            }
-        }
-        else if (type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression && id) {
-            scopeManager.__nestFunctionExpressionNameScope(node);
-        }
-        // Open the function scope.
-        scopeManager.__nestFunctionScope(node, this.isInnerMethodDefinition);
-        const innerScope = this.currentScope();
-        // Process the type parameters
-        this.visit(typeParameters);
-        // Process parameter declarations.
-        for (let i = 0; i < params.length; ++i) {
-            this.visitPattern(params[i], { processRightHandNodes: true }, (pattern, info) => {
-                if (pattern.type !== experimental_utils_1.AST_NODE_TYPES.Identifier ||
-                    pattern.name !== 'this') {
-                    innerScope.__define(pattern, new experimental_utils_1.TSESLintScope.ParameterDefinition(pattern, node, i, info.rest));
-                    this.referencingDefaultValue(pattern, info.assignments, null, true);
-                }
-            });
-        }
-        // Process the return type.
-        this.visit(returnType);
-        // Process the body.
-        if (body && body.type === experimental_utils_1.AST_NODE_TYPES.BlockStatement) {
-            this.visitChildren(body);
-        }
-        else {
-            this.visit(body);
-        }
-        // Close the function scope.
-        this.close(node);
-    }
-    /**
-     * Override.
-     * Visit decorators.
-     * @param node The class node to visit.
-     */
-    visitClass(node) {
-        this.visitDecorators(node.decorators);
-        const upperTypeMode = this.typeMode;
-        this.typeMode = true;
-        if (node.superTypeParameters) {
-            this.visit(node.superTypeParameters);
-        }
-        if (node.implements) {
-            node.implements.forEach(this.visit, this);
-        }
-        this.typeMode = upperTypeMode;
-        super.visitClass(node);
-    }
-    /**
-     * Visit typeParameters.
-     * @param node The node to visit.
-     */
-    visitTypeParameters(node) {
-        if (node.typeParameters) {
-            const upperTypeMode = this.typeMode;
-            this.typeMode = true;
-            this.visit(node.typeParameters);
-            this.typeMode = upperTypeMode;
-        }
-    }
-    /**
-     * Override.
-     */
-    JSXOpeningElement(node) {
-        this.visit(node.name);
-        this.visitTypeParameters(node);
-        node.attributes.forEach(this.visit, this);
-    }
-    /**
-     * Override.
-     * Don't create the reference object in the type mode.
-     * @param node The Identifier node to visit.
-     */
-    Identifier(node) {
-        this.visitDecorators(node.decorators);
-        if (!this.typeMode) {
-            super.Identifier(node);
-        }
-        this.visit(node.typeAnnotation);
-    }
-    /**
-     * Override.
-     * Visit decorators.
-     * @param node The MethodDefinition node to visit.
-     */
-    MethodDefinition(node) {
-        this.visitDecorators(node.decorators);
-        super.MethodDefinition(node);
-    }
-    /**
-     * Don't create the reference object for the key if not computed.
-     * @param node The ClassProperty node to visit.
-     */
-    ClassProperty(node) {
-        const upperTypeMode = this.typeMode;
-        const { computed, decorators, key, typeAnnotation, value } = node;
-        this.typeMode = false;
-        this.visitDecorators(decorators);
-        if (computed) {
-            this.visit(key);
-        }
-        this.typeMode = true;
-        this.visit(typeAnnotation);
-        this.typeMode = false;
-        this.visit(value);
-        this.typeMode = upperTypeMode;
-    }
-    /**
-     * Visit new expression.
-     * @param node The NewExpression node to visit.
-     */
-    NewExpression(node) {
-        this.visitTypeParameters(node);
-        this.visit(node.callee);
-        node.arguments.forEach(this.visit, this);
-    }
-    /**
-     * Override.
-     * Visit call expression.
-     * @param node The CallExpression node to visit.
-     */
-    CallExpression(node) {
-        this.visitTypeParameters(node);
-        this.visit(node.callee);
-        node.arguments.forEach(this.visit, this);
-    }
-    /**
-     * Visit optional member expression.
-     * @param node The OptionalMemberExpression node to visit.
-     */
-    OptionalMemberExpression(node) {
-        this.visit(node.object);
-        if (node.computed) {
-            this.visit(node.property);
-        }
-    }
-    /**
-     * Visit optional call expression.
-     * @param node The OptionalMemberExpression node to visit.
-     */
-    OptionalCallExpression(node) {
-        this.visitTypeParameters(node);
-        this.visit(node.callee);
-        node.arguments.forEach(this.visit, this);
-    }
-    /**
-     * Define the variable of this function declaration only once.
-     * Because to avoid confusion of `no-redeclare` rule by overloading.
-     * @param node The TSDeclareFunction node to visit.
-     */
-    TSDeclareFunction(node) {
-        var _a, _b;
-        const scopeManager = this.scopeManager;
-        const upperScope = this.currentScope();
-        const { id, typeParameters, params, returnType } = node;
-        // Ignore this if other overload have already existed.
-        if (id) {
-            const variable = upperScope.set.get(id.name);
-            const defs = (_a = variable) === null || _a === void 0 ? void 0 : _a.defs;
-            const existed = (_b = defs) === null || _b === void 0 ? void 0 : _b.some((d) => d.type === 'FunctionName');
-            if (!existed) {
-                upperScope.__define(id, new experimental_utils_1.TSESLintScope.Definition('FunctionName', id, node, null, null, null));
-            }
-        }
-        // Open the function scope.
-        scopeManager.__nestEmptyFunctionScope(node);
-        const innerScope = this.currentScope();
-        // Process the type parameters
-        this.visit(typeParameters);
-        // Process parameter declarations.
-        for (let i = 0; i < params.length; ++i) {
-            this.visitPattern(params[i], { processRightHandNodes: true }, (pattern, info) => {
-                innerScope.__define(pattern, new experimental_utils_1.TSESLintScope.ParameterDefinition(pattern, node, i, info.rest));
-                // Set `variable.eslintUsed` to tell ESLint that the variable is used.
-                const variable = innerScope.set.get(pattern.name);
-                if (variable) {
-                    variable.eslintUsed = true;
-                }
-                this.referencingDefaultValue(pattern, info.assignments, null, true);
-            });
-        }
-        // Process the return type.
-        this.visit(returnType);
-        // Close the function scope.
-        this.close(node);
-    }
-    /**
-     * Create reference objects for the references in parameters and return type.
-     * @param node The TSEmptyBodyFunctionExpression node to visit.
-     */
-    TSEmptyBodyFunctionExpression(node) {
-        const upperTypeMode = this.typeMode;
-        const { typeParameters, params, returnType } = node;
-        this.typeMode = true;
-        this.visit(typeParameters);
-        params.forEach(this.visit, this);
-        this.visit(returnType);
-        this.typeMode = upperTypeMode;
-    }
-    /**
-     * Don't make variable because it declares only types.
-     * Switch to the type mode and visit child nodes to find `typeof x` expression in type declarations.
-     * @param node The TSInterfaceDeclaration node to visit.
-     */
-    TSInterfaceDeclaration(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Don't make variable because it declares only types.
-     * Switch to the type mode and visit child nodes to find `typeof x` expression in type declarations.
-     * @param node The TSClassImplements node to visit.
-     */
-    TSClassImplements(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Don't make variable because it declares only types.
-     * Switch to the type mode and visit child nodes to find `typeof x` expression in type declarations.
-     * @param node The TSIndexSignature node to visit.
-     */
-    TSIndexSignature(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Visit type assertion.
-     * @param node The TSTypeAssertion node to visit.
-     */
-    TSTypeAssertion(node) {
-        if (this.typeMode) {
-            this.visit(node.typeAnnotation);
-        }
-        else {
-            this.typeMode = true;
-            this.visit(node.typeAnnotation);
-            this.typeMode = false;
-        }
-        this.visit(node.expression);
-    }
-    /**
-     * Visit as expression.
-     * @param node The TSAsExpression node to visit.
-     */
-    TSAsExpression(node) {
-        this.visit(node.expression);
-        if (this.typeMode) {
-            this.visit(node.typeAnnotation);
-        }
-        else {
-            this.typeMode = true;
-            this.visit(node.typeAnnotation);
-            this.typeMode = false;
-        }
-    }
-    /**
-     * Switch to the type mode and visit child nodes to find `typeof x` expression in type declarations.
-     * @param node The TSTypeAnnotation node to visit.
-     */
-    TSTypeAnnotation(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Switch to the type mode and visit child nodes to find `typeof x` expression in type declarations.
-     * @param node The TSTypeParameterDeclaration node to visit.
-     */
-    TSTypeParameterDeclaration(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Create reference objects for the references in `typeof` expression.
-     * @param node The TSTypeQuery node to visit.
-     */
-    TSTypeQuery(node) {
-        if (this.typeMode) {
-            this.typeMode = false;
-            this.visitChildren(node);
-            this.typeMode = true;
-        }
-        else {
-            this.visitChildren(node);
-        }
-    }
-    /**
-     * @param node The TSTypeParameter node to visit.
-     */
-    TSTypeParameter(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSInferType node to visit.
-     */
-    TSInferType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSTypeReference node to visit.
-     */
-    TSTypeReference(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSTypeLiteral node to visit.
-     */
-    TSTypeLiteral(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSLiteralType node to visit.
-     */
-    TSLiteralType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSIntersectionType node to visit.
-     */
-    TSIntersectionType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSConditionalType node to visit.
-     */
-    TSConditionalType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSIndexedAccessType node to visit.
-     */
-    TSIndexedAccessType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSMappedType node to visit.
-     */
-    TSMappedType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSOptionalType node to visit.
-     */
-    TSOptionalType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSParenthesizedType node to visit.
-     */
-    TSParenthesizedType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSRestType node to visit.
-     */
-    TSRestType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * @param node The TSTupleType node to visit.
-     */
-    TSTupleType(node) {
-        this.visitTypeNodes(node);
-    }
-    /**
-     * Create reference objects for the object part. (This is `obj.prop`)
-     * @param node The TSQualifiedName node to visit.
-     */
-    TSQualifiedName(node) {
-        this.visit(node.left);
-    }
-    /**
-     * Create reference objects for the references in computed keys.
-     * @param node The TSPropertySignature node to visit.
-     */
-    TSPropertySignature(node) {
-        const upperTypeMode = this.typeMode;
-        const { computed, key, typeAnnotation, initializer } = node;
-        if (computed) {
-            this.typeMode = false;
-            this.visit(key);
-            this.typeMode = true;
-        }
-        else {
-            this.typeMode = true;
-            this.visit(key);
-        }
-        this.visit(typeAnnotation);
-        this.visit(initializer);
-        this.typeMode = upperTypeMode;
-    }
-    /**
-     * Create reference objects for the references in computed keys.
-     * @param node The TSMethodSignature node to visit.
-     */
-    TSMethodSignature(node) {
-        const upperTypeMode = this.typeMode;
-        const { computed, key, typeParameters, params, returnType } = node;
-        if (computed) {
-            this.typeMode = false;
-            this.visit(key);
-            this.typeMode = true;
-        }
-        else {
-            this.typeMode = true;
-            this.visit(key);
-        }
-        this.visit(typeParameters);
-        params.forEach(this.visit, this);
-        this.visit(returnType);
-        this.typeMode = upperTypeMode;
-    }
-    /**
-     * Create variable object for the enum.
-     * The enum declaration creates a scope for the enum members.
-     *
-     * enum E {
-     *   A,
-     *   B,
-     *   C = A + B // A and B are references to the enum member.
-     * }
-     *
-     * const a = 0
-     * enum E {
-     *   A = a // a is above constant.
-     * }
-     *
-     * @param node The TSEnumDeclaration node to visit.
-     */
-    TSEnumDeclaration(node) {
-        const { id, members } = node;
-        const scopeManager = this.scopeManager;
-        const scope = this.currentScope();
-        if (id) {
-            scope.__define(id, new experimental_utils_1.TSESLintScope.Definition('EnumName', id, node));
-        }
-        scopeManager.__nestEnumScope(node);
-        for (const member of members) {
-            this.visit(member);
-        }
-        this.close(node);
-    }
-    /**
-     * Create variable object for the enum member and create reference object for the initializer.
-     * And visit the initializer.
-     *
-     * @param node The TSEnumMember node to visit.
-     */
-    TSEnumMember(node) {
-        const { id, initializer } = node;
-        const scope = this.currentScope();
-        scope.__define(id, new experimental_utils_1.TSESLintScope.Definition('EnumMemberName', id, node));
-        if (initializer) {
-            scope.__referencing(id, experimental_utils_1.TSESLintScope.Reference.WRITE, initializer, null, false, true);
-            this.visit(initializer);
-        }
-    }
-    /**
-     * Create the variable object for the module name, and visit children.
-     * @param node The TSModuleDeclaration node to visit.
-     */
-    TSModuleDeclaration(node) {
-        const scope = this.currentScope();
-        const { id, body } = node;
-        if (node.global) {
-            this.visitGlobalAugmentation(node);
-            return;
-        }
-        if (id && id.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
-            scope.__define(id, new experimental_utils_1.TSESLintScope.Definition('NamespaceName', id, node, null, null, null));
-        }
-        this.visit(body);
-    }
-    TSTypeAliasDeclaration(node) {
-        this.typeMode = true;
-        this.visitChildren(node);
-        this.typeMode = false;
-    }
-    /**
-     * Process the module block.
-     * @param node The TSModuleBlock node to visit.
-     */
-    TSModuleBlock(node) {
-        this.scopeManager.__nestBlockScope(node);
-        this.visitChildren(node);
-        this.close(node);
-    }
-    TSAbstractClassProperty(node) {
-        this.ClassProperty(node);
-    }
-    TSAbstractMethodDefinition(node) {
-        this.MethodDefinition(node);
-    }
-    /**
-     * Process import equal declaration
-     * @param node The TSImportEqualsDeclaration node to visit.
-     */
-    TSImportEqualsDeclaration(node) {
-        const { id, moduleReference } = node;
-        if (id && id.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
-            this.currentScope().__define(id, new experimental_utils_1.TSESLintScope.Definition('ImportBinding', id, node, null, null, null));
-        }
-        this.visit(moduleReference);
-    }
-    /**
-     * Process the global augmentation.
-     * 1. Set the global scope as the current scope.
-     * 2. Configure the global scope to set `variable.eslintUsed = true` for all defined variables. This means `no-unused-vars` doesn't warn those.
-     * @param node The TSModuleDeclaration node to visit.
-     */
-    visitGlobalAugmentation(node) {
-        const scopeManager = this.scopeManager;
-        const currentScope = this.currentScope();
-        const globalScope = scopeManager.globalScope;
-        const originalDefine = globalScope.__define;
-        globalScope.__define = overrideDefine(originalDefine);
-        scopeManager.__currentScope = globalScope;
-        // Skip TSModuleBlock to avoid to create that block scope.
-        if (node.body && node.body.type === experimental_utils_1.AST_NODE_TYPES.TSModuleBlock) {
-            node.body.body.forEach(this.visit, this);
-        }
-        scopeManager.__currentScope = currentScope;
-        globalScope.__define = originalDefine;
-    }
-    /**
-     * Process decorators.
-     * @param decorators The decorator nodes to visit.
-     */
-    visitDecorators(decorators) {
-        if (decorators) {
-            decorators.forEach(this.visit, this);
-        }
-    }
-    /**
-     * Process all child of type nodes
-     * @param node node to be processed
-     */
-    visitTypeNodes(node) {
-        if (this.typeMode) {
-            this.visitChildren(node);
-        }
-        else {
-            this.typeMode = true;
-            this.visitChildren(node);
-            this.typeMode = false;
-        }
-    }
-}
-function analyzeScope(ast, parserOptions) {
-    var _a;
-    const options = {
-        ignoreEval: true,
-        optimistic: false,
-        directive: false,
-        nodejsScope: parserOptions.sourceType === 'script' &&
-            (parserOptions.ecmaFeatures &&
-                parserOptions.ecmaFeatures.globalReturn) === true,
-        impliedStrict: false,
-        sourceType: parserOptions.sourceType,
-        ecmaVersion: (_a = parserOptions.ecmaVersion, (_a !== null && _a !== void 0 ? _a : 2018)),
-        childVisitorKeys: typescript_estree_1.visitorKeys,
-        fallback: eslint_visitor_keys_1.getKeys,
-    };
-    const scopeManager = new scope_manager_1.ScopeManager(options);
-    const referencer = new Referencer(options, scopeManager);
-    referencer.visit(ast);
-    return scopeManager;
-}
-exports.analyzeScope = analyzeScope;
-//# sourceMappingURL=analyze-scope.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/analyze-scope.js.map b/node_modules/@typescript-eslint/parser/dist/analyze-scope.js.map
deleted file mode 100644
index 7de3a9d..0000000
--- a/node_modules/@typescript-eslint/parser/dist/analyze-scope.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"analyze-scope.js","sourceRoot":"","sources":["../src/analyze-scope.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/index.d.ts b/node_modules/@typescript-eslint/parser/dist/index.d.ts
new file mode 100644
index 0000000..2229e01
--- /dev/null
+++ b/node_modules/@typescript-eslint/parser/dist/index.d.ts
@@ -0,0 +1,5 @@
+export { parse, parseForESLint, ParserOptions } from './parser';
+export { ParserServices } from '@typescript-eslint/typescript-estree';
+export { clearCaches } from '@typescript-eslint/typescript-estree';
+export declare const version: string;
+//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/index.d.ts.map b/node_modules/@typescript-eslint/parser/dist/index.d.ts.map
new file mode 100644
index 0000000..69632b8
--- /dev/null
+++ b/node_modules/@typescript-eslint/parser/dist/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/index.js b/node_modules/@typescript-eslint/parser/dist/index.js
new file mode 100644
index 0000000..b9e888a
--- /dev/null
+++ b/node_modules/@typescript-eslint/parser/dist/index.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.version = exports.clearCaches = exports.parseForESLint = exports.parse = void 0;
+var parser_1 = require("./parser");
+Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parser_1.parse; } });
+Object.defineProperty(exports, "parseForESLint", { enumerable: true, get: function () { return parser_1.parseForESLint; } });
+var typescript_estree_1 = require("@typescript-eslint/typescript-estree");
+Object.defineProperty(exports, "clearCaches", { enumerable: true, get: function () { return typescript_estree_1.clearCaches; } });
+// note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder
+exports.version = require('../package.json').version;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/index.js.map b/node_modules/@typescript-eslint/parser/dist/index.js.map
new file mode 100644
index 0000000..604901f
--- /dev/null
+++ b/node_modules/@typescript-eslint/parser/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAgE;AAAvD,+FAAA,KAAK,OAAA;AAAE,wGAAA,cAAc,OAAA;AAE9B,0EAAmE;AAA1D,gHAAA,WAAW,OAAA;AAEpB,sHAAsH;AACzG,QAAA,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts
index bbe3a54..a829c40 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts
+++ b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts
@@ -1,3 +1,2 @@
-import { TSESLint } from '@typescript-eslint/experimental-utils';
-export declare type ParserOptions = TSESLint.ParserOptions;
+export { ParserOptions } from '@typescript-eslint/types';
 //# sourceMappingURL=parser-options.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map
index 65dc7fa..85aeca5 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map
+++ b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,oBAAY,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC"}
\ No newline at end of file
+{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser.d.ts b/node_modules/@typescript-eslint/parser/dist/parser.d.ts
index 8001037..0d501b8 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser.d.ts
+++ b/node_modules/@typescript-eslint/parser/dist/parser.d.ts
@@ -1,7 +1,6 @@
-import { TSESLint } from '@typescript-eslint/experimental-utils';
-import { AST_NODE_TYPES, ParserServices, TSESTree, visitorKeys } from '@typescript-eslint/typescript-estree';
-import { analyzeScope } from './analyze-scope';
-declare type ParserOptions = TSESLint.ParserOptions;
+import { ParserOptions, TSESTree } from '@typescript-eslint/types';
+import { ParserServices, visitorKeys } from '@typescript-eslint/typescript-estree';
+import { ScopeManager } from '@typescript-eslint/scope-manager';
 interface ParseForESLintResult {
     ast: TSESTree.Program & {
         range?: [number, number];
@@ -10,12 +9,9 @@
     };
     services: ParserServices;
     visitorKeys: typeof visitorKeys;
-    scopeManager: ReturnType<typeof analyzeScope>;
+    scopeManager: ScopeManager;
 }
-export declare const version: any;
-export declare const Syntax: Readonly<typeof AST_NODE_TYPES>;
-export declare function parse(code: string, options?: ParserOptions): ParseForESLintResult['ast'];
-export declare function parseForESLint(code: string, options?: ParserOptions | null): ParseForESLintResult;
-export { ParserServices, ParserOptions };
-export { clearCaches } from '@typescript-eslint/typescript-estree';
+declare function parse(code: string, options?: ParserOptions): ParseForESLintResult['ast'];
+declare function parseForESLint(code: string, options?: ParserOptions | null): ParseForESLintResult;
+export { parse, parseForESLint, ParserOptions };
 //# sourceMappingURL=parser.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map b/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map
index 71cc381..2e25638 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map
+++ b/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EACL,cAAc,EAEd,cAAc,EAEd,QAAQ,EAER,WAAW,EACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,aAAK,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;AAK5C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG;QACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;CAC/C;AAgBD,eAAO,MAAM,OAAO,KAAsB,CAAC;AAE3C,eAAO,MAAM,MAAM,iCAAgC,CAAC;AAEpD,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,oBAAoB,CAAC,KAAK,CAAC,CAE7B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC7B,oBAAoB,CA0DtB;AAED,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAO,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAEL,cAAc,EAEd,WAAW,EACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAGL,YAAY,EACb,MAAM,kCAAkC,CAAC;AAM1C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG;QACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAiDD,iBAAS,KAAK,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,oBAAoB,CAAC,KAAK,CAAC,CAE7B;AAED,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC7B,oBAAoB,CAwFtB;AAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser.js b/node_modules/@typescript-eslint/parser/dist/parser.js
index 115f5a0..3b6a30c 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser.js
+++ b/node_modules/@typescript-eslint/parser/dist/parser.js
@@ -1,20 +1,55 @@
 "use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseForESLint = exports.parse = void 0;
 const typescript_estree_1 = require("@typescript-eslint/typescript-estree");
-const analyze_scope_1 = require("./analyze-scope");
-// note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder
-const packageJSON = require('../package.json');
+const scope_manager_1 = require("@typescript-eslint/scope-manager");
+const debug_1 = __importDefault(require("debug"));
+const typescript_1 = require("typescript");
+const log = debug_1.default('typescript-eslint:parser:parser');
 function validateBoolean(value, fallback = false) {
     if (typeof value !== 'boolean') {
         return fallback;
     }
     return value;
 }
-//------------------------------------------------------------------------------
-// Public
-//------------------------------------------------------------------------------
-exports.version = packageJSON.version;
-exports.Syntax = Object.freeze(typescript_estree_1.AST_NODE_TYPES);
+const LIB_FILENAME_REGEX = /lib\.(.+)\.d\.ts/;
+function getLib(compilerOptions) {
+    var _a;
+    if (compilerOptions.lib) {
+        return compilerOptions.lib
+            .map(lib => {
+            const match = LIB_FILENAME_REGEX.exec(lib.toLowerCase());
+            if (!match) {
+                return null;
+            }
+            return match[1];
+        })
+            .filter(l => l != null);
+    }
+    const target = (_a = compilerOptions.target) !== null && _a !== void 0 ? _a : typescript_1.ScriptTarget.ES5;
+    // https://github.com/Microsoft/TypeScript/blob/59ad375234dc2efe38d8ee0ba58414474c1d5169/src/compiler/utilitiesPublic.ts#L13-L32
+    switch (target) {
+        case typescript_1.ScriptTarget.ESNext:
+            return ['esnext.full'];
+        case typescript_1.ScriptTarget.ES2020:
+            return ['es2020.full'];
+        case typescript_1.ScriptTarget.ES2019:
+            return ['es2019.full'];
+        case typescript_1.ScriptTarget.ES2018:
+            return ['es2018.full'];
+        case typescript_1.ScriptTarget.ES2017:
+            return ['es2017.full'];
+        case typescript_1.ScriptTarget.ES2016:
+            return ['es2016.full'];
+        case typescript_1.ScriptTarget.ES2015:
+            return ['es6'];
+        default:
+            return ['lib'];
+    }
+}
 function parse(code, options) {
     return parseForESLint(code, options).ast;
 }
@@ -23,6 +58,9 @@
     if (!options || typeof options !== 'object') {
         options = {};
     }
+    else {
+        options = Object.assign({}, options);
+    }
     // https://eslint.org/docs/user-guide/configuring#specifying-parser-options
     // if sourceType is not provided by default eslint expect that it will be set to "script"
     if (options.sourceType !== 'module' && options.sourceType !== 'script') {
@@ -36,6 +74,14 @@
         useJSXTextNode: validateBoolean(options.useJSXTextNode, true),
         jsx: validateBoolean(options.ecmaFeatures.jsx),
     });
+    const analyzeOptions = {
+        ecmaVersion: options.ecmaVersion,
+        globalReturn: options.ecmaFeatures.globalReturn,
+        jsxPragma: options.jsxPragma,
+        jsxFragmentName: options.jsxFragmentName,
+        lib: options.lib,
+        sourceType: options.sourceType,
+    };
     if (typeof options.filePath === 'string') {
         const tsx = options.filePath.endsWith('.tsx');
         if (tsx || options.filePath.endsWith('.ts')) {
@@ -52,24 +98,34 @@
     }
     const { ast, services } = typescript_estree_1.parseAndGenerateServices(code, parserOptions);
     ast.sourceType = options.sourceType;
-    typescript_estree_1.simpleTraverse(ast, {
-        enter(node) {
-            switch (node.type) {
-                // Function#body cannot be null in ESTree spec.
-                case typescript_estree_1.AST_NODE_TYPES.FunctionExpression:
-                    if (!node.body) {
-                        // eslint-disable-next-line @typescript-eslint/no-explicit-any
-                        node.type = `TSEmptyBody${node.type}`;
-                    }
-                    break;
-                // no default
+    if (services.hasFullTypeInformation) {
+        // automatically apply the options configured for the program
+        const compilerOptions = services.program.getCompilerOptions();
+        if (analyzeOptions.lib == null) {
+            analyzeOptions.lib = getLib(compilerOptions);
+            log('Resolved libs from program: %o', analyzeOptions.lib);
+        }
+        if (parserOptions.jsx === true) {
+            if (analyzeOptions.jsxPragma === undefined &&
+                compilerOptions.jsxFactory != null) {
+                // in case the user has specified something like "preact.h"
+                const factory = compilerOptions.jsxFactory.split('.')[0].trim();
+                analyzeOptions.jsxPragma = factory;
+                log('Resolved jsxPragma from program: %s', analyzeOptions.jsxPragma);
             }
-        },
-    });
-    const scopeManager = analyze_scope_1.analyzeScope(ast, options);
+            if (analyzeOptions.jsxFragmentName === undefined &&
+                compilerOptions.jsxFragmentFactory != null) {
+                // in case the user has specified something like "preact.Fragment"
+                const fragFactory = compilerOptions.jsxFragmentFactory
+                    .split('.')[0]
+                    .trim();
+                analyzeOptions.jsxFragmentName = fragFactory;
+                log('Resolved jsxFragmentName from program: %s', analyzeOptions.jsxFragmentName);
+            }
+        }
+    }
+    const scopeManager = scope_manager_1.analyze(ast, analyzeOptions);
     return { ast, services, scopeManager, visitorKeys: typescript_estree_1.visitorKeys };
 }
 exports.parseForESLint = parseForESLint;
-var typescript_estree_2 = require("@typescript-eslint/typescript-estree");
-exports.clearCaches = typescript_estree_2.clearCaches;
 //# sourceMappingURL=parser.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/parser.js.map b/node_modules/@typescript-eslint/parser/dist/parser.js.map
index cd37c55..e3b8dd0 100644
--- a/node_modules/@typescript-eslint/parser/dist/parser.js.map
+++ b/node_modules/@typescript-eslint/parser/dist/parser.js.map
@@ -1 +1 @@
-{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts b/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts
deleted file mode 100644
index 739952b..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { TSESTree, TSESLintScope } from '@typescript-eslint/experimental-utils';
-/**
- * based on eslint-scope
- */
-export declare class ScopeManager extends TSESLintScope.ScopeManager {
-    scopes: TSESLintScope.Scope[];
-    globalScope: TSESLintScope.Scope;
-    constructor(options: TSESLintScope.ScopeManagerOptions);
-    /** @internal */
-    __nestEnumScope(node: TSESTree.TSEnumDeclaration): TSESLintScope.Scope;
-    /** @internal */
-    __nestEmptyFunctionScope(node: TSESTree.TSDeclareFunction): TSESLintScope.Scope;
-}
-//# sourceMappingURL=scope-manager.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts.map b/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts.map
deleted file mode 100644
index 0b213c7..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../src/scope/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAGhF;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAAC,YAAY;IAC1D,MAAM,EAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/B,WAAW,EAAG,aAAa,CAAC,KAAK,CAAC;gBAEtB,OAAO,EAAE,aAAa,CAAC,mBAAmB;IAItD,gBAAgB;IAChB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,aAAa,CAAC,KAAK;IAItE,gBAAgB;IAChB,wBAAwB,CACtB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAC/B,aAAa,CAAC,KAAK;CAKvB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js b/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js
deleted file mode 100644
index 33d7b28..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-const scopes_1 = require("./scopes");
-/**
- * based on eslint-scope
- */
-class ScopeManager extends experimental_utils_1.TSESLintScope.ScopeManager {
-    constructor(options) {
-        super(options);
-    }
-    /** @internal */
-    __nestEnumScope(node) {
-        return this.__nestScope(new scopes_1.EnumScope(this, this.__currentScope, node));
-    }
-    /** @internal */
-    __nestEmptyFunctionScope(node) {
-        return this.__nestScope(new scopes_1.EmptyFunctionScope(this, this.__currentScope, node));
-    }
-}
-exports.ScopeManager = ScopeManager;
-//# sourceMappingURL=scope-manager.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js.map b/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js.map
deleted file mode 100644
index 5c3847e..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scope-manager.js","sourceRoot":"","sources":["../../src/scope/scope-manager.ts"],"names":[],"mappings":";;AAAA,8EAAgF;AAChF,qCAAyD;AAEzD;;GAEG;AACH,MAAa,YAAa,SAAQ,kCAAa,CAAC,YAAY;IAI1D,YAAY,OAA0C;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,eAAe,CAAC,IAAgC;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,kBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB;IAChB,wBAAwB,CACtB,IAAgC;QAEhC,OAAO,IAAI,CAAC,WAAW,CACrB,IAAI,2BAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CACxD,CAAC;IACJ,CAAC;CACF;AArBD,oCAqBC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts b/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts
deleted file mode 100644
index b41e1cd..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { TSESTree, TSESLintScope } from '@typescript-eslint/experimental-utils';
-import { ScopeManager } from './scope-manager';
-/** The scope class for enum. */
-export declare class EnumScope extends TSESLintScope.Scope {
-    constructor(scopeManager: ScopeManager, upperScope: TSESLintScope.Scope, block: TSESTree.TSEnumDeclaration | null);
-}
-/** The scope class for empty functions. */
-export declare class EmptyFunctionScope extends TSESLintScope.Scope {
-    constructor(scopeManager: ScopeManager, upperScope: TSESLintScope.Scope, block: TSESTree.TSDeclareFunction | null);
-}
-//# sourceMappingURL=scopes.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts.map b/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts.map
deleted file mode 100644
index 65f2a1f..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/scope/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,gCAAgC;AAChC,qBAAa,SAAU,SAAQ,aAAa,CAAC,KAAK;gBAE9C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,aAAa,CAAC,KAAK,EAC/B,KAAK,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;CAI3C;AAED,2CAA2C;AAC3C,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,KAAK;gBAEvD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,aAAa,CAAC,KAAK,EAC/B,KAAK,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;CAI3C"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scopes.js b/node_modules/@typescript-eslint/parser/dist/scope/scopes.js
deleted file mode 100644
index 52bc504..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scopes.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
-/** The scope class for enum. */
-class EnumScope extends experimental_utils_1.TSESLintScope.Scope {
-    constructor(scopeManager, upperScope, block) {
-        super(scopeManager, 'enum', upperScope, block, false);
-    }
-}
-exports.EnumScope = EnumScope;
-/** The scope class for empty functions. */
-class EmptyFunctionScope extends experimental_utils_1.TSESLintScope.Scope {
-    constructor(scopeManager, upperScope, block) {
-        super(scopeManager, 'empty-function', upperScope, block, false);
-    }
-}
-exports.EmptyFunctionScope = EmptyFunctionScope;
-//# sourceMappingURL=scopes.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/dist/scope/scopes.js.map b/node_modules/@typescript-eslint/parser/dist/scope/scopes.js.map
deleted file mode 100644
index 18850e0..0000000
--- a/node_modules/@typescript-eslint/parser/dist/scope/scopes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/scope/scopes.ts"],"names":[],"mappings":";;AAAA,8EAAgF;AAGhF,gCAAgC;AAChC,MAAa,SAAU,SAAQ,kCAAa,CAAC,KAAK;IAChD,YACE,YAA0B,EAC1B,UAA+B,EAC/B,KAAwC;QAExC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;CACF;AARD,8BAQC;AAED,2CAA2C;AAC3C,MAAa,kBAAmB,SAAQ,kCAAa,CAAC,KAAK;IACzD,YACE,YAA0B,EAC1B,UAA+B,EAC/B,KAAwC;QAExC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;CACF;AARD,gDAQC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint b/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint
new file mode 120000
index 0000000..da97b4e
--- /dev/null
+++ b/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint
@@ -0,0 +1 @@
+../../../../eslint/bin/eslint.js
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/parser/package.json b/node_modules/@typescript-eslint/parser/package.json
index 0b061a8..214ff28 100644
--- a/node_modules/@typescript-eslint/parser/package.json
+++ b/node_modules/@typescript-eslint/parser/package.json
@@ -1,16 +1,16 @@
 {
   "name": "@typescript-eslint/parser",
-  "version": "2.22.0",
+  "version": "4.3.0",
   "description": "An ESLint custom parser which leverages TypeScript ESTree",
-  "main": "dist/parser.js",
-  "types": "dist/parser.d.ts",
+  "main": "dist/index.js",
+  "types": "dist/index.d.ts",
   "files": [
     "dist",
     "README.md",
     "LICENSE"
   ],
   "engines": {
-    "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+    "node": "^10.12.0 || >=12.0.0"
   },
   "repository": {
     "type": "git",
@@ -32,25 +32,29 @@
   ],
   "scripts": {
     "build": "tsc -b tsconfig.build.json",
+    "postbuild": "downlevel-dts dist _ts3.4/dist",
     "clean": "tsc -b tsconfig.build.json --clean",
+    "postclean": "rimraf dist",
     "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
     "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'",
     "test": "jest --coverage",
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "peerDependencies": {
-    "eslint": "^5.0.0 || ^6.0.0"
+    "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
   },
   "dependencies": {
-    "@types/eslint-visitor-keys": "^1.0.0",
-    "@typescript-eslint/experimental-utils": "2.22.0",
-    "@typescript-eslint/typescript-estree": "2.22.0",
-    "eslint-visitor-keys": "^1.1.0"
+    "@typescript-eslint/scope-manager": "4.3.0",
+    "@typescript-eslint/types": "4.3.0",
+    "@typescript-eslint/typescript-estree": "4.3.0",
+    "debug": "^4.1.1"
   },
   "devDependencies": {
-    "@types/glob": "^7.1.1",
-    "@typescript-eslint/shared-fixtures": "2.22.0",
-    "glob": "*"
+    "@types/glob": "*",
+    "@typescript-eslint/experimental-utils": "4.3.0",
+    "@typescript-eslint/shared-fixtures": "4.3.0",
+    "glob": "*",
+    "typescript": "*"
   },
   "peerDependenciesMeta": {
     "typescript": {
@@ -61,5 +65,12 @@
     "type": "opencollective",
     "url": "https://opencollective.com/typescript-eslint"
   },
-  "gitHead": "5a097d316fb084dc4b13e87d68fe9bf43d8a9548"
+  "typesVersions": {
+    "<3.8": {
+      "*": [
+        "_ts3.4/*"
+      ]
+    }
+  },
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md b/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md
index cf0ad48..d68103f 100644
--- a/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md
@@ -3,6 +3,33 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+**Note:** Version bump only for package @typescript-eslint/scope-manager
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+
+### Bug Fixes
+
+* **scope-manager:** correct analysis of inferred types in conditional types ([#2537](https://github.com/typescript-eslint/typescript-eslint/issues/2537)) ([4f660fd](https://github.com/typescript-eslint/typescript-eslint/commit/4f660fd31acbb88b30719f925dcb2b3022cc2bab))
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+**Note:** Version bump only for package @typescript-eslint/scope-manager
+
+
+
+
+
 # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
 
 
diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map
index a471358..7003cbe 100644
--- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map
+++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"TypeVisitor.d.ts","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,cAAM,WAAY,SAAQ,OAAO;;gBAGnB,UAAU,EAAE,UAAU;IAKlC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;IAS/D,SAAS,CAAC,iBAAiB,CACzB,IAAI,EACA,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,+BAA+B,GACxC,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,iBAAiB,GAC7B,IAAI;IAgCP,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,GAC9D,IAAI;IAYP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI;IAIrD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAKjE,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,GACxC,IAAI;IAIP,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAUnE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAInE,SAAS,CAAC,+BAA+B,CACvC,IAAI,EAAE,QAAQ,CAAC,+BAA+B,GAC7C,IAAI;IAIP,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI;IAI7D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IASjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;IAsCvD,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAoBP,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI;IAOzD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAKnE,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,GAAG,IAAI;IAKrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,GAAG,IAAI;IAKvE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAK/D,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAkBP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAS/D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAQ/D,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;CAWxD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"TypeVisitor.d.ts","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,cAAM,WAAY,SAAQ,OAAO;;gBAGnB,UAAU,EAAE,UAAU;IAKlC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;IAS/D,SAAS,CAAC,iBAAiB,CACzB,IAAI,EACA,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,+BAA+B,GACxC,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,iBAAiB,GAC7B,IAAI;IAgCP,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,GAC9D,IAAI;IAYP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI;IAIrD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAKjE,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,GACxC,IAAI;IAIP,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAanE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAInE,SAAS,CAAC,+BAA+B,CACvC,IAAI,EAAE,QAAQ,CAAC,+BAA+B,GAC7C,IAAI;IAIP,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI;IAI7D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IASjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;IAsCvD,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAoBP,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI;IAOzD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAKnE,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,GAAG,IAAI;IAKrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,GAAG,IAAI;IAKvE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAK/D,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAkBP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAS/D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAQ/D,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;CAWxD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js
index 6a3d4e6..10b05f6 100644
--- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js
+++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js
@@ -79,8 +79,10 @@
         // conditional types can define inferred type parameters
         // which are only accessible from inside the conditional parameter
         __classPrivateFieldGet(this, _referencer).scopeManager.nestConditionalTypeScope(node);
-        this.visitChildren(node);
+        // type parameters inferred in the condition clause are not accessible within the false branch
+        this.visitChildren(node, ['falseType']);
         __classPrivateFieldGet(this, _referencer).close(node);
+        this.visit(node.falseType);
     }
     TSConstructorType(node) {
         this.visitFunctionType(node);
diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map
index 6ef5c83..19d692c 100644
--- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map
+++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map
@@ -1 +1 @@
-{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAoE;AAEpE,uCAAoC;AACpC,8CAAoE;AACpE,oCAAqC;AAErC,MAAM,WAAY,SAAQ,iBAAO;IAG/B,YAAY,UAAsB;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;QAHpB,8BAAiC;QAI/B,uBAAA,IAAI,eAAe,UAAU,EAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAsB,EAAE,IAAmB;QACtD,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;QACnD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IAET,iBAAiB,CACzB,IAK8B;QAE9B,gFAAgF;QAChF,0CAAiB,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACzC,8FAA8F;gBAC9F,0CACG,YAAY,EAAE;qBACd,gBAAgB,CACf,OAAO,EACP,IAAI,gCAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAClD,CAAC;gBAEJ,IAAI,OAAO,CAAC,cAAc,EAAE;oBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBACnC,kBAAkB,GAAG,IAAI,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;YAEH,qGAAqG;YACrG,IAAI,CAAC,kBAAkB,IAAI,gBAAgB,IAAI,KAAK,EAAE;gBACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAClC;SACF;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5B,0CAAiB,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,gBAAgB,CACxB,IAA+D;QAE/D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,4FAA4F;QAC5F,0CAAiB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IAEX,UAAU,CAAC,IAAyB;QAC5C,0CAAiB,YAAY,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAES,gBAAgB,CAAC,IAA+B;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,2BAA2B;IAC7B,CAAC;IAES,0BAA0B,CAClC,IAAyC;QAEzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,iBAAiB,CAAC,IAAgC;QAC1D,wDAAwD;QACxD,kEAAkE;QAClE,0CAAiB,YAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE7D,8FAA8F;QAC9F,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAExC,0CAAiB,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAES,iBAAiB,CAAC,IAAgC;QAC1D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,+BAA+B,CACvC,IAA8C;QAE9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,cAAc,CAAC,IAA6B;QACpD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,gBAAgB,CAAC,IAA+B;QACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAClC;SACF;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAES,WAAW,CAAC,IAA0B;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,KAAK,GAAG,0CAAiB,YAAY,EAAE,CAAC;QAE5C;;;;UAIE;QACF,IACE,KAAK,CAAC,IAAI,KAAK,iBAAS,CAAC,YAAY;YACrC,KAAK,CAAC,IAAI,KAAK,iBAAS,CAAC,UAAU,EACnC;YACA,yEAAyE;YACzE,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;YAC/B,OAAO,YAAY,EAAE;gBACnB,IACE,YAAY,CAAC,IAAI,KAAK,iBAAS,CAAC,YAAY;oBAC5C,YAAY,CAAC,IAAI,KAAK,iBAAS,CAAC,UAAU,EAC1C;oBACA,iCAAiC;oBACjC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;oBAClC,SAAS;iBACV;gBACD,IAAI,YAAY,CAAC,IAAI,KAAK,iBAAS,CAAC,eAAe,EAAE;oBACnD,KAAK,GAAG,YAAY,CAAC;oBACrB,MAAM;iBACP;gBACD,MAAM;aACP;SACF;QAED,KAAK,CAAC,gBAAgB,CACpB,aAAa,CAAC,IAAI,EAClB,IAAI,2BAAc,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CACtD,CAAC;IACJ,CAAC;IAES,sBAAsB,CAC9B,IAAqC;;QAErC,0CACG,YAAY,EAAE;aACd,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,2BAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,wEAAwE;YACxE,0CAAiB,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACjC;QAED,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QACxC,MAAA,IAAI,CAAC,UAAU,0CAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,0CAAiB,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,YAAY,CAAC,IAA2B;QAChD,oEAAoE;QACpE,0CAAiB,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,0CAAiB,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,iBAAiB,CAAC,IAAgC;QAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,kBAAkB,CAAC,IAAiC;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7B,sFAAsF;IACxF,CAAC;IAES,mBAAmB,CAAC,IAAkC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,8EAA8E;IAChF,CAAC;IAES,sBAAsB,CAC9B,IAAqC;QAErC,0CACG,YAAY,EAAE;aACd,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,2BAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,wEAAwE;YACxE,0CAAiB,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,0CAAiB,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,0CACG,YAAY,EAAE;aACd,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,2BAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;YACzD,0CAAiB,YAAY,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,qFAAqF;IAC3E,WAAW,CAAC,IAA0B;QAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;YACpD,0CAAiB,YAAY,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/D;aAAM;YACL,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;gBAC9C,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aAClB;YACD,0CAAiB,YAAY,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SACtD;IACH,CAAC;CACF;AAEQ,kCAAW"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/scope-manager/package.json b/node_modules/@typescript-eslint/scope-manager/package.json
index 10cf383..d93a700 100644
--- a/node_modules/@typescript-eslint/scope-manager/package.json
+++ b/node_modules/@typescript-eslint/scope-manager/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/scope-manager",
-  "version": "4.1.0",
+  "version": "4.3.0",
   "description": "TypeScript scope analyser for ESLint",
   "keywords": [
     "eslint",
@@ -39,12 +39,12 @@
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
-    "@typescript-eslint/types": "4.1.0",
-    "@typescript-eslint/visitor-keys": "4.1.0"
+    "@typescript-eslint/types": "4.3.0",
+    "@typescript-eslint/visitor-keys": "4.3.0"
   },
   "devDependencies": {
     "@types/glob": "*",
-    "@typescript-eslint/typescript-estree": "4.1.0",
+    "@typescript-eslint/typescript-estree": "4.3.0",
     "glob": "*",
     "jest-specific-snapshot": "*",
     "make-dir": "*",
@@ -64,5 +64,5 @@
       ]
     }
   },
-  "gitHead": "00a24706222254774121ee62038e67d0efa993e7"
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/types/CHANGELOG.md b/node_modules/@typescript-eslint/types/CHANGELOG.md
index 43d0346..a9206bf 100644
--- a/node_modules/@typescript-eslint/types/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/types/CHANGELOG.md
@@ -3,6 +3,33 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+**Note:** Version bump only for package @typescript-eslint/types
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+**Note:** Version bump only for package @typescript-eslint/types
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+
+### Bug Fixes
+
+* **types:** artificial fix needed to trigger release ([b577daf](https://github.com/typescript-eslint/typescript-eslint/commit/b577daf27cd87870b6e095e4e995519f96d321dd))
+
+
+
+
+
 # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
 
 
diff --git a/node_modules/@typescript-eslint/types/package.json b/node_modules/@typescript-eslint/types/package.json
index 641725a..9b0ca10 100644
--- a/node_modules/@typescript-eslint/types/package.json
+++ b/node_modules/@typescript-eslint/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/types",
-  "version": "4.1.0",
+  "version": "4.3.0",
   "description": "Types for the TypeScript-ESTree AST spec",
   "keywords": [
     "eslint",
@@ -48,5 +48,5 @@
       ]
     }
   },
-  "gitHead": "00a24706222254774121ee62038e67d0efa993e7"
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md b/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md
index ffd7ae3..0a5a33b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md
@@ -3,6 +3,400 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
+
+
+### Bug Fixes
+
+* correct decorator traversal for AssignmentPattern ([#2375](https://github.com/typescript-eslint/typescript-eslint/issues/2375)) ([d738fa4](https://github.com/typescript-eslint/typescript-eslint/commit/d738fa4eff0a5c4cfc9b30b1c0502f8d1e78d7b6))
+* **typescript-estree:** correct ChainExpression interaction with parentheses and non-nulls ([#2380](https://github.com/typescript-eslint/typescript-eslint/issues/2380)) ([762bc99](https://github.com/typescript-eslint/typescript-eslint/commit/762bc99584ede4d0b8099a743991e957aec86aa8))
+
+
+### Features
+
+* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
+* **typescript-estree:** switch to globby ([#2418](https://github.com/typescript-eslint/typescript-eslint/issues/2418)) ([3a7ec9b](https://github.com/typescript-eslint/typescript-eslint/commit/3a7ec9bcf1873a99c6da2f19ade8ab4763b4793c)), closes [#2398](https://github.com/typescript-eslint/typescript-eslint/issues/2398)
+
+
+### BREAKING CHANGES
+
+* **typescript-estree:** - removes the ability to supply a `RegExp` to `projectFolderIgnoreList`, and changes the meaning of the string value from a regex to a glob.
+* - Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
+- Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.
+
+
+
+
+
+## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
+
+
+### Bug Fixes
+
+* **typescript-estree:** ts.NamedTupleMember workaround for <TS4.0 ([#2405](https://github.com/typescript-eslint/typescript-eslint/issues/2405)) ([b62331a](https://github.com/typescript-eslint/typescript-eslint/commit/b62331ad02dcff3236e18f10eb92d59e7371d4c3))
+
+
+### Features
+
+* **typescript-estree:** update allowed TS version range ([#2419](https://github.com/typescript-eslint/typescript-eslint/issues/2419)) ([e6be621](https://github.com/typescript-eslint/typescript-eslint/commit/e6be62128b3a98541fe590512892c4b501914e46))
+
+
+
+
+
+## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
+
+
+### Features
+
+* **typescript-estree:** support TSv4 labelled tuple members ([#2378](https://github.com/typescript-eslint/typescript-eslint/issues/2378)) ([00d84ff](https://github.com/typescript-eslint/typescript-eslint/commit/00d84ffbcbe9d0ec98bdb2f2ce59959a27ce4dbe))
+
+
+
+
+
+# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
+
+
+### Bug Fixes
+
+* **typescript-estree:** correct AST regression introduced by TS4.0 upgrade ([#2316](https://github.com/typescript-eslint/typescript-eslint/issues/2316)) ([d7fefba](https://github.com/typescript-eslint/typescript-eslint/commit/d7fefba3741a526ff2b58dd713995c3ee5603962))
+
+
+
+
+
+# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
+
+
+### Features
+
+* **typescript-estree:** support short-circuiting assignment operators ([#2307](https://github.com/typescript-eslint/typescript-eslint/issues/2307)) ([2c90d9f](https://github.com/typescript-eslint/typescript-eslint/commit/2c90d9fa3aa5ebd7db697dddb7762bca2dd0e06b))
+* **typescript-estree:** support type annotations on catch clauses ([#2306](https://github.com/typescript-eslint/typescript-eslint/issues/2306)) ([b5afe9c](https://github.com/typescript-eslint/typescript-eslint/commit/b5afe9c560b9f38c8dffc312a600db30944129c8))
+
+
+
+
+
+## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
+
+
+### Bug Fixes
+
+* **typescript-estree:** forward compatibility for new compound assignment operators ([#2253](https://github.com/typescript-eslint/typescript-eslint/issues/2253)) ([ba41680](https://github.com/typescript-eslint/typescript-eslint/commit/ba41680f2a25b1aa4d05c2d4b132ac73a6faefbd))
+
+
+### Features
+
+* add package scope-manager ([#1939](https://github.com/typescript-eslint/typescript-eslint/issues/1939)) ([682eb7e](https://github.com/typescript-eslint/typescript-eslint/commit/682eb7e009c3f22a542882dfd3602196a60d2a1e))
+* split types into their own package ([#2229](https://github.com/typescript-eslint/typescript-eslint/issues/2229)) ([5f45918](https://github.com/typescript-eslint/typescript-eslint/commit/5f4591886f3438329fbf2229b03ac66174334a24))
+* split visitor keys into their own package ([#2230](https://github.com/typescript-eslint/typescript-eslint/issues/2230)) ([689dae3](https://github.com/typescript-eslint/typescript-eslint/commit/689dae37392d527c64ae83db2a4c3e6b7fecece7))
+
+
+
+
+
+# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
+
+
+### Bug Fixes
+
+* **typescript-estree:** handle TS4.0 breaking change in TupleType ([#2197](https://github.com/typescript-eslint/typescript-eslint/issues/2197)) ([5d68129](https://github.com/typescript-eslint/typescript-eslint/commit/5d6812914831a386997b453b4db1e3283e26005d))
+
+
+
+
+
+# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
+
+
+
+
+
+# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
+
+
+### Bug Fixes
+
+* **eslint-plugin:** [no-unused-expressions] ignore import expressions ([#2130](https://github.com/typescript-eslint/typescript-eslint/issues/2130)) ([e383691](https://github.com/typescript-eslint/typescript-eslint/commit/e3836910efdafd9edf04daed149c9e839c08047e))
+* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
+
+
+
+
+
+## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
+
+
+### Bug Fixes
+
+* **typescript-estree:** handle `BigInt` with `_` numeric separator ([#2067](https://github.com/typescript-eslint/typescript-eslint/issues/2067)) ([66f1627](https://github.com/typescript-eslint/typescript-eslint/commit/66f1627b11a566d5b925a577e800f99d5c808be2))
+* **typescript-estree:** mark TS 3.8 and 3.9 as "supported" ([#2057](https://github.com/typescript-eslint/typescript-eslint/issues/2057)) ([5eedbff](https://github.com/typescript-eslint/typescript-eslint/commit/5eedbff01178ea33b98ab22e556df4c1a195f839)), closes [#1436](https://github.com/typescript-eslint/typescript-eslint/issues/1436) [#1436](https://github.com/typescript-eslint/typescript-eslint/issues/1436)
+
+
+
+
+
+# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
+
+## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
+
+### Bug Fixes
+
+* **typescript-estree:** remove now defunct `Import` node type ([f199cbd](https://github.com/typescript-eslint/typescript-eslint/commit/f199cbdbbd892b5ba03bfff66f463f3d9c92ee9b))
+* **typescript-estree:** use `TSEmptyBodyFunctionExpression` for body-less nodes ([#1289](https://github.com/typescript-eslint/typescript-eslint/issues/1289)) ([82e7163](https://github.com/typescript-eslint/typescript-eslint/commit/82e7163214b56ccde93ba97807b161669a50a60b))
+
+
+### Features
+
+* add index files to parser and typescript-estree ([3dfc46d](https://github.com/typescript-eslint/typescript-eslint/commit/3dfc46dccbbd28eed2d74c7b6cacddf1a0848598))
+* bump minimum required TS version ([#2004](https://github.com/typescript-eslint/typescript-eslint/issues/2004)) ([7ad4d7c](https://github.com/typescript-eslint/typescript-eslint/commit/7ad4d7c2db088b6f779b9d883a4acad13eee3775))
+* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
+* **typescript-estree:** align nodes with estree 2020 ([#1389](https://github.com/typescript-eslint/typescript-eslint/issues/1389)) ([aff5b62](https://github.com/typescript-eslint/typescript-eslint/commit/aff5b62044f9b93f2087a1d261e9be3f8d6fd54d))
+* **typescript-estree:** align optional fields ([#1429](https://github.com/typescript-eslint/typescript-eslint/issues/1429)) ([0e0010f](https://github.com/typescript-eslint/typescript-eslint/commit/0e0010f82952f9beeeb84136eea00cc5eecc9db6))
+* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
+* **typescript-estree:** always return parserServices ([#716](https://github.com/typescript-eslint/typescript-eslint/issues/716)) ([5b23443](https://github.com/typescript-eslint/typescript-eslint/commit/5b23443c48f3f62424db3e742243f3568080b946))
+* **typescript-estree:** handle 3.9's non-null assertion changes ([#2036](https://github.com/typescript-eslint/typescript-eslint/issues/2036)) ([06bec63](https://github.com/typescript-eslint/typescript-eslint/commit/06bec63c56536db070608ab136d2ad57083f0c6a))
+
+
+
+
+
+# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
+
+
+### Bug Fixes
+
+* **typescript-estree:** fix handling of range/loc removal ([#2028](https://github.com/typescript-eslint/typescript-eslint/issues/2028)) ([ce344d9](https://github.com/typescript-eslint/typescript-eslint/commit/ce344d90e7c78b0c4b4b823494a3e78190f45c64))
+
+
+
+
+
+# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
+
+
+### Features
+
+* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
+
+
+
+
+
+# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
+
+**Note:** Version bump only for package @typescript-eslint/typescript-estree
+
+
+
+
+
+# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
+
+
+### Features
+
+* **eslint-plugin:** [no-floating-promise] add option to ignore IIFEs ([#1799](https://github.com/typescript-eslint/typescript-eslint/issues/1799)) ([cea51bf](https://github.com/typescript-eslint/typescript-eslint/commit/cea51bf130d6d3c2935f5e2dcc468196f2ad9d00))
+
+
+
+
+
+# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
+
+
+### Features
+
+* **eslint-plugin:** add rule `prefer-ts-expect-error` ([#1705](https://github.com/typescript-eslint/typescript-eslint/issues/1705)) ([7021f21](https://github.com/typescript-eslint/typescript-eslint/commit/7021f2151a25db2a8edf17e06cd6f21e90761ec8))
+* **eslint-plugin:** add rule no-unsafe-assignment ([#1694](https://github.com/typescript-eslint/typescript-eslint/issues/1694)) ([a49b860](https://github.com/typescript-eslint/typescript-eslint/commit/a49b860cbbb2c7d718b99f561e2fb6eaadf16f17))
+
+
+
+
+
+# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
+
+
+### Bug Fixes
+
+* **typescript-estree:** add support for TS3.9 extra file extensions ([#1833](https://github.com/typescript-eslint/typescript-eslint/issues/1833)) ([1f0ff41](https://github.com/typescript-eslint/typescript-eslint/commit/1f0ff41aa1bc3b7c5330b2f5fe22e24bf578a6b2))
+
+
+### Features
+
+* **eslint-plugin:** sort members alphabetically ([#263](https://github.com/typescript-eslint/typescript-eslint/issues/263)) ([485e902](https://github.com/typescript-eslint/typescript-eslint/commit/485e90213a0f8baac0587f7d56925448883fc5bd))
+
+
+
+
+
+# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
+
+
+### Features
+
+* **typescript-estree:** add option to ignore certain folders from glob resolution ([#1802](https://github.com/typescript-eslint/typescript-eslint/issues/1802)) ([1e29e69](https://github.com/typescript-eslint/typescript-eslint/commit/1e29e69b289d61107a7de67592beae331ba50222))
+
+
+
+
+
+# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
+
+
+### Bug Fixes
+
+* **typescript-estree:** export * regression from 133f622f ([#1751](https://github.com/typescript-eslint/typescript-eslint/issues/1751)) ([09d8afc](https://github.com/typescript-eslint/typescript-eslint/commit/09d8afca684635b5ac604bc1794240484a70ce91))
+
+
+
+
+
+# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
+
+
+### Bug Fixes
+
+* **typescript-estree:** unnecessary program updates by removing timeout methods ([#1693](https://github.com/typescript-eslint/typescript-eslint/issues/1693)) ([2ccd66b](https://github.com/typescript-eslint/typescript-eslint/commit/2ccd66b920816d54cc1a639059f60410df665900))
+
+
+### Features
+
+* **typescript-estree:** support 3.8 `export * as ns` ([#1698](https://github.com/typescript-eslint/typescript-eslint/issues/1698)) ([133f622](https://github.com/typescript-eslint/typescript-eslint/commit/133f622f38a286eac45288a9789d2ee529d5e582))
+
+
+
+
+
+# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
+
+
+### Features
+
+* **typescript-estree:** support 3.8 import/export type ([#1697](https://github.com/typescript-eslint/typescript-eslint/issues/1697)) ([625d603](https://github.com/typescript-eslint/typescript-eslint/commit/625d603f94bf0521f834313bf31c734ce4948b7a))
+
+
+
+
+
 # [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
 
 **Note:** Version bump only for package @typescript-eslint/typescript-estree
diff --git a/node_modules/@typescript-eslint/typescript-estree/README.md b/node_modules/@typescript-eslint/typescript-estree/README.md
index 54706cf..3a434c7 100644
--- a/node_modules/@typescript-eslint/typescript-estree/README.md
+++ b/node_modules/@typescript-eslint/typescript-estree/README.md
@@ -3,14 +3,14 @@
 <p align="center">A parser that converts TypeScript source code into an <a href="https://github.com/estree/estree">ESTree</a>-compatible form</p>
 
 <p align="center">
-    <a href="https://dev.azure.com/typescript-eslint/TypeScript%20ESLint/_build/latest?definitionId=1&branchName=master"><img src="https://img.shields.io/azure-devops/build/typescript-eslint/TypeScript%20ESLint/1/master.svg?label=%F0%9F%9A%80%20Azure%20Pipelines&style=flat-square" alt="Azure Pipelines"/></a>
-    <a href="https://github.com/typescript-eslint/typescript-eslint/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/typescript-estree.svg?style=flat-square" alt="GitHub license" /></a>
+    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
     <a href="https://www.npmjs.com/package/@typescript-eslint/typescript-estree"><img src="https://img.shields.io/npm/v/@typescript-eslint/typescript-estree.svg?style=flat-square" alt="NPM Version" /></a>
     <a href="https://www.npmjs.com/package/@typescript-eslint/typescript-estree"><img src="https://img.shields.io/npm/dm/@typescript-eslint/typescript-estree.svg?style=flat-square" alt="NPM Downloads" /></a>
-    <a href="http://commitizen.github.io/cz-cli/"><img src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square" alt="Commitizen friendly" /></a>
 </p>
 
-<br>
+## Getting Started
+
+**[You can find our Getting Started docs here](../../docs/getting-started/linting/README.md)**
 
 ## About
 
@@ -183,6 +183,15 @@
   project?: string | string[];
 
   /**
+   * If you provide a glob (or globs) to the project option, you can use this option to ignore certain folders from
+   * being matched by the globs.
+   * This accepts an array of globs to ignore.
+   *
+   * By default, this is set to ["/node_modules/"]
+   */
+  projectFolderIgnoreList?: string[];
+
+  /**
    * The absolute path to the root directory for all provided `project`s.
    */
   tsconfigRootDir?: string;
@@ -205,6 +214,7 @@
   extraFileExtensions: [],
   preserveNodeMaps: false, // or true, if you do not set this, but pass `project`
   project: undefined,
+  projectFolderIgnoreList: ['/node_modules/'],
   tsconfigRootDir: process.cwd(),
 };
 
@@ -238,9 +248,7 @@
 
 ## Supported TypeScript Version
 
-We will always endeavor to support the latest stable version of TypeScript.
-
-The version of TypeScript currently supported by this parser is `~3.2.1`. This is reflected in the `devDependency` requirement within the package.json file, and it is what the tests will be run against. We have an open `peerDependency` requirement in order to allow for experimentation on newer/beta versions of TypeScript.
+See the [Supported TypeScript Version](../../README.md#supported-typescript-version) section in the project root.
 
 If you use a non-supported version of TypeScript, the parser will log a warning to the console.
 
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts
index cecb91f..61bc2f1 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts
@@ -4,6 +4,6 @@
 import { TSESTree } from './ts-estree';
 export declare function astConverter(ast: SourceFile, extra: Extra, shouldPreserveNodeMaps: boolean): {
     estree: TSESTree.Program;
-    astMaps: ASTMaps | undefined;
+    astMaps: ASTMaps;
 };
 //# sourceMappingURL=ast-converter.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map
index 5ade0e4..df6276c 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ast-converter.d.ts","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA2B,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,OAAO,GAC9B;IAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAwD5D"}
\ No newline at end of file
+{"version":3,"file":"ast-converter.d.ts","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA2B,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,OAAO,GAC9B;IAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA4DhD"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js
index b6d818c..6af960e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js
@@ -1,5 +1,6 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.astConverter = void 0;
 const convert_1 = require("./convert");
 const convert_comments_1 = require("./convert-comments");
 const node_utils_1 = require("./node-utils");
@@ -27,13 +28,17 @@
     /**
      * Optionally remove range and loc if specified
      */
-    if (extra.range || extra.loc) {
+    if (!extra.range || !extra.loc) {
         simple_traverse_1.simpleTraverse(estree, {
             enter: node => {
                 if (!extra.range) {
+                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- TS 4.0 made this an error because the types aren't optional
+                    // @ts-expect-error
                     delete node.range;
                 }
                 if (!extra.loc) {
+                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- TS 4.0 made this an error because the types aren't optional
+                    // @ts-expect-error
                     delete node.loc;
                 }
             },
@@ -51,7 +56,7 @@
     if (extra.comment) {
         estree.comments = convert_comments_1.convertComments(ast, extra.code);
     }
-    const astMaps = shouldPreserveNodeMaps ? instance.getASTMaps() : undefined;
+    const astMaps = instance.getASTMaps();
     return { estree, astMaps };
 }
 exports.astConverter = astConverter;
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map
index c379ca4..6a5b215 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map
@@ -1 +1 @@
-{"version":3,"file":"ast-converter.js","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":";;AACA,uCAA6D;AAC7D,yDAAqD;AACrD,6CAA6C;AAG7C,uDAAmD;AAEnD,SAAgB,YAAY,CAC1B,GAAe,EACf,KAAY,EACZ,sBAA+B;IAE/B;;;OAGG;IACH,6BAA6B;IAC7B,8DAA8D;IAC9D,MAAM,gBAAgB,GAAI,GAAW,CAAC,gBAAgB,CAAC;IACvD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,sBAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED;;OAEG;IACH,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,GAAG,EAAE;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,KAAK;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,sBAAsB;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;QAC5B,gCAAc,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBAChB,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,OAAO,IAAI,CAAC,GAAG,CAAC;iBACjB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,MAAM,GAAG,0BAAa,CAAC,GAAG,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,kCAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AA5DD,oCA4DC"}
\ No newline at end of file
+{"version":3,"file":"ast-converter.js","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAC7D,yDAAqD;AACrD,6CAA6C;AAG7C,uDAAmD;AAEnD,SAAgB,YAAY,CAC1B,GAAe,EACf,KAAY,EACZ,sBAA+B;IAE/B;;;OAGG;IACH,6BAA6B;IAC7B,8DAA8D;IAC9D,MAAM,gBAAgB,GAAI,GAAW,CAAC,gBAAgB,CAAC;IACvD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,sBAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED;;OAEG;IACH,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,GAAG,EAAE;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,KAAK;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,sBAAsB;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9B,gCAAc,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBAChB,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,GAAG,CAAC;iBACjB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,MAAM,GAAG,0BAAa,CAAC,GAAG,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,kCAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAhED,oCAgEC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js b/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js
index 56c0e58..de4a735 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js
@@ -1,12 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.convertComments = void 0;
 const ts = __importStar(require("typescript"));
 const util_1 = require("tsutils/util/util");
 const node_utils_1 = require("./node-utils");
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map
index 0525030..6952a58 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map
@@ -1 +1 @@
-{"version":3,"file":"convert-comments.js","sourceRoot":"","sources":["../src/convert-comments.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAiC;AACjC,4CAAmD;AACnD,6CAAyC;AACzC,2CAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,GAAkB,EAClB,IAAY;IAEZ,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,qBAAc,CACZ,GAAG,EACH,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACb,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACnD,CAAC,CAAC,2BAAe,CAAC,IAAI;YACtB,CAAC,CAAC,2BAAe,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,sBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE/C,mDAAmD;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACpD,CAAC,CAAC,sCAAsC;gBACtC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;YACtB,CAAC,CAAC,4CAA4C;gBAC5C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;YACtC,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,EACD,GAAG,CACJ,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAnCD,0CAmCC"}
\ No newline at end of file
+{"version":3,"file":"convert-comments.js","sourceRoot":"","sources":["../src/convert-comments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4CAAmD;AACnD,6CAAyC;AACzC,2CAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,GAAkB,EAClB,IAAY;IAEZ,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,qBAAc,CACZ,GAAG,EACH,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACb,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACnD,CAAC,CAAC,2BAAe,CAAC,IAAI;YACtB,CAAC,CAAC,2BAAe,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,sBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE/C,mDAAmD;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACpD,CAAC,CAAC,sCAAsC;gBACtC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;YACtB,CAAC,CAAC,4CAA4C;gBAC5C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;YACtC,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,EACD,GAAG,CACJ,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAnCD,0CAmCC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts
index a56f7ce..c065e15 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts
@@ -1,7 +1,7 @@
 import * as ts from 'typescript';
 import { TSError } from './node-utils';
-import { TSESTree, TSNode } from './ts-estree';
 import { ParserWeakMap, ParserWeakMapESTreeToTSNode } from './parser-options';
+import { TSESTree, TSNode } from './ts-estree';
 interface ConverterOptions {
     errorOnUnknownASTType: boolean;
     useJSXTextNode: boolean;
@@ -75,6 +75,7 @@
      */
     private convertType;
     private createNode;
+    private convertBindingNameWithTypeAnnotation;
     /**
      * Converts a child into a type annotation. This creates an intermediary
      * TypeAnnotation node to match what Flow does.
@@ -109,6 +110,7 @@
      * @returns an array of converted ESTreeNode params
      */
     private convertParameters;
+    private convertChainExpression;
     /**
      * For nodes that are copied directly from the TypeScript AST into
      * ESTree mostly as-is. The only difference is the addition of a type
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map
index 1956b44..c1f6816 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAkBL,OAAO,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,QAAQ,EACR,MAAM,EAEP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAI9E,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAMhD;AAED,MAAM,WAAW,OAAO;IACtB,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAEvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;OAKG;gBACS,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAKzD,UAAU,IAAI,OAAO;IAOrB,cAAc,IAAI,QAAQ,CAAC,OAAO;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAmDlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAkBlB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,oCAAoC;IAa5C;;;;OAIG;IACH,OAAO,CAAC,kDAAkD;IAe1D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmElB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAmCzB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CAkiEpB"}
\ No newline at end of file
+{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAkBL,OAAO,EAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAEL,QAAQ,EACR,MAAM,EAEP,MAAM,aAAa,CAAC;AAKrB,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAMhD;AAED,MAAM,WAAW,OAAO;IACtB,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAEvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;OAKG;gBACS,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAKzD,UAAU,IAAI,OAAO;IAOrB,cAAc,IAAI,QAAQ,CAAC,OAAO;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAyDlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,oCAAoC;IAe5C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,oCAAoC;IAa5C;;;;OAIG;IACH,OAAO,CAAC,kDAAkD;IAe1D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IA4C9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmElB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CA8iEpB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js
index 2fcd472..e45592f 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js
@@ -1,17 +1,31 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.Converter = exports.convertError = void 0;
 // There's lots of funny stuff due to the typing of ts.Node
 /* eslint-disable @typescript-eslint/no-explicit-any */
 const ts = __importStar(require("typescript"));
 const node_utils_1 = require("./node-utils");
 const ts_estree_1 = require("./ts-estree");
+const version_check_1 = require("./version-check");
 const SyntaxKind = ts.SyntaxKind;
 /**
  * Extends and formats a given error object
@@ -69,7 +83,7 @@
         if (allowPattern !== undefined) {
             this.allowPattern = allowPattern;
         }
-        const result = this.convertNode(node, ((parent !== null && parent !== void 0 ? parent : node.parent)));
+        const result = this.convertNode(node, (parent !== null && parent !== void 0 ? parent : node.parent));
         this.registerTSNodeInNodeMap(node, result);
         this.inTypeMode = typeMode;
         this.allowPattern = pattern;
@@ -101,14 +115,19 @@
                     type: ts_estree_1.AST_NODE_TYPES.ExportDefaultDeclaration,
                     declaration: result,
                     range: [exportKeyword.getStart(this.ast), result.range[1]],
+                    exportKind: 'value',
                 });
             }
             else {
+                const isType = result.type === ts_estree_1.AST_NODE_TYPES.TSInterfaceDeclaration ||
+                    result.type === ts_estree_1.AST_NODE_TYPES.TSTypeAliasDeclaration;
+                const isDeclare = result.declare === true;
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.ExportNamedDeclaration,
                     declaration: result,
                     specifiers: [],
                     source: null,
+                    exportKind: isType || isDeclare ? 'type' : 'value',
                     range: [exportKeyword.getStart(this.ast), result.range[1]],
                 });
             }
@@ -155,7 +174,9 @@
     createNode(node, data) {
         const result = data;
         if (!result.range) {
-            result.range = node_utils_1.getRange(node, this.ast);
+            result.range = node_utils_1.getRange(
+            // this is completely valid, but TS hates it
+            node, this.ast);
         }
         if (!result.loc) {
             result.loc = node_utils_1.getLocFor(result.range[0], result.range[1], this.ast);
@@ -165,6 +186,14 @@
         }
         return result;
     }
+    convertBindingNameWithTypeAnnotation(name, tsType, parent) {
+        const id = this.convertPattern(name);
+        if (tsType) {
+            id.typeAnnotation = this.convertTypeAnnotation(tsType, parent);
+            this.fixParentLocation(id, id.typeAnnotation.range);
+        }
+        return id;
+    }
     /**
      * Converts a child into a type annotation. This creates an intermediary
      * TypeAnnotation node to match what Flow does.
@@ -174,8 +203,8 @@
      */
     convertTypeAnnotation(child, parent) {
         // in FunctionType and ConstructorType typeAnnotation has 2 characters `=>` and in other places is just colon
-        const offset = parent.kind === SyntaxKind.FunctionType ||
-            parent.kind === SyntaxKind.ConstructorType
+        const offset = (parent === null || parent === void 0 ? void 0 : parent.kind) === SyntaxKind.FunctionType ||
+            (parent === null || parent === void 0 ? void 0 : parent.kind) === SyntaxKind.ConstructorType
             ? 2
             : 1;
         const annotationStartCol = child.getFullStart() - offset;
@@ -197,10 +226,9 @@
         let allowDirectives = node_utils_1.canContainDirective(parent);
         return (nodes
             .map(statement => {
-            var _a;
             const child = this.convertChild(statement);
             if (allowDirectives) {
-                if (((_a = child) === null || _a === void 0 ? void 0 : _a.expression) &&
+                if ((child === null || child === void 0 ? void 0 : child.expression) &&
                     ts.isExpressionStatement(statement) &&
                     ts.isStringLiteral(statement.expression)) {
                     const raw = child.expression.raw;
@@ -254,13 +282,46 @@
             return [];
         }
         return parameters.map(param => {
+            var _a;
             const convertedParam = this.convertChild(param);
-            if (param.decorators && param.decorators.length) {
+            if ((_a = param.decorators) === null || _a === void 0 ? void 0 : _a.length) {
                 convertedParam.decorators = param.decorators.map(el => this.convertChild(el));
             }
             return convertedParam;
         });
     }
+    convertChainExpression(node, tsNode) {
+        const { child, isOptional } = (() => {
+            if (node.type === ts_estree_1.AST_NODE_TYPES.MemberExpression) {
+                return { child: node.object, isOptional: node.optional };
+            }
+            if (node.type === ts_estree_1.AST_NODE_TYPES.CallExpression) {
+                return { child: node.callee, isOptional: node.optional };
+            }
+            return { child: node.expression, isOptional: false };
+        })();
+        const isChildUnwrappable = node_utils_1.isChildUnwrappableOptionalChain(tsNode, child);
+        if (!isChildUnwrappable && !isOptional) {
+            return node;
+        }
+        if (isChildUnwrappable && node_utils_1.isChainExpression(child)) {
+            // unwrap the chain expression child
+            const newChild = child.expression;
+            if (node.type === ts_estree_1.AST_NODE_TYPES.MemberExpression) {
+                node.object = newChild;
+            }
+            else if (node.type === ts_estree_1.AST_NODE_TYPES.CallExpression) {
+                node.callee = newChild;
+            }
+            else {
+                node.expression = newChild;
+            }
+        }
+        return this.createNode(tsNode, {
+            type: ts_estree_1.AST_NODE_TYPES.ChainExpression,
+            expression: node,
+        });
+    }
     /**
      * For nodes that are copied directly from the TypeScript AST into
      * ESTree mostly as-is. The only difference is the addition of a type
@@ -328,6 +389,11 @@
         let result;
         switch (node.kind) {
             case SyntaxKind.PropertyAccessExpression:
+                if (node.name.kind === SyntaxKind.PrivateIdentifier) {
+                    // This is one of the few times where TS explicitly errors, and doesn't even gracefully handle the syntax.
+                    // So we shouldn't ever get into this state to begin with.
+                    throw new Error('Non-private identifier expected.');
+                }
                 result = this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.JSXMemberExpression,
                     object: this.convertJSXTagName(node.expression, parent),
@@ -426,16 +492,13 @@
      * @returns the converted ESTree node
      */
     convertNode(node, parent) {
-        var _a, _b, _c, _d, _e, _f, _g, _h;
+        var _a, _b, _c, _d, _e, _f, _g, _h, _j;
         switch (node.kind) {
             case SyntaxKind.SourceFile: {
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.Program,
                     body: this.convertBodyExpressions(node.statements, node),
-                    // externalModuleIndicator is internal field in TSC
-                    sourceType: node.externalModuleIndicator
-                        ? 'module'
-                        : 'script',
+                    sourceType: node.externalModuleIndicator ? 'module' : 'script',
                     range: [node.getStart(this.ast), node.endOfFileToken.end],
                 });
             }
@@ -520,7 +583,7 @@
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.CatchClause,
                     param: node.variableDeclaration
-                        ? this.convertChild(node.variableDeclaration.name)
+                        ? this.convertBindingNameWithTypeAnnotation(node.variableDeclaration.name, node.variableDeclaration.type)
                         : null,
                     body: this.convertChild(node.block),
                 });
@@ -590,30 +653,18 @@
                 if (node.typeParameters) {
                     result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
                 }
-                /**
-                 * Semantically, decorators are not allowed on function declarations,
-                 * but the TypeScript compiler will parse them and produce a valid AST,
-                 * so we handle them here too.
-                 */
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
                 // check for exports
                 return this.fixExports(node, result);
             }
             case SyntaxKind.VariableDeclaration: {
                 const result = this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.VariableDeclarator,
-                    id: this.convertPattern(node.name),
+                    id: this.convertBindingNameWithTypeAnnotation(node.name, node.type, node),
                     init: this.convertChild(node.initializer),
                 });
                 if (node.exclamationToken) {
                     result.definite = true;
                 }
-                if (node.type) {
-                    result.id.typeAnnotation = this.convertTypeAnnotation(node.type, node);
-                    this.fixParentLocation(result.id, result.id.typeAnnotation.range);
-                }
                 return result;
             }
             case SyntaxKind.VariableStatement: {
@@ -763,7 +814,9 @@
             case SyntaxKind.SetAccessor:
             case SyntaxKind.MethodDeclaration: {
                 const method = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.FunctionExpression,
+                    type: !node.body
+                        ? ts_estree_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression
+                        : ts_estree_1.AST_NODE_TYPES.FunctionExpression,
                     id: null,
                     generator: !!node.asteriskToken,
                     expression: false,
@@ -821,9 +874,8 @@
                         result.accessibility = accessibility;
                     }
                 }
-                if (result.key.type === ts_estree_1.AST_NODE_TYPES.Identifier &&
-                    node.questionToken) {
-                    result.key.optional = true;
+                if (node.questionToken) {
+                    result.optional = true;
                 }
                 if (node.kind === SyntaxKind.GetAccessor) {
                     result.kind = 'get';
@@ -845,7 +897,9 @@
                 const constructorToken = (lastModifier && node_utils_1.findNextToken(lastModifier, node, this.ast)) ||
                     node.getFirstToken();
                 const constructor = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.FunctionExpression,
+                    type: !node.body
+                        ? ts_estree_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression
+                        : ts_estree_1.AST_NODE_TYPES.FunctionExpression,
                     id: null,
                     params: this.convertParameters(node.parameters),
                     generator: false,
@@ -947,13 +1001,13 @@
                     if (node.dotDotDotToken) {
                         result = this.createNode(node, {
                             type: ts_estree_1.AST_NODE_TYPES.RestElement,
-                            argument: this.convertChild((_a = node.propertyName, (_a !== null && _a !== void 0 ? _a : node.name))),
+                            argument: this.convertChild((_a = node.propertyName) !== null && _a !== void 0 ? _a : node.name),
                         });
                     }
                     else {
                         result = this.createNode(node, {
                             type: ts_estree_1.AST_NODE_TYPES.Property,
-                            key: this.convertChild((_b = node.propertyName, (_b !== null && _b !== void 0 ? _b : node.name))),
+                            key: this.convertChild((_b = node.propertyName) !== null && _b !== void 0 ? _b : node.name),
                             value: this.convertChild(node.name),
                             computed: Boolean(node.propertyName &&
                                 node.propertyName.kind === SyntaxKind.ComputedPropertyName),
@@ -1109,7 +1163,7 @@
                 if (node.modifiers) {
                     return this.createNode(node, {
                         type: ts_estree_1.AST_NODE_TYPES.TSParameterProperty,
-                        accessibility: (_c = node_utils_1.getTSNodeAccessibility(node), (_c !== null && _c !== void 0 ? _c : undefined)),
+                        accessibility: (_c = node_utils_1.getTSNodeAccessibility(node)) !== null && _c !== void 0 ? _c : undefined,
                         readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined,
                         static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node) || undefined,
                         export: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node) || undefined,
@@ -1121,7 +1175,7 @@
             // Classes
             case SyntaxKind.ClassDeclaration:
             case SyntaxKind.ClassExpression: {
-                const heritageClauses = (_d = node.heritageClauses, (_d !== null && _d !== void 0 ? _d : []));
+                const heritageClauses = (_d = node.heritageClauses) !== null && _d !== void 0 ? _d : [];
                 const classNodeType = node.kind === SyntaxKind.ClassDeclaration
                     ? ts_estree_1.AST_NODE_TYPES.ClassDeclaration
                     : ts_estree_1.AST_NODE_TYPES.ClassExpression;
@@ -1135,14 +1189,14 @@
                         body: [],
                         range: [node.members.pos - 1, node.end],
                     }),
-                    superClass: ((_e = superClass) === null || _e === void 0 ? void 0 : _e.types[0]) ? this.convertChild(superClass.types[0].expression)
+                    superClass: (superClass === null || superClass === void 0 ? void 0 : superClass.types[0]) ? this.convertChild(superClass.types[0].expression)
                         : null,
                 });
                 if (superClass) {
                     if (superClass.types.length > 1) {
                         throw node_utils_1.createError(this.ast, superClass.types[1].pos, 'Classes can only extend a single class.');
                     }
-                    if (superClass.types[0] && superClass.types[0].typeArguments) {
+                    if ((_e = superClass.types[0]) === null || _e === void 0 ? void 0 : _e.typeArguments) {
                         result.superTypeParameters = this.convertTypeArgumentsToTypeParameters(superClass.types[0].typeArguments, superClass.types[0]);
                     }
                 }
@@ -1182,8 +1236,12 @@
                     type: ts_estree_1.AST_NODE_TYPES.ImportDeclaration,
                     source: this.convertChild(node.moduleSpecifier),
                     specifiers: [],
+                    importKind: 'value',
                 });
                 if (node.importClause) {
+                    if (node.importClause.isTypeOnly) {
+                        result.importKind = 'type';
+                    }
                     if (node.importClause.name) {
                         result.specifiers.push(this.convertChild(node.importClause));
                     }
@@ -1209,20 +1267,23 @@
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.ImportSpecifier,
                     local: this.convertChild(node.name),
-                    imported: this.convertChild((_f = node.propertyName, (_f !== null && _f !== void 0 ? _f : node.name))),
+                    imported: this.convertChild((_f = node.propertyName) !== null && _f !== void 0 ? _f : node.name),
                 });
-            case SyntaxKind.ImportClause:
+            case SyntaxKind.ImportClause: {
+                const local = this.convertChild(node.name);
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.ImportDefaultSpecifier,
-                    local: this.convertChild(node.name),
-                    range: [node.getStart(this.ast), node.name.end],
+                    local,
+                    range: local.range,
                 });
+            }
             case SyntaxKind.ExportDeclaration:
-                if (node.exportClause) {
+                if (((_g = node.exportClause) === null || _g === void 0 ? void 0 : _g.kind) === SyntaxKind.NamedExports) {
                     return this.createNode(node, {
                         type: ts_estree_1.AST_NODE_TYPES.ExportNamedDeclaration,
                         source: this.convertChild(node.moduleSpecifier),
                         specifiers: node.exportClause.elements.map(el => this.convertChild(el)),
+                        exportKind: node.isTypeOnly ? 'type' : 'value',
                         declaration: null,
                     });
                 }
@@ -1230,12 +1291,22 @@
                     return this.createNode(node, {
                         type: ts_estree_1.AST_NODE_TYPES.ExportAllDeclaration,
                         source: this.convertChild(node.moduleSpecifier),
+                        exportKind: node.isTypeOnly ? 'type' : 'value',
+                        exported: 
+                        // note - for compat with 3.7.x, where node.exportClause is always undefined and
+                        //        SyntaxKind.NamespaceExport does not exist yet (i.e. is undefined), this
+                        //        cannot be shortened to an optional chain, or else you end up with
+                        //        undefined === undefined, and the true path will hard error at runtime
+                        node.exportClause &&
+                            node.exportClause.kind === SyntaxKind.NamespaceExport
+                            ? this.convertChild(node.exportClause.name)
+                            : null,
                     });
                 }
             case SyntaxKind.ExportSpecifier:
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.ExportSpecifier,
-                    local: this.convertChild((_g = node.propertyName, (_g !== null && _g !== void 0 ? _g : node.name))),
+                    local: this.convertChild((_h = node.propertyName) !== null && _h !== void 0 ? _h : node.name),
                     exported: this.convertChild(node.name),
                 });
             case SyntaxKind.ExportAssignment:
@@ -1249,6 +1320,7 @@
                     return this.createNode(node, {
                         type: ts_estree_1.AST_NODE_TYPES.ExportDefaultDeclaration,
                         declaration: this.convertChild(node.expression),
+                        exportKind: 'value',
                     });
                 }
             // Unary Operations
@@ -1343,90 +1415,50 @@
                 const object = this.convertChild(node.expression);
                 const property = this.convertChild(node.name);
                 const computed = false;
-                const isLocallyOptional = node.questionDotToken !== undefined;
-                // the optional expression should propagate up the member expression tree
-                const isChildOptional = (object.type === ts_estree_1.AST_NODE_TYPES.OptionalMemberExpression ||
-                    object.type === ts_estree_1.AST_NODE_TYPES.OptionalCallExpression) &&
-                    // (x?.y).z is semantically different, and as such .z is no longer optional
-                    node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression;
-                if (isLocallyOptional || isChildOptional) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.OptionalMemberExpression,
-                        object,
-                        property,
-                        computed,
-                        optional: isLocallyOptional,
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
-                        object,
-                        property,
-                        computed,
-                        optional: false,
-                    });
-                }
+                const result = this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
+                    object,
+                    property,
+                    computed,
+                    optional: node.questionDotToken !== undefined,
+                });
+                return this.convertChainExpression(result, node);
             }
             case SyntaxKind.ElementAccessExpression: {
                 const object = this.convertChild(node.expression);
                 const property = this.convertChild(node.argumentExpression);
                 const computed = true;
-                const isLocallyOptional = node.questionDotToken !== undefined;
-                // the optional expression should propagate up the member expression tree
-                const isChildOptional = (object.type === ts_estree_1.AST_NODE_TYPES.OptionalMemberExpression ||
-                    object.type === ts_estree_1.AST_NODE_TYPES.OptionalCallExpression) &&
-                    // (x?.y).z is semantically different, and as such .z is no longer optional
-                    node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression;
-                if (isLocallyOptional || isChildOptional) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.OptionalMemberExpression,
-                        object,
-                        property,
-                        computed,
-                        optional: isLocallyOptional,
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
-                        object,
-                        property,
-                        computed,
-                        optional: false,
-                    });
-                }
+                const result = this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
+                    object,
+                    property,
+                    computed,
+                    optional: node.questionDotToken !== undefined,
+                });
+                return this.convertChainExpression(result, node);
             }
             case SyntaxKind.CallExpression: {
+                if (node.expression.kind === SyntaxKind.ImportKeyword) {
+                    if (node.arguments.length !== 1) {
+                        throw node_utils_1.createError(this.ast, node.arguments.pos, 'Dynamic import must have one specifier as an argument.');
+                    }
+                    return this.createNode(node, {
+                        type: ts_estree_1.AST_NODE_TYPES.ImportExpression,
+                        source: this.convertChild(node.arguments[0]),
+                    });
+                }
                 const callee = this.convertChild(node.expression);
                 const args = node.arguments.map(el => this.convertChild(el));
-                let result;
-                const isLocallyOptional = node.questionDotToken !== undefined;
-                // the optional expression should propagate up the member expression tree
-                const isChildOptional = (callee.type === ts_estree_1.AST_NODE_TYPES.OptionalMemberExpression ||
-                    callee.type === ts_estree_1.AST_NODE_TYPES.OptionalCallExpression) &&
-                    // (x?.y).z() is semantically different, and as such .z() is no longer optional
-                    node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression;
-                if (isLocallyOptional || isChildOptional) {
-                    result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.OptionalCallExpression,
-                        callee,
-                        arguments: args,
-                        optional: isLocallyOptional,
-                    });
-                }
-                else {
-                    result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.CallExpression,
-                        callee,
-                        arguments: args,
-                        optional: false,
-                    });
-                }
+                const result = this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.CallExpression,
+                    callee,
+                    arguments: args,
+                    optional: node.questionDotToken !== undefined,
+                });
                 if (node.typeArguments) {
                     result.typeParameters = this.convertTypeArgumentsToTypeParameters(node.typeArguments, node);
                 }
-                return result;
+                return this.convertChainExpression(result, node);
             }
             case SyntaxKind.NewExpression: {
                 // NOTE - NewExpression cannot have an optional chain in it
@@ -1491,14 +1523,22 @@
                 });
             }
             case SyntaxKind.BigIntLiteral: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.BigIntLiteral,
-                    raw: '',
-                    value: '',
+                const range = node_utils_1.getRange(node, this.ast);
+                const rawValue = this.ast.text.slice(range[0], range[1]);
+                const bigint = rawValue
+                    // remove suffix `n`
+                    .slice(0, -1)
+                    // `BigInt` doesn't accept numeric separator
+                    // and `bigint` property should not include numeric separator
+                    .replace(/_/g, '');
+                const value = typeof BigInt !== 'undefined' ? BigInt(bigint) : null;
+                return this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.Literal,
+                    raw: rawValue,
+                    value: value,
+                    bigint: value === null ? bigint : String(value),
+                    range,
                 });
-                result.raw = this.ast.text.slice(result.range[0], result.range[1]);
-                result.value = result.raw.slice(0, -1); // remove suffix `n`
-                return result;
             }
             case SyntaxKind.RegularExpressionLiteral: {
                 const pattern = node.text.slice(1, node.text.lastIndexOf('/'));
@@ -1533,23 +1573,18 @@
                     raw: 'false',
                 });
             case SyntaxKind.NullKeyword: {
-                if (this.inTypeMode) {
+                if (!version_check_1.typescriptVersionIsAtLeast['4.0'] && this.inTypeMode) {
+                    // 4.0 started nesting null types inside a LiteralType node, but we still need to support pre-4.0
                     return this.createNode(node, {
                         type: ts_estree_1.AST_NODE_TYPES.TSNullKeyword,
                     });
                 }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.Literal,
-                        value: null,
-                        raw: 'null',
-                    });
-                }
-            }
-            case SyntaxKind.ImportKeyword:
                 return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Import,
+                    type: ts_estree_1.AST_NODE_TYPES.Literal,
+                    value: null,
+                    raw: 'null',
                 });
+            }
             case SyntaxKind.EmptyStatement:
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.EmptyStatement,
@@ -1724,10 +1759,11 @@
                 });
             }
             case SyntaxKind.NonNullExpression: {
-                return this.createNode(node, {
+                const nnExpr = this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.TSNonNullExpression,
                     expression: this.convertChild(node.expression),
                 });
+                return this.convertChainExpression(nnExpr, node);
             }
             case SyntaxKind.TypeLiteral: {
                 return this.createNode(node, {
@@ -1926,7 +1962,7 @@
                 return result;
             }
             case SyntaxKind.InterfaceDeclaration: {
-                const interfaceHeritageClauses = (_h = node.heritageClauses, (_h !== null && _h !== void 0 ? _h : []));
+                const interfaceHeritageClauses = (_j = node.heritageClauses) !== null && _j !== void 0 ? _j : [];
                 const result = this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.TSInterfaceDeclaration,
                     body: this.createNode(node, {
@@ -1961,14 +1997,6 @@
                         result.implements = interfaceImplements;
                     }
                 }
-                /**
-                 * Semantically, decorators are not allowed on interface declarations,
-                 * but the TypeScript compiler will parse them and produce a valid AST,
-                 * so we handle them here too.
-                 */
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
                 if (node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node)) {
                     result.abstract = true;
                 }
@@ -2014,14 +2042,6 @@
                 });
                 // apply modifiers first...
                 this.applyModifiersToResult(result, node.modifiers);
-                /**
-                 * Semantically, decorators are not allowed on enum declarations,
-                 * but the TypeScript compiler will parse them and produce a valid AST,
-                 * so we handle them here too.
-                 */
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
                 // ...then check for exports
                 return this.fixExports(node, result);
             }
@@ -2055,24 +2075,12 @@
                 return this.fixExports(node, result);
             }
             // TypeScript specific types
-            case SyntaxKind.OptionalType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSOptionalType,
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
             case SyntaxKind.ParenthesizedType: {
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.TSParenthesizedType,
                     typeAnnotation: this.convertType(node.type),
                 });
             }
-            case SyntaxKind.TupleType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTupleType,
-                    elementTypes: node.elementTypes.map(el => this.convertType(el)),
-                });
-            }
             case SyntaxKind.UnionType: {
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.TSUnionType,
@@ -2085,12 +2093,6 @@
                     types: node.types.map(el => this.convertType(el)),
                 });
             }
-            case SyntaxKind.RestType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSRestType,
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
             case SyntaxKind.AsExpression: {
                 return this.createNode(node, {
                     type: ts_estree_1.AST_NODE_TYPES.TSAsExpression,
@@ -2105,10 +2107,20 @@
                 });
             }
             case SyntaxKind.LiteralType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSLiteralType,
-                    literal: this.convertType(node.literal),
-                });
+                if (version_check_1.typescriptVersionIsAtLeast['4.0'] &&
+                    node.literal.kind === SyntaxKind.NullKeyword) {
+                    // 4.0 started nesting null types inside a LiteralType node
+                    // but our AST is designed around the old way of null being a keyword
+                    return this.createNode(node.literal, {
+                        type: ts_estree_1.AST_NODE_TYPES.TSNullKeyword,
+                    });
+                }
+                else {
+                    return this.createNode(node, {
+                        type: ts_estree_1.AST_NODE_TYPES.TSLiteralType,
+                        literal: this.convertType(node.literal),
+                    });
+                }
             }
             case SyntaxKind.TypeAssertionExpression: {
                 return this.createNode(node, {
@@ -2142,6 +2154,49 @@
                     type: ts_estree_1.AST_NODE_TYPES.TSAbstractKeyword,
                 });
             }
+            // Tuple
+            case SyntaxKind.TupleType: {
+                // In TS 4.0, the `elementTypes` property was changed to `elements`.
+                // To support both at compile time, we cast to access the newer version
+                // if the former does not exist.
+                const elementTypes = 'elementTypes' in node
+                    ? node.elementTypes.map((el) => this.convertType(el))
+                    : node.elements.map((el) => this.convertType(el));
+                return this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.TSTupleType,
+                    elementTypes,
+                });
+            }
+            case SyntaxKind.NamedTupleMember: {
+                const member = this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.TSNamedTupleMember,
+                    elementType: this.convertType(node.type, node),
+                    label: this.convertChild(node.name, node),
+                    optional: node.questionToken != null,
+                });
+                if (node.dotDotDotToken) {
+                    // adjust the start to account for the "..."
+                    member.range[0] = member.label.range[0];
+                    member.loc.start = member.label.loc.start;
+                    return this.createNode(node, {
+                        type: ts_estree_1.AST_NODE_TYPES.TSRestType,
+                        typeAnnotation: member,
+                    });
+                }
+                return member;
+            }
+            case SyntaxKind.OptionalType: {
+                return this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.TSOptionalType,
+                    typeAnnotation: this.convertType(node.type),
+                });
+            }
+            case SyntaxKind.RestType: {
+                return this.createNode(node, {
+                    type: ts_estree_1.AST_NODE_TYPES.TSRestType,
+                    typeAnnotation: this.convertType(node.type),
+                });
+            }
             default:
                 return this.deeplyCopy(node);
         }
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map
index ba6630d..da4e64d 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map
@@ -1 +1 @@
-{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts
index 562517c..85764ac 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts
@@ -7,6 +7,7 @@
 }
 interface WatchCompilerHostOfConfigFile<T extends ts.BuilderProgram> extends ts.WatchCompilerHostOfConfigFile<T> {
     onCachedDirectoryStructureHostCreate(host: CachedDirectoryStructureHost): void;
+    extraFileExtensions?: readonly ts.FileExtensionInfo[];
 }
 export { WatchCompilerHostOfConfigFile };
 //# sourceMappingURL=WatchCompilerHostOfConfigFile.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map
index 6bb6a9a..408e42e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"WatchCompilerHostOfConfigFile.d.ts","sourceRoot":"","sources":["../../src/create-program/WatchCompilerHostOfConfigFile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,UAAU,sBAAsB;IAC9B,aAAa,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,4BAA6B,SAAQ,sBAAsB;IACnE,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,6BAA6B,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,CACjE,SAAQ,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC3C,oCAAoC,CAClC,IAAI,EAAE,4BAA4B,GACjC,IAAI,CAAC;CACT;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"WatchCompilerHostOfConfigFile.d.ts","sourceRoot":"","sources":["../../src/create-program/WatchCompilerHostOfConfigFile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,UAAU,sBAAsB;IAC9B,aAAa,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,4BAA6B,SAAQ,sBAAsB;IACnE,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,6BAA6B,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,CACjE,SAAQ,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC3C,oCAAoC,CAClC,IAAI,EAAE,4BAA4B,GACjC,IAAI,CAAC;IACR,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,CAAC;CACvD;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js
index c3fd55f..9f60bc0 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js
@@ -1,15 +1,28 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.createDefaultProgram = void 0;
 const debug_1 = __importDefault(require("debug"));
 const path_1 = __importDefault(require("path"));
 const ts = __importStar(require("typescript"));
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map
index 820b18a..7ae63e4 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map
@@ -1 +1 @@
-{"version":3,"file":"createDefaultProgram.js","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAY;IAEZ,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,wBAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,WAAW,GAAG,EAAE,CAAC,gCAAgC,CACrD,YAAY,EACZ,8CAAqC,CAAC,KAAK,CAAC,kCACvC,EAAE,CAAC,GAAG,KAAE,mCAAmC,EAAE,GAAG,EAAE,GAAE,CAAC,IAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CACxC,WAAW,CAAC,OAAO;IACnB,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC;IAC1C,YAAY,CAAC,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE,CAC/D,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChB,WAAW,CAAC,OAAO,EACnB,YAAY,CACb,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAEQ,oDAAoB"}
\ No newline at end of file
+{"version":3,"file":"createDefaultProgram.js","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAY;IAEZ,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,wBAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,WAAW,GAAG,EAAE,CAAC,gCAAgC,CACrD,YAAY,EACZ,8CAAqC,CAAC,KAAK,CAAC,kCACvC,EAAE,CAAC,GAAG,KAAE,mCAAmC,EAAE,GAAG,EAAE,GAAE,CAAC,IAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CACxC,WAAW,CAAC,OAAO;IACnB,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC;IAC1C,YAAY,CAAC,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE,CAC/D,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChB,WAAW,CAAC,OAAO,EACnB,YAAY,CACb,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAEQ,oDAAoB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js
index e0f9447..88d4ba3 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js
@@ -1,15 +1,28 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.createIsolatedProgram = void 0;
 const debug_1 = __importDefault(require("debug"));
 const ts = __importStar(require("typescript"));
 const shared_1 = require("./shared");
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map
index e2ca441..75a6145 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map
@@ -1 +1 @@
-{"version":3,"file":"createIsolatedProgram.js","sourceRoot":"","sources":["../../src/create-program/createIsolatedProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,2DAA2D,CAAC,CAAC;AAE/E;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAY;IACvD,GAAG,CACD,6CAA6C,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,MAAM,YAAY,GAAoB;QACpC,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oBAAoB;YAClB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,mBAAmB;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,cAAc;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,qBAAqB;YACnB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,6BAA6B;QAC7B,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa,CAAC,QAAgB;YAC5B,OAAO,EAAE,CAAC,gBAAgB,CACxB,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;YACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC/B,CAAC;QACJ,CAAC;QACD,QAAQ;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,yBAAyB;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS;YACP,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAEd,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAC7C,8CAAqC,CAAC,KAAK,CAAC,GAEjD,YAAY,CACb,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;KACH;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAEQ,sDAAqB"}
\ No newline at end of file
+{"version":3,"file":"createIsolatedProgram.js","sourceRoot":"","sources":["../../src/create-program/createIsolatedProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,2DAA2D,CAAC,CAAC;AAE/E;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAY;IACvD,GAAG,CACD,6CAA6C,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,MAAM,YAAY,GAAoB;QACpC,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oBAAoB;YAClB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,mBAAmB;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,cAAc;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,qBAAqB;YACnB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,6BAA6B;QAC7B,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa,CAAC,QAAgB;YAC5B,OAAO,EAAE,CAAC,gBAAgB,CACxB,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;YACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC/B,CAAC;QACJ,CAAC;QACD,QAAQ;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,yBAAyB;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS;YACP,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAEd,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAC7C,8CAAqC,CAAC,KAAK,CAAC,GAEjD,YAAY,CACb,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;KACH;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAEQ,sDAAqB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map
index 254a67f..1838090 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"createProjectProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAazC;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CA0E3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"createProjectProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAazC;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CAyE3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js
index 23cd187..917330b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js
@@ -3,6 +3,7 @@
     return (mod && mod.__esModule) ? mod : { "default": mod };
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.createProjectProgram = void 0;
 const debug_1 = __importDefault(require("debug"));
 const path_1 = __importDefault(require("path"));
 const createWatchProgram_1 = require("./createWatchProgram");
@@ -24,11 +25,10 @@
 function createProjectProgram(code, createDefaultProgram, extra) {
     log('Creating project program for: %s', extra.filePath);
     const astAndProgram = node_utils_1.firstDefined(createWatchProgram_1.getProgramsForProjects(code, extra.filePath, extra), currentProgram => {
-        var _a;
         const ast = currentProgram.getSourceFile(extra.filePath);
         // working around https://github.com/typescript-eslint/typescript-eslint/issues/1573
         const expectedExt = getExtension(extra.filePath);
-        const returnedExt = getExtension((_a = ast) === null || _a === void 0 ? void 0 : _a.fileName);
+        const returnedExt = getExtension(ast === null || ast === void 0 ? void 0 : ast.fileName);
         if (expectedExt !== returnedExt) {
             return;
         }
@@ -66,7 +66,6 @@
         }
         if (!hasMatchedAnError) {
             errorLines.push('The file must be included in at least one of the projects provided.');
-            hasMatchedAnError = true;
         }
         throw new Error(errorLines.join('\n'));
     }
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map
index e930b49..a39bb00 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map
@@ -1 +1 @@
-{"version":3,"file":"createProjectProgram.js","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,6DAA8D;AAC9D,8CAA6C;AAI7C,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAErE,SAAS,YAAY,CAAC,QAA4B;IAChD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,oBAA6B,EAC7B,KAAY;IAEZ,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,yBAAY,CAChC,2CAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EACnD,cAAc,CAAC,EAAE;;QACf,MAAM,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEzD,oFAAoF;QACpF,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,YAAY,OAAC,GAAG,0CAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,WAAW,KAAK,WAAW,EAAE;YAC/B,OAAO;SACR;QAED,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACjD,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,aAAa,IAAI,CAAC,oBAAoB,EAAE;QAC3C,wFAAwF;QACxF,MAAM,UAAU,GAAG;YACjB,qEAAqE;YACrE,gDAAgD,cAAI,CAAC,QAAQ,CAC3D,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,EACtC,KAAK,CAAC,QAAQ,CACf,GAAG;SACL,CAAC;QACF,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAE5D,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACnC,UAAU,CAAC,IAAI,CACb,+BAA+B,cAAc,qEAAqE,cAAc,IAAI,CACrI,CAAC;aACH;YACD,IAAI,6BAA6B,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1D,UAAU,CAAC,IAAI,CACb,6CAA6C,cAAc,sGAAsG,CAClK,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1D,MAAM,cAAc,GAAG,+BAA+B,aAAa,mBAAmB,CAAC;YACvF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;oBAChD,UAAU,CAAC,IAAI,CACb,GAAG,cAAc,4EAA4E,CAC9F,CAAC;oBACF,iBAAiB,GAAG,IAAI,CAAC;iBAC1B;aACF;iBAAM;gBACL,UAAU,CAAC,IAAI,CACb,GAAG,cAAc,sEAAsE,CACxF,CAAC;gBACF,iBAAiB,GAAG,IAAI,CAAC;aAC1B;SACF;QAED,IAAI,CAAC,iBAAiB,EAAE;YACtB,UAAU,CAAC,IAAI,CACb,qEAAqE,CACtE,CAAC;YACF,iBAAiB,GAAG,IAAI,CAAC;SAC1B;QAED,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,oDAAoB"}
\ No newline at end of file
+{"version":3,"file":"createProjectProgram.js","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js
index 38ef750..910a1fa 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js
@@ -1,15 +1,28 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.createSourceFile = void 0;
 const debug_1 = __importDefault(require("debug"));
 const ts = __importStar(require("typescript"));
 const shared_1 = require("./shared");
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map
index 05dc944..693f43c 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map
@@ -1 +1 @@
-{"version":3,"file":"createSourceFile.js","sourceRoot":"","sources":["../../src/create-program/createSourceFile.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAAyC;AAEzC,MAAM,GAAG,GAAG,eAAK,CAAC,sDAAsD,CAAC,CAAC;AAE1E,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAY;IAClD,GAAG,CACD,yDAAyD,EACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,OAAO,EAAE,CAAC,gBAAgB,CACxB,KAAK,CAAC,QAAQ,EACd,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;IACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC;AAEQ,4CAAgB"}
\ No newline at end of file
+{"version":3,"file":"createSourceFile.js","sourceRoot":"","sources":["../../src/create-program/createSourceFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAAyC;AAEzC,MAAM,GAAG,GAAG,eAAK,CAAC,sDAAsD,CAAC,CAAC;AAE1E,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAY;IAClD,GAAG,CACD,yDAAyD,EACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,OAAO,EAAE,CAAC,gBAAgB,CACxB,KAAK,CAAC,QAAQ,EACd,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;IACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC;AAEQ,4CAAgB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts
index 5a0b783..af73e0c 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts
@@ -14,6 +14,6 @@
  * @returns The programs corresponding to the supplied tsconfig paths
  */
 declare function getProgramsForProjects(code: string, filePathIn: string, extra: Extra): ts.Program[];
-declare function createWatchProgram(tsconfigPath: string, extra: Extra): ts.WatchOfConfigFile<ts.SemanticDiagnosticsBuilderProgram>;
+declare function createWatchProgram(tsconfigPath: string, extra: Extra): ts.WatchOfConfigFile<ts.BuilderProgram>;
 export { clearCaches, createWatchProgram, getProgramsForProjects };
 //# sourceMappingURL=createWatchProgram.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map
index 4f6b465..5e6bce8 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA6C1C;;;GAGG;AACH,iBAAS,WAAW,IAAI,IAAI,CAO3B;AA2DD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,OAAO,EAAE,CAgGd;AAED,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAmG5D;AAoJD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA6C1C;;;GAGG;AACH,iBAAS,WAAW,IAAI,IAAI,CAO3B;AA2DD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,OAAO,EAAE,CAgGd;AAMD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,CAAC,CAwHzC;AAoJD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js
index ba5c505..fe03663 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js
@@ -1,17 +1,31 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getProgramsForProjects = exports.createWatchProgram = exports.clearCaches = void 0;
 const debug_1 = __importDefault(require("debug"));
 const fs_1 = __importDefault(require("fs"));
+const semver_1 = __importDefault(require("semver"));
 const ts = __importStar(require("typescript"));
 const shared_1 = require("./shared");
 const log = debug_1.default('typescript-eslint:typescript-estree:createWatchProgram');
@@ -86,8 +100,9 @@
  * @returns hashed result
  */
 function createHash(content) {
+    var _a;
     // No ts.sys in browser environments.
-    if (ts.sys && ts.sys.createHash) {
+    if ((_a = ts.sys) === null || _a === void 0 ? void 0 : _a.createHash) {
         return ts.sys.createHash(content);
     }
     return content;
@@ -133,7 +148,7 @@
         }
         if (fileList.has(filePath)) {
             log('Found existing program for file. %s', filePath);
-            updatedProgram = (updatedProgram !== null && updatedProgram !== void 0 ? updatedProgram : existingWatch.getProgram().getProgram());
+            updatedProgram = updatedProgram !== null && updatedProgram !== void 0 ? updatedProgram : existingWatch.getProgram().getProgram();
             // sets parent pointers in source files
             updatedProgram.getTypeChecker();
             return [updatedProgram];
@@ -169,10 +184,13 @@
     return results;
 }
 exports.getProgramsForProjects = getProgramsForProjects;
+const isRunningNoTimeoutFix = semver_1.default.satisfies(ts.version, '>=3.9.0-beta', {
+    includePrerelease: true,
+});
 function createWatchProgram(tsconfigPath, extra) {
     log('Creating watch program for %s.', tsconfigPath);
     // create compiler host
-    const watchCompilerHost = ts.createWatchCompilerHost(tsconfigPath, shared_1.createDefaultCompilerOptionsFromExtra(extra), ts.sys, ts.createSemanticDiagnosticsBuilderProgram, diagnosticReporter, 
+    const watchCompilerHost = ts.createWatchCompilerHost(tsconfigPath, shared_1.createDefaultCompilerOptionsFromExtra(extra), ts.sys, ts.createAbstractBuilder, diagnosticReporter, 
     /*reportWatchStatus*/ () => { });
     // ensure readFile reads the code being linted instead of the copy on disk
     const oldReadFile = watchCompilerHost.readFile;
@@ -181,7 +199,7 @@
         const fileContent = filePath === currentLintOperationState.filePath
             ? currentLintOperationState.code
             : oldReadFile(filePath, encoding);
-        if (fileContent) {
+        if (fileContent !== undefined) {
             parsedFilesSeenHash.set(filePath, createHash(fileContent));
         }
         return fileContent;
@@ -217,23 +235,44 @@
         host.readDirectory = (path, extensions, exclude, include, depth) => oldReadDirectory(path, !extensions ? undefined : extensions.concat(extra.extraFileExtensions), exclude, include, depth);
         oldOnDirectoryStructureHostCreate(host);
     };
-    /*
-     * The watch change callbacks TS provides us all have a 250ms delay before firing
-     * https://github.com/microsoft/TypeScript/blob/b845800bdfcc81c8c72e2ac6fdc2c1df0cdab6f9/src/compiler/watch.ts#L1013
-     *
-     * We live in a synchronous world, so we can't wait for that.
-     * This is a bit of a hack, but it lets us immediately force updates when we detect a tsconfig or directory change
-     */
-    const oldSetTimeout = watchCompilerHost.setTimeout;
-    watchCompilerHost.setTimeout = (cb, ms, ...args) => {
-        var _a;
-        if (ms === 250) {
-            cb();
-            return null;
-        }
-        return (_a = oldSetTimeout) === null || _a === void 0 ? void 0 : _a(cb, ms, ...args);
-    };
-    return ts.createWatchProgram(watchCompilerHost);
+    // This works only on 3.9
+    watchCompilerHost.extraFileExtensions = extra.extraFileExtensions.map(extension => ({
+        extension,
+        isMixedContent: true,
+        scriptKind: ts.ScriptKind.Deferred,
+    }));
+    watchCompilerHost.trace = log;
+    // Since we don't want to asynchronously update program we want to disable timeout methods
+    // So any changes in the program will be delayed and updated when getProgram is called on watch
+    let callback;
+    if (isRunningNoTimeoutFix) {
+        watchCompilerHost.setTimeout = undefined;
+        watchCompilerHost.clearTimeout = undefined;
+    }
+    else {
+        log('Running without timeout fix');
+        // But because of https://github.com/microsoft/TypeScript/pull/37308 we cannot just set it to undefined
+        // instead save it and call before getProgram is called
+        watchCompilerHost.setTimeout = (cb, _ms, ...args) => {
+            callback = cb.bind(/*this*/ undefined, ...args);
+            return callback;
+        };
+        watchCompilerHost.clearTimeout = () => {
+            callback = undefined;
+        };
+    }
+    const watch = ts.createWatchProgram(watchCompilerHost);
+    if (!isRunningNoTimeoutFix) {
+        const originalGetProgram = watch.getProgram;
+        watch.getProgram = () => {
+            if (callback) {
+                callback();
+            }
+            callback = undefined;
+            return originalGetProgram.call(watch);
+        };
+    }
+    return watch;
 }
 exports.createWatchProgram = createWatchProgram;
 function hasTSConfigChanged(tsconfigPath) {
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map
index 67c1e32..326e15a 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map
@@ -1 +1 @@
-{"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts
index 51c52d4..ea10a48 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts
@@ -2,7 +2,7 @@
 import { Extra } from '../parser-options';
 interface ASTAndProgram {
     ast: ts.SourceFile;
-    program: ts.Program | undefined;
+    program: ts.Program;
 }
 declare function createDefaultCompilerOptionsFromExtra(extra: Extra): ts.CompilerOptions;
 declare type CanonicalPath = string & {
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map
index f4eee56..3e22bc4 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,UAAU,aAAa;IACrB,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC;CACjC;AAeD,iBAAS,qCAAqC,CAC5C,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,eAAe,CASpB;AAGD,aAAK,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AASnD,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM7D;AAED,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI3D;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAE1E;AAED,iBAAS,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAuB,GAChC,EAAE,CAAC,UAAU,CAwBf;AAED,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,UAAU,aAAa;IACrB,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;CACrB;AAkBD,iBAAS,qCAAqC,CAC5C,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,eAAe,CASpB;AAGD,aAAK,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AASnD,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM7D;AAED,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI3D;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAE1E;AAED,iBAAS,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAuB,GAChC,EAAE,CAAC,UAAU,CAwBf;AAED,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js
index f3b388b..5e8c198 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js
@@ -1,15 +1,28 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getTsconfigPath = exports.getScriptKind = exports.getCanonicalFileName = exports.ensureAbsolutePath = exports.createDefaultCompilerOptionsFromExtra = exports.canonicalDirname = void 0;
 const path_1 = __importDefault(require("path"));
 const ts = __importStar(require("typescript"));
 /**
@@ -21,6 +34,9 @@
     checkJs: true,
     noEmit: true,
     // extendedDiagnostics: true,
+    /**
+     * Flags required to make no-unused-vars work
+     */
     noUnusedLocals: true,
     noUnusedParameters: true,
 };
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map
index 6a6ff25..30f05b2 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map
@@ -1 +1 @@
-{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.js b/node_modules/@typescript-eslint/typescript-estree/dist/index.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.js
rename to node_modules/@typescript-eslint/typescript-estree/dist/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map
rename to node_modules/@typescript-eslint/typescript-estree/dist/index.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts
index 887e074..e9b5d41 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts
@@ -1,71 +1,74 @@
 import * as ts from 'typescript';
 import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from './ts-estree';
 declare const SyntaxKind: typeof ts.SyntaxKind;
-declare const TOKEN_TO_TEXT: {
-    readonly [SyntaxKind.OpenBraceToken]: "{";
-    readonly [SyntaxKind.CloseBraceToken]: "}";
-    readonly [SyntaxKind.OpenParenToken]: "(";
-    readonly [SyntaxKind.CloseParenToken]: ")";
-    readonly [SyntaxKind.OpenBracketToken]: "[";
-    readonly [SyntaxKind.CloseBracketToken]: "]";
-    readonly [SyntaxKind.DotToken]: ".";
-    readonly [SyntaxKind.DotDotDotToken]: "...";
-    readonly [SyntaxKind.SemicolonToken]: ";";
-    readonly [SyntaxKind.CommaToken]: ",";
-    readonly [SyntaxKind.LessThanToken]: "<";
-    readonly [SyntaxKind.GreaterThanToken]: ">";
-    readonly [SyntaxKind.LessThanEqualsToken]: "<=";
-    readonly [SyntaxKind.GreaterThanEqualsToken]: ">=";
-    readonly [SyntaxKind.EqualsEqualsToken]: "==";
-    readonly [SyntaxKind.ExclamationEqualsToken]: "!=";
-    readonly [SyntaxKind.EqualsEqualsEqualsToken]: "===";
-    readonly [SyntaxKind.InstanceOfKeyword]: "instanceof";
-    readonly [SyntaxKind.ExclamationEqualsEqualsToken]: "!==";
-    readonly [SyntaxKind.EqualsGreaterThanToken]: "=>";
-    readonly [SyntaxKind.PlusToken]: "+";
-    readonly [SyntaxKind.MinusToken]: "-";
-    readonly [SyntaxKind.AsteriskToken]: "*";
-    readonly [SyntaxKind.AsteriskAsteriskToken]: "**";
-    readonly [SyntaxKind.SlashToken]: "/";
-    readonly [SyntaxKind.PercentToken]: "%";
-    readonly [SyntaxKind.PlusPlusToken]: "++";
-    readonly [SyntaxKind.MinusMinusToken]: "--";
-    readonly [SyntaxKind.LessThanLessThanToken]: "<<";
-    readonly [SyntaxKind.LessThanSlashToken]: "</";
-    readonly [SyntaxKind.GreaterThanGreaterThanToken]: ">>";
-    readonly [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: ">>>";
-    readonly [SyntaxKind.AmpersandToken]: "&";
-    readonly [SyntaxKind.BarToken]: "|";
-    readonly [SyntaxKind.CaretToken]: "^";
-    readonly [SyntaxKind.ExclamationToken]: "!";
-    readonly [SyntaxKind.TildeToken]: "~";
-    readonly [SyntaxKind.AmpersandAmpersandToken]: "&&";
-    readonly [SyntaxKind.BarBarToken]: "||";
-    readonly [SyntaxKind.QuestionToken]: "?";
-    readonly [SyntaxKind.ColonToken]: ":";
-    readonly [SyntaxKind.EqualsToken]: "=";
-    readonly [SyntaxKind.PlusEqualsToken]: "+=";
-    readonly [SyntaxKind.MinusEqualsToken]: "-=";
-    readonly [SyntaxKind.AsteriskEqualsToken]: "*=";
-    readonly [SyntaxKind.AsteriskAsteriskEqualsToken]: "**=";
-    readonly [SyntaxKind.SlashEqualsToken]: "/=";
-    readonly [SyntaxKind.PercentEqualsToken]: "%=";
-    readonly [SyntaxKind.LessThanLessThanEqualsToken]: "<<=";
-    readonly [SyntaxKind.GreaterThanGreaterThanEqualsToken]: ">>=";
-    readonly [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: ">>>=";
-    readonly [SyntaxKind.AmpersandEqualsToken]: "&=";
-    readonly [SyntaxKind.BarEqualsToken]: "|=";
-    readonly [SyntaxKind.CaretEqualsToken]: "^=";
-    readonly [SyntaxKind.AtToken]: "@";
-    readonly [SyntaxKind.InKeyword]: "in";
-    readonly [SyntaxKind.UniqueKeyword]: "unique";
-    readonly [SyntaxKind.KeyOfKeyword]: "keyof";
-    readonly [SyntaxKind.NewKeyword]: "new";
-    readonly [SyntaxKind.ImportKeyword]: "import";
-    readonly [SyntaxKind.ReadonlyKeyword]: "readonly";
-    readonly [SyntaxKind.QuestionQuestionToken]: "??";
-    readonly [SyntaxKind.QuestionDotToken]: "?.";
-};
+interface TokenToText {
+    [SyntaxKind.OpenBraceToken]: '{';
+    [SyntaxKind.CloseBraceToken]: '}';
+    [SyntaxKind.OpenParenToken]: '(';
+    [SyntaxKind.CloseParenToken]: ')';
+    [SyntaxKind.OpenBracketToken]: '[';
+    [SyntaxKind.CloseBracketToken]: ']';
+    [SyntaxKind.DotToken]: '.';
+    [SyntaxKind.DotDotDotToken]: '...';
+    [SyntaxKind.SemicolonToken]: ';';
+    [SyntaxKind.CommaToken]: ',';
+    [SyntaxKind.LessThanToken]: '<';
+    [SyntaxKind.GreaterThanToken]: '>';
+    [SyntaxKind.LessThanEqualsToken]: '<=';
+    [SyntaxKind.GreaterThanEqualsToken]: '>=';
+    [SyntaxKind.EqualsEqualsToken]: '==';
+    [SyntaxKind.ExclamationEqualsToken]: '!=';
+    [SyntaxKind.EqualsEqualsEqualsToken]: '===';
+    [SyntaxKind.InstanceOfKeyword]: 'instanceof';
+    [SyntaxKind.ExclamationEqualsEqualsToken]: '!==';
+    [SyntaxKind.EqualsGreaterThanToken]: '=>';
+    [SyntaxKind.PlusToken]: '+';
+    [SyntaxKind.MinusToken]: '-';
+    [SyntaxKind.AsteriskToken]: '*';
+    [SyntaxKind.AsteriskAsteriskToken]: '**';
+    [SyntaxKind.SlashToken]: '/';
+    [SyntaxKind.PercentToken]: '%';
+    [SyntaxKind.PlusPlusToken]: '++';
+    [SyntaxKind.MinusMinusToken]: '--';
+    [SyntaxKind.LessThanLessThanToken]: '<<';
+    [SyntaxKind.LessThanSlashToken]: '</';
+    [SyntaxKind.GreaterThanGreaterThanToken]: '>>';
+    [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: '>>>';
+    [SyntaxKind.AmpersandToken]: '&';
+    [SyntaxKind.BarToken]: '|';
+    [SyntaxKind.CaretToken]: '^';
+    [SyntaxKind.ExclamationToken]: '!';
+    [SyntaxKind.TildeToken]: '~';
+    [SyntaxKind.AmpersandAmpersandToken]: '&&';
+    [SyntaxKind.BarBarToken]: '||';
+    [SyntaxKind.QuestionToken]: '?';
+    [SyntaxKind.ColonToken]: ':';
+    [SyntaxKind.EqualsToken]: '=';
+    [SyntaxKind.PlusEqualsToken]: '+=';
+    [SyntaxKind.MinusEqualsToken]: '-=';
+    [SyntaxKind.AsteriskEqualsToken]: '*=';
+    [SyntaxKind.AsteriskAsteriskEqualsToken]: '**=';
+    [SyntaxKind.SlashEqualsToken]: '/=';
+    [SyntaxKind.PercentEqualsToken]: '%=';
+    [SyntaxKind.LessThanLessThanEqualsToken]: '<<=';
+    [SyntaxKind.GreaterThanGreaterThanEqualsToken]: '>>=';
+    [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: '>>>=';
+    [SyntaxKind.AmpersandEqualsToken]: '&=';
+    [SyntaxKind.AmpersandAmpersandEqualsToken]: '&&=';
+    [SyntaxKind.BarEqualsToken]: '|=';
+    [SyntaxKind.BarBarEqualsToken]: '||=';
+    [SyntaxKind.CaretEqualsToken]: '^=';
+    [SyntaxKind.QuestionQuestionEqualsToken]: '??=';
+    [SyntaxKind.AtToken]: '@';
+    [SyntaxKind.InKeyword]: 'in';
+    [SyntaxKind.UniqueKeyword]: 'unique';
+    [SyntaxKind.KeyOfKeyword]: 'keyof';
+    [SyntaxKind.NewKeyword]: 'new';
+    [SyntaxKind.ImportKeyword]: 'import';
+    [SyntaxKind.ReadonlyKeyword]: 'readonly';
+    [SyntaxKind.QuestionQuestionToken]: '??';
+    [SyntaxKind.QuestionDotToken]: '?.';
+}
 /**
  * Returns true if the given ts.Token is the assignment operator
  * @param operator the operator token
@@ -83,7 +86,7 @@
  * @param kind the token's SyntaxKind
  * @returns the token applicable token as a string
  */
-export declare function getTextForTokenKind<T extends ts.SyntaxKind>(kind: T): T extends keyof typeof TOKEN_TO_TEXT ? typeof TOKEN_TO_TEXT[T] : undefined;
+export declare function getTextForTokenKind<T extends ts.SyntaxKind>(kind: T): T extends keyof TokenToText ? TokenToText[T] : string | undefined;
 /**
  * Returns true if the given ts.Node is a valid ESTree class member
  * @param node TypeScript AST node
@@ -223,6 +226,14 @@
     questionToken?: ts.QuestionToken;
 }): boolean;
 /**
+ * Returns true if the node is an optional chain node
+ */
+export declare function isChainExpression(node: TSESTree.Node): node is TSESTree.ChainExpression;
+/**
+ * Returns true of the child of property access expression is an optional chain
+ */
+export declare function isChildUnwrappableOptionalChain(node: ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.NonNullExpression, child: TSESTree.Node): boolean;
+/**
  * Returns the type of a given ts.Token
  * @param token the ts.Token
  * @returns the token type
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map
index f42b868..f898a2f 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"node-utils.d.ts","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"node-utils.d.ts","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js
index 883251e..05c95cf 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js
@@ -1,111 +1,45 @@
 "use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.firstDefined = exports.nodeHasTokens = exports.createError = exports.convertTokens = exports.convertToken = exports.getTokenType = exports.isChildUnwrappableOptionalChain = exports.isChainExpression = exports.isOptional = exports.isComputedProperty = exports.unescapeStringLiteralText = exports.hasJSXAncestor = exports.findFirstMatchingAncestor = exports.findNextToken = exports.getTSNodeAccessibility = exports.getDeclarationKind = exports.isJSXToken = exports.isToken = exports.getRange = exports.canContainDirective = exports.getLocFor = exports.getLineAndCharacterFor = exports.getBinaryExpressionType = exports.isJSDocComment = exports.isComment = exports.isComma = exports.getLastModifier = exports.hasModifier = exports.isESTreeClassMember = exports.getTextForTokenKind = exports.isLogicalOperator = exports.isAssignmentOperator = void 0;
 const unescape_1 = __importDefault(require("lodash/unescape"));
 const ts = __importStar(require("typescript"));
 const ts_estree_1 = require("./ts-estree");
 const SyntaxKind = ts.SyntaxKind;
-const ASSIGNMENT_OPERATORS = [
-    SyntaxKind.EqualsToken,
-    SyntaxKind.PlusEqualsToken,
-    SyntaxKind.MinusEqualsToken,
-    SyntaxKind.AsteriskEqualsToken,
-    SyntaxKind.AsteriskAsteriskEqualsToken,
-    SyntaxKind.SlashEqualsToken,
-    SyntaxKind.PercentEqualsToken,
-    SyntaxKind.LessThanLessThanEqualsToken,
-    SyntaxKind.GreaterThanGreaterThanEqualsToken,
-    SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
-    SyntaxKind.AmpersandEqualsToken,
-    SyntaxKind.BarEqualsToken,
-    SyntaxKind.CaretEqualsToken,
-];
 const LOGICAL_OPERATORS = [
     SyntaxKind.BarBarToken,
     SyntaxKind.AmpersandAmpersandToken,
     SyntaxKind.QuestionQuestionToken,
 ];
-const TOKEN_TO_TEXT = {
-    [SyntaxKind.OpenBraceToken]: '{',
-    [SyntaxKind.CloseBraceToken]: '}',
-    [SyntaxKind.OpenParenToken]: '(',
-    [SyntaxKind.CloseParenToken]: ')',
-    [SyntaxKind.OpenBracketToken]: '[',
-    [SyntaxKind.CloseBracketToken]: ']',
-    [SyntaxKind.DotToken]: '.',
-    [SyntaxKind.DotDotDotToken]: '...',
-    [SyntaxKind.SemicolonToken]: ';',
-    [SyntaxKind.CommaToken]: ',',
-    [SyntaxKind.LessThanToken]: '<',
-    [SyntaxKind.GreaterThanToken]: '>',
-    [SyntaxKind.LessThanEqualsToken]: '<=',
-    [SyntaxKind.GreaterThanEqualsToken]: '>=',
-    [SyntaxKind.EqualsEqualsToken]: '==',
-    [SyntaxKind.ExclamationEqualsToken]: '!=',
-    [SyntaxKind.EqualsEqualsEqualsToken]: '===',
-    [SyntaxKind.InstanceOfKeyword]: 'instanceof',
-    [SyntaxKind.ExclamationEqualsEqualsToken]: '!==',
-    [SyntaxKind.EqualsGreaterThanToken]: '=>',
-    [SyntaxKind.PlusToken]: '+',
-    [SyntaxKind.MinusToken]: '-',
-    [SyntaxKind.AsteriskToken]: '*',
-    [SyntaxKind.AsteriskAsteriskToken]: '**',
-    [SyntaxKind.SlashToken]: '/',
-    [SyntaxKind.PercentToken]: '%',
-    [SyntaxKind.PlusPlusToken]: '++',
-    [SyntaxKind.MinusMinusToken]: '--',
-    [SyntaxKind.LessThanLessThanToken]: '<<',
-    [SyntaxKind.LessThanSlashToken]: '</',
-    [SyntaxKind.GreaterThanGreaterThanToken]: '>>',
-    [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: '>>>',
-    [SyntaxKind.AmpersandToken]: '&',
-    [SyntaxKind.BarToken]: '|',
-    [SyntaxKind.CaretToken]: '^',
-    [SyntaxKind.ExclamationToken]: '!',
-    [SyntaxKind.TildeToken]: '~',
-    [SyntaxKind.AmpersandAmpersandToken]: '&&',
-    [SyntaxKind.BarBarToken]: '||',
-    [SyntaxKind.QuestionToken]: '?',
-    [SyntaxKind.ColonToken]: ':',
-    [SyntaxKind.EqualsToken]: '=',
-    [SyntaxKind.PlusEqualsToken]: '+=',
-    [SyntaxKind.MinusEqualsToken]: '-=',
-    [SyntaxKind.AsteriskEqualsToken]: '*=',
-    [SyntaxKind.AsteriskAsteriskEqualsToken]: '**=',
-    [SyntaxKind.SlashEqualsToken]: '/=',
-    [SyntaxKind.PercentEqualsToken]: '%=',
-    [SyntaxKind.LessThanLessThanEqualsToken]: '<<=',
-    [SyntaxKind.GreaterThanGreaterThanEqualsToken]: '>>=',
-    [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: '>>>=',
-    [SyntaxKind.AmpersandEqualsToken]: '&=',
-    [SyntaxKind.BarEqualsToken]: '|=',
-    [SyntaxKind.CaretEqualsToken]: '^=',
-    [SyntaxKind.AtToken]: '@',
-    [SyntaxKind.InKeyword]: 'in',
-    [SyntaxKind.UniqueKeyword]: 'unique',
-    [SyntaxKind.KeyOfKeyword]: 'keyof',
-    [SyntaxKind.NewKeyword]: 'new',
-    [SyntaxKind.ImportKeyword]: 'import',
-    [SyntaxKind.ReadonlyKeyword]: 'readonly',
-    [SyntaxKind.QuestionQuestionToken]: '??',
-    [SyntaxKind.QuestionDotToken]: '?.',
-};
 /**
  * Returns true if the given ts.Token is the assignment operator
  * @param operator the operator token
  * @returns is assignment
  */
 function isAssignmentOperator(operator) {
-    return ASSIGNMENT_OPERATORS.includes(operator.kind);
+    return (operator.kind >= SyntaxKind.FirstAssignment &&
+        operator.kind <= SyntaxKind.LastAssignment);
 }
 exports.isAssignmentOperator = isAssignmentOperator;
 /**
@@ -123,8 +57,7 @@
  * @returns the token applicable token as a string
  */
 function getTextForTokenKind(kind) {
-    // eslint-disable-next-line @typescript-eslint/no-explicit-any
-    return kind in TOKEN_TO_TEXT ? TOKEN_TO_TEXT[kind] : undefined;
+    return ts.tokenToString(kind);
 }
 exports.getTextForTokenKind = getTextForTokenKind;
 /**
@@ -407,6 +340,25 @@
 }
 exports.isOptional = isOptional;
 /**
+ * Returns true if the node is an optional chain node
+ */
+function isChainExpression(node) {
+    return node.type === ts_estree_1.AST_NODE_TYPES.ChainExpression;
+}
+exports.isChainExpression = isChainExpression;
+/**
+ * Returns true of the child of property access expression is an optional chain
+ */
+function isChildUnwrappableOptionalChain(node, child) {
+    if (isChainExpression(child) &&
+        // (x?.y).z is semantically different, and as such .z is no longer optional
+        node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression) {
+        return true;
+    }
+    return false;
+}
+exports.isChildUnwrappableOptionalChain = isChildUnwrappableOptionalChain;
+/**
  * Returns the type of a given ts.Token
  * @param token the ts.Token
  * @returns the token type
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map
index c1644ea..306ba36 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map
@@ -1 +1 @@
-{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts
index ac7d925..e64a09d 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts
@@ -1,3 +1,4 @@
+import { DebugLevel } from '@typescript-eslint/types';
 import { Program } from 'typescript';
 import { TSESTree, TSNode, TSESTreeToTSNode, TSToken } from './ts-estree';
 declare type DebugModule = 'typescript-eslint' | 'eslint' | 'typescript';
@@ -13,7 +14,7 @@
     filePath: string;
     jsx: boolean;
     loc: boolean;
-    log: Function;
+    log: (message: string) => void;
     preserveNodeMaps?: boolean;
     projects: string[];
     range: boolean;
@@ -22,39 +23,29 @@
     tsconfigRootDir: string;
     useJSXTextNode: boolean;
 }
-export interface TSESTreeOptions {
+interface ParseOptions {
     /**
      * create a top-level comments array containing all comments
      */
     comment?: boolean;
     /**
-     * For convenience:
-     * - true === ['typescript-eslint']
-     * - false === []
-     *
      * An array of modules to turn explicit debugging on for.
      * - 'typescript-eslint' is the same as setting the env var `DEBUG=typescript-eslint:*`
      * - 'eslint' is the same as setting the env var `DEBUG=eslint:*`
      * - 'typescript' is the same as setting `extendedDiagnostics: true` in your tsconfig compilerOptions
+     *
+     * For convenience, also supports a boolean:
+     * - true === ['typescript-eslint']
+     * - false === []
      */
-    debugLevel?: boolean | DebugModule[];
-    /**
-     * Causes the parser to error if the TypeScript compiler returns any unexpected syntax/semantic errors.
-     */
-    errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
+    debugLevel?: DebugLevel;
     /**
      * Cause the parser to error if it encounters an unknown AST node type (useful for testing).
      * This case only usually occurs when TypeScript releases new features.
      */
     errorOnUnknownASTType?: boolean;
     /**
-     * When `project` is provided, this controls the non-standard file extensions which will be parsed.
-     * It accepts an array of file extensions, each preceded by a `.`.
-     */
-    extraFileExtensions?: string[];
-    /**
-     * Absolute (or relative to `tsconfigRootDir`) path to the file being parsed.
-     * When `project` is provided, this is required, as it is used to fetch the file from the TypeScript compiler's cache.
+     * Absolute (or relative to `cwd`) path to the file being parsed.
      */
     filePath?: string;
     /**
@@ -73,7 +64,34 @@
      * This is similar to the `range` property, except it is line/column relative.
      */
     loc?: boolean;
-    loggerFn?: Function | false;
+    loggerFn?: ((message: string) => void) | false;
+    /**
+     * Controls whether the `range` property is included on AST nodes.
+     * The `range` property is a [number, number] which indicates the start/end index of the node in the file contents.
+     * This is similar to the `loc` property, except this is the absolute index.
+     */
+    range?: boolean;
+    /**
+     * Set to true to create a top-level array containing all tokens from the file.
+     */
+    tokens?: boolean;
+    useJSXTextNode?: boolean;
+}
+interface ParseAndGenerateServicesOptions extends ParseOptions {
+    /**
+     * Causes the parser to error if the TypeScript compiler returns any unexpected syntax/semantic errors.
+     */
+    errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
+    /**
+     * When `project` is provided, this controls the non-standard file extensions which will be parsed.
+     * It accepts an array of file extensions, each preceded by a `.`.
+     */
+    extraFileExtensions?: string[];
+    /**
+     * Absolute (or relative to `tsconfigRootDir`) path to the file being parsed.
+     * When `project` is provided, this is required, as it is used to fetch the file from the TypeScript compiler's cache.
+     */
+    filePath?: string;
     /**
      * Allows the user to control whether or not two-way AST node maps are preserved
      * during the AST conversion process.
@@ -91,20 +109,17 @@
      */
     project?: string | string[];
     /**
-     * Controls whether the `range` property is included on AST nodes.
-     * The `range` property is a [number, number] which indicates the start/end index of the node in the file contents.
-     * This is similar to the `loc` property, except this is the absolute index.
+     * If you provide a glob (or globs) to the project option, you can use this option to ignore certain folders from
+     * being matched by the globs.
+     * This accepts an array of globs to ignore.
+     *
+     * By default, this is set to ["**\/node_modules/**"]
      */
-    range?: boolean;
-    /**
-     * Set to true to create a top-level array containing all tokens from the file.
-     */
-    tokens?: boolean;
+    projectFolderIgnoreList?: string[];
     /**
      * The absolute path to the root directory for all provided `project`s.
      */
     tsconfigRootDir?: string;
-    useJSXTextNode?: boolean;
     /**
      ***************************************************************************************
      * IT IS RECOMMENDED THAT YOU DO NOT USE THIS OPTION, AS IT CAUSES PERFORMANCE ISSUES. *
@@ -113,11 +128,10 @@
      * When passed with `project`, this allows the parser to create a catch-all, default program.
      * This means that if the parser encounters a file not included in any of the provided `project`s,
      * it will not error, but will instead parse the file and its dependencies in a new program.
-     *
-     * This
      */
     createDefaultProgram?: boolean;
 }
+export declare type TSESTreeOptions = ParseAndGenerateServicesOptions;
 export interface ParserWeakMap<TKey, TValueBase> {
     get<TValue extends TValueBase>(key: TKey): TValue;
     has(key: unknown): boolean;
@@ -127,9 +141,10 @@
     has(key: unknown): boolean;
 }
 export interface ParserServices {
-    program: Program | undefined;
-    esTreeNodeToTSNodeMap: ParserWeakMapESTreeToTSNode | undefined;
-    tsNodeToESTreeNodeMap: ParserWeakMap<TSNode | TSToken, TSESTree.Node> | undefined;
+    program: Program;
+    esTreeNodeToTSNodeMap: ParserWeakMapESTreeToTSNode;
+    tsNodeToESTreeNodeMap: ParserWeakMap<TSNode | TSToken, TSESTree.Node>;
+    hasFullTypeInformation: boolean;
 }
 export {};
 //# sourceMappingURL=parser-options.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map
index 273d6ea..af6375f 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts
index 63ac4c8..d31f3a7 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts
@@ -1,21 +1,17 @@
 import { TSESTreeOptions, ParserServices } from './parser-options';
 import { TSESTree } from './ts-estree';
+interface EmptyObject {
+}
 declare type AST<T extends TSESTreeOptions> = TSESTree.Program & (T['tokens'] extends true ? {
     tokens: TSESTree.Token[];
-} : {}) & (T['comment'] extends true ? {
+} : EmptyObject) & (T['comment'] extends true ? {
     comments: TSESTree.Comment[];
-} : {});
+} : EmptyObject);
 interface ParseAndGenerateServicesResult<T extends TSESTreeOptions> {
     ast: AST<T>;
     services: ParserServices;
 }
-declare const version: string;
 declare function parse<T extends TSESTreeOptions = TSESTreeOptions>(code: string, options?: T): AST<T>;
 declare function parseAndGenerateServices<T extends TSESTreeOptions = TSESTreeOptions>(code: string, options: T): ParseAndGenerateServicesResult<T>;
-export { AST, parse, parseAndGenerateServices, ParseAndGenerateServicesResult, version, };
-export { ParserServices, TSESTreeOptions } from './parser-options';
-export { simpleTraverse } from './simple-traverse';
-export { visitorKeys } from './visitor-keys';
-export * from './ts-estree';
-export { clearCaches } from './create-program/createWatchProgram';
+export { AST, parse, parseAndGenerateServices, ParseAndGenerateServicesResult };
 //# sourceMappingURL=parser.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map
index a9a6f40..0647033 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAWA,OAAO,EAAS,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgRvC,aAAK,GAAG,CAAC,CAAC,SAAS,eAAe,IAAI,QAAQ,CAAC,OAAO,GACpD,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GAAG,EAAE,CAAC,GAC9D,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;CAAE,GAAG,EAAE,CAAC,CAAC;AAEtE,UAAU,8BAA8B,CAAC,CAAC,SAAS,eAAe;IAChE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAMD,QAAA,MAAM,OAAO,EAAE,MAA2C,CAAC;AAE3D,iBAAS,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CA4CR;AAED,iBAAS,wBAAwB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,8BAA8B,CAAC,CAAC,CAAC,CAsFnC;AAED,OAAO,EACL,GAAG,EACH,KAAK,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,OAAO,GACR,CAAC;AACF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAWA,OAAO,EAAS,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwSvC,UAAU,WAAW;CAAG;AACxB,aAAK,GAAG,CAAC,CAAC,SAAS,eAAe,IAAI,QAAQ,CAAC,OAAO,GACpD,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GACvE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,CAAC;AAE/E,UAAU,8BAA8B,CAAC,CAAC,SAAS,eAAe;IAChE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,iBAAS,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CA4CR;AAED,iBAAS,wBAAwB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,8BAA8B,CAAC,CAAC,CAAC,CA0EnC;AAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js
index ce9ab9e..20db621 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js
@@ -1,20 +1,30 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
+var __importDefault = (this && this.__importDefault) || function (mod) {
+    return (mod && mod.__esModule) ? mod : { "default": mod };
+};
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseAndGenerateServices = exports.parse = void 0;
 const debug_1 = __importDefault(require("debug"));
-const glob_1 = require("glob");
+const globby_1 = require("globby");
 const is_glob_1 = __importDefault(require("is-glob"));
 const semver_1 = __importDefault(require("semver"));
 const ts = __importStar(require("typescript"));
@@ -26,16 +36,17 @@
 const createSourceFile_1 = require("./create-program/createSourceFile");
 const semantic_or_syntactic_errors_1 = require("./semantic-or-syntactic-errors");
 const shared_1 = require("./create-program/shared");
+const log = debug_1.default('typescript-eslint:typescript-estree:parser');
 /**
  * This needs to be kept in sync with the top-level README.md in the
  * typescript-eslint monorepo
  */
-const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.2.1 <3.8.0';
+const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.1.0';
 /*
  * The semver package will ignore prerelease ranges, and we don't want to explicitly document every one
  * List them all separately here, so we can automatically create the full string
  */
-const SUPPORTED_PRERELEASE_RANGES = ['>3.7.0-dev.0', '3.7.1-rc'];
+const SUPPORTED_PRERELEASE_RANGES = [];
 const ACTIVE_TYPESCRIPT_VERSION = ts.version;
 const isRunningSupportedTypeScriptVersion = semver_1.default.satisfies(ACTIVE_TYPESCRIPT_VERSION, [SUPPORTED_TYPESCRIPT_VERSIONS]
     .concat(SUPPORTED_PRERELEASE_RANGES)
@@ -93,7 +104,7 @@
         jsx: false,
         loc: false,
         log: console.log,
-        preserveNodeMaps: undefined,
+        preserveNodeMaps: true,
         projects: [],
         range: false,
         strict: false,
@@ -102,7 +113,37 @@
         useJSXTextNode: false,
     };
 }
+/**
+ * Normalizes, sanitizes, resolves and filters the provided
+ */
+function prepareAndTransformProjects(projectsInput, ignoreListInput) {
+    let projects = [];
+    // Normalize and sanitize the project paths
+    if (typeof projectsInput === 'string') {
+        projects.push(projectsInput);
+    }
+    else if (Array.isArray(projectsInput)) {
+        for (const project of projectsInput) {
+            if (typeof project === 'string') {
+                projects.push(project);
+            }
+        }
+    }
+    if (projects.length === 0) {
+        return projects;
+    }
+    // Transform glob patterns into paths
+    const globbedProjects = projects.filter(project => is_glob_1.default(project));
+    projects = projects
+        .filter(project => !is_glob_1.default(project))
+        .concat(globby_1.sync([...globbedProjects, ...ignoreListInput], {
+        cwd: extra.tsconfigRootDir,
+    }));
+    log('parserOptions.project (excluding ignored) matched projects: %s', projects);
+    return projects;
+}
 function applyParserOptionsToExtra(options) {
+    var _a;
     /**
      * Configure Debug logging
      */
@@ -151,7 +192,7 @@
         extra.jsx = true;
     }
     /**
-     * Get the file extension
+     * Get the file path
      */
     if (typeof options.filePath === 'string' && options.filePath !== '<input>') {
         extra.filePath = options.filePath;
@@ -184,27 +225,24 @@
         extra.log = options.loggerFn;
     }
     else if (options.loggerFn === false) {
-        extra.log = Function.prototype;
-    }
-    if (typeof options.project === 'string') {
-        extra.projects = [options.project];
-    }
-    else if (Array.isArray(options.project) &&
-        options.project.every(projectPath => typeof projectPath === 'string')) {
-        extra.projects = options.project;
+        extra.log = () => { };
     }
     if (typeof options.tsconfigRootDir === 'string') {
         extra.tsconfigRootDir = options.tsconfigRootDir;
     }
+    // NOTE - ensureAbsolutePath relies upon having the correct tsconfigRootDir in extra
     extra.filePath = shared_1.ensureAbsolutePath(extra.filePath, extra);
-    // Transform glob patterns into paths
-    if (extra.projects) {
-        extra.projects = extra.projects.reduce((projects, project) => projects.concat(is_glob_1.default(project)
-            ? glob_1.sync(project, {
-                cwd: extra.tsconfigRootDir || process.cwd(),
-            })
-            : project), []);
-    }
+    // NOTE - prepareAndTransformProjects relies upon having the correct tsconfigRootDir in extra
+    const projectFolderIgnoreList = ((_a = options.projectFolderIgnoreList) !== null && _a !== void 0 ? _a : [])
+        .reduce((acc, folder) => {
+        if (typeof folder === 'string') {
+            acc.push(folder);
+        }
+        return acc;
+    }, [])
+        // prefix with a ! for not match glob
+        .map(folder => (folder.startsWith('!') ? folder : `!${folder}`));
+    extra.projects = prepareAndTransformProjects(options.project, projectFolderIgnoreList);
     if (Array.isArray(options.extraFileExtensions) &&
         options.extraFileExtensions.every(ext => typeof ext === 'string')) {
         extra.extraFileExtensions = options.extraFileExtensions;
@@ -212,14 +250,9 @@
     /**
      * Allow the user to enable or disable the preservation of the AST node maps
      * during the conversion process.
-     *
-     * NOTE: For backwards compatibility we also preserve node maps in the case where `project` is set,
-     * and `preserveNodeMaps` is not explicitly set to anything.
      */
-    extra.preserveNodeMaps =
-        typeof options.preserveNodeMaps === 'boolean' && options.preserveNodeMaps;
-    if (options.preserveNodeMaps === undefined && extra.projects.length > 0) {
-        extra.preserveNodeMaps = true;
+    if (typeof options.preserveNodeMaps === 'boolean') {
+        extra.preserveNodeMaps = options.preserveNodeMaps;
     }
     extra.createDefaultProgram =
         typeof options.createDefaultProgram === 'boolean' &&
@@ -245,13 +278,7 @@
         warnedAboutTSVersion = true;
     }
 }
-//------------------------------------------------------------------------------
-// Public
-//------------------------------------------------------------------------------
-const version = require('../package.json').version;
-exports.version = version;
 function parse(code, options) {
-    var _a;
     /**
      * Reset the parse configuration
      */
@@ -259,7 +286,7 @@
     /**
      * Ensure users do not attempt to use parse() when they need parseAndGenerateServices()
      */
-    if ((_a = options) === null || _a === void 0 ? void 0 : _a.errorOnTypeScriptSyntacticAndSemanticIssues) {
+    if (options === null || options === void 0 ? void 0 : options.errorOnTypeScriptSyntacticAndSemanticIssues) {
         throw new Error(`"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()`);
     }
     /**
@@ -321,17 +348,11 @@
     const shouldProvideParserServices = extra.projects && extra.projects.length > 0;
     const { ast, program } = getProgramAndAST(code, shouldProvideParserServices, extra.createDefaultProgram);
     /**
-     * Determine if two-way maps of converted AST nodes should be preserved
-     * during the conversion process
-     */
-    const shouldPreserveNodeMaps = extra.preserveNodeMaps !== undefined
-        ? extra.preserveNodeMaps
-        : shouldProvideParserServices;
-    /**
      * Convert the TypeScript AST to an ESTree-compatible one, and optionally preserve
      * mappings between converted and original AST nodes
      */
-    const { estree, astMaps } = ast_converter_1.astConverter(ast, extra, shouldPreserveNodeMaps);
+    const preserveNodeMaps = typeof extra.preserveNodeMaps === 'boolean' ? extra.preserveNodeMaps : true;
+    const { estree, astMaps } = ast_converter_1.astConverter(ast, extra, preserveNodeMaps);
     /**
      * Even if TypeScript parsed the source code ok, and we had no problems converting the AST,
      * there may be other syntactic or semantic issues in the code that we can optionally report on.
@@ -348,22 +369,12 @@
     return {
         ast: estree,
         services: {
-            program: shouldProvideParserServices ? program : undefined,
-            esTreeNodeToTSNodeMap: shouldPreserveNodeMaps && astMaps
-                ? astMaps.esTreeNodeToTSNodeMap
-                : undefined,
-            tsNodeToESTreeNodeMap: shouldPreserveNodeMaps && astMaps
-                ? astMaps.tsNodeToESTreeNodeMap
-                : undefined,
+            hasFullTypeInformation: shouldProvideParserServices,
+            program,
+            esTreeNodeToTSNodeMap: astMaps.esTreeNodeToTSNodeMap,
+            tsNodeToESTreeNodeMap: astMaps.tsNodeToESTreeNodeMap,
         },
     };
 }
 exports.parseAndGenerateServices = parseAndGenerateServices;
-var simple_traverse_1 = require("./simple-traverse");
-exports.simpleTraverse = simple_traverse_1.simpleTraverse;
-var visitor_keys_1 = require("./visitor-keys");
-exports.visitorKeys = visitor_keys_1.visitorKeys;
-__export(require("./ts-estree"));
-var createWatchProgram_1 = require("./create-program/createWatchProgram");
-exports.clearCaches = createWatchProgram_1.clearCaches;
 //# sourceMappingURL=parser.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map
index 400a223..d717c37 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map
@@ -1 +1 @@
-{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+BAAwC;AACxC,sDAA6B;AAC7B,oDAA4B;AAC5B,+CAAiC;AACjC,mDAA+C;AAC/C,uCAAyC;AACzC,gFAA6E;AAC7E,kFAA+E;AAC/E,gFAA6E;AAC7E,wEAAqE;AAErE,iFAAkF;AAElF,oDAA6D;AAE7D;;;GAGG;AACH,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AACvD;;;GAGG;AACH,MAAM,2BAA2B,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACjE,MAAM,yBAAyB,GAAG,EAAE,CAAC,OAAO,CAAC;AAC7C,MAAM,mCAAmC,GAAG,gBAAM,CAAC,SAAS,CAC1D,yBAAyB,EACzB,CAAC,6BAA6B,CAAC;KAC5B,MAAM,CAAC,2BAA2B,CAAC;KACnC,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC;AAEF,IAAI,KAAY,CAAC;AACjB,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,SAAS,aAAa,CAAC,IAAa;IAClC;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,2BAAoC,EACpC,0BAAmC;IAEnC,OAAO,CACL,CAAC,2BAA2B;QAC1B,2CAAoB,CAAC,IAAI,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,2BAA2B;YAC1B,0BAA0B;YAC1B,2CAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,6CAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CACnC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,EAAE,GAAG,KAAwB,EAAE;IAClD,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,KAAK,GAAG;QACN,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE;QACZ,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,2CAA2C,EAAE,KAAK;QAClD,qBAAqB,EAAE,KAAK;QAC5B,mBAAmB,EAAE,EAAE;QACvB,QAAQ,EAAE,WAAW,EAAE;QACvB,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,gBAAgB,EAAE,SAAS;QAC3B,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE;QAC9B,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAwB;IACzD;;OAEG;IACH,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC5C,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAChD;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;QAC7B,8EAA8E;QAC9E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACxC;QACD,IACE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,6EAA6E;YAC7E,eAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB;YACA,mGAAmG;YACnG,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;IAClE,KAAK,CAAC,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAE5D;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;QACzD,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;KACnB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3D,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;KACrB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;QACnD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;KAClB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC1E,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;KACnC;SAAM;QACL,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;KACrC;IAED;;;;;;OAMG;IACH,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE;QACzE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;KAC7B;IAED;;;OAGG;IACH,IACE,OAAO,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAClD,OAAO,CAAC,qBAAqB,EAC7B;QACA,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1C,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;KAC9B;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;QACrC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;KAChC;IAED,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;QACvC,KAAK,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC;SAAM,IACL,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC,EACrE;QACA,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;KAClC;IAED,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE;QAC/C,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;KACjD;IACD,KAAK,CAAC,QAAQ,GAAG,2BAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3D,qCAAqC;IACrC,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACpB,QAAQ,CAAC,MAAM,CACb,iBAAM,CAAC,OAAO,CAAC;YACb,CAAC,CAAC,WAAQ,CAAC,OAAO,EAAE;gBAChB,GAAG,EAAE,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE;aAC5C,CAAC;YACJ,CAAC,CAAC,OAAO,CACZ,EACH,EAAE,CACH,CAAC;KACH;IAED,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC1C,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EACjE;QACA,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;KACzD;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAC5E,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC/B;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,OAAO,CAAC,oBAAoB,KAAK,SAAS;YACjD,OAAO,CAAC,oBAAoB,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB;;IACzB,IAAI,CAAC,mCAAmC,IAAI,CAAC,oBAAoB,EAAE;QACjE,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAC,OAAO,CAAC,MAAM,0CAAE,KAAK,CAAC;QAC3E,IAAI,KAAK,EAAE;YACT,MAAM,MAAM,GAAG,eAAe,CAAC;YAC/B,MAAM,cAAc,GAAG;gBACrB,MAAM;gBACN,uIAAuI;gBACvI,uDAAuD;gBACvD,kCAAkC,6BAA6B,EAAE;gBACjE,4BAA4B,yBAAyB,EAAE;gBACvD,6EAA6E;gBAC7E,MAAM;aACP,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;QACD,oBAAoB,GAAG,IAAI,CAAC;KAC7B;AACH,CAAC;AAeD,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AAmJzD,0BAAO;AAjJT,SAAS,KAAK,CACZ,IAAY,EACZ,OAAW;;IAEX;;OAEG;IACH,UAAU,EAAE,CAAC;IAEb;;OAEG;IACH,UAAI,OAAO,0CAAE,2CAA2C,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;KACH;IAED;;OAEG;IACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,yBAAyB,CAAC,OAAO,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC;IAErB;;;OAGG;IACH,MAAM,GAAG,GAAG,mCAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,MAAgB,CAAC;AAC1B,CAAC;AA+FC,sBAAK;AA7FP,SAAS,wBAAwB,CAC/B,IAAY,EACZ,OAAU;IAEV;;OAEG;IACH,UAAU,EAAE,CAAC;IAEb;;OAEG;IACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,IACE,OAAO,OAAO,CAAC,2CAA2C;YACxD,SAAS;YACX,OAAO,CAAC,2CAA2C,EACnD;YACA,KAAK,CAAC,2CAA2C,GAAG,IAAI,CAAC;SAC1D;KACF;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC;IAErB;;;OAGG;IACH,MAAM,2BAA2B,GAC/B,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CACvC,IAAI,EACJ,2BAA2B,EAC3B,KAAK,CAAC,oBAAoB,CAC1B,CAAC;IAEH;;;OAGG;IACH,MAAM,sBAAsB,GAC1B,KAAK,CAAC,gBAAgB,KAAK,SAAS;QAClC,CAAC,CAAC,KAAK,CAAC,gBAAgB;QACxB,CAAC,CAAC,2BAA2B,CAAC;IAElC;;;OAGG;IACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAE7E;;;OAGG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,2CAA2C,EAAE;QAChE,MAAM,KAAK,GAAG,+DAAgC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE;YACT,MAAM,sBAAY,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;IAED;;OAEG;IACH,OAAO;QACL,GAAG,EAAE,MAAgB;QACrB,QAAQ,EAAE;YACR,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC1D,qBAAqB,EACnB,sBAAsB,IAAI,OAAO;gBAC/B,CAAC,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,SAAS;YACf,qBAAqB,EACnB,sBAAsB,IAAI,OAAO;gBAC/B,CAAC,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AAKC,4DAAwB;AAK1B,qDAAmD;AAA1C,2CAAA,cAAc,CAAA;AACvB,+CAA6C;AAApC,qCAAA,WAAW,CAAA;AACpB,iCAA4B;AAC5B,0EAAkE;AAAzD,2CAAA,WAAW,CAAA"}
\ No newline at end of file
+{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mCAA0C;AAC1C,sDAA6B;AAC7B,oDAA4B;AAC5B,+CAAiC;AACjC,mDAA+C;AAC/C,uCAAyC;AACzC,gFAA6E;AAC7E,kFAA+E;AAC/E,gFAA6E;AAC7E,wEAAqE;AAErE,iFAAkF;AAElF,oDAA4E;AAE5E,MAAM,GAAG,GAAG,eAAK,CAAC,4CAA4C,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AACvD;;;GAGG;AACH,MAAM,2BAA2B,GAAa,EAAE,CAAC;AACjD,MAAM,yBAAyB,GAAG,EAAE,CAAC,OAAO,CAAC;AAC7C,MAAM,mCAAmC,GAAG,gBAAM,CAAC,SAAS,CAC1D,yBAAyB,EACzB,CAAC,6BAA6B,CAAC;KAC5B,MAAM,CAAC,2BAA2B,CAAC;KACnC,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC;AAEF,IAAI,KAAY,CAAC;AACjB,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,SAAS,aAAa,CAAC,IAAa;IAClC;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,2BAAoC,EACpC,0BAAmC;IAEnC,OAAO,CACL,CAAC,2BAA2B;QAC1B,2CAAoB,CAAC,IAAI,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,2BAA2B;YAC1B,0BAA0B;YAC1B,2CAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,6CAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CACnC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,EAAE,GAAG,KAAwB,EAAE;IAClD,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,KAAK,GAAG;QACN,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE;QACZ,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,2CAA2C,EAAE,KAAK;QAClD,qBAAqB,EAAE,KAAK;QAC5B,mBAAmB,EAAE,EAAE;QACvB,QAAQ,EAAE,WAAW,EAAE;QACvB,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,gBAAgB,EAAE,IAAI;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE;QAC9B,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAClC,aAA4C,EAC5C,eAAyB;IAEzB,IAAI,QAAQ,GAAa,EAAE,CAAC;IAE5B,2CAA2C;IAC3C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACrC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC9B;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;QACvC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;YACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;SACF;KACF;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,QAAQ,CAAC;KACjB;IAED,qCAAqC;IACrC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,QAAQ,GAAG,QAAQ;SAChB,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,iBAAM,CAAC,OAAO,CAAC,CAAC;SACnC,MAAM,CACL,aAAQ,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,eAAe,CAAC,EAAE;QACjD,GAAG,EAAE,KAAK,CAAC,eAAe;KAC3B,CAAC,CACH,CAAC;IAEJ,GAAG,CACD,gEAAgE,EAChE,QAAQ,CACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAwB;;IACzD;;OAEG;IACH,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACnD;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC5C,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAChD;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;QAC7B,8EAA8E;QAC9E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACxC;QACD,IACE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,6EAA6E;YAC7E,eAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB;YACA,mGAAmG;YACnG,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,eAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;IAClE,KAAK,CAAC,GAAG,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAE5D;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;QACzD,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;KACnB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3D,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;KACrB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;QACnD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC;KAClB;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC1E,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;KACnC;SAAM;QACL,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;KACrC;IAED;;;;;;OAMG;IACH,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE;QACzE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;KAC7B;IAED;;;OAGG;IACH,IACE,OAAO,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAClD,OAAO,CAAC,qBAAqB,EAC7B;QACA,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1C,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;KAC9B;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;QACrC,KAAK,CAAC,GAAG,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;KAC5B;IAED,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE;QAC/C,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;KACjD;IAED,oFAAoF;IACpF,KAAK,CAAC,QAAQ,GAAG,2BAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3D,6FAA6F;IAC7F,MAAM,uBAAuB,GAAG,OAAC,OAAO,CAAC,uBAAuB,mCAAI,EAAE,CAAC;SACpE,MAAM,CAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClB;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC;QACN,qCAAqC;SACpC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,KAAK,CAAC,QAAQ,GAAG,2BAA2B,CAC1C,OAAO,CAAC,OAAO,EACf,uBAAuB,CACxB,CAAC;IAEF,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC1C,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EACjE;QACA,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;KACzD;IAED;;;OAGG;IACH,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACjD,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;KACnD;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,OAAO,CAAC,oBAAoB,KAAK,SAAS;YACjD,OAAO,CAAC,oBAAoB,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB;;IACzB,IAAI,CAAC,mCAAmC,IAAI,CAAC,oBAAoB,EAAE;QACjE,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAC,OAAO,CAAC,MAAM,0CAAE,KAAK,CAAC;QAC3E,IAAI,KAAK,EAAE;YACT,MAAM,MAAM,GAAG,eAAe,CAAC;YAC/B,MAAM,cAAc,GAAG;gBACrB,MAAM;gBACN,uIAAuI;gBACvI,uDAAuD;gBACvD,kCAAkC,6BAA6B,EAAE;gBACjE,4BAA4B,yBAAyB,EAAE;gBACvD,6EAA6E;gBAC7E,MAAM;aACP,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACxC;QACD,oBAAoB,GAAG,IAAI,CAAC;KAC7B;AACH,CAAC;AAaD,SAAS,KAAK,CACZ,IAAY,EACZ,OAAW;IAEX;;OAEG;IACH,UAAU,EAAE,CAAC;IAEb;;OAEG;IACH,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,2CAA2C,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;KACH;IAED;;OAEG;IACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,yBAAyB,CAAC,OAAO,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC;IAErB;;;OAGG;IACH,MAAM,GAAG,GAAG,mCAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,MAAgB,CAAC;AAC1B,CAAC;AAiFa,sBAAK;AA/EnB,SAAS,wBAAwB,CAC/B,IAAY,EACZ,OAAU;IAEV;;OAEG;IACH,UAAU,EAAE,CAAC;IAEb;;OAEG;IACH,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,IACE,OAAO,OAAO,CAAC,2CAA2C;YACxD,SAAS;YACX,OAAO,CAAC,2CAA2C,EACnD;YACA,KAAK,CAAC,2CAA2C,GAAG,IAAI,CAAC;SAC1D;KACF;IAED;;OAEG;IACH,kBAAkB,EAAE,CAAC;IAErB;;;OAGG;IACH,MAAM,2BAA2B,GAC/B,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CACvC,IAAI,EACJ,2BAA2B,EAC3B,KAAK,CAAC,oBAAoB,CAC1B,CAAC;IAEH;;;OAGG;IACH,MAAM,gBAAgB,GACpB,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,4BAAY,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAEvE;;;OAGG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,2CAA2C,EAAE;QAChE,MAAM,KAAK,GAAG,+DAAgC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE;YACT,MAAM,sBAAY,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;IAED;;OAEG;IACH,OAAO;QACL,GAAG,EAAE,MAAgB;QACrB,QAAQ,EAAE;YACR,sBAAsB,EAAE,2BAA2B;YACnD,OAAO;YACP,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;SACrD;KACF,CAAC;AACJ,CAAC;AAEoB,4DAAwB"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js b/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js
index e77e4e6..96473c4 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js
@@ -1,12 +1,25 @@
 "use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+    Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+    o["default"] = v;
+});
 var __importStar = (this && this.__importStar) || function (mod) {
     if (mod && mod.__esModule) return mod;
     var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
+    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+    __setModuleDefault(result, mod);
     return result;
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+exports.getFirstSemanticOrSyntacticError = void 0;
 const ts = __importStar(require("typescript"));
 /**
  * By default, diagnostics from the TypeScript compiler contain all errors - regardless of whether
@@ -73,6 +86,7 @@
             case 1175: // "'implements' clause already seen."
             case 1176: // "Interface declaration cannot have 'implements' clause."
             case 1190: // "The variable declaration of a 'for...of' statement cannot have an initializer."
+            case 1196: // "Catch clause variable type annotation must be 'any' or 'unknown' if specified."
             case 1200: // "Line terminator not permitted before arrow."
             case 1206: // "Decorators are not valid here."
             case 1211: // "A class declaration without the 'default' modifier must have a name."
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map
index e26f894..af69657 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map
@@ -1 +1 @@
-{"version":3,"file":"semantic-or-syntactic-errors.js","sourceRoot":"","sources":["../src/semantic-or-syntactic-errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"semantic-or-syntactic-errors.js","sourceRoot":"","sources":["../src/semantic-or-syntactic-errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts
index d7f3efa..be2b1fc 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts
@@ -1,7 +1,9 @@
 import { TSESTree } from './ts-estree';
-interface SimpleTraverseOptions {
+declare type SimpleTraverseOptions = {
     enter: (node: TSESTree.Node, parent: TSESTree.Node | undefined) => void;
-}
-export declare function simpleTraverse(startingNode: TSESTree.Node, options: SimpleTraverseOptions): void;
+} | {
+    [key: string]: (node: TSESTree.Node, parent: TSESTree.Node | undefined) => void;
+};
+export declare function simpleTraverse(startingNode: TSESTree.Node, options: SimpleTraverseOptions, setParentPointers?: boolean): void;
 export {};
 //# sourceMappingURL=simple-traverse.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map
index 66894a6..7acdb86 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"simple-traverse.d.ts","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgBvC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE;AAmCD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,QAAQ,CAAC,IAAI,EAC3B,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CAEN"}
\ No newline at end of file
+{"version":3,"file":"simple-traverse.d.ts","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC,aAAK,qBAAqB,GACtB;IACE,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,CACb,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAC9B,IAAI,CAAC;CACX,CAAC;AA8CN,wBAAgB,cAAc,CAC5B,YAAY,EAAE,QAAQ,CAAC,IAAI,EAC3B,OAAO,EAAE,qBAAqB,EAC9B,iBAAiB,UAAQ,GACxB,IAAI,CAKN"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js
index 73f0bbd..b19f9b7 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js
@@ -1,6 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-const visitor_keys_1 = require("./visitor-keys");
+exports.simpleTraverse = void 0;
+const visitor_keys_1 = require("@typescript-eslint/visitor-keys");
 // eslint-disable-next-line @typescript-eslint/no-explicit-any
 function isValidNode(x) {
     return x !== null && typeof x === 'object' && typeof x.type === 'string';
@@ -10,15 +11,24 @@
     return (keys !== null && keys !== void 0 ? keys : []);
 }
 class SimpleTraverser {
-    constructor({ enter }) {
+    constructor(selectors, setParentPointers = false) {
         this.allVisitorKeys = visitor_keys_1.visitorKeys;
-        this.enter = enter;
+        this.selectors = selectors;
+        this.setParentPointers = setParentPointers;
     }
     traverse(node, parent) {
         if (!isValidNode(node)) {
             return;
         }
-        this.enter(node, parent);
+        if (this.setParentPointers) {
+            node.parent = parent;
+        }
+        if ('enter' in this.selectors) {
+            this.selectors.enter(node, parent);
+        }
+        else if (node.type in this.selectors) {
+            this.selectors[node.type](node, parent);
+        }
         const keys = getVisitorKeysForNode(this.allVisitorKeys, node);
         if (keys.length < 1) {
             return;
@@ -36,8 +46,8 @@
         }
     }
 }
-function simpleTraverse(startingNode, options) {
-    new SimpleTraverser(options).traverse(startingNode, undefined);
+function simpleTraverse(startingNode, options, setParentPointers = false) {
+    new SimpleTraverser(options, setParentPointers).traverse(startingNode, undefined);
 }
 exports.simpleTraverse = simpleTraverse;
 //# sourceMappingURL=simple-traverse.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map
index ca35677..910f55e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map
@@ -1 +1 @@
-{"version":3,"file":"simple-traverse.js","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":";;AACA,iDAA6C;AAE7C,8DAA8D;AAC9D,SAAS,WAAW,CAAC,CAAM;IACzB,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAC5B,cAAkC,EAClC,IAAmB;IAEnB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,QAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAC;AACpB,CAAC;AAMD,MAAM,eAAe;IAInB,YAAY,EAAE,KAAK,EAAyB;QAHpC,mBAAc,GAAG,0BAAW,CAAC;QAInC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,IAAa,EAAE,MAAiC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO;SACR;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,GAA0B,CAAC,CAAC;YAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAClC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC5B;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;aACtC;SACF;IACH,CAAC;CACF;AAED,SAAgB,cAAc,CAC5B,YAA2B,EAC3B,OAA8B;IAE9B,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC;AALD,wCAKC"}
\ No newline at end of file
+{"version":3,"file":"simple-traverse.js","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":";;;AAAA,kEAA8D;AAG9D,8DAA8D;AAC9D,SAAS,WAAW,CAAC,CAAM;IACzB,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAC5B,cAAkC,EAClC,IAAmB;IAEnB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAU,CAAC;AAC/B,CAAC;AAaD,MAAM,eAAe;IAKnB,YAAY,SAAgC,EAAE,iBAAiB,GAAG,KAAK;QAJtD,mBAAc,GAAG,0BAAW,CAAC;QAK5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAa,EAAE,MAAiC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpC;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO;SACR;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAClC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC5B;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;aACtC;SACF;IACH,CAAC;CACF;AAED,SAAgB,cAAc,CAC5B,YAA2B,EAC3B,OAA8B,EAC9B,iBAAiB,GAAG,KAAK;IAEzB,IAAI,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CACtD,YAAY,EACZ,SAAS,CACV,CAAC;AACJ,CAAC;AATD,wCASC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts
deleted file mode 100644
index 7dc8290..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts
+++ /dev/null
@@ -1,180 +0,0 @@
-export declare enum AST_NODE_TYPES {
-    ArrayExpression = "ArrayExpression",
-    ArrayPattern = "ArrayPattern",
-    ArrowFunctionExpression = "ArrowFunctionExpression",
-    AssignmentExpression = "AssignmentExpression",
-    AssignmentPattern = "AssignmentPattern",
-    AwaitExpression = "AwaitExpression",
-    BigIntLiteral = "BigIntLiteral",
-    BinaryExpression = "BinaryExpression",
-    BlockStatement = "BlockStatement",
-    BreakStatement = "BreakStatement",
-    CallExpression = "CallExpression",
-    CatchClause = "CatchClause",
-    ClassBody = "ClassBody",
-    ClassDeclaration = "ClassDeclaration",
-    ClassExpression = "ClassExpression",
-    ClassProperty = "ClassProperty",
-    ConditionalExpression = "ConditionalExpression",
-    ContinueStatement = "ContinueStatement",
-    DebuggerStatement = "DebuggerStatement",
-    Decorator = "Decorator",
-    DoWhileStatement = "DoWhileStatement",
-    EmptyStatement = "EmptyStatement",
-    ExportAllDeclaration = "ExportAllDeclaration",
-    ExportDefaultDeclaration = "ExportDefaultDeclaration",
-    ExportNamedDeclaration = "ExportNamedDeclaration",
-    ExportSpecifier = "ExportSpecifier",
-    ExpressionStatement = "ExpressionStatement",
-    ForInStatement = "ForInStatement",
-    ForOfStatement = "ForOfStatement",
-    ForStatement = "ForStatement",
-    FunctionDeclaration = "FunctionDeclaration",
-    FunctionExpression = "FunctionExpression",
-    Identifier = "Identifier",
-    IfStatement = "IfStatement",
-    Import = "Import",
-    ImportDeclaration = "ImportDeclaration",
-    ImportDefaultSpecifier = "ImportDefaultSpecifier",
-    ImportNamespaceSpecifier = "ImportNamespaceSpecifier",
-    ImportSpecifier = "ImportSpecifier",
-    JSXAttribute = "JSXAttribute",
-    JSXClosingElement = "JSXClosingElement",
-    JSXClosingFragment = "JSXClosingFragment",
-    JSXElement = "JSXElement",
-    JSXEmptyExpression = "JSXEmptyExpression",
-    JSXExpressionContainer = "JSXExpressionContainer",
-    JSXFragment = "JSXFragment",
-    JSXIdentifier = "JSXIdentifier",
-    JSXMemberExpression = "JSXMemberExpression",
-    JSXOpeningElement = "JSXOpeningElement",
-    JSXOpeningFragment = "JSXOpeningFragment",
-    JSXSpreadAttribute = "JSXSpreadAttribute",
-    JSXSpreadChild = "JSXSpreadChild",
-    JSXText = "JSXText",
-    LabeledStatement = "LabeledStatement",
-    Literal = "Literal",
-    LogicalExpression = "LogicalExpression",
-    MemberExpression = "MemberExpression",
-    MetaProperty = "MetaProperty",
-    MethodDefinition = "MethodDefinition",
-    NewExpression = "NewExpression",
-    ObjectExpression = "ObjectExpression",
-    ObjectPattern = "ObjectPattern",
-    OptionalCallExpression = "OptionalCallExpression",
-    OptionalMemberExpression = "OptionalMemberExpression",
-    Program = "Program",
-    Property = "Property",
-    RestElement = "RestElement",
-    ReturnStatement = "ReturnStatement",
-    SequenceExpression = "SequenceExpression",
-    SpreadElement = "SpreadElement",
-    Super = "Super",
-    SwitchCase = "SwitchCase",
-    SwitchStatement = "SwitchStatement",
-    TaggedTemplateExpression = "TaggedTemplateExpression",
-    TemplateElement = "TemplateElement",
-    TemplateLiteral = "TemplateLiteral",
-    ThisExpression = "ThisExpression",
-    ThrowStatement = "ThrowStatement",
-    TryStatement = "TryStatement",
-    UnaryExpression = "UnaryExpression",
-    UpdateExpression = "UpdateExpression",
-    VariableDeclaration = "VariableDeclaration",
-    VariableDeclarator = "VariableDeclarator",
-    WhileStatement = "WhileStatement",
-    WithStatement = "WithStatement",
-    YieldExpression = "YieldExpression",
-    /**
-     * TS-prefixed nodes
-     */
-    TSAbstractClassProperty = "TSAbstractClassProperty",
-    TSAbstractKeyword = "TSAbstractKeyword",
-    TSAbstractMethodDefinition = "TSAbstractMethodDefinition",
-    TSAnyKeyword = "TSAnyKeyword",
-    TSArrayType = "TSArrayType",
-    TSAsExpression = "TSAsExpression",
-    TSAsyncKeyword = "TSAsyncKeyword",
-    TSBooleanKeyword = "TSBooleanKeyword",
-    TSBigIntKeyword = "TSBigIntKeyword",
-    TSConditionalType = "TSConditionalType",
-    TSConstructorType = "TSConstructorType",
-    TSCallSignatureDeclaration = "TSCallSignatureDeclaration",
-    TSClassImplements = "TSClassImplements",
-    TSConstructSignatureDeclaration = "TSConstructSignatureDeclaration",
-    TSDeclareKeyword = "TSDeclareKeyword",
-    TSDeclareFunction = "TSDeclareFunction",
-    TSEmptyBodyFunctionExpression = "TSEmptyBodyFunctionExpression",
-    TSEnumDeclaration = "TSEnumDeclaration",
-    TSEnumMember = "TSEnumMember",
-    TSExportAssignment = "TSExportAssignment",
-    TSExportKeyword = "TSExportKeyword",
-    TSExternalModuleReference = "TSExternalModuleReference",
-    TSImportType = "TSImportType",
-    TSInferType = "TSInferType",
-    TSLiteralType = "TSLiteralType",
-    TSIndexedAccessType = "TSIndexedAccessType",
-    TSIndexSignature = "TSIndexSignature",
-    TSInterfaceBody = "TSInterfaceBody",
-    TSInterfaceDeclaration = "TSInterfaceDeclaration",
-    TSInterfaceHeritage = "TSInterfaceHeritage",
-    TSImportEqualsDeclaration = "TSImportEqualsDeclaration",
-    TSFunctionType = "TSFunctionType",
-    TSMethodSignature = "TSMethodSignature",
-    TSModuleBlock = "TSModuleBlock",
-    TSModuleDeclaration = "TSModuleDeclaration",
-    TSNamespaceExportDeclaration = "TSNamespaceExportDeclaration",
-    TSNonNullExpression = "TSNonNullExpression",
-    TSNeverKeyword = "TSNeverKeyword",
-    TSNullKeyword = "TSNullKeyword",
-    TSNumberKeyword = "TSNumberKeyword",
-    TSMappedType = "TSMappedType",
-    TSObjectKeyword = "TSObjectKeyword",
-    TSParameterProperty = "TSParameterProperty",
-    TSPrivateKeyword = "TSPrivateKeyword",
-    TSPropertySignature = "TSPropertySignature",
-    TSProtectedKeyword = "TSProtectedKeyword",
-    TSPublicKeyword = "TSPublicKeyword",
-    TSQualifiedName = "TSQualifiedName",
-    TSReadonlyKeyword = "TSReadonlyKeyword",
-    TSRestType = "TSRestType",
-    TSStaticKeyword = "TSStaticKeyword",
-    TSStringKeyword = "TSStringKeyword",
-    TSSymbolKeyword = "TSSymbolKeyword",
-    TSThisType = "TSThisType",
-    TSTypeAnnotation = "TSTypeAnnotation",
-    TSTypeAliasDeclaration = "TSTypeAliasDeclaration",
-    TSTypeAssertion = "TSTypeAssertion",
-    TSTypeLiteral = "TSTypeLiteral",
-    TSTypeOperator = "TSTypeOperator",
-    TSTypeParameter = "TSTypeParameter",
-    TSTypeParameterDeclaration = "TSTypeParameterDeclaration",
-    TSTypeParameterInstantiation = "TSTypeParameterInstantiation",
-    TSTypePredicate = "TSTypePredicate",
-    TSTypeReference = "TSTypeReference",
-    TSTypeQuery = "TSTypeQuery",
-    TSIntersectionType = "TSIntersectionType",
-    TSTupleType = "TSTupleType",
-    TSOptionalType = "TSOptionalType",
-    TSParenthesizedType = "TSParenthesizedType",
-    TSUnionType = "TSUnionType",
-    TSUndefinedKeyword = "TSUndefinedKeyword",
-    TSUnknownKeyword = "TSUnknownKeyword",
-    TSVoidKeyword = "TSVoidKeyword"
-}
-export declare enum AST_TOKEN_TYPES {
-    Boolean = "Boolean",
-    Identifier = "Identifier",
-    JSXIdentifier = "JSXIdentifier",
-    JSXText = "JSXText",
-    Keyword = "Keyword",
-    Null = "Null",
-    Numeric = "Numeric",
-    Punctuator = "Punctuator",
-    RegularExpression = "RegularExpression",
-    String = "String",
-    Template = "Template",
-    Block = "Block",
-    Line = "Line"
-}
-//# sourceMappingURL=ast-node-types.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts.map
deleted file mode 100644
index 3c6fc53..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ast-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ast-node-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js
deleted file mode 100644
index e1e723d..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js
+++ /dev/null
@@ -1,185 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AST_NODE_TYPES;
-(function (AST_NODE_TYPES) {
-    AST_NODE_TYPES["ArrayExpression"] = "ArrayExpression";
-    AST_NODE_TYPES["ArrayPattern"] = "ArrayPattern";
-    AST_NODE_TYPES["ArrowFunctionExpression"] = "ArrowFunctionExpression";
-    AST_NODE_TYPES["AssignmentExpression"] = "AssignmentExpression";
-    AST_NODE_TYPES["AssignmentPattern"] = "AssignmentPattern";
-    AST_NODE_TYPES["AwaitExpression"] = "AwaitExpression";
-    AST_NODE_TYPES["BigIntLiteral"] = "BigIntLiteral";
-    AST_NODE_TYPES["BinaryExpression"] = "BinaryExpression";
-    AST_NODE_TYPES["BlockStatement"] = "BlockStatement";
-    AST_NODE_TYPES["BreakStatement"] = "BreakStatement";
-    AST_NODE_TYPES["CallExpression"] = "CallExpression";
-    AST_NODE_TYPES["CatchClause"] = "CatchClause";
-    AST_NODE_TYPES["ClassBody"] = "ClassBody";
-    AST_NODE_TYPES["ClassDeclaration"] = "ClassDeclaration";
-    AST_NODE_TYPES["ClassExpression"] = "ClassExpression";
-    AST_NODE_TYPES["ClassProperty"] = "ClassProperty";
-    AST_NODE_TYPES["ConditionalExpression"] = "ConditionalExpression";
-    AST_NODE_TYPES["ContinueStatement"] = "ContinueStatement";
-    AST_NODE_TYPES["DebuggerStatement"] = "DebuggerStatement";
-    AST_NODE_TYPES["Decorator"] = "Decorator";
-    AST_NODE_TYPES["DoWhileStatement"] = "DoWhileStatement";
-    AST_NODE_TYPES["EmptyStatement"] = "EmptyStatement";
-    AST_NODE_TYPES["ExportAllDeclaration"] = "ExportAllDeclaration";
-    AST_NODE_TYPES["ExportDefaultDeclaration"] = "ExportDefaultDeclaration";
-    AST_NODE_TYPES["ExportNamedDeclaration"] = "ExportNamedDeclaration";
-    AST_NODE_TYPES["ExportSpecifier"] = "ExportSpecifier";
-    AST_NODE_TYPES["ExpressionStatement"] = "ExpressionStatement";
-    AST_NODE_TYPES["ForInStatement"] = "ForInStatement";
-    AST_NODE_TYPES["ForOfStatement"] = "ForOfStatement";
-    AST_NODE_TYPES["ForStatement"] = "ForStatement";
-    AST_NODE_TYPES["FunctionDeclaration"] = "FunctionDeclaration";
-    AST_NODE_TYPES["FunctionExpression"] = "FunctionExpression";
-    AST_NODE_TYPES["Identifier"] = "Identifier";
-    AST_NODE_TYPES["IfStatement"] = "IfStatement";
-    AST_NODE_TYPES["Import"] = "Import";
-    AST_NODE_TYPES["ImportDeclaration"] = "ImportDeclaration";
-    AST_NODE_TYPES["ImportDefaultSpecifier"] = "ImportDefaultSpecifier";
-    AST_NODE_TYPES["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier";
-    AST_NODE_TYPES["ImportSpecifier"] = "ImportSpecifier";
-    AST_NODE_TYPES["JSXAttribute"] = "JSXAttribute";
-    AST_NODE_TYPES["JSXClosingElement"] = "JSXClosingElement";
-    AST_NODE_TYPES["JSXClosingFragment"] = "JSXClosingFragment";
-    AST_NODE_TYPES["JSXElement"] = "JSXElement";
-    AST_NODE_TYPES["JSXEmptyExpression"] = "JSXEmptyExpression";
-    AST_NODE_TYPES["JSXExpressionContainer"] = "JSXExpressionContainer";
-    AST_NODE_TYPES["JSXFragment"] = "JSXFragment";
-    AST_NODE_TYPES["JSXIdentifier"] = "JSXIdentifier";
-    AST_NODE_TYPES["JSXMemberExpression"] = "JSXMemberExpression";
-    AST_NODE_TYPES["JSXOpeningElement"] = "JSXOpeningElement";
-    AST_NODE_TYPES["JSXOpeningFragment"] = "JSXOpeningFragment";
-    AST_NODE_TYPES["JSXSpreadAttribute"] = "JSXSpreadAttribute";
-    AST_NODE_TYPES["JSXSpreadChild"] = "JSXSpreadChild";
-    AST_NODE_TYPES["JSXText"] = "JSXText";
-    AST_NODE_TYPES["LabeledStatement"] = "LabeledStatement";
-    AST_NODE_TYPES["Literal"] = "Literal";
-    AST_NODE_TYPES["LogicalExpression"] = "LogicalExpression";
-    AST_NODE_TYPES["MemberExpression"] = "MemberExpression";
-    AST_NODE_TYPES["MetaProperty"] = "MetaProperty";
-    AST_NODE_TYPES["MethodDefinition"] = "MethodDefinition";
-    AST_NODE_TYPES["NewExpression"] = "NewExpression";
-    AST_NODE_TYPES["ObjectExpression"] = "ObjectExpression";
-    AST_NODE_TYPES["ObjectPattern"] = "ObjectPattern";
-    AST_NODE_TYPES["OptionalCallExpression"] = "OptionalCallExpression";
-    AST_NODE_TYPES["OptionalMemberExpression"] = "OptionalMemberExpression";
-    AST_NODE_TYPES["Program"] = "Program";
-    AST_NODE_TYPES["Property"] = "Property";
-    AST_NODE_TYPES["RestElement"] = "RestElement";
-    AST_NODE_TYPES["ReturnStatement"] = "ReturnStatement";
-    AST_NODE_TYPES["SequenceExpression"] = "SequenceExpression";
-    AST_NODE_TYPES["SpreadElement"] = "SpreadElement";
-    AST_NODE_TYPES["Super"] = "Super";
-    AST_NODE_TYPES["SwitchCase"] = "SwitchCase";
-    AST_NODE_TYPES["SwitchStatement"] = "SwitchStatement";
-    AST_NODE_TYPES["TaggedTemplateExpression"] = "TaggedTemplateExpression";
-    AST_NODE_TYPES["TemplateElement"] = "TemplateElement";
-    AST_NODE_TYPES["TemplateLiteral"] = "TemplateLiteral";
-    AST_NODE_TYPES["ThisExpression"] = "ThisExpression";
-    AST_NODE_TYPES["ThrowStatement"] = "ThrowStatement";
-    AST_NODE_TYPES["TryStatement"] = "TryStatement";
-    AST_NODE_TYPES["UnaryExpression"] = "UnaryExpression";
-    AST_NODE_TYPES["UpdateExpression"] = "UpdateExpression";
-    AST_NODE_TYPES["VariableDeclaration"] = "VariableDeclaration";
-    AST_NODE_TYPES["VariableDeclarator"] = "VariableDeclarator";
-    AST_NODE_TYPES["WhileStatement"] = "WhileStatement";
-    AST_NODE_TYPES["WithStatement"] = "WithStatement";
-    AST_NODE_TYPES["YieldExpression"] = "YieldExpression";
-    /**
-     * TS-prefixed nodes
-     */
-    AST_NODE_TYPES["TSAbstractClassProperty"] = "TSAbstractClassProperty";
-    AST_NODE_TYPES["TSAbstractKeyword"] = "TSAbstractKeyword";
-    AST_NODE_TYPES["TSAbstractMethodDefinition"] = "TSAbstractMethodDefinition";
-    AST_NODE_TYPES["TSAnyKeyword"] = "TSAnyKeyword";
-    AST_NODE_TYPES["TSArrayType"] = "TSArrayType";
-    AST_NODE_TYPES["TSAsExpression"] = "TSAsExpression";
-    AST_NODE_TYPES["TSAsyncKeyword"] = "TSAsyncKeyword";
-    AST_NODE_TYPES["TSBooleanKeyword"] = "TSBooleanKeyword";
-    AST_NODE_TYPES["TSBigIntKeyword"] = "TSBigIntKeyword";
-    AST_NODE_TYPES["TSConditionalType"] = "TSConditionalType";
-    AST_NODE_TYPES["TSConstructorType"] = "TSConstructorType";
-    AST_NODE_TYPES["TSCallSignatureDeclaration"] = "TSCallSignatureDeclaration";
-    AST_NODE_TYPES["TSClassImplements"] = "TSClassImplements";
-    AST_NODE_TYPES["TSConstructSignatureDeclaration"] = "TSConstructSignatureDeclaration";
-    AST_NODE_TYPES["TSDeclareKeyword"] = "TSDeclareKeyword";
-    AST_NODE_TYPES["TSDeclareFunction"] = "TSDeclareFunction";
-    AST_NODE_TYPES["TSEmptyBodyFunctionExpression"] = "TSEmptyBodyFunctionExpression";
-    AST_NODE_TYPES["TSEnumDeclaration"] = "TSEnumDeclaration";
-    AST_NODE_TYPES["TSEnumMember"] = "TSEnumMember";
-    AST_NODE_TYPES["TSExportAssignment"] = "TSExportAssignment";
-    AST_NODE_TYPES["TSExportKeyword"] = "TSExportKeyword";
-    AST_NODE_TYPES["TSExternalModuleReference"] = "TSExternalModuleReference";
-    AST_NODE_TYPES["TSImportType"] = "TSImportType";
-    AST_NODE_TYPES["TSInferType"] = "TSInferType";
-    AST_NODE_TYPES["TSLiteralType"] = "TSLiteralType";
-    AST_NODE_TYPES["TSIndexedAccessType"] = "TSIndexedAccessType";
-    AST_NODE_TYPES["TSIndexSignature"] = "TSIndexSignature";
-    AST_NODE_TYPES["TSInterfaceBody"] = "TSInterfaceBody";
-    AST_NODE_TYPES["TSInterfaceDeclaration"] = "TSInterfaceDeclaration";
-    AST_NODE_TYPES["TSInterfaceHeritage"] = "TSInterfaceHeritage";
-    AST_NODE_TYPES["TSImportEqualsDeclaration"] = "TSImportEqualsDeclaration";
-    AST_NODE_TYPES["TSFunctionType"] = "TSFunctionType";
-    AST_NODE_TYPES["TSMethodSignature"] = "TSMethodSignature";
-    AST_NODE_TYPES["TSModuleBlock"] = "TSModuleBlock";
-    AST_NODE_TYPES["TSModuleDeclaration"] = "TSModuleDeclaration";
-    AST_NODE_TYPES["TSNamespaceExportDeclaration"] = "TSNamespaceExportDeclaration";
-    AST_NODE_TYPES["TSNonNullExpression"] = "TSNonNullExpression";
-    AST_NODE_TYPES["TSNeverKeyword"] = "TSNeverKeyword";
-    AST_NODE_TYPES["TSNullKeyword"] = "TSNullKeyword";
-    AST_NODE_TYPES["TSNumberKeyword"] = "TSNumberKeyword";
-    AST_NODE_TYPES["TSMappedType"] = "TSMappedType";
-    AST_NODE_TYPES["TSObjectKeyword"] = "TSObjectKeyword";
-    AST_NODE_TYPES["TSParameterProperty"] = "TSParameterProperty";
-    AST_NODE_TYPES["TSPrivateKeyword"] = "TSPrivateKeyword";
-    AST_NODE_TYPES["TSPropertySignature"] = "TSPropertySignature";
-    AST_NODE_TYPES["TSProtectedKeyword"] = "TSProtectedKeyword";
-    AST_NODE_TYPES["TSPublicKeyword"] = "TSPublicKeyword";
-    AST_NODE_TYPES["TSQualifiedName"] = "TSQualifiedName";
-    AST_NODE_TYPES["TSReadonlyKeyword"] = "TSReadonlyKeyword";
-    AST_NODE_TYPES["TSRestType"] = "TSRestType";
-    AST_NODE_TYPES["TSStaticKeyword"] = "TSStaticKeyword";
-    AST_NODE_TYPES["TSStringKeyword"] = "TSStringKeyword";
-    AST_NODE_TYPES["TSSymbolKeyword"] = "TSSymbolKeyword";
-    AST_NODE_TYPES["TSThisType"] = "TSThisType";
-    AST_NODE_TYPES["TSTypeAnnotation"] = "TSTypeAnnotation";
-    AST_NODE_TYPES["TSTypeAliasDeclaration"] = "TSTypeAliasDeclaration";
-    AST_NODE_TYPES["TSTypeAssertion"] = "TSTypeAssertion";
-    AST_NODE_TYPES["TSTypeLiteral"] = "TSTypeLiteral";
-    AST_NODE_TYPES["TSTypeOperator"] = "TSTypeOperator";
-    AST_NODE_TYPES["TSTypeParameter"] = "TSTypeParameter";
-    AST_NODE_TYPES["TSTypeParameterDeclaration"] = "TSTypeParameterDeclaration";
-    AST_NODE_TYPES["TSTypeParameterInstantiation"] = "TSTypeParameterInstantiation";
-    AST_NODE_TYPES["TSTypePredicate"] = "TSTypePredicate";
-    AST_NODE_TYPES["TSTypeReference"] = "TSTypeReference";
-    AST_NODE_TYPES["TSTypeQuery"] = "TSTypeQuery";
-    AST_NODE_TYPES["TSIntersectionType"] = "TSIntersectionType";
-    AST_NODE_TYPES["TSTupleType"] = "TSTupleType";
-    AST_NODE_TYPES["TSOptionalType"] = "TSOptionalType";
-    AST_NODE_TYPES["TSParenthesizedType"] = "TSParenthesizedType";
-    AST_NODE_TYPES["TSUnionType"] = "TSUnionType";
-    AST_NODE_TYPES["TSUndefinedKeyword"] = "TSUndefinedKeyword";
-    AST_NODE_TYPES["TSUnknownKeyword"] = "TSUnknownKeyword";
-    AST_NODE_TYPES["TSVoidKeyword"] = "TSVoidKeyword";
-})(AST_NODE_TYPES = exports.AST_NODE_TYPES || (exports.AST_NODE_TYPES = {}));
-var AST_TOKEN_TYPES;
-(function (AST_TOKEN_TYPES) {
-    AST_TOKEN_TYPES["Boolean"] = "Boolean";
-    AST_TOKEN_TYPES["Identifier"] = "Identifier";
-    AST_TOKEN_TYPES["JSXIdentifier"] = "JSXIdentifier";
-    AST_TOKEN_TYPES["JSXText"] = "JSXText";
-    AST_TOKEN_TYPES["Keyword"] = "Keyword";
-    AST_TOKEN_TYPES["Null"] = "Null";
-    AST_TOKEN_TYPES["Numeric"] = "Numeric";
-    AST_TOKEN_TYPES["Punctuator"] = "Punctuator";
-    AST_TOKEN_TYPES["RegularExpression"] = "RegularExpression";
-    AST_TOKEN_TYPES["String"] = "String";
-    AST_TOKEN_TYPES["Template"] = "Template";
-    // comment types
-    AST_TOKEN_TYPES["Block"] = "Block";
-    AST_TOKEN_TYPES["Line"] = "Line";
-})(AST_TOKEN_TYPES = exports.AST_TOKEN_TYPES || (exports.AST_TOKEN_TYPES = {}));
-//# sourceMappingURL=ast-node-types.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js.map
deleted file mode 100644
index cdb2576..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ast-node-types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ast-node-types.js","sourceRoot":"","sources":["../../src/ts-estree/ast-node-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts
index 0cbb78f..c3aa41b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts
@@ -1,7 +1,6 @@
-import { TSNode } from './ts-nodes';
-import { AST_NODE_TYPES } from './ast-node-types';
-import { Node } from './ts-estree';
+import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/types';
 import * as ts from 'typescript';
+import { TSNode } from './ts-nodes';
 export interface EstreeToTsNodeTypes {
     [AST_NODE_TYPES.ArrayExpression]: ts.ArrayLiteralExpression;
     [AST_NODE_TYPES.ArrayPattern]: ts.ArrayLiteralExpression | ts.ArrayBindingPattern;
@@ -9,12 +8,12 @@
     [AST_NODE_TYPES.AssignmentExpression]: ts.BinaryExpression;
     [AST_NODE_TYPES.AssignmentPattern]: ts.ShorthandPropertyAssignment | ts.BindingElement | ts.BinaryExpression | ts.ParameterDeclaration;
     [AST_NODE_TYPES.AwaitExpression]: ts.AwaitExpression;
-    [AST_NODE_TYPES.BigIntLiteral]: ts.BigIntLiteral;
     [AST_NODE_TYPES.BinaryExpression]: ts.BinaryExpression;
     [AST_NODE_TYPES.BlockStatement]: ts.Block;
     [AST_NODE_TYPES.BreakStatement]: ts.BreakStatement;
     [AST_NODE_TYPES.CallExpression]: ts.CallExpression;
     [AST_NODE_TYPES.CatchClause]: ts.CatchClause;
+    [AST_NODE_TYPES.ChainExpression]: ts.CallExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.NonNullExpression;
     [AST_NODE_TYPES.ClassBody]: ts.ClassDeclaration | ts.ClassExpression;
     [AST_NODE_TYPES.ClassDeclaration]: ts.ClassDeclaration;
     [AST_NODE_TYPES.ClassExpression]: ts.ClassExpression;
@@ -37,9 +36,9 @@
     [AST_NODE_TYPES.FunctionExpression]: ts.FunctionExpression | ts.ConstructorDeclaration | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration;
     [AST_NODE_TYPES.Identifier]: ts.Identifier | ts.ConstructorDeclaration | ts.Token<ts.SyntaxKind.NewKeyword | ts.SyntaxKind.ImportKeyword>;
     [AST_NODE_TYPES.IfStatement]: ts.IfStatement;
-    [AST_NODE_TYPES.Import]: ts.ImportExpression;
     [AST_NODE_TYPES.ImportDeclaration]: ts.ImportDeclaration;
     [AST_NODE_TYPES.ImportDefaultSpecifier]: ts.ImportClause;
+    [AST_NODE_TYPES.ImportExpression]: ts.CallExpression;
     [AST_NODE_TYPES.ImportNamespaceSpecifier]: ts.NamespaceImport;
     [AST_NODE_TYPES.ImportSpecifier]: ts.ImportSpecifier;
     [AST_NODE_TYPES.JSXAttribute]: ts.JsxAttribute;
@@ -57,7 +56,7 @@
     [AST_NODE_TYPES.JSXMemberExpression]: ts.PropertyAccessExpression;
     [AST_NODE_TYPES.JSXText]: ts.JsxText;
     [AST_NODE_TYPES.LabeledStatement]: ts.LabeledStatement;
-    [AST_NODE_TYPES.Literal]: ts.StringLiteral | ts.NumericLiteral | ts.RegularExpressionLiteral | ts.JsxText | ts.NullLiteral | ts.BooleanLiteral;
+    [AST_NODE_TYPES.Literal]: ts.StringLiteral | ts.NumericLiteral | ts.RegularExpressionLiteral | ts.JsxText | ts.NullLiteral | ts.BooleanLiteral | ts.BigIntLiteral;
     [AST_NODE_TYPES.LogicalExpression]: ts.BinaryExpression;
     [AST_NODE_TYPES.MemberExpression]: ts.PropertyAccessExpression | ts.ElementAccessExpression;
     [AST_NODE_TYPES.MetaProperty]: ts.MetaProperty;
@@ -65,8 +64,6 @@
     [AST_NODE_TYPES.NewExpression]: ts.NewExpression;
     [AST_NODE_TYPES.ObjectExpression]: ts.ObjectLiteralExpression;
     [AST_NODE_TYPES.ObjectPattern]: ts.ObjectLiteralExpression | ts.ObjectBindingPattern;
-    [AST_NODE_TYPES.OptionalCallExpression]: ts.CallExpression;
-    [AST_NODE_TYPES.OptionalMemberExpression]: ts.PropertyAccessExpression | ts.ElementAccessExpression;
     [AST_NODE_TYPES.Program]: ts.SourceFile;
     [AST_NODE_TYPES.Property]: ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration | ts.BindingElement;
     [AST_NODE_TYPES.RestElement]: ts.BindingElement | ts.SpreadAssignment | ts.SpreadElement | ts.ParameterDeclaration;
@@ -111,6 +108,7 @@
     [AST_NODE_TYPES.TSMethodSignature]: ts.MethodSignature;
     [AST_NODE_TYPES.TSModuleBlock]: ts.ModuleBlock;
     [AST_NODE_TYPES.TSModuleDeclaration]: ts.ModuleDeclaration;
+    [AST_NODE_TYPES.TSNamedTupleMember]: ts.NamedTupleMember;
     [AST_NODE_TYPES.TSNamespaceExportDeclaration]: ts.NamespaceExportDeclaration;
     [AST_NODE_TYPES.TSNonNullExpression]: ts.NonNullExpression;
     [AST_NODE_TYPES.TSOptionalType]: ts.OptionalTypeNode;
@@ -118,7 +116,7 @@
     [AST_NODE_TYPES.TSParenthesizedType]: ts.ParenthesizedTypeNode;
     [AST_NODE_TYPES.TSPropertySignature]: ts.PropertySignature;
     [AST_NODE_TYPES.TSQualifiedName]: ts.QualifiedName;
-    [AST_NODE_TYPES.TSRestType]: ts.RestTypeNode;
+    [AST_NODE_TYPES.TSRestType]: ts.RestTypeNode | ts.NamedTupleMember;
     [AST_NODE_TYPES.TSThisType]: ts.ThisTypeNode;
     [AST_NODE_TYPES.TSTupleType]: ts.TupleTypeNode;
     [AST_NODE_TYPES.TSTypeAliasDeclaration]: ts.TypeAliasDeclaration;
@@ -167,5 +165,5 @@
  * Maps TSESTree AST Node type to the expected TypeScript AST Node type(s).
  * This mapping is based on the internal logic of the parser.
  */
-export declare type TSESTreeToTSNode<T extends Node = Node> = Extract<TSNode | ts.Token<ts.SyntaxKind.NewKeyword | ts.SyntaxKind.ImportKeyword>, EstreeToTsNodeTypes[T['type']]>;
+export declare type TSESTreeToTSNode<T extends TSESTree.Node = TSESTree.Node> = Extract<TSNode | ts.Token<ts.SyntaxKind.NewKeyword | ts.SyntaxKind.ImportKeyword>, EstreeToTsNodeTypes[T['type']]>;
 //# sourceMappingURL=estree-to-ts-node-types.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map
index 5f9a976..8704471 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"estree-to-ts-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"estree-to-ts-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js
index 04cd0fc..1a133cd 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js
@@ -1,4 +1,4 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-const ast_node_types_1 = require("./ast-node-types");
+const types_1 = require("@typescript-eslint/types");
 //# sourceMappingURL=estree-to-ts-node-types.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map
index bb7fe26..b48e0fd 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map
@@ -1 +1 @@
-{"version":3,"file":"estree-to-ts-node-types.js","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":";;AACA,qDAAkD"}
\ No newline at end of file
+{"version":3,"file":"estree-to-ts-node-types.js","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":";;AAAA,oDAAoE"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts
index 2a01139..37f26a3 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts
@@ -1,6 +1,4 @@
-import * as TSESTree from './ts-estree';
-export { TSESTree };
-export * from './ast-node-types';
+export { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree, } from '@typescript-eslint/types';
 export * from './ts-nodes';
 export * from './estree-to-ts-node-types';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map
index 8c3e424..6a839dc 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js
index e844b61..7f93802 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js
@@ -1,16 +1,21 @@
 "use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
+}) : (function(o, m, k, k2) {
+    if (k2 === undefined) k2 = k;
+    o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-const TSESTree = __importStar(require("./ts-estree"));
-exports.TSESTree = TSESTree;
-__export(require("./ast-node-types"));
+exports.TSESTree = exports.AST_TOKEN_TYPES = exports.AST_NODE_TYPES = void 0;
+// for simplicity and backwards-compatibility
+var types_1 = require("@typescript-eslint/types");
+Object.defineProperty(exports, "AST_NODE_TYPES", { enumerable: true, get: function () { return types_1.AST_NODE_TYPES; } });
+Object.defineProperty(exports, "AST_TOKEN_TYPES", { enumerable: true, get: function () { return types_1.AST_TOKEN_TYPES; } });
+Object.defineProperty(exports, "TSESTree", { enumerable: true, get: function () { return types_1.TSESTree; } });
+__exportStar(require("./ts-nodes"), exports);
+__exportStar(require("./estree-to-ts-node-types"), exports);
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map
index 0b84b6d..5325d5d 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAwC;AAE/B,4BAAQ;AACjB,sCAAiC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,kDAIkC;AAHhC,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,iGAAA,QAAQ,OAAA;AAEV,6CAA2B;AAC3B,4DAA0C"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts
deleted file mode 100644
index cf8b2f9..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts
+++ /dev/null
@@ -1,1064 +0,0 @@
-import { AST_NODE_TYPES, AST_TOKEN_TYPES } from './ast-node-types';
-export interface LineAndColumnData {
-    /**
-     * Line number (1-indexed)
-     */
-    line: number;
-    /**
-     * Column number on the line (0-indexed)
-     */
-    column: number;
-}
-export interface SourceLocation {
-    /**
-     * The position of the first character of the parsed source region
-     */
-    start: LineAndColumnData;
-    /**
-     * The position of the first character after the parsed source region
-     */
-    end: LineAndColumnData;
-}
-export declare type Range = [number, number];
-export interface BaseNode {
-    /**
-     * The source location information of the node.
-     */
-    loc: SourceLocation;
-    /**
-     * An array of two numbers.
-     * Both numbers are a 0-based index which is the position in the array of source code characters.
-     * The first is the start position of the node, the second is the end position of the node.
-     */
-    range: Range;
-    /**
-     * The parent node of the current node
-     */
-    parent?: Node;
-}
-interface BaseToken extends BaseNode {
-    value: string;
-}
-export interface BooleanToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Boolean;
-}
-export interface IdentifierToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Identifier;
-}
-export interface JSXIdentifierToken extends BaseToken {
-    type: AST_TOKEN_TYPES.JSXIdentifier;
-}
-export interface JSXTextToken extends BaseToken {
-    type: AST_TOKEN_TYPES.JSXText;
-}
-export interface KeywordToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Keyword;
-}
-export interface NullToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Null;
-}
-export interface NumericToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Numeric;
-}
-export interface PunctuatorToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Punctuator;
-}
-export interface RegularExpressionToken extends BaseToken {
-    type: AST_TOKEN_TYPES.RegularExpression;
-    regex: {
-        pattern: string;
-        flags: string;
-    };
-}
-export interface StringToken extends BaseToken {
-    type: AST_TOKEN_TYPES.String;
-}
-export interface TemplateToken extends BaseToken {
-    type: AST_TOKEN_TYPES.Template;
-}
-export interface BlockComment extends BaseToken {
-    type: AST_TOKEN_TYPES.Block;
-}
-export interface LineComment extends BaseToken {
-    type: AST_TOKEN_TYPES.Line;
-}
-export declare type Comment = BlockComment | LineComment;
-export declare type Token = BooleanToken | IdentifierToken | JSXIdentifierToken | JSXTextToken | KeywordToken | NullToken | NumericToken | PunctuatorToken | RegularExpressionToken | StringToken | TemplateToken;
-export declare type OptionalRangeAndLoc<T> = Pick<T, Exclude<keyof T, 'range' | 'loc'>> & {
-    range?: Range;
-    loc?: SourceLocation;
-};
-export declare type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BlockStatement | BreakStatement | CallExpression | CatchClause | ClassBody | ClassDeclaration | ClassExpression | ClassProperty | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | Import | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXMemberExpression | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | OptionalCallExpression | OptionalMemberExpression | Program | Property | RestElement | ReturnStatement | SequenceExpression | SpreadElement | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | TSAbstractClassProperty | TSAbstractKeyword | TSAbstractMethodDefinition | TSAnyKeyword | TSArrayType | TSAsExpression | TSAsyncKeyword | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSClassImplements | TSConditionalType | TSConstructorType | TSConstructSignatureDeclaration | TSDeclareFunction | TSDeclareKeyword | TSEmptyBodyFunctionExpression | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExportKeyword | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexedAccessType | TSIndexSignature | TSInferType | TSInterfaceDeclaration | TSInterfaceBody | TSInterfaceHeritage | TSIntersectionType | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPropertySignature | TSPublicKeyword | TSPrivateKeyword | TSProtectedKeyword | TSQualifiedName | TSReadonlyKeyword | TSRestType | TSStaticKeyword | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | UpdateExpression | UnaryExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression;
-export declare type Accessibility = 'public' | 'protected' | 'private';
-export declare type BindingPattern = ArrayPattern | ObjectPattern;
-export declare type BindingName = BindingPattern | Identifier;
-export declare type ClassElement = ClassProperty | FunctionExpression | MethodDefinition | TSAbstractClassProperty | TSAbstractMethodDefinition | TSEmptyBodyFunctionExpression | TSIndexSignature;
-export declare type ClassProperty = ClassPropertyComputedName | ClassPropertyNonComputedName;
-export declare type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration | TSDeclareFunction | TSImportEqualsDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSNamespaceExportDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration;
-export declare type EntityName = Identifier | TSQualifiedName;
-export declare type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | TSDeclareFunction | TSEnumDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSTypeAliasDeclaration | VariableDeclaration;
-export declare type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ConditionalExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | TSAsExpression | TSUnaryExpression | YieldExpression;
-export declare type ExpressionWithTypeArguments = TSClassImplements | TSInterfaceHeritage;
-export declare type ForInitialiser = Expression | VariableDeclaration;
-export declare type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier;
-export declare type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement;
-export declare type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText;
-export declare type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer;
-export declare type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression;
-export declare type LeftHandSideExpression = CallExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | OptionalCallExpression | OptionalMemberExpression | PrimaryExpression | TaggedTemplateExpression | TSNonNullExpression | TSAsExpression;
-export declare type Literal = BooleanLiteral | NumberLiteral | NullLiteral | RegExpLiteral | StringLiteral;
-export declare type LiteralExpression = BigIntLiteral | Literal | TemplateLiteral;
-export declare type MemberExpression = MemberExpressionComputedName | MemberExpressionNonComputedName;
-export declare type MethodDefinition = MethodDefinitionComputedName | MethodDefinitionNonComputedName;
-export declare type Modifier = TSAbstractKeyword | TSAsyncKeyword | TSDeclareKeyword | TSExportKeyword | TSPublicKeyword | TSPrivateKeyword | TSProtectedKeyword | TSReadonlyKeyword | TSStaticKeyword;
-export declare type ObjectLiteralElementLike = MethodDefinition | Property | SpreadElement | TSAbstractMethodDefinition;
-export declare type OptionalMemberExpression = OptionalMemberExpressionComputedName | OptionalMemberExpressionNonComputedName;
-export declare type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier | TSParameterProperty;
-export declare type DestructuringPattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
-export declare type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression | TSNullKeyword;
-export declare type Property = PropertyComputedName | PropertyNonComputedName;
-export declare type PropertyName = PropertyNameComputed | PropertyNameNonComputed;
-export declare type PropertyNameComputed = Expression;
-export declare type PropertyNameNonComputed = Identifier | StringLiteral | NumberLiteral;
-export declare type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | TSModuleBlock | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement;
-export declare type TSAbstractClassProperty = TSAbstractClassPropertyComputedName | TSAbstractClassPropertyNonComputedName;
-export declare type TSAbstractMethodDefinition = TSAbstractMethodDefinitionComputedName | TSAbstractMethodDefinitionNonComputedName;
-export declare type TSMethodSignature = TSMethodSignatureComputedName | TSMethodSignatureNonComputedName;
-export declare type TSPropertySignature = TSPropertySignatureComputedName | TSPropertySignatureNonComputedName;
-export declare type TSEnumMember = TSEnumMemberComputedName | TSEnumMemberNonComputedName;
-export declare type TSUnaryExpression = AwaitExpression | LeftHandSideExpression | TSTypeAssertion | UnaryExpression | UpdateExpression;
-export declare type TypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSIndexSignature | TSMethodSignature | TSPropertySignature;
-export declare type TypeNode = ThisExpression | TSAnyKeyword | TSArrayType | TSBigIntKeyword | TSBooleanKeyword | TSClassImplements | TSConditionalType | TSConstructorType | TSFunctionType | TSImportType | TSIndexedAccessType | TSInferType | TSInterfaceHeritage | TSIntersectionType | TSLiteralType | TSMappedType | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParenthesizedType | TSRestType | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSTypeLiteral | TSTypeOperator | TSTypePredicate | TSTypeReference | TSTypeQuery | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword;
-interface BinaryExpressionBase extends BaseNode {
-    operator: string;
-    left: Expression;
-    right: Expression;
-}
-interface CallExpressionBase extends BaseNode {
-    callee: LeftHandSideExpression;
-    arguments: Expression[];
-    typeParameters?: TSTypeParameterInstantiation;
-    optional: boolean;
-}
-interface ClassDeclarationBase extends BaseNode {
-    typeParameters?: TSTypeParameterDeclaration;
-    superTypeParameters?: TSTypeParameterInstantiation;
-    id: Identifier | null;
-    body: ClassBody;
-    superClass: LeftHandSideExpression | null;
-    implements?: ExpressionWithTypeArguments[];
-    abstract?: boolean;
-    declare?: boolean;
-    decorators?: Decorator[];
-}
-/** this should not be directly used - instead use ClassPropertyComputedNameBase or ClassPropertyNonComputedNameBase */
-interface ClassPropertyBase extends BaseNode {
-    key: PropertyName;
-    value: Expression | null;
-    computed: boolean;
-    static: boolean;
-    declare: boolean;
-    readonly?: boolean;
-    decorators?: Decorator[];
-    accessibility?: Accessibility;
-    optional?: boolean;
-    definite?: boolean;
-    typeAnnotation?: TSTypeAnnotation;
-}
-interface ClassPropertyComputedNameBase extends ClassPropertyBase {
-    key: PropertyNameComputed;
-    computed: true;
-}
-interface ClassPropertyNonComputedNameBase extends ClassPropertyBase {
-    key: PropertyNameNonComputed;
-    computed: false;
-}
-interface FunctionDeclarationBase extends BaseNode {
-    id: Identifier | null;
-    generator: boolean;
-    expression: boolean;
-    async: boolean;
-    params: Parameter[];
-    body?: BlockStatement | null;
-    returnType?: TSTypeAnnotation;
-    typeParameters?: TSTypeParameterDeclaration;
-    declare?: boolean;
-}
-interface FunctionSignatureBase extends BaseNode {
-    params: Parameter[];
-    returnType?: TSTypeAnnotation;
-    typeParameters?: TSTypeParameterDeclaration;
-}
-interface LiteralBase extends BaseNode {
-    raw: string;
-    value: boolean | number | RegExp | string | null;
-    regex?: {
-        pattern: string;
-        flags: string;
-    };
-}
-/** this should not be directly used - instead use MemberExpressionComputedNameBase or MemberExpressionNonComputedNameBase */
-interface MemberExpressionBase extends BaseNode {
-    object: LeftHandSideExpression;
-    property: Expression | Identifier;
-    computed: boolean;
-    optional: boolean;
-}
-interface MemberExpressionComputedNameBase extends MemberExpressionBase {
-    property: Expression;
-    computed: true;
-}
-interface MemberExpressionNonComputedNameBase extends MemberExpressionBase {
-    property: Identifier;
-    computed: false;
-}
-/** this should not be directly used - instead use MethodDefinitionComputedNameBase or MethodDefinitionNonComputedNameBase */
-interface MethodDefinitionBase extends BaseNode {
-    key: PropertyName;
-    value: FunctionExpression | TSEmptyBodyFunctionExpression;
-    computed: boolean;
-    static: boolean;
-    kind: 'method' | 'get' | 'set' | 'constructor';
-    decorators?: Decorator[];
-    accessibility?: Accessibility;
-    typeParameters?: TSTypeParameterDeclaration;
-}
-interface MethodDefinitionComputedNameBase extends MethodDefinitionBase {
-    key: PropertyNameComputed;
-    computed: true;
-}
-interface MethodDefinitionNonComputedNameBase extends MethodDefinitionBase {
-    key: PropertyNameNonComputed;
-    computed: false;
-}
-interface PropertyBase extends BaseNode {
-    type: AST_NODE_TYPES.Property;
-    key: PropertyName;
-    value: Expression | AssignmentPattern | BindingName;
-    computed: boolean;
-    method: boolean;
-    shorthand: boolean;
-    kind: 'init' | 'get' | 'set';
-}
-interface TSEnumMemberBase extends BaseNode {
-    type: AST_NODE_TYPES.TSEnumMember;
-    id: PropertyNameNonComputed | PropertyNameComputed;
-    initializer?: Expression;
-    computed?: boolean;
-}
-interface TSHeritageBase extends BaseNode {
-    expression: Expression;
-    typeParameters?: TSTypeParameterInstantiation;
-}
-interface TSMethodSignatureBase extends BaseNode {
-    type: AST_NODE_TYPES.TSMethodSignature;
-    key: PropertyName;
-    computed: boolean;
-    params: Parameter[];
-    optional?: boolean;
-    returnType?: TSTypeAnnotation;
-    readonly?: boolean;
-    typeParameters?: TSTypeParameterDeclaration;
-    accessibility?: Accessibility;
-    export?: boolean;
-    static?: boolean;
-}
-interface TSPropertySignatureBase extends BaseNode {
-    type: AST_NODE_TYPES.TSPropertySignature;
-    key: PropertyName;
-    optional?: boolean;
-    computed: boolean;
-    typeAnnotation?: TSTypeAnnotation;
-    initializer?: Expression;
-    readonly?: boolean;
-    static?: boolean;
-    export?: boolean;
-    accessibility?: Accessibility;
-}
-interface UnaryExpressionBase extends BaseNode {
-    operator: string;
-    prefix: boolean;
-    argument: LeftHandSideExpression | Literal | UnaryExpression;
-}
-export interface ArrayExpression extends BaseNode {
-    type: AST_NODE_TYPES.ArrayExpression;
-    elements: Expression[];
-}
-export interface ArrayPattern extends BaseNode {
-    type: AST_NODE_TYPES.ArrayPattern;
-    elements: (DestructuringPattern | null)[];
-    typeAnnotation?: TSTypeAnnotation;
-    optional?: boolean;
-    decorators?: Decorator[];
-}
-export interface ArrowFunctionExpression extends BaseNode {
-    type: AST_NODE_TYPES.ArrowFunctionExpression;
-    generator: boolean;
-    id: null;
-    params: Parameter[];
-    body: Expression | BlockStatement;
-    async: boolean;
-    expression: boolean;
-    returnType?: TSTypeAnnotation;
-    typeParameters?: TSTypeParameterDeclaration;
-}
-export interface AssignmentExpression extends BinaryExpressionBase {
-    type: AST_NODE_TYPES.AssignmentExpression;
-}
-export interface AssignmentPattern extends BaseNode {
-    type: AST_NODE_TYPES.AssignmentPattern;
-    left: BindingName;
-    right?: Expression;
-    typeAnnotation?: TSTypeAnnotation;
-    optional?: boolean;
-    decorators?: Decorator[];
-}
-export interface AwaitExpression extends BaseNode {
-    type: AST_NODE_TYPES.AwaitExpression;
-    argument: TSUnaryExpression;
-}
-export interface BigIntLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.BigIntLiteral;
-}
-export interface BinaryExpression extends BinaryExpressionBase {
-    type: AST_NODE_TYPES.BinaryExpression;
-}
-export interface BlockStatement extends BaseNode {
-    type: AST_NODE_TYPES.BlockStatement;
-    body: Statement[];
-}
-export interface BooleanLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.Literal;
-    value: boolean;
-}
-export interface BreakStatement extends BaseNode {
-    type: AST_NODE_TYPES.BreakStatement;
-    label: Identifier | null;
-}
-export interface CallExpression extends CallExpressionBase {
-    type: AST_NODE_TYPES.CallExpression;
-    optional: false;
-}
-export interface CatchClause extends BaseNode {
-    type: AST_NODE_TYPES.CatchClause;
-    param: BindingName | null;
-    body: BlockStatement;
-}
-export interface ClassBody extends BaseNode {
-    type: AST_NODE_TYPES.ClassBody;
-    body: ClassElement[];
-}
-export interface ClassDeclaration extends ClassDeclarationBase {
-    type: AST_NODE_TYPES.ClassDeclaration;
-}
-export interface ClassExpression extends ClassDeclarationBase {
-    type: AST_NODE_TYPES.ClassExpression;
-}
-export interface ClassPropertyComputedName extends ClassPropertyComputedNameBase {
-    type: AST_NODE_TYPES.ClassProperty;
-}
-export interface ClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase {
-    type: AST_NODE_TYPES.ClassProperty;
-}
-export interface ConditionalExpression extends BaseNode {
-    type: AST_NODE_TYPES.ConditionalExpression;
-    test: Expression;
-    consequent: Expression;
-    alternate: Expression;
-}
-export interface ContinueStatement extends BaseNode {
-    type: AST_NODE_TYPES.ContinueStatement;
-    label: Identifier | null;
-}
-export interface DebuggerStatement extends BaseNode {
-    type: AST_NODE_TYPES.DebuggerStatement;
-}
-export interface Decorator extends BaseNode {
-    type: AST_NODE_TYPES.Decorator;
-    expression: LeftHandSideExpression;
-}
-export interface DoWhileStatement extends BaseNode {
-    type: AST_NODE_TYPES.DoWhileStatement;
-    test: Expression;
-    body: Statement;
-}
-export interface EmptyStatement extends BaseNode {
-    type: AST_NODE_TYPES.EmptyStatement;
-}
-export interface ExportAllDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.ExportAllDeclaration;
-    source: Expression | null;
-}
-export interface ExportDefaultDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.ExportDefaultDeclaration;
-    declaration: ExportDeclaration | Expression;
-}
-export interface ExportNamedDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.ExportNamedDeclaration;
-    declaration: ExportDeclaration | null;
-    specifiers: ExportSpecifier[];
-    source: Expression | null;
-}
-export interface ExportSpecifier extends BaseNode {
-    type: AST_NODE_TYPES.ExportSpecifier;
-    local: Identifier;
-    exported: Identifier;
-}
-export interface ExpressionStatement extends BaseNode {
-    type: AST_NODE_TYPES.ExpressionStatement;
-    expression: Expression;
-    directive?: string;
-}
-export interface ForInStatement extends BaseNode {
-    type: AST_NODE_TYPES.ForInStatement;
-    left: ForInitialiser;
-    right: Expression;
-    body: Statement;
-}
-export interface ForOfStatement extends BaseNode {
-    type: AST_NODE_TYPES.ForOfStatement;
-    left: ForInitialiser;
-    right: Expression;
-    body: Statement;
-    await: boolean;
-}
-export interface ForStatement extends BaseNode {
-    type: AST_NODE_TYPES.ForStatement;
-    init: Expression | ForInitialiser | null;
-    test: Expression | null;
-    update: Expression | null;
-    body: Statement;
-}
-export interface FunctionDeclaration extends FunctionDeclarationBase {
-    type: AST_NODE_TYPES.FunctionDeclaration;
-    body: BlockStatement;
-}
-export interface FunctionExpression extends FunctionDeclarationBase {
-    type: AST_NODE_TYPES.FunctionExpression;
-}
-export interface Identifier extends BaseNode {
-    type: AST_NODE_TYPES.Identifier;
-    name: string;
-    typeAnnotation?: TSTypeAnnotation;
-    optional?: boolean;
-    decorators?: Decorator[];
-}
-export interface IfStatement extends BaseNode {
-    type: AST_NODE_TYPES.IfStatement;
-    test: Expression;
-    consequent: Statement;
-    alternate: Statement | null;
-}
-export interface Import extends BaseNode {
-    type: AST_NODE_TYPES.Import;
-}
-export interface ImportDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.ImportDeclaration;
-    source: Literal;
-    specifiers: ImportClause[];
-}
-export interface ImportDefaultSpecifier extends BaseNode {
-    type: AST_NODE_TYPES.ImportDefaultSpecifier;
-    local: Identifier;
-}
-export interface ImportNamespaceSpecifier extends BaseNode {
-    type: AST_NODE_TYPES.ImportNamespaceSpecifier;
-    local: Identifier;
-}
-export interface ImportSpecifier extends BaseNode {
-    type: AST_NODE_TYPES.ImportSpecifier;
-    local: Identifier;
-    imported: Identifier;
-}
-export interface JSXAttribute extends BaseNode {
-    type: AST_NODE_TYPES.JSXAttribute;
-    name: JSXIdentifier;
-    value: Literal | JSXExpression | null;
-}
-export interface JSXClosingElement extends BaseNode {
-    type: AST_NODE_TYPES.JSXClosingElement;
-    name: JSXTagNameExpression;
-}
-export interface JSXClosingFragment extends BaseNode {
-    type: AST_NODE_TYPES.JSXClosingFragment;
-}
-export interface JSXElement extends BaseNode {
-    type: AST_NODE_TYPES.JSXElement;
-    openingElement: JSXOpeningElement;
-    closingElement: JSXClosingElement | null;
-    children: JSXChild[];
-}
-export interface JSXEmptyExpression extends BaseNode {
-    type: AST_NODE_TYPES.JSXEmptyExpression;
-}
-export interface JSXExpressionContainer extends BaseNode {
-    type: AST_NODE_TYPES.JSXExpressionContainer;
-    expression: Expression | JSXEmptyExpression;
-}
-export interface JSXFragment extends BaseNode {
-    type: AST_NODE_TYPES.JSXFragment;
-    openingFragment: JSXOpeningFragment;
-    closingFragment: JSXClosingFragment;
-    children: JSXChild[];
-}
-export interface JSXIdentifier extends BaseNode {
-    type: AST_NODE_TYPES.JSXIdentifier;
-    name: string;
-}
-export interface JSXMemberExpression extends BaseNode {
-    type: AST_NODE_TYPES.JSXMemberExpression;
-    object: JSXTagNameExpression;
-    property: JSXIdentifier;
-}
-export interface JSXOpeningElement extends BaseNode {
-    type: AST_NODE_TYPES.JSXOpeningElement;
-    typeParameters?: TSTypeParameterInstantiation;
-    selfClosing: boolean;
-    name: JSXTagNameExpression;
-    attributes: JSXAttribute[];
-}
-export interface JSXOpeningFragment extends BaseNode {
-    type: AST_NODE_TYPES.JSXOpeningFragment;
-}
-export interface JSXSpreadAttribute extends BaseNode {
-    type: AST_NODE_TYPES.JSXSpreadAttribute;
-    argument: Expression;
-}
-export interface JSXSpreadChild extends BaseNode {
-    type: AST_NODE_TYPES.JSXSpreadChild;
-    expression: Expression | JSXEmptyExpression;
-}
-export interface JSXText extends BaseNode {
-    type: AST_NODE_TYPES.JSXText;
-    value: string;
-    raw: string;
-}
-export interface LabeledStatement extends BaseNode {
-    type: AST_NODE_TYPES.LabeledStatement;
-    label: Identifier;
-    body: Statement;
-}
-export interface LogicalExpression extends BinaryExpressionBase {
-    type: AST_NODE_TYPES.LogicalExpression;
-}
-export interface MemberExpressionComputedName extends MemberExpressionComputedNameBase {
-    type: AST_NODE_TYPES.MemberExpression;
-    optional: false;
-}
-export interface MemberExpressionNonComputedName extends MemberExpressionNonComputedNameBase {
-    type: AST_NODE_TYPES.MemberExpression;
-    optional: false;
-}
-export interface MetaProperty extends BaseNode {
-    type: AST_NODE_TYPES.MetaProperty;
-    meta: Identifier;
-    property: Identifier;
-}
-export interface MethodDefinitionComputedName extends MethodDefinitionComputedNameBase {
-    type: AST_NODE_TYPES.MethodDefinition;
-}
-export interface MethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase {
-    type: AST_NODE_TYPES.MethodDefinition;
-}
-export interface NewExpression extends BaseNode {
-    type: AST_NODE_TYPES.NewExpression;
-    callee: LeftHandSideExpression;
-    arguments: Expression[];
-    typeParameters?: TSTypeParameterInstantiation;
-}
-export interface NumberLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.Literal;
-    value: number;
-}
-export interface NullLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.Literal;
-    value: null;
-}
-export interface ObjectExpression extends BaseNode {
-    type: AST_NODE_TYPES.ObjectExpression;
-    properties: ObjectLiteralElementLike[];
-}
-export interface ObjectPattern extends BaseNode {
-    type: AST_NODE_TYPES.ObjectPattern;
-    properties: (Property | RestElement)[];
-    typeAnnotation?: TSTypeAnnotation;
-    optional?: boolean;
-    decorators?: Decorator[];
-}
-export interface OptionalCallExpression extends CallExpressionBase {
-    type: AST_NODE_TYPES.OptionalCallExpression;
-    optional: boolean;
-}
-export interface OptionalMemberExpressionComputedName extends MemberExpressionComputedNameBase {
-    type: AST_NODE_TYPES.OptionalMemberExpression;
-    optional: boolean;
-}
-export interface OptionalMemberExpressionNonComputedName extends MemberExpressionNonComputedNameBase {
-    type: AST_NODE_TYPES.OptionalMemberExpression;
-    optional: boolean;
-}
-export interface Program extends BaseNode {
-    type: AST_NODE_TYPES.Program;
-    body: Statement[];
-    sourceType: 'module' | 'script';
-    comments?: Comment[];
-    tokens?: Token[];
-}
-export interface PropertyComputedName extends PropertyBase {
-    key: PropertyNameComputed;
-    computed: true;
-}
-export interface PropertyNonComputedName extends PropertyBase {
-    key: PropertyNameNonComputed;
-    computed: false;
-}
-export interface RegExpLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.Literal;
-    value: RegExp;
-}
-export interface RestElement extends BaseNode {
-    type: AST_NODE_TYPES.RestElement;
-    argument: DestructuringPattern;
-    typeAnnotation?: TSTypeAnnotation;
-    optional?: boolean;
-    value?: AssignmentPattern;
-    decorators?: Decorator[];
-}
-export interface ReturnStatement extends BaseNode {
-    type: AST_NODE_TYPES.ReturnStatement;
-    argument: Expression | null;
-}
-export interface SequenceExpression extends BaseNode {
-    type: AST_NODE_TYPES.SequenceExpression;
-    expressions: Expression[];
-}
-export interface SpreadElement extends BaseNode {
-    type: AST_NODE_TYPES.SpreadElement;
-    argument: Expression;
-}
-export interface StringLiteral extends LiteralBase {
-    type: AST_NODE_TYPES.Literal;
-    value: string;
-}
-export interface Super extends BaseNode {
-    type: AST_NODE_TYPES.Super;
-}
-export interface SwitchCase extends BaseNode {
-    type: AST_NODE_TYPES.SwitchCase;
-    test: Expression | null;
-    consequent: Statement[];
-}
-export interface SwitchStatement extends BaseNode {
-    type: AST_NODE_TYPES.SwitchStatement;
-    discriminant: Expression;
-    cases: SwitchCase[];
-}
-export interface TaggedTemplateExpression extends BaseNode {
-    type: AST_NODE_TYPES.TaggedTemplateExpression;
-    typeParameters?: TSTypeParameterInstantiation;
-    tag: LeftHandSideExpression;
-    quasi: TemplateLiteral;
-}
-export interface TemplateElement extends BaseNode {
-    type: AST_NODE_TYPES.TemplateElement;
-    value: {
-        raw: string;
-        cooked: string;
-    };
-    tail: boolean;
-}
-export interface TemplateLiteral extends BaseNode {
-    type: AST_NODE_TYPES.TemplateLiteral;
-    quasis: TemplateElement[];
-    expressions: Expression[];
-}
-export interface ThisExpression extends BaseNode {
-    type: AST_NODE_TYPES.ThisExpression;
-}
-export interface ThrowStatement extends BaseNode {
-    type: AST_NODE_TYPES.ThrowStatement;
-    argument: Statement | TSAsExpression | null;
-}
-export interface TryStatement extends BaseNode {
-    type: AST_NODE_TYPES.TryStatement;
-    block: BlockStatement;
-    handler: CatchClause | null;
-    finalizer: BlockStatement;
-}
-export interface TSAbstractClassPropertyComputedName extends ClassPropertyComputedNameBase {
-    type: AST_NODE_TYPES.TSAbstractClassProperty;
-}
-export interface TSAbstractClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase {
-    type: AST_NODE_TYPES.TSAbstractClassProperty;
-}
-export interface TSAbstractKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSAbstractKeyword;
-}
-export interface TSAbstractMethodDefinitionComputedName extends MethodDefinitionComputedNameBase {
-    type: AST_NODE_TYPES.TSAbstractMethodDefinition;
-}
-export interface TSAbstractMethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase {
-    type: AST_NODE_TYPES.TSAbstractMethodDefinition;
-}
-export interface TSAnyKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSAnyKeyword;
-}
-export interface TSArrayType extends BaseNode {
-    type: AST_NODE_TYPES.TSArrayType;
-    elementType: TypeNode;
-}
-export interface TSAsExpression extends BaseNode {
-    type: AST_NODE_TYPES.TSAsExpression;
-    expression: Expression;
-    typeAnnotation: TypeNode;
-}
-export interface TSAsyncKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSAsyncKeyword;
-}
-export interface TSBigIntKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSBigIntKeyword;
-}
-export interface TSBooleanKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSBooleanKeyword;
-}
-export interface TSCallSignatureDeclaration extends FunctionSignatureBase {
-    type: AST_NODE_TYPES.TSCallSignatureDeclaration;
-}
-export interface TSClassImplements extends TSHeritageBase {
-    type: AST_NODE_TYPES.TSClassImplements;
-}
-export interface TSConditionalType extends BaseNode {
-    type: AST_NODE_TYPES.TSConditionalType;
-    checkType: TypeNode;
-    extendsType: TypeNode;
-    trueType: TypeNode;
-    falseType: TypeNode;
-}
-export interface TSConstructorType extends FunctionSignatureBase {
-    type: AST_NODE_TYPES.TSConstructorType;
-}
-export interface TSConstructSignatureDeclaration extends FunctionSignatureBase {
-    type: AST_NODE_TYPES.TSConstructSignatureDeclaration;
-}
-export interface TSDeclareFunction extends FunctionDeclarationBase {
-    type: AST_NODE_TYPES.TSDeclareFunction;
-}
-export interface TSDeclareKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSDeclareKeyword;
-}
-export interface TSEmptyBodyFunctionExpression extends FunctionDeclarationBase {
-    type: AST_NODE_TYPES.TSEmptyBodyFunctionExpression;
-    body: null;
-}
-export interface TSEnumDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSEnumDeclaration;
-    id: Identifier;
-    members: TSEnumMember[];
-    const?: boolean;
-    declare?: boolean;
-    modifiers?: Modifier[];
-    decorators?: Decorator[];
-}
-/**
- * this should only really happen in semantically invalid code (errors 1164 and 2452)
- *
- * VALID:
- * enum Foo { ['a'] }
- *
- * INVALID:
- * const x = 'a';
- * enum Foo { [x] }
- * enum Bar { ['a' + 'b'] }
- */
-export interface TSEnumMemberComputedName extends TSEnumMemberBase {
-    id: PropertyNameComputed;
-    computed: true;
-}
-export interface TSEnumMemberNonComputedName extends TSEnumMemberBase {
-    id: PropertyNameNonComputed;
-    computed?: false;
-}
-export interface TSExportAssignment extends BaseNode {
-    type: AST_NODE_TYPES.TSExportAssignment;
-    expression: Expression;
-}
-export interface TSExportKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSExportKeyword;
-}
-export interface TSExternalModuleReference extends BaseNode {
-    type: AST_NODE_TYPES.TSExternalModuleReference;
-    expression: Expression;
-}
-export interface TSFunctionType extends FunctionSignatureBase {
-    type: AST_NODE_TYPES.TSFunctionType;
-}
-export interface TSImportEqualsDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSImportEqualsDeclaration;
-    id: Identifier;
-    moduleReference: EntityName | TSExternalModuleReference;
-    isExport: boolean;
-}
-export interface TSImportType extends BaseNode {
-    type: AST_NODE_TYPES.TSImportType;
-    isTypeOf: boolean;
-    parameter: TypeNode;
-    qualifier: EntityName | null;
-    typeParameters: TSTypeParameterInstantiation | null;
-}
-export interface TSIndexedAccessType extends BaseNode {
-    type: AST_NODE_TYPES.TSIndexedAccessType;
-    objectType: TypeNode;
-    indexType: TypeNode;
-}
-export interface TSIndexSignature extends BaseNode {
-    type: AST_NODE_TYPES.TSIndexSignature;
-    parameters: Parameter[];
-    typeAnnotation?: TSTypeAnnotation;
-    readonly?: boolean;
-    accessibility?: Accessibility;
-    export?: boolean;
-    static?: boolean;
-}
-export interface TSInferType extends BaseNode {
-    type: AST_NODE_TYPES.TSInferType;
-    typeParameter: TSTypeParameterDeclaration;
-}
-export interface TSInterfaceDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSInterfaceDeclaration;
-    body: TSInterfaceBody;
-    id: Identifier;
-    typeParameters?: TSTypeParameterDeclaration;
-    extends?: ExpressionWithTypeArguments[];
-    implements?: ExpressionWithTypeArguments[];
-    decorators?: Decorator[];
-    abstract?: boolean;
-    declare?: boolean;
-}
-export interface TSInterfaceBody extends BaseNode {
-    type: AST_NODE_TYPES.TSInterfaceBody;
-    body: TypeElement[];
-}
-export interface TSInterfaceHeritage extends TSHeritageBase {
-    type: AST_NODE_TYPES.TSInterfaceHeritage;
-}
-export interface TSIntersectionType extends BaseNode {
-    type: AST_NODE_TYPES.TSIntersectionType;
-    types: TypeNode[];
-}
-export interface TSLiteralType extends BaseNode {
-    type: AST_NODE_TYPES.TSLiteralType;
-    literal: LiteralExpression | UnaryExpression | UpdateExpression;
-}
-export interface TSMappedType extends BaseNode {
-    type: AST_NODE_TYPES.TSMappedType;
-    typeParameter: TSTypeParameterDeclaration;
-    readonly?: boolean | '-' | '+';
-    optional?: boolean | '-' | '+';
-    typeAnnotation?: TypeNode;
-}
-export interface TSMethodSignatureComputedName extends TSMethodSignatureBase {
-    key: PropertyNameComputed;
-    computed: true;
-}
-export interface TSMethodSignatureNonComputedName extends TSMethodSignatureBase {
-    key: PropertyNameNonComputed;
-    computed: false;
-}
-export interface TSModuleBlock extends BaseNode {
-    type: AST_NODE_TYPES.TSModuleBlock;
-    body: Statement[];
-}
-export interface TSModuleDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSModuleDeclaration;
-    id: Identifier | Literal;
-    body?: TSModuleBlock | TSModuleDeclaration;
-    global?: boolean;
-    declare?: boolean;
-    modifiers?: Modifier[];
-}
-export interface TSNamespaceExportDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSNamespaceExportDeclaration;
-    id: Identifier;
-}
-export interface TSNeverKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSNeverKeyword;
-}
-export interface TSNonNullExpression extends BaseNode {
-    type: AST_NODE_TYPES.TSNonNullExpression;
-    expression: Expression;
-}
-export interface TSNullKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSNullKeyword;
-}
-export interface TSNumberKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSNumberKeyword;
-}
-export interface TSObjectKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSObjectKeyword;
-}
-export interface TSOptionalType extends BaseNode {
-    type: AST_NODE_TYPES.TSOptionalType;
-    typeAnnotation: TypeNode;
-}
-export interface TSParameterProperty extends BaseNode {
-    type: AST_NODE_TYPES.TSParameterProperty;
-    accessibility?: Accessibility;
-    readonly?: boolean;
-    static?: boolean;
-    export?: boolean;
-    parameter: AssignmentPattern | BindingName | RestElement;
-    decorators?: Decorator[];
-}
-export interface TSParenthesizedType extends BaseNode {
-    type: AST_NODE_TYPES.TSParenthesizedType;
-    typeAnnotation: TypeNode;
-}
-export interface TSPropertySignatureComputedName extends TSPropertySignatureBase {
-    key: PropertyNameComputed;
-    computed: true;
-}
-export interface TSPropertySignatureNonComputedName extends TSPropertySignatureBase {
-    key: PropertyNameNonComputed;
-    computed: false;
-}
-export interface TSPublicKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSPublicKeyword;
-}
-export interface TSPrivateKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSPrivateKeyword;
-}
-export interface TSProtectedKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSProtectedKeyword;
-}
-export interface TSQualifiedName extends BaseNode {
-    type: AST_NODE_TYPES.TSQualifiedName;
-    left: EntityName;
-    right: Identifier;
-}
-export interface TSReadonlyKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSReadonlyKeyword;
-}
-export interface TSRestType extends BaseNode {
-    type: AST_NODE_TYPES.TSRestType;
-    typeAnnotation: TypeNode;
-}
-export interface TSStaticKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSStaticKeyword;
-}
-export interface TSStringKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSStringKeyword;
-}
-export interface TSSymbolKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSSymbolKeyword;
-}
-export interface TSThisType extends BaseNode {
-    type: AST_NODE_TYPES.TSThisType;
-}
-export interface TSTupleType extends BaseNode {
-    type: AST_NODE_TYPES.TSTupleType;
-    elementTypes: TypeNode[];
-}
-export interface TSTypeAliasDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeAliasDeclaration;
-    id: Identifier;
-    typeAnnotation: TypeNode;
-    declare?: boolean;
-    typeParameters?: TSTypeParameterDeclaration;
-}
-export interface TSTypeAnnotation extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeAnnotation;
-    typeAnnotation: TypeNode;
-}
-export interface TSTypeAssertion extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeAssertion;
-    typeAnnotation: TypeNode;
-    expression: Expression;
-}
-export interface TSTypeLiteral extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeLiteral;
-    members: TypeElement[];
-}
-export interface TSTypeOperator extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeOperator;
-    operator: 'keyof' | 'unique' | 'readonly';
-    typeAnnotation?: TypeNode;
-}
-export interface TSTypeParameter extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeParameter;
-    name: Identifier;
-    constraint?: TypeNode;
-    default?: TypeNode;
-}
-export interface TSTypeParameterDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeParameterDeclaration;
-    params: TSTypeParameter[];
-}
-export interface TSTypeParameterInstantiation extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeParameterInstantiation;
-    params: TypeNode[];
-}
-export interface TSTypePredicate extends BaseNode {
-    type: AST_NODE_TYPES.TSTypePredicate;
-    asserts: boolean;
-    parameterName: Identifier | TSThisType;
-    typeAnnotation: TSTypeAnnotation | null;
-}
-export interface TSTypeQuery extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeQuery;
-    exprName: EntityName;
-}
-export interface TSTypeReference extends BaseNode {
-    type: AST_NODE_TYPES.TSTypeReference;
-    typeName: EntityName;
-    typeParameters?: TSTypeParameterInstantiation;
-}
-export interface TSUndefinedKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSUndefinedKeyword;
-}
-export interface TSUnionType extends BaseNode {
-    type: AST_NODE_TYPES.TSUnionType;
-    types: TypeNode[];
-}
-export interface TSUnknownKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSUnknownKeyword;
-}
-export interface TSVoidKeyword extends BaseNode {
-    type: AST_NODE_TYPES.TSVoidKeyword;
-}
-export interface UpdateExpression extends UnaryExpressionBase {
-    type: AST_NODE_TYPES.UpdateExpression;
-    operator: '++' | '--';
-}
-export interface UnaryExpression extends UnaryExpressionBase {
-    type: AST_NODE_TYPES.UnaryExpression;
-    operator: '+' | '-' | '!' | '~' | 'delete' | 'void' | 'typeof';
-}
-export interface VariableDeclaration extends BaseNode {
-    type: AST_NODE_TYPES.VariableDeclaration;
-    declarations: VariableDeclarator[];
-    kind: 'let' | 'const' | 'var';
-    declare?: boolean;
-}
-export interface VariableDeclarator extends BaseNode {
-    type: AST_NODE_TYPES.VariableDeclarator;
-    id: BindingName;
-    init: Expression | null;
-    definite?: boolean;
-}
-export interface WhileStatement extends BaseNode {
-    type: AST_NODE_TYPES.WhileStatement;
-    test: Expression;
-    body: Statement;
-}
-export interface WithStatement extends BaseNode {
-    type: AST_NODE_TYPES.WithStatement;
-    object: Expression;
-    body: Statement;
-}
-export interface YieldExpression extends BaseNode {
-    type: AST_NODE_TYPES.YieldExpression;
-    delegate: boolean;
-    argument?: Expression;
-}
-export {};
-//# sourceMappingURL=ts-estree.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts.map
deleted file mode 100644
index f8d1d32..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ts-estree.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-estree.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js
deleted file mode 100644
index 47f7a01..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=ts-estree.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js.map
deleted file mode 100644
index 0b1c09c..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-estree.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ts-estree.js","sourceRoot":"","sources":["../../src/ts-estree/ts-estree.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts
index 1b72d58..8142fc4 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts
@@ -1,4 +1,8 @@
 import * as ts from 'typescript';
+declare module 'typescript' {
+    interface NamedTupleMember extends ts.Node {
+    }
+}
 export declare type TSToken = ts.Token<ts.SyntaxKind>;
-export declare type TSNode = ts.Node & (ts.Modifier | ts.Identifier | ts.QualifiedName | ts.ComputedPropertyName | ts.Decorator | ts.TypeParameterDeclaration | ts.CallSignatureDeclaration | ts.ConstructSignatureDeclaration | ts.VariableDeclaration | ts.VariableDeclarationList | ts.ParameterDeclaration | ts.BindingElement | ts.PropertySignature | ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.ObjectBindingPattern | ts.ArrayBindingPattern | ts.FunctionDeclaration | ts.MethodSignature | ts.MethodDeclaration | ts.ConstructorDeclaration | ts.SemicolonClassElement | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.IndexSignatureDeclaration | ts.KeywordTypeNode | ts.ImportTypeNode | ts.ThisTypeNode | ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.TypeReferenceNode | ts.TypePredicateNode | ts.TypeQueryNode | ts.TypeLiteralNode | ts.ArrayTypeNode | ts.TupleTypeNode | ts.OptionalTypeNode | ts.RestTypeNode | ts.UnionTypeNode | ts.IntersectionTypeNode | ts.ConditionalTypeNode | ts.InferTypeNode | ts.ParenthesizedTypeNode | ts.TypeOperatorNode | ts.IndexedAccessTypeNode | ts.MappedTypeNode | ts.LiteralTypeNode | ts.StringLiteral | ts.OmittedExpression | ts.PartiallyEmittedExpression | ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.NullLiteral | ts.BooleanLiteral | ts.ThisExpression | ts.SuperExpression | ts.ImportExpression | ts.DeleteExpression | ts.TypeOfExpression | ts.VoidExpression | ts.AwaitExpression | ts.YieldExpression | ts.SyntheticExpression | ts.BinaryExpression | ts.ConditionalExpression | ts.FunctionExpression | ts.ArrowFunction | ts.RegularExpressionLiteral | ts.NoSubstitutionTemplateLiteral | ts.NumericLiteral | ts.BigIntLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail | ts.TemplateExpression | ts.TemplateSpan | ts.ParenthesizedExpression | ts.ArrayLiteralExpression | ts.SpreadElement | ts.ObjectLiteralExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.ExpressionWithTypeArguments | ts.NewExpression | ts.TaggedTemplateExpression | ts.AsExpression | ts.TypeAssertion | ts.NonNullExpression | ts.MetaProperty | ts.JsxElement | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.JsxFragment | ts.JsxOpeningFragment | ts.JsxClosingFragment | ts.JsxAttribute | ts.JsxSpreadAttribute | ts.JsxClosingElement | ts.JsxExpression | ts.JsxText | ts.NotEmittedStatement | ts.CommaListExpression | ts.EmptyStatement | ts.DebuggerStatement | ts.MissingDeclaration | ts.Block | ts.VariableStatement | ts.ExpressionStatement | ts.IfStatement | ts.DoStatement | ts.WhileStatement | ts.ForStatement | ts.ForInStatement | ts.ForOfStatement | ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.WithStatement | ts.SwitchStatement | ts.CaseBlock | ts.CaseClause | ts.DefaultClause | ts.LabeledStatement | ts.ThrowStatement | ts.TryStatement | ts.CatchClause | ts.ClassDeclaration | ts.ClassExpression | ts.InterfaceDeclaration | ts.HeritageClause | ts.TypeAliasDeclaration | ts.EnumMember | ts.EnumDeclaration | ts.ModuleDeclaration | ts.ModuleBlock | ts.ImportEqualsDeclaration | ts.ExternalModuleReference | ts.ImportDeclaration | ts.ImportClause | ts.NamespaceImport | ts.NamespaceExportDeclaration | ts.ExportDeclaration | ts.NamedImports | ts.NamedExports | ts.ImportSpecifier | ts.ExportSpecifier | ts.ExportAssignment | ts.CommentRange | ts.SourceFile | ts.Bundle | ts.InputFiles | ts.UnparsedSource | ts.JsonMinusNumericLiteral | ts.JSDoc | ts.JSDocTypeExpression | ts.JSDocUnknownTag | ts.JSDocAugmentsTag | ts.JSDocClassTag | ts.JSDocEnumTag | ts.JSDocThisTag | ts.JSDocTemplateTag | ts.JSDocReturnTag | ts.JSDocTypeTag | ts.JSDocTypedefTag | ts.JSDocCallbackTag | ts.JSDocSignature | ts.JSDocPropertyTag | ts.JSDocParameterTag | ts.JSDocTypeLiteral | ts.JSDocFunctionType | ts.JSDocAllType | ts.JSDocUnknownType | ts.JSDocNullableType | ts.JSDocNonNullableType | ts.JSDocOptionalType | ts.JSDocVariadicType | ts.JSDocAuthorTag);
+export declare type TSNode = ts.Modifier | ts.Identifier | ts.QualifiedName | ts.ComputedPropertyName | ts.Decorator | ts.TypeParameterDeclaration | ts.CallSignatureDeclaration | ts.ConstructSignatureDeclaration | ts.VariableDeclaration | ts.VariableDeclarationList | ts.ParameterDeclaration | ts.BindingElement | ts.PropertySignature | ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.ObjectBindingPattern | ts.ArrayBindingPattern | ts.FunctionDeclaration | ts.MethodSignature | ts.MethodDeclaration | ts.ConstructorDeclaration | ts.SemicolonClassElement | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.IndexSignatureDeclaration | ts.KeywordTypeNode | ts.ImportTypeNode | ts.ThisTypeNode | ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.TypeReferenceNode | ts.TypePredicateNode | ts.TypeQueryNode | ts.TypeLiteralNode | ts.ArrayTypeNode | ts.NamedTupleMember | ts.TupleTypeNode | ts.OptionalTypeNode | ts.RestTypeNode | ts.UnionTypeNode | ts.IntersectionTypeNode | ts.ConditionalTypeNode | ts.InferTypeNode | ts.ParenthesizedTypeNode | ts.TypeOperatorNode | ts.IndexedAccessTypeNode | ts.MappedTypeNode | ts.LiteralTypeNode | ts.StringLiteral | ts.OmittedExpression | ts.PartiallyEmittedExpression | ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.NullLiteral | ts.BooleanLiteral | ts.ThisExpression | ts.SuperExpression | ts.ImportExpression | ts.DeleteExpression | ts.TypeOfExpression | ts.VoidExpression | ts.AwaitExpression | ts.YieldExpression | ts.SyntheticExpression | ts.BinaryExpression | ts.ConditionalExpression | ts.FunctionExpression | ts.ArrowFunction | ts.RegularExpressionLiteral | ts.NoSubstitutionTemplateLiteral | ts.NumericLiteral | ts.BigIntLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail | ts.TemplateExpression | ts.TemplateSpan | ts.ParenthesizedExpression | ts.ArrayLiteralExpression | ts.SpreadElement | ts.ObjectLiteralExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.ExpressionWithTypeArguments | ts.NewExpression | ts.TaggedTemplateExpression | ts.AsExpression | ts.TypeAssertion | ts.NonNullExpression | ts.MetaProperty | ts.JsxElement | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.JsxFragment | ts.JsxOpeningFragment | ts.JsxClosingFragment | ts.JsxAttribute | ts.JsxSpreadAttribute | ts.JsxClosingElement | ts.JsxExpression | ts.JsxText | ts.NotEmittedStatement | ts.CommaListExpression | ts.EmptyStatement | ts.DebuggerStatement | ts.MissingDeclaration | ts.Block | ts.VariableStatement | ts.ExpressionStatement | ts.IfStatement | ts.DoStatement | ts.WhileStatement | ts.ForStatement | ts.ForInStatement | ts.ForOfStatement | ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.WithStatement | ts.SwitchStatement | ts.CaseBlock | ts.CaseClause | ts.DefaultClause | ts.LabeledStatement | ts.ThrowStatement | ts.TryStatement | ts.CatchClause | ts.ClassDeclaration | ts.ClassExpression | ts.InterfaceDeclaration | ts.HeritageClause | ts.TypeAliasDeclaration | ts.EnumMember | ts.EnumDeclaration | ts.ModuleDeclaration | ts.ModuleBlock | ts.ImportEqualsDeclaration | ts.ExternalModuleReference | ts.ImportDeclaration | ts.ImportClause | ts.NamespaceImport | ts.NamespaceExportDeclaration | ts.ExportDeclaration | ts.NamedImports | ts.NamedExports | ts.ImportSpecifier | ts.ExportSpecifier | ts.ExportAssignment | ts.SourceFile | ts.Bundle | ts.InputFiles | ts.UnparsedSource | ts.JsonMinusNumericLiteral | ts.JSDoc | ts.JSDocTypeExpression | ts.JSDocUnknownTag | ts.JSDocAugmentsTag | ts.JSDocClassTag | ts.JSDocEnumTag | ts.JSDocThisTag | ts.JSDocTemplateTag | ts.JSDocReturnTag | ts.JSDocTypeTag | ts.JSDocTypedefTag | ts.JSDocCallbackTag | ts.JSDocSignature | ts.JSDocPropertyTag | ts.JSDocParameterTag | ts.JSDocTypeLiteral | ts.JSDocFunctionType | ts.JSDocAllType | ts.JSDocUnknownType | ts.JSDocNullableType | ts.JSDocNonNullableType | ts.JSDocOptionalType | ts.JSDocVariadicType | ts.JSDocAuthorTag;
 //# sourceMappingURL=ts-nodes.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map
index 16a4e63..aacaf81 100644
--- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ts-nodes.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"ts-nodes.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts.map
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js
rename to node_modules/@typescript-eslint/typescript-estree/dist/version-check.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js.map
similarity index 100%
rename from node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/version-check.js.map
rename to node_modules/@typescript-eslint/typescript-estree/dist/version-check.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts
deleted file mode 100644
index d119826..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as eslintVisitorKeys from 'eslint-visitor-keys';
-export declare const visitorKeys: eslintVisitorKeys.VisitorKeys;
-//# sourceMappingURL=visitor-keys.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts.map
deleted file mode 100644
index 6e7ea9e..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"visitor-keys.d.ts","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AAEzD,eAAO,MAAM,WAAW,+BA2HtB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js b/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js
deleted file mode 100644
index 01e880e..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use strict";
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
-    result["default"] = mod;
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const eslintVisitorKeys = __importStar(require("eslint-visitor-keys"));
-exports.visitorKeys = eslintVisitorKeys.unionWith({
-    // Additional estree nodes.
-    Import: [],
-    // Additional Properties.
-    ArrayPattern: ['decorators', 'elements', 'typeAnnotation'],
-    ArrowFunctionExpression: ['typeParameters', 'params', 'returnType', 'body'],
-    ClassDeclaration: [
-        'decorators',
-        'id',
-        'typeParameters',
-        'superClass',
-        'superTypeParameters',
-        'implements',
-        'body',
-    ],
-    ClassExpression: [
-        'decorators',
-        'id',
-        'typeParameters',
-        'superClass',
-        'superTypeParameters',
-        'implements',
-        'body',
-    ],
-    TaggedTemplateExpression: ['tag', 'typeParameters', 'quasi'],
-    FunctionDeclaration: ['id', 'typeParameters', 'params', 'returnType', 'body'],
-    FunctionExpression: ['id', 'typeParameters', 'params', 'returnType', 'body'],
-    Identifier: ['decorators', 'typeAnnotation'],
-    MethodDefinition: ['decorators', 'key', 'value'],
-    ObjectPattern: ['decorators', 'properties', 'typeAnnotation'],
-    RestElement: ['decorators', 'argument', 'typeAnnotation'],
-    NewExpression: ['callee', 'typeParameters', 'arguments'],
-    CallExpression: ['callee', 'typeParameters', 'arguments'],
-    // JSX
-    JSXOpeningElement: ['name', 'typeParameters', 'attributes'],
-    JSXClosingFragment: [],
-    JSXOpeningFragment: [],
-    JSXSpreadChild: ['expression'],
-    // Additional Nodes.
-    BigIntLiteral: [],
-    ClassProperty: ['decorators', 'key', 'typeAnnotation', 'value'],
-    Decorator: ['expression'],
-    OptionalCallExpression: ['callee', 'typeParameters', 'arguments'],
-    OptionalMemberExpression: eslintVisitorKeys.KEYS.MemberExpression,
-    TSAbstractClassProperty: ['decorators', 'key', 'typeAnnotation', 'value'],
-    TSAbstractKeyword: [],
-    TSAbstractMethodDefinition: ['key', 'value'],
-    TSAnyKeyword: [],
-    TSArrayType: ['elementType'],
-    TSAsExpression: ['expression', 'typeAnnotation'],
-    TSAsyncKeyword: [],
-    TSBigIntKeyword: [],
-    TSBooleanKeyword: [],
-    TSCallSignatureDeclaration: ['typeParameters', 'params', 'returnType'],
-    TSClassImplements: ['expression', 'typeParameters'],
-    TSConditionalType: ['checkType', 'extendsType', 'trueType', 'falseType'],
-    TSConstructSignatureDeclaration: ['typeParameters', 'params', 'returnType'],
-    TSConstructorType: ['typeParameters', 'params', 'returnType'],
-    TSDeclareFunction: ['id', 'typeParameters', 'params', 'returnType', 'body'],
-    TSDeclareKeyword: [],
-    TSEmptyBodyFunctionExpression: [
-        'id',
-        'typeParameters',
-        'params',
-        'returnType',
-    ],
-    TSEnumDeclaration: ['id', 'members'],
-    TSEnumMember: ['id', 'initializer'],
-    TSExportAssignment: ['expression'],
-    TSExportKeyword: [],
-    TSExternalModuleReference: ['expression'],
-    TSImportType: ['parameter', 'qualifier', 'typeParameters'],
-    TSInferType: ['typeParameter'],
-    TSLiteralType: ['literal'],
-    TSIntersectionType: ['types'],
-    TSIndexedAccessType: ['indexType', 'objectType'],
-    TSIndexSignature: ['parameters', 'typeAnnotation'],
-    TSInterfaceBody: ['body'],
-    TSInterfaceDeclaration: ['id', 'typeParameters', 'extends', 'body'],
-    TSInterfaceHeritage: ['expression', 'typeParameters'],
-    TSImportEqualsDeclaration: ['id', 'moduleReference'],
-    TSFunctionType: ['typeParameters', 'params', 'returnType'],
-    TSMappedType: ['typeParameter', 'typeAnnotation'],
-    TSMethodSignature: ['typeParameters', 'key', 'params', 'returnType'],
-    TSModuleBlock: ['body'],
-    TSModuleDeclaration: ['id', 'body'],
-    TSNamespaceExportDeclaration: ['id'],
-    TSNonNullExpression: ['expression'],
-    TSNeverKeyword: [],
-    TSNullKeyword: [],
-    TSNumberKeyword: [],
-    TSObjectKeyword: [],
-    TSOptionalType: ['typeAnnotation'],
-    TSParameterProperty: ['decorators', 'parameter'],
-    TSParenthesizedType: ['typeAnnotation'],
-    TSPrivateKeyword: [],
-    TSPropertySignature: ['typeAnnotation', 'key', 'initializer'],
-    TSProtectedKeyword: [],
-    TSPublicKeyword: [],
-    TSQualifiedName: ['left', 'right'],
-    TSReadonlyKeyword: [],
-    TSRestType: ['typeAnnotation'],
-    TSStaticKeyword: [],
-    TSStringKeyword: [],
-    TSSymbolKeyword: [],
-    TSThisType: [],
-    TSTupleType: ['elementTypes'],
-    TSTypeAliasDeclaration: ['id', 'typeParameters', 'typeAnnotation'],
-    TSTypeAnnotation: ['typeAnnotation'],
-    TSTypeAssertion: ['typeAnnotation', 'expression'],
-    TSTypeLiteral: ['members'],
-    TSTypeOperator: ['typeAnnotation'],
-    TSTypeParameter: ['name', 'constraint', 'default'],
-    TSTypeParameterDeclaration: ['params'],
-    TSTypeParameterInstantiation: ['params'],
-    TSTypePredicate: ['typeAnnotation', 'parameterName'],
-    TSTypeReference: ['typeName', 'typeParameters'],
-    TSTypeQuery: ['exprName'],
-    TSUnionType: ['types'],
-    TSUndefinedKeyword: [],
-    TSUnknownKeyword: [],
-    TSVoidKeyword: [],
-});
-//# sourceMappingURL=visitor-keys.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js.map
deleted file mode 100644
index 061adf9..0000000
--- a/node_modules/@typescript-eslint/typescript-estree/dist/visitor-keys.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"visitor-keys.js","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver b/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver
index 501bb2f..bb49af1 120000
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver
@@ -1 +1 @@
-../../../../semver/bin/semver.js
\ No newline at end of file
+../../../../jest-circus/node_modules/semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/CHANGELOG.md b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/CHANGELOG.md
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/CHANGELOG.md
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/CHANGELOG.md
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/LICENSE b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/LICENSE
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/LICENSE
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/LICENSE
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/README.md b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/README.md
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/README.md
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/README.md
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/bin/semver.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/bin/semver.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/bin/semver.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/bin/semver.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/comparator.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/comparator.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/classes/comparator.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/comparator.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/index.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/classes/index.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/range.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/range.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/classes/range.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/range.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/classes/semver.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/semver.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/classes/semver.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/classes/semver.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/clean.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/clean.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/clean.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/clean.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/cmp.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/cmp.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/cmp.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/cmp.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/coerce.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/coerce.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/coerce.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/coerce.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-build.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare-build.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-build.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare-build.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-loose.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare-loose.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare-loose.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare-loose.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/compare.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/compare.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/compare.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/diff.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/diff.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/diff.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/diff.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/eq.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/eq.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/eq.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/eq.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/gt.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/gt.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/gt.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/gt.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/gte.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/gte.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/gte.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/gte.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/inc.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/inc.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/inc.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/inc.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/lt.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/lt.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/lt.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/lt.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/lte.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/lte.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/lte.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/lte.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/major.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/major.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/major.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/major.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/minor.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/minor.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/minor.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/minor.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/neq.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/neq.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/neq.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/neq.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/parse.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/parse.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/parse.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/parse.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/patch.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/patch.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/patch.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/patch.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/prerelease.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/prerelease.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/prerelease.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/prerelease.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/rcompare.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/rcompare.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/rcompare.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/rcompare.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/rsort.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/rsort.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/rsort.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/rsort.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/satisfies.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/satisfies.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/satisfies.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/satisfies.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/sort.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/sort.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/sort.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/sort.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/functions/valid.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/valid.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/functions/valid.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/valid.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/index.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/index.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/index.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/constants.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/constants.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/internal/constants.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/constants.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/debug.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/debug.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/internal/debug.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/debug.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/identifiers.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/identifiers.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/internal/identifiers.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/identifiers.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/internal/re.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/re.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/internal/re.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/internal/re.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/package.json
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/package.json
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/package.json
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/preload.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/preload.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/preload.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/preload.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/range.bnf b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/range.bnf
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/range.bnf
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/range.bnf
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/gtr.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/gtr.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/gtr.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/gtr.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/intersects.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/intersects.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/intersects.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/intersects.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/ltr.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/ltr.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/ltr.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/ltr.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/max-satisfying.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/max-satisfying.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/max-satisfying.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/max-satisfying.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-satisfying.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/min-satisfying.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-satisfying.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/min-satisfying.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-version.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/min-version.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/min-version.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/min-version.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/outside.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/outside.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/outside.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/outside.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/simplify.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/simplify.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/simplify.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/simplify.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/subset.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/subset.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/subset.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/subset.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/to-comparators.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/to-comparators.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/to-comparators.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/to-comparators.js
diff --git a/node_modules/eslint-plugin-jest/node_modules/semver/ranges/valid.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/valid.js
similarity index 100%
copy from node_modules/eslint-plugin-jest/node_modules/semver/ranges/valid.js
copy to node_modules/@typescript-eslint/typescript-estree/node_modules/semver/ranges/valid.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/package.json b/node_modules/@typescript-eslint/typescript-estree/package.json
index b4353db..840d2d0 100644
--- a/node_modules/@typescript-eslint/typescript-estree/package.json
+++ b/node_modules/@typescript-eslint/typescript-estree/package.json
@@ -1,16 +1,16 @@
 {
   "name": "@typescript-eslint/typescript-estree",
-  "version": "2.22.0",
+  "version": "4.3.0",
   "description": "A parser that converts TypeScript source code into an ESTree compatible form",
-  "main": "dist/parser.js",
-  "types": "dist/parser.d.ts",
+  "main": "dist/index.js",
+  "types": "dist/index.d.ts",
   "files": [
     "dist",
     "README.md",
     "LICENSE"
   ],
   "engines": {
-    "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+    "node": "^10.12.0 || >=12.0.0"
   },
   "repository": {
     "type": "git",
@@ -32,34 +32,40 @@
   ],
   "scripts": {
     "build": "tsc -b tsconfig.build.json",
+    "postbuild": "downlevel-dts dist _ts3.4/dist",
     "clean": "tsc -b tsconfig.build.json --clean",
+    "postclean": "rimraf dist",
     "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
     "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'",
     "test": "jest --coverage",
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
+    "@typescript-eslint/types": "4.3.0",
+    "@typescript-eslint/visitor-keys": "4.3.0",
     "debug": "^4.1.1",
-    "eslint-visitor-keys": "^1.1.0",
-    "glob": "^7.1.6",
+    "globby": "^11.0.1",
     "is-glob": "^4.0.1",
     "lodash": "^4.17.15",
-    "semver": "^6.3.0",
+    "semver": "^7.3.2",
     "tsutils": "^3.17.1"
   },
   "devDependencies": {
-    "@babel/code-frame": "^7.8.3",
-    "@babel/parser": "^7.8.3",
-    "@babel/types": "^7.8.3",
+    "@babel/code-frame": "^7.10.4",
+    "@babel/parser": "^7.11.3",
+    "@babel/types": "^7.11.0",
     "@types/babel__code-frame": "^7.0.1",
-    "@types/debug": "^4.1.5",
-    "@types/glob": "^7.1.1",
+    "@types/debug": "*",
+    "@types/glob": "*",
     "@types/is-glob": "^4.0.1",
-    "@types/lodash": "^4.14.149",
-    "@types/semver": "^6.2.0",
-    "@types/tmp": "^0.1.0",
-    "@typescript-eslint/shared-fixtures": "2.22.0",
-    "tmp": "^0.1.0",
+    "@types/lodash": "*",
+    "@types/semver": "^7.1.0",
+    "@types/tmp": "^0.2.0",
+    "@typescript-eslint/shared-fixtures": "4.3.0",
+    "glob": "*",
+    "jest-specific-snapshot": "*",
+    "make-dir": "*",
+    "tmp": "^0.2.1",
     "typescript": "*"
   },
   "peerDependenciesMeta": {
@@ -71,5 +77,12 @@
     "type": "opencollective",
     "url": "https://opencollective.com/typescript-eslint"
   },
-  "gitHead": "5a097d316fb084dc4b13e87d68fe9bf43d8a9548"
+  "typesVersions": {
+    "<3.8": {
+      "*": [
+        "_ts3.4/*"
+      ]
+    }
+  },
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md b/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md
index ef43303..4ef4cf6 100644
--- a/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md
+++ b/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md
@@ -3,6 +3,30 @@
 All notable changes to this project will be documented in this file.
 See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
 
+# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28)
+
+**Note:** Version bump only for package @typescript-eslint/visitor-keys
+
+
+
+
+
+# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21)
+
+**Note:** Version bump only for package @typescript-eslint/visitor-keys
+
+
+
+
+
+## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14)
+
+**Note:** Version bump only for package @typescript-eslint/visitor-keys
+
+
+
+
+
 # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
 
 **Note:** Version bump only for package @typescript-eslint/visitor-keys
diff --git a/node_modules/@typescript-eslint/visitor-keys/package.json b/node_modules/@typescript-eslint/visitor-keys/package.json
index cca9d90..5d07456 100644
--- a/node_modules/@typescript-eslint/visitor-keys/package.json
+++ b/node_modules/@typescript-eslint/visitor-keys/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/visitor-keys",
-  "version": "4.1.0",
+  "version": "4.3.0",
   "description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
   "keywords": [
     "eslint",
@@ -38,7 +38,7 @@
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
-    "@typescript-eslint/types": "4.1.0",
+    "@typescript-eslint/types": "4.3.0",
     "eslint-visitor-keys": "^2.0.0"
   },
   "devDependencies": {
@@ -55,5 +55,5 @@
       ]
     }
   },
-  "gitHead": "00a24706222254774121ee62038e67d0efa993e7"
+  "gitHead": "229631e6cd90bba8f509a6d49fec72fd7a576ccf"
 }
diff --git a/node_modules/aria-query/CHANGELOG.md b/node_modules/aria-query/CHANGELOG.md
deleted file mode 100644
index ec8be48..0000000
--- a/node_modules/aria-query/CHANGELOG.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# aria-query Change Log
-
-## 1.0.0
-
-- Updated values of aria-haspopup to include ARIA 1.1 role values
-- Added the CHANGELOG file
-
-## 2.0.0
-
-- Remove package-lock file.
-- Add Watchman config file.
-
-## 2.0.1
-
-- Added aria-errormessage to the ARIA Props Map.
-
-## 3.0.0
-
-- Bumping to a major version because of a previous breaking change.
diff --git a/node_modules/aria-query/LICENSE b/node_modules/aria-query/LICENSE
deleted file mode 100644
index 5e0fd33..0000000
--- a/node_modules/aria-query/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction,
-and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by
-the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all
-other entities that control, are controlled by, or are under common
-control with that entity. For the purposes of this definition,
-"control" means (i) the power, direct or indirect, to cause the
-direction or management of such entity, whether by contract or
-otherwise, or (ii) ownership of fifty percent (50%) or more of the
-outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity
-exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation
-source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but
-not limited to compiled object code, generated documentation,
-and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or
-Object form, made available under the License, as indicated by a
-copyright notice that is included in or attached to the work
-(an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object
-form, that is based on (or derived from) the Work and for which the
-editorial revisions, annotations, elaborations, or other modifications
-represent, as a whole, an original work of authorship. For the purposes
-of this License, Derivative Works shall not include works that remain
-separable from, or merely link (or bind by name) to the interfaces of,
-the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including
-the original version of the Work and any modifications or additions
-to that Work or Derivative Works thereof, that is intentionally
-submitted to Licensor for inclusion in the Work by the copyright owner
-or by an individual or Legal Entity authorized to submit on behalf of
-the copyright owner. For the purposes of this definition, "submitted"
-means any form of electronic, verbal, or written communication sent
-to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems,
-and issue tracking systems that are managed by, or on behalf of, the
-Licensor for the purpose of discussing and improving the Work, but
-excluding communication that is conspicuously marked or otherwise
-designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity
-on behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the
-Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-(except as stated in this section) patent license to make, have made,
-use, offer to sell, sell, import, and otherwise transfer the Work,
-where such license applies only to those patent claims licensable
-by such Contributor that are necessarily infringed by their
-Contribution(s) alone or by combination of their Contribution(s)
-with the Work to which such Contribution(s) was submitted. If You
-institute patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Work
-or a Contribution incorporated within the Work constitutes direct
-or contributory patent infringement, then any patent licenses
-granted to You under this License for that Work shall terminate
-as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-Work or Derivative Works thereof in any medium, with or without
-modifications, and in Source or Object form, provided that You
-meet the following conditions:
-
-(a) You must give any other recipients of the Work or
-Derivative Works a copy of this License; and
-
-(b) You must cause any modified files to carry prominent notices
-stating that You changed the files; and
-
-(c) You must retain, in the Source form of any Derivative Works
-that You distribute, all copyright, patent, trademark, and
-attribution notices from the Source form of the Work,
-excluding those notices that do not pertain to any part of
-the Derivative Works; and
-
-(d) If the Work includes a "NOTICE" text file as part of its
-distribution, then any Derivative Works that You distribute must
-include a readable copy of the attribution notices contained
-within such NOTICE file, excluding those notices that do not
-pertain to any part of the Derivative Works, in at least one
-of the following places: within a NOTICE text file distributed
-as part of the Derivative Works; within the Source form or
-documentation, if provided along with the Derivative Works; or,
-within a display generated by the Derivative Works, if and
-wherever such third-party notices normally appear. The contents
-of the NOTICE file are for informational purposes only and
-do not modify the License. You may add Your own attribution
-notices within Derivative Works that You distribute, alongside
-or as an addendum to the NOTICE text from the Work, provided
-that such additional attribution notices cannot be construed
-as modifying the License.
-
-You may add Your own copyright statement to Your modifications and
-may provide additional or different license terms and conditions
-for use, reproduction, or distribution of Your modifications, or
-for any such Derivative Works as a whole, provided Your use,
-reproduction, and distribution of the Work otherwise complies with
-the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work
-by You to the Licensor shall be under the terms and conditions of
-this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify
-the terms of any separate license agreement you may have executed
-with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-agreed to in writing, Licensor provides the Work (and each
-Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied, including, without limitation, any warranties or conditions
-of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE. You are solely responsible for determining the
-appropriateness of using or redistributing the Work and assume any
-risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise,
-unless required by applicable law (such as deliberate and grossly
-negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special,
-incidental, or consequential damages of any character arising as a
-result of this License or out of the use or inability to use the
-Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all
-other commercial damages or losses), even if such Contributor
-has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-the Work or Derivative Works thereof, You may choose to offer,
-and charge a fee for, acceptance of support, warranty, indemnity,
-or other liability obligations and/or rights consistent with this
-License. However, in accepting such obligations, You may act only
-on Your own behalf and on Your sole responsibility, not on behalf
-of any other Contributor, and only if You agree to indemnify,
-defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason
-of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-To apply the Apache License to your work, attach the following
-boilerplate notice, with the fields enclosed by brackets "{}"
-replaced with your own identifying information. (Don't include
-the brackets!)  The text should be enclosed in the appropriate
-comment syntax for the file format. We also recommend that a
-file or class name and description of purpose be included on the
-same "printed page" as the copyright notice for easier
-identification within third-party archives.
-
-Copyright {yyyy} {name of copyright owner}
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/node_modules/aria-query/README.md b/node_modules/aria-query/README.md
deleted file mode 100644
index df8fd0d..0000000
--- a/node_modules/aria-query/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-[![Build Status](https://travis-ci.org/A11yance/aria-query.svg?branch=master)](https://travis-ci.org/A11yance/aria-query)
-
-CDN URL: https://npm-cdn.com/pkg/aria-query/
-
-# ARIA Query
-
-Programmatic access to the [WAI-ARIA 1.1 Roles Model](https://www.w3.org/TR/wai-aria-1.1/#roles).
-
-## Utilities
-
-### Roles
-
-```
-import { roles } from 'aria-query';
-```
-
-A [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) of
-role names to the role definition. For example:
-
-```
-let alertRole = roles.get('alert');
-/**
- * Value of alertRole
- * {
- *   "requiredProps": [],
- *   "props": [
- *     "aria-expanded",
- *     "aria-atomic",
- *     "aria-busy",
- *     "aria-controls",
- *     "aria-describedby",
- *     "aria-disabled",
- *     "aria-dropeffect",
- *     "aria-flowto",
- *     "aria-grabbed",
- *     "aria-haspopup",
- *     "aria-hidden",
- *     "aria-invalid",
- *     "aria-label",
- *     "aria-labelledby",
- *     "aria-live",
- *     "aria-owns",
- *     "aria-relevant"
- *   ],
- *   "abstract": false,
- *   "interactive": false,
- *   "childrenPresentational": false,
- *   "baseConcepts": [],
- *   "relatedConcepts": [ {
- *     "module": "XForms",
- *     "concept": {
- *       "name": "alert"
- *     }
- *   }]
- * }
-```
-
-### Elements to Roles
-
-```
-import { elementRoles } from 'aria-query';
-```
-
-HTML Elements with inherent roles are mapped to those roles. In the case of an element like `<input>`, the element often requires a `type` attribute to map to an ARIA role.
-
-```
-Map {
-  '{"name": "article"}' => Set { 'article' },
-  '{"name": "button"}' => Set { 'button' },
-  '{"name": "td"}' => Set { 'cell', 'gridcell' },
-  '{"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] }' => Set { 'checkbox' },
-  '{"name": "th"}' => Set { 'columnheader' },
-  '{"name": "select"}' => Set { 'combobox', 'listbox' },
-  '{"name": "menuitem"}' => Set { 'command', 'menuitem' },
-  '{"name": "dd"}' => Set { 'definition' },
-  '{"name": "dfn"}' => Set { 'definition' },
-  '{"name": "figure"}' => Set { 'figure' },
-  '{"name": "form"}' => Set { 'form' },
-  '{"name": "table"}' => Set { 'grid', 'table' },
-  '{"name": "fieldset"}' => Set { 'group' },
-  '{"name": "h1"}' => Set { 'heading' },
-  '{"name": "h2"}' => Set { 'heading' },
-  '{"name": "h3"}' => Set { 'heading' },
-  '{"name": "h4"}' => Set { 'heading' },
-  '{"name": "h5"}' => Set { 'heading' },
-  '{"name": "h6"}' => Set { 'heading' },
-  '{"name": "img"}' => Set { 'img' },
-  '{"name": "a"}' => Set { 'link' },
-  '{"name": "link"}' => Set { 'link' },
-  '{"name": "ol"}' => Set { 'list' },
-  '{"name": "ul"}' => Set { 'list' },
-  '{"name": "li"}' => Set { 'listitem' },
-  '{"name": "nav"}' => Set { 'navigation' },
-  '{"name": "option"}' => Set { 'option' },
-  '{"name": "input", "attributes": [ {"name": "type", "value": "radio"}] }' => Set { 'radio' },
-  '{"name": "frame"}' => Set { 'region' },
-  '{"name": "rel"}' => Set { 'roletype' },
-  '{"name": "tr"}' => Set { 'row' },
-  '{"name": "tbody"}' => Set { 'rowgroup' },
-  '{"name": "tfoot"}' => Set { 'rowgroup' },
-  '{"name": "thead"}' => Set { 'rowgroup' },
-  '{"name": "th", "attributes": [ {"name": "scope", "value": "row"}] }' => Set { 'rowheader' },
-  '{"name": "input", "attributes": [ {"name": "type", "value": "search"}] }' => Set { 'searchbox' },
-  '{"name": "hr"}' => Set { 'separator' },
-  '{"name": "dt"}' => Set { 'term' },
-  '{"name": "textarea"}' => Set { 'textbox' },
-  '{"name": "input", "attributes": [ {"name": "type", "value": "text"}] }' => Set { 'textbox' }
-}
-```
-
-The map of elements to roles is keyed by an HTML concept. An HTML concept corresponds to the `baseConcepts` and `relatedConcepts` of an ARIA role. Concepts exist in the context of a `module`: HTML, XForms, Dublin Core, for example.  The concept representation is an object literal with a name property (the element name) and an optional attributes array.
-
-The roles are provided in a [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set).
-
-### Role to element
-
-```
-import { roleElements } from 'aria-query';
-```
-
-ARIA roles are mapped to the HTML Elements with the same inherent role. Some roles, such as `columnheader` are only mapped to an HMTL element that expresses specific attributes. In the case of `<input>`, the element often requires a `type` attribute to map to an ARIA role.
-
-```
-Map {
-  'article' => Set { '{"name": "article"}' },
-  'button' => Set { '{"name": "button"}' },
-  'cell' => Set { '{"name": "td"}' },
-  'checkbox' => Set { '{"name": "input", "attributes": [ {"name": "type", "value": "checkbox"}] }' },
-  'columnheader' => Set { '{"name": "th"}' },
-  'combobox' => Set { '{"name": "select"}' },
-  'command' => Set { '{"name": "menuitem"}' },
-  'definition' => Set { '{"name": "dd"}', '{"name": "dfn"}' },
-  'figure' => Set { '{"name": "figure"}' },
-  'form' => Set { '{"name": "form"}' },
-  'grid' => Set { '{"name": "table"}' },
-  'gridcell' => Set { '{"name": "td"}' },
-  'group' => Set { '{"name": "fieldset"}' },
-  'heading' => Set { '{"name": "h1"}', '{"name": "h2"}', '{"name": "h3"}', '{"name": "h4"}',  '{"name": "h5"}', '{"name": "h6"}' },
-  'img' => Set { '{"name": "img"}' },
-  'link' => Set { '{"name": "a"}', '{"name": "link"}' },
-  'list' => Set { '{"name": "ol"}', '{"name": "ul"}' },
-  'listbox' => Set { '{"name": "select"}' },
-  'listitem' => Set { '{"name": "li"}' },
-  'menuitem' => Set { '{"name": "menuitem"}' },
-  'navigation' => Set { '{"name": "nav"}' },
-  'option' => Set { '{"name": "option"}' },
-  'radio' => Set { '{"name": "input", "attributes": [ {"name": "type", "value": "radio"}] }' },
-  'region' => Set { '{"name": "frame"}' },
-  'roletype' => Set { '{"name": "rel"}' },
-  'row' => Set { '{"name": "tr"}' },
-  'rowgroup' => Set { '{"name": "tbody"}', '{"name": "tfoot"}', '{"name": "thead"}' },
-  'rowheader' => Set { '{"name": "th", "attributes": [ {"name": "scope", "value": "row"}] }' },
-  'searchbox' => Set { '{"name": "input", "attributes": [ {"name": "type", "value": "search"}] }' },
-  'separator' => Set { '{"name": "hr"}' },
-  'table' => Set { '{"name": "table"}' },
-  'term' => Set { '{"name": "dt"}' },
-  'textbox' => Set { '{"name": "textarea"}', '{"name": "input", "attributes": [ {"name": "type", "value": "text"}] }' }
-}
-```
-
-The HTML concept values are provided in a [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set).
diff --git a/node_modules/aria-query/lib/ariaPropsMap.js b/node_modules/aria-query/lib/ariaPropsMap.js
deleted file mode 100644
index f049e28..0000000
--- a/node_modules/aria-query/lib/ariaPropsMap.js
+++ /dev/null
@@ -1,116 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-
-var ariaPropsMap = new Map([['aria-activedescendant', {
-  'type': 'id'
-}], ['aria-atomic', {
-  'type': 'boolean'
-}], ['aria-autocomplete', {
-  'type': 'token',
-  'values': ['inline', 'list', 'both', 'none']
-}], ['aria-busy', {
-  'type': 'boolean'
-}], ['aria-checked', {
-  'type': 'tristate'
-}], ['aria-colcount', {
-  type: 'integer'
-}], ['aria-colindex', {
-  type: 'integer'
-}], ['aria-colspan', {
-  type: 'integer'
-}], ['aria-controls', {
-  'type': 'idlist'
-}], ['aria-current', {
-  type: 'token',
-  values: ['page', 'step', 'location', 'date', 'time', true, false]
-}], ['aria-describedby', {
-  'type': 'idlist'
-}], ['aria-disabled', {
-  'type': 'boolean'
-}], ['aria-dropeffect', {
-  'type': 'tokenlist',
-  'values': ['copy', 'move', 'link', 'execute', 'popup', 'none']
-}], ['aria-errormessage', {
-  'type': 'string'
-}], ['aria-expanded', {
-  'type': 'boolean',
-  'allowundefined': true
-}], ['aria-flowto', {
-  'type': 'idlist'
-}], ['aria-grabbed', {
-  'type': 'boolean',
-  'allowundefined': true
-}], ['aria-haspopup', {
-  'type': 'token',
-  'values': [false, true, 'menu', 'listbox', 'tree', 'grid', 'dialog']
-}], ['aria-hidden', {
-  'type': 'boolean'
-}], ['aria-invalid', {
-  'type': 'token',
-  'values': ['grammar', false, 'spelling', true]
-}], ['aria-keyshortcuts', {
-  type: 'string'
-}], ['aria-label', {
-  'type': 'string'
-}], ['aria-labelledby', {
-  'type': 'idlist'
-}], ['aria-level', {
-  'type': 'integer'
-}], ['aria-live', {
-  'type': 'token',
-  'values': ['off', 'polite', 'assertive']
-}], ['aria-modal', {
-  type: 'boolean'
-}], ['aria-multiline', {
-  'type': 'boolean'
-}], ['aria-multiselectable', {
-  'type': 'boolean'
-}], ['aria-orientation', {
-  'type': 'token',
-  'values': ['vertical', 'horizontal']
-}], ['aria-owns', {
-  'type': 'idlist'
-}], ['aria-placeholder', {
-  type: 'string'
-}], ['aria-posinset', {
-  'type': 'integer'
-}], ['aria-pressed', {
-  'type': 'tristate'
-}], ['aria-readonly', {
-  'type': 'boolean'
-}], ['aria-relevant', {
-  'type': 'tokenlist',
-  'values': ['additions', 'removals', 'text', 'all']
-}], ['aria-required', {
-  'type': 'boolean'
-}], ['aria-roledescription', {
-  type: 'string'
-}], ['aria-rowcount', {
-  type: 'integer'
-}], ['aria-rowindex', {
-  type: 'integer'
-}], ['aria-rowspan', {
-  type: 'integer'
-}], ['aria-selected', {
-  'type': 'boolean',
-  'allowundefined': true
-}], ['aria-setsize', {
-  'type': 'integer'
-}], ['aria-sort', {
-  'type': 'token',
-  'values': ['ascending', 'descending', 'none', 'other']
-}], ['aria-valuemax', {
-  'type': 'number'
-}], ['aria-valuemin', {
-  'type': 'number'
-}], ['aria-valuenow', {
-  'type': 'number'
-}], ['aria-valuetext', {
-  'type': 'string'
-}]]);
-
-exports.default = ariaPropsMap;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/domMap.js b/node_modules/aria-query/lib/domMap.js
deleted file mode 100644
index 56691c0..0000000
--- a/node_modules/aria-query/lib/domMap.js
+++ /dev/null
@@ -1,266 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var domMap = new Map([['a', {
-  reserved: false
-}], ['abbr', {
-  reserved: false
-}], ['acronym', {
-  reserved: false
-}], ['address', {
-  reserved: false
-}], ['applet', {
-  reserved: false
-}], ['area', {
-  reserved: false
-}], ['article', {
-  reserved: false
-}], ['aside', {
-  reserved: false
-}], ['audio', {
-  reserved: false
-}], ['b', {
-  reserved: false
-}], ['base', {
-  reserved: true
-}], ['bdi', {
-  reserved: false
-}], ['bdo', {
-  reserved: false
-}], ['big', {
-  reserved: false
-}], ['blink', {
-  reserved: false
-}], ['blockquote', {
-  reserved: false
-}], ['body', {
-  reserved: false
-}], ['br', {
-  reserved: false
-}], ['button', {
-  reserved: false
-}], ['canvas', {
-  reserved: false
-}], ['caption', {
-  reserved: false
-}], ['center', {
-  reserved: false
-}], ['cite', {
-  reserved: false
-}], ['code', {
-  reserved: false
-}], ['col', {
-  reserved: true
-}], ['colgroup', {
-  reserved: true
-}], ['content', {
-  reserved: false
-}], ['data', {
-  reserved: false
-}], ['datalist', {
-  reserved: false
-}], ['dd', {
-  reserved: false
-}], ['del', {
-  reserved: false
-}], ['details', {
-  reserved: false
-}], ['dfn', {
-  reserved: false
-}], ['dialog', {
-  reserved: false
-}], ['dir', {
-  reserved: false
-}], ['div', {
-  reserved: false
-}], ['dl', {
-  reserved: false
-}], ['dt', {
-  reserved: false
-}], ['em', {
-  reserved: false
-}], ['embed', {
-  reserved: false
-}], ['fieldset', {
-  reserved: false
-}], ['figcaption', {
-  reserved: false
-}], ['figure', {
-  reserved: false
-}], ['font', {
-  reserved: false
-}], ['footer', {
-  reserved: false
-}], ['form', {
-  reserved: false
-}], ['frame', {
-  reserved: false
-}], ['frameset', {
-  reserved: false
-}], ['h1', {
-  reserved: false
-}], ['h2', {
-  reserved: false
-}], ['h3', {
-  reserved: false
-}], ['h4', {
-  reserved: false
-}], ['h5', {
-  reserved: false
-}], ['h6', {
-  reserved: false
-}], ['head', {
-  reserved: true
-}], ['header', {
-  reserved: false
-}], ['hgroup', {
-  reserved: false
-}], ['hr', {
-  reserved: false
-}], ['html', {
-  reserved: true
-}], ['i', {
-  reserved: false
-}], ['iframe', {
-  reserved: false
-}], ['img', {
-  reserved: false
-}], ['input', {
-  reserved: false
-}], ['ins', {
-  reserved: false
-}], ['kbd', {
-  reserved: false
-}], ['keygen', {
-  reserved: false
-}], ['label', {
-  reserved: false
-}], ['legend', {
-  reserved: false
-}], ['li', {
-  reserved: false
-}], ['link', {
-  reserved: true
-}], ['main', {
-  reserved: false
-}], ['map', {
-  reserved: false
-}], ['mark', {
-  reserved: false
-}], ['marquee', {
-  reserved: false
-}], ['menu', {
-  reserved: false
-}], ['menuitem', {
-  reserved: false
-}], ['meta', {
-  reserved: true
-}], ['meter', {
-  reserved: false
-}], ['nav', {
-  reserved: false
-}], ['noembed', {
-  reserved: true
-}], ['noscript', {
-  reserved: true
-}], ['object', {
-  reserved: false
-}], ['ol', {
-  reserved: false
-}], ['optgroup', {
-  reserved: false
-}], ['option', {
-  reserved: false
-}], ['output', {
-  reserved: false
-}], ['p', {
-  reserved: false
-}], ['param', {
-  reserved: true
-}], ['picture', {
-  reserved: true
-}], ['pre', {
-  reserved: false
-}], ['progress', {
-  reserved: false
-}], ['q', {
-  reserved: false
-}], ['rp', {
-  reserved: false
-}], ['rt', {
-  reserved: false
-}], ['rtc', {
-  reserved: false
-}], ['ruby', {
-  reserved: false
-}], ['s', {
-  reserved: false
-}], ['samp', {
-  reserved: false
-}], ['script', {
-  reserved: true
-}], ['section', {
-  reserved: false
-}], ['select', {
-  reserved: false
-}], ['small', {
-  reserved: false
-}], ['source', {
-  reserved: true
-}], ['spacer', {
-  reserved: false
-}], ['span', {
-  reserved: false
-}], ['strike', {
-  reserved: false
-}], ['strong', {
-  reserved: false
-}], ['style', {
-  reserved: true
-}], ['sub', {
-  reserved: false
-}], ['summary', {
-  reserved: false
-}], ['sup', {
-  reserved: false
-}], ['table', {
-  reserved: false
-}], ['tbody', {
-  reserved: false
-}], ['td', {
-  reserved: false
-}], ['textarea', {
-  reserved: false
-}], ['tfoot', {
-  reserved: false
-}], ['th', {
-  reserved: false
-}], ['thead', {
-  reserved: false
-}], ['time', {
-  reserved: false
-}], ['title', {
-  reserved: true
-}], ['tr', {
-  reserved: false
-}], ['track', {
-  reserved: true
-}], ['tt', {
-  reserved: false
-}], ['u', {
-  reserved: false
-}], ['ul', {
-  reserved: false
-}], ['var', {
-  reserved: false
-}], ['video', {
-  reserved: false
-}], ['wbr', {
-  reserved: false
-}], ['xmp', {
-  reserved: false
-}]]);
-
-exports.default = domMap;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/elementRoleMap.js b/node_modules/aria-query/lib/elementRoleMap.js
deleted file mode 100644
index dcb8bc0..0000000
--- a/node_modules/aria-query/lib/elementRoleMap.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _rolesMap = require('./rolesMap');
-
-var _rolesMap2 = _interopRequireDefault(_rolesMap);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var elementRoleMap = new Map([]);
-
-[].concat(_toConsumableArray(_rolesMap2.default.keys())).forEach(function (key) {
-  var role = _rolesMap2.default.get(key);
-  if (role) {
-    [].concat(_toConsumableArray(role.baseConcepts), _toConsumableArray(role.relatedConcepts)).forEach(function (relation) {
-      if (relation.module === 'HTML') {
-        var concept = relation.concept;
-        if (concept) {
-          var conceptStr = JSON.stringify(concept);
-
-          var roles = ([].concat(_toConsumableArray(elementRoleMap.entries())).find(function (_ref) {
-            var _ref2 = _slicedToArray(_ref, 2),
-                key = _ref2[0],
-                value = _ref2[1];
-
-            return JSON.stringify(key) === conceptStr;
-          }) || [])[1];
-
-          if (!roles) {
-            roles = new Set([]);
-          }
-          roles.add(key);
-          elementRoleMap.set(concept, roles);
-        }
-      }
-    });
-  }
-});
-
-exports.default = elementRoleMap;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/commandRole.js b/node_modules/aria-query/lib/etc/roles/abstract/commandRole.js
deleted file mode 100644
index 7dbaa0d..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/commandRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var commandRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'menuitem'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget']]
-};
-
-exports.default = commandRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js b/node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js
deleted file mode 100644
index c60a7dd..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var compositeRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-activedescendant': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget']]
-};
-
-exports.default = compositeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/inputRole.js b/node_modules/aria-query/lib/etc/roles/abstract/inputRole.js
deleted file mode 100644
index fad691f..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/inputRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var inputRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'input'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget']]
-};
-
-exports.default = inputRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js b/node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js
deleted file mode 100644
index 4ba2a0c..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var landmarkRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = landmarkRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js b/node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js
deleted file mode 100644
index 3d56765..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var rangeRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-valuemax': null,
-    'aria-valuemin': null,
-    'aria-valuenow': null,
-    'aria-valuetext': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget']]
-};
-
-exports.default = rangeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js b/node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js
deleted file mode 100644
index d1b24d9..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var roletypeRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-atomic': null,
-    'aria-busy': null,
-    'aria-controls': null,
-    'aria-current': null,
-    'aria-describedby': null,
-    'aria-details': null,
-    'aria-disabled': null,
-    'aria-dropeffect': null,
-    'aria-errormessage': null,
-    'aria-flowto': null,
-    'aria-grabbed': null,
-    'aria-haspopup': null,
-    'aria-hidden': null,
-    'aria-invalid': null,
-    'aria-keyshortcuts': null,
-    'aria-label': null,
-    'aria-labelledby': null,
-    'aria-live': null,
-    'aria-owns': null,
-    'aria-relevant': null,
-    'aria-roledescription': null
-  },
-  relatedConcepts: [{
-    module: 'XHTML',
-    concept: {
-      name: 'role'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'rel'
-    }
-  }, {
-    module: 'Dublin Core',
-    concept: {
-      name: 'type'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: []
-};
-
-exports.default = roletypeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js b/node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js
deleted file mode 100644
index 2022e90..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var sectionRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: [],
-  props: {
-    'aria-expanded': null
-  },
-  relatedConcepts: [{
-    module: 'DTB',
-    concept: {
-      name: 'frontmatter'
-    }
-  }, {
-    module: 'DTB',
-    concept: {
-      name: 'level'
-    }
-  }, {
-    module: 'SMIL',
-    concept: {
-      name: 'level'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = sectionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js b/node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js
deleted file mode 100644
index cea7043..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var sectionheadRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-expanded': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = sectionheadRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/selectRole.js b/node_modules/aria-query/lib/etc/roles/abstract/selectRole.js
deleted file mode 100644
index 76b627e..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/selectRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var selectRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-orientation': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'group']]
-};
-
-exports.default = selectRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/structureRole.js b/node_modules/aria-query/lib/etc/roles/abstract/structureRole.js
deleted file mode 100644
index ccd6f9b..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/structureRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var structureRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: [],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype']]
-};
-
-exports.default = structureRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js b/node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js
deleted file mode 100644
index d994135..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var widgetRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: [],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype']]
-};
-
-exports.default = widgetRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/abstract/windowRole.js b/node_modules/aria-query/lib/etc/roles/abstract/windowRole.js
deleted file mode 100644
index ce31439..0000000
--- a/node_modules/aria-query/lib/etc/roles/abstract/windowRole.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var windowRole = {
-  abstract: true,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-expanded': null,
-    'aria-modal': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype']]
-};
-
-exports.default = windowRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js b/node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js
deleted file mode 100644
index a7c136a..0000000
--- a/node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _commandRole = require('./abstract/commandRole');
-
-var _commandRole2 = _interopRequireDefault(_commandRole);
-
-var _compositeRole = require('./abstract/compositeRole');
-
-var _compositeRole2 = _interopRequireDefault(_compositeRole);
-
-var _inputRole = require('./abstract/inputRole');
-
-var _inputRole2 = _interopRequireDefault(_inputRole);
-
-var _landmarkRole = require('./abstract/landmarkRole');
-
-var _landmarkRole2 = _interopRequireDefault(_landmarkRole);
-
-var _rangeRole = require('./abstract/rangeRole');
-
-var _rangeRole2 = _interopRequireDefault(_rangeRole);
-
-var _roletypeRole = require('./abstract/roletypeRole');
-
-var _roletypeRole2 = _interopRequireDefault(_roletypeRole);
-
-var _sectionRole = require('./abstract/sectionRole');
-
-var _sectionRole2 = _interopRequireDefault(_sectionRole);
-
-var _sectionheadRole = require('./abstract/sectionheadRole');
-
-var _sectionheadRole2 = _interopRequireDefault(_sectionheadRole);
-
-var _selectRole = require('./abstract/selectRole');
-
-var _selectRole2 = _interopRequireDefault(_selectRole);
-
-var _structureRole = require('./abstract/structureRole');
-
-var _structureRole2 = _interopRequireDefault(_structureRole);
-
-var _widgetRole = require('./abstract/widgetRole');
-
-var _widgetRole2 = _interopRequireDefault(_widgetRole);
-
-var _windowRole = require('./abstract/windowRole');
-
-var _windowRole2 = _interopRequireDefault(_windowRole);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var ariaAbstractRoles = new Map([['command', _commandRole2.default], ['composite', _compositeRole2.default], ['input', _inputRole2.default], ['landmark', _landmarkRole2.default], ['range', _rangeRole2.default], ['roletype', _roletypeRole2.default], ['section', _sectionRole2.default], ['sectionhead', _sectionheadRole2.default], ['select', _selectRole2.default], ['structure', _structureRole2.default], ['widget', _widgetRole2.default], ['window', _windowRole2.default]]);
-
-exports.default = ariaAbstractRoles;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js b/node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js
deleted file mode 100644
index 9fe38c0..0000000
--- a/node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js
+++ /dev/null
@@ -1,166 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _docAbstractRole = require('./dpub/docAbstractRole');
-
-var _docAbstractRole2 = _interopRequireDefault(_docAbstractRole);
-
-var _docAcknowledgmentsRole = require('./dpub/docAcknowledgmentsRole');
-
-var _docAcknowledgmentsRole2 = _interopRequireDefault(_docAcknowledgmentsRole);
-
-var _docAfterwordRole = require('./dpub/docAfterwordRole');
-
-var _docAfterwordRole2 = _interopRequireDefault(_docAfterwordRole);
-
-var _docAppendixRole = require('./dpub/docAppendixRole');
-
-var _docAppendixRole2 = _interopRequireDefault(_docAppendixRole);
-
-var _docBacklinkRole = require('./dpub/docBacklinkRole');
-
-var _docBacklinkRole2 = _interopRequireDefault(_docBacklinkRole);
-
-var _docBiblioentryRole = require('./dpub/docBiblioentryRole');
-
-var _docBiblioentryRole2 = _interopRequireDefault(_docBiblioentryRole);
-
-var _docBibliographyRole = require('./dpub/docBibliographyRole');
-
-var _docBibliographyRole2 = _interopRequireDefault(_docBibliographyRole);
-
-var _docBibliorefRole = require('./dpub/docBibliorefRole');
-
-var _docBibliorefRole2 = _interopRequireDefault(_docBibliorefRole);
-
-var _docChapterRole = require('./dpub/docChapterRole');
-
-var _docChapterRole2 = _interopRequireDefault(_docChapterRole);
-
-var _docColophonRole = require('./dpub/docColophonRole');
-
-var _docColophonRole2 = _interopRequireDefault(_docColophonRole);
-
-var _docConclusionRole = require('./dpub/docConclusionRole');
-
-var _docConclusionRole2 = _interopRequireDefault(_docConclusionRole);
-
-var _docCoverRole = require('./dpub/docCoverRole');
-
-var _docCoverRole2 = _interopRequireDefault(_docCoverRole);
-
-var _docCreditRole = require('./dpub/docCreditRole');
-
-var _docCreditRole2 = _interopRequireDefault(_docCreditRole);
-
-var _docCreditsRole = require('./dpub/docCreditsRole');
-
-var _docCreditsRole2 = _interopRequireDefault(_docCreditsRole);
-
-var _docDedicationRole = require('./dpub/docDedicationRole');
-
-var _docDedicationRole2 = _interopRequireDefault(_docDedicationRole);
-
-var _docEndnoteRole = require('./dpub/docEndnoteRole');
-
-var _docEndnoteRole2 = _interopRequireDefault(_docEndnoteRole);
-
-var _docEndnotesRole = require('./dpub/docEndnotesRole');
-
-var _docEndnotesRole2 = _interopRequireDefault(_docEndnotesRole);
-
-var _docEpigraphRole = require('./dpub/docEpigraphRole');
-
-var _docEpigraphRole2 = _interopRequireDefault(_docEpigraphRole);
-
-var _docEpilogueRole = require('./dpub/docEpilogueRole');
-
-var _docEpilogueRole2 = _interopRequireDefault(_docEpilogueRole);
-
-var _docErrataRole = require('./dpub/docErrataRole');
-
-var _docErrataRole2 = _interopRequireDefault(_docErrataRole);
-
-var _docExampleRole = require('./dpub/docExampleRole');
-
-var _docExampleRole2 = _interopRequireDefault(_docExampleRole);
-
-var _docFootnoteRole = require('./dpub/docFootnoteRole');
-
-var _docFootnoteRole2 = _interopRequireDefault(_docFootnoteRole);
-
-var _docForewordRole = require('./dpub/docForewordRole');
-
-var _docForewordRole2 = _interopRequireDefault(_docForewordRole);
-
-var _docGlossaryRole = require('./dpub/docGlossaryRole');
-
-var _docGlossaryRole2 = _interopRequireDefault(_docGlossaryRole);
-
-var _docGlossrefRole = require('./dpub/docGlossrefRole');
-
-var _docGlossrefRole2 = _interopRequireDefault(_docGlossrefRole);
-
-var _docIndexRole = require('./dpub/docIndexRole');
-
-var _docIndexRole2 = _interopRequireDefault(_docIndexRole);
-
-var _docIntroductionRole = require('./dpub/docIntroductionRole');
-
-var _docIntroductionRole2 = _interopRequireDefault(_docIntroductionRole);
-
-var _docNoterefRole = require('./dpub/docNoterefRole');
-
-var _docNoterefRole2 = _interopRequireDefault(_docNoterefRole);
-
-var _docNoticeRole = require('./dpub/docNoticeRole');
-
-var _docNoticeRole2 = _interopRequireDefault(_docNoticeRole);
-
-var _docPagebreakRole = require('./dpub/docPagebreakRole');
-
-var _docPagebreakRole2 = _interopRequireDefault(_docPagebreakRole);
-
-var _docPagelistRole = require('./dpub/docPagelistRole');
-
-var _docPagelistRole2 = _interopRequireDefault(_docPagelistRole);
-
-var _docPartRole = require('./dpub/docPartRole');
-
-var _docPartRole2 = _interopRequireDefault(_docPartRole);
-
-var _docPrefaceRole = require('./dpub/docPrefaceRole');
-
-var _docPrefaceRole2 = _interopRequireDefault(_docPrefaceRole);
-
-var _docPrologueRole = require('./dpub/docPrologueRole');
-
-var _docPrologueRole2 = _interopRequireDefault(_docPrologueRole);
-
-var _docPullquoteRole = require('./dpub/docPullquoteRole');
-
-var _docPullquoteRole2 = _interopRequireDefault(_docPullquoteRole);
-
-var _docQnaRole = require('./dpub/docQnaRole');
-
-var _docQnaRole2 = _interopRequireDefault(_docQnaRole);
-
-var _docSubtitleRole = require('./dpub/docSubtitleRole');
-
-var _docSubtitleRole2 = _interopRequireDefault(_docSubtitleRole);
-
-var _docTipRole = require('./dpub/docTipRole');
-
-var _docTipRole2 = _interopRequireDefault(_docTipRole);
-
-var _docTocRole = require('./dpub/docTocRole');
-
-var _docTocRole2 = _interopRequireDefault(_docTocRole);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var ariaDpubRoles = new Map([['doc-abstract', _docAbstractRole2.default], ['doc-acknowledgments', _docAcknowledgmentsRole2.default], ['doc-afterword', _docAfterwordRole2.default], ['doc-appendix', _docAppendixRole2.default], ['doc-backlink', _docBacklinkRole2.default], ['doc-biblioentry', _docBiblioentryRole2.default], ['doc-bibliography', _docBibliographyRole2.default], ['doc-biblioref', _docBibliorefRole2.default], ['doc-chapter', _docChapterRole2.default], ['doc-colophon', _docColophonRole2.default], ['doc-conclusion', _docConclusionRole2.default], ['doc-cover', _docCoverRole2.default], ['doc-credit', _docCreditRole2.default], ['doc-credits', _docCreditsRole2.default], ['doc-dedication', _docDedicationRole2.default], ['doc-endnote', _docEndnoteRole2.default], ['doc-endnotes', _docEndnotesRole2.default], ['doc-epigraph', _docEpigraphRole2.default], ['doc-epilogue', _docEpilogueRole2.default], ['doc-errata', _docErrataRole2.default], ['doc-example', _docExampleRole2.default], ['doc-footnote', _docFootnoteRole2.default], ['doc-foreword', _docForewordRole2.default], ['doc-glossary', _docGlossaryRole2.default], ['doc-glossref', _docGlossrefRole2.default], ['doc-index', _docIndexRole2.default], ['doc-introduction', _docIntroductionRole2.default], ['doc-noteref', _docNoterefRole2.default], ['doc-notice', _docNoticeRole2.default], ['doc-pagebreak', _docPagebreakRole2.default], ['doc-pagelist', _docPagelistRole2.default], ['doc-part', _docPartRole2.default], ['doc-preface', _docPrefaceRole2.default], ['doc-prologue', _docPrologueRole2.default], ['doc-pullquote', _docPullquoteRole2.default], ['doc-qna', _docQnaRole2.default], ['doc-subtitle', _docSubtitleRole2.default], ['doc-tip', _docTipRole2.default], ['doc-toc', _docTocRole2.default]]);
-exports.default = ariaDpubRoles;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js b/node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js
deleted file mode 100644
index 2c0725a..0000000
--- a/node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js
+++ /dev/null
@@ -1,286 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _alertRole = require('./literal/alertRole');
-
-var _alertRole2 = _interopRequireDefault(_alertRole);
-
-var _alertdialogRole = require('./literal/alertdialogRole');
-
-var _alertdialogRole2 = _interopRequireDefault(_alertdialogRole);
-
-var _applicationRole = require('./literal/applicationRole');
-
-var _applicationRole2 = _interopRequireDefault(_applicationRole);
-
-var _articleRole = require('./literal/articleRole');
-
-var _articleRole2 = _interopRequireDefault(_articleRole);
-
-var _bannerRole = require('./literal/bannerRole');
-
-var _bannerRole2 = _interopRequireDefault(_bannerRole);
-
-var _buttonRole = require('./literal/buttonRole');
-
-var _buttonRole2 = _interopRequireDefault(_buttonRole);
-
-var _cellRole = require('./literal/cellRole');
-
-var _cellRole2 = _interopRequireDefault(_cellRole);
-
-var _checkboxRole = require('./literal/checkboxRole');
-
-var _checkboxRole2 = _interopRequireDefault(_checkboxRole);
-
-var _columnheaderRole = require('./literal/columnheaderRole');
-
-var _columnheaderRole2 = _interopRequireDefault(_columnheaderRole);
-
-var _comboboxRole = require('./literal/comboboxRole');
-
-var _comboboxRole2 = _interopRequireDefault(_comboboxRole);
-
-var _complementaryRole = require('./literal/complementaryRole');
-
-var _complementaryRole2 = _interopRequireDefault(_complementaryRole);
-
-var _contentinfoRole = require('./literal/contentinfoRole');
-
-var _contentinfoRole2 = _interopRequireDefault(_contentinfoRole);
-
-var _definitionRole = require('./literal/definitionRole');
-
-var _definitionRole2 = _interopRequireDefault(_definitionRole);
-
-var _dialogRole = require('./literal/dialogRole');
-
-var _dialogRole2 = _interopRequireDefault(_dialogRole);
-
-var _directoryRole = require('./literal/directoryRole');
-
-var _directoryRole2 = _interopRequireDefault(_directoryRole);
-
-var _documentRole = require('./literal/documentRole');
-
-var _documentRole2 = _interopRequireDefault(_documentRole);
-
-var _feedRole = require('./literal/feedRole');
-
-var _feedRole2 = _interopRequireDefault(_feedRole);
-
-var _figureRole = require('./literal/figureRole');
-
-var _figureRole2 = _interopRequireDefault(_figureRole);
-
-var _formRole = require('./literal/formRole');
-
-var _formRole2 = _interopRequireDefault(_formRole);
-
-var _gridRole = require('./literal/gridRole');
-
-var _gridRole2 = _interopRequireDefault(_gridRole);
-
-var _gridcellRole = require('./literal/gridcellRole');
-
-var _gridcellRole2 = _interopRequireDefault(_gridcellRole);
-
-var _groupRole = require('./literal/groupRole');
-
-var _groupRole2 = _interopRequireDefault(_groupRole);
-
-var _headingRole = require('./literal/headingRole');
-
-var _headingRole2 = _interopRequireDefault(_headingRole);
-
-var _imgRole = require('./literal/imgRole');
-
-var _imgRole2 = _interopRequireDefault(_imgRole);
-
-var _linkRole = require('./literal/linkRole');
-
-var _linkRole2 = _interopRequireDefault(_linkRole);
-
-var _listRole = require('./literal/listRole');
-
-var _listRole2 = _interopRequireDefault(_listRole);
-
-var _listboxRole = require('./literal/listboxRole');
-
-var _listboxRole2 = _interopRequireDefault(_listboxRole);
-
-var _listitemRole = require('./literal/listitemRole');
-
-var _listitemRole2 = _interopRequireDefault(_listitemRole);
-
-var _logRole = require('./literal/logRole');
-
-var _logRole2 = _interopRequireDefault(_logRole);
-
-var _mainRole = require('./literal/mainRole');
-
-var _mainRole2 = _interopRequireDefault(_mainRole);
-
-var _marqueeRole = require('./literal/marqueeRole');
-
-var _marqueeRole2 = _interopRequireDefault(_marqueeRole);
-
-var _mathRole = require('./literal/mathRole');
-
-var _mathRole2 = _interopRequireDefault(_mathRole);
-
-var _menuRole = require('./literal/menuRole');
-
-var _menuRole2 = _interopRequireDefault(_menuRole);
-
-var _menubarRole = require('./literal/menubarRole');
-
-var _menubarRole2 = _interopRequireDefault(_menubarRole);
-
-var _menuitemRole = require('./literal/menuitemRole');
-
-var _menuitemRole2 = _interopRequireDefault(_menuitemRole);
-
-var _menuitemcheckboxRole = require('./literal/menuitemcheckboxRole');
-
-var _menuitemcheckboxRole2 = _interopRequireDefault(_menuitemcheckboxRole);
-
-var _menuitemradioRole = require('./literal/menuitemradioRole');
-
-var _menuitemradioRole2 = _interopRequireDefault(_menuitemradioRole);
-
-var _navigationRole = require('./literal/navigationRole');
-
-var _navigationRole2 = _interopRequireDefault(_navigationRole);
-
-var _noneRole = require('./literal/noneRole');
-
-var _noneRole2 = _interopRequireDefault(_noneRole);
-
-var _noteRole = require('./literal/noteRole');
-
-var _noteRole2 = _interopRequireDefault(_noteRole);
-
-var _optionRole = require('./literal/optionRole');
-
-var _optionRole2 = _interopRequireDefault(_optionRole);
-
-var _presentationRole = require('./literal/presentationRole');
-
-var _presentationRole2 = _interopRequireDefault(_presentationRole);
-
-var _progressbarRole = require('./literal/progressbarRole');
-
-var _progressbarRole2 = _interopRequireDefault(_progressbarRole);
-
-var _radioRole = require('./literal/radioRole');
-
-var _radioRole2 = _interopRequireDefault(_radioRole);
-
-var _radiogroupRole = require('./literal/radiogroupRole');
-
-var _radiogroupRole2 = _interopRequireDefault(_radiogroupRole);
-
-var _regionRole = require('./literal/regionRole');
-
-var _regionRole2 = _interopRequireDefault(_regionRole);
-
-var _rowRole = require('./literal/rowRole');
-
-var _rowRole2 = _interopRequireDefault(_rowRole);
-
-var _rowgroupRole = require('./literal/rowgroupRole');
-
-var _rowgroupRole2 = _interopRequireDefault(_rowgroupRole);
-
-var _rowheaderRole = require('./literal/rowheaderRole');
-
-var _rowheaderRole2 = _interopRequireDefault(_rowheaderRole);
-
-var _scrollbarRole = require('./literal/scrollbarRole');
-
-var _scrollbarRole2 = _interopRequireDefault(_scrollbarRole);
-
-var _searchRole = require('./literal/searchRole');
-
-var _searchRole2 = _interopRequireDefault(_searchRole);
-
-var _searchboxRole = require('./literal/searchboxRole');
-
-var _searchboxRole2 = _interopRequireDefault(_searchboxRole);
-
-var _separatorRole = require('./literal/separatorRole');
-
-var _separatorRole2 = _interopRequireDefault(_separatorRole);
-
-var _sliderRole = require('./literal/sliderRole');
-
-var _sliderRole2 = _interopRequireDefault(_sliderRole);
-
-var _spinbuttonRole = require('./literal/spinbuttonRole');
-
-var _spinbuttonRole2 = _interopRequireDefault(_spinbuttonRole);
-
-var _statusRole = require('./literal/statusRole');
-
-var _statusRole2 = _interopRequireDefault(_statusRole);
-
-var _switchRole = require('./literal/switchRole');
-
-var _switchRole2 = _interopRequireDefault(_switchRole);
-
-var _tabRole = require('./literal/tabRole');
-
-var _tabRole2 = _interopRequireDefault(_tabRole);
-
-var _tableRole = require('./literal/tableRole');
-
-var _tableRole2 = _interopRequireDefault(_tableRole);
-
-var _tablistRole = require('./literal/tablistRole');
-
-var _tablistRole2 = _interopRequireDefault(_tablistRole);
-
-var _tabpanelRole = require('./literal/tabpanelRole');
-
-var _tabpanelRole2 = _interopRequireDefault(_tabpanelRole);
-
-var _termRole = require('./literal/termRole');
-
-var _termRole2 = _interopRequireDefault(_termRole);
-
-var _textboxRole = require('./literal/textboxRole');
-
-var _textboxRole2 = _interopRequireDefault(_textboxRole);
-
-var _timerRole = require('./literal/timerRole');
-
-var _timerRole2 = _interopRequireDefault(_timerRole);
-
-var _toolbarRole = require('./literal/toolbarRole');
-
-var _toolbarRole2 = _interopRequireDefault(_toolbarRole);
-
-var _tooltipRole = require('./literal/tooltipRole');
-
-var _tooltipRole2 = _interopRequireDefault(_tooltipRole);
-
-var _treeRole = require('./literal/treeRole');
-
-var _treeRole2 = _interopRequireDefault(_treeRole);
-
-var _treegridRole = require('./literal/treegridRole');
-
-var _treegridRole2 = _interopRequireDefault(_treegridRole);
-
-var _treeitemRole = require('./literal/treeitemRole');
-
-var _treeitemRole2 = _interopRequireDefault(_treeitemRole);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var ariaLiteralRoles = new Map([['alert', _alertRole2.default], ['alertdialog', _alertdialogRole2.default], ['application', _applicationRole2.default], ['article', _articleRole2.default], ['banner', _bannerRole2.default], ['button', _buttonRole2.default], ['cell', _cellRole2.default], ['checkbox', _checkboxRole2.default], ['columnheader', _columnheaderRole2.default], ['combobox', _comboboxRole2.default], ['complementary', _complementaryRole2.default], ['contentinfo', _contentinfoRole2.default], ['definition', _definitionRole2.default], ['dialog', _dialogRole2.default], ['directory', _directoryRole2.default], ['document', _documentRole2.default], ['feed', _feedRole2.default], ['figure', _figureRole2.default], ['form', _formRole2.default], ['grid', _gridRole2.default], ['gridcell', _gridcellRole2.default], ['group', _groupRole2.default], ['heading', _headingRole2.default], ['img', _imgRole2.default], ['link', _linkRole2.default], ['list', _listRole2.default], ['listbox', _listboxRole2.default], ['listitem', _listitemRole2.default], ['log', _logRole2.default], ['main', _mainRole2.default], ['marquee', _marqueeRole2.default], ['math', _mathRole2.default], ['menu', _menuRole2.default], ['menubar', _menubarRole2.default], ['menuitem', _menuitemRole2.default], ['menuitemcheckbox', _menuitemcheckboxRole2.default], ['menuitemradio', _menuitemradioRole2.default], ['navigation', _navigationRole2.default], ['none', _noneRole2.default], ['note', _noteRole2.default], ['option', _optionRole2.default], ['presentation', _presentationRole2.default], ['progressbar', _progressbarRole2.default], ['radio', _radioRole2.default], ['radiogroup', _radiogroupRole2.default], ['region', _regionRole2.default], ['row', _rowRole2.default], ['rowgroup', _rowgroupRole2.default], ['rowheader', _rowheaderRole2.default], ['scrollbar', _scrollbarRole2.default], ['search', _searchRole2.default], ['searchbox', _searchboxRole2.default], ['separator', _separatorRole2.default], ['slider', _sliderRole2.default], ['spinbutton', _spinbuttonRole2.default], ['status', _statusRole2.default], ['switch', _switchRole2.default], ['tab', _tabRole2.default], ['table', _tableRole2.default], ['tablist', _tablistRole2.default], ['tabpanel', _tabpanelRole2.default], ['term', _termRole2.default], ['textbox', _textboxRole2.default], ['timer', _timerRole2.default], ['toolbar', _toolbarRole2.default], ['tooltip', _tooltipRole2.default], ['tree', _treeRole2.default], ['treegrid', _treegridRole2.default], ['treeitem', _treeitemRole2.default]]);
-exports.default = ariaLiteralRoles;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js
deleted file mode 100644
index 3b982f7..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docAbstractRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'abstract [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docAbstractRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js
deleted file mode 100644
index 481962c..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docAcknowledgmentsRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'acknowledgments [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docAcknowledgmentsRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js
deleted file mode 100644
index f84ce5b..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docAfterwordRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'afterword [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docAfterwordRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js
deleted file mode 100644
index 45e4cd6..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docAppendixRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'appendix [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docAppendixRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js
deleted file mode 100644
index 29ff715..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docBacklinkRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'content'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'referrer [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command', 'link']]
-};
-
-exports.default = docBacklinkRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js
deleted file mode 100644
index 9494be3..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docBiblioentryRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'EPUB biblioentry [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: ['doc-bibliography'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'listitem']]
-};
-
-exports.default = docBiblioentryRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js
deleted file mode 100644
index 359d7ee..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docBibliographyRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'bibliography [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['doc-biblioentry']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docBibliographyRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js
deleted file mode 100644
index ae9c56d..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docBibliorefRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'biblioref [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command', 'link']]
-};
-
-exports.default = docBibliorefRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js
deleted file mode 100644
index 1a3bf92..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docChapterRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'chapter [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docChapterRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js
deleted file mode 100644
index 46953c8..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docColophonRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'colophon [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docColophonRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js
deleted file mode 100644
index 6f97f54..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docConclusionRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'conclusion [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docConclusionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js
deleted file mode 100644
index 7a1932f..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docCoverRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'cover [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'img']]
-};
-
-exports.default = docCoverRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js
deleted file mode 100644
index 719e7d8..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docCreditRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'credit [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docCreditRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js
deleted file mode 100644
index 600095d..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docCreditsRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'credits [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docCreditsRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js
deleted file mode 100644
index 62f1ec4..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docDedicationRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'dedication [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docDedicationRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js
deleted file mode 100644
index 091f25c..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docEndnoteRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'rearnote [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: ['doc-endnotes'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'listitem']]
-};
-
-exports.default = docEndnoteRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js
deleted file mode 100644
index 6762d0f..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docEndnotesRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'rearnotes [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['doc-endnote']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docEndnotesRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js
deleted file mode 100644
index 25a249b..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docEpigraphRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'epigraph [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docEpigraphRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js
deleted file mode 100644
index 93cd59a..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docEpilogueRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'epilogue [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docEpilogueRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js
deleted file mode 100644
index 1e6292b..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docErrataRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'errata [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docErrataRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js
deleted file mode 100644
index 9303b45..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docExampleRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docExampleRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js
deleted file mode 100644
index 0f0c703..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docFootnoteRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'footnote [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docFootnoteRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js
deleted file mode 100644
index ef8d547..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docForewordRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'foreword [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docForewordRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js
deleted file mode 100644
index 7e1a3c1..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docGlossaryRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'glossary [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['term'], ['definition']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docGlossaryRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js
deleted file mode 100644
index 8ff014a..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docGlossrefRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'glossref [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command', 'link']]
-};
-
-exports.default = docGlossrefRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js
deleted file mode 100644
index 14a90c6..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docIndexRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'index [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]
-};
-
-exports.default = docIndexRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js
deleted file mode 100644
index b0ac484..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docIntroductionRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'introduction [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docIntroductionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js
deleted file mode 100644
index e5d9717..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docNoterefRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'noteref [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command', 'link']]
-};
-
-exports.default = docNoterefRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js
deleted file mode 100644
index 4d18713..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docNoticeRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'notice [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'note']]
-};
-
-exports.default = docNoticeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js
deleted file mode 100644
index ef6d9d8..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPagebreakRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'pagebreak [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'separator']]
-};
-
-exports.default = docPagebreakRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js
deleted file mode 100644
index 47d909c..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPagelistRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'page-list [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]
-};
-
-exports.default = docPagelistRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js
deleted file mode 100644
index b71e71f..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPartRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'part [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docPartRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js
deleted file mode 100644
index 550286e..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPrefaceRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'preface [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docPrefaceRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js
deleted file mode 100644
index 3e6b491..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPrologueRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'prologue [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = docPrologueRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js
deleted file mode 100644
index c17add8..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docPullquoteRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'pullquote [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['none']]
-};
-
-exports.default = docPullquoteRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js
deleted file mode 100644
index 349ae5a..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docQnaRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'qna [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = docQnaRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js
deleted file mode 100644
index 53edeae..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docSubtitleRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'subtitle [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'sectionhead']]
-};
-
-exports.default = docSubtitleRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js
deleted file mode 100644
index f6a2b59..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docTipRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'help [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'note']]
-};
-
-exports.default = docTipRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js b/node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js
deleted file mode 100644
index a9587ed..0000000
--- a/node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var docTocRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-describedat': null
-  },
-  relatedConcepts: [{
-    module: 'EPUB',
-    concept: {
-      name: 'toc [EPUB-SSV]'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]
-};
-
-exports.default = docTocRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/alertRole.js b/node_modules/aria-query/lib/etc/roles/literal/alertRole.js
deleted file mode 100644
index ca8fca6..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/alertRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var alertRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-atomic': 'true',
-    'aria-live': 'assertive'
-  },
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'alert'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = alertRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js b/node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js
deleted file mode 100644
index a7ef1f9..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var alertdialogRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'alert'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'alert'], ['roletype', 'window', 'dialog']]
-};
-
-exports.default = alertdialogRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/applicationRole.js b/node_modules/aria-query/lib/etc/roles/literal/applicationRole.js
deleted file mode 100644
index d6d60b9..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/applicationRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var applicationRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    concept: {
-      name: 'Device Independence Delivery Unit'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-activedescendant': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = applicationRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/articleRole.js b/node_modules/aria-query/lib/etc/roles/literal/articleRole.js
deleted file mode 100644
index a8a0ab9..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/articleRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var articleRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-posinset': null,
-    'aria-setsize': null
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'article'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'document']]
-};
-
-exports.default = articleRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/bannerRole.js b/node_modules/aria-query/lib/etc/roles/literal/bannerRole.js
deleted file mode 100644
index 835e2c9..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/bannerRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var bannerRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = bannerRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/buttonRole.js b/node_modules/aria-query/lib/etc/roles/literal/buttonRole.js
deleted file mode 100644
index f776f2e..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/buttonRole.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var buttonRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'button'
-    }
-  }],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-expanded': null,
-    'aria-pressed': null
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'link'
-    }
-  }, {
-    module: 'XForms',
-    concept: {
-      name: 'trigger'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command']]
-};
-
-exports.default = buttonRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/cellRole.js b/node_modules/aria-query/lib/etc/roles/literal/cellRole.js
deleted file mode 100644
index 63bdce1..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/cellRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var cellRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'td'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-colindex': null,
-    'aria-colspan': null,
-    'aria-rowindex': null,
-    'aria-rowspan': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['row'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = cellRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js
deleted file mode 100644
index f3c0e71..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var checkboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': 'false',
-    'aria-readonly': null
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'option'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'checkbox'
-      }]
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-checked': null
-  },
-  superClass: [['roletype', 'widget', 'input']]
-};
-
-exports.default = checkboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js b/node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js
deleted file mode 100644
index 80386a5..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var columnheaderRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'th'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-sort': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['row'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]
-};
-
-exports.default = columnheaderRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js
deleted file mode 100644
index 18c7b66..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var comboboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-expanded': 'false',
-    'aria-autocomplete': null,
-    'aria-required': null,
-    'aria-haspopup': 'listbox',
-    'aria-readonly': null
-  },
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'select'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'select'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['textbox'], ['listbox'], ['tree'], ['grid'], ['dialog']],
-  requiredProps: {
-    'aria-controls': null,
-    'aria-expanded': 'false'
-  },
-  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]
-};
-
-exports.default = comboboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js b/node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js
deleted file mode 100644
index 349cc77..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var complementaryRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = complementaryRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js b/node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js
deleted file mode 100644
index fb34dcd..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var contentinfoRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = contentinfoRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/definitionRole.js b/node_modules/aria-query/lib/etc/roles/literal/definitionRole.js
deleted file mode 100644
index d28c238..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/definitionRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var definitionRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dd'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'dfn'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = definitionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/dialogRole.js b/node_modules/aria-query/lib/etc/roles/literal/dialogRole.js
deleted file mode 100644
index fed41d0..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/dialogRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var dialogRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'window']]
-};
-
-exports.default = dialogRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/directoryRole.js b/node_modules/aria-query/lib/etc/roles/literal/directoryRole.js
deleted file mode 100644
index 605a37a..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/directoryRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var directoryRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'DAISY Guide'
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'list']]
-};
-
-exports.default = directoryRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/documentRole.js b/node_modules/aria-query/lib/etc/roles/literal/documentRole.js
deleted file mode 100644
index 36740f0..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/documentRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var documentRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-expanded': null
-  },
-  relatedConcepts: [{
-    concept: {
-      name: 'Device Independence Delivery Unit'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = documentRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/feedRole.js b/node_modules/aria-query/lib/etc/roles/literal/feedRole.js
deleted file mode 100644
index e3b9e55..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/feedRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var feedRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['article']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'list']]
-};
-
-exports.default = feedRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/figureRole.js b/node_modules/aria-query/lib/etc/roles/literal/figureRole.js
deleted file mode 100644
index 4ecbe3d..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/figureRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var figureRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'figure'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = figureRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/formRole.js b/node_modules/aria-query/lib/etc/roles/literal/formRole.js
deleted file mode 100644
index 65b0ad2..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/formRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var formRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'form'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = formRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/gridRole.js b/node_modules/aria-query/lib/etc/roles/literal/gridRole.js
deleted file mode 100644
index df0883c..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/gridRole.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var gridRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'table',
-      attributes: [{
-        name: 'role',
-        value: 'grid'
-      }]
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-level': null,
-    'aria-multiselectable': null,
-    'aria-readonly': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['rowgroup', 'row'], ['row']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'table']]
-};
-
-exports.default = gridRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js b/node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js
deleted file mode 100644
index e82c740..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var gridcellRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'td',
-      attributes: [{
-        name: 'role',
-        value: 'gridcell'
-      }]
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-readonly': null,
-    'aria-required': null,
-    'aria-selected': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['row'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'widget']]
-};
-
-exports.default = gridcellRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/groupRole.js b/node_modules/aria-query/lib/etc/roles/literal/groupRole.js
deleted file mode 100644
index 8f5f8c6..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/groupRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var groupRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-activedescendant': null
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'fieldset'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = groupRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/headingRole.js b/node_modules/aria-query/lib/etc/roles/literal/headingRole.js
deleted file mode 100644
index d6ba588..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/headingRole.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var headingRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-level': '2'
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'h1'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h2'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h3'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h4'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h5'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h6'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'sectionhead']]
-};
-
-exports.default = headingRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/imgRole.js b/node_modules/aria-query/lib/etc/roles/literal/imgRole.js
deleted file mode 100644
index ef8f91e..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/imgRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var imgRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'img'
-    }
-  }, {
-    module: 'DTB',
-    concept: {
-      name: 'imggroup'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = imgRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/linkRole.js b/node_modules/aria-query/lib/etc/roles/literal/linkRole.js
deleted file mode 100644
index 3e38a25..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/linkRole.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var linkRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-expanded': null
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'a',
-      attributes: [{
-        name: 'href'
-      }]
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'area',
-      attributes: [{
-        name: 'href'
-      }]
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'link'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command']]
-};
-
-exports.default = linkRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/listRole.js b/node_modules/aria-query/lib/etc/roles/literal/listRole.js
deleted file mode 100644
index 985e6aa..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/listRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var listRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'ol'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'ul'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['group', 'listitem'], ['listitem']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = listRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/listboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/listboxRole.js
deleted file mode 100644
index 237989e..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/listboxRole.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var listboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-multiselectable': null,
-    'aria-readonly': null,
-    'aria-required': null,
-    'aria-orientation': 'vertical'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'list'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'select'
-    }
-  }, {
-    module: 'XForms',
-    concept: {
-      name: 'select'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['option']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]
-};
-
-exports.default = listboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/listitemRole.js b/node_modules/aria-query/lib/etc/roles/literal/listitemRole.js
deleted file mode 100644
index 10d4896..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/listitemRole.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var listitemRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'li'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-level': null,
-    'aria-posinset': null,
-    'aria-setsize': null
-  },
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'item'
-    }
-  }],
-  requireContextRole: ['group', 'list'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = listitemRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/logRole.js b/node_modules/aria-query/lib/etc/roles/literal/logRole.js
deleted file mode 100644
index 967c73c..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/logRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var logRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-live': 'polite'
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = logRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/mainRole.js b/node_modules/aria-query/lib/etc/roles/literal/mainRole.js
deleted file mode 100644
index 9841c28..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/mainRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var mainRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'main'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = mainRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js b/node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js
deleted file mode 100644
index ea2ab78..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var marqueeRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = marqueeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/mathRole.js b/node_modules/aria-query/lib/etc/roles/literal/mathRole.js
deleted file mode 100644
index c099bda..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/mathRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var mathRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = mathRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/menuRole.js b/node_modules/aria-query/lib/etc/roles/literal/menuRole.js
deleted file mode 100644
index 86865c6..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/menuRole.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var menuRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-orientation': 'vertical'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'list'
-    }
-  }, {
-    module: 'DTB',
-    concept: {
-      name: 'sidebar'
-    }
-  }, {
-    module: 'XForms',
-    concept: {
-      name: 'select'
-    }
-  }, {
-    module: 'JAPI',
-    concept: {
-      name: 'MENU'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['group', 'menuitemradio'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]
-};
-
-exports.default = menuRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/menubarRole.js b/node_modules/aria-query/lib/etc/roles/literal/menubarRole.js
deleted file mode 100644
index 0f48587..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/menubarRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var menubarRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-orientation': 'vertical'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'toolbar'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['group', 'menuitemradio'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']]
-};
-
-exports.default = menubarRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js b/node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js
deleted file mode 100644
index 2ff41cd..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var menuitemRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-posinset': null,
-    'aria-setsize': null
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'option'
-    }
-  }, {
-    module: 'ARIA',
-    concept: {
-      name: 'listitem'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'menuitem'
-    }
-  }, {
-    module: 'JAPI',
-    concept: {
-      name: 'MENU_ITEM'
-    }
-  }],
-  requireContextRole: ['group', 'menu', 'menubar'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'command']]
-};
-
-exports.default = menuitemRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js
deleted file mode 100644
index c47211d..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var menuitemcheckboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': 'false'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menuitem'
-    }
-  }],
-  requireContextRole: ['menu', 'menubar'],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-checked': null
-  },
-  superClass: [['roletype', 'widget', 'command', 'menuitem'], ['roletype', 'widget', 'input', 'checkbox']]
-};
-
-exports.default = menuitemcheckboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js b/node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js
deleted file mode 100644
index 845a33e..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var menuitemradioRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': 'false'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menuitem'
-    }
-  }],
-  requireContextRole: ['group', 'menu', 'menubar'],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-checked': null
-  },
-  superClass: [['roletype', 'widget', 'command', 'menuitem', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'checkbox', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'radio']]
-};
-
-exports.default = menuitemradioRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/navigationRole.js b/node_modules/aria-query/lib/etc/roles/literal/navigationRole.js
deleted file mode 100644
index 9bb2dcc..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/navigationRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var navigationRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'nav'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = navigationRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/noneRole.js b/node_modules/aria-query/lib/etc/roles/literal/noneRole.js
deleted file mode 100644
index f426bb2..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/noneRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var noneRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: [],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: []
-};
-
-exports.default = noneRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/noteRole.js b/node_modules/aria-query/lib/etc/roles/literal/noteRole.js
deleted file mode 100644
index 8e5866b..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/noteRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var noteRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = noteRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/optionRole.js b/node_modules/aria-query/lib/etc/roles/literal/optionRole.js
deleted file mode 100644
index 4996428..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/optionRole.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var optionRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'option'
-    }
-  }],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': null,
-    'aria-posinset': null,
-    'aria-selected': 'false',
-    'aria-setsize': null
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'listitem'
-    }
-  }, {
-    module: 'XForms',
-    concept: {
-      name: 'item'
-    }
-  }],
-  requireContextRole: ['listbox'],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-selected': 'false'
-  },
-  superClass: [['roletype', 'widget', 'input']]
-};
-
-exports.default = optionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/presentationRole.js b/node_modules/aria-query/lib/etc/roles/literal/presentationRole.js
deleted file mode 100644
index 7ca3b0a..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/presentationRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var presentationRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = presentationRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js b/node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js
deleted file mode 100644
index 1c6e689..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var progressbarRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'status'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'range']]
-};
-
-exports.default = progressbarRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/radioRole.js b/node_modules/aria-query/lib/etc/roles/literal/radioRole.js
deleted file mode 100644
index a3a14be..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/radioRole.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var radioRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': 'false',
-    'aria-posinset': null,
-    'aria-selected': null,
-    'aria-setsize': null
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'radio'
-      }]
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-checked': 'false'
-  },
-  superClass: [['roletype', 'widget', 'input']]
-};
-
-exports.default = radioRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js b/node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js
deleted file mode 100644
index 60b243d..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var radiogroupRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-readonly': null,
-    'aria-required': null
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'list'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['radio']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]
-};
-
-exports.default = radiogroupRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/regionRole.js b/node_modules/aria-query/lib/etc/roles/literal/regionRole.js
deleted file mode 100644
index 0d467e7..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/regionRole.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var regionRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [
-  // frame tag on html5 is deprecated
-  {
-    module: 'HTML',
-    concept: {
-      name: 'frame'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'section'
-    }
-  }, {
-    concept: {
-      name: 'Device Independence Glossart perceivable unit'
-    }
-  }, {
-    module: 'ARIA',
-    concept: {
-      name: 'section'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = regionRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/rowRole.js b/node_modules/aria-query/lib/etc/roles/literal/rowRole.js
deleted file mode 100644
index d7ff890..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/rowRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var rowRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'tr'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-colindex': null,
-    'aria-level': null,
-    'aria-rowindex': null,
-    'aria-selected': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],
-  requiredOwnedElements: [['cell'], ['columnheader'], ['gridcell'], ['rowheader']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'group'], ['roletype', 'widget']]
-};
-
-exports.default = rowRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js b/node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js
deleted file mode 100644
index 0727eb8..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var rowgroupRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'tbody'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'tfoot'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'thead'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-activedescendant': null,
-    'aria-expanded': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['grid', 'table', 'treegrid'],
-  requiredOwnedElements: [['row']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = rowgroupRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js b/node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js
deleted file mode 100644
index 070456b..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var rowheaderRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'th',
-      attributes: [{
-        name: 'scope',
-        value: 'row'
-      }]
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-sort': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['row'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]
-};
-
-exports.default = rowheaderRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js b/node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js
deleted file mode 100644
index 5096426..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var scrollbarRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {
-    'aria-controls': null,
-    'aria-orientation': null,
-    'aria-valuemax': null,
-    'aria-valuemin': null,
-    'aria-valuenow': null,
-    'aria-atomic': null,
-    'aria-busy': null,
-    'aria-describedby': null,
-    'aria-disabled': null,
-    'aria-dropeffect': null,
-    'aria-flowto': null,
-    'aria-grabbed': null,
-    'aria-haspopup': null,
-    'aria-hidden': null,
-    'aria-invalid': null,
-    'aria-label': null,
-    'aria-labelledby': null,
-    'aria-live': null,
-    'aria-owns': null,
-    'aria-relevant': null,
-    'aria-valuetext': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-controls': null,
-    'aria-orientation': null,
-    'aria-valuemax': null,
-    'aria-valuemin': null,
-    'aria-valuenow': null
-  },
-  superClass: []
-};
-
-exports.default = scrollbarRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/searchRole.js b/node_modules/aria-query/lib/etc/roles/literal/searchRole.js
deleted file mode 100644
index 61d55e3..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/searchRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var searchRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'landmark']]
-};
-
-exports.default = searchRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js
deleted file mode 100644
index eb43a1a..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var searchboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'search'
-      }]
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'input', 'textbox']]
-};
-
-exports.default = searchboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/separatorRole.js b/node_modules/aria-query/lib/etc/roles/literal/separatorRole.js
deleted file mode 100644
index f24a931..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/separatorRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var separatorRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {
-    'aria-expanded': null,
-    'aria-orientation': 'horizontal'
-  },
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'hr'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure']]
-};
-
-exports.default = separatorRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/sliderRole.js b/node_modules/aria-query/lib/etc/roles/literal/sliderRole.js
deleted file mode 100644
index 4d7fdb4..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/sliderRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var sliderRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author'],
-  props: {
-    'aria-orientation': 'horizontal',
-    'aria-readonly': null,
-    'aria-valuemax': '100',
-    'aria-valuemin': '0',
-    'aria-valuenow': '50'
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-valuemax': '100',
-    'aria-valuemin': '0',
-    'aria-valuenow': '50'
-  },
-  superClass: [['roletype', 'widget', 'input'], ['roletype', 'widget', 'range']]
-};
-
-exports.default = sliderRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js b/node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js
deleted file mode 100644
index 5b94404..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var spinbuttonRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-valuenow': '0',
-    'aria-required': null,
-    'aria-readonly': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-valuemax': null,
-    'aria-valuemin': null,
-    'aria-valuenow': '0'
-  },
-  superClass: [['roletype', 'widget', 'composite'], ['roletype', 'widget', 'input'], ['roletype', 'widget', 'range']]
-};
-
-exports.default = spinbuttonRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/statusRole.js b/node_modules/aria-query/lib/etc/roles/literal/statusRole.js
deleted file mode 100644
index 860322e..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/statusRole.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var statusRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-atomic': 'true',
-    'aria-live': 'polite'
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = statusRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/switchRole.js b/node_modules/aria-query/lib/etc/roles/literal/switchRole.js
deleted file mode 100644
index 7bbf3bd..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/switchRole.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var switchRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-checked': 'false'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'button'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {
-    'aria-checked': 'false'
-  },
-  superClass: [['roletype', 'widget', 'input', 'checkbox']]
-};
-
-exports.default = switchRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/tabRole.js b/node_modules/aria-query/lib/etc/roles/literal/tabRole.js
deleted file mode 100644
index ef0c547..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/tabRole.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var tabRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: true,
-  nameFrom: ['author', 'contents'],
-  props: {
-    'aria-posinset': null,
-    'aria-selected': 'false',
-    'aria-setsize': null
-  },
-  relatedConcepts: [],
-  requireContextRole: ['tablist'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'sectionhead'], ['roletype', 'widget']]
-};
-
-exports.default = tabRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/tableRole.js b/node_modules/aria-query/lib/etc/roles/literal/tableRole.js
deleted file mode 100644
index 11087db..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/tableRole.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var tableRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'table'
-    }
-  }],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-colcount': null,
-    'aria-rowcount': null
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['row'], ['rowgroup', 'row']],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = tableRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/tablistRole.js b/node_modules/aria-query/lib/etc/roles/literal/tablistRole.js
deleted file mode 100644
index 09a88c6..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/tablistRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var tablistRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-level': null,
-    'aria-multiselectable': null,
-    'aria-orientation': 'horizontal',
-    'aria-expanded': null
-  },
-  relatedConcepts: [{
-    module: 'DAISY',
-    concept: {
-      name: 'guide'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [['tab']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite']]
-};
-
-exports.default = tablistRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js b/node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js
deleted file mode 100644
index 82d145f..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var tabpanelRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = tabpanelRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/termRole.js b/node_modules/aria-query/lib/etc/roles/literal/termRole.js
deleted file mode 100644
index 913a02f..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/termRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var termRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dt'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = termRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/textboxRole.js b/node_modules/aria-query/lib/etc/roles/literal/textboxRole.js
deleted file mode 100644
index d70d9c8..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/textboxRole.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var textboxRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-activedescendant': null,
-    'aria-autocomplete': null,
-    'aria-multiline': null,
-    'aria-placeholder': null,
-    'aria-readonly': null,
-    'aria-required': null
-  },
-  relatedConcepts: [{
-    module: 'XForms',
-    concept: {
-      name: 'input'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'textarea'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'text'
-      }]
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'input']]
-};
-
-exports.default = textboxRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/timerRole.js b/node_modules/aria-query/lib/etc/roles/literal/timerRole.js
deleted file mode 100644
index 406471c..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/timerRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var timerRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'status']]
-};
-
-exports.default = timerRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js b/node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js
deleted file mode 100644
index 3b51df1..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var toolbarRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-orientation': 'horizontal'
-  },
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menubar'
-    }
-  }],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'group']]
-};
-
-exports.default = toolbarRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js b/node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js
deleted file mode 100644
index 7c1f317..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var tooltipRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section']]
-};
-
-exports.default = tooltipRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/treeRole.js b/node_modules/aria-query/lib/etc/roles/literal/treeRole.js
deleted file mode 100644
index ed73b30..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/treeRole.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var treeRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {
-    'aria-multiselectable': null,
-    'aria-required': null,
-    'aria-orientation': 'vertical'
-  },
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['group', 'treeitem'], ['treeitem']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]
-};
-
-exports.default = treeRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/treegridRole.js b/node_modules/aria-query/lib/etc/roles/literal/treegridRole.js
deleted file mode 100644
index 11f64ff..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/treegridRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var treegridRole = {
-  abstract: false,
-  accessibleNameRequired: false,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: [],
-  requiredOwnedElements: [['rowgroup', 'row'], ['row']],
-  requiredProps: {},
-  superClass: [['roletype', 'widget', 'composite', 'grid'], ['roletype', 'structure', 'section', 'table', 'grid'], ['roletype', 'widget', 'composite', 'select', 'tree'], ['roletype', 'structure', 'section', 'group', 'select', 'tree']]
-};
-
-exports.default = treegridRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js b/node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js
deleted file mode 100644
index 3a2d653..0000000
--- a/node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var treeitemRole = {
-  abstract: false,
-  accessibleNameRequired: true,
-  baseConcepts: [],
-  childrenPresentational: false,
-  nameFrom: ['author', 'contents'],
-  props: {},
-  relatedConcepts: [],
-  requireContextRole: ['group', 'tree'],
-  requiredOwnedElements: [],
-  requiredProps: {},
-  superClass: [['roletype', 'structure', 'section', 'listitem'], ['roletype', 'widget', 'input', 'option']]
-};
-
-exports.default = treeitemRole;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/index.js b/node_modules/aria-query/lib/index.js
deleted file mode 100644
index 7aaae85..0000000
--- a/node_modules/aria-query/lib/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.roleElements = exports.elementRoles = exports.roles = exports.dom = exports.aria = undefined;
-
-var _ariaPropsMap = require('./ariaPropsMap');
-
-var _ariaPropsMap2 = _interopRequireDefault(_ariaPropsMap);
-
-var _domMap = require('./domMap');
-
-var _domMap2 = _interopRequireDefault(_domMap);
-
-var _rolesMap = require('./rolesMap');
-
-var _rolesMap2 = _interopRequireDefault(_rolesMap);
-
-var _elementRoleMap = require('./elementRoleMap');
-
-var _elementRoleMap2 = _interopRequireDefault(_elementRoleMap);
-
-var _roleElementMap = require('./roleElementMap');
-
-var _roleElementMap2 = _interopRequireDefault(_roleElementMap);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var aria = exports.aria = _ariaPropsMap2.default;
-
-var dom = exports.dom = _domMap2.default;
-var roles = exports.roles = _rolesMap2.default;
-var elementRoles = exports.elementRoles = _elementRoleMap2.default;
-var roleElements = exports.roleElements = _roleElementMap2.default;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/roleElementMap.js b/node_modules/aria-query/lib/roleElementMap.js
deleted file mode 100644
index 3e2877f..0000000
--- a/node_modules/aria-query/lib/roleElementMap.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _rolesMap = require('./rolesMap');
-
-var _rolesMap2 = _interopRequireDefault(_rolesMap);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var roleElementMap = new Map([]);
-
-[].concat(_toConsumableArray(_rolesMap2.default.keys())).forEach(function (key) {
-  var role = _rolesMap2.default.get(key);
-  if (role) {
-    [].concat(_toConsumableArray(role.baseConcepts), _toConsumableArray(role.relatedConcepts)).forEach(function (relation) {
-      if (relation.module === 'HTML') {
-        var concept = relation.concept;
-        if (concept) {
-          var relationConcepts = roleElementMap.get(key) || new Set([]);
-          relationConcepts.add(concept);
-          roleElementMap.set(key, relationConcepts);
-        }
-      }
-    });
-  }
-});
-
-exports.default = roleElementMap;
\ No newline at end of file
diff --git a/node_modules/aria-query/lib/rolesMap.js b/node_modules/aria-query/lib/rolesMap.js
deleted file mode 100644
index d6c6f3b..0000000
--- a/node_modules/aria-query/lib/rolesMap.js
+++ /dev/null
@@ -1,108 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _ariaAbstractRoles = require('./etc/roles/ariaAbstractRoles');
-
-var _ariaAbstractRoles2 = _interopRequireDefault(_ariaAbstractRoles);
-
-var _ariaLiteralRoles = require('./etc/roles/ariaLiteralRoles');
-
-var _ariaLiteralRoles2 = _interopRequireDefault(_ariaLiteralRoles);
-
-var _ariaDpubRoles = require('./etc/roles/ariaDpubRoles');
-
-var _ariaDpubRoles2 = _interopRequireDefault(_ariaDpubRoles);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-var rolesMap = new Map([]);
-[_ariaAbstractRoles2.default, _ariaLiteralRoles2.default, _ariaDpubRoles2.default].forEach(function (roleSet) {
-  roleSet.forEach(function (roleDefinition, name) {
-    return rolesMap.set(name, roleDefinition);
-  });
-});
-
-rolesMap.forEach(function (roleDefinition, name) {
-  // Conglomerate the properties
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = roleDefinition.superClass[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      var superClassIter = _step.value;
-      var _iteratorNormalCompletion2 = true;
-      var _didIteratorError2 = false;
-      var _iteratorError2 = undefined;
-
-      try {
-        for (var _iterator2 = superClassIter[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-          var superClassName = _step2.value;
-
-          var superClassDefinition = rolesMap.get(superClassName);
-          if (superClassDefinition) {
-            var _iteratorNormalCompletion3 = true;
-            var _didIteratorError3 = false;
-            var _iteratorError3 = undefined;
-
-            try {
-              for (var _iterator3 = Object.keys(superClassDefinition.props)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
-                var prop = _step3.value;
-
-                if (!Object.prototype.hasOwnProperty.call(roleDefinition.props, prop)) {
-                  Object.assign(roleDefinition.props, _defineProperty({}, prop, superClassDefinition.props[prop]));
-                }
-              }
-            } catch (err) {
-              _didIteratorError3 = true;
-              _iteratorError3 = err;
-            } finally {
-              try {
-                if (!_iteratorNormalCompletion3 && _iterator3.return) {
-                  _iterator3.return();
-                }
-              } finally {
-                if (_didIteratorError3) {
-                  throw _iteratorError3;
-                }
-              }
-            }
-          }
-        }
-      } catch (err) {
-        _didIteratorError2 = true;
-        _iteratorError2 = err;
-      } finally {
-        try {
-          if (!_iteratorNormalCompletion2 && _iterator2.return) {
-            _iterator2.return();
-          }
-        } finally {
-          if (_didIteratorError2) {
-            throw _iteratorError2;
-          }
-        }
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-});
-
-exports.default = rolesMap;
\ No newline at end of file
diff --git a/node_modules/aria-query/package.json b/node_modules/aria-query/package.json
deleted file mode 100644
index 1432a36..0000000
--- a/node_modules/aria-query/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-  "name": "aria-query",
-  "version": "3.0.0",
-  "description": "Programmatic access to the ARIA specification",
-  "main": "lib/index.js",
-  "files": [
-    "lib"
-  ],
-  "scripts": {
-    "build": "rimraf lib && babel src --out-dir lib",
-    "prepublish": "npm run lint && npm run flow && npm run test && npm run build",
-    "coveralls": "cat ./reports/lcov.info | coveralls",
-    "flow": "flow; test $? -eq 0 -o $? -eq 2",
-    "lint": "eslint  --config .eslintrc src __tests__",
-    "lint:fix": "npm run lint -- --fix",
-    "pretest": "npm run lint:fix && npm run flow",
-    "test": "jest --coverage",
-    "output_as_hack": "babel-node ./scripts/output_as_hack.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/A11yance/aria-query.git"
-  },
-  "keywords": [
-    "accessibility",
-    "ARIA"
-  ],
-  "author": "Jesse Beach <splendidnoise@gmail.com>",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/A11yance/aria-query/issues"
-  },
-  "homepage": "https://github.com/A11yance/aria-query#readme",
-  "devDependencies": {
-    "babel-cli": "^6.18.0",
-    "babel-core": "^6.21.0",
-    "babel-eslint": "^7.1.1",
-    "babel-jest": "^18.0.0",
-    "babel-plugin-transform-flow-strip-types": "^6.21.0",
-    "babel-plugin-transform-object-rest-spread": "^6.20.2",
-    "babel-polyfill": "^6.20.0",
-    "babel-preset-es2015": "^6.18.0",
-    "coveralls": "^2.11.15",
-    "eslint": "^3.13.1",
-    "eslint-plugin-flowtype": "^2.30.0",
-    "eslint-plugin-import": "^2.2.0",
-    "expect": "^1.20.2",
-    "flow-bin": "^0.40.0",
-    "jest": "^18.1.0",
-    "minimist": "^1.2.0",
-    "rimraf": "^2.5.4"
-  },
-  "dependencies": {
-    "ast-types-flow": "0.0.7",
-    "commander": "^2.11.0"
-  },
-  "jest": {
-    "coverageReporters": [
-      "lcov"
-    ],
-    "coverageDirectory": "reports",
-    "testPathDirs": [
-      "<rootDir>/__tests__"
-    ]
-  }
-}
diff --git a/node_modules/ast-types-flow/README.md b/node_modules/ast-types-flow/README.md
deleted file mode 100644
index 61daf69..0000000
--- a/node_modules/ast-types-flow/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# ast-types-flow
-
-Flow types for the Javascript AST. Based off of [benjamn/ast-types](https://github.com/benjamn/ast-types).
-
-## Usage
-
-First install `ast-types-flow` via npm, then you can import any of the types
-that are exported.
-
-```javascript
-/* @flow */
-
-import type {Node} from 'ast-types-flow';
-
-function getName(node: Node): string {
-  switch (node.type) {
-    case 'Identifier':
-      return node.name;
-
-    case 'ClassDeclaration':
-      return node.id.name; // Error, id could be null.
-
-    case 'FunctionDeclaration':
-      return node.id.name; // Fine if it's always there.
-
-    case 'FunctionExpression':
-      if (node.id) {
-        return node.id.name; // Can refine id to make sure it exists.
-      } else {
-        return 'Unknown';
-      }
-
-    case 'Literal':
-      return node.name; // Error, Literals don't have names, don't be silly.
-  }
-  return 'Unknown';
-}
-```
-
-## How it works
-
-A notion of "extends" is added to the Flow syntax via comments. A transform is
-included that will compile the source code into useful disjoint union types
-based on how the different types extend each other. For example:
-
-```javascript
-type Node = {
-  common: string,
-};
-
-type Foo = {
-  // extends Node
-  foo: string,
-};
-
-type Bar = {
-  // extends Node
-  bar: number,
-};
-```
-
-Will be transformed into:
-
-```javascript
-type Node = {
-  type: 'Foo',
-  _Foo: void,
-  common: string,
-  foo: string,
-} | {
-  type: 'Bar',
-  _Bar: void,
-  common: string,
-  bar: number,
-};
-
-type Foo = {
-  type: 'Foo',
-  _Foo: void,
-  common: string,
-  foo: string,
-};
-
-type Bar = {
-  type: 'Bar',
-  _Foo: void,
-  common: string,
-  bar: number,
-};
-```
-
-A few things to note:
-
-1. The type `Node` would more ideally be compiled into `Foo | Bar` but then the
-disjoint union cannot be properly refined. For now we have to duplicate the
-complete definitions.
-2. Each entry in a disjoint union has to be structurally unique or Flow will
-have an error on the definition. That is why the private `_Foo: void` fields
-appear in the types.
diff --git a/node_modules/ast-types-flow/lib/types.js b/node_modules/ast-types-flow/lib/types.js
deleted file mode 100644
index 4f7e499..0000000
--- a/node_modules/ast-types-flow/lib/types.js
+++ /dev/null
@@ -1,5045 +0,0 @@
-/**
- * @flow
- */
-
-'use strict';
-
-/*
- * Flow types for the Babylon AST.
- */
-
-// Abstract types. Something must extend these.
-
-export type Comment = {
-  type: 'CommentLine';
-  _CommentLine: void;
-  value: string;
-  end: number;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-} | {
-  type: 'CommentBlock';
-  _CommentBlock: void;
-  value: string;
-  end: number;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-};
-
-export type Declaration = {
-  type: 'ClassBody';
-  _ClassBody: void;
-  body: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassDeclaration';
-  _ClassDeclaration: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionDeclaration';
-  _FunctionDeclaration: void;
-  body: BlockStatement;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'MethodDefinition';
-  _MethodDefinition: void;
-  computed: boolean;
-  key: Node;
-  kind: 'constructor' | 'method' | 'get' | 'set';
-  static: boolean;
-  value: FunctionExpression;
-  decorators: ?Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'VariableDeclaration';
-  _VariableDeclaration: void;
-  declarations: Array<VariableDeclarator>;
-  kind: 'var' | 'let' | 'const';
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassProperty';
-  _ClassProperty: void;
-  computed: boolean;
-  key: Node;
-  static: boolean;
-  typeAnnotation: ?TypeAnnotation;
-  value: ?Expression;
-  decorators: Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Expression = {
-  type: 'ArrayExpression';
-  _ArrayExpression: void;
-  elements: Array<?Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AssignmentExpression';
-  _AssignmentExpression: void;
-  left: Pattern;
-  operator: AssignmentOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AwaitExpression';
-  _AwaitExpression: void;
-  all: boolean;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BinaryExpression';
-  _BinaryExpression: void;
-  left: Expression;
-  operator: BinaryOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BindExpression';
-  _BindExpression: void;
-  callee: Node;
-  object: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'CallExpression';
-  _CallExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassExpression';
-  _ClassExpression: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ComprehensionExpression';
-  _ComprehensionExpression: void;
-  body: Expression;
-  blocks: Array<ComprehensionBlock>;
-  filter: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ConditionalExpression';
-  _ConditionalExpression: void;
-  alternate: Expression;
-  consequent: Expression;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DoExpression';
-  _DoExpression: void;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionExpression';
-  _FunctionExpression: void;
-  body: BlockStatement;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'Identifier';
-  _Identifier: void;
-  name: string;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Literal';
-  _Literal: void;
-  raw: string;
-  regex: ?{pattern: string, flags: string};
-  value: ?(string | boolean | number | RegExp);
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'LogicalExpression';
-  _LogicalExpression: void;
-  left: Expression;
-  operator: LogicalOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MemberExpression';
-  _MemberExpression: void;
-  computed: boolean;
-  object: Expression;
-  property: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NewExpression';
-  _NewExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectExpression';
-  _ObjectExpression: void;
-  properties: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SequenceExpression';
-  _SequenceExpression: void;
-  expression: Array<Expression>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TaggedTemplateExpression';
-  _TaggedTemplateExpression: void;
-  quasi: TemplateLiteral;
-  tag: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TemplateLiteral';
-  _TemplateLiteral: void;
-  expressions: Array<Expression>;
-  quasis: Array<TemplateElement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ThisExpression';
-  _ThisExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UnaryExpression';
-  _UnaryExpression: void;
-  argument: Expression;
-  operator: UnaryOperator;
-  prefix: true;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UpdateExpression';
-  _UpdateExpression: void;
-  argument: Expression;
-  operator: UpdateOperator;
-  prefix: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'YieldExpression';
-  _YieldExpression: void;
-  argument: ?Expression;
-  delegate: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeCastExpression';
-  _TypeCastExpression: void;
-  expression: Expression;
-  typeAnnotation: TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXElement';
-  _JSXElement: void;
-  children: Array<Node>;
-  closingElement: ?JSXClosingElement;
-  openingElement: JSXOpeningElement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXEmptyExpression';
-  _JSXEmptyExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXExpressionContainer';
-  _JSXExpressionContainer: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXMemberExpression';
-  _JSXMemberExpression: void;
-  computed: boolean;
-  object: Node;
-  property: JSXIdentifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Function = {
-  type: 'ArrowFunctionExpression';
-  _ArrowFunctionExpression: void;
-  body: Node;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'FunctionDeclaration';
-  _FunctionDeclaration: void;
-  body: BlockStatement;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'FunctionExpression';
-  _FunctionExpression: void;
-  body: BlockStatement;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-};
-
-export type Node = {
-  type: 'ArrayExpression';
-  _ArrayExpression: void;
-  elements: Array<?Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ArrayPattern';
-  _ArrayPattern: void;
-  elements: Array<?Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ArrowFunctionExpression';
-  _ArrowFunctionExpression: void;
-  body: Node;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'AssignmentExpression';
-  _AssignmentExpression: void;
-  left: Pattern;
-  operator: AssignmentOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AssignmentPattern';
-  _AssignmentPattern: void;
-  left: Pattern;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AwaitExpression';
-  _AwaitExpression: void;
-  all: boolean;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BinaryExpression';
-  _BinaryExpression: void;
-  left: Expression;
-  operator: BinaryOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BindExpression';
-  _BindExpression: void;
-  callee: Node;
-  object: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BlockStatement';
-  _BlockStatement: void;
-  body: Array<Statement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BreakStatement';
-  _BreakStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'CallExpression';
-  _CallExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'CatchClause';
-  _CatchClause: void;
-  body: BlockStatement;
-  param: Pattern;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassBody';
-  _ClassBody: void;
-  body: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassDeclaration';
-  _ClassDeclaration: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassExpression';
-  _ClassExpression: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ComprehensionBlock';
-  _ComprehensionBlock: void;
-  each: boolean;
-  left: Pattern;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ComprehensionExpression';
-  _ComprehensionExpression: void;
-  body: Expression;
-  blocks: Array<ComprehensionBlock>;
-  filter: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ConditionalExpression';
-  _ConditionalExpression: void;
-  alternate: Expression;
-  consequent: Expression;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ContinueStatement';
-  _ContinueStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Decorator';
-  _Decorator: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DebuggerStatement';
-  _DebuggerStatement: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DoWhileStatement';
-  _DoWhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DoExpression';
-  _DoExpression: void;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'EmptyStatement';
-  _EmptyStatement: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExpressionStatement';
-  _ExpressionStatement: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'File';
-  _File: void;
-  program: Program;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForInStatement';
-  _ForInStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForOfStatement';
-  _ForOfStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForStatement';
-  _ForStatement: void;
-  init: ?Node;
-  test: ?Expression;
-  update: ?Expression;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionDeclaration';
-  _FunctionDeclaration: void;
-  body: BlockStatement;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'FunctionExpression';
-  _FunctionExpression: void;
-  body: BlockStatement;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-} | {
-  type: 'Identifier';
-  _Identifier: void;
-  name: string;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'IfStatement';
-  _IfStatement: void;
-  alternate: ?Statement;
-  consequent: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ImportDefaultSpecifier';
-  _ImportDefaultSpecifier: void;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ImportNamespaceSpecifier';
-  _ImportNamespaceSpecifier: void;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ImportDeclaration';
-  _ImportDeclaration: void;
-  specifiers: Array<Node>;
-  source: Literal;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ImportSpecifier';
-  _ImportSpecifier: void;
-  imported: Node;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'LabeledStatement';
-  _LabeledStatement: void;
-  body: Statement;
-  label: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Literal';
-  _Literal: void;
-  raw: string;
-  regex: ?{pattern: string, flags: string};
-  value: ?(string | boolean | number | RegExp);
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'LogicalExpression';
-  _LogicalExpression: void;
-  left: Expression;
-  operator: LogicalOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MemberExpression';
-  _MemberExpression: void;
-  computed: boolean;
-  object: Expression;
-  property: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MetaProperty';
-  _MetaProperty: void;
-  meta: Node;
-  property: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MethodDefinition';
-  _MethodDefinition: void;
-  computed: boolean;
-  key: Node;
-  kind: 'constructor' | 'method' | 'get' | 'set';
-  static: boolean;
-  value: FunctionExpression;
-  decorators: ?Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NewExpression';
-  _NewExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Noop';
-  _Noop: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectExpression';
-  _ObjectExpression: void;
-  properties: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectPattern';
-  _ObjectPattern: void;
-  properties: Array<Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Program';
-  _Program: void;
-  body: Array<Statement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Property';
-  _Property: void;
-  computed: boolean;
-  key: Node;
-  kind: 'init' | 'get' | 'set';
-  method: boolean;
-  shorthand: boolean;
-  value: Node;
-  decorators: ?Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'RestElement';
-  _RestElement: void;
-  argument: Pattern;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ReturnStatement';
-  _ReturnStatement: void;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SequenceExpression';
-  _SequenceExpression: void;
-  expression: Array<Expression>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SpreadElement';
-  _SpreadElement: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SpreadProperty';
-  _SpreadProperty: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Super';
-  _Super: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SwitchCase';
-  _SwitchCase: void;
-  consequent: Array<Statement>;
-  test: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SwitchStatement';
-  _SwitchStatement: void;
-  cases: Array<SwitchCase>;
-  discriminant: Expression;
-  lexical: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TaggedTemplateExpression';
-  _TaggedTemplateExpression: void;
-  quasi: TemplateLiteral;
-  tag: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TemplateElement';
-  _TemplateElement: void;
-  tail: boolean;
-  value: {cooked: string, raw: string};
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TemplateLiteral';
-  _TemplateLiteral: void;
-  expressions: Array<Expression>;
-  quasis: Array<TemplateElement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ThisExpression';
-  _ThisExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ThrowStatement';
-  _ThrowStatement: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TryStatement';
-  _TryStatement: void;
-  block: BlockStatement;
-  finalizer: ?BlockStatement;
-  guardedHandlers: Array<CatchClause>;
-  handler: ?CatchClause;
-  handlers: ?Array<CatchClause>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UnaryExpression';
-  _UnaryExpression: void;
-  argument: Expression;
-  operator: UnaryOperator;
-  prefix: true;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UpdateExpression';
-  _UpdateExpression: void;
-  argument: Expression;
-  operator: UpdateOperator;
-  prefix: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'VariableDeclaration';
-  _VariableDeclaration: void;
-  declarations: Array<VariableDeclarator>;
-  kind: 'var' | 'let' | 'const';
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'VariableDeclarator';
-  _VariableDeclarator: void;
-  id: Pattern;
-  init: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'WhileStatement';
-  _WhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'WithStatement';
-  _WithStatement: void;
-  body: Statement;
-  object: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'YieldExpression';
-  _YieldExpression: void;
-  argument: ?Expression;
-  delegate: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportAllDeclaration';
-  _ExportAllDeclaration: void;
-  exported: Node;
-  source: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportDefaultDeclaration';
-  _ExportDefaultDeclaration: void;
-  declaration: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportNamedDeclaration';
-  _ExportNamedDeclaration: void;
-  declaration: Node;
-  source: Literal;
-  specifiers: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportDefaultSpecifier';
-  _ExportDefaultSpecifier: void;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportNamespaceSpecifier';
-  _ExportNamespaceSpecifier: void;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExportSpecifier';
-  _ExportSpecifier: void;
-  local: Node;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AnyTypeAnnotation';
-  _AnyTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ArrayTypeAnnotation';
-  _ArrayTypeAnnotation: void;
-  elementType: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BooleanLiteralTypeAnnotation';
-  _BooleanLiteralTypeAnnotation: void;
-  raw: string;
-  value: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BooleanTypeAnnotation';
-  _BooleanTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassImplements';
-  _ClassImplements: void;
-  id: Identifier;
-  typeParameters: ?TypeParameterInstantiation;
-  superClass: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ClassProperty';
-  _ClassProperty: void;
-  computed: boolean;
-  key: Node;
-  static: boolean;
-  typeAnnotation: ?TypeAnnotation;
-  value: ?Expression;
-  decorators: Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareClass';
-  _DeclareClass: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareFunction';
-  _DeclareFunction: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareModule';
-  _DeclareModule: void;
-  body: BlockStatement;
-  id: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareVariable';
-  _DeclareVariable: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionTypeAnnotation';
-  _FunctionTypeAnnotation: void;
-  params: Array<FunctionTypeParam>;
-  rest: ?FunctionTypeParam;
-  returnType: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionTypeParam';
-  _FunctionTypeParam: void;
-  name: Identifier;
-  optional: boolean;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'GenericTypeAnnotation';
-  _GenericTypeAnnotation: void;
-  id: Node;
-  typeParameters: ?TypeParameterInstantiation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'InterfaceExtends';
-  _InterfaceExtends: void;
-  id: Identifier;
-  typeParameters: ?TypeParameterInstantiation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'InterfaceDeclaration';
-  _InterfaceDeclaration: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'IntersectionTypeAnnotation';
-  _IntersectionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MixedTypeAnnotation';
-  _MixedTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NullableTypeAnnotation';
-  _NullableTypeAnnotation: void;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NumberLiteralTypeAnnotation';
-  _NumberLiteralTypeAnnotation: void;
-  raw: string;
-  value: number;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NumberTypeAnnotation';
-  _NumberTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'StringLiteralTypeAnnotation';
-  _StringLiteralTypeAnnotation: void;
-  raw: string;
-  value: string;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'StringTypeAnnotation';
-  _StringTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TupleTypeAnnotation';
-  _TupleTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeofTypeAnnotation';
-  _TypeofTypeAnnotation: void;
-  argument: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeAlias';
-  _TypeAlias: void;
-  id: Identifier;
-  right: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeAnnotation';
-  _TypeAnnotation: void;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeCastExpression';
-  _TypeCastExpression: void;
-  expression: Expression;
-  typeAnnotation: TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeParameterDeclaration';
-  _TypeParameterDeclaration: void;
-  params: Array<Identifier>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeParameterInstantiation';
-  _TypeParameterInstantiation: void;
-  params: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectTypeAnnotation';
-  _ObjectTypeAnnotation: void;
-  callProperties: Array<ObjectTypeCallProperty>;
-  indexers: Array<ObjectTypeIndexer>;
-  properties: Array<ObjectTypeProperty>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectTypeCallProperty';
-  _ObjectTypeCallProperty: void;
-  static: boolean;
-  value: FunctionTypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectTypeIndexer';
-  _ObjectTypeIndexer: void;
-  id: Identifier;
-  key: Type;
-  value: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectTypeProperty';
-  _ObjectTypeProperty: void;
-  key: Node;
-  optional: boolean;
-  value: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'QualifiedTypeIdentifier';
-  _QualifiedTypeIdentifier: void;
-  id: Identifier;
-  qualification: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UnionTypeAnnotation';
-  _UnionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'VoidTypeAnnotation';
-  _VoidTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXAttribute';
-  _JSXAttribute: void;
-  name: Node;
-  value: ?Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXClosingElement';
-  _JSXClosingElement: void;
-  name: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXElement';
-  _JSXElement: void;
-  children: Array<Node>;
-  closingElement: ?JSXClosingElement;
-  openingElement: JSXOpeningElement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXEmptyExpression';
-  _JSXEmptyExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXExpressionContainer';
-  _JSXExpressionContainer: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXIdentifier';
-  _JSXIdentifier: void;
-  name: string;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXMemberExpression';
-  _JSXMemberExpression: void;
-  computed: boolean;
-  object: Node;
-  property: JSXIdentifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXNamespacedName';
-  _JSXNamespacedName: void;
-  name: JSXIdentifier;
-  namespace: JSXIdentifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXOpeningElement';
-  _JSXOpeningElement: void;
-  attributes: Array<Node>;
-  name: Array<Node>;
-  selfClosing: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'JSXSpreadAttribute';
-  _JSXSpreadAttribute: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Pattern = {
-  type: 'ArrayPattern';
-  _ArrayPattern: void;
-  elements: Array<?Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'AssignmentPattern';
-  _AssignmentPattern: void;
-  left: Pattern;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'Identifier';
-  _Identifier: void;
-  name: string;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectPattern';
-  _ObjectPattern: void;
-  properties: Array<Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'RestElement';
-  _RestElement: void;
-  argument: Pattern;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Statement = {
-  type: 'BlockStatement';
-  _BlockStatement: void;
-  body: Array<Statement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BreakStatement';
-  _BreakStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ContinueStatement';
-  _ContinueStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DoWhileStatement';
-  _DoWhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'EmptyStatement';
-  _EmptyStatement: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ExpressionStatement';
-  _ExpressionStatement: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForInStatement';
-  _ForInStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForOfStatement';
-  _ForOfStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ForStatement';
-  _ForStatement: void;
-  init: ?Node;
-  test: ?Expression;
-  update: ?Expression;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'IfStatement';
-  _IfStatement: void;
-  alternate: ?Statement;
-  consequent: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'LabeledStatement';
-  _LabeledStatement: void;
-  body: Statement;
-  label: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ReturnStatement';
-  _ReturnStatement: void;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'SwitchStatement';
-  _SwitchStatement: void;
-  cases: Array<SwitchCase>;
-  discriminant: Expression;
-  lexical: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ThrowStatement';
-  _ThrowStatement: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TryStatement';
-  _TryStatement: void;
-  block: BlockStatement;
-  finalizer: ?BlockStatement;
-  guardedHandlers: Array<CatchClause>;
-  handler: ?CatchClause;
-  handlers: ?Array<CatchClause>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'WhileStatement';
-  _WhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'WithStatement';
-  _WithStatement: void;
-  body: Statement;
-  object: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareClass';
-  _DeclareClass: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareFunction';
-  _DeclareFunction: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareModule';
-  _DeclareModule: void;
-  body: BlockStatement;
-  id: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'DeclareVariable';
-  _DeclareVariable: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'InterfaceDeclaration';
-  _InterfaceDeclaration: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TypeAlias';
-  _TypeAlias: void;
-  id: Identifier;
-  right: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Type = {
-  type: 'AnyTypeAnnotation';
-  _AnyTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ArrayTypeAnnotation';
-  _ArrayTypeAnnotation: void;
-  elementType: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BooleanLiteralTypeAnnotation';
-  _BooleanLiteralTypeAnnotation: void;
-  raw: string;
-  value: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'BooleanTypeAnnotation';
-  _BooleanTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'FunctionTypeAnnotation';
-  _FunctionTypeAnnotation: void;
-  params: Array<FunctionTypeParam>;
-  rest: ?FunctionTypeParam;
-  returnType: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'GenericTypeAnnotation';
-  _GenericTypeAnnotation: void;
-  id: Node;
-  typeParameters: ?TypeParameterInstantiation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'IntersectionTypeAnnotation';
-  _IntersectionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'MixedTypeAnnotation';
-  _MixedTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NullableTypeAnnotation';
-  _NullableTypeAnnotation: void;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NumberLiteralTypeAnnotation';
-  _NumberLiteralTypeAnnotation: void;
-  raw: string;
-  value: number;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'NumberTypeAnnotation';
-  _NumberTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'StringLiteralTypeAnnotation';
-  _StringLiteralTypeAnnotation: void;
-  raw: string;
-  value: string;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'StringTypeAnnotation';
-  _StringTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'TupleTypeAnnotation';
-  _TupleTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'ObjectTypeAnnotation';
-  _ObjectTypeAnnotation: void;
-  callProperties: Array<ObjectTypeCallProperty>;
-  indexers: Array<ObjectTypeIndexer>;
-  properties: Array<ObjectTypeProperty>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'UnionTypeAnnotation';
-  _UnionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-} | {
-  type: 'VoidTypeAnnotation';
-  _VoidTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// Concrete Types. Nothing can extend these.
-
-export type CommentLine = {
-  type: 'CommentLine';
-  _CommentLine: void;
-  value: string;
-  end: number;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-};
-
-export type CommentBlock = {
-  type: 'CommentBlock';
-  _CommentBlock: void;
-  value: string;
-  end: number;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-};
-
-// Babel concrete types.
-
-export type ArrayExpression = {
-  type: 'ArrayExpression';
-  _ArrayExpression: void;
-  elements: Array<?Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ArrayPattern = {
-  type: 'ArrayPattern';
-  _ArrayPattern: void;
-  elements: Array<?Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ArrowFunctionExpression = {
-  type: 'ArrowFunctionExpression';
-  _ArrowFunctionExpression: void;
-  body: Node;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-};
-
-type AssignmentOperator =
-  '=' |
-  '+=' |
-  '-=' |
-  '*=' |
-  '/=' |
-  '%=' |
-  '<<=' |
-  '>>=' |
-  '>>>=' |
-  '|=' |
-  '^=' |
-  '&=';
-
-export type AssignmentExpression = {
-  type: 'AssignmentExpression';
-  _AssignmentExpression: void;
-  left: Pattern;
-  operator: AssignmentOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type AssignmentPattern = {
-  type: 'AssignmentPattern';
-  _AssignmentPattern: void;
-  left: Pattern;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type AwaitExpression = {
-  type: 'AwaitExpression';
-  _AwaitExpression: void;
-  all: boolean;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-type BinaryOperator =
-  '==' |
-  '!=' |
-  '===' |
-  '!==' |
-  '<' |
-  '<=' |
-  '>' |
-  '>=' |
-  '<<' |
-  '>>' |
-  '>>>' |
-  '+' |
-  '-' |
-  '*' |
-  '/' |
-  '%' |
-  '&' |
-  '|' |
-  '^' |
-  'in' |
-  'instanceof' |
-  '..';
-
-export type BinaryExpression = {
-  type: 'BinaryExpression';
-  _BinaryExpression: void;
-  left: Expression;
-  operator: BinaryOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: What is this?
-export type BindExpression = {
-  type: 'BindExpression';
-  _BindExpression: void;
-  callee: Node;
-  object: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type BlockStatement = {
-  type: 'BlockStatement';
-  _BlockStatement: void;
-  body: Array<Statement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type BreakStatement = {
-  type: 'BreakStatement';
-  _BreakStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type CallExpression = {
-  type: 'CallExpression';
-  _CallExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type CatchClause = {
-  type: 'CatchClause';
-  _CatchClause: void;
-  body: BlockStatement;
-  param: Pattern;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ClassBody = {
-  type: 'ClassBody';
-  _ClassBody: void;
-  body: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ClassDeclaration = {
-  type: 'ClassDeclaration';
-  _ClassDeclaration: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ClassExpression = {
-  type: 'ClassExpression';
-  _ClassExpression: void;
-  body: ClassBody;
-  id: ?Identifier;
-  superClass: ?Expression;
-  decorators: any;
-  superTypeParameters: any;
-  typeParameters: any;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ComprehensionBlock = {
-  type: 'ComprehensionBlock';
-  _ComprehensionBlock: void;
-  each: boolean;
-  left: Pattern;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ComprehensionExpression = {
-  type: 'ComprehensionExpression';
-  _ComprehensionExpression: void;
-  body: Expression;
-  blocks: Array<ComprehensionBlock>;
-  filter: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ConditionalExpression = {
-  type: 'ConditionalExpression';
-  _ConditionalExpression: void;
-  alternate: Expression;
-  consequent: Expression;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ContinueStatement = {
-  type: 'ContinueStatement';
-  _ContinueStatement: void;
-  label: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type Decorator = {
-  type: 'Decorator';
-  _Decorator: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type DebuggerStatement = {
-  type: 'DebuggerStatement';
-  _DebuggerStatement: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type DoWhileStatement = {
-  type: 'DoWhileStatement';
-  _DoWhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type DoExpression = {
-  type: 'DoExpression';
-  _DoExpression: void;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type EmptyStatement = {
-  type: 'EmptyStatement';
-  _EmptyStatement: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ExpressionStatement = {
-  type: 'ExpressionStatement';
-  _ExpressionStatement: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type File = {
-  type: 'File';
-  _File: void;
-  program: Program;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ForInStatement = {
-  type: 'ForInStatement';
-  _ForInStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ForOfStatement = {
-  type: 'ForOfStatement';
-  _ForOfStatement: void;
-  body: Statement;
-  left: Node;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ForStatement = {
-  type: 'ForStatement';
-  _ForStatement: void;
-  init: ?Node;
-  test: ?Expression;
-  update: ?Expression;
-  body: Statement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type FunctionDeclaration = {
-  type: 'FunctionDeclaration';
-  _FunctionDeclaration: void;
-  body: BlockStatement;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-};
-
-export type FunctionExpression = {
-  type: 'FunctionExpression';
-  _FunctionExpression: void;
-  body: BlockStatement;
-  id: ?Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-  async: boolean;
-  defaults: Array<?Expression>;
-  expression: boolean;
-  generator: boolean;
-  params: Array<Pattern>;
-  rest: ?Identifier;
-  returnType: ?TypeAnnotation;
-  typeParameters: ?TypeParameterDeclaration;
-};
-
-export type Identifier = {
-  type: 'Identifier';
-  _Identifier: void;
-  name: string;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type IfStatement = {
-  type: 'IfStatement';
-  _IfStatement: void;
-  alternate: ?Statement;
-  consequent: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ImportDefaultSpecifier = {
-  type: 'ImportDefaultSpecifier';
-  _ImportDefaultSpecifier: void;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ImportNamespaceSpecifier = {
-  type: 'ImportNamespaceSpecifier';
-  _ImportNamespaceSpecifier: void;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ImportDeclaration = {
-  type: 'ImportDeclaration';
-  _ImportDeclaration: void;
-  specifiers: Array<Node>;
-  source: Literal;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ImportSpecifier = {
-  type: 'ImportSpecifier';
-  _ImportSpecifier: void;
-  imported: Node;
-  local: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type LabeledStatement = {
-  type: 'LabeledStatement';
-  _LabeledStatement: void;
-  body: Statement;
-  label: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Literal = {
-  type: 'Literal';
-  _Literal: void;
-  raw: string;
-  regex: ?{pattern: string, flags: string};
-  value: ?(string | boolean | number | RegExp);
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-type LogicalOperator = '||' | '&&';
-
-export type LogicalExpression = {
-  type: 'LogicalExpression';
-  _LogicalExpression: void;
-  left: Expression;
-  operator: LogicalOperator;
-  right: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type MemberExpression = {
-  type: 'MemberExpression';
-  _MemberExpression: void;
-  computed: boolean;
-  object: Expression;
-  property: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type MetaProperty = {
-  type: 'MetaProperty';
-  _MetaProperty: void;
-  meta: Node;
-  property: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type MethodDefinition = {
-  type: 'MethodDefinition';
-  _MethodDefinition: void;
-  computed: boolean;
-  key: Node;
-  kind: 'constructor' | 'method' | 'get' | 'set';
-  static: boolean;
-  value: FunctionExpression;
-  decorators: ?Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type NewExpression = {
-  type: 'NewExpression';
-  _NewExpression: void;
-  arguments: Array<Node>;
-  callee: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Noop = {
-  type: 'Noop';
-  _Noop: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectExpression = {
-  type: 'ObjectExpression';
-  _ObjectExpression: void;
-  properties: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectPattern = {
-  type: 'ObjectPattern';
-  _ObjectPattern: void;
-  properties: Array<Node>;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Program = {
-  type: 'Program';
-  _Program: void;
-  body: Array<Statement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Property = {
-  type: 'Property';
-  _Property: void;
-  computed: boolean;
-  key: Node;
-  kind: 'init' | 'get' | 'set';
-  method: boolean;
-  shorthand: boolean;
-  value: Node;
-  decorators: ?Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type RestElement = {
-  type: 'RestElement';
-  _RestElement: void;
-  argument: Pattern;
-  typeAnnotation: ?TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ReturnStatement = {
-  type: 'ReturnStatement';
-  _ReturnStatement: void;
-  argument: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type SequenceExpression = {
-  type: 'SequenceExpression';
-  _SequenceExpression: void;
-  expression: Array<Expression>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type SpreadElement = {
-  type: 'SpreadElement';
-  _SpreadElement: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type SpreadProperty = {
-  type: 'SpreadProperty';
-  _SpreadProperty: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type Super = {
-  type: 'Super';
-  _Super: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type SwitchCase = {
-  type: 'SwitchCase';
-  _SwitchCase: void;
-  consequent: Array<Statement>;
-  test: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type SwitchStatement = {
-  type: 'SwitchStatement';
-  _SwitchStatement: void;
-  cases: Array<SwitchCase>;
-  discriminant: Expression;
-  lexical: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TaggedTemplateExpression = {
-  type: 'TaggedTemplateExpression';
-  _TaggedTemplateExpression: void;
-  quasi: TemplateLiteral;
-  tag: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TemplateElement = {
-  type: 'TemplateElement';
-  _TemplateElement: void;
-  tail: boolean;
-  value: {cooked: string, raw: string};
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TemplateLiteral = {
-  type: 'TemplateLiteral';
-  _TemplateLiteral: void;
-  expressions: Array<Expression>;
-  quasis: Array<TemplateElement>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ThisExpression = {
-  type: 'ThisExpression';
-  _ThisExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ThrowStatement = {
-  type: 'ThrowStatement';
-  _ThrowStatement: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TryStatement = {
-  type: 'TryStatement';
-  _TryStatement: void;
-  block: BlockStatement;
-  finalizer: ?BlockStatement;
-  guardedHandlers: Array<CatchClause>;
-  handler: ?CatchClause;
-  handlers: ?Array<CatchClause>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete';
-
-export type UnaryExpression = {
-  type: 'UnaryExpression';
-  _UnaryExpression: void;
-  argument: Expression;
-  operator: UnaryOperator;
-  prefix: true;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-type UpdateOperator = '++' | '--';
-
-export type UpdateExpression = {
-  type: 'UpdateExpression';
-  _UpdateExpression: void;
-  argument: Expression;
-  operator: UpdateOperator;
-  prefix: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type VariableDeclaration = {
-  type: 'VariableDeclaration';
-  _VariableDeclaration: void;
-  declarations: Array<VariableDeclarator>;
-  kind: 'var' | 'let' | 'const';
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type VariableDeclarator = {
-  type: 'VariableDeclarator';
-  _VariableDeclarator: void;
-  id: Pattern;
-  init: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type WhileStatement = {
-  type: 'WhileStatement';
-  _WhileStatement: void;
-  body: Statement;
-  test: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type WithStatement = {
-  type: 'WithStatement';
-  _WithStatement: void;
-  body: Statement;
-  object: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type YieldExpression = {
-  type: 'YieldExpression';
-  _YieldExpression: void;
-  argument: ?Expression;
-  delegate: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportAllDeclaration = {
-  type: 'ExportAllDeclaration';
-  _ExportAllDeclaration: void;
-  exported: Node;
-  source: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportDefaultDeclaration = {
-  type: 'ExportDefaultDeclaration';
-  _ExportDefaultDeclaration: void;
-  declaration: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportNamedDeclaration = {
-  type: 'ExportNamedDeclaration';
-  _ExportNamedDeclaration: void;
-  declaration: Node;
-  source: Literal;
-  specifiers: Array<Node>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportDefaultSpecifier = {
-  type: 'ExportDefaultSpecifier';
-  _ExportDefaultSpecifier: void;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportNamespaceSpecifier = {
-  type: 'ExportNamespaceSpecifier';
-  _ExportNamespaceSpecifier: void;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type ExportSpecifier = {
-  type: 'ExportSpecifier';
-  _ExportSpecifier: void;
-  local: Node;
-  exported: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type AnyTypeAnnotation = {
-  type: 'AnyTypeAnnotation';
-  _AnyTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ArrayTypeAnnotation = {
-  type: 'ArrayTypeAnnotation';
-  _ArrayTypeAnnotation: void;
-  elementType: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type BooleanLiteralTypeAnnotation = {
-  type: 'BooleanLiteralTypeAnnotation';
-  _BooleanLiteralTypeAnnotation: void;
-  raw: string;
-  value: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type BooleanTypeAnnotation = {
-  type: 'BooleanTypeAnnotation';
-  _BooleanTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ClassImplements = {
-  type: 'ClassImplements';
-  _ClassImplements: void;
-  id: Identifier;
-  typeParameters: ?TypeParameterInstantiation;
-  superClass: ?Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ClassProperty = {
-  type: 'ClassProperty';
-  _ClassProperty: void;
-  computed: boolean;
-  key: Node;
-  static: boolean;
-  typeAnnotation: ?TypeAnnotation;
-  value: ?Expression;
-  decorators: Array<Decorator>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type DeclareClass = {
-  type: 'DeclareClass';
-  _DeclareClass: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type DeclareFunction = {
-  type: 'DeclareFunction';
-  _DeclareFunction: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type DeclareModule = {
-  type: 'DeclareModule';
-  _DeclareModule: void;
-  body: BlockStatement;
-  id: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-// TODO: Make this correct.
-export type DeclareVariable = {
-  type: 'DeclareVariable';
-  _DeclareVariable: void;
-  id: Identifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type FunctionTypeAnnotation = {
-  type: 'FunctionTypeAnnotation';
-  _FunctionTypeAnnotation: void;
-  params: Array<FunctionTypeParam>;
-  rest: ?FunctionTypeParam;
-  returnType: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type FunctionTypeParam = {
-  type: 'FunctionTypeParam';
-  _FunctionTypeParam: void;
-  name: Identifier;
-  optional: boolean;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type GenericTypeAnnotation = {
-  type: 'GenericTypeAnnotation';
-  _GenericTypeAnnotation: void;
-  id: Node;
-  typeParameters: ?TypeParameterInstantiation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type InterfaceExtends = {
-  type: 'InterfaceExtends';
-  _InterfaceExtends: void;
-  id: Identifier;
-  typeParameters: ?TypeParameterInstantiation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type InterfaceDeclaration = {
-  type: 'InterfaceDeclaration';
-  _InterfaceDeclaration: void;
-  body: ObjectTypeAnnotation;
-  extends: Array<InterfaceExtends>;
-  id: Identifier;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type IntersectionTypeAnnotation = {
-  type: 'IntersectionTypeAnnotation';
-  _IntersectionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type MixedTypeAnnotation = {
-  type: 'MixedTypeAnnotation';
-  _MixedTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type NullableTypeAnnotation = {
-  type: 'NullableTypeAnnotation';
-  _NullableTypeAnnotation: void;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type NumberLiteralTypeAnnotation = {
-  type: 'NumberLiteralTypeAnnotation';
-  _NumberLiteralTypeAnnotation: void;
-  raw: string;
-  value: number;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type NumberTypeAnnotation = {
-  type: 'NumberTypeAnnotation';
-  _NumberTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type StringLiteralTypeAnnotation = {
-  type: 'StringLiteralTypeAnnotation';
-  _StringLiteralTypeAnnotation: void;
-  raw: string;
-  value: string;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type StringTypeAnnotation = {
-  type: 'StringTypeAnnotation';
-  _StringTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TupleTypeAnnotation = {
-  type: 'TupleTypeAnnotation';
-  _TupleTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeofTypeAnnotation = {
-  type: 'TypeofTypeAnnotation';
-  _TypeofTypeAnnotation: void;
-  argument: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeAlias = {
-  type: 'TypeAlias';
-  _TypeAlias: void;
-  id: Identifier;
-  right: Type;
-  typeParameters: ?TypeParameterDeclaration;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeAnnotation = {
-  type: 'TypeAnnotation';
-  _TypeAnnotation: void;
-  typeAnnotation: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeCastExpression = {
-  type: 'TypeCastExpression';
-  _TypeCastExpression: void;
-  expression: Expression;
-  typeAnnotation: TypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeParameterDeclaration = {
-  type: 'TypeParameterDeclaration';
-  _TypeParameterDeclaration: void;
-  params: Array<Identifier>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type TypeParameterInstantiation = {
-  type: 'TypeParameterInstantiation';
-  _TypeParameterInstantiation: void;
-  params: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectTypeAnnotation = {
-  type: 'ObjectTypeAnnotation';
-  _ObjectTypeAnnotation: void;
-  callProperties: Array<ObjectTypeCallProperty>;
-  indexers: Array<ObjectTypeIndexer>;
-  properties: Array<ObjectTypeProperty>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectTypeCallProperty = {
-  type: 'ObjectTypeCallProperty';
-  _ObjectTypeCallProperty: void;
-  static: boolean;
-  value: FunctionTypeAnnotation;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectTypeIndexer = {
-  type: 'ObjectTypeIndexer';
-  _ObjectTypeIndexer: void;
-  id: Identifier;
-  key: Type;
-  value: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type ObjectTypeProperty = {
-  type: 'ObjectTypeProperty';
-  _ObjectTypeProperty: void;
-  key: Node;
-  optional: boolean;
-  value: Type;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type QualifiedTypeIdentifier = {
-  type: 'QualifiedTypeIdentifier';
-  _QualifiedTypeIdentifier: void;
-  id: Identifier;
-  qualification: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type UnionTypeAnnotation = {
-  type: 'UnionTypeAnnotation';
-  _UnionTypeAnnotation: void;
-  types: Array<Type>;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type VoidTypeAnnotation = {
-  type: 'VoidTypeAnnotation';
-  _VoidTypeAnnotation: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXAttribute = {
-  type: 'JSXAttribute';
-  _JSXAttribute: void;
-  name: Node;
-  value: ?Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXClosingElement = {
-  type: 'JSXClosingElement';
-  _JSXClosingElement: void;
-  name: Node;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXElement = {
-  type: 'JSXElement';
-  _JSXElement: void;
-  children: Array<Node>;
-  closingElement: ?JSXClosingElement;
-  openingElement: JSXOpeningElement;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXEmptyExpression = {
-  type: 'JSXEmptyExpression';
-  _JSXEmptyExpression: void;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXExpressionContainer = {
-  type: 'JSXExpressionContainer';
-  _JSXExpressionContainer: void;
-  expression: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXIdentifier = {
-  type: 'JSXIdentifier';
-  _JSXIdentifier: void;
-  name: string;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXMemberExpression = {
-  type: 'JSXMemberExpression';
-  _JSXMemberExpression: void;
-  computed: boolean;
-  object: Node;
-  property: JSXIdentifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXNamespacedName = {
-  type: 'JSXNamespacedName';
-  _JSXNamespacedName: void;
-  name: JSXIdentifier;
-  namespace: JSXIdentifier;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXOpeningElement = {
-  type: 'JSXOpeningElement';
-  _JSXOpeningElement: void;
-  attributes: Array<Node>;
-  name: Array<Node>;
-  selfClosing: boolean;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
-
-export type JSXSpreadAttribute = {
-  type: 'JSXSpreadAttribute';
-  _JSXSpreadAttribute: void;
-  argument: Expression;
-  end: number;
-  innerComments: ?Array<Comment>;
-  leadingComments: ?Array<Comment>;
-  loc: {
-    end: {column: number, line: number},
-    start: {column: number, line: number},
-  };
-  start: number;
-  trailingComments: ?Array<Comment>;
-};
diff --git a/node_modules/ast-types-flow/package.json b/node_modules/ast-types-flow/package.json
deleted file mode 100644
index 4179ffb..0000000
--- a/node_modules/ast-types-flow/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "name": "ast-types-flow",
-  "version": "0.0.7",
-  "description": "Flow types for the Javascript AST",
-  "main": "lib/types.js",
-  "files": [
-    "lib"
-  ],
-  "scripts": {
-    "build": "gulp build",
-    "test": "flow"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/kyldvs/ast-types-flow.git"
-  },
-  "keywords": [
-    "flow",
-    "ast",
-    "javascript"
-  ],
-  "author": "kyldvs",
-  "license": "ISC",
-  "bugs": {
-    "url": "https://github.com/kyldvs/ast-types-flow/issues"
-  },
-  "homepage": "https://github.com/kyldvs/ast-types-flow#readme",
-  "devDependencies": {
-    "gulp": "^3.9.0",
-    "gulp-util": "^3.0.6",
-    "jscodeshift": "^0.3.7",
-    "nuclide-node-transpiler": "0.0.30",
-    "through2": "^2.0.0"
-  }
-}
diff --git a/node_modules/axobject-query/CHANGELOG.md b/node_modules/axobject-query/CHANGELOG.md
deleted file mode 100755
index cd10d07..0000000
--- a/node_modules/axobject-query/CHANGELOG.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# axobject-query Change Log
-
-## 1.0.1
-
-- Changed label from structure to widget
-- Added the CHANGELOG file
-
-## 2.0.1
-
-- Add NPM and Watchman configs
-
-## 2.1.0
-
-- b436e56 (origin/update-dependencies, update-dependencies) Update dependencies; ESLint to 6
-- c157720 Fixes for select and datalist
-
-## 2.1.1
-
-- Bumping the version to see if Travis will run green on the master branch
-
-## 2.1.2
-
-- a1c5ef9 Updated the Copyright to 2020 for A11yance
-- 5c5e04d Remove Peer Dependency to ESLint
-- ec1b53b Remove dependencies on @babel/runtime and @babel/runtime-corejs3
-
diff --git a/node_modules/axobject-query/LICENSE b/node_modules/axobject-query/LICENSE
deleted file mode 100755
index 3a8ae7c..0000000
--- a/node_modules/axobject-query/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction,
-and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by
-the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all
-other entities that control, are controlled by, or are under common
-control with that entity. For the purposes of this definition,
-"control" means (i) the power, direct or indirect, to cause the
-direction or management of such entity, whether by contract or
-otherwise, or (ii) ownership of fifty percent (50%) or more of the
-outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity
-exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation
-source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but
-not limited to compiled object code, generated documentation,
-and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or
-Object form, made available under the License, as indicated by a
-copyright notice that is included in or attached to the work
-(an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object
-form, that is based on (or derived from) the Work and for which the
-editorial revisions, annotations, elaborations, or other modifications
-represent, as a whole, an original work of authorship. For the purposes
-of this License, Derivative Works shall not include works that remain
-separable from, or merely link (or bind by name) to the interfaces of,
-the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including
-the original version of the Work and any modifications or additions
-to that Work or Derivative Works thereof, that is intentionally
-submitted to Licensor for inclusion in the Work by the copyright owner
-or by an individual or Legal Entity authorized to submit on behalf of
-the copyright owner. For the purposes of this definition, "submitted"
-means any form of electronic, verbal, or written communication sent
-to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems,
-and issue tracking systems that are managed by, or on behalf of, the
-Licensor for the purpose of discussing and improving the Work, but
-excluding communication that is conspicuously marked or otherwise
-designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity
-on behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the
-Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-(except as stated in this section) patent license to make, have made,
-use, offer to sell, sell, import, and otherwise transfer the Work,
-where such license applies only to those patent claims licensable
-by such Contributor that are necessarily infringed by their
-Contribution(s) alone or by combination of their Contribution(s)
-with the Work to which such Contribution(s) was submitted. If You
-institute patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Work
-or a Contribution incorporated within the Work constitutes direct
-or contributory patent infringement, then any patent licenses
-granted to You under this License for that Work shall terminate
-as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-Work or Derivative Works thereof in any medium, with or without
-modifications, and in Source or Object form, provided that You
-meet the following conditions:
-
-(a) You must give any other recipients of the Work or
-Derivative Works a copy of this License; and
-
-(b) You must cause any modified files to carry prominent notices
-stating that You changed the files; and
-
-(c) You must retain, in the Source form of any Derivative Works
-that You distribute, all copyright, patent, trademark, and
-attribution notices from the Source form of the Work,
-excluding those notices that do not pertain to any part of
-the Derivative Works; and
-
-(d) If the Work includes a "NOTICE" text file as part of its
-distribution, then any Derivative Works that You distribute must
-include a readable copy of the attribution notices contained
-within such NOTICE file, excluding those notices that do not
-pertain to any part of the Derivative Works, in at least one
-of the following places: within a NOTICE text file distributed
-as part of the Derivative Works; within the Source form or
-documentation, if provided along with the Derivative Works; or,
-within a display generated by the Derivative Works, if and
-wherever such third-party notices normally appear. The contents
-of the NOTICE file are for informational purposes only and
-do not modify the License. You may add Your own attribution
-notices within Derivative Works that You distribute, alongside
-or as an addendum to the NOTICE text from the Work, provided
-that such additional attribution notices cannot be construed
-as modifying the License.
-
-You may add Your own copyright statement to Your modifications and
-may provide additional or different license terms and conditions
-for use, reproduction, or distribution of Your modifications, or
-for any such Derivative Works as a whole, provided Your use,
-reproduction, and distribution of the Work otherwise complies with
-the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work
-by You to the Licensor shall be under the terms and conditions of
-this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify
-the terms of any separate license agreement you may have executed
-with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-agreed to in writing, Licensor provides the Work (and each
-Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied, including, without limitation, any warranties or conditions
-of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE. You are solely responsible for determining the
-appropriateness of using or redistributing the Work and assume any
-risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise,
-unless required by applicable law (such as deliberate and grossly
-negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special,
-incidental, or consequential damages of any character arising as a
-result of this License or out of the use or inability to use the
-Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all
-other commercial damages or losses), even if such Contributor
-has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-the Work or Derivative Works thereof, You may choose to offer,
-and charge a fee for, acceptance of support, warranty, indemnity,
-or other liability obligations and/or rights consistent with this
-License. However, in accepting such obligations, You may act only
-on Your own behalf and on Your sole responsibility, not on behalf
-of any other Contributor, and only if You agree to indemnify,
-defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason
-of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-To apply the Apache License to your work, attach the following
-boilerplate notice, with the fields enclosed by brackets "{}"
-replaced with your own identifying information. (Don't include
-the brackets!)  The text should be enclosed in the appropriate
-comment syntax for the file format. We also recommend that a
-file or class name and description of purpose be included on the
-same "printed page" as the copyright notice for easier
-identification within third-party archives.
-
-Copyright 2020 A11yance
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/node_modules/axobject-query/README.md b/node_modules/axobject-query/README.md
deleted file mode 100755
index 1dbf635..0000000
--- a/node_modules/axobject-query/README.md
+++ /dev/null
@@ -1,384 +0,0 @@
-[![Build Status](https://travis-ci.org/A11yance/axobject-query.svg?branch=master)](https://travis-ci.org/A11yance/axobject-query)
-
-**NOTICE: The API for AXObject Query is very much under development until a major version release. Please be aware that data structures might change in minor version releases before 1.0.0 is released.**
-
-# AXObject Query
-
-Approximate model of the [Chrome AXObject](https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/accessibility/AXObject.h).
-
-The project attempts to map the AXObject concepts to the [WAI-ARIA 1.1 Roles Model](https://www.w3.org/TR/wai-aria-1.1/#roles) so that a complete representation of the semantic HTML layer, as it is exposed assistive technology, can be obtained.
-
-## Utilities
-
-### AXObjects
-
-```javascript
-import { AXObjects } from 'axobject-query';
-```
-
-AXObjects are mapped to their HTML and ARIA concepts in the `relatedConcepts` field.
-
-The `type` field is a loose association of an AXObject to the `window`, `structure` and `widget` abstract roles in ARIA. The `generic` value is given to `DivRole`; it does not exist in ARIA. Divs are special in HTML in the way that they are used as generic containers. Span might have also been associated with a generic type except that there is no `SpanRole` AXObject.
-
-```
-Map {
-  'AbbrRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'AlertDialogRole' => { relatedConcepts: [ [Object] ], type: 'window' },
-  'AlertRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'AnnotationRole' => { relatedConcepts: [], type: 'structure' },
-  'ApplicationRole' => { relatedConcepts: [ [Object] ], type: 'window' },
-  'ArticleRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'AudioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'BannerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'BlockquoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'BusyIndicatorRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'ButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'CanvasRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'CaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'CellRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
-  'CheckBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'ColorWellRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'ColumnHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'ColumnRole' => { relatedConcepts: [], type: 'structure' },
-  'ComboBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'ComplementaryRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'ContentInfoRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DateRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'DateTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'DefinitionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DescriptionListDetailRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DescriptionListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DescriptionListTermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DetailsRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'DialogRole' => { relatedConcepts: [ [Object], [Object] ], type: 'window' },
-  'DirectoryRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'DisclosureTriangleRole' => { relatedConcepts: [], type: 'widget' },
-  'DivRole' => { relatedConcepts: [ [Object] ], type: 'generic' },
-  'DocumentRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'EmbeddedObjectRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'FeedRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'FigcaptionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'FigureRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'FooterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'FormRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'GridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'GroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'HeadingRole' => { relatedConcepts: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], type: 'structure' },
-  'IframePresentationalRole' => { relatedConcepts: [], type: 'window' },
-  'IframeRole' => { relatedConcepts: [ [Object] ], type: 'window' },
-  'IgnoredRole' => { relatedConcepts: [], type: 'structure' },
-  'ImageMapLinkRole' => { relatedConcepts: [], type: 'widget' },
-  'ImageMapRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'ImageRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'InlineTextBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'InputTimeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'LabelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'LegendRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'LineBreakRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'LinkRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'ListBoxOptionRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'ListBoxRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'ListItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'ListMarkerRole' => { relatedConcepts: [], type: 'structure' },
-  'ListRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'structure' },
-  'LogRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'MainRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'MarkRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'MarqueeRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'MathRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'MenuBarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'MenuButtonRole' => { relatedConcepts: [], type: 'widget' },
-  'MenuItemRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'MenuItemCheckBoxRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'MenuItemRadioRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'MenuListOptionRole' => { relatedConcepts: [], type: 'widget' },
-  'MenuListPopupRole' => { relatedConcepts: [], type: 'widget' },
-  'MenuRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'MeterRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'NavigationRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'NoneRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'NoteRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'OutlineRole' => { relatedConcepts: [], type: 'structure' },
-  'ParagraphRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'PopUpButtonRole' => { relatedConcepts: [], type: 'widget' },
-  'PreRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'PresentationalRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'ProgressIndicatorRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'RadioButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'RadioGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'RegionRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'RootWebAreaRole' => { relatedConcepts: [], type: 'structure' },
-  'RowHeaderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'RowRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'RubyRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'RulerRole' => { relatedConcepts: [], type: 'structure' },
-  'ScrollAreaRole' => { relatedConcepts: [], type: 'structure' },
-  'ScrollBarRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'SeamlessWebAreaRole' => { relatedConcepts: [], type: 'structure' },
-  'SearchRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'SearchBoxRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'SliderRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'SliderThumbRole' => { relatedConcepts: [], type: 'structure' },
-  'SpinButtonRole' => { relatedConcepts: [ [Object], [Object] ], type: 'widget' },
-  'SpinButtonPartRole' => { relatedConcepts: [], type: 'structure' },
-  'SplitterRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'StaticTextRole' => { relatedConcepts: [], type: 'structure' },
-  'StatusRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'SVGRootRole' => { relatedConcepts: [], type: 'structure' },
-  'SwitchRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'TabGroupRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TabRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'TableHeaderContainerRole' => { relatedConcepts: [], type: 'structure' },
-  'TableRole' => { relatedConcepts: [ [Object], [Object] ], type: 'structure' },
-  'TabListRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TabPanelRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TermRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TextFieldRole' => { relatedConcepts: [ [Object], [Object], [Object] ], type: 'widget' },
-  'TimeRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TimerRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'ToggleButtonRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'ToolbarRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'TreeRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'TreeGridRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'TreeItemRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'UserInterfaceTooltipRole' => { relatedConcepts: [ [Object] ], type: 'structure' },
-  'VideoRole' => { relatedConcepts: [ [Object] ], type: 'widget' },
-  'WebAreaRole' => { relatedConcepts: [], type: 'structure' },
-  'WindowRole' => { relatedConcepts: [], type: 'window' }
-}
-```
-
-### AXObject to Element
-
-```javascript
-import { AXObjectElements } from 'axobject-query';
-```
-
-AXObjects are mapped to their related HTML concepts, which may require attributes (in the case of inputs) to obtain the correct association.
-
-```
-Map {
-  'AbbrRole' => Set { { name: 'abbr' } },
-  'ArticleRole' => Set { { name: 'article' } },
-  'AudioRole' => Set { { name: 'audio' } },
-  'BlockquoteRole' => Set { { name: 'blockquote' } },
-  'ButtonRole' => Set { { name: 'button' } },
-  'CanvasRole' => Set { { name: 'canvas' } },
-  'CaptionRole' => Set { { name: 'caption' } },
-  'CellRole' => Set { { name: 'td' } },
-  'CheckBoxRole' => Set { { name: 'input', attributes: [Object] } },
-  'ColorWellRole' => Set { { name: 'input', attributes: [Object] } },
-  'ColumnHeaderRole' => Set { { name: 'th' } },
-  'DateRole' => Set { { name: 'input', attributes: [Object] } },
-  'DateTimeRole' => Set { { name: 'input', attributes: [Object] } },
-  'DefinitionRole' => Set { { name: 'dfn' } },
-  'DescriptionListDetailRole' => Set { { name: 'dd' } },
-  'DescriptionListRole' => Set { { name: 'dl' } },
-  'DescriptionListTermRole' => Set { { name: 'dt' } },
-  'DetailsRole' => Set { { name: 'details' } },
-  'DialogRole' => Set { { name: 'dialog' } },
-  'DirectoryRole' => Set { { name: 'dir' } },
-  'DivRole' => Set { { name: 'div' } },
-  'EmbeddedObjectRole' => Set { { name: 'embed' } },
-  'FigcaptionRole' => Set { { name: 'figcaption' } },
-  'FigureRole' => Set { { name: 'figure' } },
-  'FooterRole' => Set { { name: 'footer' } },
-  'FormRole' => Set { { name: 'form' } },
-  'HeadingRole' => Set { { name: 'h1' }, { name: 'h2' }, { name: 'h3' }, { name: 'h4' }, { name: 'h5' }, { name: 'h6' } },
-  'IframeRole' => Set { { name: 'iframe' } },
-  'ImageMapRole' => Set { { name: 'img', attributes: [Object] } },
-  'ImageRole' => Set { { name: 'img' } },
-  'InlineTextBoxRole' => Set { { name: 'input' } },
-  'InputTimeRole' => Set { { name: 'input', attributes: [Object] } },
-  'LabelRole' => Set { { name: 'label' } },
-  'LegendRole' => Set { { name: 'legend' } },
-  'LineBreakRole' => Set { { name: 'br' } },
-  'LinkRole' => Set { { name: 'a', attributes: [Object] } },
-  'ListBoxOptionRole' => Set { { name: 'option' } },
-  'ListItemRole' => Set { { name: 'li' } },
-  'ListRole' => Set { { name: 'ul' }, { name: 'ol' } },
-  'MainRole' => Set { { name: 'main' } },
-  'MarkRole' => Set { { name: 'mark' } },
-  'MarqueeRole' => Set { { name: 'marquee' } },
-  'MenuItemRole' => Set { { name: 'menuitem' } },
-  'MenuRole' => Set { { name: 'menu' } },
-  'MeterRole' => Set { { name: 'meter' } },
-  'NavigationRole' => Set { { name: 'nav' } },
-  'ParagraphRole' => Set { { name: 'p' } },
-  'PreRole' => Set { { name: 'pre' } },
-  'ProgressIndicatorRole' => Set { { name: 'progress' } },
-  'RadioButtonRole' => Set { { name: 'input', attributes: [Object] } },
-  'RowHeaderRole' => Set { { name: 'th', attributes: [Object] } },
-  'RowRole' => Set { { name: 'tr' } },
-  'RubyRole' => Set { { name: 'ruby' } },
-  'SearchBoxRole' => Set { { name: 'input', attributes: [Object] } },
-  'SliderRole' => Set { { name: 'input', attributes: [Object] } },
-  'SpinButtonRole' => Set { { name: 'input', attributes: [Object] } },
-  'TableRole' => Set { { name: 'table' } },
-  'TextFieldRole' => Set { { name: 'input' }, { name: 'input', attributes: [Object] } },
-  'TimeRole' => Set { { name: 'time' } },
-  'VideoRole' => Set { { name: 'video' }
-}
-```
-
-### AXObject to Role
-
-```javascript
-import { AXObjectRoles } from 'axobject-query';
-```
-
-AXObjects are mapped to their related ARIA concepts..
-
-```
-Map {
-  'AlertDialogRole' => Set { { name: 'alertdialog' } },
-  'AlertRole' => Set { { name: 'alert' } },
-  'ApplicationRole' => Set { { name: 'application' } },
-  'ArticleRole' => Set { { name: 'article' } },
-  'BannerRole' => Set { { name: 'banner' } },
-  'BusyIndicatorRole' => Set { { attributes: [Object] } },
-  'ButtonRole' => Set { { name: 'button' } },
-  'CellRole' => Set { { name: 'cell' }, { name: 'gridcell' } },
-  'CheckBoxRole' => Set { { name: 'checkbox' } },
-  'ColumnHeaderRole' => Set { { name: 'columnheader' } },
-  'ComboBoxRole' => Set { { name: 'combobox' } },
-  'ComplementaryRole' => Set { { name: 'complementary' } },
-  'ContentInfoRole' => Set { { name: 'structureinfo' } },
-  'DialogRole' => Set { { name: 'dialog' } },
-  'DirectoryRole' => Set { { name: 'directory' } },
-  'DocumentRole' => Set { { name: 'document' } },
-  'FeedRole' => Set { { name: 'feed' } },
-  'FigureRole' => Set { { name: 'figure' } },
-  'FormRole' => Set { { name: 'form' } },
-  'GridRole' => Set { { name: 'grid' } },
-  'GroupRole' => Set { { name: 'group' } },
-  'HeadingRole' => Set { { name: 'heading' } },
-  'ImageRole' => Set { { name: 'img' } },
-  'LinkRole' => Set { { name: 'link' } },
-  'ListBoxOptionRole' => Set { { name: 'option' } },
-  'ListBoxRole' => Set { { name: 'listbox' } },
-  'ListItemRole' => Set { { name: 'listitem' } },
-  'ListRole' => Set { { name: 'list' } },
-  'LogRole' => Set { { name: 'log' } },
-  'MainRole' => Set { { name: 'main' } },
-  'MarqueeRole' => Set { { name: 'marquee' } },
-  'MathRole' => Set { { name: 'math' } },
-  'MenuBarRole' => Set { { name: 'menubar' } },
-  'MenuItemRole' => Set { { name: 'menuitem' } },
-  'MenuItemCheckBoxRole' => Set { { name: 'menuitemcheckbox' } },
-  'MenuItemRadioRole' => Set { { name: 'menuitemradio' } },
-  'MenuRole' => Set { { name: 'menu' } },
-  'NavigationRole' => Set { { name: 'navigation' } },
-  'NoneRole' => Set { { name: 'none' } },
-  'NoteRole' => Set { { name: 'note' } },
-  'PresentationalRole' => Set { { name: 'presentation' } },
-  'ProgressIndicatorRole' => Set { { name: 'progressbar' } },
-  'RadioButtonRole' => Set { { name: 'radio' } },
-  'RadioGroupRole' => Set { { name: 'radiogroup' } },
-  'RegionRole' => Set { { name: 'region' } },
-  'RowHeaderRole' => Set { { name: 'rowheader' } },
-  'RowRole' => Set { { name: 'row' } },
-  'ScrollBarRole' => Set { { name: 'scrollbar' } },
-  'SearchRole' => Set { { name: 'search' } },
-  'SearchBoxRole' => Set { { name: 'searchbox' } },
-  'SliderRole' => Set { { name: 'slider' } },
-  'SpinButtonRole' => Set { { name: 'spinbutton' } },
-  'SplitterRole' => Set { { name: 'separator' } },
-  'StatusRole' => Set { { name: 'status' } },
-  'SwitchRole' => Set { { name: 'switch' } },
-  'TabGroupRole' => Set { { name: 'tablist' } },
-  'TabRole' => Set { { name: 'tab' } },
-  'TableRole' => Set { { name: 'table' } },
-  'TabListRole' => Set { { name: 'tablist' } },
-  'TabPanelRole' => Set { { name: 'tabpanel' } },
-  'TermRole' => Set { { name: 'term' } },
-  'TextFieldRole' => Set { { name: 'textbox' } },
-  'TimerRole' => Set { { name: 'timer' } },
-  'ToggleButtonRole' => Set { { attributes: [Object] } },
-  'ToolbarRole' => Set { { name: 'toolbar' } },
-  'TreeRole' => Set { { name: 'tree' } },
-  'TreeGridRole' => Set { { name: 'treegrid' } },
-  'TreeItemRole' => Set { { name: 'treeitem' } },
-  'UserInterfaceTooltipRole' => Set { { name: 'tooltip' } }
-}
-```
-
-### Element to AXObject
-
-```javascript
-import { elementAXObjects } from 'axobject-query';
-```
-
-HTML elements are mapped to their related AXConcepts concepts.
-
-```
-Map {
-  { name: 'abbr' } => Set { 'AbbrRole' },
-  { name: 'article' } => Set { 'ArticleRole' },
-  { name: 'audio' } => Set { 'AudioRole' },
-  { name: 'blockquote' } => Set { 'BlockquoteRole' },
-  { name: 'button' } => Set { 'ButtonRole' },
-  { name: 'canvas' } => Set { 'CanvasRole' },
-  { name: 'caption' } => Set { 'CaptionRole' },
-  { name: 'td' } => Set { 'CellRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'CheckBoxRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'ColorWellRole' },
-  { name: 'th' } => Set { 'ColumnHeaderRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'DateRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'DateTimeRole' },
-  { name: 'dfn' } => Set { 'DefinitionRole' },
-  { name: 'dd' } => Set { 'DescriptionListDetailRole' },
-  { name: 'dl' } => Set { 'DescriptionListRole' },
-  { name: 'dt' } => Set { 'DescriptionListTermRole' },
-  { name: 'details' } => Set { 'DetailsRole' },
-  { name: 'dialog' } => Set { 'DialogRole' },
-  { name: 'dir' } => Set { 'DirectoryRole' },
-  { name: 'div' } => Set { 'DivRole' },
-  { name: 'embed' } => Set { 'EmbeddedObjectRole' },
-  { name: 'figcaption' } => Set { 'FigcaptionRole' },
-  { name: 'figure' } => Set { 'FigureRole' },
-  { name: 'footer' } => Set { 'FooterRole' },
-  { name: 'form' } => Set { 'FormRole' },
-  { name: 'h1' } => Set { 'HeadingRole' },
-  { name: 'h2' } => Set { 'HeadingRole' },
-  { name: 'h3' } => Set { 'HeadingRole' },
-  { name: 'h4' } => Set { 'HeadingRole' },
-  { name: 'h5' } => Set { 'HeadingRole' },
-  { name: 'h6' } => Set { 'HeadingRole' },
-  { name: 'iframe' } => Set { 'IframeRole' },
-  { name: 'img', attributes: [ [Object] ] } => Set { 'ImageMapRole' },
-  { name: 'img' } => Set { 'ImageRole' },
-  { name: 'input' } => Set { 'InlineTextBoxRole', 'TextFieldRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'InputTimeRole' },
-  { name: 'label' } => Set { 'LabelRole' },
-  { name: 'legend' } => Set { 'LegendRole' },
-  { name: 'br' } => Set { 'LineBreakRole' },
-  { name: 'a', attributes: [ [Object] ] } => Set { 'LinkRole' },
-  { name: 'option' } => Set { 'ListBoxOptionRole' },
-  { name: 'li' } => Set { 'ListItemRole' },
-  { name: 'ul' } => Set { 'ListRole' },
-  { name: 'ol' } => Set { 'ListRole' },
-  { name: 'main' } => Set { 'MainRole' },
-  { name: 'mark' } => Set { 'MarkRole' },
-  { name: 'marquee' } => Set { 'MarqueeRole' },
-  { name: 'menuitem' } => Set { 'MenuItemRole' },
-  { name: 'menu' } => Set { 'MenuRole' },
-  { name: 'meter' } => Set { 'MeterRole' },
-  { name: 'nav' } => Set { 'NavigationRole' },
-  { name: 'p' } => Set { 'ParagraphRole' },
-  { name: 'pre' } => Set { 'PreRole' },
-  { name: 'progress' } => Set { 'ProgressIndicatorRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'RadioButtonRole' },
-  { name: 'th', attributes: [ [Object] ] } => Set { 'RowHeaderRole' },
-  { name: 'tr' } => Set { 'RowRole' },
-  { name: 'ruby' } => Set { 'RubyRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'SearchBoxRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'SliderRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'SpinButtonRole' },
-  { name: 'table' } => Set { 'TableRole' },
-  { name: 'input' } => Set { 'InlineTextBoxRole', 'TextFieldRole' },
-  { name: 'input', attributes: [ [Object] ] } => Set { 'TextFieldRole' },
-  { name: 'time' } => Set { 'TimeRole' },
-  { name: 'video' } => Set { 'VideoRole' }
-}
-```
diff --git a/node_modules/axobject-query/lib/AXObjectElementMap.js b/node_modules/axobject-query/lib/AXObjectElementMap.js
deleted file mode 100755
index ab0703d..0000000
--- a/node_modules/axobject-query/lib/AXObjectElementMap.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _AXObjectsMap = _interopRequireDefault(require("./AXObjectsMap"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-var AXObjectElementMap = new Map([]);
-var _iteratorNormalCompletion = true;
-var _didIteratorError = false;
-var _iteratorError = undefined;
-
-try {
-  var _loop = function _loop() {
-    var _step$value = _slicedToArray(_step.value, 2),
-        name = _step$value[0],
-        def = _step$value[1];
-
-    var relatedConcepts = def.relatedConcepts;
-
-    if (Array.isArray(relatedConcepts)) {
-      relatedConcepts.forEach(function (relation) {
-        if (relation.module === 'HTML') {
-          var concept = relation.concept;
-
-          if (concept) {
-            var relationConcepts = AXObjectElementMap.get(name) || new Set([]);
-            relationConcepts.add(concept);
-            AXObjectElementMap.set(name, relationConcepts);
-          }
-        }
-      });
-    }
-  };
-
-  for (var _iterator = _AXObjectsMap["default"][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-    _loop();
-  }
-} catch (err) {
-  _didIteratorError = true;
-  _iteratorError = err;
-} finally {
-  try {
-    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
-      _iterator["return"]();
-    }
-  } finally {
-    if (_didIteratorError) {
-      throw _iteratorError;
-    }
-  }
-}
-
-var _default = AXObjectElementMap;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/AXObjectRoleMap.js b/node_modules/axobject-query/lib/AXObjectRoleMap.js
deleted file mode 100755
index 1743fd0..0000000
--- a/node_modules/axobject-query/lib/AXObjectRoleMap.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _AXObjectsMap = _interopRequireDefault(require("./AXObjectsMap"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-var AXObjectRoleMap = new Map([]);
-var _iteratorNormalCompletion = true;
-var _didIteratorError = false;
-var _iteratorError = undefined;
-
-try {
-  var _loop = function _loop() {
-    var _step$value = _slicedToArray(_step.value, 2),
-        name = _step$value[0],
-        def = _step$value[1];
-
-    var relatedConcepts = def.relatedConcepts;
-
-    if (Array.isArray(relatedConcepts)) {
-      relatedConcepts.forEach(function (relation) {
-        if (relation.module === 'ARIA') {
-          var concept = relation.concept;
-
-          if (concept) {
-            var relationConcepts = AXObjectRoleMap.get(name) || new Set([]);
-            relationConcepts.add(concept);
-            AXObjectRoleMap.set(name, relationConcepts);
-          }
-        }
-      });
-    }
-  };
-
-  for (var _iterator = _AXObjectsMap["default"][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-    _loop();
-  }
-} catch (err) {
-  _didIteratorError = true;
-  _iteratorError = err;
-} finally {
-  try {
-    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
-      _iterator["return"]();
-    }
-  } finally {
-    if (_didIteratorError) {
-      throw _iteratorError;
-    }
-  }
-}
-
-var _default = AXObjectRoleMap;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/AXObjectsMap.js b/node_modules/axobject-query/lib/AXObjectsMap.js
deleted file mode 100755
index f838ec6..0000000
--- a/node_modules/axobject-query/lib/AXObjectsMap.js
+++ /dev/null
@@ -1,258 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _AbbrRole = _interopRequireDefault(require("./etc/objects/AbbrRole"));
-
-var _AlertDialogRole = _interopRequireDefault(require("./etc/objects/AlertDialogRole"));
-
-var _AlertRole = _interopRequireDefault(require("./etc/objects/AlertRole"));
-
-var _AnnotationRole = _interopRequireDefault(require("./etc/objects/AnnotationRole"));
-
-var _ApplicationRole = _interopRequireDefault(require("./etc/objects/ApplicationRole"));
-
-var _ArticleRole = _interopRequireDefault(require("./etc/objects/ArticleRole"));
-
-var _AudioRole = _interopRequireDefault(require("./etc/objects/AudioRole"));
-
-var _BannerRole = _interopRequireDefault(require("./etc/objects/BannerRole"));
-
-var _BlockquoteRole = _interopRequireDefault(require("./etc/objects/BlockquoteRole"));
-
-var _BusyIndicatorRole = _interopRequireDefault(require("./etc/objects/BusyIndicatorRole"));
-
-var _ButtonRole = _interopRequireDefault(require("./etc/objects/ButtonRole"));
-
-var _CanvasRole = _interopRequireDefault(require("./etc/objects/CanvasRole"));
-
-var _CaptionRole = _interopRequireDefault(require("./etc/objects/CaptionRole"));
-
-var _CellRole = _interopRequireDefault(require("./etc/objects/CellRole"));
-
-var _CheckBoxRole = _interopRequireDefault(require("./etc/objects/CheckBoxRole"));
-
-var _ColorWellRole = _interopRequireDefault(require("./etc/objects/ColorWellRole"));
-
-var _ColumnHeaderRole = _interopRequireDefault(require("./etc/objects/ColumnHeaderRole"));
-
-var _ColumnRole = _interopRequireDefault(require("./etc/objects/ColumnRole"));
-
-var _ComboBoxRole = _interopRequireDefault(require("./etc/objects/ComboBoxRole"));
-
-var _ComplementaryRole = _interopRequireDefault(require("./etc/objects/ComplementaryRole"));
-
-var _ContentInfoRole = _interopRequireDefault(require("./etc/objects/ContentInfoRole"));
-
-var _DateRole = _interopRequireDefault(require("./etc/objects/DateRole"));
-
-var _DateTimeRole = _interopRequireDefault(require("./etc/objects/DateTimeRole"));
-
-var _DefinitionRole = _interopRequireDefault(require("./etc/objects/DefinitionRole"));
-
-var _DescriptionListDetailRole = _interopRequireDefault(require("./etc/objects/DescriptionListDetailRole"));
-
-var _DescriptionListRole = _interopRequireDefault(require("./etc/objects/DescriptionListRole"));
-
-var _DescriptionListTermRole = _interopRequireDefault(require("./etc/objects/DescriptionListTermRole"));
-
-var _DetailsRole = _interopRequireDefault(require("./etc/objects/DetailsRole"));
-
-var _DialogRole = _interopRequireDefault(require("./etc/objects/DialogRole"));
-
-var _DirectoryRole = _interopRequireDefault(require("./etc/objects/DirectoryRole"));
-
-var _DisclosureTriangleRole = _interopRequireDefault(require("./etc/objects/DisclosureTriangleRole"));
-
-var _DivRole = _interopRequireDefault(require("./etc/objects/DivRole"));
-
-var _DocumentRole = _interopRequireDefault(require("./etc/objects/DocumentRole"));
-
-var _EmbeddedObjectRole = _interopRequireDefault(require("./etc/objects/EmbeddedObjectRole"));
-
-var _FeedRole = _interopRequireDefault(require("./etc/objects/FeedRole"));
-
-var _FigcaptionRole = _interopRequireDefault(require("./etc/objects/FigcaptionRole"));
-
-var _FigureRole = _interopRequireDefault(require("./etc/objects/FigureRole"));
-
-var _FooterRole = _interopRequireDefault(require("./etc/objects/FooterRole"));
-
-var _FormRole = _interopRequireDefault(require("./etc/objects/FormRole"));
-
-var _GridRole = _interopRequireDefault(require("./etc/objects/GridRole"));
-
-var _GroupRole = _interopRequireDefault(require("./etc/objects/GroupRole"));
-
-var _HeadingRole = _interopRequireDefault(require("./etc/objects/HeadingRole"));
-
-var _IframePresentationalRole = _interopRequireDefault(require("./etc/objects/IframePresentationalRole"));
-
-var _IframeRole = _interopRequireDefault(require("./etc/objects/IframeRole"));
-
-var _IgnoredRole = _interopRequireDefault(require("./etc/objects/IgnoredRole"));
-
-var _ImageMapLinkRole = _interopRequireDefault(require("./etc/objects/ImageMapLinkRole"));
-
-var _ImageMapRole = _interopRequireDefault(require("./etc/objects/ImageMapRole"));
-
-var _ImageRole = _interopRequireDefault(require("./etc/objects/ImageRole"));
-
-var _InlineTextBoxRole = _interopRequireDefault(require("./etc/objects/InlineTextBoxRole"));
-
-var _InputTimeRole = _interopRequireDefault(require("./etc/objects/InputTimeRole"));
-
-var _LabelRole = _interopRequireDefault(require("./etc/objects/LabelRole"));
-
-var _LegendRole = _interopRequireDefault(require("./etc/objects/LegendRole"));
-
-var _LineBreakRole = _interopRequireDefault(require("./etc/objects/LineBreakRole"));
-
-var _LinkRole = _interopRequireDefault(require("./etc/objects/LinkRole"));
-
-var _ListBoxOptionRole = _interopRequireDefault(require("./etc/objects/ListBoxOptionRole"));
-
-var _ListBoxRole = _interopRequireDefault(require("./etc/objects/ListBoxRole"));
-
-var _ListItemRole = _interopRequireDefault(require("./etc/objects/ListItemRole"));
-
-var _ListMarkerRole = _interopRequireDefault(require("./etc/objects/ListMarkerRole"));
-
-var _ListRole = _interopRequireDefault(require("./etc/objects/ListRole"));
-
-var _LogRole = _interopRequireDefault(require("./etc/objects/LogRole"));
-
-var _MainRole = _interopRequireDefault(require("./etc/objects/MainRole"));
-
-var _MarkRole = _interopRequireDefault(require("./etc/objects/MarkRole"));
-
-var _MarqueeRole = _interopRequireDefault(require("./etc/objects/MarqueeRole"));
-
-var _MathRole = _interopRequireDefault(require("./etc/objects/MathRole"));
-
-var _MenuBarRole = _interopRequireDefault(require("./etc/objects/MenuBarRole"));
-
-var _MenuButtonRole = _interopRequireDefault(require("./etc/objects/MenuButtonRole"));
-
-var _MenuItemRole = _interopRequireDefault(require("./etc/objects/MenuItemRole"));
-
-var _MenuItemCheckBoxRole = _interopRequireDefault(require("./etc/objects/MenuItemCheckBoxRole"));
-
-var _MenuItemRadioRole = _interopRequireDefault(require("./etc/objects/MenuItemRadioRole"));
-
-var _MenuListOptionRole = _interopRequireDefault(require("./etc/objects/MenuListOptionRole"));
-
-var _MenuListPopupRole = _interopRequireDefault(require("./etc/objects/MenuListPopupRole"));
-
-var _MenuRole = _interopRequireDefault(require("./etc/objects/MenuRole"));
-
-var _MeterRole = _interopRequireDefault(require("./etc/objects/MeterRole"));
-
-var _NavigationRole = _interopRequireDefault(require("./etc/objects/NavigationRole"));
-
-var _NoneRole = _interopRequireDefault(require("./etc/objects/NoneRole"));
-
-var _NoteRole = _interopRequireDefault(require("./etc/objects/NoteRole"));
-
-var _OutlineRole = _interopRequireDefault(require("./etc/objects/OutlineRole"));
-
-var _ParagraphRole = _interopRequireDefault(require("./etc/objects/ParagraphRole"));
-
-var _PopUpButtonRole = _interopRequireDefault(require("./etc/objects/PopUpButtonRole"));
-
-var _PreRole = _interopRequireDefault(require("./etc/objects/PreRole"));
-
-var _PresentationalRole = _interopRequireDefault(require("./etc/objects/PresentationalRole"));
-
-var _ProgressIndicatorRole = _interopRequireDefault(require("./etc/objects/ProgressIndicatorRole"));
-
-var _RadioButtonRole = _interopRequireDefault(require("./etc/objects/RadioButtonRole"));
-
-var _RadioGroupRole = _interopRequireDefault(require("./etc/objects/RadioGroupRole"));
-
-var _RegionRole = _interopRequireDefault(require("./etc/objects/RegionRole"));
-
-var _RootWebAreaRole = _interopRequireDefault(require("./etc/objects/RootWebAreaRole"));
-
-var _RowHeaderRole = _interopRequireDefault(require("./etc/objects/RowHeaderRole"));
-
-var _RowRole = _interopRequireDefault(require("./etc/objects/RowRole"));
-
-var _RubyRole = _interopRequireDefault(require("./etc/objects/RubyRole"));
-
-var _RulerRole = _interopRequireDefault(require("./etc/objects/RulerRole"));
-
-var _ScrollAreaRole = _interopRequireDefault(require("./etc/objects/ScrollAreaRole"));
-
-var _ScrollBarRole = _interopRequireDefault(require("./etc/objects/ScrollBarRole"));
-
-var _SeamlessWebAreaRole = _interopRequireDefault(require("./etc/objects/SeamlessWebAreaRole"));
-
-var _SearchRole = _interopRequireDefault(require("./etc/objects/SearchRole"));
-
-var _SearchBoxRole = _interopRequireDefault(require("./etc/objects/SearchBoxRole"));
-
-var _SliderRole = _interopRequireDefault(require("./etc/objects/SliderRole"));
-
-var _SliderThumbRole = _interopRequireDefault(require("./etc/objects/SliderThumbRole"));
-
-var _SpinButtonRole = _interopRequireDefault(require("./etc/objects/SpinButtonRole"));
-
-var _SpinButtonPartRole = _interopRequireDefault(require("./etc/objects/SpinButtonPartRole"));
-
-var _SplitterRole = _interopRequireDefault(require("./etc/objects/SplitterRole"));
-
-var _StaticTextRole = _interopRequireDefault(require("./etc/objects/StaticTextRole"));
-
-var _StatusRole = _interopRequireDefault(require("./etc/objects/StatusRole"));
-
-var _SVGRootRole = _interopRequireDefault(require("./etc/objects/SVGRootRole"));
-
-var _SwitchRole = _interopRequireDefault(require("./etc/objects/SwitchRole"));
-
-var _TabGroupRole = _interopRequireDefault(require("./etc/objects/TabGroupRole"));
-
-var _TabRole = _interopRequireDefault(require("./etc/objects/TabRole"));
-
-var _TableHeaderContainerRole = _interopRequireDefault(require("./etc/objects/TableHeaderContainerRole"));
-
-var _TableRole = _interopRequireDefault(require("./etc/objects/TableRole"));
-
-var _TabListRole = _interopRequireDefault(require("./etc/objects/TabListRole"));
-
-var _TabPanelRole = _interopRequireDefault(require("./etc/objects/TabPanelRole"));
-
-var _TermRole = _interopRequireDefault(require("./etc/objects/TermRole"));
-
-var _TextFieldRole = _interopRequireDefault(require("./etc/objects/TextFieldRole"));
-
-var _TimeRole = _interopRequireDefault(require("./etc/objects/TimeRole"));
-
-var _TimerRole = _interopRequireDefault(require("./etc/objects/TimerRole"));
-
-var _ToggleButtonRole = _interopRequireDefault(require("./etc/objects/ToggleButtonRole"));
-
-var _ToolbarRole = _interopRequireDefault(require("./etc/objects/ToolbarRole"));
-
-var _TreeRole = _interopRequireDefault(require("./etc/objects/TreeRole"));
-
-var _TreeGridRole = _interopRequireDefault(require("./etc/objects/TreeGridRole"));
-
-var _TreeItemRole = _interopRequireDefault(require("./etc/objects/TreeItemRole"));
-
-var _UserInterfaceTooltipRole = _interopRequireDefault(require("./etc/objects/UserInterfaceTooltipRole"));
-
-var _VideoRole = _interopRequireDefault(require("./etc/objects/VideoRole"));
-
-var _WebAreaRole = _interopRequireDefault(require("./etc/objects/WebAreaRole"));
-
-var _WindowRole = _interopRequireDefault(require("./etc/objects/WindowRole"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
-
-var AXObjectsMap = new Map([['AbbrRole', _AbbrRole["default"]], ['AlertDialogRole', _AlertDialogRole["default"]], ['AlertRole', _AlertRole["default"]], ['AnnotationRole', _AnnotationRole["default"]], ['ApplicationRole', _ApplicationRole["default"]], ['ArticleRole', _ArticleRole["default"]], ['AudioRole', _AudioRole["default"]], ['BannerRole', _BannerRole["default"]], ['BlockquoteRole', _BlockquoteRole["default"]], ['BusyIndicatorRole', _BusyIndicatorRole["default"]], ['ButtonRole', _ButtonRole["default"]], ['CanvasRole', _CanvasRole["default"]], ['CaptionRole', _CaptionRole["default"]], ['CellRole', _CellRole["default"]], ['CheckBoxRole', _CheckBoxRole["default"]], ['ColorWellRole', _ColorWellRole["default"]], ['ColumnHeaderRole', _ColumnHeaderRole["default"]], ['ColumnRole', _ColumnRole["default"]], ['ComboBoxRole', _ComboBoxRole["default"]], ['ComplementaryRole', _ComplementaryRole["default"]], ['ContentInfoRole', _ContentInfoRole["default"]], ['DateRole', _DateRole["default"]], ['DateTimeRole', _DateTimeRole["default"]], ['DefinitionRole', _DefinitionRole["default"]], ['DescriptionListDetailRole', _DescriptionListDetailRole["default"]], ['DescriptionListRole', _DescriptionListRole["default"]], ['DescriptionListTermRole', _DescriptionListTermRole["default"]], ['DetailsRole', _DetailsRole["default"]], ['DialogRole', _DialogRole["default"]], ['DirectoryRole', _DirectoryRole["default"]], ['DisclosureTriangleRole', _DisclosureTriangleRole["default"]], ['DivRole', _DivRole["default"]], ['DocumentRole', _DocumentRole["default"]], ['EmbeddedObjectRole', _EmbeddedObjectRole["default"]], ['FeedRole', _FeedRole["default"]], ['FigcaptionRole', _FigcaptionRole["default"]], ['FigureRole', _FigureRole["default"]], ['FooterRole', _FooterRole["default"]], ['FormRole', _FormRole["default"]], ['GridRole', _GridRole["default"]], ['GroupRole', _GroupRole["default"]], ['HeadingRole', _HeadingRole["default"]], ['IframePresentationalRole', _IframePresentationalRole["default"]], ['IframeRole', _IframeRole["default"]], ['IgnoredRole', _IgnoredRole["default"]], ['ImageMapLinkRole', _ImageMapLinkRole["default"]], ['ImageMapRole', _ImageMapRole["default"]], ['ImageRole', _ImageRole["default"]], ['InlineTextBoxRole', _InlineTextBoxRole["default"]], ['InputTimeRole', _InputTimeRole["default"]], ['LabelRole', _LabelRole["default"]], ['LegendRole', _LegendRole["default"]], ['LineBreakRole', _LineBreakRole["default"]], ['LinkRole', _LinkRole["default"]], ['ListBoxOptionRole', _ListBoxOptionRole["default"]], ['ListBoxRole', _ListBoxRole["default"]], ['ListItemRole', _ListItemRole["default"]], ['ListMarkerRole', _ListMarkerRole["default"]], ['ListRole', _ListRole["default"]], ['LogRole', _LogRole["default"]], ['MainRole', _MainRole["default"]], ['MarkRole', _MarkRole["default"]], ['MarqueeRole', _MarqueeRole["default"]], ['MathRole', _MathRole["default"]], ['MenuBarRole', _MenuBarRole["default"]], ['MenuButtonRole', _MenuButtonRole["default"]], ['MenuItemRole', _MenuItemRole["default"]], ['MenuItemCheckBoxRole', _MenuItemCheckBoxRole["default"]], ['MenuItemRadioRole', _MenuItemRadioRole["default"]], ['MenuListOptionRole', _MenuListOptionRole["default"]], ['MenuListPopupRole', _MenuListPopupRole["default"]], ['MenuRole', _MenuRole["default"]], ['MeterRole', _MeterRole["default"]], ['NavigationRole', _NavigationRole["default"]], ['NoneRole', _NoneRole["default"]], ['NoteRole', _NoteRole["default"]], ['OutlineRole', _OutlineRole["default"]], ['ParagraphRole', _ParagraphRole["default"]], ['PopUpButtonRole', _PopUpButtonRole["default"]], ['PreRole', _PreRole["default"]], ['PresentationalRole', _PresentationalRole["default"]], ['ProgressIndicatorRole', _ProgressIndicatorRole["default"]], ['RadioButtonRole', _RadioButtonRole["default"]], ['RadioGroupRole', _RadioGroupRole["default"]], ['RegionRole', _RegionRole["default"]], ['RootWebAreaRole', _RootWebAreaRole["default"]], ['RowHeaderRole', _RowHeaderRole["default"]], ['RowRole', _RowRole["default"]], ['RubyRole', _RubyRole["default"]], ['RulerRole', _RulerRole["default"]], ['ScrollAreaRole', _ScrollAreaRole["default"]], ['ScrollBarRole', _ScrollBarRole["default"]], ['SeamlessWebAreaRole', _SeamlessWebAreaRole["default"]], ['SearchRole', _SearchRole["default"]], ['SearchBoxRole', _SearchBoxRole["default"]], ['SliderRole', _SliderRole["default"]], ['SliderThumbRole', _SliderThumbRole["default"]], ['SpinButtonRole', _SpinButtonRole["default"]], ['SpinButtonPartRole', _SpinButtonPartRole["default"]], ['SplitterRole', _SplitterRole["default"]], ['StaticTextRole', _StaticTextRole["default"]], ['StatusRole', _StatusRole["default"]], ['SVGRootRole', _SVGRootRole["default"]], ['SwitchRole', _SwitchRole["default"]], ['TabGroupRole', _TabGroupRole["default"]], ['TabRole', _TabRole["default"]], ['TableHeaderContainerRole', _TableHeaderContainerRole["default"]], ['TableRole', _TableRole["default"]], ['TabListRole', _TabListRole["default"]], ['TabPanelRole', _TabPanelRole["default"]], ['TermRole', _TermRole["default"]], ['TextFieldRole', _TextFieldRole["default"]], ['TimeRole', _TimeRole["default"]], ['TimerRole', _TimerRole["default"]], ['ToggleButtonRole', _ToggleButtonRole["default"]], ['ToolbarRole', _ToolbarRole["default"]], ['TreeRole', _TreeRole["default"]], ['TreeGridRole', _TreeGridRole["default"]], ['TreeItemRole', _TreeItemRole["default"]], ['UserInterfaceTooltipRole', _UserInterfaceTooltipRole["default"]], ['VideoRole', _VideoRole["default"]], ['WebAreaRole', _WebAreaRole["default"]], ['WindowRole', _WindowRole["default"]]]);
-var _default = AXObjectsMap;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/elementAXObjectMap.js b/node_modules/axobject-query/lib/elementAXObjectMap.js
deleted file mode 100755
index de59262..0000000
--- a/node_modules/axobject-query/lib/elementAXObjectMap.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _AXObjectsMap = _interopRequireDefault(require("./AXObjectsMap"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
-
-function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
-
-function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
-
-function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
-
-var axObjectNames = _toConsumableArray(_AXObjectsMap["default"].keys());
-
-var elementAXObjectMap = new Map([]);
-var _iteratorNormalCompletion = true;
-var _didIteratorError = false;
-var _iteratorError = undefined;
-
-try {
-  var _loop = function _loop() {
-    var _step$value = _slicedToArray(_step.value, 2),
-        name = _step$value[0],
-        def = _step$value[1];
-
-    var relatedConcepts = def.relatedConcepts;
-
-    if (Array.isArray(relatedConcepts)) {
-      relatedConcepts.forEach(function (relation) {
-        if (relation.module === 'HTML') {
-          var concept = relation.concept;
-
-          if (concept) {
-            var conceptStr = JSON.stringify(concept);
-            var axObjects = (_toConsumableArray(elementAXObjectMap.entries()).find(function (_ref) {
-              var _ref2 = _slicedToArray(_ref, 2),
-                  key = _ref2[0],
-                  value = _ref2[1];
-
-              return JSON.stringify(key) === conceptStr;
-            }) || [])[1];
-
-            if (!axObjects) {
-              axObjects = new Set([]);
-            }
-
-            axObjects.add(name);
-            elementAXObjectMap.set(concept, axObjects);
-          }
-        }
-      });
-    }
-  };
-
-  for (var _iterator = _AXObjectsMap["default"][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-    _loop();
-  }
-} catch (err) {
-  _didIteratorError = true;
-  _iteratorError = err;
-} finally {
-  try {
-    if (!_iteratorNormalCompletion && _iterator["return"] != null) {
-      _iterator["return"]();
-    }
-  } finally {
-    if (_didIteratorError) {
-      throw _iteratorError;
-    }
-  }
-}
-
-var _default = elementAXObjectMap;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/AbbrRole.js b/node_modules/axobject-query/lib/etc/objects/AbbrRole.js
deleted file mode 100755
index bf0b95c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/AbbrRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var AbbrRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'abbr'
-    }
-  }],
-  type: 'structure'
-};
-var _default = AbbrRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/AlertDialogRole.js b/node_modules/axobject-query/lib/etc/objects/AlertDialogRole.js
deleted file mode 100755
index 18bfa43..0000000
--- a/node_modules/axobject-query/lib/etc/objects/AlertDialogRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var AlertDialogRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'alertdialog'
-    }
-  }],
-  type: 'window'
-};
-var _default = AlertDialogRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/AlertRole.js b/node_modules/axobject-query/lib/etc/objects/AlertRole.js
deleted file mode 100755
index 81f17b7..0000000
--- a/node_modules/axobject-query/lib/etc/objects/AlertRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var AlertRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'alert'
-    }
-  }],
-  type: 'structure'
-};
-var _default = AlertRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/AnnotationRole.js b/node_modules/axobject-query/lib/etc/objects/AnnotationRole.js
deleted file mode 100755
index 70c6e57..0000000
--- a/node_modules/axobject-query/lib/etc/objects/AnnotationRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var AnnotationRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = AnnotationRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ApplicationRole.js b/node_modules/axobject-query/lib/etc/objects/ApplicationRole.js
deleted file mode 100755
index 65bee64..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ApplicationRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ApplicationRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'application'
-    }
-  }],
-  type: 'window'
-};
-var _default = ApplicationRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ArticleRole.js b/node_modules/axobject-query/lib/etc/objects/ArticleRole.js
deleted file mode 100755
index 853648d..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ArticleRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ArticleRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'article'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'article'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ArticleRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/AudioRole.js b/node_modules/axobject-query/lib/etc/objects/AudioRole.js
deleted file mode 100755
index ea1053c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/AudioRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var AudioRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'audio'
-    }
-  }],
-  type: 'widget'
-};
-var _default = AudioRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/BannerRole.js b/node_modules/axobject-query/lib/etc/objects/BannerRole.js
deleted file mode 100755
index bcd2d74..0000000
--- a/node_modules/axobject-query/lib/etc/objects/BannerRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var BannerRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'banner'
-    }
-  }],
-  type: 'structure'
-};
-var _default = BannerRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/BlockquoteRole.js b/node_modules/axobject-query/lib/etc/objects/BlockquoteRole.js
deleted file mode 100755
index 3327853..0000000
--- a/node_modules/axobject-query/lib/etc/objects/BlockquoteRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var BlockquoteRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'blockquote'
-    }
-  }],
-  type: 'structure'
-};
-var _default = BlockquoteRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/BusyIndicatorRole.js b/node_modules/axobject-query/lib/etc/objects/BusyIndicatorRole.js
deleted file mode 100755
index 46c5e81..0000000
--- a/node_modules/axobject-query/lib/etc/objects/BusyIndicatorRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var BusyIndicatorRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      attributes: [{
-        name: 'aria-busy',
-        value: 'true'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = BusyIndicatorRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ButtonRole.js b/node_modules/axobject-query/lib/etc/objects/ButtonRole.js
deleted file mode 100755
index 3e9b7fd..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ButtonRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ButtonRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'button'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'button'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/CanvasRole.js b/node_modules/axobject-query/lib/etc/objects/CanvasRole.js
deleted file mode 100755
index 9a77c15..0000000
--- a/node_modules/axobject-query/lib/etc/objects/CanvasRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var CanvasRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'canvas'
-    }
-  }],
-  type: 'widget'
-};
-var _default = CanvasRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/CaptionRole.js b/node_modules/axobject-query/lib/etc/objects/CaptionRole.js
deleted file mode 100755
index d48a00c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/CaptionRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var CaptionRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'caption'
-    }
-  }],
-  type: 'structure'
-};
-var _default = CaptionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/CellRole.js b/node_modules/axobject-query/lib/etc/objects/CellRole.js
deleted file mode 100755
index cae480a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/CellRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var CellRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'cell'
-    }
-  }, {
-    module: 'ARIA',
-    concept: {
-      name: 'gridcell'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'td'
-    }
-  }],
-  type: 'widget'
-};
-var _default = CellRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/CheckBoxRole.js b/node_modules/axobject-query/lib/etc/objects/CheckBoxRole.js
deleted file mode 100755
index b2da29d..0000000
--- a/node_modules/axobject-query/lib/etc/objects/CheckBoxRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var CheckBoxRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'checkbox'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'checkbox'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = CheckBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ColorWellRole.js b/node_modules/axobject-query/lib/etc/objects/ColorWellRole.js
deleted file mode 100755
index 9a4d1e2..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ColorWellRole.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ColorWellRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'color'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = ColorWellRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ColumnHeaderRole.js b/node_modules/axobject-query/lib/etc/objects/ColumnHeaderRole.js
deleted file mode 100755
index 16e4a5b..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ColumnHeaderRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ColumnHeaderRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'columnheader'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'th'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ColumnHeaderRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ColumnRole.js b/node_modules/axobject-query/lib/etc/objects/ColumnRole.js
deleted file mode 100755
index 8aecdfc..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ColumnRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ColumnRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = ColumnRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ComboBoxRole.js b/node_modules/axobject-query/lib/etc/objects/ComboBoxRole.js
deleted file mode 100755
index 10b2683..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ComboBoxRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ComboBoxRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'combobox'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'select'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ComboBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ComplementaryRole.js b/node_modules/axobject-query/lib/etc/objects/ComplementaryRole.js
deleted file mode 100755
index d76c3a5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ComplementaryRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ComplementaryRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'complementary'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ComplementaryRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ContentInfoRole.js b/node_modules/axobject-query/lib/etc/objects/ContentInfoRole.js
deleted file mode 100755
index 5f75d63..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ContentInfoRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ContentInfoRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'structureinfo'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ContentInfoRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DateRole.js b/node_modules/axobject-query/lib/etc/objects/DateRole.js
deleted file mode 100755
index 1419840..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DateRole.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DateRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'date'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = DateRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DateTimeRole.js b/node_modules/axobject-query/lib/etc/objects/DateTimeRole.js
deleted file mode 100755
index f186d12..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DateTimeRole.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DateTimeRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'datetime'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = DateTimeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DefinitionRole.js b/node_modules/axobject-query/lib/etc/objects/DefinitionRole.js
deleted file mode 100755
index 8ea20cc..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DefinitionRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DefinitionRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dfn'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DefinitionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DescriptionListDetailRole.js b/node_modules/axobject-query/lib/etc/objects/DescriptionListDetailRole.js
deleted file mode 100755
index df9b3c6..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DescriptionListDetailRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DescriptionListDetailRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dd'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DescriptionListDetailRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DescriptionListRole.js b/node_modules/axobject-query/lib/etc/objects/DescriptionListRole.js
deleted file mode 100755
index 1acef36..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DescriptionListRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DescriptionListRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dl'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DescriptionListRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DescriptionListTermRole.js b/node_modules/axobject-query/lib/etc/objects/DescriptionListTermRole.js
deleted file mode 100755
index 9a4662c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DescriptionListTermRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DescriptionListTermRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'dt'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DescriptionListTermRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DetailsRole.js b/node_modules/axobject-query/lib/etc/objects/DetailsRole.js
deleted file mode 100755
index 4fce94a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DetailsRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DetailsRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'details'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DetailsRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DialogRole.js b/node_modules/axobject-query/lib/etc/objects/DialogRole.js
deleted file mode 100755
index c4cb6b5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DialogRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DialogRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'dialog'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'dialog'
-    }
-  }],
-  type: 'window'
-};
-var _default = DialogRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DirectoryRole.js b/node_modules/axobject-query/lib/etc/objects/DirectoryRole.js
deleted file mode 100755
index d4fa15c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DirectoryRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DirectoryRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'directory'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'dir'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DirectoryRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DisclosureTriangleRole.js b/node_modules/axobject-query/lib/etc/objects/DisclosureTriangleRole.js
deleted file mode 100755
index 9330a64..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DisclosureTriangleRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DisclosureTriangleRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = DisclosureTriangleRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DivRole.js b/node_modules/axobject-query/lib/etc/objects/DivRole.js
deleted file mode 100755
index e28f056..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DivRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DivRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'div'
-    }
-  }],
-  type: 'generic'
-};
-var _default = DivRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/DocumentRole.js b/node_modules/axobject-query/lib/etc/objects/DocumentRole.js
deleted file mode 100755
index 0582dd7..0000000
--- a/node_modules/axobject-query/lib/etc/objects/DocumentRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var DocumentRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'document'
-    }
-  }],
-  type: 'structure'
-};
-var _default = DocumentRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/EmbeddedObjectRole.js b/node_modules/axobject-query/lib/etc/objects/EmbeddedObjectRole.js
deleted file mode 100755
index 80307dc..0000000
--- a/node_modules/axobject-query/lib/etc/objects/EmbeddedObjectRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var EmbeddedObjectRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'embed'
-    }
-  }],
-  type: 'widget'
-};
-var _default = EmbeddedObjectRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/FeedRole.js b/node_modules/axobject-query/lib/etc/objects/FeedRole.js
deleted file mode 100755
index 4a5bafc..0000000
--- a/node_modules/axobject-query/lib/etc/objects/FeedRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var FeedRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'feed'
-    }
-  }],
-  type: 'structure'
-};
-var _default = FeedRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/FigcaptionRole.js b/node_modules/axobject-query/lib/etc/objects/FigcaptionRole.js
deleted file mode 100755
index 6b31f2d..0000000
--- a/node_modules/axobject-query/lib/etc/objects/FigcaptionRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var FigcaptionRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'figcaption'
-    }
-  }],
-  type: 'structure'
-};
-var _default = FigcaptionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/FigureRole.js b/node_modules/axobject-query/lib/etc/objects/FigureRole.js
deleted file mode 100755
index 9547b79..0000000
--- a/node_modules/axobject-query/lib/etc/objects/FigureRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var FigureRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'figure'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'figure'
-    }
-  }],
-  type: 'structure'
-};
-var _default = FigureRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/FooterRole.js b/node_modules/axobject-query/lib/etc/objects/FooterRole.js
deleted file mode 100755
index 346302e..0000000
--- a/node_modules/axobject-query/lib/etc/objects/FooterRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var FooterRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'footer'
-    }
-  }],
-  type: 'structure'
-};
-var _default = FooterRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/FormRole.js b/node_modules/axobject-query/lib/etc/objects/FormRole.js
deleted file mode 100755
index 882e46f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/FormRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var FormRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'form'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'form'
-    }
-  }],
-  type: 'structure'
-};
-var _default = FormRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/GridRole.js b/node_modules/axobject-query/lib/etc/objects/GridRole.js
deleted file mode 100755
index e6d2290..0000000
--- a/node_modules/axobject-query/lib/etc/objects/GridRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var GridRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'grid'
-    }
-  }],
-  type: 'widget'
-};
-var _default = GridRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/GroupRole.js b/node_modules/axobject-query/lib/etc/objects/GroupRole.js
deleted file mode 100755
index 835da2d..0000000
--- a/node_modules/axobject-query/lib/etc/objects/GroupRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var GroupRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'group'
-    }
-  }],
-  type: 'structure'
-};
-var _default = GroupRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/HeadingRole.js b/node_modules/axobject-query/lib/etc/objects/HeadingRole.js
deleted file mode 100755
index ea304b8..0000000
--- a/node_modules/axobject-query/lib/etc/objects/HeadingRole.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var HeadingRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'heading'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h1'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h2'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h3'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h4'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h5'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'h6'
-    }
-  }],
-  type: 'structure'
-};
-var _default = HeadingRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/IframePresentationalRole.js b/node_modules/axobject-query/lib/etc/objects/IframePresentationalRole.js
deleted file mode 100755
index d1fcda1..0000000
--- a/node_modules/axobject-query/lib/etc/objects/IframePresentationalRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var IframePresentationalRole = {
-  relatedConcepts: [],
-  type: 'window'
-};
-var _default = IframePresentationalRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/IframeRole.js b/node_modules/axobject-query/lib/etc/objects/IframeRole.js
deleted file mode 100755
index ff123b0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/IframeRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var IframeRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'iframe'
-    }
-  }],
-  type: 'window'
-};
-var _default = IframeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/IgnoredRole.js b/node_modules/axobject-query/lib/etc/objects/IgnoredRole.js
deleted file mode 100755
index d708b05..0000000
--- a/node_modules/axobject-query/lib/etc/objects/IgnoredRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var IgnoredRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = IgnoredRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ImageMapLinkRole.js b/node_modules/axobject-query/lib/etc/objects/ImageMapLinkRole.js
deleted file mode 100755
index 8fcdf3b..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ImageMapLinkRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ImageMapLinkRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = ImageMapLinkRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ImageMapRole.js b/node_modules/axobject-query/lib/etc/objects/ImageMapRole.js
deleted file mode 100755
index 1931c26..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ImageMapRole.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ImageMapRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'img',
-      attributes: [{
-        name: 'usemap'
-      }]
-    }
-  }],
-  type: 'structure'
-};
-var _default = ImageMapRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ImageRole.js b/node_modules/axobject-query/lib/etc/objects/ImageRole.js
deleted file mode 100755
index 9c65f03..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ImageRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ImageRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'img'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'img'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ImageRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/InlineTextBoxRole.js b/node_modules/axobject-query/lib/etc/objects/InlineTextBoxRole.js
deleted file mode 100755
index 2e1e1c2..0000000
--- a/node_modules/axobject-query/lib/etc/objects/InlineTextBoxRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var InlineTextBoxRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input'
-    }
-  }],
-  type: 'widget'
-};
-var _default = InlineTextBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/InputTimeRole.js b/node_modules/axobject-query/lib/etc/objects/InputTimeRole.js
deleted file mode 100755
index c37a8cd..0000000
--- a/node_modules/axobject-query/lib/etc/objects/InputTimeRole.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var InputTimeRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'time'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = InputTimeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/LabelRole.js b/node_modules/axobject-query/lib/etc/objects/LabelRole.js
deleted file mode 100755
index 606222a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/LabelRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var LabelRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'label'
-    }
-  }],
-  type: 'structure'
-};
-var _default = LabelRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/LegendRole.js b/node_modules/axobject-query/lib/etc/objects/LegendRole.js
deleted file mode 100755
index 0418d5a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/LegendRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var LegendRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'legend'
-    }
-  }],
-  type: 'structure'
-};
-var _default = LegendRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/LineBreakRole.js b/node_modules/axobject-query/lib/etc/objects/LineBreakRole.js
deleted file mode 100755
index c3e1e90..0000000
--- a/node_modules/axobject-query/lib/etc/objects/LineBreakRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var LineBreakRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'br'
-    }
-  }],
-  type: 'structure'
-};
-var _default = LineBreakRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/LinkRole.js b/node_modules/axobject-query/lib/etc/objects/LinkRole.js
deleted file mode 100755
index d6d0854..0000000
--- a/node_modules/axobject-query/lib/etc/objects/LinkRole.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var LinkRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'link'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'a',
-      attributes: [{
-        name: 'href'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = LinkRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ListBoxOptionRole.js b/node_modules/axobject-query/lib/etc/objects/ListBoxOptionRole.js
deleted file mode 100755
index 6ae363f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ListBoxOptionRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ListBoxOptionRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'option'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'option'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ListBoxOptionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ListBoxRole.js b/node_modules/axobject-query/lib/etc/objects/ListBoxRole.js
deleted file mode 100755
index eb20039..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ListBoxRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ListBoxRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'listbox'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'datalist'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'select'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ListBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ListItemRole.js b/node_modules/axobject-query/lib/etc/objects/ListItemRole.js
deleted file mode 100755
index 099092a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ListItemRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ListItemRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'listitem'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'li'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ListItemRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ListMarkerRole.js b/node_modules/axobject-query/lib/etc/objects/ListMarkerRole.js
deleted file mode 100755
index 28c9e43..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ListMarkerRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ListMarkerRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = ListMarkerRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ListRole.js b/node_modules/axobject-query/lib/etc/objects/ListRole.js
deleted file mode 100755
index 9eea300..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ListRole.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ListRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'list'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'ul'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'ol'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ListRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/LogRole.js b/node_modules/axobject-query/lib/etc/objects/LogRole.js
deleted file mode 100755
index e193e4f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/LogRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var LogRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'log'
-    }
-  }],
-  type: 'structure'
-};
-var _default = LogRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MainRole.js b/node_modules/axobject-query/lib/etc/objects/MainRole.js
deleted file mode 100755
index 2de7bfd..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MainRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MainRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'main'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'main'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MainRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MarkRole.js b/node_modules/axobject-query/lib/etc/objects/MarkRole.js
deleted file mode 100755
index 86b2871..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MarkRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MarkRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'mark'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MarkRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MarqueeRole.js b/node_modules/axobject-query/lib/etc/objects/MarqueeRole.js
deleted file mode 100755
index 6c820f5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MarqueeRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MarqueeRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'marquee'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'marquee'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MarqueeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MathRole.js b/node_modules/axobject-query/lib/etc/objects/MathRole.js
deleted file mode 100755
index 7438d63..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MathRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MathRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'math'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MathRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuBarRole.js b/node_modules/axobject-query/lib/etc/objects/MenuBarRole.js
deleted file mode 100755
index d3e630f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuBarRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuBarRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menubar'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MenuBarRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuButtonRole.js b/node_modules/axobject-query/lib/etc/objects/MenuButtonRole.js
deleted file mode 100755
index c05ebff..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuButtonRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuButtonRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = MenuButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuItemCheckBoxRole.js b/node_modules/axobject-query/lib/etc/objects/MenuItemCheckBoxRole.js
deleted file mode 100755
index 4cead35..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuItemCheckBoxRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuItemCheckBoxRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menuitemcheckbox'
-    }
-  }],
-  type: 'widget'
-};
-var _default = MenuItemCheckBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuItemRadioRole.js b/node_modules/axobject-query/lib/etc/objects/MenuItemRadioRole.js
deleted file mode 100755
index b096abb..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuItemRadioRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuItemRadioRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menuitemradio'
-    }
-  }],
-  type: 'widget'
-};
-var _default = MenuItemRadioRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuItemRole.js b/node_modules/axobject-query/lib/etc/objects/MenuItemRole.js
deleted file mode 100755
index 9df46cd..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuItemRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuItemRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menuitem'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'menuitem'
-    }
-  }],
-  type: 'widget'
-};
-var _default = MenuItemRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuListOptionRole.js b/node_modules/axobject-query/lib/etc/objects/MenuListOptionRole.js
deleted file mode 100755
index 56d2822..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuListOptionRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuListOptionRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = MenuListOptionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuListPopupRole.js b/node_modules/axobject-query/lib/etc/objects/MenuListPopupRole.js
deleted file mode 100755
index 5dca3d5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuListPopupRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuListPopupRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = MenuListPopupRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MenuRole.js b/node_modules/axobject-query/lib/etc/objects/MenuRole.js
deleted file mode 100755
index 375afc9..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MenuRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MenuRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'menu'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'menu'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MenuRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/MeterRole.js b/node_modules/axobject-query/lib/etc/objects/MeterRole.js
deleted file mode 100755
index a35c309..0000000
--- a/node_modules/axobject-query/lib/etc/objects/MeterRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var MeterRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'meter'
-    }
-  }],
-  type: 'structure'
-};
-var _default = MeterRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/NavigationRole.js b/node_modules/axobject-query/lib/etc/objects/NavigationRole.js
deleted file mode 100755
index 38fb0fa..0000000
--- a/node_modules/axobject-query/lib/etc/objects/NavigationRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var NavigationRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'navigation'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'nav'
-    }
-  }],
-  type: 'structure'
-};
-var _default = NavigationRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/NoneRole.js b/node_modules/axobject-query/lib/etc/objects/NoneRole.js
deleted file mode 100755
index 5ed1fbe..0000000
--- a/node_modules/axobject-query/lib/etc/objects/NoneRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var NoneRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'none'
-    }
-  }],
-  type: 'structure'
-};
-var _default = NoneRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/NoteRole.js b/node_modules/axobject-query/lib/etc/objects/NoteRole.js
deleted file mode 100755
index 2fca958..0000000
--- a/node_modules/axobject-query/lib/etc/objects/NoteRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var NoteRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'note'
-    }
-  }],
-  type: 'structure'
-};
-var _default = NoteRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/OutlineRole.js b/node_modules/axobject-query/lib/etc/objects/OutlineRole.js
deleted file mode 100755
index babaec0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/OutlineRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var OutlineRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = OutlineRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ParagraphRole.js b/node_modules/axobject-query/lib/etc/objects/ParagraphRole.js
deleted file mode 100755
index a95f310..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ParagraphRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ParagraphRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'p'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ParagraphRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/PopUpButtonRole.js b/node_modules/axobject-query/lib/etc/objects/PopUpButtonRole.js
deleted file mode 100755
index 37671fb..0000000
--- a/node_modules/axobject-query/lib/etc/objects/PopUpButtonRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var PopUpButtonRole = {
-  relatedConcepts: [],
-  type: 'widget'
-};
-var _default = PopUpButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/PreRole.js b/node_modules/axobject-query/lib/etc/objects/PreRole.js
deleted file mode 100755
index 5a357e1..0000000
--- a/node_modules/axobject-query/lib/etc/objects/PreRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var PreRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'pre'
-    }
-  }],
-  type: 'structure'
-};
-var _default = PreRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/PresentationalRole.js b/node_modules/axobject-query/lib/etc/objects/PresentationalRole.js
deleted file mode 100755
index 8dff20a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/PresentationalRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var PresentationalRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'presentation'
-    }
-  }],
-  type: 'structure'
-};
-var _default = PresentationalRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ProgressIndicatorRole.js b/node_modules/axobject-query/lib/etc/objects/ProgressIndicatorRole.js
deleted file mode 100755
index 0456f0d..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ProgressIndicatorRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ProgressIndicatorRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'progressbar'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'progress'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ProgressIndicatorRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RadioButtonRole.js b/node_modules/axobject-query/lib/etc/objects/RadioButtonRole.js
deleted file mode 100755
index b87fc95..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RadioButtonRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RadioButtonRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'radio'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'radio'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = RadioButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RadioGroupRole.js b/node_modules/axobject-query/lib/etc/objects/RadioGroupRole.js
deleted file mode 100755
index 3906013..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RadioGroupRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RadioGroupRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'radiogroup'
-    }
-  }],
-  type: 'structure'
-};
-var _default = RadioGroupRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RegionRole.js b/node_modules/axobject-query/lib/etc/objects/RegionRole.js
deleted file mode 100755
index 320bae7..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RegionRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RegionRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'region'
-    }
-  }],
-  type: 'structure'
-};
-var _default = RegionRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RootWebAreaRole.js b/node_modules/axobject-query/lib/etc/objects/RootWebAreaRole.js
deleted file mode 100755
index d64a8a0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RootWebAreaRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RootWebAreaRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = RootWebAreaRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RowHeaderRole.js b/node_modules/axobject-query/lib/etc/objects/RowHeaderRole.js
deleted file mode 100755
index 347cf14..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RowHeaderRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RowHeaderRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'rowheader'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'th',
-      attributes: [{
-        name: 'scope',
-        value: 'row'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = RowHeaderRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RowRole.js b/node_modules/axobject-query/lib/etc/objects/RowRole.js
deleted file mode 100755
index d3a3e38..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RowRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RowRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'row'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'tr'
-    }
-  }],
-  type: 'structure'
-};
-var _default = RowRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RubyRole.js b/node_modules/axobject-query/lib/etc/objects/RubyRole.js
deleted file mode 100755
index e37140e..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RubyRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RubyRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'ruby'
-    }
-  }],
-  type: 'structure'
-};
-var _default = RubyRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/RulerRole.js b/node_modules/axobject-query/lib/etc/objects/RulerRole.js
deleted file mode 100755
index d194003..0000000
--- a/node_modules/axobject-query/lib/etc/objects/RulerRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var RulerRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = RulerRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SVGRootRole.js b/node_modules/axobject-query/lib/etc/objects/SVGRootRole.js
deleted file mode 100755
index b948df9..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SVGRootRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SVGRootRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = SVGRootRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ScrollAreaRole.js b/node_modules/axobject-query/lib/etc/objects/ScrollAreaRole.js
deleted file mode 100755
index 4cc0b19..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ScrollAreaRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ScrollAreaRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = ScrollAreaRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ScrollBarRole.js b/node_modules/axobject-query/lib/etc/objects/ScrollBarRole.js
deleted file mode 100755
index 6858bbe..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ScrollBarRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ScrollBarRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'scrollbar'
-    }
-  }],
-  type: 'widget'
-};
-var _default = ScrollBarRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SeamlessWebAreaRole.js b/node_modules/axobject-query/lib/etc/objects/SeamlessWebAreaRole.js
deleted file mode 100755
index 371df8f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SeamlessWebAreaRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SeamlessWebAreaRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = SeamlessWebAreaRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SearchBoxRole.js b/node_modules/axobject-query/lib/etc/objects/SearchBoxRole.js
deleted file mode 100755
index 8c3e0fb..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SearchBoxRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SearchBoxRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'searchbox'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'search'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = SearchBoxRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SearchRole.js b/node_modules/axobject-query/lib/etc/objects/SearchRole.js
deleted file mode 100755
index 1e8588c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SearchRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SearchRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'search'
-    }
-  }],
-  type: 'structure'
-};
-var _default = SearchRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SliderRole.js b/node_modules/axobject-query/lib/etc/objects/SliderRole.js
deleted file mode 100755
index c2be522..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SliderRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SliderRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'slider'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'range'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = SliderRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SliderThumbRole.js b/node_modules/axobject-query/lib/etc/objects/SliderThumbRole.js
deleted file mode 100755
index a123280..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SliderThumbRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SliderThumbRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = SliderThumbRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SpinButtonPartRole.js b/node_modules/axobject-query/lib/etc/objects/SpinButtonPartRole.js
deleted file mode 100755
index 845d3b5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SpinButtonPartRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SpinButtonPartRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = SpinButtonPartRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SpinButtonRole.js b/node_modules/axobject-query/lib/etc/objects/SpinButtonRole.js
deleted file mode 100755
index 377d4ea..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SpinButtonRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SpinButtonRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'spinbutton'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'number'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = SpinButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SplitterRole.js b/node_modules/axobject-query/lib/etc/objects/SplitterRole.js
deleted file mode 100755
index c61764a..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SplitterRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SplitterRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'separator'
-    }
-  }],
-  type: 'widget'
-};
-var _default = SplitterRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/StaticTextRole.js b/node_modules/axobject-query/lib/etc/objects/StaticTextRole.js
deleted file mode 100755
index 1444d6f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/StaticTextRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var StaticTextRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = StaticTextRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/StatusRole.js b/node_modules/axobject-query/lib/etc/objects/StatusRole.js
deleted file mode 100755
index 2d097b2..0000000
--- a/node_modules/axobject-query/lib/etc/objects/StatusRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var StatusRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'status'
-    }
-  }],
-  type: 'structure'
-};
-var _default = StatusRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/SwitchRole.js b/node_modules/axobject-query/lib/etc/objects/SwitchRole.js
deleted file mode 100755
index 6a30a36..0000000
--- a/node_modules/axobject-query/lib/etc/objects/SwitchRole.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var SwitchRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'switch'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'checkbox'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = SwitchRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TabGroupRole.js b/node_modules/axobject-query/lib/etc/objects/TabGroupRole.js
deleted file mode 100755
index fe5c1d7..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TabGroupRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TabGroupRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tablist'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TabGroupRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TabListRole.js b/node_modules/axobject-query/lib/etc/objects/TabListRole.js
deleted file mode 100755
index 9328335..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TabListRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TabListRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tablist'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TabListRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TabPanelRole.js b/node_modules/axobject-query/lib/etc/objects/TabPanelRole.js
deleted file mode 100755
index 94dffbe..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TabPanelRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TabPanelRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tabpanel'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TabPanelRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TabRole.js b/node_modules/axobject-query/lib/etc/objects/TabRole.js
deleted file mode 100755
index 5ed110c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TabRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TabRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tab'
-    }
-  }],
-  type: 'widget'
-};
-var _default = TabRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TableHeaderContainerRole.js b/node_modules/axobject-query/lib/etc/objects/TableHeaderContainerRole.js
deleted file mode 100755
index 9f07fb0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TableHeaderContainerRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TableHeaderContainerRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = TableHeaderContainerRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TableRole.js b/node_modules/axobject-query/lib/etc/objects/TableRole.js
deleted file mode 100755
index e2f45f0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TableRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TableRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'table'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'table'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TableRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TermRole.js b/node_modules/axobject-query/lib/etc/objects/TermRole.js
deleted file mode 100755
index 71c23c1..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TermRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TermRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'term'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TermRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TextFieldRole.js b/node_modules/axobject-query/lib/etc/objects/TextFieldRole.js
deleted file mode 100755
index d61c3fa..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TextFieldRole.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TextFieldRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'textbox'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input'
-    }
-  }, {
-    module: 'HTML',
-    concept: {
-      name: 'input',
-      attributes: [{
-        name: 'type',
-        value: 'text'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = TextFieldRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TimeRole.js b/node_modules/axobject-query/lib/etc/objects/TimeRole.js
deleted file mode 100755
index 03ffecb..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TimeRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TimeRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'time'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TimeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TimerRole.js b/node_modules/axobject-query/lib/etc/objects/TimerRole.js
deleted file mode 100755
index 70eb2e6..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TimerRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TimerRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'timer'
-    }
-  }],
-  type: 'structure'
-};
-var _default = TimerRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ToggleButtonRole.js b/node_modules/axobject-query/lib/etc/objects/ToggleButtonRole.js
deleted file mode 100755
index 53233e8..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ToggleButtonRole.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ToggleButtonRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      attributes: [{
-        name: 'aria-pressed'
-      }]
-    }
-  }],
-  type: 'widget'
-};
-var _default = ToggleButtonRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/ToolbarRole.js b/node_modules/axobject-query/lib/etc/objects/ToolbarRole.js
deleted file mode 100755
index f2efea5..0000000
--- a/node_modules/axobject-query/lib/etc/objects/ToolbarRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var ToolbarRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'toolbar'
-    }
-  }],
-  type: 'structure'
-};
-var _default = ToolbarRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TreeGridRole.js b/node_modules/axobject-query/lib/etc/objects/TreeGridRole.js
deleted file mode 100755
index f2813d2..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TreeGridRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TreeGridRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'treegrid'
-    }
-  }],
-  type: 'widget'
-};
-var _default = TreeGridRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TreeItemRole.js b/node_modules/axobject-query/lib/etc/objects/TreeItemRole.js
deleted file mode 100755
index 78d8c3c..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TreeItemRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TreeItemRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'treeitem'
-    }
-  }],
-  type: 'widget'
-};
-var _default = TreeItemRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/TreeRole.js b/node_modules/axobject-query/lib/etc/objects/TreeRole.js
deleted file mode 100755
index f016d25..0000000
--- a/node_modules/axobject-query/lib/etc/objects/TreeRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var TreeRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tree'
-    }
-  }],
-  type: 'widget'
-};
-var _default = TreeRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/UserInterfaceTooltipRole.js b/node_modules/axobject-query/lib/etc/objects/UserInterfaceTooltipRole.js
deleted file mode 100755
index 5bf9cad..0000000
--- a/node_modules/axobject-query/lib/etc/objects/UserInterfaceTooltipRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var UserInterfaceTooltipRole = {
-  relatedConcepts: [{
-    module: 'ARIA',
-    concept: {
-      name: 'tooltip'
-    }
-  }],
-  type: 'structure'
-};
-var _default = UserInterfaceTooltipRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/VideoRole.js b/node_modules/axobject-query/lib/etc/objects/VideoRole.js
deleted file mode 100755
index 56630e0..0000000
--- a/node_modules/axobject-query/lib/etc/objects/VideoRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var VideoRole = {
-  relatedConcepts: [{
-    module: 'HTML',
-    concept: {
-      name: 'video'
-    }
-  }],
-  type: 'widget'
-};
-var _default = VideoRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/WebAreaRole.js b/node_modules/axobject-query/lib/etc/objects/WebAreaRole.js
deleted file mode 100755
index fd1059f..0000000
--- a/node_modules/axobject-query/lib/etc/objects/WebAreaRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var WebAreaRole = {
-  relatedConcepts: [],
-  type: 'structure'
-};
-var _default = WebAreaRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/etc/objects/WindowRole.js b/node_modules/axobject-query/lib/etc/objects/WindowRole.js
deleted file mode 100755
index e30d1de..0000000
--- a/node_modules/axobject-query/lib/etc/objects/WindowRole.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-var WindowRole = {
-  relatedConcepts: [],
-  type: 'window'
-};
-var _default = WindowRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/axobject-query/lib/index.js b/node_modules/axobject-query/lib/index.js
deleted file mode 100755
index 14318e5..0000000
--- a/node_modules/axobject-query/lib/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.elementAXObjects = exports.AXObjects = exports.AXObjectRoles = exports.AXObjectElements = void 0;
-
-var _AXObjectElementMap = _interopRequireDefault(require("./AXObjectElementMap"));
-
-var _AXObjectRoleMap = _interopRequireDefault(require("./AXObjectRoleMap"));
-
-var _AXObjectsMap = _interopRequireDefault(require("./AXObjectsMap"));
-
-var _elementAXObjectMap = _interopRequireDefault(require("./elementAXObjectMap"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
-
-var AXObjectElements = _AXObjectElementMap["default"];
-exports.AXObjectElements = AXObjectElements;
-var AXObjectRoles = _AXObjectRoleMap["default"];
-exports.AXObjectRoles = AXObjectRoles;
-var AXObjects = _AXObjectsMap["default"];
-exports.AXObjects = AXObjects;
-var elementAXObjects = _elementAXObjectMap["default"];
-exports.elementAXObjects = elementAXObjects;
\ No newline at end of file
diff --git a/node_modules/axobject-query/package.json b/node_modules/axobject-query/package.json
deleted file mode 100755
index 2e0200d..0000000
--- a/node_modules/axobject-query/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-  "name": "axobject-query",
-  "version": "2.1.2",
-  "description": "Programmatic access to information about the AXObject Model",
-  "main": "lib/index.js",
-  "files": [
-    "lib"
-  ],
-  "scripts": {
-    "build": "rimraf lib && babel src --out-dir lib",
-    "prepare": "npm run lint && npm run flow && npm run test && npm run build",
-    "coveralls": "cat ./reports/lcov.info | coveralls",
-    "flow": "flow; test $? -eq 0 -o $? -eq 2",
-    "lint": "eslint  --config .eslintrc src __tests__",
-    "lint:fix": "npm run lint -- --fix",
-    "pretest": "npm run lint:fix && npm run flow",
-    "test": "npm run jest",
-    "test:ci": "npm run jest -- --ci --runInBand",
-    "jest": "jest --coverage __tests__/**/*"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/A11yance/axobject-query.git"
-  },
-  "keywords": [
-    "accessibility"
-  ],
-  "author": "Jesse Beach <splendidnoise@gmail.com>",
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/A11yance/axobject-query/issues"
-  },
-  "homepage": "https://github.com/A11yance/axobject-query#readme",
-  "devDependencies": {
-    "@babel/cli": "^7.6.4",
-    "@babel/core": "^7.6.4",
-    "@babel/preset-env": "^7.6.3",
-    "@babel/preset-flow": "^7.7.4",
-    "babel-eslint": "^10.0.1",
-    "babel-jest": "^24.0.0",
-    "coveralls": "^2.12.0",
-    "eslint": "^5 || ^6",
-    "eslint-config-airbnb-base": "^13.0.0",
-    "eslint-plugin-flowtype": "^3.5.0",
-    "eslint-plugin-import": "^2.18.0",
-    "expect": "^1.20.2",
-    "flow-bin": "^0.112.0",
-    "jest": "^24.9.0",
-    "rimraf": "^2.6.3"
-  },
-  "dependencies": {},
-  "jest": {
-    "coverageReporters": [
-      "lcov"
-    ],
-    "coverageDirectory": "reports",
-    "roots": [
-      "<rootDir>/__tests__"
-    ]
-  }
-}
diff --git a/node_modules/babel-eslint/LICENSE b/node_modules/babel-eslint/LICENSE
deleted file mode 100644
index 80194a8..0000000
--- a/node_modules/babel-eslint/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2014-2016 Sebastian McKenzie <sebmck@gmail.com>
-
-MIT License
-
-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.
diff --git a/node_modules/babel-eslint/README.md b/node_modules/babel-eslint/README.md
deleted file mode 100644
index 6a4f908..0000000
--- a/node_modules/babel-eslint/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# babel-eslint [![npm](https://img.shields.io/npm/v/babel-eslint.svg)](https://www.npmjs.com/package/babel-eslint) [![travis](https://img.shields.io/travis/babel/babel-eslint/master.svg)](https://travis-ci.org/babel/babel-eslint) [![npm-downloads](https://img.shields.io/npm/dm/babel-eslint.svg)](https://www.npmjs.com/package/babel-eslint)
-
-**babel-eslint** allows you to lint **ALL** valid Babel code with the fantastic
-[ESLint](https://github.com/eslint/eslint).
-
-### Why Use babel-eslint
-
-You only need to use babel-eslint if you are using types (Flow) or experimental features not supported in ESLint itself yet. Otherwise try the default parser (you don't have to use it just because you are using Babel).
-
----
-
-> If there is an issue, first check if it can be reproduced with the regular parser or with the latest versions of `eslint` and `babel-eslint`!
-
-For questions and support please visit the [`#discussion`](https://babeljs.slack.com/messages/discussion/) babel slack channel (sign up [here](https://github.com/babel/notes/issues/38)) or eslint [gitter](https://gitter.im/eslint/eslint)!
-
-> Note that the `ecmaFeatures` config property may still be required for ESLint to work properly with features not in ECMAScript 5 by default. Examples are `globalReturn` and `modules`).
-
-## Known Issues
-
-Flow:
-> Check out [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype): An `eslint` plugin that makes flow type annotations global variables and marks declarations as used. Solves the problem of false positives with `no-undef` and `no-unused-vars`.
-- `no-undef` for global flow types: `ReactElement`, `ReactClass` [#130](https://github.com/babel/babel-eslint/issues/130#issuecomment-111215076)
-  - Workaround: define types as globals in `.eslintrc` or define types and import them `import type ReactElement from './types'`
-- `no-unused-vars/no-undef` with Flow declarations (`declare module A {}`) [#132](https://github.com/babel/babel-eslint/issues/132#issuecomment-112815926)
-
-Modules/strict mode
-- `no-unused-vars: [2, {vars: local}]` [#136](https://github.com/babel/babel-eslint/issues/136)
-
-Please check out [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) for React/JSX issues
-- `no-unused-vars` with jsx
-
-Please check out [eslint-plugin-babel](https://github.com/babel/eslint-plugin-babel) for other issues
-
-## How does it work?
-
-ESLint allows custom parsers. This is great but some of the syntax nodes that Babel supports
-aren't supported by ESLint. When using this plugin, ESLint is monkeypatched and your code is
-transformed into code that ESLint can understand. All location info such as line numbers,
-columns is also retained so you can track down errors with ease.
-
-Basically `babel-eslint` exports an [`index.js`](/index.js) that a linter can use.
-It just needs to export a `parse` method that takes in a string of code and outputs an AST.
-
-## Usage
-
-### Supported ESLint versions
-
-ESLint | babel-eslint
------------- | -------------
-4.x | >= 6.x
-3.x | >= 6.x
-2.x | >= 6.x
-1.x | >= 5.x
-
-### Install
-
-Ensure that you have substituted the correct version lock for `eslint` and `babel-eslint` into this command:
-
-```sh
-$ npm install eslint@4.x babel-eslint@8 --save-dev
-# or
-$ yarn add eslint@4.x babel-eslint@8 -D
-```
-
-### Setup
-
-**.eslintrc**
-
-```json
-{
-  "parser": "babel-eslint",
-  "rules": {
-    "strict": 0
-  }
-}
-```
-
-Check out the [ESLint docs](http://eslint.org/docs/rules/) for all possible rules.
-
-### Configuration
-
-- `sourceType` can be set to `'module'`(default) or `'script'` if your code isn't using ECMAScript modules.
-- `allowImportExportEverywhere` (default `false`) can be set to `true` to allow import and export declarations to appear anywhere a statement is allowed if your build environment supports that. Otherwise import and export declarations can only appear at a program's top level.
-- `codeFrame` (default `true`) can be set to `false` to disable the code frame in the reporter. This is useful since some eslint formatters don't play well with it.
-
-**.eslintrc**
-
-```json
-{
-  "parser": "babel-eslint",
-  "parserOptions": {
-    "sourceType": "module",
-    "allowImportExportEverywhere": false,
-    "codeFrame": true
-  }
-}
-```
-
-### Run
-
-```sh
-$ eslint your-files-here
-```
diff --git a/node_modules/babel-eslint/lib/analyze-scope.js b/node_modules/babel-eslint/lib/analyze-scope.js
deleted file mode 100644
index 80bdff0..0000000
--- a/node_modules/babel-eslint/lib/analyze-scope.js
+++ /dev/null
@@ -1,346 +0,0 @@
-"use strict";
-
-const t = require("@babel/types");
-const requireFromESLint = require("./require-from-eslint");
-
-const escope = requireFromESLint("eslint-scope");
-const Definition = requireFromESLint("eslint-scope/lib/definition").Definition;
-const OriginalPatternVisitor = requireFromESLint(
-  "eslint-scope/lib/pattern-visitor"
-);
-const OriginalReferencer = requireFromESLint("eslint-scope/lib/referencer");
-const fallback = require("eslint-visitor-keys").getKeys;
-const childVisitorKeys = require("./visitor-keys");
-
-const flowFlippedAliasKeys = t.FLIPPED_ALIAS_KEYS.Flow.concat([
-  "ArrayPattern",
-  "ClassDeclaration",
-  "ClassExpression",
-  "FunctionDeclaration",
-  "FunctionExpression",
-  "Identifier",
-  "ObjectPattern",
-  "RestElement",
-]);
-const visitorKeysMap = Object.keys(t.VISITOR_KEYS).reduce(function(acc, key) {
-  const value = t.VISITOR_KEYS[key];
-  if (flowFlippedAliasKeys.indexOf(value) === -1) {
-    acc[key] = value;
-  }
-  return acc;
-}, {});
-
-const propertyTypes = {
-  // loops
-  callProperties: { type: "loop", values: ["value"] },
-  indexers: { type: "loop", values: ["key", "value"] },
-  properties: { type: "loop", values: ["argument", "value"] },
-  types: { type: "loop" },
-  params: { type: "loop" },
-  // single property
-  argument: { type: "single" },
-  elementType: { type: "single" },
-  qualification: { type: "single" },
-  rest: { type: "single" },
-  returnType: { type: "single" },
-  // others
-  typeAnnotation: { type: "typeAnnotation" },
-  typeParameters: { type: "typeParameters" },
-  id: { type: "id" },
-};
-
-class PatternVisitor extends OriginalPatternVisitor {
-  ArrayPattern(node) {
-    node.elements.forEach(this.visit, this);
-  }
-
-  ObjectPattern(node) {
-    node.properties.forEach(this.visit, this);
-  }
-}
-
-class Referencer extends OriginalReferencer {
-  // inherits.
-  visitPattern(node, options, callback) {
-    if (!node) {
-      return;
-    }
-
-    // Visit type annotations.
-    this._checkIdentifierOrVisit(node.typeAnnotation);
-    if (t.isAssignmentPattern(node)) {
-      this._checkIdentifierOrVisit(node.left.typeAnnotation);
-    }
-
-    // Overwrite `super.visitPattern(node, options, callback)` in order to not visit `ArrayPattern#typeAnnotation` and `ObjectPattern#typeAnnotation`.
-    if (typeof options === "function") {
-      callback = options;
-      options = { processRightHandNodes: false };
-    }
-
-    const visitor = new PatternVisitor(this.options, node, callback);
-    visitor.visit(node);
-
-    // Process the right hand nodes recursively.
-    if (options.processRightHandNodes) {
-      visitor.rightHandNodes.forEach(this.visit, this);
-    }
-  }
-
-  // inherits.
-  visitClass(node) {
-    // Decorators.
-    this._visitArray(node.decorators);
-
-    // Flow type parameters.
-    const typeParamScope = this._nestTypeParamScope(node);
-
-    // Flow super types.
-    this._visitTypeAnnotation(node.implements);
-    this._visitTypeAnnotation(
-      node.superTypeParameters && node.superTypeParameters.params
-    );
-
-    // Basic.
-    super.visitClass(node);
-
-    // Close the type parameter scope.
-    if (typeParamScope) {
-      this.close(node);
-    }
-  }
-
-  // inherits.
-  visitFunction(node) {
-    const typeParamScope = this._nestTypeParamScope(node);
-
-    // Flow return types.
-    this._checkIdentifierOrVisit(node.returnType);
-
-    // Basic.
-    super.visitFunction(node);
-
-    // Close the type parameter scope.
-    if (typeParamScope) {
-      this.close(node);
-    }
-  }
-
-  // inherits.
-  visitProperty(node) {
-    if (node.value && node.value.type === "TypeCastExpression") {
-      this._visitTypeAnnotation(node.value);
-    }
-    this._visitArray(node.decorators);
-    super.visitProperty(node);
-  }
-
-  InterfaceDeclaration(node) {
-    this._createScopeVariable(node, node.id);
-
-    const typeParamScope = this._nestTypeParamScope(node);
-
-    // TODO: Handle mixins
-    this._visitArray(node.extends);
-    this.visit(node.body);
-
-    if (typeParamScope) {
-      this.close(node);
-    }
-  }
-
-  EnumDeclaration(node) {
-    this._createScopeVariable(node, node.id);
-  }
-
-  TypeAlias(node) {
-    this._createScopeVariable(node, node.id);
-
-    const typeParamScope = this._nestTypeParamScope(node);
-
-    this.visit(node.right);
-
-    if (typeParamScope) {
-      this.close(node);
-    }
-  }
-
-  ClassProperty(node) {
-    this._visitClassProperty(node);
-  }
-
-  ClassPrivateProperty(node) {
-    this._visitClassProperty(node);
-  }
-
-  DeclareModule(node) {
-    this._visitDeclareX(node);
-  }
-
-  DeclareFunction(node) {
-    this._visitDeclareX(node);
-  }
-
-  DeclareVariable(node) {
-    this._visitDeclareX(node);
-  }
-
-  DeclareClass(node) {
-    this._visitDeclareX(node);
-  }
-
-  // visit OptionalMemberExpression as a MemberExpression.
-  OptionalMemberExpression(node) {
-    super.MemberExpression(node);
-  }
-
-  _visitClassProperty(node) {
-    this._visitTypeAnnotation(node.typeAnnotation);
-    this.visitProperty(node);
-  }
-
-  _visitDeclareX(node) {
-    if (node.id) {
-      this._createScopeVariable(node, node.id);
-    }
-
-    const typeParamScope = this._nestTypeParamScope(node);
-    if (typeParamScope) {
-      this.close(node);
-    }
-  }
-
-  _createScopeVariable(node, name) {
-    this.currentScope().variableScope.__define(
-      name,
-      new Definition("Variable", name, node, null, null, null)
-    );
-  }
-
-  _nestTypeParamScope(node) {
-    if (!node.typeParameters) {
-      return null;
-    }
-
-    const parentScope = this.scopeManager.__currentScope;
-    const scope = new escope.Scope(
-      this.scopeManager,
-      "type-parameters",
-      parentScope,
-      node,
-      false
-    );
-
-    this.scopeManager.__nestScope(scope);
-    for (let j = 0; j < node.typeParameters.params.length; j++) {
-      const name = node.typeParameters.params[j];
-      scope.__define(name, new Definition("TypeParameter", name, name));
-      if (name.typeAnnotation) {
-        this._checkIdentifierOrVisit(name);
-      }
-    }
-    scope.__define = function() {
-      return parentScope.__define.apply(parentScope, arguments);
-    };
-
-    return scope;
-  }
-
-  _visitTypeAnnotation(node) {
-    if (!node) {
-      return;
-    }
-    if (Array.isArray(node)) {
-      node.forEach(this._visitTypeAnnotation, this);
-      return;
-    }
-
-    // get property to check (params, id, etc...)
-    const visitorValues = visitorKeysMap[node.type];
-    if (!visitorValues) {
-      return;
-    }
-
-    // can have multiple properties
-    for (let i = 0; i < visitorValues.length; i++) {
-      const visitorValue = visitorValues[i];
-      const propertyType = propertyTypes[visitorValue];
-      const nodeProperty = node[visitorValue];
-      // check if property or type is defined
-      if (propertyType == null || nodeProperty == null) {
-        continue;
-      }
-      if (propertyType.type === "loop") {
-        for (let j = 0; j < nodeProperty.length; j++) {
-          if (Array.isArray(propertyType.values)) {
-            for (let k = 0; k < propertyType.values.length; k++) {
-              const loopPropertyNode = nodeProperty[j][propertyType.values[k]];
-              if (loopPropertyNode) {
-                this._checkIdentifierOrVisit(loopPropertyNode);
-              }
-            }
-          } else {
-            this._checkIdentifierOrVisit(nodeProperty[j]);
-          }
-        }
-      } else if (propertyType.type === "single") {
-        this._checkIdentifierOrVisit(nodeProperty);
-      } else if (propertyType.type === "typeAnnotation") {
-        this._visitTypeAnnotation(node.typeAnnotation);
-      } else if (propertyType.type === "typeParameters") {
-        for (let l = 0; l < node.typeParameters.params.length; l++) {
-          this._checkIdentifierOrVisit(node.typeParameters.params[l]);
-        }
-      } else if (propertyType.type === "id") {
-        if (node.id.type === "Identifier") {
-          this._checkIdentifierOrVisit(node.id);
-        } else {
-          this._visitTypeAnnotation(node.id);
-        }
-      }
-    }
-  }
-
-  _checkIdentifierOrVisit(node) {
-    if (node && node.typeAnnotation) {
-      this._visitTypeAnnotation(node.typeAnnotation);
-    } else if (node && node.type === "Identifier") {
-      this.visit(node);
-    } else {
-      this._visitTypeAnnotation(node);
-    }
-  }
-
-  _visitArray(nodeList) {
-    if (nodeList) {
-      for (const node of nodeList) {
-        this.visit(node);
-      }
-    }
-  }
-}
-
-module.exports = function(ast, parserOptions) {
-  const options = {
-    ignoreEval: true,
-    optimistic: false,
-    directive: false,
-    nodejsScope:
-      ast.sourceType === "script" &&
-      (parserOptions.ecmaFeatures &&
-        parserOptions.ecmaFeatures.globalReturn) === true,
-    impliedStrict: false,
-    sourceType: ast.sourceType,
-    ecmaVersion: parserOptions.ecmaVersion || 2018,
-    fallback,
-  };
-
-  options.childVisitorKeys = childVisitorKeys;
-
-  const scopeManager = new escope.ScopeManager(options);
-  const referencer = new Referencer(options, scopeManager);
-
-  referencer.visit(ast);
-
-  return scopeManager;
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/attachComments.js b/node_modules/babel-eslint/lib/babylon-to-espree/attachComments.js
deleted file mode 100644
index 8c608a4..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/attachComments.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-// comment fixes
-module.exports = function(ast, comments, tokens) {
-  if (comments.length) {
-    var firstComment = comments[0];
-    var lastComment = comments[comments.length - 1];
-    // fixup program start
-    if (!tokens.length) {
-      // if no tokens, the program starts at the end of the last comment
-      ast.start = lastComment.end;
-      ast.loc.start.line = lastComment.loc.end.line;
-      ast.loc.start.column = lastComment.loc.end.column;
-
-      if (ast.leadingComments === null && ast.innerComments.length) {
-        ast.leadingComments = ast.innerComments;
-      }
-    } else if (firstComment.start < tokens[0].start) {
-      // if there are comments before the first token, the program starts at the first token
-      var token = tokens[0];
-      // ast.start = token.start;
-      // ast.loc.start.line = token.loc.start.line;
-      // ast.loc.start.column = token.loc.start.column;
-
-      // estraverse do not put leading comments on first node when the comment
-      // appear before the first token
-      if (ast.body.length) {
-        var node = ast.body[0];
-        node.leadingComments = [];
-        var firstTokenStart = token.start;
-        var len = comments.length;
-        for (var i = 0; i < len && comments[i].start < firstTokenStart; i++) {
-          node.leadingComments.push(comments[i]);
-        }
-      }
-    }
-    // fixup program end
-    if (tokens.length) {
-      var lastToken = tokens[tokens.length - 1];
-      if (lastComment.end > lastToken.end) {
-        // If there is a comment after the last token, the program ends at the
-        // last token and not the comment
-        // ast.end = lastToken.end;
-        ast.range[1] = lastToken.end;
-        ast.loc.end.line = lastToken.loc.end.line;
-        ast.loc.end.column = lastToken.loc.end.column;
-      }
-    }
-  } else {
-    if (!tokens.length) {
-      ast.loc.start.line = 1;
-      ast.loc.end.line = 1;
-    }
-  }
-  if (ast.body && ast.body.length > 0) {
-    ast.loc.start.line = ast.body[0].loc.start.line;
-    ast.range[0] = ast.body[0].start;
-  }
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/convertComments.js b/node_modules/babel-eslint/lib/babylon-to-espree/convertComments.js
deleted file mode 100644
index 17d7117..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/convertComments.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function(comments) {
-  for (var i = 0; i < comments.length; i++) {
-    var comment = comments[i];
-    if (comment.type === "CommentBlock") {
-      comment.type = "Block";
-    } else if (comment.type === "CommentLine") {
-      comment.type = "Line";
-    }
-    // sometimes comments don't get ranges computed,
-    // even with options.ranges === true
-    if (!comment.range) {
-      comment.range = [comment.start, comment.end];
-    }
-  }
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/convertTemplateType.js b/node_modules/babel-eslint/lib/babylon-to-espree/convertTemplateType.js
deleted file mode 100644
index accde61..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/convertTemplateType.js
+++ /dev/null
@@ -1,92 +0,0 @@
-"use strict";
-
-module.exports = function(tokens, tt) {
-  let curlyBrace = null;
-  let templateTokens = [];
-  const result = [];
-
-  function addTemplateType() {
-    const start = templateTokens[0];
-    const end = templateTokens[templateTokens.length - 1];
-
-    const value = templateTokens.reduce((result, token) => {
-      if (token.value) {
-        result += token.value;
-      } else if (token.type !== tt.template) {
-        result += token.type.label;
-      }
-
-      return result;
-    }, "");
-
-    result.push({
-      type: "Template",
-      value: value,
-      start: start.start,
-      end: end.end,
-      loc: {
-        start: start.loc.start,
-        end: end.loc.end,
-      },
-    });
-
-    templateTokens = [];
-  }
-
-  tokens.forEach(token => {
-    switch (token.type) {
-      case tt.backQuote:
-        if (curlyBrace) {
-          result.push(curlyBrace);
-          curlyBrace = null;
-        }
-
-        templateTokens.push(token);
-
-        if (templateTokens.length > 1) {
-          addTemplateType();
-        }
-
-        break;
-
-      case tt.dollarBraceL:
-        templateTokens.push(token);
-        addTemplateType();
-        break;
-
-      case tt.braceR:
-        if (curlyBrace) {
-          result.push(curlyBrace);
-        }
-
-        curlyBrace = token;
-        break;
-
-      case tt.template:
-        if (curlyBrace) {
-          templateTokens.push(curlyBrace);
-          curlyBrace = null;
-        }
-
-        templateTokens.push(token);
-        break;
-
-      case tt.eof:
-        if (curlyBrace) {
-          result.push(curlyBrace);
-        }
-
-        break;
-
-      default:
-        if (curlyBrace) {
-          result.push(curlyBrace);
-          curlyBrace = null;
-        }
-
-        result.push(token);
-    }
-  });
-
-  return result;
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/index.js b/node_modules/babel-eslint/lib/babylon-to-espree/index.js
deleted file mode 100644
index 6d6e12b..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-var attachComments = require("./attachComments");
-var convertComments = require("./convertComments");
-var toTokens = require("./toTokens");
-var toAST = require("./toAST");
-
-module.exports = function(ast, traverse, tt, code) {
-  // convert tokens
-  ast.tokens = toTokens(ast.tokens, tt, code);
-
-  // add comments
-  convertComments(ast.comments);
-
-  // transform esprima and acorn divergent nodes
-  toAST(ast, traverse, code);
-
-  // ast.program.tokens = ast.tokens;
-  // ast.program.comments = ast.comments;
-  // ast = ast.program;
-
-  // remove File
-  ast.type = "Program";
-  ast.sourceType = ast.program.sourceType;
-  ast.directives = ast.program.directives;
-  ast.body = ast.program.body;
-  delete ast.program;
-
-  attachComments(ast, ast.comments, ast.tokens);
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/toAST.js b/node_modules/babel-eslint/lib/babylon-to-espree/toAST.js
deleted file mode 100644
index b3da41f..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/toAST.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use strict";
-
-var t = require("@babel/types");
-var convertComments = require("./convertComments");
-
-module.exports = function(ast, traverse, code) {
-  var state = { source: code };
-
-  // Monkey patch visitor keys in order to be able to traverse the estree nodes
-  t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;
-  t.VISITOR_KEYS.MethodDefinition = [
-    "key",
-    "value",
-    "decorators",
-    "returnType",
-    "typeParameters",
-  ];
-
-  traverse(ast, astTransformVisitor, null, state);
-
-  delete t.VISITOR_KEYS.Property;
-  delete t.VISITOR_KEYS.MethodDefinition;
-};
-
-var astTransformVisitor = {
-  noScope: true,
-  enter(path) {
-    var node = path.node;
-
-    // private var to track original node type
-    node._babelType = node.type;
-
-    if (node.innerComments) {
-      node.trailingComments = node.innerComments;
-      delete node.innerComments;
-    }
-
-    if (node.trailingComments) {
-      convertComments(node.trailingComments);
-    }
-
-    if (node.leadingComments) {
-      convertComments(node.leadingComments);
-    }
-  },
-  exit(path) {
-    var node = path.node;
-
-    if (path.isJSXText()) {
-      node.type = "Literal";
-    }
-
-    if (
-      path.isRestElement() &&
-      path.parent &&
-      path.parent.type === "ObjectPattern"
-    ) {
-      node.type = "ExperimentalRestProperty";
-    }
-
-    if (
-      path.isSpreadElement() &&
-      path.parent &&
-      path.parent.type === "ObjectExpression"
-    ) {
-      node.type = "ExperimentalSpreadProperty";
-    }
-
-    if (path.isTypeParameter()) {
-      node.type = "Identifier";
-      node.typeAnnotation = node.bound;
-      delete node.bound;
-    }
-
-    // flow: prevent "no-undef"
-    // for "Component" in: "let x: React.Component"
-    if (path.isQualifiedTypeIdentifier()) {
-      delete node.id;
-    }
-    // for "b" in: "var a: { b: Foo }"
-    if (path.isObjectTypeProperty()) {
-      delete node.key;
-    }
-    // for "indexer" in: "var a: {[indexer: string]: number}"
-    if (path.isObjectTypeIndexer()) {
-      delete node.id;
-    }
-    // for "param" in: "var a: { func(param: Foo): Bar };"
-    if (path.isFunctionTypeParam()) {
-      delete node.name;
-    }
-
-    // modules
-
-    if (path.isImportDeclaration()) {
-      delete node.isType;
-    }
-
-    // template string range fixes
-    if (path.isTemplateLiteral()) {
-      for (var j = 0; j < node.quasis.length; j++) {
-        var q = node.quasis[j];
-        q.range[0] -= 1;
-        if (q.tail) {
-          q.range[1] += 1;
-        } else {
-          q.range[1] += 2;
-        }
-        q.loc.start.column -= 1;
-        if (q.tail) {
-          q.loc.end.column += 1;
-        } else {
-          q.loc.end.column += 2;
-        }
-      }
-    }
-  },
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/toToken.js b/node_modules/babel-eslint/lib/babylon-to-espree/toToken.js
deleted file mode 100644
index 44c7352..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/toToken.js
+++ /dev/null
@@ -1,84 +0,0 @@
-"use strict";
-
-module.exports = function(token, tt, source) {
-  var type = token.type;
-  token.range = [token.start, token.end];
-
-  if (type === tt.name) {
-    token.type = "Identifier";
-  } else if (
-    type === tt.semi ||
-    type === tt.comma ||
-    type === tt.parenL ||
-    type === tt.parenR ||
-    type === tt.braceL ||
-    type === tt.braceR ||
-    type === tt.slash ||
-    type === tt.dot ||
-    type === tt.bracketL ||
-    type === tt.bracketR ||
-    type === tt.ellipsis ||
-    type === tt.arrow ||
-    type === tt.pipeline ||
-    type === tt.star ||
-    type === tt.incDec ||
-    type === tt.colon ||
-    type === tt.question ||
-    type === tt.questionDot ||
-    type === tt.template ||
-    type === tt.backQuote ||
-    type === tt.dollarBraceL ||
-    type === tt.at ||
-    type === tt.logicalOR ||
-    type === tt.logicalAND ||
-    type === tt.nullishCoalescing ||
-    type === tt.bitwiseOR ||
-    type === tt.bitwiseXOR ||
-    type === tt.bitwiseAND ||
-    type === tt.equality ||
-    type === tt.relational ||
-    type === tt.bitShift ||
-    type === tt.plusMin ||
-    type === tt.modulo ||
-    type === tt.exponent ||
-    type === tt.bang ||
-    type === tt.tilde ||
-    type === tt.doubleColon ||
-    type.isAssign
-  ) {
-    token.type = "Punctuator";
-    if (!token.value) token.value = type.label;
-  } else if (type === tt.jsxTagStart) {
-    token.type = "Punctuator";
-    token.value = "<";
-  } else if (type === tt.jsxTagEnd) {
-    token.type = "Punctuator";
-    token.value = ">";
-  } else if (type === tt.jsxName) {
-    token.type = "JSXIdentifier";
-  } else if (type === tt.jsxText) {
-    token.type = "JSXText";
-  } else if (type.keyword === "null") {
-    token.type = "Null";
-  } else if (type.keyword === "false" || type.keyword === "true") {
-    token.type = "Boolean";
-  } else if (type.keyword) {
-    token.type = "Keyword";
-  } else if (type === tt.num) {
-    token.type = "Numeric";
-    token.value = source.slice(token.start, token.end);
-  } else if (type === tt.string) {
-    token.type = "String";
-    token.value = source.slice(token.start, token.end);
-  } else if (type === tt.regexp) {
-    token.type = "RegularExpression";
-    var value = token.value;
-    token.regex = {
-      pattern: value.pattern,
-      flags: value.flags,
-    };
-    token.value = `/${value.pattern}/${value.flags}`;
-  }
-
-  return token;
-};
diff --git a/node_modules/babel-eslint/lib/babylon-to-espree/toTokens.js b/node_modules/babel-eslint/lib/babylon-to-espree/toTokens.js
deleted file mode 100644
index bb30819..0000000
--- a/node_modules/babel-eslint/lib/babylon-to-espree/toTokens.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var convertTemplateType = require("./convertTemplateType");
-var toToken = require("./toToken");
-
-module.exports = function(tokens, tt, code) {
-  return convertTemplateType(tokens, tt)
-    .filter(t => t.type !== "CommentLine" && t.type !== "CommentBlock")
-    .map(t => toToken(t, tt, code));
-};
diff --git a/node_modules/babel-eslint/lib/index.js b/node_modules/babel-eslint/lib/index.js
deleted file mode 100644
index 9e527d2..0000000
--- a/node_modules/babel-eslint/lib/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-exports.parse = function(code, options) {
-  return exports.parseForESLint(code, options).ast;
-};
-
-exports.parseForESLint = function(code, options) {
-  options = options || {};
-  options.ecmaVersion = options.ecmaVersion || 2018;
-  options.sourceType = options.sourceType || "module";
-  options.allowImportExportEverywhere =
-    options.allowImportExportEverywhere || false;
-
-  return require("./parse-with-scope")(code, options);
-};
-
-exports.parseNoPatch = function(code, options) {
-  return require("./parse")(code, options);
-};
diff --git a/node_modules/babel-eslint/lib/parse-with-scope.js b/node_modules/babel-eslint/lib/parse-with-scope.js
deleted file mode 100644
index 36e3fce..0000000
--- a/node_modules/babel-eslint/lib/parse-with-scope.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-const visitorKeys = require("./visitor-keys");
-const analyzeScope = require("./analyze-scope");
-const parse = require("./parse");
-
-module.exports = function(code, options) {
-  const ast = parse(code, options);
-  const scopeManager = analyzeScope(ast, options);
-
-  return { ast, scopeManager, visitorKeys };
-};
diff --git a/node_modules/babel-eslint/lib/parse.js b/node_modules/babel-eslint/lib/parse.js
deleted file mode 100644
index d0fe8e5..0000000
--- a/node_modules/babel-eslint/lib/parse.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-
-var babylonToEspree = require("./babylon-to-espree");
-var parse = require("@babel/parser").parse;
-var tt = require("@babel/parser").tokTypes;
-var traverse = require("@babel/traverse").default;
-var codeFrameColumns = require("@babel/code-frame").codeFrameColumns;
-
-module.exports = function(code, options) {
-  const legacyDecorators =
-    options.ecmaFeatures && options.ecmaFeatures.legacyDecorators;
-
-  var opts = {
-    codeFrame: options.hasOwnProperty("codeFrame") ? options.codeFrame : true,
-    sourceType: options.sourceType,
-    allowImportExportEverywhere: options.allowImportExportEverywhere, // consistent with espree
-    allowReturnOutsideFunction: true,
-    allowSuperOutsideMethod: true,
-    ranges: true,
-    tokens: true,
-    plugins: [
-      ["flow", { all: true, enums: true }],
-      "jsx",
-      "estree",
-      "asyncFunctions",
-      "asyncGenerators",
-      "classConstructorCall",
-      "classProperties",
-      legacyDecorators
-        ? "decorators-legacy"
-        : ["decorators", { decoratorsBeforeExport: false }],
-      "doExpressions",
-      "exponentiationOperator",
-      "exportDefaultFrom",
-      "exportNamespaceFrom",
-      "functionBind",
-      "functionSent",
-      "objectRestSpread",
-      "trailingFunctionCommas",
-      "dynamicImport",
-      "numericSeparator",
-      "optionalChaining",
-      "importMeta",
-      "classPrivateProperties",
-      "bigInt",
-      "optionalCatchBinding",
-      "throwExpressions",
-      ["pipelineOperator", { proposal: "minimal" }],
-      "nullishCoalescingOperator",
-      "logicalAssignment",
-    ],
-  };
-
-  var ast;
-  try {
-    ast = parse(code, opts);
-  } catch (err) {
-    if (err instanceof SyntaxError) {
-      err.lineNumber = err.loc.line;
-      err.column = err.loc.column;
-
-      if (opts.codeFrame) {
-        err.lineNumber = err.loc.line;
-        err.column = err.loc.column + 1;
-
-        // remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start
-        err.message =
-          "Line " +
-          err.lineNumber +
-          ": " +
-          err.message.replace(/ \((\d+):(\d+)\)$/, "") +
-          // add codeframe
-          "\n\n" +
-          codeFrameColumns(
-            code,
-            {
-              start: {
-                line: err.lineNumber,
-                column: err.column,
-              },
-            },
-            { highlightCode: true }
-          );
-      }
-    }
-
-    throw err;
-  }
-
-  babylonToEspree(ast, traverse, tt, code);
-
-  return ast;
-};
diff --git a/node_modules/babel-eslint/lib/require-from-eslint.js b/node_modules/babel-eslint/lib/require-from-eslint.js
deleted file mode 100644
index 3834689..0000000
--- a/node_modules/babel-eslint/lib/require-from-eslint.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-const resolve = require("resolve");
-const eslintBase = require.resolve("eslint");
-
-module.exports = function requireFromESLint(id) {
-  const path = resolve.sync(id, { basedir: eslintBase });
-  return require(path);
-};
diff --git a/node_modules/babel-eslint/lib/visitor-keys.js b/node_modules/babel-eslint/lib/visitor-keys.js
deleted file mode 100644
index 921a0bb..0000000
--- a/node_modules/babel-eslint/lib/visitor-keys.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-const BABEL_VISITOR_KEYS = require("@babel/types").VISITOR_KEYS;
-const ESLINT_VISITOR_KEYS = require("eslint-visitor-keys").KEYS;
-
-module.exports = Object.assign(
-  {
-    Literal: ESLINT_VISITOR_KEYS.Literal,
-    MethodDefinition: ["decorators"].concat(
-      ESLINT_VISITOR_KEYS.MethodDefinition
-    ),
-    Property: ["decorators"].concat(ESLINT_VISITOR_KEYS.Property),
-  },
-  BABEL_VISITOR_KEYS
-);
diff --git a/node_modules/babel-eslint/node_modules/.bin/eslint b/node_modules/babel-eslint/node_modules/.bin/eslint
deleted file mode 120000
index fad93f5..0000000
--- a/node_modules/babel-eslint/node_modules/.bin/eslint
+++ /dev/null
@@ -1 +0,0 @@
-../../../eslint/bin/eslint.js
\ No newline at end of file
diff --git a/node_modules/babel-eslint/node_modules/.bin/parser b/node_modules/babel-eslint/node_modules/.bin/parser
deleted file mode 120000
index ea2e504..0000000
--- a/node_modules/babel-eslint/node_modules/.bin/parser
+++ /dev/null
@@ -1 +0,0 @@
-../../../@babel/parser/bin/babel-parser.js
\ No newline at end of file
diff --git a/node_modules/babel-eslint/package.json b/node_modules/babel-eslint/package.json
deleted file mode 100644
index 9abee15..0000000
--- a/node_modules/babel-eslint/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "babel-eslint",
-  "version": "10.1.0",
-  "description": "Custom parser for ESLint",
-  "main": "lib/index.js",
-  "files": [
-    "lib"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/babel/babel-eslint.git"
-  },
-  "dependencies": {
-    "@babel/code-frame": "^7.0.0",
-    "@babel/parser": "^7.7.0",
-    "@babel/traverse": "^7.7.0",
-    "@babel/types": "^7.7.0",
-    "eslint-visitor-keys": "^1.0.0",
-    "resolve": "^1.12.0"
-  },
-  "scripts": {
-    "test": "npm run lint && npm run test-only",
-    "test-only": "mocha && mocha --require test/fixtures/preprocess-to-patch.js",
-    "lint": "eslint lib test",
-    "fix": "eslint lib test --fix",
-    "precommit": "lint-staged",
-    "preversion": "npm test",
-    "changelog": "git log `git describe --tags --abbrev=0`..HEAD --pretty=format:' * %s (%an)' | grep -v 'Merge pull request'"
-  },
-  "author": "Sebastian McKenzie <sebmck@gmail.com>",
-  "license": "MIT",
-  "engines": {
-    "node": ">=6"
-  },
-  "bugs": {
-    "url": "https://github.com/babel/babel-eslint/issues"
-  },
-  "homepage": "https://github.com/babel/babel-eslint",
-  "peerDependencies": {
-    "eslint": ">= 4.12.1"
-  },
-  "devDependencies": {
-    "babel-eslint": "^8.2.6",
-    "dedent": "^0.7.0",
-    "eslint": "^5.6.0",
-    "eslint-config-babel": "^7.0.1",
-    "eslint-plugin-flowtype": "^2.30.3",
-    "eslint-plugin-import": "^2.14.0",
-    "eslint-plugin-prettier": "^2.1.2",
-    "espree": "^3.5.2",
-    "husky": "^1.0.0-rc.13",
-    "lint-staged": "^7.2.2",
-    "mocha": "^5.0.1",
-    "prettier": "^1.4.4"
-  },
-  "lint-staged": {
-    "*.js": [
-      "eslint --format=codeframe --fix",
-      "git add"
-    ]
-  }
-}
diff --git a/node_modules/babel-plugin-jest-hoist/node_modules/@babel/template/node_modules/.bin/parser b/node_modules/babel-plugin-jest-hoist/node_modules/@babel/template/node_modules/.bin/parser
index 97a06c3..ef1b372 120000
--- a/node_modules/babel-plugin-jest-hoist/node_modules/@babel/template/node_modules/.bin/parser
+++ b/node_modules/babel-plugin-jest-hoist/node_modules/@babel/template/node_modules/.bin/parser
@@ -1 +1 @@
-../../../parser/bin/babel-parser.js
\ No newline at end of file
+../../../../../../jest-circus/node_modules/@babel/template/node_modules/@babel/parser/bin/babel-parser.js
\ No newline at end of file
diff --git a/node_modules/chardet/.travis.yml b/node_modules/chardet/.travis.yml
deleted file mode 100644
index ceafed9..0000000
--- a/node_modules/chardet/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - "6"
-  - "8"
-  - "10"
diff --git a/node_modules/chardet/LICENSE b/node_modules/chardet/LICENSE
deleted file mode 100644
index fcdc879..0000000
--- a/node_modules/chardet/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2018 Dmitry Shirokov
-
-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.
diff --git a/node_modules/chardet/README.md b/node_modules/chardet/README.md
deleted file mode 100644
index 9e317d7..0000000
--- a/node_modules/chardet/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-
-chardet [![Build Status](https://travis-ci.org/runk/node-chardet.png)](https://travis-ci.org/runk/node-chardet)
-=====
-
-Chardet is a character detection module for NodeJS written in pure Javascript.
-Module is based on ICU project http://site.icu-project.org/, which uses character
-occurency analysis to determine the most probable encoding.
-
-## Installation
-
-```
-npm i chardet
-```
-
-## Usage
-
-To return the encoding with the highest confidence:
-```javascript
-var chardet = require('chardet');
-chardet.detect(Buffer.alloc('hello there!'));
-// or
-chardet.detectFile('/path/to/file', function(err, encoding) {});
-// or
-chardet.detectFileSync('/path/to/file');
-```
-
-
-To return the full list of possible encodings:
-```javascript
-var chardet = require('chardet');
-chardet.detectAll(Buffer.alloc('hello there!'));
-// or
-chardet.detectFileAll('/path/to/file', function(err, encoding) {});
-// or
-chardet.detectFileAllSync('/path/to/file');
-
-//Returned value is an array of objects sorted by confidence value in decending order
-//e.g. [{ confidence: 90, name: 'UTF-8'}, {confidence: 20, name: 'windows-1252', lang: 'fr'}]
-```
-
-## Working with large data sets
-
-Sometimes, when data set is huge and you want to optimize performace (in tradeoff of less accuracy),
-you can sample only first N bytes of the buffer:
-
-```javascript
-chardet.detectFile('/path/to/file', { sampleSize: 32 }, function(err, encoding) {});
-```
-
-## Supported Encodings:
-
-* UTF-8
-* UTF-16 LE
-* UTF-16 BE
-* UTF-32 LE
-* UTF-32 BE
-* ISO-2022-JP
-* ISO-2022-KR
-* ISO-2022-CN
-* Shift-JIS
-* Big5
-* EUC-JP
-* EUC-KR
-* GB18030
-* ISO-8859-1
-* ISO-8859-2
-* ISO-8859-5
-* ISO-8859-6
-* ISO-8859-7
-* ISO-8859-8
-* ISO-8859-9
-* windows-1250
-* windows-1251
-* windows-1252
-* windows-1253
-* windows-1254
-* windows-1255
-* windows-1256
-* KOI8-R
-
-Currently only these encodings are supported, more will be added soon.
diff --git a/node_modules/chardet/encoding/iso2022.js b/node_modules/chardet/encoding/iso2022.js
deleted file mode 100644
index afff88a..0000000
--- a/node_modules/chardet/encoding/iso2022.js
+++ /dev/null
@@ -1,141 +0,0 @@
-var util = require('util'),
-  Match = require ('../match');
-
-
-/**
- * This is a superclass for the individual detectors for
- * each of the detectable members of the ISO 2022 family
- * of encodings.
- */
-
-function ISO_2022() {}
-
-ISO_2022.prototype.match = function(det) {
-
-  /**
-   * Matching function shared among the 2022 detectors JP, CN and KR
-   * Counts up the number of legal an unrecognized escape sequences in
-   * the sample of text, and computes a score based on the total number &
-   * the proportion that fit the encoding.
-   *
-   *
-   * @param text the byte buffer containing text to analyse
-   * @param textLen  the size of the text in the byte.
-   * @param escapeSequences the byte escape sequences to test for.
-   * @return match quality, in the range of 0-100.
-   */
-
-  var i, j;
-  var escN;
-  var hits   = 0;
-  var misses = 0;
-  var shifts = 0;
-  var quality;
-
-  // TODO: refactor me
-  var text = det.fInputBytes;
-  var textLen = det.fInputLen;
-
-  scanInput:
-    for (i = 0; i < textLen; i++) {
-      if (text[i] == 0x1b) {
-        checkEscapes:
-          for (escN = 0; escN < this.escapeSequences.length; escN++) {
-            var seq = this.escapeSequences[escN];
-
-            if ((textLen - i) < seq.length)
-              continue checkEscapes;
-
-            for (j = 1; j < seq.length; j++)
-              if (seq[j] != text[i + j])
-                continue checkEscapes;
-
-
-            hits++;
-            i += seq.length - 1;
-            continue scanInput;
-          }
-
-          misses++;
-      }
-
-      // Shift in/out
-      if (text[i] == 0x0e || text[i] == 0x0f)
-        shifts++;
-
-    }
-
-  if (hits == 0)
-    return null;
-
-  //
-  // Initial quality is based on relative proportion of recongized vs.
-  //   unrecognized escape sequences.
-  //   All good:  quality = 100;
-  //   half or less good: quality = 0;
-  //   linear inbetween.
-  quality = (100 * hits - 100 * misses) / (hits + misses);
-
-  // Back off quality if there were too few escape sequences seen.
-  //   Include shifts in this computation, so that KR does not get penalized
-  //   for having only a single Escape sequence, but many shifts.
-  if (hits + shifts < 5)
-    quality -= (5 - (hits + shifts)) * 10;
-
-  return quality <= 0 ? null : new Match(det, this, quality);
-};
-
-module.exports.ISO_2022_JP = function() {
-  this.name = function() {
-    return 'ISO-2022-JP';
-  };
-  this.escapeSequences = [
-    [ 0x1b, 0x24, 0x28, 0x43 ],   // KS X 1001:1992
-    [ 0x1b, 0x24, 0x28, 0x44 ],   // JIS X 212-1990
-    [ 0x1b, 0x24, 0x40 ],         // JIS C 6226-1978
-    [ 0x1b, 0x24, 0x41 ],         // GB 2312-80
-    [ 0x1b, 0x24, 0x42 ],         // JIS X 208-1983
-    [ 0x1b, 0x26, 0x40 ],         // JIS X 208 1990, 1997
-    [ 0x1b, 0x28, 0x42 ],         // ASCII
-    [ 0x1b, 0x28, 0x48 ],         // JIS-Roman
-    [ 0x1b, 0x28, 0x49 ],         // Half-width katakana
-    [ 0x1b, 0x28, 0x4a ],         // JIS-Roman
-    [ 0x1b, 0x2e, 0x41 ],         // ISO 8859-1
-    [ 0x1b, 0x2e, 0x46 ]          // ISO 8859-7
-  ];
-};
-util.inherits(module.exports.ISO_2022_JP, ISO_2022);
-
-
-
-module.exports.ISO_2022_KR = function() {
-  this.name = function() {
-    return 'ISO-2022-KR';
-  };
-  this.escapeSequences = [
-    [ 0x1b, 0x24, 0x29, 0x43 ]
-  ];
-};
-util.inherits(module.exports.ISO_2022_KR, ISO_2022);
-
-
-
-module.exports.ISO_2022_CN = function() {
-  this.name = function() {
-    return 'ISO-2022-CN';
-  };
-  this.escapeSequences = [
-    [ 0x1b, 0x24, 0x29, 0x41 ],   // GB 2312-80
-    [ 0x1b, 0x24, 0x29, 0x47 ],   // CNS 11643-1992 Plane 1
-    [ 0x1b, 0x24, 0x2A, 0x48 ],   // CNS 11643-1992 Plane 2
-    [ 0x1b, 0x24, 0x29, 0x45 ],   // ISO-IR-165
-    [ 0x1b, 0x24, 0x2B, 0x49 ],   // CNS 11643-1992 Plane 3
-    [ 0x1b, 0x24, 0x2B, 0x4A ],   // CNS 11643-1992 Plane 4
-    [ 0x1b, 0x24, 0x2B, 0x4B ],   // CNS 11643-1992 Plane 5
-    [ 0x1b, 0x24, 0x2B, 0x4C ],   // CNS 11643-1992 Plane 6
-    [ 0x1b, 0x24, 0x2B, 0x4D ],   // CNS 11643-1992 Plane 7
-    [ 0x1b, 0x4e ],               // SS2
-    [ 0x1b, 0x4f ]                // SS3
-  ];
-};
-util.inherits(module.exports.ISO_2022_CN, ISO_2022);
diff --git a/node_modules/chardet/encoding/mbcs.js b/node_modules/chardet/encoding/mbcs.js
deleted file mode 100644
index 5aa1557..0000000
--- a/node_modules/chardet/encoding/mbcs.js
+++ /dev/null
@@ -1,502 +0,0 @@
-var util = require('util'),
-  Match = require ('../match');
-
-/**
- * Binary search implementation (recursive)
- */
-function binarySearch(arr, searchValue) {
-  function find(arr, searchValue, left, right) {
-    if (right < left)
-      return -1;
-
-    /*
-    int mid = mid = (left + right) / 2;
-    There is a bug in the above line;
-    Joshua Bloch suggests the following replacement:
-    */
-    var mid = Math.floor((left + right) >>> 1);
-    if (searchValue > arr[mid])
-      return find(arr, searchValue, mid + 1, right);
-
-    if (searchValue < arr[mid])
-      return find(arr, searchValue, left, mid - 1);
-
-    return mid;
-  };
-
-  return find(arr, searchValue, 0, arr.length - 1);
-};
-
-// 'Character'  iterated character class.
-//    Recognizers for specific mbcs encodings make their 'characters' available
-//    by providing a nextChar() function that fills in an instance of iteratedChar
-//    with the next char from the input.
-//    The returned characters are not converted to Unicode, but remain as the raw
-//    bytes (concatenated into an int) from the codepage data.
-//
-//  For Asian charsets, use the raw input rather than the input that has been
-//   stripped of markup.  Detection only considers multi-byte chars, effectively
-//   stripping markup anyway, and double byte chars do occur in markup too.
-//
-function IteratedChar() {
-
-  this.charValue = 0; // 1-4 bytes from the raw input data
-  this.index     = 0;
-  this.nextIndex = 0;
-  this.error     = false;
-  this.done      = false;
-
-  this.reset = function() {
-    this.charValue = 0;
-    this.index     = -1;
-    this.nextIndex = 0;
-    this.error     = false;
-    this.done      = false;
-  };
-
-  this.nextByte = function(det) {
-    if (this.nextIndex >= det.fRawLength) {
-      this.done = true;
-      return -1;
-    }
-    var byteValue = det.fRawInput[this.nextIndex++] & 0x00ff;
-    return byteValue;
-  };
-};
-
-
-
-/**
- * Asian double or multi-byte - charsets.
- * Match is determined mostly by the input data adhering to the
- * encoding scheme for the charset, and, optionally,
- * frequency-of-occurence of characters.
- */
-
-function mbcs() {};
-
-/**
- * Test the match of this charset with the input text data
- *      which is obtained via the CharsetDetector object.
- *
- * @param det  The CharsetDetector, which contains the input text
- *             to be checked for being in this charset.
- * @return     Two values packed into one int  (Damn java, anyhow)
- *             bits 0-7:  the match confidence, ranging from 0-100
- *             bits 8-15: The match reason, an enum-like value.
- */
-mbcs.prototype.match = function(det) {
-
-  var singleByteCharCount = 0,  //TODO Do we really need this?
-    doubleByteCharCount = 0,
-    commonCharCount     = 0,
-    badCharCount        = 0,
-    totalCharCount      = 0,
-    confidence          = 0;
-
-  var iter = new IteratedChar();
-
-  detectBlock: {
-    for (iter.reset(); this.nextChar(iter, det);) {
-      totalCharCount++;
-      if (iter.error) {
-        badCharCount++;
-      } else {
-        var cv = iter.charValue & 0xFFFFFFFF;
-
-        if (cv <= 0xff) {
-          singleByteCharCount++;
-        } else {
-          doubleByteCharCount++;
-          if (this.commonChars != null) {
-            // NOTE: This assumes that there are no 4-byte common chars.
-            if (binarySearch(this.commonChars, cv) >= 0) {
-              commonCharCount++;
-            }
-          }
-        }
-      }
-      if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) {
-        // console.log('its here!')
-        // Bail out early if the byte data is not matching the encoding scheme.
-        break detectBlock;
-      }
-    }
-
-    if (doubleByteCharCount <= 10 && badCharCount== 0) {
-      // Not many multi-byte chars.
-      if (doubleByteCharCount == 0 && totalCharCount < 10) {
-        // There weren't any multibyte sequences, and there was a low density of non-ASCII single bytes.
-        // We don't have enough data to have any confidence.
-        // Statistical analysis of single byte non-ASCII charcters would probably help here.
-        confidence = 0;
-      }
-      else {
-        //   ASCII or ISO file?  It's probably not our encoding,
-        //   but is not incompatible with our encoding, so don't give it a zero.
-        confidence = 10;
-      }
-      break detectBlock;
-    }
-
-    //
-    //  No match if there are too many characters that don't fit the encoding scheme.
-    //    (should we have zero tolerance for these?)
-    //
-    if (doubleByteCharCount < 20 * badCharCount) {
-      confidence = 0;
-      break detectBlock;
-    }
-
-    if (this.commonChars == null) {
-      // We have no statistics on frequently occuring characters.
-      //  Assess confidence purely on having a reasonable number of
-      //  multi-byte characters (the more the better
-      confidence = 30 + doubleByteCharCount - 20 * badCharCount;
-      if (confidence > 100) {
-        confidence = 100;
-      }
-    } else {
-      //
-      // Frequency of occurence statistics exist.
-      //
-      var maxVal = Math.log(parseFloat(doubleByteCharCount) / 4);
-      var scaleFactor = 90.0 / maxVal;
-      confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10);
-      confidence = Math.min(confidence, 100);
-    }
-  }   // end of detectBlock:
-
-  return confidence == 0 ? null : new Match(det, this, confidence);
-};
-
-/**
- * Get the next character (however many bytes it is) from the input data
- *    Subclasses for specific charset encodings must implement this function
- *    to get characters according to the rules of their encoding scheme.
- *
- *  This function is not a method of class iteratedChar only because
- *   that would require a lot of extra derived classes, which is awkward.
- * @param it  The iteratedChar 'struct' into which the returned char is placed.
- * @param det The charset detector, which is needed to get at the input byte data
- *            being iterated over.
- * @return    True if a character was returned, false at end of input.
- */
-
-mbcs.prototype.nextChar = function(iter, det) {};
-
-
-
-/**
- * Shift-JIS charset recognizer.
- */
-module.exports.sjis = function() {
-  this.name = function() {
-    return 'Shift-JIS';
-  };
-  this.language = function() {
-    return 'ja';
-  };
-
-  // TODO:  This set of data comes from the character frequency-
-  //        of-occurence analysis tool.  The data needs to be moved
-  //        into a resource and loaded from there.
-  this.commonChars = [
-    0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176, 0x82a0,
-    0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1, 0x82b3, 0x82b5,
-    0x82b7, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c5, 0x82c6, 0x82c8, 0x82c9, 0x82cc,
-    0x82cd, 0x82dc, 0x82e0, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82f0, 0x82f1, 0x8341,
-    0x8343, 0x834e, 0x834f, 0x8358, 0x835e, 0x8362, 0x8367, 0x8375, 0x8376, 0x8389,
-    0x838a, 0x838b, 0x838d, 0x8393, 0x8e96, 0x93fa, 0x95aa
-  ];
-
-  this.nextChar = function(iter, det) {
-    iter.index = iter.nextIndex;
-    iter.error = false;
-
-    var firstByte;
-    firstByte = iter.charValue = iter.nextByte(det);
-    if (firstByte < 0)
-      return false;
-
-    if (firstByte <= 0x7f || (firstByte > 0xa0 && firstByte <= 0xdf))
-      return true;
-
-    var secondByte = iter.nextByte(det);
-    if (secondByte < 0)
-      return false;
-
-    iter.charValue = (firstByte << 8) | secondByte;
-    if (! ((secondByte >= 0x40 && secondByte <= 0x7f) || (secondByte >= 0x80 && secondByte <= 0xff))) {
-      // Illegal second byte value.
-      iter.error = true;
-    }
-    return true;
-  };
-};
-util.inherits(module.exports.sjis, mbcs);
-
-
-
-/**
- *   Big5 charset recognizer.
- */
-module.exports.big5 = function() {
-  this.name = function() {
-    return 'Big5';
-  };
-  this.language = function() {
-    return 'zh';
-  };
-  // TODO:  This set of data comes from the character frequency-
-  //        of-occurence analysis tool.  The data needs to be moved
-  //        into a resource and loaded from there.
-  this.commonChars = [
-    0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440, 0xa446,
-    0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c, 0xa477, 0xa4a3,
-    0xa4a4, 0xa4a7, 0xa4c1, 0xa4ce, 0xa4d1, 0xa4df, 0xa4e8, 0xa4fd, 0xa540, 0xa548,
-    0xa558, 0xa569, 0xa5cd, 0xa5e7, 0xa657, 0xa661, 0xa662, 0xa668, 0xa670, 0xa6a8,
-    0xa6b3, 0xa6b9, 0xa6d3, 0xa6db, 0xa6e6, 0xa6f2, 0xa740, 0xa751, 0xa759, 0xa7da,
-    0xa8a3, 0xa8a5, 0xa8ad, 0xa8d1, 0xa8d3, 0xa8e4, 0xa8fc, 0xa9c0, 0xa9d2, 0xa9f3,
-    0xaa6b, 0xaaba, 0xaabe, 0xaacc, 0xaafc, 0xac47, 0xac4f, 0xacb0, 0xacd2, 0xad59,
-    0xaec9, 0xafe0, 0xb0ea, 0xb16f, 0xb2b3, 0xb2c4, 0xb36f, 0xb44c, 0xb44e, 0xb54c,
-    0xb5a5, 0xb5bd, 0xb5d0, 0xb5d8, 0xb671, 0xb7ed, 0xb867, 0xb944, 0xbad8, 0xbb44,
-    0xbba1, 0xbdd1, 0xc2c4, 0xc3b9, 0xc440, 0xc45f
-  ];
-  this.nextChar = function(iter, det) {
-    iter.index = iter.nextIndex;
-    iter.error = false;
-
-    var firstByte = iter.charValue = iter.nextByte(det);
-
-    if (firstByte < 0)
-      return false;
-
-    // single byte character.
-    if (firstByte <= 0x7f || firstByte == 0xff)
-      return true;
-
-    var secondByte = iter.nextByte(det);
-
-    if (secondByte < 0)
-      return false;
-
-    iter.charValue = (iter.charValue << 8) | secondByte;
-
-    if (secondByte < 0x40 || secondByte == 0x7f || secondByte == 0xff)
-      iter.error = true;
-
-    return true;
-  };
-};
-util.inherits(module.exports.big5, mbcs);
-
-
-
-/**
- *  EUC charset recognizers.  One abstract class that provides the common function
- *  for getting the next character according to the EUC encoding scheme,
- *  and nested derived classes for EUC_KR, EUC_JP, EUC_CN.
- *
- *  Get the next character value for EUC based encodings.
- *  Character 'value' is simply the raw bytes that make up the character
- *     packed into an int.
- */
-function eucNextChar(iter, det) {
-  iter.index = iter.nextIndex;
-  iter.error = false;
-  var firstByte  = 0;
-  var secondByte = 0;
-  var thirdByte  = 0;
-  //int fourthByte = 0;
-  buildChar: {
-    firstByte = iter.charValue = iter.nextByte(det);
-    if (firstByte < 0) {
-      // Ran off the end of the input data
-      iter.done = true;
-      break buildChar;
-    }
-    if (firstByte <= 0x8d) {
-      // single byte char
-      break buildChar;
-    }
-    secondByte = iter.nextByte(det);
-    iter.charValue = (iter.charValue << 8) | secondByte;
-    if (firstByte >= 0xA1 && firstByte <= 0xfe) {
-      // Two byte Char
-      if (secondByte < 0xa1) {
-        iter.error = true;
-      }
-      break buildChar;
-    }
-    if (firstByte == 0x8e) {
-      // Code Set 2.
-      //   In EUC-JP, total char size is 2 bytes, only one byte of actual char value.
-      //   In EUC-TW, total char size is 4 bytes, three bytes contribute to char value.
-      // We don't know which we've got.
-      // Treat it like EUC-JP.  If the data really was EUC-TW, the following two
-      //   bytes will look like a well formed 2 byte char.
-      if (secondByte < 0xa1) {
-        iter.error = true;
-      }
-      break buildChar;
-    }
-    if (firstByte == 0x8f) {
-      // Code set 3.
-      // Three byte total char size, two bytes of actual char value.
-      thirdByte = iter.nextByte(det);
-      iter.charValue = (iter.charValue << 8) | thirdByte;
-      if (thirdByte < 0xa1) {
-        iter.error = true;
-      }
-    }
-  }
-  return iter.done == false;
-};
-
-
-
-/**
- * The charset recognize for EUC-JP.  A singleton instance of this class
- *    is created and kept by the public CharsetDetector class
- */
-module.exports.euc_jp = function() {
-  this.name = function() {
-    return 'EUC-JP';
-  };
-  this.language = function() {
-    return 'ja';
-  };
-
-  // TODO:  This set of data comes from the character frequency-
-  //        of-occurence analysis tool.  The data needs to be moved
-  //        into a resource and loaded from there.
-  this.commonChars = [
-    0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7, 0xa4a2,
-    0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af, 0xa4b1, 0xa4b3,
-    0xa4b5, 0xa4b7, 0xa4b9, 0xa4bb, 0xa4bd, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c3, 0xa4c4,
-    0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4de,
-    0xa4df, 0xa4e1, 0xa4e2, 0xa4e4, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ef,
-    0xa4f2, 0xa4f3, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a6, 0xa5a7, 0xa5aa, 0xa5ad, 0xa5af,
-    0xa5b0, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5bf, 0xa5c3, 0xa5c6, 0xa5c7,
-    0xa5c8, 0xa5c9, 0xa5cb, 0xa5d0, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5de, 0xa5e0, 0xa5e1,
-    0xa5e5, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5f3, 0xb8a9, 0xb9d4, 0xbaee,
-    0xbbc8, 0xbef0, 0xbfb7, 0xc4ea, 0xc6fc, 0xc7bd, 0xcab8, 0xcaf3, 0xcbdc, 0xcdd1
-  ];
-
-  this.nextChar = eucNextChar;
-};
-util.inherits(module.exports.euc_jp, mbcs);
-
-
-
-/**
- * The charset recognize for EUC-KR.  A singleton instance of this class
- *    is created and kept by the public CharsetDetector class
- */
-module.exports.euc_kr = function() {
-  this.name = function() {
-    return 'EUC-KR';
-  };
-  this.language = function() {
-    return 'ko';
-  };
-
-  // TODO:  This set of data comes from the character frequency-
-  //        of-occurence analysis tool.  The data needs to be moved
-  //        into a resource and loaded from there.
-  this.commonChars = [
-    0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa, 0xb0fc,
-    0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2, 0xb4cf, 0xb4d9,
-    0xb4eb, 0xb5a5, 0xb5b5, 0xb5bf, 0xb5c7, 0xb5e9, 0xb6f3, 0xb7af, 0xb7c2, 0xb7ce,
-    0xb8a6, 0xb8ae, 0xb8b6, 0xb8b8, 0xb8bb, 0xb8e9, 0xb9ab, 0xb9ae, 0xb9cc, 0xb9ce,
-    0xb9fd, 0xbab8, 0xbace, 0xbad0, 0xbaf1, 0xbbe7, 0xbbf3, 0xbbfd, 0xbcad, 0xbcba,
-    0xbcd2, 0xbcf6, 0xbdba, 0xbdc0, 0xbdc3, 0xbdc5, 0xbec6, 0xbec8, 0xbedf, 0xbeee,
-    0xbef8, 0xbefa, 0xbfa1, 0xbfa9, 0xbfc0, 0xbfe4, 0xbfeb, 0xbfec, 0xbff8, 0xc0a7,
-    0xc0af, 0xc0b8, 0xc0ba, 0xc0bb, 0xc0bd, 0xc0c7, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d6,
-    0xc0da, 0xc0e5, 0xc0fb, 0xc0fc, 0xc1a4, 0xc1a6, 0xc1b6, 0xc1d6, 0xc1df, 0xc1f6,
-    0xc1f8, 0xc4a1, 0xc5cd, 0xc6ae, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d8, 0xc7e5, 0xc8ad
-  ];
-
-  this.nextChar = eucNextChar;
-};
-util.inherits(module.exports.euc_kr, mbcs);
-
-
-
-/**
- *   GB-18030 recognizer. Uses simplified Chinese statistics.
- */
-module.exports.gb_18030 = function() {
-  this.name = function() {
-    return 'GB18030';
-  };
-  this.language = function() {
-    return 'zh';
-  };
-
-  /*
-   *  Get the next character value for EUC based encodings.
-   *  Character 'value' is simply the raw bytes that make up the character
-   *     packed into an int.
-   */
-  this.nextChar = function(iter, det) {
-    iter.index = iter.nextIndex;
-    iter.error = false;
-    var firstByte  = 0;
-    var secondByte = 0;
-    var thirdByte  = 0;
-    var fourthByte = 0;
-    buildChar: {
-      firstByte = iter.charValue = iter.nextByte(det);
-      if (firstByte < 0) {
-        // Ran off the end of the input data
-        iter.done = true;
-        break buildChar;
-      }
-      if (firstByte <= 0x80) {
-        // single byte char
-        break buildChar;
-      }
-      secondByte = iter.nextByte(det);
-      iter.charValue = (iter.charValue << 8) | secondByte;
-      if (firstByte >= 0x81 && firstByte <= 0xFE) {
-        // Two byte Char
-        if ((secondByte >= 0x40 && secondByte <= 0x7E) || (secondByte >=80 && secondByte <= 0xFE)) {
-          break buildChar;
-        }
-        // Four byte char
-        if (secondByte >= 0x30 && secondByte <= 0x39) {
-          thirdByte = iter.nextByte(det);
-          if (thirdByte >= 0x81 && thirdByte <= 0xFE) {
-            fourthByte = iter.nextByte(det);
-            if (fourthByte >= 0x30 && fourthByte <= 0x39) {
-              iter.charValue = (iter.charValue << 16) | (thirdByte << 8) | fourthByte;
-              break buildChar;
-            }
-          }
-        }
-        iter.error = true;
-        break buildChar;
-      }
-    }
-    return iter.done == false;
-  };
-
-  // TODO:  This set of data comes from the character frequency-
-  //        of-occurence analysis tool.  The data needs to be moved
-  //        into a resource and loaded from there.
-  this.commonChars = [
-    0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1, 0xa3ac,
-    0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3, 0xb5bd, 0xb5c4,
-    0xb5e3, 0xb6af, 0xb6d4, 0xb6e0, 0xb7a2, 0xb7a8, 0xb7bd, 0xb7d6, 0xb7dd, 0xb8b4,
-    0xb8df, 0xb8f6, 0xb9ab, 0xb9c9, 0xb9d8, 0xb9fa, 0xb9fd, 0xbacd, 0xbba7, 0xbbd6,
-    0xbbe1, 0xbbfa, 0xbcbc, 0xbcdb, 0xbcfe, 0xbdcc, 0xbecd, 0xbedd, 0xbfb4, 0xbfc6,
-    0xbfc9, 0xc0b4, 0xc0ed, 0xc1cb, 0xc2db, 0xc3c7, 0xc4dc, 0xc4ea, 0xc5cc, 0xc6f7,
-    0xc7f8, 0xc8ab, 0xc8cb, 0xc8d5, 0xc8e7, 0xc9cf, 0xc9fa, 0xcab1, 0xcab5, 0xcac7,
-    0xcad0, 0xcad6, 0xcaf5, 0xcafd, 0xccec, 0xcdf8, 0xceaa, 0xcec4, 0xced2, 0xcee5,
-    0xcfb5, 0xcfc2, 0xcfd6, 0xd0c2, 0xd0c5, 0xd0d0, 0xd0d4, 0xd1a7, 0xd2aa, 0xd2b2,
-    0xd2b5, 0xd2bb, 0xd2d4, 0xd3c3, 0xd3d0, 0xd3fd, 0xd4c2, 0xd4da, 0xd5e2, 0xd6d0
-  ];
-};
-util.inherits(module.exports.gb_18030, mbcs);
diff --git a/node_modules/chardet/encoding/sbcs.js b/node_modules/chardet/encoding/sbcs.js
deleted file mode 100644
index 80d525e..0000000
--- a/node_modules/chardet/encoding/sbcs.js
+++ /dev/null
@@ -1,907 +0,0 @@
-var util = require('util'),
-  Match = require ('../match');
-
-/**
- * This class recognizes single-byte encodings. Because the encoding scheme is so
- * simple, language statistics are used to do the matching.
- */
-
-function NGramParser(theNgramList, theByteMap) {
-  var N_GRAM_MASK = 0xFFFFFF;
-
-  this.byteIndex = 0;
-  this.ngram = 0;
-
-  this.ngramList = theNgramList;
-  this.byteMap = theByteMap;
-
-  this.ngramCount = 0;
-  this.hitCount = 0;
-
-  this.spaceChar;
-
-  /*
-   * Binary search for value in table, which must have exactly 64 entries.
-   */
-  this.search = function(table, value) {
-    var index = 0;
-
-    if (table[index + 32] <= value) index += 32;
-    if (table[index + 16] <= value) index += 16;
-    if (table[index + 8]  <= value) index += 8;
-    if (table[index + 4]  <= value) index += 4;
-    if (table[index + 2]  <= value) index += 2;
-    if (table[index + 1]  <= value) index += 1;
-    if (table[index]      > value)  index -= 1;
-
-    if (index < 0 || table[index] != value)
-      return -1;
-
-    return index;
-  };
-
-  this.lookup = function(thisNgram) {
-    this.ngramCount += 1;
-    if (this.search(this.ngramList, thisNgram) >= 0) {
-      this.hitCount += 1;
-    }
-  };
-
-  this.addByte = function(b) {
-    this.ngram = ((this.ngram << 8) + (b & 0xFF)) & N_GRAM_MASK;
-    this.lookup(this.ngram);
-  }
-
-  this.nextByte = function(det) {
-    if (this.byteIndex >= det.fInputLen)
-      return -1;
-
-    return det.fInputBytes[this.byteIndex++] & 0xFF;
-  }
-
-  this.parse = function(det, spaceCh) {
-    var b, ignoreSpace = false;
-    this.spaceChar = spaceCh;
-
-    while ((b = this.nextByte(det)) >= 0) {
-      var mb = this.byteMap[b];
-
-      // TODO: 0x20 might not be a space in all character sets...
-      if (mb != 0) {
-        if (!(mb == this.spaceChar && ignoreSpace)) {
-          this.addByte(mb);
-        }
-
-        ignoreSpace = (mb == this.spaceChar);
-      }
-    }
-
-    // TODO: Is this OK? The buffer could have ended in the middle of a word...
-    this.addByte(this.spaceChar);
-
-    var rawPercent = this.hitCount / this.ngramCount;
-
-    // TODO - This is a bit of a hack to take care of a case
-    // were we were getting a confidence of 135...
-    if (rawPercent > 0.33)
-      return 98;
-
-    return Math.floor(rawPercent * 300.0);
-  };
-};
-
-function NGramsPlusLang(la, ng) {
-  this.fLang = la;
-  this.fNGrams = ng;
-};
-
-function sbcs() {};
-sbcs.prototype.spaceChar = 0x20;
-sbcs.prototype.ngrams = function() {};
-sbcs.prototype.byteMap = function() {};
-sbcs.prototype.match = function(det) {
-
-  var ngrams = this.ngrams();
-  var multiple = (Array.isArray(ngrams) && ngrams[0] instanceof NGramsPlusLang);
-
-  if (!multiple) {
-    var parser = new NGramParser(ngrams, this.byteMap());
-    var confidence = parser.parse(det, this.spaceChar);
-    return confidence <= 0 ? null : new Match(det, this, confidence);
-  }
-
-  var bestConfidenceSoFar = -1;
-  var lang = null;
-
-  for (var i = ngrams.length - 1; i >= 0; i--) {
-    var ngl = ngrams[i];
-
-    var parser = new NGramParser(ngl.fNGrams, this.byteMap());
-    var confidence = parser.parse(det, this.spaceChar);
-    if (confidence > bestConfidenceSoFar) {
-      bestConfidenceSoFar = confidence;
-      lang = ngl.fLang;
-    }
-  }
-
-  var name = this.name(det);
-  return bestConfidenceSoFar <= 0 ? null : new Match(det, this, bestConfidenceSoFar, name, lang);
-};
-
-
-module.exports.ISO_8859_1 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
-      0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      new NGramsPlusLang('da', [
-        0x206166, 0x206174, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920,
-        0x206D65, 0x206F67, 0x2070E5, 0x207369, 0x207374, 0x207469, 0x207669, 0x616620,
-        0x616E20, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646572, 0x646574,
-        0x652073, 0x656420, 0x656465, 0x656E20, 0x656E64, 0x657220, 0x657265, 0x657320,
-        0x657420, 0x666F72, 0x676520, 0x67656E, 0x676572, 0x696765, 0x696C20, 0x696E67,
-        0x6B6520, 0x6B6B65, 0x6C6572, 0x6C6967, 0x6C6C65, 0x6D6564, 0x6E6465, 0x6E6520,
-        0x6E6720, 0x6E6765, 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722064, 0x722065,
-        0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696C, 0x766572
-      ]),
-      new NGramsPlusLang('de', [
-        0x20616E, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, 0x206765,
-        0x206861, 0x20696E, 0x206D69, 0x207363, 0x207365, 0x20756E, 0x207665, 0x20766F,
-        0x207765, 0x207A75, 0x626572, 0x636820, 0x636865, 0x636874, 0x646173, 0x64656E,
-        0x646572, 0x646965, 0x652064, 0x652073, 0x65696E, 0x656974, 0x656E20, 0x657220,
-        0x657320, 0x67656E, 0x68656E, 0x687420, 0x696368, 0x696520, 0x696E20, 0x696E65,
-        0x697420, 0x6C6963, 0x6C6C65, 0x6E2061, 0x6E2064, 0x6E2073, 0x6E6420, 0x6E6465,
-        0x6E6520, 0x6E6720, 0x6E6765, 0x6E7465, 0x722064, 0x726465, 0x726569, 0x736368,
-        0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x756E64, 0x756E67, 0x766572
-      ]),
-      new NGramsPlusLang('en', [
-        0x206120, 0x20616E, 0x206265, 0x20636F, 0x20666F, 0x206861, 0x206865, 0x20696E,
-        0x206D61, 0x206F66, 0x207072, 0x207265, 0x207361, 0x207374, 0x207468, 0x20746F,
-        0x207768, 0x616964, 0x616C20, 0x616E20, 0x616E64, 0x617320, 0x617420, 0x617465,
-        0x617469, 0x642061, 0x642074, 0x652061, 0x652073, 0x652074, 0x656420, 0x656E74,
-        0x657220, 0x657320, 0x666F72, 0x686174, 0x686520, 0x686572, 0x696420, 0x696E20,
-        0x696E67, 0x696F6E, 0x697320, 0x6E2061, 0x6E2074, 0x6E6420, 0x6E6720, 0x6E7420,
-        0x6F6620, 0x6F6E20, 0x6F7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169,
-        0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696F, 0x746F20, 0x747320
-      ]),
-      new NGramsPlusLang('es', [
-        0x206120, 0x206361, 0x20636F, 0x206465, 0x20656C, 0x20656E, 0x206573, 0x20696E,
-        0x206C61, 0x206C6F, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
-        0x20756E, 0x207920, 0x612063, 0x612064, 0x612065, 0x61206C, 0x612070, 0x616369,
-        0x61646F, 0x616C20, 0x617220, 0x617320, 0x6369F3, 0x636F6E, 0x646520, 0x64656C,
-        0x646F20, 0x652064, 0x652065, 0x65206C, 0x656C20, 0x656E20, 0x656E74, 0x657320,
-        0x657374, 0x69656E, 0x69F36E, 0x6C6120, 0x6C6F73, 0x6E2065, 0x6E7465, 0x6F2064,
-        0x6F2065, 0x6F6E20, 0x6F7220, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573,
-        0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746F20, 0x756520, 0xF36E20
-      ]),
-      new NGramsPlusLang('fr', [
-        0x206175, 0x20636F, 0x206461, 0x206465, 0x206475, 0x20656E, 0x206574, 0x206C61,
-        0x206C65, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207365, 0x20736F, 0x20756E,
-        0x20E020, 0x616E74, 0x617469, 0x636520, 0x636F6E, 0x646520, 0x646573, 0x647520,
-        0x652061, 0x652063, 0x652064, 0x652065, 0x65206C, 0x652070, 0x652073, 0x656E20,
-        0x656E74, 0x657220, 0x657320, 0x657420, 0x657572, 0x696F6E, 0x697320, 0x697420,
-        0x6C6120, 0x6C6520, 0x6C6573, 0x6D656E, 0x6E2064, 0x6E6520, 0x6E7320, 0x6E7420,
-        0x6F6E20, 0x6F6E74, 0x6F7572, 0x717565, 0x72206C, 0x726520, 0x732061, 0x732064,
-        0x732065, 0x73206C, 0x732070, 0x742064, 0x746520, 0x74696F, 0x756520, 0x757220
-      ]),
-      new NGramsPlusLang('it', [
-        0x20616C, 0x206368, 0x20636F, 0x206465, 0x206469, 0x206520, 0x20696C, 0x20696E,
-        0x206C61, 0x207065, 0x207072, 0x20756E, 0x612063, 0x612064, 0x612070, 0x612073,
-        0x61746F, 0x636865, 0x636F6E, 0x64656C, 0x646920, 0x652061, 0x652063, 0x652064,
-        0x652069, 0x65206C, 0x652070, 0x652073, 0x656C20, 0x656C6C, 0x656E74, 0x657220,
-        0x686520, 0x692061, 0x692063, 0x692064, 0x692073, 0x696120, 0x696C20, 0x696E20,
-        0x696F6E, 0x6C6120, 0x6C6520, 0x6C6920, 0x6C6C61, 0x6E6520, 0x6E6920, 0x6E6F20,
-        0x6E7465, 0x6F2061, 0x6F2064, 0x6F2069, 0x6F2073, 0x6F6E20, 0x6F6E65, 0x706572,
-        0x726120, 0x726520, 0x736920, 0x746120, 0x746520, 0x746920, 0x746F20, 0x7A696F
-      ]),
-      new NGramsPlusLang('nl', [
-        0x20616C, 0x206265, 0x206461, 0x206465, 0x206469, 0x206565, 0x20656E, 0x206765,
-        0x206865, 0x20696E, 0x206D61, 0x206D65, 0x206F70, 0x207465, 0x207661, 0x207665,
-        0x20766F, 0x207765, 0x207A69, 0x61616E, 0x616172, 0x616E20, 0x616E64, 0x617220,
-        0x617420, 0x636874, 0x646520, 0x64656E, 0x646572, 0x652062, 0x652076, 0x65656E,
-        0x656572, 0x656E20, 0x657220, 0x657273, 0x657420, 0x67656E, 0x686574, 0x696520,
-        0x696E20, 0x696E67, 0x697320, 0x6E2062, 0x6E2064, 0x6E2065, 0x6E2068, 0x6E206F,
-        0x6E2076, 0x6E6465, 0x6E6720, 0x6F6E64, 0x6F6F72, 0x6F7020, 0x6F7220, 0x736368,
-        0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x76616E, 0x766572, 0x766F6F
-      ]),
-      new NGramsPlusLang('no', [
-        0x206174, 0x206176, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920,
-        0x206D65, 0x206F67, 0x2070E5, 0x207365, 0x20736B, 0x20736F, 0x207374, 0x207469,
-        0x207669, 0x20E520, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646574,
-        0x652073, 0x656420, 0x656E20, 0x656E65, 0x657220, 0x657265, 0x657420, 0x657474,
-        0x666F72, 0x67656E, 0x696B6B, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6520,
-        0x6C6C65, 0x6D6564, 0x6D656E, 0x6E2073, 0x6E6520, 0x6E6720, 0x6E6765, 0x6E6E65,
-        0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722073, 0x726520, 0x736F6D, 0x737465,
-        0x742073, 0x746520, 0x74656E, 0x746572, 0x74696C, 0x747420, 0x747465, 0x766572
-      ]),
-      new NGramsPlusLang('pt', [
-        0x206120, 0x20636F, 0x206461, 0x206465, 0x20646F, 0x206520, 0x206573, 0x206D61,
-        0x206E6F, 0x206F20, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
-        0x20756D, 0x612061, 0x612063, 0x612064, 0x612070, 0x616465, 0x61646F, 0x616C20,
-        0x617220, 0x617261, 0x617320, 0x636F6D, 0x636F6E, 0x646120, 0x646520, 0x646F20,
-        0x646F73, 0x652061, 0x652064, 0x656D20, 0x656E74, 0x657320, 0x657374, 0x696120,
-        0x696361, 0x6D656E, 0x6E7465, 0x6E746F, 0x6F2061, 0x6F2063, 0x6F2064, 0x6F2065,
-        0x6F2070, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732061, 0x732064,
-        0x732065, 0x732070, 0x737461, 0x746520, 0x746F20, 0x756520, 0xE36F20, 0xE7E36F
-      ]),
-      new NGramsPlusLang('sv', [
-        0x206174, 0x206176, 0x206465, 0x20656E, 0x2066F6, 0x206861, 0x206920, 0x20696E,
-        0x206B6F, 0x206D65, 0x206F63, 0x2070E5, 0x20736B, 0x20736F, 0x207374, 0x207469,
-        0x207661, 0x207669, 0x20E472, 0x616465, 0x616E20, 0x616E64, 0x617220, 0x617474,
-        0x636820, 0x646520, 0x64656E, 0x646572, 0x646574, 0x656420, 0x656E20, 0x657220,
-        0x657420, 0x66F672, 0x67656E, 0x696C6C, 0x696E67, 0x6B6120, 0x6C6C20, 0x6D6564,
-        0x6E2073, 0x6E6120, 0x6E6465, 0x6E6720, 0x6E6765, 0x6E696E, 0x6F6368, 0x6F6D20,
-        0x6F6E20, 0x70E520, 0x722061, 0x722073, 0x726120, 0x736B61, 0x736F6D, 0x742073,
-        0x746120, 0x746520, 0x746572, 0x74696C, 0x747420, 0x766172, 0xE47220, 0xF67220,
-      ])
-    ];
-  };
-
-  this.name = function(det) {
-    return (det && det.fC1Bytes) ? 'windows-1252' : 'ISO-8859-1';
-  };
-};
-util.inherits(module.exports.ISO_8859_1, sbcs);
-
-
-module.exports.ISO_8859_2 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0x20,
-      0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
-      0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0xB7,
-      0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20
-    ];
-  }
-
-  this.ngrams = function() {
-    return [
-      new NGramsPlusLang('cs', [
-        0x206120, 0x206279, 0x20646F, 0x206A65, 0x206E61, 0x206E65, 0x206F20, 0x206F64,
-        0x20706F, 0x207072, 0x2070F8, 0x20726F, 0x207365, 0x20736F, 0x207374, 0x20746F,
-        0x207620, 0x207679, 0x207A61, 0x612070, 0x636520, 0x636820, 0x652070, 0x652073,
-        0x652076, 0x656D20, 0x656EED, 0x686F20, 0x686F64, 0x697374, 0x6A6520, 0x6B7465,
-        0x6C6520, 0x6C6920, 0x6E6120, 0x6EE920, 0x6EEC20, 0x6EED20, 0x6F2070, 0x6F646E,
-        0x6F6A69, 0x6F7374, 0x6F7520, 0x6F7661, 0x706F64, 0x706F6A, 0x70726F, 0x70F865,
-        0x736520, 0x736F75, 0x737461, 0x737469, 0x73746E, 0x746572, 0x746EED, 0x746F20,
-        0x752070, 0xBE6520, 0xE16EED, 0xE9686F, 0xED2070, 0xED2073, 0xED6D20, 0xF86564,
-      ]),
-      new NGramsPlusLang('hu', [
-        0x206120, 0x20617A, 0x206265, 0x206567, 0x20656C, 0x206665, 0x206861, 0x20686F,
-        0x206973, 0x206B65, 0x206B69, 0x206BF6, 0x206C65, 0x206D61, 0x206D65, 0x206D69,
-        0x206E65, 0x20737A, 0x207465, 0x20E973, 0x612061, 0x61206B, 0x61206D, 0x612073,
-        0x616B20, 0x616E20, 0x617A20, 0x62616E, 0x62656E, 0x656779, 0x656B20, 0x656C20,
-        0x656C65, 0x656D20, 0x656E20, 0x657265, 0x657420, 0x657465, 0x657474, 0x677920,
-        0x686F67, 0x696E74, 0x697320, 0x6B2061, 0x6BF67A, 0x6D6567, 0x6D696E, 0x6E2061,
-        0x6E616B, 0x6E656B, 0x6E656D, 0x6E7420, 0x6F6779, 0x732061, 0x737A65, 0x737A74,
-        0x737AE1, 0x73E967, 0x742061, 0x747420, 0x74E173, 0x7A6572, 0xE16E20, 0xE97320,
-      ]),
-      new NGramsPlusLang('pl', [
-        0x20637A, 0x20646F, 0x206920, 0x206A65, 0x206B6F, 0x206D61, 0x206D69, 0x206E61,
-        0x206E69, 0x206F64, 0x20706F, 0x207072, 0x207369, 0x207720, 0x207769, 0x207779,
-        0x207A20, 0x207A61, 0x612070, 0x612077, 0x616E69, 0x636820, 0x637A65, 0x637A79,
-        0x646F20, 0x647A69, 0x652070, 0x652073, 0x652077, 0x65207A, 0x65676F, 0x656A20,
-        0x656D20, 0x656E69, 0x676F20, 0x696120, 0x696520, 0x69656A, 0x6B6120, 0x6B6920,
-        0x6B6965, 0x6D6965, 0x6E6120, 0x6E6961, 0x6E6965, 0x6F2070, 0x6F7761, 0x6F7769,
-        0x706F6C, 0x707261, 0x70726F, 0x70727A, 0x727A65, 0x727A79, 0x7369EA, 0x736B69,
-        0x737461, 0x776965, 0x796368, 0x796D20, 0x7A6520, 0x7A6965, 0x7A7920, 0xF37720,
-      ]),
-      new NGramsPlusLang('ro', [
-        0x206120, 0x206163, 0x206361, 0x206365, 0x20636F, 0x206375, 0x206465, 0x206469,
-        0x206C61, 0x206D61, 0x207065, 0x207072, 0x207365, 0x2073E3, 0x20756E, 0x20BA69,
-        0x20EE6E, 0x612063, 0x612064, 0x617265, 0x617420, 0x617465, 0x617520, 0x636172,
-        0x636F6E, 0x637520, 0x63E320, 0x646520, 0x652061, 0x652063, 0x652064, 0x652070,
-        0x652073, 0x656120, 0x656920, 0x656C65, 0x656E74, 0x657374, 0x692061, 0x692063,
-        0x692064, 0x692070, 0x696520, 0x696920, 0x696E20, 0x6C6120, 0x6C6520, 0x6C6F72,
-        0x6C7569, 0x6E6520, 0x6E7472, 0x6F7220, 0x70656E, 0x726520, 0x726561, 0x727520,
-        0x73E320, 0x746520, 0x747275, 0x74E320, 0x756920, 0x756C20, 0xBA6920, 0xEE6E20,
-      ])
-    ];
-  };
-
-  this.name = function(det) {
-    return (det && det.fC1Bytes) ? 'windows-1250' : 'ISO-8859-2';
-  };
-};
-util.inherits(module.exports.ISO_8859_2, sbcs);
-
-
-module.exports.ISO_8859_5 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
-      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
-      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20D220, 0x20D2DE, 0x20D4DE, 0x20D7D0, 0x20D820, 0x20DAD0, 0x20DADE, 0x20DDD0,
-      0x20DDD5, 0x20DED1, 0x20DFDE, 0x20DFE0, 0x20E0D0, 0x20E1DE, 0x20E1E2, 0x20E2DE,
-      0x20E7E2, 0x20EDE2, 0xD0DDD8, 0xD0E2EC, 0xD3DE20, 0xD5DBEC, 0xD5DDD8, 0xD5E1E2,
-      0xD5E220, 0xD820DF, 0xD8D520, 0xD8D820, 0xD8EF20, 0xDBD5DD, 0xDBD820, 0xDBECDD,
-      0xDDD020, 0xDDD520, 0xDDD8D5, 0xDDD8EF, 0xDDDE20, 0xDDDED2, 0xDE20D2, 0xDE20DF,
-      0xDE20E1, 0xDED220, 0xDED2D0, 0xDED3DE, 0xDED920, 0xDEDBEC, 0xDEDC20, 0xDEE1E2,
-      0xDFDEDB, 0xDFE0D5, 0xDFE0D8, 0xDFE0DE, 0xE0D0D2, 0xE0D5D4, 0xE1E2D0, 0xE1E2D2,
-      0xE1E2D8, 0xE1EF20, 0xE2D5DB, 0xE2DE20, 0xE2DEE0, 0xE2EC20, 0xE7E2DE, 0xEBE520
-    ];
-  };
-
-  this.name = function(det) {
-    return 'ISO-8859-5';
-  };
-
-  this.language = function() {
-    return 'ru';
-  };
-};
-util.inherits(module.exports.ISO_8859_5, sbcs);
-
-
-module.exports.ISO_8859_6 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
-      0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
-      0xD8, 0xD9, 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20C7E4, 0x20C7E6, 0x20C8C7, 0x20D9E4, 0x20E1EA, 0x20E4E4, 0x20E5E6, 0x20E8C7,
-      0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E420, 0xC7E4C3, 0xC7E4C7, 0xC7E4C8,
-      0xC7E4CA, 0xC7E4CC, 0xC7E4CD, 0xC7E4CF, 0xC7E4D3, 0xC7E4D9, 0xC7E4E2, 0xC7E4E5,
-      0xC7E4E8, 0xC7E4EA, 0xC7E520, 0xC7E620, 0xC7E6CA, 0xC820C7, 0xC920C7, 0xC920E1,
-      0xC920E4, 0xC920E5, 0xC920E8, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920,
-      0xD320C7, 0xD920C7, 0xD9E4E9, 0xE1EA20, 0xE420C7, 0xE4C920, 0xE4E920, 0xE4EA20,
-      0xE520C7, 0xE5C720, 0xE5C920, 0xE5E620, 0xE620C7, 0xE720C7, 0xE7C720, 0xE8C7E4,
-      0xE8E620, 0xE920C7, 0xEA20C7, 0xEA20E5, 0xEA20E8, 0xEAC920, 0xEAD120, 0xEAE620
-    ];
-  };
-
-  this.name = function(det) {
-    return 'ISO-8859-6';
-  };
-
-  this.language = function() {
-    return 'ar';
-  };
-};
-util.inherits(module.exports.ISO_8859_6, sbcs);
-
-
-module.exports.ISO_8859_7 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0xA1, 0xA2, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDC, 0x20,
-      0xDD, 0xDE, 0xDF, 0x20, 0xFC, 0x20, 0xFD, 0xFE,
-      0xC0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0x20, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xDD, 0xDE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20E1ED, 0x20E1F0, 0x20E3E9, 0x20E4E9, 0x20E5F0, 0x20E720, 0x20EAE1, 0x20ECE5,
-      0x20EDE1, 0x20EF20, 0x20F0E1, 0x20F0EF, 0x20F0F1, 0x20F3F4, 0x20F3F5, 0x20F4E7,
-      0x20F4EF, 0xDFE120, 0xE120E1, 0xE120F4, 0xE1E920, 0xE1ED20, 0xE1F0FC, 0xE1F220,
-      0xE3E9E1, 0xE5E920, 0xE5F220, 0xE720F4, 0xE7ED20, 0xE7F220, 0xE920F4, 0xE9E120,
-      0xE9EADE, 0xE9F220, 0xEAE1E9, 0xEAE1F4, 0xECE520, 0xED20E1, 0xED20E5, 0xED20F0,
-      0xEDE120, 0xEFF220, 0xEFF520, 0xF0EFF5, 0xF0F1EF, 0xF0FC20, 0xF220E1, 0xF220E5,
-      0xF220EA, 0xF220F0, 0xF220F4, 0xF3E520, 0xF3E720, 0xF3F4EF, 0xF4E120, 0xF4E1E9,
-      0xF4E7ED, 0xF4E7F2, 0xF4E9EA, 0xF4EF20, 0xF4EFF5, 0xF4F9ED, 0xF9ED20, 0xFEED20
-    ];
-  };
-
-  this.name = function(det) {
-    return (det && det.fC1Bytes) ? 'windows-1253' : 'ISO-8859-7';
-  };
-
-  this.language = function() {
-    return 'el';
-  };
-};
-util.inherits(module.exports.ISO_8859_7, sbcs);
-
-module.exports.ISO_8859_8 = function() {
-
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0x20, 0x20, 0x20, 0x20, 0x20
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      new NGramsPlusLang('he', [
-        0x20E0E5, 0x20E0E7, 0x20E0E9, 0x20E0FA, 0x20E1E9, 0x20E1EE, 0x20E4E0, 0x20E4E5,
-        0x20E4E9, 0x20E4EE, 0x20E4F2, 0x20E4F9, 0x20E4FA, 0x20ECE0, 0x20ECE4, 0x20EEE0,
-        0x20F2EC, 0x20F9EC, 0xE0FA20, 0xE420E0, 0xE420E1, 0xE420E4, 0xE420EC, 0xE420EE,
-        0xE420F9, 0xE4E5E0, 0xE5E020, 0xE5ED20, 0xE5EF20, 0xE5F820, 0xE5FA20, 0xE920E4,
-        0xE9E420, 0xE9E5FA, 0xE9E9ED, 0xE9ED20, 0xE9EF20, 0xE9F820, 0xE9FA20, 0xEC20E0,
-        0xEC20E4, 0xECE020, 0xECE420, 0xED20E0, 0xED20E1, 0xED20E4, 0xED20EC, 0xED20EE,
-        0xED20F9, 0xEEE420, 0xEF20E4, 0xF0E420, 0xF0E920, 0xF0E9ED, 0xF2EC20, 0xF820E4,
-        0xF8E9ED, 0xF9EC20, 0xFA20E0, 0xFA20E1, 0xFA20E4, 0xFA20EC, 0xFA20EE, 0xFA20F9,
-      ]),
-      new NGramsPlusLang('he', [
-        0x20E0E5, 0x20E0EC, 0x20E4E9, 0x20E4EC, 0x20E4EE, 0x20E4F0, 0x20E9F0, 0x20ECF2,
-        0x20ECF9, 0x20EDE5, 0x20EDE9, 0x20EFE5, 0x20EFE9, 0x20F8E5, 0x20F8E9, 0x20FAE0,
-        0x20FAE5, 0x20FAE9, 0xE020E4, 0xE020EC, 0xE020ED, 0xE020FA, 0xE0E420, 0xE0E5E4,
-        0xE0EC20, 0xE0EE20, 0xE120E4, 0xE120ED, 0xE120FA, 0xE420E4, 0xE420E9, 0xE420EC,
-        0xE420ED, 0xE420EF, 0xE420F8, 0xE420FA, 0xE4EC20, 0xE5E020, 0xE5E420, 0xE7E020,
-        0xE9E020, 0xE9E120, 0xE9E420, 0xEC20E4, 0xEC20ED, 0xEC20FA, 0xECF220, 0xECF920,
-        0xEDE9E9, 0xEDE9F0, 0xEDE9F8, 0xEE20E4, 0xEE20ED, 0xEE20FA, 0xEEE120, 0xEEE420,
-        0xF2E420, 0xF920E4, 0xF920ED, 0xF920FA, 0xF9E420, 0xFAE020, 0xFAE420, 0xFAE5E9,
-      ])
-    ];
-  };
-
-  this.name = function(det) {
-    return (det && det.fC1Bytes) ? 'windows-1255' : 'ISO-8859-8';
-  };
-
-  this.language = function() {
-    return 'he';
-  };
-
-};
-util.inherits(module.exports.ISO_8859_8, sbcs);
-
-
-module.exports.ISO_8859_9 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
-      0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x69, 0xFE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x206261, 0x206269, 0x206275, 0x206461, 0x206465, 0x206765, 0x206861, 0x20696C,
-      0x206B61, 0x206B6F, 0x206D61, 0x206F6C, 0x207361, 0x207461, 0x207665, 0x207961,
-      0x612062, 0x616B20, 0x616C61, 0x616D61, 0x616E20, 0x616EFD, 0x617220, 0x617261,
-      0x6172FD, 0x6173FD, 0x617961, 0x626972, 0x646120, 0x646520, 0x646920, 0x652062,
-      0x65206B, 0x656469, 0x656E20, 0x657220, 0x657269, 0x657369, 0x696C65, 0x696E20,
-      0x696E69, 0x697220, 0x6C616E, 0x6C6172, 0x6C6520, 0x6C6572, 0x6E2061, 0x6E2062,
-      0x6E206B, 0x6E6461, 0x6E6465, 0x6E6520, 0x6E6920, 0x6E696E, 0x6EFD20, 0x72696E,
-      0x72FD6E, 0x766520, 0x796120, 0x796F72, 0xFD6E20, 0xFD6E64, 0xFD6EFD, 0xFDF0FD
-    ];
-  };
-
-  this.name = function(det) {
-    return (det && det.fC1Bytes) ? 'windows-1254' : 'ISO-8859-9';
-  };
-
-  this.language = function() {
-    return 'tr';
-  };
-};
-util.inherits(module.exports.ISO_8859_9, sbcs);
-
-
-module.exports.windows_1251 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x90, 0x83, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
-      0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
-      0x20, 0xA2, 0xA2, 0xBC, 0x20, 0xB4, 0x20, 0x20,
-      0xB8, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0xBF,
-      0x20, 0x20, 0xB3, 0xB3, 0xB4, 0xB5, 0x20, 0x20,
-      0xB8, 0x20, 0xBA, 0x20, 0xBC, 0xBE, 0xBE, 0xBF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-      0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20E220, 0x20E2EE, 0x20E4EE, 0x20E7E0, 0x20E820, 0x20EAE0, 0x20EAEE, 0x20EDE0,
-      0x20EDE5, 0x20EEE1, 0x20EFEE, 0x20EFF0, 0x20F0E0, 0x20F1EE, 0x20F1F2, 0x20F2EE,
-      0x20F7F2, 0x20FDF2, 0xE0EDE8, 0xE0F2FC, 0xE3EE20, 0xE5EBFC, 0xE5EDE8, 0xE5F1F2,
-      0xE5F220, 0xE820EF, 0xE8E520, 0xE8E820, 0xE8FF20, 0xEBE5ED, 0xEBE820, 0xEBFCED,
-      0xEDE020, 0xEDE520, 0xEDE8E5, 0xEDE8FF, 0xEDEE20, 0xEDEEE2, 0xEE20E2, 0xEE20EF,
-      0xEE20F1, 0xEEE220, 0xEEE2E0, 0xEEE3EE, 0xEEE920, 0xEEEBFC, 0xEEEC20, 0xEEF1F2,
-      0xEFEEEB, 0xEFF0E5, 0xEFF0E8, 0xEFF0EE, 0xF0E0E2, 0xF0E5E4, 0xF1F2E0, 0xF1F2E2,
-      0xF1F2E8, 0xF1FF20, 0xF2E5EB, 0xF2EE20, 0xF2EEF0, 0xF2FC20, 0xF7F2EE, 0xFBF520
-    ];
-  };
-
-  this.name = function(det) {
-    return 'windows-1251';
-  };
-
-  this.language = function() {
-    return 'ru';
-  };
-};
-util.inherits(module.exports.windows_1251, sbcs);
-
-
-module.exports.windows_1256 = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x81, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
-      0x88, 0x20, 0x8A, 0x20, 0x9C, 0x8D, 0x8E, 0x8F,
-      0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x98, 0x20, 0x9A, 0x20, 0x9C, 0x20, 0x20, 0x9F,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
-      0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0x20,
-      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
-      0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
-      0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
-      0x20, 0x20, 0x20, 0x20, 0xF4, 0x20, 0x20, 0x20,
-      0x20, 0xF9, 0x20, 0xFB, 0xFC, 0x20, 0x20, 0xFF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20C7E1, 0x20C7E4, 0x20C8C7, 0x20DAE1, 0x20DDED, 0x20E1E1, 0x20E3E4, 0x20E6C7,
-      0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E120, 0xC7E1C3, 0xC7E1C7, 0xC7E1C8,
-      0xC7E1CA, 0xC7E1CC, 0xC7E1CD, 0xC7E1CF, 0xC7E1D3, 0xC7E1DA, 0xC7E1DE, 0xC7E1E3,
-      0xC7E1E6, 0xC7E1ED, 0xC7E320, 0xC7E420, 0xC7E4CA, 0xC820C7, 0xC920C7, 0xC920DD,
-      0xC920E1, 0xC920E3, 0xC920E6, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920,
-      0xD320C7, 0xDA20C7, 0xDAE1EC, 0xDDED20, 0xE120C7, 0xE1C920, 0xE1EC20, 0xE1ED20,
-      0xE320C7, 0xE3C720, 0xE3C920, 0xE3E420, 0xE420C7, 0xE520C7, 0xE5C720, 0xE6C7E1,
-      0xE6E420, 0xEC20C7, 0xED20C7, 0xED20E3, 0xED20E6, 0xEDC920, 0xEDD120, 0xEDE420
-    ];
-  };
-
-  this.name = function(det) {
-    return 'windows-1256';
-  };
-
-  this.language = function() {
-    return 'ar';
-  };
-};
-util.inherits(module.exports.windows_1256, sbcs);
-
-
-module.exports.KOI8_R = function() {
-  this.byteMap = function() {
-    return [
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-      0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-      0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-      0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
-      0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-      0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
-      0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
-      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
-      0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
-      0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
-      0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
-      0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-      0x20C4CF, 0x20C920, 0x20CBC1, 0x20CBCF, 0x20CEC1, 0x20CEC5, 0x20CFC2, 0x20D0CF,
-      0x20D0D2, 0x20D2C1, 0x20D3CF, 0x20D3D4, 0x20D4CF, 0x20D720, 0x20D7CF, 0x20DAC1,
-      0x20DCD4, 0x20DED4, 0xC1CEC9, 0xC1D4D8, 0xC5CCD8, 0xC5CEC9, 0xC5D3D4, 0xC5D420,
-      0xC7CF20, 0xC920D0, 0xC9C520, 0xC9C920, 0xC9D120, 0xCCC5CE, 0xCCC920, 0xCCD8CE,
-      0xCEC120, 0xCEC520, 0xCEC9C5, 0xCEC9D1, 0xCECF20, 0xCECFD7, 0xCF20D0, 0xCF20D3,
-      0xCF20D7, 0xCFC7CF, 0xCFCA20, 0xCFCCD8, 0xCFCD20, 0xCFD3D4, 0xCFD720, 0xCFD7C1,
-      0xD0CFCC, 0xD0D2C5, 0xD0D2C9, 0xD0D2CF, 0xD2C1D7, 0xD2C5C4, 0xD3D120, 0xD3D4C1,
-      0xD3D4C9, 0xD3D4D7, 0xD4C5CC, 0xD4CF20, 0xD4CFD2, 0xD4D820, 0xD9C820, 0xDED4CF
-    ];
-  };
-
-  this.name = function(det) {
-    return 'KOI8-R';
-  };
-
-  this.language = function() {
-    return 'ru';
-  };
-};
-util.inherits(module.exports.KOI8_R, sbcs);
-
-
-/*
-module.exports.ISO_8859_7 = function() {
-  this.byteMap = function() {
-    return [
-
-    ];
-  };
-
-  this.ngrams = function() {
-    return [
-
-    ];
-  };
-
-  this.name = function(det) {
-    if (typeof det == 'undefined')
-      return 'ISO-8859-7';
-    return det.fC1Bytes ? 'windows-1253' : 'ISO-8859-7';
-  };
-
-  this.language = function() {
-    return 'el';
-  };
-};
-util.inherits(module.exports.ISO_8859_7, sbcs);
-*/
-
diff --git a/node_modules/chardet/encoding/unicode.js b/node_modules/chardet/encoding/unicode.js
deleted file mode 100644
index 6458d79..0000000
--- a/node_modules/chardet/encoding/unicode.js
+++ /dev/null
@@ -1,112 +0,0 @@
-'use strict';
-var util = require('util'),
-  Match = require ('../match');
-
-/**
- * This class matches UTF-16 and UTF-32, both big- and little-endian. The
- * BOM will be used if it is present.
- */
-module.exports.UTF_16BE = function() {
-  this.name = function() {
-    return 'UTF-16BE';
-  };
-  this.match = function(det) {
-    var input = det.fRawInput;
-
-    if (input.length >= 2 && ((input[0] & 0xff) == 0xfe && (input[1] & 0xff) == 0xff)) {
-      return new Match(det, this, 100); // confidence = 100
-    }
-
-    // TODO: Do some statistics to check for unsigned UTF-16BE
-    return null;
-  };
-};
-
-module.exports.UTF_16LE = function() {
-  this.name = function() {
-    return 'UTF-16LE';
-  };
-  this.match = function(det) {
-    var input = det.fRawInput;
-
-    if (input.length >= 2 && ((input[0] & 0xff) == 0xff && (input[1] & 0xff) == 0xfe)) {
-      // LE BOM is present.
-      if (input.length >= 4 && input[2] == 0x00 && input[3] == 0x00) {
-        // It is probably UTF-32 LE, not UTF-16
-        return null;
-      }
-      return new Match(det, this, 100); // confidence = 100
-    }
-
-    // TODO: Do some statistics to check for unsigned UTF-16LE
-    return null;
-  }
-};
-
-function UTF_32() {};
-UTF_32.prototype.match = function(det) {
-  var input      = det.fRawInput,
-    limit      = (det.fRawLength / 4) * 4,
-    numValid   = 0,
-    numInvalid = 0,
-    hasBOM     = false,
-    confidence = 0;
-
-  if (limit == 0) {
-    return null;
-  }
-
-  if (this.getChar(input, 0) == 0x0000FEFF) {
-    hasBOM = true;
-  }
-
-  for (var i = 0; i < limit; i += 4) {
-    var ch = this.getChar(input, i);
-
-    if (ch < 0 || ch >= 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF)) {
-      numInvalid += 1;
-    } else {
-      numValid += 1;
-    }
-  }
-
-  // Cook up some sort of confidence score, based on presence of a BOM
-  //    and the existence of valid and/or invalid multi-byte sequences.
-  if (hasBOM && numInvalid == 0) {
-    confidence = 100;
-  } else if (hasBOM && numValid > numInvalid * 10) {
-    confidence = 80;
-  } else if (numValid > 3 && numInvalid == 0) {
-    confidence = 100;
-  } else if (numValid > 0 && numInvalid == 0) {
-    confidence = 80;
-  } else if (numValid > numInvalid * 10) {
-    // Probably corrupt UTF-32BE data.  Valid sequences aren't likely by chance.
-    confidence = 25;
-  }
-
-  // return confidence == 0 ? null : new CharsetMatch(det, this, confidence);
-  return confidence == 0 ? null : new Match(det, this, confidence);
-};
-
-module.exports.UTF_32BE = function() {
-  this.name = function() {
-    return 'UTF-32BE';
-  };
-  this.getChar = function(input, index) {
-    return (input[index + 0] & 0xff) << 24 | (input[index + 1] & 0xff) << 16 |
-         (input[index + 2] & 0xff) <<  8 | (input[index + 3] & 0xff);
-  };
-};
-util.inherits(module.exports.UTF_32BE, UTF_32);
-
-module.exports.UTF_32LE = function() {
-  this.name = function() {
-    return 'UTF-32LE';
-  };
-  this.getChar = function(input, index) {
-    return (input[index + 3] & 0xff) << 24 | (input[index + 2] & 0xff) << 16 |
-         (input[index + 1] & 0xff) <<  8 | (input[index + 0] & 0xff);
-  };
-};
-util.inherits(module.exports.UTF_32LE, UTF_32);
diff --git a/node_modules/chardet/encoding/utf8.js b/node_modules/chardet/encoding/utf8.js
deleted file mode 100644
index c996ce2..0000000
--- a/node_modules/chardet/encoding/utf8.js
+++ /dev/null
@@ -1,84 +0,0 @@
-
-var Match = require ('../match');
-
-/**
- * Charset recognizer for UTF-8
- */
-module.exports = function() {
-  this.name = function() {
-    return 'UTF-8';
-  };
-  this.match = function(det) {
-
-    var hasBOM = false,
-      numValid = 0,
-      numInvalid = 0,
-      input = det.fRawInput,
-      trailBytes = 0,
-      confidence;
-
-    if (det.fRawLength >= 3 &&
-      (input[0] & 0xff) == 0xef && (input[1] & 0xff) == 0xbb && (input[2] & 0xff) == 0xbf) {
-      hasBOM = true;
-    }
-
-    // Scan for multi-byte sequences
-    for (var i = 0; i < det.fRawLength; i++) {
-      var b = input[i];
-      if ((b & 0x80) == 0)
-        continue; // ASCII
-
-      // Hi bit on char found.  Figure out how long the sequence should be
-      if ((b & 0x0e0) == 0x0c0) {
-        trailBytes = 1;
-      } else if ((b & 0x0f0) == 0x0e0) {
-        trailBytes = 2;
-      } else if ((b & 0x0f8) == 0xf0) {
-        trailBytes = 3;
-      } else {
-        numInvalid++;
-        if (numInvalid > 5)
-          break;
-        trailBytes = 0;
-      }
-
-      // Verify that we've got the right number of trail bytes in the sequence
-      for (;;) {
-        i++;
-        if (i >= det.fRawLength)
-          break;
-
-        if ((input[i] & 0xc0) != 0x080) {
-          numInvalid++;
-          break;
-        }
-        if (--trailBytes == 0) {
-          numValid++;
-          break;
-        }
-      }
-    }
-
-    // Cook up some sort of confidence score, based on presense of a BOM
-    //    and the existence of valid and/or invalid multi-byte sequences.
-    confidence = 0;
-    if (hasBOM && numInvalid == 0)
-      confidence = 100;
-    else if (hasBOM && numValid > numInvalid * 10)
-      confidence = 80;
-    else if (numValid > 3 && numInvalid == 0)
-      confidence = 100;
-    else if (numValid > 0 && numInvalid == 0)
-      confidence = 80;
-    else if (numValid == 0 && numInvalid == 0)
-      // Plain ASCII.
-      confidence = 10;
-    else if (numValid > numInvalid * 10)
-      // Probably corruput utf-8 data.  Valid sequences aren't likely by chance.
-      confidence = 25;
-    else
-      return null
-
-    return new Match(det, this, confidence);
-  };
-};
diff --git a/node_modules/chardet/index.js b/node_modules/chardet/index.js
deleted file mode 100644
index 91b2bec..0000000
--- a/node_modules/chardet/index.js
+++ /dev/null
@@ -1,151 +0,0 @@
-
-var fs = require('fs');
-
-var utf8  = require('./encoding/utf8'),
-  unicode = require('./encoding/unicode'),
-  mbcs    = require('./encoding/mbcs'),
-  sbcs    = require('./encoding/sbcs'),
-  iso2022 = require('./encoding/iso2022');
-
-var self = this;
-
-var recognisers = [
-  new utf8,
-  new unicode.UTF_16BE,
-  new unicode.UTF_16LE,
-  new unicode.UTF_32BE,
-  new unicode.UTF_32LE,
-  new mbcs.sjis,
-  new mbcs.big5,
-  new mbcs.euc_jp,
-  new mbcs.euc_kr,
-  new mbcs.gb_18030,
-  new iso2022.ISO_2022_JP,
-  new iso2022.ISO_2022_KR,
-  new iso2022.ISO_2022_CN,
-  new sbcs.ISO_8859_1,
-  new sbcs.ISO_8859_2,
-  new sbcs.ISO_8859_5,
-  new sbcs.ISO_8859_6,
-  new sbcs.ISO_8859_7,
-  new sbcs.ISO_8859_8,
-  new sbcs.ISO_8859_9,
-  new sbcs.windows_1251,
-  new sbcs.windows_1256,
-  new sbcs.KOI8_R
-];
-
-module.exports.detect = function(buffer, opts) {
-
-  // Tally up the byte occurence statistics.
-  var fByteStats = [];
-  for (var i = 0; i < 256; i++)
-    fByteStats[i] = 0;
-
-  for (var i = buffer.length - 1; i >= 0; i--)
-    fByteStats[buffer[i] & 0x00ff]++;
-
-  var fC1Bytes = false;
-  for (var i = 0x80; i <= 0x9F; i += 1) {
-    if (fByteStats[i] != 0) {
-      fC1Bytes = true;
-      break;
-    }
-  }
-
-  var context = {
-    fByteStats:  fByteStats,
-    fC1Bytes:    fC1Bytes,
-    fRawInput:   buffer,
-    fRawLength:  buffer.length,
-    fInputBytes: buffer,
-    fInputLen:   buffer.length
-  };
-
-  var matches = recognisers.map(function(rec) {
-    return rec.match(context);
-  }).filter(function(match) {
-    return !!match;
-  }).sort(function(a, b) {
-    return b.confidence - a.confidence;
-  });
-
-  if (opts && opts.returnAllMatches === true) {
-    return matches;
-  }
-  else {
-    return matches.length > 0 ? matches[0].name : null;
-  }
-};
-
-module.exports.detectFile = function(filepath, opts, cb) {
-  if (typeof opts === 'function') {
-    cb = opts;
-    opts = undefined;
-  }
-
-  var fd;
-
-  var handler = function(err, buffer) {
-    if (fd) {
-      fs.closeSync(fd);
-    }
-
-    if (err) return cb(err, null);
-    cb(null, self.detect(buffer, opts));
-  };
-
-  if (opts && opts.sampleSize) {
-    fd = fs.openSync(filepath, 'r'),
-      sample = Buffer.allocUnsafe(opts.sampleSize);
-
-    fs.read(fd, sample, 0, opts.sampleSize, null, function(err) {
-      handler(err, sample);
-    });
-    return;
-  }
-
-  fs.readFile(filepath, handler);
-};
-
-module.exports.detectFileSync = function(filepath, opts) {
-  if (opts && opts.sampleSize) {
-    var fd = fs.openSync(filepath, 'r'),
-      sample = Buffer.allocUnsafe(opts.sampleSize);
-
-    fs.readSync(fd, sample, 0, opts.sampleSize);
-    fs.closeSync(fd);
-    return self.detect(sample, opts);
-  }
-
-  return self.detect(fs.readFileSync(filepath), opts);
-};
-
-// Wrappers for the previous functions to return all encodings
-module.exports.detectAll = function(buffer, opts) {
-  if (typeof opts !== 'object') {
-    opts = {};
-  }
-  opts.returnAllMatches = true;
-  return self.detect(buffer, opts);
-}
-
-module.exports.detectFileAll = function(filepath, opts, cb) {
-  if (typeof opts === 'function') {
-    cb = opts;
-    opts = undefined;
-  }
-  if (typeof opts !== 'object') {
-    opts = {};
-  }
-  opts.returnAllMatches = true;
-  self.detectFile(filepath, opts, cb);
-}
-
-module.exports.detectFileAllSync = function(filepath, opts) {
-  if (typeof opts !== 'object') {
-    opts = {};
-  }
-  opts.returnAllMatches = true;
-  return self.detectFileSync(filepath, opts);
-}
diff --git a/node_modules/chardet/match.js b/node_modules/chardet/match.js
deleted file mode 100644
index d52faa2..0000000
--- a/node_modules/chardet/match.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-module.exports = function(det, rec, confidence, name, lang) {
-  this.confidence = confidence;
-  this.name = name || rec.name(det);
-  this.lang = lang;
-};
diff --git a/node_modules/chardet/package.json b/node_modules/chardet/package.json
deleted file mode 100644
index af046ba..0000000
--- a/node_modules/chardet/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-  "name": "chardet",
-  "version": "0.7.0",
-  "homepage": "https://github.com/runk/node-chardet",
-  "description": "Character detector",
-  "keywords": [
-    "encoding",
-    "character",
-    "utf8",
-    "detector",
-    "chardet",
-    "icu"
-  ],
-  "author": "Dmitry Shirokov <deadrunk@gmail.com>",
-  "contributors": [
-    "@spikying",
-    "@wtgtybhertgeghgtwtg",
-    "@suisho",
-    "@seangarner",
-    "@zevanty"
-  ],
-  "devDependencies": {
-    "github-publish-release": "^5.0.0",
-    "mocha": "^5.2.0"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git@github.com:runk/node-chardet.git"
-  },
-  "bugs": {
-    "mail": "deadrunk@gmail.com",
-    "url": "http://github.com/runk/node-chardet/issues"
-  },
-  "scripts": {
-    "test": "mocha -R spec --recursive --bail",
-    "release": "scripts/release"
-  },
-  "main": "index.js",
-  "engine": {
-    "node": ">=4"
-  },
-  "readmeFilename": "README.md",
-  "directories": {
-    "test": "test"
-  },
-  "license": "MIT"
-}
diff --git a/node_modules/cli-cursor/index.d.ts b/node_modules/cli-cursor/index.d.ts
deleted file mode 100644
index 2b252d0..0000000
--- a/node_modules/cli-cursor/index.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-/// <reference types="node"/>
-
-/**
-Show cursor.
-
-@param stream - Default: `process.stderr`.
-
-@example
-```
-import * as cliCursor from 'cli-cursor';
-
-cliCursor.show();
-```
-*/
-export function show(stream?: NodeJS.WritableStream): void;
-
-/**
-Hide cursor.
-
-@param stream - Default: `process.stderr`.
-
-@example
-```
-import * as cliCursor from 'cli-cursor';
-
-cliCursor.hide();
-```
-*/
-export function hide(stream?: NodeJS.WritableStream): void;
-
-/**
-Toggle cursor visibility.
-
-@param force - Is useful to show or hide the cursor based on a boolean.
-@param stream - Default: `process.stderr`.
-
-@example
-```
-import * as cliCursor from 'cli-cursor';
-
-const unicornsAreAwesome = true;
-cliCursor.toggle(unicornsAreAwesome);
-```
-*/
-export function toggle(force?: boolean, stream?: NodeJS.WritableStream): void;
diff --git a/node_modules/cli-cursor/index.js b/node_modules/cli-cursor/index.js
deleted file mode 100644
index 710c405..0000000
--- a/node_modules/cli-cursor/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-const restoreCursor = require('restore-cursor');
-
-let isHidden = false;
-
-exports.show = (writableStream = process.stderr) => {
-	if (!writableStream.isTTY) {
-		return;
-	}
-
-	isHidden = false;
-	writableStream.write('\u001B[?25h');
-};
-
-exports.hide = (writableStream = process.stderr) => {
-	if (!writableStream.isTTY) {
-		return;
-	}
-
-	restoreCursor();
-	isHidden = true;
-	writableStream.write('\u001B[?25l');
-};
-
-exports.toggle = (force, writableStream) => {
-	if (force !== undefined) {
-		isHidden = force;
-	}
-
-	if (isHidden) {
-		exports.show(writableStream);
-	} else {
-		exports.hide(writableStream);
-	}
-};
diff --git a/node_modules/cli-cursor/package.json b/node_modules/cli-cursor/package.json
deleted file mode 100644
index 5ce1e65..0000000
--- a/node_modules/cli-cursor/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-	"name": "cli-cursor",
-	"version": "3.1.0",
-	"description": "Toggle the CLI cursor",
-	"license": "MIT",
-	"repository": "sindresorhus/cli-cursor",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && ava && tsd"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"cli",
-		"cursor",
-		"ansi",
-		"toggle",
-		"display",
-		"show",
-		"hide",
-		"term",
-		"terminal",
-		"console",
-		"tty",
-		"shell",
-		"command-line"
-	],
-	"dependencies": {
-		"restore-cursor": "^3.1.0"
-	},
-	"devDependencies": {
-		"@types/node": "^12.0.7",
-		"ava": "^2.1.0",
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
-}
diff --git a/node_modules/cli-cursor/readme.md b/node_modules/cli-cursor/readme.md
deleted file mode 100644
index 3478ac8..0000000
--- a/node_modules/cli-cursor/readme.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# cli-cursor [![Build Status](https://travis-ci.org/sindresorhus/cli-cursor.svg?branch=master)](https://travis-ci.org/sindresorhus/cli-cursor)
-
-> Toggle the CLI cursor
-
-The cursor is [gracefully restored](https://github.com/sindresorhus/restore-cursor) if the process exits.
-
-
-## Install
-
-```
-$ npm install cli-cursor
-```
-
-
-## Usage
-
-```js
-const cliCursor = require('cli-cursor');
-
-cliCursor.hide();
-
-const unicornsAreAwesome = true;
-cliCursor.toggle(unicornsAreAwesome);
-```
-
-
-## API
-
-### .show(stream?)
-
-### .hide(stream?)
-
-### .toggle(force?, stream?)
-
-#### force
-
-Useful for showing or hiding the cursor based on a boolean.
-
-#### stream
-
-Type: `stream.Writable`<br>
-Default: `process.stderr`
-
-
----
-
-<div align="center">
-	<b>
-		<a href="https://tidelift.com/subscription/pkg/npm-cli-cursor?utm_source=npm-cli-cursor&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
-	</b>
-	<br>
-	<sub>
-		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
-	</sub>
-</div>
diff --git a/node_modules/cli-width/.npmignore b/node_modules/cli-width/.npmignore
deleted file mode 100644
index 2db169c..0000000
--- a/node_modules/cli-width/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-test
-coverage
-CHANGELOG.md
diff --git a/node_modules/cli-width/.travis.yml b/node_modules/cli-width/.travis.yml
deleted file mode 100644
index 7a188cb..0000000
--- a/node_modules/cli-width/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-language: node_js
-node_js:
-  - '0.10'
-  - '0.11'
-  - '0.12'
-  - 'iojs-1'
-  - 'iojs-2'
-  - 'iojs-3'
-  - '4.0'
-after_script:
-  - npm run coveralls
diff --git a/node_modules/cli-width/CHANGELOG.md b/node_modules/cli-width/CHANGELOG.md
deleted file mode 100644
index c46429b..0000000
--- a/node_modules/cli-width/CHANGELOG.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="2.2.0"></a>
-# [2.2.0](https://github.com/knownasilya/cli-width/compare/v2.1.1...v2.2.0) (2017-08-22)
-
-
-### Features
-
-* return default if env is 0 ([1833baf](https://github.com/knownasilya/cli-width/commit/1833baf)), closes [#9](https://github.com/knownasilya/cli-width/issues/9)
-
-
-
-<a name="2.1.1"></a>
-## [2.1.1](https://github.com/knownasilya/cli-width/compare/v2.1.0...v2.1.1) (2017-08-22)
diff --git a/node_modules/cli-width/LICENSE b/node_modules/cli-width/LICENSE
deleted file mode 100644
index 173ed31..0000000
--- a/node_modules/cli-width/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2015, Ilya Radchenko <ilya@burstcreations.com>
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/cli-width/README.md b/node_modules/cli-width/README.md
deleted file mode 100644
index b7157ea..0000000
--- a/node_modules/cli-width/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-cli-width
-=========
-
-Get stdout window width, with four fallbacks, `tty`, `output.columns`, a custom environment variable and then a default.
-
-[![npm version](https://badge.fury.io/js/cli-width.svg)](http://badge.fury.io/js/cli-width)
-[![Build Status](https://travis-ci.org/knownasilya/cli-width.svg)](https://travis-ci.org/knownasilya/cli-width)
-[![Coverage Status](https://coveralls.io/repos/knownasilya/cli-width/badge.svg?branch=master&service=github)](https://coveralls.io/github/knownasilya/cli-width?branch=master)
-
-## Usage
-
-```
-npm install --save cli-width
-```
-
-```js
-'use strict';
-
-var cliWidth = require('cli-width');
-
-cliWidth(); // maybe 204 :)
-```
-
-You can also set the `CLI_WIDTH` environment variable.
-
-If none of the methods are supported, and the environment variable isn't set,
-the default width value is going to be `0`, that can be changed using the configurable `options`.
-
-## API
-
-### cliWidth([options])
-
-`cliWidth` can be configured using an `options` parameter, the possible properties are:
-
-- **defaultWidth**\<number\> Defines a default value to be used if none of the methods are available, defaults to `0`
-- **output**\<object\> A stream to be used to read width values from, defaults to `process.stdout`
-- **tty**\<object\> TTY module to try to read width from as a fallback, defaults to `require('tty')`
-
-
-### Examples
-
-Defining both a default width value and a stream output to try to read from:
-
-```js
-var cliWidth = require('cli-width');
-var ttys = require('ttys');
-
-cliWidth({
-  defaultWidth: 80,
-  output: ttys.output
-});
-```
-
-Defines a different tty module to read width from:
-
-```js
-var cliWidth = require('cli-width');
-var ttys = require('ttys');
-
-cliWidth({
-  tty: ttys
-});
-```
-
-## Tests
-
-```bash
-npm install
-npm test
-```
-
-Coverage can be generated with `npm run coverage`.
diff --git a/node_modules/cli-width/index.js b/node_modules/cli-width/index.js
deleted file mode 100644
index de939f3..0000000
--- a/node_modules/cli-width/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-exports = module.exports = cliWidth;
-
-function normalizeOpts(options) {
-  var defaultOpts = {
-    defaultWidth: 0,
-    output: process.stdout,
-    tty: require('tty')
-  };
-
-  if (!options) {
-    return defaultOpts;
-  } else {
-    Object.keys(defaultOpts).forEach(function (key) {
-      if (!options[key]) {
-        options[key] = defaultOpts[key];
-      }
-    });
-
-    return options;
-  }
-}
-
-function cliWidth(options) {
-  var opts = normalizeOpts(options);
-
-  if (opts.output.getWindowSize) {
-    return opts.output.getWindowSize()[0] || opts.defaultWidth;
-  } else {
-    if (opts.tty.getWindowSize) {
-      return opts.tty.getWindowSize()[1] || opts.defaultWidth;
-    } else {
-      if (opts.output.columns) {
-        return opts.output.columns;
-      } else {
-        if (process.env.CLI_WIDTH) {
-          var width = parseInt(process.env.CLI_WIDTH, 10);
-
-          if (!isNaN(width) && width !== 0) {
-            return width;
-          }
-        }
-      }
-
-      return opts.defaultWidth;
-    }
-  }
-};
diff --git a/node_modules/cli-width/package.json b/node_modules/cli-width/package.json
deleted file mode 100644
index 765800d..0000000
--- a/node_modules/cli-width/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "name": "cli-width",
-  "version": "2.2.0",
-  "description": "Get stdout window width, with two fallbacks, tty and then a default.",
-  "main": "index.js",
-  "scripts": {
-    "test": "node test | tspec",
-    "coverage": "isparta cover test/*.js | tspec",
-    "coveralls": "npm run coverage -s && coveralls < coverage/lcov.info",
-    "postcoveralls": "rimraf ./coverage",
-    "release": "standard-version"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git@github.com:knownasilya/cli-width.git"
-  },
-  "author": "Ilya Radchenko <ilya@burstcreations.com>",
-  "license": "ISC",
-  "bugs": {
-    "url": "https://github.com/knownasilya/cli-width/issues"
-  },
-  "homepage": "https://github.com/knownasilya/cli-width",
-  "devDependencies": {
-    "coveralls": "^2.11.4",
-    "isparta": "^3.0.4",
-    "rimraf": "^2.4.3",
-    "standard-version": "^4.2.0",
-    "tap-spec": "^4.1.0",
-    "tape": "^3.4.0"
-  }
-}
diff --git a/node_modules/commander/CHANGELOG.md b/node_modules/commander/CHANGELOG.md
deleted file mode 100644
index 7dce779..0000000
--- a/node_modules/commander/CHANGELOG.md
+++ /dev/null
@@ -1,419 +0,0 @@
-2.20.3 / 2019-10-11
-==================
-
-  * Support Node.js 0.10 (Revert #1059)
-  * Ran "npm unpublish commander@2.20.2". There is no 2.20.2.
-
-2.20.1 / 2019-09-29
-==================
-
-  * Improve executable subcommand tracking
-  * Update dev dependencies
-
-2.20.0 / 2019-04-02
-==================
-
-  * fix: resolve symbolic links completely when hunting for subcommands (#935)
-  * Update index.d.ts (#930)
-  * Update Readme.md (#924)
-  * Remove --save option as it isn't required anymore (#918)
-  * Add link to the license file (#900)
-  * Added example of receiving args from options (#858)
-  * Added missing semicolon (#882)
-  * Add extension to .eslintrc (#876)
-
-2.19.0 / 2018-10-02
-==================
-
-  * Removed newline after Options and Commands headers (#864)
-  * Bugfix - Error output (#862)
-  * Fix to change default value to string (#856)
-
-2.18.0 / 2018-09-07
-==================
-
-  * Standardize help output (#853)
-  * chmod 644 travis.yml (#851)
-  * add support for execute typescript subcommand via ts-node (#849)
-
-2.17.1 / 2018-08-07
-==================
-
-  * Fix bug in command emit (#844)
-
-2.17.0 / 2018-08-03
-==================
-
-  * fixed newline output after help information (#833)
-  * Fix to emit the action even without command (#778)
-  * npm update (#823)
-
-2.16.0 / 2018-06-29
-==================
-
-  * Remove Makefile and `test/run` (#821)
-  * Make 'npm test' run on Windows (#820)
-  * Add badge to display install size (#807)
-  * chore: cache node_modules (#814)
-  * chore: remove Node.js 4 (EOL), add Node.js 10 (#813)
-  * fixed typo in readme (#812)
-  * Fix types (#804)
-  * Update eslint to resolve vulnerabilities in lodash (#799)
-  * updated readme with custom event listeners. (#791)
-  * fix tests (#794)
-
-2.15.0 / 2018-03-07
-==================
-
-  * Update downloads badge to point to graph of downloads over time instead of duplicating link to npm
-  * Arguments description
-
-2.14.1 / 2018-02-07
-==================
-
-  * Fix typing of help function
-
-2.14.0 / 2018-02-05
-==================
-
-  * only register the option:version event once
-  * Fixes issue #727: Passing empty string for option on command is set to undefined
-  * enable eqeqeq rule
-  * resolves #754 add linter configuration to project
-  * resolves #560 respect custom name for version option
-  * document how to override the version flag
-  * document using options per command
-
-2.13.0 / 2018-01-09
-==================
-
-  * Do not print default for --no-
-  * remove trailing spaces in command help
-  * Update CI's Node.js to LTS and latest version
-  * typedefs: Command and Option types added to commander namespace
-
-2.12.2 / 2017-11-28
-==================
-
-  * fix: typings are not shipped
-
-2.12.1 / 2017-11-23
-==================
-
-  * Move @types/node to dev dependency
-
-2.12.0 / 2017-11-22
-==================
-
-  * add attributeName() method to Option objects
-  * Documentation updated for options with --no prefix
-  * typings: `outputHelp` takes a string as the first parameter
-  * typings: use overloads
-  * feat(typings): update to match js api
-  * Print default value in option help
-  * Fix translation error
-  * Fail when using same command and alias (#491)
-  * feat(typings): add help callback
-  * fix bug when description is add after command with options (#662)
-  * Format js code
-  * Rename History.md to CHANGELOG.md (#668)
-  * feat(typings): add typings to support TypeScript (#646)
-  * use current node
-
-2.11.0 / 2017-07-03
-==================
-
-  * Fix help section order and padding (#652)
-  * feature: support for signals to subcommands (#632)
-  * Fixed #37, --help should not display first (#447)
-  * Fix translation errors. (#570)
-  * Add package-lock.json
-  * Remove engines
-  * Upgrade package version
-  * Prefix events to prevent conflicts between commands and options (#494)
-  * Removing dependency on graceful-readlink
-  * Support setting name in #name function and make it chainable
-  * Add .vscode directory to .gitignore (Visual Studio Code metadata)
-  * Updated link to ruby commander in readme files
-
-2.10.0 / 2017-06-19
-==================
-
-  * Update .travis.yml. drop support for older node.js versions.
-  * Fix require arguments in README.md
-  * On SemVer you do not start from 0.0.1
-  * Add missing semi colon in readme
-  * Add save param to npm install
-  * node v6 travis test
-  * Update Readme_zh-CN.md
-  * Allow literal '--' to be passed-through as an argument
-  * Test subcommand alias help
-  * link build badge to master branch
-  * Support the alias of Git style sub-command
-  * added keyword commander for better search result on npm
-  * Fix Sub-Subcommands
-  * test node.js stable
-  * Fixes TypeError when a command has an option called `--description`
-  * Update README.md to make it beginner friendly and elaborate on the difference between angled and square brackets.
-  * Add chinese Readme file
-
-2.9.0 / 2015-10-13
-==================
-
-  * Add option `isDefault` to set default subcommand #415 @Qix-
-  * Add callback to allow filtering or post-processing of help text #434 @djulien
-  * Fix `undefined` text in help information close #414 #416 @zhiyelee
-
-2.8.1 / 2015-04-22
-==================
-
- * Back out `support multiline description` Close #396 #397
-
-2.8.0 / 2015-04-07
-==================
-
-  * Add `process.execArg` support, execution args like `--harmony` will be passed to sub-commands #387 @DigitalIO @zhiyelee
-  * Fix bug in Git-style sub-commands #372 @zhiyelee
-  * Allow commands to be hidden from help #383 @tonylukasavage
-  * When git-style sub-commands are in use, yet none are called, display help #382 @claylo
-  * Add ability to specify arguments syntax for top-level command #258 @rrthomas
-  * Support multiline descriptions #208 @zxqfox
-
-2.7.1 / 2015-03-11
-==================
-
- * Revert #347 (fix collisions when option and first arg have same name) which causes a bug in #367.
-
-2.7.0 / 2015-03-09
-==================
-
- * Fix git-style bug when installed globally. Close #335 #349 @zhiyelee
- * Fix collisions when option and first arg have same name. Close #346 #347 @tonylukasavage
- * Add support for camelCase on `opts()`. Close #353  @nkzawa
- * Add node.js 0.12 and io.js to travis.yml
- * Allow RegEx options. #337 @palanik
- * Fixes exit code when sub-command failing.  Close #260 #332 @pirelenito
- * git-style `bin` files in $PATH make sense. Close #196 #327  @zhiyelee
-
-2.6.0 / 2014-12-30
-==================
-
-  * added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee
-  * Add application description to the help msg. Close #112 @dalssoft
-
-2.5.1 / 2014-12-15
-==================
-
-  * fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee
-
-2.5.0 / 2014-10-24
-==================
-
- * add support for variadic arguments. Closes #277 @whitlockjc
-
-2.4.0 / 2014-10-17
-==================
-
- * fixed a bug on executing the coercion function of subcommands option. Closes #270
- * added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage
- * added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage
- * fixed a bug on subcommand name. Closes #248 @jonathandelgado
- * fixed function normalize doesn’t honor option terminator. Closes #216 @abbr
-
-2.3.0 / 2014-07-16
-==================
-
- * add command alias'. Closes PR #210
- * fix: Typos. Closes #99
- * fix: Unused fs module. Closes #217
-
-2.2.0 / 2014-03-29
-==================
-
- * add passing of previous option value
- * fix: support subcommands on windows. Closes #142
- * Now the defaultValue passed as the second argument of the coercion function.
-
-2.1.0 / 2013-11-21
-==================
-
- * add: allow cflag style option params, unit test, fixes #174
-
-2.0.0 / 2013-07-18
-==================
-
- * remove input methods (.prompt, .confirm, etc)
-
-1.3.2 / 2013-07-18
-==================
-
- * add support for sub-commands to co-exist with the original command
-
-1.3.1 / 2013-07-18
-==================
-
- * add quick .runningCommand hack so you can opt-out of other logic when running a sub command
-
-1.3.0 / 2013-07-09
-==================
-
- * add EACCES error handling
- * fix sub-command --help
-
-1.2.0 / 2013-06-13
-==================
-
- * allow "-" hyphen as an option argument
- * support for RegExp coercion
-
-1.1.1 / 2012-11-20
-==================
-
-  * add more sub-command padding
-  * fix .usage() when args are present. Closes #106
-
-1.1.0 / 2012-11-16
-==================
-
-  * add git-style executable subcommand support. Closes #94
-
-1.0.5 / 2012-10-09
-==================
-
-  * fix `--name` clobbering. Closes #92
-  * fix examples/help. Closes #89
-
-1.0.4 / 2012-09-03
-==================
-
-  * add `outputHelp()` method.
-
-1.0.3 / 2012-08-30
-==================
-
-  * remove invalid .version() defaulting
-
-1.0.2 / 2012-08-24
-==================
-
-  * add `--foo=bar` support [arv]
-  * fix password on node 0.8.8. Make backward compatible with 0.6 [focusaurus]
-
-1.0.1 / 2012-08-03
-==================
-
-  * fix issue #56
-  * fix tty.setRawMode(mode) was moved to tty.ReadStream#setRawMode() (i.e. process.stdin.setRawMode())
-
-1.0.0 / 2012-07-05
-==================
-
-  * add support for optional option descriptions
-  * add defaulting of `.version()` to package.json's version
-
-0.6.1 / 2012-06-01
-==================
-
-  * Added: append (yes or no) on confirmation
-  * Added: allow node.js v0.7.x
-
-0.6.0 / 2012-04-10
-==================
-
-  * Added `.prompt(obj, callback)` support. Closes #49
-  * Added default support to .choose(). Closes #41
-  * Fixed the choice example
-
-0.5.1 / 2011-12-20
-==================
-
-  * Fixed `password()` for recent nodes. Closes #36
-
-0.5.0 / 2011-12-04
-==================
-
-  * Added sub-command option support [itay]
-
-0.4.3 / 2011-12-04
-==================
-
-  * Fixed custom help ordering. Closes #32
-
-0.4.2 / 2011-11-24
-==================
-
-  * Added travis support
-  * Fixed: line-buffered input automatically trimmed. Closes #31
-
-0.4.1 / 2011-11-18
-==================
-
-  * Removed listening for "close" on --help
-
-0.4.0 / 2011-11-15
-==================
-
-  * Added support for `--`. Closes #24
-
-0.3.3 / 2011-11-14
-==================
-
-  * Fixed: wait for close event when writing help info [Jerry Hamlet]
-
-0.3.2 / 2011-11-01
-==================
-
-  * Fixed long flag definitions with values [felixge]
-
-0.3.1 / 2011-10-31
-==================
-
-  * Changed `--version` short flag to `-V` from `-v`
-  * Changed `.version()` so it's configurable [felixge]
-
-0.3.0 / 2011-10-31
-==================
-
-  * Added support for long flags only. Closes #18
-
-0.2.1 / 2011-10-24
-==================
-
-  * "node": ">= 0.4.x < 0.7.0". Closes #20
-
-0.2.0 / 2011-09-26
-==================
-
-  * Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
-
-0.1.0 / 2011-08-24
-==================
-
-  * Added support for custom `--help` output
-
-0.0.5 / 2011-08-18
-==================
-
-  * Changed: when the user enters nothing prompt for password again
-  * Fixed issue with passwords beginning with numbers [NuckChorris]
-
-0.0.4 / 2011-08-15
-==================
-
-  * Fixed `Commander#args`
-
-0.0.3 / 2011-08-15
-==================
-
-  * Added default option value support
-
-0.0.2 / 2011-08-15
-==================
-
-  * Added mask support to `Command#password(str[, mask], fn)`
-  * Added `Command#password(str, fn)`
-
-0.0.1 / 2010-01-03
-==================
-
-  * Initial release
diff --git a/node_modules/commander/LICENSE b/node_modules/commander/LICENSE
deleted file mode 100644
index 10f997a..0000000
--- a/node_modules/commander/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
-
-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.
diff --git a/node_modules/commander/Readme.md b/node_modules/commander/Readme.md
deleted file mode 100644
index c846e7a..0000000
--- a/node_modules/commander/Readme.md
+++ /dev/null
@@ -1,428 +0,0 @@
-# Commander.js
-
-
-[![Build Status](https://api.travis-ci.org/tj/commander.js.svg?branch=master)](http://travis-ci.org/tj/commander.js)
-[![NPM Version](http://img.shields.io/npm/v/commander.svg?style=flat)](https://www.npmjs.org/package/commander)
-[![NPM Downloads](https://img.shields.io/npm/dm/commander.svg?style=flat)](https://npmcharts.com/compare/commander?minimal=true)
-[![Install Size](https://packagephobia.now.sh/badge?p=commander)](https://packagephobia.now.sh/result?p=commander)
-[![Join the chat at https://gitter.im/tj/commander.js](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tj/commander.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-  The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/commander-rb/commander).  
-  [API documentation](http://tj.github.com/commander.js/)
-
-
-## Installation
-
-    $ npm install commander
-
-## Option parsing
-
-Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .option('-p, --peppers', 'Add peppers')
-  .option('-P, --pineapple', 'Add pineapple')
-  .option('-b, --bbq-sauce', 'Add bbq sauce')
-  .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
-  .parse(process.argv);
-
-console.log('you ordered a pizza with:');
-if (program.peppers) console.log('  - peppers');
-if (program.pineapple) console.log('  - pineapple');
-if (program.bbqSauce) console.log('  - bbq');
-console.log('  - %s cheese', program.cheese);
-```
-
-Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
-
-Note that multi-word options starting with `--no` prefix negate the boolean value of the following word. For example, `--no-sauce` sets the value of `program.sauce` to false.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
-  .option('--no-sauce', 'Remove sauce')
-  .parse(process.argv);
-
-console.log('you ordered a pizza');
-if (program.sauce) console.log('  with sauce');
-else console.log(' without sauce');
-```
-
-To get string arguments from options you will need to use angle brackets <> for required inputs or square brackets [] for optional inputs. 
-
-e.g. ```.option('-m --myarg [myVar]', 'my super cool description')```
-
-Then to access the input if it was passed in.
-
-e.g. ```var myInput = program.myarg```
-
-**NOTE**: If you pass a argument without using brackets the example above will return true and not the value passed in.
-
-
-## Version option
-
-Calling the `version` implicitly adds the `-V` and `--version` options to the command.
-When either of these options is present, the command prints the version number and exits.
-
-    $ ./examples/pizza -V
-    0.0.1
-
-If you want your program to respond to the `-v` option instead of the `-V` option, simply pass custom flags to the `version` method using the same syntax as the `option` method.
-
-```js
-program
-  .version('0.0.1', '-v, --version')
-```
-
-The version flags can be named anything, but the long option is required.
-
-## Command-specific options
-
-You can attach options to a command.
-
-```js
-#!/usr/bin/env node
-
-var program = require('commander');
-
-program
-  .command('rm <dir>')
-  .option('-r, --recursive', 'Remove recursively')
-  .action(function (dir, cmd) {
-    console.log('remove ' + dir + (cmd.recursive ? ' recursively' : ''))
-  })
-
-program.parse(process.argv)
-```
-
-A command's options are validated when the command is used. Any unknown options will be reported as an error. However, if an action-based command does not define an action, then the options are not validated.
-
-## Coercion
-
-```js
-function range(val) {
-  return val.split('..').map(Number);
-}
-
-function list(val) {
-  return val.split(',');
-}
-
-function collect(val, memo) {
-  memo.push(val);
-  return memo;
-}
-
-function increaseVerbosity(v, total) {
-  return total + 1;
-}
-
-program
-  .version('0.1.0')
-  .usage('[options] <file ...>')
-  .option('-i, --integer <n>', 'An integer argument', parseInt)
-  .option('-f, --float <n>', 'A float argument', parseFloat)
-  .option('-r, --range <a>..<b>', 'A range', range)
-  .option('-l, --list <items>', 'A list', list)
-  .option('-o, --optional [value]', 'An optional value')
-  .option('-c, --collect [value]', 'A repeatable value', collect, [])
-  .option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)
-  .parse(process.argv);
-
-console.log(' int: %j', program.integer);
-console.log(' float: %j', program.float);
-console.log(' optional: %j', program.optional);
-program.range = program.range || [];
-console.log(' range: %j..%j', program.range[0], program.range[1]);
-console.log(' list: %j', program.list);
-console.log(' collect: %j', program.collect);
-console.log(' verbosity: %j', program.verbose);
-console.log(' args: %j', program.args);
-```
-
-## Regular Expression
-```js
-program
-  .version('0.1.0')
-  .option('-s --size <size>', 'Pizza size', /^(large|medium|small)$/i, 'medium')
-  .option('-d --drink [drink]', 'Drink', /^(coke|pepsi|izze)$/i)
-  .parse(process.argv);
-
-console.log(' size: %j', program.size);
-console.log(' drink: %j', program.drink);
-```
-
-## Variadic arguments
-
- The last argument of a command can be variadic, and only the last argument.  To make an argument variadic you have to
- append `...` to the argument name.  Here is an example:
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .command('rmdir <dir> [otherDirs...]')
-  .action(function (dir, otherDirs) {
-    console.log('rmdir %s', dir);
-    if (otherDirs) {
-      otherDirs.forEach(function (oDir) {
-        console.log('rmdir %s', oDir);
-      });
-    }
-  });
-
-program.parse(process.argv);
-```
-
- An `Array` is used for the value of a variadic argument.  This applies to `program.args` as well as the argument passed
- to your action as demonstrated above.
-
-## Specify the argument syntax
-
-```js
-#!/usr/bin/env node
-
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .arguments('<cmd> [env]')
-  .action(function (cmd, env) {
-     cmdValue = cmd;
-     envValue = env;
-  });
-
-program.parse(process.argv);
-
-if (typeof cmdValue === 'undefined') {
-   console.error('no command given!');
-   process.exit(1);
-}
-console.log('command:', cmdValue);
-console.log('environment:', envValue || "no environment given");
-```
-Angled brackets (e.g. `<cmd>`) indicate required input. Square brackets (e.g. `[env]`) indicate optional input.
-
-## Git-style sub-commands
-
-```js
-// file: ./examples/pm
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .command('install [name]', 'install one or more packages')
-  .command('search [query]', 'search with optional query')
-  .command('list', 'list packages installed', {isDefault: true})
-  .parse(process.argv);
-```
-
-When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools.  
-The commander will try to search the executables in the directory of the entry script (like `./examples/pm`) with the name `program-command`, like `pm-install`, `pm-search`.
-
-Options can be passed with the call to `.command()`. Specifying `true` for `opts.noHelp` will remove the subcommand from the generated help output. Specifying `true` for `opts.isDefault` will run the subcommand if no other subcommand is specified.
-
-If the program is designed to be installed globally, make sure the executables have proper modes, like `755`.
-
-### `--harmony`
-
-You can enable `--harmony` option in two ways:
-* Use `#! /usr/bin/env node --harmony` in the sub-commands scripts. Note some os version don’t support this pattern.
-* Use the `--harmony` option when call the command, like `node --harmony examples/pm publish`. The `--harmony` option will be preserved when spawning sub-command process.
-
-## Automated --help
-
- The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
-
-```  
-$ ./examples/pizza --help
-Usage: pizza [options]
-
-An application for pizzas ordering
-
-Options:
-  -h, --help           output usage information
-  -V, --version        output the version number
-  -p, --peppers        Add peppers
-  -P, --pineapple      Add pineapple
-  -b, --bbq            Add bbq sauce
-  -c, --cheese <type>  Add the specified type of cheese [marble]
-  -C, --no-cheese      You do not want any cheese
-```
-
-## Custom help
-
- You can display arbitrary `-h, --help` information
- by listening for "--help". Commander will automatically
- exit once you are done so that the remainder of your program
- does not execute causing undesired behaviors, for example
- in the following executable "stuff" will not output when
- `--help` is used.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .option('-f, --foo', 'enable some foo')
-  .option('-b, --bar', 'enable some bar')
-  .option('-B, --baz', 'enable some baz');
-
-// must be before .parse() since
-// node's emit() is immediate
-
-program.on('--help', function(){
-  console.log('')
-  console.log('Examples:');
-  console.log('  $ custom-help --help');
-  console.log('  $ custom-help -h');
-});
-
-program.parse(process.argv);
-
-console.log('stuff');
-```
-
-Yields the following help output when `node script-name.js -h` or `node script-name.js --help` are run:
-
-```
-Usage: custom-help [options]
-
-Options:
-  -h, --help     output usage information
-  -V, --version  output the version number
-  -f, --foo      enable some foo
-  -b, --bar      enable some bar
-  -B, --baz      enable some baz
-
-Examples:
-  $ custom-help --help
-  $ custom-help -h
-```
-
-## .outputHelp(cb)
-
-Output help information without exiting.
-Optional callback cb allows post-processing of help text before it is displayed.
-
-If you want to display help by default (e.g. if no command was provided), you can use something like:
-
-```js
-var program = require('commander');
-var colors = require('colors');
-
-program
-  .version('0.1.0')
-  .command('getstream [url]', 'get stream URL')
-  .parse(process.argv);
-
-if (!process.argv.slice(2).length) {
-  program.outputHelp(make_red);
-}
-
-function make_red(txt) {
-  return colors.red(txt); //display the help text in red on the console
-}
-```
-
-## .help(cb)
-
-  Output help information and exit immediately.
-  Optional callback cb allows post-processing of help text before it is displayed.
-
-
-## Custom event listeners
- You can execute custom actions by listening to command and option events.
-
-```js
-program.on('option:verbose', function () {
-  process.env.VERBOSE = this.verbose;
-});
-
-// error on unknown commands
-program.on('command:*', function () {
-  console.error('Invalid command: %s\nSee --help for a list of available commands.', program.args.join(' '));
-  process.exit(1);
-});
-```
-
-## Examples
-
-```js
-var program = require('commander');
-
-program
-  .version('0.1.0')
-  .option('-C, --chdir <path>', 'change the working directory')
-  .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
-  .option('-T, --no-tests', 'ignore test hook');
-
-program
-  .command('setup [env]')
-  .description('run setup commands for all envs')
-  .option("-s, --setup_mode [mode]", "Which setup mode to use")
-  .action(function(env, options){
-    var mode = options.setup_mode || "normal";
-    env = env || 'all';
-    console.log('setup for %s env(s) with %s mode', env, mode);
-  });
-
-program
-  .command('exec <cmd>')
-  .alias('ex')
-  .description('execute the given remote cmd')
-  .option("-e, --exec_mode <mode>", "Which exec mode to use")
-  .action(function(cmd, options){
-    console.log('exec "%s" using %s mode', cmd, options.exec_mode);
-  }).on('--help', function() {
-    console.log('');
-    console.log('Examples:');
-    console.log('');
-    console.log('  $ deploy exec sequential');
-    console.log('  $ deploy exec async');
-  });
-
-program
-  .command('*')
-  .action(function(env){
-    console.log('deploying "%s"', env);
-  });
-
-program.parse(process.argv);
-```
-
-More Demos can be found in the [examples](https://github.com/tj/commander.js/tree/master/examples) directory.
-
-## License
-
-[MIT](https://github.com/tj/commander.js/blob/master/LICENSE)
diff --git a/node_modules/commander/index.js b/node_modules/commander/index.js
deleted file mode 100644
index ec1d61d..0000000
--- a/node_modules/commander/index.js
+++ /dev/null
@@ -1,1224 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter;
-var spawn = require('child_process').spawn;
-var path = require('path');
-var dirname = path.dirname;
-var basename = path.basename;
-var fs = require('fs');
-
-/**
- * Inherit `Command` from `EventEmitter.prototype`.
- */
-
-require('util').inherits(Command, EventEmitter);
-
-/**
- * Expose the root command.
- */
-
-exports = module.exports = new Command();
-
-/**
- * Expose `Command`.
- */
-
-exports.Command = Command;
-
-/**
- * Expose `Option`.
- */
-
-exports.Option = Option;
-
-/**
- * Initialize a new `Option` with the given `flags` and `description`.
- *
- * @param {String} flags
- * @param {String} description
- * @api public
- */
-
-function Option(flags, description) {
-  this.flags = flags;
-  this.required = flags.indexOf('<') >= 0;
-  this.optional = flags.indexOf('[') >= 0;
-  this.bool = flags.indexOf('-no-') === -1;
-  flags = flags.split(/[ ,|]+/);
-  if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();
-  this.long = flags.shift();
-  this.description = description || '';
-}
-
-/**
- * Return option name.
- *
- * @return {String}
- * @api private
- */
-
-Option.prototype.name = function() {
-  return this.long
-    .replace('--', '')
-    .replace('no-', '');
-};
-
-/**
- * Return option name, in a camelcase format that can be used
- * as a object attribute key.
- *
- * @return {String}
- * @api private
- */
-
-Option.prototype.attributeName = function() {
-  return camelcase(this.name());
-};
-
-/**
- * Check if `arg` matches the short or long flag.
- *
- * @param {String} arg
- * @return {Boolean}
- * @api private
- */
-
-Option.prototype.is = function(arg) {
-  return this.short === arg || this.long === arg;
-};
-
-/**
- * Initialize a new `Command`.
- *
- * @param {String} name
- * @api public
- */
-
-function Command(name) {
-  this.commands = [];
-  this.options = [];
-  this._execs = {};
-  this._allowUnknownOption = false;
-  this._args = [];
-  this._name = name || '';
-}
-
-/**
- * Add command `name`.
- *
- * The `.action()` callback is invoked when the
- * command `name` is specified via __ARGV__,
- * and the remaining arguments are applied to the
- * function for access.
- *
- * When the `name` is "*" an un-matched command
- * will be passed as the first arg, followed by
- * the rest of __ARGV__ remaining.
- *
- * Examples:
- *
- *      program
- *        .version('0.0.1')
- *        .option('-C, --chdir <path>', 'change the working directory')
- *        .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
- *        .option('-T, --no-tests', 'ignore test hook')
- *
- *      program
- *        .command('setup')
- *        .description('run remote setup commands')
- *        .action(function() {
- *          console.log('setup');
- *        });
- *
- *      program
- *        .command('exec <cmd>')
- *        .description('run the given remote command')
- *        .action(function(cmd) {
- *          console.log('exec "%s"', cmd);
- *        });
- *
- *      program
- *        .command('teardown <dir> [otherDirs...]')
- *        .description('run teardown commands')
- *        .action(function(dir, otherDirs) {
- *          console.log('dir "%s"', dir);
- *          if (otherDirs) {
- *            otherDirs.forEach(function (oDir) {
- *              console.log('dir "%s"', oDir);
- *            });
- *          }
- *        });
- *
- *      program
- *        .command('*')
- *        .description('deploy the given env')
- *        .action(function(env) {
- *          console.log('deploying "%s"', env);
- *        });
- *
- *      program.parse(process.argv);
-  *
- * @param {String} name
- * @param {String} [desc] for git-style sub-commands
- * @return {Command} the new command
- * @api public
- */
-
-Command.prototype.command = function(name, desc, opts) {
-  if (typeof desc === 'object' && desc !== null) {
-    opts = desc;
-    desc = null;
-  }
-  opts = opts || {};
-  var args = name.split(/ +/);
-  var cmd = new Command(args.shift());
-
-  if (desc) {
-    cmd.description(desc);
-    this.executables = true;
-    this._execs[cmd._name] = true;
-    if (opts.isDefault) this.defaultExecutable = cmd._name;
-  }
-  cmd._noHelp = !!opts.noHelp;
-  this.commands.push(cmd);
-  cmd.parseExpectedArgs(args);
-  cmd.parent = this;
-
-  if (desc) return this;
-  return cmd;
-};
-
-/**
- * Define argument syntax for the top-level command.
- *
- * @api public
- */
-
-Command.prototype.arguments = function(desc) {
-  return this.parseExpectedArgs(desc.split(/ +/));
-};
-
-/**
- * Add an implicit `help [cmd]` subcommand
- * which invokes `--help` for the given command.
- *
- * @api private
- */
-
-Command.prototype.addImplicitHelpCommand = function() {
-  this.command('help [cmd]', 'display help for [cmd]');
-};
-
-/**
- * Parse expected `args`.
- *
- * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parseExpectedArgs = function(args) {
-  if (!args.length) return;
-  var self = this;
-  args.forEach(function(arg) {
-    var argDetails = {
-      required: false,
-      name: '',
-      variadic: false
-    };
-
-    switch (arg[0]) {
-      case '<':
-        argDetails.required = true;
-        argDetails.name = arg.slice(1, -1);
-        break;
-      case '[':
-        argDetails.name = arg.slice(1, -1);
-        break;
-    }
-
-    if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {
-      argDetails.variadic = true;
-      argDetails.name = argDetails.name.slice(0, -3);
-    }
-    if (argDetails.name) {
-      self._args.push(argDetails);
-    }
-  });
-  return this;
-};
-
-/**
- * Register callback `fn` for the command.
- *
- * Examples:
- *
- *      program
- *        .command('help')
- *        .description('display verbose help')
- *        .action(function() {
- *           // output help here
- *        });
- *
- * @param {Function} fn
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.action = function(fn) {
-  var self = this;
-  var listener = function(args, unknown) {
-    // Parse any so-far unknown options
-    args = args || [];
-    unknown = unknown || [];
-
-    var parsed = self.parseOptions(unknown);
-
-    // Output help if necessary
-    outputHelpIfNecessary(self, parsed.unknown);
-
-    // If there are still any unknown options, then we simply
-    // die, unless someone asked for help, in which case we give it
-    // to them, and then we die.
-    if (parsed.unknown.length > 0) {
-      self.unknownOption(parsed.unknown[0]);
-    }
-
-    // Leftover arguments need to be pushed back. Fixes issue #56
-    if (parsed.args.length) args = parsed.args.concat(args);
-
-    self._args.forEach(function(arg, i) {
-      if (arg.required && args[i] == null) {
-        self.missingArgument(arg.name);
-      } else if (arg.variadic) {
-        if (i !== self._args.length - 1) {
-          self.variadicArgNotLast(arg.name);
-        }
-
-        args[i] = args.splice(i);
-      }
-    });
-
-    // Always append ourselves to the end of the arguments,
-    // to make sure we match the number of arguments the user
-    // expects
-    if (self._args.length) {
-      args[self._args.length] = self;
-    } else {
-      args.push(self);
-    }
-
-    fn.apply(self, args);
-  };
-  var parent = this.parent || this;
-  var name = parent === this ? '*' : this._name;
-  parent.on('command:' + name, listener);
-  if (this._alias) parent.on('command:' + this._alias, listener);
-  return this;
-};
-
-/**
- * Define option with `flags`, `description` and optional
- * coercion `fn`.
- *
- * The `flags` string should contain both the short and long flags,
- * separated by comma, a pipe or space. The following are all valid
- * all will output this way when `--help` is used.
- *
- *    "-p, --pepper"
- *    "-p|--pepper"
- *    "-p --pepper"
- *
- * Examples:
- *
- *     // simple boolean defaulting to false
- *     program.option('-p, --pepper', 'add pepper');
- *
- *     --pepper
- *     program.pepper
- *     // => Boolean
- *
- *     // simple boolean defaulting to true
- *     program.option('-C, --no-cheese', 'remove cheese');
- *
- *     program.cheese
- *     // => true
- *
- *     --no-cheese
- *     program.cheese
- *     // => false
- *
- *     // required argument
- *     program.option('-C, --chdir <path>', 'change the working directory');
- *
- *     --chdir /tmp
- *     program.chdir
- *     // => "/tmp"
- *
- *     // optional argument
- *     program.option('-c, --cheese [type]', 'add cheese [marble]');
- *
- * @param {String} flags
- * @param {String} description
- * @param {Function|*} [fn] or default
- * @param {*} [defaultValue]
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.option = function(flags, description, fn, defaultValue) {
-  var self = this,
-    option = new Option(flags, description),
-    oname = option.name(),
-    name = option.attributeName();
-
-  // default as 3rd arg
-  if (typeof fn !== 'function') {
-    if (fn instanceof RegExp) {
-      var regex = fn;
-      fn = function(val, def) {
-        var m = regex.exec(val);
-        return m ? m[0] : def;
-      };
-    } else {
-      defaultValue = fn;
-      fn = null;
-    }
-  }
-
-  // preassign default value only for --no-*, [optional], or <required>
-  if (!option.bool || option.optional || option.required) {
-    // when --no-* we make sure default is true
-    if (!option.bool) defaultValue = true;
-    // preassign only if we have a default
-    if (defaultValue !== undefined) {
-      self[name] = defaultValue;
-      option.defaultValue = defaultValue;
-    }
-  }
-
-  // register the option
-  this.options.push(option);
-
-  // when it's passed assign the value
-  // and conditionally invoke the callback
-  this.on('option:' + oname, function(val) {
-    // coercion
-    if (val !== null && fn) {
-      val = fn(val, self[name] === undefined ? defaultValue : self[name]);
-    }
-
-    // unassigned or bool
-    if (typeof self[name] === 'boolean' || typeof self[name] === 'undefined') {
-      // if no value, bool true, and we have a default, then use it!
-      if (val == null) {
-        self[name] = option.bool
-          ? defaultValue || true
-          : false;
-      } else {
-        self[name] = val;
-      }
-    } else if (val !== null) {
-      // reassign
-      self[name] = val;
-    }
-  });
-
-  return this;
-};
-
-/**
- * Allow unknown options on the command line.
- *
- * @param {Boolean} arg if `true` or omitted, no error will be thrown
- * for unknown options.
- * @api public
- */
-Command.prototype.allowUnknownOption = function(arg) {
-  this._allowUnknownOption = arguments.length === 0 || arg;
-  return this;
-};
-
-/**
- * Parse `argv`, settings options and invoking commands when defined.
- *
- * @param {Array} argv
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parse = function(argv) {
-  // implicit help
-  if (this.executables) this.addImplicitHelpCommand();
-
-  // store raw args
-  this.rawArgs = argv;
-
-  // guess name
-  this._name = this._name || basename(argv[1], '.js');
-
-  // github-style sub-commands with no sub-command
-  if (this.executables && argv.length < 3 && !this.defaultExecutable) {
-    // this user needs help
-    argv.push('--help');
-  }
-
-  // process argv
-  var parsed = this.parseOptions(this.normalize(argv.slice(2)));
-  var args = this.args = parsed.args;
-
-  var result = this.parseArgs(this.args, parsed.unknown);
-
-  // executable sub-commands
-  var name = result.args[0];
-
-  var aliasCommand = null;
-  // check alias of sub commands
-  if (name) {
-    aliasCommand = this.commands.filter(function(command) {
-      return command.alias() === name;
-    })[0];
-  }
-
-  if (this._execs[name] === true) {
-    return this.executeSubCommand(argv, args, parsed.unknown);
-  } else if (aliasCommand) {
-    // is alias of a subCommand
-    args[0] = aliasCommand._name;
-    return this.executeSubCommand(argv, args, parsed.unknown);
-  } else if (this.defaultExecutable) {
-    // use the default subcommand
-    args.unshift(this.defaultExecutable);
-    return this.executeSubCommand(argv, args, parsed.unknown);
-  }
-
-  return result;
-};
-
-/**
- * Execute a sub-command executable.
- *
- * @param {Array} argv
- * @param {Array} args
- * @param {Array} unknown
- * @api private
- */
-
-Command.prototype.executeSubCommand = function(argv, args, unknown) {
-  args = args.concat(unknown);
-
-  if (!args.length) this.help();
-  if (args[0] === 'help' && args.length === 1) this.help();
-
-  // <cmd> --help
-  if (args[0] === 'help') {
-    args[0] = args[1];
-    args[1] = '--help';
-  }
-
-  // executable
-  var f = argv[1];
-  // name of the subcommand, link `pm-install`
-  var bin = basename(f, path.extname(f)) + '-' + args[0];
-
-  // In case of globally installed, get the base dir where executable
-  //  subcommand file should be located at
-  var baseDir;
-
-  var resolvedLink = fs.realpathSync(f);
-
-  baseDir = dirname(resolvedLink);
-
-  // prefer local `./<bin>` to bin in the $PATH
-  var localBin = path.join(baseDir, bin);
-
-  // whether bin file is a js script with explicit `.js` or `.ts` extension
-  var isExplicitJS = false;
-  if (exists(localBin + '.js')) {
-    bin = localBin + '.js';
-    isExplicitJS = true;
-  } else if (exists(localBin + '.ts')) {
-    bin = localBin + '.ts';
-    isExplicitJS = true;
-  } else if (exists(localBin)) {
-    bin = localBin;
-  }
-
-  args = args.slice(1);
-
-  var proc;
-  if (process.platform !== 'win32') {
-    if (isExplicitJS) {
-      args.unshift(bin);
-      // add executable arguments to spawn
-      args = (process.execArgv || []).concat(args);
-
-      proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] });
-    } else {
-      proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] });
-    }
-  } else {
-    args.unshift(bin);
-    proc = spawn(process.execPath, args, { stdio: 'inherit' });
-  }
-
-  var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP'];
-  signals.forEach(function(signal) {
-    process.on(signal, function() {
-      if (proc.killed === false && proc.exitCode === null) {
-        proc.kill(signal);
-      }
-    });
-  });
-  proc.on('close', process.exit.bind(process));
-  proc.on('error', function(err) {
-    if (err.code === 'ENOENT') {
-      console.error('error: %s(1) does not exist, try --help', bin);
-    } else if (err.code === 'EACCES') {
-      console.error('error: %s(1) not executable. try chmod or run with root', bin);
-    }
-    process.exit(1);
-  });
-
-  // Store the reference to the child process
-  this.runningCommand = proc;
-};
-
-/**
- * Normalize `args`, splitting joined short flags. For example
- * the arg "-abc" is equivalent to "-a -b -c".
- * This also normalizes equal sign and splits "--abc=def" into "--abc def".
- *
- * @param {Array} args
- * @return {Array}
- * @api private
- */
-
-Command.prototype.normalize = function(args) {
-  var ret = [],
-    arg,
-    lastOpt,
-    index;
-
-  for (var i = 0, len = args.length; i < len; ++i) {
-    arg = args[i];
-    if (i > 0) {
-      lastOpt = this.optionFor(args[i - 1]);
-    }
-
-    if (arg === '--') {
-      // Honor option terminator
-      ret = ret.concat(args.slice(i));
-      break;
-    } else if (lastOpt && lastOpt.required) {
-      ret.push(arg);
-    } else if (arg.length > 1 && arg[0] === '-' && arg[1] !== '-') {
-      arg.slice(1).split('').forEach(function(c) {
-        ret.push('-' + c);
-      });
-    } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {
-      ret.push(arg.slice(0, index), arg.slice(index + 1));
-    } else {
-      ret.push(arg);
-    }
-  }
-
-  return ret;
-};
-
-/**
- * Parse command `args`.
- *
- * When listener(s) are available those
- * callbacks are invoked, otherwise the "*"
- * event is emitted and those actions are invoked.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api private
- */
-
-Command.prototype.parseArgs = function(args, unknown) {
-  var name;
-
-  if (args.length) {
-    name = args[0];
-    if (this.listeners('command:' + name).length) {
-      this.emit('command:' + args.shift(), args, unknown);
-    } else {
-      this.emit('command:*', args);
-    }
-  } else {
-    outputHelpIfNecessary(this, unknown);
-
-    // If there were no args and we have unknown options,
-    // then they are extraneous and we need to error.
-    if (unknown.length > 0) {
-      this.unknownOption(unknown[0]);
-    }
-    if (this.commands.length === 0 &&
-        this._args.filter(function(a) { return a.required; }).length === 0) {
-      this.emit('command:*');
-    }
-  }
-
-  return this;
-};
-
-/**
- * Return an option matching `arg` if any.
- *
- * @param {String} arg
- * @return {Option}
- * @api private
- */
-
-Command.prototype.optionFor = function(arg) {
-  for (var i = 0, len = this.options.length; i < len; ++i) {
-    if (this.options[i].is(arg)) {
-      return this.options[i];
-    }
-  }
-};
-
-/**
- * Parse options from `argv` returning `argv`
- * void of these options.
- *
- * @param {Array} argv
- * @return {Array}
- * @api public
- */
-
-Command.prototype.parseOptions = function(argv) {
-  var args = [],
-    len = argv.length,
-    literal,
-    option,
-    arg;
-
-  var unknownOptions = [];
-
-  // parse options
-  for (var i = 0; i < len; ++i) {
-    arg = argv[i];
-
-    // literal args after --
-    if (literal) {
-      args.push(arg);
-      continue;
-    }
-
-    if (arg === '--') {
-      literal = true;
-      continue;
-    }
-
-    // find matching Option
-    option = this.optionFor(arg);
-
-    // option is defined
-    if (option) {
-      // requires arg
-      if (option.required) {
-        arg = argv[++i];
-        if (arg == null) return this.optionMissingArgument(option);
-        this.emit('option:' + option.name(), arg);
-      // optional arg
-      } else if (option.optional) {
-        arg = argv[i + 1];
-        if (arg == null || (arg[0] === '-' && arg !== '-')) {
-          arg = null;
-        } else {
-          ++i;
-        }
-        this.emit('option:' + option.name(), arg);
-      // bool
-      } else {
-        this.emit('option:' + option.name());
-      }
-      continue;
-    }
-
-    // looks like an option
-    if (arg.length > 1 && arg[0] === '-') {
-      unknownOptions.push(arg);
-
-      // If the next argument looks like it might be
-      // an argument for this option, we pass it on.
-      // If it isn't, then it'll simply be ignored
-      if ((i + 1) < argv.length && argv[i + 1][0] !== '-') {
-        unknownOptions.push(argv[++i]);
-      }
-      continue;
-    }
-
-    // arg
-    args.push(arg);
-  }
-
-  return { args: args, unknown: unknownOptions };
-};
-
-/**
- * Return an object containing options as key-value pairs
- *
- * @return {Object}
- * @api public
- */
-Command.prototype.opts = function() {
-  var result = {},
-    len = this.options.length;
-
-  for (var i = 0; i < len; i++) {
-    var key = this.options[i].attributeName();
-    result[key] = key === this._versionOptionName ? this._version : this[key];
-  }
-  return result;
-};
-
-/**
- * Argument `name` is missing.
- *
- * @param {String} name
- * @api private
- */
-
-Command.prototype.missingArgument = function(name) {
-  console.error("error: missing required argument `%s'", name);
-  process.exit(1);
-};
-
-/**
- * `Option` is missing an argument, but received `flag` or nothing.
- *
- * @param {String} option
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.optionMissingArgument = function(option, flag) {
-  if (flag) {
-    console.error("error: option `%s' argument missing, got `%s'", option.flags, flag);
-  } else {
-    console.error("error: option `%s' argument missing", option.flags);
-  }
-  process.exit(1);
-};
-
-/**
- * Unknown option `flag`.
- *
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.unknownOption = function(flag) {
-  if (this._allowUnknownOption) return;
-  console.error("error: unknown option `%s'", flag);
-  process.exit(1);
-};
-
-/**
- * Variadic argument with `name` is not the last argument as required.
- *
- * @param {String} name
- * @api private
- */
-
-Command.prototype.variadicArgNotLast = function(name) {
-  console.error("error: variadic arguments must be last `%s'", name);
-  process.exit(1);
-};
-
-/**
- * Set the program version to `str`.
- *
- * This method auto-registers the "-V, --version" flag
- * which will print the version number when passed.
- *
- * @param {String} str
- * @param {String} [flags]
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.version = function(str, flags) {
-  if (arguments.length === 0) return this._version;
-  this._version = str;
-  flags = flags || '-V, --version';
-  var versionOption = new Option(flags, 'output the version number');
-  this._versionOptionName = versionOption.long.substr(2) || 'version';
-  this.options.push(versionOption);
-  this.on('option:' + this._versionOptionName, function() {
-    process.stdout.write(str + '\n');
-    process.exit(0);
-  });
-  return this;
-};
-
-/**
- * Set the description to `str`.
- *
- * @param {String} str
- * @param {Object} argsDescription
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.description = function(str, argsDescription) {
-  if (arguments.length === 0) return this._description;
-  this._description = str;
-  this._argsDescription = argsDescription;
-  return this;
-};
-
-/**
- * Set an alias for the command
- *
- * @param {String} alias
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.alias = function(alias) {
-  var command = this;
-  if (this.commands.length !== 0) {
-    command = this.commands[this.commands.length - 1];
-  }
-
-  if (arguments.length === 0) return command._alias;
-
-  if (alias === command._name) throw new Error('Command alias can\'t be the same as its name');
-
-  command._alias = alias;
-  return this;
-};
-
-/**
- * Set / get the command usage `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.usage = function(str) {
-  var args = this._args.map(function(arg) {
-    return humanReadableArgName(arg);
-  });
-
-  var usage = '[options]' +
-    (this.commands.length ? ' [command]' : '') +
-    (this._args.length ? ' ' + args.join(' ') : '');
-
-  if (arguments.length === 0) return this._usage || usage;
-  this._usage = str;
-
-  return this;
-};
-
-/**
- * Get or set the name of the command
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.name = function(str) {
-  if (arguments.length === 0) return this._name;
-  this._name = str;
-  return this;
-};
-
-/**
- * Return prepared commands.
- *
- * @return {Array}
- * @api private
- */
-
-Command.prototype.prepareCommands = function() {
-  return this.commands.filter(function(cmd) {
-    return !cmd._noHelp;
-  }).map(function(cmd) {
-    var args = cmd._args.map(function(arg) {
-      return humanReadableArgName(arg);
-    }).join(' ');
-
-    return [
-      cmd._name +
-        (cmd._alias ? '|' + cmd._alias : '') +
-        (cmd.options.length ? ' [options]' : '') +
-        (args ? ' ' + args : ''),
-      cmd._description
-    ];
-  });
-};
-
-/**
- * Return the largest command length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestCommandLength = function() {
-  var commands = this.prepareCommands();
-  return commands.reduce(function(max, command) {
-    return Math.max(max, command[0].length);
-  }, 0);
-};
-
-/**
- * Return the largest option length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestOptionLength = function() {
-  var options = [].slice.call(this.options);
-  options.push({
-    flags: '-h, --help'
-  });
-  return options.reduce(function(max, option) {
-    return Math.max(max, option.flags.length);
-  }, 0);
-};
-
-/**
- * Return the largest arg length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestArgLength = function() {
-  return this._args.reduce(function(max, arg) {
-    return Math.max(max, arg.name.length);
-  }, 0);
-};
-
-/**
- * Return the pad width.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.padWidth = function() {
-  var width = this.largestOptionLength();
-  if (this._argsDescription && this._args.length) {
-    if (this.largestArgLength() > width) {
-      width = this.largestArgLength();
-    }
-  }
-
-  if (this.commands && this.commands.length) {
-    if (this.largestCommandLength() > width) {
-      width = this.largestCommandLength();
-    }
-  }
-
-  return width;
-};
-
-/**
- * Return help for options.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.optionHelp = function() {
-  var width = this.padWidth();
-
-  // Append the help information
-  return this.options.map(function(option) {
-    return pad(option.flags, width) + '  ' + option.description +
-      ((option.bool && option.defaultValue !== undefined) ? ' (default: ' + JSON.stringify(option.defaultValue) + ')' : '');
-  }).concat([pad('-h, --help', width) + '  ' + 'output usage information'])
-    .join('\n');
-};
-
-/**
- * Return command help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.commandHelp = function() {
-  if (!this.commands.length) return '';
-
-  var commands = this.prepareCommands();
-  var width = this.padWidth();
-
-  return [
-    'Commands:',
-    commands.map(function(cmd) {
-      var desc = cmd[1] ? '  ' + cmd[1] : '';
-      return (desc ? pad(cmd[0], width) : cmd[0]) + desc;
-    }).join('\n').replace(/^/gm, '  '),
-    ''
-  ].join('\n');
-};
-
-/**
- * Return program help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.helpInformation = function() {
-  var desc = [];
-  if (this._description) {
-    desc = [
-      this._description,
-      ''
-    ];
-
-    var argsDescription = this._argsDescription;
-    if (argsDescription && this._args.length) {
-      var width = this.padWidth();
-      desc.push('Arguments:');
-      desc.push('');
-      this._args.forEach(function(arg) {
-        desc.push('  ' + pad(arg.name, width) + '  ' + argsDescription[arg.name]);
-      });
-      desc.push('');
-    }
-  }
-
-  var cmdName = this._name;
-  if (this._alias) {
-    cmdName = cmdName + '|' + this._alias;
-  }
-  var usage = [
-    'Usage: ' + cmdName + ' ' + this.usage(),
-    ''
-  ];
-
-  var cmds = [];
-  var commandHelp = this.commandHelp();
-  if (commandHelp) cmds = [commandHelp];
-
-  var options = [
-    'Options:',
-    '' + this.optionHelp().replace(/^/gm, '  '),
-    ''
-  ];
-
-  return usage
-    .concat(desc)
-    .concat(options)
-    .concat(cmds)
-    .join('\n');
-};
-
-/**
- * Output help information for this command
- *
- * @api public
- */
-
-Command.prototype.outputHelp = function(cb) {
-  if (!cb) {
-    cb = function(passthru) {
-      return passthru;
-    };
-  }
-  process.stdout.write(cb(this.helpInformation()));
-  this.emit('--help');
-};
-
-/**
- * Output help information and exit.
- *
- * @api public
- */
-
-Command.prototype.help = function(cb) {
-  this.outputHelp(cb);
-  process.exit();
-};
-
-/**
- * Camel-case the given `flag`
- *
- * @param {String} flag
- * @return {String}
- * @api private
- */
-
-function camelcase(flag) {
-  return flag.split('-').reduce(function(str, word) {
-    return str + word[0].toUpperCase() + word.slice(1);
-  });
-}
-
-/**
- * Pad `str` to `width`.
- *
- * @param {String} str
- * @param {Number} width
- * @return {String}
- * @api private
- */
-
-function pad(str, width) {
-  var len = Math.max(0, width - str.length);
-  return str + Array(len + 1).join(' ');
-}
-
-/**
- * Output help information if necessary
- *
- * @param {Command} command to output help for
- * @param {Array} array of options to search for -h or --help
- * @api private
- */
-
-function outputHelpIfNecessary(cmd, options) {
-  options = options || [];
-  for (var i = 0; i < options.length; i++) {
-    if (options[i] === '--help' || options[i] === '-h') {
-      cmd.outputHelp();
-      process.exit(0);
-    }
-  }
-}
-
-/**
- * Takes an argument an returns its human readable equivalent for help usage.
- *
- * @param {Object} arg
- * @return {String}
- * @api private
- */
-
-function humanReadableArgName(arg) {
-  var nameOutput = arg.name + (arg.variadic === true ? '...' : '');
-
-  return arg.required
-    ? '<' + nameOutput + '>'
-    : '[' + nameOutput + ']';
-}
-
-// for versions before node v0.8 when there weren't `fs.existsSync`
-function exists(file) {
-  try {
-    if (fs.statSync(file).isFile()) {
-      return true;
-    }
-  } catch (e) {
-    return false;
-  }
-}
diff --git a/node_modules/commander/package.json b/node_modules/commander/package.json
deleted file mode 100644
index 0023c5c..0000000
--- a/node_modules/commander/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "name": "commander",
-  "version": "2.20.3",
-  "description": "the complete solution for node.js command-line programs",
-  "keywords": [
-    "commander",
-    "command",
-    "option",
-    "parser"
-  ],
-  "author": "TJ Holowaychuk <tj@vision-media.ca>",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/tj/commander.js.git"
-  },
-  "scripts": {
-    "lint": "eslint index.js",
-    "test": "node test/run.js && npm run test-typings",
-    "test-typings": "tsc -p tsconfig.json"
-  },
-  "main": "index",
-  "files": [
-    "index.js",
-    "typings/index.d.ts"
-  ],
-  "dependencies": {},
-  "devDependencies": {
-    "@types/node": "^12.7.8",
-    "eslint": "^6.4.0",
-    "should": "^13.2.3",
-    "sinon": "^7.5.0",
-    "standard": "^14.3.1",
-    "ts-node": "^8.4.1",
-    "typescript": "^3.6.3"
-  },
-  "typings": "typings/index.d.ts"
-}
diff --git a/node_modules/commander/typings/index.d.ts b/node_modules/commander/typings/index.d.ts
deleted file mode 100644
index bcda277..0000000
--- a/node_modules/commander/typings/index.d.ts
+++ /dev/null
@@ -1,310 +0,0 @@
-// Type definitions for commander 2.11
-// Project: https://github.com/visionmedia/commander.js
-// Definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-declare namespace local {
-
-  class Option {
-    flags: string;
-    required: boolean;
-    optional: boolean;
-    bool: boolean;
-    short?: string;
-    long: string;
-    description: string;
-
-    /**
-     * Initialize a new `Option` with the given `flags` and `description`.
-     *
-     * @param {string} flags
-     * @param {string} [description]
-     */
-    constructor(flags: string, description?: string);
-  }
-
-  class Command extends NodeJS.EventEmitter {
-    [key: string]: any;
-
-    args: string[];
-
-    /**
-     * Initialize a new `Command`.
-     *
-     * @param {string} [name]
-     */
-    constructor(name?: string);
-
-    /**
-     * Set the program version to `str`.
-     *
-     * This method auto-registers the "-V, --version" flag
-     * which will print the version number when passed.
-     *
-     * @param {string} str
-     * @param {string} [flags]
-     * @returns {Command} for chaining
-     */
-    version(str: string, flags?: string): Command;
-
-    /**
-     * Add command `name`.
-     *
-     * The `.action()` callback is invoked when the
-     * command `name` is specified via __ARGV__,
-     * and the remaining arguments are applied to the
-     * function for access.
-     *
-     * When the `name` is "*" an un-matched command
-     * will be passed as the first arg, followed by
-     * the rest of __ARGV__ remaining.
-     *
-     * @example
-     *      program
-     *        .version('0.0.1')
-     *        .option('-C, --chdir <path>', 'change the working directory')
-     *        .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
-     *        .option('-T, --no-tests', 'ignore test hook')
-     *
-     *      program
-     *        .command('setup')
-     *        .description('run remote setup commands')
-     *        .action(function() {
-     *          console.log('setup');
-     *        });
-     *
-     *      program
-     *        .command('exec <cmd>')
-     *        .description('run the given remote command')
-     *        .action(function(cmd) {
-     *          console.log('exec "%s"', cmd);
-     *        });
-     *
-     *      program
-     *        .command('teardown <dir> [otherDirs...]')
-     *        .description('run teardown commands')
-     *        .action(function(dir, otherDirs) {
-     *          console.log('dir "%s"', dir);
-     *          if (otherDirs) {
-     *            otherDirs.forEach(function (oDir) {
-     *              console.log('dir "%s"', oDir);
-     *            });
-     *          }
-     *        });
-     *
-     *      program
-     *        .command('*')
-     *        .description('deploy the given env')
-     *        .action(function(env) {
-     *          console.log('deploying "%s"', env);
-     *        });
-     *
-     *      program.parse(process.argv);
-     *
-     * @param {string} name
-     * @param {string} [desc] for git-style sub-commands
-     * @param {CommandOptions} [opts] command options
-     * @returns {Command} the new command
-     */
-    command(name: string, desc?: string, opts?: commander.CommandOptions): Command;
-
-    /**
-     * Define argument syntax for the top-level command.
-     *
-     * @param {string} desc
-     * @returns {Command} for chaining
-     */
-    arguments(desc: string): Command;
-
-    /**
-     * Parse expected `args`.
-     *
-     * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
-     *
-     * @param {string[]} args
-     * @returns {Command} for chaining
-     */
-    parseExpectedArgs(args: string[]): Command;
-
-    /**
-     * Register callback `fn` for the command.
-     *
-     * @example
-     *      program
-     *        .command('help')
-     *        .description('display verbose help')
-     *        .action(function() {
-     *           // output help here
-     *        });
-     *
-     * @param {(...args: any[]) => void} fn
-     * @returns {Command} for chaining
-     */
-    action(fn: (...args: any[]) => void): Command;
-
-    /**
-     * Define option with `flags`, `description` and optional
-     * coercion `fn`.
-     *
-     * The `flags` string should contain both the short and long flags,
-     * separated by comma, a pipe or space. The following are all valid
-     * all will output this way when `--help` is used.
-     *
-     *    "-p, --pepper"
-     *    "-p|--pepper"
-     *    "-p --pepper"
-     *
-     * @example
-     *     // simple boolean defaulting to false
-     *     program.option('-p, --pepper', 'add pepper');
-     *
-     *     --pepper
-     *     program.pepper
-     *     // => Boolean
-     *
-     *     // simple boolean defaulting to true
-     *     program.option('-C, --no-cheese', 'remove cheese');
-     *
-     *     program.cheese
-     *     // => true
-     *
-     *     --no-cheese
-     *     program.cheese
-     *     // => false
-     *
-     *     // required argument
-     *     program.option('-C, --chdir <path>', 'change the working directory');
-     *
-     *     --chdir /tmp
-     *     program.chdir
-     *     // => "/tmp"
-     *
-     *     // optional argument
-     *     program.option('-c, --cheese [type]', 'add cheese [marble]');
-     *
-     * @param {string} flags
-     * @param {string} [description]
-     * @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default
-     * @param {*} [defaultValue]
-     * @returns {Command} for chaining
-     */
-    option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command;
-    option(flags: string, description?: string, defaultValue?: any): Command;
-
-    /**
-     * Allow unknown options on the command line.
-     *
-     * @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options.
-     * @returns {Command} for chaining
-     */
-    allowUnknownOption(arg?: boolean): Command;
-
-    /**
-     * Parse `argv`, settings options and invoking commands when defined.
-     *
-     * @param {string[]} argv
-     * @returns {Command} for chaining
-     */
-    parse(argv: string[]): Command;
-
-    /**
-     * Parse options from `argv` returning `argv` void of these options.
-     *
-     * @param {string[]} argv
-     * @returns {ParseOptionsResult}
-     */
-    parseOptions(argv: string[]): commander.ParseOptionsResult;
-
-    /**
-     * Return an object containing options as key-value pairs
-     *
-     * @returns {{[key: string]: any}}
-     */
-    opts(): { [key: string]: any };
-
-    /**
-     * Set the description to `str`.
-     *
-     * @param {string} str
-     * @param {{[argName: string]: string}} argsDescription
-     * @return {(Command | string)}
-     */
-    description(str: string, argsDescription?: {[argName: string]: string}): Command;
-    description(): string;
-
-    /**
-     * Set an alias for the command.
-     *
-     * @param {string} alias
-     * @return {(Command | string)}
-     */
-    alias(alias: string): Command;
-    alias(): string;
-
-    /**
-     * Set or get the command usage.
-     *
-     * @param {string} str
-     * @return {(Command | string)}
-     */
-    usage(str: string): Command;
-    usage(): string;
-
-    /**
-     * Set the name of the command.
-     *
-     * @param {string} str
-     * @return {Command}
-     */
-    name(str: string): Command;
-
-    /**
-     * Get the name of the command.
-     *
-     * @return {string}
-     */
-    name(): string;
-
-    /**
-     * Output help information for this command.
-     *
-     * @param {(str: string) => string} [cb]
-     */
-    outputHelp(cb?: (str: string) => string): void;
-
-    /** Output help information and exit.
-     *
-     * @param {(str: string) => string} [cb]
-     */
-    help(cb?: (str: string) => string): never;
-  }
-
-}
-
-declare namespace commander {
-
-    type Command = local.Command
-
-    type Option = local.Option
-
-    interface CommandOptions {
-        noHelp?: boolean;
-        isDefault?: boolean;
-    }
-
-    interface ParseOptionsResult {
-        args: string[];
-        unknown: string[];
-    }
-
-    interface CommanderStatic extends Command {
-        Command: typeof local.Command;
-        Option: typeof local.Option;
-        CommandOptions: CommandOptions;
-        ParseOptionsResult: ParseOptionsResult;
-    }
-
-}
-
-declare const commander: commander.CommanderStatic;
-export = commander;
diff --git a/node_modules/comment-parser/.eslintignore b/node_modules/comment-parser/.eslintignore
deleted file mode 100644
index 8d87b1d..0000000
--- a/node_modules/comment-parser/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/*
diff --git a/node_modules/comment-parser/.eslintrc.json b/node_modules/comment-parser/.eslintrc.json
deleted file mode 100644
index dc82bd7..0000000
--- a/node_modules/comment-parser/.eslintrc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "extends": "standard",
-  "env": {
-    "browser": true,
-    "node": true,
-    "mocha": true
-  },
-  "rules": {
-    "camelcase": "off"
-  }
-}
diff --git a/node_modules/comment-parser/CHANGELOG.md b/node_modules/comment-parser/CHANGELOG.md
deleted file mode 100644
index a406a22..0000000
--- a/node_modules/comment-parser/CHANGELOG.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# v0.7.2
-- make stringify to start each line with * in multiline comments
-
-# v0.7.1
-- ensure non-space characters after asterisk are included in source
-
-# v0.7.0
-- allow fenced blocks in tag description, see opts.fence
-
-# v0.6.2
-- document TypeScript definitions
-
-# v0.6.1
-- adjust strigifier indentation
-
-# v0.6.0
-- soft-drop node@6 support
-- migrate to ES6 syntax
-- allow to generate comments out of parsed data
-
-# v0.5.5
-- allow loose tag names, e.g. @.tag, @-tag
-
-# v0.5.4
-- allow quoted literal names, e.g. `@tag "My Var" description`
-
-# v0.5.3
-- corrected TypeScript definitions
-
-# v0.5.2
-- added TypeScript definitions
-- removed `readable-stream` dependency
-
-# v0.5.1
-- Support for tab as separator between tag components.
-- Docs: Indicate when `optional` is `true`; `default` property
-
-# v0.5.0
-- line wrapping control with `opts.join`
-
-# v0.4.2
-- tolerate inconsistent lines alignment within block
-
-# v0.4.1
-- refactored parsing, allow to not start lines with "* " inside block
-
-# v0.3.2
-- fix RegExp for `description` extraction to allow $ char
-
-# v0.3.1
-- use `readable-stream` fro Node 0.8 comatibility
-- allow to pass optional parameters to `parse.file(path [,opts], done)`  
-- allow `parse.stream` to work with Buffers in addition to strings
-
-# v0.3.0
-- `feature` allow to use custom parsers
-- `feature` always include source, no `raw_value` option needed
-- `bugfix` always provide `optional` tag property
-- `refactor` clean up tests
-
-# v0.2.3
-
-- `bugfix` Accept `/** one line */` comments
-- `refactor` Get rid of `lodash` to avoid unnecessary extra size when bundled
-
-# v0.2.2
-
-- `feature` allow spaces in default values `@my-tag {my.type} [name=John Doe]`
-
-# v0.2.1
-
-- `refactor` make line pasing mechanism more tolerable
-
-# v0.2.0
-
-- `feature` include source line numbers in parsed data
-- `feature` optionally prevent dotten names expanding
-
-# v0.1.2
-
-- `bugfix` Allow to build nested tags from `name.subname` even if `name` wasn't d
-- `bugfix` Preserve indentation when extracting comments
-
-# v0.1.1
-
-- `improvement` `parse(source)` returns array of all blocks found in source or an empty array
-- `bugfix` fixed indented blocks parsing
-
-# v0.1.0
-
-Initial implementation
diff --git a/node_modules/comment-parser/LICENSE b/node_modules/comment-parser/LICENSE
deleted file mode 100644
index c91d3e7..0000000
--- a/node_modules/comment-parser/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Sergii Iavorskyi
-
-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/node_modules/comment-parser/README.md b/node_modules/comment-parser/README.md
deleted file mode 100644
index bd857fd..0000000
--- a/node_modules/comment-parser/README.md
+++ /dev/null
@@ -1,221 +0,0 @@
-# comment-parser
-
-Generic JSDoc-like comment parser. This library is not intended to be documentation generator, but rather composite unit for it.
-
-`npm install comment-parser`
-
-Module provides `parse(s: string[, opts: object]): object[]` function which takes `/** ... */` comment string and returns array  of objects with parsed data.
-
-It is not trying to detect relations between tags or somehow recognize their meaning. Any tag can be used, as long as it satisfies the format.
-
-```javascript
-/**
- * Singleline or multiline description text. Line breaks are preserved.
- *
- * @some-tag {Type} name Singleline or multiline description text
- * @some-tag {Type} name.subname Singleline or multiline description text
- * @some-tag {Type} name.subname.subsubname Singleline or
- * multiline description text
- * @some-tag {Type} [optionalName=someDefault]
- * @another-tag
- */
-```
-
-this would be parsed into following
-
-```json
-[{
-  "tags": [{
-    "tag": "some-tag",
-    "type": "Type",
-    "name": "name",
-    "optional": false,
-    "description": "Singleline or multiline description text",
-    "line": 3,
-    "source": "@some-tag {Type} name Singleline or multiline description text"
-  }, {
-    "tag": "some-tag",
-    "type": "Type",
-    "name": "name.subname",
-    "optional": false,
-    "description": "Singleline or multiline description text",
-    "line": 4,
-    "source": "@some-tag {Type} name.subname Singleline or multiline description text"
-  }, {
-    "tag": "some-tag",
-    "type": "Type",
-    "name": "name.subname.subsubname",
-    "optional": false,
-    "description": "Singleline or\nmultiline description text",
-    "line": 5,
-    "source": "@some-tag {Type} name.subname.subsubname Singleline or\nmultiline description text"
-  }, {
-    "tag": "some-tag",
-    "type": "Type",
-    "name": "optionalName",
-    "optional": true,
-    "description": "",
-    "line": 7,
-    "default": "someDefault",
-    "source": "@some-tag {Type} [optionalName=someDefault]"
-  }, {
-    "tag": "another-tag",
-    "name": "",
-    "optional": false,
-    "type": "",
-    "description": "",
-    "line": 8,
-    "source": "@another-tag"
-  }],
-  "line": 0,
-  "description": "Singleline or multiline description text. Line breaks are preserved.",
-  "source": "Singleline or multiline description text. Line breaks are preserved.\n\n@some-tag {Type} name Singleline or multiline description text\n@some-tag {Type} name.subname Singleline or multiline description text\n@some-tag {Type} name.subname.subsubname Singleline or\nmultiline description text\n@another-tag"
-}]
-```
-
-Below are examples of acceptable comment formats
-
-```javascript
-/** online comment */
-
-/** first line
- * second line */
-
-/**
-   No *s on middle lines is acceptable too
-   which might be convenient for writing big
-   chunks of text.
-
- * keeping *s on some lines
- * would work either
-
-   left bound is determined by opening marker position
-   and white space will be trimmed as there was '* '
- */
-
-```
-
-Comments starting with `/***` and `/*` are ignored.
-
-Also you can parse entire file with `parse.file('path/to/file', callback)` or acquire an instance of [Transform](http://nodejs.org/api/stream.html#stream_class_stream_transform) stream with `parse.stream()`.
-
-## Options
-
-### `dotted_names: boolean`
-
-By default dotted names like `name.subname.subsubname` will be expanded into
-nested sections, this can be prevented by passing `opts.dotted_names = false`.
-
-### `trim: boolean`
-
-Set this to `false` to avoid the default of trimming whitespace at the start and
-end of each line.
-
-### `join: string | number | boolean`
-
-If the following lines of a multiline comment do not start with a star, `join` will have the following effect on *tag* `source` (and `description`) when joining the lines together:
-
-1. If a string, use that string in place of the leading whitespace (and avoid newlines).
-2. If a non-zero number (e.g., `1`), do no trimming and avoid newlines.
-3. If `undefined`, `false`, or `0`, use the default behavior of not trimming
-    but adding a newline.
-4. Otherwise (e.g., if `join` is `true`), replace any leading whitespace with a single space and avoid newlines.
-
-Note that if a multi-line comment has lines that start with a star, these will
-be appended with initial whitespace as is and with newlines regardless of the
-`join` setting.
-
-Note also that the *comment* `source` will not be changed by this setting.
-
-### `fence: string | RegExp | ((source: string) => boolean)`
-
-Set to a string or regular expression to toggle state upon finding an
-odd number of matches within a line. Defaults to \`\`\`.
-
-If set to a function, it should return `true` to toggle fenced state;
-upon returning `true` the first time, this will prevent subsequent lines
-from being interpreted as starting a new jsdoc tag until such time as the
-function returns `true` again to indicate that the state has toggled
-back.
-
-### `parsers: Parser[]` (Custom parsers)
-
-In case you need to parse tags in different way you can pass `opts.parsers = [parser1, ..., parserN]`, where each parser is `function name(str:String, data:Object):{source:String, data:Object}`.
-
-Each parser function takes string left after previous parsers applied and data produced by them. And returns `null` or `{source: '', data:{}}` where `source` is consumed substring and `data` is a payload with tag node fields.
-
-Tag node data is build by merging result bits from all parsers. Here is some example that is not doing actual parsing but is demonstrating the flow:
-
-```javascript
-/**
- * Source to be parsed below
- * @tag {type} name Description
- */
-parse(source, {parsers: [
-	// takes entire string
-	function parse_tag(str, data) {
-		return {source: ' @tag', data: {tag: 'tag'}};
-	},
-	// parser throwing exception
-	function check_tag(str, data) {
-		if (allowed_tags.indexOf(data.tag) === -1) {
-			throw new Error('Unrecognized tag "' + data.tag + '"');
-		}			
-	},
-	// takes the rest of the string after ' @tag''
-	function parse_name1(str, data) {
-		return {source: ' name', data: {name: 'name1'}};
-	},
-	// alternative name parser
-	function parse_name2(str, data) {
-		return {source: ' name', data: {name: 'name2'}};
-	}
-]});
-```
-
-This would produce following:
-
-```json
-[{
-  "tags": [{
-    "tag": "tag",
-    "errors": [
-      "check_tag: Unrecognized tag \"tag\""
-    ],
-    "name": "name2",
-    "optional": false,
-    "type": "",
-    "description": "",
-    "line": 2,
-    "source": "@tag {type} name Description"
-  }],
-  "line": 0,
-  "description": "Source to be parsed below",
-  "source": "Source to be parsed below\n@tag {type} name Description"
-}]
-```
-
-## Stringifying
-
-One may also convert `comment-parser` JSON structures back into strings using
-the `stringify` method (`stringify(o: (object|Array) [, opts: object]): string`).
-
-This method accepts the JSON as its first argument and an optional options
-object with an `indent` property set to either a string or a number that
-will be used to determine the number of spaces of indent. The indent of the
-start of the doc block will be one space less than the indent of each line of
-asterisks for the sake of alignment as per usual practice.
-
-The `stringify` export delegates to the specialized methods `stringifyBlocks`,
-`stringifyBlock`, and `stringifyTag`, which are available on the `stringify`
-function object.
-
-## Packaging
-
-`comment-parser` is CommonJS module and was primarely designed to be used with Node. Module `index.js` includes stream and file functionality. Use prser-only module in browser `comment-parser/parse.js`
-
-## Contributors
-
-```
-> npm info --registry https://registry.npmjs.org comment-parser contributors
-```
diff --git a/node_modules/comment-parser/index.d.ts b/node_modules/comment-parser/index.d.ts
deleted file mode 100644
index 03772d9..0000000
--- a/node_modules/comment-parser/index.d.ts
+++ /dev/null
@@ -1,192 +0,0 @@
-// Type definitions for comment-parser
-// Project: comment-parser
-// Definitions by: Javier "Ciberman" Mora <https://github.com/jhm-ciberman/>
-
-declare namespace parse {
-
-  /**
-   * In case you need to parse tags in a different way you can specify custom parsers here.
-   * Each parser function takes string left after previous parsers were applied and the data produced by them.
-   * It should return either `undefined` or the new object, where `source` is the consumed substring.
-   */
-  export type Parser = (str: string, data: any) => { source: string, data: any };
-
-  /**
-   * Represents a parsed doc comment.
-   */
-  export interface Comment {
-    /**
-     * A list of tags that are present in this doc comment.
-     */
-    tags: Tag[];
-    /**
-     * The starting line in the source code of this doc comment.
-     */
-    line: number;
-    /**
-     * The description of this doc comment. Empty string if no description was specified.
-     */
-    description: string;
-    /**
-     * The source of this doc comment, exactly as it appeared in the doc comment before parsing.
-     */
-    source: string;
-  }
-
-  /**
-   * Represents a parsed tag. A tag has the following format:
-   * >  &#64;tag {type} [name=default] description
-   */
-  export interface Tag {
-    /**
-     * The tag's kind, eg `param` or `return`.
-     */
-    tag: string;
-    /**
-     * The name of this tag, ie the first word after the tag. Empty string if no name was specified.
-     */
-    name: string;
-    /**
-     * `true` if the tag is optional (tag name enclosed in brackets), `false` otherwise.
-     */
-    optional: boolean;
-    /**
-     * The type declaration of this tag that is enclosed in curly braces. Empty string if no type was specified.
-     */
-    type: string;
-    /**
-     * The description of this tag that comes after the name. Empty string if no description was specified.
-     */
-    description: string;
-    /**
-     * The line number where this tag starts
-     */
-    line: number;
-    /**
-     * The source of this tag, exactly as it appeared in the doc comment before parsing.
-     */
-    source: string;
-    /**
-     * The default value for this tag. `undefined` in case no default value was specified.
-     */
-    default?: string;
-    /**
-     * A list of errors that occurred during the parsing of this tag. `undefined` if not error occurred.
-     */
-    errors? : string[];
-    /**
-     * If `dotted_names` was set to `true`, a list of sub tags. `undefined` if `dotted_names` was set to `false` or if
-     * no sub tags exist.
-     */
-    tags?: Tag[];
-  }
-
-  /**
-   * Options for parsing doc comments.
-   */
-  export interface Options {
-    /**
-     * In case you need to parse tags in a different way you can specify custom parsers here.
-     * Each parser function takes string left after previous parsers were applied and the data produced by them.
-     * It should return either `undefined` or the new object, where `source` is the consumed substring.
-     *
-     * If you specify custom parsers, the default parsers are overwritten, but you can access them via the constant
-     * `PARSERS`.
-     */
-    parsers: Parser[];
-    /**
-     * By default dotted names like `name.subname.subsubname` will be expanded into nested sections, this can be
-     * prevented by passing `opts.dotted_names = false`.
-     */
-    dotted_names: boolean;
-    /**
-     * Impacts behavior of joining non-asterisked multiline comments. Strings,
-     * non-zero numbers, or `true` will collapse newlines. Strings will
-     * additionally replace leading whitespace and `true` will replace with
-     * a single space.
-     */
-    join: string | number | boolean;
-    /**
-     * `true` to trim whitespace at the start and end of each line, `false` otherwise.
-     */
-    trim: boolean;
-    /**
-     * Return `true` to toggle fenced state; upon returning `true` the
-     * first time, will prevent subsequent lines from being interpreted as
-     * starting a new jsdoc tag until such time as the function returns
-     * `true` again to indicate that the state has toggled back; can also
-     * be simply set to a string or regular expression which will toggle
-     * state upon finding an odd number of matches within a line.
-     */
-    fence: string | RegExp | ((source: string) => boolean);
-  }
-
-    /**
-   * Options for turning a parsed doc comment back into a string.
-   */
-  export interface StringifyOptions {
-    /**
-     * Indentation for each line. If a string is passed, that string is used verbatim to indent each line. If a number
-     * is passed, indents each line with that many whitespaces.
-     */
-    indent: string | number;
-  }
-
-  export interface Stringify {
-    /**
-     * One may also convert comment-parser JSON structures back into strings using this stringify method.
-     *
-     * This method accepts the JSON as its first argument and an optional options object with an indent property set to
-     * either a string or a number that will be used to determine the number of spaces of indent. The indent of the start
-     * of the doc block will be one space less than the indent of each line of asterisks for the sake of alignment as per
-     * usual practice.
-     *
-     * The stringify export delegates to the specialized methods `stringifyBlocks`, `stringifyBlock`, and
-     * `stringifyTag`, which are available on the stringify function object.
-     * @param comment A tag, comment or a list of comments to stringify.
-     * @param options Options to control how the comment or comments are stringified.
-     * @return The stringified doc comment(s).
-     */
-    (comment: Tag | Comment | Comment[], options?: Partial<StringifyOptions>): string;
-    /**
-     * Similar to `stringify`, but only accepts a list of doc comments.
-     * @param comments A list of comments to stringify.
-     * @param options Options to control how the comments are stringified.
-     * @return The stringified doc comment(s).
-     */
-    stringifyBlocks(comments: Comment[], options?: Partial<StringifyOptions>): string;
-    /**
-     * Similar to `stringify`, but only accepts a single doc comment.
-     * @param comment A comment to stringify.
-     * @param options Options to control how the comment is stringified.
-     * @return The stringified doc comment(s).
-     */
-    stringifyBlock(comment: Comment, options?: Partial<StringifyOptions>): string;
-    /**
-     * Similar to `stringify`, but only accepts a single tag.
-     * @param tag A tag to stringify.
-     * @param options Options to control how the tag is stringified.
-     * @return The stringified doc comment(s).
-     */
-    stringifyTag(tag: Tag, options?: Partial<StringifyOptions>): string;
-  }
-
-  export const stringify: parse.Stringify;
-
-  /**
-   * The default list of parsers that is used to parse comments.
-   */
-  export const PARSERS: Record<"parse_tag" | "parse_type" | "parse_description" | "parse_name", Parser>
-}
-
-/**
- * The main method of this module which takes comment string and returns an array of objects with parsed data.
- * It is not trying to detect relations between tags or somehow recognize their meaning. Any tag can be used, as long
- * as it satisfies the format.
- * @param str A string with doc comments and source code to parse.
- * @param opts Options to control how the source string is parsed.
- * @return The parsed list of doc comments.
- */
-declare function parse(str: string, opts?: Partial<parse.Options>): parse.Comment[];
-
-export = parse;
diff --git a/node_modules/comment-parser/index.js b/node_modules/comment-parser/index.js
deleted file mode 100644
index c673db3..0000000
--- a/node_modules/comment-parser/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-
-'use strict'
-
-const fs = require('fs')
-const stream = require('stream')
-
-const parse = require('./parser')
-
-const stringify = require('./stringifier')
-
-module.exports = parse
-
-module.exports.stringify = stringify
-
-/* ------- Transform stream ------- */
-
-class Parser extends stream.Transform {
-  constructor (opts) {
-    opts = opts || {}
-    super({ objectMode: true })
-    this._extract = parse.mkextract(opts)
-  }
-
-  _transform (data, encoding, done) {
-    let block
-    const lines = data.toString().split(/\n/)
-
-    while (lines.length) {
-      block = this._extract(lines.shift())
-      if (block) {
-        this.push(block)
-      }
-    }
-
-    done()
-  }
-}
-
-module.exports.stream = function stream (opts) {
-  return new Parser(opts)
-}
-
-/* ------- File parser ------- */
-
-module.exports.file = function file (file_path, done) {
-  let opts = {}
-  const collected = []
-
-  if (arguments.length === 3) {
-    opts = done
-    done = arguments[2]
-  }
-
-  return fs.createReadStream(file_path, { encoding: 'utf8' })
-    .on('error', done)
-    .pipe(new Parser(opts))
-    .on('error', done)
-    .on('data', function (data) {
-      collected.push(data)
-    })
-    .on('finish', function () {
-      done(null, collected)
-    })
-}
diff --git a/node_modules/comment-parser/package.json b/node_modules/comment-parser/package.json
deleted file mode 100644
index 02756be..0000000
--- a/node_modules/comment-parser/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "name": "comment-parser",
-  "version": "0.7.2",
-  "description": "Generic JSDoc-like comment parser. ",
-  "main": "index.js",
-  "types": "index.d.ts",
-  "directories": {
-    "test": "tests"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "chai": "^4.2.0",
-    "eslint": "^6.6.0",
-    "eslint-config-standard": "^14.1.0",
-    "eslint-plugin-import": "^2.18.2",
-    "eslint-plugin-node": "^10.0.0",
-    "eslint-plugin-promise": "^4.2.1",
-    "eslint-plugin-standard": "^4.0.1",
-    "mocha": "^6.2.2",
-    "nodemon": "^1.19.4",
-    "nyc": "^14.1.1",
-    "typescript": "^3.6.4"
-  },
-  "engines": {
-    "node": ">= 6.0.0"
-  },
-  "scripts": {
-    "typescript": "tsc index.d.ts",
-    "lint:fix": "eslint --fix .",
-    "test:lint": "eslint .",
-    "test:typescript": "tsc index.d.ts",
-    "test:unit": "nyc mocha tests",
-    "test": "npm run test:typescript && npm run test:lint && npm run test:unit",
-    "watch": "nodemon -q -i node_modules -x npm test"
-  },
-  "nyc": {
-    "branches": 85,
-    "lines": 85,
-    "functions": 85,
-    "statements": 85,
-    "exclude": [
-      "tests"
-    ]
-  },
-  "repository": {
-    "type": "git",
-    "url": "git@github.com:yavorskiy/comment-parser.git"
-  },
-  "keywords": [
-    "jsdoc",
-    "comments",
-    "parser"
-  ],
-  "author": "Sergii Iavorskyi <yavorskiy.s@gmail.com> (https://github.com/yavorskiy)",
-  "contributors": [
-    "Alexej Yaroshevich (https://github.com/zxqfox)",
-    "Andre Wachsmuth (https://github.com/blutorange)",
-    "Brett Zamir (https://github.com/brettz9)",
-    "Dieter Oberkofler (https://github.com/doberkofler)",
-    "Evgeny Reznichenko (https://github.com/zxcabs)",
-    "Javier \"Ciberma\" Mora (https://github.com/jhm-ciberman)",
-    "Jordan Harband (https://github.com/ljharb)",
-    "tengattack (https://github.com/tengattack)"
-  ],
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/yavorskiy/comment-parser/issues"
-  },
-  "homepage": "https://github.com/yavorskiy/comment-parser"
-}
diff --git a/node_modules/comment-parser/parser.js b/node_modules/comment-parser/parser.js
deleted file mode 100644
index c827b72..0000000
--- a/node_modules/comment-parser/parser.js
+++ /dev/null
@@ -1,286 +0,0 @@
-
-'use strict'
-
-const PARSERS = require('./parsers')
-
-const MARKER_START = '/**'
-const MARKER_START_SKIP = '/***'
-const MARKER_END = '*/'
-
-/* ------- util functions ------- */
-
-function find (list, filter) {
-  let i = list.length
-  let matchs = true
-
-  while (i--) {
-    for (const k in filter) {
-      if ({}.hasOwnProperty.call(filter, k)) {
-        matchs = (filter[k] === list[i][k]) && matchs
-      }
-    }
-    if (matchs) { return list[i] }
-  }
-  return null
-}
-
-/* ------- parsing ------- */
-
-/**
- * Parses "@tag {type} name description"
- * @param {string} str Raw doc string
- * @param {Array<function>} parsers Array of parsers to be applied to the source
- * @returns {object} parsed tag node
- */
-function parse_tag (str, parsers) {
-  if (typeof str !== 'string' || !(/\s*@/).test(str)) { return null }
-
-  const data = parsers.reduce(function (state, parser) {
-    let result
-
-    try {
-      result = parser(state.source, Object.assign({}, state.data))
-    } catch (err) {
-      state.data.errors = (state.data.errors || [])
-        .concat(parser.name + ': ' + err.message)
-    }
-
-    if (result) {
-      state.source = state.source.slice(result.source.length)
-      state.data = Object.assign(state.data, result.data)
-    }
-
-    return state
-  }, {
-    source: str,
-    data: {}
-  }).data
-
-  data.optional = !!data.optional
-  data.type = data.type === undefined ? '' : data.type
-  data.name = data.name === undefined ? '' : data.name
-  data.description = data.description === undefined ? '' : data.description
-
-  return data
-}
-
-/**
- * Parses comment block (array of String lines)
- */
-function parse_block (source, opts) {
-  const trim = opts.trim
-    ? s => s.trim()
-    : s => s
-
-  const toggleFence = (typeof opts.fence === 'function')
-    ? opts.fence
-    : line => line.split(opts.fence).length % 2 === 0
-
-  let source_str = source
-    .map((line) => { return trim(line.source) })
-    .join('\n')
-
-  source_str = trim(source_str)
-
-  const start = source[0].number
-
-  // merge source lines into tags
-  // we assume tag starts with "@"
-  source = source
-    .reduce(function (state, line) {
-      line.source = trim(line.source)
-
-      // start of a new tag detected
-      if (line.source.match(/^\s*@(\S+)/) && !state.isFenced) {
-        state.tags.push({
-          source: [line.source],
-          line: line.number
-        })
-      // keep appending source to the current tag
-      } else {
-        const tag = state.tags[state.tags.length - 1]
-        if (opts.join !== undefined && opts.join !== false && opts.join !== 0 &&
-            !line.startWithStar && tag.source.length > 0) {
-          let source
-          if (typeof opts.join === 'string') {
-            source = opts.join + line.source.replace(/^\s+/, '')
-          } else if (typeof opts.join === 'number') {
-            source = line.source
-          } else {
-            source = ' ' + line.source.replace(/^\s+/, '')
-          }
-          tag.source[tag.source.length - 1] += source
-        } else {
-          tag.source.push(line.source)
-        }
-      }
-
-      if (toggleFence(line.source)) {
-        state.isFenced = !state.isFenced
-      }
-      return state
-    }, {
-      tags: [{ source: [] }],
-      isFenced: false
-    })
-    .tags
-    .map((tag) => {
-      tag.source = trim(tag.source.join('\n'))
-      return tag
-    })
-
-  // Block description
-  const description = source.shift()
-
-  // skip if no descriptions and no tags
-  if (description.source === '' && source.length === 0) {
-    return null
-  }
-
-  const tags = source.reduce(function (tags, tag) {
-    const tag_node = parse_tag(tag.source, opts.parsers)
-    if (!tag_node) { return tags }
-
-    tag_node.line = tag.line
-    tag_node.source = tag.source
-
-    if (opts.dotted_names && tag_node.name.includes('.')) {
-      let parent_name
-      let parent_tag
-      let parent_tags = tags
-      const parts = tag_node.name.split('.')
-
-      while (parts.length > 1) {
-        parent_name = parts.shift()
-        parent_tag = find(parent_tags, {
-          tag: tag_node.tag,
-          name: parent_name
-        })
-
-        if (!parent_tag) {
-          parent_tag = {
-            tag: tag_node.tag,
-            line: Number(tag_node.line),
-            name: parent_name,
-            type: '',
-            description: ''
-          }
-          parent_tags.push(parent_tag)
-        }
-
-        parent_tag.tags = parent_tag.tags || []
-        parent_tags = parent_tag.tags
-      }
-
-      tag_node.name = parts[0]
-      parent_tags.push(tag_node)
-      return tags
-    }
-
-    return tags.concat(tag_node)
-  }, [])
-
-  return {
-    tags,
-    line: start,
-    description: description.source,
-    source: source_str
-  }
-}
-
-/**
- * Produces `extract` function with internal state initialized
- */
-function mkextract (opts) {
-  let chunk = null
-  let indent = 0
-  let number = 0
-
-  opts = Object.assign({}, {
-    trim: true,
-    dotted_names: false,
-    fence: '```',
-    parsers: [
-      PARSERS.parse_tag,
-      PARSERS.parse_type,
-      PARSERS.parse_name,
-      PARSERS.parse_description
-    ]
-  }, opts || {})
-
-  /**
-   * Read lines until they make a block
-   * Return parsed block once fullfilled or null otherwise
-   */
-  return function extract (line) {
-    let result = null
-    const startPos = line.indexOf(MARKER_START)
-    const endPos = line.indexOf(MARKER_END)
-
-    // if open marker detected and it's not, skip one
-    if (startPos !== -1 && line.indexOf(MARKER_START_SKIP) !== startPos) {
-      chunk = []
-      indent = startPos + MARKER_START.length
-    }
-
-    // if we are on middle of comment block
-    if (chunk) {
-      let lineStart = indent
-      let startWithStar = false
-
-      // figure out if we slice from opening marker pos
-      // or line start is shifted to the left
-      const nonSpaceChar = line.match(/\S/)
-
-      // skip for the first line starting with /** (fresh chunk)
-      // it always has the right indentation
-      if (chunk.length > 0 && nonSpaceChar) {
-        if (nonSpaceChar[0] === '*') {
-          const afterNonSpaceCharIdx = nonSpaceChar.index + 1
-          const extraCharIsSpace = line.charAt(afterNonSpaceCharIdx) === ' '
-          lineStart = afterNonSpaceCharIdx + (extraCharIsSpace ? 1 : 0)
-          startWithStar = true
-        } else if (nonSpaceChar.index < indent) {
-          lineStart = nonSpaceChar.index
-        }
-      }
-
-      // slice the line until end or until closing marker start
-      chunk.push({
-        number,
-        startWithStar,
-        source: line.slice(lineStart, endPos === -1 ? line.length : endPos)
-      })
-
-      // finalize block if end marker detected
-      if (endPos !== -1) {
-        result = parse_block(chunk, opts)
-        chunk = null
-        indent = 0
-      }
-    }
-
-    number += 1
-    return result
-  }
-}
-
-/* ------- Public API ------- */
-
-module.exports = function parse (source, opts) {
-  const blocks = []
-  const extract = mkextract(opts)
-  const lines = source.split(/\n/)
-
-  lines.forEach((line) => {
-    const block = extract(line)
-    if (block) {
-      blocks.push(block)
-    }
-  })
-
-  return blocks
-}
-
-module.exports.PARSERS = PARSERS
-module.exports.mkextract = mkextract
diff --git a/node_modules/comment-parser/parsers.js b/node_modules/comment-parser/parsers.js
deleted file mode 100644
index dcf3e6b..0000000
--- a/node_modules/comment-parser/parsers.js
+++ /dev/null
@@ -1,110 +0,0 @@
-'use strict'
-
-function skipws (str) {
-  let i = 0
-  do {
-    if (str[i] !== ' ' && str[i] !== '\t') { return i }
-  } while (++i < str.length)
-  return i
-}
-
-/* ------- default parsers ------- */
-
-const PARSERS = {}
-
-PARSERS.parse_tag = function parse_tag (str) {
-  const result = str.match(/^\s*@(\S+)/)
-  if (!result) { throw new Error('Invalid `@tag`, missing @ symbol') }
-
-  return {
-    source: result[0],
-    data: { tag: result[1] }
-  }
-}
-
-PARSERS.parse_type = function parse_type (str, data) {
-  if (data.errors && data.errors.length) { return null }
-
-  let pos = skipws(str)
-  let res = ''
-  let curlies = 0
-
-  if (str[pos] !== '{') { return null }
-
-  while (pos < str.length) {
-    curlies += (str[pos] === '{' ? 1 : (str[pos] === '}' ? -1 : 0))
-    res += str[pos]
-    pos++
-    if (curlies === 0) { break }
-  }
-
-  if (curlies !== 0) { throw new Error('Invalid `{type}`, unpaired curlies') }
-
-  return {
-    source: str.slice(0, pos),
-    data: { type: res.slice(1, -1) }
-  }
-}
-
-PARSERS.parse_name = function parse_name (str, data) {
-  if (data.errors && data.errors.length) { return null }
-
-  let pos = skipws(str)
-  let name = ''
-  let brackets = 0
-  let res = { optional: false }
-
-  // if it starts with quoted group assume it is a literal
-  const quotedGroups = str.slice(pos).split('"')
-  if (quotedGroups.length > 1 && quotedGroups[0] === '' && quotedGroups.length % 2 === 1) {
-    name = quotedGroups[1]
-    pos += name.length + 2
-  // assume name is non-space string or anything wrapped into brackets
-  } else {
-    while (pos < str.length) {
-      brackets += (str[pos] === '[' ? 1 : (str[pos] === ']' ? -1 : 0))
-      name += str[pos]
-      pos++
-      if (brackets === 0 && /\s/.test(str[pos])) { break }
-    }
-
-    if (brackets !== 0) { throw new Error('Invalid `name`, unpaired brackets') }
-
-    res = { name: name, optional: false }
-
-    if (name[0] === '[' && name[name.length - 1] === ']') {
-      res.optional = true
-      name = name.slice(1, -1)
-
-      if (name.indexOf('=') !== -1) {
-        const parts = name.split('=')
-        name = parts[0]
-        res.default = parts[1].replace(/^(["'])(.+)(\1)$/, '$2')
-      }
-    }
-  }
-
-  res.name = name
-
-  return {
-    source: str.slice(0, pos),
-    data: res
-  }
-}
-
-PARSERS.parse_description = function parse_description (str, data) {
-  if (data.errors && data.errors.length) { return null }
-
-  const result = str.match(/^\s+((.|\s)+)?/)
-
-  if (result) {
-    return {
-      source: result[0],
-      data: { description: result[1] === undefined ? '' : result[1] }
-    }
-  }
-
-  return null
-}
-
-module.exports = PARSERS
diff --git a/node_modules/comment-parser/stringifier.js b/node_modules/comment-parser/stringifier.js
deleted file mode 100644
index 78cd510..0000000
--- a/node_modules/comment-parser/stringifier.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict'
-
-const getIndent = (indent) => {
-  return typeof indent === 'number' ? ' '.repeat(indent) : indent
-}
-
-module.exports = exports = function stringify (arg, opts) {
-  if (Array.isArray(arg)) {
-    return stringifyBlocks(arg, opts)
-  }
-  if (arg && typeof arg === 'object') {
-    if ('tag' in arg) {
-      return stringifyTag(arg, opts)
-    }
-    if ('tags' in arg) {
-      return stringifyBlock(arg, opts)
-    }
-  }
-  throw new TypeError('Unexpected argument passed to `stringify`.')
-}
-
-const stringifyBlocks = exports.stringifyBlocks = function stringifyBlocks (
-  blocks, { indent = '' } = {}
-) {
-  const indnt = getIndent(indent)
-  return blocks.reduce((s, block) => {
-    return s + stringifyBlock(block, { indent })
-  }, (indnt ? indnt.slice(0, -1) : '') + '/**\n') + indnt + '*/'
-}
-
-const stringifyBlock = exports.stringifyBlock = function stringifyBlock (
-  block, { indent = '' } = {}
-) {
-  // block.line
-  const indnt = getIndent(indent)
-  return (block.description ? `${indnt}${block.description.replace(/^/gm, '* ')}\n${indnt}*\n` : '') +
-    block.tags.reduce((s, tag) => {
-      return s + stringifyTag(tag, { indent })
-    }, '')
-}
-
-const stringifyTag = exports.stringifyTag = function stringifyTag (
-  tag, { indent = '' } = {}
-) {
-  const indnt = getIndent(indent)
-  const {
-    type, name, optional, description, tag: tagName, default: deflt //, line , source
-  } = tag
-  return indnt + `* @${tagName}` +
-    (type ? ` {${type}}` : '') +
-    (name ? ` ${
-      optional ? '[' : ''
-    }${name}${deflt ? `=${deflt}` : ''}${
-      optional ? ']' : ''
-    }` : '') +
-    (description ? ` ${description.replace(/\n/g, '\n' + indnt + '* ')}` : '') + '\n'
-}
diff --git a/node_modules/core-js-pure/LICENSE b/node_modules/core-js-pure/LICENSE
deleted file mode 100644
index 9c4e4e1..0000000
--- a/node_modules/core-js-pure/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014-2020 Denis Pushkarev
-
-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.
diff --git a/node_modules/core-js-pure/README.md b/node_modules/core-js-pure/README.md
deleted file mode 100644
index 478f493..0000000
--- a/node_modules/core-js-pure/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# core-js-pure
-
-[![Sponsors on Open Collective](https://opencollective.com/core-js/sponsors/badge.svg)](#sponsors) [![Backers on Open Collective](https://opencollective.com/core-js/backers/badge.svg)](#backers) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/zloirock/core-js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![version](https://img.shields.io/npm/v/core-js-pure.svg)](https://www.npmjs.com/package/core-js-pure) [![npm downloads](https://img.shields.io/npm/dm/core-js-pure.svg)](http://npm-stat.com/charts.html?package=core-js-pure&author=&from=2019-03-18) [![Build Status](https://travis-ci.org/zloirock/core-js.svg)](https://travis-ci.org/zloirock/core-js) [![devDependency status](https://david-dm.org/zloirock/core-js/dev-status.svg)](https://david-dm.org/zloirock/core-js?type=dev)
-
-> Modular standard library for JavaScript. Includes polyfills for [ECMAScript up to 2019](https://github.com/zloirock/core-js#ecmascript): [promises](https://github.com/zloirock/core-js#ecmascript-promise), [symbols](https://github.com/zloirock/core-js#ecmascript-symbol), [collections](https://github.com/zloirock/core-js#ecmascript-collections), iterators, [typed arrays](https://github.com/zloirock/core-js#ecmascript-typed-arrays), many other features, [ECMAScript proposals](https://github.com/zloirock/core-js#ecmascript-proposals), [some cross-platform WHATWG / W3C features and proposals](#web-standards) like [`URL`](https://github.com/zloirock/core-js#url-and-urlsearchparams). You can load only required features or use it without global namespace pollution.
-
-## As advertising: the author is looking for a good job -)
-
-## [core-js@3, babel and a look into the future](https://github.com/zloirock/core-js/tree/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md)
-
-## Raising funds
-
-`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer [**on Open Collective**](https://opencollective.com/core-js) or [**on Patreon**](https://www.patreon.com/zloirock) if you are interested in `core-js`.
-
----
-
-<a href="https://opencollective.com/core-js/sponsor/0/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/0/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/1/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/1/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/2/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/2/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/3/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/3/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/4/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/4/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/5/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/5/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/6/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/6/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/7/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/7/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/8/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/8/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/9/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/9/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/10/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/10/avatar.svg"></a><a href="https://opencollective.com/core-js/sponsor/11/website" target="_blank"><img src="https://opencollective.com/core-js/sponsor/11/avatar.svg"></a>
-
----
-
-<a href="https://opencollective.com/core-js#backers" target="_blank"><img src="https://opencollective.com/core-js/backers.svg?width=890"></a>
-
----
-
-[*Example*](http://goo.gl/a2xexl):
-```js
-import 'core-js'; // <- at the top of your entry point
-
-Array.from(new Set([1, 2, 3, 2, 1]));          // => [1, 2, 3]
-[1, [2, 3], [4, [5]]].flat(2);                 // => [1, 2, 3, 4, 5]
-Promise.resolve(32).then(x => console.log(x)); // => 32
-```
-
-*You can load only required features*:
-```js
-import 'core-js/features/array/from'; // <- at the top of your entry point
-import 'core-js/features/array/flat'; // <- at the top of your entry point
-import 'core-js/features/set';        // <- at the top of your entry point
-import 'core-js/features/promise';    // <- at the top of your entry point
-
-Array.from(new Set([1, 2, 3, 2, 1]));          // => [1, 2, 3]
-[1, [2, 3], [4, [5]]].flat(2);                 // => [1, 2, 3, 4, 5]
-Promise.resolve(32).then(x => console.log(x)); // => 32
-```
-
-*Or use it without global namespace pollution*:
-```js
-import from from 'core-js-pure/features/array/from';
-import flat from 'core-js-pure/features/array/flat';
-import Set from 'core-js-pure/features/set';
-import Promise from 'core-js-pure/features/promise';
-
-from(new Set([1, 2, 3, 2, 1]));                // => [1, 2, 3]
-flat([1, [2, 3], [4, [5]]], 2);                // => [1, 2, 3, 4, 5]
-Promise.resolve(32).then(x => console.log(x)); // => 32
-```
-
-**It's a version without global namespace pollution (the third example), for more info see [`core-js` documentation](https://github.com/zloirock/core-js/blob/master/README.md)**.
diff --git a/node_modules/core-js-pure/configurator.js b/node_modules/core-js-pure/configurator.js
deleted file mode 100644
index 0a5288e..0000000
--- a/node_modules/core-js-pure/configurator.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var has = require('./internals/has');
-var isArray = require('./internals/is-array');
-var isForced = require('./internals/is-forced');
-var shared = require('./internals/shared-store');
-
-var data = isForced.data;
-var normalize = isForced.normalize;
-var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';
-var ASYNC_ITERATOR_PROTOTYPE = 'AsyncIteratorPrototype';
-
-var setAggressivenessLevel = function (object, constant) {
-  if (isArray(object)) for (var i = 0; i < object.length; i++) data[normalize(object[i])] = constant;
-};
-
-module.exports = function (options) {
-  if (typeof options == 'object') {
-    setAggressivenessLevel(options.useNative, isForced.NATIVE);
-    setAggressivenessLevel(options.usePolyfill, isForced.POLYFILL);
-    setAggressivenessLevel(options.useFeatureDetection, null);
-    if (has(options, USE_FUNCTION_CONSTRUCTOR)) shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];
-    if (has(options, ASYNC_ITERATOR_PROTOTYPE)) shared[USE_FUNCTION_CONSTRUCTOR] = options[ASYNC_ITERATOR_PROTOTYPE];
-  }
-};
diff --git a/node_modules/core-js-pure/es/README.md b/node_modules/core-js-pure/es/README.md
deleted file mode 100644
index 872a356..0000000
--- a/node_modules/core-js-pure/es/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains entry points for [stable ECMAScript features](https://github.com/zloirock/core-js/tree/v3#ecmascript) with dependencies.
diff --git a/node_modules/core-js-pure/es/array-buffer/constructor.js b/node_modules/core-js-pure/es/array-buffer/constructor.js
deleted file mode 100644
index b7a76ed..0000000
--- a/node_modules/core-js-pure/es/array-buffer/constructor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.array-buffer.constructor');
-require('../../modules/es.object.to-string');
-var path = require('../../internals/path');
-
-module.exports = path.ArrayBuffer;
diff --git a/node_modules/core-js-pure/es/array-buffer/index.js b/node_modules/core-js-pure/es/array-buffer/index.js
deleted file mode 100644
index 8697373..0000000
--- a/node_modules/core-js-pure/es/array-buffer/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.array-buffer.constructor');
-require('../../modules/es.array-buffer.is-view');
-require('../../modules/es.array-buffer.slice');
-require('../../modules/es.object.to-string');
-var path = require('../../internals/path');
-
-module.exports = path.ArrayBuffer;
diff --git a/node_modules/core-js-pure/es/array-buffer/is-view.js b/node_modules/core-js-pure/es/array-buffer/is-view.js
deleted file mode 100644
index c86c3b7..0000000
--- a/node_modules/core-js-pure/es/array-buffer/is-view.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array-buffer.is-view');
-var path = require('../../internals/path');
-
-module.exports = path.ArrayBuffer.isView;
diff --git a/node_modules/core-js-pure/es/array-buffer/slice.js b/node_modules/core-js-pure/es/array-buffer/slice.js
deleted file mode 100644
index 931f8bc..0000000
--- a/node_modules/core-js-pure/es/array-buffer/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.array-buffer.slice');
diff --git a/node_modules/core-js-pure/es/array/concat.js b/node_modules/core-js-pure/es/array/concat.js
deleted file mode 100644
index 9a13ce6..0000000
--- a/node_modules/core-js-pure/es/array/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.concat');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'concat');
diff --git a/node_modules/core-js-pure/es/array/copy-within.js b/node_modules/core-js-pure/es/array/copy-within.js
deleted file mode 100644
index de8032f..0000000
--- a/node_modules/core-js-pure/es/array/copy-within.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.copy-within');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'copyWithin');
diff --git a/node_modules/core-js-pure/es/array/entries.js b/node_modules/core-js-pure/es/array/entries.js
deleted file mode 100644
index efd91b0..0000000
--- a/node_modules/core-js-pure/es/array/entries.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'entries');
diff --git a/node_modules/core-js-pure/es/array/every.js b/node_modules/core-js-pure/es/array/every.js
deleted file mode 100644
index b95c87f..0000000
--- a/node_modules/core-js-pure/es/array/every.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.every');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'every');
diff --git a/node_modules/core-js-pure/es/array/fill.js b/node_modules/core-js-pure/es/array/fill.js
deleted file mode 100644
index c52d60a..0000000
--- a/node_modules/core-js-pure/es/array/fill.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.fill');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'fill');
diff --git a/node_modules/core-js-pure/es/array/filter.js b/node_modules/core-js-pure/es/array/filter.js
deleted file mode 100644
index f1d0e16..0000000
--- a/node_modules/core-js-pure/es/array/filter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.filter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'filter');
diff --git a/node_modules/core-js-pure/es/array/find-index.js b/node_modules/core-js-pure/es/array/find-index.js
deleted file mode 100644
index 9ccbdda..0000000
--- a/node_modules/core-js-pure/es/array/find-index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.find-index');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'findIndex');
diff --git a/node_modules/core-js-pure/es/array/find.js b/node_modules/core-js-pure/es/array/find.js
deleted file mode 100644
index 7b3cc38..0000000
--- a/node_modules/core-js-pure/es/array/find.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.find');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'find');
diff --git a/node_modules/core-js-pure/es/array/flat-map.js b/node_modules/core-js-pure/es/array/flat-map.js
deleted file mode 100644
index f201cbb..0000000
--- a/node_modules/core-js-pure/es/array/flat-map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.array.flat-map');
-require('../../modules/es.array.unscopables.flat-map');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'flatMap');
diff --git a/node_modules/core-js-pure/es/array/flat.js b/node_modules/core-js-pure/es/array/flat.js
deleted file mode 100644
index c671760..0000000
--- a/node_modules/core-js-pure/es/array/flat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.array.flat');
-require('../../modules/es.array.unscopables.flat');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'flat');
diff --git a/node_modules/core-js-pure/es/array/for-each.js b/node_modules/core-js-pure/es/array/for-each.js
deleted file mode 100644
index 2851813..0000000
--- a/node_modules/core-js-pure/es/array/for-each.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.for-each');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'forEach');
diff --git a/node_modules/core-js-pure/es/array/from.js b/node_modules/core-js-pure/es/array/from.js
deleted file mode 100644
index f54806d..0000000
--- a/node_modules/core-js-pure/es/array/from.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.string.iterator');
-require('../../modules/es.array.from');
-var path = require('../../internals/path');
-
-module.exports = path.Array.from;
diff --git a/node_modules/core-js-pure/es/array/includes.js b/node_modules/core-js-pure/es/array/includes.js
deleted file mode 100644
index 06f837c..0000000
--- a/node_modules/core-js-pure/es/array/includes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.includes');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'includes');
diff --git a/node_modules/core-js-pure/es/array/index-of.js b/node_modules/core-js-pure/es/array/index-of.js
deleted file mode 100644
index 83e91e7..0000000
--- a/node_modules/core-js-pure/es/array/index-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.index-of');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'indexOf');
diff --git a/node_modules/core-js-pure/es/array/index.js b/node_modules/core-js-pure/es/array/index.js
deleted file mode 100644
index 8c18680..0000000
--- a/node_modules/core-js-pure/es/array/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-require('../../modules/es.string.iterator');
-require('../../modules/es.array.from');
-require('../../modules/es.array.is-array');
-require('../../modules/es.array.of');
-require('../../modules/es.array.concat');
-require('../../modules/es.array.copy-within');
-require('../../modules/es.array.every');
-require('../../modules/es.array.fill');
-require('../../modules/es.array.filter');
-require('../../modules/es.array.find');
-require('../../modules/es.array.find-index');
-require('../../modules/es.array.flat');
-require('../../modules/es.array.flat-map');
-require('../../modules/es.array.for-each');
-require('../../modules/es.array.includes');
-require('../../modules/es.array.index-of');
-require('../../modules/es.array.iterator');
-require('../../modules/es.array.join');
-require('../../modules/es.array.last-index-of');
-require('../../modules/es.array.map');
-require('../../modules/es.array.reduce');
-require('../../modules/es.array.reduce-right');
-require('../../modules/es.array.reverse');
-require('../../modules/es.array.slice');
-require('../../modules/es.array.some');
-require('../../modules/es.array.sort');
-require('../../modules/es.array.species');
-require('../../modules/es.array.splice');
-require('../../modules/es.array.unscopables.flat');
-require('../../modules/es.array.unscopables.flat-map');
-var path = require('../../internals/path');
-
-module.exports = path.Array;
diff --git a/node_modules/core-js-pure/es/array/is-array.js b/node_modules/core-js-pure/es/array/is-array.js
deleted file mode 100644
index d000180..0000000
--- a/node_modules/core-js-pure/es/array/is-array.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.is-array');
-var path = require('../../internals/path');
-
-module.exports = path.Array.isArray;
diff --git a/node_modules/core-js-pure/es/array/iterator.js b/node_modules/core-js-pure/es/array/iterator.js
deleted file mode 100644
index 726484e..0000000
--- a/node_modules/core-js-pure/es/array/iterator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'values');
diff --git a/node_modules/core-js-pure/es/array/join.js b/node_modules/core-js-pure/es/array/join.js
deleted file mode 100644
index 523edbf..0000000
--- a/node_modules/core-js-pure/es/array/join.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.join');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'join');
diff --git a/node_modules/core-js-pure/es/array/keys.js b/node_modules/core-js-pure/es/array/keys.js
deleted file mode 100644
index 679d525..0000000
--- a/node_modules/core-js-pure/es/array/keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'keys');
diff --git a/node_modules/core-js-pure/es/array/last-index-of.js b/node_modules/core-js-pure/es/array/last-index-of.js
deleted file mode 100644
index 616897f..0000000
--- a/node_modules/core-js-pure/es/array/last-index-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.last-index-of');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'lastIndexOf');
diff --git a/node_modules/core-js-pure/es/array/map.js b/node_modules/core-js-pure/es/array/map.js
deleted file mode 100644
index 6b641fe..0000000
--- a/node_modules/core-js-pure/es/array/map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.map');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'map');
diff --git a/node_modules/core-js-pure/es/array/of.js b/node_modules/core-js-pure/es/array/of.js
deleted file mode 100644
index 5153029..0000000
--- a/node_modules/core-js-pure/es/array/of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.of');
-var path = require('../../internals/path');
-
-module.exports = path.Array.of;
diff --git a/node_modules/core-js-pure/es/array/reduce-right.js b/node_modules/core-js-pure/es/array/reduce-right.js
deleted file mode 100644
index 43cb972..0000000
--- a/node_modules/core-js-pure/es/array/reduce-right.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.reduce-right');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'reduceRight');
diff --git a/node_modules/core-js-pure/es/array/reduce.js b/node_modules/core-js-pure/es/array/reduce.js
deleted file mode 100644
index db06a3f..0000000
--- a/node_modules/core-js-pure/es/array/reduce.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.reduce');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'reduce');
diff --git a/node_modules/core-js-pure/es/array/reverse.js b/node_modules/core-js-pure/es/array/reverse.js
deleted file mode 100644
index d5cc94e..0000000
--- a/node_modules/core-js-pure/es/array/reverse.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.reverse');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'reverse');
diff --git a/node_modules/core-js-pure/es/array/slice.js b/node_modules/core-js-pure/es/array/slice.js
deleted file mode 100644
index 0c9eb94..0000000
--- a/node_modules/core-js-pure/es/array/slice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.slice');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'slice');
diff --git a/node_modules/core-js-pure/es/array/some.js b/node_modules/core-js-pure/es/array/some.js
deleted file mode 100644
index 407d556..0000000
--- a/node_modules/core-js-pure/es/array/some.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.some');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'some');
diff --git a/node_modules/core-js-pure/es/array/sort.js b/node_modules/core-js-pure/es/array/sort.js
deleted file mode 100644
index 0336090..0000000
--- a/node_modules/core-js-pure/es/array/sort.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.sort');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'sort');
diff --git a/node_modules/core-js-pure/es/array/splice.js b/node_modules/core-js-pure/es/array/splice.js
deleted file mode 100644
index 95b51f0..0000000
--- a/node_modules/core-js-pure/es/array/splice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.splice');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'splice');
diff --git a/node_modules/core-js-pure/es/array/values.js b/node_modules/core-js-pure/es/array/values.js
deleted file mode 100644
index 726484e..0000000
--- a/node_modules/core-js-pure/es/array/values.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.array.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'values');
diff --git a/node_modules/core-js-pure/es/array/virtual/concat.js b/node_modules/core-js-pure/es/array/virtual/concat.js
deleted file mode 100644
index fc9eb03..0000000
--- a/node_modules/core-js-pure/es/array/virtual/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.concat');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').concat;
diff --git a/node_modules/core-js-pure/es/array/virtual/copy-within.js b/node_modules/core-js-pure/es/array/virtual/copy-within.js
deleted file mode 100644
index 71cc9bd..0000000
--- a/node_modules/core-js-pure/es/array/virtual/copy-within.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.copy-within');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').copyWithin;
diff --git a/node_modules/core-js-pure/es/array/virtual/entries.js b/node_modules/core-js-pure/es/array/virtual/entries.js
deleted file mode 100644
index 1ce2e78..0000000
--- a/node_modules/core-js-pure/es/array/virtual/entries.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.iterator');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').entries;
diff --git a/node_modules/core-js-pure/es/array/virtual/every.js b/node_modules/core-js-pure/es/array/virtual/every.js
deleted file mode 100644
index cc45acc..0000000
--- a/node_modules/core-js-pure/es/array/virtual/every.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.every');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').every;
diff --git a/node_modules/core-js-pure/es/array/virtual/fill.js b/node_modules/core-js-pure/es/array/virtual/fill.js
deleted file mode 100644
index 75b5c8b..0000000
--- a/node_modules/core-js-pure/es/array/virtual/fill.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.fill');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').fill;
diff --git a/node_modules/core-js-pure/es/array/virtual/filter.js b/node_modules/core-js-pure/es/array/virtual/filter.js
deleted file mode 100644
index 90cb323..0000000
--- a/node_modules/core-js-pure/es/array/virtual/filter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.filter');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').filter;
diff --git a/node_modules/core-js-pure/es/array/virtual/find-index.js b/node_modules/core-js-pure/es/array/virtual/find-index.js
deleted file mode 100644
index ff1a621..0000000
--- a/node_modules/core-js-pure/es/array/virtual/find-index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.find-index');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').findIndex;
diff --git a/node_modules/core-js-pure/es/array/virtual/find.js b/node_modules/core-js-pure/es/array/virtual/find.js
deleted file mode 100644
index a4372bd..0000000
--- a/node_modules/core-js-pure/es/array/virtual/find.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.find');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').find;
diff --git a/node_modules/core-js-pure/es/array/virtual/flat-map.js b/node_modules/core-js-pure/es/array/virtual/flat-map.js
deleted file mode 100644
index 9e379f4..0000000
--- a/node_modules/core-js-pure/es/array/virtual/flat-map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../../modules/es.array.flat-map');
-require('../../../modules/es.array.unscopables.flat-map');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').flatMap;
diff --git a/node_modules/core-js-pure/es/array/virtual/flat.js b/node_modules/core-js-pure/es/array/virtual/flat.js
deleted file mode 100644
index 60b772e..0000000
--- a/node_modules/core-js-pure/es/array/virtual/flat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../../modules/es.array.flat');
-require('../../../modules/es.array.unscopables.flat');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').flat;
diff --git a/node_modules/core-js-pure/es/array/virtual/for-each.js b/node_modules/core-js-pure/es/array/virtual/for-each.js
deleted file mode 100644
index c65b26c..0000000
--- a/node_modules/core-js-pure/es/array/virtual/for-each.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.for-each');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').forEach;
diff --git a/node_modules/core-js-pure/es/array/virtual/includes.js b/node_modules/core-js-pure/es/array/virtual/includes.js
deleted file mode 100644
index 732d58b..0000000
--- a/node_modules/core-js-pure/es/array/virtual/includes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.includes');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').includes;
diff --git a/node_modules/core-js-pure/es/array/virtual/index-of.js b/node_modules/core-js-pure/es/array/virtual/index-of.js
deleted file mode 100644
index 074e191..0000000
--- a/node_modules/core-js-pure/es/array/virtual/index-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.index-of');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').indexOf;
diff --git a/node_modules/core-js-pure/es/array/virtual/index.js b/node_modules/core-js-pure/es/array/virtual/index.js
deleted file mode 100644
index f1455e1..0000000
--- a/node_modules/core-js-pure/es/array/virtual/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-require('../../../modules/es.array.concat');
-require('../../../modules/es.array.copy-within');
-require('../../../modules/es.array.every');
-require('../../../modules/es.array.fill');
-require('../../../modules/es.array.filter');
-require('../../../modules/es.array.find');
-require('../../../modules/es.array.find-index');
-require('../../../modules/es.array.flat');
-require('../../../modules/es.array.flat-map');
-require('../../../modules/es.array.for-each');
-require('../../../modules/es.array.includes');
-require('../../../modules/es.array.index-of');
-require('../../../modules/es.array.iterator');
-require('../../../modules/es.array.join');
-require('../../../modules/es.array.last-index-of');
-require('../../../modules/es.array.map');
-require('../../../modules/es.array.reduce');
-require('../../../modules/es.array.reduce-right');
-require('../../../modules/es.array.reverse');
-require('../../../modules/es.array.slice');
-require('../../../modules/es.array.some');
-require('../../../modules/es.array.sort');
-require('../../../modules/es.array.species');
-require('../../../modules/es.array.splice');
-require('../../../modules/es.array.unscopables.flat');
-require('../../../modules/es.array.unscopables.flat-map');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array');
diff --git a/node_modules/core-js-pure/es/array/virtual/iterator.js b/node_modules/core-js-pure/es/array/virtual/iterator.js
deleted file mode 100644
index cd9f502..0000000
--- a/node_modules/core-js-pure/es/array/virtual/iterator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.iterator');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').values;
diff --git a/node_modules/core-js-pure/es/array/virtual/join.js b/node_modules/core-js-pure/es/array/virtual/join.js
deleted file mode 100644
index 8cb329e..0000000
--- a/node_modules/core-js-pure/es/array/virtual/join.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.join');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').join;
diff --git a/node_modules/core-js-pure/es/array/virtual/keys.js b/node_modules/core-js-pure/es/array/virtual/keys.js
deleted file mode 100644
index 2882990..0000000
--- a/node_modules/core-js-pure/es/array/virtual/keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.iterator');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').keys;
diff --git a/node_modules/core-js-pure/es/array/virtual/last-index-of.js b/node_modules/core-js-pure/es/array/virtual/last-index-of.js
deleted file mode 100644
index ca1ae9b..0000000
--- a/node_modules/core-js-pure/es/array/virtual/last-index-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.last-index-of');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').lastIndexOf;
diff --git a/node_modules/core-js-pure/es/array/virtual/map.js b/node_modules/core-js-pure/es/array/virtual/map.js
deleted file mode 100644
index 7205f96..0000000
--- a/node_modules/core-js-pure/es/array/virtual/map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.map');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').map;
diff --git a/node_modules/core-js-pure/es/array/virtual/reduce-right.js b/node_modules/core-js-pure/es/array/virtual/reduce-right.js
deleted file mode 100644
index 0ad5926..0000000
--- a/node_modules/core-js-pure/es/array/virtual/reduce-right.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.reduce-right');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').reduceRight;
diff --git a/node_modules/core-js-pure/es/array/virtual/reduce.js b/node_modules/core-js-pure/es/array/virtual/reduce.js
deleted file mode 100644
index d9b01c4..0000000
--- a/node_modules/core-js-pure/es/array/virtual/reduce.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.reduce');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').reduce;
diff --git a/node_modules/core-js-pure/es/array/virtual/reverse.js b/node_modules/core-js-pure/es/array/virtual/reverse.js
deleted file mode 100644
index 31ca6d8..0000000
--- a/node_modules/core-js-pure/es/array/virtual/reverse.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.reverse');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').reverse;
diff --git a/node_modules/core-js-pure/es/array/virtual/slice.js b/node_modules/core-js-pure/es/array/virtual/slice.js
deleted file mode 100644
index f60f5d5..0000000
--- a/node_modules/core-js-pure/es/array/virtual/slice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.slice');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').slice;
diff --git a/node_modules/core-js-pure/es/array/virtual/some.js b/node_modules/core-js-pure/es/array/virtual/some.js
deleted file mode 100644
index a7ae18f..0000000
--- a/node_modules/core-js-pure/es/array/virtual/some.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.some');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').some;
diff --git a/node_modules/core-js-pure/es/array/virtual/sort.js b/node_modules/core-js-pure/es/array/virtual/sort.js
deleted file mode 100644
index b7e0a46..0000000
--- a/node_modules/core-js-pure/es/array/virtual/sort.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.sort');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').sort;
diff --git a/node_modules/core-js-pure/es/array/virtual/splice.js b/node_modules/core-js-pure/es/array/virtual/splice.js
deleted file mode 100644
index 2533cec..0000000
--- a/node_modules/core-js-pure/es/array/virtual/splice.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.splice');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').splice;
diff --git a/node_modules/core-js-pure/es/array/virtual/values.js b/node_modules/core-js-pure/es/array/virtual/values.js
deleted file mode 100644
index cd9f502..0000000
--- a/node_modules/core-js-pure/es/array/virtual/values.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.array.iterator');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').values;
diff --git a/node_modules/core-js-pure/es/data-view/index.js b/node_modules/core-js-pure/es/data-view/index.js
deleted file mode 100644
index da3582d..0000000
--- a/node_modules/core-js-pure/es/data-view/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.data-view');
-require('../../modules/es.object.to-string');
-var path = require('../../internals/path');
-
-module.exports = path.DataView;
diff --git a/node_modules/core-js-pure/es/date/index.js b/node_modules/core-js-pure/es/date/index.js
deleted file mode 100644
index 88e7a58..0000000
--- a/node_modules/core-js-pure/es/date/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.date.now');
-require('../../modules/es.date.to-json');
-require('../../modules/es.date.to-iso-string');
-require('../../modules/es.date.to-string');
-require('../../modules/es.date.to-primitive');
-var path = require('../../internals/path');
-
-module.exports = path.Date;
diff --git a/node_modules/core-js-pure/es/date/now.js b/node_modules/core-js-pure/es/date/now.js
deleted file mode 100644
index ed6843e..0000000
--- a/node_modules/core-js-pure/es/date/now.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.date.now');
-var path = require('../../internals/path');
-
-module.exports = path.Date.now;
diff --git a/node_modules/core-js-pure/es/date/to-iso-string.js b/node_modules/core-js-pure/es/date/to-iso-string.js
deleted file mode 100644
index ee06767..0000000
--- a/node_modules/core-js-pure/es/date/to-iso-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.date.to-iso-string');
-require('../../modules/es.date.to-json');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Date', 'toISOString');
diff --git a/node_modules/core-js-pure/es/date/to-json.js b/node_modules/core-js-pure/es/date/to-json.js
deleted file mode 100644
index 1fa104a..0000000
--- a/node_modules/core-js-pure/es/date/to-json.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.date.to-json');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Date', 'toJSON');
diff --git a/node_modules/core-js-pure/es/date/to-primitive.js b/node_modules/core-js-pure/es/date/to-primitive.js
deleted file mode 100644
index 07bdd33..0000000
--- a/node_modules/core-js-pure/es/date/to-primitive.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.date.to-primitive');
-var toPrimitive = require('../../internals/date-to-primitive');
-
-module.exports = function (it, hint) {
-  return toPrimitive.call(it, hint);
-};
diff --git a/node_modules/core-js-pure/es/date/to-string.js b/node_modules/core-js-pure/es/date/to-string.js
deleted file mode 100644
index 18b7135..0000000
--- a/node_modules/core-js-pure/es/date/to-string.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.date.to-string');
-var dateToString = Date.prototype.toString;
-
-module.exports = function toString(it) {
-  return dateToString.call(it);
-};
diff --git a/node_modules/core-js-pure/es/function/bind.js b/node_modules/core-js-pure/es/function/bind.js
deleted file mode 100644
index a3e3575..0000000
--- a/node_modules/core-js-pure/es/function/bind.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.function.bind');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Function', 'bind');
diff --git a/node_modules/core-js-pure/es/function/has-instance.js b/node_modules/core-js-pure/es/function/has-instance.js
deleted file mode 100644
index 33722b0..0000000
--- a/node_modules/core-js-pure/es/function/has-instance.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.function.has-instance');
-var wellKnownSymbol = require('../../internals/well-known-symbol');
-
-module.exports = Function[wellKnownSymbol('hasInstance')];
diff --git a/node_modules/core-js-pure/es/function/index.js b/node_modules/core-js-pure/es/function/index.js
deleted file mode 100644
index 9caa29d..0000000
--- a/node_modules/core-js-pure/es/function/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.function.bind');
-require('../../modules/es.function.name');
-require('../../modules/es.function.has-instance');
-var path = require('../../internals/path');
-
-module.exports = path.Function;
diff --git a/node_modules/core-js-pure/es/function/name.js b/node_modules/core-js-pure/es/function/name.js
deleted file mode 100644
index 43344db..0000000
--- a/node_modules/core-js-pure/es/function/name.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.function.name');
diff --git a/node_modules/core-js-pure/es/function/virtual/bind.js b/node_modules/core-js-pure/es/function/virtual/bind.js
deleted file mode 100644
index 7ec110d..0000000
--- a/node_modules/core-js-pure/es/function/virtual/bind.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.function.bind');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Function').bind;
diff --git a/node_modules/core-js-pure/es/function/virtual/index.js b/node_modules/core-js-pure/es/function/virtual/index.js
deleted file mode 100644
index 0a01135..0000000
--- a/node_modules/core-js-pure/es/function/virtual/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.function.bind');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Function');
diff --git a/node_modules/core-js-pure/es/global-this.js b/node_modules/core-js-pure/es/global-this.js
deleted file mode 100644
index 5ffa1dd..0000000
--- a/node_modules/core-js-pure/es/global-this.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/es.global-this');
-
-module.exports = require('../internals/global');
diff --git a/node_modules/core-js-pure/es/index.js b/node_modules/core-js-pure/es/index.js
deleted file mode 100644
index 9436a37..0000000
--- a/node_modules/core-js-pure/es/index.js
+++ /dev/null
@@ -1,210 +0,0 @@
-require('../modules/es.symbol');
-require('../modules/es.symbol.async-iterator');
-require('../modules/es.symbol.description');
-require('../modules/es.symbol.has-instance');
-require('../modules/es.symbol.is-concat-spreadable');
-require('../modules/es.symbol.iterator');
-require('../modules/es.symbol.match');
-require('../modules/es.symbol.match-all');
-require('../modules/es.symbol.replace');
-require('../modules/es.symbol.search');
-require('../modules/es.symbol.species');
-require('../modules/es.symbol.split');
-require('../modules/es.symbol.to-primitive');
-require('../modules/es.symbol.to-string-tag');
-require('../modules/es.symbol.unscopables');
-require('../modules/es.object.assign');
-require('../modules/es.object.create');
-require('../modules/es.object.define-property');
-require('../modules/es.object.define-properties');
-require('../modules/es.object.entries');
-require('../modules/es.object.freeze');
-require('../modules/es.object.from-entries');
-require('../modules/es.object.get-own-property-descriptor');
-require('../modules/es.object.get-own-property-descriptors');
-require('../modules/es.object.get-own-property-names');
-require('../modules/es.object.get-prototype-of');
-require('../modules/es.object.is');
-require('../modules/es.object.is-extensible');
-require('../modules/es.object.is-frozen');
-require('../modules/es.object.is-sealed');
-require('../modules/es.object.keys');
-require('../modules/es.object.prevent-extensions');
-require('../modules/es.object.seal');
-require('../modules/es.object.set-prototype-of');
-require('../modules/es.object.values');
-require('../modules/es.object.to-string');
-require('../modules/es.object.define-getter');
-require('../modules/es.object.define-setter');
-require('../modules/es.object.lookup-getter');
-require('../modules/es.object.lookup-setter');
-require('../modules/es.function.bind');
-require('../modules/es.function.name');
-require('../modules/es.function.has-instance');
-require('../modules/es.global-this');
-require('../modules/es.array.from');
-require('../modules/es.array.is-array');
-require('../modules/es.array.of');
-require('../modules/es.array.concat');
-require('../modules/es.array.copy-within');
-require('../modules/es.array.every');
-require('../modules/es.array.fill');
-require('../modules/es.array.filter');
-require('../modules/es.array.find');
-require('../modules/es.array.find-index');
-require('../modules/es.array.flat');
-require('../modules/es.array.flat-map');
-require('../modules/es.array.for-each');
-require('../modules/es.array.includes');
-require('../modules/es.array.index-of');
-require('../modules/es.array.join');
-require('../modules/es.array.last-index-of');
-require('../modules/es.array.map');
-require('../modules/es.array.reduce');
-require('../modules/es.array.reduce-right');
-require('../modules/es.array.reverse');
-require('../modules/es.array.slice');
-require('../modules/es.array.some');
-require('../modules/es.array.sort');
-require('../modules/es.array.splice');
-require('../modules/es.array.species');
-require('../modules/es.array.unscopables.flat');
-require('../modules/es.array.unscopables.flat-map');
-require('../modules/es.array.iterator');
-require('../modules/es.string.from-code-point');
-require('../modules/es.string.raw');
-require('../modules/es.string.code-point-at');
-require('../modules/es.string.ends-with');
-require('../modules/es.string.includes');
-require('../modules/es.string.match');
-require('../modules/es.string.match-all');
-require('../modules/es.string.pad-end');
-require('../modules/es.string.pad-start');
-require('../modules/es.string.repeat');
-require('../modules/es.string.replace');
-require('../modules/es.string.search');
-require('../modules/es.string.split');
-require('../modules/es.string.starts-with');
-require('../modules/es.string.trim');
-require('../modules/es.string.trim-start');
-require('../modules/es.string.trim-end');
-require('../modules/es.string.iterator');
-require('../modules/es.string.anchor');
-require('../modules/es.string.big');
-require('../modules/es.string.blink');
-require('../modules/es.string.bold');
-require('../modules/es.string.fixed');
-require('../modules/es.string.fontcolor');
-require('../modules/es.string.fontsize');
-require('../modules/es.string.italics');
-require('../modules/es.string.link');
-require('../modules/es.string.small');
-require('../modules/es.string.strike');
-require('../modules/es.string.sub');
-require('../modules/es.string.sup');
-require('../modules/es.regexp.constructor');
-require('../modules/es.regexp.exec');
-require('../modules/es.regexp.flags');
-require('../modules/es.regexp.sticky');
-require('../modules/es.regexp.test');
-require('../modules/es.regexp.to-string');
-require('../modules/es.parse-int');
-require('../modules/es.parse-float');
-require('../modules/es.number.constructor');
-require('../modules/es.number.epsilon');
-require('../modules/es.number.is-finite');
-require('../modules/es.number.is-integer');
-require('../modules/es.number.is-nan');
-require('../modules/es.number.is-safe-integer');
-require('../modules/es.number.max-safe-integer');
-require('../modules/es.number.min-safe-integer');
-require('../modules/es.number.parse-float');
-require('../modules/es.number.parse-int');
-require('../modules/es.number.to-fixed');
-require('../modules/es.number.to-precision');
-require('../modules/es.math.acosh');
-require('../modules/es.math.asinh');
-require('../modules/es.math.atanh');
-require('../modules/es.math.cbrt');
-require('../modules/es.math.clz32');
-require('../modules/es.math.cosh');
-require('../modules/es.math.expm1');
-require('../modules/es.math.fround');
-require('../modules/es.math.hypot');
-require('../modules/es.math.imul');
-require('../modules/es.math.log10');
-require('../modules/es.math.log1p');
-require('../modules/es.math.log2');
-require('../modules/es.math.sign');
-require('../modules/es.math.sinh');
-require('../modules/es.math.tanh');
-require('../modules/es.math.to-string-tag');
-require('../modules/es.math.trunc');
-require('../modules/es.date.now');
-require('../modules/es.date.to-json');
-require('../modules/es.date.to-iso-string');
-require('../modules/es.date.to-string');
-require('../modules/es.date.to-primitive');
-require('../modules/es.json.stringify');
-require('../modules/es.json.to-string-tag');
-require('../modules/es.promise');
-require('../modules/es.promise.all-settled');
-require('../modules/es.promise.finally');
-require('../modules/es.map');
-require('../modules/es.set');
-require('../modules/es.weak-map');
-require('../modules/es.weak-set');
-require('../modules/es.array-buffer.constructor');
-require('../modules/es.array-buffer.is-view');
-require('../modules/es.array-buffer.slice');
-require('../modules/es.data-view');
-require('../modules/es.typed-array.int8-array');
-require('../modules/es.typed-array.uint8-array');
-require('../modules/es.typed-array.uint8-clamped-array');
-require('../modules/es.typed-array.int16-array');
-require('../modules/es.typed-array.uint16-array');
-require('../modules/es.typed-array.int32-array');
-require('../modules/es.typed-array.uint32-array');
-require('../modules/es.typed-array.float32-array');
-require('../modules/es.typed-array.float64-array');
-require('../modules/es.typed-array.from');
-require('../modules/es.typed-array.of');
-require('../modules/es.typed-array.copy-within');
-require('../modules/es.typed-array.every');
-require('../modules/es.typed-array.fill');
-require('../modules/es.typed-array.filter');
-require('../modules/es.typed-array.find');
-require('../modules/es.typed-array.find-index');
-require('../modules/es.typed-array.for-each');
-require('../modules/es.typed-array.includes');
-require('../modules/es.typed-array.index-of');
-require('../modules/es.typed-array.iterator');
-require('../modules/es.typed-array.join');
-require('../modules/es.typed-array.last-index-of');
-require('../modules/es.typed-array.map');
-require('../modules/es.typed-array.reduce');
-require('../modules/es.typed-array.reduce-right');
-require('../modules/es.typed-array.reverse');
-require('../modules/es.typed-array.set');
-require('../modules/es.typed-array.slice');
-require('../modules/es.typed-array.some');
-require('../modules/es.typed-array.sort');
-require('../modules/es.typed-array.subarray');
-require('../modules/es.typed-array.to-locale-string');
-require('../modules/es.typed-array.to-string');
-require('../modules/es.reflect.apply');
-require('../modules/es.reflect.construct');
-require('../modules/es.reflect.define-property');
-require('../modules/es.reflect.delete-property');
-require('../modules/es.reflect.get');
-require('../modules/es.reflect.get-own-property-descriptor');
-require('../modules/es.reflect.get-prototype-of');
-require('../modules/es.reflect.has');
-require('../modules/es.reflect.is-extensible');
-require('../modules/es.reflect.own-keys');
-require('../modules/es.reflect.prevent-extensions');
-require('../modules/es.reflect.set');
-require('../modules/es.reflect.set-prototype-of');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/es/instance/bind.js b/node_modules/core-js-pure/es/instance/bind.js
deleted file mode 100644
index 11f932a..0000000
--- a/node_modules/core-js-pure/es/instance/bind.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var bind = require('../function/virtual/bind');
-
-var FunctionPrototype = Function.prototype;
-
-module.exports = function (it) {
-  var own = it.bind;
-  return it === FunctionPrototype || (it instanceof Function && own === FunctionPrototype.bind) ? bind : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/code-point-at.js b/node_modules/core-js-pure/es/instance/code-point-at.js
deleted file mode 100644
index c4eaa42..0000000
--- a/node_modules/core-js-pure/es/instance/code-point-at.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var codePointAt = require('../string/virtual/code-point-at');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.codePointAt;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.codePointAt) ? codePointAt : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/concat.js b/node_modules/core-js-pure/es/instance/concat.js
deleted file mode 100644
index 87b7413..0000000
--- a/node_modules/core-js-pure/es/instance/concat.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var concat = require('../array/virtual/concat');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.concat;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.concat) ? concat : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/copy-within.js b/node_modules/core-js-pure/es/instance/copy-within.js
deleted file mode 100644
index c59f52d..0000000
--- a/node_modules/core-js-pure/es/instance/copy-within.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var copyWithin = require('../array/virtual/copy-within');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.copyWithin;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.copyWithin) ? copyWithin : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/ends-with.js b/node_modules/core-js-pure/es/instance/ends-with.js
deleted file mode 100644
index 532d6f7..0000000
--- a/node_modules/core-js-pure/es/instance/ends-with.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var endsWith = require('../string/virtual/ends-with');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.endsWith;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.endsWith) ? endsWith : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/entries.js b/node_modules/core-js-pure/es/instance/entries.js
deleted file mode 100644
index 8aedc41..0000000
--- a/node_modules/core-js-pure/es/instance/entries.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var entries = require('../array/virtual/entries');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.entries;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.entries) ? entries : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/every.js b/node_modules/core-js-pure/es/instance/every.js
deleted file mode 100644
index 1faaccb..0000000
--- a/node_modules/core-js-pure/es/instance/every.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var every = require('../array/virtual/every');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.every;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.every) ? every : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/fill.js b/node_modules/core-js-pure/es/instance/fill.js
deleted file mode 100644
index 5d0f22b..0000000
--- a/node_modules/core-js-pure/es/instance/fill.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var fill = require('../array/virtual/fill');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.fill;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.fill) ? fill : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/filter.js b/node_modules/core-js-pure/es/instance/filter.js
deleted file mode 100644
index 8ba32b6..0000000
--- a/node_modules/core-js-pure/es/instance/filter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var filter = require('../array/virtual/filter');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.filter;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.filter) ? filter : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/find-index.js b/node_modules/core-js-pure/es/instance/find-index.js
deleted file mode 100644
index 27a0583..0000000
--- a/node_modules/core-js-pure/es/instance/find-index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var findIndex = require('../array/virtual/find-index');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.findIndex;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.findIndex) ? findIndex : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/find.js b/node_modules/core-js-pure/es/instance/find.js
deleted file mode 100644
index 70443c7..0000000
--- a/node_modules/core-js-pure/es/instance/find.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var find = require('../array/virtual/find');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.find;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.find) ? find : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/flags.js b/node_modules/core-js-pure/es/instance/flags.js
deleted file mode 100644
index f0b9114..0000000
--- a/node_modules/core-js-pure/es/instance/flags.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var flags = require('../regexp/flags');
-
-var RegExpPrototype = RegExp.prototype;
-
-module.exports = function (it) {
-  return (it === RegExpPrototype || it instanceof RegExp) && !('flags' in it) ? flags(it) : it.flags;
-};
diff --git a/node_modules/core-js-pure/es/instance/flat-map.js b/node_modules/core-js-pure/es/instance/flat-map.js
deleted file mode 100644
index eca5a41..0000000
--- a/node_modules/core-js-pure/es/instance/flat-map.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var flatMap = require('../array/virtual/flat-map');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.flatMap;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.flatMap) ? flatMap : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/flat.js b/node_modules/core-js-pure/es/instance/flat.js
deleted file mode 100644
index 186a729..0000000
--- a/node_modules/core-js-pure/es/instance/flat.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var flat = require('../array/virtual/flat');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.flat;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.flat) ? flat : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/for-each.js b/node_modules/core-js-pure/es/instance/for-each.js
deleted file mode 100644
index 3a2e6a9..0000000
--- a/node_modules/core-js-pure/es/instance/for-each.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var forEach = require('../array/virtual/for-each');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.forEach;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach) ? forEach : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/includes.js b/node_modules/core-js-pure/es/instance/includes.js
deleted file mode 100644
index d282373..0000000
--- a/node_modules/core-js-pure/es/instance/includes.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var arrayIncludes = require('../array/virtual/includes');
-var stringIncludes = require('../string/virtual/includes');
-
-var ArrayPrototype = Array.prototype;
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.includes;
-  if (it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.includes)) return arrayIncludes;
-  if (typeof it === 'string' || it === StringPrototype || (it instanceof String && own === StringPrototype.includes)) {
-    return stringIncludes;
-  } return own;
-};
diff --git a/node_modules/core-js-pure/es/instance/index-of.js b/node_modules/core-js-pure/es/instance/index-of.js
deleted file mode 100644
index a5fa42a..0000000
--- a/node_modules/core-js-pure/es/instance/index-of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var indexOf = require('../array/virtual/index-of');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.indexOf;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.indexOf) ? indexOf : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/keys.js b/node_modules/core-js-pure/es/instance/keys.js
deleted file mode 100644
index 0e2dca2..0000000
--- a/node_modules/core-js-pure/es/instance/keys.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var keys = require('../array/virtual/keys');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.keys;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.keys) ? keys : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/last-index-of.js b/node_modules/core-js-pure/es/instance/last-index-of.js
deleted file mode 100644
index 729bc65..0000000
--- a/node_modules/core-js-pure/es/instance/last-index-of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var lastIndexOf = require('../array/virtual/last-index-of');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.lastIndexOf;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.lastIndexOf) ? lastIndexOf : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/map.js b/node_modules/core-js-pure/es/instance/map.js
deleted file mode 100644
index 4d2d17f..0000000
--- a/node_modules/core-js-pure/es/instance/map.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var map = require('../array/virtual/map');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.map;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.map) ? map : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/match-all.js b/node_modules/core-js-pure/es/instance/match-all.js
deleted file mode 100644
index 2ab56b1..0000000
--- a/node_modules/core-js-pure/es/instance/match-all.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var matchAll = require('../string/virtual/match-all');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.matchAll;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.matchAll) ? matchAll : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/pad-end.js b/node_modules/core-js-pure/es/instance/pad-end.js
deleted file mode 100644
index 40ea603..0000000
--- a/node_modules/core-js-pure/es/instance/pad-end.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var padEnd = require('../string/virtual/pad-end');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.padEnd;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.padEnd) ? padEnd : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/pad-start.js b/node_modules/core-js-pure/es/instance/pad-start.js
deleted file mode 100644
index 1e3220c..0000000
--- a/node_modules/core-js-pure/es/instance/pad-start.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var padStart = require('../string/virtual/pad-start');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.padStart;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.padStart) ? padStart : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/reduce-right.js b/node_modules/core-js-pure/es/instance/reduce-right.js
deleted file mode 100644
index 6a8802f..0000000
--- a/node_modules/core-js-pure/es/instance/reduce-right.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var reduceRight = require('../array/virtual/reduce-right');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.reduceRight;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduceRight) ? reduceRight : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/reduce.js b/node_modules/core-js-pure/es/instance/reduce.js
deleted file mode 100644
index efa46a9..0000000
--- a/node_modules/core-js-pure/es/instance/reduce.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var reduce = require('../array/virtual/reduce');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.reduce;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduce) ? reduce : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/repeat.js b/node_modules/core-js-pure/es/instance/repeat.js
deleted file mode 100644
index d4c05ad..0000000
--- a/node_modules/core-js-pure/es/instance/repeat.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var repeat = require('../string/virtual/repeat');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.repeat;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.repeat) ? repeat : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/reverse.js b/node_modules/core-js-pure/es/instance/reverse.js
deleted file mode 100644
index ca4bfea..0000000
--- a/node_modules/core-js-pure/es/instance/reverse.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var reverse = require('../array/virtual/reverse');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.reverse;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reverse) ? reverse : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/slice.js b/node_modules/core-js-pure/es/instance/slice.js
deleted file mode 100644
index 03ef7a7..0000000
--- a/node_modules/core-js-pure/es/instance/slice.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var slice = require('../array/virtual/slice');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.slice;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.slice) ? slice : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/some.js b/node_modules/core-js-pure/es/instance/some.js
deleted file mode 100644
index 562c11e..0000000
--- a/node_modules/core-js-pure/es/instance/some.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var some = require('../array/virtual/some');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.some;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.some) ? some : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/sort.js b/node_modules/core-js-pure/es/instance/sort.js
deleted file mode 100644
index 96edb80..0000000
--- a/node_modules/core-js-pure/es/instance/sort.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var sort = require('../array/virtual/sort');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.sort;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.sort) ? sort : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/splice.js b/node_modules/core-js-pure/es/instance/splice.js
deleted file mode 100644
index 5b907f4..0000000
--- a/node_modules/core-js-pure/es/instance/splice.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var splice = require('../array/virtual/splice');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.splice;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.splice) ? splice : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/starts-with.js b/node_modules/core-js-pure/es/instance/starts-with.js
deleted file mode 100644
index 99a01a7..0000000
--- a/node_modules/core-js-pure/es/instance/starts-with.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var startsWith = require('../string/virtual/starts-with');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.startsWith;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.startsWith) ? startsWith : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/trim-end.js b/node_modules/core-js-pure/es/instance/trim-end.js
deleted file mode 100644
index c004cba..0000000
--- a/node_modules/core-js-pure/es/instance/trim-end.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var trimEnd = require('../string/virtual/trim-end');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.trimEnd;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.trimEnd) ? trimEnd : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/trim-left.js b/node_modules/core-js-pure/es/instance/trim-left.js
deleted file mode 100644
index fc5c309..0000000
--- a/node_modules/core-js-pure/es/instance/trim-left.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var trimLeft = require('../string/virtual/trim-left');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.trimLeft;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.trimLeft) ? trimLeft : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/trim-right.js b/node_modules/core-js-pure/es/instance/trim-right.js
deleted file mode 100644
index ef38eff..0000000
--- a/node_modules/core-js-pure/es/instance/trim-right.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var trimRight = require('../string/virtual/trim-right');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.trimRight;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.trimRight) ? trimRight : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/trim-start.js b/node_modules/core-js-pure/es/instance/trim-start.js
deleted file mode 100644
index 74a89bd..0000000
--- a/node_modules/core-js-pure/es/instance/trim-start.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var trimStart = require('../string/virtual/trim-start');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.trimStart;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.trimStart) ? trimStart : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/trim.js b/node_modules/core-js-pure/es/instance/trim.js
deleted file mode 100644
index cdd3ed9..0000000
--- a/node_modules/core-js-pure/es/instance/trim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var trim = require('../string/virtual/trim');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.trim;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.trim) ? trim : own;
-};
diff --git a/node_modules/core-js-pure/es/instance/values.js b/node_modules/core-js-pure/es/instance/values.js
deleted file mode 100644
index 52c76df..0000000
--- a/node_modules/core-js-pure/es/instance/values.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var values = require('../array/virtual/values');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.values;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.values) ? values : own;
-};
diff --git a/node_modules/core-js-pure/es/json/index.js b/node_modules/core-js-pure/es/json/index.js
deleted file mode 100644
index c16528a..0000000
--- a/node_modules/core-js-pure/es/json/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.json.stringify');
-require('../../modules/es.json.to-string-tag');
-var path = require('../../internals/path');
-
-module.exports = path.JSON || (path.JSON = { stringify: JSON.stringify });
diff --git a/node_modules/core-js-pure/es/json/stringify.js b/node_modules/core-js-pure/es/json/stringify.js
deleted file mode 100644
index 5bbebc9..0000000
--- a/node_modules/core-js-pure/es/json/stringify.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.json.stringify');
-var core = require('../../internals/path');
-
-if (!core.JSON) core.JSON = { stringify: JSON.stringify };
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function stringify(it, replacer, space) {
-  return core.JSON.stringify.apply(null, arguments);
-};
diff --git a/node_modules/core-js-pure/es/json/to-string-tag.js b/node_modules/core-js-pure/es/json/to-string-tag.js
deleted file mode 100644
index 7ed4618..0000000
--- a/node_modules/core-js-pure/es/json/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.json.to-string-tag');
-
-module.exports = 'JSON';
diff --git a/node_modules/core-js-pure/es/map/index.js b/node_modules/core-js-pure/es/map/index.js
deleted file mode 100644
index ab554cf..0000000
--- a/node_modules/core-js-pure/es/map/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-module.exports = path.Map;
diff --git a/node_modules/core-js-pure/es/math/acosh.js b/node_modules/core-js-pure/es/math/acosh.js
deleted file mode 100644
index 0ef459b..0000000
--- a/node_modules/core-js-pure/es/math/acosh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.acosh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.acosh;
diff --git a/node_modules/core-js-pure/es/math/asinh.js b/node_modules/core-js-pure/es/math/asinh.js
deleted file mode 100644
index f300ec4..0000000
--- a/node_modules/core-js-pure/es/math/asinh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.asinh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.asinh;
diff --git a/node_modules/core-js-pure/es/math/atanh.js b/node_modules/core-js-pure/es/math/atanh.js
deleted file mode 100644
index 6ca6111..0000000
--- a/node_modules/core-js-pure/es/math/atanh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.atanh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.atanh;
diff --git a/node_modules/core-js-pure/es/math/cbrt.js b/node_modules/core-js-pure/es/math/cbrt.js
deleted file mode 100644
index c8297a7..0000000
--- a/node_modules/core-js-pure/es/math/cbrt.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.cbrt');
-var path = require('../../internals/path');
-
-module.exports = path.Math.cbrt;
diff --git a/node_modules/core-js-pure/es/math/clz32.js b/node_modules/core-js-pure/es/math/clz32.js
deleted file mode 100644
index a2ea307..0000000
--- a/node_modules/core-js-pure/es/math/clz32.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.clz32');
-var path = require('../../internals/path');
-
-module.exports = path.Math.clz32;
diff --git a/node_modules/core-js-pure/es/math/cosh.js b/node_modules/core-js-pure/es/math/cosh.js
deleted file mode 100644
index 09dc191..0000000
--- a/node_modules/core-js-pure/es/math/cosh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.cosh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.cosh;
diff --git a/node_modules/core-js-pure/es/math/expm1.js b/node_modules/core-js-pure/es/math/expm1.js
deleted file mode 100644
index 9657376..0000000
--- a/node_modules/core-js-pure/es/math/expm1.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.expm1');
-var path = require('../../internals/path');
-
-module.exports = path.Math.expm1;
diff --git a/node_modules/core-js-pure/es/math/fround.js b/node_modules/core-js-pure/es/math/fround.js
deleted file mode 100644
index 41c7292..0000000
--- a/node_modules/core-js-pure/es/math/fround.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.fround');
-var path = require('../../internals/path');
-
-module.exports = path.Math.fround;
diff --git a/node_modules/core-js-pure/es/math/hypot.js b/node_modules/core-js-pure/es/math/hypot.js
deleted file mode 100644
index 34d5175..0000000
--- a/node_modules/core-js-pure/es/math/hypot.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.hypot');
-var path = require('../../internals/path');
-
-module.exports = path.Math.hypot;
diff --git a/node_modules/core-js-pure/es/math/imul.js b/node_modules/core-js-pure/es/math/imul.js
deleted file mode 100644
index 2f17f93..0000000
--- a/node_modules/core-js-pure/es/math/imul.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.imul');
-var path = require('../../internals/path');
-
-module.exports = path.Math.imul;
diff --git a/node_modules/core-js-pure/es/math/index.js b/node_modules/core-js-pure/es/math/index.js
deleted file mode 100644
index 8986227..0000000
--- a/node_modules/core-js-pure/es/math/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-require('../../modules/es.math.acosh');
-require('../../modules/es.math.asinh');
-require('../../modules/es.math.atanh');
-require('../../modules/es.math.cbrt');
-require('../../modules/es.math.clz32');
-require('../../modules/es.math.cosh');
-require('../../modules/es.math.expm1');
-require('../../modules/es.math.fround');
-require('../../modules/es.math.hypot');
-require('../../modules/es.math.imul');
-require('../../modules/es.math.log10');
-require('../../modules/es.math.log1p');
-require('../../modules/es.math.log2');
-require('../../modules/es.math.sign');
-require('../../modules/es.math.sinh');
-require('../../modules/es.math.tanh');
-require('../../modules/es.math.to-string-tag');
-require('../../modules/es.math.trunc');
-var path = require('../../internals/path');
-
-module.exports = path.Math;
diff --git a/node_modules/core-js-pure/es/math/log10.js b/node_modules/core-js-pure/es/math/log10.js
deleted file mode 100644
index b91166f..0000000
--- a/node_modules/core-js-pure/es/math/log10.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.log10');
-var path = require('../../internals/path');
-
-module.exports = path.Math.log10;
diff --git a/node_modules/core-js-pure/es/math/log1p.js b/node_modules/core-js-pure/es/math/log1p.js
deleted file mode 100644
index a1d4db1..0000000
--- a/node_modules/core-js-pure/es/math/log1p.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.log1p');
-var path = require('../../internals/path');
-
-module.exports = path.Math.log1p;
diff --git a/node_modules/core-js-pure/es/math/log2.js b/node_modules/core-js-pure/es/math/log2.js
deleted file mode 100644
index 99c0594..0000000
--- a/node_modules/core-js-pure/es/math/log2.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.log2');
-var path = require('../../internals/path');
-
-module.exports = path.Math.log2;
diff --git a/node_modules/core-js-pure/es/math/sign.js b/node_modules/core-js-pure/es/math/sign.js
deleted file mode 100644
index 9f6eb95..0000000
--- a/node_modules/core-js-pure/es/math/sign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.sign');
-var path = require('../../internals/path');
-
-module.exports = path.Math.sign;
diff --git a/node_modules/core-js-pure/es/math/sinh.js b/node_modules/core-js-pure/es/math/sinh.js
deleted file mode 100644
index cf8d51a..0000000
--- a/node_modules/core-js-pure/es/math/sinh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.sinh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.sinh;
diff --git a/node_modules/core-js-pure/es/math/tanh.js b/node_modules/core-js-pure/es/math/tanh.js
deleted file mode 100644
index 030c175..0000000
--- a/node_modules/core-js-pure/es/math/tanh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.tanh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.tanh;
diff --git a/node_modules/core-js-pure/es/math/to-string-tag.js b/node_modules/core-js-pure/es/math/to-string-tag.js
deleted file mode 100644
index c8714c2..0000000
--- a/node_modules/core-js-pure/es/math/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.math.to-string-tag');
-
-module.exports = 'Math';
diff --git a/node_modules/core-js-pure/es/math/trunc.js b/node_modules/core-js-pure/es/math/trunc.js
deleted file mode 100644
index 510337b..0000000
--- a/node_modules/core-js-pure/es/math/trunc.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.math.trunc');
-var path = require('../../internals/path');
-
-module.exports = path.Math.trunc;
diff --git a/node_modules/core-js-pure/es/number/constructor.js b/node_modules/core-js-pure/es/number/constructor.js
deleted file mode 100644
index a77a1aa..0000000
--- a/node_modules/core-js-pure/es/number/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.number.constructor');
-
-module.exports = Number;
diff --git a/node_modules/core-js-pure/es/number/epsilon.js b/node_modules/core-js-pure/es/number/epsilon.js
deleted file mode 100644
index 627b077..0000000
--- a/node_modules/core-js-pure/es/number/epsilon.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.number.epsilon');
-
-module.exports = Math.pow(2, -52);
diff --git a/node_modules/core-js-pure/es/number/index.js b/node_modules/core-js-pure/es/number/index.js
deleted file mode 100644
index 1341b56..0000000
--- a/node_modules/core-js-pure/es/number/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('../../modules/es.number.constructor');
-require('../../modules/es.number.epsilon');
-require('../../modules/es.number.is-finite');
-require('../../modules/es.number.is-integer');
-require('../../modules/es.number.is-nan');
-require('../../modules/es.number.is-safe-integer');
-require('../../modules/es.number.max-safe-integer');
-require('../../modules/es.number.min-safe-integer');
-require('../../modules/es.number.parse-float');
-require('../../modules/es.number.parse-int');
-require('../../modules/es.number.to-fixed');
-require('../../modules/es.number.to-precision');
-var path = require('../../internals/path');
-
-module.exports = path.Number;
diff --git a/node_modules/core-js-pure/es/number/is-finite.js b/node_modules/core-js-pure/es/number/is-finite.js
deleted file mode 100644
index dd16f9d..0000000
--- a/node_modules/core-js-pure/es/number/is-finite.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.is-finite');
-var path = require('../../internals/path');
-
-module.exports = path.Number.isFinite;
diff --git a/node_modules/core-js-pure/es/number/is-integer.js b/node_modules/core-js-pure/es/number/is-integer.js
deleted file mode 100644
index c6734a9..0000000
--- a/node_modules/core-js-pure/es/number/is-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.is-integer');
-var path = require('../../internals/path');
-
-module.exports = path.Number.isInteger;
diff --git a/node_modules/core-js-pure/es/number/is-nan.js b/node_modules/core-js-pure/es/number/is-nan.js
deleted file mode 100644
index 9af93bb..0000000
--- a/node_modules/core-js-pure/es/number/is-nan.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.is-nan');
-var path = require('../../internals/path');
-
-module.exports = path.Number.isNaN;
diff --git a/node_modules/core-js-pure/es/number/is-safe-integer.js b/node_modules/core-js-pure/es/number/is-safe-integer.js
deleted file mode 100644
index ec34c62..0000000
--- a/node_modules/core-js-pure/es/number/is-safe-integer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.is-safe-integer');
-var path = require('../../internals/path');
-
-module.exports = path.Number.isSafeInteger;
diff --git a/node_modules/core-js-pure/es/number/max-safe-integer.js b/node_modules/core-js-pure/es/number/max-safe-integer.js
deleted file mode 100644
index b901200..0000000
--- a/node_modules/core-js-pure/es/number/max-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.number.max-safe-integer');
-
-module.exports = 0x1FFFFFFFFFFFFF;
diff --git a/node_modules/core-js-pure/es/number/min-safe-integer.js b/node_modules/core-js-pure/es/number/min-safe-integer.js
deleted file mode 100644
index 3678895..0000000
--- a/node_modules/core-js-pure/es/number/min-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.number.min-safe-integer');
-
-module.exports = -0x1FFFFFFFFFFFFF;
diff --git a/node_modules/core-js-pure/es/number/parse-float.js b/node_modules/core-js-pure/es/number/parse-float.js
deleted file mode 100644
index 5d71e39..0000000
--- a/node_modules/core-js-pure/es/number/parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.parse-float');
-var path = require('../../internals/path');
-
-module.exports = path.Number.parseFloat;
diff --git a/node_modules/core-js-pure/es/number/parse-int.js b/node_modules/core-js-pure/es/number/parse-int.js
deleted file mode 100644
index c833b0a..0000000
--- a/node_modules/core-js-pure/es/number/parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.parse-int');
-var path = require('../../internals/path');
-
-module.exports = path.Number.parseInt;
diff --git a/node_modules/core-js-pure/es/number/to-fixed.js b/node_modules/core-js-pure/es/number/to-fixed.js
deleted file mode 100644
index e127124..0000000
--- a/node_modules/core-js-pure/es/number/to-fixed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.to-fixed');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Number', 'toFixed');
diff --git a/node_modules/core-js-pure/es/number/to-precision.js b/node_modules/core-js-pure/es/number/to-precision.js
deleted file mode 100644
index fd5b83b..0000000
--- a/node_modules/core-js-pure/es/number/to-precision.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.number.to-precision');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Number', 'toPrecision');
diff --git a/node_modules/core-js-pure/es/number/virtual/index.js b/node_modules/core-js-pure/es/number/virtual/index.js
deleted file mode 100644
index 693aca9..0000000
--- a/node_modules/core-js-pure/es/number/virtual/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../../modules/es.number.to-fixed');
-require('../../../modules/es.number.to-precision');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Number');
diff --git a/node_modules/core-js-pure/es/number/virtual/to-fixed.js b/node_modules/core-js-pure/es/number/virtual/to-fixed.js
deleted file mode 100644
index be7265d..0000000
--- a/node_modules/core-js-pure/es/number/virtual/to-fixed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.number.to-fixed');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Number').toFixed;
diff --git a/node_modules/core-js-pure/es/number/virtual/to-precision.js b/node_modules/core-js-pure/es/number/virtual/to-precision.js
deleted file mode 100644
index 701c5aa..0000000
--- a/node_modules/core-js-pure/es/number/virtual/to-precision.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.number.to-precision');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Number').toPrecision;
diff --git a/node_modules/core-js-pure/es/object/assign.js b/node_modules/core-js-pure/es/object/assign.js
deleted file mode 100644
index b747e5b..0000000
--- a/node_modules/core-js-pure/es/object/assign.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.assign');
-var path = require('../../internals/path');
-
-module.exports = path.Object.assign;
diff --git a/node_modules/core-js-pure/es/object/create.js b/node_modules/core-js-pure/es/object/create.js
deleted file mode 100644
index 6f060c9..0000000
--- a/node_modules/core-js-pure/es/object/create.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.object.create');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-module.exports = function create(P, D) {
-  return Object.create(P, D);
-};
diff --git a/node_modules/core-js-pure/es/object/define-getter.js b/node_modules/core-js-pure/es/object/define-getter.js
deleted file mode 100644
index 98b77a0..0000000
--- a/node_modules/core-js-pure/es/object/define-getter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.define-getter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Object', '__defineGetter__');
diff --git a/node_modules/core-js-pure/es/object/define-properties.js b/node_modules/core-js-pure/es/object/define-properties.js
deleted file mode 100644
index 30c21aa..0000000
--- a/node_modules/core-js-pure/es/object/define-properties.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.define-properties');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-var defineProperties = module.exports = function defineProperties(T, D) {
-  return Object.defineProperties(T, D);
-};
-
-if (Object.defineProperties.sham) defineProperties.sham = true;
diff --git a/node_modules/core-js-pure/es/object/define-property.js b/node_modules/core-js-pure/es/object/define-property.js
deleted file mode 100644
index eb51b5f..0000000
--- a/node_modules/core-js-pure/es/object/define-property.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.define-property');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-var defineProperty = module.exports = function defineProperty(it, key, desc) {
-  return Object.defineProperty(it, key, desc);
-};
-
-if (Object.defineProperty.sham) defineProperty.sham = true;
diff --git a/node_modules/core-js-pure/es/object/define-setter.js b/node_modules/core-js-pure/es/object/define-setter.js
deleted file mode 100644
index ccae06a..0000000
--- a/node_modules/core-js-pure/es/object/define-setter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.define-setter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Object', '__defineSetter__');
diff --git a/node_modules/core-js-pure/es/object/entries.js b/node_modules/core-js-pure/es/object/entries.js
deleted file mode 100644
index 4715ad1..0000000
--- a/node_modules/core-js-pure/es/object/entries.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.entries');
-var path = require('../../internals/path');
-
-module.exports = path.Object.entries;
diff --git a/node_modules/core-js-pure/es/object/freeze.js b/node_modules/core-js-pure/es/object/freeze.js
deleted file mode 100644
index e50b82b..0000000
--- a/node_modules/core-js-pure/es/object/freeze.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.freeze');
-var path = require('../../internals/path');
-
-module.exports = path.Object.freeze;
diff --git a/node_modules/core-js-pure/es/object/from-entries.js b/node_modules/core-js-pure/es/object/from-entries.js
deleted file mode 100644
index 530f16d..0000000
--- a/node_modules/core-js-pure/es/object/from-entries.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.array.iterator');
-require('../../modules/es.object.from-entries');
-var path = require('../../internals/path');
-
-module.exports = path.Object.fromEntries;
diff --git a/node_modules/core-js-pure/es/object/get-own-property-descriptor.js b/node_modules/core-js-pure/es/object/get-own-property-descriptor.js
deleted file mode 100644
index 002c7ed..0000000
--- a/node_modules/core-js-pure/es/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.get-own-property-descriptor');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-var getOwnPropertyDescriptor = module.exports = function getOwnPropertyDescriptor(it, key) {
-  return Object.getOwnPropertyDescriptor(it, key);
-};
-
-if (Object.getOwnPropertyDescriptor.sham) getOwnPropertyDescriptor.sham = true;
diff --git a/node_modules/core-js-pure/es/object/get-own-property-descriptors.js b/node_modules/core-js-pure/es/object/get-own-property-descriptors.js
deleted file mode 100644
index e94ed62..0000000
--- a/node_modules/core-js-pure/es/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.get-own-property-descriptors');
-var path = require('../../internals/path');
-
-module.exports = path.Object.getOwnPropertyDescriptors;
diff --git a/node_modules/core-js-pure/es/object/get-own-property-names.js b/node_modules/core-js-pure/es/object/get-own-property-names.js
deleted file mode 100644
index 4b353d3..0000000
--- a/node_modules/core-js-pure/es/object/get-own-property-names.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.object.get-own-property-names');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-module.exports = function getOwnPropertyNames(it) {
-  return Object.getOwnPropertyNames(it);
-};
diff --git a/node_modules/core-js-pure/es/object/get-own-property-symbols.js b/node_modules/core-js-pure/es/object/get-own-property-symbols.js
deleted file mode 100644
index b5c4b5b..0000000
--- a/node_modules/core-js-pure/es/object/get-own-property-symbols.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol');
-var path = require('../../internals/path');
-
-module.exports = path.Object.getOwnPropertySymbols;
diff --git a/node_modules/core-js-pure/es/object/get-prototype-of.js b/node_modules/core-js-pure/es/object/get-prototype-of.js
deleted file mode 100644
index 6c7c96d..0000000
--- a/node_modules/core-js-pure/es/object/get-prototype-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.get-prototype-of');
-var path = require('../../internals/path');
-
-module.exports = path.Object.getPrototypeOf;
diff --git a/node_modules/core-js-pure/es/object/index.js b/node_modules/core-js-pure/es/object/index.js
deleted file mode 100644
index 0664dfc..0000000
--- a/node_modules/core-js-pure/es/object/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-require('../../modules/es.symbol');
-require('../../modules/es.object.assign');
-require('../../modules/es.object.create');
-require('../../modules/es.object.define-property');
-require('../../modules/es.object.define-properties');
-require('../../modules/es.object.entries');
-require('../../modules/es.object.freeze');
-require('../../modules/es.object.from-entries');
-require('../../modules/es.object.get-own-property-descriptor');
-require('../../modules/es.object.get-own-property-descriptors');
-require('../../modules/es.object.get-own-property-names');
-require('../../modules/es.object.get-prototype-of');
-require('../../modules/es.object.is');
-require('../../modules/es.object.is-extensible');
-require('../../modules/es.object.is-frozen');
-require('../../modules/es.object.is-sealed');
-require('../../modules/es.object.keys');
-require('../../modules/es.object.prevent-extensions');
-require('../../modules/es.object.seal');
-require('../../modules/es.object.set-prototype-of');
-require('../../modules/es.object.values');
-require('../../modules/es.object.to-string');
-require('../../modules/es.object.define-getter');
-require('../../modules/es.object.define-setter');
-require('../../modules/es.object.lookup-getter');
-require('../../modules/es.object.lookup-setter');
-require('../../modules/es.math.to-string-tag');
-require('../../modules/es.json.to-string-tag');
-var path = require('../../internals/path');
-
-module.exports = path.Object;
diff --git a/node_modules/core-js-pure/es/object/is-extensible.js b/node_modules/core-js-pure/es/object/is-extensible.js
deleted file mode 100644
index c38f291..0000000
--- a/node_modules/core-js-pure/es/object/is-extensible.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.is-extensible');
-var path = require('../../internals/path');
-
-module.exports = path.Object.isExtensible;
diff --git a/node_modules/core-js-pure/es/object/is-frozen.js b/node_modules/core-js-pure/es/object/is-frozen.js
deleted file mode 100644
index 39ee8d2..0000000
--- a/node_modules/core-js-pure/es/object/is-frozen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.is-frozen');
-var path = require('../../internals/path');
-
-module.exports = path.Object.isFrozen;
diff --git a/node_modules/core-js-pure/es/object/is-sealed.js b/node_modules/core-js-pure/es/object/is-sealed.js
deleted file mode 100644
index 113a488..0000000
--- a/node_modules/core-js-pure/es/object/is-sealed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.is-sealed');
-var path = require('../../internals/path');
-
-module.exports = path.Object.isSealed;
diff --git a/node_modules/core-js-pure/es/object/is.js b/node_modules/core-js-pure/es/object/is.js
deleted file mode 100644
index 5691bf9..0000000
--- a/node_modules/core-js-pure/es/object/is.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.is');
-var path = require('../../internals/path');
-
-module.exports = path.Object.is;
diff --git a/node_modules/core-js-pure/es/object/keys.js b/node_modules/core-js-pure/es/object/keys.js
deleted file mode 100644
index c42f42e..0000000
--- a/node_modules/core-js-pure/es/object/keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.keys');
-var path = require('../../internals/path');
-
-module.exports = path.Object.keys;
diff --git a/node_modules/core-js-pure/es/object/lookup-getter.js b/node_modules/core-js-pure/es/object/lookup-getter.js
deleted file mode 100644
index db2d70a..0000000
--- a/node_modules/core-js-pure/es/object/lookup-getter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.lookup-setter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Object', '__lookupGetter__');
diff --git a/node_modules/core-js-pure/es/object/lookup-setter.js b/node_modules/core-js-pure/es/object/lookup-setter.js
deleted file mode 100644
index fb48fbf..0000000
--- a/node_modules/core-js-pure/es/object/lookup-setter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.lookup-setter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Object', '__lookupSetter__');
diff --git a/node_modules/core-js-pure/es/object/prevent-extensions.js b/node_modules/core-js-pure/es/object/prevent-extensions.js
deleted file mode 100644
index 5a4a5f6..0000000
--- a/node_modules/core-js-pure/es/object/prevent-extensions.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.prevent-extensions');
-var path = require('../../internals/path');
-
-module.exports = path.Object.preventExtensions;
diff --git a/node_modules/core-js-pure/es/object/seal.js b/node_modules/core-js-pure/es/object/seal.js
deleted file mode 100644
index 0db0262..0000000
--- a/node_modules/core-js-pure/es/object/seal.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.seal');
-var path = require('../../internals/path');
-
-module.exports = path.Object.seal;
diff --git a/node_modules/core-js-pure/es/object/set-prototype-of.js b/node_modules/core-js-pure/es/object/set-prototype-of.js
deleted file mode 100644
index bab296a..0000000
--- a/node_modules/core-js-pure/es/object/set-prototype-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.set-prototype-of');
-var path = require('../../internals/path');
-
-module.exports = path.Object.setPrototypeOf;
diff --git a/node_modules/core-js-pure/es/object/to-string.js b/node_modules/core-js-pure/es/object/to-string.js
deleted file mode 100644
index 491a4ef..0000000
--- a/node_modules/core-js-pure/es/object/to-string.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.math.to-string-tag');
-require('../../modules/es.json.to-string-tag');
-var classof = require('../../internals/classof');
-
-module.exports = function (it) {
-  return '[object ' + classof(it) + ']';
-};
diff --git a/node_modules/core-js-pure/es/object/values.js b/node_modules/core-js-pure/es/object/values.js
deleted file mode 100644
index 84539f4..0000000
--- a/node_modules/core-js-pure/es/object/values.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.object.values');
-var path = require('../../internals/path');
-
-module.exports = path.Object.values;
diff --git a/node_modules/core-js-pure/es/parse-float.js b/node_modules/core-js-pure/es/parse-float.js
deleted file mode 100644
index 3528d63..0000000
--- a/node_modules/core-js-pure/es/parse-float.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es.parse-float');
-var path = require('../internals/path');
-
-module.exports = path.parseFloat;
diff --git a/node_modules/core-js-pure/es/parse-int.js b/node_modules/core-js-pure/es/parse-int.js
deleted file mode 100644
index 75cf127..0000000
--- a/node_modules/core-js-pure/es/parse-int.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es.parse-int');
-var path = require('../internals/path');
-
-module.exports = path.parseInt;
diff --git a/node_modules/core-js-pure/es/promise/all-settled.js b/node_modules/core-js-pure/es/promise/all-settled.js
deleted file mode 100644
index b05ac7e..0000000
--- a/node_modules/core-js-pure/es/promise/all-settled.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-require('../../modules/es.promise');
-require('../../modules/es.promise.all-settled');
-var path = require('../../internals/path');
-
-var Promise = path.Promise;
-var $allSettled = Promise.allSettled;
-
-module.exports = function allSettled(iterable) {
-  return $allSettled.call(typeof this === 'function' ? this : Promise, iterable);
-};
diff --git a/node_modules/core-js-pure/es/promise/finally.js b/node_modules/core-js-pure/es/promise/finally.js
deleted file mode 100644
index 01d4282..0000000
--- a/node_modules/core-js-pure/es/promise/finally.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.promise');
-require('../../modules/es.promise.finally');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Promise', 'finally');
diff --git a/node_modules/core-js-pure/es/promise/index.js b/node_modules/core-js-pure/es/promise/index.js
deleted file mode 100644
index 2b41b45..0000000
--- a/node_modules/core-js-pure/es/promise/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/web.dom-collections.iterator');
-require('../../modules/es.promise');
-require('../../modules/es.promise.all-settled');
-require('../../modules/es.promise.finally');
-var path = require('../../internals/path');
-
-module.exports = path.Promise;
diff --git a/node_modules/core-js-pure/es/reflect/apply.js b/node_modules/core-js-pure/es/reflect/apply.js
deleted file mode 100644
index 0dbe128..0000000
--- a/node_modules/core-js-pure/es/reflect/apply.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.apply');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.apply;
diff --git a/node_modules/core-js-pure/es/reflect/construct.js b/node_modules/core-js-pure/es/reflect/construct.js
deleted file mode 100644
index df90026..0000000
--- a/node_modules/core-js-pure/es/reflect/construct.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.construct');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.construct;
diff --git a/node_modules/core-js-pure/es/reflect/define-property.js b/node_modules/core-js-pure/es/reflect/define-property.js
deleted file mode 100644
index 7b33dca..0000000
--- a/node_modules/core-js-pure/es/reflect/define-property.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.define-property');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.defineProperty;
diff --git a/node_modules/core-js-pure/es/reflect/delete-property.js b/node_modules/core-js-pure/es/reflect/delete-property.js
deleted file mode 100644
index 0e023df..0000000
--- a/node_modules/core-js-pure/es/reflect/delete-property.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.delete-property');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.deleteProperty;
diff --git a/node_modules/core-js-pure/es/reflect/get-own-property-descriptor.js b/node_modules/core-js-pure/es/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 8c135a3..0000000
--- a/node_modules/core-js-pure/es/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.get-own-property-descriptor');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getOwnPropertyDescriptor;
diff --git a/node_modules/core-js-pure/es/reflect/get-prototype-of.js b/node_modules/core-js-pure/es/reflect/get-prototype-of.js
deleted file mode 100644
index aca74f8..0000000
--- a/node_modules/core-js-pure/es/reflect/get-prototype-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.get-prototype-of');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getPrototypeOf;
diff --git a/node_modules/core-js-pure/es/reflect/get.js b/node_modules/core-js-pure/es/reflect/get.js
deleted file mode 100644
index 239e931..0000000
--- a/node_modules/core-js-pure/es/reflect/get.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.get');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.get;
diff --git a/node_modules/core-js-pure/es/reflect/has.js b/node_modules/core-js-pure/es/reflect/has.js
deleted file mode 100644
index 0dbf29f..0000000
--- a/node_modules/core-js-pure/es/reflect/has.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.has');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.has;
diff --git a/node_modules/core-js-pure/es/reflect/index.js b/node_modules/core-js-pure/es/reflect/index.js
deleted file mode 100644
index 6a82213..0000000
--- a/node_modules/core-js-pure/es/reflect/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../../modules/es.reflect.apply');
-require('../../modules/es.reflect.construct');
-require('../../modules/es.reflect.define-property');
-require('../../modules/es.reflect.delete-property');
-require('../../modules/es.reflect.get');
-require('../../modules/es.reflect.get-own-property-descriptor');
-require('../../modules/es.reflect.get-prototype-of');
-require('../../modules/es.reflect.has');
-require('../../modules/es.reflect.is-extensible');
-require('../../modules/es.reflect.own-keys');
-require('../../modules/es.reflect.prevent-extensions');
-require('../../modules/es.reflect.set');
-require('../../modules/es.reflect.set-prototype-of');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect;
diff --git a/node_modules/core-js-pure/es/reflect/is-extensible.js b/node_modules/core-js-pure/es/reflect/is-extensible.js
deleted file mode 100644
index c0943d2..0000000
--- a/node_modules/core-js-pure/es/reflect/is-extensible.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.is-extensible');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.isExtensible;
diff --git a/node_modules/core-js-pure/es/reflect/own-keys.js b/node_modules/core-js-pure/es/reflect/own-keys.js
deleted file mode 100644
index 364fc81..0000000
--- a/node_modules/core-js-pure/es/reflect/own-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.own-keys');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.ownKeys;
diff --git a/node_modules/core-js-pure/es/reflect/prevent-extensions.js b/node_modules/core-js-pure/es/reflect/prevent-extensions.js
deleted file mode 100644
index 8687c1b..0000000
--- a/node_modules/core-js-pure/es/reflect/prevent-extensions.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.prevent-extensions');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.preventExtensions;
diff --git a/node_modules/core-js-pure/es/reflect/set-prototype-of.js b/node_modules/core-js-pure/es/reflect/set-prototype-of.js
deleted file mode 100644
index 819148a..0000000
--- a/node_modules/core-js-pure/es/reflect/set-prototype-of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.set-prototype-of');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.setPrototypeOf;
diff --git a/node_modules/core-js-pure/es/reflect/set.js b/node_modules/core-js-pure/es/reflect/set.js
deleted file mode 100644
index 25ed86c..0000000
--- a/node_modules/core-js-pure/es/reflect/set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.reflect.set');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.set;
diff --git a/node_modules/core-js-pure/es/regexp/constructor.js b/node_modules/core-js-pure/es/regexp/constructor.js
deleted file mode 100644
index 195da54..0000000
--- a/node_modules/core-js-pure/es/regexp/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/es.regexp.constructor');
-
-module.exports = RegExp;
diff --git a/node_modules/core-js-pure/es/regexp/flags.js b/node_modules/core-js-pure/es/regexp/flags.js
deleted file mode 100644
index d3eed6d..0000000
--- a/node_modules/core-js-pure/es/regexp/flags.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.regexp.flags');
-var flags = require('../../internals/regexp-flags');
-
-module.exports = function (it) {
-  return flags.call(it);
-};
diff --git a/node_modules/core-js-pure/es/regexp/index.js b/node_modules/core-js-pure/es/regexp/index.js
deleted file mode 100644
index 92c170a..0000000
--- a/node_modules/core-js-pure/es/regexp/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.regexp.constructor');
-require('../../modules/es.regexp.to-string');
-require('../../modules/es.regexp.exec');
-require('../../modules/es.regexp.flags');
-require('../../modules/es.regexp.sticky');
-require('../../modules/es.regexp.test');
-require('../../modules/es.string.match');
-require('../../modules/es.string.replace');
-require('../../modules/es.string.search');
-require('../../modules/es.string.split');
diff --git a/node_modules/core-js-pure/es/regexp/match.js b/node_modules/core-js-pure/es/regexp/match.js
deleted file mode 100644
index af0e2fa..0000000
--- a/node_modules/core-js-pure/es/regexp/match.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.string.match');
-var wellKnownSymbol = require('../../internals/well-known-symbol');
-
-var MATCH = wellKnownSymbol('match');
-
-module.exports = function (it, str) {
-  return RegExp.prototype[MATCH].call(it, str);
-};
diff --git a/node_modules/core-js-pure/es/regexp/replace.js b/node_modules/core-js-pure/es/regexp/replace.js
deleted file mode 100644
index 1311b2a..0000000
--- a/node_modules/core-js-pure/es/regexp/replace.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.string.replace');
-var wellKnownSymbol = require('../../internals/well-known-symbol');
-
-var REPLACE = wellKnownSymbol('replace');
-
-module.exports = function (it, str, replacer) {
-  return RegExp.prototype[REPLACE].call(it, str, replacer);
-};
diff --git a/node_modules/core-js-pure/es/regexp/search.js b/node_modules/core-js-pure/es/regexp/search.js
deleted file mode 100644
index 4adc913..0000000
--- a/node_modules/core-js-pure/es/regexp/search.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.string.search');
-var wellKnownSymbol = require('../../internals/well-known-symbol');
-
-var SEARCH = wellKnownSymbol('search');
-
-module.exports = function (it, str) {
-  return RegExp.prototype[SEARCH].call(it, str);
-};
diff --git a/node_modules/core-js-pure/es/regexp/split.js b/node_modules/core-js-pure/es/regexp/split.js
deleted file mode 100644
index 49ae5f2..0000000
--- a/node_modules/core-js-pure/es/regexp/split.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.string.split');
-var wellKnownSymbol = require('../../internals/well-known-symbol');
-
-var SPLIT = wellKnownSymbol('split');
-
-module.exports = function (it, str, limit) {
-  return RegExp.prototype[SPLIT].call(it, str, limit);
-};
diff --git a/node_modules/core-js-pure/es/regexp/sticky.js b/node_modules/core-js-pure/es/regexp/sticky.js
deleted file mode 100644
index eb33fb1..0000000
--- a/node_modules/core-js-pure/es/regexp/sticky.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.sticky');
-
-module.exports = function (it) {
-  return it.sticky;
-};
diff --git a/node_modules/core-js-pure/es/regexp/test.js b/node_modules/core-js-pure/es/regexp/test.js
deleted file mode 100644
index b71d4a0..0000000
--- a/node_modules/core-js-pure/es/regexp/test.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.regexp.test');
-
-module.exports = function (re, string) {
-  return RegExp.prototype.test.call(re, string);
-};
diff --git a/node_modules/core-js-pure/es/regexp/to-string.js b/node_modules/core-js-pure/es/regexp/to-string.js
deleted file mode 100644
index 3072e63..0000000
--- a/node_modules/core-js-pure/es/regexp/to-string.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.to-string');
-
-module.exports = function toString(it) {
-  return RegExp.prototype.toString.call(it);
-};
diff --git a/node_modules/core-js-pure/es/set/index.js b/node_modules/core-js-pure/es/set/index.js
deleted file mode 100644
index 52322b6..0000000
--- a/node_modules/core-js-pure/es/set/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-module.exports = path.Set;
diff --git a/node_modules/core-js-pure/es/string/anchor.js b/node_modules/core-js-pure/es/string/anchor.js
deleted file mode 100644
index 254317e..0000000
--- a/node_modules/core-js-pure/es/string/anchor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.anchor');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'anchor');
diff --git a/node_modules/core-js-pure/es/string/big.js b/node_modules/core-js-pure/es/string/big.js
deleted file mode 100644
index d0878eb..0000000
--- a/node_modules/core-js-pure/es/string/big.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.big');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'big');
diff --git a/node_modules/core-js-pure/es/string/blink.js b/node_modules/core-js-pure/es/string/blink.js
deleted file mode 100644
index fc96d57..0000000
--- a/node_modules/core-js-pure/es/string/blink.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.blink');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'blink');
diff --git a/node_modules/core-js-pure/es/string/bold.js b/node_modules/core-js-pure/es/string/bold.js
deleted file mode 100644
index f098a7a..0000000
--- a/node_modules/core-js-pure/es/string/bold.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.bold');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'bold');
diff --git a/node_modules/core-js-pure/es/string/code-point-at.js b/node_modules/core-js-pure/es/string/code-point-at.js
deleted file mode 100644
index cbaaae3..0000000
--- a/node_modules/core-js-pure/es/string/code-point-at.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.code-point-at');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'codePointAt');
diff --git a/node_modules/core-js-pure/es/string/ends-with.js b/node_modules/core-js-pure/es/string/ends-with.js
deleted file mode 100644
index 26d7ffe..0000000
--- a/node_modules/core-js-pure/es/string/ends-with.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.ends-with');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'endsWith');
diff --git a/node_modules/core-js-pure/es/string/fixed.js b/node_modules/core-js-pure/es/string/fixed.js
deleted file mode 100644
index 099ada4..0000000
--- a/node_modules/core-js-pure/es/string/fixed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.fixed');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'fixed');
diff --git a/node_modules/core-js-pure/es/string/fontcolor.js b/node_modules/core-js-pure/es/string/fontcolor.js
deleted file mode 100644
index f3606f6..0000000
--- a/node_modules/core-js-pure/es/string/fontcolor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.fontcolor');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'fontcolor');
diff --git a/node_modules/core-js-pure/es/string/fontsize.js b/node_modules/core-js-pure/es/string/fontsize.js
deleted file mode 100644
index 499bfa5..0000000
--- a/node_modules/core-js-pure/es/string/fontsize.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.fontsize');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'fontsize');
diff --git a/node_modules/core-js-pure/es/string/from-code-point.js b/node_modules/core-js-pure/es/string/from-code-point.js
deleted file mode 100644
index 1eff764..0000000
--- a/node_modules/core-js-pure/es/string/from-code-point.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.from-code-point');
-var path = require('../../internals/path');
-
-module.exports = path.String.fromCodePoint;
diff --git a/node_modules/core-js-pure/es/string/includes.js b/node_modules/core-js-pure/es/string/includes.js
deleted file mode 100644
index 26d2ad9..0000000
--- a/node_modules/core-js-pure/es/string/includes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.includes');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'includes');
diff --git a/node_modules/core-js-pure/es/string/index.js b/node_modules/core-js-pure/es/string/index.js
deleted file mode 100644
index f036fe4..0000000
--- a/node_modules/core-js-pure/es/string/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.string.from-code-point');
-require('../../modules/es.string.raw');
-require('../../modules/es.string.code-point-at');
-require('../../modules/es.string.ends-with');
-require('../../modules/es.string.includes');
-require('../../modules/es.string.match');
-require('../../modules/es.string.match-all');
-require('../../modules/es.string.pad-end');
-require('../../modules/es.string.pad-start');
-require('../../modules/es.string.repeat');
-require('../../modules/es.string.replace');
-require('../../modules/es.string.search');
-require('../../modules/es.string.split');
-require('../../modules/es.string.starts-with');
-require('../../modules/es.string.trim');
-require('../../modules/es.string.trim-start');
-require('../../modules/es.string.trim-end');
-require('../../modules/es.string.iterator');
-require('../../modules/es.string.anchor');
-require('../../modules/es.string.big');
-require('../../modules/es.string.blink');
-require('../../modules/es.string.bold');
-require('../../modules/es.string.fixed');
-require('../../modules/es.string.fontcolor');
-require('../../modules/es.string.fontsize');
-require('../../modules/es.string.italics');
-require('../../modules/es.string.link');
-require('../../modules/es.string.small');
-require('../../modules/es.string.strike');
-require('../../modules/es.string.sub');
-require('../../modules/es.string.sup');
-var path = require('../../internals/path');
-
-module.exports = path.String;
diff --git a/node_modules/core-js-pure/es/string/italics.js b/node_modules/core-js-pure/es/string/italics.js
deleted file mode 100644
index 6057f4f..0000000
--- a/node_modules/core-js-pure/es/string/italics.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.italics');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'italics');
diff --git a/node_modules/core-js-pure/es/string/iterator.js b/node_modules/core-js-pure/es/string/iterator.js
deleted file mode 100644
index b6d9a1a..0000000
--- a/node_modules/core-js-pure/es/string/iterator.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/es.string.iterator');
-var Iterators = require('../../internals/iterators');
-
-var getStringIterator = Iterators.String;
-
-module.exports = function (it) {
-  return getStringIterator.call(it);
-};
diff --git a/node_modules/core-js-pure/es/string/link.js b/node_modules/core-js-pure/es/string/link.js
deleted file mode 100644
index c195d61..0000000
--- a/node_modules/core-js-pure/es/string/link.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.link');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'link');
diff --git a/node_modules/core-js-pure/es/string/match-all.js b/node_modules/core-js-pure/es/string/match-all.js
deleted file mode 100644
index e951f4e..0000000
--- a/node_modules/core-js-pure/es/string/match-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.match-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'matchAll');
diff --git a/node_modules/core-js-pure/es/string/match.js b/node_modules/core-js-pure/es/string/match.js
deleted file mode 100644
index b484de0..0000000
--- a/node_modules/core-js-pure/es/string/match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.string.match');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'match');
diff --git a/node_modules/core-js-pure/es/string/pad-end.js b/node_modules/core-js-pure/es/string/pad-end.js
deleted file mode 100644
index 237b96d..0000000
--- a/node_modules/core-js-pure/es/string/pad-end.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.pad-end');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'padEnd');
diff --git a/node_modules/core-js-pure/es/string/pad-start.js b/node_modules/core-js-pure/es/string/pad-start.js
deleted file mode 100644
index 250496f..0000000
--- a/node_modules/core-js-pure/es/string/pad-start.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.pad-start');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'padStart');
diff --git a/node_modules/core-js-pure/es/string/raw.js b/node_modules/core-js-pure/es/string/raw.js
deleted file mode 100644
index e75c54c..0000000
--- a/node_modules/core-js-pure/es/string/raw.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.raw');
-var path = require('../../internals/path');
-
-module.exports = path.String.raw;
diff --git a/node_modules/core-js-pure/es/string/repeat.js b/node_modules/core-js-pure/es/string/repeat.js
deleted file mode 100644
index bd6992b..0000000
--- a/node_modules/core-js-pure/es/string/repeat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.repeat');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'repeat');
diff --git a/node_modules/core-js-pure/es/string/replace.js b/node_modules/core-js-pure/es/string/replace.js
deleted file mode 100644
index 28b62e3..0000000
--- a/node_modules/core-js-pure/es/string/replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.string.replace');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'replace');
diff --git a/node_modules/core-js-pure/es/string/search.js b/node_modules/core-js-pure/es/string/search.js
deleted file mode 100644
index bfb5ab0..0000000
--- a/node_modules/core-js-pure/es/string/search.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.string.search');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'search');
diff --git a/node_modules/core-js-pure/es/string/small.js b/node_modules/core-js-pure/es/string/small.js
deleted file mode 100644
index 4e8780f..0000000
--- a/node_modules/core-js-pure/es/string/small.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.small');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'small');
diff --git a/node_modules/core-js-pure/es/string/split.js b/node_modules/core-js-pure/es/string/split.js
deleted file mode 100644
index a890153..0000000
--- a/node_modules/core-js-pure/es/string/split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.regexp.exec');
-require('../../modules/es.string.split');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'split');
diff --git a/node_modules/core-js-pure/es/string/starts-with.js b/node_modules/core-js-pure/es/string/starts-with.js
deleted file mode 100644
index 2b22eba..0000000
--- a/node_modules/core-js-pure/es/string/starts-with.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.starts-with');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'startsWith');
diff --git a/node_modules/core-js-pure/es/string/strike.js b/node_modules/core-js-pure/es/string/strike.js
deleted file mode 100644
index f986f9e..0000000
--- a/node_modules/core-js-pure/es/string/strike.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.strike');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'strike');
diff --git a/node_modules/core-js-pure/es/string/sub.js b/node_modules/core-js-pure/es/string/sub.js
deleted file mode 100644
index 19c6c38..0000000
--- a/node_modules/core-js-pure/es/string/sub.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.sub');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'sub');
diff --git a/node_modules/core-js-pure/es/string/sup.js b/node_modules/core-js-pure/es/string/sup.js
deleted file mode 100644
index 419785d..0000000
--- a/node_modules/core-js-pure/es/string/sup.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.sup');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'sup');
diff --git a/node_modules/core-js-pure/es/string/trim-end.js b/node_modules/core-js-pure/es/string/trim-end.js
deleted file mode 100644
index 4304298..0000000
--- a/node_modules/core-js-pure/es/string/trim-end.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.trim-end');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'trimRight');
diff --git a/node_modules/core-js-pure/es/string/trim-left.js b/node_modules/core-js-pure/es/string/trim-left.js
deleted file mode 100644
index a24dcde..0000000
--- a/node_modules/core-js-pure/es/string/trim-left.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.trim-start');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'trimLeft');
diff --git a/node_modules/core-js-pure/es/string/trim-right.js b/node_modules/core-js-pure/es/string/trim-right.js
deleted file mode 100644
index 4304298..0000000
--- a/node_modules/core-js-pure/es/string/trim-right.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.trim-end');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'trimRight');
diff --git a/node_modules/core-js-pure/es/string/trim-start.js b/node_modules/core-js-pure/es/string/trim-start.js
deleted file mode 100644
index a24dcde..0000000
--- a/node_modules/core-js-pure/es/string/trim-start.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.trim-start');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'trimLeft');
diff --git a/node_modules/core-js-pure/es/string/trim.js b/node_modules/core-js-pure/es/string/trim.js
deleted file mode 100644
index 0fca933..0000000
--- a/node_modules/core-js-pure/es/string/trim.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.string.trim');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'trim');
diff --git a/node_modules/core-js-pure/es/string/virtual/anchor.js b/node_modules/core-js-pure/es/string/virtual/anchor.js
deleted file mode 100644
index 3b5cf6b..0000000
--- a/node_modules/core-js-pure/es/string/virtual/anchor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.anchor');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').anchor;
diff --git a/node_modules/core-js-pure/es/string/virtual/big.js b/node_modules/core-js-pure/es/string/virtual/big.js
deleted file mode 100644
index a63bd0f..0000000
--- a/node_modules/core-js-pure/es/string/virtual/big.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.big');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').big;
diff --git a/node_modules/core-js-pure/es/string/virtual/blink.js b/node_modules/core-js-pure/es/string/virtual/blink.js
deleted file mode 100644
index 8619c25..0000000
--- a/node_modules/core-js-pure/es/string/virtual/blink.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.blink');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').blink;
diff --git a/node_modules/core-js-pure/es/string/virtual/bold.js b/node_modules/core-js-pure/es/string/virtual/bold.js
deleted file mode 100644
index 1f5419a..0000000
--- a/node_modules/core-js-pure/es/string/virtual/bold.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.bold');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').bold;
diff --git a/node_modules/core-js-pure/es/string/virtual/code-point-at.js b/node_modules/core-js-pure/es/string/virtual/code-point-at.js
deleted file mode 100644
index c12691d..0000000
--- a/node_modules/core-js-pure/es/string/virtual/code-point-at.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.code-point-at');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').codePointAt;
diff --git a/node_modules/core-js-pure/es/string/virtual/ends-with.js b/node_modules/core-js-pure/es/string/virtual/ends-with.js
deleted file mode 100644
index 81a1322..0000000
--- a/node_modules/core-js-pure/es/string/virtual/ends-with.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.ends-with');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').endsWith;
diff --git a/node_modules/core-js-pure/es/string/virtual/fixed.js b/node_modules/core-js-pure/es/string/virtual/fixed.js
deleted file mode 100644
index b3b775f..0000000
--- a/node_modules/core-js-pure/es/string/virtual/fixed.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.fixed');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').fixed;
diff --git a/node_modules/core-js-pure/es/string/virtual/fontcolor.js b/node_modules/core-js-pure/es/string/virtual/fontcolor.js
deleted file mode 100644
index 5b89a22..0000000
--- a/node_modules/core-js-pure/es/string/virtual/fontcolor.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.fontcolor');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').fontcolor;
diff --git a/node_modules/core-js-pure/es/string/virtual/fontsize.js b/node_modules/core-js-pure/es/string/virtual/fontsize.js
deleted file mode 100644
index 28491b0..0000000
--- a/node_modules/core-js-pure/es/string/virtual/fontsize.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.fontsize');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').fontsize;
diff --git a/node_modules/core-js-pure/es/string/virtual/includes.js b/node_modules/core-js-pure/es/string/virtual/includes.js
deleted file mode 100644
index e6d9fab..0000000
--- a/node_modules/core-js-pure/es/string/virtual/includes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.includes');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').includes;
diff --git a/node_modules/core-js-pure/es/string/virtual/index.js b/node_modules/core-js-pure/es/string/virtual/index.js
deleted file mode 100644
index 1151b79..0000000
--- a/node_modules/core-js-pure/es/string/virtual/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-require('../../../modules/es.string.code-point-at');
-require('../../../modules/es.string.ends-with');
-require('../../../modules/es.string.includes');
-require('../../../modules/es.string.match');
-require('../../../modules/es.string.match-all');
-require('../../../modules/es.string.pad-end');
-require('../../../modules/es.string.pad-start');
-require('../../../modules/es.string.repeat');
-require('../../../modules/es.string.replace');
-require('../../../modules/es.string.search');
-require('../../../modules/es.string.split');
-require('../../../modules/es.string.starts-with');
-require('../../../modules/es.string.trim');
-require('../../../modules/es.string.trim-start');
-require('../../../modules/es.string.trim-end');
-require('../../../modules/es.string.iterator');
-require('../../../modules/es.string.anchor');
-require('../../../modules/es.string.big');
-require('../../../modules/es.string.blink');
-require('../../../modules/es.string.bold');
-require('../../../modules/es.string.fixed');
-require('../../../modules/es.string.fontcolor');
-require('../../../modules/es.string.fontsize');
-require('../../../modules/es.string.italics');
-require('../../../modules/es.string.link');
-require('../../../modules/es.string.small');
-require('../../../modules/es.string.strike');
-require('../../../modules/es.string.sub');
-require('../../../modules/es.string.sup');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String');
diff --git a/node_modules/core-js-pure/es/string/virtual/italics.js b/node_modules/core-js-pure/es/string/virtual/italics.js
deleted file mode 100644
index c6cf80b..0000000
--- a/node_modules/core-js-pure/es/string/virtual/italics.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.italics');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').italics;
diff --git a/node_modules/core-js-pure/es/string/virtual/iterator.js b/node_modules/core-js-pure/es/string/virtual/iterator.js
deleted file mode 100644
index df1e2aa..0000000
--- a/node_modules/core-js-pure/es/string/virtual/iterator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.iterator');
-var Iterators = require('../../../internals/iterators');
-
-module.exports = Iterators.String;
diff --git a/node_modules/core-js-pure/es/string/virtual/link.js b/node_modules/core-js-pure/es/string/virtual/link.js
deleted file mode 100644
index d387e16..0000000
--- a/node_modules/core-js-pure/es/string/virtual/link.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.link');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').link;
diff --git a/node_modules/core-js-pure/es/string/virtual/match-all.js b/node_modules/core-js-pure/es/string/virtual/match-all.js
deleted file mode 100644
index 6bad2f8..0000000
--- a/node_modules/core-js-pure/es/string/virtual/match-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.match-all');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').matchAll;
diff --git a/node_modules/core-js-pure/es/string/virtual/pad-end.js b/node_modules/core-js-pure/es/string/virtual/pad-end.js
deleted file mode 100644
index a7d54de..0000000
--- a/node_modules/core-js-pure/es/string/virtual/pad-end.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.pad-end');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').padEnd;
diff --git a/node_modules/core-js-pure/es/string/virtual/pad-start.js b/node_modules/core-js-pure/es/string/virtual/pad-start.js
deleted file mode 100644
index 7695cb2..0000000
--- a/node_modules/core-js-pure/es/string/virtual/pad-start.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.pad-start');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').padStart;
diff --git a/node_modules/core-js-pure/es/string/virtual/repeat.js b/node_modules/core-js-pure/es/string/virtual/repeat.js
deleted file mode 100644
index dab88b5..0000000
--- a/node_modules/core-js-pure/es/string/virtual/repeat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.repeat');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').repeat;
diff --git a/node_modules/core-js-pure/es/string/virtual/small.js b/node_modules/core-js-pure/es/string/virtual/small.js
deleted file mode 100644
index e9352a8..0000000
--- a/node_modules/core-js-pure/es/string/virtual/small.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.small');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').small;
diff --git a/node_modules/core-js-pure/es/string/virtual/starts-with.js b/node_modules/core-js-pure/es/string/virtual/starts-with.js
deleted file mode 100644
index 917071b..0000000
--- a/node_modules/core-js-pure/es/string/virtual/starts-with.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.starts-with');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').startsWith;
diff --git a/node_modules/core-js-pure/es/string/virtual/strike.js b/node_modules/core-js-pure/es/string/virtual/strike.js
deleted file mode 100644
index 971a129..0000000
--- a/node_modules/core-js-pure/es/string/virtual/strike.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.strike');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').strike;
diff --git a/node_modules/core-js-pure/es/string/virtual/sub.js b/node_modules/core-js-pure/es/string/virtual/sub.js
deleted file mode 100644
index 0514fb8..0000000
--- a/node_modules/core-js-pure/es/string/virtual/sub.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.sub');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').sub;
diff --git a/node_modules/core-js-pure/es/string/virtual/sup.js b/node_modules/core-js-pure/es/string/virtual/sup.js
deleted file mode 100644
index 61debf3..0000000
--- a/node_modules/core-js-pure/es/string/virtual/sup.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.sup');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').sup;
diff --git a/node_modules/core-js-pure/es/string/virtual/trim-end.js b/node_modules/core-js-pure/es/string/virtual/trim-end.js
deleted file mode 100644
index 9c1d0c0..0000000
--- a/node_modules/core-js-pure/es/string/virtual/trim-end.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.trim-end');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').trimRight;
diff --git a/node_modules/core-js-pure/es/string/virtual/trim-left.js b/node_modules/core-js-pure/es/string/virtual/trim-left.js
deleted file mode 100644
index 17cfc12..0000000
--- a/node_modules/core-js-pure/es/string/virtual/trim-left.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.trim-start');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').trimLeft;
diff --git a/node_modules/core-js-pure/es/string/virtual/trim-right.js b/node_modules/core-js-pure/es/string/virtual/trim-right.js
deleted file mode 100644
index 9c1d0c0..0000000
--- a/node_modules/core-js-pure/es/string/virtual/trim-right.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.trim-end');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').trimRight;
diff --git a/node_modules/core-js-pure/es/string/virtual/trim-start.js b/node_modules/core-js-pure/es/string/virtual/trim-start.js
deleted file mode 100644
index 17cfc12..0000000
--- a/node_modules/core-js-pure/es/string/virtual/trim-start.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.trim-start');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').trimLeft;
diff --git a/node_modules/core-js-pure/es/string/virtual/trim.js b/node_modules/core-js-pure/es/string/virtual/trim.js
deleted file mode 100644
index 6d7b41d..0000000
--- a/node_modules/core-js-pure/es/string/virtual/trim.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/es.string.trim');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').trim;
diff --git a/node_modules/core-js-pure/es/symbol/async-iterator.js b/node_modules/core-js-pure/es/symbol/async-iterator.js
deleted file mode 100644
index 672167f..0000000
--- a/node_modules/core-js-pure/es/symbol/async-iterator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol.async-iterator');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('asyncIterator');
diff --git a/node_modules/core-js-pure/es/symbol/description.js b/node_modules/core-js-pure/es/symbol/description.js
deleted file mode 100644
index 7bb4b2b..0000000
--- a/node_modules/core-js-pure/es/symbol/description.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.symbol.description');
diff --git a/node_modules/core-js-pure/es/symbol/for.js b/node_modules/core-js-pure/es/symbol/for.js
deleted file mode 100644
index 9406c70..0000000
--- a/node_modules/core-js-pure/es/symbol/for.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol');
-var path = require('../../internals/path');
-
-module.exports = path.Symbol['for'];
diff --git a/node_modules/core-js-pure/es/symbol/has-instance.js b/node_modules/core-js-pure/es/symbol/has-instance.js
deleted file mode 100644
index 80cfe23..0000000
--- a/node_modules/core-js-pure/es/symbol/has-instance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.has-instance');
-require('../../modules/es.function.has-instance');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('hasInstance');
diff --git a/node_modules/core-js-pure/es/symbol/index.js b/node_modules/core-js-pure/es/symbol/index.js
deleted file mode 100644
index 4d6acf4..0000000
--- a/node_modules/core-js-pure/es/symbol/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-require('../../modules/es.array.concat');
-require('../../modules/es.object.to-string');
-require('../../modules/es.symbol');
-require('../../modules/es.symbol.async-iterator');
-require('../../modules/es.symbol.description');
-require('../../modules/es.symbol.has-instance');
-require('../../modules/es.symbol.is-concat-spreadable');
-require('../../modules/es.symbol.iterator');
-require('../../modules/es.symbol.match');
-require('../../modules/es.symbol.match-all');
-require('../../modules/es.symbol.replace');
-require('../../modules/es.symbol.search');
-require('../../modules/es.symbol.species');
-require('../../modules/es.symbol.split');
-require('../../modules/es.symbol.to-primitive');
-require('../../modules/es.symbol.to-string-tag');
-require('../../modules/es.symbol.unscopables');
-require('../../modules/es.math.to-string-tag');
-require('../../modules/es.json.to-string-tag');
-var path = require('../../internals/path');
-
-module.exports = path.Symbol;
diff --git a/node_modules/core-js-pure/es/symbol/is-concat-spreadable.js b/node_modules/core-js-pure/es/symbol/is-concat-spreadable.js
deleted file mode 100644
index 2671171..0000000
--- a/node_modules/core-js-pure/es/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.is-concat-spreadable');
-require('../../modules/es.array.concat');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('isConcatSpreadable');
diff --git a/node_modules/core-js-pure/es/symbol/iterator.js b/node_modules/core-js-pure/es/symbol/iterator.js
deleted file mode 100644
index 73fa41d..0000000
--- a/node_modules/core-js-pure/es/symbol/iterator.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.symbol.iterator');
-require('../../modules/es.string.iterator');
-require('../../modules/web.dom-collections.iterator');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('iterator');
diff --git a/node_modules/core-js-pure/es/symbol/key-for.js b/node_modules/core-js-pure/es/symbol/key-for.js
deleted file mode 100644
index 6c832b9..0000000
--- a/node_modules/core-js-pure/es/symbol/key-for.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol');
-var path = require('../../internals/path');
-
-module.exports = path.Symbol.keyFor;
diff --git a/node_modules/core-js-pure/es/symbol/match-all.js b/node_modules/core-js-pure/es/symbol/match-all.js
deleted file mode 100644
index b0b2f23..0000000
--- a/node_modules/core-js-pure/es/symbol/match-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.match-all');
-require('../../modules/es.string.match-all');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('matchAll');
diff --git a/node_modules/core-js-pure/es/symbol/match.js b/node_modules/core-js-pure/es/symbol/match.js
deleted file mode 100644
index df77b4f..0000000
--- a/node_modules/core-js-pure/es/symbol/match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.match');
-require('../../modules/es.string.match');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('match');
diff --git a/node_modules/core-js-pure/es/symbol/replace.js b/node_modules/core-js-pure/es/symbol/replace.js
deleted file mode 100644
index 02b0f99..0000000
--- a/node_modules/core-js-pure/es/symbol/replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.replace');
-require('../../modules/es.string.replace');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('replace');
diff --git a/node_modules/core-js-pure/es/symbol/search.js b/node_modules/core-js-pure/es/symbol/search.js
deleted file mode 100644
index 5122ca1..0000000
--- a/node_modules/core-js-pure/es/symbol/search.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.search');
-require('../../modules/es.string.search');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('search');
diff --git a/node_modules/core-js-pure/es/symbol/species.js b/node_modules/core-js-pure/es/symbol/species.js
deleted file mode 100644
index 28d3895..0000000
--- a/node_modules/core-js-pure/es/symbol/species.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol.species');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('species');
diff --git a/node_modules/core-js-pure/es/symbol/split.js b/node_modules/core-js-pure/es/symbol/split.js
deleted file mode 100644
index 2575794..0000000
--- a/node_modules/core-js-pure/es/symbol/split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.symbol.split');
-require('../../modules/es.string.split');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('split');
diff --git a/node_modules/core-js-pure/es/symbol/to-primitive.js b/node_modules/core-js-pure/es/symbol/to-primitive.js
deleted file mode 100644
index 390c1ee..0000000
--- a/node_modules/core-js-pure/es/symbol/to-primitive.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol.to-primitive');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('toPrimitive');
diff --git a/node_modules/core-js-pure/es/symbol/to-string-tag.js b/node_modules/core-js-pure/es/symbol/to-string-tag.js
deleted file mode 100644
index 6af1551..0000000
--- a/node_modules/core-js-pure/es/symbol/to-string-tag.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.symbol.to-string-tag');
-require('../../modules/es.object.to-string');
-require('../../modules/es.math.to-string-tag');
-require('../../modules/es.json.to-string-tag');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
diff --git a/node_modules/core-js-pure/es/symbol/unscopables.js b/node_modules/core-js-pure/es/symbol/unscopables.js
deleted file mode 100644
index 6a2d972..0000000
--- a/node_modules/core-js-pure/es/symbol/unscopables.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/es.symbol.unscopables');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('unscopables');
diff --git a/node_modules/core-js-pure/es/typed-array/copy-within.js b/node_modules/core-js-pure/es/typed-array/copy-within.js
deleted file mode 100644
index 1352cec..0000000
--- a/node_modules/core-js-pure/es/typed-array/copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.copy-within');
diff --git a/node_modules/core-js-pure/es/typed-array/entries.js b/node_modules/core-js-pure/es/typed-array/entries.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/es/typed-array/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/es/typed-array/every.js b/node_modules/core-js-pure/es/typed-array/every.js
deleted file mode 100644
index 681164b..0000000
--- a/node_modules/core-js-pure/es/typed-array/every.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.every');
diff --git a/node_modules/core-js-pure/es/typed-array/fill.js b/node_modules/core-js-pure/es/typed-array/fill.js
deleted file mode 100644
index 4d92ac6..0000000
--- a/node_modules/core-js-pure/es/typed-array/fill.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.fill');
diff --git a/node_modules/core-js-pure/es/typed-array/filter.js b/node_modules/core-js-pure/es/typed-array/filter.js
deleted file mode 100644
index 7d0a630..0000000
--- a/node_modules/core-js-pure/es/typed-array/filter.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.filter');
diff --git a/node_modules/core-js-pure/es/typed-array/find-index.js b/node_modules/core-js-pure/es/typed-array/find-index.js
deleted file mode 100644
index 039cd5e..0000000
--- a/node_modules/core-js-pure/es/typed-array/find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find-index');
diff --git a/node_modules/core-js-pure/es/typed-array/find.js b/node_modules/core-js-pure/es/typed-array/find.js
deleted file mode 100644
index b3251b9..0000000
--- a/node_modules/core-js-pure/es/typed-array/find.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find');
diff --git a/node_modules/core-js-pure/es/typed-array/float32-array.js b/node_modules/core-js-pure/es/typed-array/float32-array.js
deleted file mode 100644
index 70d1f81..0000000
--- a/node_modules/core-js-pure/es/typed-array/float32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.float32-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Float32Array;
diff --git a/node_modules/core-js-pure/es/typed-array/float64-array.js b/node_modules/core-js-pure/es/typed-array/float64-array.js
deleted file mode 100644
index b84eae0..0000000
--- a/node_modules/core-js-pure/es/typed-array/float64-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.float64-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Float64Array;
diff --git a/node_modules/core-js-pure/es/typed-array/for-each.js b/node_modules/core-js-pure/es/typed-array/for-each.js
deleted file mode 100644
index defe03a..0000000
--- a/node_modules/core-js-pure/es/typed-array/for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.for-each');
diff --git a/node_modules/core-js-pure/es/typed-array/from.js b/node_modules/core-js-pure/es/typed-array/from.js
deleted file mode 100644
index e0f3444..0000000
--- a/node_modules/core-js-pure/es/typed-array/from.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.from');
diff --git a/node_modules/core-js-pure/es/typed-array/includes.js b/node_modules/core-js-pure/es/typed-array/includes.js
deleted file mode 100644
index 5ff65f9..0000000
--- a/node_modules/core-js-pure/es/typed-array/includes.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.includes');
diff --git a/node_modules/core-js-pure/es/typed-array/index-of.js b/node_modules/core-js-pure/es/typed-array/index-of.js
deleted file mode 100644
index 87081c0..0000000
--- a/node_modules/core-js-pure/es/typed-array/index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.index-of');
diff --git a/node_modules/core-js-pure/es/typed-array/index.js b/node_modules/core-js-pure/es/typed-array/index.js
deleted file mode 100644
index 4605b35..0000000
--- a/node_modules/core-js-pure/es/typed-array/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-require('../../modules/es.typed-array.int8-array');
-require('../../modules/es.typed-array.uint8-array');
-require('../../modules/es.typed-array.uint8-clamped-array');
-require('../../modules/es.typed-array.int16-array');
-require('../../modules/es.typed-array.uint16-array');
-require('../../modules/es.typed-array.int32-array');
-require('../../modules/es.typed-array.uint32-array');
-require('../../modules/es.typed-array.float32-array');
-require('../../modules/es.typed-array.float64-array');
-require('./methods');
-
-module.exports = require('../../internals/global');
diff --git a/node_modules/core-js-pure/es/typed-array/int16-array.js b/node_modules/core-js-pure/es/typed-array/int16-array.js
deleted file mode 100644
index 81f5a8e..0000000
--- a/node_modules/core-js-pure/es/typed-array/int16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.int16-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Int16Array;
diff --git a/node_modules/core-js-pure/es/typed-array/int32-array.js b/node_modules/core-js-pure/es/typed-array/int32-array.js
deleted file mode 100644
index 48176bf..0000000
--- a/node_modules/core-js-pure/es/typed-array/int32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.int32-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Int32Array;
diff --git a/node_modules/core-js-pure/es/typed-array/int8-array.js b/node_modules/core-js-pure/es/typed-array/int8-array.js
deleted file mode 100644
index 7d53845..0000000
--- a/node_modules/core-js-pure/es/typed-array/int8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.int8-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Int8Array;
diff --git a/node_modules/core-js-pure/es/typed-array/iterator.js b/node_modules/core-js-pure/es/typed-array/iterator.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/es/typed-array/iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/es/typed-array/join.js b/node_modules/core-js-pure/es/typed-array/join.js
deleted file mode 100644
index 431129c..0000000
--- a/node_modules/core-js-pure/es/typed-array/join.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.join');
diff --git a/node_modules/core-js-pure/es/typed-array/keys.js b/node_modules/core-js-pure/es/typed-array/keys.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/es/typed-array/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/es/typed-array/last-index-of.js b/node_modules/core-js-pure/es/typed-array/last-index-of.js
deleted file mode 100644
index 5682bf4..0000000
--- a/node_modules/core-js-pure/es/typed-array/last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.last-index-of');
diff --git a/node_modules/core-js-pure/es/typed-array/map.js b/node_modules/core-js-pure/es/typed-array/map.js
deleted file mode 100644
index db08fed..0000000
--- a/node_modules/core-js-pure/es/typed-array/map.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.map');
diff --git a/node_modules/core-js-pure/es/typed-array/methods.js b/node_modules/core-js-pure/es/typed-array/methods.js
deleted file mode 100644
index 4c6ee88..0000000
--- a/node_modules/core-js-pure/es/typed-array/methods.js
+++ /dev/null
@@ -1,26 +0,0 @@
-require('../../modules/es.typed-array.from');
-require('../../modules/es.typed-array.of');
-require('../../modules/es.typed-array.copy-within');
-require('../../modules/es.typed-array.every');
-require('../../modules/es.typed-array.fill');
-require('../../modules/es.typed-array.filter');
-require('../../modules/es.typed-array.find');
-require('../../modules/es.typed-array.find-index');
-require('../../modules/es.typed-array.for-each');
-require('../../modules/es.typed-array.includes');
-require('../../modules/es.typed-array.index-of');
-require('../../modules/es.typed-array.join');
-require('../../modules/es.typed-array.last-index-of');
-require('../../modules/es.typed-array.map');
-require('../../modules/es.typed-array.reduce');
-require('../../modules/es.typed-array.reduce-right');
-require('../../modules/es.typed-array.reverse');
-require('../../modules/es.typed-array.set');
-require('../../modules/es.typed-array.slice');
-require('../../modules/es.typed-array.some');
-require('../../modules/es.typed-array.sort');
-require('../../modules/es.typed-array.subarray');
-require('../../modules/es.typed-array.to-locale-string');
-require('../../modules/es.typed-array.to-string');
-require('../../modules/es.typed-array.iterator');
-require('../../modules/es.object.to-string');
diff --git a/node_modules/core-js-pure/es/typed-array/of.js b/node_modules/core-js-pure/es/typed-array/of.js
deleted file mode 100644
index 121bf5e..0000000
--- a/node_modules/core-js-pure/es/typed-array/of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.of');
diff --git a/node_modules/core-js-pure/es/typed-array/reduce-right.js b/node_modules/core-js-pure/es/typed-array/reduce-right.js
deleted file mode 100644
index cbd321f..0000000
--- a/node_modules/core-js-pure/es/typed-array/reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce-right');
diff --git a/node_modules/core-js-pure/es/typed-array/reduce.js b/node_modules/core-js-pure/es/typed-array/reduce.js
deleted file mode 100644
index e2a6f28..0000000
--- a/node_modules/core-js-pure/es/typed-array/reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce');
diff --git a/node_modules/core-js-pure/es/typed-array/reverse.js b/node_modules/core-js-pure/es/typed-array/reverse.js
deleted file mode 100644
index 14995f4..0000000
--- a/node_modules/core-js-pure/es/typed-array/reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reverse');
diff --git a/node_modules/core-js-pure/es/typed-array/set.js b/node_modules/core-js-pure/es/typed-array/set.js
deleted file mode 100644
index 5330e22..0000000
--- a/node_modules/core-js-pure/es/typed-array/set.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.set');
diff --git a/node_modules/core-js-pure/es/typed-array/slice.js b/node_modules/core-js-pure/es/typed-array/slice.js
deleted file mode 100644
index 37fb8c1..0000000
--- a/node_modules/core-js-pure/es/typed-array/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.slice');
diff --git a/node_modules/core-js-pure/es/typed-array/some.js b/node_modules/core-js-pure/es/typed-array/some.js
deleted file mode 100644
index 495c322..0000000
--- a/node_modules/core-js-pure/es/typed-array/some.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.some');
diff --git a/node_modules/core-js-pure/es/typed-array/sort.js b/node_modules/core-js-pure/es/typed-array/sort.js
deleted file mode 100644
index d6c7e30..0000000
--- a/node_modules/core-js-pure/es/typed-array/sort.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.sort');
diff --git a/node_modules/core-js-pure/es/typed-array/subarray.js b/node_modules/core-js-pure/es/typed-array/subarray.js
deleted file mode 100644
index dbad4ca..0000000
--- a/node_modules/core-js-pure/es/typed-array/subarray.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.subarray');
diff --git a/node_modules/core-js-pure/es/typed-array/to-locale-string.js b/node_modules/core-js-pure/es/typed-array/to-locale-string.js
deleted file mode 100644
index 12c809e..0000000
--- a/node_modules/core-js-pure/es/typed-array/to-locale-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-locale-string');
diff --git a/node_modules/core-js-pure/es/typed-array/to-string.js b/node_modules/core-js-pure/es/typed-array/to-string.js
deleted file mode 100644
index bf94160..0000000
--- a/node_modules/core-js-pure/es/typed-array/to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-string');
diff --git a/node_modules/core-js-pure/es/typed-array/uint16-array.js b/node_modules/core-js-pure/es/typed-array/uint16-array.js
deleted file mode 100644
index 9fe6065..0000000
--- a/node_modules/core-js-pure/es/typed-array/uint16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.uint16-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Uint16Array;
diff --git a/node_modules/core-js-pure/es/typed-array/uint32-array.js b/node_modules/core-js-pure/es/typed-array/uint32-array.js
deleted file mode 100644
index 26bdb10..0000000
--- a/node_modules/core-js-pure/es/typed-array/uint32-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.uint32-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Uint32Array;
diff --git a/node_modules/core-js-pure/es/typed-array/uint8-array.js b/node_modules/core-js-pure/es/typed-array/uint8-array.js
deleted file mode 100644
index 96a5bf1..0000000
--- a/node_modules/core-js-pure/es/typed-array/uint8-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.uint8-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Uint8Array;
diff --git a/node_modules/core-js-pure/es/typed-array/uint8-clamped-array.js b/node_modules/core-js-pure/es/typed-array/uint8-clamped-array.js
deleted file mode 100644
index 7e2d3ce..0000000
--- a/node_modules/core-js-pure/es/typed-array/uint8-clamped-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.typed-array.uint8-clamped-array');
-require('./methods');
-var global = require('../../internals/global');
-
-module.exports = global.Uint8ClampedArray;
diff --git a/node_modules/core-js-pure/es/typed-array/values.js b/node_modules/core-js-pure/es/typed-array/values.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/es/typed-array/values.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/es/weak-map/index.js b/node_modules/core-js-pure/es/weak-map/index.js
deleted file mode 100644
index 11c79a7..0000000
--- a/node_modules/core-js-pure/es/weak-map/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.weak-map');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-module.exports = path.WeakMap;
diff --git a/node_modules/core-js-pure/es/weak-set/index.js b/node_modules/core-js-pure/es/weak-set/index.js
deleted file mode 100644
index ca5f257..0000000
--- a/node_modules/core-js-pure/es/weak-set/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.weak-set');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-module.exports = path.WeakSet;
diff --git a/node_modules/core-js-pure/features/README.md b/node_modules/core-js-pure/features/README.md
deleted file mode 100644
index 62c88a0..0000000
--- a/node_modules/core-js-pure/features/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains entry points for all `core-js` features with dependencies. It's the recommended way for usage only required features.
diff --git a/node_modules/core-js-pure/features/aggregate-error.js b/node_modules/core-js-pure/features/aggregate-error.js
deleted file mode 100644
index 65d8afd..0000000
--- a/node_modules/core-js-pure/features/aggregate-error.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-require('../modules/esnext.aggregate-error');
-var path = require('../internals/path');
-
-module.exports = path.AggregateError;
diff --git a/node_modules/core-js-pure/features/array-buffer/constructor.js b/node_modules/core-js-pure/features/array-buffer/constructor.js
deleted file mode 100644
index 14f239d..0000000
--- a/node_modules/core-js-pure/features/array-buffer/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array-buffer/index.js b/node_modules/core-js-pure/features/array-buffer/index.js
deleted file mode 100644
index cb81bbc..0000000
--- a/node_modules/core-js-pure/features/array-buffer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array-buffer/is-view.js b/node_modules/core-js-pure/features/array-buffer/is-view.js
deleted file mode 100644
index 02091ec..0000000
--- a/node_modules/core-js-pure/features/array-buffer/is-view.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/is-view');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array-buffer/slice.js b/node_modules/core-js-pure/features/array-buffer/slice.js
deleted file mode 100644
index 1259ebf..0000000
--- a/node_modules/core-js-pure/features/array-buffer/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/concat.js b/node_modules/core-js-pure/features/array/concat.js
deleted file mode 100644
index 56c0625..0000000
--- a/node_modules/core-js-pure/features/array/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/copy-within.js b/node_modules/core-js-pure/features/array/copy-within.js
deleted file mode 100644
index 3db5361..0000000
--- a/node_modules/core-js-pure/features/array/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/entries.js b/node_modules/core-js-pure/features/array/entries.js
deleted file mode 100644
index 735b607..0000000
--- a/node_modules/core-js-pure/features/array/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/every.js b/node_modules/core-js-pure/features/array/every.js
deleted file mode 100644
index 8831dbc..0000000
--- a/node_modules/core-js-pure/features/array/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/fill.js b/node_modules/core-js-pure/features/array/fill.js
deleted file mode 100644
index b640ccd..0000000
--- a/node_modules/core-js-pure/features/array/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/filter.js b/node_modules/core-js-pure/features/array/filter.js
deleted file mode 100644
index c6fe56a..0000000
--- a/node_modules/core-js-pure/features/array/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/find-index.js b/node_modules/core-js-pure/features/array/find-index.js
deleted file mode 100644
index 312a7df..0000000
--- a/node_modules/core-js-pure/features/array/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/find.js b/node_modules/core-js-pure/features/array/find.js
deleted file mode 100644
index 2fc46a5..0000000
--- a/node_modules/core-js-pure/features/array/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/flat-map.js b/node_modules/core-js-pure/features/array/flat-map.js
deleted file mode 100644
index 8e3e81a..0000000
--- a/node_modules/core-js-pure/features/array/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/flat.js b/node_modules/core-js-pure/features/array/flat.js
deleted file mode 100644
index f74816e..0000000
--- a/node_modules/core-js-pure/features/array/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/for-each.js b/node_modules/core-js-pure/features/array/for-each.js
deleted file mode 100644
index a99f12c..0000000
--- a/node_modules/core-js-pure/features/array/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/from.js b/node_modules/core-js-pure/features/array/from.js
deleted file mode 100644
index 9142d6e..0000000
--- a/node_modules/core-js-pure/features/array/from.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/from');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/includes.js b/node_modules/core-js-pure/features/array/includes.js
deleted file mode 100644
index 52f040d..0000000
--- a/node_modules/core-js-pure/features/array/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/index-of.js b/node_modules/core-js-pure/features/array/index-of.js
deleted file mode 100644
index 13b63f1..0000000
--- a/node_modules/core-js-pure/features/array/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/index.js b/node_modules/core-js-pure/features/array/index.js
deleted file mode 100644
index 213822e..0000000
--- a/node_modules/core-js-pure/features/array/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var parent = require('../../es/array');
-require('../../modules/esnext.array.is-template-object');
-require('../../modules/esnext.array.last-item');
-require('../../modules/esnext.array.last-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/is-array.js b/node_modules/core-js-pure/features/array/is-array.js
deleted file mode 100644
index 89080ec..0000000
--- a/node_modules/core-js-pure/features/array/is-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/is-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/is-template-object.js b/node_modules/core-js-pure/features/array/is-template-object.js
deleted file mode 100644
index f5eaf81..0000000
--- a/node_modules/core-js-pure/features/array/is-template-object.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.array.is-template-object');
-var path = require('../../internals/path');
-
-module.exports = path.Array.isTemplateObject;
diff --git a/node_modules/core-js-pure/features/array/iterator.js b/node_modules/core-js-pure/features/array/iterator.js
deleted file mode 100644
index bfa833f..0000000
--- a/node_modules/core-js-pure/features/array/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/join.js b/node_modules/core-js-pure/features/array/join.js
deleted file mode 100644
index 74fbfc6..0000000
--- a/node_modules/core-js-pure/features/array/join.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/join');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/keys.js b/node_modules/core-js-pure/features/array/keys.js
deleted file mode 100644
index 40b2e75..0000000
--- a/node_modules/core-js-pure/features/array/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/last-index-of.js b/node_modules/core-js-pure/features/array/last-index-of.js
deleted file mode 100644
index bdcd762..0000000
--- a/node_modules/core-js-pure/features/array/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/last-index.js b/node_modules/core-js-pure/features/array/last-index.js
deleted file mode 100644
index 230cea0..0000000
--- a/node_modules/core-js-pure/features/array/last-index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/esnext.array.last-index');
diff --git a/node_modules/core-js-pure/features/array/last-item.js b/node_modules/core-js-pure/features/array/last-item.js
deleted file mode 100644
index 5a4b25b..0000000
--- a/node_modules/core-js-pure/features/array/last-item.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/esnext.array.last-item');
diff --git a/node_modules/core-js-pure/features/array/map.js b/node_modules/core-js-pure/features/array/map.js
deleted file mode 100644
index 3768704..0000000
--- a/node_modules/core-js-pure/features/array/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/of.js b/node_modules/core-js-pure/features/array/of.js
deleted file mode 100644
index d5b74f1..0000000
--- a/node_modules/core-js-pure/features/array/of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/reduce-right.js b/node_modules/core-js-pure/features/array/reduce-right.js
deleted file mode 100644
index f93b6de..0000000
--- a/node_modules/core-js-pure/features/array/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/reduce.js b/node_modules/core-js-pure/features/array/reduce.js
deleted file mode 100644
index a3ae7b1..0000000
--- a/node_modules/core-js-pure/features/array/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/reverse.js b/node_modules/core-js-pure/features/array/reverse.js
deleted file mode 100644
index fc9faf1..0000000
--- a/node_modules/core-js-pure/features/array/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/slice.js b/node_modules/core-js-pure/features/array/slice.js
deleted file mode 100644
index 2c098bd..0000000
--- a/node_modules/core-js-pure/features/array/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/some.js b/node_modules/core-js-pure/features/array/some.js
deleted file mode 100644
index a198c0e..0000000
--- a/node_modules/core-js-pure/features/array/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/sort.js b/node_modules/core-js-pure/features/array/sort.js
deleted file mode 100644
index 5741a92..0000000
--- a/node_modules/core-js-pure/features/array/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/splice.js b/node_modules/core-js-pure/features/array/splice.js
deleted file mode 100644
index e5aeb46..0000000
--- a/node_modules/core-js-pure/features/array/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/values.js b/node_modules/core-js-pure/features/array/values.js
deleted file mode 100644
index 146bce3..0000000
--- a/node_modules/core-js-pure/features/array/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/concat.js b/node_modules/core-js-pure/features/array/virtual/concat.js
deleted file mode 100644
index 9c9481b..0000000
--- a/node_modules/core-js-pure/features/array/virtual/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/copy-within.js b/node_modules/core-js-pure/features/array/virtual/copy-within.js
deleted file mode 100644
index 7d43d5c..0000000
--- a/node_modules/core-js-pure/features/array/virtual/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/entries.js b/node_modules/core-js-pure/features/array/virtual/entries.js
deleted file mode 100644
index 008e164..0000000
--- a/node_modules/core-js-pure/features/array/virtual/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/every.js b/node_modules/core-js-pure/features/array/virtual/every.js
deleted file mode 100644
index 3c661eb..0000000
--- a/node_modules/core-js-pure/features/array/virtual/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/fill.js b/node_modules/core-js-pure/features/array/virtual/fill.js
deleted file mode 100644
index b0a3b0e..0000000
--- a/node_modules/core-js-pure/features/array/virtual/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/filter.js b/node_modules/core-js-pure/features/array/virtual/filter.js
deleted file mode 100644
index b78f806..0000000
--- a/node_modules/core-js-pure/features/array/virtual/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/find-index.js b/node_modules/core-js-pure/features/array/virtual/find-index.js
deleted file mode 100644
index 0be7653..0000000
--- a/node_modules/core-js-pure/features/array/virtual/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/find.js b/node_modules/core-js-pure/features/array/virtual/find.js
deleted file mode 100644
index 0f28d7c..0000000
--- a/node_modules/core-js-pure/features/array/virtual/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/flat-map.js b/node_modules/core-js-pure/features/array/virtual/flat-map.js
deleted file mode 100644
index 5adc39b..0000000
--- a/node_modules/core-js-pure/features/array/virtual/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/flat.js b/node_modules/core-js-pure/features/array/virtual/flat.js
deleted file mode 100644
index cfafee6..0000000
--- a/node_modules/core-js-pure/features/array/virtual/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/for-each.js b/node_modules/core-js-pure/features/array/virtual/for-each.js
deleted file mode 100644
index ca081fb..0000000
--- a/node_modules/core-js-pure/features/array/virtual/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/includes.js b/node_modules/core-js-pure/features/array/virtual/includes.js
deleted file mode 100644
index fc9bb00..0000000
--- a/node_modules/core-js-pure/features/array/virtual/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/index-of.js b/node_modules/core-js-pure/features/array/virtual/index-of.js
deleted file mode 100644
index aedd505..0000000
--- a/node_modules/core-js-pure/features/array/virtual/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/index.js b/node_modules/core-js-pure/features/array/virtual/index.js
deleted file mode 100644
index 98d4718..0000000
--- a/node_modules/core-js-pure/features/array/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/iterator.js b/node_modules/core-js-pure/features/array/virtual/iterator.js
deleted file mode 100644
index 81ca2a2..0000000
--- a/node_modules/core-js-pure/features/array/virtual/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/join.js b/node_modules/core-js-pure/features/array/virtual/join.js
deleted file mode 100644
index fe784ef..0000000
--- a/node_modules/core-js-pure/features/array/virtual/join.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/join');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/keys.js b/node_modules/core-js-pure/features/array/virtual/keys.js
deleted file mode 100644
index 6ed98ec..0000000
--- a/node_modules/core-js-pure/features/array/virtual/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/last-index-of.js b/node_modules/core-js-pure/features/array/virtual/last-index-of.js
deleted file mode 100644
index 697d588..0000000
--- a/node_modules/core-js-pure/features/array/virtual/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/map.js b/node_modules/core-js-pure/features/array/virtual/map.js
deleted file mode 100644
index 9475976..0000000
--- a/node_modules/core-js-pure/features/array/virtual/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/reduce-right.js b/node_modules/core-js-pure/features/array/virtual/reduce-right.js
deleted file mode 100644
index cf39fca..0000000
--- a/node_modules/core-js-pure/features/array/virtual/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/reduce.js b/node_modules/core-js-pure/features/array/virtual/reduce.js
deleted file mode 100644
index 5a08269..0000000
--- a/node_modules/core-js-pure/features/array/virtual/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/reverse.js b/node_modules/core-js-pure/features/array/virtual/reverse.js
deleted file mode 100644
index 099d13e..0000000
--- a/node_modules/core-js-pure/features/array/virtual/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/slice.js b/node_modules/core-js-pure/features/array/virtual/slice.js
deleted file mode 100644
index f308e00..0000000
--- a/node_modules/core-js-pure/features/array/virtual/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/some.js b/node_modules/core-js-pure/features/array/virtual/some.js
deleted file mode 100644
index d41a8e7..0000000
--- a/node_modules/core-js-pure/features/array/virtual/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/sort.js b/node_modules/core-js-pure/features/array/virtual/sort.js
deleted file mode 100644
index 5da0daa..0000000
--- a/node_modules/core-js-pure/features/array/virtual/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/splice.js b/node_modules/core-js-pure/features/array/virtual/splice.js
deleted file mode 100644
index 4cbb494..0000000
--- a/node_modules/core-js-pure/features/array/virtual/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/array/virtual/values.js b/node_modules/core-js-pure/features/array/virtual/values.js
deleted file mode 100644
index ebb6375..0000000
--- a/node_modules/core-js-pure/features/array/virtual/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/async-iterator/as-indexed-pairs.js b/node_modules/core-js-pure/features/async-iterator/as-indexed-pairs.js
deleted file mode 100644
index 8fd352b..0000000
--- a/node_modules/core-js-pure/features/async-iterator/as-indexed-pairs.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.as-indexed-pairs');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'asIndexedPairs');
diff --git a/node_modules/core-js-pure/features/async-iterator/drop.js b/node_modules/core-js-pure/features/async-iterator/drop.js
deleted file mode 100644
index ca33f5b..0000000
--- a/node_modules/core-js-pure/features/async-iterator/drop.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.drop');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'drop');
diff --git a/node_modules/core-js-pure/features/async-iterator/every.js b/node_modules/core-js-pure/features/async-iterator/every.js
deleted file mode 100644
index b090f1d..0000000
--- a/node_modules/core-js-pure/features/async-iterator/every.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.every');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'every');
diff --git a/node_modules/core-js-pure/features/async-iterator/filter.js b/node_modules/core-js-pure/features/async-iterator/filter.js
deleted file mode 100644
index 4a37bd0..0000000
--- a/node_modules/core-js-pure/features/async-iterator/filter.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.filter');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'filter');
diff --git a/node_modules/core-js-pure/features/async-iterator/find.js b/node_modules/core-js-pure/features/async-iterator/find.js
deleted file mode 100644
index 6824ee9..0000000
--- a/node_modules/core-js-pure/features/async-iterator/find.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.find');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'find');
diff --git a/node_modules/core-js-pure/features/async-iterator/flat-map.js b/node_modules/core-js-pure/features/async-iterator/flat-map.js
deleted file mode 100644
index ef26e56..0000000
--- a/node_modules/core-js-pure/features/async-iterator/flat-map.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.flat-map');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'flatMap');
diff --git a/node_modules/core-js-pure/features/async-iterator/for-each.js b/node_modules/core-js-pure/features/async-iterator/for-each.js
deleted file mode 100644
index ff0a34a..0000000
--- a/node_modules/core-js-pure/features/async-iterator/for-each.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.for-each');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'forEach');
diff --git a/node_modules/core-js-pure/features/async-iterator/from.js b/node_modules/core-js-pure/features/async-iterator/from.js
deleted file mode 100644
index 97275d9..0000000
--- a/node_modules/core-js-pure/features/async-iterator/from.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.from');
-require('../../modules/web.dom-collections.iterator');
-
-var path = require('../../internals/path');
-
-module.exports = path.AsyncIterator.from;
diff --git a/node_modules/core-js-pure/features/async-iterator/index.js b/node_modules/core-js-pure/features/async-iterator/index.js
deleted file mode 100644
index 2f188c6..0000000
--- a/node_modules/core-js-pure/features/async-iterator/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.as-indexed-pairs');
-require('../../modules/esnext.async-iterator.drop');
-require('../../modules/esnext.async-iterator.every');
-require('../../modules/esnext.async-iterator.filter');
-require('../../modules/esnext.async-iterator.find');
-require('../../modules/esnext.async-iterator.flat-map');
-require('../../modules/esnext.async-iterator.for-each');
-require('../../modules/esnext.async-iterator.from');
-require('../../modules/esnext.async-iterator.map');
-require('../../modules/esnext.async-iterator.reduce');
-require('../../modules/esnext.async-iterator.some');
-require('../../modules/esnext.async-iterator.take');
-require('../../modules/esnext.async-iterator.to-array');
-require('../../modules/web.dom-collections.iterator');
-
-var path = require('../../internals/path');
-
-module.exports = path.AsyncIterator;
diff --git a/node_modules/core-js-pure/features/async-iterator/map.js b/node_modules/core-js-pure/features/async-iterator/map.js
deleted file mode 100644
index a07254f..0000000
--- a/node_modules/core-js-pure/features/async-iterator/map.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.map');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'map');
diff --git a/node_modules/core-js-pure/features/async-iterator/reduce.js b/node_modules/core-js-pure/features/async-iterator/reduce.js
deleted file mode 100644
index b05022d..0000000
--- a/node_modules/core-js-pure/features/async-iterator/reduce.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.reduce');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'reduce');
diff --git a/node_modules/core-js-pure/features/async-iterator/some.js b/node_modules/core-js-pure/features/async-iterator/some.js
deleted file mode 100644
index 1d08566..0000000
--- a/node_modules/core-js-pure/features/async-iterator/some.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.some');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'some');
diff --git a/node_modules/core-js-pure/features/async-iterator/take.js b/node_modules/core-js-pure/features/async-iterator/take.js
deleted file mode 100644
index c67587a..0000000
--- a/node_modules/core-js-pure/features/async-iterator/take.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.take');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'take');
diff --git a/node_modules/core-js-pure/features/async-iterator/to-array.js b/node_modules/core-js-pure/features/async-iterator/to-array.js
deleted file mode 100644
index 30f80b8..0000000
--- a/node_modules/core-js-pure/features/async-iterator/to-array.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.promise');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.async-iterator.constructor');
-require('../../modules/esnext.async-iterator.to-array');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('AsyncIterator', 'toArray');
diff --git a/node_modules/core-js-pure/features/clear-immediate.js b/node_modules/core-js-pure/features/clear-immediate.js
deleted file mode 100644
index 15aa13b..0000000
--- a/node_modules/core-js-pure/features/clear-immediate.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../stable/clear-immediate');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/composite-key.js b/node_modules/core-js-pure/features/composite-key.js
deleted file mode 100644
index 9fd507b..0000000
--- a/node_modules/core-js-pure/features/composite-key.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/esnext.composite-key');
-var path = require('../internals/path');
-
-module.exports = path.compositeKey;
diff --git a/node_modules/core-js-pure/features/composite-symbol.js b/node_modules/core-js-pure/features/composite-symbol.js
deleted file mode 100644
index fce9600..0000000
--- a/node_modules/core-js-pure/features/composite-symbol.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/es.symbol');
-require('../modules/esnext.composite-symbol');
-var path = require('../internals/path');
-
-module.exports = path.compositeSymbol;
diff --git a/node_modules/core-js-pure/features/data-view/index.js b/node_modules/core-js-pure/features/data-view/index.js
deleted file mode 100644
index 0387295..0000000
--- a/node_modules/core-js-pure/features/data-view/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/data-view');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/index.js b/node_modules/core-js-pure/features/date/index.js
deleted file mode 100644
index e9bde08..0000000
--- a/node_modules/core-js-pure/features/date/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/now.js b/node_modules/core-js-pure/features/date/now.js
deleted file mode 100644
index a4d8485..0000000
--- a/node_modules/core-js-pure/features/date/now.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/now');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/to-iso-string.js b/node_modules/core-js-pure/features/date/to-iso-string.js
deleted file mode 100644
index a6e6a7f..0000000
--- a/node_modules/core-js-pure/features/date/to-iso-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-iso-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/to-json.js b/node_modules/core-js-pure/features/date/to-json.js
deleted file mode 100644
index 23e8b0c..0000000
--- a/node_modules/core-js-pure/features/date/to-json.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-json');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/to-primitive.js b/node_modules/core-js-pure/features/date/to-primitive.js
deleted file mode 100644
index 193421d..0000000
--- a/node_modules/core-js-pure/features/date/to-primitive.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-primitive');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/date/to-string.js b/node_modules/core-js-pure/features/date/to-string.js
deleted file mode 100644
index f5c9592..0000000
--- a/node_modules/core-js-pure/features/date/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/dom-collections/for-each.js b/node_modules/core-js-pure/features/dom-collections/for-each.js
deleted file mode 100644
index dd2ac64..0000000
--- a/node_modules/core-js-pure/features/dom-collections/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/dom-collections/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/dom-collections/index.js b/node_modules/core-js-pure/features/dom-collections/index.js
deleted file mode 100644
index 1ae0660..0000000
--- a/node_modules/core-js-pure/features/dom-collections/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/dom-collections');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/dom-collections/iterator.js b/node_modules/core-js-pure/features/dom-collections/iterator.js
deleted file mode 100644
index d63ca43..0000000
--- a/node_modules/core-js-pure/features/dom-collections/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/dom-collections/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/bind.js b/node_modules/core-js-pure/features/function/bind.js
deleted file mode 100644
index b916d67..0000000
--- a/node_modules/core-js-pure/features/function/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/has-instance.js b/node_modules/core-js-pure/features/function/has-instance.js
deleted file mode 100644
index 9538a80..0000000
--- a/node_modules/core-js-pure/features/function/has-instance.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/has-instance');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/index.js b/node_modules/core-js-pure/features/function/index.js
deleted file mode 100644
index f906e2e..0000000
--- a/node_modules/core-js-pure/features/function/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/name.js b/node_modules/core-js-pure/features/function/name.js
deleted file mode 100644
index a7729f5..0000000
--- a/node_modules/core-js-pure/features/function/name.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/name');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/virtual/bind.js b/node_modules/core-js-pure/features/function/virtual/bind.js
deleted file mode 100644
index e7b9a3b..0000000
--- a/node_modules/core-js-pure/features/function/virtual/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/function/virtual/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/function/virtual/index.js b/node_modules/core-js-pure/features/function/virtual/index.js
deleted file mode 100644
index 2282ff4..0000000
--- a/node_modules/core-js-pure/features/function/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/function/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/get-iterator-method.js b/node_modules/core-js-pure/features/get-iterator-method.js
deleted file mode 100644
index 6dd77cb..0000000
--- a/node_modules/core-js-pure/features/get-iterator-method.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-var getIteratorMethod = require('../internals/get-iterator-method');
-
-module.exports = getIteratorMethod;
diff --git a/node_modules/core-js-pure/features/get-iterator.js b/node_modules/core-js-pure/features/get-iterator.js
deleted file mode 100644
index 3e52b2c..0000000
--- a/node_modules/core-js-pure/features/get-iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-var getIterator = require('../internals/get-iterator');
-
-module.exports = getIterator;
diff --git a/node_modules/core-js-pure/features/global-this.js b/node_modules/core-js-pure/features/global-this.js
deleted file mode 100644
index 81d7455..0000000
--- a/node_modules/core-js-pure/features/global-this.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: remove from `core-js@4`
-require('../modules/esnext.global-this');
-
-var parent = require('../es/global-this');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/index.js b/node_modules/core-js-pure/features/index.js
deleted file mode 100644
index 9a8b0cb..0000000
--- a/node_modules/core-js-pure/features/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('..');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/at.js b/node_modules/core-js-pure/features/instance/at.js
deleted file mode 100644
index f9b4f79..0000000
--- a/node_modules/core-js-pure/features/instance/at.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var at = require('../string/virtual/at');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.at;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.at) ? at : own;
-};
diff --git a/node_modules/core-js-pure/features/instance/bind.js b/node_modules/core-js-pure/features/instance/bind.js
deleted file mode 100644
index acb6bbe..0000000
--- a/node_modules/core-js-pure/features/instance/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/code-point-at.js b/node_modules/core-js-pure/features/instance/code-point-at.js
deleted file mode 100644
index 1d4435e..0000000
--- a/node_modules/core-js-pure/features/instance/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/code-points.js b/node_modules/core-js-pure/features/instance/code-points.js
deleted file mode 100644
index 6437299..0000000
--- a/node_modules/core-js-pure/features/instance/code-points.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var codePoints = require('../string/virtual/code-points');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.codePoints;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.codePoints) ? codePoints : own;
-};
diff --git a/node_modules/core-js-pure/features/instance/concat.js b/node_modules/core-js-pure/features/instance/concat.js
deleted file mode 100644
index 874d87d..0000000
--- a/node_modules/core-js-pure/features/instance/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/copy-within.js b/node_modules/core-js-pure/features/instance/copy-within.js
deleted file mode 100644
index 9d472b0..0000000
--- a/node_modules/core-js-pure/features/instance/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/ends-with.js b/node_modules/core-js-pure/features/instance/ends-with.js
deleted file mode 100644
index aaf2c16..0000000
--- a/node_modules/core-js-pure/features/instance/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/entries.js b/node_modules/core-js-pure/features/instance/entries.js
deleted file mode 100644
index ef42a0e..0000000
--- a/node_modules/core-js-pure/features/instance/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/instance/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/every.js b/node_modules/core-js-pure/features/instance/every.js
deleted file mode 100644
index 3dc4296..0000000
--- a/node_modules/core-js-pure/features/instance/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/fill.js b/node_modules/core-js-pure/features/instance/fill.js
deleted file mode 100644
index 4e38c42..0000000
--- a/node_modules/core-js-pure/features/instance/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/filter.js b/node_modules/core-js-pure/features/instance/filter.js
deleted file mode 100644
index 5219c64..0000000
--- a/node_modules/core-js-pure/features/instance/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/find-index.js b/node_modules/core-js-pure/features/instance/find-index.js
deleted file mode 100644
index b207364..0000000
--- a/node_modules/core-js-pure/features/instance/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/find.js b/node_modules/core-js-pure/features/instance/find.js
deleted file mode 100644
index 024fc81..0000000
--- a/node_modules/core-js-pure/features/instance/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/flags.js b/node_modules/core-js-pure/features/instance/flags.js
deleted file mode 100644
index 064c9ec..0000000
--- a/node_modules/core-js-pure/features/instance/flags.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flags');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/flat-map.js b/node_modules/core-js-pure/features/instance/flat-map.js
deleted file mode 100644
index bea3d82..0000000
--- a/node_modules/core-js-pure/features/instance/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/flat.js b/node_modules/core-js-pure/features/instance/flat.js
deleted file mode 100644
index d61b6ab..0000000
--- a/node_modules/core-js-pure/features/instance/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/for-each.js b/node_modules/core-js-pure/features/instance/for-each.js
deleted file mode 100644
index 59d1d80..0000000
--- a/node_modules/core-js-pure/features/instance/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/instance/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/includes.js b/node_modules/core-js-pure/features/instance/includes.js
deleted file mode 100644
index 1bccfac..0000000
--- a/node_modules/core-js-pure/features/instance/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/index-of.js b/node_modules/core-js-pure/features/instance/index-of.js
deleted file mode 100644
index 8ddbaba..0000000
--- a/node_modules/core-js-pure/features/instance/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/keys.js b/node_modules/core-js-pure/features/instance/keys.js
deleted file mode 100644
index 6320846..0000000
--- a/node_modules/core-js-pure/features/instance/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/instance/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/last-index-of.js b/node_modules/core-js-pure/features/instance/last-index-of.js
deleted file mode 100644
index c860188..0000000
--- a/node_modules/core-js-pure/features/instance/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/map.js b/node_modules/core-js-pure/features/instance/map.js
deleted file mode 100644
index 1f18a09..0000000
--- a/node_modules/core-js-pure/features/instance/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/match-all.js b/node_modules/core-js-pure/features/instance/match-all.js
deleted file mode 100644
index f0ed173..0000000
--- a/node_modules/core-js-pure/features/instance/match-all.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: remove from `core-js@4`
-require('../../modules/esnext.string.match-all');
-
-var parent = require('../../es/instance/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/pad-end.js b/node_modules/core-js-pure/features/instance/pad-end.js
deleted file mode 100644
index afe92b0..0000000
--- a/node_modules/core-js-pure/features/instance/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/pad-start.js b/node_modules/core-js-pure/features/instance/pad-start.js
deleted file mode 100644
index 6a7db7d..0000000
--- a/node_modules/core-js-pure/features/instance/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/reduce-right.js b/node_modules/core-js-pure/features/instance/reduce-right.js
deleted file mode 100644
index 6a1bb34..0000000
--- a/node_modules/core-js-pure/features/instance/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/reduce.js b/node_modules/core-js-pure/features/instance/reduce.js
deleted file mode 100644
index 908e12e..0000000
--- a/node_modules/core-js-pure/features/instance/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/repeat.js b/node_modules/core-js-pure/features/instance/repeat.js
deleted file mode 100644
index 76f2f4c..0000000
--- a/node_modules/core-js-pure/features/instance/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/replace-all.js b/node_modules/core-js-pure/features/instance/replace-all.js
deleted file mode 100644
index d920a60..0000000
--- a/node_modules/core-js-pure/features/instance/replace-all.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var replaceAll = require('../string/virtual/replace-all');
-
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.replaceAll;
-  return typeof it === 'string' || it === StringPrototype
-    || (it instanceof String && own === StringPrototype.replaceAll) ? replaceAll : own;
-};
diff --git a/node_modules/core-js-pure/features/instance/reverse.js b/node_modules/core-js-pure/features/instance/reverse.js
deleted file mode 100644
index ca634dc..0000000
--- a/node_modules/core-js-pure/features/instance/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/slice.js b/node_modules/core-js-pure/features/instance/slice.js
deleted file mode 100644
index 2722605..0000000
--- a/node_modules/core-js-pure/features/instance/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/some.js b/node_modules/core-js-pure/features/instance/some.js
deleted file mode 100644
index 3cd6a8b..0000000
--- a/node_modules/core-js-pure/features/instance/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/sort.js b/node_modules/core-js-pure/features/instance/sort.js
deleted file mode 100644
index d06c4bb..0000000
--- a/node_modules/core-js-pure/features/instance/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/splice.js b/node_modules/core-js-pure/features/instance/splice.js
deleted file mode 100644
index 46da42c..0000000
--- a/node_modules/core-js-pure/features/instance/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/starts-with.js b/node_modules/core-js-pure/features/instance/starts-with.js
deleted file mode 100644
index f2e3a08..0000000
--- a/node_modules/core-js-pure/features/instance/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/trim-end.js b/node_modules/core-js-pure/features/instance/trim-end.js
deleted file mode 100644
index 787e52e..0000000
--- a/node_modules/core-js-pure/features/instance/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/trim-left.js b/node_modules/core-js-pure/features/instance/trim-left.js
deleted file mode 100644
index 7127d67..0000000
--- a/node_modules/core-js-pure/features/instance/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/trim-right.js b/node_modules/core-js-pure/features/instance/trim-right.js
deleted file mode 100644
index 760567e..0000000
--- a/node_modules/core-js-pure/features/instance/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/trim-start.js b/node_modules/core-js-pure/features/instance/trim-start.js
deleted file mode 100644
index 3c59472..0000000
--- a/node_modules/core-js-pure/features/instance/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/trim.js b/node_modules/core-js-pure/features/instance/trim.js
deleted file mode 100644
index 4d99499..0000000
--- a/node_modules/core-js-pure/features/instance/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/instance/values.js b/node_modules/core-js-pure/features/instance/values.js
deleted file mode 100644
index 71d1733..0000000
--- a/node_modules/core-js-pure/features/instance/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/instance/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/is-iterable.js b/node_modules/core-js-pure/features/is-iterable.js
deleted file mode 100644
index 308da78..0000000
--- a/node_modules/core-js-pure/features/is-iterable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-var isIterable = require('../internals/is-iterable');
-
-module.exports = isIterable;
diff --git a/node_modules/core-js-pure/features/iterator/as-indexed-pairs.js b/node_modules/core-js-pure/features/iterator/as-indexed-pairs.js
deleted file mode 100644
index fdf2d31..0000000
--- a/node_modules/core-js-pure/features/iterator/as-indexed-pairs.js
+++ /dev/null
@@ -1,10 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.as-indexed-pairs');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'asIndexedPairs');
-
diff --git a/node_modules/core-js-pure/features/iterator/drop.js b/node_modules/core-js-pure/features/iterator/drop.js
deleted file mode 100644
index 52b4245..0000000
--- a/node_modules/core-js-pure/features/iterator/drop.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.drop');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'drop');
diff --git a/node_modules/core-js-pure/features/iterator/every.js b/node_modules/core-js-pure/features/iterator/every.js
deleted file mode 100644
index cc3fbed..0000000
--- a/node_modules/core-js-pure/features/iterator/every.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.every');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'every');
diff --git a/node_modules/core-js-pure/features/iterator/filter.js b/node_modules/core-js-pure/features/iterator/filter.js
deleted file mode 100644
index f744150..0000000
--- a/node_modules/core-js-pure/features/iterator/filter.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.filter');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'filter');
diff --git a/node_modules/core-js-pure/features/iterator/find.js b/node_modules/core-js-pure/features/iterator/find.js
deleted file mode 100644
index dfed16c..0000000
--- a/node_modules/core-js-pure/features/iterator/find.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.find');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'find');
diff --git a/node_modules/core-js-pure/features/iterator/flat-map.js b/node_modules/core-js-pure/features/iterator/flat-map.js
deleted file mode 100644
index 81e3098..0000000
--- a/node_modules/core-js-pure/features/iterator/flat-map.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.flat-map');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'flatMap');
diff --git a/node_modules/core-js-pure/features/iterator/for-each.js b/node_modules/core-js-pure/features/iterator/for-each.js
deleted file mode 100644
index e711034..0000000
--- a/node_modules/core-js-pure/features/iterator/for-each.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.for-each');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'forEach');
diff --git a/node_modules/core-js-pure/features/iterator/from.js b/node_modules/core-js-pure/features/iterator/from.js
deleted file mode 100644
index e79d1a1..0000000
--- a/node_modules/core-js-pure/features/iterator/from.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.from');
-require('../../modules/web.dom-collections.iterator');
-
-var path = require('../../internals/path');
-
-module.exports = path.Iterator.from;
diff --git a/node_modules/core-js-pure/features/iterator/index.js b/node_modules/core-js-pure/features/iterator/index.js
deleted file mode 100644
index 6e86af7..0000000
--- a/node_modules/core-js-pure/features/iterator/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.as-indexed-pairs');
-require('../../modules/esnext.iterator.drop');
-require('../../modules/esnext.iterator.every');
-require('../../modules/esnext.iterator.filter');
-require('../../modules/esnext.iterator.find');
-require('../../modules/esnext.iterator.flat-map');
-require('../../modules/esnext.iterator.for-each');
-require('../../modules/esnext.iterator.from');
-require('../../modules/esnext.iterator.map');
-require('../../modules/esnext.iterator.reduce');
-require('../../modules/esnext.iterator.some');
-require('../../modules/esnext.iterator.take');
-require('../../modules/esnext.iterator.to-array');
-require('../../modules/web.dom-collections.iterator');
-
-var path = require('../../internals/path');
-
-module.exports = path.Iterator;
diff --git a/node_modules/core-js-pure/features/iterator/map.js b/node_modules/core-js-pure/features/iterator/map.js
deleted file mode 100644
index 060d0f5..0000000
--- a/node_modules/core-js-pure/features/iterator/map.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.map');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'map');
diff --git a/node_modules/core-js-pure/features/iterator/reduce.js b/node_modules/core-js-pure/features/iterator/reduce.js
deleted file mode 100644
index 7049b47..0000000
--- a/node_modules/core-js-pure/features/iterator/reduce.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.reduce');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'reduce');
diff --git a/node_modules/core-js-pure/features/iterator/some.js b/node_modules/core-js-pure/features/iterator/some.js
deleted file mode 100644
index 0a0a20c..0000000
--- a/node_modules/core-js-pure/features/iterator/some.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.some');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'some');
diff --git a/node_modules/core-js-pure/features/iterator/take.js b/node_modules/core-js-pure/features/iterator/take.js
deleted file mode 100644
index 962c4ad..0000000
--- a/node_modules/core-js-pure/features/iterator/take.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.take');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'take');
diff --git a/node_modules/core-js-pure/features/iterator/to-array.js b/node_modules/core-js-pure/features/iterator/to-array.js
deleted file mode 100644
index 42f490b..0000000
--- a/node_modules/core-js-pure/features/iterator/to-array.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.iterator.constructor');
-require('../../modules/esnext.iterator.to-array');
-require('../../modules/web.dom-collections.iterator');
-
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Iterator', 'toArray');
diff --git a/node_modules/core-js-pure/features/json/index.js b/node_modules/core-js-pure/features/json/index.js
deleted file mode 100644
index c53da9f..0000000
--- a/node_modules/core-js-pure/features/json/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/json/stringify.js b/node_modules/core-js-pure/features/json/stringify.js
deleted file mode 100644
index d6d8c52..0000000
--- a/node_modules/core-js-pure/features/json/stringify.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json/stringify');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/json/to-string-tag.js b/node_modules/core-js-pure/features/json/to-string-tag.js
deleted file mode 100644
index 5355956..0000000
--- a/node_modules/core-js-pure/features/json/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/map/delete-all.js b/node_modules/core-js-pure/features/map/delete-all.js
deleted file mode 100644
index ecb2113..0000000
--- a/node_modules/core-js-pure/features/map/delete-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.delete-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'deleteAll');
diff --git a/node_modules/core-js-pure/features/map/every.js b/node_modules/core-js-pure/features/map/every.js
deleted file mode 100644
index a86e393..0000000
--- a/node_modules/core-js-pure/features/map/every.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.every');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'every');
diff --git a/node_modules/core-js-pure/features/map/filter.js b/node_modules/core-js-pure/features/map/filter.js
deleted file mode 100644
index 2326526..0000000
--- a/node_modules/core-js-pure/features/map/filter.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.filter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'filter');
diff --git a/node_modules/core-js-pure/features/map/find-key.js b/node_modules/core-js-pure/features/map/find-key.js
deleted file mode 100644
index 662c423..0000000
--- a/node_modules/core-js-pure/features/map/find-key.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.find-key');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'findKey');
diff --git a/node_modules/core-js-pure/features/map/find.js b/node_modules/core-js-pure/features/map/find.js
deleted file mode 100644
index 993b226..0000000
--- a/node_modules/core-js-pure/features/map/find.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.find');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'find');
diff --git a/node_modules/core-js-pure/features/map/from.js b/node_modules/core-js-pure/features/map/from.js
deleted file mode 100644
index b7d75f9..0000000
--- a/node_modules/core-js-pure/features/map/from.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.map');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.map.from');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var Map = path.Map;
-var mapFrom = Map.from;
-
-module.exports = function from(source, mapFn, thisArg) {
-  return mapFrom.call(typeof this === 'function' ? this : Map, source, mapFn, thisArg);
-};
diff --git a/node_modules/core-js-pure/features/map/group-by.js b/node_modules/core-js-pure/features/map/group-by.js
deleted file mode 100644
index c4dfdca..0000000
--- a/node_modules/core-js-pure/features/map/group-by.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-require('../../modules/es.map');
-require('../../modules/esnext.map.group-by');
-var path = require('../../internals/path');
-
-var Map = path.Map;
-var mapGroupBy = Map.groupBy;
-
-module.exports = function groupBy(source, iterable, keyDerivative) {
-  return mapGroupBy.call(typeof this === 'function' ? this : Map, source, iterable, keyDerivative);
-};
diff --git a/node_modules/core-js-pure/features/map/includes.js b/node_modules/core-js-pure/features/map/includes.js
deleted file mode 100644
index 3ba5acd..0000000
--- a/node_modules/core-js-pure/features/map/includes.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.includes');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'includes');
diff --git a/node_modules/core-js-pure/features/map/index.js b/node_modules/core-js-pure/features/map/index.js
deleted file mode 100644
index 73ae0cf..0000000
--- a/node_modules/core-js-pure/features/map/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var parent = require('../../es/map');
-require('../../modules/esnext.map.from');
-require('../../modules/esnext.map.of');
-require('../../modules/esnext.map.delete-all');
-require('../../modules/esnext.map.every');
-require('../../modules/esnext.map.filter');
-require('../../modules/esnext.map.find');
-require('../../modules/esnext.map.find-key');
-require('../../modules/esnext.map.group-by');
-require('../../modules/esnext.map.includes');
-require('../../modules/esnext.map.key-by');
-require('../../modules/esnext.map.key-of');
-require('../../modules/esnext.map.map-keys');
-require('../../modules/esnext.map.map-values');
-require('../../modules/esnext.map.merge');
-require('../../modules/esnext.map.reduce');
-require('../../modules/esnext.map.some');
-require('../../modules/esnext.map.update');
-require('../../modules/esnext.map.upsert');
-// TODO: remove from `core-js@4`
-require('../../modules/esnext.map.update-or-insert');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/map/key-by.js b/node_modules/core-js-pure/features/map/key-by.js
deleted file mode 100644
index b156f02..0000000
--- a/node_modules/core-js-pure/features/map/key-by.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-require('../../modules/es.map');
-require('../../modules/esnext.map.key-by');
-var path = require('../../internals/path');
-
-var Map = path.Map;
-var mapKeyBy = Map.keyBy;
-
-module.exports = function keyBy(source, iterable, keyDerivative) {
-  return mapKeyBy.call(typeof this === 'function' ? this : Map, source, iterable, keyDerivative);
-};
diff --git a/node_modules/core-js-pure/features/map/key-of.js b/node_modules/core-js-pure/features/map/key-of.js
deleted file mode 100644
index 0d0789a..0000000
--- a/node_modules/core-js-pure/features/map/key-of.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.key-of');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'keyOf');
diff --git a/node_modules/core-js-pure/features/map/map-keys.js b/node_modules/core-js-pure/features/map/map-keys.js
deleted file mode 100644
index 07a49a3..0000000
--- a/node_modules/core-js-pure/features/map/map-keys.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.map-keys');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'mapKeys');
diff --git a/node_modules/core-js-pure/features/map/map-values.js b/node_modules/core-js-pure/features/map/map-values.js
deleted file mode 100644
index 40bf6ca..0000000
--- a/node_modules/core-js-pure/features/map/map-values.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.map-values');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'mapValues');
diff --git a/node_modules/core-js-pure/features/map/merge.js b/node_modules/core-js-pure/features/map/merge.js
deleted file mode 100644
index 839620d..0000000
--- a/node_modules/core-js-pure/features/map/merge.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.merge');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'merge');
diff --git a/node_modules/core-js-pure/features/map/of.js b/node_modules/core-js-pure/features/map/of.js
deleted file mode 100644
index 57f2a76..0000000
--- a/node_modules/core-js-pure/features/map/of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.map');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.map.of');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var Map = path.Map;
-var mapOf = Map.of;
-
-module.exports = function of() {
-  return mapOf.apply(typeof this === 'function' ? this : Map, arguments);
-};
diff --git a/node_modules/core-js-pure/features/map/reduce.js b/node_modules/core-js-pure/features/map/reduce.js
deleted file mode 100644
index 272b6f8..0000000
--- a/node_modules/core-js-pure/features/map/reduce.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.reduce');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'reduce');
diff --git a/node_modules/core-js-pure/features/map/some.js b/node_modules/core-js-pure/features/map/some.js
deleted file mode 100644
index 48192fe..0000000
--- a/node_modules/core-js-pure/features/map/some.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.some');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'some');
diff --git a/node_modules/core-js-pure/features/map/update-or-insert.js b/node_modules/core-js-pure/features/map/update-or-insert.js
deleted file mode 100644
index f195f57..0000000
--- a/node_modules/core-js-pure/features/map/update-or-insert.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: remove from `core-js@4`
-require('../../modules/es.map');
-require('../../modules/esnext.map.update-or-insert');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'updateOrInsert');
diff --git a/node_modules/core-js-pure/features/map/update.js b/node_modules/core-js-pure/features/map/update.js
deleted file mode 100644
index 3352690..0000000
--- a/node_modules/core-js-pure/features/map/update.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.update');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'update');
diff --git a/node_modules/core-js-pure/features/map/upsert.js b/node_modules/core-js-pure/features/map/upsert.js
deleted file mode 100644
index e658a40..0000000
--- a/node_modules/core-js-pure/features/map/upsert.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.map');
-require('../../modules/esnext.map.upsert');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Map', 'upsert');
diff --git a/node_modules/core-js-pure/features/math/acosh.js b/node_modules/core-js-pure/features/math/acosh.js
deleted file mode 100644
index f039937..0000000
--- a/node_modules/core-js-pure/features/math/acosh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/acosh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/asinh.js b/node_modules/core-js-pure/features/math/asinh.js
deleted file mode 100644
index 95a302a..0000000
--- a/node_modules/core-js-pure/features/math/asinh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/asinh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/atanh.js b/node_modules/core-js-pure/features/math/atanh.js
deleted file mode 100644
index f1ebad7..0000000
--- a/node_modules/core-js-pure/features/math/atanh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/atanh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/cbrt.js b/node_modules/core-js-pure/features/math/cbrt.js
deleted file mode 100644
index 2c1f825..0000000
--- a/node_modules/core-js-pure/features/math/cbrt.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/cbrt');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/clamp.js b/node_modules/core-js-pure/features/math/clamp.js
deleted file mode 100644
index 7b81611..0000000
--- a/node_modules/core-js-pure/features/math/clamp.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.clamp');
-var path = require('../../internals/path');
-
-module.exports = path.Math.clamp;
diff --git a/node_modules/core-js-pure/features/math/clz32.js b/node_modules/core-js-pure/features/math/clz32.js
deleted file mode 100644
index a0ecd15..0000000
--- a/node_modules/core-js-pure/features/math/clz32.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/clz32');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/cosh.js b/node_modules/core-js-pure/features/math/cosh.js
deleted file mode 100644
index bc8a11f..0000000
--- a/node_modules/core-js-pure/features/math/cosh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/cosh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/deg-per-rad.js b/node_modules/core-js-pure/features/math/deg-per-rad.js
deleted file mode 100644
index c945112..0000000
--- a/node_modules/core-js-pure/features/math/deg-per-rad.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/esnext.math.deg-per-rad');
-
-module.exports = Math.PI / 180;
diff --git a/node_modules/core-js-pure/features/math/degrees.js b/node_modules/core-js-pure/features/math/degrees.js
deleted file mode 100644
index 119c327..0000000
--- a/node_modules/core-js-pure/features/math/degrees.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.degrees');
-var path = require('../../internals/path');
-
-module.exports = path.Math.degrees;
diff --git a/node_modules/core-js-pure/features/math/expm1.js b/node_modules/core-js-pure/features/math/expm1.js
deleted file mode 100644
index 0527f81..0000000
--- a/node_modules/core-js-pure/features/math/expm1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/expm1');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/fround.js b/node_modules/core-js-pure/features/math/fround.js
deleted file mode 100644
index 5caff7d..0000000
--- a/node_modules/core-js-pure/features/math/fround.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/fround');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/fscale.js b/node_modules/core-js-pure/features/math/fscale.js
deleted file mode 100644
index 2a3cdd8..0000000
--- a/node_modules/core-js-pure/features/math/fscale.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.fscale');
-var path = require('../../internals/path');
-
-module.exports = path.Math.fscale;
diff --git a/node_modules/core-js-pure/features/math/hypot.js b/node_modules/core-js-pure/features/math/hypot.js
deleted file mode 100644
index 3db8d78..0000000
--- a/node_modules/core-js-pure/features/math/hypot.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/hypot');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/iaddh.js b/node_modules/core-js-pure/features/math/iaddh.js
deleted file mode 100644
index abfcd8a..0000000
--- a/node_modules/core-js-pure/features/math/iaddh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.iaddh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.iaddh;
diff --git a/node_modules/core-js-pure/features/math/imul.js b/node_modules/core-js-pure/features/math/imul.js
deleted file mode 100644
index 4d31d24..0000000
--- a/node_modules/core-js-pure/features/math/imul.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/imul');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/imulh.js b/node_modules/core-js-pure/features/math/imulh.js
deleted file mode 100644
index b81cf34..0000000
--- a/node_modules/core-js-pure/features/math/imulh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.imulh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.imulh;
diff --git a/node_modules/core-js-pure/features/math/index.js b/node_modules/core-js-pure/features/math/index.js
deleted file mode 100644
index 5207e07..0000000
--- a/node_modules/core-js-pure/features/math/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var parent = require('../../es/math');
-require('../../modules/esnext.math.clamp');
-require('../../modules/esnext.math.deg-per-rad');
-require('../../modules/esnext.math.degrees');
-require('../../modules/esnext.math.fscale');
-require('../../modules/esnext.math.rad-per-deg');
-require('../../modules/esnext.math.radians');
-require('../../modules/esnext.math.scale');
-require('../../modules/esnext.math.seeded-prng');
-require('../../modules/esnext.math.signbit');
-// TODO: Remove from `core-js@4`
-require('../../modules/esnext.math.iaddh');
-require('../../modules/esnext.math.isubh');
-require('../../modules/esnext.math.imulh');
-require('../../modules/esnext.math.umulh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/isubh.js b/node_modules/core-js-pure/features/math/isubh.js
deleted file mode 100644
index a14e102..0000000
--- a/node_modules/core-js-pure/features/math/isubh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.isubh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.isubh;
diff --git a/node_modules/core-js-pure/features/math/log10.js b/node_modules/core-js-pure/features/math/log10.js
deleted file mode 100644
index 07b9704..0000000
--- a/node_modules/core-js-pure/features/math/log10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log10');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/log1p.js b/node_modules/core-js-pure/features/math/log1p.js
deleted file mode 100644
index b31d730..0000000
--- a/node_modules/core-js-pure/features/math/log1p.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log1p');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/log2.js b/node_modules/core-js-pure/features/math/log2.js
deleted file mode 100644
index 00db8a5..0000000
--- a/node_modules/core-js-pure/features/math/log2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log2');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/rad-per-deg.js b/node_modules/core-js-pure/features/math/rad-per-deg.js
deleted file mode 100644
index 3eee674..0000000
--- a/node_modules/core-js-pure/features/math/rad-per-deg.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/esnext.math.rad-per-deg');
-
-module.exports = 180 / Math.PI;
diff --git a/node_modules/core-js-pure/features/math/radians.js b/node_modules/core-js-pure/features/math/radians.js
deleted file mode 100644
index 1f02607..0000000
--- a/node_modules/core-js-pure/features/math/radians.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.radians');
-var path = require('../../internals/path');
-
-module.exports = path.Math.radians;
diff --git a/node_modules/core-js-pure/features/math/scale.js b/node_modules/core-js-pure/features/math/scale.js
deleted file mode 100644
index c44428d..0000000
--- a/node_modules/core-js-pure/features/math/scale.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.scale');
-var path = require('../../internals/path');
-
-module.exports = path.Math.scale;
diff --git a/node_modules/core-js-pure/features/math/seeded-prng.js b/node_modules/core-js-pure/features/math/seeded-prng.js
deleted file mode 100644
index 80491b9..0000000
--- a/node_modules/core-js-pure/features/math/seeded-prng.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.seeded-prng');
-var path = require('../../internals/path');
-
-module.exports = path.Math.seededPRNG;
diff --git a/node_modules/core-js-pure/features/math/sign.js b/node_modules/core-js-pure/features/math/sign.js
deleted file mode 100644
index c7bef22..0000000
--- a/node_modules/core-js-pure/features/math/sign.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/sign');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/signbit.js b/node_modules/core-js-pure/features/math/signbit.js
deleted file mode 100644
index ac2862a..0000000
--- a/node_modules/core-js-pure/features/math/signbit.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.signbit');
-var path = require('../../internals/path');
-
-module.exports = path.Math.signbit;
diff --git a/node_modules/core-js-pure/features/math/sinh.js b/node_modules/core-js-pure/features/math/sinh.js
deleted file mode 100644
index 96f8f8e..0000000
--- a/node_modules/core-js-pure/features/math/sinh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/sinh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/tanh.js b/node_modules/core-js-pure/features/math/tanh.js
deleted file mode 100644
index c9e8bb8..0000000
--- a/node_modules/core-js-pure/features/math/tanh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/tanh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/to-string-tag.js b/node_modules/core-js-pure/features/math/to-string-tag.js
deleted file mode 100644
index 02faadf..0000000
--- a/node_modules/core-js-pure/features/math/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/trunc.js b/node_modules/core-js-pure/features/math/trunc.js
deleted file mode 100644
index 7635c17..0000000
--- a/node_modules/core-js-pure/features/math/trunc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/trunc');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/math/umulh.js b/node_modules/core-js-pure/features/math/umulh.js
deleted file mode 100644
index 447bf71..0000000
--- a/node_modules/core-js-pure/features/math/umulh.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.math.umulh');
-var path = require('../../internals/path');
-
-module.exports = path.Math.umulh;
diff --git a/node_modules/core-js-pure/features/number/constructor.js b/node_modules/core-js-pure/features/number/constructor.js
deleted file mode 100644
index 6b5836e..0000000
--- a/node_modules/core-js-pure/features/number/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/epsilon.js b/node_modules/core-js-pure/features/number/epsilon.js
deleted file mode 100644
index fe2ccd7..0000000
--- a/node_modules/core-js-pure/features/number/epsilon.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/epsilon');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/from-string.js b/node_modules/core-js-pure/features/number/from-string.js
deleted file mode 100644
index 65654be..0000000
--- a/node_modules/core-js-pure/features/number/from-string.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.number.from-string');
-var path = require('../../internals/path');
-
-module.exports = path.Number.fromString;
diff --git a/node_modules/core-js-pure/features/number/index.js b/node_modules/core-js-pure/features/number/index.js
deleted file mode 100644
index e26bfec..0000000
--- a/node_modules/core-js-pure/features/number/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var parent = require('../../es/number');
-
-module.exports = parent;
-
-require('../../modules/esnext.number.from-string');
diff --git a/node_modules/core-js-pure/features/number/is-finite.js b/node_modules/core-js-pure/features/number/is-finite.js
deleted file mode 100644
index 24b9773..0000000
--- a/node_modules/core-js-pure/features/number/is-finite.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-finite');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/is-integer.js b/node_modules/core-js-pure/features/number/is-integer.js
deleted file mode 100644
index b1592d0..0000000
--- a/node_modules/core-js-pure/features/number/is-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/is-nan.js b/node_modules/core-js-pure/features/number/is-nan.js
deleted file mode 100644
index fcbec50..0000000
--- a/node_modules/core-js-pure/features/number/is-nan.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-nan');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/is-safe-integer.js b/node_modules/core-js-pure/features/number/is-safe-integer.js
deleted file mode 100644
index b25eb1c..0000000
--- a/node_modules/core-js-pure/features/number/is-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/max-safe-integer.js b/node_modules/core-js-pure/features/number/max-safe-integer.js
deleted file mode 100644
index e6689b0..0000000
--- a/node_modules/core-js-pure/features/number/max-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/max-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/min-safe-integer.js b/node_modules/core-js-pure/features/number/min-safe-integer.js
deleted file mode 100644
index 1159a47..0000000
--- a/node_modules/core-js-pure/features/number/min-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/min-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/parse-float.js b/node_modules/core-js-pure/features/number/parse-float.js
deleted file mode 100644
index 3b49c6a..0000000
--- a/node_modules/core-js-pure/features/number/parse-float.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/parse-float');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/parse-int.js b/node_modules/core-js-pure/features/number/parse-int.js
deleted file mode 100644
index 9e44651..0000000
--- a/node_modules/core-js-pure/features/number/parse-int.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/parse-int');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/to-fixed.js b/node_modules/core-js-pure/features/number/to-fixed.js
deleted file mode 100644
index b103de9..0000000
--- a/node_modules/core-js-pure/features/number/to-fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/to-fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/to-precision.js b/node_modules/core-js-pure/features/number/to-precision.js
deleted file mode 100644
index 5183347..0000000
--- a/node_modules/core-js-pure/features/number/to-precision.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/to-precision');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/virtual/index.js b/node_modules/core-js-pure/features/number/virtual/index.js
deleted file mode 100644
index 88eef4b..0000000
--- a/node_modules/core-js-pure/features/number/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/virtual/to-fixed.js b/node_modules/core-js-pure/features/number/virtual/to-fixed.js
deleted file mode 100644
index a9f83cc..0000000
--- a/node_modules/core-js-pure/features/number/virtual/to-fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual/to-fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/number/virtual/to-precision.js b/node_modules/core-js-pure/features/number/virtual/to-precision.js
deleted file mode 100644
index adffb86..0000000
--- a/node_modules/core-js-pure/features/number/virtual/to-precision.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual/to-precision');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/assign.js b/node_modules/core-js-pure/features/object/assign.js
deleted file mode 100644
index ed6863e..0000000
--- a/node_modules/core-js-pure/features/object/assign.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/assign');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/create.js b/node_modules/core-js-pure/features/object/create.js
deleted file mode 100644
index 1e4d353..0000000
--- a/node_modules/core-js-pure/features/object/create.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/create');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/define-getter.js b/node_modules/core-js-pure/features/object/define-getter.js
deleted file mode 100644
index 9b734ab..0000000
--- a/node_modules/core-js-pure/features/object/define-getter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-getter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/define-properties.js b/node_modules/core-js-pure/features/object/define-properties.js
deleted file mode 100644
index e0d074c..0000000
--- a/node_modules/core-js-pure/features/object/define-properties.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-properties');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/define-property.js b/node_modules/core-js-pure/features/object/define-property.js
deleted file mode 100644
index 67a978c..0000000
--- a/node_modules/core-js-pure/features/object/define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/define-setter.js b/node_modules/core-js-pure/features/object/define-setter.js
deleted file mode 100644
index 9076fd5..0000000
--- a/node_modules/core-js-pure/features/object/define-setter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-setter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/entries.js b/node_modules/core-js-pure/features/object/entries.js
deleted file mode 100644
index c7a831a..0000000
--- a/node_modules/core-js-pure/features/object/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/freeze.js b/node_modules/core-js-pure/features/object/freeze.js
deleted file mode 100644
index 0ee7459..0000000
--- a/node_modules/core-js-pure/features/object/freeze.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/freeze');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/from-entries.js b/node_modules/core-js-pure/features/object/from-entries.js
deleted file mode 100644
index aec2c7a..0000000
--- a/node_modules/core-js-pure/features/object/from-entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/from-entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/get-own-property-descriptor.js b/node_modules/core-js-pure/features/object/get-own-property-descriptor.js
deleted file mode 100644
index 9b69cdd..0000000
--- a/node_modules/core-js-pure/features/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-descriptor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/get-own-property-descriptors.js b/node_modules/core-js-pure/features/object/get-own-property-descriptors.js
deleted file mode 100644
index 43a193e..0000000
--- a/node_modules/core-js-pure/features/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-descriptors');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/get-own-property-names.js b/node_modules/core-js-pure/features/object/get-own-property-names.js
deleted file mode 100644
index 42c21d7..0000000
--- a/node_modules/core-js-pure/features/object/get-own-property-names.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-names');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/get-own-property-symbols.js b/node_modules/core-js-pure/features/object/get-own-property-symbols.js
deleted file mode 100644
index 0bc8c26..0000000
--- a/node_modules/core-js-pure/features/object/get-own-property-symbols.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-symbols');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/get-prototype-of.js b/node_modules/core-js-pure/features/object/get-prototype-of.js
deleted file mode 100644
index b7cf588..0000000
--- a/node_modules/core-js-pure/features/object/get-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/index.js b/node_modules/core-js-pure/features/object/index.js
deleted file mode 100644
index e7ea4bf..0000000
--- a/node_modules/core-js-pure/features/object/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var parent = require('../../es/object');
-require('../../modules/esnext.object.iterate-entries');
-require('../../modules/esnext.object.iterate-keys');
-require('../../modules/esnext.object.iterate-values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/is-extensible.js b/node_modules/core-js-pure/features/object/is-extensible.js
deleted file mode 100644
index 694b9a4..0000000
--- a/node_modules/core-js-pure/features/object/is-extensible.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-extensible');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/is-frozen.js b/node_modules/core-js-pure/features/object/is-frozen.js
deleted file mode 100644
index 68fe107..0000000
--- a/node_modules/core-js-pure/features/object/is-frozen.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-frozen');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/is-sealed.js b/node_modules/core-js-pure/features/object/is-sealed.js
deleted file mode 100644
index bbf6472..0000000
--- a/node_modules/core-js-pure/features/object/is-sealed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-sealed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/is.js b/node_modules/core-js-pure/features/object/is.js
deleted file mode 100644
index 3ddd76f..0000000
--- a/node_modules/core-js-pure/features/object/is.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/iterate-entries.js b/node_modules/core-js-pure/features/object/iterate-entries.js
deleted file mode 100644
index ca9cd28..0000000
--- a/node_modules/core-js-pure/features/object/iterate-entries.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.object.iterate-entries');
-var path = require('../../internals/path');
-
-module.exports = path.Object.iterateEntries;
diff --git a/node_modules/core-js-pure/features/object/iterate-keys.js b/node_modules/core-js-pure/features/object/iterate-keys.js
deleted file mode 100644
index 8e8fad4..0000000
--- a/node_modules/core-js-pure/features/object/iterate-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.object.iterate-keys');
-var path = require('../../internals/path');
-
-module.exports = path.Object.iterateKeys;
diff --git a/node_modules/core-js-pure/features/object/iterate-values.js b/node_modules/core-js-pure/features/object/iterate-values.js
deleted file mode 100644
index a77108f..0000000
--- a/node_modules/core-js-pure/features/object/iterate-values.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.object.iterate-values');
-var path = require('../../internals/path');
-
-module.exports = path.Object.iterateValues;
diff --git a/node_modules/core-js-pure/features/object/keys.js b/node_modules/core-js-pure/features/object/keys.js
deleted file mode 100644
index 2cff0ab..0000000
--- a/node_modules/core-js-pure/features/object/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/lookup-getter.js b/node_modules/core-js-pure/features/object/lookup-getter.js
deleted file mode 100644
index 9f10f6b..0000000
--- a/node_modules/core-js-pure/features/object/lookup-getter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/lookup-getter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/lookup-setter.js b/node_modules/core-js-pure/features/object/lookup-setter.js
deleted file mode 100644
index 97389bf..0000000
--- a/node_modules/core-js-pure/features/object/lookup-setter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/lookup-setter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/prevent-extensions.js b/node_modules/core-js-pure/features/object/prevent-extensions.js
deleted file mode 100644
index 7171f2a..0000000
--- a/node_modules/core-js-pure/features/object/prevent-extensions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/prevent-extensions');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/seal.js b/node_modules/core-js-pure/features/object/seal.js
deleted file mode 100644
index fa50038..0000000
--- a/node_modules/core-js-pure/features/object/seal.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/seal');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/set-prototype-of.js b/node_modules/core-js-pure/features/object/set-prototype-of.js
deleted file mode 100644
index 4885ad3..0000000
--- a/node_modules/core-js-pure/features/object/set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/set-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/to-string.js b/node_modules/core-js-pure/features/object/to-string.js
deleted file mode 100644
index 589ffcb..0000000
--- a/node_modules/core-js-pure/features/object/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/object/values.js b/node_modules/core-js-pure/features/object/values.js
deleted file mode 100644
index 9e457fc..0000000
--- a/node_modules/core-js-pure/features/object/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/observable/index.js b/node_modules/core-js-pure/features/observable/index.js
deleted file mode 100644
index 9f694bc..0000000
--- a/node_modules/core-js-pure/features/observable/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../../modules/esnext.observable');
-require('../../modules/esnext.symbol.observable');
-require('../../modules/es.object.to-string');
-require('../../modules/es.string.iterator');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-module.exports = path.Observable;
diff --git a/node_modules/core-js-pure/features/parse-float.js b/node_modules/core-js-pure/features/parse-float.js
deleted file mode 100644
index 1bc853c..0000000
--- a/node_modules/core-js-pure/features/parse-float.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../es/parse-float');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/parse-int.js b/node_modules/core-js-pure/features/parse-int.js
deleted file mode 100644
index af7cffd..0000000
--- a/node_modules/core-js-pure/features/parse-int.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../es/parse-int');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/promise/all-settled.js b/node_modules/core-js-pure/features/promise/all-settled.js
deleted file mode 100644
index c5e8892..0000000
--- a/node_modules/core-js-pure/features/promise/all-settled.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('../../modules/esnext.promise.all-settled');
-
-var parent = require('../../es/promise/all-settled');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/promise/any.js b/node_modules/core-js-pure/features/promise/any.js
deleted file mode 100644
index 7246403..0000000
--- a/node_modules/core-js-pure/features/promise/any.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-require('../../modules/es.promise');
-require('../../modules/esnext.aggregate-error');
-require('../../modules/esnext.promise.any');
-var path = require('../../internals/path');
-
-var Promise = path.Promise;
-var $any = Promise.any;
-
-module.exports = function any(iterable) {
-  return $any.call(typeof this === 'function' ? this : Promise, iterable);
-};
diff --git a/node_modules/core-js-pure/features/promise/finally.js b/node_modules/core-js-pure/features/promise/finally.js
deleted file mode 100644
index 835c6c9..0000000
--- a/node_modules/core-js-pure/features/promise/finally.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/promise/finally');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/promise/index.js b/node_modules/core-js-pure/features/promise/index.js
deleted file mode 100644
index 13393b5..0000000
--- a/node_modules/core-js-pure/features/promise/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var parent = require('../../es/promise');
-require('../../modules/esnext.aggregate-error');
-// TODO: Remove from `core-js@4`
-require('../../modules/esnext.promise.all-settled');
-require('../../modules/esnext.promise.try');
-require('../../modules/esnext.promise.any');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/promise/try.js b/node_modules/core-js-pure/features/promise/try.js
deleted file mode 100644
index b7a6e3b..0000000
--- a/node_modules/core-js-pure/features/promise/try.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-require('../../modules/es.promise');
-require('../../modules/esnext.promise.try');
-var path = require('../../internals/path');
-
-var Promise = path.Promise;
-var promiseTry = Promise['try'];
-
-module.exports = { 'try': function (callbackfn) {
-  return promiseTry.call(typeof this === 'function' ? this : Promise, callbackfn);
-} }['try'];
diff --git a/node_modules/core-js-pure/features/queue-microtask.js b/node_modules/core-js-pure/features/queue-microtask.js
deleted file mode 100644
index 66c39d6..0000000
--- a/node_modules/core-js-pure/features/queue-microtask.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../stable/queue-microtask');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/apply.js b/node_modules/core-js-pure/features/reflect/apply.js
deleted file mode 100644
index 75bf21e..0000000
--- a/node_modules/core-js-pure/features/reflect/apply.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/apply');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/construct.js b/node_modules/core-js-pure/features/reflect/construct.js
deleted file mode 100644
index 86ba56e..0000000
--- a/node_modules/core-js-pure/features/reflect/construct.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/construct');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/define-metadata.js b/node_modules/core-js-pure/features/reflect/define-metadata.js
deleted file mode 100644
index 156cc95..0000000
--- a/node_modules/core-js-pure/features/reflect/define-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.define-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.defineMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/define-property.js b/node_modules/core-js-pure/features/reflect/define-property.js
deleted file mode 100644
index 5b66a14..0000000
--- a/node_modules/core-js-pure/features/reflect/define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/define-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/delete-metadata.js b/node_modules/core-js-pure/features/reflect/delete-metadata.js
deleted file mode 100644
index bbb8c48..0000000
--- a/node_modules/core-js-pure/features/reflect/delete-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.delete-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.deleteMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/delete-property.js b/node_modules/core-js-pure/features/reflect/delete-property.js
deleted file mode 100644
index 381d7a7..0000000
--- a/node_modules/core-js-pure/features/reflect/delete-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/delete-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/get-metadata-keys.js b/node_modules/core-js-pure/features/reflect/get-metadata-keys.js
deleted file mode 100644
index 8137178..0000000
--- a/node_modules/core-js-pure/features/reflect/get-metadata-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.get-metadata-keys');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getMetadataKeys;
diff --git a/node_modules/core-js-pure/features/reflect/get-metadata.js b/node_modules/core-js-pure/features/reflect/get-metadata.js
deleted file mode 100644
index 3d00b4e..0000000
--- a/node_modules/core-js-pure/features/reflect/get-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.get-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/get-own-metadata-keys.js b/node_modules/core-js-pure/features/reflect/get-own-metadata-keys.js
deleted file mode 100644
index 020828f..0000000
--- a/node_modules/core-js-pure/features/reflect/get-own-metadata-keys.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.get-own-metadata-keys');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getOwnMetadataKeys;
diff --git a/node_modules/core-js-pure/features/reflect/get-own-metadata.js b/node_modules/core-js-pure/features/reflect/get-own-metadata.js
deleted file mode 100644
index 90f626c..0000000
--- a/node_modules/core-js-pure/features/reflect/get-own-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.get-own-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.getOwnMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/get-own-property-descriptor.js b/node_modules/core-js-pure/features/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 0f9c132..0000000
--- a/node_modules/core-js-pure/features/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get-own-property-descriptor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/get-prototype-of.js b/node_modules/core-js-pure/features/reflect/get-prototype-of.js
deleted file mode 100644
index fdc1ccb..0000000
--- a/node_modules/core-js-pure/features/reflect/get-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/get.js b/node_modules/core-js-pure/features/reflect/get.js
deleted file mode 100644
index 2914c12..0000000
--- a/node_modules/core-js-pure/features/reflect/get.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/has-metadata.js b/node_modules/core-js-pure/features/reflect/has-metadata.js
deleted file mode 100644
index 3072c51..0000000
--- a/node_modules/core-js-pure/features/reflect/has-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.has-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.hasMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/has-own-metadata.js b/node_modules/core-js-pure/features/reflect/has-own-metadata.js
deleted file mode 100644
index 09eb765..0000000
--- a/node_modules/core-js-pure/features/reflect/has-own-metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.has-own-metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.hasOwnMetadata;
diff --git a/node_modules/core-js-pure/features/reflect/has.js b/node_modules/core-js-pure/features/reflect/has.js
deleted file mode 100644
index 26b5f7c..0000000
--- a/node_modules/core-js-pure/features/reflect/has.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/has');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/index.js b/node_modules/core-js-pure/features/reflect/index.js
deleted file mode 100644
index 6460a70..0000000
--- a/node_modules/core-js-pure/features/reflect/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var parent = require('../../es/reflect');
-require('../../modules/esnext.reflect.define-metadata');
-require('../../modules/esnext.reflect.delete-metadata');
-require('../../modules/esnext.reflect.get-metadata');
-require('../../modules/esnext.reflect.get-metadata-keys');
-require('../../modules/esnext.reflect.get-own-metadata');
-require('../../modules/esnext.reflect.get-own-metadata-keys');
-require('../../modules/esnext.reflect.has-metadata');
-require('../../modules/esnext.reflect.has-own-metadata');
-require('../../modules/esnext.reflect.metadata');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/is-extensible.js b/node_modules/core-js-pure/features/reflect/is-extensible.js
deleted file mode 100644
index b04239e..0000000
--- a/node_modules/core-js-pure/features/reflect/is-extensible.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/is-extensible');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/metadata.js b/node_modules/core-js-pure/features/reflect/metadata.js
deleted file mode 100644
index d1faf13..0000000
--- a/node_modules/core-js-pure/features/reflect/metadata.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.reflect.metadata');
-var path = require('../../internals/path');
-
-module.exports = path.Reflect.metadata;
diff --git a/node_modules/core-js-pure/features/reflect/own-keys.js b/node_modules/core-js-pure/features/reflect/own-keys.js
deleted file mode 100644
index 6d56289..0000000
--- a/node_modules/core-js-pure/features/reflect/own-keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/own-keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/prevent-extensions.js b/node_modules/core-js-pure/features/reflect/prevent-extensions.js
deleted file mode 100644
index 40a8bbc..0000000
--- a/node_modules/core-js-pure/features/reflect/prevent-extensions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/prevent-extensions');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/set-prototype-of.js b/node_modules/core-js-pure/features/reflect/set-prototype-of.js
deleted file mode 100644
index 20fd6f3..0000000
--- a/node_modules/core-js-pure/features/reflect/set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/set-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/reflect/set.js b/node_modules/core-js-pure/features/reflect/set.js
deleted file mode 100644
index a4cf5f0..0000000
--- a/node_modules/core-js-pure/features/reflect/set.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/set');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/constructor.js b/node_modules/core-js-pure/features/regexp/constructor.js
deleted file mode 100644
index 2cd0149..0000000
--- a/node_modules/core-js-pure/features/regexp/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/flags.js b/node_modules/core-js-pure/features/regexp/flags.js
deleted file mode 100644
index bdf1c8a..0000000
--- a/node_modules/core-js-pure/features/regexp/flags.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/flags');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/index.js b/node_modules/core-js-pure/features/regexp/index.js
deleted file mode 100644
index df41f17..0000000
--- a/node_modules/core-js-pure/features/regexp/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/match.js b/node_modules/core-js-pure/features/regexp/match.js
deleted file mode 100644
index c995bbb..0000000
--- a/node_modules/core-js-pure/features/regexp/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/replace.js b/node_modules/core-js-pure/features/regexp/replace.js
deleted file mode 100644
index b1a9e65..0000000
--- a/node_modules/core-js-pure/features/regexp/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/search.js b/node_modules/core-js-pure/features/regexp/search.js
deleted file mode 100644
index af17062..0000000
--- a/node_modules/core-js-pure/features/regexp/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/split.js b/node_modules/core-js-pure/features/regexp/split.js
deleted file mode 100644
index fb0471a..0000000
--- a/node_modules/core-js-pure/features/regexp/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/sticky.js b/node_modules/core-js-pure/features/regexp/sticky.js
deleted file mode 100644
index c1307ad..0000000
--- a/node_modules/core-js-pure/features/regexp/sticky.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/sticky');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/test.js b/node_modules/core-js-pure/features/regexp/test.js
deleted file mode 100644
index 53f9166..0000000
--- a/node_modules/core-js-pure/features/regexp/test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/test');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/regexp/to-string.js b/node_modules/core-js-pure/features/regexp/to-string.js
deleted file mode 100644
index e2a4442..0000000
--- a/node_modules/core-js-pure/features/regexp/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/set-immediate.js b/node_modules/core-js-pure/features/set-immediate.js
deleted file mode 100644
index 01530a2..0000000
--- a/node_modules/core-js-pure/features/set-immediate.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../stable/set-immediate');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/set-interval.js b/node_modules/core-js-pure/features/set-interval.js
deleted file mode 100644
index 122b8ba..0000000
--- a/node_modules/core-js-pure/features/set-interval.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../stable/set-interval');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/set-timeout.js b/node_modules/core-js-pure/features/set-timeout.js
deleted file mode 100644
index 310fcd3..0000000
--- a/node_modules/core-js-pure/features/set-timeout.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../stable/set-timeout');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/set/add-all.js b/node_modules/core-js-pure/features/set/add-all.js
deleted file mode 100644
index d045d5e..0000000
--- a/node_modules/core-js-pure/features/set/add-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.add-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'addAll');
diff --git a/node_modules/core-js-pure/features/set/delete-all.js b/node_modules/core-js-pure/features/set/delete-all.js
deleted file mode 100644
index aa75974..0000000
--- a/node_modules/core-js-pure/features/set/delete-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.delete-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'deleteAll');
diff --git a/node_modules/core-js-pure/features/set/difference.js b/node_modules/core-js-pure/features/set/difference.js
deleted file mode 100644
index 24a7194..0000000
--- a/node_modules/core-js-pure/features/set/difference.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.difference');
-require('../../modules/web.dom-collections.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'difference');
diff --git a/node_modules/core-js-pure/features/set/every.js b/node_modules/core-js-pure/features/set/every.js
deleted file mode 100644
index f22294a..0000000
--- a/node_modules/core-js-pure/features/set/every.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.every');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'every');
diff --git a/node_modules/core-js-pure/features/set/filter.js b/node_modules/core-js-pure/features/set/filter.js
deleted file mode 100644
index ffb4a02..0000000
--- a/node_modules/core-js-pure/features/set/filter.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.filter');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'filter');
diff --git a/node_modules/core-js-pure/features/set/find.js b/node_modules/core-js-pure/features/set/find.js
deleted file mode 100644
index 8627805..0000000
--- a/node_modules/core-js-pure/features/set/find.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.find');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'find');
diff --git a/node_modules/core-js-pure/features/set/from.js b/node_modules/core-js-pure/features/set/from.js
deleted file mode 100644
index f18623b..0000000
--- a/node_modules/core-js-pure/features/set/from.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.from');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var Set = path.Set;
-var setFrom = Set.from;
-
-module.exports = function from(source, mapFn, thisArg) {
-  return setFrom.call(typeof this === 'function' ? this : Set, source, mapFn, thisArg);
-};
diff --git a/node_modules/core-js-pure/features/set/index.js b/node_modules/core-js-pure/features/set/index.js
deleted file mode 100644
index 66896f4..0000000
--- a/node_modules/core-js-pure/features/set/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var parent = require('../../es/set');
-require('../../modules/esnext.set.from');
-require('../../modules/esnext.set.of');
-require('../../modules/esnext.set.add-all');
-require('../../modules/esnext.set.delete-all');
-require('../../modules/esnext.set.every');
-require('../../modules/esnext.set.difference');
-require('../../modules/esnext.set.filter');
-require('../../modules/esnext.set.find');
-require('../../modules/esnext.set.intersection');
-require('../../modules/esnext.set.is-disjoint-from');
-require('../../modules/esnext.set.is-subset-of');
-require('../../modules/esnext.set.is-superset-of');
-require('../../modules/esnext.set.join');
-require('../../modules/esnext.set.map');
-require('../../modules/esnext.set.reduce');
-require('../../modules/esnext.set.some');
-require('../../modules/esnext.set.symmetric-difference');
-require('../../modules/esnext.set.union');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/set/intersection.js b/node_modules/core-js-pure/features/set/intersection.js
deleted file mode 100644
index 203edfe..0000000
--- a/node_modules/core-js-pure/features/set/intersection.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.intersection');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'intersection');
diff --git a/node_modules/core-js-pure/features/set/is-disjoint-from.js b/node_modules/core-js-pure/features/set/is-disjoint-from.js
deleted file mode 100644
index 88ca08b..0000000
--- a/node_modules/core-js-pure/features/set/is-disjoint-from.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.is-disjoint-from');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'isDisjointFrom');
diff --git a/node_modules/core-js-pure/features/set/is-subset-of.js b/node_modules/core-js-pure/features/set/is-subset-of.js
deleted file mode 100644
index 21ab3d4..0000000
--- a/node_modules/core-js-pure/features/set/is-subset-of.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.is-subset-of');
-require('../../modules/web.dom-collections.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'isSubsetOf');
diff --git a/node_modules/core-js-pure/features/set/is-superset-of.js b/node_modules/core-js-pure/features/set/is-superset-of.js
deleted file mode 100644
index 4da6ba1..0000000
--- a/node_modules/core-js-pure/features/set/is-superset-of.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.is-superset-of');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'isSupersetOf');
diff --git a/node_modules/core-js-pure/features/set/join.js b/node_modules/core-js-pure/features/set/join.js
deleted file mode 100644
index b3ae27d..0000000
--- a/node_modules/core-js-pure/features/set/join.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.join');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'join');
diff --git a/node_modules/core-js-pure/features/set/map.js b/node_modules/core-js-pure/features/set/map.js
deleted file mode 100644
index 3957002..0000000
--- a/node_modules/core-js-pure/features/set/map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.map');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'map');
diff --git a/node_modules/core-js-pure/features/set/of.js b/node_modules/core-js-pure/features/set/of.js
deleted file mode 100644
index 114558a..0000000
--- a/node_modules/core-js-pure/features/set/of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.of');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var Set = path.Set;
-var setOf = Set.of;
-
-module.exports = function of() {
-  return setOf.apply(typeof this === 'function' ? this : Set, arguments);
-};
diff --git a/node_modules/core-js-pure/features/set/reduce.js b/node_modules/core-js-pure/features/set/reduce.js
deleted file mode 100644
index 11ab6a4..0000000
--- a/node_modules/core-js-pure/features/set/reduce.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.reduce');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'reduce');
diff --git a/node_modules/core-js-pure/features/set/some.js b/node_modules/core-js-pure/features/set/some.js
deleted file mode 100644
index 0b4227a..0000000
--- a/node_modules/core-js-pure/features/set/some.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/esnext.set.some');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'some');
diff --git a/node_modules/core-js-pure/features/set/symmetric-difference.js b/node_modules/core-js-pure/features/set/symmetric-difference.js
deleted file mode 100644
index fb04d63..0000000
--- a/node_modules/core-js-pure/features/set/symmetric-difference.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.symmetric-difference');
-require('../../modules/web.dom-collections.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'symmetricDifference');
diff --git a/node_modules/core-js-pure/features/set/union.js b/node_modules/core-js-pure/features/set/union.js
deleted file mode 100644
index d180f8b..0000000
--- a/node_modules/core-js-pure/features/set/union.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../../modules/es.set');
-require('../../modules/es.string.iterator');
-require('../../modules/esnext.set.union');
-require('../../modules/web.dom-collections.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Set', 'union');
diff --git a/node_modules/core-js-pure/features/string/anchor.js b/node_modules/core-js-pure/features/string/anchor.js
deleted file mode 100644
index b9b7905..0000000
--- a/node_modules/core-js-pure/features/string/anchor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/anchor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/at.js b/node_modules/core-js-pure/features/string/at.js
deleted file mode 100644
index d8bcca8..0000000
--- a/node_modules/core-js-pure/features/string/at.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.string.at');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'at');
diff --git a/node_modules/core-js-pure/features/string/big.js b/node_modules/core-js-pure/features/string/big.js
deleted file mode 100644
index 9c118e5..0000000
--- a/node_modules/core-js-pure/features/string/big.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/big');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/blink.js b/node_modules/core-js-pure/features/string/blink.js
deleted file mode 100644
index 23ca24f..0000000
--- a/node_modules/core-js-pure/features/string/blink.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/blink');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/bold.js b/node_modules/core-js-pure/features/string/bold.js
deleted file mode 100644
index 322db3e..0000000
--- a/node_modules/core-js-pure/features/string/bold.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/bold');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/code-point-at.js b/node_modules/core-js-pure/features/string/code-point-at.js
deleted file mode 100644
index 033b94c..0000000
--- a/node_modules/core-js-pure/features/string/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/code-points.js b/node_modules/core-js-pure/features/string/code-points.js
deleted file mode 100644
index 8a783f3..0000000
--- a/node_modules/core-js-pure/features/string/code-points.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../modules/esnext.string.code-points');
-
-module.exports = require('../../internals/entry-unbind')('String', 'codePoints');
diff --git a/node_modules/core-js-pure/features/string/ends-with.js b/node_modules/core-js-pure/features/string/ends-with.js
deleted file mode 100644
index 2ea5594..0000000
--- a/node_modules/core-js-pure/features/string/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/fixed.js b/node_modules/core-js-pure/features/string/fixed.js
deleted file mode 100644
index c18b823..0000000
--- a/node_modules/core-js-pure/features/string/fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/fontcolor.js b/node_modules/core-js-pure/features/string/fontcolor.js
deleted file mode 100644
index bb30ae6..0000000
--- a/node_modules/core-js-pure/features/string/fontcolor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fontcolor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/fontsize.js b/node_modules/core-js-pure/features/string/fontsize.js
deleted file mode 100644
index 49060de..0000000
--- a/node_modules/core-js-pure/features/string/fontsize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fontsize');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/from-code-point.js b/node_modules/core-js-pure/features/string/from-code-point.js
deleted file mode 100644
index c56ee7c..0000000
--- a/node_modules/core-js-pure/features/string/from-code-point.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/from-code-point');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/includes.js b/node_modules/core-js-pure/features/string/includes.js
deleted file mode 100644
index cf7eea4..0000000
--- a/node_modules/core-js-pure/features/string/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/index.js b/node_modules/core-js-pure/features/string/index.js
deleted file mode 100644
index 7c7f167..0000000
--- a/node_modules/core-js-pure/features/string/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var parent = require('../../es/string');
-require('../../modules/esnext.string.at');
-require('../../modules/esnext.string.code-points');
-// TODO: remove from `core-js@4`
-require('../../modules/esnext.string.match-all');
-require('../../modules/esnext.string.replace-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/italics.js b/node_modules/core-js-pure/features/string/italics.js
deleted file mode 100644
index 8bee439..0000000
--- a/node_modules/core-js-pure/features/string/italics.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/italics');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/iterator.js b/node_modules/core-js-pure/features/string/iterator.js
deleted file mode 100644
index 64110cc..0000000
--- a/node_modules/core-js-pure/features/string/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/link.js b/node_modules/core-js-pure/features/string/link.js
deleted file mode 100644
index d507726..0000000
--- a/node_modules/core-js-pure/features/string/link.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/link');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/match-all.js b/node_modules/core-js-pure/features/string/match-all.js
deleted file mode 100644
index 5188e29..0000000
--- a/node_modules/core-js-pure/features/string/match-all.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: remove from `core-js@4`
-require('../../modules/esnext.string.match-all');
-
-var parent = require('../../es/string/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/match.js b/node_modules/core-js-pure/features/string/match.js
deleted file mode 100644
index 5b728da..0000000
--- a/node_modules/core-js-pure/features/string/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/pad-end.js b/node_modules/core-js-pure/features/string/pad-end.js
deleted file mode 100644
index 032903c..0000000
--- a/node_modules/core-js-pure/features/string/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/pad-start.js b/node_modules/core-js-pure/features/string/pad-start.js
deleted file mode 100644
index 440785b..0000000
--- a/node_modules/core-js-pure/features/string/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/raw.js b/node_modules/core-js-pure/features/string/raw.js
deleted file mode 100644
index 2ac2b74..0000000
--- a/node_modules/core-js-pure/features/string/raw.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/raw');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/repeat.js b/node_modules/core-js-pure/features/string/repeat.js
deleted file mode 100644
index 6d6848b..0000000
--- a/node_modules/core-js-pure/features/string/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/replace-all.js b/node_modules/core-js-pure/features/string/replace-all.js
deleted file mode 100644
index 6de7f51..0000000
--- a/node_modules/core-js-pure/features/string/replace-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.string.replace-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('String', 'replaceAll');
diff --git a/node_modules/core-js-pure/features/string/replace.js b/node_modules/core-js-pure/features/string/replace.js
deleted file mode 100644
index 48389e6..0000000
--- a/node_modules/core-js-pure/features/string/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/search.js b/node_modules/core-js-pure/features/string/search.js
deleted file mode 100644
index aaf356f..0000000
--- a/node_modules/core-js-pure/features/string/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/small.js b/node_modules/core-js-pure/features/string/small.js
deleted file mode 100644
index 47b79e0..0000000
--- a/node_modules/core-js-pure/features/string/small.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/small');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/split.js b/node_modules/core-js-pure/features/string/split.js
deleted file mode 100644
index 5ffbab7..0000000
--- a/node_modules/core-js-pure/features/string/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/starts-with.js b/node_modules/core-js-pure/features/string/starts-with.js
deleted file mode 100644
index f718778..0000000
--- a/node_modules/core-js-pure/features/string/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/strike.js b/node_modules/core-js-pure/features/string/strike.js
deleted file mode 100644
index 6c625c8..0000000
--- a/node_modules/core-js-pure/features/string/strike.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/strike');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/sub.js b/node_modules/core-js-pure/features/string/sub.js
deleted file mode 100644
index a4a66a0..0000000
--- a/node_modules/core-js-pure/features/string/sub.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/sub');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/sup.js b/node_modules/core-js-pure/features/string/sup.js
deleted file mode 100644
index abb1f6a..0000000
--- a/node_modules/core-js-pure/features/string/sup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/sup');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/trim-end.js b/node_modules/core-js-pure/features/string/trim-end.js
deleted file mode 100644
index 37e8d3f..0000000
--- a/node_modules/core-js-pure/features/string/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/trim-left.js b/node_modules/core-js-pure/features/string/trim-left.js
deleted file mode 100644
index e11e7b7..0000000
--- a/node_modules/core-js-pure/features/string/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/trim-right.js b/node_modules/core-js-pure/features/string/trim-right.js
deleted file mode 100644
index 290f4fd..0000000
--- a/node_modules/core-js-pure/features/string/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/trim-start.js b/node_modules/core-js-pure/features/string/trim-start.js
deleted file mode 100644
index 9698852..0000000
--- a/node_modules/core-js-pure/features/string/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/trim.js b/node_modules/core-js-pure/features/string/trim.js
deleted file mode 100644
index 7a3a3b2..0000000
--- a/node_modules/core-js-pure/features/string/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/anchor.js b/node_modules/core-js-pure/features/string/virtual/anchor.js
deleted file mode 100644
index 52f270c..0000000
--- a/node_modules/core-js-pure/features/string/virtual/anchor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/anchor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/at.js b/node_modules/core-js-pure/features/string/virtual/at.js
deleted file mode 100644
index c78ec2c..0000000
--- a/node_modules/core-js-pure/features/string/virtual/at.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/esnext.string.at');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').at;
diff --git a/node_modules/core-js-pure/features/string/virtual/big.js b/node_modules/core-js-pure/features/string/virtual/big.js
deleted file mode 100644
index e2c481b..0000000
--- a/node_modules/core-js-pure/features/string/virtual/big.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/big');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/blink.js b/node_modules/core-js-pure/features/string/virtual/blink.js
deleted file mode 100644
index b804fd6..0000000
--- a/node_modules/core-js-pure/features/string/virtual/blink.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/blink');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/bold.js b/node_modules/core-js-pure/features/string/virtual/bold.js
deleted file mode 100644
index fbe2f42..0000000
--- a/node_modules/core-js-pure/features/string/virtual/bold.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/bold');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/code-point-at.js b/node_modules/core-js-pure/features/string/virtual/code-point-at.js
deleted file mode 100644
index 1a7e0f6..0000000
--- a/node_modules/core-js-pure/features/string/virtual/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/code-points.js b/node_modules/core-js-pure/features/string/virtual/code-points.js
deleted file mode 100644
index e990516..0000000
--- a/node_modules/core-js-pure/features/string/virtual/code-points.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../../../modules/esnext.string.code-points');
-
-module.exports = require('../../../internals/entry-virtual')('String').codePoints;
diff --git a/node_modules/core-js-pure/features/string/virtual/ends-with.js b/node_modules/core-js-pure/features/string/virtual/ends-with.js
deleted file mode 100644
index e35b5d0..0000000
--- a/node_modules/core-js-pure/features/string/virtual/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/fixed.js b/node_modules/core-js-pure/features/string/virtual/fixed.js
deleted file mode 100644
index 8c16126..0000000
--- a/node_modules/core-js-pure/features/string/virtual/fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/fontcolor.js b/node_modules/core-js-pure/features/string/virtual/fontcolor.js
deleted file mode 100644
index 5434150..0000000
--- a/node_modules/core-js-pure/features/string/virtual/fontcolor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fontcolor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/fontsize.js b/node_modules/core-js-pure/features/string/virtual/fontsize.js
deleted file mode 100644
index f4b7144..0000000
--- a/node_modules/core-js-pure/features/string/virtual/fontsize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fontsize');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/includes.js b/node_modules/core-js-pure/features/string/virtual/includes.js
deleted file mode 100644
index a6aee44..0000000
--- a/node_modules/core-js-pure/features/string/virtual/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/index.js b/node_modules/core-js-pure/features/string/virtual/index.js
deleted file mode 100644
index 5004477..0000000
--- a/node_modules/core-js-pure/features/string/virtual/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var parent = require('../../../es/string/virtual');
-require('../../../modules/esnext.string.at');
-require('../../../modules/esnext.string.code-points');
-// TODO: remove from `core-js@4`
-require('../../../modules/esnext.string.match-all');
-require('../../../modules/esnext.string.replace-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/italics.js b/node_modules/core-js-pure/features/string/virtual/italics.js
deleted file mode 100644
index d35da33..0000000
--- a/node_modules/core-js-pure/features/string/virtual/italics.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/italics');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/iterator.js b/node_modules/core-js-pure/features/string/virtual/iterator.js
deleted file mode 100644
index ffdb591..0000000
--- a/node_modules/core-js-pure/features/string/virtual/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/link.js b/node_modules/core-js-pure/features/string/virtual/link.js
deleted file mode 100644
index 4c0c0cf..0000000
--- a/node_modules/core-js-pure/features/string/virtual/link.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/link');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/match-all.js b/node_modules/core-js-pure/features/string/virtual/match-all.js
deleted file mode 100644
index fb39080..0000000
--- a/node_modules/core-js-pure/features/string/virtual/match-all.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// TODO: remove from `core-js@4`
-require('../../../modules/esnext.string.match-all');
-
-var parent = require('../../../es/string/virtual/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/pad-end.js b/node_modules/core-js-pure/features/string/virtual/pad-end.js
deleted file mode 100644
index f1dcdf3..0000000
--- a/node_modules/core-js-pure/features/string/virtual/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/pad-start.js b/node_modules/core-js-pure/features/string/virtual/pad-start.js
deleted file mode 100644
index 1e2afbc..0000000
--- a/node_modules/core-js-pure/features/string/virtual/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/repeat.js b/node_modules/core-js-pure/features/string/virtual/repeat.js
deleted file mode 100644
index b8db5fc..0000000
--- a/node_modules/core-js-pure/features/string/virtual/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/replace-all.js b/node_modules/core-js-pure/features/string/virtual/replace-all.js
deleted file mode 100644
index 781f261..0000000
--- a/node_modules/core-js-pure/features/string/virtual/replace-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../../modules/esnext.string.replace-all');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').replaceAll;
diff --git a/node_modules/core-js-pure/features/string/virtual/small.js b/node_modules/core-js-pure/features/string/virtual/small.js
deleted file mode 100644
index 1dd357b..0000000
--- a/node_modules/core-js-pure/features/string/virtual/small.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/small');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/starts-with.js b/node_modules/core-js-pure/features/string/virtual/starts-with.js
deleted file mode 100644
index 9a9145d..0000000
--- a/node_modules/core-js-pure/features/string/virtual/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/strike.js b/node_modules/core-js-pure/features/string/virtual/strike.js
deleted file mode 100644
index 4aa28cc..0000000
--- a/node_modules/core-js-pure/features/string/virtual/strike.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/strike');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/sub.js b/node_modules/core-js-pure/features/string/virtual/sub.js
deleted file mode 100644
index a1b2c3a..0000000
--- a/node_modules/core-js-pure/features/string/virtual/sub.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/sub');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/sup.js b/node_modules/core-js-pure/features/string/virtual/sup.js
deleted file mode 100644
index dc604fe..0000000
--- a/node_modules/core-js-pure/features/string/virtual/sup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/sup');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/trim-end.js b/node_modules/core-js-pure/features/string/virtual/trim-end.js
deleted file mode 100644
index 04e5ad9..0000000
--- a/node_modules/core-js-pure/features/string/virtual/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/trim-left.js b/node_modules/core-js-pure/features/string/virtual/trim-left.js
deleted file mode 100644
index 571fb01..0000000
--- a/node_modules/core-js-pure/features/string/virtual/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/trim-right.js b/node_modules/core-js-pure/features/string/virtual/trim-right.js
deleted file mode 100644
index aab8b09..0000000
--- a/node_modules/core-js-pure/features/string/virtual/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/trim-start.js b/node_modules/core-js-pure/features/string/virtual/trim-start.js
deleted file mode 100644
index c7fd1b2..0000000
--- a/node_modules/core-js-pure/features/string/virtual/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/string/virtual/trim.js b/node_modules/core-js-pure/features/string/virtual/trim.js
deleted file mode 100644
index d95c2e1..0000000
--- a/node_modules/core-js-pure/features/string/virtual/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/async-dispose.js b/node_modules/core-js-pure/features/symbol/async-dispose.js
deleted file mode 100644
index 195abe1..0000000
--- a/node_modules/core-js-pure/features/symbol/async-dispose.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.symbol.async-dispose');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('asyncDispose');
diff --git a/node_modules/core-js-pure/features/symbol/async-iterator.js b/node_modules/core-js-pure/features/symbol/async-iterator.js
deleted file mode 100644
index a624329..0000000
--- a/node_modules/core-js-pure/features/symbol/async-iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/async-iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/description.js b/node_modules/core-js-pure/features/symbol/description.js
deleted file mode 100644
index 7bb4b2b..0000000
--- a/node_modules/core-js-pure/features/symbol/description.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.symbol.description');
diff --git a/node_modules/core-js-pure/features/symbol/dispose.js b/node_modules/core-js-pure/features/symbol/dispose.js
deleted file mode 100644
index 71a4d50..0000000
--- a/node_modules/core-js-pure/features/symbol/dispose.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.symbol.dispose');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('dispose');
diff --git a/node_modules/core-js-pure/features/symbol/for.js b/node_modules/core-js-pure/features/symbol/for.js
deleted file mode 100644
index 28b29ae..0000000
--- a/node_modules/core-js-pure/features/symbol/for.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/for');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/has-instance.js b/node_modules/core-js-pure/features/symbol/has-instance.js
deleted file mode 100644
index 0334558..0000000
--- a/node_modules/core-js-pure/features/symbol/has-instance.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/has-instance');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/index.js b/node_modules/core-js-pure/features/symbol/index.js
deleted file mode 100644
index 36b052a..0000000
--- a/node_modules/core-js-pure/features/symbol/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var parent = require('../../es/symbol');
-require('../../modules/esnext.symbol.async-dispose');
-require('../../modules/esnext.symbol.dispose');
-require('../../modules/esnext.symbol.observable');
-require('../../modules/esnext.symbol.pattern-match');
-// TODO: Remove from `core-js@4`
-require('../../modules/esnext.symbol.replace-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/is-concat-spreadable.js b/node_modules/core-js-pure/features/symbol/is-concat-spreadable.js
deleted file mode 100644
index 7dc1d26..0000000
--- a/node_modules/core-js-pure/features/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/is-concat-spreadable');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/iterator.js b/node_modules/core-js-pure/features/symbol/iterator.js
deleted file mode 100644
index 78f0139..0000000
--- a/node_modules/core-js-pure/features/symbol/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/key-for.js b/node_modules/core-js-pure/features/symbol/key-for.js
deleted file mode 100644
index 4f76f82..0000000
--- a/node_modules/core-js-pure/features/symbol/key-for.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/key-for');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/match-all.js b/node_modules/core-js-pure/features/symbol/match-all.js
deleted file mode 100644
index 6be4444..0000000
--- a/node_modules/core-js-pure/features/symbol/match-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/match.js b/node_modules/core-js-pure/features/symbol/match.js
deleted file mode 100644
index 2a502e4..0000000
--- a/node_modules/core-js-pure/features/symbol/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/observable.js b/node_modules/core-js-pure/features/symbol/observable.js
deleted file mode 100644
index f1fa6cb..0000000
--- a/node_modules/core-js-pure/features/symbol/observable.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.symbol.observable');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('observable');
diff --git a/node_modules/core-js-pure/features/symbol/pattern-match.js b/node_modules/core-js-pure/features/symbol/pattern-match.js
deleted file mode 100644
index 98ffbb0..0000000
--- a/node_modules/core-js-pure/features/symbol/pattern-match.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/esnext.symbol.pattern-match');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('patternMatch');
diff --git a/node_modules/core-js-pure/features/symbol/replace-all.js b/node_modules/core-js-pure/features/symbol/replace-all.js
deleted file mode 100644
index 011b117..0000000
--- a/node_modules/core-js-pure/features/symbol/replace-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('../../modules/esnext.symbol.replace-all');
-var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
-
-module.exports = WrappedWellKnownSymbolModule.f('replaceAll');
diff --git a/node_modules/core-js-pure/features/symbol/replace.js b/node_modules/core-js-pure/features/symbol/replace.js
deleted file mode 100644
index 225f7fe..0000000
--- a/node_modules/core-js-pure/features/symbol/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/search.js b/node_modules/core-js-pure/features/symbol/search.js
deleted file mode 100644
index dd25b55..0000000
--- a/node_modules/core-js-pure/features/symbol/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/species.js b/node_modules/core-js-pure/features/symbol/species.js
deleted file mode 100644
index 6d3c418..0000000
--- a/node_modules/core-js-pure/features/symbol/species.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/species');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/split.js b/node_modules/core-js-pure/features/symbol/split.js
deleted file mode 100644
index 209b212..0000000
--- a/node_modules/core-js-pure/features/symbol/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/to-primitive.js b/node_modules/core-js-pure/features/symbol/to-primitive.js
deleted file mode 100644
index cd15ff5..0000000
--- a/node_modules/core-js-pure/features/symbol/to-primitive.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/to-primitive');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/to-string-tag.js b/node_modules/core-js-pure/features/symbol/to-string-tag.js
deleted file mode 100644
index 6948350..0000000
--- a/node_modules/core-js-pure/features/symbol/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/symbol/unscopables.js b/node_modules/core-js-pure/features/symbol/unscopables.js
deleted file mode 100644
index a9d7820..0000000
--- a/node_modules/core-js-pure/features/symbol/unscopables.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/unscopables');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/copy-within.js b/node_modules/core-js-pure/features/typed-array/copy-within.js
deleted file mode 100644
index 1352cec..0000000
--- a/node_modules/core-js-pure/features/typed-array/copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.copy-within');
diff --git a/node_modules/core-js-pure/features/typed-array/entries.js b/node_modules/core-js-pure/features/typed-array/entries.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/features/typed-array/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/features/typed-array/every.js b/node_modules/core-js-pure/features/typed-array/every.js
deleted file mode 100644
index 681164b..0000000
--- a/node_modules/core-js-pure/features/typed-array/every.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.every');
diff --git a/node_modules/core-js-pure/features/typed-array/fill.js b/node_modules/core-js-pure/features/typed-array/fill.js
deleted file mode 100644
index 4d92ac6..0000000
--- a/node_modules/core-js-pure/features/typed-array/fill.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.fill');
diff --git a/node_modules/core-js-pure/features/typed-array/filter.js b/node_modules/core-js-pure/features/typed-array/filter.js
deleted file mode 100644
index 7d0a630..0000000
--- a/node_modules/core-js-pure/features/typed-array/filter.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.filter');
diff --git a/node_modules/core-js-pure/features/typed-array/find-index.js b/node_modules/core-js-pure/features/typed-array/find-index.js
deleted file mode 100644
index 039cd5e..0000000
--- a/node_modules/core-js-pure/features/typed-array/find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find-index');
diff --git a/node_modules/core-js-pure/features/typed-array/find.js b/node_modules/core-js-pure/features/typed-array/find.js
deleted file mode 100644
index b3251b9..0000000
--- a/node_modules/core-js-pure/features/typed-array/find.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find');
diff --git a/node_modules/core-js-pure/features/typed-array/float32-array.js b/node_modules/core-js-pure/features/typed-array/float32-array.js
deleted file mode 100644
index c16ee63..0000000
--- a/node_modules/core-js-pure/features/typed-array/float32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/float32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/float64-array.js b/node_modules/core-js-pure/features/typed-array/float64-array.js
deleted file mode 100644
index 445dc3d..0000000
--- a/node_modules/core-js-pure/features/typed-array/float64-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/float64-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/for-each.js b/node_modules/core-js-pure/features/typed-array/for-each.js
deleted file mode 100644
index defe03a..0000000
--- a/node_modules/core-js-pure/features/typed-array/for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.for-each');
diff --git a/node_modules/core-js-pure/features/typed-array/from.js b/node_modules/core-js-pure/features/typed-array/from.js
deleted file mode 100644
index e0f3444..0000000
--- a/node_modules/core-js-pure/features/typed-array/from.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.from');
diff --git a/node_modules/core-js-pure/features/typed-array/includes.js b/node_modules/core-js-pure/features/typed-array/includes.js
deleted file mode 100644
index 5ff65f9..0000000
--- a/node_modules/core-js-pure/features/typed-array/includes.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.includes');
diff --git a/node_modules/core-js-pure/features/typed-array/index-of.js b/node_modules/core-js-pure/features/typed-array/index-of.js
deleted file mode 100644
index 87081c0..0000000
--- a/node_modules/core-js-pure/features/typed-array/index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.index-of');
diff --git a/node_modules/core-js-pure/features/typed-array/index.js b/node_modules/core-js-pure/features/typed-array/index.js
deleted file mode 100644
index 20a271d..0000000
--- a/node_modules/core-js-pure/features/typed-array/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/int16-array.js b/node_modules/core-js-pure/features/typed-array/int16-array.js
deleted file mode 100644
index 7ffdbae..0000000
--- a/node_modules/core-js-pure/features/typed-array/int16-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int16-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/int32-array.js b/node_modules/core-js-pure/features/typed-array/int32-array.js
deleted file mode 100644
index bd2e75a..0000000
--- a/node_modules/core-js-pure/features/typed-array/int32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/int8-array.js b/node_modules/core-js-pure/features/typed-array/int8-array.js
deleted file mode 100644
index 8f1a54b..0000000
--- a/node_modules/core-js-pure/features/typed-array/int8-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int8-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/iterator.js b/node_modules/core-js-pure/features/typed-array/iterator.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/features/typed-array/iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/features/typed-array/join.js b/node_modules/core-js-pure/features/typed-array/join.js
deleted file mode 100644
index 431129c..0000000
--- a/node_modules/core-js-pure/features/typed-array/join.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.join');
diff --git a/node_modules/core-js-pure/features/typed-array/keys.js b/node_modules/core-js-pure/features/typed-array/keys.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/features/typed-array/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/features/typed-array/last-index-of.js b/node_modules/core-js-pure/features/typed-array/last-index-of.js
deleted file mode 100644
index 5682bf4..0000000
--- a/node_modules/core-js-pure/features/typed-array/last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.last-index-of');
diff --git a/node_modules/core-js-pure/features/typed-array/map.js b/node_modules/core-js-pure/features/typed-array/map.js
deleted file mode 100644
index db08fed..0000000
--- a/node_modules/core-js-pure/features/typed-array/map.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.map');
diff --git a/node_modules/core-js-pure/features/typed-array/of.js b/node_modules/core-js-pure/features/typed-array/of.js
deleted file mode 100644
index 121bf5e..0000000
--- a/node_modules/core-js-pure/features/typed-array/of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.of');
diff --git a/node_modules/core-js-pure/features/typed-array/reduce-right.js b/node_modules/core-js-pure/features/typed-array/reduce-right.js
deleted file mode 100644
index cbd321f..0000000
--- a/node_modules/core-js-pure/features/typed-array/reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce-right');
diff --git a/node_modules/core-js-pure/features/typed-array/reduce.js b/node_modules/core-js-pure/features/typed-array/reduce.js
deleted file mode 100644
index e2a6f28..0000000
--- a/node_modules/core-js-pure/features/typed-array/reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce');
diff --git a/node_modules/core-js-pure/features/typed-array/reverse.js b/node_modules/core-js-pure/features/typed-array/reverse.js
deleted file mode 100644
index 14995f4..0000000
--- a/node_modules/core-js-pure/features/typed-array/reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reverse');
diff --git a/node_modules/core-js-pure/features/typed-array/set.js b/node_modules/core-js-pure/features/typed-array/set.js
deleted file mode 100644
index 5330e22..0000000
--- a/node_modules/core-js-pure/features/typed-array/set.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.set');
diff --git a/node_modules/core-js-pure/features/typed-array/slice.js b/node_modules/core-js-pure/features/typed-array/slice.js
deleted file mode 100644
index 37fb8c1..0000000
--- a/node_modules/core-js-pure/features/typed-array/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.slice');
diff --git a/node_modules/core-js-pure/features/typed-array/some.js b/node_modules/core-js-pure/features/typed-array/some.js
deleted file mode 100644
index 495c322..0000000
--- a/node_modules/core-js-pure/features/typed-array/some.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.some');
diff --git a/node_modules/core-js-pure/features/typed-array/sort.js b/node_modules/core-js-pure/features/typed-array/sort.js
deleted file mode 100644
index d6c7e30..0000000
--- a/node_modules/core-js-pure/features/typed-array/sort.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.sort');
diff --git a/node_modules/core-js-pure/features/typed-array/subarray.js b/node_modules/core-js-pure/features/typed-array/subarray.js
deleted file mode 100644
index dbad4ca..0000000
--- a/node_modules/core-js-pure/features/typed-array/subarray.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.subarray');
diff --git a/node_modules/core-js-pure/features/typed-array/to-locale-string.js b/node_modules/core-js-pure/features/typed-array/to-locale-string.js
deleted file mode 100644
index 12c809e..0000000
--- a/node_modules/core-js-pure/features/typed-array/to-locale-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-locale-string');
diff --git a/node_modules/core-js-pure/features/typed-array/to-string.js b/node_modules/core-js-pure/features/typed-array/to-string.js
deleted file mode 100644
index bf94160..0000000
--- a/node_modules/core-js-pure/features/typed-array/to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-string');
diff --git a/node_modules/core-js-pure/features/typed-array/uint16-array.js b/node_modules/core-js-pure/features/typed-array/uint16-array.js
deleted file mode 100644
index f35dc05..0000000
--- a/node_modules/core-js-pure/features/typed-array/uint16-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint16-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/uint32-array.js b/node_modules/core-js-pure/features/typed-array/uint32-array.js
deleted file mode 100644
index 197c8de..0000000
--- a/node_modules/core-js-pure/features/typed-array/uint32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/uint8-array.js b/node_modules/core-js-pure/features/typed-array/uint8-array.js
deleted file mode 100644
index 7d853e4..0000000
--- a/node_modules/core-js-pure/features/typed-array/uint8-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint8-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/uint8-clamped-array.js b/node_modules/core-js-pure/features/typed-array/uint8-clamped-array.js
deleted file mode 100644
index a1e131c..0000000
--- a/node_modules/core-js-pure/features/typed-array/uint8-clamped-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint8-clamped-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/typed-array/values.js b/node_modules/core-js-pure/features/typed-array/values.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/features/typed-array/values.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/features/url-search-params/index.js b/node_modules/core-js-pure/features/url-search-params/index.js
deleted file mode 100644
index 46c415b..0000000
--- a/node_modules/core-js-pure/features/url-search-params/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/url-search-params');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/url/index.js b/node_modules/core-js-pure/features/url/index.js
deleted file mode 100644
index fa902af..0000000
--- a/node_modules/core-js-pure/features/url/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/url');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/url/to-json.js b/node_modules/core-js-pure/features/url/to-json.js
deleted file mode 100644
index e7cafe8..0000000
--- a/node_modules/core-js-pure/features/url/to-json.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../stable/url/to-json');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/weak-map/delete-all.js b/node_modules/core-js-pure/features/weak-map/delete-all.js
deleted file mode 100644
index 00163f2..0000000
--- a/node_modules/core-js-pure/features/weak-map/delete-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.weak-map');
-require('../../modules/esnext.weak-map.delete-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('WeakMap', 'deleteAll');
diff --git a/node_modules/core-js-pure/features/weak-map/from.js b/node_modules/core-js-pure/features/weak-map/from.js
deleted file mode 100644
index 159aecd..0000000
--- a/node_modules/core-js-pure/features/weak-map/from.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.string.iterator');
-require('../../modules/es.weak-map');
-require('../../modules/esnext.weak-map.from');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var WeakMap = path.WeakMap;
-var weakMapFrom = WeakMap.from;
-
-module.exports = function from(source, mapFn, thisArg) {
-  return weakMapFrom.call(typeof this === 'function' ? this : WeakMap, source, mapFn, thisArg);
-};
diff --git a/node_modules/core-js-pure/features/weak-map/index.js b/node_modules/core-js-pure/features/weak-map/index.js
deleted file mode 100644
index ce5f384..0000000
--- a/node_modules/core-js-pure/features/weak-map/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var parent = require('../../es/weak-map');
-require('../../modules/esnext.weak-map.from');
-require('../../modules/esnext.weak-map.of');
-require('../../modules/esnext.weak-map.delete-all');
-require('../../modules/esnext.weak-map.upsert');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/weak-map/of.js b/node_modules/core-js-pure/features/weak-map/of.js
deleted file mode 100644
index 5bdf627..0000000
--- a/node_modules/core-js-pure/features/weak-map/of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.string.iterator');
-require('../../modules/es.weak-map');
-require('../../modules/esnext.weak-map.of');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var WeakMap = path.WeakMap;
-var weakMapOf = WeakMap.of;
-
-module.exports = function of() {
-  return weakMapOf.apply(typeof this === 'function' ? this : WeakMap, arguments);
-};
diff --git a/node_modules/core-js-pure/features/weak-map/upsert.js b/node_modules/core-js-pure/features/weak-map/upsert.js
deleted file mode 100644
index 509f9ed..0000000
--- a/node_modules/core-js-pure/features/weak-map/upsert.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.weak-map');
-require('../../modules/esnext.weak-map.upsert');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('WeakMap', 'upsert');
diff --git a/node_modules/core-js-pure/features/weak-set/add-all.js b/node_modules/core-js-pure/features/weak-set/add-all.js
deleted file mode 100644
index cf76242..0000000
--- a/node_modules/core-js-pure/features/weak-set/add-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.weak-set');
-require('../../modules/esnext.weak-set.add-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('WeakSet', 'addAll');
diff --git a/node_modules/core-js-pure/features/weak-set/delete-all.js b/node_modules/core-js-pure/features/weak-set/delete-all.js
deleted file mode 100644
index 21e7b43..0000000
--- a/node_modules/core-js-pure/features/weak-set/delete-all.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/es.weak-set');
-require('../../modules/esnext.weak-set.delete-all');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('WeakSet', 'deleteAll');
diff --git a/node_modules/core-js-pure/features/weak-set/from.js b/node_modules/core-js-pure/features/weak-set/from.js
deleted file mode 100644
index cd8716a..0000000
--- a/node_modules/core-js-pure/features/weak-set/from.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.string.iterator');
-require('../../modules/es.weak-set');
-require('../../modules/esnext.weak-set.from');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var WeakSet = path.WeakSet;
-var weakSetfrom = WeakSet.from;
-
-module.exports = function from(source, mapFn, thisArg) {
-  return weakSetfrom.call(typeof this === 'function' ? this : WeakSet, source, mapFn, thisArg);
-};
diff --git a/node_modules/core-js-pure/features/weak-set/index.js b/node_modules/core-js-pure/features/weak-set/index.js
deleted file mode 100644
index 00ab5e0..0000000
--- a/node_modules/core-js-pure/features/weak-set/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var parent = require('../../es/weak-set');
-require('../../modules/esnext.weak-set.add-all');
-require('../../modules/esnext.weak-set.delete-all');
-require('../../modules/esnext.weak-set.from');
-require('../../modules/esnext.weak-set.of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/features/weak-set/of.js b/node_modules/core-js-pure/features/weak-set/of.js
deleted file mode 100644
index 4937c39..0000000
--- a/node_modules/core-js-pure/features/weak-set/of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-require('../../modules/es.string.iterator');
-require('../../modules/es.weak-set');
-require('../../modules/esnext.weak-set.of');
-require('../../modules/web.dom-collections.iterator');
-var path = require('../../internals/path');
-
-var WeakSet = path.WeakSet;
-var weakSetOf = WeakSet.of;
-
-module.exports = function of() {
-  return weakSetOf.apply(typeof this === 'function' ? this : WeakSet, arguments);
-};
diff --git a/node_modules/core-js-pure/index.js b/node_modules/core-js-pure/index.js
deleted file mode 100644
index 10f0e3f..0000000
--- a/node_modules/core-js-pure/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('./es');
-require('./proposals');
-require('./web');
-var path = require('./internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/internals/README.md b/node_modules/core-js-pure/internals/README.md
deleted file mode 100644
index f5cca30..0000000
--- a/node_modules/core-js-pure/internals/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains internal parts of `core-js` like helpers.
diff --git a/node_modules/core-js-pure/internals/a-function.js b/node_modules/core-js-pure/internals/a-function.js
deleted file mode 100644
index b597471..0000000
--- a/node_modules/core-js-pure/internals/a-function.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = function (it) {
-  if (typeof it != 'function') {
-    throw TypeError(String(it) + ' is not a function');
-  } return it;
-};
diff --git a/node_modules/core-js-pure/internals/a-possible-prototype.js b/node_modules/core-js-pure/internals/a-possible-prototype.js
deleted file mode 100644
index 7736376..0000000
--- a/node_modules/core-js-pure/internals/a-possible-prototype.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('../internals/is-object');
-
-module.exports = function (it) {
-  if (!isObject(it) && it !== null) {
-    throw TypeError("Can't set " + String(it) + ' as a prototype');
-  } return it;
-};
diff --git a/node_modules/core-js-pure/internals/add-to-unscopables.js b/node_modules/core-js-pure/internals/add-to-unscopables.js
deleted file mode 100644
index 02ef44b..0000000
--- a/node_modules/core-js-pure/internals/add-to-unscopables.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function () { /* empty */ };
diff --git a/node_modules/core-js-pure/internals/advance-string-index.js b/node_modules/core-js-pure/internals/advance-string-index.js
deleted file mode 100644
index 700fbf0..0000000
--- a/node_modules/core-js-pure/internals/advance-string-index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-var charAt = require('../internals/string-multibyte').charAt;
-
-// `AdvanceStringIndex` abstract operation
-// https://tc39.github.io/ecma262/#sec-advancestringindex
-module.exports = function (S, index, unicode) {
-  return index + (unicode ? charAt(S, index).length : 1);
-};
diff --git a/node_modules/core-js-pure/internals/an-instance.js b/node_modules/core-js-pure/internals/an-instance.js
deleted file mode 100644
index 6f471cc..0000000
--- a/node_modules/core-js-pure/internals/an-instance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = function (it, Constructor, name) {
-  if (!(it instanceof Constructor)) {
-    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
-  } return it;
-};
diff --git a/node_modules/core-js-pure/internals/an-object.js b/node_modules/core-js-pure/internals/an-object.js
deleted file mode 100644
index 4055796..0000000
--- a/node_modules/core-js-pure/internals/an-object.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isObject = require('../internals/is-object');
-
-module.exports = function (it) {
-  if (!isObject(it)) {
-    throw TypeError(String(it) + ' is not an object');
-  } return it;
-};
diff --git a/node_modules/core-js-pure/internals/array-buffer-native.js b/node_modules/core-js-pure/internals/array-buffer-native.js
deleted file mode 100644
index 36da2d7..0000000
--- a/node_modules/core-js-pure/internals/array-buffer-native.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
diff --git a/node_modules/core-js-pure/internals/array-buffer-view-core.js b/node_modules/core-js-pure/internals/array-buffer-view-core.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/array-buffer-view-core.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/array-buffer.js b/node_modules/core-js-pure/internals/array-buffer.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/array-buffer.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/array-copy-within.js b/node_modules/core-js-pure/internals/array-copy-within.js
deleted file mode 100644
index 70c8edb..0000000
--- a/node_modules/core-js-pure/internals/array-copy-within.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-var toObject = require('../internals/to-object');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-var toLength = require('../internals/to-length');
-
-var min = Math.min;
-
-// `Array.prototype.copyWithin` method implementation
-// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
-module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
-  var O = toObject(this);
-  var len = toLength(O.length);
-  var to = toAbsoluteIndex(target, len);
-  var from = toAbsoluteIndex(start, len);
-  var end = arguments.length > 2 ? arguments[2] : undefined;
-  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
-  var inc = 1;
-  if (from < to && to < from + count) {
-    inc = -1;
-    from += count - 1;
-    to += count - 1;
-  }
-  while (count-- > 0) {
-    if (from in O) O[to] = O[from];
-    else delete O[to];
-    to += inc;
-    from += inc;
-  } return O;
-};
diff --git a/node_modules/core-js-pure/internals/array-fill.js b/node_modules/core-js-pure/internals/array-fill.js
deleted file mode 100644
index 7c15a04..0000000
--- a/node_modules/core-js-pure/internals/array-fill.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var toObject = require('../internals/to-object');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-var toLength = require('../internals/to-length');
-
-// `Array.prototype.fill` method implementation
-// https://tc39.github.io/ecma262/#sec-array.prototype.fill
-module.exports = function fill(value /* , start = 0, end = @length */) {
-  var O = toObject(this);
-  var length = toLength(O.length);
-  var argumentsLength = arguments.length;
-  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
-  var end = argumentsLength > 2 ? arguments[2] : undefined;
-  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
-  while (endPos > index) O[index++] = value;
-  return O;
-};
diff --git a/node_modules/core-js-pure/internals/array-for-each.js b/node_modules/core-js-pure/internals/array-for-each.js
deleted file mode 100644
index d8872db..0000000
--- a/node_modules/core-js-pure/internals/array-for-each.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var $forEach = require('../internals/array-iteration').forEach;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('forEach');
-var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
-
-// `Array.prototype.forEach` method implementation
-// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
-  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-} : [].forEach;
diff --git a/node_modules/core-js-pure/internals/array-from.js b/node_modules/core-js-pure/internals/array-from.js
deleted file mode 100644
index 490a3c2..0000000
--- a/node_modules/core-js-pure/internals/array-from.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-var bind = require('../internals/function-bind-context');
-var toObject = require('../internals/to-object');
-var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
-var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
-var toLength = require('../internals/to-length');
-var createProperty = require('../internals/create-property');
-var getIteratorMethod = require('../internals/get-iterator-method');
-
-// `Array.from` method implementation
-// https://tc39.github.io/ecma262/#sec-array.from
-module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
-  var O = toObject(arrayLike);
-  var C = typeof this == 'function' ? this : Array;
-  var argumentsLength = arguments.length;
-  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
-  var mapping = mapfn !== undefined;
-  var iteratorMethod = getIteratorMethod(O);
-  var index = 0;
-  var length, result, step, iterator, next, value;
-  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
-  // if the target is not iterable or it's an array with the default iterator - use a simple case
-  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
-    iterator = iteratorMethod.call(O);
-    next = iterator.next;
-    result = new C();
-    for (;!(step = next.call(iterator)).done; index++) {
-      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
-      createProperty(result, index, value);
-    }
-  } else {
-    length = toLength(O.length);
-    result = new C(length);
-    for (;length > index; index++) {
-      value = mapping ? mapfn(O[index], index) : O[index];
-      createProperty(result, index, value);
-    }
-  }
-  result.length = index;
-  return result;
-};
diff --git a/node_modules/core-js-pure/internals/array-includes.js b/node_modules/core-js-pure/internals/array-includes.js
deleted file mode 100644
index a416120..0000000
--- a/node_modules/core-js-pure/internals/array-includes.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var toIndexedObject = require('../internals/to-indexed-object');
-var toLength = require('../internals/to-length');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-
-// `Array.prototype.{ indexOf, includes }` methods implementation
-var createMethod = function (IS_INCLUDES) {
-  return function ($this, el, fromIndex) {
-    var O = toIndexedObject($this);
-    var length = toLength(O.length);
-    var index = toAbsoluteIndex(fromIndex, length);
-    var value;
-    // Array#includes uses SameValueZero equality algorithm
-    // eslint-disable-next-line no-self-compare
-    if (IS_INCLUDES && el != el) while (length > index) {
-      value = O[index++];
-      // eslint-disable-next-line no-self-compare
-      if (value != value) return true;
-    // Array#indexOf ignores holes, Array#includes - not
-    } else for (;length > index; index++) {
-      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
-    } return !IS_INCLUDES && -1;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.includes` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
-  includes: createMethod(true),
-  // `Array.prototype.indexOf` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
-  indexOf: createMethod(false)
-};
diff --git a/node_modules/core-js-pure/internals/array-iteration.js b/node_modules/core-js-pure/internals/array-iteration.js
deleted file mode 100644
index 8014dac..0000000
--- a/node_modules/core-js-pure/internals/array-iteration.js
+++ /dev/null
@@ -1,65 +0,0 @@
-var bind = require('../internals/function-bind-context');
-var IndexedObject = require('../internals/indexed-object');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var arraySpeciesCreate = require('../internals/array-species-create');
-
-var push = [].push;
-
-// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
-var createMethod = function (TYPE) {
-  var IS_MAP = TYPE == 1;
-  var IS_FILTER = TYPE == 2;
-  var IS_SOME = TYPE == 3;
-  var IS_EVERY = TYPE == 4;
-  var IS_FIND_INDEX = TYPE == 6;
-  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
-  return function ($this, callbackfn, that, specificCreate) {
-    var O = toObject($this);
-    var self = IndexedObject(O);
-    var boundFunction = bind(callbackfn, that, 3);
-    var length = toLength(self.length);
-    var index = 0;
-    var create = specificCreate || arraySpeciesCreate;
-    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
-    var value, result;
-    for (;length > index; index++) if (NO_HOLES || index in self) {
-      value = self[index];
-      result = boundFunction(value, index, O);
-      if (TYPE) {
-        if (IS_MAP) target[index] = result; // map
-        else if (result) switch (TYPE) {
-          case 3: return true;              // some
-          case 5: return value;             // find
-          case 6: return index;             // findIndex
-          case 2: push.call(target, value); // filter
-        } else if (IS_EVERY) return false;  // every
-      }
-    }
-    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.forEach` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-  forEach: createMethod(0),
-  // `Array.prototype.map` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.map
-  map: createMethod(1),
-  // `Array.prototype.filter` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.filter
-  filter: createMethod(2),
-  // `Array.prototype.some` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.some
-  some: createMethod(3),
-  // `Array.prototype.every` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.every
-  every: createMethod(4),
-  // `Array.prototype.find` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.find
-  find: createMethod(5),
-  // `Array.prototype.findIndex` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-  findIndex: createMethod(6)
-};
diff --git a/node_modules/core-js-pure/internals/array-last-index-of.js b/node_modules/core-js-pure/internals/array-last-index-of.js
deleted file mode 100644
index 8d1c93c..0000000
--- a/node_modules/core-js-pure/internals/array-last-index-of.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-var toIndexedObject = require('../internals/to-indexed-object');
-var toInteger = require('../internals/to-integer');
-var toLength = require('../internals/to-length');
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var min = Math.min;
-var nativeLastIndexOf = [].lastIndexOf;
-var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
-var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
-// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
-var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
-var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
-
-// `Array.prototype.lastIndexOf` method implementation
-// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
-module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
-  // convert -0 to +0
-  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
-  var O = toIndexedObject(this);
-  var length = toLength(O.length);
-  var index = length - 1;
-  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
-  if (index < 0) index = length + index;
-  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
-  return -1;
-} : nativeLastIndexOf;
diff --git a/node_modules/core-js-pure/internals/array-method-has-species-support.js b/node_modules/core-js-pure/internals/array-method-has-species-support.js
deleted file mode 100644
index 0d5d380..0000000
--- a/node_modules/core-js-pure/internals/array-method-has-species-support.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var fails = require('../internals/fails');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var V8_VERSION = require('../internals/engine-v8-version');
-
-var SPECIES = wellKnownSymbol('species');
-
-module.exports = function (METHOD_NAME) {
-  // We can't use this feature detection in V8 since it causes
-  // deoptimization and serious performance degradation
-  // https://github.com/zloirock/core-js/issues/677
-  return V8_VERSION >= 51 || !fails(function () {
-    var array = [];
-    var constructor = array.constructor = {};
-    constructor[SPECIES] = function () {
-      return { foo: 1 };
-    };
-    return array[METHOD_NAME](Boolean).foo !== 1;
-  });
-};
diff --git a/node_modules/core-js-pure/internals/array-method-is-strict.js b/node_modules/core-js-pure/internals/array-method-is-strict.js
deleted file mode 100644
index 8ea8df0..0000000
--- a/node_modules/core-js-pure/internals/array-method-is-strict.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var fails = require('../internals/fails');
-
-module.exports = function (METHOD_NAME, argument) {
-  var method = [][METHOD_NAME];
-  return !!method && fails(function () {
-    // eslint-disable-next-line no-useless-call,no-throw-literal
-    method.call(null, argument || function () { throw 1; }, 1);
-  });
-};
diff --git a/node_modules/core-js-pure/internals/array-method-uses-to-length.js b/node_modules/core-js-pure/internals/array-method-uses-to-length.js
deleted file mode 100644
index 9863b6f..0000000
--- a/node_modules/core-js-pure/internals/array-method-uses-to-length.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var fails = require('../internals/fails');
-var has = require('../internals/has');
-
-var defineProperty = Object.defineProperty;
-var cache = {};
-
-var thrower = function (it) { throw it; };
-
-module.exports = function (METHOD_NAME, options) {
-  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
-  if (!options) options = {};
-  var method = [][METHOD_NAME];
-  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
-  var argument0 = has(options, 0) ? options[0] : thrower;
-  var argument1 = has(options, 1) ? options[1] : undefined;
-
-  return cache[METHOD_NAME] = !!method && !fails(function () {
-    if (ACCESSORS && !DESCRIPTORS) return true;
-    var O = { length: -1 };
-
-    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
-    else O[1] = 1;
-
-    method.call(O, argument0, argument1);
-  });
-};
diff --git a/node_modules/core-js-pure/internals/array-reduce.js b/node_modules/core-js-pure/internals/array-reduce.js
deleted file mode 100644
index 3f17037..0000000
--- a/node_modules/core-js-pure/internals/array-reduce.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var aFunction = require('../internals/a-function');
-var toObject = require('../internals/to-object');
-var IndexedObject = require('../internals/indexed-object');
-var toLength = require('../internals/to-length');
-
-// `Array.prototype.{ reduce, reduceRight }` methods implementation
-var createMethod = function (IS_RIGHT) {
-  return function (that, callbackfn, argumentsLength, memo) {
-    aFunction(callbackfn);
-    var O = toObject(that);
-    var self = IndexedObject(O);
-    var length = toLength(O.length);
-    var index = IS_RIGHT ? length - 1 : 0;
-    var i = IS_RIGHT ? -1 : 1;
-    if (argumentsLength < 2) while (true) {
-      if (index in self) {
-        memo = self[index];
-        index += i;
-        break;
-      }
-      index += i;
-      if (IS_RIGHT ? index < 0 : length <= index) {
-        throw TypeError('Reduce of empty array with no initial value');
-      }
-    }
-    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
-      memo = callbackfn(memo, self[index], index, O);
-    }
-    return memo;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.reduce` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
-  left: createMethod(false),
-  // `Array.prototype.reduceRight` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
-  right: createMethod(true)
-};
diff --git a/node_modules/core-js-pure/internals/array-species-create.js b/node_modules/core-js-pure/internals/array-species-create.js
deleted file mode 100644
index 5c6eaab..0000000
--- a/node_modules/core-js-pure/internals/array-species-create.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var isObject = require('../internals/is-object');
-var isArray = require('../internals/is-array');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var SPECIES = wellKnownSymbol('species');
-
-// `ArraySpeciesCreate` abstract operation
-// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
-module.exports = function (originalArray, length) {
-  var C;
-  if (isArray(originalArray)) {
-    C = originalArray.constructor;
-    // cross-realm fallback
-    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
-    else if (isObject(C)) {
-      C = C[SPECIES];
-      if (C === null) C = undefined;
-    }
-  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
-};
diff --git a/node_modules/core-js-pure/internals/async-iterator-create-proxy.js b/node_modules/core-js-pure/internals/async-iterator-create-proxy.js
deleted file mode 100644
index 9e8c5df..0000000
--- a/node_modules/core-js-pure/internals/async-iterator-create-proxy.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-var path = require('../internals/path');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var create = require('../internals/object-create');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefineAll = require('../internals/redefine-all');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var InternalStateModule = require('../internals/internal-state');
-var getBuiltIn = require('../internals/get-built-in');
-
-var Promise = getBuiltIn('Promise');
-
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.get;
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-var $return = function (value) {
-  var iterator = getInternalState(this).iterator;
-  var $$return = iterator['return'];
-  return $$return === undefined
-    ? Promise.resolve({ done: true, value: value })
-    : anObject($$return.call(iterator, value));
-};
-
-var $throw = function (value) {
-  var iterator = getInternalState(this).iterator;
-  var $$throw = iterator['throw'];
-  return $$throw === undefined
-    ? Promise.reject(value)
-    : $$throw.call(iterator, value);
-};
-
-module.exports = function (nextHandler, IS_ITERATOR) {
-  var AsyncIteratorProxy = function AsyncIterator(state) {
-    state.next = aFunction(state.iterator.next);
-    state.done = false;
-    setInternalState(this, state);
-  };
-
-  AsyncIteratorProxy.prototype = redefineAll(create(path.AsyncIterator.prototype), {
-    next: function next(arg) {
-      var state = getInternalState(this);
-      if (state.done) return Promise.resolve({ done: true, value: undefined });
-      try {
-        return Promise.resolve(anObject(nextHandler.call(state, arg, Promise)));
-      } catch (error) {
-        return Promise.reject(error);
-      }
-    },
-    'return': $return,
-    'throw': $throw
-  });
-
-  if (!IS_ITERATOR) {
-    createNonEnumerableProperty(AsyncIteratorProxy.prototype, TO_STRING_TAG, 'Generator');
-  }
-
-  return AsyncIteratorProxy;
-};
diff --git a/node_modules/core-js-pure/internals/async-iterator-iteration.js b/node_modules/core-js-pure/internals/async-iterator-iteration.js
deleted file mode 100644
index 94d2560..0000000
--- a/node_modules/core-js-pure/internals/async-iterator-iteration.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var getBuiltIn = require('../internals/get-built-in');
-
-var Promise = getBuiltIn('Promise');
-var push = [].push;
-
-var createMethod = function (TYPE) {
-  var IS_TO_ARRAY = TYPE == 0;
-  var IS_FOR_EACH = TYPE == 1;
-  var IS_EVERY = TYPE == 2;
-  var IS_SOME = TYPE == 3;
-  return function (iterator, fn) {
-    anObject(iterator);
-    var next = aFunction(iterator.next);
-    var array = IS_TO_ARRAY ? [] : undefined;
-    if (!IS_TO_ARRAY) aFunction(fn);
-
-    return new Promise(function (resolve, reject) {
-      var loop = function () {
-        try {
-          Promise.resolve(anObject(next.call(iterator))).then(function (step) {
-            try {
-              if (anObject(step).done) {
-                resolve(IS_TO_ARRAY ? array : IS_SOME ? false : IS_EVERY || undefined);
-              } else {
-                var value = step.value;
-                if (IS_TO_ARRAY) {
-                  push.call(array, value);
-                  loop();
-                } else {
-                  Promise.resolve(fn(value)).then(function (result) {
-                    if (IS_FOR_EACH) {
-                      loop();
-                    } else if (IS_EVERY) {
-                      result ? loop() : resolve(false);
-                    } else {
-                      result ? resolve(IS_SOME || value) : loop();
-                    }
-                  }, reject);
-                }
-              }
-            } catch (err) { reject(err); }
-          }, reject);
-        } catch (error) { reject(error); }
-      };
-
-      loop();
-    });
-  };
-};
-
-module.exports = {
-  toArray: createMethod(0),
-  forEach: createMethod(1),
-  every: createMethod(2),
-  some: createMethod(3),
-  find: createMethod(4)
-};
diff --git a/node_modules/core-js-pure/internals/async-iterator-prototype.js b/node_modules/core-js-pure/internals/async-iterator-prototype.js
deleted file mode 100644
index cb509f0..0000000
--- a/node_modules/core-js-pure/internals/async-iterator-prototype.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var global = require('../internals/global');
-var shared = require('../internals/shared-store');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var has = require('../internals/has');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-
-var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR';
-var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
-var AsyncIterator = global.AsyncIterator;
-var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype;
-var AsyncIteratorPrototype, prototype;
-
-if (!IS_PURE) {
-  if (PassedAsyncIteratorPrototype) {
-    AsyncIteratorPrototype = PassedAsyncIteratorPrototype;
-  } else if (typeof AsyncIterator == 'function') {
-    AsyncIteratorPrototype = AsyncIterator.prototype;
-  } else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
-    try {
-      // eslint-disable-next-line no-new-func
-      prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')())));
-      if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype;
-    } catch (error) { /* empty */ }
-  }
-}
-
-if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};
-
-if (!has(AsyncIteratorPrototype, ASYNC_ITERATOR)) {
-  createNonEnumerableProperty(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {
-    return this;
-  });
-}
-
-module.exports = AsyncIteratorPrototype;
diff --git a/node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js b/node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js
deleted file mode 100644
index 7503656..0000000
--- a/node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var anObject = require('../internals/an-object');
-
-// call something on iterator step with safe closing on error
-module.exports = function (iterator, fn, value, ENTRIES) {
-  try {
-    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
-  // 7.4.6 IteratorClose(iterator, completion)
-  } catch (error) {
-    var returnMethod = iterator['return'];
-    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));
-    throw error;
-  }
-};
diff --git a/node_modules/core-js-pure/internals/check-correctness-of-iteration.js b/node_modules/core-js-pure/internals/check-correctness-of-iteration.js
deleted file mode 100644
index b33ec63..0000000
--- a/node_modules/core-js-pure/internals/check-correctness-of-iteration.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var ITERATOR = wellKnownSymbol('iterator');
-var SAFE_CLOSING = false;
-
-try {
-  var called = 0;
-  var iteratorWithReturn = {
-    next: function () {
-      return { done: !!called++ };
-    },
-    'return': function () {
-      SAFE_CLOSING = true;
-    }
-  };
-  iteratorWithReturn[ITERATOR] = function () {
-    return this;
-  };
-  // eslint-disable-next-line no-throw-literal
-  Array.from(iteratorWithReturn, function () { throw 2; });
-} catch (error) { /* empty */ }
-
-module.exports = function (exec, SKIP_CLOSING) {
-  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
-  var ITERATION_SUPPORT = false;
-  try {
-    var object = {};
-    object[ITERATOR] = function () {
-      return {
-        next: function () {
-          return { done: ITERATION_SUPPORT = true };
-        }
-      };
-    };
-    exec(object);
-  } catch (error) { /* empty */ }
-  return ITERATION_SUPPORT;
-};
diff --git a/node_modules/core-js-pure/internals/classof-raw.js b/node_modules/core-js-pure/internals/classof-raw.js
deleted file mode 100644
index 332c0bc..0000000
--- a/node_modules/core-js-pure/internals/classof-raw.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = function (it) {
-  return toString.call(it).slice(8, -1);
-};
diff --git a/node_modules/core-js-pure/internals/classof.js b/node_modules/core-js-pure/internals/classof.js
deleted file mode 100644
index 0fd0844..0000000
--- a/node_modules/core-js-pure/internals/classof.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var classofRaw = require('../internals/classof-raw');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-// ES3 wrong here
-var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
-
-// fallback for IE11 Script Access Denied error
-var tryGet = function (it, key) {
-  try {
-    return it[key];
-  } catch (error) { /* empty */ }
-};
-
-// getting tag from ES6+ `Object.prototype.toString`
-module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
-  var O, tag, result;
-  return it === undefined ? 'Undefined' : it === null ? 'Null'
-    // @@toStringTag case
-    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
-    // builtinTag case
-    : CORRECT_ARGUMENTS ? classofRaw(O)
-    // ES3 arguments fallback
-    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
-};
diff --git a/node_modules/core-js-pure/internals/collection-add-all.js b/node_modules/core-js-pure/internals/collection-add-all.js
deleted file mode 100644
index 86d1a78..0000000
--- a/node_modules/core-js-pure/internals/collection-add-all.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-
-// https://github.com/tc39/collection-methods
-module.exports = function (/* ...elements */) {
-  var set = anObject(this);
-  var adder = aFunction(set.add);
-  for (var k = 0, len = arguments.length; k < len; k++) {
-    adder.call(set, arguments[k]);
-  }
-  return set;
-};
diff --git a/node_modules/core-js-pure/internals/collection-delete-all.js b/node_modules/core-js-pure/internals/collection-delete-all.js
deleted file mode 100644
index 37b4d48..0000000
--- a/node_modules/core-js-pure/internals/collection-delete-all.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-
-// https://github.com/tc39/collection-methods
-module.exports = function (/* ...elements */) {
-  var collection = anObject(this);
-  var remover = aFunction(collection['delete']);
-  var allDeleted = true;
-  var wasDeleted;
-  for (var k = 0, len = arguments.length; k < len; k++) {
-    wasDeleted = remover.call(collection, arguments[k]);
-    allDeleted = allDeleted && wasDeleted;
-  }
-  return !!allDeleted;
-};
diff --git a/node_modules/core-js-pure/internals/collection-from.js b/node_modules/core-js-pure/internals/collection-from.js
deleted file mode 100644
index 7a4136d..0000000
--- a/node_modules/core-js-pure/internals/collection-from.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-// https://tc39.github.io/proposal-setmap-offrom/
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var iterate = require('../internals/iterate');
-
-module.exports = function from(source /* , mapFn, thisArg */) {
-  var length = arguments.length;
-  var mapFn = length > 1 ? arguments[1] : undefined;
-  var mapping, A, n, boundFunction;
-  aFunction(this);
-  mapping = mapFn !== undefined;
-  if (mapping) aFunction(mapFn);
-  if (source == undefined) return new this();
-  A = [];
-  if (mapping) {
-    n = 0;
-    boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
-    iterate(source, function (nextItem) {
-      A.push(boundFunction(nextItem, n++));
-    });
-  } else {
-    iterate(source, A.push, A);
-  }
-  return new this(A);
-};
diff --git a/node_modules/core-js-pure/internals/collection-of.js b/node_modules/core-js-pure/internals/collection-of.js
deleted file mode 100644
index e68a107..0000000
--- a/node_modules/core-js-pure/internals/collection-of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-// https://tc39.github.io/proposal-setmap-offrom/
-module.exports = function of() {
-  var length = arguments.length;
-  var A = new Array(length);
-  while (length--) A[length] = arguments[length];
-  return new this(A);
-};
diff --git a/node_modules/core-js-pure/internals/collection-strong.js b/node_modules/core-js-pure/internals/collection-strong.js
deleted file mode 100644
index 2a67798..0000000
--- a/node_modules/core-js-pure/internals/collection-strong.js
+++ /dev/null
@@ -1,186 +0,0 @@
-'use strict';
-var defineProperty = require('../internals/object-define-property').f;
-var create = require('../internals/object-create');
-var redefineAll = require('../internals/redefine-all');
-var bind = require('../internals/function-bind-context');
-var anInstance = require('../internals/an-instance');
-var iterate = require('../internals/iterate');
-var defineIterator = require('../internals/define-iterator');
-var setSpecies = require('../internals/set-species');
-var DESCRIPTORS = require('../internals/descriptors');
-var fastKey = require('../internals/internal-metadata').fastKey;
-var InternalStateModule = require('../internals/internal-state');
-
-var setInternalState = InternalStateModule.set;
-var internalStateGetterFor = InternalStateModule.getterFor;
-
-module.exports = {
-  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
-    var C = wrapper(function (that, iterable) {
-      anInstance(that, C, CONSTRUCTOR_NAME);
-      setInternalState(that, {
-        type: CONSTRUCTOR_NAME,
-        index: create(null),
-        first: undefined,
-        last: undefined,
-        size: 0
-      });
-      if (!DESCRIPTORS) that.size = 0;
-      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
-    });
-
-    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
-
-    var define = function (that, key, value) {
-      var state = getInternalState(that);
-      var entry = getEntry(that, key);
-      var previous, index;
-      // change existing entry
-      if (entry) {
-        entry.value = value;
-      // create new entry
-      } else {
-        state.last = entry = {
-          index: index = fastKey(key, true),
-          key: key,
-          value: value,
-          previous: previous = state.last,
-          next: undefined,
-          removed: false
-        };
-        if (!state.first) state.first = entry;
-        if (previous) previous.next = entry;
-        if (DESCRIPTORS) state.size++;
-        else that.size++;
-        // add to index
-        if (index !== 'F') state.index[index] = entry;
-      } return that;
-    };
-
-    var getEntry = function (that, key) {
-      var state = getInternalState(that);
-      // fast case
-      var index = fastKey(key);
-      var entry;
-      if (index !== 'F') return state.index[index];
-      // frozen object case
-      for (entry = state.first; entry; entry = entry.next) {
-        if (entry.key == key) return entry;
-      }
-    };
-
-    redefineAll(C.prototype, {
-      // 23.1.3.1 Map.prototype.clear()
-      // 23.2.3.2 Set.prototype.clear()
-      clear: function clear() {
-        var that = this;
-        var state = getInternalState(that);
-        var data = state.index;
-        var entry = state.first;
-        while (entry) {
-          entry.removed = true;
-          if (entry.previous) entry.previous = entry.previous.next = undefined;
-          delete data[entry.index];
-          entry = entry.next;
-        }
-        state.first = state.last = undefined;
-        if (DESCRIPTORS) state.size = 0;
-        else that.size = 0;
-      },
-      // 23.1.3.3 Map.prototype.delete(key)
-      // 23.2.3.4 Set.prototype.delete(value)
-      'delete': function (key) {
-        var that = this;
-        var state = getInternalState(that);
-        var entry = getEntry(that, key);
-        if (entry) {
-          var next = entry.next;
-          var prev = entry.previous;
-          delete state.index[entry.index];
-          entry.removed = true;
-          if (prev) prev.next = next;
-          if (next) next.previous = prev;
-          if (state.first == entry) state.first = next;
-          if (state.last == entry) state.last = prev;
-          if (DESCRIPTORS) state.size--;
-          else that.size--;
-        } return !!entry;
-      },
-      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-      forEach: function forEach(callbackfn /* , that = undefined */) {
-        var state = getInternalState(this);
-        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-        var entry;
-        while (entry = entry ? entry.next : state.first) {
-          boundFunction(entry.value, entry.key, this);
-          // revert to the last existing entry
-          while (entry && entry.removed) entry = entry.previous;
-        }
-      },
-      // 23.1.3.7 Map.prototype.has(key)
-      // 23.2.3.7 Set.prototype.has(value)
-      has: function has(key) {
-        return !!getEntry(this, key);
-      }
-    });
-
-    redefineAll(C.prototype, IS_MAP ? {
-      // 23.1.3.6 Map.prototype.get(key)
-      get: function get(key) {
-        var entry = getEntry(this, key);
-        return entry && entry.value;
-      },
-      // 23.1.3.9 Map.prototype.set(key, value)
-      set: function set(key, value) {
-        return define(this, key === 0 ? 0 : key, value);
-      }
-    } : {
-      // 23.2.3.1 Set.prototype.add(value)
-      add: function add(value) {
-        return define(this, value = value === 0 ? 0 : value, value);
-      }
-    });
-    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {
-      get: function () {
-        return getInternalState(this).size;
-      }
-    });
-    return C;
-  },
-  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {
-    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';
-    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);
-    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);
-    // add .keys, .values, .entries, [@@iterator]
-    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {
-      setInternalState(this, {
-        type: ITERATOR_NAME,
-        target: iterated,
-        state: getInternalCollectionState(iterated),
-        kind: kind,
-        last: undefined
-      });
-    }, function () {
-      var state = getInternalIteratorState(this);
-      var kind = state.kind;
-      var entry = state.last;
-      // revert to the last existing entry
-      while (entry && entry.removed) entry = entry.previous;
-      // get next entry
-      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
-        // or finish the iteration
-        state.target = undefined;
-        return { value: undefined, done: true };
-      }
-      // return step by kind
-      if (kind == 'keys') return { value: entry.key, done: false };
-      if (kind == 'values') return { value: entry.value, done: false };
-      return { value: [entry.key, entry.value], done: false };
-    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
-
-    // add [@@species], 23.1.2.2, 23.2.2.2
-    setSpecies(CONSTRUCTOR_NAME);
-  }
-};
diff --git a/node_modules/core-js-pure/internals/collection-weak.js b/node_modules/core-js-pure/internals/collection-weak.js
deleted file mode 100644
index ac8a413..0000000
--- a/node_modules/core-js-pure/internals/collection-weak.js
+++ /dev/null
@@ -1,121 +0,0 @@
-'use strict';
-var redefineAll = require('../internals/redefine-all');
-var getWeakData = require('../internals/internal-metadata').getWeakData;
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var anInstance = require('../internals/an-instance');
-var iterate = require('../internals/iterate');
-var ArrayIterationModule = require('../internals/array-iteration');
-var $has = require('../internals/has');
-var InternalStateModule = require('../internals/internal-state');
-
-var setInternalState = InternalStateModule.set;
-var internalStateGetterFor = InternalStateModule.getterFor;
-var find = ArrayIterationModule.find;
-var findIndex = ArrayIterationModule.findIndex;
-var id = 0;
-
-// fallback for uncaught frozen keys
-var uncaughtFrozenStore = function (store) {
-  return store.frozen || (store.frozen = new UncaughtFrozenStore());
-};
-
-var UncaughtFrozenStore = function () {
-  this.entries = [];
-};
-
-var findUncaughtFrozen = function (store, key) {
-  return find(store.entries, function (it) {
-    return it[0] === key;
-  });
-};
-
-UncaughtFrozenStore.prototype = {
-  get: function (key) {
-    var entry = findUncaughtFrozen(this, key);
-    if (entry) return entry[1];
-  },
-  has: function (key) {
-    return !!findUncaughtFrozen(this, key);
-  },
-  set: function (key, value) {
-    var entry = findUncaughtFrozen(this, key);
-    if (entry) entry[1] = value;
-    else this.entries.push([key, value]);
-  },
-  'delete': function (key) {
-    var index = findIndex(this.entries, function (it) {
-      return it[0] === key;
-    });
-    if (~index) this.entries.splice(index, 1);
-    return !!~index;
-  }
-};
-
-module.exports = {
-  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
-    var C = wrapper(function (that, iterable) {
-      anInstance(that, C, CONSTRUCTOR_NAME);
-      setInternalState(that, {
-        type: CONSTRUCTOR_NAME,
-        id: id++,
-        frozen: undefined
-      });
-      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
-    });
-
-    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
-
-    var define = function (that, key, value) {
-      var state = getInternalState(that);
-      var data = getWeakData(anObject(key), true);
-      if (data === true) uncaughtFrozenStore(state).set(key, value);
-      else data[state.id] = value;
-      return that;
-    };
-
-    redefineAll(C.prototype, {
-      // 23.3.3.2 WeakMap.prototype.delete(key)
-      // 23.4.3.3 WeakSet.prototype.delete(value)
-      'delete': function (key) {
-        var state = getInternalState(this);
-        if (!isObject(key)) return false;
-        var data = getWeakData(key);
-        if (data === true) return uncaughtFrozenStore(state)['delete'](key);
-        return data && $has(data, state.id) && delete data[state.id];
-      },
-      // 23.3.3.4 WeakMap.prototype.has(key)
-      // 23.4.3.4 WeakSet.prototype.has(value)
-      has: function has(key) {
-        var state = getInternalState(this);
-        if (!isObject(key)) return false;
-        var data = getWeakData(key);
-        if (data === true) return uncaughtFrozenStore(state).has(key);
-        return data && $has(data, state.id);
-      }
-    });
-
-    redefineAll(C.prototype, IS_MAP ? {
-      // 23.3.3.3 WeakMap.prototype.get(key)
-      get: function get(key) {
-        var state = getInternalState(this);
-        if (isObject(key)) {
-          var data = getWeakData(key);
-          if (data === true) return uncaughtFrozenStore(state).get(key);
-          return data ? data[state.id] : undefined;
-        }
-      },
-      // 23.3.3.5 WeakMap.prototype.set(key, value)
-      set: function set(key, value) {
-        return define(this, key, value);
-      }
-    } : {
-      // 23.4.3.1 WeakSet.prototype.add(value)
-      add: function add(value) {
-        return define(this, value, true);
-      }
-    });
-
-    return C;
-  }
-};
diff --git a/node_modules/core-js-pure/internals/collection.js b/node_modules/core-js-pure/internals/collection.js
deleted file mode 100644
index a50e892..0000000
--- a/node_modules/core-js-pure/internals/collection.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-var $ = require('./export');
-var global = require('../internals/global');
-var InternalMetadataModule = require('../internals/internal-metadata');
-var fails = require('../internals/fails');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var iterate = require('../internals/iterate');
-var anInstance = require('../internals/an-instance');
-var isObject = require('../internals/is-object');
-var setToStringTag = require('../internals/set-to-string-tag');
-var defineProperty = require('../internals/object-define-property').f;
-var forEach = require('../internals/array-iteration').forEach;
-var DESCRIPTORS = require('../internals/descriptors');
-var InternalStateModule = require('../internals/internal-state');
-
-var setInternalState = InternalStateModule.set;
-var internalStateGetterFor = InternalStateModule.getterFor;
-
-module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
-  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
-  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
-  var ADDER = IS_MAP ? 'set' : 'add';
-  var NativeConstructor = global[CONSTRUCTOR_NAME];
-  var NativePrototype = NativeConstructor && NativeConstructor.prototype;
-  var exported = {};
-  var Constructor;
-
-  if (!DESCRIPTORS || typeof NativeConstructor != 'function'
-    || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); }))
-  ) {
-    // create collection constructor
-    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
-    InternalMetadataModule.REQUIRED = true;
-  } else {
-    Constructor = wrapper(function (target, iterable) {
-      setInternalState(anInstance(target, Constructor, CONSTRUCTOR_NAME), {
-        type: CONSTRUCTOR_NAME,
-        collection: new NativeConstructor()
-      });
-      if (iterable != undefined) iterate(iterable, target[ADDER], target, IS_MAP);
-    });
-
-    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
-
-    forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {
-      var IS_ADDER = KEY == 'add' || KEY == 'set';
-      if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) {
-        createNonEnumerableProperty(Constructor.prototype, KEY, function (a, b) {
-          var collection = getInternalState(this).collection;
-          if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
-          var result = collection[KEY](a === 0 ? 0 : a, b);
-          return IS_ADDER ? this : result;
-        });
-      }
-    });
-
-    IS_WEAK || defineProperty(Constructor.prototype, 'size', {
-      configurable: true,
-      get: function () {
-        return getInternalState(this).collection.size;
-      }
-    });
-  }
-
-  setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);
-
-  exported[CONSTRUCTOR_NAME] = Constructor;
-  $({ global: true, forced: true }, exported);
-
-  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
-
-  return Constructor;
-};
diff --git a/node_modules/core-js-pure/internals/composite-key.js b/node_modules/core-js-pure/internals/composite-key.js
deleted file mode 100644
index 68a38c9..0000000
--- a/node_modules/core-js-pure/internals/composite-key.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
-var Map = require('../modules/es.map');
-var WeakMap = require('../modules/es.weak-map');
-var create = require('../internals/object-create');
-var isObject = require('../internals/is-object');
-
-var Node = function () {
-  // keys
-  this.object = null;
-  this.symbol = null;
-  // child nodes
-  this.primitives = null;
-  this.objectsByIndex = create(null);
-};
-
-Node.prototype.get = function (key, initializer) {
-  return this[key] || (this[key] = initializer());
-};
-
-Node.prototype.next = function (i, it, IS_OBJECT) {
-  var store = IS_OBJECT
-    ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap())
-    : this.primitives || (this.primitives = new Map());
-  var entry = store.get(it);
-  if (!entry) store.set(it, entry = new Node());
-  return entry;
-};
-
-var root = new Node();
-
-module.exports = function () {
-  var active = root;
-  var length = arguments.length;
-  var i, it;
-  // for prevent leaking, start from objects
-  for (i = 0; i < length; i++) {
-    if (isObject(it = arguments[i])) active = active.next(i, it, true);
-  }
-  if (this === Object && active === root) throw TypeError('Composite keys must contain a non-primitive component');
-  for (i = 0; i < length; i++) {
-    if (!isObject(it = arguments[i])) active = active.next(i, it, false);
-  } return active;
-};
diff --git a/node_modules/core-js-pure/internals/copy-constructor-properties.js b/node_modules/core-js-pure/internals/copy-constructor-properties.js
deleted file mode 100644
index 214a819..0000000
--- a/node_modules/core-js-pure/internals/copy-constructor-properties.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var has = require('../internals/has');
-var ownKeys = require('../internals/own-keys');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-var definePropertyModule = require('../internals/object-define-property');
-
-module.exports = function (target, source) {
-  var keys = ownKeys(source);
-  var defineProperty = definePropertyModule.f;
-  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i];
-    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
-  }
-};
diff --git a/node_modules/core-js-pure/internals/correct-is-regexp-logic.js b/node_modules/core-js-pure/internals/correct-is-regexp-logic.js
deleted file mode 100644
index f0d753f..0000000
--- a/node_modules/core-js-pure/internals/correct-is-regexp-logic.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var MATCH = wellKnownSymbol('match');
-
-module.exports = function (METHOD_NAME) {
-  var regexp = /./;
-  try {
-    '/./'[METHOD_NAME](regexp);
-  } catch (e) {
-    try {
-      regexp[MATCH] = false;
-      return '/./'[METHOD_NAME](regexp);
-    } catch (f) { /* empty */ }
-  } return false;
-};
diff --git a/node_modules/core-js-pure/internals/correct-prototype-getter.js b/node_modules/core-js-pure/internals/correct-prototype-getter.js
deleted file mode 100644
index 6cd8f40..0000000
--- a/node_modules/core-js-pure/internals/correct-prototype-getter.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var fails = require('../internals/fails');
-
-module.exports = !fails(function () {
-  function F() { /* empty */ }
-  F.prototype.constructor = null;
-  return Object.getPrototypeOf(new F()) !== F.prototype;
-});
diff --git a/node_modules/core-js-pure/internals/create-html.js b/node_modules/core-js-pure/internals/create-html.js
deleted file mode 100644
index 57e560c..0000000
--- a/node_modules/core-js-pure/internals/create-html.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-var quot = /"/g;
-
-// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
-// https://tc39.github.io/ecma262/#sec-createhtml
-module.exports = function (string, tag, attribute, value) {
-  var S = String(requireObjectCoercible(string));
-  var p1 = '<' + tag;
-  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
-  return p1 + '>' + S + '</' + tag + '>';
-};
diff --git a/node_modules/core-js-pure/internals/create-iterator-constructor.js b/node_modules/core-js-pure/internals/create-iterator-constructor.js
deleted file mode 100644
index f9dbdb7..0000000
--- a/node_modules/core-js-pure/internals/create-iterator-constructor.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
-var create = require('../internals/object-create');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var setToStringTag = require('../internals/set-to-string-tag');
-var Iterators = require('../internals/iterators');
-
-var returnThis = function () { return this; };
-
-module.exports = function (IteratorConstructor, NAME, next) {
-  var TO_STRING_TAG = NAME + ' Iterator';
-  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
-  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
-  Iterators[TO_STRING_TAG] = returnThis;
-  return IteratorConstructor;
-};
diff --git a/node_modules/core-js-pure/internals/create-non-enumerable-property.js b/node_modules/core-js-pure/internals/create-non-enumerable-property.js
deleted file mode 100644
index bdaad25..0000000
--- a/node_modules/core-js-pure/internals/create-non-enumerable-property.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var definePropertyModule = require('../internals/object-define-property');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-
-module.exports = DESCRIPTORS ? function (object, key, value) {
-  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
-} : function (object, key, value) {
-  object[key] = value;
-  return object;
-};
diff --git a/node_modules/core-js-pure/internals/create-property-descriptor.js b/node_modules/core-js-pure/internals/create-property-descriptor.js
deleted file mode 100644
index 0905934..0000000
--- a/node_modules/core-js-pure/internals/create-property-descriptor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function (bitmap, value) {
-  return {
-    enumerable: !(bitmap & 1),
-    configurable: !(bitmap & 2),
-    writable: !(bitmap & 4),
-    value: value
-  };
-};
diff --git a/node_modules/core-js-pure/internals/create-property.js b/node_modules/core-js-pure/internals/create-property.js
deleted file mode 100644
index c27151a..0000000
--- a/node_modules/core-js-pure/internals/create-property.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var toPrimitive = require('../internals/to-primitive');
-var definePropertyModule = require('../internals/object-define-property');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-
-module.exports = function (object, key, value) {
-  var propertyKey = toPrimitive(key);
-  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
-  else object[propertyKey] = value;
-};
diff --git a/node_modules/core-js-pure/internals/date-to-iso-string.js b/node_modules/core-js-pure/internals/date-to-iso-string.js
deleted file mode 100644
index f22503a..0000000
--- a/node_modules/core-js-pure/internals/date-to-iso-string.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-var fails = require('../internals/fails');
-var padStart = require('../internals/string-pad').start;
-
-var abs = Math.abs;
-var DatePrototype = Date.prototype;
-var getTime = DatePrototype.getTime;
-var nativeDateToISOString = DatePrototype.toISOString;
-
-// `Date.prototype.toISOString` method implementation
-// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
-// PhantomJS / old WebKit fails here:
-module.exports = (fails(function () {
-  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
-}) || !fails(function () {
-  nativeDateToISOString.call(new Date(NaN));
-})) ? function toISOString() {
-  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
-  var date = this;
-  var year = date.getUTCFullYear();
-  var milliseconds = date.getUTCMilliseconds();
-  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
-  return sign + padStart(abs(year), sign ? 6 : 4, 0) +
-    '-' + padStart(date.getUTCMonth() + 1, 2, 0) +
-    '-' + padStart(date.getUTCDate(), 2, 0) +
-    'T' + padStart(date.getUTCHours(), 2, 0) +
-    ':' + padStart(date.getUTCMinutes(), 2, 0) +
-    ':' + padStart(date.getUTCSeconds(), 2, 0) +
-    '.' + padStart(milliseconds, 3, 0) +
-    'Z';
-} : nativeDateToISOString;
diff --git a/node_modules/core-js-pure/internals/date-to-primitive.js b/node_modules/core-js-pure/internals/date-to-primitive.js
deleted file mode 100644
index fc334f1..0000000
--- a/node_modules/core-js-pure/internals/date-to-primitive.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var anObject = require('../internals/an-object');
-var toPrimitive = require('../internals/to-primitive');
-
-module.exports = function (hint) {
-  if (hint !== 'string' && hint !== 'number' && hint !== 'default') {
-    throw TypeError('Incorrect hint');
-  } return toPrimitive(anObject(this), hint !== 'number');
-};
diff --git a/node_modules/core-js-pure/internals/define-iterator.js b/node_modules/core-js-pure/internals/define-iterator.js
deleted file mode 100644
index 7f829bf..0000000
--- a/node_modules/core-js-pure/internals/define-iterator.js
+++ /dev/null
@@ -1,90 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var setPrototypeOf = require('../internals/object-set-prototype-of');
-var setToStringTag = require('../internals/set-to-string-tag');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefine = require('../internals/redefine');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-var Iterators = require('../internals/iterators');
-var IteratorsCore = require('../internals/iterators-core');
-
-var IteratorPrototype = IteratorsCore.IteratorPrototype;
-var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
-var ITERATOR = wellKnownSymbol('iterator');
-var KEYS = 'keys';
-var VALUES = 'values';
-var ENTRIES = 'entries';
-
-var returnThis = function () { return this; };
-
-module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
-  createIteratorConstructor(IteratorConstructor, NAME, next);
-
-  var getIterationMethod = function (KIND) {
-    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
-    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
-    switch (KIND) {
-      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
-      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
-      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
-    } return function () { return new IteratorConstructor(this); };
-  };
-
-  var TO_STRING_TAG = NAME + ' Iterator';
-  var INCORRECT_VALUES_NAME = false;
-  var IterablePrototype = Iterable.prototype;
-  var nativeIterator = IterablePrototype[ITERATOR]
-    || IterablePrototype['@@iterator']
-    || DEFAULT && IterablePrototype[DEFAULT];
-  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
-  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
-  var CurrentIteratorPrototype, methods, KEY;
-
-  // fix native
-  if (anyNativeIterator) {
-    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
-    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
-      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
-        if (setPrototypeOf) {
-          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
-        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
-          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
-        }
-      }
-      // Set @@toStringTag to native iterators
-      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
-      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
-    }
-  }
-
-  // fix Array#{values, @@iterator}.name in V8 / FF
-  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
-    INCORRECT_VALUES_NAME = true;
-    defaultIterator = function values() { return nativeIterator.call(this); };
-  }
-
-  // define iterator
-  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
-    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
-  }
-  Iterators[NAME] = defaultIterator;
-
-  // export additional methods
-  if (DEFAULT) {
-    methods = {
-      values: getIterationMethod(VALUES),
-      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
-      entries: getIterationMethod(ENTRIES)
-    };
-    if (FORCED) for (KEY in methods) {
-      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
-        redefine(IterablePrototype, KEY, methods[KEY]);
-      }
-    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
-  }
-
-  return methods;
-};
diff --git a/node_modules/core-js-pure/internals/define-well-known-symbol.js b/node_modules/core-js-pure/internals/define-well-known-symbol.js
deleted file mode 100644
index e547945..0000000
--- a/node_modules/core-js-pure/internals/define-well-known-symbol.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var path = require('../internals/path');
-var has = require('../internals/has');
-var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
-var defineProperty = require('../internals/object-define-property').f;
-
-module.exports = function (NAME) {
-  var Symbol = path.Symbol || (path.Symbol = {});
-  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {
-    value: wrappedWellKnownSymbolModule.f(NAME)
-  });
-};
diff --git a/node_modules/core-js-pure/internals/descriptors.js b/node_modules/core-js-pure/internals/descriptors.js
deleted file mode 100644
index 2673a79..0000000
--- a/node_modules/core-js-pure/internals/descriptors.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var fails = require('../internals/fails');
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !fails(function () {
-  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
-});
diff --git a/node_modules/core-js-pure/internals/document-create-element.js b/node_modules/core-js-pure/internals/document-create-element.js
deleted file mode 100644
index cc6abae..0000000
--- a/node_modules/core-js-pure/internals/document-create-element.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var global = require('../internals/global');
-var isObject = require('../internals/is-object');
-
-var document = global.document;
-// typeof document.createElement is 'object' in old IE
-var EXISTS = isObject(document) && isObject(document.createElement);
-
-module.exports = function (it) {
-  return EXISTS ? document.createElement(it) : {};
-};
diff --git a/node_modules/core-js-pure/internals/dom-iterables.js b/node_modules/core-js-pure/internals/dom-iterables.js
deleted file mode 100644
index b04e872..0000000
--- a/node_modules/core-js-pure/internals/dom-iterables.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// iterable DOM collections
-// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
-module.exports = {
-  CSSRuleList: 0,
-  CSSStyleDeclaration: 0,
-  CSSValueList: 0,
-  ClientRectList: 0,
-  DOMRectList: 0,
-  DOMStringList: 0,
-  DOMTokenList: 1,
-  DataTransferItemList: 0,
-  FileList: 0,
-  HTMLAllCollection: 0,
-  HTMLCollection: 0,
-  HTMLFormElement: 0,
-  HTMLSelectElement: 0,
-  MediaList: 0,
-  MimeTypeArray: 0,
-  NamedNodeMap: 0,
-  NodeList: 1,
-  PaintRequestList: 0,
-  Plugin: 0,
-  PluginArray: 0,
-  SVGLengthList: 0,
-  SVGNumberList: 0,
-  SVGPathSegList: 0,
-  SVGPointList: 0,
-  SVGStringList: 0,
-  SVGTransformList: 0,
-  SourceBufferList: 0,
-  StyleSheetList: 0,
-  TextTrackCueList: 0,
-  TextTrackList: 0,
-  TouchList: 0
-};
diff --git a/node_modules/core-js-pure/internals/engine-is-ios.js b/node_modules/core-js-pure/internals/engine-is-ios.js
deleted file mode 100644
index 6d68296..0000000
--- a/node_modules/core-js-pure/internals/engine-is-ios.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var userAgent = require('../internals/engine-user-agent');
-
-module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);
diff --git a/node_modules/core-js-pure/internals/engine-user-agent.js b/node_modules/core-js-pure/internals/engine-user-agent.js
deleted file mode 100644
index 30dfa9d..0000000
--- a/node_modules/core-js-pure/internals/engine-user-agent.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var getBuiltIn = require('../internals/get-built-in');
-
-module.exports = getBuiltIn('navigator', 'userAgent') || '';
diff --git a/node_modules/core-js-pure/internals/engine-v8-version.js b/node_modules/core-js-pure/internals/engine-v8-version.js
deleted file mode 100644
index 1ff22c3..0000000
--- a/node_modules/core-js-pure/internals/engine-v8-version.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var global = require('../internals/global');
-var userAgent = require('../internals/engine-user-agent');
-
-var process = global.process;
-var versions = process && process.versions;
-var v8 = versions && versions.v8;
-var match, version;
-
-if (v8) {
-  match = v8.split('.');
-  version = match[0] + match[1];
-} else if (userAgent) {
-  match = userAgent.match(/Edge\/(\d+)/);
-  if (!match || match[1] >= 74) {
-    match = userAgent.match(/Chrome\/(\d+)/);
-    if (match) version = match[1];
-  }
-}
-
-module.exports = version && +version;
diff --git a/node_modules/core-js-pure/internals/entry-unbind.js b/node_modules/core-js-pure/internals/entry-unbind.js
deleted file mode 100644
index f59163a..0000000
--- a/node_modules/core-js-pure/internals/entry-unbind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var getBuiltIn = require('../internals/get-built-in');
-
-module.exports = getBuiltIn;
diff --git a/node_modules/core-js-pure/internals/entry-virtual.js b/node_modules/core-js-pure/internals/entry-virtual.js
deleted file mode 100644
index 3ef2ebf..0000000
--- a/node_modules/core-js-pure/internals/entry-virtual.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var path = require('../internals/path');
-
-module.exports = function (CONSTRUCTOR) {
-  return path[CONSTRUCTOR + 'Prototype'];
-};
diff --git a/node_modules/core-js-pure/internals/enum-bug-keys.js b/node_modules/core-js-pure/internals/enum-bug-keys.js
deleted file mode 100644
index 2ca413b..0000000
--- a/node_modules/core-js-pure/internals/enum-bug-keys.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// IE8- don't enum bug keys
-module.exports = [
-  'constructor',
-  'hasOwnProperty',
-  'isPrototypeOf',
-  'propertyIsEnumerable',
-  'toLocaleString',
-  'toString',
-  'valueOf'
-];
diff --git a/node_modules/core-js-pure/internals/export.js b/node_modules/core-js-pure/internals/export.js
deleted file mode 100644
index 3369fea..0000000
--- a/node_modules/core-js-pure/internals/export.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-var global = require('../internals/global');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var isForced = require('../internals/is-forced');
-var path = require('../internals/path');
-var bind = require('../internals/function-bind-context');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-
-var wrapConstructor = function (NativeConstructor) {
-  var Wrapper = function (a, b, c) {
-    if (this instanceof NativeConstructor) {
-      switch (arguments.length) {
-        case 0: return new NativeConstructor();
-        case 1: return new NativeConstructor(a);
-        case 2: return new NativeConstructor(a, b);
-      } return new NativeConstructor(a, b, c);
-    } return NativeConstructor.apply(this, arguments);
-  };
-  Wrapper.prototype = NativeConstructor.prototype;
-  return Wrapper;
-};
-
-/*
-  options.target      - name of the target object
-  options.global      - target is the global object
-  options.stat        - export as static methods of target
-  options.proto       - export as prototype methods of target
-  options.real        - real prototype method for the `pure` version
-  options.forced      - export even if the native feature is available
-  options.bind        - bind methods to the target, required for the `pure` version
-  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
-  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
-  options.sham        - add a flag to not completely full polyfills
-  options.enumerable  - export as enumerable property
-  options.noTargetGet - prevent calling a getter on target
-*/
-module.exports = function (options, source) {
-  var TARGET = options.target;
-  var GLOBAL = options.global;
-  var STATIC = options.stat;
-  var PROTO = options.proto;
-
-  var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;
-
-  var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {});
-  var targetPrototype = target.prototype;
-
-  var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;
-  var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;
-
-  for (key in source) {
-    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
-    // contains in native
-    USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key);
-
-    targetProperty = target[key];
-
-    if (USE_NATIVE) if (options.noTargetGet) {
-      descriptor = getOwnPropertyDescriptor(nativeSource, key);
-      nativeProperty = descriptor && descriptor.value;
-    } else nativeProperty = nativeSource[key];
-
-    // export native or implementation
-    sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];
-
-    if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue;
-
-    // bind timers to global for call from export context
-    if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);
-    // wrap global constructors for prevent changs in this version
-    else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);
-    // make static versions for prototype methods
-    else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty);
-    // default case
-    else resultProperty = sourceProperty;
-
-    // add a flag to not completely full polyfills
-    if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {
-      createNonEnumerableProperty(resultProperty, 'sham', true);
-    }
-
-    target[key] = resultProperty;
-
-    if (PROTO) {
-      VIRTUAL_PROTOTYPE = TARGET + 'Prototype';
-      if (!has(path, VIRTUAL_PROTOTYPE)) {
-        createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});
-      }
-      // export virtual prototype methods
-      path[VIRTUAL_PROTOTYPE][key] = sourceProperty;
-      // export real prototype methods
-      if (options.real && targetPrototype && !targetPrototype[key]) {
-        createNonEnumerableProperty(targetPrototype, key, sourceProperty);
-      }
-    }
-  }
-};
diff --git a/node_modules/core-js-pure/internals/fails.js b/node_modules/core-js-pure/internals/fails.js
deleted file mode 100644
index f398e2d..0000000
--- a/node_modules/core-js-pure/internals/fails.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function (exec) {
-  try {
-    return !!exec();
-  } catch (error) {
-    return true;
-  }
-};
diff --git a/node_modules/core-js-pure/internals/fix-regexp-well-known-symbol-logic.js b/node_modules/core-js-pure/internals/fix-regexp-well-known-symbol-logic.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/fix-regexp-well-known-symbol-logic.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/flatten-into-array.js b/node_modules/core-js-pure/internals/flatten-into-array.js
deleted file mode 100644
index df29916..0000000
--- a/node_modules/core-js-pure/internals/flatten-into-array.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-var isArray = require('../internals/is-array');
-var toLength = require('../internals/to-length');
-var bind = require('../internals/function-bind-context');
-
-// `FlattenIntoArray` abstract operation
-// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
-var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
-  var targetIndex = start;
-  var sourceIndex = 0;
-  var mapFn = mapper ? bind(mapper, thisArg, 3) : false;
-  var element;
-
-  while (sourceIndex < sourceLen) {
-    if (sourceIndex in source) {
-      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
-
-      if (depth > 0 && isArray(element)) {
-        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
-      } else {
-        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
-        target[targetIndex] = element;
-      }
-
-      targetIndex++;
-    }
-    sourceIndex++;
-  }
-  return targetIndex;
-};
-
-module.exports = flattenIntoArray;
diff --git a/node_modules/core-js-pure/internals/freezing.js b/node_modules/core-js-pure/internals/freezing.js
deleted file mode 100644
index 0ac9fbf..0000000
--- a/node_modules/core-js-pure/internals/freezing.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var fails = require('../internals/fails');
-
-module.exports = !fails(function () {
-  return Object.isExtensible(Object.preventExtensions({}));
-});
diff --git a/node_modules/core-js-pure/internals/function-bind-context.js b/node_modules/core-js-pure/internals/function-bind-context.js
deleted file mode 100644
index 96a7f49..0000000
--- a/node_modules/core-js-pure/internals/function-bind-context.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var aFunction = require('../internals/a-function');
-
-// optional / simple context binding
-module.exports = function (fn, that, length) {
-  aFunction(fn);
-  if (that === undefined) return fn;
-  switch (length) {
-    case 0: return function () {
-      return fn.call(that);
-    };
-    case 1: return function (a) {
-      return fn.call(that, a);
-    };
-    case 2: return function (a, b) {
-      return fn.call(that, a, b);
-    };
-    case 3: return function (a, b, c) {
-      return fn.call(that, a, b, c);
-    };
-  }
-  return function (/* ...args */) {
-    return fn.apply(that, arguments);
-  };
-};
diff --git a/node_modules/core-js-pure/internals/function-bind.js b/node_modules/core-js-pure/internals/function-bind.js
deleted file mode 100644
index 6e1e81d..0000000
--- a/node_modules/core-js-pure/internals/function-bind.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-var aFunction = require('../internals/a-function');
-var isObject = require('../internals/is-object');
-
-var slice = [].slice;
-var factories = {};
-
-var construct = function (C, argsLength, args) {
-  if (!(argsLength in factories)) {
-    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
-    // eslint-disable-next-line no-new-func
-    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
-  } return factories[argsLength](C, args);
-};
-
-// `Function.prototype.bind` method implementation
-// https://tc39.github.io/ecma262/#sec-function.prototype.bind
-module.exports = Function.bind || function bind(that /* , ...args */) {
-  var fn = aFunction(this);
-  var partArgs = slice.call(arguments, 1);
-  var boundFunction = function bound(/* args... */) {
-    var args = partArgs.concat(slice.call(arguments));
-    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
-  };
-  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
-  return boundFunction;
-};
diff --git a/node_modules/core-js-pure/internals/get-async-iterator-method.js b/node_modules/core-js-pure/internals/get-async-iterator-method.js
deleted file mode 100644
index 0821b08..0000000
--- a/node_modules/core-js-pure/internals/get-async-iterator-method.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var getIteratorMethod = require('../internals/get-iterator-method');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
-
-module.exports = function (it) {
-  var method = it[ASYNC_ITERATOR];
-  return method === undefined ? getIteratorMethod(it) : method;
-};
diff --git a/node_modules/core-js-pure/internals/get-built-in.js b/node_modules/core-js-pure/internals/get-built-in.js
deleted file mode 100644
index 8fcff26..0000000
--- a/node_modules/core-js-pure/internals/get-built-in.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var path = require('../internals/path');
-var global = require('../internals/global');
-
-var aFunction = function (variable) {
-  return typeof variable == 'function' ? variable : undefined;
-};
-
-module.exports = function (namespace, method) {
-  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
-    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
-};
diff --git a/node_modules/core-js-pure/internals/get-iterator-method.js b/node_modules/core-js-pure/internals/get-iterator-method.js
deleted file mode 100644
index cfac310..0000000
--- a/node_modules/core-js-pure/internals/get-iterator-method.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var classof = require('../internals/classof');
-var Iterators = require('../internals/iterators');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var ITERATOR = wellKnownSymbol('iterator');
-
-module.exports = function (it) {
-  if (it != undefined) return it[ITERATOR]
-    || it['@@iterator']
-    || Iterators[classof(it)];
-};
diff --git a/node_modules/core-js-pure/internals/get-iterator.js b/node_modules/core-js-pure/internals/get-iterator.js
deleted file mode 100644
index f7f7f8e..0000000
--- a/node_modules/core-js-pure/internals/get-iterator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var anObject = require('../internals/an-object');
-var getIteratorMethod = require('../internals/get-iterator-method');
-
-module.exports = function (it) {
-  var iteratorMethod = getIteratorMethod(it);
-  if (typeof iteratorMethod != 'function') {
-    throw TypeError(String(it) + ' is not iterable');
-  } return anObject(iteratorMethod.call(it));
-};
diff --git a/node_modules/core-js-pure/internals/get-map-iterator.js b/node_modules/core-js-pure/internals/get-map-iterator.js
deleted file mode 100644
index 1c608f3..0000000
--- a/node_modules/core-js-pure/internals/get-map-iterator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var IS_PURE = require('../internals/is-pure');
-var getIterator = require('../internals/get-iterator');
-
-module.exports = IS_PURE ? getIterator : function (it) {
-  // eslint-disable-next-line no-undef
-  return Map.prototype.entries.call(it);
-};
diff --git a/node_modules/core-js-pure/internals/get-set-iterator.js b/node_modules/core-js-pure/internals/get-set-iterator.js
deleted file mode 100644
index 4560c2e..0000000
--- a/node_modules/core-js-pure/internals/get-set-iterator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var IS_PURE = require('../internals/is-pure');
-var getIterator = require('../internals/get-iterator');
-
-module.exports = IS_PURE ? getIterator : function (it) {
-  // eslint-disable-next-line no-undef
-  return Set.prototype.values.call(it);
-};
diff --git a/node_modules/core-js-pure/internals/global.js b/node_modules/core-js-pure/internals/global.js
deleted file mode 100644
index cf00638..0000000
--- a/node_modules/core-js-pure/internals/global.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var check = function (it) {
-  return it && it.Math == Math && it;
-};
-
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-module.exports =
-  // eslint-disable-next-line no-undef
-  check(typeof globalThis == 'object' && globalThis) ||
-  check(typeof window == 'object' && window) ||
-  check(typeof self == 'object' && self) ||
-  check(typeof global == 'object' && global) ||
-  // eslint-disable-next-line no-new-func
-  Function('return this')();
diff --git a/node_modules/core-js-pure/internals/has.js b/node_modules/core-js-pure/internals/has.js
deleted file mode 100644
index 0925c41..0000000
--- a/node_modules/core-js-pure/internals/has.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var hasOwnProperty = {}.hasOwnProperty;
-
-module.exports = function (it, key) {
-  return hasOwnProperty.call(it, key);
-};
diff --git a/node_modules/core-js-pure/internals/hidden-keys.js b/node_modules/core-js-pure/internals/hidden-keys.js
deleted file mode 100644
index f053ebf..0000000
--- a/node_modules/core-js-pure/internals/hidden-keys.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {};
diff --git a/node_modules/core-js-pure/internals/host-report-errors.js b/node_modules/core-js-pure/internals/host-report-errors.js
deleted file mode 100644
index dc84a6c..0000000
--- a/node_modules/core-js-pure/internals/host-report-errors.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var global = require('../internals/global');
-
-module.exports = function (a, b) {
-  var console = global.console;
-  if (console && console.error) {
-    arguments.length === 1 ? console.error(a) : console.error(a, b);
-  }
-};
diff --git a/node_modules/core-js-pure/internals/html.js b/node_modules/core-js-pure/internals/html.js
deleted file mode 100644
index 23defa6..0000000
--- a/node_modules/core-js-pure/internals/html.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var getBuiltIn = require('../internals/get-built-in');
-
-module.exports = getBuiltIn('document', 'documentElement');
diff --git a/node_modules/core-js-pure/internals/ie8-dom-define.js b/node_modules/core-js-pure/internals/ie8-dom-define.js
deleted file mode 100644
index 6696ff9..0000000
--- a/node_modules/core-js-pure/internals/ie8-dom-define.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var fails = require('../internals/fails');
-var createElement = require('../internals/document-create-element');
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !DESCRIPTORS && !fails(function () {
-  return Object.defineProperty(createElement('div'), 'a', {
-    get: function () { return 7; }
-  }).a != 7;
-});
diff --git a/node_modules/core-js-pure/internals/ieee754.js b/node_modules/core-js-pure/internals/ieee754.js
deleted file mode 100644
index 3470d57..0000000
--- a/node_modules/core-js-pure/internals/ieee754.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// IEEE754 conversions based on https://github.com/feross/ieee754
-// eslint-disable-next-line no-shadow-restricted-names
-var Infinity = 1 / 0;
-var abs = Math.abs;
-var pow = Math.pow;
-var floor = Math.floor;
-var log = Math.log;
-var LN2 = Math.LN2;
-
-var pack = function (number, mantissaLength, bytes) {
-  var buffer = new Array(bytes);
-  var exponentLength = bytes * 8 - mantissaLength - 1;
-  var eMax = (1 << exponentLength) - 1;
-  var eBias = eMax >> 1;
-  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;
-  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;
-  var index = 0;
-  var exponent, mantissa, c;
-  number = abs(number);
-  // eslint-disable-next-line no-self-compare
-  if (number != number || number === Infinity) {
-    // eslint-disable-next-line no-self-compare
-    mantissa = number != number ? 1 : 0;
-    exponent = eMax;
-  } else {
-    exponent = floor(log(number) / LN2);
-    if (number * (c = pow(2, -exponent)) < 1) {
-      exponent--;
-      c *= 2;
-    }
-    if (exponent + eBias >= 1) {
-      number += rt / c;
-    } else {
-      number += rt * pow(2, 1 - eBias);
-    }
-    if (number * c >= 2) {
-      exponent++;
-      c /= 2;
-    }
-    if (exponent + eBias >= eMax) {
-      mantissa = 0;
-      exponent = eMax;
-    } else if (exponent + eBias >= 1) {
-      mantissa = (number * c - 1) * pow(2, mantissaLength);
-      exponent = exponent + eBias;
-    } else {
-      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);
-      exponent = 0;
-    }
-  }
-  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);
-  exponent = exponent << mantissaLength | mantissa;
-  exponentLength += mantissaLength;
-  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);
-  buffer[--index] |= sign * 128;
-  return buffer;
-};
-
-var unpack = function (buffer, mantissaLength) {
-  var bytes = buffer.length;
-  var exponentLength = bytes * 8 - mantissaLength - 1;
-  var eMax = (1 << exponentLength) - 1;
-  var eBias = eMax >> 1;
-  var nBits = exponentLength - 7;
-  var index = bytes - 1;
-  var sign = buffer[index--];
-  var exponent = sign & 127;
-  var mantissa;
-  sign >>= 7;
-  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);
-  mantissa = exponent & (1 << -nBits) - 1;
-  exponent >>= -nBits;
-  nBits += mantissaLength;
-  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);
-  if (exponent === 0) {
-    exponent = 1 - eBias;
-  } else if (exponent === eMax) {
-    return mantissa ? NaN : sign ? -Infinity : Infinity;
-  } else {
-    mantissa = mantissa + pow(2, mantissaLength);
-    exponent = exponent - eBias;
-  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);
-};
-
-module.exports = {
-  pack: pack,
-  unpack: unpack
-};
diff --git a/node_modules/core-js-pure/internals/indexed-object.js b/node_modules/core-js-pure/internals/indexed-object.js
deleted file mode 100644
index 2aa25b5..0000000
--- a/node_modules/core-js-pure/internals/indexed-object.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var fails = require('../internals/fails');
-var classof = require('../internals/classof-raw');
-
-var split = ''.split;
-
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-module.exports = fails(function () {
-  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
-  // eslint-disable-next-line no-prototype-builtins
-  return !Object('z').propertyIsEnumerable(0);
-}) ? function (it) {
-  return classof(it) == 'String' ? split.call(it, '') : Object(it);
-} : Object;
diff --git a/node_modules/core-js-pure/internals/inherit-if-required.js b/node_modules/core-js-pure/internals/inherit-if-required.js
deleted file mode 100644
index a033b0c..0000000
--- a/node_modules/core-js-pure/internals/inherit-if-required.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var isObject = require('../internals/is-object');
-var setPrototypeOf = require('../internals/object-set-prototype-of');
-
-// makes subclassing work correct for wrapped built-ins
-module.exports = function ($this, dummy, Wrapper) {
-  var NewTarget, NewTargetPrototype;
-  if (
-    // it can work only with native `setPrototypeOf`
-    setPrototypeOf &&
-    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
-    typeof (NewTarget = dummy.constructor) == 'function' &&
-    NewTarget !== Wrapper &&
-    isObject(NewTargetPrototype = NewTarget.prototype) &&
-    NewTargetPrototype !== Wrapper.prototype
-  ) setPrototypeOf($this, NewTargetPrototype);
-  return $this;
-};
diff --git a/node_modules/core-js-pure/internals/inspect-source.js b/node_modules/core-js-pure/internals/inspect-source.js
deleted file mode 100644
index 9577809..0000000
--- a/node_modules/core-js-pure/internals/inspect-source.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var store = require('../internals/shared-store');
-
-var functionToString = Function.toString;
-
-// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
-if (typeof store.inspectSource != 'function') {
-  store.inspectSource = function (it) {
-    return functionToString.call(it);
-  };
-}
-
-module.exports = store.inspectSource;
diff --git a/node_modules/core-js-pure/internals/internal-metadata.js b/node_modules/core-js-pure/internals/internal-metadata.js
deleted file mode 100644
index d70c48c..0000000
--- a/node_modules/core-js-pure/internals/internal-metadata.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var hiddenKeys = require('../internals/hidden-keys');
-var isObject = require('../internals/is-object');
-var has = require('../internals/has');
-var defineProperty = require('../internals/object-define-property').f;
-var uid = require('../internals/uid');
-var FREEZING = require('../internals/freezing');
-
-var METADATA = uid('meta');
-var id = 0;
-
-var isExtensible = Object.isExtensible || function () {
-  return true;
-};
-
-var setMetadata = function (it) {
-  defineProperty(it, METADATA, { value: {
-    objectID: 'O' + ++id, // object ID
-    weakData: {}          // weak collections IDs
-  } });
-};
-
-var fastKey = function (it, create) {
-  // return a primitive with prefix
-  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-  if (!has(it, METADATA)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return 'F';
-    // not necessary to add metadata
-    if (!create) return 'E';
-    // add missing metadata
-    setMetadata(it);
-  // return object ID
-  } return it[METADATA].objectID;
-};
-
-var getWeakData = function (it, create) {
-  if (!has(it, METADATA)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return true;
-    // not necessary to add metadata
-    if (!create) return false;
-    // add missing metadata
-    setMetadata(it);
-  // return the store of weak collections IDs
-  } return it[METADATA].weakData;
-};
-
-// add metadata on freeze-family methods calling
-var onFreeze = function (it) {
-  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
-  return it;
-};
-
-var meta = module.exports = {
-  REQUIRED: false,
-  fastKey: fastKey,
-  getWeakData: getWeakData,
-  onFreeze: onFreeze
-};
-
-hiddenKeys[METADATA] = true;
diff --git a/node_modules/core-js-pure/internals/internal-state.js b/node_modules/core-js-pure/internals/internal-state.js
deleted file mode 100644
index 18c402d..0000000
--- a/node_modules/core-js-pure/internals/internal-state.js
+++ /dev/null
@@ -1,61 +0,0 @@
-var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
-var global = require('../internals/global');
-var isObject = require('../internals/is-object');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var objectHas = require('../internals/has');
-var sharedKey = require('../internals/shared-key');
-var hiddenKeys = require('../internals/hidden-keys');
-
-var WeakMap = global.WeakMap;
-var set, get, has;
-
-var enforce = function (it) {
-  return has(it) ? get(it) : set(it, {});
-};
-
-var getterFor = function (TYPE) {
-  return function (it) {
-    var state;
-    if (!isObject(it) || (state = get(it)).type !== TYPE) {
-      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
-    } return state;
-  };
-};
-
-if (NATIVE_WEAK_MAP) {
-  var store = new WeakMap();
-  var wmget = store.get;
-  var wmhas = store.has;
-  var wmset = store.set;
-  set = function (it, metadata) {
-    wmset.call(store, it, metadata);
-    return metadata;
-  };
-  get = function (it) {
-    return wmget.call(store, it) || {};
-  };
-  has = function (it) {
-    return wmhas.call(store, it);
-  };
-} else {
-  var STATE = sharedKey('state');
-  hiddenKeys[STATE] = true;
-  set = function (it, metadata) {
-    createNonEnumerableProperty(it, STATE, metadata);
-    return metadata;
-  };
-  get = function (it) {
-    return objectHas(it, STATE) ? it[STATE] : {};
-  };
-  has = function (it) {
-    return objectHas(it, STATE);
-  };
-}
-
-module.exports = {
-  set: set,
-  get: get,
-  has: has,
-  enforce: enforce,
-  getterFor: getterFor
-};
diff --git a/node_modules/core-js-pure/internals/is-array-iterator-method.js b/node_modules/core-js-pure/internals/is-array-iterator-method.js
deleted file mode 100644
index ab0ebe1..0000000
--- a/node_modules/core-js-pure/internals/is-array-iterator-method.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var Iterators = require('../internals/iterators');
-
-var ITERATOR = wellKnownSymbol('iterator');
-var ArrayPrototype = Array.prototype;
-
-// check on default Array iterator
-module.exports = function (it) {
-  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
-};
diff --git a/node_modules/core-js-pure/internals/is-array.js b/node_modules/core-js-pure/internals/is-array.js
deleted file mode 100644
index 757515d..0000000
--- a/node_modules/core-js-pure/internals/is-array.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var classof = require('../internals/classof-raw');
-
-// `IsArray` abstract operation
-// https://tc39.github.io/ecma262/#sec-isarray
-module.exports = Array.isArray || function isArray(arg) {
-  return classof(arg) == 'Array';
-};
diff --git a/node_modules/core-js-pure/internals/is-forced.js b/node_modules/core-js-pure/internals/is-forced.js
deleted file mode 100644
index cae014f..0000000
--- a/node_modules/core-js-pure/internals/is-forced.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var fails = require('../internals/fails');
-
-var replacement = /#|\.prototype\./;
-
-var isForced = function (feature, detection) {
-  var value = data[normalize(feature)];
-  return value == POLYFILL ? true
-    : value == NATIVE ? false
-    : typeof detection == 'function' ? fails(detection)
-    : !!detection;
-};
-
-var normalize = isForced.normalize = function (string) {
-  return String(string).replace(replacement, '.').toLowerCase();
-};
-
-var data = isForced.data = {};
-var NATIVE = isForced.NATIVE = 'N';
-var POLYFILL = isForced.POLYFILL = 'P';
-
-module.exports = isForced;
diff --git a/node_modules/core-js-pure/internals/is-integer.js b/node_modules/core-js-pure/internals/is-integer.js
deleted file mode 100644
index df16086..0000000
--- a/node_modules/core-js-pure/internals/is-integer.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var isObject = require('../internals/is-object');
-
-var floor = Math.floor;
-
-// `Number.isInteger` method implementation
-// https://tc39.github.io/ecma262/#sec-number.isinteger
-module.exports = function isInteger(it) {
-  return !isObject(it) && isFinite(it) && floor(it) === it;
-};
diff --git a/node_modules/core-js-pure/internals/is-iterable.js b/node_modules/core-js-pure/internals/is-iterable.js
deleted file mode 100644
index f33bb2d..0000000
--- a/node_modules/core-js-pure/internals/is-iterable.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var classof = require('../internals/classof');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var Iterators = require('../internals/iterators');
-
-var ITERATOR = wellKnownSymbol('iterator');
-
-module.exports = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
diff --git a/node_modules/core-js-pure/internals/is-object.js b/node_modules/core-js-pure/internals/is-object.js
deleted file mode 100644
index dda6e04..0000000
--- a/node_modules/core-js-pure/internals/is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function (it) {
-  return typeof it === 'object' ? it !== null : typeof it === 'function';
-};
diff --git a/node_modules/core-js-pure/internals/is-pure.js b/node_modules/core-js-pure/internals/is-pure.js
deleted file mode 100644
index ec01c2c..0000000
--- a/node_modules/core-js-pure/internals/is-pure.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = true;
diff --git a/node_modules/core-js-pure/internals/is-regexp.js b/node_modules/core-js-pure/internals/is-regexp.js
deleted file mode 100644
index e2c7247..0000000
--- a/node_modules/core-js-pure/internals/is-regexp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var isObject = require('../internals/is-object');
-var classof = require('../internals/classof-raw');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var MATCH = wellKnownSymbol('match');
-
-// `IsRegExp` abstract operation
-// https://tc39.github.io/ecma262/#sec-isregexp
-module.exports = function (it) {
-  var isRegExp;
-  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
-};
diff --git a/node_modules/core-js-pure/internals/iterate.js b/node_modules/core-js-pure/internals/iterate.js
deleted file mode 100644
index a68c416..0000000
--- a/node_modules/core-js-pure/internals/iterate.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var anObject = require('../internals/an-object');
-var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
-var toLength = require('../internals/to-length');
-var bind = require('../internals/function-bind-context');
-var getIteratorMethod = require('../internals/get-iterator-method');
-var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
-
-var Result = function (stopped, result) {
-  this.stopped = stopped;
-  this.result = result;
-};
-
-var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {
-  var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);
-  var iterator, iterFn, index, length, result, next, step;
-
-  if (IS_ITERATOR) {
-    iterator = iterable;
-  } else {
-    iterFn = getIteratorMethod(iterable);
-    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');
-    // optimisation for array iterators
-    if (isArrayIteratorMethod(iterFn)) {
-      for (index = 0, length = toLength(iterable.length); length > index; index++) {
-        result = AS_ENTRIES
-          ? boundFunction(anObject(step = iterable[index])[0], step[1])
-          : boundFunction(iterable[index]);
-        if (result && result instanceof Result) return result;
-      } return new Result(false);
-    }
-    iterator = iterFn.call(iterable);
-  }
-
-  next = iterator.next;
-  while (!(step = next.call(iterator)).done) {
-    result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);
-    if (typeof result == 'object' && result && result instanceof Result) return result;
-  } return new Result(false);
-};
-
-iterate.stop = function (result) {
-  return new Result(true, result);
-};
diff --git a/node_modules/core-js-pure/internals/iterator-create-proxy.js b/node_modules/core-js-pure/internals/iterator-create-proxy.js
deleted file mode 100644
index 951db73..0000000
--- a/node_modules/core-js-pure/internals/iterator-create-proxy.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-var path = require('../internals/path');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var create = require('../internals/object-create');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefineAll = require('../internals/redefine-all');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var InternalStateModule = require('../internals/internal-state');
-
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.get;
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-var $return = function (value) {
-  var iterator = getInternalState(this).iterator;
-  var $$return = iterator['return'];
-  return $$return === undefined ? { done: true, value: value } : anObject($$return.call(iterator, value));
-};
-
-var $throw = function (value) {
-  var iterator = getInternalState(this).iterator;
-  var $$throw = iterator['throw'];
-  if ($$throw === undefined) throw value;
-  return $$throw.call(iterator, value);
-};
-
-module.exports = function (nextHandler, IS_ITERATOR) {
-  var IteratorProxy = function Iterator(state) {
-    state.next = aFunction(state.iterator.next);
-    state.done = false;
-    setInternalState(this, state);
-  };
-
-  IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {
-    next: function next() {
-      var state = getInternalState(this);
-      var result = state.done ? undefined : nextHandler.apply(state, arguments);
-      return { done: state.done, value: result };
-    },
-    'return': $return,
-    'throw': $throw
-  });
-
-  if (!IS_ITERATOR) {
-    createNonEnumerableProperty(IteratorProxy.prototype, TO_STRING_TAG, 'Generator');
-  }
-
-  return IteratorProxy;
-};
diff --git a/node_modules/core-js-pure/internals/iterators-core.js b/node_modules/core-js-pure/internals/iterators-core.js
deleted file mode 100644
index fccca93..0000000
--- a/node_modules/core-js-pure/internals/iterators-core.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-
-var ITERATOR = wellKnownSymbol('iterator');
-var BUGGY_SAFARI_ITERATORS = false;
-
-var returnThis = function () { return this; };
-
-// `%IteratorPrototype%` object
-// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object
-var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
-
-if ([].keys) {
-  arrayIterator = [].keys();
-  // Safari 8 has buggy iterators w/o `next`
-  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
-  else {
-    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
-    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
-  }
-}
-
-if (IteratorPrototype == undefined) IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {
-  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
-}
-
-module.exports = {
-  IteratorPrototype: IteratorPrototype,
-  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
-};
diff --git a/node_modules/core-js-pure/internals/iterators.js b/node_modules/core-js-pure/internals/iterators.js
deleted file mode 100644
index f053ebf..0000000
--- a/node_modules/core-js-pure/internals/iterators.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {};
diff --git a/node_modules/core-js-pure/internals/map-upsert.js b/node_modules/core-js-pure/internals/map-upsert.js
deleted file mode 100644
index 2c51e78..0000000
--- a/node_modules/core-js-pure/internals/map-upsert.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var anObject = require('../internals/an-object');
-
-// `Map.prototype.upsert` method
-// https://github.com/thumbsupep/proposal-upsert
-module.exports = function upsert(key, updateFn /* , insertFn */) {
-  var map = anObject(this);
-  var insertFn = arguments.length > 2 ? arguments[2] : undefined;
-  var value;
-  if (typeof updateFn != 'function' && typeof insertFn != 'function') {
-    throw TypeError('At least one callback required');
-  }
-  if (map.has(key)) {
-    value = map.get(key);
-    if (typeof updateFn == 'function') {
-      value = updateFn(value);
-      map.set(key, value);
-    }
-  } else if (typeof insertFn == 'function') {
-    value = insertFn();
-    map.set(key, value);
-  } return value;
-};
diff --git a/node_modules/core-js-pure/internals/math-expm1.js b/node_modules/core-js-pure/internals/math-expm1.js
deleted file mode 100644
index 3a14c07..0000000
--- a/node_modules/core-js-pure/internals/math-expm1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var nativeExpm1 = Math.expm1;
-var exp = Math.exp;
-
-// `Math.expm1` method implementation
-// https://tc39.github.io/ecma262/#sec-math.expm1
-module.exports = (!nativeExpm1
-  // Old FF bug
-  || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168
-  // Tor Browser bug
-  || nativeExpm1(-2e-17) != -2e-17
-) ? function expm1(x) {
-  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;
-} : nativeExpm1;
diff --git a/node_modules/core-js-pure/internals/math-fround.js b/node_modules/core-js-pure/internals/math-fround.js
deleted file mode 100644
index 0642e31..0000000
--- a/node_modules/core-js-pure/internals/math-fround.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var sign = require('../internals/math-sign');
-
-var abs = Math.abs;
-var pow = Math.pow;
-var EPSILON = pow(2, -52);
-var EPSILON32 = pow(2, -23);
-var MAX32 = pow(2, 127) * (2 - EPSILON32);
-var MIN32 = pow(2, -126);
-
-var roundTiesToEven = function (n) {
-  return n + 1 / EPSILON - 1 / EPSILON;
-};
-
-// `Math.fround` method implementation
-// https://tc39.github.io/ecma262/#sec-math.fround
-module.exports = Math.fround || function fround(x) {
-  var $abs = abs(x);
-  var $sign = sign(x);
-  var a, result;
-  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
-  a = (1 + EPSILON32 / EPSILON) * $abs;
-  result = a - (a - $abs);
-  // eslint-disable-next-line no-self-compare
-  if (result > MAX32 || result != result) return $sign * Infinity;
-  return $sign * result;
-};
diff --git a/node_modules/core-js-pure/internals/math-log1p.js b/node_modules/core-js-pure/internals/math-log1p.js
deleted file mode 100644
index 3d2545c..0000000
--- a/node_modules/core-js-pure/internals/math-log1p.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var log = Math.log;
-
-// `Math.log1p` method implementation
-// https://tc39.github.io/ecma262/#sec-math.log1p
-module.exports = Math.log1p || function log1p(x) {
-  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
-};
diff --git a/node_modules/core-js-pure/internals/math-scale.js b/node_modules/core-js-pure/internals/math-scale.js
deleted file mode 100644
index 5928862..0000000
--- a/node_modules/core-js-pure/internals/math-scale.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// `Math.scale` method implementation
-// https://rwaldron.github.io/proposal-math-extensions/
-module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
-  if (
-    arguments.length === 0
-      /* eslint-disable no-self-compare */
-      || x != x
-      || inLow != inLow
-      || inHigh != inHigh
-      || outLow != outLow
-      || outHigh != outHigh
-      /* eslint-enable no-self-compare */
-  ) return NaN;
-  if (x === Infinity || x === -Infinity) return x;
-  return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
-};
diff --git a/node_modules/core-js-pure/internals/math-sign.js b/node_modules/core-js-pure/internals/math-sign.js
deleted file mode 100644
index 9260696..0000000
--- a/node_modules/core-js-pure/internals/math-sign.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// `Math.sign` method implementation
-// https://tc39.github.io/ecma262/#sec-math.sign
-module.exports = Math.sign || function sign(x) {
-  // eslint-disable-next-line no-self-compare
-  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-};
diff --git a/node_modules/core-js-pure/internals/microtask.js b/node_modules/core-js-pure/internals/microtask.js
deleted file mode 100644
index 6df180c..0000000
--- a/node_modules/core-js-pure/internals/microtask.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var global = require('../internals/global');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var classof = require('../internals/classof-raw');
-var macrotask = require('../internals/task').set;
-var IS_IOS = require('../internals/engine-is-ios');
-
-var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
-var process = global.process;
-var Promise = global.Promise;
-var IS_NODE = classof(process) == 'process';
-// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
-var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
-var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
-
-var flush, head, last, notify, toggle, node, promise, then;
-
-// modern engines have queueMicrotask method
-if (!queueMicrotask) {
-  flush = function () {
-    var parent, fn;
-    if (IS_NODE && (parent = process.domain)) parent.exit();
-    while (head) {
-      fn = head.fn;
-      head = head.next;
-      try {
-        fn();
-      } catch (error) {
-        if (head) notify();
-        else last = undefined;
-        throw error;
-      }
-    } last = undefined;
-    if (parent) parent.enter();
-  };
-
-  // Node.js
-  if (IS_NODE) {
-    notify = function () {
-      process.nextTick(flush);
-    };
-  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
-  } else if (MutationObserver && !IS_IOS) {
-    toggle = true;
-    node = document.createTextNode('');
-    new MutationObserver(flush).observe(node, { characterData: true });
-    notify = function () {
-      node.data = toggle = !toggle;
-    };
-  // environments with maybe non-completely correct, but existent Promise
-  } else if (Promise && Promise.resolve) {
-    // Promise.resolve without an argument throws an error in LG WebOS 2
-    promise = Promise.resolve(undefined);
-    then = promise.then;
-    notify = function () {
-      then.call(promise, flush);
-    };
-  // for other environments - macrotask based on:
-  // - setImmediate
-  // - MessageChannel
-  // - window.postMessag
-  // - onreadystatechange
-  // - setTimeout
-  } else {
-    notify = function () {
-      // strange IE + webpack dev server bug - use .call(global)
-      macrotask.call(global, flush);
-    };
-  }
-}
-
-module.exports = queueMicrotask || function (fn) {
-  var task = { fn: fn, next: undefined };
-  if (last) last.next = task;
-  if (!head) {
-    head = task;
-    notify();
-  } last = task;
-};
diff --git a/node_modules/core-js-pure/internals/native-promise-constructor.js b/node_modules/core-js-pure/internals/native-promise-constructor.js
deleted file mode 100644
index dae3822..0000000
--- a/node_modules/core-js-pure/internals/native-promise-constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var global = require('../internals/global');
-
-module.exports = global.Promise;
diff --git a/node_modules/core-js-pure/internals/native-symbol.js b/node_modules/core-js-pure/internals/native-symbol.js
deleted file mode 100644
index bb22d6c..0000000
--- a/node_modules/core-js-pure/internals/native-symbol.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var fails = require('../internals/fails');
-
-module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
-  // Chrome 38 Symbol has incorrect toString conversion
-  // eslint-disable-next-line no-undef
-  return !String(Symbol());
-});
diff --git a/node_modules/core-js-pure/internals/native-url.js b/node_modules/core-js-pure/internals/native-url.js
deleted file mode 100644
index b9ac587..0000000
--- a/node_modules/core-js-pure/internals/native-url.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var fails = require('../internals/fails');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-
-var ITERATOR = wellKnownSymbol('iterator');
-
-module.exports = !fails(function () {
-  var url = new URL('b?a=1&b=2&c=3', 'http://a');
-  var searchParams = url.searchParams;
-  var result = '';
-  url.pathname = 'c%20d';
-  searchParams.forEach(function (value, key) {
-    searchParams['delete']('b');
-    result += key + value;
-  });
-  return (IS_PURE && !url.toJSON)
-    || !searchParams.sort
-    || url.href !== 'http://a/c%20d?a=1&c=3'
-    || searchParams.get('c') !== '3'
-    || String(new URLSearchParams('?a=1')) !== 'a=1'
-    || !searchParams[ITERATOR]
-    // throws in Edge
-    || new URL('https://a@b').username !== 'a'
-    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
-    // not punycoded in Edge
-    || new URL('http://тест').host !== 'xn--e1aybc'
-    // not escaped in Chrome 62-
-    || new URL('http://a#б').hash !== '#%D0%B1'
-    // fails in Chrome 66-
-    || result !== 'a1c3'
-    // throws in Safari
-    || new URL('http://x', undefined).host !== 'x';
-});
diff --git a/node_modules/core-js-pure/internals/native-weak-map.js b/node_modules/core-js-pure/internals/native-weak-map.js
deleted file mode 100644
index e241821..0000000
--- a/node_modules/core-js-pure/internals/native-weak-map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('../internals/global');
-var inspectSource = require('../internals/inspect-source');
-
-var WeakMap = global.WeakMap;
-
-module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
diff --git a/node_modules/core-js-pure/internals/new-promise-capability.js b/node_modules/core-js-pure/internals/new-promise-capability.js
deleted file mode 100644
index 394edc9..0000000
--- a/node_modules/core-js-pure/internals/new-promise-capability.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var aFunction = require('../internals/a-function');
-
-var PromiseCapability = function (C) {
-  var resolve, reject;
-  this.promise = new C(function ($$resolve, $$reject) {
-    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
-    resolve = $$resolve;
-    reject = $$reject;
-  });
-  this.resolve = aFunction(resolve);
-  this.reject = aFunction(reject);
-};
-
-// 25.4.1.5 NewPromiseCapability(C)
-module.exports.f = function (C) {
-  return new PromiseCapability(C);
-};
diff --git a/node_modules/core-js-pure/internals/not-a-regexp.js b/node_modules/core-js-pure/internals/not-a-regexp.js
deleted file mode 100644
index 7bb4e9c..0000000
--- a/node_modules/core-js-pure/internals/not-a-regexp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var isRegExp = require('../internals/is-regexp');
-
-module.exports = function (it) {
-  if (isRegExp(it)) {
-    throw TypeError("The method doesn't accept regular expressions");
-  } return it;
-};
diff --git a/node_modules/core-js-pure/internals/number-is-finite.js b/node_modules/core-js-pure/internals/number-is-finite.js
deleted file mode 100644
index 4b26c4a..0000000
--- a/node_modules/core-js-pure/internals/number-is-finite.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var global = require('../internals/global');
-
-var globalIsFinite = global.isFinite;
-
-// `Number.isFinite` method
-// https://tc39.github.io/ecma262/#sec-number.isfinite
-module.exports = Number.isFinite || function isFinite(it) {
-  return typeof it == 'number' && globalIsFinite(it);
-};
diff --git a/node_modules/core-js-pure/internals/number-parse-float.js b/node_modules/core-js-pure/internals/number-parse-float.js
deleted file mode 100644
index 0ff341d..0000000
--- a/node_modules/core-js-pure/internals/number-parse-float.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var global = require('../internals/global');
-var trim = require('../internals/string-trim').trim;
-var whitespaces = require('../internals/whitespaces');
-
-var $parseFloat = global.parseFloat;
-var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
-
-// `parseFloat` method
-// https://tc39.github.io/ecma262/#sec-parsefloat-string
-module.exports = FORCED ? function parseFloat(string) {
-  var trimmedString = trim(String(string));
-  var result = $parseFloat(trimmedString);
-  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
-} : $parseFloat;
diff --git a/node_modules/core-js-pure/internals/number-parse-int.js b/node_modules/core-js-pure/internals/number-parse-int.js
deleted file mode 100644
index 11b8232..0000000
--- a/node_modules/core-js-pure/internals/number-parse-int.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var global = require('../internals/global');
-var trim = require('../internals/string-trim').trim;
-var whitespaces = require('../internals/whitespaces');
-
-var $parseInt = global.parseInt;
-var hex = /^[+-]?0[Xx]/;
-var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
-
-// `parseInt` method
-// https://tc39.github.io/ecma262/#sec-parseint-string-radix
-module.exports = FORCED ? function parseInt(string, radix) {
-  var S = trim(String(string));
-  return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
-} : $parseInt;
diff --git a/node_modules/core-js-pure/internals/object-assign.js b/node_modules/core-js-pure/internals/object-assign.js
deleted file mode 100644
index f15d000..0000000
--- a/node_modules/core-js-pure/internals/object-assign.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-var DESCRIPTORS = require('../internals/descriptors');
-var fails = require('../internals/fails');
-var objectKeys = require('../internals/object-keys');
-var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
-var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
-var toObject = require('../internals/to-object');
-var IndexedObject = require('../internals/indexed-object');
-
-var nativeAssign = Object.assign;
-var defineProperty = Object.defineProperty;
-
-// `Object.assign` method
-// https://tc39.github.io/ecma262/#sec-object.assign
-module.exports = !nativeAssign || fails(function () {
-  // should have correct order of operations (Edge bug)
-  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {
-    enumerable: true,
-    get: function () {
-      defineProperty(this, 'b', {
-        value: 3,
-        enumerable: false
-      });
-    }
-  }), { b: 2 })).b !== 1) return true;
-  // should work with symbols and should have deterministic property order (V8 bug)
-  var A = {};
-  var B = {};
-  // eslint-disable-next-line no-undef
-  var symbol = Symbol();
-  var alphabet = 'abcdefghijklmnopqrst';
-  A[symbol] = 7;
-  alphabet.split('').forEach(function (chr) { B[chr] = chr; });
-  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
-}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
-  var T = toObject(target);
-  var argumentsLength = arguments.length;
-  var index = 1;
-  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
-  var propertyIsEnumerable = propertyIsEnumerableModule.f;
-  while (argumentsLength > index) {
-    var S = IndexedObject(arguments[index++]);
-    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
-    var length = keys.length;
-    var j = 0;
-    var key;
-    while (length > j) {
-      key = keys[j++];
-      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];
-    }
-  } return T;
-} : nativeAssign;
diff --git a/node_modules/core-js-pure/internals/object-create.js b/node_modules/core-js-pure/internals/object-create.js
deleted file mode 100644
index 346d108..0000000
--- a/node_modules/core-js-pure/internals/object-create.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var anObject = require('../internals/an-object');
-var defineProperties = require('../internals/object-define-properties');
-var enumBugKeys = require('../internals/enum-bug-keys');
-var hiddenKeys = require('../internals/hidden-keys');
-var html = require('../internals/html');
-var documentCreateElement = require('../internals/document-create-element');
-var sharedKey = require('../internals/shared-key');
-
-var GT = '>';
-var LT = '<';
-var PROTOTYPE = 'prototype';
-var SCRIPT = 'script';
-var IE_PROTO = sharedKey('IE_PROTO');
-
-var EmptyConstructor = function () { /* empty */ };
-
-var scriptTag = function (content) {
-  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
-};
-
-// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
-var NullProtoObjectViaActiveX = function (activeXDocument) {
-  activeXDocument.write(scriptTag(''));
-  activeXDocument.close();
-  var temp = activeXDocument.parentWindow.Object;
-  activeXDocument = null; // avoid memory leak
-  return temp;
-};
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var NullProtoObjectViaIFrame = function () {
-  // Thrash, waste and sodomy: IE GC bug
-  var iframe = documentCreateElement('iframe');
-  var JS = 'java' + SCRIPT + ':';
-  var iframeDocument;
-  iframe.style.display = 'none';
-  html.appendChild(iframe);
-  // https://github.com/zloirock/core-js/issues/475
-  iframe.src = String(JS);
-  iframeDocument = iframe.contentWindow.document;
-  iframeDocument.open();
-  iframeDocument.write(scriptTag('document.F=Object'));
-  iframeDocument.close();
-  return iframeDocument.F;
-};
-
-// Check for document.domain and active x support
-// No need to use active x approach when document.domain is not set
-// see https://github.com/es-shims/es5-shim/issues/150
-// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
-// avoid IE GC bug
-var activeXDocument;
-var NullProtoObject = function () {
-  try {
-    /* global ActiveXObject */
-    activeXDocument = document.domain && new ActiveXObject('htmlfile');
-  } catch (error) { /* ignore */ }
-  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
-  var length = enumBugKeys.length;
-  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
-  return NullProtoObject();
-};
-
-hiddenKeys[IE_PROTO] = true;
-
-// `Object.create` method
-// https://tc39.github.io/ecma262/#sec-object.create
-module.exports = Object.create || function create(O, Properties) {
-  var result;
-  if (O !== null) {
-    EmptyConstructor[PROTOTYPE] = anObject(O);
-    result = new EmptyConstructor();
-    EmptyConstructor[PROTOTYPE] = null;
-    // add "__proto__" for Object.getPrototypeOf polyfill
-    result[IE_PROTO] = O;
-  } else result = NullProtoObject();
-  return Properties === undefined ? result : defineProperties(result, Properties);
-};
diff --git a/node_modules/core-js-pure/internals/object-define-properties.js b/node_modules/core-js-pure/internals/object-define-properties.js
deleted file mode 100644
index c2b5339..0000000
--- a/node_modules/core-js-pure/internals/object-define-properties.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var definePropertyModule = require('../internals/object-define-property');
-var anObject = require('../internals/an-object');
-var objectKeys = require('../internals/object-keys');
-
-// `Object.defineProperties` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperties
-module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
-  anObject(O);
-  var keys = objectKeys(Properties);
-  var length = keys.length;
-  var index = 0;
-  var key;
-  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
-  return O;
-};
diff --git a/node_modules/core-js-pure/internals/object-define-property.js b/node_modules/core-js-pure/internals/object-define-property.js
deleted file mode 100644
index 375f20f..0000000
--- a/node_modules/core-js-pure/internals/object-define-property.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
-var anObject = require('../internals/an-object');
-var toPrimitive = require('../internals/to-primitive');
-
-var nativeDefineProperty = Object.defineProperty;
-
-// `Object.defineProperty` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperty
-exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
-  anObject(O);
-  P = toPrimitive(P, true);
-  anObject(Attributes);
-  if (IE8_DOM_DEFINE) try {
-    return nativeDefineProperty(O, P, Attributes);
-  } catch (error) { /* empty */ }
-  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
-  if ('value' in Attributes) O[P] = Attributes.value;
-  return O;
-};
diff --git a/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js b/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js
deleted file mode 100644
index acdae01..0000000
--- a/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var toIndexedObject = require('../internals/to-indexed-object');
-var toPrimitive = require('../internals/to-primitive');
-var has = require('../internals/has');
-var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
-
-var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-// `Object.getOwnPropertyDescriptor` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
-exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
-  O = toIndexedObject(O);
-  P = toPrimitive(P, true);
-  if (IE8_DOM_DEFINE) try {
-    return nativeGetOwnPropertyDescriptor(O, P);
-  } catch (error) { /* empty */ }
-  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
-};
diff --git a/node_modules/core-js-pure/internals/object-get-own-property-names-external.js b/node_modules/core-js-pure/internals/object-get-own-property-names-external.js
deleted file mode 100644
index dfd94f1..0000000
--- a/node_modules/core-js-pure/internals/object-get-own-property-names-external.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var toIndexedObject = require('../internals/to-indexed-object');
-var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;
-
-var toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
-  ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function (it) {
-  try {
-    return nativeGetOwnPropertyNames(it);
-  } catch (error) {
-    return windowNames.slice();
-  }
-};
-
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-module.exports.f = function getOwnPropertyNames(it) {
-  return windowNames && toString.call(it) == '[object Window]'
-    ? getWindowNames(it)
-    : nativeGetOwnPropertyNames(toIndexedObject(it));
-};
diff --git a/node_modules/core-js-pure/internals/object-get-own-property-names.js b/node_modules/core-js-pure/internals/object-get-own-property-names.js
deleted file mode 100644
index f1b1be6..0000000
--- a/node_modules/core-js-pure/internals/object-get-own-property-names.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var internalObjectKeys = require('../internals/object-keys-internal');
-var enumBugKeys = require('../internals/enum-bug-keys');
-
-var hiddenKeys = enumBugKeys.concat('length', 'prototype');
-
-// `Object.getOwnPropertyNames` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
-  return internalObjectKeys(O, hiddenKeys);
-};
diff --git a/node_modules/core-js-pure/internals/object-get-own-property-symbols.js b/node_modules/core-js-pure/internals/object-get-own-property-symbols.js
deleted file mode 100644
index bc06729..0000000
--- a/node_modules/core-js-pure/internals/object-get-own-property-symbols.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.f = Object.getOwnPropertySymbols;
diff --git a/node_modules/core-js-pure/internals/object-get-prototype-of.js b/node_modules/core-js-pure/internals/object-get-prototype-of.js
deleted file mode 100644
index c0bb726..0000000
--- a/node_modules/core-js-pure/internals/object-get-prototype-of.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var has = require('../internals/has');
-var toObject = require('../internals/to-object');
-var sharedKey = require('../internals/shared-key');
-var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
-
-var IE_PROTO = sharedKey('IE_PROTO');
-var ObjectPrototype = Object.prototype;
-
-// `Object.getPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.getprototypeof
-module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
-  O = toObject(O);
-  if (has(O, IE_PROTO)) return O[IE_PROTO];
-  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
-    return O.constructor.prototype;
-  } return O instanceof Object ? ObjectPrototype : null;
-};
diff --git a/node_modules/core-js-pure/internals/object-iterator.js b/node_modules/core-js-pure/internals/object-iterator.js
deleted file mode 100644
index 415824f..0000000
--- a/node_modules/core-js-pure/internals/object-iterator.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-var InternalStateModule = require('../internals/internal-state');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var has = require('../internals/has');
-var objectKeys = require('../internals/object-keys');
-var toObject = require('../internals/to-object');
-
-var OBJECT_ITERATOR = 'Object Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);
-
-module.exports = createIteratorConstructor(function ObjectIterator(source, mode) {
-  var object = toObject(source);
-  setInternalState(this, {
-    type: OBJECT_ITERATOR,
-    mode: mode,
-    object: object,
-    keys: objectKeys(object),
-    index: 0
-  });
-}, 'Object', function next() {
-  var state = getInternalState(this);
-  var keys = state.keys;
-  while (true) {
-    if (keys === null || state.index >= keys.length) {
-      state.object = state.keys = null;
-      return { value: undefined, done: true };
-    }
-    var key = keys[state.index++];
-    var object = state.object;
-    if (!has(object, key)) continue;
-    switch (state.mode) {
-      case 'keys': return { value: key, done: false };
-      case 'values': return { value: object[key], done: false };
-    } /* entries */ return { value: [key, object[key]], done: false };
-  }
-});
diff --git a/node_modules/core-js-pure/internals/object-keys-internal.js b/node_modules/core-js-pure/internals/object-keys-internal.js
deleted file mode 100644
index 40b4c98..0000000
--- a/node_modules/core-js-pure/internals/object-keys-internal.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var has = require('../internals/has');
-var toIndexedObject = require('../internals/to-indexed-object');
-var indexOf = require('../internals/array-includes').indexOf;
-var hiddenKeys = require('../internals/hidden-keys');
-
-module.exports = function (object, names) {
-  var O = toIndexedObject(object);
-  var i = 0;
-  var result = [];
-  var key;
-  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
-  // Don't enum bug & hidden keys
-  while (names.length > i) if (has(O, key = names[i++])) {
-    ~indexOf(result, key) || result.push(key);
-  }
-  return result;
-};
diff --git a/node_modules/core-js-pure/internals/object-keys.js b/node_modules/core-js-pure/internals/object-keys.js
deleted file mode 100644
index 7188505..0000000
--- a/node_modules/core-js-pure/internals/object-keys.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var internalObjectKeys = require('../internals/object-keys-internal');
-var enumBugKeys = require('../internals/enum-bug-keys');
-
-// `Object.keys` method
-// https://tc39.github.io/ecma262/#sec-object.keys
-module.exports = Object.keys || function keys(O) {
-  return internalObjectKeys(O, enumBugKeys);
-};
diff --git a/node_modules/core-js-pure/internals/object-property-is-enumerable.js b/node_modules/core-js-pure/internals/object-property-is-enumerable.js
deleted file mode 100644
index 9ff2209..0000000
--- a/node_modules/core-js-pure/internals/object-property-is-enumerable.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-// Nashorn ~ JDK8 bug
-var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
-
-// `Object.prototype.propertyIsEnumerable` method implementation
-// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
-exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
-  var descriptor = getOwnPropertyDescriptor(this, V);
-  return !!descriptor && descriptor.enumerable;
-} : nativePropertyIsEnumerable;
diff --git a/node_modules/core-js-pure/internals/object-prototype-accessors-forced.js b/node_modules/core-js-pure/internals/object-prototype-accessors-forced.js
deleted file mode 100644
index 98cb8ba..0000000
--- a/node_modules/core-js-pure/internals/object-prototype-accessors-forced.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-var IS_PURE = require('../internals/is-pure');
-var global = require('../internals/global');
-var fails = require('../internals/fails');
-
-// Forced replacement object prototype accessors methods
-module.exports = IS_PURE || !fails(function () {
-  var key = Math.random();
-  // In FF throws only define methods
-  // eslint-disable-next-line no-undef, no-useless-call
-  __defineSetter__.call(null, key, function () { /* empty */ });
-  delete global[key];
-});
diff --git a/node_modules/core-js-pure/internals/object-set-prototype-of.js b/node_modules/core-js-pure/internals/object-set-prototype-of.js
deleted file mode 100644
index ce7e97c..0000000
--- a/node_modules/core-js-pure/internals/object-set-prototype-of.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var anObject = require('../internals/an-object');
-var aPossiblePrototype = require('../internals/a-possible-prototype');
-
-// `Object.setPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.setprototypeof
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
-  var CORRECT_SETTER = false;
-  var test = {};
-  var setter;
-  try {
-    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
-    setter.call(test, []);
-    CORRECT_SETTER = test instanceof Array;
-  } catch (error) { /* empty */ }
-  return function setPrototypeOf(O, proto) {
-    anObject(O);
-    aPossiblePrototype(proto);
-    if (CORRECT_SETTER) setter.call(O, proto);
-    else O.__proto__ = proto;
-    return O;
-  };
-}() : undefined);
diff --git a/node_modules/core-js-pure/internals/object-to-array.js b/node_modules/core-js-pure/internals/object-to-array.js
deleted file mode 100644
index 8e2409d..0000000
--- a/node_modules/core-js-pure/internals/object-to-array.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var DESCRIPTORS = require('../internals/descriptors');
-var objectKeys = require('../internals/object-keys');
-var toIndexedObject = require('../internals/to-indexed-object');
-var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
-
-// `Object.{ entries, values }` methods implementation
-var createMethod = function (TO_ENTRIES) {
-  return function (it) {
-    var O = toIndexedObject(it);
-    var keys = objectKeys(O);
-    var length = keys.length;
-    var i = 0;
-    var result = [];
-    var key;
-    while (length > i) {
-      key = keys[i++];
-      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
-        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
-      }
-    }
-    return result;
-  };
-};
-
-module.exports = {
-  // `Object.entries` method
-  // https://tc39.github.io/ecma262/#sec-object.entries
-  entries: createMethod(true),
-  // `Object.values` method
-  // https://tc39.github.io/ecma262/#sec-object.values
-  values: createMethod(false)
-};
diff --git a/node_modules/core-js-pure/internals/object-to-string.js b/node_modules/core-js-pure/internals/object-to-string.js
deleted file mode 100644
index 68fbea7..0000000
--- a/node_modules/core-js-pure/internals/object-to-string.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var classof = require('../internals/classof');
-
-// `Object.prototype.toString` method implementation
-// https://tc39.github.io/ecma262/#sec-object.prototype.tostring
-module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
-  return '[object ' + classof(this) + ']';
-};
diff --git a/node_modules/core-js-pure/internals/own-keys.js b/node_modules/core-js-pure/internals/own-keys.js
deleted file mode 100644
index 4c3d8b5..0000000
--- a/node_modules/core-js-pure/internals/own-keys.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var getBuiltIn = require('../internals/get-built-in');
-var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
-var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
-var anObject = require('../internals/an-object');
-
-// all object keys, includes non-enumerable and symbols
-module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
-  var keys = getOwnPropertyNamesModule.f(anObject(it));
-  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
-  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
-};
diff --git a/node_modules/core-js-pure/internals/path.js b/node_modules/core-js-pure/internals/path.js
deleted file mode 100644
index f053ebf..0000000
--- a/node_modules/core-js-pure/internals/path.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = {};
diff --git a/node_modules/core-js-pure/internals/perform.js b/node_modules/core-js-pure/internals/perform.js
deleted file mode 100644
index 3cd8eef..0000000
--- a/node_modules/core-js-pure/internals/perform.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function (exec) {
-  try {
-    return { error: false, value: exec() };
-  } catch (error) {
-    return { error: true, value: error };
-  }
-};
diff --git a/node_modules/core-js-pure/internals/promise-resolve.js b/node_modules/core-js-pure/internals/promise-resolve.js
deleted file mode 100644
index 18e73e1..0000000
--- a/node_modules/core-js-pure/internals/promise-resolve.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var newPromiseCapability = require('../internals/new-promise-capability');
-
-module.exports = function (C, x) {
-  anObject(C);
-  if (isObject(x) && x.constructor === C) return x;
-  var promiseCapability = newPromiseCapability.f(C);
-  var resolve = promiseCapability.resolve;
-  resolve(x);
-  return promiseCapability.promise;
-};
diff --git a/node_modules/core-js-pure/internals/redefine-all.js b/node_modules/core-js-pure/internals/redefine-all.js
deleted file mode 100644
index b6f71ef..0000000
--- a/node_modules/core-js-pure/internals/redefine-all.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var redefine = require('../internals/redefine');
-
-module.exports = function (target, src, options) {
-  for (var key in src) {
-    if (options && options.unsafe && target[key]) target[key] = src[key];
-    else redefine(target, key, src[key], options);
-  } return target;
-};
diff --git a/node_modules/core-js-pure/internals/redefine.js b/node_modules/core-js-pure/internals/redefine.js
deleted file mode 100644
index 016ddf7..0000000
--- a/node_modules/core-js-pure/internals/redefine.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-
-module.exports = function (target, key, value, options) {
-  if (options && options.enumerable) target[key] = value;
-  else createNonEnumerableProperty(target, key, value);
-};
diff --git a/node_modules/core-js-pure/internals/reflect-metadata.js b/node_modules/core-js-pure/internals/reflect-metadata.js
deleted file mode 100644
index a8cd82f..0000000
--- a/node_modules/core-js-pure/internals/reflect-metadata.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
-var Map = require('../modules/es.map');
-var WeakMap = require('../modules/es.weak-map');
-var shared = require('../internals/shared');
-
-var metadata = shared('metadata');
-var store = metadata.store || (metadata.store = new WeakMap());
-
-var getOrCreateMetadataMap = function (target, targetKey, create) {
-  var targetMetadata = store.get(target);
-  if (!targetMetadata) {
-    if (!create) return;
-    store.set(target, targetMetadata = new Map());
-  }
-  var keyMetadata = targetMetadata.get(targetKey);
-  if (!keyMetadata) {
-    if (!create) return;
-    targetMetadata.set(targetKey, keyMetadata = new Map());
-  } return keyMetadata;
-};
-
-var ordinaryHasOwnMetadata = function (MetadataKey, O, P) {
-  var metadataMap = getOrCreateMetadataMap(O, P, false);
-  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
-};
-
-var ordinaryGetOwnMetadata = function (MetadataKey, O, P) {
-  var metadataMap = getOrCreateMetadataMap(O, P, false);
-  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
-};
-
-var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
-  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
-};
-
-var ordinaryOwnMetadataKeys = function (target, targetKey) {
-  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
-  var keys = [];
-  if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
-  return keys;
-};
-
-var toMetadataKey = function (it) {
-  return it === undefined || typeof it == 'symbol' ? it : String(it);
-};
-
-module.exports = {
-  store: store,
-  getMap: getOrCreateMetadataMap,
-  has: ordinaryHasOwnMetadata,
-  get: ordinaryGetOwnMetadata,
-  set: ordinaryDefineOwnMetadata,
-  keys: ordinaryOwnMetadataKeys,
-  toKey: toMetadataKey
-};
diff --git a/node_modules/core-js-pure/internals/regexp-exec-abstract.js b/node_modules/core-js-pure/internals/regexp-exec-abstract.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/regexp-exec-abstract.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/regexp-exec.js b/node_modules/core-js-pure/internals/regexp-exec.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/regexp-exec.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/regexp-flags.js b/node_modules/core-js-pure/internals/regexp-flags.js
deleted file mode 100644
index c77927b..0000000
--- a/node_modules/core-js-pure/internals/regexp-flags.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var anObject = require('../internals/an-object');
-
-// `RegExp.prototype.flags` getter implementation
-// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
-module.exports = function () {
-  var that = anObject(this);
-  var result = '';
-  if (that.global) result += 'g';
-  if (that.ignoreCase) result += 'i';
-  if (that.multiline) result += 'm';
-  if (that.dotAll) result += 's';
-  if (that.unicode) result += 'u';
-  if (that.sticky) result += 'y';
-  return result;
-};
diff --git a/node_modules/core-js-pure/internals/regexp-sticky-helpers.js b/node_modules/core-js-pure/internals/regexp-sticky-helpers.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/regexp-sticky-helpers.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/require-object-coercible.js b/node_modules/core-js-pure/internals/require-object-coercible.js
deleted file mode 100644
index f7b2662..0000000
--- a/node_modules/core-js-pure/internals/require-object-coercible.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// `RequireObjectCoercible` abstract operation
-// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
-module.exports = function (it) {
-  if (it == undefined) throw TypeError("Can't call method on " + it);
-  return it;
-};
diff --git a/node_modules/core-js-pure/internals/same-value-zero.js b/node_modules/core-js-pure/internals/same-value-zero.js
deleted file mode 100644
index 452f230..0000000
--- a/node_modules/core-js-pure/internals/same-value-zero.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// `SameValueZero` abstract operation
-// https://tc39.github.io/ecma262/#sec-samevaluezero
-module.exports = function (x, y) {
-  // eslint-disable-next-line no-self-compare
-  return x === y || x != x && y != y;
-};
diff --git a/node_modules/core-js-pure/internals/same-value.js b/node_modules/core-js-pure/internals/same-value.js
deleted file mode 100644
index 4661f85..0000000
--- a/node_modules/core-js-pure/internals/same-value.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// `SameValue` abstract operation
-// https://tc39.github.io/ecma262/#sec-samevalue
-module.exports = Object.is || function is(x, y) {
-  // eslint-disable-next-line no-self-compare
-  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-};
diff --git a/node_modules/core-js-pure/internals/set-global.js b/node_modules/core-js-pure/internals/set-global.js
deleted file mode 100644
index 8ac9601..0000000
--- a/node_modules/core-js-pure/internals/set-global.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var global = require('../internals/global');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-
-module.exports = function (key, value) {
-  try {
-    createNonEnumerableProperty(global, key, value);
-  } catch (error) {
-    global[key] = value;
-  } return value;
-};
diff --git a/node_modules/core-js-pure/internals/set-species.js b/node_modules/core-js-pure/internals/set-species.js
deleted file mode 100644
index 6be87f7..0000000
--- a/node_modules/core-js-pure/internals/set-species.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var getBuiltIn = require('../internals/get-built-in');
-var definePropertyModule = require('../internals/object-define-property');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var DESCRIPTORS = require('../internals/descriptors');
-
-var SPECIES = wellKnownSymbol('species');
-
-module.exports = function (CONSTRUCTOR_NAME) {
-  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
-  var defineProperty = definePropertyModule.f;
-
-  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
-    defineProperty(Constructor, SPECIES, {
-      configurable: true,
-      get: function () { return this; }
-    });
-  }
-};
diff --git a/node_modules/core-js-pure/internals/set-to-string-tag.js b/node_modules/core-js-pure/internals/set-to-string-tag.js
deleted file mode 100644
index 7043d71..0000000
--- a/node_modules/core-js-pure/internals/set-to-string-tag.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var defineProperty = require('../internals/object-define-property').f;
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-var toString = require('../internals/object-to-string');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-module.exports = function (it, TAG, STATIC, SET_METHOD) {
-  if (it) {
-    var target = STATIC ? it : it.prototype;
-    if (!has(target, TO_STRING_TAG)) {
-      defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });
-    }
-    if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {
-      createNonEnumerableProperty(target, 'toString', toString);
-    }
-  }
-};
diff --git a/node_modules/core-js-pure/internals/shared-key.js b/node_modules/core-js-pure/internals/shared-key.js
deleted file mode 100644
index 35bc403..0000000
--- a/node_modules/core-js-pure/internals/shared-key.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var shared = require('../internals/shared');
-var uid = require('../internals/uid');
-
-var keys = shared('keys');
-
-module.exports = function (key) {
-  return keys[key] || (keys[key] = uid(key));
-};
diff --git a/node_modules/core-js-pure/internals/shared-store.js b/node_modules/core-js-pure/internals/shared-store.js
deleted file mode 100644
index c54550a..0000000
--- a/node_modules/core-js-pure/internals/shared-store.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var global = require('../internals/global');
-var setGlobal = require('../internals/set-global');
-
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || setGlobal(SHARED, {});
-
-module.exports = store;
diff --git a/node_modules/core-js-pure/internals/shared.js b/node_modules/core-js-pure/internals/shared.js
deleted file mode 100644
index 0688ce1..0000000
--- a/node_modules/core-js-pure/internals/shared.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var IS_PURE = require('../internals/is-pure');
-var store = require('../internals/shared-store');
-
-(module.exports = function (key, value) {
-  return store[key] || (store[key] = value !== undefined ? value : {});
-})('versions', []).push({
-  version: '3.6.4',
-  mode: IS_PURE ? 'pure' : 'global',
-  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
-});
diff --git a/node_modules/core-js-pure/internals/species-constructor.js b/node_modules/core-js-pure/internals/species-constructor.js
deleted file mode 100644
index 4d8f565..0000000
--- a/node_modules/core-js-pure/internals/species-constructor.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var SPECIES = wellKnownSymbol('species');
-
-// `SpeciesConstructor` abstract operation
-// https://tc39.github.io/ecma262/#sec-speciesconstructor
-module.exports = function (O, defaultConstructor) {
-  var C = anObject(O).constructor;
-  var S;
-  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
-};
diff --git a/node_modules/core-js-pure/internals/string-html-forced.js b/node_modules/core-js-pure/internals/string-html-forced.js
deleted file mode 100644
index d3c884f..0000000
--- a/node_modules/core-js-pure/internals/string-html-forced.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var fails = require('../internals/fails');
-
-// check the existence of a method, lowercase
-// of a tag and escaping quotes in arguments
-module.exports = function (METHOD_NAME) {
-  return fails(function () {
-    var test = ''[METHOD_NAME]('"');
-    return test !== test.toLowerCase() || test.split('"').length > 3;
-  });
-};
diff --git a/node_modules/core-js-pure/internals/string-multibyte.js b/node_modules/core-js-pure/internals/string-multibyte.js
deleted file mode 100644
index c0cf086..0000000
--- a/node_modules/core-js-pure/internals/string-multibyte.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var toInteger = require('../internals/to-integer');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-// `String.prototype.{ codePointAt, at }` methods implementation
-var createMethod = function (CONVERT_TO_STRING) {
-  return function ($this, pos) {
-    var S = String(requireObjectCoercible($this));
-    var position = toInteger(pos);
-    var size = S.length;
-    var first, second;
-    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
-    first = S.charCodeAt(position);
-    return first < 0xD800 || first > 0xDBFF || position + 1 === size
-      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
-        ? CONVERT_TO_STRING ? S.charAt(position) : first
-        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
-  };
-};
-
-module.exports = {
-  // `String.prototype.codePointAt` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
-  codeAt: createMethod(false),
-  // `String.prototype.at` method
-  // https://github.com/mathiasbynens/String.prototype.at
-  charAt: createMethod(true)
-};
diff --git a/node_modules/core-js-pure/internals/string-pad-webkit-bug.js b/node_modules/core-js-pure/internals/string-pad-webkit-bug.js
deleted file mode 100644
index 9f94d3a..0000000
--- a/node_modules/core-js-pure/internals/string-pad-webkit-bug.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/zloirock/core-js/issues/280
-var userAgent = require('../internals/engine-user-agent');
-
-// eslint-disable-next-line unicorn/no-unsafe-regex
-module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
diff --git a/node_modules/core-js-pure/internals/string-pad.js b/node_modules/core-js-pure/internals/string-pad.js
deleted file mode 100644
index c03090e..0000000
--- a/node_modules/core-js-pure/internals/string-pad.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// https://github.com/tc39/proposal-string-pad-start-end
-var toLength = require('../internals/to-length');
-var repeat = require('../internals/string-repeat');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-var ceil = Math.ceil;
-
-// `String.prototype.{ padStart, padEnd }` methods implementation
-var createMethod = function (IS_END) {
-  return function ($this, maxLength, fillString) {
-    var S = String(requireObjectCoercible($this));
-    var stringLength = S.length;
-    var fillStr = fillString === undefined ? ' ' : String(fillString);
-    var intMaxLength = toLength(maxLength);
-    var fillLen, stringFiller;
-    if (intMaxLength <= stringLength || fillStr == '') return S;
-    fillLen = intMaxLength - stringLength;
-    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
-    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
-    return IS_END ? S + stringFiller : stringFiller + S;
-  };
-};
-
-module.exports = {
-  // `String.prototype.padStart` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart
-  start: createMethod(false),
-  // `String.prototype.padEnd` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.padend
-  end: createMethod(true)
-};
diff --git a/node_modules/core-js-pure/internals/string-punycode-to-ascii.js b/node_modules/core-js-pure/internals/string-punycode-to-ascii.js
deleted file mode 100644
index 436d39f..0000000
--- a/node_modules/core-js-pure/internals/string-punycode-to-ascii.js
+++ /dev/null
@@ -1,168 +0,0 @@
-'use strict';
-// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
-var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
-var base = 36;
-var tMin = 1;
-var tMax = 26;
-var skew = 38;
-var damp = 700;
-var initialBias = 72;
-var initialN = 128; // 0x80
-var delimiter = '-'; // '\x2D'
-var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars
-var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
-var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
-var baseMinusTMin = base - tMin;
-var floor = Math.floor;
-var stringFromCharCode = String.fromCharCode;
-
-/**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- */
-var ucs2decode = function (string) {
-  var output = [];
-  var counter = 0;
-  var length = string.length;
-  while (counter < length) {
-    var value = string.charCodeAt(counter++);
-    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
-      // It's a high surrogate, and there is a next character.
-      var extra = string.charCodeAt(counter++);
-      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
-        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
-      } else {
-        // It's an unmatched surrogate; only append this code unit, in case the
-        // next code unit is the high surrogate of a surrogate pair.
-        output.push(value);
-        counter--;
-      }
-    } else {
-      output.push(value);
-    }
-  }
-  return output;
-};
-
-/**
- * Converts a digit/integer into a basic code point.
- */
-var digitToBasic = function (digit) {
-  //  0..25 map to ASCII a..z or A..Z
-  // 26..35 map to ASCII 0..9
-  return digit + 22 + 75 * (digit < 26);
-};
-
-/**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- */
-var adapt = function (delta, numPoints, firstTime) {
-  var k = 0;
-  delta = firstTime ? floor(delta / damp) : delta >> 1;
-  delta += floor(delta / numPoints);
-  for (; delta > baseMinusTMin * tMax >> 1; k += base) {
-    delta = floor(delta / baseMinusTMin);
-  }
-  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
-};
-
-/**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- */
-// eslint-disable-next-line  max-statements
-var encode = function (input) {
-  var output = [];
-
-  // Convert the input in UCS-2 to an array of Unicode code points.
-  input = ucs2decode(input);
-
-  // Cache the length.
-  var inputLength = input.length;
-
-  // Initialize the state.
-  var n = initialN;
-  var delta = 0;
-  var bias = initialBias;
-  var i, currentValue;
-
-  // Handle the basic code points.
-  for (i = 0; i < input.length; i++) {
-    currentValue = input[i];
-    if (currentValue < 0x80) {
-      output.push(stringFromCharCode(currentValue));
-    }
-  }
-
-  var basicLength = output.length; // number of basic code points.
-  var handledCPCount = basicLength; // number of code points that have been handled;
-
-  // Finish the basic string with a delimiter unless it's empty.
-  if (basicLength) {
-    output.push(delimiter);
-  }
-
-  // Main encoding loop:
-  while (handledCPCount < inputLength) {
-    // All non-basic code points < n have been handled already. Find the next larger one:
-    var m = maxInt;
-    for (i = 0; i < input.length; i++) {
-      currentValue = input[i];
-      if (currentValue >= n && currentValue < m) {
-        m = currentValue;
-      }
-    }
-
-    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.
-    var handledCPCountPlusOne = handledCPCount + 1;
-    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
-      throw RangeError(OVERFLOW_ERROR);
-    }
-
-    delta += (m - n) * handledCPCountPlusOne;
-    n = m;
-
-    for (i = 0; i < input.length; i++) {
-      currentValue = input[i];
-      if (currentValue < n && ++delta > maxInt) {
-        throw RangeError(OVERFLOW_ERROR);
-      }
-      if (currentValue == n) {
-        // Represent delta as a generalized variable-length integer.
-        var q = delta;
-        for (var k = base; /* no condition */; k += base) {
-          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-          if (q < t) break;
-          var qMinusT = q - t;
-          var baseMinusT = base - t;
-          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
-          q = floor(qMinusT / baseMinusT);
-        }
-
-        output.push(stringFromCharCode(digitToBasic(q)));
-        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
-        delta = 0;
-        ++handledCPCount;
-      }
-    }
-
-    ++delta;
-    ++n;
-  }
-  return output.join('');
-};
-
-module.exports = function (input) {
-  var encoded = [];
-  var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
-  var i, label;
-  for (i = 0; i < labels.length; i++) {
-    label = labels[i];
-    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
-  }
-  return encoded.join('.');
-};
diff --git a/node_modules/core-js-pure/internals/string-repeat.js b/node_modules/core-js-pure/internals/string-repeat.js
deleted file mode 100644
index ab872b2..0000000
--- a/node_modules/core-js-pure/internals/string-repeat.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var toInteger = require('../internals/to-integer');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-// `String.prototype.repeat` method implementation
-// https://tc39.github.io/ecma262/#sec-string.prototype.repeat
-module.exports = ''.repeat || function repeat(count) {
-  var str = String(requireObjectCoercible(this));
-  var result = '';
-  var n = toInteger(count);
-  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
-  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
-  return result;
-};
diff --git a/node_modules/core-js-pure/internals/string-trim-forced.js b/node_modules/core-js-pure/internals/string-trim-forced.js
deleted file mode 100644
index 1b169ad..0000000
--- a/node_modules/core-js-pure/internals/string-trim-forced.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var fails = require('../internals/fails');
-var whitespaces = require('../internals/whitespaces');
-
-var non = '\u200B\u0085\u180E';
-
-// check that a method works with the correct list
-// of whitespaces and has a correct name
-module.exports = function (METHOD_NAME) {
-  return fails(function () {
-    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
-  });
-};
diff --git a/node_modules/core-js-pure/internals/string-trim.js b/node_modules/core-js-pure/internals/string-trim.js
deleted file mode 100644
index 294a32c..0000000
--- a/node_modules/core-js-pure/internals/string-trim.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var whitespaces = require('../internals/whitespaces');
-
-var whitespace = '[' + whitespaces + ']';
-var ltrim = RegExp('^' + whitespace + whitespace + '*');
-var rtrim = RegExp(whitespace + whitespace + '*$');
-
-// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
-var createMethod = function (TYPE) {
-  return function ($this) {
-    var string = String(requireObjectCoercible($this));
-    if (TYPE & 1) string = string.replace(ltrim, '');
-    if (TYPE & 2) string = string.replace(rtrim, '');
-    return string;
-  };
-};
-
-module.exports = {
-  // `String.prototype.{ trimLeft, trimStart }` methods
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
-  start: createMethod(1),
-  // `String.prototype.{ trimRight, trimEnd }` methods
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
-  end: createMethod(2),
-  // `String.prototype.trim` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trim
-  trim: createMethod(3)
-};
diff --git a/node_modules/core-js-pure/internals/task.js b/node_modules/core-js-pure/internals/task.js
deleted file mode 100644
index 834585f..0000000
--- a/node_modules/core-js-pure/internals/task.js
+++ /dev/null
@@ -1,101 +0,0 @@
-var global = require('../internals/global');
-var fails = require('../internals/fails');
-var classof = require('../internals/classof-raw');
-var bind = require('../internals/function-bind-context');
-var html = require('../internals/html');
-var createElement = require('../internals/document-create-element');
-var IS_IOS = require('../internals/engine-is-ios');
-
-var location = global.location;
-var set = global.setImmediate;
-var clear = global.clearImmediate;
-var process = global.process;
-var MessageChannel = global.MessageChannel;
-var Dispatch = global.Dispatch;
-var counter = 0;
-var queue = {};
-var ONREADYSTATECHANGE = 'onreadystatechange';
-var defer, channel, port;
-
-var run = function (id) {
-  // eslint-disable-next-line no-prototype-builtins
-  if (queue.hasOwnProperty(id)) {
-    var fn = queue[id];
-    delete queue[id];
-    fn();
-  }
-};
-
-var runner = function (id) {
-  return function () {
-    run(id);
-  };
-};
-
-var listener = function (event) {
-  run(event.data);
-};
-
-var post = function (id) {
-  // old engines have not location.origin
-  global.postMessage(id + '', location.protocol + '//' + location.host);
-};
-
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if (!set || !clear) {
-  set = function setImmediate(fn) {
-    var args = [];
-    var i = 1;
-    while (arguments.length > i) args.push(arguments[i++]);
-    queue[++counter] = function () {
-      // eslint-disable-next-line no-new-func
-      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
-    };
-    defer(counter);
-    return counter;
-  };
-  clear = function clearImmediate(id) {
-    delete queue[id];
-  };
-  // Node.js 0.8-
-  if (classof(process) == 'process') {
-    defer = function (id) {
-      process.nextTick(runner(id));
-    };
-  // Sphere (JS game engine) Dispatch API
-  } else if (Dispatch && Dispatch.now) {
-    defer = function (id) {
-      Dispatch.now(runner(id));
-    };
-  // Browsers with MessageChannel, includes WebWorkers
-  // except iOS - https://github.com/zloirock/core-js/issues/624
-  } else if (MessageChannel && !IS_IOS) {
-    channel = new MessageChannel();
-    port = channel.port2;
-    channel.port1.onmessage = listener;
-    defer = bind(port.postMessage, port, 1);
-  // Browsers with postMessage, skip WebWorkers
-  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
-  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {
-    defer = post;
-    global.addEventListener('message', listener, false);
-  // IE8-
-  } else if (ONREADYSTATECHANGE in createElement('script')) {
-    defer = function (id) {
-      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
-        html.removeChild(this);
-        run(id);
-      };
-    };
-  // Rest old browsers
-  } else {
-    defer = function (id) {
-      setTimeout(runner(id), 0);
-    };
-  }
-}
-
-module.exports = {
-  set: set,
-  clear: clear
-};
diff --git a/node_modules/core-js-pure/internals/this-number-value.js b/node_modules/core-js-pure/internals/this-number-value.js
deleted file mode 100644
index 7734b32..0000000
--- a/node_modules/core-js-pure/internals/this-number-value.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var classof = require('../internals/classof-raw');
-
-// `thisNumberValue` abstract operation
-// https://tc39.github.io/ecma262/#sec-thisnumbervalue
-module.exports = function (value) {
-  if (typeof value != 'number' && classof(value) != 'Number') {
-    throw TypeError('Incorrect invocation');
-  }
-  return +value;
-};
diff --git a/node_modules/core-js-pure/internals/to-absolute-index.js b/node_modules/core-js-pure/internals/to-absolute-index.js
deleted file mode 100644
index 35cfd59..0000000
--- a/node_modules/core-js-pure/internals/to-absolute-index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var toInteger = require('../internals/to-integer');
-
-var max = Math.max;
-var min = Math.min;
-
-// Helper for a popular repeating case of the spec:
-// Let integer be ? ToInteger(index).
-// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
-module.exports = function (index, length) {
-  var integer = toInteger(index);
-  return integer < 0 ? max(integer + length, 0) : min(integer, length);
-};
diff --git a/node_modules/core-js-pure/internals/to-index.js b/node_modules/core-js-pure/internals/to-index.js
deleted file mode 100644
index 004a3a2..0000000
--- a/node_modules/core-js-pure/internals/to-index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var toInteger = require('../internals/to-integer');
-var toLength = require('../internals/to-length');
-
-// `ToIndex` abstract operation
-// https://tc39.github.io/ecma262/#sec-toindex
-module.exports = function (it) {
-  if (it === undefined) return 0;
-  var number = toInteger(it);
-  var length = toLength(number);
-  if (number !== length) throw RangeError('Wrong length or index');
-  return length;
-};
diff --git a/node_modules/core-js-pure/internals/to-indexed-object.js b/node_modules/core-js-pure/internals/to-indexed-object.js
deleted file mode 100644
index 98f0799..0000000
--- a/node_modules/core-js-pure/internals/to-indexed-object.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// toObject with fallback for non-array-like ES3 strings
-var IndexedObject = require('../internals/indexed-object');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-module.exports = function (it) {
-  return IndexedObject(requireObjectCoercible(it));
-};
diff --git a/node_modules/core-js-pure/internals/to-integer.js b/node_modules/core-js-pure/internals/to-integer.js
deleted file mode 100644
index f7c6390..0000000
--- a/node_modules/core-js-pure/internals/to-integer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var ceil = Math.ceil;
-var floor = Math.floor;
-
-// `ToInteger` abstract operation
-// https://tc39.github.io/ecma262/#sec-tointeger
-module.exports = function (argument) {
-  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
-};
diff --git a/node_modules/core-js-pure/internals/to-length.js b/node_modules/core-js-pure/internals/to-length.js
deleted file mode 100644
index fbc2a49..0000000
--- a/node_modules/core-js-pure/internals/to-length.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var toInteger = require('../internals/to-integer');
-
-var min = Math.min;
-
-// `ToLength` abstract operation
-// https://tc39.github.io/ecma262/#sec-tolength
-module.exports = function (argument) {
-  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
-};
diff --git a/node_modules/core-js-pure/internals/to-object.js b/node_modules/core-js-pure/internals/to-object.js
deleted file mode 100644
index fd635e2..0000000
--- a/node_modules/core-js-pure/internals/to-object.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-// `ToObject` abstract operation
-// https://tc39.github.io/ecma262/#sec-toobject
-module.exports = function (argument) {
-  return Object(requireObjectCoercible(argument));
-};
diff --git a/node_modules/core-js-pure/internals/to-offset.js b/node_modules/core-js-pure/internals/to-offset.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/to-offset.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/to-positive-integer.js b/node_modules/core-js-pure/internals/to-positive-integer.js
deleted file mode 100644
index c92aca5..0000000
--- a/node_modules/core-js-pure/internals/to-positive-integer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var toInteger = require('../internals/to-integer');
-
-module.exports = function (it) {
-  var result = toInteger(it);
-  if (result < 0) throw RangeError("The argument can't be less than 0");
-  return result;
-};
diff --git a/node_modules/core-js-pure/internals/to-primitive.js b/node_modules/core-js-pure/internals/to-primitive.js
deleted file mode 100644
index 00a4031..0000000
--- a/node_modules/core-js-pure/internals/to-primitive.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var isObject = require('../internals/is-object');
-
-// `ToPrimitive` abstract operation
-// https://tc39.github.io/ecma262/#sec-toprimitive
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function (input, PREFERRED_STRING) {
-  if (!isObject(input)) return input;
-  var fn, val;
-  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
-  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
-  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
-  throw TypeError("Can't convert object to primitive value");
-};
diff --git a/node_modules/core-js-pure/internals/to-string-tag-support.js b/node_modules/core-js-pure/internals/to-string-tag-support.js
deleted file mode 100644
index 9e3ebfb..0000000
--- a/node_modules/core-js-pure/internals/to-string-tag-support.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-var test = {};
-
-test[TO_STRING_TAG] = 'z';
-
-module.exports = String(test) === '[object z]';
diff --git a/node_modules/core-js-pure/internals/typed-array-constructor.js b/node_modules/core-js-pure/internals/typed-array-constructor.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/typed-array-constructor.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/typed-array-constructors-require-wrappers.js b/node_modules/core-js-pure/internals/typed-array-constructors-require-wrappers.js
deleted file mode 100644
index 952f30a..0000000
--- a/node_modules/core-js-pure/internals/typed-array-constructors-require-wrappers.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* eslint-disable no-new */
-var global = require('../internals/global');
-var fails = require('../internals/fails');
-var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
-var NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;
-
-var ArrayBuffer = global.ArrayBuffer;
-var Int8Array = global.Int8Array;
-
-module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
-  Int8Array(1);
-}) || !fails(function () {
-  new Int8Array(-1);
-}) || !checkCorrectnessOfIteration(function (iterable) {
-  new Int8Array();
-  new Int8Array(null);
-  new Int8Array(1.5);
-  new Int8Array(iterable);
-}, true) || fails(function () {
-  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill
-  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;
-});
diff --git a/node_modules/core-js-pure/internals/typed-array-from.js b/node_modules/core-js-pure/internals/typed-array-from.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/internals/typed-array-from.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/internals/uid.js b/node_modules/core-js-pure/internals/uid.js
deleted file mode 100644
index 384c124..0000000
--- a/node_modules/core-js-pure/internals/uid.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var id = 0;
-var postfix = Math.random();
-
-module.exports = function (key) {
-  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
-};
diff --git a/node_modules/core-js-pure/internals/use-symbol-as-uid.js b/node_modules/core-js-pure/internals/use-symbol-as-uid.js
deleted file mode 100644
index 5654bf6..0000000
--- a/node_modules/core-js-pure/internals/use-symbol-as-uid.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var NATIVE_SYMBOL = require('../internals/native-symbol');
-
-module.exports = NATIVE_SYMBOL
-  // eslint-disable-next-line no-undef
-  && !Symbol.sham
-  // eslint-disable-next-line no-undef
-  && typeof Symbol.iterator == 'symbol';
diff --git a/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js b/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js
deleted file mode 100644
index 714b329..0000000
--- a/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-exports.f = wellKnownSymbol;
diff --git a/node_modules/core-js-pure/internals/well-known-symbol.js b/node_modules/core-js-pure/internals/well-known-symbol.js
deleted file mode 100644
index 3fcc8c3..0000000
--- a/node_modules/core-js-pure/internals/well-known-symbol.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var global = require('../internals/global');
-var shared = require('../internals/shared');
-var has = require('../internals/has');
-var uid = require('../internals/uid');
-var NATIVE_SYMBOL = require('../internals/native-symbol');
-var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
-
-var WellKnownSymbolsStore = shared('wks');
-var Symbol = global.Symbol;
-var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
-
-module.exports = function (name) {
-  if (!has(WellKnownSymbolsStore, name)) {
-    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];
-    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
-  } return WellKnownSymbolsStore[name];
-};
diff --git a/node_modules/core-js-pure/internals/whitespaces.js b/node_modules/core-js-pure/internals/whitespaces.js
deleted file mode 100644
index 0924bab..0000000
--- a/node_modules/core-js-pure/internals/whitespaces.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// a string of all valid unicode whitespaces
-// eslint-disable-next-line max-len
-module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
diff --git a/node_modules/core-js-pure/modules/README.md b/node_modules/core-js-pure/modules/README.md
deleted file mode 100644
index 0d6b3cb..0000000
--- a/node_modules/core-js-pure/modules/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains implementations of polyfills. It's not recommended to include in your projects directly if you don't completely understand what are you doing.
diff --git a/node_modules/core-js-pure/modules/es.array-buffer.constructor.js b/node_modules/core-js-pure/modules/es.array-buffer.constructor.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.array-buffer.constructor.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.array-buffer.is-view.js b/node_modules/core-js-pure/modules/es.array-buffer.is-view.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.array-buffer.is-view.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.array-buffer.slice.js b/node_modules/core-js-pure/modules/es.array-buffer.slice.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.array-buffer.slice.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.array.concat.js b/node_modules/core-js-pure/modules/es.array.concat.js
deleted file mode 100644
index 1c22499..0000000
--- a/node_modules/core-js-pure/modules/es.array.concat.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var isArray = require('../internals/is-array');
-var isObject = require('../internals/is-object');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var createProperty = require('../internals/create-property');
-var arraySpeciesCreate = require('../internals/array-species-create');
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var V8_VERSION = require('../internals/engine-v8-version');
-
-var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
-var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
-var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
-
-// We can't use this feature detection in V8 since it causes
-// deoptimization and serious performance degradation
-// https://github.com/zloirock/core-js/issues/679
-var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
-  var array = [];
-  array[IS_CONCAT_SPREADABLE] = false;
-  return array.concat()[0] !== array;
-});
-
-var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
-
-var isConcatSpreadable = function (O) {
-  if (!isObject(O)) return false;
-  var spreadable = O[IS_CONCAT_SPREADABLE];
-  return spreadable !== undefined ? !!spreadable : isArray(O);
-};
-
-var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
-
-// `Array.prototype.concat` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.concat
-// with adding support of @@isConcatSpreadable and @@species
-$({ target: 'Array', proto: true, forced: FORCED }, {
-  concat: function concat(arg) { // eslint-disable-line no-unused-vars
-    var O = toObject(this);
-    var A = arraySpeciesCreate(O, 0);
-    var n = 0;
-    var i, k, length, len, E;
-    for (i = -1, length = arguments.length; i < length; i++) {
-      E = i === -1 ? O : arguments[i];
-      if (isConcatSpreadable(E)) {
-        len = toLength(E.length);
-        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
-        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
-      } else {
-        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
-        createProperty(A, n++, E);
-      }
-    }
-    A.length = n;
-    return A;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.copy-within.js b/node_modules/core-js-pure/modules/es.array.copy-within.js
deleted file mode 100644
index 1fb0dda..0000000
--- a/node_modules/core-js-pure/modules/es.array.copy-within.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var copyWithin = require('../internals/array-copy-within');
-var addToUnscopables = require('../internals/add-to-unscopables');
-
-// `Array.prototype.copyWithin` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
-$({ target: 'Array', proto: true }, {
-  copyWithin: copyWithin
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('copyWithin');
diff --git a/node_modules/core-js-pure/modules/es.array.every.js b/node_modules/core-js-pure/modules/es.array.every.js
deleted file mode 100644
index 231c5c2..0000000
--- a/node_modules/core-js-pure/modules/es.array.every.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $every = require('../internals/array-iteration').every;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('every');
-var USES_TO_LENGTH = arrayMethodUsesToLength('every');
-
-// `Array.prototype.every` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.every
-$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
-  every: function every(callbackfn /* , thisArg */) {
-    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.fill.js b/node_modules/core-js-pure/modules/es.array.fill.js
deleted file mode 100644
index ba9f4b4..0000000
--- a/node_modules/core-js-pure/modules/es.array.fill.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var fill = require('../internals/array-fill');
-var addToUnscopables = require('../internals/add-to-unscopables');
-
-// `Array.prototype.fill` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.fill
-$({ target: 'Array', proto: true }, {
-  fill: fill
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('fill');
diff --git a/node_modules/core-js-pure/modules/es.array.filter.js b/node_modules/core-js-pure/modules/es.array.filter.js
deleted file mode 100644
index df2509b..0000000
--- a/node_modules/core-js-pure/modules/es.array.filter.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $filter = require('../internals/array-iteration').filter;
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
-// Edge 14- issue
-var USES_TO_LENGTH = arrayMethodUsesToLength('filter');
-
-// `Array.prototype.filter` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.filter
-// with adding support of @@species
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  filter: function filter(callbackfn /* , thisArg */) {
-    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.find-index.js b/node_modules/core-js-pure/modules/es.array.find-index.js
deleted file mode 100644
index 56c0b68..0000000
--- a/node_modules/core-js-pure/modules/es.array.find-index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $findIndex = require('../internals/array-iteration').findIndex;
-var addToUnscopables = require('../internals/add-to-unscopables');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var FIND_INDEX = 'findIndex';
-var SKIPS_HOLES = true;
-
-var USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);
-
-// Shouldn't skip holes
-if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
-
-// `Array.prototype.findIndex` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
-$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
-  findIndex: function findIndex(callbackfn /* , that = undefined */) {
-    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables(FIND_INDEX);
diff --git a/node_modules/core-js-pure/modules/es.array.find.js b/node_modules/core-js-pure/modules/es.array.find.js
deleted file mode 100644
index ad37cc7..0000000
--- a/node_modules/core-js-pure/modules/es.array.find.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $find = require('../internals/array-iteration').find;
-var addToUnscopables = require('../internals/add-to-unscopables');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var FIND = 'find';
-var SKIPS_HOLES = true;
-
-var USES_TO_LENGTH = arrayMethodUsesToLength(FIND);
-
-// Shouldn't skip holes
-if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
-
-// `Array.prototype.find` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.find
-$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
-  find: function find(callbackfn /* , that = undefined */) {
-    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables(FIND);
diff --git a/node_modules/core-js-pure/modules/es.array.flat-map.js b/node_modules/core-js-pure/modules/es.array.flat-map.js
deleted file mode 100644
index 5469bee..0000000
--- a/node_modules/core-js-pure/modules/es.array.flat-map.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var flattenIntoArray = require('../internals/flatten-into-array');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var aFunction = require('../internals/a-function');
-var arraySpeciesCreate = require('../internals/array-species-create');
-
-// `Array.prototype.flatMap` method
-// https://github.com/tc39/proposal-flatMap
-$({ target: 'Array', proto: true }, {
-  flatMap: function flatMap(callbackfn /* , thisArg */) {
-    var O = toObject(this);
-    var sourceLen = toLength(O.length);
-    var A;
-    aFunction(callbackfn);
-    A = arraySpeciesCreate(O, 0);
-    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-    return A;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.flat.js b/node_modules/core-js-pure/modules/es.array.flat.js
deleted file mode 100644
index cb2c9d7..0000000
--- a/node_modules/core-js-pure/modules/es.array.flat.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var flattenIntoArray = require('../internals/flatten-into-array');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var toInteger = require('../internals/to-integer');
-var arraySpeciesCreate = require('../internals/array-species-create');
-
-// `Array.prototype.flat` method
-// https://github.com/tc39/proposal-flatMap
-$({ target: 'Array', proto: true }, {
-  flat: function flat(/* depthArg = 1 */) {
-    var depthArg = arguments.length ? arguments[0] : undefined;
-    var O = toObject(this);
-    var sourceLen = toLength(O.length);
-    var A = arraySpeciesCreate(O, 0);
-    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
-    return A;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.for-each.js b/node_modules/core-js-pure/modules/es.array.for-each.js
deleted file mode 100644
index 4fb29d0..0000000
--- a/node_modules/core-js-pure/modules/es.array.for-each.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var forEach = require('../internals/array-for-each');
-
-// `Array.prototype.forEach` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {
-  forEach: forEach
-});
diff --git a/node_modules/core-js-pure/modules/es.array.from.js b/node_modules/core-js-pure/modules/es.array.from.js
deleted file mode 100644
index 5c21cbc..0000000
--- a/node_modules/core-js-pure/modules/es.array.from.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-var from = require('../internals/array-from');
-var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
-
-var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
-  Array.from(iterable);
-});
-
-// `Array.from` method
-// https://tc39.github.io/ecma262/#sec-array.from
-$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
-  from: from
-});
diff --git a/node_modules/core-js-pure/modules/es.array.includes.js b/node_modules/core-js-pure/modules/es.array.includes.js
deleted file mode 100644
index 0036556..0000000
--- a/node_modules/core-js-pure/modules/es.array.includes.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $includes = require('../internals/array-includes').includes;
-var addToUnscopables = require('../internals/add-to-unscopables');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
-
-// `Array.prototype.includes` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.includes
-$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {
-  includes: function includes(el /* , fromIndex = 0 */) {
-    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('includes');
diff --git a/node_modules/core-js-pure/modules/es.array.index-of.js b/node_modules/core-js-pure/modules/es.array.index-of.js
deleted file mode 100644
index 5a1442b..0000000
--- a/node_modules/core-js-pure/modules/es.array.index-of.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $indexOf = require('../internals/array-includes').indexOf;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var nativeIndexOf = [].indexOf;
-
-var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
-var STRICT_METHOD = arrayMethodIsStrict('indexOf');
-var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
-
-// `Array.prototype.indexOf` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
-$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
-  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
-    return NEGATIVE_ZERO
-      // convert -0 to +0
-      ? nativeIndexOf.apply(this, arguments) || 0
-      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.is-array.js b/node_modules/core-js-pure/modules/es.array.is-array.js
deleted file mode 100644
index b77fad6..0000000
--- a/node_modules/core-js-pure/modules/es.array.is-array.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var isArray = require('../internals/is-array');
-
-// `Array.isArray` method
-// https://tc39.github.io/ecma262/#sec-array.isarray
-$({ target: 'Array', stat: true }, {
-  isArray: isArray
-});
diff --git a/node_modules/core-js-pure/modules/es.array.iterator.js b/node_modules/core-js-pure/modules/es.array.iterator.js
deleted file mode 100644
index 5e64422..0000000
--- a/node_modules/core-js-pure/modules/es.array.iterator.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-var toIndexedObject = require('../internals/to-indexed-object');
-var addToUnscopables = require('../internals/add-to-unscopables');
-var Iterators = require('../internals/iterators');
-var InternalStateModule = require('../internals/internal-state');
-var defineIterator = require('../internals/define-iterator');
-
-var ARRAY_ITERATOR = 'Array Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
-
-// `Array.prototype.entries` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.entries
-// `Array.prototype.keys` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.keys
-// `Array.prototype.values` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.values
-// `Array.prototype[@@iterator]` method
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator
-// `CreateArrayIterator` internal method
-// https://tc39.github.io/ecma262/#sec-createarrayiterator
-module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
-  setInternalState(this, {
-    type: ARRAY_ITERATOR,
-    target: toIndexedObject(iterated), // target
-    index: 0,                          // next index
-    kind: kind                         // kind
-  });
-// `%ArrayIteratorPrototype%.next` method
-// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next
-}, function () {
-  var state = getInternalState(this);
-  var target = state.target;
-  var kind = state.kind;
-  var index = state.index++;
-  if (!target || index >= target.length) {
-    state.target = undefined;
-    return { value: undefined, done: true };
-  }
-  if (kind == 'keys') return { value: index, done: false };
-  if (kind == 'values') return { value: target[index], done: false };
-  return { value: [index, target[index]], done: false };
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values%
-// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject
-// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject
-Iterators.Arguments = Iterators.Array;
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries');
diff --git a/node_modules/core-js-pure/modules/es.array.join.js b/node_modules/core-js-pure/modules/es.array.join.js
deleted file mode 100644
index 79ad8d2..0000000
--- a/node_modules/core-js-pure/modules/es.array.join.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IndexedObject = require('../internals/indexed-object');
-var toIndexedObject = require('../internals/to-indexed-object');
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-
-var nativeJoin = [].join;
-
-var ES3_STRINGS = IndexedObject != Object;
-var STRICT_METHOD = arrayMethodIsStrict('join', ',');
-
-// `Array.prototype.join` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.join
-$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
-  join: function join(separator) {
-    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.last-index-of.js b/node_modules/core-js-pure/modules/es.array.last-index-of.js
deleted file mode 100644
index d209055..0000000
--- a/node_modules/core-js-pure/modules/es.array.last-index-of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var lastIndexOf = require('../internals/array-last-index-of');
-
-// `Array.prototype.lastIndexOf` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
-$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {
-  lastIndexOf: lastIndexOf
-});
diff --git a/node_modules/core-js-pure/modules/es.array.map.js b/node_modules/core-js-pure/modules/es.array.map.js
deleted file mode 100644
index f9a8cdf..0000000
--- a/node_modules/core-js-pure/modules/es.array.map.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $map = require('../internals/array-iteration').map;
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
-// FF49- issue
-var USES_TO_LENGTH = arrayMethodUsesToLength('map');
-
-// `Array.prototype.map` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.map
-// with adding support of @@species
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  map: function map(callbackfn /* , thisArg */) {
-    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.of.js b/node_modules/core-js-pure/modules/es.array.of.js
deleted file mode 100644
index 2788091..0000000
--- a/node_modules/core-js-pure/modules/es.array.of.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var createProperty = require('../internals/create-property');
-
-var ISNT_GENERIC = fails(function () {
-  function F() { /* empty */ }
-  return !(Array.of.call(F) instanceof F);
-});
-
-// `Array.of` method
-// https://tc39.github.io/ecma262/#sec-array.of
-// WebKit Array.of isn't generic
-$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {
-  of: function of(/* ...args */) {
-    var index = 0;
-    var argumentsLength = arguments.length;
-    var result = new (typeof this == 'function' ? this : Array)(argumentsLength);
-    while (argumentsLength > index) createProperty(result, index, arguments[index++]);
-    result.length = argumentsLength;
-    return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.reduce-right.js b/node_modules/core-js-pure/modules/es.array.reduce-right.js
deleted file mode 100644
index 37aeb2d..0000000
--- a/node_modules/core-js-pure/modules/es.array.reduce-right.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $reduceRight = require('../internals/array-reduce').right;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('reduceRight');
-// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
-var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
-
-// `Array.prototype.reduceRight` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
-$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
-  reduceRight: function reduceRight(callbackfn /* , initialValue */) {
-    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.reduce.js b/node_modules/core-js-pure/modules/es.array.reduce.js
deleted file mode 100644
index 40e0458..0000000
--- a/node_modules/core-js-pure/modules/es.array.reduce.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $reduce = require('../internals/array-reduce').left;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('reduce');
-var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
-
-// `Array.prototype.reduce` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
-$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
-  reduce: function reduce(callbackfn /* , initialValue */) {
-    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.reverse.js b/node_modules/core-js-pure/modules/es.array.reverse.js
deleted file mode 100644
index bfe96d5..0000000
--- a/node_modules/core-js-pure/modules/es.array.reverse.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var isArray = require('../internals/is-array');
-
-var nativeReverse = [].reverse;
-var test = [1, 2];
-
-// `Array.prototype.reverse` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.reverse
-// fix for Safari 12.0 bug
-// https://bugs.webkit.org/show_bug.cgi?id=188794
-$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {
-  reverse: function reverse() {
-    // eslint-disable-next-line no-self-assign
-    if (isArray(this)) this.length = this.length;
-    return nativeReverse.call(this);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.slice.js b/node_modules/core-js-pure/modules/es.array.slice.js
deleted file mode 100644
index 27609f5..0000000
--- a/node_modules/core-js-pure/modules/es.array.slice.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var isObject = require('../internals/is-object');
-var isArray = require('../internals/is-array');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-var toLength = require('../internals/to-length');
-var toIndexedObject = require('../internals/to-indexed-object');
-var createProperty = require('../internals/create-property');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
-var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });
-
-var SPECIES = wellKnownSymbol('species');
-var nativeSlice = [].slice;
-var max = Math.max;
-
-// `Array.prototype.slice` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.slice
-// fallback for not array-like ES3 strings and DOM objects
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  slice: function slice(start, end) {
-    var O = toIndexedObject(this);
-    var length = toLength(O.length);
-    var k = toAbsoluteIndex(start, length);
-    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
-    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
-    var Constructor, result, n;
-    if (isArray(O)) {
-      Constructor = O.constructor;
-      // cross-realm fallback
-      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
-        Constructor = undefined;
-      } else if (isObject(Constructor)) {
-        Constructor = Constructor[SPECIES];
-        if (Constructor === null) Constructor = undefined;
-      }
-      if (Constructor === Array || Constructor === undefined) {
-        return nativeSlice.call(O, k, fin);
-      }
-    }
-    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
-    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
-    result.length = n;
-    return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.some.js b/node_modules/core-js-pure/modules/es.array.some.js
deleted file mode 100644
index e143d07..0000000
--- a/node_modules/core-js-pure/modules/es.array.some.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $some = require('../internals/array-iteration').some;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('some');
-var USES_TO_LENGTH = arrayMethodUsesToLength('some');
-
-// `Array.prototype.some` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.some
-$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
-  some: function some(callbackfn /* , thisArg */) {
-    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.sort.js b/node_modules/core-js-pure/modules/es.array.sort.js
deleted file mode 100644
index 1b46f51..0000000
--- a/node_modules/core-js-pure/modules/es.array.sort.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var toObject = require('../internals/to-object');
-var fails = require('../internals/fails');
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-
-var test = [];
-var nativeSort = test.sort;
-
-// IE8-
-var FAILS_ON_UNDEFINED = fails(function () {
-  test.sort(undefined);
-});
-// V8 bug
-var FAILS_ON_NULL = fails(function () {
-  test.sort(null);
-});
-// Old WebKit
-var STRICT_METHOD = arrayMethodIsStrict('sort');
-
-var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;
-
-// `Array.prototype.sort` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.sort
-$({ target: 'Array', proto: true, forced: FORCED }, {
-  sort: function sort(comparefn) {
-    return comparefn === undefined
-      ? nativeSort.call(toObject(this))
-      : nativeSort.call(toObject(this), aFunction(comparefn));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.species.js b/node_modules/core-js-pure/modules/es.array.species.js
deleted file mode 100644
index a0e7829..0000000
--- a/node_modules/core-js-pure/modules/es.array.species.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var setSpecies = require('../internals/set-species');
-
-// `Array[@@species]` getter
-// https://tc39.github.io/ecma262/#sec-get-array-@@species
-setSpecies('Array');
diff --git a/node_modules/core-js-pure/modules/es.array.splice.js b/node_modules/core-js-pure/modules/es.array.splice.js
deleted file mode 100644
index 31debca..0000000
--- a/node_modules/core-js-pure/modules/es.array.splice.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-var toInteger = require('../internals/to-integer');
-var toLength = require('../internals/to-length');
-var toObject = require('../internals/to-object');
-var arraySpeciesCreate = require('../internals/array-species-create');
-var createProperty = require('../internals/create-property');
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
-var USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });
-
-var max = Math.max;
-var min = Math.min;
-var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
-var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
-
-// `Array.prototype.splice` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.splice
-// with adding support of @@species
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  splice: function splice(start, deleteCount /* , ...items */) {
-    var O = toObject(this);
-    var len = toLength(O.length);
-    var actualStart = toAbsoluteIndex(start, len);
-    var argumentsLength = arguments.length;
-    var insertCount, actualDeleteCount, A, k, from, to;
-    if (argumentsLength === 0) {
-      insertCount = actualDeleteCount = 0;
-    } else if (argumentsLength === 1) {
-      insertCount = 0;
-      actualDeleteCount = len - actualStart;
-    } else {
-      insertCount = argumentsLength - 2;
-      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);
-    }
-    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {
-      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
-    }
-    A = arraySpeciesCreate(O, actualDeleteCount);
-    for (k = 0; k < actualDeleteCount; k++) {
-      from = actualStart + k;
-      if (from in O) createProperty(A, k, O[from]);
-    }
-    A.length = actualDeleteCount;
-    if (insertCount < actualDeleteCount) {
-      for (k = actualStart; k < len - actualDeleteCount; k++) {
-        from = k + actualDeleteCount;
-        to = k + insertCount;
-        if (from in O) O[to] = O[from];
-        else delete O[to];
-      }
-      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
-    } else if (insertCount > actualDeleteCount) {
-      for (k = len - actualDeleteCount; k > actualStart; k--) {
-        from = k + actualDeleteCount - 1;
-        to = k + insertCount - 1;
-        if (from in O) O[to] = O[from];
-        else delete O[to];
-      }
-    }
-    for (k = 0; k < insertCount; k++) {
-      O[k + actualStart] = arguments[k + 2];
-    }
-    O.length = len - actualDeleteCount + insertCount;
-    return A;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js b/node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js
deleted file mode 100644
index 593cf05..0000000
--- a/node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// this method was added to unscopables after implementation
-// in popular engines, so it's moved to a separate module
-var addToUnscopables = require('../internals/add-to-unscopables');
-
-addToUnscopables('flatMap');
diff --git a/node_modules/core-js-pure/modules/es.array.unscopables.flat.js b/node_modules/core-js-pure/modules/es.array.unscopables.flat.js
deleted file mode 100644
index ce6656c..0000000
--- a/node_modules/core-js-pure/modules/es.array.unscopables.flat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// this method was added to unscopables after implementation
-// in popular engines, so it's moved to a separate module
-var addToUnscopables = require('../internals/add-to-unscopables');
-
-addToUnscopables('flat');
diff --git a/node_modules/core-js-pure/modules/es.data-view.js b/node_modules/core-js-pure/modules/es.data-view.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.data-view.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.date.now.js b/node_modules/core-js-pure/modules/es.date.now.js
deleted file mode 100644
index c4dc75b..0000000
--- a/node_modules/core-js-pure/modules/es.date.now.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-
-// `Date.now` method
-// https://tc39.github.io/ecma262/#sec-date.now
-$({ target: 'Date', stat: true }, {
-  now: function now() {
-    return new Date().getTime();
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.date.to-iso-string.js b/node_modules/core-js-pure/modules/es.date.to-iso-string.js
deleted file mode 100644
index 14f8ae0..0000000
--- a/node_modules/core-js-pure/modules/es.date.to-iso-string.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-var toISOString = require('../internals/date-to-iso-string');
-
-// `Date.prototype.toISOString` method
-// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
-// PhantomJS / old WebKit has a broken implementations
-$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {
-  toISOString: toISOString
-});
diff --git a/node_modules/core-js-pure/modules/es.date.to-json.js b/node_modules/core-js-pure/modules/es.date.to-json.js
deleted file mode 100644
index 592f9e8..0000000
--- a/node_modules/core-js-pure/modules/es.date.to-json.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var toObject = require('../internals/to-object');
-var toPrimitive = require('../internals/to-primitive');
-var toISOString = require('../internals/date-to-iso-string');
-var classof = require('../internals/classof-raw');
-var fails = require('../internals/fails');
-
-var FORCED = fails(function () {
-  return new Date(NaN).toJSON() !== null
-    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
-});
-
-$({ target: 'Date', proto: true, forced: FORCED }, {
-  // eslint-disable-next-line no-unused-vars
-  toJSON: function toJSON(key) {
-    var O = toObject(this);
-    var pv = toPrimitive(O);
-    return typeof pv == 'number' && !isFinite(pv) ? null :
-      (!('toISOString' in O) && classof(O) == 'Date') ? toISOString.call(O) : O.toISOString();
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.date.to-primitive.js b/node_modules/core-js-pure/modules/es.date.to-primitive.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.date.to-primitive.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.date.to-string.js b/node_modules/core-js-pure/modules/es.date.to-string.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.date.to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.function.bind.js b/node_modules/core-js-pure/modules/es.function.bind.js
deleted file mode 100644
index fb33e96..0000000
--- a/node_modules/core-js-pure/modules/es.function.bind.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var bind = require('../internals/function-bind');
-
-// `Function.prototype.bind` method
-// https://tc39.github.io/ecma262/#sec-function.prototype.bind
-$({ target: 'Function', proto: true }, {
-  bind: bind
-});
diff --git a/node_modules/core-js-pure/modules/es.function.has-instance.js b/node_modules/core-js-pure/modules/es.function.has-instance.js
deleted file mode 100644
index 01383bd..0000000
--- a/node_modules/core-js-pure/modules/es.function.has-instance.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var isObject = require('../internals/is-object');
-var definePropertyModule = require('../internals/object-define-property');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var HAS_INSTANCE = wellKnownSymbol('hasInstance');
-var FunctionPrototype = Function.prototype;
-
-// `Function.prototype[@@hasInstance]` method
-// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance
-if (!(HAS_INSTANCE in FunctionPrototype)) {
-  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
-    if (typeof this != 'function' || !isObject(O)) return false;
-    if (!isObject(this.prototype)) return O instanceof this;
-    // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
-    while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
-    return false;
-  } });
-}
diff --git a/node_modules/core-js-pure/modules/es.function.name.js b/node_modules/core-js-pure/modules/es.function.name.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.function.name.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.global-this.js b/node_modules/core-js-pure/modules/es.global-this.js
deleted file mode 100644
index 7e925c8..0000000
--- a/node_modules/core-js-pure/modules/es.global-this.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var global = require('../internals/global');
-
-// `globalThis` object
-// https://github.com/tc39/proposal-global
-$({ global: true }, {
-  globalThis: global
-});
diff --git a/node_modules/core-js-pure/modules/es.json.stringify.js b/node_modules/core-js-pure/modules/es.json.stringify.js
deleted file mode 100644
index 56ba89f..0000000
--- a/node_modules/core-js-pure/modules/es.json.stringify.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var $ = require('../internals/export');
-var getBuiltIn = require('../internals/get-built-in');
-var fails = require('../internals/fails');
-
-var $stringify = getBuiltIn('JSON', 'stringify');
-var re = /[\uD800-\uDFFF]/g;
-var low = /^[\uD800-\uDBFF]$/;
-var hi = /^[\uDC00-\uDFFF]$/;
-
-var fix = function (match, offset, string) {
-  var prev = string.charAt(offset - 1);
-  var next = string.charAt(offset + 1);
-  if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {
-    return '\\u' + match.charCodeAt(0).toString(16);
-  } return match;
-};
-
-var FORCED = fails(function () {
-  return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
-    || $stringify('\uDEAD') !== '"\\udead"';
-});
-
-if ($stringify) {
-  // https://github.com/tc39/proposal-well-formed-stringify
-  $({ target: 'JSON', stat: true, forced: FORCED }, {
-    // eslint-disable-next-line no-unused-vars
-    stringify: function stringify(it, replacer, space) {
-      var result = $stringify.apply(null, arguments);
-      return typeof result == 'string' ? result.replace(re, fix) : result;
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.json.to-string-tag.js b/node_modules/core-js-pure/modules/es.json.to-string-tag.js
deleted file mode 100644
index bdfa0cd..0000000
--- a/node_modules/core-js-pure/modules/es.json.to-string-tag.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var global = require('../internals/global');
-var setToStringTag = require('../internals/set-to-string-tag');
-
-// JSON[@@toStringTag] property
-// https://tc39.github.io/ecma262/#sec-json-@@tostringtag
-setToStringTag(global.JSON, 'JSON', true);
diff --git a/node_modules/core-js-pure/modules/es.map.js b/node_modules/core-js-pure/modules/es.map.js
deleted file mode 100644
index fa8ecce..0000000
--- a/node_modules/core-js-pure/modules/es.map.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var collection = require('../internals/collection');
-var collectionStrong = require('../internals/collection-strong');
-
-// `Map` constructor
-// https://tc39.github.io/ecma262/#sec-map-objects
-module.exports = collection('Map', function (init) {
-  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };
-}, collectionStrong);
diff --git a/node_modules/core-js-pure/modules/es.math.acosh.js b/node_modules/core-js-pure/modules/es.math.acosh.js
deleted file mode 100644
index 62c85a4..0000000
--- a/node_modules/core-js-pure/modules/es.math.acosh.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var $ = require('../internals/export');
-var log1p = require('../internals/math-log1p');
-
-var nativeAcosh = Math.acosh;
-var log = Math.log;
-var sqrt = Math.sqrt;
-var LN2 = Math.LN2;
-
-var FORCED = !nativeAcosh
-  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
-  || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710
-  // Tor Browser bug: Math.acosh(Infinity) -> NaN
-  || nativeAcosh(Infinity) != Infinity;
-
-// `Math.acosh` method
-// https://tc39.github.io/ecma262/#sec-math.acosh
-$({ target: 'Math', stat: true, forced: FORCED }, {
-  acosh: function acosh(x) {
-    return (x = +x) < 1 ? NaN : x > 94906265.62425156
-      ? log(x) + LN2
-      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.asinh.js b/node_modules/core-js-pure/modules/es.math.asinh.js
deleted file mode 100644
index 9308e21..0000000
--- a/node_modules/core-js-pure/modules/es.math.asinh.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-
-var nativeAsinh = Math.asinh;
-var log = Math.log;
-var sqrt = Math.sqrt;
-
-function asinh(x) {
-  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
-}
-
-// `Math.asinh` method
-// https://tc39.github.io/ecma262/#sec-math.asinh
-// Tor Browser bug: Math.asinh(0) -> -0
-$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {
-  asinh: asinh
-});
diff --git a/node_modules/core-js-pure/modules/es.math.atanh.js b/node_modules/core-js-pure/modules/es.math.atanh.js
deleted file mode 100644
index 9116f8e..0000000
--- a/node_modules/core-js-pure/modules/es.math.atanh.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-
-var nativeAtanh = Math.atanh;
-var log = Math.log;
-
-// `Math.atanh` method
-// https://tc39.github.io/ecma262/#sec-math.atanh
-// Tor Browser bug: Math.atanh(-0) -> 0
-$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {
-  atanh: function atanh(x) {
-    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.cbrt.js b/node_modules/core-js-pure/modules/es.math.cbrt.js
deleted file mode 100644
index b93416f..0000000
--- a/node_modules/core-js-pure/modules/es.math.cbrt.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-var sign = require('../internals/math-sign');
-
-var abs = Math.abs;
-var pow = Math.pow;
-
-// `Math.cbrt` method
-// https://tc39.github.io/ecma262/#sec-math.cbrt
-$({ target: 'Math', stat: true }, {
-  cbrt: function cbrt(x) {
-    return sign(x = +x) * pow(abs(x), 1 / 3);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.clz32.js b/node_modules/core-js-pure/modules/es.math.clz32.js
deleted file mode 100644
index 7a18e64..0000000
--- a/node_modules/core-js-pure/modules/es.math.clz32.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-
-var floor = Math.floor;
-var log = Math.log;
-var LOG2E = Math.LOG2E;
-
-// `Math.clz32` method
-// https://tc39.github.io/ecma262/#sec-math.clz32
-$({ target: 'Math', stat: true }, {
-  clz32: function clz32(x) {
-    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.cosh.js b/node_modules/core-js-pure/modules/es.math.cosh.js
deleted file mode 100644
index 0c7322a..0000000
--- a/node_modules/core-js-pure/modules/es.math.cosh.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var expm1 = require('../internals/math-expm1');
-
-var nativeCosh = Math.cosh;
-var abs = Math.abs;
-var E = Math.E;
-
-// `Math.cosh` method
-// https://tc39.github.io/ecma262/#sec-math.cosh
-$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {
-  cosh: function cosh(x) {
-    var t = expm1(abs(x) - 1) + 1;
-    return (t + 1 / (t * E * E)) * (E / 2);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.expm1.js b/node_modules/core-js-pure/modules/es.math.expm1.js
deleted file mode 100644
index 956eb6f..0000000
--- a/node_modules/core-js-pure/modules/es.math.expm1.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $ = require('../internals/export');
-var expm1 = require('../internals/math-expm1');
-
-// `Math.expm1` method
-// https://tc39.github.io/ecma262/#sec-math.expm1
-$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });
diff --git a/node_modules/core-js-pure/modules/es.math.fround.js b/node_modules/core-js-pure/modules/es.math.fround.js
deleted file mode 100644
index 5df62db..0000000
--- a/node_modules/core-js-pure/modules/es.math.fround.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $ = require('../internals/export');
-var fround = require('../internals/math-fround');
-
-// `Math.fround` method
-// https://tc39.github.io/ecma262/#sec-math.fround
-$({ target: 'Math', stat: true }, { fround: fround });
diff --git a/node_modules/core-js-pure/modules/es.math.hypot.js b/node_modules/core-js-pure/modules/es.math.hypot.js
deleted file mode 100644
index 0e8d17b..0000000
--- a/node_modules/core-js-pure/modules/es.math.hypot.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var $ = require('../internals/export');
-
-var $hypot = Math.hypot;
-var abs = Math.abs;
-var sqrt = Math.sqrt;
-
-// Chrome 77 bug
-// https://bugs.chromium.org/p/v8/issues/detail?id=9546
-var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
-
-// `Math.hypot` method
-// https://tc39.github.io/ecma262/#sec-math.hypot
-$({ target: 'Math', stat: true, forced: BUGGY }, {
-  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
-    var sum = 0;
-    var i = 0;
-    var aLen = arguments.length;
-    var larg = 0;
-    var arg, div;
-    while (i < aLen) {
-      arg = abs(arguments[i++]);
-      if (larg < arg) {
-        div = larg / arg;
-        sum = sum * div * div + 1;
-        larg = arg;
-      } else if (arg > 0) {
-        div = arg / larg;
-        sum += div * div;
-      } else sum += arg;
-    }
-    return larg === Infinity ? Infinity : larg * sqrt(sum);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.imul.js b/node_modules/core-js-pure/modules/es.math.imul.js
deleted file mode 100644
index 3882a3e..0000000
--- a/node_modules/core-js-pure/modules/es.math.imul.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-
-var nativeImul = Math.imul;
-
-var FORCED = fails(function () {
-  return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;
-});
-
-// `Math.imul` method
-// https://tc39.github.io/ecma262/#sec-math.imul
-// some WebKit versions fails with big numbers, some has wrong arity
-$({ target: 'Math', stat: true, forced: FORCED }, {
-  imul: function imul(x, y) {
-    var UINT16 = 0xFFFF;
-    var xn = +x;
-    var yn = +y;
-    var xl = UINT16 & xn;
-    var yl = UINT16 & yn;
-    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.log10.js b/node_modules/core-js-pure/modules/es.math.log10.js
deleted file mode 100644
index 86ba3db..0000000
--- a/node_modules/core-js-pure/modules/es.math.log10.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-
-var log = Math.log;
-var LOG10E = Math.LOG10E;
-
-// `Math.log10` method
-// https://tc39.github.io/ecma262/#sec-math.log10
-$({ target: 'Math', stat: true }, {
-  log10: function log10(x) {
-    return log(x) * LOG10E;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.log1p.js b/node_modules/core-js-pure/modules/es.math.log1p.js
deleted file mode 100644
index 0327661..0000000
--- a/node_modules/core-js-pure/modules/es.math.log1p.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $ = require('../internals/export');
-var log1p = require('../internals/math-log1p');
-
-// `Math.log1p` method
-// https://tc39.github.io/ecma262/#sec-math.log1p
-$({ target: 'Math', stat: true }, { log1p: log1p });
diff --git a/node_modules/core-js-pure/modules/es.math.log2.js b/node_modules/core-js-pure/modules/es.math.log2.js
deleted file mode 100644
index 22fcedf..0000000
--- a/node_modules/core-js-pure/modules/es.math.log2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-
-var log = Math.log;
-var LN2 = Math.LN2;
-
-// `Math.log2` method
-// https://tc39.github.io/ecma262/#sec-math.log2
-$({ target: 'Math', stat: true }, {
-  log2: function log2(x) {
-    return log(x) / LN2;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.sign.js b/node_modules/core-js-pure/modules/es.math.sign.js
deleted file mode 100644
index 19e3a78..0000000
--- a/node_modules/core-js-pure/modules/es.math.sign.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var sign = require('../internals/math-sign');
-
-// `Math.sign` method
-// https://tc39.github.io/ecma262/#sec-math.sign
-$({ target: 'Math', stat: true }, {
-  sign: sign
-});
diff --git a/node_modules/core-js-pure/modules/es.math.sinh.js b/node_modules/core-js-pure/modules/es.math.sinh.js
deleted file mode 100644
index 11ba610..0000000
--- a/node_modules/core-js-pure/modules/es.math.sinh.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var expm1 = require('../internals/math-expm1');
-
-var abs = Math.abs;
-var exp = Math.exp;
-var E = Math.E;
-
-var FORCED = fails(function () {
-  return Math.sinh(-2e-17) != -2e-17;
-});
-
-// `Math.sinh` method
-// https://tc39.github.io/ecma262/#sec-math.sinh
-// V8 near Chromium 38 has a problem with very small numbers
-$({ target: 'Math', stat: true, forced: FORCED }, {
-  sinh: function sinh(x) {
-    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.tanh.js b/node_modules/core-js-pure/modules/es.math.tanh.js
deleted file mode 100644
index 3b57402..0000000
--- a/node_modules/core-js-pure/modules/es.math.tanh.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var $ = require('../internals/export');
-var expm1 = require('../internals/math-expm1');
-
-var exp = Math.exp;
-
-// `Math.tanh` method
-// https://tc39.github.io/ecma262/#sec-math.tanh
-$({ target: 'Math', stat: true }, {
-  tanh: function tanh(x) {
-    var a = expm1(x = +x);
-    var b = expm1(-x);
-    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.math.to-string-tag.js b/node_modules/core-js-pure/modules/es.math.to-string-tag.js
deleted file mode 100644
index 4ab0811..0000000
--- a/node_modules/core-js-pure/modules/es.math.to-string-tag.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var setToStringTag = require('../internals/set-to-string-tag');
-
-// Math[@@toStringTag] property
-// https://tc39.github.io/ecma262/#sec-math-@@tostringtag
-setToStringTag(Math, 'Math', true);
diff --git a/node_modules/core-js-pure/modules/es.math.trunc.js b/node_modules/core-js-pure/modules/es.math.trunc.js
deleted file mode 100644
index 0e8351d..0000000
--- a/node_modules/core-js-pure/modules/es.math.trunc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-
-var ceil = Math.ceil;
-var floor = Math.floor;
-
-// `Math.trunc` method
-// https://tc39.github.io/ecma262/#sec-math.trunc
-$({ target: 'Math', stat: true }, {
-  trunc: function trunc(it) {
-    return (it > 0 ? floor : ceil)(it);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.number.constructor.js b/node_modules/core-js-pure/modules/es.number.constructor.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.number.constructor.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.number.epsilon.js b/node_modules/core-js-pure/modules/es.number.epsilon.js
deleted file mode 100644
index b602724..0000000
--- a/node_modules/core-js-pure/modules/es.number.epsilon.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var $ = require('../internals/export');
-
-// `Number.EPSILON` constant
-// https://tc39.github.io/ecma262/#sec-number.epsilon
-$({ target: 'Number', stat: true }, {
-  EPSILON: Math.pow(2, -52)
-});
diff --git a/node_modules/core-js-pure/modules/es.number.is-finite.js b/node_modules/core-js-pure/modules/es.number.is-finite.js
deleted file mode 100644
index 6308eb4..0000000
--- a/node_modules/core-js-pure/modules/es.number.is-finite.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var $ = require('../internals/export');
-var numberIsFinite = require('../internals/number-is-finite');
-
-// `Number.isFinite` method
-// https://tc39.github.io/ecma262/#sec-number.isfinite
-$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });
diff --git a/node_modules/core-js-pure/modules/es.number.is-integer.js b/node_modules/core-js-pure/modules/es.number.is-integer.js
deleted file mode 100644
index b15b739..0000000
--- a/node_modules/core-js-pure/modules/es.number.is-integer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var isInteger = require('../internals/is-integer');
-
-// `Number.isInteger` method
-// https://tc39.github.io/ecma262/#sec-number.isinteger
-$({ target: 'Number', stat: true }, {
-  isInteger: isInteger
-});
diff --git a/node_modules/core-js-pure/modules/es.number.is-nan.js b/node_modules/core-js-pure/modules/es.number.is-nan.js
deleted file mode 100644
index f384acc..0000000
--- a/node_modules/core-js-pure/modules/es.number.is-nan.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var $ = require('../internals/export');
-
-// `Number.isNaN` method
-// https://tc39.github.io/ecma262/#sec-number.isnan
-$({ target: 'Number', stat: true }, {
-  isNaN: function isNaN(number) {
-    // eslint-disable-next-line no-self-compare
-    return number != number;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.number.is-safe-integer.js b/node_modules/core-js-pure/modules/es.number.is-safe-integer.js
deleted file mode 100644
index cea6704..0000000
--- a/node_modules/core-js-pure/modules/es.number.is-safe-integer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var isInteger = require('../internals/is-integer');
-
-var abs = Math.abs;
-
-// `Number.isSafeInteger` method
-// https://tc39.github.io/ecma262/#sec-number.issafeinteger
-$({ target: 'Number', stat: true }, {
-  isSafeInteger: function isSafeInteger(number) {
-    return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.number.max-safe-integer.js b/node_modules/core-js-pure/modules/es.number.max-safe-integer.js
deleted file mode 100644
index 7fc5890..0000000
--- a/node_modules/core-js-pure/modules/es.number.max-safe-integer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var $ = require('../internals/export');
-
-// `Number.MAX_SAFE_INTEGER` constant
-// https://tc39.github.io/ecma262/#sec-number.max_safe_integer
-$({ target: 'Number', stat: true }, {
-  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF
-});
diff --git a/node_modules/core-js-pure/modules/es.number.min-safe-integer.js b/node_modules/core-js-pure/modules/es.number.min-safe-integer.js
deleted file mode 100644
index 500a8f6..0000000
--- a/node_modules/core-js-pure/modules/es.number.min-safe-integer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var $ = require('../internals/export');
-
-// `Number.MIN_SAFE_INTEGER` constant
-// https://tc39.github.io/ecma262/#sec-number.min_safe_integer
-$({ target: 'Number', stat: true }, {
-  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF
-});
diff --git a/node_modules/core-js-pure/modules/es.number.parse-float.js b/node_modules/core-js-pure/modules/es.number.parse-float.js
deleted file mode 100644
index 5310ec1..0000000
--- a/node_modules/core-js-pure/modules/es.number.parse-float.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var parseFloat = require('../internals/number-parse-float');
-
-// `Number.parseFloat` method
-// https://tc39.github.io/ecma262/#sec-number.parseFloat
-$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {
-  parseFloat: parseFloat
-});
diff --git a/node_modules/core-js-pure/modules/es.number.parse-int.js b/node_modules/core-js-pure/modules/es.number.parse-int.js
deleted file mode 100644
index 7f31df1..0000000
--- a/node_modules/core-js-pure/modules/es.number.parse-int.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var parseInt = require('../internals/number-parse-int');
-
-// `Number.parseInt` method
-// https://tc39.github.io/ecma262/#sec-number.parseint
-$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {
-  parseInt: parseInt
-});
diff --git a/node_modules/core-js-pure/modules/es.number.to-fixed.js b/node_modules/core-js-pure/modules/es.number.to-fixed.js
deleted file mode 100644
index fa4d3e2..0000000
--- a/node_modules/core-js-pure/modules/es.number.to-fixed.js
+++ /dev/null
@@ -1,126 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var toInteger = require('../internals/to-integer');
-var thisNumberValue = require('../internals/this-number-value');
-var repeat = require('../internals/string-repeat');
-var fails = require('../internals/fails');
-
-var nativeToFixed = 1.0.toFixed;
-var floor = Math.floor;
-
-var pow = function (x, n, acc) {
-  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
-};
-
-var log = function (x) {
-  var n = 0;
-  var x2 = x;
-  while (x2 >= 4096) {
-    n += 12;
-    x2 /= 4096;
-  }
-  while (x2 >= 2) {
-    n += 1;
-    x2 /= 2;
-  } return n;
-};
-
-var FORCED = nativeToFixed && (
-  0.00008.toFixed(3) !== '0.000' ||
-  0.9.toFixed(0) !== '1' ||
-  1.255.toFixed(2) !== '1.25' ||
-  1000000000000000128.0.toFixed(0) !== '1000000000000000128'
-) || !fails(function () {
-  // V8 ~ Android 4.3-
-  nativeToFixed.call({});
-});
-
-// `Number.prototype.toFixed` method
-// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed
-$({ target: 'Number', proto: true, forced: FORCED }, {
-  // eslint-disable-next-line max-statements
-  toFixed: function toFixed(fractionDigits) {
-    var number = thisNumberValue(this);
-    var fractDigits = toInteger(fractionDigits);
-    var data = [0, 0, 0, 0, 0, 0];
-    var sign = '';
-    var result = '0';
-    var e, z, j, k;
-
-    var multiply = function (n, c) {
-      var index = -1;
-      var c2 = c;
-      while (++index < 6) {
-        c2 += n * data[index];
-        data[index] = c2 % 1e7;
-        c2 = floor(c2 / 1e7);
-      }
-    };
-
-    var divide = function (n) {
-      var index = 6;
-      var c = 0;
-      while (--index >= 0) {
-        c += data[index];
-        data[index] = floor(c / n);
-        c = (c % n) * 1e7;
-      }
-    };
-
-    var dataToString = function () {
-      var index = 6;
-      var s = '';
-      while (--index >= 0) {
-        if (s !== '' || index === 0 || data[index] !== 0) {
-          var t = String(data[index]);
-          s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
-        }
-      } return s;
-    };
-
-    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
-    // eslint-disable-next-line no-self-compare
-    if (number != number) return 'NaN';
-    if (number <= -1e21 || number >= 1e21) return String(number);
-    if (number < 0) {
-      sign = '-';
-      number = -number;
-    }
-    if (number > 1e-21) {
-      e = log(number * pow(2, 69, 1)) - 69;
-      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);
-      z *= 0x10000000000000;
-      e = 52 - e;
-      if (e > 0) {
-        multiply(0, z);
-        j = fractDigits;
-        while (j >= 7) {
-          multiply(1e7, 0);
-          j -= 7;
-        }
-        multiply(pow(10, j, 1), 0);
-        j = e - 1;
-        while (j >= 23) {
-          divide(1 << 23);
-          j -= 23;
-        }
-        divide(1 << j);
-        multiply(1, 1);
-        divide(2);
-        result = dataToString();
-      } else {
-        multiply(0, z);
-        multiply(1 << -e, 0);
-        result = dataToString() + repeat.call('0', fractDigits);
-      }
-    }
-    if (fractDigits > 0) {
-      k = result.length;
-      result = sign + (k <= fractDigits
-        ? '0.' + repeat.call('0', fractDigits - k) + result
-        : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
-    } else {
-      result = sign + result;
-    } return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.number.to-precision.js b/node_modules/core-js-pure/modules/es.number.to-precision.js
deleted file mode 100644
index 7108296..0000000
--- a/node_modules/core-js-pure/modules/es.number.to-precision.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var thisNumberValue = require('../internals/this-number-value');
-
-var nativeToPrecision = 1.0.toPrecision;
-
-var FORCED = fails(function () {
-  // IE7-
-  return nativeToPrecision.call(1, undefined) !== '1';
-}) || !fails(function () {
-  // V8 ~ Android 4.3-
-  nativeToPrecision.call({});
-});
-
-// `Number.prototype.toPrecision` method
-// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision
-$({ target: 'Number', proto: true, forced: FORCED }, {
-  toPrecision: function toPrecision(precision) {
-    return precision === undefined
-      ? nativeToPrecision.call(thisNumberValue(this))
-      : nativeToPrecision.call(thisNumberValue(this), precision);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.assign.js b/node_modules/core-js-pure/modules/es.object.assign.js
deleted file mode 100644
index 5b00e6a..0000000
--- a/node_modules/core-js-pure/modules/es.object.assign.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var assign = require('../internals/object-assign');
-
-// `Object.assign` method
-// https://tc39.github.io/ecma262/#sec-object.assign
-$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
-  assign: assign
-});
diff --git a/node_modules/core-js-pure/modules/es.object.create.js b/node_modules/core-js-pure/modules/es.object.create.js
deleted file mode 100644
index 3c27869..0000000
--- a/node_modules/core-js-pure/modules/es.object.create.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var create = require('../internals/object-create');
-
-// `Object.create` method
-// https://tc39.github.io/ecma262/#sec-object.create
-$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
-  create: create
-});
diff --git a/node_modules/core-js-pure/modules/es.object.define-getter.js b/node_modules/core-js-pure/modules/es.object.define-getter.js
deleted file mode 100644
index 0a44e45..0000000
--- a/node_modules/core-js-pure/modules/es.object.define-getter.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var FORCED = require('../internals/object-prototype-accessors-forced');
-var toObject = require('../internals/to-object');
-var aFunction = require('../internals/a-function');
-var definePropertyModule = require('../internals/object-define-property');
-
-// `Object.prototype.__defineGetter__` method
-// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__
-if (DESCRIPTORS) {
-  $({ target: 'Object', proto: true, forced: FORCED }, {
-    __defineGetter__: function __defineGetter__(P, getter) {
-      definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.object.define-properties.js b/node_modules/core-js-pure/modules/es.object.define-properties.js
deleted file mode 100644
index 9400799..0000000
--- a/node_modules/core-js-pure/modules/es.object.define-properties.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var defineProperties = require('../internals/object-define-properties');
-
-// `Object.defineProperties` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperties
-$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
-  defineProperties: defineProperties
-});
diff --git a/node_modules/core-js-pure/modules/es.object.define-property.js b/node_modules/core-js-pure/modules/es.object.define-property.js
deleted file mode 100644
index 19fcf5b..0000000
--- a/node_modules/core-js-pure/modules/es.object.define-property.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var objectDefinePropertyModile = require('../internals/object-define-property');
-
-// `Object.defineProperty` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperty
-$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
-  defineProperty: objectDefinePropertyModile.f
-});
diff --git a/node_modules/core-js-pure/modules/es.object.define-setter.js b/node_modules/core-js-pure/modules/es.object.define-setter.js
deleted file mode 100644
index 4250177..0000000
--- a/node_modules/core-js-pure/modules/es.object.define-setter.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var FORCED = require('../internals/object-prototype-accessors-forced');
-var toObject = require('../internals/to-object');
-var aFunction = require('../internals/a-function');
-var definePropertyModule = require('../internals/object-define-property');
-
-// `Object.prototype.__defineSetter__` method
-// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__
-if (DESCRIPTORS) {
-  $({ target: 'Object', proto: true, forced: FORCED }, {
-    __defineSetter__: function __defineSetter__(P, setter) {
-      definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.object.entries.js b/node_modules/core-js-pure/modules/es.object.entries.js
deleted file mode 100644
index a22e693..0000000
--- a/node_modules/core-js-pure/modules/es.object.entries.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var $ = require('../internals/export');
-var $entries = require('../internals/object-to-array').entries;
-
-// `Object.entries` method
-// https://tc39.github.io/ecma262/#sec-object.entries
-$({ target: 'Object', stat: true }, {
-  entries: function entries(O) {
-    return $entries(O);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.freeze.js b/node_modules/core-js-pure/modules/es.object.freeze.js
deleted file mode 100644
index 0a623bd..0000000
--- a/node_modules/core-js-pure/modules/es.object.freeze.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var FREEZING = require('../internals/freezing');
-var fails = require('../internals/fails');
-var isObject = require('../internals/is-object');
-var onFreeze = require('../internals/internal-metadata').onFreeze;
-
-var nativeFreeze = Object.freeze;
-var FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });
-
-// `Object.freeze` method
-// https://tc39.github.io/ecma262/#sec-object.freeze
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
-  freeze: function freeze(it) {
-    return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.from-entries.js b/node_modules/core-js-pure/modules/es.object.from-entries.js
deleted file mode 100644
index 2886e81..0000000
--- a/node_modules/core-js-pure/modules/es.object.from-entries.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var createProperty = require('../internals/create-property');
-
-// `Object.fromEntries` method
-// https://github.com/tc39/proposal-object-from-entries
-$({ target: 'Object', stat: true }, {
-  fromEntries: function fromEntries(iterable) {
-    var obj = {};
-    iterate(iterable, function (k, v) {
-      createProperty(obj, k, v);
-    }, undefined, true);
-    return obj;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js b/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js
deleted file mode 100644
index bfeeb88..0000000
--- a/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var toIndexedObject = require('../internals/to-indexed-object');
-var nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var DESCRIPTORS = require('../internals/descriptors');
-
-var FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });
-var FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;
-
-// `Object.getOwnPropertyDescriptor` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
-$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {
-  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
-    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js b/node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js
deleted file mode 100644
index e29c917..0000000
--- a/node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var ownKeys = require('../internals/own-keys');
-var toIndexedObject = require('../internals/to-indexed-object');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-var createProperty = require('../internals/create-property');
-
-// `Object.getOwnPropertyDescriptors` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors
-$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
-  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
-    var O = toIndexedObject(object);
-    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
-    var keys = ownKeys(O);
-    var result = {};
-    var index = 0;
-    var key, descriptor;
-    while (keys.length > index) {
-      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
-      if (descriptor !== undefined) createProperty(result, key, descriptor);
-    }
-    return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.get-own-property-names.js b/node_modules/core-js-pure/modules/es.object.get-own-property-names.js
deleted file mode 100644
index 6a52f45..0000000
--- a/node_modules/core-js-pure/modules/es.object.get-own-property-names.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;
-
-var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });
-
-// `Object.getOwnPropertyNames` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
-  getOwnPropertyNames: nativeGetOwnPropertyNames
-});
diff --git a/node_modules/core-js-pure/modules/es.object.get-prototype-of.js b/node_modules/core-js-pure/modules/es.object.get-prototype-of.js
deleted file mode 100644
index 7cbb548..0000000
--- a/node_modules/core-js-pure/modules/es.object.get-prototype-of.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var toObject = require('../internals/to-object');
-var nativeGetPrototypeOf = require('../internals/object-get-prototype-of');
-var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
-
-var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });
-
-// `Object.getPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.getprototypeof
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {
-  getPrototypeOf: function getPrototypeOf(it) {
-    return nativeGetPrototypeOf(toObject(it));
-  }
-});
-
diff --git a/node_modules/core-js-pure/modules/es.object.is-extensible.js b/node_modules/core-js-pure/modules/es.object.is-extensible.js
deleted file mode 100644
index 556405b..0000000
--- a/node_modules/core-js-pure/modules/es.object.is-extensible.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var isObject = require('../internals/is-object');
-
-var nativeIsExtensible = Object.isExtensible;
-var FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });
-
-// `Object.isExtensible` method
-// https://tc39.github.io/ecma262/#sec-object.isextensible
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
-  isExtensible: function isExtensible(it) {
-    return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.is-frozen.js b/node_modules/core-js-pure/modules/es.object.is-frozen.js
deleted file mode 100644
index 060314d..0000000
--- a/node_modules/core-js-pure/modules/es.object.is-frozen.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var isObject = require('../internals/is-object');
-
-var nativeIsFrozen = Object.isFrozen;
-var FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });
-
-// `Object.isFrozen` method
-// https://tc39.github.io/ecma262/#sec-object.isfrozen
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
-  isFrozen: function isFrozen(it) {
-    return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.is-sealed.js b/node_modules/core-js-pure/modules/es.object.is-sealed.js
deleted file mode 100644
index 0f8b95f..0000000
--- a/node_modules/core-js-pure/modules/es.object.is-sealed.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var isObject = require('../internals/is-object');
-
-var nativeIsSealed = Object.isSealed;
-var FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });
-
-// `Object.isSealed` method
-// https://tc39.github.io/ecma262/#sec-object.issealed
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
-  isSealed: function isSealed(it) {
-    return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.is.js b/node_modules/core-js-pure/modules/es.object.is.js
deleted file mode 100644
index 9ef6f0a..0000000
--- a/node_modules/core-js-pure/modules/es.object.is.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var is = require('../internals/same-value');
-
-// `Object.is` method
-// https://tc39.github.io/ecma262/#sec-object.is
-$({ target: 'Object', stat: true }, {
-  is: is
-});
diff --git a/node_modules/core-js-pure/modules/es.object.keys.js b/node_modules/core-js-pure/modules/es.object.keys.js
deleted file mode 100644
index dc24884..0000000
--- a/node_modules/core-js-pure/modules/es.object.keys.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var $ = require('../internals/export');
-var toObject = require('../internals/to-object');
-var nativeKeys = require('../internals/object-keys');
-var fails = require('../internals/fails');
-
-var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });
-
-// `Object.keys` method
-// https://tc39.github.io/ecma262/#sec-object.keys
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
-  keys: function keys(it) {
-    return nativeKeys(toObject(it));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.lookup-getter.js b/node_modules/core-js-pure/modules/es.object.lookup-getter.js
deleted file mode 100644
index 46e3fd0..0000000
--- a/node_modules/core-js-pure/modules/es.object.lookup-getter.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var FORCED = require('../internals/object-prototype-accessors-forced');
-var toObject = require('../internals/to-object');
-var toPrimitive = require('../internals/to-primitive');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-
-// `Object.prototype.__lookupGetter__` method
-// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__
-if (DESCRIPTORS) {
-  $({ target: 'Object', proto: true, forced: FORCED }, {
-    __lookupGetter__: function __lookupGetter__(P) {
-      var O = toObject(this);
-      var key = toPrimitive(P, true);
-      var desc;
-      do {
-        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;
-      } while (O = getPrototypeOf(O));
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.object.lookup-setter.js b/node_modules/core-js-pure/modules/es.object.lookup-setter.js
deleted file mode 100644
index 57d49fa..0000000
--- a/node_modules/core-js-pure/modules/es.object.lookup-setter.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var FORCED = require('../internals/object-prototype-accessors-forced');
-var toObject = require('../internals/to-object');
-var toPrimitive = require('../internals/to-primitive');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-
-// `Object.prototype.__lookupSetter__` method
-// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__
-if (DESCRIPTORS) {
-  $({ target: 'Object', proto: true, forced: FORCED }, {
-    __lookupSetter__: function __lookupSetter__(P) {
-      var O = toObject(this);
-      var key = toPrimitive(P, true);
-      var desc;
-      do {
-        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;
-      } while (O = getPrototypeOf(O));
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.object.prevent-extensions.js b/node_modules/core-js-pure/modules/es.object.prevent-extensions.js
deleted file mode 100644
index bb7b268..0000000
--- a/node_modules/core-js-pure/modules/es.object.prevent-extensions.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var isObject = require('../internals/is-object');
-var onFreeze = require('../internals/internal-metadata').onFreeze;
-var FREEZING = require('../internals/freezing');
-var fails = require('../internals/fails');
-
-var nativePreventExtensions = Object.preventExtensions;
-var FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });
-
-// `Object.preventExtensions` method
-// https://tc39.github.io/ecma262/#sec-object.preventextensions
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
-  preventExtensions: function preventExtensions(it) {
-    return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.seal.js b/node_modules/core-js-pure/modules/es.object.seal.js
deleted file mode 100644
index 35fae0c..0000000
--- a/node_modules/core-js-pure/modules/es.object.seal.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var isObject = require('../internals/is-object');
-var onFreeze = require('../internals/internal-metadata').onFreeze;
-var FREEZING = require('../internals/freezing');
-var fails = require('../internals/fails');
-
-var nativeSeal = Object.seal;
-var FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });
-
-// `Object.seal` method
-// https://tc39.github.io/ecma262/#sec-object.seal
-$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
-  seal: function seal(it) {
-    return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.object.set-prototype-of.js b/node_modules/core-js-pure/modules/es.object.set-prototype-of.js
deleted file mode 100644
index cbe0578..0000000
--- a/node_modules/core-js-pure/modules/es.object.set-prototype-of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var setPrototypeOf = require('../internals/object-set-prototype-of');
-
-// `Object.setPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.setprototypeof
-$({ target: 'Object', stat: true }, {
-  setPrototypeOf: setPrototypeOf
-});
diff --git a/node_modules/core-js-pure/modules/es.object.to-string.js b/node_modules/core-js-pure/modules/es.object.to-string.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.object.to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.object.values.js b/node_modules/core-js-pure/modules/es.object.values.js
deleted file mode 100644
index a3074cf..0000000
--- a/node_modules/core-js-pure/modules/es.object.values.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var $ = require('../internals/export');
-var $values = require('../internals/object-to-array').values;
-
-// `Object.values` method
-// https://tc39.github.io/ecma262/#sec-object.values
-$({ target: 'Object', stat: true }, {
-  values: function values(O) {
-    return $values(O);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.parse-float.js b/node_modules/core-js-pure/modules/es.parse-float.js
deleted file mode 100644
index 1245deb..0000000
--- a/node_modules/core-js-pure/modules/es.parse-float.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var parseFloatImplementation = require('../internals/number-parse-float');
-
-// `parseFloat` method
-// https://tc39.github.io/ecma262/#sec-parsefloat-string
-$({ global: true, forced: parseFloat != parseFloatImplementation }, {
-  parseFloat: parseFloatImplementation
-});
diff --git a/node_modules/core-js-pure/modules/es.parse-int.js b/node_modules/core-js-pure/modules/es.parse-int.js
deleted file mode 100644
index b462541..0000000
--- a/node_modules/core-js-pure/modules/es.parse-int.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var parseIntImplementation = require('../internals/number-parse-int');
-
-// `parseInt` method
-// https://tc39.github.io/ecma262/#sec-parseint-string-radix
-$({ global: true, forced: parseInt != parseIntImplementation }, {
-  parseInt: parseIntImplementation
-});
diff --git a/node_modules/core-js-pure/modules/es.promise.all-settled.js b/node_modules/core-js-pure/modules/es.promise.all-settled.js
deleted file mode 100644
index 887f3a6..0000000
--- a/node_modules/core-js-pure/modules/es.promise.all-settled.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var newPromiseCapabilityModule = require('../internals/new-promise-capability');
-var perform = require('../internals/perform');
-var iterate = require('../internals/iterate');
-
-// `Promise.allSettled` method
-// https://github.com/tc39/proposal-promise-allSettled
-$({ target: 'Promise', stat: true }, {
-  allSettled: function allSettled(iterable) {
-    var C = this;
-    var capability = newPromiseCapabilityModule.f(C);
-    var resolve = capability.resolve;
-    var reject = capability.reject;
-    var result = perform(function () {
-      var promiseResolve = aFunction(C.resolve);
-      var values = [];
-      var counter = 0;
-      var remaining = 1;
-      iterate(iterable, function (promise) {
-        var index = counter++;
-        var alreadyCalled = false;
-        values.push(undefined);
-        remaining++;
-        promiseResolve.call(C, promise).then(function (value) {
-          if (alreadyCalled) return;
-          alreadyCalled = true;
-          values[index] = { status: 'fulfilled', value: value };
-          --remaining || resolve(values);
-        }, function (e) {
-          if (alreadyCalled) return;
-          alreadyCalled = true;
-          values[index] = { status: 'rejected', reason: e };
-          --remaining || resolve(values);
-        });
-      });
-      --remaining || resolve(values);
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.promise.finally.js b/node_modules/core-js-pure/modules/es.promise.finally.js
deleted file mode 100644
index 7efe3e5..0000000
--- a/node_modules/core-js-pure/modules/es.promise.finally.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var NativePromise = require('../internals/native-promise-constructor');
-var fails = require('../internals/fails');
-var getBuiltIn = require('../internals/get-built-in');
-var speciesConstructor = require('../internals/species-constructor');
-var promiseResolve = require('../internals/promise-resolve');
-var redefine = require('../internals/redefine');
-
-// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
-var NON_GENERIC = !!NativePromise && fails(function () {
-  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });
-});
-
-// `Promise.prototype.finally` method
-// https://tc39.github.io/ecma262/#sec-promise.prototype.finally
-$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
-  'finally': function (onFinally) {
-    var C = speciesConstructor(this, getBuiltIn('Promise'));
-    var isFunction = typeof onFinally == 'function';
-    return this.then(
-      isFunction ? function (x) {
-        return promiseResolve(C, onFinally()).then(function () { return x; });
-      } : onFinally,
-      isFunction ? function (e) {
-        return promiseResolve(C, onFinally()).then(function () { throw e; });
-      } : onFinally
-    );
-  }
-});
-
-// patch native Promise.prototype for native async functions
-if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
-  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
-}
diff --git a/node_modules/core-js-pure/modules/es.promise.js b/node_modules/core-js-pure/modules/es.promise.js
deleted file mode 100644
index b79d2bc..0000000
--- a/node_modules/core-js-pure/modules/es.promise.js
+++ /dev/null
@@ -1,379 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var global = require('../internals/global');
-var getBuiltIn = require('../internals/get-built-in');
-var NativePromise = require('../internals/native-promise-constructor');
-var redefine = require('../internals/redefine');
-var redefineAll = require('../internals/redefine-all');
-var setToStringTag = require('../internals/set-to-string-tag');
-var setSpecies = require('../internals/set-species');
-var isObject = require('../internals/is-object');
-var aFunction = require('../internals/a-function');
-var anInstance = require('../internals/an-instance');
-var classof = require('../internals/classof-raw');
-var inspectSource = require('../internals/inspect-source');
-var iterate = require('../internals/iterate');
-var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
-var speciesConstructor = require('../internals/species-constructor');
-var task = require('../internals/task').set;
-var microtask = require('../internals/microtask');
-var promiseResolve = require('../internals/promise-resolve');
-var hostReportErrors = require('../internals/host-report-errors');
-var newPromiseCapabilityModule = require('../internals/new-promise-capability');
-var perform = require('../internals/perform');
-var InternalStateModule = require('../internals/internal-state');
-var isForced = require('../internals/is-forced');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var V8_VERSION = require('../internals/engine-v8-version');
-
-var SPECIES = wellKnownSymbol('species');
-var PROMISE = 'Promise';
-var getInternalState = InternalStateModule.get;
-var setInternalState = InternalStateModule.set;
-var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
-var PromiseConstructor = NativePromise;
-var TypeError = global.TypeError;
-var document = global.document;
-var process = global.process;
-var $fetch = getBuiltIn('fetch');
-var newPromiseCapability = newPromiseCapabilityModule.f;
-var newGenericPromiseCapability = newPromiseCapability;
-var IS_NODE = classof(process) == 'process';
-var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
-var UNHANDLED_REJECTION = 'unhandledrejection';
-var REJECTION_HANDLED = 'rejectionhandled';
-var PENDING = 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-var HANDLED = 1;
-var UNHANDLED = 2;
-var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
-
-var FORCED = isForced(PROMISE, function () {
-  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
-  if (!GLOBAL_CORE_JS_PROMISE) {
-    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
-    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
-    // We can't detect it synchronously, so just check versions
-    if (V8_VERSION === 66) return true;
-    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
-    if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;
-  }
-  // We need Promise#finally in the pure version for preventing prototype pollution
-  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;
-  // We can't use @@species feature detection in V8 since it causes
-  // deoptimization and performance degradation
-  // https://github.com/zloirock/core-js/issues/679
-  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;
-  // Detect correctness of subclassing with @@species support
-  var promise = PromiseConstructor.resolve(1);
-  var FakePromise = function (exec) {
-    exec(function () { /* empty */ }, function () { /* empty */ });
-  };
-  var constructor = promise.constructor = {};
-  constructor[SPECIES] = FakePromise;
-  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);
-});
-
-var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
-  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });
-});
-
-// helpers
-var isThenable = function (it) {
-  var then;
-  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-};
-
-var notify = function (promise, state, isReject) {
-  if (state.notified) return;
-  state.notified = true;
-  var chain = state.reactions;
-  microtask(function () {
-    var value = state.value;
-    var ok = state.state == FULFILLED;
-    var index = 0;
-    // variable length - can't use forEach
-    while (chain.length > index) {
-      var reaction = chain[index++];
-      var handler = ok ? reaction.ok : reaction.fail;
-      var resolve = reaction.resolve;
-      var reject = reaction.reject;
-      var domain = reaction.domain;
-      var result, then, exited;
-      try {
-        if (handler) {
-          if (!ok) {
-            if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);
-            state.rejection = HANDLED;
-          }
-          if (handler === true) result = value;
-          else {
-            if (domain) domain.enter();
-            result = handler(value); // can throw
-            if (domain) {
-              domain.exit();
-              exited = true;
-            }
-          }
-          if (result === reaction.promise) {
-            reject(TypeError('Promise-chain cycle'));
-          } else if (then = isThenable(result)) {
-            then.call(result, resolve, reject);
-          } else resolve(result);
-        } else reject(value);
-      } catch (error) {
-        if (domain && !exited) domain.exit();
-        reject(error);
-      }
-    }
-    state.reactions = [];
-    state.notified = false;
-    if (isReject && !state.rejection) onUnhandled(promise, state);
-  });
-};
-
-var dispatchEvent = function (name, promise, reason) {
-  var event, handler;
-  if (DISPATCH_EVENT) {
-    event = document.createEvent('Event');
-    event.promise = promise;
-    event.reason = reason;
-    event.initEvent(name, false, true);
-    global.dispatchEvent(event);
-  } else event = { promise: promise, reason: reason };
-  if (handler = global['on' + name]) handler(event);
-  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
-};
-
-var onUnhandled = function (promise, state) {
-  task.call(global, function () {
-    var value = state.value;
-    var IS_UNHANDLED = isUnhandled(state);
-    var result;
-    if (IS_UNHANDLED) {
-      result = perform(function () {
-        if (IS_NODE) {
-          process.emit('unhandledRejection', value, promise);
-        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
-      });
-      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
-      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
-      if (result.error) throw result.value;
-    }
-  });
-};
-
-var isUnhandled = function (state) {
-  return state.rejection !== HANDLED && !state.parent;
-};
-
-var onHandleUnhandled = function (promise, state) {
-  task.call(global, function () {
-    if (IS_NODE) {
-      process.emit('rejectionHandled', promise);
-    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
-  });
-};
-
-var bind = function (fn, promise, state, unwrap) {
-  return function (value) {
-    fn(promise, state, value, unwrap);
-  };
-};
-
-var internalReject = function (promise, state, value, unwrap) {
-  if (state.done) return;
-  state.done = true;
-  if (unwrap) state = unwrap;
-  state.value = value;
-  state.state = REJECTED;
-  notify(promise, state, true);
-};
-
-var internalResolve = function (promise, state, value, unwrap) {
-  if (state.done) return;
-  state.done = true;
-  if (unwrap) state = unwrap;
-  try {
-    if (promise === value) throw TypeError("Promise can't be resolved itself");
-    var then = isThenable(value);
-    if (then) {
-      microtask(function () {
-        var wrapper = { done: false };
-        try {
-          then.call(value,
-            bind(internalResolve, promise, wrapper, state),
-            bind(internalReject, promise, wrapper, state)
-          );
-        } catch (error) {
-          internalReject(promise, wrapper, error, state);
-        }
-      });
-    } else {
-      state.value = value;
-      state.state = FULFILLED;
-      notify(promise, state, false);
-    }
-  } catch (error) {
-    internalReject(promise, { done: false }, error, state);
-  }
-};
-
-// constructor polyfill
-if (FORCED) {
-  // 25.4.3.1 Promise(executor)
-  PromiseConstructor = function Promise(executor) {
-    anInstance(this, PromiseConstructor, PROMISE);
-    aFunction(executor);
-    Internal.call(this);
-    var state = getInternalState(this);
-    try {
-      executor(bind(internalResolve, this, state), bind(internalReject, this, state));
-    } catch (error) {
-      internalReject(this, state, error);
-    }
-  };
-  // eslint-disable-next-line no-unused-vars
-  Internal = function Promise(executor) {
-    setInternalState(this, {
-      type: PROMISE,
-      done: false,
-      notified: false,
-      parent: false,
-      reactions: [],
-      rejection: false,
-      state: PENDING,
-      value: undefined
-    });
-  };
-  Internal.prototype = redefineAll(PromiseConstructor.prototype, {
-    // `Promise.prototype.then` method
-    // https://tc39.github.io/ecma262/#sec-promise.prototype.then
-    then: function then(onFulfilled, onRejected) {
-      var state = getInternalPromiseState(this);
-      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
-      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
-      reaction.fail = typeof onRejected == 'function' && onRejected;
-      reaction.domain = IS_NODE ? process.domain : undefined;
-      state.parent = true;
-      state.reactions.push(reaction);
-      if (state.state != PENDING) notify(this, state, false);
-      return reaction.promise;
-    },
-    // `Promise.prototype.catch` method
-    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch
-    'catch': function (onRejected) {
-      return this.then(undefined, onRejected);
-    }
-  });
-  OwnPromiseCapability = function () {
-    var promise = new Internal();
-    var state = getInternalState(promise);
-    this.promise = promise;
-    this.resolve = bind(internalResolve, promise, state);
-    this.reject = bind(internalReject, promise, state);
-  };
-  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
-    return C === PromiseConstructor || C === PromiseWrapper
-      ? new OwnPromiseCapability(C)
-      : newGenericPromiseCapability(C);
-  };
-
-  if (!IS_PURE && typeof NativePromise == 'function') {
-    nativeThen = NativePromise.prototype.then;
-
-    // wrap native Promise#then for native async functions
-    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
-      var that = this;
-      return new PromiseConstructor(function (resolve, reject) {
-        nativeThen.call(that, resolve, reject);
-      }).then(onFulfilled, onRejected);
-    // https://github.com/zloirock/core-js/issues/640
-    }, { unsafe: true });
-
-    // wrap fetch result
-    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {
-      // eslint-disable-next-line no-unused-vars
-      fetch: function fetch(input /* , init */) {
-        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
-      }
-    });
-  }
-}
-
-$({ global: true, wrap: true, forced: FORCED }, {
-  Promise: PromiseConstructor
-});
-
-setToStringTag(PromiseConstructor, PROMISE, false, true);
-setSpecies(PROMISE);
-
-PromiseWrapper = getBuiltIn(PROMISE);
-
-// statics
-$({ target: PROMISE, stat: true, forced: FORCED }, {
-  // `Promise.reject` method
-  // https://tc39.github.io/ecma262/#sec-promise.reject
-  reject: function reject(r) {
-    var capability = newPromiseCapability(this);
-    capability.reject.call(undefined, r);
-    return capability.promise;
-  }
-});
-
-$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {
-  // `Promise.resolve` method
-  // https://tc39.github.io/ecma262/#sec-promise.resolve
-  resolve: function resolve(x) {
-    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
-  }
-});
-
-$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
-  // `Promise.all` method
-  // https://tc39.github.io/ecma262/#sec-promise.all
-  all: function all(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var resolve = capability.resolve;
-    var reject = capability.reject;
-    var result = perform(function () {
-      var $promiseResolve = aFunction(C.resolve);
-      var values = [];
-      var counter = 0;
-      var remaining = 1;
-      iterate(iterable, function (promise) {
-        var index = counter++;
-        var alreadyCalled = false;
-        values.push(undefined);
-        remaining++;
-        $promiseResolve.call(C, promise).then(function (value) {
-          if (alreadyCalled) return;
-          alreadyCalled = true;
-          values[index] = value;
-          --remaining || resolve(values);
-        }, reject);
-      });
-      --remaining || resolve(values);
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  },
-  // `Promise.race` method
-  // https://tc39.github.io/ecma262/#sec-promise.race
-  race: function race(iterable) {
-    var C = this;
-    var capability = newPromiseCapability(C);
-    var reject = capability.reject;
-    var result = perform(function () {
-      var $promiseResolve = aFunction(C.resolve);
-      iterate(iterable, function (promise) {
-        $promiseResolve.call(C, promise).then(capability.resolve, reject);
-      });
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.apply.js b/node_modules/core-js-pure/modules/es.reflect.apply.js
deleted file mode 100644
index 634222b..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.apply.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var $ = require('../internals/export');
-var getBuiltIn = require('../internals/get-built-in');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var fails = require('../internals/fails');
-
-var nativeApply = getBuiltIn('Reflect', 'apply');
-var functionApply = Function.apply;
-
-// MS Edge argumentsList argument is optional
-var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
-  nativeApply(function () { /* empty */ });
-});
-
-// `Reflect.apply` method
-// https://tc39.github.io/ecma262/#sec-reflect.apply
-$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
-  apply: function apply(target, thisArgument, argumentsList) {
-    aFunction(target);
-    anObject(argumentsList);
-    return nativeApply
-      ? nativeApply(target, thisArgument, argumentsList)
-      : functionApply.call(target, thisArgument, argumentsList);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.construct.js b/node_modules/core-js-pure/modules/es.reflect.construct.js
deleted file mode 100644
index 9e678dd..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.construct.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var $ = require('../internals/export');
-var getBuiltIn = require('../internals/get-built-in');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var create = require('../internals/object-create');
-var bind = require('../internals/function-bind');
-var fails = require('../internals/fails');
-
-var nativeConstruct = getBuiltIn('Reflect', 'construct');
-
-// `Reflect.construct` method
-// https://tc39.github.io/ecma262/#sec-reflect.construct
-// MS Edge supports only 2 arguments and argumentsList argument is optional
-// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-var NEW_TARGET_BUG = fails(function () {
-  function F() { /* empty */ }
-  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);
-});
-var ARGS_BUG = !fails(function () {
-  nativeConstruct(function () { /* empty */ });
-});
-var FORCED = NEW_TARGET_BUG || ARGS_BUG;
-
-$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
-  construct: function construct(Target, args /* , newTarget */) {
-    aFunction(Target);
-    anObject(args);
-    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
-    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
-    if (Target == newTarget) {
-      // w/o altered newTarget, optimization for 0-4 arguments
-      switch (args.length) {
-        case 0: return new Target();
-        case 1: return new Target(args[0]);
-        case 2: return new Target(args[0], args[1]);
-        case 3: return new Target(args[0], args[1], args[2]);
-        case 4: return new Target(args[0], args[1], args[2], args[3]);
-      }
-      // w/o altered newTarget, lot of arguments case
-      var $args = [null];
-      $args.push.apply($args, args);
-      return new (bind.apply(Target, $args))();
-    }
-    // with altered newTarget, not support built-in constructors
-    var proto = newTarget.prototype;
-    var instance = create(isObject(proto) ? proto : Object.prototype);
-    var result = Function.apply.call(Target, instance, args);
-    return isObject(result) ? result : instance;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.define-property.js b/node_modules/core-js-pure/modules/es.reflect.define-property.js
deleted file mode 100644
index 44343f7..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.define-property.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var anObject = require('../internals/an-object');
-var toPrimitive = require('../internals/to-primitive');
-var definePropertyModule = require('../internals/object-define-property');
-var fails = require('../internals/fails');
-
-// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-var ERROR_INSTEAD_OF_FALSE = fails(function () {
-  // eslint-disable-next-line no-undef
-  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });
-});
-
-// `Reflect.defineProperty` method
-// https://tc39.github.io/ecma262/#sec-reflect.defineproperty
-$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {
-  defineProperty: function defineProperty(target, propertyKey, attributes) {
-    anObject(target);
-    var key = toPrimitive(propertyKey, true);
-    anObject(attributes);
-    try {
-      definePropertyModule.f(target, key, attributes);
-      return true;
-    } catch (error) {
-      return false;
-    }
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.delete-property.js b/node_modules/core-js-pure/modules/es.reflect.delete-property.js
deleted file mode 100644
index 8cfb32d..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.delete-property.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-
-// `Reflect.deleteProperty` method
-// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty
-$({ target: 'Reflect', stat: true }, {
-  deleteProperty: function deleteProperty(target, propertyKey) {
-    var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);
-    return descriptor && !descriptor.configurable ? false : delete target[propertyKey];
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.get-own-property-descriptor.js b/node_modules/core-js-pure/modules/es.reflect.get-own-property-descriptor.js
deleted file mode 100644
index 335aac4..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.get-own-property-descriptor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var anObject = require('../internals/an-object');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-
-// `Reflect.getOwnPropertyDescriptor` method
-// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor
-$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {
-  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
-    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.get-prototype-of.js b/node_modules/core-js-pure/modules/es.reflect.get-prototype-of.js
deleted file mode 100644
index 9785949..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.get-prototype-of.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var objectGetPrototypeOf = require('../internals/object-get-prototype-of');
-var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
-
-// `Reflect.getPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof
-$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {
-  getPrototypeOf: function getPrototypeOf(target) {
-    return objectGetPrototypeOf(anObject(target));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.get.js b/node_modules/core-js-pure/modules/es.reflect.get.js
deleted file mode 100644
index 10e7962..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.get.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var $ = require('../internals/export');
-var isObject = require('../internals/is-object');
-var anObject = require('../internals/an-object');
-var has = require('../internals/has');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-
-// `Reflect.get` method
-// https://tc39.github.io/ecma262/#sec-reflect.get
-function get(target, propertyKey /* , receiver */) {
-  var receiver = arguments.length < 3 ? target : arguments[2];
-  var descriptor, prototype;
-  if (anObject(target) === receiver) return target[propertyKey];
-  if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')
-    ? descriptor.value
-    : descriptor.get === undefined
-      ? undefined
-      : descriptor.get.call(receiver);
-  if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);
-}
-
-$({ target: 'Reflect', stat: true }, {
-  get: get
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.has.js b/node_modules/core-js-pure/modules/es.reflect.has.js
deleted file mode 100644
index c6a8ced..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.has.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-
-// `Reflect.has` method
-// https://tc39.github.io/ecma262/#sec-reflect.has
-$({ target: 'Reflect', stat: true }, {
-  has: function has(target, propertyKey) {
-    return propertyKey in target;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.is-extensible.js b/node_modules/core-js-pure/modules/es.reflect.is-extensible.js
deleted file mode 100644
index 876eae3..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.is-extensible.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-
-var objectIsExtensible = Object.isExtensible;
-
-// `Reflect.isExtensible` method
-// https://tc39.github.io/ecma262/#sec-reflect.isextensible
-$({ target: 'Reflect', stat: true }, {
-  isExtensible: function isExtensible(target) {
-    anObject(target);
-    return objectIsExtensible ? objectIsExtensible(target) : true;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.own-keys.js b/node_modules/core-js-pure/modules/es.reflect.own-keys.js
deleted file mode 100644
index 7a8f3f0..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.own-keys.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var ownKeys = require('../internals/own-keys');
-
-// `Reflect.ownKeys` method
-// https://tc39.github.io/ecma262/#sec-reflect.ownkeys
-$({ target: 'Reflect', stat: true }, {
-  ownKeys: ownKeys
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.prevent-extensions.js b/node_modules/core-js-pure/modules/es.reflect.prevent-extensions.js
deleted file mode 100644
index 92d0475..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.prevent-extensions.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var $ = require('../internals/export');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var FREEZING = require('../internals/freezing');
-
-// `Reflect.preventExtensions` method
-// https://tc39.github.io/ecma262/#sec-reflect.preventextensions
-$({ target: 'Reflect', stat: true, sham: !FREEZING }, {
-  preventExtensions: function preventExtensions(target) {
-    anObject(target);
-    try {
-      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');
-      if (objectPreventExtensions) objectPreventExtensions(target);
-      return true;
-    } catch (error) {
-      return false;
-    }
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.set-prototype-of.js b/node_modules/core-js-pure/modules/es.reflect.set-prototype-of.js
deleted file mode 100644
index 7900440..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.set-prototype-of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var aPossiblePrototype = require('../internals/a-possible-prototype');
-var objectSetPrototypeOf = require('../internals/object-set-prototype-of');
-
-// `Reflect.setPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof
-if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {
-  setPrototypeOf: function setPrototypeOf(target, proto) {
-    anObject(target);
-    aPossiblePrototype(proto);
-    try {
-      objectSetPrototypeOf(target, proto);
-      return true;
-    } catch (error) {
-      return false;
-    }
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.reflect.set.js b/node_modules/core-js-pure/modules/es.reflect.set.js
deleted file mode 100644
index a16b762..0000000
--- a/node_modules/core-js-pure/modules/es.reflect.set.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var has = require('../internals/has');
-var fails = require('../internals/fails');
-var definePropertyModule = require('../internals/object-define-property');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-
-// `Reflect.set` method
-// https://tc39.github.io/ecma262/#sec-reflect.set
-function set(target, propertyKey, V /* , receiver */) {
-  var receiver = arguments.length < 4 ? target : arguments[3];
-  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
-  var existingDescriptor, prototype;
-  if (!ownDescriptor) {
-    if (isObject(prototype = getPrototypeOf(target))) {
-      return set(prototype, propertyKey, V, receiver);
-    }
-    ownDescriptor = createPropertyDescriptor(0);
-  }
-  if (has(ownDescriptor, 'value')) {
-    if (ownDescriptor.writable === false || !isObject(receiver)) return false;
-    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {
-      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
-      existingDescriptor.value = V;
-      definePropertyModule.f(receiver, propertyKey, existingDescriptor);
-    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));
-    return true;
-  }
-  return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);
-}
-
-// MS Edge 17-18 Reflect.set allows setting the property to object
-// with non-writable property on the prototype
-var MS_EDGE_BUG = fails(function () {
-  var object = definePropertyModule.f({}, 'a', { configurable: true });
-  // eslint-disable-next-line no-undef
-  return Reflect.set(getPrototypeOf(object), 'a', 1, object) !== false;
-});
-
-$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {
-  set: set
-});
diff --git a/node_modules/core-js-pure/modules/es.regexp.constructor.js b/node_modules/core-js-pure/modules/es.regexp.constructor.js
deleted file mode 100644
index 3f99a69..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var setSpecies = require('../internals/set-species');
-
-setSpecies('RegExp');
diff --git a/node_modules/core-js-pure/modules/es.regexp.exec.js b/node_modules/core-js-pure/modules/es.regexp.exec.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.exec.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.regexp.flags.js b/node_modules/core-js-pure/modules/es.regexp.flags.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.flags.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.regexp.sticky.js b/node_modules/core-js-pure/modules/es.regexp.sticky.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.sticky.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.regexp.test.js b/node_modules/core-js-pure/modules/es.regexp.test.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.test.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.regexp.to-string.js b/node_modules/core-js-pure/modules/es.regexp.to-string.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.regexp.to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.set.js b/node_modules/core-js-pure/modules/es.set.js
deleted file mode 100644
index ac90041..0000000
--- a/node_modules/core-js-pure/modules/es.set.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var collection = require('../internals/collection');
-var collectionStrong = require('../internals/collection-strong');
-
-// `Set` constructor
-// https://tc39.github.io/ecma262/#sec-set-objects
-module.exports = collection('Set', function (init) {
-  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };
-}, collectionStrong);
diff --git a/node_modules/core-js-pure/modules/es.string.anchor.js b/node_modules/core-js-pure/modules/es.string.anchor.js
deleted file mode 100644
index 004cc0a..0000000
--- a/node_modules/core-js-pure/modules/es.string.anchor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.anchor` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.anchor
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {
-  anchor: function anchor(name) {
-    return createHTML(this, 'a', 'name', name);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.big.js b/node_modules/core-js-pure/modules/es.string.big.js
deleted file mode 100644
index 3273d00..0000000
--- a/node_modules/core-js-pure/modules/es.string.big.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.big` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.big
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {
-  big: function big() {
-    return createHTML(this, 'big', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.blink.js b/node_modules/core-js-pure/modules/es.string.blink.js
deleted file mode 100644
index 9373820..0000000
--- a/node_modules/core-js-pure/modules/es.string.blink.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.blink` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.blink
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {
-  blink: function blink() {
-    return createHTML(this, 'blink', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.bold.js b/node_modules/core-js-pure/modules/es.string.bold.js
deleted file mode 100644
index ea8c48c..0000000
--- a/node_modules/core-js-pure/modules/es.string.bold.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.bold` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.bold
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {
-  bold: function bold() {
-    return createHTML(this, 'b', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.code-point-at.js b/node_modules/core-js-pure/modules/es.string.code-point-at.js
deleted file mode 100644
index 26a2da2..0000000
--- a/node_modules/core-js-pure/modules/es.string.code-point-at.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var codeAt = require('../internals/string-multibyte').codeAt;
-
-// `String.prototype.codePointAt` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
-$({ target: 'String', proto: true }, {
-  codePointAt: function codePointAt(pos) {
-    return codeAt(this, pos);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.ends-with.js b/node_modules/core-js-pure/modules/es.string.ends-with.js
deleted file mode 100644
index e19b0f6..0000000
--- a/node_modules/core-js-pure/modules/es.string.ends-with.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var toLength = require('../internals/to-length');
-var notARegExp = require('../internals/not-a-regexp');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
-var IS_PURE = require('../internals/is-pure');
-
-var nativeEndsWith = ''.endsWith;
-var min = Math.min;
-
-var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');
-// https://github.com/zloirock/core-js/pull/702
-var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
-  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');
-  return descriptor && !descriptor.writable;
-}();
-
-// `String.prototype.endsWith` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.endswith
-$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {
-  endsWith: function endsWith(searchString /* , endPosition = @length */) {
-    var that = String(requireObjectCoercible(this));
-    notARegExp(searchString);
-    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
-    var len = toLength(that.length);
-    var end = endPosition === undefined ? len : min(toLength(endPosition), len);
-    var search = String(searchString);
-    return nativeEndsWith
-      ? nativeEndsWith.call(that, search, end)
-      : that.slice(end - search.length, end) === search;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.fixed.js b/node_modules/core-js-pure/modules/es.string.fixed.js
deleted file mode 100644
index 13f8a04..0000000
--- a/node_modules/core-js-pure/modules/es.string.fixed.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.fixed` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.fixed
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {
-  fixed: function fixed() {
-    return createHTML(this, 'tt', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.fontcolor.js b/node_modules/core-js-pure/modules/es.string.fontcolor.js
deleted file mode 100644
index 88636c2..0000000
--- a/node_modules/core-js-pure/modules/es.string.fontcolor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.fontcolor` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {
-  fontcolor: function fontcolor(color) {
-    return createHTML(this, 'font', 'color', color);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.fontsize.js b/node_modules/core-js-pure/modules/es.string.fontsize.js
deleted file mode 100644
index 09c0715..0000000
--- a/node_modules/core-js-pure/modules/es.string.fontsize.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.fontsize` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {
-  fontsize: function fontsize(size) {
-    return createHTML(this, 'font', 'size', size);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.from-code-point.js b/node_modules/core-js-pure/modules/es.string.from-code-point.js
deleted file mode 100644
index 139ed89..0000000
--- a/node_modules/core-js-pure/modules/es.string.from-code-point.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var $ = require('../internals/export');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-
-var fromCharCode = String.fromCharCode;
-var nativeFromCodePoint = String.fromCodePoint;
-
-// length should be 1, old FF problem
-var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;
-
-// `String.fromCodePoint` method
-// https://tc39.github.io/ecma262/#sec-string.fromcodepoint
-$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
-  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
-    var elements = [];
-    var length = arguments.length;
-    var i = 0;
-    var code;
-    while (length > i) {
-      code = +arguments[i++];
-      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
-      elements.push(code < 0x10000
-        ? fromCharCode(code)
-        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)
-      );
-    } return elements.join('');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.includes.js b/node_modules/core-js-pure/modules/es.string.includes.js
deleted file mode 100644
index 25dbcd8..0000000
--- a/node_modules/core-js-pure/modules/es.string.includes.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var notARegExp = require('../internals/not-a-regexp');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
-
-// `String.prototype.includes` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.includes
-$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
-  includes: function includes(searchString /* , position = 0 */) {
-    return !!~String(requireObjectCoercible(this))
-      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.italics.js b/node_modules/core-js-pure/modules/es.string.italics.js
deleted file mode 100644
index 76bf3e4..0000000
--- a/node_modules/core-js-pure/modules/es.string.italics.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.italics` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.italics
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {
-  italics: function italics() {
-    return createHTML(this, 'i', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.iterator.js b/node_modules/core-js-pure/modules/es.string.iterator.js
deleted file mode 100644
index 8a268e0..0000000
--- a/node_modules/core-js-pure/modules/es.string.iterator.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-var charAt = require('../internals/string-multibyte').charAt;
-var InternalStateModule = require('../internals/internal-state');
-var defineIterator = require('../internals/define-iterator');
-
-var STRING_ITERATOR = 'String Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
-
-// `String.prototype[@@iterator]` method
-// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator
-defineIterator(String, 'String', function (iterated) {
-  setInternalState(this, {
-    type: STRING_ITERATOR,
-    string: String(iterated),
-    index: 0
-  });
-// `%StringIteratorPrototype%.next` method
-// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next
-}, function next() {
-  var state = getInternalState(this);
-  var string = state.string;
-  var index = state.index;
-  var point;
-  if (index >= string.length) return { value: undefined, done: true };
-  point = charAt(string, index);
-  state.index += point.length;
-  return { value: point, done: false };
-});
diff --git a/node_modules/core-js-pure/modules/es.string.link.js b/node_modules/core-js-pure/modules/es.string.link.js
deleted file mode 100644
index 65f8232..0000000
--- a/node_modules/core-js-pure/modules/es.string.link.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.link` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.link
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {
-  link: function link(url) {
-    return createHTML(this, 'a', 'href', url);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.match-all.js b/node_modules/core-js-pure/modules/es.string.match-all.js
deleted file mode 100644
index 3fc36eb..0000000
--- a/node_modules/core-js-pure/modules/es.string.match-all.js
+++ /dev/null
@@ -1,109 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var toLength = require('../internals/to-length');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var classof = require('../internals/classof-raw');
-var isRegExp = require('../internals/is-regexp');
-var getRegExpFlags = require('../internals/regexp-flags');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var fails = require('../internals/fails');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var speciesConstructor = require('../internals/species-constructor');
-var advanceStringIndex = require('../internals/advance-string-index');
-var InternalStateModule = require('../internals/internal-state');
-var IS_PURE = require('../internals/is-pure');
-
-var MATCH_ALL = wellKnownSymbol('matchAll');
-var REGEXP_STRING = 'RegExp String';
-var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
-var RegExpPrototype = RegExp.prototype;
-var regExpBuiltinExec = RegExpPrototype.exec;
-var nativeMatchAll = ''.matchAll;
-
-var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
-  'a'.matchAll(/./);
-});
-
-var regExpExec = function (R, S) {
-  var exec = R.exec;
-  var result;
-  if (typeof exec == 'function') {
-    result = exec.call(R, S);
-    if (typeof result != 'object') throw TypeError('Incorrect exec result');
-    return result;
-  } return regExpBuiltinExec.call(R, S);
-};
-
-// eslint-disable-next-line max-len
-var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
-  setInternalState(this, {
-    type: REGEXP_STRING_ITERATOR,
-    regexp: regexp,
-    string: string,
-    global: global,
-    unicode: fullUnicode,
-    done: false
-  });
-}, REGEXP_STRING, function next() {
-  var state = getInternalState(this);
-  if (state.done) return { value: undefined, done: true };
-  var R = state.regexp;
-  var S = state.string;
-  var match = regExpExec(R, S);
-  if (match === null) return { value: undefined, done: state.done = true };
-  if (state.global) {
-    if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
-    return { value: match, done: false };
-  }
-  state.done = true;
-  return { value: match, done: false };
-});
-
-var $matchAll = function (string) {
-  var R = anObject(this);
-  var S = String(string);
-  var C, flagsValue, flags, matcher, global, fullUnicode;
-  C = speciesConstructor(R, RegExp);
-  flagsValue = R.flags;
-  if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {
-    flagsValue = getRegExpFlags.call(R);
-  }
-  flags = flagsValue === undefined ? '' : String(flagsValue);
-  matcher = new C(C === RegExp ? R.source : R, flags);
-  global = !!~flags.indexOf('g');
-  fullUnicode = !!~flags.indexOf('u');
-  matcher.lastIndex = toLength(R.lastIndex);
-  return new $RegExpStringIterator(matcher, S, global, fullUnicode);
-};
-
-// `String.prototype.matchAll` method
-// https://github.com/tc39/proposal-string-matchall
-$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
-  matchAll: function matchAll(regexp) {
-    var O = requireObjectCoercible(this);
-    var flags, S, matcher, rx;
-    if (regexp != null) {
-      if (isRegExp(regexp)) {
-        flags = String(requireObjectCoercible('flags' in RegExpPrototype
-          ? regexp.flags
-          : getRegExpFlags.call(regexp)
-        ));
-        if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');
-      }
-      if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
-      matcher = regexp[MATCH_ALL];
-      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
-      if (matcher != null) return aFunction(matcher).call(regexp, O);
-    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
-    S = String(O);
-    rx = new RegExp(regexp, 'g');
-    return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
-  }
-});
-
-IS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);
diff --git a/node_modules/core-js-pure/modules/es.string.match.js b/node_modules/core-js-pure/modules/es.string.match.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.string.match.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.string.pad-end.js b/node_modules/core-js-pure/modules/es.string.pad-end.js
deleted file mode 100644
index 9108024..0000000
--- a/node_modules/core-js-pure/modules/es.string.pad-end.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $padEnd = require('../internals/string-pad').end;
-var WEBKIT_BUG = require('../internals/string-pad-webkit-bug');
-
-// `String.prototype.padEnd` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.padend
-$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
-  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
-    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.pad-start.js b/node_modules/core-js-pure/modules/es.string.pad-start.js
deleted file mode 100644
index 69b788f..0000000
--- a/node_modules/core-js-pure/modules/es.string.pad-start.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $padStart = require('../internals/string-pad').start;
-var WEBKIT_BUG = require('../internals/string-pad-webkit-bug');
-
-// `String.prototype.padStart` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.padstart
-$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
-  padStart: function padStart(maxLength /* , fillString = ' ' */) {
-    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.raw.js b/node_modules/core-js-pure/modules/es.string.raw.js
deleted file mode 100644
index beb0783..0000000
--- a/node_modules/core-js-pure/modules/es.string.raw.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var $ = require('../internals/export');
-var toIndexedObject = require('../internals/to-indexed-object');
-var toLength = require('../internals/to-length');
-
-// `String.raw` method
-// https://tc39.github.io/ecma262/#sec-string.raw
-$({ target: 'String', stat: true }, {
-  raw: function raw(template) {
-    var rawTemplate = toIndexedObject(template.raw);
-    var literalSegments = toLength(rawTemplate.length);
-    var argumentsLength = arguments.length;
-    var elements = [];
-    var i = 0;
-    while (literalSegments > i) {
-      elements.push(String(rawTemplate[i++]));
-      if (i < argumentsLength) elements.push(String(arguments[i]));
-    } return elements.join('');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.repeat.js b/node_modules/core-js-pure/modules/es.string.repeat.js
deleted file mode 100644
index 43890aa..0000000
--- a/node_modules/core-js-pure/modules/es.string.repeat.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var repeat = require('../internals/string-repeat');
-
-// `String.prototype.repeat` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.repeat
-$({ target: 'String', proto: true }, {
-  repeat: repeat
-});
diff --git a/node_modules/core-js-pure/modules/es.string.replace.js b/node_modules/core-js-pure/modules/es.string.replace.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.string.replace.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.string.search.js b/node_modules/core-js-pure/modules/es.string.search.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.string.search.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.string.small.js b/node_modules/core-js-pure/modules/es.string.small.js
deleted file mode 100644
index c8587d6..0000000
--- a/node_modules/core-js-pure/modules/es.string.small.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.small` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.small
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {
-  small: function small() {
-    return createHTML(this, 'small', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.split.js b/node_modules/core-js-pure/modules/es.string.split.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.string.split.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.string.starts-with.js b/node_modules/core-js-pure/modules/es.string.starts-with.js
deleted file mode 100644
index e4fe655..0000000
--- a/node_modules/core-js-pure/modules/es.string.starts-with.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var toLength = require('../internals/to-length');
-var notARegExp = require('../internals/not-a-regexp');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
-var IS_PURE = require('../internals/is-pure');
-
-var nativeStartsWith = ''.startsWith;
-var min = Math.min;
-
-var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');
-// https://github.com/zloirock/core-js/pull/702
-var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
-  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');
-  return descriptor && !descriptor.writable;
-}();
-
-// `String.prototype.startsWith` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.startswith
-$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {
-  startsWith: function startsWith(searchString /* , position = 0 */) {
-    var that = String(requireObjectCoercible(this));
-    notARegExp(searchString);
-    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
-    var search = String(searchString);
-    return nativeStartsWith
-      ? nativeStartsWith.call(that, search, index)
-      : that.slice(index, index + search.length) === search;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.strike.js b/node_modules/core-js-pure/modules/es.string.strike.js
deleted file mode 100644
index 4f0fa2e..0000000
--- a/node_modules/core-js-pure/modules/es.string.strike.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.strike` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.strike
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {
-  strike: function strike() {
-    return createHTML(this, 'strike', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.sub.js b/node_modules/core-js-pure/modules/es.string.sub.js
deleted file mode 100644
index 4b901d2..0000000
--- a/node_modules/core-js-pure/modules/es.string.sub.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.sub` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.sub
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {
-  sub: function sub() {
-    return createHTML(this, 'sub', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.sup.js b/node_modules/core-js-pure/modules/es.string.sup.js
deleted file mode 100644
index 3fc0b18..0000000
--- a/node_modules/core-js-pure/modules/es.string.sup.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createHTML = require('../internals/create-html');
-var forcedStringHTMLMethod = require('../internals/string-html-forced');
-
-// `String.prototype.sup` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.sup
-$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {
-  sup: function sup() {
-    return createHTML(this, 'sup', '', '');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.string.trim-end.js b/node_modules/core-js-pure/modules/es.string.trim-end.js
deleted file mode 100644
index 4db829a..0000000
--- a/node_modules/core-js-pure/modules/es.string.trim-end.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $trimEnd = require('../internals/string-trim').end;
-var forcedStringTrimMethod = require('../internals/string-trim-forced');
-
-var FORCED = forcedStringTrimMethod('trimEnd');
-
-var trimEnd = FORCED ? function trimEnd() {
-  return $trimEnd(this);
-} : ''.trimEnd;
-
-// `String.prototype.{ trimEnd, trimRight }` methods
-// https://github.com/tc39/ecmascript-string-left-right-trim
-$({ target: 'String', proto: true, forced: FORCED }, {
-  trimEnd: trimEnd,
-  trimRight: trimEnd
-});
diff --git a/node_modules/core-js-pure/modules/es.string.trim-start.js b/node_modules/core-js-pure/modules/es.string.trim-start.js
deleted file mode 100644
index b4f6e43..0000000
--- a/node_modules/core-js-pure/modules/es.string.trim-start.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $trimStart = require('../internals/string-trim').start;
-var forcedStringTrimMethod = require('../internals/string-trim-forced');
-
-var FORCED = forcedStringTrimMethod('trimStart');
-
-var trimStart = FORCED ? function trimStart() {
-  return $trimStart(this);
-} : ''.trimStart;
-
-// `String.prototype.{ trimStart, trimLeft }` methods
-// https://github.com/tc39/ecmascript-string-left-right-trim
-$({ target: 'String', proto: true, forced: FORCED }, {
-  trimStart: trimStart,
-  trimLeft: trimStart
-});
diff --git a/node_modules/core-js-pure/modules/es.string.trim.js b/node_modules/core-js-pure/modules/es.string.trim.js
deleted file mode 100644
index 124768f..0000000
--- a/node_modules/core-js-pure/modules/es.string.trim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var $trim = require('../internals/string-trim').trim;
-var forcedStringTrimMethod = require('../internals/string-trim-forced');
-
-// `String.prototype.trim` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.trim
-$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
-  trim: function trim() {
-    return $trim(this);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/es.symbol.async-iterator.js b/node_modules/core-js-pure/modules/es.symbol.async-iterator.js
deleted file mode 100644
index ecf7281..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.async-iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.asyncIterator` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.asynciterator
-defineWellKnownSymbol('asyncIterator');
diff --git a/node_modules/core-js-pure/modules/es.symbol.description.js b/node_modules/core-js-pure/modules/es.symbol.description.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.description.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.symbol.has-instance.js b/node_modules/core-js-pure/modules/es.symbol.has-instance.js
deleted file mode 100644
index 2226ddb..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.has-instance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.hasInstance` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.hasinstance
-defineWellKnownSymbol('hasInstance');
diff --git a/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js b/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js
deleted file mode 100644
index d53771b..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.isConcatSpreadable` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable
-defineWellKnownSymbol('isConcatSpreadable');
diff --git a/node_modules/core-js-pure/modules/es.symbol.iterator.js b/node_modules/core-js-pure/modules/es.symbol.iterator.js
deleted file mode 100644
index e43878d..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.iterator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.iterator` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.iterator
-defineWellKnownSymbol('iterator');
diff --git a/node_modules/core-js-pure/modules/es.symbol.js b/node_modules/core-js-pure/modules/es.symbol.js
deleted file mode 100644
index 07f1ee9..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.js
+++ /dev/null
@@ -1,311 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var global = require('../internals/global');
-var getBuiltIn = require('../internals/get-built-in');
-var IS_PURE = require('../internals/is-pure');
-var DESCRIPTORS = require('../internals/descriptors');
-var NATIVE_SYMBOL = require('../internals/native-symbol');
-var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
-var fails = require('../internals/fails');
-var has = require('../internals/has');
-var isArray = require('../internals/is-array');
-var isObject = require('../internals/is-object');
-var anObject = require('../internals/an-object');
-var toObject = require('../internals/to-object');
-var toIndexedObject = require('../internals/to-indexed-object');
-var toPrimitive = require('../internals/to-primitive');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var nativeObjectCreate = require('../internals/object-create');
-var objectKeys = require('../internals/object-keys');
-var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
-var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');
-var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
-var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
-var definePropertyModule = require('../internals/object-define-property');
-var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefine = require('../internals/redefine');
-var shared = require('../internals/shared');
-var sharedKey = require('../internals/shared-key');
-var hiddenKeys = require('../internals/hidden-keys');
-var uid = require('../internals/uid');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-var setToStringTag = require('../internals/set-to-string-tag');
-var InternalStateModule = require('../internals/internal-state');
-var $forEach = require('../internals/array-iteration').forEach;
-
-var HIDDEN = sharedKey('hidden');
-var SYMBOL = 'Symbol';
-var PROTOTYPE = 'prototype';
-var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(SYMBOL);
-var ObjectPrototype = Object[PROTOTYPE];
-var $Symbol = global.Symbol;
-var $stringify = getBuiltIn('JSON', 'stringify');
-var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
-var nativeDefineProperty = definePropertyModule.f;
-var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
-var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
-var AllSymbols = shared('symbols');
-var ObjectPrototypeSymbols = shared('op-symbols');
-var StringToSymbolRegistry = shared('string-to-symbol-registry');
-var SymbolToStringRegistry = shared('symbol-to-string-registry');
-var WellKnownSymbolsStore = shared('wks');
-var QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDescriptor = DESCRIPTORS && fails(function () {
-  return nativeObjectCreate(nativeDefineProperty({}, 'a', {
-    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
-  })).a != 7;
-}) ? function (O, P, Attributes) {
-  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
-  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
-  nativeDefineProperty(O, P, Attributes);
-  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
-    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
-  }
-} : nativeDefineProperty;
-
-var wrap = function (tag, description) {
-  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
-  setInternalState(symbol, {
-    type: SYMBOL,
-    tag: tag,
-    description: description
-  });
-  if (!DESCRIPTORS) symbol.description = description;
-  return symbol;
-};
-
-var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
-  return typeof it == 'symbol';
-} : function (it) {
-  return Object(it) instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(O, P, Attributes) {
-  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
-  anObject(O);
-  var key = toPrimitive(P, true);
-  anObject(Attributes);
-  if (has(AllSymbols, key)) {
-    if (!Attributes.enumerable) {
-      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
-      O[HIDDEN][key] = true;
-    } else {
-      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
-      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
-    } return setSymbolDescriptor(O, key, Attributes);
-  } return nativeDefineProperty(O, key, Attributes);
-};
-
-var $defineProperties = function defineProperties(O, Properties) {
-  anObject(O);
-  var properties = toIndexedObject(Properties);
-  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
-  $forEach(keys, function (key) {
-    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
-  });
-  return O;
-};
-
-var $create = function create(O, Properties) {
-  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
-};
-
-var $propertyIsEnumerable = function propertyIsEnumerable(V) {
-  var P = toPrimitive(V, true);
-  var enumerable = nativePropertyIsEnumerable.call(this, P);
-  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
-  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
-};
-
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
-  var it = toIndexedObject(O);
-  var key = toPrimitive(P, true);
-  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
-  var descriptor = nativeGetOwnPropertyDescriptor(it, key);
-  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
-    descriptor.enumerable = true;
-  }
-  return descriptor;
-};
-
-var $getOwnPropertyNames = function getOwnPropertyNames(O) {
-  var names = nativeGetOwnPropertyNames(toIndexedObject(O));
-  var result = [];
-  $forEach(names, function (key) {
-    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
-  });
-  return result;
-};
-
-var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
-  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
-  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
-  var result = [];
-  $forEach(names, function (key) {
-    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
-      result.push(AllSymbols[key]);
-    }
-  });
-  return result;
-};
-
-// `Symbol` constructor
-// https://tc39.github.io/ecma262/#sec-symbol-constructor
-if (!NATIVE_SYMBOL) {
-  $Symbol = function Symbol() {
-    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
-    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
-    var tag = uid(description);
-    var setter = function (value) {
-      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
-      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
-      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
-    };
-    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
-    return wrap(tag, description);
-  };
-
-  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
-    return getInternalState(this).tag;
-  });
-
-  redefine($Symbol, 'withoutSetter', function (description) {
-    return wrap(uid(description), description);
-  });
-
-  propertyIsEnumerableModule.f = $propertyIsEnumerable;
-  definePropertyModule.f = $defineProperty;
-  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
-  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
-  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
-
-  wrappedWellKnownSymbolModule.f = function (name) {
-    return wrap(wellKnownSymbol(name), name);
-  };
-
-  if (DESCRIPTORS) {
-    // https://github.com/tc39/proposal-Symbol-description
-    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
-      configurable: true,
-      get: function description() {
-        return getInternalState(this).description;
-      }
-    });
-    if (!IS_PURE) {
-      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
-    }
-  }
-}
-
-$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
-  Symbol: $Symbol
-});
-
-$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
-  defineWellKnownSymbol(name);
-});
-
-$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
-  // `Symbol.for` method
-  // https://tc39.github.io/ecma262/#sec-symbol.for
-  'for': function (key) {
-    var string = String(key);
-    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
-    var symbol = $Symbol(string);
-    StringToSymbolRegistry[string] = symbol;
-    SymbolToStringRegistry[symbol] = string;
-    return symbol;
-  },
-  // `Symbol.keyFor` method
-  // https://tc39.github.io/ecma262/#sec-symbol.keyfor
-  keyFor: function keyFor(sym) {
-    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
-    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
-  },
-  useSetter: function () { USE_SETTER = true; },
-  useSimple: function () { USE_SETTER = false; }
-});
-
-$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
-  // `Object.create` method
-  // https://tc39.github.io/ecma262/#sec-object.create
-  create: $create,
-  // `Object.defineProperty` method
-  // https://tc39.github.io/ecma262/#sec-object.defineproperty
-  defineProperty: $defineProperty,
-  // `Object.defineProperties` method
-  // https://tc39.github.io/ecma262/#sec-object.defineproperties
-  defineProperties: $defineProperties,
-  // `Object.getOwnPropertyDescriptor` method
-  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors
-  getOwnPropertyDescriptor: $getOwnPropertyDescriptor
-});
-
-$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
-  // `Object.getOwnPropertyNames` method
-  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
-  getOwnPropertyNames: $getOwnPropertyNames,
-  // `Object.getOwnPropertySymbols` method
-  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols
-  getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
-// https://bugs.chromium.org/p/v8/issues/detail?id=3443
-$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
-  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
-    return getOwnPropertySymbolsModule.f(toObject(it));
-  }
-});
-
-// `JSON.stringify` method behavior with symbols
-// https://tc39.github.io/ecma262/#sec-json.stringify
-if ($stringify) {
-  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
-    var symbol = $Symbol();
-    // MS Edge converts symbol values to JSON as {}
-    return $stringify([symbol]) != '[null]'
-      // WebKit converts symbol values to JSON as null
-      || $stringify({ a: symbol }) != '{}'
-      // V8 throws on boxed symbols
-      || $stringify(Object(symbol)) != '{}';
-  });
-
-  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
-    // eslint-disable-next-line no-unused-vars
-    stringify: function stringify(it, replacer, space) {
-      var args = [it];
-      var index = 1;
-      var $replacer;
-      while (arguments.length > index) args.push(arguments[index++]);
-      $replacer = replacer;
-      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-      if (!isArray(replacer)) replacer = function (key, value) {
-        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
-        if (!isSymbol(value)) return value;
-      };
-      args[1] = replacer;
-      return $stringify.apply(null, args);
-    }
-  });
-}
-
-// `Symbol.prototype[@@toPrimitive]` method
-// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive
-if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
-  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-}
-// `Symbol.prototype[@@toStringTag]` property
-// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag
-setToStringTag($Symbol, SYMBOL);
-
-hiddenKeys[HIDDEN] = true;
diff --git a/node_modules/core-js-pure/modules/es.symbol.match-all.js b/node_modules/core-js-pure/modules/es.symbol.match-all.js
deleted file mode 100644
index b16c8be..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.match-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.matchAll` well-known symbol
-defineWellKnownSymbol('matchAll');
diff --git a/node_modules/core-js-pure/modules/es.symbol.match.js b/node_modules/core-js-pure/modules/es.symbol.match.js
deleted file mode 100644
index ec2fbdb..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.match` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.match
-defineWellKnownSymbol('match');
diff --git a/node_modules/core-js-pure/modules/es.symbol.replace.js b/node_modules/core-js-pure/modules/es.symbol.replace.js
deleted file mode 100644
index d252d8d..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.replace.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.replace` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.replace
-defineWellKnownSymbol('replace');
diff --git a/node_modules/core-js-pure/modules/es.symbol.search.js b/node_modules/core-js-pure/modules/es.symbol.search.js
deleted file mode 100644
index 0c28e62..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.search.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.search` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.search
-defineWellKnownSymbol('search');
diff --git a/node_modules/core-js-pure/modules/es.symbol.species.js b/node_modules/core-js-pure/modules/es.symbol.species.js
deleted file mode 100644
index 8391f22..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.species.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.species` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.species
-defineWellKnownSymbol('species');
diff --git a/node_modules/core-js-pure/modules/es.symbol.split.js b/node_modules/core-js-pure/modules/es.symbol.split.js
deleted file mode 100644
index 5f76df4..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.split.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.split` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.split
-defineWellKnownSymbol('split');
diff --git a/node_modules/core-js-pure/modules/es.symbol.to-primitive.js b/node_modules/core-js-pure/modules/es.symbol.to-primitive.js
deleted file mode 100644
index c297826..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.to-primitive.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.toPrimitive` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.toprimitive
-defineWellKnownSymbol('toPrimitive');
diff --git a/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js b/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js
deleted file mode 100644
index 8ddbfad..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.toStringTag` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.tostringtag
-defineWellKnownSymbol('toStringTag');
diff --git a/node_modules/core-js-pure/modules/es.symbol.unscopables.js b/node_modules/core-js-pure/modules/es.symbol.unscopables.js
deleted file mode 100644
index a9daa60..0000000
--- a/node_modules/core-js-pure/modules/es.symbol.unscopables.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.unscopables` well-known symbol
-// https://tc39.github.io/ecma262/#sec-symbol.unscopables
-defineWellKnownSymbol('unscopables');
diff --git a/node_modules/core-js-pure/modules/es.typed-array.copy-within.js b/node_modules/core-js-pure/modules/es.typed-array.copy-within.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.every.js b/node_modules/core-js-pure/modules/es.typed-array.every.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.every.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.fill.js b/node_modules/core-js-pure/modules/es.typed-array.fill.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.fill.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.filter.js b/node_modules/core-js-pure/modules/es.typed-array.filter.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.filter.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.find-index.js b/node_modules/core-js-pure/modules/es.typed-array.find-index.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.find.js b/node_modules/core-js-pure/modules/es.typed-array.find.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.find.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.float32-array.js b/node_modules/core-js-pure/modules/es.typed-array.float32-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.float32-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.float64-array.js b/node_modules/core-js-pure/modules/es.typed-array.float64-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.float64-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.for-each.js b/node_modules/core-js-pure/modules/es.typed-array.for-each.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.from.js b/node_modules/core-js-pure/modules/es.typed-array.from.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.from.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.includes.js b/node_modules/core-js-pure/modules/es.typed-array.includes.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.includes.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.index-of.js b/node_modules/core-js-pure/modules/es.typed-array.index-of.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.int16-array.js b/node_modules/core-js-pure/modules/es.typed-array.int16-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.int16-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.int32-array.js b/node_modules/core-js-pure/modules/es.typed-array.int32-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.int32-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.int8-array.js b/node_modules/core-js-pure/modules/es.typed-array.int8-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.int8-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.iterator.js b/node_modules/core-js-pure/modules/es.typed-array.iterator.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.join.js b/node_modules/core-js-pure/modules/es.typed-array.join.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.join.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.last-index-of.js b/node_modules/core-js-pure/modules/es.typed-array.last-index-of.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.map.js b/node_modules/core-js-pure/modules/es.typed-array.map.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.map.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.of.js b/node_modules/core-js-pure/modules/es.typed-array.of.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.of.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.reduce-right.js b/node_modules/core-js-pure/modules/es.typed-array.reduce-right.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.reduce.js b/node_modules/core-js-pure/modules/es.typed-array.reduce.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.reverse.js b/node_modules/core-js-pure/modules/es.typed-array.reverse.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.set.js b/node_modules/core-js-pure/modules/es.typed-array.set.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.set.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.slice.js b/node_modules/core-js-pure/modules/es.typed-array.slice.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.slice.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.some.js b/node_modules/core-js-pure/modules/es.typed-array.some.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.some.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.sort.js b/node_modules/core-js-pure/modules/es.typed-array.sort.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.sort.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.subarray.js b/node_modules/core-js-pure/modules/es.typed-array.subarray.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.subarray.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.to-locale-string.js b/node_modules/core-js-pure/modules/es.typed-array.to-locale-string.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.to-locale-string.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.to-string.js b/node_modules/core-js-pure/modules/es.typed-array.to-string.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.uint16-array.js b/node_modules/core-js-pure/modules/es.typed-array.uint16-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.uint16-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.uint32-array.js b/node_modules/core-js-pure/modules/es.typed-array.uint32-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.uint32-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.uint8-array.js b/node_modules/core-js-pure/modules/es.typed-array.uint8-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.uint8-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.typed-array.uint8-clamped-array.js b/node_modules/core-js-pure/modules/es.typed-array.uint8-clamped-array.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/es.typed-array.uint8-clamped-array.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/es.weak-map.js b/node_modules/core-js-pure/modules/es.weak-map.js
deleted file mode 100644
index 38f2f72..0000000
--- a/node_modules/core-js-pure/modules/es.weak-map.js
+++ /dev/null
@@ -1,67 +0,0 @@
-'use strict';
-var global = require('../internals/global');
-var redefineAll = require('../internals/redefine-all');
-var InternalMetadataModule = require('../internals/internal-metadata');
-var collection = require('../internals/collection');
-var collectionWeak = require('../internals/collection-weak');
-var isObject = require('../internals/is-object');
-var enforceIternalState = require('../internals/internal-state').enforce;
-var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
-
-var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
-var isExtensible = Object.isExtensible;
-var InternalWeakMap;
-
-var wrapper = function (init) {
-  return function WeakMap() {
-    return init(this, arguments.length ? arguments[0] : undefined);
-  };
-};
-
-// `WeakMap` constructor
-// https://tc39.github.io/ecma262/#sec-weakmap-constructor
-var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
-
-// IE11 WeakMap frozen keys fix
-// We can't use feature detection because it crash some old IE builds
-// https://github.com/zloirock/core-js/issues/485
-if (NATIVE_WEAK_MAP && IS_IE11) {
-  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
-  InternalMetadataModule.REQUIRED = true;
-  var WeakMapPrototype = $WeakMap.prototype;
-  var nativeDelete = WeakMapPrototype['delete'];
-  var nativeHas = WeakMapPrototype.has;
-  var nativeGet = WeakMapPrototype.get;
-  var nativeSet = WeakMapPrototype.set;
-  redefineAll(WeakMapPrototype, {
-    'delete': function (key) {
-      if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
-        if (!state.frozen) state.frozen = new InternalWeakMap();
-        return nativeDelete.call(this, key) || state.frozen['delete'](key);
-      } return nativeDelete.call(this, key);
-    },
-    has: function has(key) {
-      if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
-        if (!state.frozen) state.frozen = new InternalWeakMap();
-        return nativeHas.call(this, key) || state.frozen.has(key);
-      } return nativeHas.call(this, key);
-    },
-    get: function get(key) {
-      if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
-        if (!state.frozen) state.frozen = new InternalWeakMap();
-        return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
-      } return nativeGet.call(this, key);
-    },
-    set: function set(key, value) {
-      if (isObject(key) && !isExtensible(key)) {
-        var state = enforceIternalState(this);
-        if (!state.frozen) state.frozen = new InternalWeakMap();
-        nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
-      } else nativeSet.call(this, key, value);
-      return this;
-    }
-  });
-}
diff --git a/node_modules/core-js-pure/modules/es.weak-set.js b/node_modules/core-js-pure/modules/es.weak-set.js
deleted file mode 100644
index ef6b1bc..0000000
--- a/node_modules/core-js-pure/modules/es.weak-set.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-var collection = require('../internals/collection');
-var collectionWeak = require('../internals/collection-weak');
-
-// `WeakSet` constructor
-// https://tc39.github.io/ecma262/#sec-weakset-constructor
-collection('WeakSet', function (init) {
-  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };
-}, collectionWeak);
diff --git a/node_modules/core-js-pure/modules/esnext.aggregate-error.js b/node_modules/core-js-pure/modules/esnext.aggregate-error.js
deleted file mode 100644
index 20578b6..0000000
--- a/node_modules/core-js-pure/modules/esnext.aggregate-error.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var setPrototypeOf = require('../internals/object-set-prototype-of');
-var create = require('../internals/object-create');
-var defineProperty = require('../internals/object-define-property');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var iterate = require('../internals/iterate');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var InternalStateModule = require('../internals/internal-state');
-
-var setInternalState = InternalStateModule.set;
-var getInternalAggregateErrorState = InternalStateModule.getterFor('AggregateError');
-
-var $AggregateError = function AggregateError(errors, message) {
-  var that = this;
-  if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);
-  if (setPrototypeOf) {
-    that = setPrototypeOf(new Error(message), getPrototypeOf(that));
-  }
-  var errorsArray = [];
-  iterate(errors, errorsArray.push, errorsArray);
-  if (DESCRIPTORS) setInternalState(that, { errors: errorsArray, type: 'AggregateError' });
-  else that.errors = errorsArray;
-  if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
-  return that;
-};
-
-$AggregateError.prototype = create(Error.prototype, {
-  constructor: createPropertyDescriptor(5, $AggregateError),
-  message: createPropertyDescriptor(5, ''),
-  name: createPropertyDescriptor(5, 'AggregateError')
-});
-
-if (DESCRIPTORS) defineProperty.f($AggregateError.prototype, 'errors', {
-  get: function () {
-    return getInternalAggregateErrorState(this).errors;
-  },
-  configurable: true
-});
-
-$({ global: true }, {
-  AggregateError: $AggregateError
-});
diff --git a/node_modules/core-js-pure/modules/esnext.array.is-template-object.js b/node_modules/core-js-pure/modules/esnext.array.is-template-object.js
deleted file mode 100644
index a1d8428..0000000
--- a/node_modules/core-js-pure/modules/esnext.array.is-template-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var $ = require('../internals/export');
-var isArray = require('../internals/is-array');
-
-var isFrozen = Object.isFrozen;
-
-var isFrozenStringArray = function (array, allowUndefined) {
-  if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;
-  var index = 0;
-  var length = array.length;
-  var element;
-  while (index < length) {
-    element = array[index++];
-    if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) {
-      return false;
-    }
-  } return length !== 0;
-};
-
-// `Array.isTemplateObject` method
-// https://github.com/tc39/proposal-array-is-template-object
-$({ target: 'Array', stat: true }, {
-  isTemplateObject: function isTemplateObject(value) {
-    if (!isFrozenStringArray(value, true)) return false;
-    var raw = value.raw;
-    if (raw.length !== value.length || !isFrozenStringArray(raw, false)) return false;
-    return true;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.array.last-index.js b/node_modules/core-js-pure/modules/esnext.array.last-index.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/esnext.array.last-index.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/esnext.array.last-item.js b/node_modules/core-js-pure/modules/esnext.array.last-item.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/esnext.array.last-item.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.as-indexed-pairs.js b/node_modules/core-js-pure/modules/esnext.async-iterator.as-indexed-pairs.js
deleted file mode 100644
index 446deee..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.as-indexed-pairs.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
-  var state = this;
-  var iterator = state.iterator;
-
-  return Promise.resolve(anObject(state.next.call(iterator, arg))).then(function (step) {
-    if (anObject(step).done) {
-      state.done = true;
-      return { done: true, value: undefined };
-    }
-    return { done: false, value: [state.index++, step.value] };
-  });
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  asIndexedPairs: function asIndexedPairs() {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      index: 0
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.constructor.js b/node_modules/core-js-pure/modules/esnext.async-iterator.constructor.js
deleted file mode 100644
index 5a1d4ad..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.constructor.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anInstance = require('../internals/an-instance');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
-var IS_PURE = require('../internals/is-pure');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-var AsyncIteratorConstructor = function AsyncIterator() {
-  anInstance(this, AsyncIteratorConstructor);
-};
-
-AsyncIteratorConstructor.prototype = AsyncIteratorPrototype;
-
-if (!has(AsyncIteratorPrototype, TO_STRING_TAG)) {
-  createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');
-}
-
-if (!has(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
-  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
-}
-
-$({ global: true, forced: IS_PURE }, {
-  AsyncIterator: AsyncIteratorConstructor
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.drop.js b/node_modules/core-js-pure/modules/esnext.async-iterator.drop.js
deleted file mode 100644
index fd2878b..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.drop.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var toPositiveInteger = require('../internals/to-positive-integer');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
-  var state = this;
-
-  return new Promise(function (resolve, reject) {
-    var loop = function () {
-      try {
-        Promise.resolve(
-          anObject(state.next.call(state.iterator, state.remaining ? undefined : arg))
-        ).then(function (step) {
-          try {
-            if (anObject(step).done) {
-              state.done = true;
-              resolve({ done: true, value: undefined });
-            } else if (state.remaining) {
-              state.remaining--;
-              loop();
-            } else resolve({ done: false, value: step.value });
-          } catch (err) { reject(err); }
-        }, reject);
-      } catch (error) { reject(error); }
-    };
-
-    loop();
-  });
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  drop: function drop(limit) {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      remaining: toPositiveInteger(limit)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.every.js b/node_modules/core-js-pure/modules/esnext.async-iterator.every.js
deleted file mode 100644
index 70c945d..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.every.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var $every = require('../internals/async-iterator-iteration').every;
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  every: function every(fn) {
-    return $every(this, fn);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.filter.js b/node_modules/core-js-pure/modules/esnext.async-iterator.filter.js
deleted file mode 100644
index 2ddbaba..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.filter.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
-  var state = this;
-  var filterer = state.filterer;
-
-  return new Promise(function (resolve, reject) {
-    var loop = function () {
-      try {
-        Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
-          try {
-            if (anObject(step).done) {
-              state.done = true;
-              resolve({ done: true, value: undefined });
-            } else {
-              var value = step.value;
-              Promise.resolve(filterer(value)).then(function (selected) {
-                selected ? resolve({ done: false, value: value }) : loop();
-              }, reject);
-            }
-          } catch (err) { reject(err); }
-        }, reject);
-      } catch (error) { reject(error); }
-    };
-
-    loop();
-  });
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  filter: function filter(filterer) {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      filterer: aFunction(filterer)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.find.js b/node_modules/core-js-pure/modules/esnext.async-iterator.find.js
deleted file mode 100644
index 0211e51..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.find.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var $find = require('../internals/async-iterator-iteration').find;
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  find: function find(fn) {
-    return $find(this, fn);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.flat-map.js b/node_modules/core-js-pure/modules/esnext.async-iterator.flat-map.js
deleted file mode 100644
index 0613368..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.flat-map.js
+++ /dev/null
@@ -1,67 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
-  var state = this;
-  var mapper = state.mapper;
-  var innerIterator, iteratorMethod;
-
-  return new Promise(function (resolve, reject) {
-    var outerLoop = function () {
-      try {
-        Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
-          try {
-            if (anObject(step).done) {
-              state.done = true;
-              resolve({ done: true, value: undefined });
-            } else {
-              Promise.resolve(mapper(step.value)).then(function (mapped) {
-                try {
-                  iteratorMethod = getAsyncIteratorMethod(mapped);
-                  if (iteratorMethod !== undefined) {
-                    state.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
-                    state.innerNext = aFunction(innerIterator.next);
-                    return innerLoop();
-                  } reject(TypeError('.flatMap callback should return an iterable object'));
-                } catch (error2) { reject(error2); }
-              }, reject);
-            }
-          } catch (error1) { reject(error1); }
-        }, reject);
-      } catch (error) { reject(error); }
-    };
-
-    var innerLoop = function () {
-      if (innerIterator = state.innerIterator) {
-        try {
-          Promise.resolve(anObject(state.innerNext.call(innerIterator))).then(function (result) {
-            try {
-              if (anObject(result).done) {
-                state.innerIterator = state.innerNext = null;
-                outerLoop();
-              } else resolve({ done: false, value: result.value });
-            } catch (error1) { reject(error1); }
-          }, reject);
-        } catch (error) { reject(error); }
-      } else outerLoop();
-    };
-
-    innerLoop();
-  });
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  flatMap: function flatMap(mapper) {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      mapper: aFunction(mapper),
-      innerIterator: null,
-      innerNext: null
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.for-each.js b/node_modules/core-js-pure/modules/esnext.async-iterator.for-each.js
deleted file mode 100644
index 8dfbced..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.for-each.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var $forEach = require('../internals/async-iterator-iteration').forEach;
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  forEach: function forEach(fn) {
-    return $forEach(this, fn);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.from.js b/node_modules/core-js-pure/modules/esnext.async-iterator.from.js
deleted file mode 100644
index e986a73..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.from.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var path = require('../internals/path');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var toObject = require('../internals/to-object');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
-
-var AsyncIterator = path.AsyncIterator;
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
-  return anObject(this.next.call(this.iterator, arg));
-}, true);
-
-$({ target: 'AsyncIterator', stat: true }, {
-  from: function from(O) {
-    var object = toObject(O);
-    var usingIterator = getAsyncIteratorMethod(object);
-    var iterator;
-    if (usingIterator != null) {
-      iterator = aFunction(usingIterator).call(object);
-      if (iterator instanceof AsyncIterator) return iterator;
-    } else {
-      iterator = object;
-    } return new AsyncIteratorProxy({
-      iterator: iterator
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.map.js b/node_modules/core-js-pure/modules/esnext.async-iterator.map.js
deleted file mode 100644
index a5c2a8a..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.map.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
-  var state = this;
-  var mapper = state.mapper;
-
-  return Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
-    if (anObject(step).done) {
-      state.done = true;
-      return { done: true, value: undefined };
-    }
-    return Promise.resolve(mapper(step.value)).then(function (value) {
-      return { done: false, value: value };
-    });
-  });
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  map: function map(mapper) {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      mapper: aFunction(mapper)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.reduce.js b/node_modules/core-js-pure/modules/esnext.async-iterator.reduce.js
deleted file mode 100644
index e5f7f9a..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.reduce.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var getBuiltIn = require('../internals/get-built-in');
-
-var Promise = getBuiltIn('Promise');
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  reduce: function reduce(reducer /* , initialValue */) {
-    var iterator = anObject(this);
-    var next = aFunction(iterator.next);
-    var noInitial = arguments.length < 2;
-    var accumulator = noInitial ? undefined : arguments[1];
-    aFunction(reducer);
-
-    return new Promise(function (resolve, reject) {
-      var loop = function () {
-        try {
-          Promise.resolve(anObject(next.call(iterator))).then(function (step) {
-            try {
-              if (anObject(step).done) {
-                noInitial ? reject(TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);
-              } else {
-                var value = step.value;
-                if (noInitial) {
-                  noInitial = false;
-                  accumulator = value;
-                  loop();
-                } else {
-                  Promise.resolve(reducer(accumulator, value)).then(function (result) {
-                    accumulator = result;
-                    loop();
-                  }, reject);
-                }
-              }
-            } catch (err) { reject(err); }
-          }, reject);
-        } catch (error) { reject(error); }
-      };
-
-      loop();
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.some.js b/node_modules/core-js-pure/modules/esnext.async-iterator.some.js
deleted file mode 100644
index 13fc1ee..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.some.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var $some = require('../internals/async-iterator-iteration').some;
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  some: function some(fn) {
-    return $some(this, fn);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.take.js b/node_modules/core-js-pure/modules/esnext.async-iterator.take.js
deleted file mode 100644
index fc59d88..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.take.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var toPositiveInteger = require('../internals/to-positive-integer');
-var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
-
-var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
-  if (!this.remaining--) {
-    this.done = true;
-    return { done: true, value: undefined };
-  } return this.next.call(this.iterator, arg);
-});
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  take: function take(limit) {
-    return new AsyncIteratorProxy({
-      iterator: anObject(this),
-      remaining: toPositiveInteger(limit)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.async-iterator.to-array.js b/node_modules/core-js-pure/modules/esnext.async-iterator.to-array.js
deleted file mode 100644
index 04e3e7f..0000000
--- a/node_modules/core-js-pure/modules/esnext.async-iterator.to-array.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var $toArray = require('../internals/async-iterator-iteration').toArray;
-
-$({ target: 'AsyncIterator', proto: true, real: true }, {
-  toArray: function toArray() {
-    return $toArray(this);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.composite-key.js b/node_modules/core-js-pure/modules/esnext.composite-key.js
deleted file mode 100644
index 43bedae..0000000
--- a/node_modules/core-js-pure/modules/esnext.composite-key.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var getCompositeKeyNode = require('../internals/composite-key');
-var getBuiltIn = require('../internals/get-built-in');
-var create = require('../internals/object-create');
-
-var initializer = function () {
-  var freeze = getBuiltIn('Object', 'freeze');
-  return freeze ? freeze(create(null)) : create(null);
-};
-
-// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey
-$({ global: true }, {
-  compositeKey: function compositeKey() {
-    return getCompositeKeyNode.apply(Object, arguments).get('object', initializer);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.composite-symbol.js b/node_modules/core-js-pure/modules/esnext.composite-symbol.js
deleted file mode 100644
index 06d1b22..0000000
--- a/node_modules/core-js-pure/modules/esnext.composite-symbol.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('../internals/export');
-var getCompositeKeyNode = require('../internals/composite-key');
-var getBuiltIn = require('../internals/get-built-in');
-
-// https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey
-$({ global: true }, {
-  compositeSymbol: function compositeSymbol() {
-    if (arguments.length === 1 && typeof arguments[0] === 'string') return getBuiltIn('Symbol')['for'](arguments[0]);
-    return getCompositeKeyNode.apply(null, arguments).get('symbol', getBuiltIn('Symbol'));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.global-this.js b/node_modules/core-js-pure/modules/esnext.global-this.js
deleted file mode 100644
index c62786d..0000000
--- a/node_modules/core-js-pure/modules/esnext.global-this.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('./es.global-this');
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.as-indexed-pairs.js b/node_modules/core-js-pure/modules/esnext.iterator.as-indexed-pairs.js
deleted file mode 100644
index fb3bf85..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.as-indexed-pairs.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var result = anObject(this.next.call(this.iterator, arg));
-  var done = this.done = !!result.done;
-  if (!done) return [this.index++, result.value];
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  asIndexedPairs: function asIndexedPairs() {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      index: 0
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.constructor.js b/node_modules/core-js-pure/modules/esnext.iterator.constructor.js
deleted file mode 100644
index a481dff..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.constructor.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var global = require('../internals/global');
-var anInstance = require('../internals/an-instance');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var fails = require('../internals/fails');
-var has = require('../internals/has');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
-var IS_PURE = require('../internals/is-pure');
-
-var ITERATOR = wellKnownSymbol('iterator');
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-var NativeIterator = global.Iterator;
-
-// FF56- have non-standard global helper `Iterator`
-var FORCED = IS_PURE
-  || typeof NativeIterator != 'function'
-  || NativeIterator.prototype !== IteratorPrototype
-  // FF44- non-standard `Iterator` passes previous tests
-  || !fails(function () { NativeIterator({}); });
-
-var IteratorConstructor = function Iterator() {
-  anInstance(this, IteratorConstructor);
-};
-
-if (IS_PURE) {
-  IteratorPrototype = {};
-  createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {
-    return this;
-  });
-}
-
-if (!has(IteratorPrototype, TO_STRING_TAG)) {
-  createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');
-}
-
-if (FORCED || !has(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {
-  createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);
-}
-
-IteratorConstructor.prototype = IteratorPrototype;
-
-$({ global: true, forced: FORCED }, {
-  Iterator: IteratorConstructor
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.drop.js b/node_modules/core-js-pure/modules/esnext.iterator.drop.js
deleted file mode 100644
index 62cc89d..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.drop.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var toPositiveInteger = require('../internals/to-positive-integer');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var iterator = this.iterator;
-  var next = this.next;
-  var result, done;
-  while (this.remaining) {
-    this.remaining--;
-    result = anObject(next.call(iterator));
-    done = this.done = !!result.done;
-    if (done) return;
-  }
-  result = anObject(next.call(iterator, arg));
-  done = this.done = !!result.done;
-  if (!done) return result.value;
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  drop: function drop(limit) {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      remaining: toPositiveInteger(limit)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.every.js b/node_modules/core-js-pure/modules/esnext.iterator.every.js
deleted file mode 100644
index faa04fe..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.every.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  every: function every(fn) {
-    anObject(this);
-    aFunction(fn);
-    return !iterate(this, function (value) {
-      if (!fn(value)) return iterate.stop();
-    }, undefined, false, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.filter.js b/node_modules/core-js-pure/modules/esnext.iterator.filter.js
deleted file mode 100644
index db45c9b..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.filter.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var iterator = this.iterator;
-  var filterer = this.filterer;
-  var next = this.next;
-  var result, done, value;
-  while (true) {
-    result = anObject(next.call(iterator, arg));
-    done = this.done = !!result.done;
-    if (done) return;
-    value = result.value;
-    if (callWithSafeIterationClosing(iterator, filterer, value)) return value;
-  }
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  filter: function filter(filterer) {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      filterer: aFunction(filterer)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.find.js b/node_modules/core-js-pure/modules/esnext.iterator.find.js
deleted file mode 100644
index 42db9ea..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.find.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  find: function find(fn) {
-    anObject(this);
-    aFunction(fn);
-    return iterate(this, function (value) {
-      if (fn(value)) return iterate.stop(value);
-    }, undefined, false, true).result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.flat-map.js b/node_modules/core-js-pure/modules/esnext.iterator.flat-map.js
deleted file mode 100644
index 0841996..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.flat-map.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var getIteratorMethod = require('../internals/get-iterator-method');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var iterator = this.iterator;
-  var result, mapped, iteratorMethod, innerIterator;
-
-  while (true) {
-    if (innerIterator = this.innerIterator) {
-      result = anObject(this.innerNext.call(innerIterator));
-      if (!result.done) return result.value;
-      this.innerIterator = this.innerNext = null;
-    }
-
-    result = anObject(this.next.call(iterator, arg));
-
-    if (this.done = !!result.done) return;
-
-    mapped = callWithSafeIterationClosing(iterator, this.mapper, result.value);
-    iteratorMethod = getIteratorMethod(mapped);
-
-    if (iteratorMethod === undefined) {
-      throw TypeError('.flatMap callback should return an iterable object');
-    }
-
-    this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped));
-    this.innerNext = aFunction(innerIterator.next);
-  }
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  flatMap: function flatMap(mapper) {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      mapper: aFunction(mapper),
-      innerIterator: null,
-      innerNext: null
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.for-each.js b/node_modules/core-js-pure/modules/esnext.iterator.for-each.js
deleted file mode 100644
index c242770..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.for-each.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var anObject = require('../internals/an-object');
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  forEach: function forEach(fn) {
-    iterate(anObject(this), fn, undefined, false, true);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.from.js b/node_modules/core-js-pure/modules/esnext.iterator.from.js
deleted file mode 100644
index 10fa7f2..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.from.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var path = require('../internals/path');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var toObject = require('../internals/to-object');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-var getIteratorMethod = require('../internals/get-iterator-method');
-
-var Iterator = path.Iterator;
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var result = anObject(this.next.call(this.iterator, arg));
-  var done = this.done = !!result.done;
-  if (!done) return result.value;
-}, true);
-
-$({ target: 'Iterator', stat: true }, {
-  from: function from(O) {
-    var object = toObject(O);
-    var usingIterator = getIteratorMethod(object);
-    var iterator;
-    if (usingIterator != null) {
-      iterator = aFunction(usingIterator).call(object);
-      if (iterator instanceof Iterator) return iterator;
-    } else {
-      iterator = object;
-    } return new IteratorProxy({
-      iterator: iterator
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.map.js b/node_modules/core-js-pure/modules/esnext.iterator.map.js
deleted file mode 100644
index 054a7d1..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.map.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  var iterator = this.iterator;
-  var result = anObject(this.next.call(iterator, arg));
-  var done = this.done = !!result.done;
-  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, result.value);
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  map: function map(mapper) {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      mapper: aFunction(mapper)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.reduce.js b/node_modules/core-js-pure/modules/esnext.iterator.reduce.js
deleted file mode 100644
index 029269d..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.reduce.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  reduce: function reduce(reducer /* , initialValue */) {
-    anObject(this);
-    aFunction(reducer);
-    var noInitial = arguments.length < 2;
-    var accumulator = noInitial ? undefined : arguments[1];
-    iterate(this, function (value) {
-      if (noInitial) {
-        noInitial = false;
-        accumulator = value;
-      } else {
-        accumulator = reducer(accumulator, value);
-      }
-    }, undefined, false, true);
-    if (noInitial) throw TypeError('Reduce of empty iterator with no initial value');
-    return accumulator;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.some.js b/node_modules/core-js-pure/modules/esnext.iterator.some.js
deleted file mode 100644
index e32ce13..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.some.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  some: function some(fn) {
-    anObject(this);
-    aFunction(fn);
-    return iterate(this, function (value) {
-      if (fn(value)) return iterate.stop();
-    }, undefined, false, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.take.js b/node_modules/core-js-pure/modules/esnext.iterator.take.js
deleted file mode 100644
index 5ed1cd3..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.take.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var toPositiveInteger = require('../internals/to-positive-integer');
-var createIteratorProxy = require('../internals/iterator-create-proxy');
-
-var IteratorProxy = createIteratorProxy(function (arg) {
-  if (!this.remaining--) {
-    this.done = true;
-    return;
-  }
-  var result = anObject(this.next.call(this.iterator, arg));
-  var done = this.done = !!result.done;
-  if (!done) return result.value;
-});
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  take: function take(limit) {
-    return new IteratorProxy({
-      iterator: anObject(this),
-      remaining: toPositiveInteger(limit)
-    });
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.iterator.to-array.js b/node_modules/core-js-pure/modules/esnext.iterator.to-array.js
deleted file mode 100644
index 90d32b8..0000000
--- a/node_modules/core-js-pure/modules/esnext.iterator.to-array.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-iterator-helpers
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var anObject = require('../internals/an-object');
-
-var push = [].push;
-
-$({ target: 'Iterator', proto: true, real: true }, {
-  toArray: function toArray() {
-    var result = [];
-    iterate(anObject(this), push, result, false, true);
-    return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.delete-all.js b/node_modules/core-js-pure/modules/esnext.map.delete-all.js
deleted file mode 100644
index 4554b47..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.delete-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionDeleteAll = require('../internals/collection-delete-all');
-
-// `Map.prototype.deleteAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  deleteAll: function deleteAll(/* ...elements */) {
-    return collectionDeleteAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.every.js b/node_modules/core-js-pure/modules/esnext.map.every.js
deleted file mode 100644
index 6272c71..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.every.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.every` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  every: function every(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return !iterate(iterator, function (key, value) {
-      if (!boundFunction(value, key, map)) return iterate.stop();
-    }, undefined, true, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.filter.js b/node_modules/core-js-pure/modules/esnext.map.filter.js
deleted file mode 100644
index a140cc0..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.filter.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var speciesConstructor = require('../internals/species-constructor');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.filter` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  filter: function filter(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
-    var setter = aFunction(newMap.set);
-    iterate(iterator, function (key, value) {
-      if (boundFunction(value, key, map)) setter.call(newMap, key, value);
-    }, undefined, true, true);
-    return newMap;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.find-key.js b/node_modules/core-js-pure/modules/esnext.map.find-key.js
deleted file mode 100644
index 67489ec..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.find-key.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.findKey` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  findKey: function findKey(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return iterate(iterator, function (key, value) {
-      if (boundFunction(value, key, map)) return iterate.stop(key);
-    }, undefined, true, true).result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.find.js b/node_modules/core-js-pure/modules/esnext.map.find.js
deleted file mode 100644
index c0a9fed..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.find.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.find` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  find: function find(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return iterate(iterator, function (key, value) {
-      if (boundFunction(value, key, map)) return iterate.stop(value);
-    }, undefined, true, true).result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.from.js b/node_modules/core-js-pure/modules/esnext.map.from.js
deleted file mode 100644
index 9aa6aac..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.from.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var from = require('../internals/collection-from');
-
-// `Map.from` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-$({ target: 'Map', stat: true }, {
-  from: from
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.group-by.js b/node_modules/core-js-pure/modules/esnext.map.group-by.js
deleted file mode 100644
index a34c6a0..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.group-by.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-
-// `Map.groupBy` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', stat: true }, {
-  groupBy: function groupBy(iterable, keyDerivative) {
-    var newMap = new this();
-    aFunction(keyDerivative);
-    var has = aFunction(newMap.has);
-    var get = aFunction(newMap.get);
-    var set = aFunction(newMap.set);
-    iterate(iterable, function (element) {
-      var derivedKey = keyDerivative(element);
-      if (!has.call(newMap, derivedKey)) set.call(newMap, derivedKey, [element]);
-      else get.call(newMap, derivedKey).push(element);
-    });
-    return newMap;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.includes.js b/node_modules/core-js-pure/modules/esnext.map.includes.js
deleted file mode 100644
index 5f9aff0..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.includes.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var getMapIterator = require('../internals/get-map-iterator');
-var sameValueZero = require('../internals/same-value-zero');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.includes` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  includes: function includes(searchElement) {
-    return iterate(getMapIterator(anObject(this)), function (key, value) {
-      if (sameValueZero(value, searchElement)) return iterate.stop();
-    }, undefined, true, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.key-by.js b/node_modules/core-js-pure/modules/esnext.map.key-by.js
deleted file mode 100644
index 0204bf2..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.key-by.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var iterate = require('../internals/iterate');
-var aFunction = require('../internals/a-function');
-
-// `Map.keyBy` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', stat: true }, {
-  keyBy: function keyBy(iterable, keyDerivative) {
-    var newMap = new this();
-    aFunction(keyDerivative);
-    var setter = aFunction(newMap.set);
-    iterate(iterable, function (element) {
-      setter.call(newMap, keyDerivative(element), element);
-    });
-    return newMap;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.key-of.js b/node_modules/core-js-pure/modules/esnext.map.key-of.js
deleted file mode 100644
index 1d100de..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.key-of.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.includes` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  keyOf: function keyOf(searchElement) {
-    return iterate(getMapIterator(anObject(this)), function (key, value) {
-      if (value === searchElement) return iterate.stop(key);
-    }, undefined, true, true).result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.map-keys.js b/node_modules/core-js-pure/modules/esnext.map.map-keys.js
deleted file mode 100644
index 0d9fdcb..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.map-keys.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var speciesConstructor = require('../internals/species-constructor');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.mapKeys` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  mapKeys: function mapKeys(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
-    var setter = aFunction(newMap.set);
-    iterate(iterator, function (key, value) {
-      setter.call(newMap, boundFunction(value, key, map), value);
-    }, undefined, true, true);
-    return newMap;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.map-values.js b/node_modules/core-js-pure/modules/esnext.map.map-values.js
deleted file mode 100644
index 8bd5076..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.map-values.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var speciesConstructor = require('../internals/species-constructor');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.mapValues` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  mapValues: function mapValues(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var newMap = new (speciesConstructor(map, getBuiltIn('Map')))();
-    var setter = aFunction(newMap.set);
-    iterate(iterator, function (key, value) {
-      setter.call(newMap, key, boundFunction(value, key, map));
-    }, undefined, true, true);
-    return newMap;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.merge.js b/node_modules/core-js-pure/modules/esnext.map.merge.js
deleted file mode 100644
index fd2c79c..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.merge.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.merge` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  // eslint-disable-next-line no-unused-vars
-  merge: function merge(iterable /* ...iterbles */) {
-    var map = anObject(this);
-    var setter = aFunction(map.set);
-    var i = 0;
-    while (i < arguments.length) {
-      iterate(arguments[i++], setter, map, true);
-    }
-    return map;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.of.js b/node_modules/core-js-pure/modules/esnext.map.of.js
deleted file mode 100644
index 4f84d89..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var of = require('../internals/collection-of');
-
-// `Map.of` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-$({ target: 'Map', stat: true }, {
-  of: of
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.reduce.js b/node_modules/core-js-pure/modules/esnext.map.reduce.js
deleted file mode 100644
index 43153f8..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.reduce.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Map.prototype.reduce` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  reduce: function reduce(callbackfn /* , initialValue */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var noInitial = arguments.length < 2;
-    var accumulator = noInitial ? undefined : arguments[1];
-    aFunction(callbackfn);
-    iterate(iterator, function (key, value) {
-      if (noInitial) {
-        noInitial = false;
-        accumulator = value;
-      } else {
-        accumulator = callbackfn(accumulator, value, key, map);
-      }
-    }, undefined, true, true);
-    if (noInitial) throw TypeError('Reduce of empty map with no initial value');
-    return accumulator;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.some.js b/node_modules/core-js-pure/modules/esnext.map.some.js
deleted file mode 100644
index 56cc03a..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.some.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getMapIterator = require('../internals/get-map-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.some` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  some: function some(callbackfn /* , thisArg */) {
-    var map = anObject(this);
-    var iterator = getMapIterator(map);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return iterate(iterator, function (key, value) {
-      if (boundFunction(value, key, map)) return iterate.stop();
-    }, undefined, true, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.update-or-insert.js b/node_modules/core-js-pure/modules/esnext.map.update-or-insert.js
deleted file mode 100644
index f429b21..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.update-or-insert.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-// TODO: remove from `core-js@4`
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var $upsert = require('../internals/map-upsert');
-
-// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.upsert`)
-// https://github.com/thumbsupep/proposal-upsert
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  updateOrInsert: $upsert
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.update.js b/node_modules/core-js-pure/modules/esnext.map.update.js
deleted file mode 100644
index 97358e8..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-
-// `Set.prototype.update` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  update: function update(key, callback /* , thunk */) {
-    var map = anObject(this);
-    var length = arguments.length;
-    aFunction(callback);
-    var isPresentInMap = map.has(key);
-    if (!isPresentInMap && length < 3) {
-      throw TypeError('Updating absent value');
-    }
-    var value = isPresentInMap ? map.get(key) : aFunction(length > 2 ? arguments[2] : undefined)(key, map);
-    map.set(key, callback(value, key, map));
-    return map;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.map.upsert.js b/node_modules/core-js-pure/modules/esnext.map.upsert.js
deleted file mode 100644
index a30e835..0000000
--- a/node_modules/core-js-pure/modules/esnext.map.upsert.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var $upsert = require('../internals/map-upsert');
-
-// `Map.prototype.upsert` method
-// https://github.com/thumbsupep/proposal-upsert
-$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
-  upsert: $upsert
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.clamp.js b/node_modules/core-js-pure/modules/esnext.math.clamp.js
deleted file mode 100644
index c69b122..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.clamp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-
-var min = Math.min;
-var max = Math.max;
-
-// `Math.clamp` method
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  clamp: function clamp(x, lower, upper) {
-    return min(upper, max(lower, x));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.deg-per-rad.js b/node_modules/core-js-pure/modules/esnext.math.deg-per-rad.js
deleted file mode 100644
index b1c09b8..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.deg-per-rad.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.DEG_PER_RAD` constant
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  DEG_PER_RAD: Math.PI / 180
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.degrees.js b/node_modules/core-js-pure/modules/esnext.math.degrees.js
deleted file mode 100644
index e91de91..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.degrees.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('../internals/export');
-
-var RAD_PER_DEG = 180 / Math.PI;
-
-// `Math.degrees` method
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  degrees: function degrees(radians) {
-    return radians * RAD_PER_DEG;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.fscale.js b/node_modules/core-js-pure/modules/esnext.math.fscale.js
deleted file mode 100644
index 3db68ef..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.fscale.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var $ = require('../internals/export');
-
-var scale = require('../internals/math-scale');
-var fround = require('../internals/math-fround');
-
-// `Math.fscale` method
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
-    return fround(scale(x, inLow, inHigh, outLow, outHigh));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.iaddh.js b/node_modules/core-js-pure/modules/esnext.math.iaddh.js
deleted file mode 100644
index 2323031..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.iaddh.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.iaddh` method
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-// TODO: Remove from `core-js@4`
-$({ target: 'Math', stat: true }, {
-  iaddh: function iaddh(x0, x1, y0, y1) {
-    var $x0 = x0 >>> 0;
-    var $x1 = x1 >>> 0;
-    var $y0 = y0 >>> 0;
-    return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.imulh.js b/node_modules/core-js-pure/modules/esnext.math.imulh.js
deleted file mode 100644
index f7a558e..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.imulh.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.imulh` method
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-// TODO: Remove from `core-js@4`
-$({ target: 'Math', stat: true }, {
-  imulh: function imulh(u, v) {
-    var UINT16 = 0xFFFF;
-    var $u = +u;
-    var $v = +v;
-    var u0 = $u & UINT16;
-    var v0 = $v & UINT16;
-    var u1 = $u >> 16;
-    var v1 = $v >> 16;
-    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
-    return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.isubh.js b/node_modules/core-js-pure/modules/esnext.math.isubh.js
deleted file mode 100644
index cbe0b4e..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.isubh.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.isubh` method
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-// TODO: Remove from `core-js@4`
-$({ target: 'Math', stat: true }, {
-  isubh: function isubh(x0, x1, y0, y1) {
-    var $x0 = x0 >>> 0;
-    var $x1 = x1 >>> 0;
-    var $y0 = y0 >>> 0;
-    return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.rad-per-deg.js b/node_modules/core-js-pure/modules/esnext.math.rad-per-deg.js
deleted file mode 100644
index 6515cbe..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.rad-per-deg.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.RAD_PER_DEG` constant
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  RAD_PER_DEG: 180 / Math.PI
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.radians.js b/node_modules/core-js-pure/modules/esnext.math.radians.js
deleted file mode 100644
index 0b25512..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.radians.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var $ = require('../internals/export');
-
-var DEG_PER_RAD = Math.PI / 180;
-
-// `Math.radians` method
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  radians: function radians(degrees) {
-    return degrees * DEG_PER_RAD;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.scale.js b/node_modules/core-js-pure/modules/esnext.math.scale.js
deleted file mode 100644
index 400a9ed..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.scale.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var scale = require('../internals/math-scale');
-
-// `Math.scale` method
-// https://rwaldron.github.io/proposal-math-extensions/
-$({ target: 'Math', stat: true }, {
-  scale: scale
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.seeded-prng.js b/node_modules/core-js-pure/modules/esnext.math.seeded-prng.js
deleted file mode 100644
index 6e39688..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.seeded-prng.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var $ = require('../internals/export');
-var anObject = require('../internals/an-object');
-var numberIsFinite = require('../internals/number-is-finite');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var InternalStateModule = require('../internals/internal-state');
-
-var SEEDED_RANDOM = 'Seeded Random';
-var SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(SEEDED_RANDOM_GENERATOR);
-var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.';
-
-var $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) {
-  setInternalState(this, {
-    type: SEEDED_RANDOM_GENERATOR,
-    seed: seed % 2147483647
-  });
-}, SEEDED_RANDOM, function next() {
-  var state = getInternalState(this);
-  var seed = state.seed = (state.seed * 1103515245 + 12345) % 2147483647;
-  return { value: (seed & 1073741823) / 1073741823, done: false };
-});
-
-// `Math.seededPRNG` method
-// https://github.com/tc39/proposal-seeded-random
-// based on https://github.com/tc39/proposal-seeded-random/blob/78b8258835b57fc2100d076151ab506bc3202ae6/demo.html
-$({ target: 'Math', stat: true, forced: true }, {
-  seededPRNG: function seededPRNG(it) {
-    var seed = anObject(it).seed;
-    if (!numberIsFinite(seed)) throw TypeError(SEED_TYPE_ERROR);
-    return new $SeededRandomGenerator(seed);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.signbit.js b/node_modules/core-js-pure/modules/esnext.math.signbit.js
deleted file mode 100644
index 3ece8ea..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.signbit.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.signbit` method
-// https://github.com/tc39/proposal-Math.signbit
-$({ target: 'Math', stat: true }, {
-  signbit: function signbit(x) {
-    return (x = +x) == x && x == 0 ? 1 / x == -Infinity : x < 0;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.math.umulh.js b/node_modules/core-js-pure/modules/esnext.math.umulh.js
deleted file mode 100644
index 5f0e70f..0000000
--- a/node_modules/core-js-pure/modules/esnext.math.umulh.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var $ = require('../internals/export');
-
-// `Math.umulh` method
-// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-// TODO: Remove from `core-js@4`
-$({ target: 'Math', stat: true }, {
-  umulh: function umulh(u, v) {
-    var UINT16 = 0xFFFF;
-    var $u = +u;
-    var $v = +v;
-    var u0 = $u & UINT16;
-    var v0 = $v & UINT16;
-    var u1 = $u >>> 16;
-    var v1 = $v >>> 16;
-    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
-    return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.number.from-string.js b/node_modules/core-js-pure/modules/esnext.number.from-string.js
deleted file mode 100644
index 85f1498..0000000
--- a/node_modules/core-js-pure/modules/esnext.number.from-string.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var toInteger = require('../internals/to-integer');
-var parseInt = require('../internals/number-parse-int');
-
-var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';
-var INVALID_RADIX = 'Invalid radix';
-var valid = /^[\da-z]+$/;
-
-// `Number.fromString` method
-// https://github.com/tc39/proposal-number-fromstring
-$({ target: 'Number', stat: true }, {
-  fromString: function fromString(string, radix) {
-    var sign = 1;
-    var R, mathNum;
-    if (typeof string != 'string') throw TypeError(INVALID_NUMBER_REPRESENTATION);
-    if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION);
-    if (string.charAt(0) == '-') {
-      sign = -1;
-      string = string.slice(1);
-      if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION);
-    }
-    R = radix === undefined ? 10 : toInteger(radix);
-    if (R < 2 || R > 36) throw RangeError(INVALID_RADIX);
-    if (!valid.test(string) || (mathNum = parseInt(string, R)).toString(R) !== string) {
-      throw SyntaxError(INVALID_NUMBER_REPRESENTATION);
-    }
-    return sign * mathNum;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.object.iterate-entries.js b/node_modules/core-js-pure/modules/esnext.object.iterate-entries.js
deleted file mode 100644
index b882ca3..0000000
--- a/node_modules/core-js-pure/modules/esnext.object.iterate-entries.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var ObjectIterator = require('../internals/object-iterator');
-
-// `Object.iterateEntries` method
-// https://github.com/tc39/proposal-object-iteration
-$({ target: 'Object', stat: true }, {
-  iterateEntries: function iterateEntries(object) {
-    return new ObjectIterator(object, 'entries');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.object.iterate-keys.js b/node_modules/core-js-pure/modules/esnext.object.iterate-keys.js
deleted file mode 100644
index e74dc37..0000000
--- a/node_modules/core-js-pure/modules/esnext.object.iterate-keys.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var ObjectIterator = require('../internals/object-iterator');
-
-// `Object.iterateKeys` method
-// https://github.com/tc39/proposal-object-iteration
-$({ target: 'Object', stat: true }, {
-  iterateKeys: function iterateKeys(object) {
-    return new ObjectIterator(object, 'keys');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.object.iterate-values.js b/node_modules/core-js-pure/modules/esnext.object.iterate-values.js
deleted file mode 100644
index 1d18fe0..0000000
--- a/node_modules/core-js-pure/modules/esnext.object.iterate-values.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var ObjectIterator = require('../internals/object-iterator');
-
-// `Object.iterateValues` method
-// https://github.com/tc39/proposal-object-iteration
-$({ target: 'Object', stat: true }, {
-  iterateValues: function iterateValues(object) {
-    return new ObjectIterator(object, 'values');
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.observable.js b/node_modules/core-js-pure/modules/esnext.observable.js
deleted file mode 100644
index 4eaab23..0000000
--- a/node_modules/core-js-pure/modules/esnext.observable.js
+++ /dev/null
@@ -1,207 +0,0 @@
-'use strict';
-// https://github.com/tc39/proposal-observable
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var setSpecies = require('../internals/set-species');
-var aFunction = require('../internals/a-function');
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var anInstance = require('../internals/an-instance');
-var defineProperty = require('../internals/object-define-property').f;
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefineAll = require('../internals/redefine-all');
-var getIterator = require('../internals/get-iterator');
-var iterate = require('../internals/iterate');
-var hostReportErrors = require('../internals/host-report-errors');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var InternalStateModule = require('../internals/internal-state');
-
-var OBSERVABLE = wellKnownSymbol('observable');
-var getInternalState = InternalStateModule.get;
-var setInternalState = InternalStateModule.set;
-
-var getMethod = function (fn) {
-  return fn == null ? undefined : aFunction(fn);
-};
-
-var cleanupSubscription = function (subscriptionState) {
-  var cleanup = subscriptionState.cleanup;
-  if (cleanup) {
-    subscriptionState.cleanup = undefined;
-    try {
-      cleanup();
-    } catch (error) {
-      hostReportErrors(error);
-    }
-  }
-};
-
-var subscriptionClosed = function (subscriptionState) {
-  return subscriptionState.observer === undefined;
-};
-
-var close = function (subscription, subscriptionState) {
-  if (!DESCRIPTORS) {
-    subscription.closed = true;
-    var subscriptionObserver = subscriptionState.subscriptionObserver;
-    if (subscriptionObserver) subscriptionObserver.closed = true;
-  } subscriptionState.observer = undefined;
-};
-
-var Subscription = function (observer, subscriber) {
-  var subscriptionState = setInternalState(this, {
-    cleanup: undefined,
-    observer: anObject(observer),
-    subscriptionObserver: undefined
-  });
-  var start;
-  if (!DESCRIPTORS) this.closed = false;
-  try {
-    if (start = getMethod(observer.start)) start.call(observer, this);
-  } catch (error) {
-    hostReportErrors(error);
-  }
-  if (subscriptionClosed(subscriptionState)) return;
-  var subscriptionObserver = subscriptionState.subscriptionObserver = new SubscriptionObserver(this);
-  try {
-    var cleanup = subscriber(subscriptionObserver);
-    var subscription = cleanup;
-    if (cleanup != null) subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function'
-      ? function () { subscription.unsubscribe(); }
-      : aFunction(cleanup);
-  } catch (error) {
-    subscriptionObserver.error(error);
-    return;
-  } if (subscriptionClosed(subscriptionState)) cleanupSubscription(subscriptionState);
-};
-
-Subscription.prototype = redefineAll({}, {
-  unsubscribe: function unsubscribe() {
-    var subscriptionState = getInternalState(this);
-    if (!subscriptionClosed(subscriptionState)) {
-      close(this, subscriptionState);
-      cleanupSubscription(subscriptionState);
-    }
-  }
-});
-
-if (DESCRIPTORS) defineProperty(Subscription.prototype, 'closed', {
-  configurable: true,
-  get: function () {
-    return subscriptionClosed(getInternalState(this));
-  }
-});
-
-var SubscriptionObserver = function (subscription) {
-  setInternalState(this, { subscription: subscription });
-  if (!DESCRIPTORS) this.closed = false;
-};
-
-SubscriptionObserver.prototype = redefineAll({}, {
-  next: function next(value) {
-    var subscriptionState = getInternalState(getInternalState(this).subscription);
-    if (!subscriptionClosed(subscriptionState)) {
-      var observer = subscriptionState.observer;
-      try {
-        var nextMethod = getMethod(observer.next);
-        if (nextMethod) nextMethod.call(observer, value);
-      } catch (error) {
-        hostReportErrors(error);
-      }
-    }
-  },
-  error: function error(value) {
-    var subscription = getInternalState(this).subscription;
-    var subscriptionState = getInternalState(subscription);
-    if (!subscriptionClosed(subscriptionState)) {
-      var observer = subscriptionState.observer;
-      close(subscription, subscriptionState);
-      try {
-        var errorMethod = getMethod(observer.error);
-        if (errorMethod) errorMethod.call(observer, value);
-        else hostReportErrors(value);
-      } catch (err) {
-        hostReportErrors(err);
-      } cleanupSubscription(subscriptionState);
-    }
-  },
-  complete: function complete() {
-    var subscription = getInternalState(this).subscription;
-    var subscriptionState = getInternalState(subscription);
-    if (!subscriptionClosed(subscriptionState)) {
-      var observer = subscriptionState.observer;
-      close(subscription, subscriptionState);
-      try {
-        var completeMethod = getMethod(observer.complete);
-        if (completeMethod) completeMethod.call(observer);
-      } catch (error) {
-        hostReportErrors(error);
-      } cleanupSubscription(subscriptionState);
-    }
-  }
-});
-
-if (DESCRIPTORS) defineProperty(SubscriptionObserver.prototype, 'closed', {
-  configurable: true,
-  get: function () {
-    return subscriptionClosed(getInternalState(getInternalState(this).subscription));
-  }
-});
-
-var $Observable = function Observable(subscriber) {
-  anInstance(this, $Observable, 'Observable');
-  setInternalState(this, { subscriber: aFunction(subscriber) });
-};
-
-redefineAll($Observable.prototype, {
-  subscribe: function subscribe(observer) {
-    var length = arguments.length;
-    return new Subscription(typeof observer === 'function' ? {
-      next: observer,
-      error: length > 1 ? arguments[1] : undefined,
-      complete: length > 2 ? arguments[2] : undefined
-    } : isObject(observer) ? observer : {}, getInternalState(this).subscriber);
-  }
-});
-
-redefineAll($Observable, {
-  from: function from(x) {
-    var C = typeof this === 'function' ? this : $Observable;
-    var observableMethod = getMethod(anObject(x)[OBSERVABLE]);
-    if (observableMethod) {
-      var observable = anObject(observableMethod.call(x));
-      return observable.constructor === C ? observable : new C(function (observer) {
-        return observable.subscribe(observer);
-      });
-    }
-    var iterator = getIterator(x);
-    return new C(function (observer) {
-      iterate(iterator, function (it) {
-        observer.next(it);
-        if (observer.closed) return iterate.stop();
-      }, undefined, false, true);
-      observer.complete();
-    });
-  },
-  of: function of() {
-    var C = typeof this === 'function' ? this : $Observable;
-    var length = arguments.length;
-    var items = new Array(length);
-    var index = 0;
-    while (index < length) items[index] = arguments[index++];
-    return new C(function (observer) {
-      for (var i = 0; i < length; i++) {
-        observer.next(items[i]);
-        if (observer.closed) return;
-      } observer.complete();
-    });
-  }
-});
-
-createNonEnumerableProperty($Observable.prototype, OBSERVABLE, function () { return this; });
-
-$({ global: true }, {
-  Observable: $Observable
-});
-
-setSpecies('Observable');
diff --git a/node_modules/core-js-pure/modules/esnext.promise.all-settled.js b/node_modules/core-js-pure/modules/esnext.promise.all-settled.js
deleted file mode 100644
index 0b9d7ee..0000000
--- a/node_modules/core-js-pure/modules/esnext.promise.all-settled.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('./es.promise.all-settled.js');
diff --git a/node_modules/core-js-pure/modules/esnext.promise.any.js b/node_modules/core-js-pure/modules/esnext.promise.any.js
deleted file mode 100644
index e26d1b3..0000000
--- a/node_modules/core-js-pure/modules/esnext.promise.any.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var getBuiltIn = require('../internals/get-built-in');
-var newPromiseCapabilityModule = require('../internals/new-promise-capability');
-var perform = require('../internals/perform');
-var iterate = require('../internals/iterate');
-
-var PROMISE_ANY_ERROR = 'No one promise resolved';
-
-// `Promise.any` method
-// https://github.com/tc39/proposal-promise-any
-$({ target: 'Promise', stat: true }, {
-  any: function any(iterable) {
-    var C = this;
-    var capability = newPromiseCapabilityModule.f(C);
-    var resolve = capability.resolve;
-    var reject = capability.reject;
-    var result = perform(function () {
-      var promiseResolve = aFunction(C.resolve);
-      var errors = [];
-      var counter = 0;
-      var remaining = 1;
-      var alreadyResolved = false;
-      iterate(iterable, function (promise) {
-        var index = counter++;
-        var alreadyRejected = false;
-        errors.push(undefined);
-        remaining++;
-        promiseResolve.call(C, promise).then(function (value) {
-          if (alreadyRejected || alreadyResolved) return;
-          alreadyResolved = true;
-          resolve(value);
-        }, function (e) {
-          if (alreadyRejected || alreadyResolved) return;
-          alreadyRejected = true;
-          errors[index] = e;
-          --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
-        });
-      });
-      --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
-    });
-    if (result.error) reject(result.value);
-    return capability.promise;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.promise.try.js b/node_modules/core-js-pure/modules/esnext.promise.try.js
deleted file mode 100644
index 7a7b93b..0000000
--- a/node_modules/core-js-pure/modules/esnext.promise.try.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var newPromiseCapabilityModule = require('../internals/new-promise-capability');
-var perform = require('../internals/perform');
-
-// `Promise.try` method
-// https://github.com/tc39/proposal-promise-try
-$({ target: 'Promise', stat: true }, {
-  'try': function (callbackfn) {
-    var promiseCapability = newPromiseCapabilityModule.f(this);
-    var result = perform(callbackfn);
-    (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
-    return promiseCapability.promise;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.define-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.define-metadata.js
deleted file mode 100644
index 2596439..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.define-metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var toMetadataKey = ReflectMetadataModule.toKey;
-var ordinaryDefineOwnMetadata = ReflectMetadataModule.set;
-
-// `Reflect.defineMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  defineMetadata: function defineMetadata(metadataKey, metadataValue, target /* , targetKey */) {
-    var targetKey = arguments.length < 4 ? undefined : toMetadataKey(arguments[3]);
-    ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.delete-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.delete-metadata.js
deleted file mode 100644
index ec510d3..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.delete-metadata.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var toMetadataKey = ReflectMetadataModule.toKey;
-var getOrCreateMetadataMap = ReflectMetadataModule.getMap;
-var store = ReflectMetadataModule.store;
-
-// `Reflect.deleteMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
-    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
-    var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
-    if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
-    if (metadataMap.size) return true;
-    var targetMetadata = store.get(target);
-    targetMetadata['delete'](targetKey);
-    return !!targetMetadata.size || store['delete'](target);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.get-metadata-keys.js b/node_modules/core-js-pure/modules/esnext.reflect.get-metadata-keys.js
deleted file mode 100644
index 795f63d..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.get-metadata-keys.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var $ = require('../internals/export');
-// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
-var Set = require('../modules/es.set');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var iterate = require('../internals/iterate');
-
-var ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-var from = function (iter) {
-  var result = [];
-  iterate(iter, result.push, result);
-  return result;
-};
-
-var ordinaryMetadataKeys = function (O, P) {
-  var oKeys = ordinaryOwnMetadataKeys(O, P);
-  var parent = getPrototypeOf(O);
-  if (parent === null) return oKeys;
-  var pKeys = ordinaryMetadataKeys(parent, P);
-  return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
-};
-
-// `Reflect.getMetadataKeys` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {
-    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);
-    return ordinaryMetadataKeys(anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.get-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.get-metadata.js
deleted file mode 100644
index fd344e8..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.get-metadata.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-
-var ordinaryHasOwnMetadata = ReflectMetadataModule.has;
-var ordinaryGetOwnMetadata = ReflectMetadataModule.get;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-var ordinaryGetMetadata = function (MetadataKey, O, P) {
-  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
-  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);
-  var parent = getPrototypeOf(O);
-  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
-};
-
-// `Reflect.getMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {
-    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
-    return ordinaryGetMetadata(metadataKey, anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata-keys.js b/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata-keys.js
deleted file mode 100644
index 090bb8d..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata-keys.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var ordinaryOwnMetadataKeys = ReflectMetadataModule.keys;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-// `Reflect.getOwnMetadataKeys` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {
-    var targetKey = arguments.length < 2 ? undefined : toMetadataKey(arguments[1]);
-    return ordinaryOwnMetadataKeys(anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata.js
deleted file mode 100644
index 81c40d0..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.get-own-metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var ordinaryGetOwnMetadata = ReflectMetadataModule.get;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-// `Reflect.getOwnMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {
-    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
-    return ordinaryGetOwnMetadata(metadataKey, anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.has-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.has-metadata.js
deleted file mode 100644
index 4b81771..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.has-metadata.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-
-var ordinaryHasOwnMetadata = ReflectMetadataModule.has;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-var ordinaryHasMetadata = function (MetadataKey, O, P) {
-  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
-  if (hasOwn) return true;
-  var parent = getPrototypeOf(O);
-  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
-};
-
-// `Reflect.hasMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {
-    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
-    return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.has-own-metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.has-own-metadata.js
deleted file mode 100644
index 87774b1..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.has-own-metadata.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var ordinaryHasOwnMetadata = ReflectMetadataModule.has;
-var toMetadataKey = ReflectMetadataModule.toKey;
-
-// `Reflect.hasOwnMetadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {
-    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
-    return ordinaryHasOwnMetadata(metadataKey, anObject(target), targetKey);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.reflect.metadata.js b/node_modules/core-js-pure/modules/esnext.reflect.metadata.js
deleted file mode 100644
index 7e1caa6..0000000
--- a/node_modules/core-js-pure/modules/esnext.reflect.metadata.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var ReflectMetadataModule = require('../internals/reflect-metadata');
-var anObject = require('../internals/an-object');
-
-var toMetadataKey = ReflectMetadataModule.toKey;
-var ordinaryDefineOwnMetadata = ReflectMetadataModule.set;
-
-// `Reflect.metadata` method
-// https://github.com/rbuckton/reflect-metadata
-$({ target: 'Reflect', stat: true }, {
-  metadata: function metadata(metadataKey, metadataValue) {
-    return function decorator(target, key) {
-      ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetadataKey(key));
-    };
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.add-all.js b/node_modules/core-js-pure/modules/esnext.set.add-all.js
deleted file mode 100644
index 5de5089..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.add-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionAddAll = require('../internals/collection-add-all');
-
-// `Set.prototype.addAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  addAll: function addAll(/* ...elements */) {
-    return collectionAddAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.delete-all.js b/node_modules/core-js-pure/modules/esnext.set.delete-all.js
deleted file mode 100644
index 43e4195..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.delete-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionDeleteAll = require('../internals/collection-delete-all');
-
-// `Set.prototype.deleteAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  deleteAll: function deleteAll(/* ...elements */) {
-    return collectionDeleteAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.difference.js b/node_modules/core-js-pure/modules/esnext.set.difference.js
deleted file mode 100644
index 0bb6562..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.difference.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var speciesConstructor = require('../internals/species-constructor');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.difference` method
-// https://github.com/tc39/proposal-set-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  difference: function difference(iterable) {
-    var set = anObject(this);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
-    var remover = aFunction(newSet['delete']);
-    iterate(iterable, function (value) {
-      remover.call(newSet, value);
-    });
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.every.js b/node_modules/core-js-pure/modules/esnext.set.every.js
deleted file mode 100644
index 03813f9..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.every.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.every` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  every: function every(callbackfn /* , thisArg */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return !iterate(iterator, function (value) {
-      if (!boundFunction(value, value, set)) return iterate.stop();
-    }, undefined, false, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.filter.js b/node_modules/core-js-pure/modules/esnext.set.filter.js
deleted file mode 100644
index a408273..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.filter.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var speciesConstructor = require('../internals/species-constructor');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.filter` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  filter: function filter(callbackfn /* , thisArg */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
-    var adder = aFunction(newSet.add);
-    iterate(iterator, function (value) {
-      if (boundFunction(value, value, set)) adder.call(newSet, value);
-    }, undefined, false, true);
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.find.js b/node_modules/core-js-pure/modules/esnext.set.find.js
deleted file mode 100644
index fcfef51..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.find.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.find` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  find: function find(callbackfn /* , thisArg */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return iterate(iterator, function (value) {
-      if (boundFunction(value, value, set)) return iterate.stop(value);
-    }, undefined, false, true).result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.from.js b/node_modules/core-js-pure/modules/esnext.set.from.js
deleted file mode 100644
index 3ca34f4..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.from.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var from = require('../internals/collection-from');
-
-// `Set.from` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
-$({ target: 'Set', stat: true }, {
-  from: from
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.intersection.js b/node_modules/core-js-pure/modules/esnext.set.intersection.js
deleted file mode 100644
index 2d59f0d..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.intersection.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var speciesConstructor = require('../internals/species-constructor');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.intersection` method
-// https://github.com/tc39/proposal-set-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  intersection: function intersection(iterable) {
-    var set = anObject(this);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
-    var hasCheck = aFunction(set.has);
-    var adder = aFunction(newSet.add);
-    iterate(iterable, function (value) {
-      if (hasCheck.call(set, value)) adder.call(newSet, value);
-    });
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.is-disjoint-from.js b/node_modules/core-js-pure/modules/esnext.set.is-disjoint-from.js
deleted file mode 100644
index 3166ed9..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.is-disjoint-from.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.isDisjointFrom` method
-// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  isDisjointFrom: function isDisjointFrom(iterable) {
-    var set = anObject(this);
-    var hasCheck = aFunction(set.has);
-    return !iterate(iterable, function (value) {
-      if (hasCheck.call(set, value) === true) return iterate.stop();
-    }).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.is-subset-of.js b/node_modules/core-js-pure/modules/esnext.set.is-subset-of.js
deleted file mode 100644
index b3dde5e..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.is-subset-of.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var getIterator = require('../internals/get-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.isSubsetOf` method
-// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  isSubsetOf: function isSubsetOf(iterable) {
-    var iterator = getIterator(this);
-    var otherSet = anObject(iterable);
-    var hasCheck = otherSet.has;
-    if (typeof hasCheck != 'function') {
-      otherSet = new (getBuiltIn('Set'))(iterable);
-      hasCheck = aFunction(otherSet.has);
-    }
-    return !iterate(iterator, function (value) {
-      if (hasCheck.call(otherSet, value) === false) return iterate.stop();
-    }, undefined, false, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.is-superset-of.js b/node_modules/core-js-pure/modules/esnext.set.is-superset-of.js
deleted file mode 100644
index 303667a..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.is-superset-of.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.isSupersetOf` method
-// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  isSupersetOf: function isSupersetOf(iterable) {
-    var set = anObject(this);
-    var hasCheck = aFunction(set.has);
-    return !iterate(iterable, function (value) {
-      if (hasCheck.call(set, value) === false) return iterate.stop();
-    }).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.join.js b/node_modules/core-js-pure/modules/esnext.set.join.js
deleted file mode 100644
index 4b78472..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.join.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.join` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  join: function join(separator) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var sep = separator === undefined ? ',' : String(separator);
-    var result = [];
-    iterate(iterator, result.push, result, false, true);
-    return result.join(sep);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.map.js b/node_modules/core-js-pure/modules/esnext.set.map.js
deleted file mode 100644
index e9c6c14..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.map.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var bind = require('../internals/function-bind-context');
-var speciesConstructor = require('../internals/species-constructor');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.map` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  map: function map(callbackfn /* , thisArg */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
-    var adder = aFunction(newSet.add);
-    iterate(iterator, function (value) {
-      adder.call(newSet, boundFunction(value, value, set));
-    }, undefined, false, true);
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.of.js b/node_modules/core-js-pure/modules/esnext.set.of.js
deleted file mode 100644
index 744698e..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var of = require('../internals/collection-of');
-
-// `Set.of` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
-$({ target: 'Set', stat: true }, {
-  of: of
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.reduce.js b/node_modules/core-js-pure/modules/esnext.set.reduce.js
deleted file mode 100644
index 00e30de..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.reduce.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.reduce` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  reduce: function reduce(callbackfn /* , initialValue */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var noInitial = arguments.length < 2;
-    var accumulator = noInitial ? undefined : arguments[1];
-    aFunction(callbackfn);
-    iterate(iterator, function (value) {
-      if (noInitial) {
-        noInitial = false;
-        accumulator = value;
-      } else {
-        accumulator = callbackfn(accumulator, value, value, set);
-      }
-    }, undefined, false, true);
-    if (noInitial) throw TypeError('Reduce of empty set with no initial value');
-    return accumulator;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.some.js b/node_modules/core-js-pure/modules/esnext.set.some.js
deleted file mode 100644
index df8dda8..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.some.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var anObject = require('../internals/an-object');
-var bind = require('../internals/function-bind-context');
-var getSetIterator = require('../internals/get-set-iterator');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.some` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  some: function some(callbackfn /* , thisArg */) {
-    var set = anObject(this);
-    var iterator = getSetIterator(set);
-    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-    return iterate(iterator, function (value) {
-      if (boundFunction(value, value, set)) return iterate.stop();
-    }, undefined, false, true).stopped;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.symmetric-difference.js b/node_modules/core-js-pure/modules/esnext.set.symmetric-difference.js
deleted file mode 100644
index ccd326f..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.symmetric-difference.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var speciesConstructor = require('../internals/species-constructor');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.symmetricDifference` method
-// https://github.com/tc39/proposal-set-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  symmetricDifference: function symmetricDifference(iterable) {
-    var set = anObject(this);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
-    var remover = aFunction(newSet['delete']);
-    var adder = aFunction(newSet.add);
-    iterate(iterable, function (value) {
-      remover.call(newSet, value) || adder.call(newSet, value);
-    });
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.set.union.js b/node_modules/core-js-pure/modules/esnext.set.union.js
deleted file mode 100644
index fc153d4..0000000
--- a/node_modules/core-js-pure/modules/esnext.set.union.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var getBuiltIn = require('../internals/get-built-in');
-var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
-var speciesConstructor = require('../internals/species-constructor');
-var iterate = require('../internals/iterate');
-
-// `Set.prototype.union` method
-// https://github.com/tc39/proposal-set-methods
-$({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
-  union: function union(iterable) {
-    var set = anObject(this);
-    var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set);
-    iterate(iterable, aFunction(newSet.add), newSet);
-    return newSet;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.string.at.js b/node_modules/core-js-pure/modules/esnext.string.at.js
deleted file mode 100644
index fc3c44a..0000000
--- a/node_modules/core-js-pure/modules/esnext.string.at.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var charAt = require('../internals/string-multibyte').charAt;
-
-// `String.prototype.at` method
-// https://github.com/mathiasbynens/String.prototype.at
-$({ target: 'String', proto: true }, {
-  at: function at(pos) {
-    return charAt(this, pos);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.string.code-points.js b/node_modules/core-js-pure/modules/esnext.string.code-points.js
deleted file mode 100644
index fcf15d6..0000000
--- a/node_modules/core-js-pure/modules/esnext.string.code-points.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var InternalStateModule = require('../internals/internal-state');
-var StringMultibyteModule = require('../internals/string-multibyte');
-
-var codeAt = StringMultibyteModule.codeAt;
-var charAt = StringMultibyteModule.charAt;
-var STRING_ITERATOR = 'String Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
-
-// TODO: unify with String#@@iterator
-var $StringIterator = createIteratorConstructor(function StringIterator(string) {
-  setInternalState(this, {
-    type: STRING_ITERATOR,
-    string: string,
-    index: 0
-  });
-}, 'String', function next() {
-  var state = getInternalState(this);
-  var string = state.string;
-  var index = state.index;
-  var point;
-  if (index >= string.length) return { value: undefined, done: true };
-  point = charAt(string, index);
-  state.index += point.length;
-  return { value: { codePoint: codeAt(point, 0), position: index }, done: false };
-});
-
-// `String.prototype.codePoints` method
-// https://github.com/tc39/proposal-string-prototype-codepoints
-$({ target: 'String', proto: true }, {
-  codePoints: function codePoints() {
-    return new $StringIterator(String(requireObjectCoercible(this)));
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.string.match-all.js b/node_modules/core-js-pure/modules/esnext.string.match-all.js
deleted file mode 100644
index b01996d..0000000
--- a/node_modules/core-js-pure/modules/esnext.string.match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('./es.string.match-all');
diff --git a/node_modules/core-js-pure/modules/esnext.string.replace-all.js b/node_modules/core-js-pure/modules/esnext.string.replace-all.js
deleted file mode 100644
index 22220ee..0000000
--- a/node_modules/core-js-pure/modules/esnext.string.replace-all.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var isRegExp = require('../internals/is-regexp');
-var getRegExpFlags = require('../internals/regexp-flags');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-
-var REPLACE = wellKnownSymbol('replace');
-var RegExpPrototype = RegExp.prototype;
-
-// `String.prototype.replaceAll` method
-// https://github.com/tc39/proposal-string-replace-all
-$({ target: 'String', proto: true }, {
-  replaceAll: function replaceAll(searchValue, replaceValue) {
-    var O = requireObjectCoercible(this);
-    var IS_REG_EXP, flags, replacer, string, searchString, template, result, position, index;
-    if (searchValue != null) {
-      IS_REG_EXP = isRegExp(searchValue);
-      if (IS_REG_EXP) {
-        flags = String(requireObjectCoercible('flags' in RegExpPrototype
-          ? searchValue.flags
-          : getRegExpFlags.call(searchValue)
-        ));
-        if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
-      }
-      replacer = searchValue[REPLACE];
-      if (replacer !== undefined) {
-        return replacer.call(searchValue, O, replaceValue);
-      } else if (IS_PURE && IS_REG_EXP) {
-        return String(O).replace(searchValue, replaceValue);
-      }
-    }
-    string = String(O);
-    searchString = String(searchValue);
-    if (searchString === '') return replaceAll.call(string, /(?:)/g, replaceValue);
-    template = string.split(searchString);
-    if (typeof replaceValue !== 'function') {
-      return template.join(String(replaceValue));
-    }
-    result = template[0];
-    position = result.length;
-    for (index = 1; index < template.length; index++) {
-      result += String(replaceValue(searchString, position, string));
-      position += searchString.length + template[index].length;
-      result += template[index];
-    }
-    return result;
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js b/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js
deleted file mode 100644
index 776608e..0000000
--- a/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.asyncDispose` well-known symbol
-// https://github.com/tc39/proposal-using-statement
-defineWellKnownSymbol('asyncDispose');
diff --git a/node_modules/core-js-pure/modules/esnext.symbol.dispose.js b/node_modules/core-js-pure/modules/esnext.symbol.dispose.js
deleted file mode 100644
index ac7691d..0000000
--- a/node_modules/core-js-pure/modules/esnext.symbol.dispose.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.dispose` well-known symbol
-// https://github.com/tc39/proposal-using-statement
-defineWellKnownSymbol('dispose');
diff --git a/node_modules/core-js-pure/modules/esnext.symbol.observable.js b/node_modules/core-js-pure/modules/esnext.symbol.observable.js
deleted file mode 100644
index dc4a4f5..0000000
--- a/node_modules/core-js-pure/modules/esnext.symbol.observable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.observable` well-known symbol
-// https://github.com/tc39/proposal-observable
-defineWellKnownSymbol('observable');
diff --git a/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js b/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js
deleted file mode 100644
index 0120063..0000000
--- a/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-// `Symbol.patternMatch` well-known symbol
-// https://github.com/tc39/proposal-pattern-matching
-defineWellKnownSymbol('patternMatch');
diff --git a/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js b/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js
deleted file mode 100644
index 82cbd29..0000000
--- a/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// TODO: remove from `core-js@4`
-var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
-
-defineWellKnownSymbol('replaceAll');
diff --git a/node_modules/core-js-pure/modules/esnext.weak-map.delete-all.js b/node_modules/core-js-pure/modules/esnext.weak-map.delete-all.js
deleted file mode 100644
index ef56f99..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-map.delete-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionDeleteAll = require('../internals/collection-delete-all');
-
-// `WeakMap.prototype.deleteAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
-  deleteAll: function deleteAll(/* ...elements */) {
-    return collectionDeleteAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-map.from.js b/node_modules/core-js-pure/modules/esnext.weak-map.from.js
deleted file mode 100644
index 8dc7b01..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-map.from.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var from = require('../internals/collection-from');
-
-// `WeakMap.from` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
-$({ target: 'WeakMap', stat: true }, {
-  from: from
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-map.of.js b/node_modules/core-js-pure/modules/esnext.weak-map.of.js
deleted file mode 100644
index efea513..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-map.of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var of = require('../internals/collection-of');
-
-// `WeakMap.of` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
-$({ target: 'WeakMap', stat: true }, {
-  of: of
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-map.upsert.js b/node_modules/core-js-pure/modules/esnext.weak-map.upsert.js
deleted file mode 100644
index 1e0d60c..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-map.upsert.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var $upsert = require('../internals/map-upsert');
-
-// `WeakMap.prototype.upsert` method
-// https://github.com/thumbsupep/proposal-upsert
-$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
-  upsert: $upsert
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-set.add-all.js b/node_modules/core-js-pure/modules/esnext.weak-set.add-all.js
deleted file mode 100644
index e8bb4c9..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-set.add-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionAddAll = require('../internals/collection-add-all');
-
-// `WeakSet.prototype.addAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'WeakSet', proto: true, real: true, forced: IS_PURE }, {
-  addAll: function addAll(/* ...elements */) {
-    return collectionAddAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-set.delete-all.js b/node_modules/core-js-pure/modules/esnext.weak-set.delete-all.js
deleted file mode 100644
index b262821..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-set.delete-all.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var $ = require('../internals/export');
-var IS_PURE = require('../internals/is-pure');
-var collectionDeleteAll = require('../internals/collection-delete-all');
-
-// `WeakSet.prototype.deleteAll` method
-// https://github.com/tc39/proposal-collection-methods
-$({ target: 'WeakSet', proto: true, real: true, forced: IS_PURE }, {
-  deleteAll: function deleteAll(/* ...elements */) {
-    return collectionDeleteAll.apply(this, arguments);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-set.from.js b/node_modules/core-js-pure/modules/esnext.weak-set.from.js
deleted file mode 100644
index e13acec..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-set.from.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var from = require('../internals/collection-from');
-
-// `WeakSet.from` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
-$({ target: 'WeakSet', stat: true }, {
-  from: from
-});
diff --git a/node_modules/core-js-pure/modules/esnext.weak-set.of.js b/node_modules/core-js-pure/modules/esnext.weak-set.of.js
deleted file mode 100644
index aee9920..0000000
--- a/node_modules/core-js-pure/modules/esnext.weak-set.of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var $ = require('../internals/export');
-var of = require('../internals/collection-of');
-
-// `WeakSet.of` method
-// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
-$({ target: 'WeakSet', stat: true }, {
-  of: of
-});
diff --git a/node_modules/core-js-pure/modules/web.dom-collections.for-each.js b/node_modules/core-js-pure/modules/web.dom-collections.for-each.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/web.dom-collections.for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/modules/web.dom-collections.iterator.js b/node_modules/core-js-pure/modules/web.dom-collections.iterator.js
deleted file mode 100644
index 0bba3b8..0000000
--- a/node_modules/core-js-pure/modules/web.dom-collections.iterator.js
+++ /dev/null
@@ -1,18 +0,0 @@
-require('./es.array.iterator');
-var DOMIterables = require('../internals/dom-iterables');
-var global = require('../internals/global');
-var classof = require('../internals/classof');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var Iterators = require('../internals/iterators');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-for (var COLLECTION_NAME in DOMIterables) {
-  var Collection = global[COLLECTION_NAME];
-  var CollectionPrototype = Collection && Collection.prototype;
-  if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {
-    createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
-  }
-  Iterators[COLLECTION_NAME] = Iterators.Array;
-}
diff --git a/node_modules/core-js-pure/modules/web.immediate.js b/node_modules/core-js-pure/modules/web.immediate.js
deleted file mode 100644
index 0a0f1ef..0000000
--- a/node_modules/core-js-pure/modules/web.immediate.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var $ = require('../internals/export');
-var global = require('../internals/global');
-var task = require('../internals/task');
-
-var FORCED = !global.setImmediate || !global.clearImmediate;
-
-// http://w3c.github.io/setImmediate/
-$({ global: true, bind: true, enumerable: true, forced: FORCED }, {
-  // `setImmediate` method
-  // http://w3c.github.io/setImmediate/#si-setImmediate
-  setImmediate: task.set,
-  // `clearImmediate` method
-  // http://w3c.github.io/setImmediate/#si-clearImmediate
-  clearImmediate: task.clear
-});
diff --git a/node_modules/core-js-pure/modules/web.queue-microtask.js b/node_modules/core-js-pure/modules/web.queue-microtask.js
deleted file mode 100644
index ac5530c..0000000
--- a/node_modules/core-js-pure/modules/web.queue-microtask.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var $ = require('../internals/export');
-var global = require('../internals/global');
-var microtask = require('../internals/microtask');
-var classof = require('../internals/classof-raw');
-
-var process = global.process;
-var isNode = classof(process) == 'process';
-
-// `queueMicrotask` method
-// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
-$({ global: true, enumerable: true, noTargetGet: true }, {
-  queueMicrotask: function queueMicrotask(fn) {
-    var domain = isNode && process.domain;
-    microtask(domain ? domain.bind(fn) : fn);
-  }
-});
diff --git a/node_modules/core-js-pure/modules/web.timers.js b/node_modules/core-js-pure/modules/web.timers.js
deleted file mode 100644
index 0a4a7fc..0000000
--- a/node_modules/core-js-pure/modules/web.timers.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var $ = require('../internals/export');
-var global = require('../internals/global');
-var userAgent = require('../internals/engine-user-agent');
-
-var slice = [].slice;
-var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
-
-var wrap = function (scheduler) {
-  return function (handler, timeout /* , ...arguments */) {
-    var boundArgs = arguments.length > 2;
-    var args = boundArgs ? slice.call(arguments, 2) : undefined;
-    return scheduler(boundArgs ? function () {
-      // eslint-disable-next-line no-new-func
-      (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);
-    } : handler, timeout);
-  };
-};
-
-// ie9- setTimeout & setInterval additional parameters fix
-// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
-$({ global: true, bind: true, forced: MSIE }, {
-  // `setTimeout` method
-  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
-  setTimeout: wrap(global.setTimeout),
-  // `setInterval` method
-  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
-  setInterval: wrap(global.setInterval)
-});
diff --git a/node_modules/core-js-pure/modules/web.url-search-params.js b/node_modules/core-js-pure/modules/web.url-search-params.js
deleted file mode 100644
index e2b54c7..0000000
--- a/node_modules/core-js-pure/modules/web.url-search-params.js
+++ /dev/null
@@ -1,347 +0,0 @@
-'use strict';
-// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
-require('../modules/es.array.iterator');
-var $ = require('../internals/export');
-var getBuiltIn = require('../internals/get-built-in');
-var USE_NATIVE_URL = require('../internals/native-url');
-var redefine = require('../internals/redefine');
-var redefineAll = require('../internals/redefine-all');
-var setToStringTag = require('../internals/set-to-string-tag');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var InternalStateModule = require('../internals/internal-state');
-var anInstance = require('../internals/an-instance');
-var hasOwn = require('../internals/has');
-var bind = require('../internals/function-bind-context');
-var classof = require('../internals/classof');
-var anObject = require('../internals/an-object');
-var isObject = require('../internals/is-object');
-var create = require('../internals/object-create');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var getIterator = require('../internals/get-iterator');
-var getIteratorMethod = require('../internals/get-iterator-method');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var $fetch = getBuiltIn('fetch');
-var Headers = getBuiltIn('Headers');
-var ITERATOR = wellKnownSymbol('iterator');
-var URL_SEARCH_PARAMS = 'URLSearchParams';
-var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
-var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
-
-var plus = /\+/g;
-var sequences = Array(4);
-
-var percentSequence = function (bytes) {
-  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
-};
-
-var percentDecode = function (sequence) {
-  try {
-    return decodeURIComponent(sequence);
-  } catch (error) {
-    return sequence;
-  }
-};
-
-var deserialize = function (it) {
-  var result = it.replace(plus, ' ');
-  var bytes = 4;
-  try {
-    return decodeURIComponent(result);
-  } catch (error) {
-    while (bytes) {
-      result = result.replace(percentSequence(bytes--), percentDecode);
-    }
-    return result;
-  }
-};
-
-var find = /[!'()~]|%20/g;
-
-var replace = {
-  '!': '%21',
-  "'": '%27',
-  '(': '%28',
-  ')': '%29',
-  '~': '%7E',
-  '%20': '+'
-};
-
-var replacer = function (match) {
-  return replace[match];
-};
-
-var serialize = function (it) {
-  return encodeURIComponent(it).replace(find, replacer);
-};
-
-var parseSearchParams = function (result, query) {
-  if (query) {
-    var attributes = query.split('&');
-    var index = 0;
-    var attribute, entry;
-    while (index < attributes.length) {
-      attribute = attributes[index++];
-      if (attribute.length) {
-        entry = attribute.split('=');
-        result.push({
-          key: deserialize(entry.shift()),
-          value: deserialize(entry.join('='))
-        });
-      }
-    }
-  }
-};
-
-var updateSearchParams = function (query) {
-  this.entries.length = 0;
-  parseSearchParams(this.entries, query);
-};
-
-var validateArgumentsLength = function (passed, required) {
-  if (passed < required) throw TypeError('Not enough arguments');
-};
-
-var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
-  setInternalState(this, {
-    type: URL_SEARCH_PARAMS_ITERATOR,
-    iterator: getIterator(getInternalParamsState(params).entries),
-    kind: kind
-  });
-}, 'Iterator', function next() {
-  var state = getInternalIteratorState(this);
-  var kind = state.kind;
-  var step = state.iterator.next();
-  var entry = step.value;
-  if (!step.done) {
-    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];
-  } return step;
-});
-
-// `URLSearchParams` constructor
-// https://url.spec.whatwg.org/#interface-urlsearchparams
-var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
-  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);
-  var init = arguments.length > 0 ? arguments[0] : undefined;
-  var that = this;
-  var entries = [];
-  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;
-
-  setInternalState(that, {
-    type: URL_SEARCH_PARAMS,
-    entries: entries,
-    updateURL: function () { /* empty */ },
-    updateSearchParams: updateSearchParams
-  });
-
-  if (init !== undefined) {
-    if (isObject(init)) {
-      iteratorMethod = getIteratorMethod(init);
-      if (typeof iteratorMethod === 'function') {
-        iterator = iteratorMethod.call(init);
-        next = iterator.next;
-        while (!(step = next.call(iterator)).done) {
-          entryIterator = getIterator(anObject(step.value));
-          entryNext = entryIterator.next;
-          if (
-            (first = entryNext.call(entryIterator)).done ||
-            (second = entryNext.call(entryIterator)).done ||
-            !entryNext.call(entryIterator).done
-          ) throw TypeError('Expected sequence with length 2');
-          entries.push({ key: first.value + '', value: second.value + '' });
-        }
-      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });
-    } else {
-      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');
-    }
-  }
-};
-
-var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
-
-redefineAll(URLSearchParamsPrototype, {
-  // `URLSearchParams.prototype.appent` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
-  append: function append(name, value) {
-    validateArgumentsLength(arguments.length, 2);
-    var state = getInternalParamsState(this);
-    state.entries.push({ key: name + '', value: value + '' });
-    state.updateURL();
-  },
-  // `URLSearchParams.prototype.delete` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
-  'delete': function (name) {
-    validateArgumentsLength(arguments.length, 1);
-    var state = getInternalParamsState(this);
-    var entries = state.entries;
-    var key = name + '';
-    var index = 0;
-    while (index < entries.length) {
-      if (entries[index].key === key) entries.splice(index, 1);
-      else index++;
-    }
-    state.updateURL();
-  },
-  // `URLSearchParams.prototype.get` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-get
-  get: function get(name) {
-    validateArgumentsLength(arguments.length, 1);
-    var entries = getInternalParamsState(this).entries;
-    var key = name + '';
-    var index = 0;
-    for (; index < entries.length; index++) {
-      if (entries[index].key === key) return entries[index].value;
-    }
-    return null;
-  },
-  // `URLSearchParams.prototype.getAll` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
-  getAll: function getAll(name) {
-    validateArgumentsLength(arguments.length, 1);
-    var entries = getInternalParamsState(this).entries;
-    var key = name + '';
-    var result = [];
-    var index = 0;
-    for (; index < entries.length; index++) {
-      if (entries[index].key === key) result.push(entries[index].value);
-    }
-    return result;
-  },
-  // `URLSearchParams.prototype.has` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-has
-  has: function has(name) {
-    validateArgumentsLength(arguments.length, 1);
-    var entries = getInternalParamsState(this).entries;
-    var key = name + '';
-    var index = 0;
-    while (index < entries.length) {
-      if (entries[index++].key === key) return true;
-    }
-    return false;
-  },
-  // `URLSearchParams.prototype.set` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-set
-  set: function set(name, value) {
-    validateArgumentsLength(arguments.length, 1);
-    var state = getInternalParamsState(this);
-    var entries = state.entries;
-    var found = false;
-    var key = name + '';
-    var val = value + '';
-    var index = 0;
-    var entry;
-    for (; index < entries.length; index++) {
-      entry = entries[index];
-      if (entry.key === key) {
-        if (found) entries.splice(index--, 1);
-        else {
-          found = true;
-          entry.value = val;
-        }
-      }
-    }
-    if (!found) entries.push({ key: key, value: val });
-    state.updateURL();
-  },
-  // `URLSearchParams.prototype.sort` method
-  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort
-  sort: function sort() {
-    var state = getInternalParamsState(this);
-    var entries = state.entries;
-    // Array#sort is not stable in some engines
-    var slice = entries.slice();
-    var entry, entriesIndex, sliceIndex;
-    entries.length = 0;
-    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
-      entry = slice[sliceIndex];
-      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
-        if (entries[entriesIndex].key > entry.key) {
-          entries.splice(entriesIndex, 0, entry);
-          break;
-        }
-      }
-      if (entriesIndex === sliceIndex) entries.push(entry);
-    }
-    state.updateURL();
-  },
-  // `URLSearchParams.prototype.forEach` method
-  forEach: function forEach(callback /* , thisArg */) {
-    var entries = getInternalParamsState(this).entries;
-    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);
-    var index = 0;
-    var entry;
-    while (index < entries.length) {
-      entry = entries[index++];
-      boundFunction(entry.value, entry.key, this);
-    }
-  },
-  // `URLSearchParams.prototype.keys` method
-  keys: function keys() {
-    return new URLSearchParamsIterator(this, 'keys');
-  },
-  // `URLSearchParams.prototype.values` method
-  values: function values() {
-    return new URLSearchParamsIterator(this, 'values');
-  },
-  // `URLSearchParams.prototype.entries` method
-  entries: function entries() {
-    return new URLSearchParamsIterator(this, 'entries');
-  }
-}, { enumerable: true });
-
-// `URLSearchParams.prototype[@@iterator]` method
-redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);
-
-// `URLSearchParams.prototype.toString` method
-// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
-redefine(URLSearchParamsPrototype, 'toString', function toString() {
-  var entries = getInternalParamsState(this).entries;
-  var result = [];
-  var index = 0;
-  var entry;
-  while (index < entries.length) {
-    entry = entries[index++];
-    result.push(serialize(entry.key) + '=' + serialize(entry.value));
-  } return result.join('&');
-}, { enumerable: true });
-
-setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
-
-$({ global: true, forced: !USE_NATIVE_URL }, {
-  URLSearchParams: URLSearchParamsConstructor
-});
-
-// Wrap `fetch` for correct work with polyfilled `URLSearchParams`
-// https://github.com/zloirock/core-js/issues/674
-if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {
-  $({ global: true, enumerable: true, forced: true }, {
-    fetch: function fetch(input /* , init */) {
-      var args = [input];
-      var init, body, headers;
-      if (arguments.length > 1) {
-        init = arguments[1];
-        if (isObject(init)) {
-          body = init.body;
-          if (classof(body) === URL_SEARCH_PARAMS) {
-            headers = init.headers ? new Headers(init.headers) : new Headers();
-            if (!headers.has('content-type')) {
-              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
-            }
-            init = create(init, {
-              body: createPropertyDescriptor(0, String(body)),
-              headers: createPropertyDescriptor(0, headers)
-            });
-          }
-        }
-        args.push(init);
-      } return $fetch.apply(this, args);
-    }
-  });
-}
-
-module.exports = {
-  URLSearchParams: URLSearchParamsConstructor,
-  getState: getInternalParamsState
-};
diff --git a/node_modules/core-js-pure/modules/web.url.js b/node_modules/core-js-pure/modules/web.url.js
deleted file mode 100644
index 4e4df4b..0000000
--- a/node_modules/core-js-pure/modules/web.url.js
+++ /dev/null
@@ -1,1007 +0,0 @@
-'use strict';
-// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
-require('../modules/es.string.iterator');
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var USE_NATIVE_URL = require('../internals/native-url');
-var global = require('../internals/global');
-var defineProperties = require('../internals/object-define-properties');
-var redefine = require('../internals/redefine');
-var anInstance = require('../internals/an-instance');
-var has = require('../internals/has');
-var assign = require('../internals/object-assign');
-var arrayFrom = require('../internals/array-from');
-var codeAt = require('../internals/string-multibyte').codeAt;
-var toASCII = require('../internals/string-punycode-to-ascii');
-var setToStringTag = require('../internals/set-to-string-tag');
-var URLSearchParamsModule = require('../modules/web.url-search-params');
-var InternalStateModule = require('../internals/internal-state');
-
-var NativeURL = global.URL;
-var URLSearchParams = URLSearchParamsModule.URLSearchParams;
-var getInternalSearchParamsState = URLSearchParamsModule.getState;
-var setInternalState = InternalStateModule.set;
-var getInternalURLState = InternalStateModule.getterFor('URL');
-var floor = Math.floor;
-var pow = Math.pow;
-
-var INVALID_AUTHORITY = 'Invalid authority';
-var INVALID_SCHEME = 'Invalid scheme';
-var INVALID_HOST = 'Invalid host';
-var INVALID_PORT = 'Invalid port';
-
-var ALPHA = /[A-Za-z]/;
-var ALPHANUMERIC = /[\d+\-.A-Za-z]/;
-var DIGIT = /\d/;
-var HEX_START = /^(0x|0X)/;
-var OCT = /^[0-7]+$/;
-var DEC = /^\d+$/;
-var HEX = /^[\dA-Fa-f]+$/;
-// eslint-disable-next-line no-control-regex
-var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
-// eslint-disable-next-line no-control-regex
-var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
-// eslint-disable-next-line no-control-regex
-var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
-// eslint-disable-next-line no-control-regex
-var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
-var EOF;
-
-var parseHost = function (url, input) {
-  var result, codePoints, index;
-  if (input.charAt(0) == '[') {
-    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;
-    result = parseIPv6(input.slice(1, -1));
-    if (!result) return INVALID_HOST;
-    url.host = result;
-  // opaque host
-  } else if (!isSpecial(url)) {
-    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;
-    result = '';
-    codePoints = arrayFrom(input);
-    for (index = 0; index < codePoints.length; index++) {
-      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
-    }
-    url.host = result;
-  } else {
-    input = toASCII(input);
-    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;
-    result = parseIPv4(input);
-    if (result === null) return INVALID_HOST;
-    url.host = result;
-  }
-};
-
-var parseIPv4 = function (input) {
-  var parts = input.split('.');
-  var partsLength, numbers, index, part, radix, number, ipv4;
-  if (parts.length && parts[parts.length - 1] == '') {
-    parts.pop();
-  }
-  partsLength = parts.length;
-  if (partsLength > 4) return input;
-  numbers = [];
-  for (index = 0; index < partsLength; index++) {
-    part = parts[index];
-    if (part == '') return input;
-    radix = 10;
-    if (part.length > 1 && part.charAt(0) == '0') {
-      radix = HEX_START.test(part) ? 16 : 8;
-      part = part.slice(radix == 8 ? 1 : 2);
-    }
-    if (part === '') {
-      number = 0;
-    } else {
-      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;
-      number = parseInt(part, radix);
-    }
-    numbers.push(number);
-  }
-  for (index = 0; index < partsLength; index++) {
-    number = numbers[index];
-    if (index == partsLength - 1) {
-      if (number >= pow(256, 5 - partsLength)) return null;
-    } else if (number > 255) return null;
-  }
-  ipv4 = numbers.pop();
-  for (index = 0; index < numbers.length; index++) {
-    ipv4 += numbers[index] * pow(256, 3 - index);
-  }
-  return ipv4;
-};
-
-// eslint-disable-next-line max-statements
-var parseIPv6 = function (input) {
-  var address = [0, 0, 0, 0, 0, 0, 0, 0];
-  var pieceIndex = 0;
-  var compress = null;
-  var pointer = 0;
-  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
-
-  var char = function () {
-    return input.charAt(pointer);
-  };
-
-  if (char() == ':') {
-    if (input.charAt(1) != ':') return;
-    pointer += 2;
-    pieceIndex++;
-    compress = pieceIndex;
-  }
-  while (char()) {
-    if (pieceIndex == 8) return;
-    if (char() == ':') {
-      if (compress !== null) return;
-      pointer++;
-      pieceIndex++;
-      compress = pieceIndex;
-      continue;
-    }
-    value = length = 0;
-    while (length < 4 && HEX.test(char())) {
-      value = value * 16 + parseInt(char(), 16);
-      pointer++;
-      length++;
-    }
-    if (char() == '.') {
-      if (length == 0) return;
-      pointer -= length;
-      if (pieceIndex > 6) return;
-      numbersSeen = 0;
-      while (char()) {
-        ipv4Piece = null;
-        if (numbersSeen > 0) {
-          if (char() == '.' && numbersSeen < 4) pointer++;
-          else return;
-        }
-        if (!DIGIT.test(char())) return;
-        while (DIGIT.test(char())) {
-          number = parseInt(char(), 10);
-          if (ipv4Piece === null) ipv4Piece = number;
-          else if (ipv4Piece == 0) return;
-          else ipv4Piece = ipv4Piece * 10 + number;
-          if (ipv4Piece > 255) return;
-          pointer++;
-        }
-        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
-        numbersSeen++;
-        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;
-      }
-      if (numbersSeen != 4) return;
-      break;
-    } else if (char() == ':') {
-      pointer++;
-      if (!char()) return;
-    } else if (char()) return;
-    address[pieceIndex++] = value;
-  }
-  if (compress !== null) {
-    swaps = pieceIndex - compress;
-    pieceIndex = 7;
-    while (pieceIndex != 0 && swaps > 0) {
-      swap = address[pieceIndex];
-      address[pieceIndex--] = address[compress + swaps - 1];
-      address[compress + --swaps] = swap;
-    }
-  } else if (pieceIndex != 8) return;
-  return address;
-};
-
-var findLongestZeroSequence = function (ipv6) {
-  var maxIndex = null;
-  var maxLength = 1;
-  var currStart = null;
-  var currLength = 0;
-  var index = 0;
-  for (; index < 8; index++) {
-    if (ipv6[index] !== 0) {
-      if (currLength > maxLength) {
-        maxIndex = currStart;
-        maxLength = currLength;
-      }
-      currStart = null;
-      currLength = 0;
-    } else {
-      if (currStart === null) currStart = index;
-      ++currLength;
-    }
-  }
-  if (currLength > maxLength) {
-    maxIndex = currStart;
-    maxLength = currLength;
-  }
-  return maxIndex;
-};
-
-var serializeHost = function (host) {
-  var result, index, compress, ignore0;
-  // ipv4
-  if (typeof host == 'number') {
-    result = [];
-    for (index = 0; index < 4; index++) {
-      result.unshift(host % 256);
-      host = floor(host / 256);
-    } return result.join('.');
-  // ipv6
-  } else if (typeof host == 'object') {
-    result = '';
-    compress = findLongestZeroSequence(host);
-    for (index = 0; index < 8; index++) {
-      if (ignore0 && host[index] === 0) continue;
-      if (ignore0) ignore0 = false;
-      if (compress === index) {
-        result += index ? ':' : '::';
-        ignore0 = true;
-      } else {
-        result += host[index].toString(16);
-        if (index < 7) result += ':';
-      }
-    }
-    return '[' + result + ']';
-  } return host;
-};
-
-var C0ControlPercentEncodeSet = {};
-var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
-  ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1
-});
-var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {
-  '#': 1, '?': 1, '{': 1, '}': 1
-});
-var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
-  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1
-});
-
-var percentEncode = function (char, set) {
-  var code = codeAt(char, 0);
-  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);
-};
-
-var specialSchemes = {
-  ftp: 21,
-  file: null,
-  http: 80,
-  https: 443,
-  ws: 80,
-  wss: 443
-};
-
-var isSpecial = function (url) {
-  return has(specialSchemes, url.scheme);
-};
-
-var includesCredentials = function (url) {
-  return url.username != '' || url.password != '';
-};
-
-var cannotHaveUsernamePasswordPort = function (url) {
-  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';
-};
-
-var isWindowsDriveLetter = function (string, normalized) {
-  var second;
-  return string.length == 2 && ALPHA.test(string.charAt(0))
-    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));
-};
-
-var startsWithWindowsDriveLetter = function (string) {
-  var third;
-  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (
-    string.length == 2 ||
-    ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#')
-  );
-};
-
-var shortenURLsPath = function (url) {
-  var path = url.path;
-  var pathSize = path.length;
-  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
-    path.pop();
-  }
-};
-
-var isSingleDot = function (segment) {
-  return segment === '.' || segment.toLowerCase() === '%2e';
-};
-
-var isDoubleDot = function (segment) {
-  segment = segment.toLowerCase();
-  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
-};
-
-// States:
-var SCHEME_START = {};
-var SCHEME = {};
-var NO_SCHEME = {};
-var SPECIAL_RELATIVE_OR_AUTHORITY = {};
-var PATH_OR_AUTHORITY = {};
-var RELATIVE = {};
-var RELATIVE_SLASH = {};
-var SPECIAL_AUTHORITY_SLASHES = {};
-var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
-var AUTHORITY = {};
-var HOST = {};
-var HOSTNAME = {};
-var PORT = {};
-var FILE = {};
-var FILE_SLASH = {};
-var FILE_HOST = {};
-var PATH_START = {};
-var PATH = {};
-var CANNOT_BE_A_BASE_URL_PATH = {};
-var QUERY = {};
-var FRAGMENT = {};
-
-// eslint-disable-next-line max-statements
-var parseURL = function (url, input, stateOverride, base) {
-  var state = stateOverride || SCHEME_START;
-  var pointer = 0;
-  var buffer = '';
-  var seenAt = false;
-  var seenBracket = false;
-  var seenPasswordToken = false;
-  var codePoints, char, bufferCodePoints, failure;
-
-  if (!stateOverride) {
-    url.scheme = '';
-    url.username = '';
-    url.password = '';
-    url.host = null;
-    url.port = null;
-    url.path = [];
-    url.query = null;
-    url.fragment = null;
-    url.cannotBeABaseURL = false;
-    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
-  }
-
-  input = input.replace(TAB_AND_NEW_LINE, '');
-
-  codePoints = arrayFrom(input);
-
-  while (pointer <= codePoints.length) {
-    char = codePoints[pointer];
-    switch (state) {
-      case SCHEME_START:
-        if (char && ALPHA.test(char)) {
-          buffer += char.toLowerCase();
-          state = SCHEME;
-        } else if (!stateOverride) {
-          state = NO_SCHEME;
-          continue;
-        } else return INVALID_SCHEME;
-        break;
-
-      case SCHEME:
-        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {
-          buffer += char.toLowerCase();
-        } else if (char == ':') {
-          if (stateOverride && (
-            (isSpecial(url) != has(specialSchemes, buffer)) ||
-            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||
-            (url.scheme == 'file' && !url.host)
-          )) return;
-          url.scheme = buffer;
-          if (stateOverride) {
-            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;
-            return;
-          }
-          buffer = '';
-          if (url.scheme == 'file') {
-            state = FILE;
-          } else if (isSpecial(url) && base && base.scheme == url.scheme) {
-            state = SPECIAL_RELATIVE_OR_AUTHORITY;
-          } else if (isSpecial(url)) {
-            state = SPECIAL_AUTHORITY_SLASHES;
-          } else if (codePoints[pointer + 1] == '/') {
-            state = PATH_OR_AUTHORITY;
-            pointer++;
-          } else {
-            url.cannotBeABaseURL = true;
-            url.path.push('');
-            state = CANNOT_BE_A_BASE_URL_PATH;
-          }
-        } else if (!stateOverride) {
-          buffer = '';
-          state = NO_SCHEME;
-          pointer = 0;
-          continue;
-        } else return INVALID_SCHEME;
-        break;
-
-      case NO_SCHEME:
-        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;
-        if (base.cannotBeABaseURL && char == '#') {
-          url.scheme = base.scheme;
-          url.path = base.path.slice();
-          url.query = base.query;
-          url.fragment = '';
-          url.cannotBeABaseURL = true;
-          state = FRAGMENT;
-          break;
-        }
-        state = base.scheme == 'file' ? FILE : RELATIVE;
-        continue;
-
-      case SPECIAL_RELATIVE_OR_AUTHORITY:
-        if (char == '/' && codePoints[pointer + 1] == '/') {
-          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
-          pointer++;
-        } else {
-          state = RELATIVE;
-          continue;
-        } break;
-
-      case PATH_OR_AUTHORITY:
-        if (char == '/') {
-          state = AUTHORITY;
-          break;
-        } else {
-          state = PATH;
-          continue;
-        }
-
-      case RELATIVE:
-        url.scheme = base.scheme;
-        if (char == EOF) {
-          url.username = base.username;
-          url.password = base.password;
-          url.host = base.host;
-          url.port = base.port;
-          url.path = base.path.slice();
-          url.query = base.query;
-        } else if (char == '/' || (char == '\\' && isSpecial(url))) {
-          state = RELATIVE_SLASH;
-        } else if (char == '?') {
-          url.username = base.username;
-          url.password = base.password;
-          url.host = base.host;
-          url.port = base.port;
-          url.path = base.path.slice();
-          url.query = '';
-          state = QUERY;
-        } else if (char == '#') {
-          url.username = base.username;
-          url.password = base.password;
-          url.host = base.host;
-          url.port = base.port;
-          url.path = base.path.slice();
-          url.query = base.query;
-          url.fragment = '';
-          state = FRAGMENT;
-        } else {
-          url.username = base.username;
-          url.password = base.password;
-          url.host = base.host;
-          url.port = base.port;
-          url.path = base.path.slice();
-          url.path.pop();
-          state = PATH;
-          continue;
-        } break;
-
-      case RELATIVE_SLASH:
-        if (isSpecial(url) && (char == '/' || char == '\\')) {
-          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
-        } else if (char == '/') {
-          state = AUTHORITY;
-        } else {
-          url.username = base.username;
-          url.password = base.password;
-          url.host = base.host;
-          url.port = base.port;
-          state = PATH;
-          continue;
-        } break;
-
-      case SPECIAL_AUTHORITY_SLASHES:
-        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
-        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;
-        pointer++;
-        break;
-
-      case SPECIAL_AUTHORITY_IGNORE_SLASHES:
-        if (char != '/' && char != '\\') {
-          state = AUTHORITY;
-          continue;
-        } break;
-
-      case AUTHORITY:
-        if (char == '@') {
-          if (seenAt) buffer = '%40' + buffer;
-          seenAt = true;
-          bufferCodePoints = arrayFrom(buffer);
-          for (var i = 0; i < bufferCodePoints.length; i++) {
-            var codePoint = bufferCodePoints[i];
-            if (codePoint == ':' && !seenPasswordToken) {
-              seenPasswordToken = true;
-              continue;
-            }
-            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
-            if (seenPasswordToken) url.password += encodedCodePoints;
-            else url.username += encodedCodePoints;
-          }
-          buffer = '';
-        } else if (
-          char == EOF || char == '/' || char == '?' || char == '#' ||
-          (char == '\\' && isSpecial(url))
-        ) {
-          if (seenAt && buffer == '') return INVALID_AUTHORITY;
-          pointer -= arrayFrom(buffer).length + 1;
-          buffer = '';
-          state = HOST;
-        } else buffer += char;
-        break;
-
-      case HOST:
-      case HOSTNAME:
-        if (stateOverride && url.scheme == 'file') {
-          state = FILE_HOST;
-          continue;
-        } else if (char == ':' && !seenBracket) {
-          if (buffer == '') return INVALID_HOST;
-          failure = parseHost(url, buffer);
-          if (failure) return failure;
-          buffer = '';
-          state = PORT;
-          if (stateOverride == HOSTNAME) return;
-        } else if (
-          char == EOF || char == '/' || char == '?' || char == '#' ||
-          (char == '\\' && isSpecial(url))
-        ) {
-          if (isSpecial(url) && buffer == '') return INVALID_HOST;
-          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;
-          failure = parseHost(url, buffer);
-          if (failure) return failure;
-          buffer = '';
-          state = PATH_START;
-          if (stateOverride) return;
-          continue;
-        } else {
-          if (char == '[') seenBracket = true;
-          else if (char == ']') seenBracket = false;
-          buffer += char;
-        } break;
-
-      case PORT:
-        if (DIGIT.test(char)) {
-          buffer += char;
-        } else if (
-          char == EOF || char == '/' || char == '?' || char == '#' ||
-          (char == '\\' && isSpecial(url)) ||
-          stateOverride
-        ) {
-          if (buffer != '') {
-            var port = parseInt(buffer, 10);
-            if (port > 0xFFFF) return INVALID_PORT;
-            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;
-            buffer = '';
-          }
-          if (stateOverride) return;
-          state = PATH_START;
-          continue;
-        } else return INVALID_PORT;
-        break;
-
-      case FILE:
-        url.scheme = 'file';
-        if (char == '/' || char == '\\') state = FILE_SLASH;
-        else if (base && base.scheme == 'file') {
-          if (char == EOF) {
-            url.host = base.host;
-            url.path = base.path.slice();
-            url.query = base.query;
-          } else if (char == '?') {
-            url.host = base.host;
-            url.path = base.path.slice();
-            url.query = '';
-            state = QUERY;
-          } else if (char == '#') {
-            url.host = base.host;
-            url.path = base.path.slice();
-            url.query = base.query;
-            url.fragment = '';
-            state = FRAGMENT;
-          } else {
-            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
-              url.host = base.host;
-              url.path = base.path.slice();
-              shortenURLsPath(url);
-            }
-            state = PATH;
-            continue;
-          }
-        } else {
-          state = PATH;
-          continue;
-        } break;
-
-      case FILE_SLASH:
-        if (char == '/' || char == '\\') {
-          state = FILE_HOST;
-          break;
-        }
-        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
-          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);
-          else url.host = base.host;
-        }
-        state = PATH;
-        continue;
-
-      case FILE_HOST:
-        if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') {
-          if (!stateOverride && isWindowsDriveLetter(buffer)) {
-            state = PATH;
-          } else if (buffer == '') {
-            url.host = '';
-            if (stateOverride) return;
-            state = PATH_START;
-          } else {
-            failure = parseHost(url, buffer);
-            if (failure) return failure;
-            if (url.host == 'localhost') url.host = '';
-            if (stateOverride) return;
-            buffer = '';
-            state = PATH_START;
-          } continue;
-        } else buffer += char;
-        break;
-
-      case PATH_START:
-        if (isSpecial(url)) {
-          state = PATH;
-          if (char != '/' && char != '\\') continue;
-        } else if (!stateOverride && char == '?') {
-          url.query = '';
-          state = QUERY;
-        } else if (!stateOverride && char == '#') {
-          url.fragment = '';
-          state = FRAGMENT;
-        } else if (char != EOF) {
-          state = PATH;
-          if (char != '/') continue;
-        } break;
-
-      case PATH:
-        if (
-          char == EOF || char == '/' ||
-          (char == '\\' && isSpecial(url)) ||
-          (!stateOverride && (char == '?' || char == '#'))
-        ) {
-          if (isDoubleDot(buffer)) {
-            shortenURLsPath(url);
-            if (char != '/' && !(char == '\\' && isSpecial(url))) {
-              url.path.push('');
-            }
-          } else if (isSingleDot(buffer)) {
-            if (char != '/' && !(char == '\\' && isSpecial(url))) {
-              url.path.push('');
-            }
-          } else {
-            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
-              if (url.host) url.host = '';
-              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter
-            }
-            url.path.push(buffer);
-          }
-          buffer = '';
-          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {
-            while (url.path.length > 1 && url.path[0] === '') {
-              url.path.shift();
-            }
-          }
-          if (char == '?') {
-            url.query = '';
-            state = QUERY;
-          } else if (char == '#') {
-            url.fragment = '';
-            state = FRAGMENT;
-          }
-        } else {
-          buffer += percentEncode(char, pathPercentEncodeSet);
-        } break;
-
-      case CANNOT_BE_A_BASE_URL_PATH:
-        if (char == '?') {
-          url.query = '';
-          state = QUERY;
-        } else if (char == '#') {
-          url.fragment = '';
-          state = FRAGMENT;
-        } else if (char != EOF) {
-          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);
-        } break;
-
-      case QUERY:
-        if (!stateOverride && char == '#') {
-          url.fragment = '';
-          state = FRAGMENT;
-        } else if (char != EOF) {
-          if (char == "'" && isSpecial(url)) url.query += '%27';
-          else if (char == '#') url.query += '%23';
-          else url.query += percentEncode(char, C0ControlPercentEncodeSet);
-        } break;
-
-      case FRAGMENT:
-        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);
-        break;
-    }
-
-    pointer++;
-  }
-};
-
-// `URL` constructor
-// https://url.spec.whatwg.org/#url-class
-var URLConstructor = function URL(url /* , base */) {
-  var that = anInstance(this, URLConstructor, 'URL');
-  var base = arguments.length > 1 ? arguments[1] : undefined;
-  var urlString = String(url);
-  var state = setInternalState(that, { type: 'URL' });
-  var baseState, failure;
-  if (base !== undefined) {
-    if (base instanceof URLConstructor) baseState = getInternalURLState(base);
-    else {
-      failure = parseURL(baseState = {}, String(base));
-      if (failure) throw TypeError(failure);
-    }
-  }
-  failure = parseURL(state, urlString, null, baseState);
-  if (failure) throw TypeError(failure);
-  var searchParams = state.searchParams = new URLSearchParams();
-  var searchParamsState = getInternalSearchParamsState(searchParams);
-  searchParamsState.updateSearchParams(state.query);
-  searchParamsState.updateURL = function () {
-    state.query = String(searchParams) || null;
-  };
-  if (!DESCRIPTORS) {
-    that.href = serializeURL.call(that);
-    that.origin = getOrigin.call(that);
-    that.protocol = getProtocol.call(that);
-    that.username = getUsername.call(that);
-    that.password = getPassword.call(that);
-    that.host = getHost.call(that);
-    that.hostname = getHostname.call(that);
-    that.port = getPort.call(that);
-    that.pathname = getPathname.call(that);
-    that.search = getSearch.call(that);
-    that.searchParams = getSearchParams.call(that);
-    that.hash = getHash.call(that);
-  }
-};
-
-var URLPrototype = URLConstructor.prototype;
-
-var serializeURL = function () {
-  var url = getInternalURLState(this);
-  var scheme = url.scheme;
-  var username = url.username;
-  var password = url.password;
-  var host = url.host;
-  var port = url.port;
-  var path = url.path;
-  var query = url.query;
-  var fragment = url.fragment;
-  var output = scheme + ':';
-  if (host !== null) {
-    output += '//';
-    if (includesCredentials(url)) {
-      output += username + (password ? ':' + password : '') + '@';
-    }
-    output += serializeHost(host);
-    if (port !== null) output += ':' + port;
-  } else if (scheme == 'file') output += '//';
-  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
-  if (query !== null) output += '?' + query;
-  if (fragment !== null) output += '#' + fragment;
-  return output;
-};
-
-var getOrigin = function () {
-  var url = getInternalURLState(this);
-  var scheme = url.scheme;
-  var port = url.port;
-  if (scheme == 'blob') try {
-    return new URL(scheme.path[0]).origin;
-  } catch (error) {
-    return 'null';
-  }
-  if (scheme == 'file' || !isSpecial(url)) return 'null';
-  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');
-};
-
-var getProtocol = function () {
-  return getInternalURLState(this).scheme + ':';
-};
-
-var getUsername = function () {
-  return getInternalURLState(this).username;
-};
-
-var getPassword = function () {
-  return getInternalURLState(this).password;
-};
-
-var getHost = function () {
-  var url = getInternalURLState(this);
-  var host = url.host;
-  var port = url.port;
-  return host === null ? ''
-    : port === null ? serializeHost(host)
-    : serializeHost(host) + ':' + port;
-};
-
-var getHostname = function () {
-  var host = getInternalURLState(this).host;
-  return host === null ? '' : serializeHost(host);
-};
-
-var getPort = function () {
-  var port = getInternalURLState(this).port;
-  return port === null ? '' : String(port);
-};
-
-var getPathname = function () {
-  var url = getInternalURLState(this);
-  var path = url.path;
-  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
-};
-
-var getSearch = function () {
-  var query = getInternalURLState(this).query;
-  return query ? '?' + query : '';
-};
-
-var getSearchParams = function () {
-  return getInternalURLState(this).searchParams;
-};
-
-var getHash = function () {
-  var fragment = getInternalURLState(this).fragment;
-  return fragment ? '#' + fragment : '';
-};
-
-var accessorDescriptor = function (getter, setter) {
-  return { get: getter, set: setter, configurable: true, enumerable: true };
-};
-
-if (DESCRIPTORS) {
-  defineProperties(URLPrototype, {
-    // `URL.prototype.href` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-href
-    href: accessorDescriptor(serializeURL, function (href) {
-      var url = getInternalURLState(this);
-      var urlString = String(href);
-      var failure = parseURL(url, urlString);
-      if (failure) throw TypeError(failure);
-      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
-    }),
-    // `URL.prototype.origin` getter
-    // https://url.spec.whatwg.org/#dom-url-origin
-    origin: accessorDescriptor(getOrigin),
-    // `URL.prototype.protocol` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-protocol
-    protocol: accessorDescriptor(getProtocol, function (protocol) {
-      var url = getInternalURLState(this);
-      parseURL(url, String(protocol) + ':', SCHEME_START);
-    }),
-    // `URL.prototype.username` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-username
-    username: accessorDescriptor(getUsername, function (username) {
-      var url = getInternalURLState(this);
-      var codePoints = arrayFrom(String(username));
-      if (cannotHaveUsernamePasswordPort(url)) return;
-      url.username = '';
-      for (var i = 0; i < codePoints.length; i++) {
-        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
-      }
-    }),
-    // `URL.prototype.password` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-password
-    password: accessorDescriptor(getPassword, function (password) {
-      var url = getInternalURLState(this);
-      var codePoints = arrayFrom(String(password));
-      if (cannotHaveUsernamePasswordPort(url)) return;
-      url.password = '';
-      for (var i = 0; i < codePoints.length; i++) {
-        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
-      }
-    }),
-    // `URL.prototype.host` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-host
-    host: accessorDescriptor(getHost, function (host) {
-      var url = getInternalURLState(this);
-      if (url.cannotBeABaseURL) return;
-      parseURL(url, String(host), HOST);
-    }),
-    // `URL.prototype.hostname` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-hostname
-    hostname: accessorDescriptor(getHostname, function (hostname) {
-      var url = getInternalURLState(this);
-      if (url.cannotBeABaseURL) return;
-      parseURL(url, String(hostname), HOSTNAME);
-    }),
-    // `URL.prototype.port` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-port
-    port: accessorDescriptor(getPort, function (port) {
-      var url = getInternalURLState(this);
-      if (cannotHaveUsernamePasswordPort(url)) return;
-      port = String(port);
-      if (port == '') url.port = null;
-      else parseURL(url, port, PORT);
-    }),
-    // `URL.prototype.pathname` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-pathname
-    pathname: accessorDescriptor(getPathname, function (pathname) {
-      var url = getInternalURLState(this);
-      if (url.cannotBeABaseURL) return;
-      url.path = [];
-      parseURL(url, pathname + '', PATH_START);
-    }),
-    // `URL.prototype.search` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-search
-    search: accessorDescriptor(getSearch, function (search) {
-      var url = getInternalURLState(this);
-      search = String(search);
-      if (search == '') {
-        url.query = null;
-      } else {
-        if ('?' == search.charAt(0)) search = search.slice(1);
-        url.query = '';
-        parseURL(url, search, QUERY);
-      }
-      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
-    }),
-    // `URL.prototype.searchParams` getter
-    // https://url.spec.whatwg.org/#dom-url-searchparams
-    searchParams: accessorDescriptor(getSearchParams),
-    // `URL.prototype.hash` accessors pair
-    // https://url.spec.whatwg.org/#dom-url-hash
-    hash: accessorDescriptor(getHash, function (hash) {
-      var url = getInternalURLState(this);
-      hash = String(hash);
-      if (hash == '') {
-        url.fragment = null;
-        return;
-      }
-      if ('#' == hash.charAt(0)) hash = hash.slice(1);
-      url.fragment = '';
-      parseURL(url, hash, FRAGMENT);
-    })
-  });
-}
-
-// `URL.prototype.toJSON` method
-// https://url.spec.whatwg.org/#dom-url-tojson
-redefine(URLPrototype, 'toJSON', function toJSON() {
-  return serializeURL.call(this);
-}, { enumerable: true });
-
-// `URL.prototype.toString` method
-// https://url.spec.whatwg.org/#URL-stringification-behavior
-redefine(URLPrototype, 'toString', function toString() {
-  return serializeURL.call(this);
-}, { enumerable: true });
-
-if (NativeURL) {
-  var nativeCreateObjectURL = NativeURL.createObjectURL;
-  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
-  // `URL.createObjectURL` method
-  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
-  // eslint-disable-next-line no-unused-vars
-  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
-    return nativeCreateObjectURL.apply(NativeURL, arguments);
-  });
-  // `URL.revokeObjectURL` method
-  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
-  // eslint-disable-next-line no-unused-vars
-  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
-    return nativeRevokeObjectURL.apply(NativeURL, arguments);
-  });
-}
-
-setToStringTag(URLConstructor, 'URL');
-
-$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {
-  URL: URLConstructor
-});
diff --git a/node_modules/core-js-pure/modules/web.url.to-json.js b/node_modules/core-js-pure/modules/web.url.to-json.js
deleted file mode 100644
index 8b1a393..0000000
--- a/node_modules/core-js-pure/modules/web.url.to-json.js
+++ /dev/null
@@ -1 +0,0 @@
-// empty
diff --git a/node_modules/core-js-pure/package.json b/node_modules/core-js-pure/package.json
deleted file mode 100644
index b93d00a..0000000
--- a/node_modules/core-js-pure/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "name": "core-js-pure",
-  "description": "Standard library",
-  "version": "3.6.4",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/zloirock/core-js.git"
-  },
-  "main": "index.js",
-  "funding": {
-    "type": "opencollective",
-    "url": "https://opencollective.com/core-js"
-  },
-  "license": "MIT",
-  "keywords": [
-    "ES3",
-    "ES5",
-    "ES6",
-    "ES7",
-    "ES2015",
-    "ES2016",
-    "ES2017",
-    "ES2018",
-    "ES2019",
-    "ES2020",
-    "ECMAScript 3",
-    "ECMAScript 5",
-    "ECMAScript 6",
-    "ECMAScript 7",
-    "ECMAScript 2015",
-    "ECMAScript 2016",
-    "ECMAScript 2017",
-    "ECMAScript 2018",
-    "ECMAScript 2019",
-    "ECMAScript 2020",
-    "Harmony",
-    "Strawman",
-    "Map",
-    "Set",
-    "WeakMap",
-    "WeakSet",
-    "Promise",
-    "Observable",
-    "Symbol",
-    "TypedArray",
-    "URL",
-    "URLSearchParams",
-    "queueMicrotask",
-    "setImmediate",
-    "polyfill",
-    "ponyfill",
-    "shim"
-  ],
-  "scripts": {
-    "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
-  }
-}
diff --git a/node_modules/core-js-pure/postinstall.js b/node_modules/core-js-pure/postinstall.js
deleted file mode 100644
index fcb8d3c..0000000
--- a/node_modules/core-js-pure/postinstall.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/* eslint-disable max-len */
-var fs = require('fs');
-var os = require('os');
-var path = require('path');
-var env = process.env;
-
-var ADBLOCK = is(env.ADBLOCK);
-var COLOR = is(env.npm_config_color);
-var DISABLE_OPENCOLLECTIVE = is(env.DISABLE_OPENCOLLECTIVE);
-var SILENT = ['silent', 'error', 'warn'].indexOf(env.npm_config_loglevel) !== -1;
-var MINUTE = 60 * 1000;
-
-// you could add a PR with an env variable for your CI detection
-var CI = [
-  'BUILD_NUMBER',
-  'CI',
-  'CONTINUOUS_INTEGRATION',
-  'RUN_ID'
-].some(function (it) { return is(env[it]); });
-
-var BANNER = '\u001B[96mThank you for using core-js (\u001B[94m https://github.com/zloirock/core-js \u001B[96m) for polyfilling JavaScript standard library!\u001B[0m\n\n' +
-             '\u001B[96mThe project needs your help! Please consider supporting of core-js on Open Collective or Patreon: \u001B[0m\n' +
-             '\u001B[96m>\u001B[94m https://opencollective.com/core-js \u001B[0m\n' +
-             '\u001B[96m>\u001B[94m https://www.patreon.com/zloirock \u001B[0m\n\n' +
-             '\u001B[96mAlso, the author of core-js (\u001B[94m https://github.com/zloirock \u001B[96m) is looking for a good job -)\u001B[0m\n';
-
-function is(it) {
-  return !!it && it !== '0' && it !== 'false';
-}
-
-function isBannerRequired() {
-  if (ADBLOCK || CI || DISABLE_OPENCOLLECTIVE || SILENT) return false;
-  var file = path.join(os.tmpdir(), 'core-js-banners');
-  var banners = [];
-  try {
-    var DELTA = Date.now() - fs.statSync(file).mtime;
-    if (DELTA >= 0 && DELTA < MINUTE * 3) {
-      banners = JSON.parse(fs.readFileSync(file, 'utf8'));
-      if (banners.indexOf(BANNER) !== -1) return false;
-    }
-  } catch (error) {
-    banners = [];
-  }
-  try {
-    banners.push(BANNER);
-    fs.writeFileSync(file, JSON.stringify(banners), 'utf8');
-  } catch (error) { /* empty */ }
-  return true;
-}
-
-function showBanner() {
-  // eslint-disable-next-line no-console,no-control-regex
-  console.log(COLOR ? BANNER : BANNER.replace(/\u001B\[\d+m/g, ''));
-}
-
-if (isBannerRequired()) showBanner();
diff --git a/node_modules/core-js-pure/proposals/array-is-template-object.js b/node_modules/core-js-pure/proposals/array-is-template-object.js
deleted file mode 100644
index 37388c4..0000000
--- a/node_modules/core-js-pure/proposals/array-is-template-object.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.array.is-template-object');
diff --git a/node_modules/core-js-pure/proposals/array-last.js b/node_modules/core-js-pure/proposals/array-last.js
deleted file mode 100644
index c671031..0000000
--- a/node_modules/core-js-pure/proposals/array-last.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/esnext.array.last-index');
-require('../modules/esnext.array.last-item');
diff --git a/node_modules/core-js-pure/proposals/collection-methods.js b/node_modules/core-js-pure/proposals/collection-methods.js
deleted file mode 100644
index 3acb8c0..0000000
--- a/node_modules/core-js-pure/proposals/collection-methods.js
+++ /dev/null
@@ -1,27 +0,0 @@
-require('../modules/esnext.map.group-by');
-require('../modules/esnext.map.key-by');
-require('../modules/esnext.map.delete-all');
-require('../modules/esnext.map.every');
-require('../modules/esnext.map.filter');
-require('../modules/esnext.map.find');
-require('../modules/esnext.map.find-key');
-require('../modules/esnext.map.includes');
-require('../modules/esnext.map.key-of');
-require('../modules/esnext.map.map-keys');
-require('../modules/esnext.map.map-values');
-require('../modules/esnext.map.merge');
-require('../modules/esnext.map.reduce');
-require('../modules/esnext.map.some');
-require('../modules/esnext.map.update');
-require('../modules/esnext.set.add-all');
-require('../modules/esnext.set.delete-all');
-require('../modules/esnext.set.every');
-require('../modules/esnext.set.filter');
-require('../modules/esnext.set.find');
-require('../modules/esnext.set.join');
-require('../modules/esnext.set.map');
-require('../modules/esnext.set.reduce');
-require('../modules/esnext.set.some');
-require('../modules/esnext.weak-map.delete-all');
-require('../modules/esnext.weak-set.add-all');
-require('../modules/esnext.weak-set.delete-all');
diff --git a/node_modules/core-js-pure/proposals/collection-of-from.js b/node_modules/core-js-pure/proposals/collection-of-from.js
deleted file mode 100644
index ade3000..0000000
--- a/node_modules/core-js-pure/proposals/collection-of-from.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../modules/esnext.map.from');
-require('../modules/esnext.map.of');
-require('../modules/esnext.set.from');
-require('../modules/esnext.set.of');
-require('../modules/esnext.weak-map.from');
-require('../modules/esnext.weak-map.of');
-require('../modules/esnext.weak-set.from');
-require('../modules/esnext.weak-set.of');
diff --git a/node_modules/core-js-pure/proposals/efficient-64-bit-arithmetic.js b/node_modules/core-js-pure/proposals/efficient-64-bit-arithmetic.js
deleted file mode 100644
index 71d40dc..0000000
--- a/node_modules/core-js-pure/proposals/efficient-64-bit-arithmetic.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/esnext.math.iaddh');
-require('../modules/esnext.math.isubh');
-require('../modules/esnext.math.imulh');
-require('../modules/esnext.math.umulh');
diff --git a/node_modules/core-js-pure/proposals/global-this.js b/node_modules/core-js-pure/proposals/global-this.js
deleted file mode 100644
index 4cb0f5c..0000000
--- a/node_modules/core-js-pure/proposals/global-this.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/esnext.global-this');
-var global = require('../internals/global');
-
-module.exports = global;
diff --git a/node_modules/core-js-pure/proposals/index.js b/node_modules/core-js-pure/proposals/index.js
deleted file mode 100644
index b87a749..0000000
--- a/node_modules/core-js-pure/proposals/index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../stage');
diff --git a/node_modules/core-js-pure/proposals/iterator-helpers.js b/node_modules/core-js-pure/proposals/iterator-helpers.js
deleted file mode 100644
index 001a169..0000000
--- a/node_modules/core-js-pure/proposals/iterator-helpers.js
+++ /dev/null
@@ -1,28 +0,0 @@
-require('../modules/esnext.async-iterator.constructor');
-require('../modules/esnext.async-iterator.as-indexed-pairs');
-require('../modules/esnext.async-iterator.drop');
-require('../modules/esnext.async-iterator.every');
-require('../modules/esnext.async-iterator.filter');
-require('../modules/esnext.async-iterator.find');
-require('../modules/esnext.async-iterator.flat-map');
-require('../modules/esnext.async-iterator.for-each');
-require('../modules/esnext.async-iterator.from');
-require('../modules/esnext.async-iterator.map');
-require('../modules/esnext.async-iterator.reduce');
-require('../modules/esnext.async-iterator.some');
-require('../modules/esnext.async-iterator.take');
-require('../modules/esnext.async-iterator.to-array');
-require('../modules/esnext.iterator.constructor');
-require('../modules/esnext.iterator.as-indexed-pairs');
-require('../modules/esnext.iterator.drop');
-require('../modules/esnext.iterator.every');
-require('../modules/esnext.iterator.filter');
-require('../modules/esnext.iterator.find');
-require('../modules/esnext.iterator.flat-map');
-require('../modules/esnext.iterator.for-each');
-require('../modules/esnext.iterator.from');
-require('../modules/esnext.iterator.map');
-require('../modules/esnext.iterator.reduce');
-require('../modules/esnext.iterator.some');
-require('../modules/esnext.iterator.take');
-require('../modules/esnext.iterator.to-array');
diff --git a/node_modules/core-js-pure/proposals/keys-composition.js b/node_modules/core-js-pure/proposals/keys-composition.js
deleted file mode 100644
index 47f5e2e..0000000
--- a/node_modules/core-js-pure/proposals/keys-composition.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/esnext.composite-key');
-require('../modules/esnext.composite-symbol');
diff --git a/node_modules/core-js-pure/proposals/map-update-or-insert.js b/node_modules/core-js-pure/proposals/map-update-or-insert.js
deleted file mode 100644
index 2860301..0000000
--- a/node_modules/core-js-pure/proposals/map-update-or-insert.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: remove from `core-js@4`
-require('./map-upsert');
diff --git a/node_modules/core-js-pure/proposals/map-upsert.js b/node_modules/core-js-pure/proposals/map-upsert.js
deleted file mode 100644
index ee94275..0000000
--- a/node_modules/core-js-pure/proposals/map-upsert.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// https://github.com/thumbsupep/proposal-upsert
-// TODO: remove from `core-js@4`
-require('../modules/esnext.map.update-or-insert');
-require('../modules/esnext.map.upsert');
-require('../modules/esnext.weak-map.upsert');
diff --git a/node_modules/core-js-pure/proposals/math-extensions.js b/node_modules/core-js-pure/proposals/math-extensions.js
deleted file mode 100644
index 80d86af..0000000
--- a/node_modules/core-js-pure/proposals/math-extensions.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/esnext.math.clamp');
-require('../modules/esnext.math.deg-per-rad');
-require('../modules/esnext.math.degrees');
-require('../modules/esnext.math.fscale');
-require('../modules/esnext.math.rad-per-deg');
-require('../modules/esnext.math.radians');
-require('../modules/esnext.math.scale');
diff --git a/node_modules/core-js-pure/proposals/math-signbit.js b/node_modules/core-js-pure/proposals/math-signbit.js
deleted file mode 100644
index e0a51d1..0000000
--- a/node_modules/core-js-pure/proposals/math-signbit.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.math.signbit');
diff --git a/node_modules/core-js-pure/proposals/number-from-string.js b/node_modules/core-js-pure/proposals/number-from-string.js
deleted file mode 100644
index 094d084..0000000
--- a/node_modules/core-js-pure/proposals/number-from-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.number.from-string');
diff --git a/node_modules/core-js-pure/proposals/object-iteration.js b/node_modules/core-js-pure/proposals/object-iteration.js
deleted file mode 100644
index 0361515..0000000
--- a/node_modules/core-js-pure/proposals/object-iteration.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/esnext.object.iterate-entries');
-require('../modules/esnext.object.iterate-keys');
-require('../modules/esnext.object.iterate-values');
diff --git a/node_modules/core-js-pure/proposals/observable.js b/node_modules/core-js-pure/proposals/observable.js
deleted file mode 100644
index cf59156..0000000
--- a/node_modules/core-js-pure/proposals/observable.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/esnext.observable');
-require('../modules/esnext.symbol.observable');
diff --git a/node_modules/core-js-pure/proposals/pattern-matching.js b/node_modules/core-js-pure/proposals/pattern-matching.js
deleted file mode 100644
index d5fce70..0000000
--- a/node_modules/core-js-pure/proposals/pattern-matching.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.symbol.pattern-match');
diff --git a/node_modules/core-js-pure/proposals/promise-all-settled.js b/node_modules/core-js-pure/proposals/promise-all-settled.js
deleted file mode 100644
index ae35910..0000000
--- a/node_modules/core-js-pure/proposals/promise-all-settled.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('../modules/esnext.promise.all-settled');
diff --git a/node_modules/core-js-pure/proposals/promise-any.js b/node_modules/core-js-pure/proposals/promise-any.js
deleted file mode 100644
index 9e14736..0000000
--- a/node_modules/core-js-pure/proposals/promise-any.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/esnext.aggregate-error');
-require('../modules/esnext.promise.any');
diff --git a/node_modules/core-js-pure/proposals/promise-try.js b/node_modules/core-js-pure/proposals/promise-try.js
deleted file mode 100644
index ce5aca5..0000000
--- a/node_modules/core-js-pure/proposals/promise-try.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.promise.try');
diff --git a/node_modules/core-js-pure/proposals/reflect-metadata.js b/node_modules/core-js-pure/proposals/reflect-metadata.js
deleted file mode 100644
index 512b1f2..0000000
--- a/node_modules/core-js-pure/proposals/reflect-metadata.js
+++ /dev/null
@@ -1,9 +0,0 @@
-require('../modules/esnext.reflect.define-metadata');
-require('../modules/esnext.reflect.delete-metadata');
-require('../modules/esnext.reflect.get-metadata');
-require('../modules/esnext.reflect.get-metadata-keys');
-require('../modules/esnext.reflect.get-own-metadata');
-require('../modules/esnext.reflect.get-own-metadata-keys');
-require('../modules/esnext.reflect.has-metadata');
-require('../modules/esnext.reflect.has-own-metadata');
-require('../modules/esnext.reflect.metadata');
diff --git a/node_modules/core-js-pure/proposals/seeded-random.js b/node_modules/core-js-pure/proposals/seeded-random.js
deleted file mode 100644
index 5bbd904..0000000
--- a/node_modules/core-js-pure/proposals/seeded-random.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.math.seeded-prng');
diff --git a/node_modules/core-js-pure/proposals/set-methods.js b/node_modules/core-js-pure/proposals/set-methods.js
deleted file mode 100644
index 8105460..0000000
--- a/node_modules/core-js-pure/proposals/set-methods.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('../modules/esnext.set.difference');
-require('../modules/esnext.set.intersection');
-require('../modules/esnext.set.is-disjoint-from');
-require('../modules/esnext.set.is-subset-of');
-require('../modules/esnext.set.is-superset-of');
-require('../modules/esnext.set.union');
-require('../modules/esnext.set.symmetric-difference');
diff --git a/node_modules/core-js-pure/proposals/string-at.js b/node_modules/core-js-pure/proposals/string-at.js
deleted file mode 100644
index e992e58..0000000
--- a/node_modules/core-js-pure/proposals/string-at.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.string.at');
diff --git a/node_modules/core-js-pure/proposals/string-code-points.js b/node_modules/core-js-pure/proposals/string-code-points.js
deleted file mode 100644
index 3717523..0000000
--- a/node_modules/core-js-pure/proposals/string-code-points.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../modules/esnext.string.code-points');
diff --git a/node_modules/core-js-pure/proposals/string-match-all.js b/node_modules/core-js-pure/proposals/string-match-all.js
deleted file mode 100644
index be5ba60..0000000
--- a/node_modules/core-js-pure/proposals/string-match-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// TODO: Remove from `core-js@4`
-require('../modules/esnext.string.match-all');
diff --git a/node_modules/core-js-pure/proposals/string-replace-all.js b/node_modules/core-js-pure/proposals/string-replace-all.js
deleted file mode 100644
index c36697d..0000000
--- a/node_modules/core-js-pure/proposals/string-replace-all.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../modules/esnext.string.replace-all');
-require('../modules/esnext.symbol.replace-all');
diff --git a/node_modules/core-js-pure/proposals/url.js b/node_modules/core-js-pure/proposals/url.js
deleted file mode 100644
index 151dfab..0000000
--- a/node_modules/core-js-pure/proposals/url.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('../modules/web.url');
-require('../modules/web.url.to-json');
-require('../modules/web.url-search-params');
diff --git a/node_modules/core-js-pure/proposals/using-statement.js b/node_modules/core-js-pure/proposals/using-statement.js
deleted file mode 100644
index 2ac3df7..0000000
--- a/node_modules/core-js-pure/proposals/using-statement.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// https://github.com/tc39/proposal-using-statement
-require('../modules/esnext.symbol.async-dispose');
-require('../modules/esnext.symbol.dispose');
diff --git a/node_modules/core-js-pure/stable/README.md b/node_modules/core-js-pure/stable/README.md
deleted file mode 100644
index 903150c..0000000
--- a/node_modules/core-js-pure/stable/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains entry points for all stable `core-js` features with dependencies. It's the recommended way for usage only required features.
diff --git a/node_modules/core-js-pure/stable/array-buffer/constructor.js b/node_modules/core-js-pure/stable/array-buffer/constructor.js
deleted file mode 100644
index 14f239d..0000000
--- a/node_modules/core-js-pure/stable/array-buffer/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array-buffer/index.js b/node_modules/core-js-pure/stable/array-buffer/index.js
deleted file mode 100644
index cb81bbc..0000000
--- a/node_modules/core-js-pure/stable/array-buffer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array-buffer/is-view.js b/node_modules/core-js-pure/stable/array-buffer/is-view.js
deleted file mode 100644
index 02091ec..0000000
--- a/node_modules/core-js-pure/stable/array-buffer/is-view.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/is-view');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array-buffer/slice.js b/node_modules/core-js-pure/stable/array-buffer/slice.js
deleted file mode 100644
index 1259ebf..0000000
--- a/node_modules/core-js-pure/stable/array-buffer/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array-buffer/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/concat.js b/node_modules/core-js-pure/stable/array/concat.js
deleted file mode 100644
index 56c0625..0000000
--- a/node_modules/core-js-pure/stable/array/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/copy-within.js b/node_modules/core-js-pure/stable/array/copy-within.js
deleted file mode 100644
index 3db5361..0000000
--- a/node_modules/core-js-pure/stable/array/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/entries.js b/node_modules/core-js-pure/stable/array/entries.js
deleted file mode 100644
index 735b607..0000000
--- a/node_modules/core-js-pure/stable/array/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/every.js b/node_modules/core-js-pure/stable/array/every.js
deleted file mode 100644
index 8831dbc..0000000
--- a/node_modules/core-js-pure/stable/array/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/fill.js b/node_modules/core-js-pure/stable/array/fill.js
deleted file mode 100644
index b640ccd..0000000
--- a/node_modules/core-js-pure/stable/array/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/filter.js b/node_modules/core-js-pure/stable/array/filter.js
deleted file mode 100644
index c6fe56a..0000000
--- a/node_modules/core-js-pure/stable/array/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/find-index.js b/node_modules/core-js-pure/stable/array/find-index.js
deleted file mode 100644
index 312a7df..0000000
--- a/node_modules/core-js-pure/stable/array/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/find.js b/node_modules/core-js-pure/stable/array/find.js
deleted file mode 100644
index 2fc46a5..0000000
--- a/node_modules/core-js-pure/stable/array/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/flat-map.js b/node_modules/core-js-pure/stable/array/flat-map.js
deleted file mode 100644
index 8e3e81a..0000000
--- a/node_modules/core-js-pure/stable/array/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/flat.js b/node_modules/core-js-pure/stable/array/flat.js
deleted file mode 100644
index f74816e..0000000
--- a/node_modules/core-js-pure/stable/array/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/for-each.js b/node_modules/core-js-pure/stable/array/for-each.js
deleted file mode 100644
index a99f12c..0000000
--- a/node_modules/core-js-pure/stable/array/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/from.js b/node_modules/core-js-pure/stable/array/from.js
deleted file mode 100644
index 9142d6e..0000000
--- a/node_modules/core-js-pure/stable/array/from.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/from');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/includes.js b/node_modules/core-js-pure/stable/array/includes.js
deleted file mode 100644
index 52f040d..0000000
--- a/node_modules/core-js-pure/stable/array/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/index-of.js b/node_modules/core-js-pure/stable/array/index-of.js
deleted file mode 100644
index 13b63f1..0000000
--- a/node_modules/core-js-pure/stable/array/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/index.js b/node_modules/core-js-pure/stable/array/index.js
deleted file mode 100644
index 570f987..0000000
--- a/node_modules/core-js-pure/stable/array/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/is-array.js b/node_modules/core-js-pure/stable/array/is-array.js
deleted file mode 100644
index 89080ec..0000000
--- a/node_modules/core-js-pure/stable/array/is-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/is-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/iterator.js b/node_modules/core-js-pure/stable/array/iterator.js
deleted file mode 100644
index bfa833f..0000000
--- a/node_modules/core-js-pure/stable/array/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/join.js b/node_modules/core-js-pure/stable/array/join.js
deleted file mode 100644
index 74fbfc6..0000000
--- a/node_modules/core-js-pure/stable/array/join.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/join');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/keys.js b/node_modules/core-js-pure/stable/array/keys.js
deleted file mode 100644
index 40b2e75..0000000
--- a/node_modules/core-js-pure/stable/array/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/last-index-of.js b/node_modules/core-js-pure/stable/array/last-index-of.js
deleted file mode 100644
index bdcd762..0000000
--- a/node_modules/core-js-pure/stable/array/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/map.js b/node_modules/core-js-pure/stable/array/map.js
deleted file mode 100644
index 3768704..0000000
--- a/node_modules/core-js-pure/stable/array/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/of.js b/node_modules/core-js-pure/stable/array/of.js
deleted file mode 100644
index d5b74f1..0000000
--- a/node_modules/core-js-pure/stable/array/of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/reduce-right.js b/node_modules/core-js-pure/stable/array/reduce-right.js
deleted file mode 100644
index f93b6de..0000000
--- a/node_modules/core-js-pure/stable/array/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/reduce.js b/node_modules/core-js-pure/stable/array/reduce.js
deleted file mode 100644
index a3ae7b1..0000000
--- a/node_modules/core-js-pure/stable/array/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/reverse.js b/node_modules/core-js-pure/stable/array/reverse.js
deleted file mode 100644
index fc9faf1..0000000
--- a/node_modules/core-js-pure/stable/array/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/slice.js b/node_modules/core-js-pure/stable/array/slice.js
deleted file mode 100644
index 2c098bd..0000000
--- a/node_modules/core-js-pure/stable/array/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/some.js b/node_modules/core-js-pure/stable/array/some.js
deleted file mode 100644
index a198c0e..0000000
--- a/node_modules/core-js-pure/stable/array/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/sort.js b/node_modules/core-js-pure/stable/array/sort.js
deleted file mode 100644
index 5741a92..0000000
--- a/node_modules/core-js-pure/stable/array/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/splice.js b/node_modules/core-js-pure/stable/array/splice.js
deleted file mode 100644
index e5aeb46..0000000
--- a/node_modules/core-js-pure/stable/array/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/values.js b/node_modules/core-js-pure/stable/array/values.js
deleted file mode 100644
index 146bce3..0000000
--- a/node_modules/core-js-pure/stable/array/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/array/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/concat.js b/node_modules/core-js-pure/stable/array/virtual/concat.js
deleted file mode 100644
index 9c9481b..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/copy-within.js b/node_modules/core-js-pure/stable/array/virtual/copy-within.js
deleted file mode 100644
index 7d43d5c..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/entries.js b/node_modules/core-js-pure/stable/array/virtual/entries.js
deleted file mode 100644
index 008e164..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/every.js b/node_modules/core-js-pure/stable/array/virtual/every.js
deleted file mode 100644
index 3c661eb..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/fill.js b/node_modules/core-js-pure/stable/array/virtual/fill.js
deleted file mode 100644
index b0a3b0e..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/filter.js b/node_modules/core-js-pure/stable/array/virtual/filter.js
deleted file mode 100644
index b78f806..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/find-index.js b/node_modules/core-js-pure/stable/array/virtual/find-index.js
deleted file mode 100644
index 0be7653..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/find.js b/node_modules/core-js-pure/stable/array/virtual/find.js
deleted file mode 100644
index 0f28d7c..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/flat-map.js b/node_modules/core-js-pure/stable/array/virtual/flat-map.js
deleted file mode 100644
index 5adc39b..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/flat.js b/node_modules/core-js-pure/stable/array/virtual/flat.js
deleted file mode 100644
index cfafee6..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/for-each.js b/node_modules/core-js-pure/stable/array/virtual/for-each.js
deleted file mode 100644
index ca081fb..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/includes.js b/node_modules/core-js-pure/stable/array/virtual/includes.js
deleted file mode 100644
index fc9bb00..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/index-of.js b/node_modules/core-js-pure/stable/array/virtual/index-of.js
deleted file mode 100644
index aedd505..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/index.js b/node_modules/core-js-pure/stable/array/virtual/index.js
deleted file mode 100644
index 98d4718..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/iterator.js b/node_modules/core-js-pure/stable/array/virtual/iterator.js
deleted file mode 100644
index 81ca2a2..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/join.js b/node_modules/core-js-pure/stable/array/virtual/join.js
deleted file mode 100644
index fe784ef..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/join.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/join');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/keys.js b/node_modules/core-js-pure/stable/array/virtual/keys.js
deleted file mode 100644
index 6ed98ec..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/last-index-of.js b/node_modules/core-js-pure/stable/array/virtual/last-index-of.js
deleted file mode 100644
index 697d588..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/map.js b/node_modules/core-js-pure/stable/array/virtual/map.js
deleted file mode 100644
index 9475976..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/reduce-right.js b/node_modules/core-js-pure/stable/array/virtual/reduce-right.js
deleted file mode 100644
index cf39fca..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/reduce.js b/node_modules/core-js-pure/stable/array/virtual/reduce.js
deleted file mode 100644
index 5a08269..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/reverse.js b/node_modules/core-js-pure/stable/array/virtual/reverse.js
deleted file mode 100644
index 099d13e..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/slice.js b/node_modules/core-js-pure/stable/array/virtual/slice.js
deleted file mode 100644
index f308e00..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/some.js b/node_modules/core-js-pure/stable/array/virtual/some.js
deleted file mode 100644
index d41a8e7..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/sort.js b/node_modules/core-js-pure/stable/array/virtual/sort.js
deleted file mode 100644
index 5da0daa..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/splice.js b/node_modules/core-js-pure/stable/array/virtual/splice.js
deleted file mode 100644
index 4cbb494..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/array/virtual/values.js b/node_modules/core-js-pure/stable/array/virtual/values.js
deleted file mode 100644
index ebb6375..0000000
--- a/node_modules/core-js-pure/stable/array/virtual/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/array/virtual/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/clear-immediate.js b/node_modules/core-js-pure/stable/clear-immediate.js
deleted file mode 100644
index 8fbfd12..0000000
--- a/node_modules/core-js-pure/stable/clear-immediate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.immediate');
-var path = require('../internals/path');
-
-module.exports = path.clearImmediate;
diff --git a/node_modules/core-js-pure/stable/data-view/index.js b/node_modules/core-js-pure/stable/data-view/index.js
deleted file mode 100644
index 0387295..0000000
--- a/node_modules/core-js-pure/stable/data-view/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/data-view');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/index.js b/node_modules/core-js-pure/stable/date/index.js
deleted file mode 100644
index e9bde08..0000000
--- a/node_modules/core-js-pure/stable/date/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/now.js b/node_modules/core-js-pure/stable/date/now.js
deleted file mode 100644
index a4d8485..0000000
--- a/node_modules/core-js-pure/stable/date/now.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/now');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/to-iso-string.js b/node_modules/core-js-pure/stable/date/to-iso-string.js
deleted file mode 100644
index a6e6a7f..0000000
--- a/node_modules/core-js-pure/stable/date/to-iso-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-iso-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/to-json.js b/node_modules/core-js-pure/stable/date/to-json.js
deleted file mode 100644
index 23e8b0c..0000000
--- a/node_modules/core-js-pure/stable/date/to-json.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-json');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/to-primitive.js b/node_modules/core-js-pure/stable/date/to-primitive.js
deleted file mode 100644
index 193421d..0000000
--- a/node_modules/core-js-pure/stable/date/to-primitive.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-primitive');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/date/to-string.js b/node_modules/core-js-pure/stable/date/to-string.js
deleted file mode 100644
index f5c9592..0000000
--- a/node_modules/core-js-pure/stable/date/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/date/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/dom-collections/for-each.js b/node_modules/core-js-pure/stable/dom-collections/for-each.js
deleted file mode 100644
index 3414fd7..0000000
--- a/node_modules/core-js-pure/stable/dom-collections/for-each.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../../modules/web.dom-collections.for-each');
-
-var parent = require('../../internals/array-for-each');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/dom-collections/index.js b/node_modules/core-js-pure/stable/dom-collections/index.js
deleted file mode 100644
index 7d262cb..0000000
--- a/node_modules/core-js-pure/stable/dom-collections/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-require('../../modules/web.dom-collections.for-each');
-require('../../modules/web.dom-collections.iterator');
-var ArrayIterators = require('../../modules/es.array.iterator');
-var forEach = require('../../internals/array-for-each');
-
-module.exports = {
-  keys: ArrayIterators.keys,
-  values: ArrayIterators.values,
-  entries: ArrayIterators.entries,
-  iterator: ArrayIterators.values,
-  forEach: forEach
-};
diff --git a/node_modules/core-js-pure/stable/dom-collections/iterator.js b/node_modules/core-js-pure/stable/dom-collections/iterator.js
deleted file mode 100644
index 3bc1e90..0000000
--- a/node_modules/core-js-pure/stable/dom-collections/iterator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../../modules/web.dom-collections.iterator');
-var entryUnbind = require('../../internals/entry-unbind');
-
-module.exports = entryUnbind('Array', 'values');
diff --git a/node_modules/core-js-pure/stable/function/bind.js b/node_modules/core-js-pure/stable/function/bind.js
deleted file mode 100644
index b916d67..0000000
--- a/node_modules/core-js-pure/stable/function/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/function/has-instance.js b/node_modules/core-js-pure/stable/function/has-instance.js
deleted file mode 100644
index 9538a80..0000000
--- a/node_modules/core-js-pure/stable/function/has-instance.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/has-instance');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/function/index.js b/node_modules/core-js-pure/stable/function/index.js
deleted file mode 100644
index f906e2e..0000000
--- a/node_modules/core-js-pure/stable/function/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/function/name.js b/node_modules/core-js-pure/stable/function/name.js
deleted file mode 100644
index a7729f5..0000000
--- a/node_modules/core-js-pure/stable/function/name.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/function/name');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/function/virtual/bind.js b/node_modules/core-js-pure/stable/function/virtual/bind.js
deleted file mode 100644
index e7b9a3b..0000000
--- a/node_modules/core-js-pure/stable/function/virtual/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/function/virtual/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/function/virtual/index.js b/node_modules/core-js-pure/stable/function/virtual/index.js
deleted file mode 100644
index 2282ff4..0000000
--- a/node_modules/core-js-pure/stable/function/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/function/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/global-this.js b/node_modules/core-js-pure/stable/global-this.js
deleted file mode 100644
index b225b09..0000000
--- a/node_modules/core-js-pure/stable/global-this.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../es/global-this');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/index.js b/node_modules/core-js-pure/stable/index.js
deleted file mode 100644
index f0dc470..0000000
--- a/node_modules/core-js-pure/stable/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../es');
-require('../web');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/stable/instance/bind.js b/node_modules/core-js-pure/stable/instance/bind.js
deleted file mode 100644
index acb6bbe..0000000
--- a/node_modules/core-js-pure/stable/instance/bind.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/bind');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/code-point-at.js b/node_modules/core-js-pure/stable/instance/code-point-at.js
deleted file mode 100644
index 1d4435e..0000000
--- a/node_modules/core-js-pure/stable/instance/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/concat.js b/node_modules/core-js-pure/stable/instance/concat.js
deleted file mode 100644
index 874d87d..0000000
--- a/node_modules/core-js-pure/stable/instance/concat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/concat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/copy-within.js b/node_modules/core-js-pure/stable/instance/copy-within.js
deleted file mode 100644
index 9d472b0..0000000
--- a/node_modules/core-js-pure/stable/instance/copy-within.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/copy-within');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/ends-with.js b/node_modules/core-js-pure/stable/instance/ends-with.js
deleted file mode 100644
index aaf2c16..0000000
--- a/node_modules/core-js-pure/stable/instance/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/entries.js b/node_modules/core-js-pure/stable/instance/entries.js
deleted file mode 100644
index 080b814..0000000
--- a/node_modules/core-js-pure/stable/instance/entries.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../../modules/web.dom-collections.iterator');
-var entries = require('../array/virtual/entries');
-var classof = require('../../internals/classof');
-var ArrayPrototype = Array.prototype;
-
-var DOMIterables = {
-  DOMTokenList: true,
-  NodeList: true
-};
-
-module.exports = function (it) {
-  var own = it.entries;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.entries)
-    // eslint-disable-next-line no-prototype-builtins
-    || DOMIterables.hasOwnProperty(classof(it)) ? entries : own;
-};
diff --git a/node_modules/core-js-pure/stable/instance/every.js b/node_modules/core-js-pure/stable/instance/every.js
deleted file mode 100644
index 3dc4296..0000000
--- a/node_modules/core-js-pure/stable/instance/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/every');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/fill.js b/node_modules/core-js-pure/stable/instance/fill.js
deleted file mode 100644
index 4e38c42..0000000
--- a/node_modules/core-js-pure/stable/instance/fill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/fill');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/filter.js b/node_modules/core-js-pure/stable/instance/filter.js
deleted file mode 100644
index 5219c64..0000000
--- a/node_modules/core-js-pure/stable/instance/filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/filter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/find-index.js b/node_modules/core-js-pure/stable/instance/find-index.js
deleted file mode 100644
index b207364..0000000
--- a/node_modules/core-js-pure/stable/instance/find-index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/find-index');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/find.js b/node_modules/core-js-pure/stable/instance/find.js
deleted file mode 100644
index 024fc81..0000000
--- a/node_modules/core-js-pure/stable/instance/find.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/find');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/flags.js b/node_modules/core-js-pure/stable/instance/flags.js
deleted file mode 100644
index 064c9ec..0000000
--- a/node_modules/core-js-pure/stable/instance/flags.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flags');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/flat-map.js b/node_modules/core-js-pure/stable/instance/flat-map.js
deleted file mode 100644
index bea3d82..0000000
--- a/node_modules/core-js-pure/stable/instance/flat-map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flat-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/flat.js b/node_modules/core-js-pure/stable/instance/flat.js
deleted file mode 100644
index d61b6ab..0000000
--- a/node_modules/core-js-pure/stable/instance/flat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/flat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/for-each.js b/node_modules/core-js-pure/stable/instance/for-each.js
deleted file mode 100644
index 1254e9f..0000000
--- a/node_modules/core-js-pure/stable/instance/for-each.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../../modules/web.dom-collections.iterator');
-var forEach = require('../array/virtual/for-each');
-var classof = require('../../internals/classof');
-var ArrayPrototype = Array.prototype;
-
-var DOMIterables = {
-  DOMTokenList: true,
-  NodeList: true
-};
-
-module.exports = function (it) {
-  var own = it.forEach;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach)
-    // eslint-disable-next-line no-prototype-builtins
-    || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own;
-};
diff --git a/node_modules/core-js-pure/stable/instance/includes.js b/node_modules/core-js-pure/stable/instance/includes.js
deleted file mode 100644
index 1bccfac..0000000
--- a/node_modules/core-js-pure/stable/instance/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/index-of.js b/node_modules/core-js-pure/stable/instance/index-of.js
deleted file mode 100644
index 8ddbaba..0000000
--- a/node_modules/core-js-pure/stable/instance/index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/keys.js b/node_modules/core-js-pure/stable/instance/keys.js
deleted file mode 100644
index b83acb7..0000000
--- a/node_modules/core-js-pure/stable/instance/keys.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../../modules/web.dom-collections.iterator');
-var keys = require('../array/virtual/keys');
-var classof = require('../../internals/classof');
-var ArrayPrototype = Array.prototype;
-
-var DOMIterables = {
-  DOMTokenList: true,
-  NodeList: true
-};
-
-module.exports = function (it) {
-  var own = it.keys;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.keys)
-    // eslint-disable-next-line no-prototype-builtins
-    || DOMIterables.hasOwnProperty(classof(it)) ? keys : own;
-};
diff --git a/node_modules/core-js-pure/stable/instance/last-index-of.js b/node_modules/core-js-pure/stable/instance/last-index-of.js
deleted file mode 100644
index c860188..0000000
--- a/node_modules/core-js-pure/stable/instance/last-index-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/last-index-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/map.js b/node_modules/core-js-pure/stable/instance/map.js
deleted file mode 100644
index 1f18a09..0000000
--- a/node_modules/core-js-pure/stable/instance/map.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/match-all.js b/node_modules/core-js-pure/stable/instance/match-all.js
deleted file mode 100644
index 54cc6bb..0000000
--- a/node_modules/core-js-pure/stable/instance/match-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/pad-end.js b/node_modules/core-js-pure/stable/instance/pad-end.js
deleted file mode 100644
index afe92b0..0000000
--- a/node_modules/core-js-pure/stable/instance/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/pad-start.js b/node_modules/core-js-pure/stable/instance/pad-start.js
deleted file mode 100644
index 6a7db7d..0000000
--- a/node_modules/core-js-pure/stable/instance/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/reduce-right.js b/node_modules/core-js-pure/stable/instance/reduce-right.js
deleted file mode 100644
index 6a1bb34..0000000
--- a/node_modules/core-js-pure/stable/instance/reduce-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reduce-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/reduce.js b/node_modules/core-js-pure/stable/instance/reduce.js
deleted file mode 100644
index 908e12e..0000000
--- a/node_modules/core-js-pure/stable/instance/reduce.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reduce');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/repeat.js b/node_modules/core-js-pure/stable/instance/repeat.js
deleted file mode 100644
index 76f2f4c..0000000
--- a/node_modules/core-js-pure/stable/instance/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/reverse.js b/node_modules/core-js-pure/stable/instance/reverse.js
deleted file mode 100644
index ca634dc..0000000
--- a/node_modules/core-js-pure/stable/instance/reverse.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/reverse');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/slice.js b/node_modules/core-js-pure/stable/instance/slice.js
deleted file mode 100644
index 2722605..0000000
--- a/node_modules/core-js-pure/stable/instance/slice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/slice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/some.js b/node_modules/core-js-pure/stable/instance/some.js
deleted file mode 100644
index 3cd6a8b..0000000
--- a/node_modules/core-js-pure/stable/instance/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/some');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/sort.js b/node_modules/core-js-pure/stable/instance/sort.js
deleted file mode 100644
index d06c4bb..0000000
--- a/node_modules/core-js-pure/stable/instance/sort.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/sort');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/splice.js b/node_modules/core-js-pure/stable/instance/splice.js
deleted file mode 100644
index 46da42c..0000000
--- a/node_modules/core-js-pure/stable/instance/splice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/splice');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/starts-with.js b/node_modules/core-js-pure/stable/instance/starts-with.js
deleted file mode 100644
index f2e3a08..0000000
--- a/node_modules/core-js-pure/stable/instance/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/trim-end.js b/node_modules/core-js-pure/stable/instance/trim-end.js
deleted file mode 100644
index 787e52e..0000000
--- a/node_modules/core-js-pure/stable/instance/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/trim-left.js b/node_modules/core-js-pure/stable/instance/trim-left.js
deleted file mode 100644
index 7127d67..0000000
--- a/node_modules/core-js-pure/stable/instance/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/trim-right.js b/node_modules/core-js-pure/stable/instance/trim-right.js
deleted file mode 100644
index 760567e..0000000
--- a/node_modules/core-js-pure/stable/instance/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/trim-start.js b/node_modules/core-js-pure/stable/instance/trim-start.js
deleted file mode 100644
index 3c59472..0000000
--- a/node_modules/core-js-pure/stable/instance/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/trim.js b/node_modules/core-js-pure/stable/instance/trim.js
deleted file mode 100644
index 4d99499..0000000
--- a/node_modules/core-js-pure/stable/instance/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/instance/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/instance/values.js b/node_modules/core-js-pure/stable/instance/values.js
deleted file mode 100644
index febcba3..0000000
--- a/node_modules/core-js-pure/stable/instance/values.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../../modules/web.dom-collections.iterator');
-var values = require('../array/virtual/values');
-var classof = require('../../internals/classof');
-var ArrayPrototype = Array.prototype;
-
-var DOMIterables = {
-  DOMTokenList: true,
-  NodeList: true
-};
-
-module.exports = function (it) {
-  var own = it.values;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.values)
-    // eslint-disable-next-line no-prototype-builtins
-    || DOMIterables.hasOwnProperty(classof(it)) ? values : own;
-};
diff --git a/node_modules/core-js-pure/stable/json/index.js b/node_modules/core-js-pure/stable/json/index.js
deleted file mode 100644
index c53da9f..0000000
--- a/node_modules/core-js-pure/stable/json/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/json/stringify.js b/node_modules/core-js-pure/stable/json/stringify.js
deleted file mode 100644
index d6d8c52..0000000
--- a/node_modules/core-js-pure/stable/json/stringify.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json/stringify');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/json/to-string-tag.js b/node_modules/core-js-pure/stable/json/to-string-tag.js
deleted file mode 100644
index 5355956..0000000
--- a/node_modules/core-js-pure/stable/json/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/json/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/map/index.js b/node_modules/core-js-pure/stable/map/index.js
deleted file mode 100644
index 6ec56e8..0000000
--- a/node_modules/core-js-pure/stable/map/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/acosh.js b/node_modules/core-js-pure/stable/math/acosh.js
deleted file mode 100644
index f039937..0000000
--- a/node_modules/core-js-pure/stable/math/acosh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/acosh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/asinh.js b/node_modules/core-js-pure/stable/math/asinh.js
deleted file mode 100644
index 95a302a..0000000
--- a/node_modules/core-js-pure/stable/math/asinh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/asinh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/atanh.js b/node_modules/core-js-pure/stable/math/atanh.js
deleted file mode 100644
index f1ebad7..0000000
--- a/node_modules/core-js-pure/stable/math/atanh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/atanh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/cbrt.js b/node_modules/core-js-pure/stable/math/cbrt.js
deleted file mode 100644
index 2c1f825..0000000
--- a/node_modules/core-js-pure/stable/math/cbrt.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/cbrt');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/clz32.js b/node_modules/core-js-pure/stable/math/clz32.js
deleted file mode 100644
index a0ecd15..0000000
--- a/node_modules/core-js-pure/stable/math/clz32.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/clz32');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/cosh.js b/node_modules/core-js-pure/stable/math/cosh.js
deleted file mode 100644
index bc8a11f..0000000
--- a/node_modules/core-js-pure/stable/math/cosh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/cosh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/expm1.js b/node_modules/core-js-pure/stable/math/expm1.js
deleted file mode 100644
index 0527f81..0000000
--- a/node_modules/core-js-pure/stable/math/expm1.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/expm1');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/fround.js b/node_modules/core-js-pure/stable/math/fround.js
deleted file mode 100644
index 5caff7d..0000000
--- a/node_modules/core-js-pure/stable/math/fround.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/fround');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/hypot.js b/node_modules/core-js-pure/stable/math/hypot.js
deleted file mode 100644
index 3db8d78..0000000
--- a/node_modules/core-js-pure/stable/math/hypot.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/hypot');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/imul.js b/node_modules/core-js-pure/stable/math/imul.js
deleted file mode 100644
index 4d31d24..0000000
--- a/node_modules/core-js-pure/stable/math/imul.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/imul');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/index.js b/node_modules/core-js-pure/stable/math/index.js
deleted file mode 100644
index f563253..0000000
--- a/node_modules/core-js-pure/stable/math/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/log10.js b/node_modules/core-js-pure/stable/math/log10.js
deleted file mode 100644
index 07b9704..0000000
--- a/node_modules/core-js-pure/stable/math/log10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log10');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/log1p.js b/node_modules/core-js-pure/stable/math/log1p.js
deleted file mode 100644
index b31d730..0000000
--- a/node_modules/core-js-pure/stable/math/log1p.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log1p');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/log2.js b/node_modules/core-js-pure/stable/math/log2.js
deleted file mode 100644
index 00db8a5..0000000
--- a/node_modules/core-js-pure/stable/math/log2.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/log2');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/sign.js b/node_modules/core-js-pure/stable/math/sign.js
deleted file mode 100644
index c7bef22..0000000
--- a/node_modules/core-js-pure/stable/math/sign.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/sign');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/sinh.js b/node_modules/core-js-pure/stable/math/sinh.js
deleted file mode 100644
index 96f8f8e..0000000
--- a/node_modules/core-js-pure/stable/math/sinh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/sinh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/tanh.js b/node_modules/core-js-pure/stable/math/tanh.js
deleted file mode 100644
index c9e8bb8..0000000
--- a/node_modules/core-js-pure/stable/math/tanh.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/tanh');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/to-string-tag.js b/node_modules/core-js-pure/stable/math/to-string-tag.js
deleted file mode 100644
index 02faadf..0000000
--- a/node_modules/core-js-pure/stable/math/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/math/trunc.js b/node_modules/core-js-pure/stable/math/trunc.js
deleted file mode 100644
index 7635c17..0000000
--- a/node_modules/core-js-pure/stable/math/trunc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/math/trunc');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/constructor.js b/node_modules/core-js-pure/stable/number/constructor.js
deleted file mode 100644
index 6b5836e..0000000
--- a/node_modules/core-js-pure/stable/number/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/epsilon.js b/node_modules/core-js-pure/stable/number/epsilon.js
deleted file mode 100644
index fe2ccd7..0000000
--- a/node_modules/core-js-pure/stable/number/epsilon.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/epsilon');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/index.js b/node_modules/core-js-pure/stable/number/index.js
deleted file mode 100644
index 81181a1..0000000
--- a/node_modules/core-js-pure/stable/number/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/is-finite.js b/node_modules/core-js-pure/stable/number/is-finite.js
deleted file mode 100644
index 24b9773..0000000
--- a/node_modules/core-js-pure/stable/number/is-finite.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-finite');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/is-integer.js b/node_modules/core-js-pure/stable/number/is-integer.js
deleted file mode 100644
index b1592d0..0000000
--- a/node_modules/core-js-pure/stable/number/is-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/is-nan.js b/node_modules/core-js-pure/stable/number/is-nan.js
deleted file mode 100644
index fcbec50..0000000
--- a/node_modules/core-js-pure/stable/number/is-nan.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-nan');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/is-safe-integer.js b/node_modules/core-js-pure/stable/number/is-safe-integer.js
deleted file mode 100644
index b25eb1c..0000000
--- a/node_modules/core-js-pure/stable/number/is-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/is-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/max-safe-integer.js b/node_modules/core-js-pure/stable/number/max-safe-integer.js
deleted file mode 100644
index e6689b0..0000000
--- a/node_modules/core-js-pure/stable/number/max-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/max-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/min-safe-integer.js b/node_modules/core-js-pure/stable/number/min-safe-integer.js
deleted file mode 100644
index 1159a47..0000000
--- a/node_modules/core-js-pure/stable/number/min-safe-integer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/min-safe-integer');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/parse-float.js b/node_modules/core-js-pure/stable/number/parse-float.js
deleted file mode 100644
index 3b49c6a..0000000
--- a/node_modules/core-js-pure/stable/number/parse-float.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/parse-float');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/parse-int.js b/node_modules/core-js-pure/stable/number/parse-int.js
deleted file mode 100644
index 9e44651..0000000
--- a/node_modules/core-js-pure/stable/number/parse-int.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/parse-int');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/to-fixed.js b/node_modules/core-js-pure/stable/number/to-fixed.js
deleted file mode 100644
index b103de9..0000000
--- a/node_modules/core-js-pure/stable/number/to-fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/to-fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/to-precision.js b/node_modules/core-js-pure/stable/number/to-precision.js
deleted file mode 100644
index 5183347..0000000
--- a/node_modules/core-js-pure/stable/number/to-precision.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/number/to-precision');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/virtual/index.js b/node_modules/core-js-pure/stable/number/virtual/index.js
deleted file mode 100644
index 88eef4b..0000000
--- a/node_modules/core-js-pure/stable/number/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/virtual/to-fixed.js b/node_modules/core-js-pure/stable/number/virtual/to-fixed.js
deleted file mode 100644
index a9f83cc..0000000
--- a/node_modules/core-js-pure/stable/number/virtual/to-fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual/to-fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/number/virtual/to-precision.js b/node_modules/core-js-pure/stable/number/virtual/to-precision.js
deleted file mode 100644
index adffb86..0000000
--- a/node_modules/core-js-pure/stable/number/virtual/to-precision.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/number/virtual/to-precision');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/assign.js b/node_modules/core-js-pure/stable/object/assign.js
deleted file mode 100644
index ed6863e..0000000
--- a/node_modules/core-js-pure/stable/object/assign.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/assign');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/create.js b/node_modules/core-js-pure/stable/object/create.js
deleted file mode 100644
index 1e4d353..0000000
--- a/node_modules/core-js-pure/stable/object/create.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/create');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/define-getter.js b/node_modules/core-js-pure/stable/object/define-getter.js
deleted file mode 100644
index 9b734ab..0000000
--- a/node_modules/core-js-pure/stable/object/define-getter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-getter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/define-properties.js b/node_modules/core-js-pure/stable/object/define-properties.js
deleted file mode 100644
index e0d074c..0000000
--- a/node_modules/core-js-pure/stable/object/define-properties.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-properties');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/define-property.js b/node_modules/core-js-pure/stable/object/define-property.js
deleted file mode 100644
index 67a978c..0000000
--- a/node_modules/core-js-pure/stable/object/define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/define-setter.js b/node_modules/core-js-pure/stable/object/define-setter.js
deleted file mode 100644
index 9076fd5..0000000
--- a/node_modules/core-js-pure/stable/object/define-setter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/define-setter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/entries.js b/node_modules/core-js-pure/stable/object/entries.js
deleted file mode 100644
index c7a831a..0000000
--- a/node_modules/core-js-pure/stable/object/entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/freeze.js b/node_modules/core-js-pure/stable/object/freeze.js
deleted file mode 100644
index 0ee7459..0000000
--- a/node_modules/core-js-pure/stable/object/freeze.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/freeze');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/from-entries.js b/node_modules/core-js-pure/stable/object/from-entries.js
deleted file mode 100644
index aec2c7a..0000000
--- a/node_modules/core-js-pure/stable/object/from-entries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/from-entries');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js b/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js
deleted file mode 100644
index 9b69cdd..0000000
--- a/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-descriptor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/get-own-property-descriptors.js b/node_modules/core-js-pure/stable/object/get-own-property-descriptors.js
deleted file mode 100644
index 43a193e..0000000
--- a/node_modules/core-js-pure/stable/object/get-own-property-descriptors.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-descriptors');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/get-own-property-names.js b/node_modules/core-js-pure/stable/object/get-own-property-names.js
deleted file mode 100644
index 42c21d7..0000000
--- a/node_modules/core-js-pure/stable/object/get-own-property-names.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-names');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/get-own-property-symbols.js b/node_modules/core-js-pure/stable/object/get-own-property-symbols.js
deleted file mode 100644
index 0bc8c26..0000000
--- a/node_modules/core-js-pure/stable/object/get-own-property-symbols.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-own-property-symbols');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/get-prototype-of.js b/node_modules/core-js-pure/stable/object/get-prototype-of.js
deleted file mode 100644
index b7cf588..0000000
--- a/node_modules/core-js-pure/stable/object/get-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/get-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/index.js b/node_modules/core-js-pure/stable/object/index.js
deleted file mode 100644
index d2d658c..0000000
--- a/node_modules/core-js-pure/stable/object/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/is-extensible.js b/node_modules/core-js-pure/stable/object/is-extensible.js
deleted file mode 100644
index 694b9a4..0000000
--- a/node_modules/core-js-pure/stable/object/is-extensible.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-extensible');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/is-frozen.js b/node_modules/core-js-pure/stable/object/is-frozen.js
deleted file mode 100644
index 68fe107..0000000
--- a/node_modules/core-js-pure/stable/object/is-frozen.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-frozen');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/is-sealed.js b/node_modules/core-js-pure/stable/object/is-sealed.js
deleted file mode 100644
index bbf6472..0000000
--- a/node_modules/core-js-pure/stable/object/is-sealed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is-sealed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/is.js b/node_modules/core-js-pure/stable/object/is.js
deleted file mode 100644
index 3ddd76f..0000000
--- a/node_modules/core-js-pure/stable/object/is.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/is');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/keys.js b/node_modules/core-js-pure/stable/object/keys.js
deleted file mode 100644
index 2cff0ab..0000000
--- a/node_modules/core-js-pure/stable/object/keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/lookup-getter.js b/node_modules/core-js-pure/stable/object/lookup-getter.js
deleted file mode 100644
index 9f10f6b..0000000
--- a/node_modules/core-js-pure/stable/object/lookup-getter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/lookup-getter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/lookup-setter.js b/node_modules/core-js-pure/stable/object/lookup-setter.js
deleted file mode 100644
index 97389bf..0000000
--- a/node_modules/core-js-pure/stable/object/lookup-setter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/lookup-setter');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/prevent-extensions.js b/node_modules/core-js-pure/stable/object/prevent-extensions.js
deleted file mode 100644
index 7171f2a..0000000
--- a/node_modules/core-js-pure/stable/object/prevent-extensions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/prevent-extensions');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/seal.js b/node_modules/core-js-pure/stable/object/seal.js
deleted file mode 100644
index fa50038..0000000
--- a/node_modules/core-js-pure/stable/object/seal.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/seal');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/set-prototype-of.js b/node_modules/core-js-pure/stable/object/set-prototype-of.js
deleted file mode 100644
index 4885ad3..0000000
--- a/node_modules/core-js-pure/stable/object/set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/set-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/to-string.js b/node_modules/core-js-pure/stable/object/to-string.js
deleted file mode 100644
index 589ffcb..0000000
--- a/node_modules/core-js-pure/stable/object/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/object/values.js b/node_modules/core-js-pure/stable/object/values.js
deleted file mode 100644
index 9e457fc..0000000
--- a/node_modules/core-js-pure/stable/object/values.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/object/values');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/parse-float.js b/node_modules/core-js-pure/stable/parse-float.js
deleted file mode 100644
index 1bc853c..0000000
--- a/node_modules/core-js-pure/stable/parse-float.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../es/parse-float');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/parse-int.js b/node_modules/core-js-pure/stable/parse-int.js
deleted file mode 100644
index af7cffd..0000000
--- a/node_modules/core-js-pure/stable/parse-int.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../es/parse-int');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/promise/all-settled.js b/node_modules/core-js-pure/stable/promise/all-settled.js
deleted file mode 100644
index 5b99bed..0000000
--- a/node_modules/core-js-pure/stable/promise/all-settled.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/promise/all-settled');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/promise/finally.js b/node_modules/core-js-pure/stable/promise/finally.js
deleted file mode 100644
index 835c6c9..0000000
--- a/node_modules/core-js-pure/stable/promise/finally.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/promise/finally');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/promise/index.js b/node_modules/core-js-pure/stable/promise/index.js
deleted file mode 100644
index 6f19db9..0000000
--- a/node_modules/core-js-pure/stable/promise/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/promise');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/queue-microtask.js b/node_modules/core-js-pure/stable/queue-microtask.js
deleted file mode 100644
index 8afd9c7..0000000
--- a/node_modules/core-js-pure/stable/queue-microtask.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../web/queue-microtask');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/apply.js b/node_modules/core-js-pure/stable/reflect/apply.js
deleted file mode 100644
index 75bf21e..0000000
--- a/node_modules/core-js-pure/stable/reflect/apply.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/apply');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/construct.js b/node_modules/core-js-pure/stable/reflect/construct.js
deleted file mode 100644
index 86ba56e..0000000
--- a/node_modules/core-js-pure/stable/reflect/construct.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/construct');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/define-property.js b/node_modules/core-js-pure/stable/reflect/define-property.js
deleted file mode 100644
index 5b66a14..0000000
--- a/node_modules/core-js-pure/stable/reflect/define-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/define-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/delete-property.js b/node_modules/core-js-pure/stable/reflect/delete-property.js
deleted file mode 100644
index 381d7a7..0000000
--- a/node_modules/core-js-pure/stable/reflect/delete-property.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/delete-property');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/get-own-property-descriptor.js b/node_modules/core-js-pure/stable/reflect/get-own-property-descriptor.js
deleted file mode 100644
index 0f9c132..0000000
--- a/node_modules/core-js-pure/stable/reflect/get-own-property-descriptor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get-own-property-descriptor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/get-prototype-of.js b/node_modules/core-js-pure/stable/reflect/get-prototype-of.js
deleted file mode 100644
index fdc1ccb..0000000
--- a/node_modules/core-js-pure/stable/reflect/get-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/get.js b/node_modules/core-js-pure/stable/reflect/get.js
deleted file mode 100644
index 2914c12..0000000
--- a/node_modules/core-js-pure/stable/reflect/get.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/get');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/has.js b/node_modules/core-js-pure/stable/reflect/has.js
deleted file mode 100644
index 26b5f7c..0000000
--- a/node_modules/core-js-pure/stable/reflect/has.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/has');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/index.js b/node_modules/core-js-pure/stable/reflect/index.js
deleted file mode 100644
index c0a7563..0000000
--- a/node_modules/core-js-pure/stable/reflect/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/is-extensible.js b/node_modules/core-js-pure/stable/reflect/is-extensible.js
deleted file mode 100644
index b04239e..0000000
--- a/node_modules/core-js-pure/stable/reflect/is-extensible.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/is-extensible');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/own-keys.js b/node_modules/core-js-pure/stable/reflect/own-keys.js
deleted file mode 100644
index 6d56289..0000000
--- a/node_modules/core-js-pure/stable/reflect/own-keys.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/own-keys');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/prevent-extensions.js b/node_modules/core-js-pure/stable/reflect/prevent-extensions.js
deleted file mode 100644
index 40a8bbc..0000000
--- a/node_modules/core-js-pure/stable/reflect/prevent-extensions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/prevent-extensions');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/set-prototype-of.js b/node_modules/core-js-pure/stable/reflect/set-prototype-of.js
deleted file mode 100644
index 20fd6f3..0000000
--- a/node_modules/core-js-pure/stable/reflect/set-prototype-of.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/set-prototype-of');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/reflect/set.js b/node_modules/core-js-pure/stable/reflect/set.js
deleted file mode 100644
index a4cf5f0..0000000
--- a/node_modules/core-js-pure/stable/reflect/set.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/reflect/set');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/constructor.js b/node_modules/core-js-pure/stable/regexp/constructor.js
deleted file mode 100644
index 2cd0149..0000000
--- a/node_modules/core-js-pure/stable/regexp/constructor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/constructor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/flags.js b/node_modules/core-js-pure/stable/regexp/flags.js
deleted file mode 100644
index bdf1c8a..0000000
--- a/node_modules/core-js-pure/stable/regexp/flags.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/flags');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/index.js b/node_modules/core-js-pure/stable/regexp/index.js
deleted file mode 100644
index df41f17..0000000
--- a/node_modules/core-js-pure/stable/regexp/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/match.js b/node_modules/core-js-pure/stable/regexp/match.js
deleted file mode 100644
index c995bbb..0000000
--- a/node_modules/core-js-pure/stable/regexp/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/replace.js b/node_modules/core-js-pure/stable/regexp/replace.js
deleted file mode 100644
index b1a9e65..0000000
--- a/node_modules/core-js-pure/stable/regexp/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/search.js b/node_modules/core-js-pure/stable/regexp/search.js
deleted file mode 100644
index af17062..0000000
--- a/node_modules/core-js-pure/stable/regexp/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/split.js b/node_modules/core-js-pure/stable/regexp/split.js
deleted file mode 100644
index fb0471a..0000000
--- a/node_modules/core-js-pure/stable/regexp/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/sticky.js b/node_modules/core-js-pure/stable/regexp/sticky.js
deleted file mode 100644
index c1307ad..0000000
--- a/node_modules/core-js-pure/stable/regexp/sticky.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/sticky');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/test.js b/node_modules/core-js-pure/stable/regexp/test.js
deleted file mode 100644
index 53f9166..0000000
--- a/node_modules/core-js-pure/stable/regexp/test.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/test');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/regexp/to-string.js b/node_modules/core-js-pure/stable/regexp/to-string.js
deleted file mode 100644
index e2a4442..0000000
--- a/node_modules/core-js-pure/stable/regexp/to-string.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/regexp/to-string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/set-immediate.js b/node_modules/core-js-pure/stable/set-immediate.js
deleted file mode 100644
index 0878b64..0000000
--- a/node_modules/core-js-pure/stable/set-immediate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.immediate');
-var path = require('../internals/path');
-
-module.exports = path.setImmediate;
diff --git a/node_modules/core-js-pure/stable/set-interval.js b/node_modules/core-js-pure/stable/set-interval.js
deleted file mode 100644
index cd6eddb..0000000
--- a/node_modules/core-js-pure/stable/set-interval.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.timers');
-var path = require('../internals/path');
-
-module.exports = path.setInterval;
diff --git a/node_modules/core-js-pure/stable/set-timeout.js b/node_modules/core-js-pure/stable/set-timeout.js
deleted file mode 100644
index b497a6a..0000000
--- a/node_modules/core-js-pure/stable/set-timeout.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.timers');
-var path = require('../internals/path');
-
-module.exports = path.setTimeout;
diff --git a/node_modules/core-js-pure/stable/set/index.js b/node_modules/core-js-pure/stable/set/index.js
deleted file mode 100644
index fe554d6..0000000
--- a/node_modules/core-js-pure/stable/set/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/set');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/anchor.js b/node_modules/core-js-pure/stable/string/anchor.js
deleted file mode 100644
index b9b7905..0000000
--- a/node_modules/core-js-pure/stable/string/anchor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/anchor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/big.js b/node_modules/core-js-pure/stable/string/big.js
deleted file mode 100644
index 9c118e5..0000000
--- a/node_modules/core-js-pure/stable/string/big.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/big');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/blink.js b/node_modules/core-js-pure/stable/string/blink.js
deleted file mode 100644
index 23ca24f..0000000
--- a/node_modules/core-js-pure/stable/string/blink.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/blink');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/bold.js b/node_modules/core-js-pure/stable/string/bold.js
deleted file mode 100644
index 322db3e..0000000
--- a/node_modules/core-js-pure/stable/string/bold.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/bold');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/code-point-at.js b/node_modules/core-js-pure/stable/string/code-point-at.js
deleted file mode 100644
index 033b94c..0000000
--- a/node_modules/core-js-pure/stable/string/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/ends-with.js b/node_modules/core-js-pure/stable/string/ends-with.js
deleted file mode 100644
index 2ea5594..0000000
--- a/node_modules/core-js-pure/stable/string/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/fixed.js b/node_modules/core-js-pure/stable/string/fixed.js
deleted file mode 100644
index c18b823..0000000
--- a/node_modules/core-js-pure/stable/string/fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/fontcolor.js b/node_modules/core-js-pure/stable/string/fontcolor.js
deleted file mode 100644
index bb30ae6..0000000
--- a/node_modules/core-js-pure/stable/string/fontcolor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fontcolor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/fontsize.js b/node_modules/core-js-pure/stable/string/fontsize.js
deleted file mode 100644
index 49060de..0000000
--- a/node_modules/core-js-pure/stable/string/fontsize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/fontsize');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/from-code-point.js b/node_modules/core-js-pure/stable/string/from-code-point.js
deleted file mode 100644
index c56ee7c..0000000
--- a/node_modules/core-js-pure/stable/string/from-code-point.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/from-code-point');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/includes.js b/node_modules/core-js-pure/stable/string/includes.js
deleted file mode 100644
index cf7eea4..0000000
--- a/node_modules/core-js-pure/stable/string/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/index.js b/node_modules/core-js-pure/stable/string/index.js
deleted file mode 100644
index 9eda7c0..0000000
--- a/node_modules/core-js-pure/stable/string/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/italics.js b/node_modules/core-js-pure/stable/string/italics.js
deleted file mode 100644
index 8bee439..0000000
--- a/node_modules/core-js-pure/stable/string/italics.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/italics');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/iterator.js b/node_modules/core-js-pure/stable/string/iterator.js
deleted file mode 100644
index 64110cc..0000000
--- a/node_modules/core-js-pure/stable/string/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/link.js b/node_modules/core-js-pure/stable/string/link.js
deleted file mode 100644
index d507726..0000000
--- a/node_modules/core-js-pure/stable/string/link.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/link');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/match-all.js b/node_modules/core-js-pure/stable/string/match-all.js
deleted file mode 100644
index 09cd361..0000000
--- a/node_modules/core-js-pure/stable/string/match-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/match.js b/node_modules/core-js-pure/stable/string/match.js
deleted file mode 100644
index 5b728da..0000000
--- a/node_modules/core-js-pure/stable/string/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/pad-end.js b/node_modules/core-js-pure/stable/string/pad-end.js
deleted file mode 100644
index 032903c..0000000
--- a/node_modules/core-js-pure/stable/string/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/pad-start.js b/node_modules/core-js-pure/stable/string/pad-start.js
deleted file mode 100644
index 440785b..0000000
--- a/node_modules/core-js-pure/stable/string/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/raw.js b/node_modules/core-js-pure/stable/string/raw.js
deleted file mode 100644
index 2ac2b74..0000000
--- a/node_modules/core-js-pure/stable/string/raw.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/raw');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/repeat.js b/node_modules/core-js-pure/stable/string/repeat.js
deleted file mode 100644
index 6d6848b..0000000
--- a/node_modules/core-js-pure/stable/string/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/replace.js b/node_modules/core-js-pure/stable/string/replace.js
deleted file mode 100644
index 48389e6..0000000
--- a/node_modules/core-js-pure/stable/string/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/search.js b/node_modules/core-js-pure/stable/string/search.js
deleted file mode 100644
index aaf356f..0000000
--- a/node_modules/core-js-pure/stable/string/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/small.js b/node_modules/core-js-pure/stable/string/small.js
deleted file mode 100644
index 47b79e0..0000000
--- a/node_modules/core-js-pure/stable/string/small.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/small');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/split.js b/node_modules/core-js-pure/stable/string/split.js
deleted file mode 100644
index 5ffbab7..0000000
--- a/node_modules/core-js-pure/stable/string/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/starts-with.js b/node_modules/core-js-pure/stable/string/starts-with.js
deleted file mode 100644
index f718778..0000000
--- a/node_modules/core-js-pure/stable/string/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/strike.js b/node_modules/core-js-pure/stable/string/strike.js
deleted file mode 100644
index 6c625c8..0000000
--- a/node_modules/core-js-pure/stable/string/strike.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/strike');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/sub.js b/node_modules/core-js-pure/stable/string/sub.js
deleted file mode 100644
index a4a66a0..0000000
--- a/node_modules/core-js-pure/stable/string/sub.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/sub');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/sup.js b/node_modules/core-js-pure/stable/string/sup.js
deleted file mode 100644
index abb1f6a..0000000
--- a/node_modules/core-js-pure/stable/string/sup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/sup');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/trim-end.js b/node_modules/core-js-pure/stable/string/trim-end.js
deleted file mode 100644
index 37e8d3f..0000000
--- a/node_modules/core-js-pure/stable/string/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/trim-left.js b/node_modules/core-js-pure/stable/string/trim-left.js
deleted file mode 100644
index e11e7b7..0000000
--- a/node_modules/core-js-pure/stable/string/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/trim-right.js b/node_modules/core-js-pure/stable/string/trim-right.js
deleted file mode 100644
index 290f4fd..0000000
--- a/node_modules/core-js-pure/stable/string/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/trim-start.js b/node_modules/core-js-pure/stable/string/trim-start.js
deleted file mode 100644
index 9698852..0000000
--- a/node_modules/core-js-pure/stable/string/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/trim.js b/node_modules/core-js-pure/stable/string/trim.js
deleted file mode 100644
index 7a3a3b2..0000000
--- a/node_modules/core-js-pure/stable/string/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/string/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/anchor.js b/node_modules/core-js-pure/stable/string/virtual/anchor.js
deleted file mode 100644
index 52f270c..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/anchor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/anchor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/big.js b/node_modules/core-js-pure/stable/string/virtual/big.js
deleted file mode 100644
index e2c481b..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/big.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/big');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/blink.js b/node_modules/core-js-pure/stable/string/virtual/blink.js
deleted file mode 100644
index b804fd6..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/blink.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/blink');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/bold.js b/node_modules/core-js-pure/stable/string/virtual/bold.js
deleted file mode 100644
index fbe2f42..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/bold.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/bold');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/code-point-at.js b/node_modules/core-js-pure/stable/string/virtual/code-point-at.js
deleted file mode 100644
index 1a7e0f6..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/code-point-at.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/code-point-at');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/ends-with.js b/node_modules/core-js-pure/stable/string/virtual/ends-with.js
deleted file mode 100644
index e35b5d0..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/ends-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/ends-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/fixed.js b/node_modules/core-js-pure/stable/string/virtual/fixed.js
deleted file mode 100644
index 8c16126..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fixed');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/fontcolor.js b/node_modules/core-js-pure/stable/string/virtual/fontcolor.js
deleted file mode 100644
index 5434150..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/fontcolor.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fontcolor');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/fontsize.js b/node_modules/core-js-pure/stable/string/virtual/fontsize.js
deleted file mode 100644
index f4b7144..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/fontsize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/fontsize');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/includes.js b/node_modules/core-js-pure/stable/string/virtual/includes.js
deleted file mode 100644
index a6aee44..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/includes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/includes');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/index.js b/node_modules/core-js-pure/stable/string/virtual/index.js
deleted file mode 100644
index 48250fb..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/italics.js b/node_modules/core-js-pure/stable/string/virtual/italics.js
deleted file mode 100644
index d35da33..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/italics.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/italics');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/iterator.js b/node_modules/core-js-pure/stable/string/virtual/iterator.js
deleted file mode 100644
index ffdb591..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/link.js b/node_modules/core-js-pure/stable/string/virtual/link.js
deleted file mode 100644
index 4c0c0cf..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/link.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/link');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/match-all.js b/node_modules/core-js-pure/stable/string/virtual/match-all.js
deleted file mode 100644
index 1fbccd4..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/match-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/pad-end.js b/node_modules/core-js-pure/stable/string/virtual/pad-end.js
deleted file mode 100644
index f1dcdf3..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/pad-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/pad-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/pad-start.js b/node_modules/core-js-pure/stable/string/virtual/pad-start.js
deleted file mode 100644
index 1e2afbc..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/pad-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/pad-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/repeat.js b/node_modules/core-js-pure/stable/string/virtual/repeat.js
deleted file mode 100644
index b8db5fc..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/repeat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/repeat');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/small.js b/node_modules/core-js-pure/stable/string/virtual/small.js
deleted file mode 100644
index 1dd357b..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/small.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/small');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/starts-with.js b/node_modules/core-js-pure/stable/string/virtual/starts-with.js
deleted file mode 100644
index 9a9145d..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/starts-with.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/starts-with');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/strike.js b/node_modules/core-js-pure/stable/string/virtual/strike.js
deleted file mode 100644
index 4aa28cc..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/strike.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/strike');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/sub.js b/node_modules/core-js-pure/stable/string/virtual/sub.js
deleted file mode 100644
index a1b2c3a..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/sub.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/sub');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/sup.js b/node_modules/core-js-pure/stable/string/virtual/sup.js
deleted file mode 100644
index dc604fe..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/sup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/sup');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/trim-end.js b/node_modules/core-js-pure/stable/string/virtual/trim-end.js
deleted file mode 100644
index 04e5ad9..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/trim-end.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-end');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/trim-left.js b/node_modules/core-js-pure/stable/string/virtual/trim-left.js
deleted file mode 100644
index 571fb01..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/trim-left.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-left');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/trim-right.js b/node_modules/core-js-pure/stable/string/virtual/trim-right.js
deleted file mode 100644
index aab8b09..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/trim-right.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-right');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/trim-start.js b/node_modules/core-js-pure/stable/string/virtual/trim-start.js
deleted file mode 100644
index c7fd1b2..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/trim-start.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim-start');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/string/virtual/trim.js b/node_modules/core-js-pure/stable/string/virtual/trim.js
deleted file mode 100644
index d95c2e1..0000000
--- a/node_modules/core-js-pure/stable/string/virtual/trim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../../es/string/virtual/trim');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/async-iterator.js b/node_modules/core-js-pure/stable/symbol/async-iterator.js
deleted file mode 100644
index a624329..0000000
--- a/node_modules/core-js-pure/stable/symbol/async-iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/async-iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/description.js b/node_modules/core-js-pure/stable/symbol/description.js
deleted file mode 100644
index 7bb4b2b..0000000
--- a/node_modules/core-js-pure/stable/symbol/description.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.symbol.description');
diff --git a/node_modules/core-js-pure/stable/symbol/for.js b/node_modules/core-js-pure/stable/symbol/for.js
deleted file mode 100644
index 28b29ae..0000000
--- a/node_modules/core-js-pure/stable/symbol/for.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/for');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/has-instance.js b/node_modules/core-js-pure/stable/symbol/has-instance.js
deleted file mode 100644
index 0334558..0000000
--- a/node_modules/core-js-pure/stable/symbol/has-instance.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/has-instance');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/index.js b/node_modules/core-js-pure/stable/symbol/index.js
deleted file mode 100644
index 2fb7ba5..0000000
--- a/node_modules/core-js-pure/stable/symbol/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/is-concat-spreadable.js b/node_modules/core-js-pure/stable/symbol/is-concat-spreadable.js
deleted file mode 100644
index 7dc1d26..0000000
--- a/node_modules/core-js-pure/stable/symbol/is-concat-spreadable.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/is-concat-spreadable');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/iterator.js b/node_modules/core-js-pure/stable/symbol/iterator.js
deleted file mode 100644
index 78f0139..0000000
--- a/node_modules/core-js-pure/stable/symbol/iterator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/iterator');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/key-for.js b/node_modules/core-js-pure/stable/symbol/key-for.js
deleted file mode 100644
index 4f76f82..0000000
--- a/node_modules/core-js-pure/stable/symbol/key-for.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/key-for');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/match-all.js b/node_modules/core-js-pure/stable/symbol/match-all.js
deleted file mode 100644
index 6be4444..0000000
--- a/node_modules/core-js-pure/stable/symbol/match-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/match-all');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/match.js b/node_modules/core-js-pure/stable/symbol/match.js
deleted file mode 100644
index 2a502e4..0000000
--- a/node_modules/core-js-pure/stable/symbol/match.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/match');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/replace.js b/node_modules/core-js-pure/stable/symbol/replace.js
deleted file mode 100644
index 225f7fe..0000000
--- a/node_modules/core-js-pure/stable/symbol/replace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/replace');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/search.js b/node_modules/core-js-pure/stable/symbol/search.js
deleted file mode 100644
index dd25b55..0000000
--- a/node_modules/core-js-pure/stable/symbol/search.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/search');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/species.js b/node_modules/core-js-pure/stable/symbol/species.js
deleted file mode 100644
index 6d3c418..0000000
--- a/node_modules/core-js-pure/stable/symbol/species.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/species');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/split.js b/node_modules/core-js-pure/stable/symbol/split.js
deleted file mode 100644
index 209b212..0000000
--- a/node_modules/core-js-pure/stable/symbol/split.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/split');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/to-primitive.js b/node_modules/core-js-pure/stable/symbol/to-primitive.js
deleted file mode 100644
index cd15ff5..0000000
--- a/node_modules/core-js-pure/stable/symbol/to-primitive.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/to-primitive');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/to-string-tag.js b/node_modules/core-js-pure/stable/symbol/to-string-tag.js
deleted file mode 100644
index 6948350..0000000
--- a/node_modules/core-js-pure/stable/symbol/to-string-tag.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/to-string-tag');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/symbol/unscopables.js b/node_modules/core-js-pure/stable/symbol/unscopables.js
deleted file mode 100644
index a9d7820..0000000
--- a/node_modules/core-js-pure/stable/symbol/unscopables.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/symbol/unscopables');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/copy-within.js b/node_modules/core-js-pure/stable/typed-array/copy-within.js
deleted file mode 100644
index 1352cec..0000000
--- a/node_modules/core-js-pure/stable/typed-array/copy-within.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.copy-within');
diff --git a/node_modules/core-js-pure/stable/typed-array/entries.js b/node_modules/core-js-pure/stable/typed-array/entries.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/stable/typed-array/entries.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/stable/typed-array/every.js b/node_modules/core-js-pure/stable/typed-array/every.js
deleted file mode 100644
index 681164b..0000000
--- a/node_modules/core-js-pure/stable/typed-array/every.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.every');
diff --git a/node_modules/core-js-pure/stable/typed-array/fill.js b/node_modules/core-js-pure/stable/typed-array/fill.js
deleted file mode 100644
index 4d92ac6..0000000
--- a/node_modules/core-js-pure/stable/typed-array/fill.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.fill');
diff --git a/node_modules/core-js-pure/stable/typed-array/filter.js b/node_modules/core-js-pure/stable/typed-array/filter.js
deleted file mode 100644
index 7d0a630..0000000
--- a/node_modules/core-js-pure/stable/typed-array/filter.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.filter');
diff --git a/node_modules/core-js-pure/stable/typed-array/find-index.js b/node_modules/core-js-pure/stable/typed-array/find-index.js
deleted file mode 100644
index 039cd5e..0000000
--- a/node_modules/core-js-pure/stable/typed-array/find-index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find-index');
diff --git a/node_modules/core-js-pure/stable/typed-array/find.js b/node_modules/core-js-pure/stable/typed-array/find.js
deleted file mode 100644
index b3251b9..0000000
--- a/node_modules/core-js-pure/stable/typed-array/find.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.find');
diff --git a/node_modules/core-js-pure/stable/typed-array/float32-array.js b/node_modules/core-js-pure/stable/typed-array/float32-array.js
deleted file mode 100644
index c16ee63..0000000
--- a/node_modules/core-js-pure/stable/typed-array/float32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/float32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/float64-array.js b/node_modules/core-js-pure/stable/typed-array/float64-array.js
deleted file mode 100644
index 445dc3d..0000000
--- a/node_modules/core-js-pure/stable/typed-array/float64-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/float64-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/for-each.js b/node_modules/core-js-pure/stable/typed-array/for-each.js
deleted file mode 100644
index defe03a..0000000
--- a/node_modules/core-js-pure/stable/typed-array/for-each.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.for-each');
diff --git a/node_modules/core-js-pure/stable/typed-array/from.js b/node_modules/core-js-pure/stable/typed-array/from.js
deleted file mode 100644
index e0f3444..0000000
--- a/node_modules/core-js-pure/stable/typed-array/from.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.from');
diff --git a/node_modules/core-js-pure/stable/typed-array/includes.js b/node_modules/core-js-pure/stable/typed-array/includes.js
deleted file mode 100644
index 5ff65f9..0000000
--- a/node_modules/core-js-pure/stable/typed-array/includes.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.includes');
diff --git a/node_modules/core-js-pure/stable/typed-array/index-of.js b/node_modules/core-js-pure/stable/typed-array/index-of.js
deleted file mode 100644
index 87081c0..0000000
--- a/node_modules/core-js-pure/stable/typed-array/index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.index-of');
diff --git a/node_modules/core-js-pure/stable/typed-array/index.js b/node_modules/core-js-pure/stable/typed-array/index.js
deleted file mode 100644
index 20a271d..0000000
--- a/node_modules/core-js-pure/stable/typed-array/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/int16-array.js b/node_modules/core-js-pure/stable/typed-array/int16-array.js
deleted file mode 100644
index 7ffdbae..0000000
--- a/node_modules/core-js-pure/stable/typed-array/int16-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int16-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/int32-array.js b/node_modules/core-js-pure/stable/typed-array/int32-array.js
deleted file mode 100644
index bd2e75a..0000000
--- a/node_modules/core-js-pure/stable/typed-array/int32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/int8-array.js b/node_modules/core-js-pure/stable/typed-array/int8-array.js
deleted file mode 100644
index 8f1a54b..0000000
--- a/node_modules/core-js-pure/stable/typed-array/int8-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/int8-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/iterator.js b/node_modules/core-js-pure/stable/typed-array/iterator.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/stable/typed-array/iterator.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/stable/typed-array/join.js b/node_modules/core-js-pure/stable/typed-array/join.js
deleted file mode 100644
index 431129c..0000000
--- a/node_modules/core-js-pure/stable/typed-array/join.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.join');
diff --git a/node_modules/core-js-pure/stable/typed-array/keys.js b/node_modules/core-js-pure/stable/typed-array/keys.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/stable/typed-array/keys.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/stable/typed-array/last-index-of.js b/node_modules/core-js-pure/stable/typed-array/last-index-of.js
deleted file mode 100644
index 5682bf4..0000000
--- a/node_modules/core-js-pure/stable/typed-array/last-index-of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.last-index-of');
diff --git a/node_modules/core-js-pure/stable/typed-array/map.js b/node_modules/core-js-pure/stable/typed-array/map.js
deleted file mode 100644
index db08fed..0000000
--- a/node_modules/core-js-pure/stable/typed-array/map.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.map');
diff --git a/node_modules/core-js-pure/stable/typed-array/of.js b/node_modules/core-js-pure/stable/typed-array/of.js
deleted file mode 100644
index 121bf5e..0000000
--- a/node_modules/core-js-pure/stable/typed-array/of.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.of');
diff --git a/node_modules/core-js-pure/stable/typed-array/reduce-right.js b/node_modules/core-js-pure/stable/typed-array/reduce-right.js
deleted file mode 100644
index cbd321f..0000000
--- a/node_modules/core-js-pure/stable/typed-array/reduce-right.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce-right');
diff --git a/node_modules/core-js-pure/stable/typed-array/reduce.js b/node_modules/core-js-pure/stable/typed-array/reduce.js
deleted file mode 100644
index e2a6f28..0000000
--- a/node_modules/core-js-pure/stable/typed-array/reduce.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reduce');
diff --git a/node_modules/core-js-pure/stable/typed-array/reverse.js b/node_modules/core-js-pure/stable/typed-array/reverse.js
deleted file mode 100644
index 14995f4..0000000
--- a/node_modules/core-js-pure/stable/typed-array/reverse.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.reverse');
diff --git a/node_modules/core-js-pure/stable/typed-array/set.js b/node_modules/core-js-pure/stable/typed-array/set.js
deleted file mode 100644
index 5330e22..0000000
--- a/node_modules/core-js-pure/stable/typed-array/set.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.set');
diff --git a/node_modules/core-js-pure/stable/typed-array/slice.js b/node_modules/core-js-pure/stable/typed-array/slice.js
deleted file mode 100644
index 37fb8c1..0000000
--- a/node_modules/core-js-pure/stable/typed-array/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.slice');
diff --git a/node_modules/core-js-pure/stable/typed-array/some.js b/node_modules/core-js-pure/stable/typed-array/some.js
deleted file mode 100644
index 495c322..0000000
--- a/node_modules/core-js-pure/stable/typed-array/some.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.some');
diff --git a/node_modules/core-js-pure/stable/typed-array/sort.js b/node_modules/core-js-pure/stable/typed-array/sort.js
deleted file mode 100644
index d6c7e30..0000000
--- a/node_modules/core-js-pure/stable/typed-array/sort.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.sort');
diff --git a/node_modules/core-js-pure/stable/typed-array/subarray.js b/node_modules/core-js-pure/stable/typed-array/subarray.js
deleted file mode 100644
index dbad4ca..0000000
--- a/node_modules/core-js-pure/stable/typed-array/subarray.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.subarray');
diff --git a/node_modules/core-js-pure/stable/typed-array/to-locale-string.js b/node_modules/core-js-pure/stable/typed-array/to-locale-string.js
deleted file mode 100644
index 12c809e..0000000
--- a/node_modules/core-js-pure/stable/typed-array/to-locale-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-locale-string');
diff --git a/node_modules/core-js-pure/stable/typed-array/to-string.js b/node_modules/core-js-pure/stable/typed-array/to-string.js
deleted file mode 100644
index bf94160..0000000
--- a/node_modules/core-js-pure/stable/typed-array/to-string.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.to-string');
diff --git a/node_modules/core-js-pure/stable/typed-array/uint16-array.js b/node_modules/core-js-pure/stable/typed-array/uint16-array.js
deleted file mode 100644
index f35dc05..0000000
--- a/node_modules/core-js-pure/stable/typed-array/uint16-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint16-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/uint32-array.js b/node_modules/core-js-pure/stable/typed-array/uint32-array.js
deleted file mode 100644
index 197c8de..0000000
--- a/node_modules/core-js-pure/stable/typed-array/uint32-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint32-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/uint8-array.js b/node_modules/core-js-pure/stable/typed-array/uint8-array.js
deleted file mode 100644
index 7d853e4..0000000
--- a/node_modules/core-js-pure/stable/typed-array/uint8-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint8-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/uint8-clamped-array.js b/node_modules/core-js-pure/stable/typed-array/uint8-clamped-array.js
deleted file mode 100644
index a1e131c..0000000
--- a/node_modules/core-js-pure/stable/typed-array/uint8-clamped-array.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/typed-array/uint8-clamped-array');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/typed-array/values.js b/node_modules/core-js-pure/stable/typed-array/values.js
deleted file mode 100644
index 66cc6dc..0000000
--- a/node_modules/core-js-pure/stable/typed-array/values.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/es.typed-array.iterator');
diff --git a/node_modules/core-js-pure/stable/url-search-params/index.js b/node_modules/core-js-pure/stable/url-search-params/index.js
deleted file mode 100644
index bf9b50d..0000000
--- a/node_modules/core-js-pure/stable/url-search-params/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../web/url-search-params');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/url/index.js b/node_modules/core-js-pure/stable/url/index.js
deleted file mode 100644
index 750f27f..0000000
--- a/node_modules/core-js-pure/stable/url/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../web/url');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/url/to-json.js b/node_modules/core-js-pure/stable/url/to-json.js
deleted file mode 100644
index 0d841b6..0000000
--- a/node_modules/core-js-pure/stable/url/to-json.js
+++ /dev/null
@@ -1 +0,0 @@
-require('../../modules/web.url.to-json');
diff --git a/node_modules/core-js-pure/stable/weak-map/index.js b/node_modules/core-js-pure/stable/weak-map/index.js
deleted file mode 100644
index 0722356..0000000
--- a/node_modules/core-js-pure/stable/weak-map/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/weak-map');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stable/weak-set/index.js b/node_modules/core-js-pure/stable/weak-set/index.js
deleted file mode 100644
index 0dd555c..0000000
--- a/node_modules/core-js-pure/stable/weak-set/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var parent = require('../../es/weak-set');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stage/0.js b/node_modules/core-js-pure/stage/0.js
deleted file mode 100644
index bdcf27a..0000000
--- a/node_modules/core-js-pure/stage/0.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../proposals/efficient-64-bit-arithmetic');
-require('../proposals/string-at');
-require('../proposals/url');
-var parent = require('./1');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stage/1.js b/node_modules/core-js-pure/stage/1.js
deleted file mode 100644
index bff9b62..0000000
--- a/node_modules/core-js-pure/stage/1.js
+++ /dev/null
@@ -1,16 +0,0 @@
-require('../proposals/array-last');
-require('../proposals/collection-methods');
-require('../proposals/collection-of-from');
-require('../proposals/keys-composition');
-require('../proposals/math-extensions');
-require('../proposals/math-signbit');
-require('../proposals/number-from-string');
-require('../proposals/object-iteration');
-require('../proposals/observable');
-require('../proposals/pattern-matching');
-require('../proposals/promise-try');
-require('../proposals/seeded-random');
-require('../proposals/string-code-points');
-var parent = require('./2');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stage/2.js b/node_modules/core-js-pure/stage/2.js
deleted file mode 100644
index ce3af1a..0000000
--- a/node_modules/core-js-pure/stage/2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-require('../proposals/array-is-template-object');
-require('../proposals/iterator-helpers');
-require('../proposals/map-upsert');
-require('../proposals/set-methods');
-require('../proposals/using-statement');
-var parent = require('./3');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stage/3.js b/node_modules/core-js-pure/stage/3.js
deleted file mode 100644
index 4d694c9..0000000
--- a/node_modules/core-js-pure/stage/3.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../proposals/promise-any');
-require('../proposals/string-replace-all');
-var parent = require('./4');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/stage/4.js b/node_modules/core-js-pure/stage/4.js
deleted file mode 100644
index b9b4497..0000000
--- a/node_modules/core-js-pure/stage/4.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../proposals/global-this');
-require('../proposals/promise-all-settled');
-require('../proposals/string-match-all');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/stage/README.md b/node_modules/core-js-pure/stage/README.md
deleted file mode 100644
index 0da7eae..0000000
--- a/node_modules/core-js-pure/stage/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains entry points for [ECMAScript proposals](https://github.com/zloirock/core-js/tree/v3#ecmascript-proposals) with dependencies.
diff --git a/node_modules/core-js-pure/stage/index.js b/node_modules/core-js-pure/stage/index.js
deleted file mode 100644
index 942545c..0000000
--- a/node_modules/core-js-pure/stage/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var proposals = require('./pre');
-
-module.exports = proposals;
diff --git a/node_modules/core-js-pure/stage/pre.js b/node_modules/core-js-pure/stage/pre.js
deleted file mode 100644
index e37249e..0000000
--- a/node_modules/core-js-pure/stage/pre.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../proposals/reflect-metadata');
-var parent = require('./0');
-
-module.exports = parent;
diff --git a/node_modules/core-js-pure/web/README.md b/node_modules/core-js-pure/web/README.md
deleted file mode 100644
index 40ff72a..0000000
--- a/node_modules/core-js-pure/web/README.md
+++ /dev/null
@@ -1 +0,0 @@
-This folder contains entry points for features from [WHATWG / W3C](https://github.com/zloirock/core-js/tree/v3#web-standards) with dependencies.
diff --git a/node_modules/core-js-pure/web/dom-collections.js b/node_modules/core-js-pure/web/dom-collections.js
deleted file mode 100644
index 0a5fe03..0000000
--- a/node_modules/core-js-pure/web/dom-collections.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('../modules/web.dom-collections.for-each');
-require('../modules/web.dom-collections.iterator');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/web/immediate.js b/node_modules/core-js-pure/web/immediate.js
deleted file mode 100644
index 2f0c025..0000000
--- a/node_modules/core-js-pure/web/immediate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.immediate');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/web/index.js b/node_modules/core-js-pure/web/index.js
deleted file mode 100644
index 9f13832..0000000
--- a/node_modules/core-js-pure/web/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-require('../modules/web.dom-collections.for-each');
-require('../modules/web.dom-collections.iterator');
-require('../modules/web.immediate');
-require('../modules/web.queue-microtask');
-require('../modules/web.timers');
-require('../modules/web.url');
-require('../modules/web.url.to-json');
-require('../modules/web.url-search-params');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/web/queue-microtask.js b/node_modules/core-js-pure/web/queue-microtask.js
deleted file mode 100644
index 10f9f30..0000000
--- a/node_modules/core-js-pure/web/queue-microtask.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.queue-microtask');
-var path = require('../internals/path');
-
-module.exports = path.queueMicrotask;
diff --git a/node_modules/core-js-pure/web/timers.js b/node_modules/core-js-pure/web/timers.js
deleted file mode 100644
index 9c4106f..0000000
--- a/node_modules/core-js-pure/web/timers.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.timers');
-var path = require('../internals/path');
-
-module.exports = path;
diff --git a/node_modules/core-js-pure/web/url-search-params.js b/node_modules/core-js-pure/web/url-search-params.js
deleted file mode 100644
index 9434608..0000000
--- a/node_modules/core-js-pure/web/url-search-params.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/web.url-search-params');
-var path = require('../internals/path');
-
-module.exports = path.URLSearchParams;
diff --git a/node_modules/core-js-pure/web/url.js b/node_modules/core-js-pure/web/url.js
deleted file mode 100644
index 2faed2e..0000000
--- a/node_modules/core-js-pure/web/url.js
+++ /dev/null
@@ -1,6 +0,0 @@
-require('../modules/web.url');
-require('../modules/web.url.to-json');
-require('../modules/web.url-search-params');
-var path = require('../internals/path');
-
-module.exports = path.URL;
diff --git a/node_modules/cross-fetch/LICENSE b/node_modules/cross-fetch/LICENSE
deleted file mode 100644
index 9198b86..0000000
--- a/node_modules/cross-fetch/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Leonardo Quixadá
-
-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.
diff --git a/node_modules/cross-fetch/README.md b/node_modules/cross-fetch/README.md
deleted file mode 100644
index 63571e2..0000000
--- a/node_modules/cross-fetch/README.md
+++ /dev/null
@@ -1,190 +0,0 @@
-cross-fetch<br>
-[![Build Status](https://travis-ci.org/lquixada/cross-fetch.svg?branch=master)](https://travis-ci.org/lquixada/cross-fetch)
-[![Build Status](https://saucelabs.com/buildstatus/cross-fetch)](https://saucelabs.com/u/cross-fetch)
-[![codecov](https://codecov.io/gh/lquixada/cross-fetch/branch/master/graph/badge.svg)](https://codecov.io/gh/lquixada/cross-fetch)
-[![dependencies Status](https://david-dm.org/lquixada/cross-fetch/status.svg)](https://david-dm.org/lquixada/cross-fetch)
-[![NPM Version](https://img.shields.io/npm/v/cross-fetch.svg?branch=master)](https://www.npmjs.com/package/cross-fetch)
-[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
-================
-
-Universal WHATWG Fetch API for Node, Browsers and React Native. The scenario that cross-fetch really shines is when the same javascript codebase needs to run on different platforms.
-
-- **Platform agnostic**: browsers, node or react native
-- **Optional polyfill**: it's up to you if something is going to be added to the global object or not
-- **Simple interface**: no instantiation, no configuration and no extra dependency
-- **WHATWG compliant**: it works the same way wherever your code runs
-- **Updated**: lastest version of whatwg-fetch and node-fetch used
-
-
-* * *
-
-## Table of Contents
-
--   [Install](#install)
--   [Usage](#usage)
--   [Demo & API](#demo--api)
--   [FAQ](#faq)
--   [Supported environments](#supported-environments)
--   [Thanks](#thanks)
--   [License](#license)
--   [Author](#author)
--   [Sponsors](#sponsors)
-
-* * *
-
-## Install
-
-```sh
-npm install --save cross-fetch
-```
-
-As a [ponyfill](https://github.com/sindresorhus/ponyfill):
-
-```javascript
-// Using ES6 modules with Babel or TypeScript
-import fetch from 'cross-fetch';
-
-// Using CommonJS modules
-const fetch = require('cross-fetch');
-```
-
-As a polyfill:
-
-```javascript
-// Using ES6 modules
-import 'cross-fetch/polyfill';
-
-// Using CommonJS modules
-require('cross-fetch/polyfill');
-```
-
-
-The CDN build is also available on unpkg:
-
-```html
-<script src="//unpkg.com/cross-fetch/dist/cross-fetch.js"></script>
-```
-
-This adds the fetch function to the window object. Note that this is not UMD compatible.
-
-
-* * *
-
-## Usage
-
-With [promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise):
-
-```javascript
-import fetch from 'cross-fetch';
-// Or just: import 'cross-fetch/polyfill';
-
-fetch('//api.github.com/users/lquixada')
-  .then(res => {
-    if (res.status >= 400) {
-      throw new Error("Bad response from server");
-    }
-    return res.json();
-  })
-  .then(user => {
-    console.log(user);
-  })
-  .catch(err => {
-    console.error(err);
-  });
-```
-
-With [async/await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function):
-
-```javascript
-import fetch from 'cross-fetch';
-// Or just: import 'cross-fetch/polyfill';
-
-(async () => {
-  try {
-    const res = await fetch('//api.github.com/users/lquixada');
-    
-    if (res.status >= 400) {
-      throw new Error("Bad response from server");
-    }
-    
-    const user = await res.json();
-  
-    console.log(user);
-  } catch (err) {
-    console.error(err);
-  }
-})();
-```
-
-> ⚠️ **Warning**: If you're in an environment that doesn't support Promises such as Internet Explorer, you must install an ES6 Promise compatible polyfill. [es6-promise](https://github.com/jakearchibald/es6-promise) is suggested.
-
-
-## Demo & API
-
-You can find a comprehensive doc at [Github's fetch](https://github.github.io/fetch/) page. If you want to play with cross-fetch, these resources can be useful:
-
-* [**JSFiddle playground**](https://jsfiddle.net/lquixada/3ypqgacp/) ➡️
-* [**Public test suite**](https://lquixada.github.io/cross-fetch/test/saucelabs/) ➡️
-
-> **Tip**: Run theses resources on various browsers and with different settings (for instance: cross-domain requests, wrong urls or text requests). Don't forget to open the console in the test suite page and play around.
-
-
-## FAQ
-
-#### Yet another fetch library?
-
-I did a lot of research in order to find a fetch library that could be simple, cross-platorm and provide polyfill as an option. There's a plethora of libs out there but none could match those requirements.
-
-
-#### Why not isomorphic-fetch?
-
-My preferred library used to be [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) but it has this [bug](https://github.com/matthew-andrews/isomorphic-fetch/issues/125) that prevents it from running in a react native environment. It seems it will never be fixed since the author hasn't been commiting for more than a year. That means dependencies are outdated as well. 
-
-
-#### Why polyfill might not be a good idea?
-
-In a word? Risk. If the spec changes in the future, it might be problematic to debug. Read more about it on [sindresorhus's ponyfill](https://github.com/sindresorhus/ponyfill#how-are-ponyfills-better-than-polyfills) page. It's up to you if you're fine with it or not.
-
-
-#### How does cross-fetch work?
-
-Just like isomorphic-fetch, it is just a proxy. If you're in node, it delivers you the [node-fetch](https://www.npmjs.com/package/node-fetch) library, if you're in a browser or React Native, it delivers you the github's [whatwg-fetch](https://github.com/github/fetch/). The same strategy applies whether you're using polyfill or ponyfill.
-
-
-## Who's Using It?
-
-* [VulcanJS](http://vulcanjs.org)
-* [graphql-request](https://github.com/graphcool/graphql-request)
-* [Swagger](https://swagger.io/)
-
-
-## Supported environments
-
-* Node 6+
-* React-Native
-
-[![Build Status](https://saucelabs.com/browser-matrix/cross-fetch.svg)](https://saucelabs.com/u/cross-fetch)
-
-
-## Thanks
-
-Heavily inspired by the works of [matthew-andrews](https://github.com/matthew-andrews). Kudos to him!
-
-
-## License
-
-cross-fetch is licensed under the [MIT license](https://github.com/lquixada/cross-fetch/blob/master/LICENSE) © [Leonardo Quixadá](https://twitter.com/lquixada/)
-
-
-## Author
-
-|[![@lquixada](https://avatars0.githubusercontent.com/u/195494?v=4&s=96)](https://github.com/lquixada)|
-|:---:|
-|[@lquixada](http://www.github.com/lquixada)|
-
-
-## Sponsors
-
-Manual cross-browser testing is provided by the following sponsor:
-
-[![BrowserStack](./assets/browserstack-logo.png)](https://www.browserstack.com/)
diff --git a/node_modules/cross-fetch/dist/browser-polyfill.js b/node_modules/cross-fetch/dist/browser-polyfill.js
deleted file mode 100644
index 202b8ba..0000000
--- a/node_modules/cross-fetch/dist/browser-polyfill.js
+++ /dev/null
@@ -1,465 +0,0 @@
-(function(self) {
-
-  if (self.fetch) {
-    return
-  }
-
-  var support = {
-    searchParams: 'URLSearchParams' in self,
-    iterable: 'Symbol' in self && 'iterator' in Symbol,
-    blob: 'FileReader' in self && 'Blob' in self && (function() {
-      try {
-        new Blob();
-        return true
-      } catch(e) {
-        return false
-      }
-    })(),
-    formData: 'FormData' in self,
-    arrayBuffer: 'ArrayBuffer' in self
-  };
-
-  if (support.arrayBuffer) {
-    var viewClasses = [
-      '[object Int8Array]',
-      '[object Uint8Array]',
-      '[object Uint8ClampedArray]',
-      '[object Int16Array]',
-      '[object Uint16Array]',
-      '[object Int32Array]',
-      '[object Uint32Array]',
-      '[object Float32Array]',
-      '[object Float64Array]'
-    ];
-
-    var isDataView = function(obj) {
-      return obj && DataView.prototype.isPrototypeOf(obj)
-    };
-
-    var isArrayBufferView = ArrayBuffer.isView || function(obj) {
-      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
-    };
-  }
-
-  function normalizeName(name) {
-    if (typeof name !== 'string') {
-      name = String(name);
-    }
-    if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
-      throw new TypeError('Invalid character in header field name')
-    }
-    return name.toLowerCase()
-  }
-
-  function normalizeValue(value) {
-    if (typeof value !== 'string') {
-      value = String(value);
-    }
-    return value
-  }
-
-  // Build a destructive iterator for the value list
-  function iteratorFor(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return {done: value === undefined, value: value}
-      }
-    };
-
-    if (support.iterable) {
-      iterator[Symbol.iterator] = function() {
-        return iterator
-      };
-    }
-
-    return iterator
-  }
-
-  function Headers(headers) {
-    this.map = {};
-
-    if (headers instanceof Headers) {
-      headers.forEach(function(value, name) {
-        this.append(name, value);
-      }, this);
-    } else if (Array.isArray(headers)) {
-      headers.forEach(function(header) {
-        this.append(header[0], header[1]);
-      }, this);
-    } else if (headers) {
-      Object.getOwnPropertyNames(headers).forEach(function(name) {
-        this.append(name, headers[name]);
-      }, this);
-    }
-  }
-
-  Headers.prototype.append = function(name, value) {
-    name = normalizeName(name);
-    value = normalizeValue(value);
-    var oldValue = this.map[name];
-    this.map[name] = oldValue ? oldValue+','+value : value;
-  };
-
-  Headers.prototype['delete'] = function(name) {
-    delete this.map[normalizeName(name)];
-  };
-
-  Headers.prototype.get = function(name) {
-    name = normalizeName(name);
-    return this.has(name) ? this.map[name] : null
-  };
-
-  Headers.prototype.has = function(name) {
-    return this.map.hasOwnProperty(normalizeName(name))
-  };
-
-  Headers.prototype.set = function(name, value) {
-    this.map[normalizeName(name)] = normalizeValue(value);
-  };
-
-  Headers.prototype.forEach = function(callback, thisArg) {
-    for (var name in this.map) {
-      if (this.map.hasOwnProperty(name)) {
-        callback.call(thisArg, this.map[name], name, this);
-      }
-    }
-  };
-
-  Headers.prototype.keys = function() {
-    var items = [];
-    this.forEach(function(value, name) { items.push(name); });
-    return iteratorFor(items)
-  };
-
-  Headers.prototype.values = function() {
-    var items = [];
-    this.forEach(function(value) { items.push(value); });
-    return iteratorFor(items)
-  };
-
-  Headers.prototype.entries = function() {
-    var items = [];
-    this.forEach(function(value, name) { items.push([name, value]); });
-    return iteratorFor(items)
-  };
-
-  if (support.iterable) {
-    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;
-  }
-
-  function consumed(body) {
-    if (body.bodyUsed) {
-      return Promise.reject(new TypeError('Already read'))
-    }
-    body.bodyUsed = true;
-  }
-
-  function fileReaderReady(reader) {
-    return new Promise(function(resolve, reject) {
-      reader.onload = function() {
-        resolve(reader.result);
-      };
-      reader.onerror = function() {
-        reject(reader.error);
-      };
-    })
-  }
-
-  function readBlobAsArrayBuffer(blob) {
-    var reader = new FileReader();
-    var promise = fileReaderReady(reader);
-    reader.readAsArrayBuffer(blob);
-    return promise
-  }
-
-  function readBlobAsText(blob) {
-    var reader = new FileReader();
-    var promise = fileReaderReady(reader);
-    reader.readAsText(blob);
-    return promise
-  }
-
-  function readArrayBufferAsText(buf) {
-    var view = new Uint8Array(buf);
-    var chars = new Array(view.length);
-
-    for (var i = 0; i < view.length; i++) {
-      chars[i] = String.fromCharCode(view[i]);
-    }
-    return chars.join('')
-  }
-
-  function bufferClone(buf) {
-    if (buf.slice) {
-      return buf.slice(0)
-    } else {
-      var view = new Uint8Array(buf.byteLength);
-      view.set(new Uint8Array(buf));
-      return view.buffer
-    }
-  }
-
-  function Body() {
-    this.bodyUsed = false;
-
-    this._initBody = function(body) {
-      this._bodyInit = body;
-      if (!body) {
-        this._bodyText = '';
-      } else if (typeof body === 'string') {
-        this._bodyText = body;
-      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
-        this._bodyBlob = body;
-      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
-        this._bodyFormData = body;
-      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-        this._bodyText = body.toString();
-      } else if (support.arrayBuffer && support.blob && isDataView(body)) {
-        this._bodyArrayBuffer = bufferClone(body.buffer);
-        // IE 10-11 can't handle a DataView body.
-        this._bodyInit = new Blob([this._bodyArrayBuffer]);
-      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
-        this._bodyArrayBuffer = bufferClone(body);
-      } else {
-        throw new Error('unsupported BodyInit type')
-      }
-
-      if (!this.headers.get('content-type')) {
-        if (typeof body === 'string') {
-          this.headers.set('content-type', 'text/plain;charset=UTF-8');
-        } else if (this._bodyBlob && this._bodyBlob.type) {
-          this.headers.set('content-type', this._bodyBlob.type);
-        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
-        }
-      }
-    };
-
-    if (support.blob) {
-      this.blob = function() {
-        var rejected = consumed(this);
-        if (rejected) {
-          return rejected
-        }
-
-        if (this._bodyBlob) {
-          return Promise.resolve(this._bodyBlob)
-        } else if (this._bodyArrayBuffer) {
-          return Promise.resolve(new Blob([this._bodyArrayBuffer]))
-        } else if (this._bodyFormData) {
-          throw new Error('could not read FormData body as blob')
-        } else {
-          return Promise.resolve(new Blob([this._bodyText]))
-        }
-      };
-
-      this.arrayBuffer = function() {
-        if (this._bodyArrayBuffer) {
-          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
-        } else {
-          return this.blob().then(readBlobAsArrayBuffer)
-        }
-      };
-    }
-
-    this.text = function() {
-      var rejected = consumed(this);
-      if (rejected) {
-        return rejected
-      }
-
-      if (this._bodyBlob) {
-        return readBlobAsText(this._bodyBlob)
-      } else if (this._bodyArrayBuffer) {
-        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
-      } else if (this._bodyFormData) {
-        throw new Error('could not read FormData body as text')
-      } else {
-        return Promise.resolve(this._bodyText)
-      }
-    };
-
-    if (support.formData) {
-      this.formData = function() {
-        return this.text().then(decode)
-      };
-    }
-
-    this.json = function() {
-      return this.text().then(JSON.parse)
-    };
-
-    return this
-  }
-
-  // HTTP methods whose capitalization should be normalized
-  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];
-
-  function normalizeMethod(method) {
-    var upcased = method.toUpperCase();
-    return (methods.indexOf(upcased) > -1) ? upcased : method
-  }
-
-  function Request(input, options) {
-    options = options || {};
-    var body = options.body;
-
-    if (input instanceof Request) {
-      if (input.bodyUsed) {
-        throw new TypeError('Already read')
-      }
-      this.url = input.url;
-      this.credentials = input.credentials;
-      if (!options.headers) {
-        this.headers = new Headers(input.headers);
-      }
-      this.method = input.method;
-      this.mode = input.mode;
-      if (!body && input._bodyInit != null) {
-        body = input._bodyInit;
-        input.bodyUsed = true;
-      }
-    } else {
-      this.url = String(input);
-    }
-
-    this.credentials = options.credentials || this.credentials || 'omit';
-    if (options.headers || !this.headers) {
-      this.headers = new Headers(options.headers);
-    }
-    this.method = normalizeMethod(options.method || this.method || 'GET');
-    this.mode = options.mode || this.mode || null;
-    this.referrer = null;
-
-    if ((this.method === 'GET' || this.method === 'HEAD') && body) {
-      throw new TypeError('Body not allowed for GET or HEAD requests')
-    }
-    this._initBody(body);
-  }
-
-  Request.prototype.clone = function() {
-    return new Request(this, { body: this._bodyInit })
-  };
-
-  function decode(body) {
-    var form = new FormData();
-    body.trim().split('&').forEach(function(bytes) {
-      if (bytes) {
-        var split = bytes.split('=');
-        var name = split.shift().replace(/\+/g, ' ');
-        var value = split.join('=').replace(/\+/g, ' ');
-        form.append(decodeURIComponent(name), decodeURIComponent(value));
-      }
-    });
-    return form
-  }
-
-  function parseHeaders(rawHeaders) {
-    var headers = new Headers();
-    // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
-    // https://tools.ietf.org/html/rfc7230#section-3.2
-    var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
-    preProcessedHeaders.split(/\r?\n/).forEach(function(line) {
-      var parts = line.split(':');
-      var key = parts.shift().trim();
-      if (key) {
-        var value = parts.join(':').trim();
-        headers.append(key, value);
-      }
-    });
-    return headers
-  }
-
-  Body.call(Request.prototype);
-
-  function Response(bodyInit, options) {
-    if (!options) {
-      options = {};
-    }
-
-    this.type = 'default';
-    this.status = options.status === undefined ? 200 : options.status;
-    this.ok = this.status >= 200 && this.status < 300;
-    this.statusText = 'statusText' in options ? options.statusText : 'OK';
-    this.headers = new Headers(options.headers);
-    this.url = options.url || '';
-    this._initBody(bodyInit);
-  }
-
-  Body.call(Response.prototype);
-
-  Response.prototype.clone = function() {
-    return new Response(this._bodyInit, {
-      status: this.status,
-      statusText: this.statusText,
-      headers: new Headers(this.headers),
-      url: this.url
-    })
-  };
-
-  Response.error = function() {
-    var response = new Response(null, {status: 0, statusText: ''});
-    response.type = 'error';
-    return response
-  };
-
-  var redirectStatuses = [301, 302, 303, 307, 308];
-
-  Response.redirect = function(url, status) {
-    if (redirectStatuses.indexOf(status) === -1) {
-      throw new RangeError('Invalid status code')
-    }
-
-    return new Response(null, {status: status, headers: {location: url}})
-  };
-
-  self.Headers = Headers;
-  self.Request = Request;
-  self.Response = Response;
-
-  self.fetch = function(input, init) {
-    return new Promise(function(resolve, reject) {
-      var request = new Request(input, init);
-      var xhr = new XMLHttpRequest();
-
-      xhr.onload = function() {
-        var options = {
-          status: xhr.status,
-          statusText: xhr.statusText,
-          headers: parseHeaders(xhr.getAllResponseHeaders() || '')
-        };
-        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');
-        var body = 'response' in xhr ? xhr.response : xhr.responseText;
-        resolve(new Response(body, options));
-      };
-
-      xhr.onerror = function() {
-        reject(new TypeError('Network request failed'));
-      };
-
-      xhr.ontimeout = function() {
-        reject(new TypeError('Network request failed'));
-      };
-
-      xhr.open(request.method, request.url, true);
-
-      if (request.credentials === 'include') {
-        xhr.withCredentials = true;
-      } else if (request.credentials === 'omit') {
-        xhr.withCredentials = false;
-      }
-
-      if ('responseType' in xhr && support.blob) {
-        xhr.responseType = 'blob';
-      }
-
-      request.headers.forEach(function(value, name) {
-        xhr.setRequestHeader(name, value);
-      });
-
-      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);
-    })
-  };
-  self.fetch.polyfill = true;
-})(typeof self !== 'undefined' ? self : this);
diff --git a/node_modules/cross-fetch/dist/browser-ponyfill.js b/node_modules/cross-fetch/dist/browser-ponyfill.js
deleted file mode 100644
index b73508f..0000000
--- a/node_modules/cross-fetch/dist/browser-ponyfill.js
+++ /dev/null
@@ -1,480 +0,0 @@
-var __root__ = (function (root) {
-function F() { this.fetch = false; }
-F.prototype = root;
-return new F();
-})(typeof self !== 'undefined' ? self : this);
-(function(self) {
-
-(function(self) {
-
-  if (self.fetch) {
-    return
-  }
-
-  var support = {
-    searchParams: 'URLSearchParams' in self,
-    iterable: 'Symbol' in self && 'iterator' in Symbol,
-    blob: 'FileReader' in self && 'Blob' in self && (function() {
-      try {
-        new Blob();
-        return true
-      } catch(e) {
-        return false
-      }
-    })(),
-    formData: 'FormData' in self,
-    arrayBuffer: 'ArrayBuffer' in self
-  };
-
-  if (support.arrayBuffer) {
-    var viewClasses = [
-      '[object Int8Array]',
-      '[object Uint8Array]',
-      '[object Uint8ClampedArray]',
-      '[object Int16Array]',
-      '[object Uint16Array]',
-      '[object Int32Array]',
-      '[object Uint32Array]',
-      '[object Float32Array]',
-      '[object Float64Array]'
-    ];
-
-    var isDataView = function(obj) {
-      return obj && DataView.prototype.isPrototypeOf(obj)
-    };
-
-    var isArrayBufferView = ArrayBuffer.isView || function(obj) {
-      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
-    };
-  }
-
-  function normalizeName(name) {
-    if (typeof name !== 'string') {
-      name = String(name);
-    }
-    if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
-      throw new TypeError('Invalid character in header field name')
-    }
-    return name.toLowerCase()
-  }
-
-  function normalizeValue(value) {
-    if (typeof value !== 'string') {
-      value = String(value);
-    }
-    return value
-  }
-
-  // Build a destructive iterator for the value list
-  function iteratorFor(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift();
-        return {done: value === undefined, value: value}
-      }
-    };
-
-    if (support.iterable) {
-      iterator[Symbol.iterator] = function() {
-        return iterator
-      };
-    }
-
-    return iterator
-  }
-
-  function Headers(headers) {
-    this.map = {};
-
-    if (headers instanceof Headers) {
-      headers.forEach(function(value, name) {
-        this.append(name, value);
-      }, this);
-    } else if (Array.isArray(headers)) {
-      headers.forEach(function(header) {
-        this.append(header[0], header[1]);
-      }, this);
-    } else if (headers) {
-      Object.getOwnPropertyNames(headers).forEach(function(name) {
-        this.append(name, headers[name]);
-      }, this);
-    }
-  }
-
-  Headers.prototype.append = function(name, value) {
-    name = normalizeName(name);
-    value = normalizeValue(value);
-    var oldValue = this.map[name];
-    this.map[name] = oldValue ? oldValue+','+value : value;
-  };
-
-  Headers.prototype['delete'] = function(name) {
-    delete this.map[normalizeName(name)];
-  };
-
-  Headers.prototype.get = function(name) {
-    name = normalizeName(name);
-    return this.has(name) ? this.map[name] : null
-  };
-
-  Headers.prototype.has = function(name) {
-    return this.map.hasOwnProperty(normalizeName(name))
-  };
-
-  Headers.prototype.set = function(name, value) {
-    this.map[normalizeName(name)] = normalizeValue(value);
-  };
-
-  Headers.prototype.forEach = function(callback, thisArg) {
-    for (var name in this.map) {
-      if (this.map.hasOwnProperty(name)) {
-        callback.call(thisArg, this.map[name], name, this);
-      }
-    }
-  };
-
-  Headers.prototype.keys = function() {
-    var items = [];
-    this.forEach(function(value, name) { items.push(name); });
-    return iteratorFor(items)
-  };
-
-  Headers.prototype.values = function() {
-    var items = [];
-    this.forEach(function(value) { items.push(value); });
-    return iteratorFor(items)
-  };
-
-  Headers.prototype.entries = function() {
-    var items = [];
-    this.forEach(function(value, name) { items.push([name, value]); });
-    return iteratorFor(items)
-  };
-
-  if (support.iterable) {
-    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;
-  }
-
-  function consumed(body) {
-    if (body.bodyUsed) {
-      return Promise.reject(new TypeError('Already read'))
-    }
-    body.bodyUsed = true;
-  }
-
-  function fileReaderReady(reader) {
-    return new Promise(function(resolve, reject) {
-      reader.onload = function() {
-        resolve(reader.result);
-      };
-      reader.onerror = function() {
-        reject(reader.error);
-      };
-    })
-  }
-
-  function readBlobAsArrayBuffer(blob) {
-    var reader = new FileReader();
-    var promise = fileReaderReady(reader);
-    reader.readAsArrayBuffer(blob);
-    return promise
-  }
-
-  function readBlobAsText(blob) {
-    var reader = new FileReader();
-    var promise = fileReaderReady(reader);
-    reader.readAsText(blob);
-    return promise
-  }
-
-  function readArrayBufferAsText(buf) {
-    var view = new Uint8Array(buf);
-    var chars = new Array(view.length);
-
-    for (var i = 0; i < view.length; i++) {
-      chars[i] = String.fromCharCode(view[i]);
-    }
-    return chars.join('')
-  }
-
-  function bufferClone(buf) {
-    if (buf.slice) {
-      return buf.slice(0)
-    } else {
-      var view = new Uint8Array(buf.byteLength);
-      view.set(new Uint8Array(buf));
-      return view.buffer
-    }
-  }
-
-  function Body() {
-    this.bodyUsed = false;
-
-    this._initBody = function(body) {
-      this._bodyInit = body;
-      if (!body) {
-        this._bodyText = '';
-      } else if (typeof body === 'string') {
-        this._bodyText = body;
-      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
-        this._bodyBlob = body;
-      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
-        this._bodyFormData = body;
-      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-        this._bodyText = body.toString();
-      } else if (support.arrayBuffer && support.blob && isDataView(body)) {
-        this._bodyArrayBuffer = bufferClone(body.buffer);
-        // IE 10-11 can't handle a DataView body.
-        this._bodyInit = new Blob([this._bodyArrayBuffer]);
-      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
-        this._bodyArrayBuffer = bufferClone(body);
-      } else {
-        throw new Error('unsupported BodyInit type')
-      }
-
-      if (!this.headers.get('content-type')) {
-        if (typeof body === 'string') {
-          this.headers.set('content-type', 'text/plain;charset=UTF-8');
-        } else if (this._bodyBlob && this._bodyBlob.type) {
-          this.headers.set('content-type', this._bodyBlob.type);
-        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
-        }
-      }
-    };
-
-    if (support.blob) {
-      this.blob = function() {
-        var rejected = consumed(this);
-        if (rejected) {
-          return rejected
-        }
-
-        if (this._bodyBlob) {
-          return Promise.resolve(this._bodyBlob)
-        } else if (this._bodyArrayBuffer) {
-          return Promise.resolve(new Blob([this._bodyArrayBuffer]))
-        } else if (this._bodyFormData) {
-          throw new Error('could not read FormData body as blob')
-        } else {
-          return Promise.resolve(new Blob([this._bodyText]))
-        }
-      };
-
-      this.arrayBuffer = function() {
-        if (this._bodyArrayBuffer) {
-          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
-        } else {
-          return this.blob().then(readBlobAsArrayBuffer)
-        }
-      };
-    }
-
-    this.text = function() {
-      var rejected = consumed(this);
-      if (rejected) {
-        return rejected
-      }
-
-      if (this._bodyBlob) {
-        return readBlobAsText(this._bodyBlob)
-      } else if (this._bodyArrayBuffer) {
-        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
-      } else if (this._bodyFormData) {
-        throw new Error('could not read FormData body as text')
-      } else {
-        return Promise.resolve(this._bodyText)
-      }
-    };
-
-    if (support.formData) {
-      this.formData = function() {
-        return this.text().then(decode)
-      };
-    }
-
-    this.json = function() {
-      return this.text().then(JSON.parse)
-    };
-
-    return this
-  }
-
-  // HTTP methods whose capitalization should be normalized
-  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];
-
-  function normalizeMethod(method) {
-    var upcased = method.toUpperCase();
-    return (methods.indexOf(upcased) > -1) ? upcased : method
-  }
-
-  function Request(input, options) {
-    options = options || {};
-    var body = options.body;
-
-    if (input instanceof Request) {
-      if (input.bodyUsed) {
-        throw new TypeError('Already read')
-      }
-      this.url = input.url;
-      this.credentials = input.credentials;
-      if (!options.headers) {
-        this.headers = new Headers(input.headers);
-      }
-      this.method = input.method;
-      this.mode = input.mode;
-      if (!body && input._bodyInit != null) {
-        body = input._bodyInit;
-        input.bodyUsed = true;
-      }
-    } else {
-      this.url = String(input);
-    }
-
-    this.credentials = options.credentials || this.credentials || 'omit';
-    if (options.headers || !this.headers) {
-      this.headers = new Headers(options.headers);
-    }
-    this.method = normalizeMethod(options.method || this.method || 'GET');
-    this.mode = options.mode || this.mode || null;
-    this.referrer = null;
-
-    if ((this.method === 'GET' || this.method === 'HEAD') && body) {
-      throw new TypeError('Body not allowed for GET or HEAD requests')
-    }
-    this._initBody(body);
-  }
-
-  Request.prototype.clone = function() {
-    return new Request(this, { body: this._bodyInit })
-  };
-
-  function decode(body) {
-    var form = new FormData();
-    body.trim().split('&').forEach(function(bytes) {
-      if (bytes) {
-        var split = bytes.split('=');
-        var name = split.shift().replace(/\+/g, ' ');
-        var value = split.join('=').replace(/\+/g, ' ');
-        form.append(decodeURIComponent(name), decodeURIComponent(value));
-      }
-    });
-    return form
-  }
-
-  function parseHeaders(rawHeaders) {
-    var headers = new Headers();
-    // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
-    // https://tools.ietf.org/html/rfc7230#section-3.2
-    var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
-    preProcessedHeaders.split(/\r?\n/).forEach(function(line) {
-      var parts = line.split(':');
-      var key = parts.shift().trim();
-      if (key) {
-        var value = parts.join(':').trim();
-        headers.append(key, value);
-      }
-    });
-    return headers
-  }
-
-  Body.call(Request.prototype);
-
-  function Response(bodyInit, options) {
-    if (!options) {
-      options = {};
-    }
-
-    this.type = 'default';
-    this.status = options.status === undefined ? 200 : options.status;
-    this.ok = this.status >= 200 && this.status < 300;
-    this.statusText = 'statusText' in options ? options.statusText : 'OK';
-    this.headers = new Headers(options.headers);
-    this.url = options.url || '';
-    this._initBody(bodyInit);
-  }
-
-  Body.call(Response.prototype);
-
-  Response.prototype.clone = function() {
-    return new Response(this._bodyInit, {
-      status: this.status,
-      statusText: this.statusText,
-      headers: new Headers(this.headers),
-      url: this.url
-    })
-  };
-
-  Response.error = function() {
-    var response = new Response(null, {status: 0, statusText: ''});
-    response.type = 'error';
-    return response
-  };
-
-  var redirectStatuses = [301, 302, 303, 307, 308];
-
-  Response.redirect = function(url, status) {
-    if (redirectStatuses.indexOf(status) === -1) {
-      throw new RangeError('Invalid status code')
-    }
-
-    return new Response(null, {status: status, headers: {location: url}})
-  };
-
-  self.Headers = Headers;
-  self.Request = Request;
-  self.Response = Response;
-
-  self.fetch = function(input, init) {
-    return new Promise(function(resolve, reject) {
-      var request = new Request(input, init);
-      var xhr = new XMLHttpRequest();
-
-      xhr.onload = function() {
-        var options = {
-          status: xhr.status,
-          statusText: xhr.statusText,
-          headers: parseHeaders(xhr.getAllResponseHeaders() || '')
-        };
-        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');
-        var body = 'response' in xhr ? xhr.response : xhr.responseText;
-        resolve(new Response(body, options));
-      };
-
-      xhr.onerror = function() {
-        reject(new TypeError('Network request failed'));
-      };
-
-      xhr.ontimeout = function() {
-        reject(new TypeError('Network request failed'));
-      };
-
-      xhr.open(request.method, request.url, true);
-
-      if (request.credentials === 'include') {
-        xhr.withCredentials = true;
-      } else if (request.credentials === 'omit') {
-        xhr.withCredentials = false;
-      }
-
-      if ('responseType' in xhr && support.blob) {
-        xhr.responseType = 'blob';
-      }
-
-      request.headers.forEach(function(value, name) {
-        xhr.setRequestHeader(name, value);
-      });
-
-      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);
-    })
-  };
-  self.fetch.polyfill = true;
-})(typeof self !== 'undefined' ? self : this);
-}).call(__root__, void(0));
-var fetch = __root__.fetch;
-var Response = fetch.Response = __root__.Response;
-var Request = fetch.Request = __root__.Request;
-var Headers = fetch.Headers = __root__.Headers;
-if (typeof module === 'object' && module.exports) {
-module.exports = fetch;
-}
diff --git a/node_modules/cross-fetch/dist/cross-fetch.js b/node_modules/cross-fetch/dist/cross-fetch.js
deleted file mode 100644
index 3670429..0000000
--- a/node_modules/cross-fetch/dist/cross-fetch.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t){if(!t.fetch){var e="URLSearchParams"in t,r="Symbol"in t&&"iterator"in Symbol,s="FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),o="FormData"in t,n="ArrayBuffer"in t;if(n)var i=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=function(t){return t&&DataView.prototype.isPrototypeOf(t)},h=ArrayBuffer.isView||function(t){return t&&-1<i.indexOf(Object.prototype.toString.call(t))};l.prototype.append=function(t,e){t=d(t),e=y(e);var r=this.map[t];this.map[t]=r?r+","+e:e},l.prototype.delete=function(t){delete this.map[d(t)]},l.prototype.get=function(t){return t=d(t),this.has(t)?this.map[t]:null},l.prototype.has=function(t){return this.map.hasOwnProperty(d(t))},l.prototype.set=function(t,e){this.map[d(t)]=y(e)},l.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},l.prototype.keys=function(){var r=[];return this.forEach(function(t,e){r.push(e)}),p(r)},l.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),p(e)},l.prototype.entries=function(){var r=[];return this.forEach(function(t,e){r.push([e,t])}),p(r)},r&&(l.prototype[Symbol.iterator]=l.prototype.entries);var u=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];_.prototype.clone=function(){return new _(this,{body:this._bodyInit})},v.call(_.prototype),v.call(B.prototype),B.prototype.clone=function(){return new B(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new l(this.headers),url:this.url})},B.error=function(){var t=new B(null,{status:0,statusText:""});return t.type="error",t};var f=[301,302,303,307,308];B.redirect=function(t,e){if(-1===f.indexOf(e))throw new RangeError("Invalid status code");return new B(null,{status:e,headers:{location:t}})},t.Headers=l,t.Request=_,t.Response=B,t.fetch=function(r,n){return new Promise(function(o,t){var e=new _(r,n),i=new XMLHttpRequest;i.onload=function(){var t,n,e={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",n=new l,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var e=t.split(":"),r=e.shift().trim();if(r){var o=e.join(":").trim();n.append(r,o)}}),n)};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var r="response"in i?i.response:i.responseText;o(new B(r,e))},i.onerror=function(){t(new TypeError("Network request failed"))},i.ontimeout=function(){t(new TypeError("Network request failed"))},i.open(e.method,e.url,!0),"include"===e.credentials?i.withCredentials=!0:"omit"===e.credentials&&(i.withCredentials=!1),"responseType"in i&&s&&(i.responseType="blob"),e.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),i.send(void 0===e._bodyInit?null:e._bodyInit)})},t.fetch.polyfill=!0}function d(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function y(t){return"string"!=typeof t&&(t=String(t)),t}function p(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return r&&(t[Symbol.iterator]=function(){return t}),t}function l(e){this.map={},e instanceof l?e.forEach(function(t,e){this.append(e,t)},this):Array.isArray(e)?e.forEach(function(t){this.append(t[0],t[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function c(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function b(r){return new Promise(function(t,e){r.onload=function(){t(r.result)},r.onerror=function(){e(r.error)}})}function m(t){var e=new FileReader,r=b(e);return e.readAsArrayBuffer(t),r}function w(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t)if("string"==typeof t)this._bodyText=t;else if(s&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(o&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(n&&s&&a(t))this._bodyArrayBuffer=w(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!n||!ArrayBuffer.prototype.isPrototypeOf(t)&&!h(t))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=w(t)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},s&&(this.blob=function(){var t=c(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?c(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var t,e,r,o=c(this);if(o)return o;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,r=b(e),e.readAsText(t),r;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),o=0;o<e.length;o++)r[o]=String.fromCharCode(e[o]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}function _(t,e){var r,o,n=(e=e||{}).body;if(t instanceof _){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new l(t.headers)),this.method=t.method,this.mode=t.mode,n||null==t._bodyInit||(n=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new l(e.headers)),this.method=(r=e.method||this.method||"GET",o=r.toUpperCase(),-1<u.indexOf(o)?o:r),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function A(t){var n=new FormData;return t.trim().split("&").forEach(function(t){if(t){var e=t.split("="),r=e.shift().replace(/\+/g," "),o=e.join("=").replace(/\+/g," ");n.append(decodeURIComponent(r),decodeURIComponent(o))}}),n}function B(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=200<=this.status&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new l(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!=typeof self?self:this);
-//# sourceMappingURL=cross-fetch.js.map
diff --git a/node_modules/cross-fetch/dist/cross-fetch.js.map b/node_modules/cross-fetch/dist/cross-fetch.js.map
deleted file mode 100644
index fb1ba76..0000000
--- a/node_modules/cross-fetch/dist/cross-fetch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"cross-fetch.js","sources":["../node_modules/whatwg-fetch/fetch.js"],"sourcesContent":["(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = options.status === undefined ? 200 : options.status\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n"],"names":["self","fetch","support","Symbol","Blob","e","viewClasses","isDataView","obj","DataView","prototype","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","indexOf","Object","toString","call","Headers","append","name","value","normalizeName","normalizeValue","oldValue","this","map","get","has","hasOwnProperty","set","forEach","callback","thisArg","keys","items","push","iteratorFor","values","entries","iterator","methods","Request","clone","body","_bodyInit","Body","Response","status","statusText","headers","url","error","response","type","redirectStatuses","redirect","RangeError","location","input","init","Promise","resolve","reject","request","xhr","XMLHttpRequest","onload","rawHeaders","options","getAllResponseHeaders","replace","split","line","parts","key","shift","trim","join","responseURL","responseText","onerror","TypeError","ontimeout","open","method","credentials","withCredentials","responseType","setRequestHeader","send","polyfill","String","test","toLowerCase","next","done","undefined","Array","isArray","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","result","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","buffer","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","Error","rejected","arrayBuffer","then","text","readAsText","chars","length","i","fromCharCode","readArrayBufferAsText","formData","decode","json","JSON","parse","upcased","mode","toUpperCase","referrer","form","bytes","decodeURIComponent","bodyInit","ok"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/cross-fetch/dist/node-polyfill.js b/node_modules/cross-fetch/dist/node-polyfill.js
deleted file mode 100644
index 8bf4e4e..0000000
--- a/node_modules/cross-fetch/dist/node-polyfill.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var fetchNode = require('./node-ponyfill');
-var fetch = fetchNode.fetch.bind({});
-
-fetch.polyfill = true;
-
-if (!global.fetch) {
-  global.fetch = fetch;
-  global.Response = fetchNode.Response;
-  global.Headers = fetchNode.Headers;
-  global.Request = fetchNode.Request;
-}
-
diff --git a/node_modules/cross-fetch/dist/node-ponyfill.js b/node_modules/cross-fetch/dist/node-ponyfill.js
deleted file mode 100644
index 281b0be..0000000
--- a/node_modules/cross-fetch/dist/node-ponyfill.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var nodeFetch = require('node-fetch');
-var realFetch = nodeFetch.default || nodeFetch;
-
-var fetch = function (url, options) {
-  // Support schemaless URIs on the server for parity with the browser.
-  // Ex: //github.com/ -> https://github.com/
-  if (/^\/\//.test(url)) {
-    url = 'https:' + url;
-  }
-  return realFetch.call(this, url, options);
-};
-
-fetch.polyfill = false;
-
-module.exports = exports = fetch;
-exports.fetch = fetch;
-exports.Headers = nodeFetch.Headers;
-exports.Request = nodeFetch.Request;
-exports.Response = nodeFetch.Response;
-
-// Needed for TypeScript.
-exports.default = fetch;
diff --git a/node_modules/cross-fetch/index.d.ts b/node_modules/cross-fetch/index.d.ts
deleted file mode 100644
index ec1a72b..0000000
--- a/node_modules/cross-fetch/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-declare const fet: typeof fetch;
-declare const req: typeof Request;
-declare const res: typeof Response;
-declare const headers: typeof Headers;
-
-declare module "cross-fetch" {
-  export const fetch: typeof fet;
-  export const Request: typeof req;
-  export const Response: typeof res;
-  export const Headers: typeof headers;
-  export default fetch;
-}
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/CHANGELOG.md b/node_modules/cross-fetch/node_modules/node-fetch/CHANGELOG.md
deleted file mode 100644
index 6bc6196..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/CHANGELOG.md
+++ /dev/null
@@ -1,219 +0,0 @@
-
-Changelog
-=========
-
-
-# 2.x release
-
-## v2.1.2
-
-- Fix: allow `Body` methods to work on ArrayBuffer`-backed `Body` objects
-- Fix: reject promise returned by `Body` methods when the accumulated `Buffer` exceeds the maximum size
-- Fix: support custom `Host` headers with any casing
-- Fix: support importing `fetch()` from TypeScript in `browser.js`
-- Fix: handle the redirect response body properly
-
-## v2.1.1
-
-Fix packaging errors in v2.1.0.
-
-## v2.1.0
-
-- Enhance: allow using ArrayBuffer as the `body` of a `fetch()` or `Request`
-- Fix: store HTTP headers of a `Headers` object internally with the given case, for compatibility with older servers that incorrectly treated header names in a case-sensitive manner
-- Fix: silently ignore invalid HTTP headers
-- Fix: handle HTTP redirect responses without a `Location` header just like non-redirect responses
-- Fix: include bodies when following a redirection when appropriate
-
-## v2.0.0
-
-This is a major release. Check [our upgrade guide](https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md) for an overview on some key differences between v1 and v2.
-
-### General changes
-
-- Major: Node.js 0.10.x and 0.12.x support is dropped
-- Major: `require('node-fetch/lib/response')` etc. is now unsupported; use `require('node-fetch').Response` or ES6 module imports
-- Enhance: start testing on Node.js v4.x, v6.x, v8.x LTS, as well as v9.x stable
-- Enhance: use Rollup to produce a distributed bundle (less memory overhead and faster startup)
-- Enhance: make `Object.prototype.toString()` on Headers, Requests, and Responses return correct class strings
-- Other: rewrite in ES2015 using Babel
-- Other: use Codecov for code coverage tracking
-- Other: update package.json script for npm 5
-- Other: `encoding` module is now optional (alpha.7)
-- Other: expose browser.js through package.json, avoid bundling mishaps (alpha.9)
-- Other: allow TypeScript to `import` node-fetch by exposing default (alpha.9)
-
-### HTTP requests
-
-- Major: overwrite user's `Content-Length` if we can be sure our information is correct (per spec)
-- Fix: errors in a response are caught before the body is accessed
-- Fix: support WHATWG URL objects, created by `whatwg-url` package or `require('url').URL` in Node.js 7+
-
-### Response and Request classes
-
-- Major: `response.text()` no longer attempts to detect encoding, instead always opting for UTF-8 (per spec); use `response.textConverted()` for the v1 behavior
-- Major: make `response.json()` throw error instead of returning an empty object on 204 no-content respose (per spec; reverts behavior changed in v1.6.2)
-- Major: internal methods are no longer exposed
-- Major: throw error when a `GET` or `HEAD` Request is constructed with a non-null body (per spec)
-- Enhance: add `response.arrayBuffer()` (also applies to Requests)
-- Enhance: add experimental `response.blob()` (also applies to Requests)
-- Enhance: `URLSearchParams` is now accepted as a body
-- Enhance: wrap `response.json()` json parsing error as `FetchError`
-- Fix: fix Request and Response with `null` body
-
-### Headers class
-
-- Major: remove `headers.getAll()`; make `get()` return all headers delimited by commas (per spec)
-- Enhance: make Headers iterable
-- Enhance: make Headers constructor accept an array of tuples
-- Enhance: make sure header names and values are valid in HTTP
-- Fix: coerce Headers prototype function parameters to strings, where applicable
-
-### Documentation
-
-- Enhance: more comprehensive API docs
-- Enhance: add a list of default headers in README
-
-
-# 1.x release
-
-## backport releases (v1.7.0 and beyond)
-
-See [changelog on 1.x branch](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) for details.
-
-## v1.6.3
-
-- Enhance: error handling document to explain `FetchError` design
-- Fix: support `form-data` 2.x releases (requires `form-data` >= 2.1.0)
-
-## v1.6.2
-
-- Enhance: minor document update
-- Fix: response.json() returns empty object on 204 no-content response instead of throwing a syntax error
-
-## v1.6.1
-
-- Fix: if `res.body` is a non-stream non-formdata object, we will call `body.toString` and send it as a string
-- Fix: `counter` value is incorrectly set to `follow` value when wrapping Request instance
-- Fix: documentation update
-
-## v1.6.0
-
-- Enhance: added `res.buffer()` api for convenience, it returns body as a Node.js buffer
-- Enhance: better old server support by handling raw deflate response
-- Enhance: skip encoding detection for non-HTML/XML response
-- Enhance: minor document update
-- Fix: HEAD request doesn't need decompression, as body is empty
-- Fix: `req.body` now accepts a Node.js buffer
-
-## v1.5.3
-
-- Fix: handle 204 and 304 responses when body is empty but content-encoding is gzip/deflate
-- Fix: allow resolving response and cloned response in any order
-- Fix: avoid setting `content-length` when `form-data` body use streams
-- Fix: send DELETE request with content-length when body is present
-- Fix: allow any url when calling new Request, but still reject non-http(s) url in fetch
-
-## v1.5.2
-
-- Fix: allow node.js core to handle keep-alive connection pool when passing a custom agent
-
-## v1.5.1
-
-- Fix: redirect mode `manual` should work even when there is no redirection or broken redirection
-
-## v1.5.0
-
-- Enhance: rejected promise now use custom `Error` (thx to @pekeler)
-- Enhance: `FetchError` contains `err.type` and `err.code`, allows for better error handling (thx to @pekeler)
-- Enhance: basic support for redirect mode `manual` and `error`, allows for location header extraction (thx to @jimmywarting for the initial PR)
-
-## v1.4.1
-
-- Fix: wrapping Request instance with FormData body again should preserve the body as-is
-
-## v1.4.0
-
-- Enhance: Request and Response now have `clone` method (thx to @kirill-konshin for the initial PR)
-- Enhance: Request and Response now have proper string and buffer body support (thx to @kirill-konshin)
-- Enhance: Body constructor has been refactored out (thx to @kirill-konshin)
-- Enhance: Headers now has `forEach` method (thx to @tricoder42)
-- Enhance: back to 100% code coverage
-- Fix: better form-data support (thx to @item4)
-- Fix: better character encoding detection under chunked encoding (thx to @dsuket for the initial PR)
-
-## v1.3.3
-
-- Fix: make sure `Content-Length` header is set when body is string for POST/PUT/PATCH requests
-- Fix: handle body stream error, for cases such as incorrect `Content-Encoding` header
-- Fix: when following certain redirects, use `GET` on subsequent request per Fetch Spec
-- Fix: `Request` and `Response` constructors now parse headers input using `Headers`
-
-## v1.3.2
-
-- Enhance: allow auto detect of form-data input (no `FormData` spec on node.js, this is form-data specific feature)
-
-## v1.3.1
-
-- Enhance: allow custom host header to be set (server-side only feature, as it's a forbidden header on client-side)
-
-## v1.3.0
-
-- Enhance: now `fetch.Request` is exposed as well
-
-## v1.2.1
-
-- Enhance: `Headers` now normalized `Number` value to `String`, prevent common mistakes
-
-## v1.2.0
-
-- Enhance: now fetch.Headers and fetch.Response are exposed, making testing easier
-
-## v1.1.2
-
-- Fix: `Headers` should only support `String` and `Array` properties, and ignore others
-
-## v1.1.1
-
-- Enhance: now req.headers accept both plain object and `Headers` instance
-
-## v1.1.0
-
-- Enhance: timeout now also applies to response body (in case of slow response)
-- Fix: timeout is now cleared properly when fetch is done/has failed
-
-## v1.0.6
-
-- Fix: less greedy content-type charset matching
-
-## v1.0.5
-
-- Fix: when `follow = 0`, fetch should not follow redirect
-- Enhance: update tests for better coverage
-- Enhance: code formatting
-- Enhance: clean up doc
-
-## v1.0.4
-
-- Enhance: test iojs support
-- Enhance: timeout attached to socket event only fire once per redirect
-
-## v1.0.3
-
-- Fix: response size limit should reject large chunk
-- Enhance: added character encoding detection for xml, such as rss/atom feed (encoding in DTD)
-
-## v1.0.2
-
-- Fix: added res.ok per spec change
-
-## v1.0.0
-
-- Enhance: better test coverage and doc
-
-
-# 0.x release
-
-## v0.1
-
-- Major: initial public release
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/LICENSE.md b/node_modules/cross-fetch/node_modules/node-fetch/LICENSE.md
deleted file mode 100644
index 660ffec..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/LICENSE.md
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 David Frank
-
-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.
-
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/README.md b/node_modules/cross-fetch/node_modules/node-fetch/README.md
deleted file mode 100644
index 5f9a091..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/README.md
+++ /dev/null
@@ -1,409 +0,0 @@
-
-node-fetch
-==========
-
-[![npm stable version][npm-image]][npm-url]
-[![npm next version][npm-next-image]][npm-url]
-[![build status][travis-image]][travis-url]
-[![coverage status][codecov-image]][codecov-url]
-
-A light-weight module that brings `window.fetch` to Node.js
-
-
-## Motivation
-
-Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime.
-
-See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side).
-
-
-## Features
-
-- Stay consistent with `window.fetch` API.
-- Make conscious trade-off when following [whatwg fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known difference.
-- Use native promise, but allow substituting it with [insert your favorite promise library].
-- Use native stream for body, on both request and response.
-- Decode content encoding (gzip/deflate) properly, convert `res.text()` output to UTF-8 optionally.
-- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors][ERROR-HANDLING.md] for troubleshooting.
-
-
-## Difference from client-side fetch
-
-- See [Known Differences][LIMITS.md] for details.
-- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue.
-- Pull requests are welcomed too!
-
-
-## Install
-
-Stable release (`2.x`)
-
-```sh
-$ npm install node-fetch --save
-```
-
-## Usage
-
-Note that documentation below is up-to-date with `2.x` releases, [see `1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide][UPGRADE-GUIDE.md] if you want to find out the difference.
-
-```javascript
-import fetch from 'node-fetch';
-// or
-// const fetch = require('node-fetch');
-
-// if you are using your own Promise library, set it through fetch.Promise. Eg.
-
-// import Bluebird from 'bluebird';
-// fetch.Promise = Bluebird;
-
-// plain text or html
-
-fetch('https://github.com/')
-	.then(res => res.text())
-	.then(body => console.log(body));
-
-// json
-
-fetch('https://api.github.com/users/github')
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// catching network error
-// 3xx-5xx responses are NOT network errors, and should be handled in then()
-// you only need one catch() at the end of your promise chain
-
-fetch('http://domain.invalid/')
-	.catch(err => console.error(err));
-
-// stream
-// the node.js way is to use stream when possible
-
-fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
-	.then(res => {
-		const dest = fs.createWriteStream('./octocat.png');
-		res.body.pipe(dest);
-	});
-
-// buffer
-// if you prefer to cache binary data in full, use buffer()
-// note that buffer() is a node-fetch only API
-
-import fileType from 'file-type';
-
-fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
-	.then(res => res.buffer())
-	.then(buffer => fileType(buffer))
-	.then(type => { /* ... */ });
-
-// meta
-
-fetch('https://github.com/')
-	.then(res => {
-		console.log(res.ok);
-		console.log(res.status);
-		console.log(res.statusText);
-		console.log(res.headers.raw());
-		console.log(res.headers.get('content-type'));
-	});
-
-// post
-
-fetch('http://httpbin.org/post', { method: 'POST', body: 'a=1' })
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// post with stream from file
-
-import { createReadStream } from 'fs';
-
-const stream = createReadStream('input.txt');
-fetch('http://httpbin.org/post', { method: 'POST', body: stream })
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// post with JSON
-
-var body = { a: 1 };
-fetch('http://httpbin.org/post', { 
-	method: 'POST',
-	body:    JSON.stringify(body),
-	headers: { 'Content-Type': 'application/json' },
-})
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// post form parameters (x-www-form-urlencoded)
-
-import { URLSearchParams } from 'url';
-
-const params = new URLSearchParams();
-params.append('a', 1);
-fetch('http://httpbin.org/post', { method: 'POST', body: params })
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// post with form-data (detect multipart)
-
-import FormData from 'form-data';
-
-const form = new FormData();
-form.append('a', 1);
-fetch('http://httpbin.org/post', { method: 'POST', body: form })
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// post with form-data (custom headers)
-// note that getHeaders() is non-standard API
-
-import FormData from 'form-data';
-
-const form = new FormData();
-form.append('a', 1);
-fetch('http://httpbin.org/post', { method: 'POST', body: form, headers: form.getHeaders() })
-	.then(res => res.json())
-	.then(json => console.log(json));
-
-// node 7+ with async function
-
-(async function () {
-	const res = await fetch('https://api.github.com/users/github');
-	const json = await res.json();
-	console.log(json);
-})();
-```
-
-See [test cases](https://github.com/bitinn/node-fetch/blob/master/test/test.js) for more examples.
-
-
-## API
-
-### fetch(url[, options])
-
-- `url` A string representing the URL for fetching
-- `options` [Options](#fetch-options) for the HTTP(S) request
-- Returns: <code>Promise&lt;[Response](#class-response)&gt;</code>
-
-Perform an HTTP(S) fetch.
-
-`url` should be an absolute url, such as `http://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected promise.
-
-<a id="fetch-options"></a>
-#### Options
-
-The default values are shown after each option key.
-
-```js
-{
-	// These properties are part of the Fetch Standard
-	method: 'GET',
-	headers: {},        // request headers. format is the identical to that accepted by the Headers constructor (see below)
-	body: null,         // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream
-	redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect
-
-	// The following properties are node-fetch extensions
-	follow: 20,         // maximum redirect count. 0 to not follow redirect
-	timeout: 0,         // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies)
-	compress: true,     // support gzip/deflate content encoding. false to disable
-	size: 0,            // maximum response body size in bytes. 0 to disable
-	agent: null         // http(s).Agent instance, allows custom proxy, certificate etc.
-}
-```
-
-##### Default Headers
-
-If no values are set, the following request headers will be sent automatically:
-
-Header            | Value
------------------ | --------------------------------------------------------
-`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_
-`Accept`          | `*/*`
-`Connection`      | `close` _(when no `options.agent` is present)_
-`Content-Length`  | _(automatically calculated, if possible)_
-`User-Agent`      | `node-fetch/1.0 (+https://github.com/bitinn/node-fetch)`
-
-<a id="class-request"></a>
-### Class: Request
-
-An HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface.
-
-Due to the nature of Node.js, the following properties are not implemented at this moment:
-
-- `type`
-- `destination`
-- `referrer`
-- `referrerPolicy`
-- `mode`
-- `credentials`
-- `cache`
-- `integrity`
-- `keepalive`
-
-The following node-fetch extension properties are provided:
-
-- `follow`
-- `compress`
-- `counter`
-- `agent`
-
-See [options](#fetch-options) for exact meaning of these extensions.
-
-#### new Request(input[, options])
-
-<small>*(spec-compliant)*</small>
-
-- `input` A string representing a URL, or another `Request` (which will be cloned)
-- `options` [Options][#fetch-options] for the HTTP(S) request
-
-Constructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
-
-In most cases, directly `fetch(url, options)` is simpler than creating a `Request` object.
-
-<a id="class-response"></a>
-### Class: Response
-
-An HTTP(S) response. This class implements the [Body](#iface-body) interface.
-
-The following properties are not implemented in node-fetch at this moment:
-
-- `Response.error()`
-- `Response.redirect()`
-- `type`
-- `redirected`
-- `trailer`
-
-#### new Response([body[, options]])
-
-<small>*(spec-compliant)*</small>
-
-- `body` A string or [Readable stream][node-readable]
-- `options` A [`ResponseInit`][response-init] options dictionary
-
-Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response).
-
-Because Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly.
-
-#### response.ok
-
-Convenience property representing if the request ended normally. Will evaluate to true if the response status was greater than or equal to 200 but smaller than 300.
-
-<a id="class-headers"></a>
-### Class: Headers
-
-This class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented.
-
-#### new Headers([init])
-
-<small>*(spec-compliant)*</small>
-
-- `init` Optional argument to pre-fill the `Headers` object
-
-Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object, or any iterable object.
-
-```js
-// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class
-
-const meta = {
-  'Content-Type': 'text/xml',
-  'Breaking-Bad': '<3'
-};
-const headers = new Headers(meta);
-
-// The above is equivalent to
-const meta = [
-  [ 'Content-Type', 'text/xml' ],
-  [ 'Breaking-Bad', '<3' ]
-];
-const headers = new Headers(meta);
-
-// You can in fact use any iterable objects, like a Map or even another Headers
-const meta = new Map();
-meta.set('Content-Type', 'text/xml');
-meta.set('Breaking-Bad', '<3');
-const headers = new Headers(meta);
-const copyOfHeaders = new Headers(headers);
-```
-
-<a id="iface-body"></a>
-### Interface: Body
-
-`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes.
-
-The following methods are not yet implemented in node-fetch at this moment:
-
-- `formData()`
-
-#### body.body
-
-<small>*(deviation from spec)*</small>
-
-* Node.js [`Readable` stream][node-readable]
-
-The data encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable].
-
-#### body.bodyUsed
-
-<small>*(spec-compliant)*</small>
-
-* `Boolean`
-
-A boolean property for if this body has been consumed. Per spec, a consumed body cannot be used again.
-
-#### body.arrayBuffer()
-#### body.blob()
-#### body.json()
-#### body.text()
-
-<small>*(spec-compliant)*</small>
-
-* Returns: <code>Promise</code>
-
-Consume the body and return a promise that will resolve to one of these formats.
-
-#### body.buffer()
-
-<small>*(node-fetch extension)*</small>
-
-* Returns: <code>Promise&lt;Buffer&gt;</code>
-
-Consume the body and return a promise that will resolve to a Buffer.
-
-#### body.textConverted()
-
-<small>*(node-fetch extension)*</small>
-
-* Returns: <code>Promise&lt;String&gt;</code>
-
-Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8, if possible.
-
-<a id="class-fetcherror"></a>
-### Class: FetchError
-
-<small>*(node-fetch extension)*</small>
-
-An operational error in the fetching process. See [ERROR-HANDLING.md][] for more info.
-
-## License
-
-MIT
-
-
-## Acknowledgement
-
-Thanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference.
-
-
-[npm-image]: https://img.shields.io/npm/v/node-fetch.svg?style=flat-square
-[npm-next-image]: https://img.shields.io/npm/v/node-fetch/next.svg?style=flat-square
-[npm-url]: https://www.npmjs.com/package/node-fetch
-[travis-image]: https://img.shields.io/travis/bitinn/node-fetch.svg?style=flat-square
-[travis-url]: https://travis-ci.org/bitinn/node-fetch
-[codecov-image]: https://img.shields.io/codecov/c/github/bitinn/node-fetch.svg?style=flat-square
-[codecov-url]: https://codecov.io/gh/bitinn/node-fetch
-
-[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md
-[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md
-[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md
-
-[whatwg-fetch]: https://fetch.spec.whatwg.org/
-[response-init]: https://fetch.spec.whatwg.org/#responseinit
-[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/browser.js b/node_modules/cross-fetch/node_modules/node-fetch/browser.js
deleted file mode 100644
index ee023e0..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/browser.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = exports = window.fetch;
-
-// Needed for TypeScript and Webpack.
-exports.default = window.fetch.bind(window);
-
-exports.Headers = window.Headers;
-exports.Request = window.Request;
-exports.Response = window.Response;
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/lib/index.es.js b/node_modules/cross-fetch/node_modules/node-fetch/lib/index.es.js
deleted file mode 100644
index 9caec44..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/lib/index.es.js
+++ /dev/null
@@ -1,1550 +0,0 @@
-// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
-// (MIT licensed)
-
-const BUFFER = Symbol('buffer');
-const TYPE = Symbol('type');
-
-class Blob {
-	constructor() {
-		this[TYPE] = '';
-
-		const blobParts = arguments[0];
-		const options = arguments[1];
-
-		const buffers = [];
-
-		if (blobParts) {
-			const a = blobParts;
-			const length = Number(a.length);
-			for (let i = 0; i < length; i++) {
-				const element = a[i];
-				let buffer;
-				if (element instanceof Buffer) {
-					buffer = element;
-				} else if (ArrayBuffer.isView(element)) {
-					buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
-				} else if (element instanceof ArrayBuffer) {
-					buffer = Buffer.from(element);
-				} else if (element instanceof Blob) {
-					buffer = element[BUFFER];
-				} else {
-					buffer = Buffer.from(typeof element === 'string' ? element : String(element));
-				}
-				buffers.push(buffer);
-			}
-		}
-
-		this[BUFFER] = Buffer.concat(buffers);
-
-		let type = options && options.type !== undefined && String(options.type).toLowerCase();
-		if (type && !/[^\u0020-\u007E]/.test(type)) {
-			this[TYPE] = type;
-		}
-	}
-	get size() {
-		return this[BUFFER].length;
-	}
-	get type() {
-		return this[TYPE];
-	}
-	slice() {
-		const size = this.size;
-
-		const start = arguments[0];
-		const end = arguments[1];
-		let relativeStart, relativeEnd;
-		if (start === undefined) {
-			relativeStart = 0;
-		} else if (start < 0) {
-			relativeStart = Math.max(size + start, 0);
-		} else {
-			relativeStart = Math.min(start, size);
-		}
-		if (end === undefined) {
-			relativeEnd = size;
-		} else if (end < 0) {
-			relativeEnd = Math.max(size + end, 0);
-		} else {
-			relativeEnd = Math.min(end, size);
-		}
-		const span = Math.max(relativeEnd - relativeStart, 0);
-
-		const buffer = this[BUFFER];
-		const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
-		const blob = new Blob([], { type: arguments[2] });
-		blob[BUFFER] = slicedBuffer;
-		return blob;
-	}
-}
-
-Object.defineProperties(Blob.prototype, {
-	size: { enumerable: true },
-	type: { enumerable: true },
-	slice: { enumerable: true }
-});
-
-Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
-	value: 'Blob',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * fetch-error.js
- *
- * FetchError interface for operational errors
- */
-
-/**
- * Create FetchError instance
- *
- * @param   String      message      Error message for human
- * @param   String      type         Error type for machine
- * @param   String      systemError  For Node.js system error
- * @return  FetchError
- */
-function FetchError(message, type, systemError) {
-  Error.call(this, message);
-
-  this.message = message;
-  this.type = type;
-
-  // when err.type is `system`, err.code contains system error code
-  if (systemError) {
-    this.code = this.errno = systemError.code;
-  }
-
-  // hide custom error implementation details from end-users
-  Error.captureStackTrace(this, this.constructor);
-}
-
-FetchError.prototype = Object.create(Error.prototype);
-FetchError.prototype.constructor = FetchError;
-FetchError.prototype.name = 'FetchError';
-
-/**
- * body.js
- *
- * Body interface provides common methods for Request and Response
- */
-
-const Stream = require('stream');
-
-var _require = require('stream');
-
-const PassThrough = _require.PassThrough;
-
-
-let convert;
-try {
-	convert = require('encoding').convert;
-} catch (e) {}
-
-const INTERNALS = Symbol('Body internals');
-
-/**
- * Body mixin
- *
- * Ref: https://fetch.spec.whatwg.org/#body
- *
- * @param   Stream  body  Readable stream
- * @param   Object  opts  Response options
- * @return  Void
- */
-function Body(body) {
-	var _this = this;
-
-	var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
-	    _ref$size = _ref.size;
-
-	let size = _ref$size === undefined ? 0 : _ref$size;
-	var _ref$timeout = _ref.timeout;
-	let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;
-
-	if (body == null) {
-		// body is undefined or null
-		body = null;
-	} else if (typeof body === 'string') {
-		// body is string
-	} else if (isURLSearchParams(body)) {
-		// body is a URLSearchParams
-	} else if (body instanceof Blob) {
-		// body is blob
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-	} else if (body instanceof Stream) {
-		// body is stream
-	} else {
-		// none of the above
-		// coerce to string
-		body = String(body);
-	}
-	this[INTERNALS] = {
-		body,
-		disturbed: false,
-		error: null
-	};
-	this.size = size;
-	this.timeout = timeout;
-
-	if (body instanceof Stream) {
-		body.on('error', function (err) {
-			_this[INTERNALS].error = new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);
-		});
-	}
-}
-
-Body.prototype = {
-	get body() {
-		return this[INTERNALS].body;
-	},
-
-	get bodyUsed() {
-		return this[INTERNALS].disturbed;
-	},
-
-	/**
-  * Decode response as ArrayBuffer
-  *
-  * @return  Promise
-  */
-	arrayBuffer() {
-		return consumeBody.call(this).then(function (buf) {
-			return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
-		});
-	},
-
-	/**
-  * Return raw response as Blob
-  *
-  * @return Promise
-  */
-	blob() {
-		let ct = this.headers && this.headers.get('content-type') || '';
-		return consumeBody.call(this).then(function (buf) {
-			return Object.assign(
-			// Prevent copying
-			new Blob([], {
-				type: ct.toLowerCase()
-			}), {
-				[BUFFER]: buf
-			});
-		});
-	},
-
-	/**
-  * Decode response as json
-  *
-  * @return  Promise
-  */
-	json() {
-		var _this2 = this;
-
-		return consumeBody.call(this).then(function (buffer) {
-			try {
-				return JSON.parse(buffer.toString());
-			} catch (err) {
-				return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));
-			}
-		});
-	},
-
-	/**
-  * Decode response as text
-  *
-  * @return  Promise
-  */
-	text() {
-		return consumeBody.call(this).then(function (buffer) {
-			return buffer.toString();
-		});
-	},
-
-	/**
-  * Decode response as buffer (non-spec api)
-  *
-  * @return  Promise
-  */
-	buffer() {
-		return consumeBody.call(this);
-	},
-
-	/**
-  * Decode response as text, while automatically detecting the encoding and
-  * trying to decode to UTF-8 (non-spec api)
-  *
-  * @return  Promise
-  */
-	textConverted() {
-		var _this3 = this;
-
-		return consumeBody.call(this).then(function (buffer) {
-			return convertBody(buffer, _this3.headers);
-		});
-	}
-
-};
-
-// In browsers, all properties are enumerable.
-Object.defineProperties(Body.prototype, {
-	body: { enumerable: true },
-	bodyUsed: { enumerable: true },
-	arrayBuffer: { enumerable: true },
-	blob: { enumerable: true },
-	json: { enumerable: true },
-	text: { enumerable: true }
-});
-
-Body.mixIn = function (proto) {
-	for (const name of Object.getOwnPropertyNames(Body.prototype)) {
-		// istanbul ignore else: future proof
-		if (!(name in proto)) {
-			const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
-			Object.defineProperty(proto, name, desc);
-		}
-	}
-};
-
-/**
- * Consume and convert an entire Body to a Buffer.
- *
- * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body
- *
- * @return  Promise
- */
-function consumeBody() {
-	var _this4 = this;
-
-	if (this[INTERNALS].disturbed) {
-		return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
-	}
-
-	this[INTERNALS].disturbed = true;
-
-	if (this[INTERNALS].error) {
-		return Body.Promise.reject(this[INTERNALS].error);
-	}
-
-	// body is null
-	if (this.body === null) {
-		return Body.Promise.resolve(Buffer.alloc(0));
-	}
-
-	// body is string
-	if (typeof this.body === 'string') {
-		return Body.Promise.resolve(Buffer.from(this.body));
-	}
-
-	// body is blob
-	if (this.body instanceof Blob) {
-		return Body.Promise.resolve(this.body[BUFFER]);
-	}
-
-	// body is buffer
-	if (Buffer.isBuffer(this.body)) {
-		return Body.Promise.resolve(this.body);
-	}
-
-	// body is buffer
-	if (Object.prototype.toString.call(this.body) === '[object ArrayBuffer]') {
-		return Body.Promise.resolve(Buffer.from(this.body));
-	}
-
-	// istanbul ignore if: should never happen
-	if (!(this.body instanceof Stream)) {
-		return Body.Promise.resolve(Buffer.alloc(0));
-	}
-
-	// body is stream
-	// get ready to actually consume the body
-	let accum = [];
-	let accumBytes = 0;
-	let abort = false;
-
-	return new Body.Promise(function (resolve, reject) {
-		let resTimeout;
-
-		// allow timeout on slow response body
-		if (_this4.timeout) {
-			resTimeout = setTimeout(function () {
-				abort = true;
-				reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));
-			}, _this4.timeout);
-		}
-
-		// handle stream error, such as incorrect content-encoding
-		_this4.body.on('error', function (err) {
-			reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));
-		});
-
-		_this4.body.on('data', function (chunk) {
-			if (abort || chunk === null) {
-				return;
-			}
-
-			if (_this4.size && accumBytes + chunk.length > _this4.size) {
-				abort = true;
-				reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));
-				return;
-			}
-
-			accumBytes += chunk.length;
-			accum.push(chunk);
-		});
-
-		_this4.body.on('end', function () {
-			if (abort) {
-				return;
-			}
-
-			clearTimeout(resTimeout);
-
-			try {
-				resolve(Buffer.concat(accum));
-			} catch (err) {
-				// handle streams that have accumulated too much data (issue #414)
-				reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));
-			}
-		});
-	});
-}
-
-/**
- * Detect buffer encoding and convert to target encoding
- * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
- *
- * @param   Buffer  buffer    Incoming buffer
- * @param   String  encoding  Target encoding
- * @return  String
- */
-function convertBody(buffer, headers) {
-	if (typeof convert !== 'function') {
-		throw new Error('The package `encoding` must be installed to use the textConverted() function');
-	}
-
-	const ct = headers.get('content-type');
-	let charset = 'utf-8';
-	let res, str;
-
-	// header
-	if (ct) {
-		res = /charset=([^;]*)/i.exec(ct);
-	}
-
-	// no charset in content type, peek at response body for at most 1024 bytes
-	str = buffer.slice(0, 1024).toString();
-
-	// html5
-	if (!res && str) {
-		res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str);
-	}
-
-	// html4
-	if (!res && str) {
-		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
-
-		if (res) {
-			res = /charset=(.*)/i.exec(res.pop());
-		}
-	}
-
-	// xml
-	if (!res && str) {
-		res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str);
-	}
-
-	// found charset
-	if (res) {
-		charset = res.pop();
-
-		// prevent decode issues when sites use incorrect encoding
-		// ref: https://hsivonen.fi/encoding-menu/
-		if (charset === 'gb2312' || charset === 'gbk') {
-			charset = 'gb18030';
-		}
-	}
-
-	// turn raw buffers into a single utf-8 buffer
-	return convert(buffer, 'UTF-8', charset).toString();
-}
-
-/**
- * Detect a URLSearchParams object
- * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143
- *
- * @param   Object  obj     Object to detect by type or brand
- * @return  String
- */
-function isURLSearchParams(obj) {
-	// Duck-typing as a necessary condition.
-	if (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {
-		return false;
-	}
-
-	// Brand-checking and more duck-typing as optional condition.
-	return obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';
-}
-
-/**
- * Clone body given Res/Req instance
- *
- * @param   Mixed  instance  Response or Request instance
- * @return  Mixed
- */
-function clone(instance) {
-	let p1, p2;
-	let body = instance.body;
-
-	// don't allow cloning a used body
-	if (instance.bodyUsed) {
-		throw new Error('cannot clone body after it is used');
-	}
-
-	// check that body is a stream and not form-data object
-	// note: we can't clone the form-data object without having it as a dependency
-	if (body instanceof Stream && typeof body.getBoundary !== 'function') {
-		// tee instance body
-		p1 = new PassThrough();
-		p2 = new PassThrough();
-		body.pipe(p1);
-		body.pipe(p2);
-		// set instance body to teed body and return the other teed body
-		instance[INTERNALS].body = p1;
-		body = p2;
-	}
-
-	return body;
-}
-
-/**
- * Performs the operation "extract a `Content-Type` value from |object|" as
- * specified in the specification:
- * https://fetch.spec.whatwg.org/#concept-bodyinit-extract
- *
- * This function assumes that instance.body is present.
- *
- * @param   Mixed  instance  Response or Request instance
- */
-function extractContentType(instance) {
-	const body = instance.body;
-
-	// istanbul ignore if: Currently, because of a guard in Request, body
-	// can never be null. Included here for completeness.
-
-	if (body === null) {
-		// body is null
-		return null;
-	} else if (typeof body === 'string') {
-		// body is string
-		return 'text/plain;charset=UTF-8';
-	} else if (isURLSearchParams(body)) {
-		// body is a URLSearchParams
-		return 'application/x-www-form-urlencoded;charset=UTF-8';
-	} else if (body instanceof Blob) {
-		// body is blob
-		return body.type || null;
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		return null;
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		return null;
-	} else if (typeof body.getBoundary === 'function') {
-		// detect form data input from form-data module
-		return `multipart/form-data;boundary=${body.getBoundary()}`;
-	} else {
-		// body is stream
-		// can't really do much about this
-		return null;
-	}
-}
-
-/**
- * The Fetch Standard treats this as if "total bytes" is a property on the body.
- * For us, we have to explicitly get it with a function.
- *
- * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes
- *
- * @param   Body    instance   Instance of Body
- * @return  Number?            Number of bytes, or null if not possible
- */
-function getTotalBytes(instance) {
-	const body = instance.body;
-
-	// istanbul ignore if: included for completion
-
-	if (body === null) {
-		// body is null
-		return 0;
-	} else if (typeof body === 'string') {
-		// body is string
-		return Buffer.byteLength(body);
-	} else if (isURLSearchParams(body)) {
-		// body is URLSearchParams
-		return Buffer.byteLength(String(body));
-	} else if (body instanceof Blob) {
-		// body is blob
-		return body.size;
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		return body.length;
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		return body.byteLength;
-	} else if (body && typeof body.getLengthSync === 'function') {
-		// detect form data input from form-data module
-		if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x
-		body.hasKnownLength && body.hasKnownLength()) {
-			// 2.x
-			return body.getLengthSync();
-		}
-		return null;
-	} else {
-		// body is stream
-		// can't really do much about this
-		return null;
-	}
-}
-
-/**
- * Write a Body to a Node.js WritableStream (e.g. http.Request) object.
- *
- * @param   Body    instance   Instance of Body
- * @return  Void
- */
-function writeToStream(dest, instance) {
-	const body = instance.body;
-
-
-	if (body === null) {
-		// body is null
-		dest.end();
-	} else if (typeof body === 'string') {
-		// body is string
-		dest.write(body);
-		dest.end();
-	} else if (isURLSearchParams(body)) {
-		// body is URLSearchParams
-		dest.write(Buffer.from(String(body)));
-		dest.end();
-	} else if (body instanceof Blob) {
-		// body is blob
-		dest.write(body[BUFFER]);
-		dest.end();
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		dest.write(body);
-		dest.end();
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		dest.write(Buffer.from(body));
-		dest.end();
-	} else {
-		// body is stream
-		body.pipe(dest);
-	}
-}
-
-// expose Promise
-Body.Promise = global.Promise;
-
-/**
- * headers.js
- *
- * Headers class offers convenient helpers
- */
-
-const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/;
-const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
-
-function validateName(name) {
-	name = `${name}`;
-	if (invalidTokenRegex.test(name)) {
-		throw new TypeError(`${name} is not a legal HTTP header name`);
-	}
-}
-
-function validateValue(value) {
-	value = `${value}`;
-	if (invalidHeaderCharRegex.test(value)) {
-		throw new TypeError(`${value} is not a legal HTTP header value`);
-	}
-}
-
-/**
- * Find the key in the map object given a header name.
- *
- * Returns undefined if not found.
- *
- * @param   String  name  Header name
- * @return  String|Undefined
- */
-function find(map, name) {
-	name = name.toLowerCase();
-	for (const key in map) {
-		if (key.toLowerCase() === name) {
-			return key;
-		}
-	}
-	return undefined;
-}
-
-const MAP = Symbol('map');
-class Headers {
-	/**
-  * Headers class
-  *
-  * @param   Object  headers  Response headers
-  * @return  Void
-  */
-	constructor() {
-		let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
-
-		this[MAP] = Object.create(null);
-
-		if (init instanceof Headers) {
-			const rawHeaders = init.raw();
-			const headerNames = Object.keys(rawHeaders);
-
-			for (const headerName of headerNames) {
-				for (const value of rawHeaders[headerName]) {
-					this.append(headerName, value);
-				}
-			}
-
-			return;
-		}
-
-		// We don't worry about converting prop to ByteString here as append()
-		// will handle it.
-		if (init == null) {
-			// no op
-		} else if (typeof init === 'object') {
-			const method = init[Symbol.iterator];
-			if (method != null) {
-				if (typeof method !== 'function') {
-					throw new TypeError('Header pairs must be iterable');
-				}
-
-				// sequence<sequence<ByteString>>
-				// Note: per spec we have to first exhaust the lists then process them
-				const pairs = [];
-				for (const pair of init) {
-					if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
-						throw new TypeError('Each header pair must be iterable');
-					}
-					pairs.push(Array.from(pair));
-				}
-
-				for (const pair of pairs) {
-					if (pair.length !== 2) {
-						throw new TypeError('Each header pair must be a name/value tuple');
-					}
-					this.append(pair[0], pair[1]);
-				}
-			} else {
-				// record<ByteString, ByteString>
-				for (const key of Object.keys(init)) {
-					const value = init[key];
-					this.append(key, value);
-				}
-			}
-		} else {
-			throw new TypeError('Provided initializer must be an object');
-		}
-	}
-
-	/**
-  * Return combined header value given name
-  *
-  * @param   String  name  Header name
-  * @return  Mixed
-  */
-	get(name) {
-		name = `${name}`;
-		validateName(name);
-		const key = find(this[MAP], name);
-		if (key === undefined) {
-			return null;
-		}
-
-		return this[MAP][key].join(', ');
-	}
-
-	/**
-  * Iterate over all headers
-  *
-  * @param   Function  callback  Executed for each item with parameters (value, name, thisArg)
-  * @param   Boolean   thisArg   `this` context for callback function
-  * @return  Void
-  */
-	forEach(callback) {
-		let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
-
-		let pairs = getHeaders(this);
-		let i = 0;
-		while (i < pairs.length) {
-			var _pairs$i = pairs[i];
-			const name = _pairs$i[0],
-			      value = _pairs$i[1];
-
-			callback.call(thisArg, value, name, this);
-			pairs = getHeaders(this);
-			i++;
-		}
-	}
-
-	/**
-  * Overwrite header values given name
-  *
-  * @param   String  name   Header name
-  * @param   String  value  Header value
-  * @return  Void
-  */
-	set(name, value) {
-		name = `${name}`;
-		value = `${value}`;
-		validateName(name);
-		validateValue(value);
-		const key = find(this[MAP], name);
-		this[MAP][key !== undefined ? key : name] = [value];
-	}
-
-	/**
-  * Append a value onto existing header
-  *
-  * @param   String  name   Header name
-  * @param   String  value  Header value
-  * @return  Void
-  */
-	append(name, value) {
-		name = `${name}`;
-		value = `${value}`;
-		validateName(name);
-		validateValue(value);
-		const key = find(this[MAP], name);
-		if (key !== undefined) {
-			this[MAP][key].push(value);
-		} else {
-			this[MAP][name] = [value];
-		}
-	}
-
-	/**
-  * Check for header name existence
-  *
-  * @param   String   name  Header name
-  * @return  Boolean
-  */
-	has(name) {
-		name = `${name}`;
-		validateName(name);
-		return find(this[MAP], name) !== undefined;
-	}
-
-	/**
-  * Delete all header values given name
-  *
-  * @param   String  name  Header name
-  * @return  Void
-  */
-	delete(name) {
-		name = `${name}`;
-		validateName(name);
-		const key = find(this[MAP], name);
-		if (key !== undefined) {
-			delete this[MAP][key];
-		}
-	}
-
-	/**
-  * Return raw headers (non-spec api)
-  *
-  * @return  Object
-  */
-	raw() {
-		return this[MAP];
-	}
-
-	/**
-  * Get an iterator on keys.
-  *
-  * @return  Iterator
-  */
-	keys() {
-		return createHeadersIterator(this, 'key');
-	}
-
-	/**
-  * Get an iterator on values.
-  *
-  * @return  Iterator
-  */
-	values() {
-		return createHeadersIterator(this, 'value');
-	}
-
-	/**
-  * Get an iterator on entries.
-  *
-  * This is the default iterator of the Headers object.
-  *
-  * @return  Iterator
-  */
-	[Symbol.iterator]() {
-		return createHeadersIterator(this, 'key+value');
-	}
-}
-Headers.prototype.entries = Headers.prototype[Symbol.iterator];
-
-Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
-	value: 'Headers',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-Object.defineProperties(Headers.prototype, {
-	get: { enumerable: true },
-	forEach: { enumerable: true },
-	set: { enumerable: true },
-	append: { enumerable: true },
-	has: { enumerable: true },
-	delete: { enumerable: true },
-	keys: { enumerable: true },
-	values: { enumerable: true },
-	entries: { enumerable: true }
-});
-
-function getHeaders(headers) {
-	let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';
-
-	const keys = Object.keys(headers[MAP]).sort();
-	return keys.map(kind === 'key' ? function (k) {
-		return k.toLowerCase();
-	} : kind === 'value' ? function (k) {
-		return headers[MAP][k].join(', ');
-	} : function (k) {
-		return [k.toLowerCase(), headers[MAP][k].join(', ')];
-	});
-}
-
-const INTERNAL = Symbol('internal');
-
-function createHeadersIterator(target, kind) {
-	const iterator = Object.create(HeadersIteratorPrototype);
-	iterator[INTERNAL] = {
-		target,
-		kind,
-		index: 0
-	};
-	return iterator;
-}
-
-const HeadersIteratorPrototype = Object.setPrototypeOf({
-	next() {
-		// istanbul ignore if
-		if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
-			throw new TypeError('Value of `this` is not a HeadersIterator');
-		}
-
-		var _INTERNAL = this[INTERNAL];
-		const target = _INTERNAL.target,
-		      kind = _INTERNAL.kind,
-		      index = _INTERNAL.index;
-
-		const values = getHeaders(target, kind);
-		const len = values.length;
-		if (index >= len) {
-			return {
-				value: undefined,
-				done: true
-			};
-		}
-
-		this[INTERNAL].index = index + 1;
-
-		return {
-			value: values[index],
-			done: false
-		};
-	}
-}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
-
-Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
-	value: 'HeadersIterator',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * Export the Headers object in a form that Node.js can consume.
- *
- * @param   Headers  headers
- * @return  Object
- */
-function exportNodeCompatibleHeaders(headers) {
-	const obj = Object.assign({ __proto__: null }, headers[MAP]);
-
-	// http.request() only supports string as Host header. This hack makes
-	// specifying custom Host header possible.
-	const hostHeaderKey = find(headers[MAP], 'Host');
-	if (hostHeaderKey !== undefined) {
-		obj[hostHeaderKey] = obj[hostHeaderKey][0];
-	}
-
-	return obj;
-}
-
-/**
- * Create a Headers object from an object of headers, ignoring those that do
- * not conform to HTTP grammar productions.
- *
- * @param   Object  obj  Object of headers
- * @return  Headers
- */
-function createHeadersLenient(obj) {
-	const headers = new Headers();
-	for (const name of Object.keys(obj)) {
-		if (invalidTokenRegex.test(name)) {
-			continue;
-		}
-		if (Array.isArray(obj[name])) {
-			for (const val of obj[name]) {
-				if (invalidHeaderCharRegex.test(val)) {
-					continue;
-				}
-				if (headers[MAP][name] === undefined) {
-					headers[MAP][name] = [val];
-				} else {
-					headers[MAP][name].push(val);
-				}
-			}
-		} else if (!invalidHeaderCharRegex.test(obj[name])) {
-			headers[MAP][name] = [obj[name]];
-		}
-	}
-	return headers;
-}
-
-/**
- * response.js
- *
- * Response class provides content decoding
- */
-
-var _require$1 = require('http');
-
-const STATUS_CODES = _require$1.STATUS_CODES;
-
-
-const INTERNALS$1 = Symbol('Response internals');
-
-/**
- * Response class
- *
- * @param   Stream  body  Readable stream
- * @param   Object  opts  Response options
- * @return  Void
- */
-class Response {
-	constructor() {
-		let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
-		let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-		Body.call(this, body, opts);
-
-		const status = opts.status || 200;
-
-		this[INTERNALS$1] = {
-			url: opts.url,
-			status,
-			statusText: opts.statusText || STATUS_CODES[status],
-			headers: new Headers(opts.headers)
-		};
-	}
-
-	get url() {
-		return this[INTERNALS$1].url;
-	}
-
-	get status() {
-		return this[INTERNALS$1].status;
-	}
-
-	/**
-  * Convenience property representing if the request ended normally
-  */
-	get ok() {
-		return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
-	}
-
-	get statusText() {
-		return this[INTERNALS$1].statusText;
-	}
-
-	get headers() {
-		return this[INTERNALS$1].headers;
-	}
-
-	/**
-  * Clone this response
-  *
-  * @return  Response
-  */
-	clone() {
-		return new Response(clone(this), {
-			url: this.url,
-			status: this.status,
-			statusText: this.statusText,
-			headers: this.headers,
-			ok: this.ok
-		});
-	}
-}
-
-Body.mixIn(Response.prototype);
-
-Object.defineProperties(Response.prototype, {
-	url: { enumerable: true },
-	status: { enumerable: true },
-	ok: { enumerable: true },
-	statusText: { enumerable: true },
-	headers: { enumerable: true },
-	clone: { enumerable: true }
-});
-
-Object.defineProperty(Response.prototype, Symbol.toStringTag, {
-	value: 'Response',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * request.js
- *
- * Request class contains server only options
- *
- * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.
- */
-
-var _require$2 = require('url');
-
-const format_url = _require$2.format;
-const parse_url = _require$2.parse;
-
-
-const INTERNALS$2 = Symbol('Request internals');
-
-/**
- * Check if a value is an instance of Request.
- *
- * @param   Mixed   input
- * @return  Boolean
- */
-function isRequest(input) {
-	return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';
-}
-
-/**
- * Request class
- *
- * @param   Mixed   input  Url or Request instance
- * @param   Object  init   Custom options
- * @return  Void
- */
-class Request {
-	constructor(input) {
-		let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-		let parsedURL;
-
-		// normalize input
-		if (!isRequest(input)) {
-			if (input && input.href) {
-				// in order to support Node.js' Url objects; though WHATWG's URL objects
-				// will fall into this branch also (since their `toString()` will return
-				// `href` property anyway)
-				parsedURL = parse_url(input.href);
-			} else {
-				// coerce input to a string before attempting to parse
-				parsedURL = parse_url(`${input}`);
-			}
-			input = {};
-		} else {
-			parsedURL = parse_url(input.url);
-		}
-
-		let method = init.method || input.method || 'GET';
-		method = method.toUpperCase();
-
-		if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {
-			throw new TypeError('Request with GET/HEAD method cannot have body');
-		}
-
-		let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
-
-		Body.call(this, inputBody, {
-			timeout: init.timeout || input.timeout || 0,
-			size: init.size || input.size || 0
-		});
-
-		const headers = new Headers(init.headers || input.headers || {});
-
-		if (init.body != null) {
-			const contentType = extractContentType(this);
-			if (contentType !== null && !headers.has('Content-Type')) {
-				headers.append('Content-Type', contentType);
-			}
-		}
-
-		this[INTERNALS$2] = {
-			method,
-			redirect: init.redirect || input.redirect || 'follow',
-			headers,
-			parsedURL
-		};
-
-		// node-fetch-only options
-		this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;
-		this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
-		this.counter = init.counter || input.counter || 0;
-		this.agent = init.agent || input.agent;
-	}
-
-	get method() {
-		return this[INTERNALS$2].method;
-	}
-
-	get url() {
-		return format_url(this[INTERNALS$2].parsedURL);
-	}
-
-	get headers() {
-		return this[INTERNALS$2].headers;
-	}
-
-	get redirect() {
-		return this[INTERNALS$2].redirect;
-	}
-
-	/**
-  * Clone this request
-  *
-  * @return  Request
-  */
-	clone() {
-		return new Request(this);
-	}
-}
-
-Body.mixIn(Request.prototype);
-
-Object.defineProperty(Request.prototype, Symbol.toStringTag, {
-	value: 'Request',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-Object.defineProperties(Request.prototype, {
-	method: { enumerable: true },
-	url: { enumerable: true },
-	headers: { enumerable: true },
-	redirect: { enumerable: true },
-	clone: { enumerable: true }
-});
-
-/**
- * Convert a Request to Node.js http request options.
- *
- * @param   Request  A Request instance
- * @return  Object   The options object to be passed to http.request
- */
-function getNodeRequestOptions(request) {
-	const parsedURL = request[INTERNALS$2].parsedURL;
-	const headers = new Headers(request[INTERNALS$2].headers);
-
-	// fetch step 1.3
-	if (!headers.has('Accept')) {
-		headers.set('Accept', '*/*');
-	}
-
-	// Basic fetch
-	if (!parsedURL.protocol || !parsedURL.hostname) {
-		throw new TypeError('Only absolute URLs are supported');
-	}
-
-	if (!/^https?:$/.test(parsedURL.protocol)) {
-		throw new TypeError('Only HTTP(S) protocols are supported');
-	}
-
-	// HTTP-network-or-cache fetch steps 2.4-2.7
-	let contentLengthValue = null;
-	if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
-		contentLengthValue = '0';
-	}
-	if (request.body != null) {
-		const totalBytes = getTotalBytes(request);
-		if (typeof totalBytes === 'number') {
-			contentLengthValue = String(totalBytes);
-		}
-	}
-	if (contentLengthValue) {
-		headers.set('Content-Length', contentLengthValue);
-	}
-
-	// HTTP-network-or-cache fetch step 2.11
-	if (!headers.has('User-Agent')) {
-		headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
-	}
-
-	// HTTP-network-or-cache fetch step 2.15
-	if (request.compress) {
-		headers.set('Accept-Encoding', 'gzip,deflate');
-	}
-	if (!headers.has('Connection') && !request.agent) {
-		headers.set('Connection', 'close');
-	}
-
-	// HTTP-network fetch step 4.2
-	// chunked encoding is handled by Node.js
-
-	return Object.assign({}, parsedURL, {
-		method: request.method,
-		headers: exportNodeCompatibleHeaders(headers),
-		agent: request.agent
-	});
-}
-
-/**
- * index.js
- *
- * a request API compatible with window.fetch
- *
- * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.
- */
-
-const http = require('http');
-const https = require('https');
-
-var _require$3 = require('stream');
-
-const PassThrough$1 = _require$3.PassThrough;
-
-var _require2 = require('url');
-
-const resolve_url = _require2.resolve;
-
-const zlib = require('zlib');
-
-/**
- * Fetch function
- *
- * @param   Mixed    url   Absolute url or Request instance
- * @param   Object   opts  Fetch options
- * @return  Promise
- */
-function fetch(url, opts) {
-
-	// allow custom promise
-	if (!fetch.Promise) {
-		throw new Error('native promise missing, set fetch.Promise to your favorite alternative');
-	}
-
-	Body.Promise = fetch.Promise;
-
-	// wrap http.request into fetch
-	return new fetch.Promise(function (resolve, reject) {
-		// build request object
-		const request = new Request(url, opts);
-		const options = getNodeRequestOptions(request);
-
-		const send = (options.protocol === 'https:' ? https : http).request;
-
-		// send request
-		const req = send(options);
-		let reqTimeout;
-
-		function finalize() {
-			req.abort();
-			clearTimeout(reqTimeout);
-		}
-
-		if (request.timeout) {
-			req.once('socket', function (socket) {
-				reqTimeout = setTimeout(function () {
-					reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));
-					finalize();
-				}, request.timeout);
-			});
-		}
-
-		req.on('error', function (err) {
-			reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));
-			finalize();
-		});
-
-		req.on('response', function (res) {
-			clearTimeout(reqTimeout);
-
-			const headers = createHeadersLenient(res.headers);
-
-			// HTTP fetch step 5
-			if (fetch.isRedirect(res.statusCode)) {
-				// HTTP fetch step 5.2
-				const location = headers.get('Location');
-
-				// HTTP fetch step 5.3
-				const locationURL = location === null ? null : resolve_url(request.url, location);
-
-				// HTTP fetch step 5.5
-				switch (request.redirect) {
-					case 'error':
-						reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
-						finalize();
-						return;
-					case 'manual':
-						// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
-						if (locationURL !== null) {
-							headers.set('Location', locationURL);
-						}
-						break;
-					case 'follow':
-						// HTTP-redirect fetch step 2
-						if (locationURL === null) {
-							break;
-						}
-
-						// HTTP-redirect fetch step 5
-						if (request.counter >= request.follow) {
-							reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));
-							finalize();
-							return;
-						}
-
-						// HTTP-redirect fetch step 6 (counter increment)
-						// Create a new Request object.
-						const requestOpts = {
-							headers: new Headers(request.headers),
-							follow: request.follow,
-							counter: request.counter + 1,
-							agent: request.agent,
-							compress: request.compress,
-							method: request.method,
-							body: request.body
-						};
-
-						// HTTP-redirect fetch step 9
-						if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
-							reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));
-							finalize();
-							return;
-						}
-
-						// HTTP-redirect fetch step 11
-						if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {
-							requestOpts.method = 'GET';
-							requestOpts.body = undefined;
-							requestOpts.headers.delete('content-length');
-						}
-
-						// HTTP-redirect fetch step 15
-						resolve(fetch(new Request(locationURL, requestOpts)));
-						finalize();
-						return;
-				}
-			}
-
-			// prepare response
-			let body = res.pipe(new PassThrough$1());
-			const response_options = {
-				url: request.url,
-				status: res.statusCode,
-				statusText: res.statusMessage,
-				headers: headers,
-				size: request.size,
-				timeout: request.timeout
-			};
-
-			// HTTP-network fetch step 12.1.1.3
-			const codings = headers.get('Content-Encoding');
-
-			// HTTP-network fetch step 12.1.1.4: handle content codings
-
-			// in following scenarios we ignore compression support
-			// 1. compression support is disabled
-			// 2. HEAD request
-			// 3. no Content-Encoding header
-			// 4. no content response (204)
-			// 5. content not modified response (304)
-			if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
-				resolve(new Response(body, response_options));
-				return;
-			}
-
-			// For Node v6+
-			// Be less strict when decoding compressed responses, since sometimes
-			// servers send slightly invalid responses that are still accepted
-			// by common browsers.
-			// Always using Z_SYNC_FLUSH is what cURL does.
-			const zlibOptions = {
-				flush: zlib.Z_SYNC_FLUSH,
-				finishFlush: zlib.Z_SYNC_FLUSH
-			};
-
-			// for gzip
-			if (codings == 'gzip' || codings == 'x-gzip') {
-				body = body.pipe(zlib.createGunzip(zlibOptions));
-				resolve(new Response(body, response_options));
-				return;
-			}
-
-			// for deflate
-			if (codings == 'deflate' || codings == 'x-deflate') {
-				// handle the infamous raw deflate response from old servers
-				// a hack for old IIS and Apache servers
-				const raw = res.pipe(new PassThrough$1());
-				raw.once('data', function (chunk) {
-					// see http://stackoverflow.com/questions/37519828
-					if ((chunk[0] & 0x0F) === 0x08) {
-						body = body.pipe(zlib.createInflate());
-					} else {
-						body = body.pipe(zlib.createInflateRaw());
-					}
-					resolve(new Response(body, response_options));
-				});
-				return;
-			}
-
-			// otherwise, use response as-is
-			resolve(new Response(body, response_options));
-		});
-
-		writeToStream(req, request);
-	});
-}
-
-/**
- * Redirect code matching
- *
- * @param   Number   code  Status code
- * @return  Boolean
- */
-fetch.isRedirect = function (code) {
-	return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
-};
-
-// Needed for TypeScript.
-fetch.default = fetch;
-
-// expose Promise
-fetch.Promise = global.Promise;
-
-export default fetch;
-export { Headers, Request, Response, FetchError };
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/lib/index.js b/node_modules/cross-fetch/node_modules/node-fetch/lib/index.js
deleted file mode 100644
index f08ceb5..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/lib/index.js
+++ /dev/null
@@ -1,1557 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
-// (MIT licensed)
-
-const BUFFER = Symbol('buffer');
-const TYPE = Symbol('type');
-
-class Blob {
-	constructor() {
-		this[TYPE] = '';
-
-		const blobParts = arguments[0];
-		const options = arguments[1];
-
-		const buffers = [];
-
-		if (blobParts) {
-			const a = blobParts;
-			const length = Number(a.length);
-			for (let i = 0; i < length; i++) {
-				const element = a[i];
-				let buffer;
-				if (element instanceof Buffer) {
-					buffer = element;
-				} else if (ArrayBuffer.isView(element)) {
-					buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
-				} else if (element instanceof ArrayBuffer) {
-					buffer = Buffer.from(element);
-				} else if (element instanceof Blob) {
-					buffer = element[BUFFER];
-				} else {
-					buffer = Buffer.from(typeof element === 'string' ? element : String(element));
-				}
-				buffers.push(buffer);
-			}
-		}
-
-		this[BUFFER] = Buffer.concat(buffers);
-
-		let type = options && options.type !== undefined && String(options.type).toLowerCase();
-		if (type && !/[^\u0020-\u007E]/.test(type)) {
-			this[TYPE] = type;
-		}
-	}
-	get size() {
-		return this[BUFFER].length;
-	}
-	get type() {
-		return this[TYPE];
-	}
-	slice() {
-		const size = this.size;
-
-		const start = arguments[0];
-		const end = arguments[1];
-		let relativeStart, relativeEnd;
-		if (start === undefined) {
-			relativeStart = 0;
-		} else if (start < 0) {
-			relativeStart = Math.max(size + start, 0);
-		} else {
-			relativeStart = Math.min(start, size);
-		}
-		if (end === undefined) {
-			relativeEnd = size;
-		} else if (end < 0) {
-			relativeEnd = Math.max(size + end, 0);
-		} else {
-			relativeEnd = Math.min(end, size);
-		}
-		const span = Math.max(relativeEnd - relativeStart, 0);
-
-		const buffer = this[BUFFER];
-		const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
-		const blob = new Blob([], { type: arguments[2] });
-		blob[BUFFER] = slicedBuffer;
-		return blob;
-	}
-}
-
-Object.defineProperties(Blob.prototype, {
-	size: { enumerable: true },
-	type: { enumerable: true },
-	slice: { enumerable: true }
-});
-
-Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
-	value: 'Blob',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * fetch-error.js
- *
- * FetchError interface for operational errors
- */
-
-/**
- * Create FetchError instance
- *
- * @param   String      message      Error message for human
- * @param   String      type         Error type for machine
- * @param   String      systemError  For Node.js system error
- * @return  FetchError
- */
-function FetchError(message, type, systemError) {
-  Error.call(this, message);
-
-  this.message = message;
-  this.type = type;
-
-  // when err.type is `system`, err.code contains system error code
-  if (systemError) {
-    this.code = this.errno = systemError.code;
-  }
-
-  // hide custom error implementation details from end-users
-  Error.captureStackTrace(this, this.constructor);
-}
-
-FetchError.prototype = Object.create(Error.prototype);
-FetchError.prototype.constructor = FetchError;
-FetchError.prototype.name = 'FetchError';
-
-/**
- * body.js
- *
- * Body interface provides common methods for Request and Response
- */
-
-const Stream = require('stream');
-
-var _require = require('stream');
-
-const PassThrough = _require.PassThrough;
-
-
-let convert;
-try {
-	convert = require('encoding').convert;
-} catch (e) {}
-
-const INTERNALS = Symbol('Body internals');
-
-/**
- * Body mixin
- *
- * Ref: https://fetch.spec.whatwg.org/#body
- *
- * @param   Stream  body  Readable stream
- * @param   Object  opts  Response options
- * @return  Void
- */
-function Body(body) {
-	var _this = this;
-
-	var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
-	    _ref$size = _ref.size;
-
-	let size = _ref$size === undefined ? 0 : _ref$size;
-	var _ref$timeout = _ref.timeout;
-	let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;
-
-	if (body == null) {
-		// body is undefined or null
-		body = null;
-	} else if (typeof body === 'string') {
-		// body is string
-	} else if (isURLSearchParams(body)) {
-		// body is a URLSearchParams
-	} else if (body instanceof Blob) {
-		// body is blob
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-	} else if (body instanceof Stream) {
-		// body is stream
-	} else {
-		// none of the above
-		// coerce to string
-		body = String(body);
-	}
-	this[INTERNALS] = {
-		body,
-		disturbed: false,
-		error: null
-	};
-	this.size = size;
-	this.timeout = timeout;
-
-	if (body instanceof Stream) {
-		body.on('error', function (err) {
-			_this[INTERNALS].error = new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);
-		});
-	}
-}
-
-Body.prototype = {
-	get body() {
-		return this[INTERNALS].body;
-	},
-
-	get bodyUsed() {
-		return this[INTERNALS].disturbed;
-	},
-
-	/**
-  * Decode response as ArrayBuffer
-  *
-  * @return  Promise
-  */
-	arrayBuffer() {
-		return consumeBody.call(this).then(function (buf) {
-			return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
-		});
-	},
-
-	/**
-  * Return raw response as Blob
-  *
-  * @return Promise
-  */
-	blob() {
-		let ct = this.headers && this.headers.get('content-type') || '';
-		return consumeBody.call(this).then(function (buf) {
-			return Object.assign(
-			// Prevent copying
-			new Blob([], {
-				type: ct.toLowerCase()
-			}), {
-				[BUFFER]: buf
-			});
-		});
-	},
-
-	/**
-  * Decode response as json
-  *
-  * @return  Promise
-  */
-	json() {
-		var _this2 = this;
-
-		return consumeBody.call(this).then(function (buffer) {
-			try {
-				return JSON.parse(buffer.toString());
-			} catch (err) {
-				return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));
-			}
-		});
-	},
-
-	/**
-  * Decode response as text
-  *
-  * @return  Promise
-  */
-	text() {
-		return consumeBody.call(this).then(function (buffer) {
-			return buffer.toString();
-		});
-	},
-
-	/**
-  * Decode response as buffer (non-spec api)
-  *
-  * @return  Promise
-  */
-	buffer() {
-		return consumeBody.call(this);
-	},
-
-	/**
-  * Decode response as text, while automatically detecting the encoding and
-  * trying to decode to UTF-8 (non-spec api)
-  *
-  * @return  Promise
-  */
-	textConverted() {
-		var _this3 = this;
-
-		return consumeBody.call(this).then(function (buffer) {
-			return convertBody(buffer, _this3.headers);
-		});
-	}
-
-};
-
-// In browsers, all properties are enumerable.
-Object.defineProperties(Body.prototype, {
-	body: { enumerable: true },
-	bodyUsed: { enumerable: true },
-	arrayBuffer: { enumerable: true },
-	blob: { enumerable: true },
-	json: { enumerable: true },
-	text: { enumerable: true }
-});
-
-Body.mixIn = function (proto) {
-	for (const name of Object.getOwnPropertyNames(Body.prototype)) {
-		// istanbul ignore else: future proof
-		if (!(name in proto)) {
-			const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
-			Object.defineProperty(proto, name, desc);
-		}
-	}
-};
-
-/**
- * Consume and convert an entire Body to a Buffer.
- *
- * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body
- *
- * @return  Promise
- */
-function consumeBody() {
-	var _this4 = this;
-
-	if (this[INTERNALS].disturbed) {
-		return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
-	}
-
-	this[INTERNALS].disturbed = true;
-
-	if (this[INTERNALS].error) {
-		return Body.Promise.reject(this[INTERNALS].error);
-	}
-
-	// body is null
-	if (this.body === null) {
-		return Body.Promise.resolve(Buffer.alloc(0));
-	}
-
-	// body is string
-	if (typeof this.body === 'string') {
-		return Body.Promise.resolve(Buffer.from(this.body));
-	}
-
-	// body is blob
-	if (this.body instanceof Blob) {
-		return Body.Promise.resolve(this.body[BUFFER]);
-	}
-
-	// body is buffer
-	if (Buffer.isBuffer(this.body)) {
-		return Body.Promise.resolve(this.body);
-	}
-
-	// body is buffer
-	if (Object.prototype.toString.call(this.body) === '[object ArrayBuffer]') {
-		return Body.Promise.resolve(Buffer.from(this.body));
-	}
-
-	// istanbul ignore if: should never happen
-	if (!(this.body instanceof Stream)) {
-		return Body.Promise.resolve(Buffer.alloc(0));
-	}
-
-	// body is stream
-	// get ready to actually consume the body
-	let accum = [];
-	let accumBytes = 0;
-	let abort = false;
-
-	return new Body.Promise(function (resolve, reject) {
-		let resTimeout;
-
-		// allow timeout on slow response body
-		if (_this4.timeout) {
-			resTimeout = setTimeout(function () {
-				abort = true;
-				reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));
-			}, _this4.timeout);
-		}
-
-		// handle stream error, such as incorrect content-encoding
-		_this4.body.on('error', function (err) {
-			reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));
-		});
-
-		_this4.body.on('data', function (chunk) {
-			if (abort || chunk === null) {
-				return;
-			}
-
-			if (_this4.size && accumBytes + chunk.length > _this4.size) {
-				abort = true;
-				reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));
-				return;
-			}
-
-			accumBytes += chunk.length;
-			accum.push(chunk);
-		});
-
-		_this4.body.on('end', function () {
-			if (abort) {
-				return;
-			}
-
-			clearTimeout(resTimeout);
-
-			try {
-				resolve(Buffer.concat(accum));
-			} catch (err) {
-				// handle streams that have accumulated too much data (issue #414)
-				reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));
-			}
-		});
-	});
-}
-
-/**
- * Detect buffer encoding and convert to target encoding
- * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
- *
- * @param   Buffer  buffer    Incoming buffer
- * @param   String  encoding  Target encoding
- * @return  String
- */
-function convertBody(buffer, headers) {
-	if (typeof convert !== 'function') {
-		throw new Error('The package `encoding` must be installed to use the textConverted() function');
-	}
-
-	const ct = headers.get('content-type');
-	let charset = 'utf-8';
-	let res, str;
-
-	// header
-	if (ct) {
-		res = /charset=([^;]*)/i.exec(ct);
-	}
-
-	// no charset in content type, peek at response body for at most 1024 bytes
-	str = buffer.slice(0, 1024).toString();
-
-	// html5
-	if (!res && str) {
-		res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str);
-	}
-
-	// html4
-	if (!res && str) {
-		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
-
-		if (res) {
-			res = /charset=(.*)/i.exec(res.pop());
-		}
-	}
-
-	// xml
-	if (!res && str) {
-		res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str);
-	}
-
-	// found charset
-	if (res) {
-		charset = res.pop();
-
-		// prevent decode issues when sites use incorrect encoding
-		// ref: https://hsivonen.fi/encoding-menu/
-		if (charset === 'gb2312' || charset === 'gbk') {
-			charset = 'gb18030';
-		}
-	}
-
-	// turn raw buffers into a single utf-8 buffer
-	return convert(buffer, 'UTF-8', charset).toString();
-}
-
-/**
- * Detect a URLSearchParams object
- * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143
- *
- * @param   Object  obj     Object to detect by type or brand
- * @return  String
- */
-function isURLSearchParams(obj) {
-	// Duck-typing as a necessary condition.
-	if (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {
-		return false;
-	}
-
-	// Brand-checking and more duck-typing as optional condition.
-	return obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';
-}
-
-/**
- * Clone body given Res/Req instance
- *
- * @param   Mixed  instance  Response or Request instance
- * @return  Mixed
- */
-function clone(instance) {
-	let p1, p2;
-	let body = instance.body;
-
-	// don't allow cloning a used body
-	if (instance.bodyUsed) {
-		throw new Error('cannot clone body after it is used');
-	}
-
-	// check that body is a stream and not form-data object
-	// note: we can't clone the form-data object without having it as a dependency
-	if (body instanceof Stream && typeof body.getBoundary !== 'function') {
-		// tee instance body
-		p1 = new PassThrough();
-		p2 = new PassThrough();
-		body.pipe(p1);
-		body.pipe(p2);
-		// set instance body to teed body and return the other teed body
-		instance[INTERNALS].body = p1;
-		body = p2;
-	}
-
-	return body;
-}
-
-/**
- * Performs the operation "extract a `Content-Type` value from |object|" as
- * specified in the specification:
- * https://fetch.spec.whatwg.org/#concept-bodyinit-extract
- *
- * This function assumes that instance.body is present.
- *
- * @param   Mixed  instance  Response or Request instance
- */
-function extractContentType(instance) {
-	const body = instance.body;
-
-	// istanbul ignore if: Currently, because of a guard in Request, body
-	// can never be null. Included here for completeness.
-
-	if (body === null) {
-		// body is null
-		return null;
-	} else if (typeof body === 'string') {
-		// body is string
-		return 'text/plain;charset=UTF-8';
-	} else if (isURLSearchParams(body)) {
-		// body is a URLSearchParams
-		return 'application/x-www-form-urlencoded;charset=UTF-8';
-	} else if (body instanceof Blob) {
-		// body is blob
-		return body.type || null;
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		return null;
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		return null;
-	} else if (typeof body.getBoundary === 'function') {
-		// detect form data input from form-data module
-		return `multipart/form-data;boundary=${body.getBoundary()}`;
-	} else {
-		// body is stream
-		// can't really do much about this
-		return null;
-	}
-}
-
-/**
- * The Fetch Standard treats this as if "total bytes" is a property on the body.
- * For us, we have to explicitly get it with a function.
- *
- * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes
- *
- * @param   Body    instance   Instance of Body
- * @return  Number?            Number of bytes, or null if not possible
- */
-function getTotalBytes(instance) {
-	const body = instance.body;
-
-	// istanbul ignore if: included for completion
-
-	if (body === null) {
-		// body is null
-		return 0;
-	} else if (typeof body === 'string') {
-		// body is string
-		return Buffer.byteLength(body);
-	} else if (isURLSearchParams(body)) {
-		// body is URLSearchParams
-		return Buffer.byteLength(String(body));
-	} else if (body instanceof Blob) {
-		// body is blob
-		return body.size;
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		return body.length;
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		return body.byteLength;
-	} else if (body && typeof body.getLengthSync === 'function') {
-		// detect form data input from form-data module
-		if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x
-		body.hasKnownLength && body.hasKnownLength()) {
-			// 2.x
-			return body.getLengthSync();
-		}
-		return null;
-	} else {
-		// body is stream
-		// can't really do much about this
-		return null;
-	}
-}
-
-/**
- * Write a Body to a Node.js WritableStream (e.g. http.Request) object.
- *
- * @param   Body    instance   Instance of Body
- * @return  Void
- */
-function writeToStream(dest, instance) {
-	const body = instance.body;
-
-
-	if (body === null) {
-		// body is null
-		dest.end();
-	} else if (typeof body === 'string') {
-		// body is string
-		dest.write(body);
-		dest.end();
-	} else if (isURLSearchParams(body)) {
-		// body is URLSearchParams
-		dest.write(Buffer.from(String(body)));
-		dest.end();
-	} else if (body instanceof Blob) {
-		// body is blob
-		dest.write(body[BUFFER]);
-		dest.end();
-	} else if (Buffer.isBuffer(body)) {
-		// body is buffer
-		dest.write(body);
-		dest.end();
-	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
-		// body is array buffer
-		dest.write(Buffer.from(body));
-		dest.end();
-	} else {
-		// body is stream
-		body.pipe(dest);
-	}
-}
-
-// expose Promise
-Body.Promise = global.Promise;
-
-/**
- * headers.js
- *
- * Headers class offers convenient helpers
- */
-
-const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/;
-const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
-
-function validateName(name) {
-	name = `${name}`;
-	if (invalidTokenRegex.test(name)) {
-		throw new TypeError(`${name} is not a legal HTTP header name`);
-	}
-}
-
-function validateValue(value) {
-	value = `${value}`;
-	if (invalidHeaderCharRegex.test(value)) {
-		throw new TypeError(`${value} is not a legal HTTP header value`);
-	}
-}
-
-/**
- * Find the key in the map object given a header name.
- *
- * Returns undefined if not found.
- *
- * @param   String  name  Header name
- * @return  String|Undefined
- */
-function find(map, name) {
-	name = name.toLowerCase();
-	for (const key in map) {
-		if (key.toLowerCase() === name) {
-			return key;
-		}
-	}
-	return undefined;
-}
-
-const MAP = Symbol('map');
-class Headers {
-	/**
-  * Headers class
-  *
-  * @param   Object  headers  Response headers
-  * @return  Void
-  */
-	constructor() {
-		let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
-
-		this[MAP] = Object.create(null);
-
-		if (init instanceof Headers) {
-			const rawHeaders = init.raw();
-			const headerNames = Object.keys(rawHeaders);
-
-			for (const headerName of headerNames) {
-				for (const value of rawHeaders[headerName]) {
-					this.append(headerName, value);
-				}
-			}
-
-			return;
-		}
-
-		// We don't worry about converting prop to ByteString here as append()
-		// will handle it.
-		if (init == null) {
-			// no op
-		} else if (typeof init === 'object') {
-			const method = init[Symbol.iterator];
-			if (method != null) {
-				if (typeof method !== 'function') {
-					throw new TypeError('Header pairs must be iterable');
-				}
-
-				// sequence<sequence<ByteString>>
-				// Note: per spec we have to first exhaust the lists then process them
-				const pairs = [];
-				for (const pair of init) {
-					if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
-						throw new TypeError('Each header pair must be iterable');
-					}
-					pairs.push(Array.from(pair));
-				}
-
-				for (const pair of pairs) {
-					if (pair.length !== 2) {
-						throw new TypeError('Each header pair must be a name/value tuple');
-					}
-					this.append(pair[0], pair[1]);
-				}
-			} else {
-				// record<ByteString, ByteString>
-				for (const key of Object.keys(init)) {
-					const value = init[key];
-					this.append(key, value);
-				}
-			}
-		} else {
-			throw new TypeError('Provided initializer must be an object');
-		}
-	}
-
-	/**
-  * Return combined header value given name
-  *
-  * @param   String  name  Header name
-  * @return  Mixed
-  */
-	get(name) {
-		name = `${name}`;
-		validateName(name);
-		const key = find(this[MAP], name);
-		if (key === undefined) {
-			return null;
-		}
-
-		return this[MAP][key].join(', ');
-	}
-
-	/**
-  * Iterate over all headers
-  *
-  * @param   Function  callback  Executed for each item with parameters (value, name, thisArg)
-  * @param   Boolean   thisArg   `this` context for callback function
-  * @return  Void
-  */
-	forEach(callback) {
-		let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
-
-		let pairs = getHeaders(this);
-		let i = 0;
-		while (i < pairs.length) {
-			var _pairs$i = pairs[i];
-			const name = _pairs$i[0],
-			      value = _pairs$i[1];
-
-			callback.call(thisArg, value, name, this);
-			pairs = getHeaders(this);
-			i++;
-		}
-	}
-
-	/**
-  * Overwrite header values given name
-  *
-  * @param   String  name   Header name
-  * @param   String  value  Header value
-  * @return  Void
-  */
-	set(name, value) {
-		name = `${name}`;
-		value = `${value}`;
-		validateName(name);
-		validateValue(value);
-		const key = find(this[MAP], name);
-		this[MAP][key !== undefined ? key : name] = [value];
-	}
-
-	/**
-  * Append a value onto existing header
-  *
-  * @param   String  name   Header name
-  * @param   String  value  Header value
-  * @return  Void
-  */
-	append(name, value) {
-		name = `${name}`;
-		value = `${value}`;
-		validateName(name);
-		validateValue(value);
-		const key = find(this[MAP], name);
-		if (key !== undefined) {
-			this[MAP][key].push(value);
-		} else {
-			this[MAP][name] = [value];
-		}
-	}
-
-	/**
-  * Check for header name existence
-  *
-  * @param   String   name  Header name
-  * @return  Boolean
-  */
-	has(name) {
-		name = `${name}`;
-		validateName(name);
-		return find(this[MAP], name) !== undefined;
-	}
-
-	/**
-  * Delete all header values given name
-  *
-  * @param   String  name  Header name
-  * @return  Void
-  */
-	delete(name) {
-		name = `${name}`;
-		validateName(name);
-		const key = find(this[MAP], name);
-		if (key !== undefined) {
-			delete this[MAP][key];
-		}
-	}
-
-	/**
-  * Return raw headers (non-spec api)
-  *
-  * @return  Object
-  */
-	raw() {
-		return this[MAP];
-	}
-
-	/**
-  * Get an iterator on keys.
-  *
-  * @return  Iterator
-  */
-	keys() {
-		return createHeadersIterator(this, 'key');
-	}
-
-	/**
-  * Get an iterator on values.
-  *
-  * @return  Iterator
-  */
-	values() {
-		return createHeadersIterator(this, 'value');
-	}
-
-	/**
-  * Get an iterator on entries.
-  *
-  * This is the default iterator of the Headers object.
-  *
-  * @return  Iterator
-  */
-	[Symbol.iterator]() {
-		return createHeadersIterator(this, 'key+value');
-	}
-}
-Headers.prototype.entries = Headers.prototype[Symbol.iterator];
-
-Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
-	value: 'Headers',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-Object.defineProperties(Headers.prototype, {
-	get: { enumerable: true },
-	forEach: { enumerable: true },
-	set: { enumerable: true },
-	append: { enumerable: true },
-	has: { enumerable: true },
-	delete: { enumerable: true },
-	keys: { enumerable: true },
-	values: { enumerable: true },
-	entries: { enumerable: true }
-});
-
-function getHeaders(headers) {
-	let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';
-
-	const keys = Object.keys(headers[MAP]).sort();
-	return keys.map(kind === 'key' ? function (k) {
-		return k.toLowerCase();
-	} : kind === 'value' ? function (k) {
-		return headers[MAP][k].join(', ');
-	} : function (k) {
-		return [k.toLowerCase(), headers[MAP][k].join(', ')];
-	});
-}
-
-const INTERNAL = Symbol('internal');
-
-function createHeadersIterator(target, kind) {
-	const iterator = Object.create(HeadersIteratorPrototype);
-	iterator[INTERNAL] = {
-		target,
-		kind,
-		index: 0
-	};
-	return iterator;
-}
-
-const HeadersIteratorPrototype = Object.setPrototypeOf({
-	next() {
-		// istanbul ignore if
-		if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
-			throw new TypeError('Value of `this` is not a HeadersIterator');
-		}
-
-		var _INTERNAL = this[INTERNAL];
-		const target = _INTERNAL.target,
-		      kind = _INTERNAL.kind,
-		      index = _INTERNAL.index;
-
-		const values = getHeaders(target, kind);
-		const len = values.length;
-		if (index >= len) {
-			return {
-				value: undefined,
-				done: true
-			};
-		}
-
-		this[INTERNAL].index = index + 1;
-
-		return {
-			value: values[index],
-			done: false
-		};
-	}
-}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
-
-Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
-	value: 'HeadersIterator',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * Export the Headers object in a form that Node.js can consume.
- *
- * @param   Headers  headers
- * @return  Object
- */
-function exportNodeCompatibleHeaders(headers) {
-	const obj = Object.assign({ __proto__: null }, headers[MAP]);
-
-	// http.request() only supports string as Host header. This hack makes
-	// specifying custom Host header possible.
-	const hostHeaderKey = find(headers[MAP], 'Host');
-	if (hostHeaderKey !== undefined) {
-		obj[hostHeaderKey] = obj[hostHeaderKey][0];
-	}
-
-	return obj;
-}
-
-/**
- * Create a Headers object from an object of headers, ignoring those that do
- * not conform to HTTP grammar productions.
- *
- * @param   Object  obj  Object of headers
- * @return  Headers
- */
-function createHeadersLenient(obj) {
-	const headers = new Headers();
-	for (const name of Object.keys(obj)) {
-		if (invalidTokenRegex.test(name)) {
-			continue;
-		}
-		if (Array.isArray(obj[name])) {
-			for (const val of obj[name]) {
-				if (invalidHeaderCharRegex.test(val)) {
-					continue;
-				}
-				if (headers[MAP][name] === undefined) {
-					headers[MAP][name] = [val];
-				} else {
-					headers[MAP][name].push(val);
-				}
-			}
-		} else if (!invalidHeaderCharRegex.test(obj[name])) {
-			headers[MAP][name] = [obj[name]];
-		}
-	}
-	return headers;
-}
-
-/**
- * response.js
- *
- * Response class provides content decoding
- */
-
-var _require$1 = require('http');
-
-const STATUS_CODES = _require$1.STATUS_CODES;
-
-
-const INTERNALS$1 = Symbol('Response internals');
-
-/**
- * Response class
- *
- * @param   Stream  body  Readable stream
- * @param   Object  opts  Response options
- * @return  Void
- */
-class Response {
-	constructor() {
-		let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
-		let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-		Body.call(this, body, opts);
-
-		const status = opts.status || 200;
-
-		this[INTERNALS$1] = {
-			url: opts.url,
-			status,
-			statusText: opts.statusText || STATUS_CODES[status],
-			headers: new Headers(opts.headers)
-		};
-	}
-
-	get url() {
-		return this[INTERNALS$1].url;
-	}
-
-	get status() {
-		return this[INTERNALS$1].status;
-	}
-
-	/**
-  * Convenience property representing if the request ended normally
-  */
-	get ok() {
-		return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
-	}
-
-	get statusText() {
-		return this[INTERNALS$1].statusText;
-	}
-
-	get headers() {
-		return this[INTERNALS$1].headers;
-	}
-
-	/**
-  * Clone this response
-  *
-  * @return  Response
-  */
-	clone() {
-		return new Response(clone(this), {
-			url: this.url,
-			status: this.status,
-			statusText: this.statusText,
-			headers: this.headers,
-			ok: this.ok
-		});
-	}
-}
-
-Body.mixIn(Response.prototype);
-
-Object.defineProperties(Response.prototype, {
-	url: { enumerable: true },
-	status: { enumerable: true },
-	ok: { enumerable: true },
-	statusText: { enumerable: true },
-	headers: { enumerable: true },
-	clone: { enumerable: true }
-});
-
-Object.defineProperty(Response.prototype, Symbol.toStringTag, {
-	value: 'Response',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-/**
- * request.js
- *
- * Request class contains server only options
- *
- * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.
- */
-
-var _require$2 = require('url');
-
-const format_url = _require$2.format;
-const parse_url = _require$2.parse;
-
-
-const INTERNALS$2 = Symbol('Request internals');
-
-/**
- * Check if a value is an instance of Request.
- *
- * @param   Mixed   input
- * @return  Boolean
- */
-function isRequest(input) {
-	return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';
-}
-
-/**
- * Request class
- *
- * @param   Mixed   input  Url or Request instance
- * @param   Object  init   Custom options
- * @return  Void
- */
-class Request {
-	constructor(input) {
-		let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-		let parsedURL;
-
-		// normalize input
-		if (!isRequest(input)) {
-			if (input && input.href) {
-				// in order to support Node.js' Url objects; though WHATWG's URL objects
-				// will fall into this branch also (since their `toString()` will return
-				// `href` property anyway)
-				parsedURL = parse_url(input.href);
-			} else {
-				// coerce input to a string before attempting to parse
-				parsedURL = parse_url(`${input}`);
-			}
-			input = {};
-		} else {
-			parsedURL = parse_url(input.url);
-		}
-
-		let method = init.method || input.method || 'GET';
-		method = method.toUpperCase();
-
-		if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {
-			throw new TypeError('Request with GET/HEAD method cannot have body');
-		}
-
-		let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
-
-		Body.call(this, inputBody, {
-			timeout: init.timeout || input.timeout || 0,
-			size: init.size || input.size || 0
-		});
-
-		const headers = new Headers(init.headers || input.headers || {});
-
-		if (init.body != null) {
-			const contentType = extractContentType(this);
-			if (contentType !== null && !headers.has('Content-Type')) {
-				headers.append('Content-Type', contentType);
-			}
-		}
-
-		this[INTERNALS$2] = {
-			method,
-			redirect: init.redirect || input.redirect || 'follow',
-			headers,
-			parsedURL
-		};
-
-		// node-fetch-only options
-		this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;
-		this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
-		this.counter = init.counter || input.counter || 0;
-		this.agent = init.agent || input.agent;
-	}
-
-	get method() {
-		return this[INTERNALS$2].method;
-	}
-
-	get url() {
-		return format_url(this[INTERNALS$2].parsedURL);
-	}
-
-	get headers() {
-		return this[INTERNALS$2].headers;
-	}
-
-	get redirect() {
-		return this[INTERNALS$2].redirect;
-	}
-
-	/**
-  * Clone this request
-  *
-  * @return  Request
-  */
-	clone() {
-		return new Request(this);
-	}
-}
-
-Body.mixIn(Request.prototype);
-
-Object.defineProperty(Request.prototype, Symbol.toStringTag, {
-	value: 'Request',
-	writable: false,
-	enumerable: false,
-	configurable: true
-});
-
-Object.defineProperties(Request.prototype, {
-	method: { enumerable: true },
-	url: { enumerable: true },
-	headers: { enumerable: true },
-	redirect: { enumerable: true },
-	clone: { enumerable: true }
-});
-
-/**
- * Convert a Request to Node.js http request options.
- *
- * @param   Request  A Request instance
- * @return  Object   The options object to be passed to http.request
- */
-function getNodeRequestOptions(request) {
-	const parsedURL = request[INTERNALS$2].parsedURL;
-	const headers = new Headers(request[INTERNALS$2].headers);
-
-	// fetch step 1.3
-	if (!headers.has('Accept')) {
-		headers.set('Accept', '*/*');
-	}
-
-	// Basic fetch
-	if (!parsedURL.protocol || !parsedURL.hostname) {
-		throw new TypeError('Only absolute URLs are supported');
-	}
-
-	if (!/^https?:$/.test(parsedURL.protocol)) {
-		throw new TypeError('Only HTTP(S) protocols are supported');
-	}
-
-	// HTTP-network-or-cache fetch steps 2.4-2.7
-	let contentLengthValue = null;
-	if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
-		contentLengthValue = '0';
-	}
-	if (request.body != null) {
-		const totalBytes = getTotalBytes(request);
-		if (typeof totalBytes === 'number') {
-			contentLengthValue = String(totalBytes);
-		}
-	}
-	if (contentLengthValue) {
-		headers.set('Content-Length', contentLengthValue);
-	}
-
-	// HTTP-network-or-cache fetch step 2.11
-	if (!headers.has('User-Agent')) {
-		headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
-	}
-
-	// HTTP-network-or-cache fetch step 2.15
-	if (request.compress) {
-		headers.set('Accept-Encoding', 'gzip,deflate');
-	}
-	if (!headers.has('Connection') && !request.agent) {
-		headers.set('Connection', 'close');
-	}
-
-	// HTTP-network fetch step 4.2
-	// chunked encoding is handled by Node.js
-
-	return Object.assign({}, parsedURL, {
-		method: request.method,
-		headers: exportNodeCompatibleHeaders(headers),
-		agent: request.agent
-	});
-}
-
-/**
- * index.js
- *
- * a request API compatible with window.fetch
- *
- * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.
- */
-
-const http = require('http');
-const https = require('https');
-
-var _require$3 = require('stream');
-
-const PassThrough$1 = _require$3.PassThrough;
-
-var _require2 = require('url');
-
-const resolve_url = _require2.resolve;
-
-const zlib = require('zlib');
-
-/**
- * Fetch function
- *
- * @param   Mixed    url   Absolute url or Request instance
- * @param   Object   opts  Fetch options
- * @return  Promise
- */
-function fetch(url, opts) {
-
-	// allow custom promise
-	if (!fetch.Promise) {
-		throw new Error('native promise missing, set fetch.Promise to your favorite alternative');
-	}
-
-	Body.Promise = fetch.Promise;
-
-	// wrap http.request into fetch
-	return new fetch.Promise(function (resolve, reject) {
-		// build request object
-		const request = new Request(url, opts);
-		const options = getNodeRequestOptions(request);
-
-		const send = (options.protocol === 'https:' ? https : http).request;
-
-		// send request
-		const req = send(options);
-		let reqTimeout;
-
-		function finalize() {
-			req.abort();
-			clearTimeout(reqTimeout);
-		}
-
-		if (request.timeout) {
-			req.once('socket', function (socket) {
-				reqTimeout = setTimeout(function () {
-					reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));
-					finalize();
-				}, request.timeout);
-			});
-		}
-
-		req.on('error', function (err) {
-			reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));
-			finalize();
-		});
-
-		req.on('response', function (res) {
-			clearTimeout(reqTimeout);
-
-			const headers = createHeadersLenient(res.headers);
-
-			// HTTP fetch step 5
-			if (fetch.isRedirect(res.statusCode)) {
-				// HTTP fetch step 5.2
-				const location = headers.get('Location');
-
-				// HTTP fetch step 5.3
-				const locationURL = location === null ? null : resolve_url(request.url, location);
-
-				// HTTP fetch step 5.5
-				switch (request.redirect) {
-					case 'error':
-						reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
-						finalize();
-						return;
-					case 'manual':
-						// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
-						if (locationURL !== null) {
-							headers.set('Location', locationURL);
-						}
-						break;
-					case 'follow':
-						// HTTP-redirect fetch step 2
-						if (locationURL === null) {
-							break;
-						}
-
-						// HTTP-redirect fetch step 5
-						if (request.counter >= request.follow) {
-							reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));
-							finalize();
-							return;
-						}
-
-						// HTTP-redirect fetch step 6 (counter increment)
-						// Create a new Request object.
-						const requestOpts = {
-							headers: new Headers(request.headers),
-							follow: request.follow,
-							counter: request.counter + 1,
-							agent: request.agent,
-							compress: request.compress,
-							method: request.method,
-							body: request.body
-						};
-
-						// HTTP-redirect fetch step 9
-						if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
-							reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));
-							finalize();
-							return;
-						}
-
-						// HTTP-redirect fetch step 11
-						if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {
-							requestOpts.method = 'GET';
-							requestOpts.body = undefined;
-							requestOpts.headers.delete('content-length');
-						}
-
-						// HTTP-redirect fetch step 15
-						resolve(fetch(new Request(locationURL, requestOpts)));
-						finalize();
-						return;
-				}
-			}
-
-			// prepare response
-			let body = res.pipe(new PassThrough$1());
-			const response_options = {
-				url: request.url,
-				status: res.statusCode,
-				statusText: res.statusMessage,
-				headers: headers,
-				size: request.size,
-				timeout: request.timeout
-			};
-
-			// HTTP-network fetch step 12.1.1.3
-			const codings = headers.get('Content-Encoding');
-
-			// HTTP-network fetch step 12.1.1.4: handle content codings
-
-			// in following scenarios we ignore compression support
-			// 1. compression support is disabled
-			// 2. HEAD request
-			// 3. no Content-Encoding header
-			// 4. no content response (204)
-			// 5. content not modified response (304)
-			if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
-				resolve(new Response(body, response_options));
-				return;
-			}
-
-			// For Node v6+
-			// Be less strict when decoding compressed responses, since sometimes
-			// servers send slightly invalid responses that are still accepted
-			// by common browsers.
-			// Always using Z_SYNC_FLUSH is what cURL does.
-			const zlibOptions = {
-				flush: zlib.Z_SYNC_FLUSH,
-				finishFlush: zlib.Z_SYNC_FLUSH
-			};
-
-			// for gzip
-			if (codings == 'gzip' || codings == 'x-gzip') {
-				body = body.pipe(zlib.createGunzip(zlibOptions));
-				resolve(new Response(body, response_options));
-				return;
-			}
-
-			// for deflate
-			if (codings == 'deflate' || codings == 'x-deflate') {
-				// handle the infamous raw deflate response from old servers
-				// a hack for old IIS and Apache servers
-				const raw = res.pipe(new PassThrough$1());
-				raw.once('data', function (chunk) {
-					// see http://stackoverflow.com/questions/37519828
-					if ((chunk[0] & 0x0F) === 0x08) {
-						body = body.pipe(zlib.createInflate());
-					} else {
-						body = body.pipe(zlib.createInflateRaw());
-					}
-					resolve(new Response(body, response_options));
-				});
-				return;
-			}
-
-			// otherwise, use response as-is
-			resolve(new Response(body, response_options));
-		});
-
-		writeToStream(req, request);
-	});
-}
-
-/**
- * Redirect code matching
- *
- * @param   Number   code  Status code
- * @return  Boolean
- */
-fetch.isRedirect = function (code) {
-	return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
-};
-
-// Needed for TypeScript.
-fetch.default = fetch;
-
-// expose Promise
-fetch.Promise = global.Promise;
-
-module.exports = exports = fetch;
-exports.Headers = Headers;
-exports.Request = Request;
-exports.Response = Response;
-exports.FetchError = FetchError;
diff --git a/node_modules/cross-fetch/node_modules/node-fetch/package.json b/node_modules/cross-fetch/node_modules/node-fetch/package.json
deleted file mode 100644
index b95e54e..0000000
--- a/node_modules/cross-fetch/node_modules/node-fetch/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "node-fetch",
-  "version": "2.1.2",
-  "description": "A light-weight module that brings window.fetch to node.js",
-  "main": "lib/index.js",
-  "browser": "./browser.js",
-  "module": "lib/index.es.js",
-  "files": [
-    "lib/index.js",
-    "lib/index.es.js",
-    "browser.js"
-  ],
-  "engines": {
-    "node": "4.x || >=6.0.0"
-  },
-  "scripts": {
-    "build": "cross-env BABEL_ENV=rollup rollup -c",
-    "prepare": "npm run build",
-    "test": "cross-env BABEL_ENV=test mocha --compilers js:babel-register test/test.js",
-    "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js",
-    "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/bitinn/node-fetch.git"
-  },
-  "keywords": [
-    "fetch",
-    "http",
-    "promise"
-  ],
-  "author": "David Frank",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/bitinn/node-fetch/issues"
-  },
-  "homepage": "https://github.com/bitinn/node-fetch",
-  "devDependencies": {
-    "babel-core": "^6.26.0",
-    "babel-plugin-istanbul": "^4.1.5",
-    "babel-preset-env": "^1.6.1",
-    "babel-register": "^6.16.3",
-    "chai": "^3.5.0",
-    "chai-as-promised": "^7.1.1",
-    "chai-iterator": "^1.1.1",
-    "chai-string": "^1.3.0",
-    "codecov": "^3.0.0",
-    "cross-env": "^5.1.3",
-    "form-data": "^2.3.1",
-    "mocha": "^5.0.0",
-    "nyc": "^11.4.1",
-    "parted": "^0.1.1",
-    "promise": "^8.0.1",
-    "resumer": "0.0.0",
-    "rollup": "^0.55.1",
-    "rollup-plugin-babel": "^3.0.3",
-    "string-to-arraybuffer": "^1.0.0",
-    "url-search-params": "^0.10.0",
-    "whatwg-url": "^5.0.0"
-  },
-  "dependencies": {}
-}
diff --git a/node_modules/cross-fetch/package.json b/node_modules/cross-fetch/package.json
deleted file mode 100644
index 913a0d0..0000000
--- a/node_modules/cross-fetch/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-  "name": "cross-fetch",
-  "version": "2.2.2",
-  "description": "Universal WHATWG Fetch API for Node, Browsers and React Native",
-  "homepage": "https://github.com/lquixada/cross-fetch",
-  "main": "dist/node-ponyfill.js",
-  "browser": "dist/browser-ponyfill.js",
-  "typings": "index.d.ts",
-  "scripts": {
-    "pretest:node:bundle": "webpack-cli --config test/webpack-node/webpack.config.js",
-    "precommit": "npm run -s build && lint-staged",
-    "build": "rollup -c",
-    "codecov": "nyc report --reporter=text-lcov > coverage.lcov && codecov",
-    "deploy:major": "npm version major && git push --follow-tags",
-    "deploy:minor": "npm version minor && git push --follow-tags",
-    "deploy:patch": "npm version patch && git push --follow-tags",
-    "lint": "eslint .",
-    "sauce": "./tasks/sauce",
-    "security": "snyk test",
-    "test": "npm run -s test:headless && npm run -s test:node && npm run -s test:node:bundle && npm run -s lint",
-    "test:browser": "opn test/browser/index.html",
-    "test:headless": "mocha-headless-chrome -f test/browser/index.html -a no-sandbox -a disable-setuid-sandbox",
-    "test:node:bundle": "nyc mocha test/webpack-node/bundle.js",
-    "test:node": "nyc mocha test/node/index.js"
-  },
-  "lint-staged": {
-    "*.js": [
-      "eslint --fix",
-      "git add"
-    ]
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/lquixada/cross-fetch.git"
-  },
-  "author": "Leonardo Quixada <lquixada@gmail.com>",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/lquixada/cross-fetch/issues"
-  },
-  "dependencies": {
-    "node-fetch": "2.1.2",
-    "whatwg-fetch": "2.0.4"
-  },
-  "devDependencies": {
-    "chai": "4.1.2",
-    "codecov": "3.0.2",
-    "eslint": "4.19.1",
-    "husky": "0.14.3",
-    "lint-staged": "7.2.0",
-    "mocha": "5.2.0",
-    "mocha-headless-chrome": "2.0.0",
-    "nock": "9.3.3",
-    "nyc": "12.0.2",
-    "opn-cli": "3.1.0",
-    "ora": "2.1.0",
-    "rollup": "0.60.7",
-    "rollup-plugin-copy": "0.2.3",
-    "rollup-plugin-uglify": "4.0.0",
-    "sinon": "6.0.0",
-    "snyk": "1.83.0",
-    "webpack": "4.12.0",
-    "webpack-cli": "3.0.7"
-  },
-  "files": [
-    "dist",
-    "polyfill",
-    "index.d.ts"
-  ],
-  "keywords": [
-    "fetch",
-    "isomorphic",
-    "universal",
-    "node",
-    "react",
-    "native",
-    "browser",
-    "ponyfill",
-    "whatwg",
-    "xhr",
-    "ajax"
-  ]
-}
diff --git a/node_modules/cross-fetch/polyfill/package.json b/node_modules/cross-fetch/polyfill/package.json
deleted file mode 100644
index 68a6007..0000000
--- a/node_modules/cross-fetch/polyfill/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "name": "cross-fetch-polyfill",
-  "version": "0.0.0",
-  "main": "../dist/node-polyfill.js",
-  "browser": "../dist/browser-polyfill.js"
-}
diff --git a/node_modules/cross-spawn/node_modules/.bin/node-which b/node_modules/cross-spawn/node_modules/.bin/node-which
index 6f8415e..d29008e 120000
--- a/node_modules/cross-spawn/node_modules/.bin/node-which
+++ b/node_modules/cross-spawn/node_modules/.bin/node-which
@@ -1 +1 @@
-../which/bin/node-which
\ No newline at end of file
+../../../jest-haste-map/node_modules/which/bin/node-which
\ No newline at end of file
diff --git a/node_modules/damerau-levenshtein/CHANGELOG.md b/node_modules/damerau-levenshtein/CHANGELOG.md
deleted file mode 100644
index eb6af35..0000000
--- a/node_modules/damerau-levenshtein/CHANGELOG.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/). This project adheres to [Semantic Versioning](http://semver.org/).
-
-## [Unreleased]
-
-
-## [1.0.6] - 2020-01-27
-
-Changed:
-- Upgrade lodash to version 4.17.15 #16
-
-## [1.0.5] - 2019-05-09
-
-Changed:
-- Upgrade Mocha to version 6.1.4 #12 by @whyboris 
-- Example use in README.md by @whyboris
-
-## [1.0.4] - 2017-03-24
-
-Fixed:
-- Fails in strict mode #7 by @gilly3
-
-## [1.0.3] - 2016-09-26
-
-Fixed:
-- A title of this document :P
-
-Added:
-- List of contributors
-- Bugs URL
-- Git repository URL
-
-## [1.0.2] - 2016-09-26
-
-Fixed:
-- Similarity 0 returned for equal strings #4 by @tad-lispy
-
-## [1.0.1] - 2016-09-12
-
-Fixed:
-- Wrong results for transposition #2 by @g-adolph
-
-Added:
-- First unit test by @g-adolph
-- A Change Log :) by @tad-lispy
-
-## [1.0.0] - 2016-02-23
-
-Fixed:
-- Update README to match the actual output by @gilly3
-
-## [0.1.3] - 2013-09-02
-
-Fixed:
-- Clear matrix on each call @tad-lispy
-- Always return an object @tad-lispy
-
-## [0.1.2] - 2013-08-29
-
-Added:
-- ReadMe
-
-## [0.1.1] - 2013-08-28
-
-Added:
-- Initial working release @tad-lispy
diff --git a/node_modules/damerau-levenshtein/LICENSE b/node_modules/damerau-levenshtein/LICENSE
deleted file mode 100644
index 3332001..0000000
--- a/node_modules/damerau-levenshtein/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-BSD 2-Clause License
-
-Copyright (c) 2018, Tadeusz Łazurski
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/damerau-levenshtein/README.md b/node_modules/damerau-levenshtein/README.md
deleted file mode 100644
index 519436e..0000000
--- a/node_modules/damerau-levenshtein/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-[![NPM](https://nodei.co/npm/damerau-levenshtein.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/damerau-levenshtein/)
-
-It provides a function that takes two string arguments and returns a hash like this:
-
-``` javascript
-{
-  steps: 5,       // Levenstein demerau distance
-  relative: 0.7,  // steps / length of the longer string
-  similarity: 0.3 // 1 - relative
-}
-```
-
-## Install
-
-```sh
-npm install damerau-levenshtein
-```
-
-## Use with ES6 modules
-
-```js
-import * as levenshtien from 'damerau-levenshtein';
-
-const lev = levenshtien('hello world', 'Hello World!');
-// { steps: 4, relative: 0.3076923076923077, similarity: 0.6923076923076923 }
-```
-
-Please see [tests](./test/test.js) for more insights.
-
-## Use with TypeScript
-
-```ts
-import * as levenshtien from 'damerau-levenshtein';
-
-interface LevenshteinResponse {
-  steps: number;
-  relative: number;
-  similarity: number;
-}
-
-const lev: LevenshteinResponse = levenshtien('hello world', 'Hello World!');
-
-console.log(lev.steps);
-// 2
-console.log(lev.foo);
-// TypeScript Error: Property 'foo' does not exist on type 'LevenshteinResponse'.
-```
diff --git a/node_modules/damerau-levenshtein/index.js b/node_modules/damerau-levenshtein/index.js
deleted file mode 100644
index 17f3fcd..0000000
--- a/node_modules/damerau-levenshtein/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-// TheSpanishInquisition
-
-// Cache the matrix. Note that if you not pass a limit this implementation will use a dynamically calculate one.
-
-module.exports = function(__this, that, limit) {
-
-  var thisLength = __this.length,
-      thatLength = that.length,
-      matrix = [];
-
-  // If the limit is not defined it will be calculate from this and that args.
-  limit = (limit || ((thatLength > thisLength ? thatLength : thisLength)))+1;
-
-  for (var i = 0; i < limit; i++) {
-    matrix[i] = [i];
-    matrix[i].length = limit;
-  }
-  for (i = 0; i < limit; i++) {
-    matrix[0][i] = i;
-  }
-
-  if (Math.abs(thisLength - thatLength) > (limit || 100)){
-    return prepare (limit || 100);
-  }
-  if (thisLength === 0){
-    return prepare (thatLength);
-  }
-  if (thatLength === 0){
-    return prepare (thisLength);
-  }
-
-  // Calculate matrix.
-  var j, this_i, that_j, cost, min, t;
-  for (i = 1; i <= thisLength; ++i) {
-    this_i = __this[i-1];
-
-    // Step 4
-    for (j = 1; j <= thatLength; ++j) {
-      // Check the jagged ld total so far
-      if (i === j && matrix[i][j] > 4) return prepare (thisLength);
-
-      that_j = that[j-1];
-      cost = (this_i === that_j) ? 0 : 1; // Step 5
-      // Calculate the minimum (much faster than Math.min(...)).
-      min    = matrix[i - 1][j    ] + 1; // Deletion.
-      if ((t = matrix[i    ][j - 1] + 1   ) < min) min = t;   // Insertion.
-      if ((t = matrix[i - 1][j - 1] + cost) < min) min = t;   // Substitution.
-
-      // Update matrix.
-      matrix[i][j] = (i > 1 && j > 1 && this_i === that[j-2] && __this[i-2] === that_j && (t = matrix[i-2][j-2]+cost) < min) ? t : min; // Transposition.
-    }
-  }
-
-  return prepare (matrix[thisLength][thatLength]);
-
-/**
- *
- */
-  function prepare(steps) {
-    var length = Math.max(thisLength, thatLength)
-    var relative = length === 0
-      ? 0
-      : (steps / length);
-    var similarity = 1 - relative
-    return {
-      steps: steps,
-      relative: relative,
-      similarity: similarity
-    };
-  }
-
-};
diff --git a/node_modules/damerau-levenshtein/package.json b/node_modules/damerau-levenshtein/package.json
deleted file mode 100644
index 2dba69b..0000000
--- a/node_modules/damerau-levenshtein/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "damerau-levenshtein",
-  "version": "1.0.6",
-  "description": "Damerau - Levenshtein distance by The Spanish Inquisition + relative distance",
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha --use_strict",
-    "version": "scripts/update-changelog.sh"
-  },
-  "keywords": [
-    "Damerau-Levenshtein",
-    "Damerau",
-    "Levenshtein",
-    "distance",
-    "compare",
-    "relative"
-  ],
-  "author": "The Spanish Inquisition",
-  "contributors": [
-    "Tadeusz Łazurski (https://tad-lispy.com/)",
-    "Gustavo Marques Adolph",
-    "Ivan Gilchrist <github@jumpingfishes.com> (http://jumpingfishes.com)",
-    "Boris Yakubchik (http://dev.yboris.com/)"
-  ],
-  "license": "BSD-2-Clause",
-  "devDependencies": {
-    "mocha": "^6.1.4"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/tad-lispy/node-damerau-levenshtein.git"
-  },
-  "bugs": {
-    "url": "https://github.com/tad-lispy/node-damerau-levenshtein/issues"
-  }
-}
diff --git a/node_modules/damerau-levenshtein/scripts/update-changelog.sh b/node_modules/damerau-levenshtein/scripts/update-changelog.sh
deleted file mode 100755
index fd5312b..0000000
--- a/node_modules/damerau-levenshtein/scripts/update-changelog.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /usr/bin/env bash
-
-set -euo pipefail
-
-# To make it work on OSX (provided gnu-sed in installed)
-if type gsed
-then
-  sed=gsed
-fi
-
-
-version=$(jq --raw-output ' .version ' "package.json")
-date=$(date +%Y-%m-%d)
-
-$sed \
-  --regexp-extended \
-  --in-place="" \
-  "s$^## \[Unreleased\]$\## [Unreleased\]\n\n\n## [${version}] - ${date}$" \
-  CHANGELOG.md
-
-git add CHANGELOG.md
diff --git a/node_modules/damerau-levenshtein/test/test.js b/node_modules/damerau-levenshtein/test/test.js
deleted file mode 100644
index 0939f09..0000000
--- a/node_modules/damerau-levenshtein/test/test.js
+++ /dev/null
@@ -1,168 +0,0 @@
-var levenshtien = require("./../index");
-
-var assert = require("assert");
-
-describe("Damerau - Levenshtein", function() {
-  describe("Equality", function() {
-    it("returns 0 steps for equal strings", function() {
-      assert.deepEqual(levenshtien("test", "test"), {
-        steps: 0,
-        relative: 0,
-        similarity: 1
-      });
-    });
-  });
-
-  describe("Additions", function() {
-    it("returns 1 step when appending one char", function() {
-      assert.deepEqual(levenshtien("test", "tests"), {
-        steps: 1,
-        relative: 1 / 5,
-        similarity: 1 - 1 / 5
-      });
-    });
-
-    it("returns 1 step when prepending one char", function() {
-      assert.deepEqual(levenshtien("test", "stest"), {
-        steps: 1,
-        relative: 1 / 5,
-        similarity: 1 - 1 / 5
-      });
-    });
-
-    it("returns 2 steps when appending two char", function() {
-      assert.deepEqual(levenshtien("test", "mytest"), {
-        steps: 2,
-        relative: 2 / 6,
-        similarity: 1 - 2 / 6
-      });
-    });
-
-    it("returns 7 steps when appending seven char", function() {
-      assert.deepEqual(levenshtien("test", "mycrazytest"), {
-        steps: 7,
-        relative: 7 / 11,
-        similarity: 1 - 7 / 11
-      });
-    });
-
-    it("returns 9 steps when prepend two chars and append seven chars", function() {
-      assert.deepEqual(levenshtien("test", "mytestiscrazy"), {
-        steps: 9,
-        relative: 9 / 13,
-        similarity: 1 - 9 / 13
-      });
-    });
-  });
-
-
-  describe("Addition of repeated chars", function() {
-    it("returns 1 step when repeating a character", function() {
-      assert.deepEqual(levenshtien("test", "teest"), {
-        steps: 1,
-        relative: 1 / 5,
-        similarity: 1 - 1 / 5
-      });
-    });
-
-    it("returns 2 step when repeating a character twice", function() {
-      assert.deepEqual(levenshtien("test", "teeest"), {
-        steps: 2,
-        relative: 2 / 6,
-        similarity: 1 - 2 / 6
-      });
-    });
-  });
-
-
-  describe("#Deletion", function() {
-    it("returns 1 step when removing one char", function() {
-      assert.deepEqual(levenshtien("test", "tst"), {
-        steps: 1,
-        relative: 1 / 4,
-        similarity: 1 - 1 / 4
-      });
-    });
-  });
-
-
-  describe("Transposition", function() {
-    it("returns 1 step when transposing one char", function() {
-      assert.deepEqual(levenshtien("test", "tset"), {
-        steps: 1,
-        relative: 1 / 4,
-        similarity: 1 - 1 / 4
-      });
-    });
-  });
-
-
-  describe("Addition with transposition", function() {
-    it("returns 2 step when transposing one char and append another", function() {
-      assert.deepEqual(levenshtien("test", "tsets"), {
-        steps: 2,
-        relative: 2 / 5,
-        similarity: 1 - 2 / 5
-      });
-    });
-    it("returns 2 step when transposing a char and repeating it", function() {
-      assert.deepEqual(levenshtien("test", "tsset"), {
-        steps: 2,
-        relative: 2 / 5,
-        similarity: 1 - 2 / 5
-      });
-    });
-  });
-
-  describe("Transposition of multiple chars", function() {
-    it("returns 1 step when transposing two neighbouring characters", function() {
-      assert.deepEqual(levenshtien("banana", "banaan"), {
-        steps: 1,
-        relative: 1 / 6,
-        similarity: 1 - 1 / 6
-      });
-    });
-
-    it("returns 2 step when transposing two neighbouring characters by two places", function() {
-      assert.deepEqual(levenshtien("banana", "nabana"), {
-        steps: 2,
-        relative: 2 / 6,
-        similarity: 1 - 2 / 6
-      });
-    });
-
-    it("returns 2 step when transposing two pairs of characters", function() {
-      assert.deepEqual(levenshtien("banana", "abnaan"), {
-        steps: 2,
-        relative: 2 / 6,
-        similarity: 1 - 2 / 6
-      });
-    });
-  });
-
-  describe("Empty strings", function() {
-    it("returns 0 step and 0 relative when both are empty", function() {
-      assert.deepEqual(levenshtien("", ""), {
-        steps: 0,
-        relative: 0,
-        similarity: 1
-      });
-    });
-
-    it("returns steps equal to first string lenght when second string is empty", function() {
-      assert.deepEqual(levenshtien("test", ""), {
-        steps: 4,
-        relative: 4 / 4,
-        similarity: 0
-      });
-    });
-
-    it("returns steps equal to second string lenght when first string is empty", function() {
-      assert.deepEqual(levenshtien("", "test"), {
-        steps: 4,
-        relative: 1,
-        similarity: 0
-      });
-    });
-  });
-});
diff --git a/node_modules/emoji-regex/README.md b/node_modules/emoji-regex/README.md
index 37cf14e..f10e173 100644
--- a/node_modules/emoji-regex/README.md
+++ b/node_modules/emoji-regex/README.md
@@ -2,7 +2,7 @@
 
 _emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard.
 
-This repository contains a script that generates this regular expression based on [the data from Unicode Technical Report #51](https://github.com/mathiasbynens/unicode-tr51). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
+This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
 
 ## Installation
 
diff --git a/node_modules/emoji-regex/es2015/index.js b/node_modules/emoji-regex/es2015/index.js
index 0216db9..b4cf3dc 100644
--- a/node_modules/emoji-regex/es2015/index.js
+++ b/node_modules/emoji-regex/es2015/index.js
@@ -2,5 +2,5 @@
 
 module.exports = () => {
   // https://mths.be/emoji
-  return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu;
+  return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu;
 };
diff --git a/node_modules/emoji-regex/es2015/text.js b/node_modules/emoji-regex/es2015/text.js
index d0a771d..780309d 100644
--- a/node_modules/emoji-regex/es2015/text.js
+++ b/node_modules/emoji-regex/es2015/text.js
@@ -2,5 +2,5 @@
 
 module.exports = () => {
   // https://mths.be/emoji
-  return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu;
+  return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu;
 };
diff --git a/node_modules/emoji-regex/index.d.ts b/node_modules/emoji-regex/index.d.ts
index 2c317cd..1955b47 100644
--- a/node_modules/emoji-regex/index.d.ts
+++ b/node_modules/emoji-regex/index.d.ts
@@ -3,3 +3,21 @@
 
     export default emojiRegex;
 }
+
+declare module 'emoji-regex/text' {
+    function emojiRegex(): RegExp;
+
+    export default emojiRegex;
+}
+
+declare module 'emoji-regex/es2015' {
+    function emojiRegex(): RegExp;
+
+    export default emojiRegex;
+}
+
+declare module 'emoji-regex/es2015/text' {
+    function emojiRegex(): RegExp;
+
+    export default emojiRegex;
+}
diff --git a/node_modules/emoji-regex/index.js b/node_modules/emoji-regex/index.js
index e2237a4..d993a3a 100644
--- a/node_modules/emoji-regex/index.js
+++ b/node_modules/emoji-regex/index.js
@@ -2,5 +2,5 @@
 
 module.exports = function () {
   // https://mths.be/emoji
-  return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g;
+  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
 };
diff --git a/node_modules/emoji-regex/package.json b/node_modules/emoji-regex/package.json
index ed68e52..6d32352 100644
--- a/node_modules/emoji-regex/package.json
+++ b/node_modules/emoji-regex/package.json
@@ -1,6 +1,6 @@
 {
   "name": "emoji-regex",
-  "version": "7.0.3",
+  "version": "8.0.0",
   "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
   "homepage": "https://mths.be/emoji-regex",
   "main": "index.js",
@@ -39,13 +39,12 @@
     "test:watch": "npm run test -- --watch"
   },
   "devDependencies": {
-    "@babel/cli": "^7.0.0",
-    "@babel/core": "^7.0.0",
-    "@babel/plugin-proposal-unicode-property-regex": "^7.0.0",
-    "@babel/preset-env": "^7.0.0",
-    "mocha": "^5.2.0",
+    "@babel/cli": "^7.2.3",
+    "@babel/core": "^7.3.4",
+    "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
+    "@babel/preset-env": "^7.3.4",
+    "mocha": "^6.0.2",
     "regexgen": "^1.3.0",
-    "unicode-11.0.0": "^0.7.7",
-    "unicode-tr51": "^9.0.1"
+    "unicode-12.0.0": "^0.7.9"
   }
 }
diff --git a/node_modules/emoji-regex/text.js b/node_modules/emoji-regex/text.js
index 199ae3b..0a55ce2 100644
--- a/node_modules/emoji-regex/text.js
+++ b/node_modules/emoji-regex/text.js
@@ -2,5 +2,5 @@
 
 module.exports = function () {
   // https://mths.be/emoji
-  return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g;
+  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
 };
diff --git a/node_modules/eslint-config-prettier/@typescript-eslint.js b/node_modules/eslint-config-prettier/@typescript-eslint.js
index 50c9c68..f1fee0f 100644
--- a/node_modules/eslint-config-prettier/@typescript-eslint.js
+++ b/node_modules/eslint-config-prettier/@typescript-eslint.js
@@ -5,14 +5,16 @@
     "@typescript-eslint/quotes": 0,
 
     "@typescript-eslint/brace-style": "off",
+    "@typescript-eslint/comma-dangle": "off",
     "@typescript-eslint/comma-spacing": "off",
     "@typescript-eslint/func-call-spacing": "off",
     "@typescript-eslint/indent": "off",
+    "@typescript-eslint/keyword-spacing": "off",
     "@typescript-eslint/member-delimiter-style": "off",
     "@typescript-eslint/no-extra-parens": "off",
     "@typescript-eslint/no-extra-semi": "off",
     "@typescript-eslint/semi": "off",
     "@typescript-eslint/space-before-function-paren": "off",
-    "@typescript-eslint/type-annotation-spacing": "off"
-  }
+    "@typescript-eslint/type-annotation-spacing": "off",
+  },
 };
diff --git a/node_modules/eslint-config-prettier/CHANGELOG.md b/node_modules/eslint-config-prettier/CHANGELOG.md
index f91fd3b..7bd7a96 100644
--- a/node_modules/eslint-config-prettier/CHANGELOG.md
+++ b/node_modules/eslint-config-prettier/CHANGELOG.md
@@ -1,7 +1,19 @@
+### Version 6.12.0 (2020-09-25)
+
+- Added: [@typescript-eslint/comma-dangle]. Thanks to Masafumi Koba (@ybiquitous)!!
+
+### Version 6.11.0 (2020-04-21)
+
+- Added: [@typescript-eslint/keyword-spacing]. Thanks to Hans Bergren (@hbergren)!
+
+### Version 6.10.1 (2020-03-22)
+
+- Improved: Recommend using `npx` when running the CLI helper tool.
+- Updated: Mention that eslint-config-prettier has been tested with Prettier 2.0 and the latest versions of plugins.
+
 ### Version 6.10.0 (2020-01-28)
 
-- Added: [@typescript-eslint/comma-spacing]. Thanks to Thanks to Masafumi
-  Koba (@ybiquitous)!!
+- Added: [@typescript-eslint/comma-spacing]. Thanks to Masafumi Koba (@ybiquitous)!!
 
 ### Version 6.9.0 (2019-12-27)
 
@@ -13,48 +25,37 @@
 
 ### Version 6.7.0 (2019-11-19)
 
-- Added: [@typescript-eslint/space-before-function-paren]. Thanks to Masafumi
-  Koba (@ybiquitous)!
+- Added: [@typescript-eslint/space-before-function-paren]. Thanks to Masafumi Koba (@ybiquitous)!
 
 ### Version 6.6.0 (2019-11-17)
 
-- Added: New [eslint-plugin-vue] rules: [vue/dot-location] and
-  [vue/keyword-spacing]. Thanks to @xcatliu!
+- Added: New [eslint-plugin-vue] rules: [vue/dot-location] and [vue/keyword-spacing]. Thanks to @xcatliu!
 
 ### Version 6.5.0 (2019-10-26)
 
-- Added: Support for [excluding deprecated rules]. Thanks to Alex Ilyaev
-  (@alexilyaev)!
+- Added: Support for [excluding deprecated rules]. Thanks to Alex Ilyaev (@alexilyaev)!
 
 ### Version 6.4.0 (2019-10-05)
 
-- Added: [unicorn/no-nested-ternary]. Thanks to Yang Mingshan
-  (@yangmingshan)!
+- Added: [unicorn/no-nested-ternary]. Thanks to Yang Mingshan (@yangmingshan)!
 
 ### Version 6.3.0 (2019-09-10)
 
-- Added: [@typescript-eslint/brace-style]. Thanks to Masafumi Koba
-  (@ybiquitous)!
+- Added: [@typescript-eslint/brace-style]. Thanks to Masafumi Koba (@ybiquitous)!
 
 ### Version 6.2.0 (2019-09-03)
 
-- Added: [@typescript-eslint/quotes] (as a [special
-  rule][@typescript-eslint/quotes-special]). Thanks to Masafumi Koba
-  (@ybiquitous)!
+- Added: [@typescript-eslint/quotes] (as a [special rule][@typescript-eslint/quotes-special]). Thanks to Masafumi Koba (@ybiquitous)!
 
 ### Version 6.1.0 (2019-08-19)
 
-- Added: [function-call-argument-newline] \(new in ESLint 6.2.0). Thanks to
-  Masafumi Koba (@ybiquitous)!
+- Added: [function-call-argument-newline] \(new in ESLint 6.2.0). Thanks to Masafumi Koba (@ybiquitous)!
 
 ### Version 6.0.0 (2019-06-25)
 
-- Changed: The CLI helper tool now considers [no-confusing-arrow] to conflict
-  if you use the default value of its `allowParens` option. The default was
-  changed to `true` in ESLint 6, which conflicts with Prettier.
+- Changed: The CLI helper tool now considers [no-confusing-arrow] to conflict if you use the default value of its `allowParens` option. The default was changed to `true` in ESLint 6, which conflicts with Prettier.
 
-  If the CLI helper tool gives you errors about this after upgrading, the
-  solution is to change this:
+  If the CLI helper tool gives you errors about this after upgrading, the solution is to change this:
 
   ```json
   {
@@ -76,10 +77,7 @@
 
   The latter works in both ESLint 6 as well as in ESLint 5 and older.
 
-- Improved: `eslint --print-config` usage instructions. The CLI tool help
-  text as well as the documentation has been updated to suggest commands that
-  work in ESLint 6.0 as well as in ESLint 5 and older. (Instead of `eslint
-  --print-config .`, use `eslint --print-config path/to/main.js`.)
+- Improved: `eslint --print-config` usage instructions. The CLI tool help text as well as the documentation has been updated to suggest commands that work in ESLint 6.0 as well as in ESLint 5 and older. (Instead of `eslint --print-config .`, use `eslint --print-config path/to/main.js`.)
 
 ### Version 5.1.0 (2019-06-25)
 
@@ -87,38 +85,25 @@
 
 ### Version 5.0.0 (2019-06-15)
 
-- Removed: [react/self-closing-comp]. This rule was added in v4.1.0 not
-  because it _conflicted_ with Prettier but because it was _unnecessary_ when
-  using Prettier. However, in v1.18.0 [Prettier stopped converting empty
-  elements to self-closing elements][prettier-self-closing]. So the rule is
-  not unnecessary anymore.
+- Removed: [react/self-closing-comp]. This rule was added in v4.1.0 not because it _conflicted_ with Prettier but because it was _unnecessary_ when using Prettier. However, in v1.18.0 [Prettier stopped converting empty elements to self-closing elements][prettier-self-closing]. So the rule is not unnecessary anymore.
 
-  If you use Prettier v1.17.1 or older you should be able to upgrade
-  eslint-config-prettier to v5.0.0 without having to do anything else.
+  If you use Prettier v1.17.1 or older you should be able to upgrade eslint-config-prettier to v5.0.0 without having to do anything else.
 
-  If you use Prettier v1.18.0 or newer, you might get lint errors about for
-  example changing `<div></div>` into `<div />`. You have two options:
+  If you use Prettier v1.18.0 or newer, you might get lint errors about for example changing `<div></div>` into `<div />`. You have two options:
 
-  - Run `eslint --fix` if you prefer to enforce self-closing elements where
-    possible. This should fix all the errors.
-  - Add `"react/self-closing-comp": "off"` to your ESLint config if you use
-    autofix from your editor and you face the same [issue as Prettier
-    did][prettier-self-closing].
+  - Run `eslint --fix` if you prefer to enforce self-closing elements where possible. This should fix all the errors.
+  - Add `"react/self-closing-comp": "off"` to your ESLint config if you use autofix from your editor and you face the same [issue as Prettier did][prettier-self-closing].
 
-- Changed: Node.js 6 is no longer officially supported, but v5.0.0 should
-  still work with it.
+- Changed: Node.js 6 is no longer officially supported, but v5.0.0 should still work with it.
 
 ### Version 4.3.0 (2019-05-16)
 
-- Added: New [eslint-plugin-vue] rules: [vue/arrow-spacing],
-  [vue/block-spacing], [vue/brace-style] and [vue/comma-dangle].
-- Added: New [@typescript-eslint/eslint-plugin] rules:
-  [@typescript-eslint/func-call-spacing] and [@typescript-eslint/semi].
+- Added: New [eslint-plugin-vue] rules: [vue/arrow-spacing], [vue/block-spacing], [vue/brace-style] and [vue/comma-dangle].
+- Added: New [@typescript-eslint/eslint-plugin] rules: [@typescript-eslint/func-call-spacing] and [@typescript-eslint/semi].
 
 ### Version 4.2.0 (2019-04-25)
 
-- Added: [@typescript-eslint/no-extra-parens]. Thanks to Keiichiro Amemiya
-  (@Hoishin) and Jen Gorfine (@jgorfine)!
+- Added: [@typescript-eslint/no-extra-parens]. Thanks to Keiichiro Amemiya (@Hoishin) and Jen Gorfine (@jgorfine)!
 
 ### Version 4.1.0 (2019-02-26)
 
@@ -127,59 +112,37 @@
 
 ### Version 4.0.0 (2019-01-26)
 
-- Breaking change: Support for [eslint-plugin-typescript] has been removed and
-  replaced with support for its successor [@typescript-eslint/eslint-plugin].
-  Thanks to TANIGUCHI Masaya (@ta2gch) and everyone else who helped with this!
-- Changed: [arrow-body-style] and [prefer-arrow-callback] are now marked as
-  [special rules][arrow-special], since they might cause problems if using
-  [eslint-plugin-prettier] and `--fix`. They are turned off by default, and the
-  CLI helper tool will _warn_ about them (but not error if you do enable them).
-  This won’t break your linting checks, but do note that these rules will be
-  disabled unless you explicitly enable them again, and that you might see new
-  warnings when running the CLI helper tool.
+- Breaking change: Support for [eslint-plugin-typescript] has been removed and replaced with support for its successor [@typescript-eslint/eslint-plugin]. Thanks to TANIGUCHI Masaya (@ta2gch) and everyone else who helped with this!
+- Changed: [arrow-body-style] and [prefer-arrow-callback] are now marked as [special rules][arrow-special], since they might cause problems if using [eslint-plugin-prettier] and `--fix`. They are turned off by default, and the CLI helper tool will _warn_ about them (but not error if you do enable them). This won’t break your linting checks, but do note that these rules will be disabled unless you explicitly enable them again, and that you might see new warnings when running the CLI helper tool.
 
 ### Version 3.6.0 (2019-01-19)
 
-- Added: Support for [eslint-plugin-babel]. Thanks to Matija Marohnić
-  (@silvenon)!
+- Added: Support for [eslint-plugin-babel]. Thanks to Matija Marohnić (@silvenon)!
 
 ### Version 3.5.0 (2019-01-16)
 
-- Fixed: The eslint-plugin-vue change from 3.4.0 has been reverted. That change
-  requires eslint-plugin-vue@5, while many use eslint-plugin-vue@4. In other
-  words, it was an accidental breaking change. Also, after thinking about it
-  some more, it makes sense to have a Prettier-specific list of rules, rather
-  than using the `vue/no-layout-rules` list, since there can be layout rules
-  that don’t conflict with but rather complement Prettier.
+- Fixed: The eslint-plugin-vue change from 3.4.0 has been reverted. That change requires eslint-plugin-vue@5, while many use eslint-plugin-vue@4. In other words, it was an accidental breaking change. Also, after thinking about it some more, it makes sense to have a Prettier-specific list of rules, rather than using the `vue/no-layout-rules` list, since there can be layout rules that don’t conflict with but rather complement Prettier.
 - Added: New eslint-plugin-vue rules coming in the next version after 5.1.0.
 
 ### Version 3.4.0 (2019-01-13)
 
 - Added: Support for [eslint-plugin-typescript]. Thanks to Jed Fox (@j-f1)!
-- Improved: The eslint-plugin-vue integration is now using the
-  `vue/no-layout-rules` config behind the scenes, so it should automatically
-  stay up-to-date when new eslint-plugin-vue versions are released. Thanks to
-  Michał Sajnóg (@michalsnik)!
+- Improved: The eslint-plugin-vue integration is now using the `vue/no-layout-rules` config behind the scenes, so it should automatically stay up-to-date when new eslint-plugin-vue versions are released. Thanks to Michał Sajnóg (@michalsnik)!
 
 ### Version 3.3.0 (2018-11-11)
 
-- Added: The [vue/html-self-closing] rule (as a [special
-  rule][vue/html-self-closing-special]). Thanks to Yamagishi Kazutoshi (@ykzts)!
+- Added: The [vue/html-self-closing] rule (as a [special rule][vue/html-self-closing-special]). Thanks to Yamagishi Kazutoshi (@ykzts)!
 
 ### Version 3.2.0 (2018-11-10)
 
 - Added: Support for [eslint-plugin-vue].
-- Fixed: The CLI helper tool should now work in Node.js 6 with npm 3 again.
-  Thanks to Grant Snodgrass (@meeber)!
+- Fixed: The CLI helper tool should now work in Node.js 6 with npm 3 again. Thanks to Grant Snodgrass (@meeber)!
 - Improved: Updated documentation.
 
 ### Version 3.1.0 (2018-09-22)
 
 - Added: Support for [eslint-plugin-unicorn]. Thanks to John Mars (@j0hnm4r5)!
-- Changed: The [quotes] rule is now allowed to be used to forbid unnecessary
-  backticks. This means that the CLI helper tool no longer can automatically
-  validate it, so you’ll need to refer the [quotes special rule
-  documentation][quotes-special]. Thanks to Nick Petruzzelli (@npetruzzelli)!
+- Changed: The [quotes] rule is now allowed to be used to forbid unnecessary backticks. This means that the CLI helper tool no longer can automatically validate it, so you’ll need to refer the [quotes special rule documentation][quotes-special]. Thanks to Nick Petruzzelli (@npetruzzelli)!
 
 ### Version 3.0.1 (2018-08-13)
 
@@ -205,12 +168,8 @@
 
 ### Version 2.7.0 (2017-11-01)
 
-- Added: The [lines-around-comment] rule (as a [special
-  rule][lines-around-comment-special]). Thanks to Maurice de Beijer
-  (@mauricedb)!
-- Added: The [no-unexpected-multiline] rule (as a [special
-  rule][no-unexpected-multiline-special]). Thanks to Suhas Karanth
-  (@sudo-suhas)!
+- Added: The [lines-around-comment] rule (as a [special rule][lines-around-comment-special]). Thanks to Maurice de Beijer (@mauricedb)!
+- Added: The [no-unexpected-multiline] rule (as a [special rule][no-unexpected-multiline-special]). Thanks to Suhas Karanth (@sudo-suhas)!
 
 ### Version 2.6.0 (2017-09-23)
 
@@ -218,18 +177,15 @@
 
 ### Version 2.5.0 (2017-09-16)
 
-- Added: Support for [eslint-plugin-standard]. Thanks to Christian Pekeler
-  (@pekeler)!
+- Added: Support for [eslint-plugin-standard]. Thanks to Christian Pekeler (@pekeler)!
 
 ### Version 2.4.0 (2017-09-02)
 
-- Added: The [function-paren-newline] rule (new in [ESLint 4.6.0]). Thanks to
-  Pierre Vanduynslager (@vanduynslagerp)!
+- Added: The [function-paren-newline] rule (new in [ESLint 4.6.0]). Thanks to Pierre Vanduynslager (@vanduynslagerp)!
 
 ### Version 2.3.0 (2017-06-30)
 
-- Added: The (deprecated) [indent-legacy] rule. Thanks to M. Ian Graham
-  (@miangraham)!
+- Added: The (deprecated) [indent-legacy] rule. Thanks to M. Ian Graham (@miangraham)!
 
 ### Version 2.2.0 (2017-06-17)
 
@@ -246,33 +202,23 @@
 
 ### Version 2.1.0 (2017-05-13)
 
-- Added: The [no-tabs] rule (as a [special rule][no-tabs-special]). Thanks to
-  Alex Meah (@AlexMeah)!
+- Added: The [no-tabs] rule (as a [special rule][no-tabs-special]). Thanks to Alex Meah (@AlexMeah)!
 
 ### Version 2.0.0 (2017-05-07)
 
 - Changed/Improved: The CLI helper tool is now more helpful.
 
-  - The options of special rules are now validated if possible. If a special
-    rule is enabled with non-conflicting options, the CLI no longer warns about
-    it.
-  - If only special rules that cannot be automatically checked are found, the
-    CLI no longer exists with a non-zero exit code. Instead, it only warns about
-    the rules.
+  - The options of special rules are now validated if possible. If a special rule is enabled with non-conflicting options, the CLI no longer warns about it.
+  - If only special rules that cannot be automatically checked are found, the CLI no longer exists with a non-zero exit code. Instead, it only warns about the rules.
 
-- Changed: The [no-confusing-arrow] is now a special rule again, since it might
-  conflict with recent Prettier versions.
+- Changed: The [no-confusing-arrow] is now a special rule again, since it might conflict with recent Prettier versions.
 
-- Removed: The `react/wrap-multilines` rule (which has been deprecated for a
-  while), since it was removed in eslint-plugin-react@7.
+- Removed: The `react/wrap-multilines` rule (which has been deprecated for a while), since it was removed in eslint-plugin-react@7.
 
 ### Version 1.7.0 (2017-04-19)
 
-- Changed: The [no-confusing-arrow] is no longer a special rule, but simply
-  turned off, since recent Prettier versions make it redundant.
-- Improved: The CLI helper tool now has a more helpful message for special
-  rules, and exits with a different status code if only special rules were
-  found. The exit codes are now documented as well.
+- Changed: The [no-confusing-arrow] is no longer a special rule, but simply turned off, since recent Prettier versions make it redundant.
+- Improved: The CLI helper tool now has a more helpful message for special rules, and exits with a different status code if only special rules were found. The exit codes are now documented as well.
 
 ### Version 1.6.0 (2017-04-05)
 
@@ -284,26 +230,20 @@
 
 ### Version 1.4.1 (2017-02-28)
 
-- Improved: eslint-config-prettier is now part of the [prettier] organization!
-  This version updates all URLs to point to the new home of the project.
+- Improved: eslint-config-prettier is now part of the [prettier] organization! This version updates all URLs to point to the new home of the project.
 
 ### Version 1.4.0 (2017-02-26)
 
-- Added: The [no-confusing-arrow] rule (as a
-  [special rule][no-confusing-arrow-special]). Thanks to Dominik Ferber
-  (@dferber90)!
-- Added: Deprecated or removed rules that might conflict with prettier. Thanks
-  to Dominik Ferber (@dferber90)!
+- Added: The [no-confusing-arrow] rule (as a [special rule][no-confusing-arrow-special]). Thanks to Dominik Ferber (@dferber90)!
+- Added: Deprecated or removed rules that might conflict with prettier. Thanks to Dominik Ferber (@dferber90)!
 
 ### Version 1.3.0 (2017-02-21)
 
-- Added: The [template-tag-spacing] rule. Thanks to Thibault Derousseaux
-  (@tibdex)!
+- Added: The [template-tag-spacing] rule. Thanks to Thibault Derousseaux (@tibdex)!
 
 ### Version 1.2.0 (2017-02-14)
 
-- Added: The [one-var-declaration-per-line] rule. Thanks to Ruben Oostinga
-  (@0xR)!
+- Added: The [one-var-declaration-per-line] rule. Thanks to Ruben Oostinga (@0xR)!
 
 ### Version 1.1.1 (2017-02-12)
 
@@ -312,8 +252,7 @@
 ### Version 1.1.0 (2017-02-10)
 
 - Fixed: The [eslint-plugin-react] exclusion rules now actually work.
-- Fixed: The CLI helper tool now works in Node.js 4. Thanks to Nathan Friedly
-  (@nfriedly)!
+- Fixed: The CLI helper tool now works in Node.js 4. Thanks to Nathan Friedly (@nfriedly)!
 - Added: Support for [eslint-plugin-flowtype].
 - Improved: Minor things for the CLI helper tool.
 - Improved: There are now tests for everything.
@@ -335,9 +274,11 @@
 - Initial release.
 
 [@typescript-eslint/brace-style]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md
+[@typescript-eslint/comma-dangle]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-dangle.md
 [@typescript-eslint/comma-spacing]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-spacing.md
 [@typescript-eslint/eslint-plugin]: https://github.com/typescript-eslint/typescript-eslint
 [@typescript-eslint/func-call-spacing]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md
+[@typescript-eslint/keyword-spacing]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/keyword-spacing.md
 [@typescript-eslint/no-extra-parens]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-parens.md
 [@typescript-eslint/no-extra-semi]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md
 [@typescript-eslint/quotes-special]: https://github.com/prettier/eslint-config-prettier/blob/857257179fe69715362dfa9300762d6e534c0603/README.md#quotes
@@ -350,8 +291,8 @@
 [arrow-special]: https://github.com/prettier/eslint-config-prettier/blob/2c842675e55b91aecaef6f997d234ebf2d220ffb/README.md#arrow-body-style-and-prefer-arrow-callback
 [curly]: https://eslint.org/docs/rules/curly
 [end-of-line]: https://prettier.io/docs/en/options.html#end-of-line
-[ESLint 4.0.0]: https://eslint.org/blog/2017/06/eslint-v4.0.0-released
-[ESLint 4.6.0]: https://eslint.org/blog/2017/09/eslint-v4.6.0-released
+[eslint 4.0.0]: https://eslint.org/blog/2017/06/eslint-v4.0.0-released
+[eslint 4.6.0]: https://eslint.org/blog/2017/09/eslint-v4.6.0-released
 [eslint-plugin-babel]: https://github.com/babel/eslint-plugin-babel
 [eslint-plugin-flowtype]: https://github.com/gajus/eslint-plugin-flowtype
 [eslint-plugin-prettier]: https://github.com/prettier/eslint-plugin-prettier
diff --git a/node_modules/eslint-config-prettier/README.md b/node_modules/eslint-config-prettier/README.md
index b4d983e..d81cbdf 100644
--- a/node_modules/eslint-config-prettier/README.md
+++ b/node_modules/eslint-config-prettier/README.md
@@ -1,19 +1,16 @@
-# eslint-config-prettier [![Build Status][travis-badge]][travis]
+# eslint-config-prettier
 
 Turns off all rules that are unnecessary or might conflict with [Prettier].
 
-This lets you use your favorite shareable config without letting its stylistic
-choices get in the way when using Prettier.
+This lets you use your favorite shareable config without letting its stylistic choices get in the way when using Prettier.
 
-Note that this config _only_ turns rules _off,_ so it only makes sense using
-it together with some other config.
+Note that this config _only_ turns rules _off,_ so it only makes sense using it together with some other config.
 
 ## Contents
 
 <!-- START doctoc generated TOC please keep comment here to allow auto update -->
 <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
 
-
 - [Installation](#installation)
   - [Excluding deprecated rules](#excluding-deprecated-rules)
 - [CLI helper tool](#cli-helper-tool)
@@ -42,19 +39,15 @@
 
 ## Installation
 
-Tip: First, you might be interested in installing [eslint-plugin-prettier].
-Follow the instructions over there. This is optional, though.
-
 Install eslint-config-prettier:
 
 ```
 npm install --save-dev eslint-config-prettier
 ```
 
-Then, add eslint-config-prettier to the "extends" array in your `.eslintrc.*`
-file. Make sure to put it **last,** so it gets the chance to override other
-configs.
+Then, add eslint-config-prettier to the "extends" array in your `.eslintrc.*` file. Make sure to put it **last,** so it gets the chance to override other configs.
 
+<!-- prettier-ignore -->
 ```json
 {
   "extends": [
@@ -76,6 +69,7 @@
 
 Add extra exclusions for the plugins you use like so:
 
+<!-- prettier-ignore -->
 ```json
 {
   "extends": [
@@ -92,10 +86,9 @@
 }
 ```
 
-If you extend a config which uses a plugin, it is recommended to add
-`"prettier/that-plugin"` (if available). For example, [eslint-config-airbnb]
-enables [eslint-plugin-react] rules, so `"prettier/react"` is needed:
+If you extend a config which uses a plugin, it is recommended to add `"prettier/that-plugin"` (if available). For example, [eslint-config-airbnb] enables [eslint-plugin-react] rules, so `"prettier/react"` is needed:
 
+<!-- prettier-ignore -->
 ```json
 {
   "extends": [
@@ -106,16 +99,11 @@
 }
 ```
 
-If you’re unsure which plugins are used, you can usually find them in your
-`package.json`.
+If you’re unsure which plugins are used, you can usually find them in your `package.json`.
 
 ### Excluding deprecated rules
 
-Some of the rules that eslint-config-prettier turns off may be deprecated.
-**This is perfectly fine,** but if you really need to omit the
-deprecated rules, you can do so by setting the
-`ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable to a non-empty
-value. For example:
+Some of the rules that eslint-config-prettier turns off may be deprecated. **This is perfectly fine,** but if you really need to omit the deprecated rules, you can do so by setting the `ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable to a non-empty value. For example:
 
 ```
 env ESLINT_CONFIG_PRETTIER_NO_DEPRECATED=true npx eslint-find-rules --deprecated index.js
@@ -123,36 +111,22 @@
 
 ## CLI helper tool
 
-eslint-config-prettier also ships with a little CLI tool to help you check if
-your configuration contains any rules that are unnecessary or conflict with
-Prettier.
+eslint-config-prettier also ships with a little CLI tool to help you check if your configuration contains any rules that are unnecessary or conflict with Prettier.
 
-First, add a script for it to package.json:
-
-```json
-{
-  "scripts": {
-    "eslint-check": "eslint --print-config path/to/main.js | eslint-config-prettier-check"
-  }
-}
-```
-
-Then run `npm run eslint-check`. (Change `path/to/main.js` to a file that
-exists in your project.)
-
-In theory you need to run `eslint --print-config file.js |
-eslint-config-prettier-check` for every single file in your project to be
-100% sure that there are no conflicting rules, because ESLint supports having
-different rules for different files. But usually you’ll have about the same
-rules for all files, so it is enough to run the command on one file (pick one
-that you won’t be moving). If you use [multiple configuration files] or
-[overrides], you can (but you probably don’t need to!) run the above script
-several times with different `--print-config` arguments, such as:
+You can run it using `npx`:
 
 ```
-eslint --print-config index.js | eslint-config-prettier-check
-eslint --print-config test/index.js | eslint-config-prettier-check
-eslint --print-config legacy/main.js | eslint-config-prettier-check
+npx eslint --print-config path/to/main.js | npx eslint-config-prettier-check
+```
+
+(Change `path/to/main.js` to a file that exists in your project.)
+
+In theory you need to run `npx eslint --print-config file.js | npx eslint-config-prettier-check` for every single file in your project to be 100% sure that there are no conflicting rules, because ESLint supports having different rules for different files. But usually you’ll have about the same rules for all files, so it is enough to run the command on one file (pick one that you won’t be moving). If you use [multiple configuration files] or [overrides], you can (but you probably don’t need to!) run the above script several times with different `--print-config` arguments, such as:
+
+```
+npx eslint --print-config index.js | npx eslint-config-prettier-check
+npx eslint --print-config test/index.js | npx eslint-config-prettier-check
+npx eslint --print-config legacy/main.js | npx eslint-config-prettier-check
 ```
 
 Exit codes:
@@ -163,6 +137,7 @@
 
 ## Example configuration
 
+<!-- prettier-ignore -->
 ```json
 {
   "extends": [
@@ -185,7 +160,6 @@
     "@typescript-eslint",
     "babel",
     "flowtype",
-    "prettier",
     "react",
     "standard",
     "unicorn",
@@ -200,50 +174,34 @@
   "env": {
     "es6": true,
     "node": true
-  },
-  "rules": {
-    "prettier/prettier": "error"
   }
 }
 ```
 
 ## Special rules
 
-There a few rules that eslint-config-prettier disables that actually can be
-enabled in some cases.
+There a few rules that eslint-config-prettier disables that actually can be enabled in some cases.
 
 - Some require certain options. The CLI helper tool validates this.
-- Some require special attention when writing code. The CLI helper tool warns
-  you if any of those rules are enabled, but can’t tell if anything is
-  problematic.
+- Some require special attention when writing code. The CLI helper tool warns you if any of those rules are enabled, but can’t tell if anything is problematic.
 - Some can cause problems if using [eslint-plugin-prettier] and `--fix`.
 
-For maximum ease of use, the special rules are disabled by default. If you want
-them, you need to explicitly specify them in your ESLint config.
+For maximum ease of use, the special rules are disabled by default. If you want them, you need to explicitly specify them in your ESLint config.
 
 ### [arrow-body-style] and [prefer-arrow-callback]
 
 **These rules might cause problems if using [eslint-plugin-prettier] and `--fix`.**
 
-If you use any of these rules together with the `prettier/prettier` rule from
-[eslint-plugin-prettier], you can in some cases end up with invalid code due to
-a bug in ESLint’s autofix.
+If you use any of these rules together with the `prettier/prettier` rule from [eslint-plugin-prettier], you can in some cases end up with invalid code due to a bug in ESLint’s autofix.
 
 These rules are safe to use if:
 
-- You don’t use [eslint-plugin-prettier]. In other words, you run `eslint --fix`
-  and `prettier --write` as separate steps.
-- You _do_ use [eslint-plugin-prettier], but don’t use `--fix`. (But then,
-  what’s the point?)
+- You don’t use [eslint-plugin-prettier]. In other words, you run `eslint --fix` and `prettier --write` as separate steps.
+- You _do_ use [eslint-plugin-prettier], but don’t use `--fix`. (But then, what’s the point?)
 
-You _can_ still use these rules together with [eslint-plugin-prettier] if you
-want, because the bug does not occur _all the time._ But if you do, you need to
-keep in mind that you might end up with invalid code, where you manually have to
-insert a missing closing parenthesis to get going again.
+You _can_ still use these rules together with [eslint-plugin-prettier] if you want, because the bug does not occur _all the time._ But if you do, you need to keep in mind that you might end up with invalid code, where you manually have to insert a missing closing parenthesis to get going again.
 
-If you’re fixing large of amounts of previously unformatted code, consider
-temporarily disabling the `prettier/prettier` rule and running `eslint --fix`
-and `prettier --write` separately.
+If you’re fixing large of amounts of previously unformatted code, consider temporarily disabling the `prettier/prettier` rule and running `eslint --fix` and `prettier --write` separately.
 
 See these issues for more information:
 
@@ -251,39 +209,36 @@
 - [eslint-config-prettier#71]
 - [eslint-plugin-prettier#65]
 
-When the autofix bug in ESLint has been fixed, the special case for these rules
-can be removed.
+When the autofix bug in ESLint has been fixed, the special case for these rules can be removed.
 
 ### [curly]
 
 **This rule requires certain options.**
 
-If a block (for example after `if`, `else`, `for` or `while`) contains only one
-statement, JavaScript allows omitting the curly braces around that statement.
-This rule enforces if or when those optional curly braces should be omitted.
+If a block (for example after `if`, `else`, `for` or `while`) contains only one statement, JavaScript allows omitting the curly braces around that statement. This rule enforces if or when those optional curly braces should be omitted.
 
-If you use the `"multi-line"` or `"multi-or-nest"` option, the rule can conflict
-with Prettier.
+If you use the `"multi-line"` or `"multi-or-nest"` option, the rule can conflict with Prettier.
 
 For example, the `"multi-line"` option allows this line:
 
+<!-- prettier-ignore -->
 ```js
 if (cart.items && cart.items[0] && cart.items[0].quantity === 0) updateCart(cart);
 ```
 
-However, Prettier might consider the line too long and turn it into the
-following, which the `"multi-line"` option does _not_ allow:
+However, Prettier might consider the line too long and turn it into the following, which the `"multi-line"` option does _not_ allow:
 
+<!-- prettier-ignore -->
 ```js
 if (cart.items && cart.items[0] && cart.items[0].quantity === 0)
   updateCart(cart);
 ```
 
-If you like this rule, it can be used just fine with Prettier as long as you
-don’t use the `"multi-line"` or `"multi-or-nest"` option.
+If you like this rule, it can be used just fine with Prettier as long as you don’t use the `"multi-line"` or `"multi-or-nest"` option.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -296,16 +251,14 @@
 
 **This rule can be used with certain options.**
 
-This rule requires empty lines before and/or after comments. Prettier preserves
-blank lines, with two exceptions:
+This rule requires empty lines before and/or after comments. Prettier preserves blank lines, with two exceptions:
 
-- Several blank lines in a row are collapsed into a single blank line. This is
-  fine.
-- Blank lines at the beginning and end of blocks, objects and arrays are always
-  removed. This may lead to conflicts.
+- Several blank lines in a row are collapsed into a single blank line. This is fine.
+- Blank lines at the beginning and end of blocks, objects and arrays are always removed. This may lead to conflicts.
 
 By default, ESLint requires a blank line above the comment is this case:
 
+<!-- prettier-ignore -->
 ```js
 if (result) {
 
@@ -316,6 +269,7 @@
 
 However, Prettier removes the blank line:
 
+<!-- prettier-ignore -->
 ```js
 if (result) {
   /* comment */
@@ -323,12 +277,11 @@
 }
 ```
 
-If you like this rule, it can be used just fine with Prettier as long as you add
-some extra configuration to allow comments at the start and end of blocks,
-objects and arrays.
+If you like this rule, it can be used just fine with Prettier as long as you add some extra configuration to allow comments at the start and end of blocks, objects and arrays.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -357,19 +310,15 @@
 
 **This rule requires special attention when writing code.**
 
-Usually, Prettier takes care of following a maximum line length automatically.
-However, there are cases where Prettier can’t do anything, such as for long
-strings, regular expressions and comments. Those need to be split up by a human.
+Usually, Prettier takes care of following a maximum line length automatically. However, there are cases where Prettier can’t do anything, such as for long strings, regular expressions and comments. Those need to be split up by a human.
 
-If you’d like to enforce an even stricter maximum line length policy than
-Prettier can provide automatically, you can enable this rule. Just remember to
-keep `max-len`’s options and Prettier’s `printWidth` option in sync.
+If you’d like to enforce an even stricter maximum line length policy than Prettier can provide automatically, you can enable this rule. Just remember to keep `max-len`’s options and Prettier’s `printWidth` option in sync.
 
-Keep in mind that you might have to refactor code slightly if Prettier formats
-lines in a way that the `max-len` rule does not approve of.
+Keep in mind that you might have to refactor code slightly if Prettier formats lines in a way that the `max-len` rule does not approve of.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -384,39 +333,40 @@
 
 For example, the rule could warn about this line:
 
+<!-- prettier-ignore -->
 ```js
 var x = a => 1 ? 2 : 3;
 ```
 
-With `{allowParens: true}` (the default since ESLint 6.0.0), adding
-parentheses is considered a valid way to avoid the arrow confusion:
+With `{allowParens: true}` (the default since ESLint 6.0.0), adding parentheses is considered a valid way to avoid the arrow confusion:
 
+<!-- prettier-ignore -->
 ```js
 var x = a => (1 ? 2 : 3);
 ```
 
-While Prettier keeps those parentheses, it removes them if the line is long
-enough to introduce a line break:
+While Prettier keeps those parentheses, it removes them if the line is long enough to introduce a line break:
 
+<!-- prettier-ignore -->
 ```js
 EnterpriseCalculator.prototype.calculateImportantNumbers = inputNumber =>
   1 ? 2 : 3;
 ```
 
-With `{allowParens: false}`, ESLint instead suggests switching to an explicit
-return:
+With `{allowParens: false}`, ESLint instead suggests switching to an explicit return:
 
+<!-- prettier-ignore -->
 ```js
 var x = a => { return 1 ? 2 : 3; };
 ```
 
 That causes no problems with Prettier.
 
-If you like this rule, it can be used just fine with Prettier as long as the
-`allowParens` option is off.
+If you like this rule, it can be used just fine with Prettier as long as the `allowParens` option is off.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -425,12 +375,7 @@
 }
 ```
 
-(Note: The CLI helper tool considers `{allowParens: true}` to be the default,
-which is the case since ESLint 6.0.0. The tool will produce a warning if you
-use the default even if you use an older version of ESLint. It doesn’t hurt
-to explicitly set `{allowParens: false}` even though it is technically
-redundant. This way you are prepared for a future ESLint upgrade and the CLI
-tool can be kept simple.)
+(Note: The CLI helper tool considers `{allowParens: true}` to be the default, which is the case since ESLint 6.0.0. The tool will produce a warning if you use the default even if you use an older version of ESLint. It doesn’t hurt to explicitly set `{allowParens: false}` even though it is technically redundant. This way you are prepared for a future ESLint upgrade and the CLI tool can be kept simple.)
 
 ### [no-mixed-operators]
 
@@ -440,25 +385,28 @@
 
 For example, the rule could warn about this line:
 
+<!-- prettier-ignore -->
 ```js
 var foo = a + b * c;
 ```
 
 The rule suggests adding parentheses, like this:
 
+<!-- prettier-ignore -->
 ```js
 var foo = a + (b * c);
 ```
 
 However, Prettier removes many “unnecessary” parentheses, turning it back to:
 
+<!-- prettier-ignore -->
 ```js
 var foo = a + b * c;
 ```
 
-If you want to use this rule with Prettier, you need to split the expression
-into another variable:
+If you want to use this rule with Prettier, you need to split the expression into another variable:
 
+<!-- prettier-ignore -->
 ```js
 var bar = b * c;
 var foo = a + bar;
@@ -466,12 +414,14 @@
 
 Keep in mind that Prettier prints _some_ “unnecessary” parentheses, though:
 
+<!-- prettier-ignore -->
 ```js
 var foo = (a && b) || c;
 ```
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -484,11 +434,11 @@
 
 **This rule requires certain Prettier options.**
 
-This rule disallows the use of tab characters at all. It can be used just fine
-with Prettier as long as you don’t configure Prettier to indent using tabs.
+This rule disallows the use of tab characters at all. It can be used just fine with Prettier as long as you don’t configure Prettier to indent using tabs.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -497,18 +447,18 @@
 }
 ```
 
-Example Prettier configuration (this is the default, so adding this is not
-required):
+Example Prettier configuration (this is the default, so adding this is not required):
 
+<!-- prettier-ignore -->
 ```json
 {
   "useTabs": false
 }
 ```
 
-**Note:** Since [ESlint 5.7.0] this rule can be configured to work regardless of
-your Prettier configuration:
+**Note:** Since [ESlint 5.7.0] this rule can be configured to work regardless of your Prettier configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -523,32 +473,33 @@
 
 **This rule requires special attention when writing code.**
 
-This rule disallows confusing multiline expressions where a newline looks like
-it is ending a statement, but is not.
+This rule disallows confusing multiline expressions where a newline looks like it is ending a statement, but is not.
 
 For example, the rule could warn about this:
 
+<!-- prettier-ignore -->
 ```js
 var hello = "world"
 [1, 2, 3].forEach(addNumber)
 ```
 
-Prettier usually formats this in a way that makes it obvious that a semicolon
-was missing:
+Prettier usually formats this in a way that makes it obvious that a semicolon was missing:
 
+<!-- prettier-ignore -->
 ```js
 var hello = "world"[(1, 2, 3)].forEach(addNumber);
 ```
 
-However, there are cases where Prettier breaks things into several lines such
-that the `no-unexpected-multiline` conflicts.
+However, there are cases where Prettier breaks things into several lines such that the `no-unexpected-multiline` conflicts.
 
+<!-- prettier-ignore -->
 ```js
 const value = text.trim().split("\n")[position].toLowerCase();
 ```
 
 Prettier breaks it up into several lines, though, causing a conflict:
 
+<!-- prettier-ignore -->
 ```js
 const value = text
   .trim()
@@ -556,10 +507,9 @@
   [position].toLowerCase();
 ```
 
-If you like this rule, it can usually be used with Prettier without problems,
-but occasionally you might need to either temporarily disable the rule or
-refactor your code.
+If you like this rule, it can usually be used with Prettier without problems, but occasionally you might need to either temporarily disable the rule or refactor your code.
 
+<!-- prettier-ignore -->
 ```js
 const value = text
   .trim()
@@ -573,13 +523,11 @@
 const value = lines[position].toLowerCase();
 ```
 
-**Note:** If you _do_ enable this rule, you have to run ESLint and Prettier as
-two separate steps (and ESLint first) in order to get any value out of it.
-Otherwise Prettier might reformat your code in such a way that ESLint never gets
-a chance to report anything (as seen in the first example).
+**Note:** If you _do_ enable this rule, you have to run ESLint and Prettier as two separate steps (and ESLint first) in order to get any value out of it. Otherwise Prettier might reformat your code in such a way that ESLint never gets a chance to report anything (as seen in the first example).
 
 Example configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -594,20 +542,18 @@
 
 **This rule requires certain options and certain Prettier options.**
 
-Usually, you don’t need this rule at all. But there are two cases where it could
-be useful:
+Usually, you don’t need this rule at all. But there are two cases where it could be useful:
 
-- To enforce the use of backticks rather than single or double quotes for
-  strings.
+- To enforce the use of backticks rather than single or double quotes for strings.
 - To forbid backticks where regular strings could have been used.
 
 #### Enforce backticks
 
-If you’d like all strings to use backticks (never quotes), enable the
-`"backtick"` option.
+If you’d like all strings to use backticks (never quotes), enable the `"backtick"` option.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -618,9 +564,9 @@
 
 #### Forbid unnecessary backticks
 
-In the following example, the first array item could have been written with
-quotes instead of backticks.
+In the following example, the first array item could have been written with quotes instead of backticks.
 
+<!-- prettier-ignore -->
 ```js
 const strings = [
   `could have been a regular string`,
@@ -633,12 +579,9 @@
 ];
 ```
 
-If you’d like ESLint to enforce `` `could have been a regular string` `` being
-written as either `"could have been a regular string"` or `'could have been a
-regular string'`, you need to use some specific configuration. The `quotes` rule has two options, a string option and an object option.
+If you’d like ESLint to enforce `` `could have been a regular string` `` being written as either `"could have been a regular string"` or `'could have been a regular string'`, you need to use some specific configuration. The `quotes` rule has two options, a string option and an object option.
 
-- The first (string) option needs to be set to `"single"` or `"double"` and be
-  kept in sync with Prettier’s [singleQuote] option.
+- The first (string) option needs to be set to `"single"` or `"double"` and be kept in sync with Prettier’s [singleQuote] option.
 - The second (object) option needs the following properties:
   - `"avoidEscape": true` to follow Prettier’s [string formatting rules].
   - `"allowTemplateLiterals": false` to disallow unnecessary backticks.
@@ -647,6 +590,7 @@
 
 ESLint:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -661,6 +605,7 @@
 
 Prettier (this is the default, so adding this is not required):
 
+<!-- prettier-ignore -->
 ```json
 {
   "singleQuote": false
@@ -671,6 +616,7 @@
 
 ESLint:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -685,6 +631,7 @@
 
 Prettier:
 
+<!-- prettier-ignore -->
 ```json
 {
   "singleQuote": true
@@ -699,6 +646,7 @@
 
 Prettier generally preserves the way you wrote your elements:
 
+<!-- prettier-ignore -->
 ```vue
 <div />
 <div></div>
@@ -708,14 +656,13 @@
 <svg><path d=""></path></svg>
 ```
 
-But for known _void_ HTML elements, Prettier always uses the self-closing style.
-For example, `<img>` is turned into `<img />`.
+But for known _void_ HTML elements, Prettier always uses the self-closing style. For example, `<img>` is turned into `<img />`.
 
-If you like this rule, it can be used just fine with Prettier as long as you
-set `html.void` to `"any"`.
+If you like this rule, it can be used just fine with Prettier as long as you set `html.void` to `"any"`.
 
 Example ESLint configuration:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -733,35 +680,29 @@
 
 ## Other rules worth mentioning
 
-These rules don’t conflict with Prettier, but have some gotchas when used with
-Prettier.
+These rules don’t conflict with Prettier, but have some gotchas when used with Prettier.
 
 ### [no-sequences]
 
-This rule forbids using JavaScript’s confusing comma operator (sequence
-expressions). This piece of code is not doing what it looks like:
+This rule forbids using JavaScript’s confusing comma operator (sequence expressions). This piece of code is not doing what it looks like:
 
+<!-- prettier-ignore -->
 ```js
 matrix[4, 7];
 ```
 
-Prettier adds parentheses to the above to make it clear that a sequence
-expression is used:
+Prettier adds parentheses to the above to make it clear that a sequence expression is used:
 
+<!-- prettier-ignore -->
 ```js
 matrix[(4, 7)];
 ```
 
-However, the `no-sequences` rule allows comma operators if the expression
-sequence is explicitly wrapped in parentheses. Since Prettier automatically
-wraps them in parentheses, you might never see any warnings from ESLint about
-comma operators.
+However, the `no-sequences` rule allows comma operators if the expression sequence is explicitly wrapped in parentheses. Since Prettier automatically wraps them in parentheses, you might never see any warnings from ESLint about comma operators.
 
-Ending up with an accidental sequence expression can easily happen while
-refactoring. If you want ESLint to catch such mistakes, it is recommended to
-forbid sequence expressions entirely using [no-restricted-syntax] \([as
-mentioned in the `no-sequences` documentation][no-sequences-full]):
+Ending up with an accidental sequence expression can easily happen while refactoring. If you want ESLint to catch such mistakes, it is recommended to forbid sequence expressions entirely using [no-restricted-syntax] \([as mentioned in the `no-sequences` documentation][no-sequences-full]):
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -770,13 +711,11 @@
 }
 ```
 
-If you still need to use the comma operator for some edge case, you can place an
-`// eslint-disable-next-line no-restricted-syntax` comment on the line above the
-expression. `no-sequences` can safely be disabled if you use the
-`no-restricted-syntax` approach.
+If you still need to use the comma operator for some edge case, you can place an `// eslint-disable-next-line no-restricted-syntax` comment on the line above the expression. `no-sequences` can safely be disabled if you use the `no-restricted-syntax` approach.
 
 You can also supply a custom message if you want:
 
+<!-- prettier-ignore -->
 ```json
 {
   "rules": {
@@ -795,28 +734,27 @@
 
 eslint-config-prettier has been tested with:
 
-- ESLint 6.8.0
+- ESLint 7.9.0
+  - eslint-config-prettier 6.11.0 and older were tested with ESLint 6.x
   - eslint-config-prettier 5.1.0 and older were tested with ESLint 5.x
   - eslint-config-prettier 2.10.0 and older were tested with ESLint 4.x
   - eslint-config-prettier 2.1.1 and older were tested with ESLint 3.x
-- prettier 1.19.1
-- @typescript-eslint/eslint-plugin 2.18.0
-- eslint-plugin-babel 5.3.0
-- eslint-plugin-flowtype 4.6.0
-- eslint-plugin-react 7.18.0
+- prettier 2.1.2
+- @typescript-eslint/eslint-plugin 4.2.0
+- eslint-plugin-babel 5.3.1
+- eslint-plugin-flowtype 5.2.0
+- eslint-plugin-react 7.21.2
 - eslint-plugin-standard 4.0.1
-- eslint-plugin-unicorn 15.0.1
-- eslint-plugin-vue 6.1.2
+- eslint-plugin-unicorn 22.0.0
+- eslint-plugin-vue 6.2.2
 
-Have new rules been added since those versions? Have we missed any rules? Is
-there a plugin you would like to see exclusions for? Open an issue or a pull
-request!
+Have new rules been added since those versions? Have we missed any rules? Is there a plugin you would like to see exclusions for? Open an issue or a pull request!
 
-If you’d like to add support for eslint-plugin-foobar, this is how you’d go
-about it:
+If you’d like to add support for eslint-plugin-foobar, this is how you’d go about it:
 
 First, create `foobar.js`:
 
+<!-- prettier-ignore -->
 ```js
 "use strict";
 
@@ -829,6 +767,7 @@
 
 Then, create `test-lint/foobar.js`:
 
+<!-- prettier-ignore -->
 ```js
 /* eslint-disable quotes */
 "use strict";
@@ -838,35 +777,25 @@
 console.log();
 ```
 
-`test-lint/foobar.js` must fail when used with eslint-plugin-foobar and
-eslint-plugin-prettier at the same time – until `"prettier/foobar"` is added to
-the "extends" property of an ESLint config. The file should be formatted
-according to Prettier, and that formatting should disagree with the plugin.
+`test-lint/foobar.js` must fail when used with eslint-plugin-foobar and eslint-plugin-prettier at the same time – until `"prettier/foobar"` is added to the "extends" property of an ESLint config. The file should be formatted according to Prettier, and that formatting should disagree with the plugin.
 
 Finally, you need to mention the plugin in several places:
 
 - Add `"foobar.js"` to the "files" field in `package.json`.
 - Add eslint-plugin-foobar to the "devDependencies" field in `package.json`.
-- Make sure that at least one rule from eslint-plugin-foobar gets used in
-  `.eslintrc.base.js`.
-- Add it to the list of supported plugins, to the example config and to
-  Contributing section in `README.md`.
+- Make sure that at least one rule from eslint-plugin-foobar gets used in `.eslintrc.base.js`.
+- Add it to the list of supported plugins, to the example config and to Contributing section in `README.md`.
 
-When you’re done, run `npm test` to verify that you got it all right. It runs
-several other npm scripts:
+When you’re done, run `npm test` to verify that you got it all right. It runs several other npm scripts:
 
-- `"test:lint"` makes sure that the files in `test-lint/` pass ESLint when
-  the exclusions from eslint-config-prettier are used. It also lints the code of
-  eslint-config-prettier itself.
+- `"test:lint"` makes sure that the files in `test-lint/` pass ESLint when the exclusions from eslint-config-prettier are used. It also lints the code of eslint-config-prettier itself, and checks that Prettier has been run on all files.
 - `"test:lint-verify-fail"` is run by a test in `test/lint-verify-fail.test.js`.
 - `"test:lint-rules"` is run by a test in `test/rules.test.js`.
 - `"test:jest"` runs unit tests that check a number of things:
   - That eslint-plugin-foobar is mentioned in all the places shown above.
-  - That no unknown rules are turned off. This helps catching typos, for
-    example.
+  - That no unknown rules are turned off. This helps catching typos, for example.
   - That the CLI works.
-- `"test:cli-sanity"` and `"test:cli-sanity-warning"` are sanity checks for the
-  CLI.
+- `"test:cli-sanity"` and `"test:cli-sanity-warning"` are sanity checks for the CLI.
 
 ## License
 
@@ -874,8 +803,8 @@
 
 [@typescript-eslint/eslint-plugin]: https://github.com/typescript-eslint/typescript-eslint
 [@typescript-eslint/quotes]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md
-[ESlint 5.7.0]: https://eslint.org/blog/2018/10/eslint-v5.7.0-released
-[Prettier]: https://github.com/prettier/prettier
+[eslint 5.7.0]: https://eslint.org/blog/2018/10/eslint-v5.7.0-released
+[prettier]: https://github.com/prettier/prettier
 [arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style
 [babel/quotes]: https://github.com/babel/eslint-plugin-babel#rules
 [curly]: https://eslint.org/docs/rules/curly
@@ -903,9 +832,7 @@
 [overrides]: https://eslint.org/docs/user-guide/configuring#configuration-based-on-glob-patterns
 [prefer-arrow-callback]: https://eslint.org/docs/rules/prefer-arrow-callback
 [quotes]: https://eslint.org/docs/rules/quotes
-[singleQuote]: https://prettier.io/docs/en/options.html#quotes
+[singlequote]: https://prettier.io/docs/en/options.html#quotes
 [string formatting rules]: https://prettier.io/docs/en/rationale.html#strings
-[travis-badge]: https://travis-ci.org/prettier/eslint-config-prettier.svg?branch=master
-[travis]: https://travis-ci.org/prettier/eslint-config-prettier
 [vue/html-self-closing]: https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/html-self-closing.md
 [vue/max-len]: https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/max-len.md
diff --git a/node_modules/eslint-config-prettier/babel.js b/node_modules/eslint-config-prettier/babel.js
index a93d5a4..47d0365 100644
--- a/node_modules/eslint-config-prettier/babel.js
+++ b/node_modules/eslint-config-prettier/babel.js
@@ -5,6 +5,6 @@
     "babel/quotes": 0,
 
     "babel/object-curly-spacing": "off",
-    "babel/semi": "off"
-  }
+    "babel/semi": "off",
+  },
 };
diff --git a/node_modules/eslint-config-prettier/bin/cli.js b/node_modules/eslint-config-prettier/bin/cli.js
index 47311c3..208b143 100755
--- a/node_modules/eslint-config-prettier/bin/cli.js
+++ b/node_modules/eslint-config-prettier/bin/cli.js
@@ -17,8 +17,8 @@
         "This tool checks whether an ESLint configuration contains rules that are",
         "unnecessary or conflict with Prettier. It’s supposed to be run like this:",
         "",
-        "  eslint --print-config path/to/main.js | eslint-config-prettier-check",
-        "  eslint --print-config test/index.js | eslint-config-prettier-check",
+        "  npx eslint --print-config path/to/main.js | npx eslint-config-prettier-check",
+        "  npx eslint --print-config test/index.js | npx eslint-config-prettier-check",
         "",
         "Exit codes:",
         "",
@@ -27,14 +27,14 @@
         "2: Conflicting rules found.",
         "",
         "For more information, see:",
-        "https://github.com/prettier/eslint-config-prettier#cli-helper-tool"
+        "https://github.com/prettier/eslint-config-prettier#cli-helper-tool",
       ].join("\n")
     );
     process.exit(1);
   }
 
   getStdin()
-    .then(string => {
+    .then((string) => {
       const result = processString(string);
       if (result.stderr) {
         console.error(result.stderr);
@@ -44,7 +44,7 @@
       }
       process.exit(result.code);
     })
-    .catch(error => {
+    .catch((error) => {
       console.error("Unexpected error", error);
       process.exit(1);
     });
@@ -57,7 +57,7 @@
   } catch (error) {
     return {
       stderr: `Failed to parse JSON:\n${error.message}`,
-      code: 1
+      code: 1,
     };
   }
 
@@ -69,7 +69,7 @@
   ) {
     return {
       stderr: `Expected a \`{"rules: {...}"}\` JSON object, but got:\n${string}`,
-      code: 1
+      code: 1,
     };
   }
 
@@ -80,8 +80,8 @@
     Object.create(null),
     ...fs
       .readdirSync(path.join(__dirname, ".."))
-      .filter(name => !name.startsWith(".") && name.endsWith(".js"))
-      .map(ruleFileName => require(`../${ruleFileName}`).rules)
+      .filter((name) => !name.startsWith(".") && name.endsWith(".js"))
+      .map((ruleFileName) => require(`../${ruleFileName}`).rules)
   );
 
   const regularRules = filterRules(
@@ -98,7 +98,7 @@
   );
 
   const flaggedRules = Object.keys(config.rules)
-    .map(ruleName => {
+    .map((ruleName) => {
       const value = config.rules[ruleName];
       const arrayValue = Array.isArray(value) ? value : [value];
       const level = arrayValue[0];
@@ -110,7 +110,7 @@
 
   const regularFlaggedRuleNames = filterRuleNames(
     flaggedRules,
-    ruleName => ruleName in regularRules
+    (ruleName) => ruleName in regularRules
   );
   const optionsFlaggedRuleNames = filterRuleNames(
     flaggedRules,
@@ -119,7 +119,7 @@
   );
   const specialFlaggedRuleNames = filterRuleNames(
     flaggedRules,
-    ruleName => ruleName in specialRules
+    (ruleName) => ruleName in specialRules
   );
 
   if (
@@ -138,52 +138,52 @@
             "However, the following rules are enabled but cannot be automatically checked. See:",
             SPECIAL_RULES_URL,
             "",
-            printRuleNames(specialFlaggedRuleNames)
+            printRuleNames(specialFlaggedRuleNames),
           ].join("\n");
 
     return {
       stdout: message,
-      code: 0
+      code: 0,
     };
   }
 
   const regularMessage = [
     "The following rules are unnecessary or might conflict with Prettier:",
     "",
-    printRuleNames(regularFlaggedRuleNames)
+    printRuleNames(regularFlaggedRuleNames),
   ].join("\n");
 
   const optionsMessage = [
     "The following rules are enabled with options that might conflict with Prettier. See:",
     SPECIAL_RULES_URL,
     "",
-    printRuleNames(optionsFlaggedRuleNames)
+    printRuleNames(optionsFlaggedRuleNames),
   ].join("\n");
 
   const specialMessage = [
     "The following rules are enabled but cannot be automatically checked. See:",
     SPECIAL_RULES_URL,
     "",
-    printRuleNames(specialFlaggedRuleNames)
+    printRuleNames(specialFlaggedRuleNames),
   ].join("\n");
 
   const message = [
     regularFlaggedRuleNames.length === 0 ? null : regularMessage,
     optionsFlaggedRuleNames.length === 0 ? null : optionsMessage,
-    specialFlaggedRuleNames.length === 0 ? null : specialMessage
+    specialFlaggedRuleNames.length === 0 ? null : specialMessage,
   ]
     .filter(Boolean)
     .join("\n\n");
 
   return {
     stdout: message,
-    code: 2
+    code: 2,
   };
 }
 
 function filterRules(rules, fn) {
   return Object.keys(rules)
-    .filter(ruleName => fn(ruleName, rules[ruleName]))
+    .filter((ruleName) => fn(ruleName, rules[ruleName]))
     .reduce((obj, ruleName) => {
       obj[ruleName] = true;
       return obj;
@@ -192,15 +192,15 @@
 
 function filterRuleNames(rules, fn) {
   return rules
-    .filter(rule => fn(rule.ruleName, rule.options))
-    .map(rule => rule.ruleName);
+    .filter((rule) => fn(rule.ruleName, rule.options))
+    .map((rule) => rule.ruleName);
 }
 
 function printRuleNames(ruleNames) {
   return ruleNames
     .slice()
     .sort()
-    .map(ruleName => `- ${ruleName}`)
+    .map((ruleName) => `- ${ruleName}`)
     .join("\n");
 }
 
diff --git a/node_modules/eslint-config-prettier/bin/validators.js b/node_modules/eslint-config-prettier/bin/validators.js
index c8c4ae9..a6a9b8a 100644
--- a/node_modules/eslint-config-prettier/bin/validators.js
+++ b/node_modules/eslint-config-prettier/bin/validators.js
@@ -50,5 +50,5 @@
       // Enable when Prettier supports SVG: https://github.com/prettier/prettier/issues/5322
       // && firstOption.svg === "any"
     );
-  }
+  },
 };
diff --git a/node_modules/eslint-config-prettier/flowtype.js b/node_modules/eslint-config-prettier/flowtype.js
index 09529ae..34b8943 100644
--- a/node_modules/eslint-config-prettier/flowtype.js
+++ b/node_modules/eslint-config-prettier/flowtype.js
@@ -10,6 +10,6 @@
     "flowtype/space-after-type-colon": "off",
     "flowtype/space-before-generic-bracket": "off",
     "flowtype/space-before-type-colon": "off",
-    "flowtype/union-intersection-spacing": "off"
-  }
+    "flowtype/union-intersection-spacing": "off",
+  },
 };
diff --git a/node_modules/eslint-config-prettier/index.js b/node_modules/eslint-config-prettier/index.js
index fa29d3f..1cbfd47 100644
--- a/node_modules/eslint-config-prettier/index.js
+++ b/node_modules/eslint-config-prettier/index.js
@@ -89,7 +89,7 @@
       "unicode-bom": "off",
       "wrap-iife": "off",
       "wrap-regex": "off",
-      "yield-star-spacing": "off"
+      "yield-star-spacing": "off",
     },
     includeDeprecated && {
       // Deprecated since version 4.0.0.
@@ -97,7 +97,7 @@
       "indent-legacy": "off",
       // Deprecated since version 3.3.0.
       // https://eslint.org/docs/rules/no-spaced-func
-      "no-spaced-func": "off"
+      "no-spaced-func": "off",
     }
-  )
+  ),
 };
diff --git a/node_modules/eslint-config-prettier/package.json b/node_modules/eslint-config-prettier/package.json
index 515ca8e..616625f 100644
--- a/node_modules/eslint-config-prettier/package.json
+++ b/node_modules/eslint-config-prettier/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint-config-prettier",
-  "version": "6.10.0",
+  "version": "6.12.0",
   "license": "MIT",
   "author": "Simon Lydell",
   "description": "Turns off all rules that are unnecessary or might conflict with Prettier.",
@@ -26,7 +26,8 @@
   ],
   "scripts": {
     "doctoc": "doctoc README.md && replace \"\\[\\[([\\w/-]+)\\](?:([^\\[\\]]+)\\[([\\w/-]+)\\])?\\]\" \"[\\$1\\$2\\$3]\" README.md",
-    "test:lint": "eslint .",
+    "prettier": "prettier --write .",
+    "test:lint": "eslint . && prettier --check .",
     "test:lint-verify-fail": "eslint \"test-lint/*.{js,ts,vue}\" --config .eslintrc.base.js --format json",
     "test:lint-rules": "eslint index.js --config test-config/.eslintrc.js --format json",
     "test:deprecated": "eslint-find-rules --deprecated index.js",
@@ -39,26 +40,26 @@
     "get-stdin": "^6.0.0"
   },
   "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "2.18.0",
-    "@typescript-eslint/parser": "2.18.0",
-    "babel-eslint": "10.0.3",
-    "cross-spawn": "6.0.5",
+    "@typescript-eslint/eslint-plugin": "4.2.0",
+    "@typescript-eslint/parser": "4.2.0",
+    "babel-eslint": "10.1.0",
+    "cross-spawn": "7.0.3",
     "doctoc": "1.4.0",
-    "eslint": "6.8.0",
+    "eslint": "7.9.0",
     "eslint-config-google": "0.14.0",
-    "eslint-find-rules": "3.4.0",
-    "eslint-plugin-babel": "5.3.0",
-    "eslint-plugin-flowtype": "4.6.0",
-    "eslint-plugin-prettier": "3.1.2",
-    "eslint-plugin-react": "7.18.0",
+    "eslint-find-rules": "3.6.1",
+    "eslint-plugin-babel": "5.3.1",
+    "eslint-plugin-flowtype": "5.2.0",
+    "eslint-plugin-prettier": "3.1.4",
+    "eslint-plugin-react": "7.21.2",
     "eslint-plugin-standard": "4.0.1",
-    "eslint-plugin-unicorn": "15.0.1",
-    "eslint-plugin-vue": "6.1.2",
-    "jest": "25.1.0",
-    "prettier": "1.19.1",
-    "replace": "1.1.5",
-    "rimraf": "3.0.1",
-    "typescript": "3.7.5"
+    "eslint-plugin-unicorn": "22.0.0",
+    "eslint-plugin-vue": "6.2.2",
+    "jest": "26.4.2",
+    "prettier": "2.1.2",
+    "replace": "1.2.0",
+    "rimraf": "3.0.2",
+    "typescript": "4.0.3"
   },
   "peerDependencies": {
     "eslint": ">=3.14.1"
diff --git a/node_modules/eslint-config-prettier/react.js b/node_modules/eslint-config-prettier/react.js
index 264737f..3f48553 100644
--- a/node_modules/eslint-config-prettier/react.js
+++ b/node_modules/eslint-config-prettier/react.js
@@ -18,12 +18,12 @@
       "react/jsx-one-expression-per-line": "off",
       "react/jsx-props-no-multi-spaces": "off",
       "react/jsx-tag-spacing": "off",
-      "react/jsx-wrap-multilines": "off"
+      "react/jsx-wrap-multilines": "off",
     },
     includeDeprecated && {
       // Deprecated since version 7.0.0.
       // https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06
-      "react/jsx-space-before-closing": "off"
+      "react/jsx-space-before-closing": "off",
     }
-  )
+  ),
 };
diff --git a/node_modules/eslint-config-prettier/standard.js b/node_modules/eslint-config-prettier/standard.js
index 036ecd4..faacadd 100644
--- a/node_modules/eslint-config-prettier/standard.js
+++ b/node_modules/eslint-config-prettier/standard.js
@@ -4,6 +4,6 @@
   rules: {
     "standard/array-bracket-even-spacing": "off",
     "standard/computed-property-even-spacing": "off",
-    "standard/object-curly-even-spacing": "off"
-  }
+    "standard/object-curly-even-spacing": "off",
+  },
 };
diff --git a/node_modules/eslint-config-prettier/unicorn.js b/node_modules/eslint-config-prettier/unicorn.js
index 34e5187..eb7103e 100644
--- a/node_modules/eslint-config-prettier/unicorn.js
+++ b/node_modules/eslint-config-prettier/unicorn.js
@@ -3,6 +3,6 @@
 module.exports = {
   rules: {
     "unicorn/no-nested-ternary": "off",
-    "unicorn/number-literal-case": "off"
-  }
+    "unicorn/number-literal-case": "off",
+  },
 };
diff --git a/node_modules/eslint-config-prettier/vue.js b/node_modules/eslint-config-prettier/vue.js
index 2c7c6c6..d60c2de 100644
--- a/node_modules/eslint-config-prettier/vue.js
+++ b/node_modules/eslint-config-prettier/vue.js
@@ -27,6 +27,6 @@
     "vue/script-indent": "off",
     "vue/singleline-html-element-content-newline": "off",
     "vue/space-infix-ops": "off",
-    "vue/space-unary-ops": "off"
-  }
+    "vue/space-unary-ops": "off",
+  },
 };
diff --git a/node_modules/eslint-import-resolver-node/CHANGELOG.md b/node_modules/eslint-import-resolver-node/CHANGELOG.md
index f0d2358..8fa31be 100644
--- a/node_modules/eslint-import-resolver-node/CHANGELOG.md
+++ b/node_modules/eslint-import-resolver-node/CHANGELOG.md
@@ -5,9 +5,17 @@
 
 ## Unreleased
 
+## v0.3.4 - 2020-06-16
+### Added
+- add `.node` extension ([#1663])
+
+## v0.3.3 - 2020-01-10
+### Changed
+- [meta] copy LICENSE file to all npm packages on prepublish ([#1595], thanks [@opichals])
+
 ## v0.3.2 - 2018-01-05
 ### Added
-- `.mjs` extension detected by default to support `experimental-modules` (#939)
+- `.mjs` extension detected by default to support `experimental-modules` ([#939])
 
 ### Deps
 - update `debug`, `resolve`
@@ -42,6 +50,8 @@
 
 [#438]: https://github.com/benmosher/eslint-plugin-import/pull/438
 
+[#1663]: https://github.com/benmosher/eslint-plugin-import/issues/1663
+[#1595]: https://github.com/benmosher/eslint-plugin-import/pull/1595
 [#939]: https://github.com/benmosher/eslint-plugin-import/issues/939
 [#531]: https://github.com/benmosher/eslint-plugin-import/issues/531
 [#437]: https://github.com/benmosher/eslint-plugin-import/issues/437
@@ -50,3 +60,4 @@
 [@lukeapage]: https://github.com/lukeapage
 [@SkeLLLa]: https://github.com/SkeLLLa
 [@ljharb]: https://github.com/ljharb
+[@opichals]: https://github.com/opichals
diff --git a/node_modules/eslint-import-resolver-node/index.js b/node_modules/eslint-import-resolver-node/index.js
index b5a1537..bf2aab3 100644
--- a/node_modules/eslint-import-resolver-node/index.js
+++ b/node_modules/eslint-import-resolver-node/index.js
@@ -28,7 +28,7 @@
   return Object.assign({
       // more closely matches Node (#333)
       // plus 'mjs' for native modules! (#939)
-      extensions: ['.mjs', '.js', '.json'],
+      extensions: ['.mjs', '.js', '.json', '.node'],
     },
     config,
     {
diff --git a/node_modules/eslint-import-resolver-node/package.json b/node_modules/eslint-import-resolver-node/package.json
index f197bab..27daa90 100644
--- a/node_modules/eslint-import-resolver-node/package.json
+++ b/node_modules/eslint-import-resolver-node/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint-import-resolver-node",
-  "version": "0.3.3",
+  "version": "0.3.4",
   "description": "Node default behavior import resolution plugin for eslint-plugin-import.",
   "main": "index.js",
   "files": [
@@ -8,7 +8,8 @@
   ],
   "scripts": {
     "prepublishOnly": "cp ../../{LICENSE,.npmrc} ./",
-    "test": "nyc mocha",
+    "tests-only": "nyc mocha",
+    "test": "npm run tests-only",
     "coveralls": "nyc report --reporter lcovonly && cd ../.. && coveralls < ./resolvers/node/coverage/lcov.info"
   },
   "repository": {
diff --git a/node_modules/eslint-module-utils/CHANGELOG.md b/node_modules/eslint-module-utils/CHANGELOG.md
index 61671ba..f337d38 100644
--- a/node_modules/eslint-module-utils/CHANGELOG.md
+++ b/node_modules/eslint-module-utils/CHANGELOG.md
@@ -5,6 +5,11 @@
 
 ## Unreleased
 
+## v2.6.0 - 2020-03-28
+
+### Added
+[New] Print more helpful info if parsing fails ([#1671], thanks [@kaiyoma])
+
 ## v2.5.2 - 2020-01-12
 
 ### Fixed
@@ -70,6 +75,7 @@
 ### Fixed
 - `unambiguous.test()` regex is now properly in multiline mode
 
+[#1671]: https://github.com/benmosher/eslint-plugin-import/pull/1671
 [#1606]: https://github.com/benmosher/eslint-plugin-import/pull/1606
 [#1602]: https://github.com/benmosher/eslint-plugin-import/pull/1602
 [#1591]: https://github.com/benmosher/eslint-plugin-import/pull/1591
@@ -94,3 +100,4 @@
 [@arcanis]: https://github.com/arcanis
 [@sompylasar]: https://github.com/sompylasar
 [@iamnapo]: https://github.com/iamnapo
+[@kaiyoma]: https://github.com/kaiyoma
diff --git a/node_modules/eslint-module-utils/ModuleCache.js b/node_modules/eslint-module-utils/ModuleCache.js
index ab0266f..b910a58 100644
--- a/node_modules/eslint-module-utils/ModuleCache.js
+++ b/node_modules/eslint-module-utils/ModuleCache.js
@@ -22,7 +22,7 @@
   get(cacheKey, settings) {
     if (this.map.has(cacheKey)) {
       const f = this.map.get(cacheKey)
-      // check fresness
+      // check freshness
       if (process.hrtime(f.lastSeen)[0] < settings.lifetime) return f.result
     } else log('cache miss for', cacheKey)
     // cache miss
diff --git a/node_modules/eslint-module-utils/package.json b/node_modules/eslint-module-utils/package.json
index b8d4033..6e8ebdd 100644
--- a/node_modules/eslint-module-utils/package.json
+++ b/node_modules/eslint-module-utils/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint-module-utils",
-  "version": "2.5.2",
+  "version": "2.6.0",
   "description": "Core utilities to support eslint-plugin-import and other module-related plugins.",
   "engines": {
     "node": ">=4"
diff --git a/node_modules/eslint-module-utils/parse.js b/node_modules/eslint-module-utils/parse.js
index fa2ff14..b3a4692 100644
--- a/node_modules/eslint-module-utils/parse.js
+++ b/node_modules/eslint-module-utils/parse.js
@@ -47,7 +47,9 @@
     try {
       ast = parser.parseForESLint(content, parserOptions).ast
     } catch (e) {
-      //
+      console.warn()
+      console.warn('Error while parsing ' + parserOptions.filePath)
+      console.warn('Line ' + e.lineNumber + ', column ' + e.column + ': ' + e.message)
     }
     if (!ast || typeof ast !== 'object') {
       console.warn(
diff --git a/node_modules/eslint-plugin-flowtype/CONTRIBUTING.md b/node_modules/eslint-plugin-flowtype/CONTRIBUTING.md
deleted file mode 100644
index 455849d..0000000
--- a/node_modules/eslint-plugin-flowtype/CONTRIBUTING.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Contributing
-
-**`README.md` is a generated file. Do not edit it directly.** Edit the files inside `.README` instead.
-
-## Pre-Commit Hook
-
-When making a commit, the following Pre-Commit hooks run:
-
-* test and documentation checks
-* tests
-* lint
-* commit message validation (see "Commit Messages" below)
-
-## Commit Messages
-
-All commit messages must begin with one of the following prefixes:
-
-* `fix: `
-* `feat: `
-* `refactor: `
-* `docs: `
-* `chore: `
-
-The prefix is used to bump the correct segment of the version number during the automatic release.
-
-## Tests
-
-Run them with `npm test`.
-
-## Lint
-
-Run with `npm run lint`.
-
-## Submitting a PR
-
-Just before submitting a PR, run `npm run create-readme` to generate the new README.md
-
-## Adding a Rule
-
-### Source & Tests
-
-1. Create a file in `tests/rules/assertions` named the `camelCase` version of your rule name with the following template:
-  * `export default { invalid: [], valid: [] }`
-2. Add your test file to `tests/rules/index.js`
-3. Create a file in `src/rules` named the `camelCase` version  of your rule name
-4. Add your rule file to `src/index.js`
-
-### Adding Documentation
-
-1. Create new file in `./.README/rules/[rule-name].md`.
-  * Use [./.README/rules/require-valid-file-annotation.md](./.README/rules/require-valid-file-annotation.md) as a template.
-  * Ensure that rule documentation document includes `<!-- assertions spaceAfterTypeColon -->` declaration.
-1. Update [./.README/README.md](/.README/README.md) to include the new rule.
-
-A CI service will build and publish the new documentation.
-
-Note: Sections "The following patterns are considered problems:" and "The following patterns are not considered problems:" are **generated automatically** using the test cases.
diff --git a/node_modules/eslint-plugin-flowtype/LICENSE b/node_modules/eslint-plugin-flowtype/LICENSE
deleted file mode 100644
index 183e8d8..0000000
--- a/node_modules/eslint-plugin-flowtype/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2015, Gajus Kuizinas (http://gajus.com/)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Gajus Kuizinas (http://gajus.com/) nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL ANUARY BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/eslint-plugin-flowtype/README.md b/node_modules/eslint-plugin-flowtype/README.md
deleted file mode 100644
index 3ce8660..0000000
--- a/node_modules/eslint-plugin-flowtype/README.md
+++ /dev/null
@@ -1,5943 +0,0 @@
-<a name="eslint-plugin-flowtype"></a>
-# eslint-plugin-flowtype
-
-[![GitSpo Mentions](https://gitspo.com/badges/mentions/gajus/eslint-plugin-flowtype?style=flat-square)](https://gitspo.com/mentions/gajus/eslint-plugin-flowtype)
-[![NPM version](http://img.shields.io/npm/v/eslint-plugin-flowtype.svg?style=flat-square)](https://www.npmjs.org/package/eslint-plugin-flowtype)
-[![Travis build status](http://img.shields.io/travis/gajus/eslint-plugin-flowtype/master.svg?style=flat-square)](https://travis-ci.org/gajus/eslint-plugin-flowtype)
-[![js-canonical-style](https://img.shields.io/badge/code%20style-canonical-blue.svg?style=flat-square)](https://github.com/gajus/canonical)
-
-[Flow type](http://flowtype.org/) linting rules for ESLint.
-
-* [eslint-plugin-flowtype](#eslint-plugin-flowtype)
-    * [Installation](#eslint-plugin-flowtype-installation)
-    * [Configuration](#eslint-plugin-flowtype-configuration)
-        * [Shareable configurations](#eslint-plugin-flowtype-configuration-shareable-configurations)
-        * [Community maintained configurations](#eslint-plugin-flowtype-configuration-community-maintained-configurations)
-    * [Settings](#eslint-plugin-flowtype-settings)
-        * [`onlyFilesWithFlowAnnotation`](#eslint-plugin-flowtype-settings-onlyfileswithflowannotation)
-    * [Rules](#eslint-plugin-flowtype-rules)
-        * [`array-style-complex-type`](#eslint-plugin-flowtype-rules-array-style-complex-type)
-        * [`array-style-simple-type`](#eslint-plugin-flowtype-rules-array-style-simple-type)
-        * [`arrow-parens`](#eslint-plugin-flowtype-rules-arrow-parens)
-        * [`boolean-style`](#eslint-plugin-flowtype-rules-boolean-style)
-        * [`define-flow-type`](#eslint-plugin-flowtype-rules-define-flow-type)
-        * [`delimiter-dangle`](#eslint-plugin-flowtype-rules-delimiter-dangle)
-        * [`generic-spacing`](#eslint-plugin-flowtype-rules-generic-spacing)
-        * [`newline-after-flow-annotation`](#eslint-plugin-flowtype-rules-newline-after-flow-annotation)
-        * [`no-dupe-keys`](#eslint-plugin-flowtype-rules-no-dupe-keys)
-        * [`no-existential-type`](#eslint-plugin-flowtype-rules-no-existential-type)
-        * [`no-flow-fix-me-comments`](#eslint-plugin-flowtype-rules-no-flow-fix-me-comments)
-        * [`no-mixed`](#eslint-plugin-flowtype-rules-no-mixed)
-        * [`no-mutable-array`](#eslint-plugin-flowtype-rules-no-mutable-array)
-        * [`no-primitive-constructor-types`](#eslint-plugin-flowtype-rules-no-primitive-constructor-types)
-        * [`no-types-missing-file-annotation`](#eslint-plugin-flowtype-rules-no-types-missing-file-annotation)
-        * [`no-unused-expressions`](#eslint-plugin-flowtype-rules-no-unused-expressions)
-        * [`no-weak-types`](#eslint-plugin-flowtype-rules-no-weak-types)
-        * [`object-type-delimiter`](#eslint-plugin-flowtype-rules-object-type-delimiter)
-        * [`require-compound-type-alias`](#eslint-plugin-flowtype-rules-require-compound-type-alias)
-        * [`require-exact-type`](#eslint-plugin-flowtype-rules-require-exact-type)
-        * [`require-indexer-name`](#eslint-plugin-flowtype-rules-require-indexer-name)
-        * [`require-inexact-type`](#eslint-plugin-flowtype-rules-require-inexact-type)
-        * [`require-parameter-type`](#eslint-plugin-flowtype-rules-require-parameter-type)
-        * [`require-readonly-react-props`](#eslint-plugin-flowtype-rules-require-readonly-react-props)
-        * [`require-return-type`](#eslint-plugin-flowtype-rules-require-return-type)
-        * [`require-types-at-top`](#eslint-plugin-flowtype-rules-require-types-at-top)
-        * [`require-valid-file-annotation`](#eslint-plugin-flowtype-rules-require-valid-file-annotation)
-        * [`require-variable-type`](#eslint-plugin-flowtype-rules-require-variable-type)
-        * [`semi`](#eslint-plugin-flowtype-rules-semi)
-        * [`sort-keys`](#eslint-plugin-flowtype-rules-sort-keys)
-        * [`space-after-type-colon`](#eslint-plugin-flowtype-rules-space-after-type-colon)
-        * [`space-before-generic-bracket`](#eslint-plugin-flowtype-rules-space-before-generic-bracket)
-        * [`space-before-type-colon`](#eslint-plugin-flowtype-rules-space-before-type-colon)
-        * [`spread-exact-type`](#eslint-plugin-flowtype-rules-spread-exact-type)
-        * [`type-id-match`](#eslint-plugin-flowtype-rules-type-id-match)
-        * [`type-import-style`](#eslint-plugin-flowtype-rules-type-import-style)
-        * [`union-intersection-spacing`](#eslint-plugin-flowtype-rules-union-intersection-spacing)
-        * [`use-flow-type`](#eslint-plugin-flowtype-rules-use-flow-type)
-        * [`valid-syntax`](#eslint-plugin-flowtype-rules-valid-syntax)
-
-
-<a name="eslint-plugin-flowtype-installation"></a>
-## Installation
-
-1. Install [ESLint](https://www.github.com/eslint/eslint).
-1. Install [`babel-eslint`](https://github.com/babel/babel-eslint) parser (ESLint parser [does not support type annotations](https://github.com/eslint/eslint/issues/2157)).
-1. Install [`eslint-plugin-flowtype`](https://github.com/gajus/eslint-plugin-flowtype) plugin.
-
-<!-- -->
-
-```sh
-npm install eslint --save-dev
-npm install babel-eslint --save-dev
-npm install eslint-plugin-flowtype --save-dev
-
-# Or all at once:
-npm install eslint babel-eslint eslint-plugin-flowtype --save-dev
-```
-
-<a name="eslint-plugin-flowtype-configuration"></a>
-## Configuration
-
-1. Set `parser` property to `babel-eslint`.
-1. Add `plugins` section and specify `eslint-plugin-flowtype` as a plugin.
-1. Enable rules.
-
-<!-- -->
-
-```json
-{
-  "parser": "babel-eslint",
-  "plugins": [
-    "flowtype"
-  ],
-  "rules": {
-    "flowtype/boolean-style": [
-      2,
-      "boolean"
-    ],
-    "flowtype/define-flow-type": 1,
-    "flowtype/delimiter-dangle": [
-      2,
-      "never"
-    ],
-    "flowtype/generic-spacing": [
-      2,
-      "never"
-    ],
-    "flowtype/no-mixed": 2,
-    "flowtype/no-primitive-constructor-types": 2,
-    "flowtype/no-types-missing-file-annotation": 2,
-    "flowtype/no-weak-types": 2,
-    "flowtype/object-type-delimiter": [
-      2,
-      "comma"
-    ],
-    "flowtype/require-parameter-type": 2,
-    "flowtype/require-readonly-react-props": 0,
-    "flowtype/require-return-type": [
-      2,
-      "always",
-      {
-        "annotateUndefined": "never"
-      }
-    ],
-    "flowtype/require-valid-file-annotation": 2,
-    "flowtype/semi": [
-      2,
-      "always"
-    ],
-    "flowtype/space-after-type-colon": [
-      2,
-      "always"
-    ],
-    "flowtype/space-before-generic-bracket": [
-      2,
-      "never"
-    ],
-    "flowtype/space-before-type-colon": [
-      2,
-      "never"
-    ],
-    "flowtype/type-id-match": [
-      2,
-      "^([A-Z][a-z0-9]+)+Type$"
-    ],
-    "flowtype/union-intersection-spacing": [
-      2,
-      "always"
-    ],
-    "flowtype/use-flow-type": 1,
-    "flowtype/valid-syntax": 1
-  },
-  "settings": {
-    "flowtype": {
-      "onlyFilesWithFlowAnnotation": false
-    }
-  }
-}
-```
-
-<a name="eslint-plugin-flowtype-configuration-shareable-configurations"></a>
-### Shareable configurations
-
-<a name="eslint-plugin-flowtype-configuration-shareable-configurations-recommended"></a>
-#### Recommended
-
-This plugin exports a [recommended configuration](./src/configs/recommended.json) that enforces Flow type good practices.
-
-To enable this configuration use the extends property in your `.eslintrc` config file:
-
-```json
-{
-  "extends": [
-    "plugin:flowtype/recommended"
-  ],
-  "plugins": [
-    "flowtype"
-  ]
-}
-```
-
-See [ESLint documentation](http://eslint.org/docs/user-guide/configuring#extending-configuration-files) for more information about extending configuration files.
-
-<a name="eslint-plugin-flowtype-configuration-community-maintained-configurations"></a>
-### Community maintained configurations
-
-The following are third-party submitted/ maintained configurations of `eslint-plugin-flowtype`:
-
-* https://github.com/wemake-services/eslint-config-flowtype-essential
-
-<a name="eslint-plugin-flowtype-settings"></a>
-## Settings
-
-<a name="eslint-plugin-flowtype-settings-onlyfileswithflowannotation"></a>
-### <code>onlyFilesWithFlowAnnotation</code>
-
-When `true`, only checks files with a [`@flow` annotation](http://flowtype.org/docs/about-flow.html#gradual) in the first comment.
-
-```js
-{
-  "settings": {
-    "flowtype": {
-      "onlyFilesWithFlowAnnotation": true
-    }
-  }
-}
-```
-
-<a name="eslint-plugin-flowtype-rules"></a>
-## Rules
-
-<!-- Rules are sorted alphabetically. -->
-
-<a name="eslint-plugin-flowtype-rules-array-style-complex-type"></a>
-### <code>array-style-complex-type</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces a particular annotation style of complex types.
-
-Type is considered complex in these cases:
-
-* [Maybe type](https://flow.org/en/docs/types/maybe/)
-* [Function type](https://flow.org/en/docs/types/functions/)
-* [Object type](https://flow.org/en/docs/types/objects/)
-* [Tuple type](https://flow.org/en/docs/types/tuples/)
-* [Union type](https://flow.org/en/docs/types/unions/)
-* [Intersection type](https://flow.org/en/docs/types/intersections/)
-
-This rule takes one argument.
-
-If it is `'verbose'` then a problem is raised when using `Type[]` instead of `Array<Type>`.
-
-If it is `'shorthand'` then a problem is raised when using `Array<Type>` instead of `Type[]`.
-
-The default value is `'verbose'`.
-
-The following patterns are considered problems:
-
-```js
-type X = (?string)[]
-// Message: Use "Array<?string>", not "(?string)[]"
-
-// Options: ["verbose"]
-type X = (?string)[]
-// Message: Use "Array<?string>", not "(?string)[]"
-
-// Options: ["shorthand"]
-type X = Array<?string>
-// Message: Use "(?string)[]", not "Array<?string>"
-
-// Options: ["shorthand"]
-type X = Array<{foo: string}>
-// Message: Use "{foo: string}[]", not "Array<{foo: string}>"
-
-type X = (string | number)[]
-// Message: Use "Array<string | number>", not "(string | number)[]"
-
-type X = (string & number)[]
-// Message: Use "Array<string & number>", not "(string & number)[]"
-
-type X = [string, number][]
-// Message: Use "Array<[string, number]>", not "[string, number][]"
-
-type X = {foo: string}[]
-// Message: Use "Array<{foo: string}>", not "{foo: string}[]"
-
-type X = (string => number)[]
-// Message: Use "Array<string => number>", not "(string => number)[]"
-
-type X = {
-    foo: string,
-    bar: number
-}[]
-// Message: Use "Array<{ foo: string, bar: number }>", not "{ foo: string, bar: number }[]"
-
-type X = {
-    foo: string,
-    bar: number,
-    quo: boolean,
-    hey: Date
-}[]
-// Message: Use "Array<Type>", not "Type[]"
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = Array<?string>
-
-// Options: ["verbose"]
-type X = Array<?string>
-
-// Options: ["shorthand"]
-type X = (?string)[]
-
-// Options: ["shorthand"]
-type X = Array<string>
-
-// Options: ["shorthand"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type X = Array<?string>
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-array-style-simple-type"></a>
-### <code>array-style-simple-type</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces a particular array type annotation style of simple types.
-
-Type is considered simple in these cases:
-
-* [Primitive types](https://flow.org/en/docs/types/primitives/)
-* [Literal types](https://flow.org/en/docs/types/literals/)
-* [Mixed type](https://flow.org/en/docs/types/mixed/)
-* [Any type](https://flow.org/en/docs/types/any/)
-* [Class type](https://flow.org/en/docs/types/classes/)
-* [Generic type](https://flow.org/en/docs/types/generics/)
-* Array type [shorthand notation](https://flow.org/en/docs/types/arrays/#toc-array-type-shorthand-syntax)
-
-This rule takes one argument.
-
-If it is `'verbose'` then a problem is raised when using `Type[]` instead of `Array<Type>`.
-
-If it is `'shorthand'` then a problem is raised when using `Array<Type>` instead of `Type[]`.
-
-The default value is `'verbose'`.
-
-The following patterns are considered problems:
-
-```js
-type X = string[]
-// Message: Use "Array<string>", not "string[]"
-
-// Options: ["verbose"]
-type X = string[]
-// Message: Use "Array<string>", not "string[]"
-
-// Options: ["shorthand"]
-type X = Array<string>
-// Message: Use "string[]", not "Array<string>"
-
-type X = Date[]
-// Message: Use "Array<Date>", not "Date[]"
-
-type X = Promise<string>[]
-// Message: Use "Array<Promise<string>>", not "Promise<string>[]"
-
-type X = $Keys<{foo: string}>[]
-// Message: Use "Array<$Keys<{foo: string}>>", not "$Keys<{foo: string}>[]"
-
-type X = any[]
-// Message: Use "Array<any>", not "any[]"
-
-type X = mixed[]
-// Message: Use "Array<mixed>", not "mixed[]"
-
-type X = void[]
-// Message: Use "Array<void>", not "void[]"
-
-type X = null[]
-// Message: Use "Array<null>", not "null[]"
-
-type X = string[][]
-// Message: Use "Array<string[]>", not "string[][]"
-// Message: Use "Array<string>", not "string[]"
-
-type X = Promise<{
-    foo: string,
-    bar: number
-}>[]
-// Message: Use "Array<Promise<{ foo: string, bar: number }>>", not "Promise<{ foo: string, bar: number }>[]"
-
-type X = Promise<{
-    foo: string,
-    bar: number,
-    quo: boolean
-}>[]
-// Message: Use "Array<Type>", not "Type[]"
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = Array<string>
-
-// Options: ["verbose"]
-type X = Array<string>
-
-// Options: ["shorthand"]
-type X = string[]
-
-type X = Array<Array<string>>
-
-// Options: ["verbose"]
-type X = (?string)[]
-
-// Options: ["verbose"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type X = string[]
-
-type X = Array
-
-type X = typeof Array
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-arrow-parens"></a>
-### <code>arrow-parens</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces the consistent use of parentheses in arrow functions.
-
-This rule has a string option and an object one.
-
-String options are:
-
-- `"always"` (default) requires parens around arguments in all cases.
-- `"as-needed"` enforces no braces where they can be omitted.
-
-Object properties for variants of the `"as-needed"` option:
-
-- `"requireForBlockBody": true` modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).
-
-The following patterns are considered problems:
-
-```js
-a => {}
-// Message: undefined
-
-a => a
-// Message: undefined
-
-a => {
-}
-// Message: undefined
-
-a.then(foo => {});
-// Message: undefined
-
-a.then(foo => a);
-// Message: undefined
-
-a(foo => { if (true) {}; });
-// Message: undefined
-
-a(async foo => { if (true) {}; });
-// Message: undefined
-
-// Options: ["as-needed"]
-(a) => a
-// Message: undefined
-
-// Options: ["as-needed"]
-(a,) => a
-// Message: undefined
-
-// Options: ["as-needed"]
-async (a) => a
-// Message: undefined
-
-// Options: ["as-needed"]
-async(a) => a
-// Message: undefined
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-a => {}
-// Message: undefined
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a) => a
-// Message: undefined
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-async a => {}
-// Message: undefined
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-async (a) => a
-// Message: undefined
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-async(a) => a
-// Message: undefined
-```
-
-The following patterns are not considered problems:
-
-```js
-() => {}
-
-(a) => {}
-
-(a) => a
-
-(a) => {
-}
-
-a.then((foo) => {});
-
-a.then((foo) => { if (true) {}; });
-
-a.then(async (foo) => { if (true) {}; });
-
-// Options: ["always"]
-() => {}
-
-// Options: ["always"]
-(a) => {}
-
-// Options: ["always"]
-(a) => a
-
-// Options: ["always"]
-(a) => {
-}
-
-// Options: ["always"]
-a.then((foo) => {});
-
-// Options: ["always"]
-a.then((foo) => { if (true) {}; });
-
-// Options: ["always"]
-a.then(async (foo) => { if (true) {}; });
-
-// Options: ["as-needed"]
-() => {}
-
-// Options: ["as-needed"]
-a => {}
-
-// Options: ["as-needed"]
-a => a
-
-// Options: ["as-needed"]
-([a, b]) => {}
-
-// Options: ["as-needed"]
-({ a, b }) => {}
-
-// Options: ["as-needed"]
-(a = 10) => {}
-
-// Options: ["as-needed"]
-(...a) => a[0]
-
-// Options: ["as-needed"]
-(a, b) => {}
-
-// Options: ["as-needed"]
-async ([a, b]) => {}
-
-// Options: ["as-needed"]
-async (a, b) => {}
-
-// Options: ["as-needed"]
-(a: T) => a
-
-// Options: ["as-needed"]
-(a): T => a
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-() => {}
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-a => a
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-([a, b]) => {}
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-([a, b]) => a
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-({ a, b }) => {}
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-({ a, b }) => a + b
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a = 10) => {}
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(...a) => a[0]
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a, b) => {}
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-a => ({})
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-async a => ({})
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-async a => a
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a: T) => a
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a): T => a
-
-// Options: ["always",{"requireForBlockBody":true}]
-<T>(a: T) => a
-
-// Options: ["as-needed",{"requireForBlockBody":false}]
-<T>(a: T) => { return a; }
-
-// Options: ["always",{"requireForBlockBody":true}]
-<T>(a: T) => { return a; }
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-<T>(a: T) => { return a; }
-
-// Options: ["as-needed",{"requireForBlockBody":true}]
-(a): %checks => typeof a === "number"
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-boolean-style"></a>
-### <code>boolean-style</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces a particular style for boolean type annotations. This rule takes one argument.
-
-If it is `'boolean'` then a problem is raised when using `bool` instead of `boolean`.
-
-If it is `'bool'` then a problem is raised when using `boolean` instead of `bool`.
-
-The default value is `'boolean'`.
-
-The following patterns are considered problems:
-
-```js
-type X = bool
-// Message: Use "boolean", not "bool"
-
-// Options: ["boolean"]
-type X = bool
-// Message: Use "boolean", not "bool"
-
-// Options: ["bool"]
-type X = boolean
-// Message: Use "bool", not "boolean"
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = boolean
-
-// Options: ["boolean"]
-type X = boolean
-
-// Options: ["bool"]
-type X = bool
-
-// Options: ["boolean"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type X = bool
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-define-flow-type"></a>
-### <code>define-flow-type</code>
-
-Marks Flow type identifiers as defined.
-
-Used to suppress [`no-undef`](http://eslint.org/docs/rules/no-undef) reporting of type identifiers.
-
-The following patterns are not considered problems:
-
-```js
-var a: AType
-// Additional rules: {"no-undef":2}
-
-var a: AType; var b: AType
-// Additional rules: {"no-undef":2}
-
-var a; (a: AType)
-// Additional rules: {"no-undef":2}
-
-var a: AType<BType>
-// Additional rules: {"no-undef":2}
-
-type A = AType
-// Additional rules: {"no-undef":2}
-
-declare type A = number
-// Additional rules: {"no-undef":2}
-
-opaque type A = AType
-// Additional rules: {"no-undef":2}
-
-function f(a: AType) {}
-// Additional rules: {"no-undef":2}
-
-function f(a: AType.a) {}
-// Additional rules: {"no-undef":2}
-
-function f(a: AType.a.b) {}
-// Additional rules: {"no-undef":2}
-
-function f(a): AType {}; var a: AType
-// Additional rules: {"no-undef":2}
-
-function f(a): AType {}
-// Additional rules: {"no-undef":2}
-
-class C { a: AType }
-// Additional rules: {"no-undef":2}
-
-class C { a: AType.a }
-// Additional rules: {"no-undef":2}
-
-class C { a: AType.a.b }
-// Additional rules: {"no-undef":2}
-
-class C implements AType {}
-// Additional rules: {"no-undef":2}
-
-declare interface A {}
-// Additional rules: {"no-undef":2}
-
-({ a: ({b() {}}: AType) })
-// Additional rules: {"no-undef":2}
-
-type X = {Y<AType>(): BType}
-// Additional rules: {"no-undef":2}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-
-/**
-* Copyright 2019 no corp
-* @flow
-*/
-type Foo = $ReadOnly<{}>
-// Additional rules: {"no-undef":2}
-
-var a: AType
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-var a: AType; var b: AType
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-var a; (a: AType)
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-var a: AType<BType>
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-type A = AType
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-declare type A = number
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-opaque type A = AType
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-function f(a: AType) {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-function f(a: AType.a) {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-function f(a: AType.a.b) {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-function f(a): AType {}; var a: AType
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-function f(a): AType {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-class C { a: AType }
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-class C { a: AType.a }
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-class C { a: AType.a.b }
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-class C implements AType {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-declare interface A {}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-({ a: ({b() {}}: AType) })
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-type X = {Y<AType>(): BType}
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-
-/**
-* Copyright 2019 no corp
-* @flow
-*/
-type Foo = $ReadOnly<{}>
-// Additional rules: {"no-undef":2,"no-use-before-define":[2,"nofunc"]}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-delimiter-dangle"></a>
-### <code>delimiter-dangle</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent use of trailing commas in Object and Tuple annotations.
-
-This rule takes three arguments where the possible values are the same as ESLint's default `comma-dangle` rule:
-
-1. The first argument is for Object and Tuple annotations. The default value is `'never'`.
-2. The second argument is used for Interface annotations. This defaults to the value of the first argument.
-3. The third argument is used for inexact object notation (trailing `...`). The default value is `'never'`.
-
-If it is `'never'` then a problem is raised when there is a trailing comma.
-
-If it is `'always'` then a problem is raised when there is no trailing comma.
-
-If it is `'always-multiline'` then a problem is raised when there is no trailing comma on a multi-line definition, or there _is_ a trailing comma on a single-line definition.
-
-If it is `'only-multiline'` then a problem is raised when there is a trailing comma on a single-line definition. It allows, but does not enforce, trailing commas on multi-line definitions.
-
-The following patterns are considered problems:
-
-```js
-type X = { foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = { foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = { foo: string; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = {
-foo: string,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["always"]
-type X = { foo: string }
-// Message: Missing trailing delimiter
-
-// Options: ["always"]
-type X = {
-foo: string
-}
-// Message: Missing trailing delimiter
-
-// Options: ["always-multiline"]
-type X = { foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always-multiline"]
-type X = {
-foo: string
-}
-// Message: Missing trailing delimiter
-
-// Options: ["only-multiline"]
-type X = { foo: string; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always","never"]
-interface X { foo: string; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = { [key: string]: number, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always"]
-type X = { [key: string]: number }
-// Message: Missing trailing delimiter
-
-// Options: ["always-multiline"]
-type X = { [key: string]: number, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always-multiline"]
-type X = {
-[key: string]: number
-}
-// Message: Missing trailing delimiter
-
-// Options: ["only-multiline"]
-type X = { [key: string]: number; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = { [key: string]: number, foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = {
-[key: string]: number,
-foo: string,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = {
-[key: string]: number,
-aReallyLongPropertyNameHere: string,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["always"]
-type X = { [key: string]: number, foo: string }
-// Message: Missing trailing delimiter
-
-// Options: ["always"]
-type X = {
-[key: string]: number;
-foo: string
-}
-// Message: Missing trailing delimiter
-
-// Options: ["always-multiline"]
-type X = { [key: string]: number, foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always-multiline"]
-type X = {
-[key: string]: number,
-foo: string
-}
-// Message: Missing trailing delimiter
-
-// Options: ["only-multiline"]
-type X = { [key: string]: number, foo: string, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = { foo: string, [key: string]: number, }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = {
-foo: string,
-[key: string]: number,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = {
-aReallyLongPropertyNameHere: string,
-[key: string]: number,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["always"]
-type X = { foo: string, [key: string]: number }
-// Message: Missing trailing delimiter
-
-// Options: ["always"]
-type X = { foo: string; [key: string]: number }
-// Message: Missing trailing delimiter
-
-// Options: ["always-multiline"]
-type X = { foo: string, [key: string]: number; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["always-multiline"]
-type X = {
-foo: string,
-[key: string]: number
-}
-// Message: Missing trailing delimiter
-
-// Options: ["only-multiline"]
-type X = { foo: string, [key: string]: number; }
-// Message: Unexpected trailing delimiter
-
-type X = { ..., }
-// Message: Unexpected trailing delimiter
-
-type X = { ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = { ... }
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { ...; }
-// Message: Unexpected trailing delimiter
-
-type X = {
-...,
-}
-// Message: Unexpected trailing delimiter
-
-type X = {
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-...,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = {
-...
-}
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = {
-...
-}
-// Message: Missing trailing delimiter
-
-type X = { foo: string, ..., }
-// Message: Unexpected trailing delimiter
-
-type X = { foo: string; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { foo: string, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { foo: string; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = { foo: string, ... }
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { foo: string, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { foo: string; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { foo: string, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { foo: string; ...; }
-// Message: Unexpected trailing delimiter
-
-type X = {
-foo: string,
-...,
-}
-// Message: Unexpected trailing delimiter
-
-type X = {
-foo: string;
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-foo: string,
-...,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-foo: string;
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = {
-foo: string,
-...
-}
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = {
-foo: string,
-...
-}
-// Message: Missing trailing delimiter
-
-type X = { [key: string]: number, ..., }
-// Message: Unexpected trailing delimiter
-
-type X = { [key: string]: number; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { [key: string]: number, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = { [key: string]: number; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = { [key: string]: number, ... }
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { [key: string]: number, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = { [key: string]: number; ...; }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { [key: string]: number, ..., }
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","only-multiline"]
-type X = { [key: string]: number; ...; }
-// Message: Unexpected trailing delimiter
-
-type X = {
-[key: string]: number,
-...,
-}
-// Message: Unexpected trailing delimiter
-
-type X = {
-[key: string]: number;
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-[key: string]: number,
-...,
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","never"]
-type X = {
-[key: string]: number;
-...;
-}
-// Message: Unexpected trailing delimiter
-
-// Options: ["never","never","always"]
-type X = {
-[key: string]: number,
-...
-}
-// Message: Missing trailing delimiter
-
-// Options: ["never","never","always-multiline"]
-type X = {
-[key: string]: number,
-...
-}
-// Message: Missing trailing delimiter
-
-type X = [string, number,]
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = [string, number,]
-// Message: Unexpected trailing delimiter
-
-// Options: ["never"]
-type X = [
-string,
-number,
-]
-// Message: Unexpected trailing delimiter
-
-// Options: ["always"]
-type X = [string, number]
-// Message: Missing trailing delimiter
-
-// Options: ["always"]
-type X = [
-string,
-number
-]
-// Message: Missing trailing delimiter
-
-// Options: ["always-multiline"]
-type X = [string, number,]
-// Message: Unexpected trailing delimiter
-
-// Options: ["always-multiline"]
-type X = [
-foo, string
-]
-// Message: Missing trailing delimiter
-
-// Options: ["only-multiline"]
-type X = [ number, string, ]
-// Message: Unexpected trailing delimiter
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = { foo: string }
-
-// Options: ["never"]
-type X = { foo: string }
-
-// Options: ["always"]
-type X = { foo: string, }
-
-// Options: ["always"]
-type X = { foo: string; }
-
-// Options: ["never"]
-type X = {
-foo: string
-}
-
-// Options: ["always"]
-type X = {
-foo: string,
-}
-
-// Options: ["always-multiline"]
-type X = { foo: string }
-
-// Options: ["always-multiline"]
-type X = {
-foo: string,
-}
-
-// Options: ["always-multiline"]
-type X = {
-foo: string;
-}
-
-// Options: ["only-multiline"]
-type X = { foo: string }
-
-// Options: ["only-multiline"]
-type X = {
-foo: string
-}
-
-// Options: ["only-multiline"]
-type X = {
-foo: string,
-}
-
-// Options: ["only-multiline"]
-type X = {
-foo: string;
-}
-
-// Options: ["never","always"]
-interface X { foo: string; }
-
-// Options: ["never"]
-type X = {}
-
-// Options: ["always"]
-type X = {}
-
-// Options: ["always-multiline"]
-type X = {}
-
-// Options: ["only-multiline"]
-type X = {}
-
-// Options: ["never"]
-type X = { [key: string]: number }
-
-// Options: ["always"]
-type X = { [key: string]: number, }
-
-// Options: ["always"]
-type X = { [key: string]: number; }
-
-// Options: ["always-multiline"]
-type X = { [key: string]: number }
-
-// Options: ["always-multiline"]
-type X = {
-[key: string]: number,
-}
-
-// Options: ["only-multiline"]
-type X = {
-[key: string]: number,
-}
-
-// Options: ["only-multiline"]
-type X = {
-[key: string]: number
-}
-
-// Options: ["only-multiline"]
-type X = { [key: string]: number }
-
-// Options: ["never"]
-type X = { [key: string]: number, foo: string }
-
-// Options: ["always"]
-type X = { [key: string]: number, foo: string, }
-
-// Options: ["always"]
-type X = { [key: string]: number; foo: string; }
-
-// Options: ["always-multiline"]
-type X = { [key: string]: number, foo: string }
-
-// Options: ["always-multiline"]
-type X = {
-[key: string]: number,
-foo: string,
-}
-
-// Options: ["only-multiline"]
-type X = {
-[key: string]: number,
-foo: string,
-}
-
-// Options: ["only-multiline"]
-type X = {
-[key: string]: number;
-foo: string
-}
-
-// Options: ["only-multiline"]
-type X = { [key: string]: number, foo: string }
-
-// Options: ["never"]
-type X = { foo: string, [key: string]: number }
-
-// Options: ["always"]
-type X = { foo: string, [key: string]: number, }
-
-// Options: ["always"]
-type X = { foo: string; [key: string]: number; }
-
-// Options: ["always-multiline"]
-type X = { foo: string, [key: string]: number }
-
-// Options: ["always-multiline"]
-type X = {
-foo: string,
-[key: string]: number,
-}
-
-// Options: ["only-multiline"]
-type X = {
-foo: string,
-[key: string]: number,
-}
-
-// Options: ["only-multiline"]
-type X = {
-foo: string;
-[key: string]: number
-}
-
-// Options: ["only-multiline"]
-type X = { foo: string, [key: string]: number }
-
-type X = { ... }
-
-// Options: ["never","never","never"]
-type X = { ... }
-
-// Options: ["never","never","always"]
-type X = { ..., }
-
-// Options: ["never","never","always-multiline"]
-type X = { ... }
-
-// Options: ["never","never","only-multiline"]
-type X = { ... }
-
-type X = {
-...
-}
-
-// Options: ["never","never","never"]
-type X = {
-...
-}
-
-// Options: ["never","never","always"]
-type X = {
-...,
- }
-
-// Options: ["never","never","always"]
-type X = {
-...;
- }
-
-// Options: ["never","never","always-multiline"]
-type X = {
-...,
-}
-
-// Options: ["never","never","always-multiline"]
-type X = {
-...;
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-...
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-...,
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-...;
-}
-
-type X = { foo: string, ... }
-
-// Options: ["never","never","never"]
-type X = { foo: string, ... }
-
-// Options: ["never","never","always"]
-type X = { foo: string, ..., }
-
-// Options: ["never","never","always"]
-type X = { foo: string; ...; }
-
-// Options: ["never","never","always-multiline"]
-type X = { foo: string, ... }
-
-// Options: ["never","never","only-multiline"]
-type X = { foo: string, ... }
-
-type X = {
-foo: string,
-...
-}
-
-// Options: ["never","never","never"]
-type X = {
-foo: string,
-...
-}
-
-// Options: ["never","never","always"]
-type X = {
-foo: string,
-...,
-}
-
-// Options: ["never","never","always"]
-type X = {
-foo: string;
-...;
-}
-
-// Options: ["never","never","always-multiline"]
-type X = {
-foo: string,
-...,
-}
-
-// Options: ["never","never","always-multiline"]
-type X = {
-foo: string;
-...;
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-foo: string,
-...
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-foo: string,
-...,
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-foo: string,
-...;
-}
-
-// Options: ["never","never","never"]
-type X = { [key: string]: number, ... }
-
-// Options: ["never","never","always"]
-type X = { [key: string]: number, ..., }
-
-// Options: ["never","never","always"]
-type X = { [key: string]: number; ...; }
-
-// Options: ["never","never","always-multiline"]
-type X = { [key: string]: number, ... }
-
-// Options: ["never","never","only-multiline"]
-type X = { [key: string]: number, ... }
-
-// Options: ["never","never","never"]
-type X = {
-[key: string]: number,
-...
-}
-
-// Options: ["never","never","always"]
-type X = {
-[key: string]: number,
-...,
-}
-
-// Options: ["never","never","always"]
-type X = {
-[key: string]: number;
-...;
-}
-
-// Options: ["never","never","always-multiline"]
-type X = {
-[key: string]: number,
-...,
-}
-
-// Options: ["never","never","always-multiline"]
-type X = {
-[key: string]: number;
-...;
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-[key: string]: number,
-...
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-[key: string]: number,
-...,
-}
-
-// Options: ["never","never","only-multiline"]
-type X = {
-[key: string]: number;
-...;
-}
-
-type X = [string, number]
-
-// Options: ["never"]
-type X = [string, number]
-
-// Options: ["never"]
-type X = [
-string,
-number
-]
-
-// Options: ["always"]
-type X = [string, number,]
-
-// Options: ["always"]
-type X = [
-string,
-number,
-]
-
-// Options: ["always-multiline"]
-type X = [ foo, string ]
-
-// Options: ["always-multiline"]
-type X = [
-foo, string,
-]
-
-// Options: ["only-multiline"]
-type X = [ number, string ]
-
-// Options: ["only-multiline"]
-type X = [
-number,
-string
-]
-
-// Options: ["only-multiline"]
-type X = [
-number,
-string,
-]
-
-// Options: ["never"]
-type X = []
-
-// Options: ["always"]
-type X = []
-
-// Options: ["always-multiline"]
-type X = []
-
-// Options: ["only-multiline"]
-type X = []
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-generic-spacing"></a>
-### <code>generic-spacing</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent spacing within generic type annotation parameters.
-
-This rule takes one argument. If it is `'never'` then a problem is raised when there is a space surrounding the generic type parameters. If it is `'always'` then a problem is raised when there is no space surrounding the generic type parameters.
-
-The default value is `'never'`.
-
-The following patterns are considered problems:
-
-```js
-type X = Promise< string>
-// Message: There must be no space at start of "Promise" generic type annotation
-
-// Options: ["never"]
-type X = Promise<  string>
-// Message: There must be no space at start of "Promise" generic type annotation
-
-type X = FooBar<string >
-// Message: There must be no space at end of "FooBar" generic type annotation
-
-type X = Promise< string >
-// Message: There must be no space at start of "Promise" generic type annotation
-// Message: There must be no space at end of "Promise" generic type annotation
-
-type X = Promise< (foo), bar, (((baz))) >
-// Message: There must be no space at start of "Promise" generic type annotation
-// Message: There must be no space at end of "Promise" generic type annotation
-
-// Options: ["always"]
-type X = Promise<string >
-// Message: There must be a space at start of "Promise" generic type annotation
-
-// Options: ["always"]
-type X = FooBar< string>
-// Message: There must be a space at end of "FooBar" generic type annotation
-
-// Options: ["always"]
-type X = Promise<string>
-// Message: There must be a space at start of "Promise" generic type annotation
-// Message: There must be a space at end of "Promise" generic type annotation
-
-// Options: ["always"]
-type X = Promise<(foo), bar, (((baz)))>
-// Message: There must be a space at start of "Promise" generic type annotation
-// Message: There must be a space at end of "Promise" generic type annotation
-
-// Options: ["always"]
-type X = FooBar<  string >
-// Message: There must be one space at start of "FooBar" generic type annotation
-
-// Options: ["always"]
-type X = FooBar< string  >
-// Message: There must be one space at end of "FooBar" generic type annotation
-
-// Options: ["always"]
-type X = Promise<  (foo), bar, (((baz)))  >
-// Message: There must be one space at start of "Promise" generic type annotation
-// Message: There must be one space at end of "Promise" generic type annotation
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = Promise<string>
-
-type X = Promise<(string)>
-
-type X = Promise<(foo), bar, (((baz)))>
-
-type X = Promise<
-  (foo),
-  bar,
-  (((baz))),
->
-
-// Options: ["always"]
-type X = Promise< string >
-
-// Options: ["always"]
-type X = Promise< (string) >
-
-// Options: ["always"]
-type X = Promise< (foo), bar, (((baz))) >
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-newline-after-flow-annotation"></a>
-### <code>newline-after-flow-annotation</code>
-
-This rule requires an empty line after the Flow annotation.
-
-<a name="eslint-plugin-flowtype-rules-newline-after-flow-annotation-options"></a>
-#### Options
-
-The rule has a string option:
-
-* `"always"` (default): Enforces that `@flow` annotations be followed by an empty line, separated by newline (LF)
-* `"always-windows"`: Identical to "always", but will use a CRLF when autofixing
-* `"never"`: Enforces that `@flow` annotations are not followed by empty lines
-
-```js
-{
-  "rules": {
-    "flowtype/newline-after-flow-annotation": [
-      2,
-      "always"
-    ]
-  }
-}
-```
-
-
-The following patterns are considered problems:
-
-```js
-// @flow
-import Foo from './foo';
-// Message: Expected newline after flow annotation
-
-// Options: ["always"]
-// @flow
-import Foo from './foo';
-// Message: Expected newline after flow annotation
-
-// Options: ["always-windows"]
-// @flow

-import Foo from './foo';
-// Message: Expected newline after flow annotation
-
-// Options: ["never"]
-// @flow
-
-
-// Message: Expected no newline after flow annotation
-```
-
-The following patterns are not considered problems:
-
-```js
-// Options: ["always"]
-// @flow
-
-import Foo from './foo';
-
-// Options: ["always-windows"]
-// @flow

-

-import Foo from './foo';
-
-// Options: ["never"]
-// @flow
-import Foo from './foo';
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-dupe-keys"></a>
-### <code>no-dupe-keys</code>
-
-Checks for duplicate properties in Object annotations.
-
-This rule mirrors ESLint's [no-dupe-keys](http://eslint.org/docs/rules/no-dupe-keys) rule.
-
-```js
-{
-    "rules": {
-        "flowtype/no-dupe-keys": 2
-    }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type f = { a: number, b: string, a: number }
-// Message: Duplicate property.
-
-type f = { a: number, b: string, a: string }
-// Message: Duplicate property.
-
-type f = { get(key: "a"): string, get(key: "a"): string }
-// Message: Duplicate property.
-
-type f = { get(key: 1): string, get(key: 1): string }
-// Message: Duplicate property.
-
-type f = { get(key: 1.1): string, get(key: 1.1): string }
-// Message: Duplicate property.
-
-type f = { get(key: true): string, get(key: true): string }
-// Message: Duplicate property.
-
-type f = { get(key: {a: 1}): string, get(key: {a: 1}):string }
-// Message: Duplicate property.
-
-var a = "a"; type f = { get(key: a): string, get(key: a): string }
-// Message: Duplicate property.
-
-var b = 1; type f = { get(key: b): string, get(key: b): string }
-// Message: Duplicate property.
-
-var c = true; type f = { get(key: c): string, get(key: c): string }
-// Message: Duplicate property.
-
-var d = {}; type f = { get(key: d): string, get(key: d): string }
-// Message: Duplicate property.
-
-var e = []; type f = { get(key: e): string, get(key: e): string }
-// Message: Duplicate property.
-
-var e = [1, "a"]; type f = { get(key: e): string, get(key: e): string }
-// Message: Duplicate property.
-
-function fn() {}; type f = { get(key: fn): string, get(key: fn): string }
-// Message: Duplicate property.
-```
-
-The following patterns are not considered problems:
-
-```js
-type FooType = { a: number, b: string, c: number }
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type FooType = { a: number, b: string, a: number }
-
-type f = { get(key: "a"): string, get(key: "b"): string }
-
-type f = { get(key: 1): string, get(key: 2): string }
-
-type f = { get(key: 1.1): string, get(key: 1.2): string }
-
-type f = { get(key: true): string, get(key: false): string }
-
-type f = { get(key: ["a", 1]): string, get(key: ["a", 2]): string }
-
-type f = { get(key: ["a", ["b", 1]]): string, get(key: ["a", ["b", 2]]): string }
-
-type f = { a: number, b: string, c: number }
-
-type f = { get(key: "a"): string, get(key: "b"): string }
-
-type f = { get(key: "a"): string, get(key: "a", key2: "b"): string }
-
-type f = { get(key: "a"): string, get(key: 1): string }
-
-type f = { get(key: { a: 1 }): string, get(key: { a: 2 }): string}
-
-var a = {}; var b = {}; type f = { get(key: a): string, get(key: b): string }
-
-var a = 1; var b = 1; type f = { get(key: a): string, get(key: b): string }
-
-type a = { b: <C>(config: { ...C, key: string}) => C }
-
-export interface Foo { get foo(): boolean; get bar(): string; }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-existential-type"></a>
-### <code>no-existential-type</code>
-
-Disallows use of the existential type (*). [See more](https://flow.org/en/docs/types/utilities/#toc-existential-type)
-
-```js
-{
-  "rules": {
-    "flowtype/no-existential-type": 2
-  }
-}
-```
-
-
-The following patterns are considered problems:
-
-```js
-type T = *;
-// Message: Unexpected use of existential type (*).
-
-type T = U<*, *>;
-// Message: Unexpected use of existential type (*).
-// Message: Unexpected use of existential type (*).
-
-const f: (*) => null = () => null;
-// Message: Unexpected use of existential type (*).
-```
-
-The following patterns are not considered problems:
-
-```js
-type T = string | null
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-flow-fix-me-comments"></a>
-### <code>no-flow-fix-me-comments</code>
-
-Disallows `$FlowFixMe` comment suppressions.
-
-This is especially useful as a warning to ensure instances of `$FlowFixMe` in your codebase get fixed over time.
-
-<a name="eslint-plugin-flowtype-rules-no-flow-fix-me-comments-options-1"></a>
-#### Options
-
-This rule takes an optional RegExp that comments a text RegExp that makes the supression valid.
-
-```js
-{
-    "rules": {
-        "flowtype/no-flow-fix-me-comments": [
-            1,
-            "TODO\s+[0-9]+"
-        ]
-    }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-// $FlowFixMe I am doing something evil here
-const text = 'HELLO';
-// Message: $FlowFixMe is treated as `any` and should be fixed.
-
-// Options: ["TODO [0-9]+"]
-// $FlowFixMe I am doing something evil here
-const text = 'HELLO';
-// Message: $FlowFixMe is treated as `any` and should be fixed. Fix it or match `/TODO [0-9]+/`.
-
-// Options: ["TODO [0-9]+"]
-// $FlowFixMe TODO abc 47 I am doing something evil here
-const text = 'HELLO';
-// Message: $FlowFixMe is treated as `any` and should be fixed. Fix it or match `/TODO [0-9]+/`.
-
-// $$FlowFixMeProps I am doing something evil here
-const text = 'HELLO';
-// Message: $FlowFixMe is treated as `any` and should be fixed.
-
-// Options: ["TODO [0-9]+"]
-// $FlowFixMeProps I am doing something evil here
-const text = 'HELLO';
-// Message: $FlowFixMe is treated as `any` and should be fixed. Fix it or match `/TODO [0-9]+/`.
-```
-
-The following patterns are not considered problems:
-
-```js
-const text = 'HELLO';
-
-// Options: ["TODO [0-9]+"]
-// $FlowFixMe TODO 48
-const text = 'HELLO';
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-mixed"></a>
-### <code>no-mixed</code>
-
-Warns against "mixed" type annotations.
-These types are not strict enough and could often be made more specific.
-
-The following patterns are considered problems:
-
-The following patterns are considered problems:
-
-```js
-function foo(thing): mixed {}
-// Message: Unexpected use of mixed type
-
-function foo(thing): Promise<mixed> {}
-// Message: Unexpected use of mixed type
-
-function foo(thing): Promise<Promise<mixed>> {}
-// Message: Unexpected use of mixed type
-```
-
-The following patterns are not considered problems:
-
-```js
-function foo(thing): string {}
-
-function foo(thing): Promise<string> {}
-
-function foo(thing): Promise<Promise<string>> {}
-
-(foo?: string) => {}
-
-(foo: ?string) => {}
-
-(foo: { a: string }) => {}
-
-(foo: { a: ?string }) => {}
-
-(foo: string[]) => {}
-
-type Foo = string
-
-type Foo = { a: string }
-
-type Foo = { (a: string): string }
-
-function foo(thing: string) {}
-
-var foo: string
-
-class Foo { props: string }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-mutable-array"></a>
-### <code>no-mutable-array</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Requires use of [`$ReadOnlyArray`](https://github.com/facebook/flow/blob/v0.46.0/lib/core.js#L185) instead of just `Array` or array [shorthand notation](https://flow.org/en/docs/types/arrays/#toc-array-type-shorthand-syntax). `$ReadOnlyArray` is immutable array collection type and the superclass of Array and tuple types in Flow. Use of `$ReadOnlyArray` instead of `Array` can solve some "problems" in typing with Flow (e.g., [1](https://github.com/facebook/flow/issues/3425), [2](https://github.com/facebook/flow/issues/4251)).
-
-General reasons for using immutable data structures:
-
-* They are simpler to construct, test, and use
-* They help to avoid temporal coupling
-* Their usage is side-effect free (no defensive copies)
-* Identity mutability problem is avoided
-* They always have failure atomicity
-* They are much easier to cache
-
-Note that initialization of a variable with an empty array is considered valid (e.g., `const values: Array<string> = [];`). This behavior resembles the behavior of Flow's [unsealed objects](https://flow.org/en/docs/types/objects/#toc-unsealed-objects), as it is assumed that empty array is intended to be mutated.
-
-The following patterns are considered problems:
-
-```js
-type X = Array<string>
-// Message: Use "$ReadOnlyArray" instead of "Array"
-
-type X = string[]
-// Message: Use "$ReadOnlyArray" instead of array shorthand notation
-
-const values: Array<Array<string>> = [];
-// Message: Use "$ReadOnlyArray" instead of "Array"
-
-let values: Array<Array<string>>;
-// Message: Use "$ReadOnlyArray" instead of "Array"
-// Message: Use "$ReadOnlyArray" instead of "Array"
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = $ReadOnlyArray<string>
-
-const values: Array<$ReadOnlyArray<string>> = [];
-
-const values: $ReadOnlyArray<string>[] = [];
-
-const values: Array<$ReadOnlyArray<string>> = new Array();
-
-const values: Array<$ReadOnlyArray<string>> = Array();
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-primitive-constructor-types"></a>
-### <code>no-primitive-constructor-types</code>
-
-Disallows use of primitive constructors as types, such as `Boolean`, `Number` and `String`. [See more](https://flowtype.org/docs/builtins.html).
-
-```js
-{
-    "rules": {
-        "flowtype/no-primitive-constructor-types": 2
-    }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type x = Number
-// Message: Unexpected use of Number constructor type.
-
-type x = String
-// Message: Unexpected use of String constructor type.
-
-type x = Boolean
-// Message: Unexpected use of Boolean constructor type.
-
-type x = { a: Number }
-// Message: Unexpected use of Number constructor type.
-
-type x = { a: String }
-// Message: Unexpected use of String constructor type.
-
-type x = { a: Boolean }
-// Message: Unexpected use of Boolean constructor type.
-
-(x: Number) => {}
-// Message: Unexpected use of Number constructor type.
-
-(x: String) => {}
-// Message: Unexpected use of String constructor type.
-
-(x: Boolean) => {}
-// Message: Unexpected use of Boolean constructor type.
-```
-
-The following patterns are not considered problems:
-
-```js
-type x = number
-
-type x = string
-
-type x = boolean
-
-type x = { a: number }
-
-type x = { a: string }
-
-type x = { a: boolean }
-
-(x: number) => {}
-
-(x: string) => {}
-
-(x: boolean) => {}
-
-type x = MyNumber
-
-type x = MyString
-
-type x = MyBoolean
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-types-missing-file-annotation"></a>
-### <code>no-types-missing-file-annotation</code>
-
-Disallows Flow type imports, aliases, and annotations in files missing a valid Flow file declaration (or a @noflow annotation).
-
-```js
-{
-    "rules": {
-        "flowtype/no-types-missing-file-annotation": 2
-    }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-const x: number = 42;
-// Message: Type annotations require valid Flow declaration.
-
-type FooType = number;
-// Message: Type aliases require valid Flow declaration.
-
-import type A from "a"
-// Message: Type imports require valid Flow declaration.
-
-import type {A} from "a"
-// Message: Type imports require valid Flow declaration.
-
-import {type A} from "a"
-// Message: Type imports require valid Flow declaration.
-
-export type {A} from "a"
-// Message: Type exports require valid Flow declaration.
-
-function t<T>(): T{}
-// Message: Type annotations require valid Flow declaration.
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-const x: number = 42;
-// Message: Type annotations require valid Flow declaration.
-```
-
-The following patterns are not considered problems:
-
-```js
-// @flow
-const x: number = 42;
-
-/* @flow weak */
-type FooType = number;
-
-/* @noflow */
-type FooType = number;
-
-/* @noflow */
-import type A from "a"
-
-/* @noflow */
-import {type A} from "a"
-
-/* @noflow */
-export type {A} from "a"
-
-// an unrelated comment
-// @flow
-export type {A} from "a"
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-unused-expressions"></a>
-### <code>no-unused-expressions</code>
-
-An extension of [ESLint's `no-unused-expressions`](https://eslint.org/docs/rules/no-unused-expressions).
-This rule ignores type cast expressions, but otherwise behaves the same as ESLint's
-`no-unused-expressions`.
-
-Bare type casts are useful, for example to assert the exhaustiveness of a `switch`:
-
-```js
-type Action
-  = { type: 'FOO', doFoo: (_: number) => void }
-  | { type: 'BAR', doBar: (_: string) => void };
-
-type State = { foo: number, bar: string };
-
-function runFooBar(action: Action, state: State): void {
-  switch (action.type) {
-    case 'FOO':
-      doFoo(state.foo);
-      break;
-    case 'BAR':
-      doBar(state.bar);
-      break;
-    default:
-      (action: empty);  // type error when `Action` is extended with new types
-      console.error(`Impossible action: ${action.toString()}`);
-  }
-}
-```
-
-This rule takes the same arguments as ESLint's `no-unused-expressions`. See
-[that rule's documentation](https://eslint.org/docs/rules/no-unused-expressions) for details.
-
-The following patterns are considered problems:
-
-```js
-foo + 1
-// Message: Expected an assignment or function call and instead saw an expression.
-```
-
-The following patterns are not considered problems:
-
-```js
-(foo: number)
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-no-weak-types"></a>
-### <code>no-weak-types</code>
-
-Warns against weak type annotations *any*, *Object* and *Function*.
-These types can cause flow to silently skip over portions of your code,
-which would have otherwise caused type errors.
-
-This rule optionally takes one argument, an object to configure which type warnings to enable. By default, all of the
-warnings are enabled. e.g. to disable the `any` warning (allowing it to exist in your code), while continuing to warn
-about `Object` and `Function`:
-
-```js
-{
-    "rules": {
-        "flowtype/no-weak-types": [2, {
-            "any": false,
-            "Object": true,
-            "Function": true
-        }]
-    }
-}
-
-// or, the following is equivalent as default is true:
-
-{
-    "rules": {
-        "flowtype/no-weak-types": [2, {
-            "any": false
-        }]
-    }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-function foo(thing): any {}
-// Message: Unexpected use of weak type "any"
-
-function foo(thing): Promise<any> {}
-// Message: Unexpected use of weak type "any"
-
-function foo(thing): Promise<Promise<any>> {}
-// Message: Unexpected use of weak type "any"
-
-function foo(thing): Object {}
-// Message: Unexpected use of weak type "Object"
-
-function foo(thing): Promise<Object> {}
-// Message: Unexpected use of weak type "Object"
-
-function foo(thing): Promise<Promise<Object>> {}
-// Message: Unexpected use of weak type "Object"
-
-function foo(thing): Function {}
-// Message: Unexpected use of weak type "Function"
-
-function foo(thing): Promise<Function> {}
-// Message: Unexpected use of weak type "Function"
-
-function foo(thing): Promise<Promise<Function>> {}
-// Message: Unexpected use of weak type "Function"
-
-(foo: any) => {}
-// Message: Unexpected use of weak type "any"
-
-(foo: Function) => {}
-// Message: Unexpected use of weak type "Function"
-
-(foo?: any) => {}
-// Message: Unexpected use of weak type "any"
-
-(foo?: Function) => {}
-// Message: Unexpected use of weak type "Function"
-
-(foo: { a: any }) => {}
-// Message: Unexpected use of weak type "any"
-
-(foo: { a: Object }) => {}
-// Message: Unexpected use of weak type "Object"
-
-(foo: any[]) => {}
-// Message: Unexpected use of weak type "any"
-
-type Foo = any
-// Message: Unexpected use of weak type "any"
-
-type Foo = Function
-// Message: Unexpected use of weak type "Function"
-
-type Foo = { a: any }
-// Message: Unexpected use of weak type "any"
-
-type Foo = { a: Object }
-// Message: Unexpected use of weak type "Object"
-
-type Foo = { (a: Object): string }
-// Message: Unexpected use of weak type "Object"
-
-type Foo = { (a: string): Function }
-// Message: Unexpected use of weak type "Function"
-
-function foo(thing: any) {}
-// Message: Unexpected use of weak type "any"
-
-function foo(thing: Object) {}
-// Message: Unexpected use of weak type "Object"
-
-var foo: Function
-// Message: Unexpected use of weak type "Function"
-
-var foo: Object
-// Message: Unexpected use of weak type "Object"
-
-class Foo { props: any }
-// Message: Unexpected use of weak type "any"
-
-class Foo { props: Object }
-// Message: Unexpected use of weak type "Object"
-
-var foo: any
-// Message: Unexpected use of weak type "any"
-
-// Options: [{"Function":false}]
-type X = any; type Y = Function; type Z = Object
-// Message: Unexpected use of weak type "any"
-// Message: Unexpected use of weak type "Object"
-
-// Options: [{"any":false,"Object":false}]
-type X = any; type Y = Function; type Z = Object
-// Message: Unexpected use of weak type "Function"
-```
-
-The following patterns are not considered problems:
-
-```js
-function foo(thing): string {}
-
-function foo(thing): Promise<string> {}
-
-function foo(thing): Promise<Promise<string>> {}
-
-(foo?: string) => {}
-
-(foo: ?string) => {}
-
-(foo: { a: string }) => {}
-
-(foo: { a: ?string }) => {}
-
-(foo: string[]) => {}
-
-type Foo = string
-
-type Foo = { a: string }
-
-type Foo = { (a: string): string }
-
-function foo(thing: string) {}
-
-var foo: string
-
-class Foo { props: string }
-
-// Options: [{"any":false,"Object":false}]
-type X = any; type Y = Object
-
-// Options: [{"Function":false}]
-type X = Function
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-function foo(thing): Function {}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-object-type-delimiter"></a>
-### <code>object-type-delimiter</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent separators between properties in Flow object types.
-
-This rule takes one argument.
-
-If it is `'comma'` then a problem is raised when using `;` as a separator.
-
-If it is `'semicolon'` then a problem is raised when using `,` as a separator.
-
-The default value is `'comma'`.
-
-_This rule is ported from `babel/flow-object-type`, however the default option was changed._
-
-The following patterns are considered problems:
-
-```js
-// Options: ["semicolon"]
-type Foo = { a: Foo, b: Bar }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-type Foo = { a: Foo; b: Bar }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-type Foo = { [a: string]: Foo, [b: string]: Bar }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-type Foo = { [a: string]: Foo; [b: string]: Bar }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-type Foo = { (): Foo, (): Bar }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-type Foo = { (): Foo; (): Bar }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-declare class Foo { a: Foo, }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-declare class Foo { a: Foo; }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-declare class Foo { [a: string]: Foo, }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-declare class Foo { a: Foo; }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-declare class Foo { (): Foo, }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-declare class Foo { (): Foo; }
-// Message: Prefer commas to semicolons in object and class types
-
-// Options: ["semicolon"]
-declare class Foo { static (): Foo, }
-// Message: Prefer semicolons to commas in object and class types
-
-// Options: ["comma"]
-declare class Foo { static (): Foo; }
-// Message: Prefer commas to semicolons in object and class types
-```
-
-The following patterns are not considered problems:
-
-```js
-// Options: ["semicolon"]
-type Foo = { a: Foo; b: Bar }
-
-// Options: ["comma"]
-type Foo = { a: Foo, b: Bar }
-
-// Options: ["semicolon"]
-type Foo = { [a: string]: Foo; [b: string]: Bar }
-
-// Options: ["comma"]
-type Foo = { [a: string]: Foo, [b: string]: Bar }
-
-// Options: ["semicolon"]
-type Foo = { (): Foo; (): Bar }
-
-// Options: ["comma"]
-type Foo = { (): Foo, (): Bar }
-
-type Foo = { a: Foo, b: Bar }
-
-type Foo = { [a: string]: Foo, [b: string]: Bar }
-
-type Foo = { (): Foo, (): Bar }
-
-// Options: ["semicolon"]
-declare class Foo { a: Foo; }
-
-// Options: ["comma"]
-declare class Foo { a: Foo, }
-
-// Options: ["semicolon"]
-declare class Foo { [a: string]: Foo; }
-
-// Options: ["comma"]
-declare class Foo { [a: string]: Foo, }
-
-// Options: ["semicolon"]
-declare class Foo { (): Foo; }
-
-// Options: ["comma"]
-declare class Foo { (): Foo, }
-
-// Options: ["semicolon"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type Foo = { a: Foo, b: Bar }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-compound-type-alias"></a>
-### <code>require-compound-type-alias</code>
-
-Requires to make a type alias for all [union](https://flow.org/en/docs/types/unions/) and [intersection](https://flow.org/en/docs/types/intersections/) types. If these are used in "raw" forms it might be tempting to just copy&paste them around the code. However, this brings sort of a source code pollution and unnecessary changes on several parts when these compound types need to be changed.
-
-<a name="eslint-plugin-flowtype-rules-require-compound-type-alias-options-2"></a>
-#### Options
-
-The rule has a string option:
-
-* `"never"`
-* `"always"`
-
-The default value is `"always"`.
-
-The following patterns are considered problems:
-
-```js
-function foo(bar: "A" | "B") {}
-// Message: All union types must be declared with named type alias.
-
-const foo: "A" | "B" = "A";
-// Message: All union types must be declared with named type alias.
-
-type Foo = { bar: "A" | "B" };
-// Message: All union types must be declared with named type alias.
-
-function foo(bar: { n: number } | { s: string }) {}
-// Message: All union types must be declared with named type alias.
-
-function foo(bar: { n: number } & { s: string }) {}
-// Message: All intersection types must be declared with named type alias.
-
-const foo: { n: number } & { s: string } = { n: 0, s: "" };
-// Message: All intersection types must be declared with named type alias.
-
-type Foo = { bar: { n: number } & { s: string } };
-// Message: All intersection types must be declared with named type alias.
-
-function foo(bar: { n: number } & { s: string }) {}
-// Message: All intersection types must be declared with named type alias.
-```
-
-The following patterns are not considered problems:
-
-```js
-type Foo = "A" | "B";
-
-type Bar = "A" | "B"; function foo(bar: Bar) {}
-
-type Foo = { disjoint: "A", n: number } | { disjoint: "B", s: string };
-
-type Foo = { n: number } & { s: string };
-
-type Bar = { n: number } & { s: string }; function foo(bar: Bar) {}
-
-// Options: ["never"]
-function foo(bar: "A" | "B") {}
-
-// Options: ["never"]
-function foo(bar: { n: number } & { s: string }) {}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-exact-type"></a>
-### <code>require-exact-type</code>
-
-This rule enforces [exact object types](https://flow.org/en/docs/types/objects/#toc-exact-object-types).
-
-<a name="eslint-plugin-flowtype-rules-require-exact-type-options-3"></a>
-#### Options
-
-The rule has one string option:
-
-* `"always"` (default): Report all object type definitions that aren't exact.
-* `"never"`: Report all object type definitions that are exact.
-
-```js
-{
-  "rules": {
-    "flowtype/require-exact-type": [
-      2,
-      "always"
-    ]
-  }
-}
-
-{
-  "rules": {
-    "flowtype/require-exact-type": [
-      2,
-      "never"
-    ]
-  }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type foo = {};
-// Message: Type identifier 'foo' must be exact.
-
-type foo = { bar: string };
-// Message: Type identifier 'foo' must be exact.
-
-// Options: ["always"]
-type foo = {};
-// Message: Type identifier 'foo' must be exact.
-
-// Options: ["always"]
-type foo = { bar: string };
-// Message: Type identifier 'foo' must be exact.
-
-// Options: ["never"]
-type foo = {| |};
-// Message: Type identifier 'foo' must not be exact.
-
-// Options: ["never"]
-type foo = {| bar: string |};
-// Message: Type identifier 'foo' must not be exact.
-```
-
-The following patterns are not considered problems:
-
-```js
-type foo = {| |};
-
-type foo = {| bar: string |};
-
-type foo = { [key: string]: string };
-
-type foo = number;
-
-// Options: ["always"]
-type foo = {| |};
-
-// Options: ["always"]
-type foo = {| bar: string |};
-
-// Options: ["always"]
-type foo = number;
-
-// Options: ["never"]
-type foo = { };
-
-// Options: ["never"]
-type foo = { bar: string };
-
-// Options: ["never"]
-type foo = number;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-indexer-name"></a>
-### <code>require-indexer-name</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-This rule validates Flow object indexer name.
-
-<a name="eslint-plugin-flowtype-rules-require-indexer-name-options-4"></a>
-#### Options
-
-The rule has a string option:
-
-* `"never"` (default): Never report files that are missing an indexer key name.
-* `"always"`: Always report files that are missing an indexer key name.
-
-```js
-{
-  "rules": {
-    "flowtype/require-indexer-name": [
-      2,
-      "always"
-    ]
-  }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type foo = { [string]: number };
-// Message: All indexers must be declared with key name.
-```
-
-The following patterns are not considered problems:
-
-```js
-type foo = { [key: string]: number };
-
-// Options: ["never"]
-type foo = { [key: string]: number };
-
-// Options: ["never"]
-type foo = { [string]: number };
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-inexact-type"></a>
-### <code>require-inexact-type</code>
-
-This rule enforces explicit inexact object types.
-
-<a name="eslint-plugin-flowtype-rules-require-inexact-type-options-5"></a>
-#### Options
-
-The rule has one string option:
-
-- `"always"` (default): Report all object type definitions that aren't explicit inexact, but ignore exact objects.
-- `"never"`: Report all object type definitions that are explicit inexact.
-
-```js
-{
-  "rules": {
-    "flowtype/require-inexact-type": [
-      2,
-      "always"
-    ]
-  }
-}
-
-{
-  "rules": {
-    "flowtype/require-inexact-type": [
-      2,
-      "never"
-    ]
-  }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type foo = {};
-// Message: Type must be explicit inexact.
-
-type foo = { bar: string };
-// Message: Type must be explicit inexact.
-
-// Options: ["always"]
-type foo = {};
-// Message: Type must be explicit inexact.
-
-// Options: ["always"]
-type foo = { bar: string };
-// Message: Type must be explicit inexact.
-
-// Options: ["never"]
-type foo = {...};
-// Message: Type must not be explicit inexact.
-
-// Options: ["never"]
-type foo = { bar: string, ... };
-// Message: Type must not be explicit inexact.
-```
-
-The following patterns are not considered problems:
-
-```js
-type foo = { foo: string, ... };
-
-interface Foo { foo: string }
-
-declare class Foo { foo: string }
-
-type foo = {| |};
-
-type foo = {| bar: string |};
-
-type foo = { [key: string]: string, ... };
-
-type foo = number;
-
-// Options: ["always"]
-type foo = {| |};
-
-// Options: ["always"]
-type foo = {...};
-
-// Options: ["always"]
-type foo = { bar: string, ... };
-
-// Options: ["always"]
-type foo = {| bar: string |};
-
-// Options: ["always"]
-type foo = number;
-
-// Options: ["never"]
-type foo = { };
-
-// Options: ["never"]
-type foo = {| |};
-
-// Options: ["never"]
-type foo = { bar: string };
-
-// Options: ["never"]
-type foo = {| bar: string |};
-
-// Options: ["never"]
-type foo = number;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-parameter-type"></a>
-### <code>require-parameter-type</code>
-
-Requires that all function parameters have type annotations.
-
-<a name="eslint-plugin-flowtype-rules-require-parameter-type-options-6"></a>
-#### Options
-
-You can skip all arrow functions by providing the `excludeArrowFunctions` option with `true`.
-
-Alternatively, you can want to exclude only concise arrow functions (e.g. `x => x * 2`). Provide `excludeArrowFunctions` with `expressionsOnly` for this.
-
-```js
-{
-    "rules": {
-        "flowtype/require-parameter-type": [
-            2,
-            {
-              "excludeArrowFunctions": true
-            }
-        ]
-    }
-}
-
-{
-    "rules": {
-        "flowtype/require-parameter-type": [
-            2,
-            {
-              "excludeArrowFunctions": "expressionsOnly"
-            }
-        ]
-    }
-}
-```
-
-You can exclude parameters that match a certain regex by using `excludeParameterMatch`.
-
-```js
-{
-    "rules": {
-        "flowtype/require-parameter-type": [
-            2,
-            {
-              "excludeParameterMatch": "^_"
-            }
-        ]
-    }
-}
-```
-
-This excludes all parameters that start with an underscore (`_`).
-The default pattern is `a^`, which doesn't match anything, i.e., all parameters are checked.
-
-The following patterns are considered problems:
-
-```js
-(foo) => {}
-// Message: Missing "foo" parameter type annotation.
-
-function x(foo) {}
-// Message: Missing "foo" parameter type annotation.
-
-// Options: [{"excludeArrowFunctions":true}]
-function x(foo) {}
-// Message: Missing "foo" parameter type annotation.
-
-(foo = 'FOO') => {}
-// Message: Missing "foo" parameter type annotation.
-
-(...foo) => {}
-// Message: Missing "foo" parameter type annotation.
-
-({foo}) => {}
-// Message: Missing "{foo}" parameter type annotation.
-
-([foo]) => {}
-// Message: Missing "[foo]" parameter type annotation.
-
-({foo = 1} = {}) => {}
-// Message: Missing "{foo = 1}" parameter type annotation.
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-// @flow
-(foo) => {}
-// Message: Missing "foo" parameter type annotation.
-
-// Options: [{"excludeArrowFunctions":"expressionsOnly"}]
-(foo) => {}
-// Message: Missing "foo" parameter type annotation.
-
-// Options: [{"excludeArrowFunctions":"expressionsOnly"}]
-function x(foo) {}
-// Message: Missing "foo" parameter type annotation.
-
-// Options: [{"excludeParameterMatch":"^_"}]
-(_foo: number, bar) => {}
-// Message: Missing "bar" parameter type annotation.
-
-// Options: [{"excludeParameterMatch":"^_"}]
-(_foo, bar) => {}
-// Message: Missing "bar" parameter type annotation.
-```
-
-The following patterns are not considered problems:
-
-```js
-(foo: string) => {}
-
-(foo: string = 'FOO') => {}
-
-(...foo: string) => {}
-
-const f: Foo = (a, b) => 42;
-
-({foo}: {foo: string}) => {}
-
-([foo]: Array) => {}
-
-type fn = (a: string, b: number) => number;
-const f: fn = (a, b) => {}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-(foo) => {}
-
-// Options: [{"excludeArrowFunctions":true}]
-(foo) => {}
-
-// Options: [{"excludeArrowFunctions":"expressionsOnly"}]
-(foo) => 3
-
-// Options: [{"excludeParameterMatch":"^_"}]
-(_foo, bar: string) => {}
-
-// Options: [{"excludeParameterMatch":"^_"}]
-(_foo: number, bar: string) => {}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-(foo) => {}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-readonly-react-props"></a>
-### <code>require-readonly-react-props</code>
-
-This rule validates that React props are marked as $ReadOnly. React props are immutable and modifying them could lead to unexpected results. Marking prop shapes as $ReadOnly avoids these issues.
-
-The rule tries its best to work with both class and functional components. For class components, it does a fuzzy check for one of "Component", "PureComponent", "React.Component" and "React.PureComponent". It doesn't actually infer that those identifiers resolve to a proper `React.Component` object.
-
-For example, this will NOT be checked:
-
-```js
-import MyReact from 'react';
-class Foo extends MyReact.Component { }
-```
-
-As a result, you can safely use other classes without getting warnings from this rule:
-
-```js
-class MyClass extends MySuperClass { }
-```
-
-React's functional components are hard to detect statically. The way it's done here is by searching for JSX within a function. When present, a function is considered a React component:
-
-```js
-// this gets checked
-type Props = { };
-function MyComponent(props: Props) {
-    return <p />;
-}
-
-// this doesn't get checked since no JSX is present in a function
-type Options = { };
-function SomeHelper(options: Options) {
-    // ...
-}
-
-// this doesn't get checked since no JSX is present directly in a function
-function helper() { return <p /> }
-function MyComponent(props: Props) {
-    return helper();
-}
-```
-
-The rule only works for locally defined props that are marked with a `$ReadOnly` or using covariant notation. It doesn't work with imported props:
-
-```js
-// the rule has no way of knowing whether ImportedProps are read-only
-import { type ImportedProps } from './somewhere';
-class Foo extends React.Component<ImportedProps> { }
-
-
-// the rule also checks for covariant properties
-type Props = {|
-    +foo: string
-|};
-class Bar extends React.Component<Props> { }
-
-// this fails because the object is not fully read-only
-type Props = {|
-    +foo: string,
-    bar: number,
-|};
-class Bar extends React.Component<Props> { }
-
-// this fails because spreading makes object mutable (as of Flow 0.98)
-// https://github.com/gajus/eslint-plugin-flowtype/pull/400#issuecomment-489813899
-type Props = {|
-    +foo: string,
-    ...bar,
-|};
-class Bar extends React.Component<Props> { }
-```
-
-
-```js
-{
-    "rules": {
-        "flowtype/require-readonly-react-props": 2
-    }
-}
-```
-
-
-The following patterns are considered problems:
-
-```js
-type Props = { }; class Foo extends React.Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type OtherProps = { foo: string }; class Foo extends React.Component<OtherProps> { }
-// Message: OtherProps must be $ReadOnly
-
-class Foo extends React.Component<{}> { }
-// Message: Foo class props must be $ReadOnly
-
-type Props = { bar: {} }; class Foo extends React.Component<Props, State> { }
-// Message: Props must be $ReadOnly
-
-type Props = { }; class Foo extends Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type Props = { }; class Foo extends PureComponent<Props> { }
-// Message: Props must be $ReadOnly
-
-export type Props = {}; class Foo extends Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type Props = {| foo: string |}; class Foo extends Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type Props = {| +foo: string, ...bar |}; class Foo extends Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type Props = {| +foo: string, -bar: number |}; class Foo extends Component<Props> { }
-// Message: Props must be $ReadOnly
-
-type Props = { }; function Foo(props: Props) { return <p /> }
-// Message: Props must be $ReadOnly
-
-type Props = { }; function Foo(props: Props) { return foo ? <p /> : <span /> }
-// Message: Props must be $ReadOnly
-
-function Foo(props: {}) { return <p /> }
-// Message: Foo component props must be $ReadOnly
-
-export type Props = {}; function Foo(props: Props) { return <p /> }
-// Message: Props must be $ReadOnly
-```
-
-The following patterns are not considered problems:
-
-```js
-class Foo extends React.Component<$ReadOnly<{}>> { }
-
-type Props = $ReadOnly<{}>; class Foo extends React.Component<Props> { }
-
-type Props = $ReadOnly<{}>; class Foo extends React.PureComponent<Props> { }
-
-class Foo extends React.Component<$ReadOnly<{}, State>> { }
-
-type Props = $ReadOnly<{}>; class Foo extends React.Component<Props, State> { }
-
-type Props = $ReadOnly<{}>; class Foo extends Component<Props> { }
-
-type Props = $ReadOnly<{}>; class Foo extends PureComponent<Props> { }
-
-type FooType = {}; class Foo extends Bar<FooType> { }
-
-class Foo { }
-
-export type Props = $ReadOnly<{}>; class Foo extends Component<Props, State> { }
-
-export type Props = $ReadOnly<{}>; export class Foo extends Component<Props> { }
-
-type Props = {| +foo: string |}; class Foo extends Component<Props> { }
-
-type Props = {| +foo: string, +bar: number |}; class Foo extends Component<Props> { }
-
-type Props = $FlowFixMe; class Foo extends Component<Props> { }
-
-type Props = {||}; class Foo extends Component<Props> { }
-
-class Foo extends Component<{||}> { }
-
-class Foo extends React.Component<UnknownProps> { }
-
-import { type Props } from "file"; class Foo extends React.Component<Props> { }
-
-type Props = {}; function Foo() { }
-
-type Props = $ReadOnly<{}>; function Foo(props: Props) { }
-
-type Props = {}; function Foo(props: OtherProps) { }
-
-function Foo() { return <p /> }
-
-function Foo(props: $FlowFixMe) { return <p /> }
-
-function Foo(props: {||}) { return <p /> }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-return-type"></a>
-### <code>require-return-type</code>
-
-Requires that functions have return type annotation.
-
-<a name="eslint-plugin-flowtype-rules-require-return-type-options-7"></a>
-#### Options
-
-You can skip all arrow functions by providing the `excludeArrowFunctions` option with `true`.
-
-Alternatively, you can exclude a concise arrow function (e.g. `() => 2`). Provide `excludeArrowFunctions` with `expressionsOnly` for this.
-
-```js
-{
-    "rules": {
-        "flowtype/require-return-type": [
-            2,
-            "always",
-            {
-              "excludeArrowFunctions": true
-            }
-        ]
-    }
-}
-
-{
-    "rules": {
-        "flowtype/require-return-type": [
-            2,
-            "always",
-            {
-              "excludeArrowFunctions": "expressionsOnly"
-            }
-        ]
-    }
-}
-```
-
-You can exclude or include specific tests with the `includeOnlyMatching` and `excludeMatching` rules.
-
-```js
-{
-    "rules": {
-        "flowtype/require-return-type": [
-            2,
-            "always",
-            {
-              "includeOnlyMatching": [
-                  "^F.*",
-                  "Ba(r|z)"
-              ]
-            }
-        ]
-    }
-}
-
-{
-    "rules": {
-        "flowtype/require-return-type": [
-            2,
-            "always",
-            {
-              "excludeMatching": [
-                  "^F.*",
-                  "Ba(r|z)"
-              ]
-            }
-        ]
-    }
-}
-
-```
-
-Both rules take an array that can contain either strings or valid RegExp statements.
-
-The following patterns are considered problems:
-
-```js
-(foo) => { return "foo"; }
-// Message: Missing return type annotation.
-
-// Options: ["always"]
-(foo) => { return "foo"; }
-// Message: Missing return type annotation.
-
-// Options: ["always"]
-(foo) => "foo"
-// Message: Missing return type annotation.
-
-(foo) => ({})
-// Message: Missing return type annotation.
-
-(foo): undefined => { return; }
-// Message: Must not annotate undefined return type.
-
-(foo): void => { return; }
-// Message: Must not annotate undefined return type.
-
-(foo): undefined => { return undefined; }
-// Message: Must not annotate undefined return type.
-
-(foo): void => { return void 0; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo): undefined => { return; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo): void => { return; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo) => { return; }
-// Message: Must annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo): undefined => { return undefined; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo) => { return undefined; }
-// Message: Must annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo) => { return void 0; }
-// Message: Must annotate undefined return type.
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-// @flow
-(foo) => { return 1; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-// @flow
- (foo) => { return undefined; }
-// Message: Must annotate undefined return type.
-
-// Options: ["always"]
-async () => { return 2; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-async () => {}
-// Message: Must annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-async function x() {}
-// Message: Must annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"never"}]
-async (): Promise<void> => { return; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"never"}]
-async (): Promise<undefined> => { return; }
-// Message: Must not annotate undefined return type.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-class Test { constructor() { } }
-// Message: Must annotate undefined return type.
-
-class Test { foo() { return 42; } }
-// Message: Missing return type annotation.
-
-class Test { foo = () => { return 42; } }
-// Message: Missing return type annotation.
-
-class Test { foo = () => 42; }
-// Message: Missing return type annotation.
-
-// Options: ["always"]
-function* x() {}
-// Message: Missing return type annotation.
-
-// Options: ["always",{"excludeArrowFunctions":"expressionsOnly"}]
-() => { return 3; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"excludeArrowFunctions":"expressionsOnly"}]
-async () => { return 4; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"includeOnlyMatching":["bar"]}]
-function foo() { return 42; }
-function bar() { return 42; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"includeOnlyMatching":["bar"]}]
-const foo = () => { return 42; };
-const bar = () => { return 42; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"includeOnlyMatching":["bar"]}]
-const foo = { bar() { return 42; }, foobar: function() { return 42; } }
-// Message: Missing return type annotation.
-// Message: Missing return type annotation.
-
-// Options: ["always",{"excludeMatching":["bar"]}]
-const foo = { bar() { return 42; }, baz() { return 42; } }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-function * foo() { yield 2; }
-// Message: Missing return type annotation.
-
-// Options: ["always",{"annotateUndefined":"always"}]
-async function * foo() { yield 2; }
-// Message: Missing return type annotation.
-```
-
-The following patterns are not considered problems:
-
-```js
-return;
-
-(foo): string => {}
-
-const f: Foo = (a, b) => 42;
-
-// Options: ["always"]
-(foo): string => {}
-
-type fn = (a: string, b: number) => number;
-const f: fn = (a, b) => { return 42; }
-
-(foo) => { return; }
-
-(foo): Object => ( {} )
-
-(foo) => { return undefined; }
-
-(foo) => { return void 0; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo): undefined => { return; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo): void => { return; }
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo) => { return; }
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo) => { return undefined; }
-
-// Options: ["always",{"annotateUndefined":"never"}]
-(foo) => { return void 0; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo): undefined => { return undefined; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-(foo): void => { return void 0; }
-
-// Options: ["always"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-(foo) => { return 1; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-(foo) => { return undefined; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-async function doThing(): Promise<void> {}
-
-// Options: ["always",{"annotateUndefined":"ignore"}]
-async function doThing(): Promise<void> {}
-
-// Options: ["always",{"annotateUndefined":"ignore"}]
-async function doThing() {}
-
-// Options: ["always",{"annotateUndefined":"always"}]
-function* doThing(): Generator<number, void, void> { yield 2; }
-
-// Options: ["always",{"annotateUndefined":"always","excludeMatching":["constructor"]}]
-class Test { constructor() { } }
-
-class Test { constructor() { } }
-
-// Options: ["always",{"excludeMatching":["foo"]}]
-class Test { foo() { return 42; } }
-
-// Options: ["always",{"excludeMatching":["foo"]}]
-class Test { foo = () => { return 42; } }
-
-// Options: ["always",{"excludeMatching":["foo"]}]
-class Test { foo = () => 42; }
-
-class Test { foo = (): number => { return 42; } }
-
-class Test { foo = (): number => 42; }
-
-async (foo): Promise<number> => { return 3; }
-
-// Options: ["always",{"excludeArrowFunctions":true}]
-() => 3
-
-// Options: ["always",{"excludeArrowFunctions":true}]
-() => { return 4; }
-
-// Options: ["always",{"excludeArrowFunctions":true}]
-() => undefined
-
-// Options: ["always",{"annotateUndefined":"always","excludeArrowFunctions":true}]
-() => undefined
-
-// Options: ["always",{"annotateUndefined":"always","excludeArrowFunctions":true}]
-() => { return undefined; }
-
-// Options: ["always",{"excludeArrowFunctions":"expressionsOnly"}]
-() => 3
-
-// Options: ["always",{"excludeArrowFunctions":"expressionsOnly"}]
-async () => 3
-
-// Options: ["always",{"excludeMatching":["foo"]}]
-function foo() { return 42; }
-
-// Options: ["always",{"includeOnlyMatching":["bar"]}]
-function foo() { return 42; }
-
-// Options: ["always",{"excludeMatching":["bar"]}]
-function foo(): number { return 42; }
-function bar() { return 42; }
-
-// Options: ["always",{"includeOnlyMatching":["foo","baz"]}]
-function foo(): number { return 42; }
-function bar() { return 42; }
-
-// Options: ["always",{"excludeMatching":["^b.*","qux"]}]
-function foo(): number { return 42; }
-function bar() { return 42; }
-
-// Options: ["always",{"includeOnlyMatching":["^f.*"]}]
-function foo(): number { return 42; }
-function bar() { return 42; }
-
-// Options: ["always",{"includeOnlyMatching":["bar"]}]
-const foo = { baz() { return 42; } }
-
-// Options: ["always",{"excludeMatching":["bar"]}]
-const foo = { bar() { return 42; } }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-function * foo(): Iterable<number> { yield 2; }
-
-// Options: ["always",{"annotateUndefined":"always"}]
-async function * foo(): AsyncIterable<number> { yield 2; }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-types-at-top"></a>
-### <code>require-types-at-top</code>
-
-Requires all type declarations to be at the top of the file, after any import declarations.
-
-<a name="eslint-plugin-flowtype-rules-require-types-at-top-options-8"></a>
-#### Options
-
-The rule has a string option:
-
-* `"never"`
-* `"always"`
-
-The default value is `"always"`.
-
-The following patterns are considered problems:
-
-```js
-const foo = 3;
-type Foo = number;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-
-const foo = 3;
-opaque type Foo = number;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-
-const foo = 3;
-export type Foo = number;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-
-const foo = 3;
-export opaque type Foo = number;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-
-const foo = 3;
-type Foo = number | string;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-
-import bar from "./bar";
-const foo = 3;
-type Foo = number;
-// Message: All type declaration should be at the top of the file, after any import declarations.
-```
-
-The following patterns are not considered problems:
-
-```js
-type Foo = number;
-const foo = 3;
-
-opaque type Foo = number;
-const foo = 3;
-
-export type Foo = number;
-const foo = 3;
-
-export opaque type Foo = number;
-const foo = 3;
-
-type Foo = number;
-const foo = 3;
-
-import bar from "./bar";
-type Foo = number;
-
-type Foo = number;
-import bar from "./bar";
-
-// Options: ["never"]
-const foo = 3;
-type Foo = number;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-valid-file-annotation"></a>
-### <code>require-valid-file-annotation</code>
-
-This rule validates Flow file annotations.
-
-This rule can optionally report missing or missed placed annotations, common typos (e.g. `// @floww`), and enforce a consistant annotation style.
-
-<a name="eslint-plugin-flowtype-rules-require-valid-file-annotation-options-9"></a>
-#### Options
-
-The rule has a string option:
-
-* `"never"` (default): Never report files that are missing an `@flow` annotation.
-* `"always"`: Always report files that are missing an `@flow` annotation
-
-This rule has an object option:
-
-* `"annotationStyle"` - Enforce a consistant file annotation style.
-    * `"none"` (default): Either annotation style is accepted.
-    * `"line"`: Require single line annotations (i.e. `// @flow`).
-    * `"block"`: Require block annotations (i.e. `/* @flow */`).
-
-* `"strict"` - Enforce a strict flow file annotation.
-    * `false` (default): strict flow annotation is not required.
-    * `true`: Require strict flow annotation (i.e. `// @flow strict`).
-
-```js
-{
-  "rules": {
-    "flowtype/require-valid-file-annotation": [
-      2,
-      "always"
-    ]
-  }
-}
-
-{
-  "rules": {
-    "flowtype/require-valid-file-annotation": [
-      2,
-      "always", {
-        "annotationStyle": "block",
-        "strict": true,
-      }
-    ]
-  }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-;// @flow
-// Message: Flow file annotation not at the top of the file.
-
-;
-// @flow
-// Message: Flow file annotation not at the top of the file.
-
-// @Flow
-// Message: Malformed Flow file annotation.
-
-// @NoFlow
-// Message: Malformed Flow file annotation.
-
-// @Noflow
-// Message: Malformed Flow file annotation.
-
-// @floweeeeeee
-// Message: Misspelled or malformed Flow file annotation.
-
-// @nofloweeeeeee
-// Message: Misspelled or malformed Flow file annotation.
-
-// Options: ["always"]
-a;
-// Message: Flow file annotation is missing.
-
-// Options: ["always",{"annotationStyle":"line"}]
-/* @flow */
-// Message: Flow file annotation style must be `// @flow`
-
-// Options: ["always",{"annotationStyle":"block"}]
-// @flow
-// Message: Flow file annotation style must be `/* @flow */`
-
-// Options: ["always",{"annotationStyle":"block"}]
-// @flow
-// Message: Flow file annotation style must be `/* @flow */`
-
-// Options: ["always",{"annotationStyle":"line","strict":true}]
-// @flow
-// Message: Strict Flow file annotation is required, should be `// @flow strict`
-
-// Options: ["always",{"annotationStyle":"line"}]
-/* @noflow */
-// Message: Flow file annotation style must be `// @noflow`
-
-// Options: ["always",{"annotationStyle":"block"}]
-// @noflow
-// Message: Flow file annotation style must be `/* @noflow */`
-
-// Options: ["always"]
-a;
-// Message: Flow file annotation is missing.
-
-// Options: ["always",{"annotationStyle":"block"}]
-a;
-// Message: Flow file annotation is missing.
-
-// Options: ["always",{"annotationStyle":"line","strict":true}]
-a;
-// Message: Flow file annotation is missing.
-
-// Options: ["always",{"annotationStyle":"line","strict":true}]
-// @flow
-a;
-b;
-// Message: Strict Flow file annotation is required, should be `// @flow strict`
-```
-
-The following patterns are not considered problems:
-
-```js
-a;
-
-// @flow
-a;
-
-//@flow
-a;
-
-//**@flow
-a;
-
-/* foo @flow bar */
-a;
-
-
-
-// @flow
-a;
-
-// @flow
-// @FLow
-
-// @noflow
-a;
-
-// Options: ["always"]
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-a;
-
-// Options: ["always",{"annotationStyle":"line"}]
-// @flow
-
-// Options: ["always",{"annotationStyle":"line","strict":true}]
-// @noflow
-
-// Options: ["always",{"annotationStyle":"line","strict":true}]
-// @flow strict
-
-// Options: ["never",{"annotationStyle":"none"}]
-// @function
-
-// Options: ["never"]
-// @fixable
-
-// Options: ["always",{"annotationStyle":"block"}]
-/* @flow */
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-require-variable-type"></a>
-### <code>require-variable-type</code>
-
-Requires that all variable declarators have type annotations.
-
-<a name="eslint-plugin-flowtype-rules-require-variable-type-options-10"></a>
-#### Options
-
-You can exclude variables that match a certain regex by using `excludeVariableMatch`.
-
-This excludes all parameters that start with an underscore (`_`).
-The default pattern is `a^`, which doesn't match anything, i.e., all parameters are checked.
-
-```js
-{
-    "rules": {
-        "flowtype/require-variable-type": [
-            2,
-            {
-              "excludeVariableMatch": "^_"
-            }
-        ]
-    }
-}
-```
-
-
-You can choose specific variable types (`var`, `let`, and `const`) to ignore using `excludeVariableTypes`.
-
-This excludes `var` and `let` declarations from needing type annotations, but forces `const` declarations to have it.
-By default, all declarations are checked.
-
-```js
-{
-    "rules": {
-        "flowtype/require-variable-type": [
-            2,
-            {
-              "excludeVariableTypes": {
-                "var": true,
-                "let": true,
-                "const": false,
-              }
-            }
-        ]
-    }
-}
-```
-
-
-
-The following patterns are considered problems:
-
-```js
-var foo = "bar"
-// Message: Missing "foo" variable type annotation.
-
-var foo : string = "bar", bar = 1
-// Message: Missing "bar" variable type annotation.
-
-// Options: [{"excludeVariableMatch":"^_"}]
-var _foo = "bar", bar = 1
-// Message: Missing "bar" variable type annotation.
-
-// Options: [{"excludeVariableTypes":{"let":false,"var":true}}]
-var foo = "bar", bar = 1; const oob : string = "oob"; let hey = "yah"
-// Message: Missing "hey" variable type annotation.
-```
-
-The following patterns are not considered problems:
-
-```js
-var foo : string = "bar"
-
-var foo : string = "bar", bar : number = 1
-
-// Options: [{"excludeVariableMatch":"^_"}]
-var _foo = "bar", bar : number = 1
-
-// Options: [{"excludeVariableTypes":{"var":true}}]
-var foo = "bar", bar = 1
-
-// Options: [{"excludeVariableTypes":{"let":true,"var":true}}]
-var foo = "bar", bar = 1; const oob : string = "oob"; let hey = "yah"
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-semi"></a>
-### <code>semi</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent use of semicolons after type aliases.
-
-This rule takes one argument. If it is `'never'` then a problem is raised when there is a semicolon after a type alias. If it is `'always'` then a problem is raised when there is no semicolon after a type alias.
-
-The default value is `'always'`.
-
-The following patterns are considered problems:
-
-```js
-// Options: []
-type FooType = {}
-// Message: Missing semicolon.
-
-// Options: ["always"]
-type FooType = {}
-// Message: Missing semicolon.
-
-// Options: ["never"]
-type FooType = {};
-// Message: Extra semicolon.
-
-// Options: []
-opaque type FooType = {}
-// Message: Missing semicolon.
-```
-
-The following patterns are not considered problems:
-
-```js
-type FooType = {};
-
-// Options: ["always"]
-type FooType = {};
-
-// Options: ["always"]
-type FooType = { a: number;
- b: string;
- };
-
-// Options: ["never"]
-type FooType = { a: number;
- b: string;
- }
-
-// Options: ["never"]
-type FooType = {}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type FooType = {}
-
-opaque type FooType = {};
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-sort-keys"></a>
-### <code>sort-keys</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces sorting of Object annotations.
-
-This rule mirrors ESlint's [sort-keys](http://eslint.org/docs/rules/sort-keys) rule.
-
-<a name="eslint-plugin-flowtype-rules-sort-keys-options-11"></a>
-#### Options
-
-The first option specifies sort order.
-
-* `"asc"` (default) - enforce ascending sort order.
-* `"desc"` - enforce descending sort order.
-
-The second option takes an object with two possible properties.
-
-* `caseSensitive` - if `true`, enforce case-sensitive sort order. Default is `true`.
-* `natural` - if `true`, enforce [natural sort order](https://en.wikipedia.org/wiki/Natural_sort_order). Default is `false`.
-
-```js
-{
-  "rules": {
-    "flowtype/sort-keys": [
-      2,
-      "asc", {
-        "caseSensitive": true,
-        "natural": false
-      }
-    ]
-  }
-}
-```
-
-The following patterns are considered problems:
-
-```js
-type FooType = { a: number, c: number, b: string }
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-type FooType = { a: number, b: number, C: number }
-// Message: Expected type annotations to be in ascending order. "C" should be before "b".
-
-type FooType = { 1: number, 2: number, 10: number }
-// Message: Expected type annotations to be in ascending order. "10" should be before "2".
-
-// Options: ["desc"]
-type FooType = { a: number, b: number }
-// Message: Expected type annotations to be in descending order. "b" should be before "a".
-
-// Options: ["desc"]
-type FooType = { C: number, b: number, a: string }
-// Message: Expected type annotations to be in descending order. "b" should be before "C".
-
-// Options: ["desc"]
-type FooType = { 10: number, 2: number, 1: number }
-// Message: Expected type annotations to be in descending order. "2" should be before "10".
-
-// Options: ["asc",{"caseSensitive":false}]
-type FooType = { a: number, c: number, C: number, b: string }
-// Message: Expected type annotations to be in insensitive ascending order. "b" should be before "C".
-
-// Options: ["asc",{"caseSensitive":false}]
-type FooType = { a: number, C: number, c: number, b: string }
-// Message: Expected type annotations to be in insensitive ascending order. "b" should be before "c".
-
-// Options: ["asc",{"natural":true}]
-type FooType = { 1: number, 10: number, 2: boolean }
-// Message: Expected type annotations to be in natural ascending order. "2" should be before "10".
-
-type FooType = { a: number, c: number, b: string }
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          a: number,
-          c: number,
-          b: string,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          +a: number,
-          c: number,
-          b: string,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          -a: number,
-          c: number,
-          b: string,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          a?: number,
-          c: ?number,
-          b: string,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          a: (number) => void,
-          c: number,
-          b: (param: string) => number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          a: number | string | boolean,
-          c: number,
-          b: (param: string) => number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-
-
-        type FooType = {
-          c: number,
-          a: number | string | boolean,
-          b: (param: string) => number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "a" should be before "c".
-
-
-        type FooType = {
-          c: {
-            z: number,
-            x: string,
-            y: boolean,
-          },
-          a: number | string | boolean,
-          b: (param: string) => number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "x" should be before "z".
-// Message: Expected type annotations to be in ascending order. "a" should be before "c".
-
-
-        type FooType = {
-          c: {
-            z: {
-              j: string,
-              l: number,
-              k: boolean,
-            },
-            x: string,
-            y: boolean,
-          },
-          a: number | string | boolean,
-          b: (param: string) => number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "k" should be before "l".
-// Message: Expected type annotations to be in ascending order. "x" should be before "z".
-// Message: Expected type annotations to be in ascending order. "a" should be before "c".
-
-
-        type FooType = {
-          +c: number,
-          -b: number,
-          a: number,
-        }
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-// Message: Expected type annotations to be in ascending order. "a" should be before "b".
-
-
-        type FooType = {|
-          +c: number,
-          -b: number,
-          a: number,
-        |}
-      
-// Message: Expected type annotations to be in ascending order. "b" should be before "c".
-// Message: Expected type annotations to be in ascending order. "a" should be before "b".
-```
-
-The following patterns are not considered problems:
-
-```js
-type FooType = { a: number }
-
-type FooType = { a: number, b: number, c: (boolean | number) }
-
-type FooType = { C: number, a: string, b: foo }
-
-type FooType = { 1: number, 10: number, 2: boolean }
-
-// Options: ["desc"]
-type FooType = { c: number, b: number, a: number }
-
-// Options: ["desc"]
-type FooType = { b: string, a: {}, C: number }
-
-// Options: ["desc"]
-type FooType = { 2: number, 10: number, 1: boolean }
-
-// Options: ["asc",{"caseSensitive":false}]
-type FooType = { a: number, b: number, c: number, C: number }
-
-// Options: ["asc",{"caseSensitive":false}]
-type FooType = { a: number, b: number, C: number, c: number }
-
-// Options: ["asc",{"natural":true}]
-type FooType = { 1:number, 2: number, 10: number }
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type FooType = { b: number, a: number }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-space-after-type-colon"></a>
-### <code>space-after-type-colon</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent spacing after the type annotation colon.
-
-<a name="eslint-plugin-flowtype-rules-space-after-type-colon-options-12"></a>
-#### Options
-
-This rule has a string argument.
-
-* `"always"` (default): Require a space after the type annotation colon (e.g. foo: BarType).
-* `"never"`: Require no spaces after the type annotation colon (e.g. foo:BarType).
-
-This rule has an option object.
-
-* `"allowLineBreak"` - Allow a line break to count as a space following the annotation colon.
-    * `"true"`: Enable
-    * `"false"`: Disable
-
-{
-  "rules": {
-    "flowtype/space-after-type-colon": [
-      2,
-      "always", {
-        "allowLineBreak": false
-      }
-    ]
-  }
-}
-
-The following patterns are considered problems:
-
-```js
-// Options: ["never"]
-(foo: string) => {}
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo:  string) => {}
-// Message: There must be 1 space after "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo:(() => void)) => {}
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-// Options: ["never"]
-(foo: (() => void)) => {}
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo:  (() => void)) => {}
-// Message: There must be 1 space after "foo" parameter type annotation colon.
-
-({ lorem, ipsum, dolor } :   SomeType) => {}
-// Message: There must be 1 space after "{ lorem, ipsum, dolor }" parameter type annotation colon.
-
-(foo:{ a: string, b: number }) => {}
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-({ a, b } :{ a: string, b: number }) => {}
-// Message: There must be a space after "{ a, b }" parameter type annotation colon.
-
-([ a, b ] :string[]) => {}
-// Message: There must be a space after "[ a, b ]" parameter type annotation colon.
-
-(i?:number) => {}
-// Message: There must be a space after "i" parameter type annotation colon.
-
-(i?:  number) => {}
-// Message: There must be 1 space after "i" parameter type annotation colon.
-
-// Options: ["never"]
-(i?: number) => {}
-// Message: There must be no space after "i" parameter type annotation colon.
-
-(foo:
-  { a: string, b: number }) => {}
-// Message: There must not be a line break after "foo" parameter type annotation colon.
-
-(foo:
-{ a: string, b: number }) => {}
-// Message: There must not be a line break after "foo" parameter type annotation colon.
-
-(foo: 
-{ a: string, b: number }) => {}
-// Message: There must not be a line break after "foo" parameter type annotation colon.
-
-// Options: ["always"]
-():Object => {}
-// Message: There must be a space after return type colon.
-
-// Options: ["never"]
-(): Object => {}
-// Message: There must be no space after return type colon.
-
-// Options: ["always"]
-():  Object => {}
-// Message: There must be 1 space after return type colon.
-
-// Options: ["always"]
-():(() => void) => {}
-// Message: There must be a space after return type colon.
-
-// Options: ["never"]
-(): (() => void) => {}
-// Message: There must be no space after return type colon.
-
-// Options: ["always"]
-():  (() => void) => {}
-// Message: There must be 1 space after return type colon.
-
-// Options: ["never"]
-export default function (foo: string) {}
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-// Options: ["never"]
-function foo (foo: string) {}
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo:string) => {}
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-function foo (foo:string) {}
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-async function foo({ lorem, ipsum, dolor }:SomeType) {}
-// Message: There must be a space after "{ lorem, ipsum, dolor }" parameter type annotation colon.
-
-function x(i?:number) {}
-// Message: There must be a space after "i" parameter type annotation colon.
-
-function x(i?:  number) {}
-// Message: There must be 1 space after "i" parameter type annotation colon.
-
-// Options: ["never"]
-function x(i?: number) {}
-// Message: There must be no space after "i" parameter type annotation colon.
-
-function a():x {}
-// Message: There must be a space after return type colon.
-
-// Options: ["always"]
-function a():  x {}
-// Message: There must be 1 space after return type colon.
-
-// Options: ["never"]
-function a(): x {}
-// Message: There must be no space after return type colon.
-
-type X = (foo:number) => string
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-// Options: ["never"]
-type X = (foo: number) => string
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-type X = (foo:  number) => string
-// Message: There must be 1 space after "foo" parameter type annotation colon.
-
-type X = (foo:?number) => string
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-type X = (foo:(number)) => string
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-type X = (foo:((number))) => string
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-type X = (foo:  ((number))) => string
-// Message: There must be 1 space after "foo" parameter type annotation colon.
-
-// Options: ["never"]
-type X = (foo: ((number))) => string
-// Message: There must be no space after "foo" parameter type annotation colon.
-
-type X = (foo:?(number)) => string
-// Message: There must be a space after "foo" parameter type annotation colon.
-
-type TArrayPredicate = (el: T, i?:number) => boolean
-// Message: There must be a space after "i" parameter type annotation colon.
-
-type TArrayPredicate = (el: T, i?:  number) => boolean
-// Message: There must be 1 space after "i" parameter type annotation colon.
-
-// Options: ["never"]
-type TArrayPredicate = (el:T, i?: number) => boolean
-// Message: There must be no space after "i" parameter type annotation colon.
-
-class X { foo:string }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { foo: string }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-class X { foo:?string }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { foo: ?string }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-class X { static foo:number }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { static foo: number }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-class X { static foo :number }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { static foo : number }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-declare class X { static foo:number }
-// Message: There must be a space after "foo" type annotation colon.
-
-// Options: ["never"]
-declare class X { static foo: number }
-// Message: There must be no space after "foo" type annotation colon.
-
-declare class X { static foo :number }
-// Message: There must be a space after "foo" type annotation colon.
-
-// Options: ["never"]
-declare class X { static foo : number }
-// Message: There must be no space after "foo" type annotation colon.
-
-class X { +foo:string }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-class X { +foo:  string }
-// Message: There must be 1 space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { +foo: string }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-class X { static +foo:string }
-// Message: There must be a space after "foo" class property type annotation colon.
-
-class X { static +foo:  string }
-// Message: There must be 1 space after "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { static +foo: string }
-// Message: There must be no space after "foo" class property type annotation colon.
-
-type X = { foo:string }
-// Message: There must be a space after "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo:string }
-// Message: There must be a space after "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { foo: string }
-// Message: There must be no space after "foo" type annotation colon.
-
-type X = { foo:  string }
-// Message: There must be 1 space after "foo" type annotation colon.
-
-type X = { foo?:string }
-// Message: There must be a space after "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { foo?: string }
-// Message: There must be no space after "foo" type annotation colon.
-
-type X = { foo?:?string }
-// Message: There must be a space after "foo" type annotation colon.
-
-type X = { foo?:  ?string }
-// Message: There must be 1 space after "foo" type annotation colon.
-
-type Foo = { barType:(string | () => void) }
-// Message: There must be a space after "barType" type annotation colon.
-
-type Foo = { barType:(((string | () => void))) }
-// Message: There must be a space after "barType" type annotation colon.
-
-// Options: ["never"]
-type Foo = { barType: (string | () => void) }
-// Message: There must be no space after "barType" type annotation colon.
-
-type Foo = { barType:  (string | () => void) }
-// Message: There must be 1 space after "barType" type annotation colon.
-
-type Foo = { barType:  ((string | () => void)) }
-// Message: There must be 1 space after "barType" type annotation colon.
-
-type X = { get:() => A; }
-// Message: There must be a space after "get" type annotation colon.
-
-type X = { get:<X>() => A; }
-// Message: There must be a space after "get" type annotation colon.
-
-// Options: ["never"]
-type X = { get: () => A; }
-// Message: There must be no space after "get" type annotation colon.
-
-// Options: ["never"]
-type X = { get: <X>() => A; }
-// Message: There must be no space after "get" type annotation colon.
-
-type X = { get:  () => A; }
-// Message: There must be 1 space after "get" type annotation colon.
-
-type X = { get:  <X>() => A; }
-// Message: There must be 1 space after "get" type annotation colon.
-
-type X = { +foo:string }
-// Message: There must be a space after "foo" type annotation colon.
-
-type X = { +foo:  string }
-// Message: There must be 1 space after "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { +foo: string }
-// Message: There must be no space after "foo" type annotation colon.
-
-type X = { +foo?:string }
-// Message: There must be a space after "foo" type annotation colon.
-
-type X = { +foo?:  string }
-// Message: There must be 1 space after "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { +foo?: string }
-// Message: There must be no space after "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { [a:b]: c }
-// Message: There must be a space after type annotation colon.
-
-// Options: ["never"]
-type X = { [a: b]:c }
-// Message: There must be no space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a:    b]: c }
-// Message: There must be 1 space after type annotation colon.
-
-// Options: ["always"]
-type X = { +[a:b]: c }
-// Message: There must be a space after type annotation colon.
-
-// Options: ["never"]
-type X = { +[a: b]:c }
-// Message: There must be no space after type annotation colon.
-
-// Options: ["always"]
-type X = { +[a:    b]: c }
-// Message: There must be 1 space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a: b]:c }
-// Message: There must be a space after type annotation colon.
-
-// Options: ["never"]
-type X = { [a:b]: c }
-// Message: There must be no space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a: b]:    c }
-// Message: There must be 1 space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a:b]:c }
-// Message: There must be a space after type annotation colon.
-// Message: There must be a space after type annotation colon.
-
-// Options: ["never"]
-type X = { [a: b]: c }
-// Message: There must be no space after type annotation colon.
-// Message: There must be no space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a:  b]:  c }
-// Message: There must be 1 space after type annotation colon.
-// Message: There must be 1 space after type annotation colon.
-
-// Options: ["always"]
-type X = { [a:(b)]:(c) }
-// Message: There must be a space after type annotation colon.
-// Message: There must be a space after type annotation colon.
-
-// Options: ["never"]
-type X = { [a: (b)]: (c) }
-// Message: There must be no space after type annotation colon.
-// Message: There must be no space after type annotation colon.
-
-// Options: ["never"]
-const x = ({}: {})
-// Message: There must be no space after type cast colon.
-
-// Options: ["always"]
-const x = ({}:{})
-// Message: There must be a space after type cast colon.
-
-// Options: ["always"]
-const x = ({}:  {})
-// Message: There must be 1 space after type cast colon.
-
-// Options: ["never"]
-((x): (string))
-// Message: There must be no space after type cast colon.
-
-// Options: ["always"]
-((x):(string))
-// Message: There must be a space after type cast colon.
-
-// Options: ["always"]
-((x):  (string))
-// Message: There must be 1 space after type cast colon.
-
-// Options: ["always"]
-const x:number = 7;
-// Message: There must be a space after const type annotation colon.
-
-// Options: ["always"]
-let x:number = 42;
-// Message: There must be a space after let type annotation colon.
-
-// Options: ["always"]
-var x:number = 42;
-// Message: There must be a space after var type annotation colon.
-```
-
-The following patterns are not considered problems:
-
-```js
-(foo) => {}
-
-(foo: string) => {}
-
-(foo: (string|number)) => {}
-
-// Options: ["never"]
-(foo:string) => {}
-
-// Options: ["always"]
-(foo: string) => {}
-
-// Options: ["never"]
-(foo:(() => void)) => {}
-
-// Options: ["always"]
-(foo: (() => void)) => {}
-
-({ lorem, ipsum, dolor }: SomeType) => {}
-
-(foo: { a: string, b: number }) => {}
-
-({ a, b }: ?{ a: string, b: number }) => {}
-
-([ a, b ]: string[]) => {}
-
-(i?: number) => {}
-
-// Options: ["never"]
-(i?:number) => {}
-
-// Options: ["always",{"allowLineBreak":true}]
-(foo:
-  { a: string, b: number }) => {}
-
-// Options: ["always",{"allowLineBreak":true}]
-(foo:

-  { a: string, b: number }) => {}
-
-// Options: ["never"]
-():Object => {}
-
-// Options: ["always"]
-(): Object => {}
-
-// Options: ["never"]
-():(number | string) => {}
-
-// Options: ["always"]
-(): (number | string) => {}
-
-// Options: ["never"]
-():number|string => {}
-
-// Options: ["always"]
-(): number|string => {}
-
-// Options: ["never"]
-():(() => void) => {}
-
-// Options: ["always"]
-(): (() => void) => {}
-
-// Options: ["never"]
-():( () => void ) => {}
-
-// Options: ["always"]
-(): ( () => void ) => {}
-
-(): { a: number, b: string } => {}
-
-// Options: ["never"]
-() :{ a:number, b:string } => {}
-
-function x(foo: string) {}
-
-class Foo { constructor(foo: string) {} }
-
-// Options: ["never"]
-function x(foo:string) {}
-
-// Options: ["never"]
-class Foo { constructor(foo:string) {} }
-
-async function foo({ lorem, ipsum, dolor }: SomeType) {}
-
-function x({ a, b }: { a: string, b: number }) {}
-
-function x(i?: number) {}
-
-// Options: ["never"]
-function x(i?:number) {}
-
-function a(): x {}
-
-// Options: ["never"]
-function a():x {}
-
-function a(): (number | string) {}
-
-// Options: ["never"]
-function a() :(number | string) {}
-
-type X = (foo: number) => string;
-
-type X = (foo : number) => string;
-
-type X = (foo: ?number) => string;
-
-type X = (foo? : ?number) => string;
-
-type X = (foo: ?{ x: number }) => string;
-
-// Options: ["never"]
-type X = (foo:number) => string;
-
-// Options: ["never"]
-type X = (foo:?{ x:number }) => string;
-
-type X = (foo: (number)) => string
-
-type X = (foo: ((number))) => string
-
-// Options: ["never"]
-type X = (foo:((number))) => string
-
-type X = ?(foo: ((number))) => string
-
-// Options: ["never"]
-type X = ?(foo:((number))) => string
-
-type TArrayPredicate = (el: T, i?: number) => boolean
-
-// Options: ["never"]
-type TArrayPredicate = (el:T, i?:number) => boolean
-
-type X = (number) => string;
-
-type X = (?number) => string;
-
-type X = number => string;
-
-type X = ?number => string;
-
-type X = ({ foo: bar }) => string;
-
-// Options: ["always"]
-type X = (number) => string;
-
-// Options: ["always"]
-type X = (?number) => string;
-
-// Options: ["always"]
-type X = number => string;
-
-// Options: ["always"]
-type X = ?number => string;
-
-// Options: ["always"]
-type X = ({ foo: bar }) => string;
-
-class Foo { bar }
-
-class Foo { bar = 3 }
-
-class Foo { bar: string }
-
-class Foo { bar: ?string }
-
-// Options: ["never"]
-class Foo { bar:string }
-
-// Options: ["never"]
-class Foo { bar:?string }
-
-class X { static foo : number }
-
-// Options: ["never"]
-class X { static foo :number }
-
-declare class X { static foo : number }
-
-// Options: ["never"]
-declare class X { static foo :number }
-
-class X { +foo: string }
-
-class X { static +foo: string }
-
-// Options: ["never"]
-class X { +foo:string }
-
-// Options: ["never"]
-class X { static +foo:string }
-
-type X = { foo: string }
-
-// Options: ["never"]
-type X = { foo:string }
-
-type X = { foo?: string }
-
-type X = { foo?: ?string }
-
-// Options: ["never"]
-type X = { foo?:?string }
-
-type Foo = { barType: (string | () => void) }
-
-type Foo = { barType: ((string | () => void)) }
-
-// Options: ["never"]
-type Foo = { barType:(string | () => void) }
-
-// Options: ["never"]
-type Foo = { barType:((string | () => void)) }
-
-type X = { get(): A; }
-
-type X = { get<X>(): A; }
-
-// Options: ["never"]
-type X = { get(): A; }
-
-// Options: ["never"]
-type X = { get<X>(): A; }
-
-type X = { get: () => A; }
-
-type X = { get: <X>() => A; }
-
-// Options: ["never"]
-type X = { get:() => A; }
-
-// Options: ["never"]
-type X = { get:<X>() => A; }
-
-type X = { +foo: string }
-
-type X = { +foo?: string }
-
-// Options: ["never"]
-type X = { +foo:string }
-
-// Options: ["never"]
-type X = { +foo?:string }
-
-// Options: ["always"]
-type X = { [a: b]: c }
-
-// Options: ["never"]
-type X = { [a:b]:c }
-
-// Options: ["always"]
-type X = { +[a: b]: c }
-
-// Options: ["never"]
-type X = { +[a:b]:c }
-
-// Options: ["always"]
-type X = { [string]: c }
-
-// Options: ["never"]
-type X = { [string]:c }
-
-// Options: ["never"]
-const x = ({}:{})
-
-// Options: ["always"]
-const x = ({}: {})
-
-// Options: ["never"]
-((x):(string))
-
-// Options: ["always"]
-((x): (string))
-
-// Options: ["always"]
-const x: number = 7;
-
-// Options: ["always"]
-let x: number = 42;
-
-// Options: ["always"]
-var x: number = 42;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-space-before-generic-bracket"></a>
-### <code>space-before-generic-bracket</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent spacing before the opening `<` of generic type annotation parameters.
-
-This rule takes one argument. If it is `'never'` then a problem is raised when there is a space before the `<`. If it is `'always'` then a problem is raised when there is no space before the `<`.
-
-The default value is `'never'`.
-
-The following patterns are considered problems:
-
-```js
-type X = Promise <string>
-// Message: There must be no space before "Promise" generic type annotation bracket
-
-// Options: ["never"]
-type X = Promise <string>
-// Message: There must be no space before "Promise" generic type annotation bracket
-
-type X = Promise  <string>
-// Message: There must be no space before "Promise" generic type annotation bracket
-
-// Options: ["always"]
-type X = Promise<string>
-// Message: There must be a space before "Promise" generic type annotation bracket
-
-// Options: ["always"]
-type X = Promise  <string>
-// Message: There must be one space before "Promise" generic type annotation bracket
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = Promise<string>
-
-// Options: ["always"]
-type X = Promise <string>
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-space-before-type-colon"></a>
-### <code>space-before-type-colon</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent spacing before the type annotation colon.
-
-This rule takes one argument. If it is `'always'` then a problem is raised when there is no space before the type annotation colon. If it is `'never'` then a problem is raised when there is a space before the type annotation colon. The default value is `'never'`.
-
-The following patterns are considered problems:
-
-```js
-// Options: ["never"]
-(foo : string) => {}
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["never"]
-(foo ? : string) => {}
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo: string) => {}
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo  : string) => {}
-// Message: There must be 1 space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo?: string) => {}
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo ?  : string) => {}
-// Message: There must be 1 space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-(foo  ?: string) => {}
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-({ lorem, ipsum, dolor } : SomeType) => {}
-// Message: There must be no space before "{ lorem, ipsum, dolor }" parameter type annotation colon.
-
-(foo : { a: string, b: number }) => {}
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-({ a, b } : { a: string, b: number }) => {}
-// Message: There must be no space before "{ a, b }" parameter type annotation colon.
-
-([ a, b ] : string[]) => {}
-// Message: There must be no space before "[ a, b ]" parameter type annotation colon.
-
-() : x => {}
-// Message: There must be no space before return type colon.
-
-// Options: ["always"]
-(): x => {}
-// Message: There must be a space before return type colon.
-
-// Options: ["always"]
-()  : x => {}
-// Message: There must be 1 space before return type colon.
-
-function x(foo : string) {}
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-function x(foo: string) {}
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-var x = function (foo : string) {}
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-var x = function (foo: string) {}
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-class Foo { constructor(foo : string ) {} }
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-class Foo { constructor(foo: string ) {} }
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-async function foo({ lorem, ipsum, dolor } : SomeType) {}
-// Message: There must be no space before "{ lorem, ipsum, dolor }" parameter type annotation colon.
-
-function a() : x {}
-// Message: There must be no space before return type colon.
-
-// Options: ["always"]
-function a(): x {}
-// Message: There must be a space before return type colon.
-
-// Options: ["always"]
-function a()  : x {}
-// Message: There must be 1 space before return type colon.
-
-type X = (foo :string) => string;
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-type X = (foo:string) => string;
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-type X = (foo  :string) => string;
-// Message: There must be 1 space before "foo" parameter type annotation colon.
-
-type X = (foo? :string) => string;
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-type X = (foo?     :string) => string;
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-// Options: ["always"]
-type X = (foo?:string) => string;
-// Message: There must be a space before "foo" parameter type annotation colon.
-
-type X = (foo? :?string) => string;
-// Message: There must be no space before "foo" parameter type annotation colon.
-
-class X { foo :string }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { foo: string }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-class X { foo :?string }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { foo: ?string }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-class X { static foo : number }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-class X { static foo :number }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { static foo: number }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { static foo:number }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-declare class Foo { static bar :number; }
-// Message: There must be no space before "bar" type annotation colon.
-
-declare class Foo { static bar : number; }
-// Message: There must be no space before "bar" type annotation colon.
-
-// Options: ["always"]
-declare class Foo { static bar:number; }
-// Message: There must be a space before "bar" type annotation colon.
-
-// Options: ["always"]
-declare class Foo { static bar: number; }
-// Message: There must be a space before "bar" type annotation colon.
-
-// Options: ["always"]
-class X { +foo: string }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { +foo  : string }
-// Message: There must be 1 space before "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { +foo : string }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { static +foo: string }
-// Message: There must be a space before "foo" class property type annotation colon.
-
-// Options: ["always"]
-class X { static +foo  : string }
-// Message: There must be 1 space before "foo" class property type annotation colon.
-
-// Options: ["never"]
-class X { static +foo : string }
-// Message: There must be no space before "foo" class property type annotation colon.
-
-type X = { foo : string }
-// Message: There must be no space before "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { foo : string }
-// Message: There must be no space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo: string }
-// Message: There must be a space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo  : string }
-// Message: There must be 1 space before "foo" type annotation colon.
-
-type X = { foo? : string }
-// Message: There must be no space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo?: string }
-// Message: There must be a space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo?  : string }
-// Message: There must be 1 space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { foo   ?: string }
-// Message: There must be a space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { +foo: string }
-// Message: There must be a space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { +foo  : string }
-// Message: There must be 1 space before "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { +foo : string }
-// Message: There must be no space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { +foo?: string }
-// Message: There must be a space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { +foo?  : string }
-// Message: There must be 1 space before "foo" type annotation colon.
-
-// Options: ["never"]
-type X = { +foo? : string }
-// Message: There must be no space before "foo" type annotation colon.
-
-// Options: ["always"]
-type X = { [a: b] : c }
-// Message: There must be a space before type annotation colon.
-
-// Options: ["never"]
-type X = { [a : b]: c }
-// Message: There must be no space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a  : b] : c }
-// Message: There must be 1 space before type annotation colon.
-
-// Options: ["always"]
-type X = { +[a:b] : c }
-// Message: There must be a space before type annotation colon.
-
-// Options: ["never"]
-type X = { +[a : b]: c }
-// Message: There must be no space before type annotation colon.
-
-// Options: ["always"]
-type X = { +[a  : b] : c }
-// Message: There must be 1 space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a : b]: c }
-// Message: There must be a space before type annotation colon.
-
-// Options: ["never"]
-type X = { [a: b] : c }
-// Message: There must be no space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a : b]  : c }
-// Message: There must be 1 space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a:b]:c }
-// Message: There must be a space before type annotation colon.
-// Message: There must be a space before type annotation colon.
-
-// Options: ["never"]
-type X = { [a : b] : c }
-// Message: There must be no space before type annotation colon.
-// Message: There must be no space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a  : b]  : c }
-// Message: There must be 1 space before type annotation colon.
-// Message: There must be 1 space before type annotation colon.
-
-// Options: ["always"]
-type X = { [a:(b)]:(c) }
-// Message: There must be a space before type annotation colon.
-// Message: There must be a space before type annotation colon.
-
-// Options: ["never"]
-type X = { [a : (b)] : (c) }
-// Message: There must be no space before type annotation colon.
-// Message: There must be no space before type annotation colon.
-
-// Options: ["never"]
-const x = ({} :{})
-// Message: There must be no space before type cast colon.
-
-// Options: ["always"]
-const x = ({}:{})
-// Message: There must be a space before type cast colon.
-
-// Options: ["always"]
-const x = ({}  :{})
-// Message: There must be 1 space before type cast colon.
-
-// Options: ["never"]
-((x) : string)
-// Message: There must be no space before type cast colon.
-
-// Options: ["always"]
-((x): string)
-// Message: There must be a space before type cast colon.
-
-// Options: ["always"]
-((x)  : string)
-// Message: There must be 1 space before type cast colon.
-
-// Options: ["always"]
-const x:number = 7;
-// Message: There must be a space before const type annotation colon.
-
-// Options: ["always"]
-let x:number = 42;
-// Message: There must be a space before let type annotation colon.
-
-// Options: ["always"]
-var x:number = 42;
-// Message: There must be a space before var type annotation colon.
-```
-
-The following patterns are not considered problems:
-
-```js
-(foo) => {}
-
-(foo: string) => {}
-
-(foo?: string) => {}
-
-(foo ?: string) => {}
-
-// Options: ["never"]
-(foo: string) => {}
-
-// Options: ["always"]
-(foo : string) => {}
-
-// Options: ["always"]
-(foo? : string) => {}
-
-// Options: ["always"]
-(foo ? : string) => {}
-
-// Options: ["always"]
-(foo  ? : string) => {}
-
-({ lorem, ipsum, dolor }: SomeType) => {}
-
-(foo: { a: string, b: number }) => {}
-
-({ a, b }: ?{ a: string, b: number }) => {}
-
-(): { a: number, b: string } => {}
-
-// Options: ["always"]
-() : { a : number, b : string } => {}
-
-([ a, b ]: string[]) => {}
-
-(): x => {}
-
-// Options: ["always"]
-() : x => {}
-
-(): (number | string) => {}
-
-// Options: ["always"]
-() : (number | string) => {}
-
-function x(foo: string) {}
-
-// Options: ["always"]
-function x(foo : string) {}
-
-var x = function (foo: string) {}
-
-// Options: ["always"]
-var x = function (foo : string) {}
-
-class X { foo({ bar }: Props = this.props) {} }
-
-class Foo { constructor(foo: string ) {} }
-
-// Options: ["always"]
-class Foo { constructor(foo : string ) {} }
-
-async function foo({ lorem, ipsum, dolor }: SomeType) {}
-
-function x({ a, b }: { a: string, b: number }) {}
-
-function a(): x {}
-
-// Options: ["always"]
-function a() : x {}
-
-function a(): (number | string) {}
-
-// Options: ["always"]
-function a() : (number | string) {}
-
-type X = (foo:string) => number;
-
-type X = (foo: string) => number;
-
-type X = (foo: ?string) => number;
-
-type X = (foo?: string) => number;
-
-type X = (foo?: ?string) => number;
-
-type X = (foo   ?: string) => number;
-
-// Options: ["always"]
-type X = (foo? : string) => number
-
-// Options: ["always"]
-type X = (foo? : ?string) => number
-
-type X = (number) => string;
-
-type X = (?number) => string;
-
-type X = number => string;
-
-type X = ?number => string;
-
-type X = ({ foo: bar }) => string;
-
-// Options: ["always"]
-type X = (number) => string;
-
-// Options: ["always"]
-type X = (?number) => string;
-
-// Options: ["always"]
-type X = number => string;
-
-// Options: ["always"]
-type X = ?number => string;
-
-// Options: ["always"]
-type X = ({ foo : bar }) => string;
-
-class Foo { bar }
-
-class Foo { bar = 3 }
-
-class Foo { bar: string }
-
-class Foo { bar: ?string }
-
-class Foo { bar:?string }
-
-// Options: ["always"]
-class Foo { bar : string }
-
-class X { static foo:number }
-
-class X { static foo: number }
-
-// Options: ["always"]
-class X { static foo :number }
-
-// Options: ["always"]
-class X { static foo : number }
-
-declare class Foo { static bar:number; }
-
-// Options: ["always"]
-declare class Foo { static bar :number; }
-
-declare class Foo { static bar: number; }
-
-// Options: ["always"]
-declare class Foo { static bar : number; }
-
-class X { +foo: string }
-
-class X { static +foo: string }
-
-// Options: ["always"]
-class X { +foo : string }
-
-// Options: ["always"]
-class X { static +foo : string }
-
-type X = { foo: string }
-
-// Options: ["always"]
-type X = { foo : string }
-
-type X = { foo?: string }
-
-type X = { foo   ?: string }
-
-// Options: ["always"]
-type X = { foo? : string }
-
-type X = { +foo: string }
-
-type X = { +foo?: string }
-
-// Options: ["always"]
-type X = { +foo : string }
-
-// Options: ["always"]
-type X = { +foo? : string }
-
-// Options: ["always"]
-type X = { [a : b] : c }
-
-// Options: ["never"]
-type X = { [a:b]:c }
-
-// Options: ["always"]
-type X = { [string] : c }
-
-// Options: ["never"]
-type X = { [string]:c }
-
-// Options: ["always"]
-type X = { +[a : b] : c }
-
-// Options: ["never"]
-type X = { +[a:b]:c }
-
-// Options: ["always"]
-type X = { [a : (b)] : (c) }
-
-// Options: ["never"]
-type X = { [a:(b)]:(c) }
-
-// Options: ["never"]
-const x = ({}:{})
-
-// Options: ["always"]
-const x = ({} :{})
-
-// Options: ["never"]
-((x): string)
-
-// Options: ["always"]
-((x) : string)
-
-// Options: ["always"]
-const x :number = 7;
-
-// Options: ["always"]
-let x :number = 42;
-
-// Options: ["always"]
-var x :number = 42;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-spread-exact-type"></a>
-### <code>spread-exact-type</code>
-
-Enforce object types, that are spread to be exact type explicitly.
-
-The following patterns are considered problems:
-
-```js
-type bar = {...{test: string}}
-// Message: Use $Exact to make type spreading safe.
-
-type foo = {test: number}; type bar = {...foo}
-// Message: Use $Exact to make type spreading safe.
-```
-
-The following patterns are not considered problems:
-
-```js
-type bar = {...$Exact<{test: string}>}
-
-type foo = {test: number}; type bar = {...$Exact<foo>}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-type-id-match"></a>
-### <code>type-id-match</code>
-
-Enforces a consistent naming pattern for type aliases.
-
-<a name="eslint-plugin-flowtype-rules-type-id-match-options-13"></a>
-#### Options
-
-This rule needs a text RegExp to operate with Its signature is as follows:
-
-```js
-{
-    "rules": {
-        "flowtype/type-id-match": [
-            2,
-            "^([A-Z][a-z0-9]*)+Type$"
-        ]
-    }
-}
-```
-
-`'^([A-Z][a-z0-9]*)+Type$$'` is the default pattern.
-
-The following patterns are considered problems:
-
-```js
-type foo = {};
-// Message: Type identifier 'foo' does not match pattern '/^([A-Z][a-z0-9]*)+Type$/'.
-
-// Options: ["^foo$"]
-type FooType = {};
-// Message: Type identifier 'FooType' does not match pattern '/^foo$/'.
-```
-
-The following patterns are not considered problems:
-
-```js
-type FooType = {};
-
-// Options: ["^foo$"]
-type foo = {};
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type foo = {};
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-type-import-style"></a>
-### <code>type-import-style</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces a particular style for type imports:
-
-```
-// 'identifier' style
-import {type T, type U, type V} from '...';
-
-// 'declaration' style
-import type {T, U, V} from '...';
-```
-
-<a name="eslint-plugin-flowtype-rules-type-import-style-options-14"></a>
-#### Options
-
-The rule has a string option:
-
-* `"identifier"` (default): Enforces that type imports are all in the
-  'identifier' style.
-* `"declaration"`: Enforces that type imports are all in the 'declaration'
-  style.
-
-This rule has an object option:
-
-* `ignoreTypeDefault` - if `true`, when in "identifier" mode, default type imports will be ignored. Default is `false`.
-
-The following patterns are considered problems:
-
-```js
-import type {A, B} from 'a';
-// Message: Unexpected "import type"
-
-// Options: ["identifier"]
-import type {A, B} from 'a';
-// Message: Unexpected "import type"
-
-// Options: ["identifier"]
-import type {A, B as C} from 'a';
-// Message: Unexpected "import type"
-
-// Options: ["identifier"]
-import type A from 'a';
-// Message: Unexpected "import type"
-
-// Options: ["declaration"]
-import {type A, type B} from 'a';
-// Message: Unexpected type import
-// Message: Unexpected type import
-```
-
-The following patterns are not considered problems:
-
-```js
-import {type A, type B} from 'a';
-
-// Options: ["identifier"]
-import {type A, type B} from 'a';
-
-// Options: ["declaration"]
-import type {A, B} from 'a';
-
-// Options: ["identifier"]
-import typeof * as A from 'a';
-
-// Options: ["identifier",{"ignoreTypeDefault":true}]
-import type A from 'a';
-
-// Options: ["identifier"]
-declare module "m" { import type A from 'a'; }
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-union-intersection-spacing"></a>
-### <code>union-intersection-spacing</code>
-
-_The `--fix` option on the command line automatically fixes problems reported by this rule._
-
-Enforces consistent spacing around union and intersection type separators (`|` and `&`).
-
-This rule takes one argument. If it is `'always'` then a problem is raised when there is no space around the separator. If it is `'never'` then a problem is raised when there is a space around the separator.
-
-The default value is `'always'`.
-
-The following patterns are considered problems:
-
-```js
-type X = string| number;
-// Message: There must be a space before union type annotation separator
-
-// Options: ["always"]
-type X = string| number;
-// Message: There must be a space before union type annotation separator
-
-type X = string |number;
-// Message: There must be a space after union type annotation separator
-
-type X = string|number;
-// Message: There must be a space before union type annotation separator
-// Message: There must be a space after union type annotation separator
-
-type X = {x: string}|{y: number};
-// Message: There must be a space before union type annotation separator
-// Message: There must be a space after union type annotation separator
-
-type X = string | number |boolean;
-// Message: There must be a space after union type annotation separator
-
-type X = string|number|boolean;
-// Message: There must be a space before union type annotation separator
-// Message: There must be a space after union type annotation separator
-// Message: There must be a space before union type annotation separator
-// Message: There must be a space after union type annotation separator
-
-type X = (string)| number;
-// Message: There must be a space before union type annotation separator
-
-type X = ((string))|(number | foo);
-// Message: There must be a space before union type annotation separator
-// Message: There must be a space after union type annotation separator
-
-// Options: ["never"]
-type X = string |number;
-// Message: There must be no space before union type annotation separator
-
-// Options: ["never"]
-type X = string| number;
-// Message: There must be no space after union type annotation separator
-
-type X = string& number;
-// Message: There must be a space before intersection type annotation separator
-
-// Options: ["always"]
-type X = string& number;
-// Message: There must be a space before intersection type annotation separator
-
-type X = string &number;
-// Message: There must be a space after intersection type annotation separator
-
-type X = {x: string}&{y: number};
-// Message: There must be a space before intersection type annotation separator
-// Message: There must be a space after intersection type annotation separator
-
-type X = string&number;
-// Message: There must be a space before intersection type annotation separator
-// Message: There must be a space after intersection type annotation separator
-
-type X = string & number &boolean;
-// Message: There must be a space after intersection type annotation separator
-
-type X = string&number&boolean;
-// Message: There must be a space before intersection type annotation separator
-// Message: There must be a space after intersection type annotation separator
-// Message: There must be a space before intersection type annotation separator
-// Message: There must be a space after intersection type annotation separator
-
-type X = (string)& number;
-// Message: There must be a space before intersection type annotation separator
-
-type X = ((string))&(number & foo);
-// Message: There must be a space before intersection type annotation separator
-// Message: There must be a space after intersection type annotation separator
-
-// Options: ["never"]
-type X = string &number;
-// Message: There must be no space before intersection type annotation separator
-
-// Options: ["never"]
-type X = string& number;
-// Message: There must be no space after intersection type annotation separator
-```
-
-The following patterns are not considered problems:
-
-```js
-type X = string | number;
-
-type X = string | number | boolean;
-
-type X = (string) | number;
-
-type X = ((string)) | (number | foo);
-
-// Options: ["never"]
-type X = string|number
-
-type X =
-| string
-| number
-
-function x() {
-type X =
-| string
-| number
-}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type X = string| number;
-
-type X = string & number;
-
-type X = string & number & boolean;
-
-type X = (string) & number;
-
-type X = ((string)) & (number & foo);
-
-// Options: ["never"]
-type X = string&number
-
-type X =
-& string
-& number
-
-function x() {
-type X =
-& string
-& number
-}
-
-// Settings: {"flowtype":{"onlyFilesWithFlowAnnotation":true}}
-type X = string& number;
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-use-flow-type"></a>
-### <code>use-flow-type</code>
-
-Marks Flow [type alias](https://flowtype.org/docs/type-aliases.html) declarations as used.
-
-Used to suppress [`no-unused-vars`](http://eslint.org/docs/rules/no-unused-vars) errors that are triggered by type aliases.
-
-The following patterns are not considered problems:
-
-```js
-declare class A {}
-// Additional rules: {"no-unused-vars":1}
-
-declare function A(): Y
-// Additional rules: {"no-unused-vars":1}
-
-declare module A {}
-// Additional rules: {"no-unused-vars":1}
-
-declare module A { declare var a: Y }
-// Additional rules: {"no-unused-vars":1}
-
-declare var A: Y
-// Additional rules: {"no-unused-vars":1}
-
-import type A from "a"; type X<B = ComponentType<A>> = { b: B }; let x: X; console.log(x);
-// Additional rules: {"no-unused-vars":1}
-
-import type A from "a"; type X<B = A<string>> = { b: B }; let x: X; console.log(x);
-// Additional rules: {"no-unused-vars":1}
-```
-
-
-
-<a name="eslint-plugin-flowtype-rules-valid-syntax"></a>
-### <code>valid-syntax</code>
-
-**Deprecated** Babylon (the Babel parser) v6.10.0 fixes parsing of the invalid syntax this plugin warned against.
-
-Checks for simple Flow syntax errors.
-
-The following patterns are not considered problems:
-
-```js
-function x(foo: string = "1") {}
-
-function x(foo: Type = bar()) {}
-```
-
-
-
diff --git a/node_modules/eslint-plugin-flowtype/dist/bin/addAssertions.js b/node_modules/eslint-plugin-flowtype/dist/bin/addAssertions.js
deleted file mode 100644
index 64de451..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/bin/addAssertions.js
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _fs = require('fs');
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _glob = require('glob');
-
-var _glob2 = _interopRequireDefault(_glob);
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * @file This script is used to inline assertions into the README.md documents.
- */
-
-var formatCodeSnippet = function formatCodeSnippet(setup) {
-  var paragraphs = [];
-
-  if (setup.options) {
-    paragraphs.push('// Options: ' + JSON.stringify(setup.options));
-  }
-
-  if (setup.settings) {
-    paragraphs.push('// Settings: ' + JSON.stringify(setup.settings));
-  }
-
-  paragraphs.push(setup.code);
-
-  if (setup.errors) {
-    setup.errors.forEach(function (message) {
-      paragraphs.push('// Message: ' + message.message);
-    });
-  }
-
-  if (setup.rules) {
-    paragraphs.push('// Additional rules: ' + JSON.stringify(setup.rules));
-  }
-
-  return paragraphs.join('\n');
-};
-
-var getAssertions = function getAssertions() {
-  var assertionFiles = _glob2.default.sync(_path2.default.resolve(__dirname, '../../tests/rules/assertions/*.js'));
-
-  var assertionNames = _lodash2.default.map(assertionFiles, function (filePath) {
-    return _path2.default.basename(filePath, '.js');
-  });
-
-  var assertionCodes = _lodash2.default.map(assertionFiles, function (filePath) {
-    // eslint-disable-next-line global-require, import/no-dynamic-require
-    var codes = require(filePath);
-
-    return {
-      invalid: _lodash2.default.map(codes.invalid, formatCodeSnippet),
-      valid: _lodash2.default.map(codes.valid, formatCodeSnippet)
-    };
-  });
-
-  return _lodash2.default.zipObject(assertionNames, assertionCodes);
-};
-
-var updateDocuments = function updateDocuments(assertions) {
-  var readmeDocumentPath = _path2.default.join(__dirname, '../../README.md');
-  var documentBody = void 0;
-
-  documentBody = _fs2.default.readFileSync(readmeDocumentPath, 'utf8');
-
-  documentBody = documentBody.replace(/<!-- assertions ([a-z]+?) -->/ig, function (assertionsBlock) {
-    var exampleBody = void 0;
-
-    var ruleName = assertionsBlock.match(/assertions ([a-z]+)/i)[1];
-
-    var ruleAssertions = assertions[ruleName];
-
-    if (!ruleAssertions) {
-      throw new Error('No assertions available for rule "' + ruleName + '".');
-    }
-
-    exampleBody = '';
-
-    if (ruleAssertions.invalid.length) {
-      exampleBody += 'The following patterns are considered problems:\n\n```js\n' + ruleAssertions.invalid.join('\n\n') + '\n```\n\n';
-    }
-
-    if (ruleAssertions.valid.length) {
-      exampleBody += 'The following patterns are not considered problems:\n\n```js\n' + ruleAssertions.valid.join('\n\n') + '\n```\n\n';
-    }
-
-    return exampleBody;
-  });
-
-  _fs2.default.writeFileSync(readmeDocumentPath, documentBody);
-};
-
-updateDocuments(getAssertions());
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/bin/checkDocs.js b/node_modules/eslint-plugin-flowtype/dist/bin/checkDocs.js
deleted file mode 100644
index 5278dea..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/bin/checkDocs.js
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-var _fs = require('fs');
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _utilities = require('./utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var windows = function windows(array, size) {
-  var output = [];
-
-  for (var ii = 0; ii < array.length - size + 1; ii++) {
-    output.push(array.slice(ii, ii + size));
-  }
-
-  return output;
-};
-
-// @flow
-
-var getDocIndexRules = function getDocIndexRules() {
-  var content = _fs2.default.readFileSync(_path2.default.resolve(__dirname, '../../.README/README.md'), 'utf-8');
-
-  var rules = content.split('\n').map(function (line) {
-    var match = /^{"gitdown": "include", "file": "([^"]+)"}$/.exec(line);
-
-    if (match === null) {
-      return null;
-    } else {
-      return match[1].replace('./rules/', '').replace('.md', '');
-    }
-  }).filter(function (rule) {
-    return rule !== null;
-  });
-
-  if (rules.length === 0) {
-    throw new Error('Docs checker is broken - it could not extract rules from docs index file.');
-  }
-
-  return rules;
-};
-
-var hasCorrectAssertions = function hasCorrectAssertions(docPath, name) {
-  var content = _fs2.default.readFileSync(docPath, 'utf-8');
-
-  var match = /<!-- assertions ([a-zA-Z]+) -->/.exec(content);
-
-  if (match === null) {
-    return false;
-  } else {
-    return match[1] === name;
-  }
-};
-
-/**
- * Performed checks:
- *  - file `/.README/rules/<rule>.md` exists
- *  - file `/.README/rules/<rule>.md` contains correct assertions placeholder (`<!-- assertions ... -->`)
- *  - rule is included in gitdown directive in `/.README/README.md`
- *  - rules in `/.README/README.md` are alphabetically sorted
- */
-var checkDocs = function checkDocs(rulesNames) {
-  var docIndexRules = getDocIndexRules();
-
-  var sorted = windows(docIndexRules, 2).every(function (chunk) {
-    return chunk[0] < chunk[1];
-  });
-
-  if (!sorted) {
-    throw new Error('Rules are not alphabetically sorted in `.README/README.md` file.');
-  }
-
-  var invalid = rulesNames.filter(function (names) {
-    var docPath = _path2.default.resolve(__dirname, '../../.README/rules', names[1] + '.md');
-    var docExists = (0, _utilities.isFile)(docPath);
-    var inIndex = docIndexRules.includes(names[1]);
-    var hasAssertions = docExists ? hasCorrectAssertions(docPath, names[0]) : false;
-
-    return !(docExists && inIndex && hasAssertions);
-  });
-
-  if (invalid.length > 0) {
-    var invalidList = invalid.map(function (names) {
-      return names[0];
-    }).join(', ');
-
-    throw new Error('Docs checker encountered an error in: ' + invalidList + '. ' + 'Make sure that for every rule you created documentation file with assertions placeholder in camelCase ' + 'and included the file path in `.README/README.md` file.');
-  }
-};
-
-checkDocs((0, _utilities.getRules)());
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/bin/checkTests.js b/node_modules/eslint-plugin-flowtype/dist/bin/checkTests.js
deleted file mode 100644
index f9631ce..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/bin/checkTests.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-
-var _fs = require('fs');
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _utilities = require('./utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var getTestIndexRules = function getTestIndexRules() {
-  var content = _fs2.default.readFileSync(_path2.default.resolve(__dirname, '../../tests/rules/index.js'), 'utf-8');
-
-  var result = content.split('\n').reduce(function (acc, line) {
-    if (acc.inRulesArray) {
-      if (line === '];') {
-        acc.inRulesArray = false;
-      } else {
-        acc.rules.push(line.replace(/^\s*'([^']+)',?$/, '$1'));
-      }
-    } else if (line === 'const reportingRules = [') {
-      acc.inRulesArray = true;
-    }
-
-    return acc;
-  }, {
-    inRulesArray: false,
-    rules: []
-  });
-
-  var rules = result.rules;
-
-  if (rules.length === 0) {
-    throw new Error('Tests checker is broken - it could not extract rules from test index file.');
-  }
-
-  return rules;
-};
-
-/**
- * Performed checks:
- *  - file `/tests/rules/assertions/<rule>.js` exists
- *  - rule is included in `reportingRules` variable in `/tests/rules/index.js`
- */
-// @flow
-
-var checkTests = function checkTests(rulesNames) {
-  var testIndexRules = getTestIndexRules();
-
-  var invalid = rulesNames.filter(function (names) {
-    var testExists = (0, _utilities.isFile)(_path2.default.resolve(__dirname, '../../tests/rules/assertions', names[0] + '.js'));
-    var inIndex = testIndexRules.includes(names[1]);
-
-    return !(testExists && inIndex);
-  });
-
-  if (invalid.length > 0) {
-    var invalidList = invalid.map(function (names) {
-      return names[0];
-    }).join(', ');
-
-    throw new Error('Tests checker encountered an error in: ' + invalidList + '. ' + 'Make sure that for every rule you created test suite and included the rule name in `tests/rules/index.js` file.');
-  }
-};
-
-checkTests((0, _utilities.getRules)());
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/bin/utilities.js b/node_modules/eslint-plugin-flowtype/dist/bin/utilities.js
deleted file mode 100644
index 6639bdb..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/bin/utilities.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isFile = exports.getRules = undefined;
-
-var _fs = require('fs');
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _glob = require('glob');
-
-var _glob2 = _interopRequireDefault(_glob);
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// @flow
-
-var getRules = exports.getRules = function getRules() {
-  var rulesFiles = _glob2.default.sync(_path2.default.resolve(__dirname, '../rules/*.js'));
-
-  var rulesNames = rulesFiles.map(function (file) {
-    return _path2.default.basename(file, '.js');
-  }).map(function (name) {
-    return [name, _lodash2.default.kebabCase(name)];
-  });
-
-  return rulesNames;
-};
-
-var isFile = exports.isFile = function isFile(filepath) {
-  try {
-    return _fs2.default.statSync(filepath).isFile();
-  } catch (error) {
-    return false;
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json b/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json
deleted file mode 100644
index 13cc76e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/configs/recommended.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
-  "parser": "babel-eslint",
-  "plugins": [
-    "flowtype"
-  ],
-  "rules": {
-    "flowtype/boolean-style": [
-      2,
-      "boolean"
-    ],
-    "flowtype/define-flow-type": 1,
-    "flowtype/delimiter-dangle": 0,
-    "flowtype/generic-spacing": [
-      2,
-      "never"
-    ],
-    "flowtype/no-mixed": 0,
-    "flowtype/no-types-missing-file-annotation": 2,
-    "flowtype/no-weak-types": 0,
-    "flowtype/require-parameter-type": 0,
-    "flowtype/require-readonly-react-props": 0,
-    "flowtype/require-return-type": 0,
-    "flowtype/require-valid-file-annotation": 0,
-    "flowtype/semi": 0,
-    "flowtype/space-after-type-colon": [
-      2,
-      "always"
-    ],
-    "flowtype/space-before-generic-bracket": [
-      2,
-      "never"
-    ],
-    "flowtype/space-before-type-colon": [
-      2,
-      "never"
-    ],
-    "flowtype/type-id-match": 0,
-    "flowtype/union-intersection-spacing": [
-      2,
-      "always"
-    ],
-    "flowtype/use-flow-type": 1
-  },
-  "settings": {
-    "flowtype": {
-      "onlyFilesWithFlowAnnotation": false
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-flowtype/dist/index.js b/node_modules/eslint-plugin-flowtype/dist/index.js
deleted file mode 100644
index 17ca4b7..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/index.js
+++ /dev/null
@@ -1,263 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _recommended = require('./configs/recommended.json');
-
-var _recommended2 = _interopRequireDefault(_recommended);
-
-var _arrayStyleComplexType = require('./rules/arrayStyleComplexType');
-
-var _arrayStyleComplexType2 = _interopRequireDefault(_arrayStyleComplexType);
-
-var _arrayStyleSimpleType = require('./rules/arrayStyleSimpleType');
-
-var _arrayStyleSimpleType2 = _interopRequireDefault(_arrayStyleSimpleType);
-
-var _booleanStyle = require('./rules/booleanStyle');
-
-var _booleanStyle2 = _interopRequireDefault(_booleanStyle);
-
-var _defineFlowType = require('./rules/defineFlowType');
-
-var _defineFlowType2 = _interopRequireDefault(_defineFlowType);
-
-var _delimiterDangle = require('./rules/delimiterDangle');
-
-var _delimiterDangle2 = _interopRequireDefault(_delimiterDangle);
-
-var _genericSpacing = require('./rules/genericSpacing');
-
-var _genericSpacing2 = _interopRequireDefault(_genericSpacing);
-
-var _newlineAfterFlowAnnotation = require('./rules/newlineAfterFlowAnnotation');
-
-var _newlineAfterFlowAnnotation2 = _interopRequireDefault(_newlineAfterFlowAnnotation);
-
-var _noDupeKeys = require('./rules/noDupeKeys');
-
-var _noDupeKeys2 = _interopRequireDefault(_noDupeKeys);
-
-var _noExistentialType = require('./rules/noExistentialType');
-
-var _noExistentialType2 = _interopRequireDefault(_noExistentialType);
-
-var _noFlowFixMeComments = require('./rules/noFlowFixMeComments');
-
-var _noFlowFixMeComments2 = _interopRequireDefault(_noFlowFixMeComments);
-
-var _noMutableArray = require('./rules/noMutableArray');
-
-var _noMutableArray2 = _interopRequireDefault(_noMutableArray);
-
-var _noPrimitiveConstructorTypes = require('./rules/noPrimitiveConstructorTypes');
-
-var _noPrimitiveConstructorTypes2 = _interopRequireDefault(_noPrimitiveConstructorTypes);
-
-var _noTypesMissingFileAnnotation = require('./rules/noTypesMissingFileAnnotation');
-
-var _noTypesMissingFileAnnotation2 = _interopRequireDefault(_noTypesMissingFileAnnotation);
-
-var _noUnusedExpressions = require('./rules/noUnusedExpressions');
-
-var _noUnusedExpressions2 = _interopRequireDefault(_noUnusedExpressions);
-
-var _noWeakTypes = require('./rules/noWeakTypes');
-
-var _noWeakTypes2 = _interopRequireDefault(_noWeakTypes);
-
-var _noMixed = require('./rules/noMixed');
-
-var _noMixed2 = _interopRequireDefault(_noMixed);
-
-var _objectTypeDelimiter = require('./rules/objectTypeDelimiter');
-
-var _objectTypeDelimiter2 = _interopRequireDefault(_objectTypeDelimiter);
-
-var _requireIndexerName = require('./rules/requireIndexerName');
-
-var _requireIndexerName2 = _interopRequireDefault(_requireIndexerName);
-
-var _requireCompoundTypeAlias = require('./rules/requireCompoundTypeAlias');
-
-var _requireCompoundTypeAlias2 = _interopRequireDefault(_requireCompoundTypeAlias);
-
-var _requireInexactType = require('./rules/requireInexactType');
-
-var _requireInexactType2 = _interopRequireDefault(_requireInexactType);
-
-var _requireExactType = require('./rules/requireExactType');
-
-var _requireExactType2 = _interopRequireDefault(_requireExactType);
-
-var _requireParameterType = require('./rules/requireParameterType');
-
-var _requireParameterType2 = _interopRequireDefault(_requireParameterType);
-
-var _requireReadonlyReactProps = require('./rules/requireReadonlyReactProps');
-
-var _requireReadonlyReactProps2 = _interopRequireDefault(_requireReadonlyReactProps);
-
-var _requireReturnType = require('./rules/requireReturnType');
-
-var _requireReturnType2 = _interopRequireDefault(_requireReturnType);
-
-var _requireTypesAtTop = require('./rules/requireTypesAtTop');
-
-var _requireTypesAtTop2 = _interopRequireDefault(_requireTypesAtTop);
-
-var _requireValidFileAnnotation = require('./rules/requireValidFileAnnotation');
-
-var _requireValidFileAnnotation2 = _interopRequireDefault(_requireValidFileAnnotation);
-
-var _requireVariableType = require('./rules/requireVariableType');
-
-var _requireVariableType2 = _interopRequireDefault(_requireVariableType);
-
-var _semi = require('./rules/semi');
-
-var _semi2 = _interopRequireDefault(_semi);
-
-var _sortKeys = require('./rules/sortKeys');
-
-var _sortKeys2 = _interopRequireDefault(_sortKeys);
-
-var _spaceAfterTypeColon = require('./rules/spaceAfterTypeColon');
-
-var _spaceAfterTypeColon2 = _interopRequireDefault(_spaceAfterTypeColon);
-
-var _spaceBeforeGenericBracket = require('./rules/spaceBeforeGenericBracket');
-
-var _spaceBeforeGenericBracket2 = _interopRequireDefault(_spaceBeforeGenericBracket);
-
-var _spaceBeforeTypeColon = require('./rules/spaceBeforeTypeColon');
-
-var _spaceBeforeTypeColon2 = _interopRequireDefault(_spaceBeforeTypeColon);
-
-var _typeIdMatch = require('./rules/typeIdMatch');
-
-var _typeIdMatch2 = _interopRequireDefault(_typeIdMatch);
-
-var _typeImportStyle = require('./rules/typeImportStyle');
-
-var _typeImportStyle2 = _interopRequireDefault(_typeImportStyle);
-
-var _unionIntersectionSpacing = require('./rules/unionIntersectionSpacing');
-
-var _unionIntersectionSpacing2 = _interopRequireDefault(_unionIntersectionSpacing);
-
-var _useFlowType = require('./rules/useFlowType');
-
-var _useFlowType2 = _interopRequireDefault(_useFlowType);
-
-var _validSyntax = require('./rules/validSyntax');
-
-var _validSyntax2 = _interopRequireDefault(_validSyntax);
-
-var _spreadExactType = require('./rules/spreadExactType');
-
-var _spreadExactType2 = _interopRequireDefault(_spreadExactType);
-
-var _arrowParens = require('./rules/arrowParens');
-
-var _arrowParens2 = _interopRequireDefault(_arrowParens);
-
-var _utilities = require('./utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var rules = {
-  'array-style-complex-type': _arrayStyleComplexType2.default,
-  'array-style-simple-type': _arrayStyleSimpleType2.default,
-  'arrow-parens': _arrowParens2.default,
-  'boolean-style': _booleanStyle2.default,
-  'define-flow-type': _defineFlowType2.default,
-  'delimiter-dangle': _delimiterDangle2.default,
-  'generic-spacing': _genericSpacing2.default,
-  'newline-after-flow-annotation': _newlineAfterFlowAnnotation2.default,
-  'no-dupe-keys': _noDupeKeys2.default,
-  'no-existential-type': _noExistentialType2.default,
-  'no-flow-fix-me-comments': _noFlowFixMeComments2.default,
-  'no-mixed': _noMixed2.default,
-  'no-mutable-array': _noMutableArray2.default,
-  'no-primitive-constructor-types': _noPrimitiveConstructorTypes2.default,
-  'no-types-missing-file-annotation': _noTypesMissingFileAnnotation2.default,
-  'no-unused-expressions': _noUnusedExpressions2.default,
-  'no-weak-types': _noWeakTypes2.default,
-  'object-type-delimiter': _objectTypeDelimiter2.default,
-  'require-compound-type-alias': _requireCompoundTypeAlias2.default,
-  'require-exact-type': _requireExactType2.default,
-  'require-indexer-name': _requireIndexerName2.default,
-  'require-inexact-type': _requireInexactType2.default,
-  'require-parameter-type': _requireParameterType2.default,
-  'require-readonly-react-props': _requireReadonlyReactProps2.default,
-  'require-return-type': _requireReturnType2.default,
-  'require-types-at-top': _requireTypesAtTop2.default,
-  'require-valid-file-annotation': _requireValidFileAnnotation2.default,
-  'require-variable-type': _requireVariableType2.default,
-  semi: _semi2.default,
-  'sort-keys': _sortKeys2.default,
-  'space-after-type-colon': _spaceAfterTypeColon2.default,
-  'space-before-generic-bracket': _spaceBeforeGenericBracket2.default,
-  'space-before-type-colon': _spaceBeforeTypeColon2.default,
-  'spread-exact-type': _spreadExactType2.default,
-  'type-id-match': _typeIdMatch2.default,
-  'type-import-style': _typeImportStyle2.default,
-  'union-intersection-spacing': _unionIntersectionSpacing2.default,
-  'use-flow-type': _useFlowType2.default,
-  'valid-syntax': _validSyntax2.default
-};
-
-exports.default = {
-  configs: {
-    recommended: _recommended2.default
-  },
-  rules: _lodash2.default.mapValues(rules, function (rule, key) {
-    if (key === 'no-types-missing-file-annotation') {
-      return rule;
-    }
-
-    return _extends({}, rule, {
-      create: _lodash2.default.partial(_utilities.checkFlowFileAnnotation, rule.create)
-    });
-  }),
-  rulesConfig: {
-    'boolean-style': 0,
-    'define-flow-type': 0,
-    'delimiter-dangle': 0,
-    'generic-spacing': 0,
-    'newline-after-flow-annotation': 0,
-    'no-dupe-keys': 0,
-    'no-flow-fix-me-comments': 0,
-    'no-mixed': 0,
-    'no-mutable-array': 0,
-    'no-weak-types': 0,
-    'object-type-delimiter': 0,
-    'require-compound-type-alias': 0,
-    'require-exact-type': 0,
-    'require-parameter-type': 0,
-    'require-readonly-react-props': 0,
-    'require-return-type': 0,
-    'require-variable-type': 0,
-    semi: 0,
-    'sort-keys': 0,
-    'space-after-type-colon': 0,
-    'space-before-generic-bracket': 0,
-    'space-before-type-colon': 0,
-    'spread-exact-type': 0,
-    'type-id-match': 0,
-    'type-import-style': 0,
-    'union-intersection-spacing': 0,
-    'use-flow-type': 0,
-    'valid-syntax': 0
-  }
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/index.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/index.js
deleted file mode 100644
index a7dc4e5..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _isSimpleType = require('./isSimpleType');
-
-var _isSimpleType2 = _interopRequireDefault(_isSimpleType);
-
-var _needWrap = require('./needWrap');
-
-var _needWrap2 = _interopRequireDefault(_needWrap);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['verbose', 'shorthand'],
-  type: 'string'
-}];
-
-var inlineType = function inlineType(type) {
-  var inlined = type.replace(/\s+/g, ' ');
-
-  if (inlined.length <= 50) {
-    return inlined;
-  } else {
-    return 'Type';
-  }
-};
-
-exports.default = function (defaultConfig, simpleType) {
-  var create = function create(context) {
-    var verbose = (context.options[0] || defaultConfig) === 'verbose';
-
-    return {
-      // shorthand
-      ArrayTypeAnnotation(node) {
-        var rawElementType = context.getSourceCode().getText(node.elementType);
-        var inlinedType = inlineType(rawElementType);
-        var wrappedInlinedType = (0, _needWrap2.default)(node.elementType) ? '(' + inlinedType + ')' : inlinedType;
-
-        if ((0, _isSimpleType2.default)(node.elementType) === simpleType && verbose) {
-          context.report({
-            data: {
-              type: inlinedType,
-              wrappedType: wrappedInlinedType
-            },
-            fix(fixer) {
-              return fixer.replaceText(node, 'Array<' + rawElementType + '>');
-            },
-            message: 'Use "Array<{{ type }}>", not "{{ wrappedType }}[]"',
-            node
-          });
-        }
-      },
-
-      // verbose
-      GenericTypeAnnotation(node) {
-        if (node.id.name === 'Array') {
-          // Don't report on un-parameterized Array annotations. There are valid cases for this,
-          // but regardless, we should not crash when encountering them.
-          if (node.typeParameters && node.typeParameters.params.length === 1) {
-            var elementTypeNode = node.typeParameters.params[0];
-            var rawElementType = context.getSourceCode().getText(elementTypeNode);
-            var inlinedType = inlineType(rawElementType);
-            var wrappedInlinedType = (0, _needWrap2.default)(elementTypeNode) ? '(' + inlinedType + ')' : inlinedType;
-
-            if ((0, _isSimpleType2.default)(elementTypeNode) === simpleType && !verbose) {
-              context.report({
-                data: {
-                  type: inlinedType,
-                  wrappedType: wrappedInlinedType
-                },
-                fix(fixer) {
-                  if ((0, _needWrap2.default)(elementTypeNode)) {
-                    return fixer.replaceText(node, '(' + rawElementType + ')[]');
-                  } else {
-                    return fixer.replaceText(node, rawElementType + '[]');
-                  }
-                },
-                message: 'Use "{{ wrappedType }}[]", not "Array<{{ type }}>"',
-                node
-              });
-            }
-          }
-        }
-      }
-    };
-  };
-
-  return {
-    create,
-    schema
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType.js
deleted file mode 100644
index 43217fe..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/isSimpleType.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-/**
- * Types considered simple:
- *
- *  - primitive types
- *  - literal types
- *  - mixed and any types
- *  - generic types (such as Date, Promise<string>, $Keys<T>, etc.)
- *  - array type written in shorthand notation
- *
- * Types not considered simple:
- *
- *  - maybe type
- *  - function type
- *  - object type
- *  - tuple type
- *  - union and intersection types
- *
- * Reminder: if you change these semantics, don't forget to modify documentation of `array-style-...` rules
- */
-
-var simpleTypePatterns = [/^(?:Any|Array|Boolean|Generic|Mixed|Number|String|Void)TypeAnnotation$/, /.+LiteralTypeAnnotation$/];
-
-exports.default = function (node) {
-  return simpleTypePatterns.some(function (pattern) {
-    return pattern.test(node.type);
-  });
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap.js
deleted file mode 100644
index 829b6bc..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyle/needWrap.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _isSimpleType = require('./isSimpleType');
-
-var _isSimpleType2 = _interopRequireDefault(_isSimpleType);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var complexTypesWithoutWrap = ['TupleTypeAnnotation', 'ObjectTypeAnnotation'];
-
-exports.default = function (node) {
-  return !(0, _isSimpleType2.default)(node) && !complexTypesWithoutWrap.includes(node.type);
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleComplexType.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleComplexType.js
deleted file mode 100644
index 3c14f12..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleComplexType.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _arrayStyle = require('./arrayStyle');
-
-var _arrayStyle2 = _interopRequireDefault(_arrayStyle);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = (0, _arrayStyle2.default)('verbose', false);
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType.js
deleted file mode 100644
index a2b256b..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrayStyleSimpleType.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _arrayStyle = require('./arrayStyle');
-
-var _arrayStyle2 = _interopRequireDefault(_arrayStyle);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = (0, _arrayStyle2.default)('verbose', true);
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/arrowParens.js b/node_modules/eslint-plugin-flowtype/dist/rules/arrowParens.js
deleted file mode 100644
index da22627..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/arrowParens.js
+++ /dev/null
@@ -1,160 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var getLocation = function getLocation(node) {
-  return {
-    end: node.params[node.params.length - 1].loc.end,
-    start: node.params[0].loc.start
-  };
-};
-
-var isOpeningParenToken = function isOpeningParenToken(token) {
-  return token.value === '(' && token.type === 'Punctuator';
-};
-
-var isClosingParenToken = function isClosingParenToken(token) {
-  return token.value === ')' && token.type === 'Punctuator';
-};
-
-exports.default = {
-  create(context) {
-    var asNeeded = context.options[0] === 'as-needed';
-    var requireForBlockBody = asNeeded && context.options[1] && context.options[1].requireForBlockBody === true;
-
-    var sourceCode = context.getSourceCode();
-
-    // Determines whether a arrow function argument end with `)`
-    // eslint-disable-next-line complexity
-    var parens = function parens(node) {
-      var isAsync = node.async;
-      var firstTokenOfParam = sourceCode.getFirstToken(node, isAsync ? 1 : 0);
-
-      // Remove the parenthesis around a parameter
-      var fixParamsWithParenthesis = function fixParamsWithParenthesis(fixer) {
-        var paramToken = sourceCode.getTokenAfter(firstTokenOfParam);
-
-        /*
-        * ES8 allows Trailing commas in function parameter lists and calls
-        * https://github.com/eslint/eslint/issues/8834
-        */
-        var closingParenToken = sourceCode.getTokenAfter(paramToken, isClosingParenToken);
-        var asyncToken = isAsync ? sourceCode.getTokenBefore(firstTokenOfParam) : null;
-        var shouldAddSpaceForAsync = asyncToken && asyncToken.range[1] === firstTokenOfParam.range[0];
-
-        return fixer.replaceTextRange([firstTokenOfParam.range[0], closingParenToken.range[1]], `${shouldAddSpaceForAsync ? ' ' : ''}${paramToken.value}`);
-      };
-
-      // Type parameters without an opening paren is always a parse error, and
-      // can therefore be safely ignored.
-      if (node.typeParameters) {
-        return;
-      }
-
-      // Similarly, a predicate always requires parens just like a return type
-      // does, and therefore this case can also be safely ignored.
-      if (node.predicate) {
-        return;
-      }
-
-      // "as-needed", { "requireForBlockBody": true }: x => x
-      if (requireForBlockBody && node.params.length === 1 && node.params[0].type === 'Identifier' && !node.params[0].typeAnnotation && node.body.type !== 'BlockStatement' && !node.returnType) {
-        if (isOpeningParenToken(firstTokenOfParam)) {
-          context.report({
-            fix: fixParamsWithParenthesis,
-            loc: getLocation(node),
-            messageId: 'unexpectedParensInline',
-            node
-          });
-        }
-
-        return;
-      }
-
-      if (requireForBlockBody && node.body.type === 'BlockStatement') {
-        if (!isOpeningParenToken(firstTokenOfParam)) {
-          context.report({
-            fix(fixer) {
-              return fixer.replaceText(firstTokenOfParam, `(${firstTokenOfParam.value})`);
-            },
-            loc: getLocation(node),
-            messageId: 'expectedParensBlock',
-            node
-          });
-        }
-
-        return;
-      }
-
-      // "as-needed": x => x
-      if (asNeeded && node.params.length === 1 && node.params[0].type === 'Identifier' && !node.params[0].typeAnnotation && !node.returnType) {
-        if (isOpeningParenToken(firstTokenOfParam)) {
-          context.report({
-            fix: fixParamsWithParenthesis,
-            loc: getLocation(node),
-            messageId: 'unexpectedParens',
-            node
-          });
-        }
-
-        return;
-      }
-
-      if (firstTokenOfParam.type === 'Identifier') {
-        var after = sourceCode.getTokenAfter(firstTokenOfParam);
-
-        // (x) => x
-        if (after.value !== ')') {
-          context.report({
-            fix(fixer) {
-              return fixer.replaceText(firstTokenOfParam, `(${firstTokenOfParam.value})`);
-            },
-            loc: getLocation(node),
-            messageId: 'expectedParens',
-            node
-          });
-        }
-      }
-    };
-
-    return {
-      ArrowFunctionExpression: parens
-    };
-  },
-
-  meta: {
-    docs: {
-      category: 'ECMAScript 6',
-      description: 'require parentheses around arrow function arguments',
-      recommended: false,
-      url: 'https://eslint.org/docs/rules/arrow-parens'
-    },
-
-    fixable: 'code',
-
-    messages: {
-      expectedParens: 'Expected parentheses around arrow function argument.',
-      expectedParensBlock: 'Expected parentheses around arrow function argument having a body with curly braces.',
-
-      unexpectedParens: 'Unexpected parentheses around single function argument.',
-      unexpectedParensInline: 'Unexpected parentheses around single function argument having a body with no curly braces.'
-    },
-
-    type: 'layout'
-  },
-
-  schema: [{
-    enum: ['always', 'as-needed']
-  }, {
-    additionalProperties: false,
-    properties: {
-      requireForBlockBody: {
-        default: false,
-        type: 'boolean'
-      }
-    },
-    type: 'object'
-  }]
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/booleanStyle.js b/node_modules/eslint-plugin-flowtype/dist/rules/booleanStyle.js
deleted file mode 100644
index 1383fc2..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/booleanStyle.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['bool', 'boolean'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var longForm = (context.options[0] || 'boolean') === 'boolean';
-
-  return {
-    BooleanTypeAnnotation(node) {
-      var diff = node.end - node.start;
-
-      if (longForm && diff === 4) {
-        context.report({
-          fix(fixer) {
-            return fixer.replaceText(node, 'boolean');
-          },
-          message: 'Use "boolean", not "bool"',
-          node
-        });
-      }
-
-      if (!longForm && diff !== 4) {
-        context.report({
-          fix(fixer) {
-            return fixer.replaceText(node, 'bool');
-          },
-          message: 'Use "bool", not "boolean"',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/defineFlowType.js b/node_modules/eslint-plugin-flowtype/dist/rules/defineFlowType.js
deleted file mode 100644
index fe343fe..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/defineFlowType.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [];
-
-var create = function create(context) {
-  var globalScope = void 0;
-
-  // do nearly the same thing that eslint does for config globals
-  // https://github.com/eslint/eslint/blob/v2.0.0/lib/eslint.js#L118-L194
-  var makeDefined = function makeDefined(ident) {
-    var ii = void 0;
-
-    // start from the right since we're going to remove items from the array
-    for (ii = globalScope.through.length - 1; ii >= 0; ii--) {
-      var ref = globalScope.through[ii];
-
-      if (ref.identifier.name === ident.name) {
-        // use "__defineGeneric" since we don't have a reference to "escope.Variable"
-        // eslint-disable-next-line no-underscore-dangle
-        globalScope.__defineGeneric(ident.name, globalScope.set, globalScope.variables);
-        var variable = globalScope.set.get(ident.name);
-
-        variable.writeable = false;
-
-        // "through" contains all references whose definition cannot be found
-        // so we need to update references and remove the ones that were added
-        globalScope.through.splice(ii, 1);
-        ref.resolved = variable;
-        variable.references.push(ref);
-      }
-    }
-  };
-
-  return {
-    ClassImplements(node) {
-      makeDefined(node.id);
-    },
-    DeclareInterface(node) {
-      makeDefined(node.id);
-    },
-    DeclareTypeAlias(node) {
-      makeDefined(node.id);
-    },
-    GenericTypeAnnotation(node) {
-      if (node.id.type === 'Identifier') {
-        makeDefined(node.id);
-      } else if (node.id.type === 'QualifiedTypeIdentifier') {
-        var qid = void 0;
-
-        qid = node.id;
-        do {
-          qid = qid.qualification;
-        } while (qid.qualification);
-
-        makeDefined(qid);
-      }
-    },
-
-    // Can be removed once https://github.com/babel/babel-eslint/pull/696 is published
-    OpaqueType(node) {
-      if (node.id.type === 'Identifier') {
-        makeDefined(node.id);
-      }
-    },
-    Program() {
-      globalScope = context.getScope();
-    },
-    TypeParameterDeclaration(node) {
-      node.params.forEach(function (param) {
-        makeDefined(param);
-      });
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/delimiterDangle.js b/node_modules/eslint-plugin-flowtype/dist/rules/delimiterDangle.js
deleted file mode 100644
index 7740f66..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/delimiterDangle.js
+++ /dev/null
@@ -1,151 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['always', 'always-multiline', 'only-multiline', 'never'],
-  type: 'string'
-}, {
-  enum: ['always', 'always-multiline', 'only-multiline', 'never'],
-  type: 'string'
-}, {
-  enum: ['always', 'always-multiline', 'only-multiline', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var option = context.options[0] || 'never';
-  var interfaceOption = context.options[1] || option;
-  var inexactNotationOption = context.options[2] || 'never';
-  var sourceCode = context.getSourceCode();
-
-  var getNodeOption = function getNodeOption(node) {
-    if (node.parent.type === 'InterfaceDeclaration') {
-      return interfaceOption;
-    }
-
-    if (node.inexact) {
-      return inexactNotationOption;
-    }
-
-    return option;
-  };
-
-  var reporter = function reporter(node, message, fix) {
-    return function () {
-      context.report({
-        fix,
-        message,
-        node
-      });
-    };
-  };
-
-  var makeReporters = function makeReporters(node, tokenToFix) {
-    return {
-      dangle: reporter(node, 'Unexpected trailing delimiter', function (fixer) {
-        return fixer.replaceText(tokenToFix, '');
-      }),
-      noDangle: reporter(node, 'Missing trailing delimiter', function (fixer) {
-        return fixer.insertTextAfter(tokenToFix, ',');
-      })
-    };
-  };
-
-  var evaluate = function evaluate(node, lastChildNode) {
-    if (!lastChildNode && !node.inexact) {
-      return;
-    }
-
-    var _sourceCode$getLastTo = sourceCode.getLastTokens(node, 2),
-        _sourceCode$getLastTo2 = _slicedToArray(_sourceCode$getLastTo, 2),
-        penultimateToken = _sourceCode$getLastTo2[0],
-        lastToken = _sourceCode$getLastTo2[1];
-
-    var isDangling = [';', ','].includes(penultimateToken.value);
-    var isMultiLine = penultimateToken.loc.start.line !== lastToken.loc.start.line;
-
-    // Use the object node if it's inexact since there's no child node for the inexact notation
-    var report = makeReporters(node.inexact ? node : lastChildNode, penultimateToken);
-    var nodeOption = getNodeOption(node);
-
-    if (nodeOption === 'always' && !isDangling) {
-      report.noDangle();
-
-      return;
-    }
-
-    if (nodeOption === 'never' && isDangling) {
-      report.dangle();
-
-      return;
-    }
-
-    if (nodeOption === 'always-multiline' && !isDangling && isMultiLine) {
-      report.noDangle();
-
-      return;
-    }
-
-    if (nodeOption === 'always-multiline' && isDangling && !isMultiLine) {
-      report.dangle();
-
-      return;
-    }
-
-    if (nodeOption === 'only-multiline' && isDangling && !isMultiLine) {
-      report.dangle();
-    }
-  };
-
-  // required for reporting the correct position
-  var getLast = function getLast(property, indexer) {
-    if (!property) {
-      return indexer;
-    }
-
-    if (!indexer) {
-      return property;
-    }
-
-    if (property.loc.end.line > indexer.loc.end.line) {
-      return property;
-    }
-
-    if (indexer.loc.end.line > property.loc.end.line) {
-      return indexer;
-    }
-
-    if (property.loc.end.column > indexer.loc.end.column) {
-      return property;
-    }
-
-    return indexer;
-  };
-
-  return {
-    ObjectTypeAnnotation(node) {
-      evaluate(node, getLast(_lodash2.default.last(node.properties), _lodash2.default.last(node.indexers)));
-    },
-
-    TupleTypeAnnotation(node) {
-      evaluate(node, _lodash2.default.last(node.types));
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/genericSpacing.js b/node_modules/eslint-plugin-flowtype/dist/rules/genericSpacing.js
deleted file mode 100644
index 5850b4a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/genericSpacing.js
+++ /dev/null
@@ -1,108 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _utilities = require('../utilities');
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var sourceCode = context.getSourceCode();
-
-  var never = (context.options[0] || 'never') === 'never';
-
-  return {
-    GenericTypeAnnotation(node) {
-      var types = node.typeParameters;
-
-      // Promise<foo>
-      // ^^^^^^^^^^^^ GenericTypeAnnotation (with typeParameters)
-      //         ^^^  GenericTypeAnnotation (without typeParameters)
-      if (!types) {
-        return;
-      }
-
-      var _sourceCode$getFirstT = sourceCode.getFirstTokens(types, 2),
-          _sourceCode$getFirstT2 = _slicedToArray(_sourceCode$getFirstT, 2),
-          opener = _sourceCode$getFirstT2[0],
-          firstInnerToken = _sourceCode$getFirstT2[1];
-
-      var _sourceCode$getLastTo = sourceCode.getLastTokens(types, 2),
-          _sourceCode$getLastTo2 = _slicedToArray(_sourceCode$getLastTo, 2),
-          lastInnerToken = _sourceCode$getLastTo2[0],
-          closer = _sourceCode$getLastTo2[1];
-
-      var spacesBefore = firstInnerToken.start - opener.end;
-      var spacesAfter = closer.start - lastInnerToken.end;
-
-      if (never) {
-        if (spacesBefore) {
-          if (sourceCode.text[opener.end] !== '\n') {
-            context.report({
-              data: { name: node.id.name },
-              fix: _utilities.spacingFixers.stripSpacesAfter(opener, spacesBefore),
-              message: 'There must be no space at start of "{{name}}" generic type annotation',
-              node: types
-            });
-          }
-        }
-
-        if (spacesAfter) {
-          if (sourceCode.text[closer.start - 1] !== '\n') {
-            context.report({
-              data: { name: node.id.name },
-              fix: _utilities.spacingFixers.stripSpacesAfter(lastInnerToken, spacesAfter),
-              message: 'There must be no space at end of "{{name}}" generic type annotation',
-              node: types
-            });
-          }
-        }
-      } else {
-        if (spacesBefore > 1) {
-          context.report({
-            data: { name: node.id.name },
-            fix: _utilities.spacingFixers.stripSpacesAfter(opener, spacesBefore - 1),
-            message: 'There must be one space at start of "{{name}}" generic type annotation',
-            node: types
-          });
-        } else if (spacesBefore === 0) {
-          context.report({
-            data: { name: node.id.name },
-            fix: _utilities.spacingFixers.addSpaceAfter(opener),
-            message: 'There must be a space at start of "{{name}}" generic type annotation',
-            node: types
-          });
-        }
-
-        if (spacesAfter > 1) {
-          context.report({
-            data: { name: node.id.name },
-            fix: _utilities.spacingFixers.stripSpacesAfter(lastInnerToken, spacesAfter - 1),
-            message: 'There must be one space at end of "{{name}}" generic type annotation',
-            node: types
-          });
-        } else if (spacesAfter === 0) {
-          context.report({
-            data: { name: node.id.name },
-            fix: _utilities.spacingFixers.addSpaceAfter(lastInnerToken),
-            message: 'There must be a space at end of "{{name}}" generic type annotation',
-            node: types
-          });
-        }
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation.js b/node_modules/eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation.js
deleted file mode 100644
index 98c23eb..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/newlineAfterFlowAnnotation.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var looksLikeFlowFileAnnotation = function looksLikeFlowFileAnnotation(comment) {
-  return (/@(?:no)?flo/i.test(comment)
-  );
-};
-
-var schema = [{
-  enum: ['always', 'always-windows', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var mode = context.options[0];
-  var never = mode === 'never';
-
-  var newline = mode === 'always-windows' ? '\r\n' : '\n';
-
-  return {
-    Program(node) {
-      var sourceCode = context.getSourceCode();
-
-      var potentialFlowFileAnnotation = _lodash2.default.find(context.getAllComments(), function (comment) {
-        return looksLikeFlowFileAnnotation(comment.value);
-      });
-
-      if (potentialFlowFileAnnotation) {
-        var line = potentialFlowFileAnnotation.loc.end.line;
-        var nextLineIsEmpty = sourceCode.lines[line] === '';
-
-        if (!never && !nextLineIsEmpty) {
-          context.report({
-            fix: function fix(fixer) {
-              return fixer.insertTextAfter(potentialFlowFileAnnotation, newline);
-            },
-            message: 'Expected newline after flow annotation',
-            node
-          });
-        }
-
-        if (never && nextLineIsEmpty) {
-          context.report({
-            fix: function fix(fixer) {
-              var lineBreak = sourceCode.text[potentialFlowFileAnnotation.end];
-
-              return fixer.replaceTextRange([potentialFlowFileAnnotation.end, potentialFlowFileAnnotation.end + (lineBreak === '\r' ? 2 : 1)], '');
-            },
-            message: 'Expected no newline after flow annotation',
-            node
-          });
-        }
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noDupeKeys.js b/node_modules/eslint-plugin-flowtype/dist/rules/noDupeKeys.js
deleted file mode 100644
index 122d13f..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noDupeKeys.js
+++ /dev/null
@@ -1,108 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-var _lodash = require('lodash/');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [];
-
-var create = function create(context) {
-  var report = function report(node) {
-    context.report({
-      loc: node.loc,
-      message: 'Duplicate property.',
-      node
-    });
-  };
-
-  var analizeElement = function analizeElement(element) {
-    var type = element.type;
-
-    var value = void 0;
-
-    switch (type) {
-      case 'GenericTypeAnnotation':
-        value = element.id.name;
-        break;
-      case 'ObjectTypeAnnotation':
-        // eslint-disable-next-line no-use-before-define
-        value = builObjectStructure(element.properties);
-        break;
-      case 'TupleTypeAnnotation':
-        // eslint-disable-next-line no-use-before-define
-        value = buildArrayStructure(element.types);
-        break;
-      default:
-        value = element.value;
-        break;
-    }
-
-    return {
-      type,
-      value
-    };
-  };
-
-  var buildArrayStructure = function buildArrayStructure(elements) {
-    return _lodash2.default.map(elements, function (element) {
-      return analizeElement(element);
-    });
-  };
-
-  var builObjectStructure = function builObjectStructure(properties) {
-    return _lodash2.default.map(properties, function (property) {
-      var element = analizeElement(property.type === 'ObjectTypeSpreadProperty' ? property.argument : property.value);
-
-      return _extends({}, element, {
-        name: (0, _utilities.getParameterName)(property, context)
-      });
-    });
-  };
-
-  var checkForDuplicates = function checkForDuplicates(node) {
-    var haystack = [];
-
-    // filter out complex object types, like ObjectTypeSpreadProperty
-    var identifierNodes = _lodash2.default.filter(node.properties, { type: 'ObjectTypeProperty' });
-
-    _lodash2.default.forEach(identifierNodes, function (identifierNode) {
-      var needle = { name: (0, _utilities.getParameterName)(identifierNode, context) };
-
-      if (identifierNode.value.type === 'FunctionTypeAnnotation') {
-        needle.args = _lodash2.default.map(identifierNode.value.params, function (param) {
-          return analizeElement(param.typeAnnotation);
-        });
-      }
-
-      var match = _lodash2.default.some(haystack, function (existingNeedle) {
-        return _lodash2.default.isEqual(existingNeedle, needle);
-      });
-
-      if (match) {
-        report(identifierNode);
-      } else {
-        haystack.push(needle);
-      }
-    });
-  };
-
-  return {
-    ObjectTypeAnnotation: checkForDuplicates
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noExistentialType.js b/node_modules/eslint-plugin-flowtype/dist/rules/noExistentialType.js
deleted file mode 100644
index 6116a3d..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noExistentialType.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-// Support both node types for existential type
-// https://github.com/babel/babylon/issues/319
-var reporter = function reporter(context) {
-  return function (node) {
-    context.report({
-      message: 'Unexpected use of existential type (*).',
-      node
-    });
-  };
-};
-
-var create = function create(context) {
-  return {
-    ExistentialTypeParam: reporter(context),
-    ExistsTypeAnnotation: reporter(context)
-  };
-};
-
-exports.default = {
-  create
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noFlowFixMeComments.js b/node_modules/eslint-plugin-flowtype/dist/rules/noFlowFixMeComments.js
deleted file mode 100644
index dc6552a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noFlowFixMeComments.js
+++ /dev/null
@@ -1,58 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  type: 'string'
-}];
-
-var message = '$FlowFixMe is treated as `any` and should be fixed.';
-
-var isIdentifier = function isIdentifier(node, name) {
-  return node && node.type === 'Identifier' && node.name.match(name);
-};
-
-var create = function create(context) {
-  var allowedPattern = context.options[0] ? new RegExp(context.options[0]) : null;
-  var extraMessage = allowedPattern ? ' Fix it or match `' + allowedPattern.toString() + '`.' : '';
-
-  var passesExtraRegex = function passesExtraRegex(value) {
-    if (!allowedPattern) {
-      return false;
-    }
-
-    return value.match(allowedPattern);
-  };
-
-  var handleComment = function handleComment(comment) {
-    var value = comment.value.trim();
-
-    if (value.match(/\$FlowFixMe/) && !passesExtraRegex(value)) {
-      context.report(comment, message + extraMessage);
-    }
-  };
-
-  return {
-    GenericTypeAnnotation(node) {
-      if (isIdentifier(node.id, /\$FlowFixMe/)) {
-        context.report({
-          message,
-          node: node.id
-        });
-      }
-    },
-
-    Program() {
-      context.getSourceCode().getAllComments().filter(function (comment) {
-        return comment.type === 'Block' || comment.type === 'Line';
-      }).forEach(handleComment);
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noMixed.js b/node_modules/eslint-plugin-flowtype/dist/rules/noMixed.js
deleted file mode 100644
index 9e0aa80..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noMixed.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [];
-
-var create = function create(context) {
-  return {
-    MixedTypeAnnotation(node) {
-      context.report({
-        message: 'Unexpected use of mixed type',
-        node
-      });
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noMutableArray.js b/node_modules/eslint-plugin-flowtype/dist/rules/noMutableArray.js
deleted file mode 100644
index 1f7ffc8..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noMutableArray.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [];
-
-// const x = [];
-var isEmptyArrayLiteral = function isEmptyArrayLiteral(node) {
-  return _lodash2.default.get(node, 'init.type') === 'ArrayExpression' && _lodash2.default.get(node, 'init.elements.length') === 0;
-};
-
-// const x = new Array(); const y = Array();
-var isEmptyArrayInstance = function isEmptyArrayInstance(node) {
-  if (_lodash2.default.get(node, 'init.type') === 'NewExpression' || _lodash2.default.get(node, 'init.type') === 'CallExpression') {
-    return _lodash2.default.get(node, 'init.callee.name') === 'Array' && _lodash2.default.get(node, 'init.arguments.length') === 0;
-  } else {
-    return false;
-  }
-};
-
-var isAnnotationOfEmptyArrayInit = function isAnnotationOfEmptyArrayInit(node) {
-  if (_lodash2.default.has(node, 'parent.parent.parent')) {
-    var parent = _lodash2.default.get(node, 'parent.parent.parent');
-    var isVariableDeclaration = _lodash2.default.get(parent, 'type') === 'VariableDeclarator';
-
-    return isVariableDeclaration && (isEmptyArrayLiteral(parent) || isEmptyArrayInstance(parent));
-  } else {
-    return false;
-  }
-};
-
-var create = function create(context) {
-  return {
-    ArrayTypeAnnotation(node) {
-      if (!isAnnotationOfEmptyArrayInit(node)) {
-        context.report({
-          fix(fixer) {
-            var rawElementType = context.getSourceCode().getText(node.elementType);
-
-            return fixer.replaceText(node, '$ReadOnlyArray<' + rawElementType + '>');
-          },
-          message: 'Use "$ReadOnlyArray" instead of array shorthand notation',
-          node
-        });
-      }
-    },
-    GenericTypeAnnotation(node) {
-      if (node.id.name === 'Array' && !isAnnotationOfEmptyArrayInit(node)) {
-        context.report({
-          fix(fixer) {
-            return fixer.replaceText(node.id, '$ReadOnlyArray');
-          },
-          message: 'Use "$ReadOnlyArray" instead of "Array"',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js b/node_modules/eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js
deleted file mode 100644
index 535498a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [];
-
-var create = function create(context) {
-  var regex = /^(Boolean|Number|String)$/;
-
-  return {
-    GenericTypeAnnotation: function GenericTypeAnnotation(node) {
-      var name = _lodash2.default.get(node, 'id.name');
-
-      if (regex.test(name)) {
-        context.report({
-          data: {
-            name
-          },
-          loc: node.loc,
-          message: 'Unexpected use of {{name}} constructor type.',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation.js b/node_modules/eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation.js
deleted file mode 100644
index f5eb116..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noTypesMissingFileAnnotation.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../utilities');
-
-/**
- * Disallows the use for flow types without a valid file annotation.
- * Only checks files without a valid flow annotation.
- */
-
-var schema = [];
-
-var create = function create(context) {
-  // Skip flow files
-  if ((0, _utilities.isFlowFile)(context, false)) {
-    return {};
-  }
-
-  var reporter = function reporter(node, type) {
-    context.report({
-      data: { type },
-      message: 'Type {{type}} require valid Flow declaration.',
-      node
-    });
-  };
-
-  return {
-    ExportNamedDeclaration(node) {
-      if (node.exportKind === 'type') {
-        reporter(node, 'exports');
-      }
-    },
-    ImportDeclaration(node) {
-      if (node.importKind === 'type') {
-        reporter(node, 'imports');
-      }
-      if (node.importKind === 'value' && node.specifiers.some(function (specifier) {
-        return specifier.importKind === 'type';
-      })) {
-        reporter(node, 'imports');
-      }
-    },
-    TypeAlias(node) {
-      reporter(node, 'aliases');
-    },
-    TypeAnnotation(node) {
-      reporter(node, 'annotations');
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js b/node_modules/eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js
deleted file mode 100644
index 8566ce4..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noUnusedExpressions.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _noUnusedExpressions = require('eslint/lib/rules/no-unused-expressions');
-
-var _noUnusedExpressions2 = _interopRequireDefault(_noUnusedExpressions);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var meta = _noUnusedExpressions2.default.meta; // A wrapper around ESLint's core rule no-unused-expressions, additionally ignores type cast
-// expressions.
-
-var create = function create(context) {
-  var coreChecks = _noUnusedExpressions2.default.create(context);
-
-  return {
-    ExpressionStatement(node) {
-      if (node.expression.type !== 'TypeCastExpression') {
-        coreChecks.ExpressionStatement(node);
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  meta
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/noWeakTypes.js b/node_modules/eslint-plugin-flowtype/dist/rules/noWeakTypes.js
deleted file mode 100644
index efd6dc1..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/noWeakTypes.js
+++ /dev/null
@@ -1,77 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  additionalProperties: false,
-  properties: {
-    any: {
-      type: 'boolean'
-    },
-    Function: {
-      type: 'boolean'
-    },
-    Object: {
-      type: 'boolean'
-    }
-  },
-  type: 'object'
-}];
-
-var reportWeakType = function reportWeakType(context, weakType) {
-  return function (node) {
-    context.report({
-      data: { weakType },
-      message: 'Unexpected use of weak type "{{weakType}}"',
-      node
-    });
-  };
-};
-
-var genericTypeEvaluator = function genericTypeEvaluator(context, _ref) {
-  var checkFunction = _ref.checkFunction,
-      checkObject = _ref.checkObject;
-
-  return function (node) {
-    var name = _lodash2.default.get(node, 'id.name');
-
-    if (checkFunction && name === 'Function' || checkObject && name === 'Object') {
-      reportWeakType(context, name)(node);
-    }
-  };
-};
-
-var create = function create(context) {
-  var checkAny = _lodash2.default.get(context, 'options[0].any', true) === true;
-  var checkFunction = _lodash2.default.get(context, 'options[0].Function', true) === true;
-  var checkObject = _lodash2.default.get(context, 'options[0].Object', true) === true;
-
-  var checks = {};
-
-  if (checkAny) {
-    checks.AnyTypeAnnotation = reportWeakType(context, 'any');
-  }
-
-  if (checkFunction || checkObject) {
-    checks.GenericTypeAnnotation = genericTypeEvaluator(context, {
-      checkFunction,
-      checkObject
-    });
-  }
-
-  return checks;
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js b/node_modules/eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js
deleted file mode 100644
index 4adad66..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js
+++ /dev/null
@@ -1,72 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-// ported from babel/flow-object-type; original author: Nat Mote
-// https://github.com/babel/eslint-plugin-babel/blob/c0a49d25a97feb12c1d07073a0b37317359a5fe5/rules/flow-object-type.js
-
-var SEMICOLON = {
-  char: ';',
-  name: 'semicolon'
-};
-
-var COMMA = {
-  char: ',',
-  name: 'comma'
-};
-
-var create = function create(context) {
-  var GOOD = void 0;
-  var BAD = void 0;
-
-  if (!context.options[0] || context.options[0] === COMMA.name) {
-    GOOD = COMMA;
-    BAD = SEMICOLON;
-  } else {
-    GOOD = SEMICOLON;
-    BAD = COMMA;
-  }
-
-  var requireProperPunctuation = function requireProperPunctuation(node) {
-    var sourceCode = context.getSourceCode();
-    var tokens = sourceCode.getTokens(node);
-    var lastToken = void 0;
-
-    lastToken = tokens[tokens.length - 1];
-    if (lastToken.type !== 'Punctuator' || !(lastToken.value === SEMICOLON.char || lastToken.value === COMMA.char)) {
-      var parentTokens = sourceCode.getTokens(node.parent);
-
-      lastToken = parentTokens[parentTokens.indexOf(lastToken) + 1];
-    }
-
-    if (lastToken.type === 'Punctuator') {
-      if (lastToken.value === BAD.char) {
-        context.report({
-          fix(fixer) {
-            return fixer.replaceText(lastToken, GOOD.char);
-          },
-          message: 'Prefer ' + GOOD.name + 's to ' + BAD.name + 's in object and class types',
-          node: lastToken
-        });
-      }
-    }
-  };
-
-  return {
-    ObjectTypeCallProperty: requireProperPunctuation,
-    ObjectTypeIndexer: requireProperPunctuation,
-    ObjectTypeProperty: requireProperPunctuation
-  };
-};
-
-var schema = [{
-  enum: ['semicolon', 'comma'],
-  type: 'string'
-}];
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias.js
deleted file mode 100644
index 8cecb50..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireCompoundTypeAlias.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var always = (context.options[0] || 'always') === 'always';
-
-  if (always) {
-    return {
-      IntersectionTypeAnnotation(node) {
-        if (node.parent.type !== 'TypeAlias') {
-          context.report({
-            message: 'All intersection types must be declared with named type alias.',
-            node
-          });
-        }
-      },
-      UnionTypeAnnotation(node) {
-        if (node.parent.type !== 'TypeAlias') {
-          context.report({
-            message: 'All union types must be declared with named type alias.',
-            node
-          });
-        }
-      }
-    };
-  } else {
-    return {};
-  }
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireExactType.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireExactType.js
deleted file mode 100644
index 1736229..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireExactType.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var always = (context.options[0] || 'always') === 'always';
-
-  return {
-    TypeAlias(node) {
-      var name = node.id.name,
-          _node$right = node.right,
-          type = _node$right.type,
-          exact = _node$right.exact,
-          indexers = _node$right.indexers;
-
-
-      if (type === 'ObjectTypeAnnotation') {
-        if (always && !exact && indexers.length === 0) {
-          context.report({
-            data: { name },
-            message: 'Type identifier \'{{name}}\' must be exact.',
-            node
-          });
-        }
-
-        if (!always && exact) {
-          context.report({
-            data: { name },
-            message: 'Type identifier \'{{name}}\' must not be exact.',
-            node
-          });
-        }
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireIndexerName.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireIndexerName.js
deleted file mode 100644
index 0bb1165..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireIndexerName.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../utilities');
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var always = (context.options[0] || 'always') === 'always';
-
-  if (always) {
-    return {
-      ObjectTypeIndexer(node) {
-        var id = (0, _utilities.getParameterName)(node, context);
-        var rawKeyType = context.getSourceCode().getText(node.key);
-        if (id === null) {
-          context.report({
-            fix(fixer) {
-              return fixer.replaceText(node.key, 'key: ' + rawKeyType);
-            },
-            message: 'All indexers must be declared with key name.',
-            node
-          });
-        }
-      }
-    };
-  } else {
-    return {};
-  }
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireInexactType.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireInexactType.js
deleted file mode 100644
index d09575b..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireInexactType.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var always = (context.options[0] || 'always') === 'always';
-
-  return {
-    ObjectTypeAnnotation(node) {
-      var inexact = node.inexact,
-          exact = node.exact;
-
-
-      if (!node.hasOwnProperty('inexact')) {
-        return;
-      }
-
-      if (always && !inexact && !exact) {
-        context.report({
-          message: 'Type must be explicit inexact.',
-          node
-        });
-      }
-
-      if (!always && inexact) {
-        context.report({
-          message: 'Type must not be explicit inexact.',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireParameterType.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireParameterType.js
deleted file mode 100644
index 54d8bd7..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireParameterType.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  additionalProperties: false,
-  properties: {
-    excludeArrowFunctions: {
-      enum: [false, true, 'expressionsOnly']
-    },
-    excludeParameterMatch: {
-      type: 'string'
-    }
-  },
-  type: 'object'
-}];
-
-var create = (0, _utilities.iterateFunctionNodes)(function (context) {
-  var skipArrows = _lodash2.default.get(context, 'options[0].excludeArrowFunctions');
-  var excludeParameterMatch = new RegExp(_lodash2.default.get(context, 'options[0].excludeParameterMatch', 'a^'));
-
-  return function (functionNode) {
-    // It is save to ignore FunctionTypeAnnotation nodes in this rule.
-    if (functionNode.type === 'FunctionTypeAnnotation') {
-      return;
-    }
-
-    var isArrow = functionNode.type === 'ArrowFunctionExpression';
-    var isArrowFunctionExpression = functionNode.expression;
-    var functionAnnotation = isArrow && _lodash2.default.get(functionNode, 'parent.id.typeAnnotation');
-
-    if (skipArrows === 'expressionsOnly' && isArrowFunctionExpression || skipArrows === true && isArrow) {
-      return;
-    }
-
-    _lodash2.default.forEach(functionNode.params, function (identifierNode) {
-      var parameterName = (0, _utilities.getParameterName)(identifierNode, context);
-
-      if (excludeParameterMatch.test(parameterName)) {
-        return;
-      }
-
-      var typeAnnotation = void 0;
-
-      typeAnnotation = _lodash2.default.get(identifierNode, 'typeAnnotation') || _lodash2.default.get(identifierNode, 'left.typeAnnotation');
-
-      if (isArrow && functionAnnotation) {
-        typeAnnotation = true;
-      }
-
-      if (!typeAnnotation) {
-        context.report({
-          data: {
-            name: (0, _utilities.quoteName)(parameterName)
-          },
-          message: 'Missing {{name}}parameter type annotation.',
-          node: identifierNode
-        });
-      }
-    });
-  };
-});
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps.js
deleted file mode 100644
index 141edc7..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireReadonlyReactProps.js
+++ /dev/null
@@ -1,166 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [];
-
-var reComponentName = /^(Pure)?Component$/;
-var reReadOnly = /^\$(ReadOnly|FlowFixMe)$/;
-
-var isReactComponent = function isReactComponent(node) {
-  if (!node.superClass) {
-    return false;
-  }
-
-  return (
-
-    // class Foo extends Component { }
-    // class Foo extends PureComponent { }
-    node.superClass.type === 'Identifier' && reComponentName.test(node.superClass.name) ||
-
-    // class Foo extends React.Component { }
-    // class Foo extends React.PureComponent { }
-    node.superClass.type === 'MemberExpression' && node.superClass.object.name === 'React' && reComponentName.test(node.superClass.property.name)
-  );
-};
-
-var create = function create(context) {
-  var readOnlyTypes = [];
-  var foundTypes = [];
-  var reportedFunctionalComponents = [];
-
-  var isReadOnlyClassProp = function isReadOnlyClassProp(node) {
-    var id = node.superTypeParameters && node.superTypeParameters.params[0].id;
-
-    return id && !reReadOnly.test(id.name) && !readOnlyTypes.includes(id.name) && foundTypes.includes(id.name);
-  };
-
-  var isReadOnlyObjectType = function isReadOnlyObjectType(node) {
-    if (!node || node.type !== 'ObjectTypeAnnotation') {
-      return false;
-    }
-
-    // we consider `{||}` to be ReadOnly since it's exact AND has no props
-    if (node.exact && node.properties.length === 0) {
-      return true;
-    }
-
-    // { +foo: ..., +bar: ..., ... }
-    return node.properties.length > 0 && node.properties.every(function (prop) {
-      return prop.variance && prop.variance.kind === 'plus';
-    });
-  };
-
-  var isReadOnlyType = function isReadOnlyType(node) {
-    return node.right.id && reReadOnly.test(node.right.id.name) || isReadOnlyObjectType(node.right);
-  };
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = context.getSourceCode().ast.body[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      var node = _step.value;
-
-      var idName = void 0;
-      var typeNode = void 0;
-
-      // type Props = $ReadOnly<{}>
-      if (node.type === 'TypeAlias') {
-        idName = node.id.name;
-        typeNode = node;
-
-        // export type Props = $ReadOnly<{}>
-      } else if (node.type === 'ExportNamedDeclaration' && node.declaration && node.declaration.type === 'TypeAlias') {
-        idName = node.declaration.id.name;
-        typeNode = node.declaration;
-      }
-
-      if (idName) {
-        foundTypes.push(idName);
-        if (isReadOnlyType(typeNode)) {
-          readOnlyTypes.push(idName);
-        }
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-
-  return {
-
-    // class components
-    ClassDeclaration(node) {
-      if (isReactComponent(node) && isReadOnlyClassProp(node)) {
-        context.report({
-          message: node.superTypeParameters.params[0].id.name + ' must be $ReadOnly',
-          node
-        });
-      } else if (node.superTypeParameters && node.superTypeParameters.params[0].type === 'ObjectTypeAnnotation' && !isReadOnlyObjectType(node.superTypeParameters.params[0])) {
-        context.report({
-          message: node.id.name + ' class props must be $ReadOnly',
-          node
-        });
-      }
-    },
-
-    // functional components
-    JSXElement(node) {
-      var currentNode = node;
-      var identifier = void 0;
-      var typeAnnotation = void 0;
-
-      while (currentNode && currentNode.type !== 'FunctionDeclaration') {
-        currentNode = currentNode.parent;
-      }
-
-      // functional components can only have 1 param
-      if (!currentNode || currentNode.params.length !== 1) {
-        return;
-      }
-
-      if (currentNode.params[0].type === 'Identifier' && (typeAnnotation = currentNode.params[0].typeAnnotation)) {
-        if ((identifier = typeAnnotation.typeAnnotation.id) && foundTypes.includes(identifier.name) && !readOnlyTypes.includes(identifier.name) && !reReadOnly.test(identifier.name)) {
-          if (reportedFunctionalComponents.includes(identifier)) {
-            return;
-          }
-
-          context.report({
-            message: identifier.name + ' must be $ReadOnly',
-            node
-          });
-
-          reportedFunctionalComponents.push(identifier);
-
-          return;
-        }
-
-        if (typeAnnotation.typeAnnotation.type === 'ObjectTypeAnnotation' && !isReadOnlyObjectType(typeAnnotation.typeAnnotation)) {
-          context.report({
-            message: currentNode.id.name + ' component props must be $ReadOnly',
-            node
-          });
-        }
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireReturnType.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireReturnType.js
deleted file mode 100644
index b4bb8b9..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireReturnType.js
+++ /dev/null
@@ -1,160 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['always'],
-  type: 'string'
-}, {
-  additionalProperties: false,
-  properties: {
-    annotateUndefined: {
-      enum: ['always', 'never', 'ignore', 'always-enforce'],
-      type: 'string'
-    },
-    excludeArrowFunctions: {
-      enum: [false, true, 'expressionsOnly']
-    },
-    excludeMatching: {
-      items: {
-        type: 'string'
-      },
-      type: 'array'
-    },
-    includeOnlyMatching: {
-      items: {
-        type: 'string'
-      },
-      type: 'array'
-    }
-  },
-  type: 'object'
-}];
-
-var create = function create(context) {
-  var annotateReturn = (_lodash2.default.get(context, 'options[0]') || 'always') === 'always';
-  var annotateUndefined = _lodash2.default.get(context, 'options[1].annotateUndefined') || 'never';
-  var skipArrows = _lodash2.default.get(context, 'options[1].excludeArrowFunctions') || false;
-
-  var makeRegExp = function makeRegExp(str) {
-    return new RegExp(str);
-  };
-
-  var excludeMatching = _lodash2.default.get(context, 'options[1].excludeMatching', []).map(makeRegExp);
-  var includeOnlyMatching = _lodash2.default.get(context, 'options[1].includeOnlyMatching', []).map(makeRegExp);
-
-  var targetNodes = [];
-
-  var registerFunction = function registerFunction(functionNode) {
-    targetNodes.push({
-      functionNode
-    });
-  };
-
-  var isUndefinedReturnType = function isUndefinedReturnType(returnNode) {
-    return returnNode.argument === null || returnNode.argument.name === 'undefined' || returnNode.argument.operator === 'void';
-  };
-
-  var getIsReturnTypeAnnotationUndefined = function getIsReturnTypeAnnotationUndefined(targetNode) {
-    var isReturnTypeAnnotationLiteralUndefined = _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.id.name') === 'undefined' && _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.type') === 'GenericTypeAnnotation';
-    var isReturnTypeAnnotationVoid = _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.type') === 'VoidTypeAnnotation';
-    var isAsyncReturnTypeAnnotationVoid = _lodash2.default.get(targetNode, 'functionNode.async') && _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.id.name') === 'Promise' && (_lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.typeParameters.params[0].type') === 'VoidTypeAnnotation' || _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.typeParameters.params[0].id.name') === 'undefined' && _lodash2.default.get(targetNode, 'functionNode.returnType.typeAnnotation.typeParameters.params[0].type') === 'GenericTypeAnnotation');
-
-    return isReturnTypeAnnotationLiteralUndefined || isReturnTypeAnnotationVoid || isAsyncReturnTypeAnnotationVoid;
-  };
-
-  var shouldFilterNode = function shouldFilterNode(functionNode) {
-    var isArrow = functionNode.type === 'ArrowFunctionExpression';
-    var isMethod = functionNode.parent && functionNode.parent.type === 'MethodDefinition';
-    var propertyNodes = ['Property', 'ClassProperty'];
-    var isProperty = functionNode.parent && propertyNodes.includes(functionNode.parent.type);
-    var selector = void 0;
-
-    if (isMethod || isProperty) {
-      selector = 'parent.key.name';
-    } else if (isArrow) {
-      selector = 'parent.id.name';
-    } else {
-      selector = 'id.name';
-    }
-    var identifierName = _lodash2.default.get(functionNode, selector);
-
-    var checkRegExp = function checkRegExp(regex) {
-      return regex.test(identifierName);
-    };
-
-    if (excludeMatching.length && _lodash2.default.some(excludeMatching, checkRegExp)) {
-      return true;
-    }
-
-    if (includeOnlyMatching.length && !_lodash2.default.some(includeOnlyMatching, checkRegExp)) {
-      return true;
-    }
-
-    return false;
-  };
-
-  // eslint-disable-next-line complexity
-  var evaluateFunction = function evaluateFunction(functionNode) {
-    var targetNode = targetNodes.pop();
-
-    if (functionNode !== targetNode.functionNode) {
-      throw new Error('Mismatch.');
-    }
-
-    var isArrow = functionNode.type === 'ArrowFunctionExpression';
-    var isArrowFunctionExpression = functionNode.expression;
-    var isFunctionReturnUndefined = !isArrowFunctionExpression && !functionNode.generator && (!targetNode.returnStatementNode || isUndefinedReturnType(targetNode.returnStatementNode));
-    var isReturnTypeAnnotationUndefined = getIsReturnTypeAnnotationUndefined(targetNode);
-
-    if (skipArrows === 'expressionsOnly' && isArrowFunctionExpression || skipArrows === true && isArrow || shouldFilterNode(functionNode)) {
-      return;
-    }
-
-    var returnType = functionNode.returnType || isArrow && _lodash2.default.get(functionNode, 'parent.id.typeAnnotation');
-
-    if (isFunctionReturnUndefined && isReturnTypeAnnotationUndefined && annotateUndefined === 'never') {
-      context.report(functionNode, 'Must not annotate undefined return type.');
-    } else if (isFunctionReturnUndefined && !isReturnTypeAnnotationUndefined && annotateUndefined === 'always') {
-      context.report(functionNode, 'Must annotate undefined return type.');
-    } else if ((annotateUndefined === 'always-enforce' || !isFunctionReturnUndefined && !isReturnTypeAnnotationUndefined) && annotateReturn && !returnType && !shouldFilterNode(functionNode)) {
-      context.report(functionNode, 'Missing return type annotation.');
-    }
-  };
-
-  var evaluateNoise = function evaluateNoise() {
-    targetNodes.pop();
-  };
-
-  return {
-    ArrowFunctionExpression: registerFunction,
-    'ArrowFunctionExpression:exit': evaluateFunction,
-    ClassDeclaration: registerFunction,
-    'ClassDeclaration:exit': evaluateNoise,
-    ClassExpression: registerFunction,
-    'ClassExpression:exit': evaluateNoise,
-    FunctionDeclaration: registerFunction,
-    'FunctionDeclaration:exit': evaluateFunction,
-    FunctionExpression: registerFunction,
-    'FunctionExpression:exit': evaluateFunction,
-    ReturnStatement: function ReturnStatement(node) {
-      if (targetNodes.length) {
-        targetNodes[targetNodes.length - 1].returnStatementNode = node;
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireTypesAtTop.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireTypesAtTop.js
deleted file mode 100644
index acf204a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireTypesAtTop.js
+++ /dev/null
@@ -1,134 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var always = (context.options[0] || 'always') === 'always';
-
-  if (always) {
-    var sourceCode = context.getSourceCode();
-
-    // nodes representing type and import declarations
-    var ignoredNodes = [
-    // import ...
-    function (node) {
-      return node.type === 'ImportDeclaration';
-    },
-
-    // export type Foo = ...
-    // export opaque type Foo = ...
-    // export type Foo from ...
-    // export opaque type Foo from ...
-    function (node) {
-      return node.type === 'ExportNamedDeclaration' && node.exportKind === 'type';
-    },
-
-    // type Foo = ...
-    function (node) {
-      return node.type === 'TypeAlias';
-    },
-
-    // opaque type Foo = ...
-    function (node) {
-      return node.type === 'OpaqueType';
-    }];
-
-    var isIgnoredNode = function isIgnoredNode(node) {
-      var _iteratorNormalCompletion = true;
-      var _didIteratorError = false;
-      var _iteratorError = undefined;
-
-      try {
-        for (var _iterator = ignoredNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-          var predicate = _step.value;
-
-          if (predicate(node)) {
-            return true;
-          }
-        }
-      } catch (err) {
-        _didIteratorError = true;
-        _iteratorError = err;
-      } finally {
-        try {
-          if (!_iteratorNormalCompletion && _iterator.return) {
-            _iterator.return();
-          }
-        } finally {
-          if (_didIteratorError) {
-            throw _iteratorError;
-          }
-        }
-      }
-
-      return false;
-    };
-
-    var regularCodeStartRange = void 0;
-
-    var _iteratorNormalCompletion2 = true;
-    var _didIteratorError2 = false;
-    var _iteratorError2 = undefined;
-
-    try {
-      for (var _iterator2 = sourceCode.ast.body[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-        var node = _step2.value;
-
-        if (!isIgnoredNode(node)) {
-          regularCodeStartRange = node.range;
-          break;
-        }
-      }
-    } catch (err) {
-      _didIteratorError2 = true;
-      _iteratorError2 = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion2 && _iterator2.return) {
-          _iterator2.return();
-        }
-      } finally {
-        if (_didIteratorError2) {
-          throw _iteratorError2;
-        }
-      }
-    }
-
-    if (!_lodash2.default.isArray(regularCodeStartRange)) {
-      // a source with only ignored nodes
-      return {};
-    }
-
-    return {
-      'TypeAlias, OpaqueType'(node) {
-        if (node.range[0] > regularCodeStartRange[0]) {
-          context.report({
-            message: 'All type declaration should be at the top of the file, after any import declarations.',
-            node
-          });
-        }
-      }
-    };
-  } else {
-    return {};
-  }
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js
deleted file mode 100644
index 014cb28..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js
+++ /dev/null
@@ -1,146 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var defaults = {
-  annotationStyle: 'none',
-  strict: false
-};
-
-var looksLikeFlowFileAnnotation = function looksLikeFlowFileAnnotation(comment) {
-  return (/@(?:no)?flo/i.test(comment)
-  );
-};
-
-var isValidAnnotationStyle = function isValidAnnotationStyle(node, style) {
-  if (style === 'none') {
-    return true;
-  }
-
-  return style === node.type.toLowerCase();
-};
-
-var checkAnnotationSpelling = function checkAnnotationSpelling(comment) {
-  return (/@[a-z]+\b/.test(comment) && (0, _utilities.fuzzyStringMatch)(comment.replace(/no/i, ''), '@flow', 0.2)
-  );
-};
-
-var isFlowStrict = function isFlowStrict(comment) {
-  return (/^@flow\sstrict\b/.test(comment)
-  );
-};
-
-var noFlowAnnotation = function noFlowAnnotation(comment) {
-  return (/^@noflow\b/.test(comment)
-  );
-};
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}, {
-  additionalProperties: false,
-  properties: {
-    annotationStyle: {
-      enum: ['none', 'line', 'block'],
-      type: 'string'
-    },
-    strict: {
-      enum: [true, false],
-      type: 'boolean'
-    }
-  },
-  type: 'object'
-}];
-
-var create = function create(context) {
-  var always = context.options[0] === 'always';
-  var style = _lodash2.default.get(context, 'options[1].annotationStyle', defaults.annotationStyle);
-  var flowStrict = _lodash2.default.get(context, 'options[1].strict', defaults.strict);
-
-  return {
-    Program(node) {
-      var firstToken = node.tokens[0];
-      var addAnnotation = function addAnnotation() {
-        return function (fixer) {
-          var annotation = void 0;
-          if (flowStrict) {
-            annotation = ['line', 'none'].includes(style) ? '// @flow strict\n' : '/* @flow strict */\n';
-          } else {
-            annotation = ['line', 'none'].includes(style) ? '// @flow\n' : '/* @flow */\n';
-          }
-
-          return fixer.replaceTextRange([node.start, node.start], annotation);
-        };
-      };
-
-      var addStrictAnnotation = function addStrictAnnotation() {
-        return function (fixer) {
-          var annotation = ['line', 'none'].includes(style) ? '// @flow strict\n' : '/* @flow strict */\n';
-
-          return fixer.replaceTextRange([node.start, node.range[0]], annotation);
-        };
-      };
-
-      var potentialFlowFileAnnotation = _lodash2.default.find(context.getAllComments(), function (comment) {
-        return looksLikeFlowFileAnnotation(comment.value);
-      });
-
-      if (potentialFlowFileAnnotation) {
-        if (firstToken && firstToken.start < potentialFlowFileAnnotation.start) {
-          context.report(potentialFlowFileAnnotation, 'Flow file annotation not at the top of the file.');
-        }
-        var annotationValue = potentialFlowFileAnnotation.value.trim();
-        if ((0, _utilities.isFlowFileAnnotation)(annotationValue)) {
-          if (!isValidAnnotationStyle(potentialFlowFileAnnotation, style)) {
-            var annotation = style === 'line' ? '// ' + annotationValue : '/* ' + annotationValue + ' */';
-
-            context.report({
-              fix: function fix(fixer) {
-                return fixer.replaceTextRange([potentialFlowFileAnnotation.start, potentialFlowFileAnnotation.end], annotation);
-              },
-              message: 'Flow file annotation style must be `' + annotation + '`',
-              node: potentialFlowFileAnnotation
-            });
-          }
-          if (!noFlowAnnotation(annotationValue) && flowStrict) {
-            if (!isFlowStrict(annotationValue)) {
-              var str = style === 'line' ? '`// @flow strict`' : '`/* @flow strict */`';
-              context.report({
-                fix: addStrictAnnotation(),
-                message: 'Strict Flow file annotation is required, should be ' + str,
-                node
-              });
-            }
-          }
-        } else if (checkAnnotationSpelling(annotationValue)) {
-          context.report(potentialFlowFileAnnotation, 'Misspelled or malformed Flow file annotation.');
-        } else {
-          context.report(potentialFlowFileAnnotation, 'Malformed Flow file annotation.');
-        }
-      } else if (always) {
-        context.report({
-          fix: addAnnotation(),
-          message: 'Flow file annotation is missing.',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/requireVariableType.js b/node_modules/eslint-plugin-flowtype/dist/rules/requireVariableType.js
deleted file mode 100644
index 726cf85..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/requireVariableType.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  additionalProperties: false,
-  properties: {
-    excludeVariableMatch: {
-      type: 'string'
-    },
-    excludeVariableTypes: {
-      additionalProperties: false,
-      properties: {
-        const: {
-          type: 'boolean'
-        },
-        let: {
-          type: 'boolean'
-        },
-        var: {
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }
-  },
-  type: 'object'
-}];
-
-var create = function create(context) {
-  var checkThisFile = !_lodash2.default.get(context, 'settings.flowtype.onlyFilesWithFlowAnnotation') || (0, _utilities.isFlowFile)(context);
-
-  if (!checkThisFile) {
-    return function () {};
-  }
-
-  var excludeVariableMatch = new RegExp(_lodash2.default.get(context, 'options[0].excludeVariableMatch', 'a^'));
-  var excludeVariableTypes = _lodash2.default.get(context, 'options[0].excludeVariableTypes', {});
-
-  return {
-    VariableDeclaration: function VariableDeclaration(variableDeclaration) {
-      var variableType = _lodash2.default.get(variableDeclaration, 'kind');
-
-      if (_lodash2.default.get(excludeVariableTypes, variableType)) {
-        return;
-      }
-
-      _lodash2.default.forEach(variableDeclaration.declarations, function (variableDeclarator) {
-        var identifierNode = _lodash2.default.get(variableDeclarator, 'id');
-        var identifierName = _lodash2.default.get(identifierNode, 'name');
-
-        if (excludeVariableMatch.test(identifierName)) {
-          return;
-        }
-
-        var typeAnnotation = _lodash2.default.get(identifierNode, 'typeAnnotation');
-
-        if (!typeAnnotation) {
-          context.report({
-            data: {
-              name: (0, _utilities.quoteName)(identifierName)
-            },
-            message: 'Missing {{name}}variable type annotation.',
-            node: identifierNode
-          });
-        }
-      });
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/semi.js b/node_modules/eslint-plugin-flowtype/dist/rules/semi.js
deleted file mode 100644
index bed1f3e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/semi.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var never = (context.options[0] || 'always') === 'never';
-  var sourceCode = context.getSourceCode();
-
-  var report = function report(node, missing) {
-    var lastToken = sourceCode.getLastToken(node);
-    var fix = void 0;
-    var message = void 0;
-    var loc = lastToken.loc;
-
-
-    if (missing) {
-      message = 'Missing semicolon.';
-      loc = loc.end;
-      fix = function fix(fixer) {
-        return fixer.insertTextAfter(lastToken, ';');
-      };
-    } else {
-      message = 'Extra semicolon.';
-      loc = loc.start;
-      fix = function fix(fixer) {
-        return fixer.remove(lastToken);
-      };
-    }
-
-    context.report({
-      fix,
-      loc,
-      message,
-      node
-    });
-  };
-
-  var isSemicolon = function isSemicolon(token) {
-    return token.type === 'Punctuator' && token.value === ';';
-  };
-
-  var checkForSemicolon = function checkForSemicolon(node) {
-    var lastToken = sourceCode.getLastToken(node);
-    var isLastTokenSemicolon = isSemicolon(lastToken);
-
-    if (never && isLastTokenSemicolon) {
-      report(node, false);
-    }
-
-    if (!never && !isLastTokenSemicolon) {
-      report(node, true);
-    }
-  };
-
-  return {
-    OpaqueType: checkForSemicolon,
-    TypeAlias: checkForSemicolon
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/sortKeys.js b/node_modules/eslint-plugin-flowtype/dist/rules/sortKeys.js
deleted file mode 100644
index 3efd5cf..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/sortKeys.js
+++ /dev/null
@@ -1,259 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-var defaults = {
-  caseSensitive: true,
-  natural: false
-};
-
-var schema = [{
-  enum: ['asc', 'desc'],
-  type: 'string'
-}, {
-  additionalProperties: false,
-  properties: {
-    caseSensitive: {
-      type: 'boolean'
-    },
-    natural: {
-      type: 'boolean'
-    }
-  },
-  type: 'object'
-}];
-
-/**
- * Functions to compare the order of two strings
- *
- * Based on a similar function from eslint's sort-keys rule.
- * https://github.com/eslint/eslint/blob/master/lib/rules/sort-keys.js
- *
- * @private
- */
-var isValidOrders = {
-  asc(str1, str2) {
-    return str1 <= str2;
-  },
-  ascI(str1, str2) {
-    return str1.toLowerCase() <= str2.toLowerCase();
-  },
-  ascIN(str1, str2) {
-    return isValidOrders.naturalCompare(str1.toLowerCase(), str2.toLowerCase()) <= 0;
-  },
-  ascN(str1, str2) {
-    return isValidOrders.naturalCompare(str1, str2) <= 0;
-  },
-  desc(str1, str2) {
-    return isValidOrders.asc(str2, str1);
-  },
-  descI(str1, str2) {
-    return isValidOrders.ascI(str2, str1);
-  },
-  descIN(str1, str2) {
-    return isValidOrders.ascIN(str2, str1);
-  },
-  descN(str1, str2) {
-    return isValidOrders.ascN(str2, str1);
-  },
-  naturalCompare(str1, str2) {
-    return str1.localeCompare(str2, 'en-US', { numeric: true });
-  }
-};
-
-var generateOrderedList = function generateOrderedList(context, sort, properties) {
-  var source = context.getSourceCode();
-
-  var items = properties.map(function (property) {
-    var name = (0, _utilities.getParameterName)(property, context);
-
-    var commentsBefore = source.getCommentsBefore(property);
-    var startIndex = commentsBefore.length > 0 ? commentsBefore[0].start : property.start;
-
-    if (property.type === 'ObjectTypeSpreadProperty' || !property.value) {
-      // NOTE: It could but currently does not fix recursive generic type arguments in GenericTypeAnnotation within ObjectTypeSpreadProperty.
-
-      // Maintain everything between the start of property including leading comments and the nextPunctuator `,` or `}`:
-      var nextPunctuator = source.getTokenAfter(property, {
-        filter: function filter(token) {
-          return token.type === 'Punctuator';
-        }
-      });
-      var beforePunctuator = source.getTokenBefore(nextPunctuator, {
-        includeComments: true
-      });
-      var text = source.getText().substring(startIndex, beforePunctuator.end);
-
-      return [property, text];
-    }
-
-    var colonToken = source.getTokenBefore(property.value, {
-      filter: function filter(token) {
-        return token.value === ':';
-      }
-    });
-
-    // Preserve all code until the colon verbatim:
-    var key = source.getText().substring(startIndex, colonToken.start);
-    var value = void 0;
-
-    if (property.value.type === 'ObjectTypeAnnotation') {
-      // eslint-disable-next-line no-use-before-define
-      value = ' ' + generateFix(property.value, context, sort);
-    } else {
-      // NOTE: It could but currently does not fix recursive generic type arguments in GenericTypeAnnotation.
-
-      // Maintain everything between the `:` and the next Punctuator `,` or `}`:
-      var _nextPunctuator = source.getTokenAfter(property, {
-        filter: function filter(token) {
-          return token.type === 'Punctuator';
-        }
-      });
-      var _beforePunctuator = source.getTokenBefore(_nextPunctuator, {
-        includeComments: true
-      });
-      var _text = source.getText().substring(colonToken.end, _beforePunctuator.end);
-
-      value = _text;
-    }
-
-    return [property, name, key, value];
-  });
-
-  var itemGroups = [[]];
-  var itemGroupIndex = 0;
-  items.forEach(function (item) {
-    if (item[0].type === 'ObjectTypeSpreadProperty') {
-      ++itemGroupIndex;
-      itemGroups[itemGroupIndex] = [item];
-      ++itemGroupIndex;
-      itemGroups[itemGroupIndex] = [];
-    } else {
-      itemGroups[itemGroupIndex].push(item);
-    }
-  });
-
-  var orderedList = [];
-  itemGroups.forEach(function (itemGroup) {
-    if (itemGroup[0] && itemGroup[0].type !== 'ObjectTypeSpreadProperty') {
-      itemGroup.sort(function (first, second) {
-        return sort(first[1], second[1]) ? -1 : 1;
-      });
-    }
-    orderedList.push.apply(orderedList, _toConsumableArray(itemGroup.map(function (item) {
-      if (item.length === 2) {
-        return item[1];
-      }
-
-      return item[2] + ':' + item[3];
-    })));
-  });
-
-  return orderedList;
-};
-
-var generateFix = function generateFix(node, context, sort) {
-  // this could be done much more cleanly in ESLint >=4
-  // as we can apply multiple fixes. That also means we can
-  // maintain code style in a much nicer way
-  var nodeText = void 0;
-  var newTypes = generateOrderedList(context, sort, node.properties);
-  var source = context.getSourceCode(node);
-
-  var originalSubstring = source.getText(node);
-
-  nodeText = originalSubstring;
-
-  node.properties.forEach(function (property, index) {
-    var nextPunctuator = source.getTokenAfter(property, {
-      filter: function filter(token) {
-        return token.type === 'Punctuator';
-      }
-    });
-    var beforePunctuator = source.getTokenBefore(nextPunctuator, {
-      includeComments: true
-    });
-    var commentsBefore = source.getCommentsBefore(property);
-    var startIndex = commentsBefore.length > 0 ? commentsBefore[0].start : property.start;
-    var subString = source.getText().substring(startIndex, beforePunctuator.end);
-
-    nodeText = nodeText.replace(subString, '$' + index);
-  });
-
-  newTypes.forEach(function (item, index) {
-    nodeText = nodeText.replace('$' + index, item);
-  });
-
-  return nodeText;
-};
-
-var create = function create(context) {
-  var order = _lodash2.default.get(context, ['options', 0], 'asc');
-
-  var _$get = _lodash2.default.get(context, ['options', 1], defaults),
-      natural = _$get.natural,
-      caseSensitive = _$get.caseSensitive;
-
-  var insensitive = caseSensitive === false;
-
-  var prev = void 0;
-  var checkKeyOrder = function checkKeyOrder(node) {
-    prev = null;
-
-    _lodash2.default.forEach(node.properties, function (identifierNode) {
-      var current = (0, _utilities.getParameterName)(identifierNode, context);
-      var last = prev;
-
-      // keep track of the last token
-      prev = current || last;
-
-      if (!last || !current) {
-        return;
-      }
-
-      var isValidOrder = isValidOrders[order + (insensitive ? 'I' : '') + (natural ? 'N' : '')];
-
-      if (isValidOrder(last, current) === false) {
-        context.report({
-          data: {
-            current,
-            insensitive: insensitive ? 'insensitive ' : '',
-            last,
-            natural: natural ? 'natural ' : '',
-            order
-          },
-          fix(fixer) {
-            var nodeText = generateFix(node, context, isValidOrder);
-
-            return fixer.replaceText(node, nodeText);
-          },
-          loc: identifierNode.loc,
-          message: 'Expected type annotations to be in {{natural}}{{insensitive}}{{order}}ending order. "{{current}}" should be before "{{last}}".',
-          node: identifierNode
-        });
-      }
-    });
-  };
-
-  return {
-    ObjectTypeAnnotation: checkKeyOrder
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js b/node_modules/eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js
deleted file mode 100644
index 0c8f8b9..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _typeColonSpacing = require('./typeColonSpacing');
-
-var _typeColonSpacing2 = _interopRequireDefault(_typeColonSpacing);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}, {
-  additionalProperties: false,
-  properties: {
-    allowLineBreak: {
-      type: 'boolean'
-    }
-  },
-  type: 'object'
-}];
-
-var create = function create(context) {
-  return (0, _typeColonSpacing2.default)('after', context, {
-    allowLineBreak: _lodash2.default.get(context, ['options', '1', 'allowLineBreak'], false),
-    always: _lodash2.default.get(context, ['options', '0'], 'always') === 'always'
-  });
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js b/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js
deleted file mode 100644
index 3a741f5..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../utilities');
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var never = (context.options[0] || 'never') === 'never';
-
-  return {
-    GenericTypeAnnotation(node) {
-      var types = node.typeParameters;
-
-      // Promise<foo>
-      // ^^^^^^^^^^^^ GenericTypeAnnotation (with typeParameters)
-      //         ^^^  GenericTypeAnnotation (without typeParameters)
-      if (!types) {
-        return;
-      }
-
-      var spaceBefore = types.start - node.id.end;
-
-      if (never && spaceBefore) {
-        context.report({
-          data: { name: node.id.name },
-          fix: _utilities.spacingFixers.stripSpacesAfter(node.id, spaceBefore),
-          message: 'There must be no space before "{{name}}" generic type annotation bracket',
-          node
-        });
-      }
-
-      if (!never && !spaceBefore) {
-        context.report({
-          data: { name: node.id.name },
-          fix: _utilities.spacingFixers.addSpaceAfter(node.id),
-          message: 'There must be a space before "{{name}}" generic type annotation bracket',
-          node
-        });
-      }
-
-      if (!never && spaceBefore > 1) {
-        context.report({
-          data: { name: node.id.name },
-          fix: _utilities.spacingFixers.stripSpacesAfter(node.id, spaceBefore - 1),
-          message: 'There must be one space before "{{name}}" generic type annotation bracket',
-          node
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js b/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js
deleted file mode 100644
index d23e1f4..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _typeColonSpacing = require('./typeColonSpacing');
-
-var _typeColonSpacing2 = _interopRequireDefault(_typeColonSpacing);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  return (0, _typeColonSpacing2.default)('before', context, {
-    always: context.options[0] === 'always'
-  });
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/spreadExactType.js b/node_modules/eslint-plugin-flowtype/dist/rules/spreadExactType.js
deleted file mode 100644
index 8bc9ee5..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/spreadExactType.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  return {
-    ObjectTypeAnnotation(node) {
-      var properties = node.properties;
-
-
-      properties.forEach(function (property) {
-        var type = property.type;
-
-        if (type === 'ObjectTypeSpreadProperty') {
-          var _property$argument = property.argument,
-              argumentType = _property$argument.type,
-              argumentId = _property$argument.id;
-
-          if (argumentType !== 'GenericTypeAnnotation' || argumentId.name !== '$Exact') {
-            context.report({
-              message: 'Use $Exact to make type spreading safe.',
-              node
-            });
-          }
-        }
-      });
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js
deleted file mode 100644
index 346130c..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../../utilities');
-
-var _evaluateTypical = require('./evaluateTypical');
-
-var _evaluateTypical2 = _interopRequireDefault(_evaluateTypical);
-
-var _evaluateReturnType = require('./evaluateReturnType');
-
-var _evaluateReturnType2 = _interopRequireDefault(_evaluateReturnType);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = (0, _utilities.iterateFunctionNodes)(function (context, report) {
-  var checkParam = (0, _evaluateTypical2.default)(context, report, 'parameter');
-  var checkReturnType = (0, _evaluateReturnType2.default)(context, report);
-
-  return function (functionNode) {
-    _lodash2.default.forEach(functionNode.params, checkParam);
-    checkReturnType(functionNode);
-  };
-});
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js
deleted file mode 100644
index 4c6a490..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../../utilities');
-
-exports.default = function (context, report) {
-  var sourceCode = context.getSourceCode();
-
-  return function (objectTypeIndexer) {
-    // type X = { [a: b]: c }
-    //              ^
-    report({
-      colon: (0, _utilities.getTokenBeforeParens)(sourceCode, objectTypeIndexer.key),
-      node: objectTypeIndexer
-    });
-
-    // type X = { [a: b]: c }
-    //                  ^
-    report({
-      colon: sourceCode.getTokenAfter((0, _utilities.getTokenAfterParens)(sourceCode, objectTypeIndexer.key)),
-      node: objectTypeIndexer
-    });
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js
deleted file mode 100644
index 949439e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../../utilities');
-
-var getColon = function getColon(context, objectTypeProperty) {
-  // eslint-disable-next-line init-declarations
-  var tokenIndex = 1;
-
-  if (objectTypeProperty.optional) {
-    tokenIndex++;
-  }
-
-  if (objectTypeProperty.static) {
-    tokenIndex++;
-  }
-
-  if (objectTypeProperty.variance) {
-    tokenIndex++;
-  }
-
-  return context.getSourceCode().getFirstToken(objectTypeProperty, tokenIndex);
-};
-
-// 1) type X = { foo(): A; }
-// 2) type X = { foo: () => A; }
-// the above have identical ASTs (save for their ranges)
-// case 1 doesn't have a type annotation colon and should be ignored
-var isShortPropertyFunction = function isShortPropertyFunction(objectTypeProperty) {
-  return objectTypeProperty.value.type === 'FunctionTypeAnnotation' && objectTypeProperty.start === objectTypeProperty.value.start;
-};
-
-exports.default = function (context, report) {
-  return function (objectTypeProperty) {
-    if (isShortPropertyFunction(objectTypeProperty)) {
-      // potential difference: not checked in before
-      return;
-    }
-
-    report({
-      colon: getColon(context, objectTypeProperty),
-      name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(objectTypeProperty, context)),
-      node: objectTypeProperty
-    });
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js
deleted file mode 100644
index d6ddd08..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function (context, report) {
-  var sourceCode = context.getSourceCode();
-
-  return function (functionNode) {
-    // skip FunctionTypeAnnotation, possibly another rule as it's an arrow, not a colon?
-    // (foo: number) => string
-    //              ^^^^
-    if (functionNode.returnType && functionNode.type !== 'FunctionTypeAnnotation') {
-      report({
-        colon: sourceCode.getFirstToken(functionNode.returnType),
-        node: functionNode,
-        type: 'return type'
-      });
-    }
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js
deleted file mode 100644
index e05223e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function (context, report) {
-  var sourceCode = context.getSourceCode();
-
-  return function (typeCastExpression) {
-    report({
-      colon: sourceCode.getFirstToken(typeCastExpression.typeAnnotation),
-      node: typeCastExpression,
-      type: 'type cast'
-    });
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js
deleted file mode 100644
index 5cbb3db..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (context, report, typeForMessage) {
-  var sourceCode = context.getSourceCode();
-
-  var getColon = function getColon(node, typeAnnotation) {
-    if (node.type === 'FunctionTypeParam') {
-      return sourceCode.getFirstToken(node, node.optional ? 2 : 1);
-    } else {
-      return sourceCode.getFirstToken(typeAnnotation);
-    }
-  };
-
-  return function (node) {
-    var typeAnnotation = _lodash2.default.get(node, 'typeAnnotation') || _lodash2.default.get(node, 'left.typeAnnotation');
-
-    if (typeAnnotation) {
-      report({
-        colon: getColon(node, typeAnnotation),
-        name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(node, context)),
-        node,
-        type: typeForMessage + ' type annotation'
-      });
-    }
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables.js
deleted file mode 100644
index 2a7b74a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateVariables.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (context, report) {
-  var sourceCode = context.getSourceCode();
-
-  return function (node) {
-    var declarations = _lodash2.default.get(node, 'declarations', []);
-
-    _lodash2.default.forEach(declarations, function (leaf) {
-      var typeAnnotation = _lodash2.default.get(leaf, 'id.typeAnnotation');
-
-      if (typeAnnotation) {
-        report({
-          colon: sourceCode.getFirstToken(typeAnnotation),
-          name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(leaf, context)),
-          node: leaf,
-          type: node.kind + ' type annotation'
-        });
-      }
-    });
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js
deleted file mode 100644
index 91e2874..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-var _reporter = require('./reporter');
-
-var _reporter2 = _interopRequireDefault(_reporter);
-
-var _evaluateObjectTypeIndexer = require('./evaluateObjectTypeIndexer');
-
-var _evaluateObjectTypeIndexer2 = _interopRequireDefault(_evaluateObjectTypeIndexer);
-
-var _evaluateObjectTypeProperty = require('./evaluateObjectTypeProperty');
-
-var _evaluateObjectTypeProperty2 = _interopRequireDefault(_evaluateObjectTypeProperty);
-
-var _evaluateTypeCastExpression = require('./evaluateTypeCastExpression');
-
-var _evaluateTypeCastExpression2 = _interopRequireDefault(_evaluateTypeCastExpression);
-
-var _evaluateTypical = require('./evaluateTypical');
-
-var _evaluateTypical2 = _interopRequireDefault(_evaluateTypical);
-
-var _evaluateFunctions = require('./evaluateFunctions');
-
-var _evaluateFunctions2 = _interopRequireDefault(_evaluateFunctions);
-
-var _evaluateVariables = require('./evaluateVariables');
-
-var _evaluateVariables2 = _interopRequireDefault(_evaluateVariables);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (direction, context, options) {
-  var report = (0, _reporter2.default)(direction, context, options);
-
-  return _extends({}, (0, _evaluateFunctions2.default)(context, report), {
-    ClassProperty: (0, _evaluateTypical2.default)(context, report, 'class property'),
-    ObjectTypeIndexer: (0, _evaluateObjectTypeIndexer2.default)(context, report),
-    ObjectTypeProperty: (0, _evaluateObjectTypeProperty2.default)(context, report),
-    TypeCastExpression: (0, _evaluateTypeCastExpression2.default)(context, report),
-    VariableDeclaration: (0, _evaluateVariables2.default)(context, report)
-  });
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js
deleted file mode 100644
index ae3f0aa..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js
+++ /dev/null
@@ -1,100 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../../utilities');
-
-var hasLineBreak = function hasLineBreak(direction, colon, context) {
-  var sourceCode = context.getSourceCode();
-
-  if (direction === 'before') {
-    return colon.loc.start.line !== sourceCode.getTokenBefore(colon).loc.end.line;
-  } else {
-    return sourceCode.getTokenAfter(colon).loc.start.line !== colon.loc.end.line;
-  }
-};
-
-var getSpaces = function getSpaces(direction, colon, context) {
-  var sourceCode = context.getSourceCode();
-
-  if (direction === 'before') {
-    return colon.start - sourceCode.getTokenBefore(colon).end;
-  } else {
-    return sourceCode.getTokenAfter(colon).start - colon.end;
-  }
-};
-
-exports.default = function (direction, context, _ref) {
-  var always = _ref.always,
-      allowLineBreak = _ref.allowLineBreak;
-
-  return function (_ref2) {
-    var colon = _ref2.colon,
-        node = _ref2.node,
-        _ref2$name = _ref2.name,
-        name = _ref2$name === undefined ? '' : _ref2$name,
-        _ref2$type = _ref2.type,
-        type = _ref2$type === undefined ? 'type annotation' : _ref2$type;
-
-    var lineBreak = void 0;
-    var spaces = void 0;
-
-    // Support optional names
-    // type X = { [string]: a }
-    // type X = string => string
-    if (!colon || colon.value !== ':') {
-      return;
-    }
-
-    var data = {
-      direction,
-      name,
-      type
-    };
-
-    if (hasLineBreak(direction, colon, context)) {
-      if (allowLineBreak) {
-        spaces = 1;
-      } else {
-        lineBreak = true;
-        spaces = getSpaces(direction, colon, context);
-      }
-    } else {
-      spaces = getSpaces(direction, colon, context);
-    }
-
-    if (always && lineBreak) {
-      context.report({
-        data,
-        fix: _utilities.spacingFixers.replaceWithSpace(direction, colon, spaces),
-        message: 'There must not be a line break {{direction}} {{name}}{{type}} colon.',
-        node
-      });
-    } else if (always && spaces > 1) {
-      context.report({
-        data,
-        fix: _utilities.spacingFixers.stripSpaces(direction, colon, spaces - 1),
-        message: 'There must be 1 space {{direction}} {{name}}{{type}} colon.',
-        node
-      });
-    } else if (always && spaces === 0) {
-      context.report({
-        data,
-        fix: _utilities.spacingFixers.addSpace(direction, colon),
-        message: 'There must be a space {{direction}} {{name}}{{type}} colon.',
-        node
-      });
-    } else if (!always && spaces > 0) {
-      context.report({
-        data,
-        fix: _utilities.spacingFixers.stripSpaces(direction, colon, spaces),
-        message: 'There must be no space {{direction}} {{name}}{{type}} colon.',
-        node
-      });
-    }
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeIdMatch.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeIdMatch.js
deleted file mode 100644
index adc447d..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeIdMatch.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var pattern = new RegExp(context.options[0] || '^([A-Z][a-z0-9]*)+Type$');
-
-  return {
-    TypeAlias(typeAliasNode) {
-      var typeIdentifierName = typeAliasNode.id.name;
-
-      if (!pattern.test(typeIdentifierName)) {
-        context.report(typeAliasNode, 'Type identifier \'{{name}}\' does not match pattern \'{{pattern}}\'.', {
-          name: typeIdentifierName,
-          pattern: pattern.toString()
-        });
-      }
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/typeImportStyle.js b/node_modules/eslint-plugin-flowtype/dist/rules/typeImportStyle.js
deleted file mode 100644
index 4016469..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/typeImportStyle.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [{
-  enum: ['declaration', 'identifier'],
-  type: 'string'
-}, {
-  additionalProperties: false,
-  properties: {
-    ignoreTypeDefault: {
-      type: 'boolean'
-    }
-  },
-  type: 'object'
-}];
-
-var create = function create(context) {
-  if (context.options[0] === 'declaration') {
-    return {
-      ImportDeclaration(node) {
-        if (node.importKind !== 'type') {
-          node.specifiers.forEach(function (specifier) {
-            if (specifier.importKind === 'type') {
-              context.report({
-                message: 'Unexpected type import',
-                node
-              });
-            }
-          });
-        }
-      }
-    };
-  } else {
-    // Default to 'identifier'
-    var ignoreTypeDefault = context.options[1] && context.options[1].ignoreTypeDefault;
-    var isInsideDeclareModule = false;
-
-    return {
-      DeclareModule() {
-        isInsideDeclareModule = true;
-      },
-      'DeclareModule:exit'() {
-        isInsideDeclareModule = false;
-      },
-      ImportDeclaration(node) {
-        if (node.importKind !== 'type') {
-          return;
-        }
-
-        // type specifiers are not allowed inside module declarations:
-        // https://github.com/facebook/flow/issues/7609
-        if (isInsideDeclareModule) {
-          return;
-        }
-
-        if (ignoreTypeDefault && node.specifiers[0] && node.specifiers[0].type === 'ImportDefaultSpecifier') {
-          return;
-        }
-
-        context.report({
-          fix(fixer) {
-            var imports = node.specifiers.map(function (specifier) {
-              if (specifier.type === 'ImportDefaultSpecifier') {
-                return 'type default as ' + specifier.local.name;
-              } else if (specifier.imported.name === specifier.local.name) {
-                return 'type ' + specifier.local.name;
-              } else {
-                return 'type ' + specifier.imported.name + ' as ' + specifier.local.name;
-              }
-            });
-            var source = node.source.value;
-
-            return fixer.replaceText(node, 'import {' + imports.join(', ') + '} from \'' + source + '\';');
-          },
-          message: 'Unexpected "import type"',
-          node
-        });
-      }
-    };
-  }
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js b/node_modules/eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js
deleted file mode 100644
index 0a76d0e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _utilities = require('../utilities');
-
-var schema = [{
-  enum: ['always', 'never'],
-  type: 'string'
-}];
-
-var create = function create(context) {
-  var sourceCode = context.getSourceCode();
-
-  var always = (context.options[0] || 'always') === 'always';
-
-  var check = function check(node) {
-    node.types.forEach(function (type, index) {
-      if (index + 1 === node.types.length) {
-        return;
-      }
-
-      var separator = (0, _utilities.getTokenAfterParens)(sourceCode, type);
-      var endOfType = sourceCode.getTokenBefore(separator);
-      var nextType = sourceCode.getTokenAfter(separator);
-
-      var spaceBefore = separator.start - endOfType.end;
-      var spaceAfter = nextType.start - separator.end;
-
-      var data = { type: node.type === 'UnionTypeAnnotation' ? 'union' : 'intersection' };
-
-      if (always) {
-        if (!spaceBefore) {
-          context.report({
-            data,
-            fix: _utilities.spacingFixers.addSpaceAfter(endOfType),
-            message: 'There must be a space before {{type}} type annotation separator',
-            node
-          });
-        }
-
-        if (!spaceAfter) {
-          context.report({
-            data,
-            fix: _utilities.spacingFixers.addSpaceAfter(separator),
-            message: 'There must be a space after {{type}} type annotation separator',
-            node
-          });
-        }
-      } else {
-        if (spaceBefore) {
-          context.report({
-            data,
-            fix: _utilities.spacingFixers.stripSpacesAfter(endOfType, spaceBefore),
-            message: 'There must be no space before {{type}} type annotation separator',
-            node
-          });
-        }
-
-        if (spaceAfter) {
-          context.report({
-            data,
-            fix: _utilities.spacingFixers.stripSpacesAfter(separator, spaceAfter),
-            message: 'There must be no space after {{type}} type annotation separator',
-            node
-          });
-        }
-      }
-    });
-  };
-
-  return {
-    IntersectionTypeAnnotation: check,
-    UnionTypeAnnotation: check
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/useFlowType.js b/node_modules/eslint-plugin-flowtype/dist/rules/useFlowType.js
deleted file mode 100644
index 3327e01..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/useFlowType.js
+++ /dev/null
@@ -1,63 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var schema = [];
-
-var create = function create(context) {
-  var markTypeAsUsed = function markTypeAsUsed(node) {
-    context.markVariableAsUsed(node.id.name);
-  };
-  var markTypeAsUsedWithGenericType = function markTypeAsUsedWithGenericType(node) {
-    var typeId = void 0;
-    var scope = void 0;
-    var variable = void 0;
-
-    if (node.id.type === 'Identifier') {
-      typeId = node.id;
-    } else if (node.id.type === 'QualifiedTypeIdentifier') {
-      typeId = node.id;
-      do {
-        typeId = typeId.qualification;
-      } while (typeId.qualification);
-    }
-
-    for (scope = context.getScope(); scope; scope = scope.upper) {
-      variable = scope.set.get(typeId.name);
-      if (variable && variable.defs.length) {
-        context.markVariableAsUsed(typeId.name);
-        break;
-      }
-    }
-  };
-
-  return {
-    DeclareClass: markTypeAsUsed,
-    DeclareFunction: markTypeAsUsed,
-    DeclareModule: markTypeAsUsed,
-    DeclareVariable: markTypeAsUsed,
-    GenericTypeAnnotation: markTypeAsUsedWithGenericType,
-    TypeParameterDeclaration(node) {
-      node.params.forEach(function (param) {
-        if (param.default && param.default.typeParameters) {
-          if (param.default.type === 'GenericTypeAnnotation') {
-            markTypeAsUsedWithGenericType(param.default);
-          }
-
-          param.default.typeParameters.params.forEach(function (typeParameterNode) {
-            if (typeParameterNode.type === 'GenericTypeAnnotation') {
-              markTypeAsUsedWithGenericType(typeParameterNode);
-            }
-          });
-        }
-      });
-    }
-  };
-};
-
-exports.default = {
-  create,
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/rules/validSyntax.js b/node_modules/eslint-plugin-flowtype/dist/rules/validSyntax.js
deleted file mode 100644
index 9614b7d..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/rules/validSyntax.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _utilities = require('../utilities');
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var schema = [];
-
-var create = (0, _utilities.iterateFunctionNodes)(function (context) {
-  return function (functionNode) {
-    _lodash2.default.forEach(functionNode.params, function (identifierNode) {
-      var nodeType = _lodash2.default.get(identifierNode, 'type');
-      var isAssignmentPattern = nodeType === 'AssignmentPattern';
-      var hasTypeAnnotation = Boolean(_lodash2.default.get(identifierNode, 'typeAnnotation'));
-      var leftAnnotated = Boolean(_lodash2.default.get(identifierNode, 'left.typeAnnotation'));
-
-      if (isAssignmentPattern && hasTypeAnnotation && !leftAnnotated) {
-        context.report({
-          data: {
-            name: (0, _utilities.quoteName)((0, _utilities.getParameterName)(identifierNode, context))
-          },
-          message: '{{name}}parameter type annotation must be placed on left-hand side of assignment.',
-          node: identifierNode
-        });
-      }
-    });
-  };
-});
-
-exports.default = {
-  create,
-  meta: {
-    deprecated: true
-  },
-  schema
-};
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js b/node_modules/eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js
deleted file mode 100644
index 184869e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-var _isFlowFile = require('./isFlowFile');
-
-var _isFlowFile2 = _interopRequireDefault(_isFlowFile);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (cb, context) {
-  var checkThisFile = !_lodash2.default.get(context, 'settings.flowtype.onlyFilesWithFlowAnnotation') || (0, _isFlowFile2.default)(context);
-
-  if (!checkThisFile) {
-    return function () {};
-  }
-
-  return cb(context);
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js b/node_modules/eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js
deleted file mode 100644
index 35b6778..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// Creates an array of letter pairs from a given array
-// origin: https://github.com/d3/d3-array/blob/master/src/pairs.js
-var arrayPairs = function arrayPairs(array) {
-  var ii = 0;
-  var length = array.length - 1;
-  var letter = array[0];
-  var pairs = new Array(length < 0 ? 0 : length);
-
-  while (ii < length) {
-    pairs[ii] = [letter, letter = array[++ii]];
-  }
-
-  return pairs;
-};
-/* eslint-enable */
-
-exports.default = function (needle, haystack) {
-  var weight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.5;
-
-  // Based on http://stackoverflow.com/a/23305385
-
-  var stringSimilarity = function stringSimilarity(str1, str2) {
-    if (str1.length > 0 && str2.length > 0) {
-      var pairs1 = arrayPairs(str1);
-      var pairs2 = arrayPairs(str2);
-      var unionLen = pairs1.length + pairs2.length;
-      var hitCount = void 0;
-
-      hitCount = 0;
-
-      _lodash2.default.forIn(pairs1, function (val1) {
-        _lodash2.default.forIn(pairs2, function (val2) {
-          if (_lodash2.default.isEqual(val1, val2)) {
-            hitCount++;
-          }
-        });
-      });
-
-      if (hitCount > 0) {
-        return 2 * hitCount / unionLen;
-      }
-    }
-
-    return 0;
-  };
-
-  return stringSimilarity(needle, haystack) >= Number(weight);
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/getParameterName.js b/node_modules/eslint-plugin-flowtype/dist/utilities/getParameterName.js
deleted file mode 100644
index 0d82485..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/getParameterName.js
+++ /dev/null
@@ -1,94 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.default = function (identifierNode, context) {
-  if (_lodash2.default.has(identifierNode, 'name')) {
-    return identifierNode.name;
-  }
-
-  if (_lodash2.default.has(identifierNode, 'left.name')) {
-    return identifierNode.left.name;
-  }
-
-  if (_lodash2.default.has(identifierNode, 'key.name')) {
-    return identifierNode.key.name;
-  }
-
-  if (identifierNode.type === 'RestElement') {
-    return identifierNode.argument.name;
-  }
-
-  if (identifierNode.type === 'ObjectTypeProperty') {
-    var tokenIndex = void 0;
-
-    tokenIndex = 0;
-
-    if (identifierNode.static) {
-      tokenIndex++;
-    }
-
-    if (identifierNode.variance) {
-      tokenIndex++;
-    }
-
-    if (identifierNode.kind === 'set' || identifierNode.kind === 'get') {
-      tokenIndex++;
-    }
-
-    return context.getSourceCode().getFirstToken(identifierNode, tokenIndex).value;
-  }
-
-  if (identifierNode.type === 'ObjectTypeIndexer') {
-    var _tokenIndex = void 0;
-
-    _tokenIndex = 0;
-
-    if (identifierNode.static) {
-      _tokenIndex++;
-    }
-
-    if (identifierNode.variance) {
-      _tokenIndex++;
-    }
-
-    _tokenIndex++;
-
-    var id = context.getSourceCode().getFirstToken(identifierNode, _tokenIndex);
-    var colonOrBrace = context.getSourceCode().getTokenAfter(id);
-    if (colonOrBrace.value === ':') {
-      return id.value;
-    } else {
-      return null;
-    }
-  }
-
-  if (identifierNode.type === 'FunctionTypeParam') {
-    return context.getSourceCode().getFirstToken(identifierNode).value;
-  }
-
-  if (identifierNode.type === 'ObjectPattern' || identifierNode.type === 'ArrayPattern') {
-    var text = context.getSourceCode().getText(identifierNode);
-
-    if (identifierNode.typeAnnotation) {
-      return text.replace(context.getSourceCode().getText(identifierNode.typeAnnotation), '').trim();
-    } else {
-      return text;
-    }
-  }
-  if (_lodash2.default.get(identifierNode, 'left.type') === 'ObjectPattern') {
-    return context.getSourceCode().getText(identifierNode.left);
-  }
-
-  return null;
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js b/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js
deleted file mode 100644
index 75b95e6..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var getTokenAfterParens = function getTokenAfterParens(sourceCode, node) {
-  var token = void 0;
-
-  token = sourceCode.getTokenAfter(node);
-
-  while (token.type === 'Punctuator' && token.value === ')') {
-    token = sourceCode.getTokenAfter(token);
-  }
-
-  return token;
-};
-
-exports.default = getTokenAfterParens;
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js b/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js
deleted file mode 100644
index 6b67a5e..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var getTokenBeforeParens = function getTokenBeforeParens(sourceCode, node) {
-  var token = void 0;
-
-  token = sourceCode.getTokenBefore(node);
-
-  while (token.type === 'Punctuator' && token.value === '(') {
-    token = sourceCode.getTokenBefore(token);
-  }
-
-  return token;
-};
-
-exports.default = getTokenBeforeParens;
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/index.js b/node_modules/eslint-plugin-flowtype/dist/utilities/index.js
deleted file mode 100644
index 98fde28..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/index.js
+++ /dev/null
@@ -1,97 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.spacingFixers = exports.quoteName = exports.iterateFunctionNodes = exports.isFlowFileAnnotation = exports.isFlowFile = exports.getTokenBeforeParens = exports.getTokenAfterParens = exports.getParameterName = exports.fuzzyStringMatch = exports.checkFlowFileAnnotation = undefined;
-
-var _checkFlowFileAnnotation = require('./checkFlowFileAnnotation');
-
-Object.defineProperty(exports, 'checkFlowFileAnnotation', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_checkFlowFileAnnotation).default;
-  }
-});
-
-var _fuzzyStringMatch = require('./fuzzyStringMatch');
-
-Object.defineProperty(exports, 'fuzzyStringMatch', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_fuzzyStringMatch).default;
-  }
-});
-
-var _getParameterName = require('./getParameterName');
-
-Object.defineProperty(exports, 'getParameterName', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_getParameterName).default;
-  }
-});
-
-var _getTokenAfterParens = require('./getTokenAfterParens');
-
-Object.defineProperty(exports, 'getTokenAfterParens', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_getTokenAfterParens).default;
-  }
-});
-
-var _getTokenBeforeParens = require('./getTokenBeforeParens');
-
-Object.defineProperty(exports, 'getTokenBeforeParens', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_getTokenBeforeParens).default;
-  }
-});
-
-var _isFlowFile = require('./isFlowFile');
-
-Object.defineProperty(exports, 'isFlowFile', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_isFlowFile).default;
-  }
-});
-
-var _isFlowFileAnnotation = require('./isFlowFileAnnotation');
-
-Object.defineProperty(exports, 'isFlowFileAnnotation', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_isFlowFileAnnotation).default;
-  }
-});
-
-var _iterateFunctionNodes = require('./iterateFunctionNodes');
-
-Object.defineProperty(exports, 'iterateFunctionNodes', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_iterateFunctionNodes).default;
-  }
-});
-
-var _quoteName = require('./quoteName');
-
-Object.defineProperty(exports, 'quoteName', {
-  enumerable: true,
-  get: function get() {
-    return _interopRequireDefault(_quoteName).default;
-  }
-});
-
-var _spacingFixers = require('./spacingFixers');
-
-var spacingFixers = _interopRequireWildcard(_spacingFixers);
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-exports.spacingFixers = spacingFixers;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFile.js b/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFile.js
deleted file mode 100644
index 4c9554a..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFile.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _isFlowFileAnnotation = require('./isFlowFileAnnotation');
-
-var _isFlowFileAnnotation2 = _interopRequireDefault(_isFlowFileAnnotation);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/* eslint-disable flowtype/require-valid-file-annotation */
-/**
- * Checks whether a file has an @flow or @noflow annotation.
- *
- * @param context
- * @param [strict] - By default, the function returns true if the file starts with @flow but not if it
- * starts by @noflow. When the strict flag is set to false, the function returns true if the flag has @noflow also.
- */
-/* eslint-enable flowtype/require-valid-file-annotation */
-exports.default = function (context) {
-  var strict = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
-
-  var comments = context.getAllComments();
-
-  if (!comments.length) {
-    return false;
-  }
-
-  return comments.some(function (comment) {
-    return (0, _isFlowFileAnnotation2.default)(comment.value, strict);
-  });
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js b/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js
deleted file mode 100644
index f378fc2..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _lodash = require('lodash');
-
-var _lodash2 = _interopRequireDefault(_lodash);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var FLOW_MATCHER = /^@(?:no)?flow$/;
-
-exports.default = function (comment, strict) {
-  // eslint-disable-next-line flowtype/require-valid-file-annotation
-  // The flow parser splits comments with the following regex to look for the @flow flag.
-  // See https://github.com/facebook/flow/blob/a96249b93541f2f7bfebd8d62085bf7a75de02f2/src/parsing/docblock.ml#L39
-  return _lodash2.default.some(comment.split(/[ \t\r\n\\*/]+/), function (commentPart) {
-    var match = commentPart.match(FLOW_MATCHER);
-
-    if (match === null) {
-      return false;
-    }
-
-    return !strict || match[0] === '@flow';
-  });
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js b/node_modules/eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js
deleted file mode 100644
index bbe1c14..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function (iterator) {
-  return function (context) {
-    for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-      rest[_key - 1] = arguments[_key];
-    }
-
-    var nodeIterator = iterator.apply(undefined, [context].concat(rest));
-
-    return {
-      ArrowFunctionExpression: nodeIterator,
-      FunctionDeclaration: nodeIterator,
-      FunctionExpression: nodeIterator,
-      FunctionTypeAnnotation: nodeIterator
-    };
-  };
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/quoteName.js b/node_modules/eslint-plugin-flowtype/dist/utilities/quoteName.js
deleted file mode 100644
index 62917ce..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/quoteName.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function (name) {
-  return name ? '"' + name + '" ' : '';
-};
-
-module.exports = exports.default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/dist/utilities/spacingFixers.js b/node_modules/eslint-plugin-flowtype/dist/utilities/spacingFixers.js
deleted file mode 100644
index b07d692..0000000
--- a/node_modules/eslint-plugin-flowtype/dist/utilities/spacingFixers.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var stripSpacesBefore = exports.stripSpacesBefore = function stripSpacesBefore(node, spaces) {
-  return function (fixer) {
-    return fixer.removeRange([node.start - spaces, node.start]);
-  };
-};
-
-var stripSpacesAfter = exports.stripSpacesAfter = function stripSpacesAfter(node, spaces) {
-  return function (fixer) {
-    return fixer.removeRange([node.end, node.end + spaces]);
-  };
-};
-
-var addSpaceBefore = exports.addSpaceBefore = function addSpaceBefore(node) {
-  return function (fixer) {
-    return fixer.insertTextBefore(node, ' ');
-  };
-};
-
-var addSpaceAfter = exports.addSpaceAfter = function addSpaceAfter(node) {
-  return function (fixer) {
-    return fixer.insertTextAfter(node, ' ');
-  };
-};
-
-var replaceWithSpaceBefore = exports.replaceWithSpaceBefore = function replaceWithSpaceBefore(node, spaces) {
-  return function (fixer) {
-    return fixer.replaceTextRange([node.start - spaces, node.start], ' ');
-  };
-};
-
-var replaceWithSpaceAfter = exports.replaceWithSpaceAfter = function replaceWithSpaceAfter(node, spaces) {
-  return function (fixer) {
-    return fixer.replaceTextRange([node.end, node.end + spaces], ' ');
-  };
-};
-
-var stripSpaces = exports.stripSpaces = function stripSpaces(direction, node, spaces) {
-  if (direction === 'before') {
-    return stripSpacesBefore(node, spaces);
-  } else {
-    return stripSpacesAfter(node, spaces);
-  }
-};
-
-var addSpace = exports.addSpace = function addSpace(direction, node) {
-  if (direction === 'before') {
-    return addSpaceBefore(node);
-  } else {
-    return addSpaceAfter(node);
-  }
-};
-
-var replaceWithSpace = exports.replaceWithSpace = function replaceWithSpace(direction, node, spaces) {
-  if (direction === 'before') {
-    return replaceWithSpaceBefore(node, spaces);
-  } else {
-    return replaceWithSpaceAfter(node, spaces);
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/package.json b/node_modules/eslint-plugin-flowtype/package.json
deleted file mode 100644
index d7cfa2c..0000000
--- a/node_modules/eslint-plugin-flowtype/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
-  "author": {
-    "email": "gajus@gajus.com",
-    "name": "Gajus Kuizinas",
-    "url": "http://gajus.com"
-  },
-  "dependencies": {
-    "lodash": "^4.17.15"
-  },
-  "description": "Flowtype linting rules for ESLint.",
-  "devDependencies": {
-    "ajv": "^6.10.2",
-    "babel-cli": "^6.26.0",
-    "babel-eslint": "^10.0.2",
-    "babel-plugin-add-module-exports": "^1.0.2",
-    "babel-plugin-transform-object-rest-spread": "^6.26.0",
-    "babel-preset-env": "^1.7.0",
-    "babel-register": "^6.26.0",
-    "chai": "^4.2.0",
-    "eclint": "^2.8.1",
-    "eslint": "^5.13.0",
-    "eslint-config-canonical": "^17.3.4",
-    "gitdown": "^3.1.1",
-    "glob": "^7.1.4",
-    "husky": "^3.0.3",
-    "jsonlint": "^1.6.3",
-    "mocha": "^6.2.0",
-    "rimraf": "^3.0.0",
-    "semantic-release": "^15.13.19"
-  },
-  "engines": {
-    "node": ">=4"
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "npm run check-docs && npm run check-tests && npm run lint && npm run test && npm run build && npm run format-json && eclint fix ./src/**/* ./tests/**/*"
-    }
-  },
-  "keywords": [
-    "eslint",
-    "plugin",
-    "flowtype"
-  ],
-  "license": "BSD-3-Clause",
-  "main": "./dist/index.js",
-  "name": "eslint-plugin-flowtype",
-  "peerDependencies": {
-    "eslint": ">=6.1.0"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/gajus/eslint-plugin-flowtype"
-  },
-  "scripts": {
-    "build": "rimraf ./dist && babel ./src --out-dir ./dist --copy-files",
-    "check-docs": "babel-node ./src/bin/checkDocs",
-    "check-tests": "babel-node ./src/bin/checkTests",
-    "create-readme": "gitdown ./.README/README.md --output-file ./README.md && npm run documentation-add-assertions",
-    "documentation-add-assertions": "babel-node ./src/bin/addAssertions",
-    "format-json": "jsonlint --sort-keys --in-place --indent \"  \" ./src/configs/recommended.json",
-    "lint": "eslint ./src ./tests",
-    "test": "mocha --require babel-core/register ./tests/rules/index.js"
-  },
-  "version": "4.6.0"
-}
diff --git a/node_modules/eslint-plugin-github/README.md b/node_modules/eslint-plugin-github/README.md
index 6b602ec..db14ae0 100644
--- a/node_modules/eslint-plugin-github/README.md
+++ b/node_modules/eslint-plugin-github/README.md
@@ -3,25 +3,36 @@
 ## Installation
 
 ```sh
-$ npm install --save-dev eslint
-$ npm install --save-dev eslint-plugin-github
+$ npm install --save-dev eslint eslint-plugin-github
 ```
 
-Run initialization wizard.
+## Setup
 
-```sh
-$ node_modules/.bin/eslint-github-init
-```
+Add `github` to your list of plugins in your ESLint config.
 
-Set up `npm run lint` script.
-
+JSON ESLint config example:
 ```json
 {
-  "private": true,
-  "scripts": {
-    "lint": "github-lint"
-  }
+  "plugins": ["github"]
 }
 ```
 
-The `github-lint` command will run `eslint`, `flow` and flow coverage checking depending on your project configuration.
+Extend the configs you wish to use.
+
+JSON ESLint config example:
+```json
+{
+  "extends": ["plugin:github/recommended"]
+}
+```
+
+The available configs are:
+
+- `app`
+  - Rules useful for github applications.
+- `browser`
+  - Useful rules when shipping your app to the browser.
+- `recommended`
+  - Recommended rules for every application.
+- `typescript`
+  - Useful rules when writing TypeScript.
diff --git a/node_modules/eslint-plugin-github/bin/eslint-github-init.js b/node_modules/eslint-plugin-github/bin/eslint-github-init.js
deleted file mode 100755
index 9ed4b48..0000000
--- a/node_modules/eslint-plugin-github/bin/eslint-github-init.js
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/env node
-
-const inquirer = require('inquirer')
-const fs = require('fs')
-const path = require('path')
-
-const defaults = {
-  project: 'lib',
-  env: 'browser',
-  typeSystem: 'none',
-  react: true,
-  relay: true
-}
-
-const packagePath = path.resolve(process.cwd(), 'package.json')
-if (fs.existsSync(packagePath)) {
-  const packageJSON = JSON.parse(fs.readFileSync(packagePath, 'utf8'))
-  defaults.project = packageJSON.private ? 'app' : 'lib'
-
-  const dependencies = Object.keys(packageJSON.dependencies || {})
-  const devDependencies = Object.keys(packageJSON.devDependencies || {})
-
-  defaults.react = dependencies.includes('react') || devDependencies.includes('react')
-  defaults.relay = dependencies.includes('relay') || devDependencies.includes('relay')
-
-  if (dependencies.includes('flow-bin') || devDependencies.includes('flow-bin')) {
-    defaults.typeSystem = 'flow'
-  }
-  if (dependencies.includes('typescript') || devDependencies.includes('typescript')) {
-    defaults.typeSystem = 'typescript'
-  }
-}
-
-const questions = [
-  {
-    type: 'list',
-    name: 'project',
-    message: 'Is this project a web app or reuseable library?',
-    choices: ['app', 'lib'],
-    default: defaults.project
-  },
-  {
-    type: 'list',
-    name: 'env',
-    message: 'Which environment does this library target?',
-    choices: ['browser', 'node'],
-    default: defaults.env
-  },
-  {
-    type: 'list',
-    name: 'typeSystem',
-    message: 'What type system are you using?',
-    choices: ['flow', 'typescript', 'none'],
-    default: defaults.typeSystem
-  },
-  {
-    type: 'confirm',
-    name: 'relay',
-    message: 'Are you using Relay?',
-    default: defaults.relay
-  },
-  {
-    type: 'confirm',
-    name: 'react',
-    message: 'Are you using React?',
-    default: defaults.react,
-    when: answers => answers.env === 'browser'
-  }
-]
-
-inquirer.prompt(questions).then(answers => {
-  const eslintrc = {extends: ['plugin:github/es6']}
-
-  if (answers.env === 'node') {
-    eslintrc.extends.push('plugin:github/node')
-  } else if (answers.project === 'app') {
-    eslintrc.extends.push('plugin:github/app')
-  } else if (answers.env === 'browser') {
-    eslintrc.extends.push('plugin:github/browser')
-  }
-
-  if (answers.typeSystem === 'flow') eslintrc.extends.push('plugin:github/flow')
-  if (answers.typeSystem === 'typescript') {
-    eslintrc.extends.push('plugin:github/typescript')
-    eslintrc.parser = '@typescript-eslint/parser'
-
-    // Create a `tsconfig.json`.
-    const tsconfigPath = path.resolve(process.cwd(), 'tsconfig.json')
-    if (!fs.existsSync(tsconfigPath)) {
-      const tsconfigDefaults = {
-        compilerOptions: {
-          target: 'es2015',
-          module: 'esnext',
-          lib: ['esnext', 'dom'],
-          allowSyntheticDefaultImports: true,
-          moduleResolution: 'node'
-        }
-      }
-      if (answers.react) {
-        tsconfigDefaults.compilerOptions.jsx = 'react'
-      }
-      fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfigDefaults, null, '  '), 'utf8')
-    }
-  }
-
-  if (answers.react) eslintrc.extends.push('plugin:github/react')
-  if (answers.relay) eslintrc.extends.push('plugin:github/relay')
-
-  fs.writeFileSync(path.resolve(process.cwd(), '.eslintrc.json'), JSON.stringify(eslintrc, null, '  '), 'utf8')
-
-  const prettierConfig = []
-  if (answers.typeSystem === 'flow') prettierConfig.push('/* @flow */')
-
-  prettierConfig.push("module.exports = require('eslint-plugin-github/prettier.config')")
-  prettierConfig.push('')
-
-  fs.writeFileSync(path.resolve(process.cwd(), 'prettier.config.js'), prettierConfig.join('\n'), 'utf8')
-})
diff --git a/node_modules/eslint-plugin-github/bin/eslint-ignore-errors.js b/node_modules/eslint-plugin-github/bin/eslint-ignore-errors.js
index 3d71b83..643d3f7 100755
--- a/node_modules/eslint-plugin-github/bin/eslint-ignore-errors.js
+++ b/node_modules/eslint-plugin-github/bin/eslint-ignore-errors.js
@@ -11,22 +11,22 @@
 const execFile = require('child_process').execFile
 
 execFile('eslint', ['--format', 'json', process.argv[2]], (error, stdout) => {
-  JSON.parse(stdout).forEach(result => {
+  for (const result of JSON.parse(stdout)) {
     const filename = result.filePath
     const jsLines = fs.readFileSync(filename, 'utf8').split('\n')
     const offensesByLine = {}
     let addedLines = 0
 
     // Produces {47: ['github/no-d-none', 'github/no-blur'], 83: ['github/no-blur']}
-    result.messages.forEach(message => {
+    for (const message of result.messages) {
       if (offensesByLine[message.line]) {
         offensesByLine[message.line].push(message.ruleId)
       } else {
         offensesByLine[message.line] = [message.ruleId]
       }
-    })
+    }
 
-    Object.keys(offensesByLine).forEach(line => {
+    for (const line of Object.keys(offensesByLine)) {
       const lineIndex = line - 1 + addedLines
       const previousLine = jsLines[lineIndex - 1]
       const ruleIds = offensesByLine[line].join(', ')
@@ -37,12 +37,12 @@
         jsLines.splice(lineIndex, 0, `${leftPad}/* eslint-disable-next-line ${ruleIds} */`)
       }
       addedLines += 1
-    })
+    }
 
     if (result.messages.length !== 0) {
       fs.writeFileSync(filename, jsLines.join('\n'), 'utf8')
     }
-  })
+  }
 })
 
 function isDisableComment(line) {
diff --git a/node_modules/eslint-plugin-github/bin/eslint-unused-modules.js b/node_modules/eslint-plugin-github/bin/eslint-unused-modules.js
deleted file mode 100755
index 9dc8ea3..0000000
--- a/node_modules/eslint-plugin-github/bin/eslint-unused-modules.js
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env node
-
-const {CLIEngine} = require('eslint')
-
-// TODO: Figure out how to deactive other rules.
-let cli = new CLIEngine({
-  rules: {
-    'github/dependency-graph': 1
-  }
-})
-cli.executeOnFiles(process.argv.slice(2))
-
-// TODO: Figure out how to deactive other rules.
-cli = new CLIEngine({
-  rules: {
-    'github/unused-export': 2,
-    'github/unused-module': 2
-  }
-})
-
-const report = cli.executeOnFiles(process.argv.slice(2))
-const formatter = cli.getFormatter()
-
-process.stdout.write(formatter(report.results))
-
-if (report.errorCount > 0) {
-  process.exit(1)
-}
diff --git a/node_modules/eslint-plugin-github/bin/flow-coverage.js b/node_modules/eslint-plugin-github/bin/flow-coverage.js
deleted file mode 100755
index 65c92bc..0000000
--- a/node_modules/eslint-plugin-github/bin/flow-coverage.js
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env node
-// usage: flow-coverage
-//
-// Run flow coverage on project.
-
-const childProcess = require('child_process')
-const flow = require('flow-bin')
-const fs = require('fs')
-const {join} = require('path')
-
-const execFile = (file, args) =>
-  new Promise((resolve, reject) => {
-    childProcess.execFile(
-      file,
-      args,
-      {
-        maxBuffer: Infinity
-      },
-      (error, stdout, stderr) => {
-        if (error) {
-          reject(error)
-        } else {
-          resolve({stdout, stderr})
-        }
-      }
-    )
-  })
-
-async function execFileJSON(file, args) {
-  args.push('--json')
-  const {stdout, stderr} = await execFile(file, args)
-  if (stderr) {
-    return JSON.parse(stderr)
-  } else {
-    return JSON.parse(stdout)
-  }
-}
-
-function computeCoverage(covered, uncovered) {
-  const total = covered + uncovered
-  if (total) {
-    return 100 * (covered / total)
-  } else {
-    return 100
-  }
-}
-
-async function getCoverage(path) {
-  const json = await execFileJSON(flow, ['coverage', path])
-  if (json && json.expressions) {
-    const uncoveredCount = json.expressions['uncovered_count']
-    const coveredCount = json.expressions['covered_count']
-    const covered = computeCoverage(coveredCount, uncoveredCount)
-    return {path, uncoveredCount, coveredCount, covered}
-  } else {
-    return {path, uncoveredCount: 0, coveredCount: 0, covered: 0}
-  }
-}
-
-async function startFlow() {
-  try {
-    await execFile(flow, ['start', '--wait'])
-  } catch (error) {
-    if (error.code === 11) {
-      /* already running */
-    } else {
-      throw error
-    }
-  }
-}
-
-// const ignore = [/\.flowconfig$/, /\.json$/, /\.test\.js$/, /\/__generated__\//, /\/flow-typed\//, /\/node_modules\//]
-//
-// async function flowList() {
-//   execFile('git', ['grep', '--name-only', '--', '@flow'])
-//
-//   const paths = await execFileJSON(flow, ['ls'])
-//   return paths.filter(path => !ignore.some(re => re.test(path)))
-// }
-
-async function grepFlowFiles() {
-  const {stdout} = await execFile('git', ['grep', '--null', '--name-only', '--', '@flow'])
-  return stdout.split('\0').filter(path => path)
-}
-
-;(async function() {
-  let threshold = 0
-
-  const packageJsonPath = join(process.cwd(), 'package.json')
-  if (fs.existsSync(packageJsonPath)) {
-    const packageJson = require(packageJsonPath)
-    threshold = (packageJson.flow && packageJson.flow.coverageThreshold) || 0
-  }
-
-  await startFlow()
-
-  const files = await grepFlowFiles()
-
-  let totalCoveredCount = 0
-  let totalUncoveredCount = 0
-
-  for (const file of files) {
-    const {path, covered, coveredCount, uncoveredCount} = await getCoverage(file)
-    process.stdout.write(`${covered.toFixed()}\t${path}\n`)
-    totalCoveredCount += coveredCount
-    totalUncoveredCount += uncoveredCount
-  }
-
-  const totalCoverage = computeCoverage(totalCoveredCount, totalUncoveredCount)
-
-  process.stdout.write(`${totalCoverage.toFixed()}\t(total)\n`)
-  if (totalCoverage < threshold) {
-    process.stderr.write(`expected at least ${threshold}% coverage, but was ${totalCoverage.toFixed()}%\n`)
-    process.exit(1)
-  }
-})().catch(error => {
-  process.stderr.write(`${error}\n`)
-  process.exit(2)
-})
diff --git a/node_modules/eslint-plugin-github/bin/github-lint.js b/node_modules/eslint-plugin-github/bin/github-lint.js
deleted file mode 100755
index e9998be..0000000
--- a/node_modules/eslint-plugin-github/bin/github-lint.js
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env node
-// usage: github-lint
-//
-// Run ESLint and Flow on project.
-
-const childProcess = require('child_process')
-const fs = require('fs')
-const path = require('path')
-const supportsColors = require('supports-color')
-
-const hasBasicColorSupport = supportsColors.stdout.hasBasic && supportsColors.stderr.hasBasic
-
-function execFile(command, args) {
-  return new Promise(resolve => {
-    childProcess.execFile(command, args, {maxBuffer: 1024 ** 2}, (error, stdout, stderr) => {
-      resolve({code: error ? error.code : 0, stdout, stderr})
-    })
-  })
-}
-
-;(async function() {
-  let runs = 0
-  const codes = []
-  const commands = []
-
-  const packageJson = fs.existsSync('package.json') ? require(path.join(process.cwd(), 'package.json')) : {}
-
-  let eslintOptions = ['--report-unused-disable-directives', '.']
-
-  if (hasBasicColorSupport) {
-    eslintOptions = eslintOptions.concat(['--color'])
-  }
-
-  const isTypeScriptProject = fs.existsSync('tsconfig.json')
-
-  if (isTypeScriptProject) {
-    eslintOptions = eslintOptions.concat(['--ext', '.js,.ts,.tsx'])
-  }
-
-  commands.push(['eslint', eslintOptions])
-
-  if (isTypeScriptProject) {
-    commands.push(['tsc', ['--noEmit']])
-  }
-
-  if (fs.existsSync('.flowconfig')) {
-    commands.push(['flow', ['check']])
-  }
-
-  if (packageJson && packageJson.flow && packageJson.flow.coverageThreshold) {
-    commands.push(['flow-coverage', []])
-  }
-
-  for (const [command, args] of commands) {
-    if (runs > 0) process.stderr.write('\n')
-    process.stderr.write(`> ${command} ${args.join(' ')}\n`)
-
-    const {code, stdout, stderr} = await execFile(command, args)
-    codes.push(code)
-    if (stderr) process.stderr.write(stderr)
-    if (stdout) process.stdout.write(stdout)
-
-    runs++
-  }
-
-  const nonzero = codes.find(code => code !== 0)
-  if (nonzero) {
-    process.stderr.write(`\nCommand failed: ${nonzero}\n`)
-    process.exit(nonzero)
-  }
-})().catch(error => {
-  setTimeout(() => {
-    throw error
-  })
-})
diff --git a/node_modules/eslint-plugin-github/bin/npm-check-github-package-requirements.js b/node_modules/eslint-plugin-github/bin/npm-check-github-package-requirements.js
deleted file mode 100755
index c55b0d8..0000000
--- a/node_modules/eslint-plugin-github/bin/npm-check-github-package-requirements.js
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env node
-
-const fs = require('fs')
-const path = require('path')
-
-const checks = []
-function check(name, callback) {
-  checks.push([checks.length + 1, name, callback])
-}
-
-function run() {
-  process.stdout.write(`1..${checks.length}\n`)
-  checks.forEach(([count, name, callback]) => {
-    Promise.resolve()
-      .then(callback)
-      .then(() => {
-        process.stdout.write(`ok ${count} - ${name}\n`)
-      })
-      .catch(error => {
-        process.stdout.write(`not ok ${count} - ${name}\n  ${error}\n`)
-      })
-  })
-}
-
-const packageRoot = process.argv[2]
-
-check('package.json exists', () => {
-  const packageJsonPath = path.join(packageRoot, 'package.json')
-
-  if (!fs.existsSync(packageJsonPath)) {
-    throw new Error('package.json does not exist')
-  }
-})
-
-check('package.json license is set', () => {
-  const packageJsonPath = path.join(packageRoot, 'package.json')
-  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
-
-  if (!pkg.license) {
-    throw new Error('license not set')
-  }
-})
-
-run()
diff --git a/node_modules/eslint-plugin-github/lib/configs/app.js b/node_modules/eslint-plugin-github/lib/configs/app.js
deleted file mode 100644
index fa41d90..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/app.js
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
-  plugins: ['github'],
-  rules: {
-    'github/authenticity-token': 'error',
-    'github/js-class-name': 'error',
-    'github/no-d-none': 'error',
-    'github/no-dataset': 'error',
-    'github/no-then': 'error'
-  },
-  extends: [require.resolve('./recommended'), require.resolve('./es6'), require.resolve('./browser')]
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/browser.js b/node_modules/eslint-plugin-github/lib/configs/browser.js
index aceab84..c2e5c44 100644
--- a/node_modules/eslint-plugin-github/lib/configs/browser.js
+++ b/node_modules/eslint-plugin-github/lib/configs/browser.js
@@ -8,8 +8,11 @@
     'github/async-preventdefault': 'error',
     'github/get-attribute': 'error',
     'github/no-blur': 'error',
+    'github/no-dataset': 'error',
     'github/no-innerText': 'error',
-    'github/unescaped-html-literal': 'error'
-  },
-  extends: [require.resolve('./recommended')]
+    'github/unescaped-html-literal': 'error',
+    'github/no-useless-passive': 'error',
+    'github/require-passive-events': 'error',
+    'github/prefer-observers': 'error'
+  }
 }
diff --git a/node_modules/eslint-plugin-github/lib/configs/es6.js b/node_modules/eslint-plugin-github/lib/configs/es6.js
deleted file mode 100644
index a2ec3eb..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/es6.js
+++ /dev/null
@@ -1,51 +0,0 @@
-module.exports = {
-  parserOptions: {
-    ecmaFeatures: {
-      ecmaVersion: 6
-    },
-    sourceType: 'module'
-  },
-  env: {
-    es6: true
-  },
-  plugins: ['github', 'import'],
-  rules: {
-    'github/array-foreach': 'error',
-    'import/default': 'error',
-    'import/export': 'error',
-    'import/first': 'error',
-    'import/named': 'error',
-    'import/namespace': 'error',
-    'import/no-absolute-path': 'error',
-    'import/no-anonymous-default-export': [
-      'error',
-      {
-        allowAnonymousClass: false,
-        allowAnonymousFunction: false,
-        allowArray: true,
-        allowArrowFunction: false,
-        allowLiteral: true,
-        allowObject: true
-      }
-    ],
-    'import/no-deprecated': 'error',
-    'import/no-duplicates': 'error',
-    'import/no-mutable-exports': 'error',
-    'import/no-named-as-default-member': 'error',
-    'import/no-named-as-default': 'error',
-    'import/no-namespace': 'error',
-    'no-var': 'error',
-    'prefer-const': 'error',
-    'prefer-rest-params': 'error',
-    'prefer-spread': 'error',
-    'prefer-template': 'error'
-  },
-  settings: {
-    'import/resolver': {
-      node: {
-        extensions: ['.js', '.ts']
-      }
-    }
-  },
-  extends: [require.resolve('./recommended')]
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/flow.js b/node_modules/eslint-plugin-github/lib/configs/flow.js
deleted file mode 100644
index 84050a4..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/flow.js
+++ /dev/null
@@ -1,14 +0,0 @@
-module.exports = {
-  parser: 'babel-eslint',
-  plugins: ['flowtype', 'github'],
-  rules: {
-    'flowtype/define-flow-type': 'error',
-    'flowtype/require-valid-file-annotation': ['error', 'always', {annotationStyle: 'block'}],
-    'flowtype/use-flow-type': 'error',
-    'flowtype/no-flow-fix-me-comments': 'error',
-    'flowtype/no-primitive-constructor-types': 'error',
-    'flowtype/no-weak-types': 'error',
-    'github/no-flow-weak': 'error',
-    'github/no-noflow': 'error'
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/internal.js b/node_modules/eslint-plugin-github/lib/configs/internal.js
new file mode 100644
index 0000000..8de1086
--- /dev/null
+++ b/node_modules/eslint-plugin-github/lib/configs/internal.js
@@ -0,0 +1,8 @@
+module.exports = {
+  plugins: ['github'],
+  rules: {
+    'github/authenticity-token': 'error',
+    'github/js-class-name': 'error',
+    'github/no-d-none': 'error'
+  }
+}
diff --git a/node_modules/eslint-plugin-github/lib/configs/node.js b/node_modules/eslint-plugin-github/lib/configs/node.js
deleted file mode 100644
index 637faa7..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/node.js
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
-  parser: 'babel-eslint',
-  env: {
-    node: true
-  },
-  plugins: ['github'],
-  rules: {
-    'no-console': 'off'
-  },
-  extends: [require.resolve('./recommended')]
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/react.js b/node_modules/eslint-plugin-github/lib/configs/react.js
deleted file mode 100644
index afd311d..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/react.js
+++ /dev/null
@@ -1,136 +0,0 @@
-module.exports = {
-  parser: 'babel-eslint',
-  parserOptions: {
-    ecmaFeatures: {
-      jsx: true
-    }
-  },
-  settings: {
-    react: {
-      version: 'detect'
-    }
-  },
-  env: {
-    jest: true,
-    node: true
-  },
-  plugins: ['jest', 'jsx-a11y', 'react', 'relay'],
-  rules: {
-    'jest/no-disabled-tests': 'warn',
-    'jest/no-focused-tests': 'error',
-    'jest/no-identical-title': 'error',
-    'jest/valid-expect': 'error',
-    'jsx-a11y/accessible-emoji': 'error',
-    'jsx-a11y/alt-text': 'error',
-    'jsx-a11y/anchor-has-content': 'error',
-    'jsx-a11y/anchor-is-valid': 'error',
-    'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
-    'jsx-a11y/aria-props': 'error',
-    'jsx-a11y/aria-proptypes': 'error',
-    'jsx-a11y/aria-role': 'error',
-    'jsx-a11y/aria-unsupported-elements': 'error',
-    'jsx-a11y/click-events-have-key-events': 'error',
-    'jsx-a11y/heading-has-content': 'error',
-    'jsx-a11y/html-has-lang': 'error',
-    'jsx-a11y/iframe-has-title': 'error',
-    'jsx-a11y/img-redundant-alt': 'error',
-    'jsx-a11y/interactive-supports-focus': [
-      'error',
-      {
-        tabbable: ['button', 'checkbox', 'link', 'searchbox', 'spinbutton', 'switch', 'textbox']
-      }
-    ],
-    'jsx-a11y/label-has-for': [
-      2,
-      {
-        components: ['Label'],
-        required: {
-          some: ['nesting', 'id']
-        },
-        allowChildren: false
-      }
-    ],
-    'jsx-a11y/media-has-caption': 'error',
-    'jsx-a11y/mouse-events-have-key-events': 'error',
-    'jsx-a11y/no-access-key': 'error',
-    'jsx-a11y/no-autofocus': 'error',
-    'jsx-a11y/no-distracting-elements': 'error',
-
-    'jsx-a11y/no-interactive-element-to-noninteractive-role': [
-      'error',
-      {
-        tr: ['none', 'presentation']
-      }
-    ],
-    'jsx-a11y/no-noninteractive-element-interactions': [
-      'error',
-      {
-        handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp']
-      }
-    ],
-    'jsx-a11y/no-noninteractive-element-to-interactive-role': [
-      'error',
-      {
-        ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-        ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-        li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
-        table: ['grid'],
-        td: ['gridcell']
-      }
-    ],
-    'jsx-a11y/no-noninteractive-tabindex': [
-      'error',
-      {
-        tags: [],
-        roles: ['tabpanel']
-      }
-    ],
-    'jsx-a11y/no-onchange': 'error',
-    'jsx-a11y/no-redundant-roles': 'error',
-    'jsx-a11y/no-static-element-interactions': [
-      'error',
-      {
-        handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp']
-      }
-    ],
-    'jsx-a11y/role-has-required-aria-props': 'error',
-    'jsx-a11y/role-supports-aria-props': 'error',
-    'jsx-a11y/scope': 'error',
-    'jsx-a11y/tabindex-no-positive': 'error',
-    'react/jsx-boolean-value': 'error',
-    'react/jsx-handler-names': 'error',
-    'react/jsx-key': 'error',
-    'react/jsx-no-duplicate-props': 'error',
-    'react/jsx-no-undef': 'error',
-    'react/jsx-pascal-case': 'error',
-    'react/jsx-uses-react': 'error',
-    'react/jsx-uses-vars': 'error',
-    'react/no-array-index-key': 'error',
-    'react/no-children-prop': 'error',
-    'react/no-danger-with-children': 'error',
-    'react/no-danger': 'error',
-    'react/no-deprecated': 'error',
-    'react/no-did-mount-set-state': 'error',
-    'react/no-did-update-set-state': 'error',
-    'react/no-direct-mutation-state': 'error',
-    'react/no-find-dom-node': 'error',
-    'react/no-is-mounted': 'error',
-    'react/no-multi-comp': ['error', {ignoreStateless: true}],
-    'react/no-render-return-value': 'error',
-    'react/no-string-refs': 'error',
-    'react/no-unknown-property': 'error',
-    'react/no-unused-prop-types': 'error',
-    'react/prefer-es6-class': 'error',
-    'react/prefer-stateless-function': 'error',
-    'react/react-in-jsx-scope': 'error',
-    'react/require-render-return': 'error',
-    'react/self-closing-comp': 'error',
-    'react/sort-comp': 'error',
-    'react/sort-prop-types': 'error',
-    'react/style-prop-object': 'error',
-    'react/void-dom-elements-no-children': 'error',
-    'relay/graphql-naming': 'error',
-    'relay/graphql-syntax': 'error'
-  },
-  extends: [require.resolve('./browser')]
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/recommended.js b/node_modules/eslint-plugin-github/lib/configs/recommended.js
index 45f5170..c164a39 100644
--- a/node_modules/eslint-plugin-github/lib/configs/recommended.js
+++ b/node_modules/eslint-plugin-github/lib/configs/recommended.js
@@ -1,8 +1,14 @@
 module.exports = {
-  plugins: ['github', 'prettier', 'eslint-comments', 'jsdoc'],
-  env: {
-    commonjs: true
+  parserOptions: {
+    ecmaFeatures: {
+      ecmaVersion: 6
+    },
+    sourceType: 'module'
   },
+  env: {
+    es6: true
+  },
+  plugins: ['github', 'prettier', 'eslint-comments', 'import'],
   rules: {
     'constructor-super': 'error',
     'eslint-comments/disable-enable-pair': 'off',
@@ -13,28 +19,32 @@
     'eslint-comments/no-unused-enable': 'error',
     'eslint-comments/no-use': ['error', {allow: ['eslint', 'eslint-disable-next-line', 'eslint-env', 'globals']}],
     'func-style': ['error', 'declaration', {allowArrowFunctions: true}],
+    'github/array-foreach': 'error',
     'github/no-implicit-buggy-globals': 'error',
-    'jsdoc/check-alignment': 'error',
-    'jsdoc/check-examples': ['error', {rejectExampleCodeRegex: '<.*>'}],
-    'jsdoc/check-param-names': 'error',
-    'jsdoc/check-syntax': 'error',
-    'jsdoc/check-tag-names': 'error',
-    'jsdoc/check-types': 'error',
-    'jsdoc/implements-on-classes': 'error',
-    'jsdoc/match-description': 'error',
-    'jsdoc/newline-after-description': 'error',
-    'jsdoc/require-description': 'error',
-    'jsdoc/require-description-complete-sentence': 'error',
-    'jsdoc/require-hyphen-before-param-description': 'error',
-    'jsdoc/require-param': 'error',
-    'jsdoc/require-param-description': 'error',
-    'jsdoc/require-param-name': 'error',
-    'jsdoc/require-param-type': 'error',
-    'jsdoc/require-returns': 'error',
-    'jsdoc/require-returns-check': 'error',
-    'jsdoc/require-returns-description': 'error',
-    'jsdoc/require-returns-type': 'error',
-    'jsdoc/valid-types': 'error',
+    'github/no-then': 'error',
+    'import/default': 'error',
+    'import/export': 'error',
+    'import/first': 'error',
+    'import/named': 'error',
+    'import/namespace': 'error',
+    'import/no-absolute-path': 'error',
+    'import/no-anonymous-default-export': [
+      'error',
+      {
+        allowAnonymousClass: false,
+        allowAnonymousFunction: false,
+        allowArray: true,
+        allowArrowFunction: false,
+        allowLiteral: true,
+        allowObject: true
+      }
+    ],
+    'import/no-deprecated': 'error',
+    'import/no-duplicates': 'error',
+    'import/no-mutable-exports': 'error',
+    'import/no-named-as-default': 'error',
+    'import/no-named-as-default-member': 'error',
+    'import/no-namespace': 'error',
     'no-case-declarations': 'error',
     'no-class-assign': 'error',
     'no-compare-neg-zero': 'error',
@@ -82,13 +92,25 @@
     'no-unused-vars': 'error',
     'no-useless-concat': 'error',
     'no-useless-escape': 'error',
+    'no-var': 'error',
     'object-shorthand': ['error', 'always', {avoidQuotes: true}],
+    'prefer-const': 'error',
     'prefer-promise-reject-errors': 'error',
+    'prefer-rest-params': 'error',
+    'prefer-spread': 'error',
+    'prefer-template': 'error',
     'prettier/prettier': 'error',
     'require-yield': 'error',
     'use-isnan': 'error',
     'valid-typeof': 'error',
     camelcase: ['error', {properties: 'always'}],
     eqeqeq: ['error', 'smart']
+  },
+  settings: {
+    'import/resolver': {
+      node: {
+        extensions: ['.js', '.ts']
+      }
+    }
   }
 }
diff --git a/node_modules/eslint-plugin-github/lib/configs/relay.js b/node_modules/eslint-plugin-github/lib/configs/relay.js
deleted file mode 100644
index 45b9b3e..0000000
--- a/node_modules/eslint-plugin-github/lib/configs/relay.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = {
-  parser: 'babel-eslint',
-  plugins: ['graphql'],
-  rules: {
-    'graphql/no-deprecated-fields': [
-      'error',
-      {
-        env: 'relay',
-        tagName: 'graphql'
-      }
-    ]
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/configs/typescript.js b/node_modules/eslint-plugin-github/lib/configs/typescript.js
index 3ae2440..ff480be 100644
--- a/node_modules/eslint-plugin-github/lib/configs/typescript.js
+++ b/node_modules/eslint-plugin-github/lib/configs/typescript.js
@@ -1,13 +1,15 @@
 module.exports = {
   extends: ['plugin:@typescript-eslint/recommended', 'prettier', 'prettier/@typescript-eslint'],
-  parserOptions: {
-    project: './tsconfig.json'
-  },
+  parser: '@typescript-eslint/parser',
   plugins: ['@typescript-eslint', 'github'],
   rules: {
+    camelcase: 'off',
+    'no-unused-vars': 'off',
+    '@typescript-eslint/interface-name-prefix': 'off',
     '@typescript-eslint/array-type': ['error', {default: 'array-simple'}],
     '@typescript-eslint/no-use-before-define': 'off',
     '@typescript-eslint/explicit-member-accessibility': 'off',
-    '@typescript-eslint/explicit-function-return-type': 'off'
+    '@typescript-eslint/explicit-function-return-type': 'off',
+    '@typescript-eslint/no-non-null-assertion': 'off'
   }
 }
diff --git a/node_modules/eslint-plugin-github/lib/dependency-graph.js b/node_modules/eslint-plugin-github/lib/dependency-graph.js
deleted file mode 100644
index d92a38e..0000000
--- a/node_modules/eslint-plugin-github/lib/dependency-graph.js
+++ /dev/null
@@ -1,67 +0,0 @@
-const readPkgUp = require('read-pkg-up')
-const path = require('path')
-
-const dependencyGraph = new Map()
-exports.dependencyGraph = dependencyGraph
-
-exports.entries = new Set()
-
-const entryWhitelist = [/\/tests?\//, /\.test\.js$/, /\.config\.js$/]
-
-exports.checkEntriesWhitelist = filename => {
-  for (const re of entryWhitelist) {
-    if (re.test(filename)) {
-      exports.entries.add(filename)
-    }
-  }
-}
-
-const packageFile = readPkgUp.sync()
-
-function recordPackageEntry(entry) {
-  exports.entries.add(path.resolve(packageFile.path, '..', entry))
-}
-
-if (packageFile) {
-  for (const key in packageFile.packageJson) {
-    if (key === 'main') {
-      recordPackageEntry(packageFile.packageJson.main)
-    } else if (key === 'entries') {
-      packageFile.packageJson.entries.forEach(recordPackageEntry)
-    } else if (/-bundles$/.test(key)) {
-      // github-asset-pipeline internal manifest format
-      Object.keys(packageFile.packageJson[key]).forEach(recordPackageEntry)
-    }
-  }
-}
-
-function gatherImported() {
-  const filenames = new Set()
-  const identifiers = new Set()
-
-  for (const {imports} of dependencyGraph.values()) {
-    for (const [importedFilename, importedIdentifiers] of imports) {
-      // require.resolve will expand any symlinks to their fully qualified
-      // directories. We can use this (with the absolute path given in
-      // importedFilename to quickly expand symlinks, which allows us to have
-      // symlinks (aka workspaces) in node_modules, and not fail the lint.
-      const fullyQualifiedImportedFilename = require.resolve(importedFilename)
-      filenames.add(fullyQualifiedImportedFilename)
-
-      for (const importedIdentifier of importedIdentifiers) {
-        identifiers.add(`${fullyQualifiedImportedFilename}#${importedIdentifier}`)
-      }
-    }
-  }
-
-  return {filenames, identifiers}
-}
-
-let importedCache = null
-
-exports.imported = function() {
-  if (!importedCache) {
-    importedCache = gatherImported()
-  }
-  return importedCache
-}
diff --git a/node_modules/eslint-plugin-github/lib/index.js b/node_modules/eslint-plugin-github/lib/index.js
index 748c326..63f9847 100644
--- a/node_modules/eslint-plugin-github/lib/index.js
+++ b/node_modules/eslint-plugin-github/lib/index.js
@@ -4,31 +4,23 @@
     'async-currenttarget': require('./rules/async-currenttarget'),
     'async-preventdefault': require('./rules/async-preventdefault'),
     'authenticity-token': require('./rules/authenticity-token'),
-    'dependency-graph': require('./rules/dependency-graph'),
-    'flow-to-typescript': require('./rules/flow-to-typescript'),
     'get-attribute': require('./rules/get-attribute'),
     'js-class-name': require('./rules/js-class-name'),
     'no-blur': require('./rules/no-blur'),
     'no-d-none': require('./rules/no-d-none'),
     'no-dataset': require('./rules/no-dataset'),
-    'no-flow-weak': require('./rules/no-flow-weak'),
     'no-implicit-buggy-globals': require('./rules/no-implicit-buggy-globals'),
     'no-innerText': require('./rules/no-innerText'),
-    'no-noflow': require('./rules/no-noflow'),
     'no-then': require('./rules/no-then'),
     'unescaped-html-literal': require('./rules/unescaped-html-literal'),
-    'unused-export': require('./rules/unused-export'),
-    'unused-module': require('./rules/unused-module')
+    'no-useless-passive': require('./rules/no-useless-passive'),
+    'prefer-observers': require('./rules/prefer-observers'),
+    'require-passive-events': require('./rules/require-passive-events')
   },
   configs: {
-    app: require('./configs/app'),
+    internal: require('./configs/internal'),
     browser: require('./configs/browser'),
-    es6: require('./configs/es6'),
-    flow: require('./configs/flow'),
-    node: require('./configs/node'),
-    react: require('./configs/react'),
     recommended: require('./configs/recommended'),
-    relay: require('./configs/relay'),
     typescript: require('./configs/typescript')
   }
 }
diff --git a/node_modules/eslint-plugin-github/lib/rules/dependency-graph.js b/node_modules/eslint-plugin-github/lib/rules/dependency-graph.js
deleted file mode 100644
index e830477..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/dependency-graph.js
+++ /dev/null
@@ -1,110 +0,0 @@
-const resolve = require('eslint-module-utils/resolve').default
-
-const {dependencyGraph, checkEntriesWhitelist, entries} = require('../dependency-graph')
-
-const STAR = '*'
-const DEFAULT = 'default'
-
-module.exports = {
-  meta: {
-    docs: {}
-  },
-
-  create(context) {
-    const filename = context.getFilename()
-    const sourceCode = context.getSourceCode()
-
-    const imports = new Map()
-    const exports = new Set()
-
-    checkEntriesWhitelist(filename)
-
-    function recordImport(importPath, symbol) {
-      let symbols = imports.get(importPath)
-      if (!symbols) {
-        symbols = new Set()
-        imports.set(importPath, symbols)
-      }
-
-      if (symbol) {
-        symbols.add(symbol)
-      }
-    }
-
-    function recordExport(symbol) {
-      if (symbol) {
-        exports.add(symbol)
-      }
-    }
-
-    return {
-      ImportDeclaration(node) {
-        const resolvedPath = resolve(node.source.value, context)
-        if (!resolvedPath) {
-          return
-        }
-
-        recordImport(resolvedPath)
-
-        node.specifiers.forEach(specifier => {
-          if (specifier.type === 'ImportDefaultSpecifier') {
-            recordImport(resolvedPath, DEFAULT)
-          } else if (specifier.type === 'ImportSpecifier') {
-            recordImport(resolvedPath, specifier.imported.name)
-          }
-        })
-      },
-      ExportDefaultDeclaration() {
-        recordExport(DEFAULT)
-      },
-      ExportNamedDeclaration(node) {
-        if (node.declaration == null) return
-
-        if (node.declaration.id != null) {
-          recordExport(node.declaration.id.name)
-        }
-
-        if (node.declaration.declarations != null) {
-          for (const declaration of node.declaration.declarations) {
-            recordExport(declaration.id.name)
-          }
-        }
-      },
-      CallExpression(node) {
-        if (node.callee.type === 'Identifier' && node.callee.name === 'require' && node.arguments.length === 1) {
-          const pathNode = node.arguments[0]
-          if (pathNode.type === 'Literal' && typeof pathNode.value === 'string') {
-            const resolvedPath =
-              pathNode.type === 'Literal' && typeof pathNode.value === 'string' && resolve(pathNode.value, context)
-
-            if (resolvedPath) {
-              recordImport(resolvedPath, STAR)
-            }
-          }
-        }
-      },
-      MemberExpression(node) {
-        if (context.getScope().type !== 'module') {
-          return
-        }
-
-        if (node.object.name === 'module' && node.property.name === 'exports') {
-          recordExport(DEFAULT)
-        }
-
-        if (node.object.name === 'exports') {
-          recordExport(node.property.name)
-        }
-      },
-      Program() {
-        const comments = sourceCode.getAllComments()
-        if (comments.some(token => token.type === 'Shebang')) {
-          entries.add(filename)
-        }
-      },
-      'Program:exit': function() {
-        dependencyGraph.set(filename, {imports, exports})
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/rules/flow-to-typescript.js b/node_modules/eslint-plugin-github/lib/rules/flow-to-typescript.js
deleted file mode 100644
index b681d93..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/flow-to-typescript.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = {
-  meta: {
-    docs: {},
-    schema: []
-  },
-
-  create(context) {
-    return {
-      Program(node) {
-        const comments = context.getSourceCode().getAllComments()
-        const enabledTypeChecker = comments.some(comment => comment.value.trim().match(/@ts-check|@flow/))
-        if (!enabledTypeChecker) {
-          context.report(node, 'File must be type checked by TypeScript or Flow.')
-        }
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/rules/js-class-name.js b/node_modules/eslint-plugin-github/lib/rules/js-class-name.js
index 14f27a1..e2f2a6c 100644
--- a/node_modules/eslint-plugin-github/lib/rules/js-class-name.js
+++ b/node_modules/eslint-plugin-github/lib/rules/js-class-name.js
@@ -5,17 +5,17 @@
   },
 
   create(context) {
-    var allJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*/g
-    var validJsClassNameRegexp = /^js(-[a-z0-9]+)+$/g
-    var endWithJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*$/g
+    const allJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*/g
+    const validJsClassNameRegexp = /^js(-[a-z0-9]+)+$/g
+    const endWithJsClassNameRegexp = /\bjs-[_a-zA-Z0-9-]*$/g
 
     function checkStringFormat(node, str) {
-      var matches = str.match(allJsClassNameRegexp) || []
-      matches.forEach(function(match) {
+      const matches = str.match(allJsClassNameRegexp) || []
+      for (const match of matches) {
         if (!match.match(validJsClassNameRegexp)) {
           context.report(node, 'js- class names should be lowercase and only contain dashes.')
         }
-      })
+      }
     }
 
     function checkStringEndsWithJSClassName(node, str) {
@@ -40,13 +40,13 @@
         }
       },
       TemplateLiteral(node) {
-        node.quasis.forEach(function(quasi) {
+        for (const quasi of node.quasis) {
           checkStringFormat(quasi, quasi.value.raw)
 
           if (quasi.tail === false) {
             checkStringEndsWithJSClassName(quasi, quasi.value.raw)
           }
-        })
+        }
       }
     }
   }
diff --git a/node_modules/eslint-plugin-github/lib/rules/no-flow-weak.js b/node_modules/eslint-plugin-github/lib/rules/no-flow-weak.js
deleted file mode 100644
index bcd9c96..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/no-flow-weak.js
+++ /dev/null
@@ -1,24 +0,0 @@
-module.exports = {
-  meta: {
-    docs: {},
-    schema: []
-  },
-
-  create(context) {
-    function handleComment(comment) {
-      var value = comment.value.trim()
-      if (value.match(/@flow weak/)) {
-        context.report(comment, "Do not use Flow 'weak' mode checking, use @flow instead.")
-      }
-    }
-
-    return {
-      LineComment: handleComment,
-      BlockComment: handleComment,
-      Program() {
-        const comments = context.getSourceCode().getAllComments()
-        comments.forEach(handleComment)
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js b/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js
index ef48b02..6634881 100644
--- a/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js
+++ b/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js
@@ -7,14 +7,14 @@
   create(context) {
     return {
       Program() {
-        var scope = context.getScope()
+        const scope = context.getScope()
 
-        scope.variables.forEach(function(variable) {
+        for (const variable of scope.variables) {
           if (variable.writeable) {
             return
           }
 
-          variable.defs.forEach(function(def) {
+          for (const def of variable.defs) {
             if (
               def.type === 'FunctionName' ||
               def.type === 'ClassName' ||
@@ -23,8 +23,8 @@
             ) {
               context.report(def.node, 'Implicit global variable, assign as global property instead.')
             }
-          })
-        })
+          }
+        }
       }
     }
   }
diff --git a/node_modules/eslint-plugin-github/lib/rules/no-noflow.js b/node_modules/eslint-plugin-github/lib/rules/no-noflow.js
deleted file mode 100644
index 4d8d35a..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/no-noflow.js
+++ /dev/null
@@ -1,24 +0,0 @@
-module.exports = {
-  meta: {
-    docs: {},
-    schema: []
-  },
-
-  create(context) {
-    function handleComment(comment) {
-      var value = comment.value.trim()
-      if (value.match(/@noflow/)) {
-        context.report(comment, 'Do not disable Flow type checker, use @flow instead.')
-      }
-    }
-
-    return {
-      LineComment: handleComment,
-      BlockComment: handleComment,
-      Program() {
-        const comments = context.getSourceCode().getAllComments()
-        comments.forEach(handleComment)
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js b/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js
new file mode 100644
index 0000000..f9eef57
--- /dev/null
+++ b/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js
@@ -0,0 +1,46 @@
+const passiveEventListenerNames = new Set(['touchstart', 'touchmove', 'wheel', 'mousewheel'])
+
+const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && prop.value && prop.value.value === true
+
+module.exports = {
+  meta: {
+    docs: {},
+    fixable: 'code'
+  },
+
+  create(context) {
+    return {
+      ['CallExpression[callee.property.name="addEventListener"]']: function(node) {
+        const [name, listener, options] = node.arguments
+        if (name.type !== 'Literal') return
+        if (passiveEventListenerNames.has(name.value)) return
+        if (options && options.type === 'ObjectExpression') {
+          const i = options.properties.findIndex(propIsPassiveTrue)
+          if (i === -1) return
+          const passiveProp = options.properties[i]
+          const l = options.properties.length
+          const source = context.getSourceCode()
+          context.report({
+            node: passiveProp,
+            message: `"${name.value}" event listener is not cancellable and so \`passive: true\` does nothing.`,
+            fix(fixer) {
+              const removals = []
+              if (l === 1) {
+                removals.push(options)
+                removals.push(...source.getTokensBetween(listener, options))
+              } else {
+                removals.push(passiveProp)
+                if (i > 0) {
+                  removals.push(...source.getTokensBetween(options.properties[i - 1], passiveProp))
+                } else {
+                  removals.push(...source.getTokensBetween(passiveProp, options.properties[i + 1]))
+                }
+              }
+              return removals.map(t => fixer.remove(t))
+            }
+          })
+        }
+      }
+    }
+  }
+}
diff --git a/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js b/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js
new file mode 100644
index 0000000..0e9824a
--- /dev/null
+++ b/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js
@@ -0,0 +1,24 @@
+const observerMap = {
+  scroll: 'IntersectionObserver',
+  resize: 'ResizeObserver'
+}
+module.exports = {
+  meta: {
+    docs: {},
+    fixable: 'code'
+  },
+
+  create(context) {
+    return {
+      ['CallExpression[callee.property.name="addEventListener"]']: function(node) {
+        const [name] = node.arguments
+        if (name.type !== 'Literal') return
+        if (!(name.value in observerMap)) return
+        context.report({
+          node,
+          message: `Avoid using "${name.value}" event listener. Consider using ${observerMap[name.value]} instead`
+        })
+      }
+    }
+  }
+}
diff --git a/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js b/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js
new file mode 100644
index 0000000..72b8a68
--- /dev/null
+++ b/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js
@@ -0,0 +1,22 @@
+const passiveEventListenerNames = new Set(['touchstart', 'touchmove', 'wheel', 'mousewheel'])
+
+const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && prop.value && prop.value.value === true
+
+module.exports = {
+  meta: {
+    docs: {}
+  },
+
+  create(context) {
+    return {
+      ['CallExpression[callee.property.name="addEventListener"]']: function(node) {
+        const [name, listener, options] = node.arguments
+        if (!listener) return
+        if (name.type !== 'Literal') return
+        if (!passiveEventListenerNames.has(name.value)) return
+        if (options && options.type === 'ObjectExpression' && options.properties.some(propIsPassiveTrue)) return
+        context.report(node, `High Frequency Events like "${name.value}" should be \`passive: true\``)
+      }
+    }
+  }
+}
diff --git a/node_modules/eslint-plugin-github/lib/rules/unused-export.js b/node_modules/eslint-plugin-github/lib/rules/unused-export.js
deleted file mode 100644
index 7a37a90..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/unused-export.js
+++ /dev/null
@@ -1,56 +0,0 @@
-const depGraph = require('../dependency-graph')
-
-module.exports = {
-  meta: {
-    docs: {}
-  },
-
-  create(context) {
-    const filename = context.getFilename()
-    const {identifiers} = depGraph.imported()
-
-    if (depGraph.entries.has(filename)) {
-      return {}
-    }
-
-    if (identifiers.has(`${filename}#*`)) {
-      return {}
-    }
-
-    return {
-      ExportDefaultDeclaration(node) {
-        if (!identifiers.has(`${filename}#default`)) {
-          context.report(node, 'Export was not imported by any modules.')
-        }
-      },
-      ExportNamedDeclaration(node) {
-        if (node.declaration == null) return
-
-        if (node.declaration.id != null) {
-          if (!identifiers.has(`${filename}#${node.declaration.id.name}`)) {
-            context.report(node, 'Export was not imported by any modules.')
-          }
-        }
-
-        if (node.declaration.declarations != null) {
-          for (const declaration of node.declaration.declarations) {
-            if (!identifiers.has(`${filename}#${declaration.id.name}`)) {
-              context.report(node, 'Export was not imported by any modules.')
-            }
-          }
-        }
-      },
-      MemberExpression(node) {
-        if (context.getScope().type !== 'module') {
-          return
-        }
-
-        if (node.object.name === 'exports') {
-          if (!identifiers.has(`${filename}#${node.property.name}`)) {
-            context.report(node.parent, 'Export was not imported by any modules.')
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/lib/rules/unused-module.js b/node_modules/eslint-plugin-github/lib/rules/unused-module.js
deleted file mode 100644
index 7426479..0000000
--- a/node_modules/eslint-plugin-github/lib/rules/unused-module.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const depGraph = require('../dependency-graph')
-
-module.exports = {
-  meta: {
-    docs: {}
-  },
-
-  create(context) {
-    const filename = context.getFilename()
-
-    if (depGraph.entries.has(filename)) {
-      return {}
-    }
-
-    return {
-      Program(node) {
-        const {filenames} = depGraph.imported()
-        if (!filenames.has(filename)) {
-          context.report(node, 'Module was not imported by any files.')
-        }
-      }
-    }
-  }
-}
diff --git a/node_modules/eslint-plugin-github/package.json b/node_modules/eslint-plugin-github/package.json
index c82d89b..d700da4 100644
--- a/node_modules/eslint-plugin-github/package.json
+++ b/node_modules/eslint-plugin-github/package.json
@@ -1,23 +1,18 @@
 {
   "name": "eslint-plugin-github",
-  "version": "3.4.1",
+  "version": "4.1.1",
   "description": "An opinionated collection of ESLint shared configs and rules used by GitHub.",
   "main": "lib/index.js",
   "entries": [
     "lib/formatters/stylish-fixes.js"
   ],
   "bin": {
-    "eslint-github-init": "bin/eslint-github-init.js",
-    "eslint-ignore-errors": "bin/eslint-ignore-errors.js",
-    "eslint-unused-modules": "bin/eslint-unused-modules.js",
-    "flow-coverage": "bin/flow-coverage.js",
-    "github-lint": "bin/github-lint.js",
-    "npm-check-github-package-requirements": "bin/npm-check-github-package-requirements.js"
+    "eslint-ignore-errors": "bin/eslint-ignore-errors.js"
   },
   "scripts": {
     "pretest": "mkdir -p node_modules/ && ln -fs $(pwd) node_modules/",
     "eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
-    "test": "npm run eslint-check && bin/github-lint.js && mocha tests/"
+    "test": "npm run eslint-check && eslint . && mocha tests/"
   },
   "repository": {
     "type": "git",
@@ -29,45 +24,28 @@
     "url": "https://github.com/github/eslint-plugin-github/issues"
   },
   "homepage": "https://github.com/github/eslint-plugin-github#readme",
-  "engines": {
-    "node": ">=8.11.1"
-  },
   "dependencies": {
-    "@typescript-eslint/eslint-plugin": ">=2.5.0",
-    "@typescript-eslint/parser": ">=2.5.0",
-    "babel-eslint": ">=10.0.3",
-    "eslint-config-prettier": ">=6.4.0",
+    "@typescript-eslint/eslint-plugin": ">=2.25.0",
+    "@typescript-eslint/parser": ">=2.25.0",
+    "eslint-config-prettier": ">=6.10.1",
     "eslint-plugin-eslint-comments": ">=3.0.1",
-    "eslint-plugin-flowtype": ">=4.3.0",
-    "eslint-plugin-graphql": ">=3.0.1",
-    "eslint-plugin-import": ">=2.18.2",
-    "eslint-plugin-jsdoc": ">=15.5.2",
-    "eslint-plugin-jsx-a11y": ">=6.0.0",
-    "eslint-plugin-prettier": ">=2.6.0",
-    "eslint-plugin-react": ">=7.7.0",
-    "eslint-plugin-relay": ">=1.0.0",
+    "eslint-plugin-import": ">=2.20.1",
+    "eslint-plugin-prettier": ">=3.1.2",
     "eslint-rule-documentation": ">=1.0.0",
-    "inquirer": ">=6.0.0",
     "prettier": ">=1.12.0",
-    "read-pkg-up": ">=6.0.0",
-    "supports-color": "^7.1.0",
-    "svg-element-attributes": ">=1.2.1"
+    "svg-element-attributes": ">=1.3.1"
   },
+  "prettier": "@github/prettier-config",
   "peerDependencies": {
-    "eslint": ">=4.19.0",
-    "flow-bin": ">=0.70.0",
-    "graphql": ">=14.0.0"
+    "eslint": ">=4.19.0"
   },
   "files": [
     "bin/*",
-    "lib/*",
-    "prettier.config.js"
+    "lib/*"
   ],
   "devDependencies": {
-    "eslint": ">=6.5.1",
-    "flow-bin": ">=0.110.1",
-    "graphql": ">=14.5.8",
-    "mocha": ">=6.2.2",
-    "rimraf": "^3.0.0"
+    "@github/prettier-config": "0.0.4",
+    "eslint": ">=7.0.0",
+    "mocha": ">=7.1.1"
   }
 }
diff --git a/node_modules/eslint-plugin-github/prettier.config.js b/node_modules/eslint-plugin-github/prettier.config.js
deleted file mode 100644
index 9ef9978..0000000
--- a/node_modules/eslint-plugin-github/prettier.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
-  printWidth: 120,
-  semi: false,
-  singleQuote: true,
-  bracketSpacing: false
-}
diff --git a/node_modules/eslint-plugin-graphql/.eslintrc.js b/node_modules/eslint-plugin-graphql/.eslintrc.js
deleted file mode 100644
index 772bbd0..0000000
--- a/node_modules/eslint-plugin-graphql/.eslintrc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-module.exports = {
-  extends: "eslint:recommended",
-  parserOptions: {
-    ecmaVersion: 2018,
-    sourceType: "module"
-  },
-  env: {
-    mocha: true,
-    node: true,
-    es6: true,
-  }
-};
diff --git a/node_modules/eslint-plugin-graphql/.github/PULL_REQUEST_TEMPLATE.md b/node_modules/eslint-plugin-graphql/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 585f4ee..0000000
--- a/node_modules/eslint-plugin-graphql/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,15 +0,0 @@
-<!--
-  Thanks for filing a pull request on eslint-plugin-graphql!
-
-  Please look at the following checklist to ensure that your PR
-  can be accepted quickly:
--->
-
-TODO:
-
-- [ ] Make sure all of the significant new logic is covered by tests
-- [ ] Rebase your changes on master so that they can be merged easily
-- [ ] Make sure all tests pass
-- [ ] Update CHANGELOG.md with your change
-- [ ] If this was a change that affects the external API, update the README
-
diff --git a/node_modules/eslint-plugin-graphql/.github/workflows/nodejs.yml b/node_modules/eslint-plugin-graphql/.github/workflows/nodejs.yml
deleted file mode 100644
index 086e8e7..0000000
--- a/node_modules/eslint-plugin-graphql/.github/workflows/nodejs.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Node CI
-
-on: 
-  push:
-    branches:
-      - !master
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    strategy:
-      matrix:
-        node-version: [8.x, 10.x, 12.x]
-
-    steps:
-    - uses: actions/checkout@v1
-    - name: Use Node.js ${{ matrix.node-version }}
-      uses: actions/setup-node@v1
-      with:
-        node-version: ${{ matrix.node-version }}
-    - name: npm install, build, and test
-      run: |
-        npm install
-        npm run build --if-present
-        npm test
diff --git a/node_modules/eslint-plugin-graphql/.tav.yml b/node_modules/eslint-plugin-graphql/.tav.yml
deleted file mode 100644
index 925bd5e..0000000
--- a/node_modules/eslint-plugin-graphql/.tav.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-graphql:
-  versions: ^0.12.0  || ^0.13.0 || ^14.0.0
-  commands: mocha test/index.js
diff --git a/node_modules/eslint-plugin-graphql/.travis.yml b/node_modules/eslint-plugin-graphql/.travis.yml
deleted file mode 100644
index f8ae0b6..0000000
--- a/node_modules/eslint-plugin-graphql/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-language: node_js
-node_js:
-  - "8"
-  - "10"
-install:
-  - npm install
-
-script:
-  - npm run lint && npm test
-
-# Allow Travis tests to run in containers.
-sudo: false
diff --git a/node_modules/eslint-plugin-graphql/CHANGELOG.md b/node_modules/eslint-plugin-graphql/CHANGELOG.md
deleted file mode 100644
index d192150..0000000
--- a/node_modules/eslint-plugin-graphql/CHANGELOG.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# Change log
-
-### vNEXT
-
-### v3.1.1
-
-- Update the `required-fields` rule to handle inline fragments without field ancestors. [PR #240](https://github.com/apollographql/eslint-plugin-graphql/pull/240) by [Henry Q. Dineen](https://github.com/henryqdineen)
-
-### v3.1.0
-
-- Fix an issue that caused `graphql/required-fields` to throw on non-existent field references. [PR #231](https://github.com/apollographql/eslint-plugin-graphql/pull/231) by [Vitor Balocco](https://github.com/vitorbal)
-- chore: Update dependency `graphql-tools` to `v4.0.5`. [PR #239](https://github.com/apollographql/eslint-plugin-graphql/pull/239)
-- chore: Update dependency `eslint` to `v5.16.0`. [PR #218](https://github.com/apollographql/eslint-plugin-graphql/pull/218)
-- chore: Update dependency `graphql` to `v14.4.2`. [PR #220](https://github.com/apollographql/eslint-plugin-graphql/pull/220)
-- chore: Update dependency `test-all-versions` to `v4.1.1`. [PR #230](https://github.com/apollographql/eslint-plugin-graphql/pull/230)
-- chore: Update dependency `lodash` to `v4.17.13`. [PR #234](https://github.com/apollographql/eslint-plugin-graphql/pull/234)
-- chore: Update dependency `mocha` to `v6`. [PR #213](https://github.com/apollographql/eslint-plugin-graphql/pull/213)
-- chore: Running `prettier` on all files [PR #237](https://github.com/apollographql/eslint-plugin-graphql/pull/237)
-
-### v3.0.3
-
-- chore: Update dependency `graphql-tools` to `v4.0.4`. [PR #210](https://github.com/apollographql/eslint-plugin-graphql/pull/210)
-- chore: Update dependency `eslint` to `v5.12.1`. [PR #206](https://github.com/apollographql/eslint-plugin-graphql/pull/206)
-- chore: Update dependency `graphql` to `v14.1.1`. [PR #208](https://github.com/apollographql/eslint-plugin-graphql/pull/208)
-
-### v3.0.2
-
-- Fix regression which caused `graphql/required-fields` to throw on non-existent field references. [PR #203](https://github.com/apollographql/eslint-plugin-graphql/pull/203) by [Matt Bretl](https://github.com/mattbretl)
-
-### v3.0.1
-
-- Fix support for multi-schema workspaces [PR #179](https://github.com/apollographql/eslint-plugin-graphql/pull/179) by [Pat Sissons](https://github.com/patsissons)
-
-### v3.0.0
-
-- BREAKING: The `required-fields` rule has been significantly changed to make it a completely reliable method of ensuring an `id` field (or any other field name) is always requested when available. [PR #199](https://github.com/apollographql/eslint-plugin-graphql/pull/199) Here is the behavior, let's say we are requiring field `id`:
-  - On any field whose return type defines a field called `id`, the selection set must directly contain `id`.
-  - In any named fragment declaration whose type defines a field called `id`, the selection set must directly contain `id`.
-  - An inline fragment whose type defines a field called `id` must contain `id` in its selection set unless its parent is also an inline fragment that contains the field `id`.
-  - Here's a specific case which is _no longer valid_:
-    - `query { greetings { hello ... on Greetings { id } } }`
-    - This must now be written as `query { greetings { id hello ... on Greetings { id } } }`
-  - This is a more conservative approach than before, driven by the fact that it's quite hard to ensure that a combination of inline fragments actually covers all of the possible types of a selection set.
-- Fix breaking change in `graphql@^14.0.0` that renamed `ProvidedNonNullArguments` to `ProvidedRequiredArguments` [#192](https://github.com/apollographql/eslint-plugin-graphql/pull/192)
-- Update dependencies to graphql-tools 4 and eslint 5.9 [#193](https://github.com/apollographql/eslint-plugin-graphql/pull/193)
-
-### v2.1.1
-
-- Fix support for InlineFragments with the `required-fields` rule in [#140](https://github.com/apollographql/eslint-plugin-graphql/pull/140/files) by [Steve Hollaar](https://github.com/stevehollaar)
-- Fix error location information for literal .graphql files and strings with leading newlines in [#122](https://github.com/apollographql/eslint-plugin-graphql/pull/122) by [Dan Freeman](https://github.com/dfreeman)
-- Add [`fraql`](https://github.com/smooth-code/fraql) environment
-
-### v2.1.0
-
-- Retrieves `.graphqlconfig` relative to the file being linted, which re-enables support for `vscode-eslint` using `.graphqlconfig` in [#108](https://github.com/apollographql/eslint-plugin-graphql/pull/108) by [Jon Wong][https://github.com/jnwng/]
-- Cache schema reading/parsing results each time a rule is created in [#137](https://github.com/apollographql/eslint-plugin-graphql/pull/137) by [Kristján Oddsson](https://github.com/koddsson)
-
-### v2.0.0
-
-- Add support for `graphql-js@^0.12.0` and `graphql-js@^0.13.0` in [Jon Wong](https://github.com/jnwng/)[#119](https://github.com/apollographql/eslint-plugin-graphql/pull/93)
-- Update list of available validators in [#121]((https://github.com/apollographql/eslint-plugin-graphql/pull/121) by [Pleun Vanderbauwhede](https://github.com/pleunv)
-- Update supported Node `engines` to >= 6.0 in [#133](https://github.com/apollographql/eslint-plugin-graphql/pull/133) by [Jon Wong](https://github.com/jnwng/)
-
-### v1.5.0
-
-- Add new rule `no-deprecated-fields` in [Kristján Oddsson](https://github.com/koddsson/)[#92](https://github.com/apollographql/eslint-plugin-graphql/pull/93)
-- Add support for deprecated fields on enums in [#100](https://github.com/apollographql/eslint-plugin-graphql/pull/100) by [Daniel Rinehart](https://github.com/NeoPhi)
-- Bumped `babel-eslint` and pinned `graphql-config` in [#101](https://github.com/apollographql/eslint-plugin-graphql/pull/101) by [Jon Wong](https://github.com/jnwng)
-
-### v1.4.1
-
-Skipped v1.4.0 because of incorrect version tag in `package.json`
-
-- Move `graphql-js` to `peerDependencies`, support `graphql@^0.11.0` in [Jon Wong](https://github.com/jnwng/)[#91](https://github.com/apollographql/eslint-plugin-graphql/pull/91)
-- Fix escaping of literal .graphql files [Simon Lydell](https://github.com/lydell/) in [#88](https://github.com/apollographql/eslint-plugin-graphql/pull/88)
-- Fix ESLint config validation [Simon Lydell](https://github.com/lydell/) in [#86](https://github.com/apollographql/eslint-plugin-graphql/pull/86)
-
-### v1.3.0
-
-- add support for [.graphqlconfig](https://github.com/graphcool/graphql-config) [Roman Hotsiy](https://github.com/RomanGotsiy) in [#80](https://github.com/apollographql/eslint-plugin-graphql/pull/80)
-- add `graphql/capitalized-type-name` rule to warn on uncapitalized type names [DianaSuvorova](https://github.com/DianaSuvorova) in [#81](https://github.com/apollographql/eslint-plugin-graphql/pull/81)
-
-### v1.2.0
-
-- Add env config option for required-fields rule [Justin Schulz](https://github.com/PepperTeasdale) in [#75](https://github.com/apollographql/eslint-plugin-graphql/pull/75)
-
-### v1.1.0
-
-- Add option to pass schema as string [Christopher Cliff](https://github.com/christophercliff) in [#78](https://github.com/apollographql/eslint-plugin-graphql/pull/78)
-
-### v1.0.0
-
-- Fix template env for older runtimes (eg. node 5 and earlier) [Justin Schulz](https://github.com/PepperTeasdale) in [#73](https://github.com/apollographql/eslint-plugin-graphql/pull/73)
-- Updated `graphql-js` to `v0.10.1` in [#67](https://github.com/apollographql/eslint-plugin-graphql/pull/67) [Sashko Stubailo](https://github.com/stubailo)
-
-### v0.8.2
-
-- Remove `KnownFragmentNames` and `UnusedFragment` from default rules in `literal` env. [Justin Schulz](https://github.com/PepperTeasdale) in [#70](https://github.com/apollographql/eslint-plugin-graphql/pull/70)
-
-### v0.8.1
-
-- Fix `graphql/required-fields` throwing on non-existent field reference [Benjie](https://github.com/benjie) in [#65](https://github.com/apollographql/eslint-plugin-graphql/pull/65)
-
-### v0.8.0
-
-- Updated `graphql` dependency to resolve test failures ([wording change](https://github.com/graphql/graphql-js/commit/ba401e154461bca5323ca9121c6dacaee10ebe88), no API change) [jnwng](https://github.com/jnwng)
-- Add lint rule to enforce that required fields are specified. [rgoldfinger](https://github.com/rgoldfinger) in [#47](https://github.com/apollographql/eslint-plugin-graphql/pull/50)
-
-### v0.7.0
-
-- Add lint rule to enforce that operations have names [gauravmk](https://github.com/gauravmk) in [#47](https://github.com/apollographql/eslint-plugin-graphql/pull/47)
-
-### v0.6.1
-
-- Remove `babel-polyfill` from runtime dependencies, since it was only being used in test code. [joelgriffith](https://github.com/joelgriffith) in [#44](https://github.com/apollographql/eslint-plugin-graphql/pull/44)
-
-### v0.6.0
-
-- Update graphql-js dependency to 0.9.0 [jonbretman](https://github.com/jonbretman) in [#41](https://github.com/apollostack/eslint-plugin-graphql/pull/41)
-
-### v0.5.0
-
-- Take into account Apollo fragment interpolation rules [jnwng](https://github.com/jnwng) in [#33](https://github.com/apollostack/eslint-plugin-graphql/pull/33)
-- Update graphql-js dependency to 0.8.2 [jonbretman](https://github.com/jonbretman) in [#40](https://github.com/apollostack/eslint-plugin-graphql/pull/40)
-
-### v0.4.3
-
-- Add `'literal'` option to options schema, so that it can actually be used. [stefanorg](https://github.com/stefanorg) in [#39](https://github.com/apollostack/eslint-plugin-graphql/pull/39)
-
-### v0.4.2
-
-- Added `'literal'` option to `env` for when working with `.graphql` and `.gql` files, by [jtmthf in #36](https://github.com/apollostack/eslint-plugin-graphql/pull/36)
-
-### v0.4.1
-
-- Support for selecting validation rules one by one, by [erydo in
-  #34](https://github.com/apollostack/eslint-plugin-graphql/pull/34)
-
-### v0.4.0
-
-- Support for multiple schemas, by [erydo in
-  #31](https://github.com/apollostack/eslint-plugin-graphql/pull/31)
-
-### v0.3.1
-
-- We didn't keep track of changes before this version. Consult the commit log.
diff --git a/node_modules/eslint-plugin-graphql/CONTRIBUTING.md b/node_modules/eslint-plugin-graphql/CONTRIBUTING.md
deleted file mode 100644
index 651c071..0000000
--- a/node_modules/eslint-plugin-graphql/CONTRIBUTING.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# Apollo Contributor Guide
-
-Excited about Apollo and want to make it better? We’re excited too!
-
-Apollo is a community of developers just like you, striving to create the best tools and libraries around GraphQL. We welcome anyone who wants to contribute or provide constructive feedback, no matter the age or level of experience. If you want to help but don't know where to start, let us know, and we'll find something for you.
-
-Oh, and if you haven't already, sign up for the [Apollo Slack](http://www.apollodata.com/#slack).
-
-Here are some ways to contribute to the project, from easiest to most difficult:
-
-* [Reporting bugs](#reporting-bugs)
-* [Improving the documentation](#improving-the-documentation)
-* [Responding to issues](#responding-to-issues)
-* [Small bug fixes](#small-bug-fixes)
-* [Suggesting features](#suggesting-features)
-* [Big pull requests](#big-prs)
-
-## Issues
-
-### Reporting bugs
-
-If you encounter a bug, please file an issue on GitHub via the repository of the sub-project you think contains the bug. If an issue you have is already reported, please add additional information or add a 👍 reaction to indicate your agreement.
-
-While we will try to be as helpful as we can on any issue reported, please include the following to maximize the chances of a quick fix:
-
-1. **Intended outcome:** What you were trying to accomplish when the bug occurred, and as much code as possible related to the source of the problem.
-2. **Actual outcome:** A description of what actually happened, including a screenshot or copy-paste of any related error messages, logs, or other output that might be related. Places to look for information include your browser console, server console, and network logs. Please avoid non-specific phrases like “didn’t work” or “broke”.
-3. **How to reproduce the issue:** Instructions for how the issue can be reproduced by a maintainer or contributor. Be as specific as possible, and only mention what is necessary to reproduce the bug. If possible, try to isolate the exact circumstances in which the bug occurs and avoid speculation over what the cause might be.
-
-Creating a good reproduction really helps contributors investigate and resolve your issue quickly. In many cases, the act of creating a minimal reproduction illuminates that the source of the bug was somewhere outside the library in question, saving time and effort for everyone.
-
-### Improving the documentation
-
-Improving the documentation, examples, and other open source content can be the easiest way to contribute to the library. If you see a piece of content that can be better, open a PR with an improvement, no matter how small! If you would like to suggest a big change or major rewrite, we’d love to hear your ideas but please open an issue for discussion before writing the PR.
-
-### Responding to issues
-
-In addition to reporting issues, a great way to contribute to Apollo is to respond to other peoples' issues and try to identify the problem or help them work around it. If you’re interested in taking a more active role in this process, please go ahead and respond to issues. And don't forget to say "Hi" on Apollo Slack!
-
-### Small bug fixes
-
-For a small bug fix change (less than 20 lines of code changed), feel free to open a pull request. We’ll try to merge it as fast as possible and ideally publish a new release on the same day. The only requirement is, make sure you also add a test that verifies the bug you are trying to fix.
-
-### Suggesting features
-
-Most of the features in Apollo came from suggestions by you, the community! We welcome any ideas about how to make Apollo  better for your use case. Unless there is overwhelming demand for a feature, it might not get implemented immediately, but please include as much information as possible that will help people have a discussion about your proposal:
-
-1. **Use case:** What are you trying to accomplish, in specific terms? Often, there might already be a good way to do what you need and a new feature is unnecessary, but it’s hard to know without information about the specific use case.
-2. **Could this be a plugin?** In many cases, a feature might be too niche to be included in the core of a library, and is better implemented as a companion package. If there isn’t a way to extend the library to do what you want, could we add additional plugin APIs? It’s important to make the case for why a feature should be part of the core functionality of the library.
-3. **Is there a workaround?** Is this a more convenient way to do something that is already possible, or is there some blocker that makes a workaround unfeasible?
-
-Feature requests will be labeled as such, and we encourage using GitHub issues as a place to discuss new features and possible implementation designs. Please refrain from submitting a pull request to implement a proposed feature until there is consensus that it should be included. This way, you can avoid putting in work that can’t be merged in.
-
-Once there is a consensus on the need for a new feature, proceed as listed below under “Big PRs”.
-
-## Big PRs
-
-This includes:
-
-- Big bug fixes
-- New features
-
-For significant changes to a repository, it’s important to settle on a design before starting on the implementation. This way, we can make sure that major improvements get the care and attention they deserve. Since big changes can be risky and might not always get merged, it’s good to reduce the amount of possible wasted effort by agreeing on an implementation design/plan first.
-
-1. **Open an issue.** Open an issue about your bug or feature, as described above.
-2. **Reach consensus.** Some contributors and community members should reach an agreement that this feature or bug is important, and that someone should work on implementing or fixing it.
-3. **Agree on intended behavior.** On the issue, reach an agreement about the desired behavior. In the case of a bug fix, it should be clear what it means for the bug to be fixed, and in the case of a feature, it should be clear what it will be like for developers to use the new feature.
-4. **Agree on implementation plan.** Write a plan for how this feature or bug fix should be implemented. What modules need to be added or rewritten? Should this be one pull request or multiple incremental improvements? Who is going to do each part?
-5. **Submit PR.** In the case where multiple dependent patches need to be made to implement the change, only submit one at a time. Otherwise, the others might get stale while the first is reviewed and merged. Make sure to avoid “while we’re here” type changes - if something isn’t relevant to the improvement at hand, it should be in a separate PR; this especially includes code style changes of unrelated code.
-6. **Review.** At least one core contributor should sign off on the change before it’s merged. Look at the “code review” section below to learn about factors are important in the code review. If you want to expedite the code being merged, try to review your own code first!
-7. **Merge and release!**
-
-### Code review guidelines
-
-It’s important that every piece of code in Apollo packages is reviewed by at least one core contributor familiar with that codebase. Here are some things we look for:
-
-1. **Required CI checks pass.** This is a prerequisite for the review, and it is the PR author's responsibility. As long as the tests don’t pass, the PR won't get reviewed.
-2. **Simplicity.** Is this the simplest way to achieve the intended goal? If there are too many files, redundant functions, or complex lines of code, suggest a simpler way to do the same thing. In particular, avoid implementing an overly general solution when a simple, small, and pragmatic fix will do.
-3. **Testing.** Do the tests ensure this code won’t break when other stuff changes around it? When it does break, will the tests added help us identify which part of the library has the problem? Did we cover an appropriate set of edge cases? Look at the test coverage report if there is one. Are all significant code paths in the new code exercised at least once?
-4. **No unnecessary or unrelated changes.** PRs shouldn’t come with random formatting changes, especially in unrelated parts of the code. If there is some refactoring that needs to be done, it should be in a separate PR from a bug fix or feature, if possible.
-5. **Code has appropriate comments.** Code should be commented, or written in a clear “self-documenting” way.
-6. **Idiomatic use of the language.** In TypeScript, make sure the typings are specific and correct. In ES2015, make sure to use imports rather than require and const instead of var, etc. Ideally a linter enforces a lot of this, but use your common sense and follow the style of the surrounding code.
diff --git a/node_modules/eslint-plugin-graphql/README.md b/node_modules/eslint-plugin-graphql/README.md
deleted file mode 100644
index 19b2a41..0000000
--- a/node_modules/eslint-plugin-graphql/README.md
+++ /dev/null
@@ -1,583 +0,0 @@
-# eslint-plugin-graphql
-[![npm version](https://badge.fury.io/js/eslint-plugin-graphql.svg)](https://badge.fury.io/js/eslint-plugin-graphql)
-[![Build Status](https://travis-ci.org/apollographql/eslint-plugin-graphql.svg?branch=master)](https://travis-ci.org/apollographql/eslint-plugin-graphql)
-[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](http://www.apollostack.com/#slack)
-
-An ESLint plugin that checks tagged query strings inside JavaScript, or queries inside `.graphql` files, against a GraphQL schema.
-
-```
-npm install eslint-plugin-graphql
-```
-
-![Screenshot from Atom](https://github.com/apollostack/eslint-plugin-graphql/raw/master/screenshot.png)
-
-`eslint-plugin-graphql` has built-in settings for four GraphQL clients out of the box:
-
-1. [Apollo client](http://docs.apollostack.com/apollo-client/index.html)
-2. [Relay](https://facebook.github.io/relay/)
-3. [Lokka](https://github.com/kadirahq/lokka)
-4. [FraQL](https://github.com/smooth-code/fraql)
-
-If you want to lint your GraphQL schema, rather than queries, check out [cjoudrey/graphql-schema-linter](https://github.com/cjoudrey/graphql-schema-linter).
-
-### Importing schema JSON
-
-You'll need to import your [introspection query result](https://github.com/graphql/graphql-js/blob/master/src/utilities/introspectionQuery.js) or the schema as a string in the Schema Language format. This can be done if you define your ESLint config in a JS file.
-
-### Retrieving a remote GraphQL schema
-
-[graphql-cli](https://github.com/graphcool/graphql-cli) provides a `get-schema` command (in conjunction with a `.graphqlconfig` file) that makes retrieving remote schemas very simple.
-
-[apollo-codegen](https://github.com/apollographql/apollo-codegen) also provides an [introspect-schema](https://github.com/apollographql/apollo-codegen#introspect-schema) command that can get your remote schemas as well
-
-### Common options
-
-All of the rules provided by this plugin have a few options in common. There are examples of how to use these with Apollo, Relay, Lokka, FraQL and literal files further down.
-
-- `env`: Import default settings for your GraphQL client. Supported values: `'apollo'`, `'relay'`, `'lokka'`, `'fraql'` `'literal'`. Defaults to `'apollo'`. This is used for the slight parsing differences in the GraphQL syntax between Apollo, Relay, Lokka and FraQL as well as giving nice defaults to some other options.
-
-- `tagName`: The name of the template literal tag that this plugin should look for when searching for GraphQL queries. It has different defaults depending on the `env` option:
-
-  - `'relay'`: `'Relay.QL'`
-  - `'internal'`: Special automatic value
-  - others: `'gql'`, `'graphql'`
-
-You also have to specify a schema. You can either do it using _one_ of these options:
-
-- `schemaJson`: Your schema as JSON.
-- `schemaJsonFilepath`: The absolute path to your schema as a .json file. (Warning: this variant is incompatible with `eslint --cache`.)
-- `schemaString`: Your schema in the Schema Language format as a string.
-
-Alternatively, you can use a [.graphqlconfig](https://github.com/graphcool/graphql-config) file instead of the above three options. If you do there's one more option to know about:
-
-- `projectName`: In case you specify multiple schemas in your `.graphqlconfig` file, choose which one to use by providing the project name here as a string.
-
-There's an example on how to use a `.graphqlconfig` file further down.
-
-### Identity template literal tag
-
-This plugin relies on GraphQL queries being prefixed with a special tag. In Relay and Apollo, this is always done, but other clients often take query strings without a tag. In this case, you can define an identity tag that doesn't do anything except for tell the linter this is a GraphQL query:
-
-```js
-global.gql = (literals, ...substitutions) => {
-    let result = "";
-
-    // run the loop only for the substitution count
-    for (let i = 0; i < substitutions.length; i++) {
-        result += literals[i];
-        result += substitutions[i];
-    }
-
-    // add the last literal
-    result += literals[literals.length - 1];
-
-    return result;
-}
-```
-
-Code snippet taken from:  <https://leanpub.com/understandinges6/read#leanpub-auto-multiline-strings>
-
-Note: The linter rule could be extended to identify calls to various specific APIs to eliminate the need for a template literal tag, but this might just make the implementation a lot more complex for little benefit.
-
-### GraphQL literal files
-
-This plugin also lints GraphQL literal files ending on `.gql` or `.graphql`.
-In order to do so set `env` to `'literal'` in your `.eslintrc.js` and tell eslint to check these files as well.
-
-```bash
-eslint . --ext .js --ext .gql --ext .graphql
-```
-
-### Example config for Apollo
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'apollo',
-
-      // Import your schema JSON here
-      schemaJson: require('./schema.json'),
-
-      // OR provide absolute path to your schema JSON (but not if using `eslint --cache`!)
-      // schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-
-      // OR provide the schema in the Schema Language format
-      // schemaString: printSchema(schema),
-
-      // tagName is gql by default
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Example config for Relay
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'relay',
-
-      // Import your schema JSON here
-      schemaJson: require('./schema.json'),
-
-      // OR provide absolute path to your schema JSON (but not if using `eslint --cache`!)
-      // schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-
-      // OR provide the schema in the Schema Language format
-      // schemaString: printSchema(schema),
-
-      // tagName is set for you to Relay.QL
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Example config for Lokka
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'lokka',
-
-      // Import your schema JSON here
-      schemaJson: require('./schema.json'),
-
-      // OR provide absolute path to your schema JSON (but not if using `eslint --cache`!)
-      // schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-
-      // OR provide the schema in the Schema Language format
-      // schemaString: printSchema(schema),
-
-      // Optional, the name of the template tag, defaults to 'gql'
-      tagName: 'gql'
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Example config for FraQL
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'fraql',
-
-      // Import your schema JSON here
-      schemaJson: require('./schema.json'),
-
-      // OR provide absolute path to your schema JSON
-      // schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-
-      // OR provide the schema in the Schema Language format
-      // schemaString: printSchema(schema),
-
-      // Optional, the name of the template tag, defaults to 'gql'
-      tagName: 'gql'
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Example config for literal graphql files
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'literal',
-
-      // Import your schema JSON here
-      schemaJson: require('./schema.json'),
-
-      // OR provide absolute path to your schema JSON (but not if using `eslint --cache`!)
-      // schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-
-      // OR provide the schema in the Schema Language format
-      // schemaString: printSchema(schema),
-
-      // tagName is set automatically
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Additional Schemas or Tags
-
-This plugin can be used to validate against multiple schemas by identifying them with different tags. This is useful for applications interacting with multiple GraphQL systems. Additional schemas can simply be appended to the options list:
-
-```js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      env: 'apollo',
-      tagName: 'FirstGQL',
-      schemaJson: require('./schema-first.json')
-    }, {
-      env: 'relay',
-      tagName: 'SecondGQL',
-      schemaJson: require('./schema-second.json')
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Example config when using [.graphqlconfig](https://github.com/graphcool/graphql-config)
-
-If you have `.graphqlconfig` file in the root of your repo you can omit schema-related
-properties (`schemaJson`, `schemaJsonFilepath` and `schemaString`) from rule config.
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      // Import default settings for your GraphQL client. Supported values:
-      // 'apollo', 'relay', 'lokka', 'fraql', 'literal'
-      env: 'literal'
-      // no need to specify schema here, it will be automatically determined using .graphqlconfig
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-In case you use additional schemas, specify `projectName` from `.graphqlconfig` for each `tagName`:
-```js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      env: 'apollo',
-      tagName: 'FirstGQL',
-      projectName: 'FirstGQLProject'
-    }, {
-      env: 'relay',
-      tagName: 'SecondGQL',
-      projectName: 'SecondGQLProject'
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Selecting Validation Rules
-
-GraphQL validation rules can be configured in the eslint rule configuration using the `validators` option. The default selection depends on the `env` setting. If no `env` is specified, all rules are enabled by default.
-
-The `validators` setting can be set either to a list of specific validator names or to the special value `"all"`.
-
-```js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      env: 'apollo',
-      validators: 'all',
-      tagName: 'FirstGQL',
-      schemaJson: require('./schema-first.json')
-    }, {
-      validators: ['FieldsOnCorrectType'],
-      tagName: 'SecondGQL',
-      schemaJson: require('./schema-second.json')
-    }]
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-The full list of available validators is:
-  - `ExecutableDefinitions`
-  - `FieldsOnCorrectType`
-  - `FragmentsOnCompositeTypes`
-  - `KnownArgumentNames`
-  - `KnownDirectives` (*disabled by default in `relay`*)
-  - `KnownFragmentNames` (*disabled by default in all envs*)
-  - `KnownTypeNames`
-  - `LoneAnonymousOperation`
-  - `NoFragmentCycles`
-  - `NoUndefinedVariables` (*disabled by default in `relay`*)
-  - `NoUnusedFragments` (*disabled by default in all envs*)
-  - `NoUnusedVariables`
-  - `OverlappingFieldsCanBeMerged`
-  - `PossibleFragmentSpreads`
-  - `ProvidedRequiredArguments` (*disabled by default in `relay`*)
-  - `ScalarLeafs` (*disabled by default in `relay`*)
-  - `SingleFieldSubscriptions`
-  - `UniqueArgumentNames`
-  - `UniqueDirectivesPerLocation`
-  - `UniqueFragmentNames`
-  - `UniqueInputFieldNames`
-  - `UniqueOperationNames`
-  - `UniqueVariableNames`
-  - `ValuesOfCorrectType`
-  - `VariablesAreInputTypes`
-  - `VariablesDefaultValueAllowed`
-  - `VariablesInAllowedPosition`
-
-### Named Operations Validation Rule
-
-The Named Operation rule validates that all operations are named. Naming operations is valuable for including in server-side logs and debugging.
-
-**Pass**
-```
-query FetchUsername {
-  viewer {
-    name
-  }
-}
-```
-
-**Fail**
-```
-query {
-  viewer {
-    name
-  }
-}
-```
-
-The rule is defined as `graphql/named-operations`.
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      env: 'apollo',
-      schemaJson: require('./schema.json'),
-    }],
-    "graphql/named-operations": ['warn', {
-      schemaJson: require('./schema.json'),
-    }],
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-### Required Fields Validation Rule
-
-The Required Fields rule validates that any specified required field is part of the query, but only if that field is available in schema. This is useful to ensure that query results are cached properly in the client.
-
-**Pass**
-```
-// 'uuid' required and present in the schema
-
-schema {
-  query {
-    viewer {
-      name
-      uuid
-    }
-  }
-}
-
-query ViewerName {
-  viewer {
-    name
-    uuid
-  }
-}
-```
-
-**Pass**
-```
-// 'uuid' usually required but not present in the schema here
-
-schema {
-  query {
-    viewer {
-      name
-    }
-  }
-}
-
-query ViewerName {
-  viewer {
-    name
-  }
-}
-```
-
-**Fail**
-```
-// 'uuid' required and present in the schema
-
-schema {
-  query {
-    viewer {
-      uuid
-      name
-    }
-  }
-}
-
-query ViewerName {
-  viewer {
-    name
-  }
-}
-```
-
-The rule is defined as `graphql/required-fields` and requires the `requiredFields` option.
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  rules: {
-    'graphql/required-fields': [
-      'error',
-      {
-        env: 'apollo',
-        schemaJsonFilepath: path.resolve(__dirname, './schema.json'),
-        requiredFields: ['uuid'],
-      },
-    ],
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### Capitalization of a first letter of a Type name
-
-This rule enforces that first letter of types is capitalized
-
-**Pass**
-```
-query {
-  someUnion {
-    ... on SomeType {
-      someField
-    }
-  }
-}
-```
-
-**Fail**
-```
-query {
-  someUnion {
-    ... on someType {
-      someField
-    }
-  }
-}
-```
-
-The rule is defined as `graphql/capitalized-type-name`.
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  parser: "babel-eslint",
-  rules: {
-    "graphql/template-strings": ['error', {
-      env: 'apollo',
-      schemaJson: require('./schema.json'),
-    }],
-    "graphql/capitalized-type-name": ['warn', {
-      schemaJson: require('./schema.json'),
-    }],
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
-
-### No Deprecated Fields Validation Rule
-
-The No Deprecated Fields rule validates that no deprecated fields are part of the query. This is useful to discover fields that have been marked as deprecated and shouldn't be used.
-
-**Fail**
-```
-// 'id' requested and marked as deprecated in the schema
-
-schema {
-  query {
-    viewer {
-      id: Int @deprecated(reason: "Use the 'uuid' field instead")
-      uuid: String
-    }
-  }
-}
-
-query ViewerName {
-  viewer {
-    id
-  }
-}
-```
-
-The rule is defined as `graphql/no-deprecated-fields`.
-
-```js
-// In a file called .eslintrc.js
-module.exports = {
-  rules: {
-    'graphql/no-deprecated-fields': [
-      'error',
-      {
-        env: 'relay',
-        schemaJson: require('./schema.json')
-      },
-    ],
-  },
-  plugins: [
-    'graphql'
-  ]
-}
-```
diff --git a/node_modules/eslint-plugin-graphql/lib/constants.js b/node_modules/eslint-plugin-graphql/lib/constants.js
deleted file mode 100644
index 6adc6b3..0000000
--- a/node_modules/eslint-plugin-graphql/lib/constants.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var internalTag = exports.internalTag = "ESLintPluginGraphQLFile";
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-graphql/lib/createRule.js b/node_modules/eslint-plugin-graphql/lib/createRule.js
deleted file mode 100644
index db50698..0000000
--- a/node_modules/eslint-plugin-graphql/lib/createRule.js
+++ /dev/null
@@ -1,245 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.createRule = createRule;
-
-var _graphql = require("graphql");
-
-var _constants = require("./constants");
-
-function strWithLen(len) {
-  // from http://stackoverflow.com/questions/14343844/create-a-string-of-variable-length-filled-with-a-repeated-character
-  return new Array(len + 1).join("x");
-}
-
-function replaceExpressions(node, context, env) {
-  var chunks = [];
-
-  node.quasis.forEach(function (element, i) {
-    var chunk = element.value.cooked;
-    var value = node.expressions[i];
-
-    chunks.push(chunk);
-
-    if (!env || env === "apollo") {
-      // In Apollo, interpolation is only valid outside top-level structures like `query` or `mutation`.
-      // We'll check to make sure there's an equivalent set of opening and closing brackets, otherwise
-      // we're attempting to do an invalid interpolation.
-      if (chunk.split("{").length - 1 !== chunk.split("}").length - 1) {
-        context.report({
-          node: value,
-          message: "Invalid interpolation - fragment interpolation must occur outside of the brackets."
-        });
-        throw new Error("Invalid interpolation");
-      }
-    }
-
-    if (!element.tail) {
-      // Preserve location of errors by replacing with exactly the same length
-      var nameLength = value.end - value.start;
-
-      if (env === "relay" && /:\s*$/.test(chunk)) {
-        // The chunk before this one had a colon at the end, so this
-        // is a variable
-
-        // Add 2 for brackets in the interpolation
-        var placeholder = strWithLen(nameLength + 2);
-        chunks.push("$" + placeholder);
-      } else if (env === "lokka" && /\.\.\.\s*$/.test(chunk)) {
-        // This is Lokka-style fragment interpolation where you actually type the '...' yourself
-        var _placeholder = strWithLen(nameLength + 3);
-        chunks.push(_placeholder);
-      } else if (env === "relay") {
-        // This is Relay-style fragment interpolation where you don't type '...'
-        // Ellipsis cancels out extra characters
-        var _placeholder2 = strWithLen(nameLength);
-        chunks.push("..." + _placeholder2);
-      } else if (!env || env === "apollo") {
-        // In Apollo, fragment interpolation is only valid outside of brackets
-        // Since we don't know what we'd interpolate here (that occurs at runtime),
-        // we're not going to do anything with this interpolation.
-      } else if (env === "fraql") {
-        if (chunk.lastIndexOf("{") > chunk.lastIndexOf("}")) {
-          chunks.push("__typename");
-        }
-      } else {
-        // Invalid interpolation
-        context.report({
-          node: value,
-          message: "Invalid interpolation - not a valid fragment or variable."
-        });
-        throw new Error("Invalid interpolation");
-      }
-    }
-  });
-
-  return chunks.join("");
-}
-
-function locFrom(node, error) {
-  if (!error.locations || !error.locations.length) {
-    return;
-  }
-  var location = error.locations[0];
-
-  var line = void 0;
-  var column = void 0;
-  if (location.line === 1 && node.tag.name !== _constants.internalTag) {
-    line = node.loc.start.line;
-    column = node.tag.loc.end.column + location.column;
-  } else {
-    line = node.loc.start.line + location.line - 1;
-    column = location.column - 1;
-  }
-
-  return {
-    line: line,
-    column: column
-  };
-}
-
-function handleTemplateTag(node, context, schema, env, validators) {
-  var text = void 0;
-  try {
-    text = replaceExpressions(node.quasi, context, env);
-  } catch (e) {
-    if (e.message !== "Invalid interpolation") {
-      console.log(e); // eslint-disable-line no-console
-    }
-    return;
-  }
-
-  // Re-implement syntax sugar for fragment names, which is technically not valid
-  // graphql
-  if ((env === "lokka" || env === "relay" || env === "fraql") && /fragment\s+on/.test(text)) {
-    text = text.replace("fragment", "fragment _");
-  }
-
-  var ast = void 0;
-
-  try {
-    ast = (0, _graphql.parse)(text);
-  } catch (error) {
-    context.report({
-      node: node,
-      message: error.message.split("\n")[0],
-      loc: locFrom(node, error)
-    });
-    return;
-  }
-
-  var validationErrors = schema ? (0, _graphql.validate)(schema, ast, validators) : [];
-  if (validationErrors && validationErrors.length > 0) {
-    context.report({
-      node: node,
-      message: validationErrors[0].message,
-      loc: locFrom(node, validationErrors[0])
-    });
-    return;
-  }
-}
-
-function templateExpressionMatchesTag(tagName, node) {
-  var tagNameSegments = tagName.split(".").length;
-  if (tagNameSegments === 1) {
-    // Check for single identifier, like 'gql'
-    if (node.tag.type !== "Identifier" || node.tag.name !== tagName) {
-      return false;
-    }
-  } else if (tagNameSegments === 2) {
-    // Check for dotted identifier, like 'Relay.QL'
-    if (node.tag.type !== "MemberExpression" || node.tag.object.name + "." + node.tag.property.name !== tagName) {
-      return false;
-    }
-  } else {
-    // We don't currently support 3 segments so ignore
-    return false;
-  }
-  return true;
-}
-
-function createRule(context, optionParser) {
-  var tagNames = new Set();
-  var tagRules = [];
-  var options = context.options.length === 0 ? [{}] : context.options;
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    var _loop = function _loop() {
-      var optionGroup = _step.value;
-
-      var _optionParser = optionParser(optionGroup),
-          schema = _optionParser.schema,
-          env = _optionParser.env,
-          tagName = _optionParser.tagName,
-          validators = _optionParser.validators;
-
-      var boundValidators = validators.map(function (v) {
-        return function (ctx) {
-          return v(ctx, optionGroup);
-        };
-      });
-      if (tagNames.has(tagName)) {
-        throw new Error("Multiple options for GraphQL tag " + tagName);
-      }
-      tagNames.add(tagName);
-      tagRules.push({ schema: schema, env: env, tagName: tagName, validators: boundValidators });
-    };
-
-    for (var _iterator = options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      _loop();
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-
-  return {
-    TaggedTemplateExpression: function TaggedTemplateExpression(node) {
-      var _iteratorNormalCompletion2 = true;
-      var _didIteratorError2 = false;
-      var _iteratorError2 = undefined;
-
-      try {
-        for (var _iterator2 = tagRules[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-          var _ref2 = _step2.value;
-          var schema = _ref2.schema,
-              env = _ref2.env,
-              tagName = _ref2.tagName,
-              validators = _ref2.validators;
-
-          if (templateExpressionMatchesTag(tagName, node)) {
-            return handleTemplateTag(node, context, schema, env, validators);
-          }
-        }
-      } catch (err) {
-        _didIteratorError2 = true;
-        _iteratorError2 = err;
-      } finally {
-        try {
-          if (!_iteratorNormalCompletion2 && _iterator2.return) {
-            _iterator2.return();
-          }
-        } finally {
-          if (_didIteratorError2) {
-            throw _iteratorError2;
-          }
-        }
-      }
-    }
-  };
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-graphql/lib/customGraphQLValidationRules.js b/node_modules/eslint-plugin-graphql/lib/customGraphQLValidationRules.js
deleted file mode 100644
index d7dc88b..0000000
--- a/node_modules/eslint-plugin-graphql/lib/customGraphQLValidationRules.js
+++ /dev/null
@@ -1,162 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.OperationsMustHaveNames = OperationsMustHaveNames;
-exports.RequiredFields = RequiredFields;
-exports.typeNamesShouldBeCapitalized = typeNamesShouldBeCapitalized;
-exports.noDeprecatedFields = noDeprecatedFields;
-
-var _graphql = require("graphql");
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-function OperationsMustHaveNames(context) {
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      if (!node.name) {
-        context.reportError(new _graphql.GraphQLError("All operations must be named", [node]));
-      }
-    }
-  };
-}
-
-function getFieldWasRequestedOnNode(node, field) {
-  return node.selectionSet.selections.some(function (n) {
-    return n.kind === "Field" && n.name.value === field;
-  });
-}
-
-function fieldAvailableOnType(type, field) {
-  if (!type) {
-    return false;
-  }
-
-  return type._fields && type._fields[field] || type.ofType && fieldAvailableOnType(type.ofType, field);
-}
-
-function RequiredFields(context, options) {
-  var requiredFields = options.requiredFields;
-
-
-  return {
-    FragmentDefinition: function FragmentDefinition(node) {
-      requiredFields.forEach(function (field) {
-        var type = context.getType();
-
-        if (fieldAvailableOnType(type, field)) {
-          var fieldWasRequested = getFieldWasRequestedOnNode(node, field);
-          if (!fieldWasRequested) {
-            context.reportError(new _graphql.GraphQLError("'" + field + "' field required on 'fragment " + node.name.value + " on " + node.typeCondition.name.value + "'", [node]));
-          }
-        }
-      });
-    },
-
-
-    // Every inline fragment must have the required field specified inside
-    // itself or in some parent selection set.
-    InlineFragment: function InlineFragment(node, key, parent, path, ancestors) {
-      requiredFields.forEach(function (field) {
-        var type = context.getType();
-
-        if (fieldAvailableOnType(type, field)) {
-          // First, check the selection set on this inline fragment
-          if (node.selectionSet && getFieldWasRequestedOnNode(node, field)) {
-            return true;
-          }
-
-          var ancestorClone = [].concat(_toConsumableArray(ancestors));
-
-          var nearestFieldOrExecutableDefinition = void 0;
-          var nextAncestor = void 0;
-
-          // Now, walk up the ancestors, until you see a field or executable definition.
-          while (!nearestFieldOrExecutableDefinition) {
-            nextAncestor = ancestorClone.pop();
-
-            if (nextAncestor.selectionSet && getFieldWasRequestedOnNode(nextAncestor, field)) {
-              return true;
-            }
-
-            if (nextAncestor.kind === "Field" || nextAncestor.kind === "FragmentDefinition" || nextAncestor.kind === "OperationDefiniton") {
-              nearestFieldOrExecutableDefinition = nextAncestor;
-            }
-          }
-
-          // If we never found a field or executable definition, the query is malformed
-          if (!nearestFieldOrExecutableDefinition) {
-            throw new Error("Inline fragment found inside document without a parent field, fragment definition, or operation definition.");
-          }
-
-          // We found a field or executable definition, but we never saw the field we were looking for in
-          // the intermediate selection sets.
-          context.reportError(new _graphql.GraphQLError("'" + field + "' field required on '... on " + node.typeCondition.name.value + "'", [node]));
-        }
-      });
-    },
-
-
-    // Every field that can have the field directly on it, should. It's not
-    // enough to have some child fragment to include the field, since we don't
-    // know if that fragment covers all of the possible type options.
-    Field: function Field(node) {
-      var def = context.getFieldDef();
-      if (!def) {
-        return;
-      }
-
-      requiredFields.forEach(function (field) {
-        if (fieldAvailableOnType(def.type, field)) {
-          var fieldWasRequested = getFieldWasRequestedOnNode(node, field);
-          if (!fieldWasRequested) {
-            context.reportError(new _graphql.GraphQLError("'" + field + "' field required on '" + node.name.value + "'", [node]));
-          }
-        }
-      });
-    }
-  };
-}
-
-function typeNamesShouldBeCapitalized(context) {
-  return {
-    NamedType: function NamedType(node) {
-      var typeName = node.name.value;
-      if (typeName[0] == typeName[0].toLowerCase()) {
-        context.reportError(new _graphql.GraphQLError("All type names should start with a capital letter", [node]));
-      }
-    }
-  };
-}
-
-// Mostly taken from https://github.com/graphql/graphql-js/blob/063148de039b02670a760b8d3dfaf2a04a467169/src/utilities/findDeprecatedUsages.js
-// See explanation in [#93](https://github.com/apollographql/eslint-plugin-graphql/pull/93)
-function noDeprecatedFields(context) {
-  return {
-    Field: function Field(node) {
-      var fieldDef = context.getFieldDef();
-      if (fieldDef && fieldDef.isDeprecated) {
-        var parentType = context.getParentType();
-        if (parentType) {
-          var reason = fieldDef.deprecationReason;
-          context.reportError(new _graphql.GraphQLError("The field " + parentType.name + "." + fieldDef.name + " is deprecated." + (reason ? " " + reason : ""), [node]));
-        }
-      }
-    },
-    EnumValue: function EnumValue(node) {
-      // context is of type ValidationContext which doesn't export getEnumValue.
-      // Bypass the public API to grab that information directly from _typeInfo.
-      var enumVal = context._typeInfo.getEnumValue();
-      if (enumVal && enumVal.isDeprecated) {
-        var type = (0, _graphql.getNamedType)(context.getInputType());
-        if (!type) {
-          return;
-        }
-
-        var reason = enumVal.deprecationReason;
-        context.reportError(new _graphql.GraphQLError("The enum value " + type.name + "." + enumVal.name + " is deprecated." + (reason ? " " + reason : ""), [node]));
-      }
-    }
-  };
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-graphql/lib/index.js b/node_modules/eslint-plugin-graphql/lib/index.js
deleted file mode 100644
index 16e9e0c..0000000
--- a/node_modules/eslint-plugin-graphql/lib/index.js
+++ /dev/null
@@ -1,356 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.processors = exports.rules = undefined;
-
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-var _fs = require("fs");
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _path = require("path");
-
-var _path2 = _interopRequireDefault(_path);
-
-var _graphql = require("graphql");
-
-var _lodash = require("lodash");
-
-var _graphqlConfig = require("graphql-config");
-
-var _customGraphQLValidationRules = require("./customGraphQLValidationRules");
-
-var customRules = _interopRequireWildcard(_customGraphQLValidationRules);
-
-var _constants = require("./constants");
-
-var _createRule = require("./createRule");
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-var allGraphQLValidatorNames = _graphql.specifiedRules.map(function (rule) {
-  return rule.name;
-});
-
-// Map of env name to list of rule names.
-var envGraphQLValidatorNames = {
-  apollo: (0, _lodash.without)(allGraphQLValidatorNames, "KnownFragmentNames", "NoUnusedFragments"),
-  lokka: (0, _lodash.without)(allGraphQLValidatorNames, "KnownFragmentNames", "NoUnusedFragments"),
-  fraql: (0, _lodash.without)(allGraphQLValidatorNames, "KnownFragmentNames", "NoUnusedFragments"),
-  relay: (0, _lodash.without)(allGraphQLValidatorNames, "KnownDirectives", "KnownFragmentNames", "NoUndefinedVariables", "NoUnusedFragments",
-  // `graphql` < 14
-  "ProvidedNonNullArguments",
-  // `graphql`@14
-  "ProvidedRequiredArguments", "ScalarLeafs"),
-  literal: (0, _lodash.without)(allGraphQLValidatorNames, "KnownFragmentNames", "NoUnusedFragments")
-};
-
-var gqlFiles = ["gql", "graphql"];
-
-var defaultRuleProperties = {
-  env: {
-    enum: ["lokka", "fraql", "relay", "apollo", "literal"]
-  },
-  schemaJson: {
-    type: "object"
-  },
-  schemaJsonFilepath: {
-    type: "string"
-  },
-  schemaString: {
-    type: "string"
-  },
-  tagName: {
-    type: "string",
-    pattern: "^[$_a-zA-Z$_][a-zA-Z0-9$_]+(\\.[a-zA-Z0-9$_]+)?$"
-  },
-  projectName: {
-    type: "string"
-  }
-};
-
-// schemaJson, schemaJsonFilepath, schemaString and projectName are mutually exclusive:
-var schemaPropsExclusiveness = {
-  oneOf: [{
-    required: ["schemaJson"],
-    not: { required: ["schemaString", "schemaJsonFilepath", "projectName"] }
-  }, {
-    required: ["schemaJsonFilepath"],
-    not: { required: ["schemaJson", "schemaString", "projectName"] }
-  }, {
-    required: ["schemaString"],
-    not: { required: ["schemaJson", "schemaJsonFilepath", "projectName"] }
-  }, {
-    not: {
-      anyOf: [{ required: ["schemaString"] }, { required: ["schemaJson"] }, { required: ["schemaJsonFilepath"] }]
-    }
-  }]
-};
-
-var rules = exports.rules = {
-  "template-strings": {
-    meta: {
-      schema: {
-        type: "array",
-        items: _extends({
-          additionalProperties: false,
-          properties: _extends({}, defaultRuleProperties, {
-            validators: {
-              oneOf: [{
-                type: "array",
-                uniqueItems: true,
-                items: {
-                  enum: allGraphQLValidatorNames
-                }
-              }, {
-                enum: ["all"]
-              }]
-            }
-          })
-        }, schemaPropsExclusiveness)
-      }
-    },
-    create: function create(context) {
-      return (0, _createRule.createRule)(context, function (optionGroup) {
-        return parseOptions(optionGroup, context);
-      });
-    }
-  },
-  "named-operations": {
-    meta: {
-      schema: {
-        type: "array",
-        items: _extends({
-          additionalProperties: false,
-          properties: _extends({}, defaultRuleProperties)
-        }, schemaPropsExclusiveness)
-      }
-    },
-    create: function create(context) {
-      return (0, _createRule.createRule)(context, function (optionGroup) {
-        return parseOptions(_extends({
-          validators: ["OperationsMustHaveNames"]
-        }, optionGroup), context);
-      });
-    }
-  },
-  "required-fields": {
-    meta: {
-      schema: {
-        type: "array",
-        minItems: 1,
-        items: _extends({
-          additionalProperties: false,
-          properties: _extends({}, defaultRuleProperties, {
-            requiredFields: {
-              type: "array",
-              items: {
-                type: "string"
-              }
-            }
-          }),
-          required: ["requiredFields"]
-        }, schemaPropsExclusiveness)
-      }
-    },
-    create: function create(context) {
-      return (0, _createRule.createRule)(context, function (optionGroup) {
-        return parseOptions(_extends({
-          validators: ["RequiredFields"],
-          options: { requiredFields: optionGroup.requiredFields }
-        }, optionGroup), context);
-      });
-    }
-  },
-  "capitalized-type-name": {
-    meta: {
-      schema: {
-        type: "array",
-        items: _extends({
-          additionalProperties: false,
-          properties: _extends({}, defaultRuleProperties)
-        }, schemaPropsExclusiveness)
-      }
-    },
-    create: function create(context) {
-      return (0, _createRule.createRule)(context, function (optionGroup) {
-        return parseOptions(_extends({
-          validators: ["typeNamesShouldBeCapitalized"]
-        }, optionGroup), context);
-      });
-    }
-  },
-  "no-deprecated-fields": {
-    meta: {
-      schema: {
-        type: "array",
-        items: _extends({
-          additionalProperties: false,
-          properties: _extends({}, defaultRuleProperties)
-        }, schemaPropsExclusiveness)
-      }
-    },
-    create: function create(context) {
-      return (0, _createRule.createRule)(context, function (optionGroup) {
-        return parseOptions(_extends({
-          validators: ["noDeprecatedFields"]
-        }, optionGroup), context);
-      });
-    }
-  }
-};
-
-var schemaCache = {};
-var projectCache = {};
-
-function parseOptions(optionGroup, context) {
-  var schemaJson = optionGroup.schemaJson,
-      schemaJsonFilepath = optionGroup.schemaJsonFilepath,
-      schemaString = optionGroup.schemaString,
-      env = optionGroup.env,
-      projectName = optionGroup.projectName,
-      tagNameOption = optionGroup.tagName,
-      validatorNamesOption = optionGroup.validators;
-
-
-  var cacheHit = schemaCache[JSON.stringify(optionGroup)];
-  if (cacheHit && env !== "literal") {
-    return cacheHit;
-  }
-
-  // Validate and unpack schema
-  var schema = void 0;
-  if (schemaJson) {
-    schema = initSchema(schemaJson);
-  } else if (schemaJsonFilepath) {
-    schema = initSchemaFromFile(schemaJsonFilepath);
-  } else if (schemaString) {
-    schema = initSchemaFromString(schemaString);
-  } else {
-    try {
-      var config = (0, _graphqlConfig.getGraphQLConfig)(_path2.default.dirname(context.getFilename()));
-      var projectConfig = void 0;
-      if (projectName) {
-        projectConfig = config.getProjects()[projectName];
-        if (!projectConfig) {
-          throw new Error("Project with name \"" + projectName + "\" not found in " + config.configPath + ".");
-        }
-      } else {
-        projectConfig = config.getConfigForFile(context.getFilename());
-      }
-      if (projectConfig) {
-        var key = config.configPath + "[" + projectConfig.projectName + "]";
-        schema = projectCache[key];
-        if (!schema) {
-          schema = projectConfig.getSchema();
-          projectCache[key] = schema;
-        }
-      }
-      if (cacheHit) {
-        return _extends({}, cacheHit, { schema: schema });
-      }
-    } catch (e) {
-      if (e instanceof _graphqlConfig.ConfigNotFoundError) {
-        throw new Error("Must provide .graphqlconfig file or pass in `schemaJson` option " + "with schema object or `schemaJsonFilepath` with absolute path to the json file.");
-      }
-      throw e;
-    }
-  }
-
-  // Validate env
-  if (env && env !== "lokka" && env !== "fraql" && env !== "relay" && env !== "apollo" && env !== "literal") {
-    throw new Error("Invalid option for env, only `apollo`, `lokka`, `fraql`, `relay`, and `literal` supported.");
-  }
-
-  // Validate tagName and set default
-  var tagName = void 0;
-  if (tagNameOption) {
-    tagName = tagNameOption;
-  } else if (env === "relay") {
-    tagName = "Relay.QL";
-  } else if (env === "literal") {
-    tagName = _constants.internalTag;
-  } else {
-    tagName = "gql";
-  }
-
-  // The validator list may be:
-  //    The string 'all' to use all rules.
-  //    An array of rule names.
-  //    null/undefined to use the default rule set of the environment, or all rules.
-  var validatorNames = void 0;
-  if (validatorNamesOption === "all") {
-    validatorNames = allGraphQLValidatorNames;
-  } else if (validatorNamesOption) {
-    validatorNames = validatorNamesOption;
-  } else {
-    validatorNames = envGraphQLValidatorNames[env] || allGraphQLValidatorNames;
-  }
-
-  var validators = validatorNames.map(function (name) {
-    if (name in customRules) {
-      return customRules[name];
-    } else {
-      return require("graphql/validation/rules/" + name)[name];
-    }
-  });
-  var results = { schema: schema, env: env, tagName: tagName, validators: validators };
-  schemaCache[JSON.stringify(optionGroup)] = results;
-  return results;
-}
-
-function initSchema(json) {
-  var unpackedSchemaJson = json.data ? json.data : json;
-  if (!unpackedSchemaJson.__schema) {
-    throw new Error("Please pass a valid GraphQL introspection query result.");
-  }
-  return (0, _graphql.buildClientSchema)(unpackedSchemaJson);
-}
-
-function initSchemaFromFile(jsonFile) {
-  return initSchema(JSON.parse(_fs2.default.readFileSync(jsonFile, "utf8")));
-}
-
-function initSchemaFromString(source) {
-  return (0, _graphql.buildSchema)(source);
-}
-
-var gqlProcessor = {
-  preprocess: function preprocess(text) {
-    // Wrap the text in backticks and prepend the internal tag. First the text
-    // must be escaped, because of the three sequences that have special
-    // meaning in JavaScript template literals, and could change the meaning of
-    // the text or cause syntax errors.
-    // https://tc39.github.io/ecma262/#prod-TemplateCharacter
-    //
-    // - "`" would end the template literal.
-    // - "\" would start an escape sequence.
-    // - "${" would start an interpolation.
-    var escaped = text.replace(/[`\\]|\$\{/g, "\\$&");
-    return [_constants.internalTag + "`" + escaped + "`"];
-  },
-  postprocess: function postprocess(messages) {
-    // only report graphql-errors
-    return (0, _lodash.flatten)(messages).filter(function (message) {
-      return (0, _lodash.includes)((0, _lodash.keys)(rules).map(function (key) {
-        return "graphql/" + key;
-      }), message.ruleId);
-    });
-  }
-};
-
-var processors = exports.processors = (0, _lodash.reduce)(gqlFiles, function (result, value) {
-  return _extends({}, result, _defineProperty({}, "." + value, gqlProcessor));
-}, {});
-
-exports.default = {
-  rules: rules,
-  processors: processors
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-graphql/package.json b/node_modules/eslint-plugin-graphql/package.json
deleted file mode 100644
index 761585f..0000000
--- a/node_modules/eslint-plugin-graphql/package.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
-  "name": "eslint-plugin-graphql",
-  "version": "3.1.1",
-  "description": "GraphQL ESLint plugin.",
-  "author": "Sashko Stubailo",
-  "main": "lib/index.js",
-  "scripts": {
-    "test": "tav --ci && mocha test/index.js",
-    "prepublish": "babel ./src --ignore test --out-dir ./lib",
-    "pretest": "node test/updateSchemaJson.js",
-    "tav": "tav",
-    "lint": "eslint 'src/**/*.js' 'test/**/*.js'"
-  },
-  "homepage": "https://github.com/apollostack/eslint-plugin-graphql",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/apollostack/eslint-plugin-graphql.git"
-  },
-  "devDependencies": {
-    "babel-cli": "6.26.0",
-    "babel-core": "6.26.3",
-    "babel-eslint": "10.0.1",
-    "babel-plugin-transform-runtime": "6.23.0",
-    "babel-preset-es2015": "6.24.1",
-    "babel-preset-stage-0": "6.24.1",
-    "eslint": "5.16.0",
-    "graphql": "14.4.2",
-    "graphql-tools": "4.0.5",
-    "mocha": "6.2.0",
-    "pretty-quick": "1.11.1",
-    "test-all-versions": "4.1.1"
-  },
-  "babel": {
-    "presets": [
-      "es2015",
-      "stage-0"
-    ]
-  },
-  "husky": {
-    "hooks": {
-      "pre-commit": "pretty-quick --staged"
-    }
-  },
-  "engines": {
-    "node": ">=6.0"
-  },
-  "license": "MIT",
-  "dependencies": {
-    "graphql-config": "^2.0.1",
-    "lodash": "^4.11.1"
-  },
-  "peerDependencies": {
-    "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0"
-  }
-}
diff --git a/node_modules/eslint-plugin-graphql/renovate.json b/node_modules/eslint-plugin-graphql/renovate.json
deleted file mode 100644
index f45d8f1..0000000
--- a/node_modules/eslint-plugin-graphql/renovate.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "extends": [
-    "config:base"
-  ]
-}
diff --git a/node_modules/eslint-plugin-graphql/screenshot.png b/node_modules/eslint-plugin-graphql/screenshot.png
deleted file mode 100644
index 82ce807..0000000
--- a/node_modules/eslint-plugin-graphql/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/node_modules/eslint-plugin-import/CHANGELOG.md b/node_modules/eslint-plugin-import/CHANGELOG.md
index 80912e5..5ba0cb6 100644
--- a/node_modules/eslint-plugin-import/CHANGELOG.md
+++ b/node_modules/eslint-plugin-import/CHANGELOG.md
@@ -6,13 +6,92 @@
 
 ## [Unreleased]
 
+## [2.22.1] - 2020-09-27
+### Fixed
+- [`default`]/TypeScript: avoid crash on `export =` with a MemberExpression ([#1841], thanks [@ljharb])
+- [`extensions`]/importType: Fix @/abc being treated as scoped module ([#1854], thanks [@3nuc])
+- allow using rest operator in named export ([#1878], thanks [@foray1010])
+- [`dynamic-import-chunkname`]: allow single quotes to match Webpack support ([#1848], thanks [@straub])
+
+### Changed
+- [`export`]: add tests for a name collision with `export * from` ([#1704], thanks @tomprats)
+
+## [2.22.0] - 2020-06-26
+### Added
+- [`no-unused-modules`]: consider exported TypeScript interfaces, types and enums ([#1819], thanks [@nicolashenry])
+- [`no-cycle`]: allow `maxDepth` option to be `"∞"` (thanks [@ljharb])
+
+### Fixed
+- [`order`]/TypeScript: properly support `import = object` expressions ([#1823], thanks [@manuth])
+- [`no-extraneous-dependencies`]/TypeScript: do not error when importing type from dev dependencies ([#1820], thanks [@fernandopasik])
+- [`default`]: avoid crash with `export =` ([#1822], thanks [@AndrewLeedham])
+- [`order`]/[`newline-after-import`]: ignore TypeScript's "export import object" ([#1830], thanks [@be5invis])
+- [`dynamic-import-chunkname`]/TypeScript: supports `@typescript-eslint/parser` ([#1833], thanks [@noelebrun])
+- [`order`]/TypeScript: ignore ordering of object imports ([#1831], thanks [@manuth])
+- [`namespace`]: do not report on shadowed import names ([#518], thanks [@ljharb])
+- [`export`]: avoid warning on `export * as` non-conflicts ([#1834], thanks [@ljharb])
+
+### Changed
+- [`no-extraneous-dependencies`]: add tests for importing types ([#1824], thanks [@taye])
+- [docs] [`no-default-export`]: Fix docs url ([#1836], thanks [@beatrizrezener])
+- [docs] [`imports-first`]: deprecation info and link to `first` docs ([#1835], thanks [@beatrizrezener])
+
+## [2.21.2] - 2020-06-09
+### Fixed
+- [`order`]: avoid a crash on TypeScript’s `export import` syntax ([#1808], thanks [@ljharb])
+- [`newline-after-import`]: consider TypeScript `import =` syntax' ([#1811], thanks [@ljharb])
+- [`no-internal-modules`]: avoid a crash on a named export declaration ([#1814], thanks [@ljharb])
+
+## [2.21.1] - 2020-06-07
+### Fixed
+- TypeScript: [`import/named`]: avoid requiring `typescript` when not using TS ([#1805], thanks [@ljharb])
+
+## [2.21.0] - 2020-06-07
+### Added
+- [`import/default`]: support default export in TSExportAssignment ([#1528], thanks [@joaovieira])
+- [`no-cycle`]: add `ignoreExternal` option ([#1681], thanks [@sveyret])
+- [`order`]: Add support for TypeScript's "import equals"-expressions ([#1785], thanks [@manuth])
+- [`import/default`]: support default export in TSExportAssignment ([#1689], thanks [@Maxim-Mazurok])
+- [`no-restricted-paths`]: add custom message support ([#1802], thanks [@malykhinvi])
+
+### Fixed
+- [`group-exports`]: Flow type export awareness ([#1702], thanks [@ernestostifano])
+- [`order`]: Recognize pathGroup config for first group ([#1719], [#1724], thanks [@forivall], [@xpl])
+- [`no-unused-modules`]: Fix re-export not counting as usage when used in combination with import ([#1722], thanks [@Ephem])
+- [`no-duplicates`]: Handle TS import type ([#1676], thanks [@kmui2])
+- [`newline-after-import`]: recognize decorators ([#1139], thanks [@atos1990])
+- [`no-unused-modules`]: Revert "[flow] `no-unused-modules`: add flow type support" ([#1770], thanks [@Hypnosphi])
+- TypeScript: Add nested namespace handling ([#1763], thanks [@julien1619])
+- [`namespace`]/`ExportMap`: Fix interface declarations for TypeScript ([#1764], thanks [@julien1619])
+- [`no-unused-modules`]: avoid order-dependence ([#1744], thanks [@darkartur])
+- [`no-internal-modules`]: also check `export from` syntax ([#1691], thanks [@adjerbetian])
+- TypeScript: [`export`]: avoid a crash with `export =` ([#1801], thanks [@ljharb])
+
+### Changed
+- [Refactor] `no-extraneous-dependencies`: use moduleVisitor ([#1735], thanks [@adamborowski])
+- TypeScript config: Disable [`named`][] ([#1726], thanks [@astorije])
+- [readme] Remove duplicate no-unused-modules from docs ([#1690], thanks [@arvigeus])
+- [Docs] `order`: fix bad inline config ([#1788], thanks [@nickofthyme])
+- [Tests] Add fix for Windows Subsystem for Linux ([#1786], thanks [@manuth])
+- [Docs] `no-unused-rules`: Fix docs for unused exports ([#1776], thanks [@barbogast])
+- [eslint] bump minimum v7 version to v7.2.0
+
+## [2.20.2] - 2020-03-28
+### Fixed
+- [`order`]: fix `isExternalModule` detect on windows ([#1651], thanks [@fisker])
+- [`order`]: recognize ".." as a "parent" path ([#1658], thanks [@golopot])
+- [`no-duplicates`]: fix fixer on cases with default import ([#1666], thanks [@golopot])
+- [`no-unused-modules`]: Handle `export { default } from` syntax ([#1631], thanks [@richardxia])
+- [`first`]: Add a way to disable `absolute-first` explicitly ([#1664], thanks [@TheCrueltySage])
+- [Docs] `no-webpack-loader-syntax`: Updates webpack URLs ([#1751], thanks [@MikeyBeLike])
+
 ## [2.20.1] - 2020-02-01
 ### Fixed
 - [`export`]: Handle function overloading in `*.d.ts` ([#1619], thanks [@IvanGoncharov])
 - [`no-absolute-path`]: fix a crash with invalid import syntax ([#1616], thanks [@ljharb])
 - [`import/external-module-folders` setting] now correctly works with directories containing modules symlinked from `node_modules` ([#1605], thanks [@skozin])
 - [`extensions`]: for invalid code where `name` does not exist, do not crash ([#1613], thanks [@ljharb])
-- [`extentions`]: Fix scope regex ([#1611], thanks [@yordis])
+- [`extensions`]: Fix scope regex ([#1611], thanks [@yordis])
 - [`no-duplicates`]: allow duplicate imports if one is a namespace and the other not ([#1612], thanks [@sveyret])
 - Add some missing rule meta schemas and types ([#1620], thanks [@bmish])
 - [`named`]: for importing from a module which re-exports named exports from a `node_modules` module ([#1569], [#1447], thanks [@redbugz], [@kentcdodds])
@@ -21,6 +100,7 @@
 ### Changed
 - [`import/external-module-folders` setting] behavior is more strict now: it will only match complete path segments ([#1605], thanks [@skozin])
 - [meta] fix "files" field to include/exclude the proper files ([#1635], thanks [@ljharb])
+- [Tests] `order`: Add TS import type tests ([#1736], thanks [@kmui2])
 
 ## [2.20.0] - 2020-01-10
 ### Added
@@ -652,7 +732,51 @@
 
 [`memo-parser`]: ./memo-parser/README.md
 
+[#1878]: https://github.com/benmosher/eslint-plugin-import/pull/1878
+[#1854]: https://github.com/benmosher/eslint-plugin-import/issues/1854
+[#1848]: https://github.com/benmosher/eslint-plugin-import/pull/1848
+[#1841]: https://github.com/benmosher/eslint-plugin-import/issues/1841
+[#1836]: https://github.com/benmosher/eslint-plugin-import/pull/1836
+[#1835]: https://github.com/benmosher/eslint-plugin-import/pull/1835
+[#1834]: https://github.com/benmosher/eslint-plugin-import/issues/1834
+[#1833]: https://github.com/benmosher/eslint-plugin-import/pull/1833
+[#1831]: https://github.com/benmosher/eslint-plugin-import/pull/1831
+[#1830]: https://github.com/benmosher/eslint-plugin-import/pull/1830
+[#1824]: https://github.com/benmosher/eslint-plugin-import/pull/1824
+[#1823]: https://github.com/benmosher/eslint-plugin-import/pull/1823
+[#1822]: https://github.com/benmosher/eslint-plugin-import/pull/1822
+[#1820]: https://github.com/benmosher/eslint-plugin-import/pull/1820
+[#1819]: https://github.com/benmosher/eslint-plugin-import/pull/1819
+[#1802]: https://github.com/benmosher/eslint-plugin-import/pull/1802
+[#1801]: https://github.com/benmosher/eslint-plugin-import/issues/1801
+[#1788]: https://github.com/benmosher/eslint-plugin-import/pull/1788
+[#1786]: https://github.com/benmosher/eslint-plugin-import/pull/1786
+[#1785]: https://github.com/benmosher/eslint-plugin-import/pull/1785
+[#1776]: https://github.com/benmosher/eslint-plugin-import/pull/1776
+[#1770]: https://github.com/benmosher/eslint-plugin-import/pull/1770
+[#1764]: https://github.com/benmosher/eslint-plugin-import/pull/1764
+[#1763]: https://github.com/benmosher/eslint-plugin-import/pull/1763
+[#1751]: https://github.com/benmosher/eslint-plugin-import/pull/1751
+[#1744]: https://github.com/benmosher/eslint-plugin-import/pull/1744
+[#1736]: https://github.com/benmosher/eslint-plugin-import/pull/1736
+[#1735]: https://github.com/benmosher/eslint-plugin-import/pull/1735
+[#1726]: https://github.com/benmosher/eslint-plugin-import/pull/1726
+[#1724]: https://github.com/benmosher/eslint-plugin-import/pull/1724
+[#1722]: https://github.com/benmosher/eslint-plugin-import/issues/1722
+[#1719]: https://github.com/benmosher/eslint-plugin-import/pull/1719
+[#1704]: https://github.com/benmosher/eslint-plugin-import/issues/1704
+[#1702]: https://github.com/benmosher/eslint-plugin-import/issues/1702
+[#1691]: https://github.com/benmosher/eslint-plugin-import/pull/1691
+[#1690]: https://github.com/benmosher/eslint-plugin-import/pull/1690
+[#1689]: https://github.com/benmosher/eslint-plugin-import/pull/1689
+[#1681]: https://github.com/benmosher/eslint-plugin-import/pull/1681
+[#1676]: https://github.com/benmosher/eslint-plugin-import/pull/1676
+[#1666]: https://github.com/benmosher/eslint-plugin-import/pull/1666
+[#1664]: https://github.com/benmosher/eslint-plugin-import/pull/1664
+[#1658]: https://github.com/benmosher/eslint-plugin-import/pull/1658
+[#1651]: https://github.com/benmosher/eslint-plugin-import/pull/1651
 [#1635]: https://github.com/benmosher/eslint-plugin-import/issues/1635
+[#1631]: https://github.com/benmosher/eslint-plugin-import/issues/1631
 [#1625]: https://github.com/benmosher/eslint-plugin-import/pull/1625
 [#1620]: https://github.com/benmosher/eslint-plugin-import/pull/1620
 [#1619]: https://github.com/benmosher/eslint-plugin-import/pull/1619
@@ -669,6 +793,7 @@
 [#1560]: https://github.com/benmosher/eslint-plugin-import/pull/1560
 [#1551]: https://github.com/benmosher/eslint-plugin-import/pull/1551
 [#1542]: https://github.com/benmosher/eslint-plugin-import/pull/1542
+[#1528]: https://github.com/benmosher/eslint-plugin-import/pull/1528
 [#1526]: https://github.com/benmosher/eslint-plugin-import/pull/1526
 [#1521]: https://github.com/benmosher/eslint-plugin-import/pull/1521
 [#1519]: https://github.com/benmosher/eslint-plugin-import/pull/1519
@@ -734,6 +859,7 @@
 [#1157]: https://github.com/benmosher/eslint-plugin-import/pull/1157
 [#1151]: https://github.com/benmosher/eslint-plugin-import/pull/1151
 [#1142]: https://github.com/benmosher/eslint-plugin-import/pull/1142
+[#1139]: https://github.com/benmosher/eslint-plugin-import/pull/1139
 [#1137]: https://github.com/benmosher/eslint-plugin-import/pull/1137
 [#1135]: https://github.com/benmosher/eslint-plugin-import/pull/1135
 [#1128]: https://github.com/benmosher/eslint-plugin-import/pull/1128
@@ -781,6 +907,7 @@
 [#555]: https://github.com/benmosher/eslint-plugin-import/pull/555
 [#538]: https://github.com/benmosher/eslint-plugin-import/pull/538
 [#527]: https://github.com/benmosher/eslint-plugin-import/pull/527
+[#518]: https://github.com/benmosher/eslint-plugin-import/pull/518
 [#509]: https://github.com/benmosher/eslint-plugin-import/pull/509
 [#508]: https://github.com/benmosher/eslint-plugin-import/pull/508
 [#503]: https://github.com/benmosher/eslint-plugin-import/pull/503
@@ -823,6 +950,10 @@
 [#211]: https://github.com/benmosher/eslint-plugin-import/pull/211
 [#164]: https://github.com/benmosher/eslint-plugin-import/pull/164
 [#157]: https://github.com/benmosher/eslint-plugin-import/pull/157
+[#1814]: https://github.com/benmosher/eslint-plugin-import/issues/1814
+[#1811]: https://github.com/benmosher/eslint-plugin-import/issues/1811
+[#1808]: https://github.com/benmosher/eslint-plugin-import/issues/1808
+[#1805]: https://github.com/benmosher/eslint-plugin-import/issues/1805
 [#1565]: https://github.com/benmosher/eslint-plugin-import/issues/1565
 [#1366]: https://github.com/benmosher/eslint-plugin-import/issues/1366
 [#1334]: https://github.com/benmosher/eslint-plugin-import/issues/1334
@@ -908,7 +1039,13 @@
 [#119]: https://github.com/benmosher/eslint-plugin-import/issues/119
 [#89]: https://github.com/benmosher/eslint-plugin-import/issues/89
 
-[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.20.1...HEAD
+[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.22.1...HEAD
+[2.22.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.22.0...v2.22.1
+[2.22.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.1...v2.22.0
+[2.21.2]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.1...v2.21.2
+[2.21.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.0...v2.21.1
+[2.21.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.20.2...v2.21.0
+[2.20.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.20.1...v2.20.2
 [2.20.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.20.0...v2.20.1
 [2.19.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.19.1...v2.20.0
 [2.19.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.19.0...v2.19.1
@@ -974,6 +1111,7 @@
 [0.12.1]: https://github.com/benmosher/eslint-plugin-import/compare/v0.12.0...v0.12.1
 [0.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.11.0...v0.12.0
 [0.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.10.1...v0.11.0
+
 [@mathieudutour]: https://github.com/mathieudutour
 [@gausie]: https://github.com/gausie
 [@singles]: https://github.com/singles
@@ -1105,3 +1243,36 @@
 [@kentcdodds]: https://github.com/kentcdodds
 [@IvanGoncharov]: https://github.com/IvanGoncharov
 [@wschurman]: https://github.com/wschurman
+[@fisker]: https://github.com/fisker
+[@richardxia]: https://github.com/richardxia
+[@TheCrueltySage]: https://github.com/TheCrueltySage
+[@ernestostifano]: https://github.com/ernestostifano
+[@forivall]: https://github.com/forivall
+[@xpl]: https://github.com/xpl
+[@astorije]: https://github.com/astorije
+[@Ephem]: https://github.com/Ephem
+[@kmui2]: https://github.com/kmui2
+[@arvigeus]: https://github.com/arvigeus
+[@atos1990]: https://github.com/atos1990
+[@Hypnosphi]: https://github.com/Hypnosphi
+[@nickofthyme]: https://github.com/nickofthyme
+[@manuth]: https://github.com/manuth
+[@julien1619]: https://github.com/julien1619
+[@darkartur]: https://github.com/darkartur
+[@MikeyBeLike]: https://github.com/MikeyBeLike
+[@barbogast]: https://github.com/barbogast
+[@adamborowski]: https://github.com/adamborowski
+[@adjerbetian]: https://github.com/adjerbetian
+[@Maxim-Mazurok]: https://github.com/Maxim-Mazurok
+[@malykhinvi]: https://github.com/malykhinvi
+[@nicolashenry]: https://github.com/nicolashenry
+[@fernandopasik]: https://github.com/fernandopasik
+[@taye]: https://github.com/taye
+[@AndrewLeedham]: https://github.com/AndrewLeedham
+[@be5invis]: https://github.com/be5invis
+[@noelebrun]: https://github.com/noelebrun
+[@beatrizrezener]: https://github.com/beatrizrezener
+[@3nuc]: https://github.com/3nuc
+[@foray1010]: https://github.com/foray1010
+[@tomprats]: https://github.com/tomprats
+[@straub]: https://github.com/straub
diff --git a/node_modules/eslint-plugin-import/README.md b/node_modules/eslint-plugin-import/README.md
index cc9d1d7..e08e72f 100644
--- a/node_modules/eslint-plugin-import/README.md
+++ b/node_modules/eslint-plugin-import/README.md
@@ -27,7 +27,6 @@
 * Forbid a module from importing a module with a dependency path back to itself ([`no-cycle`])
 * Prevent unnecessary path segments in import and require statements ([`no-useless-path-segments`])
 * Forbid importing modules from parent directories ([`no-relative-parent-imports`])
-* Forbid modules without any export, and exports not imported by any modules. ([`no-unused-modules`])
 
 [`no-unresolved`]: ./docs/rules/no-unresolved.md
 [`named`]: ./docs/rules/named.md
@@ -42,7 +41,6 @@
 [`no-cycle`]: ./docs/rules/no-cycle.md
 [`no-useless-path-segments`]: ./docs/rules/no-useless-path-segments.md
 [`no-relative-parent-imports`]: ./docs/rules/no-relative-parent-imports.md
-[`no-unused-modules`]: ./docs/rules/no-unused-modules.md
 
 ### Helpful warnings
 
diff --git a/node_modules/eslint-plugin-import/config/typescript.js b/node_modules/eslint-plugin-import/config/typescript.js
index 262e3c7..705faaf 100644
--- a/node_modules/eslint-plugin-import/config/typescript.js
+++ b/node_modules/eslint-plugin-import/config/typescript.js
@@ -19,4 +19,10 @@
     },
   },
 
+  rules: {
+    // analysis/correctness
+
+    // TypeScript compilation already ensures that named imports exist in the referenced module
+    'import/named': 'off',
+  },
 }
diff --git a/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md b/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md
index 4bcc5a9..d29c06b 100644
--- a/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md
+++ b/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md
@@ -39,12 +39,6 @@
   'someModule',
 );
 
-// using single quotes instead of double quotes
-import(
-  /* webpackChunkName: 'someModule' */
-  'someModule',
-);
-
 // invalid syntax for webpack comment
 import(
   /* totally not webpackChunkName: "someModule" */
@@ -78,6 +72,12 @@
     /* webpackChunkName: "someModule", webpackPrefetch: true */
     'someModule',
   );
+
+  // using single quotes instead of double quotes
+  import(
+    /* webpackChunkName: 'someModule' */
+    'someModule',
+  );
 ```
 
 ## When Not To Use It
diff --git a/node_modules/eslint-plugin-import/docs/rules/group-exports.md b/node_modules/eslint-plugin-import/docs/rules/group-exports.md
index f61ff53..e6b9887 100644
--- a/node_modules/eslint-plugin-import/docs/rules/group-exports.md
+++ b/node_modules/eslint-plugin-import/docs/rules/group-exports.md
@@ -60,6 +60,15 @@
 module.exports = test
 ```
 
+```flow js
+const first = true;
+type firstType = boolean
+
+// A single named export declaration (type exports handled separately) -> ok
+export {first}
+export type {firstType}
+```
+
 
 ### Invalid
 
@@ -94,6 +103,15 @@
 module.exports.second = true
 ```
 
+```flow js
+type firstType = boolean
+type secondType = any
+
+// Multiple named type export statements -> not ok!
+export type {firstType}
+export type {secondType}
+```
+
 ## When Not To Use It
 
 If you do not mind having your exports spread across the file, you can safely turn this rule off.
diff --git a/node_modules/eslint-plugin-import/docs/rules/imports-first.md b/node_modules/eslint-plugin-import/docs/rules/imports-first.md
new file mode 100644
index 0000000..b7f2075
--- /dev/null
+++ b/node_modules/eslint-plugin-import/docs/rules/imports-first.md
@@ -0,0 +1,3 @@
+# imports-first
+
+This rule was **deprecated** in eslint-plugin-import v2.0.0. Please use the corresponding rule [`first`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/first.md).
diff --git a/node_modules/eslint-plugin-import/docs/rules/no-cycle.md b/node_modules/eslint-plugin-import/docs/rules/no-cycle.md
index 8819d67..7d54e81 100644
--- a/node_modules/eslint-plugin-import/docs/rules/no-cycle.md
+++ b/node_modules/eslint-plugin-import/docs/rules/no-cycle.md
@@ -2,7 +2,7 @@
 
 Ensures that there is no resolvable path back to this module via its dependencies.
 
-This includes cycles of depth 1 (imported module imports me) to `Infinity`, if the
+This includes cycles of depth 1 (imported module imports me) to `"∞"` (or `Infinity`), if the
 [`maxDepth`](#maxdepth) option is not set.
 
 ```js
@@ -55,6 +55,26 @@
 This is not necessarily recommended, but available as a cost/benefit tradeoff mechanism
 for reducing total project lint time, if needed.
 
+#### `ignoreExternal`
+
+An `ignoreExternal` option is available to prevent the cycle detection to expand to external modules:
+
+```js
+/*eslint import/no-cycle: [2, { ignoreExternal: true }]*/
+
+// dep-a.js
+import 'module-b/dep-b.js'
+
+export function a() { /* ... */ }
+```
+
+```js
+// node_modules/module-b/dep-b.js
+import { a } from './dep-a.js' // not reported as this module is external
+```
+
+Its value is `false` by default, but can be set to `true` for reducing total project lint time, if needed.
+
 ## When Not To Use It
 
 This rule is comparatively computationally expensive. If you are pressed for lint
@@ -65,5 +85,8 @@
 
 - [Original inspiring issue](https://github.com/benmosher/eslint-plugin-import/issues/941)
 - Rule to detect that module imports itself: [`no-self-import`]
+- [`import/external-module-folders`] setting
 
 [`no-self-import`]: ./no-self-import.md
+
+[`import/external-module-folders`]: ../../README.md#importexternal-module-folders
diff --git a/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md b/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md
index 8d99c35..7bbb2ed 100644
--- a/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md
+++ b/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md
@@ -49,6 +49,9 @@
 import { settings } from './app/index'; // Reaching to "./app/index" is not allowed
 import userReducer from './reducer/user'; // Reaching to "./reducer/user" is not allowed
 import configureStore from './redux/configureStore'; // Reaching to "./redux/configureStore" is not allowed
+
+export { settings } from './app/index'; // Reaching to "./app/index" is not allowed
+export * from './reducer/user'; // Reaching to "./reducer/user" is not allowed
 ```
 
 The following patterns are NOT considered problems:
@@ -61,4 +64,7 @@
 import 'source-map-support/register';
 import { settings } from '../app';
 import getUser from '../actions/getUser';
+
+export * from 'source-map-support/register';
+export { settings } from '../app';
 ```
diff --git a/node_modules/eslint-plugin-import/docs/rules/no-restricted-paths.md b/node_modules/eslint-plugin-import/docs/rules/no-restricted-paths.md
index 3776699..bfcb9af 100644
--- a/node_modules/eslint-plugin-import/docs/rules/no-restricted-paths.md
+++ b/node_modules/eslint-plugin-import/docs/rules/no-restricted-paths.md
@@ -10,6 +10,7 @@
 This rule has one option. The option is an object containing the definition of all restricted `zones` and the optional `basePath` which is used to resolve relative paths within.
 The default value for `basePath` is the current working directory.
 Each zone consists of the `target` path and a `from` path. The `target` is the path where the restricted imports should be applied. The `from` path defines the folder that is not allowed to be used in an import. An optional `except` may be defined for a zone, allowing exception paths that would otherwise violate the related `from`. Note that `except` is relative to `from` and cannot backtrack to a parent directory.
+You may also specify an optional `message` for a zone, which will be displayed in case of the rule violation.
 
 ### Examples
 
diff --git a/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md b/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md
index 4302bc8..8c23420 100644
--- a/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md
+++ b/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md
@@ -58,28 +58,22 @@
 ```js
 import { e } from 'file-a'
 import { f } from 'file-b'
-import * from  'file-c'
-export * from 'file-d'
-export { default, i0 } from 'file-e' // both will be reported
+import * as fileC from  'file-c'
+export { default, i0 } from 'file-d' // both will be reported
 
 export const j = 99 // will be reported 
 ```
-and file-e:
+and file-d:
 ```js
 export const i0 = 9 // will not be reported
 export const i1 = 9 // will be reported
 export default () => {} // will not be reported
 ```
-and file-d:
+and file-c:
 ```js
 export const h = 8 // will not be reported
 export default () => {} // will be reported, as export * only considers named exports and ignores default exports
 ```
-and file-c:
-```js
-export const g = 7 // will not be reported
-export default () => {} // will not be reported
-```
 and file-b:
 ```js
 import two, { b, c, doAnything } from 'file-a'
diff --git a/node_modules/eslint-plugin-import/docs/rules/no-webpack-loader-syntax.md b/node_modules/eslint-plugin-import/docs/rules/no-webpack-loader-syntax.md
index 37b39a4..271c76c 100644
--- a/node_modules/eslint-plugin-import/docs/rules/no-webpack-loader-syntax.md
+++ b/node_modules/eslint-plugin-import/docs/rules/no-webpack-loader-syntax.md
@@ -2,12 +2,12 @@
 
 Forbid Webpack loader syntax in imports.
 
-[Webpack](http://webpack.github.io) allows specifying the [loaders](http://webpack.github.io/docs/loaders.html) to use in the import source string using a special syntax like this:
+[Webpack](https://webpack.js.org) allows specifying the [loaders](https://webpack.js.org/concepts/loaders/) to use in the import source string using a special syntax like this:
 ```js
 var moduleWithOneLoader = require("my-loader!./my-awesome-module");
 ```
 
-This syntax is non-standard, so it couples the code to Webpack. The recommended way to specify Webpack loader configuration is in a [Webpack configuration file](http://webpack.github.io/docs/loaders.html#loaders-by-config).
+This syntax is non-standard, so it couples the code to Webpack. The recommended way to specify Webpack loader configuration is in a [Webpack configuration file](https://webpack.js.org/concepts/loaders/#configuration).
 
 ## Rule Details
 
diff --git a/node_modules/eslint-plugin-import/docs/rules/order.md b/node_modules/eslint-plugin-import/docs/rules/order.md
index 667b633..7d91efd 100644
--- a/node_modules/eslint-plugin-import/docs/rules/order.md
+++ b/node_modules/eslint-plugin-import/docs/rules/order.md
@@ -22,6 +22,8 @@
 import baz from './bar/baz';
 // 6. "index" of the current directory
 import main from './';
+// 7. "object"-imports (only available in TypeScript)
+import log = console.log;
 ```
 
 Unassigned imports are ignored, as the order they are imported in may be important.
@@ -77,12 +79,15 @@
 
 ### `groups: [array]`:
 
-How groups are defined, and the order to respect. `groups` must be an array of `string` or [`string`]. The only allowed `string`s are: `"builtin"`, `"external"`, `"internal"`, `"unknown"`, `"parent"`, `"sibling"`, `"index"`. The enforced order is the same as the order of each element in a group. Omitted types are implicitly grouped together as the last element. Example:
+How groups are defined, and the order to respect. `groups` must be an array of `string` or [`string`]. The only allowed `string`s are:
+`"builtin"`, `"external"`, `"internal"`, `"unknown"`, `"parent"`, `"sibling"`, `"index"`, `"object"`.
+The enforced order is the same as the order of each element in a group. Omitted types are implicitly grouped together as the last element. Example:
 ```js
 [
   'builtin', // Built-in types are first
   ['sibling', 'parent'], // Then sibling and parent types. They can be mingled together
   'index', // Then the index file
+  'object',
   // Then the rest: internal and external type
 ]
 ```
@@ -91,7 +96,7 @@
 You can set the options like this:
 
 ```js
-"import/order": ["error", {"groups": ["index", "sibling", "parent", "internal", "external", "builtin"]}]
+"import/order": ["error", {"groups": ["index", "sibling", "parent", "internal", "external", "builtin", "object"]}]
 ```
 
 ### `pathGroups: [array of objects]`:
@@ -229,7 +234,7 @@
 This will fail the rule check:
 
 ```js
-/* eslint import/order: ["error", {"alphabetize": true}] */
+/* eslint import/order: ["error", {"alphabetize": {"order": "asc", "caseInsensitive": true}}] */
 import React, { PureComponent } from 'react';
 import aTypes from 'prop-types';
 import { compose, apply } from 'xcompose';
@@ -240,7 +245,7 @@
 While this will pass:
 
 ```js
-/* eslint import/order: ["error", {"alphabetize": true}] */
+/* eslint import/order: ["error", {"alphabetize": {"order": "asc", "caseInsensitive": true}}] */
 import blist from 'BList';
 import * as classnames from 'classnames';
 import aTypes from 'prop-types';
diff --git a/node_modules/eslint-plugin-import/lib/ExportMap.js b/node_modules/eslint-plugin-import/lib/ExportMap.js
index 8b3aae7..b32b6b3 100644
--- a/node_modules/eslint-plugin-import/lib/ExportMap.js
+++ b/node_modules/eslint-plugin-import/lib/ExportMap.js
@@ -1,653 +1,735 @@
-'use strict';
+'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.
 
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.recursivePatternCapture = recursivePatternCapture;
 
-var _fs = require('fs');
 
-var _fs2 = _interopRequireDefault(_fs);
 
-var _doctrine = require('doctrine');
 
-var _doctrine2 = _interopRequireDefault(_doctrine);
 
-var _debug = require('debug');
 
-var _debug2 = _interopRequireDefault(_debug);
 
-var _eslint = require('eslint');
 
-var _parse = require('eslint-module-utils/parse');
 
-var _parse2 = _interopRequireDefault(_parse);
 
-var _resolve = require('eslint-module-utils/resolve');
 
-var _resolve2 = _interopRequireDefault(_resolve);
 
-var _ignore = require('eslint-module-utils/ignore');
 
-var _ignore2 = _interopRequireDefault(_ignore);
 
-var _hash = require('eslint-module-utils/hash');
 
-var _unambiguous = require('eslint-module-utils/unambiguous');
 
-var unambiguous = _interopRequireWildcard(_unambiguous);
 
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
-const log = (0, _debug2.default)('eslint-plugin-import:ExportMap');
 
-const exportCache = new Map();
 
-class ExportMap {
-  constructor(path) {
-    this.path = path;
-    this.namespace = new Map();
-    // todo: restructure to key on path, value is resolver + map of names
-    this.reexports = new Map();
-    /**
-     * star-exports
-     * @type {Set} of () => ExportMap
-     */
-    this.dependencies = new Set();
-    /**
-     * dependencies of this module that are not explicitly re-exported
-     * @type {Map} from path = () => ExportMap
-     */
-    this.imports = new Map();
-    this.errors = [];
-  }
 
-  get hasDefault() {
-    return this.get('default') != null;
-  } // stronger than this.has
 
-  get size() {
-    let size = this.namespace.size + this.reexports.size;
-    this.dependencies.forEach(dep => {
-      const d = dep();
-      // CJS / ignored dependencies won't exist (#717)
-      if (d == null) return;
-      size += d.size;
-    });
-    return size;
-  }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
-  /**
-   * Note that this does not check explicitly re-exported names for existence
-   * in the base namespace, but it will expand all `export * from '...'` exports
-   * if not found in the explicit namespace.
-   * @param  {string}  name
-   * @return {Boolean} true if `name` is exported by this module.
-   */
-  has(name) {
-    if (this.namespace.has(name)) return true;
-    if (this.reexports.has(name)) return true;
 
-    // default exports must be explicitly re-exported (#328)
-    if (name !== 'default') {
-      for (let dep of this.dependencies) {
-        let innerMap = dep();
 
-        // todo: report as unresolved?
-        if (!innerMap) continue;
 
-        if (innerMap.has(name)) return true;
-      }
-    }
 
-    return false;
-  }
 
-  /**
-   * ensure that imported name fully resolves.
-   * @param  {[type]}  name [description]
-   * @return {Boolean}      [description]
-   */
-  hasDeep(name) {
-    if (this.namespace.has(name)) return { found: true, path: [this] };
 
-    if (this.reexports.has(name)) {
-      const reexports = this.reexports.get(name),
-            imported = reexports.getImport();
 
-      // if import is ignored, return explicit 'null'
-      if (imported == null) return { found: true, path: [this]
 
-        // safeguard against cycles, only if name matches
-      };if (imported.path === this.path && reexports.local === name) {
-        return { found: false, path: [this] };
-      }
 
-      const deep = imported.hasDeep(reexports.local);
-      deep.path.unshift(this);
 
-      return deep;
-    }
 
-    // default exports must be explicitly re-exported (#328)
-    if (name !== 'default') {
-      for (let dep of this.dependencies) {
-        let innerMap = dep();
-        if (innerMap == null) return { found: true, path: [this]
-          // todo: report as unresolved?
-        };if (!innerMap) continue;
 
-        // safeguard against cycles
-        if (innerMap.path === this.path) continue;
 
-        let innerValue = innerMap.hasDeep(name);
-        if (innerValue.found) {
-          innerValue.path.unshift(this);
-          return innerValue;
-        }
-      }
-    }
 
-    return { found: false, path: [this] };
-  }
 
-  get(name) {
-    if (this.namespace.has(name)) return this.namespace.get(name);
 
-    if (this.reexports.has(name)) {
-      const reexports = this.reexports.get(name),
-            imported = reexports.getImport();
 
-      // if import is ignored, return explicit 'null'
-      if (imported == null) return null;
 
-      // safeguard against cycles, only if name matches
-      if (imported.path === this.path && reexports.local === name) return undefined;
 
-      return imported.get(reexports.local);
-    }
 
-    // default exports must be explicitly re-exported (#328)
-    if (name !== 'default') {
-      for (let dep of this.dependencies) {
-        let innerMap = dep();
-        // todo: report as unresolved?
-        if (!innerMap) continue;
 
-        // safeguard against cycles
-        if (innerMap.path === this.path) continue;
 
-        let innerValue = innerMap.get(name);
-        if (innerValue !== undefined) return innerValue;
-      }
-    }
 
-    return undefined;
-  }
 
-  forEach(callback, thisArg) {
-    this.namespace.forEach((v, n) => callback.call(thisArg, v, n, this));
 
-    this.reexports.forEach((reexports, name) => {
-      const reexported = reexports.getImport();
-      // can't look up meta for ignored re-exports (#348)
-      callback.call(thisArg, reexported && reexported.get(reexports.local), name, this);
-    });
 
-    this.dependencies.forEach(dep => {
-      const d = dep();
-      // CJS / ignored dependencies won't exist (#717)
-      if (d == null) return;
 
-      d.forEach((v, n) => n !== 'default' && callback.call(thisArg, v, n, this));
-    });
-  }
 
-  // todo: keys, values, entries?
 
-  reportErrors(context, declaration) {
-    context.report({
-      node: declaration.source,
-      message: `Parse errors in imported module '${declaration.source.value}': ` + `${this.errors.map(e => `${e.message} (${e.lineNumber}:${e.column})`).join(', ')}`
-    });
-  }
-}
 
-exports.default = ExportMap; /**
-                              * parse docs from the first node that has leading comments
-                              */
 
-function captureDoc(source, docStyleParsers) {
-  const metadata = {};
 
-  // 'some' short-circuits on first 'true'
 
-  for (var _len = arguments.length, nodes = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
-    nodes[_key - 2] = arguments[_key];
-  }
 
-  nodes.some(n => {
-    try {
 
-      let leadingComments;
 
-      // n.leadingComments is legacy `attachComments` behavior
-      if ('leadingComments' in n) {
-        leadingComments = n.leadingComments;
-      } else if (n.range) {
-        leadingComments = source.getCommentsBefore(n);
-      }
 
-      if (!leadingComments || leadingComments.length === 0) return false;
 
-      for (let name in docStyleParsers) {
-        const doc = docStyleParsers[name](leadingComments);
-        if (doc) {
-          metadata.doc = doc;
-        }
-      }
 
-      return true;
-    } catch (err) {
-      return false;
-    }
-  });
 
-  return metadata;
-}
 
-const availableDocStyleParsers = {
-  jsdoc: captureJsDoc,
-  tomdoc: captureTomDoc
 
-  /**
-   * parse JSDoc from leading comments
-   * @param  {...[type]} comments [description]
-   * @return {{doc: object}}
-   */
-};function captureJsDoc(comments) {
-  let doc;
 
-  // capture XSDoc
-  comments.forEach(comment => {
-    // skip non-block comments
-    if (comment.type !== 'Block') return;
-    try {
-      doc = _doctrine2.default.parse(comment.value, { unwrap: true });
-    } catch (err) {
-      /* don't care, for now? maybe add to `errors?` */
-    }
-  });
 
-  return doc;
-}
 
-/**
-  * parse TomDoc section from comments
-  */
-function captureTomDoc(comments) {
-  // collect lines up to first paragraph break
-  const lines = [];
-  for (let i = 0; i < comments.length; i++) {
-    const comment = comments[i];
-    if (comment.value.match(/^\s*$/)) break;
-    lines.push(comment.value.trim());
-  }
 
-  // return doctrine-like object
-  const statusMatch = lines.join(' ').match(/^(Public|Internal|Deprecated):\s*(.+)/);
-  if (statusMatch) {
-    return {
-      description: statusMatch[2],
-      tags: [{
-        title: statusMatch[1].toLowerCase(),
-        description: statusMatch[2]
-      }]
-    };
-  }
-}
 
-ExportMap.get = function (source, context) {
-  const path = (0, _resolve2.default)(source, context);
-  if (path == null) return null;
 
-  return ExportMap.for(childContext(path, context));
-};
 
-ExportMap.for = function (context) {
-  const path = context.path;
 
 
-  const cacheKey = (0, _hash.hashObject)(context).digest('hex');
-  let exportMap = exportCache.get(cacheKey);
 
-  // return cached ignore
-  if (exportMap === null) return null;
 
-  const stats = _fs2.default.statSync(path);
-  if (exportMap != null) {
-    // date equality check
-    if (exportMap.mtime - stats.mtime === 0) {
-      return exportMap;
-    }
-    // future: check content equality?
-  }
 
-  // check valid extensions first
-  if (!(0, _ignore.hasValidExtension)(path, context)) {
-    exportCache.set(cacheKey, null);
-    return null;
-  }
 
-  // check for and cache ignore
-  if ((0, _ignore2.default)(path, context)) {
-    log('ignored path due to ignore settings:', path);
-    exportCache.set(cacheKey, null);
-    return null;
-  }
 
-  const content = _fs2.default.readFileSync(path, { encoding: 'utf8' });
 
-  // check for and cache unambiguous modules
-  if (!unambiguous.test(content)) {
-    log('ignored path due to unambiguous regex:', path);
-    exportCache.set(cacheKey, null);
-    return null;
-  }
 
-  log('cache miss', cacheKey, 'for path', path);
-  exportMap = ExportMap.parse(path, content, context);
 
-  // ambiguous modules return null
-  if (exportMap == null) return null;
 
-  exportMap.mtime = stats.mtime;
 
-  exportCache.set(cacheKey, exportMap);
-  return exportMap;
-};
 
-ExportMap.parse = function (path, content, context) {
-  var m = new ExportMap(path);
 
-  try {
-    var ast = (0, _parse2.default)(path, content, context);
-  } catch (err) {
-    log('parse error:', path, err);
-    m.errors.push(err);
-    return m; // can't continue
-  }
 
-  if (!unambiguous.isModule(ast)) return null;
 
-  const docstyle = context.settings && context.settings['import/docstyle'] || ['jsdoc'];
-  const docStyleParsers = {};
-  docstyle.forEach(style => {
-    docStyleParsers[style] = availableDocStyleParsers[style];
-  });
 
-  // attempt to collect module doc
-  if (ast.comments) {
-    ast.comments.some(c => {
-      if (c.type !== 'Block') return false;
-      try {
-        const doc = _doctrine2.default.parse(c.value, { unwrap: true });
-        if (doc.tags.some(t => t.title === 'module')) {
-          m.doc = doc;
-          return true;
-        }
-      } catch (err) {/* ignore */}
-      return false;
-    });
-  }
 
-  const namespaces = new Map();
 
-  function remotePath(value) {
-    return _resolve2.default.relative(value, path, context.settings);
-  }
 
-  function resolveImport(value) {
-    const rp = remotePath(value);
-    if (rp == null) return null;
-    return ExportMap.for(childContext(rp, context));
-  }
 
-  function getNamespace(identifier) {
-    if (!namespaces.has(identifier.name)) return;
 
-    return function () {
-      return resolveImport(namespaces.get(identifier.name));
-    };
-  }
 
-  function addNamespace(object, identifier) {
-    const nsfn = getNamespace(identifier);
-    if (nsfn) {
-      Object.defineProperty(object, 'namespace', { get: nsfn });
-    }
 
-    return object;
-  }
 
-  function captureDependency(declaration) {
-    if (declaration.source == null) return null;
-    if (declaration.importKind === 'type') return null; // skip Flow type imports
-    const importedSpecifiers = new Set();
-    const supportedTypes = new Set(['ImportDefaultSpecifier', 'ImportNamespaceSpecifier']);
-    let hasImportedType = false;
-    if (declaration.specifiers) {
-      declaration.specifiers.forEach(specifier => {
-        const isType = specifier.importKind === 'type';
-        hasImportedType = hasImportedType || isType;
 
-        if (supportedTypes.has(specifier.type) && !isType) {
-          importedSpecifiers.add(specifier.type);
-        }
-        if (specifier.type === 'ImportSpecifier' && !isType) {
-          importedSpecifiers.add(specifier.imported.name);
-        }
-      });
-    }
 
-    // only Flow types were imported
-    if (hasImportedType && importedSpecifiers.size === 0) return null;
 
-    const p = remotePath(declaration.source.value);
-    if (p == null) return null;
-    const existing = m.imports.get(p);
-    if (existing != null) return existing.getter;
 
-    const getter = thunkFor(p, context);
-    m.imports.set(p, {
-      getter,
-      source: { // capturing actual node reference holds full AST in memory!
-        value: declaration.source.value,
-        loc: declaration.source.loc
-      },
-      importedSpecifiers
-    });
-    return getter;
-  }
 
-  const source = makeSourceCode(content, ast);
 
-  ast.body.forEach(function (n) {
 
-    if (n.type === 'ExportDefaultDeclaration') {
-      const exportMeta = captureDoc(source, docStyleParsers, n);
-      if (n.declaration.type === 'Identifier') {
-        addNamespace(exportMeta, n.declaration);
-      }
-      m.namespace.set('default', exportMeta);
-      return;
-    }
 
-    if (n.type === 'ExportAllDeclaration') {
-      const getter = captureDependency(n);
-      if (getter) m.dependencies.add(getter);
-      return;
-    }
 
-    // capture namespaces in case of later export
-    if (n.type === 'ImportDeclaration') {
-      captureDependency(n);
-      let ns;
-      if (n.specifiers.some(s => s.type === 'ImportNamespaceSpecifier' && (ns = s))) {
-        namespaces.set(ns.local.name, n.source.value);
-      }
-      return;
-    }
 
-    if (n.type === 'ExportNamedDeclaration') {
-      // capture declaration
-      if (n.declaration != null) {
-        switch (n.declaration.type) {
-          case 'FunctionDeclaration':
-          case 'ClassDeclaration':
-          case 'TypeAlias': // flowtype with babel-eslint parser
-          case 'InterfaceDeclaration':
-          case 'DeclareFunction':
-          case 'TSDeclareFunction':
-          case 'TSEnumDeclaration':
-          case 'TSTypeAliasDeclaration':
-          case 'TSInterfaceDeclaration':
-          case 'TSAbstractClassDeclaration':
-          case 'TSModuleDeclaration':
-            m.namespace.set(n.declaration.id.name, captureDoc(source, docStyleParsers, n));
-            break;
-          case 'VariableDeclaration':
-            n.declaration.declarations.forEach(d => recursivePatternCapture(d.id, id => m.namespace.set(id.name, captureDoc(source, docStyleParsers, d, n))));
-            break;
-        }
-      }
 
-      const nsource = n.source && n.source.value;
-      n.specifiers.forEach(s => {
-        const exportMeta = {};
-        let local;
 
-        switch (s.type) {
-          case 'ExportDefaultSpecifier':
-            if (!n.source) return;
-            local = 'default';
-            break;
-          case 'ExportNamespaceSpecifier':
-            m.namespace.set(s.exported.name, Object.defineProperty(exportMeta, 'namespace', {
-              get() {
-                return resolveImport(nsource);
-              }
-            }));
-            return;
-          case 'ExportSpecifier':
-            if (!n.source) {
-              m.namespace.set(s.exported.name, addNamespace(exportMeta, s.local));
-              return;
-            }
-          // else falls through
-          default:
-            local = s.local.name;
-            break;
-        }
 
-        // todo: JSDoc
-        m.reexports.set(s.exported.name, { local, getImport: () => resolveImport(nsource) });
-      });
-    }
 
-    // This doesn't declare anything, but changes what's being exported.
-    if (n.type === 'TSExportAssignment') {
-      const moduleDecls = ast.body.filter(bodyNode => bodyNode.type === 'TSModuleDeclaration' && bodyNode.id.name === n.expression.name);
-      moduleDecls.forEach(moduleDecl => {
-        if (moduleDecl && moduleDecl.body && moduleDecl.body.body) {
-          moduleDecl.body.body.forEach(moduleBlockNode => {
-            // Export-assignment exports all members in the namespace, explicitly exported or not.
-            const exportedDecl = moduleBlockNode.type === 'ExportNamedDeclaration' ? moduleBlockNode.declaration : moduleBlockNode;
 
-            if (exportedDecl.type === 'VariableDeclaration') {
-              exportedDecl.declarations.forEach(decl => recursivePatternCapture(decl.id, id => m.namespace.set(id.name, captureDoc(source, docStyleParsers, decl, exportedDecl, moduleBlockNode))));
-            } else {
-              m.namespace.set(exportedDecl.id.name, captureDoc(source, docStyleParsers, moduleBlockNode));
-            }
-          });
-        }
-      });
-    }
-  });
 
-  return m;
-};
 
-/**
- * The creation of this closure is isolated from other scopes
- * to avoid over-retention of unrelated variables, which has
- * caused memory leaks. See #1266.
- */
-function thunkFor(p, context) {
-  return () => ExportMap.for(childContext(p, context));
-}
 
-/**
- * Traverse a pattern/identifier node, calling 'callback'
- * for each leaf identifier.
- * @param  {node}   pattern
- * @param  {Function} callback
- * @return {void}
- */
-function recursivePatternCapture(pattern, callback) {
-  switch (pattern.type) {
-    case 'Identifier':
-      // base case
-      callback(pattern);
-      break;
 
-    case 'ObjectPattern':
-      pattern.properties.forEach(p => {
-        recursivePatternCapture(p.value, callback);
-      });
-      break;
 
-    case 'ArrayPattern':
-      pattern.elements.forEach(element => {
-        if (element == null) return;
-        recursivePatternCapture(element, callback);
-      });
-      break;
 
-    case 'AssignmentPattern':
-      callback(pattern.left);
-      break;
-  }
-}
 
-/**
- * don't hold full context object in memory, just grab what we need.
- */
-function childContext(path, context) {
-  const settings = context.settings,
-        parserOptions = context.parserOptions,
-        parserPath = context.parserPath;
 
-  return {
-    settings,
-    parserOptions,
-    parserPath,
-    path
-  };
-}
 
-/**
- * sometimes legacy support isn't _that_ hard... right?
- */
-function makeSourceCode(text, ast) {
-  if (_eslint.SourceCode.length > 1) {
-    // ESLint 3
-    return new _eslint.SourceCode(text, ast);
-  } else {
-    // ESLint 4, 5
-    return new _eslint.SourceCode({ text, ast });
-  }
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBvcnRNYXAuanMiXSwibmFtZXMiOlsicmVjdXJzaXZlUGF0dGVybkNhcHR1cmUiLCJ1bmFtYmlndW91cyIsImxvZyIsImV4cG9ydENhY2hlIiwiTWFwIiwiRXhwb3J0TWFwIiwiY29uc3RydWN0b3IiLCJwYXRoIiwibmFtZXNwYWNlIiwicmVleHBvcnRzIiwiZGVwZW5kZW5jaWVzIiwiU2V0IiwiaW1wb3J0cyIsImVycm9ycyIsImhhc0RlZmF1bHQiLCJnZXQiLCJzaXplIiwiZm9yRWFjaCIsImRlcCIsImQiLCJoYXMiLCJuYW1lIiwiaW5uZXJNYXAiLCJoYXNEZWVwIiwiZm91bmQiLCJpbXBvcnRlZCIsImdldEltcG9ydCIsImxvY2FsIiwiZGVlcCIsInVuc2hpZnQiLCJpbm5lclZhbHVlIiwidW5kZWZpbmVkIiwiY2FsbGJhY2siLCJ0aGlzQXJnIiwidiIsIm4iLCJjYWxsIiwicmVleHBvcnRlZCIsInJlcG9ydEVycm9ycyIsImNvbnRleHQiLCJkZWNsYXJhdGlvbiIsInJlcG9ydCIsIm5vZGUiLCJzb3VyY2UiLCJtZXNzYWdlIiwidmFsdWUiLCJtYXAiLCJlIiwibGluZU51bWJlciIsImNvbHVtbiIsImpvaW4iLCJjYXB0dXJlRG9jIiwiZG9jU3R5bGVQYXJzZXJzIiwibWV0YWRhdGEiLCJub2RlcyIsInNvbWUiLCJsZWFkaW5nQ29tbWVudHMiLCJyYW5nZSIsImdldENvbW1lbnRzQmVmb3JlIiwibGVuZ3RoIiwiZG9jIiwiZXJyIiwiYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzIiwianNkb2MiLCJjYXB0dXJlSnNEb2MiLCJ0b21kb2MiLCJjYXB0dXJlVG9tRG9jIiwiY29tbWVudHMiLCJjb21tZW50IiwidHlwZSIsImRvY3RyaW5lIiwicGFyc2UiLCJ1bndyYXAiLCJsaW5lcyIsImkiLCJtYXRjaCIsInB1c2giLCJ0cmltIiwic3RhdHVzTWF0Y2giLCJkZXNjcmlwdGlvbiIsInRhZ3MiLCJ0aXRsZSIsInRvTG93ZXJDYXNlIiwiZm9yIiwiY2hpbGRDb250ZXh0IiwiY2FjaGVLZXkiLCJkaWdlc3QiLCJleHBvcnRNYXAiLCJzdGF0cyIsImZzIiwic3RhdFN5bmMiLCJtdGltZSIsInNldCIsImNvbnRlbnQiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInRlc3QiLCJtIiwiYXN0IiwiaXNNb2R1bGUiLCJkb2NzdHlsZSIsInNldHRpbmdzIiwic3R5bGUiLCJjIiwidCIsIm5hbWVzcGFjZXMiLCJyZW1vdGVQYXRoIiwicmVzb2x2ZSIsInJlbGF0aXZlIiwicmVzb2x2ZUltcG9ydCIsInJwIiwiZ2V0TmFtZXNwYWNlIiwiaWRlbnRpZmllciIsImFkZE5hbWVzcGFjZSIsIm9iamVjdCIsIm5zZm4iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNhcHR1cmVEZXBlbmRlbmN5IiwiaW1wb3J0S2luZCIsImltcG9ydGVkU3BlY2lmaWVycyIsInN1cHBvcnRlZFR5cGVzIiwiaGFzSW1wb3J0ZWRUeXBlIiwic3BlY2lmaWVycyIsInNwZWNpZmllciIsImlzVHlwZSIsImFkZCIsInAiLCJleGlzdGluZyIsImdldHRlciIsInRodW5rRm9yIiwibG9jIiwibWFrZVNvdXJjZUNvZGUiLCJib2R5IiwiZXhwb3J0TWV0YSIsIm5zIiwicyIsImlkIiwiZGVjbGFyYXRpb25zIiwibnNvdXJjZSIsImV4cG9ydGVkIiwibW9kdWxlRGVjbHMiLCJmaWx0ZXIiLCJib2R5Tm9kZSIsImV4cHJlc3Npb24iLCJtb2R1bGVEZWNsIiwibW9kdWxlQmxvY2tOb2RlIiwiZXhwb3J0ZWREZWNsIiwiZGVjbCIsInBhdHRlcm4iLCJwcm9wZXJ0aWVzIiwiZWxlbWVudHMiLCJlbGVtZW50IiwibGVmdCIsInBhcnNlck9wdGlvbnMiLCJwYXJzZXJQYXRoIiwidGV4dCIsIlNvdXJjZUNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7O1FBcWtCZ0JBLHVCLEdBQUFBLHVCOztBQXJrQmhCOzs7O0FBRUE7Ozs7QUFFQTs7OztBQUVBOztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVB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O0FBQ0VBLGNBQVFDLFVBQVIsQ0FBbUJySSxPQUFuQixDQUEyQjhHLEtBQUs7QUFDOUIvSCxnQ0FBd0IrSCxFQUFFbEYsS0FBMUIsRUFBaUNiLFFBQWpDO0FBQ0QsT0FGRDtBQUdBOztBQUVGLFNBQUssY0FBTDtBQUNFcUgsY0FBUUUsUUFBUixDQUFpQnRJLE9BQWpCLENBQTBCdUksT0FBRCxJQUFhO0FBQ3BDLFlBQUlBLFdBQVcsSUFBZixFQUFxQjtBQUNyQnhKLGdDQUF3QndKLE9BQXhCLEVBQWlDeEgsUUFBakM7QUFDRCxPQUhEO0FBSUE7O0FBRUYsU0FBSyxtQkFBTDtBQUNFQSxlQUFTcUgsUUFBUUksSUFBakI7QUFDQTtBQXBCSjtBQXNCRDs7QUFFRDs7O0FBR0EsU0FBU3JFLFlBQVQsQ0FBc0I3RSxJQUF0QixFQUE0QmdDLE9BQTVCLEVBQXFDO0FBQUEsUUFDM0I4RCxRQUQyQixHQUNhOUQsT0FEYixDQUMzQjhELFFBRDJCO0FBQUEsUUFDakJxRCxhQURpQixHQUNhbkgsT0FEYixDQUNqQm1ILGFBRGlCO0FBQUEsUUFDRkMsVUFERSxHQUNhcEgsT0FEYixDQUNGb0gsVUFERTs7QUFFbkMsU0FBTztBQUNMdEQsWUFESztBQUVMcUQsaUJBRks7QUFHTEMsY0FISztBQUlMcEo7QUFKSyxHQUFQO0FBTUQ7O0FBR0Q7OztBQUdBLFNBQVM2SCxjQUFULENBQXdCd0IsSUFBeEIsRUFBOEIxRCxHQUE5QixFQUFtQztBQUNqQyxNQUFJMkQsbUJBQVdsRyxNQUFYLEdBQW9CLENBQXhCLEVBQTJCO0FBQ3pCO0FBQ0EsV0FBTyxJQUFJa0csa0JBQUosQ0FBZUQsSUFBZixFQUFxQjFELEdBQXJCLENBQVA7QUFDRCxHQUhELE1BR087QUFDTDtBQUNBLFdBQU8sSUFBSTJELGtCQUFKLENBQWUsRUFBRUQsSUFBRixFQUFRMUQsR0FBUixFQUFmLENBQVA7QUFDRDtBQUNGIiwiZmlsZSI6IkV4cG9ydE1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcblxuaW1wb3J0IGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJ1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5cbmltcG9ydCB7IFNvdXJjZUNvZGUgfSBmcm9tICdlc2xpbnQnXG5cbmltcG9ydCBwYXJzZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3BhcnNlJ1xuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGlzSWdub3JlZCwgeyBoYXNWYWxpZEV4dGVuc2lvbiB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvaWdub3JlJ1xuXG5pbXBvcnQgeyBoYXNoT2JqZWN0IH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9oYXNoJ1xuaW1wb3J0ICogYXMgdW5hbWJpZ3VvdXMgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy91bmFtYmlndW91cydcblxuY29uc3QgbG9nID0gZGVidWcoJ2VzbGludC1wbHVnaW4taW1wb3J0OkV4cG9ydE1hcCcpXG5cbmNvbnN0IGV4cG9ydENhY2hlID0gbmV3IE1hcCgpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgTWFwKClcbiAgICAvLyB0b2RvOiByZXN0cnVjdHVyZSB0byBrZXkgb24gcGF0aCwgdmFsdWUgaXMgcmVzb2x2ZXIgKyBtYXAgb2YgbmFtZXNcbiAgICB0aGlzLnJlZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgIC8qKlxuICAgICAqIHN0YXItZXhwb3J0c1xuICAgICAqIEB0eXBlIHtTZXR9IG9mICgpID0+IEV4cG9ydE1hcFxuICAgICAqL1xuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IFNldCgpXG4gICAgLyoqXG4gICAgICogZGVwZW5kZW5jaWVzIG9mIHRoaXMgbW9kdWxlIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IHJlLWV4cG9ydGVkXG4gICAgICogQHR5cGUge01hcH0gZnJvbSBwYXRoID0gKCkgPT4gRXhwb3J0TWFwXG4gICAgICovXG4gICAgdGhpcy5pbXBvcnRzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGwgfSAvLyBzdHJvbmdlciB0aGFuIHRoaXMuaGFzXG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgbGV0IHNpemUgPSB0aGlzLm5hbWVzcGFjZS5zaXplICsgdGhpcy5yZWV4cG9ydHMuc2l6ZVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgIGNvbnN0IGQgPSBkZXAoKVxuICAgICAgLy8gQ0pTIC8gaWdub3JlZCBkZXBlbmRlbmNpZXMgd29uJ3QgZXhpc3QgKCM3MTcpXG4gICAgICBpZiAoZCA9PSBudWxsKSByZXR1cm5cbiAgICAgIHNpemUgKz0gZC5zaXplXG4gICAgfSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgbmFtZXMgZm9yIGV4aXN0ZW5jZVxuICAgKiBpbiB0aGUgYmFzZSBuYW1lc3BhY2UsIGJ1dCBpdCB3aWxsIGV4cGFuZCBhbGwgYGV4cG9ydCAqIGZyb20gJy4uLidgIGV4cG9ydHNcbiAgICogaWYgbm90IGZvdW5kIGluIHRoZSBleHBsaWNpdCBuYW1lc3BhY2UuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWVcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBgbmFtZWAgaXMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUuXG4gICAqL1xuICBoYXMobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChsZXQgZGVwIG9mIHRoaXMuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG5cbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgaWYgKGlubmVyTWFwLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnN1cmUgdGhhdCBpbXBvcnRlZCBuYW1lIGZ1bGx5IHJlc29sdmVzLlxuICAgKiBAcGFyYW0gIHtbdHlwZV19ICBuYW1lIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiB7Qm9vbGVhbn0gICAgICBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBoYXNEZWVwKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0cyA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzLCBvbmx5IGlmIG5hbWUgbWF0Y2hlc1xuICAgICAgaWYgKGltcG9ydGVkLnBhdGggPT09IHRoaXMucGF0aCAmJiByZWV4cG9ydHMubG9jYWwgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWVwID0gaW1wb3J0ZWQuaGFzRGVlcChyZWV4cG9ydHMubG9jYWwpXG4gICAgICBkZWVwLnBhdGgudW5zaGlmdCh0aGlzKVxuXG4gICAgICByZXR1cm4gZGVlcFxuICAgIH1cblxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGxldCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgaWYgKGlubmVyTWFwID09IG51bGwpIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiBbdGhpc10gfVxuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWVcblxuICAgICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXNcbiAgICAgICAgaWYgKGlubmVyTWFwLnBhdGggPT09IHRoaXMucGF0aCkgY29udGludWVcblxuICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IGlubmVyTWFwLmhhc0RlZXAobmFtZSlcbiAgICAgICAgaWYgKGlubmVyVmFsdWUuZm91bmQpIHtcbiAgICAgICAgICBpbm5lclZhbHVlLnBhdGgudW5zaGlmdCh0aGlzKVxuICAgICAgICAgIHJldHVybiBpbm5lclZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBmb3VuZDogZmFsc2UsIHBhdGg6IFt0aGlzXSB9XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0aGlzLm5hbWVzcGFjZS5nZXQobmFtZSlcblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0cyA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIHJlZXhwb3J0cy5sb2NhbCA9PT0gbmFtZSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgICByZXR1cm4gaW1wb3J0ZWQuZ2V0KHJlZXhwb3J0cy5sb2NhbClcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGZvciAobGV0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcykge1xuICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWVcblxuICAgICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXNcbiAgICAgICAgaWYgKGlubmVyTWFwLnBhdGggPT09IHRoaXMucGF0aCkgY29udGludWVcblxuICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IGlubmVyTWFwLmdldChuYW1lKVxuICAgICAgICBpZiAoaW5uZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaW5uZXJWYWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICB0aGlzLm5hbWVzcGFjZS5mb3JFYWNoKCh2LCBuKSA9PlxuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSlcblxuICAgIHRoaXMucmVleHBvcnRzLmZvckVhY2goKHJlZXhwb3J0cywgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IHJlZXhwb3J0cy5nZXRJbXBvcnQoKVxuICAgICAgLy8gY2FuJ3QgbG9vayB1cCBtZXRhIGZvciBpZ25vcmVkIHJlLWV4cG9ydHMgKCMzNDgpXG4gICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHJlZXhwb3J0ZWQgJiYgcmVleHBvcnRlZC5nZXQocmVleHBvcnRzLmxvY2FsKSwgbmFtZSwgdGhpcylcbiAgICB9KVxuXG4gICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgY29uc3QgZCA9IGRlcCgpXG4gICAgICAvLyBDSlMgLyBpZ25vcmVkIGRlcGVuZGVuY2llcyB3b24ndCBleGlzdCAoIzcxNylcbiAgICAgIGlmIChkID09IG51bGwpIHJldHVyblxuXG4gICAgICBkLmZvckVhY2goKHYsIG4pID0+XG4gICAgICAgIG4gIT09ICdkZWZhdWx0JyAmJiBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHYsIG4sIHRoaXMpKVxuICAgIH0pXG4gIH1cblxuICAvLyB0b2RvOiBrZXlzLCB2YWx1ZXMsIGVudHJpZXM/XG5cbiAgcmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogZGVjbGFyYXRpb24uc291cmNlLFxuICAgICAgbWVzc2FnZTogYFBhcnNlIGVycm9ycyBpbiBpbXBvcnRlZCBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfSc6IGAgK1xuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIC4uLm5vZGVzKSB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge31cblxuICAvLyAnc29tZScgc2hvcnQtY2lyY3VpdHMgb24gZmlyc3QgJ3RydWUnXG4gIG5vZGVzLnNvbWUobiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgbGV0IGxlYWRpbmdDb21tZW50c1xuXG4gICAgICAvLyBuLmxlYWRpbmdDb21tZW50cyBpcyBsZWdhY3kgYGF0dGFjaENvbW1lbnRzYCBiZWhhdmlvclxuICAgICAgaWYgKCdsZWFkaW5nQ29tbWVudHMnIGluIG4pIHtcbiAgICAgICAgbGVhZGluZ0NvbW1lbnRzID0gbi5sZWFkaW5nQ29tbWVudHNcbiAgICAgIH0gZWxzZSBpZiAobi5yYW5nZSkge1xuICAgICAgICBsZWFkaW5nQ29tbWVudHMgPSBzb3VyY2UuZ2V0Q29tbWVudHNCZWZvcmUobilcbiAgICAgIH1cblxuICAgICAgaWYgKCFsZWFkaW5nQ29tbWVudHMgfHwgbGVhZGluZ0NvbW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGZvciAobGV0IG5hbWUgaW4gZG9jU3R5bGVQYXJzZXJzKSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvY1N0eWxlUGFyc2Vyc1tuYW1lXShsZWFkaW5nQ29tbWVudHMpXG4gICAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgICBtZXRhZGF0YS5kb2MgPSBkb2NcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBtZXRhZGF0YVxufVxuXG5jb25zdCBhdmFpbGFibGVEb2NTdHlsZVBhcnNlcnMgPSB7XG4gIGpzZG9jOiBjYXB0dXJlSnNEb2MsXG4gIHRvbWRvYzogY2FwdHVyZVRvbURvYyxcbn1cblxuLyoqXG4gKiBwYXJzZSBKU0RvYyBmcm9tIGxlYWRpbmcgY29tbWVudHNcbiAqIEBwYXJhbSAgey4uLlt0eXBlXX0gY29tbWVudHMgW2Rlc2NyaXB0aW9uXVxuICogQHJldHVybiB7e2RvYzogb2JqZWN0fX1cbiAqL1xuZnVuY3Rpb24gY2FwdHVyZUpzRG9jKGNvbW1lbnRzKSB7XG4gIGxldCBkb2NcblxuICAvLyBjYXB0dXJlIFhTRG9jXG4gIGNvbW1lbnRzLmZvckVhY2goY29tbWVudCA9PiB7XG4gICAgLy8gc2tpcCBub24tYmxvY2sgY29tbWVudHNcbiAgICBpZiAoY29tbWVudC50eXBlICE9PSAnQmxvY2snKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgZG9jID0gZG9jdHJpbmUucGFyc2UoY29tbWVudC52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRvY1xufVxuXG4vKipcbiAgKiBwYXJzZSBUb21Eb2Mgc2VjdGlvbiBmcm9tIGNvbW1lbnRzXG4gICovXG5mdW5jdGlvbiBjYXB0dXJlVG9tRG9jKGNvbW1lbnRzKSB7XG4gIC8vIGNvbGxlY3QgbGluZXMgdXAgdG8gZmlyc3QgcGFyYWdyYXBoIGJyZWFrXG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXVxuICAgIGlmIChjb21tZW50LnZhbHVlLm1hdGNoKC9eXFxzKiQvKSkgYnJlYWtcbiAgICBsaW5lcy5wdXNoKGNvbW1lbnQudmFsdWUudHJpbSgpKVxuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pXG4gIGlmIChzdGF0dXNNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RhdHVzTWF0Y2hbMl0sXG4gICAgICB0YWdzOiBbe1xuICAgICAgICB0aXRsZTogc3RhdHVzTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgfV0sXG4gICAgfVxuICB9XG59XG5cbkV4cG9ydE1hcC5nZXQgPSBmdW5jdGlvbiAoc291cmNlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHBhdGggPSByZXNvbHZlKHNvdXJjZSwgY29udGV4dClcbiAgaWYgKHBhdGggPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gRXhwb3J0TWFwLmZvcihjaGlsZENvbnRleHQocGF0aCwgY29udGV4dCkpXG59XG5cbkV4cG9ydE1hcC5mb3IgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCB7IHBhdGggfSA9IGNvbnRleHRcblxuICBjb25zdCBjYWNoZUtleSA9IGhhc2hPYmplY3QoY29udGV4dCkuZGlnZXN0KCdoZXgnKVxuICBsZXQgZXhwb3J0TWFwID0gZXhwb3J0Q2FjaGUuZ2V0KGNhY2hlS2V5KVxuXG4gIC8vIHJldHVybiBjYWNoZWQgaWdub3JlXG4gIGlmIChleHBvcnRNYXAgPT09IG51bGwpIHJldHVybiBudWxsXG5cbiAgY29uc3Qgc3RhdHMgPSBmcy5zdGF0U3luYyhwYXRoKVxuICBpZiAoZXhwb3J0TWFwICE9IG51bGwpIHtcbiAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgaWYgKGV4cG9ydE1hcC5tdGltZSAtIHN0YXRzLm10aW1lID09PSAwKSB7XG4gICAgICByZXR1cm4gZXhwb3J0TWFwXG4gICAgfVxuICAgIC8vIGZ1dHVyZTogY2hlY2sgY29udGVudCBlcXVhbGl0eT9cbiAgfVxuXG4gIC8vIGNoZWNrIHZhbGlkIGV4dGVuc2lvbnMgZmlyc3RcbiAgaWYgKCFoYXNWYWxpZEV4dGVuc2lvbihwYXRoLCBjb250ZXh0KSkge1xuICAgIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgbnVsbClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gY2hlY2sgZm9yIGFuZCBjYWNoZSBpZ25vcmVcbiAgaWYgKGlzSWdub3JlZChwYXRoLCBjb250ZXh0KSkge1xuICAgIGxvZygnaWdub3JlZCBwYXRoIGR1ZSB0byBpZ25vcmUgc2V0dGluZ3M6JywgcGF0aClcbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pXG5cbiAgLy8gY2hlY2sgZm9yIGFuZCBjYWNoZSB1bmFtYmlndW91cyBtb2R1bGVzXG4gIGlmICghdW5hbWJpZ3VvdXMudGVzdChjb250ZW50KSkge1xuICAgIGxvZygnaWdub3JlZCBwYXRoIGR1ZSB0byB1bmFtYmlndW91cyByZWdleDonLCBwYXRoKVxuICAgIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgbnVsbClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgbG9nKCdjYWNoZSBtaXNzJywgY2FjaGVLZXksICdmb3IgcGF0aCcsIHBhdGgpXG4gIGV4cG9ydE1hcCA9IEV4cG9ydE1hcC5wYXJzZShwYXRoLCBjb250ZW50LCBjb250ZXh0KVxuXG4gIC8vIGFtYmlndW91cyBtb2R1bGVzIHJldHVybiBudWxsXG4gIGlmIChleHBvcnRNYXAgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICBleHBvcnRNYXAubXRpbWUgPSBzdGF0cy5tdGltZVxuXG4gIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgZXhwb3J0TWFwKVxuICByZXR1cm4gZXhwb3J0TWFwXG59XG5cblxuRXhwb3J0TWFwLnBhcnNlID0gZnVuY3Rpb24gKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpIHtcbiAgdmFyIG0gPSBuZXcgRXhwb3J0TWFwKHBhdGgpXG5cbiAgdHJ5IHtcbiAgICB2YXIgYXN0ID0gcGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nKCdwYXJzZSBlcnJvcjonLCBwYXRoLCBlcnIpXG4gICAgbS5lcnJvcnMucHVzaChlcnIpXG4gICAgcmV0dXJuIG0gLy8gY2FuJ3QgY29udGludWVcbiAgfVxuXG4gIGlmICghdW5hbWJpZ3VvdXMuaXNNb2R1bGUoYXN0KSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ11cbiAgY29uc3QgZG9jU3R5bGVQYXJzZXJzID0ge31cbiAgZG9jc3R5bGUuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgZG9jU3R5bGVQYXJzZXJzW3N0eWxlXSA9IGF2YWlsYWJsZURvY1N0eWxlUGFyc2Vyc1tzdHlsZV1cbiAgfSlcblxuICAvLyBhdHRlbXB0IHRvIGNvbGxlY3QgbW9kdWxlIGRvY1xuICBpZiAoYXN0LmNvbW1lbnRzKSB7XG4gICAgYXN0LmNvbW1lbnRzLnNvbWUoYyA9PiB7XG4gICAgICBpZiAoYy50eXBlICE9PSAnQmxvY2snKSByZXR1cm4gZmFsc2VcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvY3RyaW5lLnBhcnNlKGMudmFsdWUsIHsgdW53cmFwOiB0cnVlIH0pXG4gICAgICAgIGlmIChkb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ21vZHVsZScpKSB7XG4gICAgICAgICAgbS5kb2MgPSBkb2NcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHsgLyogaWdub3JlICovIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gcmVtb3RlUGF0aCh2YWx1ZSkge1xuICAgIHJldHVybiByZXNvbHZlLnJlbGF0aXZlKHZhbHVlLCBwYXRoLCBjb250ZXh0LnNldHRpbmdzKVxuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydCh2YWx1ZSkge1xuICAgIGNvbnN0IHJwID0gcmVtb3RlUGF0aCh2YWx1ZSlcbiAgICBpZiAocnAgPT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gRXhwb3J0TWFwLmZvcihjaGlsZENvbnRleHQocnAsIGNvbnRleHQpKVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpIHtcbiAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGlkZW50aWZpZXIubmFtZSkpIHJldHVyblxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXNvbHZlSW1wb3J0KG5hbWVzcGFjZXMuZ2V0KGlkZW50aWZpZXIubmFtZSkpXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkTmFtZXNwYWNlKG9iamVjdCwgaWRlbnRpZmllcikge1xuICAgIGNvbnN0IG5zZm4gPSBnZXROYW1lc3BhY2UoaWRlbnRpZmllcilcbiAgICBpZiAobnNmbikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJ25hbWVzcGFjZScsIHsgZ2V0OiBuc2ZuIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG9iamVjdFxuICB9XG5cbiAgZnVuY3Rpb24gY2FwdHVyZURlcGVuZGVuY3koZGVjbGFyYXRpb24pIHtcbiAgICBpZiAoZGVjbGFyYXRpb24uc291cmNlID09IG51bGwpIHJldHVybiBudWxsXG4gICAgaWYgKGRlY2xhcmF0aW9uLmltcG9ydEtpbmQgPT09ICd0eXBlJykgcmV0dXJuIG51bGwgLy8gc2tpcCBGbG93IHR5cGUgaW1wb3J0c1xuICAgIGNvbnN0IGltcG9ydGVkU3BlY2lmaWVycyA9IG5ldyBTZXQoKVxuICAgIGNvbnN0IHN1cHBvcnRlZFR5cGVzID0gbmV3IFNldChbJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInLCAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJ10pXG4gICAgbGV0IGhhc0ltcG9ydGVkVHlwZSA9IGZhbHNlXG4gICAgaWYgKGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICBjb25zdCBpc1R5cGUgPSBzcGVjaWZpZXIuaW1wb3J0S2luZCA9PT0gJ3R5cGUnXG4gICAgICAgIGhhc0ltcG9ydGVkVHlwZSA9IGhhc0ltcG9ydGVkVHlwZSB8fCBpc1R5cGVcblxuICAgICAgICBpZiAoc3VwcG9ydGVkVHlwZXMuaGFzKHNwZWNpZmllci50eXBlKSAmJiAhaXNUeXBlKSB7XG4gICAgICAgICAgaW1wb3J0ZWRTcGVjaWZpZXJzLmFkZChzcGVjaWZpZXIudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnRTcGVjaWZpZXInICYmICFpc1R5cGUpIHtcbiAgICAgICAgICBpbXBvcnRlZFNwZWNpZmllcnMuYWRkKHNwZWNpZmllci5pbXBvcnRlZC5uYW1lKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIG9ubHkgRmxvdyB0eXBlcyB3ZXJlIGltcG9ydGVkXG4gICAgaWYgKGhhc0ltcG9ydGVkVHlwZSAmJiBpbXBvcnRlZFNwZWNpZmllcnMuc2l6ZSA9PT0gMCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHAgPSByZW1vdGVQYXRoKGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSlcbiAgICBpZiAocCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGV4aXN0aW5nID0gbS5pbXBvcnRzLmdldChwKVxuICAgIGlmIChleGlzdGluZyAhPSBudWxsKSByZXR1cm4gZXhpc3RpbmcuZ2V0dGVyXG5cbiAgICBjb25zdCBnZXR0ZXIgPSB0aHVua0ZvcihwLCBjb250ZXh0KVxuICAgIG0uaW1wb3J0cy5zZXQocCwge1xuICAgICAgZ2V0dGVyLFxuICAgICAgc291cmNlOiB7ICAvLyBjYXB0dXJpbmcgYWN0dWFsIG5vZGUgcmVmZXJlbmNlIGhvbGRzIGZ1bGwgQVNUIGluIG1lbW9yeSFcbiAgICAgICAgdmFsdWU6IGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSxcbiAgICAgICAgbG9jOiBkZWNsYXJhdGlvbi5zb3VyY2UubG9jLFxuICAgICAgfSxcbiAgICAgIGltcG9ydGVkU3BlY2lmaWVycyxcbiAgICB9KVxuICAgIHJldHVybiBnZXR0ZXJcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZSA9IG1ha2VTb3VyY2VDb2RlKGNvbnRlbnQsIGFzdClcblxuICBhc3QuYm9keS5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7XG5cbiAgICBpZiAobi50eXBlID09PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJykge1xuICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIG4pXG4gICAgICBpZiAobi5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgYWRkTmFtZXNwYWNlKGV4cG9ydE1ldGEsIG4uZGVjbGFyYXRpb24pXG4gICAgICB9XG4gICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBleHBvcnRNZXRhKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJykge1xuICAgICAgY29uc3QgZ2V0dGVyID0gY2FwdHVyZURlcGVuZGVuY3kobilcbiAgICAgIGlmIChnZXR0ZXIpIG0uZGVwZW5kZW5jaWVzLmFkZChnZXR0ZXIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBjYXB0dXJlIG5hbWVzcGFjZXMgaW4gY2FzZSBvZiBsYXRlciBleHBvcnRcbiAgICBpZiAobi50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICBjYXB0dXJlRGVwZW5kZW5jeShuKVxuICAgICAgbGV0IG5zXG4gICAgICBpZiAobi5zcGVjaWZpZXJzLnNvbWUocyA9PiBzLnR5cGUgPT09ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInICYmIChucyA9IHMpKSkge1xuICAgICAgICBuYW1lc3BhY2VzLnNldChucy5sb2NhbC5uYW1lLCBuLnNvdXJjZS52YWx1ZSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJykge1xuICAgICAgLy8gY2FwdHVyZSBkZWNsYXJhdGlvblxuICAgICAgaWYgKG4uZGVjbGFyYXRpb24gIT0gbnVsbCkge1xuICAgICAgICBzd2l0Y2ggKG4uZGVjbGFyYXRpb24udHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0Z1bmN0aW9uRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ0NsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1R5cGVBbGlhcyc6IC8vIGZsb3d0eXBlIHdpdGggYmFiZWwtZXNsaW50IHBhcnNlclxuICAgICAgICAgIGNhc2UgJ0ludGVyZmFjZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICBjYXNlICdEZWNsYXJlRnVuY3Rpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTRGVjbGFyZUZ1bmN0aW9uJzpcbiAgICAgICAgICBjYXNlICdUU0VudW1EZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNJbnRlcmZhY2VEZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNBYnN0cmFjdENsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTTW9kdWxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KG4uZGVjbGFyYXRpb24uaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgbikpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgbi5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMuZm9yRWFjaCgoZCkgPT5cbiAgICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZC5pZCxcbiAgICAgICAgICAgICAgICBpZCA9PiBtLm5hbWVzcGFjZS5zZXQoaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZCwgbikpKSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbnNvdXJjZSA9IG4uc291cmNlICYmIG4uc291cmNlLnZhbHVlXG4gICAgICBuLnNwZWNpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBjb25zdCBleHBvcnRNZXRhID0ge31cbiAgICAgICAgbGV0IGxvY2FsXG5cbiAgICAgICAgc3dpdGNoIChzLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgIGlmICghbi5zb3VyY2UpIHJldHVyblxuICAgICAgICAgICAgbG9jYWwgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRNZXRhLCAnbmFtZXNwYWNlJywge1xuICAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiByZXNvbHZlSW1wb3J0KG5zb3VyY2UpIH0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIGNhc2UgJ0V4cG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICBpZiAoIW4uc291cmNlKSB7XG4gICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBzLmxvY2FsKSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNlIGZhbGxzIHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgbG9jYWwgPSBzLmxvY2FsLm5hbWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICAvLyB0b2RvOiBKU0RvY1xuICAgICAgICBtLnJlZXhwb3J0cy5zZXQocy5leHBvcnRlZC5uYW1lLCB7IGxvY2FsLCBnZXRJbXBvcnQ6ICgpID0+IHJlc29sdmVJbXBvcnQobnNvdXJjZSkgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gVGhpcyBkb2Vzbid0IGRlY2xhcmUgYW55dGhpbmcsIGJ1dCBjaGFuZ2VzIHdoYXQncyBiZWluZyBleHBvcnRlZC5cbiAgICBpZiAobi50eXBlID09PSAnVFNFeHBvcnRBc3NpZ25tZW50Jykge1xuICAgICAgY29uc3QgbW9kdWxlRGVjbHMgPSBhc3QuYm9keS5maWx0ZXIoKGJvZHlOb2RlKSA9PlxuICAgICAgICBib2R5Tm9kZS50eXBlID09PSAnVFNNb2R1bGVEZWNsYXJhdGlvbicgJiYgYm9keU5vZGUuaWQubmFtZSA9PT0gbi5leHByZXNzaW9uLm5hbWVcbiAgICAgIClcbiAgICAgIG1vZHVsZURlY2xzLmZvckVhY2goKG1vZHVsZURlY2wpID0+IHtcbiAgICAgICAgaWYgKG1vZHVsZURlY2wgJiYgbW9kdWxlRGVjbC5ib2R5ICYmIG1vZHVsZURlY2wuYm9keS5ib2R5KSB7XG4gICAgICAgICAgbW9kdWxlRGVjbC5ib2R5LmJvZHkuZm9yRWFjaCgobW9kdWxlQmxvY2tOb2RlKSA9PiB7XG4gICAgICAgICAgICAvLyBFeHBvcnQtYXNzaWdubWVudCBleHBvcnRzIGFsbCBtZW1iZXJzIGluIHRoZSBuYW1lc3BhY2UsIGV4cGxpY2l0bHkgZXhwb3J0ZWQgb3Igbm90LlxuICAgICAgICAgICAgY29uc3QgZXhwb3J0ZWREZWNsID0gbW9kdWxlQmxvY2tOb2RlLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyA/XG4gICAgICAgICAgICAgIG1vZHVsZUJsb2NrTm9kZS5kZWNsYXJhdGlvbiA6XG4gICAgICAgICAgICAgIG1vZHVsZUJsb2NrTm9kZVxuXG4gICAgICAgICAgICBpZiAoZXhwb3J0ZWREZWNsLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgICBleHBvcnRlZERlY2wuZGVjbGFyYXRpb25zLmZvckVhY2goKGRlY2wpID0+XG4gICAgICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZGVjbC5pZCwoaWQpID0+IG0ubmFtZXNwYWNlLnNldChcbiAgICAgICAgICAgICAgICAgIGlkLm5hbWUsXG4gICAgICAgICAgICAgICAgICBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBkZWNsLCBleHBvcnRlZERlY2wsIG1vZHVsZUJsb2NrTm9kZSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoXG4gICAgICAgICAgICAgICAgZXhwb3J0ZWREZWNsLmlkLm5hbWUsXG4gICAgICAgICAgICAgICAgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgbW9kdWxlQmxvY2tOb2RlKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbVxufVxuXG4vKipcbiAqIFRoZSBjcmVhdGlvbiBvZiB0aGlzIGNsb3N1cmUgaXMgaXNvbGF0ZWQgZnJvbSBvdGhlciBzY29wZXNcbiAqIHRvIGF2b2lkIG92ZXItcmV0ZW50aW9uIG9mIHVucmVsYXRlZCB2YXJpYWJsZXMsIHdoaWNoIGhhc1xuICogY2F1c2VkIG1lbW9yeSBsZWFrcy4gU2VlICMxMjY2LlxuICovXG5mdW5jdGlvbiB0aHVua0ZvcihwLCBjb250ZXh0KSB7XG4gIHJldHVybiAoKSA9PiBFeHBvcnRNYXAuZm9yKGNoaWxkQ29udGV4dChwLCBjb250ZXh0KSlcbn1cblxuXG4vKipcbiAqIFRyYXZlcnNlIGEgcGF0dGVybi9pZGVudGlmaWVyIG5vZGUsIGNhbGxpbmcgJ2NhbGxiYWNrJ1xuICogZm9yIGVhY2ggbGVhZiBpZGVudGlmaWVyLlxuICogQHBhcmFtICB7bm9kZX0gICBwYXR0ZXJuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShwYXR0ZXJuLCBjYWxsYmFjaykge1xuICBzd2l0Y2ggKHBhdHRlcm4udHlwZSkge1xuICAgIGNhc2UgJ0lkZW50aWZpZXInOiAvLyBiYXNlIGNhc2VcbiAgICAgIGNhbGxiYWNrKHBhdHRlcm4pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnT2JqZWN0UGF0dGVybic6XG4gICAgICBwYXR0ZXJuLnByb3BlcnRpZXMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUocC52YWx1ZSwgY2FsbGJhY2spXG4gICAgICB9KVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgJ0FycmF5UGF0dGVybic6XG4gICAgICBwYXR0ZXJuLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGVsZW1lbnQsIGNhbGxiYWNrKVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdBc3NpZ25tZW50UGF0dGVybic6XG4gICAgICBjYWxsYmFjayhwYXR0ZXJuLmxlZnQpXG4gICAgICBicmVha1xuICB9XG59XG5cbi8qKlxuICogZG9uJ3QgaG9sZCBmdWxsIGNvbnRleHQgb2JqZWN0IGluIG1lbW9yeSwganVzdCBncmFiIHdoYXQgd2UgbmVlZC5cbiAqL1xuZnVuY3Rpb24gY2hpbGRDb250ZXh0KHBhdGgsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBzZXR0aW5ncywgcGFyc2VyT3B0aW9ucywgcGFyc2VyUGF0aCB9ID0gY29udGV4dFxuICByZXR1cm4ge1xuICAgIHNldHRpbmdzLFxuICAgIHBhcnNlck9wdGlvbnMsXG4gICAgcGFyc2VyUGF0aCxcbiAgICBwYXRoLFxuICB9XG59XG5cblxuLyoqXG4gKiBzb21ldGltZXMgbGVnYWN5IHN1cHBvcnQgaXNuJ3QgX3RoYXRfIGhhcmQuLi4gcmlnaHQ/XG4gKi9cbmZ1bmN0aW9uIG1ha2VTb3VyY2VDb2RlKHRleHQsIGFzdCkge1xuICBpZiAoU291cmNlQ29kZS5sZW5ndGggPiAxKSB7XG4gICAgLy8gRVNMaW50IDNcbiAgICByZXR1cm4gbmV3IFNvdXJjZUNvZGUodGV4dCwgYXN0KVxuICB9IGVsc2Uge1xuICAgIC8vIEVTTGludCA0LCA1XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VDb2RlKHsgdGV4dCwgYXN0IH0pXG4gIH1cbn1cbiJdfQ==
\ No newline at end of file
+recursivePatternCapture = recursivePatternCapture;var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs);var _doctrine = require('doctrine');var _doctrine2 = _interopRequireDefault(_doctrine);var _debug = require('debug');var _debug2 = _interopRequireDefault(_debug);var _eslint = require('eslint');var _parse = require('eslint-module-utils/parse');var _parse2 = _interopRequireDefault(_parse);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);var _ignore = require('eslint-module-utils/ignore');var _ignore2 = _interopRequireDefault(_ignore);var _hash = require('eslint-module-utils/hash');var _unambiguous = require('eslint-module-utils/unambiguous');var unambiguous = _interopRequireWildcard(_unambiguous);var _tsconfigLoader = require('tsconfig-paths/lib/tsconfig-loader');var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];}}newObj.default = obj;return newObj;}}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}let parseConfigFileTextToJson;const log = (0, _debug2.default)('eslint-plugin-import:ExportMap');const exportCache = new Map();class ExportMap {constructor(path) {this.path = path;this.namespace = new Map(); // todo: restructure to key on path, value is resolver + map of names
+    this.reexports = new Map(); /**
+                                 * star-exports
+                                 * @type {Set} of () => ExportMap
+                                 */this.dependencies = new Set(); /**
+                                                                   * dependencies of this module that are not explicitly re-exported
+                                                                   * @type {Map} from path = () => ExportMap
+                                                                   */this.imports = new Map();this.errors = [];}get hasDefault() {return this.get('default') != null;} // stronger than this.has
+  get size() {let size = this.namespace.size + this.reexports.size;this.dependencies.forEach(dep => {const d = dep(); // CJS / ignored dependencies won't exist (#717)
+      if (d == null) return;size += d.size;});return size;} /**
+                                                             * Note that this does not check explicitly re-exported names for existence
+                                                             * in the base namespace, but it will expand all `export * from '...'` exports
+                                                             * if not found in the explicit namespace.
+                                                             * @param  {string}  name
+                                                             * @return {Boolean} true if `name` is exported by this module.
+                                                             */has(name) {if (this.namespace.has(name)) return true;if (this.reexports.has(name)) return true; // default exports must be explicitly re-exported (#328)
+    if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep(); // todo: report as unresolved?
+        if (!innerMap) continue;if (innerMap.has(name)) return true;}}return false;} /**
+                                                                                      * ensure that imported name fully resolves.
+                                                                                      * @param  {[type]}  name [description]
+                                                                                      * @return {Boolean}      [description]
+                                                                                      */hasDeep(name) {if (this.namespace.has(name)) return { found: true, path: [this] };if (this.reexports.has(name)) {const reexports = this.reexports.get(name),imported = reexports.getImport(); // if import is ignored, return explicit 'null'
+      if (imported == null) return { found: true, path: [this] // safeguard against cycles, only if name matches
+      };if (imported.path === this.path && reexports.local === name) {return { found: false, path: [this] };}const deep = imported.hasDeep(reexports.local);deep.path.unshift(this);return deep;} // default exports must be explicitly re-exported (#328)
+    if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep();if (innerMap == null) return { found: true, path: [this] // todo: report as unresolved?
+        };if (!innerMap) continue; // safeguard against cycles
+        if (innerMap.path === this.path) continue;let innerValue = innerMap.hasDeep(name);if (innerValue.found) {innerValue.path.unshift(this);return innerValue;}}}return { found: false, path: [this] };}get(name) {if (this.namespace.has(name)) return this.namespace.get(name);if (this.reexports.has(name)) {const reexports = this.reexports.get(name),imported = reexports.getImport(); // if import is ignored, return explicit 'null'
+      if (imported == null) return null; // safeguard against cycles, only if name matches
+      if (imported.path === this.path && reexports.local === name) return undefined;return imported.get(reexports.local);} // default exports must be explicitly re-exported (#328)
+    if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep(); // todo: report as unresolved?
+        if (!innerMap) continue; // safeguard against cycles
+        if (innerMap.path === this.path) continue;let innerValue = innerMap.get(name);if (innerValue !== undefined) return innerValue;}}return undefined;}forEach(callback, thisArg) {this.namespace.forEach((v, n) => callback.call(thisArg, v, n, this));this.reexports.forEach((reexports, name) => {const reexported = reexports.getImport(); // can't look up meta for ignored re-exports (#348)
+      callback.call(thisArg, reexported && reexported.get(reexports.local), name, this);});this.dependencies.forEach(dep => {const d = dep(); // CJS / ignored dependencies won't exist (#717)
+      if (d == null) return;d.forEach((v, n) => n !== 'default' && callback.call(thisArg, v, n, this));});} // todo: keys, values, entries?
+  reportErrors(context, declaration) {context.report({ node: declaration.source, message: `Parse errors in imported module '${declaration.source.value}': ` + `${this.errors.map(e => `${e.message} (${e.lineNumber}:${e.column})`).join(', ')}` });}}exports.default = ExportMap; /**
+                                                                                                                                                                                                                                                                                    * parse docs from the first node that has leading comments
+                                                                                                                                                                                                                                                                                    */function captureDoc(source, docStyleParsers) {const metadata = {}; // 'some' short-circuits on first 'true'
+  for (var _len = arguments.length, nodes = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {nodes[_key - 2] = arguments[_key];}nodes.some(n => {try {let leadingComments; // n.leadingComments is legacy `attachComments` behavior
+      if ('leadingComments' in n) {leadingComments = n.leadingComments;} else if (n.range) {leadingComments = source.getCommentsBefore(n);}if (!leadingComments || leadingComments.length === 0) return false;for (let name in docStyleParsers) {const doc = docStyleParsers[name](leadingComments);if (doc) {metadata.doc = doc;}}return true;} catch (err) {return false;}});return metadata;}const availableDocStyleParsers = { jsdoc: captureJsDoc, tomdoc: captureTomDoc /**
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               * parse JSDoc from leading comments
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               * @param  {...[type]} comments [description]
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               * @return {{doc: object}}
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               */ };function captureJsDoc(comments) {let doc; // capture XSDoc
+  comments.forEach(comment => {// skip non-block comments
+    if (comment.type !== 'Block') return;try {doc = _doctrine2.default.parse(comment.value, { unwrap: true });} catch (err) {/* don't care, for now? maybe add to `errors?` */}});return doc;} /**
+                                                                                                                                                                                                 * parse TomDoc section from comments
+                                                                                                                                                                                                 */function captureTomDoc(comments) {// collect lines up to first paragraph break
+  const lines = [];for (let i = 0; i < comments.length; i++) {const comment = comments[i];if (comment.value.match(/^\s*$/)) break;lines.push(comment.value.trim());} // return doctrine-like object
+  const statusMatch = lines.join(' ').match(/^(Public|Internal|Deprecated):\s*(.+)/);if (statusMatch) {return { description: statusMatch[2], tags: [{ title: statusMatch[1].toLowerCase(), description: statusMatch[2] }] };}}ExportMap.get = function (source, context) {const path = (0, _resolve2.default)(source, context);if (path == null) return null;return ExportMap.for(childContext(path, context));};ExportMap.for = function (context) {const path = context.path;const cacheKey = (0, _hash.hashObject)(context).digest('hex');let exportMap = exportCache.get(cacheKey); // return cached ignore
+  if (exportMap === null) return null;const stats = _fs2.default.statSync(path);if (exportMap != null) {// date equality check
+    if (exportMap.mtime - stats.mtime === 0) {return exportMap;} // future: check content equality?
+  } // check valid extensions first
+  if (!(0, _ignore.hasValidExtension)(path, context)) {exportCache.set(cacheKey, null);return null;} // check for and cache ignore
+  if ((0, _ignore2.default)(path, context)) {log('ignored path due to ignore settings:', path);exportCache.set(cacheKey, null);return null;}const content = _fs2.default.readFileSync(path, { encoding: 'utf8' }); // check for and cache unambiguous modules
+  if (!unambiguous.test(content)) {log('ignored path due to unambiguous regex:', path);exportCache.set(cacheKey, null);return null;}log('cache miss', cacheKey, 'for path', path);exportMap = ExportMap.parse(path, content, context); // ambiguous modules return null
+  if (exportMap == null) return null;exportMap.mtime = stats.mtime;exportCache.set(cacheKey, exportMap);return exportMap;};ExportMap.parse = function (path, content, context) {var m = new ExportMap(path);try {var ast = (0, _parse2.default)(path, content, context);} catch (err) {log('parse error:', path, err);m.errors.push(err);return m; // can't continue
+  }if (!unambiguous.isModule(ast)) return null;const docstyle = context.settings && context.settings['import/docstyle'] || ['jsdoc'];const docStyleParsers = {};docstyle.forEach(style => {docStyleParsers[style] = availableDocStyleParsers[style];}); // attempt to collect module doc
+  if (ast.comments) {ast.comments.some(c => {if (c.type !== 'Block') return false;try {const doc = _doctrine2.default.parse(c.value, { unwrap: true });if (doc.tags.some(t => t.title === 'module')) {m.doc = doc;return true;}} catch (err) {/* ignore */}return false;});}const namespaces = new Map();function remotePath(value) {return _resolve2.default.relative(value, path, context.settings);}function resolveImport(value) {const rp = remotePath(value);if (rp == null) return null;return ExportMap.for(childContext(rp, context));}function getNamespace(identifier) {if (!namespaces.has(identifier.name)) return;return function () {return resolveImport(namespaces.get(identifier.name));};}function addNamespace(object, identifier) {const nsfn = getNamespace(identifier);if (nsfn) {Object.defineProperty(object, 'namespace', { get: nsfn });}return object;}function captureDependency(declaration) {if (declaration.source == null) return null;if (declaration.importKind === 'type') return null; // skip Flow type imports
+    const importedSpecifiers = new Set();const supportedTypes = new Set(['ImportDefaultSpecifier', 'ImportNamespaceSpecifier']);let hasImportedType = false;if (declaration.specifiers) {declaration.specifiers.forEach(specifier => {const isType = specifier.importKind === 'type';hasImportedType = hasImportedType || isType;if (supportedTypes.has(specifier.type) && !isType) {importedSpecifiers.add(specifier.type);}if (specifier.type === 'ImportSpecifier' && !isType) {importedSpecifiers.add(specifier.imported.name);}});} // only Flow types were imported
+    if (hasImportedType && importedSpecifiers.size === 0) return null;const p = remotePath(declaration.source.value);if (p == null) return null;const existing = m.imports.get(p);if (existing != null) return existing.getter;const getter = thunkFor(p, context);m.imports.set(p, { getter, source: { // capturing actual node reference holds full AST in memory!
+        value: declaration.source.value, loc: declaration.source.loc }, importedSpecifiers });return getter;}const source = makeSourceCode(content, ast);function isEsModuleInterop() {const tsConfigInfo = (0, _tsconfigLoader.tsConfigLoader)({ cwd: context.parserOptions && context.parserOptions.tsconfigRootDir || process.cwd(), getEnv: key => process.env[key] });try {if (tsConfigInfo.tsConfigPath !== undefined) {const jsonText = _fs2.default.readFileSync(tsConfigInfo.tsConfigPath).toString();if (!parseConfigFileTextToJson) {var _require = require('typescript'); // this is because projects not using TypeScript won't have typescript installed
+          parseConfigFileTextToJson = _require.parseConfigFileTextToJson;}const tsConfig = parseConfigFileTextToJson(tsConfigInfo.tsConfigPath, jsonText).config;return tsConfig.compilerOptions.esModuleInterop;}} catch (e) {return false;}}ast.body.forEach(function (n) {if (n.type === 'ExportDefaultDeclaration') {const exportMeta = captureDoc(source, docStyleParsers, n);if (n.declaration.type === 'Identifier') {addNamespace(exportMeta, n.declaration);}m.namespace.set('default', exportMeta);return;}if (n.type === 'ExportAllDeclaration') {const getter = captureDependency(n);if (getter) m.dependencies.add(getter);return;} // capture namespaces in case of later export
+    if (n.type === 'ImportDeclaration') {captureDependency(n);let ns;if (n.specifiers.some(s => s.type === 'ImportNamespaceSpecifier' && (ns = s))) {namespaces.set(ns.local.name, n.source.value);}return;}if (n.type === 'ExportNamedDeclaration') {// capture declaration
+      if (n.declaration != null) {switch (n.declaration.type) {case 'FunctionDeclaration':case 'ClassDeclaration':case 'TypeAlias': // flowtype with babel-eslint parser
+          case 'InterfaceDeclaration':case 'DeclareFunction':case 'TSDeclareFunction':case 'TSEnumDeclaration':case 'TSTypeAliasDeclaration':case 'TSInterfaceDeclaration':case 'TSAbstractClassDeclaration':case 'TSModuleDeclaration':m.namespace.set(n.declaration.id.name, captureDoc(source, docStyleParsers, n));break;case 'VariableDeclaration':n.declaration.declarations.forEach(d => recursivePatternCapture(d.id, id => m.namespace.set(id.name, captureDoc(source, docStyleParsers, d, n))));break;}}const nsource = n.source && n.source.value;n.specifiers.forEach(s => {const exportMeta = {};let local;switch (s.type) {case 'ExportDefaultSpecifier':if (!n.source) return;local = 'default';break;case 'ExportNamespaceSpecifier':m.namespace.set(s.exported.name, Object.defineProperty(exportMeta, 'namespace', { get() {return resolveImport(nsource);} }));return;case 'ExportSpecifier':if (!n.source) {m.namespace.set(s.exported.name, addNamespace(exportMeta, s.local));return;} // else falls through
+          default:local = s.local.name;break;} // todo: JSDoc
+        m.reexports.set(s.exported.name, { local, getImport: () => resolveImport(nsource) });});}const isEsModuleInteropTrue = isEsModuleInterop();const exports = ['TSExportAssignment'];if (isEsModuleInteropTrue) {exports.push('TSNamespaceExportDeclaration');} // This doesn't declare anything, but changes what's being exported.
+    if ((0, _arrayIncludes2.default)(exports, n.type)) {const exportedName = n.type === 'TSNamespaceExportDeclaration' ? n.id.name : n.expression && n.expression.name || n.expression.id && n.expression.id.name || null;const declTypes = ['VariableDeclaration', 'ClassDeclaration', 'TSDeclareFunction', 'TSEnumDeclaration', 'TSTypeAliasDeclaration', 'TSInterfaceDeclaration', 'TSAbstractClassDeclaration', 'TSModuleDeclaration'];const exportedDecls = ast.body.filter((_ref) => {let type = _ref.type,id = _ref.id,declarations = _ref.declarations;return (0, _arrayIncludes2.default)(declTypes, type) && (id && id.name === exportedName || declarations && declarations.find(d => d.id.name === exportedName));});if (exportedDecls.length === 0) {// Export is not referencing any local declaration, must be re-exporting
+        m.namespace.set('default', captureDoc(source, docStyleParsers, n));return;}if (isEsModuleInteropTrue) {m.namespace.set('default', {});}exportedDecls.forEach(decl => {if (decl.type === 'TSModuleDeclaration') {if (decl.body && decl.body.type === 'TSModuleDeclaration') {m.namespace.set(decl.body.id.name, captureDoc(source, docStyleParsers, decl.body));} else if (decl.body && decl.body.body) {decl.body.body.forEach(moduleBlockNode => {// Export-assignment exports all members in the namespace,
+              // explicitly exported or not.
+              const namespaceDecl = moduleBlockNode.type === 'ExportNamedDeclaration' ? moduleBlockNode.declaration : moduleBlockNode;if (!namespaceDecl) {// TypeScript can check this for us; we needn't
+              } else if (namespaceDecl.type === 'VariableDeclaration') {namespaceDecl.declarations.forEach(d => recursivePatternCapture(d.id, id => m.namespace.set(id.name, captureDoc(source, docStyleParsers, decl, namespaceDecl, moduleBlockNode))));} else {m.namespace.set(namespaceDecl.id.name, captureDoc(source, docStyleParsers, moduleBlockNode));}});}} else {// Export as default
+          m.namespace.set('default', captureDoc(source, docStyleParsers, decl));}});}});return m;}; /**
+                                                                                                     * The creation of this closure is isolated from other scopes
+                                                                                                     * to avoid over-retention of unrelated variables, which has
+                                                                                                     * caused memory leaks. See #1266.
+                                                                                                     */function thunkFor(p, context) {return () => ExportMap.for(childContext(p, context));} /**
+                                                                                                                                                                                              * Traverse a pattern/identifier node, calling 'callback'
+                                                                                                                                                                                              * for each leaf identifier.
+                                                                                                                                                                                              * @param  {node}   pattern
+                                                                                                                                                                                              * @param  {Function} callback
+                                                                                                                                                                                              * @return {void}
+                                                                                                                                                                                              */function recursivePatternCapture(pattern, callback) {switch (pattern.type) {case 'Identifier': // base case
+      callback(pattern);break;case 'ObjectPattern':pattern.properties.forEach(p => {if (p.type === 'ExperimentalRestProperty' || p.type === 'RestElement') {callback(p.argument);return;}recursivePatternCapture(p.value, callback);});break;case 'ArrayPattern':pattern.elements.forEach(element => {if (element == null) return;if (element.type === 'ExperimentalRestProperty' || element.type === 'RestElement') {callback(element.argument);return;}recursivePatternCapture(element, callback);});break;case 'AssignmentPattern':callback(pattern.left);break;}} /**
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       * don't hold full context object in memory, just grab what we need.
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       */function childContext(path, context) {const settings = context.settings,parserOptions = context.parserOptions,parserPath = context.parserPath;return { settings, parserOptions, parserPath, path };} /**
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               * sometimes legacy support isn't _that_ hard... right?
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               */function makeSourceCode(text, ast) {if (_eslint.SourceCode.length > 1) {// ESLint 3
+    return new _eslint.SourceCode(text, ast);} else {// ESLint 4, 5
+    return new _eslint.SourceCode({ text, ast });}}
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBvcnRNYXAuanMiXSwibmFtZXMiOlsicmVjdXJzaXZlUGF0dGVybkNhcHR1cmUiLCJ1bmFtYmlndW91cyIsInBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb24iLCJsb2ciLCJleHBvcnRDYWNoZSIsIk1hcCIsIkV4cG9ydE1hcCIsImNvbnN0cnVjdG9yIiwicGF0aCIsIm5hbWVzcGFjZSIsInJlZXhwb3J0cyIsImRlcGVuZGVuY2llcyIsIlNldCIsImltcG9ydHMiLCJlcnJvcnMiLCJoYXNEZWZhdWx0IiwiZ2V0Iiwic2l6ZSIsImZvckVhY2giLCJkZXAiLCJkIiwiaGFzIiwibmFtZSIsImlubmVyTWFwIiwiaGFzRGVlcCIsImZvdW5kIiwiaW1wb3J0ZWQiLCJnZXRJbXBvcnQiLCJsb2NhbCIsImRlZXAiLCJ1bnNoaWZ0IiwiaW5uZXJWYWx1ZSIsInVuZGVmaW5lZCIsImNhbGxiYWNrIiwidGhpc0FyZyIsInYiLCJuIiwiY2FsbCIsInJlZXhwb3J0ZWQiLCJyZXBvcnRFcnJvcnMiLCJjb250ZXh0IiwiZGVjbGFyYXRpb24iLCJyZXBvcnQiLCJub2RlIiwic291cmNlIiwibWVzc2FnZSIsInZhbHVlIiwibWFwIiwiZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iLCJqb2luIiwiY2FwdHVyZURvYyIsImRvY1N0eWxlUGFyc2VycyIsIm1ldGFkYXRhIiwibm9kZXMiLCJzb21lIiwibGVhZGluZ0NvbW1lbnRzIiwicmFuZ2UiLCJnZXRDb21tZW50c0JlZm9yZSIsImxlbmd0aCIsImRvYyIsImVyciIsImF2YWlsYWJsZURvY1N0eWxlUGFyc2VycyIsImpzZG9jIiwiY2FwdHVyZUpzRG9jIiwidG9tZG9jIiwiY2FwdHVyZVRvbURvYyIsImNvbW1lbnRzIiwiY29tbWVudCIsInR5cGUiLCJkb2N0cmluZSIsInBhcnNlIiwidW53cmFwIiwibGluZXMiLCJpIiwibWF0Y2giLCJwdXNoIiwidHJpbSIsInN0YXR1c01hdGNoIiwiZGVzY3JpcHRpb24iLCJ0YWdzIiwidGl0bGUiLCJ0b0xvd2VyQ2FzZSIsImZvciIsImNoaWxkQ29udGV4dCIsImNhY2hlS2V5IiwiZGlnZXN0IiwiZXhwb3J0TWFwIiwic3RhdHMiLCJmcyIsInN0YXRTeW5jIiwibXRpbWUiLCJzZXQiLCJjb250ZW50IiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ0ZXN0IiwibSIsImFzdCIsImlzTW9kdWxlIiwiZG9jc3R5bGUiLCJzZXR0aW5ncyIsInN0eWxlIiwiYyIsInQiLCJuYW1lc3BhY2VzIiwicmVtb3RlUGF0aCIsInJlc29sdmUiLCJyZWxhdGl2ZSIsInJlc29sdmVJbXBvcnQiLCJycCIsImdldE5hbWVzcGFjZSIsImlkZW50aWZpZXIiLCJhZGROYW1lc3BhY2UiLCJvYmplY3QiLCJuc2ZuIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjYXB0dXJlRGVwZW5kZW5jeSIsImltcG9ydEtpbmQiLCJpbXBvcnRlZFNwZWNpZmllcnMiLCJzdXBwb3J0ZWRUeXBlcyIsImhhc0ltcG9ydGVkVHlwZSIsInNwZWNpZmllcnMiLCJzcGVjaWZpZXIiLCJpc1R5cGUiLCJhZGQiLCJwIiwiZXhpc3RpbmciLCJnZXR0ZXIiLCJ0aHVua0ZvciIsImxvYyIsIm1ha2VTb3VyY2VDb2RlIiwiaXNFc01vZHVsZUludGVyb3AiLCJ0c0NvbmZpZ0luZm8iLCJjd2QiLCJwYXJzZXJPcHRpb25zIiwidHNjb25maWdSb290RGlyIiwicHJvY2VzcyIsImdldEVudiIsImtleSIsImVudiIsInRzQ29uZmlnUGF0aCIsImpzb25UZXh0IiwidG9TdHJpbmciLCJyZXF1aXJlIiwidHNDb25maWciLCJjb25maWciLCJjb21waWxlck9wdGlvbnMiLCJlc01vZHVsZUludGVyb3AiLCJib2R5IiwiZXhwb3J0TWV0YSIsIm5zIiwicyIsImlkIiwiZGVjbGFyYXRpb25zIiwibnNvdXJjZSIsImV4cG9ydGVkIiwiaXNFc01vZHVsZUludGVyb3BUcnVlIiwiZXhwb3J0cyIsImV4cG9ydGVkTmFtZSIsImV4cHJlc3Npb24iLCJkZWNsVHlwZXMiLCJleHBvcnRlZERlY2xzIiwiZmlsdGVyIiwiZmluZCIsImRlY2wiLCJtb2R1bGVCbG9ja05vZGUiLCJuYW1lc3BhY2VEZWNsIiwicGF0dGVybiIsInByb3BlcnRpZXMiLCJhcmd1bWVudCIsImVsZW1lbnRzIiwiZWxlbWVudCIsImxlZnQiLCJwYXJzZXJQYXRoIiwidGV4dCIsIlNvdXJjZUNvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb29CZ0JBLHVCLEdBQUFBLHVCLENBcG9CaEIsd0IsdUNBRUEsb0MsbURBRUEsOEIsNkNBRUEsZ0NBRUEsa0QsNkNBQ0Esc0QsaURBQ0Esb0QsK0NBRUEsZ0RBQ0EsOEQsSUFBWUMsVyx5Q0FFWixvRUFFQSwrQywwWkFFQSxJQUFJQyx5QkFBSixDQUVBLE1BQU1DLE1BQU0scUJBQU0sZ0NBQU4sQ0FBWixDQUVBLE1BQU1DLGNBQWMsSUFBSUMsR0FBSixFQUFwQixDQUVlLE1BQU1DLFNBQU4sQ0FBZ0IsQ0FDN0JDLFlBQVlDLElBQVosRUFBa0IsQ0FDaEIsS0FBS0EsSUFBTCxHQUFZQSxJQUFaLENBQ0EsS0FBS0MsU0FBTCxHQUFpQixJQUFJSixHQUFKLEVBQWpCLENBRmdCLENBR2hCO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQixJQUFJTCxHQUFKLEVBQWpCLENBSmdCLENBS2hCOzs7bUNBSUEsS0FBS00sWUFBTCxHQUFvQixJQUFJQyxHQUFKLEVBQXBCLENBVGdCLENBVWhCOzs7cUVBSUEsS0FBS0MsT0FBTCxHQUFlLElBQUlSLEdBQUosRUFBZixDQUNBLEtBQUtTLE1BQUwsR0FBYyxFQUFkLENBQ0QsQ0FFRCxJQUFJQyxVQUFKLEdBQWlCLENBQUUsT0FBTyxLQUFLQyxHQUFMLENBQVMsU0FBVCxLQUF1QixJQUE5QixDQUFvQyxDQW5CMUIsQ0FtQjJCO0FBRXhELE1BQUlDLElBQUosR0FBVyxDQUNULElBQUlBLE9BQU8sS0FBS1IsU0FBTCxDQUFlUSxJQUFmLEdBQXNCLEtBQUtQLFNBQUwsQ0FBZU8sSUFBaEQsQ0FDQSxLQUFLTixZQUFMLENBQWtCTyxPQUFsQixDQUEwQkMsT0FBTyxDQUMvQixNQUFNQyxJQUFJRCxLQUFWLENBRCtCLENBRS9CO0FBQ0EsVUFBSUMsS0FBSyxJQUFULEVBQWUsT0FDZkgsUUFBUUcsRUFBRUgsSUFBVixDQUNELENBTEQsRUFNQSxPQUFPQSxJQUFQLENBQ0QsQ0E5QjRCLENBZ0M3Qjs7Ozs7OytEQU9BSSxJQUFJQyxJQUFKLEVBQVUsQ0FDUixJQUFJLEtBQUtiLFNBQUwsQ0FBZVksR0FBZixDQUFtQkMsSUFBbkIsQ0FBSixFQUE4QixPQUFPLElBQVAsQ0FDOUIsSUFBSSxLQUFLWixTQUFMLENBQWVXLEdBQWYsQ0FBbUJDLElBQW5CLENBQUosRUFBOEIsT0FBTyxJQUFQLENBRnRCLENBSVI7QUFDQSxRQUFJQSxTQUFTLFNBQWIsRUFBd0IsQ0FDdEIsS0FBSyxJQUFJSCxHQUFULElBQWdCLEtBQUtSLFlBQXJCLEVBQW1DLENBQ2pDLElBQUlZLFdBQVdKLEtBQWYsQ0FEaUMsQ0FHakM7QUFDQSxZQUFJLENBQUNJLFFBQUwsRUFBZSxTQUVmLElBQUlBLFNBQVNGLEdBQVQsQ0FBYUMsSUFBYixDQUFKLEVBQXdCLE9BQU8sSUFBUCxDQUN6QixDQUNGLENBRUQsT0FBTyxLQUFQLENBQ0QsQ0F4RDRCLENBMEQ3Qjs7Ozt3RkFLQUUsUUFBUUYsSUFBUixFQUFjLENBQ1osSUFBSSxLQUFLYixTQUFMLENBQWVZLEdBQWYsQ0FBbUJDLElBQW5CLENBQUosRUFBOEIsT0FBTyxFQUFFRyxPQUFPLElBQVQsRUFBZWpCLE1BQU0sQ0FBQyxJQUFELENBQXJCLEVBQVAsQ0FFOUIsSUFBSSxLQUFLRSxTQUFMLENBQWVXLEdBQWYsQ0FBbUJDLElBQW5CLENBQUosRUFBOEIsQ0FDNUIsTUFBTVosWUFBWSxLQUFLQSxTQUFMLENBQWVNLEdBQWYsQ0FBbUJNLElBQW5CLENBQWxCLENBQ01JLFdBQVdoQixVQUFVaUIsU0FBVixFQURqQixDQUQ0QixDQUk1QjtBQUNBLFVBQUlELFlBQVksSUFBaEIsRUFBc0IsT0FBTyxFQUFFRCxPQUFPLElBQVQsRUFBZWpCLE1BQU0sQ0FBQyxJQUFELENBQXJCLENBRTdCO0FBRjZCLE9BQVAsQ0FHdEIsSUFBSWtCLFNBQVNsQixJQUFULEtBQWtCLEtBQUtBLElBQXZCLElBQStCRSxVQUFVa0IsS0FBVixLQUFvQk4sSUFBdkQsRUFBNkQsQ0FDM0QsT0FBTyxFQUFFRyxPQUFPLEtBQVQsRUFBZ0JqQixNQUFNLENBQUMsSUFBRCxDQUF0QixFQUFQLENBQ0QsQ0FFRCxNQUFNcUIsT0FBT0gsU0FBU0YsT0FBVCxDQUFpQmQsVUFBVWtCLEtBQTNCLENBQWIsQ0FDQUMsS0FBS3JCLElBQUwsQ0FBVXNCLE9BQVYsQ0FBa0IsSUFBbEIsRUFFQSxPQUFPRCxJQUFQLENBQ0QsQ0FuQlcsQ0FzQlo7QUFDQSxRQUFJUCxTQUFTLFNBQWIsRUFBd0IsQ0FDdEIsS0FBSyxJQUFJSCxHQUFULElBQWdCLEtBQUtSLFlBQXJCLEVBQW1DLENBQ2pDLElBQUlZLFdBQVdKLEtBQWYsQ0FDQSxJQUFJSSxZQUFZLElBQWhCLEVBQXNCLE9BQU8sRUFBRUUsT0FBTyxJQUFULEVBQWVqQixNQUFNLENBQUMsSUFBRCxDQUFyQixDQUM3QjtBQUQ2QixTQUFQLENBRXRCLElBQUksQ0FBQ2UsUUFBTCxFQUFlLFNBSmtCLENBTWpDO0FBQ0EsWUFBSUEsU0FBU2YsSUFBVCxLQUFrQixLQUFLQSxJQUEzQixFQUFpQyxTQUVqQyxJQUFJdUIsYUFBYVIsU0FBU0MsT0FBVCxDQUFpQkYsSUFBakIsQ0FBakIsQ0FDQSxJQUFJUyxXQUFXTixLQUFmLEVBQXNCLENBQ3BCTSxXQUFXdkIsSUFBWCxDQUFnQnNCLE9BQWhCLENBQXdCLElBQXhCLEVBQ0EsT0FBT0MsVUFBUCxDQUNELENBQ0YsQ0FDRixDQUVELE9BQU8sRUFBRU4sT0FBTyxLQUFULEVBQWdCakIsTUFBTSxDQUFDLElBQUQsQ0FBdEIsRUFBUCxDQUNELENBRURRLElBQUlNLElBQUosRUFBVSxDQUNSLElBQUksS0FBS2IsU0FBTCxDQUFlWSxHQUFmLENBQW1CQyxJQUFuQixDQUFKLEVBQThCLE9BQU8sS0FBS2IsU0FBTCxDQUFlTyxHQUFmLENBQW1CTSxJQUFuQixDQUFQLENBRTlCLElBQUksS0FBS1osU0FBTCxDQUFlVyxHQUFmLENBQW1CQyxJQUFuQixDQUFKLEVBQThCLENBQzVCLE1BQU1aLFlBQVksS0FBS0EsU0FBTCxDQUFlTSxHQUFmLENBQW1CTSxJQUFuQixDQUFsQixDQUNNSSxXQUFXaEIsVUFBVWlCLFNBQVYsRUFEakIsQ0FENEIsQ0FJNUI7QUFDQSxVQUFJRCxZQUFZLElBQWhCLEVBQXNCLE9BQU8sSUFBUCxDQUxNLENBTzVCO0FBQ0EsVUFBSUEsU0FBU2xCLElBQVQsS0FBa0IsS0FBS0EsSUFBdkIsSUFBK0JFLFVBQVVrQixLQUFWLEtBQW9CTixJQUF2RCxFQUE2RCxPQUFPVSxTQUFQLENBRTdELE9BQU9OLFNBQVNWLEdBQVQsQ0FBYU4sVUFBVWtCLEtBQXZCLENBQVAsQ0FDRCxDQWRPLENBZ0JSO0FBQ0EsUUFBSU4sU0FBUyxTQUFiLEVBQXdCLENBQ3RCLEtBQUssSUFBSUgsR0FBVCxJQUFnQixLQUFLUixZQUFyQixFQUFtQyxDQUNqQyxJQUFJWSxXQUFXSixLQUFmLENBRGlDLENBRWpDO0FBQ0EsWUFBSSxDQUFDSSxRQUFMLEVBQWUsU0FIa0IsQ0FLakM7QUFDQSxZQUFJQSxTQUFTZixJQUFULEtBQWtCLEtBQUtBLElBQTNCLEVBQWlDLFNBRWpDLElBQUl1QixhQUFhUixTQUFTUCxHQUFULENBQWFNLElBQWIsQ0FBakIsQ0FDQSxJQUFJUyxlQUFlQyxTQUFuQixFQUE4QixPQUFPRCxVQUFQLENBQy9CLENBQ0YsQ0FFRCxPQUFPQyxTQUFQLENBQ0QsQ0FFRGQsUUFBUWUsUUFBUixFQUFrQkMsT0FBbEIsRUFBMkIsQ0FDekIsS0FBS3pCLFNBQUwsQ0FBZVMsT0FBZixDQUF1QixDQUFDaUIsQ0FBRCxFQUFJQyxDQUFKLEtBQ3JCSCxTQUFTSSxJQUFULENBQWNILE9BQWQsRUFBdUJDLENBQXZCLEVBQTBCQyxDQUExQixFQUE2QixJQUE3QixDQURGLEVBR0EsS0FBSzFCLFNBQUwsQ0FBZVEsT0FBZixDQUF1QixDQUFDUixTQUFELEVBQVlZLElBQVosS0FBcUIsQ0FDMUMsTUFBTWdCLGFBQWE1QixVQUFVaUIsU0FBVixFQUFuQixDQUQwQyxDQUUxQztBQUNBTSxlQUFTSSxJQUFULENBQWNILE9BQWQsRUFBdUJJLGNBQWNBLFdBQVd0QixHQUFYLENBQWVOLFVBQVVrQixLQUF6QixDQUFyQyxFQUFzRU4sSUFBdEUsRUFBNEUsSUFBNUUsRUFDRCxDQUpELEVBTUEsS0FBS1gsWUFBTCxDQUFrQk8sT0FBbEIsQ0FBMEJDLE9BQU8sQ0FDL0IsTUFBTUMsSUFBSUQsS0FBVixDQUQrQixDQUUvQjtBQUNBLFVBQUlDLEtBQUssSUFBVCxFQUFlLE9BRWZBLEVBQUVGLE9BQUYsQ0FBVSxDQUFDaUIsQ0FBRCxFQUFJQyxDQUFKLEtBQ1JBLE1BQU0sU0FBTixJQUFtQkgsU0FBU0ksSUFBVCxDQUFjSCxPQUFkLEVBQXVCQyxDQUF2QixFQUEwQkMsQ0FBMUIsRUFBNkIsSUFBN0IsQ0FEckIsRUFFRCxDQVBELEVBUUQsQ0EvSjRCLENBaUs3QjtBQUVBRyxlQUFhQyxPQUFiLEVBQXNCQyxXQUF0QixFQUFtQyxDQUNqQ0QsUUFBUUUsTUFBUixDQUFlLEVBQ2JDLE1BQU1GLFlBQVlHLE1BREwsRUFFYkMsU0FBVSxvQ0FBbUNKLFlBQVlHLE1BQVosQ0FBbUJFLEtBQU0sS0FBN0QsR0FDSSxHQUFFLEtBQUtoQyxNQUFMLENBQ0lpQyxHQURKLENBQ1FDLEtBQU0sR0FBRUEsRUFBRUgsT0FBUSxLQUFJRyxFQUFFQyxVQUFXLElBQUdELEVBQUVFLE1BQU8sR0FEdkQsRUFFSUMsSUFGSixDQUVTLElBRlQsQ0FFZSxFQUxqQixFQUFmLEVBT0QsQ0EzSzRCLEMsa0JBQVY3QyxTLEVBOEtyQjs7c1JBR0EsU0FBUzhDLFVBQVQsQ0FBb0JSLE1BQXBCLEVBQTRCUyxlQUE1QixFQUF1RCxDQUNyRCxNQUFNQyxXQUFXLEVBQWpCLENBRHFELENBR3JEO0FBSHFELG9DQUFQQyxLQUFPLG1FQUFQQSxLQUFPLDhCQUlyREEsTUFBTUMsSUFBTixDQUFXcEIsS0FBSyxDQUNkLElBQUksQ0FFRixJQUFJcUIsZUFBSixDQUZFLENBSUY7QUFDQSxVQUFJLHFCQUFxQnJCLENBQXpCLEVBQTRCLENBQzFCcUIsa0JBQWtCckIsRUFBRXFCLGVBQXBCLENBQ0QsQ0FGRCxNQUVPLElBQUlyQixFQUFFc0IsS0FBTixFQUFhLENBQ2xCRCxrQkFBa0JiLE9BQU9lLGlCQUFQLENBQXlCdkIsQ0FBekIsQ0FBbEIsQ0FDRCxDQUVELElBQUksQ0FBQ3FCLGVBQUQsSUFBb0JBLGdCQUFnQkcsTUFBaEIsS0FBMkIsQ0FBbkQsRUFBc0QsT0FBTyxLQUFQLENBRXRELEtBQUssSUFBSXRDLElBQVQsSUFBaUIrQixlQUFqQixFQUFrQyxDQUNoQyxNQUFNUSxNQUFNUixnQkFBZ0IvQixJQUFoQixFQUFzQm1DLGVBQXRCLENBQVosQ0FDQSxJQUFJSSxHQUFKLEVBQVMsQ0FDUFAsU0FBU08sR0FBVCxHQUFlQSxHQUFmLENBQ0QsQ0FDRixDQUVELE9BQU8sSUFBUCxDQUNELENBckJELENBcUJFLE9BQU9DLEdBQVAsRUFBWSxDQUNaLE9BQU8sS0FBUCxDQUNELENBQ0YsQ0F6QkQsRUEyQkEsT0FBT1IsUUFBUCxDQUNELENBRUQsTUFBTVMsMkJBQTJCLEVBQy9CQyxPQUFPQyxZQUR3QixFQUUvQkMsUUFBUUMsYUFGdUIsQ0FLakM7Ozs7aWRBTGlDLEVBQWpDLENBVUEsU0FBU0YsWUFBVCxDQUFzQkcsUUFBdEIsRUFBZ0MsQ0FDOUIsSUFBSVAsR0FBSixDQUQ4QixDQUc5QjtBQUNBTyxXQUFTbEQsT0FBVCxDQUFpQm1ELFdBQVcsQ0FDMUI7QUFDQSxRQUFJQSxRQUFRQyxJQUFSLEtBQWlCLE9BQXJCLEVBQThCLE9BQzlCLElBQUksQ0FDRlQsTUFBTVUsbUJBQVNDLEtBQVQsQ0FBZUgsUUFBUXZCLEtBQXZCLEVBQThCLEVBQUUyQixRQUFRLElBQVYsRUFBOUIsQ0FBTixDQUNELENBRkQsQ0FFRSxPQUFPWCxHQUFQLEVBQVksQ0FDWixpREFDRCxDQUNGLENBUkQsRUFVQSxPQUFPRCxHQUFQLENBQ0QsQyxDQUVEOzttTUFHQSxTQUFTTSxhQUFULENBQXVCQyxRQUF2QixFQUFpQyxDQUMvQjtBQUNBLFFBQU1NLFFBQVEsRUFBZCxDQUNBLEtBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJUCxTQUFTUixNQUE3QixFQUFxQ2UsR0FBckMsRUFBMEMsQ0FDeEMsTUFBTU4sVUFBVUQsU0FBU08sQ0FBVCxDQUFoQixDQUNBLElBQUlOLFFBQVF2QixLQUFSLENBQWM4QixLQUFkLENBQW9CLE9BQXBCLENBQUosRUFBa0MsTUFDbENGLE1BQU1HLElBQU4sQ0FBV1IsUUFBUXZCLEtBQVIsQ0FBY2dDLElBQWQsRUFBWCxFQUNELENBUDhCLENBUy9CO0FBQ0EsUUFBTUMsY0FBY0wsTUFBTXZCLElBQU4sQ0FBVyxHQUFYLEVBQWdCeUIsS0FBaEIsQ0FBc0IsdUNBQXRCLENBQXBCLENBQ0EsSUFBSUcsV0FBSixFQUFpQixDQUNmLE9BQU8sRUFDTEMsYUFBYUQsWUFBWSxDQUFaLENBRFIsRUFFTEUsTUFBTSxDQUFDLEVBQ0xDLE9BQU9ILFlBQVksQ0FBWixFQUFlSSxXQUFmLEVBREYsRUFFTEgsYUFBYUQsWUFBWSxDQUFaLENBRlIsRUFBRCxDQUZELEVBQVAsQ0FPRCxDQUNGLENBRUR6RSxVQUFVVSxHQUFWLEdBQWdCLFVBQVU0QixNQUFWLEVBQWtCSixPQUFsQixFQUEyQixDQUN6QyxNQUFNaEMsT0FBTyx1QkFBUW9DLE1BQVIsRUFBZ0JKLE9BQWhCLENBQWIsQ0FDQSxJQUFJaEMsUUFBUSxJQUFaLEVBQWtCLE9BQU8sSUFBUCxDQUVsQixPQUFPRixVQUFVOEUsR0FBVixDQUFjQyxhQUFhN0UsSUFBYixFQUFtQmdDLE9BQW5CLENBQWQsQ0FBUCxDQUNELENBTEQsQ0FPQWxDLFVBQVU4RSxHQUFWLEdBQWdCLFVBQVU1QyxPQUFWLEVBQW1CLE9BQ3pCaEMsSUFEeUIsR0FDaEJnQyxPQURnQixDQUN6QmhDLElBRHlCLENBR2pDLE1BQU04RSxXQUFXLHNCQUFXOUMsT0FBWCxFQUFvQitDLE1BQXBCLENBQTJCLEtBQTNCLENBQWpCLENBQ0EsSUFBSUMsWUFBWXBGLFlBQVlZLEdBQVosQ0FBZ0JzRSxRQUFoQixDQUFoQixDQUppQyxDQU1qQztBQUNBLE1BQUlFLGNBQWMsSUFBbEIsRUFBd0IsT0FBTyxJQUFQLENBRXhCLE1BQU1DLFFBQVFDLGFBQUdDLFFBQUgsQ0FBWW5GLElBQVosQ0FBZCxDQUNBLElBQUlnRixhQUFhLElBQWpCLEVBQXVCLENBQ3JCO0FBQ0EsUUFBSUEsVUFBVUksS0FBVixHQUFrQkgsTUFBTUcsS0FBeEIsS0FBa0MsQ0FBdEMsRUFBeUMsQ0FDdkMsT0FBT0osU0FBUCxDQUNELENBSm9CLENBS3JCO0FBQ0QsR0FoQmdDLENBa0JqQztBQUNBLE1BQUksQ0FBQywrQkFBa0JoRixJQUFsQixFQUF3QmdDLE9BQXhCLENBQUwsRUFBdUMsQ0FDckNwQyxZQUFZeUYsR0FBWixDQUFnQlAsUUFBaEIsRUFBMEIsSUFBMUIsRUFDQSxPQUFPLElBQVAsQ0FDRCxDQXRCZ0MsQ0F3QmpDO0FBQ0EsTUFBSSxzQkFBVTlFLElBQVYsRUFBZ0JnQyxPQUFoQixDQUFKLEVBQThCLENBQzVCckMsSUFBSSxzQ0FBSixFQUE0Q0ssSUFBNUMsRUFDQUosWUFBWXlGLEdBQVosQ0FBZ0JQLFFBQWhCLEVBQTBCLElBQTFCLEVBQ0EsT0FBTyxJQUFQLENBQ0QsQ0FFRCxNQUFNUSxVQUFVSixhQUFHSyxZQUFILENBQWdCdkYsSUFBaEIsRUFBc0IsRUFBRXdGLFVBQVUsTUFBWixFQUF0QixDQUFoQixDQS9CaUMsQ0FpQ2pDO0FBQ0EsTUFBSSxDQUFDL0YsWUFBWWdHLElBQVosQ0FBaUJILE9BQWpCLENBQUwsRUFBZ0MsQ0FDOUIzRixJQUFJLHdDQUFKLEVBQThDSyxJQUE5QyxFQUNBSixZQUFZeUYsR0FBWixDQUFnQlAsUUFBaEIsRUFBMEIsSUFBMUIsRUFDQSxPQUFPLElBQVAsQ0FDRCxDQUVEbkYsSUFBSSxZQUFKLEVBQWtCbUYsUUFBbEIsRUFBNEIsVUFBNUIsRUFBd0M5RSxJQUF4QyxFQUNBZ0YsWUFBWWxGLFVBQVVrRSxLQUFWLENBQWdCaEUsSUFBaEIsRUFBc0JzRixPQUF0QixFQUErQnRELE9BQS9CLENBQVosQ0F6Q2lDLENBMkNqQztBQUNBLE1BQUlnRCxhQUFhLElBQWpCLEVBQXVCLE9BQU8sSUFBUCxDQUV2QkEsVUFBVUksS0FBVixHQUFrQkgsTUFBTUcsS0FBeEIsQ0FFQXhGLFlBQVl5RixHQUFaLENBQWdCUCxRQUFoQixFQUEwQkUsU0FBMUIsRUFDQSxPQUFPQSxTQUFQLENBQ0QsQ0FsREQsQ0FxREFsRixVQUFVa0UsS0FBVixHQUFrQixVQUFVaEUsSUFBVixFQUFnQnNGLE9BQWhCLEVBQXlCdEQsT0FBekIsRUFBa0MsQ0FDbEQsSUFBSTBELElBQUksSUFBSTVGLFNBQUosQ0FBY0UsSUFBZCxDQUFSLENBRUEsSUFBSSxDQUNGLElBQUkyRixNQUFNLHFCQUFNM0YsSUFBTixFQUFZc0YsT0FBWixFQUFxQnRELE9BQXJCLENBQVYsQ0FDRCxDQUZELENBRUUsT0FBT3NCLEdBQVAsRUFBWSxDQUNaM0QsSUFBSSxjQUFKLEVBQW9CSyxJQUFwQixFQUEwQnNELEdBQTFCLEVBQ0FvQyxFQUFFcEYsTUFBRixDQUFTK0QsSUFBVCxDQUFjZixHQUFkLEVBQ0EsT0FBT29DLENBQVAsQ0FIWSxDQUdIO0FBQ1YsR0FFRCxJQUFJLENBQUNqRyxZQUFZbUcsUUFBWixDQUFxQkQsR0FBckIsQ0FBTCxFQUFnQyxPQUFPLElBQVAsQ0FFaEMsTUFBTUUsV0FBWTdELFFBQVE4RCxRQUFSLElBQW9COUQsUUFBUThELFFBQVIsQ0FBaUIsaUJBQWpCLENBQXJCLElBQTZELENBQUMsT0FBRCxDQUE5RSxDQUNBLE1BQU1qRCxrQkFBa0IsRUFBeEIsQ0FDQWdELFNBQVNuRixPQUFULENBQWlCcUYsU0FBUyxDQUN4QmxELGdCQUFnQmtELEtBQWhCLElBQXlCeEMseUJBQXlCd0MsS0FBekIsQ0FBekIsQ0FDRCxDQUZELEVBZmtELENBbUJsRDtBQUNBLE1BQUlKLElBQUkvQixRQUFSLEVBQWtCLENBQ2hCK0IsSUFBSS9CLFFBQUosQ0FBYVosSUFBYixDQUFrQmdELEtBQUssQ0FDckIsSUFBSUEsRUFBRWxDLElBQUYsS0FBVyxPQUFmLEVBQXdCLE9BQU8sS0FBUCxDQUN4QixJQUFJLENBQ0YsTUFBTVQsTUFBTVUsbUJBQVNDLEtBQVQsQ0FBZWdDLEVBQUUxRCxLQUFqQixFQUF3QixFQUFFMkIsUUFBUSxJQUFWLEVBQXhCLENBQVosQ0FDQSxJQUFJWixJQUFJb0IsSUFBSixDQUFTekIsSUFBVCxDQUFjaUQsS0FBS0EsRUFBRXZCLEtBQUYsS0FBWSxRQUEvQixDQUFKLEVBQThDLENBQzVDZ0IsRUFBRXJDLEdBQUYsR0FBUUEsR0FBUixDQUNBLE9BQU8sSUFBUCxDQUNELENBQ0YsQ0FORCxDQU1FLE9BQU9DLEdBQVAsRUFBWSxDQUFFLFlBQWMsQ0FDOUIsT0FBTyxLQUFQLENBQ0QsQ0FWRCxFQVdELENBRUQsTUFBTTRDLGFBQWEsSUFBSXJHLEdBQUosRUFBbkIsQ0FFQSxTQUFTc0csVUFBVCxDQUFvQjdELEtBQXBCLEVBQTJCLENBQ3pCLE9BQU84RCxrQkFBUUMsUUFBUixDQUFpQi9ELEtBQWpCLEVBQXdCdEMsSUFBeEIsRUFBOEJnQyxRQUFROEQsUUFBdEMsQ0FBUCxDQUNELENBRUQsU0FBU1EsYUFBVCxDQUF1QmhFLEtBQXZCLEVBQThCLENBQzVCLE1BQU1pRSxLQUFLSixXQUFXN0QsS0FBWCxDQUFYLENBQ0EsSUFBSWlFLE1BQU0sSUFBVixFQUFnQixPQUFPLElBQVAsQ0FDaEIsT0FBT3pHLFVBQVU4RSxHQUFWLENBQWNDLGFBQWEwQixFQUFiLEVBQWlCdkUsT0FBakIsQ0FBZCxDQUFQLENBQ0QsQ0FFRCxTQUFTd0UsWUFBVCxDQUFzQkMsVUFBdEIsRUFBa0MsQ0FDaEMsSUFBSSxDQUFDUCxXQUFXckYsR0FBWCxDQUFlNEYsV0FBVzNGLElBQTFCLENBQUwsRUFBc0MsT0FFdEMsT0FBTyxZQUFZLENBQ2pCLE9BQU93RixjQUFjSixXQUFXMUYsR0FBWCxDQUFlaUcsV0FBVzNGLElBQTFCLENBQWQsQ0FBUCxDQUNELENBRkQsQ0FHRCxDQUVELFNBQVM0RixZQUFULENBQXNCQyxNQUF0QixFQUE4QkYsVUFBOUIsRUFBMEMsQ0FDeEMsTUFBTUcsT0FBT0osYUFBYUMsVUFBYixDQUFiLENBQ0EsSUFBSUcsSUFBSixFQUFVLENBQ1JDLE9BQU9DLGNBQVAsQ0FBc0JILE1BQXRCLEVBQThCLFdBQTlCLEVBQTJDLEVBQUVuRyxLQUFLb0csSUFBUCxFQUEzQyxFQUNELENBRUQsT0FBT0QsTUFBUCxDQUNELENBRUQsU0FBU0ksaUJBQVQsQ0FBMkI5RSxXQUEzQixFQUF3QyxDQUN0QyxJQUFJQSxZQUFZRyxNQUFaLElBQXNCLElBQTFCLEVBQWdDLE9BQU8sSUFBUCxDQUNoQyxJQUFJSCxZQUFZK0UsVUFBWixLQUEyQixNQUEvQixFQUF1QyxPQUFPLElBQVAsQ0FGRCxDQUVhO0FBQ25ELFVBQU1DLHFCQUFxQixJQUFJN0csR0FBSixFQUEzQixDQUNBLE1BQU04RyxpQkFBaUIsSUFBSTlHLEdBQUosQ0FBUSxDQUFDLHdCQUFELEVBQTJCLDBCQUEzQixDQUFSLENBQXZCLENBQ0EsSUFBSStHLGtCQUFrQixLQUF0QixDQUNBLElBQUlsRixZQUFZbUYsVUFBaEIsRUFBNEIsQ0FDMUJuRixZQUFZbUYsVUFBWixDQUF1QjFHLE9BQXZCLENBQStCMkcsYUFBYSxDQUMxQyxNQUFNQyxTQUFTRCxVQUFVTCxVQUFWLEtBQXlCLE1BQXhDLENBQ0FHLGtCQUFrQkEsbUJBQW1CRyxNQUFyQyxDQUVBLElBQUlKLGVBQWVyRyxHQUFmLENBQW1Cd0csVUFBVXZELElBQTdCLEtBQXNDLENBQUN3RCxNQUEzQyxFQUFtRCxDQUNqREwsbUJBQW1CTSxHQUFuQixDQUF1QkYsVUFBVXZELElBQWpDLEVBQ0QsQ0FDRCxJQUFJdUQsVUFBVXZELElBQVYsS0FBbUIsaUJBQW5CLElBQXdDLENBQUN3RCxNQUE3QyxFQUFxRCxDQUNuREwsbUJBQW1CTSxHQUFuQixDQUF1QkYsVUFBVW5HLFFBQVYsQ0FBbUJKLElBQTFDLEVBQ0QsQ0FDRixDQVZELEVBV0QsQ0FsQnFDLENBb0J0QztBQUNBLFFBQUlxRyxtQkFBbUJGLG1CQUFtQnhHLElBQW5CLEtBQTRCLENBQW5ELEVBQXNELE9BQU8sSUFBUCxDQUV0RCxNQUFNK0csSUFBSXJCLFdBQVdsRSxZQUFZRyxNQUFaLENBQW1CRSxLQUE5QixDQUFWLENBQ0EsSUFBSWtGLEtBQUssSUFBVCxFQUFlLE9BQU8sSUFBUCxDQUNmLE1BQU1DLFdBQVcvQixFQUFFckYsT0FBRixDQUFVRyxHQUFWLENBQWNnSCxDQUFkLENBQWpCLENBQ0EsSUFBSUMsWUFBWSxJQUFoQixFQUFzQixPQUFPQSxTQUFTQyxNQUFoQixDQUV0QixNQUFNQSxTQUFTQyxTQUFTSCxDQUFULEVBQVl4RixPQUFaLENBQWYsQ0FDQTBELEVBQUVyRixPQUFGLENBQVVnRixHQUFWLENBQWNtQyxDQUFkLEVBQWlCLEVBQ2ZFLE1BRGUsRUFFZnRGLFFBQVEsRUFBRztBQUNURSxlQUFPTCxZQUFZRyxNQUFaLENBQW1CRSxLQURwQixFQUVOc0YsS0FBSzNGLFlBQVlHLE1BQVosQ0FBbUJ3RixHQUZsQixFQUZPLEVBTWZYLGtCQU5lLEVBQWpCLEVBUUEsT0FBT1MsTUFBUCxDQUNELENBRUQsTUFBTXRGLFNBQVN5RixlQUFldkMsT0FBZixFQUF3QkssR0FBeEIsQ0FBZixDQUVBLFNBQVNtQyxpQkFBVCxHQUE2QixDQUMzQixNQUFNQyxlQUFlLG9DQUFlLEVBQ2xDQyxLQUFLaEcsUUFBUWlHLGFBQVIsSUFBeUJqRyxRQUFRaUcsYUFBUixDQUFzQkMsZUFBL0MsSUFBa0VDLFFBQVFILEdBQVIsRUFEckMsRUFFbENJLFFBQVNDLEdBQUQsSUFBU0YsUUFBUUcsR0FBUixDQUFZRCxHQUFaLENBRmlCLEVBQWYsQ0FBckIsQ0FJQSxJQUFJLENBQ0YsSUFBSU4sYUFBYVEsWUFBYixLQUE4Qi9HLFNBQWxDLEVBQTZDLENBQzNDLE1BQU1nSCxXQUFXdEQsYUFBR0ssWUFBSCxDQUFnQndDLGFBQWFRLFlBQTdCLEVBQTJDRSxRQUEzQyxFQUFqQixDQUNBLElBQUksQ0FBQy9JLHlCQUFMLEVBQWdDLGdCQUVDZ0osUUFBUSxZQUFSLENBRkQsRUFDOUI7QUFDRWhKLG1DQUY0QixZQUU1QkEseUJBRjRCLENBRy9CLENBQ0QsTUFBTWlKLFdBQVdqSiwwQkFBMEJxSSxhQUFhUSxZQUF2QyxFQUFxREMsUUFBckQsRUFBK0RJLE1BQWhGLENBQ0EsT0FBT0QsU0FBU0UsZUFBVCxDQUF5QkMsZUFBaEMsQ0FDRCxDQUNGLENBVkQsQ0FVRSxPQUFPdEcsQ0FBUCxFQUFVLENBQ1YsT0FBTyxLQUFQLENBQ0QsQ0FDRixDQUVEbUQsSUFBSW9ELElBQUosQ0FBU3JJLE9BQVQsQ0FBaUIsVUFBVWtCLENBQVYsRUFBYSxDQUM1QixJQUFJQSxFQUFFa0MsSUFBRixLQUFXLDBCQUFmLEVBQTJDLENBQ3pDLE1BQU1rRixhQUFhcEcsV0FBV1IsTUFBWCxFQUFtQlMsZUFBbkIsRUFBb0NqQixDQUFwQyxDQUFuQixDQUNBLElBQUlBLEVBQUVLLFdBQUYsQ0FBYzZCLElBQWQsS0FBdUIsWUFBM0IsRUFBeUMsQ0FDdkM0QyxhQUFhc0MsVUFBYixFQUF5QnBILEVBQUVLLFdBQTNCLEVBQ0QsQ0FDRHlELEVBQUV6RixTQUFGLENBQVlvRixHQUFaLENBQWdCLFNBQWhCLEVBQTJCMkQsVUFBM0IsRUFDQSxPQUNELENBRUQsSUFBSXBILEVBQUVrQyxJQUFGLEtBQVcsc0JBQWYsRUFBdUMsQ0FDckMsTUFBTTRELFNBQVNYLGtCQUFrQm5GLENBQWxCLENBQWYsQ0FDQSxJQUFJOEYsTUFBSixFQUFZaEMsRUFBRXZGLFlBQUYsQ0FBZW9ILEdBQWYsQ0FBbUJHLE1BQW5CLEVBQ1osT0FDRCxDQWQyQixDQWdCNUI7QUFDQSxRQUFJOUYsRUFBRWtDLElBQUYsS0FBVyxtQkFBZixFQUFvQyxDQUNsQ2lELGtCQUFrQm5GLENBQWxCLEVBQ0EsSUFBSXFILEVBQUosQ0FDQSxJQUFJckgsRUFBRXdGLFVBQUYsQ0FBYXBFLElBQWIsQ0FBa0JrRyxLQUFLQSxFQUFFcEYsSUFBRixLQUFXLDBCQUFYLEtBQTBDbUYsS0FBS0MsQ0FBL0MsQ0FBdkIsQ0FBSixFQUErRSxDQUM3RWhELFdBQVdiLEdBQVgsQ0FBZTRELEdBQUc3SCxLQUFILENBQVNOLElBQXhCLEVBQThCYyxFQUFFUSxNQUFGLENBQVNFLEtBQXZDLEVBQ0QsQ0FDRCxPQUNELENBRUQsSUFBSVYsRUFBRWtDLElBQUYsS0FBVyx3QkFBZixFQUF5QyxDQUN2QztBQUNBLFVBQUlsQyxFQUFFSyxXQUFGLElBQWlCLElBQXJCLEVBQTJCLENBQ3pCLFFBQVFMLEVBQUVLLFdBQUYsQ0FBYzZCLElBQXRCLEdBQ0UsS0FBSyxxQkFBTCxDQUNBLEtBQUssa0JBQUwsQ0FDQSxLQUFLLFdBQUwsQ0FIRixDQUdvQjtBQUNsQixlQUFLLHNCQUFMLENBQ0EsS0FBSyxpQkFBTCxDQUNBLEtBQUssbUJBQUwsQ0FDQSxLQUFLLG1CQUFMLENBQ0EsS0FBSyx3QkFBTCxDQUNBLEtBQUssd0JBQUwsQ0FDQSxLQUFLLDRCQUFMLENBQ0EsS0FBSyxxQkFBTCxDQUNFNEIsRUFBRXpGLFNBQUYsQ0FBWW9GLEdBQVosQ0FBZ0J6RCxFQUFFSyxXQUFGLENBQWNrSCxFQUFkLENBQWlCckksSUFBakMsRUFBdUM4QixXQUFXUixNQUFYLEVBQW1CUyxlQUFuQixFQUFvQ2pCLENBQXBDLENBQXZDLEVBQ0EsTUFDRixLQUFLLHFCQUFMLENBQ0VBLEVBQUVLLFdBQUYsQ0FBY21ILFlBQWQsQ0FBMkIxSSxPQUEzQixDQUFvQ0UsQ0FBRCxJQUNqQ3BCLHdCQUF3Qm9CLEVBQUV1SSxFQUExQixFQUNFQSxNQUFNekQsRUFBRXpGLFNBQUYsQ0FBWW9GLEdBQVosQ0FBZ0I4RCxHQUFHckksSUFBbkIsRUFBeUI4QixXQUFXUixNQUFYLEVBQW1CUyxlQUFuQixFQUFvQ2pDLENBQXBDLEVBQXVDZ0IsQ0FBdkMsQ0FBekIsQ0FEUixDQURGLEVBR0EsTUFsQkosQ0FvQkQsQ0FFRCxNQUFNeUgsVUFBVXpILEVBQUVRLE1BQUYsSUFBWVIsRUFBRVEsTUFBRixDQUFTRSxLQUFyQyxDQUNBVixFQUFFd0YsVUFBRixDQUFhMUcsT0FBYixDQUFzQndJLENBQUQsSUFBTyxDQUMxQixNQUFNRixhQUFhLEVBQW5CLENBQ0EsSUFBSTVILEtBQUosQ0FFQSxRQUFROEgsRUFBRXBGLElBQVYsR0FDRSxLQUFLLHdCQUFMLENBQ0UsSUFBSSxDQUFDbEMsRUFBRVEsTUFBUCxFQUFlLE9BQ2ZoQixRQUFRLFNBQVIsQ0FDQSxNQUNGLEtBQUssMEJBQUwsQ0FDRXNFLEVBQUV6RixTQUFGLENBQVlvRixHQUFaLENBQWdCNkQsRUFBRUksUUFBRixDQUFXeEksSUFBM0IsRUFBaUMrRixPQUFPQyxjQUFQLENBQXNCa0MsVUFBdEIsRUFBa0MsV0FBbEMsRUFBK0MsRUFDOUV4SSxNQUFNLENBQUUsT0FBTzhGLGNBQWMrQyxPQUFkLENBQVAsQ0FBK0IsQ0FEdUMsRUFBL0MsQ0FBakMsRUFHQSxPQUNGLEtBQUssaUJBQUwsQ0FDRSxJQUFJLENBQUN6SCxFQUFFUSxNQUFQLEVBQWUsQ0FDYnNELEVBQUV6RixTQUFGLENBQVlvRixHQUFaLENBQWdCNkQsRUFBRUksUUFBRixDQUFXeEksSUFBM0IsRUFBaUM0RixhQUFhc0MsVUFBYixFQUF5QkUsRUFBRTlILEtBQTNCLENBQWpDLEVBQ0EsT0FDRCxDQWRMLENBZUk7QUFDRixrQkFDRUEsUUFBUThILEVBQUU5SCxLQUFGLENBQVFOLElBQWhCLENBQ0EsTUFsQkosQ0FKMEIsQ0F5QjFCO0FBQ0E0RSxVQUFFeEYsU0FBRixDQUFZbUYsR0FBWixDQUFnQjZELEVBQUVJLFFBQUYsQ0FBV3hJLElBQTNCLEVBQWlDLEVBQUVNLEtBQUYsRUFBU0QsV0FBVyxNQUFNbUYsY0FBYytDLE9BQWQsQ0FBMUIsRUFBakMsRUFDRCxDQTNCRCxFQTRCRCxDQUVELE1BQU1FLHdCQUF3QnpCLG1CQUE5QixDQUVBLE1BQU0wQixVQUFVLENBQUMsb0JBQUQsQ0FBaEIsQ0FDQSxJQUFJRCxxQkFBSixFQUEyQixDQUN6QkMsUUFBUW5GLElBQVIsQ0FBYSw4QkFBYixFQUNELENBdkYyQixDQXlGNUI7QUFDQSxRQUFJLDZCQUFTbUYsT0FBVCxFQUFrQjVILEVBQUVrQyxJQUFwQixDQUFKLEVBQStCLENBQzdCLE1BQU0yRixlQUFlN0gsRUFBRWtDLElBQUYsS0FBVyw4QkFBWCxHQUNqQmxDLEVBQUV1SCxFQUFGLENBQUtySSxJQURZLEdBRWhCYyxFQUFFOEgsVUFBRixJQUFnQjlILEVBQUU4SCxVQUFGLENBQWE1SSxJQUE3QixJQUFzQ2MsRUFBRThILFVBQUYsQ0FBYVAsRUFBYixJQUFtQnZILEVBQUU4SCxVQUFGLENBQWFQLEVBQWIsQ0FBZ0JySSxJQUF6RSxJQUFrRixJQUZ2RixDQUdBLE1BQU02SSxZQUFZLENBQ2hCLHFCQURnQixFQUVoQixrQkFGZ0IsRUFHaEIsbUJBSGdCLEVBSWhCLG1CQUpnQixFQUtoQix3QkFMZ0IsRUFNaEIsd0JBTmdCLEVBT2hCLDRCQVBnQixFQVFoQixxQkFSZ0IsQ0FBbEIsQ0FVQSxNQUFNQyxnQkFBZ0JqRSxJQUFJb0QsSUFBSixDQUFTYyxNQUFULENBQWdCLGVBQUcvRixJQUFILFFBQUdBLElBQUgsQ0FBU3FGLEVBQVQsUUFBU0EsRUFBVCxDQUFhQyxZQUFiLFFBQWFBLFlBQWIsUUFBZ0MsNkJBQVNPLFNBQVQsRUFBb0I3RixJQUFwQixNQUNuRXFGLE1BQU1BLEdBQUdySSxJQUFILEtBQVkySSxZQUFuQixJQUFxQ0wsZ0JBQWdCQSxhQUFhVSxJQUFiLENBQW1CbEosQ0FBRCxJQUFPQSxFQUFFdUksRUFBRixDQUFLckksSUFBTCxLQUFjMkksWUFBdkMsQ0FEZSxDQUFoQyxFQUFoQixDQUF0QixDQUdBLElBQUlHLGNBQWN4RyxNQUFkLEtBQXlCLENBQTdCLEVBQWdDLENBQzlCO0FBQ0FzQyxVQUFFekYsU0FBRixDQUFZb0YsR0FBWixDQUFnQixTQUFoQixFQUEyQnpDLFdBQVdSLE1BQVgsRUFBbUJTLGVBQW5CLEVBQW9DakIsQ0FBcEMsQ0FBM0IsRUFDQSxPQUNELENBQ0QsSUFBSTJILHFCQUFKLEVBQTJCLENBQ3pCN0QsRUFBRXpGLFNBQUYsQ0FBWW9GLEdBQVosQ0FBZ0IsU0FBaEIsRUFBMkIsRUFBM0IsRUFDRCxDQUNEdUUsY0FBY2xKLE9BQWQsQ0FBdUJxSixJQUFELElBQVUsQ0FDOUIsSUFBSUEsS0FBS2pHLElBQUwsS0FBYyxxQkFBbEIsRUFBeUMsQ0FDdkMsSUFBSWlHLEtBQUtoQixJQUFMLElBQWFnQixLQUFLaEIsSUFBTCxDQUFVakYsSUFBVixLQUFtQixxQkFBcEMsRUFBMkQsQ0FDekQ0QixFQUFFekYsU0FBRixDQUFZb0YsR0FBWixDQUFnQjBFLEtBQUtoQixJQUFMLENBQVVJLEVBQVYsQ0FBYXJJLElBQTdCLEVBQW1DOEIsV0FBV1IsTUFBWCxFQUFtQlMsZUFBbkIsRUFBb0NrSCxLQUFLaEIsSUFBekMsQ0FBbkMsRUFDRCxDQUZELE1BRU8sSUFBSWdCLEtBQUtoQixJQUFMLElBQWFnQixLQUFLaEIsSUFBTCxDQUFVQSxJQUEzQixFQUFpQyxDQUN0Q2dCLEtBQUtoQixJQUFMLENBQVVBLElBQVYsQ0FBZXJJLE9BQWYsQ0FBd0JzSixlQUFELElBQXFCLENBQzFDO0FBQ0E7QUFDQSxvQkFBTUMsZ0JBQWdCRCxnQkFBZ0JsRyxJQUFoQixLQUF5Qix3QkFBekIsR0FDcEJrRyxnQkFBZ0IvSCxXQURJLEdBRXBCK0gsZUFGRixDQUlBLElBQUksQ0FBQ0MsYUFBTCxFQUFvQixDQUNsQjtBQUNELGVBRkQsTUFFTyxJQUFJQSxjQUFjbkcsSUFBZCxLQUF1QixxQkFBM0IsRUFBa0QsQ0FDdkRtRyxjQUFjYixZQUFkLENBQTJCMUksT0FBM0IsQ0FBb0NFLENBQUQsSUFDakNwQix3QkFBd0JvQixFQUFFdUksRUFBMUIsRUFBK0JBLEVBQUQsSUFBUXpELEVBQUV6RixTQUFGLENBQVlvRixHQUFaLENBQ3BDOEQsR0FBR3JJLElBRGlDLEVBRXBDOEIsV0FBV1IsTUFBWCxFQUFtQlMsZUFBbkIsRUFBb0NrSCxJQUFwQyxFQUEwQ0UsYUFBMUMsRUFBeURELGVBQXpELENBRm9DLENBQXRDLENBREYsRUFNRCxDQVBNLE1BT0EsQ0FDTHRFLEVBQUV6RixTQUFGLENBQVlvRixHQUFaLENBQ0U0RSxjQUFjZCxFQUFkLENBQWlCckksSUFEbkIsRUFFRThCLFdBQVdSLE1BQVgsRUFBbUJTLGVBQW5CLEVBQW9DbUgsZUFBcEMsQ0FGRixFQUdELENBQ0YsQ0FyQkQsRUFzQkQsQ0FDRixDQTNCRCxNQTJCTyxDQUNMO0FBQ0F0RSxZQUFFekYsU0FBRixDQUFZb0YsR0FBWixDQUFnQixTQUFoQixFQUEyQnpDLFdBQVdSLE1BQVgsRUFBbUJTLGVBQW5CLEVBQW9Da0gsSUFBcEMsQ0FBM0IsRUFDRCxDQUNGLENBaENELEVBaUNELENBQ0YsQ0FySkQsRUF1SkEsT0FBT3JFLENBQVAsQ0FDRCxDQXJSRCxDLENBdVJBOzs7O3VHQUtBLFNBQVNpQyxRQUFULENBQWtCSCxDQUFsQixFQUFxQnhGLE9BQXJCLEVBQThCLENBQzVCLE9BQU8sTUFBTWxDLFVBQVU4RSxHQUFWLENBQWNDLGFBQWEyQyxDQUFiLEVBQWdCeEYsT0FBaEIsQ0FBZCxDQUFiLENBQ0QsQyxDQUdEOzs7Ozs7Z01BT08sU0FBU3hDLHVCQUFULENBQWlDMEssT0FBakMsRUFBMEN6SSxRQUExQyxFQUFvRCxDQUN6RCxRQUFReUksUUFBUXBHLElBQWhCLEdBQ0UsS0FBSyxZQUFMLEVBQW1CO0FBQ2pCckMsZUFBU3lJLE9BQVQsRUFDQSxNQUVGLEtBQUssZUFBTCxDQUNFQSxRQUFRQyxVQUFSLENBQW1CekosT0FBbkIsQ0FBMkI4RyxLQUFLLENBQzlCLElBQUlBLEVBQUUxRCxJQUFGLEtBQVcsMEJBQVgsSUFBeUMwRCxFQUFFMUQsSUFBRixLQUFXLGFBQXhELEVBQXVFLENBQ3JFckMsU0FBUytGLEVBQUU0QyxRQUFYLEVBQ0EsT0FDRCxDQUNENUssd0JBQXdCZ0ksRUFBRWxGLEtBQTFCLEVBQWlDYixRQUFqQyxFQUNELENBTkQsRUFPQSxNQUVGLEtBQUssY0FBTCxDQUNFeUksUUFBUUcsUUFBUixDQUFpQjNKLE9BQWpCLENBQTBCNEosT0FBRCxJQUFhLENBQ3BDLElBQUlBLFdBQVcsSUFBZixFQUFxQixPQUNyQixJQUFJQSxRQUFReEcsSUFBUixLQUFpQiwwQkFBakIsSUFBK0N3RyxRQUFReEcsSUFBUixLQUFpQixhQUFwRSxFQUFtRixDQUNqRnJDLFNBQVM2SSxRQUFRRixRQUFqQixFQUNBLE9BQ0QsQ0FDRDVLLHdCQUF3QjhLLE9BQXhCLEVBQWlDN0ksUUFBakMsRUFDRCxDQVBELEVBUUEsTUFFRixLQUFLLG1CQUFMLENBQ0VBLFNBQVN5SSxRQUFRSyxJQUFqQixFQUNBLE1BNUJKLENBOEJELEMsQ0FFRDs7eWlCQUdBLFNBQVMxRixZQUFULENBQXNCN0UsSUFBdEIsRUFBNEJnQyxPQUE1QixFQUFxQyxPQUMzQjhELFFBRDJCLEdBQ2E5RCxPQURiLENBQzNCOEQsUUFEMkIsQ0FDakJtQyxhQURpQixHQUNhakcsT0FEYixDQUNqQmlHLGFBRGlCLENBQ0Z1QyxVQURFLEdBQ2F4SSxPQURiLENBQ0Z3SSxVQURFLENBRW5DLE9BQU8sRUFDTDFFLFFBREssRUFFTG1DLGFBRkssRUFHTHVDLFVBSEssRUFJTHhLLElBSkssRUFBUCxDQU1ELEMsQ0FHRDs7aXZCQUdBLFNBQVM2SCxjQUFULENBQXdCNEMsSUFBeEIsRUFBOEI5RSxHQUE5QixFQUFtQyxDQUNqQyxJQUFJK0UsbUJBQVd0SCxNQUFYLEdBQW9CLENBQXhCLEVBQTJCLENBQ3pCO0FBQ0EsV0FBTyxJQUFJc0gsa0JBQUosQ0FBZUQsSUFBZixFQUFxQjlFLEdBQXJCLENBQVAsQ0FDRCxDQUhELE1BR08sQ0FDTDtBQUNBLFdBQU8sSUFBSStFLGtCQUFKLENBQWUsRUFBRUQsSUFBRixFQUFROUUsR0FBUixFQUFmLENBQVAsQ0FDRCxDQUNGIiwiZmlsZSI6IkV4cG9ydE1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcblxuaW1wb3J0IGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJ1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5cbmltcG9ydCB7IFNvdXJjZUNvZGUgfSBmcm9tICdlc2xpbnQnXG5cbmltcG9ydCBwYXJzZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3BhcnNlJ1xuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGlzSWdub3JlZCwgeyBoYXNWYWxpZEV4dGVuc2lvbiB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvaWdub3JlJ1xuXG5pbXBvcnQgeyBoYXNoT2JqZWN0IH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9oYXNoJ1xuaW1wb3J0ICogYXMgdW5hbWJpZ3VvdXMgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy91bmFtYmlndW91cydcblxuaW1wb3J0IHsgdHNDb25maWdMb2FkZXIgfSBmcm9tICd0c2NvbmZpZy1wYXRocy9saWIvdHNjb25maWctbG9hZGVyJ1xuXG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnXG5cbmxldCBwYXJzZUNvbmZpZ0ZpbGVUZXh0VG9Kc29uXG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdlc2xpbnQtcGx1Z2luLWltcG9ydDpFeHBvcnRNYXAnKVxuXG5jb25zdCBleHBvcnRDYWNoZSA9IG5ldyBNYXAoKVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeHBvcnRNYXAge1xuICBjb25zdHJ1Y3RvcihwYXRoKSB7XG4gICAgdGhpcy5wYXRoID0gcGF0aFxuICAgIHRoaXMubmFtZXNwYWNlID0gbmV3IE1hcCgpXG4gICAgLy8gdG9kbzogcmVzdHJ1Y3R1cmUgdG8ga2V5IG9uIHBhdGgsIHZhbHVlIGlzIHJlc29sdmVyICsgbWFwIG9mIG5hbWVzXG4gICAgdGhpcy5yZWV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAvKipcbiAgICAgKiBzdGFyLWV4cG9ydHNcbiAgICAgKiBAdHlwZSB7U2V0fSBvZiAoKSA9PiBFeHBvcnRNYXBcbiAgICAgKi9cbiAgICB0aGlzLmRlcGVuZGVuY2llcyA9IG5ldyBTZXQoKVxuICAgIC8qKlxuICAgICAqIGRlcGVuZGVuY2llcyBvZiB0aGlzIG1vZHVsZSB0aGF0IGFyZSBub3QgZXhwbGljaXRseSByZS1leHBvcnRlZFxuICAgICAqIEB0eXBlIHtNYXB9IGZyb20gcGF0aCA9ICgpID0+IEV4cG9ydE1hcFxuICAgICAqL1xuICAgIHRoaXMuaW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuZXJyb3JzID0gW11cbiAgfVxuXG4gIGdldCBoYXNEZWZhdWx0KCkgeyByZXR1cm4gdGhpcy5nZXQoJ2RlZmF1bHQnKSAhPSBudWxsIH0gLy8gc3Ryb25nZXIgdGhhbiB0aGlzLmhhc1xuXG4gIGdldCBzaXplKCkge1xuICAgIGxldCBzaXplID0gdGhpcy5uYW1lc3BhY2Uuc2l6ZSArIHRoaXMucmVleHBvcnRzLnNpemVcbiAgICB0aGlzLmRlcGVuZGVuY2llcy5mb3JFYWNoKGRlcCA9PiB7XG4gICAgICBjb25zdCBkID0gZGVwKClcbiAgICAgIC8vIENKUyAvIGlnbm9yZWQgZGVwZW5kZW5jaWVzIHdvbid0IGV4aXN0ICgjNzE3KVxuICAgICAgaWYgKGQgPT0gbnVsbCkgcmV0dXJuXG4gICAgICBzaXplICs9IGQuc2l6ZVxuICAgIH0pXG4gICAgcmV0dXJuIHNpemVcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGVjayBleHBsaWNpdGx5IHJlLWV4cG9ydGVkIG5hbWVzIGZvciBleGlzdGVuY2VcbiAgICogaW4gdGhlIGJhc2UgbmFtZXNwYWNlLCBidXQgaXQgd2lsbCBleHBhbmQgYWxsIGBleHBvcnQgKiBmcm9tICcuLi4nYCBleHBvcnRzXG4gICAqIGlmIG5vdCBmb3VuZCBpbiB0aGUgZXhwbGljaXQgbmFtZXNwYWNlLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYG5hbWVgIGlzIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgaGFzKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZVxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHJldHVybiB0cnVlXG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGZvciAobGV0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcykge1xuICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuXG4gICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICBpZiAoIWlubmVyTWFwKSBjb250aW51ZVxuXG4gICAgICAgIGlmIChpbm5lck1hcC5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogZW5zdXJlIHRoYXQgaW1wb3J0ZWQgbmFtZSBmdWxseSByZXNvbHZlcy5cbiAgICogQHBhcmFtICB7W3R5cGVdfSAgbmFtZSBbZGVzY3JpcHRpb25dXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59ICAgICAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgaGFzRGVlcChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSB7XG4gICAgICBjb25zdCByZWV4cG9ydHMgPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gcmVleHBvcnRzLmdldEltcG9ydCgpXG5cbiAgICAgIC8vIGlmIGltcG9ydCBpcyBpZ25vcmVkLCByZXR1cm4gZXhwbGljaXQgJ251bGwnXG4gICAgICBpZiAoaW1wb3J0ZWQgPT0gbnVsbCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlcywgb25seSBpZiBuYW1lIG1hdGNoZXNcbiAgICAgIGlmIChpbXBvcnRlZC5wYXRoID09PSB0aGlzLnBhdGggJiYgcmVleHBvcnRzLmxvY2FsID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiB7IGZvdW5kOiBmYWxzZSwgcGF0aDogW3RoaXNdIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVlcCA9IGltcG9ydGVkLmhhc0RlZXAocmVleHBvcnRzLmxvY2FsKVxuICAgICAgZGVlcC5wYXRoLnVuc2hpZnQodGhpcylcblxuICAgICAgcmV0dXJuIGRlZXBcbiAgICB9XG5cblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChsZXQgZGVwIG9mIHRoaXMuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG4gICAgICAgIGlmIChpbm5lck1hcCA9PSBudWxsKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgIGlmIChpbm5lck1hcC5wYXRoID09PSB0aGlzLnBhdGgpIGNvbnRpbnVlXG5cbiAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5oYXNEZWVwKG5hbWUpXG4gICAgICAgIGlmIChpbm5lclZhbHVlLmZvdW5kKSB7XG4gICAgICAgICAgaW5uZXJWYWx1ZS5wYXRoLnVuc2hpZnQodGhpcylcbiAgICAgICAgICByZXR1cm4gaW5uZXJWYWx1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfVxuICB9XG5cbiAgZ2V0KG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4gdGhpcy5uYW1lc3BhY2UuZ2V0KG5hbWUpXG5cbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSB7XG4gICAgICBjb25zdCByZWV4cG9ydHMgPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gcmVleHBvcnRzLmdldEltcG9ydCgpXG5cbiAgICAgIC8vIGlmIGltcG9ydCBpcyBpZ25vcmVkLCByZXR1cm4gZXhwbGljaXQgJ251bGwnXG4gICAgICBpZiAoaW1wb3J0ZWQgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzLCBvbmx5IGlmIG5hbWUgbWF0Y2hlc1xuICAgICAgaWYgKGltcG9ydGVkLnBhdGggPT09IHRoaXMucGF0aCAmJiByZWV4cG9ydHMubG9jYWwgPT09IG5hbWUpIHJldHVybiB1bmRlZmluZWRcblxuICAgICAgcmV0dXJuIGltcG9ydGVkLmdldChyZWV4cG9ydHMubG9jYWwpXG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGxldCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgIGlmIChpbm5lck1hcC5wYXRoID09PSB0aGlzLnBhdGgpIGNvbnRpbnVlXG5cbiAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5nZXQobmFtZSlcbiAgICAgICAgaWYgKGlubmVyVmFsdWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGlubmVyVmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBmb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgdGhpcy5uYW1lc3BhY2UuZm9yRWFjaCgodiwgbikgPT5cbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpXG5cbiAgICB0aGlzLnJlZXhwb3J0cy5mb3JFYWNoKChyZWV4cG9ydHMsIG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KClcbiAgICAgIC8vIGNhbid0IGxvb2sgdXAgbWV0YSBmb3IgaWdub3JlZCByZS1leHBvcnRzICgjMzQ4KVxuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCByZWV4cG9ydGVkICYmIHJlZXhwb3J0ZWQuZ2V0KHJlZXhwb3J0cy5sb2NhbCksIG5hbWUsIHRoaXMpXG4gICAgfSlcblxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgIGNvbnN0IGQgPSBkZXAoKVxuICAgICAgLy8gQ0pTIC8gaWdub3JlZCBkZXBlbmRlbmNpZXMgd29uJ3QgZXhpc3QgKCM3MTcpXG4gICAgICBpZiAoZCA9PSBudWxsKSByZXR1cm5cblxuICAgICAgZC5mb3JFYWNoKCh2LCBuKSA9PlxuICAgICAgICBuICE9PSAnZGVmYXVsdCcgJiYgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSlcbiAgICB9KVxuICB9XG5cbiAgLy8gdG9kbzoga2V5cywgdmFsdWVzLCBlbnRyaWVzP1xuXG4gIHJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbikge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IGRlY2xhcmF0aW9uLnNvdXJjZSxcbiAgICAgIG1lc3NhZ2U6IGBQYXJzZSBlcnJvcnMgaW4gaW1wb3J0ZWQgbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nOiBgICtcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGUgPT4gYCR7ZS5tZXNzYWdlfSAoJHtlLmxpbmVOdW1iZXJ9OiR7ZS5jb2x1bW59KWApXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1gLFxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBwYXJzZSBkb2NzIGZyb20gdGhlIGZpcnN0IG5vZGUgdGhhdCBoYXMgbGVhZGluZyBjb21tZW50c1xuICovXG5mdW5jdGlvbiBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCAuLi5ub2Rlcykge1xuICBjb25zdCBtZXRhZGF0YSA9IHt9XG5cbiAgLy8gJ3NvbWUnIHNob3J0LWNpcmN1aXRzIG9uIGZpcnN0ICd0cnVlJ1xuICBub2Rlcy5zb21lKG4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgIGxldCBsZWFkaW5nQ29tbWVudHNcblxuICAgICAgLy8gbi5sZWFkaW5nQ29tbWVudHMgaXMgbGVnYWN5IGBhdHRhY2hDb21tZW50c2AgYmVoYXZpb3JcbiAgICAgIGlmICgnbGVhZGluZ0NvbW1lbnRzJyBpbiBuKSB7XG4gICAgICAgIGxlYWRpbmdDb21tZW50cyA9IG4ubGVhZGluZ0NvbW1lbnRzXG4gICAgICB9IGVsc2UgaWYgKG4ucmFuZ2UpIHtcbiAgICAgICAgbGVhZGluZ0NvbW1lbnRzID0gc291cmNlLmdldENvbW1lbnRzQmVmb3JlKG4pXG4gICAgICB9XG5cbiAgICAgIGlmICghbGVhZGluZ0NvbW1lbnRzIHx8IGxlYWRpbmdDb21tZW50cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZVxuXG4gICAgICBmb3IgKGxldCBuYW1lIGluIGRvY1N0eWxlUGFyc2Vycykge1xuICAgICAgICBjb25zdCBkb2MgPSBkb2NTdHlsZVBhcnNlcnNbbmFtZV0obGVhZGluZ0NvbW1lbnRzKVxuICAgICAgICBpZiAoZG9jKSB7XG4gICAgICAgICAgbWV0YWRhdGEuZG9jID0gZG9jXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbWV0YWRhdGFcbn1cblxuY29uc3QgYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzID0ge1xuICBqc2RvYzogY2FwdHVyZUpzRG9jLFxuICB0b21kb2M6IGNhcHR1cmVUb21Eb2MsXG59XG5cbi8qKlxuICogcGFyc2UgSlNEb2MgZnJvbSBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IGNvbW1lbnRzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVKc0RvYyhjb21tZW50cykge1xuICBsZXQgZG9jXG5cbiAgLy8gY2FwdHVyZSBYU0RvY1xuICBjb21tZW50cy5mb3JFYWNoKGNvbW1lbnQgPT4ge1xuICAgIC8vIHNraXAgbm9uLWJsb2NrIGNvbW1lbnRzXG4gICAgaWYgKGNvbW1lbnQudHlwZSAhPT0gJ0Jsb2NrJykgcmV0dXJuXG4gICAgdHJ5IHtcbiAgICAgIGRvYyA9IGRvY3RyaW5lLnBhcnNlKGNvbW1lbnQudmFsdWUsIHsgdW53cmFwOiB0cnVlIH0pXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvKiBkb24ndCBjYXJlLCBmb3Igbm93PyBtYXliZSBhZGQgdG8gYGVycm9ycz9gICovXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBkb2Ncbn1cblxuLyoqXG4gICogcGFyc2UgVG9tRG9jIHNlY3Rpb24gZnJvbSBjb21tZW50c1xuICAqL1xuZnVuY3Rpb24gY2FwdHVyZVRvbURvYyhjb21tZW50cykge1xuICAvLyBjb2xsZWN0IGxpbmVzIHVwIHRvIGZpcnN0IHBhcmFncmFwaCBicmVha1xuICBjb25zdCBsaW5lcyA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29tbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb21tZW50ID0gY29tbWVudHNbaV1cbiAgICBpZiAoY29tbWVudC52YWx1ZS5tYXRjaCgvXlxccyokLykpIGJyZWFrXG4gICAgbGluZXMucHVzaChjb21tZW50LnZhbHVlLnRyaW0oKSlcbiAgfVxuXG4gIC8vIHJldHVybiBkb2N0cmluZS1saWtlIG9iamVjdFxuICBjb25zdCBzdGF0dXNNYXRjaCA9IGxpbmVzLmpvaW4oJyAnKS5tYXRjaCgvXihQdWJsaWN8SW50ZXJuYWx8RGVwcmVjYXRlZCk6XFxzKiguKykvKVxuICBpZiAoc3RhdHVzTWF0Y2gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgdGFnczogW3tcbiAgICAgICAgdGl0bGU6IHN0YXR1c01hdGNoWzFdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdGF0dXNNYXRjaFsyXSxcbiAgICAgIH1dLFxuICAgIH1cbiAgfVxufVxuXG5FeHBvcnRNYXAuZ2V0ID0gZnVuY3Rpb24gKHNvdXJjZSwgY29udGV4dCkge1xuICBjb25zdCBwYXRoID0gcmVzb2x2ZShzb3VyY2UsIGNvbnRleHQpXG4gIGlmIChwYXRoID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIEV4cG9ydE1hcC5mb3IoY2hpbGRDb250ZXh0KHBhdGgsIGNvbnRleHQpKVxufVxuXG5FeHBvcnRNYXAuZm9yID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgeyBwYXRoIH0gPSBjb250ZXh0XG5cbiAgY29uc3QgY2FjaGVLZXkgPSBoYXNoT2JqZWN0KGNvbnRleHQpLmRpZ2VzdCgnaGV4JylcbiAgbGV0IGV4cG9ydE1hcCA9IGV4cG9ydENhY2hlLmdldChjYWNoZUtleSlcblxuICAvLyByZXR1cm4gY2FjaGVkIGlnbm9yZVxuICBpZiAoZXhwb3J0TWFwID09PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aClcbiAgaWYgKGV4cG9ydE1hcCAhPSBudWxsKSB7XG4gICAgLy8gZGF0ZSBlcXVhbGl0eSBjaGVja1xuICAgIGlmIChleHBvcnRNYXAubXRpbWUgLSBzdGF0cy5tdGltZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIGV4cG9ydE1hcFxuICAgIH1cbiAgICAvLyBmdXR1cmU6IGNoZWNrIGNvbnRlbnQgZXF1YWxpdHk/XG4gIH1cblxuICAvLyBjaGVjayB2YWxpZCBleHRlbnNpb25zIGZpcnN0XG4gIGlmICghaGFzVmFsaWRFeHRlbnNpb24ocGF0aCwgY29udGV4dCkpIHtcbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIGNoZWNrIGZvciBhbmQgY2FjaGUgaWdub3JlXG4gIGlmIChpc0lnbm9yZWQocGF0aCwgY29udGV4dCkpIHtcbiAgICBsb2coJ2lnbm9yZWQgcGF0aCBkdWUgdG8gaWdub3JlIHNldHRpbmdzOicsIHBhdGgpXG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHsgZW5jb2Rpbmc6ICd1dGY4JyB9KVxuXG4gIC8vIGNoZWNrIGZvciBhbmQgY2FjaGUgdW5hbWJpZ3VvdXMgbW9kdWxlc1xuICBpZiAoIXVuYW1iaWd1b3VzLnRlc3QoY29udGVudCkpIHtcbiAgICBsb2coJ2lnbm9yZWQgcGF0aCBkdWUgdG8gdW5hbWJpZ3VvdXMgcmVnZXg6JywgcGF0aClcbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGxvZygnY2FjaGUgbWlzcycsIGNhY2hlS2V5LCAnZm9yIHBhdGgnLCBwYXRoKVxuICBleHBvcnRNYXAgPSBFeHBvcnRNYXAucGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcblxuICAvLyBhbWJpZ3VvdXMgbW9kdWxlcyByZXR1cm4gbnVsbFxuICBpZiAoZXhwb3J0TWFwID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgZXhwb3J0TWFwLm10aW1lID0gc3RhdHMubXRpbWVcblxuICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIGV4cG9ydE1hcClcbiAgcmV0dXJuIGV4cG9ydE1hcFxufVxuXG5cbkV4cG9ydE1hcC5wYXJzZSA9IGZ1bmN0aW9uIChwYXRoLCBjb250ZW50LCBjb250ZXh0KSB7XG4gIHZhciBtID0gbmV3IEV4cG9ydE1hcChwYXRoKVxuXG4gIHRyeSB7XG4gICAgdmFyIGFzdCA9IHBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZygncGFyc2UgZXJyb3I6JywgcGF0aCwgZXJyKVxuICAgIG0uZXJyb3JzLnB1c2goZXJyKVxuICAgIHJldHVybiBtIC8vIGNhbid0IGNvbnRpbnVlXG4gIH1cblxuICBpZiAoIXVuYW1iaWd1b3VzLmlzTW9kdWxlKGFzdCkpIHJldHVybiBudWxsXG5cbiAgY29uc3QgZG9jc3R5bGUgPSAoY29udGV4dC5zZXR0aW5ncyAmJiBjb250ZXh0LnNldHRpbmdzWydpbXBvcnQvZG9jc3R5bGUnXSkgfHwgWydqc2RvYyddXG4gIGNvbnN0IGRvY1N0eWxlUGFyc2VycyA9IHt9XG4gIGRvY3N0eWxlLmZvckVhY2goc3R5bGUgPT4ge1xuICAgIGRvY1N0eWxlUGFyc2Vyc1tzdHlsZV0gPSBhdmFpbGFibGVEb2NTdHlsZVBhcnNlcnNbc3R5bGVdXG4gIH0pXG5cbiAgLy8gYXR0ZW1wdCB0byBjb2xsZWN0IG1vZHVsZSBkb2NcbiAgaWYgKGFzdC5jb21tZW50cykge1xuICAgIGFzdC5jb21tZW50cy5zb21lKGMgPT4ge1xuICAgICAgaWYgKGMudHlwZSAhPT0gJ0Jsb2NrJykgcmV0dXJuIGZhbHNlXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkb2MgPSBkb2N0cmluZS5wYXJzZShjLnZhbHVlLCB7IHVud3JhcDogdHJ1ZSB9KVxuICAgICAgICBpZiAoZG9jLnRhZ3Muc29tZSh0ID0+IHQudGl0bGUgPT09ICdtb2R1bGUnKSkge1xuICAgICAgICAgIG0uZG9jID0gZG9jXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIHJlbW90ZVBhdGgodmFsdWUpIHtcbiAgICByZXR1cm4gcmVzb2x2ZS5yZWxhdGl2ZSh2YWx1ZSwgcGF0aCwgY29udGV4dC5zZXR0aW5ncylcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc29sdmVJbXBvcnQodmFsdWUpIHtcbiAgICBjb25zdCBycCA9IHJlbW90ZVBhdGgodmFsdWUpXG4gICAgaWYgKHJwID09IG51bGwpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIEV4cG9ydE1hcC5mb3IoY2hpbGRDb250ZXh0KHJwLCBjb250ZXh0KSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldE5hbWVzcGFjZShpZGVudGlmaWVyKSB7XG4gICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhpZGVudGlmaWVyLm5hbWUpKSByZXR1cm5cblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZUltcG9ydChuYW1lc3BhY2VzLmdldChpZGVudGlmaWVyLm5hbWUpKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZE5hbWVzcGFjZShvYmplY3QsIGlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBuc2ZuID0gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpXG4gICAgaWYgKG5zZm4pIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsICduYW1lc3BhY2UnLCB7IGdldDogbnNmbiB9KVxuICAgIH1cblxuICAgIHJldHVybiBvYmplY3RcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhcHR1cmVEZXBlbmRlbmN5KGRlY2xhcmF0aW9uKSB7XG4gICAgaWYgKGRlY2xhcmF0aW9uLnNvdXJjZSA9PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIGlmIChkZWNsYXJhdGlvbi5pbXBvcnRLaW5kID09PSAndHlwZScpIHJldHVybiBudWxsIC8vIHNraXAgRmxvdyB0eXBlIGltcG9ydHNcbiAgICBjb25zdCBpbXBvcnRlZFNwZWNpZmllcnMgPSBuZXcgU2V0KClcbiAgICBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IG5ldyBTZXQoWydJbXBvcnREZWZhdWx0U3BlY2lmaWVyJywgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllciddKVxuICAgIGxldCBoYXNJbXBvcnRlZFR5cGUgPSBmYWxzZVxuICAgIGlmIChkZWNsYXJhdGlvbi5zcGVjaWZpZXJzKSB7XG4gICAgICBkZWNsYXJhdGlvbi5zcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgY29uc3QgaXNUeXBlID0gc3BlY2lmaWVyLmltcG9ydEtpbmQgPT09ICd0eXBlJ1xuICAgICAgICBoYXNJbXBvcnRlZFR5cGUgPSBoYXNJbXBvcnRlZFR5cGUgfHwgaXNUeXBlXG5cbiAgICAgICAgaWYgKHN1cHBvcnRlZFR5cGVzLmhhcyhzcGVjaWZpZXIudHlwZSkgJiYgIWlzVHlwZSkge1xuICAgICAgICAgIGltcG9ydGVkU3BlY2lmaWVycy5hZGQoc3BlY2lmaWVyLnR5cGUpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSAnSW1wb3J0U3BlY2lmaWVyJyAmJiAhaXNUeXBlKSB7XG4gICAgICAgICAgaW1wb3J0ZWRTcGVjaWZpZXJzLmFkZChzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBvbmx5IEZsb3cgdHlwZXMgd2VyZSBpbXBvcnRlZFxuICAgIGlmIChoYXNJbXBvcnRlZFR5cGUgJiYgaW1wb3J0ZWRTcGVjaWZpZXJzLnNpemUgPT09IDApIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwID0gcmVtb3RlUGF0aChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUpXG4gICAgaWYgKHAgPT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBleGlzdGluZyA9IG0uaW1wb3J0cy5nZXQocClcbiAgICBpZiAoZXhpc3RpbmcgIT0gbnVsbCkgcmV0dXJuIGV4aXN0aW5nLmdldHRlclxuXG4gICAgY29uc3QgZ2V0dGVyID0gdGh1bmtGb3IocCwgY29udGV4dClcbiAgICBtLmltcG9ydHMuc2V0KHAsIHtcbiAgICAgIGdldHRlcixcbiAgICAgIHNvdXJjZTogeyAgLy8gY2FwdHVyaW5nIGFjdHVhbCBub2RlIHJlZmVyZW5jZSBob2xkcyBmdWxsIEFTVCBpbiBtZW1vcnkhXG4gICAgICAgIHZhbHVlOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgICAgIGxvYzogZGVjbGFyYXRpb24uc291cmNlLmxvYyxcbiAgICAgIH0sXG4gICAgICBpbXBvcnRlZFNwZWNpZmllcnMsXG4gICAgfSlcbiAgICByZXR1cm4gZ2V0dGVyXG4gIH1cblxuICBjb25zdCBzb3VyY2UgPSBtYWtlU291cmNlQ29kZShjb250ZW50LCBhc3QpXG5cbiAgZnVuY3Rpb24gaXNFc01vZHVsZUludGVyb3AoKSB7XG4gICAgY29uc3QgdHNDb25maWdJbmZvID0gdHNDb25maWdMb2FkZXIoe1xuICAgICAgY3dkOiBjb250ZXh0LnBhcnNlck9wdGlvbnMgJiYgY29udGV4dC5wYXJzZXJPcHRpb25zLnRzY29uZmlnUm9vdERpciB8fCBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZ2V0RW52OiAoa2V5KSA9PiBwcm9jZXNzLmVudltrZXldLFxuICAgIH0pXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0c0NvbmZpZ0luZm8udHNDb25maWdQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QganNvblRleHQgPSBmcy5yZWFkRmlsZVN5bmModHNDb25maWdJbmZvLnRzQ29uZmlnUGF0aCkudG9TdHJpbmcoKVxuICAgICAgICBpZiAoIXBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb24pIHtcbiAgICAgICAgICAvLyB0aGlzIGlzIGJlY2F1c2UgcHJvamVjdHMgbm90IHVzaW5nIFR5cGVTY3JpcHQgd29uJ3QgaGF2ZSB0eXBlc2NyaXB0IGluc3RhbGxlZFxuICAgICAgICAgICh7cGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbn0gPSByZXF1aXJlKCd0eXBlc2NyaXB0JykpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHNDb25maWcgPSBwYXJzZUNvbmZpZ0ZpbGVUZXh0VG9Kc29uKHRzQ29uZmlnSW5mby50c0NvbmZpZ1BhdGgsIGpzb25UZXh0KS5jb25maWdcbiAgICAgICAgcmV0dXJuIHRzQ29uZmlnLmNvbXBpbGVyT3B0aW9ucy5lc01vZHVsZUludGVyb3BcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBhc3QuYm9keS5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7XG4gICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicpIHtcbiAgICAgIGNvbnN0IGV4cG9ydE1ldGEgPSBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBuKVxuICAgICAgaWYgKG4uZGVjbGFyYXRpb24udHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBuLmRlY2xhcmF0aW9uKVxuICAgICAgfVxuICAgICAgbS5uYW1lc3BhY2Uuc2V0KCdkZWZhdWx0JywgZXhwb3J0TWV0YSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnRBbGxEZWNsYXJhdGlvbicpIHtcbiAgICAgIGNvbnN0IGdldHRlciA9IGNhcHR1cmVEZXBlbmRlbmN5KG4pXG4gICAgICBpZiAoZ2V0dGVyKSBtLmRlcGVuZGVuY2llcy5hZGQoZ2V0dGVyKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gY2FwdHVyZSBuYW1lc3BhY2VzIGluIGNhc2Ugb2YgbGF0ZXIgZXhwb3J0XG4gICAgaWYgKG4udHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgY2FwdHVyZURlcGVuZGVuY3kobilcbiAgICAgIGxldCBuc1xuICAgICAgaWYgKG4uc3BlY2lmaWVycy5zb21lKHMgPT4gcy50eXBlID09PSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyAmJiAobnMgPSBzKSkpIHtcbiAgICAgICAgbmFtZXNwYWNlcy5zZXQobnMubG9jYWwubmFtZSwgbi5zb3VyY2UudmFsdWUpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAobi50eXBlID09PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicpIHtcbiAgICAgIC8vIGNhcHR1cmUgZGVjbGFyYXRpb25cbiAgICAgIGlmIChuLmRlY2xhcmF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgc3dpdGNoIChuLmRlY2xhcmF0aW9uLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdGdW5jdGlvbkRlY2xhcmF0aW9uJzpcbiAgICAgICAgICBjYXNlICdDbGFzc0RlY2xhcmF0aW9uJzpcbiAgICAgICAgICBjYXNlICdUeXBlQWxpYXMnOiAvLyBmbG93dHlwZSB3aXRoIGJhYmVsLWVzbGludCBwYXJzZXJcbiAgICAgICAgICBjYXNlICdJbnRlcmZhY2VEZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnRGVjbGFyZUZ1bmN0aW9uJzpcbiAgICAgICAgICBjYXNlICdUU0RlY2xhcmVGdW5jdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNFbnVtRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTQWJzdHJhY3RDbGFzc0RlY2xhcmF0aW9uJzpcbiAgICAgICAgICBjYXNlICdUU01vZHVsZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChuLmRlY2xhcmF0aW9uLmlkLm5hbWUsIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIG4pKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdWYXJpYWJsZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgIG4uZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGQuaWQsXG4gICAgICAgICAgICAgICAgaWQgPT4gbS5uYW1lc3BhY2Uuc2V0KGlkLm5hbWUsIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIGQsIG4pKSkpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5zb3VyY2UgPSBuLnNvdXJjZSAmJiBuLnNvdXJjZS52YWx1ZVxuICAgICAgbi5zcGVjaWZpZXJzLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IHt9XG4gICAgICAgIGxldCBsb2NhbFxuXG4gICAgICAgIHN3aXRjaCAocy50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6XG4gICAgICAgICAgICBpZiAoIW4uc291cmNlKSByZXR1cm5cbiAgICAgICAgICAgIGxvY2FsID0gJ2RlZmF1bHQnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ0V4cG9ydE5hbWVzcGFjZVNwZWNpZmllcic6XG4gICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQocy5leHBvcnRlZC5uYW1lLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0TWV0YSwgJ25hbWVzcGFjZScsIHtcbiAgICAgICAgICAgICAgZ2V0KCkgeyByZXR1cm4gcmVzb2x2ZUltcG9ydChuc291cmNlKSB9LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICBjYXNlICdFeHBvcnRTcGVjaWZpZXInOlxuICAgICAgICAgICAgaWYgKCFuLnNvdXJjZSkge1xuICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQocy5leHBvcnRlZC5uYW1lLCBhZGROYW1lc3BhY2UoZXhwb3J0TWV0YSwgcy5sb2NhbCkpXG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZSBmYWxscyB0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGxvY2FsID0gcy5sb2NhbC5uYW1lXG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG9kbzogSlNEb2NcbiAgICAgICAgbS5yZWV4cG9ydHMuc2V0KHMuZXhwb3J0ZWQubmFtZSwgeyBsb2NhbCwgZ2V0SW1wb3J0OiAoKSA9PiByZXNvbHZlSW1wb3J0KG5zb3VyY2UpIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGlzRXNNb2R1bGVJbnRlcm9wVHJ1ZSA9IGlzRXNNb2R1bGVJbnRlcm9wKClcblxuICAgIGNvbnN0IGV4cG9ydHMgPSBbJ1RTRXhwb3J0QXNzaWdubWVudCddXG4gICAgaWYgKGlzRXNNb2R1bGVJbnRlcm9wVHJ1ZSkge1xuICAgICAgZXhwb3J0cy5wdXNoKCdUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uJylcbiAgICB9XG5cbiAgICAvLyBUaGlzIGRvZXNuJ3QgZGVjbGFyZSBhbnl0aGluZywgYnV0IGNoYW5nZXMgd2hhdCdzIGJlaW5nIGV4cG9ydGVkLlxuICAgIGlmIChpbmNsdWRlcyhleHBvcnRzLCBuLnR5cGUpKSB7XG4gICAgICBjb25zdCBleHBvcnRlZE5hbWUgPSBuLnR5cGUgPT09ICdUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uJ1xuICAgICAgICA/IG4uaWQubmFtZVxuICAgICAgICA6IChuLmV4cHJlc3Npb24gJiYgbi5leHByZXNzaW9uLm5hbWUgfHwgKG4uZXhwcmVzc2lvbi5pZCAmJiBuLmV4cHJlc3Npb24uaWQubmFtZSkgfHwgbnVsbClcbiAgICAgIGNvbnN0IGRlY2xUeXBlcyA9IFtcbiAgICAgICAgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nLFxuICAgICAgICAnQ2xhc3NEZWNsYXJhdGlvbicsXG4gICAgICAgICdUU0RlY2xhcmVGdW5jdGlvbicsXG4gICAgICAgICdUU0VudW1EZWNsYXJhdGlvbicsXG4gICAgICAgICdUU1R5cGVBbGlhc0RlY2xhcmF0aW9uJyxcbiAgICAgICAgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNBYnN0cmFjdENsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNNb2R1bGVEZWNsYXJhdGlvbicsXG4gICAgICBdXG4gICAgICBjb25zdCBleHBvcnRlZERlY2xzID0gYXN0LmJvZHkuZmlsdGVyKCh7IHR5cGUsIGlkLCBkZWNsYXJhdGlvbnMgfSkgPT4gaW5jbHVkZXMoZGVjbFR5cGVzLCB0eXBlKSAmJiAoXG4gICAgICAgIChpZCAmJiBpZC5uYW1lID09PSBleHBvcnRlZE5hbWUpIHx8IChkZWNsYXJhdGlvbnMgJiYgZGVjbGFyYXRpb25zLmZpbmQoKGQpID0+IGQuaWQubmFtZSA9PT0gZXhwb3J0ZWROYW1lKSlcbiAgICAgICkpXG4gICAgICBpZiAoZXhwb3J0ZWREZWNscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gRXhwb3J0IGlzIG5vdCByZWZlcmVuY2luZyBhbnkgbG9jYWwgZGVjbGFyYXRpb24sIG11c3QgYmUgcmUtZXhwb3J0aW5nXG4gICAgICAgIG0ubmFtZXNwYWNlLnNldCgnZGVmYXVsdCcsIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIG4pKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChpc0VzTW9kdWxlSW50ZXJvcFRydWUpIHtcbiAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KCdkZWZhdWx0Jywge30pXG4gICAgICB9XG4gICAgICBleHBvcnRlZERlY2xzLmZvckVhY2goKGRlY2wpID0+IHtcbiAgICAgICAgaWYgKGRlY2wudHlwZSA9PT0gJ1RTTW9kdWxlRGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgaWYgKGRlY2wuYm9keSAmJiBkZWNsLmJvZHkudHlwZSA9PT0gJ1RTTW9kdWxlRGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoZGVjbC5ib2R5LmlkLm5hbWUsIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIGRlY2wuYm9keSkpXG4gICAgICAgICAgfSBlbHNlIGlmIChkZWNsLmJvZHkgJiYgZGVjbC5ib2R5LmJvZHkpIHtcbiAgICAgICAgICAgIGRlY2wuYm9keS5ib2R5LmZvckVhY2goKG1vZHVsZUJsb2NrTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAvLyBFeHBvcnQtYXNzaWdubWVudCBleHBvcnRzIGFsbCBtZW1iZXJzIGluIHRoZSBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgZXhwb3J0ZWQgb3Igbm90LlxuICAgICAgICAgICAgICBjb25zdCBuYW1lc3BhY2VEZWNsID0gbW9kdWxlQmxvY2tOb2RlLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyA/XG4gICAgICAgICAgICAgICAgbW9kdWxlQmxvY2tOb2RlLmRlY2xhcmF0aW9uIDpcbiAgICAgICAgICAgICAgICBtb2R1bGVCbG9ja05vZGVcblxuICAgICAgICAgICAgICBpZiAoIW5hbWVzcGFjZURlY2wpIHtcbiAgICAgICAgICAgICAgICAvLyBUeXBlU2NyaXB0IGNhbiBjaGVjayB0aGlzIGZvciB1czsgd2UgbmVlZG4ndFxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWVzcGFjZURlY2wudHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlRGVjbC5kZWNsYXJhdGlvbnMuZm9yRWFjaCgoZCkgPT5cbiAgICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGQuaWQsIChpZCkgPT4gbS5uYW1lc3BhY2Uuc2V0KFxuICAgICAgICAgICAgICAgICAgICBpZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBkZWNsLCBuYW1lc3BhY2VEZWNsLCBtb2R1bGVCbG9ja05vZGUpXG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoXG4gICAgICAgICAgICAgICAgICBuYW1lc3BhY2VEZWNsLmlkLm5hbWUsXG4gICAgICAgICAgICAgICAgICBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBtb2R1bGVCbG9ja05vZGUpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBFeHBvcnQgYXMgZGVmYXVsdFxuICAgICAgICAgIG0ubmFtZXNwYWNlLnNldCgnZGVmYXVsdCcsIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIGRlY2wpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbVxufVxuXG4vKipcbiAqIFRoZSBjcmVhdGlvbiBvZiB0aGlzIGNsb3N1cmUgaXMgaXNvbGF0ZWQgZnJvbSBvdGhlciBzY29wZXNcbiAqIHRvIGF2b2lkIG92ZXItcmV0ZW50aW9uIG9mIHVucmVsYXRlZCB2YXJpYWJsZXMsIHdoaWNoIGhhc1xuICogY2F1c2VkIG1lbW9yeSBsZWFrcy4gU2VlICMxMjY2LlxuICovXG5mdW5jdGlvbiB0aHVua0ZvcihwLCBjb250ZXh0KSB7XG4gIHJldHVybiAoKSA9PiBFeHBvcnRNYXAuZm9yKGNoaWxkQ29udGV4dChwLCBjb250ZXh0KSlcbn1cblxuXG4vKipcbiAqIFRyYXZlcnNlIGEgcGF0dGVybi9pZGVudGlmaWVyIG5vZGUsIGNhbGxpbmcgJ2NhbGxiYWNrJ1xuICogZm9yIGVhY2ggbGVhZiBpZGVudGlmaWVyLlxuICogQHBhcmFtICB7bm9kZX0gICBwYXR0ZXJuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShwYXR0ZXJuLCBjYWxsYmFjaykge1xuICBzd2l0Y2ggKHBhdHRlcm4udHlwZSkge1xuICAgIGNhc2UgJ0lkZW50aWZpZXInOiAvLyBiYXNlIGNhc2VcbiAgICAgIGNhbGxiYWNrKHBhdHRlcm4pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnT2JqZWN0UGF0dGVybic6XG4gICAgICBwYXR0ZXJuLnByb3BlcnRpZXMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgaWYgKHAudHlwZSA9PT0gJ0V4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eScgfHwgcC50eXBlID09PSAnUmVzdEVsZW1lbnQnKSB7XG4gICAgICAgICAgY2FsbGJhY2socC5hcmd1bWVudClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShwLnZhbHVlLCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnQXJyYXlQYXR0ZXJuJzpcbiAgICAgIHBhdHRlcm4uZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ0V4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eScgfHwgZWxlbWVudC50eXBlID09PSAnUmVzdEVsZW1lbnQnKSB7XG4gICAgICAgICAgY2FsbGJhY2soZWxlbWVudC5hcmd1bWVudClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShlbGVtZW50LCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnQXNzaWdubWVudFBhdHRlcm4nOlxuICAgICAgY2FsbGJhY2socGF0dGVybi5sZWZ0KVxuICAgICAgYnJlYWtcbiAgfVxufVxuXG4vKipcbiAqIGRvbid0IGhvbGQgZnVsbCBjb250ZXh0IG9iamVjdCBpbiBtZW1vcnksIGp1c3QgZ3JhYiB3aGF0IHdlIG5lZWQuXG4gKi9cbmZ1bmN0aW9uIGNoaWxkQ29udGV4dChwYXRoLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgc2V0dGluZ3MsIHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcbiAgcmV0dXJuIHtcbiAgICBzZXR0aW5ncyxcbiAgICBwYXJzZXJPcHRpb25zLFxuICAgIHBhcnNlclBhdGgsXG4gICAgcGF0aCxcbiAgfVxufVxuXG5cbi8qKlxuICogc29tZXRpbWVzIGxlZ2FjeSBzdXBwb3J0IGlzbid0IF90aGF0XyBoYXJkLi4uIHJpZ2h0P1xuICovXG5mdW5jdGlvbiBtYWtlU291cmNlQ29kZSh0ZXh0LCBhc3QpIHtcbiAgaWYgKFNvdXJjZUNvZGUubGVuZ3RoID4gMSkge1xuICAgIC8vIEVTTGludCAzXG4gICAgcmV0dXJuIG5ldyBTb3VyY2VDb2RlKHRleHQsIGFzdClcbiAgfSBlbHNlIHtcbiAgICAvLyBFU0xpbnQgNCwgNVxuICAgIHJldHVybiBuZXcgU291cmNlQ29kZSh7IHRleHQsIGFzdCB9KVxuICB9XG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/core/importType.js b/node_modules/eslint-plugin-import/lib/core/importType.js
index 8321c5a..38d5200 100644
--- a/node_modules/eslint-plugin-import/lib/core/importType.js
+++ b/node_modules/eslint-plugin-import/lib/core/importType.js
@@ -1,150 +1,102 @@
-'use strict';
+'use strict';Object.defineProperty(exports, "__esModule", { value: true });var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();exports.
 
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
 
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
 
-exports.isAbsolute = isAbsolute;
-exports.isBuiltIn = isBuiltIn;
-exports.isExternalModule = isExternalModule;
-exports.isExternalModuleMain = isExternalModuleMain;
-exports.isScoped = isScoped;
-exports.isScopedMain = isScopedMain;
-exports.isScopedModule = isScopedModule;
-exports.default = resolveImportType;
 
-var _core = require('resolve/lib/core');
 
-var _core2 = _interopRequireDefault(_core);
 
-var _resolve = require('eslint-module-utils/resolve');
 
-var _resolve2 = _interopRequireDefault(_resolve);
 
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
-function baseModule(name) {
-  if (isScoped(name)) {
-    var _name$split = name.split('/'),
-        _name$split2 = _slicedToArray(_name$split, 2);
 
-    const scope = _name$split2[0],
-          pkg = _name$split2[1];
 
-    return `${scope}/${pkg}`;
-  }
 
-  var _name$split3 = name.split('/'),
-      _name$split4 = _slicedToArray(_name$split3, 1);
+isAbsolute = isAbsolute;exports.
 
-  const pkg = _name$split4[0];
 
-  return pkg;
+
+
+isBuiltIn = isBuiltIn;exports.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+isExternalModule = isExternalModule;exports.
+
+
+
+
+isExternalModuleMain = isExternalModuleMain;exports.
+
+
+
+
+isScoped = isScoped;exports.
+
+
+
+
+isScopedMain = isScopedMain;exports.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+isScopedModule = isScopedModule;exports.default =
+
+
+
+resolveImportType;var _core = require('resolve/lib/core');var _core2 = _interopRequireDefault(_core);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function baseModule(name) {if (isScoped(name)) {var _name$split = name.split('/'),_name$split2 = _slicedToArray(_name$split, 2);const scope = _name$split2[0],pkg = _name$split2[1];return `${scope}/${pkg}`;}var _name$split3 = name.split('/'),_name$split4 = _slicedToArray(_name$split3, 1);const pkg = _name$split4[0];return pkg;}function isAbsolute(name) {return name && name.startsWith('/');} // path is defined only when a resolver resolves to a non-standard path
+function isBuiltIn(name, settings, path) {if (path || !name) return false;const base = baseModule(name);const extras = settings && settings['import/core-modules'] || [];return _core2.default[base] || extras.indexOf(base) > -1;}function isExternalPath(path, name, settings) {const folders = settings && settings['import/external-module-folders'] || ['node_modules'];return !path || folders.some(folder => isSubpath(folder, path));}function isSubpath(subpath, path) {const normPath = path.replace(/\\/g, '/');const normSubpath = subpath.replace(/\\/g, '/').replace(/\/$/, '');if (normSubpath.length === 0) {return false;}const left = normPath.indexOf(normSubpath);const right = left + normSubpath.length;return left !== -1 && (left === 0 || normSubpath[0] !== '/' && normPath[left - 1] === '/') && (right >= normPath.length || normPath[right] === '/');}const externalModuleRegExp = /^\w/;function isExternalModule(name, settings, path) {return externalModuleRegExp.test(name) && isExternalPath(path, name, settings);}const externalModuleMainRegExp = /^[\w]((?!\/).)*$/;function isExternalModuleMain(name, settings, path) {return externalModuleMainRegExp.test(name) && isExternalPath(path, name, settings);}const scopedRegExp = /^@[^/]*\/?[^/]+/;function isScoped(name) {return name && scopedRegExp.test(name);}const scopedMainRegExp = /^@[^/]+\/?[^/]+$/;function isScopedMain(name) {return name && scopedMainRegExp.test(name);}function isInternalModule(name, settings, path) {const internalScope = settings && settings['import/internal-regex'];const matchesScopedOrExternalRegExp = scopedRegExp.test(name) || externalModuleRegExp.test(name);return matchesScopedOrExternalRegExp && (internalScope && new RegExp(internalScope).test(name) || !isExternalPath(path, name, settings));}function isRelativeToParent(name) {return (/^\.\.$|^\.\.[\\/]/.test(name));}const indexFiles = ['.', './', './index', './index.js'];function isIndex(name) {return indexFiles.indexOf(name) !== -1;}function isRelativeToSibling(name) {return (/^\.[\\/]/.test(name));}function typeTest(name, settings, path) {if (isAbsolute(name, settings, path)) {return 'absolute';}if (isBuiltIn(name, settings, path)) {return 'builtin';}if (isInternalModule(name, settings, path)) {return 'internal';}if (isExternalModule(name, settings, path)) {return 'external';}if (isScoped(name, settings, path)) {return 'external';}if (isRelativeToParent(name, settings, path)) {return 'parent';}if (isIndex(name, settings, path)) {return 'index';}if (isRelativeToSibling(name, settings, path)) {return 'sibling';}return 'unknown';}function isScopedModule(name) {return name.indexOf('@') === 0 && !name.startsWith('@/');}function resolveImportType(name, context) {return typeTest(name, context.settings, (0, _resolve2.default)(name, context));
 }
-
-function isAbsolute(name) {
-  return name.indexOf('/') === 0;
-}
-
-// path is defined only when a resolver resolves to a non-standard path
-function isBuiltIn(name, settings, path) {
-  if (path || !name) return false;
-  const base = baseModule(name);
-  const extras = settings && settings['import/core-modules'] || [];
-  return _core2.default[base] || extras.indexOf(base) > -1;
-}
-
-function isExternalPath(path, name, settings) {
-  const folders = settings && settings['import/external-module-folders'] || ['node_modules'];
-  return !path || folders.some(folder => isSubpath(folder, path));
-}
-
-function isSubpath(subpath, path) {
-  const normSubpath = subpath.replace(/[/]$/, '');
-  if (normSubpath.length === 0) {
-    return false;
-  }
-  const left = path.indexOf(normSubpath);
-  const right = left + normSubpath.length;
-  return left !== -1 && (left === 0 || normSubpath[0] !== '/' && path[left - 1] === '/') && (right >= path.length || path[right] === '/');
-}
-
-const externalModuleRegExp = /^\w/;
-function isExternalModule(name, settings, path) {
-  return externalModuleRegExp.test(name) && isExternalPath(path, name, settings);
-}
-
-const externalModuleMainRegExp = /^[\w]((?!\/).)*$/;
-function isExternalModuleMain(name, settings, path) {
-  return externalModuleMainRegExp.test(name) && isExternalPath(path, name, settings);
-}
-
-const scopedRegExp = /^@[^/]*\/?[^/]+/;
-function isScoped(name) {
-  return name && scopedRegExp.test(name);
-}
-
-const scopedMainRegExp = /^@[^/]+\/?[^/]+$/;
-function isScopedMain(name) {
-  return name && scopedMainRegExp.test(name);
-}
-
-function isInternalModule(name, settings, path) {
-  const internalScope = settings && settings['import/internal-regex'];
-  const matchesScopedOrExternalRegExp = scopedRegExp.test(name) || externalModuleRegExp.test(name);
-  return matchesScopedOrExternalRegExp && (internalScope && new RegExp(internalScope).test(name) || !isExternalPath(path, name, settings));
-}
-
-function isRelativeToParent(name) {
-  return (/^\.\.[\\/]/.test(name)
-  );
-}
-
-const indexFiles = ['.', './', './index', './index.js'];
-function isIndex(name) {
-  return indexFiles.indexOf(name) !== -1;
-}
-
-function isRelativeToSibling(name) {
-  return (/^\.[\\/]/.test(name)
-  );
-}
-
-function typeTest(name, settings, path) {
-  if (isAbsolute(name, settings, path)) {
-    return 'absolute';
-  }
-  if (isBuiltIn(name, settings, path)) {
-    return 'builtin';
-  }
-  if (isInternalModule(name, settings, path)) {
-    return 'internal';
-  }
-  if (isExternalModule(name, settings, path)) {
-    return 'external';
-  }
-  if (isScoped(name, settings, path)) {
-    return 'external';
-  }
-  if (isRelativeToParent(name, settings, path)) {
-    return 'parent';
-  }
-  if (isIndex(name, settings, path)) {
-    return 'index';
-  }
-  if (isRelativeToSibling(name, settings, path)) {
-    return 'sibling';
-  }
-  return 'unknown';
-}
-
-function isScopedModule(name) {
-  return name.indexOf('@') === 0;
-}
-
-function resolveImportType(name, context) {
-  return typeTest(name, context.settings, (0, _resolve2.default)(name, context));
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2ltcG9ydFR5cGUuanMiXSwibmFtZXMiOlsiaXNBYnNvbHV0ZSIsImlzQnVpbHRJbiIsImlzRXh0ZXJuYWxNb2R1bGUiLCJpc0V4dGVybmFsTW9kdWxlTWFpbiIsImlzU2NvcGVkIiwiaXNTY29wZWRNYWluIiwiaXNTY29wZWRNb2R1bGUiLCJyZXNvbHZlSW1wb3J0VHlwZSIsImJhc2VNb2R1bGUiLCJuYW1lIiwic3BsaXQiLCJzY29wZSIsInBrZyIsImluZGV4T2YiLCJzZXR0aW5ncyIsInBhdGgiLCJiYXNlIiwiZXh0cmFzIiwiY29yZU1vZHVsZXMiLCJpc0V4dGVybmFsUGF0aCIsImZvbGRlcnMiLCJzb21lIiwiZm9sZGVyIiwiaXNTdWJwYXRoIiwic3VicGF0aCIsIm5vcm1TdWJwYXRoIiwicmVwbGFjZSIsImxlbmd0aCIsImxlZnQiLCJyaWdodCIsImV4dGVybmFsTW9kdWxlUmVnRXhwIiwidGVzdCIsImV4dGVybmFsTW9kdWxlTWFpblJlZ0V4cCIsInNjb3BlZFJlZ0V4cCIsInNjb3BlZE1haW5SZWdFeHAiLCJpc0ludGVybmFsTW9kdWxlIiwiaW50ZXJuYWxTY29wZSIsIm1hdGNoZXNTY29wZWRPckV4dGVybmFsUmVnRXhwIiwiUmVnRXhwIiwiaXNSZWxhdGl2ZVRvUGFyZW50IiwiaW5kZXhGaWxlcyIsImlzSW5kZXgiLCJpc1JlbGF0aXZlVG9TaWJsaW5nIiwidHlwZVRlc3QiLCJjb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztRQWFnQkEsVSxHQUFBQSxVO1FBS0FDLFMsR0FBQUEsUztRQXlCQUMsZ0IsR0FBQUEsZ0I7UUFLQUMsb0IsR0FBQUEsb0I7UUFLQUMsUSxHQUFBQSxRO1FBS0FDLFksR0FBQUEsWTtRQW1DQUMsYyxHQUFBQSxjO2tCQUlRQyxpQjs7QUFqR3hCOzs7O0FBRUE7Ozs7OztBQUVBLFNBQVNDLFVBQVQsQ0FBb0JDLElBQXBCLEVBQTBCO0FBQ3hCLE1BQUlMLFNBQVNLLElBQVQsQ0FBSixFQUFvQjtBQUFBLHNCQUNHQSxLQUFLQyxLQUFMLENBQVcsR0FBWCxDQURIO0FBQUE7O0FBQUEsVUFDWEMsS0FEVztBQUFBLFVBQ0pDLEdBREk7O0FBRWxCLFdBQVEsR0FBRUQsS0FBTSxJQUFHQyxHQUFJLEVBQXZCO0FBQ0Q7O0FBSnVCLHFCQUtWSCxLQUFLQyxLQUFMLENBQVcsR0FBWCxDQUxVO0FBQUE7O0FBQUEsUUFLakJFLEdBTGlCOztBQU14QixTQUFPQSxHQUFQO0FBQ0Q7O0FBRU0sU0FBU1osVUFBVCxDQUFvQlMsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0EsS0FBS0ksT0FBTCxDQUFhLEdBQWIsTUFBc0IsQ0FBN0I7QUFDRDs7QUFFRDtBQUNPLFNBQVNaLFNBQVQsQ0FBbUJRLElBQW5CLEVBQXlCSyxRQUF6QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDOUMsTUFBSUEsUUFBUSxDQUFDTixJQUFiLEVBQW1CLE9BQU8sS0FBUDtBQUNuQixRQUFNTyxPQUFPUixXQUFXQyxJQUFYLENBQWI7QUFDQSxRQUFNUSxTQUFVSCxZQUFZQSxTQUFTLHFCQUFULENBQWIsSUFBaUQsRUFBaEU7QUFDQSxTQUFPSSxlQUFZRixJQUFaLEtBQXFCQyxPQUFPSixPQUFQLENBQWVHLElBQWYsSUFBdUIsQ0FBQyxDQUFwRDtBQUNEOztBQUVELFNBQVNHLGNBQVQsQ0FBd0JKLElBQXhCLEVBQThCTixJQUE5QixFQUFvQ0ssUUFBcEMsRUFBOEM7QUFDNUMsUUFBTU0sVUFBV04sWUFBWUEsU0FBUyxnQ0FBVCxDQUFiLElBQTRELENBQUMsY0FBRCxDQUE1RTtBQUNBLFNBQU8sQ0FBQ0MsSUFBRCxJQUFTSyxRQUFRQyxJQUFSLENBQWFDLFVBQVVDLFVBQVVELE1BQVYsRUFBa0JQLElBQWxCLENBQXZCLENBQWhCO0FBQ0Q7O0FBRUQsU0FBU1EsU0FBVCxDQUFtQkMsT0FBbkIsRUFBNEJULElBQTVCLEVBQWtDO0FBQ2hDLFFBQU1VLGNBQWNELFFBQVFFLE9BQVIsQ0FBZ0IsTUFBaEIsRUFBd0IsRUFBeEIsQ0FBcEI7QUFDQSxNQUFJRCxZQUFZRSxNQUFaLEtBQXVCLENBQTNCLEVBQThCO0FBQzVCLFdBQU8sS0FBUDtBQUNEO0FBQ0QsUUFBTUMsT0FBT2IsS0FBS0YsT0FBTCxDQUFhWSxXQUFiLENBQWI7QUFDQSxRQUFNSSxRQUFRRCxPQUFPSCxZQUFZRSxNQUFqQztBQUNBLFNBQU9DLFNBQVMsQ0FBQyxDQUFWLEtBQ0FBLFNBQVMsQ0FBVCxJQUFjSCxZQUFZLENBQVosTUFBbUIsR0FBbkIsSUFBMEJWLEtBQUthLE9BQU8sQ0FBWixNQUFtQixHQUQzRCxNQUVBQyxTQUFTZCxLQUFLWSxNQUFkLElBQXdCWixLQUFLYyxLQUFMLE1BQWdCLEdBRnhDLENBQVA7QUFHRDs7QUFFRCxNQUFNQyx1QkFBdUIsS0FBN0I7QUFDTyxTQUFTNUIsZ0JBQVQsQ0FBMEJPLElBQTFCLEVBQWdDSyxRQUFoQyxFQUEwQ0MsSUFBMUMsRUFBZ0Q7QUFDckQsU0FBT2UscUJBQXFCQyxJQUFyQixDQUEwQnRCLElBQTFCLEtBQW1DVSxlQUFlSixJQUFmLEVBQXFCTixJQUFyQixFQUEyQkssUUFBM0IsQ0FBMUM7QUFDRDs7QUFFRCxNQUFNa0IsMkJBQTJCLGtCQUFqQztBQUNPLFNBQVM3QixvQkFBVCxDQUE4Qk0sSUFBOUIsRUFBb0NLLFFBQXBDLEVBQThDQyxJQUE5QyxFQUFvRDtBQUN6RCxTQUFPaUIseUJBQXlCRCxJQUF6QixDQUE4QnRCLElBQTlCLEtBQXVDVSxlQUFlSixJQUFmLEVBQXFCTixJQUFyQixFQUEyQkssUUFBM0IsQ0FBOUM7QUFDRDs7QUFFRCxNQUFNbUIsZUFBZSxpQkFBckI7QUFDTyxTQUFTN0IsUUFBVCxDQUFrQkssSUFBbEIsRUFBd0I7QUFDN0IsU0FBT0EsUUFBUXdCLGFBQWFGLElBQWIsQ0FBa0J0QixJQUFsQixDQUFmO0FBQ0Q7O0FBRUQsTUFBTXlCLG1CQUFtQixrQkFBekI7QUFDTyxTQUFTN0IsWUFBVCxDQUFzQkksSUFBdEIsRUFBNEI7QUFDakMsU0FBT0EsUUFBUXlCLGlCQUFpQkgsSUFBakIsQ0FBc0J0QixJQUF0QixDQUFmO0FBQ0Q7O0FBRUQsU0FBUzBCLGdCQUFULENBQTBCMUIsSUFBMUIsRUFBZ0NLLFFBQWhDLEVBQTBDQyxJQUExQyxFQUFnRDtBQUM5QyxRQUFNcUIsZ0JBQWlCdEIsWUFBWUEsU0FBUyx1QkFBVCxDQUFuQztBQUNBLFFBQU11QixnQ0FBZ0NKLGFBQWFGLElBQWIsQ0FBa0J0QixJQUFsQixLQUEyQnFCLHFCQUFxQkMsSUFBckIsQ0FBMEJ0QixJQUExQixDQUFqRTtBQUNBLFNBQVE0QixrQ0FBa0NELGlCQUFpQixJQUFJRSxNQUFKLENBQVdGLGFBQVgsRUFBMEJMLElBQTFCLENBQStCdEIsSUFBL0IsQ0FBakIsSUFBeUQsQ0FBQ1UsZUFBZUosSUFBZixFQUFxQk4sSUFBckIsRUFBMkJLLFFBQTNCLENBQTVGLENBQVI7QUFDRDs7QUFFRCxTQUFTeUIsa0JBQVQsQ0FBNEI5QixJQUE1QixFQUFrQztBQUNoQyxTQUFPLGNBQWFzQixJQUFiLENBQWtCdEIsSUFBbEI7QUFBUDtBQUNEOztBQUVELE1BQU0rQixhQUFhLENBQUMsR0FBRCxFQUFNLElBQU4sRUFBWSxTQUFaLEVBQXVCLFlBQXZCLENBQW5CO0FBQ0EsU0FBU0MsT0FBVCxDQUFpQmhDLElBQWpCLEVBQXVCO0FBQ3JCLFNBQU8rQixXQUFXM0IsT0FBWCxDQUFtQkosSUFBbkIsTUFBNkIsQ0FBQyxDQUFyQztBQUNEOztBQUVELFNBQVNpQyxtQkFBVCxDQUE2QmpDLElBQTdCLEVBQW1DO0FBQ2pDLFNBQU8sWUFBV3NCLElBQVgsQ0FBZ0J0QixJQUFoQjtBQUFQO0FBQ0Q7O0FBRUQsU0FBU2tDLFFBQVQsQ0FBa0JsQyxJQUFsQixFQUF3QkssUUFBeEIsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3RDLE1BQUlmLFdBQVdTLElBQVgsRUFBaUJLLFFBQWpCLEVBQTJCQyxJQUEzQixDQUFKLEVBQXNDO0FBQUUsV0FBTyxVQUFQO0FBQW1CO0FBQzNELE1BQUlkLFVBQVVRLElBQVYsRUFBZ0JLLFFBQWhCLEVBQTBCQyxJQUExQixDQUFKLEVBQXFDO0FBQUUsV0FBTyxTQUFQO0FBQWtCO0FBQ3pELE1BQUlvQixpQkFBaUIxQixJQUFqQixFQUF1QkssUUFBdkIsRUFBaUNDLElBQWpDLENBQUosRUFBNEM7QUFBRSxXQUFPLFVBQVA7QUFBbUI7QUFDakUsTUFBSWIsaUJBQWlCTyxJQUFqQixFQUF1QkssUUFBdkIsRUFBaUNDLElBQWpDLENBQUosRUFBNEM7QUFBRSxXQUFPLFVBQVA7QUFBbUI7QUFDakUsTUFBSVgsU0FBU0ssSUFBVCxFQUFlSyxRQUFmLEVBQXlCQyxJQUF6QixDQUFKLEVBQW9DO0FBQUUsV0FBTyxVQUFQO0FBQW1CO0FBQ3pELE1BQUl3QixtQkFBbUI5QixJQUFuQixFQUF5QkssUUFBekIsRUFBbUNDLElBQW5DLENBQUosRUFBOEM7QUFBRSxXQUFPLFFBQVA7QUFBaUI7QUFDakUsTUFBSTBCLFFBQVFoQyxJQUFSLEVBQWNLLFFBQWQsRUFBd0JDLElBQXhCLENBQUosRUFBbUM7QUFBRSxXQUFPLE9BQVA7QUFBZ0I7QUFDckQsTUFBSTJCLG9CQUFvQmpDLElBQXBCLEVBQTBCSyxRQUExQixFQUFvQ0MsSUFBcEMsQ0FBSixFQUErQztBQUFFLFdBQU8sU0FBUDtBQUFrQjtBQUNuRSxTQUFPLFNBQVA7QUFDRDs7QUFFTSxTQUFTVCxjQUFULENBQXdCRyxJQUF4QixFQUE4QjtBQUNuQyxTQUFPQSxLQUFLSSxPQUFMLENBQWEsR0FBYixNQUFzQixDQUE3QjtBQUNEOztBQUVjLFNBQVNOLGlCQUFULENBQTJCRSxJQUEzQixFQUFpQ21DLE9BQWpDLEVBQTBDO0FBQ3ZELFNBQU9ELFNBQVNsQyxJQUFULEVBQWVtQyxRQUFROUIsUUFBdkIsRUFBaUMsdUJBQVFMLElBQVIsRUFBY21DLE9BQWQsQ0FBakMsQ0FBUDtBQUNEIiwiZmlsZSI6ImltcG9ydFR5cGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29yZU1vZHVsZXMgZnJvbSAncmVzb2x2ZS9saWIvY29yZSdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuXG5mdW5jdGlvbiBiYXNlTW9kdWxlKG5hbWUpIHtcbiAgaWYgKGlzU2NvcGVkKG5hbWUpKSB7XG4gICAgY29uc3QgW3Njb3BlLCBwa2ddID0gbmFtZS5zcGxpdCgnLycpXG4gICAgcmV0dXJuIGAke3Njb3BlfS8ke3BrZ31gXG4gIH1cbiAgY29uc3QgW3BrZ10gPSBuYW1lLnNwbGl0KCcvJylcbiAgcmV0dXJuIHBrZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShuYW1lKSB7XG4gIHJldHVybiBuYW1lLmluZGV4T2YoJy8nKSA9PT0gMFxufVxuXG4vLyBwYXRoIGlzIGRlZmluZWQgb25seSB3aGVuIGEgcmVzb2x2ZXIgcmVzb2x2ZXMgdG8gYSBub24tc3RhbmRhcmQgcGF0aFxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRJbihuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBpZiAocGF0aCB8fCAhbmFtZSkgcmV0dXJuIGZhbHNlXG4gIGNvbnN0IGJhc2UgPSBiYXNlTW9kdWxlKG5hbWUpXG4gIGNvbnN0IGV4dHJhcyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2NvcmUtbW9kdWxlcyddKSB8fCBbXVxuICByZXR1cm4gY29yZU1vZHVsZXNbYmFzZV0gfHwgZXh0cmFzLmluZGV4T2YoYmFzZSkgPiAtMVxufVxuXG5mdW5jdGlvbiBpc0V4dGVybmFsUGF0aChwYXRoLCBuYW1lLCBzZXR0aW5ncykge1xuICBjb25zdCBmb2xkZXJzID0gKHNldHRpbmdzICYmIHNldHRpbmdzWydpbXBvcnQvZXh0ZXJuYWwtbW9kdWxlLWZvbGRlcnMnXSkgfHwgWydub2RlX21vZHVsZXMnXVxuICByZXR1cm4gIXBhdGggfHwgZm9sZGVycy5zb21lKGZvbGRlciA9PiBpc1N1YnBhdGgoZm9sZGVyLCBwYXRoKSlcbn1cblxuZnVuY3Rpb24gaXNTdWJwYXRoKHN1YnBhdGgsIHBhdGgpIHtcbiAgY29uc3Qgbm9ybVN1YnBhdGggPSBzdWJwYXRoLnJlcGxhY2UoL1svXSQvLCAnJylcbiAgaWYgKG5vcm1TdWJwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGxlZnQgPSBwYXRoLmluZGV4T2Yobm9ybVN1YnBhdGgpXG4gIGNvbnN0IHJpZ2h0ID0gbGVmdCArIG5vcm1TdWJwYXRoLmxlbmd0aFxuICByZXR1cm4gbGVmdCAhPT0gLTEgJiZcbiAgICAgICAgKGxlZnQgPT09IDAgfHwgbm9ybVN1YnBhdGhbMF0gIT09ICcvJyAmJiBwYXRoW2xlZnQgLSAxXSA9PT0gJy8nKSAmJlxuICAgICAgICAocmlnaHQgPj0gcGF0aC5sZW5ndGggfHwgcGF0aFtyaWdodF0gPT09ICcvJylcbn1cblxuY29uc3QgZXh0ZXJuYWxNb2R1bGVSZWdFeHAgPSAvXlxcdy9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTW9kdWxlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIHJldHVybiBleHRlcm5hbE1vZHVsZVJlZ0V4cC50ZXN0KG5hbWUpICYmIGlzRXh0ZXJuYWxQYXRoKHBhdGgsIG5hbWUsIHNldHRpbmdzKVxufVxuXG5jb25zdCBleHRlcm5hbE1vZHVsZU1haW5SZWdFeHAgPSAvXltcXHddKCg/IVxcLykuKSokL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZXJuYWxNb2R1bGVNYWluKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIHJldHVybiBleHRlcm5hbE1vZHVsZU1haW5SZWdFeHAudGVzdChuYW1lKSAmJiBpc0V4dGVybmFsUGF0aChwYXRoLCBuYW1lLCBzZXR0aW5ncylcbn1cblxuY29uc3Qgc2NvcGVkUmVnRXhwID0gL15AW14vXSpcXC8/W14vXSsvXG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZWQobmFtZSkge1xuICByZXR1cm4gbmFtZSAmJiBzY29wZWRSZWdFeHAudGVzdChuYW1lKVxufVxuXG5jb25zdCBzY29wZWRNYWluUmVnRXhwID0gL15AW14vXStcXC8/W14vXSskL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVkTWFpbihuYW1lKSB7XG4gIHJldHVybiBuYW1lICYmIHNjb3BlZE1haW5SZWdFeHAudGVzdChuYW1lKVxufVxuXG5mdW5jdGlvbiBpc0ludGVybmFsTW9kdWxlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGNvbnN0IGludGVybmFsU2NvcGUgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3NbJ2ltcG9ydC9pbnRlcm5hbC1yZWdleCddKVxuICBjb25zdCBtYXRjaGVzU2NvcGVkT3JFeHRlcm5hbFJlZ0V4cCA9IHNjb3BlZFJlZ0V4cC50ZXN0KG5hbWUpIHx8IGV4dGVybmFsTW9kdWxlUmVnRXhwLnRlc3QobmFtZSlcbiAgcmV0dXJuIChtYXRjaGVzU2NvcGVkT3JFeHRlcm5hbFJlZ0V4cCAmJiAoaW50ZXJuYWxTY29wZSAmJiBuZXcgUmVnRXhwKGludGVybmFsU2NvcGUpLnRlc3QobmFtZSkgfHwgIWlzRXh0ZXJuYWxQYXRoKHBhdGgsIG5hbWUsIHNldHRpbmdzKSkpXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1BhcmVudChuYW1lKSB7XG4gIHJldHVybiAvXlxcLlxcLltcXFxcL10vLnRlc3QobmFtZSlcbn1cblxuY29uc3QgaW5kZXhGaWxlcyA9IFsnLicsICcuLycsICcuL2luZGV4JywgJy4vaW5kZXguanMnXVxuZnVuY3Rpb24gaXNJbmRleChuYW1lKSB7XG4gIHJldHVybiBpbmRleEZpbGVzLmluZGV4T2YobmFtZSkgIT09IC0xXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSkge1xuICByZXR1cm4gL15cXC5bXFxcXC9dLy50ZXN0KG5hbWUpXG59XG5cbmZ1bmN0aW9uIHR5cGVUZXN0KG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmIChpc0Fic29sdXRlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2Fic29sdXRlJyB9XG4gIGlmIChpc0J1aWx0SW4obmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnYnVpbHRpbicgfVxuICBpZiAoaXNJbnRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdpbnRlcm5hbCcgfVxuICBpZiAoaXNFeHRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdleHRlcm5hbCcgfVxuICBpZiAoaXNTY29wZWQobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnZXh0ZXJuYWwnIH1cbiAgaWYgKGlzUmVsYXRpdmVUb1BhcmVudChuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdwYXJlbnQnIH1cbiAgaWYgKGlzSW5kZXgobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnaW5kZXgnIH1cbiAgaWYgKGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnc2libGluZycgfVxuICByZXR1cm4gJ3Vua25vd24nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlZE1vZHVsZShuYW1lKSB7XG4gIHJldHVybiBuYW1lLmluZGV4T2YoJ0AnKSA9PT0gMFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlSW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KSB7XG4gIHJldHVybiB0eXBlVGVzdChuYW1lLCBjb250ZXh0LnNldHRpbmdzLCByZXNvbHZlKG5hbWUsIGNvbnRleHQpKVxufVxuIl19
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2ltcG9ydFR5cGUuanMiXSwibmFtZXMiOlsiaXNBYnNvbHV0ZSIsImlzQnVpbHRJbiIsImlzRXh0ZXJuYWxNb2R1bGUiLCJpc0V4dGVybmFsTW9kdWxlTWFpbiIsImlzU2NvcGVkIiwiaXNTY29wZWRNYWluIiwiaXNTY29wZWRNb2R1bGUiLCJyZXNvbHZlSW1wb3J0VHlwZSIsImJhc2VNb2R1bGUiLCJuYW1lIiwic3BsaXQiLCJzY29wZSIsInBrZyIsInN0YXJ0c1dpdGgiLCJzZXR0aW5ncyIsInBhdGgiLCJiYXNlIiwiZXh0cmFzIiwiY29yZU1vZHVsZXMiLCJpbmRleE9mIiwiaXNFeHRlcm5hbFBhdGgiLCJmb2xkZXJzIiwic29tZSIsImZvbGRlciIsImlzU3VicGF0aCIsInN1YnBhdGgiLCJub3JtUGF0aCIsInJlcGxhY2UiLCJub3JtU3VicGF0aCIsImxlbmd0aCIsImxlZnQiLCJyaWdodCIsImV4dGVybmFsTW9kdWxlUmVnRXhwIiwidGVzdCIsImV4dGVybmFsTW9kdWxlTWFpblJlZ0V4cCIsInNjb3BlZFJlZ0V4cCIsInNjb3BlZE1haW5SZWdFeHAiLCJpc0ludGVybmFsTW9kdWxlIiwiaW50ZXJuYWxTY29wZSIsIm1hdGNoZXNTY29wZWRPckV4dGVybmFsUmVnRXhwIiwiUmVnRXhwIiwiaXNSZWxhdGl2ZVRvUGFyZW50IiwiaW5kZXhGaWxlcyIsImlzSW5kZXgiLCJpc1JlbGF0aXZlVG9TaWJsaW5nIiwidHlwZVRlc3QiLCJjb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBYWdCQSxVLEdBQUFBLFU7Ozs7O0FBS0FDLFMsR0FBQUEsUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkFDLGdCLEdBQUFBLGdCOzs7OztBQUtBQyxvQixHQUFBQSxvQjs7Ozs7QUFLQUMsUSxHQUFBQSxROzs7OztBQUtBQyxZLEdBQUFBLFk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUNBQyxjLEdB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UUFBUWhDLFFBQXZCLEVBQWlDLHVCQUFRTCxJQUFSLEVBQWNxQyxPQUFkLENBQWpDLENBQVA7QUFDRCIsImZpbGUiOiJpbXBvcnRUeXBlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmVNb2R1bGVzIGZyb20gJ3Jlc29sdmUvbGliL2NvcmUnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcblxuZnVuY3Rpb24gYmFzZU1vZHVsZShuYW1lKSB7XG4gIGlmIChpc1Njb3BlZChuYW1lKSkge1xuICAgIGNvbnN0IFtzY29wZSwgcGtnXSA9IG5hbWUuc3BsaXQoJy8nKVxuICAgIHJldHVybiBgJHtzY29wZX0vJHtwa2d9YFxuICB9XG4gIGNvbnN0IFtwa2ddID0gbmFtZS5zcGxpdCgnLycpXG4gIHJldHVybiBwa2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzb2x1dGUobmFtZSkge1xuICByZXR1cm4gbmFtZSAmJiBuYW1lLnN0YXJ0c1dpdGgoJy8nKVxufVxuXG4vLyBwYXRoIGlzIGRlZmluZWQgb25seSB3aGVuIGEgcmVzb2x2ZXIgcmVzb2x2ZXMgdG8gYSBub24tc3RhbmRhcmQgcGF0aFxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRJbihuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBpZiAocGF0aCB8fCAhbmFtZSkgcmV0dXJuIGZhbHNlXG4gIGNvbnN0IGJhc2UgPSBiYXNlTW9kdWxlKG5hbWUpXG4gIGNvbnN0IGV4dHJhcyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2NvcmUtbW9kdWxlcyddKSB8fCBbXVxuICByZXR1cm4gY29yZU1vZHVsZXNbYmFzZV0gfHwgZXh0cmFzLmluZGV4T2YoYmFzZSkgPiAtMVxufVxuXG5mdW5jdGlvbiBpc0V4dGVybmFsUGF0aChwYXRoLCBuYW1lLCBzZXR0aW5ncykge1xuICBjb25zdCBmb2xkZXJzID0gKHNldHRpbmdzICYmIHNldHRpbmdzWydpbXBvcnQvZXh0ZXJuYWwtbW9kdWxlLWZvbGRlcnMnXSkgfHwgWydub2RlX21vZHVsZXMnXVxuICByZXR1cm4gIXBhdGggfHwgZm9sZGVycy5zb21lKGZvbGRlciA9PiBpc1N1YnBhdGgoZm9sZGVyLCBwYXRoKSlcbn1cblxuZnVuY3Rpb24gaXNTdWJwYXRoKHN1YnBhdGgsIHBhdGgpIHtcbiAgY29uc3Qgbm9ybVBhdGggPSBwYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICBjb25zdCBub3JtU3VicGF0aCA9IHN1YnBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpLnJlcGxhY2UoL1xcLyQvLCAnJylcbiAgaWYgKG5vcm1TdWJwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGxlZnQgPSBub3JtUGF0aC5pbmRleE9mKG5vcm1TdWJwYXRoKVxuICBjb25zdCByaWdodCA9IGxlZnQgKyBub3JtU3VicGF0aC5sZW5ndGhcbiAgcmV0dXJuIGxlZnQgIT09IC0xICYmXG4gICAgICAgIChsZWZ0ID09PSAwIHx8IG5vcm1TdWJwYXRoWzBdICE9PSAnLycgJiYgbm9ybVBhdGhbbGVmdCAtIDFdID09PSAnLycpICYmXG4gICAgICAgIChyaWdodCA+PSBub3JtUGF0aC5sZW5ndGggfHwgbm9ybVBhdGhbcmlnaHRdID09PSAnLycpXG59XG5cbmNvbnN0IGV4dGVybmFsTW9kdWxlUmVnRXhwID0gL15cXHcvXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICByZXR1cm4gZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKSAmJiBpc0V4dGVybmFsUGF0aChwYXRoLCBuYW1lLCBzZXR0aW5ncylcbn1cblxuY29uc3QgZXh0ZXJuYWxNb2R1bGVNYWluUmVnRXhwID0gL15bXFx3XSgoPyFcXC8pLikqJC9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTW9kdWxlTWFpbihuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICByZXR1cm4gZXh0ZXJuYWxNb2R1bGVNYWluUmVnRXhwLnRlc3QobmFtZSkgJiYgaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpXG59XG5cbmNvbnN0IHNjb3BlZFJlZ0V4cCA9IC9eQFteL10qXFwvP1teL10rL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVkKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUgJiYgc2NvcGVkUmVnRXhwLnRlc3QobmFtZSlcbn1cblxuY29uc3Qgc2NvcGVkTWFpblJlZ0V4cCA9IC9eQFteL10rXFwvP1teL10rJC9cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlZE1haW4obmFtZSkge1xuICByZXR1cm4gbmFtZSAmJiBzY29wZWRNYWluUmVnRXhwLnRlc3QobmFtZSlcbn1cblxuZnVuY3Rpb24gaXNJbnRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBjb25zdCBpbnRlcm5hbFNjb3BlID0gKHNldHRpbmdzICYmIHNldHRpbmdzWydpbXBvcnQvaW50ZXJuYWwtcmVnZXgnXSlcbiAgY29uc3QgbWF0Y2hlc1Njb3BlZE9yRXh0ZXJuYWxSZWdFeHAgPSBzY29wZWRSZWdFeHAudGVzdChuYW1lKSB8fCBleHRlcm5hbE1vZHVsZVJlZ0V4cC50ZXN0KG5hbWUpXG4gIHJldHVybiAobWF0Y2hlc1Njb3BlZE9yRXh0ZXJuYWxSZWdFeHAgJiYgKGludGVybmFsU2NvcGUgJiYgbmV3IFJlZ0V4cChpbnRlcm5hbFNjb3BlKS50ZXN0KG5hbWUpIHx8ICFpc0V4dGVybmFsUGF0aChwYXRoLCBuYW1lLCBzZXR0aW5ncykpKVxufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlVG9QYXJlbnQobmFtZSkge1xuICByZXR1cm4vXlxcLlxcLiR8XlxcLlxcLltcXFxcL10vLnRlc3QobmFtZSlcbn1cblxuY29uc3QgaW5kZXhGaWxlcyA9IFsnLicsICcuLycsICcuL2luZGV4JywgJy4vaW5kZXguanMnXVxuZnVuY3Rpb24gaXNJbmRleChuYW1lKSB7XG4gIHJldHVybiBpbmRleEZpbGVzLmluZGV4T2YobmFtZSkgIT09IC0xXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSkge1xuICByZXR1cm4gL15cXC5bXFxcXC9dLy50ZXN0KG5hbWUpXG59XG5cbmZ1bmN0aW9uIHR5cGVUZXN0KG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmIChpc0Fic29sdXRlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2Fic29sdXRlJyB9XG4gIGlmIChpc0J1aWx0SW4obmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnYnVpbHRpbicgfVxuICBpZiAoaXNJbnRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdpbnRlcm5hbCcgfVxuICBpZiAoaXNFeHRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdleHRlcm5hbCcgfVxuICBpZiAoaXNTY29wZWQobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnZXh0ZXJuYWwnIH1cbiAgaWYgKGlzUmVsYXRpdmVUb1BhcmVudChuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdwYXJlbnQnIH1cbiAgaWYgKGlzSW5kZXgobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnaW5kZXgnIH1cbiAgaWYgKGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnc2libGluZycgfVxuICByZXR1cm4gJ3Vua25vd24nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlZE1vZHVsZShuYW1lKSB7XG4gIHJldHVybiBuYW1lLmluZGV4T2YoJ0AnKSA9PT0gMCAmJiAhbmFtZS5zdGFydHNXaXRoKCdALycpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVJbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpIHtcbiAgcmV0dXJuIHR5cGVUZXN0KG5hbWUsIGNvbnRleHQuc2V0dGluZ3MsIHJlc29sdmUobmFtZSwgY29udGV4dCkpXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/core/staticRequire.js b/node_modules/eslint-plugin-import/lib/core/staticRequire.js
index 496fe7b..507dce5 100644
--- a/node_modules/eslint-plugin-import/lib/core/staticRequire.js
+++ b/node_modules/eslint-plugin-import/lib/core/staticRequire.js
@@ -1,11 +1,11 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = isStaticRequire;
-// todo: merge with module visitor
-function isStaticRequire(node) {
-  return node && node.callee && node.callee.type === 'Identifier' && node.callee.name === 'require' && node.arguments.length === 1 && node.arguments[0].type === 'Literal' && typeof node.arguments[0].value === 'string';
+'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =
+isStaticRequire; // todo: merge with module visitor
+function isStaticRequire(node) {return node &&
+  node.callee &&
+  node.callee.type === 'Identifier' &&
+  node.callee.name === 'require' &&
+  node.arguments.length === 1 &&
+  node.arguments[0].type === 'Literal' &&
+  typeof node.arguments[0].value === 'string';
 }
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0YXRpY1JlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNTdGF0aWNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQUN3QkEsZTtBQUR4QjtBQUNlLFNBQVNBLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQzVDLFNBQU9BLFFBQ0xBLEtBQUtDLE1BREEsSUFFTEQsS0FBS0MsTUFBTCxDQUFZQyxJQUFaLEtBQXFCLFlBRmhCLElBR0xGLEtBQUtDLE1BQUwsQ0FBWUUsSUFBWixLQUFxQixTQUhoQixJQUlMSCxLQUFLSSxTQUFMLENBQWVDLE1BQWYsS0FBMEIsQ0FKckIsSUFLTEwsS0FBS0ksU0FBTCxDQUFlLENBQWYsRUFBa0JGLElBQWxCLEtBQTJCLFNBTHRCLElBTUwsT0FBT0YsS0FBS0ksU0FBTCxDQUFlLENBQWYsRUFBa0JFLEtBQXpCLEtBQW1DLFFBTnJDO0FBT0QiLCJmaWxlIjoic3RhdGljUmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRvZG86IG1lcmdlIHdpdGggbW9kdWxlIHZpc2l0b3JcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU3RhdGljUmVxdWlyZShub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgbm9kZS5jYWxsZWUgJiZcbiAgICBub2RlLmNhbGxlZS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICBub2RlLmNhbGxlZS5uYW1lID09PSAncmVxdWlyZScgJiZcbiAgICBub2RlLmFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiZcbiAgICBub2RlLmFyZ3VtZW50c1swXS50eXBlID09PSAnTGl0ZXJhbCcgJiZcbiAgICB0eXBlb2Ygbm9kZS5hcmd1bWVudHNbMF0udmFsdWUgPT09ICdzdHJpbmcnXG59XG4iXX0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0YXRpY1JlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNTdGF0aWNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7QUFDd0JBLGUsRUFEeEI7QUFDZSxTQUFTQSxlQUFULENBQXlCQyxJQUF6QixFQUErQixDQUM1QyxPQUFPQTtBQUNMQSxPQUFLQyxNQURBO0FBRUxELE9BQUtDLE1BQUwsQ0FBWUMsSUFBWixLQUFxQixZQUZoQjtBQUdMRixPQUFLQyxNQUFMLENBQVlFLElBQVosS0FBcUIsU0FIaEI7QUFJTEgsT0FBS0ksU0FBTCxDQUFlQyxNQUFmLEtBQTBCLENBSnJCO0FBS0xMLE9BQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRixJQUFsQixLQUEyQixTQUx0QjtBQU1MLFNBQU9GLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRSxLQUF6QixLQUFtQyxRQU5yQztBQU9EIiwiZmlsZSI6InN0YXRpY1JlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0b2RvOiBtZXJnZSB3aXRoIG1vZHVsZSB2aXNpdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgbm9kZS5hcmd1bWVudHNbMF0udHlwZSA9PT0gJ0xpdGVyYWwnICYmXG4gICAgdHlwZW9mIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlID09PSAnc3RyaW5nJ1xufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/docsUrl.js b/node_modules/eslint-plugin-import/lib/docsUrl.js
index 8a94e8c..d8aae5f 100644
--- a/node_modules/eslint-plugin-import/lib/docsUrl.js
+++ b/node_modules/eslint-plugin-import/lib/docsUrl.js
@@ -1,21 +1,8 @@
-'use strict';
+'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =
 
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = docsUrl;
 
-var _package = require('../package.json');
 
-var _package2 = _interopRequireDefault(_package);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const repoUrl = 'https://github.com/benmosher/eslint-plugin-import';
-
-function docsUrl(ruleName) {
-  let commitish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : `v${_package2.default.version}`;
-
+docsUrl;var _package = require('../package.json');var _package2 = _interopRequireDefault(_package);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const repoUrl = 'https://github.com/benmosher/eslint-plugin-import';function docsUrl(ruleName) {let commitish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : `v${_package2.default.version}`;
   return `${repoUrl}/blob/${commitish}/docs/rules/${ruleName}.md`;
 }
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NzVXJsLmpzIl0sIm5hbWVzIjpbImRvY3NVcmwiLCJyZXBvVXJsIiwicnVsZU5hbWUiLCJjb21taXRpc2giLCJwa2ciLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFJd0JBLE87O0FBSnhCOzs7Ozs7QUFFQSxNQUFNQyxVQUFVLG1EQUFoQjs7QUFFZSxTQUFTRCxPQUFULENBQWlCRSxRQUFqQixFQUEwRDtBQUFBLE1BQS9CQyxTQUErQix1RUFBbEIsSUFBR0Msa0JBQUlDLE9BQVEsRUFBRzs7QUFDdkUsU0FBUSxHQUFFSixPQUFRLFNBQVFFLFNBQVUsZUFBY0QsUUFBUyxLQUEzRDtBQUNEIiwiZmlsZSI6ImRvY3NVcmwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGtnIGZyb20gJy4uL3BhY2thZ2UuanNvbidcblxuY29uc3QgcmVwb1VybCA9ICdodHRwczovL2dpdGh1Yi5jb20vYmVubW9zaGVyL2VzbGludC1wbHVnaW4taW1wb3J0J1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkb2NzVXJsKHJ1bGVOYW1lLCBjb21taXRpc2ggPSBgdiR7cGtnLnZlcnNpb259YCkge1xuICByZXR1cm4gYCR7cmVwb1VybH0vYmxvYi8ke2NvbW1pdGlzaH0vZG9jcy9ydWxlcy8ke3J1bGVOYW1lfS5tZGBcbn1cbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NzVXJsLmpzIl0sIm5hbWVzIjpbImRvY3NVcmwiLCJyZXBvVXJsIiwicnVsZU5hbWUiLCJjb21taXRpc2giLCJwa2ciLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBSXdCQSxPLENBSnhCLDBDLDhJQUVBLE1BQU1DLFVBQVUsbURBQWhCLENBRWUsU0FBU0QsT0FBVCxDQUFpQkUsUUFBakIsRUFBMEQsS0FBL0JDLFNBQStCLHVFQUFsQixJQUFHQyxrQkFBSUMsT0FBUSxFQUFHO0FBQ3ZFLFNBQVEsR0FBRUosT0FBUSxTQUFRRSxTQUFVLGVBQWNELFFBQVMsS0FBM0Q7QUFDRCIsImZpbGUiOiJkb2NzVXJsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBrZyBmcm9tICcuLi9wYWNrYWdlLmpzb24nXG5cbmNvbnN0IHJlcG9VcmwgPSAnaHR0cHM6Ly9naXRodWIuY29tL2Jlbm1vc2hlci9lc2xpbnQtcGx1Z2luLWltcG9ydCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jc1VybChydWxlTmFtZSwgY29tbWl0aXNoID0gYHYke3BrZy52ZXJzaW9ufWApIHtcbiAgcmV0dXJuIGAke3JlcG9Vcmx9L2Jsb2IvJHtjb21taXRpc2h9L2RvY3MvcnVsZXMvJHtydWxlTmFtZX0ubWRgXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/importDeclaration.js b/node_modules/eslint-plugin-import/lib/importDeclaration.js
index 8c64ac3..eefe50c 100644
--- a/node_modules/eslint-plugin-import/lib/importDeclaration.js
+++ b/node_modules/eslint-plugin-import/lib/importDeclaration.js
@@ -1,11 +1,5 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = importDeclaration;
-function importDeclaration(context) {
+"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = importDeclaration;function importDeclaration(context) {
   var ancestors = context.getAncestors();
   return ancestors[ancestors.length - 1];
 }
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbXBvcnREZWNsYXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpbXBvcnREZWNsYXJhdGlvbiIsImNvbnRleHQiLCJhbmNlc3RvcnMiLCJnZXRBbmNlc3RvcnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQUF3QkEsaUI7QUFBVCxTQUFTQSxpQkFBVCxDQUEyQkMsT0FBM0IsRUFBb0M7QUFDakQsTUFBSUMsWUFBWUQsUUFBUUUsWUFBUixFQUFoQjtBQUNBLFNBQU9ELFVBQVVBLFVBQVVFLE1BQVYsR0FBbUIsQ0FBN0IsQ0FBUDtBQUNEIiwiZmlsZSI6ImltcG9ydERlY2xhcmF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dCkge1xuICB2YXIgYW5jZXN0b3JzID0gY29udGV4dC5nZXRBbmNlc3RvcnMoKVxuICByZXR1cm4gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAxXVxufVxuIl19
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbXBvcnREZWNsYXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpbXBvcnREZWNsYXJhdGlvbiIsImNvbnRleHQiLCJhbmNlc3RvcnMiLCJnZXRBbmNlc3RvcnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI2RkFBd0JBLGlCLENBQVQsU0FBU0EsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQW9DO0FBQ2pELE1BQUlDLFlBQVlELFFBQVFFLFlBQVIsRUFBaEI7QUFDQSxTQUFPRCxVQUFVQSxVQUFVRSxNQUFWLEdBQW1CLENBQTdCLENBQVA7QUFDRCIsImZpbGUiOiJpbXBvcnREZWNsYXJhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpIHtcbiAgdmFyIGFuY2VzdG9ycyA9IGNvbnRleHQuZ2V0QW5jZXN0b3JzKClcbiAgcmV0dXJuIGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV1cbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/index.js b/node_modules/eslint-plugin-import/lib/index.js
index 4981497..6497f69 100644
--- a/node_modules/eslint-plugin-import/lib/index.js
+++ b/node_modules/eslint-plugin-import/lib/index.js
@@ -1,9 +1,4 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-const rules = exports.rules = {
+'use strict';Object.defineProperty(exports, "__esModule", { value: true });const rules = exports.rules = {
   'no-unresolved': require('./rules/no-unresolved'),
   'named': require('./rules/named'),
   'default': require('./rules/default'),
@@ -52,8 +47,8 @@
   'no-deprecated': require('./rules/no-deprecated'),
 
   // deprecated aliases to rules
-  'imports-first': require('./rules/imports-first')
-};
+  'imports-first': require('./rules/imports-first') };
+
 
 const configs = exports.configs = {
   'recommended': require('../config/recommended'),
@@ -68,6 +63,5 @@
   'react': require('../config/react'),
   'react-native': require('../config/react-native'),
   'electron': require('../config/electron'),
-  'typescript': require('../config/typescript')
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJydWxlcyIsInJlcXVpcmUiLCJjb25maWdzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFPLE1BQU1BLHdCQUFRO0FBQ25CLG1CQUFpQkMsUUFBUSx1QkFBUixDQURFO0FBRW5CLFdBQVNBLFFBQVEsZUFBUixDQUZVO0FBR25CLGFBQVdBLFFBQVEsaUJBQVIsQ0FIUTtBQUluQixlQUFhQSxRQUFRLG1CQUFSLENBSk07QUFLbkIsa0JBQWdCQSxRQUFRLHNCQUFSLENBTEc7QUFNbkIsWUFBVUEsUUFBUSxnQkFBUixDQU5TO0FBT25CLHdCQUFzQkEsUUFBUSw0QkFBUixDQVBIO0FBUW5CLGdCQUFjQSxRQUFRLG9CQUFSLENBUks7QUFTbkIseUJBQXVCQSxRQUFRLDZCQUFSLENBVEo7QUFVbkIseUJBQXVCQSxRQUFRLDZCQUFSLENBVko7QUFXbkIsbUJBQWlCQSxRQUFRLHVCQUFSLENBWEU7QUFZbkIsZ0NBQThCQSxRQUFRLG9DQUFSLENBWlg7O0FBY25CLG9CQUFrQkEsUUFBUSx3QkFBUixDQWRDO0FBZW5CLGNBQVlBLFFBQVEsa0JBQVIsQ0FmTztBQWdCbkIsc0JBQW9CQSxRQUFRLDBCQUFSLENBaEJEO0FBaUJuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FqQko7QUFrQm5CLGdDQUE4QkEsUUFBUSxvQ0FBUixDQWxCWDtBQW1CbkIsaUNBQStCQSxRQUFRLHFDQUFSLENBbkJaO0FBb0JuQix1QkFBcUJBLFFBQVEsMkJBQVIsQ0FwQkY7O0FBc0JuQixpQkFBZUEsUUFBUSxxQkFBUixDQXRCSTtBQXVCbkIsWUFBVUEsUUFBUSxnQkFBUixDQXZCUztBQXdCbkIsbUJBQWlCQSxRQUFRLHVCQUFSLENBeEJFO0FBeUJuQixXQUFTQSxRQUFRLGVBQVIsQ0F6QlU7QUEwQm5CLHNCQUFvQkEsUUFBUSwwQkFBUixDQTFCRDtBQTJCbkIsZ0NBQThCQSxRQUFRLG9DQUFSLENBM0JYO0FBNEJuQixzQkFBb0JBLFFBQVEsMEJBQVIsQ0E1QkQ7QUE2Qm5CLHVCQUFxQkEsUUFBUSwyQkFBUixDQTdCRjtBQThCbkIsOEJBQTRCQSxRQUFRLGtDQUFSLENBOUJUO0FBK0JuQixXQUFTQSxRQUFRLGVBQVIsQ0EvQlU7QUFnQ25CLDBCQUF3QkEsUUFBUSw4QkFBUixDQWhDTDtBQWlDbkIsMkJBQXlCQSxRQUFRLCtCQUFSLENBakNOO0FBa0NuQix1QkFBcUJBLFFBQVEsMkJBQVIsQ0FsQ0Y7QUFtQ25CLHFCQUFtQkEsUUFBUSx5QkFBUixDQW5DQTtBQW9DbkIsd0JBQXNCQSxRQUFRLDRCQUFSLENBcENIO0FBcUNuQixpQkFBZUEsUUFBUSxxQkFBUixDQXJDSTtBQXNDbkIsMEJBQXdCQSxRQUFRLDhCQUFSLENBdENMO0FBdUNuQiw4QkFBNEJBLFFBQVEsa0NBQVIsQ0F2Q1Q7QUF3Q25CLDhCQUE0QkEsUUFBUSxrQ0FBUixDQXhDVDs7QUEwQ25CO0FBQ0Esa0JBQWdCQSxRQUFRLHNCQUFSLENBM0NHOztBQTZDbkI7QUFDQSxtQkFBaUJBLFFBQVEsdUJBQVIsQ0E5Q0U7O0FBZ0RuQjtBQUNBLG1CQUFpQkEsUUFBUSx1QkFBUjtBQWpERSxDQUFkOztBQW9EQSxNQUFNQyw0QkFBVTtBQUNyQixpQkFBZUQsUUFBUSx1QkFBUixDQURNOztBQUdyQixZQUFVQSxRQUFRLGtCQUFSLENBSFc7QUFJckIsY0FBWUEsUUFBUSxvQkFBUixDQUpTOztBQU1yQjtBQUNBLGFBQVdBLFFBQVEsbUJBQVIsQ0FQVTs7QUFTckI7QUFDQSxXQUFTQSxRQUFRLGlCQUFSLENBVlk7QUFXckIsa0JBQWdCQSxRQUFRLHdCQUFSLENBWEs7QUFZckIsY0FBWUEsUUFBUSxvQkFBUixDQVpTO0FBYXJCLGdCQUFjQSxRQUFRLHNCQUFSO0FBYk8sQ0FBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICduby1pbnRlcm5hbC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzJyksXG4gICdncm91cC1leHBvcnRzJzogcmVxdWlyZSgnLi9ydWxlcy9ncm91cC1leHBvcnRzJyksXG4gICduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMnKSxcblxuICAnbm8tc2VsZi1pbXBvcnQnOiByZXF1aXJlKCcuL3J1bGVzL25vLXNlbGYtaW1wb3J0JyksXG4gICduby1jeWNsZSc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY3ljbGUnKSxcbiAgJ25vLW5hbWVkLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuICAnbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLXVudXNlZC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnVzZWQtbW9kdWxlcycpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdmaXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvZmlyc3QnKSxcbiAgJ21heC1kZXBlbmRlbmNpZXMnOiByZXF1aXJlKCcuL3J1bGVzL21heC1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAnbm8tYWJzb2x1dGUtcGF0aCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYWJzb2x1dGUtcGF0aCcpLFxuICAnbm8tbm9kZWpzLW1vZHVsZXMnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5vZGVqcy1tb2R1bGVzJyksXG4gICduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiByZXF1aXJlKCcuL3J1bGVzL25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICduby1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLW5hbWVkLWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbmFtZWQtZXhwb3J0JyksXG4gICduby1keW5hbWljLXJlcXVpcmUnOiByZXF1aXJlKCcuL3J1bGVzL25vLWR5bmFtaWMtcmVxdWlyZScpLFxuICAndW5hbWJpZ3VvdXMnOiByZXF1aXJlKCcuL3J1bGVzL3VuYW1iaWd1b3VzJyksXG4gICduby11bmFzc2lnbmVkLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJyksXG4gICdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnOiByZXF1aXJlKCcuL3J1bGVzL2R5bmFtaWMtaW1wb3J0LWNodW5rbmFtZScpLFxuXG4gIC8vIGV4cG9ydFxuICAnZXhwb3J0cy1sYXN0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnRzLWxhc3QnKSxcblxuICAvLyBtZXRhZGF0YS1iYXNlZFxuICAnbm8tZGVwcmVjYXRlZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVwcmVjYXRlZCcpLFxuXG4gIC8vIGRlcHJlY2F0ZWQgYWxpYXNlcyB0byBydWxlc1xuICAnaW1wb3J0cy1maXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvaW1wb3J0cy1maXJzdCcpLFxufVxuXG5leHBvcnQgY29uc3QgY29uZmlncyA9IHtcbiAgJ3JlY29tbWVuZGVkJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlY29tbWVuZGVkJyksXG5cbiAgJ2Vycm9ycyc6IHJlcXVpcmUoJy4uL2NvbmZpZy9lcnJvcnMnKSxcbiAgJ3dhcm5pbmdzJzogcmVxdWlyZSgnLi4vY29uZmlnL3dhcm5pbmdzJyksXG5cbiAgLy8gc2hoaGguLi4gd29yayBpbiBwcm9ncmVzcyBcInNlY3JldFwiIHJ1bGVzXG4gICdzdGFnZS0wJzogcmVxdWlyZSgnLi4vY29uZmlnL3N0YWdlLTAnKSxcblxuICAvLyB1c2VmdWwgc3R1ZmYgZm9yIGZvbGtzIHVzaW5nIHZhcmlvdXMgZW52aXJvbm1lbnRzXG4gICdyZWFjdCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdCcpLFxuICAncmVhY3QtbmF0aXZlJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlYWN0LW5hdGl2ZScpLFxuICAnZWxlY3Ryb24nOiByZXF1aXJlKCcuLi9jb25maWcvZWxlY3Ryb24nKSxcbiAgJ3R5cGVzY3JpcHQnOiByZXF1aXJlKCcuLi9jb25maWcvdHlwZXNjcmlwdCcpLFxufVxuIl19
\ No newline at end of file
+  'typescript': require('../config/typescript') };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJydWxlcyIsInJlcXVpcmUiLCJjb25maWdzIl0sIm1hcHBpbmdzIjoiMkVBQU8sTUFBTUEsd0JBQVE7QUFDbkIsbUJBQWlCQyxRQUFRLHVCQUFSLENBREU7QUFFbkIsV0FBU0EsUUFBUSxlQUFSLENBRlU7QUFHbkIsYUFBV0EsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWFBLFFBQVEsbUJBQVIsQ0FKTTtBQUtuQixrQkFBZ0JBLFFBQVEsc0JBQVIsQ0FMRztBQU1uQixZQUFVQSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCQSxRQUFRLDRCQUFSLENBUEg7QUFRbkIsZ0JBQWNBLFFBQVEsb0JBQVIsQ0FSSztBQVNuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FUSjtBQVVuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FWSjtBQVduQixtQkFBaUJBLFFBQVEsdUJBQVIsQ0FYRTtBQVluQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0FaWDs7QUFjbkIsb0JBQWtCQSxRQUFRLHdCQUFSLENBZEM7QUFlbkIsY0FBWUEsUUFBUSxrQkFBUixDQWZPO0FBZ0JuQixzQkFBb0JBLFFBQVEsMEJBQVIsQ0FoQkQ7QUFpQm5CLHlCQUF1QkEsUUFBUSw2QkFBUixDQWpCSjtBQWtCbkIsZ0NBQThCQSxRQUFRLG9DQUFSLENBbEJYO0FBbUJuQixpQ0FBK0JBLFFBQVEscUNBQVIsQ0FuQlo7QUFvQm5CLHVCQUFxQkEsUUFBUSwyQkFBUixDQXBCRjs7QUFzQm5CLGlCQUFlQSxRQUFRLHFCQUFSLENBdEJJO0FBdUJuQixZQUFVQSxRQUFRLGdCQUFSLENBdkJTO0FBd0JuQixtQkFBaUJBLFFBQVEsdUJBQVIsQ0F4QkU7QUF5Qm5CLFdBQVNBLFFBQVEsZUFBUixDQXpCVTtBQTBCbkIsc0JBQW9CQSxRQUFRLDBCQUFSLENBMUJEO0FBMkJuQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0EzQlg7QUE0Qm5CLHNCQUFvQkEsUUFBUSwwQkFBUixDQTVCRDtBQTZCbkIsdUJBQXFCQSxRQUFRLDJCQUFSLENBN0JGO0FBOEJuQiw4QkFBNEJBLFFBQVEsa0NBQVIsQ0E5QlQ7QUErQm5CLFdBQVNBLFFBQVEsZUFBUixDQS9CVTtBQWdDbkIsMEJBQXdCQSxRQUFRLDhCQUFSLENBaENMO0FBaUNuQiwyQkFBeUJBLFFBQVEsK0JBQVIsQ0FqQ047QUFrQ25CLHVCQUFxQkEsUUFBUSwyQkFBUixDQWxDRjtBQW1DbkIscUJBQW1CQSxRQUFRLHlCQUFSLENBbkNBO0FBb0NuQix3QkFBc0JBLFFBQVEsNEJBQVIsQ0FwQ0g7QUFxQ25CLGlCQUFlQSxRQUFRLHFCQUFSLENBckNJO0FBc0NuQiwwQkFBd0JBLFFBQVEsOEJBQVIsQ0F0Q0w7QUF1Q25CLDhCQUE0QkEsUUFBUSxrQ0FBUixDQXZDVDtBQXdDbkIsOEJBQTRCQSxRQUFRLGtDQUFSLENBeENUOztBQTBDbkI7QUFDQSxrQkFBZ0JBLFFBQVEsc0JBQVIsQ0EzQ0c7O0FBNkNuQjtBQUNBLG1CQUFpQkEsUUFBUSx1QkFBUixDQTlDRTs7QUFnRG5CO0FBQ0EsbUJBQWlCQSxRQUFRLHVCQUFSLENBakRFLEVBQWQ7OztBQW9EQSxNQUFNQyw0QkFBVTtBQUNyQixpQkFBZUQsUUFBUSx1QkFBUixDQURNOztBQUdyQixZQUFVQSxRQUFRLGtCQUFSLENBSFc7QUFJckIsY0FBWUEsUUFBUSxvQkFBUixDQUpTOztBQU1yQjtBQUNBLGFBQVdBLFFBQVEsbUJBQVIsQ0FQVTs7QUFTckI7QUFDQSxXQUFTQSxRQUFRLGlCQUFSLENBVlk7QUFXckIsa0JBQWdCQSxRQUFRLHdCQUFSLENBWEs7QUFZckIsY0FBWUEsUUFBUSxvQkFBUixDQVpTO0FBYXJCLGdCQUFjQSxRQUFRLHNCQUFSLENBYk8sRUFBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICduby1pbnRlcm5hbC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzJyksXG4gICdncm91cC1leHBvcnRzJzogcmVxdWlyZSgnLi9ydWxlcy9ncm91cC1leHBvcnRzJyksXG4gICduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMnKSxcblxuICAnbm8tc2VsZi1pbXBvcnQnOiByZXF1aXJlKCcuL3J1bGVzL25vLXNlbGYtaW1wb3J0JyksXG4gICduby1jeWNsZSc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY3ljbGUnKSxcbiAgJ25vLW5hbWVkLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuICAnbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLXVudXNlZC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnVzZWQtbW9kdWxlcycpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdmaXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvZmlyc3QnKSxcbiAgJ21heC1kZXBlbmRlbmNpZXMnOiByZXF1aXJlKCcuL3J1bGVzL21heC1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAnbm8tYWJzb2x1dGUtcGF0aCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYWJzb2x1dGUtcGF0aCcpLFxuICAnbm8tbm9kZWpzLW1vZHVsZXMnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5vZGVqcy1tb2R1bGVzJyksXG4gICduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiByZXF1aXJlKCcuL3J1bGVzL25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICduby1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLW5hbWVkLWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbmFtZWQtZXhwb3J0JyksXG4gICduby1keW5hbWljLXJlcXVpcmUnOiByZXF1aXJlKCcuL3J1bGVzL25vLWR5bmFtaWMtcmVxdWlyZScpLFxuICAndW5hbWJpZ3VvdXMnOiByZXF1aXJlKCcuL3J1bGVzL3VuYW1iaWd1b3VzJyksXG4gICduby11bmFzc2lnbmVkLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJyksXG4gICdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnOiByZXF1aXJlKCcuL3J1bGVzL2R5bmFtaWMtaW1wb3J0LWNodW5rbmFtZScpLFxuXG4gIC8vIGV4cG9ydFxuICAnZXhwb3J0cy1sYXN0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnRzLWxhc3QnKSxcblxuICAvLyBtZXRhZGF0YS1iYXNlZFxuICAnbm8tZGVwcmVjYXRlZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVwcmVjYXRlZCcpLFxuXG4gIC8vIGRlcHJlY2F0ZWQgYWxpYXNlcyB0byBydWxlc1xuICAnaW1wb3J0cy1maXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvaW1wb3J0cy1maXJzdCcpLFxufVxuXG5leHBvcnQgY29uc3QgY29uZmlncyA9IHtcbiAgJ3JlY29tbWVuZGVkJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlY29tbWVuZGVkJyksXG5cbiAgJ2Vycm9ycyc6IHJlcXVpcmUoJy4uL2NvbmZpZy9lcnJvcnMnKSxcbiAgJ3dhcm5pbmdzJzogcmVxdWlyZSgnLi4vY29uZmlnL3dhcm5pbmdzJyksXG5cbiAgLy8gc2hoaGguLi4gd29yayBpbiBwcm9ncmVzcyBcInNlY3JldFwiIHJ1bGVzXG4gICdzdGFnZS0wJzogcmVxdWlyZSgnLi4vY29uZmlnL3N0YWdlLTAnKSxcblxuICAvLyB1c2VmdWwgc3R1ZmYgZm9yIGZvbGtzIHVzaW5nIHZhcmlvdXMgZW52aXJvbm1lbnRzXG4gICdyZWFjdCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdCcpLFxuICAncmVhY3QtbmF0aXZlJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlYWN0LW5hdGl2ZScpLFxuICAnZWxlY3Ryb24nOiByZXF1aXJlKCcuLi9jb25maWcvZWxlY3Ryb24nKSxcbiAgJ3R5cGVzY3JpcHQnOiByZXF1aXJlKCcuLi9jb25maWcvdHlwZXNjcmlwdCcpLFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/default.js b/node_modules/eslint-plugin-import/lib/rules/default.js
index 2e69fce..933538a 100644
--- a/node_modules/eslint-plugin-import/lib/rules/default.js
+++ b/node_modules/eslint-plugin-import/lib/rules/default.js
@@ -1,29 +1,22 @@
-'use strict';
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('default')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('default') },
+
+    schema: [] },
+
 
   create: function (context) {
 
     function checkDefault(specifierType, node) {
 
-      const defaultSpecifier = node.specifiers.find(specifier => specifier.type === specifierType);
+      const defaultSpecifier = node.specifiers.find(
+      specifier => specifier.type === specifierType);
+
 
       if (!defaultSpecifier) return;
       var imports = _ExportMap2.default.get(node.source.value, context);
@@ -34,15 +27,14 @@
       } else if (imports.get('default') === undefined) {
         context.report({
           node: defaultSpecifier,
-          message: `No default export found in imported module "${node.source.value}".`
-        });
+          message: `No default export found in imported module "${node.source.value}".` });
+
       }
     }
 
     return {
       'ImportDeclaration': checkDefault.bind(null, 'ImportDefaultSpecifier'),
-      'ExportNamedDeclaration': checkDefault.bind(null, 'ExportDefaultSpecifier')
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0Iiwic3BlY2lmaWVyVHlwZSIsIm5vZGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImZpbmQiLCJzcGVjaWZpZXIiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwidW5kZWZpbmVkIiwicmVwb3J0IiwibWVzc2FnZSIsImJpbmQiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFNBQVI7QUFERCxLQUZGO0FBS0pDLFlBQVE7QUFMSixHQURTOztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7O0FBRXpCLGFBQVNDLFlBQVQsQ0FBc0JDLGFBQXRCLEVBQXFDQyxJQUFyQyxFQUEyQzs7QUFFekMsWUFBTUMsbUJBQW1CRCxLQUFLRSxVQUFMLENBQWdCQyxJQUFoQixDQUN2QkMsYUFBYUEsVUFBVVosSUFBVixLQUFtQk8sYUFEVCxDQUF6Qjs7QUFJQSxVQUFJLENBQUNFLGdCQUFMLEVBQXVCO0FBQ3ZCLFVBQUlJLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlQLEtBQUtRLE1BQUwsQ0FBWUMsS0FBeEIsRUFBK0JaLE9BQS9CLENBQWQ7QUFDQSxVQUFJUSxXQUFXLElBQWYsRUFBcUI7O0FBRXJCLFVBQUlBLFFBQVFLLE1BQVIsQ0FBZUMsTUFBbkIsRUFBMkI7QUFDekJOLGdCQUFRTyxZQUFSLENBQXFCZixPQUFyQixFQUE4QkcsSUFBOUI7QUFDRCxPQUZELE1BRU8sSUFBSUssUUFBUUUsR0FBUixDQUFZLFNBQVosTUFBMkJNLFNBQS9CLEVBQTBDO0FBQy9DaEIsZ0JBQVFpQixNQUFSLENBQWU7QUFDYmQsZ0JBQU1DLGdCQURPO0FBRWJjLG1CQUFVLCtDQUE4Q2YsS0FBS1EsTUFBTCxDQUFZQyxLQUFNO0FBRjdELFNBQWY7QUFJRDtBQUNGOztBQUVELFdBQU87QUFDTCwyQkFBcUJYLGFBQWFrQixJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQURoQjtBQUVMLGdDQUEwQmxCLGFBQWFrQixJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QjtBQUZyQixLQUFQO0FBSUQ7QUFuQ2MsQ0FBakIiLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlZmF1bHQoc3BlY2lmaWVyVHlwZSwgbm9kZSkge1xuXG4gICAgICBjb25zdCBkZWZhdWx0U3BlY2lmaWVyID0gbm9kZS5zcGVjaWZpZXJzLmZpbmQoXG4gICAgICAgIHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gc3BlY2lmaWVyVHlwZVxuICAgICAgKVxuXG4gICAgICBpZiAoIWRlZmF1bHRTcGVjaWZpZXIpIHJldHVyblxuICAgICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICB9IGVsc2UgaWYgKGltcG9ydHMuZ2V0KCdkZWZhdWx0JykgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgICBtZXNzYWdlOiBgTm8gZGVmYXVsdCBleHBvcnQgZm91bmQgaW4gaW1wb3J0ZWQgbW9kdWxlIFwiJHtub2RlLnNvdXJjZS52YWx1ZX1cIi5gLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      'ExportNamedDeclaration': checkDefault.bind(null, 'ExportDefaultSpecifier') };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0Iiwic3BlY2lmaWVyVHlwZSIsIm5vZGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImZpbmQiLCJzcGVjaWZpZXIiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwidW5kZWZpbmVkIiwicmVwb3J0IiwibWVzc2FnZSIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLHlDO0FBQ0EscUM7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFNBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjs7QUFFekIsYUFBU0MsWUFBVCxDQUFzQkMsYUFBdEIsRUFBcUNDLElBQXJDLEVBQTJDOztBQUV6QyxZQUFNQyxtQkFBbUJELEtBQUtFLFVBQUwsQ0FBZ0JDLElBQWhCO0FBQ3ZCQyxtQkFBYUEsVUFBVVosSUFBVixLQUFtQk8sYUFEVCxDQUF6Qjs7O0FBSUEsVUFBSSxDQUFDRSxnQkFBTCxFQUF1QjtBQUN2QixVQUFJSSxVQUFVQyxvQkFBUUMsR0FBUixDQUFZUCxLQUFLUSxNQUFMLENBQVlDLEtBQXhCLEVBQStCWixPQUEvQixDQUFkO0FBQ0EsVUFBSVEsV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSyxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTixnQkFBUU8sWUFBUixDQUFxQmYsT0FBckIsRUFBOEJHLElBQTlCO0FBQ0QsT0FGRCxNQUVPLElBQUlLLFFBQVFFLEdBQVIsQ0FBWSxTQUFaLE1BQTJCTSxTQUEvQixFQUEwQztBQUMvQ2hCLGdCQUFRaUIsTUFBUixDQUFlO0FBQ2JkLGdCQUFNQyxnQkFETztBQUViYyxtQkFBVSwrQ0FBOENmLEtBQUtRLE1BQUwsQ0FBWUMsS0FBTSxJQUY3RCxFQUFmOztBQUlEO0FBQ0Y7O0FBRUQsV0FBTztBQUNMLDJCQUFxQlgsYUFBYWtCLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCLENBRGhCO0FBRUwsZ0NBQTBCbEIsYUFBYWtCLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCLENBRnJCLEVBQVA7O0FBSUQsR0FuQ2MsRUFBakIiLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlZmF1bHQoc3BlY2lmaWVyVHlwZSwgbm9kZSkge1xuXG4gICAgICBjb25zdCBkZWZhdWx0U3BlY2lmaWVyID0gbm9kZS5zcGVjaWZpZXJzLmZpbmQoXG4gICAgICAgIHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gc3BlY2lmaWVyVHlwZVxuICAgICAgKVxuXG4gICAgICBpZiAoIWRlZmF1bHRTcGVjaWZpZXIpIHJldHVyblxuICAgICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICB9IGVsc2UgaWYgKGltcG9ydHMuZ2V0KCdkZWZhdWx0JykgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgICBtZXNzYWdlOiBgTm8gZGVmYXVsdCBleHBvcnQgZm91bmQgaW4gaW1wb3J0ZWQgbW9kdWxlIFwiJHtub2RlLnNvdXJjZS52YWx1ZX1cIi5gLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js b/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js
index 605eb79..d3023ad 100644
--- a/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js
+++ b/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js
@@ -1,21 +1,12 @@
-'use strict';
-
-var _vm = require('vm');
-
-var _vm2 = _interopRequireDefault(_vm);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _vm = require('vm');var _vm2 = _interopRequireDefault(_vm);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('dynamic-import-chunkname')
-    },
+      url: (0, _docsUrl2.default)('dynamic-import-chunkname') },
+
     schema: [{
       type: 'object',
       properties: {
@@ -23,104 +14,106 @@
           type: 'array',
           uniqueItems: true,
           items: {
-            type: 'string'
-          }
-        },
+            type: 'string' } },
+
+
         webpackChunknameFormat: {
-          type: 'string'
-        }
-      }
-    }]
-  },
+          type: 'string' } } }] },
+
+
+
+
 
   create: function (context) {
-    const config = context.options[0];
-
-    var _ref = config || {},
-        _ref$importFunctions = _ref.importFunctions;
-
-    const importFunctions = _ref$importFunctions === undefined ? [] : _ref$importFunctions;
-
-    var _ref2 = config || {},
-        _ref2$webpackChunknam = _ref2.webpackChunknameFormat;
-
-    const webpackChunknameFormat = _ref2$webpackChunknam === undefined ? '[0-9a-zA-Z-_/.]+' : _ref2$webpackChunknam;
-
+    const config = context.options[0];var _ref =
+    config || {},_ref$importFunctions = _ref.importFunctions;const importFunctions = _ref$importFunctions === undefined ? [] : _ref$importFunctions;var _ref2 =
+    config || {},_ref2$webpackChunknam = _ref2.webpackChunknameFormat;const webpackChunknameFormat = _ref2$webpackChunknam === undefined ? '[0-9a-zA-Z-_/.]+' : _ref2$webpackChunknam;
 
     const paddedCommentRegex = /^ (\S[\s\S]+\S) $/;
-    const commentStyleRegex = /^( \w+: ("[^"]*"|\d+|false|true),?)+ $/;
-    const chunkSubstrFormat = ` webpackChunkName: "${webpackChunknameFormat}",? `;
+    const commentStyleRegex = /^( \w+: (["'][^"']*["']|\d+|false|true),?)+ $/;
+    const chunkSubstrFormat = ` webpackChunkName: ["']${webpackChunknameFormat}["'],? `;
     const chunkSubstrRegex = new RegExp(chunkSubstrFormat);
 
+    function run(node, arg) {
+      const sourceCode = context.getSourceCode();
+      const leadingComments = sourceCode.getCommentsBefore ?
+      sourceCode.getCommentsBefore(arg) // This method is available in ESLint >= 4.
+      : sourceCode.getComments(arg).leading; // This method is deprecated in ESLint 7.
+
+      if (!leadingComments || leadingComments.length === 0) {
+        context.report({
+          node,
+          message: 'dynamic imports require a leading comment with the webpack chunkname' });
+
+        return;
+      }
+
+      let isChunknamePresent = false;
+
+      for (const comment of leadingComments) {
+        if (comment.type !== 'Block') {
+          context.report({
+            node,
+            message: 'dynamic imports require a /* foo */ style comment, not a // foo comment' });
+
+          return;
+        }
+
+        if (!paddedCommentRegex.test(comment.value)) {
+          context.report({
+            node,
+            message: `dynamic imports require a block comment padded with spaces - /* foo */` });
+
+          return;
+        }
+
+        try {
+          // just like webpack itself does
+          _vm2.default.runInNewContext(`(function(){return {${comment.value}}})()`);
+        }
+        catch (error) {
+          context.report({
+            node,
+            message: `dynamic imports require a "webpack" comment with valid syntax` });
+
+          return;
+        }
+
+        if (!commentStyleRegex.test(comment.value)) {
+          context.report({
+            node,
+            message:
+            `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/` });
+
+          return;
+        }
+
+        if (chunkSubstrRegex.test(comment.value)) {
+          isChunknamePresent = true;
+        }
+      }
+
+      if (!isChunknamePresent) {
+        context.report({
+          node,
+          message:
+          `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/` });
+
+      }
+    }
+
     return {
+      ImportExpression(node) {
+        run(node, node.source);
+      },
+
       CallExpression(node) {
         if (node.callee.type !== 'Import' && importFunctions.indexOf(node.callee.name) < 0) {
           return;
         }
 
-        const sourceCode = context.getSourceCode();
-        const arg = node.arguments[0];
-        const leadingComments = sourceCode.getComments(arg).leading;
+        run(node, node.arguments[0]);
+      } };
 
-        if (!leadingComments || leadingComments.length === 0) {
-          context.report({
-            node,
-            message: 'dynamic imports require a leading comment with the webpack chunkname'
-          });
-          return;
-        }
-
-        let isChunknamePresent = false;
-
-        for (const comment of leadingComments) {
-          if (comment.type !== 'Block') {
-            context.report({
-              node,
-              message: 'dynamic imports require a /* foo */ style comment, not a // foo comment'
-            });
-            return;
-          }
-
-          if (!paddedCommentRegex.test(comment.value)) {
-            context.report({
-              node,
-              message: `dynamic imports require a block comment padded with spaces - /* foo */`
-            });
-            return;
-          }
-
-          try {
-            // just like webpack itself does
-            _vm2.default.runInNewContext(`(function(){return {${comment.value}}})()`);
-          } catch (error) {
-            context.report({
-              node,
-              message: `dynamic imports require a "webpack" comment with valid syntax`
-            });
-            return;
-          }
-
-          if (!commentStyleRegex.test(comment.value)) {
-            context.report({
-              node,
-              message: `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/`
-            });
-            return;
-          }
-
-          if (chunkSubstrRegex.test(comment.value)) {
-            isChunknamePresent = true;
-          }
-        }
-
-        if (!isChunknamePresent) {
-          context.report({
-            node,
-            message: `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/`
-          });
-        }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9keW5hbWljLWltcG9ydC1jaHVua25hbWUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJpbXBvcnRGdW5jdGlvbnMiLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwid2VicGFja0NodW5rbmFtZUZvcm1hdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjb25maWciLCJvcHRpb25zIiwicGFkZGVkQ29tbWVudFJlZ2V4IiwiY29tbWVudFN0eWxlUmVnZXgiLCJjaHVua1N1YnN0ckZvcm1hdCIsImNodW5rU3Vic3RyUmVnZXgiLCJSZWdFeHAiLCJDYWxsRXhwcmVzc2lvbiIsIm5vZGUiLCJjYWxsZWUiLCJpbmRleE9mIiwibmFtZSIsInNvdXJjZUNvZGUiLCJnZXRTb3VyY2VDb2RlIiwiYXJnIiwiYXJndW1lbnRzIiwibGVhZGluZ0NvbW1lbnRzIiwiZ2V0Q29tbWVudHMiLCJsZWFkaW5nIiwibGVuZ3RoIiwicmVwb3J0IiwibWVzc2FnZSIsImlzQ2h1bmtuYW1lUHJlc2VudCIsImNvbW1lbnQiLCJ0ZXN0IiwidmFsdWUiLCJ2bSIsInJ1bkluTmV3Q29udGV4dCIsImVycm9yIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0FBQ0E7Ozs7OztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSwwQkFBUjtBQURELEtBRkY7QUFLSkMsWUFBUSxDQUFDO0FBQ1BILFlBQU0sUUFEQztBQUVQSSxrQkFBWTtBQUNWQyx5QkFBaUI7QUFDZkwsZ0JBQU0sT0FEUztBQUVmTSx1QkFBYSxJQUZFO0FBR2ZDLGlCQUFPO0FBQ0xQLGtCQUFNO0FBREQ7QUFIUSxTQURQO0FBUVZRLGdDQUF3QjtBQUN0QlIsZ0JBQU07QUFEZ0I7QUFSZDtBQUZMLEtBQUQ7QUFMSixHQURTOztBQXVCZlMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1DLFNBQVNELFFBQVFFLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBZjs7QUFEeUIsZUFFUUQsVUFBVSxFQUZsQjtBQUFBLG9DQUVqQk4sZUFGaUI7O0FBQUEsVUFFakJBLGVBRmlCLHdDQUVDLEVBRkQ7O0FBQUEsZ0JBRytCTSxVQUFVLEVBSHpDO0FBQUEsc0NBR2pCSCxzQkFIaUI7O0FBQUEsVUFHakJBLHNCQUhpQix5Q0FHUSxrQkFIUjs7O0FBS3pCLFVBQU1LLHFCQUFxQixtQkFBM0I7QUFDQSxVQUFNQyxvQkFBb0Isd0NBQTFCO0FBQ0EsVUFBTUMsb0JBQXFCLHVCQUFzQlAsc0JBQXVCLE1BQXhFO0FBQ0EsVUFBTVEsbUJBQW1CLElBQUlDLE1BQUosQ0FBV0YsaUJBQVgsQ0FBekI7O0FBRUEsV0FBTztBQUNMRyxxQkFBZUMsSUFBZixFQUFxQjtBQUNuQixZQUFJQSxLQUFLQyxNQUFMLENBQVlwQixJQUFaLEtBQXFCLFFBQXJCLElBQWlDSyxnQkFBZ0JnQixPQUFoQixDQUF3QkYsS0FBS0MsTUFBTCxDQUFZRSxJQUFwQyxJQUE0QyxDQUFqRixFQUFvRjtBQUNsRjtBQUNEOztBQUVELGNBQU1DLGFBQWFiLFFBQVFjLGFBQVIsRUFBbkI7QUFDQSxjQUFNQyxNQUFNTixLQUFLTyxTQUFMLENBQWUsQ0FBZixDQUFaO0FBQ0EsY0FBTUMsa0JBQWtCSixXQUFXSyxXQUFYLENBQXVCSCxHQUF2QixFQUE0QkksT0FBcEQ7O0FBRUEsWUFBSSxDQUFDRixlQUFELElBQW9CQSxnQkFBZ0JHLE1BQWhCLEtBQTJCLENBQW5ELEVBQXNEO0FBQ3BEcEIsa0JBQVFxQixNQUFSLENBQWU7QUFDYlosZ0JBRGE7QUFFYmEscUJBQVM7QUFGSSxXQUFmO0FBSUE7QUFDRDs7QUFFRCxZQUFJQyxxQkFBcUIsS0FBekI7O0FBRUEsYUFBSyxNQUFNQyxPQUFYLElBQXNCUCxlQUF0QixFQUF1QztBQUNyQyxjQUFJTyxRQUFRbEMsSUFBUixLQUFpQixPQUFyQixFQUE4QjtBQUM1QlUsb0JBQVFxQixNQUFSLENBQWU7QUFDYlosa0JBRGE7QUFFYmEsdUJBQVM7QUFGSSxhQUFmO0FBSUE7QUFDRDs7QUFFRCxjQUFJLENBQUNuQixtQkFBbUJzQixJQUFuQixDQUF3QkQsUUFBUUUsS0FBaEMsQ0FBTCxFQUE2QztBQUMzQzFCLG9CQUFRcUIsTUFBUixDQUFlO0FBQ2JaLGtCQURhO0FBRWJhLHVCQUFVO0FBRkcsYUFBZjtBQUlBO0FBQ0Q7O0FBRUQsY0FBSTtBQUNGO0FBQ0FLLHlCQUFHQyxlQUFILENBQW9CLHVCQUFzQkosUUFBUUUsS0FBTSxPQUF4RDtBQUNELFdBSEQsQ0FJQSxPQUFPRyxLQUFQLEVBQWM7QUFDWjdCLG9CQUFRcUIsTUFBUixDQUFlO0FBQ2JaLGtCQURhO0FBRWJhLHVCQUFVO0FBRkcsYUFBZjtBQUlBO0FBQ0Q7O0FBRUQsY0FBSSxDQUFDbEIsa0JBQWtCcUIsSUFBbEIsQ0FBdUJELFFBQVFFLEtBQS9CLENBQUwsRUFBNEM7QUFDMUMxQixvQkFBUXFCLE1BQVIsQ0FBZTtBQUNiWixrQkFEYTtBQUViYSx1QkFDRywyREFBMERqQixpQkFBa0I7QUFIbEUsYUFBZjtBQUtBO0FBQ0Q7O0FBRUQsY0FBSUMsaUJBQWlCbUIsSUFBakIsQ0FBc0JELFFBQVFFLEtBQTlCLENBQUosRUFBMEM7QUFDeENILGlDQUFxQixJQUFyQjtBQUNEO0FBQ0Y7O0FBRUQsWUFBSSxDQUFDQSxrQkFBTCxFQUF5QjtBQUN2QnZCLGtCQUFRcUIsTUFBUixDQUFlO0FBQ2JaLGdCQURhO0FBRWJhLHFCQUNHLDJEQUEwRGpCLGlCQUFrQjtBQUhsRSxXQUFmO0FBS0Q7QUFDRjtBQXRFSSxLQUFQO0FBd0VEO0FBekdjLENBQWpCIiwiZmlsZSI6ImR5bmFtaWMtaW1wb3J0LWNodW5rbmFtZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB2bSBmcm9tICd2bSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZHluYW1pYy1pbXBvcnQtY2h1bmtuYW1lJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFt7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW1wb3J0RnVuY3Rpb25zOiB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgd2VicGFja0NodW5rbmFtZUZvcm1hdDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QgY29uZmlnID0gY29udGV4dC5vcHRpb25zWzBdXG4gICAgY29uc3QgeyBpbXBvcnRGdW5jdGlvbnMgPSBbXSB9ID0gY29uZmlnIHx8IHt9XG4gICAgY29uc3QgeyB3ZWJwYWNrQ2h1bmtuYW1lRm9ybWF0ID0gJ1swLTlhLXpBLVotXy8uXSsnIH0gPSBjb25maWcgfHwge31cblxuICAgIGNvbnN0IHBhZGRlZENvbW1lbnRSZWdleCA9IC9eIChcXFNbXFxzXFxTXStcXFMpICQvXG4gICAgY29uc3QgY29tbWVudFN0eWxlUmVnZXggPSAvXiggXFx3KzogKFwiW15cIl0qXCJ8XFxkK3xmYWxzZXx0cnVlKSw/KSsgJC9cbiAgICBjb25zdCBjaHVua1N1YnN0ckZvcm1hdCA9IGAgd2VicGFja0NodW5rTmFtZTogXCIke3dlYnBhY2tDaHVua25hbWVGb3JtYXR9XCIsPyBgXG4gICAgY29uc3QgY2h1bmtTdWJzdHJSZWdleCA9IG5ldyBSZWdFeHAoY2h1bmtTdWJzdHJGb3JtYXQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gJ0ltcG9ydCcgJiYgaW1wb3J0RnVuY3Rpb25zLmluZGV4T2Yobm9kZS5jYWxsZWUubmFtZSkgPCAwKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKClcbiAgICAgICAgY29uc3QgYXJnID0gbm9kZS5hcmd1bWVudHNbMF1cbiAgICAgICAgY29uc3QgbGVhZGluZ0NvbW1lbnRzID0gc291cmNlQ29kZS5nZXRDb21tZW50cyhhcmcpLmxlYWRpbmdcblxuICAgICAgICBpZiAoIWxlYWRpbmdDb21tZW50cyB8fCBsZWFkaW5nQ29tbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIGxlYWRpbmcgY29tbWVudCB3aXRoIHRoZSB3ZWJwYWNrIGNodW5rbmFtZScsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0NodW5rbmFtZVByZXNlbnQgPSBmYWxzZVxuXG4gICAgICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBsZWFkaW5nQ29tbWVudHMpIHtcbiAgICAgICAgICBpZiAoY29tbWVudC50eXBlICE9PSAnQmxvY2snKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIC8qIGZvbyAqLyBzdHlsZSBjb21tZW50LCBub3QgYSAvLyBmb28gY29tbWVudCcsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFwYWRkZWRDb21tZW50UmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBibG9jayBjb21tZW50IHBhZGRlZCB3aXRoIHNwYWNlcyAtIC8qIGZvbyAqL2AsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIGp1c3QgbGlrZSB3ZWJwYWNrIGl0c2VsZiBkb2VzXG4gICAgICAgICAgICB2bS5ydW5Jbk5ld0NvbnRleHQoYChmdW5jdGlvbigpe3JldHVybiB7JHtjb21tZW50LnZhbHVlfX19KSgpYClcbiAgICAgICAgICB9XG4gICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIFwid2VicGFja1wiIGNvbW1lbnQgd2l0aCB2YWxpZCBzeW50YXhgLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghY29tbWVudFN0eWxlUmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgIGBkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIGxlYWRpbmcgY29tbWVudCBpbiB0aGUgZm9ybSAvKiR7Y2h1bmtTdWJzdHJGb3JtYXR9Ki9gLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjaHVua1N1YnN0clJlZ2V4LnRlc3QoY29tbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGlzQ2h1bmtuYW1lUHJlc2VudCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQ2h1bmtuYW1lUHJlc2VudCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgaW4gdGhlIGZvcm0gLyoke2NodW5rU3Vic3RyRm9ybWF0fSovYCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9keW5hbWljLWltcG9ydC1jaHVua25hbWUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJpbXBvcnRGdW5jdGlvbnMiLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwid2VicGFja0NodW5rbmFtZUZvcm1hdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjb25maWciLCJvcHRpb25zIiwicGFkZGVkQ29tbWVudFJlZ2V4IiwiY29tbWVudFN0eWxlUmVnZXgiLCJjaHVua1N1YnN0ckZvcm1hdCIsImNodW5rU3Vic3RyUmVnZXgiLCJSZWdFeHAiLCJydW4iLCJub2RlIiwiYXJnIiwic291cmNlQ29kZSIsImdldFNvdXJjZUNvZGUiLCJsZWFkaW5nQ29tbWVudHMiLCJnZXRDb21tZW50c0JlZm9yZSIsImdldENvbW1lbnRzIiwibGVhZGluZyIsImxlbmd0aCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0NodW5rbmFtZVByZXNlbnQiLCJjb21tZW50IiwidGVzdCIsInZhbHVlIiwidm0iLCJydW5Jbk5ld0NvbnRleHQiLCJlcnJvciIsIkltcG9ydEV4cHJlc3Npb24iLCJzb3VyY2UiLCJDYWxsRXhwcmVzc2lvbiIsImNhbGxlZSIsImluZGV4T2YiLCJuYW1lIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSx3QjtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSwwQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsQ0FBQztBQUNQSCxZQUFNLFFBREM7QUFFUEksa0JBQVk7QUFDVkMseUJBQWlCO0FBQ2ZMLGdCQUFNLE9BRFM7QUFFZk0sdUJBQWEsSUFGRTtBQUdmQyxpQkFBTztBQUNMUCxrQkFBTSxRQURELEVBSFEsRUFEUDs7O0FBUVZRLGdDQUF3QjtBQUN0QlIsZ0JBQU0sUUFEZ0IsRUFSZCxFQUZMLEVBQUQsQ0FMSixFQURTOzs7Ozs7QUF1QmZTLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixVQUFNQyxTQUFTRCxRQUFRRSxPQUFSLENBQWdCLENBQWhCLENBQWYsQ0FEeUI7QUFFUUQsY0FBVSxFQUZsQiw2QkFFakJOLGVBRmlCLE9BRWpCQSxlQUZpQix3Q0FFQyxFQUZEO0FBRytCTSxjQUFVLEVBSHpDLCtCQUdqQkgsc0JBSGlCLE9BR2pCQSxzQkFIaUIseUNBR1Esa0JBSFI7O0FBS3pCLFVBQU1LLHFCQUFxQixtQkFBM0I7QUFDQSxVQUFNQyxvQkFBb0IsK0NBQTFCO0FBQ0EsVUFBTUMsb0JBQXFCLDBCQUF5QlAsc0JBQXVCLFNBQTNFO0FBQ0EsVUFBTVEsbUJBQW1CLElBQUlDLE1BQUosQ0FBV0YsaUJBQVgsQ0FBekI7O0FBRUEsYUFBU0csR0FBVCxDQUFhQyxJQUFiLEVBQW1CQyxHQUFuQixFQUF3QjtBQUN0QixZQUFNQyxhQUFhWCxRQUFRWSxhQUFSLEVBQW5CO0FBQ0EsWUFBTUMsa0JBQWtCRixXQUFXRyxpQkFBWDtBQUNwQkgsaUJBQVdHLGlCQUFYLENBQTZCSixHQUE3QixDQURvQixDQUNjO0FBRGQsUUFFcEJDLFdBQVdJLFdBQVgsQ0FBdUJMLEdBQXZCLEVBQTRCTSxPQUZoQyxDQUZzQixDQUlrQjs7QUFFeEMsVUFBSSxDQUFDSCxlQUFELElBQW9CQSxnQkFBZ0JJLE1BQWhCLEtBQTJCLENBQW5ELEVBQXNEO0FBQ3BEakIsZ0JBQVFrQixNQUFSLENBQWU7QUFDYlQsY0FEYTtBQUViVSxtQkFBUyxzRUFGSSxFQUFmOztBQUlBO0FBQ0Q7O0FBRUQsVUFBSUMscUJBQXFCLEtBQXpCOztBQUVBLFdBQUssTUFBTUMsT0FBWCxJQUFzQlIsZUFBdEIsRUFBdUM7QUFDckMsWUFBSVEsUUFBUS9CLElBQVIsS0FBaUIsT0FBckIsRUFBOEI7QUFDNUJVLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFTLHlFQUZJLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJLENBQUNoQixtQkFBbUJtQixJQUFuQixDQUF3QkQsUUFBUUUsS0FBaEMsQ0FBTCxFQUE2QztBQUMzQ3ZCLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFVLHdFQUZHLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJO0FBQ0Y7QUFDQUssdUJBQUdDLGVBQUgsQ0FBb0IsdUJBQXNCSixRQUFRRSxLQUFNLE9BQXhEO0FBQ0Q7QUFDRCxlQUFPRyxLQUFQLEVBQWM7QUFDWjFCLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFVLCtEQUZHLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJLENBQUNmLGtCQUFrQmtCLElBQWxCLENBQXVCRCxRQUFRRSxLQUEvQixDQUFMLEVBQTRDO0FBQzFDdkIsa0JBQVFrQixNQUFSLENBQWU7QUFDYlQsZ0JBRGE7QUFFYlU7QUFDRyx1RUFBMERkLGlCQUFrQixJQUhsRSxFQUFmOztBQUtBO0FBQ0Q7O0FBRUQsWUFBSUMsaUJBQWlCZ0IsSUFBakIsQ0FBc0JELFFBQVFFLEtBQTlCLENBQUosRUFBMEM7QUFDeENILCtCQUFxQixJQUFyQjtBQUNEO0FBQ0Y7O0FBRUQsVUFBSSxDQUFDQSxrQkFBTCxFQUF5QjtBQUN2QnBCLGdCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGNBRGE7QUFFYlU7QUFDRyxxRUFBMERkLGlCQUFrQixJQUhsRSxFQUFmOztBQUtEO0FBQ0Y7O0FBRUQsV0FBTztBQUNMc0IsdUJBQWlCbEIsSUFBakIsRUFBdUI7QUFDckJELFlBQUlDLElBQUosRUFBVUEsS0FBS21CLE1BQWY7QUFDRCxPQUhJOztBQUtMQyxxQkFBZXBCLElBQWYsRUFBcUI7QUFDbkIsWUFBSUEsS0FBS3FCLE1BQUwsQ0FBWXhDLElBQVosS0FBcUIsUUFBckIsSUFBaUNLLGdCQUFnQm9DLE9BQWhCLENBQXdCdEIsS0FBS3FCLE1BQUwsQ0FBWUUsSUFBcEMsSUFBNEMsQ0FBakYsRUFBb0Y7QUFDbEY7QUFDRDs7QUFFRHhCLFlBQUlDLElBQUosRUFBVUEsS0FBS3dCLFNBQUwsQ0FBZSxDQUFmLENBQVY7QUFDRCxPQVhJLEVBQVA7O0FBYUQsR0FsSGMsRUFBakIiLCJmaWxlIjoiZHluYW1pYy1pbXBvcnQtY2h1bmtuYW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW3tcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpbXBvcnRGdW5jdGlvbnM6IHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB3ZWJwYWNrQ2h1bmtuYW1lRm9ybWF0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1dLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBjb25maWcgPSBjb250ZXh0Lm9wdGlvbnNbMF1cbiAgICBjb25zdCB7IGltcG9ydEZ1bmN0aW9ucyA9IFtdIH0gPSBjb25maWcgfHwge31cbiAgICBjb25zdCB7IHdlYnBhY2tDaHVua25hbWVGb3JtYXQgPSAnWzAtOWEtekEtWi1fLy5dKycgfSA9IGNvbmZpZyB8fCB7fVxuXG4gICAgY29uc3QgcGFkZGVkQ29tbWVudFJlZ2V4ID0gL14gKFxcU1tcXHNcXFNdK1xcUykgJC9cbiAgICBjb25zdCBjb21tZW50U3R5bGVSZWdleCA9IC9eKCBcXHcrOiAoW1wiJ11bXlwiJ10qW1wiJ118XFxkK3xmYWxzZXx0cnVlKSw/KSsgJC9cbiAgICBjb25zdCBjaHVua1N1YnN0ckZvcm1hdCA9IGAgd2VicGFja0NodW5rTmFtZTogW1wiJ10ke3dlYnBhY2tDaHVua25hbWVGb3JtYXR9W1wiJ10sPyBgXG4gICAgY29uc3QgY2h1bmtTdWJzdHJSZWdleCA9IG5ldyBSZWdFeHAoY2h1bmtTdWJzdHJGb3JtYXQpXG5cbiAgICBmdW5jdGlvbiBydW4obm9kZSwgYXJnKSB7XG4gICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKClcbiAgICAgIGNvbnN0IGxlYWRpbmdDb21tZW50cyA9IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmVcbiAgICAgICAgPyBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlKGFyZykgLy8gVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIEVTTGludCA+PSA0LlxuICAgICAgICA6IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHMoYXJnKS5sZWFkaW5nIC8vIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgaW4gRVNMaW50IDcuXG5cbiAgICAgIGlmICghbGVhZGluZ0NvbW1lbnRzIHx8IGxlYWRpbmdDb21tZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ2R5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgbGVhZGluZyBjb21tZW50IHdpdGggdGhlIHdlYnBhY2sgY2h1bmtuYW1lJyxcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBpc0NodW5rbmFtZVByZXNlbnQgPSBmYWxzZVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgbGVhZGluZ0NvbW1lbnRzKSB7XG4gICAgICAgIGlmIChjb21tZW50LnR5cGUgIT09ICdCbG9jaycpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogJ2R5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgLyogZm9vICovIHN0eWxlIGNvbW1lbnQsIG5vdCBhIC8vIGZvbyBjb21tZW50JyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwYWRkZWRDb21tZW50UmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBibG9jayBjb21tZW50IHBhZGRlZCB3aXRoIHNwYWNlcyAtIC8qIGZvbyAqL2AsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8ganVzdCBsaWtlIHdlYnBhY2sgaXRzZWxmIGRvZXNcbiAgICAgICAgICB2bS5ydW5Jbk5ld0NvbnRleHQoYChmdW5jdGlvbigpe3JldHVybiB7JHtjb21tZW50LnZhbHVlfX19KSgpYClcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogYGR5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgXCJ3ZWJwYWNrXCIgY29tbWVudCB3aXRoIHZhbGlkIHN5bnRheGAsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY29tbWVudFN0eWxlUmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgaW4gdGhlIGZvcm0gLyoke2NodW5rU3Vic3RyRm9ybWF0fSovYCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNodW5rU3Vic3RyUmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgIGlzQ2h1bmtuYW1lUHJlc2VudCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQ2h1bmtuYW1lUHJlc2VudCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgYGR5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgbGVhZGluZyBjb21tZW50IGluIHRoZSBmb3JtIC8qJHtjaHVua1N1YnN0ckZvcm1hdH0qL2AsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBydW4obm9kZSwgbm9kZS5zb3VyY2UpXG4gICAgICB9LFxuXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSAnSW1wb3J0JyAmJiBpbXBvcnRGdW5jdGlvbnMuaW5kZXhPZihub2RlLmNhbGxlZS5uYW1lKSA8IDApIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihub2RlLCBub2RlLmFyZ3VtZW50c1swXSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/export.js b/node_modules/eslint-plugin-import/lib/rules/export.js
index 8241a82..c7d1aad 100644
--- a/node_modules/eslint-plugin-import/lib/rules/export.js
+++ b/node_modules/eslint-plugin-import/lib/rules/export.js
@@ -1,66 +1,58 @@
-'use strict';
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-var _arrayIncludes = require('array-includes');
-
-var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
+var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 /*
-Notes on TypeScript namespaces aka TSModuleDeclaration:
-
-There are two forms:
-- active namespaces: namespace Foo {} / module Foo {}
-- ambient modules; declare module "eslint-plugin-import" {}
-
-active namespaces:
-- cannot contain a default export
-- cannot contain an export all
-- cannot contain a multi name export (export { a, b })
-- can have active namespaces nested within them
-
-ambient namespaces:
-- can only be defined in .d.ts files
-- cannot be nested within active namespaces
-- have no other restrictions
-*/
+                                                                                                                                                                                                          Notes on TypeScript namespaces aka TSModuleDeclaration:
+                                                                                                                                                                                                          
+                                                                                                                                                                                                          There are two forms:
+                                                                                                                                                                                                          - active namespaces: namespace Foo {} / module Foo {}
+                                                                                                                                                                                                          - ambient modules; declare module "eslint-plugin-import" {}
+                                                                                                                                                                                                          
+                                                                                                                                                                                                          active namespaces:
+                                                                                                                                                                                                          - cannot contain a default export
+                                                                                                                                                                                                          - cannot contain an export all
+                                                                                                                                                                                                          - cannot contain a multi name export (export { a, b })
+                                                                                                                                                                                                          - can have active namespaces nested within them
+                                                                                                                                                                                                          
+                                                                                                                                                                                                          ambient namespaces:
+                                                                                                                                                                                                          - can only be defined in .d.ts files
+                                                                                                                                                                                                          - cannot be nested within active namespaces
+                                                                                                                                                                                                          - have no other restrictions
+                                                                                                                                                                                                          */
 
 const rootProgram = 'root';
 const tsTypePrefix = 'type:';
 
 /**
- * Detect function overloads like:
- * ```ts
- * export function foo(a: number);
- * export function foo(a: string);
- * export function foo(a: number|string) { return a; }
- * ```
- * @param {Set<Object>} nodes
- * @returns {boolean}
- */
+                               * Detect function overloads like:
+                               * ```ts
+                               * export function foo(a: number);
+                               * export function foo(a: string);
+                               * export function foo(a: number|string) { return a; }
+                               * ```
+                               * @param {Set<Object>} nodes
+                               * @returns {boolean}
+                               */
 function isTypescriptFunctionOverloads(nodes) {
   const types = new Set(Array.from(nodes, node => node.parent.type));
-  return types.has('TSDeclareFunction') && (types.size === 1 || types.size === 2 && types.has('FunctionDeclaration'));
+  return (
+    types.has('TSDeclareFunction') && (
+
+    types.size === 1 ||
+    types.size === 2 && types.has('FunctionDeclaration')));
+
+
 }
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('export')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('export') },
+
+    schema: [] },
+
 
   create: function (context) {
     const namespace = new Map([[rootProgram, new Map()]]);
@@ -105,7 +97,10 @@
         const isTypeVariableDecl = node.declaration.kind === 'type';
 
         if (node.declaration.id != null) {
-          if ((0, _arrayIncludes2.default)(['TSTypeAliasDeclaration', 'TSInterfaceDeclaration'], node.declaration.type)) {
+          if ((0, _arrayIncludes2.default)([
+          'TSTypeAliasDeclaration',
+          'TSInterfaceDeclaration'],
+          node.declaration.type)) {
             addNamed(node.declaration.id.name, node.declaration.id, parent, true);
           } else {
             addNamed(node.declaration.id.name, node.declaration.id, parent, isTypeVariableDecl);
@@ -114,7 +109,8 @@
 
         if (node.declaration.declarations != null) {
           for (let declaration of node.declaration.declarations) {
-            (0, _ExportMap.recursivePatternCapture)(declaration.id, v => addNamed(v.name, v, parent, isTypeVariableDecl));
+            (0, _ExportMap.recursivePatternCapture)(declaration.id, v =>
+            addNamed(v.name, v, parent, isTypeVariableDecl));
           }
         }
       },
@@ -122,6 +118,9 @@
       'ExportAllDeclaration': function (node) {
         if (node.source == null) return; // not sure if this is ever true
 
+        // `export * as X from 'path'` does not conflict
+        if (node.exported && node.exported.name) return;
+
         const remoteExports = _ExportMap2.default.get(node.source.value, context);
         if (remoteExports == null) return;
 
@@ -133,26 +132,22 @@
         const parent = getParent(node);
 
         let any = false;
-        remoteExports.forEach((v, name) => name !== 'default' && (any = true) && // poor man's filter
+        remoteExports.forEach((v, name) =>
+        name !== 'default' && (
+        any = true) && // poor man's filter
         addNamed(name, node, parent));
 
         if (!any) {
-          context.report(node.source, `No named exports found in module '${node.source.value}'.`);
+          context.report(
+          node.source,
+          `No named exports found in module '${node.source.value}'.`);
+
         }
       },
 
       'Program:exit': function () {
-        for (let _ref of namespace) {
-          var _ref2 = _slicedToArray(_ref, 2);
-
-          let named = _ref2[1];
-
-          for (let _ref3 of named) {
-            var _ref4 = _slicedToArray(_ref3, 2);
-
-            let name = _ref4[0];
-            let nodes = _ref4[1];
-
+        for (let _ref of namespace) {var _ref2 = _slicedToArray(_ref, 2);let named = _ref2[1];
+          for (let _ref3 of named) {var _ref4 = _slicedToArray(_ref3, 2);let name = _ref4[0];let nodes = _ref4[1];
             if (nodes.size <= 1) continue;
 
             if (isTypescriptFunctionOverloads(nodes)) continue;
@@ -161,13 +156,15 @@
               if (name === 'default') {
                 context.report(node, 'Multiple default exports.');
               } else {
-                context.report(node, `Multiple exports of name '${name.replace(tsTypePrefix, '')}'.`);
+                context.report(
+                node,
+                `Multiple exports of name '${name.replace(tsTypePrefix, '')}'.`);
+
               }
             }
           }
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnQuanMiXSwibmFtZXMiOlsicm9vdFByb2dyYW0iLCJ0c1R5cGVQcmVmaXgiLCJpc1R5cGVzY3JpcHRGdW5jdGlvbk92ZXJsb2FkcyIsIm5vZGVzIiwidHlwZXMiLCJTZXQiLCJBcnJheSIsImZyb20iLCJub2RlIiwicGFyZW50IiwidHlwZSIsImhhcyIsInNpemUiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwibmFtZXNwYWNlIiwiTWFwIiwiYWRkTmFtZWQiLCJuYW1lIiwiaXNUeXBlIiwic2V0IiwibmFtZWQiLCJnZXQiLCJrZXkiLCJhZGQiLCJnZXRQYXJlbnQiLCJleHBvcnRlZCIsImRlY2xhcmF0aW9uIiwiaXNUeXBlVmFyaWFibGVEZWNsIiwia2luZCIsImlkIiwiZGVjbGFyYXRpb25zIiwidiIsInNvdXJjZSIsInJlbW90ZUV4cG9ydHMiLCJFeHBvcnRNYXAiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImFueSIsImZvckVhY2giLCJyZXBvcnQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNQSxjQUFjLE1BQXBCO0FBQ0EsTUFBTUMsZUFBZSxPQUFyQjs7QUFFQTs7Ozs7Ozs7OztBQVVBLFNBQVNDLDZCQUFULENBQXVDQyxLQUF2QyxFQUE4QztBQUM1QyxRQUFNQyxRQUFRLElBQUlDLEdBQUosQ0FBUUMsTUFBTUMsSUFBTixDQUFXSixLQUFYLEVBQWtCSyxRQUFRQSxLQUFLQyxNQUFMLENBQVlDLElBQXRDLENBQVIsQ0FBZDtBQUNBLFNBQ0VOLE1BQU1PLEdBQU4sQ0FBVSxtQkFBVixNQUVFUCxNQUFNUSxJQUFOLEtBQWUsQ0FBZixJQUNDUixNQUFNUSxJQUFOLEtBQWUsQ0FBZixJQUFvQlIsTUFBTU8sR0FBTixDQUFVLHFCQUFWLENBSHZCLENBREY7QUFPRDs7QUFFREUsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pMLFVBQU0sU0FERjtBQUVKTSxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsUUFBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixVQUFNQyxZQUFZLElBQUlDLEdBQUosQ0FBUSxDQUFDLENBQUN0QixXQUFELEVBQWMsSUFBSXNCLEdBQUosRUFBZCxDQUFELENBQVIsQ0FBbEI7O0FBRUEsYUFBU0MsUUFBVCxDQUFrQkMsSUFBbEIsRUFBd0JoQixJQUF4QixFQUE4QkMsTUFBOUIsRUFBc0NnQixNQUF0QyxFQUE4QztBQUM1QyxVQUFJLENBQUNKLFVBQVVWLEdBQVYsQ0FBY0YsTUFBZCxDQUFMLEVBQTRCO0FBQzFCWSxrQkFBVUssR0FBVixDQUFjakIsTUFBZCxFQUFzQixJQUFJYSxHQUFKLEVBQXRCO0FBQ0Q7QUFDRCxZQUFNSyxRQUFRTixVQUFVTyxHQUFWLENBQWNuQixNQUFkLENBQWQ7O0FBRUEsWUFBTW9CLE1BQU1KLFNBQVUsR0FBRXhCLFlBQWEsR0FBRXVCLElBQUssRUFBaEMsR0FBb0NBLElBQWhEO0FBQ0EsVUFBSXJCLFFBQVF3QixNQUFNQyxHQUFOLENBQVVDLEdBQVYsQ0FBWjs7QUFFQSxVQUFJMUIsU0FBUyxJQUFiLEVBQW1CO0FBQ2pCQSxnQkFBUSxJQUFJRSxHQUFKLEVBQVI7QUFDQXNCLGNBQU1ELEdBQU4sQ0FBVUcsR0FBVixFQUFlMUIsS0FBZjtBQUNEOztBQUVEQSxZQUFNMkIsR0FBTixDQUFVdEIsSUFBVjtBQUNEOztBQUVELGFBQVN1QixTQUFULENBQW1CdkIsSUFBbkIsRUFBeUI7QUFDdkIsVUFBSUEsS0FBS0MsTUFBTCxJQUFlRCxLQUFLQyxNQUFMLENBQVlDLElBQVosS0FBcUIsZUFBeEMsRUFBeUQ7QUFDdkQsZUFBT0YsS0FBS0MsTUFBTCxDQUFZQSxNQUFuQjtBQUNEOztBQUVEO0FBQ0E7QUFDQSxhQUFPVCxXQUFQO0FBQ0Q7O0FBRUQsV0FBTztBQUNMLGtDQUE2QlEsSUFBRCxJQUFVZSxTQUFTLFNBQVQsRUFBb0JmLElBQXBCLEVBQTBCdUIsVUFBVXZCLElBQVYsQ0FBMUIsQ0FEakM7O0FBR0wseUJBQW9CQSxJQUFELElBQVVlLFNBQVNmLEtBQUt3QixRQUFMLENBQWNSLElBQXZCLEVBQTZCaEIsS0FBS3dCLFFBQWxDLEVBQTRDRCxVQUFVdkIsSUFBVixDQUE1QyxDQUh4Qjs7QUFLTCxnQ0FBMEIsVUFBVUEsSUFBVixFQUFnQjtBQUN4QyxZQUFJQSxLQUFLeUIsV0FBTCxJQUFvQixJQUF4QixFQUE4Qjs7QUFFOUIsY0FBTXhCLFNBQVNzQixVQUFVdkIsSUFBVixDQUFmO0FBQ0E7QUFDQSxjQUFNMEIscUJBQXFCMUIsS0FBS3lCLFdBQUwsQ0FBaUJFLElBQWpCLEtBQTBCLE1BQXJEOztBQUVBLFlBQUkzQixLQUFLeUIsV0FBTCxDQUFpQkcsRUFBakIsSUFBdUIsSUFBM0IsRUFBaUM7QUFDL0IsY0FBSSw2QkFBUyxDQUNYLHdCQURXLEVBRVgsd0JBRlcsQ0FBVCxFQUdENUIsS0FBS3lCLFdBQUwsQ0FBaUJ2QixJQUhoQixDQUFKLEVBRzJCO0FBQ3pCYSxxQkFBU2YsS0FBS3lCLFdBQUwsQ0FBaUJHLEVBQWpCLENBQW9CWixJQUE3QixFQUFtQ2hCLEtBQUt5QixXQUFMLENBQWlCRyxFQUFwRCxFQUF3RDNCLE1BQXhELEVBQWdFLElBQWhFO0FBQ0QsV0FMRCxNQUtPO0FBQ0xjLHFCQUFTZixLQUFLeUIsV0FBTCxDQUFpQkcsRUFBakIsQ0FBb0JaLElBQTdCLEVBQW1DaEIsS0FBS3lCLFdBQUwsQ0FBaUJHLEVBQXBELEVBQXdEM0IsTUFBeEQsRUFBZ0V5QixrQkFBaEU7QUFDRDtBQUNGOztBQUVELFlBQUkxQixLQUFLeUIsV0FBTCxDQUFpQkksWUFBakIsSUFBaUMsSUFBckMsRUFBMkM7QUFDekMsZUFBSyxJQUFJSixXQUFULElBQXdCekIsS0FBS3lCLFdBQUwsQ0FBaUJJLFlBQXpDLEVBQXVEO0FBQ3JELG9EQUF3QkosWUFBWUcsRUFBcEMsRUFBd0NFLEtBQ3RDZixTQUFTZSxFQUFFZCxJQUFYLEVBQWlCYyxDQUFqQixFQUFvQjdCLE1BQXBCLEVBQTRCeUIsa0JBQTVCLENBREY7QUFFRDtBQUNGO0FBQ0YsT0E3Qkk7O0FBK0JMLDhCQUF3QixVQUFVMUIsSUFBVixFQUFnQjtBQUN0QyxZQUFJQSxLQUFLK0IsTUFBTCxJQUFlLElBQW5CLEVBQXlCLE9BRGEsQ0FDTjs7QUFFaEMsY0FBTUMsZ0JBQWdCQyxvQkFBVWIsR0FBVixDQUFjcEIsS0FBSytCLE1BQUwsQ0FBWUcsS0FBMUIsRUFBaUN0QixPQUFqQyxDQUF0QjtBQUNBLFlBQUlvQixpQkFBaUIsSUFBckIsRUFBMkI7O0FBRTNCLFlBQUlBLGNBQWNHLE1BQWQsQ0FBcUJDLE1BQXpCLEVBQWlDO0FBQy9CSix3QkFBY0ssWUFBZCxDQUEyQnpCLE9BQTNCLEVBQW9DWixJQUFwQztBQUNBO0FBQ0Q7O0FBRUQsY0FBTUMsU0FBU3NCLFVBQVV2QixJQUFWLENBQWY7O0FBRUEsWUFBSXNDLE1BQU0sS0FBVjtBQUNBTixzQkFBY08sT0FBZCxDQUFzQixDQUFDVCxDQUFELEVBQUlkLElBQUosS0FDcEJBLFNBQVMsU0FBVCxLQUNDc0IsTUFBTSxJQURQLEtBQ2dCO0FBQ2hCdkIsaUJBQVNDLElBQVQsRUFBZWhCLElBQWYsRUFBcUJDLE1BQXJCLENBSEY7O0FBS0EsWUFBSSxDQUFDcUMsR0FBTCxFQUFVO0FBQ1IxQixrQkFBUTRCLE1BQVIsQ0FBZXhDLEtBQUsrQixNQUFwQixFQUNHLHFDQUFvQy9CLEtBQUsrQixNQUFMLENBQVlHLEtBQU0sSUFEekQ7QUFFRDtBQUNGLE9BdERJOztBQXdETCxzQkFBZ0IsWUFBWTtBQUMxQix5QkFBc0JyQixTQUF0QixFQUFpQztBQUFBOztBQUFBLGNBQXJCTSxLQUFxQjs7QUFDL0IsNEJBQTBCQSxLQUExQixFQUFpQztBQUFBOztBQUFBLGdCQUF2QkgsSUFBdUI7QUFBQSxnQkFBakJyQixLQUFpQjs7QUFDL0IsZ0JBQUlBLE1BQU1TLElBQU4sSUFBYyxDQUFsQixFQUFxQjs7QUFFckIsZ0JBQUlWLDhCQUE4QkMsS0FBOUIsQ0FBSixFQUEwQzs7QUFFMUMsaUJBQUssSUFBSUssSUFBVCxJQUFpQkwsS0FBakIsRUFBd0I7QUFDdEIsa0JBQUlxQixTQUFTLFNBQWIsRUFBd0I7QUFDdEJKLHdCQUFRNEIsTUFBUixDQUFleEMsSUFBZixFQUFxQiwyQkFBckI7QUFDRCxlQUZELE1BRU87QUFDTFksd0JBQVE0QixNQUFSLENBQ0V4QyxJQURGLEVBRUcsNkJBQTRCZ0IsS0FBS3lCLE9BQUwsQ0FBYWhELFlBQWIsRUFBMkIsRUFBM0IsQ0FBK0IsSUFGOUQ7QUFJRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGO0FBM0VJLEtBQVA7QUE2RUQ7QUFwSGMsQ0FBakIiLCJmaWxlIjoiZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydE1hcCwgeyByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZSB9IGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnXG5cbi8qXG5Ob3RlcyBvbiBUeXBlU2NyaXB0IG5hbWVzcGFjZXMgYWthIFRTTW9kdWxlRGVjbGFyYXRpb246XG5cblRoZXJlIGFyZSB0d28gZm9ybXM6XG4tIGFjdGl2ZSBuYW1lc3BhY2VzOiBuYW1lc3BhY2UgRm9vIHt9IC8gbW9kdWxlIEZvbyB7fVxuLSBhbWJpZW50IG1vZHVsZXM7IGRlY2xhcmUgbW9kdWxlIFwiZXNsaW50LXBsdWdpbi1pbXBvcnRcIiB7fVxuXG5hY3RpdmUgbmFtZXNwYWNlczpcbi0gY2Fubm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydFxuLSBjYW5ub3QgY29udGFpbiBhbiBleHBvcnQgYWxsXG4tIGNhbm5vdCBjb250YWluIGEgbXVsdGkgbmFtZSBleHBvcnQgKGV4cG9ydCB7IGEsIGIgfSlcbi0gY2FuIGhhdmUgYWN0aXZlIG5hbWVzcGFjZXMgbmVzdGVkIHdpdGhpbiB0aGVtXG5cbmFtYmllbnQgbmFtZXNwYWNlczpcbi0gY2FuIG9ubHkgYmUgZGVmaW5lZCBpbiAuZC50cyBmaWxlc1xuLSBjYW5ub3QgYmUgbmVzdGVkIHdpdGhpbiBhY3RpdmUgbmFtZXNwYWNlc1xuLSBoYXZlIG5vIG90aGVyIHJlc3RyaWN0aW9uc1xuKi9cblxuY29uc3Qgcm9vdFByb2dyYW0gPSAncm9vdCdcbmNvbnN0IHRzVHlwZVByZWZpeCA9ICd0eXBlOidcblxuLyoqXG4gKiBEZXRlY3QgZnVuY3Rpb24gb3ZlcmxvYWRzIGxpa2U6XG4gKiBgYGB0c1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBudW1iZXIpO1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBzdHJpbmcpO1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBudW1iZXJ8c3RyaW5nKSB7IHJldHVybiBhOyB9XG4gKiBgYGBcbiAqIEBwYXJhbSB7U2V0PE9iamVjdD59IG5vZGVzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNUeXBlc2NyaXB0RnVuY3Rpb25PdmVybG9hZHMobm9kZXMpIHtcbiAgY29uc3QgdHlwZXMgPSBuZXcgU2V0KEFycmF5LmZyb20obm9kZXMsIG5vZGUgPT4gbm9kZS5wYXJlbnQudHlwZSkpXG4gIHJldHVybiAoXG4gICAgdHlwZXMuaGFzKCdUU0RlY2xhcmVGdW5jdGlvbicpICYmXG4gICAgKFxuICAgICAgdHlwZXMuc2l6ZSA9PT0gMSB8fFxuICAgICAgKHR5cGVzLnNpemUgPT09IDIgJiYgdHlwZXMuaGFzKCdGdW5jdGlvbkRlY2xhcmF0aW9uJykpXG4gICAgKVxuICApXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZXhwb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBuZXcgTWFwKFtbcm9vdFByb2dyYW0sIG5ldyBNYXAoKV1dKVxuXG4gICAgZnVuY3Rpb24gYWRkTmFtZWQobmFtZSwgbm9kZSwgcGFyZW50LCBpc1R5cGUpIHtcbiAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwYXJlbnQpKSB7XG4gICAgICAgIG5hbWVzcGFjZS5zZXQocGFyZW50LCBuZXcgTWFwKCkpXG4gICAgICB9XG4gICAgICBjb25zdCBuYW1lZCA9IG5hbWVzcGFjZS5nZXQocGFyZW50KVxuXG4gICAgICBjb25zdCBrZXkgPSBpc1R5cGUgPyBgJHt0c1R5cGVQcmVmaXh9JHtuYW1lfWAgOiBuYW1lXG4gICAgICBsZXQgbm9kZXMgPSBuYW1lZC5nZXQoa2V5KVxuXG4gICAgICBpZiAobm9kZXMgPT0gbnVsbCkge1xuICAgICAgICBub2RlcyA9IG5ldyBTZXQoKVxuICAgICAgICBuYW1lZC5zZXQoa2V5LCBub2RlcylcbiAgICAgIH1cblxuICAgICAgbm9kZXMuYWRkKG5vZGUpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyZW50KG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC50eXBlID09PSAnVFNNb2R1bGVCbG9jaycpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUucGFyZW50LnBhcmVudFxuICAgICAgfVxuXG4gICAgICAvLyBqdXN0IGluIGNhc2Ugc29tZWhvdyBhIG5vbi10cyBuYW1lc3BhY2UgZXhwb3J0IGRlY2xhcmF0aW9uIGlzbid0IGRpcmVjdGx5XG4gICAgICAvLyBwYXJlbnRlZCB0byB0aGUgcm9vdCBQcm9ncmFtIG5vZGVcbiAgICAgIHJldHVybiByb290UHJvZ3JhbVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IGFkZE5hbWVkKCdkZWZhdWx0Jywgbm9kZSwgZ2V0UGFyZW50KG5vZGUpKSxcblxuICAgICAgJ0V4cG9ydFNwZWNpZmllcic6IChub2RlKSA9PiBhZGROYW1lZChub2RlLmV4cG9ydGVkLm5hbWUsIG5vZGUuZXhwb3J0ZWQsIGdldFBhcmVudChub2RlKSksXG5cbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gZ2V0UGFyZW50KG5vZGUpXG4gICAgICAgIC8vIHN1cHBvcnQgZm9yIG9sZCBUeXBlU2NyaXB0IHZlcnNpb25zXG4gICAgICAgIGNvbnN0IGlzVHlwZVZhcmlhYmxlRGVjbCA9IG5vZGUuZGVjbGFyYXRpb24ua2luZCA9PT0gJ3R5cGUnXG5cbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGlmIChpbmNsdWRlcyhbXG4gICAgICAgICAgICAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbicsXG4gICAgICAgICAgICAnVFNJbnRlcmZhY2VEZWNsYXJhdGlvbicsXG4gICAgICAgICAgXSwgbm9kZS5kZWNsYXJhdGlvbi50eXBlKSkge1xuICAgICAgICAgICAgYWRkTmFtZWQobm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lLCBub2RlLmRlY2xhcmF0aW9uLmlkLCBwYXJlbnQsIHRydWUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFkZE5hbWVkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSwgbm9kZS5kZWNsYXJhdGlvbi5pZCwgcGFyZW50LCBpc1R5cGVWYXJpYWJsZURlY2wpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zICE9IG51bGwpIHtcbiAgICAgICAgICBmb3IgKGxldCBkZWNsYXJhdGlvbiBvZiBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZGVjbGFyYXRpb24uaWQsIHYgPT5cbiAgICAgICAgICAgICAgYWRkTmFtZWQodi5uYW1lLCB2LCBwYXJlbnQsIGlzVHlwZVZhcmlhYmxlRGVjbCkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIG5vdCBzdXJlIGlmIHRoaXMgaXMgZXZlciB0cnVlXG5cbiAgICAgICAgY29uc3QgcmVtb3RlRXhwb3J0cyA9IEV4cG9ydE1hcC5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICAgIGlmIChyZW1vdGVFeHBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICAgIGlmIChyZW1vdGVFeHBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICByZW1vdGVFeHBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gZ2V0UGFyZW50KG5vZGUpXG5cbiAgICAgICAgbGV0IGFueSA9IGZhbHNlXG4gICAgICAgIHJlbW90ZUV4cG9ydHMuZm9yRWFjaCgodiwgbmFtZSkgPT5cbiAgICAgICAgICBuYW1lICE9PSAnZGVmYXVsdCcgJiZcbiAgICAgICAgICAoYW55ID0gdHJ1ZSkgJiYgLy8gcG9vciBtYW4ncyBmaWx0ZXJcbiAgICAgICAgICBhZGROYW1lZChuYW1lLCBub2RlLCBwYXJlbnQpKVxuXG4gICAgICAgIGlmICghYW55KSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZS5zb3VyY2UsXG4gICAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKGxldCBbLCBuYW1lZF0gb2YgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgW25hbWUsIG5vZGVzXSBvZiBuYW1lZCkge1xuICAgICAgICAgICAgaWYgKG5vZGVzLnNpemUgPD0gMSkgY29udGludWVcblxuICAgICAgICAgICAgaWYgKGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSkgY29udGludWVcblxuICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgJ011bHRpcGxlIGRlZmF1bHQgZXhwb3J0cy4nKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgIGBNdWx0aXBsZSBleHBvcnRzIG9mIG5hbWUgJyR7bmFtZS5yZXBsYWNlKHRzVHlwZVByZWZpeCwgJycpfScuYFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnQuanMiXSwibmFtZXMiOlsicm9vdFByb2dyYW0iLCJ0c1R5cGVQcmVmaXgiLCJpc1R5cGVzY3JpcHRGdW5jdGlvbk92ZXJsb2FkcyIsIm5vZGVzIiwidHlwZXMiLCJTZXQiLCJBcnJheSIsImZyb20iLCJub2RlIiwicGFyZW50IiwidHlwZSIsImhhcyIsInNpemUiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwibmFtZXNwYWNlIiwiTWFwIiwiYWRkTmFtZWQiLCJuYW1lIiwiaXNUeXBlIiwic2V0IiwibmFtZWQiLCJnZXQiLCJrZXkiLCJhZGQiLCJnZXRQYXJlbnQiLCJleHBvcnRlZCIsImRlY2xhcmF0aW9uIiwiaXNUeXBlVmFyaWFibGVEZWNsIiwia2luZCIsImlkIiwiZGVjbGFyYXRpb25zIiwidiIsInNvdXJjZSIsInJlbW90ZUV4cG9ydHMiLCJFeHBvcnRNYXAiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImFueSIsImZvckVhY2giLCJyZXBvcnQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoicW9CQUFBLHlDO0FBQ0EscUM7QUFDQSwrQzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNQSxjQUFjLE1BQXBCO0FBQ0EsTUFBTUMsZUFBZSxPQUFyQjs7QUFFQTs7Ozs7Ozs7OztBQVVBLFNBQVNDLDZCQUFULENBQXVDQyxLQUF2QyxFQUE4QztBQUM1QyxRQUFNQyxRQUFRLElBQUlDLEdBQUosQ0FBUUMsTUFBTUMsSUFBTixDQUFXSixLQUFYLEVBQWtCSyxRQUFRQSxLQUFLQyxNQUFMLENBQVlDLElBQXRDLENBQVIsQ0FBZDtBQUNBO0FBQ0VOLFVBQU1PLEdBQU4sQ0FBVSxtQkFBVjs7QUFFRVAsVUFBTVEsSUFBTixLQUFlLENBQWY7QUFDQ1IsVUFBTVEsSUFBTixLQUFlLENBQWYsSUFBb0JSLE1B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QTBCQSxLQUExQixFQUFpQywwQ0FBdkJILElBQXVCLGdCQUFqQnJCLEtBQWlCO0FBQy9CLGdCQUFJQSxNQUFNUyxJQUFOLElBQWMsQ0FBbEIsRUFBcUI7O0FBRXJCLGdCQUFJViw4QkFBOEJDLEtBQTlCLENBQUosRUFBMEM7O0FBRTFDLGlCQUFLLElBQUlLLElBQVQsSUFBaUJMLEtBQWpCLEVBQXdCO0FBQ3RCLGtCQUFJcUIsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCSix3QkFBUTRCLE1BQVIsQ0FBZXhDLElBQWYsRUFBcUIsMkJBQXJCO0FBQ0QsZUFGRCxNQUVPO0FBQ0xZLHdCQUFRNEIsTUFBUjtBQUNFeEMsb0JBREY7QUFFRyw2Q0FBNEJnQixLQUFLeUIsT0FBTCxDQUFhaEQsWUFBYixFQUEyQixFQUEzQixDQUErQixJQUY5RDs7QUFJRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGLE9BaEZJLEVBQVA7O0FBa0ZELEdBekhjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRNYXAsIHsgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUgfSBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGluY2x1ZGVzIGZyb20gJ2FycmF5LWluY2x1ZGVzJ1xuXG4vKlxuTm90ZXMgb24gVHlwZVNjcmlwdCBuYW1lc3BhY2VzIGFrYSBUU01vZHVsZURlY2xhcmF0aW9uOlxuXG5UaGVyZSBhcmUgdHdvIGZvcm1zOlxuLSBhY3RpdmUgbmFtZXNwYWNlczogbmFtZXNwYWNlIEZvbyB7fSAvIG1vZHVsZSBGb28ge31cbi0gYW1iaWVudCBtb2R1bGVzOyBkZWNsYXJlIG1vZHVsZSBcImVzbGludC1wbHVnaW4taW1wb3J0XCIge31cblxuYWN0aXZlIG5hbWVzcGFjZXM6XG4tIGNhbm5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnRcbi0gY2Fubm90IGNvbnRhaW4gYW4gZXhwb3J0IGFsbFxuLSBjYW5ub3QgY29udGFpbiBhIG11bHRpIG5hbWUgZXhwb3J0IChleHBvcnQgeyBhLCBiIH0pXG4tIGNhbiBoYXZlIGFjdGl2ZSBuYW1lc3BhY2VzIG5lc3RlZCB3aXRoaW4gdGhlbVxuXG5hbWJpZW50IG5hbWVzcGFjZXM6XG4tIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gLmQudHMgZmlsZXNcbi0gY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYWN0aXZlIG5hbWVzcGFjZXNcbi0gaGF2ZSBubyBvdGhlciByZXN0cmljdGlvbnNcbiovXG5cbmNvbnN0IHJvb3RQcm9ncmFtID0gJ3Jvb3QnXG5jb25zdCB0c1R5cGVQcmVmaXggPSAndHlwZTonXG5cbi8qKlxuICogRGV0ZWN0IGZ1bmN0aW9uIG92ZXJsb2FkcyBsaWtlOlxuICogYGBgdHNcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogbnVtYmVyKTtcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogc3RyaW5nKTtcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogbnVtYmVyfHN0cmluZykgeyByZXR1cm4gYTsgfVxuICogYGBgXG4gKiBAcGFyYW0ge1NldDxPYmplY3Q+fSBub2Rlc1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSB7XG4gIGNvbnN0IHR5cGVzID0gbmV3IFNldChBcnJheS5mcm9tKG5vZGVzLCBub2RlID0+IG5vZGUucGFyZW50LnR5cGUpKVxuICByZXR1cm4gKFxuICAgIHR5cGVzLmhhcygnVFNEZWNsYXJlRnVuY3Rpb24nKSAmJlxuICAgIChcbiAgICAgIHR5cGVzLnNpemUgPT09IDEgfHxcbiAgICAgICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygnRnVuY3Rpb25EZWNsYXJhdGlvbicpKVxuICAgIClcbiAgKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2V4cG9ydCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmV3IE1hcChbW3Jvb3RQcm9ncmFtLCBuZXcgTWFwKCldXSlcblxuICAgIGZ1bmN0aW9uIGFkZE5hbWVkKG5hbWUsIG5vZGUsIHBhcmVudCwgaXNUeXBlKSB7XG4gICAgICBpZiAoIW5hbWVzcGFjZS5oYXMocGFyZW50KSkge1xuICAgICAgICBuYW1lc3BhY2Uuc2V0KHBhcmVudCwgbmV3IE1hcCgpKVxuICAgICAgfVxuICAgICAgY29uc3QgbmFtZWQgPSBuYW1lc3BhY2UuZ2V0KHBhcmVudClcblxuICAgICAgY29uc3Qga2V5ID0gaXNUeXBlID8gYCR7dHNUeXBlUHJlZml4fSR7bmFtZX1gIDogbmFtZVxuICAgICAgbGV0IG5vZGVzID0gbmFtZWQuZ2V0KGtleSlcblxuICAgICAgaWYgKG5vZGVzID09IG51bGwpIHtcbiAgICAgICAgbm9kZXMgPSBuZXcgU2V0KClcbiAgICAgICAgbmFtZWQuc2V0KGtleSwgbm9kZXMpXG4gICAgICB9XG5cbiAgICAgIG5vZGVzLmFkZChub2RlKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudChub2RlKSB7XG4gICAgICBpZiAobm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQudHlwZSA9PT0gJ1RTTW9kdWxlQmxvY2snKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudC5wYXJlbnRcbiAgICAgIH1cblxuICAgICAgLy8ganVzdCBpbiBjYXNlIHNvbWVob3cgYSBub24tdHMgbmFtZXNwYWNlIGV4cG9ydCBkZWNsYXJhdGlvbiBpc24ndCBkaXJlY3RseVxuICAgICAgLy8gcGFyZW50ZWQgdG8gdGhlIHJvb3QgUHJvZ3JhbSBub2RlXG4gICAgICByZXR1cm4gcm9vdFByb2dyYW1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IChub2RlKSA9PiBhZGROYW1lZCgnZGVmYXVsdCcsIG5vZGUsIGdldFBhcmVudChub2RlKSksXG5cbiAgICAgICdFeHBvcnRTcGVjaWZpZXInOiAobm9kZSkgPT4gYWRkTmFtZWQobm9kZS5leHBvcnRlZC5uYW1lLCBub2RlLmV4cG9ydGVkLCBnZXRQYXJlbnQobm9kZSkpLFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uID09IG51bGwpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFBhcmVudChub2RlKVxuICAgICAgICAvLyBzdXBwb3J0IGZvciBvbGQgVHlwZVNjcmlwdCB2ZXJzaW9uc1xuICAgICAgICBjb25zdCBpc1R5cGVWYXJpYWJsZURlY2wgPSBub2RlLmRlY2xhcmF0aW9uLmtpbmQgPT09ICd0eXBlJ1xuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmlkICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoaW5jbHVkZXMoW1xuICAgICAgICAgICAgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24nLFxuICAgICAgICAgICAgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nLFxuICAgICAgICAgIF0sIG5vZGUuZGVjbGFyYXRpb24udHlwZSkpIHtcbiAgICAgICAgICAgIGFkZE5hbWVkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSwgbm9kZS5kZWNsYXJhdGlvbi5pZCwgcGFyZW50LCB0cnVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhZGROYW1lZChub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWUsIG5vZGUuZGVjbGFyYXRpb24uaWQsIHBhcmVudCwgaXNUeXBlVmFyaWFibGVEZWNsKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucyAhPSBudWxsKSB7XG4gICAgICAgICAgZm9yIChsZXQgZGVjbGFyYXRpb24gb2Ygbm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGRlY2xhcmF0aW9uLmlkLCB2ID0+XG4gICAgICAgICAgICAgIGFkZE5hbWVkKHYubmFtZSwgdiwgcGFyZW50LCBpc1R5cGVWYXJpYWJsZURlY2wpKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBub3Qgc3VyZSBpZiB0aGlzIGlzIGV2ZXIgdHJ1ZVxuXG4gICAgICAgIC8vIGBleHBvcnQgKiBhcyBYIGZyb20gJ3BhdGgnYCBkb2VzIG5vdCBjb25mbGljdFxuICAgICAgICBpZiAobm9kZS5leHBvcnRlZCAmJiBub2RlLmV4cG9ydGVkLm5hbWUpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHJlbW90ZUV4cG9ydHMgPSBFeHBvcnRNYXAuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAocmVtb3RlRXhwb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgICBpZiAocmVtb3RlRXhwb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgcmVtb3RlRXhwb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFBhcmVudChub2RlKVxuXG4gICAgICAgIGxldCBhbnkgPSBmYWxzZVxuICAgICAgICByZW1vdGVFeHBvcnRzLmZvckVhY2goKHYsIG5hbWUpID0+XG4gICAgICAgICAgbmFtZSAhPT0gJ2RlZmF1bHQnICYmXG4gICAgICAgICAgKGFueSA9IHRydWUpICYmIC8vIHBvb3IgbWFuJ3MgZmlsdGVyXG4gICAgICAgICAgYWRkTmFtZWQobmFtZSwgbm9kZSwgcGFyZW50KSlcblxuICAgICAgICBpZiAoIWFueSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgbm9kZS5zb3VyY2UsXG4gICAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKGxldCBbLCBuYW1lZF0gb2YgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgW25hbWUsIG5vZGVzXSBvZiBuYW1lZCkge1xuICAgICAgICAgICAgaWYgKG5vZGVzLnNpemUgPD0gMSkgY29udGludWVcblxuICAgICAgICAgICAgaWYgKGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSkgY29udGludWVcblxuICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgJ011bHRpcGxlIGRlZmF1bHQgZXhwb3J0cy4nKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgIGBNdWx0aXBsZSBleHBvcnRzIG9mIG5hbWUgJyR7bmFtZS5yZXBsYWNlKHRzVHlwZVByZWZpeCwgJycpfScuYFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/exports-last.js b/node_modules/eslint-plugin-import/lib/rules/exports-last.js
index a8ff6a7..54412a6 100644
--- a/node_modules/eslint-plugin-import/lib/rules/exports-last.js
+++ b/node_modules/eslint-plugin-import/lib/rules/exports-last.js
@@ -1,31 +1,23 @@
-'use strict';
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function isNonExportStatement(_ref) {
-  let type = _ref.type;
-
-  return type !== 'ExportDefaultDeclaration' && type !== 'ExportNamedDeclaration' && type !== 'ExportAllDeclaration';
+function isNonExportStatement(_ref) {let type = _ref.type;
+  return type !== 'ExportDefaultDeclaration' &&
+  type !== 'ExportNamedDeclaration' &&
+  type !== 'ExportAllDeclaration';
 }
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('exports-last')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('exports-last') },
+
+    schema: [] },
+
 
   create: function (context) {
     return {
-      Program: function (_ref2) {
-        let body = _ref2.body;
-
+      Program: function (_ref2) {let body = _ref2.body;
         const lastNonExportStatementIndex = body.reduce(function findLastIndex(acc, item, index) {
           if (isNonExportStatement(item)) {
             return index;
@@ -38,13 +30,12 @@
             if (!isNonExportStatement(node)) {
               context.report({
                 node,
-                message: 'Export statements should appear at the end of the file'
-              });
+                message: 'Export statements should appear at the end of the file' });
+
             }
           });
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnRzLWxhc3QuanMiXSwibmFtZXMiOlsiaXNOb25FeHBvcnRTdGF0ZW1lbnQiLCJ0eXBlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIlByb2dyYW0iLCJib2R5IiwibGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4IiwicmVkdWNlIiwiZmluZExhc3RJbmRleCIsImFjYyIsIml0ZW0iLCJpbmRleCIsInNsaWNlIiwiZm9yRWFjaCIsImNoZWNrTm9uRXhwb3J0Iiwibm9kZSIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztBQUVBLFNBQVNBLG9CQUFULE9BQXdDO0FBQUEsTUFBUkMsSUFBUSxRQUFSQSxJQUFROztBQUN0QyxTQUFPQSxTQUFTLDBCQUFULElBQ0xBLFNBQVMsd0JBREosSUFFTEEsU0FBUyxzQkFGWDtBQUdEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkgsVUFBTSxZQURGO0FBRUpJLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxjQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRO0FBTEosR0FEUzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTEMsZUFBUyxpQkFBb0I7QUFBQSxZQUFSQyxJQUFRLFNBQVJBLElBQVE7O0FBQzNCLGNBQU1DLDhCQUE4QkQsS0FBS0UsTUFBTCxDQUFZLFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCQyxJQUE1QixFQUFrQ0MsS0FBbEMsRUFBeUM7QUFDdkYsY0FBSWpCLHFCQUFxQmdCLElBQXJCLENBQUosRUFBZ0M7QUFDOUIsbUJBQU9DLEtBQVA7QUFDRDtBQUNELGlCQUFPRixHQUFQO0FBQ0QsU0FMbUMsRUFLakMsQ0FBQyxDQUxnQyxDQUFwQzs7QUFPQSxZQUFJSCxnQ0FBZ0MsQ0FBQyxDQUFyQyxFQUF3QztBQUN0Q0QsZUFBS08sS0FBTCxDQUFXLENBQVgsRUFBY04sMkJBQWQsRUFBMkNPLE9BQTNDLENBQW1ELFNBQVNDLGNBQVQsQ0FBd0JDLElBQXhCLEVBQThCO0FBQy9FLGdCQUFJLENBQUNyQixxQkFBcUJxQixJQUFyQixDQUFMLEVBQWlDO0FBQy9CWixzQkFBUWEsTUFBUixDQUFlO0FBQ2JELG9CQURhO0FBRWJFLHlCQUFTO0FBRkksZUFBZjtBQUlEO0FBQ0YsV0FQRDtBQVFEO0FBQ0Y7QUFuQkksS0FBUDtBQXFCRDtBQS9CYyxDQUFqQiIsImZpbGUiOiJleHBvcnRzLWxhc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiBpc05vbkV4cG9ydFN0YXRlbWVudCh7IHR5cGUgfSkge1xuICByZXR1cm4gdHlwZSAhPT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicgJiZcbiAgICB0eXBlICE9PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicgJiZcbiAgICB0eXBlICE9PSAnRXhwb3J0QWxsRGVjbGFyYXRpb24nXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZXhwb3J0cy1sYXN0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKHsgYm9keSB9KSB7XG4gICAgICAgIGNvbnN0IGxhc3ROb25FeHBvcnRTdGF0ZW1lbnRJbmRleCA9IGJvZHkucmVkdWNlKGZ1bmN0aW9uIGZpbmRMYXN0SW5kZXgoYWNjLCBpdGVtLCBpbmRleCkge1xuICAgICAgICAgIGlmIChpc05vbkV4cG9ydFN0YXRlbWVudChpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSwgLTEpXG5cbiAgICAgICAgaWYgKGxhc3ROb25FeHBvcnRTdGF0ZW1lbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBib2R5LnNsaWNlKDAsIGxhc3ROb25FeHBvcnRTdGF0ZW1lbnRJbmRleCkuZm9yRWFjaChmdW5jdGlvbiBjaGVja05vbkV4cG9ydChub2RlKSB7XG4gICAgICAgICAgICBpZiAoIWlzTm9uRXhwb3J0U3RhdGVtZW50KG5vZGUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdFeHBvcnQgc3RhdGVtZW50cyBzaG91bGQgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnRzLWxhc3QuanMiXSwibmFtZXMiOlsiaXNOb25FeHBvcnRTdGF0ZW1lbnQiLCJ0eXBlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIlByb2dyYW0iLCJib2R5IiwibGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4IiwicmVkdWNlIiwiZmluZExhc3RJbmRleCIsImFjYyIsIml0ZW0iLCJpbmRleCIsInNsaWNlIiwiZm9yRWFjaCIsImNoZWNrTm9uRXhwb3J0Iiwibm9kZSIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBLFNBQVNBLG9CQUFULE9BQXdDLEtBQVJDLElBQVEsUUFBUkEsSUFBUTtBQUN0QyxTQUFPQSxTQUFTLDBCQUFUO0FBQ0xBLFdBQVMsd0JBREo7QUFFTEEsV0FBUyxzQkFGWDtBQUdEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkgsVUFBTSxZQURGO0FBRUpJLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxjQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsV0FBTztBQUNMQyxlQUFTLGlCQUFvQixLQUFSQyxJQUFRLFNBQVJBLElBQVE7QUFDM0IsY0FBTUMsOEJBQThCRCxLQUFLRSxNQUFMLENBQVksU0FBU0MsYUFBVCxDQUF1QkMsR0FBdkIsRUFBNEJDLElBQTVCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUN2RixjQUFJakIscUJBQXFCZ0IsSUFBckIsQ0FBSixFQUFnQztBQUM5QixtQkFBT0MsS0FBUDtBQUNEO0FBQ0QsaUJBQU9GLEdBQVA7QUFDRCxTQUxtQyxFQUtqQyxDQUFDLENBTGdDLENBQXBDOztBQU9BLFlBQUlILGdDQUFnQyxDQUFDLENBQXJDLEVBQXdDO0FBQ3RDRCxlQUFLTyxLQUFMLENBQVcsQ0FBWCxFQUFjTiwyQkFBZCxFQUEyQ08sT0FBM0MsQ0FBbUQsU0FBU0MsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDL0UsZ0JBQUksQ0FBQ3JCLHFCQUFxQnFCLElBQXJCLENBQUwsRUFBaUM7QUFDL0JaLHNCQUFRYSxNQUFSLENBQWU7QUFDYkQsb0JBRGE7QUFFYkUseUJBQVMsd0RBRkksRUFBZjs7QUFJRDtBQUNGLFdBUEQ7QUFRRDtBQUNGLE9BbkJJLEVBQVA7O0FBcUJELEdBL0JjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydHMtbGFzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzTm9uRXhwb3J0U3RhdGVtZW50KHsgdHlwZSB9KSB7XG4gIHJldHVybiB0eXBlICE9PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJyAmJlxuICAgIHR5cGUgIT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyAmJlxuICAgIHR5cGUgIT09ICdFeHBvcnRBbGxEZWNsYXJhdGlvbidcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdleHBvcnRzLWxhc3QnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtOiBmdW5jdGlvbiAoeyBib2R5IH0pIHtcbiAgICAgICAgY29uc3QgbGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4ID0gYm9keS5yZWR1Y2UoZnVuY3Rpb24gZmluZExhc3RJbmRleChhY2MsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgaWYgKGlzTm9uRXhwb3J0U3RhdGVtZW50KGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCAtMSlcblxuICAgICAgICBpZiAobGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGJvZHkuc2xpY2UoMCwgbGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4KS5mb3JFYWNoKGZ1bmN0aW9uIGNoZWNrTm9uRXhwb3J0KG5vZGUpIHtcbiAgICAgICAgICAgIGlmICghaXNOb25FeHBvcnRTdGF0ZW1lbnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0V4cG9ydCBzdGF0ZW1lbnRzIHNob3VsZCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZScsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/extensions.js b/node_modules/eslint-plugin-import/lib/rules/extensions.js
index 29b5a8a..603be86 100644
--- a/node_modules/eslint-plugin-import/lib/rules/extensions.js
+++ b/node_modules/eslint-plugin-import/lib/rules/extensions.js
@@ -1,41 +1,29 @@
-'use strict';
+'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path);
 
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
 var _importType = require('../core/importType');
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const enumValues = { enum: ['always', 'ignorePackages', 'never'] };
 const patternProperties = {
   type: 'object',
-  patternProperties: { '.*': enumValues }
-};
+  patternProperties: { '.*': enumValues } };
+
 const properties = {
   type: 'object',
   properties: {
     'pattern': patternProperties,
-    'ignorePackages': { type: 'boolean' }
-  }
-};
+    'ignorePackages': { type: 'boolean' } } };
+
+
 
 function buildProperties(context) {
 
   const result = {
     defaultConfig: 'never',
     pattern: {},
-    ignorePackages: false
-  };
+    ignorePackages: false };
+
 
   context.options.forEach(obj => {
 
@@ -74,33 +62,45 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('extensions')
-    },
+      url: (0, _docsUrl2.default)('extensions') },
+
 
     schema: {
-      anyOf: [{
+      anyOf: [
+      {
         type: 'array',
         items: [enumValues],
-        additionalItems: false
-      }, {
+        additionalItems: false },
+
+      {
         type: 'array',
-        items: [enumValues, properties],
-        additionalItems: false
-      }, {
+        items: [
+        enumValues,
+        properties],
+
+        additionalItems: false },
+
+      {
         type: 'array',
         items: [properties],
-        additionalItems: false
-      }, {
+        additionalItems: false },
+
+      {
         type: 'array',
         items: [patternProperties],
-        additionalItems: false
-      }, {
+        additionalItems: false },
+
+      {
         type: 'array',
-        items: [enumValues, patternProperties],
-        additionalItems: false
-      }]
-    }
-  },
+        items: [
+        enumValues,
+        patternProperties],
+
+        additionalItems: false }] } },
+
+
+
+
 
   create: function (context) {
 
@@ -134,11 +134,10 @@
       return false;
     }
 
-    function checkFileExtension(node) {
-      const source = node.source;
+    function checkFileExtension(node) {const
+      source = node.source;
 
       // bail if the declaration doesn't have a source, e.g. "export { foo };"
-
       if (!source) return;
 
       const importPathWithQueryString = source.value;
@@ -159,7 +158,8 @@
       const extension = _path2.default.extname(resolvedPath || importPath).substring(1);
 
       // determine if this is a module
-      const isPackage = (0, _importType.isExternalModule)(importPath, context.settings) || (0, _importType.isScoped)(importPath);
+      const isPackage = (0, _importType.isExternalModule)(importPath, context.settings) ||
+      (0, _importType.isScoped)(importPath);
 
       if (!extension || !importPath.endsWith(`.${extension}`)) {
         const extensionRequired = isUseOfExtensionRequired(extension, isPackage);
@@ -167,23 +167,23 @@
         if (extensionRequired && !extensionForbidden) {
           context.report({
             node: source,
-            message: `Missing file extension ${extension ? `"${extension}" ` : ''}for "${importPathWithQueryString}"`
-          });
+            message:
+            `Missing file extension ${extension ? `"${extension}" ` : ''}for "${importPathWithQueryString}"` });
+
         }
       } else if (extension) {
         if (isUseOfExtensionForbidden(extension) && isResolvableWithoutExtension(importPath)) {
           context.report({
             node: source,
-            message: `Unexpected use of file extension "${extension}" for "${importPathWithQueryString}"`
-          });
+            message: `Unexpected use of file extension "${extension}" for "${importPathWithQueryString}"` });
+
         }
       }
     }
 
     return {
       ImportDeclaration: checkFileExtension,
-      ExportNamedDeclaration: checkFileExtension
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHRlbnNpb25zLmpzIl0sIm5hbWVzIjpbImVudW1WYWx1ZXMiLCJlbnVtIiwicGF0dGVyblByb3BlcnRpZXMiLCJ0eXBlIiwicHJvcGVydGllcyIsImJ1aWxkUHJvcGVydGllcyIsImNvbnRleHQiLCJyZXN1bHQiLCJkZWZhdWx0Q29uZmlnIiwicGF0dGVybiIsImlnbm9yZVBhY2thZ2VzIiwib3B0aW9ucyIsImZvckVhY2giLCJvYmoiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwicHJvcHMiLCJnZXRNb2RpZmllciIsImV4dGVuc2lvbiIsImlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZCIsImlzUGFja2FnZSIsImlzVXNlT2ZFeHRlbnNpb25Gb3JiaWRkZW4iLCJpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uIiwiZmlsZSIsInBhdGgiLCJleHRuYW1lIiwiZmlsZVdpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImxlbmd0aCIsInJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24iLCJpc0V4dGVybmFsUm9vdE1vZHVsZSIsInNsYXNoQ291bnQiLCJzcGxpdCIsImNoZWNrRmlsZUV4dGVuc2lvbiIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nIiwidmFsdWUiLCJzZXR0aW5ncyIsImltcG9ydFBhdGgiLCJyZXBsYWNlIiwicmVzb2x2ZWRQYXRoIiwic3Vic3RyaW5nIiwiZW5kc1dpdGgiLCJleHRlbnNpb25SZXF1aXJlZCIsImV4dGVuc2lvbkZvcmJpZGRlbiIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFFQTs7OztBQUNBOztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxhQUFhLEVBQUVDLE1BQU0sQ0FBRSxRQUFGLEVBQVksZ0JBQVosRUFBOEIsT0FBOUIsQ0FBUixFQUFuQjtBQUNBLE1BQU1DLG9CQUFvQjtBQUN4QkMsUUFBTSxRQURrQjtBQUV4QkQscUJBQW1CLEVBQUUsTUFBTUYsVUFBUjtBQUZLLENBQTFCO0FBSUEsTUFBTUksYUFBYTtBQUNqQkQsUUFBTSxRQURXO0FBRWpCQyxjQUFZO0FBQ1YsZUFBV0YsaUJBREQ7QUFFVixzQkFBa0IsRUFBRUMsTUFBTSxTQUFSO0FBRlI7QUFGSyxDQUFuQjs7QUFRQSxTQUFTRSxlQUFULENBQXlCQyxPQUF6QixFQUFrQzs7QUFFOUIsUUFBTUMsU0FBUztBQUNiQyxtQkFBZSxPQURGO0FBRWJDLGFBQVMsRUFGSTtBQUdiQyxvQkFBZ0I7QUFISCxHQUFmOztBQU1BSixVQUFRSyxPQUFSLENBQWdCQyxPQUFoQixDQUF3QkMsT0FBTzs7QUFFN0I7QUFDQSxRQUFJLE9BQU9BLEdBQVAsS0FBZSxRQUFuQixFQUE2QjtBQUMzQk4sYUFBT0MsYUFBUCxHQUF1QkssR0FBdkI7QUFDQTtBQUNEOztBQUVEO0FBQ0EsUUFBSUEsSUFBSUosT0FBSixLQUFnQkssU0FBaEIsSUFBNkJELElBQUlILGNBQUosS0FBdUJJLFNBQXhELEVBQW1FO0FBQ2pFQyxhQUFPQyxNQUFQLENBQWNULE9BQU9FLE9BQXJCLEVBQThCSSxHQUE5QjtBQUNBO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJQSxJQUFJSixPQUFKLEtBQWdCSyxTQUFwQixFQUErQjtBQUM3QkMsYUFBT0MsTUFBUCxDQUFjVCxPQUFPRSxPQUFyQixFQUE4QkksSUFBSUosT0FBbEM7QUFDRDs7QUFFRDtBQUNBLFFBQUlJLElBQUlILGNBQUosS0FBdUJJLFNBQTNCLEVBQXNDO0FBQ3BDUCxhQUFPRyxjQUFQLEdBQXdCRyxJQUFJSCxjQUE1QjtBQUNEO0FBQ0YsR0F2QkQ7O0FBeUJBLE1BQUlILE9BQU9DLGFBQVAsS0FBeUIsZ0JBQTdCLEVBQStDO0FBQzdDRCxXQUFPQyxhQUFQLEdBQXVCLFFBQXZCO0FBQ0FELFdBQU9HLGNBQVAsR0FBd0IsSUFBeEI7QUFDRDs7QUFFRCxTQUFPSCxNQUFQO0FBQ0g7O0FBRURVLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKaEIsVUFBTSxZQURGO0FBRUppQixVQUFNO0FBQ0pDLFdBQUssdUJBQVEsWUFBUjtBQURELEtBRkY7O0FBTUpDLFlBQVE7QUFDTkMsYUFBTyxDQUNMO0FBQ0VwQixjQUFNLE9BRFI7QUFFRXFCLGVBQU8sQ0FBQ3hCLFVBQUQsQ0FGVDtBQUdFeUIseUJBQWlCO0FBSG5CLE9BREssRUFNTDtBQUNFdEIsY0FBTSxPQURSO0FBRUVxQixlQUFPLENBQ0x4QixVQURLLEVBRUxJLFVBRkssQ0FGVDtBQU1FcUIseUJBQWlCO0FBTm5CLE9BTkssRUFjTDtBQUNFdEIsY0FBTSxPQURSO0FBRUVxQixlQUFPLENBQUNwQixVQUFELENBRlQ7QUFHRXFCLHlCQUFpQjtBQUhuQixPQWRLLEVBbUJMO0FBQ0V0QixjQUFNLE9BRFI7QUFFRXFCLGVBQU8sQ0FBQ3RCLGlCQUFELENBRlQ7QUFHRXVCLHlCQUFpQjtBQUhuQixPQW5CSyxFQXdCTDtBQUNFdEIsY0FBTSxPQURSO0FBRUVxQixlQUFPLENBQ0x4QixVQURLLEVBRUxFLGlCQUZLLENBRlQ7QUFNRXVCLHlCQUFpQjtBQU5uQixPQXhCSztBQUREO0FBTkosR0FEUzs7QUE0Q2ZDLFVBQVEsVUFBVXBCLE9BQVYsRUFBbUI7O0FBRXpCLFVBQU1xQixRQUFRdEIsZ0JBQWdCQyxPQUFoQixDQUFkOztBQUVBLGFBQVNzQixXQUFULENBQXFCQyxTQUFyQixFQUFnQztBQUM5QixhQUFPRixNQUFNbEIsT0FBTixDQUFjb0IsU0FBZCxLQUE0QkYsTUFBTW5CLGFBQXpDO0FBQ0Q7O0FBRUQsYUFBU3NCLHdCQUFULENBQWtDRCxTQUFsQyxFQUE2Q0UsU0FBN0MsRUFBd0Q7QUFDdEQsYUFBT0gsWUFBWUMsU0FBWixNQUEyQixRQUEzQixLQUF3QyxDQUFDRixNQUFNakIsY0FBUCxJQUF5QixDQUFDcUIsU0FBbEUsQ0FBUDtBQUNEOztBQUVELGFBQVNDLHlCQUFULENBQW1DSCxTQUFuQyxFQUE4QztBQUM1QyxhQUFPRCxZQUFZQyxTQUFaLE1BQTJCLE9BQWxDO0FBQ0Q7O0FBRUQsYUFBU0ksNEJBQVQsQ0FBc0NDLElBQXRDLEVBQTRDO0FBQzFDLFlBQU1MLFlBQVlNLGVBQUtDLE9BQUwsQ0FBYUYsSUFBYixDQUFsQjtBQUNBLFlBQU1HLHVCQUF1QkgsS0FBS0ksS0FBTCxDQUFXLENBQVgsRUFBYyxDQUFDVCxVQUFVVSxNQUF6QixDQUE3QjtBQUNBLFlBQU1DLCtCQUErQix1QkFBUUgsb0JBQVIsRUFBOEIvQixPQUE5QixDQUFyQzs7QUFFQSxhQUFPa0MsaUNBQWlDLHVCQUFRTixJQUFSLEVBQWM1QixPQUFkLENBQXhDO0FBQ0Q7O0FBRUQsYUFBU21DLG9CQUFULENBQThCUCxJQUE5QixFQUFvQztBQUNsQyxZQUFNUSxhQUFhUixLQUFLUyxLQUFMLENBQVcsR0FBWCxFQUFnQkosTUFBaEIsR0FBeUIsQ0FBNUM7O0FBRUEsVUFBSSxnQ0FBZUwsSUFBZixLQUF3QlEsY0FBYyxDQUExQyxFQUE2QyxPQUFPLElBQVA7QUFDN0MsVUFBSSxrQ0FBaUJSLElBQWpCLEVBQXVCNUIsT0FBdkIsRUFBZ0MsdUJBQVE0QixJQUFSLEVBQWM1QixPQUFkLENBQWhDLEtBQTJELENBQUNvQyxVQUFoRSxFQUE0RSxPQUFPLElBQVA7QUFDNUUsYUFBTyxLQUFQO0FBQ0Q7O0FBRUQsYUFBU0Usa0JBQVQsQ0FBNEJDLElBQTVCLEVBQWtDO0FBQUEsWUFDeEJDLE1BRHdCLEdBQ2JELElBRGEsQ0FDeEJDLE1BRHdCOztBQUdoQzs7QUFDQSxVQUFJLENBQUNBLE1BQUwsRUFBYTs7QUFFYixZQUFNQyw0QkFBNEJELE9BQU9FLEtBQXpDOztBQUVBO0FBQ0EsVUFBSSwyQkFBVUQseUJBQVYsRUFBcUN6QyxRQUFRMkMsUUFBN0MsQ0FBSixFQUE0RDs7QUFFNUQsWUFBTUMsYUFBYUgsMEJBQTBCSSxPQUExQixDQUFrQyxTQUFsQyxFQUE2QyxFQUE3QyxDQUFuQjs7QUFFQTtBQUNBO0FBQ0EsVUFBSVYscUJBQXFCUyxVQUFyQixDQUFKLEVBQXNDOztBQUV0QyxZQUFNRSxlQUFlLHVCQUFRRixVQUFSLEVBQW9CNUMsT0FBcEIsQ0FBckI7O0FBRUE7QUFDQTtBQUNBLFlBQU11QixZQUFZTSxlQUFLQyxPQUFMLENBQWFnQixnQkFBZ0JGLFVBQTdCLEVBQXlDRyxTQUF6QyxDQUFtRCxDQUFuRCxDQUFsQjs7QUFFQTtBQUNBLFlBQU10QixZQUFZLGtDQUFpQm1CLFVBQWpCLEVBQTZCNUMsUUFBUTJDLFFBQXJDLEtBQ2IsMEJBQVNDLFVBQVQsQ0FETDs7QUFHQSxVQUFJLENBQUNyQixTQUFELElBQWMsQ0FBQ3FCLFdBQVdJLFFBQVgsQ0FBcUIsSUFBR3pCLFNBQVUsRUFBbEMsQ0FBbkIsRUFBeUQ7QUFDdkQsY0FBTTBCLG9CQUFvQnpCLHlCQUF5QkQsU0FBekIsRUFBb0NFLFNBQXBDLENBQTFCO0FBQ0EsY0FBTXlCLHFCQUFxQnhCLDBCQUEwQkgsU0FBMUIsQ0FBM0I7QUFDQSxZQUFJMEIscUJBQXFCLENBQUNDLGtCQUExQixFQUE4QztBQUM1Q2xELGtCQUFRbUQsTUFBUixDQUFlO0FBQ2JaLGtCQUFNQyxNQURPO0FBRWJZLHFCQUNHLDBCQUF5QjdCLFlBQWEsSUFBR0EsU0FBVSxJQUExQixHQUFnQyxFQUFHLFFBQU9rQix5QkFBMEI7QUFIbkYsV0FBZjtBQUtEO0FBQ0YsT0FWRCxNQVVPLElBQUlsQixTQUFKLEVBQWU7QUFDcEIsWUFBSUcsMEJBQTBCSCxTQUExQixLQUF3Q0ksNkJBQTZCaUIsVUFBN0IsQ0FBNUMsRUFBc0Y7QUFDcEY1QyxrQkFBUW1ELE1BQVIsQ0FBZTtBQUNiWixrQkFBTUMsTUFETztBQUViWSxxQkFBVSxxQ0FBb0M3QixTQUFVLFVBQVNrQix5QkFBMEI7QUFGOUUsV0FBZjtBQUlEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPO0FBQ0xZLHlCQUFtQmYsa0JBRGQ7QUFFTGdCLDhCQUF3QmhCO0FBRm5CLEtBQVA7QUFJRDtBQS9IYyxDQUFqQiIsImZpbGUiOiJleHRlbnNpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IHsgaXNCdWlsdEluLCBpc0V4dGVybmFsTW9kdWxlLCBpc1Njb3BlZCwgaXNTY29wZWRNb2R1bGUgfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBlbnVtVmFsdWVzID0geyBlbnVtOiBbICdhbHdheXMnLCAnaWdub3JlUGFja2FnZXMnLCAnbmV2ZXInIF0gfVxuY29uc3QgcGF0dGVyblByb3BlcnRpZXMgPSB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwYXR0ZXJuUHJvcGVydGllczogeyAnLionOiBlbnVtVmFsdWVzIH0sXG59XG5jb25zdCBwcm9wZXJ0aWVzID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgICdwYXR0ZXJuJzogcGF0dGVyblByb3BlcnRpZXMsXG4gICAgJ2lnbm9yZVBhY2thZ2VzJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgfSxcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9wZXJ0aWVzKGNvbnRleHQpIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGRlZmF1bHRDb25maWc6ICduZXZlcicsXG4gICAgICBwYXR0ZXJuOiB7fSxcbiAgICAgIGlnbm9yZVBhY2thZ2VzOiBmYWxzZSxcbiAgICB9XG5cbiAgICBjb250ZXh0Lm9wdGlvbnMuZm9yRWFjaChvYmogPT4ge1xuXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgc3RyaW5nLCBzZXQgZGVmYXVsdENvbmZpZyB0byBpdHMgdmFsdWVcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQuZGVmYXVsdENvbmZpZyA9IG9ialxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIG5ldyBzdHJ1Y3R1cmUsIHRyYW5zZmVyIGFsbCBwcm9wcyB0byByZXN1bHQucGF0dGVyblxuICAgICAgaWYgKG9iai5wYXR0ZXJuID09PSB1bmRlZmluZWQgJiYgb2JqLmlnbm9yZVBhY2thZ2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQucGF0dGVybiwgb2JqKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgcGF0dGVybiBpcyBwcm92aWRlZCwgdHJhbnNmZXIgYWxsIHByb3BzXG4gICAgICBpZiAob2JqLnBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdC5wYXR0ZXJuLCBvYmoucGF0dGVybilcbiAgICAgIH1cblxuICAgICAgLy8gSWYgaWdub3JlUGFja2FnZXMgaXMgcHJvdmlkZWQsIHRyYW5zZmVyIGl0IHRvIHJlc3VsdFxuICAgICAgaWYgKG9iai5pZ25vcmVQYWNrYWdlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IG9iai5pZ25vcmVQYWNrYWdlc1xuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAocmVzdWx0LmRlZmF1bHRDb25maWcgPT09ICdpZ25vcmVQYWNrYWdlcycpIHtcbiAgICAgIHJlc3VsdC5kZWZhdWx0Q29uZmlnID0gJ2Fsd2F5cydcbiAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZXh0ZW5zaW9ucycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbZW51bVZhbHVlc10sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIGVudW1WYWx1ZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtwcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3BhdHRlcm5Qcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgZW51bVZhbHVlcyxcbiAgICAgICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBjb25zdCBwcm9wcyA9IGJ1aWxkUHJvcGVydGllcyhjb250ZXh0KVxuXG4gICAgZnVuY3Rpb24gZ2V0TW9kaWZpZXIoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gcHJvcHMucGF0dGVybltleHRlbnNpb25dIHx8IHByb3BzLmRlZmF1bHRDb25maWdcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VzZU9mRXh0ZW5zaW9uUmVxdWlyZWQoZXh0ZW5zaW9uLCBpc1BhY2thZ2UpIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnYWx3YXlzJyAmJiAoIXByb3BzLmlnbm9yZVBhY2thZ2VzIHx8ICFpc1BhY2thZ2UpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnbmV2ZXInXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZXNvbHZhYmxlV2l0aG91dEV4dGVuc2lvbihmaWxlKSB7XG4gICAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICAgIGNvbnN0IGZpbGVXaXRob3V0RXh0ZW5zaW9uID0gZmlsZS5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aClcbiAgICAgIGNvbnN0IHJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24gPSByZXNvbHZlKGZpbGVXaXRob3V0RXh0ZW5zaW9uLCBjb250ZXh0KVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRXh0ZXJuYWxSb290TW9kdWxlKGZpbGUpIHtcbiAgICAgIGNvbnN0IHNsYXNoQ291bnQgPSBmaWxlLnNwbGl0KCcvJykubGVuZ3RoIC0gMVxuXG4gICAgICBpZiAoaXNTY29wZWRNb2R1bGUoZmlsZSkgJiYgc2xhc2hDb3VudCA8PSAxKSByZXR1cm4gdHJ1ZVxuICAgICAgaWYgKGlzRXh0ZXJuYWxNb2R1bGUoZmlsZSwgY29udGV4dCwgcmVzb2x2ZShmaWxlLCBjb250ZXh0KSkgJiYgIXNsYXNoQ291bnQpIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ZpbGVFeHRlbnNpb24obm9kZSkge1xuICAgICAgY29uc3QgeyBzb3VyY2UgfSA9IG5vZGVcblxuICAgICAgLy8gYmFpbCBpZiB0aGUgZGVjbGFyYXRpb24gZG9lc24ndCBoYXZlIGEgc291cmNlLCBlLmcuIFwiZXhwb3J0IHsgZm9vIH07XCJcbiAgICAgIGlmICghc291cmNlKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aFdpdGhRdWVyeVN0cmluZyA9IHNvdXJjZS52YWx1ZVxuXG4gICAgICAvLyBkb24ndCBlbmZvcmNlIGFueXRoaW5nIG9uIGJ1aWx0aW5zXG4gICAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcucmVwbGFjZSgvXFw/KC4qKSQvLCAnJylcblxuICAgICAgLy8gZG9uJ3QgZW5mb3JjZSBpbiByb290IGV4dGVybmFsIHBhY2thZ2VzIGFzIHRoZXkgbWF5IGhhdmUgbmFtZXMgd2l0aCBgLmpzYC5cbiAgICAgIC8vIExpa2UgYGltcG9ydCBEZWNpbWFsIGZyb20gZGVjaW1hbC5qc2ApXG4gICAgICBpZiAoaXNFeHRlcm5hbFJvb3RNb2R1bGUoaW1wb3J0UGF0aCkpIHJldHVyblxuXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlKGltcG9ydFBhdGgsIGNvbnRleHQpXG5cbiAgICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGZvciB1bnJlc29sdmVkLCB1c2Ugc291cmNlIHZhbHVlLlxuICAgICAgY29uc3QgZXh0ZW5zaW9uID0gcGF0aC5leHRuYW1lKHJlc29sdmVkUGF0aCB8fCBpbXBvcnRQYXRoKS5zdWJzdHJpbmcoMSlcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtb2R1bGVcbiAgICAgIGNvbnN0IGlzUGFja2FnZSA9IGlzRXh0ZXJuYWxNb2R1bGUoaW1wb3J0UGF0aCwgY29udGV4dC5zZXR0aW5ncylcbiAgICAgICAgfHwgaXNTY29wZWQoaW1wb3J0UGF0aClcblxuICAgICAgaWYgKCFleHRlbnNpb24gfHwgIWltcG9ydFBhdGguZW5kc1dpdGgoYC4ke2V4dGVuc2lvbn1gKSkge1xuICAgICAgICBjb25zdCBleHRlbnNpb25SZXF1aXJlZCA9IGlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZChleHRlbnNpb24sIGlzUGFja2FnZSlcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uRm9yYmlkZGVuID0gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pXG4gICAgICAgIGlmIChleHRlbnNpb25SZXF1aXJlZCAmJiAhZXh0ZW5zaW9uRm9yYmlkZGVuKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgYE1pc3NpbmcgZmlsZSBleHRlbnNpb24gJHtleHRlbnNpb24gPyBgXCIke2V4dGVuc2lvbn1cIiBgIDogJyd9Zm9yIFwiJHtpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nfVwiYCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV4dGVuc2lvbikge1xuICAgICAgICBpZiAoaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBzb3VyY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmd9XCJgLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      ExportNamedDeclaration: checkFileExtension };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHRlbnNpb25zLmpzIl0sIm5hbWVzIjpbImVudW1WYWx1ZXMiLCJlbnVtIiwicGF0dGVyblByb3BlcnRpZXMiLCJ0eXBlIiwicHJvcGVydGllcyIsImJ1aWxkUHJvcGVydGllcyIsImNvbnRleHQiLCJyZXN1bHQiLCJkZWZhdWx0Q29uZmlnIiwicGF0dGVybiIsImlnbm9yZVBhY2thZ2VzIiwib3B0aW9ucyIsImZvckVhY2giLCJvYmoiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwicHJvcHMiLCJnZXRNb2RpZmllciIsImV4dGVuc2lvbiIsImlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZCIsImlzUGFja2FnZSIsImlzVXNlT2ZFeHRlbnNpb25Gb3JiaWRkZW4iLCJpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uIiwiZmlsZSIsInBhdGgiLCJleHRuYW1lIiwiZmlsZVdpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImxlbmd0aCIsInJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24iLCJpc0V4dGVybmFsUm9vdE1vZHVsZSIsInNsYXNoQ291bnQiLCJzcGxpdCIsImNoZWNrRmlsZUV4dGVuc2lvbiIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nIiwidmFsdWUiLCJzZXR0aW5ncyIsImltcG9ydFBhdGgiLCJyZXBsYWNlIiwicmVzb2x2ZWRQYXRoIiwic3Vic3RyaW5nIiwiZW5kc1dpdGgiLCJleHRlbnNpb25SZXF1aXJlZCIsImV4dGVuc2lvbkZvcmJpZGRlbiIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iXSwibWFwcGluZ3MiOiJhQUFBLDRCOztBQUVB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d0JoQixrQkFGbkIsRUFBUDs7QUFJRCxHQS9IYyxFQUFqQiIsImZpbGUiOiJleHRlbnNpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IHsgaXNCdWlsdEluLCBpc0V4dGVybmFsTW9kdWxlLCBpc1Njb3BlZCwgaXNTY29wZWRNb2R1bGUgfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBlbnVtVmFsdWVzID0geyBlbnVtOiBbICdhbHdheXMnLCAnaWdub3JlUGFja2FnZXMnLCAnbmV2ZXInIF0gfVxuY29uc3QgcGF0dGVyblByb3BlcnRpZXMgPSB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwYXR0ZXJuUHJvcGVydGllczogeyAnLionOiBlbnVtVmFsdWVzIH0sXG59XG5jb25zdCBwcm9wZXJ0aWVzID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgICdwYXR0ZXJuJzogcGF0dGVyblByb3BlcnRpZXMsXG4gICAgJ2lnbm9yZVBhY2thZ2VzJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgfSxcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9wZXJ0aWVzKGNvbnRleHQpIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGRlZmF1bHRDb25maWc6ICduZXZlcicsXG4gICAgICBwYXR0ZXJuOiB7fSxcbiAgICAgIGlnbm9yZVBhY2thZ2VzOiBmYWxzZSxcbiAgICB9XG5cbiAgICBjb250ZXh0Lm9wdGlvbnMuZm9yRWFjaChvYmogPT4ge1xuXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgc3RyaW5nLCBzZXQgZGVmYXVsdENvbmZpZyB0byBpdHMgdmFsdWVcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQuZGVmYXVsdENvbmZpZyA9IG9ialxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIG5ldyBzdHJ1Y3R1cmUsIHRyYW5zZmVyIGFsbCBwcm9wcyB0byByZXN1bHQucGF0dGVyblxuICAgICAgaWYgKG9iai5wYXR0ZXJuID09PSB1bmRlZmluZWQgJiYgb2JqLmlnbm9yZVBhY2thZ2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQucGF0dGVybiwgb2JqKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgcGF0dGVybiBpcyBwcm92aWRlZCwgdHJhbnNmZXIgYWxsIHByb3BzXG4gICAgICBpZiAob2JqLnBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdC5wYXR0ZXJuLCBvYmoucGF0dGVybilcbiAgICAgIH1cblxuICAgICAgLy8gSWYgaWdub3JlUGFja2FnZXMgaXMgcHJvdmlkZWQsIHRyYW5zZmVyIGl0IHRvIHJlc3VsdFxuICAgICAgaWYgKG9iai5pZ25vcmVQYWNrYWdlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IG9iai5pZ25vcmVQYWNrYWdlc1xuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAocmVzdWx0LmRlZmF1bHRDb25maWcgPT09ICdpZ25vcmVQYWNrYWdlcycpIHtcbiAgICAgIHJlc3VsdC5kZWZhdWx0Q29uZmlnID0gJ2Fsd2F5cydcbiAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZXh0ZW5zaW9ucycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbZW51bVZhbHVlc10sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIGVudW1WYWx1ZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtwcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3BhdHRlcm5Qcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgZW51bVZhbHVlcyxcbiAgICAgICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBjb25zdCBwcm9wcyA9IGJ1aWxkUHJvcGVydGllcyhjb250ZXh0KVxuXG4gICAgZnVuY3Rpb24gZ2V0TW9kaWZpZXIoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gcHJvcHMucGF0dGVybltleHRlbnNpb25dIHx8IHByb3BzLmRlZmF1bHRDb25maWdcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VzZU9mRXh0ZW5zaW9uUmVxdWlyZWQoZXh0ZW5zaW9uLCBpc1BhY2thZ2UpIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnYWx3YXlzJyAmJiAoIXByb3BzLmlnbm9yZVBhY2thZ2VzIHx8ICFpc1BhY2thZ2UpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnbmV2ZXInXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZXNvbHZhYmxlV2l0aG91dEV4dGVuc2lvbihmaWxlKSB7XG4gICAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICAgIGNvbnN0IGZpbGVXaXRob3V0RXh0ZW5zaW9uID0gZmlsZS5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aClcbiAgICAgIGNvbnN0IHJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24gPSByZXNvbHZlKGZpbGVXaXRob3V0RXh0ZW5zaW9uLCBjb250ZXh0KVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRXh0ZXJuYWxSb290TW9kdWxlKGZpbGUpIHtcbiAgICAgIGNvbnN0IHNsYXNoQ291bnQgPSBmaWxlLnNwbGl0KCcvJykubGVuZ3RoIC0gMVxuXG4gICAgICBpZiAoaXNTY29wZWRNb2R1bGUoZmlsZSkgJiYgc2xhc2hDb3VudCA8PSAxKSByZXR1cm4gdHJ1ZVxuICAgICAgaWYgKGlzRXh0ZXJuYWxNb2R1bGUoZmlsZSwgY29udGV4dCwgcmVzb2x2ZShmaWxlLCBjb250ZXh0KSkgJiYgIXNsYXNoQ291bnQpIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ZpbGVFeHRlbnNpb24obm9kZSkge1xuICAgICAgY29uc3QgeyBzb3VyY2UgfSA9IG5vZGVcblxuICAgICAgLy8gYmFpbCBpZiB0aGUgZGVjbGFyYXRpb24gZG9lc24ndCBoYXZlIGEgc291cmNlLCBlLmcuIFwiZXhwb3J0IHsgZm9vIH07XCJcbiAgICAgIGlmICghc291cmNlKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aFdpdGhRdWVyeVN0cmluZyA9IHNvdXJjZS52YWx1ZVxuXG4gICAgICAvLyBkb24ndCBlbmZvcmNlIGFueXRoaW5nIG9uIGJ1aWx0aW5zXG4gICAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcucmVwbGFjZSgvXFw/KC4qKSQvLCAnJylcblxuICAgICAgLy8gZG9uJ3QgZW5mb3JjZSBpbiByb290IGV4dGVybmFsIHBhY2thZ2VzIGFzIHRoZXkgbWF5IGhhdmUgbmFtZXMgd2l0aCBgLmpzYC5cbiAgICAgIC8vIExpa2UgYGltcG9ydCBEZWNpbWFsIGZyb20gZGVjaW1hbC5qc2ApXG4gICAgICBpZiAoaXNFeHRlcm5hbFJvb3RNb2R1bGUoaW1wb3J0UGF0aCkpIHJldHVyblxuXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlKGltcG9ydFBhdGgsIGNvbnRleHQpXG5cbiAgICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGZvciB1bnJlc29sdmVkLCB1c2Ugc291cmNlIHZhbHVlLlxuICAgICAgY29uc3QgZXh0ZW5zaW9uID0gcGF0aC5leHRuYW1lKHJlc29sdmVkUGF0aCB8fCBpbXBvcnRQYXRoKS5zdWJzdHJpbmcoMSlcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtb2R1bGVcbiAgICAgIGNvbnN0IGlzUGFja2FnZSA9IGlzRXh0ZXJuYWxNb2R1bGUoaW1wb3J0UGF0aCwgY29udGV4dC5zZXR0aW5ncylcbiAgICAgICAgfHwgaXNTY29wZWQoaW1wb3J0UGF0aClcblxuICAgICAgaWYgKCFleHRlbnNpb24gfHwgIWltcG9ydFBhdGguZW5kc1dpdGgoYC4ke2V4dGVuc2lvbn1gKSkge1xuICAgICAgICBjb25zdCBleHRlbnNpb25SZXF1aXJlZCA9IGlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZChleHRlbnNpb24sIGlzUGFja2FnZSlcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uRm9yYmlkZGVuID0gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pXG4gICAgICAgIGlmIChleHRlbnNpb25SZXF1aXJlZCAmJiAhZXh0ZW5zaW9uRm9yYmlkZGVuKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgYE1pc3NpbmcgZmlsZSBleHRlbnNpb24gJHtleHRlbnNpb24gPyBgXCIke2V4dGVuc2lvbn1cIiBgIDogJyd9Zm9yIFwiJHtpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nfVwiYCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV4dGVuc2lvbikge1xuICAgICAgICBpZiAoaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBzb3VyY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmd9XCJgLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/first.js b/node_modules/eslint-plugin-import/lib/rules/first.js
index cf24346..02d8229 100644
--- a/node_modules/eslint-plugin-import/lib/rules/first.js
+++ b/node_modules/eslint-plugin-import/lib/rules/first.js
@@ -1,43 +1,41 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('first')
-    },
+      url: (0, _docsUrl2.default)('first') },
+
     fixable: 'code',
-    schema: [{
+    schema: [
+    {
       type: 'string',
-      enum: ['absolute-first']
-    }]
-  },
+      enum: ['absolute-first', 'disable-absolute-first'] }] },
+
+
+
 
   create: function (context) {
     function isPossibleDirective(node) {
-      return node.type === 'ExpressionStatement' && node.expression.type === 'Literal' && typeof node.expression.value === 'string';
+      return node.type === 'ExpressionStatement' &&
+      node.expression.type === 'Literal' &&
+      typeof node.expression.value === 'string';
     }
 
     return {
       'Program': function (n) {
         const body = n.body,
-              absoluteFirst = context.options[0] === 'absolute-first',
-              message = 'Import in body of module; reorder to top.',
-              sourceCode = context.getSourceCode(),
-              originSourceCode = sourceCode.getText();
+        absoluteFirst = context.options[0] === 'absolute-first',
+        message = 'Import in body of module; reorder to top.',
+        sourceCode = context.getSourceCode(),
+        originSourceCode = sourceCode.getText();
         let nonImportCount = 0,
-            anyExpressions = false,
-            anyRelative = false,
-            lastLegalImp = null,
-            errorInfos = [],
-            shouldSort = true,
-            lastSortNodesIndex = 0;
+        anyExpressions = false,
+        anyRelative = false,
+        lastLegalImp = null,
+        errorInfos = [],
+        shouldSort = true,
+        lastSortNodesIndex = 0;
         body.forEach(function (node, index) {
           if (!anyExpressions && isPossibleDirective(node)) {
             return;
@@ -52,8 +50,8 @@
               } else if (anyRelative) {
                 context.report({
                   node: node.source,
-                  message: 'Absolute imports should come before relative imports.'
-                });
+                  message: 'Absolute imports should come before relative imports.' });
+
               }
             }
             if (nonImportCount > 0) {
@@ -72,8 +70,8 @@
               shouldSort && (lastSortNodesIndex = errorInfos.length);
               errorInfos.push({
                 node,
-                range: [body[index - 1].range[1], node.range[1]]
-              });
+                range: [body[index - 1].range[1], node.range[1]] });
+
             } else {
               lastLegalImp = node;
             }
@@ -84,10 +82,10 @@
         if (!errorInfos.length) return;
         errorInfos.forEach(function (errorInfo, index) {
           const node = errorInfo.node,
-                infos = {
+          infos = {
             node,
-            message
-          };
+            message };
+
           if (index < lastSortNodesIndex) {
             infos.fix = function (fixer) {
               return fixer.insertTextAfter(node, '');
@@ -98,31 +96,37 @@
               const removeFixers = sortNodes.map(function (_errorInfo) {
                 return fixer.removeRange(_errorInfo.range);
               }),
-                    range = [0, removeFixers[removeFixers.length - 1].range[1]];
+              range = [0, removeFixers[removeFixers.length - 1].range[1]];
               let insertSourceCode = sortNodes.map(function (_errorInfo) {
-                const nodeSourceCode = String.prototype.slice.apply(originSourceCode, _errorInfo.range);
+                const nodeSourceCode = String.prototype.slice.apply(
+                originSourceCode, _errorInfo.range);
+
                 if (/\S/.test(nodeSourceCode[0])) {
                   return '\n' + nodeSourceCode;
                 }
                 return nodeSourceCode;
               }).join(''),
-                  insertFixer = null,
-                  replaceSourceCode = '';
+              insertFixer = null,
+              replaceSourceCode = '';
               if (!lastLegalImp) {
-                insertSourceCode = insertSourceCode.trim() + insertSourceCode.match(/^(\s+)/)[0];
+                insertSourceCode =
+                insertSourceCode.trim() + insertSourceCode.match(/^(\s+)/)[0];
               }
-              insertFixer = lastLegalImp ? fixer.insertTextAfter(lastLegalImp, insertSourceCode) : fixer.insertTextBefore(body[0], insertSourceCode);
+              insertFixer = lastLegalImp ?
+              fixer.insertTextAfter(lastLegalImp, insertSourceCode) :
+              fixer.insertTextBefore(body[0], insertSourceCode);
               const fixers = [insertFixer].concat(removeFixers);
               fixers.forEach(function (computedFixer, i) {
-                replaceSourceCode += originSourceCode.slice(fixers[i - 1] ? fixers[i - 1].range[1] : 0, computedFixer.range[0]) + computedFixer.text;
+                replaceSourceCode += originSourceCode.slice(
+                fixers[i - 1] ? fixers[i - 1].range[1] : 0, computedFixer.range[0]) +
+                computedFixer.text;
               });
               return fixer.replaceTextRange(range, replaceSourceCode);
             };
           }
           context.report(infos);
         });
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9maXJzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImVudW0iLCJjcmVhdGUiLCJjb250ZXh0IiwiaXNQb3NzaWJsZURpcmVjdGl2ZSIsIm5vZGUiLCJleHByZXNzaW9uIiwidmFsdWUiLCJuIiwiYm9keSIsImFic29sdXRlRmlyc3QiLCJvcHRpb25zIiwibWVzc2FnZSIsInNvdXJjZUNvZGUiLCJnZXRTb3VyY2VDb2RlIiwib3JpZ2luU291cmNlQ29kZSIsImdldFRleHQiLCJub25JbXBvcnRDb3VudCIsImFueUV4cHJlc3Npb25zIiwiYW55UmVsYXRpdmUiLCJsYXN0TGVnYWxJbXAiLCJlcnJvckluZm9zIiwic2hvdWxkU29ydCIsImxhc3RTb3J0Tm9kZXNJbmRleCIsImZvckVhY2giLCJpbmRleCIsInRlc3QiLCJzb3VyY2UiLCJyZXBvcnQiLCJ2YXJpYWJsZSIsImdldERlY2xhcmVkVmFyaWFibGVzIiwicmVmZXJlbmNlcyIsImxlbmd0aCIsInJlZmVyZW5jZSIsImlkZW50aWZpZXIiLCJyYW5nZSIsInB1c2giLCJlcnJvckluZm8iLCJpbmZvcyIsImZpeCIsImZpeGVyIiwiaW5zZXJ0VGV4dEFmdGVyIiwic29ydE5vZGVzIiwic2xpY2UiLCJyZW1vdmVGaXhlcnMiLCJtYXAiLCJfZXJyb3JJbmZvIiwicmVtb3ZlUmFuZ2UiLCJpbnNlcnRTb3VyY2VDb2RlIiwibm9kZVNvdXJjZUNvZGUiLCJTdHJpbmciLCJwcm90b3R5cGUiLCJhcHBseSIsImpvaW4iLCJpbnNlcnRGaXhlciIsInJlcGxhY2VTb3VyY2VDb2RlIiwidHJpbSIsIm1hdGNoIiwiaW5zZXJ0VGV4dEJlZm9yZSIsImZpeGVycyIsImNvbmNhdCIsImNvbXB1dGVkRml4ZXIiLCJpIiwidGV4dCIsInJlcGxhY2VUZXh0UmFuZ2UiXSwibWFwcGluZ3MiOiI7O0FBQUE7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QUNELHVCQUFPQSxjQUFQO0FBQ0QsZUFSa0IsRUFRaEJJLElBUmdCLENBUVgsRUFSVyxDQUF2QjtBQUFBLGtCQVNJQyxjQUFjLElBVGxCO0FBQUEsa0JBVUlDLG9CQUFvQixFQVZ4QjtBQVdBLGtCQUFJLENBQUNuQyxZQUFMLEVBQW1CO0FBQ2Y0QixtQ0FDRUEsaUJBQWlCUSxJQUFqQixLQUEwQlIsaUJBQWlCUyxLQUFqQixDQUF1QixRQUF2QixFQUFpQyxDQUFqQyxDQUQ1QjtBQUVIO0FBQ0RILDRCQUFjbEMsZUFDQW9CLE1BQU1DLGVBQU4sQ0FBc0JyQixZQUF0QixFQUFvQzRCLGdCQUFwQyxDQURBLEdBRUFSLE1BQU1rQixnQkFBTixDQUF1QmpELEtBQUssQ0FBTCxDQUF2QixFQUFnQ3VDLGdCQUFoQyxDQUZkO0FBR0Esb0JBQU1XLFNBQVMsQ0FBQ0wsV0FBRCxFQUFjTSxNQUFkLENBQXFCaEIsWUFBckIsQ0FBZjtBQUNBZSxxQkFBT25DLE9BQVAsQ0FBZSxVQUFVcUMsYUFBVixFQUF5QkMsQ0FBekIsRUFBNEI7QUFDekNQLHFDQUFzQnhDLGlCQUFpQjRCLEtBQWpCLENBQ3BCZ0IsT0FBT0csSUFBSSxDQUFYLElBQWdCSCxPQUFPRyxJQUFJLENBQVgsRUFBYzNCLEtBQWQsQ0FBb0IsQ0FBcEIsQ0FBaEIsR0FBeUMsQ0FEckIsRUFDd0IwQixjQUFjMUIsS0FBZCxDQUFvQixDQUFwQixDQUR4QixJQUVsQjBCLGNBQWNFLElBRmxCO0FBR0QsZUFKRDtBQUtBLHFCQUFPdkIsTUFBTXdCLGdCQUFOLENBQXVCN0IsS0FBdkIsRUFBOEJvQixpQkFBOUIsQ0FBUDtBQUNELGFBOUJEO0FBK0JEO0FBQ0RwRCxrQkFBUXlCLE1BQVIsQ0FBZVUsS0FBZjtBQUNELFNBN0NEO0FBOENEO0FBeEdJLEtBQVA7QUEwR0Q7QUFoSWMsQ0FBakIiLCJmaWxlIjoiZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2ZpcnN0JyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBlbnVtOiBbJ2Fic29sdXRlLWZpcnN0J10sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIGlzUG9zc2libGVEaXJlY3RpdmUgKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdFeHByZXNzaW9uU3RhdGVtZW50JyAmJlxuICAgICAgICBub2RlLmV4cHJlc3Npb24udHlwZSA9PT0gJ0xpdGVyYWwnICYmXG4gICAgICAgIHR5cGVvZiBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09ICdzdHJpbmcnXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtJzogZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgY29uc3QgYm9keSA9IG4uYm9keVxuICAgICAgICAgICAgLCBhYnNvbHV0ZUZpcnN0ID0gY29udGV4dC5vcHRpb25zWzBdID09PSAnYWJzb2x1dGUtZmlyc3QnXG4gICAgICAgICAgICAsIG1lc3NhZ2UgPSAnSW1wb3J0IGluIGJvZHkgb2YgbW9kdWxlOyByZW9yZGVyIHRvIHRvcC4nXG4gICAgICAgICAgICAsIHNvdXJjZUNvZGUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKVxuICAgICAgICAgICAgLCBvcmlnaW5Tb3VyY2VDb2RlID0gc291cmNlQ29kZS5nZXRUZXh0KClcbiAgICAgICAgbGV0IG5vbkltcG9ydENvdW50ID0gMFxuICAgICAgICAgICwgYW55RXhwcmVzc2lvbnMgPSBmYWxzZVxuICAgICAgICAgICwgYW55UmVsYXRpdmUgPSBmYWxzZVxuICAgICAgICAgICwgbGFzdExlZ2FsSW1wID0gbnVsbFxuICAgICAgICAgICwgZXJyb3JJbmZvcyA9IFtdXG4gICAgICAgICAgLCBzaG91bGRTb3J0ID0gdHJ1ZVxuICAgICAgICAgICwgbGFzdFNvcnROb2Rlc0luZGV4ID0gMFxuICAgICAgICBib2R5LmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KXtcbiAgICAgICAgICBpZiAoIWFueUV4cHJlc3Npb25zICYmIGlzUG9zc2libGVEaXJlY3RpdmUobm9kZSkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGFueUV4cHJlc3Npb25zID0gdHJ1ZVxuXG4gICAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgaWYgKGFic29sdXRlRmlyc3QpIHtcbiAgICAgICAgICAgICAgaWYgKC9eXFwuLy50ZXN0KG5vZGUuc291cmNlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGFueVJlbGF0aXZlID0gdHJ1ZVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFueVJlbGF0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgbm9kZTogbm9kZS5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQWJzb2x1dGUgaW1wb3J0cyBzaG91bGQgY29tZSBiZWZvcmUgcmVsYXRpdmUgaW1wb3J0cy4nLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub25JbXBvcnRDb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgdmFyaWFibGUgb2YgY29udGV4dC5nZXREZWNsYXJlZFZhcmlhYmxlcyhub2RlKSkge1xuICAgICAgICAgICAgICAgIGlmICghc2hvdWxkU29ydCkgYnJlYWtcbiAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gdmFyaWFibGUucmVmZXJlbmNlc1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5pZGVudGlmaWVyLnJhbmdlWzBdIDwgbm9kZS5yYW5nZVsxXSkge1xuICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFNvcnQgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2hvdWxkU29ydCAmJiAobGFzdFNvcnROb2Rlc0luZGV4ID0gZXJyb3JJbmZvcy5sZW5ndGgpXG4gICAgICAgICAgICAgIGVycm9ySW5mb3MucHVzaCh7XG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICByYW5nZTogW2JvZHlbaW5kZXggLSAxXS5yYW5nZVsxXSwgbm9kZS5yYW5nZVsxXV0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsYXN0TGVnYWxJbXAgPSBub2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vbkltcG9ydENvdW50KytcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIGlmICghZXJyb3JJbmZvcy5sZW5ndGgpIHJldHVyblxuICAgICAgICBlcnJvckluZm9zLmZvckVhY2goZnVuY3Rpb24gKGVycm9ySW5mbywgaW5kZXgpIHtcbiAgICAgICAgICBjb25zdCBub2RlID0gZXJyb3JJbmZvLm5vZGVcbiAgICAgICAgICAgICAgLCBpbmZvcyA9IHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaW5kZXggPCBsYXN0U29ydE5vZGVzSW5kZXgpIHtcbiAgICAgICAgICAgIGluZm9zLmZpeCA9IGZ1bmN0aW9uIChmaXhlcikge1xuICAgICAgICAgICAgICByZXR1cm4gZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKG5vZGUsICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IGxhc3RTb3J0Tm9kZXNJbmRleCkge1xuICAgICAgICAgICAgY29uc3Qgc29ydE5vZGVzID0gZXJyb3JJbmZvcy5zbGljZSgwLCBsYXN0U29ydE5vZGVzSW5kZXggKyAxKVxuICAgICAgICAgICAgaW5mb3MuZml4ID0gZnVuY3Rpb24gKGZpeGVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUZpeGVycyA9IHNvcnROb2Rlcy5tYXAoZnVuY3Rpb24gKF9lcnJvckluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlbW92ZVJhbmdlKF9lcnJvckluZm8ucmFuZ2UpXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLCByYW5nZSA9IFswLCByZW1vdmVGaXhlcnNbcmVtb3ZlRml4ZXJzLmxlbmd0aCAtIDFdLnJhbmdlWzFdXVxuICAgICAgICAgICAgICBsZXQgaW5zZXJ0U291cmNlQ29kZSA9IHNvcnROb2Rlcy5tYXAoZnVuY3Rpb24gKF9lcnJvckluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZVNvdXJjZUNvZGUgPSBTdHJpbmcucHJvdG90eXBlLnNsaWNlLmFwcGx5KFxuICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblNvdXJjZUNvZGUsIF9lcnJvckluZm8ucmFuZ2VcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBpZiAoL1xcUy8udGVzdChub2RlU291cmNlQ29kZVswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1xcbicgKyBub2RlU291cmNlQ29kZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlU291cmNlQ29kZVxuICAgICAgICAgICAgICAgICAgfSkuam9pbignJylcbiAgICAgICAgICAgICAgICAsIGluc2VydEZpeGVyID0gbnVsbFxuICAgICAgICAgICAgICAgICwgcmVwbGFjZVNvdXJjZUNvZGUgPSAnJ1xuICAgICAgICAgICAgICBpZiAoIWxhc3RMZWdhbEltcCkge1xuICAgICAgICAgICAgICAgICAgaW5zZXJ0U291cmNlQ29kZSA9XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFNvdXJjZUNvZGUudHJpbSgpICsgaW5zZXJ0U291cmNlQ29kZS5tYXRjaCgvXihcXHMrKS8pWzBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW5zZXJ0Rml4ZXIgPSBsYXN0TGVnYWxJbXAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRBZnRlcihsYXN0TGVnYWxJbXAsIGluc2VydFNvdXJjZUNvZGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlci5pbnNlcnRUZXh0QmVmb3JlKGJvZHlbMF0sIGluc2VydFNvdXJjZUNvZGUpXG4gICAgICAgICAgICAgIGNvbnN0IGZpeGVycyA9IFtpbnNlcnRGaXhlcl0uY29uY2F0KHJlbW92ZUZpeGVycylcbiAgICAgICAgICAgICAgZml4ZXJzLmZvckVhY2goZnVuY3Rpb24gKGNvbXB1dGVkRml4ZXIsIGkpIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlU291cmNlQ29kZSArPSAob3JpZ2luU291cmNlQ29kZS5zbGljZShcbiAgICAgICAgICAgICAgICAgIGZpeGVyc1tpIC0gMV0gPyBmaXhlcnNbaSAtIDFdLnJhbmdlWzFdIDogMCwgY29tcHV0ZWRGaXhlci5yYW5nZVswXVxuICAgICAgICAgICAgICAgICkgKyBjb21wdXRlZEZpeGVyLnRleHQpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCByZXBsYWNlU291cmNlQ29kZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoaW5mb3MpXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9maXJzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImVudW0iLCJjcmVhdGUiLCJjb250ZXh0IiwiaXNQb3NzaWJsZURpcmVjdGl2ZSIsIm5vZGUiLCJleHByZXNzaW9uIiwidmFsdWUiLCJuIiwiYm9keSIsImFic29sdXRlRmlyc3QiLCJvcHRpb25zIiwibWVzc2FnZSIsInNvdXJjZUNvZGUiLCJnZXRTb3VyY2VDb2RlIiwib3JpZ2luU291cmNlQ29kZSIsImdldFRleHQiLCJub25JbXBvcnRDb3VudCIsImFueUV4cHJlc3Npb25zIiwiYW55UmVsYXRpdmUiLCJsYXN0TGVnYWxJbXAiLCJlcnJvckluZm9zIiwic2hvdWxkU29ydCIsImxhc3RTb3J0Tm9kZXNJbmRleCIsImZvckVhY2giLCJpbmRleCIsInRlc3QiLCJzb3VyY2UiLCJyZXBvcnQiLCJ2YXJpYWJsZSIsImdldERlY2xhcmVkVmFyaWFibGVzIiwicmVmZXJlbmNlcyIsImxlbmd0aCIsInJlZmVyZW5jZSIsImlkZW50aWZpZXIiLCJyYW5nZSIsInB1c2giLCJlcnJvckluZm8iLCJpbmZvcyIsImZpeCIsImZpeGVyIiwiaW5zZXJ0VGV4dEFmdGVyIiwic29ydE5vZGVzIiwic2xpY2UiLCJyZW1vdmVGaXhlcnMiLCJtYXAiLCJfZXJyb3JJbmZvIiwicmVtb3ZlUmFuZ2UiLCJpbnNlcnRTb3VyY2VDb2RlIiwibm9kZVNvdXJjZUNvZGUiLCJTdHJpbmciLCJwcm90b3R5cGUiLCJhcHBseSIsImpvaW4iLCJpbnNlcnRGaXhlciIsInJlcGxhY2VTb3VyY2VDb2RlIiwidHJpbSIsIm1hdGNoIiwiaW5zZXJ0VGV4dEJlZm9yZSIsImZpeGVycyIsImNvbmNhdCIsImNvbXB1dGVkRml4ZXIiLCJpIiwidGV4dCIsInJlcGxhY2VUZXh0UmFuZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxPQUFSLENBREQsRUFGRjs7QUFLSkMsYUFBUyxNQUxMO0FBTUpDLFlBQVE7QUFDTjtBQUNFSixZQUFNLFFBRFI7QUFFRUssWUFBTSxDQUFDLGdCQUFELEVBQW1CLHdCQUFuQixDQUZSLEVBRE0sQ0FOSixFQURTOzs7OztBQWVmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsbUJBQVQsQ0FBOEJDLElBQTlCLEVBQW9DO0FBQ2xDLGFBQU9BLEtBQUtULElBQUwsS0FBYyxxQkFBZDtBQUNMUyxXQUFLQyxVQUFMLENBQWdCVixJQUFoQixLQUF5QixTQURwQjtBQUVMLGFBQU9TLEtBQUtDLFVBQUwsQ0FBZ0JDLEtBQXZCLEtBQWlDLFFBRm5DO0FBR0Q7O0FBRUQsV0FBTztBQUNMLGlCQUFXLFVBQVVDLENBQVYsRUFBYTtBQUN0QixjQUFNQyxPQUFPRCxFQUFFQyxJQUFmO0FBQ01DLHdCQUFnQlAsUUFBUVEsT0FBUixDQUFnQixDQUFoQixNQUF1QixnQkFEN0M7QUFFTUMsa0JBQVUsMkNBRmhCO0FBR01DLHFCQUFhVixRQUFRVyxhQUFSLEVBSG5CO0FBSU1DLDJCQUFtQkYsV0FBV0csT0FBWCxFQUp6QjtBQUtBLFlBQUlDLGlCQUFpQixDQUFyQjtBQUNJQyx5QkFBaUIsS0FEckI7QUFFSUMsc0JBQWMsS0FGbEI7QUFHSUMsdUJBQWUsSUFIbkI7QUFJSUMscUJBQWEsRUFKakI7QUFLSUMscUJBQWEsSUFMakI7QUFNSUMsNkJBQXFCLENBTnpCO0FBT0FkLGFBQUtlLE9BQUwsQ0FBYSxVQUFVbkIsSUFBVixFQUFnQm9CLEtBQWhCLEVBQXNCO0FBQ2pDLGNBQUksQ0FBQ1AsY0FBRCxJQUFtQmQsb0JBQW9CQyxJQUFwQixDQUF2QixFQUFrRDtBQUNoRDtBQUNEOztBQUVEYSwyQkFBaUIsSUFBakI7O0FBRUEsY0FBSWIsS0FBS1QsSUFBTCxLQUFjLG1CQUFsQixFQUF1QztBQUNyQyxnQkFBSWMsYUFBSixFQUFtQjtBQUNqQixrQkFBSSxNQUFNZ0IsSUFBTixDQUFXckIsS0FBS3NCLE1BQUwsQ0FBWXBCLEtBQXZCLENBQUosRUFBbUM7QUFDakNZLDhCQUFjLElBQWQ7QUFDRCxlQUZELE1BRU8sSUFBSUEsV0FBSixFQUFpQjtBQUN0QmhCLHdCQUFReUIsTUFBUixDQUFlO0FBQ2J2Qix3QkFBTUEsS0FBS3NCLE1BREU7QUFFYmYsMkJBQVMsdURBRkksRUFBZjs7QUFJRDtBQUNGO0FBQ0QsZ0JBQUlLLGlCQUFpQixDQUFyQixFQUF3QjtBQUN0QixtQkFBSyxJQUFJWSxRQUFULElBQXFCMUIsUUFBUTJCLG9CQUFSLENBQTZCekIsSUFBN0IsQ0FBckIsRUFBeUQ7QUFDdkQsb0JBQUksQ0FBQ2lCLFVBQUwsRUFBaUI7QUFDakIsc0JBQU1TLGFBQWFGLFNBQVNFLFVBQTVCO0FBQ0Esb0JBQUlBLFdBQVdDLE1BQWYsRUFBdUI7QUFDckIsdUJBQUssSUFBSUMsU0FBVCxJQUFzQkYsVUFBdEIsRUFBa0M7QUFDaEMsd0JBQUlFLFVBQVVDLFVBQVYsQ0FBcUJDLEtBQXJCLENBQTJCLENBQTNCLElBQWdDOUIsS0FBSzhCLEtBQUwsQ0FBVyxDQUFYLENBQXBDLEVBQW1EO0FBQ2pEYixtQ0FBYSxLQUFiO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7QUFDRjtBQUNEQSw2QkFBZUMscUJBQXFCRixXQUFXVyxNQUEvQztBQUNBWCx5QkFBV2UsSUFBWCxDQUFnQjtBQUNkL0Isb0JBRGM7QUFFZDhCLHVCQUFPLENBQUMxQixLQUFLZ0IsUUFBUSxDQUFiLEVBQWdCVSxLQUFoQixDQUFzQixDQUF0QixDQUFELEVBQTJCOUIsS0FBSzhCLEtBQUwsQ0FBVyxDQUFYLENBQTNCLENBRk8sRUFBaEI7O0FBSUQsYUFsQkQsTUFrQk87QUFDTGYsNkJBQWVmLElBQWY7QUFDRDtBQUNGLFdBaENELE1BZ0NPO0FBQ0xZO0FBQ0Q7QUFDRixTQTFDRDtBQTJDQSxZQUFJLENBQUNJLFdBQVdXLE1BQWhCLEVBQXdCO0FBQ3hCWCxtQkFBV0csT0FBWCxDQUFtQixVQUFVYSxTQUFWLEVBQXFCWixLQUFyQixFQUE0QjtBQUM3QyxnQkFBTXBCLE9BQU9nQyxVQUFVaEMsSUFBdkI7QUFDTWlDLGtCQUFRO0FBQ1JqQyxnQkFEUTtBQUVSTyxtQkFGUSxFQURkOztBQUtBLGNBQUlhLFFBQVFGLGtCQUFaLEVBQWdDO0FBQzlCZSxrQkFBTUMsR0FBTixHQUFZLFVBQVVDLEtBQVYsRUFBaUI7QUFDM0IscUJBQU9BLE1BQU1DLGVBQU4sQ0FBc0JwQyxJQUF0QixFQUE0QixFQUE1QixDQUFQO0FBQ0QsYUFGRDtBQUdELFdBSkQsTUFJTyxJQUFJb0IsVUFBVUYsa0JBQWQsRUFBa0M7QUFDdkMsa0JBQU1tQixZQUFZckIsV0FBV3NCLEtBQVgsQ0FBaUIsQ0FBakIsRUFBb0JwQixxQkFBcUIsQ0FBekMsQ0FBbEI7QUFDQWUsa0JBQU1DLEdBQU4sR0FBWSxVQUFVQyxLQUFWLEVBQWlCO0FBQzNCLG9CQUFNSSxlQUFlRixVQUFVRyxHQUFWLENBQWMsVUFBVUMsVUFBVixFQUFzQjtBQUNuRCx1QkFBT04sTUFBTU8sV0FBTixDQUFrQkQsV0FBV1gsS0FBN0IsQ0FBUDtBQUNELGVBRmdCLENBQXJCO0FBR01BLHNCQUFRLENBQUMsQ0FBRCxFQUFJUyxhQUFhQSxhQUFhWixNQUFiLEdBQXNCLENBQW5DLEVBQXNDRyxLQUF0QyxDQUE0QyxDQUE1QyxDQUFKLENBSGQ7QUFJQSxrQkFBSWEsbUJBQW1CTixVQUFVRyxHQUFWLENBQWMsVUFBVUMsVUFBVixFQUFzQjtBQUNyRCxzQkFBTUcsaUJBQWlCQyxPQUFPQyxTQUFQLENBQWlCUixLQUFqQixDQUF1QlMsS0FBdkI7QUFDckJyQyxnQ0FEcUIsRUFDSCtCLFdBQVdYLEtBRFIsQ0FBdkI7O0FBR0Esb0JBQUksS0FBS1QsSUFBTCxDQUFVdUIsZUFBZSxDQUFmLENBQVYsQ0FBSixFQUFrQztBQUNoQyx5QkFBTyxPQUFPQSxjQUFkO0FBQ0Q7QUFDRCx1QkFBT0EsY0FBUDtBQUNELGVBUmtCLEVBUWhCSSxJQVJnQixDQVFYLEVBUlcsQ0FBdkI7QUFTSUMsNEJBQWMsSUFUbEI7QUFVSUMsa0NBQW9CLEVBVnhCO0FBV0Esa0JBQUksQ0FBQ25DLFlBQUwsRUFBbUI7QUFDZjRCO0FBQ0VBLGlDQUFpQlEsSUFBakIsS0FBMEJSLGlCQUFpQlMsS0FBakIsQ0FBdUIsUUFBdkIsRUFBaUMsQ0FBakMsQ0FENUI7QUFFSDtBQUNESCw0QkFBY2xDO0FBQ0FvQixvQkFBTUMsZUFBTixDQUFzQnJCLFlBQXRCLEVBQW9DNEIsZ0JBQXBDLENBREE7QUFFQVIsb0JBQU1rQixnQkFBTixDQUF1QmpELEtBQUssQ0FBTCxDQUF2QixFQUFnQ3VDLGdCQUFoQyxDQUZkO0FBR0Esb0JBQU1XLFNBQVMsQ0FBQ0wsV0FBRCxFQUFjTSxNQUFkLENBQXFCaEIsWUFBckIsQ0FBZjtBQUNBZSxxQkFBT25DLE9BQVAsQ0FBZSxVQUFVcUMsYUFBVixFQUF5QkMsQ0FBekIsRUFBNEI7QUFDekNQLHFDQUFzQnhDLGlCQUFpQjRCLEtBQWpCO0FBQ3BCZ0IsdUJBQU9HLElBQUksQ0FBWCxJQUFnQkgsT0FBT0csSUFBSSxDQUFYLEVBQWMzQixLQUFkLENBQW9CLENBQXBCLENBQWhCLEdBQXlDLENBRHJCLEVBQ3dCMEIsY0FBYzFCLEtBQWQsQ0FBb0IsQ0FBcEIsQ0FEeEI7QUFFbEIwQiw4QkFBY0UsSUFGbEI7QUFHRCxlQUpEO0FBS0EscUJBQU92QixNQUFNd0IsZ0JBQU4sQ0FBdUI3QixLQUF2QixFQUE4Qm9CLGlCQUE5QixDQUFQO0FBQ0QsYUE5QkQ7QUErQkQ7QUFDRHBELGtCQUFReUIsTUFBUixDQUFlVSxLQUFmO0FBQ0QsU0E3Q0Q7QUE4Q0QsT0F4R0ksRUFBUDs7QUEwR0QsR0FoSWMsRUFBakIiLCJmaWxlIjoiZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2ZpcnN0JyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBlbnVtOiBbJ2Fic29sdXRlLWZpcnN0JywgJ2Rpc2FibGUtYWJzb2x1dGUtZmlyc3QnXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gaXNQb3NzaWJsZURpcmVjdGl2ZSAobm9kZSkge1xuICAgICAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0V4cHJlc3Npb25TdGF0ZW1lbnQnICYmXG4gICAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnTGl0ZXJhbCcgJiZcbiAgICAgICAgdHlwZW9mIG5vZGUuZXhwcmVzc2lvbi52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ1Byb2dyYW0nOiBmdW5jdGlvbiAobikge1xuICAgICAgICBjb25zdCBib2R5ID0gbi5ib2R5XG4gICAgICAgICAgICAsIGFic29sdXRlRmlyc3QgPSBjb250ZXh0Lm9wdGlvbnNbMF0gPT09ICdhYnNvbHV0ZS1maXJzdCdcbiAgICAgICAgICAgICwgbWVzc2FnZSA9ICdJbXBvcnQgaW4gYm9keSBvZiBtb2R1bGU7IHJlb3JkZXIgdG8gdG9wLidcbiAgICAgICAgICAgICwgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gICAgICAgICAgICAsIG9yaWdpblNvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmdldFRleHQoKVxuICAgICAgICBsZXQgbm9uSW1wb3J0Q291bnQgPSAwXG4gICAgICAgICAgLCBhbnlFeHByZXNzaW9ucyA9IGZhbHNlXG4gICAgICAgICAgLCBhbnlSZWxhdGl2ZSA9IGZhbHNlXG4gICAgICAgICAgLCBsYXN0TGVnYWxJbXAgPSBudWxsXG4gICAgICAgICAgLCBlcnJvckluZm9zID0gW11cbiAgICAgICAgICAsIHNob3VsZFNvcnQgPSB0cnVlXG4gICAgICAgICAgLCBsYXN0U29ydE5vZGVzSW5kZXggPSAwXG4gICAgICAgIGJvZHkuZm9yRWFjaChmdW5jdGlvbiAobm9kZSwgaW5kZXgpe1xuICAgICAgICAgIGlmICghYW55RXhwcmVzc2lvbnMgJiYgaXNQb3NzaWJsZURpcmVjdGl2ZShub2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYW55RXhwcmVzc2lvbnMgPSB0cnVlXG5cbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICBpZiAoYWJzb2x1dGVGaXJzdCkge1xuICAgICAgICAgICAgICBpZiAoL15cXC4vLnRlc3Qobm9kZS5zb3VyY2UudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgYW55UmVsYXRpdmUgPSB0cnVlXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoYW55UmVsYXRpdmUpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgICBub2RlOiBub2RlLnNvdXJjZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBYnNvbHV0ZSBpbXBvcnRzIHNob3VsZCBjb21lIGJlZm9yZSByZWxhdGl2ZSBpbXBvcnRzLicsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5vbkltcG9ydENvdW50ID4gMCkge1xuICAgICAgICAgICAgICBmb3IgKGxldCB2YXJpYWJsZSBvZiBjb250ZXh0LmdldERlY2xhcmVkVmFyaWFibGVzKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRTb3J0KSBicmVha1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSB2YXJpYWJsZS5yZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLmlkZW50aWZpZXIucmFuZ2VbMF0gPCBub2RlLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2hvdWxkU29ydCA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzaG91bGRTb3J0ICYmIChsYXN0U29ydE5vZGVzSW5kZXggPSBlcnJvckluZm9zLmxlbmd0aClcbiAgICAgICAgICAgICAgZXJyb3JJbmZvcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIHJhbmdlOiBbYm9keVtpbmRleCAtIDFdLnJhbmdlWzFdLCBub2RlLnJhbmdlWzFdXSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxhc3RMZWdhbEltcCA9IG5vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9uSW1wb3J0Q291bnQrK1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaWYgKCFlcnJvckluZm9zLmxlbmd0aCkgcmV0dXJuXG4gICAgICAgIGVycm9ySW5mb3MuZm9yRWFjaChmdW5jdGlvbiAoZXJyb3JJbmZvLCBpbmRleCkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBlcnJvckluZm8ubm9kZVxuICAgICAgICAgICAgICAsIGluZm9zID0ge1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA8IGxhc3RTb3J0Tm9kZXNJbmRleCkge1xuICAgICAgICAgICAgaW5mb3MuZml4ID0gZnVuY3Rpb24gKGZpeGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXIobm9kZSwgJycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gbGFzdFNvcnROb2Rlc0luZGV4KSB7XG4gICAgICAgICAgICBjb25zdCBzb3J0Tm9kZXMgPSBlcnJvckluZm9zLnNsaWNlKDAsIGxhc3RTb3J0Tm9kZXNJbmRleCArIDEpXG4gICAgICAgICAgICBpbmZvcy5maXggPSBmdW5jdGlvbiAoZml4ZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlRml4ZXJzID0gc29ydE5vZGVzLm1hcChmdW5jdGlvbiAoX2Vycm9ySW5mbykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXIucmVtb3ZlUmFuZ2UoX2Vycm9ySW5mby5yYW5nZSlcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAsIHJhbmdlID0gWzAsIHJlbW92ZUZpeGVyc1tyZW1vdmVGaXhlcnMubGVuZ3RoIC0gMV0ucmFuZ2VbMV1dXG4gICAgICAgICAgICAgIGxldCBpbnNlcnRTb3VyY2VDb2RlID0gc29ydE5vZGVzLm1hcChmdW5jdGlvbiAoX2Vycm9ySW5mbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlU291cmNlQ29kZSA9IFN0cmluZy5wcm90b3R5cGUuc2xpY2UuYXBwbHkoXG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ2luU291cmNlQ29kZSwgX2Vycm9ySW5mby5yYW5nZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxTLy50ZXN0KG5vZGVTb3VyY2VDb2RlWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnXFxuJyArIG5vZGVTb3VyY2VDb2RlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVTb3VyY2VDb2RlXG4gICAgICAgICAgICAgICAgICB9KS5qb2luKCcnKVxuICAgICAgICAgICAgICAgICwgaW5zZXJ0Rml4ZXIgPSBudWxsXG4gICAgICAgICAgICAgICAgLCByZXBsYWNlU291cmNlQ29kZSA9ICcnXG4gICAgICAgICAgICAgIGlmICghbGFzdExlZ2FsSW1wKSB7XG4gICAgICAgICAgICAgICAgICBpbnNlcnRTb3VyY2VDb2RlID1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U291cmNlQ29kZS50cmltKCkgKyBpbnNlcnRTb3VyY2VDb2RlLm1hdGNoKC9eKFxccyspLylbMF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbnNlcnRGaXhlciA9IGxhc3RMZWdhbEltcCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGxhc3RMZWdhbEltcCwgaW5zZXJ0U291cmNlQ29kZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRCZWZvcmUoYm9keVswXSwgaW5zZXJ0U291cmNlQ29kZSlcbiAgICAgICAgICAgICAgY29uc3QgZml4ZXJzID0gW2luc2VydEZpeGVyXS5jb25jYXQocmVtb3ZlRml4ZXJzKVxuICAgICAgICAgICAgICBmaXhlcnMuZm9yRWFjaChmdW5jdGlvbiAoY29tcHV0ZWRGaXhlciwgaSkge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VTb3VyY2VDb2RlICs9IChvcmlnaW5Tb3VyY2VDb2RlLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgZml4ZXJzW2kgLSAxXSA/IGZpeGVyc1tpIC0gMV0ucmFuZ2VbMV0gOiAwLCBjb21wdXRlZEZpeGVyLnJhbmdlWzBdXG4gICAgICAgICAgICAgICAgKSArIGNvbXB1dGVkRml4ZXIudGV4dClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHJlcGxhY2VTb3VyY2VDb2RlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbmZvcylcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/group-exports.js b/node_modules/eslint-plugin-import/lib/rules/group-exports.js
index fb2cf71..42f6b49 100644
--- a/node_modules/eslint-plugin-import/lib/rules/group-exports.js
+++ b/node_modules/eslint-plugin-import/lib/rules/group-exports.js
@@ -1,43 +1,33 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-var _object = require('object.values');
-
-var _object2 = _interopRequireDefault(_object);
-
-var _arrayPrototype = require('array.prototype.flat');
-
-var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
+var _object = require('object.values');var _object2 = _interopRequireDefault(_object);
+var _arrayPrototype = require('array.prototype.flat');var _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const meta = {
   type: 'suggestion',
   docs: {
-    url: (0, _docsUrl2.default)('group-exports')
-  }
-  /* eslint-disable max-len */
-};const errors = {
+    url: (0, _docsUrl2.default)('group-exports') }
+
+
+  /* eslint-disable max-len */ };
+const errors = {
   ExportNamedDeclaration: 'Multiple named export declarations; consolidate all named exports into a single export declaration',
   AssignmentExpression: 'Multiple CommonJS exports; consolidate all exports into a single assignment to `module.exports`'
+
   /* eslint-enable max-len */
 
   /**
-   * Returns an array with names of the properties in the accessor chain for MemberExpression nodes
-   *
-   * Example:
-   *
-   * `module.exports = {}` => ['module', 'exports']
-   * `module.exports.property = true` => ['module', 'exports', 'property']
-   *
-   * @param     {Node}    node    AST Node (MemberExpression)
-   * @return    {Array}           Array with the property names in the chain
-   * @private
-   */
-};function accessorChain(node) {
+                               * Returns an array with names of the properties in the accessor chain for MemberExpression nodes
+                               *
+                               * Example:
+                               *
+                               * `module.exports = {}` => ['module', 'exports']
+                               * `module.exports.property = true` => ['module', 'exports', 'property']
+                               *
+                               * @param     {Node}    node    AST Node (MemberExpression)
+                               * @return    {Array}           Array with the property names in the chain
+                               * @private
+                               */ };
+function accessorChain(node) {
   const chain = [];
 
   do {
@@ -56,19 +46,28 @@
 
 function create(context) {
   const nodes = {
-    modules: new Set(),
-    commonjs: new Set(),
-    sources: {}
-  };
+    modules: {
+      set: new Set(),
+      sources: {} },
+
+    types: {
+      set: new Set(),
+      sources: {} },
+
+    commonjs: {
+      set: new Set() } };
+
+
 
   return {
     ExportNamedDeclaration(node) {
+      let target = node.exportKind === 'type' ? nodes.types : nodes.modules;
       if (!node.source) {
-        nodes.modules.add(node);
-      } else if (Array.isArray(nodes.sources[node.source.value])) {
-        nodes.sources[node.source.value].push(node);
+        target.set.add(node);
+      } else if (Array.isArray(target.sources[node.source.value])) {
+        target.sources[node.source.value].push(node);
       } else {
-        nodes.sources[node.source.value] = [node];
+        target.sources[node.source.value] = [node];
       }
     },
 
@@ -83,51 +82,72 @@
       // Deeper assignments are ignored since they just modify what's already being exported
       // (ie. module.exports.exported.prop = true is ignored)
       if (chain[0] === 'module' && chain[1] === 'exports' && chain.length <= 3) {
-        nodes.commonjs.add(node);
+        nodes.commonjs.set.add(node);
         return;
       }
 
       // Assignments to exports (exports.* = *)
       if (chain[0] === 'exports' && chain.length === 2) {
-        nodes.commonjs.add(node);
+        nodes.commonjs.set.add(node);
         return;
       }
     },
 
     'Program:exit': function onExit() {
       // Report multiple `export` declarations (ES2015 modules)
-      if (nodes.modules.size > 1) {
-        nodes.modules.forEach(node => {
+      if (nodes.modules.set.size > 1) {
+        nodes.modules.set.forEach(node => {
           context.report({
             node,
-            message: errors[node.type]
-          });
+            message: errors[node.type] });
+
         });
       }
 
       // Report multiple `aggregated exports` from the same module (ES2015 modules)
-      (0, _arrayPrototype2.default)((0, _object2.default)(nodes.sources).filter(nodesWithSource => Array.isArray(nodesWithSource) && nodesWithSource.length > 1)).forEach(node => {
+      (0, _arrayPrototype2.default)((0, _object2.default)(nodes.modules.sources).
+      filter(nodesWithSource => Array.isArray(nodesWithSource) && nodesWithSource.length > 1)).
+      forEach(node => {
         context.report({
           node,
-          message: errors[node.type]
+          message: errors[node.type] });
+
+      });
+
+      // Report multiple `export type` declarations (FLOW ES2015 modules)
+      if (nodes.types.set.size > 1) {
+        nodes.types.set.forEach(node => {
+          context.report({
+            node,
+            message: errors[node.type] });
+
         });
+      }
+
+      // Report multiple `aggregated type exports` from the same module (FLOW ES2015 modules)
+      (0, _arrayPrototype2.default)((0, _object2.default)(nodes.types.sources).
+      filter(nodesWithSource => Array.isArray(nodesWithSource) && nodesWithSource.length > 1)).
+      forEach(node => {
+        context.report({
+          node,
+          message: errors[node.type] });
+
       });
 
       // Report multiple `module.exports` assignments (CommonJS)
-      if (nodes.commonjs.size > 1) {
-        nodes.commonjs.forEach(node => {
+      if (nodes.commonjs.set.size > 1) {
+        nodes.commonjs.set.forEach(node => {
           context.report({
             node,
-            message: errors[node.type]
-          });
+            message: errors[node.type] });
+
         });
       }
-    }
-  };
+    } };
+
 }
 
 module.exports = {
   meta,
-  create
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9ncm91cC1leHBvcnRzLmpzIl0sIm5hbWVzIjpbIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImVycm9ycyIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iLCJBc3NpZ25tZW50RXhwcmVzc2lvbiIsImFjY2Vzc29yQ2hhaW4iLCJub2RlIiwiY2hhaW4iLCJ1bnNoaWZ0IiwicHJvcGVydHkiLCJuYW1lIiwib2JqZWN0IiwiY3JlYXRlIiwiY29udGV4dCIsIm5vZGVzIiwibW9kdWxlcyIsIlNldCIsImNvbW1vbmpzIiwic291cmNlcyIsInNvdXJjZSIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwicHVzaCIsImxlZnQiLCJsZW5ndGgiLCJvbkV4aXQiLCJzaXplIiwiZm9yRWFjaCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaWx0ZXIiLCJub2Rlc1dpdGhTb3VyY2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsT0FBTztBQUNYQyxRQUFNLFlBREs7QUFFWEMsUUFBTTtBQUNKQyxTQUFLLHVCQUFRLGVBQVI7QUFERDtBQUlSO0FBTmEsQ0FBYixDQU9BLE1BQU1DLFNBQVM7QUFDYkMsMEJBQXdCLG9HQURYO0FBRWJDLHdCQUFzQjtBQUV4Qjs7QUFFQTs7Ozs7Ozs7Ozs7O0FBTmUsQ0FBZixDQWtCQSxTQUFTQyxhQUFULENBQXVCQyxJQUF2QixFQUE2QjtBQUMzQixRQUFNQyxRQUFRLEVBQWQ7O0FBRUEsS0FBRztBQUNEQSxVQUFNQyxPQUFOLENBQWNGLEtBQUtHLFFBQUwsQ0FBY0MsSUFBNUI7O0FBRUEsUUFBSUosS0FBS0ssTUFBTCxDQUFZWixJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3JDUSxZQUFNQyxPQUFOLENBQWNGLEtBQUtLLE1BQUwsQ0FBWUQsSUFBMUI7QUFDQTtBQUNEOztBQUVESixXQUFPQSxLQUFLSyxNQUFaO0FBQ0Qs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ICcuLi9kb2NzVXJsJ1xuaW1wb3J0IHZhbHVlcyBmcm9tICdvYmplY3QudmFsdWVzJ1xuaW1wb3J0IGZsYXQgZnJvbSAnYXJyYXkucHJvdG90eXBlLmZsYXQnXG5cbmNvbnN0IG1ldGEgPSB7XG4gIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgZG9jczoge1xuICAgIHVybDogZG9jc1VybCgnZ3JvdXAtZXhwb3J0cycpLFxuICB9LFxufVxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuY29uc3QgZXJyb3JzID0ge1xuICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiAnTXVsdGlwbGUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uczsgY29uc29saWRhdGUgYWxsIG5hbWVkIGV4cG9ydHMgaW50byBhIHNpbmdsZSBleHBvcnQgZGVjbGFyYXRpb24nLFxuICBBc3NpZ25tZW50RXhwcmVzc2lvbjogJ011bHRpcGxlIENvbW1vbkpTIGV4cG9ydHM7IGNvbnNvbGlkYXRlIGFsbCBleHBvcnRzIGludG8gYSBzaW5nbGUgYXNzaWdubWVudCB0byBgbW9kdWxlLmV4cG9ydHNgJyxcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiAqL1xuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCBuYW1lcyBvZiB0aGUgcHJvcGVydGllcyBpbiB0aGUgYWNjZXNzb3IgY2hhaW4gZm9yIE1lbWJlckV4cHJlc3Npb24gbm9kZXNcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBtb2R1bGUuZXhwb3J0cyA9IHt9YCA9PiBbJ21vZHVsZScsICdleHBvcnRzJ11cbiAqIGBtb2R1bGUuZXhwb3J0cy5wcm9wZXJ0eSA9IHRydWVgID0+IFsnbW9kdWxlJywgJ2V4cG9ydHMnLCAncHJvcGVydHknXVxuICpcbiAqIEBwYXJhbSAgICAge05vZGV9ICAgIG5vZGUgICAgQVNUIE5vZGUgKE1lbWJlckV4cHJlc3Npb24pXG4gKiBAcmV0dXJuICAgIHtBcnJheX0gICAgICAgICAgIEFycmF5IHdpdGggdGhlIHByb3BlcnR5IG5hbWVzIGluIHRoZSBjaGFpblxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gYWNjZXNzb3JDaGFpbihub2RlKSB7XG4gIGNvbnN0IGNoYWluID0gW11cblxuICBkbyB7XG4gICAgY2hhaW4udW5zaGlmdChub2RlLnByb3BlcnR5Lm5hbWUpXG5cbiAgICBpZiAobm9kZS5vYmplY3QudHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICBjaGFpbi51bnNoaWZ0KG5vZGUub2JqZWN0Lm5hbWUpXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLm9iamVjdFxuICB9IHdoaWxlIChub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJylcblxuICByZXR1cm4gY2hhaW5cbn1cblxuZnVuY3Rpb24gY3JlYXRlKGNvbnRleHQpIHtcbiAgY29uc3Qgbm9kZXMgPSB7XG4gICAgbW9kdWxlczogbmV3IFNldCgpLFxuICAgIGNvbW1vbmpzOiBuZXcgU2V0KCksXG4gICAgc291cmNlczoge30sXG4gIH1cblxuICByZXR1cm4ge1xuICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgICBub2Rlcy5tb2R1bGVzLmFkZChub2RlKVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5vZGVzLnNvdXJjZXNbbm9kZS5zb3VyY2UudmFsdWVdKSkge1xuICAgICAgICBub2Rlcy5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXS5wdXNoKG5vZGUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2Rlcy5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSA9IFtub2RlXVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBBc3NpZ25tZW50RXhwcmVzc2lvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5sZWZ0LnR5cGUgIT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hhaW4gPSBhY2Nlc3NvckNoYWluKG5vZGUubGVmdClcblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gbW9kdWxlLmV4cG9ydHNcbiAgICAgIC8vIERlZXBlciBhc3NpZ25tZW50cyBhcmUgaWdub3JlZCBzaW5jZSB0aGV5IGp1c3QgbW9kaWZ5IHdoYXQncyBhbHJlYWR5IGJlaW5nIGV4cG9ydGVkXG4gICAgICAvLyAoaWUuIG1vZHVsZS5leHBvcnRzLmV4cG9ydGVkLnByb3AgPSB0cnVlIGlzIGlnbm9yZWQpXG4gICAgICBpZiAoY2hhaW5bMF0gPT09ICdtb2R1bGUnICYmIGNoYWluWzFdID09PSAnZXhwb3J0cycgJiYgY2hhaW4ubGVuZ3RoIDw9IDMpIHtcbiAgICAgICAgbm9kZXMuY29tbW9uanMuYWRkKG5vZGUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBBc3NpZ25tZW50cyB0byBleHBvcnRzIChleHBvcnRzLiogPSAqKVxuICAgICAgaWYgKGNoYWluWzBdID09PSAnZXhwb3J0cycgJiYgY2hhaW4ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIG5vZGVzLmNvbW1vbmpzLmFkZChub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uIG9uRXhpdCgpIHtcbiAgICAgIC8vIFJlcG9ydCBtdWx0aXBsZSBgZXhwb3J0YCBkZWNsYXJhdGlvbnMgKEVTMjAxNSBtb2R1bGVzKVxuICAgICAgaWYgKG5vZGVzLm1vZHVsZXMuc2l6ZSA+IDEpIHtcbiAgICAgICAgbm9kZXMubW9kdWxlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgbXVsdGlwbGUgYGFnZ3JlZ2F0ZWQgZXhwb3J0c2AgZnJvbSB0aGUgc2FtZSBtb2R1bGUgKEVTMjAxNSBtb2R1bGVzKVxuICAgICAgZmxhdCh2YWx1ZXMobm9kZXMuc291cmNlcylcbiAgICAgICAgLmZpbHRlcihub2Rlc1dpdGhTb3VyY2UgPT4gQXJyYXkuaXNBcnJheShub2Rlc1dpdGhTb3VyY2UpICYmIG5vZGVzV2l0aFNvdXJjZS5sZW5ndGggPiAxKSlcbiAgICAgICAgLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBtb2R1bGUuZXhwb3J0c2AgYXNzaWdubWVudHMgKENvbW1vbkpTKVxuICAgICAgaWYgKG5vZGVzLmNvbW1vbmpzLnNpemUgPiAxKSB7XG4gICAgICAgIG5vZGVzLmNvbW1vbmpzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yc1tub2RlLnR5cGVdLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YSxcbiAgY3JlYXRlLFxufVxuIl19
\ No newline at end of file
+  create };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9ncm91cC1leHBvcnRzLmpzIl0sIm5hbWVzIjpbIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImVycm9ycyIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iLCJBc3NpZ25tZW50RXhwcmVzc2lvbiIsImFjY2Vzc29yQ2hhaW4iLCJub2RlIiwiY2hhaW4iLCJ1bnNoaWZ0IiwicHJvcGVydHkiLCJuYW1lIiwib2JqZWN0IiwiY3JlYXRlIiwiY29udGV4dCIsIm5vZGVzIiwibW9kdWxlcyIsInNldCIsIlNldCIsInNvdXJjZXMiLCJ0eXBlcyIsImNvbW1vbmpzIiwidGFyZ2V0IiwiZXhwb3J0S2luZCIsInNvdXJjZSIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwicHVzaCIsImxlZnQiLCJsZW5ndGgiLCJvbkV4aXQiLCJzaXplIiwiZm9yRWFjaCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaWx0ZXIiLCJub2Rlc1dpdGhTb3VyY2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQztBQUNBLHVDO0FBQ0Esc0Q7O0FBRUEsTUFBTUEsT0FBTztBQUNYQyxRQUFNLFlBREs7QUFFWEMsUUFBTTtBQUNKQyxTQUFLLHVCQUFRLGVBQVIsQ0FERDs7O0FBSVIsOEJBTmEsRUFBYjtBQU9BLE1BQU1DLFNBQVM7QUFDYkMsMEJBQXdCLG9HQURYO0FBRWJDLHdCQUFzQjs7QUFFeEI7O0FBRUE7Ozs7Ozs7Ozs7O2lDQU5lLEVBQWY7QUFrQkEsU0FBU0MsYUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFDM0IsUUFBTUMsUUFBUSxFQUFkOztBQUVBLEtBQUc7QUFDREEsVUFBTUMsT0FBTixDQUFjRixLQUFLRyxRQUFMLENBQWNDLElBQTVCOztBQUVBLFFBQUlKLEtBQUtLLE1BQUwsQ0FBWVosSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUNyQ1EsWUFBTUMsT0FBTixDQUFjRixLQUFLSyxNQUFMLENBQVlELElBQTFCO0FBQ0E7QUFDRDs7QUFFREosV0FBT0EsS0FBS0ssTUFBWjtBQUNELEdBVEQsUUFTU0wsS0FBS1AsSUFBTCxLQUFjLGtCQVR2Qjs7QUFXQSxTQUFPUSxLQUFQO0FBQ0Q7O0FBRUQsU0FBU0ssTUFBVCxDQUFnQkMsT0FBaEIsRUFBeUI7QUFDdkIsUUFBTUMsUUFBUTtBQUNaQyxhQUFTO0FBQ1BDLFdBQUssSUFBSUMsR0FBSixFQURFO0FBRVBDLGVBQVMsRUFGRixFQURHOztBQUtaQyxXQUFPO0FBQ0xILFdBQUssSUFBSUMsR0FBSixFQURBO0FBRUxDLGVBQVMsRUFGSixFQUxLOztBQVNaRSxjQUFVO0FBQ1JKLFdBQUssSUFBSUMsR0FBSixFQURHLEVBVEUsRUFBZDs7OztBQWNBLFNBQU87QUFDTGQsMkJBQXVCRyxJQUF2QixFQUE2QjtBQUMzQixVQUFJZSxTQUFTZixLQUFLZ0IsVUFBTCxLQUFvQixNQUFwQixHQUE2QlIsTUFBTUssS0FBbkMsR0FBMkNMLE1BQU1DLE9BQTlEO0FBQ0EsVUFBSSxDQUFDVCxLQUFLaUIsTUFBVixFQUFrQjtBQUNoQkYsZUFBT0wsR0FBUCxDQUFXUSxHQUFYLENBQWVsQixJQUFmO0FBQ0QsT0FGRCxNQUVPLElBQUltQixNQUFNQyxPQUFOLENBQWNMLE9BQU9ILE9BQVAsQ0FBZVosS0FBS2lCLE1BQUwsQ0FBWUksS0FBM0IsQ0FBZCxDQUFKLEVBQXNEO0FBQzNETixlQUFPSCxPQUFQLENBQWVaLEtBQUtpQixNQUFMLENBQVlJLEtBQTNCLEVBQWtDQyxJQUFsQyxDQUF1Q3RCLElBQXZDO0FBQ0QsT0FGTSxNQUVBO0FBQ0xlLGVBQU9ILE9BQVAsQ0FBZVosS0FBS2lCLE1BQUwsQ0FBWUksS0FBM0IsSUFBb0MsQ0FBQ3JCLElBQUQsQ0FBcEM7QUFDRDtBQUNGLEtBVkk7O0FBWUxGLHlCQUFxQkUsSUFBckIsRUFBMkI7QUFDekIsVUFBSUEsS0FBS3VCLElBQUwsQ0FBVTlCLElBQVYsS0FBbUIsa0JBQXZCLEVBQTJDO0FBQ3pDO0FBQ0Q7O0FBRUQsWUFBTVEsUUFBUUYsY0FBY0MsS0FBS3VCLElBQW5CLENBQWQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBSXRCLE1BQU0sQ0FBTixNQUFhLFFBQWIsSUFBeUJBLE1BQU0sQ0FBTixNQUFhLFNBQXRDLElBQW1EQSxNQUFNdUIsTUFBTixJQUFnQixDQUF2RSxFQUEwRTtBQUN4RWhCLGNBQU1NLFFBQU4sQ0FBZUosR0FBZixDQUFtQlEsR0FBbkIsQ0FBdUJsQixJQUF2QjtBQUNBO0FBQ0Q7O0FBRUQ7QUFDQSxVQUFJQyxNQUFNLENBQU4sTUFBYSxTQUFiLElBQTBCQSxNQUFNdUIsTUFBTixLQUFpQixDQUEvQyxFQUFrRDtBQUNoRGhCLGNBQU1NLFFBQU4sQ0FBZUosR0FBZixDQUFtQlEsR0FBbkIsQ0FBdUJsQixJQUF2QjtBQUNBO0FBQ0Q7QUFDRixLQWhDSTs7QUFrQ0wsb0JBQWdCLFNBQVN5QixNQUFULEdBQWtCO0FBQ2hDO0FBQ0EsVUFBSWpCLE1BQU1DLE9BQU4sQ0FBY0MsR0FBZCxDQUFrQmdCLElBQWxCLEdBQXlCLENBQTdCLEVBQWdDO0FBQzlCbEIsY0FBTUMsT0FBTixDQUFjQyxHQUFkLENBQWtCaUIsT0FBbEIsQ0FBMEIzQixRQUFRO0FBQ2hDTyxrQkFBUXFCLE1BQVIsQ0FBZTtBQUNiNUIsZ0JBRGE7QUFFYjZCLHFCQUFTakMsT0FBT0ksS0FBS1AsSUFBWixDQUZJLEVBQWY7O0FBSUQsU0FMRDtBQU1EOztBQUVEO0FBQ0Esb0NBQUssc0JBQU9lLE1BQU1DLE9BQU4sQ0FBY0csT0FBckI7QUFDRmtCLFlBREUsQ0FDS0MsbUJBQW1CWixNQUFNQyxPQUFOLENBQWNXLGVBQWQsS0FBa0NBLGdCQUFnQlAsTUFBaEIsR0FBeUIsQ0FEbkYsQ0FBTDtBQUVHRyxhQUZILENBRVkzQixJQUFELElBQVU7QUFDakJPLGdCQUFRcUIsTUFBUixDQUFlO0FBQ2I1QixjQURhO0FBRWI2QixtQkFBU2pDLE9BQU9JLEtBQUtQLElBQVosQ0FGSSxFQUFmOztBQUlELE9BUEg7O0FBU0E7QUFDQSxVQUFJZSxNQUFNSyxLQUFOLENBQVlILEdBQVosQ0FBZ0JnQixJQUFoQixHQUF1QixDQUEzQixFQUE4QjtBQUM1QmxCLGNBQU1LLEtBQU4sQ0FBWUgsR0FBWixDQUFnQmlCLE9BQWhCLENBQXdCM0IsUUFBUTtBQUM5Qk8sa0JBQVFxQixNQUFSLENBQWU7QUFDYjVCLGdCQURhO0FBRWI2QixxQkFBU2pDLE9BQU9JLEtBQUtQLElBQVosQ0FGSSxFQUFmOztBQUlELFNBTEQ7QUFNRDs7QUFFRDtBQUNBLG9DQUFLLHNCQUFPZSxNQUFNSyxLQUFOLENBQVlELE9BQW5CO0FBQ0ZrQixZQURFLENBQ0tDLG1CQUFtQlosTUFBTUMsT0FBTixDQUFjVyxlQUFkLEtBQWtDQSxnQkFBZ0JQLE1BQWhCLEdBQXlCLENBRG5GLENBQUw7QUFFR0csYUFGSCxDQUVZM0IsSUFBRCxJQUFVO0FBQ2pCTyxnQkFBUXFCLE1BQVIsQ0FBZTtBQUNiNUIsY0FEYTtBQUViNkIsbUJBQVNqQyxPQUFPSSxLQUFLUCxJQUFaLENBRkksRUFBZjs7QUFJRCxPQVBIOztBQVNBO0FBQ0EsVUFBSWUsTUFBTU0sUUFBTixDQUFlSixHQUFmLENBQW1CZ0IsSUFBbkIsR0FBMEIsQ0FBOUIsRUFBaUM7QUFDL0JsQixjQUFNTSxRQUFOLENBQWVKLEdBQWYsQ0FBbUJpQixPQUFuQixDQUEyQjNCLFFBQVE7QUFDakNPLGtCQUFRcUIsTUFBUixDQUFlO0FBQ2I1QixnQkFEYTtBQUViNkIscUJBQVNqQyxPQUFPSSxLQUFLUCxJQUFaLENBRkksRUFBZjs7QUFJRCxTQUxEO0FBTUQ7QUFDRixLQXBGSSxFQUFQOztBQXNGRDs7QUFFRHVDLE9BQU9DLE9BQVAsR0FBaUI7QUFDZnpDLE1BRGU7QUFFZmMsUUFGZSxFQUFqQiIsImZpbGUiOiJncm91cC1leHBvcnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCB2YWx1ZXMgZnJvbSAnb2JqZWN0LnZhbHVlcydcbmltcG9ydCBmbGF0IGZyb20gJ2FycmF5LnByb3RvdHlwZS5mbGF0J1xuXG5jb25zdCBtZXRhID0ge1xuICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gIGRvY3M6IHtcbiAgICB1cmw6IGRvY3NVcmwoJ2dyb3VwLWV4cG9ydHMnKSxcbiAgfSxcbn1cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmNvbnN0IGVycm9ycyA9IHtcbiAgRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogJ011bHRpcGxlIG5hbWVkIGV4cG9ydCBkZWNsYXJhdGlvbnM7IGNvbnNvbGlkYXRlIGFsbCBuYW1lZCBleHBvcnRzIGludG8gYSBzaW5nbGUgZXhwb3J0IGRlY2xhcmF0aW9uJyxcbiAgQXNzaWdubWVudEV4cHJlc3Npb246ICdNdWx0aXBsZSBDb21tb25KUyBleHBvcnRzOyBjb25zb2xpZGF0ZSBhbGwgZXhwb3J0cyBpbnRvIGEgc2luZ2xlIGFzc2lnbm1lbnQgdG8gYG1vZHVsZS5leHBvcnRzYCcsXG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggbmFtZXMgb2YgdGhlIHByb3BlcnRpZXMgaW4gdGhlIGFjY2Vzc29yIGNoYWluIGZvciBNZW1iZXJFeHByZXNzaW9uIG5vZGVzXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgbW9kdWxlLmV4cG9ydHMgPSB7fWAgPT4gWydtb2R1bGUnLCAnZXhwb3J0cyddXG4gKiBgbW9kdWxlLmV4cG9ydHMucHJvcGVydHkgPSB0cnVlYCA9PiBbJ21vZHVsZScsICdleHBvcnRzJywgJ3Byb3BlcnR5J11cbiAqXG4gKiBAcGFyYW0gICAgIHtOb2RlfSAgICBub2RlICAgIEFTVCBOb2RlIChNZW1iZXJFeHByZXNzaW9uKVxuICogQHJldHVybiAgICB7QXJyYXl9ICAgICAgICAgICBBcnJheSB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lcyBpbiB0aGUgY2hhaW5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGFjY2Vzc29yQ2hhaW4obm9kZSkge1xuICBjb25zdCBjaGFpbiA9IFtdXG5cbiAgZG8ge1xuICAgIGNoYWluLnVuc2hpZnQobm9kZS5wcm9wZXJ0eS5uYW1lKVxuXG4gICAgaWYgKG5vZGUub2JqZWN0LnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgY2hhaW4udW5zaGlmdChub2RlLm9iamVjdC5uYW1lKVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5vYmplY3RcbiAgfSB3aGlsZSAobm9kZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpXG5cbiAgcmV0dXJuIGNoYWluXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0KSB7XG4gIGNvbnN0IG5vZGVzID0ge1xuICAgIG1vZHVsZXM6IHtcbiAgICAgIHNldDogbmV3IFNldCgpLFxuICAgICAgc291cmNlczoge30sXG4gICAgfSxcbiAgICB0eXBlczoge1xuICAgICAgc2V0OiBuZXcgU2V0KCksXG4gICAgICBzb3VyY2VzOiB7fSxcbiAgICB9LFxuICAgIGNvbW1vbmpzOiB7XG4gICAgICBzZXQ6IG5ldyBTZXQoKSxcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGxldCB0YXJnZXQgPSBub2RlLmV4cG9ydEtpbmQgPT09ICd0eXBlJyA/IG5vZGVzLnR5cGVzIDogbm9kZXMubW9kdWxlc1xuICAgICAgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgICB0YXJnZXQuc2V0LmFkZChub2RlKVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRhcmdldC5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSkpIHtcbiAgICAgICAgdGFyZ2V0LnNvdXJjZXNbbm9kZS5zb3VyY2UudmFsdWVdLnB1c2gobm9kZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldC5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSA9IFtub2RlXVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBBc3NpZ25tZW50RXhwcmVzc2lvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5sZWZ0LnR5cGUgIT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hhaW4gPSBhY2Nlc3NvckNoYWluKG5vZGUubGVmdClcblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gbW9kdWxlLmV4cG9ydHNcbiAgICAgIC8vIERlZXBlciBhc3NpZ25tZW50cyBhcmUgaWdub3JlZCBzaW5jZSB0aGV5IGp1c3QgbW9kaWZ5IHdoYXQncyBhbHJlYWR5IGJlaW5nIGV4cG9ydGVkXG4gICAgICAvLyAoaWUuIG1vZHVsZS5leHBvcnRzLmV4cG9ydGVkLnByb3AgPSB0cnVlIGlzIGlnbm9yZWQpXG4gICAgICBpZiAoY2hhaW5bMF0gPT09ICdtb2R1bGUnICYmIGNoYWluWzFdID09PSAnZXhwb3J0cycgJiYgY2hhaW4ubGVuZ3RoIDw9IDMpIHtcbiAgICAgICAgbm9kZXMuY29tbW9uanMuc2V0LmFkZChub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gZXhwb3J0cyAoZXhwb3J0cy4qID0gKilcbiAgICAgIGlmIChjaGFpblswXSA9PT0gJ2V4cG9ydHMnICYmIGNoYWluLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBub2Rlcy5jb21tb25qcy5zZXQuYWRkKG5vZGUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gb25FeGl0KCkge1xuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBleHBvcnRgIGRlY2xhcmF0aW9ucyAoRVMyMDE1IG1vZHVsZXMpXG4gICAgICBpZiAobm9kZXMubW9kdWxlcy5zZXQuc2l6ZSA+IDEpIHtcbiAgICAgICAgbm9kZXMubW9kdWxlcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBhZ2dyZWdhdGVkIGV4cG9ydHNgIGZyb20gdGhlIHNhbWUgbW9kdWxlIChFUzIwMTUgbW9kdWxlcylcbiAgICAgIGZsYXQodmFsdWVzKG5vZGVzLm1vZHVsZXMuc291cmNlcylcbiAgICAgICAgLmZpbHRlcihub2Rlc1dpdGhTb3VyY2UgPT4gQXJyYXkuaXNBcnJheShub2Rlc1dpdGhTb3VyY2UpICYmIG5vZGVzV2l0aFNvdXJjZS5sZW5ndGggPiAxKSlcbiAgICAgICAgLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBleHBvcnQgdHlwZWAgZGVjbGFyYXRpb25zIChGTE9XIEVTMjAxNSBtb2R1bGVzKVxuICAgICAgaWYgKG5vZGVzLnR5cGVzLnNldC5zaXplID4gMSkge1xuICAgICAgICBub2Rlcy50eXBlcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBhZ2dyZWdhdGVkIHR5cGUgZXhwb3J0c2AgZnJvbSB0aGUgc2FtZSBtb2R1bGUgKEZMT1cgRVMyMDE1IG1vZHVsZXMpXG4gICAgICBmbGF0KHZhbHVlcyhub2Rlcy50eXBlcy5zb3VyY2VzKVxuICAgICAgICAuZmlsdGVyKG5vZGVzV2l0aFNvdXJjZSA9PiBBcnJheS5pc0FycmF5KG5vZGVzV2l0aFNvdXJjZSkgJiYgbm9kZXNXaXRoU291cmNlLmxlbmd0aCA+IDEpKVxuICAgICAgICAuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAvLyBSZXBvcnQgbXVsdGlwbGUgYG1vZHVsZS5leHBvcnRzYCBhc3NpZ25tZW50cyAoQ29tbW9uSlMpXG4gICAgICBpZiAobm9kZXMuY29tbW9uanMuc2V0LnNpemUgPiAxKSB7XG4gICAgICAgIG5vZGVzLmNvbW1vbmpzLnNldC5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGEsXG4gIGNyZWF0ZSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/imports-first.js b/node_modules/eslint-plugin-import/lib/rules/imports-first.js
index 77fd18d..7f6d199 100644
--- a/node_modules/eslint-plugin-import/lib/rules/imports-first.js
+++ b/node_modules/eslint-plugin-import/lib/rules/imports-first.js
@@ -1,19 +1,13 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const first = require('./first');
 
 const newMeta = Object.assign({}, first.meta, {
   deprecated: true,
   docs: {
-    url: (0, _docsUrl2.default)('imports-first', '7b25c1cb95ee18acc1531002fd343e1e6031f9ed')
-  }
-});
+    url: (0, _docsUrl2.default)('imports-first', '7b25c1cb95ee18acc1531002fd343e1e6031f9ed') } });
+
+
 
 module.exports = Object.assign({}, first, { meta: newMeta });
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9pbXBvcnRzLWZpcnN0LmpzIl0sIm5hbWVzIjpbImZpcnN0IiwicmVxdWlyZSIsIm5ld01ldGEiLCJPYmplY3QiLCJhc3NpZ24iLCJtZXRhIiwiZGVwcmVjYXRlZCIsImRvY3MiLCJ1cmwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFFQSxNQUFNQSxRQUFRQyxRQUFRLFNBQVIsQ0FBZDs7QUFFQSxNQUFNQyxVQUFVQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosTUFBTUssSUFBeEIsRUFBOEI7QUFDNUNDLGNBQVksSUFEZ0M7QUFFNUNDLFFBQU07QUFDSkMsU0FBSyx1QkFBUSxlQUFSLEVBQXlCLDBDQUF6QjtBQUREO0FBRnNDLENBQTlCLENBQWhCOztBQU9BQyxPQUFPQyxPQUFQLEdBQWlCUCxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosS0FBbEIsRUFBeUIsRUFBRUssTUFBTUgsT0FBUixFQUF6QixDQUFqQiIsImZpbGUiOiJpbXBvcnRzLWZpcnN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuY29uc3QgZmlyc3QgPSByZXF1aXJlKCcuL2ZpcnN0JylcblxuY29uc3QgbmV3TWV0YSA9IE9iamVjdC5hc3NpZ24oe30sIGZpcnN0Lm1ldGEsIHtcbiAgZGVwcmVjYXRlZDogdHJ1ZSxcbiAgZG9jczoge1xuICAgIHVybDogZG9jc1VybCgnaW1wb3J0cy1maXJzdCcsICc3YjI1YzFjYjk1ZWUxOGFjYzE1MzEwMDJmZDM0M2UxZTYwMzFmOWVkJyksXG4gIH0sXG59KVxuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5hc3NpZ24oe30sIGZpcnN0LCB7IG1ldGE6IG5ld01ldGEgfSlcbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9pbXBvcnRzLWZpcnN0LmpzIl0sIm5hbWVzIjpbImZpcnN0IiwicmVxdWlyZSIsIm5ld01ldGEiLCJPYmplY3QiLCJhc3NpZ24iLCJtZXRhIiwiZGVwcmVjYXRlZCIsImRvY3MiLCJ1cmwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQSxNQUFNQSxRQUFRQyxRQUFRLFNBQVIsQ0FBZDs7QUFFQSxNQUFNQyxVQUFVQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosTUFBTUssSUFBeEIsRUFBOEI7QUFDNUNDLGNBQVksSUFEZ0M7QUFFNUNDLFFBQU07QUFDSkMsU0FBSyx1QkFBUSxlQUFSLEVBQXlCLDBDQUF6QixDQURELEVBRnNDLEVBQTlCLENBQWhCOzs7O0FBT0FDLE9BQU9DLE9BQVAsR0FBaUJQLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSixLQUFsQixFQUF5QixFQUFFSyxNQUFNSCxPQUFSLEVBQXpCLENBQWpCIiwiZmlsZSI6ImltcG9ydHMtZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBmaXJzdCA9IHJlcXVpcmUoJy4vZmlyc3QnKVxuXG5jb25zdCBuZXdNZXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QubWV0YSwge1xuICBkZXByZWNhdGVkOiB0cnVlLFxuICBkb2NzOiB7XG4gICAgdXJsOiBkb2NzVXJsKCdpbXBvcnRzLWZpcnN0JywgJzdiMjVjMWNiOTVlZTE4YWNjMTUzMTAwMmZkMzQzZTFlNjAzMWY5ZWQnKSxcbiAgfSxcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QsIHsgbWV0YTogbmV3TWV0YSB9KVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js b/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js
index d7f2f49..83aaeea 100644
--- a/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js
+++ b/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js
@@ -1,27 +1,16 @@
-'use strict';
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const DEFAULT_MAX = 10;
 
-const countDependencies = (dependencies, lastNode, context) => {
-  var _ref = context.options[0] || { max: DEFAULT_MAX };
-
-  const max = _ref.max;
-
+const countDependencies = (dependencies, lastNode, context) => {var _ref =
+  context.options[0] || { max: DEFAULT_MAX };const max = _ref.max;
 
   if (dependencies.size > max) {
-    context.report(lastNode, `Maximum number of dependencies (${max}) exceeded.`);
+    context.report(
+    lastNode,
+    `Maximum number of dependencies (${max}) exceeded.`);
+
   }
 };
 
@@ -29,17 +18,19 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('max-dependencies')
-    },
+      url: (0, _docsUrl2.default)('max-dependencies') },
 
-    schema: [{
+
+    schema: [
+    {
       'type': 'object',
       'properties': {
-        'max': { 'type': 'number' }
-      },
-      'additionalProperties': false
-    }]
-  },
+        'max': { 'type': 'number' } },
+
+      'additionalProperties': false }] },
+
+
+
 
   create: context => {
     const dependencies = new Set(); // keep track of dependencies
@@ -52,11 +43,8 @@
       },
 
       CallExpression(node) {
-        if ((0, _staticRequire2.default)(node)) {
-          var _node$arguments = _slicedToArray(node.arguments, 1);
-
-          const requirePath = _node$arguments[0];
-
+        if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray(
+          node.arguments, 1);const requirePath = _node$arguments[0];
           dependencies.add(requirePath.value);
           lastNode = node;
         }
@@ -64,8 +52,7 @@
 
       'Program:exit': function () {
         countDependencies(dependencies, lastNode, context);
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9tYXgtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYIiwiY291bnREZXBlbmRlbmNpZXMiLCJkZXBlbmRlbmNpZXMiLCJsYXN0Tm9kZSIsImNvbnRleHQiLCJvcHRpb25zIiwibWF4Iiwic2l6ZSIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJTZXQiLCJJbXBvcnREZWNsYXJhdGlvbiIsIm5vZGUiLCJhZGQiLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwicmVxdWlyZVBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxjQUFjLEVBQXBCOztBQUVBLE1BQU1DLG9CQUFvQixDQUFDQyxZQUFELEVBQWVDLFFBQWYsRUFBeUJDLE9BQXpCLEtBQXFDO0FBQUEsYUFDL0NBLFFBQVFDLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBRUMsS0FBS04sV0FBUCxFQUR5Qjs7QUFBQSxRQUN0RE0sR0FEc0QsUUFDdERBLEdBRHNEOzs7QUFHN0QsTUFBSUosYUFBYUssSUFBYixHQUFvQkQsR0FBeEIsRUFBNkI7QUFDM0JGLFlBQVFJLE1BQVIsQ0FDRUwsUUFERixFQUVHLG1DQUFrQ0csR0FBSSxhQUZ6QztBQUlEO0FBQ0YsQ0FURDs7QUFXQUcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVI7QUFERCxLQUZGOztBQU1KQyxZQUFRLENBQ047QUFDRSxjQUFRLFFBRFY7QUFFRSxvQkFBYztBQUNaLGVBQU8sRUFBRSxRQUFRLFFBQVY7QUFESyxPQUZoQjtBQUtFLDhCQUF3QjtBQUwxQixLQURNO0FBTkosR0FEUzs7QUFrQmZDLFVBQVFaLFdBQVc7QUFDakIsVUFBTUYsZUFBZSxJQUFJZSxHQUFKLEVBQXJCLENBRGlCLENBQ2M7QUFDL0IsUUFBSWQsUUFBSixDQUZpQixDQUVKOztBQUViLFdBQU87QUFDTGUsd0JBQWtCQyxJQUFsQixFQUF3QjtBQUN0QmpCLHFCQUFha0IsR0FBYixDQUFpQkQsS0FBS0UsTUFBTCxDQUFZQyxLQUE3QjtBQUNBbkIsbUJBQVdnQixLQUFLRSxNQUFoQjtBQUNELE9BSkk7O0FBTUxFLHFCQUFlSixJQUFmLEVBQXFCO0FBQ25CLFlBQUksNkJBQWdCQSxJQUFoQixDQUFKLEVBQTJCO0FBQUEsK0NBQ0RBLEtBQUtLLFNBREo7O0FBQUEsZ0JBQ2pCQyxXQURpQjs7QUFFekJ2Qix1QkFBYWtCLEdBQWIsQ0FBaUJLLFlBQVlILEtBQTdCO0FBQ0FuQixxQkFBV2dCLElBQVg7QUFDRDtBQUNGLE9BWkk7O0FBY0wsc0JBQWdCLFlBQVk7QUFDMUJsQiwwQkFBa0JDLFlBQWxCLEVBQWdDQyxRQUFoQyxFQUEwQ0MsT0FBMUM7QUFDRDtBQWhCSSxLQUFQO0FBa0JEO0FBeENjLENBQWpCIiwiZmlsZSI6Im1heC1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmNvbnN0IERFRkFVTFRfTUFYID0gMTBcblxuY29uc3QgY291bnREZXBlbmRlbmNpZXMgPSAoZGVwZW5kZW5jaWVzLCBsYXN0Tm9kZSwgY29udGV4dCkgPT4ge1xuICBjb25zdCB7bWF4fSA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7IG1heDogREVGQVVMVF9NQVggfVxuXG4gIGlmIChkZXBlbmRlbmNpZXMuc2l6ZSA+IG1heCkge1xuICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgbGFzdE5vZGUsXG4gICAgICBgTWF4aW11bSBudW1iZXIgb2YgZGVwZW5kZW5jaWVzICgke21heH0pIGV4Y2VlZGVkLmBcbiAgICApXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdtYXgtZGVwZW5kZW5jaWVzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnbWF4JzogeyAndHlwZSc6ICdudW1iZXInIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gbmV3IFNldCgpIC8vIGtlZXAgdHJhY2sgb2YgZGVwZW5kZW5jaWVzXG4gICAgbGV0IGxhc3ROb2RlIC8vIGtlZXAgdHJhY2sgb2YgdGhlIGxhc3Qgbm9kZSB0byByZXBvcnQgb25cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGRlcGVuZGVuY2llcy5hZGQobm9kZS5zb3VyY2UudmFsdWUpXG4gICAgICAgIGxhc3ROb2RlID0gbm9kZS5zb3VyY2VcbiAgICAgIH0sXG5cbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIGNvbnN0IFsgcmVxdWlyZVBhdGggXSA9IG5vZGUuYXJndW1lbnRzXG4gICAgICAgICAgZGVwZW5kZW5jaWVzLmFkZChyZXF1aXJlUGF0aC52YWx1ZSlcbiAgICAgICAgICBsYXN0Tm9kZSA9IG5vZGVcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY291bnREZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzLCBsYXN0Tm9kZSwgY29udGV4dClcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9tYXgtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYIiwiY291bnREZXBlbmRlbmNpZXMiLCJkZXBlbmRlbmNpZXMiLCJsYXN0Tm9kZSIsImNvbnRleHQiLCJvcHRpb25zIiwibWF4Iiwic2l6ZSIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJTZXQiLCJJbXBvcnREZWNsYXJhdGlvbiIsIm5vZGUiLCJhZGQiLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwicmVxdWlyZVBhdGgiXSwibWFwcGluZ3MiOiJxb0JBQUEsc0Q7QUFDQSxxQzs7QUFFQSxNQUFNQSxjQUFjLEVBQXBCOztBQUVBLE1BQU1DLG9CQUFvQixDQUFDQyxZQUFELEVBQWVDLFFBQWYsRUFBeUJDLE9BQXpCLEtBQXFDO0FBQy9DQSxVQUFRQyxPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQUVDLEtBQUtOLFdBQVAsRUFEeUIsT0FDdERNLEdBRHNELFFBQ3REQSxHQURzRDs7QUFHN0QsTUFBSUosYUFBYUssSUFBYixHQUFvQkQsR0FBeEIsRUFBNkI7QUFDM0JGLFlBQVFJLE1BQVI7QUFDRUwsWUFERjtBQUVHLHVDQUFrQ0csR0FBSSxhQUZ6Qzs7QUFJRDtBQUNGLENBVEQ7O0FBV0FHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGtCQUFSLENBREQsRUFGRjs7O0FBTUpDLFlBQVE7QUFDTjtBQUNFLGNBQVEsUUFEVjtBQUVFLG9CQUFjO0FBQ1osZUFBTyxFQUFFLFFBQVEsUUFBVixFQURLLEVBRmhCOztBQUtFLDhCQUF3QixLQUwxQixFQURNLENBTkosRUFEUzs7Ozs7QUFrQmZDLFVBQVFaLFdBQVc7QUFDakIsVUFBTUYsZUFBZSxJQUFJZSxHQUFKLEVBQXJCLENBRGlCLENBQ2M7QUFDL0IsUUFBSWQsUUFBSixDQUZpQixDQUVKOztBQUViLFdBQU87QUFDTGUsd0JBQWtCQyxJQUFsQixFQUF3QjtBQUN0QmpCLHFCQUFha0IsR0FBYixDQUFpQkQsS0FBS0UsTUFBTCxDQUFZQyxLQUE3QjtBQUNBbkIsbUJBQVdnQixLQUFLRSxNQUFoQjtBQUNELE9BSkk7O0FBTUxFLHFCQUFlSixJQUFmLEVBQXFCO0FBQ25CLFlBQUksNkJBQWdCQSxJQUFoQixDQUFKLEVBQTJCO0FBQ0RBLGVBQUtLLFNBREosV0FDakJDLFdBRGlCO0FBRXpCdkIsdUJBQWFrQixHQUFiLENBQWlCSyxZQUFZSCxLQUE3QjtBQUNBbkIscUJBQVdnQixJQUFYO0FBQ0Q7QUFDRixPQVpJOztBQWNMLHNCQUFnQixZQUFZO0FBQzFCbEIsMEJBQWtCQyxZQUFsQixFQUFnQ0MsUUFBaEMsRUFBMENDLE9BQTFDO0FBQ0QsT0FoQkksRUFBUDs7QUFrQkQsR0F4Q2MsRUFBakIiLCJmaWxlIjoibWF4LWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuY29uc3QgREVGQVVMVF9NQVggPSAxMFxuXG5jb25zdCBjb3VudERlcGVuZGVuY2llcyA9IChkZXBlbmRlbmNpZXMsIGxhc3ROb2RlLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IHttYXh9ID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHsgbWF4OiBERUZBVUxUX01BWCB9XG5cbiAgaWYgKGRlcGVuZGVuY2llcy5zaXplID4gbWF4KSB7XG4gICAgY29udGV4dC5yZXBvcnQoXG4gICAgICBsYXN0Tm9kZSxcbiAgICAgIGBNYXhpbXVtIG51bWJlciBvZiBkZXBlbmRlbmNpZXMgKCR7bWF4fSkgZXhjZWVkZWQuYFxuICAgIClcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ21heC1kZXBlbmRlbmNpZXMnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICdtYXgnOiB7ICd0eXBlJzogJ251bWJlcicgfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBuZXcgU2V0KCkgLy8ga2VlcCB0cmFjayBvZiBkZXBlbmRlbmNpZXNcbiAgICBsZXQgbGFzdE5vZGUgLy8ga2VlcCB0cmFjayBvZiB0aGUgbGFzdCBub2RlIHRvIHJlcG9ydCBvblxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgZGVwZW5kZW5jaWVzLmFkZChub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgICAgbGFzdE5vZGUgPSBub2RlLnNvdXJjZVxuICAgICAgfSxcblxuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgWyByZXF1aXJlUGF0aCBdID0gbm9kZS5hcmd1bWVudHNcbiAgICAgICAgICBkZXBlbmRlbmNpZXMuYWRkKHJlcXVpcmVQYXRoLnZhbHVlKVxuICAgICAgICAgIGxhc3ROb2RlID0gbm9kZVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgICBjb3VudERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMsIGxhc3ROb2RlLCBjb250ZXh0KVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/named.js b/node_modules/eslint-plugin-import/lib/rules/named.js
index 62dcb64..f2b5166 100644
--- a/node_modules/eslint-plugin-import/lib/rules/named.js
+++ b/node_modules/eslint-plugin-import/lib/rules/named.js
@@ -1,40 +1,26 @@
-'use strict';
-
-var _path = require('path');
-
-var path = _interopRequireWildcard(_path);
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
+'use strict';var _path = require('path');var path = _interopRequireWildcard(_path);
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];}}newObj.default = obj;return newObj;}}
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('named')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('named') },
+
+    schema: [] },
+
 
   create: function (context) {
     function checkSpecifiers(key, type, node) {
       // ignore local exports and type imports/exports
-      if (node.source == null || node.importKind === 'type' || node.importKind === 'typeof' || node.exportKind === 'type') {
+      if (node.source == null || node.importKind === 'type' ||
+      node.importKind === 'typeof' || node.exportKind === 'type') {
         return;
       }
 
-      if (!node.specifiers.some(function (im) {
-        return im.type === type;
-      })) {
+      if (!node.specifiers.
+      some(function (im) {return im.type === type;})) {
         return; // no named imports/exports
       }
 
@@ -56,21 +42,31 @@
 
         if (!deepLookup.found) {
           if (deepLookup.path.length > 1) {
-            const deepPath = deepLookup.path.map(i => path.relative(path.dirname(context.getFilename()), i.path)).join(' -> ');
+            const deepPath = deepLookup.path.
+            map(i => path.relative(path.dirname(context.getFilename()), i.path)).
+            join(' -> ');
 
-            context.report(im[key], `${im[key].name} not found via ${deepPath}`);
+            context.report(im[key],
+            `${im[key].name} not found via ${deepPath}`);
           } else {
-            context.report(im[key], im[key].name + ' not found in \'' + node.source.value + '\'');
+            context.report(im[key],
+            im[key].name + ' not found in \'' + node.source.value + '\'');
           }
         }
       });
     }
 
     return {
-      'ImportDeclaration': checkSpecifiers.bind(null, 'imported', 'ImportSpecifier'),
+      'ImportDeclaration': checkSpecifiers.bind(null,
+      'imported',
+      'ImportSpecifier'),
 
-      'ExportNamedDeclaration': checkSpecifiers.bind(null, 'local', 'ExportSpecifier')
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lZC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NwZWNpZmllcnMiLCJrZXkiLCJub2RlIiwic291cmNlIiwiaW1wb3J0S2luZCIsImV4cG9ydEtpbmQiLCJzcGVjaWZpZXJzIiwic29tZSIsImltIiwiaW1wb3J0cyIsIkV4cG9ydHMiLCJnZXQiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImZvckVhY2giLCJkZWVwTG9va3VwIiwiaGFzRGVlcCIsIm5hbWUiLCJmb3VuZCIsImRlZXBQYXRoIiwibWFwIiwiaSIsInJlbGF0aXZlIiwiZGlybmFtZSIsImdldEZpbGVuYW1lIiwiam9pbiIsInJlcG9ydCIsImJpbmQiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0lBQVlBLEk7O0FBQ1o7Ozs7QUFDQTs7Ozs7Ozs7QUFFQUMsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsT0FBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixhQUFTQyxlQUFULENBQXlCQyxHQUF6QixFQUE4QlAsSUFBOUIsRUFBb0NRLElBQXBDLEVBQTBDO0FBQ3hDO0FBQ0EsVUFBSUEsS0FBS0MsTUFBTCxJQUFlLElBQWYsSUFBdUJELEtBQUtFLFVBQUwsS0FBb0IsTUFBM0MsSUFDQUYsS0FBS0UsVUFBTCxLQUFvQixRQURwQixJQUNpQ0YsS0FBS0csVUFBTCxLQUFvQixNQUR6RCxFQUNpRTtBQUMvRDtBQUNEOztBQUVELFVBQUksQ0FBQ0gsS0FBS0ksVUFBTCxDQUNFQyxJQURGLENBQ08sVUFBVUMsRUFBVixFQUFjO0FBQUUsZUFBT0EsR0FBR2QsSUFBSCxLQUFZQSxJQUFuQjtBQUF5QixPQURoRCxDQUFMLEVBQ3dEO0FBQ3RELGVBRHNELENBQy9DO0FBQ1I7O0FBRUQsWUFBTWUsVUFBVUMsb0JBQVFDLEdBQVIsQ0FBWVQsS0FBS0MsTUFBTCxDQUFZUyxLQUF4QixFQUErQmIsT0FBL0IsQ0FBaEI7QUFDQSxVQUFJVSxXQUFXLElBQWYsRUFBcUI7O0FBRXJCLFVBQUlBLFFBQVFJLE1BQVIsQ0FBZUMsTUFBbkIsRUFBMkI7QUFDekJMLGdCQUFRTSxZQUFSLENBQXFCaEIsT0FBckIsRUFBOEJHLElBQTlCO0FBQ0E7QUFDRDs7QUFFREEsV0FBS0ksVUFBTCxDQUFnQlUsT0FBaEIsQ0FBd0IsVUFBVVIsRUFBVixFQUFjO0FBQ3BDLFlBQUlBLEdBQUdkLElBQUgsS0FBWUEsSUFBaEIsRUFBc0I7O0FBRXRCO0FBQ0EsWUFBSWMsR0FBR0osVUFBSCxLQUFrQixNQUFsQixJQUE0QkksR0FBR0osVUFBSCxLQUFrQixRQUFsRCxFQUE0RDs7QUFFNUQsY0FBTWEsYUFBYVIsUUFBUVMsT0FBUixDQUFnQlYsR0FBR1AsR0FBSCxFQUFRa0IsSUFBeEIsQ0FBbkI7O0FBRUEsWUFBSSxDQUFDRixXQUFXRyxLQUFoQixFQUF1QjtBQUNyQixjQUFJSCxXQUFXM0IsSUFBWCxDQUFnQndCLE1BQWhCLEdBQXlCLENBQTdCLEVBQWdDO0FBQzlCLGtCQUFNTyxXQUFXSixXQUFXM0IsSUFBWCxDQUNkZ0MsR0FEYyxDQUNWQyxLQUFLakMsS0FBS2tDLFFBQUwsQ0FBY2xDLEtBQUttQyxPQUFMLENBQWExQixRQUFRMkIsV0FBUixFQUFiLENBQWQsRUFBbURILEVBQUVqQyxJQUFyRCxDQURLLEVBRWRxQyxJQUZjLENBRVQsTUFGUyxDQUFqQjs7QUFJQTVCLG9CQUFRNkIsTUFBUixDQUFlcEIsR0FBR1AsR0FBSCxDQUFmLEVBQ0csR0FBRU8sR0FBR1AsR0FBSCxFQUFRa0IsSUFBSyxrQkFBaUJFLFFBQVMsRUFENUM7QUFFRCxXQVBELE1BT087QUFDTHRCLG9CQUFRNkIsTUFBUixDQUFlcEIsR0FBR1AsR0FBSCxDQUFmLEVBQ0VPLEdBQUdQLEdBQUgsRUFBUWtCLElBQVIsR0FBZSxrQkFBZixHQUFvQ2pCLEtBQUtDLE1BQUwsQ0FBWVMsS0FBaEQsR0FBd0QsSUFEMUQ7QUFFRDtBQUNGO0FBQ0YsT0FyQkQ7QUFzQkQ7O0FBRUQsV0FBTztBQUNMLDJCQUFxQlosZ0JBQWdCNkIsSUFBaEIsQ0FBc0IsSUFBdEIsRUFDc0IsVUFEdEIsRUFFc0IsaUJBRnRCLENBRGhCOztBQU1MLGdDQUEwQjdCLGdCQUFnQjZCLElBQWhCLENBQXNCLElBQXRCLEVBQ3NCLE9BRHRCLEVBRXNCLGlCQUZ0QjtBQU5yQixLQUFQO0FBWUQ7QUFsRWMsQ0FBakIiLCJmaWxlIjoibmFtZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25hbWVkJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiBjaGVja1NwZWNpZmllcnMoa2V5LCB0eXBlLCBub2RlKSB7XG4gICAgICAvLyBpZ25vcmUgbG9jYWwgZXhwb3J0cyBhbmQgdHlwZSBpbXBvcnRzL2V4cG9ydHNcbiAgICAgIGlmIChub2RlLnNvdXJjZSA9PSBudWxsIHx8IG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGUnIHx8XG4gICAgICAgICAgbm9kZS5pbXBvcnRLaW5kID09PSAndHlwZW9mJyAgfHwgbm9kZS5leHBvcnRLaW5kID09PSAndHlwZScpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICghbm9kZS5zcGVjaWZpZXJzXG4gICAgICAgICAgICAuc29tZShmdW5jdGlvbiAoaW0pIHsgcmV0dXJuIGltLnR5cGUgPT09IHR5cGUgfSkpIHtcbiAgICAgICAgcmV0dXJuIC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKGltKSB7XG4gICAgICAgIGlmIChpbS50eXBlICE9PSB0eXBlKSByZXR1cm5cblxuICAgICAgICAvLyBpZ25vcmUgdHlwZSBpbXBvcnRzXG4gICAgICAgIGlmIChpbS5pbXBvcnRLaW5kID09PSAndHlwZScgfHwgaW0uaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IGRlZXBMb29rdXAgPSBpbXBvcnRzLmhhc0RlZXAoaW1ba2V5XS5uYW1lKVxuXG4gICAgICAgIGlmICghZGVlcExvb2t1cC5mb3VuZCkge1xuICAgICAgICAgIGlmIChkZWVwTG9va3VwLnBhdGgubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgZGVlcFBhdGggPSBkZWVwTG9va3VwLnBhdGhcbiAgICAgICAgICAgICAgLm1hcChpID0+IHBhdGgucmVsYXRpdmUocGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSksIGkucGF0aCkpXG4gICAgICAgICAgICAgIC5qb2luKCcgLT4gJylcblxuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoaW1ba2V5XSxcbiAgICAgICAgICAgICAgYCR7aW1ba2V5XS5uYW1lfSBub3QgZm91bmQgdmlhICR7ZGVlcFBhdGh9YClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoaW1ba2V5XSxcbiAgICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdpbXBvcnRlZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnSW1wb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrU3BlY2lmaWVycy5iaW5kKCBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnbG9jYWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnRXhwb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgfVxuXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+
+      'ExportNamedDeclaration': checkSpecifiers.bind(null,
+      'local',
+      'ExportSpecifier') };
+
+
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lZC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NwZWNpZmllcnMiLCJrZXkiLCJub2RlIiwic291cmNlIiwiaW1wb3J0S2luZCIsImV4cG9ydEtpbmQiLCJzcGVjaWZpZXJzIiwic29tZSIsImltIiwiaW1wb3J0cyIsIkV4cG9ydHMiLCJnZXQiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImZvckVhY2giLCJkZWVwTG9va3VwIiwiaGFzRGVlcCIsIm5hbWUiLCJmb3VuZCIsImRlZXBQYXRoIiwibWFwIiwiaSIsInJlbGF0aXZlIiwiZGlybmFtZSIsImdldEZpbGVuYW1lIiwiam9pbiIsInJlcG9ydCIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLDRCLElBQVlBLEk7QUFDWix5QztBQUNBLHFDOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxPQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsZUFBVCxDQUF5QkMsR0FBekIsRUFBOEJQLElBQTlCLEVBQW9DUSxJQUFwQyxFQUEwQztBQUN4QztBQUNBLFVBQUlBLEtBQUtDLE1BQUwsSUFBZSxJQUFmLElBQXVCRCxLQUFLRSxVQUFMLEtBQW9CLE1BQTNDO0FBQ0FGLFdBQUtFLFVBQUwsS0FBb0IsUUFEcEIsSUFDaUNGLEtBQUtHLFVBQUwsS0FBb0IsTUFEekQsRUFDaUU7QUFDL0Q7QUFDRDs7QUFFRCxVQUFJLENBQUNILEtBQUtJLFVBQUw7QUFDRUMsVUFERixDQUNPLFVBQVVDLEVBQVYsRUFBYyxDQUFFLE9BQU9BLEdBQUdkLElBQUgsS0FBWUEsSUFBbkIsQ0FBeUIsQ0FEaEQsQ0FBTCxFQUN3RDtBQUN0RCxlQURzRCxDQUMvQztBQUNSOztBQUVELFlBQU1lLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlULEtBQUtDLE1BQUwsQ0FBWVMsS0FBeEIsRUFBK0JiLE9BQS9CLENBQWhCO0FBQ0EsVUFBSVUsV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSSxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTCxnQkFBUU0sWUFBUixDQUFxQmhCLE9BQXJCLEVBQThCRyxJQUE5QjtBQUNBO0FBQ0Q7O0FBRURBLFdBQUtJLFVBQUwsQ0FBZ0JVLE9BQWhCLENBQXdCLFVBQVVSLEVBQVYsRUFBYztBQUNwQyxZQUFJQSxHQUFHZCxJQUFILEtBQVlBLElBQWhCLEVBQXNCOztBQUV0QjtBQUNBLFlBQUljLEdBQUdKLFVBQUgsS0FBa0IsTUFBbEIsSUFBNEJJLEdBQUdKLFVBQUgsS0FBa0IsUUFBbEQsRUFBNEQ7O0FBRTVELGNBQU1hLGFBQWFSLFFBQVFTLE9BQVIsQ0FBZ0JWLEdBQUdQLEdBQUgsRUFBUWtCLElBQXhCLENBQW5COztBQUVBLFlBQUksQ0FBQ0YsV0FBV0csS0FBaEIsRUFBdUI7QUFDckIsY0FBSUgsV0FBVzNCLElBQVgsQ0FBZ0J3QixNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QixrQkFBTU8sV0FBV0osV0FBVzNCLElBQVg7QUFDZGdDLGVBRGMsQ0FDVkMsS0FBS2pDLEtBQUtrQyxRQUFMLENBQWNsQyxLQUFLbUMsT0FBTCxDQUFhMUIsUUFBUTJCLFdBQVIsRUFBYixDQUFkLEVBQW1ESCxFQUFFakMsSUFBckQsQ0FESztBQUVkcUMsZ0JBRmMsQ0FFVCxNQUZTLENBQWpCOztBQUlBNUIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRyxlQUFFTyxHQUFHUCxHQUFILEVBQVFrQixJQUFLLGtCQUFpQkUsUUFBUyxFQUQ1QztBQUVELFdBUEQsTUFPTztBQUNMdEIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRU8sZUFBR1AsR0FBSCxFQUFRa0IsSUFBUixHQUFlLGtCQUFmLEdBQW9DakIsS0FBS0MsTUFBTCxDQUFZUyxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixPQXJCRDtBQXNCRDs7QUFFRCxXQUFPO0FBQ0wsMkJBQXFCWixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUNzQixnQkFEdEI7QUFFc0IsdUJBRnRCLENBRGhCOzs7QUFNTCxnQ0FBMEI3QixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUNzQixhQUR0QjtBQUVzQix1QkFGdEIsQ0FOckIsRUFBUDs7OztBQVlELEdBbEVjLEVBQWpCIiwiZmlsZSI6Im5hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vRXhwb3J0TWFwJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduYW1lZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKGtleSwgdHlwZSwgbm9kZSkge1xuICAgICAgLy8gaWdub3JlIGxvY2FsIGV4cG9ydHMgYW5kIHR5cGUgaW1wb3J0cy9leHBvcnRzXG4gICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCB8fCBub2RlLmltcG9ydEtpbmQgPT09ICd0eXBlJyB8fFxuICAgICAgICAgIG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicgIHx8IG5vZGUuZXhwb3J0S2luZCA9PT0gJ3R5cGUnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgICAgLnNvbWUoZnVuY3Rpb24gKGltKSB7IHJldHVybiBpbS50eXBlID09PSB0eXBlIH0pKSB7XG4gICAgICAgIHJldHVybiAvLyBubyBuYW1lZCBpbXBvcnRzL2V4cG9ydHNcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICBpZiAoaW0udHlwZSAhPT0gdHlwZSkgcmV0dXJuXG5cbiAgICAgICAgLy8gaWdub3JlIHR5cGUgaW1wb3J0c1xuICAgICAgICBpZiAoaW0uaW1wb3J0S2luZCA9PT0gJ3R5cGUnIHx8IGltLmltcG9ydEtpbmQgPT09ICd0eXBlb2YnKSByZXR1cm5cblxuICAgICAgICBjb25zdCBkZWVwTG9va3VwID0gaW1wb3J0cy5oYXNEZWVwKGltW2tleV0ubmFtZSlcblxuICAgICAgICBpZiAoIWRlZXBMb29rdXAuZm91bmQpIHtcbiAgICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZXBQYXRoID0gZGVlcExvb2t1cC5wYXRoXG4gICAgICAgICAgICAgIC5tYXAoaSA9PiBwYXRoLnJlbGF0aXZlKHBhdGguZGlybmFtZShjb250ZXh0LmdldEZpbGVuYW1lKCkpLCBpLnBhdGgpKVxuICAgICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KGltW2tleV0sXG4gICAgICAgICAgICAgIGAke2ltW2tleV0ubmFtZX0gbm90IGZvdW5kIHZpYSAke2RlZXBQYXRofWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KGltW2tleV0sXG4gICAgICAgICAgICAgIGltW2tleV0ubmFtZSArICcgbm90IGZvdW5kIGluIFxcJycgKyBub2RlLnNvdXJjZS52YWx1ZSArICdcXCcnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogY2hlY2tTcGVjaWZpZXJzLmJpbmQoIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ0ltcG9ydFNwZWNpZmllcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcblxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ2xvY2FsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ0V4cG9ydFNwZWNpZmllcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgIH1cblxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/namespace.js b/node_modules/eslint-plugin-import/lib/rules/namespace.js
index 0554188..0b9abf8 100644
--- a/node_modules/eslint-plugin-import/lib/rules/namespace.js
+++ b/node_modules/eslint-plugin-import/lib/rules/namespace.js
@@ -1,64 +1,46 @@
-'use strict';
-
-var _declaredScope = require('eslint-module-utils/declaredScope');
-
-var _declaredScope2 = _interopRequireDefault(_declaredScope);
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _importDeclaration = require('../importDeclaration');
-
-var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _declaredScope = require('eslint-module-utils/declaredScope');var _declaredScope2 = _interopRequireDefault(_declaredScope);
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _importDeclaration = require('../importDeclaration');var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('namespace')
-    },
+      url: (0, _docsUrl2.default)('namespace') },
 
-    schema: [{
-      'type': 'object',
-      'properties': {
-        'allowComputed': {
-          'description': 'If `false`, will report computed (and thus, un-lintable) references ' + 'to namespace members.',
-          'type': 'boolean',
-          'default': false
-        }
-      },
-      'additionalProperties': false
-    }]
-  },
+
+    schema: [
+    {
+      type: 'object',
+      properties: {
+        allowComputed: {
+          description: 'If `false`, will report computed (and thus, un-lintable) references to namespace members.',
+          type: 'boolean',
+          default: false } },
+
+
+      additionalProperties: false }] },
+
+
+
 
   create: function namespaceRule(context) {
 
     // read options
-    var _ref = context.options[0] || {},
-        _ref$allowComputed = _ref.allowComputed;
+    var _ref =
 
-    const allowComputed = _ref$allowComputed === undefined ? false : _ref$allowComputed;
-
+    context.options[0] || {},_ref$allowComputed = _ref.allowComputed;const allowComputed = _ref$allowComputed === undefined ? false : _ref$allowComputed;
 
     const namespaces = new Map();
 
     function makeMessage(last, namepath) {
-      return `'${last.name}' not found in` + (namepath.length > 1 ? ' deeply ' : ' ') + `imported namespace '${namepath.join('.')}'.`;
+      return `'${last.name}' not found in ${namepath.length > 1 ? 'deeply ' : ''}imported namespace '${namepath.join('.')}'.`;
     }
 
     return {
-
       // pick up all imports at body entry time, to properly respect hoisting
-      Program: function (_ref2) {
-        let body = _ref2.body;
-
+      Program(_ref2) {let body = _ref2.body;
         function processBodyStatement(declaration) {
           if (declaration.type !== 'ImportDeclaration') return;
 
@@ -76,28 +58,31 @@
             switch (specifier.type) {
               case 'ImportNamespaceSpecifier':
                 if (!imports.size) {
-                  context.report(specifier, `No exported names found in module '${declaration.source.value}'.`);
+                  context.report(
+                  specifier,
+                  `No exported names found in module '${declaration.source.value}'.`);
+
                 }
                 namespaces.set(specifier.local.name, imports);
                 break;
               case 'ImportDefaultSpecifier':
-              case 'ImportSpecifier':
-                {
+              case 'ImportSpecifier':{
                   const meta = imports.get(
                   // default to 'default' for default http://i.imgur.com/nj6qAWy.jpg
                   specifier.imported ? specifier.imported.name : 'default');
-                  if (!meta || !meta.namespace) break;
+
+                  if (!meta || !meta.namespace) {break;}
                   namespaces.set(specifier.local.name, meta.namespace);
                   break;
-                }
-            }
+                }}
+
           }
         }
         body.forEach(processBodyStatement);
       },
 
       // same as above, but does not add names to local map
-      ExportNamespaceSpecifier: function (namespace) {
+      ExportNamespaceSpecifier(namespace) {
         var declaration = (0, _importDeclaration2.default)(context);
 
         var imports = _ExportMap2.default.get(declaration.source.value, context);
@@ -109,18 +94,25 @@
         }
 
         if (!imports.size) {
-          context.report(namespace, `No exported names found in module '${declaration.source.value}'.`);
+          context.report(
+          namespace,
+          `No exported names found in module '${declaration.source.value}'.`);
+
         }
       },
 
       // todo: check for possible redefinition
 
-      MemberExpression: function (dereference) {
+      MemberExpression(dereference) {
         if (dereference.object.type !== 'Identifier') return;
         if (!namespaces.has(dereference.object.name)) return;
+        if ((0, _declaredScope2.default)(context, dereference.object.name) !== 'module') return;
 
         if (dereference.parent.type === 'AssignmentExpression' && dereference.parent.left === dereference) {
-          context.report(dereference.parent, `Assignment to member of namespace '${dereference.object.name}'.`);
+          context.report(
+          dereference.parent,
+          `Assignment to member of namespace '${dereference.object.name}'.`);
+
         }
 
         // go deep
@@ -131,13 +123,19 @@
 
           if (dereference.computed) {
             if (!allowComputed) {
-              context.report(dereference.property, 'Unable to validate computed reference to imported namespace \'' + dereference.object.name + '\'.');
+              context.report(
+              dereference.property,
+              `Unable to validate computed reference to imported namespace '${dereference.object.name}'.`);
+
             }
             return;
           }
 
           if (!namespace.has(dereference.property.name)) {
-            context.report(dereference.property, makeMessage(dereference.property, namepath));
+            context.report(
+            dereference.property,
+            makeMessage(dereference.property, namepath));
+
             break;
           }
 
@@ -149,12 +147,10 @@
           namespace = exported.namespace;
           dereference = dereference.parent;
         }
+
       },
 
-      VariableDeclarator: function (_ref3) {
-        let id = _ref3.id,
-            init = _ref3.init;
-
+      VariableDeclarator(_ref3) {let id = _ref3.id,init = _ref3.init;
         if (init == null) return;
         if (init.type !== 'Identifier') return;
         if (!namespaces.has(init.name)) return;
@@ -163,31 +159,33 @@
         if ((0, _declaredScope2.default)(context, init.name) !== 'module') return;
 
         // DFS traverse child namespaces
-        function testKey(pattern, namespace) {
-          let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [init.name];
-
+        function testKey(pattern, namespace) {let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [init.name];
           if (!(namespace instanceof _ExportMap2.default)) return;
 
           if (pattern.type !== 'ObjectPattern') return;
 
           for (const property of pattern.properties) {
-            if (property.type === 'ExperimentalRestProperty' || property.type === 'RestElement' || !property.key) {
+            if (
+            property.type === 'ExperimentalRestProperty' ||
+            property.type === 'RestElement' ||
+            !property.key)
+            {
               continue;
             }
 
             if (property.key.type !== 'Identifier') {
               context.report({
                 node: property,
-                message: 'Only destructure top-level names.'
-              });
+                message: 'Only destructure top-level names.' });
+
               continue;
             }
 
             if (!namespace.has(property.key.name)) {
               context.report({
                 node: property,
-                message: makeMessage(property.key, path)
-              });
+                message: makeMessage(property.key, path) });
+
               continue;
             }
 
@@ -204,20 +202,16 @@
         testKey(id, namespaces.get(init.name));
       },
 
-      JSXMemberExpression: function (_ref4) {
-        let object = _ref4.object,
-            property = _ref4.property;
-
+      JSXMemberExpression(_ref4) {let object = _ref4.object,property = _ref4.property;
         if (!namespaces.has(object.name)) return;
         var namespace = namespaces.get(object.name);
         if (!namespace.has(property.name)) {
           context.report({
             node: property,
-            message: makeMessage(property, [object.name])
-          });
+            message: makeMessage(property, [object.name]) });
+
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsIm5hbWVzcGFjZVJ1bGUiLCJjb250ZXh0Iiwib3B0aW9ucyIsImFsbG93Q29tcHV0ZWQiLCJuYW1lc3BhY2VzIiwiTWFwIiwibWFrZU1lc3NhZ2UiLCJsYXN0IiwibmFtZXBhdGgiLCJuYW1lIiwibGVuZ3RoIiwiam9pbiIsIlByb2dyYW0iLCJib2R5IiwicHJvY2Vzc0JvZHlTdGF0ZW1lbnQiLCJkZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwicmVwb3J0RXJyb3JzIiwic3BlY2lmaWVyIiwic2l6ZSIsInJlcG9ydCIsInNldCIsImxvY2FsIiwiaW1wb3J0ZWQiLCJuYW1lc3BhY2UiLCJmb3JFYWNoIiwiRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyIiwiTWVtYmVyRXhwcmVzc2lvbiIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwiaGFzIiwicGFyZW50IiwibGVmdCIsImNvbXB1dGVkIiwicHJvcGVydHkiLCJleHBvcnRlZCIsInB1c2giLCJWYXJpYWJsZURlY2xhcmF0b3IiLCJpZCIsImluaXQiLCJ0ZXN0S2V5IiwicGF0dGVybiIsInBhdGgiLCJwcm9wZXJ0aWVzIiwia2V5Iiwibm9kZSIsIm1lc3NhZ2UiLCJkZXBlbmRlbmN5RXhwb3J0TWFwIiwicG9wIiwiSlNYTWVtYmVyRXhwcmVzc2lvbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFdBQVI7QUFERCxLQUZGOztBQU1KQyxZQUFRLENBQ047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QUF0QixDQUFoQjtBQUNBLFlBQUksQ0FBQ3FCLFVBQVVNLEdBQVYsQ0FBY0ksU0FBUy9CLElBQXZCLENBQUwsRUFBbUM7QUFDakNSLGtCQUFReUIsTUFBUixDQUFlO0FBQ2J5QixrQkFBTVgsUUFETztBQUViWSxxQkFBUzlDLFlBQVlrQyxRQUFaLEVBQXNCLENBQUNMLE9BQU8xQixJQUFSLENBQXRCO0FBRkksV0FBZjtBQUlEO0FBQ0g7QUF0S0ksS0FBUDtBQXdLRDtBQS9NYyxDQUFqQiIsImZpbGUiOiJuYW1lc3BhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2RlY2xhcmVkU2NvcGUnXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25hbWVzcGFjZScpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2FsbG93Q29tcHV0ZWQnOiB7XG4gICAgICAgICAgICAnZGVzY3JpcHRpb24nOlxuICAgICAgICAgICAgICAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgY29tcHV0ZWQgKGFuZCB0aHVzLCB1bi1saW50YWJsZSkgcmVmZXJlbmNlcyAnICtcbiAgICAgICAgICAgICAgJ3RvIG5hbWVzcGFjZSBtZW1iZXJzLicsXG4gICAgICAgICAgICAndHlwZSc6ICdib29sZWFuJyxcbiAgICAgICAgICAgICdkZWZhdWx0JzogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiBuYW1lc3BhY2VSdWxlKGNvbnRleHQpIHtcblxuICAgIC8vIHJlYWQgb3B0aW9uc1xuICAgIGNvbnN0IHtcbiAgICAgIGFsbG93Q29tcHV0ZWQgPSBmYWxzZSxcbiAgICB9ID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG5cbiAgICBjb25zdCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgICBmdW5jdGlvbiBtYWtlTWVzc2FnZShsYXN0LCBuYW1lcGF0aCkge1xuICAgICAgIHJldHVybiBgJyR7bGFzdC5uYW1lfScgbm90IGZvdW5kIGluYCArXG4gICAgICAgICAgICAgIChuYW1lcGF0aC5sZW5ndGggPiAxID8gJyBkZWVwbHkgJyA6ICcgJykgK1xuICAgICAgICAgICAgICBgaW1wb3J0ZWQgbmFtZXNwYWNlICcke25hbWVwYXRoLmpvaW4oJy4nKX0nLmBcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuXG4gICAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKHsgYm9keSB9KSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NCb2R5U3RhdGVtZW50KGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnNwZWNpZmllcnMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2YgZGVjbGFyYXRpb24uc3BlY2lmaWVycykge1xuICAgICAgICAgICAgc3dpdGNoIChzcGVjaWZpZXIudHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInOlxuICAgICAgICAgICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChzcGVjaWZpZXIsXG4gICAgICAgICAgICAgICAgICAgIGBObyBleHBvcnRlZCBuYW1lcyBmb3VuZCBpbiBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfScuYClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIGltcG9ydHMpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6XG4gICAgICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gaW1wb3J0cy5nZXQoXG4gICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvICdkZWZhdWx0JyBmb3IgZGVmYXVsdCBodHRwOi8vaS5pbWd1ci5jb20vbmo2cUFXeS5qcGdcbiAgICAgICAgICAgICAgICAgIHNwZWNpZmllci5pbXBvcnRlZCA/IHNwZWNpZmllci5pbXBvcnRlZC5uYW1lIDogJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS5uYW1lc3BhY2UpIGJyZWFrXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIG1ldGEubmFtZXNwYWNlKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYm9keS5mb3JFYWNoKHByb2Nlc3NCb2R5U3RhdGVtZW50KVxuICAgICAgfSxcblxuICAgICAgLy8gc2FtZSBhcyBhYm92ZSwgYnV0IGRvZXMgbm90IGFkZCBuYW1lcyB0byBsb2NhbCBtYXBcbiAgICAgIEV4cG9ydE5hbWVzcGFjZVNwZWNpZmllcjogZnVuY3Rpb24gKG5hbWVzcGFjZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICAgIHZhciBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQobmFtZXNwYWNlLFxuICAgICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyB0b2RvOiBjaGVjayBmb3IgcG9zc2libGUgcmVkZWZpbml0aW9uXG5cbiAgICAgIE1lbWJlckV4cHJlc3Npb246IGZ1bmN0aW9uIChkZXJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cblxuICAgICAgICBpZiAoZGVyZWZlcmVuY2UucGFyZW50LnR5cGUgPT09ICdBc3NpZ25tZW50RXhwcmVzc2lvbicgJiZcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLnBhcmVudC5sZWZ0ID09PSBkZXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoZGVyZWZlcmVuY2UucGFyZW50LFxuICAgICAgICAgICAgICAgIGBBc3NpZ25tZW50IHRvIG1lbWJlciBvZiBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ28gZGVlcFxuICAgICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICBpZiAoZGVyZWZlcmVuY2UuY29tcHV0ZWQpIHtcbiAgICAgICAgICAgIGlmICghYWxsb3dDb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICAnVW5hYmxlIHRvIHZhbGlkYXRlIGNvbXB1dGVkIHJlZmVyZW5jZSB0byBpbXBvcnRlZCBuYW1lc3BhY2UgXFwnJyArXG4gICAgICAgICAgICAgICAgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUgKyAnXFwnLicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgICBkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgICAgbWFrZU1lc3NhZ2UoZGVyZWZlcmVuY2UucHJvcGVydHksIG5hbWVwYXRoKSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZXhwb3J0ZWQgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgICAgaWYgKGV4cG9ydGVkID09IG51bGwpIHJldHVyblxuXG4gICAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICAgIG5hbWVwYXRoLnB1c2goZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcbiAgICAgICAgICBuYW1lc3BhY2UgPSBleHBvcnRlZC5uYW1lc3BhY2VcbiAgICAgICAgICBkZXJlZmVyZW5jZSA9IGRlcmVmZXJlbmNlLnBhcmVudFxuICAgICAgICB9XG5cbiAgICAgIH0sXG5cbiAgICAgIFZhcmlhYmxlRGVjbGFyYXRvcjogZnVuY3Rpb24gKHsgaWQsIGluaXQgfSkge1xuICAgICAgICBpZiAoaW5pdCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgaWYgKGluaXQudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhpbml0Lm5hbWUpKSByZXR1cm5cblxuICAgICAgICAvLyBjaGVjayBmb3IgcmVkZWZpbml0aW9uIGluIGludGVybWVkaWF0ZSBzY29wZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgaW5pdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAgIC8vIERGUyB0cmF2ZXJzZSBjaGlsZCBuYW1lc3BhY2VzXG4gICAgICAgIGZ1bmN0aW9uIHRlc3RLZXkocGF0dGVybiwgbmFtZXNwYWNlLCBwYXRoID0gW2luaXQubmFtZV0pIHtcbiAgICAgICAgICBpZiAoIShuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzKSkgcmV0dXJuXG5cbiAgICAgICAgICBpZiAocGF0dGVybi50eXBlICE9PSAnT2JqZWN0UGF0dGVybicpIHJldHVyblxuXG4gICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwYXR0ZXJuLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcHJvcGVydHkudHlwZSA9PT0gJ0V4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eSdcbiAgICAgICAgICAgICAgfHwgcHJvcGVydHkudHlwZSA9PT0gJ1Jlc3RFbGVtZW50J1xuICAgICAgICAgICAgICB8fCAhcHJvcGVydHkua2V5XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BlcnR5LmtleS50eXBlICE9PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdPbmx5IGRlc3RydWN0dXJlIHRvcC1sZXZlbCBuYW1lcy4nLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMocHJvcGVydHkua2V5Lm5hbWUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eS5rZXksIHBhdGgpLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXRoLnB1c2gocHJvcGVydHkua2V5Lm5hbWUpXG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5RXhwb3J0TWFwID0gbmFtZXNwYWNlLmdldChwcm9wZXJ0eS5rZXkubmFtZSlcbiAgICAgICAgICAgIC8vIGNvdWxkIGJlIG51bGwgd2hlbiBpZ25vcmVkIG9yIGFtYmlndW91c1xuICAgICAgICAgICAgaWYgKGRlcGVuZGVuY3lFeHBvcnRNYXAgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGVzdEtleShwcm9wZXJ0eS52YWx1ZSwgZGVwZW5kZW5jeUV4cG9ydE1hcC5uYW1lc3BhY2UsIHBhdGgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXRoLnBvcCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGVzdEtleShpZCwgbmFtZXNwYWNlcy5nZXQoaW5pdC5uYW1lKSlcbiAgICAgIH0sXG5cbiAgICAgIEpTWE1lbWJlckV4cHJlc3Npb246IGZ1bmN0aW9uKHtvYmplY3QsIHByb3BlcnR5fSkge1xuICAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhvYmplY3QubmFtZSkpIHJldHVyblxuICAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KG9iamVjdC5uYW1lKVxuICAgICAgICAgaWYgKCFuYW1lc3BhY2UuaGFzKHByb3BlcnR5Lm5hbWUpKSB7XG4gICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eSwgW29iamVjdC5uYW1lXSksXG4gICAgICAgICAgIH0pXG4gICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJhbGxvd0NvbXB1dGVkIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJuYW1lc3BhY2VSdWxlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJuYW1lc3BhY2VzIiwiTWFwIiwibWFrZU1lc3NhZ2UiLCJsYXN0IiwibmFtZXBhdGgiLCJuYW1lIiwibGVuZ3RoIiwiam9pbiIsIlByb2dyYW0iLCJib2R5IiwicHJvY2Vzc0JvZHlTdGF0ZW1lbnQiLCJkZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwicmVwb3J0RXJyb3JzIiwic3BlY2lmaWVyIiwic2l6ZSIsInJlcG9ydCIsInNldCIsImxvY2FsIiwiaW1wb3J0ZWQiLCJuYW1lc3BhY2UiLCJmb3JFYWNoIiwiRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyIiwiTWVtYmVyRXhwcmVzc2lvbiIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwiaGFzIiwicGFyZW50IiwibGVmdCIsImNvbXB1dGVkIiwicHJvcGVydHkiLCJleHBvcnRlZCIsInB1c2giLCJWYXJpYWJsZURlY2xhcmF0b3IiLCJpZCIsImluaXQiLCJ0ZXN0S2V5IiwicGF0dGVybiIsInBhdGgiLCJrZXkiLCJub2RlIiwibWVzc2FnZSIsImRlcGVuZGVuY3lFeHBvcnRNYXAiLCJwb3AiLCJKU1hNZW1iZXJFeHByZXNzaW9uIl0sIm1hcHBpbmdzIjoiYUFBQSxrRTtBQUNBLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pD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LElBQXRCLENBQUwsRUFBa0M7QUFDbEMsWUFBSXFCLFlBQVkxQixXQUFXZSxHQUFYLENBQWVnQixPQUFPMUIsSUFBdEIsQ0FBaEI7QUFDQSxZQUFJLENBQUNxQixVQUFVTSxHQUFWLENBQWNJLFNBQVMvQixJQUF2QixDQUFMLEVBQW1DO0FBQ2pDUCxrQkFBUXdCLE1BQVIsQ0FBZTtBQUNid0Isa0JBQU1WLFFBRE87QUFFYlcscUJBQVM3QyxZQUFZa0MsUUFBWixFQUFzQixDQUFDTCxPQUFPMUIsSUFBUixDQUF0QixDQUZJLEVBQWY7O0FBSUQ7QUFDSCxPQTdLSSxFQUFQOztBQStLRCxHQWxOYyxFQUFqQiIsImZpbGUiOiJuYW1lc3BhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2RlY2xhcmVkU2NvcGUnXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25hbWVzcGFjZScpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBhbGxvd0NvbXB1dGVkOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGNvbXB1dGVkIChhbmQgdGh1cywgdW4tbGludGFibGUpIHJlZmVyZW5jZXMgdG8gbmFtZXNwYWNlIG1lbWJlcnMuJyxcbiAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5hbWVzcGFjZVJ1bGUoY29udGV4dCkge1xuXG4gICAgLy8gcmVhZCBvcHRpb25zXG4gICAgY29uc3Qge1xuICAgICAgYWxsb3dDb21wdXRlZCA9IGZhbHNlLFxuICAgIH0gPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cblxuICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICAgIGZ1bmN0aW9uIG1ha2VNZXNzYWdlKGxhc3QsIG5hbWVwYXRoKSB7XG4gICAgICByZXR1cm4gYCcke2xhc3QubmFtZX0nIG5vdCBmb3VuZCBpbiAke25hbWVwYXRoLmxlbmd0aCA+IDEgPyAnZGVlcGx5ICcgOiAnJ31pbXBvcnRlZCBuYW1lc3BhY2UgJyR7bmFtZXBhdGguam9pbignLicpfScuYFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICAgUHJvZ3JhbSh7IGJvZHkgfSkge1xuICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQm9keVN0YXRlbWVudChkZWNsYXJhdGlvbikge1xuICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm5cblxuICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3BlY2lmaWVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcixcbiAgICAgICAgICAgICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KHNwZWNpZmllci5sb2NhbC5uYW1lLCBpbXBvcnRzKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBjYXNlICdJbXBvcnRTcGVjaWZpZXInOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IGltcG9ydHMuZ2V0KFxuICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byAnZGVmYXVsdCcgZm9yIGRlZmF1bHQgaHR0cDovL2kuaW1ndXIuY29tL25qNnFBV3kuanBnXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpZXIuaW1wb3J0ZWQgPyBzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoIW1ldGEgfHwgIW1ldGEubmFtZXNwYWNlKSB7IGJyZWFrIH1cbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VzLnNldChzcGVjaWZpZXIubG9jYWwubmFtZSwgbWV0YS5uYW1lc3BhY2UpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBib2R5LmZvckVhY2gocHJvY2Vzc0JvZHlTdGF0ZW1lbnQpXG4gICAgICB9LFxuXG4gICAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICAgRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyKG5hbWVzcGFjZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICAgIHZhciBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIHRvZG86IGNoZWNrIGZvciBwb3NzaWJsZSByZWRlZmluaXRpb25cblxuICAgICAgTWVtYmVyRXhwcmVzc2lvbihkZXJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLnBhcmVudC50eXBlID09PSAnQXNzaWdubWVudEV4cHJlc3Npb24nICYmIGRlcmVmZXJlbmNlLnBhcmVudC5sZWZ0ID09PSBkZXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnBhcmVudCxcbiAgICAgICAgICAgICAgYEFzc2lnbm1lbnQgdG8gbWVtYmVyIG9mIG5hbWVzcGFjZSAnJHtkZXJlZmVyZW5jZS5vYmplY3QubmFtZX0nLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGdvIGRlZXBcbiAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKVxuICAgICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAgIC8vIHdoaWxlIHByb3BlcnR5IGlzIG5hbWVzcGFjZSBhbmQgcGFyZW50IGlzIG1lbWJlciBleHByZXNzaW9uLCBrZWVwIHZhbGlkYXRpbmdcbiAgICAgICAgd2hpbGUgKG5hbWVzcGFjZSBpbnN0YW5jZW9mIEV4cG9ydHMgJiYgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICBpZiAoZGVyZWZlcmVuY2UuY29tcHV0ZWQpIHtcbiAgICAgICAgICAgIGlmICghYWxsb3dDb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgICAgICBkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIHZhbGlkYXRlIGNvbXB1dGVkIHJlZmVyZW5jZSB0byBpbXBvcnRlZCBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgICBtYWtlTWVzc2FnZShkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbmFtZXBhdGgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGV4cG9ydGVkID0gbmFtZXNwYWNlLmdldChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICAgIGlmIChleHBvcnRlZCA9PSBudWxsKSByZXR1cm5cblxuICAgICAgICAgIC8vIHN0YXNoIGFuZCBwb3BcbiAgICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgICAgbmFtZXNwYWNlID0gZXhwb3J0ZWQubmFtZXNwYWNlXG4gICAgICAgICAgZGVyZWZlcmVuY2UgPSBkZXJlZmVyZW5jZS5wYXJlbnRcbiAgICAgICAgfVxuXG4gICAgICB9LFxuXG4gICAgICBWYXJpYWJsZURlY2xhcmF0b3IoeyBpZCwgaW5pdCB9KSB7XG4gICAgICAgIGlmIChpbml0ID09IG51bGwpIHJldHVyblxuICAgICAgICBpZiAoaW5pdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGluaXQubmFtZSkpIHJldHVyblxuXG4gICAgICAgIC8vIGNoZWNrIGZvciByZWRlZmluaXRpb24gaW4gaW50ZXJtZWRpYXRlIHNjb3Blc1xuICAgICAgICBpZiAoZGVjbGFyZWRTY29wZShjb250ZXh0LCBpbml0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgLy8gREZTIHRyYXZlcnNlIGNoaWxkIG5hbWVzcGFjZXNcbiAgICAgICAgZnVuY3Rpb24gdGVzdEtleShwYXR0ZXJuLCBuYW1lc3BhY2UsIHBhdGggPSBbaW5pdC5uYW1lXSkge1xuICAgICAgICAgIGlmICghKG5hbWVzcGFjZSBpbnN0YW5jZW9mIEV4cG9ydHMpKSByZXR1cm5cblxuICAgICAgICAgIGlmIChwYXR0ZXJuLnR5cGUgIT09ICdPYmplY3RQYXR0ZXJuJykgcmV0dXJuXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHBhdHRlcm4ucHJvcGVydGllcykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcm9wZXJ0eS50eXBlID09PSAnRXhwZXJpbWVudGFsUmVzdFByb3BlcnR5J1xuICAgICAgICAgICAgICB8fCBwcm9wZXJ0eS50eXBlID09PSAnUmVzdEVsZW1lbnQnXG4gICAgICAgICAgICAgIHx8ICFwcm9wZXJ0eS5rZXlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvcGVydHkua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ09ubHkgZGVzdHJ1Y3R1cmUgdG9wLWxldmVsIG5hbWVzLicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwcm9wZXJ0eS5rZXkubmFtZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1ha2VNZXNzYWdlKHByb3BlcnR5LmtleSwgcGF0aCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgucHVzaChwcm9wZXJ0eS5rZXkubmFtZSlcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lFeHBvcnRNYXAgPSBuYW1lc3BhY2UuZ2V0KHByb3BlcnR5LmtleS5uYW1lKVxuICAgICAgICAgICAgLy8gY291bGQgYmUgbnVsbCB3aGVuIGlnbm9yZWQgb3IgYW1iaWd1b3VzXG4gICAgICAgICAgICBpZiAoZGVwZW5kZW5jeUV4cG9ydE1hcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB0ZXN0S2V5KHByb3BlcnR5LnZhbHVlLCBkZXBlbmRlbmN5RXhwb3J0TWFwLm5hbWVzcGFjZSwgcGF0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgucG9wKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZXN0S2V5KGlkLCBuYW1lc3BhY2VzLmdldChpbml0Lm5hbWUpKVxuICAgICAgfSxcblxuICAgICAgSlNYTWVtYmVyRXhwcmVzc2lvbih7b2JqZWN0LCBwcm9wZXJ0eX0pIHtcbiAgICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMob2JqZWN0Lm5hbWUpKSByZXR1cm5cbiAgICAgICAgIHZhciBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmdldChvYmplY3QubmFtZSlcbiAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwcm9wZXJ0eS5uYW1lKSkge1xuICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICAgbWVzc2FnZTogbWFrZU1lc3NhZ2UocHJvcGVydHksIFtvYmplY3QubmFtZV0pLFxuICAgICAgICAgICB9KVxuICAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js b/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js
index 7505299..d047a91 100644
--- a/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js
+++ b/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js
@@ -1,42 +1,29 @@
 'use strict';
 
-var _staticRequire = require('../core/staticRequire');
 
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
 
-var _docsUrl = require('../docsUrl');
 
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
 
-var _debug = require('debug');
-
-var _debug2 = _interopRequireDefault(_debug);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
+var _debug = require('debug');var _debug2 = _interopRequireDefault(_debug);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 const log = (0, _debug2.default)('eslint-plugin-import:rules:newline-after-import');
 
 //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
-
 /**
  * @fileoverview Rule to enforce new line after import not followed by another import.
  * @author Radek Benkel
- */
-
-function containsNodeOrEqual(outerNode, innerNode) {
-  return outerNode.range[0] <= innerNode.range[0] && outerNode.range[1] >= innerNode.range[1];
-}
+ */function containsNodeOrEqual(outerNode, innerNode) {return outerNode.range[0] <= innerNode.range[0] && outerNode.range[1] >= innerNode.range[1];}
 
 function getScopeBody(scope) {
   if (scope.block.type === 'SwitchStatement') {
     log('SwitchStatement scopes not supported');
     return null;
-  }
+  }const
 
-  const body = scope.block.body;
-
+  body = scope.block.body;
   if (body && body.type === 'BlockStatement') {
     return body.body;
   }
@@ -56,30 +43,42 @@
   return node.type === 'ClassDeclaration' && node.decorators && node.decorators.length;
 }
 
+function isExportDefaultClass(node) {
+  return node.type === 'ExportDefaultDeclaration' && node.declaration.type === 'ClassDeclaration';
+}
+
 module.exports = {
   meta: {
     type: 'layout',
     docs: {
-      url: (0, _docsUrl2.default)('newline-after-import')
-    },
+      url: (0, _docsUrl2.default)('newline-after-import') },
+
     fixable: 'whitespace',
-    schema: [{
+    schema: [
+    {
       'type': 'object',
       'properties': {
         'count': {
           'type': 'integer',
-          'minimum': 1
-        }
-      },
-      'additionalProperties': false
-    }]
-  },
+          'minimum': 1 } },
+
+
+      'additionalProperties': false }] },
+
+
+
   create: function (context) {
     let level = 0;
     const requireCalls = [];
 
     function checkForNewLine(node, nextNode, type) {
-      if (isClassWithDecorator(nextNode)) {
+      if (isExportDefaultClass(nextNode)) {
+        let classNode = nextNode.declaration;
+
+        if (isClassWithDecorator(classNode)) {
+          nextNode = classNode.decorators[0];
+        }
+      } else if (isClassWithDecorator(nextNode)) {
         nextNode = nextNode.decorators[0];
       }
 
@@ -97,12 +96,15 @@
         context.report({
           loc: {
             line: node.loc.end.line,
-            column
-          },
+            column },
+
           message: `Expected ${options.count} empty line${options.count > 1 ? 's' : ''} \
 after ${type} statement not followed by another ${type}.`,
-          fix: fixer => fixer.insertTextAfter(node, '\n'.repeat(EXPECTED_LINE_DIFFERENCE - lineDifference))
-        });
+          fix: fixer => fixer.insertTextAfter(
+          node,
+          '\n'.repeat(EXPECTED_LINE_DIFFERENCE - lineDifference)) });
+
+
       }
     }
 
@@ -113,17 +115,24 @@
       level--;
     }
 
+    function checkImport(node) {const
+      parent = node.parent;
+      const nodePosition = parent.body.indexOf(node);
+      const nextNode = parent.body[nodePosition + 1];
+
+      // skip "export import"s
+      if (node.type === 'TSImportEqualsDeclaration' && node.isExport) {
+        return;
+      }
+
+      if (nextNode && nextNode.type !== 'ImportDeclaration' && (nextNode.type !== 'TSImportEqualsDeclaration' || nextNode.isExport)) {
+        checkForNewLine(node, nextNode, 'import');
+      }
+    }
+
     return {
-      ImportDeclaration: function (node) {
-        const parent = node.parent;
-
-        const nodePosition = parent.body.indexOf(node);
-        const nextNode = parent.body[nodePosition + 1];
-
-        if (nextNode && nextNode.type !== 'ImportDeclaration') {
-          checkForNewLine(node, nextNode, 'import');
-        }
-      },
+      ImportDeclaration: checkImport,
+      TSImportEqualsDeclaration: checkImport,
       CallExpression: function (node) {
         if ((0, _staticRequire2.default)(node) && level === 0) {
           requireCalls.push(node);
@@ -146,7 +155,8 @@
             return;
           }
 
-          if (nextStatement && (!nextRequireCall || !containsNodeOrEqual(nextStatement, nextRequireCall))) {
+          if (nextStatement && (
+          !nextRequireCall || !containsNodeOrEqual(nextStatement, nextRequireCall))) {
 
             checkForNewLine(statementWithRequireCall, nextStatement, 'require');
           }
@@ -163,8 +173,7 @@
       'ArrowFunctionExpression:exit': decrementLevel,
       'BlockStatement:exit': decrementLevel,
       'ObjectExpression:exit': decrementLevel,
-      'Decorator:exit': decrementLevel
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uZXdsaW5lLWFmdGVyLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJjb250YWluc05vZGVPckVxdWFsIiwib3V0ZXJOb2RlIiwiaW5uZXJOb2RlIiwicmFuZ2UiLCJnZXRTY29wZUJvZHkiLCJzY29wZSIsImJsb2NrIiwidHlwZSIsImJvZHkiLCJmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkiLCJub2RlVG9GaW5kIiwiZmluZEluZGV4Iiwibm9kZSIsImdldExpbmVEaWZmZXJlbmNlIiwibmV4dE5vZGUiLCJsb2MiLCJzdGFydCIsImxpbmUiLCJlbmQiLCJpc0NsYXNzV2l0aERlY29yYXRvciIsImRlY29yYXRvcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImxldmVsIiwicmVxdWlyZUNhbGxzIiwiY2hlY2tGb3JOZXdMaW5lIiwib3B0aW9ucyIsImNvdW50IiwibGluZURpZmZlcmVuY2UiLCJFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UiLCJjb2x1bW4iLCJyZXBvcnQiLCJtZXNzYWdlIiwiZml4IiwiZml4ZXIiLCJpbnNlcnRUZXh0QWZ0ZXIiLCJyZXBlYXQiLCJpbmNyZW1lbnRMZXZlbCIsImRlY3JlbWVudExldmVsIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJwYXJlbnQiLCJub2RlUG9zaXRpb24iLCJpbmRleE9mIiwiQ2FsbEV4cHJlc3Npb24iLCJwdXNoIiwiZ2V0RmlsZW5hbWUiLCJzY29wZUJvZHkiLCJnZXRTY29wZSIsImZvckVhY2giLCJpbmRleCIsInN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCIsIm5leHRTdGF0ZW1lbnQiLCJuZXh0UmVxdWlyZUNhbGwiLCJGdW5jdGlvbkRlY2xhcmF0aW9uIiwiRnVuY3Rpb25FeHByZXNzaW9uIiwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iLCJCbG9ja1N0YXRl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QUFqQiIsImZpbGUiOiJuZXdsaW5lLWFmdGVyLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGVuZm9yY2UgbmV3IGxpbmUgYWZ0ZXIgaW1wb3J0IG5vdCBmb2xsb3dlZCBieSBhbm90aGVyIGltcG9ydC5cbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5jb25zdCBsb2cgPSBkZWJ1ZygnZXNsaW50LXBsdWdpbi1pbXBvcnQ6cnVsZXM6bmV3bGluZS1hZnRlci1pbXBvcnQnKVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBjb250YWluc05vZGVPckVxdWFsKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5yYW5nZVswXSA8PSBpbm5lck5vZGUucmFuZ2VbMF0gJiYgb3V0ZXJOb2RlLnJhbmdlWzFdID49IGlubmVyTm9kZS5yYW5nZVsxXVxufVxuXG5mdW5jdGlvbiBnZXRTY29wZUJvZHkoc2NvcGUpIHtcbiAgICBpZiAoc2NvcGUuYmxvY2sudHlwZSA9PT0gJ1N3aXRjaFN0YXRlbWVudCcpIHtcbiAgICAgIGxvZygnU3dpdGNoU3RhdGVtZW50IHNjb3BlcyBub3Qgc3VwcG9ydGVkJylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyBib2R5IH0gPSBzY29wZS5ibG9ja1xuICAgIGlmIChib2R5ICYmIGJvZHkudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50Jykge1xuICAgICAgICByZXR1cm4gYm9keS5ib2R5XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHlcbn1cblxuZnVuY3Rpb24gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KGJvZHksIG5vZGVUb0ZpbmQpIHtcbiAgICByZXR1cm4gYm9keS5maW5kSW5kZXgoKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpXG59XG5cbmZ1bmN0aW9uIGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSB7XG4gIHJldHVybiBuZXh0Tm9kZS5sb2Muc3RhcnQubGluZSAtIG5vZGUubG9jLmVuZC5saW5lXG59XG5cbmZ1bmN0aW9uIGlzQ2xhc3NXaXRoRGVjb3JhdG9yKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0NsYXNzRGVjbGFyYXRpb24nICYmIG5vZGUuZGVjb3JhdG9ycyAmJiBub2RlLmRlY29yYXRvcnMubGVuZ3RoXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ2xheW91dCcsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduZXdsaW5lLWFmdGVyLWltcG9ydCcpLFxuICAgIH0sXG4gICAgZml4YWJsZTogJ3doaXRlc3BhY2UnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnY291bnQnOiB7XG4gICAgICAgICAgICAndHlwZSc6ICdpbnRlZ2VyJyxcbiAgICAgICAgICAgICdtaW5pbXVtJzogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGxldCBsZXZlbCA9IDBcbiAgICBjb25zdCByZXF1aXJlQ2FsbHMgPSBbXVxuXG4gICAgZnVuY3Rpb24gY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCB0eXBlKSB7XG4gICAgICBpZiAoaXNDbGFzc1dpdGhEZWNvcmF0b3IobmV4dE5vZGUpKSB7XG4gICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUuZGVjb3JhdG9yc1swXVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHsgY291bnQ6IDEgfVxuICAgICAgY29uc3QgbGluZURpZmZlcmVuY2UgPSBnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSlcbiAgICAgIGNvbnN0IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSA9IG9wdGlvbnMuY291bnQgKyAxXG5cbiAgICAgIGlmIChsaW5lRGlmZmVyZW5jZSA8IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSkge1xuICAgICAgICBsZXQgY29sdW1uID0gbm9kZS5sb2Muc3RhcnQuY29sdW1uXG5cbiAgICAgICAgaWYgKG5vZGUubG9jLnN0YXJ0LmxpbmUgIT09IG5vZGUubG9jLmVuZC5saW5lKSB7XG4gICAgICAgICAgY29sdW1uID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGxvYzoge1xuICAgICAgICAgICAgbGluZTogbm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHtvcHRpb25zLmNvdW50fSBlbXB0eSBsaW5lJHtvcHRpb25zLmNvdW50ID4gMSA/ICdzJyA6ICcnfSBcXFxuYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICdcXG4nLnJlcGVhdChFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UgLSBsaW5lRGlmZmVyZW5jZSlcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwrK1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsLS1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlXG4gICAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSlcbiAgICAgICAgY29uc3QgbmV4dE5vZGUgPSBwYXJlbnQuYm9keVtub2RlUG9zaXRpb24gKyAxXVxuXG4gICAgICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCAnaW1wb3J0JylcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkgJiYgbGV2ZWwgPT09IDApIHtcbiAgICAgICAgICByZXF1aXJlQ2FsbHMucHVzaChub2RlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9nKCdleGl0IHByb2Nlc3NpbmcgZm9yJywgY29udGV4dC5nZXRGaWxlbmFtZSgpKVxuICAgICAgICBjb25zdCBzY29wZUJvZHkgPSBnZXRTY29wZUJvZHkoY29udGV4dC5nZXRTY29wZSgpKVxuICAgICAgICBsb2coJ2dvdCBzY29wZTonLCBzY29wZUJvZHkpXG5cbiAgICAgICAgcmVxdWlyZUNhbGxzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZVBvc2l0aW9uID0gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KHNjb3BlQm9keSwgbm9kZSlcbiAgICAgICAgICBsb2coJ25vZGUgcG9zaXRpb24gaW4gc2NvcGU6Jywgbm9kZVBvc2l0aW9uKVxuXG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbl1cbiAgICAgICAgICBjb25zdCBuZXh0U3RhdGVtZW50ID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbiArIDFdXG4gICAgICAgICAgY29uc3QgbmV4dFJlcXVpcmVDYWxsID0gcmVxdWlyZUNhbGxzW2luZGV4ICsgMV1cblxuICAgICAgICAgIGlmIChuZXh0UmVxdWlyZUNhbGwgJiYgY29udGFpbnNOb2RlT3JFcXVhbChzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRSZXF1aXJlQ2FsbCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChuZXh0U3RhdGVtZW50ICYmXG4gICAgICAgICAgICAgKCFuZXh0UmVxdWlyZUNhbGwgfHwgIWNvbnRhaW5zTm9kZU9yRXF1YWwobmV4dFN0YXRlbWVudCwgbmV4dFJlcXVpcmVDYWxsKSkpIHtcblxuICAgICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFN0YXRlbWVudCwgJ3JlcXVpcmUnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBCbG9ja1N0YXRlbWVudDogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIERlY29yYXRvcjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ09iamVjdEV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0RlY29yYXRvcjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      'Decorator:exit': decrementLevel };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uZXdsaW5lLWFmdGVyLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJjb250YWluc05vZGVPckVxdWFsIiwib3V0ZXJOb2RlIiwiaW5uZXJOb2RlIiwicmFuZ2UiLCJnZXRTY29wZUJvZHkiLCJzY29wZSIsImJsb2NrIiwidHlwZSIsImJvZHkiLCJmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkiLCJub2RlVG9GaW5kIiwiZmluZEluZGV4Iiwibm9kZSIsImdldExpbmVEaWZmZXJlbmNlIiwibmV4dE5vZGUiLCJsb2MiLCJzdGFydCIsImxpbmUiLCJlbmQiLCJpc0NsYXNzV2l0aERlY29yYXRvciIsImRlY29yYXRvcnMiLCJsZW5ndGgiLCJpc0V4cG9ydERlZmF1bHRDbGFzcyIsImRlY2xhcmF0aW9uIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJsZXZlbCIsInJlcXVpcmVDYWxscyIsImNoZWNrRm9yTmV3TGluZSIsImNsYXNzTm9kZSIsIm9wdGlvbnMiLCJjb3VudCIsImxpbmVEaWZmZXJlbmNlIiwiRVhQRUNURURfTElORV9ESUZGRVJFTkNFIiwiY29sdW1uIiwicmVwb3J0IiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwiaW5zZXJ0VGV4dEFmdGVyIiwicmVwZWF0IiwiaW5jcmVtZW50TGV2ZWwiLCJkZWNyZW1lbnRMZXZlbCIsImNoZWNrSW1wb3J0IiwicGFyZW50Iiwibm9kZVBvc2l0aW9uIiwiaW5kZXhPZiIsImlzRXhwb3J0IiwiSW1wb3J0RGVjbGFyYXRpb24iLCJUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJwdXNoIiwiZ2V0RmlsZW5hbWUiLCJzY29wZUJvZHkiLCJnZXRTY29wZSIsImZvckVhY2giLCJpbmRleCIsInN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCIsIm5leHRTdGF0ZW1lbnQiLCJuZXh0UmVxdWlyZUNhbGwiLCJGdW5jdGlvbkRlY2xhcmF0aW9uIiwiRnVuY3Rpb25FeHByZXNzaW9uIiwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iLCJCbG9ja1N0YXRlbWVudCIsIk9iamVjdEV4cHJlc3Npb24iLCJEZWNvcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0Esc0Q7QUFDQSxxQzs7QUFFQSw4QjtBQUNBLE1BQU1BLE1BQU0scUJBQU0saURBQU4sQ0FBWjs7QUFFQTtBQUNBO0FBQ0E7QUFiQTs7O0dBZUEsU0FBU0MsbUJBQVQsQ0FBNkJDLFNBQTdCLEVBQXdDQyxTQUF4QyxFQUFtRCxDQUMvQyxPQUFPRCxVQUFVRSxLQUFWLENBQWdCLENBQWhCLEtBQXNCRCxVQUFVQyxLQUFWLENBQWdCLENBQWhCLENBQXRCLElBQTRDRixVQUFVRSxLQUFWLENBQWdCLENBQWhCLEtBQXNCRCxVQUFVQyxLQUFWLENBQWdCLENBQWhCLENBQXpFLENBQ0g7O0FBRUQsU0FBU0MsWUFBVCxDQUFzQkMsS0FBdEIsRUFBNkI7QUFDekIsTUFBSUEsTUFBTUMsS0FBTixDQUFZQyxJQUFaLEtBQXFCLGlCQUF6QixFQUE0QztBQUMxQ1IsUUFBSSxzQ0FBSjtBQUNBLFdBQU8sSUFBUDtBQUNELEdBSndCOztBQU1qQlMsTUFOaUIsR0FNUkgsTUFBTUMsS0FORSxDQU1qQkUsSUFOaUI7QUFPekIsTUFBSUEsUUFBUUEsS0FBS0QsSUFBTCxLQUFjLGdCQUExQixFQUE0QztBQUN4QyxXQUFPQyxLQUFLQSxJQUFaO0FBQ0g7O0FBRUQsU0FBT0EsSUFBUDtBQUNIOztBQUVELFNBQVNDLHdCQUFULENBQWtDRCxJQUFsQyxFQUF3Q0UsVUFBeEMsRUFBb0Q7QUFDaEQsU0FBT0YsS0FBS0csU0FBTCxDQUFnQkMsSUFBRCxJQUFVWixvQkFBb0JZLElBQXBCLEVBQTBCRixVQUExQixDQUF6QixDQUFQO0FBQ0g7O0FBRUQsU0FBU0csaUJBQVQsQ0FBMkJELElBQTNCLEVBQWlDRSxRQUFqQyxFQUEyQztBQUN6QyxTQUFPQSxT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QUFDQSxnQkFBTWMsa0JBQWtCaEMsYUFBYTZCLFFBQVEsQ0FBckIsQ0FBeEI7O0FBRUEsY0FBSUcsbUJBQW1CbEUsb0JBQW9CZ0Usd0JBQXBCLEVBQThDRSxlQUE5QyxDQUF2QixFQUF1RjtBQUNyRjtBQUNEOztBQUVELGNBQUlEO0FBQ0EsV0FBQ0MsZUFBRCxJQUFvQixDQUFDbEUsb0JBQW9CaUUsYUFBcEIsRUFBbUNDLGVBQW5DLENBRHJCLENBQUosRUFDK0U7O0FBRTdFL0IsNEJBQWdCNkIsd0JBQWhCLEVBQTBDQyxhQUExQyxFQUF5RCxTQUF6RDtBQUNEO0FBQ0YsU0FqQkQ7QUFrQkQsT0EvQkk7QUFnQ0xFLDJCQUFxQm5CLGNBaENoQjtBQWlDTG9CLDBCQUFvQnBCLGNBakNmO0FBa0NMcUIsK0JBQXlCckIsY0FsQ3BCO0FBbUNMc0Isc0JBQWdCdEIsY0FuQ1g7QUFvQ0x1Qix3QkFBa0J2QixjQXBDYjtBQXFDTHdCLGlCQUFXeEIsY0FyQ047QUFzQ0wsa0NBQTRCQyxjQXRDdkI7QUF1Q0wsaUNBQTJCQSxjQXZDdEI7QUF3Q0wsc0NBQWdDQSxjQXhDM0I7QUF5Q0wsNkJBQXVCQSxjQXpDbEI7QUEwQ0wsK0JBQXlCQSxjQTFDcEI7QUEyQ0wsd0JBQWtCQSxjQTNDYixFQUFQOztBQTZDRCxHQWhJYyxFQUFqQiIsImZpbGUiOiJuZXdsaW5lLWFmdGVyLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGVuZm9yY2UgbmV3IGxpbmUgYWZ0ZXIgaW1wb3J0IG5vdCBmb2xsb3dlZCBieSBhbm90aGVyIGltcG9ydC5cbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5jb25zdCBsb2cgPSBkZWJ1ZygnZXNsaW50LXBsdWdpbi1pbXBvcnQ6cnVsZXM6bmV3bGluZS1hZnRlci1pbXBvcnQnKVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBjb250YWluc05vZGVPckVxdWFsKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5yYW5nZVswXSA8PSBpbm5lck5vZGUucmFuZ2VbMF0gJiYgb3V0ZXJOb2RlLnJhbmdlWzFdID49IGlubmVyTm9kZS5yYW5nZVsxXVxufVxuXG5mdW5jdGlvbiBnZXRTY29wZUJvZHkoc2NvcGUpIHtcbiAgICBpZiAoc2NvcGUuYmxvY2sudHlwZSA9PT0gJ1N3aXRjaFN0YXRlbWVudCcpIHtcbiAgICAgIGxvZygnU3dpdGNoU3RhdGVtZW50IHNjb3BlcyBub3Qgc3VwcG9ydGVkJylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyBib2R5IH0gPSBzY29wZS5ibG9ja1xuICAgIGlmIChib2R5ICYmIGJvZHkudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50Jykge1xuICAgICAgICByZXR1cm4gYm9keS5ib2R5XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHlcbn1cblxuZnVuY3Rpb24gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KGJvZHksIG5vZGVUb0ZpbmQpIHtcbiAgICByZXR1cm4gYm9keS5maW5kSW5kZXgoKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpXG59XG5cbmZ1bmN0aW9uIGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSB7XG4gIHJldHVybiBuZXh0Tm9kZS5sb2Muc3RhcnQubGluZSAtIG5vZGUubG9jLmVuZC5saW5lXG59XG5cbmZ1bmN0aW9uIGlzQ2xhc3NXaXRoRGVjb3JhdG9yKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0NsYXNzRGVjbGFyYXRpb24nICYmIG5vZGUuZGVjb3JhdG9ycyAmJiBub2RlLmRlY29yYXRvcnMubGVuZ3RoXG59XG5cbmZ1bmN0aW9uIGlzRXhwb3J0RGVmYXVsdENsYXNzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnQ2xhc3NEZWNsYXJhdGlvbidcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnbGF5b3V0JyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25ld2xpbmUtYWZ0ZXItaW1wb3J0JyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnd2hpdGVzcGFjZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICdjb3VudCc6IHtcbiAgICAgICAgICAgICd0eXBlJzogJ2ludGVnZXInLFxuICAgICAgICAgICAgJ21pbmltdW0nOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgbGV0IGxldmVsID0gMFxuICAgIGNvbnN0IHJlcXVpcmVDYWxscyA9IFtdXG5cbiAgICBmdW5jdGlvbiBjaGVja0Zvck5ld0xpbmUobm9kZSwgbmV4dE5vZGUsIHR5cGUpIHtcbiAgICAgIGlmIChpc0V4cG9ydERlZmF1bHRDbGFzcyhuZXh0Tm9kZSkpIHtcbiAgICAgICAgbGV0IGNsYXNzTm9kZSA9IG5leHROb2RlLmRlY2xhcmF0aW9uXG5cbiAgICAgICAgaWYgKGlzQ2xhc3NXaXRoRGVjb3JhdG9yKGNsYXNzTm9kZSkpIHtcbiAgICAgICAgICBuZXh0Tm9kZSA9IGNsYXNzTm9kZS5kZWNvcmF0b3JzWzBdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNDbGFzc1dpdGhEZWNvcmF0b3IobmV4dE5vZGUpKSB7XG4gICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUuZGVjb3JhdG9yc1swXVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHsgY291bnQ6IDEgfVxuICAgICAgY29uc3QgbGluZURpZmZlcmVuY2UgPSBnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSlcbiAgICAgIGNvbnN0IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSA9IG9wdGlvbnMuY291bnQgKyAxXG5cbiAgICAgIGlmIChsaW5lRGlmZmVyZW5jZSA8IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSkge1xuICAgICAgICBsZXQgY29sdW1uID0gbm9kZS5sb2Muc3RhcnQuY29sdW1uXG5cbiAgICAgICAgaWYgKG5vZGUubG9jLnN0YXJ0LmxpbmUgIT09IG5vZGUubG9jLmVuZC5saW5lKSB7XG4gICAgICAgICAgY29sdW1uID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGxvYzoge1xuICAgICAgICAgICAgbGluZTogbm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHtvcHRpb25zLmNvdW50fSBlbXB0eSBsaW5lJHtvcHRpb25zLmNvdW50ID4gMSA/ICdzJyA6ICcnfSBcXFxuYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICdcXG4nLnJlcGVhdChFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UgLSBsaW5lRGlmZmVyZW5jZSlcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwrK1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsLS1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ltcG9ydChub2RlKSB7XG4gICAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlXG4gICAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSlcbiAgICAgICAgY29uc3QgbmV4dE5vZGUgPSBwYXJlbnQuYm9keVtub2RlUG9zaXRpb24gKyAxXVxuICAgICAgICBcbiAgICAgICAgLy8gc2tpcCBcImV4cG9ydCBpbXBvcnRcInNcbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nICYmIG5vZGUuaXNFeHBvcnQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nICYmIChuZXh0Tm9kZS50eXBlICE9PSAnVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbicgfHwgbmV4dE5vZGUuaXNFeHBvcnQpKSB7XG4gICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCAnaW1wb3J0JylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogY2hlY2tJbXBvcnQsXG4gICAgICBUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOiBjaGVja0ltcG9ydCxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkgJiYgbGV2ZWwgPT09IDApIHtcbiAgICAgICAgICByZXF1aXJlQ2FsbHMucHVzaChub2RlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9nKCdleGl0IHByb2Nlc3NpbmcgZm9yJywgY29udGV4dC5nZXRGaWxlbmFtZSgpKVxuICAgICAgICBjb25zdCBzY29wZUJvZHkgPSBnZXRTY29wZUJvZHkoY29udGV4dC5nZXRTY29wZSgpKVxuICAgICAgICBsb2coJ2dvdCBzY29wZTonLCBzY29wZUJvZHkpXG5cbiAgICAgICAgcmVxdWlyZUNhbGxzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZVBvc2l0aW9uID0gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KHNjb3BlQm9keSwgbm9kZSlcbiAgICAgICAgICBsb2coJ25vZGUgcG9zaXRpb24gaW4gc2NvcGU6Jywgbm9kZVBvc2l0aW9uKVxuXG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbl1cbiAgICAgICAgICBjb25zdCBuZXh0U3RhdGVtZW50ID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbiArIDFdXG4gICAgICAgICAgY29uc3QgbmV4dFJlcXVpcmVDYWxsID0gcmVxdWlyZUNhbGxzW2luZGV4ICsgMV1cblxuICAgICAgICAgIGlmIChuZXh0UmVxdWlyZUNhbGwgJiYgY29udGFpbnNOb2RlT3JFcXVhbChzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRSZXF1aXJlQ2FsbCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChuZXh0U3RhdGVtZW50ICYmXG4gICAgICAgICAgICAgKCFuZXh0UmVxdWlyZUNhbGwgfHwgIWNvbnRhaW5zTm9kZU9yRXF1YWwobmV4dFN0YXRlbWVudCwgbmV4dFJlcXVpcmVDYWxsKSkpIHtcblxuICAgICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFN0YXRlbWVudCwgJ3JlcXVpcmUnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBCbG9ja1N0YXRlbWVudDogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIERlY29yYXRvcjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ09iamVjdEV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0RlY29yYXRvcjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js b/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js
index 3a920cd..ff1cb22 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js
@@ -1,25 +1,15 @@
-'use strict';
-
-var _moduleVisitor = require('eslint-module-utils/moduleVisitor');
-
-var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
-
+'use strict';var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
 var _importType = require('../core/importType');
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-absolute-path')
-    },
-    schema: [(0, _moduleVisitor.makeOptionsSchema)()]
-  },
+      url: (0, _docsUrl2.default)('no-absolute-path') },
+
+    schema: [(0, _moduleVisitor.makeOptionsSchema)()] },
+
 
   create: function (context) {
     function reportIfAbsolute(source) {
@@ -30,6 +20,5 @@
 
     const options = Object.assign({ esmodule: true, commonjs: true }, context.options[0]);
     return (0, _moduleVisitor2.default)(reportIfAbsolute, options);
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hYnNvbHV0ZS1wYXRoLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwicmVwb3J0SWZBYnNvbHV0ZSIsInNvdXJjZSIsInZhbHVlIiwicmVwb3J0Iiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImVzbW9kdWxlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGtCQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRLENBQUUsdUNBQUY7QUFMSixHQURTOztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDO0FBQ2hDLFVBQUksT0FBT0EsT0FBT0MsS0FBZCxLQUF3QixRQUF4QixJQUFvQyw0QkFBV0QsT0FBT0MsS0FBbEIsQ0FBeEMsRUFBa0U7QUFDaEVILGdCQUFRSSxNQUFSLENBQWVGLE1BQWYsRUFBdUIsOENBQXZCO0FBQ0Q7QUFDRjs7QUFFRCxVQUFNRyxVQUFVQyxPQUFPQyxNQUFQLENBQWMsRUFBRUMsVUFBVSxJQUFaLEVBQWtCQyxVQUFVLElBQTVCLEVBQWQsRUFBa0RULFFBQVFLLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBbEQsQ0FBaEI7QUFDQSxXQUFPLDZCQUFjSixnQkFBZCxFQUFnQ0ksT0FBaEMsQ0FBUDtBQUNEO0FBbEJjLENBQWpCIiwiZmlsZSI6Im5vLWFic29sdXRlLXBhdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kdWxlVmlzaXRvciwgeyBtYWtlT3B0aW9uc1NjaGVtYSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCB7IGlzQWJzb2x1dGUgfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFic29sdXRlLXBhdGgnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogWyBtYWtlT3B0aW9uc1NjaGVtYSgpIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIHJlcG9ydElmQWJzb2x1dGUoc291cmNlKSB7XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZS52YWx1ZSA9PT0gJ3N0cmluZycgJiYgaXNBYnNvbHV0ZShzb3VyY2UudmFsdWUpKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHNvdXJjZSwgJ0RvIG5vdCBpbXBvcnQgbW9kdWxlcyB1c2luZyBhbiBhYnNvbHV0ZSBwYXRoJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IGVzbW9kdWxlOiB0cnVlLCBjb21tb25qczogdHJ1ZSB9LCBjb250ZXh0Lm9wdGlvbnNbMF0pXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IocmVwb3J0SWZBYnNvbHV0ZSwgb3B0aW9ucylcbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hYnNvbHV0ZS1wYXRoLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwicmVwb3J0SWZBYnNvbHV0ZSIsInNvdXJjZSIsInZhbHVlIiwicmVwb3J0Iiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImVzbW9kdWxlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0E7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLENBQUUsdUNBQUYsQ0FMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLGdCQUFULENBQTBCQyxNQUExQixFQUFrQztBQUNoQyxVQUFJLE9BQU9BLE9BQU9DLEtBQWQsS0FBd0IsUUFBeEIsSUFBb0MsNEJBQVdELE9BQU9DLEtBQWxCLENBQXhDLEVBQWtFO0FBQ2hFSCxnQkFBUUksTUFBUixDQUFlRixNQUFmLEVBQXVCLDhDQUF2QjtBQUNEO0FBQ0Y7O0FBRUQsVUFBTUcsVUFBVUMsT0FBT0MsTUFBUCxDQUFjLEVBQUVDLFVBQVUsSUFBWixFQUFrQkMsVUFBVSxJQUE1QixFQUFkLEVBQWtEVCxRQUFRSyxPQUFSLENBQWdCLENBQWhCLENBQWxELENBQWhCO0FBQ0EsV0FBTyw2QkFBY0osZ0JBQWQsRUFBZ0NJLE9BQWhDLENBQVA7QUFDRCxHQWxCYyxFQUFqQiIsImZpbGUiOiJuby1hYnNvbHV0ZS1wYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgeyBpc0Fic29sdXRlIH0gZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1hYnNvbHV0ZS1wYXRoJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFsgbWFrZU9wdGlvbnNTY2hlbWEoKSBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiByZXBvcnRJZkFic29sdXRlKHNvdXJjZSkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnICYmIGlzQWJzb2x1dGUoc291cmNlLnZhbHVlKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsICdEbyBub3QgaW1wb3J0IG1vZHVsZXMgdXNpbmcgYW4gYWJzb2x1dGUgcGF0aCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBlc21vZHVsZTogdHJ1ZSwgY29tbW9uanM6IHRydWUgfSwgY29udGV4dC5vcHRpb25zWzBdKVxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKHJlcG9ydElmQWJzb2x1dGUsIG9wdGlvbnMpXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-amd.js b/node_modules/eslint-plugin-import/lib/rules/no-amd.js
index 90897f1..4eca3f4 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-amd.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-amd.js
@@ -1,10 +1,9 @@
 'use strict';
 
-var _docsUrl = require('../docsUrl');
 
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
 
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 //------------------------------------------------------------------------------
 // Rule Definition
@@ -14,10 +13,10 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-amd')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-amd') },
+
+    schema: [] },
+
 
   create: function (context) {
     return {
@@ -25,7 +24,8 @@
         if (context.getScope().type !== 'module') return;
 
         if (node.callee.type !== 'Identifier') return;
-        if (node.callee.name !== 'require' && node.callee.name !== 'define') return;
+        if (node.callee.name !== 'require' &&
+        node.callee.name !== 'define') return;
 
         // todo: capture define((require, module, exports) => {}) form?
         if (node.arguments.length !== 2) return;
@@ -36,11 +36,11 @@
         // todo: check second arg type? (identifier or callback)
 
         context.report(node, `Expected imports instead of AMD ${node.callee.name}().`);
-      }
-    };
-  }
-}; /**
-    * @fileoverview Rule to prefer imports to AMD
-    * @author Jamund Ferguson
-    */
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbWQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJub2RlIiwiZ2V0U2NvcGUiLCJjYWxsZWUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibW9kdWxlcyIsInJlcG9ydCJdLCJtYXBwaW5ncyI6Ijs7QUFLQTs7Ozs7O0FBRUE7QUFDQTtBQUNBOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxRQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRO0FBTEosR0FEUzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTCx3QkFBa0IsVUFBVUMsSUFBVixFQUFnQjtBQUNoQyxZQUFJRCxRQUFRRSxRQUFSLEdBQW1CUCxJQUFuQixLQUE0QixRQUFoQyxFQUEwQzs7QUFFMUMsWUFBSU0sS0FBS0UsTUFBTCxDQUFZUixJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3ZDLFlBQUlNLEtBQUtFLE1BQUwsQ0FBWUMsSUFBWixLQUFxQixTQUFyQixJQUNBSCxLQUFLRSxNQUFMLENBQVlDLElBQVosS0FBcUIsUUFEekIsRUFDbUM7O0FBRW5DO0FBQ0EsWUFBSUgsS0FBS0ksU0FBTCxDQUFlQyxNQUFmLEtBQTBCLENBQTlCLEVBQWlDOztBQUVqQyxjQUFNQyxVQUFVTixLQUFLSSxTQUFMLENBQWUsQ0FBZixDQUFoQjtBQUNBLFlBQUlFLFFBQVFaLElBQVIsS0FBaUIsaUJBQXJCLEVBQXdDOztBQUV4Qzs7QUFFQUssZ0JBQVFRLE1BQVIsQ0FBZVAsSUFBZixFQUFzQixtQ0FBa0NBLEtBQUtFLE1BQUwsQ0FBWUMsSUFBSyxLQUF6RTtBQUNEO0FBakJJLEtBQVA7QUFvQkQ7QUE5QmMsQ0FBakIsQyxDQVhBIiwiZmlsZSI6Im5vLWFtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBpbXBvcnRzIHRvIEFNRFxuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFtZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAobm9kZS5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnICYmXG4gICAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2FwdHVyZSBkZWZpbmUoKHJlcXVpcmUsIG1vZHVsZSwgZXhwb3J0cykgPT4ge30pIGZvcm0/XG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5sZW5ndGggIT09IDIpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgc2Vjb25kIGFyZyB0eXBlPyAoaWRlbnRpZmllciBvciBjYWxsYmFjaylcblxuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcbiAgICAgIH0sXG4gICAgfVxuXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      } };
+
+
+  } }; /**
+        * @fileoverview Rule to prefer imports to AMD
+        * @author Jamund Ferguson
+        */
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbWQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJub2RlIiwiZ2V0U2NvcGUiLCJjYWxsZWUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibW9kdWxlcyIsInJlcG9ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFFBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsd0JBQWtCLFVBQVVDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSUQsUUFBUUUsUUFBUixHQUFtQlAsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFlBQUlNLEtBQUtFLE1BQUwsQ0FBWVIsSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxZQUFJTSxLQUFLRSxNQUFMLENBQVlDLElBQVosS0FBcUIsU0FBckI7QUFDQUgsYUFBS0UsTUFBTCxDQUFZQyxJQUFaLEtBQXFCLFFBRHpCLEVBQ21DOztBQUVuQztBQUNBLFlBQUlILEtBQUtJLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQzs7QUFFakMsY0FBTUMsVUFBVU4sS0FBS0ksU0FBTCxDQUFlLENBQWYsQ0FBaEI7QUFDQSxZQUFJRSxRQUFRWixJQUFSLEtBQWlCLGlCQUFyQixFQUF3Qzs7QUFFeEM7O0FBRUFLLGdCQUFRUSxNQUFSLENBQWVQLElBQWYsRUFBc0IsbUNBQWtDQSxLQUFLRSxNQUFMLENBQVlDLElBQUssS0FBekU7QUFDRCxPQWpCSSxFQUFQOzs7QUFvQkQsR0E5QmMsRUFBakIsQyxDQVhBIiwiZmlsZSI6Im5vLWFtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBpbXBvcnRzIHRvIEFNRFxuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFtZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAobm9kZS5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnICYmXG4gICAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2FwdHVyZSBkZWZpbmUoKHJlcXVpcmUsIG1vZHVsZSwgZXhwb3J0cykgPT4ge30pIGZvcm0/XG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5sZW5ndGggIT09IDIpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgc2Vjb25kIGFyZyB0eXBlPyAoaWRlbnRpZmllciBvciBjYWxsYmFjaylcblxuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcbiAgICAgIH0sXG4gICAgfVxuXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js b/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js
index f9ac0d0..0c2b7da 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js
@@ -1,76 +1,71 @@
 'use strict';
 
-var _docsUrl = require('../docsUrl');
 
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
 
-var _has = require('has');
 
-var _has2 = _interopRequireDefault(_has);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * @fileoverview Rule to disallow anonymous default exports.
- * @author Duncan Beevers
- */
-
-const defs = {
-  ArrayExpression: {
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
+var _has = require('has');var _has2 = _interopRequireDefault(_has);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} /**
+                                                                                                                                                                  * @fileoverview Rule to disallow anonymous default exports.
+                                                                                                                                                                  * @author Duncan Beevers
+                                                                                                                                                                  */const defs = { ArrayExpression: {
     option: 'allowArray',
     description: 'If `false`, will report default export of an array',
-    message: 'Assign array to a variable before exporting as module default'
-  },
+    message: 'Assign array to a variable before exporting as module default' },
+
   ArrowFunctionExpression: {
     option: 'allowArrowFunction',
     description: 'If `false`, will report default export of an arrow function',
-    message: 'Assign arrow function to a variable before exporting as module default'
-  },
+    message: 'Assign arrow function to a variable before exporting as module default' },
+
   CallExpression: {
     option: 'allowCallExpression',
     description: 'If `false`, will report default export of a function call',
     message: 'Assign call result to a variable before exporting as module default',
-    default: true
-  },
+    default: true },
+
   ClassDeclaration: {
     option: 'allowAnonymousClass',
     description: 'If `false`, will report default export of an anonymous class',
     message: 'Unexpected default export of anonymous class',
-    forbid: node => !node.declaration.id
-  },
+    forbid: node => !node.declaration.id },
+
   FunctionDeclaration: {
     option: 'allowAnonymousFunction',
     description: 'If `false`, will report default export of an anonymous function',
     message: 'Unexpected default export of anonymous function',
-    forbid: node => !node.declaration.id
-  },
+    forbid: node => !node.declaration.id },
+
   Literal: {
     option: 'allowLiteral',
     description: 'If `false`, will report default export of a literal',
-    message: 'Assign literal to a variable before exporting as module default'
-  },
+    message: 'Assign literal to a variable before exporting as module default' },
+
   ObjectExpression: {
     option: 'allowObject',
     description: 'If `false`, will report default export of an object expression',
-    message: 'Assign object to a variable before exporting as module default'
-  },
+    message: 'Assign object to a variable before exporting as module default' },
+
   TemplateLiteral: {
     option: 'allowLiteral',
     description: 'If `false`, will report default export of a literal',
-    message: 'Assign literal to a variable before exporting as module default'
-  }
-};
+    message: 'Assign literal to a variable before exporting as module default' } };
 
-const schemaProperties = Object.keys(defs).map(key => defs[key]).reduce((acc, def) => {
+
+
+const schemaProperties = Object.keys(defs).
+map(key => defs[key]).
+reduce((acc, def) => {
   acc[def.option] = {
     description: def.description,
-    type: 'boolean'
-  };
+    type: 'boolean' };
+
 
   return acc;
 }, {});
 
-const defaults = Object.keys(defs).map(key => defs[key]).reduce((acc, def) => {
+const defaults = Object.keys(defs).
+map(key => defs[key]).
+reduce((acc, def) => {
   acc[def.option] = (0, _has2.default)(def, 'default') ? def.default : false;
   return acc;
 }, {});
@@ -79,15 +74,17 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-anonymous-default-export')
-    },
+      url: (0, _docsUrl2.default)('no-anonymous-default-export') },
 
-    schema: [{
+
+    schema: [
+    {
       type: 'object',
       properties: schemaProperties,
-      'additionalProperties': false
-    }]
-  },
+      'additionalProperties': false }] },
+
+
+
 
   create: function (context) {
     const options = Object.assign({}, defaults, context.options[0]);
@@ -101,8 +98,7 @@
         if (def && !options[def.option] && (!def.forbid || def.forbid(node))) {
           context.report({ node, message: def.message });
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsiZGVmcyIsIkFycmF5RXhwcmVzc2lvbiIsIm9wdGlvbiIsImRlc2NyaXB0aW9uIiwibWVzc2FnZSIsIkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJkZWZhdWx0IiwiQ2xhc3NEZWNsYXJhdGlvbiIsImZvcmJpZCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImlkIiwiRnVuY3Rpb25EZWNsYXJhdGlvbiIsIkxpdGVyYWwiLCJPYmplY3RFeHByZXNzaW9uIiwiVGVtcGxhdGVMaXRlcmFsIiwic2NoZW1hUHJvcGVydGllcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJyZWR1Y2UiLCJhY2MiLCJkZWYiLCJ0eXBlIiwiZGVmYXVsdHMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhc3NpZ24iLCJyZXBvcnQiXSwibWFwcGluZ3MiOiI7O0FBS0E7Ozs7QUFDQTs7Ozs7O0FBTkE7Ozs7O0FBUUEsTUFBTUEsT0FBTztBQUNYQyxtQkFBaUI7QUFDZkMsWUFBUSxZQURPO0FBRWZDLGlCQUFhLG9EQUZFO0FBR2ZDLGFBQVM7QUFITSxHQUROO0FBTVhDLDJCQUF5QjtBQUN2QkgsWUFBUSxvQkFEZTtBQUV2QkMsaUJBQWEsNkRBRlU7QUFHdkJDLGFBQVM7QUFIYyxHQU5kO0FBV1hFLGtCQUFnQjtBQUNkSixZQUFRLHFCQURNO0FBRWRDLGlCQUFhLDJEQUZDO0FBR2RDLGFBQVMscUVBSEs7QUFJZEcsYUFBUztBQUpLLEdBWEw7QUFpQlhDLG9CQUFrQjtBQUNoQk4sWUFBUSxxQkFEUTtBQUVoQkMsaUJBQWEsOERBRkc7QUFHaEJDLGFBQVMsOENBSE87QUFJaEJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQztBQUpwQixHQWpCUDtBQXVCWEMsdUJBQXFCO0FBQ25CWCxZQUFRLHdCQURXO0FBRW5CQyxpQkFBYSxpRUFGTTtBQUduQkMsYUFBUyxpREFIVTtBQUluQkssWUFBU0MsSUFBRCxJQUFVLENBQUNBLEtBQUtDLFdBQUwsQ0FBaUJDO0FBSmpCLEdBdkJWO0FBNkJYRSxXQUFTO0FBQ1BaLFlBQVEsY0FERDtBQUVQQyxpQkFBYSxxREFGTjtBQUdQQyxhQUFTO0FBSEYsR0E3QkU7QUFrQ1hXLG9CQUFrQjtBQUNoQmIsWUFBUSxhQURRO0FBRWhCQyxpQkFBYSxnRUFGRztBQUdoQkMsYUFBUztBQUhPLEdBbENQO0FBdUNYWSxtQkFBaUI7QUFDZmQsWUFBUSxjQURPO0FBRWZDLGlCQUFhLHFEQUZFO0FBR2ZDLGFBQVM7QUFITTtBQXZDTixDQUFiOztBQThDQSxNQUFNYSxtQkFBbUJDLE9BQU9DLElBQVAsQ0FBWW5CLElBQVosRUFDdEJvQixHQURzQixDQUNqQkMsR0FBRCxJQUFTckIsS0FBS3FCLEdBQUwsQ0FEUyxFQUV0QkMsTUFGc0IsQ0FFZixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUNwQkQsTUFBSUMsSUFBSXRCLE1BQVIsSUFBa0I7QUFDaEJDLGlCQUFhcUIsSUFBSXJCLFdBREQ7QUFFaEJzQixVQUFNO0FBRlUsR0FBbEI7O0FBS0EsU0FBT0YsR0FBUDtBQUNELENBVHNCLEVBU3BCLEVBVG9CLENBQXpCOztBQVdBLE1BQU1HLFdBQVdSLE9BQU9DLElBQVAsQ0FBWW5CLElBQVosRUFDZG9CLEdBRGMsQ0FDVEMsR0FBRCxJQUFTckIsS0FBS3FCLEdBQUwsQ0FEQyxFQUVkQyxNQUZjLENBRVAsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDcEJELE1BQUlDLElBQUl0QixNQUFSLElBQWtCLG1CQUFJc0IsR0FBSixFQUFTLFNBQVQsSUFBc0JBLElBQUlqQixPQUExQixHQUFvQyxLQUF0RDtBQUNBLFNBQU9nQixHQUFQO0FBQ0QsQ0FMYyxFQUtaLEVBTFksQ0FBakI7O0FBT0FJLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKSixVQUFNLFlBREY7QUFFSkssVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDZCQUFSO0FBREQsS0FGRjs7QUFNSkMsWUFBUSxDQUNOO0FBQ0VQLFlBQU0sUUFEUjtBQUVFUSxrQkFBWWhCLGdCQUZkO0FBR0UsOEJBQXdCO0FBSDFCLEtBRE07QUFOSixHQURTOztBQWdCZmlCLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixVQUFNQyxVQUFVbEIsT0FBT21CLE1BQVAsQ0FBYyxFQUFkLEVBQWtCWCxRQUFsQixFQUE0QlMsUUFBUUMsT0FBUixDQUFnQixDQUFoQixDQUE1QixDQUFoQjs7QUFFQSxXQUFPO0FBQ0wsa0NBQTZCMUIsSUFBRCxJQUFVO0FBQ3BDLGNBQU1jLE1BQU14QixLQUFLVSxLQUFLQyxXQUFMLENBQWlCYyxJQUF0QixDQUFaOztBQUVBO0FBQ0E7QUFDQSxZQUFJRCxPQUFPLENBQUNZLFFBQVFaLElBQUl0QixNQUFaLENBQVIsS0FBZ0MsQ0FBQ3NCLElBQUlmLE1BQUwsSUFBZWUsSUFBSWYsTUFBSixDQUFXQyxJQUFYLENBQS9DLENBQUosRUFBc0U7QUFDcEV5QixrQkFBUUcsTUFBUixDQUFlLEVBQUU1QixJQUFGLEVBQVFOLFNBQVNvQixJQUFJcEIsT0FBckIsRUFBZjtBQUNEO0FBQ0Y7QUFUSSxLQUFQO0FBV0Q7QUE5QmMsQ0FBakIiLCJmaWxlIjoibm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgYW5vbnltb3VzIGRlZmF1bHQgZXhwb3J0cy5cbiAqIEBhdXRob3IgRHVuY2FuIEJlZXZlcnNcbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGhhcyBmcm9tICdoYXMnXG5cbmNvbnN0IGRlZnMgPSB7XG4gIEFycmF5RXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QXJyYXknLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyYXknLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyYXkgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fycm93RnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyb3cgZnVuY3Rpb24nLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyb3cgZnVuY3Rpb24gdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQ2FsbEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0NhbGxFeHByZXNzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgZnVuY3Rpb24gY2FsbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBjYWxsIHJlc3VsdCB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIENsYXNzRGVjbGFyYXRpb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fub255bW91c0NsYXNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGFuIGFub255bW91cyBjbGFzcycsXG4gICAgbWVzc2FnZTogJ1VuZXhwZWN0ZWQgZGVmYXVsdCBleHBvcnQgb2YgYW5vbnltb3VzIGNsYXNzJyxcbiAgICBmb3JiaWQ6IChub2RlKSA9PiAhbm9kZS5kZWNsYXJhdGlvbi5pZCxcbiAgfSxcbiAgRnVuY3Rpb25EZWNsYXJhdGlvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QW5vbnltb3VzRnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYW5vbnltb3VzIGZ1bmN0aW9uJyxcbiAgICBtZXNzYWdlOiAnVW5leHBlY3RlZCBkZWZhdWx0IGV4cG9ydCBvZiBhbm9ueW1vdXMgZnVuY3Rpb24nLFxuICAgIGZvcmJpZDogKG5vZGUpID0+ICFub2RlLmRlY2xhcmF0aW9uLmlkLFxuICB9LFxuICBMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG4gIE9iamVjdEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd09iamVjdCcsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBvYmplY3QgZXhwcmVzc2lvbicsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBvYmplY3QgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgVGVtcGxhdGVMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG59XG5cbmNvbnN0IHNjaGVtYVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhkZWZzKVxuICAubWFwKChrZXkpID0+IGRlZnNba2V5XSlcbiAgLnJlZHVjZSgoYWNjLCBkZWYpID0+IHtcbiAgICBhY2NbZGVmLm9wdGlvbl0gPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH1cblxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmcylcbiAgLm1hcCgoa2V5KSA9PiBkZWZzW2tleV0pXG4gIC5yZWR1Y2UoKGFjYywgZGVmKSA9PiB7XG4gICAgYWNjW2RlZi5vcHRpb25dID0gaGFzKGRlZiwgJ2RlZmF1bHQnKSA/IGRlZi5kZWZhdWx0IDogZmFsc2VcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHNjaGVtYVByb3BlcnRpZXMsXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIGNvbnRleHQub3B0aW9uc1swXSlcblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgZGVmID0gZGVmc1tub2RlLmRlY2xhcmF0aW9uLnR5cGVdXG5cbiAgICAgICAgLy8gUmVjb2duaXplZCBub2RlIHR5cGUgYW5kIGFsbG93ZWQgYnkgY29uZmlndXJhdGlvbixcbiAgICAgICAgLy8gICBhbmQgaGFzIG5vIGZvcmJpZCBjaGVjaywgb3IgZm9yYmlkIGNoZWNrIHJldHVybiB2YWx1ZSBpcyB0cnV0aHlcbiAgICAgICAgaWYgKGRlZiAmJiAhb3B0aW9uc1tkZWYub3B0aW9uXSAmJiAoIWRlZi5mb3JiaWQgfHwgZGVmLmZvcmJpZChub2RlKSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IGRlZi5tZXNzYWdlIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsiZGVmcyIsIkFycmF5RXhwcmVzc2lvbiIsIm9wdGlvbiIsImRlc2NyaXB0aW9uIiwibWVzc2FnZSIsIkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJkZWZhdWx0IiwiQ2xhc3NEZWNsYXJhdGlvbiIsImZvcmJpZCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImlkIiwiRnVuY3Rpb25EZWNsYXJhdGlvbiIsIkxpdGVyYWwiLCJPYmplY3RFeHByZXNzaW9uIiwiVGVtcGxhdGVMaXRlcmFsIiwic2NoZW1hUHJvcGVydGllcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJyZWR1Y2UiLCJhY2MiLCJkZWYiLCJ0eXBlIiwiZGVmYXVsdHMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhc3NpZ24iLCJyZXBvcnQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EscUM7QUFDQSwwQix1SUFOQTs7O29LQVFBLE1BQU1BLE9BQU8sRUFDWEMsaUJBQWlCO0FBQ2ZDLFlBQVEsWUFETztBQUVmQyxpQkFBYSxvREFGRTtBQUdmQyxhQUFTLCtEQUhNLEVBRE47O0FBTVhDLDJCQUF5QjtBQUN2QkgsWUFBUSxvQkFEZTtBQUV2QkMsaUJBQWEsNkRBRlU7QUFHdkJDLGFBQVMsd0VBSGMsRUFOZDs7QUFXWEUsa0JBQWdCO0FBQ2RKLFlBQVEscUJBRE07QUFFZEMsaUJBQWEsMkRBRkM7QUFHZEMsYUFBUyxxRUFISztBQUlkRyxhQUFTLElBSkssRUFYTDs7QUFpQlhDLG9CQUFrQjtBQUNoQk4sWUFBUSxxQkFEUTtBQUVoQkMsaUJBQWEsOERBRkc7QUFHaEJDLGFBQVMsOENBSE87QUFJaEJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpwQixFQWpCUDs7QUF1QlhDLHVCQUFxQjtBQUNuQlgsWUFBUSx3QkFEVztBQUVuQkMsaUJBQWEsaUVBRk07QUFHbkJDLGFBQVMsaURBSFU7QUFJbkJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpqQixFQXZCVjs7QUE2QlhFLFdBQVM7QUFDUFosWUFBUSxjQUREO0FBRVBDLGlCQUFhLHFEQUZOO0FBR1BDLGFBQVMsaUVBSEYsRUE3QkU7O0FBa0NYVyxvQkFBa0I7QUFDaEJiLFlBQVEsYUFEUTtBQUVoQkMsaUJBQWEsZ0VBRkc7QUFHaEJDLGFBQVMsZ0VBSE8sRUFsQ1A7O0FBdUNYWSxtQkFBaUI7QUFDZmQsWUFBUSxjQURPO0FBRWZDLGlCQUFhLHFEQUZFO0FBR2ZDLGFBQVMsaUVBSE0sRUF2Q04sRUFBYjs7OztBQThDQSxNQUFNYSxtQkFBbUJDLE9BQU9DLElBQVAsQ0FBWW5CLElBQVo7QUFDdEJvQixHQURzQixDQUNqQkMsR0FBRCxJQUFTckIsS0FBS3FCLEdBQUwsQ0FEUztBQUV0QkMsTUFGc0IsQ0FFZixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUNwQkQsTUFBSUMsSUFBSXRCLE1BQVIsSUFBa0I7QUFDaEJDLGlCQUFhcUIsSUFBSXJCLFdBREQ7QUFFaEJzQixVQUFNLFNBRlUsRUFBbEI7OztBQUtBLFNBQU9GLEdBQVA7QUFDRCxDQVRzQixFQVNwQixFQVRvQixDQUF6Qjs7QUFXQSxNQUFNRyxXQUFXUixPQUFPQyxJQUFQLENBQVluQixJQUFaO0FBQ2RvQixHQURjLENBQ1RDLEdBQUQsSUFBU3JCLEtBQUtxQixHQUFMLENBREM7QUFFZEMsTUFGYyxDQUVQLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQ3BCRCxNQUFJQyxJQUFJdEIsTUFBUixJQUFrQixtQkFBSXNCLEdBQUosRUFBUyxTQUFULElBQXNCQSxJQUFJakIsT0FBMUIsR0FBb0MsS0FBdEQ7QUFDQSxTQUFPZ0IsR0FBUDtBQUNELENBTGMsRUFLWixFQUxZLENBQWpCOztBQU9BSSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkosVUFBTSxZQURGO0FBRUpLLFVBQU07QUFDSkMsV0FBSyx1QkFBUSw2QkFBUixDQURELEVBRkY7OztBQU1KQyxZQUFRO0FBQ047QUFDRVAsWUFBTSxRQURSO0FBRUVRLGtCQUFZaEIsZ0JBRmQ7QUFHRSw4QkFBd0IsS0FIMUIsRUFETSxDQU5KLEVBRFM7Ozs7O0FBZ0JmaUIsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1DLFVBQVVsQixPQUFPbUIsTUFBUCxDQUFjLEVBQWQsRUFBa0JYLFFBQWxCLEVBQTRCUyxRQUFRQyxPQUFSLENBQWdCLENBQWhCLENBQTVCLENBQWhCOztBQUVBLFdBQU87QUFDTCxrQ0FBNkIxQixJQUFELElBQVU7QUFDcEMsY0FBTWMsTUFBTXhCLEtBQUtVLEtBQUtDLFdBQUwsQ0FBaUJjLElBQXRCLENBQVo7O0FBRUE7QUFDQTtBQUNBLFlBQUlELE9BQU8sQ0FBQ1ksUUFBUVosSUFBSXRCLE1BQVosQ0FBUixLQUFnQyxDQUFDc0IsSUFBSWYsTUFBTCxJQUFlZSxJQUFJZixNQUFKLENBQVdDLElBQVgsQ0FBL0MsQ0FBSixFQUFzRTtBQUNwRXlCLGtCQUFRRyxNQUFSLENBQWUsRUFBRTVCLElBQUYsRUFBUU4sU0FBU29CLElBQUlwQixPQUFyQixFQUFmO0FBQ0Q7QUFDRixPQVRJLEVBQVA7O0FBV0QsR0E5QmMsRUFBakIiLCJmaWxlIjoibm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgYW5vbnltb3VzIGRlZmF1bHQgZXhwb3J0cy5cbiAqIEBhdXRob3IgRHVuY2FuIEJlZXZlcnNcbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGhhcyBmcm9tICdoYXMnXG5cbmNvbnN0IGRlZnMgPSB7XG4gIEFycmF5RXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QXJyYXknLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyYXknLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyYXkgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fycm93RnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyb3cgZnVuY3Rpb24nLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyb3cgZnVuY3Rpb24gdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQ2FsbEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0NhbGxFeHByZXNzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgZnVuY3Rpb24gY2FsbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBjYWxsIHJlc3VsdCB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIENsYXNzRGVjbGFyYXRpb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fub255bW91c0NsYXNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGFuIGFub255bW91cyBjbGFzcycsXG4gICAgbWVzc2FnZTogJ1VuZXhwZWN0ZWQgZGVmYXVsdCBleHBvcnQgb2YgYW5vbnltb3VzIGNsYXNzJyxcbiAgICBmb3JiaWQ6IChub2RlKSA9PiAhbm9kZS5kZWNsYXJhdGlvbi5pZCxcbiAgfSxcbiAgRnVuY3Rpb25EZWNsYXJhdGlvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QW5vbnltb3VzRnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYW5vbnltb3VzIGZ1bmN0aW9uJyxcbiAgICBtZXNzYWdlOiAnVW5leHBlY3RlZCBkZWZhdWx0IGV4cG9ydCBvZiBhbm9ueW1vdXMgZnVuY3Rpb24nLFxuICAgIGZvcmJpZDogKG5vZGUpID0+ICFub2RlLmRlY2xhcmF0aW9uLmlkLFxuICB9LFxuICBMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG4gIE9iamVjdEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd09iamVjdCcsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBvYmplY3QgZXhwcmVzc2lvbicsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBvYmplY3QgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgVGVtcGxhdGVMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG59XG5cbmNvbnN0IHNjaGVtYVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhkZWZzKVxuICAubWFwKChrZXkpID0+IGRlZnNba2V5XSlcbiAgLnJlZHVjZSgoYWNjLCBkZWYpID0+IHtcbiAgICBhY2NbZGVmLm9wdGlvbl0gPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH1cblxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmcylcbiAgLm1hcCgoa2V5KSA9PiBkZWZzW2tleV0pXG4gIC5yZWR1Y2UoKGFjYywgZGVmKSA9PiB7XG4gICAgYWNjW2RlZi5vcHRpb25dID0gaGFzKGRlZiwgJ2RlZmF1bHQnKSA/IGRlZi5kZWZhdWx0IDogZmFsc2VcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHNjaGVtYVByb3BlcnRpZXMsXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIGNvbnRleHQub3B0aW9uc1swXSlcblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgZGVmID0gZGVmc1tub2RlLmRlY2xhcmF0aW9uLnR5cGVdXG5cbiAgICAgICAgLy8gUmVjb2duaXplZCBub2RlIHR5cGUgYW5kIGFsbG93ZWQgYnkgY29uZmlndXJhdGlvbixcbiAgICAgICAgLy8gICBhbmQgaGFzIG5vIGZvcmJpZCBjaGVjaywgb3IgZm9yYmlkIGNoZWNrIHJldHVybiB2YWx1ZSBpcyB0cnV0aHlcbiAgICAgICAgaWYgKGRlZiAmJiAhb3B0aW9uc1tkZWYub3B0aW9uXSAmJiAoIWRlZi5mb3JiaWQgfHwgZGVmLmZvcmJpZChub2RlKSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IGRlZi5tZXNzYWdlIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js b/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js
index 848b797..5fb5608 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js
@@ -1,19 +1,15 @@
 'use strict';
 
-var _docsUrl = require('../docsUrl');
 
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
 
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const EXPORT_MESSAGE = 'Expected "export" or "export default"',
-      IMPORT_MESSAGE = 'Expected "import" instead of "require()"'; /**
-                                                                    * @fileoverview Rule to prefer ES6 to CJS
-                                                                    * @author Jamund Ferguson
-                                                                    */
-
-function normalizeLegacyOptions(options) {
-  if (options.indexOf('allow-primitive-modules') >= 0) {
+IMPORT_MESSAGE = 'Expected "import" instead of "require()"'; /**
+                                                              * @fileoverview Rule to prefer ES6 to CJS
+                                                              * @author Jamund Ferguson
+                                                              */function normalizeLegacyOptions(options) {if (options.indexOf('allow-primitive-modules') >= 0) {
     return { allowPrimitiveModules: true };
   }
   return options[0] || {};
@@ -39,7 +35,12 @@
 
 // https://github.com/estree/estree/blob/master/es5.md
 function isConditional(node) {
-  if (node.type === 'IfStatement' || node.type === 'TryStatement' || node.type === 'LogicalExpression' || node.type === 'ConditionalExpression') return true;
+  if (
+  node.type === 'IfStatement' ||
+  node.type === 'TryStatement' ||
+  node.type === 'LogicalExpression' ||
+  node.type === 'ConditionalExpression')
+  return true;
   if (node.parent) return isConditional(node.parent);
   return false;
 }
@@ -54,30 +55,33 @@
   properties: {
     allowPrimitiveModules: { 'type': 'boolean' },
     allowRequire: { 'type': 'boolean' },
-    allowConditionalRequire: { 'type': 'boolean' }
-  },
-  additionalProperties: false
-};
+    allowConditionalRequire: { 'type': 'boolean' } },
+
+  additionalProperties: false };
+
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-commonjs')
-    },
+      url: (0, _docsUrl2.default)('no-commonjs') },
+
 
     schema: {
-      anyOf: [{
+      anyOf: [
+      {
         type: 'array',
         items: [schemaString],
-        additionalItems: false
-      }, {
+        additionalItems: false },
+
+      {
         type: 'array',
         items: [schemaObject],
-        additionalItems: false
-      }]
-    }
-  },
+        additionalItems: false }] } },
+
+
+
+
 
   create: function (context) {
     const options = normalizeLegacyOptions(context.options);
@@ -94,11 +98,14 @@
 
         // exports.
         if (node.object.name === 'exports') {
-          const isInScope = context.getScope().variables.some(variable => variable.name === 'exports');
+          const isInScope = context.getScope().
+          variables.
+          some(variable => variable.name === 'exports');
           if (!isInScope) {
             context.report({ node, message: EXPORT_MESSAGE });
           }
         }
+
       },
       'CallExpression': function (call) {
         if (!validateScope(context.getScope())) return;
@@ -119,10 +126,10 @@
         // keeping it simple: all 1-string-arg `require` calls are reported
         context.report({
           node: call.callee,
-          message: IMPORT_MESSAGE
-        });
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jb21tb25qcy5qcyJdLCJuYW1lcyI6WyJFWFBPUlRfTUVTU0FHRSIsIklNUE9SVF9NRVNTQUdFIiwibm9ybWFsaXplTGVnYWN5T3B0aW9ucyIsIm9wdGlvbnMiLCJpbmRleE9mIiwiYWxsb3dQcmltaXRpdmVNb2R1bGVzIiwiYWxsb3dQcmltaXRpdmUiLCJub2RlIiwicGFyZW50IiwidHlwZSIsInJpZ2h0IiwiYWxsb3dSZXF1aXJlIiwiYWxsb3dDb25kaXRpb25hbFJlcXVpcmUiLCJ2YWxpZGF0ZVNjb3BlIiwic2NvcGUiLCJ2YXJpYWJsZVNjb3BlIiwiaXNDb25kaXRpb25hbCIsInNjaGVtYVN0cmluZyIsImVudW0iLCJzY2hlbWFPYmplY3QiLCJwcm9wZXJ0aWVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwiY29udGV4dCIsIm9iamVjdCIsIm5hbWUiLCJwcm9wZXJ0eSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0luU2NvcGUiLCJnZXRTY29wZSIsInZhcmlhYmxlcyIsInNvbWUiLCJ2YXJpYWJsZSIsImNhbGwiLCJjYWxsZWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7QUFLQTs7Ozs7O0FBRUEsTUFBTUEsaUJBQWlCLHVDQUF2QjtBQUFBLE1BQ01DLGlCQUFpQiwwQ0FEdkIsQyxDQVBBOzs7OztBQVVBLFNBQVNDLHNCQUFULENBQWdDQyxPQUFoQyxFQUF5QztBQUN2QyxNQUFJQSxRQUFRQyxPQUFSLENBQWdCLHlCQUFoQixLQUE4QyxDQUFsRCxFQUFxRDtBQUNuRCxXQUFPLEVBQUVDLHVCQUF1QixJQUF6QixFQUFQO0FBQ0Q7QUFDRCxTQUFPRixRQUFRLENBQVIsS0FBYyxFQUFyQjtBQUNEOztBQUVELFNBQVNHLGNB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Y0FBakIsRUFBZjtBQUNEO0FBQ0Y7QUFFRixPQXBCSTtBQXFCTCx3QkFBa0IsVUFBVTJDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSSxDQUFDOUIsY0FBY21CLFFBQVFPLFFBQVIsRUFBZCxDQUFMLEVBQXdDOztBQUV4QyxZQUFJSSxLQUFLQyxNQUFMLENBQVluQyxJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3ZDLFlBQUlrQyxLQUFLQyxNQUFMLENBQVlWLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFlBQUlTLEtBQUtFLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUNqQyxZQUFJeEIsU0FBU3FCLEtBQUtFLFNBQUwsQ0FBZSxDQUFmLENBQWI7O0FBRUEsWUFBSXZCLE9BQU9iLElBQVAsS0FBZ0IsU0FBcEIsRUFBK0I7QUFDL0IsWUFBSSxPQUFPYSxPQUFPeUIsS0FBZCxLQUF3QixRQUE1QixFQUFzQzs7QUFFdEMsWUFBSXBDLGFBQWFnQyxJQUFiLEVBQW1CeEMsT0FBbkIsQ0FBSixFQUFpQzs7QUFFakMsWUFBSVMsd0JBQXdCK0IsSUFBeEIsRUFBOEJ4QyxPQUE5QixLQUEwQ2EsY0FBYzJCLEtBQUtuQyxNQUFuQixDQUE5QyxFQUEwRTs7QUFFMUU7QUFDQXdCLGdCQUFRSSxNQUFSLENBQWU7QUFDYjdCLGdCQUFNb0MsS0FBS0MsTUFERTtBQUViUCxtQkFBU3BDO0FBRkksU0FBZjtBQUlEO0FBMUNJLEtBQVA7QUE2Q0Q7QUF2RWMsQ0FBakIiLCJmaWxlIjoibm8tY29tbW9uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBwcmVmZXIgRVM2IHRvIENKU1xuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBFWFBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImV4cG9ydFwiIG9yIFwiZXhwb3J0IGRlZmF1bHRcIidcbiAgICAsIElNUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiaW1wb3J0XCIgaW5zdGVhZCBvZiBcInJlcXVpcmUoKVwiJ1xuXG5mdW5jdGlvbiBub3JtYWxpemVMZWdhY3lPcHRpb25zKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA+PSAwKSB7XG4gICAgcmV0dXJuIHsgYWxsb3dQcmltaXRpdmVNb2R1bGVzOiB0cnVlIH1cbiAgfVxuICByZXR1cm4gb3B0aW9uc1swXSB8fCB7fVxufVxuXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucy5hbGxvd1ByaW1pdGl2ZU1vZHVsZXMpIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuXG5mdW5jdGlvbiBhbGxvd1JlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd1JlcXVpcmVcbn1cblxuZnVuY3Rpb24gYWxsb3dDb25kaXRpb25hbFJlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd0NvbmRpdGlvbmFsUmVxdWlyZSAhPT0gZmFsc2Vcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTY29wZShzY29wZSkge1xuICByZXR1cm4gc2NvcGUudmFyaWFibGVTY29wZS50eXBlID09PSAnbW9kdWxlJ1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZXN0cmVlL2VzdHJlZS9ibG9iL21hc3Rlci9lczUubWRcbmZ1bmN0aW9uIGlzQ29uZGl0aW9uYWwobm9kZSkge1xuICBpZiAoXG4gICAgbm9kZS50eXBlID09PSAnSWZTdGF0ZW1lbnQnXG4gICAgfHwgbm9kZS50eXBlID09PSAnVHJ5U3RhdGVtZW50J1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0xvZ2ljYWxFeHByZXNzaW9uJ1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0NvbmRpdGlvbmFsRXhwcmVzc2lvbidcbiAgKSByZXR1cm4gdHJ1ZVxuICBpZiAobm9kZS5wYXJlbnQpIHJldHVybiBpc0NvbmRpdGlvbmFsKG5vZGUucGFyZW50KVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3Qgc2NoZW1hU3RyaW5nID0geyBlbnVtOiBbJ2FsbG93LXByaW1pdGl2ZS1tb2R1bGVzJ10gfVxuY29uc3Qgc2NoZW1hT2JqZWN0ID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGFsbG93UHJpbWl0aXZlTW9kdWxlczogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93UmVxdWlyZTogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93Q29uZGl0aW9uYWxSZXF1aXJlOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gIH0sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1jb21tb25qcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbc2NoZW1hU3RyaW5nXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3NjaGVtYU9iamVjdF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG5vcm1hbGl6ZUxlZ2FjeU9wdGlvbnMoY29udGV4dC5vcHRpb25zKVxuXG4gICAgcmV0dXJuIHtcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuXG4gICAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICAgIGlmIChub2RlLm9iamVjdC5uYW1lID09PSAnbW9kdWxlJyAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGlmIChhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSkgcmV0dXJuXG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXhwb3J0cy5cbiAgICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGNvbnN0IGlzSW5TY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuICAgICAgICAgICAgLnZhcmlhYmxlc1xuICAgICAgICAgICAgLnNvbWUodmFyaWFibGUgPT4gdmFyaWFibGUubmFtZSA9PT0gJ2V4cG9ydHMnKVxuICAgICAgICAgIGlmICghIGlzSW5TY29wZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKGNhbGwpIHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNjb3BlKGNvbnRleHQuZ2V0U2NvcGUoKSkpIHJldHVyblxuXG4gICAgICAgIGlmIChjYWxsLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cbiAgICAgICAgdmFyIG1vZHVsZSA9IGNhbGwuYXJndW1lbnRzWzBdXG5cbiAgICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZS52YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd1JlcXVpcmUoY2FsbCwgb3B0aW9ucykpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd0NvbmRpdGlvbmFsUmVxdWlyZShjYWxsLCBvcHRpb25zKSAmJiBpc0NvbmRpdGlvbmFsKGNhbGwucGFyZW50KSkgcmV0dXJuXG5cbiAgICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogY2FsbC5jYWxsZWUsXG4gICAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cblxuICB9LFxufVxuIl19
\ No newline at end of file
+          message: IMPORT_MESSAGE });
+
+      } };
+
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jb21tb25qcy5qcyJdLCJuYW1lcyI6WyJFWFBPUlRfTUVTU0FHRSIsIklNUE9SVF9NRVNTQUdFIiwibm9ybWFsaXplTGVnYWN5T3B0aW9ucyIsIm9wdGlvbnMiLCJpbmRleE9mIiwiYWxsb3dQcmltaXRpdmVNb2R1bGVzIiwiYWxsb3dQcmltaXRpdmUiLCJub2RlIiwicGFyZW50IiwidHlwZSIsInJpZ2h0IiwiYWxsb3dSZXF1aXJlIiwiYWxsb3dDb25kaXRpb25hbFJlcXVpcmUiLCJ2YWxpZGF0ZVNjb3BlIiwic2NvcGUiLCJ2YXJpYWJsZVNjb3BlIiwiaXNDb25kaXRpb25hbCIsInNjaGVtYVN0cmluZyIsImVudW0iLCJzY2hlbWFPYmplY3QiLCJwcm9wZXJ0aWVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwiY29udGV4dCIsIm9iamVjdCIsIm5hbWUiLCJwcm9wZXJ0eSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0luU2NvcGUiLCJnZXRTY29wZSIsInZhcmlhYmxlcyIsInNvbWUiLCJ2YXJpYWJsZSIsImNhbGwiLCJjYWxsZWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQzs7QUFFQSxNQUFNQSxpQkFBaUIsdUNBQXZCO0FBQ01DLGlCQUFpQiwwQ0FEdkIsQyxDQVBBOzs7Z0VBVUEsU0FBU0Msc0JBQVQsQ0FBZ0NDLE9BQWhDLEVBQXlDLENBQ3ZDLElBQUlBLFFBQVFDLE9BQVIsQ0FBZ0IseUJBQWhCLEtBQThDLENBQWxELEVBQXFEO0FBQ25ELFdBQU8sRUFBRUMsdUJBQXVCLElBQXpCLEVBQVA7QUFDRDtBQUNELFNBQU9GLFFBQVEsQ0FBUixLQUFjLEVBQXJCO0FBQ0Q7O0FBRUQsU0FBU0csY0FBVCxD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QVNyQyxjQUFqQixFQUFmO0FBQ0Q7QUFDRjs7QUFFRixPQXBCSTtBQXFCTCx3QkFBa0IsVUFBVTJDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSSxDQUFDOUIsY0FBY21CLFFBQVFPLFFBQVIsRUFBZCxDQUFMLEVBQXdDOztBQUV4QyxZQUFJSSxLQUFLQyxNQUFMLENBQVluQyxJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3ZDLFlBQUlrQyxLQUFLQyxNQUFMLENBQVlWLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFlBQUlTLEtBQUtFLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUNqQyxZQUFJeEIsU0FBU3FCLEtBQUtFLFNBQUwsQ0FBZSxDQUFmLENBQWI7O0FBRUEsWUFBSXZCLE9BQU9iLElBQVAsS0FBZ0IsU0FBcEIsRUFBK0I7QUFDL0IsWUFBSSxPQUFPYSxPQUFPeUIsS0FBZCxLQUF3QixRQUE1QixFQUFzQzs7QUFFdEMsWUFBSXBDLGFBQWFnQyxJQUFiLEVBQW1CeEMsT0FBbkIsQ0FBSixFQUFpQzs7QUFFakMsWUFBSVMsd0JBQXdCK0IsSUFBeEIsRUFBOEJ4QyxPQUE5QixLQUEwQ2EsY0FBYzJCLEtBQUtuQyxNQUFuQixDQUE5QyxFQUEwRTs7QUFFMUU7QUFDQXdCLGdCQUFRSSxNQUFSLENBQWU7QUFDYjdCLGdCQUFNb0MsS0FBS0MsTUFERTtBQUViUCxtQkFBU3BDLGNBRkksRUFBZjs7QUFJRCxPQTFDSSxFQUFQOzs7QUE2Q0QsR0F2RWMsRUFBakIiLCJmaWxlIjoibm8tY29tbW9uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBwcmVmZXIgRVM2IHRvIENKU1xuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBFWFBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImV4cG9ydFwiIG9yIFwiZXhwb3J0IGRlZmF1bHRcIidcbiAgICAsIElNUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiaW1wb3J0XCIgaW5zdGVhZCBvZiBcInJlcXVpcmUoKVwiJ1xuXG5mdW5jdGlvbiBub3JtYWxpemVMZWdhY3lPcHRpb25zKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA+PSAwKSB7XG4gICAgcmV0dXJuIHsgYWxsb3dQcmltaXRpdmVNb2R1bGVzOiB0cnVlIH1cbiAgfVxuICByZXR1cm4gb3B0aW9uc1swXSB8fCB7fVxufVxuXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucy5hbGxvd1ByaW1pdGl2ZU1vZHVsZXMpIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuXG5mdW5jdGlvbiBhbGxvd1JlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd1JlcXVpcmVcbn1cblxuZnVuY3Rpb24gYWxsb3dDb25kaXRpb25hbFJlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd0NvbmRpdGlvbmFsUmVxdWlyZSAhPT0gZmFsc2Vcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTY29wZShzY29wZSkge1xuICByZXR1cm4gc2NvcGUudmFyaWFibGVTY29wZS50eXBlID09PSAnbW9kdWxlJ1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZXN0cmVlL2VzdHJlZS9ibG9iL21hc3Rlci9lczUubWRcbmZ1bmN0aW9uIGlzQ29uZGl0aW9uYWwobm9kZSkge1xuICBpZiAoXG4gICAgbm9kZS50eXBlID09PSAnSWZTdGF0ZW1lbnQnXG4gICAgfHwgbm9kZS50eXBlID09PSAnVHJ5U3RhdGVtZW50J1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0xvZ2ljYWxFeHByZXNzaW9uJ1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0NvbmRpdGlvbmFsRXhwcmVzc2lvbidcbiAgKSByZXR1cm4gdHJ1ZVxuICBpZiAobm9kZS5wYXJlbnQpIHJldHVybiBpc0NvbmRpdGlvbmFsKG5vZGUucGFyZW50KVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3Qgc2NoZW1hU3RyaW5nID0geyBlbnVtOiBbJ2FsbG93LXByaW1pdGl2ZS1tb2R1bGVzJ10gfVxuY29uc3Qgc2NoZW1hT2JqZWN0ID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGFsbG93UHJpbWl0aXZlTW9kdWxlczogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93UmVxdWlyZTogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93Q29uZGl0aW9uYWxSZXF1aXJlOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gIH0sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1jb21tb25qcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbc2NoZW1hU3RyaW5nXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3NjaGVtYU9iamVjdF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG5vcm1hbGl6ZUxlZ2FjeU9wdGlvbnMoY29udGV4dC5vcHRpb25zKVxuXG4gICAgcmV0dXJuIHtcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuXG4gICAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICAgIGlmIChub2RlLm9iamVjdC5uYW1lID09PSAnbW9kdWxlJyAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGlmIChhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSkgcmV0dXJuXG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXhwb3J0cy5cbiAgICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGNvbnN0IGlzSW5TY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuICAgICAgICAgICAgLnZhcmlhYmxlc1xuICAgICAgICAgICAgLnNvbWUodmFyaWFibGUgPT4gdmFyaWFibGUubmFtZSA9PT0gJ2V4cG9ydHMnKVxuICAgICAgICAgIGlmICghIGlzSW5TY29wZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKGNhbGwpIHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNjb3BlKGNvbnRleHQuZ2V0U2NvcGUoKSkpIHJldHVyblxuXG4gICAgICAgIGlmIChjYWxsLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cbiAgICAgICAgdmFyIG1vZHVsZSA9IGNhbGwuYXJndW1lbnRzWzBdXG5cbiAgICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZS52YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd1JlcXVpcmUoY2FsbCwgb3B0aW9ucykpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd0NvbmRpdGlvbmFsUmVxdWlyZShjYWxsLCBvcHRpb25zKSAmJiBpc0NvbmRpdGlvbmFsKGNhbGwucGFyZW50KSkgcmV0dXJuXG5cbiAgICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogY2FsbC5jYWxsZWUsXG4gICAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cblxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-cycle.js b/node_modules/eslint-plugin-import/lib/rules/no-cycle.js
index 0327673..84d0525 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-cycle.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-cycle.js
@@ -1,23 +1,12 @@
-'use strict';
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}(); /**
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       * @fileOverview Ensures that no imported module imports the linted module.
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       * @author Ben Mosher
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       */
 
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); /**
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * @fileOverview Ensures that no imported module imports the linted module.
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          * @author Ben Mosher
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          */
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _moduleVisitor = require('eslint-module-utils/moduleVisitor');
-
-var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _importType = require('../core/importType');
+var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 // todo: cache cycles / deep relationships for faster repeat evaluation
 module.exports = {
@@ -26,21 +15,39 @@
     docs: { url: (0, _docsUrl2.default)('no-cycle') },
     schema: [(0, _moduleVisitor.makeOptionsSchema)({
       maxDepth: {
-        description: 'maximum dependency depth to traverse',
-        type: 'integer',
-        minimum: 1
-      }
-    })]
-  },
+        oneOf: [
+        {
+          description: 'maximum dependency depth to traverse',
+          type: 'integer',
+          minimum: 1 },
+
+        {
+          enum: ['∞'],
+          type: 'string' }] },
+
+
+
+      ignoreExternal: {
+        description: 'ignore external modules',
+        type: 'boolean',
+        default: false } })] },
+
+
+
 
   create: function (context) {
     const myPath = context.getFilename();
     if (myPath === '<text>') return {}; // can't cycle-check a non-file
 
     const options = context.options[0] || {};
-    const maxDepth = options.maxDepth || Infinity;
+    const maxDepth = typeof options.maxDepth === 'number' ? options.maxDepth : Infinity;
+    const ignoreModule = name => options.ignoreExternal ? (0, _importType.isExternalModule)(name) : false;
 
     function checkSourceValue(sourceNode, importer) {
+      if (ignoreModule(sourceNode.value)) {
+        return; // ignore external modules
+      }
+
       const imported = _ExportMap2.default.get(sourceNode.value, context);
 
       if (importer.importKind === 'type') {
@@ -57,30 +64,21 @@
 
       const untraversed = [{ mget: () => imported, route: [] }];
       const traversed = new Set();
-      function detectCycle(_ref) {
-        let mget = _ref.mget,
-            route = _ref.route;
-
+      function detectCycle(_ref) {let mget = _ref.mget,route = _ref.route;
         const m = mget();
         if (m == null) return;
         if (traversed.has(m.path)) return;
         traversed.add(m.path);
 
-        for (let _ref2 of m.imports) {
-          var _ref3 = _slicedToArray(_ref2, 2);
-
-          let path = _ref3[0];
-          var _ref3$ = _ref3[1];
-          let getter = _ref3$.getter;
-          let source = _ref3$.source;
-
+        for (let _ref2 of m.imports) {var _ref3 = _slicedToArray(_ref2, 2);let path = _ref3[0];var _ref3$ = _ref3[1];let getter = _ref3$.getter;let source = _ref3$.source;
           if (path === myPath) return true;
           if (traversed.has(path)) continue;
+          if (ignoreModule(source.value)) continue;
           if (route.length + 1 < maxDepth) {
             untraversed.push({
               mget: getter,
-              route: route.concat(source)
-            });
+              route: route.concat(source) });
+
           }
         }
       }
@@ -88,7 +86,9 @@
       while (untraversed.length > 0) {
         const next = untraversed.shift(); // bfs!
         if (detectCycle(next)) {
-          const message = next.route.length > 0 ? `Dependency cycle via ${routeString(next.route)}` : 'Dependency cycle detected.';
+          const message = next.route.length > 0 ?
+          `Dependency cycle via ${routeString(next.route)}` :
+          'Dependency cycle detected.';
           context.report(importer, message);
           return;
         }
@@ -96,10 +96,10 @@
     }
 
     return (0, _moduleVisitor2.default)(checkSourceValue, context.options[0]);
-  }
-};
+  } };
+
 
 function routeString(route) {
   return route.map(s => `${s.value}:${s.loc.start.line}`).join('=>');
 }
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jeWNsZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwibWF4RGVwdGgiLCJkZXNjcmlwdGlvbiIsIm1pbmltdW0iLCJjcmVhdGUiLCJjb250ZXh0IiwibXlQYXRoIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiSW5maW5pdHkiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlTm9kZSIsImltcG9ydGVyIiwiaW1wb3J0ZWQiLCJFeHBvcnRzIiwiZ2V0IiwidmFsdWUiLCJpbXBvcnRLaW5kIiwicGF0aCIsInVudHJhdmVyc2VkIiwibWdldCIsInJvdXRlIiwidHJhdmVyc2VkIiwiU2V0IiwiZGV0ZWN0Q3ljbGUiLCJtIiwiaGFzIiwiYWRkIiwiaW1wb3J0cyIsImdldHRlciIsInNvdXJjZSIsImxlbmd0aCIsInB1c2giLCJjb25jYXQiLCJuZXh0Iiwic2hpZnQiLCJtZXNzYWdlIiwicm91dGVTdHJpbmciLCJyZXBvcnQiLCJtYXAiLCJzIiwibG9jIiwic3RhcnQiLCJsaW5lIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7eXBCQUFBOzs7OztBQUtBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUE7QUFDQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNLEVBQUVDLEtBQUssdUJBQVEsVUFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxDQUFDLHNDQUFrQjtBQUN6QkMsZ0JBQVM7QUFDUEMscUJBQWEsc0NBRE47QUFFUEwsY0FBTSxTQUZDO0FBR1BNLGlCQUFTO0FBSEY7QUFEZ0IsS0FBbEIsQ0FBRDtBQUhKLEdBRFM7O0FBYWZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixVQUFNQyxTQUFTRCxRQUFRRSxXQUFSLEVBQWY7QUFDQSxRQUFJRCxXQUFXLFFBQWYsRUFBeUIsT0FBTyxFQUFQLENBRkEsQ0FFVTs7QUFFbkMsVUFBTUUsVUFBVUgsUUFBUUcsT0FBUixDQUFnQixDQUFoQixLQUFzQixFQUF0QztBQUNBLFVBQU1QLFdBQVdPLFFBQVFQLFFBQVIsSUFBb0JRLFFBQXJDOztBQUVBLGFBQVNDLGdCQUFULENBQTBCQyxVQUExQixFQUFzQ0MsUUFBdEMsRUFBZ0Q7QUFDOUMsWUFBTUMsV0FBV0Msb0JBQVFDLEdBQVIsQ0FBWUosV0FBV0ssS0FBdkIsRUFBOEJYLE9BQTlCLENBQWpCOztBQUVBLFVBQUlPLFNBQVNLLFVBQVQsS0FBd0IsTUFBNUIsRUFBb0M7QUFDbEMsZUFEa0MsQ0FDM0I7QUFDUjs7QUFFRCxVQUFJSixZQUFZLElBQWhCLEVBQXNCO0FBQ3BCLGVBRG9CLENBQ1o7QUFDVDs7QUFFRCxVQUFJQSxTQUFTSyxJQUFULEtBQWtCWixNQUF0QixFQUE4QjtBQUM1QixlQUQ0QixDQUNwQjtBQUNUOztBQUVELFlBQU1hLGNBQWMsQ0FBQyxFQUFDQyxNQUFNLE1BQU1QLFFBQWIsRUFBdUJRLE9BQU0sRUFBN0IsRUFBRCxDQUFwQjtBQUNBLFlBQU1DLFlBQVksSUFBSUMsR0FBSixFQUFsQjtBQUNBLGVBQVNDLFdBQVQsT0FBb0M7QUFBQSxZQUFkSixJQUFjLFFBQWRBLElBQWM7QUFBQSxZQUFSQyxLQUFRLFFBQVJBLEtBQVE7O0FBQ2xDLGNBQU1JLElBQUlMLE1BQVY7QUFDQSxZQUFJSyxLQUFLLElBQVQsRUFBZTtBQUNmLFlBQUlILFVBQVVJLEdBQVYsQ0FBY0QsRUFBRVAsSUFBaEIsQ0FBSixFQUEyQjtBQUMzQkksa0JBQVVLLEdBQVYsQ0FBY0YsRUFBRVAsSUFBaEI7O0FBRUEsMEJBQXVDTyxFQUFFRyxPQUF6QyxFQUFrRDtBQUFBOztBQUFBLGNBQXhDVixJQUF3QztBQUFBO0FBQUEsY0FBaENXLE1BQWdDLFVBQWhDQSxNQUFnQztBQUFBLGNBQXhCQyxNQUF3QixVQUF4QkEsTUFBd0I7O0FBQ2hELGNBQUlaLFNBQVNaLE1BQWIsRUFBcUIsT0FBTyxJQUFQO0FBQ3JCLGNBQUlnQixVQUFVSSxHQUFWLENBQWNSLElBQWQsQ0FBSixFQUF5QjtBQUN6QixjQUFJRyxNQUFNVSxNQUFOLEdBQWUsQ0FBZixHQUFtQjlCLFFBQXZCLEVBQWlDO0FBQy9Ca0Isd0JBQVlhLElBQVosQ0FBaUI7QUFDZlosb0JBQU1TLE1BRFM7QUFFZlIscUJBQU9BLE1BQU1ZLE1BQU4sQ0FBYUgsTUFBYjtBQUZRLGFBQWpCO0FBSUQ7QUFDRjtBQUNGOztBQUVELGFBQU9YLFlBQVlZLE1BQVosR0FBcUIsQ0FBNUIsRUFBK0I7QUFDN0IsY0FBTUcsT0FBT2YsWUFBWWdCLEtBQVosRUFBYixDQUQ2QixDQUNJO0FBQ2pDLFlBQUlYLFlBQVlVLElBQVosQ0FBSixFQUF1QjtBQUNyQixnQkFBTUUsVUFBV0YsS0FBS2IsS0FBTCxDQUFXVSxNQUFYLEdBQW9CLENBQXBCLEdBQ1osd0JBQXVCTSxZQUFZSCxLQUFLYixLQUFqQixDQUF3QixFQURuQyxHQUViLDRCQUZKO0FBR0FoQixrQkFBUWlDLE1BQVIsQ0FBZTFCLFFBQWYsRUFBeUJ3QixPQUF6QjtBQUNBO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFdBQU8sNkJBQWMxQixnQkFBZCxFQUFnQ0wsUUFBUUcsT0FBUixDQUFnQixDQUFoQixDQUFoQyxDQUFQO0FBQ0Q7QUFwRWMsQ0FBakI7O0FBdUVBLFNBQVM2QixXQUFULENBQXFCaEIsS0FBckIsRUFBNEI7QUFDMUIsU0FBT0EsTUFBTWtCLEdBQU4sQ0FBVUMsS0FBTSxHQUFFQSxFQUFFeEIsS0FBTSxJQUFHd0IsRUFBRUMsR0FBRixDQUFNQyxLQUFOLENBQVlDLElBQUssRUFBOUMsRUFBaURDLElBQWpELENBQXNELElBQXRELENBQVA7QUFDRCIsImZpbGUiOiJuby1jeWNsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgbm8gaW1wb3J0ZWQgbW9kdWxlIGltcG9ydHMgdGhlIGxpbnRlZCBtb2R1bGUuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgbW9kdWxlVmlzaXRvciwgeyBtYWtlT3B0aW9uc1NjaGVtYSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbi8vIHRvZG86IGNhY2hlIGN5Y2xlcyAvIGRlZXAgcmVsYXRpb25zaGlwcyBmb3IgZmFzdGVyIHJlcGVhdCBldmFsdWF0aW9uXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7IHVybDogZG9jc1VybCgnbm8tY3ljbGUnKSB9LFxuICAgIHNjaGVtYTogW21ha2VPcHRpb25zU2NoZW1hKHtcbiAgICAgIG1heERlcHRoOntcbiAgICAgICAgZGVzY3JpcHRpb246ICdtYXhpbXVtIGRlcGVuZGVuY3kgZGVwdGggdG8gdHJhdmVyc2UnLFxuICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgIG1pbmltdW06IDEsXG4gICAgICB9LFxuICAgIH0pXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QgbXlQYXRoID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgaWYgKG15UGF0aCA9PT0gJzx0ZXh0PicpIHJldHVybiB7fSAvLyBjYW4ndCBjeWNsZS1jaGVjayBhIG5vbi1maWxlXG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gICAgY29uc3QgbWF4RGVwdGggPSBvcHRpb25zLm1heERlcHRoIHx8IEluZmluaXR5XG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZU5vZGUsIGltcG9ydGVyKSB7XG4gICAgICBjb25zdCBpbXBvcnRlZCA9IEV4cG9ydHMuZ2V0KHNvdXJjZU5vZGUudmFsdWUsIGNvbnRleHQpXG5cbiAgICAgIGlmIChpbXBvcnRlci5pbXBvcnRLaW5kID09PSAndHlwZScpIHtcbiAgICAgICAgcmV0dXJuIC8vIG5vIEZsb3cgaW1wb3J0IHJlc29sdXRpb25cbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICAvLyBuby11bnJlc29sdmVkIHRlcnJpdG9yeVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gbXlQYXRoKSB7XG4gICAgICAgIHJldHVybiAgLy8gbm8tc2VsZi1pbXBvcnQgdGVycml0b3J5XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVudHJhdmVyc2VkID0gW3ttZ2V0OiAoKSA9PiBpbXBvcnRlZCwgcm91dGU6W119XVxuICAgICAgY29uc3QgdHJhdmVyc2VkID0gbmV3IFNldCgpXG4gICAgICBmdW5jdGlvbiBkZXRlY3RDeWNsZSh7bWdldCwgcm91dGV9KSB7XG4gICAgICAgIGNvbnN0IG0gPSBtZ2V0KClcbiAgICAgICAgaWYgKG0gPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKG0ucGF0aCkpIHJldHVyblxuICAgICAgICB0cmF2ZXJzZWQuYWRkKG0ucGF0aClcblxuICAgICAgICBmb3IgKGxldCBbcGF0aCwgeyBnZXR0ZXIsIHNvdXJjZSB9XSBvZiBtLmltcG9ydHMpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gbXlQYXRoKSByZXR1cm4gdHJ1ZVxuICAgICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKHBhdGgpKSBjb250aW51ZVxuICAgICAgICAgIGlmIChyb3V0ZS5sZW5ndGggKyAxIDwgbWF4RGVwdGgpIHtcbiAgICAgICAgICAgIHVudHJhdmVyc2VkLnB1c2goe1xuICAgICAgICAgICAgICBtZ2V0OiBnZXR0ZXIsXG4gICAgICAgICAgICAgIHJvdXRlOiByb3V0ZS5jb25jYXQoc291cmNlKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHdoaWxlICh1bnRyYXZlcnNlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSB1bnRyYXZlcnNlZC5zaGlmdCgpIC8vIGJmcyFcbiAgICAgICAgaWYgKGRldGVjdEN5Y2xlKG5leHQpKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IChuZXh0LnJvdXRlLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gYERlcGVuZGVuY3kgY3ljbGUgdmlhICR7cm91dGVTdHJpbmcobmV4dC5yb3V0ZSl9YFxuICAgICAgICAgICAgOiAnRGVwZW5kZW5jeSBjeWNsZSBkZXRlY3RlZC4nKVxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KGltcG9ydGVyLCBtZXNzYWdlKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoY2hlY2tTb3VyY2VWYWx1ZSwgY29udGV4dC5vcHRpb25zWzBdKVxuICB9LFxufVxuXG5mdW5jdGlvbiByb3V0ZVN0cmluZyhyb3V0ZSkge1xuICByZXR1cm4gcm91dGUubWFwKHMgPT4gYCR7cy52YWx1ZX06JHtzLmxvYy5zdGFydC5saW5lfWApLmpvaW4oJz0+Jylcbn1cbiJdfQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jeWNsZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwibWF4RGVwdGgiLCJvbmVPZiIsImRlc2NyaXB0aW9uIiwibWluaW11bSIsImVudW0iLCJpZ25vcmVFeHRlcm5hbCIsImRlZmF1bHQiLCJjcmVhdGUiLCJjb250ZXh0IiwibXlQYXRoIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiSW5maW5pdHkiLCJpZ25vcmVNb2R1bGUiLCJuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJpbXBvcnRlciIsInZhbHVlIiwiaW1wb3J0ZWQiLCJFeHBvcnRzIiwiZ2V0IiwiaW1wb3J0S2luZCIsInBhdGgiLCJ1bnRyYXZlcnNlZCIsIm1nZXQiLCJyb3V0ZSIsInRyYXZlcnNlZCIsIlNldCIsImRldGVjdEN5Y2xlIiwibSIsImhhcyIsImFkZCIsImltcG9ydHMiLCJnZXR0ZXIiLCJzb3VyY2UiLCJsZW5ndGgiLCJwdXNoIiwiY29uY2F0IiwibmV4dCIsInNoaWZ0IiwibWVzc2FnZSIsInJvdXRlU3RyaW5nIiwicmVwb3J0IiwibWFwIiwicyIsImxvYyIsInN0YXJ0IiwibGluZSIsImpvaW4iXSwibWFwcGluZ3MiOiJzb0JBQUE7Ozs7O0FBS0EseUM7QUFDQTtBQUNBLGtFO0FBQ0EscUM7O0FBRUE7QUFDQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNLEVBQUVDLEtBQUssdUJBQVEsVUFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxDQUFDLHNDQUFrQjtBQUN6QkMsZ0JBQVU7QUFDUkMsZUFBTztBQUNMO0FBQ0VDLHVCQUFhLHNDQURmO0FBRUVOLGdCQUFNLFNBRlI7QUFHRU8sbUJBQVMsQ0FIWCxFQURLOztBQU1MO0FBQ0VDLGdCQUFNLENBQUMsR0FBRCxDQURSO0FBRUVSLGdCQUFNLFFBRlIsRUFOSyxDQURDLEVBRGU7Ozs7QUFjekJTLHNCQUFnQjtBQUNkSCxxQkFBYSx5QkFEQztBQUVkTixjQUFNLFNBRlE7QUFHZFUsaUJBQVMsS0FISyxFQWRTLEVBQWxCLENBQUQsQ0FISixFQURTOzs7OztBQTBCZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1DLFNBQVNELFFBQVFFLFdBQVIsRUFBZjtBQUNBLFFBQUlELFdBQVcsUUFBZixFQUF5QixPQUFPLEVBQVAsQ0FGQSxDQUVVOztBQUVuQyxVQUFNRSxVQUFVSCxRQUFRRyxPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsVUFBTVgsV0FBVyxPQUFPVyxRQUFRWCxRQUFmLEtBQTRCLFFBQTVCLEdBQXVDVyxRQUFRWCxRQUEvQyxHQUEwRFksUUFBM0U7QUFDQSxVQUFNQyxlQUFnQkMsSUFBRCxJQUFVSCxRQUFRTixjQUFSLEdBQXlCLGtDQUFpQlMsSUFBakIsQ0FBekIsR0FBa0QsS0FBakY7O0FBRUEsYUFBU0MsZ0JBQVQsQ0FBMEJDLFVBQTFCLEVBQXNDQyxRQUF0QyxFQUFnRDtBQUM5QyxVQUFJSixhQUFhRyxXQUFXRSxLQUF4QixDQUFKLEVBQW9DO0FBQ2xDLGVBRGtDLENBQzNCO0FBQ1I7O0FBRUQsWUFBTUMsV0FBV0Msb0JBQVFDLEdBQVIsQ0FBWUwsV0FBV0UsS0FBdkIsRUFBOEJWLE9BQTlCLENBQWpCOztBQUVBLFVBQUlTLFNBQVNLLFVBQVQsS0FBd0IsTUFBNUIsRUFBb0M7QUFDbEMsZUFEa0MsQ0FDM0I7QUFDUjs7QUFFRCxVQUFJSCxZQUFZLElBQWhCLEVBQXNCO0FBQ3BCLGVBRG9CLENBQ1o7QUFDVDs7QUFFRCxVQUFJQSxTQUFTSSxJQUFULEtBQWtCZCxNQUF0QixFQUE4QjtBQUM1QixlQUQ0QixDQUNwQjtBQUNUOztBQUVELFlBQU1lLGNBQWMsQ0FBQyxFQUFDQyxNQUFNLE1BQU1OLFFBQWIsRUFBdUJPLE9BQU0sRUFBN0IsRUFBRCxDQUFwQjtBQUNBLFlBQU1DLFlBQVksSUFBSUMsR0FBSixFQUFsQjtBQUNBLGVBQVNDLFdBQVQsT0FBb0MsS0FBZEosSUFBYyxRQUFkQSxJQUFjLENBQVJDLEtBQVEsUUFBUkEsS0FBUTtBQUNsQyxjQUFNSSxJQUFJTCxNQUFWO0FBQ0EsWUFBSUssS0FBSyxJQUFULEVBQWU7QUFDZixZQUFJSCxVQUFVSSxHQUFWLENBQWNELEVBQUVQLElBQWhCLENBQUosRUFBMkI7QUFDM0JJLGtCQUFVSyxHQUFWLENBQWNGLEVBQUVQLElBQWhCOztBQUVBLDBCQUF1Q08sRUFBRUcsT0FBekMsRUFBa0QsMENBQXhDVixJQUF3QyxzQ0FBaENXLE1BQWdDLFVBQWhDQSxNQUFnQyxLQUF4QkMsTUFBd0IsVUFBeEJBLE1BQXdCO0FBQ2hELGNBQUlaLFNBQVNkLE1BQWIsRUFBcUIsT0FBTyxJQUFQO0FBQ3JCLGNBQUlrQixVQUFVSSxHQUFWLENBQWNSLElBQWQsQ0FBSixFQUF5QjtBQUN6QixjQUFJVixhQUFhc0IsT0FBT2pCLEtBQXBCLENBQUosRUFBZ0M7QUFDaEMsY0FBSVEsTUFBTVUsTUFBTixHQUFlLENBQWYsR0FBbUJwQyxRQUF2QixFQUFpQztBQUMvQndCLHdCQUFZYSxJQUFaLENBQWlCO0FBQ2ZaLG9CQUFNUyxNQURTO0FBRWZSLHFCQUFPQSxNQUFNWSxNQUFOLENBQWFILE1BQWIsQ0FGUSxFQUFqQjs7QUFJRDtBQUNGO0FBQ0Y7O0FBRUQsYUFBT1gsWUFBWVksTUFBWixHQUFxQixDQUE1QixFQUErQjtBQUM3QixjQUFNRyxPQUFPZixZQUFZZ0IsS0FBWixFQUFiLENBRDZCLENBQ0k7QUFDakMsWUFBSVgsWUFBWVUsSUFBWixDQUFKLEVBQXVCO0FBQ3JCLGdCQUFNRSxVQUFXRixLQUFLYixLQUFMLENBQVdVLE1BQVgsR0FBb0IsQ0FBcEI7QUFDWixrQ0FBdUJNLFlBQVlILEtBQUtiLEtBQWpCLENBQXdCLEVBRG5DO0FBRWIsc0NBRko7QUFHQWxCLGtCQUFRbUMsTUFBUixDQUFlMUIsUUFBZixFQUF5QndCLE9BQXpCO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsV0FBTyw2QkFBYzFCLGdCQUFkLEVBQWdDUCxRQUFRRyxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFDRCxHQXZGYyxFQUFqQjs7O0FBMEZBLFNBQVMrQixXQUFULENBQXFCaEIsS0FBckIsRUFBNEI7QUFDMUIsU0FBT0EsTUFBTWtCLEdBQU4sQ0FBVUMsS0FBTSxHQUFFQSxFQUFFM0IsS0FBTSxJQUFHMkIsRUFBRUMsR0FBRixDQUFNQyxLQUFOLENBQVlDLElBQUssRUFBOUMsRUFBaURDLElBQWpELENBQXNELElBQXRELENBQVA7QUFDRCIsImZpbGUiOiJuby1jeWNsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgbm8gaW1wb3J0ZWQgbW9kdWxlIGltcG9ydHMgdGhlIGxpbnRlZCBtb2R1bGUuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgeyBpc0V4dGVybmFsTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLyB0b2RvOiBjYWNoZSBjeWNsZXMgLyBkZWVwIHJlbGF0aW9uc2hpcHMgZm9yIGZhc3RlciByZXBlYXQgZXZhbHVhdGlvblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczogeyB1cmw6IGRvY3NVcmwoJ25vLWN5Y2xlJykgfSxcbiAgICBzY2hlbWE6IFttYWtlT3B0aW9uc1NjaGVtYSh7XG4gICAgICBtYXhEZXB0aDoge1xuICAgICAgICBvbmVPZjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbWF4aW11bSBkZXBlbmRlbmN5IGRlcHRoIHRvIHRyYXZlcnNlJyxcbiAgICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbnVtOiBbJ+KIniddLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBpZ25vcmVFeHRlcm5hbDoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ2lnbm9yZSBleHRlcm5hbCBtb2R1bGVzJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSldLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBteVBhdGggPSBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICBpZiAobXlQYXRoID09PSAnPHRleHQ+JykgcmV0dXJuIHt9IC8vIGNhbid0IGN5Y2xlLWNoZWNrIGEgbm9uLWZpbGVcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBtYXhEZXB0aCA9IHR5cGVvZiBvcHRpb25zLm1heERlcHRoID09PSAnbnVtYmVyJyA/IG9wdGlvbnMubWF4RGVwdGggOiBJbmZpbml0eVxuICAgIGNvbnN0IGlnbm9yZU1vZHVsZSA9IChuYW1lKSA9PiBvcHRpb25zLmlnbm9yZUV4dGVybmFsID8gaXNFeHRlcm5hbE1vZHVsZShuYW1lKSA6IGZhbHNlXG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZU5vZGUsIGltcG9ydGVyKSB7XG4gICAgICBpZiAoaWdub3JlTW9kdWxlKHNvdXJjZU5vZGUudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAvLyBpZ25vcmUgZXh0ZXJuYWwgbW9kdWxlc1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRlZCA9IEV4cG9ydHMuZ2V0KHNvdXJjZU5vZGUudmFsdWUsIGNvbnRleHQpXG5cbiAgICAgIGlmIChpbXBvcnRlci5pbXBvcnRLaW5kID09PSAndHlwZScpIHtcbiAgICAgICAgcmV0dXJuIC8vIG5vIEZsb3cgaW1wb3J0IHJlc29sdXRpb25cbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICAvLyBuby11bnJlc29sdmVkIHRlcnJpdG9yeVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gbXlQYXRoKSB7XG4gICAgICAgIHJldHVybiAgLy8gbm8tc2VsZi1pbXBvcnQgdGVycml0b3J5XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVudHJhdmVyc2VkID0gW3ttZ2V0OiAoKSA9PiBpbXBvcnRlZCwgcm91dGU6W119XVxuICAgICAgY29uc3QgdHJhdmVyc2VkID0gbmV3IFNldCgpXG4gICAgICBmdW5jdGlvbiBkZXRlY3RDeWNsZSh7bWdldCwgcm91dGV9KSB7XG4gICAgICAgIGNvbnN0IG0gPSBtZ2V0KClcbiAgICAgICAgaWYgKG0gPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKG0ucGF0aCkpIHJldHVyblxuICAgICAgICB0cmF2ZXJzZWQuYWRkKG0ucGF0aClcblxuICAgICAgICBmb3IgKGxldCBbcGF0aCwgeyBnZXR0ZXIsIHNvdXJjZSB9XSBvZiBtLmltcG9ydHMpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gbXlQYXRoKSByZXR1cm4gdHJ1ZVxuICAgICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKHBhdGgpKSBjb250aW51ZVxuICAgICAgICAgIGlmIChpZ25vcmVNb2R1bGUoc291cmNlLnZhbHVlKSkgY29udGludWVcbiAgICAgICAgICBpZiAocm91dGUubGVuZ3RoICsgMSA8IG1heERlcHRoKSB7XG4gICAgICAgICAgICB1bnRyYXZlcnNlZC5wdXNoKHtcbiAgICAgICAgICAgICAgbWdldDogZ2V0dGVyLFxuICAgICAgICAgICAgICByb3V0ZTogcm91dGUuY29uY2F0KHNvdXJjZSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB3aGlsZSAodW50cmF2ZXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0ID0gdW50cmF2ZXJzZWQuc2hpZnQoKSAvLyBiZnMhXG4gICAgICAgIGlmIChkZXRlY3RDeWNsZShuZXh0KSkge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAobmV4dC5yb3V0ZS5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGBEZXBlbmRlbmN5IGN5Y2xlIHZpYSAke3JvdXRlU3RyaW5nKG5leHQucm91dGUpfWBcbiAgICAgICAgICAgIDogJ0RlcGVuZGVuY3kgY3ljbGUgZGV0ZWN0ZWQuJylcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbXBvcnRlciwgbWVzc2FnZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIGNvbnRleHQub3B0aW9uc1swXSlcbiAgfSxcbn1cblxuZnVuY3Rpb24gcm91dGVTdHJpbmcocm91dGUpIHtcbiAgcmV0dXJuIHJvdXRlLm1hcChzID0+IGAke3MudmFsdWV9OiR7cy5sb2Muc3RhcnQubGluZX1gKS5qb2luKCc9PicpXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-default-export.js b/node_modules/eslint-plugin-import/lib/rules/no-default-export.js
index d9114e6..9434bcd 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-default-export.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-default-export.js
@@ -1,11 +1,13 @@
-'use strict';
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
-    docs: {},
-    schema: []
-  },
+    docs: {
+      url: (0, _docsUrl2.default)('no-default-export') },
+
+    schema: [] },
+
 
   create(context) {
     // ignore non-modules
@@ -14,10 +16,9 @@
     }
 
     const preferNamed = 'Prefer named exports.';
-    const noAliasDefault = (_ref) => {
-      let local = _ref.local;
-      return `Do not alias \`${local.name}\` as \`default\`. Just export ` + `\`${local.name}\` itself instead.`;
-    };
+    const noAliasDefault = (_ref) => {let local = _ref.local;return (
+        `Do not alias \`${local.name}\` as \`default\`. Just export ` +
+        `\`${local.name}\` itself instead.`);};
 
     return {
       ExportDefaultDeclaration(node) {
@@ -26,14 +27,15 @@
 
       ExportNamedDeclaration(node) {
         node.specifiers.forEach(specifier => {
-          if (specifier.type === 'ExportDefaultSpecifier' && specifier.exported.name === 'default') {
+          if (specifier.type === 'ExportDefaultSpecifier' &&
+          specifier.exported.name === 'default') {
             context.report({ node, message: preferNamed });
-          } else if (specifier.type === 'ExportSpecifier' && specifier.exported.name === 'default') {
+          } else if (specifier.type === 'ExportSpecifier' &&
+          specifier.exported.name === 'default') {
             context.report({ node, message: noAliasDefault(specifier) });
           }
         });
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwicHJlZmVyTmFtZWQiLCJub0FsaWFzRGVmYXVsdCIsImxvY2FsIiwibmFtZSIsIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJtZXNzYWdlIiwiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwic3BlY2lmaWVyIiwiZXhwb3J0ZWQiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTSxFQUZGO0FBR0pDLFlBQVE7QUFISixHQURTOztBQU9mQyxTQUFPQyxPQUFQLEVBQWdCO0FBQ2Q7QUFDQSxRQUFJQSxRQUFRQyxhQUFSLENBQXNCQyxVQUF0QixLQUFxQyxRQUF6QyxFQUFtRDtBQUNqRCxhQUFPLEVBQVA7QUFDRDs7QUFFRCxVQUFNQyxjQUFjLHVCQUFwQjtBQUNBLFVBQU1DLGlCQUFpQjtBQUFBLFVBQUVDLEtBQUYsUUFBRUEsS0FBRjtBQUFBLGFBQ3BCLGtCQUFpQkEsTUFBTUMsSUFBSyxpQ0FBN0IsR0FDQyxLQUFJRCxNQUFNQyxJQUFLLG9CQUZLO0FBQUEsS0FBdkI7O0FBSUEsV0FBTztBQUNMQywrQkFBeUJDLElBQXpCLEVBQStCO0FBQzdCUixnQkFBUVMsTUFBUixDQUFlLEVBQUNELElBQUQsRUFBT0UsU0FBU1AsV0FBaEIsRUFBZjtBQUNELE9BSEk7O0FBS0xRLDZCQUF1QkgsSUFBdkIsRUFBNkI7QUFDM0JBLGFBQUtJLFVBQUwsQ0FBZ0JDLE9BQWhCLENBQXdCQyxhQUFhO0FBQ25DLGNBQUlBLFVBQVVsQixJQUFWLEtBQW1CLHdCQUFuQixJQUNBa0IsVUFBVUMsUUFBVixDQUFtQlQsSUFBbkIsS0FBNEIsU0FEaEMsRUFDMkM7QUFDekNOLG9CQUFRUyxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRSxTQUFTUCxXQUFoQixFQUFmO0FBQ0QsV0FIRCxNQUdPLElBQUlXLFVBQVVsQixJQUFWLEtBQW1CLGlCQUFuQixJQUNQa0IsVUFBVUMsUUFBVixDQUFtQlQsSUFBbkIsS0FBNEIsU0FEekIsRUFDb0M7QUFDekNOLG9CQUFRUyxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRSxTQUFTTixlQUFlVSxTQUFmLENBQWhCLEVBQWY7QUFDRDtBQUNGLFNBUkQ7QUFTRDtBQWZJLEtBQVA7QUFpQkQ7QUFuQ2MsQ0FBakIiLCJmaWxlIjoibm8tZGVmYXVsdC1leHBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7fSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgLy8gaWdub3JlIG5vbi1tb2R1bGVzXG4gICAgaWYgKGNvbnRleHQucGFyc2VyT3B0aW9ucy5zb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZmVyTmFtZWQgPSAnUHJlZmVyIG5hbWVkIGV4cG9ydHMuJ1xuICAgIGNvbnN0IG5vQWxpYXNEZWZhdWx0ID0gKHtsb2NhbH0pID0+XG4gICAgICBgRG8gbm90IGFsaWFzIFxcYCR7bG9jYWwubmFtZX1cXGAgYXMgXFxgZGVmYXVsdFxcYC4gSnVzdCBleHBvcnQgYCArXG4gICAgICBgXFxgJHtsb2NhbC5uYW1lfVxcYCBpdHNlbGYgaW5zdGVhZC5gXG5cbiAgICByZXR1cm4ge1xuICAgICAgRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe25vZGUsIG1lc3NhZ2U6IHByZWZlck5hbWVkfSlcbiAgICAgIH0sXG5cbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgIGlmIChzcGVjaWZpZXIudHlwZSA9PT0gJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInICYmXG4gICAgICAgICAgICAgIHNwZWNpZmllci5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlOiBwcmVmZXJOYW1lZH0pXG4gICAgICAgICAgfSBlbHNlIGlmIChzcGVjaWZpZXIudHlwZSA9PT0gJ0V4cG9ydFNwZWNpZmllcicgJiZcbiAgICAgICAgICAgICAgc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe25vZGUsIG1lc3NhZ2U6IG5vQWxpYXNEZWZhdWx0KHNwZWNpZmllcil9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwicHJlZmVyTmFtZWQiLCJub0FsaWFzRGVmYXVsdCIsImxvY2FsIiwibmFtZSIsIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJtZXNzYWdlIiwiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwic3BlY2lmaWVyIiwiZXhwb3J0ZWQiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxtQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsU0FBT0MsT0FBUCxFQUFnQjtBQUNkO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsVUFBTUMsY0FBYyx1QkFBcEI7QUFDQSxVQUFNQyxpQkFBaUIsZUFBRUMsS0FBRixRQUFFQSxLQUFGO0FBQ3BCLDBCQUFpQkEsTUFBTUMsSUFBSyxpQ0FBN0I7QUFDQyxhQUFJRCxNQUFNQyxJQUFLLG9CQUZLLEdBQXZCOztBQUlBLFdBQU87QUFDTEMsK0JBQXlCQyxJQUF6QixFQUErQjtBQUM3QlIsZ0JBQVFTLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9FLFNBQVNQLFdBQWhCLEVBQWY7QUFDRCxPQUhJOztBQUtMUSw2QkFBdUJILElBQXZCLEVBQTZCO0FBQzNCQSxhQUFLSSxVQUFMLENBQWdCQyxPQUFoQixDQUF3QkMsYUFBYTtBQUNuQyxjQUFJQSxVQUFVbkIsSUFBVixLQUFtQix3QkFBbkI7QUFDQW1CLG9CQUFVQyxRQUFWLENBQW1CVCxJQUFuQixLQUE0QixTQURoQyxFQUMyQztBQUN6Q04sb0JBQVFTLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9FLFNBQVNQLFdBQWhCLEVBQWY7QUFDRCxXQUhELE1BR08sSUFBSVcsVUFBVW5CLElBQVYsS0FBbUIsaUJBQW5CO0FBQ1BtQixvQkFBVUMsUUFBVixDQUFtQlQsSUFBbkIsS0FBNEIsU0FEekIsRUFDb0M7QUFDekNOLG9CQUFRUyxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRSxTQUFTTixlQUFlVSxTQUFmLENBQWhCLEVBQWY7QUFDRDtBQUNGLFNBUkQ7QUFTRCxPQWZJLEVBQVA7O0FBaUJELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIC8vIGlnbm9yZSBub24tbW9kdWxlc1xuICAgIGlmIChjb250ZXh0LnBhcnNlck9wdGlvbnMuc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIGNvbnN0IHByZWZlck5hbWVkID0gJ1ByZWZlciBuYW1lZCBleHBvcnRzLidcbiAgICBjb25zdCBub0FsaWFzRGVmYXVsdCA9ICh7bG9jYWx9KSA9PlxuICAgICAgYERvIG5vdCBhbGlhcyBcXGAke2xvY2FsLm5hbWV9XFxgIGFzIFxcYGRlZmF1bHRcXGAuIEp1c3QgZXhwb3J0IGAgK1xuICAgICAgYFxcYCR7bG9jYWwubmFtZX1cXGAgaXRzZWxmIGluc3RlYWQuYFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlOiBwcmVmZXJOYW1lZH0pXG4gICAgICB9LFxuXG4gICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyAmJlxuICAgICAgICAgICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZTogcHJlZmVyTmFtZWR9KVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnRTcGVjaWZpZXInICYmXG4gICAgICAgICAgICAgIHNwZWNpZmllci5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlOiBub0FsaWFzRGVmYXVsdChzcGVjaWZpZXIpfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js b/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js
index 954f595..f641ead 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js
@@ -1,18 +1,6 @@
-'use strict';
-
-var _declaredScope = require('eslint-module-utils/declaredScope');
-
-var _declaredScope2 = _interopRequireDefault(_declaredScope);
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _declaredScope = require('eslint-module-utils/declaredScope');var _declaredScope2 = _interopRequireDefault(_declaredScope);
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function message(deprecation) {
   return 'Deprecated' + (deprecation.description ? ': ' + deprecation.description : '.');
@@ -31,14 +19,14 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-deprecated')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-deprecated') },
+
+    schema: [] },
+
 
   create: function (context) {
     const deprecated = new Map(),
-          namespaces = new Map();
+    namespaces = new Map();
 
     function checkSpecifiers(node) {
       if (node.type !== 'ImportDeclaration') return;
@@ -48,7 +36,8 @@
       if (imports == null) return;
 
       let moduleDeprecation;
-      if (imports.doc && imports.doc.tags.some(t => t.title === 'deprecated' && (moduleDeprecation = t))) {
+      if (imports.doc &&
+      imports.doc.tags.some(t => t.title === 'deprecated' && (moduleDeprecation = t))) {
         context.report({ node, message: message(moduleDeprecation) });
       }
 
@@ -61,8 +50,8 @@
         let imported, local;
         switch (im.type) {
 
-          case 'ImportNamespaceSpecifier':
-            {
+
+          case 'ImportNamespaceSpecifier':{
               if (!imports.size) return;
               namespaces.set(im.local.name, imports);
               return;
@@ -78,8 +67,7 @@
             local = im.local.name;
             break;
 
-          default:
-            return; // can't handle this one
+          default:return; // can't handle this one
         }
 
         // unknown thing can't be deprecated
@@ -95,14 +83,12 @@
         context.report({ node: im, message: message(deprecation) });
 
         deprecated.set(local, deprecation);
+
       });
     }
 
     return {
-      'Program': (_ref) => {
-        let body = _ref.body;
-        return body.forEach(checkSpecifiers);
-      },
+      'Program': (_ref) => {let body = _ref.body;return body.forEach(checkSpecifiers);},
 
       'Identifier': function (node) {
         if (node.parent.type === 'MemberExpression' && node.parent.property === node) {
@@ -117,8 +103,8 @@
         if ((0, _declaredScope2.default)(context, node.name) !== 'module') return;
         context.report({
           node,
-          message: message(deprecated.get(node.name))
-        });
+          message: message(deprecated.get(node.name)) });
+
       },
 
       'MemberExpression': function (dereference) {
@@ -131,7 +117,8 @@
         var namespace = namespaces.get(dereference.object.name);
         var namepath = [dereference.object.name];
         // while property is namespace and parent is member expression, keep validating
-        while (namespace instanceof _ExportMap2.default && dereference.type === 'MemberExpression') {
+        while (namespace instanceof _ExportMap2.default &&
+        dereference.type === 'MemberExpression') {
 
           // ignore computed parts for now
           if (dereference.computed) return;
@@ -150,8 +137,7 @@
           namespace = metadata.namespace;
           dereference = dereference.parent;
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZXByZWNhdGVkLmpzIl0sIm5hbWVzIjpbIm1lc3NhZ2UiLCJkZXByZWNhdGlvbiIsImRlc2NyaXB0aW9uIiwiZ2V0RGVwcmVjYXRpb24iLCJtZXRhZGF0YSIsImRvYyIsInRhZ3MiLCJzb21lIiwidCIsInRpdGxlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJkZXByZWNhdGVkIiwiTWFwIiwibmFtZXNwYWNlcyIsImNoZWNrU3BlY2lmaWVycyIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInZhbHVlIiwibW9kdWxlRGVwcmVjYXRpb24iLCJyZXBvcnQiLCJlcnJvcnMiLCJsZW5ndGgiLCJyZXBvcnRFcnJvcnMiLCJzcGVjaWZpZXJzIiwiZm9yRWFjaCIsImltIiwiaW1wb3J0ZWQiLCJsb2NhbCIsInNpemUiLCJzZXQiLCJuYW1lIiwiZXhwb3J0ZWQiLCJuYW1lc3BhY2UiLCJib2R5IiwicGFyZW50IiwicHJvcGVydHkiLCJzbGljZSIsImhhcyIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwibmFtZXBhdGgiLCJjb21wdXRlZCIsInB1c2giXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxTQUFTQSxPQUFULENBQWlCQyxXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQkEsWUFBWUMsV0FBWixHQUEwQixPQUFPRCxZQUFZQyxXQUE3QyxHQUEyRCxHQUEzRSxDQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDQSxRQUFELElBQWEsQ0FBQ0EsU0FBU0MsR0FBM0IsRUFBZ0M7O0FBRWhDLE1BQUlKLFdBQUo7QUFDQSxNQUFJRyxTQUFTQyxHQUFULENBQWFDLElBQWIsQ0FBa0JDLElBQWxCLENBQXVCQyxLQUFL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QUFFOUM7QUFDQSxjQUFJb0MsWUFBWUcsUUFBaEIsRUFBMEI7O0FBRTFCLGdCQUFNaEQsV0FBV3VDLFVBQVVoQixHQUFWLENBQWNzQixZQUFZSCxRQUFaLENBQXFCTCxJQUFuQyxDQUFqQjs7QUFFQSxjQUFJLENBQUNyQyxRQUFMLEVBQWU7QUFDZixnQkFBTUgsY0FBY0UsZUFBZUMsUUFBZixDQUFwQjs7QUFFQSxjQUFJSCxXQUFKLEVBQWlCO0FBQ2ZpQixvQkFBUVksTUFBUixDQUFlLEVBQUVQLE1BQU0wQixZQUFZSCxRQUFwQixFQUE4QjlDLFNBQVNBLFFBQVFDLFdBQVIsQ0FBdkMsRUFBZjtBQUNEOztBQUVEO0FBQ0FrRCxtQkFBU0UsSUFBVCxDQUFjSixZQUFZSCxRQUFaLENBQXFCTCxJQUFuQztBQUNBRSxzQkFBWXZDLFNBQVN1QyxTQUFyQjtBQUNBTSx3QkFBY0EsWUFBWUosTUFBMUI7QUFDRDtBQUNGO0FBbERJLEtBQVA7QUFvREQ7QUE1SGMsQ0FBakIiLCJmaWxlIjoibm8tZGVwcmVjYXRlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvZGVjbGFyZWRTY29wZSdcbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIG1lc3NhZ2UoZGVwcmVjYXRpb24pIHtcbiAgcmV0dXJuICdEZXByZWNhdGVkJyArIChkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA/ICc6ICcgKyBkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA6ICcuJylcbn1cblxuZnVuY3Rpb24gZ2V0RGVwcmVjYXRpb24obWV0YWRhdGEpIHtcbiAgaWYgKCFtZXRhZGF0YSB8fCAhbWV0YWRhdGEuZG9jKSByZXR1cm5cblxuICBsZXQgZGVwcmVjYXRpb25cbiAgaWYgKG1ldGFkYXRhLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKGRlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgcmV0dXJuIGRlcHJlY2F0aW9uXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kZXByZWNhdGVkJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBkZXByZWNhdGVkID0gbmV3IE1hcCgpXG4gICAgICAgICwgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBsb2NhbCBleHBvcnQsIGlnbm9yZVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgbGV0IG1vZHVsZURlcHJlY2F0aW9uXG4gICAgICBpZiAoaW1wb3J0cy5kb2MgJiZcbiAgICAgICAgICBpbXBvcnRzLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKG1vZHVsZURlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogbWVzc2FnZShtb2R1bGVEZXByZWNhdGlvbikgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKGltKSB7XG4gICAgICAgIGxldCBpbXBvcnRlZCwgbG9jYWxcbiAgICAgICAgc3dpdGNoIChpbS50eXBlKSB7XG5cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6e1xuICAgICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVyblxuICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoaW0ubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgaW1wb3J0ZWQgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWVcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAvLyBjYW4ndCBoYW5kbGUgdGhpcyBvbmVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVua25vd24gdGhpbmcgY2FuJ3QgYmUgZGVwcmVjYXRlZFxuICAgICAgICBjb25zdCBleHBvcnRlZCA9IGltcG9ydHMuZ2V0KGltcG9ydGVkKVxuICAgICAgICBpZiAoZXhwb3J0ZWQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgLy8gY2FwdHVyZSBpbXBvcnQgb2YgZGVlcCBuYW1lc3BhY2VcbiAgICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSlcblxuICAgICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKGltcG9ydHMuZ2V0KGltcG9ydGVkKSlcbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbikgcmV0dXJuXG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcblxuICAgICAgICBkZXByZWNhdGVkLnNldChsb2NhbCwgZGVwcmVjYXRpb24pXG5cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtJzogKHsgYm9keSB9KSA9PiBib2R5LmZvckVhY2goY2hlY2tTcGVjaWZpZXJzKSxcblxuICAgICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgICAgcmV0dXJuIC8vIGhhbmRsZWQgYnkgTWVtYmVyRXhwcmVzc2lvblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWdub3JlIHNwZWNpZmllciBpZGVudGlmaWVyc1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZS5zbGljZSgwLCA2KSA9PT0gJ0ltcG9ydCcpIHJldHVyblxuXG4gICAgICAgIGlmICghZGVwcmVjYXRlZC5oYXMobm9kZS5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0ZWQuZ2V0KG5vZGUubmFtZSkpLFxuICAgICAgICB9KVxuICAgICAgfSxcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgLy8gZ28gZGVlcFxuICAgICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICAvLyBpZ25vcmUgY29tcHV0ZWQgcGFydHMgZm9yIG5vd1xuICAgICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcblxuICAgICAgICAgIGlmICghbWV0YWRhdGEpIGJyZWFrXG4gICAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSlcblxuICAgICAgICAgIGlmIChkZXByZWNhdGlvbikge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgICAgbmFtZXBhdGgucHVzaChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZVxuICAgICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZXByZWNhdGVkLmpzIl0sIm5hbWVzIjpbIm1lc3NhZ2UiLCJkZXByZWNhdGlvbiIsImRlc2NyaXB0aW9uIiwiZ2V0RGVwcmVjYXRpb24iLCJtZXRhZGF0YSIsImRvYyIsInRhZ3MiLCJzb21lIiwidCIsInRpdGxlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJkZXByZWNhdGVkIiwiTWFwIiwibmFtZXNwYWNlcyIsImNoZWNrU3BlY2lmaWVycyIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInZhbHVlIiwibW9kdWxlRGVwcmVjYXRpb24iLCJyZXBvcnQiLCJlcnJvcnMiLCJsZW5ndGgiLCJyZXBvcnRFcnJvcnMiLCJzcGVjaWZpZXJzIiwiZm9yRWFjaCIsImltIiwiaW1wb3J0ZWQiLCJsb2NhbCIsInNpemUiLCJzZXQiLCJuYW1lIiwiZXhwb3J0ZWQiLCJuYW1lc3BhY2UiLCJib2R5IiwicGFyZW50IiwicHJvcGVydHkiLCJzbGljZSIsImhhcyIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwibmFtZXBhdGgiLCJjb21wdXRlZCIsInB1c2giXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0EseUM7QUFDQSxxQzs7QUFFQSxTQUFTQSxPQUFULENBQWlCQyxXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQkEsWUFBWUMsV0FBWixHQUEwQixPQUFPRCxZQUFZQyxXQUE3QyxHQUEyRCxHQUEzRSxDQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDQSxRQUFELElBQWEsQ0FBQ0EsU0FBU0MsR0FBM0IsRUFBZ0M7O0FBRWhDLE1BQUlKLFdBQUo7QUFDQSxNQUFJRyxTQUFTQyxHQUFULENBQWFDLElBQWIsQ0FBa0JDLElBQWxCLENBQXVCQyxLQUFLQSxF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QyxZQUFZRyxRQUFoQixFQUEwQjs7QUFFMUIsZ0JBQU1oRCxXQUFXdUMsVUFBVWhCLEdBQVYsQ0FBY3NCLFlBQVlILFFBQVosQ0FBcUJMLElBQW5DLENBQWpCOztBQUVBLGNBQUksQ0FBQ3JDLFFBQUwsRUFBZTtBQUNmLGdCQUFNSCxjQUFjRSxlQUFlQyxRQUFmLENBQXBCOztBQUVBLGNBQUlILFdBQUosRUFBaUI7QUFDZmlCLG9CQUFRWSxNQUFSLENBQWUsRUFBRVAsTUFBTTBCLFlBQVlILFFBQXBCLEVBQThCOUMsU0FBU0EsUUFBUUMsV0FBUixDQUF2QyxFQUFmO0FBQ0Q7O0FBRUQ7QUFDQWtELG1CQUFTRSxJQUFULENBQWNKLFlBQVlILFFBQVosQ0FBcUJMLElBQW5DO0FBQ0FFLHNCQUFZdkMsU0FBU3VDLFNBQXJCO0FBQ0FNLHdCQUFjQSxZQUFZSixNQUExQjtBQUNEO0FBQ0YsT0FsREksRUFBUDs7QUFvREQsR0E1SGMsRUFBakIiLCJmaWxlIjoibm8tZGVwcmVjYXRlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvZGVjbGFyZWRTY29wZSdcbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIG1lc3NhZ2UoZGVwcmVjYXRpb24pIHtcbiAgcmV0dXJuICdEZXByZWNhdGVkJyArIChkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA/ICc6ICcgKyBkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA6ICcuJylcbn1cblxuZnVuY3Rpb24gZ2V0RGVwcmVjYXRpb24obWV0YWRhdGEpIHtcbiAgaWYgKCFtZXRhZGF0YSB8fCAhbWV0YWRhdGEuZG9jKSByZXR1cm5cblxuICBsZXQgZGVwcmVjYXRpb25cbiAgaWYgKG1ldGFkYXRhLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKGRlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgcmV0dXJuIGRlcHJlY2F0aW9uXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kZXByZWNhdGVkJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBkZXByZWNhdGVkID0gbmV3IE1hcCgpXG4gICAgICAgICwgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBsb2NhbCBleHBvcnQsIGlnbm9yZVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgbGV0IG1vZHVsZURlcHJlY2F0aW9uXG4gICAgICBpZiAoaW1wb3J0cy5kb2MgJiZcbiAgICAgICAgICBpbXBvcnRzLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKG1vZHVsZURlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogbWVzc2FnZShtb2R1bGVEZXByZWNhdGlvbikgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKGltKSB7XG4gICAgICAgIGxldCBpbXBvcnRlZCwgbG9jYWxcbiAgICAgICAgc3dpdGNoIChpbS50eXBlKSB7XG5cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6e1xuICAgICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVyblxuICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoaW0ubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgaW1wb3J0ZWQgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWVcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAvLyBjYW4ndCBoYW5kbGUgdGhpcyBvbmVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVua25vd24gdGhpbmcgY2FuJ3QgYmUgZGVwcmVjYXRlZFxuICAgICAgICBjb25zdCBleHBvcnRlZCA9IGltcG9ydHMuZ2V0KGltcG9ydGVkKVxuICAgICAgICBpZiAoZXhwb3J0ZWQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgLy8gY2FwdHVyZSBpbXBvcnQgb2YgZGVlcCBuYW1lc3BhY2VcbiAgICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSlcblxuICAgICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKGltcG9ydHMuZ2V0KGltcG9ydGVkKSlcbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbikgcmV0dXJuXG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcblxuICAgICAgICBkZXByZWNhdGVkLnNldChsb2NhbCwgZGVwcmVjYXRpb24pXG5cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtJzogKHsgYm9keSB9KSA9PiBib2R5LmZvckVhY2goY2hlY2tTcGVjaWZpZXJzKSxcblxuICAgICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgICAgcmV0dXJuIC8vIGhhbmRsZWQgYnkgTWVtYmVyRXhwcmVzc2lvblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWdub3JlIHNwZWNpZmllciBpZGVudGlmaWVyc1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZS5zbGljZSgwLCA2KSA9PT0gJ0ltcG9ydCcpIHJldHVyblxuXG4gICAgICAgIGlmICghZGVwcmVjYXRlZC5oYXMobm9kZS5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0ZWQuZ2V0KG5vZGUubmFtZSkpLFxuICAgICAgICB9KVxuICAgICAgfSxcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgLy8gZ28gZGVlcFxuICAgICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICAvLyBpZ25vcmUgY29tcHV0ZWQgcGFydHMgZm9yIG5vd1xuICAgICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcblxuICAgICAgICAgIGlmICghbWV0YWRhdGEpIGJyZWFrXG4gICAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSlcblxuICAgICAgICAgIGlmIChkZXByZWNhdGlvbikge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgICAgbmFtZXBhdGgucHVzaChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZVxuICAgICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js b/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js
index a7cbae3..951f3b7 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js
@@ -1,36 +1,11 @@
-'use strict';
-
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
-
-function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _toConsumableArray(arr) {if (Array.isArray(arr)) {for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];return arr2;} else {return Array.from(arr);}}function _toArray(arr) {return Array.isArray(arr) ? arr : Array.from(arr);}
 
 function checkImports(imported, context) {
-  for (const _ref of imported.entries()) {
-    var _ref2 = _slicedToArray(_ref, 2);
-
-    const module = _ref2[0];
-    const nodes = _ref2[1];
-
+  for (const _ref of imported.entries()) {var _ref2 = _slicedToArray(_ref, 2);const module = _ref2[0];const nodes = _ref2[1];
     if (nodes.length > 1) {
-      const message = `'${module}' imported multiple times.`;
-
-      var _nodes = _toArray(nodes);
-
-      const first = _nodes[0],
-            rest = _nodes.slice(1);
-
+      const message = `'${module}' imported multiple times.`;var _nodes = _toArray(
+      nodes);const first = _nodes[0],rest = _nodes.slice(1);
       const sourceCode = context.getSourceCode();
       const fix = getFix(first, rest, sourceCode);
 
@@ -43,8 +18,8 @@
       for (const node of rest) {
         context.report({
           node: node.source,
-          message
-        });
+          message });
+
       }
     }
   }
@@ -69,7 +44,9 @@
     return undefined;
   }
 
-  const defaultImportNames = new Set([first].concat(_toConsumableArray(rest)).map(getDefaultImportName).filter(Boolean));
+  const defaultImportNames = new Set(
+  [first].concat(_toConsumableArray(rest)).map(getDefaultImportName).filter(Boolean));
+
 
   // Bail if there are multiple different default import names – it's up to the
   // user to choose which one to keep.
@@ -79,9 +56,13 @@
 
   // Leave it to the user to handle comments. Also skip `import * as ns from
   // './foo'` imports, since they cannot be merged into another import.
-  const restWithoutComments = rest.filter(node => !(hasProblematicComments(node, sourceCode) || hasNamespace(node)));
+  const restWithoutComments = rest.filter(node => !(
+  hasProblematicComments(node, sourceCode) ||
+  hasNamespace(node)));
 
-  const specifiers = restWithoutComments.map(node => {
+
+  const specifiers = restWithoutComments.
+  map(node => {
     const tokens = sourceCode.getTokens(node);
     const openBrace = tokens.find(token => isPunctuator(token, '{'));
     const closeBrace = tokens.find(token => isPunctuator(token, '}'));
@@ -94,11 +75,16 @@
       importNode: node,
       text: sourceCode.text.slice(openBrace.range[1], closeBrace.range[0]),
       hasTrailingComma: isPunctuator(sourceCode.getTokenBefore(closeBrace), ','),
-      isEmpty: !hasSpecifiers(node)
-    };
-  }).filter(Boolean);
+      isEmpty: !hasSpecifiers(node) };
 
-  const unnecessaryImports = restWithoutComments.filter(node => !hasSpecifiers(node) && !hasNamespace(node) && !specifiers.some(specifier => specifier.importNode === node));
+  }).
+  filter(Boolean);
+
+  const unnecessaryImports = restWithoutComments.filter(node =>
+  !hasSpecifiers(node) &&
+  !hasNamespace(node) &&
+  !specifiers.some(specifier => specifier.importNode === node));
+
 
   const shouldAddDefault = getDefaultImportName(first) == null && defaultImportNames.size === 1;
   const shouldAddSpecifiers = specifiers.length > 0;
@@ -112,34 +98,33 @@
     const tokens = sourceCode.getTokens(first);
     const openBrace = tokens.find(token => isPunctuator(token, '{'));
     const closeBrace = tokens.find(token => isPunctuator(token, '}'));
-    const firstToken = sourceCode.getFirstToken(first);
+    const firstToken = sourceCode.getFirstToken(first);var _defaultImportNames = _slicedToArray(
+    defaultImportNames, 1);const defaultImportName = _defaultImportNames[0];
 
-    var _defaultImportNames = _slicedToArray(defaultImportNames, 1);
+    const firstHasTrailingComma =
+    closeBrace != null &&
+    isPunctuator(sourceCode.getTokenBefore(closeBrace), ',');
+    const firstIsEmpty = !hasSpecifiers(first);var _specifiers$reduce =
 
-    const defaultImportName = _defaultImportNames[0];
+    specifiers.reduce(
+    (_ref3, specifier) => {var _ref4 = _slicedToArray(_ref3, 2);let result = _ref4[0],needsComma = _ref4[1];
+      return [
+      needsComma && !specifier.isEmpty ?
+      `${result},${specifier.text}` :
+      `${result}${specifier.text}`,
+      specifier.isEmpty ? needsComma : true];
 
-
-    const firstHasTrailingComma = closeBrace != null && isPunctuator(sourceCode.getTokenBefore(closeBrace), ',');
-    const firstIsEmpty = !hasSpecifiers(first);
-
-    var _specifiers$reduce = specifiers.reduce((_ref3, specifier) => {
-      var _ref4 = _slicedToArray(_ref3, 2);
-
-      let result = _ref4[0],
-          needsComma = _ref4[1];
-
-      return [needsComma && !specifier.isEmpty ? `${result},${specifier.text}` : `${result}${specifier.text}`, specifier.isEmpty ? needsComma : true];
-    }, ['', !firstHasTrailingComma && !firstIsEmpty]),
-        _specifiers$reduce2 = _slicedToArray(_specifiers$reduce, 1);
-
-    const specifiersText = _specifiers$reduce2[0];
+    },
+    ['', !firstHasTrailingComma && !firstIsEmpty]),_specifiers$reduce2 = _slicedToArray(_specifiers$reduce, 1);const specifiersText = _specifiers$reduce2[0];
 
 
     const fixes = [];
 
     if (shouldAddDefault && openBrace == null && shouldAddSpecifiers) {
       // `import './foo'` → `import def, {...} from './foo'`
-      fixes.push(fixer.insertTextAfter(firstToken, ` ${defaultImportName}, {${specifiersText}} from`));
+      fixes.push(
+      fixer.insertTextAfter(firstToken, ` ${defaultImportName}, {${specifiersText}} from`));
+
     } else if (shouldAddDefault && openBrace == null && !shouldAddSpecifiers) {
       // `import './foo'` → `import def from './foo'`
       fixes.push(fixer.insertTextAfter(firstToken, ` ${defaultImportName} from`));
@@ -151,8 +136,13 @@
         fixes.push(fixer.insertTextBefore(closeBrace, specifiersText));
       }
     } else if (!shouldAddDefault && openBrace == null && shouldAddSpecifiers) {
-      // `import './foo'` → `import {...} from './foo'`
-      fixes.push(fixer.insertTextAfter(firstToken, ` {${specifiersText}} from`));
+      if (first.specifiers.length === 0) {
+        // `import './foo'` → `import {...} from './foo'`
+        fixes.push(fixer.insertTextAfter(firstToken, ` {${specifiersText}} from`));
+      } else {
+        // `import def from './foo'` → `import def, {...} from './foo'`
+        fixes.push(fixer.insertTextAfter(first.specifiers[0], `, {${specifiersText}}`));
+      }
     } else if (!shouldAddDefault && openBrace != null && closeBrace != null) {
       // `import {...} './foo'` → `import {..., ...} from './foo'`
       fixes.push(fixer.insertTextBefore(closeBrace, specifiersText));
@@ -180,38 +170,47 @@
 
 // Get the name of the default import of `node`, if any.
 function getDefaultImportName(node) {
-  const defaultSpecifier = node.specifiers.find(specifier => specifier.type === 'ImportDefaultSpecifier');
+  const defaultSpecifier = node.specifiers.
+  find(specifier => specifier.type === 'ImportDefaultSpecifier');
   return defaultSpecifier != null ? defaultSpecifier.local.name : undefined;
 }
 
 // Checks whether `node` has a namespace import.
 function hasNamespace(node) {
-  const specifiers = node.specifiers.filter(specifier => specifier.type === 'ImportNamespaceSpecifier');
+  const specifiers = node.specifiers.
+  filter(specifier => specifier.type === 'ImportNamespaceSpecifier');
   return specifiers.length > 0;
 }
 
 // Checks whether `node` has any non-default specifiers.
 function hasSpecifiers(node) {
-  const specifiers = node.specifiers.filter(specifier => specifier.type === 'ImportSpecifier');
+  const specifiers = node.specifiers.
+  filter(specifier => specifier.type === 'ImportSpecifier');
   return specifiers.length > 0;
 }
 
 // It's not obvious what the user wants to do with comments associated with
 // duplicate imports, so skip imports with comments when autofixing.
 function hasProblematicComments(node, sourceCode) {
-  return hasCommentBefore(node, sourceCode) || hasCommentAfter(node, sourceCode) || hasCommentInsideNonSpecifiers(node, sourceCode);
+  return (
+    hasCommentBefore(node, sourceCode) ||
+    hasCommentAfter(node, sourceCode) ||
+    hasCommentInsideNonSpecifiers(node, sourceCode));
+
 }
 
 // Checks whether `node` has a comment (that ends) on the previous line or on
 // the same line as `node` (starts).
 function hasCommentBefore(node, sourceCode) {
-  return sourceCode.getCommentsBefore(node).some(comment => comment.loc.end.line >= node.loc.start.line - 1);
+  return sourceCode.getCommentsBefore(node).
+  some(comment => comment.loc.end.line >= node.loc.start.line - 1);
 }
 
 // Checks whether `node` has a comment (that starts) on the same line as `node`
 // (ends).
 function hasCommentAfter(node, sourceCode) {
-  return sourceCode.getCommentsAfter(node).some(comment => comment.loc.start.line === node.loc.end.line);
+  return sourceCode.getCommentsAfter(node).
+  some(comment => comment.loc.start.line === node.loc.end.line);
 }
 
 // Checks whether `node` has any comments _inside,_ except inside the `{...}`
@@ -223,7 +222,9 @@
   // Slice away the first token, since we're no looking for comments _before_
   // `node` (only inside). If there's a `{...}` part, look for comments before
   // the `{`, but not before the `}` (hence the `+1`s).
-  const someTokens = openBraceIndex >= 0 && closeBraceIndex >= 0 ? tokens.slice(1, openBraceIndex + 1).concat(tokens.slice(closeBraceIndex + 1)) : tokens.slice(1);
+  const someTokens = openBraceIndex >= 0 && closeBraceIndex >= 0 ?
+  tokens.slice(1, openBraceIndex + 1).concat(tokens.slice(closeBraceIndex + 1)) :
+  tokens.slice(1);
   return someTokens.some(token => sourceCode.getCommentsBefore(token).length > 0);
 }
 
@@ -231,23 +232,26 @@
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-duplicates')
-    },
+      url: (0, _docsUrl2.default)('no-duplicates') },
+
     fixable: 'code',
-    schema: [{
+    schema: [
+    {
       type: 'object',
       properties: {
         considerQueryString: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
+          type: 'boolean' } },
+
+
+      additionalProperties: false }] },
+
+
+
 
   create: function (context) {
     // Prepare the resolver from options.
-    const considerQueryStringOption = context.options[0] && context.options[0]['considerQueryString'];
+    const considerQueryStringOption = context.options[0] &&
+    context.options[0]['considerQueryString'];
     const defaultResolver = sourcePath => (0, _resolve2.default)(sourcePath, context) || sourcePath;
     const resolver = considerQueryStringOption ? sourcePath => {
       const parts = sourcePath.match(/^([^?]*)\?(.*)$/);
@@ -264,7 +268,8 @@
       'ImportDeclaration': function (n) {
         // resolved path will cover aliased duplicates
         const resolvedPath = resolver(n.source.value);
-        const importMap = n.importKind === 'type' ? typesImported : hasNamespace(n) ? nsImported : imported;
+        const importMap = n.importKind === 'type' ? typesImported :
+        hasNamespace(n) ? nsImported : imported;
 
         if (importMap.has(resolvedPath)) {
           importMap.get(resolvedPath).push(n);
@@ -277,8 +282,7 @@
         checkImports(imported, context);
         checkImports(nsImported, context);
         checkImports(typesImported, context);
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kdXBsaWNhdGVzLmpzIl0sIm5hbWVzIjpbImNoZWNrSW1wb3J0cyIsImltcG9ydGVkIiwiY29udGV4dCIsImVudHJpZXMiLCJtb2R1bGUiLCJub2RlcyIsImxlbmd0aCIsIm1lc3NhZ2UiLCJmaXJzdCIsInJlc3QiLCJzb3VyY2VDb2RlIiwiZ2V0U291cmNlQ29kZSIsImZpeCIsImdldEZpeCIsInJlcG9ydCIsIm5vZGUiLCJzb3VyY2UiLCJnZXRDb21tZW50c0JlZm9yZSIsInVuZGVmaW5lZCIsImhhc1Byb2JsZW1hdGljQ29tbWVudHMiLCJoYXNOYW1lc3BhY2UiLCJkZWZhdWx0SW1wb3J0TmFtZXMiLCJTZXQiLCJtYXAiLCJnZXREZWZhdWx0SW1wb3J0TmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJzaXplIiwicmVzdFdpdGhvdXRDb21tZW50cyIsInNwZWNpZmllcnMiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJvcGVuQnJhY2UiLCJmaW5kIiwidG9rZW4iLCJpc1B1bmN0dWF0b3IiLCJjbG9zZUJyYWNlIiwiaW1wb3J0Tm9kZSIsInRleHQiLCJzbGljZSIsInJhbmdlIiwiaGFzVHJhaWxpbmdDb21tYSIsImdldFRva2VuQmVmb3JlIiwiaXNFbXB0eSIsImhhc1NwZWNpZmllcnMiLCJ1bm5lY2Vzc2FyeUltcG9ydHMiLCJzb21lIiwic3BlY2lmaWVyIiwic2hvdWxkQWRkRGVmYXVsdCIsInNob3VsZEFkZFNwZWNpZmllcnMiLCJzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSIsImZpeGVyIiwiZmlyc3RUb2tlbiIsImdldEZpcnN0VG9rZW4iLCJkZWZhdWx0SW1wb3J0TmFtZSIsImZpcnN0SGFzVHJhaWxpbmdDb21tYSIsImZpcnN0SXNFbXB0eSIsInJlZHVjZSIsInJlc3VsdCIsIm5lZWRzQ29tbWEiLCJzcGVjaWZpZXJzVGV4dCIsImZpeGVzIiwicHVzaCIsImluc2VydFRleHRBZnRlciIsImluc2VydFRleHRCZWZvcmUiLCJyZW1vdmUiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwibG9jYWwiLCJuYW1lIiwiaGFzQ29tbWVudEJlZm9yZSIsImhhc0NvbW1lbnRBZnRlciIsImhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzIiwiY29tbWVudCIsImxvYyIsImVuZCIsImxpbmUiLCJzdGFydCIsImdldENvbW1lbnRzQWZ0ZXIiLCJvcGVuQnJhY2VJbmRleCIsImZpbmRJbmRleCIsImNsb3NlQnJhY2VJbmRleCIsInNvbWVUb2tlbnMiLCJjb25jYXQiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwicHJvcGVydGllcyIsImNvbnNpZGVyUXVlcnlTdHJpbmciLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImNyZWF0ZSIsImNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24iLCJvcHRpb25zIiwiZGVmYXVsdFJlc29sdmVyIiwic291cmNlUGF0aCIsInJlc29sdmVyIiwicGFydHMiLCJtYXRjaCIsIk1hcCIsIm5zSW1wb3J0ZWQiLCJ0eXBlc0ltcG9ydGVkIiwibiIsInJlc29sdmVkUGF0aCIsImltcG9ydE1hcCIsImltcG9ydEtpbmQiLCJoYXMiLCJnZXQiLCJzZXQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7Ozs7O0FBRUEsU0FBU0EsWUFBVCxDQUFzQkMsUUFBdEIsRUFBZ0NDLE9BQWhDLEVBQXlDO0FBQ3ZDLHFCQUE4QkQsU0FBU0UsT0FBVCxFQUE5QixFQUFrRDtBQUFBOztBQUFBLFVBQXRDQyxNQUFzQztBQUFBLFVBQTlCQyxLQUE4Qjs7QUFDaEQsUUFBSUEsTUFBTUMsTUFBTixHQUFlLENBQW5CLEVBQXNCO0FBQ3BCLFlBQU1DLFVBQVcsSUFBR0gsTUFBTyw0QkFBM0I7O0FBRG9CLDRCQUVLQyxLQUZMOztBQUFBLFlBRWJHLEtBRmE7QUFBQSxZQUVIQyxJQUZHOztBQUdwQixZQUFNQyxhQUFhUixRQUFRUyxhQUFSLEVBQW5CO0FBQ0EsWUFB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RyxNQUFNLENBQU4sQ0FBaEIsSUFBNEIsR0FBNUIsR0FBa0NBLE1BQU0sQ0FBTixDQUF6QztBQUNELEtBTmdCLEdBTVpILGVBTkw7O0FBUUEsVUFBTWhHLFdBQVcsSUFBSXFHLEdBQUosRUFBakI7QUFDQSxVQUFNQyxhQUFhLElBQUlELEdBQUosRUFBbkI7QUFDQSxVQUFNRSxnQkFBZ0IsSUFBSUYsR0FBSixFQUF0QjtBQUNBLFdBQU87QUFDTCwyQkFBcUIsVUFBVUcsQ0FBVixFQUFhO0FBQ2hDO0FBQ0EsY0FBTUMsZUFBZVAsU0FBU00sRUFBRXpGLE1BQUYsQ0FBU2tELEtBQWxCLENBQXJCO0FBQ0EsY0FBTXlDLFlBQVlGLEVBQUVHLFVBQUYsS0FBaUIsTUFBakIsR0FBMEJKLGFBQTFCLEdBQ2ZwRixhQUFhcUYsQ0FBYixJQUFrQkYsVUFBbEIsR0FBK0J0RyxRQURsQzs7QUFHQSxZQUFJMEcsVUFBVUUsR0FBVixDQUFjSCxZQUFkLENBQUosRUFBaUM7QUFDL0JDLG9CQUFVRyxHQUFWLENBQWNKLFlBQWQsRUFBNEI1QyxJQUE1QixDQUFpQzJDLENBQWpDO0FBQ0QsU0FGRCxNQUVPO0FBQ0xFLG9CQUFVSSxHQUFWLENBQWNMLFlBQWQsRUFBNEIsQ0FBQ0QsQ0FBRCxDQUE1QjtBQUNEO0FBQ0YsT0FaSTs7QUFjTCxzQkFBZ0IsWUFBWTtBQUMxQnpHLHFCQUFhQyxRQUFiLEVBQXVCQyxPQUF2QjtBQUNBRixxQkFBYXVHLFVBQWIsRUFBeUJyRyxPQUF6QjtBQUNBRixxQkFBYXdHLGFBQWIsRUFBNEJ0RyxPQUE1QjtBQUNEO0FBbEJJLEtBQVA7QUFvQkQ7QUF4RGMsQ0FBakIiLCJmaWxlIjoibm8tZHVwbGljYXRlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dCkge1xuICBmb3IgKGNvbnN0IFttb2R1bGUsIG5vZGVzXSBvZiBpbXBvcnRlZC5lbnRyaWVzKCkpIHtcbiAgICBpZiAobm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGAnJHttb2R1bGV9JyBpbXBvcnRlZCBtdWx0aXBsZSB0aW1lcy5gXG4gICAgICBjb25zdCBbZmlyc3QsIC4uLnJlc3RdID0gbm9kZXNcbiAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKVxuICAgICAgY29uc3QgZml4ID0gZ2V0Rml4KGZpcnN0LCByZXN0LCBzb3VyY2VDb2RlKVxuXG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGU6IGZpcnN0LnNvdXJjZSxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgZml4LCAvLyBBdHRhY2ggdGhlIGF1dG9maXggKGlmIGFueSkgdG8gdGhlIGZpcnN0IGltcG9ydC5cbiAgICAgIH0pXG5cbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiByZXN0KSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBub2RlLnNvdXJjZSxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGaXgoZmlyc3QsIHJlc3QsIHNvdXJjZUNvZGUpIHtcbiAgLy8gU29ycnkgRVNMaW50IDw9IDMgdXNlcnMsIG5vIGF1dG9maXggZm9yIHlvdS4gQXV0b2ZpeGluZyBkdXBsaWNhdGUgaW1wb3J0c1xuICAvLyByZXF1aXJlcyBtdWx0aXBsZSBgZml4ZXIud2hhdGV2ZXIoKWAgY2FsbHMgaW4gdGhlIGBmaXhgOiBXZSBib3RoIG5lZWQgdG9cbiAgLy8gdXBkYXRlIHRoZSBmaXJzdCBvbmUsIGFuZCByZW1vdmUgdGhlIHJlc3QuIFN1cHBvcnQgZm9yIG11bHRpcGxlXG4gIC8vIGBmaXhlci53aGF0ZXZlcigpYCBpbiBhIHNpbmdsZSBgZml4YCB3YXMgYWRkZWQgaW4gRVNMaW50IDQuMS5cbiAgLy8gYHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmVgIHdhcyBhZGRlZCBpbiA0LjAsIHNvIHRoYXQncyBhbiBlYXN5IHRoaW5nIHRvXG4gIC8vIGNoZWNrIGZvci5cbiAgaWYgKHR5cGVvZiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgLy8gQWRqdXN0aW5nIHRoZSBmaXJzdCBpbXBvcnQgbWlnaHQgbWFrZSBpdCBtdWx0aWxpbmUsIHdoaWNoIGNvdWxkIGJyZWFrXG4gIC8vIGBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVgIGNvbW1lbnRzIGFuZCBzaW1pbGFyLCBzbyBiYWlsIGlmIHRoZSBmaXJzdFxuICAvLyBpbXBvcnQgaGFzIGNvbW1lbnRzLiBBbHNvLCBpZiB0aGUgZmlyc3QgaW1wb3J0IGlzIGBpbXBvcnQgKiBhcyBucyBmcm9tXG4gIC8vICcuL2ZvbydgIHRoZXJlJ3Mgbm90aGluZyB3ZSBjYW4gZG8uXG4gIGlmIChoYXNQcm9ibGVtYXRpY0NvbW1lbnRzKGZpcnN0LCBzb3VyY2VDb2RlKSB8fCBoYXNOYW1lc3BhY2UoZmlyc3QpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgY29uc3QgZGVmYXVsdEltcG9ydE5hbWVzID0gbmV3IFNldChcbiAgICBbZmlyc3QsIC4uLnJlc3RdLm1hcChnZXREZWZhdWx0SW1wb3J0TmFtZSkuZmlsdGVyKEJvb2xlYW4pXG4gIClcblxuICAvLyBCYWlsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJlbnQgZGVmYXVsdCBpbXBvcnQgbmFtZXMg4oCTIGl0J3MgdXAgdG8gdGhlXG4gIC8vIHVzZXIgdG8gY2hvb3NlIHdoaWNoIG9uZSB0byBrZWVwLlxuICBpZiAoZGVmYXVsdEltcG9ydE5hbWVzLnNpemUgPiAxKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgLy8gTGVhdmUgaXQgdG8gdGhlIHVzZXIgdG8gaGFuZGxlIGNvbW1lbnRzLiBBbHNvIHNraXAgYGltcG9ydCAqIGFzIG5zIGZyb21cbiAgLy8gJy4vZm9vJ2AgaW1wb3J0cywgc2luY2UgdGhleSBjYW5ub3QgYmUgbWVyZ2VkIGludG8gYW5vdGhlciBpbXBvcnQuXG4gIGNvbnN0IHJlc3RXaXRob3V0Q29tbWVudHMgPSByZXN0LmZpbHRlcihub2RlID0+ICEoXG4gICAgaGFzUHJvYmxlbWF0aWNDb21tZW50cyhub2RlLCBzb3VyY2VDb2RlKSB8fFxuICAgIGhhc05hbWVzcGFjZShub2RlKVxuICApKVxuXG4gIGNvbnN0IHNwZWNpZmllcnMgPSByZXN0V2l0aG91dENvbW1lbnRzXG4gICAgLm1hcChub2RlID0+IHtcbiAgICAgIGNvbnN0IHRva2VucyA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5zKG5vZGUpXG4gICAgICBjb25zdCBvcGVuQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd7JykpXG4gICAgICBjb25zdCBjbG9zZUJyYWNlID0gdG9rZW5zLmZpbmQodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAnfScpKVxuXG4gICAgICBpZiAob3BlbkJyYWNlID09IG51bGwgfHwgY2xvc2VCcmFjZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1wb3J0Tm9kZTogbm9kZSxcbiAgICAgICAgdGV4dDogc291cmNlQ29kZS50ZXh0LnNsaWNlKG9wZW5CcmFjZS5yYW5nZVsxXSwgY2xvc2VCcmFjZS5yYW5nZVswXSksXG4gICAgICAgIGhhc1RyYWlsaW5nQ29tbWE6IGlzUHVuY3R1YXRvcihzb3VyY2VDb2RlLmdldFRva2VuQmVmb3JlKGNsb3NlQnJhY2UpLCAnLCcpLFxuICAgICAgICBpc0VtcHR5OiAhaGFzU3BlY2lmaWVycyhub2RlKSxcbiAgICAgIH1cbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbilcblxuICBjb25zdCB1bm5lY2Vzc2FyeUltcG9ydHMgPSByZXN0V2l0aG91dENvbW1lbnRzLmZpbHRlcihub2RlID0+XG4gICAgIWhhc1NwZWNpZmllcnMobm9kZSkgJiZcbiAgICAhaGFzTmFtZXNwYWNlKG5vZGUpICYmXG4gICAgIXNwZWNpZmllcnMuc29tZShzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLmltcG9ydE5vZGUgPT09IG5vZGUpXG4gIClcblxuICBjb25zdCBzaG91bGRBZGREZWZhdWx0ID0gZ2V0RGVmYXVsdEltcG9ydE5hbWUoZmlyc3QpID09IG51bGwgJiYgZGVmYXVsdEltcG9ydE5hbWVzLnNpemUgPT09IDFcbiAgY29uc3Qgc2hvdWxkQWRkU3BlY2lmaWVycyA9IHNwZWNpZmllcnMubGVuZ3RoID4gMFxuICBjb25zdCBzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSA9IHVubmVjZXNzYXJ5SW1wb3J0cy5sZW5ndGggPiAwXG5cbiAgaWYgKCEoc2hvdWxkQWRkRGVmYXVsdCB8fCBzaG91bGRBZGRTcGVjaWZpZXJzIHx8IHNob3VsZFJlbW92ZVVubmVjZXNzYXJ5KSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIHJldHVybiBmaXhlciA9PiB7XG4gICAgY29uc3QgdG9rZW5zID0gc291cmNlQ29kZS5nZXRUb2tlbnMoZmlyc3QpXG4gICAgY29uc3Qgb3BlbkJyYWNlID0gdG9rZW5zLmZpbmQodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAneycpKVxuICAgIGNvbnN0IGNsb3NlQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd9JykpXG4gICAgY29uc3QgZmlyc3RUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0Rmlyc3RUb2tlbihmaXJzdClcbiAgICBjb25zdCBbZGVmYXVsdEltcG9ydE5hbWVdID0gZGVmYXVsdEltcG9ydE5hbWVzXG5cbiAgICBjb25zdCBmaXJzdEhhc1RyYWlsaW5nQ29tbWEgPVxuICAgICAgY2xvc2VCcmFjZSAhPSBudWxsICYmXG4gICAgICBpc1B1bmN0dWF0b3Ioc291cmNlQ29kZS5nZXRUb2tlbkJlZm9yZShjbG9zZUJyYWNlKSwgJywnKVxuICAgIGNvbnN0IGZpcnN0SXNFbXB0eSA9ICFoYXNTcGVjaWZpZXJzKGZpcnN0KVxuXG4gICAgY29uc3QgW3NwZWNpZmllcnNUZXh0XSA9IHNwZWNpZmllcnMucmVkdWNlKFxuICAgICAgKFtyZXN1bHQsIG5lZWRzQ29tbWFdLCBzcGVjaWZpZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBuZWVkc0NvbW1hICYmICFzcGVjaWZpZXIuaXNFbXB0eVxuICAgICAgICAgICAgPyBgJHtyZXN1bHR9LCR7c3BlY2lmaWVyLnRleHR9YFxuICAgICAgICAgICAgOiBgJHtyZXN1bHR9JHtzcGVjaWZpZXIudGV4dH1gLFxuICAgICAgICAgIHNwZWNpZmllci5pc0VtcHR5ID8gbmVlZHNDb21tYSA6IHRydWUsXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBbJycsICFmaXJzdEhhc1RyYWlsaW5nQ29tbWEgJiYgIWZpcnN0SXNFbXB0eV1cbiAgICApXG5cbiAgICBjb25zdCBmaXhlcyA9IFtdXG5cbiAgICBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgPT0gbnVsbCAmJiBzaG91bGRBZGRTcGVjaWZpZXJzKSB7XG4gICAgICAvLyBgaW1wb3J0ICcuL2ZvbydgIOKGkiBgaW1wb3J0IGRlZiwgey4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChcbiAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0sIHske3NwZWNpZmllcnNUZXh0fX0gZnJvbWApXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSA9PSBudWxsICYmICFzaG91bGRBZGRTcGVjaWZpZXJzKSB7XG4gICAgICAvLyBgaW1wb3J0ICcuL2ZvbydgIOKGkiBgaW1wb3J0IGRlZiBmcm9tICcuL2ZvbydgXG4gICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRBZnRlcihmaXJzdFRva2VuLCBgICR7ZGVmYXVsdEltcG9ydE5hbWV9IGZyb21gKSlcbiAgICB9IGVsc2UgaWYgKHNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlICE9IG51bGwgJiYgY2xvc2VCcmFjZSAhPSBudWxsKSB7XG4gICAgICAvLyBgaW1wb3J0IHsuLi59IGZyb20gJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmLCB7Li4ufSBmcm9tICcuL2ZvbydgXG4gICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRBZnRlcihmaXJzdFRva2VuLCBgICR7ZGVmYXVsdEltcG9ydE5hbWV9LGApKVxuICAgICAgaWYgKHNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgICAgLy8gYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmLCB7Li4uLCAuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QmVmb3JlKGNsb3NlQnJhY2UsIHNwZWNpZmllcnNUZXh0KSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSA9PSBudWxsICYmIHNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3RUb2tlbiwgYCB7JHtzcGVjaWZpZXJzVGV4dH19IGZyb21gKSlcbiAgICB9IGVsc2UgaWYgKCFzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSAhPSBudWxsICYmIGNsb3NlQnJhY2UgIT0gbnVsbCkge1xuICAgICAgLy8gYGltcG9ydCB7Li4ufSAnLi9mb28nYCDihpIgYGltcG9ydCB7Li4uLCAuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEJlZm9yZShjbG9zZUJyYWNlLCBzcGVjaWZpZXJzVGV4dCkpXG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGltcG9ydHMgd2hvc2Ugc3BlY2lmaWVycyBoYXZlIGJlZW4gbW92ZWQgaW50byB0aGUgZmlyc3QgaW1wb3J0LlxuICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIHNwZWNpZmllcnMpIHtcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVtb3ZlKHNwZWNpZmllci5pbXBvcnROb2RlKSlcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgaW1wb3J0cyB3aG9zZSBkZWZhdWx0IGltcG9ydCBoYXMgYmVlbiBtb3ZlZCB0byB0aGUgZmlyc3QgaW1wb3J0LFxuICAgIC8vIGFuZCBzaWRlLWVmZmVjdC1vbmx5IGltcG9ydHMgdGhhdCBhcmUgdW5uZWNlc3NhcnkgZHVlIHRvIHRoZSBmaXJzdFxuICAgIC8vIGltcG9ydC5cbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdW5uZWNlc3NhcnlJbXBvcnRzKSB7XG4gICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlbW92ZShub2RlKSlcbiAgICB9XG5cbiAgICByZXR1cm4gZml4ZXNcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1B1bmN0dWF0b3Iobm9kZSwgdmFsdWUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ1B1bmN0dWF0b3InICYmIG5vZGUudmFsdWUgPT09IHZhbHVlXG59XG5cbi8vIEdldCB0aGUgbmFtZSBvZiB0aGUgZGVmYXVsdCBpbXBvcnQgb2YgYG5vZGVgLCBpZiBhbnkuXG5mdW5jdGlvbiBnZXREZWZhdWx0SW1wb3J0TmFtZShub2RlKSB7XG4gIGNvbnN0IGRlZmF1bHRTcGVjaWZpZXIgPSBub2RlLnNwZWNpZmllcnNcbiAgICAuZmluZChzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJylcbiAgcmV0dXJuIGRlZmF1bHRTcGVjaWZpZXIgIT0gbnVsbCA/IGRlZmF1bHRTcGVjaWZpZXIubG9jYWwubmFtZSA6IHVuZGVmaW5lZFxufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGEgbmFtZXNwYWNlIGltcG9ydC5cbmZ1bmN0aW9uIGhhc05hbWVzcGFjZShub2RlKSB7XG4gIGNvbnN0IHNwZWNpZmllcnMgPSBub2RlLnNwZWNpZmllcnNcbiAgICAuZmlsdGVyKHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcicpXG4gIHJldHVybiBzcGVjaWZpZXJzLmxlbmd0aCA+IDBcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhbnkgbm9uLWRlZmF1bHQgc3BlY2lmaWVycy5cbmZ1bmN0aW9uIGhhc1NwZWNpZmllcnMobm9kZSkge1xuICBjb25zdCBzcGVjaWZpZXJzID0gbm9kZS5zcGVjaWZpZXJzXG4gICAgLmZpbHRlcihzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnRTcGVjaWZpZXInKVxuICByZXR1cm4gc3BlY2lmaWVycy5sZW5ndGggPiAwXG59XG5cbi8vIEl0J3Mgbm90IG9idmlvdXMgd2hhdCB0aGUgdXNlciB3YW50cyB0byBkbyB3aXRoIGNvbW1lbnRzIGFzc29jaWF0ZWQgd2l0aFxuLy8gZHVwbGljYXRlIGltcG9ydHMsIHNvIHNraXAgaW1wb3J0cyB3aXRoIGNvbW1lbnRzIHdoZW4gYXV0b2ZpeGluZy5cbmZ1bmN0aW9uIGhhc1Byb2JsZW1hdGljQ29tbWVudHMobm9kZSwgc291cmNlQ29kZSkge1xuICByZXR1cm4gKFxuICAgIGhhc0NvbW1lbnRCZWZvcmUobm9kZSwgc291cmNlQ29kZSkgfHxcbiAgICBoYXNDb21tZW50QWZ0ZXIobm9kZSwgc291cmNlQ29kZSkgfHxcbiAgICBoYXNDb21tZW50SW5zaWRlTm9uU3BlY2lmaWVycyhub2RlLCBzb3VyY2VDb2RlKVxuICApXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYSBjb21tZW50ICh0aGF0IGVuZHMpIG9uIHRoZSBwcmV2aW91cyBsaW5lIG9yIG9uXG4vLyB0aGUgc2FtZSBsaW5lIGFzIGBub2RlYCAoc3RhcnRzKS5cbmZ1bmN0aW9uIGhhc0NvbW1lbnRCZWZvcmUobm9kZSwgc291cmNlQ29kZSkge1xuICByZXR1cm4gc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZShub2RlKVxuICAgIC5zb21lKGNvbW1lbnQgPT4gY29tbWVudC5sb2MuZW5kLmxpbmUgPj0gbm9kZS5sb2Muc3RhcnQubGluZSAtIDEpXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYSBjb21tZW50ICh0aGF0IHN0YXJ0cykgb24gdGhlIHNhbWUgbGluZSBhcyBgbm9kZWBcbi8vIChlbmRzKS5cbmZ1bmN0aW9uIGhhc0NvbW1lbnRBZnRlcihub2RlLCBzb3VyY2VDb2RlKSB7XG4gIHJldHVybiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQWZ0ZXIobm9kZSlcbiAgICAuc29tZShjb21tZW50ID0+IGNvbW1lbnQubG9jLnN0YXJ0LmxpbmUgPT09IG5vZGUubG9jLmVuZC5saW5lKVxufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGFueSBjb21tZW50cyBfaW5zaWRlLF8gZXhjZXB0IGluc2lkZSB0aGUgYHsuLi59YFxuLy8gcGFydCAoaWYgYW55KS5cbmZ1bmN0aW9uIGhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgY29uc3QgdG9rZW5zID0gc291cmNlQ29kZS5nZXRUb2tlbnMobm9kZSlcbiAgY29uc3Qgb3BlbkJyYWNlSW5kZXggPSB0b2tlbnMuZmluZEluZGV4KHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ3snKSlcbiAgY29uc3QgY2xvc2VCcmFjZUluZGV4ID0gdG9rZW5zLmZpbmRJbmRleCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd9JykpXG4gIC8vIFNsaWNlIGF3YXkgdGhlIGZpcnN0IHRva2VuLCBzaW5jZSB3ZSdyZSBubyBsb29raW5nIGZvciBjb21tZW50cyBfYmVmb3JlX1xuICAvLyBgbm9kZWAgKG9ubHkgaW5zaWRlKS4gSWYgdGhlcmUncyBhIGB7Li4ufWAgcGFydCwgbG9vayBmb3IgY29tbWVudHMgYmVmb3JlXG4gIC8vIHRoZSBge2AsIGJ1dCBub3QgYmVmb3JlIHRoZSBgfWAgKGhlbmNlIHRoZSBgKzFgcykuXG4gIGNvbnN0IHNvbWVUb2tlbnMgPSBvcGVuQnJhY2VJbmRleCA+PSAwICYmIGNsb3NlQnJhY2VJbmRleCA+PSAwXG4gICAgPyB0b2tlbnMuc2xpY2UoMSwgb3BlbkJyYWNlSW5kZXggKyAxKS5jb25jYXQodG9rZW5zLnNsaWNlKGNsb3NlQnJhY2VJbmRleCArIDEpKVxuICAgIDogdG9rZW5zLnNsaWNlKDEpXG4gIHJldHVybiBzb21lVG9rZW5zLnNvbWUodG9rZW4gPT4gc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZSh0b2tlbikubGVuZ3RoID4gMClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kdXBsaWNhdGVzJyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgY29uc2lkZXJRdWVyeVN0cmluZzoge1xuICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgLy8gUHJlcGFyZSB0aGUgcmVzb2x2ZXIgZnJvbSBvcHRpb25zLlxuICAgIGNvbnN0IGNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24gPSBjb250ZXh0Lm9wdGlvbnNbMF0gJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc1swXVsnY29uc2lkZXJRdWVyeVN0cmluZyddXG4gICAgY29uc3QgZGVmYXVsdFJlc29sdmVyID0gc291cmNlUGF0aCA9PiByZXNvbHZlKHNvdXJjZVBhdGgsIGNvbnRleHQpIHx8IHNvdXJjZVBhdGhcbiAgICBjb25zdCByZXNvbHZlciA9IGNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24gPyAoc291cmNlUGF0aCA9PiB7XG4gICAgICBjb25zdCBwYXJ0cyA9IHNvdXJjZVBhdGgubWF0Y2goL14oW14/XSopXFw/KC4qKSQvKVxuICAgICAgaWYgKCFwYXJ0cykge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFJlc29sdmVyKHNvdXJjZVBhdGgpXG4gICAgICB9XG4gICAgICByZXR1cm4gZGVmYXVsdFJlc29sdmVyKHBhcnRzWzFdKSArICc/JyArIHBhcnRzWzJdXG4gICAgfSkgOiBkZWZhdWx0UmVzb2x2ZXJcblxuICAgIGNvbnN0IGltcG9ydGVkID0gbmV3IE1hcCgpXG4gICAgY29uc3QgbnNJbXBvcnRlZCA9IG5ldyBNYXAoKVxuICAgIGNvbnN0IHR5cGVzSW1wb3J0ZWQgPSBuZXcgTWFwKClcbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgLy8gcmVzb2x2ZWQgcGF0aCB3aWxsIGNvdmVyIGFsaWFzZWQgZHVwbGljYXRlc1xuICAgICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlcihuLnNvdXJjZS52YWx1ZSlcbiAgICAgICAgY29uc3QgaW1wb3J0TWFwID0gbi5pbXBvcnRLaW5kID09PSAndHlwZScgPyB0eXBlc0ltcG9ydGVkIDpcbiAgICAgICAgICAoaGFzTmFtZXNwYWNlKG4pID8gbnNJbXBvcnRlZCA6IGltcG9ydGVkKVxuXG4gICAgICAgIGlmIChpbXBvcnRNYXAuaGFzKHJlc29sdmVkUGF0aCkpIHtcbiAgICAgICAgICBpbXBvcnRNYXAuZ2V0KHJlc29sdmVkUGF0aCkucHVzaChuKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGltcG9ydE1hcC5zZXQocmVzb2x2ZWRQYXRoLCBbbl0pXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dClcbiAgICAgICAgY2hlY2tJbXBvcnRzKG5zSW1wb3J0ZWQsIGNvbnRleHQpXG4gICAgICAgIGNoZWNrSW1wb3J0cyh0eXBlc0ltcG9ydGVkLCBjb250ZXh0KVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kdXBsaWNhdGVzLmpzIl0sIm5hbWVzIjpbImNoZWNrSW1wb3J0cyIsImltcG9ydGVkIiwiY29udGV4dCIsImVudHJpZXMiLCJtb2R1bGUiLCJub2RlcyIsImxlbmd0aCIsIm1lc3NhZ2UiLCJmaXJzdCIsInJlc3QiLCJzb3VyY2VDb2RlIiwiZ2V0U291cmNlQ29kZSIsImZpeCIsImdldEZpeCIsInJlcG9ydCIsIm5vZGUiLCJzb3VyY2UiLCJnZXRDb21tZW50c0JlZm9yZSIsInVuZGVmaW5lZCIsImhhc1Byb2JsZW1hdGljQ29tbWVudHMiLCJoYXNOYW1lc3BhY2UiLCJkZWZhdWx0SW1wb3J0TmFtZXMiLCJTZXQiLCJtYXAiLCJnZXREZWZhdWx0SW1wb3J0TmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJzaXplIiwicmVzdFdpdGhvdXRDb21tZW50cyIsInNwZWNpZmllcnMiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJvcGVuQnJhY2UiLCJmaW5kIiwidG9rZW4iLCJpc1B1bmN0dWF0b3IiLCJjbG9zZUJyYWNlIiwiaW1wb3J0Tm9kZSIsInRleHQiLCJzbGljZSIsInJhbmdlIiwiaGFzVHJhaWxpbmdDb21tYSIsImdldFRva2VuQmVmb3JlIiwiaXNFbXB0eSIsImhhc1NwZWNpZmllcnMiLCJ1bm5lY2Vzc2FyeUltcG9ydHMiLCJzb21lIiwic3BlY2lmaWVyIiwic2hvdWxkQWRkRGVmYXVsdCIsInNob3VsZEFkZFNwZWNpZmllcnMiLCJzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSIsImZpeGVyIiwiZmlyc3RUb2tlbiIsImdldEZpcnN0VG9rZW4iLCJkZWZhdWx0SW1wb3J0TmFtZSIsImZpcnN0SGFzVHJhaWxpbmdDb21tYSIsImZpcnN0SXNFbXB0eSIsInJlZHVjZSIsInJlc3VsdCIsIm5lZWRzQ29tbWEiLCJzcGVjaWZpZXJzVGV4dCIsImZpeGVzIiwicHVzaCIsImluc2VydFRleHRBZnRlciIsImluc2VydFRleHRCZWZvcmUiLCJyZW1vdmUiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwibG9jYWwiLCJuYW1lIiwiaGFzQ29tbWVudEJlZm9yZSIsImhhc0NvbW1lbnRBZnRlciIsImhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzIiwiY29tbWVudCIsImxvYyIsImVuZCIsImxpbmUiLCJzdGFydCIsImdldENvbW1lbnRzQWZ0ZXIiLCJvcGVuQnJhY2VJbmRleCIsImZpbmRJbmRleCIsImNsb3NlQnJhY2VJbmRleCIsInNvbWVUb2tlbnMiLCJjb25jYXQiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwicHJvcGVydGllcyIsImNvbnNpZGVyUXVlcnlTdHJpbmciLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImNyZWF0ZSIsImNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24iLCJvcHRpb25zIiwiZGVmYXVsdFJlc29sdmVyIiwic291cmNlUGF0aCIsInJlc29sdmVyIiwicGFydHMiLCJtYXRjaCIsIk1hcCIsIm5zSW1wb3J0ZWQiLCJ0eXBlc0ltcG9ydGVkIiwibiIsInJlc29sdmVkUGF0aCIsImltcG9ydE1hcCIsImltcG9ydEtpbmQiLCJoYXMiLCJnZXQiLCJzZXQiXSwibWFwcGluZ3MiOiJxb0JBQUEsc0Q7QUFDQSxxQzs7QUFFQSxTQUFTQSxZQUFULENBQXNCQyxRQUF0QixFQUFnQ0MsT0FBaEMsRUFBeUM7QUFDdkMscUJBQThCRCxTQUFTRSxPQUFULEVBQTlCLEVBQWtELDJDQUF0Q0MsTUFBc0Msa0JBQTlCQyxLQUE4QjtBQUNoRCxRQUFJQSxNQUFNQyxNQUFOLEdBQWUsQ0FBbkIsRUFBc0I7QUFDcEIsWUFBTUMsVUFBVyxJQUFHSCxNQUFPLDRCQUEzQixDQURvQjtBQUVLQyxXQUZMLFFBRWJHLEtBRmEsYUFFSEMsSUFGRztBQUdwQixZQUFNQyxhQUFhUixRQUFRUyxhQUFSLEVBQW5CO0FBQ0EsWUFBTUMsTUFBTUMsT0FBT0wsS0FBUCxFQUFjQyxJQUFkLEVBQW9C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c29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuZnVuY3Rpb24gY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KSB7XG4gIGZvciAoY29uc3QgW21vZHVsZSwgbm9kZXNdIG9mIGltcG9ydGVkLmVudHJpZXMoKSkge1xuICAgIGlmIChub2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYCcke21vZHVsZX0nIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzLmBcbiAgICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBub2Rlc1xuICAgICAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gICAgICBjb25zdCBmaXggPSBnZXRGaXgoZmlyc3QsIHJlc3QsIHNvdXJjZUNvZGUpXG5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZTogZmlyc3Quc291cmNlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBmaXgsIC8vIEF0dGFjaCB0aGUgYXV0b2ZpeCAoaWYgYW55KSB0byB0aGUgZmlyc3QgaW1wb3J0LlxuICAgICAgfSlcblxuICAgICAgZm9yIChjb25zdCBub2RlIG9mIHJlc3QpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IG5vZGUuc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZpeChmaXJzdCwgcmVzdCwgc291cmNlQ29kZSkge1xuICAvLyBTb3JyeSBFU0xpbnQgPD0gMyB1c2Vycywgbm8gYXV0b2ZpeCBmb3IgeW91LiBBdXRvZml4aW5nIGR1cGxpY2F0ZSBpbXBvcnRzXG4gIC8vIHJlcXVpcmVzIG11bHRpcGxlIGBmaXhlci53aGF0ZXZlcigpYCBjYWxscyBpbiB0aGUgYGZpeGA6IFdlIGJvdGggbmVlZCB0b1xuICAvLyB1cGRhdGUgdGhlIGZpcnN0IG9uZSwgYW5kIHJlbW92ZSB0aGUgcmVzdC4gU3VwcG9ydCBmb3IgbXVsdGlwbGVcbiAgLy8gYGZpeGVyLndoYXRldmVyKClgIGluIGEgc2luZ2xlIGBmaXhgIHdhcyBhZGRlZCBpbiBFU0xpbnQgNC4xLlxuICAvLyBgc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZWAgd2FzIGFkZGVkIGluIDQuMCwgc28gdGhhdCdzIGFuIGVhc3kgdGhpbmcgdG9cbiAgLy8gY2hlY2sgZm9yLlxuICBpZiAodHlwZW9mIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICAvLyBBZGp1c3RpbmcgdGhlIGZpcnN0IGltcG9ydCBtaWdodCBtYWtlIGl0IG11bHRpbGluZSwgd2hpY2ggY291bGQgYnJlYWtcbiAgLy8gYGVzbGludC1kaXNhYmxlLW5leHQtbGluZWAgY29tbWVudHMgYW5kIHNpbWlsYXIsIHNvIGJhaWwgaWYgdGhlIGZpcnN0XG4gIC8vIGltcG9ydCBoYXMgY29tbWVudHMuIEFsc28sIGlmIHRoZSBmaXJzdCBpbXBvcnQgaXMgYGltcG9ydCAqIGFzIG5zIGZyb21cbiAgLy8gJy4vZm9vJ2AgdGhlcmUncyBub3RoaW5nIHdlIGNhbiBkby5cbiAgaWYgKGhhc1Byb2JsZW1hdGljQ29tbWVudHMoZmlyc3QsIHNvdXJjZUNvZGUpIHx8IGhhc05hbWVzcGFjZShmaXJzdCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCBkZWZhdWx0SW1wb3J0TmFtZXMgPSBuZXcgU2V0KFxuICAgIFtmaXJzdCwgLi4ucmVzdF0ubWFwKGdldERlZmF1bHRJbXBvcnROYW1lKS5maWx0ZXIoQm9vbGVhbilcbiAgKVxuXG4gIC8vIEJhaWwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGRpZmZlcmVudCBkZWZhdWx0IGltcG9ydCBuYW1lcyDigJMgaXQncyB1cCB0byB0aGVcbiAgLy8gdXNlciB0byBjaG9vc2Ugd2hpY2ggb25lIHRvIGtlZXAuXG4gIGlmIChkZWZhdWx0SW1wb3J0TmFtZXMuc2l6ZSA+IDEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICAvLyBMZWF2ZSBpdCB0byB0aGUgdXNlciB0byBoYW5kbGUgY29tbWVudHMuIEFsc28gc2tpcCBgaW1wb3J0ICogYXMgbnMgZnJvbVxuICAvLyAnLi9mb28nYCBpbXBvcnRzLCBzaW5jZSB0aGV5IGNhbm5vdCBiZSBtZXJnZWQgaW50byBhbm90aGVyIGltcG9ydC5cbiAgY29uc3QgcmVzdFdpdGhvdXRDb21tZW50cyA9IHJlc3QuZmlsdGVyKG5vZGUgPT4gIShcbiAgICBoYXNQcm9ibGVtYXRpY0NvbW1lbnRzKG5vZGUsIHNvdXJjZUNvZGUpIHx8XG4gICAgaGFzTmFtZXNwYWNlKG5vZGUpXG4gICkpXG5cbiAgY29uc3Qgc3BlY2lmaWVycyA9IHJlc3RXaXRob3V0Q29tbWVudHNcbiAgICAubWFwKG5vZGUgPT4ge1xuICAgICAgY29uc3QgdG9rZW5zID0gc291cmNlQ29kZS5nZXRUb2tlbnMobm9kZSlcbiAgICAgIGNvbnN0IG9wZW5CcmFjZSA9IHRva2Vucy5maW5kKHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ3snKSlcbiAgICAgIGNvbnN0IGNsb3NlQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd9JykpXG5cbiAgICAgIGlmIChvcGVuQnJhY2UgPT0gbnVsbCB8fCBjbG9zZUJyYWNlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnROb2RlOiBub2RlLFxuICAgICAgICB0ZXh0OiBzb3VyY2VDb2RlLnRleHQuc2xpY2Uob3BlbkJyYWNlLnJhbmdlWzFdLCBjbG9zZUJyYWNlLnJhbmdlWzBdKSxcbiAgICAgICAgaGFzVHJhaWxpbmdDb21tYTogaXNQdW5jdHVhdG9yKHNvdXJjZUNvZGUuZ2V0VG9rZW5CZWZvcmUoY2xvc2VCcmFjZSksICcsJyksXG4gICAgICAgIGlzRW1wdHk6ICFoYXNTcGVjaWZpZXJzKG5vZGUpLFxuICAgICAgfVxuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuXG4gIGNvbnN0IHVubmVjZXNzYXJ5SW1wb3J0cyA9IHJlc3RXaXRob3V0Q29tbWVudHMuZmlsdGVyKG5vZGUgPT5cbiAgICAhaGFzU3BlY2lmaWVycyhub2RlKSAmJlxuICAgICFoYXNOYW1lc3BhY2Uobm9kZSkgJiZcbiAgICAhc3BlY2lmaWVycy5zb21lKHNwZWNpZmllciA9PiBzcGVjaWZpZXIuaW1wb3J0Tm9kZSA9PT0gbm9kZSlcbiAgKVxuXG4gIGNvbnN0IHNob3VsZEFkZERlZmF1bHQgPSBnZXREZWZhdWx0SW1wb3J0TmFtZShmaXJzdCkgPT0gbnVsbCAmJiBkZWZhdWx0SW1wb3J0TmFtZXMuc2l6ZSA9PT0gMVxuICBjb25zdCBzaG91bGRBZGRTcGVjaWZpZXJzID0gc3BlY2lmaWVycy5sZW5ndGggPiAwXG4gIGNvbnN0IHNob3VsZFJlbW92ZVVubmVjZXNzYXJ5ID0gdW5uZWNlc3NhcnlJbXBvcnRzLmxlbmd0aCA+IDBcblxuICBpZiAoIShzaG91bGRBZGREZWZhdWx0IHx8IHNob3VsZEFkZFNwZWNpZmllcnMgfHwgc2hvdWxkUmVtb3ZlVW5uZWNlc3NhcnkpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcmV0dXJuIGZpeGVyID0+IHtcbiAgICBjb25zdCB0b2tlbnMgPSBzb3VyY2VDb2RlLmdldFRva2VucyhmaXJzdClcbiAgICBjb25zdCBvcGVuQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd7JykpXG4gICAgY29uc3QgY2xvc2VCcmFjZSA9IHRva2Vucy5maW5kKHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ30nKSlcbiAgICBjb25zdCBmaXJzdFRva2VuID0gc291cmNlQ29kZS5nZXRGaXJzdFRva2VuKGZpcnN0KVxuICAgIGNvbnN0IFtkZWZhdWx0SW1wb3J0TmFtZV0gPSBkZWZhdWx0SW1wb3J0TmFtZXNcblxuICAgIGNvbnN0IGZpcnN0SGFzVHJhaWxpbmdDb21tYSA9XG4gICAgICBjbG9zZUJyYWNlICE9IG51bGwgJiZcbiAgICAgIGlzUHVuY3R1YXRvcihzb3VyY2VDb2RlLmdldFRva2VuQmVmb3JlKGNsb3NlQnJhY2UpLCAnLCcpXG4gICAgY29uc3QgZmlyc3RJc0VtcHR5ID0gIWhhc1NwZWNpZmllcnMoZmlyc3QpXG5cbiAgICBjb25zdCBbc3BlY2lmaWVyc1RleHRdID0gc3BlY2lmaWVycy5yZWR1Y2UoXG4gICAgICAoW3Jlc3VsdCwgbmVlZHNDb21tYV0sIHNwZWNpZmllcikgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIG5lZWRzQ29tbWEgJiYgIXNwZWNpZmllci5pc0VtcHR5XG4gICAgICAgICAgICA/IGAke3Jlc3VsdH0sJHtzcGVjaWZpZXIudGV4dH1gXG4gICAgICAgICAgICA6IGAke3Jlc3VsdH0ke3NwZWNpZmllci50ZXh0fWAsXG4gICAgICAgICAgc3BlY2lmaWVyLmlzRW1wdHkgPyBuZWVkc0NvbW1hIDogdHJ1ZSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFsnJywgIWZpcnN0SGFzVHJhaWxpbmdDb21tYSAmJiAhZmlyc3RJc0VtcHR5XVxuICAgIClcblxuICAgIGNvbnN0IGZpeGVzID0gW11cblxuICAgIGlmIChzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSA9PSBudWxsICYmIHNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmLCB7Li4ufSBmcm9tICcuL2ZvbydgXG4gICAgICBmaXhlcy5wdXNoKFxuICAgICAgICBmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3RUb2tlbiwgYCAke2RlZmF1bHRJbXBvcnROYW1lfSwgeyR7c3BlY2lmaWVyc1RleHR9fSBmcm9tYClcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlID09IG51bGwgJiYgIXNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmIGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0gZnJvbWApKVxuICAgIH0gZWxzZSBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgIT0gbnVsbCAmJiBjbG9zZUJyYWNlICE9IG51bGwpIHtcbiAgICAgIC8vIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0sYCkpXG4gICAgICBpZiAoc2hvdWxkQWRkU3BlY2lmaWVycykge1xuICAgICAgICAvLyBgaW1wb3J0IGRlZiwgey4uLn0gZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi4sIC4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRCZWZvcmUoY2xvc2VCcmFjZSwgc3BlY2lmaWVyc1RleHQpKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlID09IG51bGwgJiYgc2hvdWxkQWRkU3BlY2lmaWVycykge1xuICAgICAgaWYgKGZpcnN0LnNwZWNpZmllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRBZnRlcihmaXJzdFRva2VuLCBgIHske3NwZWNpZmllcnNUZXh0fX0gZnJvbWApKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYGltcG9ydCBkZWYgZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3Quc3BlY2lmaWVyc1swXSwgYCwgeyR7c3BlY2lmaWVyc1RleHR9fWApKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlICE9IG51bGwgJiYgY2xvc2VCcmFjZSAhPSBudWxsKSB7XG4gICAgICAvLyBgaW1wb3J0IHsuLi59ICcuL2ZvbydgIOKGkiBgaW1wb3J0IHsuLi4sIC4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QmVmb3JlKGNsb3NlQnJhY2UsIHNwZWNpZmllcnNUZXh0KSlcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgaW1wb3J0cyB3aG9zZSBzcGVjaWZpZXJzIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIHRoZSBmaXJzdCBpbXBvcnQuXG4gICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2Ygc3BlY2lmaWVycykge1xuICAgICAgZml4ZXMucHVzaChmaXhlci5yZW1vdmUoc3BlY2lmaWVyLmltcG9ydE5vZGUpKVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBpbXBvcnRzIHdob3NlIGRlZmF1bHQgaW1wb3J0IGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBmaXJzdCBpbXBvcnQsXG4gICAgLy8gYW5kIHNpZGUtZWZmZWN0LW9ubHkgaW1wb3J0cyB0aGF0IGFyZSB1bm5lY2Vzc2FyeSBkdWUgdG8gdGhlIGZpcnN0XG4gICAgLy8gaW1wb3J0LlxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB1bm5lY2Vzc2FyeUltcG9ydHMpIHtcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVtb3ZlKG5vZGUpKVxuICAgIH1cblxuICAgIHJldHVybiBmaXhlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzUHVuY3R1YXRvcihub2RlLCB2YWx1ZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnUHVuY3R1YXRvcicgJiYgbm9kZS52YWx1ZSA9PT0gdmFsdWVcbn1cblxuLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBkZWZhdWx0IGltcG9ydCBvZiBgbm9kZWAsIGlmIGFueS5cbmZ1bmN0aW9uIGdldERlZmF1bHRJbXBvcnROYW1lKG5vZGUpIHtcbiAgY29uc3QgZGVmYXVsdFNwZWNpZmllciA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maW5kKHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInKVxuICByZXR1cm4gZGVmYXVsdFNwZWNpZmllciAhPSBudWxsID8gZGVmYXVsdFNwZWNpZmllci5sb2NhbC5uYW1lIDogdW5kZWZpbmVkXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYSBuYW1lc3BhY2UgaW1wb3J0LlxuZnVuY3Rpb24gaGFzTmFtZXNwYWNlKG5vZGUpIHtcbiAgY29uc3Qgc3BlY2lmaWVycyA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maWx0ZXIoc3BlY2lmaWVyID0+IHNwZWNpZmllci50eXBlID09PSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJylcbiAgcmV0dXJuIHNwZWNpZmllcnMubGVuZ3RoID4gMFxufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGFueSBub24tZGVmYXVsdCBzcGVjaWZpZXJzLlxuZnVuY3Rpb24gaGFzU3BlY2lmaWVycyhub2RlKSB7XG4gIGNvbnN0IHNwZWNpZmllcnMgPSBub2RlLnNwZWNpZmllcnNcbiAgICAuZmlsdGVyKHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gJ0ltcG9ydFNwZWNpZmllcicpXG4gIHJldHVybiBzcGVjaWZpZXJzLmxlbmd0aCA+IDBcbn1cblxuLy8gSXQncyBub3Qgb2J2aW91cyB3aGF0IHRoZSB1c2VyIHdhbnRzIHRvIGRvIHdpdGggY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoXG4vLyBkdXBsaWNhdGUgaW1wb3J0cywgc28gc2tpcCBpbXBvcnRzIHdpdGggY29tbWVudHMgd2hlbiBhdXRvZml4aW5nLlxuZnVuY3Rpb24gaGFzUHJvYmxlbWF0aWNDb21tZW50cyhub2RlLCBzb3VyY2VDb2RlKSB7XG4gIHJldHVybiAoXG4gICAgaGFzQ29tbWVudEJlZm9yZShub2RlLCBzb3VyY2VDb2RlKSB8fFxuICAgIGhhc0NvbW1lbnRBZnRlcihub2RlLCBzb3VyY2VDb2RlKSB8fFxuICAgIGhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzKG5vZGUsIHNvdXJjZUNvZGUpXG4gIClcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhIGNvbW1lbnQgKHRoYXQgZW5kcykgb24gdGhlIHByZXZpb3VzIGxpbmUgb3Igb25cbi8vIHRoZSBzYW1lIGxpbmUgYXMgYG5vZGVgIChzdGFydHMpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEJlZm9yZShub2RlLCBzb3VyY2VDb2RlKSB7XG4gIHJldHVybiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlKG5vZGUpXG4gICAgLnNvbWUoY29tbWVudCA9PiBjb21tZW50LmxvYy5lbmQubGluZSA+PSBub2RlLmxvYy5zdGFydC5saW5lIC0gMSlcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhIGNvbW1lbnQgKHRoYXQgc3RhcnRzKSBvbiB0aGUgc2FtZSBsaW5lIGFzIGBub2RlYFxuLy8gKGVuZHMpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEFmdGVyKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgcmV0dXJuIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNBZnRlcihub2RlKVxuICAgIC5zb21lKGNvbW1lbnQgPT4gY29tbWVudC5sb2Muc3RhcnQubGluZSA9PT0gbm9kZS5sb2MuZW5kLmxpbmUpXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYW55IGNvbW1lbnRzIF9pbnNpZGUsXyBleGNlcHQgaW5zaWRlIHRoZSBgey4uLn1gXG4vLyBwYXJ0IChpZiBhbnkpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEluc2lkZU5vblNwZWNpZmllcnMobm9kZSwgc291cmNlQ29kZSkge1xuICBjb25zdCB0b2tlbnMgPSBzb3VyY2VDb2RlLmdldFRva2Vucyhub2RlKVxuICBjb25zdCBvcGVuQnJhY2VJbmRleCA9IHRva2Vucy5maW5kSW5kZXgodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAneycpKVxuICBjb25zdCBjbG9zZUJyYWNlSW5kZXggPSB0b2tlbnMuZmluZEluZGV4KHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ30nKSlcbiAgLy8gU2xpY2UgYXdheSB0aGUgZmlyc3QgdG9rZW4sIHNpbmNlIHdlJ3JlIG5vIGxvb2tpbmcgZm9yIGNvbW1lbnRzIF9iZWZvcmVfXG4gIC8vIGBub2RlYCAob25seSBpbnNpZGUpLiBJZiB0aGVyZSdzIGEgYHsuLi59YCBwYXJ0LCBsb29rIGZvciBjb21tZW50cyBiZWZvcmVcbiAgLy8gdGhlIGB7YCwgYnV0IG5vdCBiZWZvcmUgdGhlIGB9YCAoaGVuY2UgdGhlIGArMWBzKS5cbiAgY29uc3Qgc29tZVRva2VucyA9IG9wZW5CcmFjZUluZGV4ID49IDAgJiYgY2xvc2VCcmFjZUluZGV4ID49IDBcbiAgICA/IHRva2Vucy5zbGljZSgxLCBvcGVuQnJhY2VJbmRleCArIDEpLmNvbmNhdCh0b2tlbnMuc2xpY2UoY2xvc2VCcmFjZUluZGV4ICsgMSkpXG4gICAgOiB0b2tlbnMuc2xpY2UoMSlcbiAgcmV0dXJuIHNvbWVUb2tlbnMuc29tZSh0b2tlbiA9PiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlKHRva2VuKS5sZW5ndGggPiAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWR1cGxpY2F0ZXMnKSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjb25zaWRlclF1ZXJ5U3RyaW5nOiB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBQcmVwYXJlIHRoZSByZXNvbHZlciBmcm9tIG9wdGlvbnMuXG4gICAgY29uc3QgY29uc2lkZXJRdWVyeVN0cmluZ09wdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSAmJlxuICAgICAgY29udGV4dC5vcHRpb25zWzBdWydjb25zaWRlclF1ZXJ5U3RyaW5nJ11cbiAgICBjb25zdCBkZWZhdWx0UmVzb2x2ZXIgPSBzb3VyY2VQYXRoID0+IHJlc29sdmUoc291cmNlUGF0aCwgY29udGV4dCkgfHwgc291cmNlUGF0aFxuICAgIGNvbnN0IHJlc29sdmVyID0gY29uc2lkZXJRdWVyeVN0cmluZ09wdGlvbiA/IChzb3VyY2VQYXRoID0+IHtcbiAgICAgIGNvbnN0IHBhcnRzID0gc291cmNlUGF0aC5tYXRjaCgvXihbXj9dKilcXD8oLiopJC8pXG4gICAgICBpZiAoIXBhcnRzKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0UmVzb2x2ZXIoc291cmNlUGF0aClcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWZhdWx0UmVzb2x2ZXIocGFydHNbMV0pICsgJz8nICsgcGFydHNbMl1cbiAgICB9KSA6IGRlZmF1bHRSZXNvbHZlclxuXG4gICAgY29uc3QgaW1wb3J0ZWQgPSBuZXcgTWFwKClcbiAgICBjb25zdCBuc0ltcG9ydGVkID0gbmV3IE1hcCgpXG4gICAgY29uc3QgdHlwZXNJbXBvcnRlZCA9IG5ldyBNYXAoKVxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobikge1xuICAgICAgICAvLyByZXNvbHZlZCBwYXRoIHdpbGwgY292ZXIgYWxpYXNlZCBkdXBsaWNhdGVzXG4gICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmVyKG4uc291cmNlLnZhbHVlKVxuICAgICAgICBjb25zdCBpbXBvcnRNYXAgPSBuLmltcG9ydEtpbmQgPT09ICd0eXBlJyA/IHR5cGVzSW1wb3J0ZWQgOlxuICAgICAgICAgIChoYXNOYW1lc3BhY2UobikgPyBuc0ltcG9ydGVkIDogaW1wb3J0ZWQpXG5cbiAgICAgICAgaWYgKGltcG9ydE1hcC5oYXMocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgIGltcG9ydE1hcC5nZXQocmVzb2x2ZWRQYXRoKS5wdXNoKG4pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW1wb3J0TWFwLnNldChyZXNvbHZlZFBhdGgsIFtuXSlcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KVxuICAgICAgICBjaGVja0ltcG9ydHMobnNJbXBvcnRlZCwgY29udGV4dClcbiAgICAgICAgY2hlY2tJbXBvcnRzKHR5cGVzSW1wb3J0ZWQsIGNvbnRleHQpXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js b/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js
index c981ee2..e63b3db 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js
@@ -1,27 +1,26 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function isRequire(node) {
-  return node && node.callee && node.callee.type === 'Identifier' && node.callee.name === 'require' && node.arguments.length >= 1;
+  return node &&
+  node.callee &&
+  node.callee.type === 'Identifier' &&
+  node.callee.name === 'require' &&
+  node.arguments.length >= 1;
 }
 
 function isStaticValue(arg) {
-  return arg.type === 'Literal' || arg.type === 'TemplateLiteral' && arg.expressions.length === 0;
+  return arg.type === 'Literal' ||
+  arg.type === 'TemplateLiteral' && arg.expressions.length === 0;
 }
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-dynamic-require')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-dynamic-require') },
+
+    schema: [] },
+
 
   create: function (context) {
     return {
@@ -29,11 +28,10 @@
         if (isRequire(node) && !isStaticValue(node.arguments[0])) {
           context.report({
             node,
-            message: 'Calls to require() should use string literals'
-          });
+            message: 'Calls to require() should use string literals' });
+
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1keW5hbWljLXJlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiaXNTdGF0aWNWYWx1ZSIsImFyZyIsImV4cHJlc3Npb25zIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIkNhbGxFeHByZXNzaW9uIiwicmVwb3J0IiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsU0FBT0EsUUFDTEEsS0FBS0MsTUFEQSxJQUVMRCxLQUFLQyxNQUFMLENBQVlDLElBQVosS0FBcUIsWUFGaEIsSUFHTEYsS0FBS0MsTUFBTCxDQUFZRSxJQUFaLEtBQXFCLFNBSGhCLElBSUxILEtBQUtJLFNBQUwsQ0FBZUMsTUFBZixJQUF5QixDQUozQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCO0FBQzFCLFNBQU9BLElBQUlMLElBQUosS0FBYSxTQUFiLElBQ0pLLElBQUlMLElBQUosS0FBYSxpQkFBYixJQUFrQ0ssSUFBSUMsV0FBSixDQUFnQkgsTUFBaEIsS0FBMkIsQ0FEaEU7QUFFRDs7QUFFREksT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pULFVBQU0sWUFERjtBQUVKVSxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVI7QUFERCxLQUZGO0FBS0pDLFlBQVE7QUFMSixHQURTOztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsV0FBTztBQUNMQyxxQkFBZWpCLElBQWYsRUFBcUI7QUFDbkIsWUFBSUQsVUFBVUMsSUFBVixLQUFtQixDQUFDTSxjQUFjTixLQUFLSSxTQUFMLENBQWUsQ0FBZixDQUFkLENBQXhCLEVBQTBEO0FBQ3hEWSxrQkFBUUUsTUFBUixDQUFlO0FBQ2JsQixnQkFEYTtBQUVibUIscUJBQVM7QUFGSSxXQUFmO0FBSUQ7QUFDRjtBQVJJLEtBQVA7QUFVRDtBQXBCYyxDQUFqQiIsImZpbGUiOiJuby1keW5hbWljLXJlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiBpc1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID49IDFcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNWYWx1ZShhcmcpIHtcbiAgcmV0dXJuIGFyZy50eXBlID09PSAnTGl0ZXJhbCcgfHxcbiAgICAoYXJnLnR5cGUgPT09ICdUZW1wbGF0ZUxpdGVyYWwnICYmIGFyZy5leHByZXNzaW9ucy5sZW5ndGggPT09IDApXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tZHluYW1pYy1yZXF1aXJlJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoaXNSZXF1aXJlKG5vZGUpICYmICFpc1N0YXRpY1ZhbHVlKG5vZGUuYXJndW1lbnRzWzBdKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQ2FsbHMgdG8gcmVxdWlyZSgpIHNob3VsZCB1c2Ugc3RyaW5nIGxpdGVyYWxzJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1keW5hbWljLXJlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiaXNTdGF0aWNWYWx1ZSIsImFyZyIsImV4cHJlc3Npb25zIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIkNhbGxFeHByZXNzaW9uIiwicmVwb3J0IiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6ImFBQUEscUM7O0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsU0FBT0E7QUFDTEEsT0FBS0MsTUFEQTtBQUVMRCxPQUFLQyxNQUFMLENBQVlDLElBQVosS0FBcUIsWUFGaEI7QUFHTEYsT0FBS0MsTUFBTCxDQUFZRSxJQUFaLEtBQXFCLFNBSGhCO0FBSUxILE9BQUtJLFNBQUwsQ0FBZUMsTUFBZixJQUF5QixDQUozQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCO0FBQzFCLFNBQU9BLElBQUlMLElBQUosS0FBYSxTQUFiO0FBQ0pLLE1BQUlMLElBQUosS0FBYSxpQkFBYixJQUFrQ0ssSUFBSUMsV0FBSixDQUFnQkgsTUFBaEIsS0FBMkIsQ0FEaEU7QUFFRDs7QUFFREksT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pULFVBQU0sWUFERjtBQUVKVSxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xDLHFCQUFlakIsSUFBZixFQUFxQjtBQUNuQixZQUFJRCxVQUFVQyxJQUFWLEtBQW1CLENBQUNNLGNBQWNOLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLENBQWQsQ0FBeEIsRUFBMEQ7QUFDeERZLGtCQUFRRSxNQUFSLENBQWU7QUFDYmxCLGdCQURhO0FBRWJtQixxQkFBUywrQ0FGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOztBQVVELEdBcEJjLEVBQWpCIiwiZmlsZSI6Im5vLWR5bmFtaWMtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzUmVxdWlyZShub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgbm9kZS5jYWxsZWUgJiZcbiAgICBub2RlLmNhbGxlZS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICBub2RlLmNhbGxlZS5uYW1lID09PSAncmVxdWlyZScgJiZcbiAgICBub2RlLmFyZ3VtZW50cy5sZW5ndGggPj0gMVxufVxuXG5mdW5jdGlvbiBpc1N0YXRpY1ZhbHVlKGFyZykge1xuICByZXR1cm4gYXJnLnR5cGUgPT09ICdMaXRlcmFsJyB8fFxuICAgIChhcmcudHlwZSA9PT0gJ1RlbXBsYXRlTGl0ZXJhbCcgJiYgYXJnLmV4cHJlc3Npb25zLmxlbmd0aCA9PT0gMClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1keW5hbWljLXJlcXVpcmUnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmUobm9kZSkgJiYgIWlzU3RhdGljVmFsdWUobm9kZS5hcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDYWxscyB0byByZXF1aXJlKCkgc2hvdWxkIHVzZSBzdHJpbmcgbGl0ZXJhbHMnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js b/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js
index 91499e3..b8d8918 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js
@@ -1,42 +1,13 @@
-'use strict';
+'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path);
+var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs);
+var _readPkgUp = require('read-pkg-up');var _readPkgUp2 = _interopRequireDefault(_readPkgUp);
+var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch);
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
+var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _fs = require('fs');
-
-var _fs2 = _interopRequireDefault(_fs);
-
-var _readPkgUp = require('read-pkg-up');
-
-var _readPkgUp2 = _interopRequireDefault(_readPkgUp);
-
-var _minimatch = require('minimatch');
-
-var _minimatch2 = _interopRequireDefault(_minimatch);
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function hasKeys() {
-  let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
+function hasKeys() {let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
   return Object.keys(obj).length > 0;
 }
 
@@ -52,8 +23,8 @@
     peerDependencies: pkg.peerDependencies || {},
     // BundledDeps should be in the form of an array, but object notation is also supported by
     // `npm`, so we convert it to an array if it is an object
-    bundledDependencies: arrayOrKeys(pkg.bundleDependencies || pkg.bundledDependencies || [])
-  };
+    bundledDependencies: arrayOrKeys(pkg.bundleDependencies || pkg.bundledDependencies || []) };
+
 }
 
 function getDependencies(context, packageDir) {
@@ -64,8 +35,8 @@
       devDependencies: {},
       optionalDependencies: {},
       peerDependencies: {},
-      bundledDependencies: []
-    };
+      bundledDependencies: [] };
+
 
     if (packageDir && packageDir.length > 0) {
       if (!Array.isArray(packageDir)) {
@@ -78,15 +49,30 @@
     if (paths.length > 0) {
       // use rule config to find package.json
       paths.forEach(dir => {
-        const _packageContent = extractDepFields(JSON.parse(_fs2.default.readFileSync(_path2.default.join(dir, 'package.json'), 'utf8')));
-        Object.keys(packageContent).forEach(depsKey => Object.assign(packageContent[depsKey], _packageContent[depsKey]));
+        const _packageContent = extractDepFields(
+        JSON.parse(_fs2.default.readFileSync(_path2.default.join(dir, 'package.json'), 'utf8')));
+
+        Object.keys(packageContent).forEach(depsKey =>
+        Object.assign(packageContent[depsKey], _packageContent[depsKey]));
+
       });
     } else {
       // use closest package.json
-      Object.assign(packageContent, extractDepFields(_readPkgUp2.default.sync({ cwd: context.getFilename(), normalize: false }).pkg));
+      Object.assign(
+      packageContent,
+      extractDepFields(
+      _readPkgUp2.default.sync({ cwd: context.getFilename(), normalize: false }).pkg));
+
+
     }
 
-    if (![packageContent.dependencies, packageContent.devDependencies, packageContent.optionalDependencies, packageContent.peerDependencies, packageContent.bundledDependencies].some(hasKeys)) {
+    if (![
+    packageContent.dependencies,
+    packageContent.devDependencies,
+    packageContent.optionalDependencies,
+    packageContent.peerDependencies,
+    packageContent.bundledDependencies].
+    some(hasKeys)) {
       return null;
     }
 
@@ -95,14 +81,14 @@
     if (paths.length > 0 && e.code === 'ENOENT') {
       context.report({
         message: 'The package.json file could not be found.',
-        loc: { line: 0, column: 0 }
-      });
+        loc: { line: 0, column: 0 } });
+
     }
     if (e.name === 'JSONError' || e instanceof SyntaxError) {
       context.report({
         message: 'The package.json file could not be parsed: ' + e.message,
-        loc: { line: 0, column: 0 }
-      });
+        loc: { line: 0, column: 0 } });
+
     }
 
     return null;
@@ -110,7 +96,8 @@
 }
 
 function missingErrorMessage(packageName) {
-  return `'${packageName}' should be listed in the project's dependencies. ` + `Run 'npm i -S ${packageName}' to add it`;
+  return `'${packageName}' should be listed in the project's dependencies. ` +
+  `Run 'npm i -S ${packageName}' to add it`;
 }
 
 function devDepErrorMessage(packageName) {
@@ -118,12 +105,13 @@
 }
 
 function optDepErrorMessage(packageName) {
-  return `'${packageName}' should be listed in the project's dependencies, ` + `not optionalDependencies.`;
+  return `'${packageName}' should be listed in the project's dependencies, ` +
+  `not optionalDependencies.`;
 }
 
 function reportIfMissing(context, deps, depsOptions, node, name) {
   // Do not report when importing types
-  if (node.importKind === 'type') {
+  if (node.importKind === 'type' || node.parent && node.parent.importKind === 'type') {
     return;
   }
 
@@ -132,19 +120,24 @@
   }
 
   const resolved = (0, _resolve2.default)(name, context);
-  if (!resolved) {
-    return;
-  }
+  if (!resolved) {return;}
 
   const splitName = name.split('/');
-  const packageName = splitName[0][0] === '@' ? splitName.slice(0, 2).join('/') : splitName[0];
+  const packageName = splitName[0][0] === '@' ?
+  splitName.slice(0, 2).join('/') :
+  splitName[0];
   const isInDeps = deps.dependencies[packageName] !== undefined;
   const isInDevDeps = deps.devDependencies[packageName] !== undefined;
   const isInOptDeps = deps.optionalDependencies[packageName] !== undefined;
   const isInPeerDeps = deps.peerDependencies[packageName] !== undefined;
   const isInBundledDeps = deps.bundledDependencies.indexOf(packageName) !== -1;
 
-  if (isInDeps || depsOptions.allowDevDeps && isInDevDeps || depsOptions.allowPeerDeps && isInPeerDeps || depsOptions.allowOptDeps && isInOptDeps || depsOptions.allowBundledDeps && isInBundledDeps) {
+  if (isInDeps ||
+  depsOptions.allowDevDeps && isInDevDeps ||
+  depsOptions.allowPeerDeps && isInPeerDeps ||
+  depsOptions.allowOptDeps && isInOptDeps ||
+  depsOptions.allowBundledDeps && isInBundledDeps)
+  {
     return;
   }
 
@@ -167,28 +160,33 @@
     return config;
   }
   // Array of globs.
-  return config.some(c => (0, _minimatch2.default)(filename, c) || (0, _minimatch2.default)(filename, _path2.default.join(process.cwd(), c)));
+  return config.some(c =>
+  (0, _minimatch2.default)(filename, c) ||
+  (0, _minimatch2.default)(filename, _path2.default.join(process.cwd(), c)));
+
 }
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-extraneous-dependencies')
-    },
+      url: (0, _docsUrl2.default)('no-extraneous-dependencies') },
 
-    schema: [{
+
+    schema: [
+    {
       'type': 'object',
       'properties': {
         'devDependencies': { 'type': ['boolean', 'array'] },
         'optionalDependencies': { 'type': ['boolean', 'array'] },
         'peerDependencies': { 'type': ['boolean', 'array'] },
         'bundledDependencies': { 'type': ['boolean', 'array'] },
-        'packageDir': { 'type': ['string', 'array'] }
-      },
-      'additionalProperties': false
-    }]
-  },
+        'packageDir': { 'type': ['string', 'array'] } },
+
+      'additionalProperties': false }] },
+
+
+
 
   create: function (context) {
     const options = context.options[0] || {};
@@ -199,31 +197,11 @@
       allowDevDeps: testConfig(options.devDependencies, filename) !== false,
       allowOptDeps: testConfig(options.optionalDependencies, filename) !== false,
       allowPeerDeps: testConfig(options.peerDependencies, filename) !== false,
-      allowBundledDeps: testConfig(options.bundledDependencies, filename) !== false
+      allowBundledDeps: testConfig(options.bundledDependencies, filename) !== false };
 
-      // todo: use module visitor from module-utils core
-    };return {
-      ImportDeclaration: function (node) {
-        if (node.source) {
-          reportIfMissing(context, deps, depsOptions, node, node.source.value);
-        }
-      },
-      ExportNamedDeclaration: function (node) {
-        if (node.source) {
-          reportIfMissing(context, deps, depsOptions, node, node.source.value);
-        }
-      },
-      ExportAllDeclaration: function (node) {
-        if (node.source) {
-          reportIfMissing(context, deps, depsOptions, node, node.source.value);
-        }
-      },
-      CallExpression: function handleRequires(node) {
-        if ((0, _staticRequire2.default)(node)) {
-          reportIfMissing(context, deps, depsOptions, node, node.arguments[0].value);
-        }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyJdLCJuYW1lcyI6WyJoYXNLZXlzIiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImFycmF5T3JLZXlzIiwiYXJyYXlPck9iamVjdCIsIkFycmF5IiwiaXNBcnJheSIsImV4dHJhY3REZXBGaWVsZHMiLCJwa2ciLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJvcHRpb25hbERlcGVuZGVuY2llcyIsInBlZXJEZXBlbmRlbmNpZXMiLCJidW5kbGVkRGVwZW5kZW5jaWVzIiwiYnVuZGxlRGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiY29udGV4dCIsInBhY2thZ2VEaXIiLCJwYXRocyIsInBhY2thZ2VDb250ZW50IiwicGF0aCIsInJlc29sdmUiLCJtYXAiLCJkaXIiLCJmb3JFYWNoIiwiX3BhY2thZ2VDb250ZW50IiwiSlNPTiIsInBhcnNlIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwiZGVwc0tleSIsImFzc2lnbiIsInJlYWRQa2dVcCIsInN5bmMiLCJjd2QiLCJnZXRGaWxlbmFtZSIsIm5vcm1hbGl6ZSIsInNvbWUiLCJlIiwiY29kZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJsb2MiLCJsaW5lIiwiY29sdW1uIiwibmFtZSIsIlN5bnRheEVycm9yIiwibWlzc2luZ0Vycm9yTWVzc2FnZSIsInBhY2thZ2VOYW1lIiwiZGV2RGVwRXJyb3JNZXNzYWdlIiwib3B0RGVwRXJyb3JNZXNzYWdlIiwicmVwb3J0SWZNaXNzaW5nIiwiZGVwcyIsImRlcHNPcHRpb25zIiwibm9kZSIsImltcG9ydEtpbmQiLCJyZXNvbHZlZCIsInNwbGl0TmFtZSIsInNwbGl0Iiwic2xpY2UiLCJpc0luRGVwcyIsInVuZGVmaW5lZCIsImlzSW5EZXZEZXBzIiwiaXNJbk9wdERlcHMiLCJpc0luUGVlckRlcHMiLCJpc0luQnVuZGxlZERlcHMiLCJpbmRleE9mIiwiYWxsb3dEZXZEZXBzIiwiYWxsb3dQZWVyRGVwcyIsImFsbG93T3B0RGVwcyIsImFsbG93QnVuZGxlZERlcHMiLCJ0ZXN0Q29uZmlnIiwiY29uZmlnIiwiZmlsZW5hbWUiLCJjIiwicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJvcHRpb25zIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJzb3VyY2UiLCJ2YWx1ZSIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iLCJFeHBvcnRBbGxEZWNsYXJhdGlvbiIsIkNhbGxFeHByZXNzaW9uIiwiaGFuZGxlUmVxdWlyZXMiLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsU0FBU0EsT0FBVCxHQUEyQjtBQUFBLE1BQVZDLEdBQVUsdUVBQUosRUFBSTs7QUFDekIsU0FBT0MsT0FBT0MsSUFBUCxDQUFZRixHQUFaLEVBQWlCRyxNQUFqQixHQUEwQixDQUFqQztBQUNEOztBQUVELFNBQVNDLFdBQVQsQ0FBcUJDLGFBQXJCLEVBQW9DO0FBQ2xDLFNBQU9DLE1BQU1DLE9BQU4sQ0FBY0YsYUFBZCxJQUErQkEsYUFBL0IsR0FBK0NKLE9BQU9DLElBQVAsQ0FBWUcsYUFBWixDQUF0RDtBQUNEOztBQUVELFNBQVNHLGdCQUFULENBQTBCQyxHQUExQixFQUErQjtBQUM3QixTQUFPO0FBQ0xDLGtCQUFjRCxJQUFJQyxZQUFKLElBQW9CLEVBRDdCO0FBRUxDLHFCQUFpQkYsSUFBSUUsZUFBSixJQUF1QixFQUZuQztBQUdMQywwQkFBc0JILElBQUlHLG9CQUFKLElBQTRCLEVBSDdDO0FBSUxDLHNCQUFrQkosSUFBSUksZ0JBQUosSUFBd0IsRUFKckM7QUFLTDtBQUNBO0FBQ0FDLHlCQUFxQlYsWUFBWUssSUFBSU0sa0JBQUosSUFBMEJOLElBQUlLLG1CQUE5QixJQUFxRCxF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QnFDLElBQXpCLEVBQStCQyxXQUEvQixFQUE0Q0MsSUFBNUMsRUFBa0RBLEtBQUtnQyxNQUFMLENBQVlDLEtBQTlEO0FBQ0Q7QUFDRixPQVZJO0FBV0xFLDRCQUFzQixVQUFVbkMsSUFBVixFQUFnQjtBQUNwQyxZQUFJQSxLQUFLZ0MsTUFBVCxFQUFpQjtBQUNmbkMsMEJBQWdCcEMsT0FBaEIsRUFBeUJxQyxJQUF6QixFQUErQkMsV0FBL0IsRUFBNENDLElBQTVDLEVBQWtEQSxLQUFLZ0MsTUFBTCxDQUFZQyxLQUE5RDtBQUNEO0FBQ0YsT0FmSTtBQWdCTEcsc0JBQWdCLFNBQVNDLGNBQVQsQ0FBd0JyQyxJQUF4QixFQUE4QjtBQUM1QyxZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QkgsMEJBQWdCcEMsT0FBaEIsRUFBeUJxQyxJQUF6QixFQUErQkMsV0FBL0IsRUFBNENDLElBQTVDLEVBQWtEQSxLQUFLc0MsU0FBTCxDQUFlLENBQWYsRUFBa0JMLEtBQXBFO0FBQ0Q7QUFDRjtBQXBCSSxLQUFQO0FBc0JEO0FBekRjLENBQWpCIiwiZmlsZSI6Im5vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCByZWFkUGtnVXAgZnJvbSAncmVhZC1wa2ctdXAnXG5pbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCdcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuZnVuY3Rpb24gaGFzS2V5cyhvYmogPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPiAwXG59XG5cbmZ1bmN0aW9uIGFycmF5T3JLZXlzKGFycmF5T3JPYmplY3QpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXJyYXlPck9iamVjdCkgPyBhcnJheU9yT2JqZWN0IDogT2JqZWN0LmtleXMoYXJyYXlPck9iamVjdClcbn1cblxuZnVuY3Rpb24gZXh0cmFjdERlcEZpZWxkcyhwa2cpIHtcbiAgcmV0dXJuIHtcbiAgICBkZXBlbmRlbmNpZXM6IHBrZy5kZXBlbmRlbmNpZXMgfHwge30sXG4gICAgZGV2RGVwZW5kZW5jaWVzOiBwa2cuZGV2RGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIG9wdGlvbmFsRGVwZW5kZW5jaWVzOiBwa2cub3B0aW9uYWxEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgcGVlckRlcGVuZGVuY2llczogcGtnLnBlZXJEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgLy8gQnVuZGxlZERlcHMgc2hvdWxkIGJlIGluIHRoZSBmb3JtIG9mIGFuIGFycmF5LCBidXQgb2JqZWN0IG5vdGF0aW9uIGlzIGFsc28gc3VwcG9ydGVkIGJ5XG4gICAgLy8gYG5wbWAsIHNvIHdlIGNvbnZlcnQgaXQgdG8gYW4gYXJyYXkgaWYgaXQgaXMgYW4gb2JqZWN0XG4gICAgYnVuZGxlZERlcGVuZGVuY2llczogYXJyYXlPcktleXMocGtnLmJ1bmRsZURlcGVuZGVuY2llcyB8fCBwa2cuYnVuZGxlZERlcGVuZGVuY2llcyB8fCBbXSksXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzKGNvbnRleHQsIHBhY2thZ2VEaXIpIHtcbiAgbGV0IHBhdGhzID0gW11cbiAgdHJ5IHtcbiAgICBjb25zdCBwYWNrYWdlQ29udGVudCA9IHtcbiAgICAgIGRlcGVuZGVuY2llczoge30sXG4gICAgICBkZXZEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczoge30sXG4gICAgICBidW5kbGVkRGVwZW5kZW5jaWVzOiBbXSxcbiAgICB9XG5cbiAgICBpZiAocGFja2FnZURpciAmJiBwYWNrYWdlRGlyLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYWNrYWdlRGlyKSkge1xuICAgICAgICBwYXRocyA9IFtwYXRoLnJlc29sdmUocGFja2FnZURpcildXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXRocyA9IHBhY2thZ2VEaXIubWFwKGRpciA9PiBwYXRoLnJlc29sdmUoZGlyKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHJ1bGUgY29uZmlnIHRvIGZpbmQgcGFja2FnZS5qc29uXG4gICAgICBwYXRocy5mb3JFYWNoKGRpciA9PiB7XG4gICAgICAgIGNvbnN0IF9wYWNrYWdlQ29udGVudCA9IGV4dHJhY3REZXBGaWVsZHMoXG4gICAgICAgICAgSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKGRpciwgJ3BhY2thZ2UuanNvbicpLCAndXRmOCcpKVxuICAgICAgICApXG4gICAgICAgIE9iamVjdC5rZXlzKHBhY2thZ2VDb250ZW50KS5mb3JFYWNoKGRlcHNLZXkgPT5cbiAgICAgICAgICBPYmplY3QuYXNzaWduKHBhY2thZ2VDb250ZW50W2RlcHNLZXldLCBfcGFja2FnZUNvbnRlbnRbZGVwc0tleV0pXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVzZSBjbG9zZXN0IHBhY2thZ2UuanNvblxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgcGFja2FnZUNvbnRlbnQsXG4gICAgICAgIGV4dHJhY3REZXBGaWVsZHMoXG4gICAgICAgICAgcmVhZFBrZ1VwLnN5bmMoe2N3ZDogY29udGV4dC5nZXRGaWxlbmFtZSgpLCBub3JtYWxpemU6IGZhbHNlfSkucGtnXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoIVtcbiAgICAgIHBhY2thZ2VDb250ZW50LmRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50LmRldkRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50Lm9wdGlvbmFsRGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQucGVlckRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50LmJ1bmRsZWREZXBlbmRlbmNpZXMsXG4gICAgXS5zb21lKGhhc0tleXMpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBwYWNrYWdlQ29udGVudFxuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKHBhdGhzLmxlbmd0aCA+IDAgJiYgZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlOiAnVGhlIHBhY2thZ2UuanNvbiBmaWxlIGNvdWxkIG5vdCBiZSBmb3VuZC4nLFxuICAgICAgICBsb2M6IHsgbGluZTogMCwgY29sdW1uOiAwIH0sXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoZS5uYW1lID09PSAnSlNPTkVycm9yJyB8fCBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbWVzc2FnZTogJ1RoZSBwYWNrYWdlLmpzb24gZmlsZSBjb3VsZCBub3QgYmUgcGFyc2VkOiAnICsgZS5tZXNzYWdlLFxuICAgICAgICBsb2M6IHsgbGluZTogMCwgY29sdW1uOiAwIH0sXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcy4gYCArXG4gICAgYFJ1biAnbnBtIGkgLVMgJHtwYWNrYWdlTmFtZX0nIHRvIGFkZCBpdGBcbn1cblxuZnVuY3Rpb24gZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBub3QgZGV2RGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBgICtcbiAgICBgbm90IG9wdGlvbmFsRGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBuYW1lKSB7XG4gIC8vIERvIG5vdCByZXBvcnQgd2hlbiBpbXBvcnRpbmcgdHlwZXNcbiAgaWYgKG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGUnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KSAhPT0gJ2V4dGVybmFsJykge1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlKG5hbWUsIGNvbnRleHQpXG4gIGlmICghcmVzb2x2ZWQpIHsgcmV0dXJuIH1cblxuICBjb25zdCBzcGxpdE5hbWUgPSBuYW1lLnNwbGl0KCcvJylcbiAgY29uc3QgcGFja2FnZU5hbWUgPSBzcGxpdE5hbWVbMF1bMF0gPT09ICdAJ1xuICAgID8gc3BsaXROYW1lLnNsaWNlKDAsIDIpLmpvaW4oJy8nKVxuICAgIDogc3BsaXROYW1lWzBdXG4gIGNvbnN0IGlzSW5EZXBzID0gZGVwcy5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkRldkRlcHMgPSBkZXBzLmRldkRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luT3B0RGVwcyA9IGRlcHMub3B0aW9uYWxEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJblBlZXJEZXBzID0gZGVwcy5wZWVyRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGlzSW5CdW5kbGVkRGVwcyA9IGRlcHMuYnVuZGxlZERlcGVuZGVuY2llcy5pbmRleE9mKHBhY2thZ2VOYW1lKSAhPT0gLTFcblxuICBpZiAoaXNJbkRlcHMgfHxcbiAgICAoZGVwc09wdGlvbnMuYWxsb3dEZXZEZXBzICYmIGlzSW5EZXZEZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd1BlZXJEZXBzICYmIGlzSW5QZWVyRGVwcykgfHxcbiAgICAoZGVwc09wdGlvbnMuYWxsb3dPcHREZXBzICYmIGlzSW5PcHREZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0J1bmRsZWREZXBzICYmIGlzSW5CdW5kbGVkRGVwcylcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaXNJbkRldkRlcHMgJiYgIWRlcHNPcHRpb25zLmFsbG93RGV2RGVwcykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGRldkRlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaXNJbk9wdERlcHMgJiYgIWRlcHNPcHRpb25zLmFsbG93T3B0RGVwcykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIG9wdERlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb250ZXh0LnJlcG9ydChub2RlLCBtaXNzaW5nRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbn1cblxuZnVuY3Rpb24gdGVzdENvbmZpZyhjb25maWcsIGZpbGVuYW1lKSB7XG4gIC8vIFNpbXBsZXN0IGNvbmZpZ3VyYXRpb24gZmlyc3QsIGVpdGhlciBhIGJvb2xlYW4gb3Igbm90aGluZy5cbiAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgY29uZmlnID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBjb25maWdcbiAgfVxuICAvLyBBcnJheSBvZiBnbG9icy5cbiAgcmV0dXJuIGNvbmZpZy5zb21lKGMgPT4gKFxuICAgIG1pbmltYXRjaChmaWxlbmFtZSwgYykgfHxcbiAgICBtaW5pbWF0Y2goZmlsZW5hbWUsIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBjKSlcbiAgKSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2RldkRlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwZWVyRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ2J1bmRsZWREZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAncGFja2FnZURpcic6IHsgJ3R5cGUnOiBbJ3N0cmluZycsICdhcnJheSddIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gICAgY29uc3QgZmlsZW5hbWUgPSBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICBjb25zdCBkZXBzID0gZ2V0RGVwZW5kZW5jaWVzKGNvbnRleHQsIG9wdGlvbnMucGFja2FnZURpcikgfHwgZXh0cmFjdERlcEZpZWxkcyh7fSlcblxuICAgIGNvbnN0IGRlcHNPcHRpb25zID0ge1xuICAgICAgYWxsb3dEZXZEZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMuZGV2RGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgICAgYWxsb3dPcHREZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMub3B0aW9uYWxEZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgICBhbGxvd1BlZXJEZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMucGVlckRlcGVuZGVuY2llcywgZmlsZW5hbWUpICE9PSBmYWxzZSxcbiAgICAgIGFsbG93QnVuZGxlZERlcHM6IHRlc3RDb25maWcob3B0aW9ucy5idW5kbGVkRGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgIH1cblxuICAgIC8vIHRvZG86IHVzZSBtb2R1bGUgdmlzaXRvciBmcm9tIG1vZHVsZS11dGlscyBjb3JlXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zb3VyY2UpIHtcbiAgICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc291cmNlKSB7XG4gICAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zb3VyY2UpIHtcbiAgICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBkZXBzLCBkZXBzT3B0aW9ucywgbm9kZSwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+
+    return (0, _moduleVisitor2.default)(node => {
+      reportIfMissing(context, deps, depsOptions, node, node.value);
+    }, { commonjs: true });
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyJdLCJuYW1lcyI6WyJoYXNLZXlzIiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImFycmF5T3JLZXlzIiwiYXJyYXlPck9iamVjdCIsIkFycmF5IiwiaXNBcnJheSIsImV4dHJhY3REZXBGaWVsZHMiLCJwa2ciLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJvcHRpb25hbERlcGVuZGVuY2llcyIsInBlZXJEZXBlbmRlbmNpZXMiLCJidW5kbGVkRGVwZW5kZW5jaWVzIiwiYnVuZGxlRGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiY29udGV4dCIsInBhY2thZ2VEaXIiLCJwYXRocyIsInBhY2thZ2VDb250ZW50IiwicGF0aCIsInJlc29sdmUiLCJtYXAiLCJkaXIiLCJmb3JFYWNoIiwiX3BhY2thZ2VDb250ZW50IiwiSlNPTiIsInBhcnNlIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwiZGVwc0tleSIsImFzc2lnbiIsInJlYWRQa2dVcCIsInN5bmMiLCJjd2QiLCJnZXRGaWxlbmFtZSIsIm5vcm1hbGl6ZSIsInNvbWUiLCJlIiwiY29kZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJsb2MiLCJsaW5lIiwiY29sdW1uIiwibmFtZSIsIlN5bnRheEVycm9yIiwibWlzc2luZ0Vycm9yTWVzc2FnZSIsInBhY2thZ2VOYW1lIiwiZGV2RGVwRXJyb3JNZXNzYWdlIiwib3B0RGVwRXJyb3JNZXNzYWdlIiwicmVwb3J0SWZNaXNzaW5nIiwiZGVwcyIsImRlcHNPcHRpb25zIiwibm9kZSIsImltcG9ydEtpbmQiLCJwYXJlbnQiLCJyZXNvbHZlZCIsInNwbGl0TmFtZSIsInNwbGl0Iiwic2xpY2UiLCJpc0luRGVwcyIsInVuZGVmaW5lZCIsImlzSW5EZXZEZXBzIiwiaXNJbk9wdERlcHMiLCJpc0luUGVlckRlcHMiLCJpc0luQnVuZGxlZERlcHMiLCJpbmRleE9mIiwiYWxsb3dEZXZEZXBzIiwiYWxsb3dQZWVyRGVwcyIsImFsbG93T3B0RGVwcyIsImFsbG93QnVuZGxlZERlcHMiLCJ0ZXN0Q29uZmlnIiwiY29uZmlnIiwiZmlsZW5hbWUiLCJjIiwicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJvcHRpb25zIiwidmFsdWUiLCJjb21tb25qcyJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7QUFDQSx3QjtBQUNBLHdDO0FBQ0Esc0M7QUFDQSxzRDtBQUNBLGtFO0FBQ0EsZ0Q7QUFDQSxxQzs7QUFFQSxTQUFTQSxPQUFULEdBQTJCLEtBQVZDLEdBQVUsdUVBQUosRUFBSTtBQUN6QixTQUFPQyxPQUFPQyxJQUFQLENBQVlGLEdBQVosRUFBaUJHLE1BQWpCLEdBQTBCLENBQWpDO0FBQ0Q7O0FBRUQsU0FBU0MsV0FBVCxDQUFxQkMsYUFBckIsRUFBb0M7QUFDbEMsU0FBT0MsTUFBTUMsT0FBTixDQUFjRixhQUFkLElBQStCQSxhQUEvQixHQUErQ0osT0FBT0MsSUFBUCxDQUFZRyxhQUFaLENBQXREO0FBQ0Q7O0FBRUQsU0FBU0csZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCO0FBQzdCLFNBQU87QUFDTEMsa0JBQWNELElBQUlDLFlBQUosSUFBb0IsRUFEN0I7QUFFTEMscUJBQWlCRixJQUFJRSxlQUFKLElBQXVCLEVBRm5DO0FBR0xDLDBCQUFzQkgsSUFBSUcsb0JBQUosSUFBNEIsRUFIN0M7QUFJTEMsc0JBQWtCSixJQUFJSSxnQkFBSixJQUF3QixFQUpyQztBQUtMO0FBQ0E7QUFDQUMseUJBQXFCVixZQUFZSyxJQUFJTSxrQkFBSixJQUEwQk4sSUFBSUssbUJBQTlCLElBQXFELEVBQWpFLENBUGhCLEVBQVA7O0FBU0Q7O0FBRUQsU0FBU0UsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFVBQWxDLEVBQThDO0FBQzVDLE1BQUlDLFFBQVEsRUFBWjtBQUNBLE1BQUk7QUFDRixVQUFN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USxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFKWDtBQUtaLHNCQUFjLEVBQUUsUUFBUSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBQVYsRUFMRixFQUZoQjs7QUFTRSw4QkFBd0IsS0FUMUIsRUFETSxDQU5KLEVBRFM7Ozs7O0FBc0JmQyxVQUFRLFVBQVVyRSxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1zRSxVQUFVdEUsUUFBUXNFLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxVQUFNWCxXQUFXM0QsUUFBUW9CLFdBQVIsRUFBakI7QUFDQSxVQUFNaUIsT0FBT3RDLGdCQUFnQkMsT0FBaEIsRUFBeUJzRSxRQUFRckUsVUFBakMsS0FBZ0RWLGlCQUFpQixFQUFqQixDQUE3RDs7QUFFQSxVQUFNK0MsY0FBYztBQUNsQmUsb0JBQWNJLFdBQVdhLFFBQVE1RSxlQUFuQixFQUFvQ2lFLFFBQXBDLE1BQWtELEtBRDlDO0FBRWxCSixvQkFBY0UsV0FBV2EsUUFBUTNFLG9CQUFuQixFQUF5Q2dFLFFBQXpDLE1BQXVELEtBRm5EO0FBR2xCTCxxQkFBZUcsV0FBV2EsUUFBUTFFLGdCQUFuQixFQUFxQytELFFBQXJDLE1BQW1ELEtBSGhEO0FBSWxCSCx3QkFBa0JDLFdBQVdhLFFBQVF6RSxtQkFBbkIsRUFBd0M4RCxRQUF4QyxNQUFzRCxLQUp0RCxFQUFwQjs7O0FBT0EsV0FBTyw2QkFBY3BCLFFBQVE7QUFDM0JILHNCQUFnQnBDLE9BQWhCLEVBQXlCcUMsSUFBekIsRUFBK0JDLFdBQS9CLEVBQTRDQyxJQUE1QyxFQUFrREEsS0FBS2dDLEtBQXZEO0FBQ0QsS0FGTSxFQUVKLEVBQUNDLFVBQVUsSUFBWCxFQUZJLENBQVA7QUFHRCxHQXJDYyxFQUFqQiIsImZpbGUiOiJuby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcmVhZFBrZ1VwIGZyb20gJ3JlYWQtcGtnLXVwJ1xuaW1wb3J0IG1pbmltYXRjaCBmcm9tICdtaW5pbWF0Y2gnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiBoYXNLZXlzKG9iaiA9IHt9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IDBcbn1cblxuZnVuY3Rpb24gYXJyYXlPcktleXMoYXJyYXlPck9iamVjdCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcnJheU9yT2JqZWN0KSA/IGFycmF5T3JPYmplY3QgOiBPYmplY3Qua2V5cyhhcnJheU9yT2JqZWN0KVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RGVwRmllbGRzKHBrZykge1xuICByZXR1cm4ge1xuICAgIGRlcGVuZGVuY2llczogcGtnLmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICBkZXZEZXBlbmRlbmNpZXM6IHBrZy5kZXZEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHBrZy5vcHRpb25hbERlcGVuZGVuY2llcyB8fCB7fSxcbiAgICBwZWVyRGVwZW5kZW5jaWVzOiBwa2cucGVlckRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAvLyBCdW5kbGVkRGVwcyBzaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgYW4gYXJyYXksIGJ1dCBvYmplY3Qgbm90YXRpb24gaXMgYWxzbyBzdXBwb3J0ZWQgYnlcbiAgICAvLyBgbnBtYCwgc28gd2UgY29udmVydCBpdCB0byBhbiBhcnJheSBpZiBpdCBpcyBhbiBvYmplY3RcbiAgICBidW5kbGVkRGVwZW5kZW5jaWVzOiBhcnJheU9yS2V5cyhwa2cuYnVuZGxlRGVwZW5kZW5jaWVzIHx8IHBrZy5idW5kbGVkRGVwZW5kZW5jaWVzIHx8IFtdKSxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgcGFja2FnZURpcikge1xuICBsZXQgcGF0aHMgPSBbXVxuICB0cnkge1xuICAgIGNvbnN0IHBhY2thZ2VDb250ZW50ID0ge1xuICAgICAgZGVwZW5kZW5jaWVzOiB7fSxcbiAgICAgIGRldkRlcGVuZGVuY2llczoge30sXG4gICAgICBvcHRpb25hbERlcGVuZGVuY2llczoge30sXG4gICAgICBwZWVyRGVwZW5kZW5jaWVzOiB7fSxcbiAgICAgIGJ1bmRsZWREZXBlbmRlbmNpZXM6IFtdLFxuICAgIH1cblxuICAgIGlmIChwYWNrYWdlRGlyICYmIHBhY2thZ2VEaXIubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhY2thZ2VEaXIpKSB7XG4gICAgICAgIHBhdGhzID0gW3BhdGgucmVzb2x2ZShwYWNrYWdlRGlyKV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGhzID0gcGFja2FnZURpci5tYXAoZGlyID0+IHBhdGgucmVzb2x2ZShkaXIpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXRocy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB1c2UgcnVsZSBjb25maWcgdG8gZmluZCBwYWNrYWdlLmpzb25cbiAgICAgIHBhdGhzLmZvckVhY2goZGlyID0+IHtcbiAgICAgICAgY29uc3QgX3BhY2thZ2VDb250ZW50ID0gZXh0cmFjdERlcEZpZWxkcyhcbiAgICAgICAgICBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCAncGFja2FnZS5qc29uJyksICd1dGY4JykpXG4gICAgICAgIClcbiAgICAgICAgT2JqZWN0LmtleXMocGFja2FnZUNvbnRlbnQpLmZvckVhY2goZGVwc0tleSA9PlxuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFja2FnZUNvbnRlbnRbZGVwc0tleV0sIF9wYWNrYWdlQ29udGVudFtkZXBzS2V5XSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXNlIGNsb3Nlc3QgcGFja2FnZS5qc29uXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICBwYWNrYWdlQ29udGVudCxcbiAgICAgICAgZXh0cmFjdERlcEZpZWxkcyhcbiAgICAgICAgICByZWFkUGtnVXAuc3luYyh7Y3dkOiBjb250ZXh0LmdldEZpbGVuYW1lKCksIG5vcm1hbGl6ZTogZmFsc2V9KS5wa2dcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghW1xuICAgICAgcGFja2FnZUNvbnRlbnQuZGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQuZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQub3B0aW9uYWxEZXBlbmRlbmNpZXMsXG4gICAgICBwYWNrYWdlQ29udGVudC5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQuYnVuZGxlZERlcGVuZGVuY2llcyxcbiAgICBdLnNvbWUoaGFzS2V5cykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhY2thZ2VDb250ZW50XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMCAmJiBlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG1lc3NhZ2U6ICdUaGUgcGFja2FnZS5qc29uIGZpbGUgY291bGQgbm90IGJlIGZvdW5kLicsXG4gICAgICAgIGxvYzogeyBsaW5lOiAwLCBjb2x1bW46IDAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChlLm5hbWUgPT09ICdKU09ORXJyb3InIHx8IGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlOiAnVGhlIHBhY2thZ2UuanNvbiBmaWxlIGNvdWxkIG5vdCBiZSBwYXJzZWQ6ICcgKyBlLm1lc3NhZ2UsXG4gICAgICAgIGxvYzogeyBsaW5lOiAwLCBjb2x1bW46IDAgfSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBtaXNzaW5nRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLiBgICtcbiAgICBgUnVuICducG0gaSAtUyAke3BhY2thZ2VOYW1lfScgdG8gYWRkIGl0YFxufVxuXG5mdW5jdGlvbiBkZXZEZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpIHtcbiAgcmV0dXJuIGAnJHtwYWNrYWdlTmFtZX0nIHNob3VsZCBiZSBsaXN0ZWQgaW4gdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMsIG5vdCBkZXZEZXBlbmRlbmNpZXMuYFxufVxuXG5mdW5jdGlvbiBvcHREZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpIHtcbiAgcmV0dXJuIGAnJHtwYWNrYWdlTmFtZX0nIHNob3VsZCBiZSBsaXN0ZWQgaW4gdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMsIGAgK1xuICAgIGBub3Qgb3B0aW9uYWxEZXBlbmRlbmNpZXMuYFxufVxuXG5mdW5jdGlvbiByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5hbWUpIHtcbiAgLy8gRG8gbm90IHJlcG9ydCB3aGVuIGltcG9ydGluZyB0eXBlc1xuICBpZiAobm9kZS5pbXBvcnRLaW5kID09PSAndHlwZScgfHwgKG5vZGUucGFyZW50ICYmIG5vZGUucGFyZW50LmltcG9ydEtpbmQgPT09ICd0eXBlJykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpICE9PSAnZXh0ZXJuYWwnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUobmFtZSwgY29udGV4dClcbiAgaWYgKCFyZXNvbHZlZCkgeyByZXR1cm4gfVxuXG4gIGNvbnN0IHNwbGl0TmFtZSA9IG5hbWUuc3BsaXQoJy8nKVxuICBjb25zdCBwYWNrYWdlTmFtZSA9IHNwbGl0TmFtZVswXVswXSA9PT0gJ0AnXG4gICAgPyBzcGxpdE5hbWUuc2xpY2UoMCwgMikuam9pbignLycpXG4gICAgOiBzcGxpdE5hbWVbMF1cbiAgY29uc3QgaXNJbkRlcHMgPSBkZXBzLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luRGV2RGVwcyA9IGRlcHMuZGV2RGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGlzSW5PcHREZXBzID0gZGVwcy5vcHRpb25hbERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luUGVlckRlcHMgPSBkZXBzLnBlZXJEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkJ1bmRsZWREZXBzID0gZGVwcy5idW5kbGVkRGVwZW5kZW5jaWVzLmluZGV4T2YocGFja2FnZU5hbWUpICE9PSAtMVxuXG4gIGlmIChpc0luRGVwcyB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMgJiYgaXNJbkRldkRlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93UGVlckRlcHMgJiYgaXNJblBlZXJEZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd09wdERlcHMgJiYgaXNJbk9wdERlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93QnVuZGxlZERlcHMgJiYgaXNJbkJ1bmRsZWREZXBzKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpc0luRGV2RGVwcyAmJiAhZGVwc09wdGlvbnMuYWxsb3dEZXZEZXBzKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpc0luT3B0RGVwcyAmJiAhZGVwc09wdGlvbnMuYWxsb3dPcHREZXBzKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnRleHQucmVwb3J0KG5vZGUsIG1pc3NpbmdFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxufVxuXG5mdW5jdGlvbiB0ZXN0Q29uZmlnKGNvbmZpZywgZmlsZW5hbWUpIHtcbiAgLy8gU2ltcGxlc3QgY29uZmlndXJhdGlvbiBmaXJzdCwgZWl0aGVyIGEgYm9vbGVhbiBvciBub3RoaW5nLlxuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBjb25maWcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG4gIC8vIEFycmF5IG9mIGdsb2JzLlxuICByZXR1cm4gY29uZmlnLnNvbWUoYyA9PiAoXG4gICAgbWluaW1hdGNoKGZpbGVuYW1lLCBjKSB8fFxuICAgIG1pbmltYXRjaChmaWxlbmFtZSwgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGMpKVxuICApKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAnYnVuZGxlZERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwYWNrYWdlRGlyJzogeyAndHlwZSc6IFsnc3RyaW5nJywgJ2FycmF5J10gfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgIGNvbnN0IGRlcHMgPSBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgb3B0aW9ucy5wYWNrYWdlRGlyKSB8fCBleHRyYWN0RGVwRmllbGRzKHt9KVxuXG4gICAgY29uc3QgZGVwc09wdGlvbnMgPSB7XG4gICAgICBhbGxvd0RldkRlcHM6IHRlc3RDb25maWcob3B0aW9ucy5kZXZEZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgICBhbGxvd09wdERlcHM6IHRlc3RDb25maWcob3B0aW9ucy5vcHRpb25hbERlcGVuZGVuY2llcywgZmlsZW5hbWUpICE9PSBmYWxzZSxcbiAgICAgIGFsbG93UGVlckRlcHM6IHRlc3RDb25maWcob3B0aW9ucy5wZWVyRGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgICAgYWxsb3dCdW5kbGVkRGVwczogdGVzdENvbmZpZyhvcHRpb25zLmJ1bmRsZWREZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3Iobm9kZSA9PiB7XG4gICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5vZGUudmFsdWUpXG4gICAgfSwge2NvbW1vbmpzOiB0cnVlfSlcbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js
index 43d6b28..32d90d1 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js
@@ -1,49 +1,32 @@
-'use strict';
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch);
 
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _minimatch = require('minimatch');
-
-var _minimatch2 = _interopRequireDefault(_minimatch);
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-internal-modules')
-    },
+      url: (0, _docsUrl2.default)('no-internal-modules') },
 
-    schema: [{
+
+    schema: [
+    {
       type: 'object',
       properties: {
         allow: {
           type: 'array',
           items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
+            type: 'string' } } },
+
+
+
+      additionalProperties: false }] },
+
+
+
 
   create: function noReachingInside(context) {
     const options = context.options[0] || {};
@@ -62,7 +45,9 @@
 
     // find a directory that is being reached into, but which shouldn't be
     function isReachViolation(importPath) {
-      const steps = normalizeSep(importPath).split('/').reduce((acc, step) => {
+      const steps = normalizeSep(importPath).
+      split('/').
+      reduce((acc, step) => {
         if (!step || step === '.') {
           return acc;
         } else if (step === '..') {
@@ -92,11 +77,13 @@
 
     function checkImportForReaching(importPath, node) {
       const potentialViolationTypes = ['parent', 'index', 'sibling', 'external', 'internal'];
-      if (potentialViolationTypes.indexOf((0, _importType2.default)(importPath, context)) !== -1 && isReachViolation(importPath)) {
+      if (potentialViolationTypes.indexOf((0, _importType2.default)(importPath, context)) !== -1 &&
+      isReachViolation(importPath))
+      {
         context.report({
           node,
-          message: `Reaching to "${importPath}" is not allowed.`
-        });
+          message: `Reaching to "${importPath}" is not allowed.` });
+
       }
     }
 
@@ -104,16 +91,20 @@
       ImportDeclaration(node) {
         checkImportForReaching(node.source.value, node.source);
       },
+      ExportAllDeclaration(node) {
+        checkImportForReaching(node.source.value, node.source);
+      },
+      ExportNamedDeclaration(node) {
+        if (node.source) {
+          checkImportForReaching(node.source.value, node.source);
+        }
+      },
       CallExpression(node) {
-        if ((0, _staticRequire2.default)(node)) {
-          var _node$arguments = _slicedToArray(node.arguments, 1);
-
-          const firstArgument = _node$arguments[0];
-
+        if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray(
+          node.arguments, 1);const firstArgument = _node$arguments[0];
           checkImportForReaching(firstArgument.value, firstArgument);
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJpdGVtcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwibm9SZWFjaGluZ0luc2lkZSIsImNvbnRleHQiLCJvcHRpb25zIiwiYWxsb3dSZWdleHBzIiwibWFwIiwicCIsIm1pbmltYXRjaCIsIm1ha2VSZSIsInJlYWNoaW5nQWxsb3dlZCIsImltcG9ydFBhdGgiLCJzb21lIiwicmUiLCJ0ZXN0Iiwibm9ybWFsaXplU2VwIiwic29tZVBhdGgiLCJzcGxpdCIsImpvaW4iLCJpc1JlYWNoVmlvbGF0aW9uIiwic3RlcHMiLCJyZWR1Y2UiLCJhY2MiLCJzdGVwIiwic2xpY2UiLCJjb25jYXQiLCJub25TY29wZVN0ZXBzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImxlbmd0aCIsImp1c3RTdGVwcyIsInJlc29sdmVkIiwiY2hlY2tJbXBvcnRGb3JSZWFjaGluZyIsIm5vZGUiLCJwb3RlbnRpYWxWaW9sYXRpb25UeXBlcyIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsInNvdXJjZSIsInZhbHVlIiwiQ2FsbEV4cHJlc3Npb24iLCJhcmd1bWVudHMiLCJmaXJzdEFyZ3VtZW50Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHFCQUFSO0FBREQsS0FGRjs7QUFNSkMsWUFBUSxDQUNOO0FBQ0VILFlBQU0sUUFEUjtBQUVFSSxrQkFBWTtBQUNWQyxlQUFPO0FBQ0xMLGdCQUFNLE9BREQ7QUFFTE0saUJBQU87QUFD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QUEsK0NBQ0NBLEtBQUtRLFNBRE47O0FBQUEsZ0JBQ2pCQyxhQURpQjs7QUFFekJWLGlDQUF1QlUsY0FBY0gsS0FBckMsRUFBNENHLGFBQTVDO0FBQ0Q7QUFDRjtBQVRJLEtBQVA7QUFXRDtBQTdGYyxDQUFqQiIsImZpbGUiOiJuby1pbnRlcm5hbC1tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1pbmltYXRjaCBmcm9tICdtaW5pbWF0Y2gnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1pbnRlcm5hbC1tb2R1bGVzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGFsbG93OiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5vUmVhY2hpbmdJbnNpZGUoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBhbGxvd1JlZ2V4cHMgPSAob3B0aW9ucy5hbGxvdyB8fCBbXSkubWFwKHAgPT4gbWluaW1hdGNoLm1ha2VSZShwKSlcblxuICAgIC8vIHRlc3QgaWYgcmVhY2hpbmcgdG8gdGhpcyBkZXN0aW5hdGlvbiBpcyBhbGxvd2VkXG4gICAgZnVuY3Rpb24gcmVhY2hpbmdBbGxvd2VkKGltcG9ydFBhdGgpIHtcbiAgICAgIHJldHVybiBhbGxvd1JlZ2V4cHMuc29tZShyZSA9PiByZS50ZXN0KGltcG9ydFBhdGgpKVxuICAgIH1cblxuICAgIC8vIG1pbmltYXRjaCBwYXR0ZXJucyBhcmUgZXhwZWN0ZWQgdG8gdXNlIC8gcGF0aCBzZXBhcmF0b3JzLCBsaWtlIGltcG9ydFxuICAgIC8vIHN0YXRlbWVudHMsIHNvIG5vcm1hbGl6ZSBwYXRocyB0byB1c2UgdGhlIHNhbWVcbiAgICBmdW5jdGlvbiBub3JtYWxpemVTZXAoc29tZVBhdGgpIHtcbiAgICAgIHJldHVybiBzb21lUGF0aC5zcGxpdCgnXFxcXCcpLmpvaW4oJy8nKVxuICAgIH1cblxuICAgIC8vIGZpbmQgYSBkaXJlY3RvcnkgdGhhdCBpcyBiZWluZyByZWFjaGVkIGludG8sIGJ1dCB3aGljaCBzaG91bGRuJ3QgYmVcbiAgICBmdW5jdGlvbiBpc1JlYWNoVmlvbGF0aW9uKGltcG9ydFBhdGgpIHtcbiAgICAgIGNvbnN0IHN0ZXBzID0gbm9ybWFsaXplU2VwKGltcG9ydFBhdGgpXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgc3RlcCkgPT4ge1xuICAgICAgICAgIGlmICghc3RlcCB8fCBzdGVwID09PSAnLicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0ZXAgPT09ICcuLicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2Muc2xpY2UoMCwgLTEpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhY2MuY29uY2F0KHN0ZXApXG4gICAgICAgICAgfVxuICAgICAgICB9LCBbXSlcblxuICAgICAgY29uc3Qgbm9uU2NvcGVTdGVwcyA9IHN0ZXBzLmZpbHRlcihzdGVwID0+IHN0ZXAuaW5kZXhPZignQCcpICE9PSAwKVxuICAgICAgaWYgKG5vblNjb3BlU3RlcHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZVxuXG4gICAgICAvLyBiZWZvcmUgdHJ5aW5nIHRvIHJlc29sdmUsIHNlZSBpZiB0aGUgcmF3IGltcG9ydCAod2l0aCByZWxhdGl2ZVxuICAgICAgLy8gc2VnbWVudHMgcmVzb2x2ZWQpIG1hdGNoZXMgYW4gYWxsb3dlZCBwYXR0ZXJuXG4gICAgICBjb25zdCBqdXN0U3RlcHMgPSBzdGVwcy5qb2luKCcvJylcbiAgICAgIGlmIChyZWFjaGluZ0FsbG93ZWQoanVzdFN0ZXBzKSB8fCByZWFjaGluZ0FsbG93ZWQoYC8ke2p1c3RTdGVwc31gKSkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIC8vIGlmIHRoZSBpbXBvcnQgc3RhdGVtZW50IGRvZXNuJ3QgbWF0Y2ggZGlyZWN0bHksIHRyeSB0byBtYXRjaCB0aGVcbiAgICAgIC8vIHJlc29sdmVkIHBhdGggaWYgdGhlIGltcG9ydCBpcyByZXNvbHZhYmxlXG4gICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcbiAgICAgIGlmICghcmVzb2x2ZWQgfHwgcmVhY2hpbmdBbGxvd2VkKG5vcm1hbGl6ZVNlcChyZXNvbHZlZCkpKSByZXR1cm4gZmFsc2VcblxuICAgICAgLy8gdGhpcyBpbXBvcnQgd2FzIG5vdCBhbGxvd2VkIGJ5IHRoZSBhbGxvd2VkIHBhdGhzLCBhbmQgcmVhY2hlc1xuICAgICAgLy8gc28gaXQgaXMgYSB2aW9sYXRpb25cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tJbXBvcnRGb3JSZWFjaGluZyhpbXBvcnRQYXRoLCBub2RlKSB7XG4gICAgICBjb25zdCBwb3RlbnRpYWxWaW9sYXRpb25UeXBlcyA9IFsncGFyZW50JywgJ2luZGV4JywgJ3NpYmxpbmcnLCAnZXh0ZXJuYWwnLCAnaW50ZXJuYWwnXVxuICAgICAgaWYgKHBvdGVudGlhbFZpb2xhdGlvblR5cGVzLmluZGV4T2YoaW1wb3J0VHlwZShpbXBvcnRQYXRoLCBjb250ZXh0KSkgIT09IC0xICYmXG4gICAgICAgIGlzUmVhY2hWaW9sYXRpb24oaW1wb3J0UGF0aClcbiAgICAgICkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBgUmVhY2hpbmcgdG8gXCIke2ltcG9ydFBhdGh9XCIgaXMgbm90IGFsbG93ZWQuYCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBjaGVja0ltcG9ydEZvclJlYWNoaW5nKG5vZGUuc291cmNlLnZhbHVlLCBub2RlLnNvdXJjZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICBjb25zdCBbIGZpcnN0QXJndW1lbnQgXSA9IG5vZGUuYXJndW1lbnRzXG4gICAgICAgICAgY2hlY2tJbXBvcnRGb3JSZWFjaGluZyhmaXJzdEFyZ3VtZW50LnZhbHVlLCBmaXJzdEFyZ3VtZW50KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJpdGVtcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwibm9SZWFjaGluZ0luc2lkZSIsImNvbnRleHQiLCJvcHRpb25zIiwiYWxsb3dSZWdleHBzIiwibWFwIiwicCIsIm1pbmltYXRjaCIsIm1ha2VSZSIsInJlYWNoaW5nQWxsb3dlZCIsImltcG9ydFBhdGgiLCJzb21lIiwicmUiLCJ0ZXN0Iiwibm9ybWFsaXplU2VwIiwic29tZVBhdGgiLCJzcGxpdCIsImpvaW4iLCJpc1JlYWNoVmlvbGF0aW9uIiwic3RlcHMiLCJyZWR1Y2UiLCJhY2MiLCJzdGVwIiwic2xpY2UiLCJjb25jYXQiLCJub25TY29wZVN0ZXBzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImxlbmd0aCIsImp1c3RTdGVwcyIsInJlc29sdmVkIiwiY2hlY2tJbXBvcnRGb3JSZWFjaGluZyIsIm5vZGUiLCJwb3RlbnRpYWxWaW9sYXRpb25UeXBlcyIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsInNvdXJjZSIsInZhbHVlIiwiRXhwb3J0QWxsRGVjbGFyYXRpb24iLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJhcmd1bWVudHMiLCJmaXJzdEFyZ3VtZW50Il0sIm1hcHBpbmdzIjoicW9CQUFBLHNDOztBQUVBLHNEO0FBQ0EsZ0Q7QUFDQSxzRDtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUixDQURELEVBRkY7OztBQU1KQyxZQUFRO0FBQ047QUFDRUgsWUFBTSxRQURSO0FBRUVJLGtC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QkFBcUJQLElBQXJCLEVBQTJCO0FBQ3pCRCwrQkFBdUJDLEtBQUtLLE1BQUwsQ0FBWUMsS0FBbkMsRUFBMENOLEtBQUtLLE1BQS9DO0FBQ0QsT0FOSTtBQU9MRyw2QkFBdUJSLElBQXZCLEVBQTZCO0FBQzNCLFlBQUlBLEtBQUtLLE1BQVQsRUFBaUI7QUFDZk4saUNBQXVCQyxLQUFLSyxNQUFMLENBQVlDLEtBQW5DLEVBQTBDTixLQUFLSyxNQUEvQztBQUNEO0FBQ0YsT0FYSTtBQVlMSSxxQkFBZVQsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUNDQSxlQUFLVSxTQUROLFdBQ2pCQyxhQURpQjtBQUV6QlosaUNBQXVCWSxjQUFjTCxLQUFyQyxFQUE0Q0ssYUFBNUM7QUFDRDtBQUNGLE9BakJJLEVBQVA7O0FBbUJELEdBckdjLEVBQWpCIiwiZmlsZSI6Im5vLWludGVybmFsLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWludGVybmFsLW1vZHVsZXMnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gbm9SZWFjaGluZ0luc2lkZShjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICAgIGNvbnN0IGFsbG93UmVnZXhwcyA9IChvcHRpb25zLmFsbG93IHx8IFtdKS5tYXAocCA9PiBtaW5pbWF0Y2gubWFrZVJlKHApKVxuXG4gICAgLy8gdGVzdCBpZiByZWFjaGluZyB0byB0aGlzIGRlc3RpbmF0aW9uIGlzIGFsbG93ZWRcbiAgICBmdW5jdGlvbiByZWFjaGluZ0FsbG93ZWQoaW1wb3J0UGF0aCkge1xuICAgICAgcmV0dXJuIGFsbG93UmVnZXhwcy5zb21lKHJlID0+IHJlLnRlc3QoaW1wb3J0UGF0aCkpXG4gICAgfVxuXG4gICAgLy8gbWluaW1hdGNoIHBhdHRlcm5zIGFyZSBleHBlY3RlZCB0byB1c2UgLyBwYXRoIHNlcGFyYXRvcnMsIGxpa2UgaW1wb3J0XG4gICAgLy8gc3RhdGVtZW50cywgc28gbm9ybWFsaXplIHBhdGhzIHRvIHVzZSB0aGUgc2FtZVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVNlcChzb21lUGF0aCkge1xuICAgICAgcmV0dXJuIHNvbWVQYXRoLnNwbGl0KCdcXFxcJykuam9pbignLycpXG4gICAgfVxuXG4gICAgLy8gZmluZCBhIGRpcmVjdG9yeSB0aGF0IGlzIGJlaW5nIHJlYWNoZWQgaW50bywgYnV0IHdoaWNoIHNob3VsZG4ndCBiZVxuICAgIGZ1bmN0aW9uIGlzUmVhY2hWaW9sYXRpb24oaW1wb3J0UGF0aCkge1xuICAgICAgY29uc3Qgc3RlcHMgPSBub3JtYWxpemVTZXAoaW1wb3J0UGF0aClcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiB7XG4gICAgICAgICAgaWYgKCFzdGVwIHx8IHN0ZXAgPT09ICcuJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RlcCA9PT0gJy4uJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjYy5zbGljZSgwLCAtMSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoc3RlcClcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKVxuXG4gICAgICBjb25zdCBub25TY29wZVN0ZXBzID0gc3RlcHMuZmlsdGVyKHN0ZXAgPT4gc3RlcC5pbmRleE9mKCdAJykgIT09IDApXG4gICAgICBpZiAobm9uU2NvcGVTdGVwcy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIC8vIGJlZm9yZSB0cnlpbmcgdG8gcmVzb2x2ZSwgc2VlIGlmIHRoZSByYXcgaW1wb3J0ICh3aXRoIHJlbGF0aXZlXG4gICAgICAvLyBzZWdtZW50cyByZXNvbHZlZCkgbWF0Y2hlcyBhbiBhbGxvd2VkIHBhdHRlcm5cbiAgICAgIGNvbnN0IGp1c3RTdGVwcyA9IHN0ZXBzLmpvaW4oJy8nKVxuICAgICAgaWYgKHJlYWNoaW5nQWxsb3dlZChqdXN0U3RlcHMpIHx8IHJlYWNoaW5nQWxsb3dlZChgLyR7anVzdFN0ZXBzfWApKSByZXR1cm4gZmFsc2VcblxuICAgICAgLy8gaWYgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZG9lc24ndCBtYXRjaCBkaXJlY3RseSwgdHJ5IHRvIG1hdGNoIHRoZVxuICAgICAgLy8gcmVzb2x2ZWQgcGF0aCBpZiB0aGUgaW1wb3J0IGlzIHJlc29sdmFibGVcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuICAgICAgaWYgKCFyZXNvbHZlZCB8fCByZWFjaGluZ0FsbG93ZWQobm9ybWFsaXplU2VwKHJlc29sdmVkKSkpIHJldHVybiBmYWxzZVxuXG4gICAgICAvLyB0aGlzIGltcG9ydCB3YXMgbm90IGFsbG93ZWQgYnkgdGhlIGFsbG93ZWQgcGF0aHMsIGFuZCByZWFjaGVzXG4gICAgICAvLyBzbyBpdCBpcyBhIHZpb2xhdGlvblxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ltcG9ydEZvclJlYWNoaW5nKGltcG9ydFBhdGgsIG5vZGUpIHtcbiAgICAgIGNvbnN0IHBvdGVudGlhbFZpb2xhdGlvblR5cGVzID0gWydwYXJlbnQnLCAnaW5kZXgnLCAnc2libGluZycsICdleHRlcm5hbCcsICdpbnRlcm5hbCddXG4gICAgICBpZiAocG90ZW50aWFsVmlvbGF0aW9uVHlwZXMuaW5kZXhPZihpbXBvcnRUeXBlKGltcG9ydFBhdGgsIGNvbnRleHQpKSAhPT0gLTEgJiZcbiAgICAgICAgaXNSZWFjaFZpb2xhdGlvbihpbXBvcnRQYXRoKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6IGBSZWFjaGluZyB0byBcIiR7aW1wb3J0UGF0aH1cIiBpcyBub3QgYWxsb3dlZC5gLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgICAgfSxcbiAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgY2hlY2tJbXBvcnRGb3JSZWFjaGluZyhub2RlLnNvdXJjZS52YWx1ZSwgbm9kZS5zb3VyY2UpXG4gICAgICB9LFxuICAgICAgRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnNvdXJjZSkge1xuICAgICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgWyBmaXJzdEFyZ3VtZW50IF0gPSBub2RlLmFyZ3VtZW50c1xuICAgICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcoZmlyc3RBcmd1bWVudC52YWx1ZSwgZmlyc3RBcmd1bWVudClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js b/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js
index b703977..30a9eff 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js
@@ -1,32 +1,23 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-mutable-exports')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-mutable-exports') },
+
+    schema: [] },
+
 
   create: function (context) {
-    function checkDeclaration(node) {
-      const kind = node.kind;
-
+    function checkDeclaration(node) {const
+      kind = node.kind;
       if (kind === 'var' || kind === 'let') {
         context.report(node, `Exporting mutable '${kind}' binding, use 'const' instead.`);
       }
     }
 
-    function checkDeclarationsInScope(_ref, name) {
-      let variables = _ref.variables;
-
+    function checkDeclarationsInScope(_ref, name) {let variables = _ref.variables;
       for (let variable of variables) {
         if (variable.name === name) {
           for (let def of variable.defs) {
@@ -60,8 +51,7 @@
 
     return {
       'ExportDefaultDeclaration': handleExportDefault,
-      'ExportNamedDeclaration': handleExportNamed
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1tdXRhYmxlLWV4cG9ydHMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja0RlY2xhcmF0aW9uIiwibm9kZSIsImtpbmQiLCJyZXBvcnQiLCJjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUiLCJuYW1lIiwidmFyaWFibGVzIiwidmFyaWFibGUiLCJkZWYiLCJkZWZzIiwicGFyZW50IiwiaGFuZGxlRXhwb3J0RGVmYXVsdCIsInNjb3BlIiwiZ2V0U2NvcGUiLCJkZWNsYXJhdGlvbiIsImhhbmRsZUV4cG9ydE5hbWVkIiwic291cmNlIiwic3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImxvY2FsIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVI7QUFERCxLQUZGO0FBS0pDLFlBQVE7QUFMSixHQURTOztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDO0FBQUEsWUFDdkJDLElBRHVCLEdBQ2ZELElBRGUsQ0FDdkJDLElBRHVCOztBQUU5QixVQUFJQSxTQUFTLEtBQVQsSUFBa0JBLFNBQVMsS0FBL0IsRUFBc0M7QUFDcENILGdCQUFRSSxNQUFSLENBQWVGLElBQWYsRUFBc0Isc0JBQXFCQyxJQUFLLGlDQUFoRDtBQUNEO0FBQ0Y7O0FBRUQsYUFBU0Usd0JBQVQsT0FBK0NDLElBQS9DLEVBQXFEO0FBQUEsVUFBbEJDLFNBQWtCLFFBQWxCQSxTQUFrQjs7QUFDbkQsV0FBSyxJQUFJQyxRQUFULElBQXFCRCxTQUFyQixFQUFnQztBQUM5QixZQUFJQyxTQUFTRixJQUFULEtBQWtCQSxJQUF0QixFQUE0QjtBQUMxQixlQUFLLElBQUlHLEdBQVQsSUFBZ0JELFNBQVNFLElBQXpCLEVBQStCO0FBQzdCLGdCQUFJRCxJQUFJZCxJQUFKLEtBQWEsVUFBYixJQUEyQmMsSUFBSUUsTUFBbkMsRUFBMkM7QUFDekNWLCtCQUFpQlEsSUFBSUUsTUFBckI7QUFDRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGOztBQUVELGFBQVNDLG1CQUFULENBQTZCVixJQUE3QixFQUFtQztBQUNqQyxZQUFNVyxRQUFRYixRQUFRYyxRQUFSLEVBQWQ7O0FBRUEsVUFBSVosS0FBS2EsV0FBTCxDQUFpQlQsSUFBckIsRUFBMkI7QUFDekJELGlDQUF5QlEsS0FBekIsRUFBZ0NYLEtBQUthLFdBQUwsQ0FBaUJULElBQWpEO0FBQ0Q7QUFDRjs7QUFFRCxhQUFTVSxpQkFBVCxDQUEyQmQsSUFBM0IsRUFBaUM7QUFDL0IsWUFBTVcsUUFBUWIsUUFBUWMsUUFBUixFQUFkOztBQUVBLFVBQUlaLEtBQUthLFdBQVQsRUFBdUI7QUFDckJkLHlCQUFpQkMsS0FBS2EsV0FBdEI7QUFDRCxPQUZELE1BRU8sSUFBSSxDQUFDYixLQUFLZSxNQUFWLEVBQWtCO0FBQ3ZCLGFBQUssSUFBSUMsU0FBVCxJQUFzQmhCLEtBQUtpQixVQUEzQixFQUF1QztBQUNyQ2QsbUNBQXlCUSxLQUF6QixFQUFnQ0ssVUFBVUUsS0FBVixDQUFnQmQsSUFBaEQ7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsV0FBTztBQUNMLGtDQUE0Qk0sbUJBRHZCO0FBRUwsZ0NBQTBCSTtBQUZyQixLQUFQO0FBSUQ7QUFyRGMsQ0FBakIiLCJmaWxlIjoibm8tbXV0YWJsZS1leHBvcnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1tdXRhYmxlLWV4cG9ydHMnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIGNoZWNrRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgY29uc3Qge2tpbmR9ID0gbm9kZVxuICAgICAgaWYgKGtpbmQgPT09ICd2YXInIHx8IGtpbmQgPT09ICdsZXQnKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGBFeHBvcnRpbmcgbXV0YWJsZSAnJHtraW5kfScgYmluZGluZywgdXNlICdjb25zdCcgaW5zdGVhZC5gKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZSh7dmFyaWFibGVzfSwgbmFtZSkge1xuICAgICAgZm9yIChsZXQgdmFyaWFibGUgb2YgdmFyaWFibGVzKSB7XG4gICAgICAgIGlmICh2YXJpYWJsZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgZm9yIChsZXQgZGVmIG9mIHZhcmlhYmxlLmRlZnMpIHtcbiAgICAgICAgICAgIGlmIChkZWYudHlwZSA9PT0gJ1ZhcmlhYmxlJyAmJiBkZWYucGFyZW50KSB7XG4gICAgICAgICAgICAgIGNoZWNrRGVjbGFyYXRpb24oZGVmLnBhcmVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVFeHBvcnREZWZhdWx0KG5vZGUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLm5hbWUpIHtcbiAgICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBub2RlLmRlY2xhcmF0aW9uLm5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0TmFtZWQobm9kZSkge1xuICAgICAgY29uc3Qgc2NvcGUgPSBjb250ZXh0LmdldFNjb3BlKClcblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24pICB7XG4gICAgICAgIGNoZWNrRGVjbGFyYXRpb24obm9kZS5kZWNsYXJhdGlvbilcbiAgICAgIH0gZWxzZSBpZiAoIW5vZGUuc291cmNlKSB7XG4gICAgICAgIGZvciAobGV0IHNwZWNpZmllciBvZiBub2RlLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoc2NvcGUsIHNwZWNpZmllci5sb2NhbC5uYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiBoYW5kbGVFeHBvcnREZWZhdWx0LFxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBoYW5kbGVFeHBvcnROYW1lZCxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      'ExportNamedDeclaration': handleExportNamed };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1tdXRhYmxlLWV4cG9ydHMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja0RlY2xhcmF0aW9uIiwibm9kZSIsImtpbmQiLCJyZXBvcnQiLCJjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUiLCJuYW1lIiwidmFyaWFibGVzIiwidmFyaWFibGUiLCJkZWYiLCJkZWZzIiwicGFyZW50IiwiaGFuZGxlRXhwb3J0RGVmYXVsdCIsInNjb3BlIiwiZ2V0U2NvcGUiLCJkZWNsYXJhdGlvbiIsImhhbmRsZUV4cG9ydE5hbWVkIiwic291cmNlIiwic3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImxvY2FsIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixhQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFDdkJDLFVBRHVCLEdBQ2ZELElBRGUsQ0FDdkJDLElBRHVCO0FBRTlCLFVBQUlBLFNBQVMsS0FBVCxJQUFrQkEsU0FBUyxLQUEvQixFQUFzQztBQUNwQ0gsZ0JBQVFJLE1BQVIsQ0FBZUYsSUFBZixFQUFzQixzQkFBcUJDLElBQUssaUNBQWhEO0FBQ0Q7QUFDRjs7QUFFRCxhQUFTRSx3QkFBVCxPQUErQ0MsSUFBL0MsRUFBcUQsS0FBbEJDLFNBQWtCLFFBQWxCQSxTQUFrQjtBQUNuRCxXQUFLLElBQUlDLFFBQVQsSUFBcUJELFNBQXJCLEVBQWdDO0FBQzlCLFlBQUlDLFNBQVNGLElBQVQsS0FBa0JBLElBQXRCLEVBQTRCO0FBQzFCLGVBQUssSUFBSUcsR0FBVCxJQUFnQkQsU0FBU0UsSUFBekIsRUFBK0I7QUFDN0IsZ0JBQUlELElBQUlkLElBQUosS0FBYSxVQUFiLElBQTJCYyxJQUFJRSxNQUFuQyxFQUEyQztBQUN6Q1YsK0JBQWlCUSxJQUFJRSxNQUFyQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQsYUFBU0MsbUJBQVQsQ0FBNkJWLElBQTdCLEVBQW1DO0FBQ2pDLFlBQU1XLFFBQVFiLFFBQVFjLFFBQVIsRUFBZDs7QUFFQSxVQUFJWixLQUFLYSxXQUFMLENBQWlCVCxJQUFyQixFQUEyQjtBQUN6QkQsaUNBQXlCUSxLQUF6QixFQUFnQ1gsS0FBS2EsV0FBTCxDQUFpQlQsSUFBakQ7QUFDRDtBQUNGOztBQUVELGFBQVNVLGlCQUFULENBQTJCZCxJQUEzQixFQUFpQztBQUMvQixZQUFNVyxRQUFRYixRQUFRYyxRQUFSLEVBQWQ7O0FBRUEsVUFBSVosS0FBS2EsV0FBVCxFQUF1QjtBQUNyQmQseUJBQWlCQyxLQUFLYSxXQUF0QjtBQUNELE9BRkQsTUFFTyxJQUFJLENBQUNiLEtBQUtlLE1BQVYsRUFBa0I7QUFDdkIsYUFBSyxJQUFJQyxTQUFULElBQXNCaEIsS0FBS2lCLFVBQTNCLEVBQXVDO0FBQ3JDZCxtQ0FBeUJRLEtBQXpCLEVBQWdDSyxVQUFVRSxLQUFWLENBQWdCZCxJQUFoRDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPO0FBQ0wsa0NBQTRCTSxtQkFEdkI7QUFFTCxnQ0FBMEJJLGlCQUZyQixFQUFQOztBQUlELEdBckRjLEVBQWpCIiwiZmlsZSI6Im5vLW11dGFibGUtZXhwb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGNvbnN0IHtraW5kfSA9IG5vZGVcbiAgICAgIGlmIChraW5kID09PSAndmFyJyB8fCBraW5kID09PSAnbGV0Jykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwb3J0aW5nIG11dGFibGUgJyR7a2luZH0nIGJpbmRpbmcsIHVzZSAnY29uc3QnIGluc3RlYWQuYClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoe3ZhcmlhYmxlc30sIG5hbWUpIHtcbiAgICAgIGZvciAobGV0IHZhcmlhYmxlIG9mIHZhcmlhYmxlcykge1xuICAgICAgICBpZiAodmFyaWFibGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgIGZvciAobGV0IGRlZiBvZiB2YXJpYWJsZS5kZWZzKSB7XG4gICAgICAgICAgICBpZiAoZGVmLnR5cGUgPT09ICdWYXJpYWJsZScgJiYgZGVmLnBhcmVudCkge1xuICAgICAgICAgICAgICBjaGVja0RlY2xhcmF0aW9uKGRlZi5wYXJlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuXG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5uYW1lKSB7XG4gICAgICAgIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZShzY29wZSwgbm9kZS5kZWNsYXJhdGlvbi5uYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZUV4cG9ydE5hbWVkKG5vZGUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uKSAge1xuICAgICAgICBjaGVja0RlY2xhcmF0aW9uKG5vZGUuZGVjbGFyYXRpb24pXG4gICAgICB9IGVsc2UgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgICBmb3IgKGxldCBzcGVjaWZpZXIgb2Ygbm9kZS5zcGVjaWZpZXJzKSB7XG4gICAgICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBzcGVjaWZpZXIubG9jYWwubmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogaGFuZGxlRXhwb3J0RGVmYXVsdCxcbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogaGFuZGxlRXhwb3J0TmFtZWQsXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js
index 27394b3..4ef823f 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js
@@ -1,18 +1,12 @@
 'use strict';
 
-var _ExportMap = require('../ExportMap');
 
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
 
-var _importDeclaration = require('../importDeclaration');
 
-var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
 
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _importDeclaration = require('../importDeclaration');var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 //------------------------------------------------------------------------------
 // Rule Definition
@@ -22,10 +16,10 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-named-as-default-member')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-named-as-default-member') },
+
+    schema: [] },
+
 
   create: function (context) {
 
@@ -44,8 +38,8 @@
 
       fileImports.set(node.local.name, {
         exportMap,
-        sourcePath: declaration.source.value
-      });
+        sourcePath: declaration.source.value });
+
     }
 
     function storePropertyLookup(objectName, propName, node) {
@@ -61,13 +55,15 @@
     }
 
     function handleDestructuringAssignment(node) {
-      const isDestructure = node.id.type === 'ObjectPattern' && node.init != null && node.init.type === 'Identifier';
+      const isDestructure =
+      node.id.type === 'ObjectPattern' &&
+      node.init != null &&
+      node.init.type === 'Identifier';
+
       if (!isDestructure) return;
 
       const objectName = node.init.name;
-      for (const _ref of node.id.properties) {
-        const key = _ref.key;
-
+      for (const _ref of node.id.properties) {const key = _ref.key;
         if (key == null) continue; // true for rest properties
         storePropertyLookup(objectName, key.name, key);
       }
@@ -78,18 +74,20 @@
         const fileImport = fileImports.get(objectName);
         if (fileImport == null) return;
 
-        for (const _ref2 of lookups) {
-          const propName = _ref2.propName;
-          const node = _ref2.node;
-
+        for (const _ref2 of lookups) {const propName = _ref2.propName;const node = _ref2.node;
           // the default import can have a "default" property
           if (propName === 'default') continue;
           if (!fileImport.exportMap.namespace.has(propName)) continue;
 
           context.report({
             node,
-            message: `Caution: \`${objectName}\` also has a named export ` + `\`${propName}\`. Check if you meant to write ` + `\`import {${propName}} from '${fileImport.sourcePath}'\` ` + 'instead.'
-          });
+            message:
+            `Caution: \`${objectName}\` also has a named export ` +
+            `\`${propName}\`. Check if you meant to write ` +
+            `\`import {${propName}} from '${fileImport.sourcePath}'\` ` +
+            'instead.' });
+
+
         }
       });
     }
@@ -98,13 +96,12 @@
       'ImportDefaultSpecifier': handleImportDefault,
       'MemberExpression': handlePropLookup,
       'VariableDeclarator': handleDestructuringAssignment,
-      'Program:exit': handleProgramExit
-    };
-  }
-}; /**
-    * @fileoverview Rule to warn about potentially confused use of name exports
-    * @author Desmond Brand
-    * @copyright 2016 Desmond Brand. All rights reserved.
-    * See LICENSE in root directory for full license.
-    */
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImZpbGVJbXBvcnRzIiwiTWFwIiwiYWxsUHJvcGVydHlMb29rdXBzIiwiaGFuZGxlSW1wb3J0RGVmYXVsdCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImV4cG9ydE1hcCIsIkV4cG9ydHMiLCJnZXQiLCJzb3VyY2UiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsInNldCIsImxvY2FsIiwibmFtZSIsInNvdXJjZVBhdGgiLCJzdG9yZVByb3BlcnR5TG9va3VwIiwib2JqZWN0TmFtZSIsInByb3BOYW1lIiwibG9va3VwcyIsInB1c2giLCJoYW5kbGVQcm9wTG9va3VwIiwib2JqZWN0IiwicHJvcGVydHkiLCJoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCIsImlzRGVzdHJ1Y3R1cmUiLCJpZCIsImluaXQiLCJwcm9wZXJ0aWVzIiwia2V5IiwiaGFuZGxlUHJvZ3JhbUV4aXQiLCJmb3JFYWNoIiwiZmlsZUltcG9ydCIsIm5hbWVzcGFjZSIsImhhcyIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7O0FBTUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRO0FBTEosR0FEUzs7QUFTZkMsVUFBUSxVQUFTQyxPQUFULEVBQWtCOztBQUV4QixVQUFNQyxjQUFjLElBQUlDLEdBQUosRUFBcEI7QUFDQSxVQUFNQyxxQkFBcUIsSUFBSUQsR0FBSixFQUEzQjs7QUFFQSxhQUFTRSxtQkFB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akI7QUFJTCxzQkFBZ0JNO0FBSlgsS0FBUDtBQU1EO0FBdEZjLENBQWpCLEMsQ0FkQSIsImZpbGUiOiJuby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXInKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgIGNvbnN0IGFsbFByb3BlcnR5TG9va3VwcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlSW1wb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG4gICAgICBjb25zdCBleHBvcnRNYXAgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoZXhwb3J0TWFwID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoZXhwb3J0TWFwLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZXhwb3J0TWFwLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVJbXBvcnRzLnNldChub2RlLmxvY2FsLm5hbWUsIHtcbiAgICAgICAgZXhwb3J0TWFwLFxuICAgICAgICBzb3VyY2VQYXRoOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpIHtcbiAgICAgIGNvbnN0IGxvb2t1cHMgPSBhbGxQcm9wZXJ0eUxvb2t1cHMuZ2V0KG9iamVjdE5hbWUpIHx8IFtdXG4gICAgICBsb29rdXBzLnB1c2goe25vZGUsIHByb3BOYW1lfSlcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3VwcylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9wTG9va3VwKG5vZGUpIHtcbiAgICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLm9iamVjdC5uYW1lXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5vZGUucHJvcGVydHkubmFtZVxuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudChub2RlKSB7XG4gICAgICBjb25zdCBpc0Rlc3RydWN0dXJlID0gKFxuICAgICAgICBub2RlLmlkLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJyAmJlxuICAgICAgICBub2RlLmluaXQgIT0gbnVsbCAmJlxuICAgICAgICBub2RlLmluaXQudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICApXG4gICAgICBpZiAoIWlzRGVzdHJ1Y3R1cmUpIHJldHVyblxuXG4gICAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5pbml0Lm5hbWVcbiAgICAgIGZvciAoY29uc3QgeyBrZXkgfSBvZiBub2RlLmlkLnByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKGtleSA9PSBudWxsKSBjb250aW51ZSAgLy8gdHJ1ZSBmb3IgcmVzdCBwcm9wZXJ0aWVzXG4gICAgICAgIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwga2V5Lm5hbWUsIGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9ncmFtRXhpdCgpIHtcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVJbXBvcnQgPSBmaWxlSW1wb3J0cy5nZXQob2JqZWN0TmFtZSlcbiAgICAgICAgaWYgKGZpbGVJbXBvcnQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCB7cHJvcE5hbWUsIG5vZGV9IG9mIGxvb2t1cHMpIHtcbiAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBpbXBvcnQgY2FuIGhhdmUgYSBcImRlZmF1bHRcIiBwcm9wZXJ0eVxuICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2RlZmF1bHQnKSBjb250aW51ZVxuICAgICAgICAgIGlmICghZmlsZUltcG9ydC5leHBvcnRNYXAubmFtZXNwYWNlLmhhcyhwcm9wTmFtZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYFxcYCR7cHJvcE5hbWV9XFxgLiBDaGVjayBpZiB5b3UgbWVhbnQgdG8gd3JpdGUgYCArXG4gICAgICAgICAgICAgIGBcXGBpbXBvcnQgeyR7cHJvcE5hbWV9fSBmcm9tICcke2ZpbGVJbXBvcnQuc291cmNlUGF0aH0nXFxgIGAgK1xuICAgICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogaGFuZGxlSW1wb3J0RGVmYXVsdCxcbiAgICAgICdNZW1iZXJFeHByZXNzaW9uJzogaGFuZGxlUHJvcExvb2t1cCxcbiAgICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBoYW5kbGVQcm9ncmFtRXhpdCxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      'Program:exit': handleProgramExit };
+
+  } }; /**
+        * @fileoverview Rule to warn about potentially confused use of name exports
+        * @author Desmond Brand
+        * @copyright 2016 Desmond Brand. All rights reserved.
+        * See LICENSE in root directory for full license.
+        */
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImZpbGVJbXBvcnRzIiwiTWFwIiwiYWxsUHJvcGVydHlMb29rdXBzIiwiaGFuZGxlSW1wb3J0RGVmYXVsdCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImV4cG9ydE1hcCIsIkV4cG9ydHMiLCJnZXQiLCJzb3VyY2UiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsInNldCIsImxvY2FsIiwibmFtZSIsInNvdXJjZVBhdGgiLCJzdG9yZVByb3BlcnR5TG9va3VwIiwib2JqZWN0TmFtZSIsInByb3BOYW1lIiwibG9va3VwcyIsInB1c2giLCJoYW5kbGVQcm9wTG9va3VwIiwib2JqZWN0IiwicHJvcGVydHkiLCJoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCIsImlzRGVzdHJ1Y3R1cmUiLCJpZCIsImluaXQiLCJwcm9wZXJ0aWVzIiwia2V5IiwiaGFuZGxlUHJvZ3JhbUV4aXQiLCJmb3JFYWNoIiwiZmlsZUltcG9ydCIsIm5hbWVzcGFjZSIsImhhcyIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVNDLE9BQVQsRUFBa0I7O0FBRXhCLFVBQU1DLGNBQWMsSUFBSUMsR0FBSixFQUFwQjtBQUNBLFVBQU1DLHFCQUFxQixJQUFJRCxHQUFKLEVBQTNCOztBQUVBLGFBQVNF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c0JBQWdCTSxpQkFKWCxFQUFQOztBQU1ELEdBdEZjLEVBQWpCLEMsQ0FkQSIsImZpbGUiOiJuby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXInKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgIGNvbnN0IGFsbFByb3BlcnR5TG9va3VwcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlSW1wb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG4gICAgICBjb25zdCBleHBvcnRNYXAgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoZXhwb3J0TWFwID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoZXhwb3J0TWFwLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZXhwb3J0TWFwLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVJbXBvcnRzLnNldChub2RlLmxvY2FsLm5hbWUsIHtcbiAgICAgICAgZXhwb3J0TWFwLFxuICAgICAgICBzb3VyY2VQYXRoOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpIHtcbiAgICAgIGNvbnN0IGxvb2t1cHMgPSBhbGxQcm9wZXJ0eUxvb2t1cHMuZ2V0KG9iamVjdE5hbWUpIHx8IFtdXG4gICAgICBsb29rdXBzLnB1c2goe25vZGUsIHByb3BOYW1lfSlcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3VwcylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9wTG9va3VwKG5vZGUpIHtcbiAgICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLm9iamVjdC5uYW1lXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5vZGUucHJvcGVydHkubmFtZVxuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudChub2RlKSB7XG4gICAgICBjb25zdCBpc0Rlc3RydWN0dXJlID0gKFxuICAgICAgICBub2RlLmlkLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJyAmJlxuICAgICAgICBub2RlLmluaXQgIT0gbnVsbCAmJlxuICAgICAgICBub2RlLmluaXQudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICApXG4gICAgICBpZiAoIWlzRGVzdHJ1Y3R1cmUpIHJldHVyblxuXG4gICAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5pbml0Lm5hbWVcbiAgICAgIGZvciAoY29uc3QgeyBrZXkgfSBvZiBub2RlLmlkLnByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKGtleSA9PSBudWxsKSBjb250aW51ZSAgLy8gdHJ1ZSBmb3IgcmVzdCBwcm9wZXJ0aWVzXG4gICAgICAgIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwga2V5Lm5hbWUsIGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9ncmFtRXhpdCgpIHtcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVJbXBvcnQgPSBmaWxlSW1wb3J0cy5nZXQob2JqZWN0TmFtZSlcbiAgICAgICAgaWYgKGZpbGVJbXBvcnQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCB7cHJvcE5hbWUsIG5vZGV9IG9mIGxvb2t1cHMpIHtcbiAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBpbXBvcnQgY2FuIGhhdmUgYSBcImRlZmF1bHRcIiBwcm9wZXJ0eVxuICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2RlZmF1bHQnKSBjb250aW51ZVxuICAgICAgICAgIGlmICghZmlsZUltcG9ydC5leHBvcnRNYXAubmFtZXNwYWNlLmhhcyhwcm9wTmFtZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYFxcYCR7cHJvcE5hbWV9XFxgLiBDaGVjayBpZiB5b3UgbWVhbnQgdG8gd3JpdGUgYCArXG4gICAgICAgICAgICAgIGBcXGBpbXBvcnQgeyR7cHJvcE5hbWV9fSBmcm9tICcke2ZpbGVJbXBvcnQuc291cmNlUGF0aH0nXFxgIGAgK1xuICAgICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogaGFuZGxlSW1wb3J0RGVmYXVsdCxcbiAgICAgICdNZW1iZXJFeHByZXNzaW9uJzogaGFuZGxlUHJvcExvb2t1cCxcbiAgICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBoYW5kbGVQcm9ncmFtRXhpdCxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js
index 8376f9d..0b8d213 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js
@@ -1,27 +1,15 @@
-'use strict';
-
-var _ExportMap = require('../ExportMap');
-
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
-
-var _importDeclaration = require('../importDeclaration');
-
-var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
+var _importDeclaration = require('../importDeclaration');var _importDeclaration2 = _interopRequireDefault(_importDeclaration);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-named-as-default')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-named-as-default') },
+
+    schema: [] },
+
 
   create: function (context) {
     function checkDefault(nameKey, defaultSpecifier) {
@@ -38,15 +26,18 @@
         return;
       }
 
-      if (imports.has('default') && imports.has(defaultSpecifier[nameKey].name)) {
+      if (imports.has('default') &&
+      imports.has(defaultSpecifier[nameKey].name)) {
 
-        context.report(defaultSpecifier, 'Using exported name \'' + defaultSpecifier[nameKey].name + '\' as identifier for default export.');
+        context.report(defaultSpecifier,
+        'Using exported name \'' + defaultSpecifier[nameKey].name +
+        '\' as identifier for default export.');
+
       }
     }
     return {
       'ImportDefaultSpecifier': checkDefault.bind(null, 'local'),
-      'ExportDefaultSpecifier': checkDefault.bind(null, 'exported')
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0IiwibmFtZUtleSIsImRlZmF1bHRTcGVjaWZpZXIiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwiaGFzIiwicmVwb3J0IiwiYmluZCJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixhQUFTQyxZQUFULENBQXNCQyxPQUF0QixFQUErQkMsZ0JBQS9CLEVBQWlEO0FBQy9DO0FBQ0EsVUFBSUEsaUJBQWlCRCxPQUFqQixFQUEwQkUsSUFBMUIsS0FBbUMsU0FBdkMsRUFBa0Q7O0FBRWxELFVBQUlDLGNBQWMsaUNBQWtCTCxPQUFsQixDQUFsQjs7QUFFQSxVQUFJTSxVQUFVQyxvQkFBUUMsR0FBUixDQUFZSCxZQUFZSSxNQUFaLENBQW1CQyxLQUEvQixFQUFzQ1YsT0FBdEMsQ0FBZDtBQUNBLFVBQUlNLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsVUFBSUEsUUFBUUssTUFBUixDQUFlQyxNQUFuQixFQUEyQjtBQUN6Qk4sZ0JBQVFPLFlBQVIsQ0FBcUJiLE9BQXJCLEVBQThCSyxXQUE5QjtBQUNBO0FBQ0Q7O0FBRUQsVUFBSUMsUUFBUVEsR0FBUixDQUFZLFNBQVosS0FDQVIsUUFBUVEsR0FBUixDQUFZWCxpQkFBaUJELE9BQWpCLEVBQTBCRSxJQUF0QyxDQURKLEVBQ2lEOztBQUUvQ0osZ0JBQVFlLE1BQVIsQ0FBZVosZ0JBQWYsRUFDRSwyQkFBMkJBLGlCQUFpQkQsT0FBakIsRUFBMEJFLElBQXJELEdBQ0Esc0NBRkY7QUFJRDtBQUNGO0FBQ0QsV0FBTztBQUNMLGdDQUEwQkgsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixPQUF4QixDQURyQjtBQUVMLGdDQUEwQmYsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixVQUF4QjtBQUZyQixLQUFQO0FBSUQ7QUFyQ2MsQ0FBakIiLCJmaWxlIjoibm8tbmFtZWQtYXMtZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtYXMtZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KG5hbWVLZXksIGRlZmF1bHRTcGVjaWZpZXIpIHtcbiAgICAgIC8vICM1NjY6IGRlZmF1bHQgaXMgYSB2YWxpZCBzcGVjaWZpZXJcbiAgICAgIGlmIChkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUgPT09ICdkZWZhdWx0JykgcmV0dXJuXG5cbiAgICAgIHZhciBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG5cbiAgICAgIHZhciBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoaW1wb3J0cy5oYXMoJ2RlZmF1bHQnKSAmJlxuICAgICAgICAgIGltcG9ydHMuaGFzKGRlZmF1bHRTcGVjaWZpZXJbbmFtZUtleV0ubmFtZSkpIHtcblxuICAgICAgICBjb250ZXh0LnJlcG9ydChkZWZhdWx0U3BlY2lmaWVyLFxuICAgICAgICAgICdVc2luZyBleHBvcnRlZCBuYW1lIFxcJycgKyBkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUgK1xuICAgICAgICAgICdcXCcgYXMgaWRlbnRpZmllciBmb3IgZGVmYXVsdCBleHBvcnQuJylcblxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnbG9jYWwnKSxcbiAgICAgICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2V4cG9ydGVkJyksXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      'ExportDefaultSpecifier': checkDefault.bind(null, 'exported') };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0IiwibmFtZUtleSIsImRlZmF1bHRTcGVjaWZpZXIiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwiaGFzIiwicmVwb3J0IiwiYmluZCJdLCJtYXBwaW5ncyI6ImFBQUEseUM7QUFDQSx5RDtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLFlBQVQsQ0FBc0JDLE9BQXRCLEVBQStCQyxnQkFBL0IsRUFBaUQ7QUFDL0M7QUFDQSxVQUFJQSxpQkFBaUJELE9BQWpCLEVBQTBCRSxJQUExQixLQUFtQyxTQUF2QyxFQUFrRDs7QUFFbEQsVUFBSUMsY0FBYyxpQ0FBa0JMLE9BQWxCLENBQWxCOztBQUVBLFVBQUlNLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlILFlBQVlJLE1BQVosQ0FBbUJDLEtBQS9CLEVBQXNDVixPQUF0QyxDQUFkO0FBQ0EsVUFBSU0sV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSyxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTixnQkFBUU8sWUFBUixDQUFxQmIsT0FBckIsRUFBOEJLLFdBQTlCO0FBQ0E7QUFDRDs7QUFFRCxVQUFJQyxRQUFRUSxHQUFSLENBQVksU0FBWjtBQUNBUixjQUFRUSxHQUFSLENBQVlYLGlCQUFpQkQsT0FBakIsRUFBMEJFLElBQXRDLENBREosRUFDaUQ7O0FBRS9DSixnQkFBUWUsTUFBUixDQUFlWixnQkFBZjtBQUNFLG1DQUEyQkEsaUJBQWlCRCxPQUFqQixFQUEwQkUsSUFBckQ7QUFDQSw4Q0FGRjs7QUFJRDtBQUNGO0FBQ0QsV0FBTztBQUNMLGdDQUEwQkgsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixPQUF4QixDQURyQjtBQUVMLGdDQUEwQmYsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixVQUF4QixDQUZyQixFQUFQOztBQUlELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLW5hbWVkLWFzLWRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIGNoZWNrRGVmYXVsdChuYW1lS2V5LCBkZWZhdWx0U3BlY2lmaWVyKSB7XG4gICAgICAvLyAjNTY2OiBkZWZhdWx0IGlzIGEgdmFsaWQgc3BlY2lmaWVyXG4gICAgICBpZiAoZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lID09PSAnZGVmYXVsdCcpIHJldHVyblxuXG4gICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuaGFzKCdkZWZhdWx0JykgJiZcbiAgICAgICAgICBpbXBvcnRzLmhhcyhkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUpKSB7XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgICAnVXNpbmcgZXhwb3J0ZWQgbmFtZSBcXCcnICsgZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lICtcbiAgICAgICAgICAnXFwnIGFzIGlkZW50aWZpZXIgZm9yIGRlZmF1bHQgZXhwb3J0LicpXG5cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2xvY2FsJyksXG4gICAgICAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdleHBvcnRlZCcpLFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-default.js b/node_modules/eslint-plugin-import/lib/rules/no-named-default.js
index 63565df..e877c7b 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-named-default.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-named-default.js
@@ -1,19 +1,13 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-named-default')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-named-default') },
+
+    schema: [] },
+
 
   create: function (context) {
     return {
@@ -25,8 +19,7 @@
               message: `Use default import syntax to import '${im.local.name}'.` });
           }
         });
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwiaW0iLCJpbXBvcnRlZCIsIm5hbWUiLCJyZXBvcnQiLCJsb2NhbCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxrQkFBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsMkJBQXFCLFVBQVVDLElBQVYsRUFBZ0I7QUFDbkNBLGFBQUtDLFVBQUwsQ0FBZ0JDLE9BQWhCLENBQXdCLFVBQVVDLEVBQVYsRUFBYztBQUNwQyxjQUFJQSxHQUFHVCxJQUFILEtBQVksaUJBQVosSUFBaUNTLEdBQUdDLFFBQUgsQ0FBWUMsSUFBWixLQUFxQixTQUExRCxFQUFxRTtBQUNuRU4sb0JBQVFPLE1BQVIsQ0FBZTtBQUNiTixvQkFBTUcsR0FBR0ksS0FESTtBQUViQyx1QkFBVSx3Q0FBdUNMLEdBQUdJLEtBQUgsQ0FBU0YsSUFBSyxJQUZsRCxFQUFmO0FBR0Q7QUFDRixTQU5EO0FBT0Q7QUFUSSxLQUFQO0FBV0Q7QUFyQmMsQ0FBakIiLCJmaWxlIjoibm8tbmFtZWQtZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICAgIGlmIChpbS50eXBlID09PSAnSW1wb3J0U3BlY2lmaWVyJyAmJiBpbS5pbXBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZTogaW0ubG9jYWwsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBVc2UgZGVmYXVsdCBpbXBvcnQgc3ludGF4IHRvIGltcG9ydCAnJHtpbS5sb2NhbC5uYW1lfScuYCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwiaW0iLCJpbXBvcnRlZCIsIm5hbWUiLCJyZXBvcnQiLCJsb2NhbCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxrQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTCwyQkFBcUIsVUFBVUMsSUFBVixFQUFnQjtBQUNuQ0EsYUFBS0MsVUFBTCxDQUFnQkMsT0FBaEIsQ0FBd0IsVUFBVUMsRUFBVixFQUFjO0FBQ3BDLGNBQUlBLEdBQUdULElBQUgsS0FBWSxpQkFBWixJQUFpQ1MsR0FBR0MsUUFBSCxDQUFZQyxJQUFaLEtBQXFCLFNBQTFELEVBQXFFO0FBQ25FTixvQkFBUU8sTUFBUixDQUFlO0FBQ2JOLG9CQUFNRyxHQUFHSSxLQURJO0FBRWJDLHVCQUFVLHdDQUF1Q0wsR0FBR0ksS0FBSCxDQUFTRixJQUFLLElBRmxELEVBQWY7QUFHRDtBQUNGLFNBTkQ7QUFPRCxPQVRJLEVBQVA7O0FBV0QsR0FyQmMsRUFBakIiLCJmaWxlIjoibm8tbmFtZWQtZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICAgIGlmIChpbS50eXBlID09PSAnSW1wb3J0U3BlY2lmaWVyJyAmJiBpbS5pbXBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZTogaW0ubG9jYWwsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBVc2UgZGVmYXVsdCBpbXBvcnQgc3ludGF4IHRvIGltcG9ydCAnJHtpbS5sb2NhbC5uYW1lfScuYCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-export.js b/node_modules/eslint-plugin-import/lib/rules/no-named-export.js
index b9ec45b..8139a6b 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-named-export.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-named-export.js
@@ -1,17 +1,11 @@
-'use strict';
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: { url: (0, _docsUrl2.default)('no-named-export') },
-    schema: []
-  },
+    schema: [] },
+
 
   create(context) {
     // ignore non-modules
@@ -35,8 +29,7 @@
         if (someNamed) {
           context.report({ node, message });
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJwYXJzZXJPcHRpb25zIiwic291cmNlVHlwZSIsIm1lc3NhZ2UiLCJFeHBvcnRBbGxEZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwic3BlY2lmaWVycyIsImxlbmd0aCIsInNvbWVOYW1lZCIsInNvbWUiLCJzcGVjaWZpZXIiLCJleHBvcnRlZCIsIm5hbWUiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU0sRUFBRUMsS0FBSyx1QkFBUSxpQkFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUTtBQUhKLEdBRFM7O0FBT2ZDLFNBQU9DLE9BQVAsRUFBZ0I7QUFDZDtBQUNBLFFBQUlBLFFBQVFDLGFBQVIsQ0FBc0JDLFVBQXRCLEtBQXFDLFFBQXpDLEVBQW1EO0FBQ2pELGFBQU8sRUFBUDtBQUNEOztBQUVELFVBQU1DLFVBQVUsZ0NBQWhCOztBQUVBLFdBQU87QUFDTEMsMkJBQXFCQyxJQUFyQixFQUEyQjtBQUN6QkwsZ0JBQVFNLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9GLE9BQVAsRUFBZjtBQUNELE9BSEk7O0FBS0xJLDZCQUF1QkYsSUFBdkIsRUFBNkI7QUFDM0IsWUFBSUEsS0FBS0csVUFBTCxDQUFnQkMsTUFBaEIsS0FBMkIsQ0FBL0IsRUFBa0M7QUFDaEMsaUJBQU9ULFFBQVFNLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9GLE9BQVAsRUFBZixDQUFQO0FBQ0Q7O0FBRUQsY0FBTU8sWUFBWUwsS0FBS0csVUFBTCxDQUFnQkcsSUFBaEIsQ0FBcUJDLGFBQWFBLFVBQVVDLFFBQVYsQ0FBbUJDLElBQW5CLEtBQTRCLFNBQTlELENBQWxCO0FBQ0EsWUFBSUosU0FBSixFQUFlO0FBQ2JWLGtCQUFRTSxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRixPQUFQLEVBQWY7QUFDRDtBQUNGO0FBZEksS0FBUDtBQWdCRDtBQS9CYyxDQUFqQiIsImZpbGUiOiJuby1uYW1lZC1leHBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7IHVybDogZG9jc1VybCgnbm8tbmFtZWQtZXhwb3J0JykgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgLy8gaWdub3JlIG5vbi1tb2R1bGVzXG4gICAgaWYgKGNvbnRleHQucGFyc2VyT3B0aW9ucy5zb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZSA9ICdOYW1lZCBleHBvcnRzIGFyZSBub3QgYWxsb3dlZC4nXG5cbiAgICByZXR1cm4ge1xuICAgICAgRXhwb3J0QWxsRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZX0pXG4gICAgICB9LFxuXG4gICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc3BlY2lmaWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5yZXBvcnQoe25vZGUsIG1lc3NhZ2V9KVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc29tZU5hbWVkID0gbm9kZS5zcGVjaWZpZXJzLnNvbWUoc3BlY2lmaWVyID0+IHNwZWNpZmllci5leHBvcnRlZC5uYW1lICE9PSAnZGVmYXVsdCcpXG4gICAgICAgIGlmIChzb21lTmFtZWQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZX0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJwYXJzZXJPcHRpb25zIiwic291cmNlVHlwZSIsIm1lc3NhZ2UiLCJFeHBvcnRBbGxEZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwic3BlY2lmaWVycyIsImxlbmd0aCIsInNvbWVOYW1lZCIsInNvbWUiLCJzcGVjaWZpZXIiLCJleHBvcnRlZCIsIm5hbWUiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU0sRUFBRUMsS0FBSyx1QkFBUSxpQkFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxFQUhKLEVBRFM7OztBQU9mQyxTQUFPQyxPQUFQLEVBQWdCO0FBQ2Q7QUFDQSxRQUFJQSxRQUFRQyxhQUFSLENBQXNCQyxVQUF0QixLQUFxQyxRQUF6QyxFQUFtRDtBQUNqRCxhQUFPLEVBQVA7QUFDRDs7QUFFRCxVQUFNQyxVQUFVLGdDQUFoQjs7QUFFQSxXQUFPO0FBQ0xDLDJCQUFxQkMsSUFBckIsRUFBMkI7QUFDekJMLGdCQUFRTSxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRixPQUFQLEVBQWY7QUFDRCxPQUhJOztBQUtMSSw2QkFBdUJGLElBQXZCLEVBQTZCO0FBQzNCLFlBQUlBLEtBQUtHLFVBQUwsQ0FBZ0JDLE1BQWhCLEtBQTJCLENBQS9CLEVBQWtDO0FBQ2hDLGlCQUFPVCxRQUFRTSxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRixPQUFQLEVBQWYsQ0FBUDtBQUNEOztBQUVELGNBQU1PLFlBQVlMLEtBQUtHLFVBQUwsQ0FBZ0JHLElBQWhCLENBQXFCQyxhQUFhQSxVQUFVQyxRQUFWLENBQW1CQyxJQUFuQixLQUE0QixTQUE5RCxDQUFsQjtBQUNBLFlBQUlKLFNBQUosRUFBZTtBQUNiVixrQkFBUU0sTUFBUixDQUFlLEVBQUNELElBQUQsRUFBT0YsT0FBUCxFQUFmO0FBQ0Q7QUFDRixPQWRJLEVBQVA7O0FBZ0JELEdBL0JjLEVBQWpCIiwiZmlsZSI6Im5vLW5hbWVkLWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHsgdXJsOiBkb2NzVXJsKCduby1uYW1lZC1leHBvcnQnKSB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlID0gJ05hbWVkIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkLidcblxuICAgIHJldHVybiB7XG4gICAgICBFeHBvcnRBbGxEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlfSlcbiAgICAgIH0sXG5cbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZX0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb21lTmFtZWQgPSBub2RlLnNwZWNpZmllcnMuc29tZShzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUgIT09ICdkZWZhdWx0JylcbiAgICAgICAgaWYgKHNvbWVOYW1lZCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-namespace.js b/node_modules/eslint-plugin-import/lib/rules/no-namespace.js
index b25a26e..2a24bf8 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-namespace.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-namespace.js
@@ -1,36 +1,32 @@
 'use strict';
 
-var _docsUrl = require('../docsUrl');
 
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
 
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } /**
-                                                                                                                                                                                                 * @fileoverview Rule to disallow namespace import
-                                                                                                                                                                                                 * @author Radek Benkel
-                                                                                                                                                                                                 */
-
-//------------------------------------------------------------------------------
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _toConsumableArray(arr) {if (Array.isArray(arr)) {for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];return arr2;} else {return Array.from(arr);}} /**
+                                                                                                                                                                                                                                                                                                                                                                             * @fileoverview Rule to disallow namespace import
+                                                                                                                                                                                                                                                                                                                                                                             * @author Radek Benkel
+                                                                                                                                                                                                                                                                                                                                                                             */ //------------------------------------------------------------------------------
 // Rule Definition
 //------------------------------------------------------------------------------
 
-
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-namespace')
-    },
+      url: (0, _docsUrl2.default)('no-namespace') },
+
     fixable: 'code',
-    schema: []
-  },
+    schema: [] },
+
 
   create: function (context) {
     return {
       'ImportNamespaceSpecifier': function (node) {
         const scopeVariables = context.getScope().variables;
-        const namespaceVariable = scopeVariables.find(variable => variable.defs[0].node === node);
+        const namespaceVariable = scopeVariables.find(variable =>
+        variable.defs[0].node === node);
+
         const namespaceReferences = namespaceVariable.references;
         const namespaceIdentifiers = namespaceReferences.map(reference => reference.identifier);
         const canFix = namespaceIdentifiers.length > 0 && !usesNamespaceAsObject(namespaceIdentifiers);
@@ -60,10 +56,18 @@
 
             // Choose new names for each import
             const importNames = Object.keys(importNameConflicts);
-            const importLocalNames = generateLocalNames(importNames, importNameConflicts, namespaceVariable.name);
+            const importLocalNames = generateLocalNames(
+            importNames,
+            importNameConflicts,
+            namespaceVariable.name);
+
 
             // Replace the ImportNamespaceSpecifier with a list of ImportSpecifiers
-            const namedImportSpecifiers = importNames.map(importName => importName === importLocalNames[importName] ? importName : `${importName} as ${importLocalNames[importName]}`);
+            const namedImportSpecifiers = importNames.map(importName =>
+            importName === importLocalNames[importName] ?
+            importName :
+            `${importName} as ${importLocalNames[importName]}`);
+
             fixes.push(fixer.replaceText(node, `{ ${namedImportSpecifiers.join(', ')} }`));
 
             // Pass 2: Replace references to the namespace with references to the named imports
@@ -76,38 +80,44 @@
             });
 
             return fixes;
-          })
-        });
-      }
-    };
+          }) });
+
+      } };
+
   }
 
+
   /**
-   * @param {Identifier[]} namespaceIdentifiers
-   * @returns {boolean} `true` if the namespace variable is more than just a glorified constant
-   */
-};function usesNamespaceAsObject(namespaceIdentifiers) {
+     * @param {Identifier[]} namespaceIdentifiers
+     * @returns {boolean} `true` if the namespace variable is more than just a glorified constant
+     */ };
+function usesNamespaceAsObject(namespaceIdentifiers) {
   return !namespaceIdentifiers.every(identifier => {
     const parent = identifier.parent;
 
     // `namespace.x` or `namespace['x']`
-    return parent && parent.type === 'MemberExpression' && (parent.property.type === 'Identifier' || parent.property.type === 'Literal');
+    return (
+      parent && parent.type === 'MemberExpression' && (
+      parent.property.type === 'Identifier' || parent.property.type === 'Literal'));
+
   });
 }
 
 /**
- * @param {MemberExpression} memberExpression
- * @returns {string} the name of the member in the object expression, e.g. the `x` in `namespace.x`
- */
+   * @param {MemberExpression} memberExpression
+   * @returns {string} the name of the member in the object expression, e.g. the `x` in `namespace.x`
+   */
 function getMemberPropertyName(memberExpression) {
-  return memberExpression.property.type === 'Identifier' ? memberExpression.property.name : memberExpression.property.value;
+  return memberExpression.property.type === 'Identifier' ?
+  memberExpression.property.name :
+  memberExpression.property.value;
 }
 
 /**
- * @param {ScopeManager} scopeManager
- * @param {ASTNode} node
- * @return {Set<string>}
- */
+   * @param {ScopeManager} scopeManager
+   * @param {ASTNode} node
+   * @return {Set<string>}
+   */
 function getVariableNamesInScope(scopeManager, node) {
   let currentNode = node;
   let scope = scopeManager.acquire(currentNode);
@@ -115,15 +125,18 @@
     currentNode = currentNode.parent;
     scope = scopeManager.acquire(currentNode, true);
   }
-  return new Set([].concat(_toConsumableArray(scope.variables.map(variable => variable.name)), _toConsumableArray(scope.upper.variables.map(variable => variable.name))));
+  return new Set([].concat(_toConsumableArray(
+  scope.variables.map(variable => variable.name)), _toConsumableArray(
+  scope.upper.variables.map(variable => variable.name))));
+
 }
 
 /**
- *
- * @param {*} names
- * @param {*} nameConflicts
- * @param {*} namespaceName
- */
+   *
+   * @param {*} names
+   * @param {*} nameConflicts
+   * @param {*} namespaceName
+   */
 function generateLocalNames(names, nameConflicts, namespaceName) {
   const localNames = {};
   names.forEach(name => {
@@ -144,4 +157,4 @@
   });
   return localNames;
 }
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNjb3BlVmFyaWFibGVzIiwiZ2V0U2NvcGUiLCJ2YXJpYWJsZXMiLCJuYW1lc3BhY2VWYXJpYWJsZSIsImZpbmQiLCJ2YXJpYWJsZSIsImRlZnMiLCJuYW1lc3BhY2VSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsIm5hbWVzcGFjZUlkZW50aWZpZXJzIiwibWFwIiwicmVmZXJlbmNlIiwiaWRlbnRpZmllciIsImNhbkZpeCIsImxlbmd0aCIsInVzZXNOYW1lc3BhY2VBc09iamVjdCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaXgiLCJmaXhlciIsInNjb3BlTWFuYWdlciIsImdldFNvdXJjZUNvZGUiLCJmaXhlcyIsImltcG9ydE5hbWVDb25mbGljdHMiLCJmb3JFYWNoIiwicGFyZW50IiwiaW1wb3J0TmFtZSIsImdldE1lbWJlclByb3BlcnR5TmFtZSIsImxvY2FsQ29uZmxpY3RzIiwiZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUiLCJjIiwiYWRkIiwiaW1wb3J0TmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiaW1wb3J0TG9jYWxOYW1lcyIsImdlbmVyYXRlTG9jYWxOYW1lcyIsIm5hbWUiLCJuYW1lZEltcG9ydFNwZWNpZmllcnMiLCJwdXNoIiwicmVwbGFjZVRleHQiLCJqb2luIiwiZXZlcnkiLCJwcm9wZXJ0eSIsIm1lbWJlckV4cHJlc3Npb24iLCJ2YWx1ZSIsImN1cnJlbnROb2RlIiwic2NvcGUiLCJhY3F1aXJlIiwiU2V0IiwidXBwZXIiLCJuYW1lcyIsIm5hbWVDb25mbGljdHMiLCJuYW1lc3BhY2VOYW1lIiwibG9jYWxOYW1lcyIsImxvY2FsTmFtZSIsImhhcyIsImkiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6Ijs7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LEdBQXRCLENBQTBCTCxZQUFZQSxTQUFTZ0MsSUFBL0MsQ0FGRSxHQUFQO0FBSUQ7O0FBRUQ7Ozs7OztBQU1BLFNBQVNELGtCQUFULENBQTRCZSxLQUE1QixFQUFtQ0MsYUFBbkMsRUFBa0RDLGFBQWxELEVBQWlFO0FBQy9ELFFBQU1DLGFBQWEsRUFBbkI7QUFDQUgsUUFBTTNCLE9BQU4sQ0FBZWEsSUFBRCxJQUFVO0FBQ3RCLFFBQUlrQixTQUFKO0FBQ0EsUUFBSSxDQUFDSCxjQUFjZixJQUFkLEVBQW9CbUIsR0FBcEIsQ0FBd0JuQixJQUF4QixDQUFMLEVBQW9DO0FBQ2xDa0Isa0JBQVlsQixJQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUksQ0FBQ2UsY0FBY2YsSUFBZCxFQUFvQm1CLEdBQXBCLENBQXlCLEdBQUVILGFBQWMsSUFBR2hCLElBQUssRUFBakQsQ0FBTCxFQUEwRDtBQUMvRGtCLGtCQUFhLEdBQUVGLGFBQWMsSUFBR2hCLElBQUssRUFBckM7QUFDRCxLQUZNLE1BRUE7QUFDTCxXQUFLLElBQUlvQixJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFFBQXBCLEVBQThCRCxHQUE5QixFQUFtQztBQUNqQyxZQUFJLENBQUNMLGNBQWNmLElBQWQsRUFBb0JtQixHQUFwQixDQUF5QixHQUFFSCxhQUFjLElBQUdoQixJQUFLLElBQUdvQixDQUFFLEVBQXRELENBQUwsRUFBK0Q7QUFDN0RGLHNCQUFhLEdBQUVGLGFBQWMsSUFBR2hCLElBQUssSUFBR29CLENBQUUsRUFBMUM7QUFDQTtBQUNEO0FBQ0Y7QUFDRjtBQUNESCxlQUFXakIsSUFBWCxJQUFtQmtCLFNBQW5CO0FBQ0QsR0FmRDtBQWdCQSxTQUFPRCxVQUFQO0FBQ0QiLCJmaWxlIjoibm8tbmFtZXNwYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgbmFtZXNwYWNlIGltcG9ydFxuICogQGF1dGhvciBSYWRlayBCZW5rZWxcbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZXNwYWNlJyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBjb25zdCBzY29wZVZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0U2NvcGUoKS52YXJpYWJsZXNcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlVmFyaWFibGUgPSBzY29wZVZhcmlhYmxlcy5maW5kKCh2YXJpYWJsZSkgPT5cbiAgICAgICAgICB2YXJpYWJsZS5kZWZzWzBdLm5vZGUgPT09IG5vZGVcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VSZWZlcmVuY2VzID0gbmFtZXNwYWNlVmFyaWFibGUucmVmZXJlbmNlc1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VJZGVudGlmaWVycyA9IG5hbWVzcGFjZVJlZmVyZW5jZXMubWFwKHJlZmVyZW5jZSA9PiByZWZlcmVuY2UuaWRlbnRpZmllcilcbiAgICAgICAgY29uc3QgY2FuRml4ID0gbmFtZXNwYWNlSWRlbnRpZmllcnMubGVuZ3RoID4gMCAmJiAhdXNlc05hbWVzcGFjZUFzT2JqZWN0KG5hbWVzcGFjZUlkZW50aWZpZXJzKVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIG5hbWVzcGFjZSBpbXBvcnQuYCxcbiAgICAgICAgICBmaXg6IGNhbkZpeCAmJiAoZml4ZXIgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2NvcGVNYW5hZ2VyID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkuc2NvcGVNYW5hZ2VyXG4gICAgICAgICAgICBjb25zdCBmaXhlcyA9IFtdXG5cbiAgICAgICAgICAgIC8vIFBhc3MgMTogQ29sbGVjdCB2YXJpYWJsZSBuYW1lcyB0aGF0IGFyZSBhbHJlYWR5IGluIHNjb3BlIGZvciBlYWNoIHJlZmVyZW5jZSB3ZSB3YW50XG4gICAgICAgICAgICAvLyB0byB0cmFuc2Zvcm0sIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCB3ZSBjaG9vc2Ugbm9uLWNvbmZsaWN0aW5nIGltcG9ydCBuYW1lc1xuICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZUNvbmZsaWN0cyA9IHt9XG4gICAgICAgICAgICBuYW1lc3BhY2VJZGVudGlmaWVycy5mb3JFYWNoKChpZGVudGlmaWVyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGlkZW50aWZpZXIucGFyZW50XG4gICAgICAgICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWUgPSBnZXRNZW1iZXJQcm9wZXJ0eU5hbWUocGFyZW50KVxuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsQ29uZmxpY3RzID0gZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUoc2NvcGVNYW5hZ2VyLCBwYXJlbnQpXG4gICAgICAgICAgICAgICAgaWYgKCFpbXBvcnROYW1lQ29uZmxpY3RzW2ltcG9ydE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICBpbXBvcnROYW1lQ29uZmxpY3RzW2ltcG9ydE5hbWVdID0gbG9jYWxDb25mbGljdHNcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbG9jYWxDb25mbGljdHMuZm9yRWFjaCgoYykgPT4gaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXS5hZGQoYykpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAvLyBDaG9vc2UgbmV3IG5hbWVzIGZvciBlYWNoIGltcG9ydFxuICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZXMgPSBPYmplY3Qua2V5cyhpbXBvcnROYW1lQ29uZmxpY3RzKVxuICAgICAgICAgICAgY29uc3QgaW1wb3J0TG9jYWxOYW1lcyA9IGdlbmVyYXRlTG9jYWxOYW1lcyhcbiAgICAgICAgICAgICAgaW1wb3J0TmFtZXMsXG4gICAgICAgICAgICAgIGltcG9ydE5hbWVDb25mbGljdHMsXG4gICAgICAgICAgICAgIG5hbWVzcGFjZVZhcmlhYmxlLm5hbWVcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyIHdpdGggYSBsaXN0IG9mIEltcG9ydFNwZWNpZmllcnNcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkSW1wb3J0U3BlY2lmaWVycyA9IGltcG9ydE5hbWVzLm1hcCgoaW1wb3J0TmFtZSkgPT5cbiAgICAgICAgICAgICAgaW1wb3J0TmFtZSA9PT0gaW1wb3J0TG9jYWxOYW1lc1tpbXBvcnROYW1lXVxuICAgICAgICAgICAgICAgID8gaW1wb3J0TmFtZVxuICAgICAgICAgICAgICAgIDogYCR7aW1wb3J0TmFtZX0gYXMgJHtpbXBvcnRMb2NhbE5hbWVzW2ltcG9ydE5hbWVdfWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVwbGFjZVRleHQobm9kZSwgYHsgJHtuYW1lZEltcG9ydFNwZWNpZmllcnMuam9pbignLCAnKX0gfWApKVxuXG4gICAgICAgICAgICAvLyBQYXNzIDI6IFJlcGxhY2UgcmVmZXJlbmNlcyB0byB0aGUgbmFtZXNwYWNlIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmFtZWQgaW1wb3J0c1xuICAgICAgICAgICAgbmFtZXNwYWNlSWRlbnRpZmllcnMuZm9yRWFjaCgoaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBpZGVudGlmaWVyLnBhcmVudFxuICAgICAgICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbXBvcnROYW1lID0gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKHBhcmVudClcbiAgICAgICAgICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlcGxhY2VUZXh0KHBhcmVudCwgaW1wb3J0TG9jYWxOYW1lc1tpbXBvcnROYW1lXSkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJldHVybiBmaXhlc1xuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG5cbi8qKlxuICogQHBhcmFtIHtJZGVudGlmaWVyW119IG5hbWVzcGFjZUlkZW50aWZpZXJzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBuYW1lc3BhY2UgdmFyaWFibGUgaXMgbW9yZSB0aGFuIGp1c3QgYSBnbG9yaWZpZWQgY29uc3RhbnRcbiAqL1xuZnVuY3Rpb24gdXNlc05hbWVzcGFjZUFzT2JqZWN0KG5hbWVzcGFjZUlkZW50aWZpZXJzKSB7XG4gIHJldHVybiAhbmFtZXNwYWNlSWRlbnRpZmllcnMuZXZlcnkoKGlkZW50aWZpZXIpID0+IHtcbiAgICBjb25zdCBwYXJlbnQgPSBpZGVudGlmaWVyLnBhcmVudFxuXG4gICAgLy8gYG5hbWVzcGFjZS54YCBvciBgbmFtZXNwYWNlWyd4J11gXG4gICAgcmV0dXJuIChcbiAgICAgIHBhcmVudCAmJiBwYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmXG4gICAgICAocGFyZW50LnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJyB8fCBwYXJlbnQucHJvcGVydHkudHlwZSA9PT0gJ0xpdGVyYWwnKVxuICAgIClcbiAgfSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge01lbWJlckV4cHJlc3Npb259IG1lbWJlckV4cHJlc3Npb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBuYW1lIG9mIHRoZSBtZW1iZXIgaW4gdGhlIG9iamVjdCBleHByZXNzaW9uLCBlLmcuIHRoZSBgeGAgaW4gYG5hbWVzcGFjZS54YFxuICovXG5mdW5jdGlvbiBnZXRNZW1iZXJQcm9wZXJ0eU5hbWUobWVtYmVyRXhwcmVzc2lvbikge1xuICByZXR1cm4gbWVtYmVyRXhwcmVzc2lvbi5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICA/IG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkubmFtZVxuICAgIDogbWVtYmVyRXhwcmVzc2lvbi5wcm9wZXJ0eS52YWx1ZVxufVxuXG4vKipcbiAqIEBwYXJhbSB7U2NvcGVNYW5hZ2VyfSBzY29wZU1hbmFnZXJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gbm9kZVxuICogQHJldHVybiB7U2V0PHN0cmluZz59XG4gKi9cbmZ1bmN0aW9uIGdldFZhcmlhYmxlTmFtZXNJblNjb3BlKHNjb3BlTWFuYWdlciwgbm9kZSkge1xuICBsZXQgY3VycmVudE5vZGUgPSBub2RlXG4gIGxldCBzY29wZSA9IHNjb3BlTWFuYWdlci5hY3F1aXJlKGN1cnJlbnROb2RlKVxuICB3aGlsZSAoc2NvcGUgPT0gbnVsbCkge1xuICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50XG4gICAgc2NvcGUgPSBzY29wZU1hbmFnZXIuYWNxdWlyZShjdXJyZW50Tm9kZSwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gbmV3IFNldChbXG4gICAgLi4uc2NvcGUudmFyaWFibGVzLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5uYW1lKSxcbiAgICAuLi5zY29wZS51cHBlci52YXJpYWJsZXMubWFwKHZhcmlhYmxlID0+IHZhcmlhYmxlLm5hbWUpLFxuICBdKVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0geyp9IG5hbWVzXG4gKiBAcGFyYW0geyp9IG5hbWVDb25mbGljdHNcbiAqIEBwYXJhbSB7Kn0gbmFtZXNwYWNlTmFtZVxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUxvY2FsTmFtZXMobmFtZXMsIG5hbWVDb25mbGljdHMsIG5hbWVzcGFjZU5hbWUpIHtcbiAgY29uc3QgbG9jYWxOYW1lcyA9IHt9XG4gIG5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICBsZXQgbG9jYWxOYW1lXG4gICAgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhuYW1lKSkge1xuICAgICAgbG9jYWxOYW1lID0gbmFtZVxuICAgIH0gZWxzZSBpZiAoIW5hbWVDb25mbGljdHNbbmFtZV0uaGFzKGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1gKSkge1xuICAgICAgbG9jYWxOYW1lID0gYCR7bmFtZXNwYWNlTmFtZX1fJHtuYW1lfWBcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBJbmZpbml0eTsgaSsrKSB7XG4gICAgICAgIGlmICghbmFtZUNvbmZsaWN0c1tuYW1lXS5oYXMoYCR7bmFtZXNwYWNlTmFtZX1fJHtuYW1lfV8ke2l9YCkpIHtcbiAgICAgICAgICBsb2NhbE5hbWUgPSBgJHtuYW1lc3BhY2VOYW1lfV8ke25hbWV9XyR7aX1gXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBsb2NhbE5hbWVzW25hbWVdID0gbG9jYWxOYW1lXG4gIH0pXG4gIHJldHVybiBsb2NhbE5hbWVzXG59XG4iXX0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNjb3BlVmFyaWFibGVzIiwiZ2V0U2NvcGUiLCJ2YXJpYWJsZXMiLCJuYW1lc3BhY2VWYXJpYWJsZSIsImZpbmQiLCJ2YXJpYWJsZSIsImRlZnMiLCJuYW1lc3BhY2VSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsIm5hbWVzcGFjZUlkZW50aWZpZXJzIiwibWFwIiwicmVmZXJlbmNlIiwiaWRlbnRpZmllciIsImNhbkZpeCIsImxlbmd0aCIsInVzZXNOYW1lc3BhY2VBc09iamVjdCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaXgiLCJmaXhlciIsInNjb3BlTWFuYWdlciIsImdldFNvdXJjZUNvZGUiLCJmaXhlcyIsImltcG9ydE5hbWVDb25mbGljdHMiLCJmb3JFYWNoIiwicGFyZW50IiwiaW1wb3J0TmFtZSIsImdldE1lbWJlclByb3BlcnR5TmFtZSIsImxvY2FsQ29uZmxpY3RzIiwiZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUiLCJjIiwiYWRkIiwiaW1wb3J0TmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiaW1wb3J0TG9jYWxOYW1lcyIsImdlbmVyYXRlTG9jYWxOYW1lcyIsIm5hbWUiLCJuYW1lZEltcG9ydFNwZWNpZmllcnMiLCJwdXNoIiwicmVwbGFjZVRleHQiLCJqb2luIiwiZXZlcnkiLCJwcm9wZXJ0eSIsIm1lbWJlckV4cHJlc3Npb24iLCJ2YWx1ZSIsImN1cnJlbnROb2RlIiwic2NvcGUiLCJhY3F1aXJlIiwiU2V0IiwidXBwZXIiLCJuYW1lcyIsIm5hbWVDb25mbGljdHMiLCJuYW1lc3BhY2VOYW1lIiwibG9jYWxOYW1lcyIsImxvY2FsTmFtZSIsImhhcyIsImkiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQyx1VUFMQTs7O2dYQU9BO0FBQ0E7QUFDQTs7QUFHQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsY0FBUixDQURELEVBRkY7O0FBS0pDLGFBQVMsTUFMTDtBQU1KQyxZQUFRLEVBTkosRUFEUzs7O0FBVWZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsa0NBQTRCLFVBQVVDLElBQVYsRUFBZ0I7QUFDMUMsY0FBTUMsaUJBQWlCRixRQUFRRyxRQUFSLEdBQW1CQyxTQUExQztBQUNBLGNBQU1DLG9CQUFvQkgsZUFBZUksSUFBZixDQUFxQkMsUUFBRDtBQUM1Q0EsaUJBQVNDLElBQVQsQ0FBYyxDQUFkLEVBQWlCUCxJQUFqQixLQUEwQkEsSUFERixDQUExQjs7QUFHQSxjQUFNUSxzQkFBc0JKLGtCQUFrQkssVUFBOUM7QUFDQSxjQUFNQyx1QkFBdUJGLG9CQUFvQkcsR0FBcEIsQ0FBd0JDLGFBQWFBLFVBQVVDLFVBQS9DLENBQTdCO0FBQ0EsY0FBTUMsU0FBU0oscUJBQXFCSyxNQUFyQixHQUE4QixDQUE5QixJQUFtQyxDQUFDQyxzQkFBc0JOLG9CQUF0QixDQUFuRDs7QUFFQVgsZ0JBQVFrQixNQUFSLENBQWU7QUFDYmpCLGNBRGE7QUFFYmtCLG1CQUFVLDhCQUZHO0FBR2JDLGVBQUtMLFdBQVdNLFNBQVM7QUFDdkIsa0JBQU1DLGVBQWV0QixRQUFRdUIsYUFBUixHQUF3QkQsWUFBN0M7QUFDQSxrQkFBTUUsUUFBUSxFQUFkOztBQUVBO0FBQ0E7QUFDQSxrQkFBTUMsc0JBQXNCLEVBQTVCO0FBQ0FkLGlDQUFxQmUsT0FBckIsQ0FBOEJaLFVBQUQsSUFBZ0I7QUFDM0Msb0JBQU1hLFNBQVNiLFdBQVdhLE1BQTFCO0FBQ0Esa0JBQUlBLFVBQVVBLE9BQU9qQyxJQUFQLEtBQWdCLGtCQUE5QixFQUFrRDtBQUNoRCxzQkFBTWtDLGFBQWFDLHNCQUFzQkYsTUFBdEIsQ0FBbkI7QUFDQSxzQkFBTUcsaUJBQWlCQyx3QkFBd0JULFlBQXhCLEVBQXNDSyxNQUF0QyxDQUF2QjtBQUNBLG9CQUFJLENBQUNGLG9CQUFvQkcsVUFBcEIsQ0FBTCxFQUFzQztBQUNwQ0gsc0NBQW9CRyxVQUFwQixJQUFrQ0UsY0FBbEM7QUFDRCxpQkFGRCxNQUVPO0FBQ0xBLGlDQUFlSixPQUFmLENBQXdCTSxDQUFELElBQU9QLG9CQUFvQkcsVUFBcEIsRUFBZ0NLLEdBQWhDLENBQW9DRCxDQUFwQyxDQUE5QjtBQUNEO0FBQ0Y7QUFDRixhQVhEOztBQWFBO0FBQ0Esa0JBQU1FLGNBQWNDLE9BQU9DLElBQVAsQ0FBWVgsbUJBQVosQ0FBcEI7QUFDQSxrQkFBTVksbUJBQW1CQztBQUN2QkosdUJBRHVCO0FBRXZCVCwrQkFGdUI7QUFHdkJwQiw4QkFBa0JrQyxJQUhLLENBQXpCOzs7QUFNQTtBQUNBLGtCQUFNQyx3QkFBd0JOLFlBQVl0QixHQUFaLENBQWlCZ0IsVUFBRDtBQUM1Q0EsMkJBQWVTLGlCQUFpQlQsVUFBakIsQ0FBZjtBQUNJQSxzQkFESjtBQUVLLGVBQUVBLFVBQVcsT0FBTVMsaUJBQWlCVCxVQUFqQixDQUE2QixFQUh6QixDQUE5Qjs7QUFLQUosa0JBQU1pQixJQUFOLENBQVdwQixNQUFNcUIsV0FBTixDQUFrQnpDLElBQWxCLEVBQXlCLEtBQUl1QyxzQkFBc0JHLElBQXRCLENBQTJCLElBQTNCLENBQWlDLElBQTlELENBQVg7O0FBRUE7QUFDQWhDLGlDQUFxQmUsT0FBckIsQ0FBOEJaLFVBQUQsSUFBZ0I7QUFDM0Msb0JBQU1hLFNBQVNiLFdBQVdhLE1BQTFCO0FBQ0Esa0JBQUlBLFVBQVVBLE9BQU9qQyxJQUFQLEtBQWdCLGtCQUE5QixFQUFrRDtBQUNoRCxzQkFBTWtDLGFBQWFDLHNCQUFzQkYsTUFBdEIsQ0FBbkI7QUFDQUgsc0JBQU1pQixJQUFOLENBQVdwQixNQUFNcUIsV0FBTixDQUFrQmYsTUFBbEIsRUFBMEJVLGlCQUFpQlQsVUFBakIsQ0FBMUIsQ0FBWDtBQUNEO0FBQ0YsYUFORDs7QUFRQSxtQkFBT0osS0FBUDtBQUNELFdBOUNJLENBSFEsRUFBZjs7QUFtREQsT0E3REksRUFBUDs7QUErREQ7OztBQUdIOzs7T0E3RWlCLEVBQWpCO0FBaUZBLFNBQVNQLHFCQUFULENBQStCTixvQkFBL0IsRUFBcUQ7QUFDbkQsU0FBTyxDQUFDQSxxQkFBcUJpQyxLQUFyQixDQUE0QjlCLFVBQUQsSUFBZ0I7QUFDakQsVUFBTWEsU0FBU2IsV0FBV2EsTUFBMUI7O0FBRUE7QUFDQTtBQUNFQSxnQkFBVUEsT0FBT2pDLElBQVAsS0FBZ0Isa0JBQTFCO0FBQ0NpQyxhQUFPa0IsUUFBUCxDQUFnQm5ELElBQWhCLEtBQXlCLFlBQXpCLElBQXlDaUMsT0FBT2tCLFFBQVAsQ0FBZ0JuRCxJQUFoQixLQUF5QixTQURuRSxDQURGOztBQUlELEdBUk8sQ0FBUjtBQVNEOztBQUVEOzs7O0FBSUEsU0FBU21DLHFCQUFULENBQStCaUIsZ0JBQS9CLEVBQWlEO0FBQy9DLFNBQU9BLGlCQUFpQkQsUUFBakIsQ0FBMEJuRCxJQUExQixLQUFtQyxZQUFuQztBQUNIb0QsbUJBQWlCRCxRQUFqQixDQUEwQk4sSUFEdkI7QUFFSE8sbUJBQWlCRCxRQUFqQixDQUEwQkUsS0FGOUI7QUFHRDs7QUFFRDs7Ozs7QUFLQSxTQUFTaEIsdUJBQVQsQ0FBaUNULFlBQWpDLEVBQStDckIsSUFBL0MsRUFBcUQ7QUFDbkQsTUFBSStDLGNBQWMvQyxJQUFsQjtBQUNBLE1BQUlnRCxRQUFRM0IsYUFBYTRCLE9BQWIsQ0FBcUJGLFdBQXJCLENBQVo7QUFDQSxTQUFPQyxTQUFTLElBQWhCLEVBQXNCO0FBQ3BCRCxrQkFBY0EsWUFBWXJCLE1BQTFCO0FBQ0FzQixZQUFRM0IsYUFBYTRCLE9BQWIsQ0FBcUJGLFdBQXJCLEVBQWtDLElBQWxDLENBQVI7QUFDRDtBQUNELFNBQU8sSUFBSUcsR0FBSjtBQUNGRixRQUFNN0MsU0FBTixDQUFnQlEsR0FBaEIsQ0FBb0JMLFlBQVlBLFNBQVNnQyxJQUF6QyxDQURFO0FBRUZVLFFBQU1HLEtBQU4sQ0FBWWhELFNBQVosQ0FBc0JRLEdBQXRCLENBQTBCTCxZQUFZQSxTQUFTZ0MsSUFBL0MsQ0FGRSxHQUFQOztBQUlEOztBQUVEOzs7Ozs7QUFNQSxTQUFTRCxrQkFBVCxDQUE0QmUsS0FBNUIsRUFBbUNDLGFBQW5DLEVBQWtEQyxhQUFsRCxFQUFpRTtBQUMvRCxRQUFNQyxhQUFhLEVBQW5CO0FBQ0FILFFBQU0zQixPQUFOLENBQWVhLElBQUQsSUFBVTtBQUN0QixRQUFJa0IsU0FBSjtBQUNBLFFBQUksQ0FBQ0gsY0FBY2YsSUFBZCxFQUFvQm1CLEdBQXBCLENBQXdCbkIsSUFBeEIsQ0FBTCxFQUFvQztBQUNsQ2tCLGtCQUFZbEIsSUFBWjtBQUNELEtBRkQsTUFFTyxJQUFJLENBQUNlLGNBQWNmLElBQWQsRUFBb0JtQixHQUFwQixDQUF5QixHQUFFSCxhQUFjLElBQUdoQixJQUFLLEVBQWpELENBQUwsRUFBMEQ7QUFDL0RrQixrQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLEVBQXJDO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsV0FBSyxJQUFJb0IsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxRQUFwQixFQUE4QkQsR0FBOUIsRUFBbUM7QUFDakMsWUFBSSxDQUFDTCxjQUFjZixJQUFkLEVBQW9CbUIsR0FBcEIsQ0FBeUIsR0FBRUgsYUFBYyxJQUFHaEIsSUFBSyxJQUFHb0IsQ0FBRSxFQUF0RCxDQUFMLEVBQStEO0FBQzdERixzQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLElBQUdvQixDQUFFLEVBQTFDO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7QUFDREgsZUFBV2pCLElBQVgsSUFBbUJrQixTQUFuQjtBQUNELEdBZkQ7QUFnQkEsU0FBT0QsVUFBUDtBQUNEIiwiZmlsZSI6Im5vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLW5hbWVzcGFjZScpLFxuICAgIH0sXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgY29uc3Qgc2NvcGVWYXJpYWJsZXMgPSBjb250ZXh0LmdldFNjb3BlKCkudmFyaWFibGVzXG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZVZhcmlhYmxlID0gc2NvcGVWYXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+XG4gICAgICAgICAgdmFyaWFibGUuZGVmc1swXS5ub2RlID09PSBub2RlXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlUmVmZXJlbmNlcyA9IG5hbWVzcGFjZVZhcmlhYmxlLnJlZmVyZW5jZXNcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlSWRlbnRpZmllcnMgPSBuYW1lc3BhY2VSZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLmlkZW50aWZpZXIpXG4gICAgICAgIGNvbnN0IGNhbkZpeCA9IG5hbWVzcGFjZUlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgIXVzZXNOYW1lc3BhY2VBc09iamVjdChuYW1lc3BhY2VJZGVudGlmaWVycylcblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmAsXG4gICAgICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlTWFuYWdlciA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLnNjb3BlTWFuYWdlclxuICAgICAgICAgICAgY29uc3QgZml4ZXMgPSBbXVxuXG4gICAgICAgICAgICAvLyBQYXNzIDE6IENvbGxlY3QgdmFyaWFibGUgbmFtZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzY29wZSBmb3IgZWFjaCByZWZlcmVuY2Ugd2Ugd2FudFxuICAgICAgICAgICAgLy8gdG8gdHJhbnNmb3JtLCBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgd2UgY2hvb3NlIG5vbi1jb25mbGljdGluZyBpbXBvcnQgbmFtZXNcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWVDb25mbGljdHMgPSB7fVxuICAgICAgICAgICAgbmFtZXNwYWNlSWRlbnRpZmllcnMuZm9yRWFjaCgoaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBpZGVudGlmaWVyLnBhcmVudFxuICAgICAgICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbXBvcnROYW1lID0gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKHBhcmVudClcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbENvbmZsaWN0cyA9IGdldFZhcmlhYmxlTmFtZXNJblNjb3BlKHNjb3BlTWFuYWdlciwgcGFyZW50KVxuICAgICAgICAgICAgICAgIGlmICghaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSkge1xuICAgICAgICAgICAgICAgICAgaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSA9IGxvY2FsQ29uZmxpY3RzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsQ29uZmxpY3RzLmZvckVhY2goKGMpID0+IGltcG9ydE5hbWVDb25mbGljdHNbaW1wb3J0TmFtZV0uYWRkKGMpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgLy8gQ2hvb3NlIG5ldyBuYW1lcyBmb3IgZWFjaCBpbXBvcnRcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWVzID0gT2JqZWN0LmtleXMoaW1wb3J0TmFtZUNvbmZsaWN0cylcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydExvY2FsTmFtZXMgPSBnZW5lcmF0ZUxvY2FsTmFtZXMoXG4gICAgICAgICAgICAgIGltcG9ydE5hbWVzLFxuICAgICAgICAgICAgICBpbXBvcnROYW1lQ29uZmxpY3RzLFxuICAgICAgICAgICAgICBuYW1lc3BhY2VWYXJpYWJsZS5uYW1lXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIEltcG9ydE5hbWVzcGFjZVNwZWNpZmllciB3aXRoIGEgbGlzdCBvZiBJbXBvcnRTcGVjaWZpZXJzXG4gICAgICAgICAgICBjb25zdCBuYW1lZEltcG9ydFNwZWNpZmllcnMgPSBpbXBvcnROYW1lcy5tYXAoKGltcG9ydE5hbWUpID0+XG4gICAgICAgICAgICAgIGltcG9ydE5hbWUgPT09IGltcG9ydExvY2FsTmFtZXNbaW1wb3J0TmFtZV1cbiAgICAgICAgICAgICAgICA/IGltcG9ydE5hbWVcbiAgICAgICAgICAgICAgICA6IGAke2ltcG9ydE5hbWV9IGFzICR7aW1wb3J0TG9jYWxOYW1lc1tpbXBvcnROYW1lXX1gXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlcGxhY2VUZXh0KG5vZGUsIGB7ICR7bmFtZWRJbXBvcnRTcGVjaWZpZXJzLmpvaW4oJywgJyl9IH1gKSlcblxuICAgICAgICAgICAgLy8gUGFzcyAyOiBSZXBsYWNlIHJlZmVyZW5jZXMgdG8gdGhlIG5hbWVzcGFjZSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5hbWVkIGltcG9ydHNcbiAgICAgICAgICAgIG5hbWVzcGFjZUlkZW50aWZpZXJzLmZvckVhY2goKGlkZW50aWZpZXIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gaWRlbnRpZmllci5wYXJlbnRcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZSA9IGdldE1lbWJlclByb3BlcnR5TmFtZShwYXJlbnQpXG4gICAgICAgICAgICAgICAgZml4ZXMucHVzaChmaXhlci5yZXBsYWNlVGV4dChwYXJlbnQsIGltcG9ydExvY2FsTmFtZXNbaW1wb3J0TmFtZV0pKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm4gZml4ZXNcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuXG4vKipcbiAqIEBwYXJhbSB7SWRlbnRpZmllcltdfSBuYW1lc3BhY2VJZGVudGlmaWVyc1xuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgbmFtZXNwYWNlIHZhcmlhYmxlIGlzIG1vcmUgdGhhbiBqdXN0IGEgZ2xvcmlmaWVkIGNvbnN0YW50XG4gKi9cbmZ1bmN0aW9uIHVzZXNOYW1lc3BhY2VBc09iamVjdChuYW1lc3BhY2VJZGVudGlmaWVycykge1xuICByZXR1cm4gIW5hbWVzcGFjZUlkZW50aWZpZXJzLmV2ZXJ5KChpZGVudGlmaWVyKSA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gaWRlbnRpZmllci5wYXJlbnRcblxuICAgIC8vIGBuYW1lc3BhY2UueGAgb3IgYG5hbWVzcGFjZVsneCddYFxuICAgIHJldHVybiAoXG4gICAgICBwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyAmJlxuICAgICAgKHBhcmVudC5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcicgfHwgcGFyZW50LnByb3BlcnR5LnR5cGUgPT09ICdMaXRlcmFsJylcbiAgICApXG4gIH0pXG59XG5cbi8qKlxuICogQHBhcmFtIHtNZW1iZXJFeHByZXNzaW9ufSBtZW1iZXJFeHByZXNzaW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbmFtZSBvZiB0aGUgbWVtYmVyIGluIHRoZSBvYmplY3QgZXhwcmVzc2lvbiwgZS5nLiB0aGUgYHhgIGluIGBuYW1lc3BhY2UueGBcbiAqL1xuZnVuY3Rpb24gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKG1lbWJlckV4cHJlc3Npb24pIHtcbiAgcmV0dXJuIG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgPyBtZW1iZXJFeHByZXNzaW9uLnByb3BlcnR5Lm5hbWVcbiAgICA6IG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Njb3BlTWFuYWdlcn0gc2NvcGVNYW5hZ2VyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IG5vZGVcbiAqIEByZXR1cm4ge1NldDxzdHJpbmc+fVxuICovXG5mdW5jdGlvbiBnZXRWYXJpYWJsZU5hbWVzSW5TY29wZShzY29wZU1hbmFnZXIsIG5vZGUpIHtcbiAgbGV0IGN1cnJlbnROb2RlID0gbm9kZVxuICBsZXQgc2NvcGUgPSBzY29wZU1hbmFnZXIuYWNxdWlyZShjdXJyZW50Tm9kZSlcbiAgd2hpbGUgKHNjb3BlID09IG51bGwpIHtcbiAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudFxuICAgIHNjb3BlID0gc2NvcGVNYW5hZ2VyLmFjcXVpcmUoY3VycmVudE5vZGUsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG5ldyBTZXQoW1xuICAgIC4uLnNjb3BlLnZhcmlhYmxlcy5tYXAodmFyaWFibGUgPT4gdmFyaWFibGUubmFtZSksXG4gICAgLi4uc2NvcGUudXBwZXIudmFyaWFibGVzLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5uYW1lKSxcbiAgXSlcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBuYW1lc1xuICogQHBhcmFtIHsqfSBuYW1lQ29uZmxpY3RzXG4gKiBAcGFyYW0geyp9IG5hbWVzcGFjZU5hbWVcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVMb2NhbE5hbWVzKG5hbWVzLCBuYW1lQ29uZmxpY3RzLCBuYW1lc3BhY2VOYW1lKSB7XG4gIGNvbnN0IGxvY2FsTmFtZXMgPSB7fVxuICBuYW1lcy5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgbGV0IGxvY2FsTmFtZVxuICAgIGlmICghbmFtZUNvbmZsaWN0c1tuYW1lXS5oYXMobmFtZSkpIHtcbiAgICAgIGxvY2FsTmFtZSA9IG5hbWVcbiAgICB9IGVsc2UgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhgJHtuYW1lc3BhY2VOYW1lfV8ke25hbWV9YCkpIHtcbiAgICAgIGxvY2FsTmFtZSA9IGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1gXG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgSW5maW5pdHk7IGkrKykge1xuICAgICAgICBpZiAoIW5hbWVDb25mbGljdHNbbmFtZV0uaGFzKGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1fJHtpfWApKSB7XG4gICAgICAgICAgbG9jYWxOYW1lID0gYCR7bmFtZXNwYWNlTmFtZX1fJHtuYW1lfV8ke2l9YFxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgbG9jYWxOYW1lc1tuYW1lXSA9IGxvY2FsTmFtZVxuICB9KVxuICByZXR1cm4gbG9jYWxOYW1lc1xufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js
index 584f4dc..811adec 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js
@@ -1,18 +1,6 @@
-'use strict';
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function reportIfMissing(context, node, allowed, name) {
   if (allowed.indexOf(name) === -1 && (0, _importType2.default)(name, context) === 'builtin') {
@@ -24,22 +12,24 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-nodejs-modules')
-    },
-    schema: [{
+      url: (0, _docsUrl2.default)('no-nodejs-modules') },
+
+    schema: [
+    {
       type: 'object',
       properties: {
         allow: {
           type: 'array',
           uniqueItems: true,
           items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
+            type: 'string' } } },
+
+
+
+      additionalProperties: false }] },
+
+
+
 
   create: function (context) {
     const options = context.options[0] || {};
@@ -53,8 +43,7 @@
         if ((0, _staticRequire2.default)(node)) {
           reportIfMissing(context, node, allowed, node.arguments[0].value);
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1ub2RlanMtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJyZXBvcnRJZk1pc3NpbmciLCJjb250ZXh0Iiwibm9kZSIsImFsbG93ZWQiLCJuYW1lIiwiaW5kZXhPZiIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJvcHRpb25zIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLElBQWxDLEVBQXdDQyxPQUF4QyxFQUFpREMsSUFBakQsRUFBdUQ7QUFDckQsTUFBSUQsUUFBUUUsT0FBUixDQUFnQkQsSUFBaEIsTUFBMEIsQ0FBQyxDQUEzQixJQUFnQywwQkFBV0EsSUFBWCxFQUFpQkgsT0FBakIsTUFBOEIsU0FBbEUsRUFBNkU7QUFDM0VBLFlBQVFLLE1BQVIsQ0FBZUosSUFBZixFQUFxQiwyQ0FBMkNFLElBQTNDLEdBQWtELEdBQXZFO0FBQ0Q7QUFDRjs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsbUJBQVI7QUFERCxLQUZGO0FBS0pDLFlBQVEsQ0FDTjtBQUNFSCxZQUFNLFFBRFI7QUFFRUksa0JBQVk7QUFDVkMsZUFBTztBQUNMTCxnQkFBTSxPQUREO0FBRUxNLHVCQUFhLElBRlI7QUFHTEMsaUJBQU87QUFDTFAsa0JBQU07QUFERDtBQUhGO0FBREcsT0FGZDtBQVdFUSw0QkFBc0I7QUFYeEIsS0FETTtBQUxKLEdBRFM7O0FBdUJmQyxVQUFRLFVBQVVsQixPQUFWLEVBQW1CO0FBQ3pCLFVBQU1tQixVQUFVbkIsUUFBUW1CLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxVQUFNakIsVUFBVWlCLFFBQVFMLEtBQVIsSUFBaUIsRUFBakM7O0FBRUEsV0FBTztBQUNMTSx5QkFBbUIsU0FBU0MsYUFBVCxDQUF1QnBCLElBQXZCLEVBQTZCO0FBQzlDRix3QkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQkMsT0FBL0IsRUFBd0NELEtBQUtxQixNQUFMLENBQVlDLEtBQXBEO0FBQ0QsT0FISTtBQUlMQyxzQkFBZ0IsU0FBU0MsY0FBVCxDQUF3QnhCLElBQXhCLEVBQThCO0FBQzVDLFlBQUksNkJBQWdCQSxJQUFoQixDQUFKLEVBQTJCO0FBQ3pCRiwwQkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQkMsT0FBL0IsRUFBd0NELEtBQUt5QixTQUFMLENBQWUsQ0FBZixFQUFrQkgsS0FBMUQ7QUFDRDtBQUNGO0FBUkksS0FBUDtBQVVEO0FBckNjLENBQWpCIiwiZmlsZSI6Im5vLW5vZGVqcy1tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgbm9kZSwgYWxsb3dlZCwgbmFtZSkge1xuICBpZiAoYWxsb3dlZC5pbmRleE9mKG5hbWUpID09PSAtMSAmJiBpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpID09PSAnYnVpbHRpbicpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCAnRG8gbm90IGltcG9ydCBOb2RlLmpzIGJ1aWx0aW4gbW9kdWxlIFwiJyArIG5hbWUgKyAnXCInKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbm9kZWpzLW1vZHVsZXMnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGFsbG93OiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gICAgY29uc3QgYWxsb3dlZCA9IG9wdGlvbnMuYWxsb3cgfHwgW11cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBhbGxvd2VkLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIGFsbG93ZWQsIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1ub2RlanMtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJyZXBvcnRJZk1pc3NpbmciLCJjb250ZXh0Iiwibm9kZSIsImFsbG93ZWQiLCJuYW1lIiwiaW5kZXhPZiIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJvcHRpb25zIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxnRDtBQUNBLHNEO0FBQ0EscUM7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLElBQWxDLEVBQXdDQyxPQUF4QyxFQUFpREMsSUFBakQsRUFBdUQ7QUFDckQsTUFBSUQsUUFBUUUsT0FBUixDQUFnQkQsSUFBaEIsTUFBMEIsQ0FBQyxDQUEzQixJQUFnQywwQkFBV0EsSUFBWCxFQUFpQkgsT0FBakIsTUFBOEIsU0FBbEUsRUFBNkU7QUFDM0VBLFlBQVFLLE1BQVIsQ0FBZUosSUFBZixFQUFxQiwyQ0FBMkNFLElBQTNDLEdBQWtELEdBQXZFO0FBQ0Q7QUFDRjs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsbUJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRO0FBQ047QUFDRUgsWUFBTSxRQURSO0FBRUVJLGtCQUFZO0FBQ1ZDLGVBQU87QUFDTEwsZ0JBQU0sT0FERDtBQUVMTSx1QkFBYSxJQUZSO0FBR0xDLGlCQUFPO0FBQ0xQLGtCQUFNLFFBREQsRUFIRixFQURHLEVBRmQ7Ozs7QUFXRVEsNEJBQXNCLEtBWHhCLEVBRE0sQ0FMSixFQURTOzs7OztBQXVCZkMsVUFBUSxVQUFVbEIsT0FBVixFQUFtQjtBQUN6QixVQUFNbUIsVUFBVW5CLFFBQVFtQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsVUFBTWpCLFVBQVVpQixRQUFRTCxLQUFSLElBQWlCLEVBQWpDOztBQUVBLFdBQU87QUFDTE0seUJBQW1CLFNBQVNDLGFBQVQsQ0FBdUJwQixJQUF2QixFQUE2QjtBQUM5Q0Ysd0JBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JDLE9BQS9CLEVBQXdDRCxLQUFLcUIsTUFBTCxDQUFZQyxLQUFwRDtBQUNELE9BSEk7QUFJTEMsc0JBQWdCLFNBQVNDLGNBQVQsQ0FBd0J4QixJQUF4QixFQUE4QjtBQUM1QyxZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QkYsMEJBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JDLE9BQS9CLEVBQXdDRCxLQUFLeUIsU0FBTCxDQUFlLENBQWYsRUFBa0JILEtBQTFEO0FBQ0Q7QUFDRixPQVJJLEVBQVA7O0FBVUQsR0FyQ2MsRUFBakIiLCJmaWxlIjoibm8tbm9kZWpzLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBhbGxvd2VkLCBuYW1lKSB7XG4gIGlmIChhbGxvd2VkLmluZGV4T2YobmFtZSkgPT09IC0xICYmIGltcG9ydFR5cGUobmFtZSwgY29udGV4dCkgPT09ICdidWlsdGluJykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsICdEbyBub3QgaW1wb3J0IE5vZGUuanMgYnVpbHRpbiBtb2R1bGUgXCInICsgbmFtZSArICdcIicpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1ub2RlanMtbW9kdWxlcycpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBhbGxvd2VkID0gb3B0aW9ucy5hbGxvdyB8fCBbXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiBoYW5kbGVJbXBvcnRzKG5vZGUpIHtcbiAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIGFsbG93ZWQsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiBoYW5kbGVSZXF1aXJlcyhub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgbm9kZSwgYWxsb3dlZCwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js b/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js
index 8563a90..13695c1 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js
@@ -1,33 +1,18 @@
-'use strict';
-
-var _moduleVisitor = require('eslint-module-utils/moduleVisitor');
-
-var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
+'use strict';var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
 var _path = require('path');
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
 
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-relative-parent-imports')
-    },
-    schema: [(0, _moduleVisitor.makeOptionsSchema)()]
-  },
+      url: (0, _docsUrl2.default)('no-relative-parent-imports') },
+
+    schema: [(0, _moduleVisitor.makeOptionsSchema)()] },
+
 
   create: function noRelativePackages(context) {
     const myPath = context.getFilename();
@@ -36,15 +21,13 @@
     function checkSourceValue(sourceNode) {
       const depPath = sourceNode.value;
 
-      if ((0, _importType2.default)(depPath, context) === 'external') {
-        // ignore packages
+      if ((0, _importType2.default)(depPath, context) === 'external') {// ignore packages
         return;
       }
 
       const absDepPath = (0, _resolve2.default)(depPath, context);
 
-      if (!absDepPath) {
-        // unable to resolve path
+      if (!absDepPath) {// unable to resolve path
         return;
       }
 
@@ -53,12 +36,14 @@
       if ((0, _importType2.default)(relDepPath, context) === 'parent') {
         context.report({
           node: sourceNode,
-          message: 'Relative imports from parent directories are not allowed. ' + `Please either pass what you're importing through at runtime ` + `(dependency injection), move \`${(0, _path.basename)(myPath)}\` to same ` + `directory as \`${depPath}\` or consider making \`${depPath}\` a package.`
-        });
+          message: 'Relative imports from parent directories are not allowed. ' +
+          `Please either pass what you're importing through at runtime ` +
+          `(dependency injection), move \`${(0, _path.basename)(myPath)}\` to same ` +
+          `directory as \`${depPath}\` or consider making \`${depPath}\` a package.` });
+
       }
     }
 
     return (0, _moduleVisitor2.default)(checkSourceValue, context.options[0]);
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwibm9SZWxhdGl2ZVBhY2thZ2VzIiwiY29udGV4dCIsIm15UGF0aCIsImdldEZpbGVuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJkZXBQYXRoIiwidmFsdWUiLCJhYnNEZXBQYXRoIiwicmVsRGVwUGF0aCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRLENBQUMsdUNBQUQ7QUFMSixHQURTOztBQVNmQyxVQUFRLFNBQVNDLGtCQUFULENBQTRCQyxPQUE1QixFQUFxQztBQUMzQyxVQUFNQyxTQUFTRCxRQUFRRSxXQUFSLEVBQWY7QUFDQSxRQUFJRCxXQUFXLFFBQWYsRUFBeUIsT0FBTyxFQUFQLENBRmtCLENBRVI7O0FBRW5DLGFBQVNFLGdCQUFULENBQTBCQyxVQUExQixFQUFzQztBQUNwQyxZQUFNQyxVQUFVRCxXQUFXRSxLQUEzQjs7QUFFQSxVQUFJLDBCQUFXRCxPQUFYLEVBQW9CTCxPQUFwQixNQUFpQyxVQUFyQyxFQUFpRDtBQUFFO0FBQ2pEO0FBQ0Q7O0FBRUQsWUFBTU8sYUFBYSx1QkFBUUYsT0FBUixFQUFpQkwsT0FBakIsQ0FBbkI7O0FBRUEsVUFBSSxDQUFDTyxVQUFMLEVBQWlCO0FBQUU7QUFDakI7QUFDRDs7QUFFRCxZQUFNQyxhQUFhLG9CQUFTLG1CQUFRUCxNQUFSLENBQVQsRUFBMEJNLFVBQTFCLENBQW5COztBQUVBLFVBQUksMEJBQVdDLFVBQVgsRUFBdUJSLE9BQXZCLE1BQW9DLFFBQXhDLEVBQWtEO0FBQ2hEQSxnQkFBUVMsTUFBUixDQUFlO0FBQ2JDLGdCQUFNTixVQURPO0FBRWJPLG1CQUFTLCtEQUNOLDhEQURNLEdBRU4sa0NBQWlDLG9CQUFTVixNQUFULENBQWlCLGFBRjVDLEdBR04sa0JBQWlCSSxPQUFRLDJCQUEwQkEsT0FBUTtBQUxqRCxTQUFmO0FBT0Q7QUFDRjs7QUFFRCxXQUFPLDZCQUFjRixnQkFBZCxFQUFnQ0gsUUFBUVksT0FBUixDQUFnQixDQUFoQixDQUFoQyxDQUFQO0FBQ0Q7QUF4Q2MsQ0FBakIiLCJmaWxlIjoibm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kdWxlVmlzaXRvciwgeyBtYWtlT3B0aW9uc1NjaGVtYSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5pbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgcmVsYXRpdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW21ha2VPcHRpb25zU2NoZW1hKCldLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gbm9SZWxhdGl2ZVBhY2thZ2VzKGNvbnRleHQpIHtcbiAgICBjb25zdCBteVBhdGggPSBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICBpZiAobXlQYXRoID09PSAnPHRleHQ+JykgcmV0dXJuIHt9IC8vIGNhbid0IGNoZWNrIGEgbm9uLWZpbGVcblxuICAgIGZ1bmN0aW9uIGNoZWNrU291cmNlVmFsdWUoc291cmNlTm9kZSkge1xuICAgICAgY29uc3QgZGVwUGF0aCA9IHNvdXJjZU5vZGUudmFsdWVcblxuICAgICAgaWYgKGltcG9ydFR5cGUoZGVwUGF0aCwgY29udGV4dCkgPT09ICdleHRlcm5hbCcpIHsgLy8gaWdub3JlIHBhY2thZ2VzXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBhYnNEZXBQYXRoID0gcmVzb2x2ZShkZXBQYXRoLCBjb250ZXh0KVxuXG4gICAgICBpZiAoIWFic0RlcFBhdGgpIHsgLy8gdW5hYmxlIHRvIHJlc29sdmUgcGF0aFxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsRGVwUGF0aCA9IHJlbGF0aXZlKGRpcm5hbWUobXlQYXRoKSwgYWJzRGVwUGF0aClcblxuICAgICAgaWYgKGltcG9ydFR5cGUocmVsRGVwUGF0aCwgY29udGV4dCkgPT09ICdwYXJlbnQnKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBzb3VyY2VOb2RlLFxuICAgICAgICAgIG1lc3NhZ2U6ICdSZWxhdGl2ZSBpbXBvcnRzIGZyb20gcGFyZW50IGRpcmVjdG9yaWVzIGFyZSBub3QgYWxsb3dlZC4gJyArXG4gICAgICAgICAgICBgUGxlYXNlIGVpdGhlciBwYXNzIHdoYXQgeW91J3JlIGltcG9ydGluZyB0aHJvdWdoIGF0IHJ1bnRpbWUgYCArXG4gICAgICAgICAgICBgKGRlcGVuZGVuY3kgaW5qZWN0aW9uKSwgbW92ZSBcXGAke2Jhc2VuYW1lKG15UGF0aCl9XFxgIHRvIHNhbWUgYCArXG4gICAgICAgICAgICBgZGlyZWN0b3J5IGFzIFxcYCR7ZGVwUGF0aH1cXGAgb3IgY29uc2lkZXIgbWFraW5nIFxcYCR7ZGVwUGF0aH1cXGAgYSBwYWNrYWdlLmAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoY2hlY2tTb3VyY2VWYWx1ZSwgY29udGV4dC5vcHRpb25zWzBdKVxuICB9LFxufVxuIl19
\ No newline at end of file
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwibm9SZWxhdGl2ZVBhY2thZ2VzIiwiY29udGV4dCIsIm15UGF0aCIsImdldEZpbGVuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJkZXBQYXRoIiwidmFsdWUiLCJhYnNEZXBQYXRoIiwicmVsRGVwUGF0aCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6ImFBQUEsa0U7QUFDQSxxQztBQUNBO0FBQ0Esc0Q7O0FBRUEsZ0Q7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxDQUFDLHVDQUFELENBTEosRUFEUzs7O0FBU2ZDLFVBQVEsU0FBU0Msa0JBQVQsQ0FBNEJDLE9BQTVCLEVBQXFDO0FBQzNDLFVBQU1DLFNBQVNELFFBQVFFLFdBQVIsRUFBZjtBQUNBLFFBQUlELFdBQVcsUUFBZixFQUF5QixPQUFPLEVBQVAsQ0FGa0IsQ0FFUjs7QUFFbkMsYUFBU0UsZ0JBQVQsQ0FBMEJDLFVBQTFCLEVBQXNDO0FBQ3BDLFlBQU1DLFVBQVVELFdBQVdFLEtBQTNCOztBQUVBLFVBQUksMEJBQVdELE9BQVgsRUFBb0JMLE9BQXBCLE1BQWlDLFVBQXJDLEVBQWlELENBQUU7QUFDakQ7QUFDRDs7QUFFRCxZQUFNTyxhQUFhLHVCQUFRRixPQUFSLEVBQWlCTCxPQUFqQixDQUFuQjs7QUFFQSxVQUFJLENBQUNPLFVBQUwsRUFBaUIsQ0FBRTtBQUNqQjtBQUNEOztBQUVELFlBQU1DLGFBQWEsb0JBQVMsbUJBQVFQLE1BQVIsQ0FBVCxFQUEwQk0sVUFBMUIsQ0FBbkI7O0FBRUEsVUFBSSwwQkFBV0MsVUFBWCxFQUF1QlIsT0FBdkIsTUFBb0MsUUFBeEMsRUFBa0Q7QUFDaERBLGdCQUFRUyxNQUFSLENBQWU7QUFDYkMsZ0JBQU1OLFVBRE87QUFFYk8sbUJBQVM7QUFDTix3RUFETTtBQUVOLDRDQUFpQyxvQkFBU1YsTUFBVCxDQUFpQixhQUY1QztBQUdOLDRCQUFpQkksT0FBUSwyQkFBMEJBLE9BQVEsZUFMakQsRUFBZjs7QUFPRDtBQUNGOztBQUVELFdBQU8sNkJBQWNGLGdCQUFkLEVBQWdDSCxRQUFRWSxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFDRCxHQXhDYyxFQUFqQiIsImZpbGUiOiJuby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVWaXNpdG9yLCB7IG1ha2VPcHRpb25zU2NoZW1hIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCByZWxhdGl2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5cbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cycpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbbWFrZU9wdGlvbnNTY2hlbWEoKV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiBub1JlbGF0aXZlUGFja2FnZXMoY29udGV4dCkge1xuICAgIGNvbnN0IG15UGF0aCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgIGlmIChteVBhdGggPT09ICc8dGV4dD4nKSByZXR1cm4ge30gLy8gY2FuJ3QgY2hlY2sgYSBub24tZmlsZVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2VOb2RlKSB7XG4gICAgICBjb25zdCBkZXBQYXRoID0gc291cmNlTm9kZS52YWx1ZVxuXG4gICAgICBpZiAoaW1wb3J0VHlwZShkZXBQYXRoLCBjb250ZXh0KSA9PT0gJ2V4dGVybmFsJykgeyAvLyBpZ25vcmUgcGFja2FnZXNcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFic0RlcFBhdGggPSByZXNvbHZlKGRlcFBhdGgsIGNvbnRleHQpXG5cbiAgICAgIGlmICghYWJzRGVwUGF0aCkgeyAvLyB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxEZXBQYXRoID0gcmVsYXRpdmUoZGlybmFtZShteVBhdGgpLCBhYnNEZXBQYXRoKVxuXG4gICAgICBpZiAoaW1wb3J0VHlwZShyZWxEZXBQYXRoLCBjb250ZXh0KSA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZU5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1JlbGF0aXZlIGltcG9ydHMgZnJvbSBwYXJlbnQgZGlyZWN0b3JpZXMgYXJlIG5vdCBhbGxvd2VkLiAnICtcbiAgICAgICAgICAgIGBQbGVhc2UgZWl0aGVyIHBhc3Mgd2hhdCB5b3UncmUgaW1wb3J0aW5nIHRocm91Z2ggYXQgcnVudGltZSBgICtcbiAgICAgICAgICAgIGAoZGVwZW5kZW5jeSBpbmplY3Rpb24pLCBtb3ZlIFxcYCR7YmFzZW5hbWUobXlQYXRoKX1cXGAgdG8gc2FtZSBgICtcbiAgICAgICAgICAgIGBkaXJlY3RvcnkgYXMgXFxgJHtkZXBQYXRofVxcYCBvciBjb25zaWRlciBtYWtpbmcgXFxgJHtkZXBQYXRofVxcYCBhIHBhY2thZ2UuYCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBjb250ZXh0Lm9wdGlvbnNbMF0pXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js b/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js
index 4e836e5..d318e40 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js
@@ -1,41 +1,20 @@
-'use strict';
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _containsPath = require('contains-path');var _containsPath2 = _interopRequireDefault(_containsPath);
+var _path = require('path');var _path2 = _interopRequireDefault(_path);
 
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _containsPath = require('contains-path');
-
-var _containsPath2 = _interopRequireDefault(_containsPath);
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
+var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-restricted-paths')
-    },
+      url: (0, _docsUrl2.default)('no-restricted-paths') },
 
-    schema: [{
+
+    schema: [
+    {
       type: 'object',
       properties: {
         zones: {
@@ -49,19 +28,21 @@
               except: {
                 type: 'array',
                 items: {
-                  type: 'string'
-                },
-                uniqueItems: true
-              }
-            },
-            additionalProperties: false
-          }
-        },
-        basePath: { type: 'string' }
-      },
-      additionalProperties: false
-    }]
-  },
+                  type: 'string' },
+
+                uniqueItems: true },
+
+              message: { type: 'string' } },
+
+            additionalProperties: false } },
+
+
+        basePath: { type: 'string' } },
+
+      additionalProperties: false }] },
+
+
+
 
   create: function noRestrictedPaths(context) {
     const options = context.options[0] || {};
@@ -83,8 +64,8 @@
     function reportInvalidExceptionPath(node) {
       context.report({
         node,
-        message: 'Restricted path exceptions must be descendants of the configured `from` path for that zone.'
-      });
+        message: 'Restricted path exceptions must be descendants of the configured `from` path for that zone.' });
+
     }
 
     function checkForRestrictedImportPath(importPath, node) {
@@ -102,15 +83,19 @@
           return;
         }
 
-        const absoluteExceptionPaths = exceptionPaths.map(exceptionPath => _path2.default.resolve(absoluteFrom, exceptionPath));
-        const hasValidExceptionPaths = absoluteExceptionPaths.every(absoluteExceptionPath => isValidExceptionPath(absoluteFrom, absoluteExceptionPath));
+        const absoluteExceptionPaths = exceptionPaths.map(exceptionPath =>
+        _path2.default.resolve(absoluteFrom, exceptionPath));
+
+        const hasValidExceptionPaths = absoluteExceptionPaths.
+        every(absoluteExceptionPath => isValidExceptionPath(absoluteFrom, absoluteExceptionPath));
 
         if (!hasValidExceptionPaths) {
           reportInvalidExceptionPath(node);
           return;
         }
 
-        const pathIsExcepted = absoluteExceptionPaths.some(absoluteExceptionPath => (0, _containsPath2.default)(absoluteImportPath, absoluteExceptionPath));
+        const pathIsExcepted = absoluteExceptionPaths.
+        some(absoluteExceptionPath => (0, _containsPath2.default)(absoluteImportPath, absoluteExceptionPath));
 
         if (pathIsExcepted) {
           return;
@@ -118,9 +103,9 @@
 
         context.report({
           node,
-          message: `Unexpected path "{{importPath}}" imported in restricted zone.`,
-          data: { importPath }
-        });
+          message: `Unexpected path "{{importPath}}" imported in restricted zone.${zone.message ? ` ${zone.message}` : ''}`,
+          data: { importPath } });
+
       });
     }
 
@@ -129,16 +114,12 @@
         checkForRestrictedImportPath(node.source.value, node.source);
       },
       CallExpression(node) {
-        if ((0, _staticRequire2.default)(node)) {
-          var _node$arguments = _slicedToArray(node.arguments, 1);
-
-          const firstArgument = _node$arguments[0];
-
+        if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray(
+          node.arguments, 1);const firstArgument = _node$arguments[0];
 
           checkForRestrictedImportPath(firstArgument.value, firstArgument);
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiem9uZXMiLCJtaW5JdGVtcyIsIml0ZW1zIiwidGFyZ2V0IiwiZnJvbSIsImV4Y2VwdCIsInVuaXF1ZUl0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJiYXNlUGF0aCIsImNyZWF0ZSIsIm5vUmVzdHJpY3RlZFBhdGhzIiwiY29udGV4dCIsIm9wdGlvbnMiLCJyZXN0cmljdGVkUGF0aHMiLCJwcm9jZXNzIiwiY3dkIiwiY3VycmVudEZpbGVuYW1lIiwiZ2V0RmlsZW5hbWUiLCJtYXRjaGluZ1pvbmVzIiwiZmlsdGVyIiwiem9uZSIsInRhcmdldFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsImlzVmFsaWRFeGNlcHRpb25QYXRoIiwiYWJzb2x1dGVGcm9tUGF0aCIsImFic29sdXRlRXhjZXB0aW9uUGF0aCIsInJlbGF0aXZlRXhjZXB0aW9uUGF0aCIsInJlbGF0aXZlIiwicmVwb3J0SW52YWxpZEV4Y2VwdGlvblBhdGgiLCJub2RlIiwicmVwb3J0IiwibWVzc2FnZSIsImNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgiLCJpbXBvcnRQYXRoIiwiYWJzb2x1dGVJbXBvcnRQYXRoIiwiZm9yRWFjaCIsImV4Y2VwdGlvblBhdGhzIiwiYWJzb2x1dGVGcm9tIiwiYWJzb2x1dGVFeGNlcHRpb25QYXRocyIsIm1hcCIsImV4Y2VwdGlvblBhdGgiLCJoYXNWYWxpZEV4Y2VwdGlvblBhdGhzIiwiZXZlcnkiLCJwYXRoSXNFeGNlcHRlZCIsInNvbWUiLCJkYXRhIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwiZmlyc3RBcmd1bWVudCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHFCQUFSO0FBREQsS0FGRjs7QUFNSkMsWUFBUSxDQUNOO0FBQ0VILFlBQU0sUUFEUjtBQUVFSSxrQkFBWTtBQUNWQyxlQUFPO0FBQ0xMLGdCQUFNLE9BREQ7QUFFTE0sb0JBQVUsQ0FGTDtBQUdMQyxpQkFBTztBQUNMUCxrQkFBTSxRQUREO0FBRUxJLHdCQUFZO0FBQ1ZJLHNCQUFRLEVBQUVSLE1BQU0sUUFBUixFQURFO0FBRVZTLG9CQUFNLEVBQUVULE1BQU0sUUFBUixFQUZJO0FBR1ZVLHNCQUFRO0FBQ05WLHNCQUFNLE9BREE7QUFFTk8sdUJBQU87QUFDTFAsd0JBQU07QUFERCxpQkFGRDtBQUtOVyw2QkFBYTtBQUxQO0FBSEUsYUFGUDtBQWFMQyxrQ0FBc0I7QUFiakI7QUFIRixTQURHO0FBb0JWQyxrQkFBVSxFQUFFYixNQUFNLFFBQVI7QUFwQkEsT0FGZDtBQXdCRVksNEJBQXNCO0FBeEJ4QixLQURNO0FBTkosR0FEUzs7QUFxQ2ZFLFVBQVEsU0FBU0MsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQW9DO0FBQzFDLFVBQU1DLFVBQVVELFFBQVFDLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxVQUFNQyxrQkFBa0JELFFBQVFaLEtBQVIsSUFBaUIsRUFBekM7QUFDQSxVQUFNUSxXQUFXSSxRQUFRSixRQUFSLElBQW9CTSxRQUFRQyxHQUFSLEVBQXJDO0FBQ0EsVUFBTUMsa0JBQWtCTCxRQUFRTSxXQUFSLEVBQXhCO0FBQ0EsVUFBTUMsZ0JBQWdCTCxnQkFBZ0JNLE1BQWhCLENBQXdCQyxJQUFELElBQVU7QUFDckQsWUFBTUMsYUFBYUMsZUFBS0MsT0FBTCxDQUFhZixRQUFiLEVBQXVCWSxLQUFLakIsTUFBNUIsQ0FBbkI7O0FBRUEsYUFBTyw0QkFBYWEsZUFBYixFQUE4QkssVUFBOUIsQ0FBUDtBQUNELEtBSnFCLENBQXRCOztBQU1BLGFBQVNHLG9CQUFULENBQThCQyxnQkFBOUIsRUFBZ0RDLHFCQUFoRCxFQUF1RTtBQUNyRSxZQUFNQyx3QkFBd0JMLGVBQUtNLFFBQUwsQ0FBY0gsZ0JBQWQsRUFBZ0NDLHFCQUFoQyxDQUE5Qjs7QUFFQSxhQUFPLDBCQUFXQyxxQkFBWCxFQUFrQ2hCLE9BQWxDLE1BQStDLFFBQXREO0FBQ0Q7O0FBRUQsYUFBU2tCLDBCQUFULENBQW9DQyxJQUFwQyxFQUEwQztBQUN4Q25CLGNBQVFvQixNQUFSLENBQWU7QUFDYkQsWUFEYTtBQUViRSxpQkFBUztBQUZJLE9BQWY7QUFJRDs7QUFFRCxhQUFTQyw0QkFBVCxDQUFzQ0MsVUFBdEMsRUFBa0RKLElBQWxELEVBQXdEO0FBQ3BELFlBQU1LLHFCQUFxQix1QkFBUUQsVUFBUixFQUFvQnZCLE9BQXBCLENBQTNCOztBQUVBLFVBQUksQ0FBQ3dCLGtCQUFMLEVBQXlCO0FBQ3ZCO0FBQ0Q7O0FBRURqQixvQkFBY2tCLE9BQWQsQ0FBdUJoQixJQUFELElBQVU7QUFDOUIsY0FBTWlCLGlCQUFpQmpCLEtBQUtmLE1BQUwsSUFBZSxFQUF0QztBQUNBLGNBQU1pQyxlQUFlaEIsZUFBS0MsT0FBTCxDQUFhZixRQUFiLEVBQXVCWSxLQUFLaEIsSUFBNUIsQ0FBckI7O0FBRUEsWUFBSSxDQUFDLDRCQUFhK0Isa0JBQWIsRUFBaUNHLFlBQWpDLENBQUwsRUFBcUQ7QUFDbkQ7QUFDRDs7QUFFRCxjQUFNQyx5QkFBeUJGLGVBQWVHLEdBQWYsQ0FBb0JDLGFBQUQsSUFDaERuQixlQUFLQyxPQUFMLENBQWFlLFlBQWIsRUFBMkJHLGFBQTNCLENBRDZCLENBQS9CO0FBR0EsY0FBTUMseUJBQXlCSCx1QkFDNUJJLEtBRDRCLENBQ3JCakIscUJBQUQsSUFBMkJGLHFCQUFxQmMsWUFBckIsRUFBbUNaLHFCQUFuQyxDQURMLENBQS9COztBQUdBLFlBQUksQ0FBQ2dCLHNCQUFMLEVBQTZCO0FBQzNCYixxQ0FBMkJDLElBQTNCO0FBQ0E7QUFDRDs7QUFFRCxjQUFNYyxpQkFBaUJMLHVCQUNwQk0sSUFEb0IsQ0FDZG5CLHFCQUFELElBQTJCLDRCQUFhUyxrQkFBYixFQUFpQ1QscUJBQWpDLENBRFosQ0FBdkI7O0FBR0EsWUFBSWtCLGNBQUosRUFBb0I7QUFDbEI7QUFDRDs7QUFFRGpDLGdCQUFRb0IsTUFBUixDQUFlO0FBQ2JELGNBRGE7QUFFYkUsbUJBQVUsK0RBRkc7QUFHYmMsZ0JBQU0sRUFBRVosVUFBRjtBQUhPLFNBQWY7QUFLRCxPQS9CRDtBQWdDSDs7QUFFRCxXQUFPO0FBQ0xhLHdCQUFrQmpCLElBQWxCLEVBQXdCO0FBQ3RCRyxxQ0FBNkJILEtBQUtrQixNQUFMLENBQVlDLEtBQXpDLEVBQWdEbkIsS0FBS2tCLE1BQXJEO0FBQ0QsT0FISTtBQUlMRSxxQkFBZXBCLElBQWYsRUFBcUI7QUFDbkIsWUFBSSw2QkFBZ0JBLElBQWhCLENBQUosRUFBMkI7QUFBQSwrQ0FDQ0EsS0FBS3FCLFNBRE47O0FBQUEsZ0JBQ2pCQyxhQURpQjs7O0FBR3pCbkIsdUNBQTZCbUIsY0FBY0gsS0FBM0MsRUFBa0RHLGFBQWxEO0FBQ0Q7QUFDRjtBQVZJLEtBQVA7QUFZRDtBQWxIYyxDQUFqQiIsImZpbGUiOiJuby1yZXN0cmljdGVkLXBhdGhzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnRhaW5zUGF0aCBmcm9tICdjb250YWlucy1wYXRoJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXJlc3RyaWN0ZWQtcGF0aHMnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgem9uZXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICAgICAgZnJvbTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICAgIGV4Y2VwdDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBiYXNlUGF0aDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICB9LFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiBub1Jlc3RyaWN0ZWRQYXRocyhjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICAgIGNvbnN0IHJlc3RyaWN0ZWRQYXRocyA9IG9wdGlvbnMuem9uZXMgfHwgW11cbiAgICBjb25zdCBiYXNlUGF0aCA9IG9wdGlvbnMuYmFzZVBhdGggfHwgcHJvY2Vzcy5jd2QoKVxuICAgIGNvbnN0IGN1cnJlbnRGaWxlbmFtZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgIGNvbnN0IG1hdGNoaW5nWm9uZXMgPSByZXN0cmljdGVkUGF0aHMuZmlsdGVyKCh6b25lKSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKGJhc2VQYXRoLCB6b25lLnRhcmdldClcblxuICAgICAgcmV0dXJuIGNvbnRhaW5zUGF0aChjdXJyZW50RmlsZW5hbWUsIHRhcmdldFBhdGgpXG4gICAgfSlcblxuICAgIGZ1bmN0aW9uIGlzVmFsaWRFeGNlcHRpb25QYXRoKGFic29sdXRlRnJvbVBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aCkge1xuICAgICAgY29uc3QgcmVsYXRpdmVFeGNlcHRpb25QYXRoID0gcGF0aC5yZWxhdGl2ZShhYnNvbHV0ZUZyb21QYXRoLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpXG5cbiAgICAgIHJldHVybiBpbXBvcnRUeXBlKHJlbGF0aXZlRXhjZXB0aW9uUGF0aCwgY29udGV4dCkgIT09ICdwYXJlbnQnXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVwb3J0SW52YWxpZEV4Y2VwdGlvblBhdGgobm9kZSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlLFxuICAgICAgICBtZXNzYWdlOiAnUmVzdHJpY3RlZCBwYXRoIGV4Y2VwdGlvbnMgbXVzdCBiZSBkZXNjZW5kYW50cyBvZiB0aGUgY29uZmlndXJlZCBgZnJvbWAgcGF0aCBmb3IgdGhhdCB6b25lLicsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgoaW1wb3J0UGF0aCwgbm9kZSkge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZUltcG9ydFBhdGggPSByZXNvbHZlKGltcG9ydFBhdGgsIGNvbnRleHQpXG5cbiAgICAgICAgaWYgKCFhYnNvbHV0ZUltcG9ydFBhdGgpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIG1hdGNoaW5nWm9uZXMuZm9yRWFjaCgoem9uZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4Y2VwdGlvblBhdGhzID0gem9uZS5leGNlcHQgfHwgW11cbiAgICAgICAgICBjb25zdCBhYnNvbHV0ZUZyb20gPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUuZnJvbSlcblxuICAgICAgICAgIGlmICghY29udGFpbnNQYXRoKGFic29sdXRlSW1wb3J0UGF0aCwgYWJzb2x1dGVGcm9tKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYWJzb2x1dGVFeGNlcHRpb25QYXRocyA9IGV4Y2VwdGlvblBhdGhzLm1hcCgoZXhjZXB0aW9uUGF0aCkgPT5cbiAgICAgICAgICAgIHBhdGgucmVzb2x2ZShhYnNvbHV0ZUZyb20sIGV4Y2VwdGlvblBhdGgpXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IGhhc1ZhbGlkRXhjZXB0aW9uUGF0aHMgPSBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzXG4gICAgICAgICAgICAuZXZlcnkoKGFic29sdXRlRXhjZXB0aW9uUGF0aCkgPT4gaXNWYWxpZEV4Y2VwdGlvblBhdGgoYWJzb2x1dGVGcm9tLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpKVxuXG4gICAgICAgICAgaWYgKCFoYXNWYWxpZEV4Y2VwdGlvblBhdGhzKSB7XG4gICAgICAgICAgICByZXBvcnRJbnZhbGlkRXhjZXB0aW9uUGF0aChub2RlKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcGF0aElzRXhjZXB0ZWQgPSBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzXG4gICAgICAgICAgICAuc29tZSgoYWJzb2x1dGVFeGNlcHRpb25QYXRoKSA9PiBjb250YWluc1BhdGgoYWJzb2x1dGVJbXBvcnRQYXRoLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpKVxuXG4gICAgICAgICAgaWYgKHBhdGhJc0V4Y2VwdGVkKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgcGF0aCBcInt7aW1wb3J0UGF0aH19XCIgaW1wb3J0ZWQgaW4gcmVzdHJpY3RlZCB6b25lLmAsXG4gICAgICAgICAgICBkYXRhOiB7IGltcG9ydFBhdGggfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIGNvbnN0IFsgZmlyc3RBcmd1bWVudCBdID0gbm9kZS5hcmd1bWVudHNcblxuICAgICAgICAgIGNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgoZmlyc3RBcmd1bWVudC52YWx1ZSwgZmlyc3RBcmd1bWVudClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiem9uZXMiLCJtaW5JdGVtcyIsIml0ZW1zIiwidGFyZ2V0IiwiZnJvbSIsImV4Y2VwdCIsInVuaXF1ZUl0ZW1zIiwibWVzc2FnZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiYmFzZVBhdGgiLCJjcmVhdGUiLCJub1Jlc3RyaWN0ZWRQYXRocyIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzdHJpY3RlZFBhdGhzIiwicHJvY2VzcyIsImN3ZCIsImN1cnJlbnRGaWxlbmFtZSIsImdldEZpbGVuYW1lIiwibWF0Y2hpbmdab25lcyIsImZpbHRlciIsInpvbmUiLCJ0YXJnZXRQYXRoIiwicGF0aCIsInJlc29sdmUiLCJpc1ZhbGlkRXhjZXB0aW9uUGF0aCIsImFic29sdXRlRnJvbVBhdGgiLCJhYnNvbHV0ZUV4Y2VwdGlvblBhdGgiLCJyZWxhdGl2ZUV4Y2VwdGlvblBhdGgiLCJyZWxhdGl2ZSIsInJlcG9ydEludmFsaWRFeGNlcHRpb25QYXRoIiwibm9kZSIsInJlcG9ydCIsImNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgiLCJpbXBvcnRQYXRoIiwiYWJzb2x1dGVJbXBvcnRQYXRoIiwiZm9yRWFjaCIsImV4Y2VwdGlvblBhdGhzIiwiYWJzb2x1dGVGcm9tIiwiYWJzb2x1dGVFeGNlcHRpb25QYXRocyIsIm1hcCIsImV4Y2VwdGlvblBhdGgiLCJoYXNWYWxpZEV4Y2VwdGlvblBhdGhzIiwiZXZlcnkiLCJwYXRoSXNFeGNlcHRlZCIsInNvbWUiLCJkYXRhIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwiZmlyc3RBcmd1bWVudCJdLCJtYXBwaW5ncyI6InFvQkFBQSw2QztB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WUFBSSxDQUFDZSxzQkFBTCxFQUE2QjtBQUMzQloscUNBQTJCQyxJQUEzQjtBQUNBO0FBQ0Q7O0FBRUQsY0FBTWEsaUJBQWlCTDtBQUNwQk0sWUFEb0IsQ0FDZGxCLHFCQUFELElBQTJCLDRCQUFhUSxrQkFBYixFQUFpQ1IscUJBQWpDLENBRFosQ0FBdkI7O0FBR0EsWUFBSWlCLGNBQUosRUFBb0I7QUFDbEI7QUFDRDs7QUFFRGhDLGdCQUFRb0IsTUFBUixDQUFlO0FBQ2JELGNBRGE7QUFFYnhCLG1CQUFVLGdFQUErRGMsS0FBS2QsT0FBTCxHQUFnQixJQUFHYyxLQUFLZCxPQUFRLEVBQWhDLEdBQW9DLEVBQUcsRUFGbkc7QUFHYnVDLGdCQUFNLEVBQUVaLFVBQUYsRUFITyxFQUFmOztBQUtELE9BL0JEO0FBZ0NIOztBQUVELFdBQU87QUFDTGEsd0JBQWtCaEIsSUFBbEIsRUFBd0I7QUFDdEJFLHFDQUE2QkYsS0FBS2lCLE1BQUwsQ0FBWUMsS0FBekMsRUFBZ0RsQixLQUFLaUIsTUFBckQ7QUFDRCxPQUhJO0FBSUxFLHFCQUFlbkIsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUNDQSxlQUFLb0IsU0FETixXQUNqQkMsYUFEaUI7O0FBR3pCbkIsdUNBQTZCbUIsY0FBY0gsS0FBM0MsRUFBa0RHLGFBQWxEO0FBQ0Q7QUFDRixPQVZJLEVBQVA7O0FBWUQsR0FuSGMsRUFBakIiLCJmaWxlIjoibm8tcmVzdHJpY3RlZC1wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb250YWluc1BhdGggZnJvbSAnY29udGFpbnMtcGF0aCdcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHpvbmVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRhcmdldDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICAgIGZyb206IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICBleGNlcHQ6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJhc2VQYXRoOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5vUmVzdHJpY3RlZFBhdGhzKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gICAgY29uc3QgcmVzdHJpY3RlZFBhdGhzID0gb3B0aW9ucy56b25lcyB8fCBbXVxuICAgIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCB8fCBwcm9jZXNzLmN3ZCgpXG4gICAgY29uc3QgY3VycmVudEZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgY29uc3QgbWF0Y2hpbmdab25lcyA9IHJlc3RyaWN0ZWRQYXRocy5maWx0ZXIoKHpvbmUpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldFBhdGggPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUudGFyZ2V0KVxuXG4gICAgICByZXR1cm4gY29udGFpbnNQYXRoKGN1cnJlbnRGaWxlbmFtZSwgdGFyZ2V0UGF0aClcbiAgICB9KVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZEV4Y2VwdGlvblBhdGgoYWJzb2x1dGVGcm9tUGF0aCwgYWJzb2x1dGVFeGNlcHRpb25QYXRoKSB7XG4gICAgICBjb25zdCByZWxhdGl2ZUV4Y2VwdGlvblBhdGggPSBwYXRoLnJlbGF0aXZlKGFic29sdXRlRnJvbVBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aClcblxuICAgICAgcmV0dXJuIGltcG9ydFR5cGUocmVsYXRpdmVFeGNlcHRpb25QYXRoLCBjb250ZXh0KSAhPT0gJ3BhcmVudCdcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXBvcnRJbnZhbGlkRXhjZXB0aW9uUGF0aChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGUsXG4gICAgICAgIG1lc3NhZ2U6ICdSZXN0cmljdGVkIHBhdGggZXhjZXB0aW9ucyBtdXN0IGJlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb25maWd1cmVkIGBmcm9tYCBwYXRoIGZvciB0aGF0IHpvbmUuJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tGb3JSZXN0cmljdGVkSW1wb3J0UGF0aChpbXBvcnRQYXRoLCBub2RlKSB7XG4gICAgICAgIGNvbnN0IGFic29sdXRlSW1wb3J0UGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgICAgICBpZiAoIWFic29sdXRlSW1wb3J0UGF0aCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgbWF0Y2hpbmdab25lcy5mb3JFYWNoKCh6b25lKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhjZXB0aW9uUGF0aHMgPSB6b25lLmV4Y2VwdCB8fCBbXVxuICAgICAgICAgIGNvbnN0IGFic29sdXRlRnJvbSA9IHBhdGgucmVzb2x2ZShiYXNlUGF0aCwgem9uZS5mcm9tKVxuXG4gICAgICAgICAgaWYgKCFjb250YWluc1BhdGgoYWJzb2x1dGVJbXBvcnRQYXRoLCBhYnNvbHV0ZUZyb20pKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzID0gZXhjZXB0aW9uUGF0aHMubWFwKChleGNlcHRpb25QYXRoKSA9PlxuICAgICAgICAgICAgcGF0aC5yZXNvbHZlKGFic29sdXRlRnJvbSwgZXhjZXB0aW9uUGF0aClcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgaGFzVmFsaWRFeGNlcHRpb25QYXRocyA9IGFic29sdXRlRXhjZXB0aW9uUGF0aHNcbiAgICAgICAgICAgIC5ldmVyeSgoYWJzb2x1dGVFeGNlcHRpb25QYXRoKSA9PiBpc1ZhbGlkRXhjZXB0aW9uUGF0aChhYnNvbHV0ZUZyb20sIGFic29sdXRlRXhjZXB0aW9uUGF0aCkpXG5cbiAgICAgICAgICBpZiAoIWhhc1ZhbGlkRXhjZXB0aW9uUGF0aHMpIHtcbiAgICAgICAgICAgIHJlcG9ydEludmFsaWRFeGNlcHRpb25QYXRoKG5vZGUpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwYXRoSXNFeGNlcHRlZCA9IGFic29sdXRlRXhjZXB0aW9uUGF0aHNcbiAgICAgICAgICAgIC5zb21lKChhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpID0+IGNvbnRhaW5zUGF0aChhYnNvbHV0ZUltcG9ydFBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aCkpXG5cbiAgICAgICAgICBpZiAocGF0aElzRXhjZXB0ZWQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBwYXRoIFwie3tpbXBvcnRQYXRofX1cIiBpbXBvcnRlZCBpbiByZXN0cmljdGVkIHpvbmUuJHt6b25lLm1lc3NhZ2UgPyBgICR7em9uZS5tZXNzYWdlfWAgOiAnJ31gLFxuICAgICAgICAgICAgZGF0YTogeyBpbXBvcnRQYXRoIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKG5vZGUuc291cmNlLnZhbHVlLCBub2RlLnNvdXJjZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICBjb25zdCBbIGZpcnN0QXJndW1lbnQgXSA9IG5vZGUuYXJndW1lbnRzXG5cbiAgICAgICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKGZpcnN0QXJndW1lbnQudmFsdWUsIGZpcnN0QXJndW1lbnQpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-self-import.js b/node_modules/eslint-plugin-import/lib/rules/no-self-import.js
index 068833a..5095163 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-self-import.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-self-import.js
@@ -1,18 +1,11 @@
 'use strict';
 
-var _resolve = require('eslint-module-utils/resolve');
 
-var _resolve2 = _interopRequireDefault(_resolve);
 
-var _staticRequire = require('../core/staticRequire');
 
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function isImportingSelf(context, node, requireName) {
   const filePath = context.getFilename();
@@ -21,25 +14,22 @@
   if (filePath !== '<text>' && filePath === (0, _resolve2.default)(requireName, context)) {
     context.report({
       node,
-      message: 'Module imports itself.'
-    });
+      message: 'Module imports itself.' });
+
   }
 } /**
    * @fileOverview Forbids a module from importing itself
    * @author Gio d'Amelio
-   */
-
-module.exports = {
-  meta: {
+   */module.exports = { meta: {
     type: 'problem',
     docs: {
       description: 'Forbid a module from importing itself',
       recommended: true,
-      url: (0, _docsUrl2.default)('no-self-import')
-    },
+      url: (0, _docsUrl2.default)('no-self-import') },
 
-    schema: []
-  },
+
+    schema: [] },
+
   create: function (context) {
     return {
       ImportDeclaration(node) {
@@ -49,8 +39,7 @@
         if ((0, _staticRequire2.default)(node)) {
           isImportingSelf(context, node, node.arguments[0].value);
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1zZWxmLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJpc0ltcG9ydGluZ1NlbGYiLCJjb250ZXh0Iiwibm9kZSIsInJlcXVpcmVOYW1lIiwiZmlsZVBhdGgiLCJnZXRGaWxlbmFtZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwiZGVzY3JpcHRpb24iLCJyZWNvbW1lbmRlZCIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsIkltcG9ydERlY2xhcmF0aW9uIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImFyZ3VtZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFLQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsV0FBeEMsRUFBcUQ7QUFDbkQsUUFBTUMsV0FBV0gsUUFBUUksV0FBUixFQUFqQjs7QUFFQTtBQUNBLE1BQUlELGFBQWEsUUFBYixJQUF5QkEsYUFBYSx1QkFBUUQsV0FBUixFQUFxQkYsT0FBckIsQ0FBMUMsRUFBeUU7QUFDdkVBLFlBQVFLLE1BQVIsQ0FBZTtBQUNYSixVQURXO0FBRVhLLGVBQVM7QUFGRSxLQUFmO0FBSUQ7QUFDRixDLENBbkJEOzs7OztBQXFCQUMsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLG1CQUFhLHVDQURUO0FBRUpDLG1CQUFhLElBRlQ7QUFHSkMsV0FBSyx1QkFBUSxnQkFBUjtBQUhELEtBRkY7O0FBUUpDLFlBQVE7QUFSSixHQURTO0FBV2ZDLFVBQVEsVUFBVWhCLE9BQVYsRUFBbUI7QUFDekIsV0FBTztBQUNMaUIsd0JBQWtCaEIsSUFBbEIsRUFBd0I7QUFDdEJGLHdCQUFnQkMsT0FBaEIsRUFBeUJDLElBQXpCLEVBQStCQSxLQUFLaUIsTUFBTCxDQUFZQyxLQUEzQztBQUNELE9BSEk7QUFJTEMscUJBQWVuQixJQUFmLEVBQXFCO0FBQ25CLFlBQUksNkJBQWdCQSxJQUFoQixDQUFKLEVBQTJCO0FBQ3pCRiwwQkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQkEsS0FBS29CLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRixLQUFqRDtBQUNEO0FBQ0Y7QUFSSSxLQUFQO0FBVUQ7QUF0QmMsQ0FBakIiLCJmaWxlIjoibm8tc2VsZi1pbXBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRm9yYmlkcyBhIG1vZHVsZSBmcm9tIGltcG9ydGluZyBpdHNlbGZcbiAqIEBhdXRob3IgR2lvIGQnQW1lbGlvXG4gKi9cblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiBpc0ltcG9ydGluZ1NlbGYoY29udGV4dCwgbm9kZSwgcmVxdWlyZU5hbWUpIHtcbiAgY29uc3QgZmlsZVBhdGggPSBjb250ZXh0LmdldEZpbGVuYW1lKClcblxuICAvLyBJZiB0aGUgaW5wdXQgaXMgZnJvbSBzdGRpbiwgdGhpcyB0ZXN0IGNhbid0IGZhaWxcbiAgaWYgKGZpbGVQYXRoICE9PSAnPHRleHQ+JyAmJiBmaWxlUGF0aCA9PT0gcmVzb2x2ZShyZXF1aXJlTmFtZSwgY29udGV4dCkpIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGUsXG4gICAgICAgIG1lc3NhZ2U6ICdNb2R1bGUgaW1wb3J0cyBpdHNlbGYuJyxcbiAgICB9KVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRm9yYmlkIGEgbW9kdWxlIGZyb20gaW1wb3J0aW5nIGl0c2VsZicsXG4gICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgIHVybDogZG9jc1VybCgnbm8tc2VsZi1pbXBvcnQnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICBpc0ltcG9ydGluZ1NlbGYoY29udGV4dCwgbm9kZSwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1zZWxmLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJpc0ltcG9ydGluZ1NlbGYiLCJjb250ZXh0Iiwibm9kZSIsInJlcXVpcmVOYW1lIiwiZmlsZVBhdGgiLCJnZXRGaWxlbmFtZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwiZGVzY3JpcHRpb24iLCJyZWNvbW1lbmRlZCIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsIkltcG9ydERlY2xhcmF0aW9uIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImFyZ3VtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxzRDtBQUNBLHNEO0FBQ0EscUM7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLElBQWxDLEVBQXdDQyxXQUF4QyxFQUFxRDtBQUNuRCxRQUFNQyxXQUFXSCxRQUFRSSxXQUFSLEVBQWpCOztBQUVBO0FBQ0EsTUFBSUQsYUFBYSxRQUFiLElBQXlCQSxhQUFhLHVCQUFRRCxXQUFSLEVBQXFCRixPQUFyQixDQUExQyxFQUF5RTtBQUN2RUEsWUFBUUssTUFBUixDQUFlO0FBQ1hKLFVBRFc7QUFFWEssZUFBUyx3QkFGRSxFQUFmOztBQUlEO0FBQ0YsQyxDQW5CRDs7O0tBcUJBQyxPQUFPQyxPQUFQLEdBQWlCLEVBQ2ZDLE1BQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsbUJBQWEsdUNBRFQ7QUFFSkMsbUJBQWEsSUFGVDtBQUdKQyxXQUFLLHVCQUFRLGdCQUFSLENBSEQsRUFGRjs7O0FBUUpDLFlBQVEsRUFSSixFQURTOztBQVdmQyxVQUFRLFVBQVVoQixPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTGlCLHdCQUFrQmhCLElBQWxCLEVBQXdCO0FBQ3RCRix3QkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQkEsS0FBS2lCLE1BQUwsQ0FBWUMsS0FBM0M7QUFDRCxPQUhJO0FBSUxDLHFCQUFlbkIsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QkYsMEJBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JBLEtBQUtvQixTQUFMLENBQWUsQ0FBZixFQUFrQkYsS0FBakQ7QUFDRDtBQUNGLE9BUkksRUFBUDs7QUFVRCxHQXRCYyxFQUFqQiIsImZpbGUiOiJuby1zZWxmLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBGb3JiaWRzIGEgbW9kdWxlIGZyb20gaW1wb3J0aW5nIGl0c2VsZlxuICogQGF1dGhvciBHaW8gZCdBbWVsaW9cbiAqL1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCByZXF1aXJlTmFtZSkge1xuICBjb25zdCBmaWxlUGF0aCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuXG4gIC8vIElmIHRoZSBpbnB1dCBpcyBmcm9tIHN0ZGluLCB0aGlzIHRlc3QgY2FuJ3QgZmFpbFxuICBpZiAoZmlsZVBhdGggIT09ICc8dGV4dD4nICYmIGZpbGVQYXRoID09PSByZXNvbHZlKHJlcXVpcmVOYW1lLCBjb250ZXh0KSkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbWVzc2FnZTogJ01vZHVsZSBpbXBvcnRzIGl0c2VsZi4nLFxuICAgIH0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdGb3JiaWQgYSBtb2R1bGUgZnJvbSBpbXBvcnRpbmcgaXRzZWxmJyxcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgICAgdXJsOiBkb2NzVXJsKCduby1zZWxmLWltcG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaXNJbXBvcnRpbmdTZWxmKGNvbnRleHQsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCBub2RlLmFyZ3VtZW50c1swXS52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js b/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js
index 65250b8..1d6d3f3 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js
@@ -1,28 +1,14 @@
-'use strict';
+'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path);
+var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch);
 
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _minimatch = require('minimatch');
-
-var _minimatch2 = _interopRequireDefault(_minimatch);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function report(context, node) {
   context.report({
     node,
-    message: 'Imported module should be assigned'
-  });
+    message: 'Imported module should be assigned' });
+
 }
 
 function testIsAllow(globs, filename, source) {
@@ -32,14 +18,16 @@
 
   let filePath;
 
-  if (source[0] !== '.' && source[0] !== '/') {
-    // a node module
+  if (source[0] !== '.' && source[0] !== '/') {// a node module
     filePath = source;
   } else {
     filePath = _path2.default.resolve(_path2.default.dirname(filename), source); // get source absolute path
   }
 
-  return globs.find(glob => (0, _minimatch2.default)(filePath, glob) || (0, _minimatch2.default)(filePath, _path2.default.join(process.cwd(), glob))) !== undefined;
+  return globs.find(glob =>
+  (0, _minimatch2.default)(filePath, glob) ||
+  (0, _minimatch2.default)(filePath, _path2.default.join(process.cwd(), glob))) !==
+  undefined;
 }
 
 function create(context) {
@@ -54,11 +42,13 @@
       }
     },
     ExpressionStatement(node) {
-      if (node.expression.type === 'CallExpression' && (0, _staticRequire2.default)(node.expression) && !isAllow(node.expression.arguments[0].value)) {
+      if (node.expression.type === 'CallExpression' &&
+      (0, _staticRequire2.default)(node.expression) &&
+      !isAllow(node.expression.arguments[0].value)) {
         report(context, node.expression);
       }
-    }
-  };
+    } };
+
 }
 
 module.exports = {
@@ -66,9 +56,10 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-unassigned-import')
-    },
-    schema: [{
+      url: (0, _docsUrl2.default)('no-unassigned-import') },
+
+    schema: [
+    {
       'type': 'object',
       'properties': {
         'devDependencies': { 'type': ['boolean', 'array'] },
@@ -77,12 +68,9 @@
         'allow': {
           'type': 'array',
           'items': {
-            'type': 'string'
-          }
-        }
-      },
-      'additionalProperties': false
-    }]
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bmFzc2lnbmVkLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJyZXBvcnQiLCJjb250ZXh0Iiwibm9kZSIsIm1lc3NhZ2UiLCJ0ZXN0SXNBbGxvdyIsImdsb2JzIiwiZmlsZW5hbWUiLCJzb3VyY2UiLCJBcnJheSIsImlzQXJyYXkiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImZpbmQiLCJnbG9iIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJ1bmRlZmluZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJpc0FsbG93IiwiYWxsb3ciLCJJbXBvcnREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJsZW5ndGgiLCJ2YWx1ZSIsIkV4cHJlc3Npb25TdGF0ZW1lbnQiLCJleHByZXNzaW9uIiwidHlwZSIsImFyZ3VtZW50cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0FBRUEsU0FBU0EsTUFBVCxDQUFnQkMsT0FBaEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQzdCRCxVQUFRRCxNQUFSLENBQWU7QUFDYkUsUUFEYTtBQUViQyxhQUFTO0FBRkksR0FBZjtBQUlEOztBQUVELFNBQVNDLFdBQVQsQ0FBcUJDLEtBQXJCLEVBQTRCQyxRQUE1QixFQUFzQ0MsTUFBdEMsRUFBOEM7QUFDNUMsTUFBSSxDQUFDQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBTCxFQUEyQjtBQUN6QixXQUFPLEtBQVAsQ0FEeUIsQ0FDWjtBQUNkOztBQUVELE1BQUlLLFFBQUo7O0FBRUEsTUFBSUgsT0FBTyxDQUFQLE1BQWMsR0FBZCxJQUFxQkEsT0FBTyxDQUFQLE1BQWMsR0FBdkMsRUFBNEM7QUFBRTtBQUM1Q0csZUFBV0gsTUFBWDtBQUNELEdBRkQsTUFFTztBQUNMRyxlQUFXQyxlQUFLQyxPQUFMLENBQWFELGVBQUtFLE9BQUwsQ0FBYVAsUUFBYixDQUFiLEVBQXFDQyxNQUFyQyxDQUFYLENBREssQ0FDbUQ7QUFDekQ7O0FBRUQsU0FBT0YsTUFBTVMsSUFBTixDQUFXQyxRQUNoQix5QkFBVUwsUUFBVixFQUFvQkssSUFBcEIsS0FDQSx5QkFBVUwsUUFBVixFQUFvQkMsZUFBS0ssSUFBTCxDQUFVQyxRQUFRQyxHQUFSLEVBQVYsRUFBeUJILElBQXpCLENBQXBCLENBRkssTUFHQUksU0FIUDtBQUlEOztBQUVELFNBQVNDLE1BQVQsQ0FBZ0JuQixPQUFoQixFQUF5QjtBQUN2QixRQUFNb0IsVUFBVXBCLFFBQVFvQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsUUFBTWYsV0FBV0wsUUFBUXFCLFdBQVIsRUFBakI7QUFDQSxRQUFNQyxVQUFVaEIsVUFBVUgsWUFBWWlCLFFBQVFHLEtBQXBCLEVBQTJCbEIsUUFBM0IsRUFBcUNDLE1BQXJDLENBQTFCOztBQUVBLFNBQU87QUFDTGtCLHNCQUFrQnZCLElBQWxCLEVBQXdCO0FBQ3RCLFVBQUlBLEtBQUt3QixVQUFMLENBQWdCQyxNQUFoQixLQUEyQixDQUEzQixJQUFnQyxDQUFDSixRQUFRckIsS0FBS0ssTUFBTCxDQUFZcUIsS0FBcEIsQ0FBckMsRUFBaUU7QUFDL0Q1QixlQUFPQyxPQUFQLEVBQWdCQyxJQUFoQjtBQUNEO0FBQ0YsS0FMSTtBQU1MMkIsd0JBQW9CM0IsSUFBcEIsRUFBMEI7QUFDeEIsVUFBSUEsS0FBSzRCLFVBQUwsQ0FBZ0JDLElBQWhCLEtBQXlCLGdCQUF6QixJQUNGLDZCQUFnQjdCLEtBQUs0QixVQUFyQixDQURFLElBRUYsQ0FBQ1AsUUFBUXJCLEtBQUs0QixVQUFMLENBQWdCRSxTQUFoQixDQUEwQixDQUExQixFQUE2QkosS0FBckMsQ0FGSCxFQUVnRDtBQUM5QzVCLGVBQU9DLE9BQVAsRUFBZ0JDLEtBQUs0QixVQUFyQjtBQUNEO0FBQ0Y7QUFaSSxHQUFQO0FBY0Q7O0FBRURHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZmQsUUFEZTtBQUVmZSxRQUFNO0FBQ0pKLFVBQU0sWUFERjtBQUVKSyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsc0JBQVI7QUFERCxLQUZGO0FBS0pDLFlBQVEsQ0FDTjtBQUNFLGNBQVEsUUFEVjtBQUVFLG9CQUFjO0FBQ1osMkJBQW1CLEVBQUUsUUFBUSxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFEUDtBQUVaLGdDQUF3QixFQUFFLFFBQVEsQ0FBQyxTQUFELEVBQVksT0FBWixDQUFWLEVBRlo7QUFHWiw0QkFBb0IsRUFBRSxRQUFRLENBQUMsU0FBRCxFQUFZLE9BQVosQ0FBVixFQUhSO0FBSVosaUJBQVM7QUFDUCxrQkFBUSxPQUREO0FBRVAsbUJBQVM7QUFDUCxvQkFBUTtBQUREO0FBRkY7QUFKRyxPQUZoQjtBQWFFLDhCQUF3QjtBQWIxQixLQURNO0FBTEo7QUFGUyxDQUFqQiIsImZpbGUiOiJuby11bmFzc2lnbmVkLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCdcblxuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiByZXBvcnQoY29udGV4dCwgbm9kZSkge1xuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbm9kZSxcbiAgICBtZXNzYWdlOiAnSW1wb3J0ZWQgbW9kdWxlIHNob3VsZCBiZSBhc3NpZ25lZCcsXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHRlc3RJc0FsbG93KGdsb2JzLCBmaWxlbmFtZSwgc291cmNlKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShnbG9icykpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gZGVmYXVsdCBkb2Vzbid0IGFsbG93IGFueSBwYXR0ZXJuc1xuICB9XG5cbiAgbGV0IGZpbGVQYXRoXG5cbiAgaWYgKHNvdXJjZVswXSAhPT0gJy4nICYmIHNvdXJjZVswXSAhPT0gJy8nKSB7IC8vIGEgbm9kZSBtb2R1bGVcbiAgICBmaWxlUGF0aCA9IHNvdXJjZVxuICB9IGVsc2Uge1xuICAgIGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHBhdGguZGlybmFtZShmaWxlbmFtZSksIHNvdXJjZSkgLy8gZ2V0IHNvdXJjZSBhYnNvbHV0ZSBwYXRoXG4gIH1cblxuICByZXR1cm4gZ2xvYnMuZmluZChnbG9iID0+IChcbiAgICBtaW5pbWF0Y2goZmlsZVBhdGgsIGdsb2IpIHx8XG4gICAgbWluaW1hdGNoKGZpbGVQYXRoLCBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgZ2xvYikpXG4gICkpICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gY3JlYXRlKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICBjb25zdCBpc0FsbG93ID0gc291cmNlID0+IHRlc3RJc0FsbG93KG9wdGlvbnMuYWxsb3csIGZpbGVuYW1lLCBzb3VyY2UpXG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCAmJiAhaXNBbGxvdyhub2RlLnNvdXJjZS52YWx1ZSkpIHtcbiAgICAgICAgcmVwb3J0KGNvbnRleHQsIG5vZGUpXG4gICAgICB9XG4gICAgfSxcbiAgICBFeHByZXNzaW9uU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmV4cHJlc3Npb24udHlwZSA9PT0gJ0NhbGxFeHByZXNzaW9uJyAmJlxuICAgICAgICBpc1N0YXRpY1JlcXVpcmUobm9kZS5leHByZXNzaW9uKSAmJlxuICAgICAgICAhaXNBbGxvdyhub2RlLmV4cHJlc3Npb24uYXJndW1lbnRzWzBdLnZhbHVlKSkge1xuICAgICAgICByZXBvcnQoY29udGV4dCwgbm9kZS5leHByZXNzaW9uKVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNyZWF0ZSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXVuYXNzaWduZWQtaW1wb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2RldkRlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwZWVyRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ2FsbG93Jzoge1xuICAgICAgICAgICAgJ3R5cGUnOiAnYXJyYXknLFxuICAgICAgICAgICAgJ2l0ZW1zJzoge1xuICAgICAgICAgICAgICAndHlwZSc6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+            'type': 'string' } } },
+
+
+
+      'additionalProperties': false }] } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bmFzc2lnbmVkLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJyZXBvcnQiLCJjb250ZXh0Iiwibm9kZSIsIm1lc3NhZ2UiLCJ0ZXN0SXNBbGxvdyIsImdsb2JzIiwiZmlsZW5hbWUiLCJzb3VyY2UiLCJBcnJheSIsImlzQXJyYXkiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImZpbmQiLCJnbG9iIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJ1bmRlZmluZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJpc0FsbG93IiwiYWxsb3ciLCJJbXBvcnREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJsZW5ndGgiLCJ2YWx1ZSIsIkV4cHJlc3Npb25TdGF0ZW1lbnQiLCJleHByZXNzaW9uIiwidHlwZSIsImFyZ3VtZW50cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7QUFDQSxzQzs7QUFFQSxzRDtBQUNBLHFDOztBQUVBLFNBQVNBLE1BQVQsQ0FBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQjtBQUM3QkQsVUFBUUQsTUFBUixDQUFlO0FBQ2JFLFFBRGE7QUFFYkMsYUFBUyxvQ0FGSSxFQUFmOztBQUlEOztBQUVELFNBQVNDLFdBQVQsQ0FBcUJDLEtBQXJCLEVBQTRCQyxRQUE1QixFQUFzQ0MsTUFBdEMsRUFBOEM7QUFDNUMsTUFBSSxDQUFDQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBTCxFQUEyQjtBQUN6QixXQUFPLEtBQVAsQ0FEeUIsQ0FDWjtBQUNkOztBQUVELE1BQUlLLFFBQUo7O0FBRUEsTUFBSUgsT0FBTyxDQUFQLE1BQWMsR0FBZCxJQUFxQkEsT0FBTyxDQUFQLE1BQWMsR0FBdkMsRUFBNEMsQ0FBRTtBQUM1Q0csZUFBV0gsTUFBWDtBQUNELEdBRkQsTUFFTztBQUNMRyxlQUFXQyxlQUFLQyxPQUFMLENBQWFELGVBQUtFLE9BQUwsQ0FBYVAsUUFBYixDQUFiLEVBQXFDQyxNQUFyQyxDQUFYLENBREssQ0FDbUQ7QUFDekQ7O0FBRUQsU0FBT0YsTUFBTVMsSUFBTixDQUFXQztBQUNoQiwyQkFBVUwsUUFBVixFQUFvQkssSUFBcEI7QUFDQSwyQkFBVUwsUUFBVixFQUFvQkMsZUFBS0ssSUFBTCxDQUFVQyxRQUFRQyxHQUFSLEVBQVYsRUFBeUJILElBQXpCLENBQXBCLENBRks7QUFHQUksV0FIUDtBQUlEOztBQUVELFNBQVNDLE1BQVQsQ0FBZ0JuQixPQUFoQixFQUF5QjtBQUN2QixRQUFNb0IsVUFBVXBCLFFBQVFvQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsUUFBTWYsV0FBV0wsUUFBUXFCLFdBQVIsRUFBakI7QUFDQSxRQUFNQyxVQUFVaEIsVUFBVUgsWUFBWWlCLFFBQVFHLEtBQXBCLEVBQTJCbEIsUUFBM0IsRUFBcUNDLE1BQXJDLENBQTFCOztBQUVBLFNBQU87QUFDTGtCLHNCQUFrQnZCLElBQWxCLEVBQXdCO0FBQ3RCLFVBQUlBLEtBQUt3QixVQUFMLENBQWdCQyxNQUFoQixLQUEyQixDQUEzQixJQUFnQyxDQUFDSixRQUFRckIsS0FBS0ssTUFBTCxDQUFZcUIsS0FBcEIsQ0FBckMsRUFBaUU7QUFDL0Q1QixlQUFPQyxPQUFQLEVBQWdCQyxJQUFoQjtBQUNEO0FBQ0YsS0FMSTtBQU1MMkIsd0JBQW9CM0IsSUFBcEIsRUFBMEI7QUFDeEIsVUFBSUEsS0FBSzRCLFVBQUwsQ0FBZ0JDLElBQWhCLEtBQXlCLGdCQUF6QjtBQUNGLG1DQUFnQjdCLEtBQUs0QixVQUFyQixDQURFO0FBRUYsT0FBQ1AsUUFBUXJCLEtBQUs0QixVQUFMLENBQWdCRSxTQUFoQixDQUEwQixDQUExQixFQUE2QkosS0FBckMsQ0FGSCxFQUVnRDtBQUM5QzVCLGVBQU9DLE9BQVAsRUFBZ0JDLEtBQUs0QixVQUFyQjtBQUNEO0FBQ0YsS0FaSSxFQUFQOztBQWNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZkLFFBRGU7QUFFZmUsUUFBTTtBQUNKSixVQUFNLFlBREY7QUFFSkssVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHNCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUTtBQUNOO0FBQ0UsY0FBUSxRQURWO0FBRUUsb0JBQWM7QUFDWiwyQkFBbUIsRUFBRSxRQUFRLENBQUMsU0FBRCxFQUFZLE9BQVosQ0FBVixFQURQO0FBRVosZ0NBQXdCLEVBQUUsUUFBUSxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFGWjtBQUdaLDRCQUFvQixFQUFFLFFBQVEsQ0FBQyxTQUFELEVBQVksT0FBWixDQUFWLEVBSFI7QUFJWixpQkFBUztBQUNQLGtCQUFRLE9BREQ7QUFFUCxtQkFBUztBQUNQLG9CQUFRLFFBREQsRUFGRixFQUpHLEVBRmhCOzs7O0FBYUUsOEJBQXdCLEtBYjFCLEVBRE0sQ0FMSixFQUZTLEVBQWpCIiwiZmlsZSI6Im5vLXVuYXNzaWduZWQtaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJ1xuXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIHJlcG9ydChjb250ZXh0LCBub2RlKSB7XG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBub2RlLFxuICAgIG1lc3NhZ2U6ICdJbXBvcnRlZCBtb2R1bGUgc2hvdWxkIGJlIGFzc2lnbmVkJyxcbiAgfSlcbn1cblxuZnVuY3Rpb24gdGVzdElzQWxsb3coZ2xvYnMsIGZpbGVuYW1lLCBzb3VyY2UpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGdsb2JzKSkge1xuICAgIHJldHVybiBmYWxzZSAvLyBkZWZhdWx0IGRvZXNuJ3QgYWxsb3cgYW55IHBhdHRlcm5zXG4gIH1cblxuICBsZXQgZmlsZVBhdGhcblxuICBpZiAoc291cmNlWzBdICE9PSAnLicgJiYgc291cmNlWzBdICE9PSAnLycpIHsgLy8gYSBub2RlIG1vZHVsZVxuICAgIGZpbGVQYXRoID0gc291cmNlXG4gIH0gZWxzZSB7XG4gICAgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSwgc291cmNlKSAvLyBnZXQgc291cmNlIGFic29sdXRlIHBhdGhcbiAgfVxuXG4gIHJldHVybiBnbG9icy5maW5kKGdsb2IgPT4gKFxuICAgIG1pbmltYXRjaChmaWxlUGF0aCwgZ2xvYikgfHxcbiAgICBtaW5pbWF0Y2goZmlsZVBhdGgsIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBnbG9iKSlcbiAgKSkgIT09IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBjcmVhdGUoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gIGNvbnN0IGlzQWxsb3cgPSBzb3VyY2UgPT4gdGVzdElzQWxsb3cob3B0aW9ucy5hbGxvdywgZmlsZW5hbWUsIHNvdXJjZSlcblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnNwZWNpZmllcnMubGVuZ3RoID09PSAwICYmICFpc0FsbG93KG5vZGUuc291cmNlLnZhbHVlKSkge1xuICAgICAgICByZXBvcnQoY29udGV4dCwgbm9kZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQobm9kZSkge1xuICAgICAgaWYgKG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnQ2FsbEV4cHJlc3Npb24nICYmXG4gICAgICAgIGlzU3RhdGljUmVxdWlyZShub2RlLmV4cHJlc3Npb24pICYmXG4gICAgICAgICFpc0FsbG93KG5vZGUuZXhwcmVzc2lvbi5hcmd1bWVudHNbMF0udmFsdWUpKSB7XG4gICAgICAgIHJlcG9ydChjb250ZXh0LCBub2RlLmV4cHJlc3Npb24pXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY3JlYXRlLFxuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAnYWxsb3cnOiB7XG4gICAgICAgICAgICAndHlwZSc6ICdhcnJheScsXG4gICAgICAgICAgICAnaXRlbXMnOiB7XG4gICAgICAgICAgICAgICd0eXBlJzogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js b/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js
index 5f675c4..a3f65be 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js
@@ -1,58 +1,49 @@
 'use strict';
 
-var _resolve = require('eslint-module-utils/resolve');
 
-var _resolve2 = _interopRequireDefault(_resolve);
 
-var _ModuleCache = require('eslint-module-utils/ModuleCache');
 
-var _ModuleCache2 = _interopRequireDefault(_ModuleCache);
-
-var _moduleVisitor = require('eslint-module-utils/moduleVisitor');
-
-var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * @fileOverview Ensures that an imported path exists, given resolution rules.
- * @author Ben Mosher
- */
-
-module.exports = {
-  meta: {
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _ModuleCache = require('eslint-module-utils/ModuleCache');var _ModuleCache2 = _interopRequireDefault(_ModuleCache);
+var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} /**
+                                                                                                                                                                                     * @fileOverview Ensures that an imported path exists, given resolution rules.
+                                                                                                                                                                                     * @author Ben Mosher
+                                                                                                                                                                                     */module.exports = { meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-unresolved')
-    },
+      url: (0, _docsUrl2.default)('no-unresolved') },
+
 
     schema: [(0, _moduleVisitor.makeOptionsSchema)({
-      caseSensitive: { type: 'boolean', default: true }
-    })]
-  },
+      caseSensitive: { type: 'boolean', default: true } })] },
+
+
 
   create: function (context) {
 
     function checkSourceValue(source) {
-      const shouldCheckCase = !_resolve.CASE_SENSITIVE_FS && (!context.options[0] || context.options[0].caseSensitive !== false);
+      const shouldCheckCase = !_resolve.CASE_SENSITIVE_FS && (
+      !context.options[0] || context.options[0].caseSensitive !== false);
 
       const resolvedPath = (0, _resolve2.default)(source.value, context);
 
       if (resolvedPath === undefined) {
-        context.report(source, `Unable to resolve path to module '${source.value}'.`);
-      } else if (shouldCheckCase) {
+        context.report(source,
+        `Unable to resolve path to module '${source.value}'.`);
+      } else
+
+      if (shouldCheckCase) {
         const cacheSettings = _ModuleCache2.default.getSettings(context.settings);
         if (!(0, _resolve.fileExistsWithCaseSync)(resolvedPath, cacheSettings)) {
-          context.report(source, `Casing of ${source.value} does not match the underlying filesystem.`);
+          context.report(source,
+          `Casing of ${source.value} does not match the underlying filesystem.`);
         }
+
       }
     }
 
     return (0, _moduleVisitor2.default)(checkSourceValue, context.options[0]);
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnJlc29sdmVkLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjYXNlU2Vuc2l0aXZlIiwiZGVmYXVsdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlIiwic2hvdWxkQ2hlY2tDYXNlIiwiQ0FTRV9TRU5TSVRJVkVfRlMiLCJvcHRpb25zIiwicmVzb2x2ZWRQYXRoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJyZXBvcnQiLCJjYWNoZVNldHRpbmdzIiwiTW9kdWxlQ2FjaGUiLCJnZXRTZXR0aW5ncyIsInNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOztBQUtBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFSQTs7Ozs7QUFVQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsZUFBUjtBQURELEtBRkY7O0FBTUpDLFlBQVEsQ0FBRSxzQ0FBa0I7QUFDMUJDLHFCQUFlLEVBQUVKLE1BQU0sU0FBUixFQUFtQkssU0FBUyxJQUE1QjtBQURXLEtBQWxCLENBQUY7QUFOSixHQURTOztBQVlmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7O0FBRXpCLGFBQVNDLGdCQUFULENBQTBCQyxNQUExQixFQUFrQztBQUNoQyxZQUFNQyxrQkFBa0IsQ0FBQ0MsMEJBQUQsS0FDckIsQ0FBQ0osUUFBUUssT0FBUixDQUFnQixDQUFoQixDQUFELElBQXVCTCxRQUFRSyxPQUFSLENBQWdCLENBQWhCLEVBQW1CUixhQUFuQixLQUFxQyxLQUR2QyxDQUF4Qjs7QUFHQSxZQUFNUyxlQUFlLHVCQUFRSixPQUFPSyxLQUFmLEVBQXNCUCxPQUF0QixDQUFyQjs7QUFFQSxVQUFJTSxpQkFBaUJFLFNBQXJCLEVBQWdDO0FBQzlCUixnQkFBUVMsTUFBUixDQUFlUCxNQUFmLEVBQ0cscUNBQW9DQSxPQUFPSyxLQUFNLElBRHBEO0FBRUQsT0FIRCxNQUtLLElBQUlKLGVBQUosRUFBcUI7QUFDeEIsY0FBTU8sZ0JBQWdCQyxzQkFBWUMsV0FBWixDQUF3QlosUUFBUWEsUUFBaEMsQ0FBdEI7QUFDQSxZQUFJLENBQUMscUNBQXVCUCxZQUF2QixFQUFxQ0ksYUFBckMsQ0FBTCxFQUEwRDtBQUN4RFYsa0JBQVFTLE1BQVIsQ0FBZVAsTUFBZixFQUNHLGFBQVlBLE9BQU9LLEtBQU0sNENBRDVCO0FBRUQ7QUFFRjtBQUNGOztBQUVELFdBQU8sNkJBQWNOLGdCQUFkLEVBQWdDRCxRQUFRSyxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFFRDtBQXJDYyxDQUFqQiIsImZpbGUiOiJuby11bnJlc29sdmVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEVuc3VyZXMgdGhhdCBhbiBpbXBvcnRlZCBwYXRoIGV4aXN0cywgZ2l2ZW4gcmVzb2x1dGlvbiBydWxlcy5cbiAqIEBhdXRob3IgQmVuIE1vc2hlclxuICovXG5cbmltcG9ydCByZXNvbHZlLCB7IENBU0VfU0VOU0lUSVZFX0ZTLCBmaWxlRXhpc3RzV2l0aENhc2VTeW5jIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IE1vZHVsZUNhY2hlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvTW9kdWxlQ2FjaGUnXG5pbXBvcnQgbW9kdWxlVmlzaXRvciwgeyBtYWtlT3B0aW9uc1NjaGVtYSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tdW5yZXNvbHZlZCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFsgbWFrZU9wdGlvbnNTY2hlbWEoe1xuICAgICAgY2FzZVNlbnNpdGl2ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IHRydWUgfSxcbiAgICB9KV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNob3VsZENoZWNrQ2FzZSA9ICFDQVNFX1NFTlNJVElWRV9GUyAmJlxuICAgICAgICAoIWNvbnRleHQub3B0aW9uc1swXSB8fCBjb250ZXh0Lm9wdGlvbnNbMF0uY2FzZVNlbnNpdGl2ZSAhPT0gZmFsc2UpXG5cbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUoc291cmNlLnZhbHVlLCBjb250ZXh0KVxuXG4gICAgICBpZiAocmVzb2x2ZWRQYXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoc291cmNlLFxuICAgICAgICAgIGBVbmFibGUgdG8gcmVzb2x2ZSBwYXRoIHRvIG1vZHVsZSAnJHtzb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuXG4gICAgICBlbHNlIGlmIChzaG91bGRDaGVja0Nhc2UpIHtcbiAgICAgICAgY29uc3QgY2FjaGVTZXR0aW5ncyA9IE1vZHVsZUNhY2hlLmdldFNldHRpbmdzKGNvbnRleHQuc2V0dGluZ3MpXG4gICAgICAgIGlmICghZmlsZUV4aXN0c1dpdGhDYXNlU3luYyhyZXNvbHZlZFBhdGgsIGNhY2hlU2V0dGluZ3MpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoc291cmNlLFxuICAgICAgICAgICAgYENhc2luZyBvZiAke3NvdXJjZS52YWx1ZX0gZG9lcyBub3QgbWF0Y2ggdGhlIHVuZGVybHlpbmcgZmlsZXN5c3RlbS5gKVxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBjb250ZXh0Lm9wdGlvbnNbMF0pXG5cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnJlc29sdmVkLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjYXNlU2Vuc2l0aXZlIiwiZGVmYXVsdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlIiwic2hvdWxkQ2hlY2tDYXNlIiwiQ0FTRV9TRU5TSVRJVkVfRlMiLCJvcHRpb25zIiwicmVzb2x2ZWRQYXRoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJyZXBvcnQiLCJjYWNoZVNldHRpbmdzIiwiTW9kdWxlQ2FjaGUiLCJnZXRTZXR0aW5ncyIsInNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBLHNEO0FBQ0EsOEQ7QUFDQSxrRTtBQUNBLHFDLCtJQVJBOzs7dUxBVUFBLE9BQU9DLE9BQVAsR0FBaUIsRUFDZkMsTUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGVBQVIsQ0FERCxFQUZGOzs7QUFNSkMsWUFBUSxDQUFFLHNDQUFrQjtBQUMxQkMscUJBQWUsRUFBRUosTUFBTSxTQUFSLEVBQW1CSyxTQUFTLElBQTVCLEVBRFcsRUFBbEIsQ0FBRixDQU5KLEVBRFM7Ozs7QUFZZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1COztBQUV6QixhQUFTQyxnQkFBVCxDQUEwQkMsTUFBMUIsRUFBa0M7QUFDaEMsWUFBTUMsa0JBQWtCLENBQUNDLDBCQUFEO0FBQ3JCLE9BQUNKLFFBQVFLLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBRCxJQUF1QkwsUUFBUUssT0FBUixDQUFnQixDQUFoQixFQUFtQlIsYUFBbkIsS0FBcUMsS0FEdkMsQ0FBeEI7O0FBR0EsWUFBTVMsZUFBZSx1QkFBUUosT0FBT0ssS0FBZixFQUFzQlAsT0FBdEIsQ0FBckI7O0FBRUEsVUFBSU0saUJBQWlCRSxTQUFyQixFQUFnQztBQUM5QlIsZ0JBQVFTLE1BQVIsQ0FBZVAsTUFBZjtBQUNHLDZDQUFvQ0EsT0FBT0ssS0FBTSxJQURwRDtBQUVELE9BSEQ7O0FBS0ssVUFBSUosZUFBSixFQUFxQjtBQUN4QixjQUFNTyxnQkFBZ0JDLHNCQUFZQyxXQUFaLENBQXdCWixRQUFRYSxRQUFoQyxDQUF0QjtBQUNBLFlBQUksQ0FBQyxxQ0FBdUJQLFlBQXZCLEVBQXFDSSxhQUFyQyxDQUFMLEVBQTBEO0FBQ3hEVixrQkFBUVMsTUFBUixDQUFlUCxNQUFmO0FBQ0csdUJBQVlBLE9BQU9LLEtBQU0sNENBRDVCO0FBRUQ7O0FBRUY7QUFDRjs7QUFFRCxXQUFPLDZCQUFjTixnQkFBZCxFQUFnQ0QsUUFBUUssT0FBUixDQUFnQixDQUFoQixDQUFoQyxDQUFQOztBQUVELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLXVucmVzb2x2ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IGFuIGltcG9ydGVkIHBhdGggZXhpc3RzLCBnaXZlbiByZXNvbHV0aW9uIHJ1bGVzLlxuICogQGF1dGhvciBCZW4gTW9zaGVyXG4gKi9cblxuaW1wb3J0IHJlc29sdmUsIHsgQ0FTRV9TRU5TSVRJVkVfRlMsIGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgTW9kdWxlQ2FjaGUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9Nb2R1bGVDYWNoZSdcbmltcG9ydCBtb2R1bGVWaXNpdG9yLCB7IG1ha2VPcHRpb25zU2NoZW1hIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby11bnJlc29sdmVkJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogWyBtYWtlT3B0aW9uc1NjaGVtYSh7XG4gICAgICBjYXNlU2Vuc2l0aXZlOiB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIH0pXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZSkge1xuICAgICAgY29uc3Qgc2hvdWxkQ2hlY2tDYXNlID0gIUNBU0VfU0VOU0lUSVZFX0ZTICYmXG4gICAgICAgICghY29udGV4dC5vcHRpb25zWzBdIHx8IGNvbnRleHQub3B0aW9uc1swXS5jYXNlU2Vuc2l0aXZlICE9PSBmYWxzZSlcblxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShzb3VyY2UudmFsdWUsIGNvbnRleHQpXG5cbiAgICAgIGlmIChyZXNvbHZlZFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsXG4gICAgICAgICAgYFVuYWJsZSB0byByZXNvbHZlIHBhdGggdG8gbW9kdWxlICcke3NvdXJjZS52YWx1ZX0nLmApXG4gICAgICB9XG5cbiAgICAgIGVsc2UgaWYgKHNob3VsZENoZWNrQ2FzZSkge1xuICAgICAgICBjb25zdCBjYWNoZVNldHRpbmdzID0gTW9kdWxlQ2FjaGUuZ2V0U2V0dGluZ3MoY29udGV4dC5zZXR0aW5ncylcbiAgICAgICAgaWYgKCFmaWxlRXhpc3RzV2l0aENhc2VTeW5jKHJlc29sdmVkUGF0aCwgY2FjaGVTZXR0aW5ncykpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsXG4gICAgICAgICAgICBgQ2FzaW5nIG9mICR7c291cmNlLnZhbHVlfSBkb2VzIG5vdCBtYXRjaCB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtLmApXG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIGNvbnRleHQub3B0aW9uc1swXSlcblxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js
index 08ed26e..d75c7ef 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js
@@ -1,58 +1,31 @@
 'use strict';
 
-var _ExportMap = require('../ExportMap');
 
-var _ExportMap2 = _interopRequireDefault(_ExportMap);
 
+
+
+var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap);
 var _ignore = require('eslint-module-utils/ignore');
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);
 var _path = require('path');
-
-var _readPkgUp = require('read-pkg-up');
-
-var _readPkgUp2 = _interopRequireDefault(_readPkgUp);
-
-var _object = require('object.values');
-
-var _object2 = _interopRequireDefault(_object);
-
-var _arrayIncludes = require('array-includes');
-
-var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } /**
-                                                                                                                                                                                                 * @fileOverview Ensures that modules contain exports and/or all
-                                                                                                                                                                                                 * modules are consumed within other modules.
-                                                                                                                                                                                                 * @author René Fermann
-                                                                                                                                                                                                 */
-
-// eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
+var _readPkgUp = require('read-pkg-up');var _readPkgUp2 = _interopRequireDefault(_readPkgUp);
+var _object = require('object.values');var _object2 = _interopRequireDefault(_object);
+var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _toConsumableArray(arr) {if (Array.isArray(arr)) {for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];return arr2;} else {return Array.from(arr);}} /**
+                                                                                                                                                                                                                                                                                                                                                                                                   * @fileOverview Ensures that modules contain exports and/or all
+                                                                                                                                                                                                                                                                                                                                                                                                   * modules are consumed within other modules.
+                                                                                                                                                                                                                                                                                                                                                                                                   * @author René Fermann
+                                                                                                                                                                                                                                                                                                                                                                                                   */ // eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3
 // and has been moved to eslint/lib/cli-engine/file-enumerator in version 6
-let listFilesToProcess;
-try {
-  const FileEnumerator = require('eslint/lib/cli-engine/file-enumerator').FileEnumerator;
+let listFilesToProcess;try {const FileEnumerator = require('eslint/lib/cli-engine/file-enumerator').FileEnumerator;
   listFilesToProcess = function (src, extensions) {
     const e = new FileEnumerator({
-      extensions: extensions
-    });
-    return Array.from(e.iterateFiles(src), (_ref) => {
-      let filePath = _ref.filePath,
-          ignored = _ref.ignored;
-      return {
+      extensions: extensions });
+
+    return Array.from(e.iterateFiles(src), (_ref) => {let filePath = _ref.filePath,ignored = _ref.ignored;return {
         ignored,
-        filename: filePath
-      };
-    });
+        filename: filePath };});
+
   };
 } catch (e1) {
   // Prevent passing invalid options (extensions array) to old versions of the function.
@@ -63,8 +36,8 @@
     originalListFilesToProcess = require('eslint/lib/util/glob-utils').listFilesToProcess;
     listFilesToProcess = function (src, extensions) {
       return originalListFilesToProcess(src, {
-        extensions: extensions
-      });
+        extensions: extensions });
+
     };
   } catch (e2) {
     originalListFilesToProcess = require('eslint/lib/util/glob-util').listFilesToProcess;
@@ -72,8 +45,7 @@
     listFilesToProcess = function (src, extensions) {
       const patterns = src.reduce((carry, pattern) => {
         return carry.concat(extensions.map(extension => {
-          return (/\*\*|\*\./.test(pattern) ? pattern : `${pattern}/**/*${extension}`
-          );
+          return (/\*\*|\*\./.test(pattern) ? pattern : `${pattern}/**/*${extension}`);
         }));
       }, src.slice());
 
@@ -91,24 +63,93 @@
 const VARIABLE_DECLARATION = 'VariableDeclaration';
 const FUNCTION_DECLARATION = 'FunctionDeclaration';
 const CLASS_DECLARATION = 'ClassDeclaration';
-const DEFAULT = 'default';
+const INTERFACE_DECLARATION = 'InterfaceDeclaration';
 const TYPE_ALIAS = 'TypeAlias';
+const TS_INTERFACE_DECLARATION = 'TSInterfaceDeclaration';
+const TS_TYPE_ALIAS_DECLARATION = 'TSTypeAliasDeclaration';
+const TS_ENUM_DECLARATION = 'TSEnumDeclaration';
+const DEFAULT = 'default';
 
+function forEachDeclarationIdentifier(declaration, cb) {
+  if (declaration) {
+    if (
+    declaration.type === FUNCTION_DECLARATION ||
+    declaration.type === CLASS_DECLARATION ||
+    declaration.type === INTERFACE_DECLARATION ||
+    declaration.type === TYPE_ALIAS ||
+    declaration.type === TS_INTERFACE_DECLARATION ||
+    declaration.type === TS_TYPE_ALIAS_DECLARATION ||
+    declaration.type === TS_ENUM_DECLARATION)
+    {
+      cb(declaration.id.name);
+    } else if (declaration.type === VARIABLE_DECLARATION) {
+      declaration.declarations.forEach((_ref2) => {let id = _ref2.id;
+        cb(id.name);
+      });
+    }
+  }
+}
+
+/**
+   * List of imports per file.
+   *
+   * Represented by a two-level Map to a Set of identifiers. The upper-level Map
+   * keys are the paths to the modules containing the imports, while the
+   * lower-level Map keys are the paths to the files which are being imported
+   * from. Lastly, the Set of identifiers contains either names being imported
+   * or a special AST node name listed above (e.g ImportDefaultSpecifier).
+   *
+   * For example, if we have a file named foo.js containing:
+   *
+   *   import { o2 } from './bar.js';
+   *
+   * Then we will have a structure that looks like:
+   *
+   *   Map { 'foo.js' => Map { 'bar.js' => Set { 'o2' } } }
+   *
+   * @type {Map<string, Map<string, Set<string>>>}
+   */
 const importList = new Map();
+
+/**
+                               * List of exports per file.
+                               *
+                               * Represented by a two-level Map to an object of metadata. The upper-level Map
+                               * keys are the paths to the modules containing the exports, while the
+                               * lower-level Map keys are the specific identifiers or special AST node names
+                               * being exported. The leaf-level metadata object at the moment only contains a
+                               * `whereUsed` propoerty, which contains a Set of paths to modules that import
+                               * the name.
+                               *
+                               * For example, if we have a file named bar.js containing the following exports:
+                               *
+                               *   const o2 = 'bar';
+                               *   export { o2 };
+                               *
+                               * And a file named foo.js containing the following import:
+                               *
+                               *   import { o2 } from './bar.js';
+                               *
+                               * Then we will have a structure that looks like:
+                               *
+                               *   Map { 'bar.js' => Map { 'o2' => { whereUsed: Set { 'foo.js' } } } }
+                               *
+                               * @type {Map<string, Map<string, object>>}
+                               */
 const exportList = new Map();
+
 const ignoredFiles = new Set();
 const filesOutsideSrc = new Set();
 
 const isNodeModule = path => {
-  return (/\/(node_modules)\//.test(path)
-  );
+  return (/\/(node_modules)\//.test(path));
 };
 
 /**
- * read all files matching the patterns in src and ignoreExports
- *
- * return all files matching src pattern, which are not matching the ignoreExports pattern
- */
+    * read all files matching the patterns in src and ignoreExports
+    *
+    * return all files matching src pattern, which are not matching the ignoreExports pattern
+    */
 const resolveFiles = (src, ignoreExports, context) => {
   const extensions = Array.from((0, _ignore.getFileExtensions)(context.settings));
 
@@ -117,40 +158,28 @@
 
   // prepare list of ignored files
   const ignoredFilesList = listFilesToProcess(ignoreExports, extensions);
-  ignoredFilesList.forEach((_ref2) => {
-    let filename = _ref2.filename;
-    return ignoredFiles.add(filename);
-  });
+  ignoredFilesList.forEach((_ref3) => {let filename = _ref3.filename;return ignoredFiles.add(filename);});
 
   // prepare list of source files, don't consider files from node_modules
-  srcFileList.filter((_ref3) => {
-    let filename = _ref3.filename;
-    return !isNodeModule(filename);
-  }).forEach((_ref4) => {
-    let filename = _ref4.filename;
-
+  srcFileList.filter((_ref4) => {let filename = _ref4.filename;return !isNodeModule(filename);}).forEach((_ref5) => {let filename = _ref5.filename;
     srcFiles.add(filename);
   });
   return srcFiles;
 };
 
 /**
- * parse all source files and build up 2 maps containing the existing imports and exports
- */
+    * parse all source files and build up 2 maps containing the existing imports and exports
+    */
 const prepareImportsAndExports = (srcFiles, context) => {
   const exportAll = new Map();
   srcFiles.forEach(file => {
     const exports = new Map();
     const imports = new Map();
     const currentExports = _ExportMap2.default.get(file, context);
-    if (currentExports) {
-      const dependencies = currentExports.dependencies,
-            reexports = currentExports.reexports,
-            localImportList = currentExports.imports,
-            namespace = currentExports.namespace;
+    if (currentExports) {const
+      dependencies = currentExports.dependencies,reexports = currentExports.reexports,localImportList = currentExports.imports,namespace = currentExports.namespace;
 
       // dependencies === export * from
-
       const currentExportAll = new Set();
       dependencies.forEach(getDependency => {
         const dependency = getDependency();
@@ -191,7 +220,13 @@
         if (isNodeModule(key)) {
           return;
         }
-        imports.set(key, value.importedSpecifiers);
+        let localImport = imports.get(key);
+        if (typeof localImport !== 'undefined') {
+          localImport = new Set([].concat(_toConsumableArray(localImport), _toConsumableArray(value.importedSpecifiers)));
+        } else {
+          localImport = value.importedSpecifiers;
+        }
+        imports.set(key, localImport);
       });
       importList.set(file, imports);
 
@@ -221,9 +256,9 @@
 };
 
 /**
- * traverse through all imports and add the respective path to the whereUsed-list
- * of the corresponding export
- */
+    * traverse through all imports and add the respective path to the whereUsed-list
+    * of the corresponding export
+    */
 const determineUsage = () => {
   importList.forEach((listValue, listKey) => {
     listValue.forEach((value, key) => {
@@ -240,9 +275,8 @@
           }
           if (typeof specifier !== 'undefined') {
             const exportStatement = exports.get(specifier);
-            if (typeof exportStatement !== 'undefined') {
-              const whereUsed = exportStatement.whereUsed;
-
+            if (typeof exportStatement !== 'undefined') {const
+              whereUsed = exportStatement.whereUsed;
               whereUsed.add(listKey);
               exports.set(specifier, { whereUsed });
             }
@@ -261,17 +295,17 @@
 };
 
 /**
- * prepare the lists of existing imports and exports - should only be executed once at
- * the start of a new eslint run
- */
+    * prepare the lists of existing imports and exports - should only be executed once at
+    * the start of a new eslint run
+    */
 let srcFiles;
 let lastPrepareKey;
 const doPreparation = (src, ignoreExports, context) => {
   const prepareKey = JSON.stringify({
     src: (src || []).sort(),
     ignoreExports: (ignoreExports || []).sort(),
-    extensions: Array.from((0, _ignore.getFileExtensions)(context.settings)).sort()
-  });
+    extensions: Array.from((0, _ignore.getFileExtensions)(context.settings)).sort() });
+
   if (prepareKey === lastPrepareKey) {
     return;
   }
@@ -287,22 +321,14 @@
   lastPrepareKey = prepareKey;
 };
 
-const newNamespaceImportExists = specifiers => specifiers.some((_ref5) => {
-  let type = _ref5.type;
-  return type === IMPORT_NAMESPACE_SPECIFIER;
-});
+const newNamespaceImportExists = specifiers =>
+specifiers.some((_ref6) => {let type = _ref6.type;return type === IMPORT_NAMESPACE_SPECIFIER;});
 
-const newDefaultImportExists = specifiers => specifiers.some((_ref6) => {
-  let type = _ref6.type;
-  return type === IMPORT_DEFAULT_SPECIFIER;
-});
+const newDefaultImportExists = specifiers =>
+specifiers.some((_ref7) => {let type = _ref7.type;return type === IMPORT_DEFAULT_SPECIFIER;});
 
-const fileIsInPkg = file => {
-  var _readPkgUp$sync = _readPkgUp2.default.sync({ cwd: file, normalize: false });
-
-  const path = _readPkgUp$sync.path,
-        pkg = _readPkgUp$sync.pkg;
-
+const fileIsInPkg = file => {var _readPkgUp$sync =
+  _readPkgUp2.default.sync({ cwd: file, normalize: false });const path = _readPkgUp$sync.path,pkg = _readPkgUp$sync.pkg;
   const basePath = (0, _path.dirname)(path);
 
   const checkPkgFieldString = pkgField => {
@@ -365,71 +391,70 @@
           minItems: 1,
           items: {
             type: 'string',
-            minLength: 1
-          }
-        },
+            minLength: 1 } },
+
+
         ignoreExports: {
-          description: 'files/paths for which unused exports will not be reported (e.g module entry points)',
+          description:
+          'files/paths for which unused exports will not be reported (e.g module entry points)',
           type: 'array',
           minItems: 1,
           items: {
             type: 'string',
-            minLength: 1
-          }
-        },
+            minLength: 1 } },
+
+
         missingExports: {
           description: 'report modules without any exports',
-          type: 'boolean'
-        },
+          type: 'boolean' },
+
         unusedExports: {
           description: 'report exports without any usage',
-          type: 'boolean'
-        }
-      },
+          type: 'boolean' } },
+
+
       not: {
         properties: {
           unusedExports: { enum: [false] },
-          missingExports: { enum: [false] }
-        }
-      },
+          missingExports: { enum: [false] } } },
+
+
       anyOf: [{
         not: {
           properties: {
-            unusedExports: { enum: [true] }
-          }
-        },
-        required: ['missingExports']
-      }, {
+            unusedExports: { enum: [true] } } },
+
+
+        required: ['missingExports'] },
+      {
         not: {
           properties: {
-            missingExports: { enum: [true] }
-          }
-        },
-        required: ['unusedExports']
-      }, {
+            missingExports: { enum: [true] } } },
+
+
+        required: ['unusedExports'] },
+      {
         properties: {
-          unusedExports: { enum: [true] }
-        },
-        required: ['unusedExports']
-      }, {
+          unusedExports: { enum: [true] } },
+
+        required: ['unusedExports'] },
+      {
         properties: {
-          missingExports: { enum: [true] }
-        },
-        required: ['missingExports']
-      }]
-    }]
-  },
+          missingExports: { enum: [true] } },
 
-  create: context => {
-    var _ref7 = context.options[0] || {};
+        required: ['missingExports'] }] }] },
 
-    const src = _ref7.src;
-    var _ref7$ignoreExports = _ref7.ignoreExports;
-    const ignoreExports = _ref7$ignoreExports === undefined ? [] : _ref7$ignoreExports,
-          missingExports = _ref7.missingExports,
-          unusedExports = _ref7.unusedExports;
 
 
+
+  create: context => {var _ref8 =
+
+
+
+
+
+    context.options[0] || {};const src = _ref8.src;var _ref8$ignoreExports = _ref8.ignoreExports;const ignoreExports = _ref8$ignoreExports === undefined ? [] : _ref8$ignoreExports,missingExports = _ref8.missingExports,unusedExports = _ref8.unusedExports;
+
     if (unusedExports) {
       doPreparation(src, ignoreExports, context);
     }
@@ -504,24 +529,33 @@
         }
       }
 
-      const exportStatement = exports.get(exportedValue);
+      // exportsList will always map any imported value of 'default' to 'ImportDefaultSpecifier'
+      const exportsKey = exportedValue === DEFAULT ? IMPORT_DEFAULT_SPECIFIER : exportedValue;
 
-      const value = exportedValue === IMPORT_DEFAULT_SPECIFIER ? DEFAULT : exportedValue;
+      const exportStatement = exports.get(exportsKey);
+
+      const value = exportsKey === IMPORT_DEFAULT_SPECIFIER ? DEFAULT : exportsKey;
 
       if (typeof exportStatement !== 'undefined') {
         if (exportStatement.whereUsed.size < 1) {
-          context.report(node, `exported declaration '${value}' not used within other modules`);
+          context.report(
+          node,
+          `exported declaration '${value}' not used within other modules`);
+
         }
       } else {
-        context.report(node, `exported declaration '${value}' not used within other modules`);
+        context.report(
+        node,
+        `exported declaration '${value}' not used within other modules`);
+
       }
     };
 
     /**
-     * only useful for tools like vscode-eslint
-     *
-     * update lists of existing exports during runtime
-     */
+        * only useful for tools like vscode-eslint
+        *
+        * update lists of existing exports during runtime
+        */
     const updateExportUsage = node => {
       if (ignoredFiles.has(file)) {
         return;
@@ -538,11 +572,7 @@
       const newExports = new Map();
       const newExportIdentifiers = new Set();
 
-      node.body.forEach((_ref8) => {
-        let type = _ref8.type,
-            declaration = _ref8.declaration,
-            specifiers = _ref8.specifiers;
-
+      node.body.forEach((_ref9) => {let type = _ref9.type,declaration = _ref9.declaration,specifiers = _ref9.specifiers;
         if (type === EXPORT_DEFAULT_DECLARATION) {
           newExportIdentifiers.add(IMPORT_DEFAULT_SPECIFIER);
         }
@@ -554,18 +584,9 @@
               }
             });
           }
-          if (declaration) {
-            if (declaration.type === FUNCTION_DECLARATION || declaration.type === CLASS_DECLARATION || declaration.type === TYPE_ALIAS) {
-              newExportIdentifiers.add(declaration.id.name);
-            }
-            if (declaration.type === VARIABLE_DECLARATION) {
-              declaration.declarations.forEach((_ref9) => {
-                let id = _ref9.id;
-
-                newExportIdentifiers.add(id.name);
-              });
-            }
-          }
+          forEachDeclarationIdentifier(declaration, name => {
+            newExportIdentifiers.add(name);
+          });
         }
       });
 
@@ -597,10 +618,10 @@
     };
 
     /**
-     * only useful for tools like vscode-eslint
-     *
-     * update lists of existing imports during runtime
-     */
+        * only useful for tools like vscode-eslint
+        *
+        * update lists of existing imports during runtime
+        */
     const updateImportUsage = node => {
       if (!unusedExports) {
         return;
@@ -633,7 +654,8 @@
           oldDefaultImports.add(key);
         }
         value.forEach(val => {
-          if (val !== IMPORT_NAMESPACE_SPECIFIER && val !== IMPORT_DEFAULT_SPECIFIER) {
+          if (val !== IMPORT_NAMESPACE_SPECIFIER &&
+          val !== IMPORT_DEFAULT_SPECIFIER) {
             oldImports.set(val, key);
           }
         });
@@ -647,13 +669,12 @@
           if (astNode.source) {
             resolvedPath = (0, _resolve2.default)(astNode.source.raw.replace(/('|")/g, ''), context);
             astNode.specifiers.forEach(specifier => {
-              let name;
-              if (specifier.exported.name === DEFAULT) {
-                name = IMPORT_DEFAULT_SPECIFIER;
+              const name = specifier.local.name;
+              if (specifier.local.name === DEFAULT) {
+                newDefaultImports.add(resolvedPath);
               } else {
-                name = specifier.local.name;
+                newImports.set(name, resolvedPath);
               }
-              newImports.set(name, resolvedPath);
             });
           }
         }
@@ -682,7 +703,8 @@
           }
 
           astNode.specifiers.forEach(specifier => {
-            if (specifier.type === IMPORT_DEFAULT_SPECIFIER || specifier.type === IMPORT_NAMESPACE_SPECIFIER) {
+            if (specifier.type === IMPORT_DEFAULT_SPECIFIER ||
+            specifier.type === IMPORT_NAMESPACE_SPECIFIER) {
               return;
             }
             newImports.set(specifier.imported.name, resolvedPath);
@@ -876,18 +898,10 @@
         node.specifiers.forEach(specifier => {
           checkUsage(node, specifier.exported.name);
         });
-        if (node.declaration) {
-          if (node.declaration.type === FUNCTION_DECLARATION || node.declaration.type === CLASS_DECLARATION || node.declaration.type === TYPE_ALIAS) {
-            checkUsage(node, node.declaration.id.name);
-          }
-          if (node.declaration.type === VARIABLE_DECLARATION) {
-            node.declaration.declarations.forEach(declaration => {
-              checkUsage(node, declaration.id.name);
-            });
-          }
-        }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnVzZWQtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJsaXN0RmlsZXNUb1Byb2Nlc3MiLCJGaWxlRW51bWVyYXRvciIsInJlcXVpcmUiLCJzcmMiLCJleHRlbnNpb25zIiwiZSIsIkFycmF5IiwiZnJvbSIsIml0ZXJhdGVGaWxlcyIsImZpbGVQYXRoIiwiaWdub3JlZCIsImZpbGVuYW1lIiwiZTEiLCJvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyIsImUyIiwicGF0dGVybnMiLCJyZWR1Y2UiLCJjYXJyeSIsInBhdHRlcm4iLCJjb25jYXQiLCJtYXAiLCJleHRlbnNpb24iLCJ0ZXN0Iiwic2xpY2UiLCJFWFBPUlRfREVGQVVMVF9ERUNMQVJBVElPTiIsIkVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiIsIkVYUE9SVF9BTExfREVDTEFSQVRJT04iLCJJTVBPUlRfREVDTEFSQVRJT04iLCJJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiIsIklNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OIiwiRlVOQ1RJT05fREVDTEFSQVRJT04iLCJDTEFTU19ERUNMQVJBVElPTiIsIkRFRkFVTFQiLCJUWVBFX0FMSUFTIiwiaW1wb3J0TGlzdCIsIk1hcCIsImV4cG9ydExpc3QiLCJpZ25vcmVkRmlsZXMiLCJTZXQiLCJmaWxlc091dHNpZGVTcmMiLCJpc05vZGVNb2R1bGUiLCJwYXRoIiwicmVzb2x2ZUZpbGVzIiwiaWdub3JlRXhwb3J0cyIsImNvbnRleHQiLCJzZXR0aW5ncyIsInNyY0ZpbGVzIiwic3JjRmlsZUxpc3QiLCJpZ25vcmVkRmlsZXNMaXN0IiwiZm9yRWFjaCIsImFkZCIsImZpbHRlciIsInByZXBhcmVJbXBvcnRzQW5kRXhwb3J0cyIsImV4cG9ydEFsbCIsImZpbGUiLCJleHBvcnRzIiwiaW1wb3J0cyIsImN1cnJlbnRFeHBvcnRzIiwiRXhwb3J0cyIsImdldCIsImRlcGVuZGVuY2llcyIsInJlZXhwb3J0cyIsImxvY2FsSW1wb3J0TGlzdCIsIm5hbWVzcGFjZSIsImN1cnJlbnRFeHBvcnRBbGwiLCJnZXREZXBlbmRlbmN5IiwiZGVwZW5kZW5jeSIsInNldCIsInZhbHVlIiwia2V5Iiwid2hlcmVVc2VkIiwicmVleHBvcnQiLCJnZXRJbXBvcnQiLCJsb2NhbEltcG9ydCIsImN1cnJlbnRWYWx1ZSIsImxvY2FsIiwiaW1wb3J0ZWRTcGVjaWZpZXJzIiwiaGFzIiwidmFsIiwiY3VycmVudEV4cG9ydCIsImRldGVybWluZVVzYWdlIiwibGlzdFZhbHVlIiwibGlzdEtleSIsImN1cnJlbnRJbXBvcnQiLCJzcGVjaWZpZXIiLCJleHBvcnRTdGF0ZW1lbnQiLCJnZXRTcmMiLCJwcm9jZXNzIiwiY3dkIiwibGFzdFByZXBhcmVLZXkiLCJkb1ByZXBhcmF0aW9uIiwicHJlcGFyZUtleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzb3J0IiwiY2xlYXIiLCJuZXdOYW1lc3BhY2VJbXBvcnRFeGlzdHMiLCJzcGVjaWZpZXJzIiwic29tZSIsInR5cGUiLCJuZXdEZWZhdWx0SW1wb3J0RXhpc3RzIiwiZmlsZUlzSW5Qa2ciLCJyZWFkUGtnVXAiLCJzeW5jIiwibm9ybWFsaXplIiwicGtnIiwiYmFzZVBhdGgiLCJjaGVja1BrZ0ZpZWxkU3RyaW5nIiwicGtnRmllbGQiLCJjaGVja1BrZ0ZpZWxkT2JqZWN0IiwicGtnRmllbGRGaWxlcyIsImNoZWNrUGtnRmllbGQiLCJwcml2YXRlIiwiYmluIiwiYnJvd3NlciIsIm1haW4iLCJtb2R1bGUiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJkZXNjcmlwdGlvbiIsIm1pbkl0ZW1zIiwiaXRlbXMiLCJtaW5MZW5ndGgiLCJtaXNzaW5nRXhwb3J0cyIsInVudXNlZEV4cG9ydHMiLCJub3QiLCJlbnVtIiwiYW55T2YiLCJyZXF1aXJlZCIsImNyZWF0ZSIsIm9wdGlvbnMiLCJnZXRGaWxlbmFtZSIsImNoZWNrRXhwb3J0UHJlc2VuY2UiLCJub2RlIiwiZXhwb3J0Q291bnQiLCJuYW1lc3BhY2VJbXBvcnRzIiwiZGVsZXRlIiwic2l6ZSIsInJlcG9ydCIsImJvZHkiLCJjaGVja1VzYWdlIiwiZXhwb3J0ZWRWYWx1ZSIsInVwZGF0ZUV4cG9ydFVzYWdlIiwibmV3RXhwb3J0cyIsIm5ld0V4cG9ydElkZW50aWZpZXJzIiwiZGVjbGFyYXRpb24iLCJsZW5ndGgiLCJleHBvcnRlZCIsIm5hbWUiLCJpZCIsImRlY2xhcmF0aW9ucyIsInVwZGF0ZUltcG9ydFVzYWdlIiwib2xkSW1wb3J0UGF0aHMiLCJvbGROYW1lc3BhY2VJbXBvcnRzIiwibmV3TmFtZXNwYWNlSW1wb3J0cyIsIm9sZEV4cG9ydEFsbCIsIm5ld0V4cG9ydEFsbCIsIm9sZERlZmF1bHRJbXBvcnRzIiwibmV3RGVmYXVsdEltcG9ydHMiLCJvbGRJbXBvcnRzIiwibmV3SW1wb3J0cyIsImFzdE5vZGUiLCJyZXNvbHZlZFBhdGgiLCJzb3VyY2UiLCJyYXciLCJyZXBsYWNlIiwiaW1wb3J0ZWQiXSwibWFwcGluZ3MiOiI7O0FBTUE7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Z01BYkE7Ozs7OztBQWVBO0FBQ0E7QUFDQSxJQUFJQSxrQkFBSjtBQUNBLElBQUk7QUFDRixRQUFNQyxpQkFBaUJDLFFBQVEsdUNBQVIsRUFBaURELGNBQXhFO0FBQ0FELHVCQUFxQixVQUFVRyxHQUFWLEVBQWVDLFVBQWYsRUFBMkI7QUFDOUMsVUFBTUMsSUFBSSxJQUFJSixjQUFKLENBQW1CO0FBQzNCRyxrQkFBWUE7QUFEZSxLQUFuQixDQUFWO0FBR0EsV0FBT0UsTUFBTUMsSUFBTixDQUFXRixFQUFFRyxZQUFGLENBQWVMLEdBQWYsQ0FBWCxFQUFnQztBQUFBLFVBQUdNLFFBQUgsUUFBR0EsUUFBSDtBQUFBLFVBQWFDLE9BQWIsUUFBYUEsT0FBYjtBQUFBLGFBQTRCO0FBQ2pFQSxlQURpRTtBQUVqRUMsa0JBQVVGO0FBRnVELE9BQTVCO0FBQUEsS0FB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QW9EO0FBQ2xEMkcsaUJBQUtZLFdBQUwsQ0FBaUJLLFlBQWpCLENBQThCeEcsT0FBOUIsQ0FBc0NtRyxlQUFlO0FBQ25ETCx5QkFBV1AsSUFBWCxFQUFpQlksWUFBWUksRUFBWixDQUFlRCxJQUFoQztBQUNELGFBRkQ7QUFHRDtBQUNGO0FBQ0Y7QUEzQkksS0FBUDtBQTZCRDtBQWhpQmMsQ0FBakIiLCJmaWxlIjoibm8tdW51c2VkLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IG1vZHVsZXMgY29udGFpbiBleHBvcnRzIGFuZC9vciBhbGxcbiAqIG1vZHVsZXMgYXJlIGNvbnN1bWVkIHdpdGhpbiBvdGhlciBtb2R1bGVzLlxuICogQGF1dGhvciBSZW7DqSBGZXJtYW5uXG4gKi9cblxuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vRXhwb3J0TWFwJ1xuaW1wb3J0IHsgZ2V0RmlsZUV4dGVuc2lvbnMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2lnbm9yZSdcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAncGF0aCdcbmltcG9ydCByZWFkUGtnVXAgZnJvbSAncmVhZC1wa2ctdXAnXG5pbXBvcnQgdmFsdWVzIGZyb20gJ29iamVjdC52YWx1ZXMnXG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnXG5cbi8vIGVzbGludC9saWIvdXRpbC9nbG9iLXV0aWwgaGFzIGJlZW4gbW92ZWQgdG8gZXNsaW50L2xpYi91dGlsL2dsb2ItdXRpbHMgd2l0aCB2ZXJzaW9uIDUuM1xuLy8gYW5kIGhhcyBiZWVuIG1vdmVkIHRvIGVzbGludC9saWIvY2xpLWVuZ2luZS9maWxlLWVudW1lcmF0b3IgaW4gdmVyc2lvbiA2XG5sZXQgbGlzdEZpbGVzVG9Qcm9jZXNzXG50cnkge1xuICBjb25zdCBGaWxlRW51bWVyYXRvciA9IHJlcXVpcmUoJ2VzbGludC9saWIvY2xpLWVuZ2luZS9maWxlLWVudW1lcmF0b3InKS5GaWxlRW51bWVyYXRvclxuICBsaXN0RmlsZXNUb1Byb2Nlc3MgPSBmdW5jdGlvbiAoc3JjLCBleHRlbnNpb25zKSB7XG4gICAgY29uc3QgZSA9IG5ldyBGaWxlRW51bWVyYXRvcih7XG4gICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zLFxuICAgIH0pXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZS5pdGVyYXRlRmlsZXMoc3JjKSwgKHsgZmlsZVBhdGgsIGlnbm9yZWQgfSkgPT4gKHtcbiAgICAgIGlnbm9yZWQsXG4gICAgICBmaWxlbmFtZTogZmlsZVBhdGgsXG4gICAgfSkpXG4gIH1cbn0gY2F0Y2ggKGUxKSB7XG4gIC8vIFByZXZlbnQgcGFzc2luZyBpbnZhbGlkIG9wdGlvbnMgKGV4dGVuc2lvbnMgYXJyYXkpIHRvIG9sZCB2ZXJzaW9ucyBvZiB0aGUgZnVuY3Rpb24uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50L2Jsb2IvdjUuMTYuMC9saWIvdXRpbC9nbG9iLXV0aWxzLmpzI0wxNzgtTDI4MFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9ibG9iL3Y1LjIuMC9saWIvdXRpbC9nbG9iLXV0aWwuanMjTDE3NC1MMjY5XG4gIGxldCBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2Vzc1xuICB0cnkge1xuICAgIG9yaWdpbmFsTGlzdEZpbGVzVG9Qcm9jZXNzID0gcmVxdWlyZSgnZXNsaW50L2xpYi91dGlsL2dsb2ItdXRpbHMnKS5saXN0RmlsZXNUb1Byb2Nlc3NcbiAgICBsaXN0RmlsZXNUb1Byb2Nlc3MgPSBmdW5jdGlvbiAoc3JjLCBleHRlbnNpb25zKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3Moc3JjLCB7XG4gICAgICAgIGV4dGVuc2lvbnM6IGV4dGVuc2lvbnMsXG4gICAgICB9KVxuICAgIH1cbiAgfSBjYXRjaCAoZTIpIHtcbiAgICBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyA9IHJlcXVpcmUoJ2VzbGludC9saWIvdXRpbC9nbG9iLXV0aWwnKS5saXN0RmlsZXNUb1Byb2Nlc3NcblxuICAgIGxpc3RGaWxlc1RvUHJvY2VzcyA9IGZ1bmN0aW9uIChzcmMsIGV4dGVuc2lvbnMpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm5zID0gc3JjLnJlZHVjZSgoY2FycnksIHBhdHRlcm4pID0+IHtcbiAgICAgICAgcmV0dXJuIGNhcnJ5LmNvbmNhdChleHRlbnNpb25zLm1hcCgoZXh0ZW5zaW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIC9cXCpcXCp8XFwqXFwuLy50ZXN0KHBhdHRlcm4pID8gcGF0dGVybiA6IGAke3BhdHRlcm59LyoqLyoke2V4dGVuc2lvbn1gXG4gICAgICAgIH0pKVxuICAgICAgfSwgc3JjLnNsaWNlKCkpXG5cbiAgICAgIHJldHVybiBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyhwYXR0ZXJucylcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgRVhQT1JUX0RFRkFVTFRfREVDTEFSQVRJT04gPSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJ1xuY29uc3QgRVhQT1JUX05BTUVEX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nXG5jb25zdCBFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJ1xuY29uc3QgSU1QT1JUX0RFQ0xBUkFUSU9OID0gJ0ltcG9ydERlY2xhcmF0aW9uJ1xuY29uc3QgSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIgPSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJ1xuY29uc3QgSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSID0gJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInXG5jb25zdCBWQVJJQUJMRV9ERUNMQVJBVElPTiA9ICdWYXJpYWJsZURlY2xhcmF0aW9uJ1xuY29uc3QgRlVOQ1RJT05fREVDTEFSQVRJT04gPSAnRnVuY3Rpb25EZWNsYXJhdGlvbidcbmNvbnN0IENMQVNTX0RFQ0xBUkFUSU9OID0gJ0NsYXNzRGVjbGFyYXRpb24nXG5jb25zdCBERUZBVUxUID0gJ2RlZmF1bHQnXG5jb25zdCBUWVBFX0FMSUFTID0gJ1R5cGVBbGlhcydcblxuY29uc3QgaW1wb3J0TGlzdCA9IG5ldyBNYXAoKVxuY29uc3QgZXhwb3J0TGlzdCA9IG5ldyBNYXAoKVxuY29uc3QgaWdub3JlZEZpbGVzID0gbmV3IFNldCgpXG5jb25zdCBmaWxlc091dHNpZGVTcmMgPSBuZXcgU2V0KClcblxuY29uc3QgaXNOb2RlTW9kdWxlID0gcGF0aCA9PiB7XG4gIHJldHVybiAvXFwvKG5vZGVfbW9kdWxlcylcXC8vLnRlc3QocGF0aClcbn1cblxuLyoqXG4gKiByZWFkIGFsbCBmaWxlcyBtYXRjaGluZyB0aGUgcGF0dGVybnMgaW4gc3JjIGFuZCBpZ25vcmVFeHBvcnRzXG4gKlxuICogcmV0dXJuIGFsbCBmaWxlcyBtYXRjaGluZyBzcmMgcGF0dGVybiwgd2hpY2ggYXJlIG5vdCBtYXRjaGluZyB0aGUgaWdub3JlRXhwb3J0cyBwYXR0ZXJuXG4gKi9cbmNvbnN0IHJlc29sdmVGaWxlcyA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpXG5cbiAgY29uc3Qgc3JjRmlsZXMgPSBuZXcgU2V0KClcbiAgY29uc3Qgc3JjRmlsZUxpc3QgPSBsaXN0RmlsZXNUb1Byb2Nlc3Moc3JjLCBleHRlbnNpb25zKVxuXG4gIC8vIHByZXBhcmUgbGlzdCBvZiBpZ25vcmVkIGZpbGVzXG4gIGNvbnN0IGlnbm9yZWRGaWxlc0xpc3QgPSAgbGlzdEZpbGVzVG9Qcm9jZXNzKGlnbm9yZUV4cG9ydHMsIGV4dGVuc2lvbnMpXG4gIGlnbm9yZWRGaWxlc0xpc3QuZm9yRWFjaCgoeyBmaWxlbmFtZSB9KSA9PiBpZ25vcmVkRmlsZXMuYWRkKGZpbGVuYW1lKSlcblxuICAvLyBwcmVwYXJlIGxpc3Qgb2Ygc291cmNlIGZpbGVzLCBkb24ndCBjb25zaWRlciBmaWxlcyBmcm9tIG5vZGVfbW9kdWxlc1xuICBzcmNGaWxlTGlzdC5maWx0ZXIoKHsgZmlsZW5hbWUgfSkgPT4gIWlzTm9kZU1vZHVsZShmaWxlbmFtZSkpLmZvckVhY2goKHsgZmlsZW5hbWUgfSkgPT4ge1xuICAgIHNyY0ZpbGVzLmFkZChmaWxlbmFtZSlcbiAgfSlcbiAgcmV0dXJuIHNyY0ZpbGVzXG59XG5cbi8qKlxuICogcGFyc2UgYWxsIHNvdXJjZSBmaWxlcyBhbmQgYnVpbGQgdXAgMiBtYXBzIGNvbnRhaW5pbmcgdGhlIGV4aXN0aW5nIGltcG9ydHMgYW5kIGV4cG9ydHNcbiAqL1xuY29uc3QgcHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzID0gKHNyY0ZpbGVzLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IGV4cG9ydEFsbCA9IG5ldyBNYXAoKVxuICBzcmNGaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgIGNvbnN0IGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICBjb25zdCBpbXBvcnRzID0gbmV3IE1hcCgpXG4gICAgY29uc3QgY3VycmVudEV4cG9ydHMgPSBFeHBvcnRzLmdldChmaWxlLCBjb250ZXh0KVxuICAgIGlmIChjdXJyZW50RXhwb3J0cykge1xuICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIHJlZXhwb3J0cywgaW1wb3J0czogbG9jYWxJbXBvcnRMaXN0LCBuYW1lc3BhY2UgIH0gPSBjdXJyZW50RXhwb3J0c1xuXG4gICAgICAvLyBkZXBlbmRlbmNpZXMgPT09IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKGdldERlcGVuZGVuY3kgPT4ge1xuICAgICAgICBjb25zdCBkZXBlbmRlbmN5ID0gZ2V0RGVwZW5kZW5jeSgpXG4gICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RXhwb3J0QWxsLmFkZChkZXBlbmRlbmN5LnBhdGgpXG4gICAgICB9KVxuICAgICAgZXhwb3J0QWxsLnNldChmaWxlLCBjdXJyZW50RXhwb3J0QWxsKVxuXG4gICAgICByZWV4cG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVleHBvcnQgPSAgdmFsdWUuZ2V0SW1wb3J0KClcbiAgICAgICAgaWYgKCFyZWV4cG9ydCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGxldCBsb2NhbEltcG9ydCA9IGltcG9ydHMuZ2V0KHJlZXhwb3J0LnBhdGgpXG4gICAgICAgIGxldCBjdXJyZW50VmFsdWVcbiAgICAgICAgaWYgKHZhbHVlLmxvY2FsID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gdmFsdWUubG9jYWxcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGxvY2FsSW1wb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxvY2FsSW1wb3J0ID0gbmV3IFNldChbLi4ubG9jYWxJbXBvcnQsIGN1cnJlbnRWYWx1ZV0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSBuZXcgU2V0KFtjdXJyZW50VmFsdWVdKVxuICAgICAgICB9XG4gICAgICAgIGltcG9ydHMuc2V0KHJlZXhwb3J0LnBhdGgsIGxvY2FsSW1wb3J0KVxuICAgICAgfSlcblxuICAgICAgbG9jYWxJbXBvcnRMaXN0LmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGlzTm9kZU1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaW1wb3J0cy5zZXQoa2V5LCB2YWx1ZS5pbXBvcnRlZFNwZWNpZmllcnMpXG4gICAgICB9KVxuICAgICAgaW1wb3J0TGlzdC5zZXQoZmlsZSwgaW1wb3J0cylcblxuICAgICAgLy8gYnVpbGQgdXAgZXhwb3J0IGxpc3Qgb25seSwgaWYgZmlsZSBpcyBub3QgaWdub3JlZFxuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBuYW1lc3BhY2UuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGV4cG9ydHMuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfSlcbiAgICBleHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KVxuICAgIGV4cG9ydExpc3Quc2V0KGZpbGUsIGV4cG9ydHMpXG4gIH0pXG4gIGV4cG9ydEFsbC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgdmFsdWUuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgY29uc3QgY3VycmVudEV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWwpXG4gICAgICBjb25zdCBjdXJyZW50RXhwb3J0ID0gY3VycmVudEV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoa2V5KVxuICAgIH0pXG4gIH0pXG59XG5cbi8qKlxuICogdHJhdmVyc2UgdGhyb3VnaCBhbGwgaW1wb3J0cyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHBhdGggdG8gdGhlIHdoZXJlVXNlZC1saXN0XG4gKiBvZiB0aGUgY29ycmVzcG9uZGluZyBleHBvcnRcbiAqL1xuY29uc3QgZGV0ZXJtaW5lVXNhZ2UgPSAoKSA9PiB7XG4gIGltcG9ydExpc3QuZm9yRWFjaCgobGlzdFZhbHVlLCBsaXN0S2V5KSA9PiB7XG4gICAgbGlzdFZhbHVlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldChrZXkpXG4gICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goY3VycmVudEltcG9ydCA9PiB7XG4gICAgICAgICAgbGV0IHNwZWNpZmllclxuICAgICAgICAgIGlmIChjdXJyZW50SW1wb3J0ID09PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikge1xuICAgICAgICAgICAgc3BlY2lmaWVyID0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVJcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQgPT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUikge1xuICAgICAgICAgICAgc3BlY2lmaWVyID0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IGN1cnJlbnRJbXBvcnRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBzcGVjaWZpZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBleHBvcnRTdGF0ZW1lbnQgPSBleHBvcnRzLmdldChzcGVjaWZpZXIpXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydFN0YXRlbWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgeyB3aGVyZVVzZWQgfSA9IGV4cG9ydFN0YXRlbWVudFxuICAgICAgICAgICAgICB3aGVyZVVzZWQuYWRkKGxpc3RLZXkpXG4gICAgICAgICAgICAgIGV4cG9ydHMuc2V0KHNwZWNpZmllciwgeyB3aGVyZVVzZWQgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSlcbn1cblxuY29uc3QgZ2V0U3JjID0gc3JjID0+IHtcbiAgaWYgKHNyYykge1xuICAgIHJldHVybiBzcmNcbiAgfVxuICByZXR1cm4gW3Byb2Nlc3MuY3dkKCldXG59XG5cbi8qKlxuICogcHJlcGFyZSB0aGUgbGlzdHMgb2YgZXhpc3RpbmcgaW1wb3J0cyBhbmQgZXhwb3J0cyAtIHNob3VsZCBvbmx5IGJlIGV4ZWN1dGVkIG9uY2UgYXRcbiAqIHRoZSBzdGFydCBvZiBhIG5ldyBlc2xpbnQgcnVuXG4gKi9cbmxldCBzcmNGaWxlc1xubGV0IGxhc3RQcmVwYXJlS2V5XG5jb25zdCBkb1ByZXBhcmF0aW9uID0gKHNyYywgaWdub3JlRXhwb3J0cywgY29udGV4dCkgPT4ge1xuICBjb25zdCBwcmVwYXJlS2V5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIHNyYzogKHNyYyB8fCBbXSkuc29ydCgpLFxuICAgIGlnbm9yZUV4cG9ydHM6IChpZ25vcmVFeHBvcnRzIHx8IFtdKS5zb3J0KCksXG4gICAgZXh0ZW5zaW9uczogQXJyYXkuZnJvbShnZXRGaWxlRXh0ZW5zaW9ucyhjb250ZXh0LnNldHRpbmdzKSkuc29ydCgpLFxuICB9KVxuICBpZiAocHJlcGFyZUtleSA9PT0gbGFzdFByZXBhcmVLZXkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGltcG9ydExpc3QuY2xlYXIoKVxuICBleHBvcnRMaXN0LmNsZWFyKClcbiAgaWdub3JlZEZpbGVzLmNsZWFyKClcbiAgZmlsZXNPdXRzaWRlU3JjLmNsZWFyKClcblxuICBzcmNGaWxlcyA9IHJlc29sdmVGaWxlcyhnZXRTcmMoc3JjKSwgaWdub3JlRXhwb3J0cywgY29udGV4dClcbiAgcHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzKHNyY0ZpbGVzLCBjb250ZXh0KVxuICBkZXRlcm1pbmVVc2FnZSgpXG4gIGxhc3RQcmVwYXJlS2V5ID0gcHJlcGFyZUtleVxufVxuXG5jb25zdCBuZXdOYW1lc3BhY2VJbXBvcnRFeGlzdHMgPSBzcGVjaWZpZXJzID0+XG4gIHNwZWNpZmllcnMuc29tZSgoeyB0eXBlIH0pID0+IHR5cGUgPT09IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuXG5jb25zdCBuZXdEZWZhdWx0SW1wb3J0RXhpc3RzID0gc3BlY2lmaWVycyA9PlxuICBzcGVjaWZpZXJzLnNvbWUoKHsgdHlwZSB9KSA9PiB0eXBlID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpXG5cbmNvbnN0IGZpbGVJc0luUGtnID0gZmlsZSA9PiB7XG4gIGNvbnN0IHsgcGF0aCwgcGtnIH0gPSByZWFkUGtnVXAuc3luYyh7Y3dkOiBmaWxlLCBub3JtYWxpemU6IGZhbHNlfSlcbiAgY29uc3QgYmFzZVBhdGggPSBkaXJuYW1lKHBhdGgpXG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZFN0cmluZyA9IHBrZ0ZpZWxkID0+IHtcbiAgICBpZiAoam9pbihiYXNlUGF0aCwgcGtnRmllbGQpID09PSBmaWxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gIH1cblxuICBjb25zdCBjaGVja1BrZ0ZpZWxkT2JqZWN0ID0gcGtnRmllbGQgPT4ge1xuICAgICAgY29uc3QgcGtnRmllbGRGaWxlcyA9IHZhbHVlcyhwa2dGaWVsZCkubWFwKHZhbHVlID0+IGpvaW4oYmFzZVBhdGgsIHZhbHVlKSlcbiAgICAgIGlmIChpbmNsdWRlcyhwa2dGaWVsZEZpbGVzLCBmaWxlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICB9XG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZCA9IHBrZ0ZpZWxkID0+IHtcbiAgICBpZiAodHlwZW9mIHBrZ0ZpZWxkID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNoZWNrUGtnRmllbGRTdHJpbmcocGtnRmllbGQpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwa2dGaWVsZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBjaGVja1BrZ0ZpZWxkT2JqZWN0KHBrZ0ZpZWxkKVxuICAgIH1cbiAgfVxuXG4gIGlmIChwa2cucHJpdmF0ZSA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKHBrZy5iaW4pIHtcbiAgICBpZiAoY2hlY2tQa2dGaWVsZChwa2cuYmluKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAocGtnLmJyb3dzZXIpIHtcbiAgICBpZiAoY2hlY2tQa2dGaWVsZChwa2cuYnJvd3NlcikpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKHBrZy5tYWluKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGRTdHJpbmcocGtnLm1haW4pKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7IHVybDogZG9jc1VybCgnbm8tdW51c2VkLW1vZHVsZXMnKSB9LFxuICAgIHNjaGVtYTogW3tcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgc3JjOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdmaWxlcy9wYXRocyB0byBiZSBhbmFseXplZCAob25seSBmb3IgdW51c2VkIGV4cG9ydHMpJyxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmVFeHBvcnRzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnZmlsZXMvcGF0aHMgZm9yIHdoaWNoIHVudXNlZCBleHBvcnRzIHdpbGwgbm90IGJlIHJlcG9ydGVkIChlLmcgbW9kdWxlIGVudHJ5IHBvaW50cyknLFxuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1pc3NpbmdFeHBvcnRzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdyZXBvcnQgbW9kdWxlcyB3aXRob3V0IGFueSBleHBvcnRzJyxcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICAgIHVudXNlZEV4cG9ydHM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ3JlcG9ydCBleHBvcnRzIHdpdGhvdXQgYW55IHVzYWdlJyxcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbm90OiB7XG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB1bnVzZWRFeHBvcnRzOiB7IGVudW06IFtmYWxzZV0gfSxcbiAgICAgICAgICBtaXNzaW5nRXhwb3J0czogeyBlbnVtOiBbZmFsc2VdIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYW55T2Y6W3tcbiAgICAgICAgbm90OiB7XG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdW51c2VkRXhwb3J0czogeyBlbnVtOiBbdHJ1ZV0gfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogWydtaXNzaW5nRXhwb3J0cyddLFxuICAgICAgfSwge1xuICAgICAgICBub3Q6IHtcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBtaXNzaW5nRXhwb3J0czogeyBlbnVtOiBbdHJ1ZV0gfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogWyd1bnVzZWRFeHBvcnRzJ10sXG4gICAgICB9LCB7XG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB1bnVzZWRFeHBvcnRzOiB7IGVudW06IFt0cnVlXSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogWyd1bnVzZWRFeHBvcnRzJ10sXG4gICAgICB9LCB7XG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBtaXNzaW5nRXhwb3J0czogeyBlbnVtOiBbdHJ1ZV0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsnbWlzc2luZ0V4cG9ydHMnXSxcbiAgICAgIH1dLFxuICAgIH1dLFxuICB9LFxuXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc3JjLFxuICAgICAgaWdub3JlRXhwb3J0cyA9IFtdLFxuICAgICAgbWlzc2luZ0V4cG9ydHMsXG4gICAgICB1bnVzZWRFeHBvcnRzLFxuICAgIH0gPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cblxuICAgIGlmICh1bnVzZWRFeHBvcnRzKSB7XG4gICAgICBkb1ByZXBhcmF0aW9uKHNyYywgaWdub3JlRXhwb3J0cywgY29udGV4dClcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG5cbiAgICBjb25zdCBjaGVja0V4cG9ydFByZXNlbmNlID0gbm9kZSA9PiB7XG4gICAgICBpZiAoIW1pc3NpbmdFeHBvcnRzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXhwb3J0Q291bnQgPSBleHBvcnRMaXN0LmdldChmaWxlKVxuICAgICAgY29uc3QgZXhwb3J0QWxsID0gZXhwb3J0Q291bnQuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICBjb25zdCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0Q291bnQuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuXG4gICAgICBleHBvcnRDb3VudC5kZWxldGUoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgIGV4cG9ydENvdW50LmRlbGV0ZShJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcbiAgICAgIGlmIChleHBvcnRDb3VudC5zaXplIDwgMSkge1xuICAgICAgICAvLyBub2RlLmJvZHlbMF0gPT09ICd1bmRlZmluZWQnIG9ubHkgaGFwcGVucywgaWYgZXZlcnl0aGluZyBpcyBjb21tZW50ZWQgb3V0IGluIHRoZSBmaWxlXG4gICAgICAgIC8vIGJlaW5nIGxpbnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLmJvZHlbMF0gPyBub2RlLmJvZHlbMF0gOiBub2RlLCAnTm8gZXhwb3J0cyBmb3VuZCcpXG4gICAgICB9XG4gICAgICBleHBvcnRDb3VudC5zZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTiwgZXhwb3J0QWxsKVxuICAgICAgZXhwb3J0Q291bnQuc2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSLCBuYW1lc3BhY2VJbXBvcnRzKVxuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrVXNhZ2UgPSAobm9kZSwgZXhwb3J0ZWRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKCF1bnVzZWRFeHBvcnRzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVJc0luUGtnKGZpbGUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZmlsZXNPdXRzaWRlU3JjLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gbWFrZSBzdXJlIGZpbGUgdG8gYmUgbGludGVkIGlzIGluY2x1ZGVkIGluIHNvdXJjZSBmaWxlc1xuICAgICAgaWYgKCFzcmNGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgc3JjRmlsZXMgPSByZXNvbHZlRmlsZXMoZ2V0U3JjKHNyYyksIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpXG4gICAgICAgIGlmICghc3JjRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgICAgZmlsZXNPdXRzaWRlU3JjLmFkZChmaWxlKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldChmaWxlKVxuXG4gICAgICAvLyBzcGVjaWFsIGNhc2U6IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGV4cG9ydEFsbCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICBpZiAodHlwZW9mIGV4cG9ydEFsbCAhPT0gJ3VuZGVmaW5lZCcgJiYgZXhwb3J0ZWRWYWx1ZSAhPT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKSB7XG4gICAgICAgIGlmIChleHBvcnRBbGwud2hlcmVVc2VkLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gc3BlY2lhbCBjYXNlOiBuYW1lc3BhY2UgaW1wb3J0XG4gICAgICBjb25zdCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZUltcG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2VJbXBvcnRzLndoZXJlVXNlZC5zaXplID4gMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4cG9ydFN0YXRlbWVudCA9IGV4cG9ydHMuZ2V0KGV4cG9ydGVkVmFsdWUpXG5cbiAgICAgIGNvbnN0IHZhbHVlID0gZXhwb3J0ZWRWYWx1ZSA9PT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSID8gREVGQVVMVCA6IGV4cG9ydGVkVmFsdWVcblxuICAgICAgaWYgKHR5cGVvZiBleHBvcnRTdGF0ZW1lbnQgIT09ICd1bmRlZmluZWQnKXtcbiAgICAgICAgaWYgKGV4cG9ydFN0YXRlbWVudC53aGVyZVVzZWQuc2l6ZSA8IDEpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBgZXhwb3J0ZWQgZGVjbGFyYXRpb24gJyR7dmFsdWV9JyBub3QgdXNlZCB3aXRoaW4gb3RoZXIgbW9kdWxlc2BcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgYGV4cG9ydGVkIGRlY2xhcmF0aW9uICcke3ZhbHVlfScgbm90IHVzZWQgd2l0aGluIG90aGVyIG1vZHVsZXNgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBvbmx5IHVzZWZ1bCBmb3IgdG9vbHMgbGlrZSB2c2NvZGUtZXNsaW50XG4gICAgICpcbiAgICAgKiB1cGRhdGUgbGlzdHMgb2YgZXhpc3RpbmcgZXhwb3J0cyBkdXJpbmcgcnVudGltZVxuICAgICAqL1xuICAgIGNvbnN0IHVwZGF0ZUV4cG9ydFVzYWdlID0gbm9kZSA9PiB7XG4gICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldChmaWxlKVxuXG4gICAgICAvLyBuZXcgbW9kdWxlIGhhcyBiZWVuIGNyZWF0ZWQgZHVyaW5nIHJ1bnRpbWVcbiAgICAgIC8vIGluY2x1ZGUgaXQgaW4gZnVydGhlciBwcm9jZXNzaW5nXG4gICAgICBpZiAodHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3RXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgY29uc3QgbmV3RXhwb3J0SWRlbnRpZmllcnMgPSBuZXcgU2V0KClcblxuICAgICAgbm9kZS5ib2R5LmZvckVhY2goKHsgdHlwZSwgZGVjbGFyYXRpb24sIHNwZWNpZmllcnMgfSkgPT4ge1xuICAgICAgICBpZiAodHlwZSA9PT0gRVhQT1JUX0RFRkFVTFRfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSBFWFBPUlRfTkFNRURfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICBpZiAoc3BlY2lmaWVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgICAgICAgaWYgKHNwZWNpZmllci5leHBvcnRlZCkge1xuICAgICAgICAgICAgICAgIG5ld0V4cG9ydElkZW50aWZpZXJzLmFkZChzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IEZVTkNUSU9OX0RFQ0xBUkFUSU9OIHx8XG4gICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IENMQVNTX0RFQ0xBUkFUSU9OIHx8XG4gICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRZUEVfQUxJQVNcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoZGVjbGFyYXRpb24uaWQubmFtZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBWQVJJQUJMRV9ERUNMQVJBVElPTikge1xuICAgICAgICAgICAgICBkZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMuZm9yRWFjaCgoeyBpZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgbmV3RXhwb3J0SWRlbnRpZmllcnMuYWRkKGlkLm5hbWUpXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyBvbGQgZXhwb3J0cyBleGlzdCB3aXRoaW4gbGlzdCBvZiBuZXcgZXhwb3J0cyBpZGVudGlmaWVyczogYWRkIHRvIG1hcCBvZiBuZXcgZXhwb3J0c1xuICAgICAgZXhwb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmIChuZXdFeHBvcnRJZGVudGlmaWVycy5oYXMoa2V5KSkge1xuICAgICAgICAgIG5ld0V4cG9ydHMuc2V0KGtleSwgdmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIG5ldyBleHBvcnQgaWRlbnRpZmllcnMgYWRkZWQ6IGFkZCB0byBtYXAgb2YgbmV3IGV4cG9ydHNcbiAgICAgIG5ld0V4cG9ydElkZW50aWZpZXJzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKCFleHBvcnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgbmV3RXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIHByZXNlcnZlIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzcGFjZSBpbXBvcnRzXG4gICAgICBsZXQgZXhwb3J0QWxsID0gZXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgIGxldCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG5cbiAgICAgIGlmICh0eXBlb2YgbmFtZXNwYWNlSW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbmFtZXNwYWNlSW1wb3J0cyA9IHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfVxuICAgICAgfVxuXG4gICAgICBuZXdFeHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCBleHBvcnRBbGwpXG4gICAgICBuZXdFeHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cylcbiAgICAgIGV4cG9ydExpc3Quc2V0KGZpbGUsIG5ld0V4cG9ydHMpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVJbXBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCF1bnVzZWRFeHBvcnRzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsZXQgb2xkSW1wb3J0UGF0aHMgPSBpbXBvcnRMaXN0LmdldChmaWxlKVxuICAgICAgaWYgKHR5cGVvZiBvbGRJbXBvcnRQYXRocyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb2xkSW1wb3J0UGF0aHMgPSBuZXcgTWFwKClcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkTmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3TmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGNvbnN0IG5ld0V4cG9ydEFsbCA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGREZWZhdWx0SW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3RGVmYXVsdEltcG9ydHMgPSBuZXcgU2V0KClcblxuICAgICAgY29uc3Qgb2xkSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgY29uc3QgbmV3SW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgb2xkSW1wb3J0UGF0aHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUuaGFzKEVYUE9SVF9BTExfREVDTEFSQVRJT04pKSB7XG4gICAgICAgICAgb2xkRXhwb3J0QWxsLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikpIHtcbiAgICAgICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpKSB7XG4gICAgICAgICAgb2xkRGVmYXVsdEltcG9ydHMuYWRkKGtleSlcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgaWYgKHZhbCAhPT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIgJiZcbiAgICAgICAgICAgICAgdmFsICE9PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgIG9sZEltcG9ydHMuc2V0KHZhbCwga2V5KVxuICAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIG5vZGUuYm9keS5mb3JFYWNoKGFzdE5vZGUgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWRQYXRoXG5cbiAgICAgICAgLy8gc3VwcG9ydCBmb3IgZXhwb3J0IHsgdmFsdWUgfSBmcm9tICdtb2R1bGUnXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIGlmIChhc3ROb2RlLnNvdXJjZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICAgIGFzdE5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGxldCBuYW1lXG4gICAgICAgICAgICAgIGlmIChzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA9PT0gREVGQVVMVCkge1xuICAgICAgICAgICAgICAgIG5hbWUgPSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuYW1lID0gc3BlY2lmaWVyLmxvY2FsLm5hbWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBuZXdJbXBvcnRzLnNldChuYW1lLCByZXNvbHZlZFBhdGgpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9BTExfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICByZXNvbHZlZFBhdGggPSByZXNvbHZlKGFzdE5vZGUuc291cmNlLnJhdy5yZXBsYWNlKC8oJ3xcIikvZywgJycpLCBjb250ZXh0KVxuICAgICAgICAgIG5ld0V4cG9ydEFsbC5hZGQocmVzb2x2ZWRQYXRoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFzdE5vZGUudHlwZSA9PT0gSU1QT1JUX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICBpZiAoIXJlc29sdmVkUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzTm9kZU1vZHVsZShyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobmV3TmFtZXNwYWNlSW1wb3J0RXhpc3RzKGFzdE5vZGUuc3BlY2lmaWVycykpIHtcbiAgICAgICAgICAgIG5ld05hbWVzcGFjZUltcG9ydHMuYWRkKHJlc29sdmVkUGF0aClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobmV3RGVmYXVsdEltcG9ydEV4aXN0cyhhc3ROb2RlLnNwZWNpZmllcnMpKSB7XG4gICAgICAgICAgICBuZXdEZWZhdWx0SW1wb3J0cy5hZGQocmVzb2x2ZWRQYXRoKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGFzdE5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiB8fFxuICAgICAgICAgICAgICAgIHNwZWNpZmllci50eXBlID09PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikge1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5ld0ltcG9ydHMuc2V0KHNwZWNpZmllci5pbXBvcnRlZC5uYW1lLCByZXNvbHZlZFBhdGgpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbmV3RXhwb3J0QWxsLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW9sZEV4cG9ydEFsbC5oYXModmFsdWUpKSB7XG4gICAgICAgICAgbGV0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbXBvcnRzLmFkZChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgICAgIG9sZEltcG9ydFBhdGhzLnNldCh2YWx1ZSwgaW1wb3J0cylcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgbGV0IGN1cnJlbnRFeHBvcnRcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKVxuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgICAgZXhwb3J0cy5zZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTiwgeyB3aGVyZVVzZWQgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG9sZEV4cG9ydEFsbC5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFuZXdFeHBvcnRBbGwuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaW1wb3J0cy5kZWxldGUoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcblxuICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuZGVsZXRlKGZpbGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBuZXdEZWZhdWx0SW1wb3J0cy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFvbGREZWZhdWx0SW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgbGV0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbXBvcnRzLmFkZChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpXG4gICAgICAgICAgb2xkSW1wb3J0UGF0aHMuc2V0KHZhbHVlLCBpbXBvcnRzKVxuXG4gICAgICAgICAgbGV0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBsZXQgY3VycmVudEV4cG9ydFxuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB3aGVyZVVzZWQgPSBuZXcgU2V0KClcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICAgIGV4cG9ydHMuc2V0KElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG9sZERlZmF1bHRJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW5ld0RlZmF1bHRJbXBvcnRzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGltcG9ydHMuZGVsZXRlKElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcblxuICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5kZWxldGUoZmlsZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG5ld05hbWVzcGFjZUltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkTmFtZXNwYWNlSW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgbGV0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbXBvcnRzLmFkZChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpXG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICAgICAgICBleHBvcnRMaXN0LnNldCh2YWx1ZSwgZXhwb3J0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2hlcmVVc2VkID0gbmV3IFNldCgpXG4gICAgICAgICAgICB3aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgICBleHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG9sZE5hbWVzcGFjZUltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghbmV3TmFtZXNwYWNlSW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcblxuICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbmV3SW1wb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghb2xkSW1wb3J0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoa2V5KVxuICAgICAgICAgIG9sZEltcG9ydFBhdGhzLnNldCh2YWx1ZSwgaW1wb3J0cylcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgbGV0IGN1cnJlbnRFeHBvcnRcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoa2V5KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICAgICAgICBleHBvcnRMaXN0LnNldCh2YWx1ZSwgZXhwb3J0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2hlcmVVc2VkID0gbmV3IFNldCgpXG4gICAgICAgICAgICB3aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgICBleHBvcnRzLnNldChrZXksIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGRJbXBvcnRzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKCFuZXdJbXBvcnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShrZXkpXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KGtleSlcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuZGVsZXRlKGZpbGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnUHJvZ3JhbTpleGl0Jzogbm9kZSA9PiB7XG4gICAgICAgIHVwZGF0ZUV4cG9ydFVzYWdlKG5vZGUpXG4gICAgICAgIHVwZGF0ZUltcG9ydFVzYWdlKG5vZGUpXG4gICAgICAgIGNoZWNrRXhwb3J0UHJlc2VuY2Uobm9kZSlcbiAgICAgIH0sXG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogbm9kZSA9PiB7XG4gICAgICAgIGNoZWNrVXNhZ2Uobm9kZSwgSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgfSxcbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogbm9kZSA9PiB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICBjaGVja1VzYWdlKG5vZGUsIHNwZWNpZmllci5leHBvcnRlZC5uYW1lKVxuICAgICAgICB9KVxuICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbikge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gRlVOQ1RJT05fREVDTEFSQVRJT04gfHxcbiAgICAgICAgICAgIG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gQ0xBU1NfREVDTEFSQVRJT04gfHxcbiAgICAgICAgICAgIG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gVFlQRV9BTElBU1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09IFZBUklBQkxFX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgICBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKGRlY2xhcmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBkZWNsYXJhdGlvbi5pZC5uYW1lKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+        forEachDeclarationIdentifier(node.declaration, name => {
+          checkUsage(node, name);
+        });
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnVzZWQtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJsaXN0RmlsZXNUb1Byb2Nlc3MiLCJGaWxlRW51bWVyYXRvciIsInJlcXVpcmUiLCJzcmMiLCJleHRlbnNpb25zIiwiZSIsIkFycmF5IiwiZnJvbSIsIml0ZXJhdGVGaWxlcyIsImZpbGVQYXRoIiwiaWdub3JlZCIsImZpbGVuYW1lIiwiZTEiLCJvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyIsImUyIiwicGF0dGVybnMiLCJyZWR1Y2UiLCJjYXJyeSIsInBhdHRlcm4iLCJjb25jYXQiLCJtYXAiLCJleHRlbnNpb24iLCJ0ZXN0Iiwic2xpY2UiLCJFWFBPUlRfREVGQVVMVF9ERUNMQVJBVElPTiIsIkVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiIsIkVYUE9SVF9BTExfREVDTEFSQVRJT04iLCJJTVBPUlRfREVDTEFSQVRJT04iLCJJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiIsIklNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OIiwiRlVOQ1RJT05fREVDTEFSQVRJT04iLCJDTEFTU19ERUNMQVJBVElPTiIsIklOVEVSRkFDRV9ERUNMQVJBVElPTiIsIlRZUEVfQUxJQVMiLCJUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04iLCJUU19UWVBFX0FMSUFTX0RFQ0xBUkFUSU9OIiwiVFNfRU5VTV9ERUNMQVJBVElPTiIsIkRFRkFVTFQiLCJmb3JFYWNoRGVjbGFyYXRpb25JZGVudGlmaWVyIiwiZGVjbGFyYXRpb24iLCJjYiIsInR5cGUiLCJpZCIsIm5hbWUiLCJkZWNsYXJhdGlvbnMiLCJmb3JFYWNoIiwiaW1wb3J0TGlzdCIsIk1hcCIsImV4cG9ydExpc3QiLCJpZ25vcmVkRmlsZXMiLCJTZXQiLCJmaWxlc091dHNpZGVTcmMiLCJpc05vZGVNb2R1bGUiLCJwYXRoIiwicmVzb2x2ZUZpbGVzIiwiaWdub3JlRXhwb3J0cyIsImNvbnRleHQiLCJzZXR0aW5ncyIsInNyY0ZpbGVzIiwic3JjRmlsZUxpc3QiLCJpZ25vcmVkRmlsZXNMaXN0IiwiYWRkIiwiZmlsdGVyIiwicHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzIiwiZXhwb3J0QWxsIiwiZmlsZSIsImV4cG9ydHMiLCJpbXBvcnRzIiwiY3VycmVudEV4cG9ydHMiLCJFeHBvcnRzIiwiZ2V0IiwiZGVwZW5kZW5jaWVzIiwicmVleHBvcnRzIiwibG9jYWxJbXBvcnRMaXN0IiwibmFtZXNwYWNlIiwiY3VycmVudEV4cG9ydEFsbCIsImdldERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5Iiwic2V0IiwidmFsdWUiLCJrZXkiLCJ3aGVyZVVzZWQiLCJyZWV4cG9ydCIsImdldEltcG9ydCIsImxvY2FsSW1wb3J0IiwiY3VycmVudFZhbHVlIiwibG9jYWwiLCJpbXBvcnRlZFNwZWNpZmllcnMiLCJoYXMiLCJ2YWwiLCJjdXJyZW50RXhwb3J0IiwiZGV0ZXJtaW5lVXNhZ2UiLCJsaXN0VmFsdWUiLCJsaXN0S2V5IiwiY3VycmVudEltcG9ydCIsInNwZWNpZmllciIsImV4cG9ydFN0YXRlbWVudCIsImdldFNyYyIsInByb2Nlc3MiLCJjd2QiLCJsYXN0UHJlcGFyZUtleSIsImRvUHJlcGFyYXRpb24iLCJwcmVwYXJlS2V5IiwiSlNPTiIsInN0cmluZ2lmeSIsInNvcnQiLCJjbGVhciIsIm5ld05hbWVzcGFjZUltcG9ydEV4aXN0cyIsInNwZWNpZmllcnMiLCJzb21lIiwibmV3RGVmYXVsdEltcG9ydEV4aXN0cyIsImZpbGVJc0luUGtnIiwicmVhZFBrZ1VwIiwic3luYyIsIm5vcm1hbGl6ZSIsInBrZyIsImJhc2VQYXRoIiwiY2hlY2tQa2dGaWVsZFN0cmluZyIsInBrZ0ZpZWxkIiwiY2hlY2tQa2dGaWVsZE9iamVjdCIsInBrZ0ZpZWxkRmlsZXMiLCJjaGVja1BrZ0ZpZWxkIiwicHJpdmF0ZSIsImJpbiIsImJyb3dzZXIiLCJtYWluIiwibW9kdWxlIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiZGVzY3JpcHRpb24iLCJtaW5JdGVtcyIsIml0ZW1zIiwibWluTGVuZ3RoIiwibWlzc2luZ0V4cG9ydHMiLCJ1bnVzZWRFeHBvcnRzIiwibm90IiwiZW51bSIsImFueU9mIiwicmVxdWlyZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJjaGVja0V4cG9ydFByZXNlbmNlIiwibm9kZSIsImV4cG9ydENvdW50IiwibmFtZXNwYWNlSW1wb3J0cyIsImRlbGV0ZSIsInNpemUiLCJyZXBvcnQiLCJib2R5IiwiY2hlY2tVc2FnZSIsImV4cG9ydGVkVmFsdWUiLCJleHBvcnRzS2V5IiwidXBkYXRlRXhwb3J0VXNhZ2UiLCJuZXdFeHBvcnRzIiwibmV3RXhwb3J0SWRlbnRpZmllcnMiLCJsZW5ndGgiLCJleHBvcnRlZCIsInVwZGF0ZUltcG9ydFVzYWdlIiwib2xkSW1wb3J0UGF0aHMiLCJvbGROYW1lc3BhY2VJbXBvcnRzIiwibmV3TmFtZXNwYWNlSW1wb3J0cyIsIm9sZEV4cG9ydEFsbCIsIm5ld0V4cG9ydEFsbCIsIm9sZERlZmF1bHRJbXBvcnRzIiwibmV3RGVmYXVsdEltcG9ydHMiLCJvbGRJbXBvcnRzIiwibmV3SW1wb3J0cyIsImFzdE5vZGUiLCJyZXNvbHZlZFBhdGgiLCJzb3VyY2UiLCJyYXciLCJyZXBsYWNlIiwiaW1wb3J0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLHlDO0FBQ0E7QUFDQSxzRDtBQUNBLHFDO0FBQ0E7QUFDQSx3QztBQUNBLHVDO0FBQ0EsK0MsbVZBYkE7Ozs7c1lBZUE7QUFDQTtBQUNBLElBQUlBLGtCQUFKLENBQ0EsSUFBSSxDQUNGLE1BQU1DLGlCQUFpQkMsUUFBUSx1Q0FBUixFQUFpREQsY0FBeEU7QUFDQUQsdUJBQXFCLFVBQVVHLEdBQVYsRUFBZUMsVUFBZixFQUEyQjtBQUM5QyxVQUFNQyxJQUFJLElBQUlKLGNBQUosQ0FBbUI7QUFDM0JHLGtCQUFZQSxVQURlLEVBQW5CLENBQVY7O0FBR0EsV0FBT0UsTUFBTUMsSUFBTixDQUFXRixFQUFFRyxZQUFGLENBQWVMLEdBQWYsQ0FBWCxFQUFnQyxlQUFHTSxRQUFILFFBQUdBLFFBQUgsQ0FBYUMsT0FBYixRQUFhQSxPQUFiLFFBQTRCO0FBQ2pFQSxlQURpRTtBQUVqRUMsa0JBQVVGLFFBRnVELEVBQTVCLEVBQWhDLENBQVA7O0FBSUQsR0FSRDtBQVNELENBWEQsQ0FXRSxPQUFPRyxFQUFQLEVBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxNQUFJQywwQkFBSjtBQUNBLE1BQUk7QUFDRkEsaUNBQTZCWCxRQUFRLDRCQUFSLEVBQXNDRixrQkFBbkU7QUFDQUEseUJBQXFCLFVBQVVHLEdBQVYsRUFBZUMsVUFBZixFQUEyQjtBQUM5QyxhQUFPUywyQkFBMkJWLEdBQTNCLEVBQWdDO0FBQ3JDQyxvQkFBWUEsVUFEeUIsRUFBaEMsQ0FBUDs7QUFHRCxLQUpEO0FBS0QsR0FQRCxDQU9FLE9BQU9VLEVBQVAsRUFBVztBQUNYRCxpQ0FBNkJYLFFBQVEsMkJBQVIsRUFBcUNGLGtCQUFsRTs7QUFFQUEseUJBQXFCLFVBQVVHLEdBQVYsRUFBZUMsVUFBZixFQUEyQjtBQUM5QyxZQUFNVyxXQUFXWixJQUFJYSxNQUFKLENBQVcsQ0FBQ0MsS0FBRCxFQUFRQyxPQUFSLEtBQW9CO0FBQzlDLGVBQU9ELE1BQU1FLE1BQU4sQ0FBYWYsV0FBV2dCLEdBQVgsQ0FBZ0JDLFNBQUQsSUFBZTtBQUNoRCxpQkFBTyxhQUFZQyxJQUFaLENBQWlCSixPQUFqQixJQUE0QkEsT0FBNUIsR0FBdUMsR0FBRUEsT0FBUSxRQUFPRyxTQUFVLEVBQXpFO0FBQ0QsU0FGbUIsQ0FBYixDQUFQO0FBR0QsT0FKZ0IsRUFJZGxCLElBQUlvQixLQUFKLEVBSmMsQ0FBakI7O0FBTUEsYUFBT1YsMkJBQTJCRSxRQUEzQixDQUFQO0FBQ0QsS0FSRDtBQVNEO0FBQ0Y7O0FBRUQsTUFBTVMsNkJBQTZCLDBCQUFuQztBQUNBLE1BQU1DLDJCQUEyQix3QkFBakM7QUFDQSxNQUFNQyx5QkFBeUIsc0JBQS9CO0FBQ0EsTUFBTUMscUJBQXFCLG1CQUEzQjtBQUNBLE1BQU1DLDZCQUE2QiwwQkFBbkM7QUFDQSxNQUFNQywyQkFBMkIsd0JBQWpDO0FBQ0EsTUFBTUMsdUJBQXVCLHFCQUE3QjtBQUNBLE1BQU1DLHVCQUF1QixxQkFBN0I7QUFDQSxNQUFNQyxvQkFBb0Isa0JBQTFCO0FBQ0EsTUFBTUMsd0JBQXdCLHNCQUE5QjtBQUNBLE1BQU1DLGFBQWEsV0FBbkI7QUFDQSxNQUFNQywyQkFBMkIsd0JBQWpDO0FBQ0EsTUFBTUMsNEJBQTRCLHdCQUFsQztBQUNBLE1BQU1DLHNCQUFzQixtQkFBNUI7QUFDQSxNQUFNQyxVQUFVLFNBQWhCOztBQUVBLFNBQVNDLDRCQUFULENBQXNDQyxXQUF0QyxFQUFtREMsRUFBbkQsRUFBdUQ7QUFDckQsTUFBSUQsV0FBSixFQUFpQjtBQUNmO0FBQ0VBLGdCQUFZRSxJQUFaLEtBQXFCWCxvQkFBckI7QUFDQVMsZ0JBQVlFLElBQVosS0FBcUJWLGlCQURyQjtBQUVBUSxnQkFBWUUsSUFBWixLQUFxQlQscUJBRnJCO0FBR0FPLGdCQUFZRSxJQUFaLEtBQXFCUixVQUhyQjtBQUlBTSxnQkFBWUUsSUFBWixLQUFxQlAsd0JBSnJCO0FBS0FLLGdCQUFZRSxJQUFaLEtBQXFCTix5QkFMckI7QUFNQUksZ0JBQVlFLElBQVosS0FBcUJMLG1CQVB2QjtBQVFFO0FBQ0FJLFNBQUdELFlBQVlHLEVBQVosQ0FBZUMsSUFBbEI7QUFDRCxLQVZELE1BVU8sSUFBSUosWUFBWUUsSUFBWixLQUFxQlosb0JBQXpCLEVBQStDO0FBQ3BEVSxrQkFBWUssWUFBWixDQUF5QkMsT0FBekIsQ0FBaUMsV0FBWSxLQUFUSCxFQUFTLFNBQVRBLEVBQVM7QUFDM0NGLFdBQUdFLEdBQUdDLElBQU47QUFDRCxPQUZEO0FBR0Q7QUFDRjtBQUNGOztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU1HLGFBQWEsSUFBSUMsR0FBSixFQUFuQjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNQyxhQUFhLElBQUlELEdBQUosRUFBbkI7O0FBRUEsTUFBTUUsZUFBZSxJQUFJQyxHQUFKLEVBQXJCO0FBQ0EsTUFBTUMsa0JBQWtCLElBQUlELEdBQUosRUFBeEI7O0FBRUEsTUFBTUUsZUFBZUMsUUFBUTtBQUMzQixTQUFPLHNCQUFxQmhDLElBQXJCLENBQTBCZ0MsSUFBMUIsQ0FBUDtBQUNELENBRkQ7O0FBSUE7Ozs7O0FBS0EsTUFBTUMsZUFBZSxDQUFDcEQsR0FBRCxFQUFNcUQsYUFBTixFQUFxQkMsT0FBckIsS0FBaUM7QUFDcEQsUUFBTXJELGFBQWFFLE1BQU1DLElBQU4sQ0FBVywrQkFBa0JrRCxRQUFRQyxRQUExQixDQUFYLENBQW5COztBQUVBLFFBQU1DLFdBQVcsSUFBSVIsR0FBSixFQUFqQjtBQUNBLFFBQU1TLGNBQWM1RCxtQkFBbUJHLEdBQW5CLEVBQXdCQyxVQUF4QixDQUFwQjs7QUFFQTtBQUNBLFFBQU15RCxtQkFBb0I3RCxtQkFBbUJ3RCxhQUFuQixFQUFrQ3BELFVBQWxDLENBQTFCO0FBQ0F5RCxtQkFBaUJmLE9BQWpCLENBQXlCLGdCQUFHbkMsUUFBSCxTQUFHQSxRQUFILFFBQWtCdUMsYUFBYVksR0FBYixDQUFpQm5ELFFBQWpCLENBQWxCLEVBQXpCOztBQUVBO0FBQ0FpRCxjQUFZRyxNQUFaLENBQW1CLGdCQUFHcEQsUUFBSCxTQUFHQSxRQUFILFFBQWtCLENBQUMwQyxhQUFhMUMsUUFBYixDQUFuQixFQUFuQixFQUE4RG1DLE9BQTlELENBQXNFLFdBQWtCLEtBQWZuQyxRQUFlLFNBQWZBLFFBQWU7QUFDdEZnRCxhQUFTRyxHQUFULENBQWFuRCxRQUFiO0FBQ0QsR0FGRDtBQUdBLFNBQU9nRCxRQUFQO0FBQ0QsQ0FmRDs7QUFpQkE7OztBQUdBLE1BQU1LLDJCQUEyQixDQUFDTCxRQUFELEVBQVdGLE9BQVgsS0FBdUI7QUFDdEQsUUFBTVEsWUFBWSxJQUFJakIsR0FBSixFQUFsQjtBQUNBVyxXQUFTYixPQUFULENBQWlCb0IsUUFBUTtBQUN2QixVQUFNQyxVQUFVLElBQUluQixHQUFKLEVBQWhCO0FBQ0EsVUFBTW9CLFVBQVUsSUFBSXBCLEdBQUosRUFBaEI7QUFDQSxVQUFNcUIsaUJBQWlCQyxvQkFBUUMsR0FBUixDQUFZTCxJQUFaLEVBQWtCVCxPQUFsQixDQUF2QjtBQUNBLFFBQUlZLGNBQUosRUFBb0I7QUFDVkcsa0JBRFUsR0FDd0RILGNBRHhELENBQ1ZHLFlBRFUsQ0FDSUMsU0FESixHQUN3REosY0FEeEQsQ0FDSUksU0FESixDQUN3QkMsZUFEeEIsR0FDd0RMLGNBRHhELENBQ2VELE9BRGYsQ0FDeUNPLFNBRHpDLEdBQ3dETixjQUR4RCxDQUN5Q00sU0FEekM7O0FBR2xCO0FBQ0EsWUFBTUMsbUJBQW1CLElBQUl6QixHQUFKLEVBQXpCO0FBQ0FxQixtQkFBYTFCLE9BQWIsQ0FBcUIrQixpQkFBaUI7QUFDcEMsY0FBTUMsYUFBYUQsZUFBbkI7QUFDQSxZQUFJQyxlQUFlLElBQW5CLEVBQXlCO0FBQ3ZCO0FBQ0Q7O0FBRURGLHlCQUFpQmQsR0FBakIsQ0FBcUJnQixXQUFXeEIsSUFBaEM7QUFDRCxPQVBEO0FBUUFXLGdCQUFVYyxHQUFWLENBQWNiLElBQWQsRUFBb0JVLGdCQUFwQjs7QUFFQUgsZ0JBQVUzQixPQUFWLENBQWtCLENBQUNrQyxLQUFELEVBQVFDLEdBQVIsS0FBZ0I7QUFDaEMsWUFBSUEsUUFBUTNDLE9BQVosRUFBcUI7QUFDbkI2QixrQkFBUVksR0FBUixDQUFZbEQsd0JBQVosRUFBc0MsRUFBRXFELFdBQVcsSUFBSS9CLEdBQUosRUFBYixFQUF0QztBQUNELFNBRkQsTUFFTztBQUNMZ0Isa0JBQVFZLEdBQVIsQ0FBWUUsR0FBWixFQUFpQixFQUFFQyxXQUFXLElBQUkvQixHQUFKLEVBQWIsRUFBakI7QUFDRDtBQUNELGNBQU1nQyxXQUFZSCxNQUFNSSxTQUFOLEVBQWxCO0FBQ0EsWUFBSSxDQUFDRCxRQUFMLEVBQWU7QUFDYjtBQUNEO0FBQ0QsWUFBSUUsY0FBY2pCLFFBQVFHLEdBQVIsQ0FBWVksU0FBUzdCLElBQXJCLENBQWxCO0FBQ0EsWUFBSWdDLFlBQUo7QUFDQSxZQUFJTixNQUFNTyxLQUFOLEtBQWdCakQsT0FBcEIsRUFBNkI7QUFDM0JnRCx5QkFBZXpELHdCQUFmO0FBQ0QsU0FGRCxNQUVPO0FBQ0x5RCx5QkFBZU4sTUFBTU8sS0FBckI7QUFDRDtBQUNELFlBQUksT0FBT0YsV0FBUCxLQUF1QixXQUEzQixFQUF3QztBQUN0Q0Esd0JBQWMsSUFBSWxDLEdBQUosOEJBQVlrQyxXQUFaLElBQXlCQyxZQUF6QixHQUFkO0FBQ0QsU0FGRCxNQUVPO0FBQ0xELHdCQUFjLElBQUlsQyxHQUFKLENBQVEsQ0FBQ21DLFlBQUQsQ0FBUixDQUFkO0FBQ0Q7QUFDRGxCLGdCQUFRVyxHQUFSLENBQVlJLFNBQVM3QixJQUFyQixFQUEyQitCLFdBQTNCO0FBQ0QsT0F2QkQ7O0FBeUJBWCxzQkFBZ0I1QixPQUFoQixDQUF3QixDQUFDa0MsS0FBRCxFQUFRQyxHQUFSLEtBQWdCO0FBQ3RDLFlBQUk1QixhQUFhNEIsR0FBYixDQUFKLEVBQXVCO0FBQ3JCO0FBQ0Q7QUFDRCxZQUFJSSxjQUFjakIsUUFBUUcsR0FBUixDQUFZVSxHQUFaLENBQWxCO0FBQ0EsWUFBSSxPQUFPSSxXQUFQLEtBQXVCLFdBQTNCLEVBQXdDO0FBQ3RDQSx3QkFBYyxJQUFJbEMsR0FBSiw4QkFBWWtDLFdBQVosc0JBQTRCTCxNQUFNUSxrQkFBbEMsR0FBZDtBQUNELFNBRkQsTUFFTztBQUNMSCx3QkFBY0wsTUFBTVEsa0JBQXBCO0FBQ0Q7QUFDRHBCLGdCQUFRVyxHQUFSLENBQVlFLEdBQVosRUFBaUJJLFdBQWpCO0FBQ0QsT0FYRDtBQVlBdEMsaUJBQVdnQyxHQUFYLENBQWViLElBQWYsRUFBcUJFLE9BQXJCOztBQUVBO0FBQ0EsVUFBSWxCLGFBQWF1QyxHQUFiLENBQWlCdkIsSUFBakIsQ0FBSixFQUE0QjtBQUMxQjtBQUNEO0FBQ0RTLGdCQUFVN0IsT0FBVixDQUFrQixDQUFDa0MsS0FBRCxFQUFRQyxHQUFSLEtBQWdCO0FBQ2hDLFlBQUlBLFFBQVEzQyxPQUFaLEVBQXFCO0FBQ25CNkIsa0JBQVFZLEdBQVIsQ0FBWWxELHdCQUFaLEVBQXNDLEVBQUVxRCxXQUFXLElBQUkvQixHQUFKLEVBQWIsRUFBdEM7QUFDRCxTQUZELE1BRU87QUFDTGdCLGtCQUFRWSxHQUFSLENBQVlFLEdBQVosRUFBaUIsRUFBRUMsV0FBVyxJQUFJL0IsR0FBSixFQUFiLEVBQWpCO0FBQ0Q7QUFDRixPQU5EO0FBT0Q7QUFDRGdCLFlBQVFZLEdBQVIsQ0FBWXJELHNCQUFaLEVBQW9DLEVBQUV3RCxXQUFXLElBQUkvQixHQUFKLEVBQWIsRUFBcEM7QUFDQWdCLFlBQVFZLEdBQVIsQ0FBWW5ELDBCQUFaLEVBQXdDLEVBQUVzRCxXQUFXLElBQUkvQixHQUFKLEVBQWIsRUFBeEM7QUFDQUYsZUFBVzhCLEdBQVgsQ0FBZWIsSUFBZixFQUFxQkMsT0FBckI7QUFDRCxHQXpFRDtBQTBFQUYsWUFBVW5CLE9BQVYsQ0FBa0IsQ0FBQ2tDLEtBQUQsRUFBUUMsR0FBUixLQUFnQjtBQUNoQ0QsVUFBTWxDLE9BQU4sQ0FBYzRDLE9BQU87QUFDbkIsWUFBTXJCLGlCQUFpQnBCLFdBQVdzQixHQUFYLENBQWVtQixHQUFmLENBQXZCO0FBQ0EsWUFBTUMsZ0JBQWdCdEIsZUFBZUUsR0FBZixDQUFtQjdDLHNCQUFuQixDQUF0QjtBQUNBaUUsb0JBQWNULFNBQWQsQ0FBd0JwQixHQUF4QixDQUE0Qm1CLEdBQTVCO0FBQ0QsS0FKRDtBQUtELEdBTkQ7QUFPRCxDQW5GRDs7QUFxRkE7Ozs7QUFJQSxNQUFNVyxpQkFBaUIsTUFBTTtBQUMzQjdDLGFBQVdELE9BQVgsQ0FBbUIsQ0FBQytDLFNBQUQsRUFBWUMsT0FBWixLQUF3QjtBQUN6Q0QsY0FBVS9DLE9BQVYsQ0FBa0IsQ0FBQ2tDLEtBQUQsRUFBUUMsR0FBUixLQUFnQjtBQUNoQyxZQUFNZCxVQUFVbEIsV0FBV3NCLEdBQVgsQ0FBZVUsR0FBZixDQUFoQjtBQUNBLFVBQUksT0FBT2QsT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ2EsY0FBTWxDLE9BQU4sQ0FBY2lELGlCQUFpQjtBQUM3QixjQUFJQyxTQUFKO0FBQ0EsY0FBSUQsa0JBQWtCbkUsMEJBQXRCLEVBQWtEO0FBQ2hEb0Usd0JBQVlwRSwwQkFBWjtBQUNELFdBRkQsTUFFTyxJQUFJbUUsa0JBQWtCbEUsd0JBQXRCLEVBQWdEO0FBQ3JEbUUsd0JBQVluRSx3QkFBWjtBQUNELFdBRk0sTUFFQTtBQUNMbUUsd0JBQVlELGFBQVo7QUFDRDtBQUNELGNBQUksT0FBT0MsU0FBUCxLQUFxQixXQUF6QixFQUFzQztBQUNwQyxrQkFBTUMsa0JBQWtCOUIsUUFBUUksR0FBUixDQUFZeUIsU0FBWixDQUF4QjtBQUNBLGdCQUFJLE9BQU9DLGVBQVAsS0FBMkIsV0FBL0IsRUFBNEM7QUFDbENmLHVCQURrQyxHQUNwQmUsZUFEb0IsQ0FDbENmLFNBRGtDO0FBRTFDQSx3QkFBVXBCLEdBQVYsQ0FBY2dDLE9BQWQ7QUFDQTNCLHNCQUFRWSxHQUFSLENBQVlpQixTQUFaLEVBQXVCLEVBQUVkLFNBQUYsRUFBdkI7QUFDRDtBQUNGO0FBQ0YsU0FqQkQ7QUFrQkQ7QUFDRixLQXRCRDtBQXVCRCxHQXhCRDtBQXlCRCxDQTFCRDs7QUE0QkEsTUFBTWdCLFNBQVMvRixPQUFPO0FBQ3BCLE1BQUlBLEdBQUosRUFBUztBQUNQLFdBQU9BLEdBQVA7QUFDRDtBQUNELFNBQU8sQ0FBQ2dHLFFBQVFDLEdBQVIsRUFBRCxDQUFQO0FBQ0QsQ0FMRDs7QUFPQTs7OztBQUlBLElBQUl6QyxRQUFKO0FBQ0EsSUFBSTBDLGNBQUo7QUFDQSxNQUFNQyxnQkFBZ0IsQ0FBQ25HLEdBQUQsRUFBTXFELGFBQU4sRUFBcUJDLE9BQXJCLEtBQWlDO0FBQ3JELFFBQU04QyxhQUFhQyxLQUFLQyxTQUFMLENBQWU7QUFDaEN0RyxTQUFLLENBQUNBLE9BQU8sRUFBUixFQUFZdUcsSUFBWixFQUQyQjtBQUVoQ2xELG1CQUFlLENBQUNBLGlCQUFpQixFQUFsQixFQUFzQmtELElBQXRCLEVBRmlCO0FBR2hDdEcsZ0JBQVlFLE1BQU1DLElBQU4sQ0FBVywrQkFBa0JrRCxRQUFRQyxRQUExQixDQUFYLEVBQWdEZ0QsSUFBaEQsRUFIb0IsRUFBZixDQUFuQjs7QUFLQSxNQUFJSCxlQUFlRixjQUFuQixFQUFtQztBQUNqQztBQUNEOztBQUVEdEQsYUFBVzRELEtBQVg7QUFDQTFELGFBQVcwRCxLQUFYO0FBQ0F6RCxlQUFheUQsS0FBYjtBQUNBdkQsa0JBQWdCdUQsS0FBaEI7O0FBRUFoRCxhQUFXSixhQUFhMkMsT0FBTy9GLEdBQVAsQ0FBYixFQUEwQnFELGFBQTFCLEVBQXlDQyxPQUF6QyxDQUFYO0FBQ0FPLDJCQUF5QkwsUUFBekIsRUFBbUNGLE9BQW5DO0FBQ0FtQztBQUNBUyxtQkFBaUJFLFVBQWpCO0FBQ0QsQ0FuQkQ7O0FBcUJBLE1BQU1LLDJCQUEyQkM7QUFDL0JBLFdBQVdDLElBQVgsQ0FBZ0IsZ0JBQUdwRSxJQUFILFNBQUdBLElBQUgsUUFBY0EsU0FBU2QsMEJBQXZCLEVBQWhCLENBREY7O0FBR0EsTUFBTW1GLHlCQUF5QkY7QUFDN0JBLFdBQVdDLElBQVgsQ0FBZ0IsZ0JBQUdwRSxJQUFILFNBQUdBLElBQUgsUUFBY0EsU0FBU2Isd0JBQXZCLEVBQWhCLENBREY7O0FBR0EsTUFBTW1GLGNBQWM5QyxRQUFRO0FBQ0orQyxzQkFBVUMsSUFBVixDQUFlLEVBQUNkLEtBQUtsQyxJQUFOLEVBQVlpRCxXQUFXLEtBQXZCLEVBQWYsQ0FESSxPQUNsQjdELElBRGtCLG1CQUNsQkEsSUFEa0IsQ0FDWjhELEdBRFksbUJBQ1pBLEdBRFk7QUFFMUIsUUFBTUMsV0FBVyxtQkFBUS9ELElBQVIsQ0FBakI7O0FBRUEsUUFBTWdFLHNCQUFzQkMsWUFBWTtBQUN0QyxRQUFJLGdCQUFLRixRQUFMLEVBQWVFLFFBQWYsTUFBNkJyRCxJQUFqQyxFQUF1QztBQUNuQyxhQUFPLElBQVA7QUFDRDtBQUNKLEdBSkQ7O0FBTUEsUUFBTXNELHNCQUFzQkQsWUFBWTtBQUNwQyxVQUFNRSxnQkFBZ0Isc0JBQU9GLFFBQVAsRUFBaUJuRyxHQUFqQixDQUFxQjRELFNBQVMsZ0JBQUtxQyxRQUFMLEVBQWVyQyxLQUFmLENBQTlCLENBQXRCO0FBQ0EsUUFBSSw2QkFBU3lDLGFBQVQsRUFBd0J2RCxJQUF4QixDQUFKLEVBQW1DO0FBQ2pDLGFBQU8sSUFBUDtBQUNEO0FBQ0osR0FMRDs7QUFPQSxRQUFNd0QsZ0JBQWdCSCxZQUFZO0FBQ2hDLFFBQUksT0FBT0EsUUFBUCxLQUFvQixRQUF4QixFQUFrQztBQUNoQyxhQUFPRCxvQkFBb0JDLFFBQXBCLENBQVA7QUFDRDs7QUFFRCxRQUFJLE9BQU9BLFFBQVAsS0FBb0IsUUFBeEIsRUFBa0M7QUFDaEMsYUFBT0Msb0JBQW9CRCxRQUFwQixDQUFQO0FBQ0Q7QUFDRixHQVJEOztBQVVBLE1BQUlILElBQUlPLE9BQUosS0FBZ0IsSUFBcEIsRUFBMEI7QUFDeEIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSVAsSUFBSVEsR0FBUixFQUFhO0FBQ1gsUUFBSUYsY0FBY04sSUFBSVEsR0FBbEIsQ0FBSixFQUE0QjtBQUMxQixhQUFPLElBQVA7QUFDRDtBQUNGOztBQUVELE1BQUlSLElBQUlTLE9BQVIsRUFBaUI7QUFDZixRQUFJSCxjQUFjTixJQUFJUyxPQUFsQixDQUFKLEVBQWdDO0FBQzlCLGFBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsTUFBSVQsSUFBSVUsSUFBUixFQUFjO0FBQ1osUUFBSVIsb0JBQW9CRixJQUFJVSxJQUF4QixDQUFKLEVBQW1DO0FBQ2pDLGFBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxLQUFQO0FBQ0QsQ0FsREQ7O0FBb0RBQyxPQUFPNUQsT0FBUCxHQUFpQjtBQUNmNkQsUUFBTTtBQUNKdEYsVUFBTSxZQURGO0FBRUp1RixVQUFNLEVBQUVDLEtBQUssdUJBQVEsbUJBQVIsQ0FBUCxFQUZGO0FBR0pDLFlBQVEsQ0FBQztBQUNQQyxrQkFBWTtBQUNWakksYUFBSztBQUNIa0ksdUJBQWEsc0RBRFY7QUFFSDNGLGdCQUFNLE9BRkg7QUFHSDRGLG9CQUFVLENBSFA7QUFJSEMsaUJBQU87QUFDTDdGLGtCQUFNLFFBREQ7QUFFTDhGLHVCQUFXLENBRk4sRUFKSixFQURLOzs7QUFVVmhGLHVCQUFlO0FBQ2I2RTtBQUNFLCtGQUZXO0FBR2IzRixnQkFBTSxPQUhPO0FBSWI0RixvQkFBVSxDQUpHO0FBS2JDLGlCQUFPO0FBQ0w3RixrQkFBTSxRQUREO0FBRUw4Rix1QkFBVyxDQUZOLEVBTE0sRUFWTDs7O0FBb0JWQyx3QkFBZ0I7QUFDZEosdUJBQWEsb0NBREM7QUFFZDNGLGdCQUFNLFNBRlEsRUFwQk47O0FBd0JWZ0csdUJBQWU7QUFDYkwsdUJBQWEsa0NBREE7QUFFYjNGLGdCQUFNLFNBRk8sRUF4QkwsRUFETDs7O0FBOEJQaUcsV0FBSztBQUNIUCxvQkFBWTtBQUNWTSx5QkFBZSxFQUFFRSxNQUFNLENBQUMsS0FBRCxDQUFSLEVBREw7QUFFVkgsMEJBQWdCLEVBQUVHLE1BQU0sQ0FBQyxLQUFELENBQVIsRUFGTixFQURULEVBOUJFOzs7QUFvQ1BDLGFBQU0sQ0FBQztBQUNMRixhQUFLO0FBQ0hQLHNCQUFZO0FBQ1ZNLDJCQUFlLEVBQUVFLE1BQU0sQ0FBQyxJQUFELENBQVIsRUFETCxFQURULEVBREE7OztBQU1MRSxrQkFBVSxDQUFDLGdCQUFELENBTkwsRUFBRDtBQU9IO0FBQ0RILGFBQUs7QUFDSFAsc0JBQVk7QUFDVkssNEJBQWdCLEVBQUVHLE1BQU0sQ0FBQyxJQUFELENBQVIsRUFETixFQURULEVBREo7OztBQU1ERSxrQkFBVSxDQUFDLGVBQUQsQ0FOVCxFQVBHO0FBY0g7QUFDRFYsb0JBQVk7QUFDVk0seUJBQWUsRUFBRUUsTUFBTSxDQUFDLElBQUQsQ0FBUixFQURMLEVBRFg7O0FBSURFLGtCQUFVLENBQUMsZUFBRCxDQUpULEVBZEc7QUFtQkg7QUFDRFYsb0JBQVk7QUFDVkssMEJBQWdCLEVBQUVHLE1BQU0sQ0FBQyxJQUFELENBQVIsRUFETixFQURYOztBQUlERSxrQkFBVSxDQUFDLGdCQUFELENBSlQsRUFuQkcsQ0FwQ0MsRUFBRCxDQUhKLEVBRFM7Ozs7O0FBb0VmQyxVQUFRdEYsV0FBVzs7Ozs7O0FBTWJBLFlBQVF1RixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBTlQsT0FFZjdJLEdBRmUsU0FFZkEsR0FGZSxpQ0FHZnFELGFBSGUsT0FHZkEsYUFIZSx1Q0FHQyxFQUhELHVCQUlmaUYsY0FKZSxTQUlmQSxjQUplLENBS2ZDLGFBTGUsU0FLZkEsYUFMZTs7QUFRakIsUUFBSUEsYUFBSixFQUFtQjtBQUNqQnBDLG9CQUFjbkcsR0FBZCxFQUFtQnFELGFBQW5CLEVBQWtDQyxPQUFsQztBQUNEOztBQUVELFVBQU1TLE9BQU9ULFFBQVF3RixXQUFSLEVBQWI7O0FBRUEsVUFBTUMsc0JBQXNCQyxRQUFRO0FBQ2xDLFVBQUksQ0FBQ1YsY0FBTCxFQUFxQjtBQUNuQjtBQUNEOztBQUVELFVBQUl2RixhQUFhdUMsR0FBYixDQUFpQnZCLElBQWpCLENBQUosRUFBNEI7QUFDMUI7QUFDRDs7QUFFRCxZQUFNa0YsY0FBY25HLFdBQVdzQixHQUFYLENBQWVMLElBQWYsQ0FBcEI7QUFDQSxZQUFNRCxZQUFZbUYsWUFBWTdFLEdBQVosQ0FBZ0I3QyxzQkFBaEIsQ0FBbEI7QUFDQSxZQUFNMkgsbUJBQW1CRCxZQUFZN0UsR0FBWixDQUFnQjNDLDBCQUFoQixDQUF6Qjs7QUFFQXdILGtCQUFZRSxNQUFaLENBQW1CNUgsc0JBQW5CO0FBQ0EwSCxrQkFBWUUsTUFBWixDQUFtQjFILDBCQUFuQjtBQUNBLFVBQUl3SCxZQUFZRyxJQUFaLEdBQW1CLENBQXZCLEVBQTBCO0FBQ3hCO0FBQ0E7QUFDQTlGLGdCQUFRK0YsTUFBUixDQUFlTCxLQUFLTSxJQUFMLENBQVUsQ0FBVixJQUFlTixLQUFLTSxJQUFMLENBQVUsQ0FBVixDQUFmLEdBQThCTixJQUE3QyxFQUFtRCxrQkFBbkQ7QUFDRDtBQUNEQyxrQkFBWXJFLEdBQVosQ0FBZ0JyRCxzQkFBaEIsRUFBd0N1QyxTQUF4QztBQUNBbUYsa0JBQVlyRSxHQUFaLENBQWdCbkQsMEJBQWhCLEVBQTRDeUgsZ0JBQTVDO0FBQ0QsS0F0QkQ7O0FBd0JBLFVBQU1LLGFBQWEsQ0FBQ1AsSUFBRCxFQUFPUSxhQUFQLEtBQXlCO0FBQzFDLFVBQUksQ0FBQ2pCLGFBQUwsRUFBb0I7QUFDbEI7QUFDRDs7QUFFRCxVQUFJeEYsYUFBYXVDLEdBQWIsQ0FBaUJ2QixJQUFqQixDQUFKLEVBQTRCO0FBQzFCO0FBQ0Q7O0FBRUQsVUFBSThDLFlBQVk5QyxJQUFaLENBQUosRUFBdUI7QUFDckI7QUFDRDs7QUFFRCxVQUFJZCxnQkFBZ0JxQyxHQUFoQixDQUFvQnZCLElBQXBCLENBQUosRUFBK0I7QUFDN0I7QUFDRDs7QUFFRDtBQUNBLFVBQUksQ0FBQ1AsU0FBUzhCLEdBQVQsQ0FBYXZCLElBQWIsQ0FBTCxFQUF5QjtBQUN2QlAsbUJBQVdKLGFBQWEyQyxPQUFPL0YsR0FBUCxDQUFiLEVBQTBCcUQsYUFBMUIsRUFBeUNDLE9BQXpDLENBQVg7QUFDQSxZQUFJLENBQUNFLFNBQVM4QixHQUFULENBQWF2QixJQUFiLENBQUwsRUFBeUI7QUFDdkJkLDBCQUFnQlUsR0FBaEIsQ0FBb0JJLElBQXBCO0FBQ0E7QUFDRDtBQUNGOztBQUVEQyxnQkFBVWxCLFdBQVdzQixHQUFYLENBQWVMLElBQWYsQ0FBVjs7QUFFQTtBQUNBLFlBQU1ELFlBQVlFLFFBQVFJLEdBQVIsQ0FBWTdDLHNCQUFaLENBQWxCO0FBQ0EsVUFBSSxPQUFPdUMsU0FBUCxLQUFxQixXQUFyQixJQUFvQzBGLGtCQUFrQjlILHdCQUExRCxFQUFvRjtBQUNsRixZQUFJb0MsVUFBVWlCLFNBQVYsQ0FBb0JxRSxJQUFwQixHQUEyQixDQUEvQixFQUFrQztBQUNoQztBQUNEO0FBQ0Y7O0FBRUQ7QUFDQSxZQUFNRixtQkFBbUJsRixRQUFRSSxHQUFSLENBQVkzQywwQkFBWixDQUF6QjtBQUNBLFVBQUksT0FBT3lILGdCQUFQLEtBQTRCLFdBQWhDLEVBQTZDO0FBQzNDLFlBQUlBLGlCQUFpQm5FLFNBQWpCLENBQTJCcUUsSUFBM0IsR0FBa0MsQ0FBdEMsRUFBeUM7QUFDdkM7QUFDRDtBQUNGOztBQUVEO0FBQ0EsWUFBTUssYUFBYUQsa0JBQWtCckgsT0FBbEIsR0FBNEJULHdCQUE1QixHQUF1RDhILGFBQTFFOztBQUVBLFlBQU0xRCxrQkFBa0I5QixRQUFRSSxHQUFSLENBQVlxRixVQUFaLENBQXhCOztBQUVBLFlBQU01RSxRQUFRNEUsZUFBZS9ILHdCQUFmLEdBQTBDUyxPQUExQyxHQUFvRHNILFVBQWxFOztBQUVBLFVBQUksT0FBTzNELGVBQVAsS0FBMkIsV0FBL0IsRUFBMkM7QUFDekMsWUFBSUEsZ0JBQWdCZixTQUFoQixDQUEwQnFFLElBQTFCLEdBQWlDLENBQXJDLEVBQXdDO0FBQ3RDOUYsa0JBQVErRixNQUFSO0FBQ0VMLGNBREY7QUFFRyxtQ0FBd0JuRSxLQUFNLGlDQUZqQzs7QUFJRDtBQUNGLE9BUEQsTUFPTztBQUNMdkIsZ0JBQVErRixNQUFSO0FBQ0VMLFlBREY7QUFFRyxpQ0FBd0JuRSxLQUFNLGlDQUZqQzs7QUFJRDtBQUNGLEtBaEVEOztBQWtFQTs7Ozs7QUFLQSxVQUFNNkUsb0JBQW9CVixRQUFRO0FBQ2hDLFVBQUlqRyxhQUFhdUMsR0FBYixDQUFpQnZCLElBQWpCLENBQUosRUFBNEI7QUFDMUI7QUFDRDs7QUFFRCxVQUFJQyxVQUFVbEIsV0FBV3NCLEdBQVgsQ0FBZUwsSUFBZixDQUFkOztBQUVBO0FBQ0E7QUFDQSxVQUFJLE9BQU9DLE9BQVAsS0FBbUIsV0FBdkIsRUFBb0M7QUFDbENBLGtCQUFVLElBQUluQixHQUFKLEVBQVY7QUFDRDs7QUFFRCxZQUFNOEcsYUFBYSxJQUFJOUcsR0FBSixFQUFuQjtBQUNBLFlBQU0rRyx1QkFBdUIsSUFBSTVHLEdBQUosRUFBN0I7O0FBRUFnRyxXQUFLTSxJQUFMLENBQVUzRyxPQUFWLENBQWtCLFdBQXVDLEtBQXBDSixJQUFvQyxTQUFwQ0EsSUFBb0MsQ0FBOUJGLFdBQThCLFNBQTlCQSxXQUE4QixDQUFqQnFFLFVBQWlCLFNBQWpCQSxVQUFpQjtBQUN2RCxZQUFJbkUsU0FBU2xCLDBCQUFiLEVBQXlDO0FBQ3ZDdUksK0JBQXFCakcsR0FBckIsQ0FBeUJqQyx3QkFBekI7QUFDRDtBQUNELFlBQUlhLFNBQVNqQix3QkFBYixFQUF1QztBQUNyQyxjQUFJb0YsV0FBV21ELE1BQVgsR0FBb0IsQ0FBeEIsRUFBMkI7QUFDekJuRCx1QkFBVy9ELE9BQVgsQ0FBbUJrRCxhQUFhO0FBQzlCLGtCQUFJQSxVQUFVaUUsUUFBZCxFQUF3QjtBQUN0QkYscUNBQXFCakcsR0FBckIsQ0FBeUJrQyxVQUFVaUUsUUFBVixDQUFtQnJILElBQTVDO0FBQ0Q7QUFDRixhQUpEO0FBS0Q7QUFDREwsdUNBQTZCQyxXQUE3QixFQUEyQ0ksSUFBRCxJQUFVO0FBQ2xEbUgsaUNBQXFCakcsR0FBckIsQ0FBeUJsQixJQUF6QjtBQUNELFdBRkQ7QUFHRDtBQUNGLE9BaEJEOztBQWtCQTtBQUNBdUIsY0FBUXJCLE9BQVIsQ0FBZ0IsQ0FBQ2tDLEtBQUQsRUFBUUMsR0FBUixLQUFnQjtBQUM5QixZQUFJOEUscUJBQXFCdEUsR0FBckIsQ0FBeUJSLEdBQXpCLENBQUosRUFBbUM7QUFDakM2RSxxQkFBVy9FLEdBQVgsQ0FBZUUsR0FBZixFQUFvQkQsS0FBcEI7QUFDRDtBQUNGLE9BSkQ7O0FBTUE7QUFDQStFLDJCQUFxQmpILE9BQXJCLENBQTZCbUMsT0FBTztBQUNsQyxZQUFJLENBQUNkLFFBQVFzQixHQUFSLENBQVlSLEdBQVosQ0FBTCxFQUF1QjtBQUNyQjZFLHFCQUFXL0UsR0FBWCxDQUFlRSxHQUFmLEVBQW9CLEVBQUVDLFdBQVcsSUFBSS9CLEdBQUosRUFBYixFQUFwQjtBQUNEO0FBQ0YsT0FKRDs7QUFNQTtBQUNBLFVBQUljLFlBQVlFLFFBQVFJLEdBQVIsQ0FBWTdDLHNCQUFaLENBQWhCO0FBQ0EsVUFBSTJILG1CQUFtQmxGLFFBQVFJLEdBQVIsQ0FBWTNDLDBCQUFaLENBQXZCOztBQUVBLFVBQUksT0FBT3lILGdCQUFQLEtBQTRCLFdBQWhDLEVBQTZDO0FBQzNDQSwyQkFBbUIsRUFBRW5FLFdBQVcsSUFBSS9CLEdBQUosRUFBYixFQUFuQjtBQUNEOztBQUVEMkcsaUJBQVcvRSxHQUFYLENBQWVyRCxzQkFBZixFQUF1Q3VDLFNBQXZDO0FBQ0E2RixpQkFBVy9FLEdBQVgsQ0FBZW5ELDBCQUFmLEVBQTJDeUgsZ0JBQTNDO0FBQ0FwRyxpQkFBVzhCLEdBQVgsQ0FBZWIsSUFBZixFQUFxQjRGLFVBQXJCO0FBQ0QsS0EzREQ7O0FBNkRBOzs7OztBQUtBLFVBQU1JLG9CQUFvQmYsUUFBUTtBQUNoQyxVQUFJLENBQUNULGFBQUwsRUFBb0I7QUFDbEI7QUFDRDs7QUFFRCxVQUFJeUIsaUJBQWlCcEgsV0FBV3dCLEdBQVgsQ0FBZUwsSUFBZixDQUFyQjtBQUNBLFVBQUksT0FBT2lHLGNBQVAsS0FBMEIsV0FBOUIsRUFBMkM7QUFDekNBLHlCQUFpQixJQUFJbkgsR0FBSixFQUFqQjtBQUNEOztBQUVELFlBQU1vSCxzQkFBc0IsSUFBSWpILEdBQUosRUFBNUI7QUFDQSxZQUFNa0gsc0JBQXNCLElBQUlsSCxHQUFKLEVBQTVCOztBQUVBLFlBQU1tSCxlQUFlLElBQUluSCxHQUFKLEVBQXJCO0FBQ0EsWUFBTW9ILGVBQWUsSUFBSXBILEdBQUosRUFBckI7O0FBRUEsWUFBTXFILG9CQUFvQixJQUFJckgsR0FBSixFQUExQjtBQUNBLFlBQU1zSCxvQkFBb0IsSUFBSXRILEdBQUosRUFBMUI7O0FBRUEsWUFBTXVILGFBQWEsSUFBSTFILEdBQUosRUFBbkI7QUFDQSxZQUFNMkgsYUFBYSxJQUFJM0gsR0FBSixFQUFuQjtBQUNBbUgscUJBQWVySCxPQUFmLENBQXVCLENBQUNrQyxLQUFELEVBQVFDLEdBQVIsS0FBZ0I7QUFDckMsWUFBSUQsTUFBTVMsR0FBTixDQUFVL0Qsc0JBQVYsQ0FBSixFQUF1QztBQUNyQzRJLHVCQUFheEcsR0FBYixDQUFpQm1CLEdBQWpCO0FBQ0Q7QUFDRCxZQUFJRCxNQUFNUyxHQUFOLENBQVU3RCwwQkFBVixDQUFKLEVBQTJDO0FBQ3pDd0ksOEJBQW9CdEcsR0FBcEIsQ0FBd0JtQixHQUF4QjtBQUNEO0FBQ0QsWUFBSUQsTUFBTVMsR0FBTixDQUFVNUQsd0JBQVYsQ0FBSixFQUF5QztBQUN2QzJJLDRCQUFrQjFHLEdBQWxCLENBQXNCbUIsR0FBdEI7QUFDRDtBQUNERCxjQUFNbEMsT0FBTixDQUFjNEMsT0FBTztBQUNuQixjQUFJQSxRQUFROUQsMEJBQVI7QUFDQThELGtCQUFRN0Qsd0JBRFosRUFDc0M7QUFDakM2SSx1QkFBVzNGLEdBQVgsQ0FBZVcsR0FBZixFQUFvQlQsR0FBcEI7QUFDRDtBQUNMLFNBTEQ7QUFNRCxPQWhCRDs7QUFrQkFrRSxXQUFLTSxJQUFMLENBQVUzRyxPQUFWLENBQWtCOEgsV0FBVztBQUMzQixZQUFJQyxZQUFKOztBQUVBO0FBQ0EsWUFBSUQsUUFBUWxJLElBQVIsS0FBaUJqQix3QkFBckIsRUFBK0M7QUFDN0MsY0FBSW1KLFFBQVFFLE1BQVosRUFBb0I7QUFDbEJELDJCQUFlLHVCQUFRRCxRQUFRRSxNQUFSLENBQWVDLEdBQWYsQ0FBbUJDLE9BQW5CLENBQTJCLFFBQTNCLEVBQXFDLEVBQXJDLENBQVIsRUFBa0R2SCxPQUFsRCxDQUFmO0FBQ0FtSCxvQkFBUS9ELFVBQVIsQ0FBbUIvRCxPQUFuQixDQUEyQmtELGFBQWE7QUFDdEMsb0JBQU1wRCxPQUFPb0QsVUFBVVQsS0FBVixDQUFnQjNDLElBQTdCO0FBQ0Esa0JBQUlvRCxVQUFVVCxLQUFWLENBQWdCM0MsSUFBaEIsS0FBeUJOLE9BQTdCLEVBQXNDO0FBQ3BDbUksa0NBQWtCM0csR0FBbEIsQ0FBc0IrRyxZQUF0QjtBQUNELGVBRkQsTUFFTztBQUNMRiwyQkFBVzVGLEdBQVgsQ0FBZW5DLElBQWYsRUFBcUJpSSxZQUFyQjtBQUNEO0FBQ0YsYUFQRDtBQVFEO0FBQ0Y7O0FBRUQsWUFBSUQsUUFBUWxJLElBQVIsS0FBaUJoQixzQkFBckIsRUFBNkM7QUFDM0NtSix5QkFBZSx1QkFBUUQsUUFBUUUsTUFBUixDQUFlQyxHQUFmLENBQW1CQyxPQUFuQixDQUEyQixRQUEzQixFQUFxQyxFQUFyQyxDQUFSLEVBQWtEdkgsT0FBbEQsQ0FBZjtBQUNBOEcsdUJBQWF6RyxHQUFiLENBQWlCK0csWUFBakI7QUFDRDs7QUFFRCxZQUFJRCxRQUFRbEksSUFBUixLQUFpQmYsa0JBQXJCLEVBQXlDO0FBQ3ZDa0oseUJBQWUsdUJBQVFELFFBQVFFLE1BQVIsQ0FBZUMsR0FBZixDQUFtQkMsT0FBbkIsQ0FBMkIsUUFBM0IsRUFBcUMsRUFBckMsQ0FBUixFQUFrRHZILE9BQWxELENBQWY7QUFDQSxjQUFJLENBQUNvSCxZQUFMLEVBQW1CO0FBQ2pCO0FBQ0Q7O0FBRUQsY0FBSXhILGFBQWF3SCxZQUFiLENBQUosRUFBZ0M7QUFDOUI7QUFDRDs7QUFFRCxjQUFJakUseUJBQXlCZ0UsUUFBUS9ELFVBQWpDLENBQUosRUFBa0Q7QUFDaER3RCxnQ0FBb0J2RyxHQUFwQixDQUF3QitHLFlBQXhCO0FBQ0Q7O0FBRUQsY0FBSTlELHVCQUF1QjZELFFBQVEvRCxVQUEvQixDQUFKLEVBQWdEO0FBQzlDNEQsOEJBQWtCM0csR0FBbEIsQ0FBc0IrRyxZQUF0QjtBQUNEOztBQUVERCxrQkFBUS9ELFVBQVIsQ0FBbUIvRCxPQUFuQixDQUEyQmtELGFBQWE7QUFDdEMsZ0JBQUlBLFVBQVV0RCxJQUFWLEtBQW1CYix3QkFBbkI7QUFDQW1FLHNCQUFVdEQsSUFBVixLQUFtQmQsMEJBRHZCLEVBQ21EO0FBQ2pEO0FBQ0Q7QUFDRCtJLHVCQUFXNUYsR0FBWCxDQUFlaUIsVUFBVWlGLFFBQVYsQ0FBbUJySSxJQUFsQyxFQUF3Q2lJLFlBQXhDO0FBQ0QsV0FORDtBQU9EO0FBQ0YsT0FqREQ7O0FBbURBTixtQkFBYXpILE9BQWIsQ0FBcUJrQyxTQUFTO0FBQzVCLFlBQUksQ0FBQ3NGLGFBQWE3RSxHQUFiLENBQWlCVCxLQUFqQixDQUFMLEVBQThCO0FBQzVCLGNBQUlaLFVBQVUrRixlQUFlNUYsR0FBZixDQUFtQlMsS0FBbkIsQ0FBZDtBQUNBLGNBQUksT0FBT1osT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ0Esc0JBQVUsSUFBSWpCLEdBQUosRUFBVjtBQUNEO0FBQ0RpQixrQkFBUU4sR0FBUixDQUFZcEMsc0JBQVo7QUFDQXlJLHlCQUFlcEYsR0FBZixDQUFtQkMsS0FBbkIsRUFBMEJaLE9BQTFCOztBQUVBLGNBQUlELFVBQVVsQixXQUFXc0IsR0FBWCxDQUFlUyxLQUFmLENBQWQ7QUFDQSxjQUFJVyxhQUFKO0FBQ0EsY0FBSSxPQUFPeEIsT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ3dCLDRCQUFnQnhCLFFBQVFJLEdBQVIsQ0FBWTdDLHNCQUFaLENBQWhCO0FBQ0QsV0FGRCxNQUVPO0FBQ0x5QyxzQkFBVSxJQUFJbkIsR0FBSixFQUFWO0FBQ0FDLHVCQUFXOEIsR0FBWCxDQUFlQyxLQUFmLEVBQXNCYixPQUF0QjtBQUNEOztBQUVELGNBQUksT0FBT3dCLGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENBLDBCQUFjVCxTQUFkLENBQXdCcEIsR0FBeEIsQ0FBNEJJLElBQTVCO0FBQ0QsV0FGRCxNQUVPO0FBQ0wsa0JBQU1nQixZQUFZLElBQUkvQixHQUFKLEVBQWxCO0FBQ0ErQixzQkFBVXBCLEdBQVYsQ0FBY0ksSUFBZDtBQUNBQyxvQkFBUVksR0FBUixDQUFZckQsc0JBQVosRUFBb0MsRUFBRXdELFNBQUYsRUFBcEM7QUFDRDtBQUNGO0FBQ0YsT0ExQkQ7O0FBNEJBb0YsbUJBQWF4SCxPQUFiLENBQXFCa0MsU0FBUztBQUM1QixZQUFJLENBQUN1RixhQUFhOUUsR0FBYixDQUFpQlQsS0FBakIsQ0FBTCxFQUE4QjtBQUM1QixnQkFBTVosVUFBVStGLGVBQWU1RixHQUFmLENBQW1CUyxLQUFuQixDQUFoQjtBQUNBWixrQkFBUWtGLE1BQVIsQ0FBZTVILHNCQUFmOztBQUVBLGdCQUFNeUMsVUFBVWxCLFdBQVdzQixHQUFYLENBQWVTLEtBQWYsQ0FBaEI7QUFDQSxjQUFJLE9BQU9iLE9BQVAsS0FBbUIsV0FBdkIsRUFBb0M7QUFDbEMsa0JBQU13QixnQkFBZ0J4QixRQUFRSSxHQUFSLENBQVk3QyxzQkFBWixDQUF0QjtBQUNBLGdCQUFJLE9BQU9pRSxhQUFQLEtBQXlCLFdBQTdCLEVBQTBDO0FBQ3hDQSw0QkFBY1QsU0FBZCxDQUF3Qm9FLE1BQXhCLENBQStCcEYsSUFBL0I7QUFDRDtBQUNGO0FBQ0Y7QUFDRixPQWJEOztBQWVBdUcsd0JBQWtCM0gsT0FBbEIsQ0FBMEJrQyxTQUFTO0FBQ2pDLFlBQUksQ0FBQ3dGLGtCQUFrQi9FLEdBQWxCLENBQXNCVCxLQUF0QixDQUFMLEVBQW1DO0FBQ2pDLGNBQUlaLFVBQVUrRixlQUFlNUYsR0FBZixDQUFtQlMsS0FBbkIsQ0FBZDtBQUNBLGNBQUksT0FBT1osT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ0Esc0JBQVUsSUFBSWpCLEdBQUosRUFBVjtBQUNEO0FBQ0RpQixrQkFBUU4sR0FBUixDQUFZakMsd0JBQVo7QUFDQXNJLHlCQUFlcEYsR0FBZixDQUFtQkMsS0FBbkIsRUFBMEJaLE9BQTFCOztBQUVBLGNBQUlELFVBQVVsQixXQUFXc0IsR0FBWCxDQUFlUyxLQUFmLENBQWQ7QUFDQSxjQUFJVyxhQUFKO0FBQ0EsY0FBSSxPQUFPeEIsT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ3dCLDRCQUFnQnhCLFFBQVFJLEdBQVIsQ0FBWTFDLHdCQUFaLENBQWhCO0FBQ0QsV0FGRCxNQUVPO0FBQ0xzQyxzQkFBVSxJQUFJbkIsR0FBSixFQUFWO0FBQ0FDLHVCQUFXOEIsR0FBWCxDQUFlQyxLQUFmLEVBQXNCYixPQUF0QjtBQUNEOztBQUVELGNBQUksT0FBT3dCLGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENBLDBCQUFjVCxTQUFkLENBQXdCcEIsR0FBeEIsQ0FBNEJJLElBQTVCO0FBQ0QsV0FGRCxNQUVPO0FBQ0wsa0JBQU1nQixZQUFZLElBQUkvQixHQUFKLEVBQWxCO0FBQ0ErQixzQkFBVXBCLEdBQVYsQ0FBY0ksSUFBZDtBQUNBQyxvQkFBUVksR0FBUixDQUFZbEQsd0JBQVosRUFBc0MsRUFBRXFELFNBQUYsRUFBdEM7QUFDRDtBQUNGO0FBQ0YsT0ExQkQ7O0FBNEJBc0Ysd0JBQWtCMUgsT0FBbEIsQ0FBMEJrQyxTQUFTO0FBQ2pDLFlBQUksQ0FBQ3lGLGtCQUFrQmhGLEdBQWxCLENBQXNCVCxLQUF0QixDQUFMLEVBQW1DO0FBQ2pDLGdCQUFNWixVQUFVK0YsZUFBZTVGLEdBQWYsQ0FBbUJTLEtBQW5CLENBQWhCO0FBQ0FaLGtCQUFRa0YsTUFBUixDQUFlekgsd0JBQWY7O0FBRUEsZ0JBQU1zQyxVQUFVbEIsV0FBV3NCLEdBQVgsQ0FBZVMsS0FBZixDQUFoQjtBQUNBLGNBQUksT0FBT2IsT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQyxrQkFBTXdCLGdCQUFnQnhCLFFBQVFJLEdBQVIsQ0FBWTFDLHdCQUFaLENBQXRCO0FBQ0EsZ0JBQUksT0FBTzhELGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENBLDRCQUFjVCxTQUFkLENBQXdCb0UsTUFBeEIsQ0FBK0JwRixJQUEvQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGLE9BYkQ7O0FBZUFtRywwQkFBb0J2SCxPQUFwQixDQUE0QmtDLFNBQVM7QUFDbkMsWUFBSSxDQUFDb0Ysb0JBQW9CM0UsR0FBcEIsQ0FBd0JULEtBQXhCLENBQUwsRUFBcUM7QUFDbkMsY0FBSVosVUFBVStGLGVBQWU1RixHQUFmLENBQW1CUyxLQUFuQixDQUFkO0FBQ0EsY0FBSSxPQUFPWixPQUFQLEtBQW1CLFdBQXZCLEVBQW9DO0FBQ2xDQSxzQkFBVSxJQUFJakIsR0FBSixFQUFWO0FBQ0Q7QUFDRGlCLGtCQUFRTixHQUFSLENBQVlsQywwQkFBWjtBQUNBdUkseUJBQWVwRixHQUFmLENBQW1CQyxLQUFuQixFQUEwQlosT0FBMUI7O0FBRUEsY0FBSUQsVUFBVWxCLFdBQVdzQixHQUFYLENBQWVTLEtBQWYsQ0FBZDtBQUNBLGNBQUlXLGFBQUo7QUFDQSxjQUFJLE9BQU94QixPQUFQLEtBQW1CLFdBQXZCLEVBQW9DO0FBQ2xDd0IsNEJBQWdCeEIsUUFBUUksR0FBUixDQUFZM0MsMEJBQVosQ0FBaEI7QUFDRCxXQUZELE1BRU87QUFDTHVDLHNCQUFVLElBQUluQixHQUFKLEVBQVY7QUFDQUMsdUJBQVc4QixHQUFYLENBQWVDLEtBQWYsRUFBc0JiLE9BQXRCO0FBQ0Q7O0FBRUQsY0FBSSxPQUFPd0IsYUFBUCxLQUF5QixXQUE3QixFQUEwQztBQUN4Q0EsMEJBQWNULFNBQWQsQ0FBd0JwQixHQUF4QixDQUE0QkksSUFBNUI7QUFDRCxXQUZELE1BRU87QUFDTCxrQkFBTWdCLFlBQVksSUFBSS9CLEdBQUosRUFBbEI7QUFDQStCLHNCQUFVcEIsR0FBVixDQUFjSSxJQUFkO0FBQ0FDLG9CQUFRWSxHQUFSLENBQVluRCwwQkFBWixFQUF3QyxFQUFFc0QsU0FBRixFQUF4QztBQUNEO0FBQ0Y7QUFDRixPQTFCRDs7QUE0QkFrRiwwQkFBb0J0SCxPQUFwQixDQUE0QmtDLFNBQVM7QUFDbkMsWUFBSSxDQUFDcUYsb0JBQW9CNUUsR0FBcEIsQ0FBd0JULEtBQXhCLENBQUwsRUFBcUM7QUFDbkMsZ0JBQU1aLFVBQVUrRixlQUFlNUYsR0FBZixDQUFtQlMsS0FBbkIsQ0FBaEI7QUFDQVosa0JBQVFrRixNQUFSLENBQWUxSCwwQkFBZjs7QUFFQSxnQkFBTXVDLFVBQVVsQixXQUFXc0IsR0FBWCxDQUFlUyxLQUFmLENBQWhCO0FBQ0EsY0FBSSxPQUFPYixPQUFQLEtBQW1CLFdBQXZCLEVBQW9DO0FBQ2xDLGtCQUFNd0IsZ0JBQWdCeEIsUUFBUUksR0FBUixDQUFZM0MsMEJBQVosQ0FBdEI7QUFDQSxnQkFBSSxPQUFPK0QsYUFBUCxLQUF5QixXQUE3QixFQUEwQztBQUN4Q0EsNEJBQWNULFNBQWQsQ0FBd0JvRSxNQUF4QixDQUErQnBGLElBQS9CO0FBQ0Q7QUFDRjtBQUNGO0FBQ0YsT0FiRDs7QUFlQXlHLGlCQUFXN0gsT0FBWCxDQUFtQixDQUFDa0MsS0FBRCxFQUFRQyxHQUFSLEtBQWdCO0FBQ2pDLFlBQUksQ0FBQ3lGLFdBQVdqRixHQUFYLENBQWVSLEdBQWYsQ0FBTCxFQUEwQjtBQUN4QixjQUFJYixVQUFVK0YsZUFBZTVGLEdBQWYsQ0FBbUJTLEtBQW5CLENBQWQ7QUFDQSxjQUFJLE9BQU9aLE9BQVAsS0FBbUIsV0FBdkIsRUFBb0M7QUFDbENBLHNCQUFVLElBQUlqQixHQUFKLEVBQVY7QUFDRDtBQUNEaUIsa0JBQVFOLEdBQVIsQ0FBWW1CLEdBQVo7QUFDQWtGLHlCQUFlcEYsR0FBZixDQUFtQkMsS0FBbkIsRUFBMEJaLE9BQTFCOztBQUVBLGNBQUlELFVBQVVsQixXQUFXc0IsR0FBWCxDQUFlUyxLQUFmLENBQWQ7QUFDQSxjQUFJVyxhQUFKO0FBQ0EsY0FBSSxPQUFPeEIsT0FBUCxLQUFtQixXQUF2QixFQUFvQztBQUNsQ3dCLDRCQUFnQnhCLFFBQVFJLEdBQVIsQ0FBWVUsR0FBWixDQUFoQjtBQUNELFdBRkQsTUFFTztBQUNMZCxzQkFBVSxJQUFJbkIsR0FBSixFQUFWO0FBQ0FDLHVCQUFXOEIsR0FBWCxDQUFlQyxLQUFmLEVBQXNCYixPQUF0QjtBQUNEOztBQUVELGNBQUksT0FBT3dCLGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENBLDBCQUFjVCxTQUFkLENBQXdCcEIsR0FBeEIsQ0FBNEJJLElBQTVCO0FBQ0QsV0FGRCxNQUVPO0FBQ0wsa0JBQU1nQixZQUFZLElBQUkvQixHQUFKLEVBQWxCO0FBQ0ErQixzQkFBVXBCLEdBQVYsQ0FBY0ksSUFBZDtBQUNBQyxvQkFBUVksR0FBUixDQUFZRSxHQUFaLEVBQWlCLEVBQUVDLFNBQUYsRUFBakI7QUFDRDtBQUNGO0FBQ0YsT0ExQkQ7O0FBNEJBd0YsaUJBQVc1SCxPQUFYLENBQW1CLENBQUNrQyxLQUFELEVBQVFDLEdBQVIsS0FBZ0I7QUFDakMsWUFBSSxDQUFDMEYsV0FBV2xGLEdBQVgsQ0FBZVIsR0FBZixDQUFMLEVBQTBCO0FBQ3hCLGdCQUFNYixVQUFVK0YsZUFBZTVGLEdBQWYsQ0FBbUJTLEtBQW5CLENBQWhCO0FBQ0FaLGtCQUFRa0YsTUFBUixDQUFlckUsR0FBZjs7QUFFQSxnQkFBTWQsVUFBVWxCLFdBQVdzQixHQUFYLENBQWVTLEtBQWYsQ0FBaEI7QUFDQSxjQUFJLE9BQU9iLE9BQVAsS0FBbUIsV0FBdkIsRUFBb0M7QUFDbEMsa0JBQU13QixnQkFBZ0J4QixRQUFRSSxHQUFSLENBQVlVLEdBQVosQ0FBdEI7QUFDQSxnQkFBSSxPQUFPVSxhQUFQLEtBQXlCLFdBQTdCLEVBQTBDO0FBQ3hDQSw0QkFBY1QsU0FBZCxDQUF3Qm9FLE1BQXhCLENBQStCcEYsSUFBL0I7QUFDRDtBQUNGO0FBQ0Y7QUFDRixPQWJEO0FBY0QsS0FyUUQ7O0FBdVFBLFdBQU87QUFDTCxzQkFBZ0JpRixRQUFRO0FBQ3RCVSwwQkFBa0JWLElBQWxCO0FBQ0FlLDBCQUFrQmYsSUFBbEI7QUFDQUQsNEJBQW9CQyxJQUFwQjtBQUNELE9BTEk7QUFNTCxrQ0FBNEJBLFFBQVE7QUFDbENPLG1CQUFXUCxJQUFYLEVBQWlCdEgsd0JBQWpCO0FBQ0QsT0FSSTtBQVNMLGdDQUEwQnNILFFBQVE7QUFDaENBLGFBQUt0QyxVQUFMLENBQWdCL0QsT0FBaEIsQ0FBd0JrRCxhQUFhO0FBQ2pDMEQscUJBQVdQLElBQVgsRUFBaUJuRCxVQUFVaUUsUUFBVixDQUFtQnJILElBQXBDO0FBQ0gsU0FGRDtBQUdBTCxxQ0FBNkI0RyxLQUFLM0csV0FBbEMsRUFBZ0RJLElBQUQsSUFBVTtBQUN2RDhHLHFCQUFXUCxJQUFYLEVBQWlCdkcsSUFBakI7QUFDRCxTQUZEO0FBR0QsT0FoQkksRUFBUDs7QUFrQkQsR0E1Z0JjLEVBQWpCIiwiZmlsZSI6Im5vLXVudXNlZC1tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEVuc3VyZXMgdGhhdCBtb2R1bGVzIGNvbnRhaW4gZXhwb3J0cyBhbmQvb3IgYWxsXG4gKiBtb2R1bGVzIGFyZSBjb25zdW1lZCB3aXRoaW4gb3RoZXIgbW9kdWxlcy5cbiAqIEBhdXRob3IgUmVuw6kgRmVybWFublxuICovXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCB7IGdldEZpbGVFeHRlbnNpb25zIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9pZ25vcmUnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgcmVhZFBrZ1VwIGZyb20gJ3JlYWQtcGtnLXVwJ1xuaW1wb3J0IHZhbHVlcyBmcm9tICdvYmplY3QudmFsdWVzJ1xuaW1wb3J0IGluY2x1ZGVzIGZyb20gJ2FycmF5LWluY2x1ZGVzJ1xuXG4vLyBlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsIGhhcyBiZWVuIG1vdmVkIHRvIGVzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzIHdpdGggdmVyc2lvbiA1LjNcbi8vIGFuZCBoYXMgYmVlbiBtb3ZlZCB0byBlc2xpbnQvbGliL2NsaS1lbmdpbmUvZmlsZS1lbnVtZXJhdG9yIGluIHZlcnNpb24gNlxubGV0IGxpc3RGaWxlc1RvUHJvY2Vzc1xudHJ5IHtcbiAgY29uc3QgRmlsZUVudW1lcmF0b3IgPSByZXF1aXJlKCdlc2xpbnQvbGliL2NsaS1lbmdpbmUvZmlsZS1lbnVtZXJhdG9yJykuRmlsZUVudW1lcmF0b3JcbiAgbGlzdEZpbGVzVG9Qcm9jZXNzID0gZnVuY3Rpb24gKHNyYywgZXh0ZW5zaW9ucykge1xuICAgIGNvbnN0IGUgPSBuZXcgRmlsZUVudW1lcmF0b3Ioe1xuICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyxcbiAgICB9KVxuICAgIHJldHVybiBBcnJheS5mcm9tKGUuaXRlcmF0ZUZpbGVzKHNyYyksICh7IGZpbGVQYXRoLCBpZ25vcmVkIH0pID0+ICh7XG4gICAgICBpZ25vcmVkLFxuICAgICAgZmlsZW5hbWU6IGZpbGVQYXRoLFxuICAgIH0pKVxuICB9XG59IGNhdGNoIChlMSkge1xuICAvLyBQcmV2ZW50IHBhc3NpbmcgaW52YWxpZCBvcHRpb25zIChleHRlbnNpb25zIGFycmF5KSB0byBvbGQgdmVyc2lvbnMgb2YgdGhlIGZ1bmN0aW9uLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9ibG9iL3Y1LjE2LjAvbGliL3V0aWwvZ2xvYi11dGlscy5qcyNMMTc4LUwyODBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQvYmxvYi92NS4yLjAvbGliL3V0aWwvZ2xvYi11dGlsLmpzI0wxNzQtTDI2OVxuICBsZXQgb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3NcbiAgdHJ5IHtcbiAgICBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyA9IHJlcXVpcmUoJ2VzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzJykubGlzdEZpbGVzVG9Qcm9jZXNzXG4gICAgbGlzdEZpbGVzVG9Qcm9jZXNzID0gZnVuY3Rpb24gKHNyYywgZXh0ZW5zaW9ucykge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsTGlzdEZpbGVzVG9Qcm9jZXNzKHNyYywge1xuICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zLFxuICAgICAgfSlcbiAgICB9XG4gIH0gY2F0Y2ggKGUyKSB7XG4gICAgb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3MgPSByZXF1aXJlKCdlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsJykubGlzdEZpbGVzVG9Qcm9jZXNzXG5cbiAgICBsaXN0RmlsZXNUb1Byb2Nlc3MgPSBmdW5jdGlvbiAoc3JjLCBleHRlbnNpb25zKSB7XG4gICAgICBjb25zdCBwYXR0ZXJucyA9IHNyYy5yZWR1Y2UoKGNhcnJ5LCBwYXR0ZXJuKSA9PiB7XG4gICAgICAgIHJldHVybiBjYXJyeS5jb25jYXQoZXh0ZW5zaW9ucy5tYXAoKGV4dGVuc2lvbikgPT4ge1xuICAgICAgICAgIHJldHVybiAvXFwqXFwqfFxcKlxcLi8udGVzdChwYXR0ZXJuKSA/IHBhdHRlcm4gOiBgJHtwYXR0ZXJufS8qKi8qJHtleHRlbnNpb259YFxuICAgICAgICB9KSlcbiAgICAgIH0sIHNyYy5zbGljZSgpKVxuXG4gICAgICByZXR1cm4gb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3MocGF0dGVybnMpXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IEVYUE9SVF9ERUZBVUxUX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbidcbmNvbnN0IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiA9ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJ1xuY29uc3QgRVhQT1JUX0FMTF9ERUNMQVJBVElPTiA9ICdFeHBvcnRBbGxEZWNsYXJhdGlvbidcbmNvbnN0IElNUE9SVF9ERUNMQVJBVElPTiA9ICdJbXBvcnREZWNsYXJhdGlvbidcbmNvbnN0IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSID0gJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcidcbmNvbnN0IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiA9ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJ1xuY29uc3QgVkFSSUFCTEVfREVDTEFSQVRJT04gPSAnVmFyaWFibGVEZWNsYXJhdGlvbidcbmNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0gJ0Z1bmN0aW9uRGVjbGFyYXRpb24nXG5jb25zdCBDTEFTU19ERUNMQVJBVElPTiA9ICdDbGFzc0RlY2xhcmF0aW9uJ1xuY29uc3QgSU5URVJGQUNFX0RFQ0xBUkFUSU9OID0gJ0ludGVyZmFjZURlY2xhcmF0aW9uJ1xuY29uc3QgVFlQRV9BTElBUyA9ICdUeXBlQWxpYXMnXG5jb25zdCBUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04gPSAnVFNJbnRlcmZhY2VEZWNsYXJhdGlvbidcbmNvbnN0IFRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04gPSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbidcbmNvbnN0IFRTX0VOVU1fREVDTEFSQVRJT04gPSAnVFNFbnVtRGVjbGFyYXRpb24nXG5jb25zdCBERUZBVUxUID0gJ2RlZmF1bHQnXG5cbmZ1bmN0aW9uIGZvckVhY2hEZWNsYXJhdGlvbklkZW50aWZpZXIoZGVjbGFyYXRpb24sIGNiKSB7XG4gIGlmIChkZWNsYXJhdGlvbikge1xuICAgIGlmIChcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IEZVTkNUSU9OX0RFQ0xBUkFUSU9OIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBDTEFTU19ERUNMQVJBVElPTiB8fFxuICAgICAgZGVjbGFyYXRpb24udHlwZSA9PT0gSU5URVJGQUNFX0RFQ0xBUkFUSU9OIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBUWVBFX0FMSUFTIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX0VOVU1fREVDTEFSQVRJT05cbiAgICApIHtcbiAgICAgIGNiKGRlY2xhcmF0aW9uLmlkLm5hbWUpXG4gICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBWQVJJQUJMRV9ERUNMQVJBVElPTikge1xuICAgICAgZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKHsgaWQgfSkgPT4ge1xuICAgICAgICBjYihpZC5uYW1lKVxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBMaXN0IG9mIGltcG9ydHMgcGVyIGZpbGUuXG4gKlxuICogUmVwcmVzZW50ZWQgYnkgYSB0d28tbGV2ZWwgTWFwIHRvIGEgU2V0IG9mIGlkZW50aWZpZXJzLiBUaGUgdXBwZXItbGV2ZWwgTWFwXG4gKiBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIG1vZHVsZXMgY29udGFpbmluZyB0aGUgaW1wb3J0cywgd2hpbGUgdGhlXG4gKiBsb3dlci1sZXZlbCBNYXAga2V5cyBhcmUgdGhlIHBhdGhzIHRvIHRoZSBmaWxlcyB3aGljaCBhcmUgYmVpbmcgaW1wb3J0ZWRcbiAqIGZyb20uIExhc3RseSwgdGhlIFNldCBvZiBpZGVudGlmaWVycyBjb250YWlucyBlaXRoZXIgbmFtZXMgYmVpbmcgaW1wb3J0ZWRcbiAqIG9yIGEgc3BlY2lhbCBBU1Qgbm9kZSBuYW1lIGxpc3RlZCBhYm92ZSAoZS5nIEltcG9ydERlZmF1bHRTcGVjaWZpZXIpLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlIGEgZmlsZSBuYW1lZCBmb28uanMgY29udGFpbmluZzpcbiAqXG4gKiAgIGltcG9ydCB7IG8yIH0gZnJvbSAnLi9iYXIuanMnO1xuICpcbiAqIFRoZW4gd2Ugd2lsbCBoYXZlIGEgc3RydWN0dXJlIHRoYXQgbG9va3MgbGlrZTpcbiAqXG4gKiAgIE1hcCB7ICdmb28uanMnID0+IE1hcCB7ICdiYXIuanMnID0+IFNldCB7ICdvMicgfSB9IH1cbiAqXG4gKiBAdHlwZSB7TWFwPHN0cmluZywgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+Pn1cbiAqL1xuY29uc3QgaW1wb3J0TGlzdCA9IG5ldyBNYXAoKVxuXG4vKipcbiAqIExpc3Qgb2YgZXhwb3J0cyBwZXIgZmlsZS5cbiAqXG4gKiBSZXByZXNlbnRlZCBieSBhIHR3by1sZXZlbCBNYXAgdG8gYW4gb2JqZWN0IG9mIG1ldGFkYXRhLiBUaGUgdXBwZXItbGV2ZWwgTWFwXG4gKiBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIG1vZHVsZXMgY29udGFpbmluZyB0aGUgZXhwb3J0cywgd2hpbGUgdGhlXG4gKiBsb3dlci1sZXZlbCBNYXAga2V5cyBhcmUgdGhlIHNwZWNpZmljIGlkZW50aWZpZXJzIG9yIHNwZWNpYWwgQVNUIG5vZGUgbmFtZXNcbiAqIGJlaW5nIGV4cG9ydGVkLiBUaGUgbGVhZi1sZXZlbCBtZXRhZGF0YSBvYmplY3QgYXQgdGhlIG1vbWVudCBvbmx5IGNvbnRhaW5zIGFcbiAqIGB3aGVyZVVzZWRgIHByb3BvZXJ0eSwgd2hpY2ggY29udGFpbnMgYSBTZXQgb2YgcGF0aHMgdG8gbW9kdWxlcyB0aGF0IGltcG9ydFxuICogdGhlIG5hbWUuXG4gKlxuICogRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmUgYSBmaWxlIG5hbWVkIGJhci5qcyBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgZXhwb3J0czpcbiAqXG4gKiAgIGNvbnN0IG8yID0gJ2Jhcic7XG4gKiAgIGV4cG9ydCB7IG8yIH07XG4gKlxuICogQW5kIGEgZmlsZSBuYW1lZCBmb28uanMgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGltcG9ydDpcbiAqXG4gKiAgIGltcG9ydCB7IG8yIH0gZnJvbSAnLi9iYXIuanMnO1xuICpcbiAqIFRoZW4gd2Ugd2lsbCBoYXZlIGEgc3RydWN0dXJlIHRoYXQgbG9va3MgbGlrZTpcbiAqXG4gKiAgIE1hcCB7ICdiYXIuanMnID0+IE1hcCB7ICdvMicgPT4geyB3aGVyZVVzZWQ6IFNldCB7ICdmb28uanMnIH0gfSB9IH1cbiAqXG4gKiBAdHlwZSB7TWFwPHN0cmluZywgTWFwPHN0cmluZywgb2JqZWN0Pj59XG4gKi9cbmNvbnN0IGV4cG9ydExpc3QgPSBuZXcgTWFwKClcblxuY29uc3QgaWdub3JlZEZpbGVzID0gbmV3IFNldCgpXG5jb25zdCBmaWxlc091dHNpZGVTcmMgPSBuZXcgU2V0KClcblxuY29uc3QgaXNOb2RlTW9kdWxlID0gcGF0aCA9PiB7XG4gIHJldHVybiAvXFwvKG5vZGVfbW9kdWxlcylcXC8vLnRlc3QocGF0aClcbn1cblxuLyoqXG4gKiByZWFkIGFsbCBmaWxlcyBtYXRjaGluZyB0aGUgcGF0dGVybnMgaW4gc3JjIGFuZCBpZ25vcmVFeHBvcnRzXG4gKlxuICogcmV0dXJuIGFsbCBmaWxlcyBtYXRjaGluZyBzcmMgcGF0dGVybiwgd2hpY2ggYXJlIG5vdCBtYXRjaGluZyB0aGUgaWdub3JlRXhwb3J0cyBwYXR0ZXJuXG4gKi9cbmNvbnN0IHJlc29sdmVGaWxlcyA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpXG5cbiAgY29uc3Qgc3JjRmlsZXMgPSBuZXcgU2V0KClcbiAgY29uc3Qgc3JjRmlsZUxpc3QgPSBsaXN0RmlsZXNUb1Byb2Nlc3Moc3JjLCBleHRlbnNpb25zKVxuXG4gIC8vIHByZXBhcmUgbGlzdCBvZiBpZ25vcmVkIGZpbGVzXG4gIGNvbnN0IGlnbm9yZWRGaWxlc0xpc3QgPSAgbGlzdEZpbGVzVG9Qcm9jZXNzKGlnbm9yZUV4cG9ydHMsIGV4dGVuc2lvbnMpXG4gIGlnbm9yZWRGaWxlc0xpc3QuZm9yRWFjaCgoeyBmaWxlbmFtZSB9KSA9PiBpZ25vcmVkRmlsZXMuYWRkKGZpbGVuYW1lKSlcblxuICAvLyBwcmVwYXJlIGxpc3Qgb2Ygc291cmNlIGZpbGVzLCBkb24ndCBjb25zaWRlciBmaWxlcyBmcm9tIG5vZGVfbW9kdWxlc1xuICBzcmNGaWxlTGlzdC5maWx0ZXIoKHsgZmlsZW5hbWUgfSkgPT4gIWlzTm9kZU1vZHVsZShmaWxlbmFtZSkpLmZvckVhY2goKHsgZmlsZW5hbWUgfSkgPT4ge1xuICAgIHNyY0ZpbGVzLmFkZChmaWxlbmFtZSlcbiAgfSlcbiAgcmV0dXJuIHNyY0ZpbGVzXG59XG5cbi8qKlxuICogcGFyc2UgYWxsIHNvdXJjZSBmaWxlcyBhbmQgYnVpbGQgdXAgMiBtYXBzIGNvbnRhaW5pbmcgdGhlIGV4aXN0aW5nIGltcG9ydHMgYW5kIGV4cG9ydHNcbiAqL1xuY29uc3QgcHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzID0gKHNyY0ZpbGVzLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IGV4cG9ydEFsbCA9IG5ldyBNYXAoKVxuICBzcmNGaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgIGNvbnN0IGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICBjb25zdCBpbXBvcnRzID0gbmV3IE1hcCgpXG4gICAgY29uc3QgY3VycmVudEV4cG9ydHMgPSBFeHBvcnRzLmdldChmaWxlLCBjb250ZXh0KVxuICAgIGlmIChjdXJyZW50RXhwb3J0cykge1xuICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIHJlZXhwb3J0cywgaW1wb3J0czogbG9jYWxJbXBvcnRMaXN0LCBuYW1lc3BhY2UgIH0gPSBjdXJyZW50RXhwb3J0c1xuXG4gICAgICAvLyBkZXBlbmRlbmNpZXMgPT09IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKGdldERlcGVuZGVuY3kgPT4ge1xuICAgICAgICBjb25zdCBkZXBlbmRlbmN5ID0gZ2V0RGVwZW5kZW5jeSgpXG4gICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RXhwb3J0QWxsLmFkZChkZXBlbmRlbmN5LnBhdGgpXG4gICAgICB9KVxuICAgICAgZXhwb3J0QWxsLnNldChmaWxlLCBjdXJyZW50RXhwb3J0QWxsKVxuXG4gICAgICByZWV4cG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVleHBvcnQgPSAgdmFsdWUuZ2V0SW1wb3J0KClcbiAgICAgICAgaWYgKCFyZWV4cG9ydCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGxldCBsb2NhbEltcG9ydCA9IGltcG9ydHMuZ2V0KHJlZXhwb3J0LnBhdGgpXG4gICAgICAgIGxldCBjdXJyZW50VmFsdWVcbiAgICAgICAgaWYgKHZhbHVlLmxvY2FsID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gdmFsdWUubG9jYWxcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGxvY2FsSW1wb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxvY2FsSW1wb3J0ID0gbmV3IFNldChbLi4ubG9jYWxJbXBvcnQsIGN1cnJlbnRWYWx1ZV0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSBuZXcgU2V0KFtjdXJyZW50VmFsdWVdKVxuICAgICAgICB9XG4gICAgICAgIGltcG9ydHMuc2V0KHJlZXhwb3J0LnBhdGgsIGxvY2FsSW1wb3J0KVxuICAgICAgfSlcblxuICAgICAgbG9jYWxJbXBvcnRMaXN0LmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGlzTm9kZU1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxvY2FsSW1wb3J0ID0gaW1wb3J0cy5nZXQoa2V5KVxuICAgICAgICBpZiAodHlwZW9mIGxvY2FsSW1wb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxvY2FsSW1wb3J0ID0gbmV3IFNldChbLi4ubG9jYWxJbXBvcnQsIC4uLnZhbHVlLmltcG9ydGVkU3BlY2lmaWVyc10pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSB2YWx1ZS5pbXBvcnRlZFNwZWNpZmllcnNcbiAgICAgICAgfVxuICAgICAgICBpbXBvcnRzLnNldChrZXksIGxvY2FsSW1wb3J0KVxuICAgICAgfSlcbiAgICAgIGltcG9ydExpc3Quc2V0KGZpbGUsIGltcG9ydHMpXG5cbiAgICAgIC8vIGJ1aWxkIHVwIGV4cG9ydCBsaXN0IG9ubHksIGlmIGZpbGUgaXMgbm90IGlnbm9yZWRcbiAgICAgIGlmIChpZ25vcmVkRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbmFtZXNwYWNlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gREVGQVVMVCkge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBleHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgZXhwb3J0cy5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfSlcbiAgICBleHBvcnRMaXN0LnNldChmaWxlLCBleHBvcnRzKVxuICB9KVxuICBleHBvcnRBbGwuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIHZhbHVlLmZvckVhY2godmFsID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsKVxuICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGN1cnJlbnRFeHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGtleSlcbiAgICB9KVxuICB9KVxufVxuXG4vKipcbiAqIHRyYXZlcnNlIHRocm91Z2ggYWxsIGltcG9ydHMgYW5kIGFkZCB0aGUgcmVzcGVjdGl2ZSBwYXRoIHRvIHRoZSB3aGVyZVVzZWQtbGlzdFxuICogb2YgdGhlIGNvcnJlc3BvbmRpbmcgZXhwb3J0XG4gKi9cbmNvbnN0IGRldGVybWluZVVzYWdlID0gKCkgPT4ge1xuICBpbXBvcnRMaXN0LmZvckVhY2goKGxpc3RWYWx1ZSwgbGlzdEtleSkgPT4ge1xuICAgIGxpc3RWYWx1ZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoa2V5KVxuICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGN1cnJlbnRJbXBvcnQgPT4ge1xuICAgICAgICAgIGxldCBzcGVjaWZpZXJcbiAgICAgICAgICBpZiAoY3VycmVudEltcG9ydCA9PT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW1wb3J0ID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzcGVjaWZpZXIgPSBjdXJyZW50SW1wb3J0XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2Ygc3BlY2lmaWVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZXhwb3J0U3RhdGVtZW50ID0gZXhwb3J0cy5nZXQoc3BlY2lmaWVyKVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRTdGF0ZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgd2hlcmVVc2VkIH0gPSBleHBvcnRTdGF0ZW1lbnRcbiAgICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChsaXN0S2V5KVxuICAgICAgICAgICAgICBleHBvcnRzLnNldChzcGVjaWZpZXIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5cbmNvbnN0IGdldFNyYyA9IHNyYyA9PiB7XG4gIGlmIChzcmMpIHtcbiAgICByZXR1cm4gc3JjXG4gIH1cbiAgcmV0dXJuIFtwcm9jZXNzLmN3ZCgpXVxufVxuXG4vKipcbiAqIHByZXBhcmUgdGhlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgYW5kIGV4cG9ydHMgLSBzaG91bGQgb25seSBiZSBleGVjdXRlZCBvbmNlIGF0XG4gKiB0aGUgc3RhcnQgb2YgYSBuZXcgZXNsaW50IHJ1blxuICovXG5sZXQgc3JjRmlsZXNcbmxldCBsYXN0UHJlcGFyZUtleVxuY29uc3QgZG9QcmVwYXJhdGlvbiA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgcHJlcGFyZUtleSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBzcmM6IChzcmMgfHwgW10pLnNvcnQoKSxcbiAgICBpZ25vcmVFeHBvcnRzOiAoaWdub3JlRXhwb3J0cyB8fCBbXSkuc29ydCgpLFxuICAgIGV4dGVuc2lvbnM6IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpLnNvcnQoKSxcbiAgfSlcbiAgaWYgKHByZXBhcmVLZXkgPT09IGxhc3RQcmVwYXJlS2V5KSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpbXBvcnRMaXN0LmNsZWFyKClcbiAgZXhwb3J0TGlzdC5jbGVhcigpXG4gIGlnbm9yZWRGaWxlcy5jbGVhcigpXG4gIGZpbGVzT3V0c2lkZVNyYy5jbGVhcigpXG5cbiAgc3JjRmlsZXMgPSByZXNvbHZlRmlsZXMoZ2V0U3JjKHNyYyksIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpXG4gIHByZXBhcmVJbXBvcnRzQW5kRXhwb3J0cyhzcmNGaWxlcywgY29udGV4dClcbiAgZGV0ZXJtaW5lVXNhZ2UoKVxuICBsYXN0UHJlcGFyZUtleSA9IHByZXBhcmVLZXlcbn1cblxuY29uc3QgbmV3TmFtZXNwYWNlSW1wb3J0RXhpc3RzID0gc3BlY2lmaWVycyA9PlxuICBzcGVjaWZpZXJzLnNvbWUoKHsgdHlwZSB9KSA9PiB0eXBlID09PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcblxuY29uc3QgbmV3RGVmYXVsdEltcG9ydEV4aXN0cyA9IHNwZWNpZmllcnMgPT5cbiAgc3BlY2lmaWVycy5zb21lKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuXG5jb25zdCBmaWxlSXNJblBrZyA9IGZpbGUgPT4ge1xuICBjb25zdCB7IHBhdGgsIHBrZyB9ID0gcmVhZFBrZ1VwLnN5bmMoe2N3ZDogZmlsZSwgbm9ybWFsaXplOiBmYWxzZX0pXG4gIGNvbnN0IGJhc2VQYXRoID0gZGlybmFtZShwYXRoKVxuXG4gIGNvbnN0IGNoZWNrUGtnRmllbGRTdHJpbmcgPSBwa2dGaWVsZCA9PiB7XG4gICAgaWYgKGpvaW4oYmFzZVBhdGgsIHBrZ0ZpZWxkKSA9PT0gZmlsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICB9XG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZE9iamVjdCA9IHBrZ0ZpZWxkID0+IHtcbiAgICAgIGNvbnN0IHBrZ0ZpZWxkRmlsZXMgPSB2YWx1ZXMocGtnRmllbGQpLm1hcCh2YWx1ZSA9PiBqb2luKGJhc2VQYXRoLCB2YWx1ZSkpXG4gICAgICBpZiAoaW5jbHVkZXMocGtnRmllbGRGaWxlcywgZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNoZWNrUGtnRmllbGQgPSBwa2dGaWVsZCA9PiB7XG4gICAgaWYgKHR5cGVvZiBwa2dGaWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBjaGVja1BrZ0ZpZWxkU3RyaW5nKHBrZ0ZpZWxkKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcGtnRmllbGQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gY2hlY2tQa2dGaWVsZE9iamVjdChwa2dGaWVsZClcbiAgICB9XG4gIH1cblxuICBpZiAocGtnLnByaXZhdGUgPT09IHRydWUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChwa2cuYmluKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGQocGtnLmJpbikpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKHBrZy5icm93c2VyKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGQocGtnLmJyb3dzZXIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwa2cubWFpbikge1xuICAgIGlmIChjaGVja1BrZ0ZpZWxkU3RyaW5nKHBrZy5tYWluKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczogeyB1cmw6IGRvY3NVcmwoJ25vLXVudXNlZC1tb2R1bGVzJykgfSxcbiAgICBzY2hlbWE6IFt7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHNyYzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnZmlsZXMvcGF0aHMgdG8gYmUgYW5hbHl6ZWQgKG9ubHkgZm9yIHVudXNlZCBleHBvcnRzKScsXG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaWdub3JlRXhwb3J0czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ2ZpbGVzL3BhdGhzIGZvciB3aGljaCB1bnVzZWQgZXhwb3J0cyB3aWxsIG5vdCBiZSByZXBvcnRlZCAoZS5nIG1vZHVsZSBlbnRyeSBwb2ludHMpJyxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBtaXNzaW5nRXhwb3J0czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAncmVwb3J0IG1vZHVsZXMgd2l0aG91dCBhbnkgZXhwb3J0cycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB1bnVzZWRFeHBvcnRzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdyZXBvcnQgZXhwb3J0cyB3aXRob3V0IGFueSB1c2FnZScsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG5vdDoge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdW51c2VkRXhwb3J0czogeyBlbnVtOiBbZmFsc2VdIH0sXG4gICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW2ZhbHNlXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGFueU9mOlt7XG4gICAgICAgIG5vdDoge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVudXNlZEV4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsnbWlzc2luZ0V4cG9ydHMnXSxcbiAgICAgIH0sIHtcbiAgICAgICAgbm90OiB7XG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsndW51c2VkRXhwb3J0cyddLFxuICAgICAgfSwge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdW51c2VkRXhwb3J0czogeyBlbnVtOiBbdHJ1ZV0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsndW51c2VkRXhwb3J0cyddLFxuICAgICAgfSwge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ21pc3NpbmdFeHBvcnRzJ10sXG4gICAgICB9XSxcbiAgICB9XSxcbiAgfSxcblxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNyYyxcbiAgICAgIGlnbm9yZUV4cG9ydHMgPSBbXSxcbiAgICAgIG1pc3NpbmdFeHBvcnRzLFxuICAgICAgdW51c2VkRXhwb3J0cyxcbiAgICB9ID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG5cbiAgICBpZiAodW51c2VkRXhwb3J0cykge1xuICAgICAgZG9QcmVwYXJhdGlvbihzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuXG4gICAgY29uc3QgY2hlY2tFeHBvcnRQcmVzZW5jZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCFtaXNzaW5nRXhwb3J0cykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4cG9ydENvdW50ID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcbiAgICAgIGNvbnN0IGV4cG9ydEFsbCA9IGV4cG9ydENvdW50LmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGV4cG9ydENvdW50LmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcblxuICAgICAgZXhwb3J0Q291bnQuZGVsZXRlKEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICBleHBvcnRDb3VudC5kZWxldGUoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICBpZiAoZXhwb3J0Q291bnQuc2l6ZSA8IDEpIHtcbiAgICAgICAgLy8gbm9kZS5ib2R5WzBdID09PSAndW5kZWZpbmVkJyBvbmx5IGhhcHBlbnMsIGlmIGV2ZXJ5dGhpbmcgaXMgY29tbWVudGVkIG91dCBpbiB0aGUgZmlsZVxuICAgICAgICAvLyBiZWluZyBsaW50ZWRcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZS5ib2R5WzBdID8gbm9kZS5ib2R5WzBdIDogbm9kZSwgJ05vIGV4cG9ydHMgZm91bmQnKVxuICAgICAgfVxuICAgICAgZXhwb3J0Q291bnQuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIGV4cG9ydEFsbClcbiAgICAgIGV4cG9ydENvdW50LnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cylcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja1VzYWdlID0gKG5vZGUsIGV4cG9ydGVkVmFsdWUpID0+IHtcbiAgICAgIGlmICghdW51c2VkRXhwb3J0cykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlSXNJblBrZyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVzT3V0c2lkZVNyYy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIG1ha2Ugc3VyZSBmaWxlIHRvIGJlIGxpbnRlZCBpcyBpbmNsdWRlZCBpbiBzb3VyY2UgZmlsZXNcbiAgICAgIGlmICghc3JjRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHNyY0ZpbGVzID0gcmVzb2x2ZUZpbGVzKGdldFNyYyhzcmMpLCBpZ25vcmVFeHBvcnRzLCBjb250ZXh0KVxuICAgICAgICBpZiAoIXNyY0ZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICAgIGZpbGVzT3V0c2lkZVNyYy5hZGQoZmlsZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcblxuICAgICAgLy8gc3BlY2lhbCBjYXNlOiBleHBvcnQgKiBmcm9tXG4gICAgICBjb25zdCBleHBvcnRBbGwgPSBleHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgaWYgKHR5cGVvZiBleHBvcnRBbGwgIT09ICd1bmRlZmluZWQnICYmIGV4cG9ydGVkVmFsdWUgIT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUikge1xuICAgICAgICBpZiAoZXhwb3J0QWxsLndoZXJlVXNlZC5zaXplID4gMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHNwZWNpYWwgY2FzZTogbmFtZXNwYWNlIGltcG9ydFxuICAgICAgY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuICAgICAgaWYgKHR5cGVvZiBuYW1lc3BhY2VJbXBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAobmFtZXNwYWNlSW1wb3J0cy53aGVyZVVzZWQuc2l6ZSA+IDApIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzTGlzdCB3aWxsIGFsd2F5cyBtYXAgYW55IGltcG9ydGVkIHZhbHVlIG9mICdkZWZhdWx0JyB0byAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcidcbiAgICAgIGNvbnN0IGV4cG9ydHNLZXkgPSBleHBvcnRlZFZhbHVlID09PSBERUZBVUxUID8gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSIDogZXhwb3J0ZWRWYWx1ZVxuXG4gICAgICBjb25zdCBleHBvcnRTdGF0ZW1lbnQgPSBleHBvcnRzLmdldChleHBvcnRzS2V5KVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGV4cG9ydHNLZXkgPT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiA/IERFRkFVTFQgOiBleHBvcnRzS2V5XG5cbiAgICAgIGlmICh0eXBlb2YgZXhwb3J0U3RhdGVtZW50ICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICAgIGlmIChleHBvcnRTdGF0ZW1lbnQud2hlcmVVc2VkLnNpemUgPCAxKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgYGV4cG9ydGVkIGRlY2xhcmF0aW9uICcke3ZhbHVlfScgbm90IHVzZWQgd2l0aGluIG90aGVyIG1vZHVsZXNgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGBleHBvcnRlZCBkZWNsYXJhdGlvbiAnJHt2YWx1ZX0nIG5vdCB1c2VkIHdpdGhpbiBvdGhlciBtb2R1bGVzYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGV4cG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVFeHBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcblxuICAgICAgLy8gbmV3IG1vZHVsZSBoYXMgYmVlbiBjcmVhdGVkIGR1cmluZyBydW50aW1lXG4gICAgICAvLyBpbmNsdWRlIGl0IGluIGZ1cnRoZXIgcHJvY2Vzc2luZ1xuICAgICAgaWYgKHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0V4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgIGNvbnN0IG5ld0V4cG9ydElkZW50aWZpZXJzID0gbmV3IFNldCgpXG5cbiAgICAgIG5vZGUuYm9keS5mb3JFYWNoKCh7IHR5cGUsIGRlY2xhcmF0aW9uLCBzcGVjaWZpZXJzIH0pID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09IEVYUE9SVF9ERUZBVUxUX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgbmV3RXhwb3J0SWRlbnRpZmllcnMuYWRkKElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gRVhQT1JUX05BTUVEX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgaWYgKHNwZWNpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGlmIChzcGVjaWZpZXIuZXhwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGZvckVhY2hEZWNsYXJhdGlvbklkZW50aWZpZXIoZGVjbGFyYXRpb24sIChuYW1lKSA9PiB7XG4gICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQobmFtZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyBvbGQgZXhwb3J0cyBleGlzdCB3aXRoaW4gbGlzdCBvZiBuZXcgZXhwb3J0cyBpZGVudGlmaWVyczogYWRkIHRvIG1hcCBvZiBuZXcgZXhwb3J0c1xuICAgICAgZXhwb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmIChuZXdFeHBvcnRJZGVudGlmaWVycy5oYXMoa2V5KSkge1xuICAgICAgICAgIG5ld0V4cG9ydHMuc2V0KGtleSwgdmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIG5ldyBleHBvcnQgaWRlbnRpZmllcnMgYWRkZWQ6IGFkZCB0byBtYXAgb2YgbmV3IGV4cG9ydHNcbiAgICAgIG5ld0V4cG9ydElkZW50aWZpZXJzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKCFleHBvcnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgbmV3RXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIHByZXNlcnZlIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzcGFjZSBpbXBvcnRzXG4gICAgICBsZXQgZXhwb3J0QWxsID0gZXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgIGxldCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG5cbiAgICAgIGlmICh0eXBlb2YgbmFtZXNwYWNlSW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbmFtZXNwYWNlSW1wb3J0cyA9IHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfVxuICAgICAgfVxuXG4gICAgICBuZXdFeHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCBleHBvcnRBbGwpXG4gICAgICBuZXdFeHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cylcbiAgICAgIGV4cG9ydExpc3Quc2V0KGZpbGUsIG5ld0V4cG9ydHMpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVJbXBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCF1bnVzZWRFeHBvcnRzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsZXQgb2xkSW1wb3J0UGF0aHMgPSBpbXBvcnRMaXN0LmdldChmaWxlKVxuICAgICAgaWYgKHR5cGVvZiBvbGRJbXBvcnRQYXRocyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb2xkSW1wb3J0UGF0aHMgPSBuZXcgTWFwKClcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkTmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3TmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGNvbnN0IG5ld0V4cG9ydEFsbCA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGREZWZhdWx0SW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3RGVmYXVsdEltcG9ydHMgPSBuZXcgU2V0KClcblxuICAgICAgY29uc3Qgb2xkSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgY29uc3QgbmV3SW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgb2xkSW1wb3J0UGF0aHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUuaGFzKEVYUE9SVF9BTExfREVDTEFSQVRJT04pKSB7XG4gICAgICAgICAgb2xkRXhwb3J0QWxsLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikpIHtcbiAgICAgICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpKSB7XG4gICAgICAgICAgb2xkRGVmYXVsdEltcG9ydHMuYWRkKGtleSlcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgaWYgKHZhbCAhPT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIgJiZcbiAgICAgICAgICAgICAgdmFsICE9PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgIG9sZEltcG9ydHMuc2V0KHZhbCwga2V5KVxuICAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIG5vZGUuYm9keS5mb3JFYWNoKGFzdE5vZGUgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWRQYXRoXG5cbiAgICAgICAgLy8gc3VwcG9ydCBmb3IgZXhwb3J0IHsgdmFsdWUgfSBmcm9tICdtb2R1bGUnXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIGlmIChhc3ROb2RlLnNvdXJjZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICAgIGFzdE5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBzcGVjaWZpZXIubG9jYWwubmFtZVxuICAgICAgICAgICAgICBpZiAoc3BlY2lmaWVyLmxvY2FsLm5hbWUgPT09IERFRkFVTFQpIHtcbiAgICAgICAgICAgICAgICBuZXdEZWZhdWx0SW1wb3J0cy5hZGQocmVzb2x2ZWRQYXRoKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0ltcG9ydHMuc2V0KG5hbWUsIHJlc29sdmVkUGF0aClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXN0Tm9kZS50eXBlID09PSBFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICBuZXdFeHBvcnRBbGwuYWRkKHJlc29sdmVkUGF0aClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IElNUE9SVF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIHJlc29sdmVkUGF0aCA9IHJlc29sdmUoYXN0Tm9kZS5zb3VyY2UucmF3LnJlcGxhY2UoLygnfFwiKS9nLCAnJyksIGNvbnRleHQpXG4gICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc05vZGVNb2R1bGUocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5ld05hbWVzcGFjZUltcG9ydEV4aXN0cyhhc3ROb2RlLnNwZWNpZmllcnMpKSB7XG4gICAgICAgICAgICBuZXdOYW1lc3BhY2VJbXBvcnRzLmFkZChyZXNvbHZlZFBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5ld0RlZmF1bHRJbXBvcnRFeGlzdHMoYXN0Tm9kZS5zcGVjaWZpZXJzKSkge1xuICAgICAgICAgICAgbmV3RGVmYXVsdEltcG9ydHMuYWRkKHJlc29sdmVkUGF0aClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhc3ROb2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIgfHxcbiAgICAgICAgICAgICAgICBzcGVjaWZpZXIudHlwZSA9PT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdJbXBvcnRzLnNldChzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSwgcmVzb2x2ZWRQYXRoKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG5ld0V4cG9ydEFsbC5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFvbGRFeHBvcnRBbGwuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpXG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB3aGVyZVVzZWQgPSBuZXcgU2V0KClcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICAgIGV4cG9ydHMuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGRFeHBvcnRBbGwuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghbmV3RXhwb3J0QWxsLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGltcG9ydHMuZGVsZXRlKEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbmV3RGVmYXVsdEltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkRGVmYXVsdEltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICAgIG9sZEltcG9ydFBhdGhzLnNldCh2YWx1ZSwgaW1wb3J0cylcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgbGV0IGN1cnJlbnRFeHBvcnRcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICAgICAgICBleHBvcnRMaXN0LnNldCh2YWx1ZSwgZXhwb3J0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2hlcmVVc2VkID0gbmV3IFNldCgpXG4gICAgICAgICAgICB3aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgICBleHBvcnRzLnNldChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGREZWZhdWx0SW1wb3J0cy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFuZXdEZWZhdWx0SW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuZGVsZXRlKGZpbGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBuZXdOYW1lc3BhY2VJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW9sZE5hbWVzcGFjZUltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICAgICAgb2xkSW1wb3J0UGF0aHMuc2V0KHZhbHVlLCBpbXBvcnRzKVxuXG4gICAgICAgICAgbGV0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBsZXQgY3VycmVudEV4cG9ydFxuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKVxuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW5ld05hbWVzcGFjZUltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaW1wb3J0cy5kZWxldGUoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5kZWxldGUoZmlsZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG5ld0ltcG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoIW9sZEltcG9ydHMuaGFzKGtleSkpIHtcbiAgICAgICAgICBsZXQgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpZiAodHlwZW9mIGltcG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpbXBvcnRzID0gbmV3IFNldCgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGltcG9ydHMuYWRkKGtleSlcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpXG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KGtleSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKVxuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgb2xkSW1wb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghbmV3SW1wb3J0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaW1wb3J0cy5kZWxldGUoa2V5KVxuXG4gICAgICAgICAgY29uc3QgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChrZXkpXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ1Byb2dyYW06ZXhpdCc6IG5vZGUgPT4ge1xuICAgICAgICB1cGRhdGVFeHBvcnRVc2FnZShub2RlKVxuICAgICAgICB1cGRhdGVJbXBvcnRVc2FnZShub2RlKVxuICAgICAgICBjaGVja0V4cG9ydFByZXNlbmNlKG5vZGUpXG4gICAgICB9LFxuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IG5vZGUgPT4ge1xuICAgICAgICBjaGVja1VzYWdlKG5vZGUsIElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgIH0sXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IG5vZGUgPT4ge1xuICAgICAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSlcbiAgICAgICAgfSlcbiAgICAgICAgZm9yRWFjaERlY2xhcmF0aW9uSWRlbnRpZmllcihub2RlLmRlY2xhcmF0aW9uLCAobmFtZSkgPT4ge1xuICAgICAgICAgIGNoZWNrVXNhZ2Uobm9kZSwgbmFtZSlcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js b/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js
index e4c6d2b..10b6574 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js
@@ -1,50 +1,35 @@
 'use strict';
 
+
+
+
 var _ignore = require('eslint-module-utils/ignore');
-
-var _moduleVisitor = require('eslint-module-utils/moduleVisitor');
-
-var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
-
-var _resolve = require('eslint-module-utils/resolve');
-
-var _resolve2 = _interopRequireDefault(_resolve);
-
-var _path = require('path');
-
-var _path2 = _interopRequireDefault(_path);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor);
+var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);
+var _path = require('path');var _path2 = _interopRequireDefault(_path);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 /**
- * convert a potentially relative path from node utils into a true
- * relative path.
- *
- * ../ -> ..
- * ./ -> .
- * .foo/bar -> ./.foo/bar
- * ..foo/bar -> ./..foo/bar
- * foo/bar -> ./foo/bar
- *
- * @param relativePath {string} relative posix path potentially missing leading './'
- * @returns {string} relative posix path that always starts with a ./
- **/
+                                                                                                                                                                                     * convert a potentially relative path from node utils into a true
+                                                                                                                                                                                     * relative path.
+                                                                                                                                                                                     *
+                                                                                                                                                                                     * ../ -> ..
+                                                                                                                                                                                     * ./ -> .
+                                                                                                                                                                                     * .foo/bar -> ./.foo/bar
+                                                                                                                                                                                     * ..foo/bar -> ./..foo/bar
+                                                                                                                                                                                     * foo/bar -> ./foo/bar
+                                                                                                                                                                                     *
+                                                                                                                                                                                     * @param relativePath {string} relative posix path potentially missing leading './'
+                                                                                                                                                                                     * @returns {string} relative posix path that always starts with a ./
+                                                                                                                                                                                     **/
 function toRelativePath(relativePath) {
   const stripped = relativePath.replace(/\/$/g, ''); // Remove trailing /
 
-  return (/^((\.\.)|(\.))($|\/)/.test(stripped) ? stripped : `./${stripped}`
-  );
+  return (/^((\.\.)|(\.))($|\/)/.test(stripped) ? stripped : `./${stripped}`);
 } /**
    * @fileOverview Ensures that there are no useless path segments
    * @author Thomas Grainger
-   */
-
-function normalize(fn) {
-  return toRelativePath(_path2.default.posix.normalize(fn));
+   */function normalize(fn) {return toRelativePath(_path2.default.posix.normalize(fn));
 }
 
 function countRelativeParents(pathSegments) {
@@ -55,36 +40,37 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('no-useless-path-segments')
-    },
+      url: (0, _docsUrl2.default)('no-useless-path-segments') },
+
 
     fixable: 'code',
 
-    schema: [{
+    schema: [
+    {
       type: 'object',
       properties: {
         commonjs: { type: 'boolean' },
-        noUselessIndex: { type: 'boolean' }
-      },
-      additionalProperties: false
-    }]
-  },
+        noUselessIndex: { type: 'boolean' } },
+
+      additionalProperties: false }] },
+
+
+
 
   create(context) {
     const currentDir = _path2.default.dirname(context.getFilename());
     const options = context.options[0];
 
-    function checkSourceValue(source) {
-      const importPath = source.value;
-
+    function checkSourceValue(source) {const
+      importPath = source.value;
 
       function reportWithProposedPath(proposedPath) {
         context.report({
           node: source,
           // Note: Using messageIds is not possible due to the support for ESLint 2 and 3
           message: `Useless path segments for "${importPath}", should be "${proposedPath}"`,
-          fix: fixer => proposedPath && fixer.replaceText(source, JSON.stringify(proposedPath))
-        });
+          fix: fixer => proposedPath && fixer.replaceText(source, JSON.stringify(proposedPath)) });
+
       }
 
       // Only relative imports are relevant for this rule --> Skip checking
@@ -101,7 +87,9 @@
       }
 
       const fileExtensions = (0, _ignore.getFileExtensions)(context.settings);
-      const regexUnnecessaryIndex = new RegExp(`.*\\/index(\\${Array.from(fileExtensions).join('|\\')})?$`);
+      const regexUnnecessaryIndex = new RegExp(
+      `.*\\/index(\\${Array.from(fileExtensions).join('|\\')})?$`);
+
 
       // Check if path contains unnecessary index (including a configured extension)
       if (options && options.noUselessIndex && regexUnnecessaryIndex.test(importPath)) {
@@ -142,10 +130,16 @@
       }
 
       // Report and propose minimal number of required relative parents
-      return reportWithProposedPath(toRelativePath(importPathSplit.slice(0, countExpectedRelativeParents).concat(importPathSplit.slice(countImportPathRelativeParents + diff)).join('/')));
+      return reportWithProposedPath(
+      toRelativePath(
+      importPathSplit.
+      slice(0, countExpectedRelativeParents).
+      concat(importPathSplit.slice(countImportPathRelativeParents + diff)).
+      join('/')));
+
+
     }
 
     return (0, _moduleVisitor2.default)(checkSourceValue, options);
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiXSwibmFtZXMiOlsidG9SZWxhdGl2ZVBhdGgiLCJyZWxhdGl2ZVBhdGgiLCJzdHJpcHBlZCIsInJlcGxhY2UiLCJ0ZXN0Iiwibm9ybWFsaXplIiwiZm4iLCJwYXRoIiwicG9zaXgiLCJjb3VudFJlbGF0aXZlUGFyZW50cyIsInBhdGhTZWdtZW50cyIsInJlZHVjZSIsInN1bSIsInBhdGhTZWdtZW50IiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY29tbW9uanMiLCJub1VzZWxlc3NJbmRleCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsImN1cnJlbnREaXIiLCJkaXJuYW1lIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZSIsImltcG9ydFBhdGgiLCJ2YWx1ZSIsInJlcG9ydFdpdGhQcm9wb3NlZFBhdGgiLCJwcm9wb3NlZFBhdGgiLCJyZXBvcnQiLCJub2RlIiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwicmVwbGFjZVRleHQiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRzV2l0aCIsInJlc29sdmVkUGF0aCIsIm5vcm1lZFBhdGgiLCJyZXNvbHZlZE5vcm1lZFBhdGgiLCJmaWxlRXh0ZW5zaW9ucyIsInNldHRpbmdzIiwicmVnZXhVbm5lY2Vzc2FyeUluZGV4IiwiUmVnRXhwIiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInBhcmVudERpcmVjdG9yeSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJleHBlY3RlZCIsInJlbGF0aXZlIiwiZXhwZWN0ZWRTcGxpdCIsInNwbGl0Iiwic2VwIiwiaW1wb3J0UGF0aFNwbGl0IiwiY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIiwiY291bnRFeHBl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WixFQUVHRyxNQUZILENBRVVMLGdCQUFnQkksS0FBaEIsQ0FBc0JILGlDQUFpQ0UsSUFBdkQsQ0FGVixFQUdHWixJQUhILENBR1EsR0FIUixDQURGLENBREssQ0FBUDtBQVFEOztBQUVELFdBQU8sNkJBQWN4QixnQkFBZCxFQUFnQ0QsT0FBaEMsQ0FBUDtBQUNEO0FBekdjLENBQWpCIiwiZmlsZSI6Im5vLXVzZWxlc3MtcGF0aC1zZWdtZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgdGhlcmUgYXJlIG5vIHVzZWxlc3MgcGF0aCBzZWdtZW50c1xuICogQGF1dGhvciBUaG9tYXMgR3JhaW5nZXJcbiAqL1xuXG5pbXBvcnQgeyBnZXRGaWxlRXh0ZW5zaW9ucyB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvaWdub3JlJ1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJ1xuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbi8qKlxuICogY29udmVydCBhIHBvdGVudGlhbGx5IHJlbGF0aXZlIHBhdGggZnJvbSBub2RlIHV0aWxzIGludG8gYSB0cnVlXG4gKiByZWxhdGl2ZSBwYXRoLlxuICpcbiAqIC4uLyAtPiAuLlxuICogLi8gLT4gLlxuICogLmZvby9iYXIgLT4gLi8uZm9vL2JhclxuICogLi5mb28vYmFyIC0+IC4vLi5mb28vYmFyXG4gKiBmb28vYmFyIC0+IC4vZm9vL2JhclxuICpcbiAqIEBwYXJhbSByZWxhdGl2ZVBhdGgge3N0cmluZ30gcmVsYXRpdmUgcG9zaXggcGF0aCBwb3RlbnRpYWxseSBtaXNzaW5nIGxlYWRpbmcgJy4vJ1xuICogQHJldHVybnMge3N0cmluZ30gcmVsYXRpdmUgcG9zaXggcGF0aCB0aGF0IGFsd2F5cyBzdGFydHMgd2l0aCBhIC4vXG4gKiovXG5mdW5jdGlvbiB0b1JlbGF0aXZlUGF0aChyZWxhdGl2ZVBhdGgpIHtcbiAgY29uc3Qgc3RyaXBwZWQgPSByZWxhdGl2ZVBhdGgucmVwbGFjZSgvXFwvJC9nLCAnJykgLy8gUmVtb3ZlIHRyYWlsaW5nIC9cblxuICByZXR1cm4gL14oKFxcLlxcLil8KFxcLikpKCR8XFwvKS8udGVzdChzdHJpcHBlZCkgPyBzdHJpcHBlZCA6IGAuLyR7c3RyaXBwZWR9YFxufVxuXG5mdW5jdGlvbiBub3JtYWxpemUoZm4pIHtcbiAgcmV0dXJuIHRvUmVsYXRpdmVQYXRoKHBhdGgucG9zaXgubm9ybWFsaXplKGZuKSlcbn1cblxuZnVuY3Rpb24gY291bnRSZWxhdGl2ZVBhcmVudHMocGF0aFNlZ21lbnRzKSB7XG4gIHJldHVybiBwYXRoU2VnbWVudHMucmVkdWNlKChzdW0sIHBhdGhTZWdtZW50KSA9PiBwYXRoU2VnbWVudCA9PT0gJy4uJyA/IHN1bSArIDEgOiBzdW0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJyksXG4gICAgfSxcblxuICAgIGZpeGFibGU6ICdjb2RlJyxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGNvbW1vbmpzOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgICAgIG5vVXNlbGVzc0luZGV4OiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgICB9LFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBjdXJyZW50RGlyID0gcGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSlcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdXG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZSkge1xuICAgICAgY29uc3QgeyB2YWx1ZTogaW1wb3J0UGF0aCB9ID0gc291cmNlXG5cbiAgICAgIGZ1bmN0aW9uIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgocHJvcG9zZWRQYXRoKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBzb3VyY2UsXG4gICAgICAgICAgLy8gTm90ZTogVXNpbmcgbWVzc2FnZUlkcyBpcyBub3QgcG9zc2libGUgZHVlIHRvIHRoZSBzdXBwb3J0IGZvciBFU0xpbnQgMiBhbmQgM1xuICAgICAgICAgIG1lc3NhZ2U6IGBVc2VsZXNzIHBhdGggc2VnbWVudHMgZm9yIFwiJHtpbXBvcnRQYXRofVwiLCBzaG91bGQgYmUgXCIke3Byb3Bvc2VkUGF0aH1cImAsXG4gICAgICAgICAgZml4OiBmaXhlciA9PiBwcm9wb3NlZFBhdGggJiYgZml4ZXIucmVwbGFjZVRleHQoc291cmNlLCBKU09OLnN0cmluZ2lmeShwcm9wb3NlZFBhdGgpKSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gT25seSByZWxhdGl2ZSBpbXBvcnRzIGFyZSByZWxldmFudCBmb3IgdGhpcyBydWxlIC0tPiBTa2lwIGNoZWNraW5nXG4gICAgICBpZiAoIWltcG9ydFBhdGguc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgcnVsZSB2aW9sYXRpb24gaWYgcGF0aCBpcyBub3QgdGhlIHNob3J0ZXN0IHBvc3NpYmxlXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlKGltcG9ydFBhdGgsIGNvbnRleHQpXG4gICAgICBjb25zdCBub3JtZWRQYXRoID0gbm9ybWFsaXplKGltcG9ydFBhdGgpXG4gICAgICBjb25zdCByZXNvbHZlZE5vcm1lZFBhdGggPSByZXNvbHZlKG5vcm1lZFBhdGgsIGNvbnRleHQpXG4gICAgICBpZiAobm9ybWVkUGF0aCAhPT0gaW1wb3J0UGF0aCAmJiByZXNvbHZlZFBhdGggPT09IHJlc29sdmVkTm9ybWVkUGF0aCkge1xuICAgICAgICByZXR1cm4gcmVwb3J0V2l0aFByb3Bvc2VkUGF0aChub3JtZWRQYXRoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9ucyA9IGdldEZpbGVFeHRlbnNpb25zKGNvbnRleHQuc2V0dGluZ3MpXG4gICAgICBjb25zdCByZWdleFVubmVjZXNzYXJ5SW5kZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICBgLipcXFxcL2luZGV4KFxcXFwke0FycmF5LmZyb20oZmlsZUV4dGVuc2lvbnMpLmpvaW4oJ3xcXFxcJyl9KT8kYFxuICAgICAgKVxuXG4gICAgICAvLyBDaGVjayBpZiBwYXRoIGNvbnRhaW5zIHVubmVjZXNzYXJ5IGluZGV4IChpbmNsdWRpbmcgYSBjb25maWd1cmVkIGV4dGVuc2lvbilcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubm9Vc2VsZXNzSW5kZXggJiYgcmVnZXhVbm5lY2Vzc2FyeUluZGV4LnRlc3QoaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgY29uc3QgcGFyZW50RGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKGltcG9ydFBhdGgpXG5cbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgYW1iaWd1b3VzIGltcG9ydHNcbiAgICAgICAgaWYgKHBhcmVudERpcmVjdG9yeSAhPT0gJy4nICYmIHBhcmVudERpcmVjdG9yeSAhPT0gJy4uJykge1xuICAgICAgICAgIGZvciAobGV0IGZpbGVFeHRlbnNpb24gb2YgZmlsZUV4dGVuc2lvbnMpIHtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlKGAke3BhcmVudERpcmVjdG9yeX0ke2ZpbGVFeHRlbnNpb259YCwgY29udGV4dCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgoYCR7cGFyZW50RGlyZWN0b3J5fS9gKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKHBhcmVudERpcmVjdG9yeSlcbiAgICAgIH1cblxuICAgICAgLy8gUGF0aCBpcyBzaG9ydGVzdCBwb3NzaWJsZSArIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAtLT4gUmV0dXJuIGRpcmVjdGx5XG4gICAgICBpZiAoaW1wb3J0UGF0aC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBQYXRoIGlzIG5vdCBleGlzdGluZyAtLT4gUmV0dXJuIGRpcmVjdGx5IChmb2xsb3dpbmcgY29kZSByZXF1aXJlcyBwYXRoIHRvIGJlIGRlZmluZWQpXG4gICAgICBpZiAocmVzb2x2ZWRQYXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gcGF0aC5yZWxhdGl2ZShjdXJyZW50RGlyLCByZXNvbHZlZFBhdGgpIC8vIEV4cGVjdGVkIGltcG9ydCBwYXRoXG4gICAgICBjb25zdCBleHBlY3RlZFNwbGl0ID0gZXhwZWN0ZWQuc3BsaXQocGF0aC5zZXApIC8vIFNwbGl0IGJ5IC8gb3IgXFwgKGRlcGVuZGluZyBvbiBPUylcbiAgICAgIGNvbnN0IGltcG9ydFBhdGhTcGxpdCA9IGltcG9ydFBhdGgucmVwbGFjZSgvXlxcLlxcLy8sICcnKS5zcGxpdCgnLycpXG4gICAgICBjb25zdCBjb3VudEltcG9ydFBhdGhSZWxhdGl2ZVBhcmVudHMgPSBjb3VudFJlbGF0aXZlUGFyZW50cyhpbXBvcnRQYXRoU3BsaXQpXG4gICAgICBjb25zdCBjb3VudEV4cGVjdGVkUmVsYXRpdmVQYXJlbnRzID0gY291bnRSZWxhdGl2ZVBhcmVudHMoZXhwZWN0ZWRTcGxpdClcbiAgICAgIGNvbnN0IGRpZmYgPSBjb3VudEltcG9ydFBhdGhSZWxhdGl2ZVBhcmVudHMgLSBjb3VudEV4cGVjdGVkUmVsYXRpdmVQYXJlbnRzXG5cbiAgICAgIC8vIFNhbWUgbnVtYmVyIG9mIHJlbGF0aXZlIHBhcmVudHMgLS0+IFBhdGhzIGFyZSB0aGUgc2FtZSAtLT4gUmV0dXJuIGRpcmVjdGx5XG4gICAgICBpZiAoZGlmZiA8PSAwKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgYW5kIHByb3Bvc2UgbWluaW1hbCBudW1iZXIgb2YgcmVxdWlyZWQgcmVsYXRpdmUgcGFyZW50c1xuICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgoXG4gICAgICAgIHRvUmVsYXRpdmVQYXRoKFxuICAgICAgICAgIGltcG9ydFBhdGhTcGxpdFxuICAgICAgICAgICAgLnNsaWNlKDAsIGNvdW50RXhwZWN0ZWRSZWxhdGl2ZVBhcmVudHMpXG4gICAgICAgICAgICAuY29uY2F0KGltcG9ydFBhdGhTcGxpdC5zbGljZShjb3VudEltcG9ydFBhdGhSZWxhdGl2ZVBhcmVudHMgKyBkaWZmKSlcbiAgICAgICAgICAgIC5qb2luKCcvJylcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIG9wdGlvbnMpXG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiXSwibmFtZXMiOlsidG9SZWxhdGl2ZVBhdGgiLCJyZWxhdGl2ZVBhdGgiLCJzdHJpcHBlZCIsInJlcGxhY2UiLCJ0ZXN0Iiwibm9ybWFsaXplIiwiZm4iLCJwYXRoIiwicG9zaXgiLCJjb3VudFJlbGF0aXZlUGFyZW50cyIsInBhdGhTZWdtZW50cyIsInJlZHVjZSIsInN1bSIsInBhdGhTZWdtZW50IiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY29tbW9uanMiLCJub1VzZWxlc3NJbmRleCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsImN1cnJlbnREaXIiLCJkaXJuYW1lIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZSIsImltcG9ydFBhdGgiLCJ2YWx1ZSIsInJlcG9ydFdpdGhQcm9wb3NlZFBhdGgiLCJwcm9wb3NlZFBhdGgiLCJyZXBvcnQiLCJub2RlIiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwicmVwbGFjZVRleHQiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRzV2l0aCIsInJlc29sdmVkUGF0aCIsIm5vcm1lZFBhdGgiLCJyZXNvbHZlZE5vcm1lZFBhdGgiLCJmaWxlRXh0ZW5zaW9ucyIsInNldHRpbmdzIiwicmVnZXhVbm5lY2Vzc2FyeUluZGV4IiwiUmVnRXhwIiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInBhcmVudERpcmVjdG9yeSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJleHBlY3RlZCIsInJlbGF0aXZlIiwiZXhwZWN0ZWRTcGxpdCIsInNwbGl0Iiwic2VwIiwiaW1wb3J0UGF0aFNwbGl0IiwiY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIiwiY291bnRFeHBl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O0FBRUdHLFlBRkgsQ0FFVUwsZ0JBQWdCSSxLQUFoQixDQUFzQkgsaUNBQWlDRSxJQUF2RCxDQUZWO0FBR0daLFVBSEgsQ0FHUSxHQUhSLENBREYsQ0FESyxDQUFQOzs7QUFRRDs7QUFFRCxXQUFPLDZCQUFjeEIsZ0JBQWQsRUFBZ0NELE9BQWhDLENBQVA7QUFDRCxHQXpHYyxFQUFqQiIsImZpbGUiOiJuby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IHRoZXJlIGFyZSBubyB1c2VsZXNzIHBhdGggc2VnbWVudHNcbiAqIEBhdXRob3IgVGhvbWFzIEdyYWluZ2VyXG4gKi9cblxuaW1wb3J0IHsgZ2V0RmlsZUV4dGVuc2lvbnMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2lnbm9yZSdcbmltcG9ydCBtb2R1bGVWaXNpdG9yIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vKipcbiAqIGNvbnZlcnQgYSBwb3RlbnRpYWxseSByZWxhdGl2ZSBwYXRoIGZyb20gbm9kZSB1dGlscyBpbnRvIGEgdHJ1ZVxuICogcmVsYXRpdmUgcGF0aC5cbiAqXG4gKiAuLi8gLT4gLi5cbiAqIC4vIC0+IC5cbiAqIC5mb28vYmFyIC0+IC4vLmZvby9iYXJcbiAqIC4uZm9vL2JhciAtPiAuLy4uZm9vL2JhclxuICogZm9vL2JhciAtPiAuL2Zvby9iYXJcbiAqXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggcG90ZW50aWFsbHkgbWlzc2luZyBsZWFkaW5nICcuLydcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYSAuL1xuICoqL1xuZnVuY3Rpb24gdG9SZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoKSB7XG4gIGNvbnN0IHN0cmlwcGVkID0gcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLyQvZywgJycpIC8vIFJlbW92ZSB0cmFpbGluZyAvXG5cbiAgcmV0dXJuIC9eKChcXC5cXC4pfChcXC4pKSgkfFxcLykvLnRlc3Qoc3RyaXBwZWQpID8gc3RyaXBwZWQgOiBgLi8ke3N0cmlwcGVkfWBcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplKGZuKSB7XG4gIHJldHVybiB0b1JlbGF0aXZlUGF0aChwYXRoLnBvc2l4Lm5vcm1hbGl6ZShmbikpXG59XG5cbmZ1bmN0aW9uIGNvdW50UmVsYXRpdmVQYXJlbnRzKHBhdGhTZWdtZW50cykge1xuICByZXR1cm4gcGF0aFNlZ21lbnRzLnJlZHVjZSgoc3VtLCBwYXRoU2VnbWVudCkgPT4gcGF0aFNlZ21lbnQgPT09ICcuLicgPyBzdW0gKyAxIDogc3VtLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cycpLFxuICAgIH0sXG5cbiAgICBmaXhhYmxlOiAnY29kZScsXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjb21tb25qczogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICAgICBub1VzZWxlc3NJbmRleDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgY3VycmVudERpciA9IHBhdGguZGlybmFtZShjb250ZXh0LmdldEZpbGVuYW1lKCkpXG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWU6IGltcG9ydFBhdGggfSA9IHNvdXJjZVxuXG4gICAgICBmdW5jdGlvbiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKHByb3Bvc2VkUGF0aCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIC8vIE5vdGU6IFVzaW5nIG1lc3NhZ2VJZHMgaXMgbm90IHBvc3NpYmxlIGR1ZSB0byB0aGUgc3VwcG9ydCBmb3IgRVNMaW50IDIgYW5kIDNcbiAgICAgICAgICBtZXNzYWdlOiBgVXNlbGVzcyBwYXRoIHNlZ21lbnRzIGZvciBcIiR7aW1wb3J0UGF0aH1cIiwgc2hvdWxkIGJlIFwiJHtwcm9wb3NlZFBhdGh9XCJgLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gcHJvcG9zZWRQYXRoICYmIGZpeGVyLnJlcGxhY2VUZXh0KHNvdXJjZSwgSlNPTi5zdHJpbmdpZnkocHJvcG9zZWRQYXRoKSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgcmVsYXRpdmUgaW1wb3J0cyBhcmUgcmVsZXZhbnQgZm9yIHRoaXMgcnVsZSAtLT4gU2tpcCBjaGVja2luZ1xuICAgICAgaWYgKCFpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IHJ1bGUgdmlvbGF0aW9uIGlmIHBhdGggaXMgbm90IHRoZSBzaG9ydGVzdCBwb3NzaWJsZVxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuICAgICAgY29uc3Qgbm9ybWVkUGF0aCA9IG5vcm1hbGl6ZShpbXBvcnRQYXRoKVxuICAgICAgY29uc3QgcmVzb2x2ZWROb3JtZWRQYXRoID0gcmVzb2x2ZShub3JtZWRQYXRoLCBjb250ZXh0KVxuICAgICAgaWYgKG5vcm1lZFBhdGggIT09IGltcG9ydFBhdGggJiYgcmVzb2x2ZWRQYXRoID09PSByZXNvbHZlZE5vcm1lZFBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgobm9ybWVkUGF0aClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbnMgPSBnZXRGaWxlRXh0ZW5zaW9ucyhjb250ZXh0LnNldHRpbmdzKVxuICAgICAgY29uc3QgcmVnZXhVbm5lY2Vzc2FyeUluZGV4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgYC4qXFxcXC9pbmRleChcXFxcJHtBcnJheS5mcm9tKGZpbGVFeHRlbnNpb25zKS5qb2luKCd8XFxcXCcpfSk/JGBcbiAgICAgIClcblxuICAgICAgLy8gQ2hlY2sgaWYgcGF0aCBjb250YWlucyB1bm5lY2Vzc2FyeSBpbmRleCAoaW5jbHVkaW5nIGEgY29uZmlndXJlZCBleHRlbnNpb24pXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm5vVXNlbGVzc0luZGV4ICYmIHJlZ2V4VW5uZWNlc3NhcnlJbmRleC50ZXN0KGltcG9ydFBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudERpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRQYXRoKVxuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGFtYmlndW91cyBpbXBvcnRzXG4gICAgICAgIGlmIChwYXJlbnREaXJlY3RvcnkgIT09ICcuJyAmJiBwYXJlbnREaXJlY3RvcnkgIT09ICcuLicpIHtcbiAgICAgICAgICBmb3IgKGxldCBmaWxlRXh0ZW5zaW9uIG9mIGZpbGVFeHRlbnNpb25zKSB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZShgJHtwYXJlbnREaXJlY3Rvcnl9JHtmaWxlRXh0ZW5zaW9ufWAsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKGAke3BhcmVudERpcmVjdG9yeX0vYClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVwb3J0V2l0aFByb3Bvc2VkUGF0aChwYXJlbnREaXJlY3RvcnkpXG4gICAgICB9XG5cbiAgICAgIC8vIFBhdGggaXMgc2hvcnRlc3QgcG9zc2libGUgKyBzdGFydHMgZnJvbSB0aGUgY3VycmVudCBkaXJlY3RvcnkgLS0+IFJldHVybiBkaXJlY3RseVxuICAgICAgaWYgKGltcG9ydFBhdGguc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUGF0aCBpcyBub3QgZXhpc3RpbmcgLS0+IFJldHVybiBkaXJlY3RseSAoZm9sbG93aW5nIGNvZGUgcmVxdWlyZXMgcGF0aCB0byBiZSBkZWZpbmVkKVxuICAgICAgaWYgKHJlc29sdmVkUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBleHBlY3RlZCA9IHBhdGgucmVsYXRpdmUoY3VycmVudERpciwgcmVzb2x2ZWRQYXRoKSAvLyBFeHBlY3RlZCBpbXBvcnQgcGF0aFxuICAgICAgY29uc3QgZXhwZWN0ZWRTcGxpdCA9IGV4cGVjdGVkLnNwbGl0KHBhdGguc2VwKSAvLyBTcGxpdCBieSAvIG9yIFxcIChkZXBlbmRpbmcgb24gT1MpXG4gICAgICBjb25zdCBpbXBvcnRQYXRoU3BsaXQgPSBpbXBvcnRQYXRoLnJlcGxhY2UoL15cXC5cXC8vLCAnJykuc3BsaXQoJy8nKVxuICAgICAgY29uc3QgY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzID0gY291bnRSZWxhdGl2ZVBhcmVudHMoaW1wb3J0UGF0aFNwbGl0KVxuICAgICAgY29uc3QgY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50cyA9IGNvdW50UmVsYXRpdmVQYXJlbnRzKGV4cGVjdGVkU3BsaXQpXG4gICAgICBjb25zdCBkaWZmID0gY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIC0gY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50c1xuXG4gICAgICAvLyBTYW1lIG51bWJlciBvZiByZWxhdGl2ZSBwYXJlbnRzIC0tPiBQYXRocyBhcmUgdGhlIHNhbWUgLS0+IFJldHVybiBkaXJlY3RseVxuICAgICAgaWYgKGRpZmYgPD0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IGFuZCBwcm9wb3NlIG1pbmltYWwgbnVtYmVyIG9mIHJlcXVpcmVkIHJlbGF0aXZlIHBhcmVudHNcbiAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKFxuICAgICAgICB0b1JlbGF0aXZlUGF0aChcbiAgICAgICAgICBpbXBvcnRQYXRoU3BsaXRcbiAgICAgICAgICAgIC5zbGljZSgwLCBjb3VudEV4cGVjdGVkUmVsYXRpdmVQYXJlbnRzKVxuICAgICAgICAgICAgLmNvbmNhdChpbXBvcnRQYXRoU3BsaXQuc2xpY2UoY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzICsgZGlmZikpXG4gICAgICAgICAgICAuam9pbignLycpXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBvcHRpb25zKVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js b/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js
index 9727c5f..df99f18 100644
--- a/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js
+++ b/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js
@@ -1,18 +1,11 @@
-'use strict';
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+'use strict';var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 function reportIfNonStandard(context, node, name) {
   if (name.indexOf('!') !== -1) {
-    context.report(node, `Unexpected '!' in '${name}'. ` + 'Do not use import syntax to configure webpack loaders.');
+    context.report(node, `Unexpected '!' in '${name}'. ` +
+    'Do not use import syntax to configure webpack loaders.');
+
   }
 }
 
@@ -20,10 +13,10 @@
   meta: {
     type: 'problem',
     docs: {
-      url: (0, _docsUrl2.default)('no-webpack-loader-syntax')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('no-webpack-loader-syntax') },
+
+    schema: [] },
+
 
   create: function (context) {
     return {
@@ -34,8 +27,7 @@
         if ((0, _staticRequire2.default)(node)) {
           reportIfNonStandard(context, node, node.arguments[0].value);
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiXSwibmFtZXMiOlsicmVwb3J0SWZOb25TdGFuZGFyZCIsImNvbnRleHQiLCJub2RlIiwibmFtZSIsImluZGV4T2YiLCJyZXBvcnQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLG1CQUFULENBQTZCQyxPQUE3QixFQUFzQ0MsSUFBdEMsRUFBNENDLElBQTVDLEVBQWtEO0FBQ2hELE1BQUlBLEtBQUtDLE9BQUwsQ0FBYSxHQUFiLE1BQXNCLENBQUMsQ0FBM0IsRUFBOEI7QUFDNUJILFlBQVFJLE1BQVIsQ0FBZUgsSUFBZixFQUFzQixzQkFBcUJDLElBQUssS0FBM0IsR0FDbkIsd0RBREY7QUFHRDtBQUNGOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSwwQkFBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVVosT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xhLHlCQUFtQixTQUFTQyxhQUFULENBQXVCYixJQUF2QixFQUE2QjtBQUM5Q0YsNEJBQW9CQyxPQUFwQixFQUE2QkMsSUFBN0IsRUFBbUNBLEtBQUtjLE1BQUwsQ0FBWUMsS0FBL0M7QUFDRCxPQUhJO0FBSUxDLHNCQUFnQixTQUFTQyxjQUFULENBQXdCakIsSUFBeEIsRUFBOEI7QUFDNUMsWUFBSSw2QkFBZ0JBLElBQWhCLENBQUosRUFBMkI7QUFDekJGLDhCQUFvQkMsT0FBcEIsRUFBNkJDLElBQTdCLEVBQW1DQSxLQUFLa0IsU0FBTCxDQUFlLENBQWYsRUFBa0JILEtBQXJEO0FBQ0Q7QUFDRjtBQVJJLEtBQVA7QUFVRDtBQXBCYyxDQUFqQiIsImZpbGUiOiJuby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbmFtZSkge1xuICBpZiAobmFtZS5pbmRleE9mKCchJykgIT09IC0xKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgYFVuZXhwZWN0ZWQgJyEnIGluICcke25hbWV9Jy4gYCArXG4gICAgICAnRG8gbm90IHVzZSBpbXBvcnQgc3ludGF4IHRvIGNvbmZpZ3VyZSB3ZWJwYWNrIGxvYWRlcnMuJ1xuICAgIClcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiBoYW5kbGVJbXBvcnRzKG5vZGUpIHtcbiAgICAgICAgcmVwb3J0SWZOb25TdGFuZGFyZChjb250ZXh0LCBub2RlLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgcmVwb3J0SWZOb25TdGFuZGFyZChjb250ZXh0LCBub2RlLCBub2RlLmFyZ3VtZW50c1swXS52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiXSwibmFtZXMiOlsicmVwb3J0SWZOb25TdGFuZGFyZCIsImNvbnRleHQiLCJub2RlIiwibmFtZSIsImluZGV4T2YiLCJyZXBvcnQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxzRDtBQUNBLHFDOztBQUVBLFNBQVNBLG1CQUFULENBQTZCQyxPQUE3QixFQUFzQ0MsSUFBdEMsRUFBNENDLElBQTVDLEVBQWtEO0FBQ2hELE1BQUlBLEtBQUtDLE9BQUwsQ0FBYSxHQUFiLE1BQXNCLENBQUMsQ0FBM0IsRUFBOEI7QUFDNUJILFlBQVFJLE1BQVIsQ0FBZUgsSUFBZixFQUFzQixzQkFBcUJDLElBQUssS0FBM0I7QUFDbkIsNERBREY7O0FBR0Q7QUFDRjs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsMEJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVVosT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xhLHlCQUFtQixTQUFTQyxhQUFULENBQXVCYixJQUF2QixFQUE2QjtBQUM5Q0YsNEJBQW9CQyxPQUFwQixFQUE2QkMsSUFBN0IsRUFBbUNBLEtBQUtjLE1BQUwsQ0FBWUMsS0FBL0M7QUFDRCxPQUhJO0FBSUxDLHNCQUFnQixTQUFTQyxjQUFULENBQXdCakIsSUFBeEIsRUFBOEI7QUFDNUMsWUFBSSw2QkFBZ0JBLElBQWhCLENBQUosRUFBMkI7QUFDekJGLDhCQUFvQkMsT0FBcEIsRUFBNkJDLElBQTdCLEVBQW1DQSxLQUFLa0IsU0FBTCxDQUFlLENBQWYsRUFBa0JILEtBQXJEO0FBQ0Q7QUFDRixPQVJJLEVBQVA7O0FBVUQsR0FwQmMsRUFBakIiLCJmaWxlIjoibm8td2VicGFjay1sb2FkZXItc3ludGF4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiByZXBvcnRJZk5vblN0YW5kYXJkKGNvbnRleHQsIG5vZGUsIG5hbWUpIHtcbiAgaWYgKG5hbWUuaW5kZXhPZignIScpICE9PSAtMSkge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGBVbmV4cGVjdGVkICchJyBpbiAnJHtuYW1lfScuIGAgK1xuICAgICAgJ0RvIG5vdCB1c2UgaW1wb3J0IHN5bnRheCB0byBjb25maWd1cmUgd2VicGFjayBsb2FkZXJzLidcbiAgICApXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICAgIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbm9kZS5zb3VyY2UudmFsdWUpXG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/order.js b/node_modules/eslint-plugin-import/lib/rules/order.js
index a891ea0..d3cd442 100644
--- a/node_modules/eslint-plugin-import/lib/rules/order.js
+++ b/node_modules/eslint-plugin-import/lib/rules/order.js
@@ -1,24 +1,9 @@
-'use strict';
+'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();
 
-var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
-
-var _minimatch = require('minimatch');
-
-var _minimatch2 = _interopRequireDefault(_minimatch);
-
-var _importType = require('../core/importType');
-
-var _importType2 = _interopRequireDefault(_importType);
-
-var _staticRequire = require('../core/staticRequire');
-
-var _staticRequire2 = _interopRequireDefault(_staticRequire);
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch);
+var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);
+var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire);
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 const defaultGroups = ['builtin', 'external', 'parent', 'sibling', 'index'];
 
@@ -26,11 +11,7 @@
 
 function reverse(array) {
   return array.map(function (v) {
-    return {
-      name: v.name,
-      rank: -v.rank,
-      node: v.node
-    };
+    return Object.assign({}, v, { rank: -v.rank });
   }).reverse();
 }
 
@@ -66,7 +47,8 @@
   for (let i = 0; i < tokens.length; i++) {
     if (condition(tokens[i])) {
       result.push(tokens[i]);
-    } else {
+    } else
+    {
       break;
     }
   }
@@ -79,7 +61,8 @@
   for (let i = tokens.length - 1; i >= 0; i--) {
     if (condition(tokens[i])) {
       result.push(tokens[i]);
-    } else {
+    } else
+    {
       break;
     }
   }
@@ -110,7 +93,9 @@
 
 function findEndOfLineWithComments(sourceCode, node) {
   const tokensToEndOfLine = takeTokensAfterWhile(sourceCode, node, commentOnSameLineAs(node));
-  let endOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[tokensToEndOfLine.length - 1].range[1] : node.range[1];
+  let endOfTokens = tokensToEndOfLine.length > 0 ?
+  tokensToEndOfLine[tokensToEndOfLine.length - 1].range[1] :
+  node.range[1];
   let result = endOfTokens;
   for (let i = endOfTokens; i < sourceCode.text.length; i++) {
     if (sourceCode.text[i] === '\n') {
@@ -126,7 +111,9 @@
 }
 
 function commentOnSameLineAs(node) {
-  return token => (token.type === 'Block' || token.type === 'Line') && token.loc.start.line === token.loc.end.line && token.loc.end.line === node.loc.end.line;
+  return token => (token.type === 'Block' || token.type === 'Line') &&
+  token.loc.start.line === token.loc.end.line &&
+  token.loc.end.line === node.loc.end.line;
 }
 
 function findStartOfLineWithComments(sourceCode, node) {
@@ -150,7 +137,15 @@
     return false;
   }
   const decl = node.declarations[0];
-  const result = decl.id && (decl.id.type === 'Identifier' || decl.id.type === 'ObjectPattern') && decl.init != null && decl.init.type === 'CallExpression' && decl.init.callee != null && decl.init.callee.name === 'require' && decl.init.arguments != null && decl.init.arguments.length === 1 && decl.init.arguments[0].type === 'Literal';
+  const result = decl.id && (
+  decl.id.type === 'Identifier' || decl.id.type === 'ObjectPattern') &&
+  decl.init != null &&
+  decl.init.type === 'CallExpression' &&
+  decl.init.callee != null &&
+  decl.init.callee.name === 'require' &&
+  decl.init.arguments != null &&
+  decl.init.arguments.length === 1 &&
+  decl.init.arguments[0].type === 'Literal';
   return result;
 }
 
@@ -158,19 +153,20 @@
   return node.type === 'ImportDeclaration' && node.specifiers != null && node.specifiers.length > 0;
 }
 
+function isPlainImportEquals(node) {
+  return node.type === 'TSImportEqualsDeclaration' && node.moduleReference.expression;
+}
+
 function canCrossNodeWhileReorder(node) {
-  return isPlainRequireModule(node) || isPlainImportModule(node);
+  return isPlainRequireModule(node) || isPlainImportModule(node) || isPlainImportEquals(node);
 }
 
 function canReorderItems(firstNode, secondNode) {
-  const parent = firstNode.parent;
-
-  var _sort = [parent.body.indexOf(firstNode), parent.body.indexOf(secondNode)].sort(),
-      _sort2 = _slicedToArray(_sort, 2);
-
-  const firstIndex = _sort2[0],
-        secondIndex = _sort2[1];
-
+  const parent = firstNode.parent;var _sort =
+  [
+  parent.body.indexOf(firstNode),
+  parent.body.indexOf(secondNode)].
+  sort(),_sort2 = _slicedToArray(_sort, 2);const firstIndex = _sort2[0],secondIndex = _sort2[1];
   const nodesBetween = parent.body.slice(firstIndex, secondIndex + 1);
   for (var nodeBetween of nodesBetween) {
     if (!canCrossNodeWhileReorder(nodeBetween)) {
@@ -197,20 +193,28 @@
     newCode = newCode + '\n';
   }
 
-  const message = '`' + secondNode.name + '` import should occur ' + order + ' import of `' + firstNode.name + '`';
+  const message = `\`${secondNode.displayName}\` import should occur ${order} import of \`${firstNode.displayName}\``;
 
   if (order === 'before') {
     context.report({
       node: secondNode.node,
       message: message,
-      fix: canFix && (fixer => fixer.replaceTextRange([firstRootStart, secondRootEnd], newCode + sourceCode.text.substring(firstRootStart, secondRootStart)))
-    });
+      fix: canFix && (fixer =>
+      fixer.replaceTextRange(
+      [firstRootStart, secondRootEnd],
+      newCode + sourceCode.text.substring(firstRootStart, secondRootStart))) });
+
+
   } else if (order === 'after') {
     context.report({
       node: secondNode.node,
       message: message,
-      fix: canFix && (fixer => fixer.replaceTextRange([secondRootStart, firstRootEnd], sourceCode.text.substring(secondRootEnd, firstRootEnd) + newCode))
-    });
+      fix: canFix && (fixer =>
+      fixer.replaceTextRange(
+      [secondRootStart, firstRootEnd],
+      sourceCode.text.substring(secondRootEnd, firstRootEnd) + newCode)) });
+
+
   }
 }
 
@@ -238,28 +242,22 @@
   reportOutOfOrder(context, imported, outOfOrder, 'before');
 }
 
-function importsSorterAsc(importA, importB) {
-  if (importA < importB) {
-    return -1;
-  }
+function getSorter(ascending) {
+  const multiplier = ascending ? 1 : -1;
 
-  if (importA > importB) {
-    return 1;
-  }
+  return function importsSorter(importA, importB) {
+    let result;
 
-  return 0;
-}
+    if (importA < importB) {
+      result = -1;
+    } else if (importA > importB) {
+      result = 1;
+    } else {
+      result = 0;
+    }
 
-function importsSorterDesc(importA, importB) {
-  if (importA < importB) {
-    return 1;
-  }
-
-  if (importA > importB) {
-    return -1;
-  }
-
-  return 0;
+    return result * multiplier;
+  };
 }
 
 function mutateRanksToAlphabetize(imported, alphabetizeOptions) {
@@ -267,13 +265,13 @@
     if (!Array.isArray(acc[importedItem.rank])) {
       acc[importedItem.rank] = [];
     }
-    acc[importedItem.rank].push(importedItem.name);
+    acc[importedItem.rank].push(importedItem.value);
     return acc;
   }, {});
 
   const groupRanks = Object.keys(groupedByRanks);
 
-  const sorterFn = alphabetizeOptions.order === 'asc' ? importsSorterAsc : importsSorterDesc;
+  const sorterFn = getSorter(alphabetizeOptions.order === 'asc');
   const comparator = alphabetizeOptions.caseInsensitive ? (a, b) => sorterFn(String(a).toLowerCase(), String(b).toLowerCase()) : (a, b) => sorterFn(a, b);
   // sort imports locally within their group
   groupRanks.forEach(function (groupRank) {
@@ -292,55 +290,55 @@
 
   // mutate the original group-rank with alphabetized-rank
   imported.forEach(function (importedItem) {
-    importedItem.rank = alphabetizedRanks[importedItem.name];
+    importedItem.rank = alphabetizedRanks[importedItem.value];
   });
 }
 
 // DETECTING
 
 function computePathRank(ranks, pathGroups, path, maxPosition) {
-  for (let i = 0, l = pathGroups.length; i < l; i++) {
-    var _pathGroups$i = pathGroups[i];
-    const pattern = _pathGroups$i.pattern,
-          patternOptions = _pathGroups$i.patternOptions,
-          group = _pathGroups$i.group;
-    var _pathGroups$i$positio = _pathGroups$i.position;
-    const position = _pathGroups$i$positio === undefined ? 1 : _pathGroups$i$positio;
-
+  for (let i = 0, l = pathGroups.length; i < l; i++) {var _pathGroups$i =
+    pathGroups[i];const pattern = _pathGroups$i.pattern,patternOptions = _pathGroups$i.patternOptions,group = _pathGroups$i.group;var _pathGroups$i$positio = _pathGroups$i.position;const position = _pathGroups$i$positio === undefined ? 1 : _pathGroups$i$positio;
     if ((0, _minimatch2.default)(path, pattern, patternOptions || { nocomment: true })) {
       return ranks[group] + position / maxPosition;
     }
   }
 }
 
-function computeRank(context, ranks, name, type, excludedImportTypes) {
-  const impType = (0, _importType2.default)(name, context);
+function computeRank(context, ranks, importEntry, excludedImportTypes) {
+  let impType;
   let rank;
-  if (!excludedImportTypes.has(impType)) {
-    rank = computePathRank(ranks.groups, ranks.pathGroups, name, ranks.maxPosition);
+  if (importEntry.type === 'import:object') {
+    impType = 'object';
+  } else {
+    impType = (0, _importType2.default)(importEntry.value, context);
   }
-  if (!rank) {
+  if (!excludedImportTypes.has(impType)) {
+    rank = computePathRank(ranks.groups, ranks.pathGroups, importEntry.value, ranks.maxPosition);
+  }
+  if (typeof rank === 'undefined') {
     rank = ranks.groups[impType];
   }
-  if (type !== 'import') {
+  if (importEntry.type !== 'import' && !importEntry.type.startsWith('import:')) {
     rank += 100;
   }
 
   return rank;
 }
 
-function registerNode(context, node, name, type, ranks, imported, excludedImportTypes) {
-  const rank = computeRank(context, ranks, name, type, excludedImportTypes);
+function registerNode(context, importEntry, ranks, imported, excludedImportTypes) {
+  const rank = computeRank(context, ranks, importEntry, excludedImportTypes);
   if (rank !== -1) {
-    imported.push({ name, rank, node });
+    imported.push(Object.assign({}, importEntry, { rank }));
   }
 }
 
 function isInVariableDeclarator(node) {
-  return node && (node.type === 'VariableDeclarator' || isInVariableDeclarator(node.parent));
+  return node && (
+  node.type === 'VariableDeclarator' || isInVariableDeclarator(node.parent));
 }
 
-const types = ['builtin', 'external', 'internal', 'unknown', 'parent', 'sibling', 'index'];
+const types = ['builtin', 'external', 'internal', 'unknown', 'parent', 'sibling', 'index', 'object'];
 
 // Creates an object with type-rank pairs.
 // Example: { index: 0, sibling: 1, parent: 1, external: 1, builtin: 2, internal: 2 }
@@ -352,7 +350,8 @@
     }
     group.forEach(function (groupItem) {
       if (types.indexOf(groupItem) === -1) {
-        throw new Error('Incorrect configuration of the rule: Unknown type `' + JSON.stringify(groupItem) + '`');
+        throw new Error('Incorrect configuration of the rule: Unknown type `' +
+        JSON.stringify(groupItem) + '`');
       }
       if (res[groupItem] !== undefined) {
         throw new Error('Incorrect configuration of the rule: `' + groupItem + '` is duplicated');
@@ -376,10 +375,8 @@
   const after = {};
   const before = {};
 
-  const transformed = pathGroups.map((pathGroup, index) => {
-    const group = pathGroup.group,
-          positionString = pathGroup.position;
-
+  const transformed = pathGroups.map((pathGroup, index) => {const
+    group = pathGroup.group,positionString = pathGroup.position;
     let position = 0;
     if (positionString === 'after') {
       if (!after[group]) {
@@ -413,13 +410,14 @@
 
   return {
     pathGroups: transformed,
-    maxPosition: maxPosition > 10 ? Math.pow(10, Math.ceil(Math.log10(maxPosition))) : 10
-  };
+    maxPosition: maxPosition > 10 ? Math.pow(10, Math.ceil(Math.log10(maxPosition))) : 10 };
+
 }
 
 function fixNewLineAfterImport(context, previousImport) {
   const prevRoot = findRootNode(previousImport.node);
-  const tokensToEndOfLine = takeTokensAfterWhile(context.getSourceCode(), prevRoot, commentOnSameLineAs(prevRoot));
+  const tokensToEndOfLine = takeTokensAfterWhile(
+  context.getSourceCode(), prevRoot, commentOnSameLineAs(prevRoot));
 
   let endOfLine = prevRoot.range[1];
   if (tokensToEndOfLine.length > 0) {
@@ -432,7 +430,10 @@
   const sourceCode = context.getSourceCode();
   const prevRoot = findRootNode(previousImport.node);
   const currRoot = findRootNode(currentImport.node);
-  const rangeToRemove = [findEndOfLineWithComments(sourceCode, prevRoot), findStartOfLineWithComments(sourceCode, currRoot)];
+  const rangeToRemove = [
+  findEndOfLineWithComments(sourceCode, prevRoot),
+  findStartOfLineWithComments(sourceCode, currRoot)];
+
   if (/^\s*$/.test(sourceCode.text.substring(rangeToRemove[0], rangeToRemove[1]))) {
     return fixer => fixer.removeRange(rangeToRemove);
   }
@@ -441,7 +442,10 @@
 
 function makeNewlinesBetweenReport(context, imported, newlinesBetweenImports) {
   const getNumberOfEmptyLinesBetween = (currentImport, previousImport) => {
-    const linesBetweenImports = context.getSourceCode().lines.slice(previousImport.node.loc.end.line, currentImport.node.loc.start.line - 1);
+    const linesBetweenImports = context.getSourceCode().lines.slice(
+    previousImport.node.loc.end.line,
+    currentImport.node.loc.start.line - 1);
+
 
     return linesBetweenImports.filter(line => !line.trim().length).length;
   };
@@ -450,26 +454,29 @@
   imported.slice(1).forEach(function (currentImport) {
     const emptyLinesBetween = getNumberOfEmptyLinesBetween(currentImport, previousImport);
 
-    if (newlinesBetweenImports === 'always' || newlinesBetweenImports === 'always-and-inside-groups') {
+    if (newlinesBetweenImports === 'always' ||
+    newlinesBetweenImports === 'always-and-inside-groups') {
       if (currentImport.rank !== previousImport.rank && emptyLinesBetween === 0) {
         context.report({
           node: previousImport.node,
           message: 'There should be at least one empty line between import groups',
-          fix: fixNewLineAfterImport(context, previousImport)
-        });
-      } else if (currentImport.rank === previousImport.rank && emptyLinesBetween > 0 && newlinesBetweenImports !== 'always-and-inside-groups') {
+          fix: fixNewLineAfterImport(context, previousImport) });
+
+      } else if (currentImport.rank === previousImport.rank &&
+      emptyLinesBetween > 0 &&
+      newlinesBetweenImports !== 'always-and-inside-groups') {
         context.report({
           node: previousImport.node,
           message: 'There should be no empty line within import group',
-          fix: removeNewLineAfterImport(context, currentImport, previousImport)
-        });
+          fix: removeNewLineAfterImport(context, currentImport, previousImport) });
+
       }
     } else if (emptyLinesBetween > 0) {
       context.report({
         node: previousImport.node,
         message: 'There should be no empty line between import groups',
-        fix: removeNewLineAfterImport(context, currentImport, previousImport)
-      });
+        fix: removeNewLineAfterImport(context, currentImport, previousImport) });
+
     }
 
     previousImport = currentImport;
@@ -488,89 +495,92 @@
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('order')
-    },
+      url: (0, _docsUrl2.default)('order') },
+
 
     fixable: 'code',
-    schema: [{
+    schema: [
+    {
       type: 'object',
       properties: {
         groups: {
-          type: 'array'
-        },
+          type: 'array' },
+
         pathGroupsExcludedImportTypes: {
-          type: 'array'
-        },
+          type: 'array' },
+
         pathGroups: {
           type: 'array',
           items: {
             type: 'object',
             properties: {
               pattern: {
-                type: 'string'
-              },
+                type: 'string' },
+
               patternOptions: {
-                type: 'object'
-              },
+                type: 'object' },
+
               group: {
                 type: 'string',
-                enum: types
-              },
+                enum: types },
+
               position: {
                 type: 'string',
-                enum: ['after', 'before']
-              }
-            },
-            required: ['pattern', 'group']
-          }
-        },
+                enum: ['after', 'before'] } },
+
+
+            required: ['pattern', 'group'] } },
+
+
         'newlines-between': {
-          enum: ['ignore', 'always', 'always-and-inside-groups', 'never']
-        },
+          enum: [
+          'ignore',
+          'always',
+          'always-and-inside-groups',
+          'never'] },
+
+
         alphabetize: {
           type: 'object',
           properties: {
             caseInsensitive: {
               type: 'boolean',
-              default: false
-            },
+              default: false },
+
             order: {
               enum: ['ignore', 'asc', 'desc'],
-              default: 'ignore'
-            }
-          },
-          additionalProperties: false
-        }
-      },
-      additionalProperties: false
-    }]
-  },
+              default: 'ignore' } },
+
+
+          additionalProperties: false } },
+
+
+      additionalProperties: false }] },
+
+
+
 
   create: function importOrderRule(context) {
     const options = context.options[0] || {};
     const newlinesBetweenImports = options['newlines-between'] || 'ignore';
-    const pathGroupsExcludedImportTypes = new Set(options['pathGroupsExcludedImportTypes'] || ['builtin', 'external']);
+    const pathGroupsExcludedImportTypes = new Set(options['pathGroupsExcludedImportTypes'] || ['builtin', 'external', 'object']);
     const alphabetize = getAlphabetizeConfig(options);
     let ranks;
 
-    try {
-      var _convertPathGroupsFor = convertPathGroupsForRanks(options.pathGroups || []);
-
-      const pathGroups = _convertPathGroupsFor.pathGroups,
-            maxPosition = _convertPathGroupsFor.maxPosition;
-
+    try {var _convertPathGroupsFor =
+      convertPathGroupsForRanks(options.pathGroups || []);const pathGroups = _convertPathGroupsFor.pathGroups,maxPosition = _convertPathGroupsFor.maxPosition;
       ranks = {
         groups: convertGroupsToRanks(options.groups || defaultGroups),
         pathGroups,
-        maxPosition
-      };
+        maxPosition };
+
     } catch (error) {
       // Malformed configuration
       return {
         Program: function (node) {
           context.report(node, error.message);
-        }
-      };
+        } };
+
     }
     let imported = [];
     let level = 0;
@@ -584,18 +594,69 @@
 
     return {
       ImportDeclaration: function handleImports(node) {
-        if (node.specifiers.length) {
-          // Ignoring unassigned imports
+        if (node.specifiers.length) {// Ignoring unassigned imports
           const name = node.source.value;
-          registerNode(context, node, name, 'import', ranks, imported, pathGroupsExcludedImportTypes);
+          registerNode(
+          context,
+          {
+            node,
+            value: name,
+            displayName: name,
+            type: 'import' },
+
+          ranks,
+          imported,
+          pathGroupsExcludedImportTypes);
+
         }
       },
+      TSImportEqualsDeclaration: function handleImports(node) {
+        let displayName;
+        let value;
+        let type;
+        // skip "export import"s
+        if (node.isExport) {
+          return;
+        }
+        if (node.moduleReference.type === 'TSExternalModuleReference') {
+          value = node.moduleReference.expression.value;
+          displayName = value;
+          type = 'import';
+        } else {
+          value = '';
+          displayName = context.getSourceCode().getText(node.moduleReference);
+          type = 'import:object';
+        }
+        registerNode(
+        context,
+        {
+          node,
+          value,
+          displayName,
+          type },
+
+        ranks,
+        imported,
+        pathGroupsExcludedImportTypes);
+
+      },
       CallExpression: function handleRequires(node) {
         if (level !== 0 || !(0, _staticRequire2.default)(node) || !isInVariableDeclarator(node.parent)) {
           return;
         }
         const name = node.arguments[0].value;
-        registerNode(context, node, name, 'require', ranks, imported, pathGroupsExcludedImportTypes);
+        registerNode(
+        context,
+        {
+          node,
+          value: name,
+          displayName: name,
+          type: 'require' },
+
+        ranks,
+        imported,
+        pathGroupsExcludedImportTypes);
+
       },
       'Program:exit': function reportAndReset() {
         if (newlinesBetweenImports !== 'ignore') {
@@ -619,8 +680,7 @@
       'FunctionExpression:exit': decrementLevel,
       'ArrowFunctionExpression:exit': decrementLevel,
       'BlockStatement:exit': decrementLevel,
-      'ObjectExpression:exit': decrementLevel
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9vcmRlci5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0R3JvdXBzIiwicmV2ZXJzZSIsImFycmF5IiwibWFwIiwidiIsIm5hbWUiLCJyYW5rIiwibm9kZSIsImdldFRva2Vuc09yQ29tbWVudHNBZnRlciIsInNvdXJjZUNvZGUiLCJjb3VudCIsImN1cnJlbnROb2RlT3JUb2tlbiIsInJlc3VsdCIsImkiLCJnZXRUb2tlbk9yQ29tbWVudEFmdGVyIiwicHVzaCIsImdldFRva2Vuc09yQ29tbWVudHNCZWZvcmUiLCJnZXRUb2tlbk9yQ29tbWVudEJlZm9yZSIsInRha2VUb2tlbnNBZnRlcldoaWxlIiwiY29uZGl0aW9uIiwidG9rZW5zIiwibGVuZ3RoIiwidGFrZVRva2Vuc0JlZm9yZVdoaWxlIiwiZmluZE91dE9mT3JkZXIiLCJpbXBvcnRlZCIsIm1heFNlZW5SYW5rTm9kZSIsImZpbHRlciIsImltcG9ydGVkTW9kdWxlIiwicmVzIiwiZmluZFJvb3ROb2RlIiwicGFyZW50IiwiYm9keSIsImZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMiLCJ0b2tlbnNUb0VuZE9mTGluZSIsImNvbW1lbnRPblNhbWVMaW5lQXMiLCJlbmRPZlRva2VucyIsInJhbmdlIiwidGV4dCIsInRva2VuIiwidHlwZSIsImxvYyIsInN0YXJ0IiwibGluZSIsImVuZCIsImZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyIsInN0YXJ0T2ZUb2tlbnMiLCJpc1BsYWluUmVxdWlyZU1vZHVsZSIsImRlY2xhcmF0aW9ucyIsImRlY2wiLCJpZCIsImluaXQiLCJjYWxsZWUiLCJhcmd1bWVudHMiLCJpc1BsYWluSW1wb3J0TW9kdWxlIiwic3BlY2lmaWVycyIsImNhbkNyb3NzTm9kZVdoaWxlUmVvcmRlciIsImNhblJlb3JkZXJJdGVtcyIsImZpcnN0Tm9kZSIsInNlY29uZE5vZGUiLCJpbmRleE9mIiwic29ydCIsImZpcnN0SW5kZXgiLCJzZWNvbmRJbmRleCIsIm5vZGVzQmV0d2VlbiIsInNsaWNlIiwibm9kZUJldHdlZW4iLCJmaXhPdXRPZk9yZGVyIiwiY29udGV4dCIsIm9yZGVyIiwiZ2V0U291cmNlQ29kZSIsImZpcnN0Um9vdCIsImZpcnN0Um9vdFN0YXJ0IiwiZmlyc3RSb290RW5kIiwic2Vjb25kUm9vdCIsInNlY29uZFJvb3RTdGFydCIsInNlY29uZFJvb3RFbmQiLCJjYW5GaXgiLCJuZXdDb2RlIiwic3Vic3RyaW5nIiwibWVzc2FnZSIsInJlcG9ydCIsImZpeCIsImZpeGVyIiwicmVwbGFjZVRleHRSYW5nZSIsInJlcG9ydE91dE9mT3JkZXIiLCJvdXRPZk9yZGVyIiwiZm9yRWFjaCIsImltcCIsImZvdW5kIiwiZmluZCIsImhhc0hpZ2hlclJhbmsiLCJpbXBvcnRlZEl0ZW0iLCJtYWtlT3V0T2ZPcmRlclJlcG9ydCIsInJldmVyc2VkSW1wb3J0ZWQiLCJyZXZlcnNlZE9yZGVyIiwiaW1wb3J0c1NvcnRlckFzYyIsImltcG9ydEEiLCJpbXBvcnRCIiwiaW1wb3J0c1NvcnRlckRlc2MiLCJtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUiLCJhbHBoYWJldGl6ZU9wdGlvbnMiLCJncm91cGVkQnlSYW5rcyIsInJlZHVjZSIsImFjYyIsIkFycmF5IiwiaXNBcnJheSIsImdyb3VwUmFua3MiLCJPYmplY3QiLCJrZXlzIiwic29ydGVyRm4iLCJjb21wYXJhdG9yIiwiY2FzZUluc2Vuc2l0aXZlIiwiYSIsImIiLCJTdHJpbmciLCJ0b0xvd2VyQ2FzZSIsImdyb3VwUmFuayIsIm5ld1JhbmsiLCJhbHBoYWJldGl6ZWRSYW5rcyIsImltcG9ydGVkSXRlbU5hbWUiLCJwYXJzZUludCIsImNvbXB1dGVQYXRoUmFuayIsInJhbmtzIiwicGF0aEdyb3VwcyIsInBhdGgiLCJtYXhQb3NpdGlvbiIsImwiLCJwYXR0ZXJuIiwicGF0dGVybk9wdGlvbnMiLCJncm91cCIsInBvc2l0aW9uIiwibm9jb21tZW50IiwiY29tcHV0ZVJhbmsiLCJleGNsdWRlZEltcG9ydFR5cGVzIiwiaW1wVHlwZSIsImhhcyIsImdyb3VwcyIsInJlZ2lzdGVyTm9kZSIsImlzSW5WYXJpYWJsZURlY2xhcmF0b3IiLCJ0eXBlcyIsImNvbnZlcnRHcm91cHNUb1JhbmtzIiwicmFua09iamVjdCIsImluZGV4IiwiZ3JvdXBJdGVtIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidW5kZWZpbmVkIiwib21pdHRlZFR5cGVzIiwiY29udmVydFBhdGhHcm91cHNGb3JSYW5rcyIsImFmdGVyIiwiYmVmb3JlIiwidHJhbnNmb3JtZWQiLCJwYXRoR3JvdXAiLCJwb3NpdGlvblN0cmluZyIsImFzc2lnbiIsImdyb3VwTGVuZ3RoIiwiZ3JvdXBJbmRleCIsIk1hdGgiLCJtYXgiLCJrZXkiLCJncm91cE5leHRQb3NpdGlvbiIsInBvdyIsImNlaWwiLCJsb2cxMCIsImZpeE5ld0xpbmVBZnRlckltcG9ydCIsInByZXZpb3VzSW1wb3J0IiwicHJldlJvb3QiLCJlbmRPZkxpbmUiLCJpbnNlcnRUZXh0QWZ0ZXJSYW5nZSIsInJlbW92ZU5ld0xpbmVBZnRlckltcG9ydCIsImN1cnJlbnRJbXBvcnQiLCJjdXJyUm9vdCIsInJhbmdlVG9SZW1vdmUiLCJ0ZXN0IiwicmVtb3ZlUmFuZ2UiLCJtYWtlTmV3bGluZXNCZXR3ZWVuUmVwb3J0IiwibmV3bGluZXNCZXR3ZWVuSW1wb3J0cyIsImdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4iLCJsaW5lc0JldHdlZW5JbXBvcnRzIiwibGluZXMiLCJ0cmltIiwiZW1wdHlMaW5lc0JldHdlZW4iLCJnZXRBbHBoYWJldGl6ZUNvbmZpZyIsIm9wdGlvbnMiLCJhbHBoYWJldGl6ZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwicGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXMiLCJpdGVtcyIsImVudW0iLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImNyZWF0ZSIsImltcG9ydE9yZGVyUnVsZSIsIlNldCIsImVycm9yIiwiUHJvZ3JhbSIsImxldmVsIiwiaW5jcmVtZW50TGV2ZWwiLCJkZWNyZW1lbnRMZXZlbCIsIkltcG9ydERlY2xhcmF0aW9uIiwiaGFuZGxlSW1wb3J0cyIsInNvdXJjZSIsInZhbHVlIiwiQ2FsbEV4cHJlc3Npb24iLCJoYW5kbGVSZXF1aXJlcyIsInJlcG9ydEFuZFJlc2V0IiwiRnVuY3Rpb25EZWNsYXJhdGlvbiIsIkZ1bmN0aW9uRXhwcmVzc2lvbiIsIkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiwiQmxvY2tTdGF0ZW1lbnQiLCJPYmplY3RFeHByZXNzaW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxnQkFBZ0IsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxFQUE2QyxPQUE3QyxDQUF0Qjs7QUFFQTs7QUFFQSxTQUFTQyxPQUFULENBQWlCQyxLQUFqQixFQUF3QjtBQUN0QixTQUFPQSxNQUFNQyxHQUFOLENBQVUsVUFBVUMsQ0FBVixFQUFhO0FBQzVCLFdBQU87QUFDTEMsWUFBTUQsRUFBRUMsSUFESDtBQUVMQyxZQUFNLENBQUNGLEVBQUVFLElBRko7QUFHTEMsWUFBTUgsRUFBRUc7QUFISCxLQUFQO0FBS0QsR0FOTSxFQU1KTixPQU5JLEVBQVA7QUFPRDs7QUFFRCxTQUFTTyx3QkFBVCxDQUFrQ0MsVUFBbEMsRUFBOENGLElBQTlDLEVBQW9ERyxLQUFwRCxFQUEyRDtBQUN6RCxNQUFJQyxxQkFBcUJKLElBQXpCO0FBQ0EsUUFBTUssU0FBUyxFQUFmO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlILEtBQXBCLEVBQTJCRyxHQUEzQixFQUFnQztBQUM5QkYseUJBQXFCRixXQUFXSyxzQkFBWCxDQUFrQ0gsa0JBQWxDLENBQXJCO0FBQ0EsUUFBSUEsc0JBQXNCLElBQTFCLEVBQWdDO0FBQzlCO0FBQ0Q7QUFD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LElBQWUsQ0FBQyw2QkFBZ0J0TSxJQUFoQixDQUFoQixJQUF5QyxDQUFDbUksdUJBQXVCbkksS0FBS3VCLE1BQTVCLENBQTlDLEVBQW1GO0FBQ2pGO0FBQ0Q7QUFDRCxjQUFNekIsT0FBT0UsS0FBSzZDLFNBQUwsQ0FBZSxDQUFmLEVBQWtCK0osS0FBL0I7QUFDQTFFLHFCQUNFdEUsT0FERixFQUVFNUQsSUFGRixFQUdFRixJQUhGLEVBSUUsU0FKRixFQUtFcUgsS0FMRixFQU1FbEcsUUFORixFQU9FMEssNkJBUEY7QUFTRCxPQTdCSTtBQThCTCxzQkFBZ0IsU0FBU29CLGNBQVQsR0FBMEI7QUFDeEMsWUFBSXJDLDJCQUEyQixRQUEvQixFQUF5QztBQUN2Q0Qsb0NBQTBCN0csT0FBMUIsRUFBbUMzQyxRQUFuQyxFQUE2Q3lKLHNCQUE3QztBQUNEOztBQUVELFlBQUlRLFlBQVlySCxLQUFaLEtBQXNCLFFBQTFCLEVBQW9DO0FBQ2xDK0IsbUNBQXlCM0UsUUFBekIsRUFBbUNpSyxXQUFuQztBQUNEOztBQUVEN0YsNkJBQXFCekIsT0FBckIsRUFBOEIzQyxRQUE5Qjs7QUFFQUEsbUJBQVcsRUFBWDtBQUNELE9BMUNJO0FBMkNMK0wsMkJBQXFCVCxjQTNDaEI7QUE0Q0xVLDBCQUFvQlYsY0E1Q2Y7QUE2Q0xXLCtCQUF5QlgsY0E3Q3BCO0FBOENMWSxzQkFBZ0JaLGNBOUNYO0FBK0NMYSx3QkFBa0JiLGNBL0NiO0FBZ0RMLGtDQUE0QkMsY0FoRHZCO0FBaURMLGlDQUEyQkEsY0FqRHRCO0FBa0RMLHNDQUFnQ0EsY0FsRDNCO0FBbURMLDZCQUF1QkEsY0FuRGxCO0FBb0RMLCtCQUF5QkE7QUFwRHBCLEtBQVA7QUFzREQ7QUEzSmMsQ0FBakIiLCJmaWxlIjoib3JkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuaW1wb3J0IG1pbmltYXRjaCBmcm9tICdtaW5pbWF0Y2gnXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmNvbnN0IGRlZmF1bHRHcm91cHMgPSBbJ2J1aWx0aW4nLCAnZXh0ZXJuYWwnLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnXVxuXG4vLyBSRVBPUlRJTkcgQU5EIEZJWElOR1xuXG5mdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gIHJldHVybiBhcnJheS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgcmFuazogLXYucmFuayxcbiAgICAgIG5vZGU6IHYubm9kZSxcbiAgICB9XG4gIH0pLnJldmVyc2UoKVxufVxuXG5mdW5jdGlvbiBnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIoc291cmNlQ29kZSwgbm9kZSwgY291bnQpIHtcbiAgbGV0IGN1cnJlbnROb2RlT3JUb2tlbiA9IG5vZGVcbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgY3VycmVudE5vZGVPclRva2VuID0gc291cmNlQ29kZS5nZXRUb2tlbk9yQ29tbWVudEFmdGVyKGN1cnJlbnROb2RlT3JUb2tlbilcbiAgICBpZiAoY3VycmVudE5vZGVPclRva2VuID09IG51bGwpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGN1cnJlbnROb2RlT3JUb2tlbilcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIGdldFRva2Vuc09yQ29tbWVudHNCZWZvcmUoc291cmNlQ29kZSwgbm9kZSwgY291bnQpIHtcbiAgbGV0IGN1cnJlbnROb2RlT3JUb2tlbiA9IG5vZGVcbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgY3VycmVudE5vZGVPclRva2VuID0gc291cmNlQ29kZS5nZXRUb2tlbk9yQ29tbWVudEJlZm9yZShjdXJyZW50Tm9kZU9yVG9rZW4pXG4gICAgaWYgKGN1cnJlbnROb2RlT3JUb2tlbiA9PSBudWxsKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXN1bHQucHVzaChjdXJyZW50Tm9kZU9yVG9rZW4pXG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gdGFrZVRva2Vuc0FmdGVyV2hpbGUoc291cmNlQ29kZSwgbm9kZSwgY29uZGl0aW9uKSB7XG4gIGNvbnN0IHRva2VucyA9IGdldFRva2Vuc09yQ29tbWVudHNBZnRlcihzb3VyY2VDb2RlLCBub2RlLCAxMDApXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNvbmRpdGlvbih0b2tlbnNbaV0pKSB7XG4gICAgICByZXN1bHQucHVzaCh0b2tlbnNbaV0pXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiB0YWtlVG9rZW5zQmVmb3JlV2hpbGUoc291cmNlQ29kZSwgbm9kZSwgY29uZGl0aW9uKSB7XG4gIGNvbnN0IHRva2VucyA9IGdldFRva2Vuc09yQ29tbWVudHNCZWZvcmUoc291cmNlQ29kZSwgbm9kZSwgMTAwKVxuICBjb25zdCByZXN1bHQgPSBbXVxuICBmb3IgKGxldCBpID0gdG9rZW5zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKGNvbmRpdGlvbih0b2tlbnNbaV0pKSB7XG4gICAgICByZXN1bHQucHVzaCh0b2tlbnNbaV0pXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpIHtcbiAgaWYgKGltcG9ydGVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIGxldCBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZFswXVxuICByZXR1cm4gaW1wb3J0ZWQuZmlsdGVyKGZ1bmN0aW9uIChpbXBvcnRlZE1vZHVsZSkge1xuICAgIGNvbnN0IHJlcyA9IGltcG9ydGVkTW9kdWxlLnJhbmsgPCBtYXhTZWVuUmFua05vZGUucmFua1xuICAgIGlmIChtYXhTZWVuUmFua05vZGUucmFuayA8IGltcG9ydGVkTW9kdWxlLnJhbmspIHtcbiAgICAgIG1heFNlZW5SYW5rTm9kZSA9IGltcG9ydGVkTW9kdWxlXG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfSlcbn1cblxuZnVuY3Rpb24gZmluZFJvb3ROb2RlKG5vZGUpIHtcbiAgbGV0IHBhcmVudCA9IG5vZGVcbiAgd2hpbGUgKHBhcmVudC5wYXJlbnQgIT0gbnVsbCAmJiBwYXJlbnQucGFyZW50LmJvZHkgPT0gbnVsbCkge1xuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRcbiAgfVxuICByZXR1cm4gcGFyZW50XG59XG5cbmZ1bmN0aW9uIGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgbm9kZSkge1xuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNBZnRlcldoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbW1lbnRPblNhbWVMaW5lQXMobm9kZSkpXG4gIGxldCBlbmRPZlRva2VucyA9IHRva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCA+IDBcbiAgICA/IHRva2Vuc1RvRW5kT2ZMaW5lW3Rva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgOiBub2RlLnJhbmdlWzFdXG4gIGxldCByZXN1bHQgPSBlbmRPZlRva2Vuc1xuICBmb3IgKGxldCBpID0gZW5kT2ZUb2tlbnM7IGkgPCBzb3VyY2VDb2RlLnRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc291cmNlQ29kZS50ZXh0W2ldID09PSAnXFxuJykge1xuICAgICAgcmVzdWx0ID0gaSArIDFcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGlmIChzb3VyY2VDb2RlLnRleHRbaV0gIT09ICcgJyAmJiBzb3VyY2VDb2RlLnRleHRbaV0gIT09ICdcXHQnICYmIHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJ1xccicpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlc3VsdCA9IGkgKyAxXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBjb21tZW50T25TYW1lTGluZUFzKG5vZGUpIHtcbiAgcmV0dXJuIHRva2VuID0+ICh0b2tlbi50eXBlID09PSAnQmxvY2snIHx8ICB0b2tlbi50eXBlID09PSAnTGluZScpICYmXG4gICAgICB0b2tlbi5sb2Muc3RhcnQubGluZSA9PT0gdG9rZW4ubG9jLmVuZC5saW5lICYmXG4gICAgICB0b2tlbi5sb2MuZW5kLmxpbmUgPT09IG5vZGUubG9jLmVuZC5saW5lXG59XG5cbmZ1bmN0aW9uIGZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBub2RlKSB7XG4gIGNvbnN0IHRva2Vuc1RvRW5kT2ZMaW5lID0gdGFrZVRva2Vuc0JlZm9yZVdoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbW1lbnRPblNhbWVMaW5lQXMobm9kZSkpXG4gIGxldCBzdGFydE9mVG9rZW5zID0gdG9rZW5zVG9FbmRPZkxpbmUubGVuZ3RoID4gMCA/IHRva2Vuc1RvRW5kT2ZMaW5lWzBdLnJhbmdlWzBdIDogbm9kZS5yYW5nZVswXVxuICBsZXQgcmVzdWx0ID0gc3RhcnRPZlRva2Vuc1xuICBmb3IgKGxldCBpID0gc3RhcnRPZlRva2VucyAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICBpZiAoc291cmNlQ29kZS50ZXh0W2ldICE9PSAnICcgJiYgc291cmNlQ29kZS50ZXh0W2ldICE9PSAnXFx0Jykge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVzdWx0ID0gaVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gaXNQbGFpblJlcXVpcmVNb2R1bGUobm9kZSkge1xuICBpZiAobm9kZS50eXBlICE9PSAnVmFyaWFibGVEZWNsYXJhdGlvbicpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBpZiAobm9kZS5kZWNsYXJhdGlvbnMubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgZGVjbCA9IG5vZGUuZGVjbGFyYXRpb25zWzBdXG4gIGNvbnN0IHJlc3VsdCA9IGRlY2wuaWQgJiZcbiAgICAoZGVjbC5pZC50eXBlID09PSAnSWRlbnRpZmllcicgfHwgZGVjbC5pZC50eXBlID09PSAnT2JqZWN0UGF0dGVybicpICYmXG4gICAgZGVjbC5pbml0ICE9IG51bGwgJiZcbiAgICBkZWNsLmluaXQudHlwZSA9PT0gJ0NhbGxFeHByZXNzaW9uJyAmJlxuICAgIGRlY2wuaW5pdC5jYWxsZWUgIT0gbnVsbCAmJlxuICAgIGRlY2wuaW5pdC5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgZGVjbC5pbml0LmFyZ3VtZW50cyAhPSBudWxsICYmXG4gICAgZGVjbC5pbml0LmFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiZcbiAgICBkZWNsLmluaXQuYXJndW1lbnRzWzBdLnR5cGUgPT09ICdMaXRlcmFsJ1xuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5JbXBvcnRNb2R1bGUobm9kZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nICYmIG5vZGUuc3BlY2lmaWVycyAhPSBudWxsICYmIG5vZGUuc3BlY2lmaWVycy5sZW5ndGggPiAwXG59XG5cbmZ1bmN0aW9uIGNhbkNyb3NzTm9kZVdoaWxlUmVvcmRlcihub2RlKSB7XG4gIHJldHVybiBpc1BsYWluUmVxdWlyZU1vZHVsZShub2RlKSB8fCBpc1BsYWluSW1wb3J0TW9kdWxlKG5vZGUpXG59XG5cbmZ1bmN0aW9uIGNhblJlb3JkZXJJdGVtcyhmaXJzdE5vZGUsIHNlY29uZE5vZGUpIHtcbiAgY29uc3QgcGFyZW50ID0gZmlyc3ROb2RlLnBhcmVudFxuICBjb25zdCBbZmlyc3RJbmRleCwgc2Vjb25kSW5kZXhdID0gW1xuICAgIHBhcmVudC5ib2R5LmluZGV4T2YoZmlyc3ROb2RlKSxcbiAgICBwYXJlbnQuYm9keS5pbmRleE9mKHNlY29uZE5vZGUpLFxuICBdLnNvcnQoKVxuICBjb25zdCBub2Rlc0JldHdlZW4gPSBwYXJlbnQuYm9keS5zbGljZShmaXJzdEluZGV4LCBzZWNvbmRJbmRleCArIDEpXG4gIGZvciAodmFyIG5vZGVCZXR3ZWVuIG9mIG5vZGVzQmV0d2Vlbikge1xuICAgIGlmICghY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyKG5vZGVCZXR3ZWVuKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGZpeE91dE9mT3JkZXIoY29udGV4dCwgZmlyc3ROb2RlLCBzZWNvbmROb2RlLCBvcmRlcikge1xuICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKClcblxuICBjb25zdCBmaXJzdFJvb3QgPSBmaW5kUm9vdE5vZGUoZmlyc3ROb2RlLm5vZGUpXG4gIGNvbnN0IGZpcnN0Um9vdFN0YXJ0ID0gZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIGZpcnN0Um9vdClcbiAgY29uc3QgZmlyc3RSb290RW5kID0gZmluZEVuZE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBmaXJzdFJvb3QpXG5cbiAgY29uc3Qgc2Vjb25kUm9vdCA9IGZpbmRSb290Tm9kZShzZWNvbmROb2RlLm5vZGUpXG4gIGNvbnN0IHNlY29uZFJvb3RTdGFydCA9IGZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBzZWNvbmRSb290KVxuICBjb25zdCBzZWNvbmRSb290RW5kID0gZmluZEVuZE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBzZWNvbmRSb290KVxuICBjb25zdCBjYW5GaXggPSBjYW5SZW9yZGVySXRlbXMoZmlyc3RSb290LCBzZWNvbmRSb290KVxuXG4gIGxldCBuZXdDb2RlID0gc291cmNlQ29kZS50ZXh0LnN1YnN0cmluZyhzZWNvbmRSb290U3RhcnQsIHNlY29uZFJvb3RFbmQpXG4gIGlmIChuZXdDb2RlW25ld0NvZGUubGVuZ3RoIC0gMV0gIT09ICdcXG4nKSB7XG4gICAgbmV3Q29kZSA9IG5ld0NvZGUgKyAnXFxuJ1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9ICdgJyArIHNlY29uZE5vZGUubmFtZSArICdgIGltcG9ydCBzaG91bGQgb2NjdXIgJyArIG9yZGVyICtcbiAgICAgICcgaW1wb3J0IG9mIGAnICsgZmlyc3ROb2RlLm5hbWUgKyAnYCdcblxuICBpZiAob3JkZXIgPT09ICdiZWZvcmUnKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogc2Vjb25kTm9kZS5ub2RlLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIGZpeDogY2FuRml4ICYmIChmaXhlciA9PlxuICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgICAgIFtmaXJzdFJvb3RTdGFydCwgc2Vjb25kUm9vdEVuZF0sXG4gICAgICAgICAgbmV3Q29kZSArIHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcoZmlyc3RSb290U3RhcnQsIHNlY29uZFJvb3RTdGFydClcbiAgICAgICAgKSksXG4gICAgfSlcbiAgfSBlbHNlIGlmIChvcmRlciA9PT0gJ2FmdGVyJykge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IHNlY29uZE5vZGUubm9kZSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBmaXg6IGNhbkZpeCAmJiAoZml4ZXIgPT5cbiAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgICBbc2Vjb25kUm9vdFN0YXJ0LCBmaXJzdFJvb3RFbmRdLFxuICAgICAgICAgIHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcoc2Vjb25kUm9vdEVuZCwgZmlyc3RSb290RW5kKSArIG5ld0NvZGVcbiAgICAgICAgKSksXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBvcnRPdXRPZk9yZGVyKGNvbnRleHQsIGltcG9ydGVkLCBvdXRPZk9yZGVyLCBvcmRlcikge1xuICBvdXRPZk9yZGVyLmZvckVhY2goZnVuY3Rpb24gKGltcCkge1xuICAgIGNvbnN0IGZvdW5kID0gaW1wb3J0ZWQuZmluZChmdW5jdGlvbiBoYXNIaWdoZXJSYW5rKGltcG9ydGVkSXRlbSkge1xuICAgICAgcmV0dXJuIGltcG9ydGVkSXRlbS5yYW5rID4gaW1wLnJhbmtcbiAgICB9KVxuICAgIGZpeE91dE9mT3JkZXIoY29udGV4dCwgZm91bmQsIGltcCwgb3JkZXIpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIG1ha2VPdXRPZk9yZGVyUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkKSB7XG4gIGNvbnN0IG91dE9mT3JkZXIgPSBmaW5kT3V0T2ZPcmRlcihpbXBvcnRlZClcbiAgaWYgKCFvdXRPZk9yZGVyLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG4gIC8vIFRoZXJlIGFyZSB0aGluZ3MgdG8gcmVwb3J0LiBUcnkgdG8gbWluaW1pemUgdGhlIG51bWJlciBvZiByZXBvcnRlZCBlcnJvcnMuXG4gIGNvbnN0IHJldmVyc2VkSW1wb3J0ZWQgPSByZXZlcnNlKGltcG9ydGVkKVxuICBjb25zdCByZXZlcnNlZE9yZGVyID0gZmluZE91dE9mT3JkZXIocmV2ZXJzZWRJbXBvcnRlZClcbiAgaWYgKHJldmVyc2VkT3JkZXIubGVuZ3RoIDwgb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXBvcnRPdXRPZk9yZGVyKGNvbnRleHQsIHJldmVyc2VkSW1wb3J0ZWQsIHJldmVyc2VkT3JkZXIsICdhZnRlcicpXG4gICAgcmV0dXJuXG4gIH1cbiAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgJ2JlZm9yZScpXG59XG5cbmZ1bmN0aW9uIGltcG9ydHNTb3J0ZXJBc2MoaW1wb3J0QSwgaW1wb3J0Qikge1xuICBpZiAoaW1wb3J0QSA8IGltcG9ydEIpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuXG4gIGlmIChpbXBvcnRBID4gaW1wb3J0Qikge1xuICAgIHJldHVybiAxXG4gIH1cblxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBpbXBvcnRzU29ydGVyRGVzYyhpbXBvcnRBLCBpbXBvcnRCKSB7XG4gIGlmIChpbXBvcnRBIDwgaW1wb3J0Qikge1xuICAgIHJldHVybiAxXG4gIH1cblxuICBpZiAoaW1wb3J0QSA+IGltcG9ydEIpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuXG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIG11dGF0ZVJhbmtzVG9BbHBoYWJldGl6ZShpbXBvcnRlZCwgYWxwaGFiZXRpemVPcHRpb25zKSB7XG4gIGNvbnN0IGdyb3VwZWRCeVJhbmtzID0gaW1wb3J0ZWQucmVkdWNlKGZ1bmN0aW9uKGFjYywgaW1wb3J0ZWRJdGVtKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFjY1tpbXBvcnRlZEl0ZW0ucmFua10pKSB7XG4gICAgICBhY2NbaW1wb3J0ZWRJdGVtLnJhbmtdID0gW11cbiAgICB9XG4gICAgYWNjW2ltcG9ydGVkSXRlbS5yYW5rXS5wdXNoKGltcG9ydGVkSXRlbS5uYW1lKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgY29uc3QgZ3JvdXBSYW5rcyA9IE9iamVjdC5rZXlzKGdyb3VwZWRCeVJhbmtzKVxuXG4gIGNvbnN0IHNvcnRlckZuID0gYWxwaGFiZXRpemVPcHRpb25zLm9yZGVyID09PSAnYXNjJyA/IGltcG9ydHNTb3J0ZXJBc2MgOiBpbXBvcnRzU29ydGVyRGVzY1xuICBjb25zdCBjb21wYXJhdG9yID0gYWxwaGFiZXRpemVPcHRpb25zLmNhc2VJbnNlbnNpdGl2ZSA/IChhLCBiKSA9PiBzb3J0ZXJGbihTdHJpbmcoYSkudG9Mb3dlckNhc2UoKSwgU3RyaW5nKGIpLnRvTG93ZXJDYXNlKCkpIDogKGEsIGIpID0+IHNvcnRlckZuKGEsIGIpXG4gIC8vIHNvcnQgaW1wb3J0cyBsb2NhbGx5IHdpdGhpbiB0aGVpciBncm91cFxuICBncm91cFJhbmtzLmZvckVhY2goZnVuY3Rpb24oZ3JvdXBSYW5rKSB7XG4gICAgZ3JvdXBlZEJ5UmFua3NbZ3JvdXBSYW5rXS5zb3J0KGNvbXBhcmF0b3IpXG4gIH0pXG5cbiAgLy8gYXNzaWduIGdsb2JhbGx5IHVuaXF1ZSByYW5rIHRvIGVhY2ggaW1wb3J0XG4gIGxldCBuZXdSYW5rID0gMFxuICBjb25zdCBhbHBoYWJldGl6ZWRSYW5rcyA9IGdyb3VwUmFua3Muc29ydCgpLnJlZHVjZShmdW5jdGlvbihhY2MsIGdyb3VwUmFuaykge1xuICAgIGdyb3VwZWRCeVJhbmtzW2dyb3VwUmFua10uZm9yRWFjaChmdW5jdGlvbihpbXBvcnRlZEl0ZW1OYW1lKSB7XG4gICAgICBhY2NbaW1wb3J0ZWRJdGVtTmFtZV0gPSBwYXJzZUludChncm91cFJhbmssIDEwKSArIG5ld1JhbmtcbiAgICAgIG5ld1JhbmsgKz0gMVxuICAgIH0pXG4gICAgcmV0dXJuIGFjY1xuICB9LCB7fSlcblxuICAvLyBtdXRhdGUgdGhlIG9yaWdpbmFsIGdyb3VwLXJhbmsgd2l0aCBhbHBoYWJldGl6ZWQtcmFua1xuICBpbXBvcnRlZC5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVkSXRlbSkge1xuICAgIGltcG9ydGVkSXRlbS5yYW5rID0gYWxwaGFiZXRpemVkUmFua3NbaW1wb3J0ZWRJdGVtLm5hbWVdXG4gIH0pXG59XG5cbi8vIERFVEVDVElOR1xuXG5mdW5jdGlvbiBjb21wdXRlUGF0aFJhbmsocmFua3MsIHBhdGhHcm91cHMsIHBhdGgsIG1heFBvc2l0aW9uKSB7XG4gIGZvciAobGV0IGkgPSAwLCBsID0gcGF0aEdyb3Vwcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCB7IHBhdHRlcm4sIHBhdHRlcm5PcHRpb25zLCBncm91cCwgcG9zaXRpb24gPSAxIH0gPSBwYXRoR3JvdXBzW2ldXG4gICAgaWYgKG1pbmltYXRjaChwYXRoLCBwYXR0ZXJuLCBwYXR0ZXJuT3B0aW9ucyB8fCB7IG5vY29tbWVudDogdHJ1ZSB9KSkge1xuICAgICAgcmV0dXJuIHJhbmtzW2dyb3VwXSArIChwb3NpdGlvbiAvIG1heFBvc2l0aW9uKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgbmFtZSwgdHlwZSwgZXhjbHVkZWRJbXBvcnRUeXBlcykge1xuICBjb25zdCBpbXBUeXBlID0gaW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KVxuICBsZXQgcmFua1xuICBpZiAoIWV4Y2x1ZGVkSW1wb3J0VHlwZXMuaGFzKGltcFR5cGUpKSB7XG4gICAgcmFuayA9IGNvbXB1dGVQYXRoUmFuayhyYW5rcy5ncm91cHMsIHJhbmtzLnBhdGhHcm91cHMsIG5hbWUsIHJhbmtzLm1heFBvc2l0aW9uKVxuICB9XG4gIGlmICghcmFuaykge1xuICAgIHJhbmsgPSByYW5rcy5ncm91cHNbaW1wVHlwZV1cbiAgfVxuICBpZiAodHlwZSAhPT0gJ2ltcG9ydCcpIHtcbiAgICByYW5rICs9IDEwMFxuICB9XG5cbiAgcmV0dXJuIHJhbmtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJOb2RlKGNvbnRleHQsIG5vZGUsIG5hbWUsIHR5cGUsIHJhbmtzLCBpbXBvcnRlZCwgZXhjbHVkZWRJbXBvcnRUeXBlcykge1xuICBjb25zdCByYW5rID0gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIG5hbWUsIHR5cGUsIGV4Y2x1ZGVkSW1wb3J0VHlwZXMpXG4gIGlmIChyYW5rICE9PSAtMSkge1xuICAgIGltcG9ydGVkLnB1c2goe25hbWUsIHJhbmssIG5vZGV9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIChub2RlLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0b3InIHx8IGlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKVxufVxuXG5jb25zdCB0eXBlcyA9IFsnYnVpbHRpbicsICdleHRlcm5hbCcsICdpbnRlcm5hbCcsICd1bmtub3duJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0eXBlLXJhbmsgcGFpcnMuXG4vLyBFeGFtcGxlOiB7IGluZGV4OiAwLCBzaWJsaW5nOiAxLCBwYXJlbnQ6IDEsIGV4dGVybmFsOiAxLCBidWlsdGluOiAyLCBpbnRlcm5hbDogMiB9XG4vLyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgdHlwZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBvciBoYXMgYSBkdXBsaWNhdGVcbmZ1bmN0aW9uIGNvbnZlcnRHcm91cHNUb1JhbmtzKGdyb3Vwcykge1xuICBjb25zdCByYW5rT2JqZWN0ID0gZ3JvdXBzLnJlZHVjZShmdW5jdGlvbihyZXMsIGdyb3VwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICBncm91cCA9IFtncm91cF1cbiAgICB9XG4gICAgZ3JvdXAuZm9yRWFjaChmdW5jdGlvbihncm91cEl0ZW0pIHtcbiAgICAgIGlmICh0eXBlcy5pbmRleE9mKGdyb3VwSXRlbSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IFVua25vd24gdHlwZSBgJyArXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZ3JvdXBJdGVtKSArICdgJylcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpXG4gICAgICB9XG4gICAgICByZXNbZ3JvdXBJdGVtXSA9IGluZGV4XG4gICAgfSlcbiAgICByZXR1cm4gcmVzXG4gIH0sIHt9KVxuXG4gIGNvbnN0IG9taXR0ZWRUeXBlcyA9IHR5cGVzLmZpbHRlcihmdW5jdGlvbih0eXBlKSB7XG4gICAgcmV0dXJuIHJhbmtPYmplY3RbdHlwZV0gPT09IHVuZGVmaW5lZFxuICB9KVxuXG4gIHJldHVybiBvbWl0dGVkVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHJlcywgdHlwZSkge1xuICAgIHJlc1t0eXBlXSA9IGdyb3Vwcy5sZW5ndGhcbiAgICByZXR1cm4gcmVzXG4gIH0sIHJhbmtPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXRoR3JvdXBzRm9yUmFua3MocGF0aEdyb3Vwcykge1xuICBjb25zdCBhZnRlciA9IHt9XG4gIGNvbnN0IGJlZm9yZSA9IHt9XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBwYXRoR3JvdXBzLm1hcCgocGF0aEdyb3VwLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgZ3JvdXAsIHBvc2l0aW9uOiBwb3NpdGlvblN0cmluZyB9ID0gcGF0aEdyb3VwXG4gICAgbGV0IHBvc2l0aW9uID0gMFxuICAgIGlmIChwb3NpdGlvblN0cmluZyA9PT0gJ2FmdGVyJykge1xuICAgICAgaWYgKCFhZnRlcltncm91cF0pIHtcbiAgICAgICAgYWZ0ZXJbZ3JvdXBdID0gMVxuICAgICAgfVxuICAgICAgcG9zaXRpb24gPSBhZnRlcltncm91cF0rK1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb25TdHJpbmcgPT09ICdiZWZvcmUnKSB7XG4gICAgICBpZiAoIWJlZm9yZVtncm91cF0pIHtcbiAgICAgICAgYmVmb3JlW2dyb3VwXSA9IFtdXG4gICAgICB9XG4gICAgICBiZWZvcmVbZ3JvdXBdLnB1c2goaW5kZXgpXG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHBhdGhHcm91cCwgeyBwb3NpdGlvbiB9KVxuICB9KVxuXG4gIGxldCBtYXhQb3NpdGlvbiA9IDFcblxuICBPYmplY3Qua2V5cyhiZWZvcmUpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBMZW5ndGggPSBiZWZvcmVbZ3JvdXBdLmxlbmd0aFxuICAgIGJlZm9yZVtncm91cF0uZm9yRWFjaCgoZ3JvdXBJbmRleCwgaW5kZXgpID0+IHtcbiAgICAgIHRyYW5zZm9ybWVkW2dyb3VwSW5kZXhdLnBvc2l0aW9uID0gLTEgKiAoZ3JvdXBMZW5ndGggLSBpbmRleClcbiAgICB9KVxuICAgIG1heFBvc2l0aW9uID0gTWF0aC5tYXgobWF4UG9zaXRpb24sIGdyb3VwTGVuZ3RoKVxuICB9KVxuXG4gIE9iamVjdC5rZXlzKGFmdGVyKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBncm91cE5leHRQb3NpdGlvbiA9IGFmdGVyW2tleV1cbiAgICBtYXhQb3NpdGlvbiA9IE1hdGgubWF4KG1heFBvc2l0aW9uLCBncm91cE5leHRQb3NpdGlvbiAtIDEpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoR3JvdXBzOiB0cmFuc2Zvcm1lZCxcbiAgICBtYXhQb3NpdGlvbjogbWF4UG9zaXRpb24gPiAxMCA/IE1hdGgucG93KDEwLCBNYXRoLmNlaWwoTWF0aC5sb2cxMChtYXhQb3NpdGlvbikpKSA6IDEwLFxuICB9XG59XG5cbmZ1bmN0aW9uIGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCkge1xuICBjb25zdCBwcmV2Um9vdCA9IGZpbmRSb290Tm9kZShwcmV2aW91c0ltcG9ydC5ub2RlKVxuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNBZnRlcldoaWxlKFxuICAgIGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLCBwcmV2Um9vdCwgY29tbWVudE9uU2FtZUxpbmVBcyhwcmV2Um9vdCkpXG5cbiAgbGV0IGVuZE9mTGluZSA9IHByZXZSb290LnJhbmdlWzFdXG4gIGlmICh0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwKSB7XG4gICAgZW5kT2ZMaW5lID0gdG9rZW5zVG9FbmRPZkxpbmVbdG9rZW5zVG9FbmRPZkxpbmUubGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgfVxuICByZXR1cm4gKGZpeGVyKSA9PiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShbcHJldlJvb3QucmFuZ2VbMF0sIGVuZE9mTGluZV0sICdcXG4nKVxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gIGNvbnN0IHByZXZSb290ID0gZmluZFJvb3ROb2RlKHByZXZpb3VzSW1wb3J0Lm5vZGUpXG4gIGNvbnN0IGN1cnJSb290ID0gZmluZFJvb3ROb2RlKGN1cnJlbnRJbXBvcnQubm9kZSlcbiAgY29uc3QgcmFuZ2VUb1JlbW92ZSA9IFtcbiAgICBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIHByZXZSb290KSxcbiAgICBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgY3VyclJvb3QpLFxuICBdXG4gIGlmICgvXlxccyokLy50ZXN0KHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcocmFuZ2VUb1JlbW92ZVswXSwgcmFuZ2VUb1JlbW92ZVsxXSkpKSB7XG4gICAgcmV0dXJuIChmaXhlcikgPT4gZml4ZXIucmVtb3ZlUmFuZ2UocmFuZ2VUb1JlbW92ZSlcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApXG5cbiAgICByZXR1cm4gbGluZXNCZXR3ZWVuSW1wb3J0cy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLnRyaW0oKS5sZW5ndGgpLmxlbmd0aFxuICB9XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdXG5cbiAgaW1wb3J0ZWQuc2xpY2UoMSkuZm9yRWFjaChmdW5jdGlvbihjdXJyZW50SW1wb3J0KSB7XG4gICAgY29uc3QgZW1wdHlMaW5lc0JldHdlZW4gPSBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KVxuXG4gICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMnXG4gICAgICAgIHx8IG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnKSB7XG4gICAgICBpZiAoY3VycmVudEltcG9ydC5yYW5rICE9PSBwcmV2aW91c0ltcG9ydC5yYW5rICYmIGVtcHR5TGluZXNCZXR3ZWVuID09PSAwKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6ICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgICBmaXg6IGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCksXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQucmFuayA9PT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBlbXB0eUxpbmVzQmV0d2VlbiA+IDBcbiAgICAgICAgJiYgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cyAhPT0gJ2Fsd2F5cy1hbmQtaW5zaWRlLWdyb3VwcycpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHByZXZpb3VzSW1wb3J0Lm5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIHdpdGhpbiBpbXBvcnQgZ3JvdXAnLFxuICAgICAgICAgIGZpeDogcmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXNCZXR3ZWVuID4gMCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICBtZXNzYWdlOiAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgZml4OiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0ltcG9ydCA9IGN1cnJlbnRJbXBvcnRcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0QWxwaGFiZXRpemVDb25maWcob3B0aW9ucykge1xuICBjb25zdCBhbHBoYWJldGl6ZSA9IG9wdGlvbnMuYWxwaGFiZXRpemUgfHwge31cbiAgY29uc3Qgb3JkZXIgPSBhbHBoYWJldGl6ZS5vcmRlciB8fCAnaWdub3JlJ1xuICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBhbHBoYWJldGl6ZS5jYXNlSW5zZW5zaXRpdmUgfHwgZmFsc2VcblxuICByZXR1cm4ge29yZGVyLCBjYXNlSW5zZW5zaXRpdmV9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnb3JkZXInKSxcbiAgICB9LFxuXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGF0aEdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXR0ZXJuT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBncm91cDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICBlbnVtOiB0eXBlcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIGVudW06IFsnYWZ0ZXInLCAnYmVmb3JlJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsncGF0dGVybicsICdncm91cCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgICduZXdsaW5lcy1iZXR3ZWVuJzoge1xuICAgICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgICAnaWdub3JlJyxcbiAgICAgICAgICAgICAgJ2Fsd2F5cycsXG4gICAgICAgICAgICAgICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnLFxuICAgICAgICAgICAgICAnbmV2ZXInLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFscGhhYmV0aXplOiB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgY2FzZUluc2Vuc2l0aXZlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgICAgIGVudW06IFsnaWdub3JlJywgJ2FzYycsICdkZXNjJ10sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ2lnbm9yZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIGltcG9ydE9yZGVyUnVsZSAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzID0gb3B0aW9uc1snbmV3bGluZXMtYmV0d2VlbiddIHx8ICdpZ25vcmUnXG4gICAgY29uc3QgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXMgPSBuZXcgU2V0KG9wdGlvbnNbJ3BhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzJ10gfHwgWydidWlsdGluJywgJ2V4dGVybmFsJ10pXG4gICAgY29uc3QgYWxwaGFiZXRpemUgPSBnZXRBbHBoYWJldGl6ZUNvbmZpZyhvcHRpb25zKVxuICAgIGxldCByYW5rc1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcGF0aEdyb3VwcywgbWF4UG9zaXRpb24gfSA9IGNvbnZlcnRQYXRoR3JvdXBzRm9yUmFua3Mob3B0aW9ucy5wYXRoR3JvdXBzIHx8IFtdKVxuICAgICAgcmFua3MgPSB7XG4gICAgICAgIGdyb3VwczogY29udmVydEdyb3Vwc1RvUmFua3Mob3B0aW9ucy5ncm91cHMgfHwgZGVmYXVsdEdyb3VwcyksXG4gICAgICAgIHBhdGhHcm91cHMsXG4gICAgICAgIG1heFBvc2l0aW9uLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBNYWxmb3JtZWQgY29uZmlndXJhdGlvblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUHJvZ3JhbTogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGVycm9yLm1lc3NhZ2UpXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGxldCBpbXBvcnRlZCA9IFtdXG4gICAgbGV0IGxldmVsID0gMFxuXG4gICAgZnVuY3Rpb24gaW5jcmVtZW50TGV2ZWwoKSB7XG4gICAgICBsZXZlbCsrXG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwtLVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnNwZWNpZmllcnMubGVuZ3RoKSB7IC8vIElnbm9yaW5nIHVuYXNzaWduZWQgaW1wb3J0c1xuICAgICAgICAgIGNvbnN0IG5hbWUgPSBub2RlLnNvdXJjZS52YWx1ZVxuICAgICAgICAgIHJlZ2lzdGVyTm9kZShcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICdpbXBvcnQnLFxuICAgICAgICAgICAgcmFua3MsXG4gICAgICAgICAgICBpbXBvcnRlZCxcbiAgICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGxldmVsICE9PSAwIHx8ICFpc1N0YXRpY1JlcXVpcmUobm9kZSkgfHwgIWlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlXG4gICAgICAgIHJlZ2lzdGVyTm9kZShcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICAncmVxdWlyZScsXG4gICAgICAgICAgcmFua3MsXG4gICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXNcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiByZXBvcnRBbmRSZXNldCgpIHtcbiAgICAgICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgIT09ICdpZ25vcmUnKSB7XG4gICAgICAgICAgbWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCwgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbHBoYWJldGl6ZS5vcmRlciAhPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgICBtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUoaW1wb3J0ZWQsIGFscGhhYmV0aXplKVxuICAgICAgICB9XG5cbiAgICAgICAgbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpXG5cbiAgICAgICAgaW1wb3J0ZWQgPSBbXVxuICAgICAgfSxcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGluY3JlbWVudExldmVsLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEJsb2NrU3RhdGVtZW50OiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIE9iamVjdEV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRGVjbGFyYXRpb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Jsb2NrU3RhdGVtZW50OmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdPYmplY3RFeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
+      'ObjectExpression:exit': decrementLevel };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9vcmRlci5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0R3JvdXBzIiwicmV2ZXJzZSIsImFycmF5IiwibWFwIiwidiIsIk9iamVjdCIsImFzc2lnbiIsInJhbmsiLCJnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIiLCJzb3VyY2VDb2RlIiwibm9kZSIsImNvdW50IiwiY3VycmVudE5vZGVPclRva2VuIiwicmVzdWx0IiwiaSIsImdldFRva2VuT3JDb21tZW50QWZ0ZXIiLCJwdXNoIiwiZ2V0VG9rZW5zT3JDb21tZW50c0JlZm9yZSIsImdldFRva2VuT3JDb21tZW50QmVmb3JlIiwidGFrZVRva2Vuc0FmdGVyV2hpbGUiLCJjb25kaXRpb24iLCJ0b2tlbnMiLCJsZW5ndGgiLCJ0YWtlVG9rZW5zQmVmb3JlV2hpbGUiLCJmaW5kT3V0T2ZPcmRlciIsImltcG9ydGVkIiwibWF4U2VlblJhbmtOb2RlIiwiZmlsdGVyIiwiaW1wb3J0ZWRNb2R1bGUiLCJyZXMiLCJmaW5kUm9vdE5vZGUiLCJwYXJlbnQiLCJib2R5IiwiZmluZEVuZE9mTGluZVdpdGhDb21tZW50cyIsInRva2Vuc1RvRW5kT2ZMaW5lIiwiY29tbWVudE9uU2FtZUxpbmVBcyIsImVuZE9mVG9rZW5zIiwicmFuZ2UiLCJ0ZXh0IiwidG9rZW4iLCJ0eXBlIiwibG9jIiwic3RhcnQiLCJsaW5lIiwiZW5kIiwiZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzIiwic3RhcnRPZlRva2VucyIsImlzUGxhaW5SZXF1aXJlTW9kdWxlIiwiZGVjbGFyYXRpb25zIiwiZGVjbCIsImlkIiwiaW5pdCIsImNhbGxlZSIsIm5hbWUiLCJhcmd1bWVudHMiLCJpc1BsYWluSW1wb3J0TW9kdWxlIiwic3BlY2lmaWVycyIsImlzUGxhaW5JbXBvcnRFcXVhbHMiLCJtb2R1bGVSZWZlcmVuY2UiLCJleHByZXNzaW9uIiwiY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyIiwiY2FuUmVvcmRlckl0ZW1zIiwiZmlyc3ROb2RlIiwic2Vjb25kTm9kZSIsImluZGV4T2YiLCJzb3J0IiwiZmlyc3RJbmRleCIsInNlY29uZEluZGV4Iiwibm9kZXNCZXR3ZWVuIiwic2xpY2UiLCJub2RlQmV0d2VlbiIsImZpeE91dE9mT3JkZXIiLCJjb250ZXh0Iiwib3JkZXIiLCJnZXRTb3VyY2VDb2RlIiwiZmlyc3RSb290IiwiZmlyc3RSb290U3RhcnQiLCJmaXJzdFJvb3RFbmQiLCJzZWNvbmRSb290Iiwic2Vjb25kUm9vdFN0YXJ0Iiwic2Vjb25kUm9vdEVuZCIsImNhbkZpeCIsIm5ld0NvZGUiLCJzdWJzdHJpbmciLCJtZXNzYWdlIiwiZGlzcGxheU5hbWUiLCJyZXBvcnQiLCJmaXgiLCJmaXhlciIsInJlcGxhY2VUZXh0UmFuZ2UiLCJyZXBvcnRPdXRPZk9yZGVyIiwib3V0T2ZPcmRlciIsImZvckVhY2giLCJpbXAiLCJmb3VuZCIsImZpbmQiLCJoYXNIaWdoZXJSYW5rIiwiaW1wb3J0ZWRJdGVtIiwibWFrZU91dE9mT3JkZXJSZXBvcnQiLCJyZXZlcnNlZEltcG9ydGVkIiwicmV2ZXJzZWRPcmRlciIsImdldFNvcnRlciIsImFzY2VuZGluZyIsIm11bHRpcGxpZXIiLCJpbXBvcnRzU29ydGVyIiwiaW1wb3J0QSIsImltcG9ydEIiLCJtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUiLCJhbHBoYWJldGl6ZU9wdGlvbnMiLCJncm91cGVkQnlSYW5rcyIsInJlZHVjZSIsImFjYyIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwiZ3JvdXBSYW5rcyIsImtleXMiLCJzb3J0ZXJGbiIsImNvbXBhcmF0b3IiLCJjYXNlSW5zZW5zaXRpdmUiLCJhIiwiYiIsIlN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3JvdXBSYW5rIiwibmV3UmFuayIsImFscGhhYmV0aXplZFJhbmtzIiwiaW1wb3J0ZWRJdGVtTmFtZSIsInBhcnNlSW50IiwiY29tcHV0ZVBhdGhSYW5rIiwicmFua3MiLCJwYXRoR3JvdXBzIiwicGF0aCIsIm1heFBvc2l0aW9uIiwibCIsInBhdHRlcm4iLCJwYXR0ZXJuT3B0aW9ucyIsImdyb3VwIiwicG9zaXRpb24iLCJub2NvbW1lbnQiLCJjb21wdXRlUmFuayIsImltcG9ydEVudHJ5IiwiZXhjbHVkZWRJbXBvcnRUeXBlcyIsImltcFR5cGUiLCJoYXMiLCJncm91cHMiLCJzdGFydHNXaXRoIiwicmVnaXN0ZXJOb2RlIiwiaXNJblZhcmlhYmxlRGVjbGFyYXRvciIsInR5cGVzIiwiY29udmVydEdyb3Vwc1RvUmFua3MiLCJyYW5rT2JqZWN0IiwiaW5kZXgiLCJncm91cEl0ZW0iLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJvbWl0dGVkVHlwZXMiLCJjb252ZXJ0UGF0aEdyb3Vwc0ZvclJhbmtzIiwiYWZ0ZXIiLCJiZWZvcmUiLCJ0cmFuc2Zvcm1lZCIsInBhdGhHcm91cCIsInBvc2l0aW9uU3RyaW5nIiwiZ3JvdXBMZW5ndGgiLCJncm91cEluZGV4IiwiTWF0aCIsIm1heCIsImtleSIsImdyb3VwTmV4dFBvc2l0aW9uIiwicG93IiwiY2VpbCIsImxvZzEwIiwiZml4TmV3TGluZUFmdGVySW1wb3J0IiwicHJldmlvdXNJbXBvcnQiLCJwcmV2Um9vdCIsImVuZE9mTGluZSIsImluc2VydFRleHRBZnRlclJhbmdlIiwicmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0IiwiY3VycmVudEltcG9ydCIsImN1cnJSb290IiwicmFuZ2VUb1JlbW92ZSIsInRlc3QiLCJyZW1vdmVSYW5nZSIsIm1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQiLCJuZXdsaW5lc0JldHdlZW5JbXBvcnRzIiwiZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbiIsImxpbmVzQmV0d2VlbkltcG9ydHMiLCJsaW5lcyIsInRyaW0iLCJlbXB0eUxpbmVzQmV0d2VlbiIsImdldEFscGhhYmV0aXplQ29uZmlnIiwib3B0aW9ucyIsImFscGhhYmV0aXplIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlcyIsIml0ZW1zIiwiZW51bSIsInJlcXVpcmVkIiwiZGVmYXVsdCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiaW1wb3J0T3JkZXJSdWxlIiwiU2V0IiwiZXJyb3IiLCJQcm9ncmFtIiwibGV2ZWwiLCJpbmNyZW1lbnRMZXZlbCIsImRlY3JlbWVudExldmVsIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwiVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbiIsImlzRXhwb3J0IiwiZ2V0VGV4dCIsIkNhbGxFeHByZXNzaW9uIiwiaGFuZGxlUmVxdWlyZXMiLCJyZXBvcnRBbmRSZXNldCIsIkZ1bmN0aW9uRGVjbGFyYXRpb24iLCJGdW5jdGlvbkV4cHJlc3Npb24iLCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiIsIkJsb2NrU3RhdGVtZW50IiwiT2JqZWN0RXhwcmVzc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUEsYTs7QUFFQSxzQztBQUNBLGdEO0FBQ0Esc0Q7QUFDQSxxQzs7QUFFQSxNQUFNQSxnQkFBZ0IsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxFQUE2QyxPQUE3QyxDQUF0Qjs7QUFFQTs7QUFFQSxTQUFTQyxPQUFULENBQWlCQyxLQUFqQixFQUF3QjtBQUN0QixTQUFPQSxNQUFNQyxHQUFOLENBQVUsVUFBVUMsQ0FBVixFQUFhO0FBQzVCLFdBQU9DLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCRixDQUFsQixFQUFxQixFQUFFRyxNQUFNLENBQUNILEVBQUVHLElBQVgsRUFBckIsQ0FBUDtBQUNELEdBRk0sRUFFSk4sT0FGSSxFQUFQO0FBR0Q7O0FBRUQsU0FBU08sd0JBQVQsQ0FBa0NDLFVBQWxDLEVBQThDQyxJQUE5QyxFQUFvREMsS0FBcEQsRUFBMkQ7QUFDekQsTUFBSUMscUJBQXFCRixJQUF6QjtBQUNBLFFBQU1HLFNBQVMsRUFB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c0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBkZWZhdWx0R3JvdXBzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gUkVQT1JUSU5HIEFORCBGSVhJTkdcblxuZnVuY3Rpb24gcmV2ZXJzZShhcnJheSkge1xuICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHYsIHsgcmFuazogLXYucmFuayB9KVxuICB9KS5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gZ2V0VG9rZW5zT3JDb21tZW50c0FmdGVyKHNvdXJjZUNvZGUsIG5vZGUsIGNvdW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZU9yVG9rZW4gPSBub2RlXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRBZnRlcihjdXJyZW50Tm9kZU9yVG9rZW4pXG4gICAgaWYgKGN1cnJlbnROb2RlT3JUb2tlbiA9PSBudWxsKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXN1bHQucHVzaChjdXJyZW50Tm9kZU9yVG9rZW4pXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBnZXRUb2tlbnNPckNvbW1lbnRzQmVmb3JlKHNvdXJjZUNvZGUsIG5vZGUsIGNvdW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZU9yVG9rZW4gPSBub2RlXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRCZWZvcmUoY3VycmVudE5vZGVPclRva2VuKVxuICAgIGlmIChjdXJyZW50Tm9kZU9yVG9rZW4gPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2goY3VycmVudE5vZGVPclRva2VuKVxuICB9XG4gIHJldHVybiByZXN1bHQucmV2ZXJzZSgpXG59XG5cbmZ1bmN0aW9uIHRha2VUb2tlbnNBZnRlcldoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbmRpdGlvbikge1xuICBjb25zdCB0b2tlbnMgPSBnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIoc291cmNlQ29kZSwgbm9kZSwgMTAwKVxuICBjb25zdCByZXN1bHQgPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChjb25kaXRpb24odG9rZW5zW2ldKSkge1xuICAgICAgcmVzdWx0LnB1c2godG9rZW5zW2ldKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gdGFrZVRva2Vuc0JlZm9yZVdoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbmRpdGlvbikge1xuICBjb25zdCB0b2tlbnMgPSBnZXRUb2tlbnNPckNvbW1lbnRzQmVmb3JlKHNvdXJjZUNvZGUsIG5vZGUsIDEwMClcbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgZm9yIChsZXQgaSA9IHRva2Vucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmIChjb25kaXRpb24odG9rZW5zW2ldKSkge1xuICAgICAgcmVzdWx0LnB1c2godG9rZW5zW2ldKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQucmV2ZXJzZSgpXG59XG5cbmZ1bmN0aW9uIGZpbmRPdXRPZk9yZGVyKGltcG9ydGVkKSB7XG4gIGlmIChpbXBvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICBsZXQgbWF4U2VlblJhbmtOb2RlID0gaW1wb3J0ZWRbMF1cbiAgcmV0dXJuIGltcG9ydGVkLmZpbHRlcihmdW5jdGlvbiAoaW1wb3J0ZWRNb2R1bGUpIHtcbiAgICBjb25zdCByZXMgPSBpbXBvcnRlZE1vZHVsZS5yYW5rIDwgbWF4U2VlblJhbmtOb2RlLnJhbmtcbiAgICBpZiAobWF4U2VlblJhbmtOb2RlLnJhbmsgPCBpbXBvcnRlZE1vZHVsZS5yYW5rKSB7XG4gICAgICBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZE1vZHVsZVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGZpbmRSb290Tm9kZShub2RlKSB7XG4gIGxldCBwYXJlbnQgPSBub2RlXG4gIHdoaWxlIChwYXJlbnQucGFyZW50ICE9IG51bGwgJiYgcGFyZW50LnBhcmVudC5ib2R5ID09IG51bGwpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50XG4gIH1cbiAgcmV0dXJuIHBhcmVudFxufVxuXG5mdW5jdGlvbiBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIG5vZGUpIHtcbiAgY29uc3QgdG9rZW5zVG9FbmRPZkxpbmUgPSB0YWtlVG9rZW5zQWZ0ZXJXaGlsZShzb3VyY2VDb2RlLCBub2RlLCBjb21tZW50T25TYW1lTGluZUFzKG5vZGUpKVxuICBsZXQgZW5kT2ZUb2tlbnMgPSB0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwXG4gICAgPyB0b2tlbnNUb0VuZE9mTGluZVt0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgIDogbm9kZS5yYW5nZVsxXVxuICBsZXQgcmVzdWx0ID0gZW5kT2ZUb2tlbnNcbiAgZm9yIChsZXQgaSA9IGVuZE9mVG9rZW5zOyBpIDwgc291cmNlQ29kZS50ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHNvdXJjZUNvZGUudGV4dFtpXSA9PT0gJ1xcbicpIHtcbiAgICAgIHJlc3VsdCA9IGkgKyAxXG4gICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoc291cmNlQ29kZS50ZXh0W2ldICE9PSAnICcgJiYgc291cmNlQ29kZS50ZXh0W2ldICE9PSAnXFx0JyAmJiBzb3VyY2VDb2RlLnRleHRbaV0gIT09ICdcXHInKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXN1bHQgPSBpICsgMVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gY29tbWVudE9uU2FtZUxpbmVBcyhub2RlKSB7XG4gIHJldHVybiB0b2tlbiA9PiAodG9rZW4udHlwZSA9PT0gJ0Jsb2NrJyB8fCAgdG9rZW4udHlwZSA9PT0gJ0xpbmUnKSAmJlxuICAgICAgdG9rZW4ubG9jLnN0YXJ0LmxpbmUgPT09IHRva2VuLmxvYy5lbmQubGluZSAmJlxuICAgICAgdG9rZW4ubG9jLmVuZC5saW5lID09PSBub2RlLmxvYy5lbmQubGluZVxufVxuXG5mdW5jdGlvbiBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgbm9kZSkge1xuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNCZWZvcmVXaGlsZShzb3VyY2VDb2RlLCBub2RlLCBjb21tZW50T25TYW1lTGluZUFzKG5vZGUpKVxuICBsZXQgc3RhcnRPZlRva2VucyA9IHRva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCA+IDAgPyB0b2tlbnNUb0VuZE9mTGluZVswXS5yYW5nZVswXSA6IG5vZGUucmFuZ2VbMF1cbiAgbGV0IHJlc3VsdCA9IHN0YXJ0T2ZUb2tlbnNcbiAgZm9yIChsZXQgaSA9IHN0YXJ0T2ZUb2tlbnMgLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgaWYgKHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJyAnICYmIHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJ1xcdCcpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlc3VsdCA9IGlcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5SZXF1aXJlTW9kdWxlKG5vZGUpIHtcbiAgaWYgKG5vZGUudHlwZSAhPT0gJ1ZhcmlhYmxlRGVjbGFyYXRpb24nKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKG5vZGUuZGVjbGFyYXRpb25zLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGRlY2wgPSBub2RlLmRlY2xhcmF0aW9uc1swXVxuICBjb25zdCByZXN1bHQgPSBkZWNsLmlkICYmXG4gICAgKGRlY2wuaWQudHlwZSA9PT0gJ0lkZW50aWZpZXInIHx8IGRlY2wuaWQudHlwZSA9PT0gJ09iamVjdFBhdHRlcm4nKSAmJlxuICAgIGRlY2wuaW5pdCAhPSBudWxsICYmXG4gICAgZGVjbC5pbml0LnR5cGUgPT09ICdDYWxsRXhwcmVzc2lvbicgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlICE9IG51bGwgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlLm5hbWUgPT09ICdyZXF1aXJlJyAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMgIT0gbnVsbCAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgZGVjbC5pbml0LmFyZ3VtZW50c1swXS50eXBlID09PSAnTGl0ZXJhbCdcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBpc1BsYWluSW1wb3J0TW9kdWxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJyAmJiBub2RlLnNwZWNpZmllcnMgIT0gbnVsbCAmJiBub2RlLnNwZWNpZmllcnMubGVuZ3RoID4gMFxufVxuXG5mdW5jdGlvbiBpc1BsYWluSW1wb3J0RXF1YWxzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nICYmIG5vZGUubW9kdWxlUmVmZXJlbmNlLmV4cHJlc3Npb25cbn1cblxuZnVuY3Rpb24gY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyKG5vZGUpIHtcbiAgcmV0dXJuIGlzUGxhaW5SZXF1aXJlTW9kdWxlKG5vZGUpIHx8IGlzUGxhaW5JbXBvcnRNb2R1bGUobm9kZSkgfHwgaXNQbGFpbkltcG9ydEVxdWFscyhub2RlKVxufVxuXG5mdW5jdGlvbiBjYW5SZW9yZGVySXRlbXMoZmlyc3ROb2RlLCBzZWNvbmROb2RlKSB7XG4gIGNvbnN0IHBhcmVudCA9IGZpcnN0Tm9kZS5wYXJlbnRcbiAgY29uc3QgW2ZpcnN0SW5kZXgsIHNlY29uZEluZGV4XSA9IFtcbiAgICBwYXJlbnQuYm9keS5pbmRleE9mKGZpcnN0Tm9kZSksXG4gICAgcGFyZW50LmJvZHkuaW5kZXhPZihzZWNvbmROb2RlKSxcbiAgXS5zb3J0KClcbiAgY29uc3Qgbm9kZXNCZXR3ZWVuID0gcGFyZW50LmJvZHkuc2xpY2UoZmlyc3RJbmRleCwgc2Vjb25kSW5kZXggKyAxKVxuICBmb3IgKHZhciBub2RlQmV0d2VlbiBvZiBub2Rlc0JldHdlZW4pIHtcbiAgICBpZiAoIWNhbkNyb3NzTm9kZVdoaWxlUmVvcmRlcihub2RlQmV0d2VlbikpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZpcnN0Tm9kZSwgc2Vjb25kTm9kZSwgb3JkZXIpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG5cbiAgY29uc3QgZmlyc3RSb290ID0gZmluZFJvb3ROb2RlKGZpcnN0Tm9kZS5ub2RlKVxuICBjb25zdCBmaXJzdFJvb3RTdGFydCA9IGZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBmaXJzdFJvb3QpXG4gIGNvbnN0IGZpcnN0Um9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgZmlyc3RSb290KVxuXG4gIGNvbnN0IHNlY29uZFJvb3QgPSBmaW5kUm9vdE5vZGUoc2Vjb25kTm9kZS5ub2RlKVxuICBjb25zdCBzZWNvbmRSb290U3RhcnQgPSBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgc2Vjb25kUm9vdClcbiAgY29uc3Qgc2Vjb25kUm9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgc2Vjb25kUm9vdClcbiAgY29uc3QgY2FuRml4ID0gY2FuUmVvcmRlckl0ZW1zKGZpcnN0Um9vdCwgc2Vjb25kUm9vdClcblxuICBsZXQgbmV3Q29kZSA9IHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcoc2Vjb25kUm9vdFN0YXJ0LCBzZWNvbmRSb290RW5kKVxuICBpZiAobmV3Q29kZVtuZXdDb2RlLmxlbmd0aCAtIDFdICE9PSAnXFxuJykge1xuICAgIG5ld0NvZGUgPSBuZXdDb2RlICsgJ1xcbidcbiAgfVxuXG4gIGNvbnN0IG1lc3NhZ2UgPSBgXFxgJHtzZWNvbmROb2RlLmRpc3BsYXlOYW1lfVxcYCBpbXBvcnQgc2hvdWxkIG9jY3VyICR7b3JkZXJ9IGltcG9ydCBvZiBcXGAke2ZpcnN0Tm9kZS5kaXNwbGF5TmFtZX1cXGBgXG5cbiAgaWYgKG9yZGVyID09PSAnYmVmb3JlJykge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IHNlY29uZE5vZGUubm9kZSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBmaXg6IGNhbkZpeCAmJiAoZml4ZXIgPT5cbiAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgICBbZmlyc3RSb290U3RhcnQsIHNlY29uZFJvb3RFbmRdLFxuICAgICAgICAgIG5ld0NvZGUgKyBzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKGZpcnN0Um9vdFN0YXJ0LCBzZWNvbmRSb290U3RhcnQpXG4gICAgICAgICkpLFxuICAgIH0pXG4gIH0gZWxzZSBpZiAob3JkZXIgPT09ICdhZnRlcicpIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBub2RlOiBzZWNvbmROb2RlLm5vZGUsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+XG4gICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoXG4gICAgICAgICAgW3NlY29uZFJvb3RTdGFydCwgZmlyc3RSb290RW5kXSxcbiAgICAgICAgICBzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKHNlY29uZFJvb3RFbmQsIGZpcnN0Um9vdEVuZCkgKyBuZXdDb2RlXG4gICAgICAgICkpLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgb3JkZXIpIHtcbiAgb3V0T2ZPcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChpbXApIHtcbiAgICBjb25zdCBmb3VuZCA9IGltcG9ydGVkLmZpbmQoZnVuY3Rpb24gaGFzSGlnaGVyUmFuayhpbXBvcnRlZEl0ZW0pIHtcbiAgICAgIHJldHVybiBpbXBvcnRlZEl0ZW0ucmFuayA+IGltcC5yYW5rXG4gICAgfSlcbiAgICBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZvdW5kLCBpbXAsIG9yZGVyKVxuICB9KVxufVxuXG5mdW5jdGlvbiBtYWtlT3V0T2ZPcmRlclJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCkge1xuICBjb25zdCBvdXRPZk9yZGVyID0gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpXG4gIGlmICghb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvLyBUaGVyZSBhcmUgdGhpbmdzIHRvIHJlcG9ydC4gVHJ5IHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YgcmVwb3J0ZWQgZXJyb3JzLlxuICBjb25zdCByZXZlcnNlZEltcG9ydGVkID0gcmV2ZXJzZShpbXBvcnRlZClcbiAgY29uc3QgcmV2ZXJzZWRPcmRlciA9IGZpbmRPdXRPZk9yZGVyKHJldmVyc2VkSW1wb3J0ZWQpXG4gIGlmIChyZXZlcnNlZE9yZGVyLmxlbmd0aCA8IG91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCByZXZlcnNlZEltcG9ydGVkLCByZXZlcnNlZE9yZGVyLCAnYWZ0ZXInKVxuICAgIHJldHVyblxuICB9XG4gIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsICdiZWZvcmUnKVxufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZXIoYXNjZW5kaW5nKSB7XG4gIGNvbnN0IG11bHRpcGxpZXIgPSBhc2NlbmRpbmcgPyAxIDogLTFcblxuICByZXR1cm4gZnVuY3Rpb24gaW1wb3J0c1NvcnRlcihpbXBvcnRBLCBpbXBvcnRCKSB7XG4gICAgbGV0IHJlc3VsdFxuXG4gICAgaWYgKGltcG9ydEEgPCBpbXBvcnRCKSB7XG4gICAgICByZXN1bHQgPSAtMVxuICAgIH0gZWxzZSBpZiAoaW1wb3J0QSA+IGltcG9ydEIpIHtcbiAgICAgIHJlc3VsdCA9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gMFxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgKiBtdWx0aXBsaWVyXG4gIH1cbn1cblxuZnVuY3Rpb24gbXV0YXRlUmFua3NUb0FscGhhYmV0aXplKGltcG9ydGVkLCBhbHBoYWJldGl6ZU9wdGlvbnMpIHtcbiAgY29uc3QgZ3JvdXBlZEJ5UmFua3MgPSBpbXBvcnRlZC5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBpbXBvcnRlZEl0ZW0pIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWNjW2ltcG9ydGVkSXRlbS5yYW5rXSkpIHtcbiAgICAgIGFjY1tpbXBvcnRlZEl0ZW0ucmFua10gPSBbXVxuICAgIH1cbiAgICBhY2NbaW1wb3J0ZWRJdGVtLnJhbmtdLnB1c2goaW1wb3J0ZWRJdGVtLnZhbHVlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgY29uc3QgZ3JvdXBSYW5rcyA9IE9iamVjdC5rZXlzKGdyb3VwZWRCeVJhbmtzKVxuXG4gIGNvbnN0IHNvcnRlckZuID0gZ2V0U29ydGVyKGFscGhhYmV0aXplT3B0aW9ucy5vcmRlciA9PT0gJ2FzYycpXG4gIGNvbnN0IGNvbXBhcmF0b3IgPSBhbHBoYWJldGl6ZU9wdGlvbnMuY2FzZUluc2Vuc2l0aXZlID8gKGEsIGIpID0+IHNvcnRlckZuKFN0cmluZyhhKS50b0xvd2VyQ2FzZSgpLCBTdHJpbmcoYikudG9Mb3dlckNhc2UoKSkgOiAoYSwgYikgPT4gc29ydGVyRm4oYSwgYilcbiAgLy8gc29ydCBpbXBvcnRzIGxvY2FsbHkgd2l0aGluIHRoZWlyIGdyb3VwXG4gIGdyb3VwUmFua3MuZm9yRWFjaChmdW5jdGlvbihncm91cFJhbmspIHtcbiAgICBncm91cGVkQnlSYW5rc1tncm91cFJhbmtdLnNvcnQoY29tcGFyYXRvcilcbiAgfSlcblxuICAvLyBhc3NpZ24gZ2xvYmFsbHkgdW5pcXVlIHJhbmsgdG8gZWFjaCBpbXBvcnRcbiAgbGV0IG5ld1JhbmsgPSAwXG4gIGNvbnN0IGFscGhhYmV0aXplZFJhbmtzID0gZ3JvdXBSYW5rcy5zb3J0KCkucmVkdWNlKGZ1bmN0aW9uKGFjYywgZ3JvdXBSYW5rKSB7XG4gICAgZ3JvdXBlZEJ5UmFua3NbZ3JvdXBSYW5rXS5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVkSXRlbU5hbWUpIHtcbiAgICAgIGFjY1tpbXBvcnRlZEl0ZW1OYW1lXSA9IHBhcnNlSW50KGdyb3VwUmFuaywgMTApICsgbmV3UmFua1xuICAgICAgbmV3UmFuayArPSAxXG4gICAgfSlcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIC8vIG11dGF0ZSB0aGUgb3JpZ2luYWwgZ3JvdXAtcmFuayB3aXRoIGFscGhhYmV0aXplZC1yYW5rXG4gIGltcG9ydGVkLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZWRJdGVtKSB7XG4gICAgaW1wb3J0ZWRJdGVtLnJhbmsgPSBhbHBoYWJldGl6ZWRSYW5rc1tpbXBvcnRlZEl0ZW0udmFsdWVdXG4gIH0pXG59XG5cbi8vIERFVEVDVElOR1xuXG5mdW5jdGlvbiBjb21wdXRlUGF0aFJhbmsocmFua3MsIHBhdGhHcm91cHMsIHBhdGgsIG1heFBvc2l0aW9uKSB7XG4gIGZvciAobGV0IGkgPSAwLCBsID0gcGF0aEdyb3Vwcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCB7IHBhdHRlcm4sIHBhdHRlcm5PcHRpb25zLCBncm91cCwgcG9zaXRpb24gPSAxIH0gPSBwYXRoR3JvdXBzW2ldXG4gICAgaWYgKG1pbmltYXRjaChwYXRoLCBwYXR0ZXJuLCBwYXR0ZXJuT3B0aW9ucyB8fCB7IG5vY29tbWVudDogdHJ1ZSB9KSkge1xuICAgICAgcmV0dXJuIHJhbmtzW2dyb3VwXSArIChwb3NpdGlvbiAvIG1heFBvc2l0aW9uKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgaW1wb3J0RW50cnksIGV4Y2x1ZGVkSW1wb3J0VHlwZXMpIHtcbiAgbGV0IGltcFR5cGVcbiAgbGV0IHJhbmtcbiAgaWYgKGltcG9ydEVudHJ5LnR5cGUgPT09ICdpbXBvcnQ6b2JqZWN0Jykge1xuICAgIGltcFR5cGUgPSAnb2JqZWN0J1xuICB9IGVsc2Uge1xuICAgIGltcFR5cGUgPSBpbXBvcnRUeXBlKGltcG9ydEVudHJ5LnZhbHVlLCBjb250ZXh0KVxuICB9XG4gIGlmICghZXhjbHVkZWRJbXBvcnRUeXBlcy5oYXMoaW1wVHlwZSkpIHtcbiAgICByYW5rID0gY29tcHV0ZVBhdGhSYW5rKHJhbmtzLmdyb3VwcywgcmFua3MucGF0aEdyb3VwcywgaW1wb3J0RW50cnkudmFsdWUsIHJhbmtzLm1heFBvc2l0aW9uKVxuICB9XG4gIGlmICh0eXBlb2YgcmFuayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByYW5rID0gcmFua3MuZ3JvdXBzW2ltcFR5cGVdXG4gIH1cbiAgaWYgKGltcG9ydEVudHJ5LnR5cGUgIT09ICdpbXBvcnQnICYmICFpbXBvcnRFbnRyeS50eXBlLnN0YXJ0c1dpdGgoJ2ltcG9ydDonKSkge1xuICAgIHJhbmsgKz0gMTAwXG4gIH1cblxuICByZXR1cm4gcmFua1xufVxuXG5mdW5jdGlvbiByZWdpc3Rlck5vZGUoY29udGV4dCwgaW1wb3J0RW50cnksIHJhbmtzLCBpbXBvcnRlZCwgZXhjbHVkZWRJbXBvcnRUeXBlcykge1xuICBjb25zdCByYW5rID0gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIGltcG9ydEVudHJ5LCBleGNsdWRlZEltcG9ydFR5cGVzKVxuICBpZiAocmFuayAhPT0gLTEpIHtcbiAgICBpbXBvcnRlZC5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGltcG9ydEVudHJ5LCB7IHJhbmsgfSkpXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgKG5vZGUudHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicgfHwgaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlLnBhcmVudCkpXG59XG5cbmNvbnN0IHR5cGVzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ2ludGVybmFsJywgJ3Vua25vd24nLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnLCAnb2JqZWN0J11cblxuLy8gQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0eXBlLXJhbmsgcGFpcnMuXG4vLyBFeGFtcGxlOiB7IGluZGV4OiAwLCBzaWJsaW5nOiAxLCBwYXJlbnQ6IDEsIGV4dGVybmFsOiAxLCBidWlsdGluOiAyLCBpbnRlcm5hbDogMiB9XG4vLyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgdHlwZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBvciBoYXMgYSBkdXBsaWNhdGVcbmZ1bmN0aW9uIGNvbnZlcnRHcm91cHNUb1JhbmtzKGdyb3Vwcykge1xuICBjb25zdCByYW5rT2JqZWN0ID0gZ3JvdXBzLnJlZHVjZShmdW5jdGlvbihyZXMsIGdyb3VwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICBncm91cCA9IFtncm91cF1cbiAgICB9XG4gICAgZ3JvdXAuZm9yRWFjaChmdW5jdGlvbihncm91cEl0ZW0pIHtcbiAgICAgIGlmICh0eXBlcy5pbmRleE9mKGdyb3VwSXRlbSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IFVua25vd24gdHlwZSBgJyArXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZ3JvdXBJdGVtKSArICdgJylcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpXG4gICAgICB9XG4gICAgICByZXNbZ3JvdXBJdGVtXSA9IGluZGV4XG4gICAgfSlcbiAgICByZXR1cm4gcmVzXG4gIH0sIHt9KVxuXG4gIGNvbnN0IG9taXR0ZWRUeXBlcyA9IHR5cGVzLmZpbHRlcihmdW5jdGlvbih0eXBlKSB7XG4gICAgcmV0dXJuIHJhbmtPYmplY3RbdHlwZV0gPT09IHVuZGVmaW5lZFxuICB9KVxuXG4gIHJldHVybiBvbWl0dGVkVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHJlcywgdHlwZSkge1xuICAgIHJlc1t0eXBlXSA9IGdyb3Vwcy5sZW5ndGhcbiAgICByZXR1cm4gcmVzXG4gIH0sIHJhbmtPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXRoR3JvdXBzRm9yUmFua3MocGF0aEdyb3Vwcykge1xuICBjb25zdCBhZnRlciA9IHt9XG4gIGNvbnN0IGJlZm9yZSA9IHt9XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBwYXRoR3JvdXBzLm1hcCgocGF0aEdyb3VwLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgZ3JvdXAsIHBvc2l0aW9uOiBwb3NpdGlvblN0cmluZyB9ID0gcGF0aEdyb3VwXG4gICAgbGV0IHBvc2l0aW9uID0gMFxuICAgIGlmIChwb3NpdGlvblN0cmluZyA9PT0gJ2FmdGVyJykge1xuICAgICAgaWYgKCFhZnRlcltncm91cF0pIHtcbiAgICAgICAgYWZ0ZXJbZ3JvdXBdID0gMVxuICAgICAgfVxuICAgICAgcG9zaXRpb24gPSBhZnRlcltncm91cF0rK1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb25TdHJpbmcgPT09ICdiZWZvcmUnKSB7XG4gICAgICBpZiAoIWJlZm9yZVtncm91cF0pIHtcbiAgICAgICAgYmVmb3JlW2dyb3VwXSA9IFtdXG4gICAgICB9XG4gICAgICBiZWZvcmVbZ3JvdXBdLnB1c2goaW5kZXgpXG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHBhdGhHcm91cCwgeyBwb3NpdGlvbiB9KVxuICB9KVxuXG4gIGxldCBtYXhQb3NpdGlvbiA9IDFcblxuICBPYmplY3Qua2V5cyhiZWZvcmUpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBMZW5ndGggPSBiZWZvcmVbZ3JvdXBdLmxlbmd0aFxuICAgIGJlZm9yZVtncm91cF0uZm9yRWFjaCgoZ3JvdXBJbmRleCwgaW5kZXgpID0+IHtcbiAgICAgIHRyYW5zZm9ybWVkW2dyb3VwSW5kZXhdLnBvc2l0aW9uID0gLTEgKiAoZ3JvdXBMZW5ndGggLSBpbmRleClcbiAgICB9KVxuICAgIG1heFBvc2l0aW9uID0gTWF0aC5tYXgobWF4UG9zaXRpb24sIGdyb3VwTGVuZ3RoKVxuICB9KVxuXG4gIE9iamVjdC5rZXlzKGFmdGVyKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBncm91cE5leHRQb3NpdGlvbiA9IGFmdGVyW2tleV1cbiAgICBtYXhQb3NpdGlvbiA9IE1hdGgubWF4KG1heFBvc2l0aW9uLCBncm91cE5leHRQb3NpdGlvbiAtIDEpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoR3JvdXBzOiB0cmFuc2Zvcm1lZCxcbiAgICBtYXhQb3NpdGlvbjogbWF4UG9zaXRpb24gPiAxMCA/IE1hdGgucG93KDEwLCBNYXRoLmNlaWwoTWF0aC5sb2cxMChtYXhQb3NpdGlvbikpKSA6IDEwLFxuICB9XG59XG5cbmZ1bmN0aW9uIGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCkge1xuICBjb25zdCBwcmV2Um9vdCA9IGZpbmRSb290Tm9kZShwcmV2aW91c0ltcG9ydC5ub2RlKVxuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNBZnRlcldoaWxlKFxuICAgIGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLCBwcmV2Um9vdCwgY29tbWVudE9uU2FtZUxpbmVBcyhwcmV2Um9vdCkpXG5cbiAgbGV0IGVuZE9mTGluZSA9IHByZXZSb290LnJhbmdlWzFdXG4gIGlmICh0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwKSB7XG4gICAgZW5kT2ZMaW5lID0gdG9rZW5zVG9FbmRPZkxpbmVbdG9rZW5zVG9FbmRPZkxpbmUubGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgfVxuICByZXR1cm4gKGZpeGVyKSA9PiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShbcHJldlJvb3QucmFuZ2VbMF0sIGVuZE9mTGluZV0sICdcXG4nKVxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gIGNvbnN0IHByZXZSb290ID0gZmluZFJvb3ROb2RlKHByZXZpb3VzSW1wb3J0Lm5vZGUpXG4gIGNvbnN0IGN1cnJSb290ID0gZmluZFJvb3ROb2RlKGN1cnJlbnRJbXBvcnQubm9kZSlcbiAgY29uc3QgcmFuZ2VUb1JlbW92ZSA9IFtcbiAgICBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIHByZXZSb290KSxcbiAgICBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgY3VyclJvb3QpLFxuICBdXG4gIGlmICgvXlxccyokLy50ZXN0KHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcocmFuZ2VUb1JlbW92ZVswXSwgcmFuZ2VUb1JlbW92ZVsxXSkpKSB7XG4gICAgcmV0dXJuIChmaXhlcikgPT4gZml4ZXIucmVtb3ZlUmFuZ2UocmFuZ2VUb1JlbW92ZSlcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApXG5cbiAgICByZXR1cm4gbGluZXNCZXR3ZWVuSW1wb3J0cy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLnRyaW0oKS5sZW5ndGgpLmxlbmd0aFxuICB9XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdXG5cbiAgaW1wb3J0ZWQuc2xpY2UoMSkuZm9yRWFjaChmdW5jdGlvbihjdXJyZW50SW1wb3J0KSB7XG4gICAgY29uc3QgZW1wdHlMaW5lc0JldHdlZW4gPSBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KVxuXG4gICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMnXG4gICAgICAgIHx8IG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnKSB7XG4gICAgICBpZiAoY3VycmVudEltcG9ydC5yYW5rICE9PSBwcmV2aW91c0ltcG9ydC5yYW5rICYmIGVtcHR5TGluZXNCZXR3ZWVuID09PSAwKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6ICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgICBmaXg6IGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCksXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQucmFuayA9PT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBlbXB0eUxpbmVzQmV0d2VlbiA+IDBcbiAgICAgICAgJiYgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cyAhPT0gJ2Fsd2F5cy1hbmQtaW5zaWRlLWdyb3VwcycpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHByZXZpb3VzSW1wb3J0Lm5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIHdpdGhpbiBpbXBvcnQgZ3JvdXAnLFxuICAgICAgICAgIGZpeDogcmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXNCZXR3ZWVuID4gMCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICBtZXNzYWdlOiAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgZml4OiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0ltcG9ydCA9IGN1cnJlbnRJbXBvcnRcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0QWxwaGFiZXRpemVDb25maWcob3B0aW9ucykge1xuICBjb25zdCBhbHBoYWJldGl6ZSA9IG9wdGlvbnMuYWxwaGFiZXRpemUgfHwge31cbiAgY29uc3Qgb3JkZXIgPSBhbHBoYWJldGl6ZS5vcmRlciB8fCAnaWdub3JlJ1xuICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBhbHBoYWJldGl6ZS5jYXNlSW5zZW5zaXRpdmUgfHwgZmFsc2VcblxuICByZXR1cm4ge29yZGVyLCBjYXNlSW5zZW5zaXRpdmV9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnb3JkZXInKSxcbiAgICB9LFxuXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGF0aEdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXR0ZXJuT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBncm91cDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICBlbnVtOiB0eXBlcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIGVudW06IFsnYWZ0ZXInLCAnYmVmb3JlJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsncGF0dGVybicsICdncm91cCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgICduZXdsaW5lcy1iZXR3ZWVuJzoge1xuICAgICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgICAnaWdub3JlJyxcbiAgICAgICAgICAgICAgJ2Fsd2F5cycsXG4gICAgICAgICAgICAgICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnLFxuICAgICAgICAgICAgICAnbmV2ZXInLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFscGhhYmV0aXplOiB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgY2FzZUluc2Vuc2l0aXZlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgICAgIGVudW06IFsnaWdub3JlJywgJ2FzYycsICdkZXNjJ10sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ2lnbm9yZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIGltcG9ydE9yZGVyUnVsZSAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzID0gb3B0aW9uc1snbmV3bGluZXMtYmV0d2VlbiddIHx8ICdpZ25vcmUnXG4gICAgY29uc3QgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXMgPSBuZXcgU2V0KG9wdGlvbnNbJ3BhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzJ10gfHwgWydidWlsdGluJywgJ2V4dGVybmFsJywgJ29iamVjdCddKVxuICAgIGNvbnN0IGFscGhhYmV0aXplID0gZ2V0QWxwaGFiZXRpemVDb25maWcob3B0aW9ucylcbiAgICBsZXQgcmFua3NcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHBhdGhHcm91cHMsIG1heFBvc2l0aW9uIH0gPSBjb252ZXJ0UGF0aEdyb3Vwc0ZvclJhbmtzKG9wdGlvbnMucGF0aEdyb3VwcyB8fCBbXSlcbiAgICAgIHJhbmtzID0ge1xuICAgICAgICBncm91cHM6IGNvbnZlcnRHcm91cHNUb1JhbmtzKG9wdGlvbnMuZ3JvdXBzIHx8IGRlZmF1bHRHcm91cHMpLFxuICAgICAgICBwYXRoR3JvdXBzLFxuICAgICAgICBtYXhQb3NpdGlvbixcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gTWFsZm9ybWVkIGNvbmZpZ3VyYXRpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFByb2dyYW06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBlcnJvci5tZXNzYWdlKVxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaW1wb3J0ZWQgPSBbXVxuICAgIGxldCBsZXZlbCA9IDBcblxuICAgIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwrK1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsLS1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCkgeyAvLyBJZ25vcmluZyB1bmFzc2lnbmVkIGltcG9ydHNcbiAgICAgICAgICBjb25zdCBuYW1lID0gbm9kZS5zb3VyY2UudmFsdWVcbiAgICAgICAgICByZWdpc3Rlck5vZGUoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbXBvcnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJhbmtzLFxuICAgICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgICBwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlc1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICBsZXQgZGlzcGxheU5hbWVcbiAgICAgICAgbGV0IHZhbHVlXG4gICAgICAgIGxldCB0eXBlXG4gICAgICAgIC8vIHNraXAgXCJleHBvcnQgaW1wb3J0XCJzXG4gICAgICAgIGlmIChub2RlLmlzRXhwb3J0KSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUubW9kdWxlUmVmZXJlbmNlLnR5cGUgPT09ICdUU0V4dGVybmFsTW9kdWxlUmVmZXJlbmNlJykge1xuICAgICAgICAgIHZhbHVlID0gbm9kZS5tb2R1bGVSZWZlcmVuY2UuZXhwcmVzc2lvbi52YWx1ZVxuICAgICAgICAgIGRpc3BsYXlOYW1lID0gdmFsdWVcbiAgICAgICAgICB0eXBlID0gJ2ltcG9ydCdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9ICcnXG4gICAgICAgICAgZGlzcGxheU5hbWUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKS5nZXRUZXh0KG5vZGUubW9kdWxlUmVmZXJlbmNlKVxuICAgICAgICAgIHR5cGUgPSAnaW1wb3J0Om9iamVjdCdcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck5vZGUoXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByYW5rcyxcbiAgICAgICAgICBpbXBvcnRlZCxcbiAgICAgICAgICBwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlc1xuICAgICAgICApXG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGxldmVsICE9PSAwIHx8ICFpc1N0YXRpY1JlcXVpcmUobm9kZSkgfHwgIWlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlXG4gICAgICAgIHJlZ2lzdGVyTm9kZShcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBuYW1lLFxuICAgICAgICAgICAgdHlwZTogJ3JlcXVpcmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmFua3MsXG4gICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXNcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiByZXBvcnRBbmRSZXNldCgpIHtcbiAgICAgICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgIT09ICdpZ25vcmUnKSB7XG4gICAgICAgICAgbWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCwgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbHBoYWJldGl6ZS5vcmRlciAhPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgICBtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUoaW1wb3J0ZWQsIGFscGhhYmV0aXplKVxuICAgICAgICB9XG5cbiAgICAgICAgbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpXG5cbiAgICAgICAgaW1wb3J0ZWQgPSBbXVxuICAgICAgfSxcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGluY3JlbWVudExldmVsLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEJsb2NrU3RhdGVtZW50OiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIE9iamVjdEV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRGVjbGFyYXRpb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Jsb2NrU3RhdGVtZW50OmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdPYmplY3RFeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js b/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js
index 7d42ea1..da0c31e 100644
--- a/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js
+++ b/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js
@@ -1,19 +1,15 @@
 'use strict';
 
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
 
 module.exports = {
   meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('prefer-default-export')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('prefer-default-export') },
+
+    schema: [] },
+
 
   create: function (context) {
     let specifierExportCount = 0;
@@ -25,11 +21,13 @@
     function captureDeclaration(identifierOrPattern) {
       if (identifierOrPattern.type === 'ObjectPattern') {
         // recursively capture
-        identifierOrPattern.properties.forEach(function (property) {
+        identifierOrPattern.properties.
+        forEach(function (property) {
           captureDeclaration(property.value);
         });
       } else if (identifierOrPattern.type === 'ArrayPattern') {
-        identifierOrPattern.elements.forEach(captureDeclaration);
+        identifierOrPattern.elements.
+        forEach(captureDeclaration);
       } else {
         // assume it's a single standard identifier
         specifierExportCount++;
@@ -52,12 +50,16 @@
 
       'ExportNamedDeclaration': function (node) {
         // if there are specifiers, node.declaration should be null
-        if (!node.declaration) return;
+        if (!node.declaration) return;const
 
-        const type = node.declaration.type;
+        type = node.declaration.type;
 
-
-        if (type === 'TSTypeAliasDeclaration' || type === 'TypeAlias' || type === 'TSInterfaceDeclaration' || type === 'InterfaceDeclaration') {
+        if (
+        type === 'TSTypeAliasDeclaration' ||
+        type === 'TypeAlias' ||
+        type === 'TSInterfaceDeclaration' ||
+        type === 'InterfaceDeclaration')
+        {
           specifierExportCount++;
           hasTypeExport = true;
           return;
@@ -67,7 +69,8 @@
           node.declaration.declarations.forEach(function (declaration) {
             captureDeclaration(declaration.id);
           });
-        } else {
+        } else
+        {
           // captures 'export function foo() {}' syntax
           specifierExportCount++;
         }
@@ -87,8 +90,7 @@
         if (specifierExportCount === 1 && !hasDefaultExport && !hasStarExport && !hasTypeExport) {
           context.report(namedExportNode, 'Prefer default export.');
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9wcmVmZXItZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJzcGVjaWZpZXJFeHBvcnRDb3VudCIsImhhc0RlZmF1bHRFeHBvcnQiLCJoYXNTdGFyRXhwb3J0IiwiaGFzVHlwZUV4cG9ydCIsIm5hbWVkRXhwb3J0Tm9kZSIsImNhcHR1cmVEZWNsYXJhdGlvbiIsImlkZW50aWZpZXJPclBhdHRlcm4iLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwidmFsdWUiLCJlbGVtZW50cyIsIm5vZGUiLCJleHBvcnRlZCIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9ucyIsImlkIiwicmVwb3J0Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHVCQUFSO0FBREQsS0FGRjtBQUtKQyxZQUFRO0FBTEosR0FEUzs7QUFTZkMsVUFBUSxVQUFTQyxPQUFULEVBQWtCO0FBQ3hCLFFBQUlDLHVCQUF1QixDQUEzQjtBQUNBLFFBQUlDLG1CQUFtQixLQUF2QjtBQUNBLFFBQUlDLGdCQUFnQixLQUFwQjtBQUNBLFFBQUlDLGdCQUFnQixLQUFwQjtBQUNBLFFBQUlDLGtCQUFrQixJQUF0Qjs7QUFFQSxhQUFTQyxrQkFBVCxDQUE0QkMsbUJBQTVCLEVBQWlEO0FBQy9DLFVBQUlBLG9CQUFvQlosSUFBcEIsS0FBNkIsZUFBakMsRUFBa0Q7QUFDaEQ7QUFDQVksNEJBQW9CQyxVQUFwQixDQUNHQyxPQURILENBQ1csVUFBU0MsUUFBVCxFQUFtQjtBQUMxQkosNkJBQW1CSSxTQUFTQyxLQUE1QjtBQUNELFNBSEg7QUFJRCxPQU5ELE1BTU8sSUFBSUosb0JBQW9CWixJQUFwQixLQUE2QixjQUFqQyxFQUFpRDtBQUN0RFksNEJBQW9CSyxRQUFwQixDQUNHSCxPQURILENBQ1dILGtCQURYO0FBRUQsT0FITSxNQUdDO0FBQ1I7QUFDRUw7QUFDRDtBQUNGOztBQUVELFdBQU87QUFDTCxnQ0FBMEIsWUFBVztBQUNuQ0MsMkJBQW1CLElBQW5CO0FBQ0QsT0FISTs7QUFLTCx5QkFBbUIsVUFBU1csSUFBVCxFQUFlO0FBQ2hDLFlBQUlBLEtBQUtDLFFBQUwsQ0FBY0MsSUFBZCxLQUF1QixTQUEzQixFQUFzQztBQUNwQ2IsNkJBQW1CLElBQW5CO0FBQ0QsU0FGRCxNQUVPO0FBQ0xEO0FBQ0FJLDRCQUFrQlEsSUFBbEI7QUFDRDtBQUNGLE9BWkk7O0FBY0wsZ0NBQTBCLFVBQVNBLElBQVQsRUFBZTtBQUN2QztBQUNBLFlBQUksQ0FBQ0EsS0FBS0csV0FBVixFQUF1Qjs7QUFGZ0IsY0FJL0JyQixJQUorQixHQUl0QmtCLEtBQUtHLFdBSmlCLENBSS9CckIsSUFKK0I7OztBQU12QyxZQUNFQSxTQUFTLHdCQUFULElBQ0FBLFNBQVMsV0FEVCxJQUVBQSxTQUFTLHdCQUZULElBR0FBLFNBQVMsc0JBSlgsRUFLRTtBQUNBTTtBQUNBRywwQkFBZ0IsSUFBaEI7QUFDQTtBQUNEOztBQUVELFlBQUlTLEtBQUtHLFdBQUwsQ0FBaUJDLFlBQXJCLEVBQW1DO0FBQ2pDSixlQUFLRyxXQUFMLENBQWlCQyxZQUFqQixDQUE4QlIsT0FBOUIsQ0FBc0MsVUFBU08sV0FBVCxFQUFzQjtBQUMxRFYsK0JBQW1CVSxZQUFZRSxFQUEvQjtBQUNELFdBRkQ7QUFHRCxTQUpELE1BS0s7QUFDSDtBQUNBakI7QUFDRDs7QUFFREksMEJBQWtCUSxJQUFsQjtBQUNELE9BMUNJOztBQTRDTCxrQ0FBNEIsWUFBVztBQUNyQ1gsMkJBQW1CLElBQW5CO0FBQ0QsT0E5Q0k7O0FBZ0RMLDhCQUF3QixZQUFXO0FBQ2pDQyx3QkFBZ0IsSUFBaEI7QUFDRCxPQWxESTs7QUFvREwsc0JBQWdCLFlBQVc7QUFDekIsWUFBSUYseUJBQXlCLENBQXpCLElBQThCLENBQUNDLGdCQUEvQixJQUFtRCxDQUFDQyxhQUFwRCxJQUFxRSxDQUFDQyxhQUExRSxFQUF5RjtBQUN2Rkosa0JBQVFtQixNQUFSLENBQWVkLGVBQWYsRUFBZ0Msd0JBQWhDO0FBQ0Q7QUFDRjtBQXhESSxLQUFQO0FBMEREO0FBMUZjLENBQWpCIiwiZmlsZSI6InByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgICBsZXQgc3BlY2lmaWVyRXhwb3J0Q291bnQgPSAwXG4gICAgbGV0IGhhc0RlZmF1bHRFeHBvcnQgPSBmYWxzZVxuICAgIGxldCBoYXNTdGFyRXhwb3J0ID0gZmFsc2VcbiAgICBsZXQgaGFzVHlwZUV4cG9ydCA9IGZhbHNlXG4gICAgbGV0IG5hbWVkRXhwb3J0Tm9kZSA9IG51bGxcblxuICAgIGZ1bmN0aW9uIGNhcHR1cmVEZWNsYXJhdGlvbihpZGVudGlmaWVyT3JQYXR0ZXJuKSB7XG4gICAgICBpZiAoaWRlbnRpZmllck9yUGF0dGVybi50eXBlID09PSAnT2JqZWN0UGF0dGVybicpIHtcbiAgICAgICAgLy8gcmVjdXJzaXZlbHkgY2FwdHVyZVxuICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLnByb3BlcnRpZXNcbiAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY2FwdHVyZURlY2xhcmF0aW9uKHByb3BlcnR5LnZhbHVlKVxuICAgICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGlkZW50aWZpZXJPclBhdHRlcm4udHlwZSA9PT0gJ0FycmF5UGF0dGVybicpIHtcbiAgICAgICAgaWRlbnRpZmllck9yUGF0dGVybi5lbGVtZW50c1xuICAgICAgICAgIC5mb3JFYWNoKGNhcHR1cmVEZWNsYXJhdGlvbilcbiAgICAgIH0gZWxzZSAge1xuICAgICAgLy8gYXNzdW1lIGl0J3MgYSBzaW5nbGUgc3RhbmRhcmQgaWRlbnRpZmllclxuICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzogZnVuY3Rpb24oKSB7XG4gICAgICAgIGhhc0RlZmF1bHRFeHBvcnQgPSB0cnVlXG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0U3BlY2lmaWVyJzogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICAvLyBpZiB0aGVyZSBhcmUgc3BlY2lmaWVycywgbm9kZS5kZWNsYXJhdGlvbiBzaG91bGQgYmUgbnVsbFxuICAgICAgICBpZiAoIW5vZGUuZGVjbGFyYXRpb24pIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHsgdHlwZSB9ID0gbm9kZS5kZWNsYXJhdGlvblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlID09PSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbicgfHxcbiAgICAgICAgICB0eXBlID09PSAnVHlwZUFsaWFzJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdUU0ludGVyZmFjZURlY2xhcmF0aW9uJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdJbnRlcmZhY2VEZWNsYXJhdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICAgIGhhc1R5cGVFeHBvcnQgPSB0cnVlXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24oZGVjbGFyYXRpb24uaWQpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAvLyBjYXB0dXJlcyAnZXhwb3J0IGZ1bmN0aW9uIGZvbygpIHt9JyBzeW50YXhcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgIH1cblxuICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlXG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogZnVuY3Rpb24oKSB7XG4gICAgICAgIGhhc0RlZmF1bHRFeHBvcnQgPSB0cnVlXG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaGFzU3RhckV4cG9ydCA9IHRydWVcbiAgICAgIH0sXG5cbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHNwZWNpZmllckV4cG9ydENvdW50ID09PSAxICYmICFoYXNEZWZhdWx0RXhwb3J0ICYmICFoYXNTdGFyRXhwb3J0ICYmICFoYXNUeXBlRXhwb3J0KSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQobmFtZWRFeHBvcnROb2RlLCAnUHJlZmVyIGRlZmF1bHQgZXhwb3J0LicpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19
\ No newline at end of file
+      } };
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9wcmVmZXItZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJzcGVjaWZpZXJFeHBvcnRDb3VudCIsImhhc0RlZmF1bHRFeHBvcnQiLCJoYXNTdGFyRXhwb3J0IiwiaGFzVHlwZUV4cG9ydCIsIm5hbWVkRXhwb3J0Tm9kZSIsImNhcHR1cmVEZWNsYXJhdGlvbiIsImlkZW50aWZpZXJPclBhdHRlcm4iLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwidmFsdWUiLCJlbGVtZW50cyIsIm5vZGUiLCJleHBvcnRlZCIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9ucyIsImlkIiwicmVwb3J0Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsdUJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBU0MsT0FBVCxFQUFrQjtBQUN4QixRQUFJQyx1QkFBdUIsQ0FBM0I7QUFDQSxRQUFJQyxtQkFBbUIsS0FBdkI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxrQkFBa0IsSUFBdEI7O0FBRUEsYUFBU0Msa0JBQVQsQ0FBNEJDLG1CQUE1QixFQUFpRDtBQUMvQyxVQUFJQSxvQkFBb0JaLElBQXBCLEtBQTZCLGVBQWpDLEVBQWtEO0FBQ2hEO0FBQ0FZLDRCQUFvQkMsVUFBcEI7QUFDR0MsZUFESCxDQUNXLFVBQVNDLFFBQVQsRUFBbUI7QUFDMUJKLDZCQUFtQkksU0FBU0MsS0FBNUI7QUFDRCxTQUhIO0FBSUQsT0FORCxNQU1PLElBQUlKLG9CQUFvQlosSUFBcEIsS0FBNkIsY0FBakMsRUFBaUQ7QUFDdERZLDRCQUFvQkssUUFBcEI7QUFDR0gsZUFESCxDQUNXSCxrQkFEWDtBQUVELE9BSE0sTUFHQztBQUNSO0FBQ0VMO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPO0FBQ0wsZ0NBQTBCLFlBQVc7QUFDbkNDLDJCQUFtQixJQUFuQjtBQUNELE9BSEk7O0FBS0wseUJBQW1CLFVBQVNXLElBQVQsRUFBZTtBQUNoQyxZQUFJQSxLQUFLQyxRQUFMLENBQWNDLElBQWQsS0FBdUIsU0FBM0IsRUFBc0M7QUFDcENiLDZCQUFtQixJQUFuQjtBQUNELFNBRkQsTUFFTztBQUNMRDtBQUNBSSw0QkFBa0JRLElBQWxCO0FBQ0Q7QUFDRixPQVpJOztBQWNMLGdDQUEwQixVQUFTQSxJQUFULEVBQWU7QUFDdkM7QUFDQSxZQUFJLENBQUNBLEtBQUtHLFdBQVYsRUFBdUIsT0FGZ0I7O0FBSS9CckIsWUFKK0IsR0FJdEJrQixLQUFLRyxXQUppQixDQUkvQnJCLElBSitCOztBQU12QztBQUNFQSxpQkFBUyx3QkFBVDtBQUNBQSxpQkFBUyxXQURUO0FBRUFBLGlCQUFTLHdCQUZUO0FBR0FBLGlCQUFTLHNCQUpYO0FBS0U7QUFDQU07QUFDQUcsMEJBQWdCLElBQWhCO0FBQ0E7QUFDRDs7QUFFRCxZQUFJUyxLQUFLRyxXQUFMLENBQWlCQyxZQUFyQixFQUFtQztBQUNqQ0osZUFBS0csV0FBTCxDQUFpQkMsWUFBakIsQ0FBOEJSLE9BQTlCLENBQXNDLFVBQVNPLFdBQVQsRUFBc0I7QUFDMURWLCtCQUFtQlUsWUFBWUUsRUFBL0I7QUFDRCxXQUZEO0FBR0QsU0FKRDtBQUtLO0FBQ0g7QUFDQWpCO0FBQ0Q7O0FBRURJLDBCQUFrQlEsSUFBbEI7QUFDRCxPQTFDSTs7QUE0Q0wsa0NBQTRCLFlBQVc7QUFDckNYLDJCQUFtQixJQUFuQjtBQUNELE9BOUNJOztBQWdETCw4QkFBd0IsWUFBVztBQUNqQ0Msd0JBQWdCLElBQWhCO0FBQ0QsT0FsREk7O0FBb0RMLHNCQUFnQixZQUFXO0FBQ3pCLFlBQUlGLHlCQUF5QixDQUF6QixJQUE4QixDQUFDQyxnQkFBL0IsSUFBbUQsQ0FBQ0MsYUFBcEQsSUFBcUUsQ0FBQ0MsYUFBMUUsRUFBeUY7QUFDdkZKLGtCQUFRbUIsTUFBUixDQUFlZCxlQUFmLEVBQWdDLHdCQUFoQztBQUNEO0FBQ0YsT0F4REksRUFBUDs7QUEwREQsR0ExRmMsRUFBakIiLCJmaWxlIjoicHJlZmVyLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgncHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24oY29udGV4dCkge1xuICAgIGxldCBzcGVjaWZpZXJFeHBvcnRDb3VudCA9IDBcbiAgICBsZXQgaGFzRGVmYXVsdEV4cG9ydCA9IGZhbHNlXG4gICAgbGV0IGhhc1N0YXJFeHBvcnQgPSBmYWxzZVxuICAgIGxldCBoYXNUeXBlRXhwb3J0ID0gZmFsc2VcbiAgICBsZXQgbmFtZWRFeHBvcnROb2RlID0gbnVsbFxuXG4gICAgZnVuY3Rpb24gY2FwdHVyZURlY2xhcmF0aW9uKGlkZW50aWZpZXJPclBhdHRlcm4pIHtcbiAgICAgIGlmIChpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJykge1xuICAgICAgICAvLyByZWN1cnNpdmVseSBjYXB0dXJlXG4gICAgICAgIGlkZW50aWZpZXJPclBhdHRlcm4ucHJvcGVydGllc1xuICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7XG4gICAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24ocHJvcGVydHkudmFsdWUpXG4gICAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoaWRlbnRpZmllck9yUGF0dGVybi50eXBlID09PSAnQXJyYXlQYXR0ZXJuJykge1xuICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLmVsZW1lbnRzXG4gICAgICAgICAgLmZvckVhY2goY2FwdHVyZURlY2xhcmF0aW9uKVxuICAgICAgfSBlbHNlICB7XG4gICAgICAvLyBhc3N1bWUgaXQncyBhIHNpbmdsZSBzdGFuZGFyZCBpZGVudGlmaWVyXG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnRTcGVjaWZpZXInOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgIGhhc0RlZmF1bHRFeHBvcnQgPSB0cnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICAgIG5hbWVkRXhwb3J0Tm9kZSA9IG5vZGVcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIC8vIGlmIHRoZXJlIGFyZSBzcGVjaWZpZXJzLCBub2RlLmRlY2xhcmF0aW9uIHNob3VsZCBiZSBudWxsXG4gICAgICAgIGlmICghbm9kZS5kZWNsYXJhdGlvbikgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgeyB0eXBlIH0gPSBub2RlLmRlY2xhcmF0aW9uXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGUgPT09ICdUU1R5cGVBbGlhc0RlY2xhcmF0aW9uJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdUeXBlQWxpYXMnIHx8XG4gICAgICAgICAgdHlwZSA9PT0gJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nIHx8XG4gICAgICAgICAgdHlwZSA9PT0gJ0ludGVyZmFjZURlY2xhcmF0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgICAgaGFzVHlwZUV4cG9ydCA9IHRydWVcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICAgIGNhcHR1cmVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbi5pZClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIC8vIGNhcHR1cmVzICdleHBvcnQgZnVuY3Rpb24gZm9vKCkge30nIHN5bnRheFxuICAgICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgICAgfVxuXG4gICAgICAgIG5hbWVkRXhwb3J0Tm9kZSA9IG5vZGVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnRBbGxEZWNsYXJhdGlvbic6IGZ1bmN0aW9uKCkge1xuICAgICAgICBoYXNTdGFyRXhwb3J0ID0gdHJ1ZVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoc3BlY2lmaWVyRXhwb3J0Q291bnQgPT09IDEgJiYgIWhhc0RlZmF1bHRFeHBvcnQgJiYgIWhhc1N0YXJFeHBvcnQgJiYgIWhhc1R5cGVFeHBvcnQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lZEV4cG9ydE5vZGUsICdQcmVmZXIgZGVmYXVsdCBleHBvcnQuJylcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0=
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/lib/rules/unambiguous.js b/node_modules/eslint-plugin-import/lib/rules/unambiguous.js
index 00b518b..68a12f8 100644
--- a/node_modules/eslint-plugin-import/lib/rules/unambiguous.js
+++ b/node_modules/eslint-plugin-import/lib/rules/unambiguous.js
@@ -1,26 +1,19 @@
 'use strict';
 
+
+
+
 var _unambiguous = require('eslint-module-utils/unambiguous');
-
-var _docsUrl = require('../docsUrl');
-
-var _docsUrl2 = _interopRequireDefault(_docsUrl);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * @fileOverview Report modules that could parse incorrectly as scripts.
- * @author Ben Mosher
- */
-
-module.exports = {
-  meta: {
+var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} /**
+                                                                                                                                                                                     * @fileOverview Report modules that could parse incorrectly as scripts.
+                                                                                                                                                                                     * @author Ben Mosher
+                                                                                                                                                                                     */module.exports = { meta: {
     type: 'suggestion',
     docs: {
-      url: (0, _docsUrl2.default)('unambiguous')
-    },
-    schema: []
-  },
+      url: (0, _docsUrl2.default)('unambiguous') },
+
+    schema: [] },
+
 
   create: function (context) {
     // ignore non-modules
@@ -33,11 +26,11 @@
         if (!(0, _unambiguous.isModule)(ast)) {
           context.report({
             node: ast,
-            message: 'This module could be parsed as a valid script.'
-          });
+            message: 'This module could be parsed as a valid script.' });
+
         }
-      }
-    };
-  }
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy91bmFtYmlndW91cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwiUHJvZ3JhbSIsImFzdCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOztBQUtBOztBQUNBOzs7Ozs7QUFOQTs7Ozs7QUFRQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsYUFBUjtBQURELEtBRkY7QUFLSkMsWUFBUTtBQUxKLEdBRFM7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QjtBQUNBLFFBQUlBLFFBQVFDLGFBQVIsQ0FBc0JDLFVBQXRCLEtBQXFDLFFBQXpDLEVBQW1EO0FBQ2pELGFBQU8sRUFBUDtBQUNEOztBQUVELFdBQU87QUFDTEMsZUFBUyxVQUFVQyxHQUFWLEVBQWU7QUFDdEIsWUFBSSxDQUFDLDJCQUFTQSxHQUFULENBQUwsRUFBb0I7QUFDbEJKLGtCQUFRSyxNQUFSLENBQWU7QUFDYkMsa0JBQU1GLEdBRE87QUFFYkcscUJBQVM7QUFGSSxXQUFmO0FBSUQ7QUFDRjtBQVJJLEtBQVA7QUFXRDtBQTFCYyxDQUFqQiIsImZpbGUiOiJ1bmFtYmlndW91cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBSZXBvcnQgbW9kdWxlcyB0aGF0IGNvdWxkIHBhcnNlIGluY29ycmVjdGx5IGFzIHNjcmlwdHMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgeyBpc01vZHVsZSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvdW5hbWJpZ3VvdXMnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ3VuYW1iaWd1b3VzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKGFzdCkge1xuICAgICAgICBpZiAoIWlzTW9kdWxlKGFzdCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBhc3QsXG4gICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBtb2R1bGUgY291bGQgYmUgcGFyc2VkIGFzIGEgdmFsaWQgc2NyaXB0LicsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG5cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
+      } };
+
+
+  } };
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy91bmFtYmlndW91cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwiUHJvZ3JhbSIsImFzdCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBO0FBQ0EscUMsK0lBTkE7Ozt1TEFRQUEsT0FBT0MsT0FBUCxHQUFpQixFQUNmQyxNQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsYUFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsV0FBTztBQUNMQyxlQUFTLFVBQVVDLEdBQVYsRUFBZTtBQUN0QixZQUFJLENBQUMsMkJBQVNBLEdBQVQsQ0FBTCxFQUFvQjtBQUNsQkosa0JBQVFLLE1BQVIsQ0FBZTtBQUNiQyxrQkFBTUYsR0FETztBQUViRyxxQkFBUyxnREFGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOzs7QUFXRCxHQTFCYyxFQUFqQiIsImZpbGUiOiJ1bmFtYmlndW91cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBSZXBvcnQgbW9kdWxlcyB0aGF0IGNvdWxkIHBhcnNlIGluY29ycmVjdGx5IGFzIHNjcmlwdHMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgeyBpc01vZHVsZSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvdW5hbWJpZ3VvdXMnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ3VuYW1iaWd1b3VzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKGFzdCkge1xuICAgICAgICBpZiAoIWlzTW9kdWxlKGFzdCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBhc3QsXG4gICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBtb2R1bGUgY291bGQgYmUgcGFyc2VkIGFzIGEgdmFsaWQgc2NyaXB0LicsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG5cbiAgfSxcbn1cbiJdfQ==
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-flowtype/node_modules/.bin/eslint b/node_modules/eslint-plugin-import/node_modules/.bin/eslint
similarity index 100%
rename from node_modules/eslint-plugin-flowtype/node_modules/.bin/eslint
rename to node_modules/eslint-plugin-import/node_modules/.bin/eslint
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.editorconfig b/node_modules/eslint-plugin-import/node_modules/resolve/.editorconfig
new file mode 100644
index 0000000..bc228f8
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/.editorconfig
@@ -0,0 +1,20 @@
+root = true
+
+[*]
+indent_style = tab
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+max_line_length = 150
+
+[CHANGELOG.md]
+indent_style = space
+indent_size = 2
+
+[*.json]
+max_line_length = off
+
+[Makefile]
+max_line_length = off
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore
@@ -0,0 +1 @@
+node_modules
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc
new file mode 100644
index 0000000..a22863c
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc
@@ -0,0 +1,39 @@
+{
+    "extends": "@ljharb",
+    "root": true,
+    "rules": {
+        "array-bracket-newline": 0,
+        "array-element-newline": 0,
+        "indent": [2, 4],
+        "strict": 0,
+        "complexity": 0,
+        "consistent-return": 0,
+        "curly": 0,
+        "dot-notation": [2, { "allowKeywords": true }],
+        "func-name-matching": 0,
+        "func-style": 0,
+        "global-require": 0,
+        "id-length": [2, { "min": 1, "max": 30 }],
+        "max-lines-per-function": 0,
+        "max-nested-callbacks": 0,
+        "max-params": 0,
+        "max-statements-per-line": [2, { "max": 2 }],
+        "max-statements": 0,
+        "no-magic-numbers": 0,
+        "no-console": 0,
+        "no-shadow": 0,
+        "no-unused-vars": [2, { "vars": "all", "args": "none" }],
+        "no-use-before-define": 0,
+        "object-curly-newline": 0,
+        "operator-linebreak": [2, "before"],
+        "sort-keys": 0,
+    },
+    "overrides": [
+        {
+            "files": "test/resolver/nested_symlinks/mylib/*.js",
+            "rules": {
+                "no-throw-literal": 0,
+            },
+        },
+    ],
+}
diff --git a/node_modules/object.entries/.travis.yml b/node_modules/eslint-plugin-import/node_modules/resolve/.travis.yml
similarity index 100%
rename from node_modules/object.entries/.travis.yml
rename to node_modules/eslint-plugin-import/node_modules/resolve/.travis.yml
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE b/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE
new file mode 100644
index 0000000..ff4fce2
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2012 James Halliday
+
+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.
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml b/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml
new file mode 100644
index 0000000..9458fb8
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml
@@ -0,0 +1,54 @@
+version: 1.0.{build}
+skip_branch_with_pr: true
+build: off
+
+environment:
+  matrix:
+    - nodejs_version: "12"
+    - nodejs_version: "11"
+    - nodejs_version: "10"
+    - nodejs_version: "9"
+    - nodejs_version: "8"
+    - nodejs_version: "7"
+    - nodejs_version: "6"
+    - nodejs_version: "5"
+    - nodejs_version: "4"
+    - nodejs_version: "3"
+    - nodejs_version: "2"
+    - nodejs_version: "1"
+    - nodejs_version: "0.12"
+    - nodejs_version: "0.10"
+    - nodejs_version: "0.8"
+    - nodejs_version: "0.6"
+matrix:
+  # fast_finish: true
+  allow_failures:
+    - nodejs_version: "5" # due to windows npm bug, registry-side
+    - nodejs_version: "0.8"
+    - nodejs_version: "0.6"
+
+platform:
+  - x86
+  - x64
+
+# Install scripts. (runs after repo cloning)
+install:
+ # Fix symlinks in working copy (see https://github.com/appveyor/ci/issues/650#issuecomment-186592582) / https://github.com/charleskorn/batect/commit/d08986802ec43086902958c4ee7e57ff3e71dbef
+ - git config core.symlinks true
+ - git reset --hard
+ # Get the latest stable version of Node.js or io.js
+ - ps: Install-Product node $env:nodejs_version $env:platform
+ - IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3
+ - IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5
+ - set PATH=%APPDATA%\npm;%PATH%
+ #- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm
+ # install modules
+ - npm install
+
+# Post-install test scripts.
+test_script:
+ # Output useful info for debugging.
+ - node --version
+ - npm --version
+ # run tests
+ - npm run tests-only
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js
new file mode 100644
index 0000000..20e65dc
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js
@@ -0,0 +1,5 @@
+var resolve = require('../');
+resolve('tap', { basedir: __dirname }, function (err, res) {
+    if (err) console.error(err);
+    else console.log(res);
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js
new file mode 100644
index 0000000..54b2cc1
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js
@@ -0,0 +1,3 @@
+var resolve = require('../');
+var res = resolve.sync('tap', { basedir: __dirname });
+console.log(res);
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/index.js
new file mode 100644
index 0000000..125d814
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/index.js
@@ -0,0 +1,6 @@
+var async = require('./lib/async');
+async.core = require('./lib/core');
+async.isCore = require('./lib/is-core');
+async.sync = require('./lib/sync');
+
+module.exports = async;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js
new file mode 100644
index 0000000..06aa458
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js
@@ -0,0 +1,298 @@
+var fs = require('fs');
+var path = require('path');
+var caller = require('./caller.js');
+var nodeModulesPaths = require('./node-modules-paths.js');
+var normalizeOptions = require('./normalize-options.js');
+var isCore = require('./is-core');
+
+var realpathFS = fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;
+
+var defaultIsFile = function isFile(file, cb) {
+    fs.stat(file, function (err, stat) {
+        if (!err) {
+            return cb(null, stat.isFile() || stat.isFIFO());
+        }
+        if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
+        return cb(err);
+    });
+};
+
+var defaultIsDir = function isDirectory(dir, cb) {
+    fs.stat(dir, function (err, stat) {
+        if (!err) {
+            return cb(null, stat.isDirectory());
+        }
+        if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
+        return cb(err);
+    });
+};
+
+var defaultRealpath = function realpath(x, cb) {
+    realpathFS(x, function (realpathErr, realPath) {
+        if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr);
+        else cb(null, realpathErr ? x : realPath);
+    });
+};
+
+var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) {
+    if (opts && opts.preserveSymlinks === false) {
+        realpath(x, cb);
+    } else {
+        cb(null, x);
+    }
+};
+
+var getPackageCandidates = function getPackageCandidates(x, start, opts) {
+    var dirs = nodeModulesPaths(start, opts, x);
+    for (var i = 0; i < dirs.length; i++) {
+        dirs[i] = path.join(dirs[i], x);
+    }
+    return dirs;
+};
+
+module.exports = function resolve(x, options, callback) {
+    var cb = callback;
+    var opts = options;
+    if (typeof options === 'function') {
+        cb = opts;
+        opts = {};
+    }
+    if (typeof x !== 'string') {
+        var err = new TypeError('Path must be a string.');
+        return process.nextTick(function () {
+            cb(err);
+        });
+    }
+
+    opts = normalizeOptions(x, opts);
+
+    var isFile = opts.isFile || defaultIsFile;
+    var isDirectory = opts.isDirectory || defaultIsDir;
+    var readFile = opts.readFile || fs.readFile;
+    var realpath = opts.realpath || defaultRealpath;
+    var packageIterator = opts.packageIterator;
+
+    var extensions = opts.extensions || ['.js'];
+    var basedir = opts.basedir || path.dirname(caller());
+    var parent = opts.filename || basedir;
+
+    opts.paths = opts.paths || [];
+
+    // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
+    var absoluteStart = path.resolve(basedir);
+
+    maybeRealpath(
+        realpath,
+        absoluteStart,
+        opts,
+        function (err, realStart) {
+            if (err) cb(err);
+            else init(realStart);
+        }
+    );
+
+    var res;
+    function init(basedir) {
+        if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) {
+            res = path.resolve(basedir, x);
+            if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
+            if ((/\/$/).test(x) && res === basedir) {
+                loadAsDirectory(res, opts.package, onfile);
+            } else loadAsFile(res, opts.package, onfile);
+        } else if (isCore(x)) {
+            return cb(null, x);
+        } else loadNodeModules(x, basedir, function (err, n, pkg) {
+            if (err) cb(err);
+            else if (n) {
+                return maybeRealpath(realpath, n, opts, function (err, realN) {
+                    if (err) {
+                        cb(err);
+                    } else {
+                        cb(null, realN, pkg);
+                    }
+                });
+            } else {
+                var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
+                moduleError.code = 'MODULE_NOT_FOUND';
+                cb(moduleError);
+            }
+        });
+    }
+
+    function onfile(err, m, pkg) {
+        if (err) cb(err);
+        else if (m) cb(null, m, pkg);
+        else loadAsDirectory(res, function (err, d, pkg) {
+            if (err) cb(err);
+            else if (d) {
+                maybeRealpath(realpath, d, opts, function (err, realD) {
+                    if (err) {
+                        cb(err);
+                    } else {
+                        cb(null, realD, pkg);
+                    }
+                });
+            } else {
+                var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
+                moduleError.code = 'MODULE_NOT_FOUND';
+                cb(moduleError);
+            }
+        });
+    }
+
+    function loadAsFile(x, thePackage, callback) {
+        var loadAsFilePackage = thePackage;
+        var cb = callback;
+        if (typeof loadAsFilePackage === 'function') {
+            cb = loadAsFilePackage;
+            loadAsFilePackage = undefined;
+        }
+
+        var exts = [''].concat(extensions);
+        load(exts, x, loadAsFilePackage);
+
+        function load(exts, x, loadPackage) {
+            if (exts.length === 0) return cb(null, undefined, loadPackage);
+            var file = x + exts[0];
+
+            var pkg = loadPackage;
+            if (pkg) onpkg(null, pkg);
+            else loadpkg(path.dirname(file), onpkg);
+
+            function onpkg(err, pkg_, dir) {
+                pkg = pkg_;
+                if (err) return cb(err);
+                if (dir && pkg && opts.pathFilter) {
+                    var rfile = path.relative(dir, file);
+                    var rel = rfile.slice(0, rfile.length - exts[0].length);
+                    var r = opts.pathFilter(pkg, x, rel);
+                    if (r) return load(
+                        [''].concat(extensions.slice()),
+                        path.resolve(dir, r),
+                        pkg
+                    );
+                }
+                isFile(file, onex);
+            }
+            function onex(err, ex) {
+                if (err) return cb(err);
+                if (ex) return cb(null, file, pkg);
+                load(exts.slice(1), x, pkg);
+            }
+        }
+    }
+
+    function loadpkg(dir, cb) {
+        if (dir === '' || dir === '/') return cb(null);
+        if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
+            return cb(null);
+        }
+        if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null);
+
+        maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) {
+            if (unwrapErr) return loadpkg(path.dirname(dir), cb);
+            var pkgfile = path.join(pkgdir, 'package.json');
+            isFile(pkgfile, function (err, ex) {
+                // on err, ex is false
+                if (!ex) return loadpkg(path.dirname(dir), cb);
+
+                readFile(pkgfile, function (err, body) {
+                    if (err) cb(err);
+                    try { var pkg = JSON.parse(body); } catch (jsonErr) {}
+
+                    if (pkg && opts.packageFilter) {
+                        pkg = opts.packageFilter(pkg, pkgfile);
+                    }
+                    cb(null, pkg, dir);
+                });
+            });
+        });
+    }
+
+    function loadAsDirectory(x, loadAsDirectoryPackage, callback) {
+        var cb = callback;
+        var fpkg = loadAsDirectoryPackage;
+        if (typeof fpkg === 'function') {
+            cb = fpkg;
+            fpkg = opts.package;
+        }
+
+        maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) {
+            if (unwrapErr) return cb(unwrapErr);
+            var pkgfile = path.join(pkgdir, 'package.json');
+            isFile(pkgfile, function (err, ex) {
+                if (err) return cb(err);
+                if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb);
+
+                readFile(pkgfile, function (err, body) {
+                    if (err) return cb(err);
+                    try {
+                        var pkg = JSON.parse(body);
+                    } catch (jsonErr) {}
+
+                    if (pkg && opts.packageFilter) {
+                        pkg = opts.packageFilter(pkg, pkgfile);
+                    }
+
+                    if (pkg && pkg.main) {
+                        if (typeof pkg.main !== 'string') {
+                            var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string');
+                            mainError.code = 'INVALID_PACKAGE_MAIN';
+                            return cb(mainError);
+                        }
+                        if (pkg.main === '.' || pkg.main === './') {
+                            pkg.main = 'index';
+                        }
+                        loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) {
+                            if (err) return cb(err);
+                            if (m) return cb(null, m, pkg);
+                            if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb);
+
+                            var dir = path.resolve(x, pkg.main);
+                            loadAsDirectory(dir, pkg, function (err, n, pkg) {
+                                if (err) return cb(err);
+                                if (n) return cb(null, n, pkg);
+                                loadAsFile(path.join(x, 'index'), pkg, cb);
+                            });
+                        });
+                        return;
+                    }
+
+                    loadAsFile(path.join(x, '/index'), pkg, cb);
+                });
+            });
+        });
+    }
+
+    function processDirs(cb, dirs) {
+        if (dirs.length === 0) return cb(null, undefined);
+        var dir = dirs[0];
+
+        isDirectory(path.dirname(dir), isdir);
+
+        function isdir(err, isdir) {
+            if (err) return cb(err);
+            if (!isdir) return processDirs(cb, dirs.slice(1));
+            loadAsFile(dir, opts.package, onfile);
+        }
+
+        function onfile(err, m, pkg) {
+            if (err) return cb(err);
+            if (m) return cb(null, m, pkg);
+            loadAsDirectory(dir, opts.package, ondir);
+        }
+
+        function ondir(err, n, pkg) {
+            if (err) return cb(err);
+            if (n) return cb(null, n, pkg);
+            processDirs(cb, dirs.slice(1));
+        }
+    }
+    function loadNodeModules(x, start, cb) {
+        var thunk = function () { return getPackageCandidates(x, start, opts); };
+        processDirs(
+            cb,
+            packageIterator ? packageIterator(x, start, thunk, opts) : thunk()
+        );
+    }
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js
new file mode 100644
index 0000000..b14a280
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js
@@ -0,0 +1,8 @@
+module.exports = function () {
+    // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
+    var origPrepareStackTrace = Error.prepareStackTrace;
+    Error.prepareStackTrace = function (_, stack) { return stack; };
+    var stack = (new Error()).stack;
+    Error.prepareStackTrace = origPrepareStackTrace;
+    return stack[2].getFileName();
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js
new file mode 100644
index 0000000..0877650
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js
@@ -0,0 +1,53 @@
+var current = (process.versions && process.versions.node && process.versions.node.split('.')) || [];
+
+function specifierIncluded(specifier) {
+    var parts = specifier.split(' ');
+    var op = parts.length > 1 ? parts[0] : '=';
+    var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');
+
+    for (var i = 0; i < 3; ++i) {
+        var cur = Number(current[i] || 0);
+        var ver = Number(versionParts[i] || 0);
+        if (cur === ver) {
+            continue; // eslint-disable-line no-restricted-syntax, no-continue
+        }
+        if (op === '<') {
+            return cur < ver;
+        } else if (op === '>=') {
+            return cur >= ver;
+        } else {
+            return false;
+        }
+    }
+    return op === '>=';
+}
+
+function matchesRange(range) {
+    var specifiers = range.split(/ ?&& ?/);
+    if (specifiers.length === 0) { return false; }
+    for (var i = 0; i < specifiers.length; ++i) {
+        if (!specifierIncluded(specifiers[i])) { return false; }
+    }
+    return true;
+}
+
+function versionIncluded(specifierValue) {
+    if (typeof specifierValue === 'boolean') { return specifierValue; }
+    if (specifierValue && typeof specifierValue === 'object') {
+        for (var i = 0; i < specifierValue.length; ++i) {
+            if (matchesRange(specifierValue[i])) { return true; }
+        }
+        return false;
+    }
+    return matchesRange(specifierValue);
+}
+
+var data = require('./core.json');
+
+var core = {};
+for (var mod in data) { // eslint-disable-line no-restricted-syntax
+    if (Object.prototype.hasOwnProperty.call(data, mod)) {
+        core[mod] = versionIncluded(data[mod]);
+    }
+}
+module.exports = core;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json
new file mode 100644
index 0000000..d51b70b
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json
@@ -0,0 +1,75 @@
+{
+    "assert": true,
+    "async_hooks": ">= 8",
+    "buffer_ieee754": "< 0.9.7",
+    "buffer": true,
+    "child_process": true,
+    "cluster": true,
+    "console": true,
+    "constants": true,
+    "crypto": true,
+    "_debug_agent": ">= 1 && < 8",
+    "_debugger": "< 8",
+    "dgram": true,
+    "dns": true,
+    "domain": true,
+    "events": true,
+    "freelist": "< 6",
+    "fs": true,
+    "fs/promises": [">= 10 && < 10.1", ">= 14"],
+    "_http_agent": ">= 0.11.1",
+    "_http_client": ">= 0.11.1",
+    "_http_common": ">= 0.11.1",
+    "_http_incoming": ">= 0.11.1",
+    "_http_outgoing": ">= 0.11.1",
+    "_http_server": ">= 0.11.1",
+    "http": true,
+    "http2": ">= 8.8",
+    "https": true,
+    "inspector": ">= 8.0.0",
+    "_linklist": "< 8",
+    "module": true,
+    "net": true,
+    "node-inspect/lib/_inspect": ">= 7.6.0 && < 12",
+    "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12",
+    "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12",
+    "os": true,
+    "path": true,
+    "perf_hooks": ">= 8.5",
+    "process": ">= 1",
+    "punycode": true,
+    "querystring": true,
+    "readline": true,
+    "repl": true,
+    "smalloc": ">= 0.11.5 && < 3",
+    "_stream_duplex": ">= 0.9.4",
+    "_stream_transform": ">= 0.9.4",
+    "_stream_wrap": ">= 1.4.1",
+    "_stream_passthrough": ">= 0.9.4",
+    "_stream_readable": ">= 0.9.4",
+    "_stream_writable": ">= 0.9.4",
+    "stream": true,
+    "string_decoder": true,
+    "sys": true,
+    "timers": true,
+    "_tls_common": ">= 0.11.13",
+    "_tls_legacy": ">= 0.11.3 && < 10",
+    "_tls_wrap": ">= 0.11.3",
+    "tls": true,
+    "trace_events": ">= 10",
+    "tty": true,
+    "url": true,
+    "util": true,
+    "v8/tools/arguments": ">= 10 && < 12",
+    "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
+    "v8": ">= 1",
+    "vm": true,
+    "wasi": ">= 13.4 && < 13.5",
+    "worker_threads": ">= 11.7",
+    "zlib": true
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js
new file mode 100644
index 0000000..48bc96c
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js
@@ -0,0 +1,5 @@
+var core = require('./core');
+
+module.exports = function isCore(x) {
+    return Object.prototype.hasOwnProperty.call(core, x);
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js
new file mode 100644
index 0000000..2b43813
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js
@@ -0,0 +1,42 @@
+var path = require('path');
+var parse = path.parse || require('path-parse');
+
+var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) {
+    var prefix = '/';
+    if ((/^([A-Za-z]:)/).test(absoluteStart)) {
+        prefix = '';
+    } else if ((/^\\\\/).test(absoluteStart)) {
+        prefix = '\\\\';
+    }
+
+    var paths = [absoluteStart];
+    var parsed = parse(absoluteStart);
+    while (parsed.dir !== paths[paths.length - 1]) {
+        paths.push(parsed.dir);
+        parsed = parse(parsed.dir);
+    }
+
+    return paths.reduce(function (dirs, aPath) {
+        return dirs.concat(modules.map(function (moduleDir) {
+            return path.resolve(prefix, aPath, moduleDir);
+        }));
+    }, []);
+};
+
+module.exports = function nodeModulesPaths(start, opts, request) {
+    var modules = opts && opts.moduleDirectory
+        ? [].concat(opts.moduleDirectory)
+        : ['node_modules'];
+
+    if (opts && typeof opts.paths === 'function') {
+        return opts.paths(
+            request,
+            start,
+            function () { return getNodeModulesDirs(start, modules); },
+            opts
+        );
+    }
+
+    var dirs = getNodeModulesDirs(start, modules);
+    return opts && opts.paths ? dirs.concat(opts.paths) : dirs;
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js
new file mode 100644
index 0000000..4b56904
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js
@@ -0,0 +1,10 @@
+module.exports = function (x, opts) {
+    /**
+     * This file is purposefully a passthrough. It's expected that third-party
+     * environments will override it at runtime in order to inject special logic
+     * into `resolve` (by manipulating the options). One such example is the PnP
+     * code path in Yarn.
+     */
+
+    return opts || {};
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js
new file mode 100644
index 0000000..da74e19
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js
@@ -0,0 +1,191 @@
+var isCore = require('./is-core');
+var fs = require('fs');
+var path = require('path');
+var caller = require('./caller.js');
+var nodeModulesPaths = require('./node-modules-paths.js');
+var normalizeOptions = require('./normalize-options.js');
+
+var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;
+
+var defaultIsFile = function isFile(file) {
+    try {
+        var stat = fs.statSync(file);
+    } catch (e) {
+        if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
+        throw e;
+    }
+    return stat.isFile() || stat.isFIFO();
+};
+
+var defaultIsDir = function isDirectory(dir) {
+    try {
+        var stat = fs.statSync(dir);
+    } catch (e) {
+        if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
+        throw e;
+    }
+    return stat.isDirectory();
+};
+
+var defaultRealpathSync = function realpathSync(x) {
+    try {
+        return realpathFS(x);
+    } catch (realpathErr) {
+        if (realpathErr.code !== 'ENOENT') {
+            throw realpathErr;
+        }
+    }
+    return x;
+};
+
+var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) {
+    if (opts && opts.preserveSymlinks === false) {
+        return realpathSync(x);
+    }
+    return x;
+};
+
+var getPackageCandidates = function getPackageCandidates(x, start, opts) {
+    var dirs = nodeModulesPaths(start, opts, x);
+    for (var i = 0; i < dirs.length; i++) {
+        dirs[i] = path.join(dirs[i], x);
+    }
+    return dirs;
+};
+
+module.exports = function resolveSync(x, options) {
+    if (typeof x !== 'string') {
+        throw new TypeError('Path must be a string.');
+    }
+    var opts = normalizeOptions(x, options);
+
+    var isFile = opts.isFile || defaultIsFile;
+    var readFileSync = opts.readFileSync || fs.readFileSync;
+    var isDirectory = opts.isDirectory || defaultIsDir;
+    var realpathSync = opts.realpathSync || defaultRealpathSync;
+    var packageIterator = opts.packageIterator;
+
+    var extensions = opts.extensions || ['.js'];
+    var basedir = opts.basedir || path.dirname(caller());
+    var parent = opts.filename || basedir;
+
+    opts.paths = opts.paths || [];
+
+    // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
+    var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts);
+
+    if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) {
+        var res = path.resolve(absoluteStart, x);
+        if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
+        var m = loadAsFileSync(res) || loadAsDirectorySync(res);
+        if (m) return maybeRealpathSync(realpathSync, m, opts);
+    } else if (isCore(x)) {
+        return x;
+    } else {
+        var n = loadNodeModulesSync(x, absoluteStart);
+        if (n) return maybeRealpathSync(realpathSync, n, opts);
+    }
+
+    var err = new Error("Cannot find module '" + x + "' from '" + parent + "'");
+    err.code = 'MODULE_NOT_FOUND';
+    throw err;
+
+    function loadAsFileSync(x) {
+        var pkg = loadpkg(path.dirname(x));
+
+        if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) {
+            var rfile = path.relative(pkg.dir, x);
+            var r = opts.pathFilter(pkg.pkg, x, rfile);
+            if (r) {
+                x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign
+            }
+        }
+
+        if (isFile(x)) {
+            return x;
+        }
+
+        for (var i = 0; i < extensions.length; i++) {
+            var file = x + extensions[i];
+            if (isFile(file)) {
+                return file;
+            }
+        }
+    }
+
+    function loadpkg(dir) {
+        if (dir === '' || dir === '/') return;
+        if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
+            return;
+        }
+        if ((/[/\\]node_modules[/\\]*$/).test(dir)) return;
+
+        var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json');
+
+        if (!isFile(pkgfile)) {
+            return loadpkg(path.dirname(dir));
+        }
+
+        var body = readFileSync(pkgfile);
+
+        try {
+            var pkg = JSON.parse(body);
+        } catch (jsonErr) {}
+
+        if (pkg && opts.packageFilter) {
+            // v2 will pass pkgfile
+            pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment
+        }
+
+        return { pkg: pkg, dir: dir };
+    }
+
+    function loadAsDirectorySync(x) {
+        var pkgfile = path.join(maybeRealpathSync(realpathSync, x, opts), '/package.json');
+        if (isFile(pkgfile)) {
+            try {
+                var body = readFileSync(pkgfile, 'UTF8');
+                var pkg = JSON.parse(body);
+            } catch (e) {}
+
+            if (pkg && opts.packageFilter) {
+                // v2 will pass pkgfile
+                pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment
+            }
+
+            if (pkg && pkg.main) {
+                if (typeof pkg.main !== 'string') {
+                    var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string');
+                    mainError.code = 'INVALID_PACKAGE_MAIN';
+                    throw mainError;
+                }
+                if (pkg.main === '.' || pkg.main === './') {
+                    pkg.main = 'index';
+                }
+                try {
+                    var m = loadAsFileSync(path.resolve(x, pkg.main));
+                    if (m) return m;
+                    var n = loadAsDirectorySync(path.resolve(x, pkg.main));
+                    if (n) return n;
+                } catch (e) {}
+            }
+        }
+
+        return loadAsFileSync(path.join(x, '/index'));
+    }
+
+    function loadNodeModulesSync(x, start) {
+        var thunk = function () { return getPackageCandidates(x, start, opts); };
+        var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk();
+
+        for (var i = 0; i < dirs.length; i++) {
+            var dir = dirs[i];
+            if (isDirectory(path.dirname(dir))) {
+                var m = loadAsFileSync(dir);
+                if (m) return m;
+                var n = loadAsDirectorySync(dir);
+                if (n) return n;
+            }
+        }
+    }
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/package.json
new file mode 100644
index 0000000..b6d3bec
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/package.json
@@ -0,0 +1,47 @@
+{
+	"name": "resolve",
+	"description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
+	"version": "1.17.0",
+	"repository": {
+		"type": "git",
+		"url": "git://github.com/browserify/resolve.git"
+	},
+	"main": "index.js",
+	"keywords": [
+		"resolve",
+		"require",
+		"node",
+		"module"
+	],
+	"scripts": {
+		"prepublish": "safe-publish-latest",
+		"lint": "eslint .",
+		"pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async",
+		"tests-only": "tape test/*.js",
+		"pretest": "npm run lint",
+		"test": "npm run --silent tests-only",
+		"posttest": "npm run test:multirepo",
+		"test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test"
+	},
+	"devDependencies": {
+		"@ljharb/eslint-config": "^16.0.0",
+		"array.prototype.map": "^1.0.2",
+		"eslint": "^6.8.0",
+		"object-keys": "^1.1.1",
+		"safe-publish-latest": "^1.1.4",
+		"tap": "0.4.13",
+		"tape": "^5.0.0-next.5"
+	},
+	"license": "MIT",
+	"author": {
+		"name": "James Halliday",
+		"email": "mail@substack.net",
+		"url": "http://substack.net"
+	},
+	"funding": {
+		"url": "https://github.com/sponsors/ljharb"
+	},
+	"dependencies": {
+		"path-parse": "^1.0.6"
+	}
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown b/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown
new file mode 100644
index 0000000..5e1aea3
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown
@@ -0,0 +1,242 @@
+# resolve
+
+implements the [node `require.resolve()`
+algorithm](https://nodejs.org/api/modules.html#modules_all_together)
+such that you can `require.resolve()` on behalf of a file asynchronously and
+synchronously
+
+[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve)
+
+# example
+
+asynchronously resolve:
+
+```js
+var resolve = require('resolve');
+resolve('tap', { basedir: __dirname }, function (err, res) {
+    if (err) console.error(err);
+    else console.log(res);
+});
+```
+
+```
+$ node example/async.js
+/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
+```
+
+synchronously resolve:
+
+```js
+var resolve = require('resolve');
+var res = resolve.sync('tap', { basedir: __dirname });
+console.log(res);
+```
+
+```
+$ node example/sync.js
+/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
+```
+
+# methods
+
+```js
+var resolve = require('resolve');
+```
+
+## resolve(id, opts={}, cb)
+
+Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`.
+
+options are:
+
+* opts.basedir - directory to begin resolving from
+
+* opts.package - `package.json` data applicable to the module being loaded
+
+* opts.extensions - array of file extensions to search in order
+
+* opts.readFile - how to read files asynchronously
+
+* opts.isFile - function to asynchronously test whether a file exists
+
+* opts.isDirectory - function to asynchronously test whether a directory exists
+
+* opts.realpath - function to asynchronously resolve a potential symlink to its real path
+
+* `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field
+  * pkg - package data
+  * pkgfile - path to package.json
+  * dir - directory for package.json
+
+* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
+  * pkg - package data
+  * path - the path being resolved
+  * relativePath - the path relative from the package.json location
+  * returns - a relative path that will be joined from the package.json location
+
+* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this)
+
+  For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function
+    * request - the import specifier being resolved
+    * start - lookup path
+    * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
+    * opts - the resolution options
+
+* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this)
+    * request - the import specifier being resolved
+    * start - lookup path
+    * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
+    * opts - the resolution options
+
+* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+
+* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
+This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
+**Note:** this property is currently `true` by default but it will be changed to
+`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
+
+default `opts` values:
+
+```js
+{
+    paths: [],
+    basedir: __dirname,
+    extensions: ['.js'],
+    readFile: fs.readFile,
+    isFile: function isFile(file, cb) {
+        fs.stat(file, function (err, stat) {
+            if (!err) {
+                return cb(null, stat.isFile() || stat.isFIFO());
+            }
+            if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
+            return cb(err);
+        });
+    },
+    isDirectory: function isDirectory(dir, cb) {
+        fs.stat(dir, function (err, stat) {
+            if (!err) {
+                return cb(null, stat.isDirectory());
+            }
+            if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
+            return cb(err);
+        });
+    },
+    realpath: function realpath(file, cb) {
+       var realpath = typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;
+       realpath(file, function (realPathErr, realPath) {
+           if (realPathErr && realPathErr.code !== 'ENOENT') cb(realPathErr);
+           else cb(null, realPathErr ? file : realPath);
+       });
+   },
+    moduleDirectory: 'node_modules',
+    preserveSymlinks: true
+}
+```
+
+## resolve.sync(id, opts)
+
+Synchronously resolve the module path string `id`, returning the result and
+throwing an error when `id` can't be resolved.
+
+options are:
+
+* opts.basedir - directory to begin resolving from
+
+* opts.extensions - array of file extensions to search in order
+
+* opts.readFile - how to read files synchronously
+
+* opts.isFile - function to synchronously test whether a file exists
+
+* opts.isDirectory - function to synchronously test whether a directory exists
+
+* opts.realpathSync - function to synchronously resolve a potential symlink to its real path
+
+* `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field
+  * pkg - package data
+  * dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2)
+
+* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
+  * pkg - package data
+  * path - the path being resolved
+  * relativePath - the path relative from the package.json location
+  * returns - a relative path that will be joined from the package.json location
+
+* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this)
+
+  For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function
+    * request - the import specifier being resolved
+    * start - lookup path
+    * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
+    * opts - the resolution options
+
+* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this)
+    * request - the import specifier being resolved
+    * start - lookup path
+    * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
+    * opts - the resolution options
+
+* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+
+* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
+This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
+**Note:** this property is currently `true` by default but it will be changed to
+`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
+
+default `opts` values:
+
+```js
+{
+    paths: [],
+    basedir: __dirname,
+    extensions: ['.js'],
+    readFileSync: fs.readFileSync,
+    isFile: function isFile(file) {
+        try {
+            var stat = fs.statSync(file);
+        } catch (e) {
+            if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
+            throw e;
+        }
+        return stat.isFile() || stat.isFIFO();
+    },
+    isDirectory: function isDirectory(dir) {
+        try {
+            var stat = fs.statSync(dir);
+        } catch (e) {
+            if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
+            throw e;
+        }
+        return stat.isDirectory();
+    },
+    realpathSync: function realpathSync(file) {
+        try {
+            var realpath = typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;
+            return realpath(file);
+        } catch (realPathErr) {
+            if (realPathErr.code !== 'ENOENT') {
+                throw realPathErr;
+            }
+        }
+        return file;
+    },
+    moduleDirectory: 'node_modules',
+    preserveSymlinks: true
+}
+```
+
+## resolve.isCore(pkg)
+
+Return whether a package is in core.
+
+# install
+
+With [npm](https://npmjs.org) do:
+
+```sh
+npm install resolve
+```
+
+# license
+
+MIT
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc b/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc
new file mode 100644
index 0000000..ddd262d
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc
@@ -0,0 +1,5 @@
+{
+    "rules": {
+        "max-lines": 0
+    }
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js
new file mode 100644
index 0000000..4c111e1
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js
@@ -0,0 +1,85 @@
+var test = require('tape');
+var keys = require('object-keys');
+var resolve = require('../');
+
+test('core modules', function (t) {
+    t.test('isCore()', function (st) {
+        st.ok(resolve.isCore('fs'));
+        st.ok(resolve.isCore('net'));
+        st.ok(resolve.isCore('http'));
+
+        st.ok(!resolve.isCore('seq'));
+        st.ok(!resolve.isCore('../'));
+
+        st.ok(!resolve.isCore('toString'));
+
+        st.end();
+    });
+
+    t.test('core list', function (st) {
+        var cores = keys(resolve.core);
+        st.plan(cores.length);
+
+        for (var i = 0; i < cores.length; ++i) {
+            var mod = cores[i];
+            if (resolve.core[mod]) {
+                st.doesNotThrow(
+                    function () { require(mod); }, // eslint-disable-line no-loop-func
+                    mod + ' supported; requiring does not throw'
+                );
+            } else {
+                st.throws(
+                    function () { require(mod); }, // eslint-disable-line no-loop-func
+                    mod + ' not supported; requiring throws'
+                );
+            }
+        }
+
+        st.end();
+    });
+
+    t.test('core via repl module', { skip: !resolve.core.repl }, function (st) {
+        var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
+        if (!libs) {
+            st.skip('module.builtinModules does not exist');
+            return st.end();
+        }
+        for (var i = 0; i < libs.length; ++i) {
+            var mod = libs[i];
+            st.ok(resolve.core[mod], mod + ' is a core module');
+            st.doesNotThrow(
+                function () { require(mod); }, // eslint-disable-line no-loop-func
+                'requiring ' + mod + ' does not throw'
+            );
+        }
+        st.end();
+    });
+
+    t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) {
+        var libs = require('module').builtinModules;
+        if (!libs) {
+            st.skip('module.builtinModules does not exist');
+            return st.end();
+        }
+        var blacklist = [
+            '_debug_agent',
+            'v8/tools/tickprocessor-driver',
+            'v8/tools/SourceMap',
+            'v8/tools/tickprocessor',
+            'v8/tools/profile'
+        ];
+        for (var i = 0; i < libs.length; ++i) {
+            var mod = libs[i];
+            if (blacklist.indexOf(mod) === -1) {
+                st.ok(resolve.core[mod], mod + ' is a core module');
+                st.doesNotThrow(
+                    function () { require(mod); }, // eslint-disable-line no-loop-func
+                    'requiring ' + mod + ' does not throw'
+                );
+            }
+        }
+        st.end();
+    });
+
+    t.end();
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js
new file mode 100644
index 0000000..3080665
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js
@@ -0,0 +1,29 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('dotdot', function (t) {
+    t.plan(4);
+    var dir = path.join(__dirname, '/dotdot/abc');
+
+    resolve('..', { basedir: dir }, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(__dirname, 'dotdot/index.js'));
+    });
+
+    resolve('.', { basedir: dir }, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, 'index.js'));
+    });
+});
+
+test('dotdot sync', function (t) {
+    t.plan(2);
+    var dir = path.join(__dirname, '/dotdot/abc');
+
+    var a = resolve.sync('..', { basedir: dir });
+    t.equal(a, path.join(__dirname, 'dotdot/index.js'));
+
+    var b = resolve.sync('.', { basedir: dir });
+    t.equal(b, path.join(dir, 'index.js'));
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js
new file mode 100644
index 0000000..67f2534
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js
@@ -0,0 +1,2 @@
+var x = require('..');
+console.log(x);
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js
new file mode 100644
index 0000000..643f9fc
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js
@@ -0,0 +1 @@
+module.exports = 'whatever';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js
new file mode 100644
index 0000000..5f2141a
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js
@@ -0,0 +1,29 @@
+var test = require('tape');
+var path = require('path');
+var resolve = require('../');
+
+test('faulty basedir must produce error in windows', { skip: process.platform !== 'win32' }, function (t) {
+    t.plan(1);
+
+    var resolverDir = 'C:\\a\\b\\c\\d';
+
+    resolve('tape/lib/test.js', { basedir: resolverDir }, function (err, res, pkg) {
+        t.equal(!!err, true);
+    });
+});
+
+test('non-existent basedir should not throw when preserveSymlinks is false', function (t) {
+    t.plan(2);
+
+    var opts = {
+        basedir: path.join(path.sep, 'unreal', 'path', 'that', 'does', 'not', 'exist'),
+        preserveSymlinks: false
+    };
+
+    var module = './dotdot/abc';
+
+    resolve(module, opts, function (err, res) {
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+        t.equal(res, undefined);
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js
new file mode 100644
index 0000000..8f8cccd
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js
@@ -0,0 +1,34 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('filter', function (t) {
+    t.plan(4);
+    var dir = path.join(__dirname, 'resolver');
+    var packageFilterArgs;
+    resolve('./baz', {
+        basedir: dir,
+        packageFilter: function (pkg, pkgfile) {
+            pkg.main = 'doom'; // eslint-disable-line no-param-reassign
+            packageFilterArgs = [pkg, pkgfile];
+            return pkg;
+        }
+    }, function (err, res, pkg) {
+        if (err) t.fail(err);
+
+        t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
+
+        var packageData = packageFilterArgs[0];
+        t.equal(pkg, packageData, 'first packageFilter argument is "pkg"');
+        t.equal(packageData.main, 'doom', 'package "main" was altered');
+
+        var packageFile = packageFilterArgs[1];
+        t.equal(
+            packageFile,
+            path.join(dir, 'baz/package.json'),
+            'second packageFilter argument is "pkgfile"'
+        );
+
+        t.end();
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js
new file mode 100644
index 0000000..8a43b98
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js
@@ -0,0 +1,33 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('filter', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    var packageFilterArgs;
+    var res = resolve.sync('./baz', {
+        basedir: dir,
+        // NOTE: in v2.x, this will be `pkg, pkgfile, dir`, but must remain "broken" here in v1.x for compatibility
+        packageFilter: function (pkg, /*pkgfile,*/ dir) { // eslint-disable-line spaced-comment
+            pkg.main = 'doom'; // eslint-disable-line no-param-reassign
+            packageFilterArgs = 'is 1.x' ? [pkg, dir] : [pkg, pkgfile, dir]; // eslint-disable-line no-constant-condition, no-undef
+            return pkg;
+        }
+    });
+
+    t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
+
+    var packageData = packageFilterArgs[0];
+    t.equal(packageData.main, 'doom', 'package "main" was altered');
+
+    if (!'is 1.x') { // eslint-disable-line no-constant-condition
+        var packageFile = packageFilterArgs[1];
+        t.equal(packageFile, path.join(dir, 'baz', 'package.json'), 'package.json path is correct');
+    }
+
+    var packageDir = packageFilterArgs['is 1.x' ? 1 : 2]; // eslint-disable-line no-constant-condition
+    // eslint-disable-next-line no-constant-condition
+    t.equal(packageDir, path.join(dir, 'baz'), ('is 1.x' ? 'second' : 'third') + ' packageFilter argument is "dir"');
+
+    t.end();
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js
new file mode 100644
index 0000000..b9f17fe
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js
@@ -0,0 +1,239 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('mock', function (t) {
+    t.plan(8);
+
+    var files = {};
+    files[path.resolve('/foo/bar/baz.js')] = 'beep';
+
+    var dirs = {};
+    dirs[path.resolve('/foo/bar')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file, cb) {
+                cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
+            },
+            isDirectory: function (dir, cb) {
+                cb(null, !!dirs[path.resolve(dir)]);
+            },
+            readFile: function (file, cb) {
+                cb(null, files[path.resolve(file)]);
+            },
+            realpath: function (file, cb) {
+                cb(null, file);
+            }
+        };
+    }
+
+    resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/baz.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/baz.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('baz', opts('/foo/bar'), function (err, res) {
+        t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+
+    resolve('../baz', opts('/foo/bar'), function (err, res) {
+        t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+});
+
+test('mock from package', function (t) {
+    t.plan(8);
+
+    var files = {};
+    files[path.resolve('/foo/bar/baz.js')] = 'beep';
+
+    var dirs = {};
+    dirs[path.resolve('/foo/bar')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file, cb) {
+                cb(null, Object.prototype.hasOwnProperty.call(files, file));
+            },
+            isDirectory: function (dir, cb) {
+                cb(null, !!dirs[path.resolve(dir)]);
+            },
+            'package': { main: 'bar' },
+            readFile: function (file, cb) {
+                cb(null, files[file]);
+            },
+            realpath: function (file, cb) {
+                cb(null, file);
+            }
+        };
+    }
+
+    resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/baz.js'));
+        t.equal(pkg && pkg.main, 'bar');
+    });
+
+    resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/baz.js'));
+        t.equal(pkg && pkg.main, 'bar');
+    });
+
+    resolve('baz', opts('/foo/bar'), function (err, res) {
+        t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+
+    resolve('../baz', opts('/foo/bar'), function (err, res) {
+        t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+});
+
+test('mock package', function (t) {
+    t.plan(2);
+
+    var files = {};
+    files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
+    files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
+        main: './baz.js'
+    });
+
+    var dirs = {};
+    dirs[path.resolve('/foo')] = true;
+    dirs[path.resolve('/foo/node_modules')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file, cb) {
+                cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
+            },
+            isDirectory: function (dir, cb) {
+                cb(null, !!dirs[path.resolve(dir)]);
+            },
+            readFile: function (file, cb) {
+                cb(null, files[path.resolve(file)]);
+            },
+            realpath: function (file, cb) {
+                cb(null, file);
+            }
+        };
+    }
+
+    resolve('bar', opts('/foo'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
+        t.equal(pkg && pkg.main, './baz.js');
+    });
+});
+
+test('mock package from package', function (t) {
+    t.plan(2);
+
+    var files = {};
+    files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
+    files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
+        main: './baz.js'
+    });
+
+    var dirs = {};
+    dirs[path.resolve('/foo')] = true;
+    dirs[path.resolve('/foo/node_modules')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file, cb) {
+                cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
+            },
+            isDirectory: function (dir, cb) {
+                cb(null, !!dirs[path.resolve(dir)]);
+            },
+            'package': { main: 'bar' },
+            readFile: function (file, cb) {
+                cb(null, files[path.resolve(file)]);
+            },
+            realpath: function (file, cb) {
+                cb(null, file);
+            }
+        };
+    }
+
+    resolve('bar', opts('/foo'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
+        t.equal(pkg && pkg.main, './baz.js');
+    });
+});
+
+test('symlinked', function (t) {
+    t.plan(4);
+
+    var files = {};
+    files[path.resolve('/foo/bar/baz.js')] = 'beep';
+    files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep';
+
+    var dirs = {};
+    dirs[path.resolve('/foo/bar')] = true;
+    dirs[path.resolve('/foo/bar/symlinked')] = true;
+
+    function opts(basedir) {
+        return {
+            preserveSymlinks: false,
+            basedir: path.resolve(basedir),
+            isFile: function (file, cb) {
+                cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
+            },
+            isDirectory: function (dir, cb) {
+                cb(null, !!dirs[path.resolve(dir)]);
+            },
+            readFile: function (file, cb) {
+                cb(null, files[path.resolve(file)]);
+            },
+            realpath: function (file, cb) {
+                var resolved = path.resolve(file);
+
+                if (resolved.indexOf('symlinked') >= 0) {
+                    cb(null, resolved);
+                    return;
+                }
+
+                var ext = path.extname(resolved);
+
+                if (ext) {
+                    var dir = path.dirname(resolved);
+                    var base = path.basename(resolved);
+                    cb(null, path.join(dir, 'symlinked', base));
+                } else {
+                    cb(null, path.join(resolved, 'symlinked'));
+                }
+            }
+        };
+    }
+
+    resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/symlinked/baz.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
+        if (err) return t.fail(err);
+        t.equal(res, path.resolve('/foo/bar/symlinked/baz.js'));
+        t.equal(pkg, undefined);
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js
new file mode 100644
index 0000000..fcf8114
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js
@@ -0,0 +1,141 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('mock', function (t) {
+    t.plan(4);
+
+    var files = {};
+    files[path.resolve('/foo/bar/baz.js')] = 'beep';
+
+    var dirs = {};
+    dirs[path.resolve('/foo/bar')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file) {
+                return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
+            },
+            isDirectory: function (dir) {
+                return !!dirs[path.resolve(dir)];
+            },
+            readFileSync: function (file) {
+                return files[path.resolve(file)];
+            },
+            realpathSync: function (file) {
+                return file;
+            }
+        };
+    }
+
+    t.equal(
+        resolve.sync('./baz', opts('/foo/bar')),
+        path.resolve('/foo/bar/baz.js')
+    );
+
+    t.equal(
+        resolve.sync('./baz.js', opts('/foo/bar')),
+        path.resolve('/foo/bar/baz.js')
+    );
+
+    t.throws(function () {
+        resolve.sync('baz', opts('/foo/bar'));
+    });
+
+    t.throws(function () {
+        resolve.sync('../baz', opts('/foo/bar'));
+    });
+});
+
+test('mock package', function (t) {
+    t.plan(1);
+
+    var files = {};
+    files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
+    files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
+        main: './baz.js'
+    });
+
+    var dirs = {};
+    dirs[path.resolve('/foo')] = true;
+    dirs[path.resolve('/foo/node_modules')] = true;
+
+    function opts(basedir) {
+        return {
+            basedir: path.resolve(basedir),
+            isFile: function (file) {
+                return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
+            },
+            isDirectory: function (dir) {
+                return !!dirs[path.resolve(dir)];
+            },
+            readFileSync: function (file) {
+                return files[path.resolve(file)];
+            },
+            realpathSync: function (file) {
+                return file;
+            }
+        };
+    }
+
+    t.equal(
+        resolve.sync('bar', opts('/foo')),
+        path.resolve('/foo/node_modules/bar/baz.js')
+    );
+});
+
+test('symlinked', function (t) {
+    t.plan(2);
+
+    var files = {};
+    files[path.resolve('/foo/bar/baz.js')] = 'beep';
+    files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep';
+
+    var dirs = {};
+    dirs[path.resolve('/foo/bar')] = true;
+    dirs[path.resolve('/foo/bar/symlinked')] = true;
+
+    function opts(basedir) {
+        return {
+            preserveSymlinks: false,
+            basedir: path.resolve(basedir),
+            isFile: function (file) {
+                return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
+            },
+            isDirectory: function (dir) {
+                return !!dirs[path.resolve(dir)];
+            },
+            readFileSync: function (file) {
+                return files[path.resolve(file)];
+            },
+            realpathSync: function (file) {
+                var resolved = path.resolve(file);
+
+                if (resolved.indexOf('symlinked') >= 0) {
+                    return resolved;
+                }
+
+                var ext = path.extname(resolved);
+
+                if (ext) {
+                    var dir = path.dirname(resolved);
+                    var base = path.basename(resolved);
+                    return path.join(dir, 'symlinked', base);
+                } else {
+                    return path.join(resolved, 'symlinked');
+                }
+            }
+        };
+    }
+
+    t.equal(
+        resolve.sync('./baz', opts('/foo/bar')),
+        path.resolve('/foo/bar/symlinked/baz.js')
+    );
+
+    t.equal(
+        resolve.sync('./baz.js', opts('/foo/bar')),
+        path.resolve('/foo/bar/symlinked/baz.js')
+    );
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js
new file mode 100644
index 0000000..b50e5bb
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js
@@ -0,0 +1,56 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('moduleDirectory strings', function (t) {
+    t.plan(4);
+    var dir = path.join(__dirname, 'module_dir');
+    var xopts = {
+        basedir: dir,
+        moduleDirectory: 'xmodules'
+    };
+    resolve('aaa', xopts, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
+    });
+
+    var yopts = {
+        basedir: dir,
+        moduleDirectory: 'ymodules'
+    };
+    resolve('aaa', yopts, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
+    });
+});
+
+test('moduleDirectory array', function (t) {
+    t.plan(6);
+    var dir = path.join(__dirname, 'module_dir');
+    var aopts = {
+        basedir: dir,
+        moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
+    };
+    resolve('aaa', aopts, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
+    });
+
+    var bopts = {
+        basedir: dir,
+        moduleDirectory: ['zmodules', 'ymodules', 'xmodules']
+    };
+    resolve('aaa', bopts, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
+    });
+
+    var copts = {
+        basedir: dir,
+        moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
+    };
+    resolve('bbb', copts, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, '/zmodules/bbb/main.js'));
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
new file mode 100644
index 0000000..dd7cf7b
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
@@ -0,0 +1 @@
+module.exports = function (x) { return x * 100; };
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
new file mode 100644
index 0000000..ef2d4d4
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
@@ -0,0 +1 @@
+module.exports = function (x) { return x + 100; };
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
new file mode 100644
index 0000000..e8ba629
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
@@ -0,0 +1 @@
+module.exports = function (n) { return n * 111; };
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
new file mode 100644
index 0000000..c13b8cf
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
@@ -0,0 +1,3 @@
+{
+  "main": "main.js"
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js
new file mode 100644
index 0000000..675441d
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js
@@ -0,0 +1,143 @@
+var test = require('tape');
+var path = require('path');
+var parse = path.parse || require('path-parse');
+var keys = require('object-keys');
+
+var nodeModulesPaths = require('../lib/node-modules-paths');
+
+var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) {
+    var moduleDirs = [].concat(moduleDirectories || 'node_modules');
+    if (paths) {
+        for (var k = 0; k < paths.length; ++k) {
+            moduleDirs.push(path.basename(paths[k]));
+        }
+    }
+
+    var foundModuleDirs = {};
+    var uniqueDirs = {};
+    var parsedDirs = {};
+    for (var i = 0; i < dirs.length; ++i) {
+        var parsed = parse(dirs[i]);
+        if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; }
+        foundModuleDirs[parsed.base] += 1;
+        parsedDirs[parsed.dir] = true;
+        uniqueDirs[dirs[i]] = true;
+    }
+    t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has');
+    var foundModuleDirNames = keys(foundModuleDirs);
+    t.deepEqual(foundModuleDirNames, moduleDirs, 'all desired module dirs were found');
+    t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique');
+
+    var counts = {};
+    for (var j = 0; j < foundModuleDirNames.length; ++j) {
+        counts[foundModuleDirs[j]] = true;
+    }
+    t.equal(keys(counts).length, 1, 'all found module directories had the same count');
+};
+
+test('node-modules-paths', function (t) {
+    t.test('no options', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var dirs = nodeModulesPaths(start);
+
+        verifyDirs(t, start, dirs);
+
+        t.end();
+    });
+
+    t.test('empty options', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var dirs = nodeModulesPaths(start, {});
+
+        verifyDirs(t, start, dirs);
+
+        t.end();
+    });
+
+    t.test('with paths=array option', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var paths = ['a', 'b'];
+        var dirs = nodeModulesPaths(start, { paths: paths });
+
+        verifyDirs(t, start, dirs, null, paths);
+
+        t.end();
+    });
+
+    t.test('with paths=function option', function (t) {
+        var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
+            return getNodeModulesDirs().concat(path.join(absoluteStart, 'not node modules', request));
+        };
+
+        var start = path.join(__dirname, 'resolver');
+        var dirs = nodeModulesPaths(start, { paths: paths }, 'pkg');
+
+        verifyDirs(t, start, dirs, null, [path.join(start, 'not node modules', 'pkg')]);
+
+        t.end();
+    });
+
+    t.test('with paths=function skipping node modules resolution', function (t) {
+        var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
+            return [];
+        };
+        var start = path.join(__dirname, 'resolver');
+        var dirs = nodeModulesPaths(start, { paths: paths });
+        t.deepEqual(dirs, [], 'no node_modules was computed');
+        t.end();
+    });
+
+    t.test('with moduleDirectory option', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var moduleDirectory = 'not node modules';
+        var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory });
+
+        verifyDirs(t, start, dirs, moduleDirectory);
+
+        t.end();
+    });
+
+    t.test('with 1 moduleDirectory and paths options', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var paths = ['a', 'b'];
+        var moduleDirectory = 'not node modules';
+        var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory });
+
+        verifyDirs(t, start, dirs, moduleDirectory, paths);
+
+        t.end();
+    });
+
+    t.test('with 1+ moduleDirectory and paths options', function (t) {
+        var start = path.join(__dirname, 'resolver');
+        var paths = ['a', 'b'];
+        var moduleDirectories = ['not node modules', 'other modules'];
+        var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
+
+        verifyDirs(t, start, dirs, moduleDirectories, paths);
+
+        t.end();
+    });
+
+    t.test('combine paths correctly on Windows', function (t) {
+        var start = 'C:\\Users\\username\\myProject\\src';
+        var paths = [];
+        var moduleDirectories = ['node_modules', start];
+        var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
+
+        t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir');
+
+        t.end();
+    });
+
+    t.test('combine paths correctly on non-Windows', { skip: process.platform === 'win32' }, function (t) {
+        var start = '/Users/username/git/myProject/src';
+        var paths = [];
+        var moduleDirectories = ['node_modules', '/Users/username/git/myProject/src'];
+        var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
+
+        t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir');
+
+        t.end();
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js
new file mode 100644
index 0000000..d06aa4e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js
@@ -0,0 +1,70 @@
+var fs = require('fs');
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('$NODE_PATH', function (t) {
+    t.plan(8);
+
+    var isDir = function (dir, cb) {
+        if (dir === '/node_path' || dir === 'node_path/x') {
+            return cb(null, true);
+        }
+        fs.stat(dir, function (err, stat) {
+            if (!err) {
+                return cb(null, stat.isDirectory());
+            }
+            if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
+            return cb(err);
+        });
+    };
+
+    resolve('aaa', {
+        paths: [
+            path.join(__dirname, '/node_path/x'),
+            path.join(__dirname, '/node_path/y')
+        ],
+        basedir: __dirname,
+        isDirectory: isDir
+    }, function (err, res) {
+        t.error(err);
+        t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves');
+    });
+
+    resolve('bbb', {
+        paths: [
+            path.join(__dirname, '/node_path/x'),
+            path.join(__dirname, '/node_path/y')
+        ],
+        basedir: __dirname,
+        isDirectory: isDir
+    }, function (err, res) {
+        t.error(err);
+        t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves');
+    });
+
+    resolve('ccc', {
+        paths: [
+            path.join(__dirname, '/node_path/x'),
+            path.join(__dirname, '/node_path/y')
+        ],
+        basedir: __dirname,
+        isDirectory: isDir
+    }, function (err, res) {
+        t.error(err);
+        t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves');
+    });
+
+    // ensure that relative paths still resolve against the regular `node_modules` correctly
+    resolve('tap', {
+        paths: [
+            'node_path'
+        ],
+        basedir: path.join(__dirname, 'node_path/x'),
+        isDirectory: isDir
+    }, function (err, res) {
+        var root = require('tap/package.json').main;
+        t.error(err);
+        t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves');
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js
new file mode 100644
index 0000000..ad70d0b
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js
@@ -0,0 +1 @@
+module.exports = 'A';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js
new file mode 100644
index 0000000..a64132e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js
@@ -0,0 +1 @@
+module.exports = 'C';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js
new file mode 100644
index 0000000..4d0f32e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js
@@ -0,0 +1 @@
+module.exports = 'B';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js
new file mode 100644
index 0000000..793315e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js
@@ -0,0 +1 @@
+module.exports = 'CY';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js
new file mode 100644
index 0000000..ef63c40
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js
@@ -0,0 +1,9 @@
+var test = require('tape');
+var resolve = require('../');
+
+test('nonstring', function (t) {
+    t.plan(1);
+    resolve(555, function (err, res, pkg) {
+        t.ok(err);
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js
new file mode 100644
index 0000000..16519ae
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js
@@ -0,0 +1,75 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+var resolverDir = path.join(__dirname, '/pathfilter/deep_ref');
+
+var pathFilterFactory = function (t) {
+    return function (pkg, x, remainder) {
+        t.equal(pkg.version, '1.2.3');
+        t.equal(x, path.join(resolverDir, 'node_modules/deep/ref'));
+        t.equal(remainder, 'ref');
+        return 'alt';
+    };
+};
+
+test('#62: deep module references and the pathFilter', function (t) {
+    t.test('deep/ref.js', function (st) {
+        st.plan(3);
+
+        resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) {
+            if (err) st.fail(err);
+
+            st.equal(pkg.version, '1.2.3');
+            st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
+        });
+
+        var res = resolve.sync('deep/ref', { basedir: resolverDir });
+        st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
+    });
+
+    t.test('deep/deeper/ref', function (st) {
+        st.plan(4);
+
+        resolve(
+            'deep/deeper/ref',
+            { basedir: resolverDir },
+            function (err, res, pkg) {
+                if (err) t.fail(err);
+                st.notEqual(pkg, undefined);
+                st.equal(pkg.version, '1.2.3');
+                st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
+            }
+        );
+
+        var res = resolve.sync(
+            'deep/deeper/ref',
+            { basedir: resolverDir }
+        );
+        st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
+    });
+
+    t.test('deep/ref alt', function (st) {
+        st.plan(8);
+
+        var pathFilter = pathFilterFactory(st);
+
+        var res = resolve.sync(
+            'deep/ref',
+            { basedir: resolverDir, pathFilter: pathFilter }
+        );
+        st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
+
+        resolve(
+            'deep/ref',
+            { basedir: resolverDir, pathFilter: pathFilter },
+            function (err, res, pkg) {
+                if (err) st.fail(err);
+                st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
+                st.end();
+            }
+        );
+    });
+
+    t.end();
+});
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter/deep_ref/main.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter/deep_ref/main.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js
new file mode 100644
index 0000000..2febb59
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js
@@ -0,0 +1,23 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('precedence', function (t) {
+    t.plan(3);
+    var dir = path.join(__dirname, 'precedence/aaa');
+
+    resolve('./', { basedir: dir }, function (err, res, pkg) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, 'index.js'));
+        t.equal(pkg.name, 'resolve');
+    });
+});
+
+test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string
+    t.plan(1);
+    var dir = path.join(__dirname, 'precedence/bbb');
+
+    resolve('./', { basedir: dir }, function (err, res, pkg) {
+        t.ok(err);
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js
new file mode 100644
index 0000000..b83a3e7
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js
@@ -0,0 +1 @@
+module.exports = 'wtf';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js
new file mode 100644
index 0000000..e0f8f6a
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js
@@ -0,0 +1 @@
+module.exports = 'okok';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js
new file mode 100644
index 0000000..93542a9
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js
@@ -0,0 +1 @@
+console.log(require('./'));
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js
new file mode 100644
index 0000000..2298f47
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js
@@ -0,0 +1 @@
+module.exports = '>_<';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js
new file mode 100644
index 0000000..716b81d
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js
@@ -0,0 +1 @@
+console.log(require('./')); // should throw
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js
new file mode 100644
index 0000000..aa36ee1
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js
@@ -0,0 +1,450 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('async foo', function (t) {
+    t.plan(12);
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./foo', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo.js'));
+        t.equal(pkg && pkg.name, 'resolve');
+    });
+
+    resolve('./foo.js', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo.js'));
+        t.equal(pkg && pkg.name, 'resolve');
+    });
+
+    resolve('./foo', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo.js'));
+        t.equal(pkg && pkg.main, 'resolver');
+    });
+
+    resolve('./foo.js', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo.js'));
+        t.equal(pkg.main, 'resolver');
+    });
+
+    resolve('./foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo.js'));
+    });
+
+    resolve('foo', { basedir: dir }, function (err) {
+        t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+
+    // Test that filename is reported as the "from" value when passed.
+    resolve('foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err) {
+        t.equal(err.message, "Cannot find module 'foo' from '" + path.join(dir, 'baz.js') + "'");
+    });
+});
+
+test('bar', function (t) {
+    t.plan(6);
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
+        t.equal(pkg.main, 'bar');
+    });
+});
+
+test('baz', function (t) {
+    t.plan(4);
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./baz', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'baz/quux.js'));
+        t.equal(pkg.main, 'quux.js');
+    });
+
+    resolve('./baz', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'baz/quux.js'));
+        t.equal(pkg.main, 'quux.js');
+    });
+});
+
+test('biz', function (t) {
+    t.plan(24);
+    var dir = path.join(__dirname, 'resolver/biz/node_modules');
+
+    resolve('./grux', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'grux/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('./grux', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'grux/index.js'));
+        t.equal(pkg.main, 'biz');
+    });
+
+    resolve('./garply', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'garply/lib/index.js'));
+        t.equal(pkg.main, './lib');
+    });
+
+    resolve('./garply', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'garply/lib/index.js'));
+        t.equal(pkg.main, './lib');
+    });
+
+    resolve('tiv', { basedir: dir + '/grux' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'tiv/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'tiv/index.js'));
+        t.equal(pkg.main, 'grux');
+    });
+
+    resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'tiv/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'tiv/index.js'));
+        t.equal(pkg.main, './lib');
+    });
+
+    resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'grux/index.js'));
+        t.equal(pkg, undefined);
+    });
+
+    resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'grux/index.js'));
+        t.equal(pkg.main, 'tiv');
+    });
+
+    resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'garply/lib/index.js'));
+        t.equal(pkg.main, './lib');
+    });
+
+    resolve('garply', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'garply/lib/index.js'));
+        t.equal(pkg.main, './lib');
+    });
+});
+
+test('quux', function (t) {
+    t.plan(2);
+    var dir = path.join(__dirname, 'resolver/quux');
+
+    resolve('./foo', { basedir: dir, 'package': { main: 'quux' } }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'foo/index.js'));
+        t.equal(pkg.main, 'quux');
+    });
+});
+
+test('normalize', function (t) {
+    t.plan(2);
+    var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
+
+    resolve('../grux', { basedir: dir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'index.js'));
+        t.equal(pkg, undefined);
+    });
+});
+
+test('cup', function (t) {
+    t.plan(5);
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'cup.coffee'));
+    });
+
+    resolve('./cup.coffee', { basedir: dir }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'cup.coffee'));
+    });
+
+    resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) {
+        t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+
+    // Test that filename is reported as the "from" value when passed.
+    resolve('./cup', { basedir: dir, extensions: ['.js'], filename: path.join(dir, 'cupboard.js') }, function (err, res) {
+        t.equal(err.message, "Cannot find module './cup' from '" + path.join(dir, 'cupboard.js') + "'");
+    });
+});
+
+test('mug', function (t) {
+    t.plan(3);
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./mug', { basedir: dir }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'mug.js'));
+    });
+
+    resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, '/mug.coffee'));
+    });
+
+    resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
+        t.equal(res, path.join(dir, '/mug.js'));
+    });
+});
+
+test('other path', function (t) {
+    t.plan(6);
+    var resolverDir = path.join(__dirname, 'resolver');
+    var dir = path.join(resolverDir, 'bar');
+    var otherDir = path.join(resolverDir, 'other_path');
+
+    resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(resolverDir, 'other_path/root.js'));
+    });
+
+    resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js'));
+    });
+
+    resolve('root', { basedir: dir }, function (err, res) {
+        t.equal(err.message, "Cannot find module 'root' from '" + path.resolve(dir) + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+
+    resolve('zzz', { basedir: dir, paths: [otherDir] }, function (err, res) {
+        t.equal(err.message, "Cannot find module 'zzz' from '" + path.resolve(dir) + "'");
+        t.equal(err.code, 'MODULE_NOT_FOUND');
+    });
+});
+
+test('path iterator', function (t) {
+    t.plan(2);
+
+    var resolverDir = path.join(__dirname, 'resolver');
+
+    var exactIterator = function (x, start, getPackageCandidates, opts) {
+        return [path.join(resolverDir, x)];
+    };
+
+    resolve('baz', { packageIterator: exactIterator }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(resolverDir, 'baz/quux.js'));
+        t.equal(pkg && pkg.name, 'baz');
+    });
+});
+
+test('incorrect main', function (t) {
+    t.plan(1);
+
+    var resolverDir = path.join(__dirname, 'resolver');
+    var dir = path.join(resolverDir, 'incorrect_main');
+
+    resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'index.js'));
+    });
+});
+
+test('without basedir', function (t) {
+    t.plan(1);
+
+    var dir = path.join(__dirname, 'resolver/without_basedir');
+    var tester = require(path.join(dir, 'main.js'));
+
+    tester(t, function (err, res, pkg) {
+        if (err) {
+            t.fail(err);
+        } else {
+            t.equal(res, path.join(dir, 'node_modules/mymodule.js'));
+        }
+    });
+});
+
+test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
+    t.plan(2);
+
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./foo', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'same_names/foo.js'));
+    });
+
+    resolve('./foo/', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'same_names/foo/index.js'));
+    });
+});
+
+test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) {
+    t.plan(2);
+
+    var dir = path.join(__dirname, 'resolver');
+
+    resolve('./', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'same_names/foo/index.js'));
+    });
+
+    resolve('.', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) {
+        if (err) t.fail(err);
+        t.equal(res, path.join(dir, 'same_names/foo/index.js'));
+    });
+});
+
+test('async: #121 - treating an existing file as a dir when no basedir', function (t) {
+    var testFile = path.basename(__filename);
+
+    t.test('sanity check', function (st) {
+        st.plan(1);
+        resolve('./' + testFile, function (err, res, pkg) {
+            if (err) t.fail(err);
+            st.equal(res, __filename, 'sanity check');
+        });
+    });
+
+    t.test('with a fake directory', function (st) {
+        st.plan(4);
+
+        resolve('./' + testFile + '/blah', function (err, res, pkg) {
+            st.ok(err, 'there is an error');
+            st.notOk(res, 'no result');
+
+            st.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
+            st.equal(
+                err && err.message,
+                'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
+                'can not find nonexistent module'
+            );
+            st.end();
+        });
+    });
+
+    t.end();
+});
+
+test('async dot main', function (t) {
+    var start = new Date();
+    t.plan(3);
+    resolve('./resolver/dot_main', function (err, ret) {
+        t.notOk(err);
+        t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js'));
+        t.ok(new Date() - start < 50, 'resolve.sync timedout');
+        t.end();
+    });
+});
+
+test('async dot slash main', function (t) {
+    var start = new Date();
+    t.plan(3);
+    resolve('./resolver/dot_slash_main', function (err, ret) {
+        t.notOk(err);
+        t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js'));
+        t.ok(new Date() - start < 50, 'resolve.sync timedout');
+        t.end();
+    });
+});
+
+test('not a directory', function (t) {
+    t.plan(6);
+    var path = './foo';
+    resolve(path, { basedir: __filename }, function (err, res, pkg) {
+        t.ok(err, 'a non-directory errors');
+        t.equal(arguments.length, 1);
+        t.equal(res, undefined);
+        t.equal(pkg, undefined);
+
+        t.equal(err && err.message, 'Cannot find module \'' + path + '\' from \'' + __filename + '\'');
+        t.equal(err && err.code, 'MODULE_NOT_FOUND');
+    });
+});
+
+test('non-string "main" field in package.json', function (t) {
+    t.plan(5);
+
+    var dir = path.join(__dirname, 'resolver');
+    resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
+        t.ok(err, 'errors on non-string main');
+        t.equal(err.message, 'package “invalid main” `main` must be a string');
+        t.equal(err.code, 'INVALID_PACKAGE_MAIN');
+        t.equal(res, undefined, 'res is undefined');
+        t.equal(pkg, undefined, 'pkg is undefined');
+    });
+});
+
+test('non-string "main" field in package.json', function (t) {
+    t.plan(5);
+
+    var dir = path.join(__dirname, 'resolver');
+    resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
+        t.ok(err, 'errors on non-string main');
+        t.equal(err.message, 'package “invalid main” `main` must be a string');
+        t.equal(err.code, 'INVALID_PACKAGE_MAIN');
+        t.equal(res, undefined, 'res is undefined');
+        t.equal(pkg, undefined, 'pkg is undefined');
+    });
+});
+
+test('browser field in package.json', function (t) {
+    t.plan(3);
+
+    var dir = path.join(__dirname, 'resolver');
+    resolve(
+        './browser_field',
+        {
+            basedir: dir,
+            packageFilter: function packageFilter(pkg) {
+                if (pkg.browser) {
+                    pkg.main = pkg.browser; // eslint-disable-line no-param-reassign
+                    delete pkg.browser; // eslint-disable-line no-param-reassign
+                }
+                return pkg;
+            }
+        },
+        function (err, res, pkg) {
+            if (err) t.fail(err);
+            t.equal(res, path.join(dir, 'browser_field', 'b.js'));
+            t.equal(pkg && pkg.main, 'b');
+            t.equal(pkg && pkg.browser, undefined);
+        }
+    );
+});
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/doom.js
similarity index 100%
rename from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
rename to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/doom.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json
new file mode 100644
index 0000000..2f77720
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json
@@ -0,0 +1,4 @@
+{
+    "name": "baz",
+    "main": "quux.js"
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/a.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/a.js
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/b.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/b.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json
new file mode 100644
index 0000000..bf406f0
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json
@@ -0,0 +1,5 @@
+{
+  "name": "browser_field",
+  "main": "a",
+  "browser": "b"
+}
diff --git a/node_modules/graphql/jsutils/ObjMap.mjs b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/cup.coffee
similarity index 100%
rename from node_modules/graphql/jsutils/ObjMap.mjs
rename to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/cup.coffee
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json
new file mode 100644
index 0000000..d7f4fc8
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json
@@ -0,0 +1,3 @@
+{
+    "main": "."
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json
new file mode 100644
index 0000000..f51287b
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json
@@ -0,0 +1,3 @@
+{
+    "main": "./"
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js
new file mode 100644
index 0000000..bc1fb0a
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js
@@ -0,0 +1,2 @@
+// this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate
+module.exports = 1;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json
new file mode 100644
index 0000000..b718804
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json
@@ -0,0 +1,3 @@
+{
+    "main": "wrong.js"
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json
new file mode 100644
index 0000000..0cf8279
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "invalid main",
+  "main": [
+    "why is this a thing",
+    "srsly omg wtf"
+  ]
+}
diff --git a/node_modules/eslint-plugin-jsx-a11y/.watchmanconfig b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.coffee
old mode 100755
new mode 100644
similarity index 100%
rename from node_modules/eslint-plugin-jsx-a11y/.watchmanconfig
rename to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.coffee
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json
new file mode 100644
index 0000000..d6707ca
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json
@@ -0,0 +1,6 @@
+{
+  "packages": [
+    "packages/*"
+  ],
+  "version": "0.0.0"
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json
new file mode 100644
index 0000000..8508f9d
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "monorepo-symlink-test",
+  "private": true,
+  "version": "0.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "postinstall": "lerna bootstrap",
+    "test": "node packages/package-a"
+  },
+  "author": "",
+  "license": "MIT",
+  "dependencies": {
+    "jquery": "^3.3.1",
+    "resolve": "../../../"
+  },
+  "devDependencies": {
+    "lerna": "^3.4.3"
+  }
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
new file mode 100644
index 0000000..8875a32
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var assert = require('assert');
+var path = require('path');
+var resolve = require('resolve');
+
+var basedir = __dirname + '/node_modules/@my-scope/package-b';
+
+var expected = path.join(__dirname, '../../node_modules/jquery/dist/jquery.js');
+
+/*
+ * preserveSymlinks === false
+ * will search NPM package from
+ * - packages/package-b/node_modules
+ * - packages/node_modules
+ * - node_modules
+ */
+assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: false }), expected);
+assert.equal(resolve.sync('../../node_modules/jquery', { basedir: basedir, preserveSymlinks: false }), expected);
+
+/*
+ * preserveSymlinks === true
+ * will search NPM package from
+ * - packages/package-a/node_modules/@my-scope/packages/package-b/node_modules
+ * - packages/package-a/node_modules/@my-scope/packages/node_modules
+ * - packages/package-a/node_modules/@my-scope/node_modules
+ * - packages/package-a/node_modules/node_modules
+ * - packages/package-a/node_modules
+ * - packages/node_modules
+ * - node_modules
+ */
+assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: true }), expected);
+assert.equal(resolve.sync('../../../../../node_modules/jquery', { basedir: basedir, preserveSymlinks: true }), expected);
+
+console.log(' * all monorepo paths successfully resolved through symlinks');
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
new file mode 100644
index 0000000..204de51
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
@@ -0,0 +1,14 @@
+{
+  "name": "@my-scope/package-a",
+  "version": "0.0.0",
+  "private": true,
+  "description": "",
+  "license": "MIT",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: run tests from root\" && exit 1"
+  },
+  "dependencies": {
+    "@my-scope/package-b": "^0.0.0"
+  }
+}
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
new file mode 100644
index 0000000..f57c3b5
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
@@ -0,0 +1,14 @@
+{
+  "name": "@my-scope/package-b",
+  "private": true,
+  "version": "0.0.0",
+  "description": "",
+  "license": "MIT",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: run tests from root\" && exit 1"
+  },
+  "dependencies": {
+    "@my-scope/package-a": "^0.0.0"
+  }
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
new file mode 100644
index 0000000..9b4846a
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
@@ -0,0 +1,26 @@
+var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
+var b;
+var c;
+
+var test = function test() {
+    console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false'));
+    console.log(b, ': preserveSymlinks true');
+    console.log(c, ': preserveSymlinks false');
+
+    if (a !== b && a !== c) {
+        throw 'async: no match';
+    }
+    console.log('async: success! a matched either b or c\n');
+};
+
+require('resolve')('buffer/', { preserveSymlinks: true }, function (err, result) {
+    if (err) { throw err; }
+    b = result.replace(process.cwd(), '$CWD');
+    if (b && c) { test(); }
+});
+require('resolve')('buffer/', { preserveSymlinks: false }, function (err, result) {
+    if (err) { throw err; }
+    c = result.replace(process.cwd(), '$CWD');
+    if (b && c) { test(); }
+});
+
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
new file mode 100644
index 0000000..acfe9e9
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "mylib",
+  "version": "0.0.0",
+  "description": "",
+  "private": true,
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "keywords": [],
+  "author": "",
+  "license": "ISC",
+  "dependencies": {
+    "buffer": "*"
+  }
+}
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
new file mode 100644
index 0000000..3283efc
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
@@ -0,0 +1,12 @@
+var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
+var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
+var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
+
+console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false'));
+console.log(b, ': preserveSymlinks true');
+console.log(c, ': preserveSymlinks false');
+
+if (a !== b && a !== c) {
+    throw 'sync: no match';
+}
+console.log('sync: success! a matched either b or c\n');
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/root.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/root.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js
new file mode 100644
index 0000000..888cae3
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js
@@ -0,0 +1 @@
+module.exports = 42;
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js
new file mode 100644
index 0000000..bd816ea
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js
@@ -0,0 +1 @@
+module.exports = 1;
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
diff --git a/node_modules/eslint-plugin-jsx-a11y/.watchmanconfig b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
old mode 100755
new mode 100644
similarity index 100%
copy from node_modules/eslint-plugin-jsx-a11y/.watchmanconfig
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js
new file mode 100644
index 0000000..cb1c2c0
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js
@@ -0,0 +1 @@
+module.exports = 'bar';
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json
new file mode 100644
index 0000000..8e1b585
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json
@@ -0,0 +1,3 @@
+{
+    "main": "bar.js"
+}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js
new file mode 100644
index 0000000..5b31975
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js
@@ -0,0 +1,5 @@
+var resolve = require('../../../');
+
+module.exports = function (t, cb) {
+    resolve('mymodule', null, cb);
+};
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js
new file mode 100644
index 0000000..3082c96
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js
@@ -0,0 +1,358 @@
+var path = require('path');
+var test = require('tape');
+var resolve = require('../');
+
+test('foo', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    t.equal(
+        resolve.sync('./foo', { basedir: dir }),
+        path.join(dir, 'foo.js')
+    );
+
+    t.equal(
+        resolve.sync('./foo.js', { basedir: dir }),
+        path.join(dir, 'foo.js')
+    );
+
+    t.equal(
+        resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }),
+        path.join(dir, 'foo.js')
+    );
+
+    t.throws(function () {
+        resolve.sync('foo', { basedir: dir });
+    });
+
+    // Test that filename is reported as the "from" value when passed.
+    t.throws(
+        function () {
+            resolve.sync('foo', { basedir: dir, filename: path.join(dir, 'bar.js') });
+        },
+        {
+            name: 'Error',
+            message: "Cannot find module 'foo' from '" + path.join(dir, 'bar.js') + "'"
+        }
+    );
+
+    t.end();
+});
+
+test('bar', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    t.equal(
+        resolve.sync('foo', { basedir: path.join(dir, 'bar') }),
+        path.join(dir, 'bar/node_modules/foo/index.js')
+    );
+    t.end();
+});
+
+test('baz', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    t.equal(
+        resolve.sync('./baz', { basedir: dir }),
+        path.join(dir, 'baz/quux.js')
+    );
+    t.end();
+});
+
+test('biz', function (t) {
+    var dir = path.join(__dirname, 'resolver/biz/node_modules');
+    t.equal(
+        resolve.sync('./grux', { basedir: dir }),
+        path.join(dir, 'grux/index.js')
+    );
+
+    t.equal(
+        resolve.sync('tiv', { basedir: path.join(dir, 'grux') }),
+        path.join(dir, 'tiv/index.js')
+    );
+
+    t.equal(
+        resolve.sync('grux', { basedir: path.join(dir, 'tiv') }),
+        path.join(dir, 'grux/index.js')
+    );
+    t.end();
+});
+
+test('normalize', function (t) {
+    var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
+    t.equal(
+        resolve.sync('../grux', { basedir: dir }),
+        path.join(dir, 'index.js')
+    );
+    t.end();
+});
+
+test('cup', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    t.equal(
+        resolve.sync('./cup', {
+            basedir: dir,
+            extensions: ['.js', '.coffee']
+        }),
+        path.join(dir, 'cup.coffee')
+    );
+
+    t.equal(
+        resolve.sync('./cup.coffee', { basedir: dir }),
+        path.join(dir, 'cup.coffee')
+    );
+
+    t.throws(function () {
+        resolve.sync('./cup', {
+            basedir: dir,
+            extensions: ['.js']
+        });
+    });
+
+    t.end();
+});
+
+test('mug', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    t.equal(
+        resolve.sync('./mug', { basedir: dir }),
+        path.join(dir, 'mug.js')
+    );
+
+    t.equal(
+        resolve.sync('./mug', {
+            basedir: dir,
+            extensions: ['.coffee', '.js']
+        }),
+        path.join(dir, 'mug.coffee')
+    );
+
+    t.equal(
+        resolve.sync('./mug', {
+            basedir: dir,
+            extensions: ['.js', '.coffee']
+        }),
+        path.join(dir, 'mug.js')
+    );
+
+    t.end();
+});
+
+test('other path', function (t) {
+    var resolverDir = path.join(__dirname, 'resolver');
+    var dir = path.join(resolverDir, 'bar');
+    var otherDir = path.join(resolverDir, 'other_path');
+
+    t.equal(
+        resolve.sync('root', {
+            basedir: dir,
+            paths: [otherDir]
+        }),
+        path.join(resolverDir, 'other_path/root.js')
+    );
+
+    t.equal(
+        resolve.sync('lib/other-lib', {
+            basedir: dir,
+            paths: [otherDir]
+        }),
+        path.join(resolverDir, 'other_path/lib/other-lib.js')
+    );
+
+    t.throws(function () {
+        resolve.sync('root', { basedir: dir });
+    });
+
+    t.throws(function () {
+        resolve.sync('zzz', {
+            basedir: dir,
+            paths: [otherDir]
+        });
+    });
+
+    t.end();
+});
+
+test('path iterator', function (t) {
+    var resolverDir = path.join(__dirname, 'resolver');
+
+    var exactIterator = function (x, start, getPackageCandidates, opts) {
+        return [path.join(resolverDir, x)];
+    };
+
+    t.equal(
+        resolve.sync('baz', { packageIterator: exactIterator }),
+        path.join(resolverDir, 'baz/quux.js')
+    );
+
+    t.end();
+});
+
+test('incorrect main', function (t) {
+    var resolverDir = path.join(__dirname, 'resolver');
+    var dir = path.join(resolverDir, 'incorrect_main');
+
+    t.equal(
+        resolve.sync('./incorrect_main', { basedir: resolverDir }),
+        path.join(dir, 'index.js')
+    );
+
+    t.end();
+});
+
+var stubStatSync = function stubStatSync(fn) {
+    var fs = require('fs');
+    var statSync = fs.statSync;
+    try {
+        fs.statSync = function () {
+            throw new EvalError('Unknown Error');
+        };
+        return fn();
+    } finally {
+        fs.statSync = statSync;
+    }
+};
+
+test('#79 - re-throw non ENOENT errors from stat', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    stubStatSync(function () {
+        t.throws(function () {
+            resolve.sync('foo', { basedir: dir });
+        }, /Unknown Error/);
+    });
+
+    t.end();
+});
+
+test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    t.equal(
+        resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }),
+        path.join(dir, 'same_names/foo.js')
+    );
+    t.equal(
+        resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }),
+        path.join(dir, 'same_names/foo/index.js')
+    );
+    t.end();
+});
+
+test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+
+    t.equal(
+        resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }),
+        path.join(dir, 'same_names/foo/index.js')
+    );
+    t.equal(
+        resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }),
+        path.join(dir, 'same_names/foo/index.js')
+    );
+    t.end();
+});
+
+test('sync: #121 - treating an existing file as a dir when no basedir', function (t) {
+    var testFile = path.basename(__filename);
+
+    t.test('sanity check', function (st) {
+        st.equal(
+            resolve.sync('./' + testFile),
+            __filename,
+            'sanity check'
+        );
+        st.end();
+    });
+
+    t.test('with a fake directory', function (st) {
+        function run() { return resolve.sync('./' + testFile + '/blah'); }
+
+        st.throws(run, 'throws an error');
+
+        try {
+            run();
+        } catch (e) {
+            st.equal(e.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
+            st.equal(
+                e.message,
+                'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
+                'can not find nonexistent module'
+            );
+        }
+
+        st.end();
+    });
+
+    t.end();
+});
+
+test('sync dot main', function (t) {
+    var start = new Date();
+    t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js'));
+    t.ok(new Date() - start < 50, 'resolve.sync timedout');
+    t.end();
+});
+
+test('sync dot slash main', function (t) {
+    var start = new Date();
+    t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js'));
+    t.ok(new Date() - start < 50, 'resolve.sync timedout');
+    t.end();
+});
+
+test('not a directory', function (t) {
+    var path = './foo';
+    try {
+        resolve.sync(path, { basedir: __filename });
+        t.fail();
+    } catch (err) {
+        t.ok(err, 'a non-directory errors');
+        t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'");
+        t.equal(err && err.code, 'MODULE_NOT_FOUND');
+    }
+    t.end();
+});
+
+test('non-string "main" field in package.json', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    try {
+        var result = resolve.sync('./invalid_main', { basedir: dir });
+        t.equal(result, undefined, 'result should not exist');
+        t.fail('should not get here');
+    } catch (err) {
+        t.ok(err, 'errors on non-string main');
+        t.equal(err.message, 'package “invalid main” `main` must be a string');
+        t.equal(err.code, 'INVALID_PACKAGE_MAIN');
+    }
+    t.end();
+});
+
+test('non-string "main" field in package.json', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    try {
+        var result = resolve.sync('./invalid_main', { basedir: dir });
+        t.equal(result, undefined, 'result should not exist');
+        t.fail('should not get here');
+    } catch (err) {
+        t.ok(err, 'errors on non-string main');
+        t.equal(err.message, 'package “invalid main” `main` must be a string');
+        t.equal(err.code, 'INVALID_PACKAGE_MAIN');
+    }
+    t.end();
+});
+
+test('browser field in package.json', function (t) {
+    var dir = path.join(__dirname, 'resolver');
+    var res = resolve.sync('./browser_field', {
+        basedir: dir,
+        packageFilter: function packageFilter(pkg) {
+            if (pkg.browser) {
+                pkg.main = pkg.browser; // eslint-disable-line no-param-reassign
+                delete pkg.browser; // eslint-disable-line no-param-reassign
+            }
+            return pkg;
+        }
+    });
+    t.equal(res, path.join(dir, 'browser_field', 'b.js'));
+    t.end();
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js
new file mode 100644
index 0000000..98c52a7
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js
@@ -0,0 +1,38 @@
+var test = require('tape');
+var resolve = require('../');
+var path = require('path');
+
+test('shadowed core modules still return core module', function (t) {
+    t.plan(2);
+
+    resolve('util', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) {
+        t.ifError(err);
+        t.equal(res, 'util');
+    });
+});
+
+test('shadowed core modules still return core module [sync]', function (t) {
+    t.plan(1);
+
+    var res = resolve.sync('util', { basedir: path.join(__dirname, 'shadowed_core') });
+
+    t.equal(res, 'util');
+});
+
+test('shadowed core modules return shadow when appending `/`', function (t) {
+    t.plan(2);
+
+    resolve('util/', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) {
+        t.ifError(err);
+        t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
+    });
+});
+
+test('shadowed core modules return shadow when appending `/` [sync]', function (t) {
+    t.plan(1);
+
+    var res = resolve.sync('util/', { basedir: path.join(__dirname, 'shadowed_core') });
+
+    t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
+});
+
diff --git a/node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
similarity index 100%
copy from node_modules/@octokit/request/node_modules/@octokit/request-error/dist-src/types.js
copy to node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js
new file mode 100644
index 0000000..b7b8450
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js
@@ -0,0 +1,13 @@
+var test = require('tape');
+var resolve = require('../');
+var path = require('path');
+
+test('subdirs', function (t) {
+    t.plan(2);
+
+    var dir = path.join(__dirname, '/subdirs');
+    resolve('a/b/c/x.json', { basedir: dir }, function (err, res) {
+        t.ifError(err);
+        t.equal(res, path.join(dir, 'node_modules/a/b/c/x.json'));
+    });
+});
diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js
new file mode 100644
index 0000000..152d14e
--- /dev/null
+++ b/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js
@@ -0,0 +1,173 @@
+var path = require('path');
+var fs = require('fs');
+var test = require('tape');
+var map = require('array.prototype.map');
+var resolve = require('../');
+
+var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink');
+var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package');
+var modADir = path.join(__dirname, 'symlinks', 'source', 'node_modules', 'mod-a');
+var symlinkModADir = path.join(__dirname, 'symlinks', 'dest', 'node_modules', 'mod-a');
+try {
+    fs.unlinkSync(symlinkDir);
+} catch (err) {}
+try {
+    fs.unlinkSync(packageDir);
+} catch (err) {}
+try {
+    fs.unlinkSync(modADir);
+} catch (err) {}
+try {
+    fs.unlinkSync(symlinkModADir);
+} catch (err) {}
+
+try {
+    fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir');
+} catch (err) {
+    // if fails then it is probably on Windows and lets try to create a junction
+    fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction');
+}
+try {
+    fs.symlinkSync('../../package', packageDir, 'dir');
+} catch (err) {
+    // if fails then it is probably on Windows and lets try to create a junction
+    fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction');
+}
+try {
+    fs.symlinkSync('../../source/node_modules/mod-a', symlinkModADir, 'dir');
+} catch (err) {
+    // if fails then it is probably on Windows and lets try to create a junction
+    fs.symlinkSync(path.join(__dirname, '..', '..', 'source', 'node_modules', 'mod-a') + '\\', symlinkModADir, 'junction');
+}
+
+test('symlink', function (t) {
+    t.plan(2);
+
+    resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) {
+        t.error(err);
+        t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js'));
+    });
+});
+
+test('sync symlink when preserveSymlinks = true', function (t) {
+    t.plan(4);
+
+    resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) {
+        t.ok(err, 'there is an error');
+        t.notOk(res, 'no result');
+
+        t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
+        t.equal(
+            err && err.message,
+            'Cannot find module \'foo\' from \'' + symlinkDir + '\'',
+            'can not find nonexistent module'
+        );
+    });
+});
+
+test('sync symlink', function (t) {
+    var start = new Date();
+    t.doesNotThrow(function () {
+        t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js'));
+    });
+    t.ok(new Date() - start < 50, 'resolve.sync timedout');
+    t.end();
+});
+
+test('sync symlink when preserveSymlinks = true', function (t) {
+    t.throws(function () {
+        resolve.sync('foo', { basedir: symlinkDir });
+    }, /Cannot find module 'foo'/);
+    t.end();
+});
+
+test('sync symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
+    var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
+    var fn = resolve.sync('package', { basedir: basedir, preserveSymlinks: false });
+
+    t.equal(fn, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
+    t.end();
+});
+
+test('async symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
+    t.plan(2);
+    var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
+    resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) {
+        t.notOk(err, 'no error');
+        t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
+    });
+});
+
+test('packageFilter', function (t) {
+    function relative(x) {
+        return path.relative(__dirname, x);
+    }
+
+    function testPackageFilter(preserveSymlinks) {
+        return function (st) {
+            st.plan('is 1.x' ? 3 : 5); // eslint-disable-line no-constant-condition
+
+            var destMain = 'symlinks/dest/node_modules/mod-a/index.js';
+            var destPkg = 'symlinks/dest/node_modules/mod-a/package.json';
+            var sourceMain = 'symlinks/source/node_modules/mod-a/index.js';
+            var sourcePkg = 'symlinks/source/node_modules/mod-a/package.json';
+            var destDir = path.join(__dirname, 'symlinks', 'dest');
+
+            /* eslint multiline-comment-style: 0 */
+            /* v2.x will restore these tests
+            var packageFilterPath = [];
+            var actualPath = resolve.sync('mod-a', {
+                basedir: destDir,
+                preserveSymlinks: preserveSymlinks,
+                packageFilter: function (pkg, pkgfile, dir) {
+                    packageFilterPath.push(pkgfile);
+                }
+            });
+            st.equal(
+                relative(actualPath),
+                path.normalize(preserveSymlinks ? destMain : sourceMain),
+                'sync: actual path is correct'
+            );
+            st.deepEqual(
+                map(packageFilterPath, relative),
+                map(preserveSymlinks ? [destPkg, destPkg] : [sourcePkg, sourcePkg], path.normalize),
+                'sync: packageFilter pkgfile arg is correct'
+            );
+            */
+
+            var asyncPackageFilterPath = [];
+            resolve(
+                'mod-a',
+                {
+                    basedir: destDir,
+                    preserveSymlinks: preserveSymlinks,
+                    packageFilter: function (pkg, pkgfile) {
+                        asyncPackageFilterPath.push(pkgfile);
+                    }
+                },
+                function (err, actualPath) {
+                    st.error(err, 'no error');
+                    st.equal(
+                        relative(actualPath),
+                        path.normalize(preserveSymlinks ? destMain : sourceMain),
+                        'async: actual path is correct'
+                    );
+                    st.deepEqual(
+                        map(asyncPackageFilterPath, relative),
+                        map(
+                            preserveSymlinks ? [destPkg, destPkg, destPkg] : [sourcePkg, sourcePkg, sourcePkg],
+                            path.normalize
+                        ),
+                        'async: packageFilter pkgfile arg is correct'
+                    );
+                }
+            );
+        };
+    }
+
+    t.test('preserveSymlinks: false', testPackageFilter(false));
+
+    t.test('preserveSymlinks: true', testPackageFilter(true));
+
+    t.end();
+});
diff --git a/node_modules/eslint-plugin-import/package.json b/node_modules/eslint-plugin-import/package.json
index 841128f..18fd70a 100644
--- a/node_modules/eslint-plugin-import/package.json
+++ b/node_modules/eslint-plugin-import/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint-plugin-import",
-  "version": "2.20.1",
+  "version": "2.22.1",
   "description": "Import with sanity.",
   "engines": {
     "node": ">=4"
@@ -21,17 +21,17 @@
     "prebuild": "rimraf lib",
     "build": "babel --quiet --out-dir lib src",
     "postbuild": "npm run copy-metafiles",
-    "copy-metafiles": "for DIR in memo-parser resolvers/node resolvers/webpack utils; do cp LICENSE .npmrc \"${DIR}/\"; done",
-    "watch": "npm run mocha -- --watch tests/src",
+    "copy-metafiles": "node --require babel-register ./scripts/copyMetafiles",
+    "watch": "npm run tests-only -- -- --watch",
     "pretest": "linklocal",
     "posttest": "eslint .",
-    "mocha": "cross-env BABEL_ENV=test NODE_PATH=./src nyc -s mocha -R dot --recursive -t 5s",
+    "mocha": "cross-env BABEL_ENV=test nyc -s mocha",
     "tests-only": "npm run mocha tests/src",
     "test": "npm run tests-only",
-    "test-compiled": "npm run prepublish && NODE_PATH=./lib mocha --compilers js:babel-register --recursive tests/src",
-    "test-all": "npm test && for resolver in ./resolvers/*; do cd $resolver && npm test && cd ../..; done",
-    "prepublish": "npm run build",
-    "coveralls": "nyc report --reporter lcovonly && cat ./coverage/lcov.info | coveralls"
+    "test-compiled": "npm run prepublish && BABEL_ENV=testCompiled mocha --compilers js:babel-register tests/src",
+    "test-all": "node --require babel-register ./scripts/testAll",
+    "prepublish": "not-in-publish || npm run build",
+    "coveralls": "nyc report --reporter lcovonly && coveralls < ./coverage/lcov.info"
   },
   "repository": {
     "type": "git",
@@ -55,51 +55,61 @@
   "devDependencies": {
     "@eslint/import-test-order-redirect-scoped": "file:./tests/files/order-redirect-scoped",
     "@test-scope/some-module": "file:./tests/files/symlinked-module",
-    "@typescript-eslint/parser": "1.10.3-alpha.13",
+    "@typescript-eslint/parser": "^2.23.0 || ^3.3.0",
+    "array.prototype.flatmap": "^1.2.3",
     "babel-cli": "^6.26.0",
     "babel-core": "^6.26.3",
     "babel-eslint": "^8.2.6",
     "babel-plugin-istanbul": "^4.1.6",
+    "babel-plugin-module-resolver": "^2.7.1",
     "babel-preset-es2015-argon": "latest",
+    "babel-preset-flow": "^6.23.0",
     "babel-register": "^6.26.0",
     "babylon": "^6.18.0",
     "chai": "^4.2.0",
-    "coveralls": "^3.0.6",
+    "coveralls": "^3.1.0",
     "cross-env": "^4.0.0",
-    "eslint": "2.x - 6.x",
+    "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0",
     "eslint-import-resolver-node": "file:./resolvers/node",
-    "eslint-import-resolver-typescript": "^1.0.2",
+    "eslint-import-resolver-typescript": "^1.1.1",
     "eslint-import-resolver-webpack": "file:./resolvers/webpack",
     "eslint-import-test-order-redirect": "file:./tests/files/order-redirect",
     "eslint-module-utils": "file:./utils",
-    "eslint-plugin-eslint-plugin": "^2.2.1",
+    "eslint-plugin-eslint-plugin": "^2.3.0",
     "eslint-plugin-import": "2.x",
+    "eslint-plugin-json": "^2.1.2",
+    "fs-copy-file-sync": "^1.1.1",
+    "glob": "^7.1.6",
+    "in-publish": "^2.0.1",
     "linklocal": "^2.8.2",
+    "lodash.isarray": "^4.0.0",
     "mocha": "^3.5.3",
+    "npm-which": "^3.0.1",
     "nyc": "^11.9.0",
     "redux": "^3.7.2",
     "rimraf": "^2.7.1",
     "semver": "^6.3.0",
     "sinon": "^2.4.1",
-    "typescript": "~3.2.2",
+    "typescript": "~3.9.5",
     "typescript-eslint-parser": "^22.0.0"
   },
   "peerDependencies": {
-    "eslint": "2.x - 6.x"
+    "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0"
   },
   "dependencies": {
-    "array-includes": "^3.0.3",
-    "array.prototype.flat": "^1.2.1",
+    "array-includes": "^3.1.1",
+    "array.prototype.flat": "^1.2.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.4.1",
+    "eslint-import-resolver-node": "^0.3.4",
+    "eslint-module-utils": "^2.6.0",
     "has": "^1.0.3",
     "minimatch": "^3.0.4",
-    "object.values": "^1.1.0",
+    "object.values": "^1.1.1",
     "read-pkg-up": "^2.0.0",
-    "resolve": "^1.12.0"
+    "resolve": "^1.17.0",
+    "tsconfig-paths": "^3.9.0"
   },
   "nyc": {
     "require": [
diff --git a/node_modules/eslint-plugin-jest/CHANGELOG.md b/node_modules/eslint-plugin-jest/CHANGELOG.md
index 92bfbad..599e5a6 100644
--- a/node_modules/eslint-plugin-jest/CHANGELOG.md
+++ b/node_modules/eslint-plugin-jest/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [24.1.0](https://github.com/jest-community/eslint-plugin-jest/compare/v24.0.2...v24.1.0) (2020-10-05)
+
+
+### Features
+
+* **prefer-expect-assertions:** add `onlyFunctionsWithAsyncKeyword` option ([#677](https://github.com/jest-community/eslint-plugin-jest/issues/677)) ([d0cea37](https://github.com/jest-community/eslint-plugin-jest/commit/d0cea37ae0a8ab07b8082cedbaaf161bcc94c405))
+
 ## [24.0.2](https://github.com/jest-community/eslint-plugin-jest/compare/v24.0.1...v24.0.2) (2020-09-20)
 
 
diff --git a/node_modules/eslint-plugin-jest/docs/rules/prefer-expect-assertions.md b/node_modules/eslint-plugin-jest/docs/rules/prefer-expect-assertions.md
index d997203..b80b63d 100644
--- a/node_modules/eslint-plugin-jest/docs/rules/prefer-expect-assertions.md
+++ b/node_modules/eslint-plugin-jest/docs/rules/prefer-expect-assertions.md
@@ -55,3 +55,45 @@
   expect(someThing()).toEqual('foo');
 });
 ```
+
+## Options
+
+#### `onlyFunctionsWithAsyncKeyword`
+
+When `true`, this rule will only warn for tests that use the `async` keyword.
+
+```json
+{
+  "rules": {
+    "jest/prefer-expect-assertions": [
+      "warn",
+      { "onlyFunctionsWithAsyncKeyword": true }
+    ]
+  }
+}
+```
+
+When `onlyFunctionsWithAsyncKeyword` option is set to `true`, the following
+pattern would be a warning:
+
+```js
+test('my test', async () => {
+  const result = await someAsyncFunc();
+  expect(result).toBe('foo');
+});
+```
+
+While the following patterns would not be considered warnings:
+
+```js
+test('my test', () => {
+  const result = someFunction();
+  expect(result).toBe('foo');
+});
+
+test('my test', async () => {
+  expect.assertions(1);
+  const result = await someAsyncFunc();
+  expect(result).toBe('foo');
+});
+```
diff --git a/node_modules/eslint-plugin-jest/lib/rules/prefer-expect-assertions.js b/node_modules/eslint-plugin-jest/lib/rules/prefer-expect-assertions.js
index 4414709..1552fe7 100644
--- a/node_modules/eslint-plugin-jest/lib/rules/prefer-expect-assertions.js
+++ b/node_modules/eslint-plugin-jest/lib/rules/prefer-expect-assertions.js
@@ -39,13 +39,27 @@
       suggestRemovingExtraArguments: 'Remove extra arguments'
     },
     type: 'suggestion',
-    schema: []
+    schema: [{
+      type: 'object',
+      properties: {
+        onlyFunctionsWithAsyncKeyword: {
+          type: 'boolean'
+        }
+      },
+      additionalProperties: false
+    }]
   },
-  defaultOptions: [],
+  defaultOptions: [{
+    onlyFunctionsWithAsyncKeyword: false
+  }],
 
-  create(context) {
+  create(context, [options]) {
     return {
       'CallExpression[callee.name=/^(it|test)$/][arguments.1.body.body]'(node) {
+        if (options.onlyFunctionsWithAsyncKeyword && !node.arguments[1].async) {
+          return;
+        }
+
         const testFuncBody = node.arguments[1].body.body;
 
         if (!isFirstLineExprStmt(testFuncBody)) {
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md
deleted file mode 100644
index b32112b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md
+++ /dev/null
@@ -1,698 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
-
-## [Please see the release notes for v4.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v4.0.0)
-
-### Features
-
-* consume new scope analysis package ([#2039](https://github.com/typescript-eslint/typescript-eslint/issues/2039)) ([3be125d](https://github.com/typescript-eslint/typescript-eslint/commit/3be125d9bdbee1984ac6037874edf619213bd3d0))
-* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
-
-
-
-
-
-## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
-
-
-### Features
-
-* add package scope-manager ([#1939](https://github.com/typescript-eslint/typescript-eslint/issues/1939)) ([682eb7e](https://github.com/typescript-eslint/typescript-eslint/commit/682eb7e009c3f22a542882dfd3602196a60d2a1e))
-* split types into their own package ([#2229](https://github.com/typescript-eslint/typescript-eslint/issues/2229)) ([5f45918](https://github.com/typescript-eslint/typescript-eslint/commit/5f4591886f3438329fbf2229b03ac66174334a24))
-
-
-
-
-
-# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
-
-
-### Bug Fixes
-
-* **experimental-utils:** correct types for TS versions older than 3.8 ([#2217](https://github.com/typescript-eslint/typescript-eslint/issues/2217)) ([5e4dda2](https://github.com/typescript-eslint/typescript-eslint/commit/5e4dda264a7d6a6a1626848e7599faea1ac34922))
-* **experimental-utils:** getParserServices takes a readonly context ([#2235](https://github.com/typescript-eslint/typescript-eslint/issues/2235)) ([26da8de](https://github.com/typescript-eslint/typescript-eslint/commit/26da8de7fcde9eddec63212d79af781c4bb22991))
-
-
-
-
-
-# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
-
-
-
-
-
-# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
-
-
-### Bug Fixes
-
-* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
-
-
-### Features
-
-* **eslint-plugin:** [explicit-module-boundary-types] improve accuracy and coverage ([#2135](https://github.com/typescript-eslint/typescript-eslint/issues/2135)) ([caaa859](https://github.com/typescript-eslint/typescript-eslint/commit/caaa8599284d02ab3341e282cad35a52d0fb86c7))
-
-
-
-
-
-## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
-
-
-### Bug Fixes
-
-* regression for eslint v6 ([#2105](https://github.com/typescript-eslint/typescript-eslint/issues/2105)) ([31fc503](https://github.com/typescript-eslint/typescript-eslint/commit/31fc5039ed919e1515fda673c186d5c83eb5beb3))
-
-
-
-
-
-## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
-
-
-### Bug Fixes
-
-* **experimental-utils:** export `CLIEngine` & `ESLint` ([#2083](https://github.com/typescript-eslint/typescript-eslint/issues/2083)) ([014341b](https://github.com/typescript-eslint/typescript-eslint/commit/014341bb23261f609fc2a6fe7fece191466a084a))
-
-
-
-
-
-# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
-
-## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
-
-### Bug Fixes
-
-* **experimental-utils:** add back SourceCode.isSpaceBetweenTokens ([ae82ea4](https://github.com/typescript-eslint/typescript-eslint/commit/ae82ea4a85a4ca332ebe6104e96c59dba30411be))
-* **typescript-estree:** remove now defunct `Import` node type ([f199cbd](https://github.com/typescript-eslint/typescript-eslint/commit/f199cbdbbd892b5ba03bfff66f463f3d9c92ee9b))
-
-
-### Features
-
-* **experimental-utils:** upgrade eslint types for v7 ([#2023](https://github.com/typescript-eslint/typescript-eslint/issues/2023)) ([06869c9](https://github.com/typescript-eslint/typescript-eslint/commit/06869c9656fa37936126666845aee40aad546ebd))
-* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
-* upgrade to ESLint v7 ([#2022](https://github.com/typescript-eslint/typescript-eslint/issues/2022)) ([208de71](https://github.com/typescript-eslint/typescript-eslint/commit/208de71059746bf38e94bd460346ffb2698a3e12))
-* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
-* **typescript-estree:** always return parserServices ([#716](https://github.com/typescript-eslint/typescript-eslint/issues/716)) ([5b23443](https://github.com/typescript-eslint/typescript-eslint/commit/5b23443c48f3f62424db3e742243f3568080b946))
-
-
-
-
-
-# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
-
-
-### Features
-
-* **experimental-utils:** add `suggestion` property for rule  modules ([#2033](https://github.com/typescript-eslint/typescript-eslint/issues/2033)) ([f42a5b0](https://github.com/typescript-eslint/typescript-eslint/commit/f42a5b09ebfa173f418a99c552b0cbe221567194))
-
-
-
-
-
-# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
-
-
-### Bug Fixes
-
-* **experimental-utils:** remove accidental dep on json-schema ([#2010](https://github.com/typescript-eslint/typescript-eslint/issues/2010)) ([1875fba](https://github.com/typescript-eslint/typescript-eslint/commit/1875fbad41f2a3dda8f610f5dcd180c6205b73d3))
-
-
-
-
-
-# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
-
-
-### Features
-
-* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
-
-
-
-
-
-# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
-
-
-### Features
-
-* **experimental-utils:** expose our RuleTester extension ([#1948](https://github.com/typescript-eslint/typescript-eslint/issues/1948)) ([2dd1638](https://github.com/typescript-eslint/typescript-eslint/commit/2dd1638aaa2658ba99b2341861146b586f489121))
-
-
-
-
-
-# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
-
-
-### Features
-
-* **experimental-utils:** allow rule options to be a readonly tuple ([#1924](https://github.com/typescript-eslint/typescript-eslint/issues/1924)) ([4ef6788](https://github.com/typescript-eslint/typescript-eslint/commit/4ef67884962b6aac61cc895aaa3ba16aa892ecf4))
-
-
-
-
-
-# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
-
-
-### Features
-
-* **eslint-plugin:** add rule `prefer-reduce-type-parameter` ([#1707](https://github.com/typescript-eslint/typescript-eslint/issues/1707)) ([c92d240](https://github.com/typescript-eslint/typescript-eslint/commit/c92d240e49113779053eac32038382b282812afc))
-
-
-
-
-
-# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
-
-
-### Features
-
-* **experimental-utils:** add types for suggestions from CLIEngine ([#1844](https://github.com/typescript-eslint/typescript-eslint/issues/1844)) ([7c11bd6](https://github.com/typescript-eslint/typescript-eslint/commit/7c11bd66f2d0e5ea9d3943e6b8c66e6ddff50862))
-* **experimental-utils:** update eslint types to match v6.8 ([#1846](https://github.com/typescript-eslint/typescript-eslint/issues/1846)) ([16ce74d](https://github.com/typescript-eslint/typescript-eslint/commit/16ce74d247781ac890dc0baa30c384f97e581b6b))
-
-
-
-
-
-# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
-
-
-### Features
-
-* **typescript-estree:** add option to ignore certain folders from glob resolution ([#1802](https://github.com/typescript-eslint/typescript-eslint/issues/1802)) ([1e29e69](https://github.com/typescript-eslint/typescript-eslint/commit/1e29e69b289d61107a7de67592beae331ba50222))
-
-
-
-
-
-# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
-
-
-### Features
-
-* **experimental-utils:** expose ast utility functions ([#1670](https://github.com/typescript-eslint/typescript-eslint/issues/1670)) ([3eb5d45](https://github.com/typescript-eslint/typescript-eslint/commit/3eb5d4525e95c8ab990f55588b8d830a02ce5a9c))
-
-
-
-
-
-# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.20.0...v2.21.0) (2020-02-24)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.2...v2.20.0) (2020-02-17)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [2.19.2](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.1...v2.19.2) (2020-02-10)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [2.19.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.0...v2.19.1) (2020-02-10)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.18.0...v2.19.0) (2020-02-03)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.17.0...v2.18.0) (2020-01-27)
-
-
-### Bug Fixes
-
-* improve token types and add missing type guards ([#1497](https://github.com/typescript-eslint/typescript-eslint/issues/1497)) ([ce41d7d](https://github.com/typescript-eslint/typescript-eslint/commit/ce41d7de33bcb7ccf96c03ac1438304c5a49ff54))
-* **experimental-utils:** widen type of `settings` property ([#1527](https://github.com/typescript-eslint/typescript-eslint/issues/1527)) ([b515e47](https://github.com/typescript-eslint/typescript-eslint/commit/b515e47af2bc914c7ebcfa4be813409dcd86b1c3))
-
-
-### Features
-
-* **experimental-utils:** make RuleMetaData.docs optional ([#1462](https://github.com/typescript-eslint/typescript-eslint/issues/1462)) ([cde97ac](https://github.com/typescript-eslint/typescript-eslint/commit/cde97aca24df5a0f28f37006ed130ebc217fb2ad))
-* **parser:** clean up scope-analysis types ([#1481](https://github.com/typescript-eslint/typescript-eslint/issues/1481)) ([4a727fa](https://github.com/typescript-eslint/typescript-eslint/commit/4a727fa083d749dba9eaf39322856f5f69c28cd8))
-
-
-
-
-
-# [2.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.16.0...v2.17.0) (2020-01-20)
-
-
-### Features
-
-* **experimental-utils:** expose getParserServices from utils ([#1448](https://github.com/typescript-eslint/typescript-eslint/issues/1448)) ([982c8bc](https://github.com/typescript-eslint/typescript-eslint/commit/982c8bc))
-
-
-
-
-
-# [2.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.15.0...v2.16.0) (2020-01-13)
-
-
-### Features
-
-* **typescript-estree:** add parserOption to turn on debug logs ([#1413](https://github.com/typescript-eslint/typescript-eslint/issues/1413)) ([25092fd](https://github.com/typescript-eslint/typescript-eslint/commit/25092fd))
-* **typescript-estree:** add strict type mapping to esTreeNodeToTSNodeMap ([#1382](https://github.com/typescript-eslint/typescript-eslint/issues/1382)) ([d3d70a3](https://github.com/typescript-eslint/typescript-eslint/commit/d3d70a3))
-
-
-
-
-
-# [2.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.14.0...v2.15.0) (2020-01-06)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.13.0...v2.14.0) (2019-12-30)
-
-
-### Features
-
-* add internal eslint plugin for repo-specific lint rules ([#1373](https://github.com/typescript-eslint/typescript-eslint/issues/1373)) ([3a15413](https://github.com/typescript-eslint/typescript-eslint/commit/3a15413))
-
-
-
-
-
-# [2.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.12.0...v2.13.0) (2019-12-23)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.11.0...v2.12.0) (2019-12-16)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.10.0...v2.11.0) (2019-12-09)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.9.0...v2.10.0) (2019-12-02)
-
-
-### Features
-
-* **eslint-plugin:** [no-non-null-assert] add suggestion fixer ([#1260](https://github.com/typescript-eslint/typescript-eslint/issues/1260)) ([e350a21](https://github.com/typescript-eslint/typescript-eslint/commit/e350a21))
-* **experimental-utils:** add isSpaceBetween declaration to Sou… ([#1268](https://github.com/typescript-eslint/typescript-eslint/issues/1268)) ([f83f04b](https://github.com/typescript-eslint/typescript-eslint/commit/f83f04b))
-
-
-
-
-
-# [2.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.8.0...v2.9.0) (2019-11-25)
-
-
-### Features
-
-* suggestion types, suggestions for no-explicit-any ([#1250](https://github.com/typescript-eslint/typescript-eslint/issues/1250)) ([b16a4b6](https://github.com/typescript-eslint/typescript-eslint/commit/b16a4b6))
-* **eslint-plugin:** add prefer-nullish-coalescing ([#1069](https://github.com/typescript-eslint/typescript-eslint/issues/1069)) ([a9cd399](https://github.com/typescript-eslint/typescript-eslint/commit/a9cd399))
-* **eslint-plugin:** add rule prefer-optional-chain ([#1213](https://github.com/typescript-eslint/typescript-eslint/issues/1213)) ([ad7e1a7](https://github.com/typescript-eslint/typescript-eslint/commit/ad7e1a7))
-
-
-
-
-
-# [2.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.7.0...v2.8.0) (2019-11-18)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.6.1...v2.7.0) (2019-11-11)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [2.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.6.0...v2.6.1) (2019-11-04)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.5.0...v2.6.0) (2019-10-28)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.4.0...v2.5.0) (2019-10-21)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.3...v2.4.0) (2019-10-14)
-
-
-### Bug Fixes
-
-* support long running "watch" lint sessions ([#973](https://github.com/typescript-eslint/typescript-eslint/issues/973)) ([854620e](https://github.com/typescript-eslint/typescript-eslint/commit/854620e))
-
-
-### Features
-
-* **typescript-estree:** support for parsing 3.7 features ([#1045](https://github.com/typescript-eslint/typescript-eslint/issues/1045)) ([623febf](https://github.com/typescript-eslint/typescript-eslint/commit/623febf))
-
-
-
-
-
-## [2.3.3](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.2...v2.3.3) (2019-10-07)
-
-
-### Bug Fixes
-
-* **experimental-utils:** remove Rule.meta.extraDescription ([#1036](https://github.com/typescript-eslint/typescript-eslint/issues/1036)) ([192e23d](https://github.com/typescript-eslint/typescript-eslint/commit/192e23d))
-
-
-
-
-
-## [2.3.2](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.1...v2.3.2) (2019-09-30)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-## [2.3.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.0...v2.3.1) (2019-09-23)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.2.0...v2.3.0) (2019-09-16)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.1.0...v2.2.0) (2019-09-09)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.0.0...v2.1.0) (2019-09-02)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [2.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.13.0...v2.0.0) (2019-08-13)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** add `Literal` to `RuleListener` types ([#824](https://github.com/typescript-eslint/typescript-eslint/issues/824)) ([3c902a1](https://github.com/typescript-eslint/typescript-eslint/commit/3c902a1))
-* **utils:** add ES2019 as valid `ecmaVersion` ([#746](https://github.com/typescript-eslint/typescript-eslint/issues/746)) ([d11fbbe](https://github.com/typescript-eslint/typescript-eslint/commit/d11fbbe))
-
-
-### Features
-
-* explicitly support eslint v6 ([#645](https://github.com/typescript-eslint/typescript-eslint/issues/645)) ([34a7cf6](https://github.com/typescript-eslint/typescript-eslint/commit/34a7cf6))
-
-
-* feat(eslint-plugin)!: recommended-requiring-type-checking config (#846) ([d3470c9](https://github.com/typescript-eslint/typescript-eslint/commit/d3470c9)), closes [#846](https://github.com/typescript-eslint/typescript-eslint/issues/846)
-* feat(eslint-plugin)!: change recommended config (#729) ([428567d](https://github.com/typescript-eslint/typescript-eslint/commit/428567d)), closes [#729](https://github.com/typescript-eslint/typescript-eslint/issues/729)
-* feat(eslint-plugin)!: add rule `consistent-type-assertions` (#731) ([92e98de](https://github.com/typescript-eslint/typescript-eslint/commit/92e98de)), closes [#731](https://github.com/typescript-eslint/typescript-eslint/issues/731)
-
-
-### BREAKING CHANGES
-
-* removed some rules from recommended config
-* recommended config changes are considered breaking
-* Merges both no-angle-bracket-type-assertion and no-object-literal-type-assertion into one rule
-* Node 6 is no longer supported
-
-
-
-
-
-# [1.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.12.0...v1.13.0) (2019-07-21)
-
-
-### Bug Fixes
-
-* Correct `@types/json-schema` dependency ([#675](https://github.com/typescript-eslint/typescript-eslint/issues/675)) ([a5398ce](https://github.com/typescript-eslint/typescript-eslint/commit/a5398ce))
-* **utils:** move `typescript` from peer dep to dev dep ([#712](https://github.com/typescript-eslint/typescript-eslint/issues/712)) ([f949355](https://github.com/typescript-eslint/typescript-eslint/commit/f949355))
-* **utils:** RuleTester should not require a parser ([#713](https://github.com/typescript-eslint/typescript-eslint/issues/713)) ([158a417](https://github.com/typescript-eslint/typescript-eslint/commit/158a417))
-
-
-### Features
-
-* **eslint-plugin:** add new rule no-misused-promises ([#612](https://github.com/typescript-eslint/typescript-eslint/issues/612)) ([28a131d](https://github.com/typescript-eslint/typescript-eslint/commit/28a131d))
-
-
-
-
-
-# [1.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.11.0...v1.12.0) (2019-07-12)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-
-
-
-
-# [1.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.2...v1.11.0) (2019-06-23)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** Remove duplicated code ([#611](https://github.com/typescript-eslint/typescript-eslint/issues/611)) ([c4df4ff](https://github.com/typescript-eslint/typescript-eslint/commit/c4df4ff))
-
-
-### Features
-
-* **eslint-plugin:** add `consistent-type-definitions` rule ([#463](https://github.com/typescript-eslint/typescript-eslint/issues/463)) ([ec87d06](https://github.com/typescript-eslint/typescript-eslint/commit/ec87d06))
-
-
-
-
-
-## [1.10.2](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.1...v1.10.2) (2019-06-10)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-## [1.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.0...v1.10.1) (2019-06-09)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-# [1.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.9.0...v1.10.0) (2019-06-09)
-
-### Bug Fixes
-
-- **experimental-utils:** add `endLine` and `endColumn` ([#517](https://github.com/typescript-eslint/typescript-eslint/issues/517)) ([d9e5f15](https://github.com/typescript-eslint/typescript-eslint/commit/d9e5f15))
-- **experimental-utils:** Avoid typescript import at runtime ([#584](https://github.com/typescript-eslint/typescript-eslint/issues/584)) ([fac5c7d](https://github.com/typescript-eslint/typescript-eslint/commit/fac5c7d)), closes [/github.com/typescript-eslint/typescript-eslint/pull/425#issuecomment-498162293](https://github.com//github.com/typescript-eslint/typescript-eslint/pull/425/issues/issuecomment-498162293)
-
-### Features
-
-- make utils/TSESLint export typed classes instead of just types ([#526](https://github.com/typescript-eslint/typescript-eslint/issues/526)) ([370ac72](https://github.com/typescript-eslint/typescript-eslint/commit/370ac72))
-- support TypeScript versions >=3.2.1 <3.6.0 ([#597](https://github.com/typescript-eslint/typescript-eslint/issues/597)) ([5d2b962](https://github.com/typescript-eslint/typescript-eslint/commit/5d2b962))
-
-# [1.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.8.0...v1.9.0) (2019-05-12)
-
-**Note:** Version bump only for package @typescript-eslint/experimental-utils
-
-# [1.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.7.0...v1.8.0) (2019-05-10)
-
-### Features
-
-- Move shared types into their own package ([#425](https://github.com/typescript-eslint/typescript-eslint/issues/425)) ([a7a03ce](https://github.com/typescript-eslint/typescript-eslint/commit/a7a03ce))
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/LICENSE b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/LICENSE
deleted file mode 100644
index 7e73701..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 TypeScript ESLint and other contributors
-
-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.
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/README.md b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/README.md
deleted file mode 100644
index 208578b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-<h1 align="center">Utils for ESLint Plugins</h1>
-
-<p align="center">Utilities for working with TypeScript + ESLint together.</p>
-
-<p align="center">
-    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
-    <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/v/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Version" /></a>
-    <a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"><img src="https://img.shields.io/npm/dm/@typescript-eslint/eslint-plugin.svg?style=flat-square" alt="NPM Downloads" /></a>
-</p>
-
-## Note
-
-This package has inherited its version number from the `@typescript-eslint` project.
-Meaning that even though this package is `2.x.y`, you shouldn't expect 100% stability between minor version bumps.
-i.e. treat it as a `0.x.y` package.
-
-Feel free to use it now, and let us know what utilities you need or send us PRs with utilities you build on top of it.
-
-Once it is stable, it will be renamed to `@typescript-eslint/util` for a `4.0.0` release.
-
-## Exports
-
-| Name                                                           | Description                                                                                                                                                                                                                       |
-| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [`ASTUtils`](./src/ast-utils)                                  | Tools for operating on the ESTree AST. Also includes the [`eslint-utils`](https://www.npmjs.com/package/eslint-utils) package, correctly typed to work with the types found in `TSESTree`                                         |
-| [`ESLintUtils`](./src/eslint-utils)                            | Tools for creating ESLint rules with TypeScript.                                                                                                                                                                                  |
-| `JSONSchema`                                                   | Types from the [`@types/json-schema`](https://www.npmjs.com/package/@types/json-schema) package, re-exported to save you having to manually import them. Also ensures you're using the same version of the types as this package. |
-| [`TSESLint`](./src/ts-eslint)                                  | Types for ESLint, correctly typed to work with the types found in `TSESTree`.                                                                                                                                                     |
-| [`TSESLintScope`](./src/ts-eslint-scope)                       | The [`eslint-scope`](https://www.npmjs.com/package/eslint-scope) package, correctly typed to work with the types found in both `TSESTree` and `TSESLint`                                                                          |
-| [`TSESTree`](../types/src/ts-estree.ts)                        | Types for the TypeScript flavor of ESTree created by `@typescript-eslint/typescript-estree`.                                                                                                                                      |
-| [`AST_NODE_TYPES`](../types/src/ast-node-types.ts)             | An enum with the names of every single _node_ found in `TSESTree`.                                                                                                                                                                |
-| [`AST_TOKEN_TYPES`](../types/src/ast-token-types.ts)           | An enum with the names of every single _token_ found in `TSESTree`.                                                                                                                                                               |
-| [`ParserServices`](../typescript-estree/src/parser-options.ts) | Typing for the parser services provided when parsing a file using `@typescript-eslint/typescript-estree`.                                                                                                                         |
-
-## Contributing
-
-[See the contributing guide here](../../CONTRIBUTING.md)
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts
deleted file mode 100644
index 2479b2e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree';

-import { ParserOptions } from './ParserOptions';

-import { RuleModule } from './Rule';

-interface ValidTestCase<TOptions extends Readonly<unknown[]>> {

-    /**

-     * Code for the test case.

-     */

-    readonly code: string;

-    /**

-     * Environments for the test case.

-     */

-    readonly env?: Readonly<Record<string, boolean>>;

-    /**

-     * The fake filename for the test case. Useful for rules that make assertion about filenames.

-     */

-    readonly filename?: string;

-    /**

-     * The additional global variables.

-     */

-    readonly globals?: Record<string, 'readonly' | 'writable' | 'off'>;

-    /**

-     * Options for the test case.

-     */

-    readonly options?: Readonly<TOptions>;

-    /**

-     * The absolute path for the parser.

-     */

-    readonly parser?: string;

-    /**

-     * Options for the parser.

-     */

-    readonly parserOptions?: Readonly<ParserOptions>;

-    /**

-     * Settings for the test case.

-     */

-    readonly settings?: Readonly<Record<string, unknown>>;

-}

-interface SuggestionOutput<TMessageIds extends string> {

-    /**

-     * Reported message ID.

-     */

-    readonly messageId: TMessageIds;

-    /**

-     * The data used to fill the message template.

-     */

-    readonly data?: Readonly<Record<string, unknown>>;

-    /**

-     * NOTE: Suggestions will be applied as a stand-alone change, without triggering multi-pass fixes.

-     * Each individual error has its own suggestion, so you have to show the correct, _isolated_ output for each suggestion.

-     */

-    readonly output: string;

-}

-interface InvalidTestCase<TMessageIds extends string, TOptions extends Readonly<unknown[]>> extends ValidTestCase<TOptions> {

-    /**

-     * Expected errors.

-     */

-    readonly errors: TestCaseError<TMessageIds>[];

-    /**

-     * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested.

-     */

-    readonly output?: string | null;

-}

-interface TestCaseError<TMessageIds extends string> {

-    /**

-     * The 1-based column number of the reported start location.

-     */

-    readonly column?: number;

-    /**

-     * The data used to fill the message template.

-     */

-    readonly data?: Readonly<Record<string, unknown>>;

-    /**

-     * The 1-based column number of the reported end location.

-     */

-    readonly endColumn?: number;

-    /**

-     * The 1-based line number of the reported end location.

-     */

-    readonly endLine?: number;

-    /**

-     * The 1-based line number of the reported start location.

-     */

-    readonly line?: number;

-    /**

-     * Reported message ID.

-     */

-    readonly messageId: TMessageIds;

-    /**

-     * Reported suggestions.

-     */

-    readonly suggestions?: SuggestionOutput<TMessageIds>[] | null;

-    /**

-     * The type of the reported AST node.

-     */

-    readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES;

-}

-interface RunTests<TMessageIds extends string, TOptions extends Readonly<unknown[]>> {

-    readonly valid: (ValidTestCase<TOptions> | string)[];

-    readonly invalid: InvalidTestCase<TMessageIds, TOptions>[];

-}

-interface RuleTesterConfig {

-    readonly parser: string;

-    readonly parserOptions?: Readonly<ParserOptions>;

-}

-declare class RuleTesterBase {

-    /**

-     * Creates a new instance of RuleTester.

-     * @param testerConfig extra configuration for the tester

-     */

-    constructor(testerConfig?: RuleTesterConfig);

-    /**

-     * Adds a new rule test to execute.

-     * @param ruleName The name of the rule to run.

-     * @param rule The rule to test.

-     * @param test The collection of tests to run.

-     */

-    run<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(ruleName: string, rule: RuleModule<TMessageIds, TOptions>, tests: RunTests<TMessageIds, TOptions>): void;

-    /**

-     * If you supply a value to this property, the rule tester will call this instead of using the version defined on

-     * the global namespace.

-     * @param text a string describing the rule

-     * @param callback the test callback

-     */

-    static describe?: (text: string, callback: () => void) => void;

-    /**

-     * If you supply a value to this property, the rule tester will call this instead of using the version defined on

-     * the global namespace.

-     * @param text a string describing the test case

-     * @param callback the test callback

-     */

-    static it?: (text: string, callback: () => void) => void;

-}

-declare const RuleTester_base: typeof RuleTesterBase;

-declare class RuleTester extends RuleTester_base {

-}

-export { InvalidTestCase, SuggestionOutput, RuleTester, RuleTesterConfig, RunTests, TestCaseError, ValidTestCase, };

-//# sourceMappingURL=RuleTester.d.ts.map

diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts
deleted file mode 100644
index 79dfc9d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import * as scopeManager from '@typescript-eslint/scope-manager';

-import { TSESTree } from '@typescript-eslint/types';

-declare namespace Scope {

-    class ESLintScopeVariable {

-        readonly defs: Definition[];

-        readonly identifiers: TSESTree.Identifier[];

-        readonly name: string;

-        readonly references: Reference[];

-        readonly scope: Scope;

-        /**

-         * Written to by ESLint.

-         * If this key exists, this variable is a global variable added by ESLint.

-         * If this is `true`, this variable can be assigned arbitrary values.

-         * If this is `false`, this variable is readonly.

-         */

-        writeable?: boolean;

-        /**

-         * Written to by ESLint.

-         * This property is undefined if there are no globals directive comments.

-         * The array of globals directive comments which defined this global variable in the source code file.

-         */

-        eslintExplicitGlobal?: boolean;

-        /**

-         * Written to by ESLint.

-         * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments.

-         */

-        eslintImplicitGlobalSetting?: 'readonly' | 'writable';

-        /**

-         * Written to by ESLint.

-         * If this key exists, it is a global variable added by ESLint.

-         * If `true`, this global variable was defined by a globals directive comment in the source code file.

-         */

-        eslintExplicitGlobalComments?: TSESTree.Comment[];

-    }

-    export type ScopeManager = scopeManager.ScopeManager;

-    export type Reference = scopeManager.Reference;

-    export type Variable = scopeManager.Variable | ESLintScopeVariable;

-    export type Scope = scopeManager.Scope;

-    export type DefinitionType = scopeManager.Definition;

-    export type Definition = scopeManager.Definition;

-    export {};

-}

-export { Scope };

-//# sourceMappingURL=Scope.d.ts.map

diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts
deleted file mode 100644
index 565a6a9..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { RuleMetaData, RuleMetaDataDocs, RuleListener, RuleContext, RuleModule } from '../ts-eslint/Rule';
-declare type CreateRuleMetaDocs = Omit<RuleMetaDataDocs, 'url'>;
-declare type CreateRuleMeta<TMessageIds extends string> = {
-    docs: CreateRuleMetaDocs;
-} & Omit<RuleMetaData<TMessageIds>, 'docs'>;
-declare function RuleCreator(urlCreator: (ruleName: string) => string): <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener = RuleListener>({ name, meta, defaultOptions, create, }: Readonly<{
-    name: string;
-    meta: CreateRuleMeta<TMessageIds>;
-    defaultOptions: Readonly<TOptions>;
-    create: (context: Readonly<RuleContext<TMessageIds, TOptions>>, optionsWithDefault: Readonly<TOptions>) => TRuleListener;
-}>) => RuleModule<TMessageIds, TOptions, TRuleListener>;
-export { RuleCreator };
-//# sourceMappingURL=RuleCreator.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map
deleted file mode 100644
index 2d86f2a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RuleCreator.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAI3B,aAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACxD,aAAK,cAAc,CAAC,WAAW,SAAS,MAAM,IAAI;IAChD,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAE5C,iBAAS,WAAW,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;UAanD,MAAM;;;;wDA2Bf;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js
deleted file mode 100644
index cba8ed6..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.RuleCreator = void 0;
-const applyDefault_1 = require("./applyDefault");
-function RuleCreator(urlCreator) {
-    // This function will get much easier to call when this is merged https://github.com/Microsoft/TypeScript/pull/26349
-    // TODO - when the above PR lands; add type checking for the context.report `data` property
-    return function createRule({ name, meta, defaultOptions, create, }) {
-        return {
-            meta: Object.assign(Object.assign({}, meta), { docs: Object.assign(Object.assign({}, meta.docs), { url: urlCreator(name) }) }),
-            create(context) {
-                const optionsWithDefault = applyDefault_1.applyDefault(defaultOptions, context.options);
-                return create(context, optionsWithDefault);
-            },
-        };
-    };
-}
-exports.RuleCreator = RuleCreator;
-//# sourceMappingURL=RuleCreator.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map
deleted file mode 100644
index cea4eb0..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleCreator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RuleCreator.js","sourceRoot":"","sources":["../../src/eslint-utils/RuleCreator.ts"],"names":[],"mappings":";;;AAOA,iDAA8C;AAQ9C,SAAS,WAAW,CAAC,UAAwC;IAC3D,oHAAoH;IACpH,2FAA2F;IAC3F,OAAO,SAAS,UAAU,CAIxB,EACA,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,MAAM,GASN;QACA,OAAO;YACL,IAAI,kCACC,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,MAExB;YACD,MAAM,CACJ,OAAqD;gBAErD,MAAM,kBAAkB,GAAG,2BAAY,CACrC,cAAc,EACd,OAAO,CAAC,OAAO,CAChB,CAAC;gBACF,OAAO,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAEQ,kCAAW"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts
deleted file mode 100644
index b92df58..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Pure function - doesn't mutate either parameter!
- * Uses the default options and overrides with the options provided by the user
- * @param defaultOptions the defaults
- * @param userOptions the user opts
- * @returns the options with defaults
- */
-declare function applyDefault<TUser extends readonly unknown[], TDefault extends TUser>(defaultOptions: TDefault, userOptions: TUser | null): TDefault;
-export { applyDefault };
-//# sourceMappingURL=applyDefault.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map
deleted file mode 100644
index 50c710e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyDefault.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAS,KAAK,EAC5E,cAAc,EAAE,QAAQ,EACxB,WAAW,EAAE,KAAK,GAAG,IAAI,GACxB,QAAQ,CAuBV;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
deleted file mode 100644
index 6ae1a79..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.applyDefault = void 0;
-const deepMerge_1 = require("./deepMerge");
-/**
- * Pure function - doesn't mutate either parameter!
- * Uses the default options and overrides with the options provided by the user
- * @param defaultOptions the defaults
- * @param userOptions the user opts
- * @returns the options with defaults
- */
-function applyDefault(defaultOptions, userOptions) {
-    // clone defaults
-    const options = JSON.parse(JSON.stringify(defaultOptions));
-    if (userOptions === null || userOptions === undefined) {
-        return options;
-    }
-    options.forEach((opt, i) => {
-        if (userOptions[i] !== undefined) {
-            const userOpt = userOptions[i];
-            if (deepMerge_1.isObjectNotArray(userOpt) && deepMerge_1.isObjectNotArray(opt)) {
-                options[i] = deepMerge_1.deepMerge(opt, userOpt);
-            }
-            else {
-                options[i] = userOpt;
-            }
-        }
-    });
-    return options;
-}
-exports.applyDefault = applyDefault;
-//# sourceMappingURL=applyDefault.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map
deleted file mode 100644
index 797a3b5..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyDefault.js","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,cAAwB,EACxB,WAAyB;IAEzB,iBAAiB;IACjB,MAAM,OAAO,GAAwB,IAAI,CAAC,KAAK,CAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAC/B,CAAC;IAEF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,4BAAgB,CAAC,OAAO,CAAC,IAAI,4BAAgB,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAMQ,oCAAY"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts
deleted file mode 100644
index 3411802..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { ValidTestCase, InvalidTestCase } from '../ts-eslint';
-/**
- * Converts a batch of single line tests into a number of separate test cases.
- * This makes it easier to write tests which use the same options.
- *
- * Why wouldn't you just leave them as one test?
- * Because it makes the test error messages harder to decipher.
- * This way each line will fail separately, instead of them all failing together.
- */
-declare function batchedSingleLineTests<TOptions extends Readonly<unknown[]>>(test: ValidTestCase<TOptions>): ValidTestCase<TOptions>[];
-/**
- * Converts a batch of single line tests into a number of separate test cases.
- * This makes it easier to write tests which use the same options.
- *
- * Why wouldn't you just leave them as one test?
- * Because it makes the test error messages harder to decipher.
- * This way each line will fail separately, instead of them all failing together.
- *
- * Make sure you have your line numbers correct for error reporting, as it will match
- * the line numbers up with the split tests!
- */
-declare function batchedSingleLineTests<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(test: InvalidTestCase<TMessageIds, TOptions>): InvalidTestCase<TMessageIds, TOptions>[];
-export { batchedSingleLineTests };
-//# sourceMappingURL=batchedSingleLineTests.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts.map
deleted file mode 100644
index 55841a1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"batchedSingleLineTests.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAAC,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAClE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC5B,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B;;;;;;;;;;GAUG;AACH,iBAAS,sBAAsB,CAC7B,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAEpC,IAAI,EAAE,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,GAC3C,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;AAwC5C,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js
deleted file mode 100644
index 7ff9390..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.batchedSingleLineTests = void 0;
-function batchedSingleLineTests(options) {
-    // eslint counts lines from 1
-    const lineOffset = options.code.startsWith('\n') ? 2 : 1;
-    const output = 'output' in options && options.output
-        ? options.output.trim().split('\n')
-        : null;
-    return options.code
-        .trim()
-        .split('\n')
-        .map((code, i) => {
-        const lineNum = i + lineOffset;
-        const errors = 'errors' in options
-            ? options.errors.filter(e => e.line === lineNum)
-            : [];
-        const returnVal = Object.assign(Object.assign({}, options), { code, errors: errors.map(e => (Object.assign(Object.assign({}, e), { line: 1 }))) });
-        if (output === null || output === void 0 ? void 0 : output[i]) {
-            return Object.assign(Object.assign({}, returnVal), { output: output[i] });
-        }
-        return returnVal;
-    });
-}
-exports.batchedSingleLineTests = batchedSingleLineTests;
-//# sourceMappingURL=batchedSingleLineTests.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map
deleted file mode 100644
index 31f68d6..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"batchedSingleLineTests.js","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":";;;AA8BA,SAAS,sBAAsB,CAI7B,OAAyE;IAEzE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,OAAO,CAAC,IAAI;SAChB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/B,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,mCACV,OAAO,KACV,IAAI,EACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACnB,CAAC,KACJ,IAAI,EAAE,CAAC,IACP,CAAC,GACJ,CAAC;QACF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,GAAG;YACf,uCACK,SAAS,KACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAEQ,wDAAsB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts
deleted file mode 100644
index 9650020..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-declare type ObjectLike<T = unknown> = Record<string, T>;
-/**
- * Check if the variable contains an object strictly rejecting arrays
- * @param obj an object
- * @returns `true` if obj is an object
- */
-declare function isObjectNotArray<T extends ObjectLike>(obj: unknown | unknown[]): obj is T;
-/**
- * Pure function - doesn't mutate either parameter!
- * Merges two objects together deeply, overwriting the properties in first with the properties in second
- * @param first The first object
- * @param second The second object
- * @returns a new object
- */
-export declare function deepMerge(first?: ObjectLike, second?: ObjectLike): Record<string, unknown>;
-export { isObjectNotArray };
-//# sourceMappingURL=deepMerge.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map
deleted file mode 100644
index 769f39c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjD;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAC5C,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,GACvB,GAAG,IAAI,CAAC,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,GAAE,UAAe,EACtB,MAAM,GAAE,UAAe,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js
deleted file mode 100644
index 34fdffc..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.isObjectNotArray = exports.deepMerge = void 0;
-/**
- * Check if the variable contains an object strictly rejecting arrays
- * @param obj an object
- * @returns `true` if obj is an object
- */
-function isObjectNotArray(obj) {
-    return typeof obj === 'object' && !Array.isArray(obj);
-}
-exports.isObjectNotArray = isObjectNotArray;
-/**
- * Pure function - doesn't mutate either parameter!
- * Merges two objects together deeply, overwriting the properties in first with the properties in second
- * @param first The first object
- * @param second The second object
- * @returns a new object
- */
-function deepMerge(first = {}, second = {}) {
-    // get the unique set of keys across both objects
-    const keys = new Set(Object.keys(first).concat(Object.keys(second)));
-    return Array.from(keys).reduce((acc, key) => {
-        const firstHasKey = key in first;
-        const secondHasKey = key in second;
-        const firstValue = first[key];
-        const secondValue = second[key];
-        if (firstHasKey && secondHasKey) {
-            if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {
-                // object type
-                acc[key] = deepMerge(firstValue, secondValue);
-            }
-            else {
-                // value type
-                acc[key] = secondValue;
-            }
-        }
-        else if (firstHasKey) {
-            acc[key] = firstValue;
-        }
-        else {
-            acc[key] = secondValue;
-        }
-        return acc;
-    }, {});
-}
-exports.deepMerge = deepMerge;
-//# sourceMappingURL=deepMerge.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map
deleted file mode 100644
index 7ee4604..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/deepMerge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/eslint-utils/deepMerge.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,GAAwB;IAExB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAwCQ,4CAAgB;AAtCzB;;;;;;GAMG;AACH,SAAgB,SAAS,CACvB,QAAoB,EAAE,EACtB,SAAqB,EAAE;IAEvB,iDAAiD;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,MAAM,WAAW,GAAG,GAAG,IAAI,KAAK,CAAC;QACjC,MAAM,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBACjE,cAAc;gBACd,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;aAC/C;iBAAM;gBACL,aAAa;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;aACxB;SACF;aAAM,IAAI,WAAW,EAAE;YACtB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;SACvB;aAAM;YACL,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SACxB;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AA7BD,8BA6BC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts
deleted file mode 100644
index 98626f4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as TSESLint from '../ts-eslint';
-import { ParserServices } from '../ts-estree';
-/**
- * Try to retrieve typescript parser service from context
- */
-declare function getParserServices<TMessageIds extends string, TOptions extends readonly unknown[]>(context: Readonly<TSESLint.RuleContext<TMessageIds, TOptions>>, allowWithoutFullTypeInformation?: boolean): ParserServices;
-export { getParserServices };
-//# sourceMappingURL=getParserServices.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map
deleted file mode 100644
index 52fea2c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getParserServices.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C;;GAEG;AACH,iBAAS,iBAAiB,CACxB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,SAAS,OAAO,EAAE,EAEnC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAC9D,+BAA+B,UAAQ,GACtC,cAAc,CAuBhB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js
deleted file mode 100644
index 09302fd..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getParserServices = void 0;
-const ERROR_MESSAGE = 'You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.';
-/**
- * Try to retrieve typescript parser service from context
- */
-function getParserServices(context, allowWithoutFullTypeInformation = false) {
-    var _a;
-    // backwards compatibility check
-    // old versions of the parser would not return any parserServices unless parserOptions.project was set
-    if (!context.parserServices ||
-        !context.parserServices.program ||
-        !context.parserServices.esTreeNodeToTSNodeMap ||
-        !context.parserServices.tsNodeToESTreeNodeMap) {
-        throw new Error(ERROR_MESSAGE);
-    }
-    const hasFullTypeInformation = (_a = context.parserServices.hasFullTypeInformation) !== null && _a !== void 0 ? _a : 
-    /* backwards compatible */ true;
-    // if a rule requires full type information, then hard fail if it doesn't exist
-    // this forces the user to supply parserOptions.project
-    if (!hasFullTypeInformation && !allowWithoutFullTypeInformation) {
-        throw new Error(ERROR_MESSAGE);
-    }
-    return context.parserServices;
-}
-exports.getParserServices = getParserServices;
-//# sourceMappingURL=getParserServices.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map
deleted file mode 100644
index 4d40125..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getParserServices.js","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GACjB,gLAAgL,CAAC;AAEnL;;GAEG;AACH,SAAS,iBAAiB,CAIxB,OAA8D,EAC9D,+BAA+B,GAAG,KAAK;;IAEvC,gCAAgC;IAChC,sGAAsG;IACtG,IACE,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO;QAC/B,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB;QAC7C,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAC7C;QACA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,MAAM,sBAAsB,SAC1B,OAAO,CAAC,cAAc,CAAC,sBAAsB;IAC7C,0BAA0B,CAAC,IAAI,CAAC;IAElC,+EAA+E;IAC/E,uDAAuD;IACvD,IAAI,CAAC,sBAAsB,IAAI,CAAC,+BAA+B,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAEQ,8CAAiB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts
deleted file mode 100644
index 8cdfcb0..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export * from './applyDefault';
-export * from './batchedSingleLineTests';
-export * from './getParserServices';
-export * from './InferTypesFromRule';
-export * from './RuleCreator';
-export * from './RuleTester';
-export * from './deepMerge';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map
deleted file mode 100644
index 7aca90d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js
deleted file mode 100644
index dde280d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-__exportStar(require("./applyDefault"), exports);
-__exportStar(require("./batchedSingleLineTests"), exports);
-__exportStar(require("./getParserServices"), exports);
-__exportStar(require("./InferTypesFromRule"), exports);
-__exportStar(require("./RuleCreator"), exports);
-__exportStar(require("./RuleTester"), exports);
-__exportStar(require("./deepMerge"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map
deleted file mode 100644
index f24be47..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint-utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B;AAC/B,2DAAyC;AACzC,sDAAoC;AACpC,uDAAqC;AACrC,gDAA8B;AAC9B,+CAA6B;AAC7B,8CAA4B"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts
deleted file mode 100644
index b8a60a9..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as ASTUtils from './ast-utils';
-import * as ESLintUtils from './eslint-utils';
-import * as JSONSchema from './json-schema';
-import * as TSESLint from './ts-eslint';
-import * as TSESLintScope from './ts-eslint-scope';
-export { ASTUtils, ESLintUtils, JSONSchema, TSESLint, TSESLintScope };
-export * from './ts-estree';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map
deleted file mode 100644
index 822db07..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACtE,cAAc,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js
deleted file mode 100644
index ef12e06..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.TSESLintScope = exports.TSESLint = exports.JSONSchema = exports.ESLintUtils = exports.ASTUtils = void 0;
-const ASTUtils = __importStar(require("./ast-utils"));
-exports.ASTUtils = ASTUtils;
-const ESLintUtils = __importStar(require("./eslint-utils"));
-exports.ESLintUtils = ESLintUtils;
-const JSONSchema = __importStar(require("./json-schema"));
-exports.JSONSchema = JSONSchema;
-const TSESLint = __importStar(require("./ts-eslint"));
-exports.TSESLint = TSESLint;
-const TSESLintScope = __importStar(require("./ts-eslint-scope"));
-exports.TSESLintScope = TSESLintScope;
-__exportStar(require("./ts-estree"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map
deleted file mode 100644
index b500da1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AAM/B,4BAAQ;AALjB,4DAA8C;AAK3B,kCAAW;AAJ9B,0DAA4C;AAIZ,gCAAU;AAH1C,sDAAwC;AAGI,4BAAQ;AAFpD,iEAAmD;AAEG,sCAAa;AACnE,8CAA4B"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts
deleted file mode 100644
index bd6f29c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { JSONSchema4, JSONSchema4Type, JSONSchema4TypeName, JSONSchema4Version, JSONSchema6, JSONSchema6Definition, JSONSchema6Type, JSONSchema6TypeName, JSONSchema6Version, JSONSchema7, JSONSchema7Array, JSONSchema7Definition, JSONSchema7Type, JSONSchema7TypeName, JSONSchema7Version, ValidationError, ValidationResult, } from 'json-schema';
-//# sourceMappingURL=json-schema.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map
deleted file mode 100644
index 845788b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js
deleted file mode 100644
index 289fb57..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-// Note - @types/json-schema@7.0.4 added some function declarations to the type package
-// If we do export *, then it will also export these function declarations.
-// This will cause typescript to not scrub the require from the build, breaking anyone who doesn't have it as a dependency
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=json-schema.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map
deleted file mode 100644
index 51d0b02..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":";AAAA,uFAAuF;AACvF,2EAA2E;AAC3E,0HAA0H"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts
deleted file mode 100644
index bcaf94a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { TSESTree } from '../ts-estree';
-interface Definition {
-    type: string;
-    name: TSESTree.BindingName;
-    node: TSESTree.Node;
-    parent?: TSESTree.Node | null;
-    index?: number | null;
-    kind?: string | null;
-    rest?: boolean;
-}
-interface DefinitionConstructor {
-    new (type: string, name: TSESTree.BindingName | TSESTree.PropertyName, node: TSESTree.Node, parent?: TSESTree.Node | null, index?: number | null, kind?: string | null): Definition;
-}
-declare const Definition: DefinitionConstructor;
-interface ParameterDefinition extends Definition {
-}
-declare const ParameterDefinition: DefinitionConstructor & (new (name: TSESTree.Node, node: TSESTree.Node, index?: number | null | undefined, rest?: boolean | undefined) => ParameterDefinition);
-export { Definition, ParameterDefinition };
-//# sourceMappingURL=Definition.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map
deleted file mode 100644
index ab9c638..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,qBAAqB;IAC7B,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,EAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,UAAU,CAAC;CACf;AACD,QAAA,MAAM,UAAU,uBAA4C,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,UAAU;CAAG;AACnD,QAAA,MAAM,mBAAmB,sCAEf,SAAS,IAAI,QACb,SAAS,IAAI,oEAGlB,mBAAmB,CACvB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js
deleted file mode 100644
index dd3de1f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ParameterDefinition = exports.Definition = void 0;
-const definition_1 = require("eslint-scope/lib/definition");
-const Definition = definition_1.Definition;
-exports.Definition = Definition;
-const ParameterDefinition = definition_1.ParameterDefinition;
-exports.ParameterDefinition = ParameterDefinition;
-//# sourceMappingURL=Definition.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map
deleted file mode 100644
index fa19c8c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Definition.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":";;;AAAA,4DAGqC;AAsBrC,MAAM,UAAU,GAAG,uBAAyC,CAAC;AAapD,gCAAU;AATnB,MAAM,mBAAmB,GAAG,gCAO3B,CAAC;AAEmB,kDAAmB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts
deleted file mode 100644
index 48ce3c5..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { TSESTree } from '../ts-estree';
-declare type PatternVisitorCallback = (pattern: TSESTree.Identifier, info: {
-    rest: boolean;
-    topLevel: boolean;
-    assignments: TSESTree.AssignmentPattern[];
-}) => void;
-interface PatternVisitorOptions {
-    processRightHandNodes?: boolean;
-}
-interface Visitor {
-    visitChildren<T extends TSESTree.BaseNode | undefined | null>(node?: T): void;
-    visit<T extends TSESTree.BaseNode | undefined | null>(node?: T): void;
-}
-export { PatternVisitorCallback, PatternVisitorOptions, Visitor };
-//# sourceMappingURL=Options.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map
deleted file mode 100644
index fae66aa..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,aAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAC5B,IAAI,EAAE;IACJ,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC;CAC3C,KACE,IAAI,CAAC;AAEV,UAAU,qBAAqB;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,UAAU,OAAO;IACf,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC9E,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js
deleted file mode 100644
index 08cea89..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=Options.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js.map
deleted file mode 100644
index 8d8fb9e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Options.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Options.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts
deleted file mode 100644
index e21224b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { ScopeManager } from './ScopeManager';
-import { PatternVisitorCallback, PatternVisitorOptions, Visitor } from './Options';
-interface PatternVisitor extends Visitor {
-    options: PatternVisitorOptions;
-    scopeManager: ScopeManager;
-    parent?: TSESTree.Node;
-    rightHandNodes: TSESTree.Node[];
-    Identifier(pattern: TSESTree.Node): void;
-    Property(property: TSESTree.Node): void;
-    ArrayPattern(pattern: TSESTree.Node): void;
-    AssignmentPattern(pattern: TSESTree.Node): void;
-    RestElement(pattern: TSESTree.Node): void;
-    MemberExpression(node: TSESTree.Node): void;
-    SpreadElement(node: TSESTree.Node): void;
-    ArrayExpression(node: TSESTree.Node): void;
-    AssignmentExpression(node: TSESTree.Node): void;
-    CallExpression(node: TSESTree.Node): void;
-}
-declare const PatternVisitor: {
-    new (options: PatternVisitorOptions, rootPattern: TSESTree.BaseNode, callback: PatternVisitorCallback): PatternVisitor;
-    isPattern(node: TSESTree.Node): boolean;
-};
-export { PatternVisitor };
-//# sourceMappingURL=PatternVisitor.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map
deleted file mode 100644
index eec5b0b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PatternVisitor.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACR,MAAM,WAAW,CAAC;AAEnB,UAAU,cAAe,SAAQ,OAAO;IACtC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEhC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACxC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3C,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChD,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;CAC3C;AACD,QAAA,MAAM,cAAc;kBAEP,qBAAqB,eACjB,SAAS,QAAQ,YACpB,sBAAsB,GAC/B,cAAc;oBAGD,SAAS,IAAI,GAAG,OAAO;CACxC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js
deleted file mode 100644
index 43aa849..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.PatternVisitor = void 0;
-const pattern_visitor_1 = __importDefault(require("eslint-scope/lib/pattern-visitor"));
-const PatternVisitor = pattern_visitor_1.default;
-exports.PatternVisitor = PatternVisitor;
-//# sourceMappingURL=PatternVisitor.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map
deleted file mode 100644
index e08efc8..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/PatternVisitor.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PatternVisitor.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/PatternVisitor.ts"],"names":[],"mappings":";;;;;;AAAA,uFAAoE;AA0BpE,MAAM,cAAc,GAAG,yBAStB,CAAC;AAEO,wCAAc"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts
deleted file mode 100644
index 0d479b3..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { Scope } from './Scope';
-import { Variable } from './Variable';
-export declare type ReferenceFlag = 0x1 | 0x2 | 0x3;
-interface Reference {
-    identifier: TSESTree.Identifier;
-    from: Scope;
-    resolved: Variable | null;
-    writeExpr: TSESTree.Node | null;
-    init: boolean;
-    partial: boolean;
-    __maybeImplicitGlobal: boolean;
-    tainted?: boolean;
-    typeMode?: boolean;
-    isWrite(): boolean;
-    isRead(): boolean;
-    isWriteOnly(): boolean;
-    isReadOnly(): boolean;
-    isReadWrite(): boolean;
-}
-declare const Reference: {
-    new (identifier: TSESTree.Identifier, scope: Scope, flag?: 2 | 3 | 1 | undefined, writeExpr?: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ChainExpression | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportExpression | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamedTupleMember | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPrivateKeyword | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSProtectedKeyword | TSESTree.TSPublicKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference;
-    READ: 0x1;
-    WRITE: 0x2;
-    RW: 0x3;
-};
-export { Reference };
-//# sourceMappingURL=Reference.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map
deleted file mode 100644
index 1384afb..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAU,SAAS;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC;CACxB;AACD,QAAA,MAAM,SAAS;qBAEC,SAAS,UAAU,SACxB,KAAK,2lKAMX,SAAS;UAEN,GAAG;WACF,GAAG;QACN,GAAG;CACR,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js
deleted file mode 100644
index 71a4559..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Reference = void 0;
-const reference_1 = __importDefault(require("eslint-scope/lib/reference"));
-const Reference = reference_1.default;
-exports.Reference = Reference;
-//# sourceMappingURL=Reference.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map
deleted file mode 100644
index 8b1c95b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAyD;AAyBzD,MAAM,SAAS,GAAG,mBAcjB,CAAC;AAEO,8BAAS"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts
deleted file mode 100644
index beeb288..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { PatternVisitorCallback, PatternVisitorOptions, Visitor } from './Options';
-import { Scope } from './Scope';
-import { ScopeManager } from './ScopeManager';
-interface Referencer<SM extends ScopeManager> extends Visitor {
-    isInnerMethodDefinition: boolean;
-    options: any;
-    scopeManager: SM;
-    parent?: TSESTree.Node;
-    currentScope(): Scope;
-    close(node: TSESTree.Node): void;
-    pushInnerMethodDefinition(isInnerMethodDefinition: boolean): boolean;
-    popInnerMethodDefinition(isInnerMethodDefinition: boolean): void;
-    referencingDefaultValue(pattern: any, assignments: any, maybeImplicitGlobal: any, init: boolean): void;
-    visitPattern(node: TSESTree.Node, options: PatternVisitorOptions, callback: PatternVisitorCallback): void;
-    visitFunction(node: TSESTree.Node): void;
-    visitClass(node: TSESTree.Node): void;
-    visitProperty(node: TSESTree.Node): void;
-    visitForIn(node: TSESTree.Node): void;
-    visitVariableDeclaration(variableTargetScope: any, type: any, node: TSESTree.Node, index: any): void;
-    AssignmentExpression(node: TSESTree.Node): void;
-    CatchClause(node: TSESTree.Node): void;
-    Program(node: TSESTree.Program): void;
-    Identifier(node: TSESTree.Identifier): void;
-    UpdateExpression(node: TSESTree.Node): void;
-    MemberExpression(node: TSESTree.Node): void;
-    Property(node: TSESTree.Node): void;
-    MethodDefinition(node: TSESTree.Node): void;
-    BreakStatement(): void;
-    ContinueStatement(): void;
-    LabeledStatement(node: TSESTree.Node): void;
-    ForStatement(node: TSESTree.Node): void;
-    ClassExpression(node: TSESTree.Node): void;
-    ClassDeclaration(node: TSESTree.Node): void;
-    CallExpression(node: TSESTree.Node): void;
-    BlockStatement(node: TSESTree.Node): void;
-    ThisExpression(): void;
-    WithStatement(node: TSESTree.Node): void;
-    VariableDeclaration(node: TSESTree.Node): void;
-    SwitchStatement(node: TSESTree.Node): void;
-    FunctionDeclaration(node: TSESTree.Node): void;
-    FunctionExpression(node: TSESTree.Node): void;
-    ForOfStatement(node: TSESTree.Node): void;
-    ForInStatement(node: TSESTree.Node): void;
-    ArrowFunctionExpression(node: TSESTree.Node): void;
-    ImportDeclaration(node: TSESTree.Node): void;
-    visitExportDeclaration(node: TSESTree.Node): void;
-    ExportDeclaration(node: TSESTree.Node): void;
-    ExportNamedDeclaration(node: TSESTree.Node): void;
-    ExportSpecifier(node: TSESTree.Node): void;
-    MetaProperty(): void;
-}
-declare const Referencer: new <SM extends ScopeManager>(options: any, scopeManager: SM) => Referencer<SM>;
-export { Referencer };
-//# sourceMappingURL=Referencer.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map
deleted file mode 100644
index 37a11bf..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Referencer.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js
deleted file mode 100644
index 4aafa5a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Referencer = void 0;
-/* eslint-disable @typescript-eslint/no-explicit-any */
-const referencer_1 = __importDefault(require("eslint-scope/lib/referencer"));
-const Referencer = referencer_1.default;
-exports.Referencer = Referencer;
-//# sourceMappingURL=Referencer.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map
deleted file mode 100644
index 2d80e28..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Referencer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Referencer.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Referencer.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,6EAA2D;AA2E3D,MAAM,UAAU,GAAG,oBAElB,CAAC;AAEO,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts
deleted file mode 100644
index ae6bd11..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { Definition } from './Definition';
-import { Reference, ReferenceFlag } from './Reference';
-import { ScopeManager } from './ScopeManager';
-import { Variable } from './Variable';
-declare type ScopeType = 'block' | 'catch' | 'class' | 'for' | 'function' | 'function-expression-name' | 'global' | 'module' | 'switch' | 'with' | 'TDZ' | 'enum' | 'empty-function';
-interface Scope {
-    type: ScopeType;
-    isStrict: boolean;
-    upper: Scope | null;
-    childScopes: Scope[];
-    variableScope: Scope;
-    block: TSESTree.Node;
-    variables: Variable[];
-    set: Map<string, Variable>;
-    references: Reference[];
-    through: Reference[];
-    thisFound?: boolean;
-    taints: Map<string, boolean>;
-    functionExpressionScope: boolean;
-    __left: Reference[];
-    __shouldStaticallyClose(scopeManager: ScopeManager): boolean;
-    __shouldStaticallyCloseForGlobal(ref: any): boolean;
-    __staticCloseRef(ref: any): void;
-    __dynamicCloseRef(ref: any): void;
-    __globalCloseRef(ref: any): void;
-    __close(scopeManager: ScopeManager): Scope;
-    __isValidResolution(ref: any, variable: any): variable is Variable;
-    __resolve(ref: Reference): boolean;
-    __delegateToUpperScope(ref: any): void;
-    __addDeclaredVariablesOfNode(variable: any, node: TSESTree.Node): void;
-    __defineGeneric(name: string, set: Map<string, Variable>, variables: Variable[], node: TSESTree.Identifier, def: Definition): void;
-    __define(node: TSESTree.Node, def: Definition): void;
-    __referencing(node: TSESTree.Node, assign?: ReferenceFlag, writeExpr?: TSESTree.Node, maybeImplicitGlobal?: any, partial?: any, init?: any): void;
-    __detectEval(): void;
-    __detectThis(): void;
-    __isClosed(): boolean;
-    /**
-     * returns resolved {Reference}
-     * @method Scope#resolve
-     * @param {Espree.Identifier} ident - identifier to be resolved.
-     * @returns {Reference} reference
-     */
-    resolve(ident: TSESTree.Node): Reference;
-    /**
-     * returns this scope is static
-     * @method Scope#isStatic
-     * @returns {boolean} static
-     */
-    isStatic(): boolean;
-    /**
-     * returns this scope has materialized arguments
-     * @method Scope#isArgumentsMaterialized
-     * @returns {boolean} arguments materialized
-     */
-    isArgumentsMaterialized(): boolean;
-    /**
-     * returns this scope has materialized `this` reference
-     * @method Scope#isThisMaterialized
-     * @returns {boolean} this materialized
-     */
-    isThisMaterialized(): boolean;
-    isUsedName(name: any): boolean;
-}
-interface ScopeConstructor {
-    new (scopeManager: ScopeManager, type: ScopeType, upperScope: Scope | null, block: TSESTree.Node | null, isMethodDefinition: boolean): Scope;
-}
-declare const Scope: ScopeConstructor;
-interface ScopeChildConstructorWithUpperScope<T> {
-    new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.Node | null): T;
-}
-interface GlobalScope extends Scope {
-}
-declare const GlobalScope: ScopeConstructor & (new (scopeManager: ScopeManager, block: TSESTree.Node | null) => GlobalScope);
-interface ModuleScope extends Scope {
-}
-declare const ModuleScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ModuleScope>;
-interface FunctionExpressionNameScope extends Scope {
-}
-declare const FunctionExpressionNameScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<FunctionExpressionNameScope>;
-interface CatchScope extends Scope {
-}
-declare const CatchScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<CatchScope>;
-interface WithScope extends Scope {
-}
-declare const WithScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<WithScope>;
-interface BlockScope extends Scope {
-}
-declare const BlockScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<BlockScope>;
-interface SwitchScope extends Scope {
-}
-declare const SwitchScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<SwitchScope>;
-interface FunctionScope extends Scope {
-}
-declare const FunctionScope: ScopeConstructor & (new (scopeManager: ScopeManager, upperScope: Scope, block: TSESTree.Node | null, isMethodDefinition: boolean) => FunctionScope);
-interface ForScope extends Scope {
-}
-declare const ForScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ForScope>;
-interface ClassScope extends Scope {
-}
-declare const ClassScope: ScopeConstructor & ScopeChildConstructorWithUpperScope<ClassScope>;
-export { ScopeType, Scope, GlobalScope, ModuleScope, FunctionExpressionNameScope, CatchScope, WithScope, BlockScope, SwitchScope, FunctionScope, ForScope, ClassScope, };
-//# sourceMappingURL=Scope.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map
deleted file mode 100644
index 8b6f342..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js
deleted file mode 100644
index f4f604f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-empty-interface, @typescript-eslint/no-explicit-any */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ClassScope = exports.ForScope = exports.FunctionScope = exports.SwitchScope = exports.BlockScope = exports.WithScope = exports.CatchScope = exports.FunctionExpressionNameScope = exports.ModuleScope = exports.GlobalScope = exports.Scope = void 0;
-const scope_1 = require("eslint-scope/lib/scope");
-const Scope = scope_1.Scope;
-exports.Scope = Scope;
-const GlobalScope = scope_1.GlobalScope;
-exports.GlobalScope = GlobalScope;
-const ModuleScope = scope_1.ModuleScope;
-exports.ModuleScope = ModuleScope;
-const FunctionExpressionNameScope = scope_1.FunctionExpressionNameScope;
-exports.FunctionExpressionNameScope = FunctionExpressionNameScope;
-const CatchScope = scope_1.CatchScope;
-exports.CatchScope = CatchScope;
-const WithScope = scope_1.WithScope;
-exports.WithScope = WithScope;
-const BlockScope = scope_1.BlockScope;
-exports.BlockScope = BlockScope;
-const SwitchScope = scope_1.SwitchScope;
-exports.SwitchScope = SwitchScope;
-const FunctionScope = scope_1.FunctionScope;
-exports.FunctionScope = FunctionScope;
-const ForScope = scope_1.ForScope;
-exports.ForScope = ForScope;
-const ClassScope = scope_1.ClassScope;
-exports.ClassScope = ClassScope;
-//# sourceMappingURL=Scope.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map
deleted file mode 100644
index b0d7969..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,kDAYgC;AA8GhC,MAAM,KAAK,GAAG,aAA+B,CAAC;AA2D5C,sBAAK;AAhDP,MAAM,WAAW,GAAG,mBAEnB,CAAC;AA+CA,kCAAW;AA5Cb,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA4CjD,kCAAW;AAzCb,MAAM,2BAA2B,GAAG,mCAC8B,CAAC;AAyCjE,kEAA2B;AAtC7B,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAsChD,gCAAU;AAnCZ,MAAM,SAAS,GAAG,iBAC8B,CAAC;AAmC/C,8BAAS;AAhCX,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAgChD,gCAAU;AA7BZ,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6BjD,kCAAW;AA1Bb,MAAM,aAAa,GAAG,qBAOrB,CAAC;AAoBA,sCAAa;AAjBf,MAAM,QAAQ,GAAG,gBAC8B,CAAC;AAiB9C,4BAAQ;AAdV,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAchD,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts
deleted file mode 100644
index 9b7e929..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { EcmaVersion } from '../ts-eslint';
-import { Scope } from './Scope';
-import { Variable } from './Variable';
-interface ScopeManagerOptions {
-    directive?: boolean;
-    optimistic?: boolean;
-    ignoreEval?: boolean;
-    nodejsScope?: boolean;
-    sourceType?: 'module' | 'script';
-    impliedStrict?: boolean;
-    ecmaVersion?: EcmaVersion;
-}
-interface ScopeManager {
-    __options: ScopeManagerOptions;
-    __currentScope: Scope;
-    __nodeToScope: WeakMap<TSESTree.Node, Scope[]>;
-    __declaredVariables: WeakMap<TSESTree.Node, Variable[]>;
-    scopes: Scope[];
-    globalScope: Scope;
-    __useDirective(): boolean;
-    __isOptimistic(): boolean;
-    __ignoreEval(): boolean;
-    __isNodejsScope(): boolean;
-    isModule(): boolean;
-    isImpliedStrict(): boolean;
-    isStrictModeSupported(): boolean;
-    __get(node: TSESTree.Node): Scope | undefined;
-    getDeclaredVariables(node: TSESTree.Node): Variable[];
-    acquire(node: TSESTree.Node, inner?: boolean): Scope | null;
-    acquireAll(node: TSESTree.Node): Scope | null;
-    release(node: TSESTree.Node, inner?: boolean): Scope | null;
-    attach(): void;
-    detach(): void;
-    __nestScope<T extends Scope>(scope: T): T;
-    __nestGlobalScope(node: TSESTree.Node): Scope;
-    __nestBlockScope(node: TSESTree.Node): Scope;
-    __nestFunctionScope(node: TSESTree.Node, isMethodDefinition: boolean): Scope;
-    __nestForScope(node: TSESTree.Node): Scope;
-    __nestCatchScope(node: TSESTree.Node): Scope;
-    __nestWithScope(node: TSESTree.Node): Scope;
-    __nestClassScope(node: TSESTree.Node): Scope;
-    __nestSwitchScope(node: TSESTree.Node): Scope;
-    __nestModuleScope(node: TSESTree.Node): Scope;
-    __nestFunctionExpressionNameScope(node: TSESTree.Node): Scope;
-    __isES6(): boolean;
-}
-declare const ScopeManager: new (options: ScopeManagerOptions) => ScopeManager;
-export { ScopeManager, ScopeManagerOptions };
-//# sourceMappingURL=ScopeManager.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map
deleted file mode 100644
index 7c9ba53..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ScopeManager.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js
deleted file mode 100644
index c886eb7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ScopeManager = void 0;
-const scope_manager_1 = __importDefault(require("eslint-scope/lib/scope-manager"));
-const ScopeManager = scope_manager_1.default;
-exports.ScopeManager = ScopeManager;
-//# sourceMappingURL=ScopeManager.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map
deleted file mode 100644
index 35d90d1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/ScopeManager.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/ScopeManager.ts"],"names":[],"mappings":";;;;;;AAAA,mFAAgE;AAwDhE,MAAM,YAAY,GAAG,uBAEpB,CAAC;AAEO,oCAAY"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts
deleted file mode 100644
index a5d6ddf..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { TSESTree } from '../ts-estree';
-import { Reference } from './Reference';
-import { Definition } from './Definition';
-import { Scope } from './Scope';
-interface Variable {
-    name: string;
-    identifiers: TSESTree.Identifier[];
-    references: Reference[];
-    defs: Definition[];
-    eslintUsed?: boolean;
-    stack?: unknown;
-    tainted?: boolean;
-    scope?: Scope;
-}
-declare const Variable: new () => Variable;
-export { Variable };
-//# sourceMappingURL=Variable.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map
deleted file mode 100644
index 604e185..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Variable.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;IACnC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,QAAA,MAAM,QAAQ,YACJ,QACT,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js
deleted file mode 100644
index c0fdac2..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Variable = void 0;
-const variable_1 = __importDefault(require("eslint-scope/lib/variable"));
-const Variable = variable_1.default;
-exports.Variable = Variable;
-//# sourceMappingURL=Variable.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map
deleted file mode 100644
index d6545bb..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Variable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Variable.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Variable.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAuD;AAiBvD,MAAM,QAAQ,GAAG,kBAEhB,CAAC;AAEO,4BAAQ"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts
deleted file mode 100644
index dbcb76b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { EcmaVersion } from '../ts-eslint';
-import { TSESTree } from '../ts-estree';
-import { ScopeManager } from './ScopeManager';
-interface AnalysisOptions {
-    optimistic?: boolean;
-    directive?: boolean;
-    ignoreEval?: boolean;
-    nodejsScope?: boolean;
-    impliedStrict?: boolean;
-    fallback?: string | ((node: TSESTree.Node) => string[]);
-    sourceType?: 'script' | 'module';
-    ecmaVersion?: EcmaVersion;
-}
-declare const analyze: (ast: TSESTree.Node, options?: AnalysisOptions | undefined) => ScopeManager;
-export { analyze, AnalysisOptions };
-//# sourceMappingURL=analyze.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map
deleted file mode 100644
index 9a3654b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AACD,QAAA,MAAM,OAAO,QACN,SAAS,IAAI,4CAEf,YAAY,CAAC;AAElB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js
deleted file mode 100644
index 7fddff1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.analyze = void 0;
-const eslint_scope_1 = require("eslint-scope");
-const analyze = eslint_scope_1.analyze;
-exports.analyze = analyze;
-//# sourceMappingURL=analyze.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map
deleted file mode 100644
index f015cc4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/analyze.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/analyze.ts"],"names":[],"mappings":";;;AAAA,+CAAwD;AAexD,MAAM,OAAO,GAAG,sBAGC,CAAC;AAET,0BAAO"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts
deleted file mode 100644
index c795b88..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export * from './analyze';
-export * from './Definition';
-export * from './Options';
-export * from './PatternVisitor';
-export * from './Reference';
-export * from './Referencer';
-export * from './Scope';
-export * from './ScopeManager';
-export * from './Variable';
-export declare const version: string;
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map
deleted file mode 100644
index 26afd66..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,eAAO,MAAM,OAAO,EAAE,MAAsB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js
deleted file mode 100644
index 34d3243..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.version = void 0;
-const eslint_scope_1 = require("eslint-scope");
-__exportStar(require("./analyze"), exports);
-__exportStar(require("./Definition"), exports);
-__exportStar(require("./Options"), exports);
-__exportStar(require("./PatternVisitor"), exports);
-__exportStar(require("./Reference"), exports);
-__exportStar(require("./Referencer"), exports);
-__exportStar(require("./Scope"), exports);
-__exportStar(require("./ScopeManager"), exports);
-__exportStar(require("./Variable"), exports);
-exports.version = eslint_scope_1.version;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map
deleted file mode 100644
index 8872a9f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAwD;AAExD,4CAA0B;AAC1B,+CAA6B;AAC7B,4CAA0B;AAC1B,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,6CAA2B;AACd,QAAA,OAAO,GAAW,sBAAa,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts
deleted file mode 100644
index 88d6379..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { TSESTree, AST_TOKEN_TYPES } from '../ts-estree';
-declare namespace AST {
-    type TokenType = AST_TOKEN_TYPES;
-    type Token = TSESTree.Token;
-    type SourceLocation = TSESTree.SourceLocation;
-    type Range = TSESTree.Range;
-}
-export { AST };
-//# sourceMappingURL=AST.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map
deleted file mode 100644
index 8dca544..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AST.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/AST.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzD,kBAAU,GAAG,CAAC;IACZ,KAAY,SAAS,GAAG,eAAe,CAAC;IAExC,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnC,KAAY,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAErD,KAAY,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;CACpC;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js
deleted file mode 100644
index 323ed55..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-namespace */
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=AST.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js.map
deleted file mode 100644
index 2aa7f04..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/AST.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AST.js","sourceRoot":"","sources":["../../src/ts-eslint/AST.ts"],"names":[],"mappings":";AAAA,oDAAoD"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts
deleted file mode 100644
index f996162..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-import { Linter } from './Linter';
-import { RuleListener, RuleMetaData, RuleModule } from './Rule';
-declare class CLIEngineBase {
-    /**
-     * Creates a new instance of the core CLI engine.
-     * @param providedOptions The options for this instance.
-     */
-    constructor(options: CLIEngine.Options);
-    /**
-     * Add a plugin by passing its configuration
-     * @param name Name of the plugin.
-     * @param pluginObject Plugin configuration object.
-     */
-    addPlugin(name: string, pluginObject: Linter.Plugin): void;
-    /**
-     * Executes the current configuration on an array of file and directory names.
-     * @param patterns An array of file and directory names.
-     * @returns The results for all files that were linted.
-     */
-    executeOnFiles(patterns: string[]): CLIEngine.LintReport;
-    /**
-     * Executes the current configuration on text.
-     * @param text A string of JavaScript code to lint.
-     * @param filename An optional string representing the texts filename.
-     * @param warnIgnored Always warn when a file is ignored
-     * @returns The results for the linting.
-     */
-    executeOnText(text: string, filename?: string, warnIgnored?: boolean): CLIEngine.LintReport;
-    /**
-     * Returns a configuration object for the given file based on the CLI options.
-     * This is the same logic used by the ESLint CLI executable to determine configuration for each file it processes.
-     * @param filePath The path of the file to retrieve a config object for.
-     * @returns A configuration object for the file.
-     */
-    getConfigForFile(filePath: string): Linter.Config;
-    /**
-     * Returns the formatter representing the given format.
-     * @param format The name of the format to load or the path to a custom formatter.
-     * @returns The formatter function.
-     */
-    getFormatter(format?: string): CLIEngine.Formatter;
-    /**
-     * Checks if a given path is ignored by ESLint.
-     * @param filePath The path of the file to check.
-     * @returns Whether or not the given path is ignored.
-     */
-    isPathIgnored(filePath: string): boolean;
-    /**
-     * Resolves the patterns passed into `executeOnFiles()` into glob-based patterns for easier handling.
-     * @param patterns The file patterns passed on the command line.
-     * @returns The equivalent glob patterns.
-     */
-    resolveFileGlobPatterns(patterns: string[]): string[];
-    getRules<TMessageIds extends string = string, TOptions extends readonly unknown[] = unknown[], TRuleListener extends RuleListener = RuleListener>(): Map<string, RuleModule<TMessageIds, TOptions, TRuleListener>>;
-    /**
-     * Returns results that only contains errors.
-     * @param results The results to filter.
-     * @returns The filtered results.
-     */
-    static getErrorResults(results: CLIEngine.LintResult[]): CLIEngine.LintResult[];
-    /**
-     * Returns the formatter representing the given format or null if the `format` is not a string.
-     * @param format The name of the format to load or the path to a custom formatter.
-     * @returns The formatter function.
-     */
-    static getFormatter(format?: string): CLIEngine.Formatter;
-    /**
-     * Outputs fixes from the given results to files.
-     * @param report The report object created by CLIEngine.
-     */
-    static outputFixes(report: CLIEngine.LintReport): void;
-    static version: string;
-}
-declare namespace CLIEngine {
-    interface Options {
-        allowInlineConfig?: boolean;
-        baseConfig?: false | {
-            [name: string]: unknown;
-        };
-        cache?: boolean;
-        cacheFile?: string;
-        cacheLocation?: string;
-        configFile?: string;
-        cwd?: string;
-        envs?: string[];
-        errorOnUnmatchedPattern?: boolean;
-        extensions?: string[];
-        fix?: boolean;
-        globals?: string[];
-        ignore?: boolean;
-        ignorePath?: string;
-        ignorePattern?: string | string[];
-        useEslintrc?: boolean;
-        parser?: string;
-        parserOptions?: Linter.ParserOptions;
-        plugins?: string[];
-        resolvePluginsRelativeTo?: string;
-        rules?: {
-            [name: string]: Linter.RuleLevel | Linter.RuleLevelAndOptions;
-        };
-        rulePaths?: string[];
-        reportUnusedDisableDirectives?: boolean;
-    }
-    interface LintResult {
-        filePath: string;
-        messages: Linter.LintMessage[];
-        errorCount: number;
-        warningCount: number;
-        fixableErrorCount: number;
-        fixableWarningCount: number;
-        output?: string;
-        source?: string;
-    }
-    interface LintReport {
-        results: LintResult[];
-        errorCount: number;
-        warningCount: number;
-        fixableErrorCount: number;
-        fixableWarningCount: number;
-        usedDeprecatedRules: DeprecatedRuleUse[];
-    }
-    interface DeprecatedRuleUse {
-        ruleId: string;
-        replacedBy: string[];
-    }
-    interface LintResultData<TMessageIds extends string> {
-        rulesMeta: {
-            [ruleId: string]: RuleMetaData<TMessageIds>;
-        };
-    }
-    type Formatter = <TMessageIds extends string>(results: LintResult[], data?: LintResultData<TMessageIds>) => string;
-}
-declare const CLIEngine_base: typeof CLIEngineBase;
-/**
- * The underlying utility that runs the ESLint command line interface. This object will read the filesystem for
- * configuration and file information but will not output any results. Instead, it allows you direct access to the
- * important information so you can deal with the output yourself.
- * @deprecated use the ESLint class instead
- */
-declare class CLIEngine extends CLIEngine_base {
-}
-export { CLIEngine };
-//# sourceMappingURL=CLIEngine.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map
deleted file mode 100644
index 6d8d24e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"CLIEngine.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js
deleted file mode 100644
index 8ccf2b7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-namespace */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.CLIEngine = void 0;
-const eslint_1 = require("eslint");
-/**
- * The underlying utility that runs the ESLint command line interface. This object will read the filesystem for
- * configuration and file information but will not output any results. Instead, it allows you direct access to the
- * important information so you can deal with the output yourself.
- * @deprecated use the ESLint class instead
- */
-class CLIEngine extends eslint_1.CLIEngine {
-}
-exports.CLIEngine = CLIEngine;
-//# sourceMappingURL=CLIEngine.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map
deleted file mode 100644
index 4ac1481..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/CLIEngine.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"CLIEngine.js","sourceRoot":"","sources":["../../src/ts-eslint/CLIEngine.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAsD;AAyKtD;;;;;GAKG;AACH,MAAM,SAAU,SAAS,kBAAwC;CAAG;AAE3D,8BAAS"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts
deleted file mode 100644
index 248e8fb..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts
+++ /dev/null
@@ -1,324 +0,0 @@
-import { TSESTree, ParserServices } from '../ts-estree';
-import { ParserOptions as TSParserOptions } from './ParserOptions';
-import { RuleCreateFunction, RuleFix, RuleModule } from './Rule';
-import { Scope } from './Scope';
-import { SourceCode } from './SourceCode';
-declare class LinterBase {
-    /**
-     * Initialize the Linter.
-     * @param config the config object
-     */
-    constructor(config?: Linter.LinterOptions);
-    /**
-     * Define a new parser module
-     * @param parserId Name of the parser
-     * @param parserModule The parser object
-     */
-    defineParser(parserId: string, parserModule: Linter.ParserModule): void;
-    /**
-     * Defines a new linting rule.
-     * @param ruleId A unique rule identifier
-     * @param ruleModule Function from context to object mapping AST node types to event handlers
-     */
-    defineRule<TMessageIds extends string, TOptions extends readonly unknown[]>(ruleId: string, ruleModule: RuleModule<TMessageIds, TOptions> | RuleCreateFunction): void;
-    /**
-     * Defines many new linting rules.
-     * @param rulesToDefine map from unique rule identifier to rule
-     */
-    defineRules<TMessageIds extends string, TOptions extends readonly unknown[]>(rulesToDefine: Record<string, RuleModule<TMessageIds, TOptions> | RuleCreateFunction>): void;
-    /**
-     * Gets an object with all loaded rules.
-     * @returns All loaded rules
-     */
-    getRules(): Map<string, RuleModule<string, unknown[]>>;
-    /**
-     * Gets the `SourceCode` object representing the parsed source.
-     * @returns The `SourceCode` object.
-     */
-    getSourceCode(): SourceCode;
-    /**
-     * Verifies the text against the rules specified by the second argument.
-     * @param textOrSourceCode The text to parse or a SourceCode object.
-     * @param config An ESLintConfig instance to configure everything.
-     * @param filenameOrOptions The optional filename of the file being checked.
-     *        If this is not set, the filename will default to '<input>' in the rule context.
-     *        If this is an object, then it has "filename", "allowInlineConfig", and some properties.
-     * @returns The results as an array of messages or an empty array if no messages.
-     */
-    verify(textOrSourceCode: SourceCode | string, config: Linter.Config, filenameOrOptions?: string | Linter.VerifyOptions): Linter.LintMessage[];
-    /**
-     * Performs multiple autofix passes over the text until as many fixes as possible have been applied.
-     * @param text The source text to apply fixes to.
-     * @param config The ESLint config object to use.
-     * @param options The ESLint options object to use.
-     * @returns The result of the fix operation as returned from the SourceCodeFixer.
-     */
-    verifyAndFix(code: string, config: Linter.Config, options: Linter.FixOptions): Linter.FixReport;
-    /**
-     * The version from package.json.
-     */
-    readonly version: string;
-    /**
-     * The version from package.json.
-     */
-    static readonly version: string;
-}
-declare namespace Linter {
-    export interface LinterOptions {
-        /**
-         * path to a directory that should be considered as the current working directory.
-         */
-        cwd?: string;
-    }
-    export type Severity = 0 | 1 | 2;
-    export type SeverityString = 'off' | 'warn' | 'error';
-    export type RuleLevel = Severity | SeverityString;
-    export type RuleLevelAndOptions = [RuleLevel, ...unknown[]];
-    export type RuleEntry = RuleLevel | RuleLevelAndOptions;
-    export type RulesRecord = Partial<Record<string, RuleEntry>>;
-    interface BaseConfig {
-        $schema?: string;
-        /**
-         * The environment settings.
-         */
-        env?: {
-            [name: string]: boolean;
-        };
-        /**
-         * The path to other config files or the package name of shareable configs.
-         */
-        extends?: string | string[];
-        /**
-         * The global variable settings.
-         */
-        globals?: {
-            [name: string]: boolean;
-        };
-        /**
-         * The flag that disables directive comments.
-         */
-        noInlineConfig?: boolean;
-        /**
-         * The override settings per kind of files.
-         */
-        overrides?: ConfigOverride[];
-        /**
-         * The path to a parser or the package name of a parser.
-         */
-        parser?: string;
-        /**
-         * The parser options.
-         */
-        parserOptions?: ParserOptions;
-        /**
-         * The plugin specifiers.
-         */
-        plugins?: string[];
-        /**
-         * The processor specifier.
-         */
-        processor?: string;
-        /**
-         * The flag to report unused `eslint-disable` comments.
-         */
-        reportUnusedDisableDirectives?: boolean;
-        /**
-         * The rule settings.
-         */
-        rules?: RulesRecord;
-        /**
-         * The shared settings.
-         */
-        settings?: {
-            [name: string]: unknown;
-        };
-    }
-    export interface ConfigOverride extends BaseConfig {
-        excludedFiles?: string | string[];
-        files: string | string[];
-    }
-    export interface Config extends BaseConfig {
-        /**
-         * The glob patterns that ignore to lint.
-         */
-        ignorePatterns?: string | string[];
-        /**
-         * The root flag.
-         */
-        root?: boolean;
-    }
-    export type ParserOptions = TSParserOptions;
-    export interface VerifyOptions {
-        /**
-         * Allow/disallow inline comments' ability to change config once it is set. Defaults to true if not supplied.
-         * Useful if you want to validate JS without comments overriding rules.
-         */
-        allowInlineConfig?: boolean;
-        /**
-         * if `true` then the linter doesn't make `fix` properties into the lint result.
-         */
-        disableFixes?: boolean;
-        /**
-         * the filename of the source code.
-         */
-        filename?: string;
-        /**
-         * the predicate function that selects adopt code blocks.
-         */
-        filterCodeBlock?: (filename: string, text: string) => boolean;
-        /**
-         * postprocessor for report messages.
-         * If provided, this should accept an array of the message lists
-         * for each code block returned from the preprocessor, apply a mapping to
-         * the messages as appropriate, and return a one-dimensional array of
-         * messages.
-         */
-        postprocess?: Processor['postprocess'];
-        /**
-         * preprocessor for source text.
-         * If provided, this should accept a string of source text, and return an array of code blocks to lint.
-         */
-        preprocess?: Processor['preprocess'];
-        /**
-         * Adds reported errors for unused `eslint-disable` directives.
-         */
-        reportUnusedDisableDirectives?: boolean | SeverityString;
-    }
-    export interface FixOptions extends VerifyOptions {
-        /**
-         * Determines whether fixes should be applied.
-         */
-        fix?: boolean;
-    }
-    export interface LintSuggestion {
-        desc: string;
-        fix: RuleFix;
-        messageId?: string;
-    }
-    export interface LintMessage {
-        /**
-         * The 1-based column number.
-         */
-        column: number;
-        /**
-         * The 1-based column number of the end location.
-         */
-        endColumn?: number;
-        /**
-         * The 1-based line number of the end location.
-         */
-        endLine?: number;
-        /**
-         * If `true` then this is a fatal error.
-         */
-        fatal?: true;
-        /**
-         * Information for autofix.
-         */
-        fix?: RuleFix;
-        /**
-         * The 1-based line number.
-         */
-        line: number;
-        /**
-         * The error message.
-         */
-        message: string;
-        messageId?: string;
-        nodeType: string;
-        /**
-         * The ID of the rule which makes this message.
-         */
-        ruleId: string | null;
-        /**
-         * The severity of this message.
-         */
-        severity: Severity;
-        source: string | null;
-        /**
-         * Information for suggestions
-         */
-        suggestions?: LintSuggestion[];
-    }
-    export interface FixReport {
-        /**
-         * True, if the code was fixed
-         */
-        fixed: boolean;
-        /**
-         * Fixed code text (might be the same as input if no fixes were applied).
-         */
-        output: string;
-        /**
-         * Collection of all messages for the given code
-         */
-        messages: LintMessage[];
-    }
-    export type ParserModule = {
-        parse(text: string, options?: ParserOptions): TSESTree.Program;
-    } | {
-        parseForESLint(text: string, options?: ParserOptions): ESLintParseResult;
-    };
-    export interface ESLintParseResult {
-        ast: TSESTree.Program;
-        parserServices?: ParserServices;
-        scopeManager?: Scope.ScopeManager;
-        visitorKeys?: SourceCode.VisitorKeys;
-    }
-    export interface Processor {
-        /**
-         * The function to extract code blocks.
-         */
-        preprocess?: (text: string, filename: string) => Array<string | {
-            text: string;
-            filename: string;
-        }>;
-        /**
-         * The function to merge messages.
-         */
-        postprocess?: (messagesList: Linter.LintMessage[][], filename: string) => Linter.LintMessage[];
-        /**
-         * If `true` then it means the processor supports autofix.
-         */
-        supportsAutofix?: boolean;
-    }
-    export interface Environment {
-        /**
-         * The definition of global variables.
-         */
-        globals?: Record<string, Linter.Config>;
-        /**
-         * The parser options that will be enabled under this environment.
-         */
-        parserOptions?: ParserOptions;
-    }
-    export interface Plugin {
-        /**
-         * The definition of plugin configs.
-         */
-        configs?: Record<string, Linter.Config>;
-        /**
-         * The definition of plugin environments.
-         */
-        environments?: Record<string, Environment>;
-        /**
-         * The definition of plugin processors.
-         */
-        processors?: Record<string, Processor>;
-        /**
-         * The definition of plugin rules.
-         */
-        rules?: Record<string, RuleCreateFunction | RuleModule<string, unknown[]>>;
-    }
-    export {};
-}
-declare const Linter_base: typeof LinterBase;
-/**
- * The Linter object does the actual evaluation of the JavaScript code. It doesn't do any filesystem operations, it
- * simply parses and reports on the code. In particular, the Linter object does not process configuration objects
- * or files.
- */
-declare class Linter extends Linter_base {
-}
-export { Linter };
-//# sourceMappingURL=Linter.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map
deleted file mode 100644
index 5c2bc13..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Linter.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js
deleted file mode 100644
index 4fd16f1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-namespace */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Linter = void 0;
-const eslint_1 = require("eslint");
-/**
- * The Linter object does the actual evaluation of the JavaScript code. It doesn't do any filesystem operations, it
- * simply parses and reports on the code. In particular, the Linter object does not process configuration objects
- * or files.
- */
-class Linter extends eslint_1.Linter {
-}
-exports.Linter = Linter;
-//# sourceMappingURL=Linter.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map
deleted file mode 100644
index 8c8e207..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Linter.js","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAgD;AA8WhD;;;;GAIG;AACH,MAAM,MAAO,SAAS,eAAkC;CAAG;AAElD,wBAAM"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts
deleted file mode 100644
index d864322..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { DebugLevel, EcmaVersion, ParserOptions, SourceType, } from '@typescript-eslint/types';
-//# sourceMappingURL=ParserOptions.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map
deleted file mode 100644
index 33c6d0e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ParserOptions.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/ParserOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,0BAA0B,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js
deleted file mode 100644
index 40b03dd..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=ParserOptions.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js.map
deleted file mode 100644
index 7bd7a94..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/ParserOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ParserOptions.js","sourceRoot":"","sources":["../../src/ts-eslint/ParserOptions.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts
deleted file mode 100644
index 66a6599..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts
+++ /dev/null
@@ -1,369 +0,0 @@
-import { JSONSchema4 } from '../json-schema';
-import { ParserServices, TSESTree } from '../ts-estree';
-import { AST } from './AST';
-import { Linter } from './Linter';
-import { Scope } from './Scope';
-import { SourceCode } from './SourceCode';
-interface RuleMetaDataDocs {
-    /**
-     * The general category the rule falls within
-     */
-    category: 'Best Practices' | 'Stylistic Issues' | 'Variables' | 'Possible Errors';
-    /**
-     * Concise description of the rule
-     */
-    description: string;
-    /**
-     * The recommendation level for the rule.
-     * Used by the build tools to generate the recommended config.
-     * Set to false to not include it as a recommendation
-     */
-    recommended: 'error' | 'warn' | false;
-    /**
-     * The URL of the rule's docs
-     */
-    url: string;
-    /**
-     * Specifies whether the rule can return suggestions.
-     */
-    suggestion?: boolean;
-    /**
-     * Does the rule require us to create a full TypeScript Program in order for it
-     * to type-check code. This is only used for documentation purposes.
-     */
-    requiresTypeChecking?: boolean;
-    /**
-     * Does the rule extend (or is it based off of) an ESLint code rule?
-     * Alternately accepts the name of the base rule, in case the rule has been renamed.
-     * This is only used for documentation purposes.
-     */
-    extendsBaseRule?: boolean | string;
-}
-interface RuleMetaData<TMessageIds extends string> {
-    /**
-     * True if the rule is deprecated, false otherwise
-     */
-    deprecated?: boolean;
-    /**
-     * Documentation for the rule, unnecessary for custom rules/plugins
-     */
-    docs?: RuleMetaDataDocs;
-    /**
-     * The fixer category. Omit if there is no fixer
-     */
-    fixable?: 'code' | 'whitespace';
-    /**
-     * A map of messages which the rule can report.
-     * The key is the messageId, and the string is the parameterised error string.
-     * See: https://eslint.org/docs/developer-guide/working-with-rules#messageids
-     */
-    messages: Record<TMessageIds, string>;
-    /**
-     * The type of rule.
-     * - `"problem"` means the rule is identifying code that either will cause an error or may cause a confusing behavior. Developers should consider this a high priority to resolve.
-     * - `"suggestion"` means the rule is identifying something that could be done in a better way but no errors will occur if the code isn’t changed.
-     * - `"layout"` means the rule cares primarily about whitespace, semicolons, commas, and parentheses, all the parts of the program that determine how the code looks rather than how it executes. These rules work on parts of the code that aren’t specified in the AST.
-     */
-    type: 'suggestion' | 'problem' | 'layout';
-    /**
-     * The name of the rule this rule was replaced by, if it was deprecated.
-     */
-    replacedBy?: string[];
-    /**
-     * The options schema. Supply an empty array if there are no options.
-     */
-    schema: JSONSchema4 | JSONSchema4[];
-}
-interface RuleFix {
-    range: AST.Range;
-    text: string;
-}
-interface RuleFixer {
-    insertTextAfter(nodeOrToken: TSESTree.Node | TSESTree.Token, text: string): RuleFix;
-    insertTextAfterRange(range: AST.Range, text: string): RuleFix;
-    insertTextBefore(nodeOrToken: TSESTree.Node | TSESTree.Token, text: string): RuleFix;
-    insertTextBeforeRange(range: AST.Range, text: string): RuleFix;
-    remove(nodeOrToken: TSESTree.Node | TSESTree.Token): RuleFix;
-    removeRange(range: AST.Range): RuleFix;
-    replaceText(nodeOrToken: TSESTree.Node | TSESTree.Token, text: string): RuleFix;
-    replaceTextRange(range: AST.Range, text: string): RuleFix;
-}
-declare type ReportFixFunction = (fixer: RuleFixer) => null | RuleFix | RuleFix[] | IterableIterator<RuleFix>;
-declare type ReportSuggestionArray<TMessageIds extends string> = ReportDescriptorBase<TMessageIds>[];
-interface ReportDescriptorBase<TMessageIds extends string> {
-    /**
-     * The parameters for the message string associated with `messageId`.
-     */
-    readonly data?: Readonly<Record<string, unknown>>;
-    /**
-     * The fixer function.
-     */
-    readonly fix?: ReportFixFunction | null;
-    /**
-     * The messageId which is being reported.
-     */
-    readonly messageId: TMessageIds;
-}
-interface ReportDescriptorWithSuggestion<TMessageIds extends string> extends ReportDescriptorBase<TMessageIds> {
-    /**
-     * 6.7's Suggestions API
-     */
-    readonly suggest?: Readonly<ReportSuggestionArray<TMessageIds>> | null;
-}
-interface ReportDescriptorNodeOptionalLoc {
-    /**
-     * The Node or AST Token which the report is being attached to
-     */
-    readonly node: TSESTree.Node | TSESTree.Comment | TSESTree.Token;
-    /**
-     * An override of the location of the report
-     */
-    readonly loc?: Readonly<TSESTree.SourceLocation> | Readonly<TSESTree.LineAndColumnData>;
-}
-interface ReportDescriptorLocOnly {
-    /**
-     * An override of the location of the report
-     */
-    loc: Readonly<TSESTree.SourceLocation> | Readonly<TSESTree.LineAndColumnData>;
-}
-declare type ReportDescriptor<TMessageIds extends string> = ReportDescriptorWithSuggestion<TMessageIds> & (ReportDescriptorNodeOptionalLoc | ReportDescriptorLocOnly);
-interface RuleContext<TMessageIds extends string, TOptions extends readonly unknown[]> {
-    /**
-     * The rule ID.
-     */
-    id: string;
-    /**
-     * An array of the configured options for this rule.
-     * This array does not include the rule severity.
-     */
-    options: TOptions;
-    /**
-     * The name of the parser from configuration.
-     */
-    parserPath: string;
-    /**
-     * The parser options configured for this run
-     */
-    parserOptions: Linter.ParserOptions;
-    /**
-     * An object containing parser-provided services for rules
-     */
-    parserServices?: ParserServices;
-    /**
-     * The shared settings from configuration.
-     * We do not have any shared settings in this plugin.
-     */
-    settings: Record<string, unknown>;
-    /**
-     * Returns an array of the ancestors of the currently-traversed node, starting at
-     * the root of the AST and continuing through the direct parent of the current node.
-     * This array does not include the currently-traversed node itself.
-     */
-    getAncestors(): TSESTree.Node[];
-    /**
-     * Returns a list of variables declared by the given node.
-     * This information can be used to track references to variables.
-     */
-    getDeclaredVariables(node: TSESTree.Node): Scope.Variable[];
-    /**
-     * Returns the filename associated with the source.
-     */
-    getFilename(): string;
-    /**
-     * Returns the scope of the currently-traversed node.
-     * This information can be used track references to variables.
-     */
-    getScope(): Scope.Scope;
-    /**
-     * Returns a SourceCode object that you can use to work with the source that
-     * was passed to ESLint.
-     */
-    getSourceCode(): Readonly<SourceCode>;
-    /**
-     * Marks a variable with the given name in the current scope as used.
-     * This affects the no-unused-vars rule.
-     */
-    markVariableAsUsed(name: string): boolean;
-    /**
-     * Reports a problem in the code.
-     */
-    report(descriptor: ReportDescriptor<TMessageIds>): void;
-}
-declare type RuleFunction<T extends TSESTree.BaseNode = never> = (node: T) => void;
-interface RuleListener {
-    [nodeSelector: string]: RuleFunction | undefined;
-    ArrayExpression?: RuleFunction<TSESTree.ArrayExpression>;
-    ArrayPattern?: RuleFunction<TSESTree.ArrayPattern>;
-    ArrowFunctionExpression?: RuleFunction<TSESTree.ArrowFunctionExpression>;
-    AssignmentPattern?: RuleFunction<TSESTree.AssignmentPattern>;
-    AssignmentExpression?: RuleFunction<TSESTree.AssignmentExpression>;
-    AwaitExpression?: RuleFunction<TSESTree.AwaitExpression>;
-    BigIntLiteral?: RuleFunction<TSESTree.BigIntLiteral>;
-    BinaryExpression?: RuleFunction<TSESTree.BinaryExpression>;
-    BlockStatement?: RuleFunction<TSESTree.BlockStatement>;
-    BreakStatement?: RuleFunction<TSESTree.BreakStatement>;
-    CallExpression?: RuleFunction<TSESTree.CallExpression>;
-    CatchClause?: RuleFunction<TSESTree.CatchClause>;
-    ChainExpression?: RuleFunction<TSESTree.ChainExpression>;
-    ClassBody?: RuleFunction<TSESTree.ClassBody>;
-    ClassDeclaration?: RuleFunction<TSESTree.ClassDeclaration>;
-    ClassExpression?: RuleFunction<TSESTree.ClassExpression>;
-    ClassProperty?: RuleFunction<TSESTree.ClassProperty>;
-    Comment?: RuleFunction<TSESTree.Comment>;
-    ConditionalExpression?: RuleFunction<TSESTree.ConditionalExpression>;
-    ContinueStatement?: RuleFunction<TSESTree.ContinueStatement>;
-    DebuggerStatement?: RuleFunction<TSESTree.DebuggerStatement>;
-    Decorator?: RuleFunction<TSESTree.Decorator>;
-    DoWhileStatement?: RuleFunction<TSESTree.DoWhileStatement>;
-    EmptyStatement?: RuleFunction<TSESTree.EmptyStatement>;
-    ExportAllDeclaration?: RuleFunction<TSESTree.ExportAllDeclaration>;
-    ExportDefaultDeclaration?: RuleFunction<TSESTree.ExportDefaultDeclaration>;
-    ExportNamedDeclaration?: RuleFunction<TSESTree.ExportNamedDeclaration>;
-    ExportSpecifier?: RuleFunction<TSESTree.ExportSpecifier>;
-    ExpressionStatement?: RuleFunction<TSESTree.ExpressionStatement>;
-    ForInStatement?: RuleFunction<TSESTree.ForInStatement>;
-    ForOfStatement?: RuleFunction<TSESTree.ForOfStatement>;
-    ForStatement?: RuleFunction<TSESTree.ForStatement>;
-    FunctionDeclaration?: RuleFunction<TSESTree.FunctionDeclaration>;
-    FunctionExpression?: RuleFunction<TSESTree.FunctionExpression>;
-    Identifier?: RuleFunction<TSESTree.Identifier>;
-    IfStatement?: RuleFunction<TSESTree.IfStatement>;
-    ImportDeclaration?: RuleFunction<TSESTree.ImportDeclaration>;
-    ImportDefaultSpecifier?: RuleFunction<TSESTree.ImportDefaultSpecifier>;
-    ImportExpression?: RuleFunction<TSESTree.ImportExpression>;
-    ImportNamespaceSpecifier?: RuleFunction<TSESTree.ImportNamespaceSpecifier>;
-    ImportSpecifier?: RuleFunction<TSESTree.ImportSpecifier>;
-    JSXAttribute?: RuleFunction<TSESTree.JSXAttribute>;
-    JSXClosingElement?: RuleFunction<TSESTree.JSXClosingElement>;
-    JSXClosingFragment?: RuleFunction<TSESTree.JSXClosingFragment>;
-    JSXElement?: RuleFunction<TSESTree.JSXElement>;
-    JSXEmptyExpression?: RuleFunction<TSESTree.JSXEmptyExpression>;
-    JSXExpressionContainer?: RuleFunction<TSESTree.JSXExpressionContainer>;
-    JSXFragment?: RuleFunction<TSESTree.JSXFragment>;
-    JSXIdentifier?: RuleFunction<TSESTree.JSXIdentifier>;
-    JSXMemberExpression?: RuleFunction<TSESTree.JSXMemberExpression>;
-    JSXOpeningElement?: RuleFunction<TSESTree.JSXOpeningElement>;
-    JSXOpeningFragment?: RuleFunction<TSESTree.JSXOpeningFragment>;
-    JSXSpreadAttribute?: RuleFunction<TSESTree.JSXSpreadAttribute>;
-    JSXSpreadChild?: RuleFunction<TSESTree.JSXSpreadChild>;
-    JSXText?: RuleFunction<TSESTree.JSXText>;
-    LabeledStatement?: RuleFunction<TSESTree.LabeledStatement>;
-    Literal?: RuleFunction<TSESTree.Literal>;
-    LogicalExpression?: RuleFunction<TSESTree.LogicalExpression>;
-    MemberExpression?: RuleFunction<TSESTree.MemberExpression>;
-    MetaProperty?: RuleFunction<TSESTree.MetaProperty>;
-    MethodDefinition?: RuleFunction<TSESTree.MethodDefinition>;
-    NewExpression?: RuleFunction<TSESTree.NewExpression>;
-    ObjectExpression?: RuleFunction<TSESTree.ObjectExpression>;
-    ObjectPattern?: RuleFunction<TSESTree.ObjectPattern>;
-    Program?: RuleFunction<TSESTree.Program>;
-    Property?: RuleFunction<TSESTree.Property>;
-    RestElement?: RuleFunction<TSESTree.RestElement>;
-    ReturnStatement?: RuleFunction<TSESTree.ReturnStatement>;
-    SequenceExpression?: RuleFunction<TSESTree.SequenceExpression>;
-    SpreadElement?: RuleFunction<TSESTree.SpreadElement>;
-    Super?: RuleFunction<TSESTree.Super>;
-    SwitchCase?: RuleFunction<TSESTree.SwitchCase>;
-    SwitchStatement?: RuleFunction<TSESTree.SwitchStatement>;
-    TaggedTemplateExpression?: RuleFunction<TSESTree.TaggedTemplateExpression>;
-    TemplateElement?: RuleFunction<TSESTree.TemplateElement>;
-    TemplateLiteral?: RuleFunction<TSESTree.TemplateLiteral>;
-    ThisExpression?: RuleFunction<TSESTree.ThisExpression>;
-    ThrowStatement?: RuleFunction<TSESTree.ThrowStatement>;
-    Token?: RuleFunction<TSESTree.Token>;
-    TryStatement?: RuleFunction<TSESTree.TryStatement>;
-    TSAbstractClassProperty?: RuleFunction<TSESTree.TSAbstractClassProperty>;
-    TSAbstractKeyword?: RuleFunction<TSESTree.TSAbstractKeyword>;
-    TSAbstractMethodDefinition?: RuleFunction<TSESTree.TSAbstractMethodDefinition>;
-    TSAnyKeyword?: RuleFunction<TSESTree.TSAnyKeyword>;
-    TSArrayType?: RuleFunction<TSESTree.TSArrayType>;
-    TSAsExpression?: RuleFunction<TSESTree.TSAsExpression>;
-    TSAsyncKeyword?: RuleFunction<TSESTree.TSAsyncKeyword>;
-    TSBigIntKeyword?: RuleFunction<TSESTree.TSBigIntKeyword>;
-    TSBooleanKeyword?: RuleFunction<TSESTree.TSBooleanKeyword>;
-    TSCallSignatureDeclaration?: RuleFunction<TSESTree.TSCallSignatureDeclaration>;
-    TSClassImplements?: RuleFunction<TSESTree.TSClassImplements>;
-    TSConditionalType?: RuleFunction<TSESTree.TSConditionalType>;
-    TSConstructorType?: RuleFunction<TSESTree.TSConstructorType>;
-    TSConstructSignatureDeclaration?: RuleFunction<TSESTree.TSConstructSignatureDeclaration>;
-    TSDeclareKeyword?: RuleFunction<TSESTree.TSDeclareKeyword>;
-    TSDeclareFunction?: RuleFunction<TSESTree.TSDeclareFunction>;
-    TSEmptyBodyFunctionExpression?: RuleFunction<TSESTree.TSEmptyBodyFunctionExpression>;
-    TSEnumDeclaration?: RuleFunction<TSESTree.TSEnumDeclaration>;
-    TSEnumMember?: RuleFunction<TSESTree.TSEnumMember>;
-    TSExportAssignment?: RuleFunction<TSESTree.TSExportAssignment>;
-    TSExportKeyword?: RuleFunction<TSESTree.TSExportKeyword>;
-    TSExternalModuleReference?: RuleFunction<TSESTree.TSExternalModuleReference>;
-    TSFunctionType?: RuleFunction<TSESTree.TSFunctionType>;
-    TSImportEqualsDeclaration?: RuleFunction<TSESTree.TSImportEqualsDeclaration>;
-    TSImportType?: RuleFunction<TSESTree.TSImportType>;
-    TSIndexedAccessType?: RuleFunction<TSESTree.TSIndexedAccessType>;
-    TSIndexSignature?: RuleFunction<TSESTree.TSIndexSignature>;
-    TSInferType?: RuleFunction<TSESTree.TSInferType>;
-    TSInterfaceBody?: RuleFunction<TSESTree.TSInterfaceBody>;
-    TSInterfaceDeclaration?: RuleFunction<TSESTree.TSInterfaceDeclaration>;
-    TSInterfaceHeritage?: RuleFunction<TSESTree.TSInterfaceHeritage>;
-    TSIntersectionType?: RuleFunction<TSESTree.TSIntersectionType>;
-    TSLiteralType?: RuleFunction<TSESTree.TSLiteralType>;
-    TSMappedType?: RuleFunction<TSESTree.TSMappedType>;
-    TSMethodSignature?: RuleFunction<TSESTree.TSMethodSignature>;
-    TSModuleBlock?: RuleFunction<TSESTree.TSModuleBlock>;
-    TSModuleDeclaration?: RuleFunction<TSESTree.TSModuleDeclaration>;
-    TSNamespaceExportDeclaration?: RuleFunction<TSESTree.TSNamespaceExportDeclaration>;
-    TSNeverKeyword?: RuleFunction<TSESTree.TSNeverKeyword>;
-    TSNonNullExpression?: RuleFunction<TSESTree.TSNonNullExpression>;
-    TSNullKeyword?: RuleFunction<TSESTree.TSNullKeyword>;
-    TSNumberKeyword?: RuleFunction<TSESTree.TSNumberKeyword>;
-    TSObjectKeyword?: RuleFunction<TSESTree.TSObjectKeyword>;
-    TSOptionalType?: RuleFunction<TSESTree.TSOptionalType>;
-    TSParameterProperty?: RuleFunction<TSESTree.TSParameterProperty>;
-    TSParenthesizedType?: RuleFunction<TSESTree.TSParenthesizedType>;
-    TSPrivateKeyword?: RuleFunction<TSESTree.TSPrivateKeyword>;
-    TSPropertySignature?: RuleFunction<TSESTree.TSPropertySignature>;
-    TSProtectedKeyword?: RuleFunction<TSESTree.TSProtectedKeyword>;
-    TSPublicKeyword?: RuleFunction<TSESTree.TSPublicKeyword>;
-    TSQualifiedName?: RuleFunction<TSESTree.TSQualifiedName>;
-    TSReadonlyKeyword?: RuleFunction<TSESTree.TSReadonlyKeyword>;
-    TSRestType?: RuleFunction<TSESTree.TSRestType>;
-    TSStaticKeyword?: RuleFunction<TSESTree.TSStaticKeyword>;
-    TSStringKeyword?: RuleFunction<TSESTree.TSStringKeyword>;
-    TSSymbolKeyword?: RuleFunction<TSESTree.TSSymbolKeyword>;
-    TSThisType?: RuleFunction<TSESTree.TSThisType>;
-    TSTupleType?: RuleFunction<TSESTree.TSTupleType>;
-    TSTypeAliasDeclaration?: RuleFunction<TSESTree.TSTypeAliasDeclaration>;
-    TSTypeAnnotation?: RuleFunction<TSESTree.TSTypeAnnotation>;
-    TSTypeAssertion?: RuleFunction<TSESTree.TSTypeAssertion>;
-    TSTypeLiteral?: RuleFunction<TSESTree.TSTypeLiteral>;
-    TSTypeOperator?: RuleFunction<TSESTree.TSTypeOperator>;
-    TSTypeParameter?: RuleFunction<TSESTree.TSTypeParameter>;
-    TSTypeParameterDeclaration?: RuleFunction<TSESTree.TSTypeParameterDeclaration>;
-    TSTypeParameterInstantiation?: RuleFunction<TSESTree.TSTypeParameterInstantiation>;
-    TSTypePredicate?: RuleFunction<TSESTree.TSTypePredicate>;
-    TSTypeQuery?: RuleFunction<TSESTree.TSTypeQuery>;
-    TSTypeReference?: RuleFunction<TSESTree.TSTypeReference>;
-    TSUndefinedKeyword?: RuleFunction<TSESTree.TSUndefinedKeyword>;
-    TSUnionType?: RuleFunction<TSESTree.TSUnionType>;
-    TSUnknownKeyword?: RuleFunction<TSESTree.TSUnknownKeyword>;
-    TSVoidKeyword?: RuleFunction<TSESTree.TSVoidKeyword>;
-    UnaryExpression?: RuleFunction<TSESTree.UnaryExpression>;
-    UpdateExpression?: RuleFunction<TSESTree.UpdateExpression>;
-    VariableDeclaration?: RuleFunction<TSESTree.VariableDeclaration>;
-    VariableDeclarator?: RuleFunction<TSESTree.VariableDeclarator>;
-    WhileStatement?: RuleFunction<TSESTree.WhileStatement>;
-    WithStatement?: RuleFunction<TSESTree.WithStatement>;
-    YieldExpression?: RuleFunction<TSESTree.YieldExpression>;
-}
-interface RuleModule<TMessageIds extends string, TOptions extends readonly unknown[], TRuleListener extends RuleListener = RuleListener> {
-    /**
-     * Metadata about the rule
-     */
-    meta: RuleMetaData<TMessageIds>;
-    /**
-     * Function which returns an object with methods that ESLint calls to “visit”
-     * nodes while traversing the abstract syntax tree.
-     */
-    create(context: Readonly<RuleContext<TMessageIds, TOptions>>): TRuleListener;
-}
-declare type RuleCreateFunction = (context: Readonly<RuleContext<never, unknown[]>>) => RuleListener;
-export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, };
-//# sourceMappingURL=Rule.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map
deleted file mode 100644
index 0e858f8..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js
deleted file mode 100644
index 8113a7e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=Rule.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js.map
deleted file mode 100644
index 88c1f03..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rule.js","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts
deleted file mode 100644
index 2276560..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts
+++ /dev/null
@@ -1,137 +0,0 @@
-import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree';
-import { ParserOptions } from './ParserOptions';
-import { RuleModule } from './Rule';
-interface ValidTestCase<TOptions extends Readonly<unknown[]>> {
-    /**
-     * Code for the test case.
-     */
-    readonly code: string;
-    /**
-     * Environments for the test case.
-     */
-    readonly env?: Readonly<Record<string, boolean>>;
-    /**
-     * The fake filename for the test case. Useful for rules that make assertion about filenames.
-     */
-    readonly filename?: string;
-    /**
-     * The additional global variables.
-     */
-    readonly globals?: Record<string, 'readonly' | 'writable' | 'off'>;
-    /**
-     * Options for the test case.
-     */
-    readonly options?: Readonly<TOptions>;
-    /**
-     * The absolute path for the parser.
-     */
-    readonly parser?: string;
-    /**
-     * Options for the parser.
-     */
-    readonly parserOptions?: Readonly<ParserOptions>;
-    /**
-     * Settings for the test case.
-     */
-    readonly settings?: Readonly<Record<string, unknown>>;
-}
-interface SuggestionOutput<TMessageIds extends string> {
-    /**
-     * Reported message ID.
-     */
-    readonly messageId: TMessageIds;
-    /**
-     * The data used to fill the message template.
-     */
-    readonly data?: Readonly<Record<string, unknown>>;
-    /**
-     * NOTE: Suggestions will be applied as a stand-alone change, without triggering multi-pass fixes.
-     * Each individual error has its own suggestion, so you have to show the correct, _isolated_ output for each suggestion.
-     */
-    readonly output: string;
-}
-interface InvalidTestCase<TMessageIds extends string, TOptions extends Readonly<unknown[]>> extends ValidTestCase<TOptions> {
-    /**
-     * Expected errors.
-     */
-    readonly errors: TestCaseError<TMessageIds>[];
-    /**
-     * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested.
-     */
-    readonly output?: string | null;
-}
-interface TestCaseError<TMessageIds extends string> {
-    /**
-     * The 1-based column number of the reported start location.
-     */
-    readonly column?: number;
-    /**
-     * The data used to fill the message template.
-     */
-    readonly data?: Readonly<Record<string, unknown>>;
-    /**
-     * The 1-based column number of the reported end location.
-     */
-    readonly endColumn?: number;
-    /**
-     * The 1-based line number of the reported end location.
-     */
-    readonly endLine?: number;
-    /**
-     * The 1-based line number of the reported start location.
-     */
-    readonly line?: number;
-    /**
-     * Reported message ID.
-     */
-    readonly messageId: TMessageIds;
-    /**
-     * Reported suggestions.
-     */
-    readonly suggestions?: SuggestionOutput<TMessageIds>[] | null;
-    /**
-     * The type of the reported AST node.
-     */
-    readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES;
-}
-interface RunTests<TMessageIds extends string, TOptions extends Readonly<unknown[]>> {
-    readonly valid: (ValidTestCase<TOptions> | string)[];
-    readonly invalid: InvalidTestCase<TMessageIds, TOptions>[];
-}
-interface RuleTesterConfig {
-    readonly parser: string;
-    readonly parserOptions?: Readonly<ParserOptions>;
-}
-declare class RuleTesterBase {
-    /**
-     * Creates a new instance of RuleTester.
-     * @param testerConfig extra configuration for the tester
-     */
-    constructor(testerConfig?: RuleTesterConfig);
-    /**
-     * Adds a new rule test to execute.
-     * @param ruleName The name of the rule to run.
-     * @param rule The rule to test.
-     * @param test The collection of tests to run.
-     */
-    run<TMessageIds extends string, TOptions extends Readonly<unknown[]>>(ruleName: string, rule: RuleModule<TMessageIds, TOptions>, tests: RunTests<TMessageIds, TOptions>): void;
-    /**
-     * If you supply a value to this property, the rule tester will call this instead of using the version defined on
-     * the global namespace.
-     * @param text a string describing the rule
-     * @param callback the test callback
-     */
-    static describe?: (text: string, callback: () => void) => void;
-    /**
-     * If you supply a value to this property, the rule tester will call this instead of using the version defined on
-     * the global namespace.
-     * @param text a string describing the test case
-     * @param callback the test callback
-     */
-    static it?: (text: string, callback: () => void) => void;
-}
-declare const RuleTester_base: typeof RuleTesterBase;
-declare class RuleTester extends RuleTester_base {
-}
-export { InvalidTestCase, SuggestionOutput, RuleTester, RuleTesterConfig, RunTests, TestCaseError, ValidTestCase, };
-//# sourceMappingURL=RuleTester.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map
deleted file mode 100644
index 045a474..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js
deleted file mode 100644
index f31d0a6..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.RuleTester = void 0;
-const eslint_1 = require("eslint");
-class RuleTester extends eslint_1.RuleTester {
-}
-exports.RuleTester = RuleTester;
-//# sourceMappingURL=RuleTester.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map
deleted file mode 100644
index 4fe5fc6..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":";;;AAAA,mCAAwD;AAiKxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAKrE,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts
deleted file mode 100644
index 004dec4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import * as scopeManager from '@typescript-eslint/scope-manager';
-import { TSESTree } from '@typescript-eslint/types';
-declare namespace Scope {
-    class ESLintScopeVariable {
-        readonly defs: Definition[];
-        readonly identifiers: TSESTree.Identifier[];
-        readonly name: string;
-        readonly references: Reference[];
-        readonly scope: Scope;
-        /**
-         * Written to by ESLint.
-         * If this key exists, this variable is a global variable added by ESLint.
-         * If this is `true`, this variable can be assigned arbitrary values.
-         * If this is `false`, this variable is readonly.
-         */
-        writeable?: boolean;
-        /**
-         * Written to by ESLint.
-         * This property is undefined if there are no globals directive comments.
-         * The array of globals directive comments which defined this global variable in the source code file.
-         */
-        eslintExplicitGlobal?: boolean;
-        /**
-         * Written to by ESLint.
-         * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments.
-         */
-        eslintImplicitGlobalSetting?: 'readonly' | 'writable';
-        /**
-         * Written to by ESLint.
-         * If this key exists, it is a global variable added by ESLint.
-         * If `true`, this global variable was defined by a globals directive comment in the source code file.
-         */
-        eslintExplicitGlobalComments?: TSESTree.Comment[];
-    }
-    export type ScopeManager = scopeManager.ScopeManager;
-    export type Reference = scopeManager.Reference;
-    export type Variable = scopeManager.Variable | ESLintScopeVariable;
-    export type Scope = scopeManager.Scope;
-    export type DefinitionType = scopeManager.Definition;
-    export type Definition = scopeManager.Definition;
-    export {};
-}
-export { Scope };
-//# sourceMappingURL=Scope.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map
deleted file mode 100644
index 3464622..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,kBAAU,KAAK,CAAC;IAGd,MAAc,mBAAmB;QAC/B,SAAgB,IAAI,EAAE,UAAU,EAAE,CAAC;QACnC,SAAgB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,SAAgB,IAAI,EAAE,MAAM,CAAC;QAC7B,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAC;QACxC,SAAgB,KAAK,EAAE,KAAK,CAAC;QAE7B;;;;;WAKG;QACI,SAAS,CAAC,EAAE,OAAO,CAAC;QAE3B;;;;WAIG;QACI,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAEtC;;;WAGG;QACI,2BAA2B,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;QAE7D;;;;WAIG;QACI,4BAA4B,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC1D;IAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAC/C,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACnE,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAEvC,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC;IACrD,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;;CAClD;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js
deleted file mode 100644
index 3d9d67b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-namespace */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Scope = void 0;
-var Scope;
-(function (Scope) {
-})(Scope || (Scope = {}));
-exports.Scope = Scope;
-//# sourceMappingURL=Scope.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map
deleted file mode 100644
index bf72f5e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,IAAU,KAAK,CA8Cd;AA9CD,WAAU,KAAK;AA8Cf,CAAC,EA9CS,KAAK,KAAL,KAAK,QA8Cd;AAEQ,sBAAK"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts
deleted file mode 100644
index 5d5b193..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts
+++ /dev/null
@@ -1,350 +0,0 @@
-import { ParserServices, TSESTree } from '../ts-estree';
-import { Scope } from './Scope';
-declare class TokenStore {
-    /**
-     * Checks whether any comments exist or not between the given 2 nodes.
-     * @param left The node to check.
-     * @param right The node to check.
-     * @returns `true` if one or more comments exist.
-     */
-    commentsExistBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token): boolean;
-    /**
-     * Gets all comment tokens directly after the given node or token.
-     * @param nodeOrToken The AST node or token to check for adjacent comment tokens.
-     * @returns An array of comments in occurrence order.
-     */
-    getCommentsAfter(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
-    /**
-     * Gets all comment tokens directly before the given node or token.
-     * @param nodeOrToken The AST node or token to check for adjacent comment tokens.
-     * @returns An array of comments in occurrence order.
-     */
-    getCommentsBefore(nodeOrToken: TSESTree.Node | TSESTree.Token): TSESTree.Comment[];
-    /**
-     * Gets all comment tokens inside the given node.
-     * @param node The AST node to get the comments for.
-     * @returns An array of comments in occurrence order.
-     */
-    getCommentsInside(node: TSESTree.Node): TSESTree.Comment[];
-    /**
-     * Gets the first token of the given node.
-     * @param node The AST node.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns An object representing the token.
-     */
-    getFirstToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the first token between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns An object representing the token.
-     */
-    getFirstTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the first `count` tokens of the given node.
-     * @param node The AST node.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens.
-     */
-    getFirstTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the first `count` tokens between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens between left and right.
-     */
-    getFirstTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the last token of the given node.
-     * @param node The AST node.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns An object representing the token.
-     */
-    getLastToken<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the last token between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns An object representing the token.
-     */
-    getLastTokenBetween<T extends SourceCode.CursorWithSkipOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the last `count` tokens of the given node.
-     * @param node The AST node.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens.
-     */
-    getLastTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the last `count` tokens between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens between left and right.
-     */
-    getLastTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the token that follows a given node or token.
-     * @param node The AST node or token.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns An object representing the token.
-     */
-    getTokenAfter<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the token that precedes a given node or token.
-     * @param node The AST node or token.
-     * @param options The option object
-     * @returns An object representing the token.
-     */
-    getTokenBefore<T extends SourceCode.CursorWithSkipOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets the token starting at the specified index.
-     * @param offset Index of the start of the token's range.
-     * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`.
-     * @returns The token starting at index, or null if no such token.
-     */
-    getTokenByRangeStart<T extends {
-        includeComments?: boolean;
-    }>(offset: number, options?: T): SourceCode.ReturnTypeFromOptions<T> | null;
-    /**
-     * Gets all tokens that are related to the given node.
-     * @param node The AST node.
-     * @param beforeCount The number of tokens before the node to retrieve.
-     * @param afterCount The number of tokens after the node to retrieve.
-     * @returns Array of objects representing tokens.
-     */
-    getTokens(node: TSESTree.Node, beforeCount?: number, afterCount?: number): TSESTree.Token[];
-    /**
-     * Gets all tokens that are related to the given node.
-     * @param node The AST node.
-     * @param options The option object. If this is a function then it's `options.filter`.
-     * @returns Array of objects representing tokens.
-     */
-    getTokens<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node, options: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the `count` tokens that follows a given node or token.
-     * @param node The AST node.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens.
-     */
-    getTokensAfter<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets the `count` tokens that precedes a given node or token.
-     * @param node The AST node.
-     * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`.
-     * @returns Tokens.
-     */
-    getTokensBefore<T extends SourceCode.CursorWithCountOptions>(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets all of the tokens between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param options The option object. If this is a function then it's `options.filter`.
-     * @returns Tokens between left and right.
-     */
-    getTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: T): SourceCode.ReturnTypeFromOptions<T>[];
-    /**
-     * Gets all of the tokens between two non-overlapping nodes.
-     * @param left Node before the desired token range.
-     * @param right Node after the desired token range.
-     * @param padding Number of extra tokens on either side of center.
-     * @returns Tokens between left and right.
-     */
-    getTokensBetween<T extends SourceCode.CursorWithCountOptions>(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: number): SourceCode.ReturnTypeFromOptions<T>[];
-}
-declare class SourceCodeBase extends TokenStore {
-    /**
-     * Represents parsed source code.
-     * @param text The source code text.
-     * @param ast The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
-     */
-    constructor(text: string, ast: SourceCode.Program);
-    /**
-     * Represents parsed source code.
-     * @param config The config object.
-     */
-    constructor(config: SourceCode.SourceCodeConfig);
-    /**
-     * The parsed AST for the source code.
-     */
-    ast: SourceCode.Program;
-    /**
-     * Retrieves an array containing all comments in the source code.
-     * @returns An array of comment nodes.
-     */
-    getAllComments(): TSESTree.Comment[];
-    /**
-     * Gets all comments for the given node.
-     * @param node The AST node to get the comments for.
-     * @returns An object containing a leading and trailing array of comments indexed by their position.
-     */
-    getComments(node: TSESTree.Node): {
-        leading: TSESTree.Comment[];
-        trailing: TSESTree.Comment[];
-    };
-    /**
-     * Converts a (line, column) pair into a range index.
-     * @param loc A line/column location
-     * @returns The range index of the location in the file.
-     */
-    getIndexFromLoc(location: TSESTree.LineAndColumnData): number;
-    /**
-     * Gets the entire source text split into an array of lines.
-     * @returns The source text as an array of lines.
-     */
-    getLines(): string[];
-    /**
-     * Converts a source text index into a (line, column) pair.
-     * @param index The index of a character in a file
-     * @returns A {line, column} location object with a 0-indexed column
-     */
-    getLocFromIndex(index: number): TSESTree.LineAndColumnData;
-    /**
-     * Gets the deepest node containing a range index.
-     * @param index Range index of the desired node.
-     * @returns The node if found or `null` if not found.
-     */
-    getNodeByRangeIndex(index: number): TSESTree.Node | null;
-    /**
-     * Gets the source code for the given node.
-     * @param node The AST node to get the text for.
-     * @param beforeCount The number of characters before the node to retrieve.
-     * @param afterCount The number of characters after the node to retrieve.
-     * @returns The text representing the AST node.
-     */
-    getText(node?: TSESTree.Node, beforeCount?: number, afterCount?: number): string;
-    /**
-     * The flag to indicate that the source code has Unicode BOM.
-     */
-    hasBOM: boolean;
-    /**
-     * Determines if two nodes or tokens have at least one whitespace character
-     * between them. Order does not matter. Returns false if the given nodes or
-     * tokens overlap.
-     * This was added in v6.7.0.
-     * @since 6.7.0
-     * @param first The first node or token to check between.
-     * @param second The second node or token to check between.
-     * @returns True if there is a whitespace character between any of the tokens found between the two given nodes or tokens.
-     */
-    isSpaceBetween?(first: TSESTree.Token | TSESTree.Comment | TSESTree.Node, second: TSESTree.Token | TSESTree.Comment | TSESTree.Node): boolean;
-    /**
-     * Determines if two nodes or tokens have at least one whitespace character
-     * between them. Order does not matter. Returns false if the given nodes or
-     * tokens overlap.
-     * For backward compatibility, this method returns true if there are
-     * `JSXText` tokens that contain whitespace between the two.
-     * @param first The first node or token to check between.
-     * @param second The second node or token to check between.
-     * @returns {boolean} True if there is a whitespace character between
-     * any of the tokens found between the two given nodes or tokens.
-     * @deprecated in favor of isSpaceBetween
-     */
-    isSpaceBetweenTokens(first: TSESTree.Token, second: TSESTree.Token): boolean;
-    /**
-     * The source code split into lines according to ECMA-262 specification.
-     * This is done to avoid each rule needing to do so separately.
-     */
-    lines: string[];
-    /**
-     * The indexes in `text` that each line starts
-     */
-    lineStartIndices: number[];
-    /**
-     * The parser services of this source code.
-     */
-    parserServices: ParserServices;
-    /**
-     * The scope of this source code.
-     */
-    scopeManager: Scope.ScopeManager | null;
-    /**
-     * The original text source code. BOM was stripped from this text.
-     */
-    text: string;
-    /**
-     * All of the tokens and comments in the AST.
-     */
-    tokensAndComments: (TSESTree.Comment | TSESTree.Token)[];
-    /**
-     * The visitor keys to traverse AST.
-     */
-    visitorKeys: SourceCode.VisitorKeys;
-    /**
-     * Split the source code into multiple lines based on the line delimiters.
-     * @param text Source code as a string.
-     * @returns Array of source code lines.
-     */
-    static splitLines(text: string): string[];
-}
-declare namespace SourceCode {
-    interface Program extends TSESTree.Program {
-        comments: TSESTree.Comment[];
-        tokens: TSESTree.Token[];
-    }
-    interface SourceCodeConfig {
-        /**
-         * The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
-         */
-        ast: Program;
-        /**
-         * The parser services.
-         */
-        parserServices: ParserServices | null;
-        /**
-         * The scope of this source code.
-         */
-        scopeManager: Scope.ScopeManager | null;
-        /**
-         * The source code text.
-         */
-        text: string;
-        /**
-         * The visitor keys to traverse AST.
-         */
-        visitorKeys: VisitorKeys | null;
-    }
-    interface VisitorKeys {
-        [nodeType: string]: string[];
-    }
-    type FilterPredicate = (tokenOrComment: TSESTree.Token | TSESTree.Comment) => boolean;
-    type ReturnTypeFromOptions<T> = T extends {
-        includeComments: true;
-    } ? TSESTree.Token : Exclude<TSESTree.Token, TSESTree.Comment>;
-    type CursorWithSkipOptions = number | FilterPredicate | {
-        /**
-         * The predicate function to choose tokens.
-         */
-        filter?: FilterPredicate;
-        /**
-         * The flag to iterate comments as well.
-         */
-        includeComments?: boolean;
-        /**
-         * The count of tokens the cursor skips.
-         */
-        skip?: number;
-    };
-    type CursorWithCountOptions = number | FilterPredicate | {
-        /**
-         * The predicate function to choose tokens.
-         */
-        filter?: FilterPredicate;
-        /**
-         * The flag to iterate comments as well.
-         */
-        includeComments?: boolean;
-        /**
-         * The maximum count of tokens the cursor iterates.
-         */
-        count?: number;
-    };
-}
-declare const SourceCode_base: typeof SourceCodeBase;
-declare class SourceCode extends SourceCode_base {
-}
-export { SourceCode };
-//# sourceMappingURL=SourceCode.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map
deleted file mode 100644
index 18f49a7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SourceCode.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js
deleted file mode 100644
index 8e029b1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-/* eslint-disable @typescript-eslint/no-namespace */
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SourceCode = void 0;
-const eslint_1 = require("eslint");
-class SourceCode extends eslint_1.SourceCode {
-}
-exports.SourceCode = SourceCode;
-//# sourceMappingURL=SourceCode.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map
deleted file mode 100644
index 60f58ea..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SourceCode.js","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAwD;AAubxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAE9D,gCAAU"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts
deleted file mode 100644
index 05d889d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export * from './AST';
-export * from './CLIEngine';
-export * from './ESLint';
-export * from './Linter';
-export * from './ParserOptions';
-export * from './Rule';
-export * from './RuleTester';
-export * from './Scope';
-export * from './SourceCode';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map
deleted file mode 100644
index 6b3df41..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js
deleted file mode 100644
index 4125958..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-__exportStar(require("./AST"), exports);
-__exportStar(require("./CLIEngine"), exports);
-__exportStar(require("./ESLint"), exports);
-__exportStar(require("./Linter"), exports);
-__exportStar(require("./ParserOptions"), exports);
-__exportStar(require("./Rule"), exports);
-__exportStar(require("./RuleTester"), exports);
-__exportStar(require("./Scope"), exports);
-__exportStar(require("./SourceCode"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map
deleted file mode 100644
index 7ffb898..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,+CAA6B"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/node_modules/.bin/eslint b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/node_modules/.bin/eslint
deleted file mode 120000
index f502c26..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/node_modules/.bin/eslint
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../../eslint/bin/eslint.js
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/package.json b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/package.json
deleted file mode 100644
index 0217ca1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/experimental-utils/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-  "name": "@typescript-eslint/experimental-utils",
-  "version": "4.1.0",
-  "description": "(Experimental) Utilities for working with TypeScript + ESLint together",
-  "keywords": [
-    "eslint",
-    "typescript",
-    "estree"
-  ],
-  "engines": {
-    "node": "^10.12.0 || >=12.0.0"
-  },
-  "files": [
-    "dist",
-    "_ts3.4",
-    "package.json",
-    "README.md",
-    "LICENSE"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/typescript-eslint/typescript-eslint.git",
-    "directory": "packages/experimental-utils"
-  },
-  "bugs": {
-    "url": "https://github.com/typescript-eslint/typescript-eslint/issues"
-  },
-  "license": "MIT",
-  "main": "dist/index.js",
-  "types": "dist/index.d.ts",
-  "scripts": {
-    "build": "tsc -b tsconfig.build.json",
-    "postbuild": "downlevel-dts dist _ts3.4/dist",
-    "clean": "tsc -b tsconfig.build.json --clean",
-    "postclean": "rimraf dist && rimraf _ts3.4",
-    "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
-    "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'",
-    "test": "jest --coverage",
-    "typecheck": "tsc -p tsconfig.json --noEmit"
-  },
-  "dependencies": {
-    "@types/json-schema": "^7.0.3",
-    "@typescript-eslint/scope-manager": "4.1.0",
-    "@typescript-eslint/types": "4.1.0",
-    "@typescript-eslint/typescript-estree": "4.1.0",
-    "eslint-scope": "^5.0.0",
-    "eslint-utils": "^2.0.0"
-  },
-  "peerDependencies": {
-    "eslint": "*"
-  },
-  "devDependencies": {
-    "typescript": "*"
-  },
-  "funding": {
-    "type": "opencollective",
-    "url": "https://opencollective.com/typescript-eslint"
-  },
-  "typesVersions": {
-    "<3.8": {
-      "*": [
-        "_ts3.4/*"
-      ]
-    }
-  },
-  "gitHead": "00a24706222254774121ee62038e67d0efa993e7"
-}
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md
deleted file mode 100644
index 284d90a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md
+++ /dev/null
@@ -1,925 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-# [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [4.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.0...v4.0.1) (2020-08-31)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [4.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.1...v4.0.0) (2020-08-31)
-
-
-### Bug Fixes
-
-* correct decorator traversal for AssignmentPattern ([#2375](https://github.com/typescript-eslint/typescript-eslint/issues/2375)) ([d738fa4](https://github.com/typescript-eslint/typescript-eslint/commit/d738fa4eff0a5c4cfc9b30b1c0502f8d1e78d7b6))
-* **typescript-estree:** correct ChainExpression interaction with parentheses and non-nulls ([#2380](https://github.com/typescript-eslint/typescript-eslint/issues/2380)) ([762bc99](https://github.com/typescript-eslint/typescript-eslint/commit/762bc99584ede4d0b8099a743991e957aec86aa8))
-
-
-### Features
-
-* support ESTree optional chaining representation ([#2308](https://github.com/typescript-eslint/typescript-eslint/issues/2308)) ([e9d2ab6](https://github.com/typescript-eslint/typescript-eslint/commit/e9d2ab638b6767700b52797e74b814ea059beaae))
-* **typescript-estree:** switch to globby ([#2418](https://github.com/typescript-eslint/typescript-eslint/issues/2418)) ([3a7ec9b](https://github.com/typescript-eslint/typescript-eslint/commit/3a7ec9bcf1873a99c6da2f19ade8ab4763b4793c)), closes [#2398](https://github.com/typescript-eslint/typescript-eslint/issues/2398)
-
-
-### BREAKING CHANGES
-
-* **typescript-estree:** - removes the ability to supply a `RegExp` to `projectFolderIgnoreList`, and changes the meaning of the string value from a regex to a glob.
-* - Removed decorators property from several Nodes that could never semantically have them (FunctionDeclaration, TSEnumDeclaration, and TSInterfaceDeclaration)
-- Removed AST_NODE_TYPES.Import. This is a minor breaking change as the node type that used this was removed ages ago.
-
-
-
-
-
-## [3.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.10.0...v3.10.1) (2020-08-25)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [3.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.1...v3.10.0) (2020-08-24)
-
-
-### Bug Fixes
-
-* **typescript-estree:** ts.NamedTupleMember workaround for <TS4.0 ([#2405](https://github.com/typescript-eslint/typescript-eslint/issues/2405)) ([b62331a](https://github.com/typescript-eslint/typescript-eslint/commit/b62331ad02dcff3236e18f10eb92d59e7371d4c3))
-
-
-### Features
-
-* **typescript-estree:** update allowed TS version range ([#2419](https://github.com/typescript-eslint/typescript-eslint/issues/2419)) ([e6be621](https://github.com/typescript-eslint/typescript-eslint/commit/e6be62128b3a98541fe590512892c4b501914e46))
-
-
-
-
-
-## [3.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.9.0...v3.9.1) (2020-08-17)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [3.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.8.0...v3.9.0) (2020-08-10)
-
-
-### Features
-
-* **typescript-estree:** support TSv4 labelled tuple members ([#2378](https://github.com/typescript-eslint/typescript-eslint/issues/2378)) ([00d84ff](https://github.com/typescript-eslint/typescript-eslint/commit/00d84ffbcbe9d0ec98bdb2f2ce59959a27ce4dbe))
-
-
-
-
-
-# [3.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.1...v3.8.0) (2020-08-03)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [3.7.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.7.0...v3.7.1) (2020-07-27)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct AST regression introduced by TS4.0 upgrade ([#2316](https://github.com/typescript-eslint/typescript-eslint/issues/2316)) ([d7fefba](https://github.com/typescript-eslint/typescript-eslint/commit/d7fefba3741a526ff2b58dd713995c3ee5603962))
-
-
-
-
-
-# [3.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.1...v3.7.0) (2020-07-20)
-
-
-### Features
-
-* **typescript-estree:** support short-circuiting assignment operators ([#2307](https://github.com/typescript-eslint/typescript-eslint/issues/2307)) ([2c90d9f](https://github.com/typescript-eslint/typescript-eslint/commit/2c90d9fa3aa5ebd7db697dddb7762bca2dd0e06b))
-* **typescript-estree:** support type annotations on catch clauses ([#2306](https://github.com/typescript-eslint/typescript-eslint/issues/2306)) ([b5afe9c](https://github.com/typescript-eslint/typescript-eslint/commit/b5afe9c560b9f38c8dffc312a600db30944129c8))
-
-
-
-
-
-## [3.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.6.0...v3.6.1) (2020-07-13)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [3.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.5.0...v3.6.0) (2020-07-06)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [3.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.4.0...v3.5.0) (2020-06-29)
-
-
-### Bug Fixes
-
-* **typescript-estree:** forward compatibility for new compound assignment operators ([#2253](https://github.com/typescript-eslint/typescript-eslint/issues/2253)) ([ba41680](https://github.com/typescript-eslint/typescript-eslint/commit/ba41680f2a25b1aa4d05c2d4b132ac73a6faefbd))
-
-
-### Features
-
-* add package scope-manager ([#1939](https://github.com/typescript-eslint/typescript-eslint/issues/1939)) ([682eb7e](https://github.com/typescript-eslint/typescript-eslint/commit/682eb7e009c3f22a542882dfd3602196a60d2a1e))
-* split types into their own package ([#2229](https://github.com/typescript-eslint/typescript-eslint/issues/2229)) ([5f45918](https://github.com/typescript-eslint/typescript-eslint/commit/5f4591886f3438329fbf2229b03ac66174334a24))
-* split visitor keys into their own package ([#2230](https://github.com/typescript-eslint/typescript-eslint/issues/2230)) ([689dae3](https://github.com/typescript-eslint/typescript-eslint/commit/689dae37392d527c64ae83db2a4c3e6b7fecece7))
-
-
-
-
-
-# [3.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.3.0...v3.4.0) (2020-06-22)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [3.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.2.0...v3.3.0) (2020-06-15)
-
-
-### Bug Fixes
-
-* **typescript-estree:** handle TS4.0 breaking change in TupleType ([#2197](https://github.com/typescript-eslint/typescript-eslint/issues/2197)) ([5d68129](https://github.com/typescript-eslint/typescript-eslint/commit/5d6812914831a386997b453b4db1e3283e26005d))
-
-
-
-
-
-# [3.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.1.0...v3.2.0) (2020-06-08)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [prefer-optional-chain] handling first member expression ([#2156](https://github.com/typescript-eslint/typescript-eslint/issues/2156)) ([de18660](https://github.com/typescript-eslint/typescript-eslint/commit/de18660a8cf8f7033798646d8c5b0938d1accb12))
-
-
-
-
-
-# [3.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.2...v3.1.0) (2020-06-01)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [no-unused-expressions] ignore import expressions ([#2130](https://github.com/typescript-eslint/typescript-eslint/issues/2130)) ([e383691](https://github.com/typescript-eslint/typescript-eslint/commit/e3836910efdafd9edf04daed149c9e839c08047e))
-* **experimental-utils:** downlevel type declarations for versions older than 3.8 ([#2133](https://github.com/typescript-eslint/typescript-eslint/issues/2133)) ([7925823](https://github.com/typescript-eslint/typescript-eslint/commit/792582326a8065270b69a0ffcaad5a7b4b103ff3))
-
-
-
-
-
-## [3.0.2](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.1...v3.0.2) (2020-05-27)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [3.0.1](https://github.com/typescript-eslint/typescript-eslint/compare/v3.0.0...v3.0.1) (2020-05-25)
-
-
-### Bug Fixes
-
-* **typescript-estree:** handle `BigInt` with `_` numeric separator ([#2067](https://github.com/typescript-eslint/typescript-eslint/issues/2067)) ([66f1627](https://github.com/typescript-eslint/typescript-eslint/commit/66f1627b11a566d5b925a577e800f99d5c808be2))
-* **typescript-estree:** mark TS 3.8 and 3.9 as "supported" ([#2057](https://github.com/typescript-eslint/typescript-eslint/issues/2057)) ([5eedbff](https://github.com/typescript-eslint/typescript-eslint/commit/5eedbff01178ea33b98ab22e556df4c1a195f839)), closes [#1436](https://github.com/typescript-eslint/typescript-eslint/issues/1436) [#1436](https://github.com/typescript-eslint/typescript-eslint/issues/1436)
-
-
-
-
-
-# [3.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.34.0...v3.0.0) (2020-05-21)
-
-## [Please see the release notes for v3.0.0](https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0)
-
-### Bug Fixes
-
-* **typescript-estree:** remove now defunct `Import` node type ([f199cbd](https://github.com/typescript-eslint/typescript-eslint/commit/f199cbdbbd892b5ba03bfff66f463f3d9c92ee9b))
-* **typescript-estree:** use `TSEmptyBodyFunctionExpression` for body-less nodes ([#1289](https://github.com/typescript-eslint/typescript-eslint/issues/1289)) ([82e7163](https://github.com/typescript-eslint/typescript-eslint/commit/82e7163214b56ccde93ba97807b161669a50a60b))
-
-
-### Features
-
-* add index files to parser and typescript-estree ([3dfc46d](https://github.com/typescript-eslint/typescript-eslint/commit/3dfc46dccbbd28eed2d74c7b6cacddf1a0848598))
-* bump minimum required TS version ([#2004](https://github.com/typescript-eslint/typescript-eslint/issues/2004)) ([7ad4d7c](https://github.com/typescript-eslint/typescript-eslint/commit/7ad4d7c2db088b6f779b9d883a4acad13eee3775))
-* **eslint-plugin:** [ban-types] rework default options ([#848](https://github.com/typescript-eslint/typescript-eslint/issues/848)) ([8e31d5d](https://github.com/typescript-eslint/typescript-eslint/commit/8e31d5dbe9fe5227fdbefcecfd50ce5dd51360c3))
-* **typescript-estree:** align nodes with estree 2020 ([#1389](https://github.com/typescript-eslint/typescript-eslint/issues/1389)) ([aff5b62](https://github.com/typescript-eslint/typescript-eslint/commit/aff5b62044f9b93f2087a1d261e9be3f8d6fd54d))
-* **typescript-estree:** align optional fields ([#1429](https://github.com/typescript-eslint/typescript-eslint/issues/1429)) ([0e0010f](https://github.com/typescript-eslint/typescript-eslint/commit/0e0010f82952f9beeeb84136eea00cc5eecc9db6))
-* drop support for node v8 ([#1997](https://github.com/typescript-eslint/typescript-eslint/issues/1997)) ([b6c3b7b](https://github.com/typescript-eslint/typescript-eslint/commit/b6c3b7b84b8d199fa75a46432febd4a364a63217))
-* **typescript-estree:** always return parserServices ([#716](https://github.com/typescript-eslint/typescript-eslint/issues/716)) ([5b23443](https://github.com/typescript-eslint/typescript-eslint/commit/5b23443c48f3f62424db3e742243f3568080b946))
-* **typescript-estree:** handle 3.9's non-null assertion changes ([#2036](https://github.com/typescript-eslint/typescript-eslint/issues/2036)) ([06bec63](https://github.com/typescript-eslint/typescript-eslint/commit/06bec63c56536db070608ab136d2ad57083f0c6a))
-
-
-
-
-
-# [2.34.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.33.0...v2.34.0) (2020-05-18)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix handling of range/loc removal ([#2028](https://github.com/typescript-eslint/typescript-eslint/issues/2028)) ([ce344d9](https://github.com/typescript-eslint/typescript-eslint/commit/ce344d90e7c78b0c4b4b823494a3e78190f45c64))
-
-
-
-
-
-# [2.33.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.32.0...v2.33.0) (2020-05-12)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.32.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.31.0...v2.32.0) (2020-05-11)
-
-
-### Features
-
-* bump dependencies and align AST ([#2007](https://github.com/typescript-eslint/typescript-eslint/issues/2007)) ([18668b7](https://github.com/typescript-eslint/typescript-eslint/commit/18668b78fd7d1e5281af7fc26c76e0ca53297f69))
-
-
-
-
-
-# [2.31.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.30.0...v2.31.0) (2020-05-04)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.30.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.29.0...v2.30.0) (2020-04-27)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.29.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.28.0...v2.29.0) (2020-04-20)
-
-
-### Features
-
-* **eslint-plugin:** [no-floating-promise] add option to ignore IIFEs ([#1799](https://github.com/typescript-eslint/typescript-eslint/issues/1799)) ([cea51bf](https://github.com/typescript-eslint/typescript-eslint/commit/cea51bf130d6d3c2935f5e2dcc468196f2ad9d00))
-
-
-
-
-
-# [2.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.27.0...v2.28.0) (2020-04-13)
-
-
-### Features
-
-* **eslint-plugin:** add rule `prefer-ts-expect-error` ([#1705](https://github.com/typescript-eslint/typescript-eslint/issues/1705)) ([7021f21](https://github.com/typescript-eslint/typescript-eslint/commit/7021f2151a25db2a8edf17e06cd6f21e90761ec8))
-* **eslint-plugin:** add rule no-unsafe-assignment ([#1694](https://github.com/typescript-eslint/typescript-eslint/issues/1694)) ([a49b860](https://github.com/typescript-eslint/typescript-eslint/commit/a49b860cbbb2c7d718b99f561e2fb6eaadf16f17))
-
-
-
-
-
-# [2.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.26.0...v2.27.0) (2020-04-06)
-
-
-### Bug Fixes
-
-* **typescript-estree:** add support for TS3.9 extra file extensions ([#1833](https://github.com/typescript-eslint/typescript-eslint/issues/1833)) ([1f0ff41](https://github.com/typescript-eslint/typescript-eslint/commit/1f0ff41aa1bc3b7c5330b2f5fe22e24bf578a6b2))
-
-
-### Features
-
-* **eslint-plugin:** sort members alphabetically ([#263](https://github.com/typescript-eslint/typescript-eslint/issues/263)) ([485e902](https://github.com/typescript-eslint/typescript-eslint/commit/485e90213a0f8baac0587f7d56925448883fc5bd))
-
-
-
-
-
-# [2.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.25.0...v2.26.0) (2020-03-30)
-
-
-### Features
-
-* **typescript-estree:** add option to ignore certain folders from glob resolution ([#1802](https://github.com/typescript-eslint/typescript-eslint/issues/1802)) ([1e29e69](https://github.com/typescript-eslint/typescript-eslint/commit/1e29e69b289d61107a7de67592beae331ba50222))
-
-
-
-
-
-# [2.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.24.0...v2.25.0) (2020-03-23)
-
-
-### Bug Fixes
-
-* **typescript-estree:** export * regression from 133f622f ([#1751](https://github.com/typescript-eslint/typescript-eslint/issues/1751)) ([09d8afc](https://github.com/typescript-eslint/typescript-eslint/commit/09d8afca684635b5ac604bc1794240484a70ce91))
-
-
-
-
-
-# [2.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.23.0...v2.24.0) (2020-03-16)
-
-
-### Bug Fixes
-
-* **typescript-estree:** unnecessary program updates by removing timeout methods ([#1693](https://github.com/typescript-eslint/typescript-eslint/issues/1693)) ([2ccd66b](https://github.com/typescript-eslint/typescript-eslint/commit/2ccd66b920816d54cc1a639059f60410df665900))
-
-
-### Features
-
-* **typescript-estree:** support 3.8 `export * as ns` ([#1698](https://github.com/typescript-eslint/typescript-eslint/issues/1698)) ([133f622](https://github.com/typescript-eslint/typescript-eslint/commit/133f622f38a286eac45288a9789d2ee529d5e582))
-
-
-
-
-
-# [2.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.22.0...v2.23.0) (2020-03-09)
-
-
-### Features
-
-* **typescript-estree:** support 3.8 import/export type ([#1697](https://github.com/typescript-eslint/typescript-eslint/issues/1697)) ([625d603](https://github.com/typescript-eslint/typescript-eslint/commit/625d603f94bf0521f834313bf31c734ce4948b7a))
-
-
-
-
-
-# [2.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.21.0...v2.22.0) (2020-03-02)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.20.0...v2.21.0) (2020-02-24)
-
-
-### Bug Fixes
-
-* **typescript-estree:** process.stdout can be undefined ([#1619](https://github.com/typescript-eslint/typescript-eslint/issues/1619)) ([0d8e87e](https://github.com/typescript-eslint/typescript-eslint/commit/0d8e87e09704588273bc94a740279b3e8af7474f))
-
-
-
-
-
-# [2.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.2...v2.20.0) (2020-02-17)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [2.19.2](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.1...v2.19.2) (2020-02-10)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [2.19.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.19.0...v2.19.1) (2020-02-10)
-
-
-### Bug Fixes
-
-* **typescript-estree:** ts returning wrong file with project references ([#1575](https://github.com/typescript-eslint/typescript-eslint/issues/1575)) ([4c12dac](https://github.com/typescript-eslint/typescript-eslint/commit/4c12dac075f774801a145cd29c4c7eff64f98fdc))
-
-
-
-
-
-# [2.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.18.0...v2.19.0) (2020-02-03)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix regression introduced in [#1525](https://github.com/typescript-eslint/typescript-eslint/issues/1525) ([#1543](https://github.com/typescript-eslint/typescript-eslint/issues/1543)) ([bec4572](https://github.com/typescript-eslint/typescript-eslint/commit/bec45722dfed8aeb49189d151252b83d4a34239c))
-* **typescript-estree:** persisted parse and module none ([#1516](https://github.com/typescript-eslint/typescript-eslint/issues/1516)) ([7c70323](https://github.com/typescript-eslint/typescript-eslint/commit/7c7032322f55d9492e21d3bfa5da16da1f05cbce))
-
-
-
-
-
-# [2.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.17.0...v2.18.0) (2020-01-27)
-
-
-### Bug Fixes
-
-* improve token types and add missing type guards ([#1497](https://github.com/typescript-eslint/typescript-eslint/issues/1497)) ([ce41d7d](https://github.com/typescript-eslint/typescript-eslint/commit/ce41d7de33bcb7ccf96c03ac1438304c5a49ff54))
-* **typescript-estree:** error on unexpected jsdoc nodes ([#1525](https://github.com/typescript-eslint/typescript-eslint/issues/1525)) ([c8dfac3](https://github.com/typescript-eslint/typescript-eslint/commit/c8dfac3d2f066e50fa9d2b5a86beffdaafddb643))
-* **typescript-estree:** fix identifier tokens typed as `Keyword` ([#1487](https://github.com/typescript-eslint/typescript-eslint/issues/1487)) ([77a1caa](https://github.com/typescript-eslint/typescript-eslint/commit/77a1caa562638645b4717449800e410107d512c8))
-
-
-### Features
-
-* **eslint-plugin:** add new rule prefer-as-const ([#1431](https://github.com/typescript-eslint/typescript-eslint/issues/1431)) ([420db96](https://github.com/typescript-eslint/typescript-eslint/commit/420db96921435e8bf7fb484ae74552a912a6adde))
-
-
-
-
-
-# [2.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.16.0...v2.17.0) (2020-01-20)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct type of `ArrayPattern.elements` ([#1451](https://github.com/typescript-eslint/typescript-eslint/issues/1451)) ([62e4ca0](https://github.com/typescript-eslint/typescript-eslint/commit/62e4ca0))
-
-
-
-
-
-# [2.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.15.0...v2.16.0) (2020-01-13)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix persisted parse for relative paths ([#1424](https://github.com/typescript-eslint/typescript-eslint/issues/1424)) ([9720d2c](https://github.com/typescript-eslint/typescript-eslint/commit/9720d2c))
-* **typescript-estree:** parsing of deeply nested new files in new folder ([#1412](https://github.com/typescript-eslint/typescript-eslint/issues/1412)) ([206c94b](https://github.com/typescript-eslint/typescript-eslint/commit/206c94b))
-* **typescript-estree:** resolve path relative to tsconfigRootDir ([#1439](https://github.com/typescript-eslint/typescript-eslint/issues/1439)) ([c709056](https://github.com/typescript-eslint/typescript-eslint/commit/c709056))
-
-
-### Features
-
-* **typescript-estree:** add parserOption to turn on debug logs ([#1413](https://github.com/typescript-eslint/typescript-eslint/issues/1413)) ([25092fd](https://github.com/typescript-eslint/typescript-eslint/commit/25092fd))
-* **typescript-estree:** add strict type mapping to esTreeNodeToTSNodeMap ([#1382](https://github.com/typescript-eslint/typescript-eslint/issues/1382)) ([d3d70a3](https://github.com/typescript-eslint/typescript-eslint/commit/d3d70a3))
-
-
-
-
-
-# [2.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.14.0...v2.15.0) (2020-01-06)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct persisted parse for windows ([#1406](https://github.com/typescript-eslint/typescript-eslint/issues/1406)) ([1a42f3d](https://github.com/typescript-eslint/typescript-eslint/commit/1a42f3d))
-
-
-
-
-
-# [2.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.13.0...v2.14.0) (2019-12-30)
-
-
-### Bug Fixes
-
-* **typescript-estree:** visit typeParameters in OptionalCallExpr ([#1377](https://github.com/typescript-eslint/typescript-eslint/issues/1377)) ([cba6a2a](https://github.com/typescript-eslint/typescript-eslint/commit/cba6a2a))
-
-
-### Features
-
-* add internal eslint plugin for repo-specific lint rules ([#1373](https://github.com/typescript-eslint/typescript-eslint/issues/1373)) ([3a15413](https://github.com/typescript-eslint/typescript-eslint/commit/3a15413))
-
-
-
-
-
-# [2.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.12.0...v2.13.0) (2019-12-23)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct type of key for base nodes ([#1367](https://github.com/typescript-eslint/typescript-eslint/issues/1367)) ([099225a](https://github.com/typescript-eslint/typescript-eslint/commit/099225a))
-
-
-### Features
-
-* **typescript-estree:** computed members discriminated unions ([#1349](https://github.com/typescript-eslint/typescript-eslint/issues/1349)) ([013df9a](https://github.com/typescript-eslint/typescript-eslint/commit/013df9a))
-* **typescript-estree:** tighten prop name and destructure types ([#1346](https://github.com/typescript-eslint/typescript-eslint/issues/1346)) ([f335c50](https://github.com/typescript-eslint/typescript-eslint/commit/f335c50))
-
-
-
-
-
-# [2.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.11.0...v2.12.0) (2019-12-16)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.10.0...v2.11.0) (2019-12-09)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.9.0...v2.10.0) (2019-12-02)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [no-unused-expressions] ignore directives ([#1285](https://github.com/typescript-eslint/typescript-eslint/issues/1285)) ([ce4c803](https://github.com/typescript-eslint/typescript-eslint/commit/ce4c803))
-* **typescript-estree:** make FunctionDeclaration.body non-null ([#1288](https://github.com/typescript-eslint/typescript-eslint/issues/1288)) ([dc73510](https://github.com/typescript-eslint/typescript-eslint/commit/dc73510))
-
-
-
-
-
-# [2.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.8.0...v2.9.0) (2019-11-25)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix synthetic default import ([#1245](https://github.com/typescript-eslint/typescript-eslint/issues/1245)) ([d97f809](https://github.com/typescript-eslint/typescript-eslint/commit/d97f809))
-
-
-### Features
-
-* **eslint-plugin:** add no-unused-vars-experimental ([#688](https://github.com/typescript-eslint/typescript-eslint/issues/688)) ([05ebea5](https://github.com/typescript-eslint/typescript-eslint/commit/05ebea5))
-
-
-
-
-
-# [2.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.7.0...v2.8.0) (2019-11-18)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [unified-signatures] crash: cannot read pro… ([#1096](https://github.com/typescript-eslint/typescript-eslint/issues/1096)) ([d1de3a7](https://github.com/typescript-eslint/typescript-eslint/commit/d1de3a7))
-* **typescript-estree:** correctly account for trailing slash in… ([#1205](https://github.com/typescript-eslint/typescript-eslint/issues/1205)) ([ba89168](https://github.com/typescript-eslint/typescript-eslint/commit/ba89168))
-* **typescript-estree:** options range loc being always true ([#704](https://github.com/typescript-eslint/typescript-eslint/issues/704)) ([db1aa18](https://github.com/typescript-eslint/typescript-eslint/commit/db1aa18))
-
-
-
-
-
-# [2.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.6.1...v2.7.0) (2019-11-11)
-
-
-### Bug Fixes
-
-* **typescript-estree:** hash code to reduce update frequency ([#1179](https://github.com/typescript-eslint/typescript-eslint/issues/1179)) ([96d1cc3](https://github.com/typescript-eslint/typescript-eslint/commit/96d1cc3))
-* **typescript-estree:** reduce bundle footprint of tsutils ([#1177](https://github.com/typescript-eslint/typescript-eslint/issues/1177)) ([c8fe515](https://github.com/typescript-eslint/typescript-eslint/commit/c8fe515))
-
-
-
-
-
-## [2.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.6.0...v2.6.1) (2019-11-04)
-
-
-### Bug Fixes
-
-* **typescript-estree:** don't use typescript's synthetic default ([#1156](https://github.com/typescript-eslint/typescript-eslint/issues/1156)) ([17c956e](https://github.com/typescript-eslint/typescript-eslint/commit/17c956e)), closes [#1153](https://github.com/typescript-eslint/typescript-eslint/issues/1153)
-* **typescript-estree:** fix filename handling for vue JSX + markdown ([#1127](https://github.com/typescript-eslint/typescript-eslint/issues/1127)) ([366518f](https://github.com/typescript-eslint/typescript-eslint/commit/366518f))
-* **typescript-estree:** improve comment parsing code ([#1120](https://github.com/typescript-eslint/typescript-eslint/issues/1120)) ([e54998d](https://github.com/typescript-eslint/typescript-eslint/commit/e54998d))
-
-
-
-
-
-# [2.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.5.0...v2.6.0) (2019-10-28)
-
-
-### Bug Fixes
-
-* **parser:** adds TTY check before logging the version mismatch warning ([#1121](https://github.com/typescript-eslint/typescript-eslint/issues/1121)) ([768ef63](https://github.com/typescript-eslint/typescript-eslint/commit/768ef63))
-* **typescript-estree:** better handle canonical paths ([#1111](https://github.com/typescript-eslint/typescript-eslint/issues/1111)) ([8dcbf4c](https://github.com/typescript-eslint/typescript-eslint/commit/8dcbf4c))
-* **typescript-estree:** correct parenthesized optional chain AST ([#1141](https://github.com/typescript-eslint/typescript-eslint/issues/1141)) ([5ae286e](https://github.com/typescript-eslint/typescript-eslint/commit/5ae286e))
-* **typescript-estree:** ensure parent pointers are set ([#1129](https://github.com/typescript-eslint/typescript-eslint/issues/1129)) ([d4703e1](https://github.com/typescript-eslint/typescript-eslint/commit/d4703e1))
-* **typescript-estree:** normalize paths to fix cache miss on windows ([#1128](https://github.com/typescript-eslint/typescript-eslint/issues/1128)) ([6d0f2ce](https://github.com/typescript-eslint/typescript-eslint/commit/6d0f2ce))
-
-
-### Features
-
-* **typescript-estree:** add support for declare class properties ([#1136](https://github.com/typescript-eslint/typescript-eslint/issues/1136)) ([1508670](https://github.com/typescript-eslint/typescript-eslint/commit/1508670))
-
-
-
-
-
-# [2.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.4.0...v2.5.0) (2019-10-21)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct semver check range ([#1109](https://github.com/typescript-eslint/typescript-eslint/issues/1109)) ([2fc9bd2](https://github.com/typescript-eslint/typescript-eslint/commit/2fc9bd2))
-* **typescript-estree:** handle running out of fs watchers ([#1088](https://github.com/typescript-eslint/typescript-eslint/issues/1088)) ([ec62747](https://github.com/typescript-eslint/typescript-eslint/commit/ec62747))
-* **typescript-estree:** parsing error for vue sfc ([#1083](https://github.com/typescript-eslint/typescript-eslint/issues/1083)) ([7a8cce6](https://github.com/typescript-eslint/typescript-eslint/commit/7a8cce6))
-* **typescript-estree:** remove now unneeded dep on chokidar ([088a691](https://github.com/typescript-eslint/typescript-eslint/commit/088a691))
-
-
-### Features
-
-* **typescript-estree:** support long running lint without watch ([#1106](https://github.com/typescript-eslint/typescript-eslint/issues/1106)) ([ed5564d](https://github.com/typescript-eslint/typescript-eslint/commit/ed5564d))
-
-
-
-
-
-# [2.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.3...v2.4.0) (2019-10-14)
-
-
-### Bug Fixes
-
-* support long running "watch" lint sessions ([#973](https://github.com/typescript-eslint/typescript-eslint/issues/973)) ([854620e](https://github.com/typescript-eslint/typescript-eslint/commit/854620e))
-
-
-### Features
-
-* **typescript-estree:** support for parsing 3.7 features ([#1045](https://github.com/typescript-eslint/typescript-eslint/issues/1045)) ([623febf](https://github.com/typescript-eslint/typescript-eslint/commit/623febf))
-
-
-
-
-
-## [2.3.3](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.2...v2.3.3) (2019-10-07)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-## [2.3.2](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.1...v2.3.2) (2019-09-30)
-
-
-### Bug Fixes
-
-* **typescript-estree:** correct ClassDeclarationBase type ([#1008](https://github.com/typescript-eslint/typescript-eslint/issues/1008)) ([8ce3a81](https://github.com/typescript-eslint/typescript-eslint/commit/8ce3a81))
-* **typescript-estree:** handle optional computed prop w/o type ([#1026](https://github.com/typescript-eslint/typescript-eslint/issues/1026)) ([95c13fe](https://github.com/typescript-eslint/typescript-eslint/commit/95c13fe))
-
-
-
-
-
-## [2.3.1](https://github.com/typescript-eslint/typescript-eslint/compare/v2.3.0...v2.3.1) (2019-09-23)
-
-
-### Bug Fixes
-
-* **typescript-estree:** parsing error for await in non-async func ([#988](https://github.com/typescript-eslint/typescript-eslint/issues/988)) ([19abbe0](https://github.com/typescript-eslint/typescript-eslint/commit/19abbe0))
-
-
-
-
-
-# [2.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.2.0...v2.3.0) (2019-09-16)
-
-
-### Bug Fixes
-
-* **typescript-estree:** ImportDeclaration.specifier to Literal ([#974](https://github.com/typescript-eslint/typescript-eslint/issues/974)) ([2bf8231](https://github.com/typescript-eslint/typescript-eslint/commit/2bf8231))
-
-
-
-
-
-# [2.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.1.0...v2.2.0) (2019-09-09)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [2.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v2.0.0...v2.1.0) (2019-09-02)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** [unified-signatures] type comparison and exported nodes ([#839](https://github.com/typescript-eslint/typescript-eslint/issues/839)) ([580eceb](https://github.com/typescript-eslint/typescript-eslint/commit/580eceb))
-* **typescript-estree:** improve missing project file error msg ([#866](https://github.com/typescript-eslint/typescript-eslint/issues/866)) ([8f3b0a8](https://github.com/typescript-eslint/typescript-eslint/commit/8f3b0a8)), closes [#853](https://github.com/typescript-eslint/typescript-eslint/issues/853)
-
-
-### Features
-
-* **eslint-plugin:** [no-type-alias] support tuples ([#775](https://github.com/typescript-eslint/typescript-eslint/issues/775)) ([c68e033](https://github.com/typescript-eslint/typescript-eslint/commit/c68e033))
-* **typescript-estree:** Accept a glob pattern for `options.project` ([#806](https://github.com/typescript-eslint/typescript-eslint/issues/806)) ([9e5f21e](https://github.com/typescript-eslint/typescript-eslint/commit/9e5f21e))
-
-
-
-
-
-# [2.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.13.0...v2.0.0) (2019-08-13)
-
-
-* feat(eslint-plugin)!: change recommended config (#729) ([428567d](https://github.com/typescript-eslint/typescript-eslint/commit/428567d)), closes [#729](https://github.com/typescript-eslint/typescript-eslint/issues/729)
-* feat(typescript-estree)!: throw error on file not in project when `project` set (#760) ([3777b77](https://github.com/typescript-eslint/typescript-eslint/commit/3777b77)), closes [#760](https://github.com/typescript-eslint/typescript-eslint/issues/760)
-* feat(eslint-plugin)!: add rule `consistent-type-assertions` (#731) ([92e98de](https://github.com/typescript-eslint/typescript-eslint/commit/92e98de)), closes [#731](https://github.com/typescript-eslint/typescript-eslint/issues/731)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix `is` token typed as `Keyword ([#750](https://github.com/typescript-eslint/typescript-eslint/issues/750)) ([35dec52](https://github.com/typescript-eslint/typescript-eslint/commit/35dec52))
-* **typescript-estree:** jsx comment parsing ([#703](https://github.com/typescript-eslint/typescript-eslint/issues/703)) ([0cfc48e](https://github.com/typescript-eslint/typescript-eslint/commit/0cfc48e))
-
-
-### Features
-
-* explicitly support eslint v6 ([#645](https://github.com/typescript-eslint/typescript-eslint/issues/645)) ([34a7cf6](https://github.com/typescript-eslint/typescript-eslint/commit/34a7cf6))
-
-
-### BREAKING CHANGES
-
-* recommended config changes are considered breaking
-* by default we will now throw when a file is not in the `project` provided
-* Merges both no-angle-bracket-type-assertion and no-object-literal-type-assertion into one rule
-* Node 6 is no longer supported
-
-
-
-
-
-# [1.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.12.0...v1.13.0) (2019-07-21)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-
-
-
-
-# [1.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.11.0...v1.12.0) (2019-07-12)
-
-
-### Bug Fixes
-
-* **eslint-plugin:** handle `const;` ([#633](https://github.com/typescript-eslint/typescript-eslint/issues/633)) ([430d628](https://github.com/typescript-eslint/typescript-eslint/commit/430d628)), closes [#441](https://github.com/typescript-eslint/typescript-eslint/issues/441)
-* **typescript-estree:** fix `async` identifier token typed as `Keyword` ([#681](https://github.com/typescript-eslint/typescript-eslint/issues/681)) ([6de19d3](https://github.com/typescript-eslint/typescript-eslint/commit/6de19d3))
-
-
-### Features
-
-* **eslint-plugin:** added new rule prefer-readonly ([#555](https://github.com/typescript-eslint/typescript-eslint/issues/555)) ([76b89a5](https://github.com/typescript-eslint/typescript-eslint/commit/76b89a5))
-
-
-
-
-
-# [1.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.2...v1.11.0) (2019-06-23)
-
-
-### Bug Fixes
-
-* **typescript-estree:** fix more cases with double slash in JSX text ([#607](https://github.com/typescript-eslint/typescript-eslint/issues/607)) ([34cfa53](https://github.com/typescript-eslint/typescript-eslint/commit/34cfa53))
-
-
-
-
-
-## [1.10.2](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.1...v1.10.2) (2019-06-10)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-## [1.10.1](https://github.com/typescript-eslint/typescript-eslint/compare/v1.10.0...v1.10.1) (2019-06-09)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-# [1.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.9.0...v1.10.0) (2019-06-09)
-
-### Bug Fixes
-
-- **eslint-plugin:** [explicit-function-return-type] Fix obj setter prop ([8c8497c](https://github.com/typescript-eslint/typescript-eslint/commit/8c8497c)), closes [#525](https://github.com/typescript-eslint/typescript-eslint/issues/525)
-- **eslint-plugin:** [no-extra-parens] Fix crash default switch case crash ([5ec2b32](https://github.com/typescript-eslint/typescript-eslint/commit/5ec2b32)), closes [#509](https://github.com/typescript-eslint/typescript-eslint/issues/509)
-- **typescript-estree:** allow expressions in ExportDefaultDeclaration ([#593](https://github.com/typescript-eslint/typescript-eslint/issues/593)) ([861844d](https://github.com/typescript-eslint/typescript-eslint/commit/861844d))
-- **typescript-estree:** stop ignoring comments in JSX with generic ([#596](https://github.com/typescript-eslint/typescript-eslint/issues/596)) ([31d5bd4](https://github.com/typescript-eslint/typescript-eslint/commit/31d5bd4))
-
-### Features
-
-- make utils/TSESLint export typed classes instead of just types ([#526](https://github.com/typescript-eslint/typescript-eslint/issues/526)) ([370ac72](https://github.com/typescript-eslint/typescript-eslint/commit/370ac72))
-- support TypeScript versions >=3.2.1 <3.6.0 ([#597](https://github.com/typescript-eslint/typescript-eslint/issues/597)) ([5d2b962](https://github.com/typescript-eslint/typescript-eslint/commit/5d2b962))
-
-# [1.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.8.0...v1.9.0) (2019-05-12)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-# [1.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.7.0...v1.8.0) (2019-05-10)
-
-### Bug Fixes
-
-- **eslint-plugin:** [array-type] support readonly operator ([#429](https://github.com/typescript-eslint/typescript-eslint/issues/429)) ([8e2d2f5](https://github.com/typescript-eslint/typescript-eslint/commit/8e2d2f5))
-- **eslint-plugin:** Support more nodes [no-extra-parens](<[#465](https://github.com/typescript-eslint/typescript-eslint/issues/465)>) ([2d15644](https://github.com/typescript-eslint/typescript-eslint/commit/2d15644))
-- **typescript-estree:** ensure parents are defined during subsequent parses ([#500](https://github.com/typescript-eslint/typescript-eslint/issues/500)) ([665278f](https://github.com/typescript-eslint/typescript-eslint/commit/665278f))
-
-### Features
-
-- **eslint-plugin:** (EXPERIMENTAL) begin indent rewrite ([#439](https://github.com/typescript-eslint/typescript-eslint/issues/439)) ([6eb97d4](https://github.com/typescript-eslint/typescript-eslint/commit/6eb97d4))
-- **eslint-plugin:** no-inferrable-types: Support more primitives ([#442](https://github.com/typescript-eslint/typescript-eslint/issues/442)) ([4e193ca](https://github.com/typescript-eslint/typescript-eslint/commit/4e193ca))
-- **ts-estree:** add preserveNodeMaps option ([#494](https://github.com/typescript-eslint/typescript-eslint/issues/494)) ([c3061f9](https://github.com/typescript-eslint/typescript-eslint/commit/c3061f9))
-- Move shared types into their own package ([#425](https://github.com/typescript-eslint/typescript-eslint/issues/425)) ([a7a03ce](https://github.com/typescript-eslint/typescript-eslint/commit/a7a03ce))
-
-# [1.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.6.0...v1.7.0) (2019-04-20)
-
-### Features
-
-- **eslint-plugin:** support type assertions in no-extra-parens rule ([#311](https://github.com/typescript-eslint/typescript-eslint/issues/311)) ([116ca75](https://github.com/typescript-eslint/typescript-eslint/commit/116ca75))
-
-# [1.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.5.0...v1.6.0) (2019-04-03)
-
-### Bug Fixes
-
-- **typescript-estree:** add ExportDefaultDeclaration to union DeclarationStatement ([#378](https://github.com/typescript-eslint/typescript-eslint/issues/378)) ([bf04398](https://github.com/typescript-eslint/typescript-eslint/commit/bf04398))
-
-### Features
-
-- change TypeScript version range to >=3.2.1 <3.5.0 ([#399](https://github.com/typescript-eslint/typescript-eslint/issues/399)) ([a4f95d3](https://github.com/typescript-eslint/typescript-eslint/commit/a4f95d3))
-
-# [1.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.4.2...v1.5.0) (2019-03-20)
-
-### Bug Fixes
-
-- **eslint-plugin:** fix false positives for adjacent-overload-signatures regarding computed property names ([#340](https://github.com/typescript-eslint/typescript-eslint/issues/340)) ([f6e5118](https://github.com/typescript-eslint/typescript-eslint/commit/f6e5118))
-- **typescript-estree:** only call watch callback on new files ([#367](https://github.com/typescript-eslint/typescript-eslint/issues/367)) ([0ef07c4](https://github.com/typescript-eslint/typescript-eslint/commit/0ef07c4))
-
-## [1.4.2](https://github.com/typescript-eslint/typescript-eslint/compare/v1.4.1...v1.4.2) (2019-02-25)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-## [1.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v1.4.0...v1.4.1) (2019-02-23)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-# [1.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.3.0...v1.4.0) (2019-02-19)
-
-### Bug Fixes
-
-- **ts-estree:** make sure that every node can be converted to tsNode ([#287](https://github.com/typescript-eslint/typescript-eslint/issues/287)) ([9f1d314](https://github.com/typescript-eslint/typescript-eslint/commit/9f1d314))
-- **typescript-estree, eslint-plugin:** stop adding ParenthesizedExpressions to node maps ([#226](https://github.com/typescript-eslint/typescript-eslint/issues/226)) ([317405a](https://github.com/typescript-eslint/typescript-eslint/commit/317405a))
-
-### Features
-
-- **eslint-plugin:** add 'no-unnecessary-qualifier' rule ([#231](https://github.com/typescript-eslint/typescript-eslint/issues/231)) ([cc8f906](https://github.com/typescript-eslint/typescript-eslint/commit/cc8f906))
-- **eslint-plugin:** Migrate plugin to ts ([#120](https://github.com/typescript-eslint/typescript-eslint/issues/120)) ([61c60dc](https://github.com/typescript-eslint/typescript-eslint/commit/61c60dc))
-- **ts-estree:** fix parsing nested sequence expressions ([#286](https://github.com/typescript-eslint/typescript-eslint/issues/286)) ([ecc9631](https://github.com/typescript-eslint/typescript-eslint/commit/ecc9631))
-
-# [1.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.2.0...v1.3.0) (2019-02-07)
-
-### Bug Fixes
-
-- **ts-estree:** align typeArguments and typeParameters across nodes ([#223](https://github.com/typescript-eslint/typescript-eslint/issues/223)) ([3306198](https://github.com/typescript-eslint/typescript-eslint/commit/3306198))
-- **ts-estree:** convert decorators on var and fn decs ([#211](https://github.com/typescript-eslint/typescript-eslint/issues/211)) ([0a1777f](https://github.com/typescript-eslint/typescript-eslint/commit/0a1777f))
-- **ts-estree:** fix issues with typeParams in FunctionExpression ([#208](https://github.com/typescript-eslint/typescript-eslint/issues/208)) ([d4dfa3b](https://github.com/typescript-eslint/typescript-eslint/commit/d4dfa3b))
-
-### Features
-
-- change TypeScript version range to >=3.2.1 <3.4.0 ([#184](https://github.com/typescript-eslint/typescript-eslint/issues/184)) ([f513a14](https://github.com/typescript-eslint/typescript-eslint/commit/f513a14))
-- **ts-estree:** enable errors 1098 and 1099 ([#219](https://github.com/typescript-eslint/typescript-eslint/issues/219)) ([fc50167](https://github.com/typescript-eslint/typescript-eslint/commit/fc50167))
-
-# [1.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.1.1...v1.2.0) (2019-02-01)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
-
-## [1.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v1.1.0...v1.1.1) (2019-01-29)
-
-### Bug Fixes
-
-- **parser:** add visiting of type parameters in JSXOpeningElement ([#150](https://github.com/typescript-eslint/typescript-eslint/issues/150)) ([5e16003](https://github.com/typescript-eslint/typescript-eslint/commit/5e16003))
-- **ts-estree:** expand optional property to include question token ([#138](https://github.com/typescript-eslint/typescript-eslint/issues/138)) ([9068b62](https://github.com/typescript-eslint/typescript-eslint/commit/9068b62))
-
-### Performance Improvements
-
-- **ts-estree:** don't create Program in parse() ([#148](https://github.com/typescript-eslint/typescript-eslint/issues/148)) ([aacf5b0](https://github.com/typescript-eslint/typescript-eslint/commit/aacf5b0))
-
-# [1.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v1.0.0...v1.1.0) (2019-01-23)
-
-### Bug Fixes
-
-- **typescript-estree:** correct range of parameters with comments ([#128](https://github.com/typescript-eslint/typescript-eslint/issues/128)) ([91eedf2](https://github.com/typescript-eslint/typescript-eslint/commit/91eedf2))
-- **typescript-estree:** fix range of assignment in parameter ([#115](https://github.com/typescript-eslint/typescript-eslint/issues/115)) ([4e781f1](https://github.com/typescript-eslint/typescript-eslint/commit/4e781f1))
-
-# [1.0.0](https://github.com/typescript-eslint/typescript-eslint/compare/v0.2.1...v1.0.0) (2019-01-20)
-
-### Features
-
-- **parser:** support ecmaFeatures.jsx flag and tests ([#85](https://github.com/typescript-eslint/typescript-eslint/issues/85)) ([b321736](https://github.com/typescript-eslint/typescript-eslint/commit/b321736))
-
-## [0.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v0.2.0...v0.2.1) (2019-01-20)
-
-**Note:** Version bump only for package @typescript-eslint/typescript-estree
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/LICENSE b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/LICENSE
deleted file mode 100644
index fda3b75..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/LICENSE
+++ /dev/null
@@ -1,26 +0,0 @@
-TypeScript ESTree
-
-Originally extracted from:
-
-TypeScript ESLint Parser
-Copyright JS Foundation and other contributors, https://js.foundation
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/README.md b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/README.md
deleted file mode 100644
index 3a434c7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/README.md
+++ /dev/null
@@ -1,287 +0,0 @@
-<h1 align="center">TypeScript ESTree</h1>
-
-<p align="center">A parser that converts TypeScript source code into an <a href="https://github.com/estree/estree">ESTree</a>-compatible form</p>
-
-<p align="center">
-    <img src="https://github.com/typescript-eslint/typescript-eslint/workflows/CI/badge.svg" alt="CI" />
-    <a href="https://www.npmjs.com/package/@typescript-eslint/typescript-estree"><img src="https://img.shields.io/npm/v/@typescript-eslint/typescript-estree.svg?style=flat-square" alt="NPM Version" /></a>
-    <a href="https://www.npmjs.com/package/@typescript-eslint/typescript-estree"><img src="https://img.shields.io/npm/dm/@typescript-eslint/typescript-estree.svg?style=flat-square" alt="NPM Downloads" /></a>
-</p>
-
-## Getting Started
-
-**[You can find our Getting Started docs here](../../docs/getting-started/linting/README.md)**
-
-## About
-
-This parser is somewhat generic and robust, and could be used to power any use-case which requires taking TypeScript source code and producing an ESTree-compatible AST.
-
-In fact, it is already used within these hyper-popular open-source projects to power their TypeScript support:
-
-- [ESLint](https://eslint.org), the pluggable linting utility for JavaScript and JSX
-- [Prettier](https://prettier.io), an opinionated code formatter
-
-## Installation
-
-```sh
-yarn add -D @typescript-eslint/typescript-estree
-```
-
-## API
-
-### Parsing
-
-#### `parse(code, options)`
-
-Parses the given string of code with the options provided and returns an ESTree-compatible AST.
-
-```ts
-interface ParseOptions {
-  /**
-   * create a top-level comments array containing all comments
-   */
-  comment?: boolean;
-
-  /**
-   * An array of modules to turn explicit debugging on for.
-   * - 'typescript-eslint' is the same as setting the env var `DEBUG=typescript-eslint:*`
-   * - 'eslint' is the same as setting the env var `DEBUG=eslint:*`
-   * - 'typescript' is the same as setting `extendedDiagnostics: true` in your tsconfig compilerOptions
-   *
-   * For convenience, also supports a boolean:
-   * - true === ['typescript-eslint']
-   * - false === []
-   */
-  debugLevel?: boolean | ('typescript-eslint' | 'eslint' | 'typescript')[];
-
-  /**
-   * Cause the parser to error if it encounters an unknown AST node type (useful for testing).
-   * This case only usually occurs when TypeScript releases new features.
-   */
-  errorOnUnknownASTType?: boolean;
-
-  /**
-   * Absolute (or relative to `cwd`) path to the file being parsed.
-   */
-  filePath?: string;
-
-  /**
-   * Enable parsing of JSX.
-   * For more details, see https://www.typescriptlang.org/docs/handbook/jsx.html
-   *
-   * NOTE: this setting does not effect known file types (.js, .jsx, .ts, .tsx, .json) because the
-   * TypeScript compiler has its own internal handling for known file extensions.
-   *
-   * For the exact behavior, see https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#parseroptionsecmafeaturesjsx
-   */
-  jsx?: boolean;
-
-  /**
-   * Controls whether the `loc` information to each node.
-   * The `loc` property is an object which contains the exact line/column the node starts/ends on.
-   * This is similar to the `range` property, except it is line/column relative.
-   */
-  loc?: boolean;
-
-  /*
-   * Allows overriding of function used for logging.
-   * When value is `false`, no logging will occur.
-   * When value is not provided, `console.log()` will be used.
-   */
-  loggerFn?: Function | false;
-
-  /**
-   * Controls whether the `range` property is included on AST nodes.
-   * The `range` property is a [number, number] which indicates the start/end index of the node in the file contents.
-   * This is similar to the `loc` property, except this is the absolute index.
-   */
-  range?: boolean;
-
-  /**
-   * Set to true to create a top-level array containing all tokens from the file.
-   */
-  tokens?: boolean;
-
-  /*
-   * The JSX AST changed the node type for string literals
-   * inside a JSX Element from `Literal` to `JSXText`.
-   * When value is `true`, these nodes will be parsed as type `JSXText`.
-   * When value is `false`, these nodes will be parsed as type `Literal`.
-   */
-  useJSXTextNode?: boolean;
-}
-
-const PARSE_DEFAULT_OPTIONS: ParseOptions = {
-  comment: false,
-  errorOnUnknownASTType: false,
-  filePath: 'estree.ts', // or 'estree.tsx', if you pass jsx: true
-  jsx: false,
-  loc: false,
-  loggerFn: undefined,
-  range: false,
-  tokens: false,
-  useJSXTextNode: false,
-};
-
-declare function parse(
-  code: string,
-  options: ParseOptions = PARSE_DEFAULT_OPTIONS,
-): TSESTree.Program;
-```
-
-Example usage:
-
-```js
-import { parse } from '@typescript-eslint/typescript-estree';
-
-const code = `const hello: string = 'world';`;
-const ast = parse(code, {
-  loc: true,
-  range: true,
-});
-```
-
-#### `parseAndGenerateServices(code, options)`
-
-Parses the given string of code with the options provided and returns an ESTree-compatible AST. Accepts additional options which can be used to generate type information along with the AST.
-
-```ts
-interface ParseAndGenerateServicesOptions extends ParseOptions {
-  /**
-   * Causes the parser to error if the TypeScript compiler returns any unexpected syntax/semantic errors.
-   */
-  errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
-
-  /**
-   * When `project` is provided, this controls the non-standard file extensions which will be parsed.
-   * It accepts an array of file extensions, each preceded by a `.`.
-   */
-  extraFileExtensions?: string[];
-
-  /**
-   * Absolute (or relative to `tsconfigRootDir`) path to the file being parsed.
-   * When `project` is provided, this is required, as it is used to fetch the file from the TypeScript compiler's cache.
-   */
-  filePath?: string;
-
-  /**
-   * Allows the user to control whether or not two-way AST node maps are preserved
-   * during the AST conversion process.
-   *
-   * By default: the AST node maps are NOT preserved, unless `project` has been specified,
-   * in which case the maps are made available on the returned `parserServices`.
-   *
-   * NOTE: If `preserveNodeMaps` is explicitly set by the user, it will be respected,
-   * regardless of whether or not `project` is in use.
-   */
-  preserveNodeMaps?: boolean;
-
-  /**
-   * Absolute (or relative to `tsconfigRootDir`) paths to the tsconfig(s).
-   * If this is provided, type information will be returned.
-   */
-  project?: string | string[];
-
-  /**
-   * If you provide a glob (or globs) to the project option, you can use this option to ignore certain folders from
-   * being matched by the globs.
-   * This accepts an array of globs to ignore.
-   *
-   * By default, this is set to ["/node_modules/"]
-   */
-  projectFolderIgnoreList?: string[];
-
-  /**
-   * The absolute path to the root directory for all provided `project`s.
-   */
-  tsconfigRootDir?: string;
-
-  /**
-   ***************************************************************************************
-   * IT IS RECOMMENDED THAT YOU DO NOT USE THIS OPTION, AS IT CAUSES PERFORMANCE ISSUES. *
-   ***************************************************************************************
-   *
-   * When passed with `project`, this allows the parser to create a catch-all, default program.
-   * This means that if the parser encounters a file not included in any of the provided `project`s,
-   * it will not error, but will instead parse the file and its dependencies in a new program.
-   */
-  createDefaultProgram?: boolean;
-}
-
-const PARSE_AND_GENERATE_SERVICES_DEFAULT_OPTIONS: ParseOptions = {
-  ...PARSE_DEFAULT_OPTIONS,
-  errorOnTypeScriptSyntacticAndSemanticIssues: false,
-  extraFileExtensions: [],
-  preserveNodeMaps: false, // or true, if you do not set this, but pass `project`
-  project: undefined,
-  projectFolderIgnoreList: ['/node_modules/'],
-  tsconfigRootDir: process.cwd(),
-};
-
-declare function parseAndGenerateServices(
-  code: string,
-  options: ParseOptions = PARSE_DEFAULT_OPTIONS,
-): TSESTree.Program;
-```
-
-Example usage:
-
-```js
-import { parseAndGenerateServices } from '@typescript-eslint/typescript-estree';
-
-const code = `const hello: string = 'world';`;
-const ast = parseAndGenerateServices(code, {
-  filePath: '/some/path/to/file/foo.ts',
-  loc: true,
-  project: './tsconfig.json',
-  range: true,
-});
-```
-
-### `TSESTree`, `AST_NODE_TYPES` and `AST_TOKEN_TYPES`
-
-Types for the AST produced by the parse functions.
-
-- `TSESTree` is a namespace which contains object types representing all of the AST Nodes produced by the parser.
-- `AST_NODE_TYPES` is an enum which provides the values for every single AST node's `type` property.
-- `AST_TOKEN_TYPES` is an enum which provides the values for every single AST token's `type` property.
-
-## Supported TypeScript Version
-
-See the [Supported TypeScript Version](../../README.md#supported-typescript-version) section in the project root.
-
-If you use a non-supported version of TypeScript, the parser will log a warning to the console.
-
-**Please ensure that you are using a supported version before submitting any issues/bug reports.**
-
-## Reporting Issues
-
-Please check the current list of open and known issues and ensure the issue has not been reported before. When creating a new issue provide as much information about your environment as possible. This includes:
-
-- TypeScript version
-- The `typescript-estree` version
-
-## AST Alignment Tests
-
-A couple of years after work on this parser began, the TypeScript Team at Microsoft began [officially supporting TypeScript parsing via Babel](https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/).
-
-I work closely with the TypeScript Team and we are gradually aligning the AST of this project with the one produced by Babel's parser. To that end, I have created a full test harness to compare the ASTs of the two projects which runs on every PR, please see the code for more details.
-
-## Build/Test Commands
-
-- `npm test` - run all tests
-- `npm run unit-tests` - run only unit tests
-- `npm run ast-alignment-tests` - run only Babylon AST alignment tests
-
-## Debugging
-
-If you encounter a bug with the parser that you want to investigate, you can turn on the debug logging via setting the environment variable: `DEBUG=typescript-eslint:*`.
-I.e. in this repo you can run: `DEBUG=typescript-eslint:* yarn lint`.
-
-## License
-
-TypeScript ESTree inherits from the the original TypeScript ESLint Parser license, as the majority of the work began there. It is licensed under a permissive BSD 2-clause license.
-
-## Contributing
-
-[See the contributing guide here](../../CONTRIBUTING.md)
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts
deleted file mode 100644
index 61bc2f1..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { SourceFile } from 'typescript';
-import { ASTMaps } from './convert';
-import { Extra } from './parser-options';
-import { TSESTree } from './ts-estree';
-export declare function astConverter(ast: SourceFile, extra: Extra, shouldPreserveNodeMaps: boolean): {
-    estree: TSESTree.Program;
-    astMaps: ASTMaps;
-};
-//# sourceMappingURL=ast-converter.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map
deleted file mode 100644
index df6276c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ast-converter.d.ts","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA2B,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,OAAO,GAC9B;IAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA4DhD"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js
deleted file mode 100644
index 6af960e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.astConverter = void 0;
-const convert_1 = require("./convert");
-const convert_comments_1 = require("./convert-comments");
-const node_utils_1 = require("./node-utils");
-const simple_traverse_1 = require("./simple-traverse");
-function astConverter(ast, extra, shouldPreserveNodeMaps) {
-    /**
-     * The TypeScript compiler produced fundamental parse errors when parsing the
-     * source.
-     */
-    // internal typescript api...
-    // eslint-disable-next-line @typescript-eslint/no-explicit-any
-    const parseDiagnostics = ast.parseDiagnostics;
-    if (parseDiagnostics.length) {
-        throw convert_1.convertError(parseDiagnostics[0]);
-    }
-    /**
-     * Recursively convert the TypeScript AST into an ESTree-compatible AST
-     */
-    const instance = new convert_1.Converter(ast, {
-        errorOnUnknownASTType: extra.errorOnUnknownASTType || false,
-        useJSXTextNode: extra.useJSXTextNode || false,
-        shouldPreserveNodeMaps,
-    });
-    const estree = instance.convertProgram();
-    /**
-     * Optionally remove range and loc if specified
-     */
-    if (!extra.range || !extra.loc) {
-        simple_traverse_1.simpleTraverse(estree, {
-            enter: node => {
-                if (!extra.range) {
-                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- TS 4.0 made this an error because the types aren't optional
-                    // @ts-expect-error
-                    delete node.range;
-                }
-                if (!extra.loc) {
-                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- TS 4.0 made this an error because the types aren't optional
-                    // @ts-expect-error
-                    delete node.loc;
-                }
-            },
-        });
-    }
-    /**
-     * Optionally convert and include all tokens in the AST
-     */
-    if (extra.tokens) {
-        estree.tokens = node_utils_1.convertTokens(ast);
-    }
-    /**
-     * Optionally convert and include all comments in the AST
-     */
-    if (extra.comment) {
-        estree.comments = convert_comments_1.convertComments(ast, extra.code);
-    }
-    const astMaps = instance.getASTMaps();
-    return { estree, astMaps };
-}
-exports.astConverter = astConverter;
-//# sourceMappingURL=ast-converter.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map
deleted file mode 100644
index 6a5b215..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ast-converter.js","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAC7D,yDAAqD;AACrD,6CAA6C;AAG7C,uDAAmD;AAEnD,SAAgB,YAAY,CAC1B,GAAe,EACf,KAAY,EACZ,sBAA+B;IAE/B;;;OAGG;IACH,6BAA6B;IAC7B,8DAA8D;IAC9D,MAAM,gBAAgB,GAAI,GAAW,CAAC,gBAAgB,CAAC;IACvD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,sBAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED;;OAEG;IACH,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,GAAG,EAAE;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,KAAK;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,sBAAsB;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9B,gCAAc,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBAChB,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,GAAG,CAAC;iBACjB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,MAAM,GAAG,0BAAa,CAAC,GAAG,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,kCAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAhED,oCAgEC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts
deleted file mode 100644
index 3f081e6..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import * as ts from 'typescript';
-import { TSESTree } from './ts-estree';
-/**
- * Convert all comments for the given AST.
- * @param ast the AST object
- * @param code the TypeScript code
- * @returns the converted ESTreeComment
- * @private
- */
-export declare function convertComments(ast: ts.SourceFile, code: string): TSESTree.Comment[];
-//# sourceMappingURL=convert-comments.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts.map
deleted file mode 100644
index e3e8a04..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convert-comments.d.ts","sourceRoot":"","sources":["../src/convert-comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAmB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,EAAE,CAAC,UAAU,EAClB,IAAI,EAAE,MAAM,GACX,QAAQ,CAAC,OAAO,EAAE,CAgCpB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js
deleted file mode 100644
index de4a735..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.convertComments = void 0;
-const ts = __importStar(require("typescript"));
-const util_1 = require("tsutils/util/util");
-const node_utils_1 = require("./node-utils");
-const ts_estree_1 = require("./ts-estree");
-/**
- * Convert all comments for the given AST.
- * @param ast the AST object
- * @param code the TypeScript code
- * @returns the converted ESTreeComment
- * @private
- */
-function convertComments(ast, code) {
-    const comments = [];
-    util_1.forEachComment(ast, (_, comment) => {
-        const type = comment.kind == ts.SyntaxKind.SingleLineCommentTrivia
-            ? ts_estree_1.AST_TOKEN_TYPES.Line
-            : ts_estree_1.AST_TOKEN_TYPES.Block;
-        const range = [comment.pos, comment.end];
-        const loc = node_utils_1.getLocFor(range[0], range[1], ast);
-        // both comments start with 2 characters - /* or //
-        const textStart = range[0] + 2;
-        const textEnd = comment.kind === ts.SyntaxKind.SingleLineCommentTrivia
-            ? // single line comments end at the end
-                range[1] - textStart
-            : // multiline comments end 2 characters early
-                range[1] - textStart - 2;
-        comments.push({
-            type,
-            value: code.substr(textStart, textEnd),
-            range,
-            loc,
-        });
-    }, ast);
-    return comments;
-}
-exports.convertComments = convertComments;
-//# sourceMappingURL=convert-comments.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map
deleted file mode 100644
index 6952a58..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convert-comments.js","sourceRoot":"","sources":["../src/convert-comments.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,4CAAmD;AACnD,6CAAyC;AACzC,2CAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,GAAkB,EAClB,IAAY;IAEZ,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,qBAAc,CACZ,GAAG,EACH,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACb,MAAM,IAAI,GACR,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACnD,CAAC,CAAC,2BAAe,CAAC,IAAI;YACtB,CAAC,CAAC,2BAAe,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,sBAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE/C,mDAAmD;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,uBAAuB;YACpD,CAAC,CAAC,sCAAsC;gBACtC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;YACtB,CAAC,CAAC,4CAA4C;gBAC5C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;YACtC,KAAK;YACL,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,EACD,GAAG,CACJ,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAnCD,0CAmCC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts
deleted file mode 100644
index c065e15..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts
+++ /dev/null
@@ -1,152 +0,0 @@
-import * as ts from 'typescript';
-import { TSError } from './node-utils';
-import { ParserWeakMap, ParserWeakMapESTreeToTSNode } from './parser-options';
-import { TSESTree, TSNode } from './ts-estree';
-interface ConverterOptions {
-    errorOnUnknownASTType: boolean;
-    useJSXTextNode: boolean;
-    shouldPreserveNodeMaps: boolean;
-}
-/**
- * Extends and formats a given error object
- * @param error the error object
- * @returns converted error object
- */
-export declare function convertError(error: any): TSError;
-export interface ASTMaps {
-    esTreeNodeToTSNodeMap: ParserWeakMapESTreeToTSNode;
-    tsNodeToESTreeNodeMap: ParserWeakMap<TSNode, TSESTree.Node>;
-}
-export declare class Converter {
-    private readonly ast;
-    private readonly options;
-    private readonly esTreeNodeToTSNodeMap;
-    private readonly tsNodeToESTreeNodeMap;
-    private allowPattern;
-    private inTypeMode;
-    /**
-     * Converts a TypeScript node into an ESTree node
-     * @param ast the full TypeScript AST
-     * @param options additional options for the conversion
-     * @returns the converted ESTreeNode
-     */
-    constructor(ast: ts.SourceFile, options: ConverterOptions);
-    getASTMaps(): ASTMaps;
-    convertProgram(): TSESTree.Program;
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param node the child ts.Node
-     * @param parent parentNode
-     * @param inTypeMode flag to determine if we are in typeMode
-     * @param allowPattern flag to determine if patterns are allowed
-     * @returns the converted ESTree node
-     */
-    private converter;
-    /**
-     * Fixes the exports of the given ts.Node
-     * @param node the ts.Node
-     * @param result result
-     * @returns the ESTreeNode with fixed exports
-     */
-    private fixExports;
-    /**
-     * Register specific TypeScript node into map with first ESTree node provided
-     */
-    private registerTSNodeInNodeMap;
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    private convertPattern;
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    private convertChild;
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    private convertType;
-    private createNode;
-    private convertBindingNameWithTypeAnnotation;
-    /**
-     * Converts a child into a type annotation. This creates an intermediary
-     * TypeAnnotation node to match what Flow does.
-     * @param child The TypeScript AST node to convert.
-     * @param parent parentNode
-     * @returns The type annotation node.
-     */
-    private convertTypeAnnotation;
-    /**
-     * Coverts body Nodes and add a directive field to StringLiterals
-     * @param nodes of ts.Node
-     * @param parent parentNode
-     * @returns Array of body statements
-     */
-    private convertBodyExpressions;
-    /**
-     * Converts a ts.Node's typeArguments to TSTypeParameterInstantiation node
-     * @param typeArguments ts.NodeArray typeArguments
-     * @param node parent used to create this node
-     * @returns TypeParameterInstantiation node
-     */
-    private convertTypeArgumentsToTypeParameters;
-    /**
-     * Converts a ts.Node's typeParameters to TSTypeParameterDeclaration node
-     * @param typeParameters ts.Node typeParameters
-     * @returns TypeParameterDeclaration node
-     */
-    private convertTSTypeParametersToTypeParametersDeclaration;
-    /**
-     * Converts an array of ts.Node parameters into an array of ESTreeNode params
-     * @param parameters An array of ts.Node params to be converted
-     * @returns an array of converted ESTreeNode params
-     */
-    private convertParameters;
-    private convertChainExpression;
-    /**
-     * For nodes that are copied directly from the TypeScript AST into
-     * ESTree mostly as-is. The only difference is the addition of a type
-     * property instead of a kind property. Recursively copies all children.
-     */
-    private deeplyCopy;
-    /**
-     * Converts a TypeScript JSX node.tagName into an ESTree node.name
-     * @param node the tagName object from a JSX ts.Node
-     * @param parent
-     * @returns the converted ESTree name object
-     */
-    private convertJSXTagName;
-    /**
-     * Applies the given TS modifiers to the given result object.
-     * @param result
-     * @param modifiers original ts.Nodes from the node.modifiers array
-     * @returns the current result object will be mutated
-     * @deprecated This method adds not standardized `modifiers` property in nodes
-     */
-    private applyModifiersToResult;
-    /**
-     * Uses the provided range location to adjust the location data of the given Node
-     * @param result The node that will have its location data mutated
-     * @param childRange The child node range used to expand location
-     */
-    private fixParentLocation;
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * The core of the conversion logic:
-     * Identify and convert each relevant TypeScript SyntaxKind
-     * @param node the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    private convertNode;
-}
-export {};
-//# sourceMappingURL=convert.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map
deleted file mode 100644
index c1f6816..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAkBL,OAAO,EAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAEL,QAAQ,EACR,MAAM,EAEP,MAAM,aAAa,CAAC;AAKrB,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAMhD;AAED,MAAM,WAAW,OAAO;IACtB,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAEvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;OAKG;gBACS,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAKzD,UAAU,IAAI,OAAO;IAOrB,cAAc,IAAI,QAAQ,CAAC,OAAO;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAyDlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,oCAAoC;IAe5C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,oCAAoC;IAa5C;;;;OAIG;IACH,OAAO,CAAC,kDAAkD;IAe1D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IA4C9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmElB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CA8iEpB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js
deleted file mode 100644
index e45592f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js
+++ /dev/null
@@ -1,2206 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Converter = exports.convertError = void 0;
-// There's lots of funny stuff due to the typing of ts.Node
-/* eslint-disable @typescript-eslint/no-explicit-any */
-const ts = __importStar(require("typescript"));
-const node_utils_1 = require("./node-utils");
-const ts_estree_1 = require("./ts-estree");
-const version_check_1 = require("./version-check");
-const SyntaxKind = ts.SyntaxKind;
-/**
- * Extends and formats a given error object
- * @param error the error object
- * @returns converted error object
- */
-function convertError(error) {
-    return node_utils_1.createError(error.file, error.start, error.message || error.messageText);
-}
-exports.convertError = convertError;
-class Converter {
-    /**
-     * Converts a TypeScript node into an ESTree node
-     * @param ast the full TypeScript AST
-     * @param options additional options for the conversion
-     * @returns the converted ESTreeNode
-     */
-    constructor(ast, options) {
-        this.esTreeNodeToTSNodeMap = new WeakMap();
-        this.tsNodeToESTreeNodeMap = new WeakMap();
-        this.allowPattern = false;
-        this.inTypeMode = false;
-        this.ast = ast;
-        this.options = Object.assign({}, options);
-    }
-    getASTMaps() {
-        return {
-            esTreeNodeToTSNodeMap: this.esTreeNodeToTSNodeMap,
-            tsNodeToESTreeNodeMap: this.tsNodeToESTreeNodeMap,
-        };
-    }
-    convertProgram() {
-        return this.converter(this.ast);
-    }
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param node the child ts.Node
-     * @param parent parentNode
-     * @param inTypeMode flag to determine if we are in typeMode
-     * @param allowPattern flag to determine if patterns are allowed
-     * @returns the converted ESTree node
-     */
-    converter(node, parent, inTypeMode, allowPattern) {
-        /**
-         * Exit early for null and undefined
-         */
-        if (!node) {
-            return null;
-        }
-        const typeMode = this.inTypeMode;
-        const pattern = this.allowPattern;
-        if (inTypeMode !== undefined) {
-            this.inTypeMode = inTypeMode;
-        }
-        if (allowPattern !== undefined) {
-            this.allowPattern = allowPattern;
-        }
-        const result = this.convertNode(node, (parent !== null && parent !== void 0 ? parent : node.parent));
-        this.registerTSNodeInNodeMap(node, result);
-        this.inTypeMode = typeMode;
-        this.allowPattern = pattern;
-        return result;
-    }
-    /**
-     * Fixes the exports of the given ts.Node
-     * @param node the ts.Node
-     * @param result result
-     * @returns the ESTreeNode with fixed exports
-     */
-    fixExports(node, result) {
-        // check for exports
-        if (node.modifiers && node.modifiers[0].kind === SyntaxKind.ExportKeyword) {
-            /**
-             * Make sure that original node is registered instead of export
-             */
-            this.registerTSNodeInNodeMap(node, result);
-            const exportKeyword = node.modifiers[0];
-            const nextModifier = node.modifiers[1];
-            const declarationIsDefault = nextModifier && nextModifier.kind === SyntaxKind.DefaultKeyword;
-            const varToken = declarationIsDefault
-                ? node_utils_1.findNextToken(nextModifier, this.ast, this.ast)
-                : node_utils_1.findNextToken(exportKeyword, this.ast, this.ast);
-            result.range[0] = varToken.getStart(this.ast);
-            result.loc = node_utils_1.getLocFor(result.range[0], result.range[1], this.ast);
-            if (declarationIsDefault) {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ExportDefaultDeclaration,
-                    declaration: result,
-                    range: [exportKeyword.getStart(this.ast), result.range[1]],
-                    exportKind: 'value',
-                });
-            }
-            else {
-                const isType = result.type === ts_estree_1.AST_NODE_TYPES.TSInterfaceDeclaration ||
-                    result.type === ts_estree_1.AST_NODE_TYPES.TSTypeAliasDeclaration;
-                const isDeclare = result.declare === true;
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ExportNamedDeclaration,
-                    declaration: result,
-                    specifiers: [],
-                    source: null,
-                    exportKind: isType || isDeclare ? 'type' : 'value',
-                    range: [exportKeyword.getStart(this.ast), result.range[1]],
-                });
-            }
-        }
-        return result;
-    }
-    /**
-     * Register specific TypeScript node into map with first ESTree node provided
-     */
-    registerTSNodeInNodeMap(node, result) {
-        if (result && this.options.shouldPreserveNodeMaps) {
-            if (!this.tsNodeToESTreeNodeMap.has(node)) {
-                this.tsNodeToESTreeNodeMap.set(node, result);
-            }
-        }
-    }
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    convertPattern(child, parent) {
-        return this.converter(child, parent, this.inTypeMode, true);
-    }
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    convertChild(child, parent) {
-        return this.converter(child, parent, this.inTypeMode, false);
-    }
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * @param child the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    convertType(child, parent) {
-        return this.converter(child, parent, true, false);
-    }
-    createNode(node, data) {
-        const result = data;
-        if (!result.range) {
-            result.range = node_utils_1.getRange(
-            // this is completely valid, but TS hates it
-            node, this.ast);
-        }
-        if (!result.loc) {
-            result.loc = node_utils_1.getLocFor(result.range[0], result.range[1], this.ast);
-        }
-        if (result && this.options.shouldPreserveNodeMaps) {
-            this.esTreeNodeToTSNodeMap.set(result, node);
-        }
-        return result;
-    }
-    convertBindingNameWithTypeAnnotation(name, tsType, parent) {
-        const id = this.convertPattern(name);
-        if (tsType) {
-            id.typeAnnotation = this.convertTypeAnnotation(tsType, parent);
-            this.fixParentLocation(id, id.typeAnnotation.range);
-        }
-        return id;
-    }
-    /**
-     * Converts a child into a type annotation. This creates an intermediary
-     * TypeAnnotation node to match what Flow does.
-     * @param child The TypeScript AST node to convert.
-     * @param parent parentNode
-     * @returns The type annotation node.
-     */
-    convertTypeAnnotation(child, parent) {
-        // in FunctionType and ConstructorType typeAnnotation has 2 characters `=>` and in other places is just colon
-        const offset = (parent === null || parent === void 0 ? void 0 : parent.kind) === SyntaxKind.FunctionType ||
-            (parent === null || parent === void 0 ? void 0 : parent.kind) === SyntaxKind.ConstructorType
-            ? 2
-            : 1;
-        const annotationStartCol = child.getFullStart() - offset;
-        const loc = node_utils_1.getLocFor(annotationStartCol, child.end, this.ast);
-        return {
-            type: ts_estree_1.AST_NODE_TYPES.TSTypeAnnotation,
-            loc,
-            range: [annotationStartCol, child.end],
-            typeAnnotation: this.convertType(child),
-        };
-    }
-    /**
-     * Coverts body Nodes and add a directive field to StringLiterals
-     * @param nodes of ts.Node
-     * @param parent parentNode
-     * @returns Array of body statements
-     */
-    convertBodyExpressions(nodes, parent) {
-        let allowDirectives = node_utils_1.canContainDirective(parent);
-        return (nodes
-            .map(statement => {
-            const child = this.convertChild(statement);
-            if (allowDirectives) {
-                if ((child === null || child === void 0 ? void 0 : child.expression) &&
-                    ts.isExpressionStatement(statement) &&
-                    ts.isStringLiteral(statement.expression)) {
-                    const raw = child.expression.raw;
-                    child.directive = raw.slice(1, -1);
-                    return child; // child can be null, but it's filtered below
-                }
-                else {
-                    allowDirectives = false;
-                }
-            }
-            return child; // child can be null, but it's filtered below
-        })
-            // filter out unknown nodes for now
-            .filter(statement => statement));
-    }
-    /**
-     * Converts a ts.Node's typeArguments to TSTypeParameterInstantiation node
-     * @param typeArguments ts.NodeArray typeArguments
-     * @param node parent used to create this node
-     * @returns TypeParameterInstantiation node
-     */
-    convertTypeArgumentsToTypeParameters(typeArguments, node) {
-        const greaterThanToken = node_utils_1.findNextToken(typeArguments, this.ast, this.ast);
-        return this.createNode(node, {
-            type: ts_estree_1.AST_NODE_TYPES.TSTypeParameterInstantiation,
-            range: [typeArguments.pos - 1, greaterThanToken.end],
-            params: typeArguments.map(typeArgument => this.convertType(typeArgument)),
-        });
-    }
-    /**
-     * Converts a ts.Node's typeParameters to TSTypeParameterDeclaration node
-     * @param typeParameters ts.Node typeParameters
-     * @returns TypeParameterDeclaration node
-     */
-    convertTSTypeParametersToTypeParametersDeclaration(typeParameters) {
-        const greaterThanToken = node_utils_1.findNextToken(typeParameters, this.ast, this.ast);
-        return {
-            type: ts_estree_1.AST_NODE_TYPES.TSTypeParameterDeclaration,
-            range: [typeParameters.pos - 1, greaterThanToken.end],
-            loc: node_utils_1.getLocFor(typeParameters.pos - 1, greaterThanToken.end, this.ast),
-            params: typeParameters.map(typeParameter => this.convertType(typeParameter)),
-        };
-    }
-    /**
-     * Converts an array of ts.Node parameters into an array of ESTreeNode params
-     * @param parameters An array of ts.Node params to be converted
-     * @returns an array of converted ESTreeNode params
-     */
-    convertParameters(parameters) {
-        if (!parameters || !parameters.length) {
-            return [];
-        }
-        return parameters.map(param => {
-            var _a;
-            const convertedParam = this.convertChild(param);
-            if ((_a = param.decorators) === null || _a === void 0 ? void 0 : _a.length) {
-                convertedParam.decorators = param.decorators.map(el => this.convertChild(el));
-            }
-            return convertedParam;
-        });
-    }
-    convertChainExpression(node, tsNode) {
-        const { child, isOptional } = (() => {
-            if (node.type === ts_estree_1.AST_NODE_TYPES.MemberExpression) {
-                return { child: node.object, isOptional: node.optional };
-            }
-            if (node.type === ts_estree_1.AST_NODE_TYPES.CallExpression) {
-                return { child: node.callee, isOptional: node.optional };
-            }
-            return { child: node.expression, isOptional: false };
-        })();
-        const isChildUnwrappable = node_utils_1.isChildUnwrappableOptionalChain(tsNode, child);
-        if (!isChildUnwrappable && !isOptional) {
-            return node;
-        }
-        if (isChildUnwrappable && node_utils_1.isChainExpression(child)) {
-            // unwrap the chain expression child
-            const newChild = child.expression;
-            if (node.type === ts_estree_1.AST_NODE_TYPES.MemberExpression) {
-                node.object = newChild;
-            }
-            else if (node.type === ts_estree_1.AST_NODE_TYPES.CallExpression) {
-                node.callee = newChild;
-            }
-            else {
-                node.expression = newChild;
-            }
-        }
-        return this.createNode(tsNode, {
-            type: ts_estree_1.AST_NODE_TYPES.ChainExpression,
-            expression: node,
-        });
-    }
-    /**
-     * For nodes that are copied directly from the TypeScript AST into
-     * ESTree mostly as-is. The only difference is the addition of a type
-     * property instead of a kind property. Recursively copies all children.
-     */
-    deeplyCopy(node) {
-        if (node.kind === ts.SyntaxKind.JSDocFunctionType) {
-            throw node_utils_1.createError(this.ast, node.pos, 'JSDoc types can only be used inside documentation comments.');
-        }
-        const customType = `TS${SyntaxKind[node.kind]}`;
-        /**
-         * If the "errorOnUnknownASTType" option is set to true, throw an error,
-         * otherwise fallback to just including the unknown type as-is.
-         */
-        if (this.options.errorOnUnknownASTType && !ts_estree_1.AST_NODE_TYPES[customType]) {
-            throw new Error(`Unknown AST_NODE_TYPE: "${customType}"`);
-        }
-        const result = this.createNode(node, {
-            type: customType,
-        });
-        if ('type' in node) {
-            result.typeAnnotation =
-                node.type && 'kind' in node.type && ts.isTypeNode(node.type)
-                    ? this.convertTypeAnnotation(node.type, node)
-                    : null;
-        }
-        if ('typeArguments' in node) {
-            result.typeParameters =
-                node.typeArguments && 'pos' in node.typeArguments
-                    ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                    : null;
-        }
-        if ('typeParameters' in node) {
-            result.typeParameters =
-                node.typeParameters && 'pos' in node.typeParameters
-                    ? this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters)
-                    : null;
-        }
-        if ('decorators' in node && node.decorators && node.decorators.length) {
-            result.decorators = node.decorators.map(el => this.convertChild(el));
-        }
-        Object.entries(node)
-            .filter(([key]) => !/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators)$/.test(key))
-            .forEach(([key, value]) => {
-            if (Array.isArray(value)) {
-                result[key] = value.map(el => this.convertChild(el));
-            }
-            else if (value && typeof value === 'object' && value.kind) {
-                // need to check node[key].kind to ensure we don't try to convert a symbol
-                result[key] = this.convertChild(value);
-            }
-            else {
-                result[key] = value;
-            }
-        });
-        return result;
-    }
-    /**
-     * Converts a TypeScript JSX node.tagName into an ESTree node.name
-     * @param node the tagName object from a JSX ts.Node
-     * @param parent
-     * @returns the converted ESTree name object
-     */
-    convertJSXTagName(node, parent) {
-        let result;
-        switch (node.kind) {
-            case SyntaxKind.PropertyAccessExpression:
-                if (node.name.kind === SyntaxKind.PrivateIdentifier) {
-                    // This is one of the few times where TS explicitly errors, and doesn't even gracefully handle the syntax.
-                    // So we shouldn't ever get into this state to begin with.
-                    throw new Error('Non-private identifier expected.');
-                }
-                result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXMemberExpression,
-                    object: this.convertJSXTagName(node.expression, parent),
-                    property: this.convertJSXTagName(node.name, parent),
-                });
-                break;
-            case SyntaxKind.ThisKeyword:
-                result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier,
-                    name: 'this',
-                });
-                break;
-            case SyntaxKind.Identifier:
-            default:
-                result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier,
-                    name: node.text,
-                });
-                break;
-        }
-        this.registerTSNodeInNodeMap(node, result);
-        return result;
-    }
-    /**
-     * Applies the given TS modifiers to the given result object.
-     * @param result
-     * @param modifiers original ts.Nodes from the node.modifiers array
-     * @returns the current result object will be mutated
-     * @deprecated This method adds not standardized `modifiers` property in nodes
-     */
-    applyModifiersToResult(result, modifiers) {
-        if (!modifiers || !modifiers.length) {
-            return;
-        }
-        /**
-         * Some modifiers are explicitly handled by applying them as
-         * boolean values on the result node. As well as adding them
-         * to the result, we remove them from the array, so that they
-         * are not handled twice.
-         */
-        const handledModifierIndices = {};
-        for (let i = 0; i < modifiers.length; i++) {
-            const modifier = modifiers[i];
-            switch (modifier.kind) {
-                /**
-                 * Ignore ExportKeyword and DefaultKeyword, they are handled
-                 * via the fixExports utility function
-                 */
-                case SyntaxKind.ExportKeyword:
-                case SyntaxKind.DefaultKeyword:
-                    handledModifierIndices[i] = true;
-                    break;
-                case SyntaxKind.ConstKeyword:
-                    result.const = true;
-                    handledModifierIndices[i] = true;
-                    break;
-                case SyntaxKind.DeclareKeyword:
-                    result.declare = true;
-                    handledModifierIndices[i] = true;
-                    break;
-                default:
-            }
-        }
-        /**
-         * If there are still valid modifiers available which have
-         * not been explicitly handled above, we just convert and
-         * add the modifiers array to the result node.
-         */
-        const remainingModifiers = modifiers.filter((_, i) => !handledModifierIndices[i]);
-        if (!remainingModifiers || !remainingModifiers.length) {
-            return;
-        }
-        result.modifiers = remainingModifiers.map(el => this.convertChild(el));
-    }
-    /**
-     * Uses the provided range location to adjust the location data of the given Node
-     * @param result The node that will have its location data mutated
-     * @param childRange The child node range used to expand location
-     */
-    fixParentLocation(result, childRange) {
-        if (childRange[0] < result.range[0]) {
-            result.range[0] = childRange[0];
-            result.loc.start = node_utils_1.getLineAndCharacterFor(result.range[0], this.ast);
-        }
-        if (childRange[1] > result.range[1]) {
-            result.range[1] = childRange[1];
-            result.loc.end = node_utils_1.getLineAndCharacterFor(result.range[1], this.ast);
-        }
-    }
-    /**
-     * Converts a TypeScript node into an ESTree node.
-     * The core of the conversion logic:
-     * Identify and convert each relevant TypeScript SyntaxKind
-     * @param node the child ts.Node
-     * @param parent parentNode
-     * @returns the converted ESTree node
-     */
-    convertNode(node, parent) {
-        var _a, _b, _c, _d, _e, _f, _g, _h, _j;
-        switch (node.kind) {
-            case SyntaxKind.SourceFile: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Program,
-                    body: this.convertBodyExpressions(node.statements, node),
-                    sourceType: node.externalModuleIndicator ? 'module' : 'script',
-                    range: [node.getStart(this.ast), node.endOfFileToken.end],
-                });
-            }
-            case SyntaxKind.Block: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.BlockStatement,
-                    body: this.convertBodyExpressions(node.statements, node),
-                });
-            }
-            case SyntaxKind.Identifier: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Identifier,
-                    name: node.text,
-                });
-            }
-            case SyntaxKind.WithStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.WithStatement,
-                    object: this.convertChild(node.expression),
-                    body: this.convertChild(node.statement),
-                });
-            // Control Flow
-            case SyntaxKind.ReturnStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ReturnStatement,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.LabeledStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.LabeledStatement,
-                    label: this.convertChild(node.label),
-                    body: this.convertChild(node.statement),
-                });
-            case SyntaxKind.ContinueStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ContinueStatement,
-                    label: this.convertChild(node.label),
-                });
-            case SyntaxKind.BreakStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.BreakStatement,
-                    label: this.convertChild(node.label),
-                });
-            // Choice
-            case SyntaxKind.IfStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.IfStatement,
-                    test: this.convertChild(node.expression),
-                    consequent: this.convertChild(node.thenStatement),
-                    alternate: this.convertChild(node.elseStatement),
-                });
-            case SyntaxKind.SwitchStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.SwitchStatement,
-                    discriminant: this.convertChild(node.expression),
-                    cases: node.caseBlock.clauses.map(el => this.convertChild(el)),
-                });
-            case SyntaxKind.CaseClause:
-            case SyntaxKind.DefaultClause:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.SwitchCase,
-                    // expression is present in case only
-                    test: node.kind === SyntaxKind.CaseClause
-                        ? this.convertChild(node.expression)
-                        : null,
-                    consequent: node.statements.map(el => this.convertChild(el)),
-                });
-            // Exceptions
-            case SyntaxKind.ThrowStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ThrowStatement,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.TryStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TryStatement,
-                    block: this.convertChild(node.tryBlock),
-                    handler: this.convertChild(node.catchClause),
-                    finalizer: this.convertChild(node.finallyBlock),
-                });
-            case SyntaxKind.CatchClause:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.CatchClause,
-                    param: node.variableDeclaration
-                        ? this.convertBindingNameWithTypeAnnotation(node.variableDeclaration.name, node.variableDeclaration.type)
-                        : null,
-                    body: this.convertChild(node.block),
-                });
-            // Loops
-            case SyntaxKind.WhileStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.WhileStatement,
-                    test: this.convertChild(node.expression),
-                    body: this.convertChild(node.statement),
-                });
-            /**
-             * Unlike other parsers, TypeScript calls a "DoWhileStatement"
-             * a "DoStatement"
-             */
-            case SyntaxKind.DoStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.DoWhileStatement,
-                    test: this.convertChild(node.expression),
-                    body: this.convertChild(node.statement),
-                });
-            case SyntaxKind.ForStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ForStatement,
-                    init: this.convertChild(node.initializer),
-                    test: this.convertChild(node.condition),
-                    update: this.convertChild(node.incrementor),
-                    body: this.convertChild(node.statement),
-                });
-            case SyntaxKind.ForInStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ForInStatement,
-                    left: this.convertPattern(node.initializer),
-                    right: this.convertChild(node.expression),
-                    body: this.convertChild(node.statement),
-                });
-            case SyntaxKind.ForOfStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ForOfStatement,
-                    left: this.convertPattern(node.initializer),
-                    right: this.convertChild(node.expression),
-                    body: this.convertChild(node.statement),
-                    await: Boolean(node.awaitModifier &&
-                        node.awaitModifier.kind === SyntaxKind.AwaitKeyword),
-                });
-            // Declarations
-            case SyntaxKind.FunctionDeclaration: {
-                const isDeclare = node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node);
-                const result = this.createNode(node, {
-                    type: isDeclare || !node.body
-                        ? ts_estree_1.AST_NODE_TYPES.TSDeclareFunction
-                        : ts_estree_1.AST_NODE_TYPES.FunctionDeclaration,
-                    id: this.convertChild(node.name),
-                    generator: !!node.asteriskToken,
-                    expression: false,
-                    async: node_utils_1.hasModifier(SyntaxKind.AsyncKeyword, node),
-                    params: this.convertParameters(node.parameters),
-                    body: this.convertChild(node.body) || undefined,
-                });
-                // Process returnType
-                if (node.type) {
-                    result.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                if (isDeclare) {
-                    result.declare = true;
-                }
-                // Process typeParameters
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                // check for exports
-                return this.fixExports(node, result);
-            }
-            case SyntaxKind.VariableDeclaration: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.VariableDeclarator,
-                    id: this.convertBindingNameWithTypeAnnotation(node.name, node.type, node),
-                    init: this.convertChild(node.initializer),
-                });
-                if (node.exclamationToken) {
-                    result.definite = true;
-                }
-                return result;
-            }
-            case SyntaxKind.VariableStatement: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.VariableDeclaration,
-                    declarations: node.declarationList.declarations.map(el => this.convertChild(el)),
-                    kind: node_utils_1.getDeclarationKind(node.declarationList),
-                });
-                /**
-                 * Semantically, decorators are not allowed on variable declarations,
-                 * but the TypeScript compiler will parse them and produce a valid AST,
-                 * so we handle them here too.
-                 */
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node)) {
-                    result.declare = true;
-                }
-                // check for exports
-                return this.fixExports(node, result);
-            }
-            // mostly for for-of, for-in
-            case SyntaxKind.VariableDeclarationList:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.VariableDeclaration,
-                    declarations: node.declarations.map(el => this.convertChild(el)),
-                    kind: node_utils_1.getDeclarationKind(node),
-                });
-            // Expressions
-            case SyntaxKind.ExpressionStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ExpressionStatement,
-                    expression: this.convertChild(node.expression),
-                });
-            case SyntaxKind.ThisKeyword:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ThisExpression,
-                });
-            case SyntaxKind.ArrayLiteralExpression: {
-                // TypeScript uses ArrayLiteralExpression in destructuring assignment, too
-                if (this.allowPattern) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ArrayPattern,
-                        elements: node.elements.map(el => this.convertPattern(el)),
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ArrayExpression,
-                        elements: node.elements.map(el => this.convertChild(el)),
-                    });
-                }
-            }
-            case SyntaxKind.ObjectLiteralExpression: {
-                // TypeScript uses ObjectLiteralExpression in destructuring assignment, too
-                if (this.allowPattern) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ObjectPattern,
-                        properties: node.properties.map(el => this.convertPattern(el)),
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ObjectExpression,
-                        properties: node.properties.map(el => this.convertChild(el)),
-                    });
-                }
-            }
-            case SyntaxKind.PropertyAssignment:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Property,
-                    key: this.convertChild(node.name),
-                    value: this.converter(node.initializer, node, this.inTypeMode, this.allowPattern),
-                    computed: node_utils_1.isComputedProperty(node.name),
-                    method: false,
-                    shorthand: false,
-                    kind: 'init',
-                });
-            case SyntaxKind.ShorthandPropertyAssignment: {
-                if (node.objectAssignmentInitializer) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.Property,
-                        key: this.convertChild(node.name),
-                        value: this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.AssignmentPattern,
-                            left: this.convertPattern(node.name),
-                            right: this.convertChild(node.objectAssignmentInitializer),
-                        }),
-                        computed: false,
-                        method: false,
-                        shorthand: true,
-                        kind: 'init',
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.Property,
-                        key: this.convertChild(node.name),
-                        value: this.convertChild(node.name),
-                        computed: false,
-                        method: false,
-                        shorthand: true,
-                        kind: 'init',
-                    });
-                }
-            }
-            case SyntaxKind.ComputedPropertyName:
-                return this.convertChild(node.expression);
-            case SyntaxKind.PropertyDeclaration: {
-                const isAbstract = node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node);
-                const result = this.createNode(node, {
-                    type: isAbstract
-                        ? ts_estree_1.AST_NODE_TYPES.TSAbstractClassProperty
-                        : ts_estree_1.AST_NODE_TYPES.ClassProperty,
-                    key: this.convertChild(node.name),
-                    value: this.convertChild(node.initializer),
-                    computed: node_utils_1.isComputedProperty(node.name),
-                    static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node),
-                    readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined,
-                    declare: node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node),
-                });
-                if (node.type) {
-                    result.typeAnnotation = this.convertTypeAnnotation(node.type, node);
-                }
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
-                const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                if (accessibility) {
-                    result.accessibility = accessibility;
-                }
-                if ((node.name.kind === SyntaxKind.Identifier ||
-                    node.name.kind === SyntaxKind.ComputedPropertyName) &&
-                    node.questionToken) {
-                    result.optional = true;
-                }
-                if (node.exclamationToken) {
-                    result.definite = true;
-                }
-                if (result.key.type === ts_estree_1.AST_NODE_TYPES.Literal && node.questionToken) {
-                    result.optional = true;
-                }
-                return result;
-            }
-            case SyntaxKind.GetAccessor:
-            case SyntaxKind.SetAccessor:
-            case SyntaxKind.MethodDeclaration: {
-                const method = this.createNode(node, {
-                    type: !node.body
-                        ? ts_estree_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression
-                        : ts_estree_1.AST_NODE_TYPES.FunctionExpression,
-                    id: null,
-                    generator: !!node.asteriskToken,
-                    expression: false,
-                    async: node_utils_1.hasModifier(SyntaxKind.AsyncKeyword, node),
-                    body: this.convertChild(node.body),
-                    range: [node.parameters.pos - 1, node.end],
-                    params: [],
-                });
-                if (node.type) {
-                    method.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                // Process typeParameters
-                if (node.typeParameters) {
-                    method.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                    this.fixParentLocation(method, method.typeParameters.range);
-                }
-                let result;
-                if (parent.kind === SyntaxKind.ObjectLiteralExpression) {
-                    method.params = node.parameters.map(el => this.convertChild(el));
-                    result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.Property,
-                        key: this.convertChild(node.name),
-                        value: method,
-                        computed: node_utils_1.isComputedProperty(node.name),
-                        method: node.kind === SyntaxKind.MethodDeclaration,
-                        shorthand: false,
-                        kind: 'init',
-                    });
-                }
-                else {
-                    // class
-                    /**
-                     * Unlike in object literal methods, class method params can have decorators
-                     */
-                    method.params = this.convertParameters(node.parameters);
-                    /**
-                     * TypeScript class methods can be defined as "abstract"
-                     */
-                    const methodDefinitionType = node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node)
-                        ? ts_estree_1.AST_NODE_TYPES.TSAbstractMethodDefinition
-                        : ts_estree_1.AST_NODE_TYPES.MethodDefinition;
-                    result = this.createNode(node, {
-                        type: methodDefinitionType,
-                        key: this.convertChild(node.name),
-                        value: method,
-                        computed: node_utils_1.isComputedProperty(node.name),
-                        static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node),
-                        kind: 'method',
-                    });
-                    if (node.decorators) {
-                        result.decorators = node.decorators.map(el => this.convertChild(el));
-                    }
-                    const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                    if (accessibility) {
-                        result.accessibility = accessibility;
-                    }
-                }
-                if (node.questionToken) {
-                    result.optional = true;
-                }
-                if (node.kind === SyntaxKind.GetAccessor) {
-                    result.kind = 'get';
-                }
-                else if (node.kind === SyntaxKind.SetAccessor) {
-                    result.kind = 'set';
-                }
-                else if (!result.static &&
-                    node.name.kind === SyntaxKind.StringLiteral &&
-                    node.name.text === 'constructor' &&
-                    result.type !== ts_estree_1.AST_NODE_TYPES.Property) {
-                    result.kind = 'constructor';
-                }
-                return result;
-            }
-            // TypeScript uses this even for static methods named "constructor"
-            case SyntaxKind.Constructor: {
-                const lastModifier = node_utils_1.getLastModifier(node);
-                const constructorToken = (lastModifier && node_utils_1.findNextToken(lastModifier, node, this.ast)) ||
-                    node.getFirstToken();
-                const constructor = this.createNode(node, {
-                    type: !node.body
-                        ? ts_estree_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression
-                        : ts_estree_1.AST_NODE_TYPES.FunctionExpression,
-                    id: null,
-                    params: this.convertParameters(node.parameters),
-                    generator: false,
-                    expression: false,
-                    async: false,
-                    body: this.convertChild(node.body),
-                    range: [node.parameters.pos - 1, node.end],
-                });
-                // Process typeParameters
-                if (node.typeParameters) {
-                    constructor.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                    this.fixParentLocation(constructor, constructor.typeParameters.range);
-                }
-                // Process returnType
-                if (node.type) {
-                    constructor.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                const constructorKey = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Identifier,
-                    name: 'constructor',
-                    range: [constructorToken.getStart(this.ast), constructorToken.end],
-                });
-                const isStatic = node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node);
-                const result = this.createNode(node, {
-                    type: node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node)
-                        ? ts_estree_1.AST_NODE_TYPES.TSAbstractMethodDefinition
-                        : ts_estree_1.AST_NODE_TYPES.MethodDefinition,
-                    key: constructorKey,
-                    value: constructor,
-                    computed: false,
-                    static: isStatic,
-                    kind: isStatic ? 'method' : 'constructor',
-                });
-                const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                if (accessibility) {
-                    result.accessibility = accessibility;
-                }
-                return result;
-            }
-            case SyntaxKind.FunctionExpression: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.FunctionExpression,
-                    id: this.convertChild(node.name),
-                    generator: !!node.asteriskToken,
-                    params: this.convertParameters(node.parameters),
-                    body: this.convertChild(node.body),
-                    async: node_utils_1.hasModifier(SyntaxKind.AsyncKeyword, node),
-                    expression: false,
-                });
-                // Process returnType
-                if (node.type) {
-                    result.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                // Process typeParameters
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                return result;
-            }
-            case SyntaxKind.SuperKeyword:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Super,
-                });
-            case SyntaxKind.ArrayBindingPattern:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ArrayPattern,
-                    elements: node.elements.map(el => this.convertPattern(el)),
-                });
-            // occurs with missing array elements like [,]
-            case SyntaxKind.OmittedExpression:
-                return null;
-            case SyntaxKind.ObjectBindingPattern:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ObjectPattern,
-                    properties: node.elements.map(el => this.convertPattern(el)),
-                });
-            case SyntaxKind.BindingElement: {
-                if (parent.kind === SyntaxKind.ArrayBindingPattern) {
-                    const arrayItem = this.convertChild(node.name, parent);
-                    if (node.initializer) {
-                        return this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.AssignmentPattern,
-                            left: arrayItem,
-                            right: this.convertChild(node.initializer),
-                        });
-                    }
-                    else if (node.dotDotDotToken) {
-                        return this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.RestElement,
-                            argument: arrayItem,
-                        });
-                    }
-                    else {
-                        return arrayItem;
-                    }
-                }
-                else {
-                    let result;
-                    if (node.dotDotDotToken) {
-                        result = this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.RestElement,
-                            argument: this.convertChild((_a = node.propertyName) !== null && _a !== void 0 ? _a : node.name),
-                        });
-                    }
-                    else {
-                        result = this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.Property,
-                            key: this.convertChild((_b = node.propertyName) !== null && _b !== void 0 ? _b : node.name),
-                            value: this.convertChild(node.name),
-                            computed: Boolean(node.propertyName &&
-                                node.propertyName.kind === SyntaxKind.ComputedPropertyName),
-                            method: false,
-                            shorthand: !node.propertyName,
-                            kind: 'init',
-                        });
-                    }
-                    if (node.initializer) {
-                        result.value = this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.AssignmentPattern,
-                            left: this.convertChild(node.name),
-                            right: this.convertChild(node.initializer),
-                            range: [node.name.getStart(this.ast), node.initializer.end],
-                        });
-                    }
-                    return result;
-                }
-            }
-            case SyntaxKind.ArrowFunction: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ArrowFunctionExpression,
-                    generator: false,
-                    id: null,
-                    params: this.convertParameters(node.parameters),
-                    body: this.convertChild(node.body),
-                    async: node_utils_1.hasModifier(SyntaxKind.AsyncKeyword, node),
-                    expression: node.body.kind !== SyntaxKind.Block,
-                });
-                // Process returnType
-                if (node.type) {
-                    result.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                // Process typeParameters
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                return result;
-            }
-            case SyntaxKind.YieldExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.YieldExpression,
-                    delegate: !!node.asteriskToken,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.AwaitExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.AwaitExpression,
-                    argument: this.convertChild(node.expression),
-                });
-            // Template Literals
-            case SyntaxKind.NoSubstitutionTemplateLiteral:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TemplateLiteral,
-                    quasis: [
-                        this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.TemplateElement,
-                            value: {
-                                raw: this.ast.text.slice(node.getStart(this.ast) + 1, node.end - 1),
-                                cooked: node.text,
-                            },
-                            tail: true,
-                        }),
-                    ],
-                    expressions: [],
-                });
-            case SyntaxKind.TemplateExpression: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TemplateLiteral,
-                    quasis: [this.convertChild(node.head)],
-                    expressions: [],
-                });
-                node.templateSpans.forEach(templateSpan => {
-                    result.expressions.push(this.convertChild(templateSpan.expression));
-                    result.quasis.push(this.convertChild(templateSpan.literal));
-                });
-                return result;
-            }
-            case SyntaxKind.TaggedTemplateExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TaggedTemplateExpression,
-                    typeParameters: node.typeArguments
-                        ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                        : undefined,
-                    tag: this.convertChild(node.tag),
-                    quasi: this.convertChild(node.template),
-                });
-            case SyntaxKind.TemplateHead:
-            case SyntaxKind.TemplateMiddle:
-            case SyntaxKind.TemplateTail: {
-                const tail = node.kind === SyntaxKind.TemplateTail;
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TemplateElement,
-                    value: {
-                        raw: this.ast.text.slice(node.getStart(this.ast) + 1, node.end - (tail ? 1 : 2)),
-                        cooked: node.text,
-                    },
-                    tail,
-                });
-            }
-            // Patterns
-            case SyntaxKind.SpreadAssignment:
-            case SyntaxKind.SpreadElement: {
-                if (this.allowPattern) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.RestElement,
-                        argument: this.convertPattern(node.expression),
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.SpreadElement,
-                        argument: this.convertChild(node.expression),
-                    });
-                }
-            }
-            case SyntaxKind.Parameter: {
-                let parameter;
-                let result;
-                if (node.dotDotDotToken) {
-                    parameter = result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.RestElement,
-                        argument: this.convertChild(node.name),
-                    });
-                }
-                else if (node.initializer) {
-                    parameter = this.convertChild(node.name);
-                    result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.AssignmentPattern,
-                        left: parameter,
-                        right: this.convertChild(node.initializer),
-                    });
-                    if (node.modifiers) {
-                        // AssignmentPattern should not contain modifiers in range
-                        result.range[0] = parameter.range[0];
-                        result.loc = node_utils_1.getLocFor(result.range[0], result.range[1], this.ast);
-                    }
-                }
-                else {
-                    parameter = result = this.convertChild(node.name, parent);
-                }
-                if (node.type) {
-                    parameter.typeAnnotation = this.convertTypeAnnotation(node.type, node);
-                    this.fixParentLocation(parameter, parameter.typeAnnotation.range);
-                }
-                if (node.questionToken) {
-                    if (node.questionToken.end > parameter.range[1]) {
-                        parameter.range[1] = node.questionToken.end;
-                        parameter.loc.end = node_utils_1.getLineAndCharacterFor(parameter.range[1], this.ast);
-                    }
-                    parameter.optional = true;
-                }
-                if (node.modifiers) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSParameterProperty,
-                        accessibility: (_c = node_utils_1.getTSNodeAccessibility(node)) !== null && _c !== void 0 ? _c : undefined,
-                        readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined,
-                        static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node) || undefined,
-                        export: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node) || undefined,
-                        parameter: result,
-                    });
-                }
-                return result;
-            }
-            // Classes
-            case SyntaxKind.ClassDeclaration:
-            case SyntaxKind.ClassExpression: {
-                const heritageClauses = (_d = node.heritageClauses) !== null && _d !== void 0 ? _d : [];
-                const classNodeType = node.kind === SyntaxKind.ClassDeclaration
-                    ? ts_estree_1.AST_NODE_TYPES.ClassDeclaration
-                    : ts_estree_1.AST_NODE_TYPES.ClassExpression;
-                const superClass = heritageClauses.find(clause => clause.token === SyntaxKind.ExtendsKeyword);
-                const implementsClause = heritageClauses.find(clause => clause.token === SyntaxKind.ImplementsKeyword);
-                const result = this.createNode(node, {
-                    type: classNodeType,
-                    id: this.convertChild(node.name),
-                    body: this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ClassBody,
-                        body: [],
-                        range: [node.members.pos - 1, node.end],
-                    }),
-                    superClass: (superClass === null || superClass === void 0 ? void 0 : superClass.types[0]) ? this.convertChild(superClass.types[0].expression)
-                        : null,
-                });
-                if (superClass) {
-                    if (superClass.types.length > 1) {
-                        throw node_utils_1.createError(this.ast, superClass.types[1].pos, 'Classes can only extend a single class.');
-                    }
-                    if ((_e = superClass.types[0]) === null || _e === void 0 ? void 0 : _e.typeArguments) {
-                        result.superTypeParameters = this.convertTypeArgumentsToTypeParameters(superClass.types[0].typeArguments, superClass.types[0]);
-                    }
-                }
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                if (implementsClause) {
-                    result.implements = implementsClause.types.map(el => this.convertChild(el));
-                }
-                /**
-                 * TypeScript class declarations can be defined as "abstract"
-                 */
-                if (node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node)) {
-                    result.abstract = true;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node)) {
-                    result.declare = true;
-                }
-                if (node.decorators) {
-                    result.decorators = node.decorators.map(el => this.convertChild(el));
-                }
-                const filteredMembers = node.members.filter(node_utils_1.isESTreeClassMember);
-                if (filteredMembers.length) {
-                    result.body.body = filteredMembers.map(el => this.convertChild(el));
-                }
-                // check for exports
-                return this.fixExports(node, result);
-            }
-            // Modules
-            case SyntaxKind.ModuleBlock:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSModuleBlock,
-                    body: this.convertBodyExpressions(node.statements, node),
-                });
-            case SyntaxKind.ImportDeclaration: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ImportDeclaration,
-                    source: this.convertChild(node.moduleSpecifier),
-                    specifiers: [],
-                    importKind: 'value',
-                });
-                if (node.importClause) {
-                    if (node.importClause.isTypeOnly) {
-                        result.importKind = 'type';
-                    }
-                    if (node.importClause.name) {
-                        result.specifiers.push(this.convertChild(node.importClause));
-                    }
-                    if (node.importClause.namedBindings) {
-                        switch (node.importClause.namedBindings.kind) {
-                            case SyntaxKind.NamespaceImport:
-                                result.specifiers.push(this.convertChild(node.importClause.namedBindings));
-                                break;
-                            case SyntaxKind.NamedImports:
-                                result.specifiers = result.specifiers.concat(node.importClause.namedBindings.elements.map(el => this.convertChild(el)));
-                                break;
-                        }
-                    }
-                }
-                return result;
-            }
-            case SyntaxKind.NamespaceImport:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ImportNamespaceSpecifier,
-                    local: this.convertChild(node.name),
-                });
-            case SyntaxKind.ImportSpecifier:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ImportSpecifier,
-                    local: this.convertChild(node.name),
-                    imported: this.convertChild((_f = node.propertyName) !== null && _f !== void 0 ? _f : node.name),
-                });
-            case SyntaxKind.ImportClause: {
-                const local = this.convertChild(node.name);
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ImportDefaultSpecifier,
-                    local,
-                    range: local.range,
-                });
-            }
-            case SyntaxKind.ExportDeclaration:
-                if (((_g = node.exportClause) === null || _g === void 0 ? void 0 : _g.kind) === SyntaxKind.NamedExports) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ExportNamedDeclaration,
-                        source: this.convertChild(node.moduleSpecifier),
-                        specifiers: node.exportClause.elements.map(el => this.convertChild(el)),
-                        exportKind: node.isTypeOnly ? 'type' : 'value',
-                        declaration: null,
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ExportAllDeclaration,
-                        source: this.convertChild(node.moduleSpecifier),
-                        exportKind: node.isTypeOnly ? 'type' : 'value',
-                        exported: 
-                        // note - for compat with 3.7.x, where node.exportClause is always undefined and
-                        //        SyntaxKind.NamespaceExport does not exist yet (i.e. is undefined), this
-                        //        cannot be shortened to an optional chain, or else you end up with
-                        //        undefined === undefined, and the true path will hard error at runtime
-                        node.exportClause &&
-                            node.exportClause.kind === SyntaxKind.NamespaceExport
-                            ? this.convertChild(node.exportClause.name)
-                            : null,
-                    });
-                }
-            case SyntaxKind.ExportSpecifier:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ExportSpecifier,
-                    local: this.convertChild((_h = node.propertyName) !== null && _h !== void 0 ? _h : node.name),
-                    exported: this.convertChild(node.name),
-                });
-            case SyntaxKind.ExportAssignment:
-                if (node.isExportEquals) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSExportAssignment,
-                        expression: this.convertChild(node.expression),
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ExportDefaultDeclaration,
-                        declaration: this.convertChild(node.expression),
-                        exportKind: 'value',
-                    });
-                }
-            // Unary Operations
-            case SyntaxKind.PrefixUnaryExpression:
-            case SyntaxKind.PostfixUnaryExpression: {
-                const operator = node_utils_1.getTextForTokenKind(node.operator);
-                /**
-                 * ESTree uses UpdateExpression for ++/--
-                 */
-                if (operator === '++' || operator === '--') {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.UpdateExpression,
-                        operator,
-                        prefix: node.kind === SyntaxKind.PrefixUnaryExpression,
-                        argument: this.convertChild(node.operand),
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.UnaryExpression,
-                        operator,
-                        prefix: node.kind === SyntaxKind.PrefixUnaryExpression,
-                        argument: this.convertChild(node.operand),
-                    });
-                }
-            }
-            case SyntaxKind.DeleteExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.UnaryExpression,
-                    operator: 'delete',
-                    prefix: true,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.VoidExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.UnaryExpression,
-                    operator: 'void',
-                    prefix: true,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.TypeOfExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.UnaryExpression,
-                    operator: 'typeof',
-                    prefix: true,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.TypeOperator:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeOperator,
-                    operator: node_utils_1.getTextForTokenKind(node.operator),
-                    typeAnnotation: this.convertChild(node.type),
-                });
-            // Binary Operations
-            case SyntaxKind.BinaryExpression: {
-                // TypeScript uses BinaryExpression for sequences as well
-                if (node_utils_1.isComma(node.operatorToken)) {
-                    const result = this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.SequenceExpression,
-                        expressions: [],
-                    });
-                    const left = this.convertChild(node.left);
-                    if (left.type === ts_estree_1.AST_NODE_TYPES.SequenceExpression &&
-                        node.left.kind !== SyntaxKind.ParenthesizedExpression) {
-                        result.expressions = result.expressions.concat(left.expressions);
-                    }
-                    else {
-                        result.expressions.push(left);
-                    }
-                    result.expressions.push(this.convertChild(node.right));
-                    return result;
-                }
-                else {
-                    const type = node_utils_1.getBinaryExpressionType(node.operatorToken);
-                    if (this.allowPattern &&
-                        type === ts_estree_1.AST_NODE_TYPES.AssignmentExpression) {
-                        return this.createNode(node, {
-                            type: ts_estree_1.AST_NODE_TYPES.AssignmentPattern,
-                            left: this.convertPattern(node.left, node),
-                            right: this.convertChild(node.right),
-                        });
-                    }
-                    return this.createNode(node, {
-                        type,
-                        operator: node_utils_1.getTextForTokenKind(node.operatorToken.kind),
-                        left: this.converter(node.left, node, this.inTypeMode, type === ts_estree_1.AST_NODE_TYPES.AssignmentExpression),
-                        right: this.convertChild(node.right),
-                    });
-                }
-            }
-            case SyntaxKind.PropertyAccessExpression: {
-                const object = this.convertChild(node.expression);
-                const property = this.convertChild(node.name);
-                const computed = false;
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
-                    object,
-                    property,
-                    computed,
-                    optional: node.questionDotToken !== undefined,
-                });
-                return this.convertChainExpression(result, node);
-            }
-            case SyntaxKind.ElementAccessExpression: {
-                const object = this.convertChild(node.expression);
-                const property = this.convertChild(node.argumentExpression);
-                const computed = true;
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.MemberExpression,
-                    object,
-                    property,
-                    computed,
-                    optional: node.questionDotToken !== undefined,
-                });
-                return this.convertChainExpression(result, node);
-            }
-            case SyntaxKind.CallExpression: {
-                if (node.expression.kind === SyntaxKind.ImportKeyword) {
-                    if (node.arguments.length !== 1) {
-                        throw node_utils_1.createError(this.ast, node.arguments.pos, 'Dynamic import must have one specifier as an argument.');
-                    }
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.ImportExpression,
-                        source: this.convertChild(node.arguments[0]),
-                    });
-                }
-                const callee = this.convertChild(node.expression);
-                const args = node.arguments.map(el => this.convertChild(el));
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.CallExpression,
-                    callee,
-                    arguments: args,
-                    optional: node.questionDotToken !== undefined,
-                });
-                if (node.typeArguments) {
-                    result.typeParameters = this.convertTypeArgumentsToTypeParameters(node.typeArguments, node);
-                }
-                return this.convertChainExpression(result, node);
-            }
-            case SyntaxKind.NewExpression: {
-                // NOTE - NewExpression cannot have an optional chain in it
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.NewExpression,
-                    callee: this.convertChild(node.expression),
-                    arguments: node.arguments
-                        ? node.arguments.map(el => this.convertChild(el))
-                        : [],
-                });
-                if (node.typeArguments) {
-                    result.typeParameters = this.convertTypeArgumentsToTypeParameters(node.typeArguments, node);
-                }
-                return result;
-            }
-            case SyntaxKind.ConditionalExpression:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.ConditionalExpression,
-                    test: this.convertChild(node.condition),
-                    consequent: this.convertChild(node.whenTrue),
-                    alternate: this.convertChild(node.whenFalse),
-                });
-            case SyntaxKind.MetaProperty: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.MetaProperty,
-                    meta: this.createNode(
-                    // TODO: do we really want to convert it to Token?
-                    node.getFirstToken(), {
-                        type: ts_estree_1.AST_NODE_TYPES.Identifier,
-                        name: node_utils_1.getTextForTokenKind(node.keywordToken),
-                    }),
-                    property: this.convertChild(node.name),
-                });
-            }
-            case SyntaxKind.Decorator: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Decorator,
-                    expression: this.convertChild(node.expression),
-                });
-            }
-            // Literals
-            case SyntaxKind.StringLiteral: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    raw: '',
-                    value: '',
-                });
-                result.raw = this.ast.text.slice(result.range[0], result.range[1]);
-                if ('name' in parent && parent.name === node) {
-                    result.value = node.text;
-                }
-                else {
-                    result.value = node_utils_1.unescapeStringLiteralText(node.text);
-                }
-                return result;
-            }
-            case SyntaxKind.NumericLiteral: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    value: Number(node.text),
-                    raw: node.getText(),
-                });
-            }
-            case SyntaxKind.BigIntLiteral: {
-                const range = node_utils_1.getRange(node, this.ast);
-                const rawValue = this.ast.text.slice(range[0], range[1]);
-                const bigint = rawValue
-                    // remove suffix `n`
-                    .slice(0, -1)
-                    // `BigInt` doesn't accept numeric separator
-                    // and `bigint` property should not include numeric separator
-                    .replace(/_/g, '');
-                const value = typeof BigInt !== 'undefined' ? BigInt(bigint) : null;
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    raw: rawValue,
-                    value: value,
-                    bigint: value === null ? bigint : String(value),
-                    range,
-                });
-            }
-            case SyntaxKind.RegularExpressionLiteral: {
-                const pattern = node.text.slice(1, node.text.lastIndexOf('/'));
-                const flags = node.text.slice(node.text.lastIndexOf('/') + 1);
-                let regex = null;
-                try {
-                    regex = new RegExp(pattern, flags);
-                }
-                catch (exception) {
-                    regex = null;
-                }
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    value: regex,
-                    raw: node.text,
-                    regex: {
-                        pattern,
-                        flags,
-                    },
-                });
-            }
-            case SyntaxKind.TrueKeyword:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    value: true,
-                    raw: 'true',
-                });
-            case SyntaxKind.FalseKeyword:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    value: false,
-                    raw: 'false',
-                });
-            case SyntaxKind.NullKeyword: {
-                if (!version_check_1.typescriptVersionIsAtLeast['4.0'] && this.inTypeMode) {
-                    // 4.0 started nesting null types inside a LiteralType node, but we still need to support pre-4.0
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSNullKeyword,
-                    });
-                }
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.Literal,
-                    value: null,
-                    raw: 'null',
-                });
-            }
-            case SyntaxKind.EmptyStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.EmptyStatement,
-                });
-            case SyntaxKind.DebuggerStatement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.DebuggerStatement,
-                });
-            // JSX
-            case SyntaxKind.JsxElement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXElement,
-                    openingElement: this.convertChild(node.openingElement),
-                    closingElement: this.convertChild(node.closingElement),
-                    children: node.children.map(el => this.convertChild(el)),
-                });
-            case SyntaxKind.JsxFragment:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXFragment,
-                    openingFragment: this.convertChild(node.openingFragment),
-                    closingFragment: this.convertChild(node.closingFragment),
-                    children: node.children.map(el => this.convertChild(el)),
-                });
-            case SyntaxKind.JsxSelfClosingElement: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXElement,
-                    /**
-                     * Convert SyntaxKind.JsxSelfClosingElement to SyntaxKind.JsxOpeningElement,
-                     * TypeScript does not seem to have the idea of openingElement when tag is self-closing
-                     */
-                    openingElement: this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.JSXOpeningElement,
-                        typeParameters: node.typeArguments
-                            ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                            : undefined,
-                        selfClosing: true,
-                        name: this.convertJSXTagName(node.tagName, node),
-                        attributes: node.attributes.properties.map(el => this.convertChild(el)),
-                        range: node_utils_1.getRange(node, this.ast),
-                    }),
-                    closingElement: null,
-                    children: [],
-                });
-            }
-            case SyntaxKind.JsxOpeningElement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXOpeningElement,
-                    typeParameters: node.typeArguments
-                        ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                        : undefined,
-                    selfClosing: false,
-                    name: this.convertJSXTagName(node.tagName, node),
-                    attributes: node.attributes.properties.map(el => this.convertChild(el)),
-                });
-            case SyntaxKind.JsxClosingElement:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXClosingElement,
-                    name: this.convertJSXTagName(node.tagName, node),
-                });
-            case SyntaxKind.JsxOpeningFragment:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXOpeningFragment,
-                });
-            case SyntaxKind.JsxClosingFragment:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXClosingFragment,
-                });
-            case SyntaxKind.JsxExpression: {
-                const expression = node.expression
-                    ? this.convertChild(node.expression)
-                    : this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.JSXEmptyExpression,
-                        range: [node.getStart(this.ast) + 1, node.getEnd() - 1],
-                    });
-                if (node.dotDotDotToken) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.JSXSpreadChild,
-                        expression,
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.JSXExpressionContainer,
-                        expression,
-                    });
-                }
-            }
-            case SyntaxKind.JsxAttribute: {
-                const attributeName = this.convertChild(node.name);
-                attributeName.type = ts_estree_1.AST_NODE_TYPES.JSXIdentifier;
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXAttribute,
-                    name: attributeName,
-                    value: this.convertChild(node.initializer),
-                });
-            }
-            /**
-             * The JSX AST changed the node type for string literals
-             * inside a JSX Element from `Literal` to `JSXText`. We
-             * provide a flag to support both types until `Literal`
-             * node type is deprecated in ESLint v5.
-             */
-            case SyntaxKind.JsxText: {
-                const start = node.getFullStart();
-                const end = node.getEnd();
-                if (this.options.useJSXTextNode) {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.JSXText,
-                        value: this.ast.text.slice(start, end),
-                        raw: this.ast.text.slice(start, end),
-                        range: [start, end],
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.Literal,
-                        value: this.ast.text.slice(start, end),
-                        raw: this.ast.text.slice(start, end),
-                        range: [start, end],
-                    });
-                }
-            }
-            case SyntaxKind.JsxSpreadAttribute:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.JSXSpreadAttribute,
-                    argument: this.convertChild(node.expression),
-                });
-            case SyntaxKind.QualifiedName: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSQualifiedName,
-                    left: this.convertChild(node.left),
-                    right: this.convertChild(node.right),
-                });
-            }
-            // TypeScript specific
-            case SyntaxKind.TypeReference: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeReference,
-                    typeName: this.convertType(node.typeName),
-                    typeParameters: node.typeArguments
-                        ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                        : undefined,
-                });
-            }
-            case SyntaxKind.TypeParameter: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeParameter,
-                    name: this.convertType(node.name),
-                    constraint: node.constraint
-                        ? this.convertType(node.constraint)
-                        : undefined,
-                    default: node.default ? this.convertType(node.default) : undefined,
-                });
-            }
-            case SyntaxKind.ThisType:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSThisType,
-                });
-            case SyntaxKind.AnyKeyword:
-            case SyntaxKind.BigIntKeyword:
-            case SyntaxKind.BooleanKeyword:
-            case SyntaxKind.NeverKeyword:
-            case SyntaxKind.NumberKeyword:
-            case SyntaxKind.ObjectKeyword:
-            case SyntaxKind.StringKeyword:
-            case SyntaxKind.SymbolKeyword:
-            case SyntaxKind.UnknownKeyword:
-            case SyntaxKind.VoidKeyword:
-            case SyntaxKind.UndefinedKeyword: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES[`TS${SyntaxKind[node.kind]}`],
-                });
-            }
-            case SyntaxKind.NonNullExpression: {
-                const nnExpr = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSNonNullExpression,
-                    expression: this.convertChild(node.expression),
-                });
-                return this.convertChainExpression(nnExpr, node);
-            }
-            case SyntaxKind.TypeLiteral: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeLiteral,
-                    members: node.members.map(el => this.convertChild(el)),
-                });
-            }
-            case SyntaxKind.ArrayType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSArrayType,
-                    elementType: this.convertType(node.elementType),
-                });
-            }
-            case SyntaxKind.IndexedAccessType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSIndexedAccessType,
-                    objectType: this.convertType(node.objectType),
-                    indexType: this.convertType(node.indexType),
-                });
-            }
-            case SyntaxKind.ConditionalType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSConditionalType,
-                    checkType: this.convertType(node.checkType),
-                    extendsType: this.convertType(node.extendsType),
-                    trueType: this.convertType(node.trueType),
-                    falseType: this.convertType(node.falseType),
-                });
-            }
-            case SyntaxKind.TypeQuery: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeQuery,
-                    exprName: this.convertType(node.exprName),
-                });
-            }
-            case SyntaxKind.MappedType: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSMappedType,
-                    typeParameter: this.convertType(node.typeParameter),
-                });
-                if (node.readonlyToken) {
-                    if (node.readonlyToken.kind === SyntaxKind.ReadonlyKeyword) {
-                        result.readonly = true;
-                    }
-                    else {
-                        result.readonly = node_utils_1.getTextForTokenKind(node.readonlyToken.kind);
-                    }
-                }
-                if (node.questionToken) {
-                    if (node.questionToken.kind === SyntaxKind.QuestionToken) {
-                        result.optional = true;
-                    }
-                    else {
-                        result.optional = node_utils_1.getTextForTokenKind(node.questionToken.kind);
-                    }
-                }
-                if (node.type) {
-                    result.typeAnnotation = this.convertType(node.type);
-                }
-                return result;
-            }
-            case SyntaxKind.ParenthesizedExpression:
-                return this.convertChild(node.expression, parent);
-            case SyntaxKind.TypeAliasDeclaration: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeAliasDeclaration,
-                    id: this.convertChild(node.name),
-                    typeAnnotation: this.convertType(node.type),
-                });
-                if (node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node)) {
-                    result.declare = true;
-                }
-                // Process typeParameters
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                // check for exports
-                return this.fixExports(node, result);
-            }
-            case SyntaxKind.MethodSignature: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSMethodSignature,
-                    computed: node_utils_1.isComputedProperty(node.name),
-                    key: this.convertChild(node.name),
-                    params: this.convertParameters(node.parameters),
-                });
-                if (node_utils_1.isOptional(node)) {
-                    result.optional = true;
-                }
-                if (node.type) {
-                    result.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node)) {
-                    result.readonly = true;
-                }
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                if (accessibility) {
-                    result.accessibility = accessibility;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node)) {
-                    result.export = true;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node)) {
-                    result.static = true;
-                }
-                return result;
-            }
-            case SyntaxKind.PropertySignature: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSPropertySignature,
-                    optional: node_utils_1.isOptional(node) || undefined,
-                    computed: node_utils_1.isComputedProperty(node.name),
-                    key: this.convertChild(node.name),
-                    typeAnnotation: node.type
-                        ? this.convertTypeAnnotation(node.type, node)
-                        : undefined,
-                    initializer: this.convertChild(node.initializer) || undefined,
-                    readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined,
-                    static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node) || undefined,
-                    export: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node) || undefined,
-                });
-                const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                if (accessibility) {
-                    result.accessibility = accessibility;
-                }
-                return result;
-            }
-            case SyntaxKind.IndexSignature: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSIndexSignature,
-                    parameters: node.parameters.map(el => this.convertChild(el)),
-                });
-                if (node.type) {
-                    result.typeAnnotation = this.convertTypeAnnotation(node.type, node);
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node)) {
-                    result.readonly = true;
-                }
-                const accessibility = node_utils_1.getTSNodeAccessibility(node);
-                if (accessibility) {
-                    result.accessibility = accessibility;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node)) {
-                    result.export = true;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node)) {
-                    result.static = true;
-                }
-                return result;
-            }
-            case SyntaxKind.ConstructorType:
-            case SyntaxKind.FunctionType:
-            case SyntaxKind.ConstructSignature:
-            case SyntaxKind.CallSignature: {
-                let type;
-                switch (node.kind) {
-                    case SyntaxKind.ConstructSignature:
-                        type = ts_estree_1.AST_NODE_TYPES.TSConstructSignatureDeclaration;
-                        break;
-                    case SyntaxKind.CallSignature:
-                        type = ts_estree_1.AST_NODE_TYPES.TSCallSignatureDeclaration;
-                        break;
-                    case SyntaxKind.FunctionType:
-                        type = ts_estree_1.AST_NODE_TYPES.TSFunctionType;
-                        break;
-                    case SyntaxKind.ConstructorType:
-                    default:
-                        type = ts_estree_1.AST_NODE_TYPES.TSConstructorType;
-                        break;
-                }
-                const result = this.createNode(node, {
-                    type: type,
-                    params: this.convertParameters(node.parameters),
-                });
-                if (node.type) {
-                    result.returnType = this.convertTypeAnnotation(node.type, node);
-                }
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                return result;
-            }
-            case SyntaxKind.ExpressionWithTypeArguments: {
-                const result = this.createNode(node, {
-                    type: parent && parent.kind === SyntaxKind.InterfaceDeclaration
-                        ? ts_estree_1.AST_NODE_TYPES.TSInterfaceHeritage
-                        : ts_estree_1.AST_NODE_TYPES.TSClassImplements,
-                    expression: this.convertChild(node.expression),
-                });
-                if (node.typeArguments) {
-                    result.typeParameters = this.convertTypeArgumentsToTypeParameters(node.typeArguments, node);
-                }
-                return result;
-            }
-            case SyntaxKind.InterfaceDeclaration: {
-                const interfaceHeritageClauses = (_j = node.heritageClauses) !== null && _j !== void 0 ? _j : [];
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSInterfaceDeclaration,
-                    body: this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSInterfaceBody,
-                        body: node.members.map(member => this.convertChild(member)),
-                        range: [node.members.pos - 1, node.end],
-                    }),
-                    id: this.convertChild(node.name),
-                });
-                if (node.typeParameters) {
-                    result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters);
-                }
-                if (interfaceHeritageClauses.length > 0) {
-                    const interfaceExtends = [];
-                    const interfaceImplements = [];
-                    for (const heritageClause of interfaceHeritageClauses) {
-                        if (heritageClause.token === SyntaxKind.ExtendsKeyword) {
-                            for (const n of heritageClause.types) {
-                                interfaceExtends.push(this.convertChild(n, node));
-                            }
-                        }
-                        else {
-                            for (const n of heritageClause.types) {
-                                interfaceImplements.push(this.convertChild(n, node));
-                            }
-                        }
-                    }
-                    if (interfaceExtends.length) {
-                        result.extends = interfaceExtends;
-                    }
-                    if (interfaceImplements.length) {
-                        result.implements = interfaceImplements;
-                    }
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node)) {
-                    result.abstract = true;
-                }
-                if (node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node)) {
-                    result.declare = true;
-                }
-                // check for exports
-                return this.fixExports(node, result);
-            }
-            case SyntaxKind.TypePredicate: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypePredicate,
-                    asserts: node.assertsModifier !== undefined,
-                    parameterName: this.convertChild(node.parameterName),
-                    typeAnnotation: null,
-                });
-                /**
-                 * Specific fix for type-guard location data
-                 */
-                if (node.type) {
-                    result.typeAnnotation = this.convertTypeAnnotation(node.type, node);
-                    result.typeAnnotation.loc = result.typeAnnotation.typeAnnotation.loc;
-                    result.typeAnnotation.range =
-                        result.typeAnnotation.typeAnnotation.range;
-                }
-                return result;
-            }
-            case SyntaxKind.ImportType:
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSImportType,
-                    isTypeOf: !!node.isTypeOf,
-                    parameter: this.convertChild(node.argument),
-                    qualifier: this.convertChild(node.qualifier),
-                    typeParameters: node.typeArguments
-                        ? this.convertTypeArgumentsToTypeParameters(node.typeArguments, node)
-                        : null,
-                });
-            case SyntaxKind.EnumDeclaration: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSEnumDeclaration,
-                    id: this.convertChild(node.name),
-                    members: node.members.map(el => this.convertChild(el)),
-                });
-                // apply modifiers first...
-                this.applyModifiersToResult(result, node.modifiers);
-                // ...then check for exports
-                return this.fixExports(node, result);
-            }
-            case SyntaxKind.EnumMember: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSEnumMember,
-                    id: this.convertChild(node.name),
-                });
-                if (node.initializer) {
-                    result.initializer = this.convertChild(node.initializer);
-                }
-                if (node.name.kind === ts.SyntaxKind.ComputedPropertyName) {
-                    result.computed = true;
-                }
-                return result;
-            }
-            case SyntaxKind.ModuleDeclaration: {
-                const result = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSModuleDeclaration,
-                    id: this.convertChild(node.name),
-                });
-                if (node.body) {
-                    result.body = this.convertChild(node.body);
-                }
-                // apply modifiers first...
-                this.applyModifiersToResult(result, node.modifiers);
-                if (node.flags & ts.NodeFlags.GlobalAugmentation) {
-                    result.global = true;
-                }
-                // ...then check for exports
-                return this.fixExports(node, result);
-            }
-            // TypeScript specific types
-            case SyntaxKind.ParenthesizedType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSParenthesizedType,
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
-            case SyntaxKind.UnionType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSUnionType,
-                    types: node.types.map(el => this.convertType(el)),
-                });
-            }
-            case SyntaxKind.IntersectionType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSIntersectionType,
-                    types: node.types.map(el => this.convertType(el)),
-                });
-            }
-            case SyntaxKind.AsExpression: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSAsExpression,
-                    expression: this.convertChild(node.expression),
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
-            case SyntaxKind.InferType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSInferType,
-                    typeParameter: this.convertType(node.typeParameter),
-                });
-            }
-            case SyntaxKind.LiteralType: {
-                if (version_check_1.typescriptVersionIsAtLeast['4.0'] &&
-                    node.literal.kind === SyntaxKind.NullKeyword) {
-                    // 4.0 started nesting null types inside a LiteralType node
-                    // but our AST is designed around the old way of null being a keyword
-                    return this.createNode(node.literal, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSNullKeyword,
-                    });
-                }
-                else {
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSLiteralType,
-                        literal: this.convertType(node.literal),
-                    });
-                }
-            }
-            case SyntaxKind.TypeAssertionExpression: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTypeAssertion,
-                    typeAnnotation: this.convertType(node.type),
-                    expression: this.convertChild(node.expression),
-                });
-            }
-            case SyntaxKind.ImportEqualsDeclaration: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSImportEqualsDeclaration,
-                    id: this.convertChild(node.name),
-                    moduleReference: this.convertChild(node.moduleReference),
-                    isExport: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node),
-                });
-            }
-            case SyntaxKind.ExternalModuleReference: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSExternalModuleReference,
-                    expression: this.convertChild(node.expression),
-                });
-            }
-            case SyntaxKind.NamespaceExportDeclaration: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSNamespaceExportDeclaration,
-                    id: this.convertChild(node.name),
-                });
-            }
-            case SyntaxKind.AbstractKeyword: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSAbstractKeyword,
-                });
-            }
-            // Tuple
-            case SyntaxKind.TupleType: {
-                // In TS 4.0, the `elementTypes` property was changed to `elements`.
-                // To support both at compile time, we cast to access the newer version
-                // if the former does not exist.
-                const elementTypes = 'elementTypes' in node
-                    ? node.elementTypes.map((el) => this.convertType(el))
-                    : node.elements.map((el) => this.convertType(el));
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSTupleType,
-                    elementTypes,
-                });
-            }
-            case SyntaxKind.NamedTupleMember: {
-                const member = this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSNamedTupleMember,
-                    elementType: this.convertType(node.type, node),
-                    label: this.convertChild(node.name, node),
-                    optional: node.questionToken != null,
-                });
-                if (node.dotDotDotToken) {
-                    // adjust the start to account for the "..."
-                    member.range[0] = member.label.range[0];
-                    member.loc.start = member.label.loc.start;
-                    return this.createNode(node, {
-                        type: ts_estree_1.AST_NODE_TYPES.TSRestType,
-                        typeAnnotation: member,
-                    });
-                }
-                return member;
-            }
-            case SyntaxKind.OptionalType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSOptionalType,
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
-            case SyntaxKind.RestType: {
-                return this.createNode(node, {
-                    type: ts_estree_1.AST_NODE_TYPES.TSRestType,
-                    typeAnnotation: this.convertType(node.type),
-                });
-            }
-            default:
-                return this.deeplyCopy(node);
-        }
-    }
-}
-exports.Converter = Converter;
-//# sourceMappingURL=convert.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map
deleted file mode 100644
index da4e64d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts
deleted file mode 100644
index 85764ac..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import * as ts from 'typescript';
-interface DirectoryStructureHost {
-    readDirectory?(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
-}
-interface CachedDirectoryStructureHost extends DirectoryStructureHost {
-    readDirectory(path: string, extensions?: ReadonlyArray<string>, exclude?: ReadonlyArray<string>, include?: ReadonlyArray<string>, depth?: number): string[];
-}
-interface WatchCompilerHostOfConfigFile<T extends ts.BuilderProgram> extends ts.WatchCompilerHostOfConfigFile<T> {
-    onCachedDirectoryStructureHostCreate(host: CachedDirectoryStructureHost): void;
-    extraFileExtensions?: readonly ts.FileExtensionInfo[];
-}
-export { WatchCompilerHostOfConfigFile };
-//# sourceMappingURL=WatchCompilerHostOfConfigFile.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map
deleted file mode 100644
index 408e42e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WatchCompilerHostOfConfigFile.d.ts","sourceRoot":"","sources":["../../src/create-program/WatchCompilerHostOfConfigFile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,UAAU,sBAAsB;IAC9B,aAAa,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,4BAA6B,SAAQ,sBAAsB;IACnE,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAAC;CACb;AAGD,UAAU,6BAA6B,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,CACjE,SAAQ,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC3C,oCAAoC,CAClC,IAAI,EAAE,4BAA4B,GACjC,IAAI,CAAC;IACR,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,EAAE,CAAC;CACvD;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js
deleted file mode 100644
index dcb0712..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-// These types are internal to TS.
-// They have been trimmed down to only include the relevant bits
-// We use some special internal TS apis to help us do our parsing flexibly
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=WatchCompilerHostOfConfigFile.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js.map
deleted file mode 100644
index 757e885..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/WatchCompilerHostOfConfigFile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WatchCompilerHostOfConfigFile.js","sourceRoot":"","sources":["../../src/create-program/WatchCompilerHostOfConfigFile.ts"],"names":[],"mappings":";AAAA,kCAAkC;AAClC,gEAAgE;AAChE,0EAA0E"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts
deleted file mode 100644
index ea80b73..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Extra } from '../parser-options';
-import { ASTAndProgram } from './shared';
-/**
- * @param code The code of the file being linted
- * @param extra The config object
- * @param extra.tsconfigRootDir The root directory for relative tsconfig paths
- * @param extra.projects Provided tsconfig paths
- * @returns If found, returns the source file corresponding to the code and the containing program
- */
-declare function createDefaultProgram(code: string, extra: Extra): ASTAndProgram | undefined;
-export { createDefaultProgram };
-//# sourceMappingURL=createDefaultProgram.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts.map
deleted file mode 100644
index 2c26fe5..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createDefaultProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,aAAa,EAGd,MAAM,UAAU,CAAC;AAIlB;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CAqC3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js
deleted file mode 100644
index 9f60bc0..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createDefaultProgram = void 0;
-const debug_1 = __importDefault(require("debug"));
-const path_1 = __importDefault(require("path"));
-const ts = __importStar(require("typescript"));
-const shared_1 = require("./shared");
-const log = debug_1.default('typescript-eslint:typescript-estree:createDefaultProgram');
-/**
- * @param code The code of the file being linted
- * @param extra The config object
- * @param extra.tsconfigRootDir The root directory for relative tsconfig paths
- * @param extra.projects Provided tsconfig paths
- * @returns If found, returns the source file corresponding to the code and the containing program
- */
-function createDefaultProgram(code, extra) {
-    log('Getting default program for: %s', extra.filePath || 'unnamed file');
-    if (!extra.projects || extra.projects.length !== 1) {
-        return undefined;
-    }
-    const tsconfigPath = shared_1.getTsconfigPath(extra.projects[0], extra);
-    const commandLine = ts.getParsedCommandLineOfConfigFile(tsconfigPath, shared_1.createDefaultCompilerOptionsFromExtra(extra), Object.assign(Object.assign({}, ts.sys), { onUnRecoverableConfigFileDiagnostic: () => { } }));
-    if (!commandLine) {
-        return undefined;
-    }
-    const compilerHost = ts.createCompilerHost(commandLine.options, 
-    /* setParentNodes */ true);
-    const oldReadFile = compilerHost.readFile;
-    compilerHost.readFile = (fileName) => path_1.default.normalize(fileName) === path_1.default.normalize(extra.filePath)
-        ? code
-        : oldReadFile(fileName);
-    const program = ts.createProgram([extra.filePath], commandLine.options, compilerHost);
-    const ast = program.getSourceFile(extra.filePath);
-    return ast && { ast, program };
-}
-exports.createDefaultProgram = createDefaultProgram;
-//# sourceMappingURL=createDefaultProgram.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map
deleted file mode 100644
index 7ae63e4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createDefaultProgram.js","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAY;IAEZ,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,wBAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,WAAW,GAAG,EAAE,CAAC,gCAAgC,CACrD,YAAY,EACZ,8CAAqC,CAAC,KAAK,CAAC,kCACvC,EAAE,CAAC,GAAG,KAAE,mCAAmC,EAAE,GAAG,EAAE,GAAE,CAAC,IAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CACxC,WAAW,CAAC,OAAO;IACnB,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC;IAC1C,YAAY,CAAC,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE,CAC/D,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChB,WAAW,CAAC,OAAO,EACnB,YAAY,CACb,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAEQ,oDAAoB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts
deleted file mode 100644
index 26bc6e4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Extra } from '../parser-options';
-import { ASTAndProgram } from './shared';
-/**
- * @param code The code of the file being linted
- * @returns Returns a new source file and program corresponding to the linted code
- */
-declare function createIsolatedProgram(code: string, extra: Extra): ASTAndProgram;
-export { createIsolatedProgram };
-//# sourceMappingURL=createIsolatedProgram.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts.map
deleted file mode 100644
index d246fca..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createIsolatedProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createIsolatedProgram.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,aAAa,EAGd,MAAM,UAAU,CAAC;AAIlB;;;GAGG;AACH,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAmExE;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js
deleted file mode 100644
index 88d4ba3..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js
+++ /dev/null
@@ -1,78 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createIsolatedProgram = void 0;
-const debug_1 = __importDefault(require("debug"));
-const ts = __importStar(require("typescript"));
-const shared_1 = require("./shared");
-const log = debug_1.default('typescript-eslint:typescript-estree:createIsolatedProgram');
-/**
- * @param code The code of the file being linted
- * @returns Returns a new source file and program corresponding to the linted code
- */
-function createIsolatedProgram(code, extra) {
-    log('Getting isolated program in %s mode for: %s', extra.jsx ? 'TSX' : 'TS', extra.filePath);
-    const compilerHost = {
-        fileExists() {
-            return true;
-        },
-        getCanonicalFileName() {
-            return extra.filePath;
-        },
-        getCurrentDirectory() {
-            return '';
-        },
-        getDirectories() {
-            return [];
-        },
-        getDefaultLibFileName() {
-            return 'lib.d.ts';
-        },
-        // TODO: Support Windows CRLF
-        getNewLine() {
-            return '\n';
-        },
-        getSourceFile(filename) {
-            return ts.createSourceFile(filename, code, ts.ScriptTarget.Latest, 
-            /* setParentNodes */ true, shared_1.getScriptKind(extra, filename));
-        },
-        readFile() {
-            return undefined;
-        },
-        useCaseSensitiveFileNames() {
-            return true;
-        },
-        writeFile() {
-            return null;
-        },
-    };
-    const program = ts.createProgram([extra.filePath], Object.assign({ noResolve: true, target: ts.ScriptTarget.Latest, jsx: extra.jsx ? ts.JsxEmit.Preserve : undefined }, shared_1.createDefaultCompilerOptionsFromExtra(extra)), compilerHost);
-    const ast = program.getSourceFile(extra.filePath);
-    if (!ast) {
-        throw new Error('Expected an ast to be returned for the single-file isolated program.');
-    }
-    return { ast, program };
-}
-exports.createIsolatedProgram = createIsolatedProgram;
-//# sourceMappingURL=createIsolatedProgram.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map
deleted file mode 100644
index 75a6145..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createIsolatedProgram.js","sourceRoot":"","sources":["../../src/create-program/createIsolatedProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,2DAA2D,CAAC,CAAC;AAE/E;;;GAGG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAY;IACvD,GAAG,CACD,6CAA6C,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,MAAM,YAAY,GAAoB;QACpC,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oBAAoB;YAClB,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,mBAAmB;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,cAAc;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,qBAAqB;YACnB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,6BAA6B;QAC7B,UAAU;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa,CAAC,QAAgB;YAC5B,OAAO,EAAE,CAAC,gBAAgB,CACxB,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;YACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC/B,CAAC;QACJ,CAAC;QACD,QAAQ;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,yBAAyB;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS;YACP,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAEd,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAC7C,8CAAqC,CAAC,KAAK,CAAC,GAEjD,YAAY,CACb,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;KACH;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAEQ,sDAAqB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts
deleted file mode 100644
index 04a7e10..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Extra } from '../parser-options';
-import { ASTAndProgram } from './shared';
-/**
- * @param code The code of the file being linted
- * @param createDefaultProgram True if the default program should be created
- * @param extra The config object
- * @returns If found, returns the source file corresponding to the code and the containing program
- */
-declare function createProjectProgram(code: string, createDefaultProgram: boolean, extra: Extra): ASTAndProgram | undefined;
-export { createProjectProgram };
-//# sourceMappingURL=createProjectProgram.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map
deleted file mode 100644
index 1838090..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createProjectProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAazC;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CAyE3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js
deleted file mode 100644
index 917330b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createProjectProgram = void 0;
-const debug_1 = __importDefault(require("debug"));
-const path_1 = __importDefault(require("path"));
-const createWatchProgram_1 = require("./createWatchProgram");
-const node_utils_1 = require("../node-utils");
-const log = debug_1.default('typescript-eslint:typescript-estree:createProjectProgram');
-const DEFAULT_EXTRA_FILE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx'];
-function getExtension(fileName) {
-    if (!fileName) {
-        return null;
-    }
-    return fileName.endsWith('.d.ts') ? '.d.ts' : path_1.default.extname(fileName);
-}
-/**
- * @param code The code of the file being linted
- * @param createDefaultProgram True if the default program should be created
- * @param extra The config object
- * @returns If found, returns the source file corresponding to the code and the containing program
- */
-function createProjectProgram(code, createDefaultProgram, extra) {
-    log('Creating project program for: %s', extra.filePath);
-    const astAndProgram = node_utils_1.firstDefined(createWatchProgram_1.getProgramsForProjects(code, extra.filePath, extra), currentProgram => {
-        const ast = currentProgram.getSourceFile(extra.filePath);
-        // working around https://github.com/typescript-eslint/typescript-eslint/issues/1573
-        const expectedExt = getExtension(extra.filePath);
-        const returnedExt = getExtension(ast === null || ast === void 0 ? void 0 : ast.fileName);
-        if (expectedExt !== returnedExt) {
-            return;
-        }
-        return ast && { ast, program: currentProgram };
-    });
-    if (!astAndProgram && !createDefaultProgram) {
-        // the file was either not matched within the tsconfig, or the extension wasn't expected
-        const errorLines = [
-            '"parserOptions.project" has been set for @typescript-eslint/parser.',
-            `The file does not match your project config: ${path_1.default.relative(extra.tsconfigRootDir || process.cwd(), extra.filePath)}.`,
-        ];
-        let hasMatchedAnError = false;
-        const extraFileExtensions = extra.extraFileExtensions || [];
-        extraFileExtensions.forEach(extraExtension => {
-            if (!extraExtension.startsWith('.')) {
-                errorLines.push(`Found unexpected extension "${extraExtension}" specified with the "extraFileExtensions" option. Did you mean ".${extraExtension}"?`);
-            }
-            if (DEFAULT_EXTRA_FILE_EXTENSIONS.includes(extraExtension)) {
-                errorLines.push(`You unnecessarily included the extension "${extraExtension}" with the "extraFileExtensions" option. This extension is already handled by the parser by default.`);
-            }
-        });
-        const fileExtension = path_1.default.extname(extra.filePath);
-        if (!DEFAULT_EXTRA_FILE_EXTENSIONS.includes(fileExtension)) {
-            const nonStandardExt = `The extension for the file (${fileExtension}) is non-standard`;
-            if (extraFileExtensions.length > 0) {
-                if (!extraFileExtensions.includes(fileExtension)) {
-                    errorLines.push(`${nonStandardExt}. It should be added to your existing "parserOptions.extraFileExtensions".`);
-                    hasMatchedAnError = true;
-                }
-            }
-            else {
-                errorLines.push(`${nonStandardExt}. You should add "parserOptions.extraFileExtensions" to your config.`);
-                hasMatchedAnError = true;
-            }
-        }
-        if (!hasMatchedAnError) {
-            errorLines.push('The file must be included in at least one of the projects provided.');
-        }
-        throw new Error(errorLines.join('\n'));
-    }
-    return astAndProgram;
-}
-exports.createProjectProgram = createProjectProgram;
-//# sourceMappingURL=createProjectProgram.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map
deleted file mode 100644
index a39bb00..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createProjectProgram.js","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts
deleted file mode 100644
index 340cdd9..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as ts from 'typescript';
-import { Extra } from '../parser-options';
-declare function createSourceFile(code: string, extra: Extra): ts.SourceFile;
-export { createSourceFile };
-//# sourceMappingURL=createSourceFile.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts.map
deleted file mode 100644
index 68f375d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createSourceFile.d.ts","sourceRoot":"","sources":["../../src/create-program/createSourceFile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK1C,iBAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,UAAU,CAcnE;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js
deleted file mode 100644
index 910a1fa..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createSourceFile = void 0;
-const debug_1 = __importDefault(require("debug"));
-const ts = __importStar(require("typescript"));
-const shared_1 = require("./shared");
-const log = debug_1.default('typescript-eslint:typescript-estree:createSourceFile');
-function createSourceFile(code, extra) {
-    log('Getting AST without type information in %s mode for: %s', extra.jsx ? 'TSX' : 'TS', extra.filePath);
-    return ts.createSourceFile(extra.filePath, code, ts.ScriptTarget.Latest, 
-    /* setParentNodes */ true, shared_1.getScriptKind(extra));
-}
-exports.createSourceFile = createSourceFile;
-//# sourceMappingURL=createSourceFile.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map
deleted file mode 100644
index 693f43c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createSourceFile.js","sourceRoot":"","sources":["../../src/create-program/createSourceFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAiC;AAEjC,qCAAyC;AAEzC,MAAM,GAAG,GAAG,eAAK,CAAC,sDAAsD,CAAC,CAAC;AAE1E,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAY;IAClD,GAAG,CACD,yDAAyD,EACzD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxB,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,OAAO,EAAE,CAAC,gBAAgB,CACxB,KAAK,CAAC,QAAQ,EACd,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM;IACtB,oBAAoB,CAAC,IAAI,EACzB,sBAAa,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC;AAEQ,4CAAgB"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts
deleted file mode 100644
index af73e0c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as ts from 'typescript';
-import { Extra } from '../parser-options';
-/**
- * Clear all of the parser caches.
- * This should only be used in testing to ensure the parser is clean between tests.
- */
-declare function clearCaches(): void;
-/**
- * Calculate project environments using options provided by consumer and paths from config
- * @param code The code being linted
- * @param filePathIn The path of the file being parsed
- * @param extra.tsconfigRootDir The root directory for relative tsconfig paths
- * @param extra.projects Provided tsconfig paths
- * @returns The programs corresponding to the supplied tsconfig paths
- */
-declare function getProgramsForProjects(code: string, filePathIn: string, extra: Extra): ts.Program[];
-declare function createWatchProgram(tsconfigPath: string, extra: Extra): ts.WatchOfConfigFile<ts.BuilderProgram>;
-export { clearCaches, createWatchProgram, getProgramsForProjects };
-//# sourceMappingURL=createWatchProgram.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map
deleted file mode 100644
index 5e6bce8..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA6C1C;;;GAGG;AACH,iBAAS,WAAW,IAAI,IAAI,CAO3B;AA2DD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,OAAO,EAAE,CAgGd;AAMD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,CAAC,CAwHzC;AAoJD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js
deleted file mode 100644
index fe03663..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js
+++ /dev/null
@@ -1,388 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getProgramsForProjects = exports.createWatchProgram = exports.clearCaches = void 0;
-const debug_1 = __importDefault(require("debug"));
-const fs_1 = __importDefault(require("fs"));
-const semver_1 = __importDefault(require("semver"));
-const ts = __importStar(require("typescript"));
-const shared_1 = require("./shared");
-const log = debug_1.default('typescript-eslint:typescript-estree:createWatchProgram');
-/**
- * Maps tsconfig paths to their corresponding file contents and resulting watches
- */
-const knownWatchProgramMap = new Map();
-/**
- * Maps file/folder paths to their set of corresponding watch callbacks
- * There may be more than one per file/folder if a file/folder is shared between projects
- */
-const fileWatchCallbackTrackingMap = new Map();
-const folderWatchCallbackTrackingMap = new Map();
-/**
- * Stores the list of known files for each program
- */
-const programFileListCache = new Map();
-/**
- * Caches the last modified time of the tsconfig files
- */
-const tsconfigLastModifiedTimestampCache = new Map();
-const parsedFilesSeenHash = new Map();
-/**
- * Clear all of the parser caches.
- * This should only be used in testing to ensure the parser is clean between tests.
- */
-function clearCaches() {
-    knownWatchProgramMap.clear();
-    fileWatchCallbackTrackingMap.clear();
-    folderWatchCallbackTrackingMap.clear();
-    parsedFilesSeenHash.clear();
-    programFileListCache.clear();
-    tsconfigLastModifiedTimestampCache.clear();
-}
-exports.clearCaches = clearCaches;
-function saveWatchCallback(trackingMap) {
-    return (fileName, callback) => {
-        const normalizedFileName = shared_1.getCanonicalFileName(fileName);
-        const watchers = (() => {
-            let watchers = trackingMap.get(normalizedFileName);
-            if (!watchers) {
-                watchers = new Set();
-                trackingMap.set(normalizedFileName, watchers);
-            }
-            return watchers;
-        })();
-        watchers.add(callback);
-        return {
-            close: () => {
-                watchers.delete(callback);
-            },
-        };
-    };
-}
-/**
- * Holds information about the file currently being linted
- */
-const currentLintOperationState = {
-    code: '',
-    filePath: '',
-};
-/**
- * Appropriately report issues found when reading a config file
- * @param diagnostic The diagnostic raised when creating a program
- */
-function diagnosticReporter(diagnostic) {
-    throw new Error(ts.flattenDiagnosticMessageText(diagnostic.messageText, ts.sys.newLine));
-}
-/**
- * Hash content for compare content.
- * @param content hashed contend
- * @returns hashed result
- */
-function createHash(content) {
-    var _a;
-    // No ts.sys in browser environments.
-    if ((_a = ts.sys) === null || _a === void 0 ? void 0 : _a.createHash) {
-        return ts.sys.createHash(content);
-    }
-    return content;
-}
-/**
- * Calculate project environments using options provided by consumer and paths from config
- * @param code The code being linted
- * @param filePathIn The path of the file being parsed
- * @param extra.tsconfigRootDir The root directory for relative tsconfig paths
- * @param extra.projects Provided tsconfig paths
- * @returns The programs corresponding to the supplied tsconfig paths
- */
-function getProgramsForProjects(code, filePathIn, extra) {
-    const filePath = shared_1.getCanonicalFileName(filePathIn);
-    const results = [];
-    // preserve reference to code and file being linted
-    currentLintOperationState.code = code;
-    currentLintOperationState.filePath = filePath;
-    // Update file version if necessary
-    const fileWatchCallbacks = fileWatchCallbackTrackingMap.get(filePath);
-    const codeHash = createHash(code);
-    if (parsedFilesSeenHash.get(filePath) !== codeHash &&
-        fileWatchCallbacks &&
-        fileWatchCallbacks.size > 0) {
-        fileWatchCallbacks.forEach(cb => cb(filePath, ts.FileWatcherEventKind.Changed));
-    }
-    /*
-     * before we go into the process of attempting to find and update every program
-     * see if we know of a program that contains this file
-     */
-    for (const rawTsconfigPath of extra.projects) {
-        const tsconfigPath = shared_1.getTsconfigPath(rawTsconfigPath, extra);
-        const existingWatch = knownWatchProgramMap.get(tsconfigPath);
-        if (!existingWatch) {
-            continue;
-        }
-        let fileList = programFileListCache.get(tsconfigPath);
-        let updatedProgram = null;
-        if (!fileList) {
-            updatedProgram = existingWatch.getProgram().getProgram();
-            fileList = new Set(updatedProgram.getRootFileNames().map(f => shared_1.getCanonicalFileName(f)));
-            programFileListCache.set(tsconfigPath, fileList);
-        }
-        if (fileList.has(filePath)) {
-            log('Found existing program for file. %s', filePath);
-            updatedProgram = updatedProgram !== null && updatedProgram !== void 0 ? updatedProgram : existingWatch.getProgram().getProgram();
-            // sets parent pointers in source files
-            updatedProgram.getTypeChecker();
-            return [updatedProgram];
-        }
-    }
-    log('File did not belong to any existing programs, moving to create/update. %s', filePath);
-    /*
-     * We don't know of a program that contains the file, this means that either:
-     * - the required program hasn't been created yet, or
-     * - the file is new/renamed, and the program hasn't been updated.
-     */
-    for (const rawTsconfigPath of extra.projects) {
-        const tsconfigPath = shared_1.getTsconfigPath(rawTsconfigPath, extra);
-        const existingWatch = knownWatchProgramMap.get(tsconfigPath);
-        if (existingWatch) {
-            const updatedProgram = maybeInvalidateProgram(existingWatch, filePath, tsconfigPath);
-            if (!updatedProgram) {
-                continue;
-            }
-            // sets parent pointers in source files
-            updatedProgram.getTypeChecker();
-            results.push(updatedProgram);
-            continue;
-        }
-        const programWatch = createWatchProgram(tsconfigPath, extra);
-        const program = programWatch.getProgram().getProgram();
-        // cache watch program and return current program
-        knownWatchProgramMap.set(tsconfigPath, programWatch);
-        // sets parent pointers in source files
-        program.getTypeChecker();
-        results.push(program);
-    }
-    return results;
-}
-exports.getProgramsForProjects = getProgramsForProjects;
-const isRunningNoTimeoutFix = semver_1.default.satisfies(ts.version, '>=3.9.0-beta', {
-    includePrerelease: true,
-});
-function createWatchProgram(tsconfigPath, extra) {
-    log('Creating watch program for %s.', tsconfigPath);
-    // create compiler host
-    const watchCompilerHost = ts.createWatchCompilerHost(tsconfigPath, shared_1.createDefaultCompilerOptionsFromExtra(extra), ts.sys, ts.createAbstractBuilder, diagnosticReporter, 
-    /*reportWatchStatus*/ () => { });
-    // ensure readFile reads the code being linted instead of the copy on disk
-    const oldReadFile = watchCompilerHost.readFile;
-    watchCompilerHost.readFile = (filePathIn, encoding) => {
-        const filePath = shared_1.getCanonicalFileName(filePathIn);
-        const fileContent = filePath === currentLintOperationState.filePath
-            ? currentLintOperationState.code
-            : oldReadFile(filePath, encoding);
-        if (fileContent !== undefined) {
-            parsedFilesSeenHash.set(filePath, createHash(fileContent));
-        }
-        return fileContent;
-    };
-    // ensure process reports error on failure instead of exiting process immediately
-    watchCompilerHost.onUnRecoverableConfigFileDiagnostic = diagnosticReporter;
-    // ensure process doesn't emit programs
-    watchCompilerHost.afterProgramCreate = (program) => {
-        // report error if there are any errors in the config file
-        const configFileDiagnostics = program
-            .getConfigFileParsingDiagnostics()
-            .filter(diag => diag.category === ts.DiagnosticCategory.Error && diag.code !== 18003);
-        if (configFileDiagnostics.length > 0) {
-            diagnosticReporter(configFileDiagnostics[0]);
-        }
-    };
-    /*
-     * From the CLI, the file watchers won't matter, as the files will be parsed once and then forgotten.
-     * When running from an IDE, these watchers will let us tell typescript about changes.
-     *
-     * ESLint IDE plugins will send us unfinished file content as the user types (before it's saved to disk).
-     * We use the file watchers to tell typescript about this latest file content.
-     *
-     * When files are created (or renamed), we won't know about them because we have no filesystem watchers attached.
-     * We use the folder watchers to tell typescript it needs to go and find new files in the project folders.
-     */
-    watchCompilerHost.watchFile = saveWatchCallback(fileWatchCallbackTrackingMap);
-    watchCompilerHost.watchDirectory = saveWatchCallback(folderWatchCallbackTrackingMap);
-    // allow files with custom extensions to be included in program (uses internal ts api)
-    const oldOnDirectoryStructureHostCreate = watchCompilerHost.onCachedDirectoryStructureHostCreate;
-    watchCompilerHost.onCachedDirectoryStructureHostCreate = (host) => {
-        const oldReadDirectory = host.readDirectory;
-        host.readDirectory = (path, extensions, exclude, include, depth) => oldReadDirectory(path, !extensions ? undefined : extensions.concat(extra.extraFileExtensions), exclude, include, depth);
-        oldOnDirectoryStructureHostCreate(host);
-    };
-    // This works only on 3.9
-    watchCompilerHost.extraFileExtensions = extra.extraFileExtensions.map(extension => ({
-        extension,
-        isMixedContent: true,
-        scriptKind: ts.ScriptKind.Deferred,
-    }));
-    watchCompilerHost.trace = log;
-    // Since we don't want to asynchronously update program we want to disable timeout methods
-    // So any changes in the program will be delayed and updated when getProgram is called on watch
-    let callback;
-    if (isRunningNoTimeoutFix) {
-        watchCompilerHost.setTimeout = undefined;
-        watchCompilerHost.clearTimeout = undefined;
-    }
-    else {
-        log('Running without timeout fix');
-        // But because of https://github.com/microsoft/TypeScript/pull/37308 we cannot just set it to undefined
-        // instead save it and call before getProgram is called
-        watchCompilerHost.setTimeout = (cb, _ms, ...args) => {
-            callback = cb.bind(/*this*/ undefined, ...args);
-            return callback;
-        };
-        watchCompilerHost.clearTimeout = () => {
-            callback = undefined;
-        };
-    }
-    const watch = ts.createWatchProgram(watchCompilerHost);
-    if (!isRunningNoTimeoutFix) {
-        const originalGetProgram = watch.getProgram;
-        watch.getProgram = () => {
-            if (callback) {
-                callback();
-            }
-            callback = undefined;
-            return originalGetProgram.call(watch);
-        };
-    }
-    return watch;
-}
-exports.createWatchProgram = createWatchProgram;
-function hasTSConfigChanged(tsconfigPath) {
-    const stat = fs_1.default.statSync(tsconfigPath);
-    const lastModifiedAt = stat.mtimeMs;
-    const cachedLastModifiedAt = tsconfigLastModifiedTimestampCache.get(tsconfigPath);
-    tsconfigLastModifiedTimestampCache.set(tsconfigPath, lastModifiedAt);
-    if (cachedLastModifiedAt === undefined) {
-        return false;
-    }
-    return Math.abs(cachedLastModifiedAt - lastModifiedAt) > Number.EPSILON;
-}
-function maybeInvalidateProgram(existingWatch, filePath, tsconfigPath) {
-    /*
-     * By calling watchProgram.getProgram(), it will trigger a resync of the program based on
-     * whatever new file content we've given it from our input.
-     */
-    let updatedProgram = existingWatch.getProgram().getProgram();
-    // In case this change causes problems in larger real world codebases
-    // Provide an escape hatch so people don't _have_ to revert to an older version
-    if (process.env.TSESTREE_NO_INVALIDATION === 'true') {
-        return updatedProgram;
-    }
-    if (hasTSConfigChanged(tsconfigPath)) {
-        /*
-         * If the stat of the tsconfig has changed, that could mean the include/exclude/files lists has changed
-         * We need to make sure typescript knows this so it can update appropriately
-         */
-        log('tsconfig has changed - triggering program update. %s', tsconfigPath);
-        fileWatchCallbackTrackingMap
-            .get(tsconfigPath)
-            .forEach(cb => cb(tsconfigPath, ts.FileWatcherEventKind.Changed));
-        // tsconfig change means that the file list more than likely changed, so clear the cache
-        programFileListCache.delete(tsconfigPath);
-    }
-    let sourceFile = updatedProgram.getSourceFile(filePath);
-    if (sourceFile) {
-        return updatedProgram;
-    }
-    /*
-     * Missing source file means our program's folder structure might be out of date.
-     * So we need to tell typescript it needs to update the correct folder.
-     */
-    log('File was not found in program - triggering folder update. %s', filePath);
-    // Find the correct directory callback by climbing the folder tree
-    const currentDir = shared_1.canonicalDirname(filePath);
-    let current = null;
-    let next = currentDir;
-    let hasCallback = false;
-    while (current !== next) {
-        current = next;
-        const folderWatchCallbacks = folderWatchCallbackTrackingMap.get(current);
-        if (folderWatchCallbacks) {
-            folderWatchCallbacks.forEach(cb => {
-                if (currentDir !== current) {
-                    cb(currentDir, ts.FileWatcherEventKind.Changed);
-                }
-                cb(current, ts.FileWatcherEventKind.Changed);
-            });
-            hasCallback = true;
-        }
-        next = shared_1.canonicalDirname(current);
-    }
-    if (!hasCallback) {
-        /*
-         * No callback means the paths don't matchup - so no point returning any program
-         * this will signal to the caller to skip this program
-         */
-        log('No callback found for file, not part of this program. %s', filePath);
-        return null;
-    }
-    // directory update means that the file list more than likely changed, so clear the cache
-    programFileListCache.delete(tsconfigPath);
-    // force the immediate resync
-    updatedProgram = existingWatch.getProgram().getProgram();
-    sourceFile = updatedProgram.getSourceFile(filePath);
-    if (sourceFile) {
-        return updatedProgram;
-    }
-    /*
-     * At this point we're in one of two states:
-     * - The file isn't supposed to be in this program due to exclusions
-     * - The file is new, and was renamed from an old, included filename
-     *
-     * For the latter case, we need to tell typescript that the old filename is now deleted
-     */
-    log('File was still not found in program after directory update - checking file deletions. %s', filePath);
-    const rootFilenames = updatedProgram.getRootFileNames();
-    // use find because we only need to "delete" one file to cause typescript to do a full resync
-    const deletedFile = rootFilenames.find(file => !fs_1.default.existsSync(file));
-    if (!deletedFile) {
-        // There are no deleted files, so it must be the former case of the file not belonging to this program
-        return null;
-    }
-    const fileWatchCallbacks = fileWatchCallbackTrackingMap.get(shared_1.getCanonicalFileName(deletedFile));
-    if (!fileWatchCallbacks) {
-        // shouldn't happen, but just in case
-        log('Could not find watch callbacks for root file. %s', deletedFile);
-        return updatedProgram;
-    }
-    log('Marking file as deleted. %s', deletedFile);
-    fileWatchCallbacks.forEach(cb => cb(deletedFile, ts.FileWatcherEventKind.Deleted));
-    // deleted files means that the file list _has_ changed, so clear the cache
-    programFileListCache.delete(tsconfigPath);
-    updatedProgram = existingWatch.getProgram().getProgram();
-    sourceFile = updatedProgram.getSourceFile(filePath);
-    if (sourceFile) {
-        return updatedProgram;
-    }
-    log('File was still not found in program after deletion check, assuming it is not part of this program. %s', filePath);
-    return null;
-}
-//# sourceMappingURL=createWatchProgram.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map
deleted file mode 100644
index 326e15a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts
deleted file mode 100644
index ea10a48..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import * as ts from 'typescript';
-import { Extra } from '../parser-options';
-interface ASTAndProgram {
-    ast: ts.SourceFile;
-    program: ts.Program;
-}
-declare function createDefaultCompilerOptionsFromExtra(extra: Extra): ts.CompilerOptions;
-declare type CanonicalPath = string & {
-    __brand: unknown;
-};
-declare function getCanonicalFileName(filePath: string): CanonicalPath;
-declare function ensureAbsolutePath(p: string, extra: Extra): string;
-declare function getTsconfigPath(tsconfigPath: string, extra: Extra): CanonicalPath;
-declare function canonicalDirname(p: CanonicalPath): CanonicalPath;
-declare function getScriptKind(extra: Extra, filePath?: string): ts.ScriptKind;
-export { ASTAndProgram, canonicalDirname, CanonicalPath, createDefaultCompilerOptionsFromExtra, ensureAbsolutePath, getCanonicalFileName, getScriptKind, getTsconfigPath, };
-//# sourceMappingURL=shared.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map
deleted file mode 100644
index 3e22bc4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,UAAU,aAAa;IACrB,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;CACrB;AAkBD,iBAAS,qCAAqC,CAC5C,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,eAAe,CASpB;AAGD,aAAK,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AASnD,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM7D;AAED,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI3D;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAE1E;AAED,iBAAS,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAuB,GAChC,EAAE,CAAC,UAAU,CAwBf;AAED,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js
deleted file mode 100644
index 5e8c198..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js
+++ /dev/null
@@ -1,98 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getTsconfigPath = exports.getScriptKind = exports.getCanonicalFileName = exports.ensureAbsolutePath = exports.createDefaultCompilerOptionsFromExtra = exports.canonicalDirname = void 0;
-const path_1 = __importDefault(require("path"));
-const ts = __importStar(require("typescript"));
-/**
- * Default compiler options for program generation from single root file
- */
-const DEFAULT_COMPILER_OPTIONS = {
-    allowNonTsExtensions: true,
-    allowJs: true,
-    checkJs: true,
-    noEmit: true,
-    // extendedDiagnostics: true,
-    /**
-     * Flags required to make no-unused-vars work
-     */
-    noUnusedLocals: true,
-    noUnusedParameters: true,
-};
-function createDefaultCompilerOptionsFromExtra(extra) {
-    if (extra.debugLevel.has('typescript')) {
-        return Object.assign(Object.assign({}, DEFAULT_COMPILER_OPTIONS), { extendedDiagnostics: true });
-    }
-    return DEFAULT_COMPILER_OPTIONS;
-}
-exports.createDefaultCompilerOptionsFromExtra = createDefaultCompilerOptionsFromExtra;
-// typescript doesn't provide a ts.sys implementation for browser environments
-const useCaseSensitiveFileNames = ts.sys !== undefined ? ts.sys.useCaseSensitiveFileNames : true;
-const correctPathCasing = useCaseSensitiveFileNames
-    ? (filePath) => filePath
-    : (filePath) => filePath.toLowerCase();
-function getCanonicalFileName(filePath) {
-    let normalized = path_1.default.normalize(filePath);
-    if (normalized.endsWith(path_1.default.sep)) {
-        normalized = normalized.substr(0, normalized.length - 1);
-    }
-    return correctPathCasing(normalized);
-}
-exports.getCanonicalFileName = getCanonicalFileName;
-function ensureAbsolutePath(p, extra) {
-    return path_1.default.isAbsolute(p)
-        ? p
-        : path_1.default.join(extra.tsconfigRootDir || process.cwd(), p);
-}
-exports.ensureAbsolutePath = ensureAbsolutePath;
-function getTsconfigPath(tsconfigPath, extra) {
-    return getCanonicalFileName(ensureAbsolutePath(tsconfigPath, extra));
-}
-exports.getTsconfigPath = getTsconfigPath;
-function canonicalDirname(p) {
-    return path_1.default.dirname(p);
-}
-exports.canonicalDirname = canonicalDirname;
-function getScriptKind(extra, filePath = extra.filePath) {
-    const extension = path_1.default.extname(filePath).toLowerCase();
-    // note - we respect the user's extension when it is known  we could override it and force it to match their
-    // jsx setting, but that could create weird situations where we throw parse errors when TSC doesn't
-    switch (extension) {
-        case '.ts':
-            return ts.ScriptKind.TS;
-        case '.tsx':
-            return ts.ScriptKind.TSX;
-        case '.js':
-            return ts.ScriptKind.JS;
-        case '.jsx':
-            return ts.ScriptKind.JSX;
-        case '.json':
-            return ts.ScriptKind.JSON;
-        default:
-            // unknown extension, force typescript to ignore the file extension, and respect the user's setting
-            return extra.jsx ? ts.ScriptKind.TSX : ts.ScriptKind.TS;
-    }
-}
-exports.getScriptKind = getScriptKind;
-//# sourceMappingURL=shared.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map
deleted file mode 100644
index 30f05b2..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts
deleted file mode 100644
index e9b5d41..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-import * as ts from 'typescript';
-import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from './ts-estree';
-declare const SyntaxKind: typeof ts.SyntaxKind;
-interface TokenToText {
-    [SyntaxKind.OpenBraceToken]: '{';
-    [SyntaxKind.CloseBraceToken]: '}';
-    [SyntaxKind.OpenParenToken]: '(';
-    [SyntaxKind.CloseParenToken]: ')';
-    [SyntaxKind.OpenBracketToken]: '[';
-    [SyntaxKind.CloseBracketToken]: ']';
-    [SyntaxKind.DotToken]: '.';
-    [SyntaxKind.DotDotDotToken]: '...';
-    [SyntaxKind.SemicolonToken]: ';';
-    [SyntaxKind.CommaToken]: ',';
-    [SyntaxKind.LessThanToken]: '<';
-    [SyntaxKind.GreaterThanToken]: '>';
-    [SyntaxKind.LessThanEqualsToken]: '<=';
-    [SyntaxKind.GreaterThanEqualsToken]: '>=';
-    [SyntaxKind.EqualsEqualsToken]: '==';
-    [SyntaxKind.ExclamationEqualsToken]: '!=';
-    [SyntaxKind.EqualsEqualsEqualsToken]: '===';
-    [SyntaxKind.InstanceOfKeyword]: 'instanceof';
-    [SyntaxKind.ExclamationEqualsEqualsToken]: '!==';
-    [SyntaxKind.EqualsGreaterThanToken]: '=>';
-    [SyntaxKind.PlusToken]: '+';
-    [SyntaxKind.MinusToken]: '-';
-    [SyntaxKind.AsteriskToken]: '*';
-    [SyntaxKind.AsteriskAsteriskToken]: '**';
-    [SyntaxKind.SlashToken]: '/';
-    [SyntaxKind.PercentToken]: '%';
-    [SyntaxKind.PlusPlusToken]: '++';
-    [SyntaxKind.MinusMinusToken]: '--';
-    [SyntaxKind.LessThanLessThanToken]: '<<';
-    [SyntaxKind.LessThanSlashToken]: '</';
-    [SyntaxKind.GreaterThanGreaterThanToken]: '>>';
-    [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: '>>>';
-    [SyntaxKind.AmpersandToken]: '&';
-    [SyntaxKind.BarToken]: '|';
-    [SyntaxKind.CaretToken]: '^';
-    [SyntaxKind.ExclamationToken]: '!';
-    [SyntaxKind.TildeToken]: '~';
-    [SyntaxKind.AmpersandAmpersandToken]: '&&';
-    [SyntaxKind.BarBarToken]: '||';
-    [SyntaxKind.QuestionToken]: '?';
-    [SyntaxKind.ColonToken]: ':';
-    [SyntaxKind.EqualsToken]: '=';
-    [SyntaxKind.PlusEqualsToken]: '+=';
-    [SyntaxKind.MinusEqualsToken]: '-=';
-    [SyntaxKind.AsteriskEqualsToken]: '*=';
-    [SyntaxKind.AsteriskAsteriskEqualsToken]: '**=';
-    [SyntaxKind.SlashEqualsToken]: '/=';
-    [SyntaxKind.PercentEqualsToken]: '%=';
-    [SyntaxKind.LessThanLessThanEqualsToken]: '<<=';
-    [SyntaxKind.GreaterThanGreaterThanEqualsToken]: '>>=';
-    [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: '>>>=';
-    [SyntaxKind.AmpersandEqualsToken]: '&=';
-    [SyntaxKind.AmpersandAmpersandEqualsToken]: '&&=';
-    [SyntaxKind.BarEqualsToken]: '|=';
-    [SyntaxKind.BarBarEqualsToken]: '||=';
-    [SyntaxKind.CaretEqualsToken]: '^=';
-    [SyntaxKind.QuestionQuestionEqualsToken]: '??=';
-    [SyntaxKind.AtToken]: '@';
-    [SyntaxKind.InKeyword]: 'in';
-    [SyntaxKind.UniqueKeyword]: 'unique';
-    [SyntaxKind.KeyOfKeyword]: 'keyof';
-    [SyntaxKind.NewKeyword]: 'new';
-    [SyntaxKind.ImportKeyword]: 'import';
-    [SyntaxKind.ReadonlyKeyword]: 'readonly';
-    [SyntaxKind.QuestionQuestionToken]: '??';
-    [SyntaxKind.QuestionDotToken]: '?.';
-}
-/**
- * Returns true if the given ts.Token is the assignment operator
- * @param operator the operator token
- * @returns is assignment
- */
-export declare function isAssignmentOperator<T extends ts.SyntaxKind>(operator: ts.Token<T>): boolean;
-/**
- * Returns true if the given ts.Token is a logical operator
- * @param operator the operator token
- * @returns is a logical operator
- */
-export declare function isLogicalOperator<T extends ts.SyntaxKind>(operator: ts.Token<T>): boolean;
-/**
- * Returns the string form of the given TSToken SyntaxKind
- * @param kind the token's SyntaxKind
- * @returns the token applicable token as a string
- */
-export declare function getTextForTokenKind<T extends ts.SyntaxKind>(kind: T): T extends keyof TokenToText ? TokenToText[T] : string | undefined;
-/**
- * Returns true if the given ts.Node is a valid ESTree class member
- * @param node TypeScript AST node
- * @returns is valid ESTree class member
- */
-export declare function isESTreeClassMember(node: ts.Node): boolean;
-/**
- * Checks if a ts.Node has a modifier
- * @param modifierKind TypeScript SyntaxKind modifier
- * @param node TypeScript AST node
- * @returns has the modifier specified
- */
-export declare function hasModifier(modifierKind: ts.KeywordSyntaxKind, node: ts.Node): boolean;
-/**
- * Get last last modifier in ast
- * @param node TypeScript AST node
- * @returns returns last modifier if present or null
- */
-export declare function getLastModifier(node: ts.Node): ts.Modifier | null;
-/**
- * Returns true if the given ts.Token is a comma
- * @param token the TypeScript token
- * @returns is comma
- */
-export declare function isComma(token: ts.Node): boolean;
-/**
- * Returns true if the given ts.Node is a comment
- * @param node the TypeScript node
- * @returns is comment
- */
-export declare function isComment(node: ts.Node): boolean;
-/**
- * Returns true if the given ts.Node is a JSDoc comment
- * @param node the TypeScript node
- * @returns is JSDoc comment
- */
-export declare function isJSDocComment(node: ts.Node): boolean;
-/**
- * Returns the binary expression type of the given ts.Token
- * @param operator the operator token
- * @returns the binary expression type
- */
-export declare function getBinaryExpressionType<T extends ts.SyntaxKind>(operator: ts.Token<T>): AST_NODE_TYPES.AssignmentExpression | AST_NODE_TYPES.LogicalExpression | AST_NODE_TYPES.BinaryExpression;
-/**
- * Returns line and column data for the given positions,
- * @param pos position to check
- * @param ast the AST object
- * @returns line and column
- */
-export declare function getLineAndCharacterFor(pos: number, ast: ts.SourceFile): TSESTree.LineAndColumnData;
-/**
- * Returns line and column data for the given start and end positions,
- * for the given AST
- * @param start start data
- * @param end   end data
- * @param ast   the AST object
- * @returns the loc data
- */
-export declare function getLocFor(start: number, end: number, ast: ts.SourceFile): TSESTree.SourceLocation;
-/**
- * Check whatever node can contain directive
- * @param node
- * @returns returns true if node can contain directive
- */
-export declare function canContainDirective(node: ts.SourceFile | ts.Block | ts.ModuleBlock): boolean;
-/**
- * Returns range for the given ts.Node
- * @param node the ts.Node or ts.Token
- * @param ast the AST object
- * @returns the range data
- */
-export declare function getRange(node: ts.Node, ast: ts.SourceFile): [number, number];
-/**
- * Returns true if a given ts.Node is a token
- * @param node the ts.Node
- * @returns is a token
- */
-export declare function isToken(node: ts.Node): boolean;
-/**
- * Returns true if a given ts.Node is a JSX token
- * @param node ts.Node to be checked
- * @returns is a JSX token
- */
-export declare function isJSXToken(node: ts.Node): boolean;
-/**
- * Returns the declaration kind of the given ts.Node
- * @param node TypeScript AST node
- * @returns declaration kind
- */
-export declare function getDeclarationKind(node: ts.VariableDeclarationList): 'let' | 'const' | 'var';
-/**
- * Gets a ts.Node's accessibility level
- * @param node The ts.Node
- * @returns accessibility "public", "protected", "private", or null
- */
-export declare function getTSNodeAccessibility(node: ts.Node): 'public' | 'protected' | 'private' | null;
-/**
- * Finds the next token based on the previous one and its parent
- * Had to copy this from TS instead of using TS's version because theirs doesn't pass the ast to getChildren
- * @param previousToken The previous TSToken
- * @param parent The parent TSNode
- * @param ast The TS AST
- * @returns the next TSToken
- */
-export declare function findNextToken(previousToken: ts.TextRange, parent: ts.Node, ast: ts.SourceFile): ts.Node | undefined;
-/**
- * Find the first matching ancestor based on the given predicate function.
- * @param node The current ts.Node
- * @param predicate The predicate function to apply to each checked ancestor
- * @returns a matching parent ts.Node
- */
-export declare function findFirstMatchingAncestor(node: ts.Node, predicate: (node: ts.Node) => boolean): ts.Node | undefined;
-/**
- * Returns true if a given ts.Node has a JSX token within its hierarchy
- * @param node ts.Node to be checked
- * @returns has JSX ancestor
- */
-export declare function hasJSXAncestor(node: ts.Node): boolean;
-/**
- * Unescape the text content of string literals, e.g. &amp; -> &
- * @param text The escaped string literal text.
- * @returns The unescaped string literal text.
- */
-export declare function unescapeStringLiteralText(text: string): string;
-/**
- * Returns true if a given ts.Node is a computed property
- * @param node ts.Node to be checked
- * @returns is Computed Property
- */
-export declare function isComputedProperty(node: ts.Node): boolean;
-/**
- * Returns true if a given ts.Node is optional (has QuestionToken)
- * @param node ts.Node to be checked
- * @returns is Optional
- */
-export declare function isOptional(node: {
-    questionToken?: ts.QuestionToken;
-}): boolean;
-/**
- * Returns true if the node is an optional chain node
- */
-export declare function isChainExpression(node: TSESTree.Node): node is TSESTree.ChainExpression;
-/**
- * Returns true of the child of property access expression is an optional chain
- */
-export declare function isChildUnwrappableOptionalChain(node: ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.NonNullExpression, child: TSESTree.Node): boolean;
-/**
- * Returns the type of a given ts.Token
- * @param token the ts.Token
- * @returns the token type
- */
-export declare function getTokenType(token: ts.Identifier | ts.Token<ts.SyntaxKind>): Exclude<AST_TOKEN_TYPES, AST_TOKEN_TYPES.Line | AST_TOKEN_TYPES.Block>;
-/**
- * Extends and formats a given ts.Token, for a given AST
- * @param token the ts.Token
- * @param ast   the AST object
- * @returns the converted Token
- */
-export declare function convertToken(token: ts.Node, ast: ts.SourceFile): TSESTree.Token;
-/**
- * Converts all tokens for the given AST
- * @param ast the AST object
- * @returns the converted Tokens
- */
-export declare function convertTokens(ast: ts.SourceFile): TSESTree.Token[];
-export interface TSError {
-    index: number;
-    lineNumber: number;
-    column: number;
-    message: string;
-}
-/**
- * @param ast     the AST object
- * @param start      the index at which the error starts
- * @param message the error message
- * @returns converted error object
- */
-export declare function createError(ast: ts.SourceFile, start: number, message: string): TSError;
-/**
- * @param n the TSNode
- * @param ast the TS AST
- */
-export declare function nodeHasTokens(n: ts.Node, ast: ts.SourceFile): boolean;
-/**
- * Like `forEach`, but suitable for use with numbers and strings (which may be falsy).
- * @template T
- * @template U
- * @param array
- * @param callback
- */
-export declare function firstDefined<T, U>(array: readonly T[] | undefined, callback: (element: T, index: number) => U | undefined): U | undefined;
-export {};
-//# sourceMappingURL=node-utils.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map
deleted file mode 100644
index f898a2f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"node-utils.d.ts","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAExE,QAAA,MAAM,UAAU,sBAAgB,CAAC;AAWjC,UAAU,WAAW;IACnB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC;IAClC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC;IAClC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACnC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACpC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;IAC3B,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;IACnC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC;IAChC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACnC,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC1C,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACrC,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC1C,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,KAAK,CAAC;IAC5C,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC;IAC7C,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,KAAK,CAAC;IACjD,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC1C,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAC5B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC;IAChC,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;IACzC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IAC/B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IACjC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;IACnC,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;IACzC,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACtC,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC;IAC/C,CAAC,UAAU,CAAC,sCAAsC,CAAC,EAAE,KAAK,CAAC;IAC3D,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;IAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACnC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IAC3C,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC/B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC;IAChC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC7B,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;IAC9B,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC;IACnC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACpC,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC;IAChD,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACpC,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACtC,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC;IAChD,CAAC,UAAU,CAAC,iCAAiC,CAAC,EAAE,KAAK,CAAC;IACtD,CAAC,UAAU,CAAC,4CAA4C,CAAC,EAAE,MAAM,CAAC;IAClE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IACxC,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC;IAClD,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IAClC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;IACtC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACpC,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC;IAChD,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;IAC1B,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC7B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACrC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IACnC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC/B,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACrC,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC;IACzC,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;IACzC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,EAC1D,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GACpB,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,EACvD,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GACpB,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,EACzD,IAAI,EAAE,CAAC,GACN,CAAC,SAAS,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAInE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,EAAE,CAAC,iBAAiB,EAClC,IAAI,EAAE,EAAE,CAAC,IAAI,GACZ,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,GAAG,IAAI,CAOjE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAKhD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,EAC7D,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAEnB,cAAc,CAAC,oBAAoB,GACnC,cAAc,CAAC,iBAAiB,GAChC,cAAc,CAAC,gBAAgB,CAOlC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,EAAE,CAAC,UAAU,GACjB,QAAQ,CAAC,iBAAiB,CAM5B;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,EAAE,CAAC,UAAU,GACjB,QAAQ,CAAC,cAAc,CAKzB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,GAC9C,OAAO,CAgBT;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAI9C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAIjD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,EAAE,CAAC,uBAAuB,GAC/B,KAAK,GAAG,OAAO,GAAG,KAAK,CAQzB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,IAAI,GACZ,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,CAmB3C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,EAAE,CAAC,SAAS,EAC3B,MAAM,EAAE,EAAE,CAAC,IAAI,EACf,GAAG,EAAE,EAAE,CAAC,UAAU,GACjB,EAAE,CAAC,IAAI,GAAG,SAAS,CAmBrB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,GACpC,EAAE,CAAC,IAAI,GAAG,SAAS,CAQrB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,aAAa,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;CAClC,GAAG,OAAO,CAIV;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,GAClB,IAAI,IAAI,QAAQ,CAAC,eAAe,CAElC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EACA,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,uBAAuB,GAC1B,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,iBAAiB,EACxB,KAAK,EAAE,QAAQ,CAAC,IAAI,GACnB,OAAO,CAUT;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAC7C,OAAO,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAwFxE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,EAAE,CAAC,IAAI,EACd,GAAG,EAAE,EAAE,CAAC,UAAU,GACjB,QAAQ,CAAC,KAAK,CA4BhB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,CAwBlE;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,EAAE,CAAC,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CAOrE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,EAC/B,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,GACrD,CAAC,GAAG,SAAS,CAYf"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js
deleted file mode 100644
index 05c95cf..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js
+++ /dev/null
@@ -1,543 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.firstDefined = exports.nodeHasTokens = exports.createError = exports.convertTokens = exports.convertToken = exports.getTokenType = exports.isChildUnwrappableOptionalChain = exports.isChainExpression = exports.isOptional = exports.isComputedProperty = exports.unescapeStringLiteralText = exports.hasJSXAncestor = exports.findFirstMatchingAncestor = exports.findNextToken = exports.getTSNodeAccessibility = exports.getDeclarationKind = exports.isJSXToken = exports.isToken = exports.getRange = exports.canContainDirective = exports.getLocFor = exports.getLineAndCharacterFor = exports.getBinaryExpressionType = exports.isJSDocComment = exports.isComment = exports.isComma = exports.getLastModifier = exports.hasModifier = exports.isESTreeClassMember = exports.getTextForTokenKind = exports.isLogicalOperator = exports.isAssignmentOperator = void 0;
-const unescape_1 = __importDefault(require("lodash/unescape"));
-const ts = __importStar(require("typescript"));
-const ts_estree_1 = require("./ts-estree");
-const SyntaxKind = ts.SyntaxKind;
-const LOGICAL_OPERATORS = [
-    SyntaxKind.BarBarToken,
-    SyntaxKind.AmpersandAmpersandToken,
-    SyntaxKind.QuestionQuestionToken,
-];
-/**
- * Returns true if the given ts.Token is the assignment operator
- * @param operator the operator token
- * @returns is assignment
- */
-function isAssignmentOperator(operator) {
-    return (operator.kind >= SyntaxKind.FirstAssignment &&
-        operator.kind <= SyntaxKind.LastAssignment);
-}
-exports.isAssignmentOperator = isAssignmentOperator;
-/**
- * Returns true if the given ts.Token is a logical operator
- * @param operator the operator token
- * @returns is a logical operator
- */
-function isLogicalOperator(operator) {
-    return LOGICAL_OPERATORS.includes(operator.kind);
-}
-exports.isLogicalOperator = isLogicalOperator;
-/**
- * Returns the string form of the given TSToken SyntaxKind
- * @param kind the token's SyntaxKind
- * @returns the token applicable token as a string
- */
-function getTextForTokenKind(kind) {
-    return ts.tokenToString(kind);
-}
-exports.getTextForTokenKind = getTextForTokenKind;
-/**
- * Returns true if the given ts.Node is a valid ESTree class member
- * @param node TypeScript AST node
- * @returns is valid ESTree class member
- */
-function isESTreeClassMember(node) {
-    return node.kind !== SyntaxKind.SemicolonClassElement;
-}
-exports.isESTreeClassMember = isESTreeClassMember;
-/**
- * Checks if a ts.Node has a modifier
- * @param modifierKind TypeScript SyntaxKind modifier
- * @param node TypeScript AST node
- * @returns has the modifier specified
- */
-function hasModifier(modifierKind, node) {
-    return (!!node.modifiers &&
-        !!node.modifiers.length &&
-        node.modifiers.some(modifier => modifier.kind === modifierKind));
-}
-exports.hasModifier = hasModifier;
-/**
- * Get last last modifier in ast
- * @param node TypeScript AST node
- * @returns returns last modifier if present or null
- */
-function getLastModifier(node) {
-    return ((!!node.modifiers &&
-        !!node.modifiers.length &&
-        node.modifiers[node.modifiers.length - 1]) ||
-        null);
-}
-exports.getLastModifier = getLastModifier;
-/**
- * Returns true if the given ts.Token is a comma
- * @param token the TypeScript token
- * @returns is comma
- */
-function isComma(token) {
-    return token.kind === SyntaxKind.CommaToken;
-}
-exports.isComma = isComma;
-/**
- * Returns true if the given ts.Node is a comment
- * @param node the TypeScript node
- * @returns is comment
- */
-function isComment(node) {
-    return (node.kind === SyntaxKind.SingleLineCommentTrivia ||
-        node.kind === SyntaxKind.MultiLineCommentTrivia);
-}
-exports.isComment = isComment;
-/**
- * Returns true if the given ts.Node is a JSDoc comment
- * @param node the TypeScript node
- * @returns is JSDoc comment
- */
-function isJSDocComment(node) {
-    return node.kind === SyntaxKind.JSDocComment;
-}
-exports.isJSDocComment = isJSDocComment;
-/**
- * Returns the binary expression type of the given ts.Token
- * @param operator the operator token
- * @returns the binary expression type
- */
-function getBinaryExpressionType(operator) {
-    if (isAssignmentOperator(operator)) {
-        return ts_estree_1.AST_NODE_TYPES.AssignmentExpression;
-    }
-    else if (isLogicalOperator(operator)) {
-        return ts_estree_1.AST_NODE_TYPES.LogicalExpression;
-    }
-    return ts_estree_1.AST_NODE_TYPES.BinaryExpression;
-}
-exports.getBinaryExpressionType = getBinaryExpressionType;
-/**
- * Returns line and column data for the given positions,
- * @param pos position to check
- * @param ast the AST object
- * @returns line and column
- */
-function getLineAndCharacterFor(pos, ast) {
-    const loc = ast.getLineAndCharacterOfPosition(pos);
-    return {
-        line: loc.line + 1,
-        column: loc.character,
-    };
-}
-exports.getLineAndCharacterFor = getLineAndCharacterFor;
-/**
- * Returns line and column data for the given start and end positions,
- * for the given AST
- * @param start start data
- * @param end   end data
- * @param ast   the AST object
- * @returns the loc data
- */
-function getLocFor(start, end, ast) {
-    return {
-        start: getLineAndCharacterFor(start, ast),
-        end: getLineAndCharacterFor(end, ast),
-    };
-}
-exports.getLocFor = getLocFor;
-/**
- * Check whatever node can contain directive
- * @param node
- * @returns returns true if node can contain directive
- */
-function canContainDirective(node) {
-    if (node.kind === ts.SyntaxKind.Block) {
-        switch (node.parent.kind) {
-            case ts.SyntaxKind.Constructor:
-            case ts.SyntaxKind.GetAccessor:
-            case ts.SyntaxKind.SetAccessor:
-            case ts.SyntaxKind.ArrowFunction:
-            case ts.SyntaxKind.FunctionExpression:
-            case ts.SyntaxKind.FunctionDeclaration:
-            case ts.SyntaxKind.MethodDeclaration:
-                return true;
-            default:
-                return false;
-        }
-    }
-    return true;
-}
-exports.canContainDirective = canContainDirective;
-/**
- * Returns range for the given ts.Node
- * @param node the ts.Node or ts.Token
- * @param ast the AST object
- * @returns the range data
- */
-function getRange(node, ast) {
-    return [node.getStart(ast), node.getEnd()];
-}
-exports.getRange = getRange;
-/**
- * Returns true if a given ts.Node is a token
- * @param node the ts.Node
- * @returns is a token
- */
-function isToken(node) {
-    return (node.kind >= SyntaxKind.FirstToken && node.kind <= SyntaxKind.LastToken);
-}
-exports.isToken = isToken;
-/**
- * Returns true if a given ts.Node is a JSX token
- * @param node ts.Node to be checked
- * @returns is a JSX token
- */
-function isJSXToken(node) {
-    return (node.kind >= SyntaxKind.JsxElement && node.kind <= SyntaxKind.JsxAttribute);
-}
-exports.isJSXToken = isJSXToken;
-/**
- * Returns the declaration kind of the given ts.Node
- * @param node TypeScript AST node
- * @returns declaration kind
- */
-function getDeclarationKind(node) {
-    if (node.flags & ts.NodeFlags.Let) {
-        return 'let';
-    }
-    if (node.flags & ts.NodeFlags.Const) {
-        return 'const';
-    }
-    return 'var';
-}
-exports.getDeclarationKind = getDeclarationKind;
-/**
- * Gets a ts.Node's accessibility level
- * @param node The ts.Node
- * @returns accessibility "public", "protected", "private", or null
- */
-function getTSNodeAccessibility(node) {
-    const modifiers = node.modifiers;
-    if (!modifiers) {
-        return null;
-    }
-    for (let i = 0; i < modifiers.length; i++) {
-        const modifier = modifiers[i];
-        switch (modifier.kind) {
-            case SyntaxKind.PublicKeyword:
-                return 'public';
-            case SyntaxKind.ProtectedKeyword:
-                return 'protected';
-            case SyntaxKind.PrivateKeyword:
-                return 'private';
-            default:
-                break;
-        }
-    }
-    return null;
-}
-exports.getTSNodeAccessibility = getTSNodeAccessibility;
-/**
- * Finds the next token based on the previous one and its parent
- * Had to copy this from TS instead of using TS's version because theirs doesn't pass the ast to getChildren
- * @param previousToken The previous TSToken
- * @param parent The parent TSNode
- * @param ast The TS AST
- * @returns the next TSToken
- */
-function findNextToken(previousToken, parent, ast) {
-    return find(parent);
-    function find(n) {
-        if (ts.isToken(n) && n.pos === previousToken.end) {
-            // this is token that starts at the end of previous token - return it
-            return n;
-        }
-        return firstDefined(n.getChildren(ast), (child) => {
-            const shouldDiveInChildNode = 
-            // previous token is enclosed somewhere in the child
-            (child.pos <= previousToken.pos && child.end > previousToken.end) ||
-                // previous token ends exactly at the beginning of child
-                child.pos === previousToken.end;
-            return shouldDiveInChildNode && nodeHasTokens(child, ast)
-                ? find(child)
-                : undefined;
-        });
-    }
-}
-exports.findNextToken = findNextToken;
-/**
- * Find the first matching ancestor based on the given predicate function.
- * @param node The current ts.Node
- * @param predicate The predicate function to apply to each checked ancestor
- * @returns a matching parent ts.Node
- */
-function findFirstMatchingAncestor(node, predicate) {
-    while (node) {
-        if (predicate(node)) {
-            return node;
-        }
-        node = node.parent;
-    }
-    return undefined;
-}
-exports.findFirstMatchingAncestor = findFirstMatchingAncestor;
-/**
- * Returns true if a given ts.Node has a JSX token within its hierarchy
- * @param node ts.Node to be checked
- * @returns has JSX ancestor
- */
-function hasJSXAncestor(node) {
-    return !!findFirstMatchingAncestor(node, isJSXToken);
-}
-exports.hasJSXAncestor = hasJSXAncestor;
-/**
- * Unescape the text content of string literals, e.g. &amp; -> &
- * @param text The escaped string literal text.
- * @returns The unescaped string literal text.
- */
-function unescapeStringLiteralText(text) {
-    return unescape_1.default(text);
-}
-exports.unescapeStringLiteralText = unescapeStringLiteralText;
-/**
- * Returns true if a given ts.Node is a computed property
- * @param node ts.Node to be checked
- * @returns is Computed Property
- */
-function isComputedProperty(node) {
-    return node.kind === SyntaxKind.ComputedPropertyName;
-}
-exports.isComputedProperty = isComputedProperty;
-/**
- * Returns true if a given ts.Node is optional (has QuestionToken)
- * @param node ts.Node to be checked
- * @returns is Optional
- */
-function isOptional(node) {
-    return node.questionToken
-        ? node.questionToken.kind === SyntaxKind.QuestionToken
-        : false;
-}
-exports.isOptional = isOptional;
-/**
- * Returns true if the node is an optional chain node
- */
-function isChainExpression(node) {
-    return node.type === ts_estree_1.AST_NODE_TYPES.ChainExpression;
-}
-exports.isChainExpression = isChainExpression;
-/**
- * Returns true of the child of property access expression is an optional chain
- */
-function isChildUnwrappableOptionalChain(node, child) {
-    if (isChainExpression(child) &&
-        // (x?.y).z is semantically different, and as such .z is no longer optional
-        node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression) {
-        return true;
-    }
-    return false;
-}
-exports.isChildUnwrappableOptionalChain = isChildUnwrappableOptionalChain;
-/**
- * Returns the type of a given ts.Token
- * @param token the ts.Token
- * @returns the token type
- */
-function getTokenType(token) {
-    if ('originalKeywordKind' in token && token.originalKeywordKind) {
-        if (token.originalKeywordKind === SyntaxKind.NullKeyword) {
-            return ts_estree_1.AST_TOKEN_TYPES.Null;
-        }
-        else if (token.originalKeywordKind >= SyntaxKind.FirstFutureReservedWord &&
-            token.originalKeywordKind <= SyntaxKind.LastKeyword) {
-            return ts_estree_1.AST_TOKEN_TYPES.Identifier;
-        }
-        return ts_estree_1.AST_TOKEN_TYPES.Keyword;
-    }
-    if (token.kind >= SyntaxKind.FirstKeyword &&
-        token.kind <= SyntaxKind.LastFutureReservedWord) {
-        if (token.kind === SyntaxKind.FalseKeyword ||
-            token.kind === SyntaxKind.TrueKeyword) {
-            return ts_estree_1.AST_TOKEN_TYPES.Boolean;
-        }
-        return ts_estree_1.AST_TOKEN_TYPES.Keyword;
-    }
-    if (token.kind >= SyntaxKind.FirstPunctuation &&
-        token.kind <= SyntaxKind.LastBinaryOperator) {
-        return ts_estree_1.AST_TOKEN_TYPES.Punctuator;
-    }
-    if (token.kind >= SyntaxKind.NoSubstitutionTemplateLiteral &&
-        token.kind <= SyntaxKind.TemplateTail) {
-        return ts_estree_1.AST_TOKEN_TYPES.Template;
-    }
-    switch (token.kind) {
-        case SyntaxKind.NumericLiteral:
-            return ts_estree_1.AST_TOKEN_TYPES.Numeric;
-        case SyntaxKind.JsxText:
-            return ts_estree_1.AST_TOKEN_TYPES.JSXText;
-        case SyntaxKind.StringLiteral:
-            // A TypeScript-StringLiteral token with a TypeScript-JsxAttribute or TypeScript-JsxElement parent,
-            // must actually be an ESTree-JSXText token
-            if (token.parent &&
-                (token.parent.kind === SyntaxKind.JsxAttribute ||
-                    token.parent.kind === SyntaxKind.JsxElement)) {
-                return ts_estree_1.AST_TOKEN_TYPES.JSXText;
-            }
-            return ts_estree_1.AST_TOKEN_TYPES.String;
-        case SyntaxKind.RegularExpressionLiteral:
-            return ts_estree_1.AST_TOKEN_TYPES.RegularExpression;
-        case SyntaxKind.Identifier:
-        case SyntaxKind.ConstructorKeyword:
-        case SyntaxKind.GetKeyword:
-        case SyntaxKind.SetKeyword:
-        // falls through
-        default:
-    }
-    // Some JSX tokens have to be determined based on their parent
-    if (token.parent && token.kind === SyntaxKind.Identifier) {
-        if (isJSXToken(token.parent)) {
-            return ts_estree_1.AST_TOKEN_TYPES.JSXIdentifier;
-        }
-        if (token.parent.kind === SyntaxKind.PropertyAccessExpression &&
-            hasJSXAncestor(token)) {
-            return ts_estree_1.AST_TOKEN_TYPES.JSXIdentifier;
-        }
-    }
-    return ts_estree_1.AST_TOKEN_TYPES.Identifier;
-}
-exports.getTokenType = getTokenType;
-/**
- * Extends and formats a given ts.Token, for a given AST
- * @param token the ts.Token
- * @param ast   the AST object
- * @returns the converted Token
- */
-function convertToken(token, ast) {
-    const start = token.kind === SyntaxKind.JsxText
-        ? token.getFullStart()
-        : token.getStart(ast);
-    const end = token.getEnd();
-    const value = ast.text.slice(start, end);
-    const tokenType = getTokenType(token);
-    if (tokenType === ts_estree_1.AST_TOKEN_TYPES.RegularExpression) {
-        return {
-            type: tokenType,
-            value,
-            range: [start, end],
-            loc: getLocFor(start, end, ast),
-            regex: {
-                pattern: value.slice(1, value.lastIndexOf('/')),
-                flags: value.slice(value.lastIndexOf('/') + 1),
-            },
-        };
-    }
-    else {
-        return {
-            type: tokenType,
-            value,
-            range: [start, end],
-            loc: getLocFor(start, end, ast),
-        };
-    }
-}
-exports.convertToken = convertToken;
-/**
- * Converts all tokens for the given AST
- * @param ast the AST object
- * @returns the converted Tokens
- */
-function convertTokens(ast) {
-    const result = [];
-    /**
-     * @param node the ts.Node
-     */
-    function walk(node) {
-        // TypeScript generates tokens for types in JSDoc blocks. Comment tokens
-        // and their children should not be walked or added to the resulting tokens list.
-        if (isComment(node) || isJSDocComment(node)) {
-            return;
-        }
-        if (isToken(node) && node.kind !== SyntaxKind.EndOfFileToken) {
-            const converted = convertToken(node, ast);
-            if (converted) {
-                result.push(converted);
-            }
-        }
-        else {
-            node.getChildren(ast).forEach(walk);
-        }
-    }
-    walk(ast);
-    return result;
-}
-exports.convertTokens = convertTokens;
-/**
- * @param ast     the AST object
- * @param start      the index at which the error starts
- * @param message the error message
- * @returns converted error object
- */
-function createError(ast, start, message) {
-    const loc = ast.getLineAndCharacterOfPosition(start);
-    return {
-        index: start,
-        lineNumber: loc.line + 1,
-        column: loc.character,
-        message,
-    };
-}
-exports.createError = createError;
-/**
- * @param n the TSNode
- * @param ast the TS AST
- */
-function nodeHasTokens(n, ast) {
-    // If we have a token or node that has a non-zero width, it must have tokens.
-    // Note: getWidth() does not take trivia into account.
-    return n.kind === SyntaxKind.EndOfFileToken
-        ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
-            !!n.jsDoc
-        : n.getWidth(ast) !== 0;
-}
-exports.nodeHasTokens = nodeHasTokens;
-/**
- * Like `forEach`, but suitable for use with numbers and strings (which may be falsy).
- * @template T
- * @template U
- * @param array
- * @param callback
- */
-function firstDefined(array, callback) {
-    if (array === undefined) {
-        return undefined;
-    }
-    for (let i = 0; i < array.length; i++) {
-        const result = callback(array[i], i);
-        if (result !== undefined) {
-            return result;
-        }
-    }
-    return undefined;
-}
-exports.firstDefined = firstDefined;
-//# sourceMappingURL=node-utils.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map
deleted file mode 100644
index 306ba36..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts
deleted file mode 100644
index e64a09d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-import { DebugLevel } from '@typescript-eslint/types';
-import { Program } from 'typescript';
-import { TSESTree, TSNode, TSESTreeToTSNode, TSToken } from './ts-estree';
-declare type DebugModule = 'typescript-eslint' | 'eslint' | 'typescript';
-export interface Extra {
-    code: string;
-    comment: boolean;
-    comments: TSESTree.Comment[];
-    createDefaultProgram: boolean;
-    debugLevel: Set<DebugModule>;
-    errorOnTypeScriptSyntacticAndSemanticIssues: boolean;
-    errorOnUnknownASTType: boolean;
-    extraFileExtensions: string[];
-    filePath: string;
-    jsx: boolean;
-    loc: boolean;
-    log: (message: string) => void;
-    preserveNodeMaps?: boolean;
-    projects: string[];
-    range: boolean;
-    strict: boolean;
-    tokens: null | TSESTree.Token[];
-    tsconfigRootDir: string;
-    useJSXTextNode: boolean;
-}
-interface ParseOptions {
-    /**
-     * create a top-level comments array containing all comments
-     */
-    comment?: boolean;
-    /**
-     * An array of modules to turn explicit debugging on for.
-     * - 'typescript-eslint' is the same as setting the env var `DEBUG=typescript-eslint:*`
-     * - 'eslint' is the same as setting the env var `DEBUG=eslint:*`
-     * - 'typescript' is the same as setting `extendedDiagnostics: true` in your tsconfig compilerOptions
-     *
-     * For convenience, also supports a boolean:
-     * - true === ['typescript-eslint']
-     * - false === []
-     */
-    debugLevel?: DebugLevel;
-    /**
-     * Cause the parser to error if it encounters an unknown AST node type (useful for testing).
-     * This case only usually occurs when TypeScript releases new features.
-     */
-    errorOnUnknownASTType?: boolean;
-    /**
-     * Absolute (or relative to `cwd`) path to the file being parsed.
-     */
-    filePath?: string;
-    /**
-     * Enable parsing of JSX.
-     * For more details, see https://www.typescriptlang.org/docs/handbook/jsx.html
-     *
-     * NOTE: this setting does not effect known file types (.js, .jsx, .ts, .tsx, .json) because the
-     * TypeScript compiler has its own internal handling for known file extensions.
-     *
-     * For the exact behavior, see https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#parseroptionsecmafeaturesjsx
-     */
-    jsx?: boolean;
-    /**
-     * Controls whether the `loc` information to each node.
-     * The `loc` property is an object which contains the exact line/column the node starts/ends on.
-     * This is similar to the `range` property, except it is line/column relative.
-     */
-    loc?: boolean;
-    loggerFn?: ((message: string) => void) | false;
-    /**
-     * Controls whether the `range` property is included on AST nodes.
-     * The `range` property is a [number, number] which indicates the start/end index of the node in the file contents.
-     * This is similar to the `loc` property, except this is the absolute index.
-     */
-    range?: boolean;
-    /**
-     * Set to true to create a top-level array containing all tokens from the file.
-     */
-    tokens?: boolean;
-    useJSXTextNode?: boolean;
-}
-interface ParseAndGenerateServicesOptions extends ParseOptions {
-    /**
-     * Causes the parser to error if the TypeScript compiler returns any unexpected syntax/semantic errors.
-     */
-    errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
-    /**
-     * When `project` is provided, this controls the non-standard file extensions which will be parsed.
-     * It accepts an array of file extensions, each preceded by a `.`.
-     */
-    extraFileExtensions?: string[];
-    /**
-     * Absolute (or relative to `tsconfigRootDir`) path to the file being parsed.
-     * When `project` is provided, this is required, as it is used to fetch the file from the TypeScript compiler's cache.
-     */
-    filePath?: string;
-    /**
-     * Allows the user to control whether or not two-way AST node maps are preserved
-     * during the AST conversion process.
-     *
-     * By default: the AST node maps are NOT preserved, unless `project` has been specified,
-     * in which case the maps are made available on the returned `parserServices`.
-     *
-     * NOTE: If `preserveNodeMaps` is explicitly set by the user, it will be respected,
-     * regardless of whether or not `project` is in use.
-     */
-    preserveNodeMaps?: boolean;
-    /**
-     * Absolute (or relative to `tsconfigRootDir`) paths to the tsconfig(s).
-     * If this is provided, type information will be returned.
-     */
-    project?: string | string[];
-    /**
-     * If you provide a glob (or globs) to the project option, you can use this option to ignore certain folders from
-     * being matched by the globs.
-     * This accepts an array of globs to ignore.
-     *
-     * By default, this is set to ["**\/node_modules/**"]
-     */
-    projectFolderIgnoreList?: string[];
-    /**
-     * The absolute path to the root directory for all provided `project`s.
-     */
-    tsconfigRootDir?: string;
-    /**
-     ***************************************************************************************
-     * IT IS RECOMMENDED THAT YOU DO NOT USE THIS OPTION, AS IT CAUSES PERFORMANCE ISSUES. *
-     ***************************************************************************************
-     *
-     * When passed with `project`, this allows the parser to create a catch-all, default program.
-     * This means that if the parser encounters a file not included in any of the provided `project`s,
-     * it will not error, but will instead parse the file and its dependencies in a new program.
-     */
-    createDefaultProgram?: boolean;
-}
-export declare type TSESTreeOptions = ParseAndGenerateServicesOptions;
-export interface ParserWeakMap<TKey, TValueBase> {
-    get<TValue extends TValueBase>(key: TKey): TValue;
-    has(key: unknown): boolean;
-}
-export interface ParserWeakMapESTreeToTSNode<TKey extends TSESTree.Node = TSESTree.Node> {
-    get<TKeyBase extends TKey>(key: TKeyBase): TSESTreeToTSNode<TKeyBase>;
-    has(key: unknown): boolean;
-}
-export interface ParserServices {
-    program: Program;
-    esTreeNodeToTSNodeMap: ParserWeakMapESTreeToTSNode;
-    tsNodeToESTreeNodeMap: ParserWeakMap<TSNode | TSToken, TSESTree.Node>;
-    hasFullTypeInformation: boolean;
-}
-export {};
-//# sourceMappingURL=parser-options.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map
deleted file mode 100644
index af6375f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js
deleted file mode 100644
index 66f40a2..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=parser-options.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js.map
deleted file mode 100644
index 22b7b8a..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"parser-options.js","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts
deleted file mode 100644
index d31f3a7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { TSESTreeOptions, ParserServices } from './parser-options';
-import { TSESTree } from './ts-estree';
-interface EmptyObject {
-}
-declare type AST<T extends TSESTreeOptions> = TSESTree.Program & (T['tokens'] extends true ? {
-    tokens: TSESTree.Token[];
-} : EmptyObject) & (T['comment'] extends true ? {
-    comments: TSESTree.Comment[];
-} : EmptyObject);
-interface ParseAndGenerateServicesResult<T extends TSESTreeOptions> {
-    ast: AST<T>;
-    services: ParserServices;
-}
-declare function parse<T extends TSESTreeOptions = TSESTreeOptions>(code: string, options?: T): AST<T>;
-declare function parseAndGenerateServices<T extends TSESTreeOptions = TSESTreeOptions>(code: string, options: T): ParseAndGenerateServicesResult<T>;
-export { AST, parse, parseAndGenerateServices, ParseAndGenerateServicesResult };
-//# sourceMappingURL=parser.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map
deleted file mode 100644
index 0647033..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAWA,OAAO,EAAS,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwSvC,UAAU,WAAW;CAAG;AACxB,aAAK,GAAG,CAAC,CAAC,SAAS,eAAe,IAAI,QAAQ,CAAC,OAAO,GACpD,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GACvE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,CAAC;AAE/E,UAAU,8BAA8B,CAAC,CAAC,SAAS,eAAe;IAChE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,iBAAS,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CA4CR;AAED,iBAAS,wBAAwB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,8BAA8B,CAAC,CAAC,CAAC,CA0EnC;AAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js
deleted file mode 100644
index 20db621..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js
+++ /dev/null
@@ -1,380 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.parseAndGenerateServices = exports.parse = void 0;
-const debug_1 = __importDefault(require("debug"));
-const globby_1 = require("globby");
-const is_glob_1 = __importDefault(require("is-glob"));
-const semver_1 = __importDefault(require("semver"));
-const ts = __importStar(require("typescript"));
-const ast_converter_1 = require("./ast-converter");
-const convert_1 = require("./convert");
-const createDefaultProgram_1 = require("./create-program/createDefaultProgram");
-const createIsolatedProgram_1 = require("./create-program/createIsolatedProgram");
-const createProjectProgram_1 = require("./create-program/createProjectProgram");
-const createSourceFile_1 = require("./create-program/createSourceFile");
-const semantic_or_syntactic_errors_1 = require("./semantic-or-syntactic-errors");
-const shared_1 = require("./create-program/shared");
-const log = debug_1.default('typescript-eslint:typescript-estree:parser');
-/**
- * This needs to be kept in sync with the top-level README.md in the
- * typescript-eslint monorepo
- */
-const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.1.0';
-/*
- * The semver package will ignore prerelease ranges, and we don't want to explicitly document every one
- * List them all separately here, so we can automatically create the full string
- */
-const SUPPORTED_PRERELEASE_RANGES = [];
-const ACTIVE_TYPESCRIPT_VERSION = ts.version;
-const isRunningSupportedTypeScriptVersion = semver_1.default.satisfies(ACTIVE_TYPESCRIPT_VERSION, [SUPPORTED_TYPESCRIPT_VERSIONS]
-    .concat(SUPPORTED_PRERELEASE_RANGES)
-    .join(' || '));
-let extra;
-let warnedAboutTSVersion = false;
-function enforceString(code) {
-    /**
-     * Ensure the source code is a string
-     */
-    if (typeof code !== 'string') {
-        return String(code);
-    }
-    return code;
-}
-/**
- * @param code The code of the file being linted
- * @param shouldProvideParserServices True if the program should be attempted to be calculated from provided tsconfig files
- * @param shouldCreateDefaultProgram True if the program should be created from compiler host
- * @returns Returns a source file and program corresponding to the linted code
- */
-function getProgramAndAST(code, shouldProvideParserServices, shouldCreateDefaultProgram) {
-    return ((shouldProvideParserServices &&
-        createProjectProgram_1.createProjectProgram(code, shouldCreateDefaultProgram, extra)) ||
-        (shouldProvideParserServices &&
-            shouldCreateDefaultProgram &&
-            createDefaultProgram_1.createDefaultProgram(code, extra)) ||
-        createIsolatedProgram_1.createIsolatedProgram(code, extra));
-}
-/**
- * Compute the filename based on the parser options.
- *
- * Even if jsx option is set in typescript compiler, filename still has to
- * contain .tsx file extension.
- *
- * @param options Parser options
- */
-function getFileName({ jsx } = {}) {
-    return jsx ? 'estree.tsx' : 'estree.ts';
-}
-/**
- * Resets the extra config object
- */
-function resetExtra() {
-    extra = {
-        code: '',
-        comment: false,
-        comments: [],
-        createDefaultProgram: false,
-        debugLevel: new Set(),
-        errorOnTypeScriptSyntacticAndSemanticIssues: false,
-        errorOnUnknownASTType: false,
-        extraFileExtensions: [],
-        filePath: getFileName(),
-        jsx: false,
-        loc: false,
-        log: console.log,
-        preserveNodeMaps: true,
-        projects: [],
-        range: false,
-        strict: false,
-        tokens: null,
-        tsconfigRootDir: process.cwd(),
-        useJSXTextNode: false,
-    };
-}
-/**
- * Normalizes, sanitizes, resolves and filters the provided
- */
-function prepareAndTransformProjects(projectsInput, ignoreListInput) {
-    let projects = [];
-    // Normalize and sanitize the project paths
-    if (typeof projectsInput === 'string') {
-        projects.push(projectsInput);
-    }
-    else if (Array.isArray(projectsInput)) {
-        for (const project of projectsInput) {
-            if (typeof project === 'string') {
-                projects.push(project);
-            }
-        }
-    }
-    if (projects.length === 0) {
-        return projects;
-    }
-    // Transform glob patterns into paths
-    const globbedProjects = projects.filter(project => is_glob_1.default(project));
-    projects = projects
-        .filter(project => !is_glob_1.default(project))
-        .concat(globby_1.sync([...globbedProjects, ...ignoreListInput], {
-        cwd: extra.tsconfigRootDir,
-    }));
-    log('parserOptions.project (excluding ignored) matched projects: %s', projects);
-    return projects;
-}
-function applyParserOptionsToExtra(options) {
-    var _a;
-    /**
-     * Configure Debug logging
-     */
-    if (options.debugLevel === true) {
-        extra.debugLevel = new Set(['typescript-eslint']);
-    }
-    else if (Array.isArray(options.debugLevel)) {
-        extra.debugLevel = new Set(options.debugLevel);
-    }
-    if (extra.debugLevel.size > 0) {
-        // debug doesn't support multiple `enable` calls, so have to do it all at once
-        const namespaces = [];
-        if (extra.debugLevel.has('typescript-eslint')) {
-            namespaces.push('typescript-eslint:*');
-        }
-        if (extra.debugLevel.has('eslint') ||
-            // make sure we don't turn off the eslint debug if it was enabled via --debug
-            debug_1.default.enabled('eslint:*')) {
-            // https://github.com/eslint/eslint/blob/9dfc8501fb1956c90dc11e6377b4cb38a6bea65d/bin/eslint.js#L25
-            namespaces.push('eslint:*,-eslint:code-path');
-        }
-        debug_1.default.enable(namespaces.join(','));
-    }
-    /**
-     * Track range information in the AST
-     */
-    extra.range = typeof options.range === 'boolean' && options.range;
-    extra.loc = typeof options.loc === 'boolean' && options.loc;
-    /**
-     * Track tokens in the AST
-     */
-    if (typeof options.tokens === 'boolean' && options.tokens) {
-        extra.tokens = [];
-    }
-    /**
-     * Track comments in the AST
-     */
-    if (typeof options.comment === 'boolean' && options.comment) {
-        extra.comment = true;
-        extra.comments = [];
-    }
-    /**
-     * Enable JSX - note the applicable file extension is still required
-     */
-    if (typeof options.jsx === 'boolean' && options.jsx) {
-        extra.jsx = true;
-    }
-    /**
-     * Get the file path
-     */
-    if (typeof options.filePath === 'string' && options.filePath !== '<input>') {
-        extra.filePath = options.filePath;
-    }
-    else {
-        extra.filePath = getFileName(extra);
-    }
-    /**
-     * The JSX AST changed the node type for string literals
-     * inside a JSX Element from `Literal` to `JSXText`.
-     *
-     * When value is `true`, these nodes will be parsed as type `JSXText`.
-     * When value is `false`, these nodes will be parsed as type `Literal`.
-     */
-    if (typeof options.useJSXTextNode === 'boolean' && options.useJSXTextNode) {
-        extra.useJSXTextNode = true;
-    }
-    /**
-     * Allow the user to cause the parser to error if it encounters an unknown AST Node Type
-     * (used in testing)
-     */
-    if (typeof options.errorOnUnknownASTType === 'boolean' &&
-        options.errorOnUnknownASTType) {
-        extra.errorOnUnknownASTType = true;
-    }
-    /**
-     * Allow the user to override the function used for logging
-     */
-    if (typeof options.loggerFn === 'function') {
-        extra.log = options.loggerFn;
-    }
-    else if (options.loggerFn === false) {
-        extra.log = () => { };
-    }
-    if (typeof options.tsconfigRootDir === 'string') {
-        extra.tsconfigRootDir = options.tsconfigRootDir;
-    }
-    // NOTE - ensureAbsolutePath relies upon having the correct tsconfigRootDir in extra
-    extra.filePath = shared_1.ensureAbsolutePath(extra.filePath, extra);
-    // NOTE - prepareAndTransformProjects relies upon having the correct tsconfigRootDir in extra
-    const projectFolderIgnoreList = ((_a = options.projectFolderIgnoreList) !== null && _a !== void 0 ? _a : [])
-        .reduce((acc, folder) => {
-        if (typeof folder === 'string') {
-            acc.push(folder);
-        }
-        return acc;
-    }, [])
-        // prefix with a ! for not match glob
-        .map(folder => (folder.startsWith('!') ? folder : `!${folder}`));
-    extra.projects = prepareAndTransformProjects(options.project, projectFolderIgnoreList);
-    if (Array.isArray(options.extraFileExtensions) &&
-        options.extraFileExtensions.every(ext => typeof ext === 'string')) {
-        extra.extraFileExtensions = options.extraFileExtensions;
-    }
-    /**
-     * Allow the user to enable or disable the preservation of the AST node maps
-     * during the conversion process.
-     */
-    if (typeof options.preserveNodeMaps === 'boolean') {
-        extra.preserveNodeMaps = options.preserveNodeMaps;
-    }
-    extra.createDefaultProgram =
-        typeof options.createDefaultProgram === 'boolean' &&
-            options.createDefaultProgram;
-}
-function warnAboutTSVersion() {
-    var _a;
-    if (!isRunningSupportedTypeScriptVersion && !warnedAboutTSVersion) {
-        const isTTY = typeof process === undefined ? false : (_a = process.stdout) === null || _a === void 0 ? void 0 : _a.isTTY;
-        if (isTTY) {
-            const border = '=============';
-            const versionWarning = [
-                border,
-                'WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.',
-                'You may find that it works just fine, or you may not.',
-                `SUPPORTED TYPESCRIPT VERSIONS: ${SUPPORTED_TYPESCRIPT_VERSIONS}`,
-                `YOUR TYPESCRIPT VERSION: ${ACTIVE_TYPESCRIPT_VERSION}`,
-                'Please only submit bug reports when using the officially supported version.',
-                border,
-            ];
-            extra.log(versionWarning.join('\n\n'));
-        }
-        warnedAboutTSVersion = true;
-    }
-}
-function parse(code, options) {
-    /**
-     * Reset the parse configuration
-     */
-    resetExtra();
-    /**
-     * Ensure users do not attempt to use parse() when they need parseAndGenerateServices()
-     */
-    if (options === null || options === void 0 ? void 0 : options.errorOnTypeScriptSyntacticAndSemanticIssues) {
-        throw new Error(`"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()`);
-    }
-    /**
-     * Ensure the source code is a string, and store a reference to it
-     */
-    code = enforceString(code);
-    extra.code = code;
-    /**
-     * Apply the given parser options
-     */
-    if (typeof options !== 'undefined') {
-        applyParserOptionsToExtra(options);
-    }
-    /**
-     * Warn if the user is using an unsupported version of TypeScript
-     */
-    warnAboutTSVersion();
-    /**
-     * Create a ts.SourceFile directly, no ts.Program is needed for a simple
-     * parse
-     */
-    const ast = createSourceFile_1.createSourceFile(code, extra);
-    /**
-     * Convert the TypeScript AST to an ESTree-compatible one
-     */
-    const { estree } = ast_converter_1.astConverter(ast, extra, false);
-    return estree;
-}
-exports.parse = parse;
-function parseAndGenerateServices(code, options) {
-    /**
-     * Reset the parse configuration
-     */
-    resetExtra();
-    /**
-     * Ensure the source code is a string, and store a reference to it
-     */
-    code = enforceString(code);
-    extra.code = code;
-    /**
-     * Apply the given parser options
-     */
-    if (typeof options !== 'undefined') {
-        applyParserOptionsToExtra(options);
-        if (typeof options.errorOnTypeScriptSyntacticAndSemanticIssues ===
-            'boolean' &&
-            options.errorOnTypeScriptSyntacticAndSemanticIssues) {
-            extra.errorOnTypeScriptSyntacticAndSemanticIssues = true;
-        }
-    }
-    /**
-     * Warn if the user is using an unsupported version of TypeScript
-     */
-    warnAboutTSVersion();
-    /**
-     * Generate a full ts.Program in order to be able to provide parser
-     * services, such as type-checking
-     */
-    const shouldProvideParserServices = extra.projects && extra.projects.length > 0;
-    const { ast, program } = getProgramAndAST(code, shouldProvideParserServices, extra.createDefaultProgram);
-    /**
-     * Convert the TypeScript AST to an ESTree-compatible one, and optionally preserve
-     * mappings between converted and original AST nodes
-     */
-    const preserveNodeMaps = typeof extra.preserveNodeMaps === 'boolean' ? extra.preserveNodeMaps : true;
-    const { estree, astMaps } = ast_converter_1.astConverter(ast, extra, preserveNodeMaps);
-    /**
-     * Even if TypeScript parsed the source code ok, and we had no problems converting the AST,
-     * there may be other syntactic or semantic issues in the code that we can optionally report on.
-     */
-    if (program && extra.errorOnTypeScriptSyntacticAndSemanticIssues) {
-        const error = semantic_or_syntactic_errors_1.getFirstSemanticOrSyntacticError(program, ast);
-        if (error) {
-            throw convert_1.convertError(error);
-        }
-    }
-    /**
-     * Return the converted AST and additional parser services
-     */
-    return {
-        ast: estree,
-        services: {
-            hasFullTypeInformation: shouldProvideParserServices,
-            program,
-            esTreeNodeToTSNodeMap: astMaps.esTreeNodeToTSNodeMap,
-            tsNodeToESTreeNodeMap: astMaps.tsNodeToESTreeNodeMap,
-        },
-    };
-}
-exports.parseAndGenerateServices = parseAndGenerateServices;
-//# sourceMappingURL=parser.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map
deleted file mode 100644
index d717c37..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts
deleted file mode 100644
index 06b3e12..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as ts from 'typescript';
-interface SemanticOrSyntacticError extends ts.Diagnostic {
-    message: string;
-}
-/**
- * By default, diagnostics from the TypeScript compiler contain all errors - regardless of whether
- * they are related to generic ECMAScript standards, or TypeScript-specific constructs.
- *
- * Therefore, we filter out all diagnostics, except for the ones we explicitly want to consider when
- * the user opts in to throwing errors on semantic issues.
- */
-export declare function getFirstSemanticOrSyntacticError(program: ts.Program, ast: ts.SourceFile): SemanticOrSyntacticError | undefined;
-export {};
-//# sourceMappingURL=semantic-or-syntactic-errors.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts.map
deleted file mode 100644
index 83299c5..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"semantic-or-syntactic-errors.d.ts","sourceRoot":"","sources":["../src/semantic-or-syntactic-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,UAAU,wBAAyB,SAAQ,EAAE,CAAC,UAAU;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,GAAG,EAAE,EAAE,CAAC,UAAU,GACjB,wBAAwB,GAAG,SAAS,CAmCtC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js
deleted file mode 100644
index 96473c4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js
+++ /dev/null
@@ -1,112 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getFirstSemanticOrSyntacticError = void 0;
-const ts = __importStar(require("typescript"));
-/**
- * By default, diagnostics from the TypeScript compiler contain all errors - regardless of whether
- * they are related to generic ECMAScript standards, or TypeScript-specific constructs.
- *
- * Therefore, we filter out all diagnostics, except for the ones we explicitly want to consider when
- * the user opts in to throwing errors on semantic issues.
- */
-function getFirstSemanticOrSyntacticError(program, ast) {
-    try {
-        const supportedSyntacticDiagnostics = whitelistSupportedDiagnostics(program.getSyntacticDiagnostics(ast));
-        if (supportedSyntacticDiagnostics.length) {
-            return convertDiagnosticToSemanticOrSyntacticError(supportedSyntacticDiagnostics[0]);
-        }
-        const supportedSemanticDiagnostics = whitelistSupportedDiagnostics(program.getSemanticDiagnostics(ast));
-        if (supportedSemanticDiagnostics.length) {
-            return convertDiagnosticToSemanticOrSyntacticError(supportedSemanticDiagnostics[0]);
-        }
-        return undefined;
-    }
-    catch (e) {
-        /**
-         * TypeScript compiler has certain Debug.fail() statements in, which will cause the diagnostics
-         * retrieval above to throw.
-         *
-         * E.g. from ast-alignment-tests
-         * "Debug Failure. Shouldn't ever directly check a JsxOpeningElement"
-         *
-         * For our current use-cases this is undesired behavior, so we just suppress it
-         * and log a a warning.
-         */
-        /* istanbul ignore next */
-        console.warn(`Warning From TSC: "${e.message}`); // eslint-disable-line no-console
-        /* istanbul ignore next */
-        return undefined;
-    }
-}
-exports.getFirstSemanticOrSyntacticError = getFirstSemanticOrSyntacticError;
-function whitelistSupportedDiagnostics(diagnostics) {
-    return diagnostics.filter(diagnostic => {
-        switch (diagnostic.code) {
-            case 1013: // "A rest parameter or binding pattern may not have a trailing comma."
-            case 1014: // "A rest parameter must be last in a parameter list."
-            case 1044: // "'{0}' modifier cannot appear on a module or namespace element."
-            case 1045: // "A '{0}' modifier cannot be used with an interface declaration."
-            case 1048: // "A rest parameter cannot have an initializer."
-            case 1049: // "A 'set' accessor must have exactly one parameter."
-            case 1070: // "'{0}' modifier cannot appear on a type member."
-            case 1071: // "'{0}' modifier cannot appear on an index signature."
-            case 1085: // "Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'."
-            case 1090: // "'{0}' modifier cannot appear on a parameter."
-            case 1096: // "An index signature must have exactly one parameter."
-            case 1097: // "'{0}' list cannot be empty."
-            case 1098: // "Type parameter list cannot be empty."
-            case 1099: // "Type argument list cannot be empty."
-            case 1117: // "An object literal cannot have multiple properties with the same name in strict mode."
-            case 1121: // "Octal literals are not allowed in strict mode."
-            case 1123: //  "Variable declaration list cannot be empty."
-            case 1141: // "String literal expected."
-            case 1162: // "An object member cannot be declared optional."
-            case 1164: // "Computed property names are not allowed in enums."
-            case 1172: // "'extends' clause already seen."
-            case 1173: // "'extends' clause must precede 'implements' clause."
-            case 1175: // "'implements' clause already seen."
-            case 1176: // "Interface declaration cannot have 'implements' clause."
-            case 1190: // "The variable declaration of a 'for...of' statement cannot have an initializer."
-            case 1196: // "Catch clause variable type annotation must be 'any' or 'unknown' if specified."
-            case 1200: // "Line terminator not permitted before arrow."
-            case 1206: // "Decorators are not valid here."
-            case 1211: // "A class declaration without the 'default' modifier must have a name."
-            case 1242: // "'abstract' modifier can only appear on a class, method, or property declaration."
-            case 1246: // "An interface property cannot have an initializer."
-            case 1255: // "A definite assignment assertion '!' is not permitted in this context."
-            case 1308: // "'await' expression is only allowed within an async function."
-            case 2364: // "The left-hand side of an assignment expression must be a variable or a property access."
-            case 2369: // "A parameter property is only allowed in a constructor implementation."
-            case 2452: // "An enum member cannot have a numeric name."
-            case 2462: // "A rest element must be last in a destructuring pattern."
-            case 8017: // "Octal literal types must use ES2015 syntax. Use the syntax '{0}'."
-            case 17012: // "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"
-            case 17013: // "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."
-                return true;
-        }
-        return false;
-    });
-}
-function convertDiagnosticToSemanticOrSyntacticError(diagnostic) {
-    return Object.assign(Object.assign({}, diagnostic), { message: ts.flattenDiagnosticMessageText(diagnostic.messageText, ts.sys.newLine) });
-}
-//# sourceMappingURL=semantic-or-syntactic-errors.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map
deleted file mode 100644
index af69657..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"semantic-or-syntactic-errors.js","sourceRoot":"","sources":["../src/semantic-or-syntactic-errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts
deleted file mode 100644
index be2b1fc..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { TSESTree } from './ts-estree';
-declare type SimpleTraverseOptions = {
-    enter: (node: TSESTree.Node, parent: TSESTree.Node | undefined) => void;
-} | {
-    [key: string]: (node: TSESTree.Node, parent: TSESTree.Node | undefined) => void;
-};
-export declare function simpleTraverse(startingNode: TSESTree.Node, options: SimpleTraverseOptions, setParentPointers?: boolean): void;
-export {};
-//# sourceMappingURL=simple-traverse.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map
deleted file mode 100644
index 7acdb86..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"simple-traverse.d.ts","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAevC,aAAK,qBAAqB,GACtB;IACE,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,CACb,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAC9B,IAAI,CAAC;CACX,CAAC;AA8CN,wBAAgB,cAAc,CAC5B,YAAY,EAAE,QAAQ,CAAC,IAAI,EAC3B,OAAO,EAAE,qBAAqB,EAC9B,iBAAiB,UAAQ,GACxB,IAAI,CAKN"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js
deleted file mode 100644
index b19f9b7..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.simpleTraverse = void 0;
-const visitor_keys_1 = require("@typescript-eslint/visitor-keys");
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-function isValidNode(x) {
-    return x !== null && typeof x === 'object' && typeof x.type === 'string';
-}
-function getVisitorKeysForNode(allVisitorKeys, node) {
-    const keys = allVisitorKeys[node.type];
-    return (keys !== null && keys !== void 0 ? keys : []);
-}
-class SimpleTraverser {
-    constructor(selectors, setParentPointers = false) {
-        this.allVisitorKeys = visitor_keys_1.visitorKeys;
-        this.selectors = selectors;
-        this.setParentPointers = setParentPointers;
-    }
-    traverse(node, parent) {
-        if (!isValidNode(node)) {
-            return;
-        }
-        if (this.setParentPointers) {
-            node.parent = parent;
-        }
-        if ('enter' in this.selectors) {
-            this.selectors.enter(node, parent);
-        }
-        else if (node.type in this.selectors) {
-            this.selectors[node.type](node, parent);
-        }
-        const keys = getVisitorKeysForNode(this.allVisitorKeys, node);
-        if (keys.length < 1) {
-            return;
-        }
-        for (const key of keys) {
-            const childOrChildren = node[key];
-            if (Array.isArray(childOrChildren)) {
-                for (const child of childOrChildren) {
-                    this.traverse(child, node);
-                }
-            }
-            else {
-                this.traverse(childOrChildren, node);
-            }
-        }
-    }
-}
-function simpleTraverse(startingNode, options, setParentPointers = false) {
-    new SimpleTraverser(options, setParentPointers).traverse(startingNode, undefined);
-}
-exports.simpleTraverse = simpleTraverse;
-//# sourceMappingURL=simple-traverse.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map
deleted file mode 100644
index 910f55e..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"simple-traverse.js","sourceRoot":"","sources":["../src/simple-traverse.ts"],"names":[],"mappings":";;;AAAA,kEAA8D;AAG9D,8DAA8D;AAC9D,SAAS,WAAW,CAAC,CAAM;IACzB,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAC5B,cAAkC,EAClC,IAAmB;IAEnB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAU,CAAC;AAC/B,CAAC;AAaD,MAAM,eAAe;IAKnB,YAAY,SAAgC,EAAE,iBAAiB,GAAG,KAAK;QAJtD,mBAAc,GAAG,0BAAW,CAAC;QAK5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAa,EAAE,MAAiC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO;SACR;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpC;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO;SACR;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAClC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC5B;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;aACtC;SACF;IACH,CAAC;CACF;AAED,SAAgB,cAAc,CAC5B,YAA2B,EAC3B,OAA8B,EAC9B,iBAAiB,GAAG,KAAK;IAEzB,IAAI,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CACtD,YAAY,EACZ,SAAS,CACV,CAAC;AACJ,CAAC;AATD,wCASC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts
deleted file mode 100644
index c3aa41b..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts
+++ /dev/null
@@ -1,169 +0,0 @@
-import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/types';
-import * as ts from 'typescript';
-import { TSNode } from './ts-nodes';
-export interface EstreeToTsNodeTypes {
-    [AST_NODE_TYPES.ArrayExpression]: ts.ArrayLiteralExpression;
-    [AST_NODE_TYPES.ArrayPattern]: ts.ArrayLiteralExpression | ts.ArrayBindingPattern;
-    [AST_NODE_TYPES.ArrowFunctionExpression]: ts.ArrowFunction;
-    [AST_NODE_TYPES.AssignmentExpression]: ts.BinaryExpression;
-    [AST_NODE_TYPES.AssignmentPattern]: ts.ShorthandPropertyAssignment | ts.BindingElement | ts.BinaryExpression | ts.ParameterDeclaration;
-    [AST_NODE_TYPES.AwaitExpression]: ts.AwaitExpression;
-    [AST_NODE_TYPES.BinaryExpression]: ts.BinaryExpression;
-    [AST_NODE_TYPES.BlockStatement]: ts.Block;
-    [AST_NODE_TYPES.BreakStatement]: ts.BreakStatement;
-    [AST_NODE_TYPES.CallExpression]: ts.CallExpression;
-    [AST_NODE_TYPES.CatchClause]: ts.CatchClause;
-    [AST_NODE_TYPES.ChainExpression]: ts.CallExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.NonNullExpression;
-    [AST_NODE_TYPES.ClassBody]: ts.ClassDeclaration | ts.ClassExpression;
-    [AST_NODE_TYPES.ClassDeclaration]: ts.ClassDeclaration;
-    [AST_NODE_TYPES.ClassExpression]: ts.ClassExpression;
-    [AST_NODE_TYPES.ClassProperty]: ts.PropertyDeclaration;
-    [AST_NODE_TYPES.ConditionalExpression]: ts.ConditionalExpression;
-    [AST_NODE_TYPES.ContinueStatement]: ts.ContinueStatement;
-    [AST_NODE_TYPES.DebuggerStatement]: ts.DebuggerStatement;
-    [AST_NODE_TYPES.Decorator]: ts.Decorator;
-    [AST_NODE_TYPES.DoWhileStatement]: ts.DoStatement;
-    [AST_NODE_TYPES.EmptyStatement]: ts.EmptyStatement;
-    [AST_NODE_TYPES.ExportAllDeclaration]: ts.ExportDeclaration;
-    [AST_NODE_TYPES.ExportDefaultDeclaration]: ts.ExportAssignment | ts.FunctionDeclaration | ts.VariableStatement | ts.ClassDeclaration | ts.ClassExpression | ts.TypeAliasDeclaration | ts.InterfaceDeclaration | ts.EnumDeclaration | ts.ModuleDeclaration;
-    [AST_NODE_TYPES.ExportNamedDeclaration]: ts.ExportDeclaration | ts.FunctionDeclaration | ts.VariableStatement | ts.ClassDeclaration | ts.ClassExpression | ts.TypeAliasDeclaration | ts.InterfaceDeclaration | ts.EnumDeclaration | ts.ModuleDeclaration;
-    [AST_NODE_TYPES.ExportSpecifier]: ts.ExportSpecifier;
-    [AST_NODE_TYPES.ExpressionStatement]: ts.ExpressionStatement;
-    [AST_NODE_TYPES.ForInStatement]: ts.ForInStatement;
-    [AST_NODE_TYPES.ForOfStatement]: ts.ForOfStatement;
-    [AST_NODE_TYPES.ForStatement]: ts.ForStatement;
-    [AST_NODE_TYPES.FunctionDeclaration]: ts.FunctionDeclaration;
-    [AST_NODE_TYPES.FunctionExpression]: ts.FunctionExpression | ts.ConstructorDeclaration | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration;
-    [AST_NODE_TYPES.Identifier]: ts.Identifier | ts.ConstructorDeclaration | ts.Token<ts.SyntaxKind.NewKeyword | ts.SyntaxKind.ImportKeyword>;
-    [AST_NODE_TYPES.IfStatement]: ts.IfStatement;
-    [AST_NODE_TYPES.ImportDeclaration]: ts.ImportDeclaration;
-    [AST_NODE_TYPES.ImportDefaultSpecifier]: ts.ImportClause;
-    [AST_NODE_TYPES.ImportExpression]: ts.CallExpression;
-    [AST_NODE_TYPES.ImportNamespaceSpecifier]: ts.NamespaceImport;
-    [AST_NODE_TYPES.ImportSpecifier]: ts.ImportSpecifier;
-    [AST_NODE_TYPES.JSXAttribute]: ts.JsxAttribute;
-    [AST_NODE_TYPES.JSXClosingElement]: ts.JsxClosingElement;
-    [AST_NODE_TYPES.JSXClosingFragment]: ts.JsxClosingFragment;
-    [AST_NODE_TYPES.JSXElement]: ts.JsxElement | ts.JsxSelfClosingElement;
-    [AST_NODE_TYPES.JSXEmptyExpression]: ts.JsxExpression;
-    [AST_NODE_TYPES.JSXExpressionContainer]: ts.JsxExpression;
-    [AST_NODE_TYPES.JSXFragment]: ts.JsxFragment;
-    [AST_NODE_TYPES.JSXIdentifier]: ts.Identifier | ts.ThisExpression;
-    [AST_NODE_TYPES.JSXOpeningElement]: ts.JsxOpeningElement | ts.JsxSelfClosingElement;
-    [AST_NODE_TYPES.JSXOpeningFragment]: ts.JsxOpeningFragment;
-    [AST_NODE_TYPES.JSXSpreadAttribute]: ts.JsxSpreadAttribute;
-    [AST_NODE_TYPES.JSXSpreadChild]: ts.JsxExpression;
-    [AST_NODE_TYPES.JSXMemberExpression]: ts.PropertyAccessExpression;
-    [AST_NODE_TYPES.JSXText]: ts.JsxText;
-    [AST_NODE_TYPES.LabeledStatement]: ts.LabeledStatement;
-    [AST_NODE_TYPES.Literal]: ts.StringLiteral | ts.NumericLiteral | ts.RegularExpressionLiteral | ts.JsxText | ts.NullLiteral | ts.BooleanLiteral | ts.BigIntLiteral;
-    [AST_NODE_TYPES.LogicalExpression]: ts.BinaryExpression;
-    [AST_NODE_TYPES.MemberExpression]: ts.PropertyAccessExpression | ts.ElementAccessExpression;
-    [AST_NODE_TYPES.MetaProperty]: ts.MetaProperty;
-    [AST_NODE_TYPES.MethodDefinition]: ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration | ts.ConstructorDeclaration;
-    [AST_NODE_TYPES.NewExpression]: ts.NewExpression;
-    [AST_NODE_TYPES.ObjectExpression]: ts.ObjectLiteralExpression;
-    [AST_NODE_TYPES.ObjectPattern]: ts.ObjectLiteralExpression | ts.ObjectBindingPattern;
-    [AST_NODE_TYPES.Program]: ts.SourceFile;
-    [AST_NODE_TYPES.Property]: ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration | ts.BindingElement;
-    [AST_NODE_TYPES.RestElement]: ts.BindingElement | ts.SpreadAssignment | ts.SpreadElement | ts.ParameterDeclaration;
-    [AST_NODE_TYPES.ReturnStatement]: ts.ReturnStatement;
-    [AST_NODE_TYPES.SequenceExpression]: ts.BinaryExpression;
-    [AST_NODE_TYPES.SpreadElement]: ts.SpreadElement | ts.SpreadAssignment;
-    [AST_NODE_TYPES.Super]: ts.SuperExpression;
-    [AST_NODE_TYPES.SwitchCase]: ts.CaseClause | ts.DefaultClause;
-    [AST_NODE_TYPES.SwitchStatement]: ts.SwitchStatement;
-    [AST_NODE_TYPES.TaggedTemplateExpression]: ts.TaggedTemplateExpression;
-    [AST_NODE_TYPES.TemplateElement]: ts.NoSubstitutionTemplateLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail;
-    [AST_NODE_TYPES.TemplateLiteral]: ts.NoSubstitutionTemplateLiteral | ts.TemplateExpression;
-    [AST_NODE_TYPES.ThisExpression]: ts.ThisExpression | ts.KeywordTypeNode;
-    [AST_NODE_TYPES.ThrowStatement]: ts.ThrowStatement;
-    [AST_NODE_TYPES.TryStatement]: ts.TryStatement;
-    [AST_NODE_TYPES.TSAbstractClassProperty]: ts.PropertyDeclaration;
-    [AST_NODE_TYPES.TSAbstractMethodDefinition]: ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration | ts.ConstructorDeclaration;
-    [AST_NODE_TYPES.TSArrayType]: ts.ArrayTypeNode;
-    [AST_NODE_TYPES.TSAsExpression]: ts.AsExpression;
-    [AST_NODE_TYPES.TSCallSignatureDeclaration]: ts.PropertySignature;
-    [AST_NODE_TYPES.TSClassImplements]: ts.ExpressionWithTypeArguments;
-    [AST_NODE_TYPES.TSConditionalType]: ts.ConditionalTypeNode;
-    [AST_NODE_TYPES.TSConstructorType]: ts.ConstructorTypeNode;
-    [AST_NODE_TYPES.TSConstructSignatureDeclaration]: ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.ConstructSignatureDeclaration | ts.CallSignatureDeclaration;
-    [AST_NODE_TYPES.TSDeclareFunction]: ts.FunctionDeclaration;
-    [AST_NODE_TYPES.TSEnumDeclaration]: ts.EnumDeclaration;
-    [AST_NODE_TYPES.TSEnumMember]: ts.EnumMember;
-    [AST_NODE_TYPES.TSExportAssignment]: ts.ExportAssignment;
-    [AST_NODE_TYPES.TSExternalModuleReference]: ts.ExternalModuleReference;
-    [AST_NODE_TYPES.TSFunctionType]: ts.FunctionTypeNode;
-    [AST_NODE_TYPES.TSImportEqualsDeclaration]: ts.ImportEqualsDeclaration;
-    [AST_NODE_TYPES.TSImportType]: ts.ImportTypeNode;
-    [AST_NODE_TYPES.TSIndexedAccessType]: ts.IndexedAccessTypeNode;
-    [AST_NODE_TYPES.TSIndexSignature]: ts.IndexSignatureDeclaration;
-    [AST_NODE_TYPES.TSInferType]: ts.InferTypeNode;
-    [AST_NODE_TYPES.TSInterfaceDeclaration]: ts.InterfaceDeclaration;
-    [AST_NODE_TYPES.TSInterfaceBody]: ts.InterfaceDeclaration;
-    [AST_NODE_TYPES.TSInterfaceHeritage]: ts.ExpressionWithTypeArguments;
-    [AST_NODE_TYPES.TSIntersectionType]: ts.IntersectionTypeNode;
-    [AST_NODE_TYPES.TSLiteralType]: ts.LiteralTypeNode;
-    [AST_NODE_TYPES.TSMappedType]: ts.MappedTypeNode;
-    [AST_NODE_TYPES.TSMethodSignature]: ts.MethodSignature;
-    [AST_NODE_TYPES.TSModuleBlock]: ts.ModuleBlock;
-    [AST_NODE_TYPES.TSModuleDeclaration]: ts.ModuleDeclaration;
-    [AST_NODE_TYPES.TSNamedTupleMember]: ts.NamedTupleMember;
-    [AST_NODE_TYPES.TSNamespaceExportDeclaration]: ts.NamespaceExportDeclaration;
-    [AST_NODE_TYPES.TSNonNullExpression]: ts.NonNullExpression;
-    [AST_NODE_TYPES.TSOptionalType]: ts.OptionalTypeNode;
-    [AST_NODE_TYPES.TSParameterProperty]: ts.ParameterDeclaration;
-    [AST_NODE_TYPES.TSParenthesizedType]: ts.ParenthesizedTypeNode;
-    [AST_NODE_TYPES.TSPropertySignature]: ts.PropertySignature;
-    [AST_NODE_TYPES.TSQualifiedName]: ts.QualifiedName;
-    [AST_NODE_TYPES.TSRestType]: ts.RestTypeNode | ts.NamedTupleMember;
-    [AST_NODE_TYPES.TSThisType]: ts.ThisTypeNode;
-    [AST_NODE_TYPES.TSTupleType]: ts.TupleTypeNode;
-    [AST_NODE_TYPES.TSTypeAliasDeclaration]: ts.TypeAliasDeclaration;
-    [AST_NODE_TYPES.TSTypeAnnotation]: undefined;
-    [AST_NODE_TYPES.TSTypeAssertion]: ts.TypeAssertion;
-    [AST_NODE_TYPES.TSTypeLiteral]: ts.TypeLiteralNode;
-    [AST_NODE_TYPES.TSTypeOperator]: ts.TypeOperatorNode;
-    [AST_NODE_TYPES.TSTypeParameter]: ts.TypeParameterDeclaration;
-    [AST_NODE_TYPES.TSTypeParameterDeclaration]: undefined;
-    [AST_NODE_TYPES.TSTypeParameterInstantiation]: ts.TaggedTemplateExpression | ts.ImportTypeNode | ts.ExpressionWithTypeArguments | ts.TypeReferenceNode | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.NewExpression | ts.CallExpression;
-    [AST_NODE_TYPES.TSTypePredicate]: ts.TypePredicateNode;
-    [AST_NODE_TYPES.TSTypeQuery]: ts.TypeQueryNode;
-    [AST_NODE_TYPES.TSTypeReference]: ts.TypeReferenceNode;
-    [AST_NODE_TYPES.TSUnionType]: ts.UnionTypeNode;
-    [AST_NODE_TYPES.UpdateExpression]: ts.PrefixUnaryExpression | ts.PostfixUnaryExpression;
-    [AST_NODE_TYPES.UnaryExpression]: ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.DeleteExpression | ts.VoidExpression | ts.TypeOfExpression;
-    [AST_NODE_TYPES.VariableDeclaration]: ts.VariableDeclarationList | ts.VariableStatement;
-    [AST_NODE_TYPES.VariableDeclarator]: ts.VariableDeclaration;
-    [AST_NODE_TYPES.WhileStatement]: ts.WhileStatement;
-    [AST_NODE_TYPES.WithStatement]: ts.WithStatement;
-    [AST_NODE_TYPES.YieldExpression]: ts.YieldExpression;
-    [AST_NODE_TYPES.TSEmptyBodyFunctionExpression]: ts.FunctionExpression | ts.ConstructorDeclaration | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration;
-    [AST_NODE_TYPES.TSAbstractKeyword]: ts.Token<ts.SyntaxKind.AbstractKeyword>;
-    [AST_NODE_TYPES.TSNullKeyword]: ts.NullLiteral | ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSAnyKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSBigIntKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSBooleanKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSNeverKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSNumberKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSObjectKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSStringKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSSymbolKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSUnknownKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSVoidKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSUndefinedKeyword]: ts.KeywordTypeNode;
-    [AST_NODE_TYPES.TSAsyncKeyword]: ts.Token<ts.SyntaxKind.AsyncKeyword>;
-    [AST_NODE_TYPES.TSDeclareKeyword]: ts.Token<ts.SyntaxKind.DeclareKeyword>;
-    [AST_NODE_TYPES.TSExportKeyword]: ts.Token<ts.SyntaxKind.ExportKeyword>;
-    [AST_NODE_TYPES.TSStaticKeyword]: ts.Token<ts.SyntaxKind.StaticKeyword>;
-    [AST_NODE_TYPES.TSPublicKeyword]: ts.Token<ts.SyntaxKind.PublicKeyword>;
-    [AST_NODE_TYPES.TSPrivateKeyword]: ts.Token<ts.SyntaxKind.PrivateKeyword>;
-    [AST_NODE_TYPES.TSProtectedKeyword]: ts.Token<ts.SyntaxKind.ProtectedKeyword>;
-    [AST_NODE_TYPES.TSReadonlyKeyword]: ts.Token<ts.SyntaxKind.ReadonlyKeyword>;
-}
-/**
- * Maps TSESTree AST Node type to the expected TypeScript AST Node type(s).
- * This mapping is based on the internal logic of the parser.
- */
-export declare type TSESTreeToTSNode<T extends TSESTree.Node = TSESTree.Node> = Extract<TSNode | ts.Token<ts.SyntaxKind.NewKeyword | ts.SyntaxKind.ImportKeyword>, EstreeToTsNodeTypes[T['type']]>;
-//# sourceMappingURL=estree-to-ts-node-types.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map
deleted file mode 100644
index 8704471..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"estree-to-ts-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js
deleted file mode 100644
index 1a133cd..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const types_1 = require("@typescript-eslint/types");
-//# sourceMappingURL=estree-to-ts-node-types.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map
deleted file mode 100644
index b48e0fd..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"estree-to-ts-node-types.js","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":";;AAAA,oDAAoE"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts
deleted file mode 100644
index 37f26a3..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree, } from '@typescript-eslint/types';
-export * from './ts-nodes';
-export * from './estree-to-ts-node-types';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map
deleted file mode 100644
index 6a839dc..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js
deleted file mode 100644
index 7f93802..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.TSESTree = exports.AST_TOKEN_TYPES = exports.AST_NODE_TYPES = void 0;
-// for simplicity and backwards-compatibility
-var types_1 = require("@typescript-eslint/types");
-Object.defineProperty(exports, "AST_NODE_TYPES", { enumerable: true, get: function () { return types_1.AST_NODE_TYPES; } });
-Object.defineProperty(exports, "AST_TOKEN_TYPES", { enumerable: true, get: function () { return types_1.AST_TOKEN_TYPES; } });
-Object.defineProperty(exports, "TSESTree", { enumerable: true, get: function () { return types_1.TSESTree; } });
-__exportStar(require("./ts-nodes"), exports);
-__exportStar(require("./estree-to-ts-node-types"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map
deleted file mode 100644
index 5325d5d..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-estree/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,kDAIkC;AAHhC,uGAAA,cAAc,OAAA;AACd,wGAAA,eAAe,OAAA;AACf,iGAAA,QAAQ,OAAA;AAEV,6CAA2B;AAC3B,4DAA0C"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts
deleted file mode 100644
index 8142fc4..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import * as ts from 'typescript';
-declare module 'typescript' {
-    interface NamedTupleMember extends ts.Node {
-    }
-}
-export declare type TSToken = ts.Token<ts.SyntaxKind>;
-export declare type TSNode = ts.Modifier | ts.Identifier | ts.QualifiedName | ts.ComputedPropertyName | ts.Decorator | ts.TypeParameterDeclaration | ts.CallSignatureDeclaration | ts.ConstructSignatureDeclaration | ts.VariableDeclaration | ts.VariableDeclarationList | ts.ParameterDeclaration | ts.BindingElement | ts.PropertySignature | ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.ObjectBindingPattern | ts.ArrayBindingPattern | ts.FunctionDeclaration | ts.MethodSignature | ts.MethodDeclaration | ts.ConstructorDeclaration | ts.SemicolonClassElement | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.IndexSignatureDeclaration | ts.KeywordTypeNode | ts.ImportTypeNode | ts.ThisTypeNode | ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.TypeReferenceNode | ts.TypePredicateNode | ts.TypeQueryNode | ts.TypeLiteralNode | ts.ArrayTypeNode | ts.NamedTupleMember | ts.TupleTypeNode | ts.OptionalTypeNode | ts.RestTypeNode | ts.UnionTypeNode | ts.IntersectionTypeNode | ts.ConditionalTypeNode | ts.InferTypeNode | ts.ParenthesizedTypeNode | ts.TypeOperatorNode | ts.IndexedAccessTypeNode | ts.MappedTypeNode | ts.LiteralTypeNode | ts.StringLiteral | ts.OmittedExpression | ts.PartiallyEmittedExpression | ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.NullLiteral | ts.BooleanLiteral | ts.ThisExpression | ts.SuperExpression | ts.ImportExpression | ts.DeleteExpression | ts.TypeOfExpression | ts.VoidExpression | ts.AwaitExpression | ts.YieldExpression | ts.SyntheticExpression | ts.BinaryExpression | ts.ConditionalExpression | ts.FunctionExpression | ts.ArrowFunction | ts.RegularExpressionLiteral | ts.NoSubstitutionTemplateLiteral | ts.NumericLiteral | ts.BigIntLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail | ts.TemplateExpression | ts.TemplateSpan | ts.ParenthesizedExpression | ts.ArrayLiteralExpression | ts.SpreadElement | ts.ObjectLiteralExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.ExpressionWithTypeArguments | ts.NewExpression | ts.TaggedTemplateExpression | ts.AsExpression | ts.TypeAssertion | ts.NonNullExpression | ts.MetaProperty | ts.JsxElement | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.JsxFragment | ts.JsxOpeningFragment | ts.JsxClosingFragment | ts.JsxAttribute | ts.JsxSpreadAttribute | ts.JsxClosingElement | ts.JsxExpression | ts.JsxText | ts.NotEmittedStatement | ts.CommaListExpression | ts.EmptyStatement | ts.DebuggerStatement | ts.MissingDeclaration | ts.Block | ts.VariableStatement | ts.ExpressionStatement | ts.IfStatement | ts.DoStatement | ts.WhileStatement | ts.ForStatement | ts.ForInStatement | ts.ForOfStatement | ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.WithStatement | ts.SwitchStatement | ts.CaseBlock | ts.CaseClause | ts.DefaultClause | ts.LabeledStatement | ts.ThrowStatement | ts.TryStatement | ts.CatchClause | ts.ClassDeclaration | ts.ClassExpression | ts.InterfaceDeclaration | ts.HeritageClause | ts.TypeAliasDeclaration | ts.EnumMember | ts.EnumDeclaration | ts.ModuleDeclaration | ts.ModuleBlock | ts.ImportEqualsDeclaration | ts.ExternalModuleReference | ts.ImportDeclaration | ts.ImportClause | ts.NamespaceImport | ts.NamespaceExportDeclaration | ts.ExportDeclaration | ts.NamedImports | ts.NamedExports | ts.ImportSpecifier | ts.ExportSpecifier | ts.ExportAssignment | ts.SourceFile | ts.Bundle | ts.InputFiles | ts.UnparsedSource | ts.JsonMinusNumericLiteral | ts.JSDoc | ts.JSDocTypeExpression | ts.JSDocUnknownTag | ts.JSDocAugmentsTag | ts.JSDocClassTag | ts.JSDocEnumTag | ts.JSDocThisTag | ts.JSDocTemplateTag | ts.JSDocReturnTag | ts.JSDocTypeTag | ts.JSDocTypedefTag | ts.JSDocCallbackTag | ts.JSDocSignature | ts.JSDocPropertyTag | ts.JSDocParameterTag | ts.JSDocTypeLiteral | ts.JSDocFunctionType | ts.JSDocAllType | ts.JSDocUnknownType | ts.JSDocNullableType | ts.JSDocNonNullableType | ts.JSDocOptionalType | ts.JSDocVariadicType | ts.JSDocAuthorTag;
-//# sourceMappingURL=ts-nodes.d.ts.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map
deleted file mode 100644
index aacaf81..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ts-nodes.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js
deleted file mode 100644
index ba99b5f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=ts-nodes.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js.map b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js.map
deleted file mode 100644
index a4fa02c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ts-nodes.js","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver
deleted file mode 120000
index 501bb2f..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver
+++ /dev/null
@@ -1 +0,0 @@
-../../../../semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/package.json b/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/package.json
deleted file mode 100644
index 878ff3c..0000000
--- a/node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
-  "name": "@typescript-eslint/typescript-estree",
-  "version": "4.1.0",
-  "description": "A parser that converts TypeScript source code into an ESTree compatible form",
-  "main": "dist/index.js",
-  "types": "dist/index.d.ts",
-  "files": [
-    "dist",
-    "README.md",
-    "LICENSE"
-  ],
-  "engines": {
-    "node": "^10.12.0 || >=12.0.0"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/typescript-eslint/typescript-eslint.git",
-    "directory": "packages/typescript-estree"
-  },
-  "bugs": {
-    "url": "https://github.com/typescript-eslint/typescript-eslint/issues"
-  },
-  "license": "BSD-2-Clause",
-  "keywords": [
-    "ast",
-    "estree",
-    "ecmascript",
-    "javascript",
-    "typescript",
-    "parser",
-    "syntax"
-  ],
-  "scripts": {
-    "build": "tsc -b tsconfig.build.json",
-    "postbuild": "downlevel-dts dist _ts3.4/dist",
-    "clean": "tsc -b tsconfig.build.json --clean",
-    "postclean": "rimraf dist",
-    "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore",
-    "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'",
-    "test": "jest --coverage",
-    "typecheck": "tsc -p tsconfig.json --noEmit"
-  },
-  "dependencies": {
-    "@typescript-eslint/types": "4.1.0",
-    "@typescript-eslint/visitor-keys": "4.1.0",
-    "debug": "^4.1.1",
-    "globby": "^11.0.1",
-    "is-glob": "^4.0.1",
-    "lodash": "^4.17.15",
-    "semver": "^7.3.2",
-    "tsutils": "^3.17.1"
-  },
-  "devDependencies": {
-    "@babel/code-frame": "^7.10.4",
-    "@babel/parser": "^7.11.3",
-    "@babel/types": "^7.11.0",
-    "@types/babel__code-frame": "^7.0.1",
-    "@types/debug": "*",
-    "@types/glob": "*",
-    "@types/is-glob": "^4.0.1",
-    "@types/lodash": "*",
-    "@types/semver": "^7.1.0",
-    "@types/tmp": "^0.2.0",
-    "@typescript-eslint/shared-fixtures": "4.1.0",
-    "glob": "*",
-    "jest-specific-snapshot": "*",
-    "make-dir": "*",
-    "tmp": "^0.2.1",
-    "typescript": "*"
-  },
-  "peerDependenciesMeta": {
-    "typescript": {
-      "optional": true
-    }
-  },
-  "funding": {
-    "type": "opencollective",
-    "url": "https://opencollective.com/typescript-eslint"
-  },
-  "typesVersions": {
-    "<3.8": {
-      "*": [
-        "_ts3.4/*"
-      ]
-    }
-  },
-  "gitHead": "00a24706222254774121ee62038e67d0efa993e7"
-}
diff --git a/node_modules/eslint-plugin-jest/package.json b/node_modules/eslint-plugin-jest/package.json
index 83d02ac..91d4cb0 100644
--- a/node_modules/eslint-plugin-jest/package.json
+++ b/node_modules/eslint-plugin-jest/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint-plugin-jest",
-  "version": "24.0.2",
+  "version": "24.1.0",
   "description": "Eslint rules for Jest",
   "keywords": [
     "eslint",
diff --git a/node_modules/eslint-plugin-jsdoc/CONTRIBUTING.md b/node_modules/eslint-plugin-jsdoc/CONTRIBUTING.md
deleted file mode 100644
index 7de573c..0000000
--- a/node_modules/eslint-plugin-jsdoc/CONTRIBUTING.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# CONTRIBUTING to eslint-plugin-jsdoc
-
-## Testing changes locally
-
-You might try a TDD approach and add tests within the `test` directory,
-to try different configs, you may find it easier to try out changes in
-a separate local directory.
-
-You can run [`npm link`](https://docs.npmjs.com/cli/link) for this purpose,
-pointing from your project to this project. For example, while in your project
-root and with `eslint-plugin-jsdoc` as a sibling, run:
-
-```shell
-npm link ../eslint-plugin-jsdoc
-```
-
-## Building the project
-
-After running `npm install` to get the latest dependencies and devDependencies,
-you can run the following command to update the `dist` files, with `dist/index.js`
-being the `main` entrance point from `package.json`:
-
-```shell
-npm run build
-```
-
-## Coding standards
-
-The project follows ESLint rules from [`canonical`](https://www.npmjs.com/package/eslint-config-canonical)
-and testing follows its subconfig, `canonical/mocha`.
-
-## Testing
-
-Tests are expected. Each rule file should be in CamelCase (despite the rule names themselves being hyphenated) and should be added within `test/assertions` and then imported/required by
-`test/rules/index.js`.
-
-Each rule file should be an ESM default export of an object which has `valid` and `invalid` array properties containing the tests. Tests of each type should be provided.
-
-`parserOptions` will be `ecmaVersion: 6` by default, but tests can override `parserOptions`
-with their own.
-
-See ESLint's [RuleTester](https://eslint.org/docs/developer-guide/nodejs-api#ruletester)
-for more on the allowable properties (e.g., `code`, `errors` (for invalid rules),
-`options`, `settings`, etc.).
-
-Note that besides `npm test`, there is `npm run test-cov` which shows more
-detailed information on coverage. Coverage should be maintained at 100%, and
-if there are a few guards in place for future use, the code block in question
-can be ignored by being preceded by `/* istanbul ignore next */` (including
-for warnings where the block is never passed over (i.e., the block is always
-entered)). If you want to test without coverage at all, you can use
-`npm run test-no-cov`. To only test rules rather than other files, you
-can use `npm run test-index`.
-
-To test specific rules, you can supply a comma-separated list with the `--rule`
-flag passed to `test-index`, e.g., for `check-examples` and `require-example`:
-
-`npm run --rule=check-examples,require-example test-index`.
-
-You can further limit this by providing `--invalid` and/or `--valid` flags
-with a comma-separated list of 0-based indexes that you wish to include (also
-accepts negative offsets from the end, e.g., `-1` for the last item). For
-example, to check the first and third invalid tests of `check-examples`
-alon with the second valid test, you can run:
-
-`npm run --rule=check-examples --invalid=0,2 --valid=1 test-index`.
-
-## Requirements for PRs
-
-PRs should be mergeable, [rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
-first against the latest `master`.
-
-The number of commits will ideally be limited in number, unless extra commits
-can better show a progression of features.
-
-Commit messages should be worded clearly and the reason for any PR made clear
-by linking to an issue or giving a full description of what it achieves.
-
-## Merging
-
-We use [semantic-release](https://github.com/semantic-release/semantic-release)
-for preparing releases, so the commit messages (or at least the merge that
-brings them into `master`) must follow the
-[AngularJS commit guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) with a special format such as `feat: describe new feature`
-in order for the releasing to occur and for the described items to be added
-to the release notes.
diff --git a/node_modules/eslint-plugin-jsdoc/LICENSE b/node_modules/eslint-plugin-jsdoc/LICENSE
deleted file mode 100644
index 6c41d45..0000000
--- a/node_modules/eslint-plugin-jsdoc/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2018, Gajus Kuizinas (http://gajus.com/)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Gajus Kuizinas (http://gajus.com/) nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL ANUARY BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/eslint-plugin-jsdoc/README.md b/node_modules/eslint-plugin-jsdoc/README.md
deleted file mode 100644
index 7442d07..0000000
--- a/node_modules/eslint-plugin-jsdoc/README.md
+++ /dev/null
@@ -1,11240 +0,0 @@
-<a name="eslint-plugin-jsdoc"></a>
-# eslint-plugin-jsdoc
-
-[![GitSpo Mentions](https://gitspo.com/badges/mentions/gajus/eslint-plugin-jsdoc?style=flat-square)](https://gitspo.com/mentions/gajus/eslint-plugin-jsdoc)
-[![NPM version](http://img.shields.io/npm/v/eslint-plugin-jsdoc.svg?style=flat-square)](https://www.npmjs.org/package/eslint-plugin-jsdoc)
-[![Travis build status](http://img.shields.io/travis/gajus/eslint-plugin-jsdoc/master.svg?style=flat-square)](https://travis-ci.org/gajus/eslint-plugin-jsdoc)
-[![js-canonical-style](https://img.shields.io/badge/code%20style-canonical-blue.svg?style=flat-square)](https://github.com/gajus/canonical)
-
-JSDoc linting rules for ESLint.
-
-* [eslint-plugin-jsdoc](#eslint-plugin-jsdoc)
-    * [Installation](#eslint-plugin-jsdoc-installation)
-    * [Configuration](#eslint-plugin-jsdoc-configuration)
-    * [Options](#eslint-plugin-jsdoc-options)
-    * [Settings](#eslint-plugin-jsdoc-settings)
-        * [Allow `@private` to disable rules for that comment block](#eslint-plugin-jsdoc-settings-allow-private-to-disable-rules-for-that-comment-block)
-        * [`maxLines` and `minLines`](#eslint-plugin-jsdoc-settings-maxlines-and-minlines)
-        * [Mode](#eslint-plugin-jsdoc-settings-mode)
-        * [Alias Preference](#eslint-plugin-jsdoc-settings-alias-preference)
-        * [`@override`/`@augments`/`@extends`/`@implements` Without Accompanying `@param`/`@description`/`@example`/`@returns`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns)
-        * [Settings to Configure `check-types` and `no-undefined-types`](#eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types)
-    * [Rules](#eslint-plugin-jsdoc-rules)
-        * [`check-access`](#eslint-plugin-jsdoc-rules-check-access)
-        * [`check-alignment`](#eslint-plugin-jsdoc-rules-check-alignment)
-        * [`check-examples`](#eslint-plugin-jsdoc-rules-check-examples)
-        * [`check-indentation`](#eslint-plugin-jsdoc-rules-check-indentation)
-        * [`check-param-names`](#eslint-plugin-jsdoc-rules-check-param-names)
-        * [`check-property-names`](#eslint-plugin-jsdoc-rules-check-property-names)
-        * [`check-syntax`](#eslint-plugin-jsdoc-rules-check-syntax)
-        * [`check-tag-names`](#eslint-plugin-jsdoc-rules-check-tag-names)
-        * [`check-types`](#eslint-plugin-jsdoc-rules-check-types)
-        * [`check-values`](#eslint-plugin-jsdoc-rules-check-values)
-        * [`empty-tags`](#eslint-plugin-jsdoc-rules-empty-tags)
-        * [`implements-on-classes`](#eslint-plugin-jsdoc-rules-implements-on-classes)
-        * [`match-description`](#eslint-plugin-jsdoc-rules-match-description)
-        * [`newline-after-description`](#eslint-plugin-jsdoc-rules-newline-after-description)
-        * [`no-types`](#eslint-plugin-jsdoc-rules-no-types)
-        * [`no-undefined-types`](#eslint-plugin-jsdoc-rules-no-undefined-types)
-        * [`require-description-complete-sentence`](#eslint-plugin-jsdoc-rules-require-description-complete-sentence)
-        * [`require-description`](#eslint-plugin-jsdoc-rules-require-description)
-        * [`require-example`](#eslint-plugin-jsdoc-rules-require-example)
-        * [`require-file-overview`](#eslint-plugin-jsdoc-rules-require-file-overview)
-        * [`require-hyphen-before-param-description`](#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description)
-        * [`require-jsdoc`](#eslint-plugin-jsdoc-rules-require-jsdoc)
-        * [`require-param-description`](#eslint-plugin-jsdoc-rules-require-param-description)
-        * [`require-param-name`](#eslint-plugin-jsdoc-rules-require-param-name)
-        * [`require-param-type`](#eslint-plugin-jsdoc-rules-require-param-type)
-        * [`require-param`](#eslint-plugin-jsdoc-rules-require-param)
-        * [`require-property`](#eslint-plugin-jsdoc-rules-require-property)
-        * [`require-property-description`](#eslint-plugin-jsdoc-rules-require-property-description)
-        * [`require-property-name`](#eslint-plugin-jsdoc-rules-require-property-name)
-        * [`require-property-type`](#eslint-plugin-jsdoc-rules-require-property-type)
-        * [`require-returns-check`](#eslint-plugin-jsdoc-rules-require-returns-check)
-        * [`require-returns-description`](#eslint-plugin-jsdoc-rules-require-returns-description)
-        * [`require-returns-type`](#eslint-plugin-jsdoc-rules-require-returns-type)
-        * [`require-returns`](#eslint-plugin-jsdoc-rules-require-returns)
-        * [`valid-types`](#eslint-plugin-jsdoc-rules-valid-types)
-
-
-<a name="eslint-plugin-jsdoc-installation"></a>
-## Installation
-
-Install [ESLint](https://www.github.com/eslint/eslint) either locally or globally.
-
-```sh
-npm install --save-dev eslint
-```
-
-If you have installed `ESLint` globally, you have to install JSDoc plugin globally too. Otherwise, install it locally.
-
-```sh
-npm install --save-dev eslint-plugin-jsdoc
-```
-
-<a name="eslint-plugin-jsdoc-configuration"></a>
-## Configuration
-
-Add `plugins` section and specify `eslint-plugin-jsdoc` as a plugin.
-
-```json
-{
-    "plugins": [
-        "jsdoc"
-    ]
-}
-```
-
-Finally, enable all of the rules that you would like to use.
-
-```javascript
-{
-    "rules": {
-        "jsdoc/check-alignment": 1, // Recommended
-        "jsdoc/check-examples": 1,
-        "jsdoc/check-indentation": 1,
-        "jsdoc/check-param-names": 1, // Recommended
-        "jsdoc/check-syntax": 1,
-        "jsdoc/check-tag-names": 1, // Recommended
-        "jsdoc/check-types": 1, // Recommended
-        "jsdoc/implements-on-classes": 1, // Recommended
-        "jsdoc/match-description": 1,
-        "jsdoc/newline-after-description": 1, // Recommended
-        "jsdoc/no-types": 1,
-        "jsdoc/no-undefined-types": 1, // Recommended
-        "jsdoc/require-description": 1,
-        "jsdoc/require-description-complete-sentence": 1,
-        "jsdoc/require-example": 1,
-        "jsdoc/require-hyphen-before-param-description": 1,
-        "jsdoc/require-jsdoc": 1, // Recommended
-        "jsdoc/require-param": 1, // Recommended
-        "jsdoc/require-param-description": 1, // Recommended
-        "jsdoc/require-param-name": 1, // Recommended
-        "jsdoc/require-param-type": 1, // Recommended
-        "jsdoc/require-returns": 1, // Recommended
-        "jsdoc/require-returns-check": 1, // Recommended
-        "jsdoc/require-returns-description": 1, // Recommended
-        "jsdoc/require-returns-type": 1, // Recommended
-        "jsdoc/valid-types": 1 // Recommended
-    }
-}
-```
-
-Or you can simply use the following which enables the rules commented
-above as "recommended":
-
-```json
-{
-  "extends": ["plugin:jsdoc/recommended"]
-}
-```
-
-You can then selectively add to or override the recommended rules.
-
-<a name="eslint-plugin-jsdoc-options"></a>
-## Options
-
-Rules may, as per the [ESLint user guide](https://eslint.org/docs/user-guide/configuring), have their own individual options. In `eslint-plugin-jsdoc`, a few options,
-such as, `exemptedBy` and `contexts`, may be used across different rules.
-
-`eslint-plugin-jsdoc` options, if present, are in the form of an object
-supplied as the second argument in an array after the error level.
-
-```js
-// `.eslintrc.js`
-{
-  rules: {
-    'jsdoc/require-example': [
-        // The Error level should be `error`, `warn`, or `off` (or 2, 1, or 0)
-        'error',
-        // The options vary by rule, but are added to an options object:
-        {
-          avoidExampleOnConstructors: true,
-          exemptedBy: ['type']
-        }
-    ]
-  }
-}
-```
-
-<a name="eslint-plugin-jsdoc-settings"></a>
-## Settings
-
-<a name="eslint-plugin-jsdoc-settings-allow-private-to-disable-rules-for-that-comment-block"></a>
-### Allow <code>@private</code> to disable rules for that comment block
-
-- `settings.jsdoc.ignorePrivate` - Disables all rules for the comment block
-  on which a `@private` tag (or `@access private`) occurs. Defaults to
-  `false`. Note: This has no effect with the rule `check-access` (whose
-  purpose is to check access modifiers).
-
-<a name="eslint-plugin-jsdoc-settings-maxlines-and-minlines"></a>
-### <code>maxLines</code> and <code>minLines</code>
-
-One can use `minLines` and `maxLines` to indicate how many line breaks
-(if any) will be checked to find a jsdoc comment block before the given
-code block. These settings default to `0` and `1` respectively.
-
-In conjunction with the `require-jsdoc` rule, these settings can
-be enforced so as to report problems if a jsdoc block is not found within
-the specified boundaries. The settings are also used in the fixer to determine
-how many line breaks to add when a block is missing.
-
-<a name="eslint-plugin-jsdoc-settings-mode"></a>
-### Mode
-
-- `settings.jsdoc.mode` - Set to `jsdoc` (the default), `typescript`, or `closure`.
-  Currently is used for the following:
-  - Determine valid tags for `check-tag-names`
-  - Only check `@template` in `no-undefined-types` for types in "closure" and
-    "typescript" modes
-  - For type-checking rules, determine which tags will be checked for types
-    (Closure allows types on some tags which the others do not,
-    so these tags will additionally be checked in "closure" mode)
-  - Check preferred tag names
-
-<a name="eslint-plugin-jsdoc-settings-alias-preference"></a>
-### Alias Preference
-
-Use `settings.jsdoc.tagNamePreference` to configure a preferred alias name for a JSDoc tag. The format of the configuration is: `<primary tag name>: <preferred alias name>`, e.g.
-
-```json
-{
-    "rules": {},
-    "settings": {
-        "jsdoc": {
-            "tagNamePreference": {
-                "param": "arg",
-                "returns": "return"
-            }
-        }
-    }
-}
-```
-
-One may also use an object with a `message` and `replacement`.
-
-The following will report the message `@extends is to be used over @augments as it is more evocative of classes than @augments` upon encountering `@augments`.
-
-```json
-{
-    "rules": {},
-    "settings": {
-        "jsdoc": {
-            "tagNamePreference": {
-                "augments": {
-                  "message": "@extends is to be used over @augments as it is more evocative of classes than @augments",
-                  "replacement": "extends"
-                }
-            }
-        }
-    }
-}
-```
-
-If one wishes to reject a normally valid tag, e.g., `@todo`, one may set the tag to `false`:
-
-```json
-{
-    "rules": {},
-    "settings": {
-        "jsdoc": {
-            "tagNamePreference": {
-                "todo": false
-            }
-        }
-    }
-}
-```
-
-A project wishing to ensure no blocks are left excluded from entering the
-documentation, might wish to prevent the `@ignore` tag in the above manner.
-
-Or one may set the targeted tag to an object with a custom `message`, but without a `replacement` property:
-
-```json
-{
-    "rules": {},
-    "settings": {
-        "jsdoc": {
-            "tagNamePreference": {
-                "todo": {
-                  "message": "We expect immediate perfection, so don't leave to-dos in your code."
-                }
-            }
-        }
-    }
-}
-```
-
-Note that the preferred tags indicated in the `settings.jsdoc.tagNamePreference`
-map will be assumed to be defined by `check-tag-names`.
-
-<a name="eslint-plugin-jsdoc-settings-alias-preference-default-preferred-aliases"></a>
-#### Default Preferred Aliases
-
-The defaults in `eslint-plugin-jsdoc` (for tags which offer
-aliases) are as follows:
-
-- `@abstract` (over `@virtual`)
-- `@augments` (over `@extends`)
-- `@class` (over `@constructor`)
-- `@constant` (over `@const`)
-- `@default` (over `@defaultvalue`)
-- `@description` (over `@desc`)
-- `@external` (over `@host`)
-- `@file` (over `@fileoverview`, `@overview`)
-- `@fires` (over `@emits`)
-- `@function` (over `@func`, `@method`)
-- `@member` (over `@var`)
-- `@param` (over `@arg`, `@argument`)
-- `@property` (over `@prop`)
-- `@returns` (over `@return`)
-- `@throws` (over `@exception`)
-- `@yields` (over `@yield`)
-
-This setting is utilized by the the rule for tag name checking
-(`check-tag-names`) as well as in the `@param` and `@require` rules:
-
-- `check-param-names`
-- `check-tag-names`
-- `require-hyphen-before-param-description`
-- `require-description`
-- `require-param`
-- `require-param-description`
-- `require-param-name`
-- `require-param-type`
-- `require-returns`
-- `require-returns-check`
-- `require-returns-description`
-- `require-returns-type`
-
-<a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-without-accompanying-param-description-example-returns"></a>
-### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>
-
-The following settings allows the element(s) they reference to be omitted
-on the JSDoc comment block of the function or that of its parent class
-for any of the "require" rules (i.e., `require-param`, `require-description`,
-`require-example`, or `require-returns`).
-
-* `settings.jsdoc.overrideReplacesDocs` (`@override`) - Defaults to `true`
-* `settings.jsdoc.augmentsExtendsReplacesDocs` (`@augments` or its alias `@extends`) - Defaults to `false`.
-* `settings.jsdoc.implementsReplacesDocs` (`@implements`) - Defaults to `false`
-
-The format of the configuration is as follows:
-
-```json
-{
-    "rules": {},
-    "settings": {
-        "jsdoc": {
-            "overrideReplacesDocs": true,
-            "augmentsExtendsReplacesDocs": true,
-            "implementsReplacesDocs": true
-        }
-    }
-}
-```
-
-<a name="eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types"></a>
-### Settings to Configure <code>check-types</code> and <code>no-undefined-types</code>
-
-- `settings.jsdoc.preferredTypes` An option map to indicate preferred
-  or forbidden types (if default types are indicated here, these will
-  have precedence over the default recommendations for `check-types`).
-  The keys of this map are the types to be replaced (or forbidden).
-  These keys may include:
-  1. The "ANY" type, `*`
-  1. The pseudo-type `[]` which we use to denote the parent (array)
-    types used in the syntax `string[]`, `number[]`, etc.
-  1. The pseudo-type `.<>` (or `.`) to represent the format `Array.<value>`
-    or `Object.<key, value>`
-  1. The pseudo-type `<>` to represent the format `Array<value>` or
-    `Object<key, value>`
-  1. A plain string type, e.g., `MyType`
-  1. A plain string type followed by one of the above pseudo-types (except
-    for `[]` which is always assumed to be an `Array`), e.g., `Array.`, or
-    `SpecialObject<>`.
-
-  If a bare pseudo-type is used, it will match all parent types of that form.
-  If a pseudo-type prefixed with a type name is used, it will only match
-  parent types of that form and type name.
-
-  The values can be:
-  - `false` to forbid the type
-  - a string to indicate the type that should be preferred in its place
-    (and which `fix` mode can replace); this can be one of the formats
-    of the keys described above.
-    - Note that the format will not be changed unless you use a pseudo-type
-      in the replacement. (For example, `'Array.<>': 'MyArray'` will change
-      `Array.<string>` to `MyArray.<string>`, preserving the dot. To get rid
-      of the dot, you must use the pseudo-type with `<>`, i.e.,
-      `'Array.<>': 'MyArray<>'`, which will change `Array.<string>` to
-      `MyArray<string>`).
-    - If you use a _bare_ pseudo-type in the replacement (e.g.,
-      `'MyArray.<>': '<>'`), the type will be converted to the format
-      of the pseudo-type without changing the type name. For example,
-      `MyArray.<string>` will become `MyArray<string>` but `Array.<string>`
-      will not be modified.
-  - an object with:
-    - the key `message` to provide a specific error message
-      when encountering the discouraged type.
-      - The message string will have the substrings with special meaning,
-        `{{tagName}}` and `{{tagValue}}`, replaced with their
-        corresponding value.
-    - an optional key `replacement` with either of the following values:
-      - a string type to be preferred in its place (and which `fix` mode
-        can replace)
-      - `false` (for forbidding the type)
-
-Note that the preferred types indicated as targets in `settings.jsdoc.preferredTypes`
-map will be assumed to be defined by `no-undefined-types`.
-
-See the option of `check-types`, `unifyParentAndChildTypeChecks`, for
-how the keys of `preferredTypes` may have `<>` or `.<>` (or just `.`)
-appended and its bearing on whether types are checked as parents/children
-only (e.g., to match `Array` if the type is `Array` vs. `Array.<string>`).
-
-<a name="eslint-plugin-jsdoc-rules"></a>
-## Rules
-
-<a name="eslint-plugin-jsdoc-rules-check-access"></a>
-### <code>check-access</code>
-
-Checks that `@access` tags use one of the following values:
-
-- "package", "private", "protected", "public"
-
-Also reports:
-
-- Mixing of `@access` with `@public`, `@private`, `@protected`, or `@package`
-  on the same doc block.
-- Use of multiple instances of `@access` (or the `@public`, etc. style tags)
-  on the same doc block.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`@access`|
-|Settings||
-|Options||
-
-The following patterns are considered problems:
-
-````js
-/**
- * @access foo
- */
-function quux (foo) {
-
-}
-// Message: Missing valid JSDoc @access level.
-
-/**
- * @access foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-// Message: Missing valid JSDoc @access level.
-
-/**
- * @accessLevel foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}}
-// Message: Missing valid JSDoc @accessLevel level.
-
-/**
- * @access
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"access":false}}}
-// Message: Unexpected tag `@access`
-
-class MyClass {
-  /**
-   * @access
-   */
-  myClassField = 1
-}
-// Message: Missing valid JSDoc @access level.
-
-/**
- * @access public
- * @public
- */
-function quux (foo) {
-
-}
-// Message: The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public).
-
-/**
- * @access public
- * @access private
- */
-function quux (foo) {
-
-}
-// Message: At most one access-control tag may be present on a jsdoc block.
-
-/**
- * @access public
- * @access private
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-// Message: At most one access-control tag may be present on a jsdoc block.
-
-/**
- * @public
- * @private
- */
-function quux (foo) {
-
-}
-// Message: At most one access-control tag may be present on a jsdoc block.
-
-/**
- * @public
- * @private
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-// Message: At most one access-control tag may be present on a jsdoc block.
-
-/**
- * @public
- * @public
- */
-function quux (foo) {
-
-}
-// Message: At most one access-control tag may be present on a jsdoc block.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-}
-
-/**
- * @access public
- */
-function quux (foo) {
-
-}
-
-/**
- * @accessLevel package
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}}
-
-class MyClass {
-  /**
-   * @access private
-   */
-  myClassField = 1
-}
-
-/**
- * @public
- */
-function quux (foo) {
-
-}
-
-/**
- * @private
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-alignment"></a>
-### <code>check-alignment</code>
-
-Reports invalid alignment of JSDoc block asterisks.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-
-The following patterns are considered problems:
-
-````js
-/**
-  * @param {Number} foo
- */
-function quux (foo) {
-  // with spaces
-}
-// Message: Expected JSDoc block to be aligned.
-
-/**
-  * @param {Number} foo
- */
-function quux (foo) {
-	// with tabs
-}
-// Message: Expected JSDoc block to be aligned.
-
-/**
-  * @param {Number} foo
- */
-function quux (foo) {
-  // with spaces
-}
-// Message: Expected JSDoc block to be aligned.
-
-/**
-* @param {Number} foo
-*/
-function quux (foo) {
-  // with spaces
-}
-// Message: Expected JSDoc block to be aligned.
-
-/**
- * @param {Number} foo
-  */
-function quux (foo) {
-
-}
-// Message: Expected JSDoc block to be aligned.
-
- /**
- * @param {Number} foo
- */
-function quux (foo) {
-
-}
-// Message: Expected JSDoc block to be aligned.
-
- /**
-  * @param {Number} foo
- */
-function quux (foo) {
-
-}
-// Message: Expected JSDoc block to be aligned.
-
-/**
-  * @param {Number} foo
-  */
- function quux (foo) {
-
- }
-// Message: Expected JSDoc block to be aligned.
-
-/**
-   * A jsdoc not attached to any node.
- */
-// Message: Expected JSDoc block to be aligned.
-
-class Foo {
-  /**
-   *  Some method
-    * @param a
-   */
-  quux(a) {}
-}
-// Message: Expected JSDoc block to be aligned.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * Desc
- *
- * @param {Number} foo
- */
-function quux (foo) {
-
-}
-
-/**
- * Desc
- *
- * @param {{
-  foo: Bar,
-  bar: Baz
- * }} foo
- *
- */
-function quux (foo) {
-
-}
-
-/*  <- JSDoc must start with 2 stars.
-  *    So this is unchecked.
- */
-function quux (foo) {}
-
-/**
-  * @param {Number} foo
-  * @private
- */
-function quux (foo) {
-  // with spaces
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-
-/**
-  * @param {Number} foo
-  * @access private
- */
-function quux (foo) {
-  // with spaces
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-examples"></a>
-### <code>check-examples</code>
-
-Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-1"></a>
-#### Options
-
-The options below all default to no-op/`false` except as noted.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-1-captionrequired"></a>
-##### <code>captionRequired</code>
-
-JSDoc specs use of an optional `<caption>` element at the beginning of
-`@example`.
-
-The option `captionRequired` insists on a `<caption>` being present at
-the beginning of any `@example`.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-1-examplecoderegex-and-rejectexamplecoderegex"></a>
-##### <code>exampleCodeRegex</code> and <code>rejectExampleCodeRegex</code>
-
-JSDoc does not specify a formal means for delimiting code blocks within
-`@example` (it uses generic syntax highlighting techniques for its own
-syntax highlighting). The following options determine whether a given
-`@example` tag will have the `check-examples` checks applied to it:
-
-* `exampleCodeRegex` - Regex which whitelists lintable
-  examples. If a parenthetical group is used, the first one will be used,
-  so you may wish to use `(?:...)` groups where you do not wish the
-  first such group treated as one to include. If no parenthetical group
-  exists or matches, the whole matching expression will be used.
-  An example might be ````"^```(?:js|javascript)([\\s\\S]*)```\s*$"````
-  to only match explicitly fenced JavaScript blocks. Defaults to only
-  using the `u` flag, so to add your own flags, encapsulate your
-  expression as a string, but like a literal, e.g., ````/```js.*```/gi````.
-  Note that specifying a global regular expression (i.e., with `g`) will
-  allow independent linting of matched blocks within a single `@example`.
-* `rejectExampleCodeRegex` - Regex blacklist which rejects
-  non-lintable examples (has priority over `exampleCodeRegex`). An example
-  might be ```"^`"``` to avoid linting fenced blocks which may indicate
-  a non-JavaScript language. See `exampleCodeRegex` on how to add flags
-  if the default `u` is not sufficient.
-
-If neither is in use, all examples will be matched. Note also that even if
-`captionRequired` is not set, any initial `<caption>` will be stripped out
-before doing the regex matching.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-1-paddedindent"></a>
-##### <code>paddedIndent</code>
-
-This integer property allows one to add a fixed amount of whitespace at the
-beginning of the second or later lines of the example to be stripped so as
-to avoid linting issues with the decorative whitespace. For example, if set
-to a value of `4`, the initial whitespace below will not trigger `indent`
-rule errors as the extra 4 spaces on each subsequent line will be stripped
-out before evaluation.
-
-```js
-/**
- * @example
- *     anArray.filter((a) => {
- *      return a.b;
- *     });
- */
-```
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-1-reportunuseddisabledirectives"></a>
-##### <code>reportUnusedDisableDirectives</code>
-
-If not set to `false`, `reportUnusedDisableDirectives` will report disabled
-directives which are not used (and thus not needed). Defaults to `true`.
-Corresponds to ESLint's [`--report-unused-disable-directives`](https://eslint.org/docs/user-guide/command-line-interface#--report-unused-disable-directives).
-
-Inline ESLint config within `@example` JavaScript is allowed, though the
-disabling of ESLint directives which are not needed by the resolved rules
-will be reported as with the ESLint `--report-unused-disable-directives`
-command.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig"></a>
-#### Options for Determining ESLint Rule Applicability (<code>allowInlineConfig</code>, <code>noDefaultExampleRules</code>, <code>matchingFileName</code>, <code>configFile</code>, <code>checkEslintrc</code>, and <code>baseConfig</code>)
-
-The following options determine which individual ESLint rules will be
-applied to the JavaScript found within the `@example` tags (as determined
-to be applicable by the above regex options). They are ordered by
-decreasing precedence:
-
-* `allowInlineConfig` - If not set to `false`, will allow
-  inline config within the `@example` to override other config. Defaults
-  to `true`.
-* `noDefaultExampleRules` - Setting to `true` will disable the
-  default rules which are expected to be troublesome for most documentation
-  use. See the section below for the specific default rules.
-* `configFile` - A config file. Corresponds to ESLint's [`-c`](https://eslint.org/docs/user-guide/command-line-interface#-c---config).
-* `matchingFileName` - Option for a file name (even non-existent) to trigger
-  specific rules defined in one's config; usable with ESLint `.eslintrc.*`
-  `overrides` -> `files` globs, to apply a desired subset of rules with
-  `@example` (besides allowing for rules specific to examples, this option
-  can be useful for enabling reuse of the same rules within `@example` as
-  with JavaScript Markdown lintable by
-  [other plugins](https://github.com/eslint/eslint-plugin-markdown), e.g.,
-  if one sets `matchingFileName` to `dummy.md` so that `@example` rules will
-  follow one's Markdown rules).
-* `checkEslintrc` - Defaults to `true` in adding rules
-  based on an `.eslintrc.*` file. Setting to `false` corresponds to
-  ESLint's [`--no-eslintrc`](https://eslint.org/docs/user-guide/command-line-interface#--no-eslintrc).
-  If `matchingFileName` is set, this will automatically be `true` and
-  will use the config corresponding to that file. If `matchingFileName` is
-  not set and this value is set to `false`, the `.eslintrc.*` configs will
-  not be checked. If `matchingFileName` is not set, and this is unset or
-  set to `true`, the `.eslintrc.*` configs will be checked as though the file
-  name were the same as the file containing the example, with any file
-  extension changed to ".md" (and if there is no file extension, "dummy.md"
-  will be used). This allows convenient sharing of similar rules with often
-  also context-free Markdown as well as use of `overrides` as described under
-  `matchingFileName`. Note that this option (whether set by `matchingFileName`
-  or set manually to `true`) may come at somewhat of a performance penalty
-  as the file's existence is checked by eslint.
-* `baseConfig` - Set to an object of rules with the same schema
-  as `.eslintrc.*` for defaults.
-
-<a name="eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-rules-disabled-by-default-unless-nodefaultexamplerules-is-set-to-true"></a>
-##### Rules Disabled by Default Unless <code>noDefaultExampleRules</code> is Set to <code>true</code>
-
-* `eol-last` - Insisting that a newline "always" be at the end is less likely
-  to be desired in sample code as with the code file convention.
-* `no-console` - This rule is unlikely to have inadvertent temporary debugging
-  within examples.
-* `no-multiple-empty-lines` - This rule may be problematic for projects which
-  use an initial newline just to start an example. Also, projects may wish to
-  use extra lines within examples just for easier illustration
-  purposes.
-* `no-undef` - Many variables in examples will be `undefined`.
-* `no-unused-vars` - It is common to define variables for clarity without always
-  using them within examples.
-* `padded-blocks` - It can generally look nicer to pad a little even if one's
-  code follows more stringency as far as block padding.
-* `import/no-unresolved` - One wouldn't generally expect example paths to
-  resolve relative to the current JavaScript file as one would with real code.
-* `import/unambiguous` - Snippets in examples are likely too short to always
-  include full import/export info.
-* `node/no-missing-import` - See `import/no-unresolved`.
-* `node/no-missing-require` -  See `import/no-unresolved`.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`example`|
-|Options| *See above* |
-
-The following patterns are considered problems:
-
-````js
-/**
- * @example alert('hello')
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}]
-// Message: @example error (no-alert): Unexpected alert.
-
-/**
- * @example alert('hello')
- */
-class quux {
-
-}
-// Options: [{"baseConfig":{"rules":{"no-alert":2,"semi":["error","always"]}},"checkEslintrc":false}]
-// Message: @example error (no-alert): Unexpected alert.
-
-/**
- * @example ```js
- alert('hello');
- ```
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}]
-// Message: @example error (semi): Extra semicolon.
-
-/**
- * @example
- *
- * ```js alert('hello'); ```
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}]
-// Message: @example error (semi): Extra semicolon.
-
-/**
- * @example
- * ```js alert('hello'); ```
- */
-var quux = {
-
-};
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js ([\\s\\S]*)```"}]
-// Message: @example error (semi): Extra semicolon.
-
-/**
- * @example ```
- * js alert('hello'); ```
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```\njs ([\\s\\S]*)```"}]
-// Message: @example error (semi): Extra semicolon.
-
-/**
- * @example <b>Not JavaScript</b>
- */
-function quux () {
-
-}
-/**
- * @example quux2();
- */
-function quux2 () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"rejectExampleCodeRegex":"^\\s*<.*>\\s*$"}]
-// Message: @example error (semi): Extra semicolon.
-
-/**
- * @example
- * quux(); // does something useful
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":true}]
-// Message: @example error (no-undef): 'quux' is not defined.
-
-/**
- * @example <caption>Valid usage</caption>
- * quux(); // does something useful
- *
- * @example
- * quux('random unwanted arg'); // results in an error
- */
-function quux () {
-
-}
-// Options: [{"captionRequired":true,"checkEslintrc":false}]
-// Message: Caption is expected for examples.
-
-/**
- * @example  quux();
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-// Message: @example error (indent): Expected indentation of 0 spaces but found 1.
-
-/**
- * @example test() // eslint-disable-line semi
- */
-function quux () {}
-// Options: [{"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":true}]
-// Message: @example error: Unused eslint-disable directive (no problems were reported from 'semi').
-
-/**
- * @example
- test() // eslint-disable-line semi
- */
-function quux () {}
-// Options: [{"allowInlineConfig":false,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example const i = 5;
- * quux2()
- */
-function quux2 () {
-
-}
-// Options: [{"matchingFileName":"../../jsdocUtils.js"}]
-// Message: @example warning (id-length): Identifier name 'i' is too short (< 2).
-
-/**
- * @example const i = 5;
- * quux2()
- */
-function quux2 () {
-
-}
-// Message: @example warning (id-length): Identifier name 'i' is too short (< 2).
-
-/**
- * @example const i = 5;
- *   quux2()
- */
-function quux2 () {
-
-}
-// Options: [{"paddedIndent":2}]
-// Message: @example warning (id-length): Identifier name 'i' is too short (< 2).
-
-/**
- * @example
- * const i = 5;
- * quux2()
- */
-function quux2 () {
-
-}
-// Message: @example warning (id-length): Identifier name 'i' is too short (< 2).
-
-/**
- * @example const idx = 5;
- * quux2()
- */
-function quux2 () {
-
-}
-// Options: [{"matchingFileName":"dummy.js"}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example const idx = 5;
- *
- * quux2()
- */
-function quux2 () {
-
-}
-// Options: [{"matchingFileName":"dummy.js"}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example const idx = 5;
- *
- * quux2()
- */
-function quux2 () {
-
-}
-// Options: [{"checkEslintrc":false,"matchingFileName":"dummy.js"}]
-// Message: @example error: Parsing error: The keyword 'const' is reserved
-
-/**
- * @example // begin
- alert('hello')
- // end
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"// begin[\\s\\S]*// end","noDefaultExampleRules":true}]
-// Message: @example warning (semi): Missing semicolon.
-
-/**
- *
- */
-function f () {
-
-}
-// Settings: {"jsdoc":{"allowInlineConfig":true,"baseConfig":{},"captionRequired":false,"configFile":"configFile.js","eslintrcForExamples":true,"exampleCodeRegex":".*?","matchingFileName":"test.md","noDefaultExampleRules":false,"rejectExampleCodeRegex":"\\W*","reportUnusedDisableDirectives":true}}
-// Message: `settings.jsdoc.captionRequired` has been removed, use options in the rule `check-examples` instead.
-
-/**
- * @typedef {string} Foo
- * @example <caption></caption>
- * 'foo'
- */
-// Options: [{"captionRequired":true,"checkEslintrc":false}]
-// Message: Caption is expected for examples.
-
-/**
- * @example
- * const list: number[] = [1, 2, 3]
- * quux(list);
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example
- * const test = something?.find((_) => {
- *   return _
- * });
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}}}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example <caption>Say `Hello!` to the user.</caption>
- * First, import the function:
- *
- * ```js
- * import popup from './popup'
- * const aConstInSameScope = 5;
- * ```
- *
- * Then use it like this:
- *
- * ```js
- * const aConstInSameScope = 7;
- * popup('Hello!')
- * ```
- *
- * Here is the result on macOS:
- *
- * ![Screenshot](path/to/screenshot.jpg)
- */
-// Options: [{"baseConfig":{"parserOptions":{"ecmaVersion":2015,"sourceType":"module"},"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/^```(?:js|javascript)\\n([\\s\\S]*?)```$/gm"}]
-// Message: @example error (semi): Missing semicolon.
-
-/**
- * @example // begin
- alert('hello')
- // end
- * And here is another example:
- // begin
- alert('there')
- // end
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["warn","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/\\/\\/ begin[\\s\\S]*?// end/g","noDefaultExampleRules":true}]
-// Message: @example warning (semi): Missing semicolon.
-
-/**
- * @example
- *   quux();
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-// Message: @example error (indent): Expected indentation of 0 spaces but found 2.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @example ```js
- alert('hello');
- ```
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}]
-
-/**
- * @example ```js
- alert('hello');
- ```
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"exampleCodeRegex":"/```js([\\s\\S]*)```/"}]
-
-/**
- * @example
- * // arbitrary example content
- */
-function quux () {
-
-}
-// Options: [{"checkEslintrc":false}]
-
-/**
- * @example
- * quux(); // does something useful
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"no-undef":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-
-/**
- * @example quux();
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-
-/**
- * @example <caption>Valid usage</caption>
- * quux(); // does something useful
- *
- * @example <caption>Invalid usage</caption>
- * quux('random unwanted arg'); // results in an error
- */
-function quux () {
-
-}
-// Options: [{"captionRequired":true,"checkEslintrc":false}]
-
-/**
- * @example test() // eslint-disable-line semi
- */
-function quux () {}
-// Options: [{"checkEslintrc":false,"noDefaultExampleRules":true,"reportUnusedDisableDirectives":false}]
-
-/**
- * @example
- test() // eslint-disable-line semi
- */
-function quux () {}
-// Options: [{"allowInlineConfig":true,"baseConfig":{"rules":{"semi":["error","always"]}},"checkEslintrc":false,"noDefaultExampleRules":true}]
-
-/**
- * @example ```js
- alert('hello')
- ```
- */
-var quux = {
-
-};
-// Options: [{"baseConfig":{"rules":{"semi":["error","never"]}},"checkEslintrc":false,"exampleCodeRegex":"```js([\\s\\S]*)```"}]
-
-/**
- * @example
- * foo(function (err) {
- *     throw err;
- * });
- */
-function quux () {}
-// Options: [{"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-
-/**
- * @example
- * const list: number[] = [1, 2, 3];
- * quux(list);
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"parser":"@typescript-eslint/parser","parserOptions":{"ecmaVersion":6},"rules":{"semi":["error","always"]}},"checkEslintrc":false}]
-
-/**
- * @example const ident = 5;
- *   quux2();
- *   bar();
- */
-function quux2 () {
-
-}
-// Options: [{"paddedIndent":2}]
-
-/**
- * @example
- * function quux() {
- *     bar();
- * }
- */
-function quux () {
-
-}
-// Options: [{"baseConfig":{"rules":{"indent":["error"]}},"checkEslintrc":false,"noDefaultExampleRules":false}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-indentation"></a>
-### <code>check-indentation</code>
-
-Reports invalid padding inside JSDoc blocks.
-
-Ignores parts enclosed in Markdown "code block"'s. For example,
-the following description is not reported:
-
-```js
-/**
- * Some description:
- * ```html
- * <section>
- *   <title>test</title>
- * </section>
- * ```
- */
-```
-
-<a name="eslint-plugin-jsdoc-rules-check-indentation-options-2"></a>
-#### Options
-
-This rule has an object option.
-
-<a name="eslint-plugin-jsdoc-rules-check-indentation-options-2-excludetags"></a>
-##### <code>excludeTags</code>
-
-Array of tags (e.g., `['example', 'description']`) whose content will be
-"hidden" from the `check-indentation` rule. Defaults to `['example']`.
-
-By default, the whole JSDoc block will be checked for invalid padding.
-That would include `@example` blocks too, which can get in the way
-of adding full, readable examples of code without ending up with multiple
-linting issues.
-
-When disabled (by passing `excludeTags: []` option), the following code *will*
-report a padding issue:
-
-```js
-/**
- * @example
- * anArray.filter((a) => {
- *   return a.b;
- * });
- */
-```
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-|Options| `excludeTags` |
-
-The following patterns are considered problems:
-
-````js
-/**  foo */
-function quux () {
-
-}
-// Message: There must be no indentation.
-
-/**
- * foo
- *
- * @param bar
- *  baz
- */
-function quux () {
-
-}
-// Message: There must be no indentation.
-
-/**
- * Foo
- *   bar
- */
-class Moo {}
-// Message: There must be no indentation.
-
-/**
- * foo
- *
- * @example
- * anArray.filter((a) => {
- *   return a.b;
- * });
- */
-function quux () {
-
-}
-// Options: [{"excludeTags":[]}]
-// Message: There must be no indentation.
-
-/**
- * foo
- *
- * @example
- *   aaaa
- * @returns
- *   eeee
- */
-function quux () {
-
-}
-// Message: There must be no indentation.
-
-/**
- * foo
- * ```html
- * <section>
- *   <title>test</title>
- * </section>
- * ```
- * @returns
- *   eeee
- */
-function quux () {
-
-}
-// Message: There must be no indentation.
-
-/**
- * foo
- * ```   aaaa```
- * @returns
- *   eeee
- */
-function quux () {
-
-}
-// Message: There must be no indentation.
-
-/**
-* @example <caption>
-* Here is a long
-*   indented summary of this
-* example
-* </caption>
-* ```js
-* function hi () {
-*   alert('Hello');
-* }
-* ```
-*/
-// Options: [{"excludeTags":[]}]
-// Message: There must be no indentation.
-
-/**
-* @example <caption>
-* Here is a long
-* summary of this
-* example
-* </caption>
-* // Code is not wrapped into fenced code block
-* function hi () {
-*   alert('Hello');
-* }
-*/
-// Options: [{"excludeTags":[]}]
-// Message: There must be no indentation.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * foo
- *
- * @param bar
- * baz
- */
-function quux () {
-
-}
-
-/*** foo */
-function quux () {
-
-}
-
-/**
- * foo
- *
- * @example
- * anArray.filter((a) => {
- *   return a.b;
- * });
- */
-function quux () {
-
-}
-
-/**
- * foo
- *
- * @example
- * anArray.filter((a) => {
- *   return a.b;
- * });
- * @returns
- *   eeee
- */
-function quux () {
-
-}
-// Options: [{"excludeTags":["example","returns"]}]
-
-/**
- * foo
- * ```html
- * <section>
- *   <title>test</title>
- * </section>
- * ```
- * @returns eeee
- */
-function quux () {
-
-}
-
-/**
- * foo
- * ```   aaaa```
- * @returns eeee
- */
-function quux () {
-
-}
-
-/**
-* @example <caption>
-* Here is a long
-* summary of this
-* example
-* </caption>
-* ```js
-* function hi () {
-*   alert('Hello');
-* }
-* ```
-*/
-// Options: [{"excludeTags":[]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-param-names"></a>
-### <code>check-param-names</code>
-
-Ensures that parameter names in JSDoc match those in the function declaration.
-
-<a name="eslint-plugin-jsdoc-rules-check-param-names-options-3"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-check-param-names-options-3-allowextratrailingparamdocs"></a>
-##### <code>allowExtraTrailingParamDocs</code>
-
-If set to `true`, this option will allow extra `@param` definitions (e.g.,
-representing future expected or virtual params) to be present without needing
-their presence within the function signature. Other inconsistencies between
-`@param`'s and present function parameters will still be reported.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`|
-|Options|`allowExtraTrailingParamDocs`|
-|Tags|`param`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param Foo
- */
-function quux (foo = 'FOO') {
-
-}
-// Message: Expected @param names to be "foo". Got "Foo".
-
-/**
- * @arg Foo
- */
-function quux (foo = 'FOO') {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-// Message: Expected @arg names to be "foo". Got "Foo".
-
-/**
- * @param Foo
- */
-function quux (foo) {
-
-}
-// Message: Expected @param names to be "foo". Got "Foo".
-
-/**
- * @param Foo.Bar
- */
-function quux (foo) {
-
-}
-// Message: @param path declaration ("Foo.Bar") appears before any real parameter.
-
-/**
- * @param foo
- * @param Foo.Bar
- */
-function quux (foo) {
-
-}
-// Message: @param path declaration ("Foo.Bar") root node name ("Foo") does not match previous real parameter name ("foo").
-
-/**
- * Assign the project to a list of employees.
- * @param {string} employees[].name - The name of an employee.
- * @param {string} employees[].department - The employee's department.
- */
-function assign (employees) {
-
-};
-// Message: @param path declaration ("employees[].name") appears before any real parameter.
-
-/**
- * Assign the project to a list of employees.
- * @param {string} employees[].name - The name of an employee.
- * @param {string} employees[].name - The employee's department.
- */
-function assign (employees) {
-
-};
-// Message: Duplicate @param "employees[].name"
-
-/**
- * @param foo
- * @param foo.bar
- * @param bar
- */
-function quux (bar, foo) {
-
-}
-// Message: Expected @param names to be "bar, foo". Got "foo, bar".
-
-/**
- * @param foo
- * @param bar
- */
-function quux (foo) {
-
-}
-// Message: @param "bar" does not match an existing function parameter.
-
-/**
- * @param foo
- * @param foo
- */
-function quux (foo) {
-
-}
-// Message: Duplicate @param "foo"
-
-/**
- * @param foo
- * @param foo
- */
-function quux (foo, bar) {
-
-}
-// Message: Duplicate @param "foo"
-
-/**
- * @param foo
- * @param foo
- */
-function quux (foo, foo) {
-
-}
-// Message: Duplicate @param "foo"
-
-/**
- * @param cfg
- * @param cfg.foo
- * @param cfg.foo
- */
-function quux ({foo, bar}) {
-
-}
-// Message: Duplicate @param "cfg.foo"
-
-/**
- * @param cfg
- * @param cfg.foo
- * @param [cfg.foo]
- * @param baz
- */
-function quux ({foo, bar}, baz) {
-
-}
-// Message: Duplicate @param "cfg.foo"
-
-/**
- * @param cfg
- * @param cfg.foo
- * @param [cfg.foo="with a default"]
- * @param baz
- */
-function quux ({foo, bar}, baz) {
-
-}
-// Message: Duplicate @param "cfg.foo"
-
-export class SomeClass {
-  /**
-   * @param prop
-   */
-  constructor(private property: string) {}
-}
-// Message: Expected @param names to be "property". Got "prop".
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-
-/**
- * @param {Error} error Exit code
- * @param {number} [code = 1] Exit code
- */
-function quux (error, cde = 1) {
-};
-// Message: Expected @param names to be "error, cde". Got "error, code".
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo
- * @param bar
- */
-function quux (foo, bar) {
-
-}
-
-/**
- * @param foo
- * @param bar
- */
-function quux (foo, bar, baz) {
-
-}
-
-/**
- * @param foo
- * @param foo.foo
- * @param bar
- */
-function quux (foo, bar) {
-
-}
-
-/**
- * @param args
- */
-function quux (...args) {
-
-}
-
-/**
- * @param foo
- */
-function quux ({a, b}) {
-
-}
-
-/**
- * @param foo
- * @param foo.bar
- * @param foo.baz
- * @param bar
- */
-function quux (foo, bar) {
-
-}
-
-/**
- * @param args
- */
-function quux ({a, b} = {}) {
-
-}
-
-/**
- * @param foo
- */
-function quux ([a, b] = []) {
-
-}
-
-/**
- * Assign the project to a list of employees.
- * @param {object[]} employees - The employees who are responsible for the project.
- * @param {string} employees[].name - The name of an employee.
- * @param {string} employees[].department - The employee's department.
- */
-function assign (employees) {
-
-};
-
-export class SomeClass {
-  /**
-   * @param property
-   */
-  constructor(private property: string) {}
-}
-
-/**
- * @param {Error} error Exit code
- * @param {number} [code = 1] Exit code
- */
-function quux (error, code = 1) {
-};
-
-/**
- * @param foo
- * @param bar
- */
-function quux (foo) {
-
-}
-// Options: [{"allowExtraTrailingParamDocs":true}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-param-names-deconstructing-function-parameter"></a>
-#### Deconstructing Function Parameter
-
-`eslint-plugin-jsdoc` does not validate names of parameters in function deconstruction, e.g.
-
-```js
-/**
- * @param foo
- */
-function quux ({
-    a,
-    b
-}) {
-
-}
-```
-
-`{a, b}` is an [`ObjectPattern`](https://github.com/estree/estree/blob/master/es2015.md#objectpattern) AST type and does not have a name. Therefore, the associated parameter in JSDoc block can have any name.
-
-Likewise for the pattern `[a, b]` which is an [`ArrayPattern`](https://github.com/estree/estree/blob/master/es2015.md#arraypattern).
-
-<a name="eslint-plugin-jsdoc-rules-check-property-names"></a>
-### <code>check-property-names</code>
-
-Ensures that property names in JSDoc are not duplicated on the same block
-and that nested properties have defined roots.
-
-<a name="eslint-plugin-jsdoc-rules-check-property-names-options-4"></a>
-#### Options
-
-|||
-|---|---|
-|Context|Everywhere|
-|Tags|`property`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @typedef (SomeType) SomeTypedef
- * @property Foo.Bar
- */
-// Message: @property path declaration ("Foo.Bar") appears before any real property.
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- * @property Foo.Bar
- */
-// Message: @property path declaration ("Foo.Bar") root node name ("Foo") does not match previous real property name ("foo").
-
-/**
- * Assign the project to a list of employees.
- * @typedef (SomeType) SomeTypedef
- * @property {string} employees[].name - The name of an employee.
- * @property {string} employees[].department - The employee's department.
- */
-// Message: @property path declaration ("employees[].name") appears before any real property.
-
-/**
- * Assign the project to a list of employees.
- * @typedef (SomeType) SomeTypedef
- * @property {string} employees[].name - The name of an employee.
- * @property {string} employees[].name - The employee's department.
- */
-// Message: Duplicate @property "employees[].name"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- * @property foo
- */
-// Message: Duplicate @property "foo"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property cfg
- * @property cfg.foo
- * @property cfg.foo
- */
-function quux ({foo, bar}) {
-
-}
-// Message: Duplicate @property "cfg.foo"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property cfg
- * @property cfg.foo
- * @property [cfg.foo]
- * @property baz
- */
-function quux ({foo, bar}, baz) {
-
-}
-// Message: Duplicate @property "cfg.foo"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property cfg
- * @property cfg.foo
- * @property [cfg.foo="with a default"]
- * @property baz
- */
-function quux ({foo, bar}, baz) {
-
-}
-// Message: Duplicate @property "cfg.foo"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @prop foo
- * @prop foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
-// Message: Duplicate @prop "foo"
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
-// Message: Unexpected tag `@property`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- */
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @prop foo
- */
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- * @property bar
- */
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- * @property foo.foo
- * @property bar
- */
-
-/**
- * Assign the project to a list of employees.
- * @typedef (SomeType) SomeTypedef
- * @property {object[]} employees - The employees who are responsible for the project.
- * @property {string} employees[].name - The name of an employee.
- * @property {string} employees[].department - The employee's department.
- */
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property {Error} error Exit code
- * @property {number} [code = 1] Exit code
- */
-
-/**
- * @namespace (SomeType) SomeNamespace
- * @property {Error} error Exit code
- * @property {number} [code = 1] Exit code
- */
-
-/**
- * @class
- * @property {Error} error Exit code
- * @property {number} [code = 1] Exit code
- */
-function quux (code = 1) {
-  this.error = new Error('oops');
-  this.code = code;
-}
-
-/**
- * @typedef (SomeType) SomeTypedef
- * @property foo
- * @property foo.bar
- * @property foo.baz
- * @property bar
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-syntax"></a>
-### <code>check-syntax</code>
-
-Reports against Google Closure Compiler syntax.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param {string=} foo
- */
-function quux (foo) {
-
-}
-// Message: Syntax should not be Google Closure Compiler style.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param {string} [foo]
- */
-function quux (foo) {
-
-}
-
-/**
- *
- */
-function quux (foo) {
-
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-tag-names"></a>
-### <code>check-tag-names</code>
-
-Reports invalid block tag names.
-
-Valid [JSDoc 3 Block Tags](https://jsdoc.app/#block-tags) are:
-
-```
-abstract
-access
-alias
-async
-augments
-author
-borrows
-callback
-class
-classdesc
-constant
-constructs
-copyright
-default
-deprecated
-description
-enum
-event
-example
-exports
-external
-file
-fires
-function
-generator
-global
-hideconstructor
-ignore
-implements
-inheritdoc
-inner
-instance
-interface
-kind
-lends
-license
-listens
-member
-memberof
-memberof!
-mixes
-mixin
-module
-name
-namespace
-override
-package
-param
-private
-property
-protected
-public
-readonly
-requires
-returns
-see
-since
-static
-summary
-this
-throws
-todo
-tutorial
-type
-typedef
-variation
-version
-yields
-```
-
-`modifies` is also supported (see [source](https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594)) but is undocumented.
-
-The following synonyms are also recognized:
-
-```
-arg
-argument
-const
-constructor
-defaultvalue
-desc
-emits
-exception
-extends
-fileoverview
-func
-host
-method
-overview
-prop
-return
-var
-virtual
-yield
-```
-
-For [TypeScript](https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc)
-(or Closure), when `settings.jsdoc.mode` is set to `typescript` or `closure`,
-one may also use the following:
-
-```
-template
-```
-
-And for [Closure](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler),
-when `settings.jsdoc.mode` is set to `closure`, one may use the following (in
-addition to the jsdoc and TypeScript tags):
-
-```
-define (synonym of `const` per jsdoc source)
-dict
-export
-externs
-final
-implicitCast (casing distinct from that recognized by jsdoc internally)
-inheritDoc (casing distinct from that recognized by jsdoc internally)
-noalias
-nocollapse
-nocompile
-noinline
-nosideeffects
-polymer
-polymerBehavior
-preserve
-record (synonym of `interface` per jsdoc source)
-struct
-suppress
-unrestricted
-```
-
-...and these undocumented tags which are only in [source](https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java):
-
-```
-closurePrimitive
-customElement
-expose
-hidden
-idGenerator
-meaning
-mixinClass
-mixinFunction
-ngInject
-owner
-typeSummary
-wizaction
-```
-
-Note that the tags indicated as replacements in `settings.jsdoc.tagNamePreference` will automatically be considered as valid.
-
-<a name="eslint-plugin-jsdoc-rules-check-tag-names-options-5"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-check-tag-names-options-5-definedtags"></a>
-##### <code>definedTags</code>
-
-Use an array of `definedTags` strings to configure additional, allowed tags.
-The format is as follows:
-
-```json
-{
-  "definedTags": ["note", "record"]
-}
-```
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-|Options|`definedTags`|
-|Settings|`tagNamePreference`, `mode`|
-
-The following patterns are considered problems:
-
-````js
-/** @typoo {string} */
-let a;
-// Message: Invalid JSDoc tag name "typoo".
-
-/**
- * @Param
- */
-function quux () {
-
-}
-// Message: Invalid JSDoc tag name "Param".
-
-/**
- * @foo
- */
-function quux () {
-
-}
-// Message: Invalid JSDoc tag name "foo".
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "param".
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "arg".
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"arg":"somethingDifferent"}}}
-// Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "somethingDifferent".
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"parameter"}}}
-// Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "parameter".
-
-/**
- * @bar foo
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc tag name "bar".
-
-/**
- * @baz @bar foo
- */
-function quux (foo) {
-
-}
-// Options: [{"definedTags":["bar"]}]
-// Message: Invalid JSDoc tag name "baz".
-
-/**
- * @bar
- * @baz
- */
-function quux (foo) {
-
-}
-// Options: [{"definedTags":["bar"]}]
-// Message: Invalid JSDoc tag name "baz".
-
-/**
- * @todo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"todo":false}}}
-// Message: Blacklisted tag found (`@todo`)
-
-/**
- * @todo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please resolve to-dos or add to the tracker"}}}}
-// Message: Please resolve to-dos or add to the tracker
-
-/**
- * @todo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}}
-// Message: Please use x-todo instead of todo
-
-/**
- * @todo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}}
-// Message: Please use x-todo instead of todo
-
-/**
- * @todo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"todo":55}}}
-// Message: Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object.
-
-/**
- * @property {object} a
- * @prop {boolean} b
- */
-function quux () {
-
-}
-// Message: Invalid JSDoc tag (preference). Replace "prop" JSDoc tag with "property".
-
-/**
- * @abc foo
- * @abcd bar
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}}
-// Options: [{"definedTags":["abcd"]}]
-// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd".
-
-/**
- * @abc
- * @abcd
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}}
-// Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd".
-
-/** 
- * @modifies
- * @abstract
- * @access
- * @alias
- * @async
- * @augments
- * @author
- * @borrows
- * @callback
- * @class
- * @classdesc
- * @constant
- * @constructs
- * @copyright
- * @default
- * @deprecated
- * @description
- * @enum
- * @event
- * @example
- * @exports
- * @external
- * @file
- * @fires
- * @function
- * @generator
- * @global
- * @hideconstructor
- * @ignore
- * @implements
- * @inheritdoc
- * @inner
- * @instance
- * @interface
- * @kind
- * @lends
- * @license
- * @listens
- * @member
- * @memberof
- * @memberof!
- * @mixes
- * @mixin
- * @module
- * @name
- * @namespace
- * @override
- * @package
- * @param
- * @private
- * @property
- * @protected
- * @public
- * @readonly
- * @requires
- * @returns
- * @see
- * @since
- * @static
- * @summary
- * @this
- * @throws
- * @todo
- * @tutorial
- * @type
- * @typedef
- * @variation
- * @version
- * @yields
- */
-function quux (foo) {}
-// Settings: {"jsdoc":{"mode":"badMode"}}
-// Message: Unrecognized value `badMode` for `settings.jsdoc.mode`.
-
-/** 
- * @modifies
- * @abstract
- * @access
- * @alias
- * @async
- * @augments
- * @author
- * @borrows
- * @callback
- * @class
- * @classdesc
- * @constant
- * @constructs
- * @copyright
- * @default
- * @deprecated
- * @description
- * @enum
- * @event
- * @example
- * @exports
- * @external
- * @file
- * @fires
- * @function
- * @generator
- * @global
- * @hideconstructor
- * @ignore
- * @implements
- * @inheritdoc
- * @inner
- * @instance
- * @interface
- * @kind
- * @lends
- * @license
- * @listens
- * @member
- * @memberof
- * @memberof!
- * @mixes
- * @mixin
- * @module
- * @name
- * @namespace
- * @override
- * @package
- * @param
- * @private
- * @property
- * @protected
- * @public
- * @readonly
- * @requires
- * @returns
- * @see
- * @since
- * @static
- * @summary
- * @this
- * @throws
- * @todo
- * @tutorial
- * @type
- * @typedef
- * @variation
- * @version
- * @yields
- * @template
- */
-function quux (foo) {}
-// Message: Invalid JSDoc tag name "template".
-
-/** 
- * @externs
- */
-function quux (foo) {}
-// Message: Invalid JSDoc tag name "externs".
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @memberof! foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-
-/**
- * @bar foo
- */
-function quux (foo) {
-
-}
-// Options: [{"definedTags":["bar"]}]
-
-/**
- * @baz @bar foo
- */
-function quux (foo) {
-
-}
-// Options: [{"definedTags":["baz","bar"]}]
-
-/**
- * @baz @bar foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"baz","returns":{"message":"Prefer `bar`","replacement":"bar"},"todo":false}}}
-
-/** 
- * @modifies
- * @abstract
- * @access
- * @alias
- * @async
- * @augments
- * @author
- * @borrows
- * @callback
- * @class
- * @classdesc
- * @constant
- * @constructs
- * @copyright
- * @default
- * @deprecated
- * @description
- * @enum
- * @event
- * @example
- * @exports
- * @external
- * @file
- * @fires
- * @function
- * @generator
- * @global
- * @hideconstructor
- * @ignore
- * @implements
- * @inheritdoc
- * @inner
- * @instance
- * @interface
- * @kind
- * @lends
- * @license
- * @listens
- * @member
- * @memberof
- * @memberof!
- * @mixes
- * @mixin
- * @module
- * @name
- * @namespace
- * @override
- * @package
- * @param
- * @private
- * @property
- * @protected
- * @public
- * @readonly
- * @requires
- * @returns
- * @see
- * @since
- * @static
- * @summary
- * @this
- * @throws
- * @todo
- * @tutorial
- * @type
- * @typedef
- * @variation
- * @version
- * @yields
- */
-function quux (foo) {}
-
-/** 
- * @modifies
- * @abstract
- * @access
- * @alias
- * @async
- * @augments
- * @author
- * @borrows
- * @callback
- * @class
- * @classdesc
- * @constant
- * @constructs
- * @copyright
- * @default
- * @deprecated
- * @description
- * @enum
- * @event
- * @example
- * @exports
- * @external
- * @file
- * @fires
- * @function
- * @generator
- * @global
- * @hideconstructor
- * @ignore
- * @implements
- * @inheritdoc
- * @inner
- * @instance
- * @interface
- * @kind
- * @lends
- * @license
- * @listens
- * @member
- * @memberof
- * @memberof!
- * @mixes
- * @mixin
- * @module
- * @name
- * @namespace
- * @override
- * @package
- * @param
- * @private
- * @property
- * @protected
- * @public
- * @readonly
- * @requires
- * @returns
- * @see
- * @since
- * @static
- * @summary
- * @this
- * @throws
- * @todo
- * @tutorial
- * @type
- * @typedef
- * @variation
- * @version
- * @yields
- * @template
- */
-function quux (foo) {}
-// Settings: {"jsdoc":{"mode":"typescript"}}
-
-/** 
- * @externs
- */
-function quux (foo) {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- *
- */
-function quux (foo) {
-
-}
-
-/**
- * @todo
- */
-function quux () {
-
-}
-
-/**
- * @extends Foo
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"augments":{"message":"@extends is to be used over @augments.","replacement":"extends"}}}}
-
-/**
- * Registers the `target` class as a transient dependency; each time the dependency is resolved a new instance will be created.
- *
- * @param target - The class / constructor function to register as transient.
- *
- * @example ```ts
-@transient()
-class Foo { }
-```
- * @param Time for a new tag
- */
-export function transient<T>(target?: T): T {
-  // ...
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-types"></a>
-### <code>check-types</code>
-
-Reports invalid types.
-
-By default, ensures that the casing of native types is the same as in this list:
-
-```
-undefined
-null
-boolean
-number
-bigint
-string
-symbol
-object
-Array
-Function
-Date
-RegExp
-```
-
-<a name="eslint-plugin-jsdoc-rules-check-types-options-6"></a>
-#### Options
-
-`check-types` allows one option:
-
-- An option object:
-  - with the key `noDefaults` to insist that only the supplied option type
-    map is to be used, and that the default preferences (such as "string"
-    over "String") will not be enforced. The option's default is `false`.
-  - with the key `exemptTagContexts` which will avoid reporting when a
-    bad type is found on a specified tag. Set to an array of objects with
-    a key `tag` set to the tag to exempt, and a `types` key which can
-    either be `true` to indicate that any types on that tag will be allowed,
-    or to an array of strings which will only allow specific bad types.
-    If an array of strings is given, these must match the type exactly,
-    e.g., if you only allow `"object"`, it will not allow
-    `"object<string, string>"`. Note that this is different from the
-    behavior of `settings.jsdoc.preferredTypes`. This option is useful
-    for normally restricting generic types like `object` with
-    `preferredTypes`, but allowing `typedef` to indicate that its base
-    type is `object`.
-  - with the key `unifyParentAndChildTypeChecks` which will treat
-    `settings.jsdoc.preferredTypes` keys such as `SomeType` as matching
-    not only child types such as an unadorned `SomeType` but also
-    `SomeType<aChildType>`, `SomeType.<aChildType>`, or if `SomeType` is
-    `Array` (or `[]`), it will match `aChildType[]`. If this is `false` or
-    unset, the former format will only apply to types which are not parent
-    types/unions whereas the latter formats will only apply for parent
-    types/unions. The special types `[]`, `.<>` (or `.`), and `<>`
-    act only as parent types (and will not match a bare child type such as
-    `Array` even when unified, though, as mentioned, `Array` will match
-    say `string[]` or `Array.<string>` when unified). The special type
-    `*` is only a child type. Note that there is no detection of parent
-    and child type together, e.g., you cannot specify preferences for
-    `string[]` specifically as distinct from say `number[]`, but you can
-    target both with `[]` or the child types `number` or `string`.
-
-See also the documentation on `settings.jsdoc.preferredTypes` which impacts
-the behavior of `check-types`.
-
-<a name="eslint-plugin-jsdoc-rules-check-types-why-not-capital-case-everything"></a>
-#### Why not capital case everything?
-
-Why are `boolean`, `number` and `string` exempt from starting with a capital letter? Let's take `string` as an example. In Javascript, everything is an object. The string Object has prototypes for string functions such as `.toUpperCase()`.
-
-Fortunately we don't have to write `new String()` everywhere in our code. Javascript will automatically wrap string primitives into string Objects when we're applying a string function to a string primitive. This way the memory footprint is a tiny little bit smaller, and the [GC](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) has less work to do.
-
-So in a sense, there two types of strings in Javascript; `{string}` literals, also called primitives and `{String}` Objects. We use the primitives because it's easier to write and uses less memory. `{String}` and `{string}` are technically both valid, but they are not the same.
-
-```js
-new String('lard') // String {0: "l", 1: "a", 2: "r", 3: "d", length: 4}
-'lard' // "lard"
-new String('lard') === 'lard' // false
-```
-
-To make things more confusing, there are also object literals and object Objects. But object literals are still static Objects and object Objects are instantiated Objects. So an object primitive is still an object Object.
-
-However, `Object.create(null)` objects are not `instanceof Object`, however, so
-in the case of this Object we lower-case to indicate possible support for
-these objects.
-
-Basically, for primitives, we want to define the type as a primitive, because that's what we use in 99.9% of cases. For everything else, we use the type rather than the primitive. Otherwise it would all just be `{object}`.
-
-In short: It's not about consistency, rather about the 99.9% use case. (And some
-functions might not even support the objects if they are checking for identity.)
-
-type name | `typeof` | check-types | testcase
---|--|--|--
-**Array** | object | **Array** | `([]) instanceof Array` -> `true`
-**Function** | function | **function** | `(function f () {}) instanceof Function` -> `true`
-**Date** | object | **Date** | `(new Date()) instanceof Date` -> `true`
-**RegExp** | object | **RegExp** | `(new RegExp(/.+/)) instanceof RegExp` -> `true`
-Object | **object** | **object** | `({}) instanceof Object` -> `true` but `Object.create(null) instanceof Object` -> `false`
-Boolean | **boolean** | **boolean** | `(true) instanceof Boolean` -> **`false`**
-Number | **number** | **number** | `(41) instanceof Number` -> **`false`**
-String | **string** | **string** | `("test") instanceof String` -> **`false`**
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`|
-|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`|
-|Closure-only|`package`, `private`, `protected`, `public`, `static`|
-|Options|`noDefaults`, `exemptTagContexts`, `unifyParentAndChildTypeChecks`|
-|Settings|`preferredTypes`, `mode`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param {abc} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":100}}}
-// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.
-
-/**
- * @param {Number} foo
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number".
-
-/**
- * @arg {Number} foo
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @arg "foo" type "Number"; prefer: "number".
-
-/**
- * @returns {Number} foo
- * @throws {Number} foo
- */
-function quux () {
-
-}
-// Message: Invalid JSDoc @returns type "Number"; prefer: "number".
-
-/**
- * @param {(Number|string|Boolean)=} foo
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number".
-
-/**
- * @param {Array.<Number|String>} foo
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number".
-
-/**
- * @param {(Number|String)[]} foo
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Invalid JSDoc @param "foo" type "Number"; prefer: "number".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}}
-// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":{"replacement":"Abc"},"string":"Str"}}}
-// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"string":"Str"}}}
-// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- * @param {cde} bar
- * @param {object} baz
- */
-function qux(foo, bar, baz) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"; prefer: \"Abc\".","replacement":"Abc"},"cde":{"message":"More messed up JSDoc @{{tagName}}{{tagValue}} type \"cde\"; prefer: \"Cde\".","replacement":"Cde"},"object":"Object"}}}
-// Message: Messed up JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\".","replacement":false},"string":"Str"}}}
-// Message: Messed up JSDoc @param "foo" type "abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":{"message":"Messed up JSDoc @{{tagName}}{{tagValue}} type \"abc\"."},"string":"Str"}}}
-// Message: Messed up JSDoc @param "foo" type "abc".
-
-/**
- * @param {abc} foo
- * @param {Number} bar
- */
-function qux(foo, bar) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}}
-// Options: [{"noDefaults":true}]
-// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- * @param {Number} bar
- */
-function qux(foo, bar) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}}
-// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":false,"string":"Str"}}}
-// Message: Invalid JSDoc @param "foo" type "abc".
-
-/**
- * @param {abc} foo
- */
-function qux(foo) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":false}}}
-// Message: Invalid JSDoc @param "foo" type "abc".
-
-/**
- * @param {*} baz
- */
-function qux(baz) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"*":false,"abc":"Abc","string":"Str"}}}
-// Message: Invalid JSDoc @param "baz" type "*".
-
-/**
- * @param {*} baz
- */
-function qux(baz) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"*":"aaa","abc":"Abc","string":"Str"}}}
-// Message: Invalid JSDoc @param "baz" type "*"; prefer: "aaa".
-
-/**
- * @param {abc} foo
- * @param {Number} bar
- */
-function qux(foo, bar) {
-}
-// Settings: {"jsdoc":{"preferredTypes":{"abc":"Abc","string":"Str"}}}
-// Message: Invalid JSDoc @param "foo" type "abc"; prefer: "Abc".
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray".
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray","Array.<>":"GenericArray"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray".
-
-/**
- * @param {Array.<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray".
-
-/**
- * @param {Array<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "GenericArray".
-
-/**
- * @param {string[]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}}
-// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray".
-
-/**
- * @param {string[]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "SpecialTypeArray".
-
-/**
- * @param {string[]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "SpecialTypeArray".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object.<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject","object<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object.<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object.<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object.<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":false}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object".
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":false}}}
-// Message: Invalid JSDoc @param "foo" type "object".
-
-/**
- * @param {object.<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- * @param {object<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "GenericObject".
-
-/**
- *
- * @param {string[][]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array."}}}
-// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.".
-
-/**
- *
- * @param {string[][]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array.<>"}}}
-// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array.<>".
-
-/**
- *
- * @param {string[][]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"Array<>"}}}
-// Message: Invalid JSDoc @param "foo" type "[]"; prefer: "Array<>".
-
-/**
- *
- * @param {object.<string, object.<string, string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object".
-
-/**
- *
- * @param {object.<string, object.<string, string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object.":"Object<>"}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".
-
-/**
- *
- * @param {object<string, object<string, string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object."}}}
-// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object.".
-
-/**
- *
- * @param {Array.<Array.<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.":"[]"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]".
-
-/**
- *
- * @param {Array.<Array.<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.":"Array<>"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array<>".
-
-/**
- *
- * @param {Array.<Array.<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>".
-
-/**
- *
- * @param {Array.<MyArray.<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.":"<>"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "<>".
-
-/**
- *
- * @param {Array.<MyArray.<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"MyArray.":"<>"}}}
-// Message: Invalid JSDoc @param "foo" type "MyArray"; prefer: "<>".
-
-/**
- *
- * @param {Array<Array<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"<>":"Array."}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.".
-
-/**
- *
- * @param {Array<Array<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"Array."}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "Array.".
-
-/**
- *
- * @param {Array<Array<string>>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"<>":"[]"}}}
-// Message: Invalid JSDoc @param "foo" type "Array"; prefer: "[]".
-
-/** @typedef {String} foo */
-// Message: Invalid JSDoc @typedef "foo" type "String"; prefer: "string".
-
-/**
- * @this {array}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Invalid JSDoc @this type "array"; prefer: "Array".
-
-/**
- * @export {array}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Invalid JSDoc @export type "array"; prefer: "Array".
-
-/**
- * @typedef {object} foo
- * @property {object} bar
- */
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":true}]}]
-// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object".
-
-/** @typedef {object} foo */
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":["array"]}]}]
-// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object".
-
-/**
- * @typedef {object} foo
- * @property {object} bar
- */
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}]
-// Message: Invalid JSDoc @property "bar" type "object"; prefer: "Object".
-
-/** @typedef {object<string, string>} foo */
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":["object"]}]}]
-// Message: Invalid JSDoc @typedef "foo" type "object"; prefer: "Object<>".
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param {number} foo
- * @param {Bar} bar
- * @param {*} baz
- */
-function quux (foo, bar, baz) {
-
-}
-
-/**
- * @arg {number} foo
- * @arg {Bar} bar
- * @arg {*} baz
- */
-function quux (foo, bar, baz) {
-
-}
-
-/**
- * @param {(number|string|boolean)=} foo
- */
-function quux (foo, bar, baz) {
-
-}
-
-/**
- * @param {typeof bar} foo
- */
-function qux(foo) {
-}
-
-/**
- * @param {import('./foo').bar.baz} foo
- */
-function qux(foo) {
-}
-
-/**
- * @param {(x: number, y: string) => string} foo
- */
-function qux(foo) {
-}
-
-/**
- * @param {() => string} foo
- */
-function qux(foo) {
-}
-
-/**
- * @returns {Number} foo
- * @throws {Number} foo
- */
-function quux () {
-
-}
-// Options: [{"noDefaults":true}]
-
-/**
- * @param {Object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param {Array.<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}}
-
-/**
- * @param {Array<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"GenericArray"}}}
-
-/**
- * @param {string[]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array":"SpecialTypeArray","Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}}
-
-/**
- * @param {string[]} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"SpecialTypeArray","Array<>":"SpecialTypeArray"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}}
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"[]":"SpecialTypeArray"}}}
-// Options: [{"unifyParentAndChildTypeChecks":true}]
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array.<>":"GenericArray"}}}
-
-/**
- * @param {Array} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"Array<>":"GenericArray"}}}
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param {object.<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-
-/**
- * @param {object<string>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-
-/**
- * @param {object.<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-
-/**
- * @param {object<string, number>} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object":"GenericObject"}}}
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object.<>":"GenericObject"}}}
-
-/**
- * @param {object} foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"GenericObject"}}}
-
-/**
- * @param {Number<} Ignore the error as not a validating rule
- */
-function quux (foo) {
-
-}
-
-/** @param {function(...)} callback The function to invoke. */
-var subscribe = function(callback) {};
-
-/**
- * @this {Array}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @export {Array}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/** @type {new() => EntityBase} */
-
-/** @typedef {object} foo */
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":true}]}]
-
-/** @typedef {object<string, string>} foo */
-// Settings: {"jsdoc":{"preferredTypes":{"object":"Object"}}}
-
-/** @typedef {object<string, string>} foo */
-// Settings: {"jsdoc":{"preferredTypes":{"object<>":"Object<>"}}}
-// Options: [{"exemptTagContexts":[{"tag":"typedef","types":["object<string, string>"]}]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-check-values"></a>
-### <code>check-values</code>
-
-This rule checks the values for a handful of tags:
-
-1. `@version` - Checks that there is a present and valid
-    [semver](https://semver.org/) version value.
-2. `@since` - As with `@version`
-3. `@license` - Checks that there is a present and valid SPDX identifier
-    or is present within an `allowedLicenses` option.
-4. `@author` - Checks there is a value present, and if the option
-    `allowedAuthors` is present, ensure that the author value is one
-    of these array items.
-
-<a name="eslint-plugin-jsdoc-rules-check-values-options-7"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-check-values-options-7-allowedauthors"></a>
-##### <code>allowedAuthors</code>
-
-An array of allowable author values. If absent, only non-whitespace will
-be checked for.
-
-<a name="eslint-plugin-jsdoc-rules-check-values-options-7-allowedlicenses"></a>
-##### <code>allowedLicenses</code>
-
-An array of allowable license values or `true` to allow any license text.
-If present as an array, will be used in place of SPDX identifiers.
-
-<a name="eslint-plugin-jsdoc-rules-check-values-options-7-licensepattern"></a>
-##### <code>licensePattern</code>
-
-A string to be converted into a `RegExp` (with `u` flag) and whose first
-parenthetical grouping, if present, will match the portion of the license
-description to check (if no grouping is present, then the whole portion
-matched will be used). Defaults to `([^\n]*)`, i.e., the SPDX expression
-is expected before any line breaks.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`@version`, `@since`, `@license`, `@author`|
-|Options|`allowedAuthors`, `allowedLicenses`, `licensePattern`|
-|Settings|`tagNamePreference`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @version
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @version.
-
-/**
- * @version 3.1
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @version: "3.1".
-
-/**
- * @since
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @since.
-
-/**
- * @since 3.1
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @since: "3.1".
-
-/**
- * @license
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @license.
-
-/**
- * @license FOO
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @license: "FOO"; expected SPDX expression: https://spdx.org/licenses/.
-
-/**
- * @license FOO
- */
-function quux (foo) {
-
-}
-// Options: [{"allowedLicenses":["BAR","BAX"]}]
-// Message: Invalid JSDoc @license: "FOO"; expected one of BAR, BAX.
-
-/**
- * @license MIT-7
- * Some extra text...
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @license: "MIT-7"; expected SPDX expression: https://spdx.org/licenses/.
-
-/**
- * @license (MIT OR GPL-2.5)
- */
-function quux (foo) {
-
-}
-// Message: Invalid JSDoc @license: "(MIT OR GPL-2.5)"; expected SPDX expression: https://spdx.org/licenses/.
-
-/**
- * @license MIT
- * Some extra text
- */
-function quux (foo) {
-
-}
-// Options: [{"licensePattern":"[\\s\\S]*"}]
-// Message: Invalid JSDoc @license: "MIT
-Some extra text"; expected SPDX expression: https://spdx.org/licenses/.
-
-/**
- * @author
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @author.
-
-/**
- * @author Brett Zamir
- */
-function quux (foo) {
-
-}
-// Options: [{"allowedAuthors":["Gajus Kuizinas","golopot"]}]
-// Message: Invalid JSDoc @author: "Brett Zamir"; expected one of Gajus Kuizinas, golopot.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @version 3.4.1
- */
-function quux (foo) {
-
-}
-
-/**
- * @version      3.4.1
- */
-function quux (foo) {
-
-}
-
-/**
- * @since 3.4.1
- */
-function quux (foo) {
-
-}
-
-/**
- * @since      3.4.1
- */
-function quux (foo) {
-
-}
-
-/**
- * @license MIT
- */
-function quux (foo) {
-
-}
-
-/**
- * @license MIT
- * Some extra text...
- */
-function quux (foo) {
-
-}
-
-/**
- * @license (MIT OR GPL-2.0)
- */
-function quux (foo) {
-
-}
-
-/**
- * @license FOO
- */
-function quux (foo) {
-
-}
-// Options: [{"allowedLicenses":["FOO","BAR","BAX"]}]
-
-/**
- * @license FOO
- */
-function quux (foo) {
-
-}
-// Options: [{"allowedLicenses":true}]
-
-/**
- * @license MIT
- * Some extra text
- */
-function quux (foo) {
-
-}
-// Options: [{"licensePattern":"[^\n]*"}]
-
-/**
- * @author Gajus Kuizinas
- */
-function quux (foo) {
-
-}
-
-/**
- * @author Brett Zamir
- */
-function quux (foo) {
-
-}
-// Options: [{"allowedAuthors":["Gajus Kuizinas","golopot","Brett Zamir"]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-empty-tags"></a>
-### <code>empty-tags</code>
-
-Expects the following tags to be empty of any content:
-
-- `@abstract`
-- `@async`
-- `@generator`
-- `@global`
-- `@hideconstructor`
-- `@ignore`
-- `@inheritdoc`
-- `@inner`
-- `@instance`
-- `@override`
-- `@readonly`
-
-The following will also be expected to be empty unless `settings.jsdoc.mode`
-is set to "closure" (which allows types).
-
-- `@package`
-- `@private`
-- `@protected`
-- `@public`
-- `@static`
-
-Note that `@private` will still be checked for content by this rule even with
-`settings.jsdoc.ignorePrivate` set to `true` (a setting which normally
-causes rules not to take effect).
-
-<a name="eslint-plugin-jsdoc-rules-empty-tags-options-8"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-empty-tags-options-8-tags"></a>
-##### <code>tags</code>
-
-If you want additional tags to be checked for their descriptions, you may
-add them within this option.
-
-```js
-{
-  'jsdoc/empty-tags': ['error', {tags: ['event']}]
-}
-```
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags| and others added by `tags`|
-|Aliases||
-|Options|`tags`|
-The following patterns are considered problems:
-
-````js
-/**
- * @abstract extra text
- */
-function quux () {
-
-}
-// Message: @abstract should be empty.
-
-/**
- * @abstract extra text
- * @inheritdoc
- * @async out of place
- */
-function quux () {
-
-}
-// Message: @abstract should be empty.
-
-/**
- * @event anEvent
- */
-function quux () {
-
-}
-// Options: [{"tags":["event"]}]
-// Message: @event should be empty.
-
-/**
- * @private {someType}
- */
-function quux () {
-
-}
-// Message: @private should be empty.
-
-/**
- * @private {someType}
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-// Message: @private should be empty.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @abstract
- */
-function quux () {
-
-}
-
-/**
- *
- */
-function quux () {
-
-}
-
-/**
- * @param aName
- */
-function quux () {
-
-}
-
-/**
- * @abstract
- * @inheritdoc
- * @async
- */
-function quux () {
-
-}
-
-/**
- * @private {someType}
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @private
- */
-function quux () {
-
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-implements-on-classes"></a>
-### <code>implements-on-classes</code>
-
-Reports an issue with any non-constructor function using `@implements`.
-
-Constructor functions, whether marked with `@class`, `@constructs`, or being
-an ES6 class constructor, will not be flagged.
-
-To indicate that a function follows another function's signature, one might
-instead use `@type` to indicate the `@function` or `@callback` to which the
-funciton is adhering.
-
-<a name="eslint-plugin-jsdoc-rules-implements-on-classes-options-9"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-implements-on-classes-options-9-contexts"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`implements` (prevented)|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @implements {SomeClass}
- */
-function quux () {
-
-}
-// Message: @implements used on a non-constructor function
-
-/**
- * @implements {SomeClass}
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: @implements used on a non-constructor function
-
-/**
- * @function
- * @implements {SomeClass}
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: @implements used on a non-constructor function
-
-/**
- * @callback
- * @implements {SomeClass}
- */
-// Options: [{"contexts":["any"]}]
-// Message: @implements used on a non-constructor function
-
-/**
- * @implements {SomeClass}
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}}
-// Message: Unexpected tag `@implements`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @implements {SomeClass}
- * @class
- */
-function quux () {
-
-}
-
-/**
- * @implements {SomeClass}
- * @class
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @implements {SomeClass}
- */
-// Options: [{"contexts":["any"]}]
-
-/**
- * @implements {SomeClass}
- * @constructor
- */
-function quux () {
-
-}
-
-/**
- *
- */
-class quux {
-  /**
-   * @implements {SomeClass}
-   */
-  constructor () {
-
-  }
-}
-
-/**
- *
- */
-const quux = class {
-  /**
-   * @implements {SomeClass}
-   */
-  constructor () {
-
-  }
-}
-
-/**
- *
- */
-function quux () {
-
-}
-
-/**
- *
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"implements":false}}}
-
-/**
- * @function
- * @implements {SomeClass}
- */
-
-/**
- * @callback
- * @implements {SomeClass}
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-match-description"></a>
-### <code>match-description</code>
-
-Enforces a regular expression pattern on descriptions.
-
-The default is this basic expression to match English sentences (Support
-for Unicode upper case may be added in a future version when it can be handled
-by our supported Node versions):
-
-``^([A-Z]|[`\\d_])[\\s\\S]*[.?!`]$``
-
-Applies to the jsdoc block description and `@description` (or `@desc`)
-by default but the `tags` option (see below) may be used to match other tags.
-
-<a name="eslint-plugin-jsdoc-rules-match-description-options-10"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-match-description-options-10-matchdescription"></a>
-##### <code>matchDescription</code>
-
-You can supply your own expression to override the default, passing a
-`matchDescription` string on the options object.
-
-```js
-{
-  'jsdoc/match-description': ['error', {matchDescription: '[A-Z].*\\.'}]
-}
-```
-
-As with the default, the supplied regular expression will be applied with the
-Unicode (`"u"`) flag and is *not* case-insensitive.
-
-<a name="eslint-plugin-jsdoc-rules-match-description-options-10-tags-1"></a>
-##### <code>tags</code>
-
-If you want different regular expressions to apply to tags, you may use
-the `tags` option object:
-
-```js
-{
-  'jsdoc/match-description': ['error', {tags: {
-    param: '\\- [A-Z].*\\.',
-    returns: '[A-Z].*\\.'
-  }}]
-}
-```
-
-In place of a string, you can also add `true` to indicate that a particular
-tag should be linted with the `matchDescription` value (or the default).
-
-```js
-{
-  'jsdoc/match-description': ['error', {tags: {
-    param: true,
-    returns: true
-  }}]
-}
-```
-
-The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly
-parsed to ensure that the matched "description" text includes only the text
-after the name.
-
-All other tags will treat the text following the tag name, a space, and
-an optional curly-bracketed type expression (and another space) as part of
-its "description" (e.g., for `@returns {someType} some description`, the
-description is `some description` while for `@some-tag xyz`, the description
-is `xyz`).
-
-<a name="eslint-plugin-jsdoc-rules-match-description-options-10-maindescription"></a>
-##### <code>mainDescription</code>
-
-If you wish to override the main function description without changing the
-default `match-description`, you may use `mainDescription`:
-
-```js
-{
-  'jsdoc/match-description': ['error', {
-    mainDescription: '[A-Z].*\\.',
-    tags: {
-      param: true,
-      returns: true
-    }
-  }]
-}
-```
-
-There is no need to add `mainDescription: true`, as by default, the main
-function (and only the main function) is linted, though you may disable checking
-it by setting it to `false`.
-
-<a name="eslint-plugin-jsdoc-rules-match-description-options-10-contexts-1"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 classes).
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|docblock and `@description` by default but more with `tags`|
-|Aliases|`@desc`|
-|Settings||
-|Options|`contexts`, `tags` (accepts tags with names and optional type such as 'param', 'arg', 'argument', 'property', and 'prop', and accepts arbitrary list of other tags with an optional type (but without names), e.g., 'returns', 'return'), `mainDescription`, `matchDescription`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * foo.
- */
-const q = class {
-
-}
-// Options: [{"contexts":["ClassExpression"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-// Options: [{"contexts":["any"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-// Options: [{"contexts":["any"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-const q = {
-
-};
-// Options: [{"contexts":["ObjectExpression"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-function quux () {
-
-}
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo)
- */
-function quux () {
-
-}
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * тест.
- */
-function quux () {
-
-}
-// Options: [{"matchDescription":"[А-Я][А-я]+\\."}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Abc.
- */
-function quux () {
-
-}
-// Options: [{"mainDescription":"[А-Я][А-я]+\\.","tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo
- */
-function quux () {
-
-}
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @param foo foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @prop foo foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"prop":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @summary foo.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"summary":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @author
- */
-function quux () {
-
-}
-// Options: [{"tags":{"author":".+"}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @x-tag
- */
-function quux () {
-
-}
-// Options: [{"tags":{"x-tag":".+"}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @description foo foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"description":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo
- *
- * @param foo foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"mainDescription":"^[a-zA-Z]*$","tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo
- *
- * @param foo foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"mainDescription":false,"tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @param foo bar
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * {@see Foo.bar} buz
- */
-function quux (foo) {
-
-}
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @returns {number} foo
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"returns":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo.
- *
- * @returns foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"returns":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam,
- * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed,
- * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl,
- * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum.
- * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at,
- * consequat auctor magna. duis pharetra purus in porttitor mollis.
- */
-function longDescription (foo) {
-
-}
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @arg {number} foo - Foo
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"arg":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @argument {number} foo - Foo
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"argument":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @return {number} foo
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"return":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Returns bar.
- *
- * @return {number} bar
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"return":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @param notRet
- * @returns Тест.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"param":"[А-Я][А-я]+\\."}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @description notRet
- * @returns Тест.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"description":"[А-Я][А-я]+\\."}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-class MyClass {
-  /**
-   * Abc
-   */
-  myClassField = 1
-}
-// Options: [{"contexts":["ClassProperty"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * foo.
- */
-interface quux {
-
-}
-// Options: [{"contexts":["TSInterfaceDeclaration"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-const myObject = {
-  /**
-   * Bad description
-   */
-  myProp: true
-};
-// Options: [{"contexts":["Property"]}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * @param foo Foo bar
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Options: [{"tags":{"param":true}}]
-// Message: JSDoc description does not satisfy the regex pattern.
-
-/**
- * Foo bar
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Message: JSDoc description does not satisfy the regex pattern.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-/**
- *
- */
- function quux () {
-
- }
-
-/**
- * @param foo - Foo.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"param":true}}]
-
-/**
- * Foo.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- * Bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- *
- * Bar.
- */
-function quux () {
-
-}
-
-/**
- * Тест.
- */
-function quux () {
-
-}
-// Options: [{"matchDescription":"[А-Я][А-я]+\\."}]
-
-/**
- * @param notRet
- * @returns Тест.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"returns":"[А-Я][А-я]+\\."}}]
-
-/**
- * @param notRet
- * @description Тест.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"description":"[А-Я][А-я]+\\."}}]
-
-/**
- * Foo
- * bar.
- */
-function quux () {
-
-}
-
-/**
- * @returns Foo bar.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"returns":true}}]
-
-/**
- * @returns {type1} Foo bar.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"returns":true}}]
-
-/**
- * @description Foo bar.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"description":true}}]
-
-/**
- * Foo. {@see Math.sin}.
- */
-function quux () {
-
-}
-
-/**
- * Foo {@see Math.sin} bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo?
- *
- * Bar!
- *
- * Baz:
- *   1. Foo.
- *   2. Bar.
- */
-function quux () {
-
-}
-
-/**
- * Hello:
- * World.
- */
-function quux () {
-
-}
-
-/**
- * Hello: world.
- */
-function quux () {
-
-}
-
-/**
- * Foo
- * Bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- *
- * foo.
- */
-function quux () {
-
-}
-
-/**
- * foo.
- */
-function quux () {
-
-}
-// Options: [{"mainDescription":false}]
-
-/**
- * foo.
- */
-class quux {
-
-}
-
-/**
- * foo.
- */
-class quux {
-
-}
-// Options: [{"mainDescription":true}]
-
-class MyClass {
-  /**
-   * Abc.
-   */
-  myClassField = 1
-}
-// Options: [{"contexts":["ClassProperty"]}]
-
-/**
- * Foo.
- */
-interface quux {
-
-}
-// Options: [{"contexts":["TSInterfaceDeclaration"]}]
-
-const myObject = {
-  /**
-   * Bad description
-   */
-  myProp: true
-};
-// Options: [{"contexts":[]}]
-
-/**
- * foo.
- */
-const q = class {
-
-}
-// Options: [{"contexts":[]}]
-
-/**
- * foo.
- */
-const q = {
-
-};
-// Options: [{"contexts":[]}]
-
-/**
- * @description foo.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"param":true}}]
-
-/**
- * Foo.
- *
- * @summary Foo.
- */
-function quux () {
-
-}
-// Options: [{"tags":{"summary":true}}]
-
-/**
- * Foo.
- *
- * @author Somebody
- */
-function quux () {
-
-}
-// Options: [{"tags":{"author":".+"}}]
-
-/**
- * Foo.
- *
- * @x-tag something
- */
-function quux () {
-
-}
-// Options: [{"tags":{"x-tag":".+"}}]
-
-/**
- * Foo.
- *
- * @prop foo Foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":{"prop":true}}]
-
-/**
- * @param foo Foo bar.
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-
-/**
- *
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-newline-after-description"></a>
-### <code>newline-after-description</code>
-
-Enforces a consistent padding of the block description.
-
-<a name="eslint-plugin-jsdoc-rules-newline-after-description-options-11"></a>
-#### Options
-
-This rule allows one optional string argument. If it is `"always"` then a problem is raised when there is no newline after the description. If it is `"never"` then a problem is raised when there is a newline after the description. The default value is `"always"`.
-
-|||
-|---|---|
-|Context|everywhere|
-|Options|(a string matching `"always"|"never"`)|
-|Tags|N/A (doc block)|
-
-The following patterns are considered problems:
-
-````js
-/**
- * Foo.
- *
- * Foo.
- * @foo
- */
-function quux () {
-
-}
-// Options: ["always"]
-// Message: There must be a newline after the description of the JSDoc block.
-
-/**
- * Foo.
- * @foo
- *
- * Foo.
- */
-function quux () {
-
-}
-// Options: ["always"]
-// Message: There must be a newline after the description of the JSDoc block.
-
-/**
- * Foo.
- *
- * Foo.
- * @foo
- */
-function quux () {
-
-}
-// Message: There must be a newline after the description of the JSDoc block.
-
-/**
- * Bar.
- *
- * Bar.
- *
- * @bar
- */
-function quux () {
-
-}
-// Options: ["never"]
-// Message: There must be no newline after the description of the JSDoc block.
-
-/**
- * Bar.
- *
- * @bar
- *
- * Bar.
- */
-function quux () {
-
-}
-// Options: ["never"]
-// Message: There must be no newline after the description of the JSDoc block.
-
-
-         /**

-          * Bar.

-          *

-          * Bar.

-          *

-          * @bar

-          */

-         function quux () {

-
-         }
-// Options: ["never"]
-// Message: There must be no newline after the description of the JSDoc block.
-
-/**
- * A.
- *
- * @typedef {object} A
- * @prop {boolean} a A.
- */
-// Options: ["never"]
-// Message: There must be no newline after the description of the JSDoc block.
-
-/**
- * A.
- * @typedef {object} A
- * @prop {boolean} a A.
- */
-// Options: ["always"]
-// Message: There must be a newline after the description of the JSDoc block.
-
-
-     /**

-      * Service for fetching symbols.

-      * @param {object} $http - Injected http helper.

-      * @param {object} $q - Injected Promise api helper.

-      * @param {object} $location - Injected window location object.

-      * @param {object} REPORT_DIALOG_CONSTANTS - Injected handle.

-      */
-// Message: There must be a newline after the description of the JSDoc block.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * Foo.
- */
-function quux () {
-
-}
-// Options: ["always"]
-
-/**
- * Bar.
- */
-function quux () {
-
-}
-// Options: ["never"]
-
-/**
- * Foo.
- *
- * @foo
- */
-function quux () {
-
-}
-// Options: ["always"]
-
-/**
- * Bar.
- * @bar
- */
-function quux () {
-
-}
-// Options: ["never"]
-
-
-     /**

-      * @foo

-      * Test 

-      * abc 

-      * @bar 

-      */
-
-
-     /**

-      * 

-      * @foo

-      * Test 

-      * abc 

-      * @bar 

-      */
-
-/***
- *
- */
-function quux () {
-
-}
-// Options: ["always"]
-
-/**

- * Parses query string to object containing URL parameters

- * 

- * @param queryString

- * Input string

- * 

- * @returns

- * Object containing URL parameters

- */

-export function parseQueryString(queryString: string): { [key: string]: string } {    // <-- Line 10 that fails

-
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-no-types"></a>
-### <code>no-types</code>
-
-This rule reports types being used on `@param` or `@returns`.
-
-The rule is intended to prevent the indication of types on tags where
-the type information would be redundant with TypeScript.
-
-<a name="eslint-plugin-jsdoc-rules-no-types-options-12"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-no-types-options-12-contexts-2"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`param`, `returns`|
-|Aliases|`arg`, `argument`, `return`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param {number} foo
- */
-function quux (foo) {
-
-}
-// Message: Types are not permitted on @param.
-
-/**
- * @param {number} foo
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: Types are not permitted on @param.
-
-/**
- * @function
- * @param {number} foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Types are not permitted on @param.
-
-/**
- * @callback
- * @param {number} foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Types are not permitted on @param.
-
-/**
- * @returns {number}
- */
-function quux () {
-
-}
-// Message: Types are not permitted on @returns.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo
- */
-// Options: [{"contexts":["any"]}]
-
-/**
- * @function
- * @param {number} foo
- */
-
-/**
- * @callback
- * @param {number} foo
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-no-undefined-types"></a>
-### <code>no-undefined-types</code>
-
-Checks that types in jsdoc comments are defined. This can be used to check
-unimported types.
-
-When enabling this rule, types in jsdoc comments will resolve as used
-variables, i.e. will not be marked as unused by `no-unused-vars`.
-
-In addition to considering globals found in code (or in ESLint-indicated
-`globals`) as defined, the following tags will also be checked for
-name(path) definitions to also serve as a potential "type" for checking
-the tag types in the table below:
-
-`@callback`, `@class` (or `@constructor`), `@constant` (or `@const`), `@event`, `@external` (or `@host`), `@function` (or `@func` or `@method`), `@interface`, `@member` (or `@var`), `@mixin`, `@name`, `@namespace`, `@template` (for "closure" or "typescript" `settings.jsdoc.mode` only), `@typedef`.
-
-The following tags will also be checked but only when the mode is `closure`:
-
-`@package`, `@private`, `@protected`, `@public`, `@static`
-
-The following types are always considered defined.
-
-- `null`, `undefined`, `void`, `string`, `boolean`, `object`,
-  `function`, `symbol`
-- `number`, `bigint`, `NaN`, `Infinity`
-- `any`, `*`
-- `Array`, `Object`, `RegExp`, `Date`, `Function`
-
-Note that preferred types indicated within `settings.jsdoc.preferredTypes` will
-also be assumed to be defined.
-
-<a name="eslint-plugin-jsdoc-rules-no-undefined-types-options-13"></a>
-#### Options
-
-An option object may have the following key:
-
-- `definedTypes` - This array can be populated to indicate other types which
-  are automatically considered as defined (in addition to globals, etc.).
-  Defaults to an empty array.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`augments`, `class`, `constant`, `enum`, `implements`, `member`, `module`, `namespace`, `param`, `property`, `returns`, `throws`, `type`, `typedef`, `yields`|
-|Aliases|`constructor`, `const`, `extends`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`|
-|Closure-only|`package`, `private`, `protected`, `public`, `static`|
-|Options|`definedTypes`|
-|Settings|`preferredTypes`, `mode`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param {HerType} baz - Foo.
- */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"HerType":1000}}}
-// Message: Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.
-
-/**
- * @param {HerType} baz - Foo.
- */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"HerType":false}}}
-// Message: The type 'HerType' is undefined.
-
-/**
- * @param {strnig} foo - Bar.
- */
-function quux(foo) {
-
-}
-// Message: The type 'strnig' is undefined.
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- */
-function quux(foo, bar) {
-
-}
-// Options: [{"definedTypes":["MyType"]}]
-// Message: The type 'HisType' is undefined.
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- * @param {HerType} baz - Foo.
- */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":"HerType"}}}}
-// Options: [{"definedTypes":["MyType"]}]
-// Message: The type 'HisType' is undefined.
-
- /**
-  * @param {MyType} foo - Bar.
-  * @param {HisType} bar - Foo.
-  * @param {HerType} baz - Foo.
-  */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":false},"histype":"HisType"}}}
-// Options: [{"definedTypes":["MyType"]}]
-// Message: The type 'HerType' is undefined.
-
-/**
- * @template TEMPLATE_TYPE
- * @param {WRONG_TEMPLATE_TYPE} bar
- */
-function foo (bar) {
-};
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: The type 'WRONG_TEMPLATE_TYPE' is undefined.
-
-class Foo {
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  bar () {
-  }
-}
-// Message: The type 'TEMPLATE_TYPE' is undefined.
-
-class Foo {
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  invalidTemplateReference () {
-  }
-}
-
-/**
- * @template TEMPLATE_TYPE
- */
-class Bar {
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  validTemplateReference () {
-  }
-}
-// Settings: {"jsdoc":{"mode":"typescript"}}
-// Message: The type 'TEMPLATE_TYPE' is undefined.
-
-/**
- * @type {strnig}
- */
-var quux = {
-
-};
-// Message: The type 'strnig' is undefined.
-
-/**
- * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B
- */
-class Foo {
-  /**
-   * @param {TEMPLATE_TYPE_A} baz
-   * @return {TEMPLATE_TYPE_B}
-   */
-  bar (baz) {
-  }
-}
-// Message: The type 'TEMPLATE_TYPE_A' is undefined.
-
-/**
- * @param {...VAR_TYPE} varargs
- */
-function quux (varargs) {
-}
-// Message: The type 'VAR_TYPE' is undefined.
-
-/**
- * @this {Navigator}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: The type 'Navigator' is undefined.
-
-/**
- * @export {SomeType}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: The type 'SomeType' is undefined.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param {string} foo - Bar.
- */
-function quux(foo) {
-
-}
-
-/**
- * @param {Promise} foo - Bar.
- */
-function quux(foo) {
-
-}
-
-class MyClass {}
-
-/**
- * @param {MyClass} foo - Bar.
- */
-function quux(foo) {
-  console.log(foo);
-}
-
-quux(0);
-
-const MyType = require('my-library').MyType;
-
-/**
- * @param {MyType} foo - Bar.
- */
-  function quux(foo) {
-
-}
-
-const MyType = require('my-library').MyType;
-
-/**
- * @param {MyType} foo - Bar.
- */
-  function quux(foo) {
-
-}
-
-import {MyType} from 'my-library';
-
-/**
- * @param {MyType} foo - Bar.
- * @param {object<string, number>} foo
- * @param {Array<string>} baz
- */
-  function quux(foo, bar, baz) {
-
-}
-
-/*globals MyType*/
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- */
-  function quux(foo, bar) {
-
-}
-
-/**
- * @typedef {object} hello
- * @property {string} a - a.
- */
-
-/**
- * @param {hello} foo
- */
-function quux(foo) {
-
-}
-
-/**
- * @param {Array<syntaxError} foo
- */
-function quux(foo) {
-
-}
-
-/**
- * Callback test.
- *
- * @callback addStuffCallback
- * @param {String} sum - An test integer.
- */
-/**
- * Test Eslint.
- *
- * @param {addStuffCallback} callback - A callback to run.
- */
-function testFunction(callback) {
-  callback();
-}
-
-/**
- *
- *
- */
-function foo () {
-
-}
-
-/**
- *
- *
- */
-function foo () {
-
-}
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- */
-function quux(foo, bar) {
-
-}
-// Options: [{"definedTypes":["MyType","HisType"]}]
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- * @param {HerType} baz - Foo.
- */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":"HerType"},"histype":"HisType"}}}
-// Options: [{"definedTypes":["MyType"]}]
-
-/**
- * @param {MyType} foo - Bar.
- * @param {HisType} bar - Foo.
- * @param {HerType} baz - Foo.
- */
-function quux(foo, bar, baz) {
-
-}
-// Settings: {"jsdoc":{"preferredTypes":{"hertype":{"replacement":"HerType<>"},"histype":"HisType.<>"}}}
-// Options: [{"definedTypes":["MyType"]}]
-
-/**
- * @template TEMPLATE_TYPE
- * @param {TEMPLATE_TYPE} bar
- * @return {TEMPLATE_TYPE}
- */
-function foo (bar) {
-};
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @template TEMPLATE_TYPE
- */
-class Foo {
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  bar () {
-  }
-}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @template TEMPLATE_TYPE
- */
-class Foo {
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  bar () {}
-
-  /**
-   * @return {TEMPLATE_TYPE}
-   */
-  baz () {}
-}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @template TEMPLATE_TYPE_A, TEMPLATE_TYPE_B
- */
-class Foo {
-  /**
-   * @param {TEMPLATE_TYPE_A} baz
-   * @return {TEMPLATE_TYPE_B}
-   */
-  bar (baz) {
-  }
-}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/****/
-
-/**
- *
- */
-function quux () {
-
-}
-
-/**
- * Run callback when hooked method is called.
- *
- * @template {BaseObject} T
- * @param {T} obj - object whose method should be hooked.
- * @param {string} method - method which should be hooked.
- * @param {(sender: T) => void} callback - callback which should
- * be called when the hooked method was invoked.
- */
-function registerEvent(obj, method, callback) {
-
-}
-// Settings: {"jsdoc":{"mode":"typescript"}}
-
- /**
- * @param {...} varargs
- */
-function quux (varargs) {
-}
-
-/**
- * @param {...number} varargs
- */
-function quux (varargs) {
-}
-
-class Navigator {}
-/**
- * @this {Navigator}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-class SomeType {}
-/**
- * @export {SomeType}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence"></a>
-### <code>require-description-complete-sentence</code>
-
-Requires that block description, explicit `@description`, and `@param`/`@returns`
-tag descriptions are written in complete sentences, i.e.,
-
-* Description must start with an uppercase alphabetical character.
-* Paragraphs must start with an uppercase alphabetical character.
-* Sentences must end with a period.
-* Every line in a paragraph (except the first) which starts with an uppercase
-  character must be preceded by a line ending with a period.
-* A colon or semi-colon followed by two line breaks is still part of the
-  containing paragraph (unlike normal dual line breaks).
-* Text within inline tags `{...}` are not checked for sentence divisions.
-* Periods after items within the `abbreviations` option array are not treated
-  as sentence endings.
-
-<a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-14"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-14-tags-2"></a>
-##### <code>tags</code>
-
-If you want additional tags to be checked for their descriptions, you may
-add them within this option.
-
-```js
-{
-  'jsdoc/require-description-complete-sentence': ['error', {tags: ['see', 'copyright']}]
-}
-```
-
-The tags `@param`/`@arg`/`@argument` and `@property`/`@prop` will be properly
-parsed to ensure that the checked "description" text includes only the text
-after the name.
-
-All other tags will treat the text following the tag name, a space, and
-an optional curly-bracketed type expression (and another space) as part of
-its "description" (e.g., for `@returns {someType} some description`, the
-description is `some description` while for `@some-tag xyz`, the description
-is `xyz`).
-
-<a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-14-abbreviations"></a>
-##### <code>abbreviations</code>
-
-You can provide an `abbreviations` options array to avoid such strings of text
-being treated as sentence endings when followed by dots. The `.` is not
-necessary at the end of the array items.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|doc block, `param`, `returns`, `description`, `property`, `summary`, `file`, `classdesc`, `todo`, `deprecated`, `throws`, 'yields' and others added by `tags`|
-|Aliases|`arg`, `argument`, `return`, `desc`, `prop`, `fileoverview`, `overview`, `exception`, `yield`|
-|Options|`tags`, `abbreviations`|
-The following patterns are considered problems:
-
-````js
-/**
- * foo.
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * foo?
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * @description foo.
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Foo)
- */
-function quux () {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * `foo` is a variable
- */
-function quux () {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * Foo.
- *
- * foo.
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * тест.
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Foo
- */
-function quux () {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * Foo
- * Bar.
- */
-function quux () {
-
-}
-// Message: A line of text is started with an uppercase character, but preceding line does not end the sentence.
-
-/**
- * Foo.
- *
- * @param foo foo.
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Foo.
- *
- * @param foo bar
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * {@see Foo.bar} buz
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Foo.
- *
- * @returns {number} foo
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Foo.
- *
- * @returns foo.
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * lorem ipsum dolor sit amet, consectetur adipiscing elit. pellentesque elit diam,
- * iaculis eu dignissim sed, ultrices sed nisi. nulla at ligula auctor, consectetur neque sed,
- * tincidunt nibh. vivamus sit amet vulputate ligula. vivamus interdum elementum nisl,
- * vitae rutrum tortor semper ut. morbi porta ante vitae dictum fermentum.
- * proin ut nulla at quam convallis gravida in id elit. sed dolor mauris, blandit quis ante at,
- * consequat auctor magna. duis pharetra purus in porttitor mollis.
- */
-function longDescription (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * @arg {number} foo - Foo
- */
-function quux (foo) {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * @argument {number} foo - Foo
- */
-function quux (foo) {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * @return {number} foo
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Returns bar.
- *
- * @return {number} bar
- */
-function quux (foo) {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * @throws {object} Hello World
- * hello world
-*/
-// Message: Sentence must end with a period.
-
-/**
- * @summary Foo
- */
-function quux () {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * @throws {SomeType} Foo
- */
-function quux () {
-
-}
-// Message: Sentence must end with a period.
-
-/**
- * @see Foo
- */
-function quux () {
-
-}
-// Options: [{"tags":["see"]}]
-// Message: Sentence must end with a period.
-
-/**
- * @param foo Foo bar
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Options: [{"tags":["param"]}]
-// Message: Sentence must end with a period.
-
-/**
- * Sorry, but this isn't a complete sentence, Mr.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-// Message: Sentence must end with a period.
-
-/**
- * Sorry, but this isn't a complete sentence Mr.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr."]}]
-// Message: Sentence must end with a period.
-
-/**
- * Sorry, but this isn't a complete sentence Mr. 
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-// Message: Sentence must end with a period.
-
-/**
- * Sorry, but this isn't a complete sentence Mr. and Mrs.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr","Mrs"]}]
-// Message: Sentence must end with a period.
-
-/**
- * This is a complete sentence. But this isn't, Mr.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-// Message: Sentence must end with a period.
-
-/**
- * This is a complete Mr. sentence. But this isn't, Mr.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-// Message: Sentence must end with a period.
-
-/**
- * This is a complete Mr. sentence.
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * This is fun, i.e. enjoyable, but not superlatively so, e.g. not
- * super, wonderful, etc..
- */
-function quux () {
-
-}
-// Message: Sentence should start with an uppercase character.
-
-/**
- * Do not have dynamic content; e.g. homepage. Here a simple unique id
- * suffices.
- */
- function quux () {
-
- }
-// Message: Sentence should start with an uppercase character.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo - Foo.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- * Bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- *
- * Bar.
- */
-function quux () {
-
-}
-
-/**
- * Тест.
- */
-function quux () {
-
-}
-
-/**
- * Foo
- * bar.
- */
-function quux () {
-
-}
-
-/**
- * @returns Foo bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo. {@see Math.sin}.
- */
-function quux () {
-
-}
-
-/**
- * Foo {@see Math.sin} bar.
- */
-function quux () {
-
-}
-
-/**
- * Foo?
- *
- * Bar!
- *
- * Baz:
- *   1. Foo.
- *   2. Bar.
- */
-function quux () {
-
-}
-
-/**
- * Hello:
- * World.
- */
-function quux () {
-
-}
-
-/**
- * Hello: world.
- */
-function quux () {
-
-}
-
-/**
- *
- */
-function quux () {
-
-}
-
-/**
- * @description Foo.
- */
-function quux () {
-
-}
-
-/**
- * `foo` is a variable.
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- *
- * `foo`.
- */
-function quux () {
-
-}
-
-/**
- * @param foo - `bar`.
- */
-function quux () {
-
-}
-
-/**
- * @returns {number} `foo`.
- */
-function quux () {
-
-}
-
-/**
- * Foo
- * `bar`.
- */
-function quux () {
-
-}
-
-/**
- * @example Foo
- */
-function quux () {
-
-}
-
-/**
- * @see Foo
- */
-function quux () {
-
-}
-
-/**
- * Foo.
- *
- * @param foo Foo.
- */
-function quux (foo) {
-
-}
-
-/**
- * Foo.
- *
- * @param foo Foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"tags":["param"]}]
-
-/**
- * @param foo Foo bar.
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Options: [{"tags":["param"]}]
-
-/**
- *
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-
-/**
-* We stop loading Items when we have loaded:
-*
-* 1) The main Item;
-* 2) All its variants.
-*/
-
-/**
- * This method is working on 2 steps.
- *
- * | Step | Comment     |
- * |------|-------------|
- * |   1  | do it       |
- * |   2  | do it again |
- */
-
-/**
- * This is something that
- * I want to test.
- */
-function quux () {
-
-}
-
-/**
- * When making HTTP requests, the
- * URL is super important.
- */
-function quux () {
-
-}
-
-/**
- * Sorry, but this isn't a complete sentence, Mr.
- */
-function quux () {
-
-}
-
-/**
- * Sorry, but this isn't a complete sentence Mr..
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr."]}]
-
-/**
- * Sorry, but this isn't a complete sentence Mr. 
- */
-function quux () {
-
-}
-
-/**
- * Sorry, but this isn't a complete sentence Mr. and Mrs..
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr","Mrs"]}]
-
-/**
- * This is a complete sentence aMr.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-
-/**
- * This is a complete sentence. But this isn't, Mr.
- */
-function quux () {
-
-}
-
-/**
- * This is a complete Mr. Sentence. But this isn't, Mr.
- */
-function quux () {
-
-}
-
-/**
- * This is a complete Mr. sentence.
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["Mr"]}]
-
-/**
- * This is fun, i.e. enjoyable, but not superlatively so, e.g. not
- * super, wonderful, etc..
- */
-function quux () {
-
-}
-// Options: [{"abbreviations":["etc","e.g.","i.e."]}]
-
-
-**
-* Do not have dynamic content; e.g. homepage. Here a simple unique id
-* suffices.
-*/
-function quux () {
-
-}
-// Options: [{"abbreviations":["etc","e.g.","i.e."]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-description"></a>
-### <code>require-description</code>
-
-Requires that all functions have a description.
-
-* All functions must have an implicit description or have the option
-  `descriptionStyle` set to `tag`.
-* Every jsdoc block description (or description tag if `descriptionStyle` is
-  `"tag"`) must have a non-empty description that explains the purpose of the
-  method.
-
-<a name="eslint-plugin-jsdoc-rules-require-description-options-15"></a>
-#### Options
-
-An options object may have any of the following properties:
-
-- `contexts` - Set to an array of strings representing the AST context
-  where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6
-  classes). Overrides the default contexts (see below).  Set to `"any"` if
-  you want the rule to apply to any jsdoc block throughout your files.
-- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the
-    document block avoids the need for a `@description`. Defaults to an
-    empty array.
-- `descriptionStyle` - Whether to accept implicit descriptions (`"body"`) or
-    `@description` tags (`"tag"`) as satisfying the rule. Set to `"any"` to
-    accept either style. Defaults to `"body"`.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`description` or jsdoc block|
-|Aliases|`desc`|
-|Options|`contexts`, `exemptedBy`, `descriptionStyle`|
-|Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
-
-The following patterns are considered problems:
-
-````js
-/**
- *
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"any"}]
-// Message: Missing JSDoc block description or @description declaration.
-
-/**
- *
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"body"}]
-// Message: Missing JSDoc block description.
-
-/**
- *
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-// Options: [{"contexts":["any"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- * @description
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description description.
-
-/**
- *
- */
-interface quux {
-
-}
-// Options: [{"contexts":["TSInterfaceDeclaration"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-var quux = class {
-
-};
-// Options: [{"contexts":["ClassExpression"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- *
- */
-var quux = {
-
-};
-// Options: [{"contexts":["ObjectExpression"],"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @description declaration.
-
-/**
- * @someDesc
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":{"message":"Please avoid `{{tagName}}`; use `{{replacement}}` instead","replacement":"someDesc"}}}}
-// Options: [{"descriptionStyle":"tag"}]
-// Message: Missing JSDoc @someDesc description.
-
-/**
- * @description
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Options: [{"descriptionStyle":"tag"}]
-// Message: Unexpected tag `@description`
-
-/**
- * @description
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-// Options: [{"descriptionStyle":"any"}]
-// Message: Missing JSDoc block description or @description declaration.
-
-/**
- *
- */
-function quux () {
-}
-// Options: [{"exemptedBy":["notPresent"]}]
-// Message: Missing JSDoc block description.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-/**
- * @description
- * // arbitrary description content
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- * @description
- * quux(); // does something useful
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- * @description <caption>Valid usage</caption>
- * quux(); // does something useful
- *
- * @description <caption>Invalid usage</caption>
- * quux('random unwanted arg'); // results in an error
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- *
- */
-class quux {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- *
- */
-function quux () {
-
-}
-// Options: [{"contexts":["ClassDeclaration"]}]
-
-/**
- * @type {MyCallback}
- */
-function quux () {
-
-}
-// Options: [{"exemptedBy":["type"]}]
-
-/**
- *
- */
-interface quux {
-
-}
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- *
- */
-var quux = class {
-
-};
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- *
- */
-var quux = {
-
-};
-// Options: [{"descriptionStyle":"tag"}]
-
-/**
- * Has an implicit description
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"body"}]
-
-/**
- * Has an implicit description
- */
-function quux () {
-
-}
-
-/**
- * Has an implicit description
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"any"}]
-
-/**
- * @description Has an explicit description
- */
-function quux () {
-
-}
-// Options: [{"descriptionStyle":"any"}]
-
-/**
- *
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-example"></a>
-### <code>require-example</code>
-
-Requires that all functions have examples.
-
-* All functions must have one or more `@example` tags.
-* Every example tag must have a non-empty description that explains the method's usage.
-
-<a name="eslint-plugin-jsdoc-rules-require-example-options-16"></a>
-#### Options
-
-This rule has an object option.
-
-<a name="eslint-plugin-jsdoc-rules-require-example-options-16-exemptedby"></a>
-##### <code>exemptedBy</code>
-
-Array of tags (e.g., `['type']`) whose presence on the document
-block avoids the need for an `@example`. Defaults to an empty array.
-
-<a name="eslint-plugin-jsdoc-rules-require-example-options-16-avoidexampleonconstructors"></a>
-##### <code>avoidExampleOnConstructors</code>
-
-Set to `true` to avoid the need for an example on a constructor (whether
-indicated as such by a jsdoc tag or by being within an ES6 `class`).
-Defaults to `false`.
-
-<a name="eslint-plugin-jsdoc-rules-require-example-options-16-contexts-3"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied (e.g., `ClassDeclaration` for ES6 classes).
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files.
-
-<a name="eslint-plugin-jsdoc-rules-require-example-fixer"></a>
-#### Fixer
-
-The fixer for `require-example` will add an empty `@example`, but it will still
-report a missing example description after this is added.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`example`|
-|Options|`exemptedBy`, `avoidExampleOnConstructors`, `contexts`|
-|Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
-
-The following patterns are considered problems:
-
-````js
-/**
- *
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @example declaration.
-
-/**
- * @example
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @example description.
-
-/**
- * @constructor
- */
-function f () {
-
-}
-// Settings: {"jsdoc":{"avoidExampleOnConstructors":true}}
-// Message: `settings.jsdoc.avoidExampleOnConstructors` has been removed, use options in the rule `require-example` instead.
-
-/**
- * @constructor
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @example declaration.
-
-/**
- * @constructor
- * @example
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @example description.
-
-/**
- *
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"]}]
-// Message: Missing JSDoc @example declaration.
-
-/**
- *
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @example declaration.
-
-/**
- *
- */
-function quux () {
-}
-// Options: [{"exemptedBy":["notPresent"]}]
-// Message: Missing JSDoc @example declaration.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-/**
- * @example
- * // arbitrary example content
- */
-function quux () {
-
-}
-
-/**
- * @example
- * quux(); // does something useful
- */
-function quux () {
-
-}
-
-/**
- * @example <caption>Valid usage</caption>
- * quux(); // does something useful
- *
- * @example <caption>Invalid usage</caption>
- * quux('random unwanted arg'); // results in an error
- */
-function quux () {
-
-}
-
-/**
- * @constructor
- */
-function quux () {
-
-}
-// Options: [{"avoidExampleOnConstructors":true}]
-
-/**
- * @constructor
- * @example
- */
-function quux () {
-
-}
-// Options: [{"avoidExampleOnConstructors":true}]
-
-class Foo {
-  /**
-   *
-   */
-  constructor () {
-
-  }
-}
-// Options: [{"avoidExampleOnConstructors":true}]
-
-/**
- * @inheritdoc
- */
-function quux () {
-
-}
-
-/**
- * @type {MyCallback}
- */
-function quux () {
-
-}
-// Options: [{"exemptedBy":["type"]}]
-
-/**
- * @example Some example code
- */
-class quux {
-
-}
-// Options: [{"contexts":["ClassDeclaration"]}]
-
-/**
- *
- */
-function quux () {
-
-}
-// Options: [{"contexts":["ClassDeclaration"]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-file-overview"></a>
-### <code>require-file-overview</code>
-
-Checks that:
-
-1. All files have a `@file`, `@fileoverview`, or `@overview` tag.
-2. Duplicate file overview tags within a given file will be reported
-3. File overview tags will be reported which are not, as per
-  [the docs](https://jsdoc.app/tags-file.html), "at the beginning of
-  the file"–where beginning of the file is interpreted in this rule
-  as being when the overview tag is not preceded by anything other than
-  a comment.
-
-<a name="eslint-plugin-jsdoc-rules-require-file-overview-options-17"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-file-overview-options-17-tags-3"></a>
-##### <code>tags</code>
-
-The keys of this object are tag names, and the values are configuration
-objects indicating what will be checked for these whole-file tags.
-
-Each configuration object has the following boolean keys (which default
-to `false` when this option is supplied): `mustExist`, `preventDuplicates`,
-`initialCommentsOnly`. These correspond to the three items above.
-
-When no `tags` is present, the default is:
-
-```json
-{
-  "file": {
-    "initialCommentsOnly": true,
-    "mustExist": true,
-    "preventDuplicates": true,
-  }
-}
-```
-
-You can add additional tag names and/or override `file` if you supply this
-option, e.g., in place of or in addition to `file`, giving other potential
-file global tags like `@license`, `@copyright`, `@author`, `@module` or
-`@exports`, optionally restricting them to a single use or preventing them
-from being preceded by anything besides comments.
-
-For example:
-
-```js
-{
-  "license": {
-    "mustExist": true,
-    "preventDuplicates": true,
-  }
-}
-```
-
-This would require one and only one `@license` in the file, though because
-`initialCommentsOnly` is absent and defaults to `false`, the `@license`
-can be anywhere.
-
-In the case of `@license`, you can use this rule along with the
-`check-values` rule (with its `allowedLicenses` or `licensePattern` options),
-to enforce a license whitelist be present on every JS file.
-
-Note that if you choose to use `preventDuplicates` with `license`, you still
-have a way to allow multiple licenses for the whole page by using the SPDX
-"AND" expression, e.g., `@license (MIT AND GPL-3.0)`.
-
-Note that the tag names are the main jsdoc tag name, so you should use `file`
-in this configuration object regardless of whether you have configured
-`fileoverview` instead of `file` on `tagNamePreference` (i.e., `fileoverview`
-will be checked, but you must use `file` on the configuration object).
-
-|||
-|---|---|
-|Context|Everywhere|
-|Tags|`file`; others when `tags` set|
-|Aliases|`fileoverview`, `overview`|
-|Options|`tags`|
-
-The following patterns are considered problems:
-
-````js
-
-// Message: Missing @file
-
-
-// Options: [{"tags":{"file":{"initialCommentsOnly":true,"mustExist":true,"preventDuplicates":true}}}]
-// Message: Missing @file
-
-
-// Options: [{"tags":{"file":{"mustExist":true}}}]
-// Message: Missing @file
-
-
-// Options: [{"tags":{"author":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}]
-// Message: Missing @author
-
-/**
- *
- */
-// Message: Missing @file
-
-/**
- *
- */
-function quux () {}
-// Message: Missing @file
-
-/**
- *
- */
-function quux () {}
-// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}}
-// Message: Missing @fileoverview
-
-/**
- *
- */
-function quux () {}
-// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}}
-// Message: Missing @overview
-
-/**
- *
- */
-function quux () {}
-// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}}
-// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule
-
-/**
- *
- */
-function quux () {}
-// Settings: {"jsdoc":{"tagNamePreference":{"file":false}}}
-// Options: [{"tags":{"file":{"initialCommentsOnly":false,"mustExist":true,"preventDuplicates":false}}}]
-// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule
-
-/**
- *
- */
-function quux () {}
-// Settings: {"jsdoc":{"tagNamePreference":{"file":{"message":"Don't use file"}}}}
-// Message: `settings.jsdoc.tagNamePreference` cannot block @file for the `require-file-overview` rule
-
-/**
- * @param a
- */
-function quux (a) {}
-// Message: Missing @file
-
-/**
- * @param a
- */
-function quux (a) {}
-
-/**
- * @param b
- */
-function bar (b) {}
-// Message: Missing @file
-
-/**
- * @file
- */
-
- /**
-  * @file
-  */
-// Message: Duplicate @file
-
-/**
- * @copyright
- */
-
- /**
-  * @copyright
-  */
-// Options: [{"tags":{"copyright":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}]
-// Message: Duplicate @copyright
-
-function quux () {
-}
-/**
- * @file
- */
-// Message: @file should be at the beginning of the file
-
-function quux () {
-}
-/**
- * @license
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}]
-// Message: @license should be at the beginning of the file
-
-function quux () {
-}
-/**
- * @license
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":true}}}]
-// Message: @license should be at the beginning of the file
-
-/**
- * @file
- */
-
-/**
- * @file
- */
-// Options: [{"tags":{"file":{"initialCommentsOnly":true,"preventDuplicates":true}}}]
-// Message: Duplicate @file
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @file
- */
-
-/**
- * @file
- */
-
-/**
- * @file
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":true,"preventDuplicates":true}}}]
-
-// Ok preceded by comment
-/**
- * @file
- */
-
-/**
- * @fileoverview
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"file":"fileoverview"}}}
-
-/**
- * @overview
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"file":"overview"}}}
-
-/**
- * @file Description of file
- */
-
-/**
- * @file Description of file
- */
-function quux () {
-}
-
-/**
- *
- */
-
-function quux () {
-}
-/**
- *
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}]
-
-function quux () {
-}
-/**
- *
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":false}}}]
-
-function quux () {
-}
-/**
- *
- */
-// Options: [{"tags":{"license":{"initialCommentsOnly":false,"mustExist":false,"preventDuplicates":true}}}]
-
-/**
- * @license MIT
- */
-
- var a
-
- /**
-  * @type {Array}
-  */
-// Options: [{"tags":{"license":{"initialCommentsOnly":true,"mustExist":false,"preventDuplicates":false}}}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description"></a>
-### <code>require-hyphen-before-param-description</code>
-
-Requires a hyphen before the `@param` description.
-
-<a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description-options-18"></a>
-#### Options
-
-This rule takes one optional string argument and an optional options object.
-
-If the string is `"always"` then a problem is raised when there is no hyphen
-before the description. If it is `"never"` then a problem is raised when there
-is a hyphen before the description. The default value is `"always"`.
-
-The options object may have the following properties:
-
-- `checkProperties` - Boolean on whether to also apply the rule to `@property`
-  tags.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|`param` and optionally `property`|
-|Aliases|`arg`, `argument`; optionally `prop`|
-|Options|(a string matching `"always"|"never"`) and an optional object with a `checkProperties` property|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param foo Foo.
- */
-function quux () {
-
-}
-// Options: ["always"]
-// Message: There must be a hyphen before @param description.
-
-/**
- * @param foo Foo.
- */
-function quux () {
-
-}
-// Message: There must be a hyphen before @param description.
-
-/**
- * @param foo - Foo.
- */
-function quux () {
-
-}
-// Options: ["never"]
-// Message: There must be no hyphen before @param description.
-
-/**
- * @param foo - foo
- * @param foo foo
- */
-function quux () {
-
-}
-// Options: ["always"]
-// Message: There must be a hyphen before @param description.
-
-/**
- * @param foo foo
- * bar
- * @param bar - bar
- */
-function quux () {
-
-}
-// Options: ["always"]
-// Message: There must be a hyphen before @param description.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-
-/**
- * @typedef {SomeType} ATypeDefName
- * @property foo Foo.
- */
-// Options: ["always",{"checkProperties":true}]
-// Message: There must be a hyphen before @property description.
-
-/**
- * @typedef {SomeType} ATypeDefName
- * @property foo - Foo.
- */
-// Options: ["never",{"checkProperties":true}]
-// Message: There must be no hyphen before @property description.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo - Foo.
- */
-function quux () {
-
-}
-// Options: ["always"]
-
-/**
- * @param foo Foo.
- */
-function quux () {
-
-}
-// Options: ["never"]
-
-/**
- * @param foo
- */
-function quux () {
-
-}
-
-/**
- * @typedef {SomeType} ATypeDefName
- * @property foo - Foo.
- */
-// Options: ["always",{"checkProperties":true}]
-
-/**
- * @typedef {SomeType} ATypeDefName
- * @property foo Foo.
- */
-// Options: ["never",{"checkProperties":true}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-jsdoc"></a>
-### <code>require-jsdoc</code>
-
-Checks for presence of jsdoc comments, on class declarations as well as
-functions.
-
-<a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-19"></a>
-#### Options
-
-Accepts one optional options object with the following optional keys.
-
-- `publicOnly` - This option will insist that missing jsdoc blocks are
-  only reported for function bodies / class declarations that are exported
-  from the module. May be a boolean or object. If set to `true`, the defaults
-  below will be used. If unset, jsdoc block reporting will not be limited to
-  exports.
-
-  This object supports the following optional boolean keys (`false` unless
-  otherwise noted):
-
-  - `ancestorsOnly` - Only check node ancestors to check if node is exported
-  - `esm` - ESM exports are checked for JSDoc comments (Defaults to `true`)
-  - `cjs` - CommonJS exports are checked for JSDoc comments  (Defaults to `true`)
-  - `window` - Window global exports are checked for JSDoc comments
-
-- `require` - An object with the following optional boolean keys which all
-    default to `false` except as noted, indicating the contexts where the rule
-    will apply:
-
-  - `ArrowFunctionExpression`
-  - `ClassDeclaration`
-  - `ClassExpression`
-  - `FunctionDeclaration` (defaults to `true`)
-  - `FunctionExpression`
-  - `MethodDefinition`
-
-- `contexts` - Set this to an array of strings representing the additional
-  AST contexts where you wish the rule to be applied (e.g., `Property` for
-  properties). Defaults to an empty array.
-
-- `exemptEmptyFunctions` (default: false) - When `true`, the rule will not report
-  missing jsdoc blocks above functions/methods with no parameters or return values
-  (intended where variable names are sufficient for themselves as documentation).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `ClassDeclaration`, `ClassExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|N/A|
-|Options|`publicOnly`, `require`, `contexts`, `exemptEmptyFunctions`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @func myFunction
- */
-function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":3,"minLines":2}}
-// Message: Missing JSDoc comment.
-
-/**
- * @func myFunction
- */
-
-
-function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":2}}
-// Message: Missing JSDoc comment.
-
-/** @func myFunction */ function myFunction() {
-
-}
-// Settings: {"jsdoc":{"minLines":1}}
-// Message: Missing JSDoc comment.
-
-export var test = function () {
-
-};
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-function test () {
-
-}
-export var test2 = test;
-// Options: [{"publicOnly":true,"require":{"FunctionDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-export const test = () => {
-
-};
-// Options: [{"publicOnly":true,"require":{"ArrowFunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export let test = class {
-
-};
-// Options: [{"publicOnly":true,"require":{"ClassExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export default function () {}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-export default () => {}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ArrowFunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export default (function () {})
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export default class {}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"ClassDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-function quux (foo) {
-
-}
-// Message: Missing JSDoc comment.
-
-
-// Settings: {"jsdoc":{"exemptEmptyFunctions":true}}
-// Message: `settings.jsdoc.exemptEmptyFunctions` has been removed, use options in the rule `require-jsdoc` instead.
-
-function quux (foo) {
-
-}
-// Options: [{"exemptEmptyFunctions":true}]
-// Message: Missing JSDoc comment.
-
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"minLines":2}}
-// Options: [{"exemptEmptyFunctions":true}]
-// Message: Missing JSDoc comment.
-
-function myFunction() {}
-// Message: Missing JSDoc comment.
-
-/**
- * Description for A.
- */
-class A {
-   constructor(xs) {
-        this.a = xs;
-   }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-class A {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-class A extends B {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-export class A extends B {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-export default class A extends B {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-var myFunction = () => {}
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-var myFunction = () => () => {}
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-var foo = function() {}
-// Options: [{"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-const foo = {bar() {}}
-// Options: [{"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-var foo = {bar: function() {}}
-// Options: [{"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-function foo (abc) {}
-// Options: [{"exemptEmptyFunctions":false}]
-// Message: Missing JSDoc comment.
-
-function foo () {
-  return true;
-}
-// Options: [{"exemptEmptyFunctions":false}]
-// Message: Missing JSDoc comment.
-
-module.exports = function quux () {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-module.exports = function quux () {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-module.exports = {
-  method: function() {
-
-  }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-module.exports = {
-  test: {
-    test2: function() {
-
-    }
-  }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-module.exports = {
-  test: {
-    test2: function() {
-
-    }
-  }
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-const test = module.exports = function () {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-/**
-*
-*/
-const test = module.exports = function () {
-
-}
-
-test.prototype.method = function() {}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-const test = function () {
-
-}
-module.exports = {
-  test: test
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-const test = () => {
-
-}
-module.exports = {
-  test: test
-}
-// Options: [{"publicOnly":true,"require":{"ArrowFunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-class Test {
-    method() {
-
-    }
-}
-module.exports = Test;
-// Options: [{"publicOnly":true,"require":{"MethodDefinition":true}}]
-// Message: Missing JSDoc comment.
-
-export default function quux () {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export default function quux () {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-function quux () {
-
-}
-export default quux;
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export function test() {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export function test() {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-var test = function () {
-
-}
-var test2 = 2;
-export { test, test2 }
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-var test = function () {
-
-}
-export { test as test2 }
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export default class A {
-
-}
-// Options: [{"publicOnly":true,"require":{"ClassDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-export default class A {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-var test = function () {
-
-}
-// Options: [{"publicOnly":{"window":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-window.test = function () {
-
-}
-// Options: [{"publicOnly":{"window":true},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-function test () {
-
-}
-// Options: [{"publicOnly":{"window":true}}]
-// Message: Missing JSDoc comment.
-
-module.exports = function() {
-
-}
-// Options: [{"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}]
-// Message: Missing JSDoc comment.
-
-export function someMethod() {
-
-}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-export function someMethod() {
-
-}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionDeclaration":true}}]
-// Message: Missing JSDoc comment.
-
-const myObject = {
-  myProp: true
-};
-// Options: [{"contexts":["Property"]}]
-// Message: Missing JSDoc comment.
-
-/**
- * Foo interface documentation.
- */
-export interface Foo extends Bar {
-  /**
-   * baz method documentation.
-   */
-  baz(): void;
-
-  meow(): void;
-}
-// Options: [{"contexts":["TSMethodSignature"]}]
-// Message: Missing JSDoc comment.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-var array = [1,2,3];
-array.forEach(function() {});
-
-/**
- * @class MyClass
- **/
-function MyClass() {}
-
-/**
- Function doing something
- */
-function myFunction() {}
-/**
- Function doing something
- */
-var myFunction = function() {};
-/**
- Function doing something
- */
-Object.myFunction = function () {};
-var obj = {
-   /**
-    *  Function doing something
-    **/
-    myFunction: function () {} };
-
-/**
- @func myFunction
- */
-function myFunction() {}
-/**
- @method myFunction
- */
-function myFunction() {}
-/**
- @function myFunction
- */
-function myFunction() {}
-
-/**
- @func myFunction
- */
-var myFunction = function () {}
-/**
- @method myFunction
- */
-var myFunction = function () {}
-/**
- @function myFunction
- */
-var myFunction = function () {}
-
-/**
- @func myFunction
- */
-Object.myFunction = function() {}
-/**
- @method myFunction
- */
-Object.myFunction = function() {}
-/**
- @function myFunction
- */
-Object.myFunction = function() {}
-(function(){})();
-
-var object = {
-  /**
-   *  @func myFunction - Some function
-   */
-  myFunction: function() {} }
-var object = {
-  /**
-   *  @method myFunction - Some function
-   */
-  myFunction: function() {} }
-var object = {
-  /**
-   *  @function myFunction - Some function
-   */
-  myFunction: function() {} }
-
-var array = [1,2,3];
-array.filter(function() {});
-Object.keys(this.options.rules || {}).forEach(function(name) {}.bind(this));
-var object = { name: 'key'};
-Object.keys(object).forEach(function() {})
-
-/**
- * @func myFunction
- */
-
-function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":2,"minLines":0}}
-
-/**
- * @func myFunction
- */
-
-
-function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":3,"minLines":0}}
-
-/** @func myFunction */  function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":0,"minLines":0}}
-
-/**
- * @func myFunction
- */
-
-function myFunction() {
-
-}
-// Settings: {"jsdoc":{"maxLines":3,"minLines":2}}
-
-function myFunction() {}
-// Options: [{"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}]
-
-var myFunction = function() {}
-// Options: [{"require":{"ClassDeclaration":true,"FunctionDeclaration":false,"MethodDefinition":true}}]
-
-/**
- * Description for A.
- */
-class A {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-
-/**
- * Description for A.
- */
-class App extends Component {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-
-/**
- * Description for A.
- */
-export default class App extends Component {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-
-/**
- * Description for A.
- */
-export class App extends Component {
-    /**
-     * Description for constructor.
-     * @param {object[]} xs - xs
-     */
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":true,"MethodDefinition":true}}]
-
-class A {
-    constructor(xs) {
-        this.a = xs;
-    }
-}
-// Options: [{"require":{"ClassDeclaration":false,"MethodDefinition":false}}]
-
-/**
-* Function doing something
-*/
-var myFunction = () => {}
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-
-/**
-* Function doing something
-*/
-var myFunction = function () {}
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-
-/**
-* Function doing something
-*/
-var myFunction = () => {}
-// Options: [{"require":{"ArrowFunctionExpression":false}}]
-
-/**
- Function doing something
-*/
-var myFunction = () => () => {}
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-
-setTimeout(() => {}, 10);
-// Options: [{"require":{"ArrowFunctionExpression":true}}]
-
-/**
-JSDoc Block
-*/
-var foo = function() {}
-// Options: [{"require":{"FunctionExpression":true}}]
-
-const foo = {/**
-JSDoc Block
-*/
-bar() {}}
-// Options: [{"require":{"FunctionExpression":true}}]
-
-var foo = {/**
-JSDoc Block
-*/
-bar: function() {}}
-// Options: [{"require":{"FunctionExpression":true}}]
-
-var foo = { [function() {}]: 1 };
-// Options: [{"require":{"FunctionExpression":true}}]
-
-function foo () {}
-// Options: [{"exemptEmptyFunctions":true}]
-
-function foo () {
-  return;
-}
-// Options: [{"exemptEmptyFunctions":true}]
-
-const test = {};
-/**
- * test
- */
- test.method = function () {
-
-}
-module.exports = {
-  prop: { prop2: test.method }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-function test() {
-
-}
-
-module.exports = {
-  prop: { prop2: test }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-test = function() {
-
-}
-
-module.exports = {
-  prop: { prop2: test }
-}
-// Options: [{"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-test = function() {
-
-}
-
-exports.someMethod = {
-  prop: { prop2: test }
-}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-const test = () => {
-
-}
-
-module.exports = {
-prop: { prop2: test }
-}
-// Options: [{"publicOnly":true,"require":{"ArrowFunctionExpression":true}}]
-
-const test = () => {
-
-}
-module.exports = {
-  prop: { prop2: test }
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"ArrowFunctionExpression":true}}]
-
-/**
- *
- */
-window.test = function() {
-
-}
-
-module.exports = {
-prop: window
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-test = function() {
-
-}
-
-/**
- *
- */
-test = function() {
-
-}
-
-module.exports = {
-prop: { prop2: test }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-test = function() {
-
-}
-
-test = 2;
-
-module.exports = {
-prop: { prop2: test }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-function test() {
-
-}
-
-/**
- *
- */
-test.prototype.method = function() {
-
-}
-
-module.exports = {
-prop: { prop2: test }
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-class Test {
-  /**
-   * Test
-   */
-  method() {
-
-  }
-}
-module.exports = Test;
-// Options: [{"publicOnly":true,"require":{"MethodDefinition":true}}]
-
-/**
- *
- */
-export default function quux () {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-export default function quux () {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-function quux () {
-
-}
-export default quux;
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-function quux () {
-
-}
-export default quux;
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-export function test() {
-
-}
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-export function test() {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-var test = function () {
-
-}
-var test2 = 2;
-export { test, test2 }
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-var test = function () {
-
-}
-export { test as test2 }
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- *
- */
-export default class A {
-
-}
-// Options: [{"publicOnly":{"ancestorsOnly":true},"require":{"ClassDeclaration":true}}]
-
-/**
- *
- */
-var test = function () {
-
-}
-// Options: [{"publicOnly":{"window":true},"require":{"FunctionExpression":true}}]
-
-let test = function () {
-
-}
-// Options: [{"publicOnly":{"window":true},"require":{"FunctionExpression":true}}]
-
-let test = class {
-
-}
-// Options: [{"publicOnly":true,"require":{"ClassExpression":false}}]
-
-/**
- *
- */
-let test = class {
-
-}
-// Options: [{"publicOnly":true,"require":{"ClassExpression":true}}]
-
-export function someMethod() {
-
-}
-// Options: [{"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}]
-
-export function someMethod() {
-
-}
-// Options: [{"publicOnly":{"cjs":true,"esm":false,"window":false},"require":{"FunctionDeclaration":true}}]
-
-exports.someMethod = function() {
-
-}
-// Options: [{"publicOnly":{"cjs":false,"esm":true,"window":false},"require":{"FunctionExpression":true}}]
-
-const myObject = {
-  myProp: true
-};
-// Options: [{"contexts":[]}]
-
-function bear() {}
-/**
- *
- */
-function quux () {
-}
-export default quux;
-// Options: [{"publicOnly":true,"require":{"FunctionExpression":true}}]
-
-/**
- * This example interface is great!
- */
-export interface Example {
-  /**
-   * My super test string!
-   */
-  test: string
-}
-// Options: [{"contexts":["TSInterfaceDeclaration"]}]
-
-/**
- * This example interface is great!
- */
-interface Example {
-  /**
-   * My super test string!
-   */
-  test: string
-}
-// Options: [{"contexts":["TSInterfaceDeclaration"]}]
-
-/**
- * This example type is great!
- */
-export type Example = {
-  /**
-   * My super test string!
-   */
-  test: string
-};
-// Options: [{"contexts":["TSTypeAliasDeclaration"]}]
-
-/**
- * This example type is great!
- */
-type Example = {
-  /**
-   * My super test string!
-   */
-  test: string
-};
-// Options: [{"contexts":["TSTypeAliasDeclaration"]}]
-
-/**
- * This example enum is great!
- */
-export enum Example {
-  /**
-   * My super test enum!
-   */
-  test = 123
-}
-// Options: [{"contexts":["TSEnumDeclaration"]}]
-
-/**
- * This example enum is great!
- */
-enum Example {
-  /**
-   * My super test enum!
-   */
-  test = 123
-}
-// Options: [{"contexts":["TSEnumDeclaration"]}]
-
-const foo = {...{}};
-function bar() {}
-// Options: [{"exemptEmptyFunctions":false,"publicOnly":true,"require":{"ArrowFunctionExpression":true,"ClassDeclaration":true,"ClassExpression":true,"FunctionDeclaration":true,"FunctionExpression":false,"MethodDefinition":true}}]
-
-/**
- * Class documentation
- */
- @logged
-export default class Foo {
- // ....
-}
-// Options: [{"exemptEmptyFunctions":false,"require":{"ClassDeclaration":true}}]
-
-const a = {};
-const b = {
-  ...a
-};
-
-export default b;
-// Options: [{"contexts":["ObjectExpression"],"exemptEmptyFunctions":false,"publicOnly":true}]
-
-/**
- * Foo interface documentation.
- */
-export interface Foo extends Bar {
-  /**
-   * baz method documentation.
-   */
-  baz(): void;
-
-  /**
-   * meow method documentation.
-   */
-  meow(): void;
-}
-// Options: [{"contexts":["TSMethodSignature"]}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-param-description"></a>
-### <code>require-param-description</code>
-
-Requires that each `@param` tag has a `description` value.
-
-<a name="eslint-plugin-jsdoc-rules-require-param-description-options-20"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-param-description-options-20-contexts-4"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`param`|
-|Aliases|`arg`, `argument`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @param "foo" description.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" description.
-
-/**
- * @function
- * @param foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" description.
-
-/**
- * @callback
- * @param foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" description.
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-// Message: Missing JSDoc @arg "foo" description.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo Foo.
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo Foo.
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @function
- * @param foo
- */
-
-/**
- * @callback
- * @param foo
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-param-name"></a>
-### <code>require-param-name</code>
-
-Requires that all function parameters have names.
-
-> The `@param` tag requires you to specify the name of the parameter you are documenting. You can also include the parameter's type, enclosed in curly brackets, and a description of the parameter.
->
-> [JSDoc](https://jsdoc.app/tags-param.html#overview)
-
-<a name="eslint-plugin-jsdoc-rules-require-param-name-options-21"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-param-name-options-21-contexts-5"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`param`|
-|Aliases|`arg`, `argument`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param
- */
-function quux (foo) {
-
-}
-// Message: There must be an identifier after @param type.
-
-/**
- * @param {string}
- */
-function quux (foo) {
-
-}
-// Message: There must be an identifier after @param tag.
-
-/**
- * @param {string}
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: There must be an identifier after @param tag.
-
-/**
- * @function
- * @param {string}
- */
-// Options: [{"contexts":["any"]}]
-// Message: There must be an identifier after @param tag.
-
-/**
- * @callback
- * @param {string}
- */
-// Options: [{"contexts":["any"]}]
-// Message: There must be an identifier after @param tag.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @param {string} foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @function
- * @param
- */
-
-/**
- * @callback
- * @param
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-param-type"></a>
-### <code>require-param-type</code>
-
-Requires that each `@param` tag has a `type` value.
-
-<a name="eslint-plugin-jsdoc-rules-require-param-type-options-22"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-param-type-options-22-contexts-6"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`param`|
-|Aliases|`arg`, `argument`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @param "foo" type.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" type.
-
-/**
- * @function
- * @param foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" type.
-
-/**
- * @callback
- * @param foo
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @param "foo" type.
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-// Message: Missing JSDoc @arg "foo" type.
-
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-}
-
-/**
- * @param {number} foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @param {number} foo
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @function
- * @param foo
- */
-
-/**
- * @callback
- * @param foo
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-param"></a>
-### <code>require-param</code>
-
-Requires that all function parameters are documented.
-
-<a name="eslint-plugin-jsdoc-rules-require-param-options-23"></a>
-#### Options
-
-An options object accepts one optional property:
-
-- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document
-    block avoids the need for a `@param`. Defaults to an empty array.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`|
-|Tags|`param`|
-|Aliases|`arg`, `argument`|
-|Options|`exemptedBy`|
-|Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
-
-The following patterns are considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- *
- */
-function quux (foo, bar) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @param foo
- */
-function quux (foo, bar) {
-
-}
-// Message: Missing JSDoc @param "bar" declaration.
-
-/**
- * @param bar
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @param foo
- * @param bar
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Missing JSDoc @param "baz" declaration.
-
-/**
- * @param baz
- */
-function quux (foo, bar, baz) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @param
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-// Message: Missing JSDoc @arg "foo" declaration.
-
-/**
- * @param foo
- */
-function quux (foo, bar) {
-
-}
-// Message: Missing JSDoc @param "bar" declaration.
-
-/**
- * @override
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"overrideReplacesDocs":false}}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @implements
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"implementsReplacesDocs":false}}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @augments
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @extends
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @override
- */
-class A {
-  /**
-    *
-    */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"overrideReplacesDocs":false}}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @implements
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"implementsReplacesDocs":false}}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @augments
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @extends
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-export class SomeClass {
-  /**
-   * @param property
-   */
-  constructor(private property: string, private foo: number) {}
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * @param
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":false}}}
-// Message: Unexpected tag `@param`
-
-/**
- *
- */
-function quux ({bar, baz}, foo) {
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- *
- */
-function quux (foo, {bar, baz}) {
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- *
- */
-function quux ([bar, baz], foo) {
-}
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- *
- */
-function quux (foo) {
-}
-// Options: [{"exemptedBy":["notPresent"]}]
-// Message: Missing JSDoc @param "foo" declaration.
-
-/**
- * Assign the project to a list of employees.
- * @param {object[]} employees - The employees who are responsible for the project.
- * @param {string} employees[].name - The name of an employee.
- * @param {string} employees[].department - The employee's department.
- */
-function assign (employees, name) {
-
-};
-// Message: Missing JSDoc @param "name" declaration.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @inheritdoc
- */
-function quux (foo) {
-
-}
-
-/**
- * @arg foo
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
-
-/**
- * @override
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @override
- */
-function quux (foo) {
-
-}
-
-/**
- * @override
- */
-class A {
-  /**
-    *
-    */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @override
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"overrideReplacesDocs":true}}
-
-/**
- * @implements
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @implements
- */
-function quux (foo) {
-
-}
-
-/**
- * @implements
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"implementsReplacesDocs":true}}
-
-/**
- * @implements
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @augments
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @augments
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @extends
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @extends
- * @param foo
- */
-function quux (foo) {
-
-}
-
-/**
- * @augments
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @extends
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @override
- */
-class A {
-  /**
-  * @param foo
-  */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @override
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"overrideReplacesDocs":true}}
-
-/**
- * @implements
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"implementsReplacesDocs":true}}
-
-/**
- * @implements
- */
-class A {
-  /**
-   * @param foo
-   */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @augments
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @augments
- */
-class A {
-  /**
-   * @param foo
-   */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @extends
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @extends
- */
-class A {
-  /**
-   * @param foo
-   */
-  quux (foo) {
-
-  }
-}
-
-/**
- * @augments
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @extends
- */
-class A {
-  /**
-   *
-   */
-  quux (foo) {
-
-  }
-}
-// Settings: {"jsdoc":{"augmentsExtendsReplacesDocs":true}}
-
-/**
- * @private
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-
-/**
- * @access private
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"ignorePrivate":true}}
-
-// issue 182: optional chaining
-/** @const {boolean} test */
-const test = something?.find(_ => _)
-
-/** @type {RequestHandler} */
-function foo(req, res, next) {}
-
-/**
- * @type {MyCallback}
- */
-function quux () {
-
-}
-// Options: [{"exemptedBy":["type"]}]
-
-/**
- * @override
- */
-var A = class {
-  /**
-    *
-    */
-  quux (foo) {
-
-  }
-}
-
-export class SomeClass {
-  /**
-   * @param property
-   */
-  constructor(private property: string) {}
-}
-
-/**
- * Assign the project to an employee.
- *
- * @param {object} employee - The employee who is responsible for the project.
- * @param {string} employee.name - The name of the employee.
- * @param {string} employee.department - The employee's department.
- */
-function assign({name, department}) {
-  // ...
-}
-
-export abstract class StephanPlugin<O, D> {
-
-    /**
-     * Called right after Stephan loads the plugin file.
-     *
-     * @example
-     *```typescript
-     * type Options = {
-     *      verbose?: boolean;
-     *      token?: string;
-     * }
-     * ```
-     *
-     * Note that your Options type should only have optional properties...
-     *
-     * @param args Arguments compiled and provided by StephanClient.
-     * @param args.options The options as provided by the user, or an empty object if not provided.
-     * @param defaultOptions The default options as provided by the plugin, or an empty object.
-     */
-    public constructor({options, client}: {
-        options: O;
-        client: unknown;
-    }, defaultOptions: D) {
-
-    }
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-property"></a>
-### <code>require-property</code>
-
-Requires that all `@typedef` and `@namespace` tags have `@property`
-when their type is a plain `object`, `Object`, or `PlainObject`.
-
-Note that if any other type, including a subtype of object such as
-`object<string, string>`, will not be reported.
-
-<a name="eslint-plugin-jsdoc-rules-require-property-fixer-1"></a>
-#### Fixer
-
-The fixer for `require-example` will add an empty `@property`.
-
-|||
-|---|---|
-|Context|Everywhere|
-|Tags|`typedef`, `namespace`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @typedef {object} SomeTypedef
- */
-// Message: Missing JSDoc @property.
-
-/**
- * @typedef {PlainObject} SomeTypedef
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
-// Message: Missing JSDoc @prop.
-
-/**
- * @namespace {Object} SomeName
- */
-// Message: Missing JSDoc @property.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-
-/**
- * @property
- */
-
-/**
- * @typedef {Object} SomeTypedef
- * @property {SomeType} propName Prop description
- */
-
-/**
- * @typedef {object} SomeTypedef
- * @prop {SomeType} propName Prop description
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
-
-/**
- * @typedef {object} SomeTypedef
- * @property
- * // arbitrary property content
- */
-
-/**
- * @typedef {object<string, string>} SomeTypedef
- */
-
-/**
- * @typedef {string} SomeTypedef
- */
-
-/**
- * @namespace {object} SomeName
- * @property {SomeType} propName Prop description
- */
-
-/**
- * @namespace {object} SomeName
- * @property
- * // arbitrary property content
- */
-
-/**
- * @typedef {object} SomeTypedef
- * @property someProp
- * @property anotherProp This with a description
- * @property {anotherType} yetAnotherProp This with a type and desc.
- */
-function quux () {
-
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-property-description"></a>
-### <code>require-property-description</code>
-
-Requires that each `@property` tag has a `description` value.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-// Message: Missing JSDoc @property "foo" description.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @prop foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
-// Message: Missing JSDoc @prop "foo" description.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
-// Message: Unexpected tag `@property`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- */
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo Foo.
- */
-
-/**
- * @namespace {SomeType} SomeName
- * @property foo Foo.
- */
-
-/**
- * @class
- * @property foo Foo.
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-property-name"></a>
-### <code>require-property-name</code>
-
-Requires that all function `@property` tags have names.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- * @property
- */
-// Message: There must be an identifier after @property type.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property {string}
- */
-// Message: There must be an identifier after @property tag.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
-// Message: Unexpected tag `@property`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property {string} foo
- */
-
-/**
- * @namespace {SomeType} SomeName
- * @property {string} foo
- */
-
-/**
- * @class
- * @property {string} foo
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-property-type"></a>
-### <code>require-property-type</code>
-
-Requires that each `@property` tag has a `type` value.
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|N/A|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-// Message: Missing JSDoc @property "foo" type.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @prop foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
-// Message: Missing JSDoc @prop "foo" type.
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property foo
- */
-// Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
-// Message: Unexpected tag `@property`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @typedef {SomeType} SomeTypedef
- */
-
-/**
- * @typedef {SomeType} SomeTypedef
- * @property {number} foo
- */
-
-/**
- * @namespace {SomeType} SomeName
- * @property {number} foo
- */
-
-/**
- * @class
- * @property {number} foo
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-check"></a>
-### <code>require-returns-check</code>
-
-Requires a return statement in function body if a `@returns` tag is specified in jsdoc comment.
-
-Will also report if multiple `@returns` tags are present.
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`|
-|Tags|`returns`|
-|Aliases|`return`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @returns
- */
-function quux (foo) {
-
-}
-// Message: JSDoc @returns declaration present but return expression not available in function.
-
-/**
- * @return
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}}
-// Message: JSDoc @return declaration present but return expression not available in function.
-
-/**
- * @returns
- */
-const quux = () => {}
-// Message: JSDoc @returns declaration present but return expression not available in function.
-
-/**
- * @returns {undefined} Foo.
- * @returns {String} Foo.
- */
-function quux () {
-
-  return foo;
-}
-// Message: Found more than one @returns declaration.
-
-const language = {
-  /**
-   * @param {string} name
-   * @returns {string}
-   */
-  get name() {
-    this._name = name;
-  }
-}
-// Message: JSDoc @returns declaration present but return expression not available in function.
-
-class Foo {
-  /**
-   * @returns {string}
-   */
-  bar () {
-  }
-}
-// Message: JSDoc @returns declaration present but return expression not available in function.
-
-/**
- * @returns
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}}
-// Message: Unexpected tag `@returns`
-
-/**
- * @returns {string}
- */
-function f () {
-  function g() {
-    return 'foo'
-  }
-
-  () => {
-    return 5
-  }
-}
-// Message: JSDoc @returns declaration present but return expression not available in function.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @returns Foo.
- */
-function quux () {
-
-  return foo;
-}
-
-/**
- * @returns {string} Foo.
- */
-function quux () {
-
-  return foo;
-}
-
-/**
- * @returns {string} Foo.
- */
-function quux () {
-
-  return foo;
-}
-
-/**
- *
- */
-function quux () {
-}
-
-/**
- * @returns {*} Foo.
- */
-const quux = () => foo;
-
-/**
- * @returns {undefined} Foo.
- */
-function quux () {}
-
-/**
- * @returns { void } Foo.
- */
-function quux () {}
-
-/**
- * @returns {Promise<void>}
- */
-async function quux() {}
-
-/**
- * @returns {Promise<void>}
- */
-const quux = async function () {}
-
-/**
- * @returns {Promise<void>}
- */
-const quux = async () => {}
-
-/**
- * @returns Foo.
- * @abstract
- */
-function quux () {
-  throw new Error('must be implemented by subclass!');
-}
-
-/**
- * @returns Foo.
- * @virtual
- */
-function quux () {
-  throw new Error('must be implemented by subclass!');
-}
-
-/**
- * @returns Foo.
- * @constructor
- */
-function quux () {
-}
-
-/**
- * @interface
- */
-class Foo {
-  /**
-   * @returns {string}
-   */
-  bar () {
-  }
-}
-
-/**
- * @record
- */
-class Foo {
-  /**
-   * @returns {string}
-   */
-  bar () {
-  }
-}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @returns {undefined} Foo.
- */
-function quux () {
-}
-
-/**
- * @returns {void} Foo.
- */
-function quux () {
-}
-
-/**
- * @returns {void} Foo.
- */
-function quux () {
-  return undefined;
-}
-
-/**
- * @returns {void} Foo.
- */
-function quux () {
-  return;
-}
-
-/**
- *
- */
-function quux () {
-  return undefined;
-}
-
-/**
- *
- */
-function quux () {
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  try {
-    return true;
-  } catch (err) {
-  }
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  try {
-  } finally {
-    return true;
-  }
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  try {
-    return;
-  } catch (err) {
-  }
-  return true;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  try {
-    something();
-  } catch (err) {
-    return true;
-  }
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  switch (true) {
-  case 'abc':
-    return true;
-  }
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  switch (true) {
-  case 'abc':
-    return;
-  }
-  return true;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  for (const i of abc) {
-    return true;
-  }
-  return;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  for (const a in b) {
-    return true;
-  }
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  for (let i=0; i<n; i+=1) {
-    return true;
-  }
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  while(true) {
-    return true
-  }
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  do {
-    return true
-  }
-  while(true)
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  if (true) {
-    return;
-  }
-  return true;
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  if (true) {
-    return true;
-  }
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  var a = {};
-  with (a) {
-    return true;
-  }
-}
-
-/**
- * @returns {true}
- */
-function quux () {
-  if (true) {
-    return;
-  } else {
-    return true;
-  }
-  return;
-}
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-description"></a>
-### <code>require-returns-description</code>
-
-Requires that the `@returns` tag has a `description` value. The error
-will not be reported if the return value is `void` or `undefined`.
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-description-options-24"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-description-options-24-contexts-7"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`returns`|
-|Aliases|`return`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @returns
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @returns description.
-
-/**
- * @returns {string}
- */
-function quux (foo) {
-
-}
-// Message: Missing JSDoc @returns description.
-
-/**
- * @returns {string}
- */
-function quux (foo) {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns description.
-
-/**
- * @function
- * @returns {string}
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns description.
-
-/**
- * @callback
- * @returns {string}
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns description.
-
-/**
- * @return
- */
-function quux (foo) {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}}
-// Message: Missing JSDoc @return description.
-
-/**
- * @returns
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}}
-// Message: Unexpected tag `@returns`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- *
- */
-function quux () {
-
-}
-
-/**
- * @returns Foo.
- */
-function quux () {
-
-}
-
-/**
- * @returns Foo.
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @returns {undefined}
- */
-function quux () {
-
-}
-
-/**
- * @returns {void}
- */
-function quux () {
-
-}
-
-/**
- * @function
- * @returns
- */
-
-/**
- * @callback
- * @returns
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-type"></a>
-### <code>require-returns-type</code>
-
-Requires that `@returns` tag has `type` value.
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-type-options-25"></a>
-#### Options
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-type-options-25-contexts-8"></a>
-##### <code>contexts</code>
-
-Set this to an array of strings representing the AST context
-where you wish the rule to be applied.
-Overrides the default contexts (see below). Set to `"any"` if you want
-the rule to apply to any jsdoc block throughout your files (as is necessary
-for finding function blocks not attached to a function declaration or
-expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-`@method`) (including those associated with an `@interface`).
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`returns`|
-|Aliases|`return`|
-|Options|`contexts`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @returns
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @returns type.
-
-/**
- * @returns Foo.
- */
-function quux () {
-
-}
-// Message: Missing JSDoc @returns type.
-
-/**
- * @returns Foo.
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns type.
-
-/**
- * @function
- * @returns Foo.
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns type.
-
-/**
- * @callback
- * @returns Foo.
- */
-// Options: [{"contexts":["any"]}]
-// Message: Missing JSDoc @returns type.
-
-/**
- * @return Foo.
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}}
-// Message: Missing JSDoc @return type.
-
-/**
- * @returns
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}}
-// Message: Unexpected tag `@returns`
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @returns {number}
- */
-function quux () {
-
-}
-
-/**
- * @returns {number}
- */
-function quux () {
-
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- * @function
- * @returns Foo.
- */
-
-/**
- * @callback
- * @returns Foo.
- */
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-require-returns"></a>
-### <code>require-returns</code>
-
-Requires returns are documented.
-
-Will also report if multiple `@returns` tags are present.
-
-<a name="eslint-plugin-jsdoc-rules-require-returns-options-26"></a>
-#### Options
-
-- `exemptedBy` - Array of tags (e.g., `['type']`) whose presence on the document
-    block avoids the need for a `@returns`. Defaults to an empty array.
-- `forceRequireReturn` - Set to `true` to always insist on
-  `@returns` documentation regardless of implicit or explicit `return`'s
-  in the function. May be desired to flag that a project is aware of an
-  `undefined`/`void` return. Defaults to `false`.
-- `forceReturnsWithAsync` - By default `async` functions that do not explicitly
-  return a value pass this rule as an `async` function will always return a
-  `Promise`, even if the `Promise` resolves to void. You can force all `async`
-  functions to require return statements by setting `forceReturnsWithAsync`
-  to `true` on the options object. This may be useful for flagging that there
-  has been consideration of return type. Defaults to `false`.
-- `contexts` - Set this to an array of strings representing the AST context
-  where you wish the rule to be applied.
-  Overrides the default contexts (see below). Set to `"any"` if you want
-  the rule to apply to any jsdoc block throughout your files (as is necessary
-  for finding function blocks not attached to a function declaration or
-  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
-  `@method`) (including those associated with an `@interface`). This
-  rule will only apply on non-default contexts when there is such a tag
-  present and the `forceRequireReturn` option is set or if the
-  `forceReturnsWithAsync` option is set with a present `@async` tag
-  (since we are not checking against the actual `return` values in these
-  cases).
-
-```js
-'jsdoc/require-returns': ['error', {forceReturnsWithAsync: true}]
-```
-
-|||
-|---|---|
-|Context|`ArrowFunctionExpression`, `FunctionDeclaration`, `FunctionExpression`; others when `contexts` option enabled|
-|Tags|`returns`|
-|Aliases|`return`|
-|Options|`contexts`, `exemptedBy`, `forceRequireReturn`, `forceReturnsWithAsync`|
-|Settings|`overrideReplacesDocs`, `augmentsExtendsReplacesDocs`, `implementsReplacesDocs`|
-
-The following patterns are considered problems:
-
-````js
-/**
- *
- */
-function quux (foo) {
-
-  return foo;
-}
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-const foo = () => ({
-  bar: 'baz'
-})
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-const foo = bar=>({ bar })
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-const foo = bar => bar.baz()
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-function quux (foo) {
-
-  return foo;
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}}
-// Message: Missing JSDoc @return declaration.
-
-/**
- *
- */
-function foo() {}
-
-/**
- *
- */
-function bar() {}
-// Settings: {"jsdoc":{"forceRequireReturn":true}}
-// Message: `settings.jsdoc.forceRequireReturn` has been removed, use options in the rule `require-returns` instead.
-
-/**
- *
- */
-async function quux() {
-}
-// Options: [{"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-const quux = async function () {}
-// Options: [{"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-const quux = async () => {}
-// Options: [{"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-async function quux () {}
-// Options: [{"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-function quux () {
-}
-// Options: [{"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-function quux () {
-}
-// Options: [{"contexts":["any"],"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @function
- */
-// Options: [{"contexts":["any"],"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @callback
- */
-// Options: [{"contexts":["any"],"forceRequireReturn":true}]
-// Message: Missing JSDoc @returns declaration.
-
-const language = {
-  /**
-   * @param {string} name
-   */
-  get name() {
-    return this._name;
-  }
-}
-// Message: Missing JSDoc @returns declaration.
-
-/**
- *
- */
-async function quux () {
-}
-// Options: [{"forceReturnsWithAsync":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @function
- * @async
- */
-// Options: [{"contexts":["any"],"forceReturnsWithAsync":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @callback
- * @async
- */
-// Options: [{"contexts":["any"],"forceReturnsWithAsync":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @returns {undefined}
- * @returns {void}
- */
-function quux (foo) {
-
-  return foo;
-}
-// Message: Found more than one @returns declaration.
-
-/**
- * @returns
- */
-function quux () {
-
-}
-// Settings: {"jsdoc":{"tagNamePreference":{"returns":false}}}
-// Message: Unexpected tag `@returns`
-
-/**
- * @param foo
- */
-function quux (foo) {
-  return 'bar';
-}
-// Options: [{"exemptedBy":["notPresent"]}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @param {array} a
- */
-async function foo(a) {
-  return;
-}
-// Options: [{"forceReturnsWithAsync":true}]
-// Message: Missing JSDoc @returns declaration.
-
-/**
- * @param {array} a
- */
-async function foo(a) {
-  return Promise.all(a);
-}
-// Options: [{"forceReturnsWithAsync":true}]
-// Message: Missing JSDoc @returns declaration.
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @returns Foo.
- */
-function quux () {
-
-  return foo;
-}
-
-/**
- * @returns Foo.
- */
-function quux () {
-
-  return foo;
-}
-// Options: [{"contexts":["any"]}]
-
-/**
- *
- */
-function quux () {
-}
-
-/**
- *
- */
-function quux (bar) {
-  bar.filter(baz => {
-    return baz.corge();
-  })
-}
-
-/**
- * @returns Array
- */
-function quux (bar) {
-  return bar.filter(baz => {
-    return baz.corge();
-  })
-}
-
-/**
- * @returns Array
- */
-const quux = (bar) => bar.filter(({ corge }) => corge())
-
-/**
- * @inheritdoc
- */
-function quux (foo) {
-}
-
-/**
- * @override
- */
-function quux (foo) {
-}
-
-/**
- * @constructor
- */
-function quux (foo) {
-}
-
-/**
- * @implements
- */
-function quux (foo) {
-}
-
-/**
- * @override
- */
-function quux (foo) {
-
-  return foo;
-}
-
-/**
- * @class
- */
-function quux (foo) {
-
-}
-
-/**
- * @constructor
- */
-function quux (foo) {
-
-}
-
-/**
- * @returns {object}
- */
-function quux () {
-
-  return {a: foo};
-}
-
-/**
- * @returns {object}
- */
-const quux = () => ({a: foo});
-
-/**
- * @returns {object}
- */
-const quux = () => {
-  return {a: foo}
-};
-
-/**
- * @returns {void}
- */
-function quux () {
-}
-
-/**
- * @returns {void}
- */
-const quux = () => {
-
-}
-
-/**
- * @returns {undefined}
- */
-function quux () {
-}
-
-/**
- * @returns {undefined}
- */
-const quux = () => {
-
-}
-
-/**
- *
- */
-function quux () {
-}
-
-/**
- *
- */
-const quux = () => {
-
-}
-
-class Foo {
-  /**
-   *
-   */
-  constructor () {
-  }
-}
-// Options: [{"forceRequireReturn":true}]
-
-const language = {
-  /**
-   * @param {string} name
-   */
-  set name(name) {
-    this._name = name;
-  }
-}
-
-/**
- * @returns {void}
- */
-function quux () {
-}
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @returns {void}
- */
-function quux () {
-  return undefined;
-}
-
-/**
- * @returns {void}
- */
-function quux () {
-  return undefined;
-}
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @returns {void}
- */
-function quux () {
-  return;
-}
-
-/**
- * @returns {void}
- */
-function quux () {
-}
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @returns {void}
- */
-function quux () {
-  return;
-}
-// Options: [{"forceRequireReturn":true}]
-
-/** @type {RequestHandler} */
-function quux (req, res , next) {
-  return;
-}
-
-/**
- * @returns {Promise}
- */
-async function quux () {
-}
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @returns {Promise}
- */
-async function quux () {
-}
-// Options: [{"forceReturnsWithAsync":true}]
-
-/**
- *
- */
-async function quux () {}
-
-/**
- *
- */
-const quux = async function () {}
-
-/**
- *
- */
-const quux = async () => {}
-
-/** foo class */
-class foo {
-  /** foo constructor */
-  constructor () {
-    // =>
-    this.bar = true;
-  }
-}
-
-export default foo;
-
-/**
- *
- */
-function quux () {
-}
-// Options: [{"forceReturnsWithAsync":true}]
-
-/**
- * @type {MyCallback}
- */
-function quux () {
-
-}
-// Options: [{"exemptedBy":["type"]}]
-
-/**
- * @param {array} a
- */
-async function foo(a) {
-  return Promise.all(a);
-}
-
-/**
- * @param {array} a
- */
-async function foo(a) {
-  return;
-}
-
-/**
- *
- */
-// Options: [{"contexts":["any"]}]
-
-/**
- * @async
- */
-// Options: [{"contexts":["any"]}]
-
-/**
- * @function
- */
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @callback
- */
-// Options: [{"forceRequireReturn":true}]
-
-/**
- * @function
- * @async
- */
-// Options: [{"forceReturnsWithAsync":true}]
-
-/**
- * @callback
- * @async
- */
-// Options: [{"forceReturnsWithAsync":true}]
-
-/**
- * @function
- */
-// Options: [{"contexts":["any"],"forceReturnsWithAsync":true}]
-
-/**
- * @callback
- */
-// Options: [{"contexts":["any"],"forceReturnsWithAsync":true}]
-````
-
-
-<a name="eslint-plugin-jsdoc-rules-valid-types"></a>
-### <code>valid-types</code>
-
-Requires all types to be valid JSDoc or Closure compiler types without syntax errors.
-
-Also impacts behaviors on namepath (or event)-defining and pointing tags:
-
-1. Name(path)-defining tags requiring namepath: `@external`, `@host`, `@name`, `@typedef`
-1. Name(path)-defining tags (which may have value without namepath or their
-    namepath can be expressed elsewhere on the block): `@event`, `@callback`,
-    `@class`, `@constructor`, `@constant`, `@const`,
-    `@function`, `@func`, `@method`, `@interface`, `@member`, `@var`,
-    `@mixin`, `@namespace`
-1. Name(path)-pointing tags requiring namepath: `@alias`, `@augments`, `@extends`, `@lends`, `@memberof`, `@memberof!`, `@mixes`, `@this`
-1. Name(path)-pointing tags (which may have value without namepath or their
-    namepath can be expressed elsewhere on the block): `@listens`, `@fires`,
-    `@emits`, and `@modifies`
-1. Name(path)-pointing tags (multiple names in one): `@borrows`
-
-...with the following applying to the above sets:
-
-- Expect tags in set 1-4 to have a valid namepath if present
-- Prevent sets 2 and 4 from being empty by setting `allowEmptyNamepaths` to
-  `false` as these tags might have some indicative value without a path
-  or may allow a name expressed elsewhere on the block (but sets 1 and 3 will
-  always fail if empty)
-- For the special case of set 5, i.e., `@borrows <that namepath> as <this namepath>`,
-  check that both namepaths are present and valid and ensure there is an `as `
-  between them. In the case of `<this namepath>`, it can be preceded by
-  one of the name path operators, `#`, `.`, or `~`.
-- For the special case of `@memberof` and `@memberof!` (part of set 3), as
-   per the [specification](https://jsdoc.app/tags-memberof.html), they also
-   allow `#`, `.`, or `~` at the end (which is not allowed at the end of
-   normal paths).
-
-<a name="eslint-plugin-jsdoc-rules-valid-types-options-27"></a>
-#### Options
-
-- `allowEmptyNamepaths` (default: true) - Set to `false` to disallow
-  empty name paths with `@callback`, `@event`, `@class`, `@constructor`,
-  `@constant`, `@const`, `@function`, `@func`, `@method`, `@interface`,
-  `@member`, `@var`, `@mixin`, `@namespace`, `@listens`, `@fires`,
-  `@modifies`, or `@emits` (these might often be expected to have an
-  accompanying name path, though they have some indicative value without
-  one; these may also allow names to be defined in another manner elsewhere
-  in the block)
-- `checkSeesForNamepaths` (default: false) - Set this to `true` to insist
-  that `@see` only use name paths (the tag is normally permitted to
-  allow other text)
-
-
-|||
-|---|---|
-|Context|everywhere|
-|Tags|For name only unless otherwise stated: `alias`, `augments`, `borrows`, `callback`, `class` (for name and type), `constant` (for name and type), `enum` (for type), `event`, `external`, `fires`, `function`, `implements` (for type), `interface`, `lends`, `listens`, `member` (for name and type),  `memberof`, `memberof!`, `mixes`, `mixin`, `modifies`, `module` (for name and type), `name`, `namespace` (for name and type), `param` (for name and type), `property` (for name and type), `returns` (for type), `this`, `throws` (for type), `type` (for type), `typedef` (for name and type), `yields` (for type)|
-|Aliases|`extends`, `constructor`, `const`, `host`, `emits`, `func`, `method`, `var`, `arg`, `argument`, `prop`, `return`, `exception`, `yield`|
-|Closure-only|For type only: `package`, `private`, `protected`, `public`, `static`|
-|Options|`allowEmptyNamepaths`, `checkSeesForNamepaths`|
-|Settings|`mode`|
-
-The following patterns are considered problems:
-
-````js
-/**
- * @param {Array<string} foo
- */
-function quux() {
-
-}
-// Message: Syntax error in type: Array<string
-
-/**
- * @memberof module:namespace.SomeClass<~
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: module:namespace.SomeClass<~
-
-/**
- * @memberof module:namespace.SomeClass~<
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: module:namespace.SomeClass~<
-
-/**
- * @borrows foo% as bar
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: foo%
-
-/**
- * @borrows #foo as bar
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: #foo
-
-/**
- * @borrows foo as bar%
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: bar%
-
-/**
- * @borrows foo
- */
-function quux() {
-
-}
-// Message: @borrows must have an "as" expression. Found ""
-
-/**
- * @see foo%
- */
-function quux() {
-
-}
-// Options: [{"checkSeesForNamepaths":true}]
-// Message: Syntax error in namepath: foo%
-
-/** */
-function foo() {}
-// Settings: {"jsdoc":{"allowEmptyNamepaths":true,"checkSeesForNamepaths":true}}
-// Message: `settings.jsdoc.allowEmptyNamepaths` has been removed, use options in the rule `valid-types` instead.
-
-/**
- * @alias module:abc#event:foo-bar
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: module:abc#event:foo-bar
-
-/**
- * @mixes module:namespace.SomeClass~
- */
-function quux() {
-
-}
-// Message: Syntax error in namepath: module:namespace.SomeClass~
-
-/**
- * @callback
- */
-function quux() {
-
-}
-// Options: [{"allowEmptyNamepaths":false}]
-// Message: Tag @callback must have a name/namepath
-
-/**
- * @constant {str%ng}
- */
- const FOO = 'foo';
-// Message: Syntax error in type: str%ng
-
-/**
- * @typedef {str%ng} UserString
- */
-// Message: Syntax error in type: str%ng
-
-/**
- * @typedef {string} UserStr%ng
- */
-// Message: Syntax error in namepath: UserStr%ng
-
-/**
- * @extends
- */
- class Bar {};
-// Message: Tag @extends must have either a type or namepath
-
-/**
- * @type
- */
- let foo;
-// Message: Tag @type must have a type
-
-/**
- * @modifies {bar|foo<}
- */
-function quux (foo, bar, baz) {}
-// Message: Syntax error in type: bar|foo<
-
-/**
- * @private {BadTypeChecked<}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Syntax error in type: BadTypeChecked<
-
-/**
- * @this {BadTypeChecked<}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Syntax error in type: BadTypeChecked<
-
-/**
- * @define
- */
- function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Tag @define must have a type
-
-/**
- * @this
- */
- let foo;
-// Settings: {"jsdoc":{"mode":"closure"}}
-// Message: Tag @this must have a type
-````
-
-The following patterns are not considered problems:
-
-````js
-/**
- * @param {Array<string>} foo
- */
-function quux() {
-
-}
-
-/**
- * @param {string} foo
- */
-function quux() {
-
-}
-
-/**
- * @param foo
- */
-function quux() {
-
-}
-
-/**
- * @borrows foo as bar
- */
-function quux() {
-
-}
-
-/**
- * @borrows foo as #bar
- */
-function quux() {
-
-}
-
-/**
- * @see foo%
- */
-function quux() {
-
-}
-
-/**
- * @alias module:namespace.SomeClass#event:ext_anevent
- */
-function quux() {
-
-}
-
-/**
- * @callback foo
- */
-function quux() {
-
-}
-
-/**
- * @callback
- */
-function quux() {
-
-}
-// Options: [{"allowEmptyNamepaths":true}]
-
-/**
- * @class
- */
-function quux() {
-
-}
-
-/**
- * @see {@link foo}
- */
-function quux() {
-
-}
-// Options: [{"checkSeesForNamepaths":true}]
-
-/**
- *
- * @fires {module:namespace.SomeClass#event:ext_anevent}
- */
-function quux() {
-
-}
-
-/**
- * @memberof module:namespace.SomeClass~
- */
-function quux() {
-
-}
-
-/**
- * @memberof! module:namespace.SomeClass.
- */
-function quux() {
-
-}
-
-/**
- *
- */
-function quux() {
-
-}
-
-/**
- * @constant {string}
- */
- const FOO = 'foo';
-
-/**
- * @constant {string} FOO
- */
- const FOO = 'foo';
-
-/**
- * @extends Foo
- */
- class Bar {};
-
-/**
- * @extends {Foo<String>}
- */
- class Bar {};
-
-/**
- * @typedef {number|string} UserDefinedType
- */
-
-/**
- * @typedef {number|string}
- */
-let UserDefinedGCCType;
-
-/**
- * @modifies {foo|bar}
- */
-function quux (foo, bar, baz) {}
-
-/**
- * @private {BadTypeNotCheckedInJsdoc<}
- */
-function quux () {}
-
-/**
- * @this {Navigator}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @export {SomeType}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @define {boolean}
- */
-function quux () {}
-// Settings: {"jsdoc":{"mode":"closure"}}
-
-/**
- * @define
- */
- function quux () {}
-````
-
-
diff --git a/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js b/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js
deleted file mode 100644
index 16c667e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-const WarnSettings = function WarnSettings() {
-  /** @type {WeakMap<object, Set<string>>} */
-  const warnedSettings = new WeakMap();
-  return {
-    /**
-     * Warn only once for each context and setting
-     *
-     * @param {object} context
-     * @param {string} setting
-     */
-    hasBeenWarned(context, setting) {
-      return warnedSettings.has(context) && warnedSettings.get(context).has(setting);
-    },
-
-    markSettingAsWarned(context, setting) {
-      if (!warnedSettings.has(context)) {
-        warnedSettings.set(context, new Set());
-      }
-
-      warnedSettings.get(context).add(setting);
-    }
-
-  };
-};
-
-var _default = WarnSettings;
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=WarnSettings.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js.map b/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js.map
deleted file mode 100644
index 4878417..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/WarnSettings.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/WarnSettings.js"],"names":["WarnSettings","warnedSettings","WeakMap","hasBeenWarned","context","setting","has","get","markSettingAsWarned","set","Set","add"],"mappings":";;;;;;;AAAA,MAAMA,YAAY,GAAG,SAAfA,YAAe,GAAY;AAC/B;AACA,QAAMC,cAAc,GAAG,IAAIC,OAAJ,EAAvB;AAEA,SAAO;AACL;;;;;;AAMAC,IAAAA,aAAa,CAAEC,OAAF,EAAWC,OAAX,EAAoB;AAC/B,aAAOJ,cAAc,CAACK,GAAf,CAAmBF,OAAnB,KAA+BH,cAAc,CAACM,GAAf,CAAmBH,OAAnB,EAA4BE,GAA5B,CAAgCD,OAAhC,CAAtC;AACD,KATI;;AAWLG,IAAAA,mBAAmB,CAAEJ,OAAF,EAAWC,OAAX,EAAoB;AACrC,UAAI,CAACJ,cAAc,CAACK,GAAf,CAAmBF,OAAnB,CAAL,EAAkC;AAChCH,QAAAA,cAAc,CAACQ,GAAf,CAAmBL,OAAnB,EAA4B,IAAIM,GAAJ,EAA5B;AACD;;AAEDT,MAAAA,cAAc,CAACM,GAAf,CAAmBH,OAAnB,EAA4BO,GAA5B,CAAgCN,OAAhC;AACD;;AAjBI,GAAP;AAmBD,CAvBD;;eAyBeL,Y","sourcesContent":["const WarnSettings = function () {\n  /** @type {WeakMap<object, Set<string>>} */\n  const warnedSettings = new WeakMap();\n\n  return {\n    /**\n     * Warn only once for each context and setting\n     *\n     * @param {object} context\n     * @param {string} setting\n     */\n    hasBeenWarned (context, setting) {\n      return warnedSettings.has(context) && warnedSettings.get(context).has(setting);\n    },\n\n    markSettingAsWarned (context, setting) {\n      if (!warnedSettings.has(context)) {\n        warnedSettings.set(context, new Set());\n      }\n\n      warnedSettings.get(context).add(setting);\n    },\n  };\n};\n\nexport default WarnSettings;\n"],"file":"WarnSettings.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/eslint/LICENSE-MIT.txt b/node_modules/eslint-plugin-jsdoc/dist/eslint/LICENSE-MIT.txt
deleted file mode 100644
index 7fe552a..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/eslint/LICENSE-MIT.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright JS Foundation and other contributors, https://js.foundation
-
-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.
diff --git a/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js b/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js
deleted file mode 100644
index e091927..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js
+++ /dev/null
@@ -1,166 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = exports.getReducedASTNode = void 0;
-
-/**
- * Obtained originally from {@link https://github.com/eslint/eslint/blob/master/lib/util/source-code.js#L313}
- *
- * @license MIT
- */
-
-/**
- * Checks if the given token is a comment token or not.
- *
- * @param {Token} token - The token to check.
- * @returns {boolean} `true` if the token is a comment token.
- */
-const isCommentToken = token => {
-  return token.type === 'Line' || token.type === 'Block' || token.type === 'Shebang';
-};
-
-const getDecorator = (token, sourceCode) => {
-  if (token && token.type === 'Identifier') {
-    const tokenBefore = sourceCode.getTokenBefore(token, {
-      includeComments: true
-    });
-
-    if (tokenBefore && tokenBefore.type === 'Punctuator' && tokenBefore.value === '@') {
-      return tokenBefore;
-    }
-  }
-
-  return false;
-};
-/**
- * Check to see if its a ES6 export declaration.
- *
- * @param {ASTNode} astNode An AST node.
- * @returns {boolean} whether the given node represents an export declaration.
- * @private
- */
-
-
-const looksLikeExport = function looksLikeExport(astNode) {
-  return astNode.type === 'ExportDefaultDeclaration' || astNode.type === 'ExportNamedDeclaration' || astNode.type === 'ExportAllDeclaration' || astNode.type === 'ExportSpecifier';
-};
-/**
- * Reduces the provided node to the appropriate node for evaluating JSDoc comment status.
- *
- * @param {ASTNode} node An AST node.
- * @param {SourceCode} sourceCode The ESLint SourceCode.
- * @returns {ASTNode} The AST node that can be evaluated for appropriate JSDoc comments.
- * @private
- */
-
-
-const getReducedASTNode = function getReducedASTNode(node, sourceCode) {
-  let parent = node.parent;
-
-  switch (node.type) {
-    case 'TSInterfaceDeclaration':
-    case 'TSTypeAliasDeclaration':
-    case 'TSEnumDeclaration':
-    case 'ClassDeclaration':
-    case 'FunctionDeclaration':
-      return looksLikeExport(parent) ? parent : node;
-
-    case 'ClassExpression':
-    case 'ObjectExpression':
-    case 'ArrowFunctionExpression':
-    case 'FunctionExpression':
-      if (!['CallExpression', 'OptionalCallExpression', 'NewExpression'].includes(parent.type)) {
-        while (!sourceCode.getCommentsBefore(parent).length && !/Function/u.test(parent.type) && parent.type !== 'MethodDefinition' && parent.type !== 'Property') {
-          parent = parent.parent;
-
-          if (!parent) {
-            break;
-          }
-        }
-
-        if (parent && parent.type !== 'FunctionDeclaration' && parent.type !== 'Program') {
-          return parent;
-        }
-      }
-
-      return node;
-
-    default:
-      return node;
-  }
-};
-/**
- * Retrieves the JSDoc comment for a given node.
- *
- * @param {SourceCode} sourceCode The ESLint SourceCode
- * @param {ASTNode} node The AST node to get the comment for.
- * @param {object} settings The settings in context
- * @returns {Token|null} The Block comment token containing the JSDoc comment
- *    for the given node or null if not found.
- * @public
- * @deprecated
- */
-
-
-exports.getReducedASTNode = getReducedASTNode;
-
-const getJSDocComment = function getJSDocComment(sourceCode, node, settings) {
-  /**
-   * Checks for the presence of a JSDoc comment for the given node and returns it.
-   *
-   * @param {ASTNode} astNode The AST node to get the comment for.
-   * @returns {Token|null} The Block comment token containing the JSDoc comment
-   *    for the given node or null if not found.
-   * @private
-   */
-  const findJSDocComment = astNode => {
-    const minLines = settings.minLines,
-          maxLines = settings.maxLines;
-    let currentNode = astNode;
-    let tokenBefore = null;
-
-    while (currentNode) {
-      tokenBefore = sourceCode.getTokenBefore(currentNode, {
-        includeComments: true
-      });
-      const decorator = getDecorator(tokenBefore, sourceCode);
-
-      if (decorator) {
-        currentNode = decorator;
-        continue;
-      }
-
-      if (!tokenBefore || !isCommentToken(tokenBefore)) {
-        return null;
-      }
-
-      if (tokenBefore.type === 'Line') {
-        currentNode = tokenBefore;
-        continue;
-      }
-
-      break;
-    }
-
-    if (tokenBefore.type === 'Block' && tokenBefore.value.charAt(0) === '*' && currentNode.loc.start.line - tokenBefore.loc.end.line >= minLines && currentNode.loc.start.line - tokenBefore.loc.end.line <= maxLines) {
-      return tokenBefore;
-    }
-
-    return null;
-  };
-
-  const reducedNode = getReducedASTNode(node, sourceCode);
-  /* istanbul ignore next */
-
-  if (!reducedNode) {
-    return null;
-  }
-
-  return findJSDocComment(reducedNode);
-};
-
-var _default = getJSDocComment;
-exports.default = _default;
-//# sourceMappingURL=getJSDocComment.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js.map b/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js.map
deleted file mode 100644
index b80b960..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/eslint/getJSDocComment.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/eslint/getJSDocComment.js"],"names":["isCommentToken","token","type","getDecorator","sourceCode","tokenBefore","getTokenBefore","includeComments","value","looksLikeExport","astNode","getReducedASTNode","node","parent","includes","getCommentsBefore","length","test","getJSDocComment","settings","findJSDocComment","minLines","maxLines","currentNode","decorator","charAt","loc","start","line","end","reducedNode"],"mappings":"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","sourcesContent":["/**\n * Obtained originally from {@link https://github.com/eslint/eslint/blob/master/lib/util/source-code.js#L313}\n *\n * @license MIT\n */\n\n/**\n * Checks if the given token is a comment token or not.\n *\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nconst isCommentToken = (token) => {\n  return token.type === 'Line' || token.type === 'Block' || token.type === 'Shebang';\n};\n\nconst getDecorator = (token, sourceCode) => {\n  if (token && token.type === 'Identifier') {\n    const tokenBefore = sourceCode.getTokenBefore(token, {includeComments: true});\n    if (tokenBefore && tokenBefore.type === 'Punctuator' && tokenBefore.value === '@') {\n      return tokenBefore;\n    }\n  }\n\n  return false;\n};\n\n/**\n * Check to see if its a ES6 export declaration.\n *\n * @param {ASTNode} astNode An AST node.\n * @returns {boolean} whether the given node represents an export declaration.\n * @private\n */\nconst looksLikeExport = function (astNode) {\n  return astNode.type === 'ExportDefaultDeclaration' || astNode.type === 'ExportNamedDeclaration' ||\n    astNode.type === 'ExportAllDeclaration' || astNode.type === 'ExportSpecifier';\n};\n\n/**\n * Reduces the provided node to the appropriate node for evaluating JSDoc comment status.\n *\n * @param {ASTNode} node An AST node.\n * @param {SourceCode} sourceCode The ESLint SourceCode.\n * @returns {ASTNode} The AST node that can be evaluated for appropriate JSDoc comments.\n * @private\n */\nconst getReducedASTNode = function (node, sourceCode) {\n  let {parent} = node;\n\n  switch (node.type) {\n  case 'TSInterfaceDeclaration':\n  case 'TSTypeAliasDeclaration':\n  case 'TSEnumDeclaration':\n  case 'ClassDeclaration':\n  case 'FunctionDeclaration':\n    return looksLikeExport(parent) ? parent : node;\n\n  case 'ClassExpression':\n  case 'ObjectExpression':\n  case 'ArrowFunctionExpression':\n  case 'FunctionExpression':\n    if (\n      !['CallExpression', 'OptionalCallExpression', 'NewExpression'].includes(parent.type)\n    ) {\n      while (\n        !sourceCode.getCommentsBefore(parent).length &&\n        !/Function/u.test(parent.type) &&\n        parent.type !== 'MethodDefinition' &&\n        parent.type !== 'Property'\n      ) {\n        parent = parent.parent;\n\n        if (!parent) {\n          break;\n        }\n      }\n\n      if (parent && parent.type !== 'FunctionDeclaration' && parent.type !== 'Program') {\n        return parent;\n      }\n    }\n\n    return node;\n\n  default:\n    return node;\n  }\n};\n\n/**\n * Retrieves the JSDoc comment for a given node.\n *\n * @param {SourceCode} sourceCode The ESLint SourceCode\n * @param {ASTNode} node The AST node to get the comment for.\n * @param {object} settings The settings in context\n * @returns {Token|null} The Block comment token containing the JSDoc comment\n *    for the given node or null if not found.\n * @public\n * @deprecated\n */\nconst getJSDocComment = function (sourceCode, node, settings) {\n  /**\n   * Checks for the presence of a JSDoc comment for the given node and returns it.\n   *\n   * @param {ASTNode} astNode The AST node to get the comment for.\n   * @returns {Token|null} The Block comment token containing the JSDoc comment\n   *    for the given node or null if not found.\n   * @private\n   */\n  const findJSDocComment = (astNode) => {\n    const {minLines, maxLines} = settings;\n    let currentNode = astNode;\n    let tokenBefore = null;\n\n    while (currentNode) {\n      tokenBefore = sourceCode.getTokenBefore(currentNode, {includeComments: true});\n      const decorator = getDecorator(tokenBefore, sourceCode);\n      if (decorator) {\n        currentNode = decorator;\n        continue;\n      }\n      if (!tokenBefore || !isCommentToken(tokenBefore)) {\n        return null;\n      }\n      if (tokenBefore.type === 'Line') {\n        currentNode = tokenBefore;\n        continue;\n      }\n      break;\n    }\n\n    if (\n      tokenBefore.type === 'Block' &&\n      tokenBefore.value.charAt(0) === '*' &&\n      currentNode.loc.start.line - tokenBefore.loc.end.line >= minLines &&\n      currentNode.loc.start.line - tokenBefore.loc.end.line <= maxLines\n    ) {\n      return tokenBefore;\n    }\n\n    return null;\n  };\n\n  const reducedNode = getReducedASTNode(node, sourceCode);\n  /* istanbul ignore next */\n  if (!reducedNode) {\n    return null;\n  }\n\n  return findJSDocComment(reducedNode);\n};\n\nexport {getReducedASTNode};\nexport default getJSDocComment;\n"],"file":"getJSDocComment.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/exportParser.js b/node_modules/eslint-plugin-jsdoc/dist/exportParser.js
deleted file mode 100644
index c579812..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/exportParser.js
+++ /dev/null
@@ -1,546 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _debug = _interopRequireDefault(require("debug"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const debug = (0, _debug.default)('requireExportJsdoc');
-
-const createNode = function createNode() {
-  return {
-    props: {}
-  };
-};
-
-const getSymbolValue = function getSymbolValue(symbol) {
-  /* istanbul ignore next */
-  if (!symbol) {
-    /* istanbul ignore next */
-    return null;
-  }
-  /* istanbul ignore next */
-
-
-  if (symbol.type === 'literal') {
-    return symbol.value.value;
-  }
-  /* istanbul ignore next */
-
-
-  return null;
-};
-
-const getIdentifier = function getIdentifier(node, globals, scope, opts) {
-  if (opts.simpleIdentifier) {
-    // Type is Identier for noncomputed properties
-    const identifierLiteral = createNode();
-    identifierLiteral.type = 'literal';
-    identifierLiteral.value = {
-      value: node.name
-    };
-    return identifierLiteral;
-  }
-  /* istanbul ignore next */
-
-
-  const block = scope || globals; // As scopes are not currently supported, they are not traversed upwards recursively
-
-  if (block.props[node.name]) {
-    return block.props[node.name];
-  } // Seems this will only be entered once scopes added and entered
-
-  /* istanbul ignore next */
-
-
-  if (globals.props[node.name]) {
-    return globals.props[node.name];
-  }
-
-  return null;
-};
-
-let _createSymbol = null;
-
-const getSymbol = function getSymbol(node, globals, scope, opt) {
-  const opts = opt || {};
-
-  switch (node.type) {
-    case 'Identifier':
-      {
-        return getIdentifier(node, globals, scope, opts);
-      }
-
-    case 'MemberExpression':
-      {
-        const obj = getSymbol(node.object, globals, scope, opts);
-        const propertySymbol = getSymbol(node.property, globals, scope, {
-          simpleIdentifier: !node.computed
-        });
-        const propertyValue = getSymbolValue(propertySymbol);
-        /* istanbul ignore next */
-
-        if (obj && propertyValue && obj.props[propertyValue]) {
-          const block = obj.props[propertyValue];
-          return block;
-        }
-        /*
-        if (opts.createMissingProps && propertyValue) {
-          obj.props[propertyValue] = createNode();
-           return obj.props[propertyValue];
-        }
-        */
-
-        /* istanbul ignore next */
-
-
-        debug(`MemberExpression: Missing property ${node.property.name}`);
-        /* istanbul ignore next */
-
-        return null;
-      }
-
-    case 'ClassDeclaration':
-    case 'ClassExpression':
-    case 'FunctionExpression':
-    case 'FunctionDeclaration':
-    case 'ArrowFunctionExpression':
-      {
-        const val = createNode();
-        val.props.prototype = createNode();
-        val.props.prototype.type = 'object';
-        val.type = 'object';
-        val.value = node;
-        return val;
-      }
-
-    case 'AssignmentExpression':
-      {
-        return _createSymbol(node.left, globals, node.right, scope, opts);
-      }
-
-    case 'ClassBody':
-      {
-        const val = createNode();
-        node.body.forEach(method => {
-          val.props[method.key.name] = createNode();
-          val.props[method.key.name].type = 'object';
-          val.props[method.key.name].value = method.value;
-        });
-        val.type = 'object';
-        val.value = node;
-        return val;
-      }
-
-    case 'ObjectExpression':
-      {
-        const val = createNode();
-        val.type = 'object';
-        node.properties.forEach(prop => {
-          if ([// @typescript-eslint/parser, espree, acorn, etc.
-          'SpreadElement', // babel-eslint
-          'ExperimentalSpreadProperty'].includes(prop.type)) {
-            return;
-          }
-
-          const propVal = getSymbol(prop.value, globals, scope, opts);
-          /* istanbul ignore next */
-
-          if (propVal) {
-            val.props[prop.key.name] = propVal;
-          }
-        });
-        return val;
-      }
-
-    case 'Literal':
-      {
-        const val = createNode();
-        val.type = 'literal';
-        val.value = node;
-        return val;
-      }
-  }
-  /* istanbul ignore next */
-
-
-  return null;
-};
-
-const createBlockSymbol = function createBlockSymbol(block, name, value, globals, isGlobal) {
-  block.props[name] = value;
-
-  if (isGlobal && globals.props.window && globals.props.window.special) {
-    globals.props.window.props[name] = value;
-  }
-};
-
-_createSymbol = function createSymbol(node, globals, value, scope, isGlobal) {
-  const block = scope || globals;
-  let symbol;
-
-  switch (node.type) {
-    case 'FunctionDeclaration': // Fallthrough
-
-    case 'ClassDeclaration':
-      {
-        if (node.id && node.id.type === 'Identifier') {
-          return _createSymbol(node.id, globals, node, globals);
-        }
-
-        break;
-      }
-
-    case 'Identifier':
-      {
-        if (value) {
-          const valueSymbol = getSymbol(value, globals, block);
-          /* istanbul ignore next */
-
-          if (valueSymbol) {
-            createBlockSymbol(block, node.name, valueSymbol, globals, isGlobal);
-            return block.props[node.name];
-          }
-          /* istanbul ignore next */
-
-
-          debug('Identifier: Missing value symbol for %s', node.name);
-        } else {
-          createBlockSymbol(block, node.name, createNode(), globals, isGlobal);
-          return block.props[node.name];
-        }
-        /* istanbul ignore next */
-
-
-        break;
-      }
-
-    case 'MemberExpression':
-      {
-        symbol = getSymbol(node.object, globals, block);
-        const propertySymbol = getSymbol(node.property, globals, block, {
-          simpleIdentifier: !node.computed
-        });
-        const propertyValue = getSymbolValue(propertySymbol);
-
-        if (symbol && propertyValue) {
-          createBlockSymbol(symbol, propertyValue, getSymbol(value, globals, block), globals, isGlobal);
-          return symbol.props[propertyValue];
-        }
-        /* istanbul ignore next */
-
-
-        debug('MemberExpression: Missing symbol: %s', node.property.name);
-        break;
-      }
-  }
-
-  return null;
-}; // Creates variables from variable definitions
-
-
-const initVariables = function initVariables(node, globals, opts) {
-  switch (node.type) {
-    case 'Program':
-      {
-        node.body.forEach(childNode => {
-          initVariables(childNode, globals, opts);
-        });
-        break;
-      }
-
-    case 'ExpressionStatement':
-      {
-        initVariables(node.expression, globals, opts);
-        break;
-      }
-
-    case 'VariableDeclaration':
-      {
-        node.declarations.forEach(declaration => {
-          // let and const
-          const symbol = _createSymbol(declaration.id, globals, null, globals);
-
-          if (opts.initWindow && node.kind === 'var' && globals.props.window) {
-            // If var, also add to window
-            globals.props.window.props[declaration.id.name] = symbol;
-          }
-        });
-        break;
-      }
-
-    case 'ExportNamedDeclaration':
-      {
-        if (node.declaration) {
-          initVariables(node.declaration, globals, opts);
-        }
-
-        break;
-      }
-  }
-}; // Populates variable maps using AST
-
-
-const mapVariables = function mapVariables(node, globals, opt, isExport) {
-  /* istanbul ignore next */
-  const opts = opt || {};
-  /* istanbul ignore next */
-
-  switch (node.type) {
-    case 'Program':
-      {
-        if (opts.ancestorsOnly) {
-          return false;
-        }
-
-        node.body.forEach(childNode => {
-          mapVariables(childNode, globals, opts);
-        });
-        break;
-      }
-
-    case 'ExpressionStatement':
-      {
-        mapVariables(node.expression, globals, opts);
-        break;
-      }
-
-    case 'AssignmentExpression':
-      {
-        _createSymbol(node.left, globals, node.right);
-
-        break;
-      }
-
-    case 'VariableDeclaration':
-      {
-        node.declarations.forEach(declaration => {
-          const isGlobal = opts.initWindow && node.kind === 'var' && globals.props.window;
-
-          const symbol = _createSymbol(declaration.id, globals, declaration.init, globals, isGlobal);
-
-          if (symbol && isExport) {
-            symbol.exported = true;
-          }
-        });
-        break;
-      }
-
-    case 'FunctionDeclaration':
-      {
-        /* istanbul ignore next */
-        if (node.id.type === 'Identifier') {
-          _createSymbol(node.id, globals, node, globals, true);
-        }
-
-        break;
-      }
-
-    case 'ExportDefaultDeclaration':
-      {
-        const symbol = _createSymbol(node.declaration, globals, node.declaration);
-
-        if (symbol) {
-          symbol.exported = true;
-        } else if (!node.id) {
-          globals.ANONYMOUS_DEFAULT = node.declaration;
-        }
-
-        break;
-      }
-
-    case 'ExportNamedDeclaration':
-      {
-        if (node.declaration) {
-          if (node.declaration.type === 'VariableDeclaration') {
-            mapVariables(node.declaration, globals, opts, true);
-          } else {
-            const symbol = _createSymbol(node.declaration, globals, node.declaration);
-            /* istanbul ignore next */
-
-
-            if (symbol) {
-              symbol.exported = true;
-            }
-          }
-        }
-
-        node.specifiers.forEach(specifier => {
-          mapVariables(specifier, globals, opts);
-        });
-        break;
-      }
-
-    case 'ExportSpecifier':
-      {
-        const symbol = getSymbol(node.local, globals, globals);
-        /* istanbul ignore next */
-
-        if (symbol) {
-          symbol.exported = true;
-        }
-
-        break;
-      }
-
-    case 'ClassDeclaration':
-      {
-        _createSymbol(node.id, globals, node.body, globals);
-
-        break;
-      }
-
-    default:
-      {
-        /* istanbul ignore next */
-        return false;
-      }
-  }
-
-  return true;
-};
-
-const findNode = function findNode(node, block, cache) {
-  let blockCache = cache || [];
-  /* istanbul ignore next */
-
-  if (!block || blockCache.includes(block)) {
-    return false;
-  }
-
-  blockCache = blockCache.slice();
-  blockCache.push(block);
-
-  if (block.type === 'object') {
-    if (block.value === node) {
-      return true;
-    }
-  }
-
-  const props = block.props;
-
-  for (const prop in props) {
-    /* istanbul ignore next */
-    if (Object.prototype.hasOwnProperty.call(props, prop)) {
-      const propval = props[prop]; // Only check node if it had resolvable value
-
-      if (propval && findNode(node, propval, blockCache)) {
-        return true;
-      }
-    }
-  }
-
-  return false;
-};
-
-const findExportedNode = function findExportedNode(block, node, cache) {
-  if (block.ANONYMOUS_DEFAULT === node) {
-    return true;
-  }
-  /* istanbul ignore next */
-
-
-  if (block === null) {
-    return false;
-  }
-
-  const blockCache = cache || [];
-  const props = block.props;
-
-  for (const key in props) {
-    /* istanbul ignore next */
-    if (Object.prototype.hasOwnProperty.call(props, key)) {
-      blockCache.push(props[key]);
-
-      if (props[key].exported) {
-        if (node === props[key].value || findNode(node, props[key].value)) {
-          return true;
-        }
-      } // No need to check `props[key]` for exported nodes as ESM
-      //  exports are only global
-
-    }
-  }
-
-  return false;
-};
-
-const isNodeExported = function isNodeExported(node, globals, opt) {
-  if (opt.initModuleExports && globals.props.module && globals.props.module.props.exports) {
-    if (findNode(node, globals.props.module.props.exports)) {
-      return true;
-    }
-  }
-
-  if (opt.initWindow && globals.props.window) {
-    if (findNode(node, globals.props.window)) {
-      return true;
-    }
-  }
-
-  if (opt.esm && findExportedNode(globals, node)) {
-    return true;
-  }
-
-  return false;
-};
-
-const parseRecursive = function parseRecursive(node, globalVars, opts) {
-  // Iterate from top using recursion - stop at first processed node from top
-  if (node.parent) {
-    if (parseRecursive(node.parent, globalVars, opts)) {
-      return true;
-    }
-  }
-
-  return mapVariables(node, globalVars, opts);
-};
-
-const parse = function parse(ast, node, opt) {
-  /* istanbul ignore next */
-  const opts = opt || {
-    ancestorsOnly: false,
-    esm: true,
-    initModuleExports: true,
-    initWindow: true
-  };
-  const globalVars = createNode();
-
-  if (opts.initModuleExports) {
-    globalVars.props.module = createNode();
-    globalVars.props.module.props.exports = createNode();
-    globalVars.props.exports = globalVars.props.module.props.exports;
-  }
-
-  if (opts.initWindow) {
-    globalVars.props.window = createNode();
-    globalVars.props.window.special = true;
-  }
-
-  if (opts.ancestorsOnly) {
-    parseRecursive(node, globalVars, opts);
-  } else {
-    initVariables(ast, globalVars, opts);
-    mapVariables(ast, globalVars, opts);
-  }
-
-  return {
-    globalVars
-  };
-};
-
-const isExported = function isExported(node, parseResult, opt) {
-  return isNodeExported(node, parseResult.globalVars, opt);
-};
-
-var _default = {
-  isExported,
-  parse
-};
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=exportParser.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/exportParser.js.map b/node_modules/eslint-plugin-jsdoc/dist/exportParser.js.map
deleted file mode 100644
index bb7c20c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/exportParser.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/exportParser.js"],"names":["debug","createNode","props","getSymbolValue","symbol","type","value","getIdentifier","node","globals","scope","opts","simpleIdentifier","identifierLiteral","name","block","createSymbol","getSymbol","opt","obj","object","propertySymbol","property","computed","propertyValue","val","prototype","left","right","body","forEach","method","key","properties","prop","includes","propVal","createBlockSymbol","isGlobal","window","special","id","valueSymbol","initVariables","childNode","expression","declarations","declaration","initWindow","kind","mapVariables","isExport","ancestorsOnly","init","exported","ANONYMOUS_DEFAULT","specifiers","specifier","local","findNode","cache","blockCache","slice","push","Object","hasOwnProperty","call","propval","findExportedNode","isNodeExported","initModuleExports","module","exports","esm","parseRecursive","globalVars","parent","parse","ast","isExported","parseResult"],"mappings":"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","sourcesContent":["import debugModule from 'debug';\n\nconst debug = debugModule('requireExportJsdoc');\n\nconst createNode = function () {\n  return {\n    props: {},\n  };\n};\n\nconst getSymbolValue = function (symbol) {\n  /* istanbul ignore next */\n  if (!symbol) {\n    /* istanbul ignore next */\n    return null;\n  }\n  /* istanbul ignore next */\n  if (symbol.type === 'literal') {\n    return symbol.value.value;\n  }\n\n  /* istanbul ignore next */\n  return null;\n};\n\nconst getIdentifier = function (node, globals, scope, opts) {\n  if (opts.simpleIdentifier) {\n    // Type is Identier for noncomputed properties\n    const identifierLiteral = createNode();\n    identifierLiteral.type = 'literal';\n    identifierLiteral.value = {value: node.name};\n\n    return identifierLiteral;\n  }\n\n  /* istanbul ignore next */\n  const block = scope || globals;\n\n  // As scopes are not currently supported, they are not traversed upwards recursively\n  if (block.props[node.name]) {\n    return block.props[node.name];\n  }\n\n  // Seems this will only be entered once scopes added and entered\n  /* istanbul ignore next */\n  if (globals.props[node.name]) {\n    return globals.props[node.name];\n  }\n\n  return null;\n};\n\nlet createSymbol = null;\nconst getSymbol = function (node, globals, scope, opt) {\n  const opts = opt || {};\n  switch (node.type) {\n  case 'Identifier': {\n    return getIdentifier(node, globals, scope, opts);\n  } case 'MemberExpression': {\n    const obj = getSymbol(node.object, globals, scope, opts);\n    const propertySymbol = getSymbol(node.property, globals, scope, {simpleIdentifier: !node.computed});\n    const propertyValue = getSymbolValue(propertySymbol);\n\n    /* istanbul ignore next */\n    if (obj && propertyValue && obj.props[propertyValue]) {\n      const block = obj.props[propertyValue];\n\n      return block;\n    }\n\n    /*\n    if (opts.createMissingProps && propertyValue) {\n      obj.props[propertyValue] = createNode();\n\n      return obj.props[propertyValue];\n    }\n    */\n    /* istanbul ignore next */\n    debug(`MemberExpression: Missing property ${node.property.name}`);\n\n    /* istanbul ignore next */\n    return null;\n  } case 'ClassDeclaration': case 'ClassExpression': case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': {\n    const val = createNode();\n    val.props.prototype = createNode();\n    val.props.prototype.type = 'object';\n    val.type = 'object';\n    val.value = node;\n\n    return val;\n  } case 'AssignmentExpression': {\n    return createSymbol(node.left, globals, node.right, scope, opts);\n  } case 'ClassBody': {\n    const val = createNode();\n    node.body.forEach((method) => {\n      val.props[method.key.name] = createNode();\n      val.props[method.key.name].type = 'object';\n      val.props[method.key.name].value = method.value;\n    });\n    val.type = 'object';\n    val.value = node;\n\n    return val;\n  } case 'ObjectExpression': {\n    const val = createNode();\n    val.type = 'object';\n    node.properties.forEach((prop) => {\n      if ([\n        // @typescript-eslint/parser, espree, acorn, etc.\n        'SpreadElement',\n\n        // babel-eslint\n        'ExperimentalSpreadProperty',\n      ].includes(prop.type)) {\n        return;\n      }\n      const propVal = getSymbol(prop.value, globals, scope, opts);\n      /* istanbul ignore next */\n      if (propVal) {\n        val.props[prop.key.name] = propVal;\n      }\n    });\n\n    return val;\n  } case 'Literal': {\n    const val = createNode();\n    val.type = 'literal';\n    val.value = node;\n\n    return val;\n  }\n  }\n\n  /* istanbul ignore next */\n  return null;\n};\n\nconst createBlockSymbol = function (block, name, value, globals, isGlobal) {\n  block.props[name] = value;\n  if (isGlobal && globals.props.window && globals.props.window.special) {\n    globals.props.window.props[name] = value;\n  }\n};\n\ncreateSymbol = function (node, globals, value, scope, isGlobal) {\n  const block = scope || globals;\n  let symbol;\n  switch (node.type) {\n  case 'FunctionDeclaration':\n\n    // Fallthrough\n  case 'ClassDeclaration': {\n    if (node.id && node.id.type === 'Identifier') {\n      return createSymbol(node.id, globals, node, globals);\n    }\n    break;\n  } case 'Identifier': {\n    if (value) {\n      const valueSymbol = getSymbol(value, globals, block);\n      /* istanbul ignore next */\n      if (valueSymbol) {\n        createBlockSymbol(block, node.name, valueSymbol, globals, isGlobal);\n\n        return block.props[node.name];\n      }\n      /* istanbul ignore next */\n      debug('Identifier: Missing value symbol for %s', node.name);\n    } else {\n      createBlockSymbol(block, node.name, createNode(), globals, isGlobal);\n\n      return block.props[node.name];\n    }\n    /* istanbul ignore next */\n    break;\n  } case 'MemberExpression': {\n    symbol = getSymbol(node.object, globals, block);\n\n    const propertySymbol = getSymbol(node.property, globals, block, {simpleIdentifier: !node.computed});\n    const propertyValue = getSymbolValue(propertySymbol);\n    if (symbol && propertyValue) {\n      createBlockSymbol(symbol, propertyValue, getSymbol(value, globals, block), globals, isGlobal);\n\n      return symbol.props[propertyValue];\n    }\n    /* istanbul ignore next */\n    debug('MemberExpression: Missing symbol: %s', node.property.name);\n    break;\n  }\n  }\n\n  return null;\n};\n\n// Creates variables from variable definitions\nconst initVariables = function (node, globals, opts) {\n  switch (node.type) {\n  case 'Program': {\n    node.body.forEach((childNode) => {\n      initVariables(childNode, globals, opts);\n    });\n    break;\n  } case 'ExpressionStatement': {\n    initVariables(node.expression, globals, opts);\n    break;\n  } case 'VariableDeclaration': {\n    node.declarations.forEach((declaration) => {\n      // let and const\n      const symbol = createSymbol(declaration.id, globals, null, globals);\n      if (opts.initWindow && node.kind === 'var' && globals.props.window) {\n        // If var, also add to window\n        globals.props.window.props[declaration.id.name] = symbol;\n      }\n    });\n    break;\n  } case 'ExportNamedDeclaration': {\n    if (node.declaration) {\n      initVariables(node.declaration, globals, opts);\n    }\n    break;\n  }\n  }\n};\n\n// Populates variable maps using AST\nconst mapVariables = function (node, globals, opt, isExport) {\n  /* istanbul ignore next */\n  const opts = opt || {};\n  /* istanbul ignore next */\n  switch (node.type) {\n  case 'Program': {\n    if (opts.ancestorsOnly) {\n      return false;\n    }\n    node.body.forEach((childNode) => {\n      mapVariables(childNode, globals, opts);\n    });\n    break;\n  } case 'ExpressionStatement': {\n    mapVariables(node.expression, globals, opts);\n    break;\n  } case 'AssignmentExpression': {\n    createSymbol(node.left, globals, node.right);\n    break;\n  } case 'VariableDeclaration': {\n    node.declarations.forEach((declaration) => {\n      const isGlobal = opts.initWindow && node.kind === 'var' && globals.props.window;\n      const symbol = createSymbol(declaration.id, globals, declaration.init, globals, isGlobal);\n      if (symbol && isExport) {\n        symbol.exported = true;\n      }\n    });\n    break;\n  } case 'FunctionDeclaration': {\n    /* istanbul ignore next */\n    if (node.id.type === 'Identifier') {\n      createSymbol(node.id, globals, node, globals, true);\n    }\n    break;\n  } case 'ExportDefaultDeclaration': {\n    const symbol = createSymbol(node.declaration, globals, node.declaration);\n    if (symbol) {\n      symbol.exported = true;\n    } else if (!node.id) {\n      globals.ANONYMOUS_DEFAULT = node.declaration;\n    }\n    break;\n  } case 'ExportNamedDeclaration': {\n    if (node.declaration) {\n      if (node.declaration.type === 'VariableDeclaration') {\n        mapVariables(node.declaration, globals, opts, true);\n      } else {\n        const symbol = createSymbol(node.declaration, globals, node.declaration);\n        /* istanbul ignore next */\n        if (symbol) {\n          symbol.exported = true;\n        }\n      }\n    }\n    node.specifiers.forEach((specifier) => {\n      mapVariables(specifier, globals, opts);\n    });\n    break;\n  } case 'ExportSpecifier': {\n    const symbol = getSymbol(node.local, globals, globals);\n    /* istanbul ignore next */\n    if (symbol) {\n      symbol.exported = true;\n    }\n    break;\n  } case 'ClassDeclaration': {\n    createSymbol(node.id, globals, node.body, globals);\n    break;\n  } default: {\n    /* istanbul ignore next */\n    return false;\n  }\n  }\n\n  return true;\n};\n\nconst findNode = function (node, block, cache) {\n  let blockCache = cache || [];\n  /* istanbul ignore next */\n  if (!block || blockCache.includes(block)) {\n    return false;\n  }\n  blockCache = blockCache.slice();\n  blockCache.push(block);\n\n  if (block.type === 'object') {\n    if (block.value === node) {\n      return true;\n    }\n  }\n\n  const {props} = block;\n  for (const prop in props) {\n    /* istanbul ignore next */\n    if (Object.prototype.hasOwnProperty.call(props, prop)) {\n      const propval = props[prop];\n\n      // Only check node if it had resolvable value\n      if (propval && findNode(node, propval, blockCache)) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n};\n\nconst findExportedNode = function (block, node, cache) {\n  if (block.ANONYMOUS_DEFAULT === node) {\n    return true;\n  }\n  /* istanbul ignore next */\n  if (block === null) {\n    return false;\n  }\n  const blockCache = cache || [];\n  const {props} = block;\n  for (const key in props) {\n    /* istanbul ignore next */\n    if (Object.prototype.hasOwnProperty.call(props, key)) {\n      blockCache.push(props[key]);\n      if (props[key].exported) {\n        if (node === props[key].value || findNode(node, props[key].value)) {\n          return true;\n        }\n      }\n\n      // No need to check `props[key]` for exported nodes as ESM\n      //  exports are only global\n    }\n  }\n\n  return false;\n};\n\nconst isNodeExported = function (node, globals, opt) {\n  if (opt.initModuleExports && globals.props.module && globals.props.module.props.exports) {\n    if (findNode(node, globals.props.module.props.exports)) {\n      return true;\n    }\n  }\n\n  if (opt.initWindow && globals.props.window) {\n    if (findNode(node, globals.props.window)) {\n      return true;\n    }\n  }\n\n  if (opt.esm && findExportedNode(globals, node)) {\n    return true;\n  }\n\n  return false;\n};\n\nconst parseRecursive = function (node, globalVars, opts) {\n  // Iterate from top using recursion - stop at first processed node from top\n  if (node.parent) {\n    if (parseRecursive(node.parent, globalVars, opts)) {\n      return true;\n    }\n  }\n\n  return mapVariables(node, globalVars, opts);\n};\n\nconst parse = function (ast, node, opt) {\n  /* istanbul ignore next */\n  const opts = opt || {\n    ancestorsOnly: false,\n    esm: true,\n    initModuleExports: true,\n    initWindow: true,\n  };\n\n  const globalVars = createNode();\n  if (opts.initModuleExports) {\n    globalVars.props.module = createNode();\n    globalVars.props.module.props.exports = createNode();\n    globalVars.props.exports = globalVars.props.module.props.exports;\n  }\n  if (opts.initWindow) {\n    globalVars.props.window = createNode();\n    globalVars.props.window.special = true;\n  }\n\n  if (opts.ancestorsOnly) {\n    parseRecursive(node, globalVars, opts);\n  } else {\n    initVariables(ast, globalVars, opts);\n    mapVariables(ast, globalVars, opts);\n  }\n\n  return {\n    globalVars,\n  };\n};\n\nconst isExported = function (node, parseResult, opt) {\n  return isNodeExported(node, parseResult.globalVars, opt);\n};\n\nexport default {\n  isExported,\n  parse,\n};\n"],"file":"exportParser.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/index.js b/node_modules/eslint-plugin-jsdoc/dist/index.js
deleted file mode 100644
index 932938b..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/index.js
+++ /dev/null
@@ -1,172 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _checkAccess = _interopRequireDefault(require("./rules/checkAccess"));
-
-var _checkAlignment = _interopRequireDefault(require("./rules/checkAlignment"));
-
-var _checkExamples = _interopRequireDefault(require("./rules/checkExamples"));
-
-var _checkIndentation = _interopRequireDefault(require("./rules/checkIndentation"));
-
-var _checkParamNames = _interopRequireDefault(require("./rules/checkParamNames"));
-
-var _checkPropertyNames = _interopRequireDefault(require("./rules/checkPropertyNames"));
-
-var _checkSyntax = _interopRequireDefault(require("./rules/checkSyntax"));
-
-var _checkTagNames = _interopRequireDefault(require("./rules/checkTagNames"));
-
-var _checkTypes = _interopRequireDefault(require("./rules/checkTypes"));
-
-var _checkValues = _interopRequireDefault(require("./rules/checkValues"));
-
-var _emptyTags = _interopRequireDefault(require("./rules/emptyTags"));
-
-var _implementsOnClasses = _interopRequireDefault(require("./rules/implementsOnClasses"));
-
-var _matchDescription = _interopRequireDefault(require("./rules/matchDescription"));
-
-var _newlineAfterDescription = _interopRequireDefault(require("./rules/newlineAfterDescription"));
-
-var _noBadBlocks = _interopRequireDefault(require("./rules/noBadBlocks"));
-
-var _noDefaults = _interopRequireDefault(require("./rules/noDefaults"));
-
-var _noTypes = _interopRequireDefault(require("./rules/noTypes"));
-
-var _noUndefinedTypes = _interopRequireDefault(require("./rules/noUndefinedTypes"));
-
-var _requireDescriptionCompleteSentence = _interopRequireDefault(require("./rules/requireDescriptionCompleteSentence"));
-
-var _requireDescription = _interopRequireDefault(require("./rules/requireDescription"));
-
-var _requireExample = _interopRequireDefault(require("./rules/requireExample"));
-
-var _requireFileOverview = _interopRequireDefault(require("./rules/requireFileOverview"));
-
-var _requireHyphenBeforeParamDescription = _interopRequireDefault(require("./rules/requireHyphenBeforeParamDescription"));
-
-var _requireParamName = _interopRequireDefault(require("./rules/requireParamName"));
-
-var _requireParam = _interopRequireDefault(require("./rules/requireParam"));
-
-var _requireParamDescription = _interopRequireDefault(require("./rules/requireParamDescription"));
-
-var _requireParamType = _interopRequireDefault(require("./rules/requireParamType"));
-
-var _requireProperty = _interopRequireDefault(require("./rules/requireProperty"));
-
-var _requirePropertyDescription = _interopRequireDefault(require("./rules/requirePropertyDescription"));
-
-var _requirePropertyName = _interopRequireDefault(require("./rules/requirePropertyName"));
-
-var _requirePropertyType = _interopRequireDefault(require("./rules/requirePropertyType"));
-
-var _requireReturns = _interopRequireDefault(require("./rules/requireReturns"));
-
-var _requireReturnsCheck = _interopRequireDefault(require("./rules/requireReturnsCheck"));
-
-var _requireReturnsDescription = _interopRequireDefault(require("./rules/requireReturnsDescription"));
-
-var _requireReturnsType = _interopRequireDefault(require("./rules/requireReturnsType"));
-
-var _validTypes = _interopRequireDefault(require("./rules/validTypes"));
-
-var _requireJsdoc = _interopRequireDefault(require("./rules/requireJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/* eslint-disable import/max-dependencies */
-var _default = {
-  configs: {
-    recommended: {
-      plugins: ['jsdoc'],
-      rules: {
-        'jsdoc/check-access': 'warn',
-        'jsdoc/check-alignment': 'warn',
-        'jsdoc/check-examples': 'off',
-        'jsdoc/check-indentation': 'off',
-        'jsdoc/check-param-names': 'warn',
-        'jsdoc/check-property-names': 'warn',
-        'jsdoc/check-syntax': 'off',
-        'jsdoc/check-tag-names': 'warn',
-        'jsdoc/check-types': 'warn',
-        'jsdoc/check-values': 'warn',
-        'jsdoc/empty-tags': 'warn',
-        'jsdoc/implements-on-classes': 'warn',
-        'jsdoc/match-description': 'off',
-        'jsdoc/newline-after-description': 'warn',
-        'jsdoc/no-bad-blocks': 'off',
-        'jsdoc/no-defaults': 'off',
-        'jsdoc/no-types': 'off',
-        'jsdoc/no-undefined-types': 'warn',
-        'jsdoc/require-description': 'off',
-        'jsdoc/require-description-complete-sentence': 'off',
-        'jsdoc/require-example': 'off',
-        'jsdoc/require-file-overview': 'off',
-        'jsdoc/require-hyphen-before-param-description': 'off',
-        'jsdoc/require-jsdoc': 'warn',
-        'jsdoc/require-param': 'warn',
-        'jsdoc/require-param-description': 'warn',
-        'jsdoc/require-param-name': 'warn',
-        'jsdoc/require-param-type': 'warn',
-        'jsdoc/require-property': 'warn',
-        'jsdoc/require-property-description': 'warn',
-        'jsdoc/require-property-name': 'warn',
-        'jsdoc/require-property-type': 'warn',
-        'jsdoc/require-returns': 'warn',
-        'jsdoc/require-returns-check': 'warn',
-        'jsdoc/require-returns-description': 'warn',
-        'jsdoc/require-returns-type': 'warn',
-        'jsdoc/valid-types': 'warn'
-      }
-    }
-  },
-  rules: {
-    'check-access': _checkAccess.default,
-    'check-alignment': _checkAlignment.default,
-    'check-examples': _checkExamples.default,
-    'check-indentation': _checkIndentation.default,
-    'check-param-names': _checkParamNames.default,
-    'check-property-names': _checkPropertyNames.default,
-    'check-syntax': _checkSyntax.default,
-    'check-tag-names': _checkTagNames.default,
-    'check-types': _checkTypes.default,
-    'check-values': _checkValues.default,
-    'empty-tags': _emptyTags.default,
-    'implements-on-classes': _implementsOnClasses.default,
-    'match-description': _matchDescription.default,
-    'newline-after-description': _newlineAfterDescription.default,
-    'no-bad-blocks': _noBadBlocks.default,
-    'no-defaults': _noDefaults.default,
-    'no-types': _noTypes.default,
-    'no-undefined-types': _noUndefinedTypes.default,
-    'require-description': _requireDescription.default,
-    'require-description-complete-sentence': _requireDescriptionCompleteSentence.default,
-    'require-example': _requireExample.default,
-    'require-file-overview': _requireFileOverview.default,
-    'require-hyphen-before-param-description': _requireHyphenBeforeParamDescription.default,
-    'require-jsdoc': _requireJsdoc.default,
-    'require-param': _requireParam.default,
-    'require-param-description': _requireParamDescription.default,
-    'require-param-name': _requireParamName.default,
-    'require-param-type': _requireParamType.default,
-    'require-property': _requireProperty.default,
-    'require-property-description': _requirePropertyDescription.default,
-    'require-property-name': _requirePropertyName.default,
-    'require-property-type': _requirePropertyType.default,
-    'require-returns': _requireReturns.default,
-    'require-returns-check': _requireReturnsCheck.default,
-    'require-returns-description': _requireReturnsDescription.default,
-    'require-returns-type': _requireReturnsType.default,
-    'valid-types': _validTypes.default
-  }
-};
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/index.js.map b/node_modules/eslint-plugin-jsdoc/dist/index.js.map
deleted file mode 100644
index 0098c30..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["configs","recommended","plugins","rules","checkAccess","checkAlignment","checkExamples","checkIndentation","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTypes","checkValues","emptyTags","implementsOnClasses","matchDescription","newlineAfterDescription","noBadBlocks","noDefaults","noTypes","noUndefinedTypes","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","validTypes"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AArCA;eAuCe;AACbA,EAAAA,OAAO,EAAE;AACPC,IAAAA,WAAW,EAAE;AACXC,MAAAA,OAAO,EAAE,CAAC,OAAD,CADE;AAEXC,MAAAA,KAAK,EAAE;AACL,8BAAsB,MADjB;AAEL,iCAAyB,MAFpB;AAGL,gCAAwB,KAHnB;AAIL,mCAA2B,KAJtB;AAKL,mCAA2B,MALtB;AAML,sCAA8B,MANzB;AAOL,8BAAsB,KAPjB;AAQL,iCAAyB,MARpB;AASL,6BAAqB,MAThB;AAUL,8BAAsB,MAVjB;AAWL,4BAAoB,MAXf;AAYL,uCAA+B,MAZ1B;AAaL,mCAA2B,KAbtB;AAcL,2CAAmC,MAd9B;AAeL,+BAAuB,KAflB;AAgBL,6BAAqB,KAhBhB;AAiBL,0BAAkB,KAjBb;AAkBL,oCAA4B,MAlBvB;AAmBL,qCAA6B,KAnBxB;AAoBL,uDAA+C,KApB1C;AAqBL,iCAAyB,KArBpB;AAsBL,uCAA+B,KAtB1B;AAuBL,yDAAiD,KAvB5C;AAwBL,+BAAuB,MAxBlB;AAyBL,+BAAuB,MAzBlB;AA0BL,2CAAmC,MA1B9B;AA2BL,oCAA4B,MA3BvB;AA4BL,oCAA4B,MA5BvB;AA6BL,kCAA0B,MA7BrB;AA8BL,8CAAsC,MA9BjC;AA+BL,uCAA+B,MA/B1B;AAgCL,uCAA+B,MAhC1B;AAiCL,iCAAyB,MAjCpB;AAkCL,uCAA+B,MAlC1B;AAmCL,6CAAqC,MAnChC;AAoCL,sCAA8B,MApCzB;AAqCL,6BAAqB;AArChB;AAFI;AADN,GADI;AA6CbA,EAAAA,KAAK,EAAE;AACL,oBAAgBC,oBADX;AAEL,uBAAmBC,uBAFd;AAGL,sBAAkBC,sBAHb;AAIL,yBAAqBC,yBAJhB;AAKL,yBAAqBC,wBALhB;AAML,4BAAwBC,2BANnB;AAOL,oBAAgBC,oBAPX;AAQL,uBAAmBC,sBARd;AASL,mBAAeC,mBATV;AAUL,oBAAgBC,oBAVX;AAWL,kBAAcC,kBAXT;AAYL,6BAAyBC,4BAZpB;AAaL,yBAAqBC,yBAbhB;AAcL,iCAA6BC,gCAdxB;AAeL,qBAAiBC,oBAfZ;AAgBL,mBAAeC,mBAhBV;AAiBL,gBAAYC,gBAjBP;AAkBL,0BAAsBC,yBAlBjB;AAmBL,2BAAuBC,2BAnBlB;AAoBL,6CAAyCC,2CApBpC;AAqBL,uBAAmBC,uBArBd;AAsBL,6BAAyBC,4BAtBpB;AAuBL,+CAA2CC,4CAvBtC;AAwBL,qBAAiBC,qBAxBZ;AAyBL,qBAAiBC,qBAzBZ;AA0BL,iCAA6BC,gCA1BxB;AA2BL,0BAAsBC,yBA3BjB;AA4BL,0BAAsBC,yBA5BjB;AA6BL,wBAAoBC,wBA7Bf;AA8BL,oCAAgCC,mCA9B3B;AA+BL,6BAAyBC,4BA/BpB;AAgCL,6BAAyBC,4BAhCpB;AAiCL,uBAAmBC,uBAjCd;AAkCL,6BAAyBC,4BAlCpB;AAmCL,mCAA+BC,kCAnC1B;AAoCL,4BAAwBC,2BApCnB;AAqCL,mBAAeC;AArCV;AA7CM,C","sourcesContent":["/* eslint-disable import/max-dependencies */\nimport checkAccess from './rules/checkAccess';\nimport checkAlignment from './rules/checkAlignment';\nimport checkExamples from './rules/checkExamples';\nimport checkIndentation from './rules/checkIndentation';\nimport checkParamNames from './rules/checkParamNames';\nimport checkPropertyNames from './rules/checkPropertyNames';\nimport checkSyntax from './rules/checkSyntax';\nimport checkTagNames from './rules/checkTagNames';\nimport checkTypes from './rules/checkTypes';\nimport checkValues from './rules/checkValues';\nimport emptyTags from './rules/emptyTags';\nimport implementsOnClasses from './rules/implementsOnClasses';\nimport matchDescription from './rules/matchDescription';\nimport newlineAfterDescription from './rules/newlineAfterDescription';\nimport noBadBlocks from './rules/noBadBlocks';\nimport noDefaults from './rules/noDefaults';\nimport noTypes from './rules/noTypes';\nimport noUndefinedTypes from './rules/noUndefinedTypes';\nimport requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence';\nimport requireDescription from './rules/requireDescription';\nimport requireExample from './rules/requireExample';\nimport requireFileOverview from './rules/requireFileOverview';\nimport requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription';\nimport requireParamName from './rules/requireParamName';\nimport requireParam from './rules/requireParam';\nimport requireParamDescription from './rules/requireParamDescription';\nimport requireParamType from './rules/requireParamType';\nimport requireProperty from './rules/requireProperty';\nimport requirePropertyDescription from './rules/requirePropertyDescription';\nimport requirePropertyName from './rules/requirePropertyName';\nimport requirePropertyType from './rules/requirePropertyType';\nimport requireReturns from './rules/requireReturns';\nimport requireReturnsCheck from './rules/requireReturnsCheck';\nimport requireReturnsDescription from './rules/requireReturnsDescription';\nimport requireReturnsType from './rules/requireReturnsType';\nimport validTypes from './rules/validTypes';\nimport requireJsdoc from './rules/requireJsdoc';\n\nexport default {\n  configs: {\n    recommended: {\n      plugins: ['jsdoc'],\n      rules: {\n        'jsdoc/check-access': 'warn',\n        'jsdoc/check-alignment': 'warn',\n        'jsdoc/check-examples': 'off',\n        'jsdoc/check-indentation': 'off',\n        'jsdoc/check-param-names': 'warn',\n        'jsdoc/check-property-names': 'warn',\n        'jsdoc/check-syntax': 'off',\n        'jsdoc/check-tag-names': 'warn',\n        'jsdoc/check-types': 'warn',\n        'jsdoc/check-values': 'warn',\n        'jsdoc/empty-tags': 'warn',\n        'jsdoc/implements-on-classes': 'warn',\n        'jsdoc/match-description': 'off',\n        'jsdoc/newline-after-description': 'warn',\n        'jsdoc/no-bad-blocks': 'off',\n        'jsdoc/no-defaults': 'off',\n        'jsdoc/no-types': 'off',\n        'jsdoc/no-undefined-types': 'warn',\n        'jsdoc/require-description': 'off',\n        'jsdoc/require-description-complete-sentence': 'off',\n        'jsdoc/require-example': 'off',\n        'jsdoc/require-file-overview': 'off',\n        'jsdoc/require-hyphen-before-param-description': 'off',\n        'jsdoc/require-jsdoc': 'warn',\n        'jsdoc/require-param': 'warn',\n        'jsdoc/require-param-description': 'warn',\n        'jsdoc/require-param-name': 'warn',\n        'jsdoc/require-param-type': 'warn',\n        'jsdoc/require-property': 'warn',\n        'jsdoc/require-property-description': 'warn',\n        'jsdoc/require-property-name': 'warn',\n        'jsdoc/require-property-type': 'warn',\n        'jsdoc/require-returns': 'warn',\n        'jsdoc/require-returns-check': 'warn',\n        'jsdoc/require-returns-description': 'warn',\n        'jsdoc/require-returns-type': 'warn',\n        'jsdoc/valid-types': 'warn',\n      },\n    },\n  },\n  rules: {\n    'check-access': checkAccess,\n    'check-alignment': checkAlignment,\n    'check-examples': checkExamples,\n    'check-indentation': checkIndentation,\n    'check-param-names': checkParamNames,\n    'check-property-names': checkPropertyNames,\n    'check-syntax': checkSyntax,\n    'check-tag-names': checkTagNames,\n    'check-types': checkTypes,\n    'check-values': checkValues,\n    'empty-tags': emptyTags,\n    'implements-on-classes': implementsOnClasses,\n    'match-description': matchDescription,\n    'newline-after-description': newlineAfterDescription,\n    'no-bad-blocks': noBadBlocks,\n    'no-defaults': noDefaults,\n    'no-types': noTypes,\n    'no-undefined-types': noUndefinedTypes,\n    'require-description': requireDescription,\n    'require-description-complete-sentence': requireDescriptionCompleteSentence,\n    'require-example': requireExample,\n    'require-file-overview': requireFileOverview,\n    'require-hyphen-before-param-description': requireHyphenBeforeParamDescription,\n    'require-jsdoc': requireJsdoc,\n    'require-param': requireParam,\n    'require-param-description': requireParamDescription,\n    'require-param-name': requireParamName,\n    'require-param-type': requireParamType,\n    'require-property': requireProperty,\n    'require-property-description': requirePropertyDescription,\n    'require-property-name': requirePropertyName,\n    'require-property-type': requirePropertyType,\n    'require-returns': requireReturns,\n    'require-returns-check': requireReturnsCheck,\n    'require-returns-description': requireReturnsDescription,\n    'require-returns-type': requireReturnsType,\n    'valid-types': validTypes,\n  },\n};\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js b/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js
deleted file mode 100644
index 5cbe1e7..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js
+++ /dev/null
@@ -1,689 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = iterateJsdoc;
-exports.parseComment = exports.getSettings = void 0;
-
-var _commentParser = _interopRequireWildcard(require("comment-parser"));
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _jsdocUtils = _interopRequireDefault(require("./jsdocUtils"));
-
-var _getJSDocComment = _interopRequireWildcard(require("./eslint/getJSDocComment"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
-
-// eslint-disable-next-line import/no-named-default
-const globalState = new Map();
-
-const skipSeeLink = parser => {
-  return (str, data) => {
-    if (data.tag === 'see' && str.match(/\{@link.+?\}/u)) {
-      return null;
-    }
-
-    return parser(str, data);
-  };
-};
-/**
- *
- * @param {object} commentNode
- * @param {string} indent Whitespace
- * @param {boolean} [trim=true]
- * @returns {object}
- */
-
-
-const parseComment = (commentNode, indent, trim = true) => {
-  // Preserve JSDoc block start/end indentation.
-  return (0, _commentParser.default)(`${indent}/*${commentNode.value}${indent}*/`, {
-    // @see https://github.com/yavorskiy/comment-parser/issues/21
-    parsers: [_commentParser.default.PARSERS.parse_tag, skipSeeLink((str, data) => {
-      if (['default', 'defaultvalue'].includes(data.tag)) {
-        return null;
-      }
-
-      return _commentParser.default.PARSERS.parse_type(str, data);
-    }), skipSeeLink((str, data) => {
-      if (['example', 'return', 'returns', 'throws', 'exception', 'access', 'version', 'since', 'license', 'author', 'default', 'defaultvalue'].includes(data.tag)) {
-        return null;
-      }
-
-      return _commentParser.default.PARSERS.parse_name(str, data);
-    }), // parse_description
-    (str, data) => {
-      // Only expected throw in previous step is if bad name (i.e.,
-      //   missing end bracket on optional name), but `@example`
-      //  skips name parsing
-
-      /* istanbul ignore next */
-      if (data.errors && data.errors.length) {
-        return null;
-      } // Tweak original regex to capture only single optional space
-
-
-      const result = str.match(/^ ?((.|\s)+)?/u); // Always has at least whitespace due to `indent` we've added
-
-      /* istanbul ignore next */
-
-      if (result) {
-        return {
-          data: {
-            description: result[1] === undefined ? '' : result[1]
-          },
-          source: result[0]
-        };
-      } // Always has at least whitespace due to `indent` we've added
-
-      /* istanbul ignore next */
-
-
-      return null;
-    }],
-    trim
-  })[0] || {};
-};
-
-exports.parseComment = parseComment;
-
-const getBasicUtils = (context, {
-  tagNamePreference,
-  mode
-}) => {
-  const utils = {};
-
-  utils.reportSettings = message => {
-    context.report({
-      loc: {
-        start: {
-          column: 1,
-          line: 1
-        }
-      },
-      message
-    });
-  };
-
-  utils.getPreferredTagNameObject = ({
-    tagName
-  }) => {
-    const ret = _jsdocUtils.default.getPreferredTagName(context, mode, tagName, tagNamePreference);
-
-    const isObject = ret && typeof ret === 'object';
-
-    if (ret === false || isObject && !ret.replacement) {
-      return {
-        blocked: true,
-        tagName
-      };
-    }
-
-    return ret;
-  };
-
-  return utils;
-};
-
-const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAll) => {
-  const ancestors = context.getAncestors();
-  const sourceCode = context.getSourceCode();
-  const utils = getBasicUtils(context, settings);
-  const tagNamePreference = settings.tagNamePreference,
-        overrideReplacesDocs = settings.overrideReplacesDocs,
-        implementsReplacesDocs = settings.implementsReplacesDocs,
-        augmentsExtendsReplacesDocs = settings.augmentsExtendsReplacesDocs,
-        maxLines = settings.maxLines,
-        minLines = settings.minLines,
-        mode = settings.mode;
-
-  utils.isIteratingFunction = () => {
-    return !iteratingAll || ['ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression'].includes(node && node.type);
-  };
-
-  utils.isVirtualFunction = () => {
-    return iteratingAll && utils.hasATag(['callback', 'function', 'func', 'method']);
-  };
-
-  utils.stringify = tagBlock => {
-    const indent = _jsdocUtils.default.getIndent(sourceCode);
-
-    return (0, _commentParser.stringify)([tagBlock], {
-      indent
-    }).slice(indent.length - 1);
-  };
-
-  utils.reportJSDoc = (msg, tag, handler) => {
-    report(msg, handler ? fixer => {
-      handler();
-      const replacement = utils.stringify(jsdoc);
-      return fixer.replaceText(jsdocNode, replacement);
-    } : null, tag);
-  };
-
-  utils.getFunctionParameterNames = () => {
-    return _jsdocUtils.default.getFunctionParameterNames(node);
-  };
-
-  utils.isConstructor = () => {
-    return node && node.parent && node.parent.kind === 'constructor';
-  };
-
-  utils.isSetter = () => {
-    return node && node.parent.kind === 'set';
-  };
-
-  utils.getJsdocTagsDeep = tagName => {
-    const name = utils.getPreferredTagName({
-      tagName
-    });
-
-    if (!name) {
-      return false;
-    }
-
-    return _jsdocUtils.default.getJsdocTagsDeep(jsdoc, name);
-  };
-
-  utils.getJsdocTags = tagName => {
-    const name = utils.getPreferredTagName({
-      tagName
-    });
-
-    if (!name) {
-      return false;
-    }
-
-    return _jsdocUtils.default.getJsdocTags(jsdoc, name);
-  };
-
-  utils.getPreferredTagName = ({
-    tagName,
-    skipReportingBlockedTag = false,
-    allowObjectReturn = false,
-    defaultMessage = `Unexpected tag \`@${tagName}\``
-  }) => {
-    const ret = _jsdocUtils.default.getPreferredTagName(context, mode, tagName, tagNamePreference);
-
-    const isObject = ret && typeof ret === 'object';
-
-    if (utils.hasTag(tagName) && (ret === false || isObject && !ret.replacement)) {
-      if (skipReportingBlockedTag) {
-        return {
-          blocked: true,
-          tagName
-        };
-      }
-
-      const message = isObject && ret.message || defaultMessage;
-      report(message, null, utils.getTags(tagName)[0]);
-      return false;
-    }
-
-    return isObject && !allowObjectReturn ? ret.replacement : ret;
-  };
-
-  utils.isValidTag = (name, definedTags) => {
-    return _jsdocUtils.default.isValidTag(context, mode, name, definedTags);
-  };
-
-  utils.hasATag = name => {
-    return _jsdocUtils.default.hasATag(jsdoc, name);
-  };
-
-  utils.hasTag = name => {
-    return _jsdocUtils.default.hasTag(jsdoc, name);
-  };
-
-  utils.avoidDocs = () => {
-    if (overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || // inheritdoc implies that all documentation is inherited; see https://jsdoc.app/tags-inheritdoc.html
-    utils.hasTag('inheritdoc') || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) {
-      return true;
-    }
-
-    const exemptedBy = _lodash.default.get(context, 'options[0].exemptedBy');
-
-    if (exemptedBy && exemptedBy.length && utils.getPresentTags(exemptedBy).length) {
-      return true;
-    }
-
-    return false;
-  };
-
-  utils.tagMustHaveEitherTypeOrNamePosition = tagName => {
-    return _jsdocUtils.default.tagMustHaveEitherTypeOrNamePosition(tagName);
-  };
-
-  utils.tagMightHaveEitherTypeOrNamePosition = tagName => {
-    return _jsdocUtils.default.tagMightHaveEitherTypeOrNamePosition(mode, tagName);
-  };
-
-  utils.tagMustHaveNamePosition = tagName => {
-    return _jsdocUtils.default.tagMustHaveNamePosition(tagName);
-  };
-
-  utils.tagMightHaveNamePosition = tagName => {
-    return _jsdocUtils.default.tagMightHaveNamePosition(tagName);
-  };
-
-  utils.tagMustHaveTypePosition = tagName => {
-    return _jsdocUtils.default.tagMustHaveTypePosition(mode, tagName);
-  };
-
-  utils.tagMightHaveTypePosition = tagName => {
-    return _jsdocUtils.default.tagMightHaveTypePosition(mode, tagName);
-  };
-
-  utils.isNamepathDefiningTag = tagName => {
-    return _jsdocUtils.default.isNamepathDefiningTag(tagName);
-  };
-
-  utils.hasDefinedTypeReturnTag = tag => {
-    return _jsdocUtils.default.hasDefinedTypeReturnTag(tag);
-  };
-
-  utils.hasReturnValue = () => {
-    return _jsdocUtils.default.hasReturnValue(node);
-  };
-
-  utils.isAsync = () => {
-    return node.async;
-  };
-
-  utils.getTags = tagName => {
-    return utils.filterTags(item => {
-      return item.tag === tagName;
-    });
-  };
-
-  utils.getPresentTags = tagList => {
-    return utils.filterTags(tag => {
-      return tagList.includes(tag.tag);
-    });
-  };
-
-  utils.filterTags = filter => {
-    return _jsdocUtils.default.filterTags(jsdoc.tags, filter);
-  };
-
-  utils.getTagsByType = tags => {
-    return _jsdocUtils.default.getTagsByType(context, mode, tags, tagNamePreference);
-  };
-
-  utils.hasOptionTag = tagName => {
-    const tags = _lodash.default.get(context, 'options[0].tags');
-
-    return Boolean(tags && tags.includes(tagName));
-  };
-
-  utils.getClassNode = () => {
-    return [...ancestors, node].reverse().find(parent => {
-      return parent && ['ClassDeclaration', 'ClassExpression'].includes(parent.type);
-    }) || null;
-  };
-
-  utils.getClassJsdoc = () => {
-    const classNode = utils.getClassNode();
-
-    if (!classNode) {
-      return null;
-    }
-
-    const classJsdocNode = (0, _getJSDocComment.default)(sourceCode, classNode, {
-      maxLines,
-      minLines
-    });
-
-    if (classJsdocNode) {
-      const indent = ' '.repeat(classJsdocNode.loc.start.column);
-      return parseComment(classJsdocNode, indent);
-    }
-
-    return null;
-  };
-
-  utils.classHasTag = tagName => {
-    const classJsdoc = utils.getClassJsdoc();
-    return Boolean(classJsdoc) && _jsdocUtils.default.hasTag(classJsdoc, tagName);
-  };
-
-  utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag = false) => {
-    const targetTagName = utils.getPreferredTagName({
-      skipReportingBlockedTag,
-      tagName
-    });
-
-    if (!targetTagName || skipReportingBlockedTag && targetTagName && typeof targetTagName === 'object') {
-      return;
-    }
-
-    const matchingJsdocTags = _lodash.default.filter(jsdoc.tags || [], {
-      tag: targetTagName
-    });
-
-    matchingJsdocTags.forEach(matchingJsdocTag => {
-      arrayHandler(matchingJsdocTag, targetTagName);
-    });
-  };
-
-  return utils;
-};
-
-const getSettings = context => {
-  /* eslint-disable sort-keys-fix/sort-keys-fix */
-  const settings = {
-    // All rules
-    ignorePrivate: Boolean(_lodash.default.get(context, 'settings.jsdoc.ignorePrivate')),
-    maxLines: Number(_lodash.default.get(context, 'settings.jsdoc.maxLines', 1)),
-    minLines: Number(_lodash.default.get(context, 'settings.jsdoc.minLines', 0)),
-    // `check-tag-names` and many returns/param rules
-    tagNamePreference: _lodash.default.get(context, 'settings.jsdoc.tagNamePreference') || {},
-    // `check-types` and `no-undefined-types`
-    preferredTypes: _lodash.default.get(context, 'settings.jsdoc.preferredTypes') || {},
-    // `require-param`, `require-description`, `require-example`, `require-returns`
-    overrideReplacesDocs: _lodash.default.get(context, 'settings.jsdoc.overrideReplacesDocs'),
-    implementsReplacesDocs: _lodash.default.get(context, 'settings.jsdoc.implementsReplacesDocs'),
-    augmentsExtendsReplacesDocs: _lodash.default.get(context, 'settings.jsdoc.augmentsExtendsReplacesDocs'),
-    // Many rules, e.g., `check-tag-names`
-    mode: _lodash.default.get(context, 'settings.jsdoc.mode') || 'jsdoc'
-  };
-  /* eslint-enable sort-keys-fix/sort-keys-fix */
-
-  return settings;
-};
-/**
- * Create the report function
- *
- * @param {object} context
- * @param {object} commentNode
- */
-
-
-exports.getSettings = getSettings;
-
-const makeReport = (context, commentNode) => {
-  const report = (message, fix = null, jsdocLoc = null, data = null) => {
-    let loc;
-
-    if (jsdocLoc) {
-      const lineNumber = commentNode.loc.start.line + jsdocLoc.line;
-      loc = {
-        end: {
-          line: lineNumber
-        },
-        start: {
-          line: lineNumber
-        }
-      };
-
-      if (jsdocLoc.column) {
-        const colNumber = commentNode.loc.start.column + jsdocLoc.column;
-        loc.end.column = colNumber;
-        loc.start.column = colNumber;
-      }
-    }
-
-    context.report({
-      data,
-      fix,
-      loc,
-      message,
-      node: commentNode
-    });
-  };
-
-  return report;
-};
-/**
- * @typedef {ReturnType<typeof getUtils>} Utils
- * @typedef {ReturnType<typeof getSettings>} Settings
- * @typedef {(
- *   arg: {
- *     context: object,
- *     sourceCode: object,
- *     indent: string,
- *     jsdoc: object,
- *     jsdocNode: object,
- *     node: object | null,
- *     report: ReturnType<typeof makeReport>,
- *     settings: Settings,
- *     utils: Utils,
- *   }
- * ) => any } JsdocVisitor
- */
-
-
-const iterate = (ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator, state, iteratingAll) => {
-  const sourceLine = lines[jsdocNode.loc.start.line - 1];
-  const indent = sourceLine.charAt(0).repeat(jsdocNode.loc.start.column);
-  const jsdoc = parseComment(jsdocNode, indent, !ruleConfig.noTrim);
-  const report = makeReport(context, jsdocNode);
-  const utils = getUtils(node, jsdoc, jsdocNode, settings, report, context, iteratingAll);
-
-  if (settings.ignorePrivate && !ruleConfig.checkPrivate && (utils.hasTag('private') || _lodash.default.filter(jsdoc.tags, {
-    tag: 'access'
-  }).some(({
-    description
-  }) => {
-    return description === 'private';
-  }))) {
-    return;
-  }
-
-  iterator({
-    context,
-    globalState,
-    indent,
-    iteratingAll,
-    jsdoc,
-    jsdocNode,
-    node,
-    report,
-    settings,
-    sourceCode,
-    state,
-    utils
-  });
-};
-/**
- * Create an eslint rule that iterates over all JSDocs, regardless of whether
- * they are attached to a function-like node.
- *
- * @param {JsdocVisitor} iterator
- * @param {{meta: any}} ruleConfig
- */
-
-
-const iterateAllJsdocs = (iterator, ruleConfig) => {
-  const trackedJsdocs = [];
-
-  const callIterator = (context, node, jsdocNodes, state, lastCall) => {
-    const sourceCode = context.getSourceCode();
-    const settings = getSettings(context);
-    const lines = sourceCode.lines;
-    const utils = getBasicUtils(context, settings);
-    jsdocNodes.forEach(jsdocNode => {
-      if (!/^\/\*\*\s/.test(sourceCode.getText(jsdocNode))) {
-        return;
-      }
-
-      iterate(ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator, state, true);
-    });
-
-    if (lastCall && ruleConfig.exit) {
-      ruleConfig.exit({
-        context,
-        state,
-        utils
-      });
-    }
-  };
-
-  return {
-    create(context) {
-      const sourceCode = context.getSourceCode();
-      const settings = getSettings(context);
-      const state = {};
-      return {
-        '*:not(Program)'(node) {
-          const reducedNode = (0, _getJSDocComment.getReducedASTNode)(node, sourceCode);
-
-          if (node !== reducedNode) {
-            return;
-          }
-
-          const comment = (0, _getJSDocComment.default)(sourceCode, node, settings);
-
-          if (trackedJsdocs.includes(comment)) {
-            return;
-          }
-
-          if (!comment) {
-            if (ruleConfig.nonComment) {
-              ruleConfig.nonComment({
-                node,
-                state
-              });
-            }
-
-            return;
-          }
-
-          trackedJsdocs.push(comment);
-          callIterator(context, node, [comment], state);
-        },
-
-        'Program:exit'() {
-          const allComments = sourceCode.getAllComments();
-          const untrackedJSdoc = allComments.filter(node => {
-            return !trackedJsdocs.includes(node);
-          });
-          callIterator(context, null, untrackedJSdoc, state, true);
-        }
-
-      };
-    },
-
-    meta: ruleConfig.meta
-  };
-};
-/**
- * Create an eslint rule that iterates over all JSDocs, regardless of whether
- * they are attached to a function-like node.
- *
- * @param {JsdocVisitor} iterator
- * @param {{meta: any}} ruleConfig
- */
-
-
-const checkFile = (iterator, ruleConfig) => {
-  return {
-    create(context) {
-      const sourceCode = context.getSourceCode();
-      const settings = getSettings(context);
-      return {
-        'Program:exit'() {
-          const allComments = sourceCode.getAllComments();
-          const lines = sourceCode.lines;
-          const utils = getBasicUtils(context, settings);
-          iterator({
-            allComments,
-            context,
-            lines,
-            makeReport,
-            settings,
-            sourceCode,
-            utils
-          });
-        }
-
-      };
-    },
-
-    meta: ruleConfig.meta
-  };
-};
-
-/**
- * @param {JsdocVisitor} iterator
- * @param {{
- *   meta: any,
- *   contextDefaults?: true | string[],
- *   iterateAllJsdocs?: true,
- * }} ruleConfig
- */
-function iterateJsdoc(iterator, ruleConfig) {
-  const metaType = _lodash.default.get(ruleConfig, 'meta.type');
-
-  if (!metaType || !['problem', 'suggestion', 'layout'].includes(metaType)) {
-    throw new TypeError('Rule must include `meta.type` option (with value "problem", "suggestion", or "layout")');
-  }
-
-  if (typeof iterator !== 'function') {
-    throw new TypeError('The iterator argument must be a function.');
-  }
-
-  if (ruleConfig.checkFile) {
-    return checkFile(iterator, ruleConfig);
-  }
-
-  if (ruleConfig.iterateAllJsdocs) {
-    return iterateAllJsdocs(iterator, ruleConfig);
-  }
-
-  return {
-    /**
-     * The entrypoint for the JSDoc rule.
-     *
-     * @param {*} context
-     *   a reference to the context which hold all important information
-     *   like settings and the sourcecode to check.
-     * @returns {object}
-     *   a list with parser callback function.
-     */
-    create(context) {
-      let contexts;
-
-      if (ruleConfig.contextDefaults) {
-        contexts = _jsdocUtils.default.enforcedContexts(context, ruleConfig.contextDefaults);
-
-        if (contexts.includes('any')) {
-          return iterateAllJsdocs(iterator, ruleConfig).create(context);
-        }
-      }
-
-      const sourceCode = context.getSourceCode();
-      const settings = getSettings(context);
-      const lines = sourceCode.lines;
-
-      const checkJsdoc = node => {
-        const jsdocNode = (0, _getJSDocComment.default)(sourceCode, node, settings);
-
-        if (!jsdocNode) {
-          return;
-        }
-
-        iterate(ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator);
-      };
-
-      if (ruleConfig.contextDefaults) {
-        return _jsdocUtils.default.getContextObject(contexts, checkJsdoc);
-      }
-
-      return {
-        ArrowFunctionExpression: checkJsdoc,
-        FunctionDeclaration: checkJsdoc,
-        FunctionExpression: checkJsdoc
-      };
-    },
-
-    meta: ruleConfig.meta
-  };
-}
-//# sourceMappingURL=iterateJsdoc.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js.map b/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js.map
deleted file mode 100644
index 31c118c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/iterateJsdoc.js"],"names":["globalState","Map","skipSeeLink","parser","str","data","tag","match","parseComment","commentNode","indent","trim","value","parsers","commentParser","PARSERS","parse_tag","includes","parse_type","parse_name","errors","length","result","description","undefined","source","getBasicUtils","context","tagNamePreference","mode","utils","reportSettings","message","report","loc","start","column","line","getPreferredTagNameObject","tagName","ret","jsdocUtils","getPreferredTagName","isObject","replacement","blocked","getUtils","node","jsdoc","jsdocNode","settings","iteratingAll","ancestors","getAncestors","sourceCode","getSourceCode","overrideReplacesDocs","implementsReplacesDocs","augmentsExtendsReplacesDocs","maxLines","minLines","isIteratingFunction","type","isVirtualFunction","hasATag","stringify","tagBlock","getIndent","slice","reportJSDoc","msg","handler","fixer","replaceText","getFunctionParameterNames","isConstructor","parent","kind","isSetter","getJsdocTagsDeep","name","getJsdocTags","skipReportingBlockedTag","allowObjectReturn","defaultMessage","hasTag","getTags","isValidTag","definedTags","avoidDocs","classHasTag","exemptedBy","_","get","getPresentTags","tagMustHaveEitherTypeOrNamePosition","tagMightHaveEitherTypeOrNamePosition","tagMustHaveNamePosition","tagMightHaveNamePosition","tagMustHaveTypePosition","tagMightHaveTypePosition","isNamepathDefiningTag","hasDefinedTypeReturnTag","hasReturnValue","isAsync","async","filterTags","item","tagList","filter","tags","getTagsByType","hasOptionTag","Boolean","getClassNode","reverse","find","getClassJsdoc","classNode","classJsdocNode","repeat","classJsdoc","forEachPreferredTag","arrayHandler","targetTagName","matchingJsdocTags","forEach","matchingJsdocTag","getSettings","ignorePrivate","Number","preferredTypes","makeReport","fix","jsdocLoc","lineNumber","end","colNumber","iterate","ruleConfig","lines","iterator","state","sourceLine","charAt","noTrim","checkPrivate","some","iterateAllJsdocs","trackedJsdocs","callIterator","jsdocNodes","lastCall","test","getText","exit","create","reducedNode","comment","nonComment","push","allComments","getAllComments","untrackedJSdoc","meta","checkFile","iterateJsdoc","metaType","TypeError","contexts","contextDefaults","enforcedContexts","checkJsdoc","getContextObject","ArrowFunctionExpression","FunctionDeclaration","FunctionExpression"],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-named-default\nimport {default as commentParser, stringify as commentStringify} from 'comment-parser';\nimport _ from 'lodash';\nimport jsdocUtils from './jsdocUtils';\nimport getJSDocComment, {getReducedASTNode} from './eslint/getJSDocComment';\n\nconst globalState = new Map();\n\nconst skipSeeLink = (parser) => {\n  return (str, data) => {\n    if (data.tag === 'see' && str.match(/\\{@link.+?\\}/u)) {\n      return null;\n    }\n\n    return parser(str, data);\n  };\n};\n\n/**\n *\n * @param {object} commentNode\n * @param {string} indent Whitespace\n * @param {boolean} [trim=true]\n * @returns {object}\n */\nconst parseComment = (commentNode, indent, trim = true) => {\n  // Preserve JSDoc block start/end indentation.\n  return commentParser(`${indent}/*${commentNode.value}${indent}*/`, {\n    // @see https://github.com/yavorskiy/comment-parser/issues/21\n    parsers: [\n      commentParser.PARSERS.parse_tag,\n      skipSeeLink(\n        (str, data) => {\n          if (['default', 'defaultvalue'].includes(data.tag)) {\n            return null;\n          }\n\n          return commentParser.PARSERS.parse_type(str, data);\n        },\n      ),\n      skipSeeLink(\n        (str, data) => {\n          if ([\n            'example', 'return', 'returns', 'throws', 'exception',\n            'access', 'version', 'since', 'license', 'author',\n            'default', 'defaultvalue',\n          ].includes(data.tag)) {\n            return null;\n          }\n\n          return commentParser.PARSERS.parse_name(str, data);\n        },\n      ),\n\n      // parse_description\n      (str, data) => {\n        // Only expected throw in previous step is if bad name (i.e.,\n        //   missing end bracket on optional name), but `@example`\n        //  skips name parsing\n        /* istanbul ignore next */\n        if (data.errors && data.errors.length) {\n          return null;\n        }\n\n        // Tweak original regex to capture only single optional space\n        const result = str.match(/^ ?((.|\\s)+)?/u);\n\n        // Always has at least whitespace due to `indent` we've added\n        /* istanbul ignore next */\n        if (result) {\n          return {\n            data: {\n              description: result[1] === undefined ? '' : result[1],\n            },\n            source: result[0],\n          };\n        }\n\n        // Always has at least whitespace due to `indent` we've added\n        /* istanbul ignore next */\n        return null;\n      },\n    ],\n    trim,\n  })[0] || {};\n};\n\nconst getBasicUtils = (context, {tagNamePreference, mode}) => {\n  const utils = {};\n  utils.reportSettings = (message) => {\n    context.report({\n      loc: {\n        start: {\n          column: 1,\n          line: 1,\n        },\n      },\n      message,\n    });\n  };\n\n  utils.getPreferredTagNameObject = ({tagName}) => {\n    const ret = jsdocUtils.getPreferredTagName(context, mode, tagName, tagNamePreference);\n    const isObject = ret && typeof ret === 'object';\n    if (ret === false || isObject && !ret.replacement) {\n      return {\n        blocked: true,\n        tagName,\n      };\n    }\n\n    return ret;\n  };\n\n  return utils;\n};\n\nconst getUtils = (\n  node,\n  jsdoc,\n  jsdocNode,\n  settings,\n  report,\n  context,\n  iteratingAll,\n) => {\n  const ancestors = context.getAncestors();\n  const sourceCode = context.getSourceCode();\n\n  const utils = getBasicUtils(context, settings);\n\n  const {\n    tagNamePreference,\n    overrideReplacesDocs,\n    implementsReplacesDocs,\n    augmentsExtendsReplacesDocs,\n    maxLines,\n    minLines,\n    mode,\n  } = settings;\n\n  utils.isIteratingFunction = () => {\n    return !iteratingAll || [\n      'ArrowFunctionExpression',\n      'FunctionDeclaration',\n      'FunctionExpression',\n    ].includes(node && node.type);\n  };\n\n  utils.isVirtualFunction = () => {\n    return iteratingAll && utils.hasATag(['callback', 'function', 'func', 'method']);\n  };\n\n  utils.stringify = (tagBlock) => {\n    const indent = jsdocUtils.getIndent(sourceCode);\n\n    return commentStringify([tagBlock], {indent}).slice(indent.length - 1);\n  };\n\n  utils.reportJSDoc = (msg, tag, handler) => {\n    report(msg, handler ? (fixer) => {\n      handler();\n      const replacement = utils.stringify(jsdoc);\n\n      return fixer.replaceText(jsdocNode, replacement);\n    } : null, tag);\n  };\n\n  utils.getFunctionParameterNames = () => {\n    return jsdocUtils.getFunctionParameterNames(node);\n  };\n\n  utils.isConstructor = () => {\n    return node && node.parent && node.parent.kind === 'constructor';\n  };\n\n  utils.isSetter = () => {\n    return node && node.parent.kind === 'set';\n  };\n\n  utils.getJsdocTagsDeep = (tagName) => {\n    const name = utils.getPreferredTagName({tagName});\n    if (!name) {\n      return false;\n    }\n\n    return jsdocUtils.getJsdocTagsDeep(jsdoc, name);\n  };\n\n  utils.getJsdocTags = (tagName) => {\n    const name = utils.getPreferredTagName({tagName});\n    if (!name) {\n      return false;\n    }\n\n    return jsdocUtils.getJsdocTags(jsdoc, name);\n  };\n\n  utils.getPreferredTagName = ({tagName, skipReportingBlockedTag = false, allowObjectReturn = false, defaultMessage = `Unexpected tag \\`@${tagName}\\``}) => {\n    const ret = jsdocUtils.getPreferredTagName(context, mode, tagName, tagNamePreference);\n    const isObject = ret && typeof ret === 'object';\n    if (utils.hasTag(tagName) && (ret === false || isObject && !ret.replacement)) {\n      if (skipReportingBlockedTag) {\n        return {\n          blocked: true,\n          tagName,\n        };\n      }\n      const message = isObject && ret.message || defaultMessage;\n      report(message, null, utils.getTags(tagName)[0]);\n\n      return false;\n    }\n\n    return isObject && !allowObjectReturn ? ret.replacement : ret;\n  };\n\n  utils.isValidTag = (name, definedTags) => {\n    return jsdocUtils.isValidTag(context, mode, name, definedTags);\n  };\n\n  utils.hasATag = (name) => {\n    return jsdocUtils.hasATag(jsdoc, name);\n  };\n\n  utils.hasTag = (name) => {\n    return jsdocUtils.hasTag(jsdoc, name);\n  };\n\n  utils.avoidDocs = () => {\n    if (\n      overrideReplacesDocs !== false &&\n        (utils.hasTag('override') || utils.classHasTag('override')) ||\n      implementsReplacesDocs !== false &&\n        (utils.hasTag('implements') || utils.classHasTag('implements')) ||\n\n      // inheritdoc implies that all documentation is inherited; see https://jsdoc.app/tags-inheritdoc.html\n      utils.hasTag('inheritdoc') ||\n\n      augmentsExtendsReplacesDocs &&\n        (utils.hasATag(['augments', 'extends']) ||\n          utils.classHasTag('augments') ||\n            utils.classHasTag('extends'))) {\n      return true;\n    }\n\n    const exemptedBy = _.get(context, 'options[0].exemptedBy');\n    if (exemptedBy && exemptedBy.length && utils.getPresentTags(exemptedBy).length) {\n      return true;\n    }\n\n    return false;\n  };\n\n  utils.tagMustHaveEitherTypeOrNamePosition = (tagName) => {\n    return jsdocUtils.tagMustHaveEitherTypeOrNamePosition(tagName);\n  };\n\n  utils.tagMightHaveEitherTypeOrNamePosition = (tagName) => {\n    return jsdocUtils.tagMightHaveEitherTypeOrNamePosition(mode, tagName);\n  };\n\n  utils.tagMustHaveNamePosition = (tagName) => {\n    return jsdocUtils.tagMustHaveNamePosition(tagName);\n  };\n\n  utils.tagMightHaveNamePosition = (tagName) => {\n    return jsdocUtils.tagMightHaveNamePosition(tagName);\n  };\n\n  utils.tagMustHaveTypePosition = (tagName) => {\n    return jsdocUtils.tagMustHaveTypePosition(mode, tagName);\n  };\n\n  utils.tagMightHaveTypePosition = (tagName) => {\n    return jsdocUtils.tagMightHaveTypePosition(mode, tagName);\n  };\n\n  utils.isNamepathDefiningTag = (tagName) => {\n    return jsdocUtils.isNamepathDefiningTag(tagName);\n  };\n\n  utils.hasDefinedTypeReturnTag = (tag) => {\n    return jsdocUtils.hasDefinedTypeReturnTag(tag);\n  };\n\n  utils.hasReturnValue = () => {\n    return jsdocUtils.hasReturnValue(node);\n  };\n\n  utils.isAsync = () => {\n    return node.async;\n  };\n\n  utils.getTags = (tagName) => {\n    return utils.filterTags((item) => {\n      return item.tag === tagName;\n    });\n  };\n\n  utils.getPresentTags = (tagList) => {\n    return utils.filterTags((tag) => {\n      return tagList.includes(tag.tag);\n    });\n  };\n\n  utils.filterTags = (filter) => {\n    return jsdocUtils.filterTags(jsdoc.tags, filter);\n  };\n\n  utils.getTagsByType = (tags) => {\n    return jsdocUtils.getTagsByType(context, mode, tags, tagNamePreference);\n  };\n\n  utils.hasOptionTag = (tagName) => {\n    const tags = _.get(context, 'options[0].tags');\n\n    return Boolean(tags && tags.includes(tagName));\n  };\n\n  utils.getClassNode = () => {\n    return [...ancestors, node].reverse().find((parent) => {\n      return parent && ['ClassDeclaration', 'ClassExpression'].includes(parent.type);\n    }) || null;\n  };\n\n  utils.getClassJsdoc = () => {\n    const classNode = utils.getClassNode();\n\n    if (!classNode) {\n      return null;\n    }\n\n    const classJsdocNode = getJSDocComment(sourceCode, classNode, {\n      maxLines,\n      minLines,\n    });\n\n    if (classJsdocNode) {\n      const indent = ' '.repeat(classJsdocNode.loc.start.column);\n\n      return parseComment(classJsdocNode, indent);\n    }\n\n    return null;\n  };\n\n  utils.classHasTag = (tagName) => {\n    const classJsdoc = utils.getClassJsdoc();\n\n    return Boolean(classJsdoc) && jsdocUtils.hasTag(classJsdoc, tagName);\n  };\n\n  utils.forEachPreferredTag = (tagName, arrayHandler, skipReportingBlockedTag = false) => {\n    const targetTagName = utils.getPreferredTagName({\n      skipReportingBlockedTag,\n      tagName,\n    });\n    if (!targetTagName ||\n      skipReportingBlockedTag && targetTagName && typeof targetTagName === 'object'\n    ) {\n      return;\n    }\n    const matchingJsdocTags = _.filter(jsdoc.tags || [], {\n      tag: targetTagName,\n    });\n\n    matchingJsdocTags.forEach((matchingJsdocTag) => {\n      arrayHandler(matchingJsdocTag, targetTagName);\n    });\n  };\n\n  return utils;\n};\n\nconst getSettings = (context) => {\n  /* eslint-disable sort-keys-fix/sort-keys-fix */\n  const settings = {\n    // All rules\n    ignorePrivate: Boolean(_.get(context, 'settings.jsdoc.ignorePrivate')),\n    maxLines: Number(_.get(context, 'settings.jsdoc.maxLines', 1)),\n    minLines: Number(_.get(context, 'settings.jsdoc.minLines', 0)),\n\n    // `check-tag-names` and many returns/param rules\n    tagNamePreference: _.get(context, 'settings.jsdoc.tagNamePreference') || {},\n\n    // `check-types` and `no-undefined-types`\n    preferredTypes: _.get(context, 'settings.jsdoc.preferredTypes') || {},\n\n    // `require-param`, `require-description`, `require-example`, `require-returns`\n    overrideReplacesDocs: _.get(context, 'settings.jsdoc.overrideReplacesDocs'),\n    implementsReplacesDocs: _.get(context, 'settings.jsdoc.implementsReplacesDocs'),\n    augmentsExtendsReplacesDocs: _.get(context, 'settings.jsdoc.augmentsExtendsReplacesDocs'),\n\n    // Many rules, e.g., `check-tag-names`\n    mode: _.get(context, 'settings.jsdoc.mode') || 'jsdoc',\n  };\n  /* eslint-enable sort-keys-fix/sort-keys-fix */\n\n  return settings;\n};\n\n/**\n * Create the report function\n *\n * @param {object} context\n * @param {object} commentNode\n */\nconst makeReport = (context, commentNode) => {\n  const report = (message, fix = null, jsdocLoc = null, data = null) => {\n    let loc;\n\n    if (jsdocLoc) {\n      const lineNumber = commentNode.loc.start.line + jsdocLoc.line;\n\n      loc = {\n        end: {line: lineNumber},\n        start: {line: lineNumber},\n      };\n      if (jsdocLoc.column) {\n        const colNumber = commentNode.loc.start.column + jsdocLoc.column;\n\n        loc.end.column = colNumber;\n        loc.start.column = colNumber;\n      }\n    }\n\n    context.report({\n      data,\n      fix,\n      loc,\n      message,\n      node: commentNode,\n    });\n  };\n\n  return report;\n};\n\n/**\n * @typedef {ReturnType<typeof getUtils>} Utils\n * @typedef {ReturnType<typeof getSettings>} Settings\n * @typedef {(\n *   arg: {\n *     context: object,\n *     sourceCode: object,\n *     indent: string,\n *     jsdoc: object,\n *     jsdocNode: object,\n *     node: object | null,\n *     report: ReturnType<typeof makeReport>,\n *     settings: Settings,\n *     utils: Utils,\n *   }\n * ) => any } JsdocVisitor\n */\n\nconst iterate = (\n  ruleConfig, context, lines, jsdocNode, node, settings,\n  sourceCode, iterator, state, iteratingAll,\n) => {\n  const sourceLine = lines[jsdocNode.loc.start.line - 1];\n  const indent = sourceLine.charAt(0).repeat(jsdocNode.loc.start.column);\n  const jsdoc = parseComment(jsdocNode, indent, !ruleConfig.noTrim);\n  const report = makeReport(context, jsdocNode);\n\n  const utils = getUtils(\n    node,\n    jsdoc,\n    jsdocNode,\n    settings,\n    report,\n    context,\n    iteratingAll,\n  );\n\n  if (\n    settings.ignorePrivate &&\n    !ruleConfig.checkPrivate &&\n    (utils.hasTag('private') || _.filter(jsdoc.tags, {\n      tag: 'access',\n    }).some(({description}) => {\n      return description === 'private';\n    }))\n  ) {\n    return;\n  }\n\n  iterator({\n    context,\n    globalState,\n    indent,\n    iteratingAll,\n    jsdoc,\n    jsdocNode,\n    node,\n    report,\n    settings,\n    sourceCode,\n    state,\n    utils,\n  });\n};\n\n/**\n * Create an eslint rule that iterates over all JSDocs, regardless of whether\n * they are attached to a function-like node.\n *\n * @param {JsdocVisitor} iterator\n * @param {{meta: any}} ruleConfig\n */\nconst iterateAllJsdocs = (iterator, ruleConfig) => {\n  const trackedJsdocs = [];\n\n  const callIterator = (context, node, jsdocNodes, state, lastCall) => {\n    const sourceCode = context.getSourceCode();\n    const settings = getSettings(context);\n    const {lines} = sourceCode;\n\n    const utils = getBasicUtils(context, settings);\n    jsdocNodes.forEach((jsdocNode) => {\n      if (!(/^\\/\\*\\*\\s/).test(sourceCode.getText(jsdocNode))) {\n        return;\n      }\n      iterate(\n        ruleConfig, context, lines, jsdocNode, node,\n        settings, sourceCode, iterator,\n        state, true,\n      );\n    });\n    if (lastCall && ruleConfig.exit) {\n      ruleConfig.exit({\n        context,\n        state,\n        utils,\n      });\n    }\n  };\n\n  return {\n    create (context) {\n      const sourceCode = context.getSourceCode();\n      const settings = getSettings(context);\n      const state = {};\n\n      return {\n        '*:not(Program)' (node) {\n          const reducedNode = getReducedASTNode(node, sourceCode);\n\n          if (node !== reducedNode) {\n            return;\n          }\n\n          const comment = getJSDocComment(sourceCode, node, settings);\n          if (trackedJsdocs.includes(comment)) {\n            return;\n          }\n          if (!comment) {\n            if (ruleConfig.nonComment) {\n              ruleConfig.nonComment({\n                node,\n                state,\n              });\n            }\n\n            return;\n          }\n\n          trackedJsdocs.push(comment);\n          callIterator(context, node, [comment], state);\n        },\n        'Program:exit' () {\n          const allComments = sourceCode.getAllComments();\n          const untrackedJSdoc = allComments.filter((node) => {\n            return !trackedJsdocs.includes(node);\n          });\n\n          callIterator(context, null, untrackedJSdoc, state, true);\n        },\n      };\n    },\n    meta: ruleConfig.meta,\n  };\n};\n\n/**\n * Create an eslint rule that iterates over all JSDocs, regardless of whether\n * they are attached to a function-like node.\n *\n * @param {JsdocVisitor} iterator\n * @param {{meta: any}} ruleConfig\n */\nconst checkFile = (iterator, ruleConfig) => {\n  return {\n    create (context) {\n      const sourceCode = context.getSourceCode();\n      const settings = getSettings(context);\n\n      return {\n        'Program:exit' () {\n          const allComments = sourceCode.getAllComments();\n          const {lines} = sourceCode;\n          const utils = getBasicUtils(context, settings);\n\n          iterator({\n            allComments,\n            context,\n            lines,\n            makeReport,\n            settings,\n            sourceCode,\n            utils,\n          });\n        },\n      };\n    },\n    meta: ruleConfig.meta,\n  };\n};\n\nexport {\n  getSettings,\n  parseComment,\n};\n\n/**\n * @param {JsdocVisitor} iterator\n * @param {{\n *   meta: any,\n *   contextDefaults?: true | string[],\n *   iterateAllJsdocs?: true,\n * }} ruleConfig\n */\nexport default function iterateJsdoc (iterator, ruleConfig) {\n  const metaType = _.get(ruleConfig, 'meta.type');\n  if (!metaType || !['problem', 'suggestion', 'layout'].includes(metaType)) {\n    throw new TypeError('Rule must include `meta.type` option (with value \"problem\", \"suggestion\", or \"layout\")');\n  }\n  if (typeof iterator !== 'function') {\n    throw new TypeError('The iterator argument must be a function.');\n  }\n\n  if (ruleConfig.checkFile) {\n    return checkFile(iterator, ruleConfig);\n  }\n\n  if (ruleConfig.iterateAllJsdocs) {\n    return iterateAllJsdocs(iterator, ruleConfig);\n  }\n\n  return {\n    /**\n     * The entrypoint for the JSDoc rule.\n     *\n     * @param {*} context\n     *   a reference to the context which hold all important information\n     *   like settings and the sourcecode to check.\n     * @returns {object}\n     *   a list with parser callback function.\n     */\n    create (context) {\n      let contexts;\n      if (ruleConfig.contextDefaults) {\n        contexts = jsdocUtils.enforcedContexts(context, ruleConfig.contextDefaults);\n        if (contexts.includes('any')) {\n          return iterateAllJsdocs(iterator, ruleConfig).create(context);\n        }\n      }\n\n      const sourceCode = context.getSourceCode();\n      const settings = getSettings(context);\n      const {lines} = sourceCode;\n\n      const checkJsdoc = (node) => {\n        const jsdocNode = getJSDocComment(sourceCode, node, settings);\n\n        if (!jsdocNode) {\n          return;\n        }\n\n        iterate(\n          ruleConfig, context, lines, jsdocNode, node,\n          settings, sourceCode, iterator,\n        );\n      };\n\n      if (ruleConfig.contextDefaults) {\n        return jsdocUtils.getContextObject(contexts, checkJsdoc);\n      }\n\n      return {\n        ArrowFunctionExpression: checkJsdoc,\n        FunctionDeclaration: checkJsdoc,\n        FunctionExpression: checkJsdoc,\n      };\n    },\n    meta: ruleConfig.meta,\n  };\n}\n"],"file":"iterateJsdoc.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js b/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js
deleted file mode 100644
index 884461a..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js
+++ /dev/null
@@ -1,464 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _tagNames = require("./tagNames");
-
-var _WarnSettings = _interopRequireDefault(require("./WarnSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const getFunctionParameterNames = functionNode => {
-  const getParamName = param => {
-    if (_lodash.default.has(param, 'name')) {
-      return param.name;
-    }
-
-    if (_lodash.default.has(param, 'left.name')) {
-      return param.left.name;
-    }
-
-    if (param.type === 'ObjectPattern' || _lodash.default.get(param, 'left.type') === 'ObjectPattern') {
-      return '<ObjectPattern>';
-    }
-
-    if (param.type === 'ArrayPattern' || _lodash.default.get(param, 'left.type') === 'ArrayPattern') {
-      return '<ArrayPattern>';
-    }
-
-    if (param.type === 'RestElement') {
-      return param.argument.name;
-    }
-
-    if (param.type === 'TSParameterProperty') {
-      return getParamName(param.parameter);
-    }
-
-    throw new Error('Unsupported function signature format.');
-  };
-
-  return functionNode.params.map(getParamName);
-};
-/**
- * Gets all names of the target type, including those that refer to a path, e.g.
- * "@param foo; @param foo.bar".
- */
-
-
-const getJsdocTagsDeep = (jsdoc, targetTagName) => {
-  return (jsdoc.tags || []).reduce((arr, {
-    name,
-    tag
-  }, idx) => {
-    if (tag !== targetTagName) {
-      return arr;
-    }
-
-    arr.push({
-      idx,
-      name
-    });
-    return arr;
-  }, []);
-};
-
-const getJsdocTags = (jsdoc, targetTagName) => {
-  let jsdocNames;
-  jsdocNames = getJsdocTagsDeep(jsdoc, targetTagName);
-  jsdocNames = jsdocNames.filter(({
-    name
-  }) => {
-    return !name.includes('.');
-  });
-  return jsdocNames;
-};
-
-const modeWarnSettings = (0, _WarnSettings.default)();
-
-const getTagNamesForMode = (mode, context) => {
-  switch (mode) {
-    case 'jsdoc':
-      return _tagNames.jsdocTags;
-
-    case 'typescript':
-      return _tagNames.typeScriptTags;
-
-    case 'closure':
-      return _tagNames.closureTags;
-
-    default:
-      if (!modeWarnSettings.hasBeenWarned(context, 'mode')) {
-        context.report({
-          loc: {
-            start: {
-              column: 1,
-              line: 1
-            }
-          },
-          message: `Unrecognized value \`${mode}\` for \`settings.jsdoc.mode\`.`
-        });
-        modeWarnSettings.markSettingAsWarned(context, 'mode');
-      } // We'll avoid breaking too many other rules
-
-
-      return _tagNames.jsdocTags;
-  }
-};
-
-const getPreferredTagName = (context, mode, name, tagPreference = {}) => {
-  const prefValues = _lodash.default.values(tagPreference);
-
-  if (prefValues.includes(name) || prefValues.some(prefVal => {
-    return prefVal && typeof prefVal === 'object' && prefVal.replacement === name;
-  })) {
-    return name;
-  }
-
-  if (_lodash.default.has(tagPreference, name)) {
-    return tagPreference[name];
-  }
-
-  const tagNames = getTagNamesForMode(mode, context);
-
-  const preferredTagName = _lodash.default.findKey(tagNames, aliases => {
-    return aliases.includes(name);
-  });
-
-  if (preferredTagName) {
-    return preferredTagName;
-  }
-
-  return name;
-};
-
-const isValidTag = (context, mode, name, definedTags) => {
-  const tagNames = getTagNamesForMode(mode, context);
-
-  const validTagNames = _lodash.default.keys(tagNames).concat(_lodash.default.flatten(_lodash.default.values(tagNames)));
-
-  const additionalTags = definedTags;
-  const allTags = validTagNames.concat(additionalTags);
-  return allTags.includes(name);
-};
-
-const hasTag = (jsdoc, targetTagName) => {
-  const targetTagLower = targetTagName.toLowerCase();
-  return _lodash.default.some(jsdoc.tags, doc => {
-    return doc.tag.toLowerCase() === targetTagLower;
-  });
-};
-
-const hasATag = (jsdoc, targetTagNames) => {
-  return targetTagNames.some(targetTagName => {
-    return hasTag(jsdoc, targetTagName);
-  });
-};
-/**
- * Checks if the JSDoc comment declares a return value.
- *
- * @param {JsDocTag} tag
- *   the tag which should be checked.
- * @returns {boolean}
- *   true in case a return value is declared; otherwise false.
- */
-
-
-const hasDefinedTypeReturnTag = tag => {
-  // The function should not continue in the event @returns is not defined...
-  if (typeof tag === 'undefined' || tag === null) {
-    return false;
-  } // .. same applies if it declares `@returns {undefined}` or `@returns {void}`
-
-
-  const tagType = tag.type.trim();
-
-  if (tagType === 'undefined' || tagType === 'void') {
-    return false;
-  } // In any other case, something must be returned, and
-  // a return statement is expected
-
-
-  return true;
-};
-
-const tagsWithMandatoryTypePosition = [// These both show curly brackets in the doc signature and examples
-// "typeExpression"
-'implements', // "typeName"
-'type'];
-const tagsWithMandatoryTypePositionClosure = [...tagsWithMandatoryTypePosition, 'this', 'define']; // All of these have a signature with "type" except for
-//  `augments`/`extends` ("namepath")
-//  `param`/`arg`/`argument` (no signature)
-//  `property`/`prop` (no signature)
-// `modifies` (undocumented)
-
-const tagsWithOptionalTypePosition = [// These have the example showing curly brackets but not in their doc signature, e.g.: https://jsdoc.app/tags-enum.html
-'enum', 'member', 'var', 'typedef', // These do not show curly brackets in either the signature or examples
-'augments', 'extends', 'class', 'constructor', 'constant', 'const', // These show the signature with curly brackets but not in the example
-'module', 'namespace', // These have no formal signature in the docs but show curly brackets
-//   in the examples
-'param', 'arg', 'argument', 'property', 'prop', // These show curly brackets in the signature and in the examples
-'returns', 'return', 'throws', 'exception', 'yields', 'yield', // Has no documentation, but test example has curly brackets, and
-//  "name" would be suggested rather than "namepath" based on example; not
-//  sure if name is required
-'modifies'];
-const tagsWithOptionalTypePositionClosure = [...tagsWithOptionalTypePosition, 'export', // Shows the signature with curly brackets but not in the example
-// "typeExpression"
-'package', 'private', 'protected', // These do not show a signature nor show curly brackets in the example
-'public', 'static']; // None of these show as having curly brackets for their name/namepath
-
-const namepathDefiningTags = [// These appear to require a "name" in their signature, albeit these
-//  are somewhat different from other "name"'s (including as described
-// at https://jsdoc.app/about-namepaths.html )
-'external', 'host', 'event', // These allow for "name"'s in their signature, but indicate as optional
-'class', 'constructor', 'constant', 'const', 'function', 'func', 'method', 'interface', 'member', 'var', 'mixin', 'namespace', // Todo: Should add `module` here (with optional "name" and no curly brackets);
-//  this block impacts `no-undefined-types` and `valid-types` (search for
-//  "isNamepathDefiningTag|tagMightHaveNamePosition|tagMightHaveEitherTypeOrNamePosition")
-// These seem to all require a "namepath" in their signatures (with no counter-examples)
-'name', 'typedef', 'callback']; // The following do not seem to allow curly brackets in their doc
-//  signature or examples (besides `modifies`)
-
-const tagsWithOptionalNamePosition = [...namepathDefiningTags, // `borrows` has a different format, however, so needs special parsing;
-//   seems to require both, and as "namepath"'s
-'borrows', // Signature seems to require a "name" (of an event) and no counter-examples
-'emits', 'fires', 'listens', // Signature seems to require a "namepath" (and no counter-examples)
-'alias', 'augments', 'extends', 'lends', 'this', // Signature seems to require a "namepath" (and no counter-examples),
-//  though it allows an incomplete namepath ending with connecting symbol
-'memberof', 'memberof!', // Signature seems to require a "OtherObjectPath" with no counter-examples
-'mixes', // Signature allows for "namepath" or text
-'see']; // Todo: `@link` seems to require a namepath OR URL and might be checked as such.
-// The doc signature of `event` seems to require a "name"
-
-const tagsWithMandatoryNamePosition = [// "name" (and a special syntax for the `external` name)
-'external', 'host', // "namepath"
-'callback', 'name', 'typedef'];
-const tagsWithMandatoryTypeOrNamePosition = [// "namepath"
-'alias', 'augments', 'extends', 'borrows', 'lends', 'memberof', 'memberof!', 'name', 'this', 'typedef', // "name"
-'external', 'host', // "OtherObjectPath"
-'mixes'];
-
-const isNamepathDefiningTag = tagName => {
-  return namepathDefiningTags.includes(tagName);
-};
-
-const tagMightHaveTypePosition = (mode, tag) => {
-  if (mode === 'closure') {
-    return tagsWithMandatoryTypePositionClosure.includes(tag) || tagsWithOptionalTypePositionClosure.includes(tag);
-  }
-
-  return tagsWithMandatoryTypePosition.includes(tag) || tagsWithOptionalTypePosition.includes(tag);
-};
-
-const tagMustHaveTypePosition = (mode, tag) => {
-  if (mode === 'closure') {
-    return tagsWithMandatoryTypePositionClosure.includes(tag);
-  }
-
-  return tagsWithMandatoryTypePosition.includes(tag);
-};
-
-const tagMightHaveNamePosition = tag => {
-  return tagsWithOptionalNamePosition.includes(tag);
-};
-
-const tagMustHaveNamePosition = tag => {
-  return tagsWithMandatoryNamePosition.includes(tag);
-};
-
-const tagMightHaveEitherTypeOrNamePosition = (mode, tag) => {
-  return tagMightHaveTypePosition(mode, tag) || tagMightHaveNamePosition(tag);
-};
-
-const tagMustHaveEitherTypeOrNamePosition = tag => {
-  return tagsWithMandatoryTypeOrNamePosition.includes(tag);
-};
-/**
- * Checks if a node has a return statement. Void return does not count.
- *
- * @param {object} node
- * @returns {boolean}
- */
-// eslint-disable-next-line complexity
-
-
-const hasReturnValue = node => {
-  if (!node) {
-    return false;
-  }
-
-  switch (node.type) {
-    case 'FunctionExpression':
-    case 'FunctionDeclaration':
-    case 'ArrowFunctionExpression':
-      {
-        return node.expression || hasReturnValue(node.body);
-      }
-
-    case 'BlockStatement':
-      {
-        return node.body.some(bodyNode => {
-          return bodyNode.type !== 'FunctionDeclaration' && hasReturnValue(bodyNode);
-        });
-      }
-
-    case 'WhileStatement':
-    case 'DoWhileStatement':
-    case 'ForStatement':
-    case 'ForInStatement':
-    case 'ForOfStatement':
-    case 'WithStatement':
-      {
-        return hasReturnValue(node.body);
-      }
-
-    case 'IfStatement':
-      {
-        return hasReturnValue(node.consequent) || hasReturnValue(node.alternate);
-      }
-
-    case 'TryStatement':
-      {
-        return hasReturnValue(node.block) || hasReturnValue(node.handler && node.handler.body) || hasReturnValue(node.finalizer);
-      }
-
-    case 'SwitchStatement':
-      {
-        return node.cases.some(someCase => {
-          return someCase.consequent.some(hasReturnValue);
-        });
-      }
-
-    case 'ReturnStatement':
-      {
-        // void return does not count.
-        if (node.argument === null) {
-          return false;
-        }
-
-        return true;
-      }
-
-    default:
-      {
-        return false;
-      }
-  }
-};
-/** @param {string} tag */
-
-/*
-const isInlineTag = (tag) => {
-  return /^(@link|@linkcode|@linkplain|@tutorial) /u.test(tag);
-};
-*/
-
-/**
- * Parses GCC Generic/Template types
- *
- * @see {https://github.com/google/closure-compiler/wiki/Generic-Types}
- * @param {JsDocTag} tag
- * @returns {Array<string>}
- */
-
-
-const parseClosureTemplateTag = tag => {
-  return (tag.name + ' ' + tag.description).split(',').map(type => {
-    return type.trim();
-  });
-};
-/**
- * Checks user option for `contexts` array, defaulting to
- *   contexts designated by the rule. Returns an array of
- *   ESTree AST types, indicating allowable contexts.
- *
- * @param {*} context
- * @param {true|string[]} defaultContexts
- * @returns {string[]}
- */
-
-
-const enforcedContexts = (context, defaultContexts) => {
-  const _ref = context.options[0] || {},
-        _ref$contexts = _ref.contexts,
-        contexts = _ref$contexts === void 0 ? defaultContexts === true ? ['ArrowFunctionExpression', 'FunctionDeclaration', 'FunctionExpression'] : defaultContexts : _ref$contexts;
-
-  return contexts;
-};
-/**
- * @param {string[]} contexts
- * @param {Function} checkJsdoc
- */
-
-
-const getContextObject = (contexts, checkJsdoc) => {
-  return contexts.reduce((obj, prop) => {
-    obj[prop] = checkJsdoc;
-    return obj;
-  }, {});
-};
-
-const filterTags = (tags = [], filter) => {
-  return tags.filter(filter);
-};
-
-const tagsWithNamesAndDescriptions = ['param', 'arg', 'argument', 'property', 'prop', // These two are parsed by our custom parser as though having a `name`
-'returns', 'return'];
-
-const getTagsByType = (context, mode, tags, tagPreference) => {
-  const descName = getPreferredTagName(context, mode, 'description', tagPreference);
-  const tagsWithoutNames = [];
-  const tagsWithNames = filterTags(tags, tag => {
-    const tagName = tag.tag;
-    const tagWithName = tagsWithNamesAndDescriptions.includes(tagName);
-
-    if (!tagWithName && tagName !== descName) {
-      tagsWithoutNames.push(tag);
-    }
-
-    return tagWithName;
-  });
-  return {
-    tagsWithNames,
-    tagsWithoutNames
-  };
-};
-
-const getIndent = sourceCode => {
-  let indent = sourceCode.text.match(/^\n*([ \t]+)/u);
-  /* istanbul ignore next */
-
-  indent = indent ? indent[1] + indent[1].charAt() : ' ';
-  return indent;
-};
-
-var _default = {
-  enforcedContexts,
-  filterTags,
-  getContextObject,
-  getFunctionParameterNames,
-  getIndent,
-  getJsdocTags,
-  getJsdocTagsDeep,
-  getPreferredTagName,
-  getTagsByType,
-  hasATag,
-  hasDefinedTypeReturnTag,
-  hasReturnValue,
-  hasTag,
-  isNamepathDefiningTag,
-  isValidTag,
-  parseClosureTemplateTag,
-  tagMightHaveEitherTypeOrNamePosition,
-  tagMightHaveNamePosition,
-  tagMightHaveTypePosition,
-  tagMustHaveEitherTypeOrNamePosition,
-  tagMustHaveNamePosition,
-  tagMustHaveTypePosition
-};
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=jsdocUtils.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js.map b/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js.map
deleted file mode 100644
index a966d96..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/jsdocUtils.js"],"names":["getFunctionParameterNames","functionNode","getParamName","param","_","has","name","left","type","get","argument","parameter","Error","params","map","getJsdocTagsDeep","jsdoc","targetTagName","tags","reduce","arr","tag","idx","push","getJsdocTags","jsdocNames","filter","includes","modeWarnSettings","getTagNamesForMode","mode","context","jsdocTags","typeScriptTags","closureTags","hasBeenWarned","report","loc","start","column","line","message","markSettingAsWarned","getPreferredTagName","tagPreference","prefValues","values","some","prefVal","replacement","tagNames","preferredTagName","findKey","aliases","isValidTag","definedTags","validTagNames","keys","concat","flatten","additionalTags","allTags","hasTag","targetTagLower","toLowerCase","doc","hasATag","targetTagNames","hasDefinedTypeReturnTag","tagType","trim","tagsWithMandatoryTypePosition","tagsWithMandatoryTypePositionClosure","tagsWithOptionalTypePosition","tagsWithOptionalTypePositionClosure","namepathDefiningTags","tagsWithOptionalNamePosition","tagsWithMandatoryNamePosition","tagsWithMandatoryTypeOrNamePosition","isNamepathDefiningTag","tagName","tagMightHaveTypePosition","tagMustHaveTypePosition","tagMightHaveNamePosition","tagMustHaveNamePosition","tagMightHaveEitherTypeOrNamePosition","tagMustHaveEitherTypeOrNamePosition","hasReturnValue","node","expression","body","bodyNode","consequent","alternate","block","handler","finalizer","cases","someCase","parseClosureTemplateTag","description","split","enforcedContexts","defaultContexts","options","contexts","getContextObject","checkJsdoc","obj","prop","filterTags","tagsWithNamesAndDescriptions","getTagsByType","descName","tagsWithoutNames","tagsWithNames","tagWithName","getIndent","sourceCode","indent","text","match","charAt"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport {jsdocTags, closureTags, typeScriptTags} from './tagNames';\nimport WarnSettings from './WarnSettings';\n\ntype ParserMode = \"jsdoc\"|\"typescript\"|\"closure\";\n\nconst getFunctionParameterNames = (functionNode : Object) : Array<string> => {\n  const getParamName = (param) => {\n    if (_.has(param, 'name')) {\n      return param.name;\n    }\n\n    if (_.has(param, 'left.name')) {\n      return param.left.name;\n    }\n\n    if (param.type === 'ObjectPattern' || _.get(param, 'left.type') === 'ObjectPattern') {\n      return '<ObjectPattern>';\n    }\n\n    if (param.type === 'ArrayPattern' || _.get(param, 'left.type') === 'ArrayPattern') {\n      return '<ArrayPattern>';\n    }\n\n    if (param.type === 'RestElement') {\n      return param.argument.name;\n    }\n\n    if (param.type === 'TSParameterProperty') {\n      return getParamName(param.parameter);\n    }\n\n    throw new Error('Unsupported function signature format.');\n  };\n\n  return functionNode.params.map(getParamName);\n};\n\n/**\n * Gets all names of the target type, including those that refer to a path, e.g.\n * \"@param foo; @param foo.bar\".\n */\nconst getJsdocTagsDeep = (jsdoc : Object, targetTagName : string) : Array<Object> => {\n  return (jsdoc.tags || []).reduce((arr, {name, tag}, idx) => {\n    if (tag !== targetTagName) {\n      return arr;\n    }\n    arr.push({\n      idx,\n      name,\n    });\n\n    return arr;\n  }, []);\n};\n\nconst getJsdocTags = (jsdoc : Object, targetTagName : string) : Array<string> => {\n  let jsdocNames;\n\n  jsdocNames = getJsdocTagsDeep(jsdoc, targetTagName);\n\n  jsdocNames = jsdocNames.filter(({name}) => {\n    return !name.includes('.');\n  });\n\n  return jsdocNames;\n};\n\nconst modeWarnSettings = WarnSettings();\n\nconst getTagNamesForMode = (mode, context) => {\n  switch (mode) {\n  case 'jsdoc':\n    return jsdocTags;\n  case 'typescript':\n    return typeScriptTags;\n  case 'closure':\n    return closureTags;\n  default:\n    if (!modeWarnSettings.hasBeenWarned(context, 'mode')) {\n      context.report({\n        loc: {\n          start: {\n            column: 1,\n            line: 1,\n          },\n        },\n        message: `Unrecognized value \\`${mode}\\` for \\`settings.jsdoc.mode\\`.`,\n      });\n      modeWarnSettings.markSettingAsWarned(context, 'mode');\n    }\n\n    // We'll avoid breaking too many other rules\n    return jsdocTags;\n  }\n};\n\nconst getPreferredTagName = (\n  context,\n  mode : ParserMode,\n  name : string,\n  tagPreference : Object = {},\n) : string|Object => {\n  const prefValues = _.values(tagPreference);\n  if (prefValues.includes(name) || prefValues.some((prefVal) => {\n    return prefVal && typeof prefVal === 'object' && prefVal.replacement === name;\n  })) {\n    return name;\n  }\n\n  if (_.has(tagPreference, name)) {\n    return tagPreference[name];\n  }\n\n  const tagNames = getTagNamesForMode(mode, context);\n\n  const preferredTagName = _.findKey(tagNames, (aliases) => {\n    return aliases.includes(name);\n  });\n  if (preferredTagName) {\n    return preferredTagName;\n  }\n\n  return name;\n};\n\nconst isValidTag = (\n  context,\n  mode : ParserMode,\n  name : string,\n  definedTags : Array,\n) : boolean => {\n  const tagNames = getTagNamesForMode(mode, context);\n  const validTagNames = _.keys(tagNames).concat(_.flatten(_.values(tagNames)));\n  const additionalTags = definedTags;\n  const allTags = validTagNames.concat(additionalTags);\n\n  return allTags.includes(name);\n};\n\nconst hasTag = (jsdoc : Object, targetTagName : string) : boolean => {\n  const targetTagLower = targetTagName.toLowerCase();\n\n  return _.some(jsdoc.tags, (doc : Object) => {\n    return doc.tag.toLowerCase() === targetTagLower;\n  });\n};\n\nconst hasATag = (jsdoc : Object, targetTagNames : Array) : boolean => {\n  return targetTagNames.some((targetTagName) => {\n    return hasTag(jsdoc, targetTagName);\n  });\n};\n\n/**\n * Checks if the JSDoc comment declares a return value.\n *\n * @param {JsDocTag} tag\n *   the tag which should be checked.\n * @returns {boolean}\n *   true in case a return value is declared; otherwise false.\n */\nconst hasDefinedTypeReturnTag = (tag) => {\n  // The function should not continue in the event @returns is not defined...\n  if (typeof tag === 'undefined' || tag === null) {\n    return false;\n  }\n\n  // .. same applies if it declares `@returns {undefined}` or `@returns {void}`\n  const tagType = tag.type.trim();\n  if (tagType === 'undefined' || tagType === 'void') {\n    return false;\n  }\n\n  // In any other case, something must be returned, and\n  // a return statement is expected\n  return true;\n};\n\nconst tagsWithMandatoryTypePosition = [\n  // These both show curly brackets in the doc signature and examples\n  // \"typeExpression\"\n  'implements',\n\n  // \"typeName\"\n  'type',\n];\n\nconst tagsWithMandatoryTypePositionClosure = [\n  ...tagsWithMandatoryTypePosition,\n  'this',\n  'define',\n];\n\n// All of these have a signature with \"type\" except for\n//  `augments`/`extends` (\"namepath\")\n//  `param`/`arg`/`argument` (no signature)\n//  `property`/`prop` (no signature)\n// `modifies` (undocumented)\nconst tagsWithOptionalTypePosition = [\n  // These have the example showing curly brackets but not in their doc signature, e.g.: https://jsdoc.app/tags-enum.html\n  'enum',\n  'member', 'var',\n\n  'typedef',\n\n  // These do not show curly brackets in either the signature or examples\n  'augments', 'extends',\n\n  'class', 'constructor',\n  'constant', 'const',\n\n  // These show the signature with curly brackets but not in the example\n  'module',\n  'namespace',\n\n  // These have no formal signature in the docs but show curly brackets\n  //   in the examples\n  'param', 'arg', 'argument',\n  'property', 'prop',\n\n  // These show curly brackets in the signature and in the examples\n  'returns', 'return',\n  'throws', 'exception',\n  'yields', 'yield',\n\n  // Has no documentation, but test example has curly brackets, and\n  //  \"name\" would be suggested rather than \"namepath\" based on example; not\n  //  sure if name is required\n  'modifies',\n];\n\nconst tagsWithOptionalTypePositionClosure = [\n  ...tagsWithOptionalTypePosition,\n\n  'export',\n\n  // Shows the signature with curly brackets but not in the example\n  // \"typeExpression\"\n  'package',\n  'private',\n  'protected',\n\n  // These do not show a signature nor show curly brackets in the example\n  'public',\n  'static',\n];\n\n// None of these show as having curly brackets for their name/namepath\nconst namepathDefiningTags = [\n  // These appear to require a \"name\" in their signature, albeit these\n  //  are somewhat different from other \"name\"'s (including as described\n  // at https://jsdoc.app/about-namepaths.html )\n  'external', 'host',\n  'event',\n\n  // These allow for \"name\"'s in their signature, but indicate as optional\n  'class', 'constructor',\n  'constant', 'const',\n  'function', 'func', 'method',\n  'interface',\n  'member', 'var',\n  'mixin',\n  'namespace',\n\n  // Todo: Should add `module` here (with optional \"name\" and no curly brackets);\n  //  this block impacts `no-undefined-types` and `valid-types` (search for\n  //  \"isNamepathDefiningTag|tagMightHaveNamePosition|tagMightHaveEitherTypeOrNamePosition\")\n\n  // These seem to all require a \"namepath\" in their signatures (with no counter-examples)\n  'name',\n  'typedef',\n  'callback',\n];\n\n// The following do not seem to allow curly brackets in their doc\n//  signature or examples (besides `modifies`)\nconst tagsWithOptionalNamePosition = [\n  ...namepathDefiningTags,\n\n  // `borrows` has a different format, however, so needs special parsing;\n  //   seems to require both, and as \"namepath\"'s\n  'borrows',\n\n  // Signature seems to require a \"name\" (of an event) and no counter-examples\n  'emits', 'fires',\n  'listens',\n\n  // Signature seems to require a \"namepath\" (and no counter-examples)\n  'alias',\n  'augments', 'extends',\n  'lends',\n  'this',\n\n  // Signature seems to require a \"namepath\" (and no counter-examples),\n  //  though it allows an incomplete namepath ending with connecting symbol\n  'memberof', 'memberof!',\n\n  // Signature seems to require a \"OtherObjectPath\" with no counter-examples\n  'mixes',\n\n  // Signature allows for \"namepath\" or text\n  'see',\n];\n\n// Todo: `@link` seems to require a namepath OR URL and might be checked as such.\n\n// The doc signature of `event` seems to require a \"name\"\nconst tagsWithMandatoryNamePosition = [\n  // \"name\" (and a special syntax for the `external` name)\n  'external', 'host',\n\n  // \"namepath\"\n  'callback',\n  'name',\n  'typedef',\n];\n\nconst tagsWithMandatoryTypeOrNamePosition = [\n  // \"namepath\"\n  'alias',\n  'augments', 'extends',\n  'borrows',\n  'lends',\n  'memberof', 'memberof!',\n  'name',\n  'this',\n  'typedef',\n\n  // \"name\"\n  'external', 'host',\n\n  // \"OtherObjectPath\"\n  'mixes',\n];\n\nconst isNamepathDefiningTag = (tagName) => {\n  return namepathDefiningTags.includes(tagName);\n};\n\nconst tagMightHaveTypePosition = (mode, tag) => {\n  if (mode === 'closure') {\n    return tagsWithMandatoryTypePositionClosure.includes(tag) ||\n      tagsWithOptionalTypePositionClosure.includes(tag);\n  }\n\n  return tagsWithMandatoryTypePosition.includes(tag) ||\n    tagsWithOptionalTypePosition.includes(tag);\n};\n\nconst tagMustHaveTypePosition = (mode, tag) => {\n  if (mode === 'closure') {\n    return tagsWithMandatoryTypePositionClosure.includes(tag);\n  }\n\n  return tagsWithMandatoryTypePosition.includes(tag);\n};\n\nconst tagMightHaveNamePosition = (tag) => {\n  return tagsWithOptionalNamePosition.includes(tag);\n};\n\nconst tagMustHaveNamePosition = (tag) => {\n  return tagsWithMandatoryNamePosition.includes(tag);\n};\n\nconst tagMightHaveEitherTypeOrNamePosition = (mode, tag) => {\n  return tagMightHaveTypePosition(mode, tag) || tagMightHaveNamePosition(tag);\n};\n\nconst tagMustHaveEitherTypeOrNamePosition = (tag) => {\n  return tagsWithMandatoryTypeOrNamePosition.includes(tag);\n};\n\n/**\n * Checks if a node has a return statement. Void return does not count.\n *\n * @param {object} node\n * @returns {boolean}\n */\n// eslint-disable-next-line complexity\nconst hasReturnValue = (node) => {\n  if (!node) {\n    return false;\n  }\n  switch (node.type) {\n  case 'FunctionExpression':\n  case 'FunctionDeclaration':\n  case 'ArrowFunctionExpression': {\n    return node.expression || hasReturnValue(node.body);\n  }\n  case 'BlockStatement': {\n    return node.body.some((bodyNode) => {\n      return bodyNode.type !== 'FunctionDeclaration' && hasReturnValue(bodyNode);\n    });\n  }\n  case 'WhileStatement':\n  case 'DoWhileStatement':\n  case 'ForStatement':\n  case 'ForInStatement':\n  case 'ForOfStatement':\n  case 'WithStatement': {\n    return hasReturnValue(node.body);\n  }\n  case 'IfStatement': {\n    return hasReturnValue(node.consequent) || hasReturnValue(node.alternate);\n  }\n  case 'TryStatement': {\n    return hasReturnValue(node.block) ||\n      hasReturnValue(node.handler && node.handler.body) ||\n      hasReturnValue(node.finalizer);\n  }\n  case 'SwitchStatement': {\n    return node.cases.some(\n      (someCase) => {\n        return someCase.consequent.some(hasReturnValue);\n      },\n    );\n  }\n  case 'ReturnStatement': {\n    // void return does not count.\n    if (node.argument === null) {\n      return false;\n    }\n\n    return true;\n  }\n  default: {\n    return false;\n  }\n  }\n};\n\n/** @param {string} tag */\n/*\nconst isInlineTag = (tag) => {\n  return /^(@link|@linkcode|@linkplain|@tutorial) /u.test(tag);\n};\n*/\n\n/**\n * Parses GCC Generic/Template types\n *\n * @see {https://github.com/google/closure-compiler/wiki/Generic-Types}\n * @param {JsDocTag} tag\n * @returns {Array<string>}\n */\nconst parseClosureTemplateTag = (tag) => {\n  return (tag.name + ' ' + tag.description)\n    .split(',')\n    .map((type) => {\n      return type.trim();\n    });\n};\n\n/**\n * Checks user option for `contexts` array, defaulting to\n *   contexts designated by the rule. Returns an array of\n *   ESTree AST types, indicating allowable contexts.\n *\n * @param {*} context\n * @param {true|string[]} defaultContexts\n * @returns {string[]}\n */\nconst enforcedContexts = (context, defaultContexts) => {\n  const {\n    /* istanbul ignore next */\n    contexts = defaultContexts === true ? [\n      'ArrowFunctionExpression',\n      'FunctionDeclaration',\n      'FunctionExpression',\n    ] : defaultContexts,\n  } = context.options[0] || {};\n\n  return contexts;\n};\n\n/**\n * @param {string[]} contexts\n * @param {Function} checkJsdoc\n */\nconst getContextObject = (contexts, checkJsdoc) => {\n  return contexts.reduce((obj, prop) => {\n    obj[prop] = checkJsdoc;\n\n    return obj;\n  }, {});\n};\n\nconst filterTags = (tags = [], filter) => {\n  return tags.filter(filter);\n};\n\nconst tagsWithNamesAndDescriptions = [\n  'param', 'arg', 'argument', 'property', 'prop',\n\n  // These two are parsed by our custom parser as though having a `name`\n  'returns', 'return',\n];\n\nconst getTagsByType = (context, mode, tags, tagPreference) => {\n  const descName = getPreferredTagName(context, mode, 'description', tagPreference);\n  const tagsWithoutNames = [];\n  const tagsWithNames = filterTags(tags, (tag) => {\n    const {tag: tagName} = tag;\n    const tagWithName = tagsWithNamesAndDescriptions.includes(tagName);\n    if (!tagWithName && tagName !== descName) {\n      tagsWithoutNames.push(tag);\n    }\n\n    return tagWithName;\n  });\n\n  return {\n    tagsWithNames,\n    tagsWithoutNames,\n  };\n};\n\nconst getIndent = (sourceCode) => {\n  let indent = sourceCode.text.match(/^\\n*([ \\t]+)/u);\n  /* istanbul ignore next */\n  indent = indent ? indent[1] + indent[1].charAt() : ' ';\n\n  return indent;\n};\n\nexport default {\n  enforcedContexts,\n  filterTags,\n  getContextObject,\n  getFunctionParameterNames,\n  getIndent,\n  getJsdocTags,\n  getJsdocTagsDeep,\n  getPreferredTagName,\n  getTagsByType,\n  hasATag,\n  hasDefinedTypeReturnTag,\n  hasReturnValue,\n  hasTag,\n  isNamepathDefiningTag,\n  isValidTag,\n  parseClosureTemplateTag,\n  tagMightHaveEitherTypeOrNamePosition,\n  tagMightHaveNamePosition,\n  tagMightHaveTypePosition,\n  tagMustHaveEitherTypeOrNamePosition,\n  tagMustHaveNamePosition,\n  tagMustHaveTypePosition,\n};\n"],"file":"jsdocUtils.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js
deleted file mode 100644
index 2bf8168..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const accessLevels = ['package', 'private', 'protected', 'public'];
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('access', (jsdocParameter, targetTagName) => {
-    const desc = targetTagName === 'access' ? jsdocParameter.description : jsdocParameter.name + ' ' + jsdocParameter.description;
-
-    if (!accessLevels.includes(desc.trim())) {
-      report(`Missing valid JSDoc @${targetTagName} level.`, null, jsdocParameter);
-    }
-  });
-  const accessLength = utils.getTags('access').length;
-  const individualTagLength = utils.getPresentTags(accessLevels).length;
-
-  if (accessLength && individualTagLength) {
-    report('The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public).');
-  }
-
-  if (accessLength > 1 || individualTagLength > 1) {
-    report('At most one access-control tag may be present on a jsdoc block.');
-  }
-}, {
-  checkPrivate: true,
-  iterateAllJsdocs: true,
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkAccess.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js.map
deleted file mode 100644
index e48605f..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAccess.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkAccess.js"],"names":["accessLevels","report","utils","forEachPreferredTag","jsdocParameter","targetTagName","desc","description","name","includes","trim","accessLength","getTags","length","individualTagLength","getPresentTags","checkPrivate","iterateAllJsdocs","meta","type"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,YAAY,GAAG,CAAC,SAAD,EAAY,SAAZ,EAAuB,WAAvB,EAAoC,QAApC,CAArB;;eAEe,2BAAa,CAAC;AAC3BC,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,QAA1B,EAAoC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;AACrE,UAAMC,IAAI,GAAGD,aAAa,KAAK,QAAlB,GACXD,cAAc,CAACG,WADJ,GAEXH,cAAc,CAACI,IAAf,GAAsB,GAAtB,GAA4BJ,cAAc,CAACG,WAF7C;;AAIA,QAAI,CAACP,YAAY,CAACS,QAAb,CAAsBH,IAAI,CAACI,IAAL,EAAtB,CAAL,EAAyC;AACvCT,MAAAA,MAAM,CACH,wBAAuBI,aAAc,SADlC,EAEJ,IAFI,EAGJD,cAHI,CAAN;AAKD;AACF,GAZD;AAaA,QAAMO,YAAY,GAAGT,KAAK,CAACU,OAAN,CAAc,QAAd,EAAwBC,MAA7C;AACA,QAAMC,mBAAmB,GAAGZ,KAAK,CAACa,cAAN,CAAqBf,YAArB,EAAmCa,MAA/D;;AACA,MAAIF,YAAY,IAAIG,mBAApB,EAAyC;AACvCb,IAAAA,MAAM,CACJ,iHADI,CAAN;AAGD;;AACD,MAAIU,YAAY,GAAG,CAAf,IAAoBG,mBAAmB,GAAG,CAA9C,EAAiD;AAC/Cb,IAAAA,MAAM,CACJ,iEADI,CAAN;AAGD;AACF,CA7Bc,EA6BZ;AACDe,EAAAA,YAAY,EAAE,IADb;AAEDC,EAAAA,gBAAgB,EAAE,IAFjB;AAGDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AADF;AAHL,CA7BY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst accessLevels = ['package', 'private', 'protected', 'public'];\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('access', (jsdocParameter, targetTagName) => {\n    const desc = targetTagName === 'access' ?\n      jsdocParameter.description :\n      jsdocParameter.name + ' ' + jsdocParameter.description;\n\n    if (!accessLevels.includes(desc.trim())) {\n      report(\n        `Missing valid JSDoc @${targetTagName} level.`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n  const accessLength = utils.getTags('access').length;\n  const individualTagLength = utils.getPresentTags(accessLevels).length;\n  if (accessLength && individualTagLength) {\n    report(\n      'The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public).',\n    );\n  }\n  if (accessLength > 1 || individualTagLength > 1) {\n    report(\n      'At most one access-control tag may be present on a jsdoc block.',\n    );\n  }\n}, {\n  checkPrivate: true,\n  iterateAllJsdocs: true,\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"checkAccess.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js
deleted file mode 100644
index 8d9f69a..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const trimStart = string => {
-  return string.replace(/^\s+/u, '');
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  sourceCode,
-  jsdocNode,
-  report,
-  indent
-}) => {
-  // `indent` is whitespace from line 1 (`/**`), so slice and account for "/".
-  const indentLevel = indent.length + 1;
-  const sourceLines = sourceCode.getText(jsdocNode).split('\n').slice(1).map(line => {
-    return line.split('*')[0];
-  }).filter(line => {
-    return !trimStart(line).length;
-  });
-
-  const fix = fixer => {
-    const replacement = sourceCode.getText(jsdocNode).split('\n').map((line, index) => {
-      // Ignore the first line and all lines not starting with `*`
-      const ignored = !index || trimStart(line.split('*')[0]).length;
-      return ignored ? line : `${indent} ${trimStart(line)}`;
-    }).join('\n');
-    return fixer.replaceText(jsdocNode, replacement);
-  };
-
-  sourceLines.some((line, lineNum) => {
-    if (line.length !== indentLevel) {
-      report('Expected JSDoc block to be aligned.', fix, {
-        line: lineNum + 1
-      });
-      return true;
-    }
-
-    return false;
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    type: 'layout'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkAlignment.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js.map
deleted file mode 100644
index f032dd8..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkAlignment.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkAlignment.js"],"names":["trimStart","string","replace","sourceCode","jsdocNode","report","indent","indentLevel","length","sourceLines","getText","split","slice","map","line","filter","fix","fixer","replacement","index","ignored","join","replaceText","some","lineNum","iterateAllJsdocs","meta","fixable","type"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,SAAS,GAAIC,MAAD,IAAY;AAC5B,SAAOA,MAAM,CAACC,OAAP,CAAe,OAAf,EAAwB,EAAxB,CAAP;AACD,CAFD;;eAIe,2BAAa,CAAC;AAC3BC,EAAAA,UAD2B;AAE3BC,EAAAA,SAF2B;AAG3BC,EAAAA,MAH2B;AAI3BC,EAAAA;AAJ2B,CAAD,KAKtB;AACJ;AACA,QAAMC,WAAW,GAAGD,MAAM,CAACE,MAAP,GAAgB,CAApC;AACA,QAAMC,WAAW,GAAGN,UAAU,CAACO,OAAX,CAAmBN,SAAnB,EAA8BO,KAA9B,CAAoC,IAApC,EACjBC,KADiB,CACX,CADW,EAEjBC,GAFiB,CAEZC,IAAD,IAAU;AACb,WAAOA,IAAI,CAACH,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAP;AACD,GAJiB,EAKjBI,MALiB,CAKTD,IAAD,IAAU;AAChB,WAAO,CAACd,SAAS,CAACc,IAAD,CAAT,CAAgBN,MAAxB;AACD,GAPiB,CAApB;;AASA,QAAMQ,GAAG,GAAIC,KAAD,IAAW;AACrB,UAAMC,WAAW,GAAGf,UAAU,CAACO,OAAX,CAAmBN,SAAnB,EAA8BO,KAA9B,CAAoC,IAApC,EACjBE,GADiB,CACb,CAACC,IAAD,EAAOK,KAAP,KAAiB;AACpB;AACA,YAAMC,OAAO,GAAG,CAACD,KAAD,IAAUnB,SAAS,CAACc,IAAI,CAACH,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAD,CAAT,CAA8BH,MAAxD;AAEA,aAAOY,OAAO,GAAGN,IAAH,GAAW,GAAER,MAAO,IAAGN,SAAS,CAACc,IAAD,CAAO,EAArD;AACD,KANiB,EAOjBO,IAPiB,CAOZ,IAPY,CAApB;AASA,WAAOJ,KAAK,CAACK,WAAN,CAAkBlB,SAAlB,EAA6Bc,WAA7B,CAAP;AACD,GAXD;;AAaAT,EAAAA,WAAW,CAACc,IAAZ,CAAiB,CAACT,IAAD,EAAOU,OAAP,KAAmB;AAClC,QAAIV,IAAI,CAACN,MAAL,KAAgBD,WAApB,EAAiC;AAC/BF,MAAAA,MAAM,CAAC,qCAAD,EAAwCW,GAAxC,EAA6C;AACjDF,QAAAA,IAAI,EAAEU,OAAO,GAAG;AADiC,OAA7C,CAAN;AAIA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD,GAVD;AAWD,CAzCc,EAyCZ;AACDC,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,IAAI,EAAE;AAFF;AAFL,CAzCY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst trimStart = (string) => {\n  return string.replace(/^\\s+/u, '');\n};\n\nexport default iterateJsdoc(({\n  sourceCode,\n  jsdocNode,\n  report,\n  indent,\n}) => {\n  // `indent` is whitespace from line 1 (`/**`), so slice and account for \"/\".\n  const indentLevel = indent.length + 1;\n  const sourceLines = sourceCode.getText(jsdocNode).split('\\n')\n    .slice(1)\n    .map((line) => {\n      return line.split('*')[0];\n    })\n    .filter((line) => {\n      return !trimStart(line).length;\n    });\n\n  const fix = (fixer) => {\n    const replacement = sourceCode.getText(jsdocNode).split('\\n')\n      .map((line, index) => {\n        // Ignore the first line and all lines not starting with `*`\n        const ignored = !index || trimStart(line.split('*')[0]).length;\n\n        return ignored ? line : `${indent} ${trimStart(line)}`;\n      })\n      .join('\\n');\n\n    return fixer.replaceText(jsdocNode, replacement);\n  };\n\n  sourceLines.some((line, lineNum) => {\n    if (line.length !== indentLevel) {\n      report('Expected JSDoc block to be aligned.', fix, {\n        line: lineNum + 1,\n      });\n\n      return true;\n    }\n\n    return false;\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    type: 'layout',\n  },\n});\n"],"file":"checkAlignment.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js
deleted file mode 100644
index 7c5d41b..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js
+++ /dev/null
@@ -1,359 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _eslint = require("eslint");
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-var _warnRemovedSettings = _interopRequireDefault(require("../warnRemovedSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-const zeroBasedLineIndexAdjust = -1;
-const likelyNestedJSDocIndentSpace = 1;
-const preTagSpaceLength = 1; // If a space is present, we should ignore it
-
-const firstLinePrefixLength = preTagSpaceLength;
-const hasCaptionRegex = /^\s*<caption>(.*?)<\/caption>/u;
-
-const escapeStringRegexp = str => {
-  return str.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
-};
-
-const countChars = (str, ch) => {
-  return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length;
-};
-
-const getRegexFromString = regexString => {
-  const match = regexString.match(/^\/(.*)\/([gimyus]*)$/u);
-  let flags = 'u';
-  let regex = regexString;
-
-  if (match) {
-    var _match = _slicedToArray(match, 3);
-
-    regex = _match[1];
-    flags = _match[2];
-
-    if (!flags) {
-      flags = 'u';
-    }
-
-    const uniqueFlags = [...new Set(flags)];
-    flags = uniqueFlags.join('');
-  }
-
-  return new RegExp(regex, flags);
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils,
-  context,
-  globalState
-}) => {
-  (0, _warnRemovedSettings.default)(context, 'check-examples');
-  const tagName = utils.getPreferredTagName({
-    tagName: 'example'
-  });
-
-  if (!utils.hasTag(tagName)) {
-    return;
-  }
-
-  if (!globalState.has('checkExamples-matchingFileName')) {
-    globalState.set('checkExamples-matchingFileName', new Map());
-  }
-
-  const matchingFileNameMap = globalState.get('checkExamples-matchingFileName');
-  const options = context.options[0] || {};
-  let _options$exampleCodeR = options.exampleCodeRegex,
-      exampleCodeRegex = _options$exampleCodeR === void 0 ? null : _options$exampleCodeR,
-      _options$rejectExampl = options.rejectExampleCodeRegex,
-      rejectExampleCodeRegex = _options$rejectExampl === void 0 ? null : _options$rejectExampl;
-  const _options$noDefaultExa = options.noDefaultExampleRules,
-        noDefaultExampleRules = _options$noDefaultExa === void 0 ? false : _options$noDefaultExa,
-        _options$checkEslintr = options.checkEslintrc,
-        checkEslintrc = _options$checkEslintr === void 0 ? true : _options$checkEslintr,
-        _options$matchingFile = options.matchingFileName,
-        filename = _options$matchingFile === void 0 ? null : _options$matchingFile,
-        _options$paddedIndent = options.paddedIndent,
-        paddedIndent = _options$paddedIndent === void 0 ? 0 : _options$paddedIndent,
-        _options$baseConfig = options.baseConfig,
-        baseConfig = _options$baseConfig === void 0 ? {} : _options$baseConfig,
-        configFile = options.configFile,
-        _options$allowInlineC = options.allowInlineConfig,
-        allowInlineConfig = _options$allowInlineC === void 0 ? true : _options$allowInlineC,
-        _options$reportUnused = options.reportUnusedDisableDirectives,
-        reportUnusedDisableDirectives = _options$reportUnused === void 0 ? true : _options$reportUnused,
-        _options$captionRequi = options.captionRequired,
-        captionRequired = _options$captionRequi === void 0 ? false : _options$captionRequi;
-  let defaultFileName;
-
-  if (!filename) {
-    const jsFileName = context.getFilename();
-
-    if (typeof jsFileName === 'string' && jsFileName.includes('.')) {
-      defaultFileName = jsFileName.replace(/\..*?$/, '.md');
-    } else {
-      defaultFileName = 'dummy.md';
-    }
-  } // Make this configurable?
-
-
-  const rulePaths = [];
-  const rules = noDefaultExampleRules ? undefined : {
-    // "always" newline rule at end unlikely in sample code
-    'eol-last': 0,
-    // Wouldn't generally expect example paths to resolve relative to JS file
-    'import/no-unresolved': 0,
-    // Snippets likely too short to always include import/export info
-    'import/unambiguous': 0,
-    // Unlikely to have inadvertent debugging within examples
-    'no-console': 0,
-    // Often wish to start `@example` code after newline; also may use
-    //   empty lines for spacing
-    'no-multiple-empty-lines': 0,
-    // Many variables in examples will be `undefined`
-    'no-undef': 0,
-    // Common to define variables for clarity without always using them
-    'no-unused-vars': 0,
-    // See import/no-unresolved
-    'node/no-missing-import': 0,
-    'node/no-missing-require': 0,
-    // Can generally look nicer to pad a little even if code imposes more stringency
-    'padded-blocks': 0
-  };
-
-  if (exampleCodeRegex) {
-    exampleCodeRegex = getRegexFromString(exampleCodeRegex);
-  }
-
-  if (rejectExampleCodeRegex) {
-    rejectExampleCodeRegex = getRegexFromString(rejectExampleCodeRegex);
-  }
-
-  utils.forEachPreferredTag('example', (tag, targetTagName) => {
-    let source = tag.description;
-    const match = source.match(hasCaptionRegex);
-
-    if (captionRequired && (!match || !match[1].trim())) {
-      report('Caption is expected for examples.', null, tag);
-    } // If we allow newlines in hasCaptionRegex, we should add to line count
-
-
-    source = source.replace(hasCaptionRegex, '');
-
-    if (exampleCodeRegex && !exampleCodeRegex.test(source) || rejectExampleCodeRegex && rejectExampleCodeRegex.test(source)) {
-      return;
-    }
-
-    const sources = [];
-
-    if (exampleCodeRegex) {
-      let nonJSPrefacingCols = 0;
-      let nonJSPrefacingLines = 0;
-      let startingIndex = 0;
-      let lastStringCount = 0;
-      let exampleCode;
-      exampleCodeRegex.lastIndex = 0;
-
-      while ((exampleCode = exampleCodeRegex.exec(source)) !== null) {
-        const _exampleCode = exampleCode,
-              index = _exampleCode.index,
-              n0 = _exampleCode[0],
-              n1 = _exampleCode[1]; // Count anything preceding user regex match (can affect line numbering)
-
-        const preMatch = source.slice(startingIndex, index);
-        const preMatchLines = countChars(preMatch, '\n');
-        const colDelta = preMatchLines ? preMatch.slice(preMatch.lastIndexOf('\n') + 1).length : preMatch.length;
-        let nonJSPreface;
-        let nonJSPrefaceLineCount;
-
-        if (n1) {
-          const idx = n0.indexOf(n1);
-          nonJSPreface = n0.slice(0, idx);
-          nonJSPrefaceLineCount = countChars(nonJSPreface, '\n');
-        } else {
-          nonJSPreface = '';
-          nonJSPrefaceLineCount = 0;
-        }
-
-        nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount; // Ignore `preMatch` delta if newlines here
-
-        if (nonJSPrefaceLineCount) {
-          const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\n') + 1).length;
-          nonJSPrefacingCols += charsInLastLine;
-        } else {
-          nonJSPrefacingCols += colDelta + nonJSPreface.length;
-        }
-
-        const string = n1 || n0;
-        sources.push({
-          nonJSPrefacingCols,
-          nonJSPrefacingLines,
-          string
-        });
-        startingIndex = exampleCodeRegex.lastIndex;
-        lastStringCount = countChars(string, '\n');
-
-        if (!exampleCodeRegex.global) {
-          break;
-        }
-      }
-    } else {
-      sources.push({
-        nonJSPrefacingCols: 0,
-        nonJSPrefacingLines: 0,
-        string: source
-      });
-    } // Todo: Make fixable
-    // Todo: Fix whitespace indent
-
-
-    const checkRules = function checkRules({
-      nonJSPrefacingCols,
-      nonJSPrefacingLines,
-      string
-    }) {
-      const cliConfig = {
-        allowInlineConfig,
-        baseConfig,
-        configFile,
-        reportUnusedDisableDirectives,
-        rulePaths,
-        rules,
-        useEslintrc: checkEslintrc
-      };
-      const cliConfigStr = JSON.stringify(cliConfig);
-      const src = paddedIndent ? string.replace(new RegExp(`(^|\n) {${paddedIndent}}(?!$)`, 'gu'), '\n') : string; // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api
-
-      const fileNameMapKey = filename ? 'a' + cliConfigStr + filename : 'b' + cliConfigStr + defaultFileName;
-      const file = filename || defaultFileName;
-      let cliFile;
-
-      if (matchingFileNameMap.has(fileNameMapKey)) {
-        cliFile = matchingFileNameMap.get(fileNameMapKey);
-      } else {
-        const cli = new _eslint.CLIEngine(cliConfig);
-        let config;
-
-        if (filename || checkEslintrc) {
-          config = cli.getConfigForFile(file);
-        } // We need a new instance to ensure that the rules that may only
-        //  be available to `file` (if it has its own `.eslintrc`),
-        //  will be defined.
-
-
-        cliFile = new _eslint.CLIEngine({
-          allowInlineConfig,
-          baseConfig: _objectSpread({}, baseConfig, {}, config),
-          configFile,
-          reportUnusedDisableDirectives,
-          rulePaths,
-          rules,
-          useEslintrc: false
-        });
-        matchingFileNameMap.set(fileNameMapKey, cliFile);
-      }
-
-      const _cliFile$executeOnTex = cliFile.executeOnText(src),
-            _cliFile$executeOnTex2 = _slicedToArray(_cliFile$executeOnTex.results, 1),
-            messages = _cliFile$executeOnTex2[0].messages; // NOTE: `tag.line` can be 0 if of form `/** @tag ... */`
-
-
-      const codeStartLine = tag.line + nonJSPrefacingLines;
-      const codeStartCol = likelyNestedJSDocIndentSpace;
-      messages.forEach(({
-        message,
-        line,
-        column,
-        severity,
-        ruleId
-      }) => {
-        const startLine = codeStartLine + line + zeroBasedLineIndexAdjust;
-        const startCol = codeStartCol + ( // This might not work for line 0, but line 0 is unlikely for examples
-        line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength) + column;
-        report('@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') + (ruleId ? ' (' + ruleId + ')' : '') + ': ' + message, null, {
-          column: startCol,
-          line: startLine
-        });
-      });
-    };
-
-    sources.forEach(checkRules);
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        allowInlineConfig: {
-          default: true,
-          type: 'boolean'
-        },
-        baseConfig: {
-          type: 'object'
-        },
-        captionRequired: {
-          default: false,
-          type: 'boolean'
-        },
-        checkEslintrc: {
-          default: true,
-          type: 'boolean'
-        },
-        configFile: {
-          type: 'string'
-        },
-        exampleCodeRegex: {
-          type: 'string'
-        },
-        matchingFileName: {
-          type: 'string'
-        },
-        noDefaultExampleRules: {
-          default: false,
-          type: 'boolean'
-        },
-        paddedIndent: {
-          default: 0,
-          type: 'integer'
-        },
-        rejectExampleCodeRegex: {
-          type: 'string'
-        },
-        reportUnusedDisableDirectives: {
-          default: true,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  },
-  noTrim: true
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkExamples.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js.map
deleted file mode 100644
index 7eccc42..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkExamples.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkExamples.js"],"names":["zeroBasedLineIndexAdjust","likelyNestedJSDocIndentSpace","preTagSpaceLength","firstLinePrefixLength","hasCaptionRegex","escapeStringRegexp","str","replace","countChars","ch","match","RegExp","length","getRegexFromString","regexString","flags","regex","uniqueFlags","Set","join","report","utils","context","globalState","tagName","getPreferredTagName","hasTag","has","set","Map","matchingFileNameMap","get","options","exampleCodeRegex","rejectExampleCodeRegex","noDefaultExampleRules","checkEslintrc","matchingFileName","filename","paddedIndent","baseConfig","configFile","allowInlineConfig","reportUnusedDisableDirectives","captionRequired","defaultFileName","jsFileName","getFilename","includes","rulePaths","rules","undefined","forEachPreferredTag","tag","targetTagName","source","description","trim","test","sources","nonJSPrefacingCols","nonJSPrefacingLines","startingIndex","lastStringCount","exampleCode","lastIndex","exec","index","n0","n1","preMatch","slice","preMatchLines","colDelta","lastIndexOf","nonJSPreface","nonJSPrefaceLineCount","idx","indexOf","charsInLastLine","string","push","global","checkRules","cliConfig","useEslintrc","cliConfigStr","JSON","stringify","src","fileNameMapKey","file","cliFile","cli","CLIEngine","config","getConfigForFile","executeOnText","results","messages","codeStartLine","line","codeStartCol","forEach","message","column","severity","ruleId","startLine","startCol","iterateAllJsdocs","meta","schema","additionalProperties","properties","default","type","noTrim"],"mappings":"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","sourcesContent":["import {CLIEngine} from 'eslint';\nimport iterateJsdoc from '../iterateJsdoc';\nimport warnRemovedSettings from '../warnRemovedSettings';\n\nconst zeroBasedLineIndexAdjust = -1;\nconst likelyNestedJSDocIndentSpace = 1;\nconst preTagSpaceLength = 1;\n\n// If a space is present, we should ignore it\nconst firstLinePrefixLength = preTagSpaceLength;\n\nconst hasCaptionRegex = /^\\s*<caption>(.*?)<\\/caption>/u;\n\nconst escapeStringRegexp = (str) => {\n  return str.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&');\n};\nconst countChars = (str, ch) => {\n  return (str.match(new RegExp(escapeStringRegexp(ch), 'gu')) || []).length;\n};\n\nconst getRegexFromString = (regexString) => {\n  const match = regexString.match(/^\\/(.*)\\/([gimyus]*)$/u);\n  let flags = 'u';\n  let regex = regexString;\n  if (match) {\n    [, regex, flags] = match;\n    if (!flags) {\n      flags = 'u';\n    }\n    const uniqueFlags = [...new Set(flags)];\n    flags = uniqueFlags.join('');\n  }\n\n  return new RegExp(regex, flags);\n};\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n  context,\n  globalState,\n}) => {\n  warnRemovedSettings(context, 'check-examples');\n  const tagName = utils.getPreferredTagName({tagName: 'example'});\n  if (!utils.hasTag(tagName)) {\n    return;\n  }\n\n  if (!globalState.has('checkExamples-matchingFileName')) {\n    globalState.set('checkExamples-matchingFileName', new Map());\n  }\n  const matchingFileNameMap = globalState.get('checkExamples-matchingFileName');\n\n  const options = context.options[0] || {};\n  let {\n    exampleCodeRegex = null,\n    rejectExampleCodeRegex = null,\n  } = options;\n  const {\n    noDefaultExampleRules = false,\n    checkEslintrc = true,\n    matchingFileName: filename = null,\n    paddedIndent = 0,\n    baseConfig = {},\n    configFile,\n    allowInlineConfig = true,\n    reportUnusedDisableDirectives = true,\n    captionRequired = false,\n  } = options;\n\n  let defaultFileName;\n  if (!filename) {\n    const jsFileName = context.getFilename();\n    if (typeof jsFileName === 'string' && jsFileName.includes('.')) {\n      defaultFileName = jsFileName.replace(/\\..*?$/, '.md');\n    } else {\n      defaultFileName = 'dummy.md';\n    }\n  }\n\n  // Make this configurable?\n  const rulePaths = [];\n\n  const rules = noDefaultExampleRules ? undefined : {\n    // \"always\" newline rule at end unlikely in sample code\n    'eol-last': 0,\n\n    // Wouldn't generally expect example paths to resolve relative to JS file\n    'import/no-unresolved': 0,\n\n    // Snippets likely too short to always include import/export info\n    'import/unambiguous': 0,\n\n    // Unlikely to have inadvertent debugging within examples\n    'no-console': 0,\n\n    // Often wish to start `@example` code after newline; also may use\n    //   empty lines for spacing\n    'no-multiple-empty-lines': 0,\n\n    // Many variables in examples will be `undefined`\n    'no-undef': 0,\n\n    // Common to define variables for clarity without always using them\n    'no-unused-vars': 0,\n\n    // See import/no-unresolved\n    'node/no-missing-import': 0,\n    'node/no-missing-require': 0,\n\n    // Can generally look nicer to pad a little even if code imposes more stringency\n    'padded-blocks': 0,\n  };\n\n  if (exampleCodeRegex) {\n    exampleCodeRegex = getRegexFromString(exampleCodeRegex);\n  }\n  if (rejectExampleCodeRegex) {\n    rejectExampleCodeRegex = getRegexFromString(rejectExampleCodeRegex);\n  }\n\n  utils.forEachPreferredTag('example', (tag, targetTagName) => {\n    let source = tag.description;\n    const match = source.match(hasCaptionRegex);\n\n    if (captionRequired && (!match || !match[1].trim())) {\n      report('Caption is expected for examples.', null, tag);\n    }\n\n    // If we allow newlines in hasCaptionRegex, we should add to line count\n    source = source.replace(hasCaptionRegex, '');\n\n    if (exampleCodeRegex && !exampleCodeRegex.test(source) ||\n      rejectExampleCodeRegex && rejectExampleCodeRegex.test(source)\n    ) {\n      return;\n    }\n\n    const sources = [];\n    if (exampleCodeRegex) {\n      let nonJSPrefacingCols = 0;\n      let nonJSPrefacingLines = 0;\n\n      let startingIndex = 0;\n      let lastStringCount = 0;\n\n      let exampleCode;\n      exampleCodeRegex.lastIndex = 0;\n      while ((exampleCode = exampleCodeRegex.exec(source)) !== null) {\n        const {index, 0: n0, 1: n1} = exampleCode;\n\n        // Count anything preceding user regex match (can affect line numbering)\n        const preMatch = source.slice(startingIndex, index);\n\n        const preMatchLines = countChars(preMatch, '\\n');\n\n        const colDelta = preMatchLines ?\n          preMatch.slice(preMatch.lastIndexOf('\\n') + 1).length :\n          preMatch.length;\n\n        let nonJSPreface;\n        let nonJSPrefaceLineCount;\n        if (n1) {\n          const idx = n0.indexOf(n1);\n          nonJSPreface = n0.slice(0, idx);\n          nonJSPrefaceLineCount = countChars(nonJSPreface, '\\n');\n        } else {\n          nonJSPreface = '';\n          nonJSPrefaceLineCount = 0;\n        }\n\n        nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount;\n\n        // Ignore `preMatch` delta if newlines here\n        if (nonJSPrefaceLineCount) {\n          const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\\n') + 1).length;\n\n          nonJSPrefacingCols += charsInLastLine;\n        } else {\n          nonJSPrefacingCols += colDelta + nonJSPreface.length;\n        }\n\n        const string = n1 || n0;\n        sources.push({\n          nonJSPrefacingCols,\n          nonJSPrefacingLines,\n          string,\n        });\n        startingIndex = exampleCodeRegex.lastIndex;\n        lastStringCount = countChars(string, '\\n');\n        if (!exampleCodeRegex.global) {\n          break;\n        }\n      }\n    } else {\n      sources.push({\n        nonJSPrefacingCols: 0,\n        nonJSPrefacingLines: 0,\n        string: source,\n      });\n    }\n\n    // Todo: Make fixable\n    // Todo: Fix whitespace indent\n    const checkRules = function ({\n      nonJSPrefacingCols,\n      nonJSPrefacingLines,\n      string,\n    }) {\n      const cliConfig = {\n        allowInlineConfig,\n        baseConfig,\n        configFile,\n        reportUnusedDisableDirectives,\n        rulePaths,\n        rules,\n        useEslintrc: checkEslintrc,\n      };\n      const cliConfigStr = JSON.stringify(cliConfig);\n\n      const src = paddedIndent ?\n        string.replace(new RegExp(`(^|\\n) {${paddedIndent}}(?!$)`, 'gu'), '\\n') :\n        string;\n\n      // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api\n      const fileNameMapKey = filename ?\n        'a' + cliConfigStr + filename :\n        'b' + cliConfigStr + defaultFileName;\n      const file = filename || defaultFileName;\n      let cliFile;\n      if (matchingFileNameMap.has(fileNameMapKey)) {\n        cliFile = matchingFileNameMap.get(fileNameMapKey);\n      } else {\n        const cli = new CLIEngine(cliConfig);\n        let config;\n        if (filename || checkEslintrc) {\n          config = cli.getConfigForFile(file);\n        }\n\n        // We need a new instance to ensure that the rules that may only\n        //  be available to `file` (if it has its own `.eslintrc`),\n        //  will be defined.\n        cliFile = new CLIEngine({\n          allowInlineConfig,\n          baseConfig: {\n            ...baseConfig,\n            ...config,\n          },\n          configFile,\n          reportUnusedDisableDirectives,\n          rulePaths,\n          rules,\n          useEslintrc: false,\n        });\n        matchingFileNameMap.set(fileNameMapKey, cliFile);\n      }\n\n      const {results: [{messages}]} =\n        cliFile.executeOnText(src);\n\n      // NOTE: `tag.line` can be 0 if of form `/** @tag ... */`\n      const codeStartLine = tag.line + nonJSPrefacingLines;\n      const codeStartCol = likelyNestedJSDocIndentSpace;\n\n      messages.forEach(({message, line, column, severity, ruleId}) => {\n        const startLine = codeStartLine + line + zeroBasedLineIndexAdjust;\n        const startCol = codeStartCol + (\n\n          // This might not work for line 0, but line 0 is unlikely for examples\n          line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength\n        ) + column;\n\n        report(\n          '@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') +\n            (ruleId ? ' (' + ruleId + ')' : '') + ': ' +\n            message,\n          null,\n          {\n            column: startCol,\n            line: startLine,\n          },\n        );\n      });\n    };\n\n    sources.forEach(checkRules);\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          allowInlineConfig: {\n            default: true,\n            type: 'boolean',\n          },\n          baseConfig: {\n            type: 'object',\n          },\n          captionRequired: {\n            default: false,\n            type: 'boolean',\n          },\n          checkEslintrc: {\n            default: true,\n            type: 'boolean',\n          },\n          configFile: {\n            type: 'string',\n          },\n          exampleCodeRegex: {\n            type: 'string',\n          },\n          matchingFileName: {\n            type: 'string',\n          },\n          noDefaultExampleRules: {\n            default: false,\n            type: 'boolean',\n          },\n          paddedIndent: {\n            default: 0,\n            type: 'integer',\n          },\n          rejectExampleCodeRegex: {\n            type: 'string',\n          },\n          reportUnusedDisableDirectives: {\n            default: true,\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n  noTrim: true,\n});\n"],"file":"checkExamples.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js
deleted file mode 100644
index 1ee82e8..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const maskExcludedContent = (str, excludeTags) => {
-  const regContent = new RegExp(`([ \\t]+\\*)[ \\t]@(?:${excludeTags.join('|')})(?=[ \\n])([\\w|\\W]*?\\n)(?=[ \\t]*\\*(?:[ \\t]*@|\\/))`, 'gu');
-  return str.replace(regContent, (match, margin, code) => {
-    return new Array(code.match(/\n/gu).length + 1).join(margin + '\n');
-  });
-};
-
-const maskCodeBlocks = str => {
-  const regContent = /([ \t]+\*)[ \t]```[^\n]*?([\w|\W]*?\n)(?=[ \t]*\*(?:[ \t]*(?:```|@)|\/))/gu;
-  return str.replace(regContent, (match, margin, code) => {
-    return new Array(code.match(/\n/gu).length + 1).join(margin + '\n');
-  });
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  sourceCode,
-  jsdocNode,
-  report,
-  context
-}) => {
-  const options = context.options[0] || {};
-  const _options$excludeTags = options.excludeTags,
-        excludeTags = _options$excludeTags === void 0 ? ['example'] : _options$excludeTags;
-  const reg = new RegExp(/^(?:\/?\**|[ \t]*)\*[ \t]{2}/gmu);
-  const textWithoutCodeBlocks = maskCodeBlocks(sourceCode.getText(jsdocNode));
-  const text = excludeTags.length ? maskExcludedContent(textWithoutCodeBlocks, excludeTags) : textWithoutCodeBlocks;
-
-  if (reg.test(text)) {
-    const lineBreaks = text.slice(0, reg.lastIndex).match(/\n/gu) || [];
-    report('There must be no indentation.', null, {
-      line: lineBreaks.length
-    });
-  }
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        excludeTags: {
-          items: {
-            pattern: '^\\S+$',
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'layout'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkIndentation.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js.map
deleted file mode 100644
index 20cc48f..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkIndentation.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkIndentation.js"],"names":["maskExcludedContent","str","excludeTags","regContent","RegExp","join","replace","match","margin","code","Array","length","maskCodeBlocks","sourceCode","jsdocNode","report","context","options","reg","textWithoutCodeBlocks","getText","text","test","lineBreaks","slice","lastIndex","line","iterateAllJsdocs","meta","schema","additionalProperties","properties","items","pattern","type"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,mBAAmB,GAAG,CAACC,GAAD,EAAMC,WAAN,KAAsB;AAChD,QAAMC,UAAU,GAAG,IAAIC,MAAJ,CAAY,yBAAwBF,WAAW,CAACG,IAAZ,CAAiB,GAAjB,CAAsB,2DAA1D,EAAsH,IAAtH,CAAnB;AAEA,SAAOJ,GAAG,CAACK,OAAJ,CAAYH,UAAZ,EAAwB,CAACI,KAAD,EAAQC,MAAR,EAAgBC,IAAhB,KAAyB;AACtD,WAAO,IAAIC,KAAJ,CAAUD,IAAI,CAACF,KAAL,CAAW,MAAX,EAAmBI,MAAnB,GAA4B,CAAtC,EAAyCN,IAAzC,CAA8CG,MAAM,GAAG,IAAvD,CAAP;AACD,GAFM,CAAP;AAGD,CAND;;AAQA,MAAMI,cAAc,GAAIX,GAAD,IAAS;AAC9B,QAAME,UAAU,GAAG,4EAAnB;AAEA,SAAOF,GAAG,CAACK,OAAJ,CAAYH,UAAZ,EAAwB,CAACI,KAAD,EAAQC,MAAR,EAAgBC,IAAhB,KAAyB;AACtD,WAAO,IAAIC,KAAJ,CAAUD,IAAI,CAACF,KAAL,CAAW,MAAX,EAAmBI,MAAnB,GAA4B,CAAtC,EAAyCN,IAAzC,CAA8CG,MAAM,GAAG,IAAvD,CAAP;AACD,GAFM,CAAP;AAGD,CAND;;eAQe,2BAAa,CAAC;AAC3BK,EAAAA,UAD2B;AAE3BC,EAAAA,SAF2B;AAG3BC,EAAAA,MAH2B;AAI3BC,EAAAA;AAJ2B,CAAD,KAKtB;AACJ,QAAMC,OAAO,GAAGD,OAAO,CAACC,OAAR,CAAgB,CAAhB,KAAsB,EAAtC;AADI,+BAIAA,OAJA,CAGFf,WAHE;AAAA,QAGFA,WAHE,qCAGY,CAAC,SAAD,CAHZ;AAMJ,QAAMgB,GAAG,GAAG,IAAId,MAAJ,CAAW,iCAAX,CAAZ;AACA,QAAMe,qBAAqB,GAAGP,cAAc,CAACC,UAAU,CAACO,OAAX,CAAmBN,SAAnB,CAAD,CAA5C;AACA,QAAMO,IAAI,GAAGnB,WAAW,CAACS,MAAZ,GAAqBX,mBAAmB,CAACmB,qBAAD,EAAwBjB,WAAxB,CAAxC,GAA+EiB,qBAA5F;;AAEA,MAAID,GAAG,CAACI,IAAJ,CAASD,IAAT,CAAJ,EAAoB;AAClB,UAAME,UAAU,GAAGF,IAAI,CAACG,KAAL,CAAW,CAAX,EAAcN,GAAG,CAACO,SAAlB,EAA6BlB,KAA7B,CAAmC,MAAnC,KAA8C,EAAjE;AACAQ,IAAAA,MAAM,CAAC,+BAAD,EAAkC,IAAlC,EAAwC;AAC5CW,MAAAA,IAAI,EAAEH,UAAU,CAACZ;AAD2B,KAAxC,CAAN;AAGD;AACF,CArBc,EAqBZ;AACDgB,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CAAC;AACPC,MAAAA,oBAAoB,EAAE,KADf;AAEPC,MAAAA,UAAU,EAAE;AACV7B,QAAAA,WAAW,EAAE;AACX8B,UAAAA,KAAK,EAAE;AACLC,YAAAA,OAAO,EAAE,QADJ;AAELC,YAAAA,IAAI,EAAE;AAFD,WADI;AAKXA,UAAAA,IAAI,EAAE;AALK;AADH,OAFL;AAWPA,MAAAA,IAAI,EAAE;AAXC,KAAD,CADJ;AAcJA,IAAAA,IAAI,EAAE;AAdF;AAFL,CArBY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst maskExcludedContent = (str, excludeTags) => {\n  const regContent = new RegExp(`([ \\\\t]+\\\\*)[ \\\\t]@(?:${excludeTags.join('|')})(?=[ \\\\n])([\\\\w|\\\\W]*?\\\\n)(?=[ \\\\t]*\\\\*(?:[ \\\\t]*@|\\\\/))`, 'gu');\n\n  return str.replace(regContent, (match, margin, code) => {\n    return new Array(code.match(/\\n/gu).length + 1).join(margin + '\\n');\n  });\n};\n\nconst maskCodeBlocks = (str) => {\n  const regContent = /([ \\t]+\\*)[ \\t]```[^\\n]*?([\\w|\\W]*?\\n)(?=[ \\t]*\\*(?:[ \\t]*(?:```|@)|\\/))/gu;\n\n  return str.replace(regContent, (match, margin, code) => {\n    return new Array(code.match(/\\n/gu).length + 1).join(margin + '\\n');\n  });\n};\n\nexport default iterateJsdoc(({\n  sourceCode,\n  jsdocNode,\n  report,\n  context,\n}) => {\n  const options = context.options[0] || {};\n  const {\n    excludeTags = ['example'],\n  } = options;\n\n  const reg = new RegExp(/^(?:\\/?\\**|[ \\t]*)\\*[ \\t]{2}/gmu);\n  const textWithoutCodeBlocks = maskCodeBlocks(sourceCode.getText(jsdocNode));\n  const text = excludeTags.length ? maskExcludedContent(textWithoutCodeBlocks, excludeTags) : textWithoutCodeBlocks;\n\n  if (reg.test(text)) {\n    const lineBreaks = text.slice(0, reg.lastIndex).match(/\\n/gu) || [];\n    report('There must be no indentation.', null, {\n      line: lineBreaks.length,\n    });\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [{\n      additionalProperties: false,\n      properties: {\n        excludeTags: {\n          items: {\n            pattern: '^\\\\S+$',\n            type: 'string',\n          },\n          type: 'array',\n        },\n      },\n      type: 'object',\n    }],\n    type: 'layout',\n  },\n});\n"],"file":"checkIndentation.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js
deleted file mode 100644
index 1de28e4..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js
+++ /dev/null
@@ -1,146 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const validateParameterNames = (targetTagName, allowExtraTrailingParamDocs, functionParameterNames, jsdoc, jsdocNode, utils, report) => {
-  const paramTags = Object.entries(jsdoc.tags).filter(([, tag]) => {
-    return tag.tag === targetTagName;
-  });
-  const paramTagsNonNested = paramTags.filter(([, tag]) => {
-    return !tag.name.includes('.');
-  });
-  let dotted = 0;
-  return paramTags.some(([, tag], index) => {
-    let tagsIndex;
-    const dupeTagInfo = paramTags.find(([tgsIndex, tg], idx) => {
-      tagsIndex = tgsIndex;
-      return tg.name === tag.name && idx !== index;
-    });
-
-    if (dupeTagInfo) {
-      utils.reportJSDoc(`Duplicate @${targetTagName} "${tag.name}"`, dupeTagInfo[1], () => {
-        jsdoc.tags.splice(tagsIndex, 1);
-      });
-      return true;
-    }
-
-    if (tag.name.includes('.')) {
-      dotted++;
-      return false;
-    }
-
-    const functionParameterName = functionParameterNames[index - dotted];
-
-    if (!functionParameterName) {
-      if (allowExtraTrailingParamDocs) {
-        return false;
-      }
-
-      report(`@${targetTagName} "${tag.name}" does not match an existing function parameter.`, null, tag);
-      return true;
-    }
-
-    if (functionParameterName === '<ObjectPattern>' || functionParameterName === '<ArrayPattern>') {
-      return false;
-    }
-
-    if (functionParameterName !== tag.name.trim()) {
-      const expectedNames = functionParameterNames.join(', ');
-      const actualNames = paramTagsNonNested.map(([, {
-        name
-      }]) => {
-        return name.trim();
-      }).join(', ');
-      report(`Expected @${targetTagName} names to be "${expectedNames}". Got "${actualNames}".`, null, tag);
-      return true;
-    }
-
-    return false;
-  });
-};
-
-const validateParameterNamesDeep = (targetTagName, allowExtraTrailingParamDocs, jsdocParameterNames, jsdoc, report) => {
-  let lastRealParameter;
-  return jsdocParameterNames.some(({
-    name: jsdocParameterName,
-    idx
-  }) => {
-    const isPropertyPath = jsdocParameterName.includes('.');
-
-    if (isPropertyPath) {
-      if (!lastRealParameter) {
-        report(`@${targetTagName} path declaration ("${jsdocParameterName}") appears before any real parameter.`, null, jsdoc.tags[idx]);
-        return true;
-      }
-
-      let pathRootNodeName = jsdocParameterName.slice(0, jsdocParameterName.indexOf('.'));
-
-      if (pathRootNodeName.endsWith('[]')) {
-        pathRootNodeName = pathRootNodeName.slice(0, -2);
-      }
-
-      if (pathRootNodeName !== lastRealParameter) {
-        report(`@${targetTagName} path declaration ("${jsdocParameterName}") root node name ("${pathRootNodeName}") ` + `does not match previous real parameter name ("${lastRealParameter}").`, null, jsdoc.tags[idx]);
-        return true;
-      }
-    } else {
-      lastRealParameter = jsdocParameterName;
-    }
-
-    return false;
-  });
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  context,
-  jsdoc,
-  jsdocNode,
-  report,
-  utils
-}) => {
-  const _ref = context.options[0] || {},
-        allowExtraTrailingParamDocs = _ref.allowExtraTrailingParamDocs;
-
-  const jsdocParameterNamesDeep = utils.getJsdocTagsDeep('param');
-
-  if (!jsdocParameterNamesDeep.length) {
-    return;
-  }
-
-  const functionParameterNames = utils.getFunctionParameterNames();
-  const targetTagName = utils.getPreferredTagName({
-    tagName: 'param'
-  });
-  const isError = validateParameterNames(targetTagName, allowExtraTrailingParamDocs, functionParameterNames, jsdoc, jsdocNode, utils, report);
-
-  if (isError) {
-    return;
-  }
-
-  validateParameterNamesDeep(targetTagName, allowExtraTrailingParamDocs, jsdocParameterNamesDeep, jsdoc, report);
-}, {
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        allowExtraTrailingParamDocs: {
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkParamNames.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js.map
deleted file mode 100644
index ffd18bf..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkParamNames.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkParamNames.js"],"names":["validateParameterNames","targetTagName","allowExtraTrailingParamDocs","functionParameterNames","jsdoc","jsdocNode","utils","report","paramTags","Object","entries","tags","filter","tag","paramTagsNonNested","name","includes","dotted","some","index","tagsIndex","dupeTagInfo","find","tgsIndex","tg","idx","reportJSDoc","splice","functionParameterName","trim","expectedNames","join","actualNames","map","validateParameterNamesDeep","jsdocParameterNames","lastRealParameter","jsdocParameterName","isPropertyPath","pathRootNodeName","slice","indexOf","endsWith","context","options","jsdocParameterNamesDeep","getJsdocTagsDeep","length","getFunctionParameterNames","getPreferredTagName","tagName","isError","meta","fixable","schema","additionalProperties","properties","type"],"mappings":"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","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst validateParameterNames = (\n  targetTagName : string, allowExtraTrailingParamDocs: boolean,\n  functionParameterNames : Array<string>, jsdoc, jsdocNode, utils, report,\n) => {\n  const paramTags = Object.entries(jsdoc.tags).filter(([, tag]) => {\n    return tag.tag === targetTagName;\n  });\n  const paramTagsNonNested = paramTags.filter(([, tag]) => {\n    return !tag.name.includes('.');\n  });\n\n  let dotted = 0;\n\n  return paramTags.some(([, tag], index) => {\n    let tagsIndex;\n    const dupeTagInfo = paramTags.find(([tgsIndex, tg], idx) => {\n      tagsIndex = tgsIndex;\n\n      return tg.name === tag.name && idx !== index;\n    });\n    if (dupeTagInfo) {\n      utils.reportJSDoc(`Duplicate @${targetTagName} \"${tag.name}\"`, dupeTagInfo[1], () => {\n        jsdoc.tags.splice(tagsIndex, 1);\n      });\n\n      return true;\n    }\n    if (tag.name.includes('.')) {\n      dotted++;\n\n      return false;\n    }\n\n    const functionParameterName = functionParameterNames[index - dotted];\n\n    if (!functionParameterName) {\n      if (allowExtraTrailingParamDocs) {\n        return false;\n      }\n\n      report(\n        `@${targetTagName} \"${tag.name}\" does not match an existing function parameter.`,\n        null,\n        tag,\n      );\n\n      return true;\n    }\n\n    if (functionParameterName === '<ObjectPattern>' || functionParameterName === '<ArrayPattern>') {\n      return false;\n    }\n\n    if (functionParameterName !== tag.name.trim()) {\n      const expectedNames = functionParameterNames.join(', ');\n      const actualNames = paramTagsNonNested.map(([, {name}]) => {\n        return name.trim();\n      }).join(', ');\n\n      report(\n        `Expected @${targetTagName} names to be \"${expectedNames}\". Got \"${actualNames}\".`,\n        null,\n        tag,\n      );\n\n      return true;\n    }\n\n    return false;\n  });\n};\n\nconst validateParameterNamesDeep = (\n  targetTagName : string, allowExtraTrailingParamDocs: boolean,\n  jsdocParameterNames : Array<string>, jsdoc, report : Function,\n) => {\n  let lastRealParameter;\n\n  return jsdocParameterNames.some(({name: jsdocParameterName, idx}) => {\n    const isPropertyPath = jsdocParameterName.includes('.');\n\n    if (isPropertyPath) {\n      if (!lastRealParameter) {\n        report(`@${targetTagName} path declaration (\"${jsdocParameterName}\") appears before any real parameter.`, null, jsdoc.tags[idx]);\n\n        return true;\n      }\n\n      let pathRootNodeName = jsdocParameterName.slice(0, jsdocParameterName.indexOf('.'));\n\n      if (pathRootNodeName.endsWith('[]')) {\n        pathRootNodeName = pathRootNodeName.slice(0, -2);\n      }\n\n      if (pathRootNodeName !== lastRealParameter) {\n        report(\n          `@${targetTagName} path declaration (\"${jsdocParameterName}\") root node name (\"${pathRootNodeName}\") ` +\n          `does not match previous real parameter name (\"${lastRealParameter}\").`,\n          null,\n          jsdoc.tags[idx],\n        );\n\n        return true;\n      }\n    } else {\n      lastRealParameter = jsdocParameterName;\n    }\n\n    return false;\n  });\n};\n\nexport default iterateJsdoc(({\n  context,\n  jsdoc,\n  jsdocNode,\n  report,\n  utils,\n}) => {\n  const {allowExtraTrailingParamDocs} = context.options[0] || {};\n\n  const jsdocParameterNamesDeep = utils.getJsdocTagsDeep('param');\n  if (!jsdocParameterNamesDeep.length) {\n    return;\n  }\n  const functionParameterNames = utils.getFunctionParameterNames();\n  const targetTagName = utils.getPreferredTagName({tagName: 'param'});\n  const isError = validateParameterNames(\n    targetTagName, allowExtraTrailingParamDocs, functionParameterNames,\n    jsdoc, jsdocNode, utils, report,\n  );\n\n  if (isError) {\n    return;\n  }\n\n  validateParameterNamesDeep(\n    targetTagName, allowExtraTrailingParamDocs, jsdocParameterNamesDeep,\n    jsdoc, report,\n  );\n}, {\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          allowExtraTrailingParamDocs: {\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"checkParamNames.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js
deleted file mode 100644
index 81e1a62..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js
+++ /dev/null
@@ -1,98 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const validatePropertyNames = (targetTagName, jsdoc, jsdocNode, utils) => {
-  const propertyTags = Object.entries(jsdoc.tags).filter(([, tag]) => {
-    return tag.tag === targetTagName;
-  });
-  return propertyTags.some(([, tag], index) => {
-    let tagsIndex;
-    const dupeTagInfo = propertyTags.find(([tgsIndex, tg], idx) => {
-      tagsIndex = tgsIndex;
-      return tg.name === tag.name && idx !== index;
-    });
-
-    if (dupeTagInfo) {
-      utils.reportJSDoc(`Duplicate @${targetTagName} "${tag.name}"`, dupeTagInfo[1], () => {
-        jsdoc.tags.splice(tagsIndex, 1);
-      });
-      return true;
-    }
-
-    return false;
-  });
-};
-
-const validatePropertyNamesDeep = (targetTagName, jsdocPropertyNames, jsdoc, report) => {
-  let lastRealProperty;
-  return jsdocPropertyNames.some(({
-    name: jsdocPropertyName,
-    idx
-  }) => {
-    const isPropertyPath = jsdocPropertyName.includes('.');
-
-    if (isPropertyPath) {
-      if (!lastRealProperty) {
-        report(`@${targetTagName} path declaration ("${jsdocPropertyName}") appears before any real property.`, null, jsdoc.tags[idx]);
-        return true;
-      }
-
-      let pathRootNodeName = jsdocPropertyName.slice(0, jsdocPropertyName.indexOf('.'));
-
-      if (pathRootNodeName.endsWith('[]')) {
-        pathRootNodeName = pathRootNodeName.slice(0, -2);
-      }
-
-      if (pathRootNodeName !== lastRealProperty) {
-        report(`@${targetTagName} path declaration ("${jsdocPropertyName}") root node name ("${pathRootNodeName}") ` + `does not match previous real property name ("${lastRealProperty}").`, null, jsdoc.tags[idx]);
-        return true;
-      }
-    } else {
-      lastRealProperty = jsdocPropertyName;
-    }
-
-    return false;
-  });
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  jsdocNode,
-  report,
-  utils
-}) => {
-  const jsdocPropertyNamesDeep = utils.getJsdocTagsDeep('property');
-
-  if (!jsdocPropertyNamesDeep.length) {
-    return;
-  }
-
-  const targetTagName = utils.getPreferredTagName({
-    tagName: 'property'
-  });
-  const isError = validatePropertyNames(targetTagName, jsdoc, jsdocNode, utils);
-
-  if (isError) {
-    return;
-  }
-
-  validatePropertyNamesDeep(targetTagName, jsdocPropertyNamesDeep, jsdoc, report);
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkPropertyNames.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js.map
deleted file mode 100644
index 7a5d9ba..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkPropertyNames.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkPropertyNames.js"],"names":["validatePropertyNames","targetTagName","jsdoc","jsdocNode","utils","propertyTags","Object","entries","tags","filter","tag","some","index","tagsIndex","dupeTagInfo","find","tgsIndex","tg","idx","name","reportJSDoc","splice","validatePropertyNamesDeep","jsdocPropertyNames","report","lastRealProperty","jsdocPropertyName","isPropertyPath","includes","pathRootNodeName","slice","indexOf","endsWith","jsdocPropertyNamesDeep","getJsdocTagsDeep","length","getPreferredTagName","tagName","isError","iterateAllJsdocs","meta","fixable","type"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,qBAAqB,GAAG,CAC5BC,aAD4B,EAE5BC,KAF4B,EAErBC,SAFqB,EAEVC,KAFU,KAGzB;AACH,QAAMC,YAAY,GAAGC,MAAM,CAACC,OAAP,CAAeL,KAAK,CAACM,IAArB,EAA2BC,MAA3B,CAAkC,CAAC,GAAGC,GAAH,CAAD,KAAa;AAClE,WAAOA,GAAG,CAACA,GAAJ,KAAYT,aAAnB;AACD,GAFoB,CAArB;AAIA,SAAOI,YAAY,CAACM,IAAb,CAAkB,CAAC,GAAGD,GAAH,CAAD,EAAUE,KAAV,KAAoB;AAC3C,QAAIC,SAAJ;AACA,UAAMC,WAAW,GAAGT,YAAY,CAACU,IAAb,CAAkB,CAAC,CAACC,QAAD,EAAWC,EAAX,CAAD,EAAiBC,GAAjB,KAAyB;AAC7DL,MAAAA,SAAS,GAAGG,QAAZ;AAEA,aAAOC,EAAE,CAACE,IAAH,KAAYT,GAAG,CAACS,IAAhB,IAAwBD,GAAG,KAAKN,KAAvC;AACD,KAJmB,CAApB;;AAKA,QAAIE,WAAJ,EAAiB;AACfV,MAAAA,KAAK,CAACgB,WAAN,CAAmB,cAAanB,aAAc,KAAIS,GAAG,CAACS,IAAK,GAA3D,EAA+DL,WAAW,CAAC,CAAD,CAA1E,EAA+E,MAAM;AACnFZ,QAAAA,KAAK,CAACM,IAAN,CAAWa,MAAX,CAAkBR,SAAlB,EAA6B,CAA7B;AACD,OAFD;AAIA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD,GAhBM,CAAP;AAiBD,CAzBD;;AA2BA,MAAMS,yBAAyB,GAAG,CAChCrB,aADgC,EAEhCsB,kBAFgC,EAEIrB,KAFJ,EAEWsB,MAFX,KAG7B;AACH,MAAIC,gBAAJ;AAEA,SAAOF,kBAAkB,CAACZ,IAAnB,CAAwB,CAAC;AAACQ,IAAAA,IAAI,EAAEO,iBAAP;AAA0BR,IAAAA;AAA1B,GAAD,KAAoC;AACjE,UAAMS,cAAc,GAAGD,iBAAiB,CAACE,QAAlB,CAA2B,GAA3B,CAAvB;;AAEA,QAAID,cAAJ,EAAoB;AAClB,UAAI,CAACF,gBAAL,EAAuB;AACrBD,QAAAA,MAAM,CAAE,IAAGvB,aAAc,uBAAsByB,iBAAkB,sCAA3D,EAAkG,IAAlG,EAAwGxB,KAAK,CAACM,IAAN,CAAWU,GAAX,CAAxG,CAAN;AAEA,eAAO,IAAP;AACD;;AAED,UAAIW,gBAAgB,GAAGH,iBAAiB,CAACI,KAAlB,CAAwB,CAAxB,EAA2BJ,iBAAiB,CAACK,OAAlB,CAA0B,GAA1B,CAA3B,CAAvB;;AAEA,UAAIF,gBAAgB,CAACG,QAAjB,CAA0B,IAA1B,CAAJ,EAAqC;AACnCH,QAAAA,gBAAgB,GAAGA,gBAAgB,CAACC,KAAjB,CAAuB,CAAvB,EAA0B,CAAC,CAA3B,CAAnB;AACD;;AAED,UAAID,gBAAgB,KAAKJ,gBAAzB,EAA2C;AACzCD,QAAAA,MAAM,CACH,IAAGvB,aAAc,uBAAsByB,iBAAkB,uBAAsBG,gBAAiB,KAAjG,GACC,gDAA+CJ,gBAAiB,KAF7D,EAGJ,IAHI,EAIJvB,KAAK,CAACM,IAAN,CAAWU,GAAX,CAJI,CAAN;AAOA,eAAO,IAAP;AACD;AACF,KAvBD,MAuBO;AACLO,MAAAA,gBAAgB,GAAGC,iBAAnB;AACD;;AAED,WAAO,KAAP;AACD,GA/BM,CAAP;AAgCD,CAtCD;;eAwCe,2BAAa,CAAC;AAC3BxB,EAAAA,KAD2B;AAE3BC,EAAAA,SAF2B;AAG3BqB,EAAAA,MAH2B;AAI3BpB,EAAAA;AAJ2B,CAAD,KAKtB;AACJ,QAAM6B,sBAAsB,GAAG7B,KAAK,CAAC8B,gBAAN,CAAuB,UAAvB,CAA/B;;AACA,MAAI,CAACD,sBAAsB,CAACE,MAA5B,EAAoC;AAClC;AACD;;AACD,QAAMlC,aAAa,GAAGG,KAAK,CAACgC,mBAAN,CAA0B;AAACC,IAAAA,OAAO,EAAE;AAAV,GAA1B,CAAtB;AACA,QAAMC,OAAO,GAAGtC,qBAAqB,CACnCC,aADmC,EAEnCC,KAFmC,EAE5BC,SAF4B,EAEjBC,KAFiB,CAArC;;AAKA,MAAIkC,OAAJ,EAAa;AACX;AACD;;AAEDhB,EAAAA,yBAAyB,CACvBrB,aADuB,EACRgC,sBADQ,EAEvB/B,KAFuB,EAEhBsB,MAFgB,CAAzB;AAID,CAxBc,EAwBZ;AACDe,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,IAAI,EAAE;AAFF;AAFL,CAxBY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst validatePropertyNames = (\n  targetTagName : string,\n  jsdoc, jsdocNode, utils,\n) => {\n  const propertyTags = Object.entries(jsdoc.tags).filter(([, tag]) => {\n    return tag.tag === targetTagName;\n  });\n\n  return propertyTags.some(([, tag], index) => {\n    let tagsIndex;\n    const dupeTagInfo = propertyTags.find(([tgsIndex, tg], idx) => {\n      tagsIndex = tgsIndex;\n\n      return tg.name === tag.name && idx !== index;\n    });\n    if (dupeTagInfo) {\n      utils.reportJSDoc(`Duplicate @${targetTagName} \"${tag.name}\"`, dupeTagInfo[1], () => {\n        jsdoc.tags.splice(tagsIndex, 1);\n      });\n\n      return true;\n    }\n\n    return false;\n  });\n};\n\nconst validatePropertyNamesDeep = (\n  targetTagName : string,\n  jsdocPropertyNames : Array<string>, jsdoc, report : Function,\n) => {\n  let lastRealProperty;\n\n  return jsdocPropertyNames.some(({name: jsdocPropertyName, idx}) => {\n    const isPropertyPath = jsdocPropertyName.includes('.');\n\n    if (isPropertyPath) {\n      if (!lastRealProperty) {\n        report(`@${targetTagName} path declaration (\"${jsdocPropertyName}\") appears before any real property.`, null, jsdoc.tags[idx]);\n\n        return true;\n      }\n\n      let pathRootNodeName = jsdocPropertyName.slice(0, jsdocPropertyName.indexOf('.'));\n\n      if (pathRootNodeName.endsWith('[]')) {\n        pathRootNodeName = pathRootNodeName.slice(0, -2);\n      }\n\n      if (pathRootNodeName !== lastRealProperty) {\n        report(\n          `@${targetTagName} path declaration (\"${jsdocPropertyName}\") root node name (\"${pathRootNodeName}\") ` +\n          `does not match previous real property name (\"${lastRealProperty}\").`,\n          null,\n          jsdoc.tags[idx],\n        );\n\n        return true;\n      }\n    } else {\n      lastRealProperty = jsdocPropertyName;\n    }\n\n    return false;\n  });\n};\n\nexport default iterateJsdoc(({\n  jsdoc,\n  jsdocNode,\n  report,\n  utils,\n}) => {\n  const jsdocPropertyNamesDeep = utils.getJsdocTagsDeep('property');\n  if (!jsdocPropertyNamesDeep.length) {\n    return;\n  }\n  const targetTagName = utils.getPreferredTagName({tagName: 'property'});\n  const isError = validatePropertyNames(\n    targetTagName,\n    jsdoc, jsdocNode, utils,\n  );\n\n  if (isError) {\n    return;\n  }\n\n  validatePropertyNamesDeep(\n    targetTagName, jsdocPropertyNamesDeep,\n    jsdoc, report,\n  );\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    type: 'suggestion',\n  },\n});\n"],"file":"checkPropertyNames.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js
deleted file mode 100644
index 9a02621..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report
-}) => {
-  if (!jsdoc.tags) {
-    return;
-  }
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = jsdoc.tags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      const tag = _step.value;
-
-      if (tag.type.slice(-1) === '=') {
-        report('Syntax should not be Google Closure Compiler style.', null, tag);
-        break;
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return != null) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkSyntax.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js.map
deleted file mode 100644
index 41b81e6..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkSyntax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkSyntax.js"],"names":["jsdoc","report","tags","tag","type","slice","iterateAllJsdocs","meta"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,KAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJ,MAAI,CAACD,KAAK,CAACE,IAAX,EAAiB;AACf;AACD;;AAHG;AAAA;AAAA;;AAAA;AAKJ,yBAAkBF,KAAK,CAACE,IAAxB,8HAA8B;AAAA,YAAnBC,GAAmB;;AAC5B,UAAIA,GAAG,CAACC,IAAJ,CAASC,KAAT,CAAe,CAAC,CAAhB,MAAuB,GAA3B,EAAgC;AAC9BJ,QAAAA,MAAM,CAAC,qDAAD,EAAwD,IAAxD,EAA8DE,GAA9D,CAAN;AACA;AACD;AACF;AAVG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWL,CAdc,EAcZ;AACDG,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJH,IAAAA,IAAI,EAAE;AADF;AAFL,CAdY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n}) => {\n  if (!jsdoc.tags) {\n    return;\n  }\n\n  for (const tag of jsdoc.tags) {\n    if (tag.type.slice(-1) === '=') {\n      report('Syntax should not be Google Closure Compiler style.', null, tag);\n      break;\n    }\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"checkSyntax.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js
deleted file mode 100644
index 903b2b3..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js
+++ /dev/null
@@ -1,111 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  sourceCode,
-  jsdoc,
-  report,
-  utils,
-  context,
-  settings,
-  jsdocNode
-}) => {
-  if (!jsdoc.tags) {
-    return;
-  }
-
-  const _ref = context.options[0] || {},
-        _ref$definedTags = _ref.definedTags,
-        definedTags = _ref$definedTags === void 0 ? [] : _ref$definedTags;
-
-  let definedPreferredTags = [];
-  let definedNonPreferredTags = [];
-  const tagNamePreference = settings.tagNamePreference;
-
-  if (Object.keys(tagNamePreference).length) {
-    definedNonPreferredTags = _lodash.default.keys(tagNamePreference); // Replace `_.values` with `Object.values` when we may start requiring Node 7+
-
-    definedPreferredTags = _lodash.default.values(tagNamePreference).map(preferredTag => {
-      if (typeof preferredTag === 'string') {
-        // May become an empty string but will be filtered out below
-        return preferredTag;
-      }
-
-      if (!preferredTag) {
-        return undefined;
-      }
-
-      if (typeof preferredTag !== 'object') {
-        utils.reportSettings('Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object.');
-      }
-
-      return preferredTag.replacement;
-    }).filter(preferredType => {
-      return preferredType;
-    });
-  }
-
-  jsdoc.tags.forEach(jsdocTag => {
-    const tagName = jsdocTag.tag;
-
-    if (utils.isValidTag(tagName, [...definedTags, ...definedPreferredTags, ...definedNonPreferredTags])) {
-      let preferredTagName = utils.getPreferredTagName({
-        allowObjectReturn: true,
-        defaultMessage: `Blacklisted tag found (\`@${tagName}\`)`,
-        tagName
-      });
-      let message = `Invalid JSDoc tag (preference). Replace "${tagName}" JSDoc tag with "${preferredTagName}".`;
-
-      if (!preferredTagName) {
-        return;
-      }
-
-      if (typeof preferredTagName === 'object') {
-        var _preferredTagName = preferredTagName;
-        message = _preferredTagName.message;
-        preferredTagName = _preferredTagName.replacement;
-      }
-
-      if (preferredTagName !== tagName) {
-        report(message, fixer => {
-          const replacement = sourceCode.getText(jsdocNode).replace(new RegExp(`@${_lodash.default.escapeRegExp(tagName)}\\b`, 'u'), `@${preferredTagName}`);
-          return fixer.replaceText(jsdocNode, replacement);
-        }, jsdocTag);
-      }
-    } else {
-      report(`Invalid JSDoc tag name "${tagName}".`, null, jsdocTag);
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        definedTags: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkTagNames.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js.map
deleted file mode 100644
index 3f53172..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTagNames.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkTagNames.js"],"names":["sourceCode","jsdoc","report","utils","context","settings","jsdocNode","tags","options","definedTags","definedPreferredTags","definedNonPreferredTags","tagNamePreference","Object","keys","length","_","values","map","preferredTag","undefined","reportSettings","replacement","filter","preferredType","forEach","jsdocTag","tagName","tag","isValidTag","preferredTagName","getPreferredTagName","allowObjectReturn","defaultMessage","message","fixer","getText","replace","RegExp","escapeRegExp","replaceText","iterateAllJsdocs","meta","fixable","schema","additionalProperties","properties","items","type"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  sourceCode,\n  jsdoc,\n  report,\n  utils,\n  context,\n  settings,\n  jsdocNode,\n}) => {\n  if (!jsdoc.tags) {\n    return;\n  }\n  const {definedTags = []} = context.options[0] || {};\n\n  let definedPreferredTags = [];\n  let definedNonPreferredTags = [];\n  const {tagNamePreference} = settings;\n  if (Object.keys(tagNamePreference).length) {\n    definedNonPreferredTags = _.keys(tagNamePreference);\n\n    // Replace `_.values` with `Object.values` when we may start requiring Node 7+\n    definedPreferredTags = _.values(tagNamePreference).map((preferredTag) => {\n      if (typeof preferredTag === 'string') {\n        // May become an empty string but will be filtered out below\n        return preferredTag;\n      }\n      if (!preferredTag) {\n        return undefined;\n      }\n      if (typeof preferredTag !== 'object') {\n        utils.reportSettings(\n          'Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object.',\n        );\n      }\n\n      return preferredTag.replacement;\n    }).filter((preferredType) => {\n      return preferredType;\n    });\n  }\n\n  jsdoc.tags.forEach((jsdocTag) => {\n    const tagName = jsdocTag.tag;\n    if (utils.isValidTag(tagName, [...definedTags, ...definedPreferredTags, ...definedNonPreferredTags])) {\n      let preferredTagName = utils.getPreferredTagName({\n        allowObjectReturn: true,\n        defaultMessage: `Blacklisted tag found (\\`@${tagName}\\`)`,\n        tagName,\n      });\n      let message = `Invalid JSDoc tag (preference). Replace \"${tagName}\" JSDoc tag with \"${preferredTagName}\".`;\n      if (!preferredTagName) {\n        return;\n      }\n      if (typeof preferredTagName === 'object') {\n        ({message, replacement: preferredTagName} = preferredTagName);\n      }\n\n      if (preferredTagName !== tagName) {\n        report(message, (fixer) => {\n          const replacement = sourceCode.getText(jsdocNode).replace(\n            new RegExp(`@${_.escapeRegExp(tagName)}\\\\b`, 'u'),\n            `@${preferredTagName}`,\n          );\n\n          return fixer.replaceText(jsdocNode, replacement);\n        }, jsdocTag);\n      }\n    } else {\n      report(`Invalid JSDoc tag name \"${tagName}\".`, null, jsdocTag);\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          definedTags: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"checkTagNames.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js
deleted file mode 100644
index 0f026fc..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js
+++ /dev/null
@@ -1,273 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _jsdoctypeparser = require("jsdoctypeparser");
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-const strictNativeTypes = ['undefined', 'null', 'boolean', 'number', 'bigint', 'string', 'symbol', 'object', 'Array', 'Function', 'Date', 'RegExp'];
-
-const adjustNames = (type, preferred, isGenericMatch, nodeName, node, parentNode) => {
-  let ret = preferred;
-
-  if (isGenericMatch) {
-    if (preferred === '[]') {
-      parentNode.meta.syntax = 'SQUARE_BRACKET';
-      ret = 'Array';
-    } else {
-      const dotBracketEnd = preferred.match(/\.(?:<>)?$/u);
-
-      if (dotBracketEnd) {
-        parentNode.meta.syntax = 'ANGLE_BRACKET_WITH_DOT';
-        ret = preferred.slice(0, -dotBracketEnd[0].length);
-      } else {
-        const bracketEnd = preferred.endsWith('<>');
-
-        if (bracketEnd) {
-          parentNode.meta.syntax = 'ANGLE_BRACKET';
-          ret = preferred.slice(0, -2);
-        }
-      }
-    }
-  } else if (type === 'ANY') {
-    node.type = 'NAME';
-  }
-
-  node.name = ret.replace(/(?:\.|<>|\.<>|\[\])$/u, ''); // For bare pseudo-types like `<>`
-
-  if (!ret) {
-    node.name = nodeName;
-  }
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdocNode,
-  sourceCode,
-  report,
-  utils,
-  settings,
-  context
-}) => {
-  const jsdocTagsWithPossibleType = utils.filterTags(tag => {
-    return utils.tagMightHaveTypePosition(tag.tag);
-  });
-  const preferredTypes = settings.preferredTypes;
-
-  const _ref = context.options[0] || {},
-        noDefaults = _ref.noDefaults,
-        unifyParentAndChildTypeChecks = _ref.unifyParentAndChildTypeChecks,
-        _ref$exemptTagContext = _ref.exemptTagContexts,
-        exemptTagContexts = _ref$exemptTagContext === void 0 ? [] : _ref$exemptTagContext;
-
-  const getPreferredTypeInfo = (type, nodeName, parentName, parentNode) => {
-    let hasMatchingPreferredType;
-    let isGenericMatch;
-    let typeName = nodeName;
-
-    if (Object.keys(preferredTypes).length) {
-      const parentType = parentName === 'subject';
-
-      if (unifyParentAndChildTypeChecks || parentType) {
-        const syntax = _lodash.default.get(parentNode, 'meta.syntax');
-
-        [['.', 'ANGLE_BRACKET_WITH_DOT'], ['.<>', 'ANGLE_BRACKET_WITH_DOT'], ['<>', 'ANGLE_BRACKET']].some(([checkPostFix, syn]) => {
-          isGenericMatch = _lodash.default.get(preferredTypes, nodeName + checkPostFix) !== undefined && syntax === syn;
-
-          if (isGenericMatch) {
-            typeName += checkPostFix;
-          }
-
-          return isGenericMatch;
-        });
-
-        if (!isGenericMatch && parentType) {
-          [['[]', 'SQUARE_BRACKET'], ['.', 'ANGLE_BRACKET_WITH_DOT'], ['.<>', 'ANGLE_BRACKET_WITH_DOT'], ['<>', 'ANGLE_BRACKET']].some(([checkPostFix, syn]) => {
-            isGenericMatch = _lodash.default.get(preferredTypes, checkPostFix) !== undefined && syntax === syn;
-
-            if (isGenericMatch) {
-              typeName = checkPostFix;
-            }
-
-            return isGenericMatch;
-          });
-        }
-      }
-
-      const directNameMatch = _lodash.default.get(preferredTypes, nodeName) !== undefined;
-      const unifiedSyntaxParentMatch = parentType && directNameMatch && unifyParentAndChildTypeChecks;
-      isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;
-      hasMatchingPreferredType = isGenericMatch || directNameMatch && !parentType;
-    }
-
-    return [hasMatchingPreferredType, typeName, isGenericMatch];
-  };
-
-  jsdocTagsWithPossibleType.forEach(jsdocTag => {
-    const invalidTypes = [];
-    let typeAst;
-
-    try {
-      typeAst = (0, _jsdoctypeparser.parse)(jsdocTag.type);
-    } catch (error) {
-      return;
-    }
-
-    (0, _jsdoctypeparser.traverse)(typeAst, (node, parentName, parentNode) => {
-      const type = node.type,
-            name = node.name;
-
-      if (!['NAME', 'ANY'].includes(type)) {
-        return;
-      }
-
-      let nodeName = type === 'ANY' ? '*' : name;
-
-      const _getPreferredTypeInfo = getPreferredTypeInfo(type, nodeName, parentName, parentNode),
-            _getPreferredTypeInfo2 = _slicedToArray(_getPreferredTypeInfo, 3),
-            hasMatchingPreferredType = _getPreferredTypeInfo2[0],
-            typeName = _getPreferredTypeInfo2[1],
-            isGenericMatch = _getPreferredTypeInfo2[2];
-
-      let preferred;
-
-      if (hasMatchingPreferredType) {
-        const preferredSetting = preferredTypes[typeName];
-        nodeName = typeName === '[]' ? typeName : nodeName;
-
-        if (!preferredSetting) {
-          invalidTypes.push([nodeName]);
-        } else if (typeof preferredSetting === 'string') {
-          preferred = preferredSetting;
-          invalidTypes.push([nodeName, preferred]);
-        } else if (typeof preferredSetting === 'object') {
-          preferred = _lodash.default.get(preferredSetting, 'replacement');
-          invalidTypes.push([nodeName, preferred, _lodash.default.get(preferredSetting, 'message')]);
-        } else {
-          utils.reportSettings('Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.');
-          return;
-        }
-      } else if (!noDefaults && type === 'NAME') {
-        var _iteratorNormalCompletion = true;
-        var _didIteratorError = false;
-        var _iteratorError = undefined;
-
-        try {
-          for (var _iterator = strictNativeTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-            const strictNativeType = _step.value;
-
-            if (strictNativeType.toLowerCase() === nodeName.toLowerCase() && strictNativeType !== nodeName && ( // Don't report if user has own map for a strict native type
-            !preferredTypes || _lodash.default.get(preferredTypes, strictNativeType) === undefined)) {
-              preferred = strictNativeType;
-              invalidTypes.push([nodeName, preferred]);
-              break;
-            }
-          }
-        } catch (err) {
-          _didIteratorError = true;
-          _iteratorError = err;
-        } finally {
-          try {
-            if (!_iteratorNormalCompletion && _iterator.return != null) {
-              _iterator.return();
-            }
-          } finally {
-            if (_didIteratorError) {
-              throw _iteratorError;
-            }
-          }
-        }
-      } // For fixer
-
-
-      if (preferred) {
-        adjustNames(type, preferred, isGenericMatch, nodeName, node, parentNode);
-      }
-    });
-
-    if (invalidTypes.length) {
-      const fixedType = (0, _jsdoctypeparser.publish)(typeAst);
-      const tagName = jsdocTag.tag;
-      invalidTypes.forEach(([badType, preferredType = '', message]) => {
-        const fix = fixer => {
-          return fixer.replaceText(jsdocNode, sourceCode.getText(jsdocNode).replace(`{${jsdocTag.type}}`, `{${fixedType}}`));
-        };
-
-        const tagValue = jsdocTag.name ? ` "${jsdocTag.name}"` : '';
-
-        if (exemptTagContexts.some(({
-          tag,
-          types
-        }) => {
-          return tag === tagName && (types === true || types.includes(jsdocTag.type));
-        })) {
-          return;
-        }
-
-        report(message || `Invalid JSDoc @${tagName}${tagValue} type "${badType}"` + (preferredType ? '; ' : '.') + (preferredType ? `prefer: "${preferredType}".` : ''), preferredType ? fix : null, jsdocTag, message ? {
-          tagName,
-          tagValue
-        } : null);
-      });
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        exemptTagContexts: {
-          items: {
-            additionalProperties: false,
-            properties: {
-              tag: {
-                type: 'string'
-              },
-              types: {
-                oneOf: [{
-                  type: 'boolean'
-                }, {
-                  items: {
-                    type: 'string'
-                  },
-                  type: 'array'
-                }]
-              }
-            },
-            type: 'object'
-          },
-          type: 'array'
-        },
-        noDefaults: {
-          type: 'boolean'
-        },
-        unifyParentAndChildTypeChecks: {
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkTypes.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js.map
deleted file mode 100644
index bf4c8ee..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkTypes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkTypes.js"],"names":["strictNativeTypes","adjustNames","type","preferred","isGenericMatch","nodeName","node","parentNode","ret","meta","syntax","dotBracketEnd","match","slice","length","bracketEnd","endsWith","name","replace","jsdocNode","sourceCode","report","utils","settings","context","jsdocTagsWithPossibleType","filterTags","tag","tagMightHaveTypePosition","preferredTypes","options","noDefaults","unifyParentAndChildTypeChecks","exemptTagContexts","getPreferredTypeInfo","parentName","hasMatchingPreferredType","typeName","Object","keys","parentType","_","get","some","checkPostFix","syn","undefined","directNameMatch","unifiedSyntaxParentMatch","forEach","jsdocTag","invalidTypes","typeAst","error","includes","preferredSetting","push","reportSettings","strictNativeType","toLowerCase","fixedType","tagName","badType","preferredType","message","fix","fixer","replaceText","getText","tagValue","types","iterateAllJsdocs","fixable","schema","additionalProperties","properties","items","oneOf"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport {parse, traverse, publish} from 'jsdoctypeparser';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst strictNativeTypes = [\n  'undefined',\n  'null',\n  'boolean',\n  'number',\n  'bigint',\n  'string',\n  'symbol',\n  'object',\n  'Array',\n  'Function',\n  'Date',\n  'RegExp',\n];\n\nconst adjustNames = (type, preferred, isGenericMatch, nodeName, node, parentNode) => {\n  let ret = preferred;\n  if (isGenericMatch) {\n    if (preferred === '[]') {\n      parentNode.meta.syntax = 'SQUARE_BRACKET';\n      ret = 'Array';\n    } else {\n      const dotBracketEnd = preferred.match(/\\.(?:<>)?$/u);\n      if (dotBracketEnd) {\n        parentNode.meta.syntax = 'ANGLE_BRACKET_WITH_DOT';\n        ret = preferred.slice(0, -dotBracketEnd[0].length);\n      } else {\n        const bracketEnd = preferred.endsWith('<>');\n        if (bracketEnd) {\n          parentNode.meta.syntax = 'ANGLE_BRACKET';\n          ret = preferred.slice(0, -2);\n        }\n      }\n    }\n  } else if (type === 'ANY') {\n    node.type = 'NAME';\n  }\n  node.name = ret.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n\n  // For bare pseudo-types like `<>`\n  if (!ret) {\n    node.name = nodeName;\n  }\n};\n\nexport default iterateJsdoc(({\n  jsdocNode,\n  sourceCode,\n  report,\n  utils,\n  settings,\n  context,\n}) => {\n  const jsdocTagsWithPossibleType = utils.filterTags((tag) => {\n    return utils.tagMightHaveTypePosition(tag.tag);\n  });\n\n  const {preferredTypes} = settings;\n  const {\n    noDefaults,\n    unifyParentAndChildTypeChecks,\n    exemptTagContexts = [],\n  } = context.options[0] || {};\n\n  const getPreferredTypeInfo = (type, nodeName, parentName, parentNode) => {\n    let hasMatchingPreferredType;\n    let isGenericMatch;\n    let typeName = nodeName;\n    if (Object.keys(preferredTypes).length) {\n      const parentType = parentName === 'subject';\n      if (unifyParentAndChildTypeChecks || parentType) {\n        const syntax = _.get(parentNode, 'meta.syntax');\n\n        [\n          ['.', 'ANGLE_BRACKET_WITH_DOT'],\n          ['.<>', 'ANGLE_BRACKET_WITH_DOT'],\n          ['<>', 'ANGLE_BRACKET'],\n        ].some(([checkPostFix, syn]) => {\n          isGenericMatch = _.get(\n            preferredTypes,\n            nodeName + checkPostFix,\n          ) !== undefined &&\n            syntax === syn;\n          if (isGenericMatch) {\n            typeName += checkPostFix;\n          }\n\n          return isGenericMatch;\n        });\n        if (!isGenericMatch && parentType) {\n          [\n            ['[]', 'SQUARE_BRACKET'],\n            ['.', 'ANGLE_BRACKET_WITH_DOT'],\n            ['.<>', 'ANGLE_BRACKET_WITH_DOT'],\n            ['<>', 'ANGLE_BRACKET'],\n          ].some(([checkPostFix, syn]) => {\n            isGenericMatch = _.get(preferredTypes, checkPostFix) !== undefined &&\n              syntax === syn;\n            if (isGenericMatch) {\n              typeName = checkPostFix;\n            }\n\n            return isGenericMatch;\n          });\n        }\n      }\n      const directNameMatch = _.get(preferredTypes, nodeName) !== undefined;\n      const unifiedSyntaxParentMatch = parentType && directNameMatch && unifyParentAndChildTypeChecks;\n      isGenericMatch = isGenericMatch || unifiedSyntaxParentMatch;\n\n      hasMatchingPreferredType = isGenericMatch ||\n        directNameMatch && !parentType;\n    }\n\n    return [hasMatchingPreferredType, typeName, isGenericMatch];\n  };\n\n  jsdocTagsWithPossibleType.forEach((jsdocTag) => {\n    const invalidTypes = [];\n    let typeAst;\n\n    try {\n      typeAst = parse(jsdocTag.type);\n    } catch (error) {\n      return;\n    }\n\n    traverse(typeAst, (node, parentName, parentNode) => {\n      const {type, name} = node;\n      if (!['NAME', 'ANY'].includes(type)) {\n        return;\n      }\n      let nodeName = type === 'ANY' ? '*' : name;\n\n      const [hasMatchingPreferredType, typeName, isGenericMatch] = getPreferredTypeInfo(type, nodeName, parentName, parentNode);\n\n      let preferred;\n      if (hasMatchingPreferredType) {\n        const preferredSetting = preferredTypes[typeName];\n        nodeName = typeName === '[]' ? typeName : nodeName;\n\n        if (!preferredSetting) {\n          invalidTypes.push([nodeName]);\n        } else if (typeof preferredSetting === 'string') {\n          preferred = preferredSetting;\n          invalidTypes.push([nodeName, preferred]);\n        } else if (typeof preferredSetting === 'object') {\n          preferred = _.get(preferredSetting, 'replacement');\n          invalidTypes.push([\n            nodeName,\n            preferred,\n            _.get(preferredSetting, 'message'),\n          ]);\n        } else {\n          utils.reportSettings(\n            'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n          );\n\n          return;\n        }\n      } else if (!noDefaults && type === 'NAME') {\n        for (const strictNativeType of strictNativeTypes) {\n          if (strictNativeType.toLowerCase() === nodeName.toLowerCase() &&\n            strictNativeType !== nodeName &&\n\n            // Don't report if user has own map for a strict native type\n            (!preferredTypes || _.get(preferredTypes, strictNativeType) === undefined)\n          ) {\n            preferred = strictNativeType;\n            invalidTypes.push([nodeName, preferred]);\n            break;\n          }\n        }\n      }\n\n      // For fixer\n      if (preferred) {\n        adjustNames(type, preferred, isGenericMatch, nodeName, node, parentNode);\n      }\n    });\n\n    if (invalidTypes.length) {\n      const fixedType = publish(typeAst);\n\n      const tagName = jsdocTag.tag;\n      invalidTypes.forEach(([badType, preferredType = '', message]) => {\n        const fix = (fixer) => {\n          return fixer.replaceText(\n            jsdocNode,\n            sourceCode.getText(jsdocNode).replace(\n              `{${jsdocTag.type}}`,\n              `{${fixedType}}`,\n            ),\n          );\n        };\n\n        const tagValue = jsdocTag.name ? ` \"${jsdocTag.name}\"` : '';\n        if (exemptTagContexts.some(({tag, types}) => {\n          return tag === tagName &&\n            (types === true || types.includes(jsdocTag.type));\n        })) {\n          return;\n        }\n\n        report(\n          message ||\n            `Invalid JSDoc @${tagName}${tagValue} type \"${badType}\"` +\n            (preferredType ? '; ' : '.') +\n            (preferredType ? `prefer: \"${preferredType}\".` : ''),\n          preferredType ? fix : null,\n          jsdocTag,\n          message ? {\n            tagName,\n            tagValue,\n          } : null,\n        );\n      });\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          exemptTagContexts: {\n            items: {\n              additionalProperties: false,\n              properties: {\n                tag: {\n                  type: 'string',\n                },\n                types: {\n                  oneOf: [\n                    {\n                      type: 'boolean',\n                    },\n                    {\n                      items: {\n                        type: 'string',\n                      },\n                      type: 'array',\n                    },\n                  ],\n                },\n              },\n              type: 'object',\n            },\n            type: 'array',\n          },\n          noDefaults: {\n            type: 'boolean',\n          },\n          unifyParentAndChildTypeChecks: {\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"checkTypes.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js b/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js
deleted file mode 100644
index f615d61..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js
+++ /dev/null
@@ -1,110 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _semver = _interopRequireDefault(require("semver"));
-
-var _spdxExpressionParse = _interopRequireDefault(require("spdx-expression-parse"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  utils,
-  report,
-  context
-}) => {
-  const options = context.options[0] || {};
-  const _options$allowedLicen = options.allowedLicenses,
-        allowedLicenses = _options$allowedLicen === void 0 ? null : _options$allowedLicen,
-        _options$allowedAutho = options.allowedAuthors,
-        allowedAuthors = _options$allowedAutho === void 0 ? null : _options$allowedAutho,
-        _options$licensePatte = options.licensePattern,
-        licensePattern = _options$licensePatte === void 0 ? '([^\n]*)' : _options$licensePatte;
-  utils.forEachPreferredTag('version', (jsdocParameter, targetTagName) => {
-    const version = jsdocParameter.description.trim();
-
-    if (!version) {
-      report(`Missing JSDoc @${targetTagName}.`, null, jsdocParameter);
-    } else if (!_semver.default.valid(version)) {
-      report(`Invalid JSDoc @${targetTagName}: "${jsdocParameter.description}".`, null, jsdocParameter);
-    }
-  });
-  utils.forEachPreferredTag('since', (jsdocParameter, targetTagName) => {
-    const version = jsdocParameter.description.trim();
-
-    if (!version) {
-      report(`Missing JSDoc @${targetTagName}.`, null, jsdocParameter);
-    } else if (!_semver.default.valid(version)) {
-      report(`Invalid JSDoc @${targetTagName}: "${jsdocParameter.description}".`, null, jsdocParameter);
-    }
-  });
-  utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => {
-    const licenseRegex = new RegExp(licensePattern, 'g');
-    const match = jsdocParameter.description.match(licenseRegex);
-    const license = match && match[1] || match[0];
-
-    if (!license.trim()) {
-      report(`Missing JSDoc @${targetTagName}.`, null, jsdocParameter);
-    } else if (allowedLicenses) {
-      if (allowedLicenses !== true && !allowedLicenses.includes(license)) {
-        report(`Invalid JSDoc @${targetTagName}: "${license}"; expected one of ${allowedLicenses.join(', ')}.`, null, jsdocParameter);
-      }
-    } else {
-      try {
-        (0, _spdxExpressionParse.default)(license);
-      } catch (error) {
-        report(`Invalid JSDoc @${targetTagName}: "${license}"; expected SPDX expression: https://spdx.org/licenses/.`, null, jsdocParameter);
-      }
-    }
-  });
-  utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => {
-    const author = jsdocParameter.description;
-
-    if (!author.trim()) {
-      report(`Missing JSDoc @${targetTagName}.`, null, jsdocParameter);
-    } else if (allowedAuthors) {
-      if (!allowedAuthors.includes(author)) {
-        report(`Invalid JSDoc @${targetTagName}: "${jsdocParameter.description}"; expected one of ${allowedAuthors.join(', ')}.`, null, jsdocParameter);
-      }
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        allowedAuthors: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        allowedLicenses: {
-          anyOf: [{
-            items: {
-              type: 'string'
-            },
-            type: 'array'
-          }, {
-            type: 'boolean'
-          }]
-        },
-        licensePattern: {
-          type: 'string'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=checkValues.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js.map
deleted file mode 100644
index 97ae60c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/checkValues.js"],"names":["utils","report","context","options","allowedLicenses","allowedAuthors","licensePattern","forEachPreferredTag","jsdocParameter","targetTagName","version","description","trim","semver","valid","licenseRegex","RegExp","match","license","includes","join","error","author","iterateAllJsdocs","meta","schema","additionalProperties","properties","items","type","anyOf"],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport spdxExpressionParse from 'spdx-expression-parse';\nimport iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  utils,\n  report,\n  context,\n}) => {\n  const options = context.options[0] || {};\n  const {\n    allowedLicenses = null,\n    allowedAuthors = null,\n    licensePattern = '([^\\n]*)',\n  } = options;\n\n  utils.forEachPreferredTag('version', (jsdocParameter, targetTagName) => {\n    const version = jsdocParameter.description.trim();\n    if (!version) {\n      report(\n        `Missing JSDoc @${targetTagName}.`,\n        null,\n        jsdocParameter,\n      );\n    } else if (!semver.valid(version)) {\n      report(\n        `Invalid JSDoc @${targetTagName}: \"${jsdocParameter.description}\".`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n  utils.forEachPreferredTag('since', (jsdocParameter, targetTagName) => {\n    const version = jsdocParameter.description.trim();\n    if (!version) {\n      report(\n        `Missing JSDoc @${targetTagName}.`,\n        null,\n        jsdocParameter,\n      );\n    } else if (!semver.valid(version)) {\n      report(\n        `Invalid JSDoc @${targetTagName}: \"${jsdocParameter.description}\".`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n  utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => {\n    const licenseRegex = new RegExp(licensePattern, 'g');\n    const match = jsdocParameter.description.match(licenseRegex);\n    const license = match && match[1] || match[0];\n    if (!license.trim()) {\n      report(\n        `Missing JSDoc @${targetTagName}.`,\n        null,\n        jsdocParameter,\n      );\n    } else if (allowedLicenses) {\n      if (allowedLicenses !== true && !allowedLicenses.includes(license)) {\n        report(\n          `Invalid JSDoc @${targetTagName}: \"${license}\"; expected one of ${allowedLicenses.join(', ')}.`,\n          null,\n          jsdocParameter,\n        );\n      }\n    } else {\n      try {\n        spdxExpressionParse(license);\n      } catch (error) {\n        report(\n          `Invalid JSDoc @${targetTagName}: \"${license}\"; expected SPDX expression: https://spdx.org/licenses/.`,\n          null,\n          jsdocParameter,\n        );\n      }\n    }\n  });\n\n  utils.forEachPreferredTag('author', (jsdocParameter, targetTagName) => {\n    const author = jsdocParameter.description;\n    if (!author.trim()) {\n      report(\n        `Missing JSDoc @${targetTagName}.`,\n        null,\n        jsdocParameter,\n      );\n    } else if (allowedAuthors) {\n      if (!allowedAuthors.includes(author)) {\n        report(\n          `Invalid JSDoc @${targetTagName}: \"${jsdocParameter.description}\"; expected one of ${allowedAuthors.join(', ')}.`,\n          null,\n          jsdocParameter,\n        );\n      }\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          allowedAuthors: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          allowedLicenses: {\n            anyOf: [\n              {\n                items: {\n                  type: 'string',\n                },\n                type: 'array',\n              },\n              {\n                type: 'boolean',\n              },\n            ],\n          },\n          licensePattern: {\n            type: 'string',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"checkValues.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js b/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js
deleted file mode 100644
index ba5672b..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const defaultEmptyTags = ['abstract', 'async', 'generator', 'global', 'hideconstructor', 'ignore', 'inheritdoc', 'inner', 'instance', 'override', 'readonly'];
-const emptyIfNotClosure = ['package', 'private', 'protected', 'public', 'static'];
-
-var _default = (0, _iterateJsdoc.default)(({
-  settings,
-  jsdoc,
-  utils
-}) => {
-  if (!jsdoc.tags) {
-    return;
-  }
-
-  const emptyTags = utils.filterTags(({
-    tag: tagName
-  }) => {
-    return defaultEmptyTags.includes(tagName) || utils.hasOptionTag(tagName) && jsdoc.tags.some(({
-      tag
-    }) => {
-      return tag === tagName;
-    }) || settings.mode !== 'closure' && emptyIfNotClosure.includes(tagName);
-  });
-  emptyTags.forEach(tag => {
-    const fix = () => {
-      tag.name = '';
-      tag.description = '';
-      tag.type = '';
-      tag.optional = false;
-      tag.default = undefined;
-    };
-
-    const content = tag.name || tag.description || tag.type;
-
-    if (content) {
-      utils.reportJSDoc(`@${tag.tag} should be empty.`, tag, fix);
-    }
-  });
-}, {
-  checkPrivate: true,
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        tags: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=emptyTags.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js.map
deleted file mode 100644
index 829b569..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/emptyTags.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/emptyTags.js"],"names":["defaultEmptyTags","emptyIfNotClosure","settings","jsdoc","utils","tags","emptyTags","filterTags","tag","tagName","includes","hasOptionTag","some","mode","forEach","fix","name","description","type","optional","default","undefined","content","reportJSDoc","checkPrivate","iterateAllJsdocs","meta","fixable","schema","additionalProperties","properties","items"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,gBAAgB,GAAG,CACvB,UADuB,EACX,OADW,EACF,WADE,EACW,QADX,EACqB,iBADrB,EAEvB,QAFuB,EAEb,YAFa,EAEC,OAFD,EAEU,UAFV,EAEsB,UAFtB,EAEkC,UAFlC,CAAzB;AAKA,MAAMC,iBAAiB,GAAG,CACxB,SADwB,EACb,SADa,EACF,WADE,EACW,QADX,EACqB,QADrB,CAA1B;;eAIe,2BAAa,CAAC;AAC3BC,EAAAA,QAD2B;AAE3BC,EAAAA,KAF2B;AAG3BC,EAAAA;AAH2B,CAAD,KAItB;AACJ,MAAI,CAACD,KAAK,CAACE,IAAX,EAAiB;AACf;AACD;;AACD,QAAMC,SAAS,GAAGF,KAAK,CAACG,UAAN,CAAiB,CAAC;AAACC,IAAAA,GAAG,EAAEC;AAAN,GAAD,KAAoB;AACrD,WAAOT,gBAAgB,CAACU,QAAjB,CAA0BD,OAA1B,KACLL,KAAK,CAACO,YAAN,CAAmBF,OAAnB,KAA+BN,KAAK,CAACE,IAAN,CAAWO,IAAX,CAAgB,CAAC;AAACJ,MAAAA;AAAD,KAAD,KAAW;AACxD,aAAOA,GAAG,KAAKC,OAAf;AACD,KAF8B,CAD1B,IAILP,QAAQ,CAACW,IAAT,KAAkB,SAAlB,IAA+BZ,iBAAiB,CAACS,QAAlB,CAA2BD,OAA3B,CAJjC;AAKD,GANiB,CAAlB;AAOAH,EAAAA,SAAS,CAACQ,OAAV,CAAmBN,GAAD,IAAS;AACzB,UAAMO,GAAG,GAAG,MAAM;AAChBP,MAAAA,GAAG,CAACQ,IAAJ,GAAW,EAAX;AACAR,MAAAA,GAAG,CAACS,WAAJ,GAAkB,EAAlB;AACAT,MAAAA,GAAG,CAACU,IAAJ,GAAW,EAAX;AACAV,MAAAA,GAAG,CAACW,QAAJ,GAAe,KAAf;AACAX,MAAAA,GAAG,CAACY,OAAJ,GAAcC,SAAd;AACD,KAND;;AAOA,UAAMC,OAAO,GAAGd,GAAG,CAACQ,IAAJ,IAAYR,GAAG,CAACS,WAAhB,IAA+BT,GAAG,CAACU,IAAnD;;AACA,QAAII,OAAJ,EAAa;AACXlB,MAAAA,KAAK,CAACmB,WAAN,CAAmB,IAAGf,GAAG,CAACA,GAAI,mBAA9B,EAAkDA,GAAlD,EAAuDO,GAAvD;AACD;AACF,GAZD;AAaD,CA5Bc,EA4BZ;AACDS,EAAAA,YAAY,EAAE,IADb;AAEDC,EAAAA,gBAAgB,EAAE,IAFjB;AAGDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVzB,QAAAA,IAAI,EAAE;AACJ0B,UAAAA,KAAK,EAAE;AACLb,YAAAA,IAAI,EAAE;AADD,WADH;AAIJA,UAAAA,IAAI,EAAE;AAJF;AADI,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CAFJ;AAgBJA,IAAAA,IAAI,EAAE;AAhBF;AAHL,CA5BY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst defaultEmptyTags = [\n  'abstract', 'async', 'generator', 'global', 'hideconstructor',\n  'ignore', 'inheritdoc', 'inner', 'instance', 'override', 'readonly',\n];\n\nconst emptyIfNotClosure = [\n  'package', 'private', 'protected', 'public', 'static',\n];\n\nexport default iterateJsdoc(({\n  settings,\n  jsdoc,\n  utils,\n}) => {\n  if (!jsdoc.tags) {\n    return;\n  }\n  const emptyTags = utils.filterTags(({tag: tagName}) => {\n    return defaultEmptyTags.includes(tagName) ||\n      utils.hasOptionTag(tagName) && jsdoc.tags.some(({tag}) => {\n        return tag === tagName;\n      }) ||\n      settings.mode !== 'closure' && emptyIfNotClosure.includes(tagName);\n  });\n  emptyTags.forEach((tag) => {\n    const fix = () => {\n      tag.name = '';\n      tag.description = '';\n      tag.type = '';\n      tag.optional = false;\n      tag.default = undefined;\n    };\n    const content = tag.name || tag.description || tag.type;\n    if (content) {\n      utils.reportJSDoc(`@${tag.tag} should be empty.`, tag, fix);\n    }\n  });\n}, {\n  checkPrivate: true,\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          tags: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"emptyTags.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js b/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js
deleted file mode 100644
index ba146ae..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  const iteratingFunction = utils.isIteratingFunction();
-
-  if (iteratingFunction) {
-    if (utils.hasATag(['class', 'constructor']) || utils.isConstructor()) {
-      return;
-    }
-  } else if (!utils.isVirtualFunction()) {
-    return;
-  }
-
-  utils.forEachPreferredTag('implements', tag => {
-    report('@implements used on a non-constructor function', null, tag);
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=implementsOnClasses.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js.map
deleted file mode 100644
index 0f49881..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/implementsOnClasses.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/implementsOnClasses.js"],"names":["report","utils","iteratingFunction","isIteratingFunction","hasATag","isConstructor","isVirtualFunction","forEachPreferredTag","tag","contextDefaults","meta","schema","additionalProperties","properties","contexts","items","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJ,QAAMC,iBAAiB,GAAGD,KAAK,CAACE,mBAAN,EAA1B;;AAEA,MAAID,iBAAJ,EAAuB;AACrB,QAAID,KAAK,CAACG,OAAN,CAAc,CAChB,OADgB,EAEhB,aAFgB,CAAd,KAIFH,KAAK,CAACI,aAAN,EAJF,EAKE;AACA;AACD;AACF,GATD,MASO,IAAI,CAACJ,KAAK,CAACK,iBAAN,EAAL,EAAgC;AACrC;AACD;;AAEDL,EAAAA,KAAK,CAACM,mBAAN,CAA0B,YAA1B,EAAyCC,GAAD,IAAS;AAC/CR,IAAAA,MAAM,CAAC,gDAAD,EAAmD,IAAnD,EAAyDQ,GAAzD,CAAN;AACD,GAFD;AAGD,CAtBc,EAsBZ;AACDC,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLC,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAtBY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  const iteratingFunction = utils.isIteratingFunction();\n\n  if (iteratingFunction) {\n    if (utils.hasATag([\n      'class',\n      'constructor',\n    ]) ||\n      utils.isConstructor()\n    ) {\n      return;\n    }\n  } else if (!utils.isVirtualFunction()) {\n    return;\n  }\n\n  utils.forEachPreferredTag('implements', (tag) => {\n    report('@implements used on a non-constructor function', null, tag);\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"implementsOnClasses.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js
deleted file mode 100644
index 8fb1613..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js
+++ /dev/null
@@ -1,137 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// If supporting Node >= 10, we could loosen the default to this for the
-//   initial letter: \\p{Upper}
-const matchDescriptionDefault = '^[A-Z`\\d_][\\s\\S]*[.?!`]$';
-
-const stringOrDefault = (value, userDefault) => {
-  return typeof value === 'string' ? value : userDefault || matchDescriptionDefault;
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report,
-  context,
-  utils
-}) => {
-  const options = context.options[0] || {};
-
-  const validateDescription = (description, tag) => {
-    if (!tag && options.mainDescription === false) {
-      return;
-    }
-
-    let tagValue = options.mainDescription;
-
-    if (tag) {
-      const tagName = tag.tag;
-      tagValue = options.tags[tagName];
-    }
-
-    const regex = new RegExp(stringOrDefault(tagValue, options.matchDescription), 'u');
-
-    if (!regex.test(description)) {
-      report('JSDoc description does not satisfy the regex pattern.', null, tag || {
-        // Add one as description would typically be into block
-        line: jsdoc.line + 1
-      });
-    }
-  };
-
-  if (jsdoc.description) {
-    validateDescription(jsdoc.description);
-  }
-
-  if (!options.tags || !Object.keys(options.tags).length) {
-    return;
-  }
-
-  const hasOptionTag = tagName => {
-    return Boolean(options.tags[tagName]);
-  };
-
-  utils.forEachPreferredTag('description', (matchingJsdocTag, targetTagName) => {
-    const description = (matchingJsdocTag.name + ' ' + matchingJsdocTag.description).trim();
-
-    if (hasOptionTag(targetTagName)) {
-      validateDescription(description, matchingJsdocTag);
-    }
-  }, true);
-  const whitelistedTags = utils.filterTags(({
-    tag: tagName
-  }) => {
-    return hasOptionTag(tagName);
-  });
-
-  const _utils$getTagsByType = utils.getTagsByType(whitelistedTags),
-        tagsWithNames = _utils$getTagsByType.tagsWithNames,
-        tagsWithoutNames = _utils$getTagsByType.tagsWithoutNames;
-
-  tagsWithNames.some(tag => {
-    const description = _lodash.default.trimStart(tag.description, '- ');
-
-    return validateDescription(description, tag);
-  });
-  tagsWithoutNames.some(tag => {
-    const description = (tag.name + ' ' + tag.description).trim();
-    return validateDescription(description, tag);
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        mainDescription: {
-          oneOf: [{
-            format: 'regex',
-            type: 'string'
-          }, {
-            type: 'boolean'
-          }]
-        },
-        matchDescription: {
-          format: 'regex',
-          type: 'string'
-        },
-        tags: {
-          patternProperties: {
-            '.*': {
-              oneOf: [{
-                format: 'regex',
-                type: 'string'
-              }, {
-                enum: [true],
-                type: 'boolean'
-              }]
-            }
-          },
-          type: 'object'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=matchDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js.map
deleted file mode 100644
index 28bd571..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/matchDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/matchDescription.js"],"names":["matchDescriptionDefault","stringOrDefault","value","userDefault","jsdoc","report","context","utils","options","validateDescription","description","tag","mainDescription","tagValue","tagName","tags","regex","RegExp","matchDescription","test","line","Object","keys","length","hasOptionTag","Boolean","forEachPreferredTag","matchingJsdocTag","targetTagName","name","trim","whitelistedTags","filterTags","getTagsByType","tagsWithNames","tagsWithoutNames","some","_","trimStart","contextDefaults","meta","schema","additionalProperties","properties","contexts","items","type","oneOf","format","patternProperties","enum"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\n\n// If supporting Node >= 10, we could loosen the default to this for the\n//   initial letter: \\\\p{Upper}\nconst matchDescriptionDefault = '^[A-Z`\\\\d_][\\\\s\\\\S]*[.?!`]$';\n\nconst stringOrDefault = (value, userDefault) => {\n  return typeof value === 'string' ?\n    value :\n    userDefault || matchDescriptionDefault;\n};\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n  context,\n  utils,\n}) => {\n  const options = context.options[0] || {};\n\n  const validateDescription = (description, tag) => {\n    if (!tag && options.mainDescription === false) {\n      return;\n    }\n\n    let tagValue = options.mainDescription;\n    if (tag) {\n      const tagName = tag.tag;\n      tagValue = options.tags[tagName];\n    }\n\n    const regex = new RegExp(\n      stringOrDefault(tagValue, options.matchDescription),\n      'u',\n    );\n\n    if (!regex.test(description)) {\n      report('JSDoc description does not satisfy the regex pattern.', null, tag || {\n        // Add one as description would typically be into block\n        line: jsdoc.line + 1,\n      });\n    }\n  };\n\n  if (jsdoc.description) {\n    validateDescription(jsdoc.description);\n  }\n\n  if (!options.tags || !Object.keys(options.tags).length) {\n    return;\n  }\n\n  const hasOptionTag = (tagName) => {\n    return Boolean(options.tags[tagName]);\n  };\n\n  utils.forEachPreferredTag('description', (matchingJsdocTag, targetTagName) => {\n    const description = (matchingJsdocTag.name + ' ' + matchingJsdocTag.description).trim();\n    if (hasOptionTag(targetTagName)) {\n      validateDescription(description, matchingJsdocTag);\n    }\n  }, true);\n\n  const whitelistedTags = utils.filterTags(({tag: tagName}) => {\n    return hasOptionTag(tagName);\n  });\n  const {tagsWithNames, tagsWithoutNames} = utils.getTagsByType(whitelistedTags);\n\n  tagsWithNames.some((tag) => {\n    const description = _.trimStart(tag.description, '- ');\n\n    return validateDescription(description, tag);\n  });\n\n  tagsWithoutNames.some((tag) => {\n    const description = (tag.name + ' ' + tag.description).trim();\n\n    return validateDescription(description, tag);\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          mainDescription: {\n            oneOf: [\n              {\n                format: 'regex',\n                type: 'string',\n              },\n              {\n                type: 'boolean',\n              },\n            ],\n          },\n          matchDescription: {\n            format: 'regex',\n            type: 'string',\n          },\n          tags: {\n            patternProperties: {\n              '.*': {\n                oneOf: [\n                  {\n                    format: 'regex',\n                    type: 'string',\n                  },\n                  {\n                    enum: [true],\n                    type: 'boolean',\n                  },\n                ],\n              },\n            },\n            type: 'object',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"matchDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js
deleted file mode 100644
index 8e43309..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report,
-  context,
-  jsdocNode,
-  sourceCode,
-  indent
-}) => {
-  let always;
-
-  if (!jsdoc.description.trim() || !jsdoc.tags.length) {
-    return;
-  }
-
-  if (_lodash.default.has(context.options, 0)) {
-    always = context.options[0] === 'always';
-  } else {
-    always = true;
-  }
-
-  const descriptionEndsWithANewline = /\n\r?$/.test(jsdoc.description);
-
-  if (always) {
-    if (!descriptionEndsWithANewline) {
-      const sourceLines = sourceCode.getText(jsdocNode).split('\n');
-      const splitDesc = jsdoc.description.split('\n');
-      const lastDescriptionLine = splitDesc.length - 1;
-      report('There must be a newline after the description of the JSDoc block.', fixer => {
-        // Add the new line
-        const injectedLine = `${indent} *` + (sourceLines[lastDescriptionLine].endsWith('\r') ? '\r' : '');
-        sourceLines.splice(lastDescriptionLine + 1, 0, injectedLine);
-        return fixer.replaceText(jsdocNode, sourceLines.join('\n'));
-      }, {
-        line: lastDescriptionLine
-      });
-    }
-  } else if (descriptionEndsWithANewline) {
-    const sourceLines = sourceCode.getText(jsdocNode).split('\n');
-    const splitDesc = jsdoc.description.split('\n');
-    const lastDescriptionLine = splitDesc.length - 1;
-    report('There must be no newline after the description of the JSDoc block.', fixer => {
-      // Remove the extra line
-      sourceLines.splice(lastDescriptionLine, 1);
-      return fixer.replaceText(jsdocNode, sourceLines.join('\n'));
-    }, {
-      line: lastDescriptionLine
-    });
-  }
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'whitespace',
-    schema: [{
-      enum: ['always', 'never'],
-      type: 'string'
-    }],
-    type: 'layout'
-  },
-  noTrim: true
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=newlineAfterDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js.map
deleted file mode 100644
index 3837753..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/newlineAfterDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/newlineAfterDescription.js"],"names":["jsdoc","report","context","jsdocNode","sourceCode","indent","always","description","trim","tags","length","_","has","options","descriptionEndsWithANewline","test","sourceLines","getText","split","splitDesc","lastDescriptionLine","fixer","injectedLine","endsWith","splice","replaceText","join","line","iterateAllJsdocs","meta","fixable","schema","enum","type","noTrim"],"mappings":";;;;;;;AAAA;;AACA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,KAD2B;AAE3BC,EAAAA,MAF2B;AAG3BC,EAAAA,OAH2B;AAI3BC,EAAAA,SAJ2B;AAK3BC,EAAAA,UAL2B;AAM3BC,EAAAA;AAN2B,CAAD,KAOtB;AACJ,MAAIC,MAAJ;;AAEA,MAAI,CAACN,KAAK,CAACO,WAAN,CAAkBC,IAAlB,EAAD,IAA6B,CAACR,KAAK,CAACS,IAAN,CAAWC,MAA7C,EAAqD;AACnD;AACD;;AAED,MAAIC,gBAAEC,GAAF,CAAMV,OAAO,CAACW,OAAd,EAAuB,CAAvB,CAAJ,EAA+B;AAC7BP,IAAAA,MAAM,GAAGJ,OAAO,CAACW,OAAR,CAAgB,CAAhB,MAAuB,QAAhC;AACD,GAFD,MAEO;AACLP,IAAAA,MAAM,GAAG,IAAT;AACD;;AAED,QAAMQ,2BAA2B,GAAI,QAAD,CAAWC,IAAX,CAAgBf,KAAK,CAACO,WAAtB,CAApC;;AAEA,MAAID,MAAJ,EAAY;AACV,QAAI,CAACQ,2BAAL,EAAkC;AAChC,YAAME,WAAW,GAAGZ,UAAU,CAACa,OAAX,CAAmBd,SAAnB,EAA8Be,KAA9B,CAAoC,IAApC,CAApB;AACA,YAAMC,SAAS,GAAGnB,KAAK,CAACO,WAAN,CAAkBW,KAAlB,CAAwB,IAAxB,CAAlB;AACA,YAAME,mBAAmB,GAAGD,SAAS,CAACT,MAAV,GAAmB,CAA/C;AACAT,MAAAA,MAAM,CAAC,mEAAD,EAAuEoB,KAAD,IAAW;AACrF;AACA,cAAMC,YAAY,GAAI,GAAEjB,MAAO,IAAV,IAClBW,WAAW,CAACI,mBAAD,CAAX,CAAiCG,QAAjC,CAA0C,IAA1C,IAAkD,IAAlD,GAAyD,EADvC,CAArB;AAEAP,QAAAA,WAAW,CAACQ,MAAZ,CAAmBJ,mBAAmB,GAAG,CAAzC,EAA4C,CAA5C,EAA+CE,YAA/C;AAEA,eAAOD,KAAK,CAACI,WAAN,CAAkBtB,SAAlB,EAA6Ba,WAAW,CAACU,IAAZ,CAAiB,IAAjB,CAA7B,CAAP;AACD,OAPK,EAOH;AACDC,QAAAA,IAAI,EAAEP;AADL,OAPG,CAAN;AAUD;AACF,GAhBD,MAgBO,IAAIN,2BAAJ,EAAiC;AACtC,UAAME,WAAW,GAAGZ,UAAU,CAACa,OAAX,CAAmBd,SAAnB,EAA8Be,KAA9B,CAAoC,IAApC,CAApB;AACA,UAAMC,SAAS,GAAGnB,KAAK,CAACO,WAAN,CAAkBW,KAAlB,CAAwB,IAAxB,CAAlB;AACA,UAAME,mBAAmB,GAAGD,SAAS,CAACT,MAAV,GAAmB,CAA/C;AACAT,IAAAA,MAAM,CAAC,oEAAD,EAAwEoB,KAAD,IAAW;AACtF;AACAL,MAAAA,WAAW,CAACQ,MAAZ,CAAmBJ,mBAAnB,EAAwC,CAAxC;AAEA,aAAOC,KAAK,CAACI,WAAN,CAAkBtB,SAAlB,EAA6Ba,WAAW,CAACU,IAAZ,CAAiB,IAAjB,CAA7B,CAAP;AACD,KALK,EAKH;AACDC,MAAAA,IAAI,EAAEP;AADL,KALG,CAAN;AAQD;AACF,CAnDc,EAmDZ;AACDQ,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,YADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,IAAI,EAAE,CAAC,QAAD,EAAW,OAAX,CADR;AAEEC,MAAAA,IAAI,EAAE;AAFR,KADM,CAFJ;AAQJA,IAAAA,IAAI,EAAE;AARF,GAFL;AAYDC,EAAAA,MAAM,EAAE;AAZP,CAnDY,C","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n  context,\n  jsdocNode,\n  sourceCode,\n  indent,\n}) => {\n  let always;\n\n  if (!jsdoc.description.trim() || !jsdoc.tags.length) {\n    return;\n  }\n\n  if (_.has(context.options, 0)) {\n    always = context.options[0] === 'always';\n  } else {\n    always = true;\n  }\n\n  const descriptionEndsWithANewline = (/\\n\\r?$/).test(jsdoc.description);\n\n  if (always) {\n    if (!descriptionEndsWithANewline) {\n      const sourceLines = sourceCode.getText(jsdocNode).split('\\n');\n      const splitDesc = jsdoc.description.split('\\n');\n      const lastDescriptionLine = splitDesc.length - 1;\n      report('There must be a newline after the description of the JSDoc block.', (fixer) => {\n        // Add the new line\n        const injectedLine = `${indent} *` +\n          (sourceLines[lastDescriptionLine].endsWith('\\r') ? '\\r' : '');\n        sourceLines.splice(lastDescriptionLine + 1, 0, injectedLine);\n\n        return fixer.replaceText(jsdocNode, sourceLines.join('\\n'));\n      }, {\n        line: lastDescriptionLine,\n      });\n    }\n  } else if (descriptionEndsWithANewline) {\n    const sourceLines = sourceCode.getText(jsdocNode).split('\\n');\n    const splitDesc = jsdoc.description.split('\\n');\n    const lastDescriptionLine = splitDesc.length - 1;\n    report('There must be no newline after the description of the JSDoc block.', (fixer) => {\n      // Remove the extra line\n      sourceLines.splice(lastDescriptionLine, 1);\n\n      return fixer.replaceText(jsdocNode, sourceLines.join('\\n'));\n    }, {\n      line: lastDescriptionLine,\n    });\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'whitespace',\n    schema: [\n      {\n        enum: ['always', 'never'],\n        type: 'string',\n      },\n    ],\n    type: 'layout',\n  },\n  noTrim: true,\n});\n"],"file":"newlineAfterDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js b/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js
deleted file mode 100644
index 507e93e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  context,
-  sourceCode,
-  allComments,
-  makeReport
-}) => {
-  const nonJsdocNodes = allComments.filter(comment => {
-    return /^\/\*(?!\*)[\s*]*@\w/.test(sourceCode.getText(comment));
-  });
-
-  if (!nonJsdocNodes.length) {
-    return;
-  }
-
-  nonJsdocNodes.forEach(node => {
-    const report = makeReport(context, node);
-
-    const fix = fixer => {
-      const text = sourceCode.getText(node);
-      return fixer.replaceText(node, text.replace('/*', '/**'));
-    };
-
-    report('Expected JSDoc-like comment to begin with two asterisks.', fix);
-  });
-}, {
-  checkFile: true,
-  meta: {
-    fixable: 'code',
-    type: 'layout'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=noBadBlocks.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js.map
deleted file mode 100644
index d01764c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noBadBlocks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/noBadBlocks.js"],"names":["context","sourceCode","allComments","makeReport","nonJsdocNodes","filter","comment","test","getText","length","forEach","node","report","fix","fixer","text","replaceText","replace","checkFile","meta","fixable","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,OAD2B;AAE3BC,EAAAA,UAF2B;AAG3BC,EAAAA,WAH2B;AAI3BC,EAAAA;AAJ2B,CAAD,KAKtB;AACJ,QAAMC,aAAa,GAAGF,WAAW,CAACG,MAAZ,CAAoBC,OAAD,IAAa;AACpD,WAAQ,sBAAD,CAAyBC,IAAzB,CAA8BN,UAAU,CAACO,OAAX,CAAmBF,OAAnB,CAA9B,CAAP;AACD,GAFqB,CAAtB;;AAGA,MAAI,CAACF,aAAa,CAACK,MAAnB,EAA2B;AACzB;AACD;;AAEDL,EAAAA,aAAa,CAACM,OAAd,CAAuBC,IAAD,IAAU;AAC9B,UAAMC,MAAM,GAAGT,UAAU,CAACH,OAAD,EAAUW,IAAV,CAAzB;;AAEA,UAAME,GAAG,GAAIC,KAAD,IAAW;AACrB,YAAMC,IAAI,GAAGd,UAAU,CAACO,OAAX,CAAmBG,IAAnB,CAAb;AAEA,aAAOG,KAAK,CAACE,WAAN,CAAkBL,IAAlB,EAAwBI,IAAI,CAACE,OAAL,CAAa,IAAb,EAAmB,KAAnB,CAAxB,CAAP;AACD,KAJD;;AAKAL,IAAAA,MAAM,CAAC,0DAAD,EAA6DC,GAA7D,CAAN;AACD,GATD;AAUD,CAvBc,EAuBZ;AACDK,EAAAA,SAAS,EAAE,IADV;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,IAAI,EAAE;AAFF;AAFL,CAvBY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  context,\n  sourceCode,\n  allComments,\n  makeReport,\n}) => {\n  const nonJsdocNodes = allComments.filter((comment) => {\n    return (/^\\/\\*(?!\\*)[\\s*]*@\\w/).test(sourceCode.getText(comment));\n  });\n  if (!nonJsdocNodes.length) {\n    return;\n  }\n\n  nonJsdocNodes.forEach((node) => {\n    const report = makeReport(context, node);\n\n    const fix = (fixer) => {\n      const text = sourceCode.getText(node);\n\n      return fixer.replaceText(node, text.replace('/*', '/**'));\n    };\n    report('Expected JSDoc-like comment to begin with two asterisks.', fix);\n  });\n}, {\n  checkFile: true,\n  meta: {\n    fixable: 'code',\n    type: 'layout',\n  },\n});\n"],"file":"noBadBlocks.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js b/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js
deleted file mode 100644
index 61d591c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  context,
-  utils
-}) => {
-  const _ref = context.options[0] || {},
-        noOptionalParamNames = _ref.noOptionalParamNames;
-
-  const paramTags = utils.getPresentTags(['param', 'arg', 'argument']);
-  paramTags.forEach(tag => {
-    if (noOptionalParamNames && tag.optional) {
-      utils.reportJSDoc(`Optional param names are not permitted on @${tag.tag}.`, tag, () => {
-        tag.default = '';
-        tag.optional = false;
-      });
-    } else if (tag.default) {
-      utils.reportJSDoc(`Defaults are not permitted on @${tag.tag}.`, tag, () => {
-        tag.default = '';
-      });
-    }
-  });
-  const defaultTags = utils.getPresentTags(['default', 'defaultvalue']);
-  defaultTags.forEach(tag => {
-    if (tag.description) {
-      utils.reportJSDoc(`Default values are not permitted on @${tag.tag}.`, tag, () => {
-        tag.description = '';
-      });
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        noOptionalParamNames: {
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=noDefaults.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js.map
deleted file mode 100644
index 26760d3..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noDefaults.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/noDefaults.js"],"names":["context","utils","options","noOptionalParamNames","paramTags","getPresentTags","forEach","tag","optional","reportJSDoc","default","defaultTags","description","contextDefaults","meta","fixable","schema","additionalProperties","properties","contexts","items","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,OAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AAAA,eAC2BD,OAAO,CAACE,OAAR,CAAgB,CAAhB,KAAsB,EADjD;AAAA,QACGC,oBADH,QACGA,oBADH;;AAEJ,QAAMC,SAAS,GAAGH,KAAK,CAACI,cAAN,CAAqB,CAAC,OAAD,EAAU,KAAV,EAAiB,UAAjB,CAArB,CAAlB;AACAD,EAAAA,SAAS,CAACE,OAAV,CAAmBC,GAAD,IAAS;AACzB,QAAIJ,oBAAoB,IAAII,GAAG,CAACC,QAAhC,EAA0C;AACxCP,MAAAA,KAAK,CAACQ,WAAN,CAAmB,8CAA6CF,GAAG,CAACA,GAAI,GAAxE,EAA4EA,GAA5E,EAAiF,MAAM;AACrFA,QAAAA,GAAG,CAACG,OAAJ,GAAc,EAAd;AACAH,QAAAA,GAAG,CAACC,QAAJ,GAAe,KAAf;AACD,OAHD;AAID,KALD,MAKO,IAAID,GAAG,CAACG,OAAR,EAAiB;AACtBT,MAAAA,KAAK,CAACQ,WAAN,CAAmB,kCAAiCF,GAAG,CAACA,GAAI,GAA5D,EAAgEA,GAAhE,EAAqE,MAAM;AACzEA,QAAAA,GAAG,CAACG,OAAJ,GAAc,EAAd;AACD,OAFD;AAGD;AACF,GAXD;AAYA,QAAMC,WAAW,GAAGV,KAAK,CAACI,cAAN,CAAqB,CAAC,SAAD,EAAY,cAAZ,CAArB,CAApB;AACAM,EAAAA,WAAW,CAACL,OAAZ,CAAqBC,GAAD,IAAS;AAC3B,QAAIA,GAAG,CAACK,WAAR,EAAqB;AACnBX,MAAAA,KAAK,CAACQ,WAAN,CAAmB,wCAAuCF,GAAG,CAACA,GAAI,GAAlE,EAAsEA,GAAtE,EAA2E,MAAM;AAC/EA,QAAAA,GAAG,CAACK,WAAJ,GAAkB,EAAlB;AACD,OAFD;AAGD;AACF,GAND;AAOD,CA1Bc,EA0BZ;AACDC,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLC,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE,SADA;AAOVlB,QAAAA,oBAAoB,EAAE;AACpBkB,UAAAA,IAAI,EAAE;AADc;AAPZ,OAFd;AAaEA,MAAAA,IAAI,EAAE;AAbR,KADM,CAFJ;AAmBJA,IAAAA,IAAI,EAAE;AAnBF;AAFL,CA1BY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  context,\n  utils,\n}) => {\n  const {noOptionalParamNames} = context.options[0] || {};\n  const paramTags = utils.getPresentTags(['param', 'arg', 'argument']);\n  paramTags.forEach((tag) => {\n    if (noOptionalParamNames && tag.optional) {\n      utils.reportJSDoc(`Optional param names are not permitted on @${tag.tag}.`, tag, () => {\n        tag.default = '';\n        tag.optional = false;\n      });\n    } else if (tag.default) {\n      utils.reportJSDoc(`Defaults are not permitted on @${tag.tag}.`, tag, () => {\n        tag.default = '';\n      });\n    }\n  });\n  const defaultTags = utils.getPresentTags(['default', 'defaultvalue']);\n  defaultTags.forEach((tag) => {\n    if (tag.description) {\n      utils.reportJSDoc(`Default values are not permitted on @${tag.tag}.`, tag, () => {\n        tag.description = '';\n      });\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          noOptionalParamNames: {\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"noDefaults.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js b/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js
deleted file mode 100644
index 2fd4f00..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  utils
-}) => {
-  if (!utils.isIteratingFunction() && !utils.isVirtualFunction()) {
-    return;
-  }
-
-  const tags = utils.getPresentTags(['param', 'arg', 'argument', 'returns', 'return']);
-  tags.forEach(tag => {
-    if (tag.type) {
-      utils.reportJSDoc(`Types are not permitted on @${tag.tag}.`, tag, () => {
-        tag.type = '';
-      });
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=noTypes.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js.map
deleted file mode 100644
index ba3976a..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noTypes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/noTypes.js"],"names":["utils","isIteratingFunction","isVirtualFunction","tags","getPresentTags","forEach","tag","type","reportJSDoc","contextDefaults","meta","fixable","schema","additionalProperties","properties","contexts","items"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA;AAD2B,CAAD,KAEtB;AACJ,MAAI,CAACA,KAAK,CAACC,mBAAN,EAAD,IAAgC,CAACD,KAAK,CAACE,iBAAN,EAArC,EAAgE;AAC9D;AACD;;AAED,QAAMC,IAAI,GAAGH,KAAK,CAACI,cAAN,CAAqB,CAAC,OAAD,EAAU,KAAV,EAAiB,UAAjB,EAA6B,SAA7B,EAAwC,QAAxC,CAArB,CAAb;AAEAD,EAAAA,IAAI,CAACE,OAAL,CAAcC,GAAD,IAAS;AACpB,QAAIA,GAAG,CAACC,IAAR,EAAc;AACZP,MAAAA,KAAK,CAACQ,WAAN,CAAmB,+BAA8BF,GAAG,CAACA,GAAI,GAAzD,EAA6DA,GAA7D,EAAkE,MAAM;AACtEA,QAAAA,GAAG,CAACC,IAAJ,GAAW,EAAX;AACD,OAFD;AAGD;AACF,GAND;AAOD,CAhBc,EAgBZ;AACDE,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLT,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CAFJ;AAgBJA,IAAAA,IAAI,EAAE;AAhBF;AAFL,CAhBY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  utils,\n}) => {\n  if (!utils.isIteratingFunction() && !utils.isVirtualFunction()) {\n    return;\n  }\n\n  const tags = utils.getPresentTags(['param', 'arg', 'argument', 'returns', 'return']);\n\n  tags.forEach((tag) => {\n    if (tag.type) {\n      utils.reportJSDoc(`Types are not permitted on @${tag.tag}.`, tag, () => {\n        tag.type = '';\n      });\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"noTypes.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js b/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js
deleted file mode 100644
index 3736b48..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js
+++ /dev/null
@@ -1,154 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _jsdoctypeparser = require("jsdoctypeparser");
-
-var _iterateJsdoc = _interopRequireWildcard(require("../iterateJsdoc"));
-
-var _jsdocUtils = _interopRequireDefault(require("../jsdocUtils"));
-
-function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const extraTypes = ['null', 'undefined', 'void', 'string', 'boolean', 'object', 'function', 'symbol', 'number', 'bigint', 'NaN', 'Infinity', 'any', '*', 'Array', 'Object', 'RegExp', 'Date', 'Function'];
-
-const stripPseudoTypes = str => {
-  return str && str.replace(/(?:\.|<>|\.<>|\[\])$/u, '');
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  context,
-  report,
-  settings,
-  sourceCode: {
-    scopeManager
-  },
-  utils
-}) => {
-  const globalScope = scopeManager.globalScope;
-
-  const _ref = context.options[0] || {},
-        _ref$definedTypes = _ref.definedTypes,
-        definedTypes = _ref$definedTypes === void 0 ? [] : _ref$definedTypes;
-
-  let definedPreferredTypes = [];
-  const preferredTypes = settings.preferredTypes;
-
-  if (Object.keys(preferredTypes).length) {
-    // Replace `_.values` with `Object.values` when we may start requiring Node 7+
-    definedPreferredTypes = _lodash.default.values(preferredTypes).map(preferredType => {
-      if (typeof preferredType === 'string') {
-        // May become an empty string but will be filtered out below
-        return stripPseudoTypes(preferredType);
-      }
-
-      if (!preferredType) {
-        return undefined;
-      }
-
-      if (typeof preferredType !== 'object') {
-        utils.reportSettings('Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.');
-      }
-
-      return stripPseudoTypes(preferredType.replacement);
-    }).filter(preferredType => {
-      return preferredType;
-    });
-  }
-
-  const typedefDeclarations = (0, _lodash.default)(context.getAllComments()).filter(comment => {
-    return comment.value.startsWith('*');
-  }).map(_iterateJsdoc.parseComment).flatMap(doc => {
-    return (doc.tags || []).filter(({
-      tag
-    }) => {
-      return utils.isNamepathDefiningTag(tag);
-    });
-  }).map(tag => {
-    return tag.name;
-  }).value();
-  let templateTags = utils.getPresentTags('template');
-  const classJsdoc = utils.getClassJsdoc();
-
-  if (classJsdoc && classJsdoc.tags) {
-    templateTags = templateTags.concat(classJsdoc.tags.filter(tag => {
-      return tag.tag === 'template';
-    }));
-  }
-
-  const closureGenericTypes = _lodash.default.flatMap(templateTags, tag => {
-    return _jsdocUtils.default.parseClosureTemplateTag(tag);
-  });
-
-  const allDefinedTypes = globalScope.variables.map(variable => {
-    return variable.name;
-  }) // If the file is a module, concat the variables from the module scope.
-  .concat( // This covers `commonjs` as well as `node`
-  scopeManager.__options.nodejsScope || scopeManager.isModule() ? globalScope.childScopes.reduce((arr, {
-    variables
-  }) => {
-    // Flatten
-    arr.push(...variables);
-    return arr;
-  }, []).map(({
-    name
-  }) => {
-    return name;
-  }) : []).concat(extraTypes).concat(typedefDeclarations).concat(definedTypes).concat(definedPreferredTypes).concat(settings.mode === 'jsdoc' ? [] : closureGenericTypes);
-  const jsdocTagsWithPossibleType = utils.filterTags(tag => {
-    return utils.tagMightHaveTypePosition(tag.tag);
-  });
-  jsdocTagsWithPossibleType.forEach(tag => {
-    let parsedType;
-
-    try {
-      parsedType = (0, _jsdoctypeparser.parse)(tag.type);
-    } catch (error) {
-      // On syntax error, will be handled by valid-types.
-      return;
-    }
-
-    (0, _jsdoctypeparser.traverse)(parsedType, ({
-      type,
-      name
-    }) => {
-      if (type === 'NAME') {
-        if (!allDefinedTypes.includes(name)) {
-          report(`The type '${name}' is undefined.`, null, tag);
-        } else if (!_lodash.default.includes(extraTypes, name)) {
-          context.markVariableAsUsed(name);
-        }
-      }
-    });
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        definedTypes: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=noUndefinedTypes.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js.map
deleted file mode 100644
index ccce045..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/noUndefinedTypes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/noUndefinedTypes.js"],"names":["extraTypes","stripPseudoTypes","str","replace","context","report","settings","sourceCode","scopeManager","utils","globalScope","options","definedTypes","definedPreferredTypes","preferredTypes","Object","keys","length","_","values","map","preferredType","undefined","reportSettings","replacement","filter","typedefDeclarations","getAllComments","comment","value","startsWith","parseComment","flatMap","doc","tags","tag","isNamepathDefiningTag","name","templateTags","getPresentTags","classJsdoc","getClassJsdoc","concat","closureGenericTypes","jsdocUtils","parseClosureTemplateTag","allDefinedTypes","variables","variable","__options","nodejsScope","isModule","childScopes","reduce","arr","push","mode","jsdocTagsWithPossibleType","filterTags","tagMightHaveTypePosition","forEach","parsedType","type","error","includes","markVariableAsUsed","iterateAllJsdocs","meta","schema","additionalProperties","properties","items"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,UAAU,GAAG,CACjB,MADiB,EACT,WADS,EACI,MADJ,EACY,QADZ,EACsB,SADtB,EACiC,QADjC,EAEjB,UAFiB,EAEL,QAFK,EAGjB,QAHiB,EAGP,QAHO,EAGG,KAHH,EAGU,UAHV,EAIjB,KAJiB,EAIV,GAJU,EAKjB,OALiB,EAKR,QALQ,EAKE,QALF,EAKY,MALZ,EAKoB,UALpB,CAAnB;;AAQA,MAAMC,gBAAgB,GAAIC,GAAD,IAAS;AAChC,SAAOA,GAAG,IAAIA,GAAG,CAACC,OAAJ,CAAY,uBAAZ,EAAqC,EAArC,CAAd;AACD,CAFD;;eAIe,2BAAa,CAAC;AAC3BC,EAAAA,OAD2B;AAE3BC,EAAAA,MAF2B;AAG3BC,EAAAA,QAH2B;AAI3BC,EAAAA,UAAU,EAAE;AAACC,IAAAA;AAAD,GAJe;AAK3BC,EAAAA;AAL2B,CAAD,KAMtB;AAAA,QACGC,WADH,GACkBF,YADlB,CACGE,WADH;;AAAA,eAGwBN,OAAO,CAACO,OAAR,CAAgB,CAAhB,KAAsB,EAH9C;AAAA,iCAGGC,YAHH;AAAA,QAGGA,YAHH,kCAGkB,EAHlB;;AAKJ,MAAIC,qBAAqB,GAAG,EAA5B;AALI,QAMGC,cANH,GAMqBR,QANrB,CAMGQ,cANH;;AAOJ,MAAIC,MAAM,CAACC,IAAP,CAAYF,cAAZ,EAA4BG,MAAhC,EAAwC;AACtC;AACAJ,IAAAA,qBAAqB,GAAGK,gBAAEC,MAAF,CAASL,cAAT,EAAyBM,GAAzB,CAA8BC,aAAD,IAAmB;AACtE,UAAI,OAAOA,aAAP,KAAyB,QAA7B,EAAuC;AACrC;AACA,eAAOpB,gBAAgB,CAACoB,aAAD,CAAvB;AACD;;AACD,UAAI,CAACA,aAAL,EAAoB;AAClB,eAAOC,SAAP;AACD;;AACD,UAAI,OAAOD,aAAP,KAAyB,QAA7B,EAAuC;AACrCZ,QAAAA,KAAK,CAACc,cAAN,CACE,wFADF;AAGD;;AAED,aAAOtB,gBAAgB,CAACoB,aAAa,CAACG,WAAf,CAAvB;AACD,KAfuB,EAerBC,MAfqB,CAebJ,aAAD,IAAmB;AAC3B,aAAOA,aAAP;AACD,KAjBuB,CAAxB;AAkBD;;AAED,QAAMK,mBAAmB,GAAG,qBAAEtB,OAAO,CAACuB,cAAR,EAAF,EACzBF,MADyB,CACjBG,OAAD,IAAa;AACnB,WAAOA,OAAO,CAACC,KAAR,CAAcC,UAAd,CAAyB,GAAzB,CAAP;AACD,GAHyB,EAIzBV,GAJyB,CAIrBW,0BAJqB,EAKzBC,OALyB,CAKhBC,GAAD,IAAS;AAChB,WAAO,CAACA,GAAG,CAACC,IAAJ,IAAY,EAAb,EAAiBT,MAAjB,CAAwB,CAAC;AAACU,MAAAA;AAAD,KAAD,KAAW;AACxC,aAAO1B,KAAK,CAAC2B,qBAAN,CAA4BD,GAA5B,CAAP;AACD,KAFM,CAAP;AAGD,GATyB,EAUzBf,GAVyB,CAUpBe,GAAD,IAAS;AACZ,WAAOA,GAAG,CAACE,IAAX;AACD,GAZyB,EAazBR,KAbyB,EAA5B;AAeA,MAAIS,YAAY,GAAG7B,KAAK,CAAC8B,cAAN,CAAqB,UAArB,CAAnB;AACA,QAAMC,UAAU,GAAG/B,KAAK,CAACgC,aAAN,EAAnB;;AACA,MAAID,UAAU,IAAIA,UAAU,CAACN,IAA7B,EAAmC;AACjCI,IAAAA,YAAY,GAAGA,YAAY,CAACI,MAAb,CACbF,UAAU,CAACN,IAAX,CACGT,MADH,CACWU,GAAD,IAAS;AACf,aAAOA,GAAG,CAACA,GAAJ,KAAY,UAAnB;AACD,KAHH,CADa,CAAf;AAMD;;AAED,QAAMQ,mBAAmB,GAAGzB,gBAAEc,OAAF,CAAUM,YAAV,EAAyBH,GAAD,IAAS;AAC3D,WAAOS,oBAAWC,uBAAX,CAAmCV,GAAnC,CAAP;AACD,GAF2B,CAA5B;;AAIA,QAAMW,eAAe,GAAGpC,WAAW,CAACqC,SAAZ,CAAsB3B,GAAtB,CAA2B4B,QAAD,IAAc;AAC9D,WAAOA,QAAQ,CAACX,IAAhB;AACD,GAFuB,EAItB;AAJsB,GAKrBK,MALqB,EAOpB;AACAlC,EAAAA,YAAY,CAACyC,SAAb,CAAuBC,WAAvB,IACA1C,YAAY,CAAC2C,QAAb,EADA,GAEEzC,WAAW,CAAC0C,WAAZ,CAAwBC,MAAxB,CAA+B,CAACC,GAAD,EAAM;AAACP,IAAAA;AAAD,GAAN,KAAsB;AACnD;AACAO,IAAAA,GAAG,CAACC,IAAJ,CAAS,GAAGR,SAAZ;AAEA,WAAOO,GAAP;AACD,GALD,EAKG,EALH,EAKOlC,GALP,CAKW,CAAC;AAACiB,IAAAA;AAAD,GAAD,KAAY;AACrB,WAAOA,IAAP;AACD,GAPD,CAFF,GASO,EAjBa,EAmBrBK,MAnBqB,CAmBd1C,UAnBc,EAoBrB0C,MApBqB,CAoBdhB,mBApBc,EAqBrBgB,MArBqB,CAqBd9B,YArBc,EAsBrB8B,MAtBqB,CAsBd7B,qBAtBc,EAuBrB6B,MAvBqB,CAuBdpC,QAAQ,CAACkD,IAAT,KAAkB,OAAlB,GAA4B,EAA5B,GAAiCb,mBAvBnB,CAAxB;AAyBA,QAAMc,yBAAyB,GAAGhD,KAAK,CAACiD,UAAN,CAAkBvB,GAAD,IAAS;AAC1D,WAAO1B,KAAK,CAACkD,wBAAN,CAA+BxB,GAAG,CAACA,GAAnC,CAAP;AACD,GAFiC,CAAlC;AAIAsB,EAAAA,yBAAyB,CAACG,OAA1B,CAAmCzB,GAAD,IAAS;AACzC,QAAI0B,UAAJ;;AAEA,QAAI;AACFA,MAAAA,UAAU,GAAG,4BAAU1B,GAAG,CAAC2B,IAAd,CAAb;AACD,KAFD,CAEE,OAAOC,KAAP,EAAc;AACd;AACA;AACD;;AAED,mCAASF,UAAT,EAAqB,CAAC;AAACC,MAAAA,IAAD;AAAOzB,MAAAA;AAAP,KAAD,KAAkB;AACrC,UAAIyB,IAAI,KAAK,MAAb,EAAqB;AACnB,YAAI,CAAChB,eAAe,CAACkB,QAAhB,CAAyB3B,IAAzB,CAAL,EAAqC;AACnChC,UAAAA,MAAM,CAAE,aAAYgC,IAAK,iBAAnB,EAAqC,IAArC,EAA2CF,GAA3C,CAAN;AACD,SAFD,MAEO,IAAI,CAACjB,gBAAE8C,QAAF,CAAWhE,UAAX,EAAuBqC,IAAvB,CAAL,EAAmC;AACxCjC,UAAAA,OAAO,CAAC6D,kBAAR,CAA2B5B,IAA3B;AACD;AACF;AACF,KARD;AASD,GAnBD;AAoBD,CAlHc,EAkHZ;AACD6B,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACV1D,QAAAA,YAAY,EAAE;AACZ2D,UAAAA,KAAK,EAAE;AACLT,YAAAA,IAAI,EAAE;AADD,WADK;AAIZA,UAAAA,IAAI,EAAE;AAJM;AADJ,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAlHY,C","sourcesContent":["import _ from 'lodash';\nimport {parse as parseType, traverse} from 'jsdoctypeparser';\nimport iterateJsdoc, {parseComment} from '../iterateJsdoc';\nimport jsdocUtils from '../jsdocUtils';\n\nconst extraTypes = [\n  'null', 'undefined', 'void', 'string', 'boolean', 'object',\n  'function', 'symbol',\n  'number', 'bigint', 'NaN', 'Infinity',\n  'any', '*',\n  'Array', 'Object', 'RegExp', 'Date', 'Function',\n];\n\nconst stripPseudoTypes = (str) => {\n  return str && str.replace(/(?:\\.|<>|\\.<>|\\[\\])$/u, '');\n};\n\nexport default iterateJsdoc(({\n  context,\n  report,\n  settings,\n  sourceCode: {scopeManager},\n  utils,\n}) => {\n  const {globalScope} = scopeManager;\n\n  const {definedTypes = []} = context.options[0] || {};\n\n  let definedPreferredTypes = [];\n  const {preferredTypes} = settings;\n  if (Object.keys(preferredTypes).length) {\n    // Replace `_.values` with `Object.values` when we may start requiring Node 7+\n    definedPreferredTypes = _.values(preferredTypes).map((preferredType) => {\n      if (typeof preferredType === 'string') {\n        // May become an empty string but will be filtered out below\n        return stripPseudoTypes(preferredType);\n      }\n      if (!preferredType) {\n        return undefined;\n      }\n      if (typeof preferredType !== 'object') {\n        utils.reportSettings(\n          'Invalid `settings.jsdoc.preferredTypes`. Values must be falsy, a string, or an object.',\n        );\n      }\n\n      return stripPseudoTypes(preferredType.replacement);\n    }).filter((preferredType) => {\n      return preferredType;\n    });\n  }\n\n  const typedefDeclarations = _(context.getAllComments())\n    .filter((comment) => {\n      return comment.value.startsWith('*');\n    })\n    .map(parseComment)\n    .flatMap((doc) => {\n      return (doc.tags || []).filter(({tag}) => {\n        return utils.isNamepathDefiningTag(tag);\n      });\n    })\n    .map((tag) => {\n      return tag.name;\n    })\n    .value();\n\n  let templateTags = utils.getPresentTags('template');\n  const classJsdoc = utils.getClassJsdoc();\n  if (classJsdoc && classJsdoc.tags) {\n    templateTags = templateTags.concat(\n      classJsdoc.tags\n        .filter((tag) => {\n          return tag.tag === 'template';\n        }),\n    );\n  }\n\n  const closureGenericTypes = _.flatMap(templateTags, (tag) => {\n    return jsdocUtils.parseClosureTemplateTag(tag);\n  });\n\n  const allDefinedTypes = globalScope.variables.map((variable) => {\n    return variable.name;\n  })\n\n    // If the file is a module, concat the variables from the module scope.\n    .concat(\n\n      // This covers `commonjs` as well as `node`\n      scopeManager.__options.nodejsScope ||\n      scopeManager.isModule() ?\n        globalScope.childScopes.reduce((arr, {variables}) => {\n          // Flatten\n          arr.push(...variables);\n\n          return arr;\n        }, []).map(({name}) => {\n          return name;\n        }) : [],\n    )\n    .concat(extraTypes)\n    .concat(typedefDeclarations)\n    .concat(definedTypes)\n    .concat(definedPreferredTypes)\n    .concat(settings.mode === 'jsdoc' ? [] : closureGenericTypes);\n\n  const jsdocTagsWithPossibleType = utils.filterTags((tag) => {\n    return utils.tagMightHaveTypePosition(tag.tag);\n  });\n\n  jsdocTagsWithPossibleType.forEach((tag) => {\n    let parsedType;\n\n    try {\n      parsedType = parseType(tag.type);\n    } catch (error) {\n      // On syntax error, will be handled by valid-types.\n      return;\n    }\n\n    traverse(parsedType, ({type, name}) => {\n      if (type === 'NAME') {\n        if (!allDefinedTypes.includes(name)) {\n          report(`The type '${name}' is undefined.`, null, tag);\n        } else if (!_.includes(extraTypes, name)) {\n          context.markVariableAsUsed(name);\n        }\n      }\n    });\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          definedTypes: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"noUndefinedTypes.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js
deleted file mode 100644
index 127d3cd..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js
+++ /dev/null
@@ -1,109 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report,
-  utils,
-  context
-}) => {
-  if (utils.avoidDocs()) {
-    return;
-  }
-
-  const _ref = context.options[0] || {},
-        _ref$descriptionStyle = _ref.descriptionStyle,
-        descriptionStyle = _ref$descriptionStyle === void 0 ? 'body' : _ref$descriptionStyle;
-
-  let targetTagName = utils.getPreferredTagName({
-    // We skip reporting except when `@description` is essential to the rule,
-    //  so user can block the tag and still meaningfully use this rule
-    //  even if the tag is present (and `check-tag-names` is the one to
-    //  normally report the fact that it is blocked but present)
-    skipReportingBlockedTag: descriptionStyle !== 'tag',
-    tagName: 'description'
-  });
-
-  if (!targetTagName) {
-    return;
-  }
-
-  const isBlocked = typeof targetTagName === 'object' && targetTagName.blocked;
-
-  if (isBlocked) {
-    targetTagName = targetTagName.tagName;
-  }
-
-  const checkDescription = description => {
-    const exampleContent = _lodash.default.compact(description.trim().split('\n'));
-
-    return exampleContent.length;
-  };
-
-  if (descriptionStyle !== 'tag') {
-    if (checkDescription(jsdoc.description || '')) {
-      return;
-    }
-
-    if (descriptionStyle === 'body') {
-      report('Missing JSDoc block description.');
-      return;
-    }
-  }
-
-  const functionExamples = isBlocked ? [] : _lodash.default.filter(jsdoc.tags, {
-    tag: targetTagName
-  });
-
-  if (!functionExamples.length) {
-    report(descriptionStyle === 'any' ? `Missing JSDoc block description or @${targetTagName} declaration.` : `Missing JSDoc @${targetTagName} declaration.`);
-    return;
-  }
-
-  functionExamples.forEach(example => {
-    if (!checkDescription(`${example.name} ${example.description}`)) {
-      report(`Missing JSDoc @${targetTagName} description.`);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        descriptionStyle: {
-          enum: ['body', 'tag', 'any'],
-          type: 'string'
-        },
-        exemptedBy: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js.map
deleted file mode 100644
index cdd3570..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireDescription.js"],"names":["jsdoc","report","utils","context","avoidDocs","options","descriptionStyle","targetTagName","getPreferredTagName","skipReportingBlockedTag","tagName","isBlocked","blocked","checkDescription","description","exampleContent","_","compact","trim","split","length","functionExamples","filter","tags","tag","forEach","example","name","contextDefaults","meta","schema","additionalProperties","properties","contexts","items","type","enum","exemptedBy"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n  utils,\n  context,\n}) => {\n  if (utils.avoidDocs()) {\n    return;\n  }\n  const {descriptionStyle = 'body'} = context.options[0] || {};\n\n  let targetTagName = utils.getPreferredTagName({\n    // We skip reporting except when `@description` is essential to the rule,\n    //  so user can block the tag and still meaningfully use this rule\n    //  even if the tag is present (and `check-tag-names` is the one to\n    //  normally report the fact that it is blocked but present)\n    skipReportingBlockedTag: descriptionStyle !== 'tag',\n    tagName: 'description',\n  });\n  if (!targetTagName) {\n    return;\n  }\n  const isBlocked = typeof targetTagName === 'object' && targetTagName.blocked;\n  if (isBlocked) {\n    targetTagName = targetTagName.tagName;\n  }\n\n  const checkDescription = (description) => {\n    const exampleContent = _.compact(description.trim().split('\\n'));\n\n    return exampleContent.length;\n  };\n\n  if (descriptionStyle !== 'tag') {\n    if (checkDescription(jsdoc.description || '')) {\n      return;\n    }\n\n    if (descriptionStyle === 'body') {\n      report('Missing JSDoc block description.');\n\n      return;\n    }\n  }\n\n  const functionExamples = isBlocked ?\n    [] :\n    _.filter(jsdoc.tags, {\n      tag: targetTagName,\n    });\n\n  if (!functionExamples.length) {\n    report(\n      descriptionStyle === 'any' ?\n        `Missing JSDoc block description or @${targetTagName} declaration.` :\n        `Missing JSDoc @${targetTagName} declaration.`,\n    );\n\n    return;\n  }\n\n  functionExamples.forEach((example) => {\n    if (!checkDescription(`${example.name} ${example.description}`)) {\n      report(`Missing JSDoc @${targetTagName} description.`);\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          descriptionStyle: {\n            enum: ['body', 'tag', 'any'],\n            type: 'string',\n          },\n          exemptedBy: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js
deleted file mode 100644
index d505372..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js
+++ /dev/null
@@ -1,230 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _mainUmd = require("regextras/dist/main-umd");
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const otherDescriptiveTags = [// 'copyright' and 'see' might be good addition, but as the former may be
-//   sensitive text, and the latter may have just a link, they are not
-//   included by default
-'summary', 'file', 'fileoverview', 'overview', 'classdesc', 'todo', 'deprecated', 'throws', 'exception', 'yields', 'yield'];
-
-const extractParagraphs = text => {
-  // Todo [engine:node@>8.11.0]: Uncomment following line with neg. lookbehind instead
-  // return text.split(/(?<![;:])\n\n/u);
-  return [...text].reverse().join('').split(/\n\n(?![;:])/u).map(par => {
-    return [...par].reverse().join('');
-  }).reverse();
-};
-
-const extractSentences = (text, abbreviationsRegex) => {
-  const txt = text // Remove all {} tags.
-  .replace(/\{[\s\S]*?\}\s*/gu, '') // Remove custom abbreviations
-  .replace(abbreviationsRegex, '');
-  const sentenceEndGrouping = /([.?!])(?:\s+|$)/u;
-  const puncts = (0, _mainUmd.RegExtras)(sentenceEndGrouping).map(txt, punct => {
-    return punct;
-  });
-  return txt.split(/[.?!](?:\s+|$)/u) // Re-add the dot.
-  .map((sentence, idx) => {
-    return /^\s*$/u.test(sentence) ? sentence : `${sentence}${puncts[idx] || ''}`;
-  });
-};
-
-const isNewLinePrecededByAPeriod = text => {
-  let lastLineEndsSentence;
-  const lines = text.split('\n');
-  return !lines.some(line => {
-    if (lastLineEndsSentence === false && /^[A-Z][a-z]/u.test(line)) {
-      return true;
-    }
-
-    lastLineEndsSentence = /[.:?!|]$/u.test(line);
-    return false;
-  });
-};
-
-const isCapitalized = str => {
-  return str[0] === str[0].toUpperCase();
-};
-
-const isTable = str => {
-  return str.charAt() === '|';
-};
-
-const capitalize = str => {
-  return str.charAt(0).toUpperCase() + str.slice(1);
-};
-
-const validateDescription = (description, reportOrig, jsdocNode, abbreviationsRegex, sourceCode, tag) => {
-  if (!description) {
-    return false;
-  }
-
-  const paragraphs = extractParagraphs(description);
-  return paragraphs.some((paragraph, parIdx) => {
-    const sentences = extractSentences(paragraph, abbreviationsRegex);
-
-    const fix = fixer => {
-      let text = sourceCode.getText(jsdocNode);
-
-      if (!/[.:?!]$/u.test(paragraph)) {
-        const line = _lodash.default.last(paragraph.split('\n'));
-
-        text = text.replace(new RegExp(`${_lodash.default.escapeRegExp(line)}$`, 'mu'), `${line}.`);
-      }
-
-      var _iteratorNormalCompletion = true;
-      var _didIteratorError = false;
-      var _iteratorError = undefined;
-
-      try {
-        for (var _iterator = sentences.filter(sentence_ => {
-          return !/^\s*$/u.test(sentence_) && !isCapitalized(sentence_) && !isTable(sentence_);
-        })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-          const sentence = _step.value;
-          const beginning = sentence.split('\n')[0];
-
-          if (tag.tag) {
-            const reg = new RegExp(`(@${_lodash.default.escapeRegExp(tag.tag)}.*)${_lodash.default.escapeRegExp(beginning)}`, 'u');
-            text = text.replace(reg, ($0, $1) => {
-              return $1 + capitalize(beginning);
-            });
-          } else {
-            text = text.replace(beginning, capitalize(beginning));
-          }
-        }
-      } catch (err) {
-        _didIteratorError = true;
-        _iteratorError = err;
-      } finally {
-        try {
-          if (!_iteratorNormalCompletion && _iterator.return != null) {
-            _iterator.return();
-          }
-        } finally {
-          if (_didIteratorError) {
-            throw _iteratorError;
-          }
-        }
-      }
-
-      return fixer.replaceText(jsdocNode, text);
-    };
-
-    const report = (msg, fixer, tagObj) => {
-      tagObj.line += parIdx * 2; // Avoid errors if old column doesn't exist here
-
-      tagObj.column = 0;
-      reportOrig(msg, fixer, tagObj);
-    };
-
-    if (sentences.some(sentence => {
-      return !/^\s*$/u.test(sentence) && !isCapitalized(sentence) && !isTable(sentence);
-    })) {
-      report('Sentence should start with an uppercase character.', fix, tag);
-    }
-
-    const paragraphNoAbbreviations = paragraph.replace(abbreviationsRegex, '');
-
-    if (!/[.!?|]$/u.test(paragraphNoAbbreviations)) {
-      report('Sentence must end with a period.', fix, tag);
-      return true;
-    }
-
-    if (!isNewLinePrecededByAPeriod(paragraphNoAbbreviations)) {
-      report('A line of text is started with an uppercase character, but preceding line does not end the sentence.', null, tag);
-      return true;
-    }
-
-    return false;
-  });
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  sourceCode,
-  context,
-  jsdoc,
-  report,
-  jsdocNode,
-  utils
-}) => {
-  const options = context.options[0] || {};
-  const _options$abbreviation = options.abbreviations,
-        abbreviations = _options$abbreviation === void 0 ? [] : _options$abbreviation;
-  const abbreviationsRegex = abbreviations.length ? new RegExp('\\b' + abbreviations.map(abbreviation => {
-    return _lodash.default.escapeRegExp(abbreviation.replace(/\.$/g, '') + '.');
-  }).join('|') + '(?:$|\\s)', 'gu') : '';
-
-  if (!jsdoc.tags || validateDescription(jsdoc.description, report, jsdocNode, abbreviationsRegex, sourceCode, {
-    line: jsdoc.line + 1
-  })) {
-    return;
-  }
-
-  utils.forEachPreferredTag('description', matchingJsdocTag => {
-    const description = `${matchingJsdocTag.name} ${matchingJsdocTag.description}`.trim();
-    validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, matchingJsdocTag);
-  }, true);
-
-  const _utils$getTagsByType = utils.getTagsByType(jsdoc.tags),
-        tagsWithNames = _utils$getTagsByType.tagsWithNames;
-
-  const tagsWithoutNames = utils.filterTags(({
-    tag: tagName
-  }) => {
-    return otherDescriptiveTags.includes(tagName) || utils.hasOptionTag(tagName) && !tagsWithNames.some(({
-      tag
-    }) => {
-      // If user accidentally adds tags with names (or like `returns`
-      //  get parsed as having names), do not add to this list
-      return tag === tagName;
-    });
-  });
-  tagsWithNames.some(tag => {
-    const description = _lodash.default.trimStart(tag.description, '- ');
-
-    return validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, tag);
-  });
-  tagsWithoutNames.some(tag => {
-    const description = `${tag.name} ${tag.description}`.trim();
-    return validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, tag);
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        abbreviations: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        tags: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireDescriptionCompleteSentence.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js.map
deleted file mode 100644
index c95b99c..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireDescriptionCompleteSentence.js"],"names":["otherDescriptiveTags","extractParagraphs","text","reverse","join","split","map","par","extractSentences","abbreviationsRegex","txt","replace","sentenceEndGrouping","puncts","punct","sentence","idx","test","isNewLinePrecededByAPeriod","lastLineEndsSentence","lines","some","line","isCapitalized","str","toUpperCase","isTable","charAt","capitalize","slice","validateDescription","description","reportOrig","jsdocNode","sourceCode","tag","paragraphs","paragraph","parIdx","sentences","fix","fixer","getText","_","last","RegExp","escapeRegExp","filter","sentence_","beginning","reg","$0","$1","replaceText","report","msg","tagObj","column","paragraphNoAbbreviations","context","jsdoc","utils","options","abbreviations","length","abbreviation","tags","forEachPreferredTag","matchingJsdocTag","name","trim","getTagsByType","tagsWithNames","tagsWithoutNames","filterTags","tagName","includes","hasOptionTag","trimStart","iterateAllJsdocs","meta","fixable","schema","additionalProperties","properties","items","type"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport {RegExtras} from 'regextras/dist/main-umd';\nimport iterateJsdoc from '../iterateJsdoc';\n\nconst otherDescriptiveTags = [\n  // 'copyright' and 'see' might be good addition, but as the former may be\n  //   sensitive text, and the latter may have just a link, they are not\n  //   included by default\n  'summary', 'file', 'fileoverview', 'overview', 'classdesc', 'todo',\n  'deprecated', 'throws', 'exception', 'yields', 'yield',\n];\n\nconst extractParagraphs = (text) => {\n  // Todo [engine:node@>8.11.0]: Uncomment following line with neg. lookbehind instead\n  // return text.split(/(?<![;:])\\n\\n/u);\n  return [...text].reverse().join('').split(/\\n\\n(?![;:])/u).map((par) => {\n    return [...par].reverse().join('');\n  }).reverse();\n};\n\nconst extractSentences = (text, abbreviationsRegex) => {\n  const txt = text\n\n    // Remove all {} tags.\n    .replace(/\\{[\\s\\S]*?\\}\\s*/gu, '')\n\n    // Remove custom abbreviations\n    .replace(abbreviationsRegex, '');\n\n  const sentenceEndGrouping = /([.?!])(?:\\s+|$)/u;\n  const puncts = RegExtras(sentenceEndGrouping).map(txt, (punct) => {\n    return punct;\n  });\n\n  return txt\n\n    .split(/[.?!](?:\\s+|$)/u)\n\n    // Re-add the dot.\n    .map((sentence, idx) => {\n      return /^\\s*$/u.test(sentence) ? sentence : `${sentence}${puncts[idx] || ''}`;\n    });\n};\n\nconst isNewLinePrecededByAPeriod = (text) => {\n  let lastLineEndsSentence;\n\n  const lines = text.split('\\n');\n\n  return !lines.some((line) => {\n    if (lastLineEndsSentence === false && /^[A-Z][a-z]/u.test(line)) {\n      return true;\n    }\n\n    lastLineEndsSentence = /[.:?!|]$/u.test(line);\n\n    return false;\n  });\n};\n\nconst isCapitalized = (str) => {\n  return str[0] === str[0].toUpperCase();\n};\n\nconst isTable = (str) => {\n  return str.charAt() === '|';\n};\n\nconst capitalize = (str) => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nconst validateDescription = (description, reportOrig, jsdocNode, abbreviationsRegex, sourceCode, tag) => {\n  if (!description) {\n    return false;\n  }\n\n  const paragraphs = extractParagraphs(description);\n\n  return paragraphs.some((paragraph, parIdx) => {\n    const sentences = extractSentences(paragraph, abbreviationsRegex);\n\n    const fix = (fixer) => {\n      let text = sourceCode.getText(jsdocNode);\n\n      if (!/[.:?!]$/u.test(paragraph)) {\n        const line = _.last(paragraph.split('\\n'));\n\n        text = text.replace(new RegExp(`${_.escapeRegExp(line)}$`, 'mu'), `${line}.`);\n      }\n\n      for (const sentence of sentences.filter((sentence_) => {\n        return !(/^\\s*$/u).test(sentence_) && !isCapitalized(sentence_) &&\n          !isTable(sentence_);\n      })) {\n        const beginning = sentence.split('\\n')[0];\n\n        if (tag.tag) {\n          const reg = new RegExp(`(@${_.escapeRegExp(tag.tag)}.*)${_.escapeRegExp(beginning)}`, 'u');\n\n          text = text.replace(reg, ($0, $1) => {\n            return $1 + capitalize(beginning);\n          });\n        } else {\n          text = text.replace(beginning, capitalize(beginning));\n        }\n      }\n\n      return fixer.replaceText(jsdocNode, text);\n    };\n\n    const report = (msg, fixer, tagObj) => {\n      tagObj.line += parIdx * 2;\n\n      // Avoid errors if old column doesn't exist here\n      tagObj.column = 0;\n      reportOrig(msg, fixer, tagObj);\n    };\n\n    if (sentences.some((sentence) => {\n      return !(/^\\s*$/u).test(sentence) && !isCapitalized(sentence) && !isTable(sentence);\n    })) {\n      report('Sentence should start with an uppercase character.', fix, tag);\n    }\n\n    const paragraphNoAbbreviations = paragraph.replace(abbreviationsRegex, '');\n\n    if (!/[.!?|]$/u.test(paragraphNoAbbreviations)) {\n      report('Sentence must end with a period.', fix, tag);\n\n      return true;\n    }\n\n    if (!isNewLinePrecededByAPeriod(paragraphNoAbbreviations)) {\n      report('A line of text is started with an uppercase character, but preceding line does not end the sentence.', null, tag);\n\n      return true;\n    }\n\n    return false;\n  });\n};\n\nexport default iterateJsdoc(({\n  sourceCode,\n  context,\n  jsdoc,\n  report,\n  jsdocNode,\n  utils,\n}) => {\n  const options = context.options[0] || {};\n  const {\n    abbreviations = [],\n  } = options;\n\n  const abbreviationsRegex = abbreviations.length ?\n    new RegExp('\\\\b' + abbreviations.map((abbreviation) => {\n      return _.escapeRegExp(abbreviation.replace(/\\.$/g, '') + '.');\n    }).join('|') + '(?:$|\\\\s)', 'gu') :\n    '';\n\n  if (!jsdoc.tags ||\n    validateDescription(jsdoc.description, report, jsdocNode, abbreviationsRegex, sourceCode, {\n      line: jsdoc.line + 1,\n    })\n  ) {\n    return;\n  }\n\n  utils.forEachPreferredTag('description', (matchingJsdocTag) => {\n    const description = `${matchingJsdocTag.name} ${matchingJsdocTag.description}`.trim();\n    validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, matchingJsdocTag);\n  }, true);\n\n  const {tagsWithNames} = utils.getTagsByType(jsdoc.tags);\n  const tagsWithoutNames = utils.filterTags(({tag: tagName}) => {\n    return otherDescriptiveTags.includes(tagName) ||\n      utils.hasOptionTag(tagName) && !tagsWithNames.some(({tag}) => {\n        // If user accidentally adds tags with names (or like `returns`\n        //  get parsed as having names), do not add to this list\n        return tag === tagName;\n      });\n  });\n\n  tagsWithNames.some((tag) => {\n    const description = _.trimStart(tag.description, '- ');\n\n    return validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, tag);\n  });\n\n  tagsWithoutNames.some((tag) => {\n    const description = `${tag.name} ${tag.description}`.trim();\n\n    return validateDescription(description, report, jsdocNode, abbreviationsRegex, sourceCode, tag);\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          abbreviations: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          tags: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireDescriptionCompleteSentence.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js
deleted file mode 100644
index 530f108..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-var _warnRemovedSettings = _interopRequireDefault(require("../warnRemovedSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report,
-  utils,
-  context
-}) => {
-  (0, _warnRemovedSettings.default)(context, 'require-example');
-
-  if (utils.avoidDocs()) {
-    return;
-  }
-
-  const _ref = context.options[0] || {},
-        _ref$avoidExampleOnCo = _ref.avoidExampleOnConstructors,
-        avoidExampleOnConstructors = _ref$avoidExampleOnCo === void 0 ? false : _ref$avoidExampleOnCo;
-
-  const targetTagName = 'example';
-
-  const functionExamples = _lodash.default.filter(jsdoc.tags, {
-    tag: targetTagName
-  });
-
-  if (avoidExampleOnConstructors && (utils.hasATag(['class', 'constructor']) || utils.isConstructor())) {
-    return;
-  }
-
-  if (!functionExamples.length) {
-    utils.reportJSDoc(`Missing JSDoc @${targetTagName} declaration.`, null, () => {
-      if (!jsdoc.tags) {
-        jsdoc.tags = [];
-      }
-
-      const line = jsdoc.tags.length ? jsdoc.tags[jsdoc.tags.length - 1].line + 1 : 0;
-      jsdoc.tags.push({
-        description: '',
-        line,
-        name: '',
-        optional: false,
-        tag: targetTagName,
-        type: ''
-      });
-    });
-    return;
-  }
-
-  functionExamples.forEach(example => {
-    const exampleContent = _lodash.default.compact(`${example.name} ${example.description}`.trim().split('\n'));
-
-    if (!exampleContent.length) {
-      report(`Missing JSDoc @${targetTagName} description.`);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        avoidExampleOnConstructors: {
-          default: false,
-          type: 'boolean'
-        },
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        exemptedBy: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireExample.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js.map
deleted file mode 100644
index e4d0ebd..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireExample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireExample.js"],"names":["jsdoc","report","utils","context","avoidDocs","options","avoidExampleOnConstructors","targetTagName","functionExamples","_","filter","tags","tag","hasATag","isConstructor","length","reportJSDoc","line","push","description","name","optional","type","forEach","example","exampleContent","compact","trim","split","contextDefaults","meta","fixable","schema","additionalProperties","properties","default","contexts","items","exemptedBy"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport iterateJsdoc from '../iterateJsdoc';\nimport warnRemovedSettings from '../warnRemovedSettings';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n  utils,\n  context,\n}) => {\n  warnRemovedSettings(context, 'require-example');\n\n  if (utils.avoidDocs()) {\n    return;\n  }\n\n  const {avoidExampleOnConstructors = false} = context.options[0] || {};\n\n  const targetTagName = 'example';\n\n  const functionExamples = _.filter(jsdoc.tags, {\n    tag: targetTagName,\n  });\n\n  if (avoidExampleOnConstructors && (\n    utils.hasATag([\n      'class',\n      'constructor',\n    ]) ||\n    utils.isConstructor()\n  )) {\n    return;\n  }\n\n  if (!functionExamples.length) {\n    utils.reportJSDoc(`Missing JSDoc @${targetTagName} declaration.`, null, () => {\n      if (!jsdoc.tags) {\n        jsdoc.tags = [];\n      }\n      const line = jsdoc.tags.length ? jsdoc.tags[jsdoc.tags.length - 1].line + 1 : 0;\n      jsdoc.tags.push({\n        description: '',\n        line,\n        name: '',\n        optional: false,\n        tag: targetTagName,\n        type: '',\n      });\n    });\n\n    return;\n  }\n\n  functionExamples.forEach((example) => {\n    const exampleContent = _.compact(`${example.name} ${example.description}`.trim().split('\\n'));\n\n    if (!exampleContent.length) {\n      report(`Missing JSDoc @${targetTagName} description.`);\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          avoidExampleOnConstructors: {\n            default: false,\n            type: 'boolean',\n          },\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          exemptedBy: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireExample.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js
deleted file mode 100644
index f98e902..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js
+++ /dev/null
@@ -1,160 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-const defaultTags = {
-  file: {
-    initialCommentsOnly: true,
-    mustExist: true,
-    preventDuplicates: true
-  }
-};
-
-const setDefaults = state => {
-  // First iteration
-  if (!state.globalTags) {
-    state.globalTags = {};
-    state.hasDuplicates = {};
-    state.hasTag = {};
-    state.hasNonCommentBeforeTag = {};
-  }
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdocNode,
-  state,
-  utils,
-  context
-}) => {
-  const _ref = context.options[0] || {},
-        _ref$tags = _ref.tags,
-        tags = _ref$tags === void 0 ? defaultTags : _ref$tags;
-
-  setDefaults(state);
-
-  for (var _i = 0, _Object$keys = Object.keys(tags); _i < _Object$keys.length; _i++) {
-    const tagName = _Object$keys[_i];
-    const targetTagName = utils.getPreferredTagName({
-      tagName
-    });
-    const hasTag = targetTagName && utils.hasTag(targetTagName);
-    state.hasTag[tagName] = hasTag || state.hasTag[tagName];
-    const hasDuplicate = state.hasDuplicates[tagName];
-
-    if (hasDuplicate === false) {
-      // Was marked before, so if a tag now, is a dupe
-      state.hasDuplicates[tagName] = hasTag;
-    } else if (!hasDuplicate && hasTag) {
-      // No dupes set before, but has first tag, so change state
-      //   from `undefined` to `false` so can detect next time
-      state.hasDuplicates[tagName] = false;
-      state.hasNonCommentBeforeTag[tagName] = state.hasNonComment && state.hasNonComment < jsdocNode.start;
-    }
-  }
-}, {
-  exit({
-    context,
-    state,
-    utils
-  }) {
-    setDefaults(state);
-
-    const _ref2 = context.options[0] || {},
-          _ref2$tags = _ref2.tags,
-          tags = _ref2$tags === void 0 ? defaultTags : _ref2$tags;
-
-    for (var _i2 = 0, _Object$entries = Object.entries(tags); _i2 < _Object$entries.length; _i2++) {
-      const _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
-            tagName = _Object$entries$_i[0],
-            _Object$entries$_i$ = _Object$entries$_i[1],
-            _Object$entries$_i$$m = _Object$entries$_i$.mustExist,
-            mustExist = _Object$entries$_i$$m === void 0 ? false : _Object$entries$_i$$m,
-            _Object$entries$_i$$p = _Object$entries$_i$.preventDuplicates,
-            preventDuplicates = _Object$entries$_i$$p === void 0 ? false : _Object$entries$_i$$p,
-            _Object$entries$_i$$i = _Object$entries$_i$.initialCommentsOnly,
-            initialCommentsOnly = _Object$entries$_i$$i === void 0 ? false : _Object$entries$_i$$i;
-
-      const obj = utils.getPreferredTagNameObject({
-        tagName
-      });
-
-      if (obj && obj.blocked) {
-        utils.reportSettings(`\`settings.jsdoc.tagNamePreference\` cannot block @${obj.tagName} ` + 'for the `require-file-overview` rule');
-      } else {
-        const targetTagName = obj && obj.replacement || obj;
-
-        if (mustExist && !state.hasTag[tagName]) {
-          utils.reportSettings(`Missing @${targetTagName}`);
-        }
-
-        if (preventDuplicates && state.hasDuplicates[tagName]) {
-          utils.reportSettings(`Duplicate @${targetTagName}`);
-        }
-
-        if (initialCommentsOnly && state.hasNonCommentBeforeTag[tagName]) {
-          utils.reportSettings(`@${targetTagName} should be at the beginning of the file`);
-        }
-      }
-    }
-  },
-
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        tags: {
-          patternProperties: {
-            '.*': {
-              additionalProperties: false,
-              properties: {
-                initialCommentsOnly: {
-                  type: 'boolean'
-                },
-                mustExist: {
-                  type: 'boolean'
-                },
-                preventDuplicates: {
-                  type: 'boolean'
-                }
-              },
-              type: 'object'
-            }
-          },
-          type: 'object'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  },
-
-  nonComment({
-    state,
-    node
-  }) {
-    if (!state.hasNonComment) {
-      state.hasNonComment = node.start;
-    }
-  }
-
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireFileOverview.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js.map
deleted file mode 100644
index 4ad2057..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireFileOverview.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireFileOverview.js"],"names":["defaultTags","file","initialCommentsOnly","mustExist","preventDuplicates","setDefaults","state","globalTags","hasDuplicates","hasTag","hasNonCommentBeforeTag","jsdocNode","utils","context","options","tags","Object","keys","tagName","targetTagName","getPreferredTagName","hasDuplicate","hasNonComment","start","exit","entries","obj","getPreferredTagNameObject","blocked","reportSettings","replacement","iterateAllJsdocs","meta","schema","additionalProperties","properties","patternProperties","type","nonComment","node"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;AAEA,MAAMA,WAAW,GAAG;AAClBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,mBAAmB,EAAE,IADjB;AAEJC,IAAAA,SAAS,EAAE,IAFP;AAGJC,IAAAA,iBAAiB,EAAE;AAHf;AADY,CAApB;;AAQA,MAAMC,WAAW,GAAIC,KAAD,IAAW;AAC7B;AACA,MAAI,CAACA,KAAK,CAACC,UAAX,EAAuB;AACrBD,IAAAA,KAAK,CAACC,UAAN,GAAmB,EAAnB;AACAD,IAAAA,KAAK,CAACE,aAAN,GAAsB,EAAtB;AACAF,IAAAA,KAAK,CAACG,MAAN,GAAe,EAAf;AACAH,IAAAA,KAAK,CAACI,sBAAN,GAA+B,EAA/B;AACD;AACF,CARD;;eAUe,2BAAa,CAAC;AAC3BC,EAAAA,SAD2B;AAE3BL,EAAAA,KAF2B;AAG3BM,EAAAA,KAH2B;AAI3BC,EAAAA;AAJ2B,CAAD,KAKtB;AAAA,eAGAA,OAAO,CAACC,OAAR,CAAgB,CAAhB,KAAsB,EAHtB;AAAA,yBAEFC,IAFE;AAAA,QAEFA,IAFE,0BAEKf,WAFL;;AAKJK,EAAAA,WAAW,CAACC,KAAD,CAAX;;AAEA,kCAAsBU,MAAM,CAACC,IAAP,CAAYF,IAAZ,CAAtB,kCAAyC;AAApC,UAAMG,OAAO,mBAAb;AACH,UAAMC,aAAa,GAAGP,KAAK,CAACQ,mBAAN,CAA0B;AAACF,MAAAA;AAAD,KAA1B,CAAtB;AAEA,UAAMT,MAAM,GAAGU,aAAa,IAAIP,KAAK,CAACH,MAAN,CAAaU,aAAb,CAAhC;AAEAb,IAAAA,KAAK,CAACG,MAAN,CAAaS,OAAb,IAAwBT,MAAM,IAAIH,KAAK,CAACG,MAAN,CAAaS,OAAb,CAAlC;AAEA,UAAMG,YAAY,GAAGf,KAAK,CAACE,aAAN,CAAoBU,OAApB,CAArB;;AAEA,QAAIG,YAAY,KAAK,KAArB,EAA4B;AAC1B;AACAf,MAAAA,KAAK,CAACE,aAAN,CAAoBU,OAApB,IAA+BT,MAA/B;AACD,KAHD,MAGO,IAAI,CAACY,YAAD,IAAiBZ,MAArB,EAA6B;AAClC;AACA;AACAH,MAAAA,KAAK,CAACE,aAAN,CAAoBU,OAApB,IAA+B,KAA/B;AACAZ,MAAAA,KAAK,CAACI,sBAAN,CAA6BQ,OAA7B,IAAwCZ,KAAK,CAACgB,aAAN,IACtChB,KAAK,CAACgB,aAAN,GAAsBX,SAAS,CAACY,KADlC;AAED;AACF;AACF,CAhCc,EAgCZ;AACDC,EAAAA,IAAI,CAAE;AAACX,IAAAA,OAAD;AAAUP,IAAAA,KAAV;AAAiBM,IAAAA;AAAjB,GAAF,EAA2B;AAC7BP,IAAAA,WAAW,CAACC,KAAD,CAAX;;AAD6B,kBAIzBO,OAAO,CAACC,OAAR,CAAgB,CAAhB,KAAsB,EAJG;AAAA,6BAG3BC,IAH2B;AAAA,UAG3BA,IAH2B,2BAGpBf,WAHoB;;AAM7B,wCAIMgB,MAAM,CAACS,OAAP,CAAeV,IAAf,CAJN,uCAI4B;AAAA;AAAA,YAJhBG,OAIgB;AAAA;AAAA,wDAH1Bf,SAG0B;AAAA,YAH1BA,SAG0B,sCAHd,KAGc;AAAA,wDAF1BC,iBAE0B;AAAA,YAF1BA,iBAE0B,sCAFN,KAEM;AAAA,wDAD1BF,mBAC0B;AAAA,YAD1BA,mBAC0B,sCADJ,KACI;;AAC1B,YAAMwB,GAAG,GAAGd,KAAK,CAACe,yBAAN,CAAgC;AAACT,QAAAA;AAAD,OAAhC,CAAZ;;AACA,UAAIQ,GAAG,IAAIA,GAAG,CAACE,OAAf,EAAwB;AACtBhB,QAAAA,KAAK,CAACiB,cAAN,CACG,sDAAqDH,GAAG,CAACR,OAAQ,GAAlE,GACA,sCAFF;AAID,OALD,MAKO;AACL,cAAMC,aAAa,GAAGO,GAAG,IAAIA,GAAG,CAACI,WAAX,IAA0BJ,GAAhD;;AACA,YAAIvB,SAAS,IAAI,CAACG,KAAK,CAACG,MAAN,CAAaS,OAAb,CAAlB,EAAyC;AACvCN,UAAAA,KAAK,CAACiB,cAAN,CAAsB,YAAWV,aAAc,EAA/C;AACD;;AACD,YAAIf,iBAAiB,IAAIE,KAAK,CAACE,aAAN,CAAoBU,OAApB,CAAzB,EAAuD;AACrDN,UAAAA,KAAK,CAACiB,cAAN,CACG,cAAaV,aAAc,EAD9B;AAGD;;AACD,YAAIjB,mBAAmB,IACnBI,KAAK,CAACI,sBAAN,CAA6BQ,OAA7B,CADJ,EAEE;AACAN,UAAAA,KAAK,CAACiB,cAAN,CACG,IAAGV,aAAc,yCADpB;AAGD;AACF;AACF;AACF,GArCA;;AAsCDY,EAAAA,gBAAgB,EAAE,IAtCjB;AAuCDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVpB,QAAAA,IAAI,EAAE;AACJqB,UAAAA,iBAAiB,EAAE;AACjB,kBAAM;AACJF,cAAAA,oBAAoB,EAAE,KADlB;AAEJC,cAAAA,UAAU,EAAE;AACVjC,gBAAAA,mBAAmB,EAAE;AACnBmC,kBAAAA,IAAI,EAAE;AADa,iBADX;AAIVlC,gBAAAA,SAAS,EAAE;AACTkC,kBAAAA,IAAI,EAAE;AADG,iBAJD;AAOVjC,gBAAAA,iBAAiB,EAAE;AACjBiC,kBAAAA,IAAI,EAAE;AADW;AAPT,eAFR;AAaJA,cAAAA,IAAI,EAAE;AAbF;AADW,WADf;AAkBJA,UAAAA,IAAI,EAAE;AAlBF;AADI,OAFd;AAwBEA,MAAAA,IAAI,EAAE;AAxBR,KADM,CADJ;AA6BJA,IAAAA,IAAI,EAAE;AA7BF,GAvCL;;AAsEDC,EAAAA,UAAU,CAAE;AAAChC,IAAAA,KAAD;AAAQiC,IAAAA;AAAR,GAAF,EAAiB;AACzB,QAAI,CAACjC,KAAK,CAACgB,aAAX,EAA0B;AACxBhB,MAAAA,KAAK,CAACgB,aAAN,GAAsBiB,IAAI,CAAChB,KAA3B;AACD;AACF;;AA1EA,CAhCY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst defaultTags = {\n  file: {\n    initialCommentsOnly: true,\n    mustExist: true,\n    preventDuplicates: true,\n  },\n};\n\nconst setDefaults = (state) => {\n  // First iteration\n  if (!state.globalTags) {\n    state.globalTags = {};\n    state.hasDuplicates = {};\n    state.hasTag = {};\n    state.hasNonCommentBeforeTag = {};\n  }\n};\n\nexport default iterateJsdoc(({\n  jsdocNode,\n  state,\n  utils,\n  context,\n}) => {\n  const {\n    tags = defaultTags,\n  } = context.options[0] || {};\n\n  setDefaults(state);\n\n  for (const tagName of Object.keys(tags)) {\n    const targetTagName = utils.getPreferredTagName({tagName});\n\n    const hasTag = targetTagName && utils.hasTag(targetTagName);\n\n    state.hasTag[tagName] = hasTag || state.hasTag[tagName];\n\n    const hasDuplicate = state.hasDuplicates[tagName];\n\n    if (hasDuplicate === false) {\n      // Was marked before, so if a tag now, is a dupe\n      state.hasDuplicates[tagName] = hasTag;\n    } else if (!hasDuplicate && hasTag) {\n      // No dupes set before, but has first tag, so change state\n      //   from `undefined` to `false` so can detect next time\n      state.hasDuplicates[tagName] = false;\n      state.hasNonCommentBeforeTag[tagName] = state.hasNonComment &&\n        state.hasNonComment < jsdocNode.start;\n    }\n  }\n}, {\n  exit ({context, state, utils}) {\n    setDefaults(state);\n    const {\n      tags = defaultTags,\n    } = context.options[0] || {};\n\n    for (const [tagName, {\n      mustExist = false,\n      preventDuplicates = false,\n      initialCommentsOnly = false,\n    }] of Object.entries(tags)) {\n      const obj = utils.getPreferredTagNameObject({tagName});\n      if (obj && obj.blocked) {\n        utils.reportSettings(\n          `\\`settings.jsdoc.tagNamePreference\\` cannot block @${obj.tagName} ` +\n          'for the `require-file-overview` rule',\n        );\n      } else {\n        const targetTagName = obj && obj.replacement || obj;\n        if (mustExist && !state.hasTag[tagName]) {\n          utils.reportSettings(`Missing @${targetTagName}`);\n        }\n        if (preventDuplicates && state.hasDuplicates[tagName]) {\n          utils.reportSettings(\n            `Duplicate @${targetTagName}`,\n          );\n        }\n        if (initialCommentsOnly &&\n            state.hasNonCommentBeforeTag[tagName]\n        ) {\n          utils.reportSettings(\n            `@${targetTagName} should be at the beginning of the file`,\n          );\n        }\n      }\n    }\n  },\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          tags: {\n            patternProperties: {\n              '.*': {\n                additionalProperties: false,\n                properties: {\n                  initialCommentsOnly: {\n                    type: 'boolean',\n                  },\n                  mustExist: {\n                    type: 'boolean',\n                  },\n                  preventDuplicates: {\n                    type: 'boolean',\n                  },\n                },\n                type: 'object',\n              },\n            },\n            type: 'object',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n  nonComment ({state, node}) {\n    if (!state.hasNonComment) {\n      state.hasNonComment = node.start;\n    }\n  },\n});\n"],"file":"requireFileOverview.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js
deleted file mode 100644
index b130813..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  sourceCode,
-  utils,
-  report,
-  context,
-  jsdocNode
-}) => {
-  const _context$options = _slicedToArray(context.options, 2),
-        circumstance = _context$options[0],
-        _context$options$ = _context$options[1],
-        _context$options$2 = _context$options$ === void 0 ? {} : _context$options$,
-        checkProperties = _context$options$2.checkProperties;
-
-  const always = !circumstance || circumstance === 'always';
-
-  const checkHyphens = (jsdocTag, targetTagName) => {
-    if (!jsdocTag.description) {
-      return;
-    }
-
-    if (always) {
-      if (!jsdocTag.description.startsWith('-')) {
-        report(`There must be a hyphen before @${targetTagName} description.`, fixer => {
-          const lineIndex = jsdocTag.line;
-          const sourceLines = sourceCode.getText(jsdocNode).split('\n'); // Get start index of description, accounting for multi-line descriptions
-
-          const description = jsdocTag.description.split('\n')[0];
-          const descriptionIndex = sourceLines[lineIndex].lastIndexOf(description);
-          const replacementLine = sourceLines[lineIndex].slice(0, descriptionIndex) + '- ' + description;
-          sourceLines.splice(lineIndex, 1, replacementLine);
-          const replacement = sourceLines.join('\n');
-          return fixer.replaceText(jsdocNode, replacement);
-        }, jsdocTag);
-      }
-    } else if (jsdocTag.description.startsWith('-')) {
-      report(`There must be no hyphen before @${targetTagName} description.`, fixer => {
-        const _$exec = /-\s*/u.exec(jsdocTag.description),
-              _$exec2 = _slicedToArray(_$exec, 1),
-              unwantedPart = _$exec2[0];
-
-        const replacement = sourceCode.getText(jsdocNode).replace(jsdocTag.description, jsdocTag.description.slice(unwantedPart.length));
-        return fixer.replaceText(jsdocNode, replacement);
-      }, jsdocTag);
-    }
-  };
-
-  utils.forEachPreferredTag('param', checkHyphens);
-
-  if (checkProperties) {
-    utils.forEachPreferredTag('property', checkHyphens);
-  }
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    schema: [{
-      enum: ['always', 'never'],
-      type: 'string'
-    }, {
-      additionalProperties: false,
-      properties: {
-        checkProperties: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'layout'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireHyphenBeforeParamDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js.map
deleted file mode 100644
index d489759..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireHyphenBeforeParamDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireHyphenBeforeParamDescription.js"],"names":["sourceCode","utils","report","context","jsdocNode","options","circumstance","checkProperties","always","checkHyphens","jsdocTag","targetTagName","description","startsWith","fixer","lineIndex","line","sourceLines","getText","split","descriptionIndex","lastIndexOf","replacementLine","slice","splice","replacement","join","replaceText","exec","unwantedPart","replace","length","forEachPreferredTag","iterateAllJsdocs","meta","fixable","schema","enum","type","additionalProperties","properties","default"],"mappings":"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","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  sourceCode,\n  utils,\n  report,\n  context,\n  jsdocNode,\n}) => {\n  const [circumstance, {checkProperties} = {}] = context.options;\n  const always = !circumstance || circumstance === 'always';\n\n  const checkHyphens = (jsdocTag, targetTagName) => {\n    if (!jsdocTag.description) {\n      return;\n    }\n\n    if (always) {\n      if (!jsdocTag.description.startsWith('-')) {\n        report(`There must be a hyphen before @${targetTagName} description.`, (fixer) => {\n          const lineIndex = jsdocTag.line;\n          const sourceLines = sourceCode.getText(jsdocNode).split('\\n');\n\n          // Get start index of description, accounting for multi-line descriptions\n          const description = jsdocTag.description.split('\\n')[0];\n          const descriptionIndex = sourceLines[lineIndex].lastIndexOf(description);\n\n          const replacementLine = sourceLines[lineIndex]\n            .slice(0, descriptionIndex) + '- ' + description;\n          sourceLines.splice(lineIndex, 1, replacementLine);\n          const replacement = sourceLines.join('\\n');\n\n          return fixer.replaceText(jsdocNode, replacement);\n        }, jsdocTag);\n      }\n    } else if (jsdocTag.description.startsWith('-')) {\n      report(`There must be no hyphen before @${targetTagName} description.`, (fixer) => {\n        const [unwantedPart] = /-\\s*/u.exec(jsdocTag.description);\n\n        const replacement = sourceCode\n          .getText(jsdocNode)\n          .replace(jsdocTag.description, jsdocTag.description.slice(unwantedPart.length));\n\n        return fixer.replaceText(jsdocNode, replacement);\n      }, jsdocTag);\n    }\n  };\n\n  utils.forEachPreferredTag('param', checkHyphens);\n  if (checkProperties) {\n    utils.forEachPreferredTag('property', checkHyphens);\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        enum: ['always', 'never'],\n        type: 'string',\n      },\n      {\n        additionalProperties: false,\n        properties: {\n          checkProperties: {\n            default: false,\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'layout',\n  },\n});\n"],"file":"requireHyphenBeforeParamDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js
deleted file mode 100644
index 6b2ff26..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js
+++ /dev/null
@@ -1,271 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _lodash = _interopRequireDefault(require("lodash"));
-
-var _jsdocUtils = _interopRequireDefault(require("../jsdocUtils"));
-
-var _exportParser = _interopRequireDefault(require("../exportParser"));
-
-var _getJSDocComment = _interopRequireDefault(require("../eslint/getJSDocComment"));
-
-var _warnRemovedSettings = _interopRequireDefault(require("../warnRemovedSettings"));
-
-var _iterateJsdoc = require("../iterateJsdoc");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const OPTIONS_SCHEMA = {
-  additionalProperties: false,
-  properties: {
-    contexts: {
-      items: {
-        type: 'string'
-      },
-      type: 'array'
-    },
-    exemptEmptyFunctions: {
-      default: false,
-      type: 'boolean'
-    },
-    publicOnly: {
-      oneOf: [{
-        default: false,
-        type: 'boolean'
-      }, {
-        additionalProperties: false,
-        default: {},
-        properties: {
-          ancestorsOnly: {
-            type: 'boolean'
-          },
-          cjs: {
-            type: 'boolean'
-          },
-          esm: {
-            type: 'boolean'
-          },
-          window: {
-            type: 'boolean'
-          }
-        },
-        type: 'object'
-      }]
-    },
-    require: {
-      additionalProperties: false,
-      default: {},
-      properties: {
-        ArrowFunctionExpression: {
-          default: false,
-          type: 'boolean'
-        },
-        ClassDeclaration: {
-          default: false,
-          type: 'boolean'
-        },
-        ClassExpression: {
-          default: false,
-          type: 'boolean'
-        },
-        FunctionDeclaration: {
-          default: true,
-          type: 'boolean'
-        },
-        FunctionExpression: {
-          default: false,
-          type: 'boolean'
-        },
-        MethodDefinition: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }
-  },
-  type: 'object'
-};
-
-const getOption = (context, baseObject, option, key) => {
-  if (!_lodash.default.has(context, `options[0][${option}][${key}]`)) {
-    return baseObject.properties[key].default;
-  }
-
-  return context.options[0][option][key];
-};
-
-const getOptions = context => {
-  return {
-    exemptEmptyFunctions: context.options[0] ? context.options[0].exemptEmptyFunctions : false,
-    publicOnly: (baseObj => {
-      const publicOnly = _lodash.default.get(context, 'options[0].publicOnly');
-
-      if (!publicOnly) {
-        return false;
-      }
-
-      return Object.keys(baseObj.properties).reduce((obj, prop) => {
-        const opt = getOption(context, baseObj, 'publicOnly', prop);
-        obj[prop] = opt;
-        return obj;
-      }, {});
-    })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]),
-    require: (baseObj => {
-      return Object.keys(baseObj.properties).reduce((obj, prop) => {
-        const opt = getOption(context, baseObj, 'require', prop);
-        obj[prop] = opt;
-        return obj;
-      }, {});
-    })(OPTIONS_SCHEMA.properties.require)
-  };
-};
-
-var _default = {
-  create(context) {
-    (0, _warnRemovedSettings.default)(context, 'require-jsdoc');
-    const sourceCode = context.getSourceCode();
-    const settings = (0, _iterateJsdoc.getSettings)(context);
-
-    const _getOptions = getOptions(context),
-          requireOption = _getOptions.require,
-          publicOnly = _getOptions.publicOnly,
-          exemptEmptyFunctions = _getOptions.exemptEmptyFunctions;
-
-    const checkJsDoc = node => {
-      const jsDocNode = (0, _getJSDocComment.default)(sourceCode, node, settings);
-
-      if (jsDocNode) {
-        return;
-      }
-
-      if (exemptEmptyFunctions) {
-        const functionParameterNames = _jsdocUtils.default.getFunctionParameterNames(node);
-
-        if (!functionParameterNames.length && !_jsdocUtils.default.hasReturnValue(node, context)) {
-          return;
-        }
-      }
-
-      const fix = fixer => {
-        // Default to one line break if the `minLines`/`maxLines` settings allow
-        const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;
-
-        const indent = _jsdocUtils.default.getIndent(sourceCode);
-
-        const insertion = `/**\n${indent}*\n${indent}*/${'\n'.repeat(lines)}${indent.slice(0, -1)}`;
-        const baseNode = ['ExportDefaultDeclaration', 'ExportNamedDeclaration'].includes(node.parent && node.parent.type) ? node.parent : node;
-        return fixer.insertTextBefore(baseNode, insertion);
-      };
-
-      const report = () => {
-        const loc = {
-          end: node.loc.start + 1,
-          start: node.loc.start
-        };
-        context.report({
-          fix,
-          loc,
-          messageId: 'missingJsDoc',
-          node
-        });
-      };
-
-      if (publicOnly) {
-        const opt = {
-          ancestorsOnly: Boolean(_lodash.default.get(publicOnly, 'ancestorsOnly', false)),
-          esm: Boolean(_lodash.default.get(publicOnly, 'esm', true)),
-          initModuleExports: Boolean(_lodash.default.get(publicOnly, 'cjs', true)),
-          initWindow: Boolean(_lodash.default.get(publicOnly, 'window', false))
-        };
-
-        const parseResult = _exportParser.default.parse(sourceCode.ast, node, opt);
-
-        const exported = _exportParser.default.isExported(node, parseResult, opt);
-
-        if (exported) {
-          report();
-        }
-      } else {
-        report();
-      }
-    }; // eslint-disable-next-line fp/no-mutating-assign
-
-
-    return Object.assign(_jsdocUtils.default.getContextObject(_jsdocUtils.default.enforcedContexts(context, []), checkJsDoc), {
-      ArrowFunctionExpression(node) {
-        if (!requireOption.ArrowFunctionExpression) {
-          return;
-        }
-
-        if (!['VariableDeclarator', 'ExportDefaultDeclaration'].includes(node.parent.type)) {
-          return;
-        }
-
-        checkJsDoc(node);
-      },
-
-      ClassDeclaration(node) {
-        if (!requireOption.ClassDeclaration) {
-          return;
-        }
-
-        checkJsDoc(node);
-      },
-
-      ClassExpression(node) {
-        if (!requireOption.ClassExpression) {
-          return;
-        }
-
-        checkJsDoc(node);
-      },
-
-      FunctionDeclaration(node) {
-        if (!requireOption.FunctionDeclaration) {
-          return;
-        }
-
-        checkJsDoc(node);
-      },
-
-      FunctionExpression(node) {
-        if (requireOption.MethodDefinition && node.parent.type === 'MethodDefinition') {
-          checkJsDoc(node);
-          return;
-        }
-
-        if (!requireOption.FunctionExpression) {
-          return;
-        }
-
-        if (['VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration'].includes(node.parent.type) || node.parent.type === 'Property' && node === node.parent.value) {
-          checkJsDoc(node);
-        }
-      }
-
-    });
-  },
-
-  meta: {
-    doc: {
-      category: 'Stylistic Issues',
-      description: 'Require JSDoc comments',
-      recommended: 'true',
-      url: 'https://github.com/gajus/eslint-plugin-jsdoc'
-    },
-    fixable: 'code',
-    messages: {
-      missingJsDoc: 'Missing JSDoc comment.'
-    },
-    schema: [OPTIONS_SCHEMA],
-    type: 'suggestion'
-  }
-};
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireJsdoc.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js.map
deleted file mode 100644
index 9732bb7..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireJsdoc.js"],"names":["OPTIONS_SCHEMA","additionalProperties","properties","contexts","items","type","exemptEmptyFunctions","default","publicOnly","oneOf","ancestorsOnly","cjs","esm","window","require","ArrowFunctionExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","FunctionExpression","MethodDefinition","getOption","context","baseObject","option","key","_","has","options","getOptions","baseObj","get","Object","keys","reduce","obj","prop","opt","create","sourceCode","getSourceCode","settings","requireOption","checkJsDoc","node","jsDocNode","functionParameterNames","jsdocUtils","getFunctionParameterNames","length","hasReturnValue","fix","fixer","lines","minLines","maxLines","indent","getIndent","insertion","repeat","slice","baseNode","includes","parent","insertTextBefore","report","loc","end","start","messageId","Boolean","initModuleExports","initWindow","parseResult","exportParser","parse","ast","exported","isExported","assign","getContextObject","enforcedContexts","value","meta","doc","category","description","recommended","url","fixable","messages","missingJsDoc","schema"],"mappings":"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","sourcesContent":["import _ from 'lodash';\nimport jsdocUtils from '../jsdocUtils';\nimport exportParser from '../exportParser';\nimport getJSDocComment from '../eslint/getJSDocComment';\nimport warnRemovedSettings from '../warnRemovedSettings';\nimport {getSettings} from '../iterateJsdoc';\n\nconst OPTIONS_SCHEMA = {\n  additionalProperties: false,\n  properties: {\n    contexts: {\n      items: {\n        type: 'string',\n      },\n      type: 'array',\n    },\n    exemptEmptyFunctions: {\n      default: false,\n      type: 'boolean',\n    },\n    publicOnly: {\n      oneOf: [\n        {\n          default: false,\n          type: 'boolean',\n        },\n        {\n          additionalProperties: false,\n          default: {},\n          properties: {\n            ancestorsOnly: {\n              type: 'boolean',\n            },\n            cjs: {\n              type: 'boolean',\n            },\n            esm: {\n              type: 'boolean',\n            },\n            window: {\n              type: 'boolean',\n            },\n          },\n          type: 'object',\n        },\n      ],\n    },\n    require: {\n      additionalProperties: false,\n      default: {},\n      properties: {\n        ArrowFunctionExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        ClassDeclaration: {\n          default: false,\n          type: 'boolean',\n        },\n        ClassExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        FunctionDeclaration: {\n          default: true,\n          type: 'boolean',\n        },\n        FunctionExpression: {\n          default: false,\n          type: 'boolean',\n        },\n        MethodDefinition: {\n          default: false,\n          type: 'boolean',\n        },\n      },\n      type: 'object',\n    },\n  },\n  type: 'object',\n};\n\nconst getOption = (context, baseObject, option, key) => {\n  if (!_.has(context, `options[0][${option}][${key}]`)) {\n    return baseObject.properties[key].default;\n  }\n\n  return context.options[0][option][key];\n};\n\nconst getOptions = (context) => {\n  return {\n    exemptEmptyFunctions: context.options[0] ? context.options[0].exemptEmptyFunctions : false,\n    publicOnly: ((baseObj) => {\n      const publicOnly = _.get(context, 'options[0].publicOnly');\n      if (!publicOnly) {\n        return false;\n      }\n\n      return Object.keys(baseObj.properties).reduce((obj, prop) => {\n        const opt = getOption(context, baseObj, 'publicOnly', prop);\n        obj[prop] = opt;\n\n        return obj;\n      }, {});\n    })(OPTIONS_SCHEMA.properties.publicOnly.oneOf[1]),\n    require: ((baseObj) => {\n      return Object.keys(baseObj.properties).reduce((obj, prop) => {\n        const opt = getOption(context, baseObj, 'require', prop);\n        obj[prop] = opt;\n\n        return obj;\n      }, {});\n    })(OPTIONS_SCHEMA.properties.require),\n  };\n};\n\nexport default {\n  create (context) {\n    warnRemovedSettings(context, 'require-jsdoc');\n\n    const sourceCode = context.getSourceCode();\n    const settings = getSettings(context);\n\n    const {require: requireOption, publicOnly, exemptEmptyFunctions} = getOptions(context);\n\n    const checkJsDoc = (node) => {\n      const jsDocNode = getJSDocComment(sourceCode, node, settings);\n\n      if (jsDocNode) {\n        return;\n      }\n\n      if (exemptEmptyFunctions) {\n        const functionParameterNames = jsdocUtils.getFunctionParameterNames(node);\n        if (!functionParameterNames.length && !jsdocUtils.hasReturnValue(node, context)) {\n          return;\n        }\n      }\n\n      const fix = (fixer) => {\n        // Default to one line break if the `minLines`/`maxLines` settings allow\n        const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n        const indent = jsdocUtils.getIndent(sourceCode);\n        const insertion = `/**\\n${indent}*\\n${indent}*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n        const baseNode = [\n          'ExportDefaultDeclaration', 'ExportNamedDeclaration',\n        ].includes(node.parent && node.parent.type) ? node.parent : node;\n\n        return fixer.insertTextBefore(baseNode, insertion);\n      };\n\n      const report = () => {\n        const loc = {\n          end: node.loc.start + 1,\n          start: node.loc.start,\n        };\n        context.report({\n          fix,\n          loc,\n          messageId: 'missingJsDoc',\n          node,\n        });\n      };\n\n      if (publicOnly) {\n        const opt = {\n          ancestorsOnly: Boolean(_.get(publicOnly, 'ancestorsOnly', false)),\n          esm: Boolean(_.get(publicOnly, 'esm', true)),\n          initModuleExports: Boolean(_.get(publicOnly, 'cjs', true)),\n          initWindow: Boolean(_.get(publicOnly, 'window', false)),\n        };\n        const parseResult = exportParser.parse(sourceCode.ast, node, opt);\n        const exported = exportParser.isExported(node, parseResult, opt);\n\n        if (exported) {\n          report();\n        }\n      } else {\n        report();\n      }\n    };\n\n    // eslint-disable-next-line fp/no-mutating-assign\n    return Object.assign(\n      jsdocUtils.getContextObject(jsdocUtils.enforcedContexts(context, []), checkJsDoc),\n      {\n        ArrowFunctionExpression (node) {\n          if (!requireOption.ArrowFunctionExpression) {\n            return;\n          }\n\n          if (!['VariableDeclarator', 'ExportDefaultDeclaration'].includes(node.parent.type)) {\n            return;\n          }\n\n          checkJsDoc(node);\n        },\n\n        ClassDeclaration (node) {\n          if (!requireOption.ClassDeclaration) {\n            return;\n          }\n\n          checkJsDoc(node);\n        },\n\n        ClassExpression (node) {\n          if (!requireOption.ClassExpression) {\n            return;\n          }\n\n          checkJsDoc(node);\n        },\n\n        FunctionDeclaration (node) {\n          if (!requireOption.FunctionDeclaration) {\n            return;\n          }\n\n          checkJsDoc(node);\n        },\n\n        FunctionExpression (node) {\n          if (requireOption.MethodDefinition && node.parent.type === 'MethodDefinition') {\n            checkJsDoc(node);\n\n            return;\n          }\n\n          if (!requireOption.FunctionExpression) {\n            return;\n          }\n\n          if (\n            ['VariableDeclarator', 'AssignmentExpression', 'ExportDefaultDeclaration'].includes(node.parent.type) ||\n            node.parent.type === 'Property' && node === node.parent.value\n          ) {\n            checkJsDoc(node);\n          }\n        },\n      },\n    );\n  },\n  meta: {\n    doc: {\n      category: 'Stylistic Issues',\n      description: 'Require JSDoc comments',\n      recommended: 'true',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc',\n    },\n\n    fixable: 'code',\n\n    messages: {\n      missingJsDoc: 'Missing JSDoc comment.',\n    },\n\n    schema: [\n      OPTIONS_SCHEMA,\n    ],\n\n    type: 'suggestion',\n  },\n};\n"],"file":"requireJsdoc.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js
deleted file mode 100644
index 6fcf85d..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js
+++ /dev/null
@@ -1,120 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  utils
-}) => {
-  const functionParameterNames = utils.getFunctionParameterNames();
-  const jsdocParameterNames = utils.getJsdocTags('param');
-
-  if (!jsdocParameterNames) {
-    return;
-  }
-
-  if (utils.avoidDocs()) {
-    return;
-  } // Param type is specified by type in @type
-
-
-  if (utils.hasTag('type')) {
-    return;
-  }
-
-  const preferredTagName = utils.getPreferredTagName({
-    tagName: 'param'
-  });
-
-  const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => {
-    const functionTags = jsdocTags.filter(({
-      tag
-    }) => {
-      return tag === preferredTagName;
-    });
-    let expectedIndex = jsdocTags.length;
-    jsdocTags.forEach((tag, index) => {
-      if (tag.tag === preferredTagName) {
-        expectedIndex = index;
-
-        if (functionTags.indexOf(tag) < indexAtFunctionParams) {
-          expectedIndex += 1;
-        }
-      }
-    });
-    return expectedIndex;
-  };
-
-  const missingTags = [];
-  functionParameterNames.forEach((functionParameterName, functionParameterIdx) => {
-    if (['<ObjectPattern>', '<ArrayPattern>'].includes(functionParameterName)) {
-      return;
-    }
-
-    if (jsdocParameterNames && !jsdocParameterNames.find(({
-      name
-    }) => {
-      return name === functionParameterName;
-    })) {
-      missingTags.push({
-        functionParameterIdx,
-        functionParameterName
-      });
-    }
-  });
-
-  const fixAll = (missings, tags) => {
-    missings.forEach(({
-      functionParameterIdx,
-      functionParameterName
-    }) => {
-      const expectedIdx = findExpectedIndex(tags, functionParameterIdx);
-      tags.splice(expectedIdx, 0, {
-        name: functionParameterName,
-        tag: preferredTagName
-      });
-    });
-  };
-
-  missingTags.forEach(({
-    functionParameterName
-  }, index) => {
-    // Fix all missing tags the first time.
-    const fixer = index > 0 ? null : () => {
-      if (!jsdoc.tags) {
-        jsdoc.tags = [];
-      }
-
-      fixAll(missingTags, jsdoc.tags);
-    };
-    utils.reportJSDoc(`Missing JSDoc @${preferredTagName} "${functionParameterName}" declaration.`, null, fixer);
-  });
-}, {
-  meta: {
-    fixable: 'code',
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        exemptedBy: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireParam.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js.map
deleted file mode 100644
index 5af7da6..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireParam.js"],"names":["jsdoc","utils","functionParameterNames","getFunctionParameterNames","jsdocParameterNames","getJsdocTags","avoidDocs","hasTag","preferredTagName","getPreferredTagName","tagName","findExpectedIndex","jsdocTags","indexAtFunctionParams","functionTags","filter","tag","expectedIndex","length","forEach","index","indexOf","missingTags","functionParameterName","functionParameterIdx","includes","find","name","push","fixAll","missings","tags","expectedIdx","splice","fixer","reportJSDoc","meta","fixable","schema","additionalProperties","properties","exemptedBy","items","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,KAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJ,QAAMC,sBAAsB,GAAGD,KAAK,CAACE,yBAAN,EAA/B;AACA,QAAMC,mBAAmB,GAAGH,KAAK,CAACI,YAAN,CAAmB,OAAnB,CAA5B;;AACA,MAAI,CAACD,mBAAL,EAA0B;AACxB;AACD;;AAED,MAAIH,KAAK,CAACK,SAAN,EAAJ,EAAuB;AACrB;AACD,GATG,CAWJ;;;AACA,MAAIL,KAAK,CAACM,MAAN,CAAa,MAAb,CAAJ,EAA0B;AACxB;AACD;;AAED,QAAMC,gBAAgB,GAAGP,KAAK,CAACQ,mBAAN,CAA0B;AAACC,IAAAA,OAAO,EAAE;AAAV,GAA1B,CAAzB;;AAEA,QAAMC,iBAAiB,GAAG,CAACC,SAAD,EAAYC,qBAAZ,KAAsC;AAC9D,UAAMC,YAAY,GAAGF,SAAS,CAACG,MAAV,CAAiB,CAAC;AAACC,MAAAA;AAAD,KAAD,KAAW;AAC/C,aAAOA,GAAG,KAAKR,gBAAf;AACD,KAFoB,CAArB;AAGA,QAAIS,aAAa,GAAGL,SAAS,CAACM,MAA9B;AACAN,IAAAA,SAAS,CAACO,OAAV,CAAkB,CAACH,GAAD,EAAMI,KAAN,KAAgB;AAChC,UAAIJ,GAAG,CAACA,GAAJ,KAAYR,gBAAhB,EAAkC;AAChCS,QAAAA,aAAa,GAAGG,KAAhB;;AACA,YAAIN,YAAY,CAACO,OAAb,CAAqBL,GAArB,IAA4BH,qBAAhC,EAAuD;AACrDI,UAAAA,aAAa,IAAI,CAAjB;AACD;AACF;AACF,KAPD;AASA,WAAOA,aAAP;AACD,GAfD;;AAiBA,QAAMK,WAAW,GAAG,EAApB;AAEApB,EAAAA,sBAAsB,CAACiB,OAAvB,CAA+B,CAACI,qBAAD,EAAwBC,oBAAxB,KAAiD;AAC9E,QAAI,CAAC,iBAAD,EAAoB,gBAApB,EAAsCC,QAAtC,CAA+CF,qBAA/C,CAAJ,EAA2E;AACzE;AACD;;AAED,QAAInB,mBAAmB,IAAI,CAACA,mBAAmB,CAACsB,IAApB,CAAyB,CAAC;AAACC,MAAAA;AAAD,KAAD,KAAY;AAC/D,aAAOA,IAAI,KAAKJ,qBAAhB;AACD,KAF2B,CAA5B,EAEI;AACFD,MAAAA,WAAW,CAACM,IAAZ,CAAiB;AACfJ,QAAAA,oBADe;AAEfD,QAAAA;AAFe,OAAjB;AAID;AACF,GAbD;;AAeA,QAAMM,MAAM,GAAG,CAACC,QAAD,EAAWC,IAAX,KAAoB;AACjCD,IAAAA,QAAQ,CAACX,OAAT,CAAiB,CAAC;AAACK,MAAAA,oBAAD;AAAuBD,MAAAA;AAAvB,KAAD,KAAmD;AAClE,YAAMS,WAAW,GAAGrB,iBAAiB,CAACoB,IAAD,EAAOP,oBAAP,CAArC;AACAO,MAAAA,IAAI,CAACE,MAAL,CAAYD,WAAZ,EAAyB,CAAzB,EAA4B;AAC1BL,QAAAA,IAAI,EAAEJ,qBADoB;AAE1BP,QAAAA,GAAG,EAAER;AAFqB,OAA5B;AAID,KAND;AAOD,GARD;;AAUAc,EAAAA,WAAW,CAACH,OAAZ,CAAoB,CAAC;AAACI,IAAAA;AAAD,GAAD,EAA0BH,KAA1B,KAAoC;AACtD;AACA,UAAMc,KAAK,GAAGd,KAAK,GAAG,CAAR,GAAY,IAAZ,GAAmB,MAAM;AACrC,UAAI,CAACpB,KAAK,CAAC+B,IAAX,EAAiB;AACf/B,QAAAA,KAAK,CAAC+B,IAAN,GAAa,EAAb;AACD;;AAEDF,MAAAA,MAAM,CAACP,WAAD,EAActB,KAAK,CAAC+B,IAApB,CAAN;AACD,KAND;AAOA9B,IAAAA,KAAK,CAACkC,WAAN,CAAmB,kBAAiB3B,gBAAiB,KAAIe,qBAAsB,gBAA/E,EAAgG,IAAhG,EAAsGW,KAAtG;AACD,GAVD;AAWD,CA5Ec,EA4EZ;AACDE,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,UAAU,EAAE;AACVC,UAAAA,KAAK,EAAE;AACLC,YAAAA,IAAI,EAAE;AADD,WADG;AAIVA,UAAAA,IAAI,EAAE;AAJI;AADF,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CAFJ;AAgBJA,IAAAA,IAAI,EAAE;AAhBF;AADL,CA5EY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  utils,\n}) => {\n  const functionParameterNames = utils.getFunctionParameterNames();\n  const jsdocParameterNames = utils.getJsdocTags('param');\n  if (!jsdocParameterNames) {\n    return;\n  }\n\n  if (utils.avoidDocs()) {\n    return;\n  }\n\n  // Param type is specified by type in @type\n  if (utils.hasTag('type')) {\n    return;\n  }\n\n  const preferredTagName = utils.getPreferredTagName({tagName: 'param'});\n\n  const findExpectedIndex = (jsdocTags, indexAtFunctionParams) => {\n    const functionTags = jsdocTags.filter(({tag}) => {\n      return tag === preferredTagName;\n    });\n    let expectedIndex = jsdocTags.length;\n    jsdocTags.forEach((tag, index) => {\n      if (tag.tag === preferredTagName) {\n        expectedIndex = index;\n        if (functionTags.indexOf(tag) < indexAtFunctionParams) {\n          expectedIndex += 1;\n        }\n      }\n    });\n\n    return expectedIndex;\n  };\n\n  const missingTags = [];\n\n  functionParameterNames.forEach((functionParameterName, functionParameterIdx) => {\n    if (['<ObjectPattern>', '<ArrayPattern>'].includes(functionParameterName)) {\n      return;\n    }\n\n    if (jsdocParameterNames && !jsdocParameterNames.find(({name}) => {\n      return name === functionParameterName;\n    })) {\n      missingTags.push({\n        functionParameterIdx,\n        functionParameterName,\n      });\n    }\n  });\n\n  const fixAll = (missings, tags) => {\n    missings.forEach(({functionParameterIdx, functionParameterName}) => {\n      const expectedIdx = findExpectedIndex(tags, functionParameterIdx);\n      tags.splice(expectedIdx, 0, {\n        name: functionParameterName,\n        tag: preferredTagName,\n      });\n    });\n  };\n\n  missingTags.forEach(({functionParameterName}, index) => {\n    // Fix all missing tags the first time.\n    const fixer = index > 0 ? null : () => {\n      if (!jsdoc.tags) {\n        jsdoc.tags = [];\n      }\n\n      fixAll(missingTags, jsdoc.tags);\n    };\n    utils.reportJSDoc(`Missing JSDoc @${preferredTagName} \"${functionParameterName}\" declaration.`, null, fixer);\n  });\n}, {\n  meta: {\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          exemptedBy: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireParam.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js
deleted file mode 100644
index 48bf27b..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {
-    if (!jsdocParameter.description) {
-      report(`Missing JSDoc @${targetTagName} "${jsdocParameter.name}" description.`, null, jsdocParameter);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireParamDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js.map
deleted file mode 100644
index 8b4e3eb..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireParamDescription.js"],"names":["report","utils","forEachPreferredTag","jsdocParameter","targetTagName","description","name","contextDefaults","meta","schema","additionalProperties","properties","contexts","items","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;AACpE,QAAI,CAACD,cAAc,CAACE,WAApB,EAAiC;AAC/BL,MAAAA,MAAM,CACH,kBAAiBI,aAAc,KAAID,cAAc,CAACG,IAAK,gBADpD,EAEJ,IAFI,EAGJH,cAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDI,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLC,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n    if (!jsdocParameter.description) {\n      report(\n        `Missing JSDoc @${targetTagName} \"${jsdocParameter.name}\" description.`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireParamDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js
deleted file mode 100644
index c235c28..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {
-    if (jsdocParameter.tag && jsdocParameter.name === '') {
-      report(`There must be an identifier after @${targetTagName} ${jsdocParameter.type === '' ? 'type' : 'tag'}.`, null, jsdocParameter);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireParamName.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js.map
deleted file mode 100644
index 7822e03..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamName.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireParamName.js"],"names":["report","utils","forEachPreferredTag","jsdocParameter","targetTagName","tag","name","type","contextDefaults","meta","schema","additionalProperties","properties","contexts","items"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;AACpE,QAAID,cAAc,CAACE,GAAf,IAAsBF,cAAc,CAACG,IAAf,KAAwB,EAAlD,EAAsD;AACpDN,MAAAA,MAAM,CACH,sCAAqCI,aAAc,IAAGD,cAAc,CAACI,IAAf,KAAwB,EAAxB,GAA6B,MAA7B,GAAsC,KAAM,GAD/F,EAEJ,IAFI,EAGJJ,cAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDK,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLP,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n    if (jsdocParameter.tag && jsdocParameter.name === '') {\n      report(\n        `There must be an identifier after @${targetTagName} ${jsdocParameter.type === '' ? 'type' : 'tag'}.`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireParamName.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js
deleted file mode 100644
index 1944953..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {
-    if (!jsdocParameter.type) {
-      report(`Missing JSDoc @${targetTagName} "${jsdocParameter.name}" type.`, null, jsdocParameter);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireParamType.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js.map
deleted file mode 100644
index a91b4b4..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireParamType.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireParamType.js"],"names":["report","utils","forEachPreferredTag","jsdocParameter","targetTagName","type","name","contextDefaults","meta","schema","additionalProperties","properties","contexts","items"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,OAA1B,EAAmC,CAACC,cAAD,EAAiBC,aAAjB,KAAmC;AACpE,QAAI,CAACD,cAAc,CAACE,IAApB,EAA0B;AACxBL,MAAAA,MAAM,CACH,kBAAiBI,aAAc,KAAID,cAAc,CAACG,IAAK,SADpD,EAEJ,IAFI,EAGJH,cAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDI,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLR,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('param', (jsdocParameter, targetTagName) => {\n    if (!jsdocParameter.type) {\n      report(\n        `Missing JSDoc @${targetTagName} \"${jsdocParameter.name}\" type.`,\n        null,\n        jsdocParameter,\n      );\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireParamType.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js
deleted file mode 100644
index c1754ce..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  utils
-}) => {
-  const propertyAssociatedTags = utils.filterTags(({
-    tag
-  }) => {
-    return ['typedef', 'namespace'].includes(tag);
-  });
-
-  if (!propertyAssociatedTags.length) {
-    return;
-  }
-
-  const targetTagName = utils.getPreferredTagName({
-    tagName: 'property'
-  });
-
-  if (utils.hasATag([targetTagName])) {
-    return;
-  }
-
-  propertyAssociatedTags.forEach(propertyAssociatedTag => {
-    if (!['object', 'Object', 'PlainObject'].includes(propertyAssociatedTag.type)) {
-      return;
-    }
-
-    utils.reportJSDoc(`Missing JSDoc @${targetTagName}.`, null, () => {
-      const line = jsdoc.tags[jsdoc.tags.length - 1].line + 1;
-      jsdoc.tags.push({
-        description: '',
-        line,
-        name: '',
-        optional: false,
-        tag: targetTagName,
-        type: ''
-      });
-    });
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    fixable: 'code',
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireProperty.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js.map
deleted file mode 100644
index d82e747..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireProperty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireProperty.js"],"names":["jsdoc","utils","propertyAssociatedTags","filterTags","tag","includes","length","targetTagName","getPreferredTagName","tagName","hasATag","forEach","propertyAssociatedTag","type","reportJSDoc","line","tags","push","description","name","optional","iterateAllJsdocs","meta","fixable"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,KAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJ,QAAMC,sBAAsB,GAAGD,KAAK,CAACE,UAAN,CAAiB,CAAC;AAACC,IAAAA;AAAD,GAAD,KAAW;AACzD,WAAO,CAAC,SAAD,EAAY,WAAZ,EAAyBC,QAAzB,CAAkCD,GAAlC,CAAP;AACD,GAF8B,CAA/B;;AAGA,MAAI,CAACF,sBAAsB,CAACI,MAA5B,EAAoC;AAClC;AACD;;AACD,QAAMC,aAAa,GAAGN,KAAK,CAACO,mBAAN,CAA0B;AAACC,IAAAA,OAAO,EAAE;AAAV,GAA1B,CAAtB;;AAEA,MAAIR,KAAK,CAACS,OAAN,CAAc,CAACH,aAAD,CAAd,CAAJ,EAAoC;AAClC;AACD;;AAEDL,EAAAA,sBAAsB,CAACS,OAAvB,CAAgCC,qBAAD,IAA2B;AACxD,QAAI,CAAC,CAAC,QAAD,EAAW,QAAX,EAAqB,aAArB,EAAoCP,QAApC,CAA6CO,qBAAqB,CAACC,IAAnE,CAAL,EAA+E;AAC7E;AACD;;AACDZ,IAAAA,KAAK,CAACa,WAAN,CAAmB,kBAAiBP,aAAc,GAAlD,EAAsD,IAAtD,EAA4D,MAAM;AAChE,YAAMQ,IAAI,GAAGf,KAAK,CAACgB,IAAN,CAAWhB,KAAK,CAACgB,IAAN,CAAWV,MAAX,GAAoB,CAA/B,EAAkCS,IAAlC,GAAyC,CAAtD;AACAf,MAAAA,KAAK,CAACgB,IAAN,CAAWC,IAAX,CAAgB;AACdC,QAAAA,WAAW,EAAE,EADC;AAEdH,QAAAA,IAFc;AAGdI,QAAAA,IAAI,EAAE,EAHQ;AAIdC,QAAAA,QAAQ,EAAE,KAJI;AAKdhB,QAAAA,GAAG,EAAEG,aALS;AAMdM,QAAAA,IAAI,EAAE;AANQ,OAAhB;AAQD,KAVD;AAWD,GAfD;AAgBD,CAhCc,EAgCZ;AACDQ,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAE,MADL;AAEJV,IAAAA,IAAI,EAAE;AAFF;AAFL,CAhCY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  jsdoc,\n  utils,\n}) => {\n  const propertyAssociatedTags = utils.filterTags(({tag}) => {\n    return ['typedef', 'namespace'].includes(tag);\n  });\n  if (!propertyAssociatedTags.length) {\n    return;\n  }\n  const targetTagName = utils.getPreferredTagName({tagName: 'property'});\n\n  if (utils.hasATag([targetTagName])) {\n    return;\n  }\n\n  propertyAssociatedTags.forEach((propertyAssociatedTag) => {\n    if (!['object', 'Object', 'PlainObject'].includes(propertyAssociatedTag.type)) {\n      return;\n    }\n    utils.reportJSDoc(`Missing JSDoc @${targetTagName}.`, null, () => {\n      const line = jsdoc.tags[jsdoc.tags.length - 1].line + 1;\n      jsdoc.tags.push({\n        description: '',\n        line,\n        name: '',\n        optional: false,\n        tag: targetTagName,\n        type: '',\n      });\n    });\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    fixable: 'code',\n    type: 'suggestion',\n  },\n});\n"],"file":"requireProperty.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js
deleted file mode 100644
index 5a70cc0..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {
-    if (!jsdoc.description) {
-      report(`Missing JSDoc @${targetTagName} "${jsdoc.name}" description.`, null, jsdoc);
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requirePropertyDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js.map
deleted file mode 100644
index 9c98435..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requirePropertyDescription.js"],"names":["report","utils","forEachPreferredTag","jsdoc","targetTagName","description","name","iterateAllJsdocs","meta","type"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;AAC9D,QAAI,CAACD,KAAK,CAACE,WAAX,EAAwB;AACtBL,MAAAA,MAAM,CACH,kBAAiBI,aAAc,KAAID,KAAK,CAACG,IAAK,gBAD3C,EAEJ,IAFI,EAGJH,KAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDI,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AADF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n    if (!jsdoc.description) {\n      report(\n        `Missing JSDoc @${targetTagName} \"${jsdoc.name}\" description.`,\n        null,\n        jsdoc,\n      );\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"requirePropertyDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js
deleted file mode 100644
index 4cdbcb4..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {
-    if (jsdoc.tag && jsdoc.name === '') {
-      report(`There must be an identifier after @${targetTagName} ${jsdoc.type === '' ? 'type' : 'tag'}.`, null, jsdoc);
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requirePropertyName.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js.map
deleted file mode 100644
index 254a00e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyName.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requirePropertyName.js"],"names":["report","utils","forEachPreferredTag","jsdoc","targetTagName","tag","name","type","iterateAllJsdocs","meta"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;AAC9D,QAAID,KAAK,CAACE,GAAN,IAAaF,KAAK,CAACG,IAAN,KAAe,EAAhC,EAAoC;AAClCN,MAAAA,MAAM,CACH,sCAAqCI,aAAc,IAAGD,KAAK,CAACI,IAAN,KAAe,EAAf,GAAoB,MAApB,GAA6B,KAAM,GADtF,EAEJ,IAFI,EAGJJ,KAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDK,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJF,IAAAA,IAAI,EAAE;AADF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n    if (jsdoc.tag && jsdoc.name === '') {\n      report(\n        `There must be an identifier after @${targetTagName} ${jsdoc.type === '' ? 'type' : 'tag'}.`,\n        null,\n        jsdoc,\n      );\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"requirePropertyName.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js
deleted file mode 100644
index 758910e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {
-    if (!jsdoc.type) {
-      report(`Missing JSDoc @${targetTagName} "${jsdoc.name}" type.`, null, jsdoc);
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requirePropertyType.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js.map
deleted file mode 100644
index 9370642..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requirePropertyType.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requirePropertyType.js"],"names":["report","utils","forEachPreferredTag","jsdoc","targetTagName","type","name","iterateAllJsdocs","meta"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,UAA1B,EAAsC,CAACC,KAAD,EAAQC,aAAR,KAA0B;AAC9D,QAAI,CAACD,KAAK,CAACE,IAAX,EAAiB;AACfL,MAAAA,MAAM,CACH,kBAAiBI,aAAc,KAAID,KAAK,CAACG,IAAK,SAD3C,EAEJ,IAFI,EAGJH,KAHI,CAAN;AAKD;AACF,GARD;AASD,CAbc,EAaZ;AACDI,EAAAA,gBAAgB,EAAE,IADjB;AAEDC,EAAAA,IAAI,EAAE;AACJH,IAAAA,IAAI,EAAE;AADF;AAFL,CAbY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('property', (jsdoc, targetTagName) => {\n    if (!jsdoc.type) {\n      report(\n        `Missing JSDoc @${targetTagName} \"${jsdoc.name}\" type.`,\n        null,\n        jsdoc,\n      );\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"requirePropertyType.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js
deleted file mode 100644
index 953622e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js
+++ /dev/null
@@ -1,143 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-var _warnRemovedSettings = _interopRequireDefault(require("../warnRemovedSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-
-function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-/**
- * We can skip checking for a return value, in case the documentation is inherited
- * or the method is either a constructor or an abstract method.
- *
- * In either of these cases the return value is optional or not defined.
- *
- * @param {*} utils
- *   a reference to the utils which are used to probe if a tag is present or not.
- * @returns {boolean}
- *   true in case deep checking can be skipped; otherwise false.
- */
-const canSkip = utils => {
-  return utils.hasATag([// inheritdoc implies that all documentation is inherited
-  // see https://jsdoc.app/tags-inheritdoc.html
-  //
-  // Abstract methods are by definition incomplete,
-  // so it is not an error if it declares a return value but does not implement it.
-  'abstract', 'virtual', // Constructors do not have a return value by definition (https://jsdoc.app/tags-class.html)
-  // So we can bail out here, too.
-  'class', 'constructor', // Return type is specified by type in @type
-  'type', // This seems to imply a class as well
-  'interface']) || utils.isConstructor() || // Though ESLint avoided getters: https://github.com/eslint/eslint/blob/master/lib/rules/valid-jsdoc.js#L435
-  //  ... getters seem that they should, unlike setters, always return:
-  utils.isSetter() || utils.avoidDocs();
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils,
-  context
-}) => {
-  (0, _warnRemovedSettings.default)(context, 'require-returns'); // A preflight check. We do not need to run a deep check
-  // in case the @returns comment is optional or undefined.
-
-  if (canSkip(utils)) {
-    return;
-  }
-
-  const _ref = context.options[0] || {},
-        _ref$forceRequireRetu = _ref.forceRequireReturn,
-        forceRequireReturn = _ref$forceRequireRetu === void 0 ? false : _ref$forceRequireRetu,
-        _ref$forceReturnsWith = _ref.forceReturnsWithAsync,
-        forceReturnsWithAsync = _ref$forceReturnsWith === void 0 ? false : _ref$forceReturnsWith;
-
-  const tagName = utils.getPreferredTagName({
-    tagName: 'returns'
-  });
-
-  if (!tagName) {
-    return;
-  }
-
-  const tags = utils.getTags(tagName);
-
-  if (tags.length > 1) {
-    report(`Found more than one @${tagName} declaration.`);
-  }
-
-  const iteratingFunction = utils.isIteratingFunction(); // In case the code returns something, we expect a return value in JSDoc.
-
-  const _tags = _slicedToArray(tags, 1),
-        tag = _tags[0];
-
-  const missingReturnTag = typeof tag === 'undefined' || tag === null;
-
-  const shouldReport = () => {
-    if (!missingReturnTag) {
-      return false;
-    }
-
-    if (forceRequireReturn && (iteratingFunction || utils.isVirtualFunction())) {
-      return true;
-    }
-
-    const isAsync = !iteratingFunction && utils.hasTag('async') || iteratingFunction && utils.isAsync();
-
-    if (forceReturnsWithAsync && isAsync) {
-      return true;
-    }
-
-    return !isAsync && iteratingFunction && utils.hasReturnValue();
-  };
-
-  if (shouldReport()) {
-    report(`Missing JSDoc @${tagName} declaration.`);
-  }
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        exemptedBy: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        },
-        forceRequireReturn: {
-          default: false,
-          type: 'boolean'
-        },
-        forceReturnsWithAsync: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireReturns.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js.map
deleted file mode 100644
index bae88c3..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireReturns.js"],"names":["canSkip","utils","hasATag","isConstructor","isSetter","avoidDocs","report","context","options","forceRequireReturn","forceReturnsWithAsync","tagName","getPreferredTagName","tags","getTags","length","iteratingFunction","isIteratingFunction","tag","missingReturnTag","shouldReport","isVirtualFunction","isAsync","hasTag","hasReturnValue","contextDefaults","meta","schema","additionalProperties","properties","contexts","items","type","exemptedBy","default"],"mappings":"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","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\nimport warnRemovedSettings from '../warnRemovedSettings';\n\n/**\n * We can skip checking for a return value, in case the documentation is inherited\n * or the method is either a constructor or an abstract method.\n *\n * In either of these cases the return value is optional or not defined.\n *\n * @param {*} utils\n *   a reference to the utils which are used to probe if a tag is present or not.\n * @returns {boolean}\n *   true in case deep checking can be skipped; otherwise false.\n */\nconst canSkip = (utils) => {\n  return utils.hasATag([\n    // inheritdoc implies that all documentation is inherited\n    // see https://jsdoc.app/tags-inheritdoc.html\n    //\n    // Abstract methods are by definition incomplete,\n    // so it is not an error if it declares a return value but does not implement it.\n    'abstract',\n    'virtual',\n\n    // Constructors do not have a return value by definition (https://jsdoc.app/tags-class.html)\n    // So we can bail out here, too.\n    'class',\n    'constructor',\n\n    // Return type is specified by type in @type\n    'type',\n\n    // This seems to imply a class as well\n    'interface',\n  ]) ||\n    utils.isConstructor() ||\n\n    // Though ESLint avoided getters: https://github.com/eslint/eslint/blob/master/lib/rules/valid-jsdoc.js#L435\n    //  ... getters seem that they should, unlike setters, always return:\n    utils.isSetter() ||\n    utils.avoidDocs();\n};\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n  context,\n}) => {\n  warnRemovedSettings(context, 'require-returns');\n\n  // A preflight check. We do not need to run a deep check\n  // in case the @returns comment is optional or undefined.\n  if (canSkip(utils)) {\n    return;\n  }\n\n  const {\n    forceRequireReturn = false,\n    forceReturnsWithAsync = false,\n  } = context.options[0] || {};\n\n  const tagName = utils.getPreferredTagName({tagName: 'returns'});\n  if (!tagName) {\n    return;\n  }\n  const tags = utils.getTags(tagName);\n\n  if (tags.length > 1) {\n    report(`Found more than one @${tagName} declaration.`);\n  }\n\n  const iteratingFunction = utils.isIteratingFunction();\n\n  // In case the code returns something, we expect a return value in JSDoc.\n  const [tag] = tags;\n  const missingReturnTag = typeof tag === 'undefined' || tag === null;\n\n  const shouldReport = () => {\n    if (!missingReturnTag) {\n      return false;\n    }\n\n    if (forceRequireReturn && (\n      iteratingFunction || utils.isVirtualFunction()\n    )) {\n      return true;\n    }\n\n    const isAsync = !iteratingFunction && utils.hasTag('async') ||\n      iteratingFunction && utils.isAsync();\n\n    if (forceReturnsWithAsync && isAsync) {\n      return true;\n    }\n\n    return !isAsync && iteratingFunction && utils.hasReturnValue();\n  };\n\n  if (shouldReport()) {\n    report(`Missing JSDoc @${tagName} declaration.`);\n  }\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          exemptedBy: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n          forceRequireReturn: {\n            default: false,\n            type: 'boolean',\n          },\n          forceReturnsWithAsync: {\n            default: false,\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireReturns.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js
deleted file mode 100755
index 917afad..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js
+++ /dev/null
@@ -1,74 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const canSkip = (utils, settings) => {
-  const voidingTags = [// An abstract function is by definition incomplete
-  // so it is perfectly fine if a return is documented but
-  // not present within the function.
-  // A subclass may inherit the doc and implement the
-  // missing return.
-  'abstract', 'virtual', // A constructor function returns `this` by default, so may be `@returns`
-  //   tag indicating this but no explicit return
-  'class', 'constructor', 'interface'];
-
-  if (settings.mode === 'closure') {
-    // Structural Interface in GCC terms, equivalent to @interface tag as far as this rule is concerned
-    voidingTags.push('record');
-  }
-
-  return utils.hasATag(voidingTags) || utils.isConstructor() || utils.classHasTag('interface') || settings.mode === 'closure' && utils.classHasTag('record');
-};
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  settings,
-  utils
-}) => {
-  if (canSkip(utils, settings)) {
-    return;
-  }
-
-  if (utils.isAsync()) {
-    return;
-  }
-
-  const tagName = utils.getPreferredTagName({
-    tagName: 'returns'
-  });
-
-  if (!tagName) {
-    return;
-  }
-
-  const tags = utils.getTags(tagName);
-
-  if (tags.length === 0) {
-    return;
-  }
-
-  if (tags.length > 1) {
-    report(`Found more than one @${tagName} declaration.`);
-    return;
-  } // In case a return value is declared in JSDoc, we also expect one in the code.
-
-
-  if (utils.hasDefinedTypeReturnTag(tags[0]) && !utils.hasReturnValue()) {
-    report(`JSDoc @${tagName} declaration present but return expression not available in function.`);
-  }
-}, {
-  meta: {
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireReturnsCheck.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js.map
deleted file mode 100644
index bf96909..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsCheck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireReturnsCheck.js"],"names":["canSkip","utils","settings","voidingTags","mode","push","hasATag","isConstructor","classHasTag","report","isAsync","tagName","getPreferredTagName","tags","getTags","length","hasDefinedTypeReturnTag","hasReturnValue","meta","type"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,OAAO,GAAG,CAACC,KAAD,EAAQC,QAAR,KAAqB;AACnC,QAAMC,WAAW,GAAG,CAClB;AACA;AACA;AACA;AACA;AACA,YANkB,EAOlB,SAPkB,EASlB;AACA;AACA,SAXkB,EAYlB,aAZkB,EAalB,WAbkB,CAApB;;AAgBA,MAAID,QAAQ,CAACE,IAAT,KAAkB,SAAtB,EAAiC;AAC/B;AACAD,IAAAA,WAAW,CAACE,IAAZ,CAAiB,QAAjB;AACD;;AAED,SAAOJ,KAAK,CAACK,OAAN,CAAcH,WAAd,KACLF,KAAK,CAACM,aAAN,EADK,IAELN,KAAK,CAACO,WAAN,CAAkB,WAAlB,CAFK,IAGLN,QAAQ,CAACE,IAAT,KAAkB,SAAlB,IAA+BH,KAAK,CAACO,WAAN,CAAkB,QAAlB,CAHjC;AAID,CA1BD;;eA4Be,2BAAa,CAAC;AAC3BC,EAAAA,MAD2B;AAE3BP,EAAAA,QAF2B;AAG3BD,EAAAA;AAH2B,CAAD,KAItB;AACJ,MAAID,OAAO,CAACC,KAAD,EAAQC,QAAR,CAAX,EAA8B;AAC5B;AACD;;AAED,MAAID,KAAK,CAACS,OAAN,EAAJ,EAAqB;AACnB;AACD;;AAED,QAAMC,OAAO,GAAGV,KAAK,CAACW,mBAAN,CAA0B;AAACD,IAAAA,OAAO,EAAE;AAAV,GAA1B,CAAhB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AACD,QAAME,IAAI,GAAGZ,KAAK,CAACa,OAAN,CAAcH,OAAd,CAAb;;AAEA,MAAIE,IAAI,CAACE,MAAL,KAAgB,CAApB,EAAuB;AACrB;AACD;;AAED,MAAIF,IAAI,CAACE,MAAL,GAAc,CAAlB,EAAqB;AACnBN,IAAAA,MAAM,CAAE,wBAAuBE,OAAQ,eAAjC,CAAN;AAEA;AACD,GAvBG,CAyBJ;;;AACA,MAAIV,KAAK,CAACe,uBAAN,CAA8BH,IAAI,CAAC,CAAD,CAAlC,KAA0C,CAACZ,KAAK,CAACgB,cAAN,EAA/C,EAAuE;AACrER,IAAAA,MAAM,CAAE,UAASE,OAAQ,uEAAnB,CAAN;AACD;AACF,CAjCc,EAiCZ;AACDO,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AADF;AADL,CAjCY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nconst canSkip = (utils, settings) => {\n  const voidingTags = [\n    // An abstract function is by definition incomplete\n    // so it is perfectly fine if a return is documented but\n    // not present within the function.\n    // A subclass may inherit the doc and implement the\n    // missing return.\n    'abstract',\n    'virtual',\n\n    // A constructor function returns `this` by default, so may be `@returns`\n    //   tag indicating this but no explicit return\n    'class',\n    'constructor',\n    'interface',\n  ];\n\n  if (settings.mode === 'closure') {\n    // Structural Interface in GCC terms, equivalent to @interface tag as far as this rule is concerned\n    voidingTags.push('record');\n  }\n\n  return utils.hasATag(voidingTags) ||\n    utils.isConstructor() ||\n    utils.classHasTag('interface') ||\n    settings.mode === 'closure' && utils.classHasTag('record');\n};\n\nexport default iterateJsdoc(({\n  report,\n  settings,\n  utils,\n}) => {\n  if (canSkip(utils, settings)) {\n    return;\n  }\n\n  if (utils.isAsync()) {\n    return;\n  }\n\n  const tagName = utils.getPreferredTagName({tagName: 'returns'});\n  if (!tagName) {\n    return;\n  }\n  const tags = utils.getTags(tagName);\n\n  if (tags.length === 0) {\n    return;\n  }\n\n  if (tags.length > 1) {\n    report(`Found more than one @${tagName} declaration.`);\n\n    return;\n  }\n\n  // In case a return value is declared in JSDoc, we also expect one in the code.\n  if (utils.hasDefinedTypeReturnTag(tags[0]) && !utils.hasReturnValue()) {\n    report(`JSDoc @${tagName} declaration present but return expression not available in function.`);\n  }\n}, {\n  meta: {\n    type: 'suggestion',\n  },\n});\n"],"file":"requireReturnsCheck.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js
deleted file mode 100644
index f742bb8..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('returns', (jsdocTag, targetTagName) => {
-    const type = jsdocTag.type && jsdocTag.type.trim();
-
-    if (type === 'void' || type === 'undefined') {
-      return;
-    }
-
-    if (!jsdocTag.description) {
-      report(`Missing JSDoc @${targetTagName} description.`, null, jsdocTag);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireReturnsDescription.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js.map
deleted file mode 100644
index b9e05ae..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireReturnsDescription.js"],"names":["report","utils","forEachPreferredTag","jsdocTag","targetTagName","type","trim","description","contextDefaults","meta","schema","additionalProperties","properties","contexts","items"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,SAA1B,EAAqC,CAACC,QAAD,EAAWC,aAAX,KAA6B;AAChE,UAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,IAAiBF,QAAQ,CAACE,IAAT,CAAcC,IAAd,EAA9B;;AAEA,QAAID,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,WAAhC,EAA6C;AAC3C;AACD;;AAED,QAAI,CAACF,QAAQ,CAACI,WAAd,EAA2B;AACzBP,MAAAA,MAAM,CAAE,kBAAiBI,aAAc,eAAjC,EAAiD,IAAjD,EAAuDD,QAAvD,CAAN;AACD;AACF,GAVD;AAWD,CAfc,EAeZ;AACDK,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLT,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CAfY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('returns', (jsdocTag, targetTagName) => {\n    const type = jsdocTag.type && jsdocTag.type.trim();\n\n    if (type === 'void' || type === 'undefined') {\n      return;\n    }\n\n    if (!jsdocTag.description) {\n      report(`Missing JSDoc @${targetTagName} description.`, null, jsdocTag);\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireReturnsDescription.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js
deleted file mode 100644
index ae472ea..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var _default = (0, _iterateJsdoc.default)(({
-  report,
-  utils
-}) => {
-  utils.forEachPreferredTag('returns', (jsdocTag, targetTagName) => {
-    if (!jsdocTag.type) {
-      report(`Missing JSDoc @${targetTagName} type.`, null, jsdocTag);
-    }
-  });
-}, {
-  contextDefaults: true,
-  meta: {
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        contexts: {
-          items: {
-            type: 'string'
-          },
-          type: 'array'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=requireReturnsType.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js.map
deleted file mode 100644
index a1b91a3..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturnsType.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/requireReturnsType.js"],"names":["report","utils","forEachPreferredTag","jsdocTag","targetTagName","type","contextDefaults","meta","schema","additionalProperties","properties","contexts","items"],"mappings":";;;;;;;AAAA;;;;eAEe,2BAAa,CAAC;AAC3BA,EAAAA,MAD2B;AAE3BC,EAAAA;AAF2B,CAAD,KAGtB;AACJA,EAAAA,KAAK,CAACC,mBAAN,CAA0B,SAA1B,EAAqC,CAACC,QAAD,EAAWC,aAAX,KAA6B;AAChE,QAAI,CAACD,QAAQ,CAACE,IAAd,EAAoB;AAClBL,MAAAA,MAAM,CAAE,kBAAiBI,aAAc,QAAjC,EAA0C,IAA1C,EAAgDD,QAAhD,CAAN;AACD;AACF,GAJD;AAKD,CATc,EASZ;AACDG,EAAAA,eAAe,EAAE,IADhB;AAEDC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAE,CACN;AACEC,MAAAA,oBAAoB,EAAE,KADxB;AAEEC,MAAAA,UAAU,EAAE;AACVC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,KAAK,EAAE;AACLP,YAAAA,IAAI,EAAE;AADD,WADC;AAIRA,UAAAA,IAAI,EAAE;AAJE;AADA,OAFd;AAUEA,MAAAA,IAAI,EAAE;AAVR,KADM,CADJ;AAeJA,IAAAA,IAAI,EAAE;AAfF;AAFL,CATY,C","sourcesContent":["import iterateJsdoc from '../iterateJsdoc';\n\nexport default iterateJsdoc(({\n  report,\n  utils,\n}) => {\n  utils.forEachPreferredTag('returns', (jsdocTag, targetTagName) => {\n    if (!jsdocTag.type) {\n      report(`Missing JSDoc @${targetTagName} type.`, null, jsdocTag);\n    }\n  });\n}, {\n  contextDefaults: true,\n  meta: {\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          contexts: {\n            items: {\n              type: 'string',\n            },\n            type: 'array',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"requireReturnsType.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js b/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js
deleted file mode 100644
index d37528e..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js
+++ /dev/null
@@ -1,148 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _jsdoctypeparser = require("jsdoctypeparser");
-
-var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc"));
-
-var _warnRemovedSettings = _interopRequireDefault(require("../warnRemovedSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const asExpression = /as\s+/u;
-
-var _default = (0, _iterateJsdoc.default)(({
-  jsdoc,
-  report,
-  utils,
-  context
-}) => {
-  (0, _warnRemovedSettings.default)(context, 'valid-types');
-
-  const _ref = context.options[0] || {},
-        _ref$allowEmptyNamepa = _ref.allowEmptyNamepaths,
-        allowEmptyNamepaths = _ref$allowEmptyNamepa === void 0 ? true : _ref$allowEmptyNamepa,
-        _ref$checkSeesForName = _ref.checkSeesForNamepaths,
-        checkSeesForNamepaths = _ref$checkSeesForName === void 0 ? false : _ref$checkSeesForName;
-
-  if (!jsdoc.tags) {
-    return;
-  }
-
-  jsdoc.tags.forEach(tag => {
-    const validNamepathParsing = function validNamepathParsing(namepath, tagName) {
-      try {
-        (0, _jsdoctypeparser.parse)(namepath);
-      } catch (error) {
-        let handled = false;
-
-        if (tagName) {
-          if (['memberof', 'memberof!'].includes(tagName)) {
-            const endChar = namepath.slice(-1);
-
-            if (['#', '.', '~'].includes(endChar)) {
-              try {
-                (0, _jsdoctypeparser.parse)(namepath.slice(0, -1));
-                handled = true;
-              } catch (memberofError) {// Use the original error for including the whole type
-              }
-            }
-          } else if (tagName === 'borrows') {
-            const startChar = namepath.charAt();
-
-            if (['#', '.', '~'].includes(startChar)) {
-              try {
-                (0, _jsdoctypeparser.parse)(namepath.slice(1));
-                handled = true;
-              } catch (memberofError) {// Use the original error for including the whole type
-              }
-            }
-          }
-        }
-
-        if (!handled) {
-          report(`Syntax error in namepath: ${namepath}`, null, tag);
-          return false;
-        }
-      }
-
-      return true;
-    };
-
-    const validTypeParsing = function validTypeParsing(type) {
-      try {
-        (0, _jsdoctypeparser.parse)(type);
-      } catch (error) {
-        report(`Syntax error in type: ${type}`, null, tag);
-        return false;
-      }
-
-      return true;
-    };
-
-    const hasTypePosition = utils.tagMightHaveTypePosition(tag.tag) && Boolean(tag.type);
-    const mustHaveTypePosition = utils.tagMustHaveTypePosition(tag.tag);
-    const hasNameOrNamepathPosition = utils.tagMightHaveNamePosition(tag.tag) && Boolean(tag.name) && !(tag.tag === 'see' && !checkSeesForNamepaths);
-    const mustHaveNameOrNamepathPosition = utils.tagMustHaveNamePosition(tag.tag) && !allowEmptyNamepaths;
-    const hasEither = utils.tagMightHaveEitherTypeOrNamePosition(tag.tag) && hasTypePosition || hasNameOrNamepathPosition;
-    const mustHaveEither = utils.tagMustHaveEitherTypeOrNamePosition(tag.tag);
-
-    if (tag.tag === 'borrows') {
-      const thisNamepath = tag.description.replace(asExpression, '');
-
-      if (!asExpression.test(tag.description) || !thisNamepath) {
-        report(`@borrows must have an "as" expression. Found "${tag.description}"`, null, tag);
-        return;
-      }
-
-      if (validNamepathParsing(thisNamepath, 'borrows')) {
-        const thatNamepath = tag.name;
-        validNamepathParsing(thatNamepath);
-      }
-    } else {
-      if (mustHaveEither && !hasEither && !mustHaveTypePosition) {
-        report(`Tag @${tag.tag} must have either a type or namepath`, null, tag);
-        return;
-      }
-
-      if (hasTypePosition) {
-        validTypeParsing(tag.type);
-      } else if (mustHaveTypePosition) {
-        report(`Tag @${tag.tag} must have a type`, null, tag);
-      }
-
-      if (hasNameOrNamepathPosition) {
-        validNamepathParsing(tag.name, tag.tag);
-      } else if (mustHaveNameOrNamepathPosition) {
-        report(`Tag @${tag.tag} must have a name/namepath`, null, tag);
-      }
-    }
-  });
-}, {
-  iterateAllJsdocs: true,
-  meta: {
-    schema: [{
-      additionalProperies: false,
-      properties: {
-        allowEmptyNamepaths: {
-          default: true,
-          type: 'boolean'
-        },
-        checkSeesForNamepaths: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }],
-    type: 'suggestion'
-  }
-});
-
-exports.default = _default;
-module.exports = exports.default;
-//# sourceMappingURL=validTypes.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js.map b/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js.map
deleted file mode 100644
index 3e38caa..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/rules/validTypes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/rules/validTypes.js"],"names":["asExpression","jsdoc","report","utils","context","options","allowEmptyNamepaths","checkSeesForNamepaths","tags","forEach","tag","validNamepathParsing","namepath","tagName","error","handled","includes","endChar","slice","memberofError","startChar","charAt","validTypeParsing","type","hasTypePosition","tagMightHaveTypePosition","Boolean","mustHaveTypePosition","tagMustHaveTypePosition","hasNameOrNamepathPosition","tagMightHaveNamePosition","name","mustHaveNameOrNamepathPosition","tagMustHaveNamePosition","hasEither","tagMightHaveEitherTypeOrNamePosition","mustHaveEither","tagMustHaveEitherTypeOrNamePosition","thisNamepath","description","replace","test","thatNamepath","iterateAllJsdocs","meta","schema","additionalProperies","properties","default"],"mappings":"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","sourcesContent":["import {parse} from 'jsdoctypeparser';\nimport iterateJsdoc from '../iterateJsdoc';\nimport warnRemovedSettings from '../warnRemovedSettings';\n\nconst asExpression = /as\\s+/u;\n\nexport default iterateJsdoc(({\n  jsdoc,\n  report,\n  utils,\n  context,\n}) => {\n  warnRemovedSettings(context, 'valid-types');\n\n  const {\n    allowEmptyNamepaths = true,\n    checkSeesForNamepaths = false,\n  } = context.options[0] || {};\n\n  if (!jsdoc.tags) {\n    return;\n  }\n  jsdoc.tags.forEach((tag) => {\n    const validNamepathParsing = function (namepath, tagName) {\n      try {\n        parse(namepath);\n      } catch (error) {\n        let handled = false;\n\n        if (tagName) {\n          if (['memberof', 'memberof!'].includes(tagName)) {\n            const endChar = namepath.slice(-1);\n            if (['#', '.', '~'].includes(endChar)) {\n              try {\n                parse(namepath.slice(0, -1));\n                handled = true;\n              } catch (memberofError) {\n                // Use the original error for including the whole type\n              }\n            }\n          } else if (tagName === 'borrows') {\n            const startChar = namepath.charAt();\n            if (['#', '.', '~'].includes(startChar)) {\n              try {\n                parse(namepath.slice(1));\n                handled = true;\n              } catch (memberofError) {\n                // Use the original error for including the whole type\n              }\n            }\n          }\n        }\n\n        if (!handled) {\n          report(`Syntax error in namepath: ${namepath}`, null, tag);\n\n          return false;\n        }\n      }\n\n      return true;\n    };\n\n    const validTypeParsing = function (type) {\n      try {\n        parse(type);\n      } catch (error) {\n        report(`Syntax error in type: ${type}`, null, tag);\n\n        return false;\n      }\n\n      return true;\n    };\n\n    const hasTypePosition = utils.tagMightHaveTypePosition(tag.tag) && Boolean(tag.type);\n    const mustHaveTypePosition = utils.tagMustHaveTypePosition(tag.tag);\n\n    const hasNameOrNamepathPosition = utils.tagMightHaveNamePosition(tag.tag) && Boolean(tag.name) && !(tag.tag === 'see' && !checkSeesForNamepaths);\n    const mustHaveNameOrNamepathPosition = utils.tagMustHaveNamePosition(tag.tag) && !allowEmptyNamepaths;\n\n    const hasEither = utils.tagMightHaveEitherTypeOrNamePosition(tag.tag) && hasTypePosition || hasNameOrNamepathPosition;\n    const mustHaveEither = utils.tagMustHaveEitherTypeOrNamePosition(tag.tag);\n\n    if (tag.tag === 'borrows') {\n      const thisNamepath = tag.description.replace(asExpression, '');\n\n      if (!asExpression.test(tag.description) || !thisNamepath) {\n        report(`@borrows must have an \"as\" expression. Found \"${tag.description}\"`, null, tag);\n\n        return;\n      }\n\n      if (validNamepathParsing(thisNamepath, 'borrows')) {\n        const thatNamepath = tag.name;\n\n        validNamepathParsing(thatNamepath);\n      }\n    } else {\n      if (mustHaveEither && !hasEither && !mustHaveTypePosition) {\n        report(`Tag @${tag.tag} must have either a type or namepath`, null, tag);\n\n        return;\n      }\n\n      if (hasTypePosition) {\n        validTypeParsing(tag.type);\n      } else if (mustHaveTypePosition) {\n        report(`Tag @${tag.tag} must have a type`, null, tag);\n      }\n\n      if (hasNameOrNamepathPosition) {\n        validNamepathParsing(tag.name, tag.tag);\n      } else if (mustHaveNameOrNamepathPosition) {\n        report(`Tag @${tag.tag} must have a name/namepath`, null, tag);\n      }\n    }\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    schema: [\n      {\n        additionalProperies: false,\n        properties: {\n          allowEmptyNamepaths: {\n            default: true,\n            type: 'boolean',\n          },\n          checkSeesForNamepaths: {\n            default: false,\n            type: 'boolean',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"file":"validTypes.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/tagNames.js b/node_modules/eslint-plugin-jsdoc/dist/tagNames.js
deleted file mode 100644
index 5374ebd..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/tagNames.js
+++ /dev/null
@@ -1,148 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.typeScriptTags = exports.closureTags = exports.jsdocTags = void 0;
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-const jsdocTagsUndocumented = {
-  // Undocumented but present; see
-  // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802
-  // https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594
-  modifies: []
-};
-
-const jsdocTags = _objectSpread({}, jsdocTagsUndocumented, {
-  abstract: ['virtual'],
-  access: [],
-  alias: [],
-  async: [],
-  augments: ['extends'],
-  author: [],
-  borrows: [],
-  callback: [],
-  class: ['constructor'],
-  classdesc: [],
-  constant: ['const'],
-  constructs: [],
-  copyright: [],
-  default: ['defaultvalue'],
-  deprecated: [],
-  description: ['desc'],
-  enum: [],
-  event: [],
-  example: [],
-  exports: [],
-  external: ['host'],
-  file: ['fileoverview', 'overview'],
-  fires: ['emits'],
-  function: ['func', 'method'],
-  generator: [],
-  global: [],
-  hideconstructor: [],
-  ignore: [],
-  implements: [],
-  inheritdoc: [],
-  inner: [],
-  instance: [],
-  interface: [],
-  kind: [],
-  lends: [],
-  license: [],
-  listens: [],
-  member: ['var'],
-  memberof: [],
-  'memberof!': [],
-  mixes: [],
-  mixin: [],
-  module: [],
-  name: [],
-  namespace: [],
-  override: [],
-  package: [],
-  param: ['arg', 'argument'],
-  private: [],
-  property: ['prop'],
-  protected: [],
-  public: [],
-  readonly: [],
-  requires: [],
-  returns: ['return'],
-  see: [],
-  since: [],
-  static: [],
-  summary: [],
-  this: [],
-  throws: ['exception'],
-  todo: [],
-  tutorial: [],
-  type: [],
-  typedef: [],
-  variation: [],
-  version: [],
-  yields: ['yield']
-});
-
-exports.jsdocTags = jsdocTags;
-
-const typeScriptTags = _objectSpread({}, jsdocTags, {
-  // `@template` is also in TypeScript per:
-  //      https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc
-  template: []
-});
-
-exports.typeScriptTags = typeScriptTags;
-const undocumentedClosureTags = {
-  // These are in Closure source but not in jsdoc source nor in the Closure
-  //  docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java
-  closurePrimitive: [],
-  customElement: [],
-  expose: [],
-  hidden: [],
-  idGenerator: [],
-  meaning: [],
-  mixinClass: [],
-  mixinFunction: [],
-  ngInject: [],
-  owner: [],
-  typeSummary: [],
-  wizaction: []
-};
-
-const closureTags = _objectSpread({}, typeScriptTags, {}, undocumentedClosureTags, {
-  // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler
-  // These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js
-  //   except for the experimental `noinline` and the casing differences noted below
-  // Defined as a synonym of `const` in jsdoc `definitions.js`
-  define: [],
-  dict: [],
-  export: [],
-  externs: [],
-  final: [],
-  // With casing distinct from jsdoc `definitions.js`
-  implicitCast: [],
-  // With casing distinct from jsdoc `definitions.js`
-  inheritDoc: [],
-  noalias: [],
-  nocollapse: [],
-  nocompile: [],
-  noinline: [],
-  nosideeffects: [],
-  polymer: [],
-  polymerBehavior: [],
-  preserve: [],
-  // Defined as a synonym of `interface` in jsdoc `definitions.js`
-  record: [],
-  struct: [],
-  suppress: [],
-  unrestricted: []
-});
-
-exports.closureTags = closureTags;
-//# sourceMappingURL=tagNames.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/tagNames.js.map b/node_modules/eslint-plugin-jsdoc/dist/tagNames.js.map
deleted file mode 100644
index d291a86..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/tagNames.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/tagNames.js"],"names":["jsdocTagsUndocumented","modifies","jsdocTags","abstract","access","alias","async","augments","author","borrows","callback","class","classdesc","constant","constructs","copyright","default","deprecated","description","enum","event","example","exports","external","file","fires","function","generator","global","hideconstructor","ignore","implements","inheritdoc","inner","instance","interface","kind","lends","license","listens","member","memberof","mixes","mixin","module","name","namespace","override","package","param","private","property","protected","public","readonly","requires","returns","see","since","static","summary","this","throws","todo","tutorial","type","typedef","variation","version","yields","typeScriptTags","template","undocumentedClosureTags","closurePrimitive","customElement","expose","hidden","idGenerator","meaning","mixinClass","mixinFunction","ngInject","owner","typeSummary","wizaction","closureTags","define","dict","export","externs","final","implicitCast","inheritDoc","noalias","nocollapse","nocompile","noinline","nosideeffects","polymer","polymerBehavior","preserve","record","struct","suppress","unrestricted"],"mappings":"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","sourcesContent":["const jsdocTagsUndocumented = {\n  // Undocumented but present; see\n  // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802\n  // https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594\n  modifies: [],\n};\n\nconst jsdocTags = {\n  ...jsdocTagsUndocumented,\n  abstract: [\n    'virtual',\n  ],\n  access: [],\n  alias: [],\n  async: [],\n  augments: [\n    'extends',\n  ],\n  author: [],\n  borrows: [],\n  callback: [],\n  class: [\n    'constructor',\n  ],\n  classdesc: [],\n  constant: [\n    'const',\n  ],\n  constructs: [],\n  copyright: [],\n  default: [\n    'defaultvalue',\n  ],\n  deprecated: [],\n  description: [\n    'desc',\n  ],\n  enum: [],\n  event: [],\n  example: [],\n  exports: [],\n  external: [\n    'host',\n  ],\n  file: [\n    'fileoverview',\n    'overview',\n  ],\n  fires: [\n    'emits',\n  ],\n  function: [\n    'func',\n    'method',\n  ],\n  generator: [],\n  global: [],\n  hideconstructor: [],\n  ignore: [],\n  implements: [],\n  inheritdoc: [],\n  inner: [],\n  instance: [],\n  interface: [],\n  kind: [],\n  lends: [],\n  license: [],\n  listens: [],\n  member: [\n    'var',\n  ],\n  memberof: [],\n  'memberof!': [],\n  mixes: [],\n  mixin: [],\n\n  module: [],\n  name: [],\n  namespace: [],\n  override: [],\n  package: [],\n  param: [\n    'arg',\n    'argument',\n  ],\n  private: [],\n  property: [\n    'prop',\n  ],\n  protected: [],\n  public: [],\n  readonly: [],\n  requires: [],\n  returns: [\n    'return',\n  ],\n  see: [],\n  since: [],\n  static: [],\n  summary: [],\n\n  this: [],\n  throws: [\n    'exception',\n  ],\n  todo: [],\n  tutorial: [],\n  type: [],\n  typedef: [],\n  variation: [],\n  version: [],\n  yields: [\n    'yield',\n  ],\n};\n\nconst typeScriptTags = {\n  ...jsdocTags,\n\n  // `@template` is also in TypeScript per:\n  //      https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc\n  template: [],\n};\n\nconst undocumentedClosureTags = {\n  // These are in Closure source but not in jsdoc source nor in the Closure\n  //  docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java\n  closurePrimitive: [],\n  customElement: [],\n  expose: [],\n  hidden: [],\n  idGenerator: [],\n  meaning: [],\n  mixinClass: [],\n  mixinFunction: [],\n  ngInject: [],\n  owner: [],\n  typeSummary: [],\n  wizaction: [],\n};\n\nconst closureTags = {\n  ...typeScriptTags,\n  ...undocumentedClosureTags,\n\n  // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler\n  // These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js\n  //   except for the experimental `noinline` and the casing differences noted below\n\n  // Defined as a synonym of `const` in jsdoc `definitions.js`\n  define: [],\n\n  dict: [],\n  export: [],\n  externs: [],\n  final: [],\n\n  // With casing distinct from jsdoc `definitions.js`\n  implicitCast: [],\n\n  // With casing distinct from jsdoc `definitions.js`\n  inheritDoc: [],\n\n  noalias: [],\n  nocollapse: [],\n  nocompile: [],\n  noinline: [],\n  nosideeffects: [],\n  polymer: [],\n  polymerBehavior: [],\n  preserve: [],\n\n  // Defined as a synonym of `interface` in jsdoc `definitions.js`\n  record: [],\n\n  struct: [],\n  suppress: [],\n\n  unrestricted: [],\n};\n\nexport {jsdocTags, closureTags, typeScriptTags};\n"],"file":"tagNames.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js b/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js
deleted file mode 100644
index 6f0e15a..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js
+++ /dev/null
@@ -1,113 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = warnRemovedSettings;
-
-var _WarnSettings = _interopRequireDefault(require("./WarnSettings"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const warnSettings = (0, _WarnSettings.default)();
-/**
- * @typedef {(
- *     "require-jsdoc"
- *   | "require-returns"
- *   | "valid-types"
- *   | "require-example"
- *   | "check-examples"
- * )} RulesWithMovedSettings
- */
-
-/**
- * @param {object} obj
- * @param {string} property
- * @returns {boolean}
- */
-
-const has = (obj, property) => {
-  return Object.prototype.hasOwnProperty.call(obj, property);
-};
-/**
- *
- * @param {RulesWithMovedSettings} ruleName
- * @returns {string[]}
- */
-
-
-const getMovedSettings = ruleName => {
-  switch (ruleName) {
-    case 'require-jsdoc':
-      return ['exemptEmptyFunctions'];
-
-    case 'require-returns':
-      return ['forceRequireReturn'];
-
-    case 'valid-types':
-      return ['allowEmptyNamepaths', 'checkSeesForNamepaths'];
-
-    case 'require-example':
-      return ['avoidExampleOnConstructors'];
-
-    case 'check-examples':
-      return ['captionRequired', 'exampleCodeRegex', 'rejectExampleCodeRegex', 'allowInlineConfig', 'noDefaultExampleRules', 'matchingFileName', 'configFile', // The old name for `checkEslintrc`
-      'eslintrcForExamples', 'baseConfig', 'reportUnusedDisableDirectives'];
-  }
-  /* istanbul ignore next */
-
-
-  return [];
-};
-/**
- * @param {object} context
- * @param {RulesWithMovedSettings} ruleName
- */
-
-
-function warnRemovedSettings(context, ruleName) {
-  const movedSettings = getMovedSettings(ruleName);
-
-  if (!context.settings || !context.settings.jsdoc) {
-    return;
-  }
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = movedSettings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      const setting = _step.value;
-
-      if (has(context.settings.jsdoc, setting) && !warnSettings.hasBeenWarned(context, setting)) {
-        context.report({
-          loc: {
-            start: {
-              column: 1,
-              line: 1
-            }
-          },
-          message: `\`settings.jsdoc.${setting}\` has been removed, ` + `use options in the rule \`${ruleName}\` instead.`
-        });
-        warnSettings.markSettingAsWarned(context, setting);
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return != null) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-}
-
-module.exports = exports.default;
-//# sourceMappingURL=warnRemovedSettings.js.map
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js.map b/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js.map
deleted file mode 100644
index 0f1042b..0000000
--- a/node_modules/eslint-plugin-jsdoc/dist/warnRemovedSettings.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/warnRemovedSettings.js"],"names":["warnSettings","has","obj","property","Object","prototype","hasOwnProperty","call","getMovedSettings","ruleName","warnRemovedSettings","context","movedSettings","settings","jsdoc","setting","hasBeenWarned","report","loc","start","column","line","message","markSettingAsWarned"],"mappings":";;;;;;;AAAA;;;;AAEA,MAAMA,YAAY,GAAG,4BAArB;AAEA;;;;;;;;;;AAUA;;;;;;AAKA,MAAMC,GAAG,GAAG,CAACC,GAAD,EAAMC,QAAN,KAAmB;AAC7B,SAAOC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,GAArC,EAA0CC,QAA1C,CAAP;AACD,CAFD;AAIA;;;;;;;AAKA,MAAMK,gBAAgB,GAAIC,QAAD,IAAc;AACrC,UAAQA,QAAR;AACA,SAAK,eAAL;AACE,aAAO,CAAC,sBAAD,CAAP;;AACF,SAAK,iBAAL;AACE,aAAO,CAAC,oBAAD,CAAP;;AACF,SAAK,aAAL;AACE,aAAO,CAAC,qBAAD,EAAwB,uBAAxB,CAAP;;AACF,SAAK,iBAAL;AACE,aAAO,CAAC,4BAAD,CAAP;;AACF,SAAK,gBAAL;AACE,aAAO,CACL,iBADK,EAEL,kBAFK,EAGL,wBAHK,EAIL,mBAJK,EAKL,uBALK,EAML,kBANK,EAOL,YAPK,EASL;AACA,2BAVK,EAWL,YAXK,EAYL,+BAZK,CAAP;AAVF;AA0BA;;;AACA,SAAO,EAAP;AACD,CA7BD;AA+BA;;;;;;AAIe,SAASC,mBAAT,CAA8BC,OAA9B,EAAuCF,QAAvC,EAAiD;AAC9D,QAAMG,aAAa,GAAGJ,gBAAgB,CAACC,QAAD,CAAtC;;AAEA,MAAI,CAACE,OAAO,CAACE,QAAT,IAAqB,CAACF,OAAO,CAACE,QAAR,CAAiBC,KAA3C,EAAkD;AAChD;AACD;;AAL6D;AAAA;AAAA;;AAAA;AAO9D,yBAAsBF,aAAtB,8HAAqC;AAAA,YAA1BG,OAA0B;;AACnC,UACEd,GAAG,CAACU,OAAO,CAACE,QAAR,CAAiBC,KAAlB,EAAyBC,OAAzB,CAAH,IACA,CAACf,YAAY,CAACgB,aAAb,CAA2BL,OAA3B,EAAoCI,OAApC,CAFH,EAGE;AACAJ,QAAAA,OAAO,CAACM,MAAR,CAAe;AACbC,UAAAA,GAAG,EAAE;AACHC,YAAAA,KAAK,EAAE;AACLC,cAAAA,MAAM,EAAE,CADH;AAELC,cAAAA,IAAI,EAAE;AAFD;AADJ,WADQ;AAObC,UAAAA,OAAO,EAAG,oBAAmBP,OAAQ,uBAA5B,GACN,6BAA4BN,QAAS;AAR3B,SAAf;AAUAT,QAAAA,YAAY,CAACuB,mBAAb,CAAiCZ,OAAjC,EAA0CI,OAA1C;AACD;AACF;AAxB6D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyB/D","sourcesContent":["import WarnSettings from './WarnSettings';\n\nconst warnSettings = WarnSettings();\n\n/**\n * @typedef {(\n *     \"require-jsdoc\"\n *   | \"require-returns\"\n *   | \"valid-types\"\n *   | \"require-example\"\n *   | \"check-examples\"\n * )} RulesWithMovedSettings\n */\n\n/**\n * @param {object} obj\n * @param {string} property\n * @returns {boolean}\n */\nconst has = (obj, property) => {\n  return Object.prototype.hasOwnProperty.call(obj, property);\n};\n\n/**\n *\n * @param {RulesWithMovedSettings} ruleName\n * @returns {string[]}\n */\nconst getMovedSettings = (ruleName) => {\n  switch (ruleName) {\n  case 'require-jsdoc':\n    return ['exemptEmptyFunctions'];\n  case 'require-returns':\n    return ['forceRequireReturn'];\n  case 'valid-types':\n    return ['allowEmptyNamepaths', 'checkSeesForNamepaths'];\n  case 'require-example':\n    return ['avoidExampleOnConstructors'];\n  case 'check-examples':\n    return [\n      'captionRequired',\n      'exampleCodeRegex',\n      'rejectExampleCodeRegex',\n      'allowInlineConfig',\n      'noDefaultExampleRules',\n      'matchingFileName',\n      'configFile',\n\n      // The old name for `checkEslintrc`\n      'eslintrcForExamples',\n      'baseConfig',\n      'reportUnusedDisableDirectives',\n    ];\n  }\n\n  /* istanbul ignore next */\n  return [];\n};\n\n/**\n * @param {object} context\n * @param {RulesWithMovedSettings} ruleName\n */\nexport default function warnRemovedSettings (context, ruleName) {\n  const movedSettings = getMovedSettings(ruleName);\n\n  if (!context.settings || !context.settings.jsdoc) {\n    return;\n  }\n\n  for (const setting of movedSettings) {\n    if (\n      has(context.settings.jsdoc, setting) &&\n      !warnSettings.hasBeenWarned(context, setting)\n    ) {\n      context.report({\n        loc: {\n          start: {\n            column: 1,\n            line: 1,\n          },\n        },\n        message: `\\`settings.jsdoc.${setting}\\` has been removed, ` +\n          `use options in the rule \\`${ruleName}\\` instead.`,\n      });\n      warnSettings.markSettingAsWarned(context, setting);\n    }\n  }\n}\n"],"file":"warnRemovedSettings.js"}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/node_modules/.bin/jsdoctypeparser b/node_modules/eslint-plugin-jsdoc/node_modules/.bin/jsdoctypeparser
deleted file mode 120000
index 9a09353..0000000
--- a/node_modules/eslint-plugin-jsdoc/node_modules/.bin/jsdoctypeparser
+++ /dev/null
@@ -1 +0,0 @@
-../../../jsdoctypeparser/bin/jsdoctypeparser
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/node_modules/.bin/semver b/node_modules/eslint-plugin-jsdoc/node_modules/.bin/semver
deleted file mode 120000
index c3277a7..0000000
--- a/node_modules/eslint-plugin-jsdoc/node_modules/.bin/semver
+++ /dev/null
@@ -1 +0,0 @@
-../../../semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsdoc/package.json b/node_modules/eslint-plugin-jsdoc/package.json
deleted file mode 100644
index 998336f..0000000
--- a/node_modules/eslint-plugin-jsdoc/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
-  "author": {
-    "email": "gajus@gajus.com",
-    "name": "Gajus Kuizinas",
-    "url": "http://gajus.com"
-  },
-  "dependencies": {
-    "comment-parser": "^0.7.2",
-    "debug": "^4.1.1",
-    "jsdoctypeparser": "^6.1.0",
-    "lodash": "^4.17.15",
-    "regextras": "^0.7.0",
-    "semver": "^6.3.0",
-    "spdx-expression-parse": "^3.0.0"
-  },
-  "description": "JSDoc linting rules for ESLint.",
-  "devDependencies": {
-    "@babel/cli": "^7.8.4",
-    "@babel/core": "^7.8.6",
-    "@babel/node": "^7.8.4",
-    "@babel/plugin-transform-flow-strip-types": "^7.8.3",
-    "@babel/preset-env": "^7.8.6",
-    "@babel/register": "^7.8.6",
-    "@typescript-eslint/parser": "^2.21.0",
-    "babel-eslint": "^10.1.0",
-    "babel-plugin-add-module-exports": "^1.0.2",
-    "babel-plugin-istanbul": "^6.0.0",
-    "chai": "^4.2.0",
-    "eslint": "6.8.0",
-    "eslint-config-canonical": "^19.0.3",
-    "gitdown": "^3.1.3",
-    "glob": "^7.1.6",
-    "husky": "^4.2.3",
-    "mocha": "^7.1.0",
-    "nyc": "^15.0.0",
-    "semantic-release": "^17.0.4",
-    "typescript": "^3.8.3"
-  },
-  "engines": {
-    "node": ">=8"
-  },
-  "husky": {
-    "hooks": {
-      "pre-push": "npm run lint && npm run test && npm run build && npm run check-readme"
-    }
-  },
-  "keywords": [
-    "eslint",
-    "plugin",
-    "jsdoc"
-  ],
-  "license": "BSD-3-Clause",
-  "main": "./dist/index.js",
-  "name": "eslint-plugin-jsdoc",
-  "peerDependencies": {
-    "eslint": "^6.0.0"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/gajus/eslint-plugin-jsdoc"
-  },
-  "scripts": {
-    "build": "rm -fr ./dist && NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored",
-    "check-readme": "babel-node ./src/bin/generateReadme.js --check",
-    "create-readme": "babel-node ./src/bin/generateReadme.js",
-    "lint-fix": "eslint --report-unused-disable-directives --fix ./src ./test",
-    "lint": "eslint --report-unused-disable-directives ./src ./test",
-    "test-cov": "BABEL_ENV=test nyc mocha --recursive --require @babel/register --reporter progress --timeout 9000",
-    "test-no-cov": "BABEL_ENV=test mocha --recursive --require @babel/register --reporter progress --timeout 9000",
-    "test-index": "BABEL_ENV=test mocha --recursive --require @babel/register --reporter progress --timeout 9000 test/rules/index.js",
-    "test": "BABEL_ENV=test nyc --reporter text-summary mocha --recursive --require @babel/register --reporter progress --timeout 9000"
-  },
-  "nyc": {
-    "require": [
-      "@babel/register"
-    ],
-    "sourceMap": false,
-    "instrument": false,
-    "include": [
-      "src/"
-    ],
-    "check-coverage": true,
-    "branches": 100,
-    "lines": 100,
-    "functions": 100,
-    "statements": 100
-  },
-  "version": "22.0.0"
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/.babelrc b/node_modules/eslint-plugin-jsx-a11y/.babelrc
deleted file mode 100644
index 2159bf6..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/.babelrc
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "presets": [
-    [
-      "airbnb",
-      {
-        "targets": {
-          "node": 4
-        }
-      }
-    ]
-  ],
-  "plugins": ["@babel/plugin-transform-flow-strip-types"]
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/.eslintignore b/node_modules/eslint-plugin-jsx-a11y/.eslintignore
deleted file mode 100644
index 869feff..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/.eslintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules/
-reports/
-lib/
diff --git a/node_modules/eslint-plugin-jsx-a11y/.eslintrc b/node_modules/eslint-plugin-jsx-a11y/.eslintrc
deleted file mode 100644
index 0151770..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/.eslintrc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  extends: [
-    "airbnb-base",
-    "plugin:flowtype/recommended"
-  ],
-  parser: "babel-eslint",
-  plugins: [
-    "flowtype"
-  ],
-  rules: {
-    'max-len': 'off',
-    'no-template-curly-in-string': 'off',
-  }
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/CHANGELOG.md b/node_modules/eslint-plugin-jsx-a11y/CHANGELOG.md
deleted file mode 100644
index cad7991..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/CHANGELOG.md
+++ /dev/null
@@ -1,408 +0,0 @@
-6.2.3 / 2019-06-30
-=================
-- [617] Add @babel/runtime to the dependencies
-
-6.2.2 / 2019-06-29
-=================
-- Update jsx-ast-utils to v2.2.1
-- Add @babel/cli to the dev dependencies
-- Update ESLint to v6
-- Update jsx-ast-utils to 2.2.0
-- Update flow-bin to version 0.102.0
-- [589] Allow expression statements for attribute values in no-noninteractive-tabindexlow-bin-0.101.0
-- [583] Allow expression values in attributes by configurationrror
-- [596] Adding a test case for no-static-element-interactionseper/flow-bin-0.101.0) Merge branch 'master' into greenkeeper/flow-bin-0.101.0
-- Only run branch test coverage on the master branch
-- chore(package): update flow-bin to version 0.100.0
-- Allow select as a valid child of label.
-- Allow Node 4 / ESLint 3 failure to unblock ESLint upgrade in PR #568
-- chore(package): update flow-bin to version 0.99.0
-- Remove rootDir from Jest path configs
-- (fix) Template literals with undefined evaluate to the string undefined.
-- adds more tests to “anchor-is-valid”
-- Fixes “anchor-is-valid” false positive for hrefs starting with the word “javascript”
-- chore(package): update eslint-plugin-flowtype to version 3.5.0
-- Modified no-static-element-interactions to pass on non-literal roles.
-- Added isNonLiteralProperty util method
-- [#399] Account for spread in parser options
-- [552] control-has-associated-label should allow generic links
-- [issue 392] ul role='list' test case
-- chore(package): update eslint to version 5.15.2
-- chore(package): update flow-bin to version 0.95.0
-- chore(package): update expect to version 24.3.1
-- Fix typo: defintions > definitions
-- docs: add proper title to links to axe website for media-has-caption
-- docs: removes deprecated rule label-has-for
-- docs: fix typo and couple grammatical errors in Readme
-- Ignore null/undefined values in role-supports-aria-props rule
-- Ignore undefined values in aria-proptypes rule
-- Ignore null values in aria-proptypes rule
-- set target for node 4
-
-6.2.1 / 2019-02-03
-=================
-- 9980e45 [fix] Prevent Error when JSXSpreadAttribute is passed to isSemanticRoleElement
-
-6.2.0 / 2019-01-25
-=================
-- 5650674 [new rule] control-has-associated-label checks interactives for a label
-- f234698 [docs] add How to manage IDs
-- 9924d03 [docs] document jsx-a11y/label-has-associated-control assert option
-- 77b9870 [docs] Add newlines below headings
-- 8244e43 [docs] Add syntax highlighting to example
-- 26f41c8 [docs] Change explanation for role="presentation" escape hatch
-- 33a1f94 [fix] - Purely decorative emojis do not need descriptions.
-- 29d20f7 [fix] (package): update emoji-regex to version 7.0.2
-- 0b63f73 [chore] (package): update flow-bin to version 0.88.0
-- baa1344 [fix] Disable jsx-a11y/label-has-for in recommended
-- 2c5fb06 [chore] (package): update jscodeshift to version 0.6.0
-- 87debc0 [fix] corrected no-noninteractive-element-to-interactive-role.md file
-- d56265b [chore] (package): update flow-bin to version 0.87.0
-- 477966f [fix] Update test for implicit role of `img`
-- f484ce3 [fix] No implicit role for `<img>` with `alt=""`
-- 6c33bcb [fix] Add select to the list of default control elements in label-has-associated-control
-- 011f8d9 [fix] Dialog and Alert roles can host keyboard listeners
-- 0f6a8af [fix] More easier `plugin:jsx-a11y/{recommended,strict}` configs
-- 3844248 [fix] Mark the replacement for label-has-for
-- 93265cb [fix] normalizedValues to values
-- 651366c [fix] Make aria-role case sensitive
-- 56d3b9a [fix] [484] Fix role-has-required-aria-props for semantic elements like input[checkbox]
-- 46e9abd [fix] Handle the type={truthy} case in jsx
-
-6.1.2 / 2018-10-05
-=================
-- [fix] Add link-type styling recommendation to anchor-is-valid #486
-- [fix] `label-has-for`: `textarea`s are inputs too #470
-
-6.1.1 / 2018-07-03
-==================
-- [fix] aria-proptypes support for idlist, #454
-- [fix] Image with expanded props throws 'The prop must be a JSXAttribute collected by the AST parser.', #459
-- [fix] label-has-for: broken in v6.1.0, #455
-
-6.1.0 / 2018-06-26
-==================
-- [new] Support for eslint v5, #451
-- [new] aria-query updated to latest version
-- [new] eslint-config-airbnb-base updated to the latest version
-- [deprecate] The rule label-has-for is deprecated and replaced with label-has-associated-control
-- [fix] heading-has-content updated to work with custom components, #431
-- [fix] aria-errormessage prop is now a valid ARIA property, #424
-
-6.0.2 / 2017-06-28
-==================
-- [fix] Prefix directories in `.npmignore` with `/` so it only matches the top-level directory
-
-
-6.0.1 / 2017-06-28
-==================
-- [temporary] Remove `src` and `flow` from package to resolve flow issues for consuming packages.
-
-
-6.0.0 / 2017-06-05
-=================
-- [new] Add rule `anchor-is-valid`. See documentation for configuration options. Thanks @AlmeroSteyn.
-- [breaking] `href-no-hash` replaced with `anchor-is-valid` in the recommended and strict configs. Use the `invalidHref` aspect (active by default) in `anchor-is-valid` to continue to apply the behavior provided by `href-no-hash`.
-- [breaking] Removed support for ESLint peer dependency at version ^2.10.2.
-- [update] The rule `label-has-for` now allows inputs nested in label tags. Previously it was strict about requiring a `for` attribute. Thanks @ignatiusreza and @mjaltamirano.
-- [update] New configuration for `interactive-supports-focus`. Recommended and strict configs for now contain a trimmed-down whitelist of roles that will be checked.
-- [fix] Incompatibility between node version 4 and 5. Thanks @evilebottnawi.
-- [fix] Missing README entry for `media-has-caption`. Thanks @ismail-syed.
-- [fix] README updates explaining recommended and strict configs. Thanks @Donaldini.
-- [fix] Updated to aria-query@0.7.0, which includes new ARIA 1.1 properties. Previously, the `aria-props` rule incorrectly threw errors for these new properties.
-
-5.1.1 / 2017-07-03
-==================
- - [fix] revert v6 breaking changes unintentionally added in v5.1 (#283)
-
-5.1.0 / 2017-06-26
-==================
- - [new] Support eslint v4. (#267)
- - [new] `label-has-for`: add "required" option to allow customization (#240)
- - [new] add `anchor-is-valid` (#224)
- - [new] `interactive-supports-focus`: Split interactive supports focus into tabbable and focusable cases (#236)
- - [new] `anchor-is-valid`: add `aspects` option (#251)
- - [Deps] Bump aria-query to 0.7.0
-
-5.0.3 / 2017-05-16
-==================
-- [fix] Remove `flow` directory from `.npmignore` to accommodate explicit imports from `v5.0.2`.
-
-
-5.0.2 / 2017-05-16
-==================
-- [fix] Explicitly import flow types to resolve flow failures in consuming projects.
-
-
-5.0.1 / 2017-05-07
-==================
-- [fix] Polyfill Array.includes for node < 6 support.
-
-
-5.0.0 / 2017-05-05
-==================
-- [breaking] Refactor `img-has-alt` rule into `alt-text` rule
-- [breaking] Rule `onclick-has-role` is removed. Replaced with `no-static-element-interactions` and `no-noninteractive-element-interactions`.
-- [breaking] Rule `onclick-has-focus` is removed. Replaced with `interactive-supports-focus`.
-- [new] - Add rule `media-has-caption` rule
-- [new] - Add `ignoreNonDOM` option to `no-autofocus`.
-- [new] - Add rule `no-interactive-element-to-noninteractive-role`
-- [new] - Add rule `no-noninteractive-element-to-interactive-role`
-- [new] - Add rule `no-noninteractive-tabindex`
-- [new] - Configs split into "recommended" and "strict".
-- [enhanced] - Configuration options added to `no-static-element-interactions` and `no-noninteractive-element-interactions`. Options allow for fine-tuning of elements and event handlers to check.
-
-
-4.0.0 / 2017-02-04
-==================
-Add new rules:
-- `jsx-a11y/accessible-emoji`
-- `jsx-a11y/aria-activedescendant-has-tabindex`
-- `jsx-a11y/iframe-has-title`
-- `jsx-a11y/no-autofocus`
-- `jsx-a11y/no-distracting-elements` *(breaking: consolidated no-marquee and no-blink into this rule.)*
-- `jsx-a11y/no-redundant-roles`
-- [fix] - redundant-alt to only check full words
-- [docs] - Documentation upgrades across the board.
-- [new] - Add `ignoreNonDom`
-- [dev] - Add script to scaffold new rule creation.
-
-
-3.0.2 / 2016-12-14
-==================
-- [fix] - make `aria-invalid` values true and false pass for rule `aria-proptypes`
-
-3.0.1 / 2016-10-11
-==================
-- [breaking] - Update all rule schemas to accept objects. This allows a future schema expansion to not be a breaking change.
-- [breaking] - All rules with schemas that accepted a string OR array, now only allows an array.
-- [new] - `href-no-hash` accepts new schema property `specialLink` to check for custom `href` properties on elements. (fixes [#76](https://github.com/evcohen/eslint-plugin-jsx-a11y/issues/76))
-- [breaking][fix] - `img-has-alt` now prefers `alt=""` over `role="presentation"`. You can set both, but not just `role="presentation"` by itself to ensure a11y across all devices.
-
-Note - see [rule documentation](https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules) for updated schemas.
-
-2.2.3 / 2016-10-08
-==================
-- [fix] - Add `switch` aria role.
-- [devDependencies] - Updgrade dev dependencies and fix linting issues.
-
-
-2.2.2 / 2016-09-12
-==================
-- [fix] `x-has-content` rules now pass with children prop set.
-
-
-2.2.1 / 2016-08-31
-==================
-- [fix] Update `tablist` role to include missing property `aria-multiselectable`.
-
-
-2.2.0 / 2016-08-26
-==================
-- [new] Add `click-events-have-key-events` rule.
-- [new] Add `no-static-element-interactions` rule.
-- [devDependencies] Upgrade `eslint`, `eslint-config-airbnb`, `mocha` to latest.
-- [lint] Fix all new linting errors with upgrade
-- [nit] Use `error` syntax over `2` syntax in recommended config.
-
-
-2.1.0 / 2016-08-10
-==================
-- [fix] Require `aria-checked` for roles that are subclasses of `checkbox`
-- [new] Add `anchor-has-content` rule.
-- [refactor] Use new eslint rule syntax
-- [new] Add support for custom words in `img-redundant-alt` (mainly for i18n).
-
-
-2.0.1 / 2016-07-13
-==================
-- [fix] JSXElement support in expression handlers for prop types.
-- [fix] `heading-has-content`: dangerouslySetInnerHTML will pass.
-
-
-2.0.0 / 2016-07-12
-==================
-- [breaking] Scope `no-onchange` rule to select menu elements only.
-
-
-1.5.5 / 2016-07-05
-==================
-- [fix] Add `eslint` v3 as a `peerDependency`.
-
-
-1.5.4 / 2016-07-05
-==================
-- [fix] Add `eslint` as a `peerDependency`.
-
-
-1.5.3 / 2016-06-16
-==================
-- [fix] Fix crash when ``<ELEMENT role />`` for `role-supports-aria-props`.
-
-
-1.5.2 / 2016-06-16
-==================
-- [fix] Fix `img-redundant-alt` rule to use `getLiteralPropValue` from `jsx-ast-utils`.
-
-
-1.5.1 / 2016-06-16
-==================
-- [fix] Fix checking for undefined in `heading-has-content` for children content.
-
-
-1.5.0 / 2016-06-16
-==================
-- [new] Add [heading-has-content](docs/rules/heading-has-content.md) rule.
-- [new] Add [html-has-lang](docs/rules/html-has-lang.md) rule.
-- [new] Add [lang](docs/rules/lang.md) rule.
-- [new] Add [no-marquee](docs/rules/no-marquee.md) rule.
-- [new] Add [scope](docs/rules/scope.md) rule.
-
-
-1.4.2 / 2016-06-10
-==================
-- [new] Integrate with latest `jsx-ast-utils` to use `propName` function. More support for namespaced names on attributes and elements.
-
-
-1.4.1 / 2016-06-10
-==================
-- [fix] Handle spread props in `aria-unsupported-elements` and `role-supports-aria-props` when reporting.
-
-
-1.4.0 / 2016-06-10
-==================
-- [dependency] Integrate [jsx-ast-utils](https://github.com/evcohen/jsx-ast-utils)
-- [fix] Better error reporting for aria-unsupported-elements indicating which prop to remove.
-
-
-1.3.0 / 2016-06-05
-==================
-- [new] Spelling suggestions for incorrect `aria-*` props
-- [fix] Ensure `role` value is a string before converting to lowercase in `img-has-alt` rule.
-
-
-1.2.3 / 2016-06-02
-==================
-- [fix] Handle dynamic `tabIndex` expression values, but still retain validation logic for literal `tabIndex` values.
-
-
-1.2.2 / 2016-05-20
-==================
-- [fix] Fix checks involving the tabIndex attribute that do not account for integer literals
-
-
-1.2.1 / 2016-05-19
-==================
-- [fix] Avoid testing interactivity of wrapper components with same name but different casing
-as DOM elements (such as `Button` vs `button`).
-
-
-1.2.0 / 2016-05-06
-==================
-- [new] Import all roles from DPUB-ARIA.
-
-
-1.1.0 / 2016-05-06
-==================
-- [new] Add expression value handler for `BinaryExpression` type.
-- [new] Add expression value handler for `NewExpression` type.
-- [new] Add expression value handler for `ObjectExpression` type.
-- [fix] Throws error when getting an expression of type without a handler function.
-	- This is for more graceful error handling and better issue reporting.
-
-
-1.0.4 / 2016-04-28
-==================
-- [fix] Add expression value handler for `ConditionalExpression` type.
-
-
-1.0.3 / 2016-04-25
-==================
-- [fix] Fix typo in recommended rules for `onclick-has-focus`.
-
-
-1.0.2 / 2016-04-20
-==================
-- [fix] Add expression value handler for `ThisExpression` type.
-
-
-1.0.1 / 2016-04-19
-==================
-- [fix] Fix build to copy source JSON files to build output.
-
-
-1.0.0 / 2016-04-19
-==================
-- [breaking] Rename `img-uses-alt` to `img-has-alt`
-- [breaking] Rename `onlick-uses-role` to `onclick-has-role`
-- [breaking] Rename `mouse-events-map-to-key-events` to `mouse-events-have-key-events`
-- [breaking] Rename `use-onblur-not-onchange` to `no-onchange`
-- [breaking] Rename `label-uses-for` to `label-has-for`
-- [breaking] Rename `redundant-alt` to `img-redundant-alt`
-- [breaking] Rename `no-hash-href` to `href-no-hash`
-- [breaking] Rename `valid-aria-role` to `aria-role`
-
-- [new] Implement `aria-props` rule
-- [new] Implement `aria-proptypes` rule
-- [new] Implement `aria-unsupported-elements` rule
-- [new] Implement `onclick-has-focus` rule
-- [new] Implement `role-has-required-aria-props` rule
-- [new] Implement `role-supports-aria-props` rule
-- [new] Implement `tabindex-no-positive` rule
-
-
-0.6.2 / 2016-04-08
-==================
-- [fix] Fix rule details for img-uses-alt: allow alt="" or role="presentation".
-
-
-0.6.1 / 2016-04-07
-==================
-- [fix] Do not infer interactivity of components that are not low-level DOM elements.
-
-
-0.6.0 / 2016-04-06
-==================
-- [breaking] Allow alt="" when role="presentation" on img-uses-alt rule.
-- [new] More descriptive error messaging for img-uses-alt rule.
-
-
-0.5.2 / 2016-04-05
-==================
-- [fix] Handle token lists for valid-aria-role.
-
-
-0.5.1 / 2016-04-05
-==================
-- [fix] Handle null valued props for valid-aria-role.
-
-
-0.5.0 / 2016-04-02
-==================
-- [new] Implement valid-aria-role rule. Based on [AX_ARIA_01](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_01)
-
-
-0.4.3 / 2016-03-29
-==================
-- [fix] Handle LogicalExpression attribute types when extracting values. LogicalExpressions are of form `<Component prop={foo || "foobar"} />`
-
-
-0.4.2 / 2016-03-24
-==================
-- [fix] Allow component names of form `Object.Property` i.e. `UX.Layout`
-
-
-0.3.0 / 2016-03-02
-==================
-- [new] Implement [no-hash-href](docs/rules/no-hash-href.md) rule.
-- [fix] Fixed TemplateLiteral AST value building to get more exact values from template strings.
-
-
-0.2.0 / 2016-03-01
-==================
-- [new] Implement [redunant-alt](docs/rules/redundant-alt.md) rule.
-
-
-0.1.2 / 2016-03-01
-==================
-- Initial pre-release.
diff --git a/node_modules/eslint-plugin-jsx-a11y/LICENSE.md b/node_modules/eslint-plugin-jsx-a11y/LICENSE.md
deleted file mode 100644
index a66c74b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/LICENSE.md
+++ /dev/null
@@ -1,8 +0,0 @@
-The MIT License (MIT)
-Copyright (c) 2016 Ethan Cohen
-
-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.
diff --git a/node_modules/eslint-plugin-jsx-a11y/README.md b/node_modules/eslint-plugin-jsx-a11y/README.md
deleted file mode 100644
index bc8c29f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/README.md
+++ /dev/null
@@ -1,298 +0,0 @@
-<p align="center">
-  <a href="https://travis-ci.org/evcohen/eslint-plugin-jsx-a11y">
-    <img src="https://api.travis-ci.org/evcohen/eslint-plugin-jsx-a11y.svg?branch=master"
-         alt="build status">
-  </a>
-  <a href="https://npmjs.org/package/eslint-plugin-jsx-a11y">
-    <img src="https://img.shields.io/npm/v/eslint-plugin-jsx-a11y.svg"
-         alt="npm version">
-  </a>
-  <a href="https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/LICENSE.md">
-    <img src="https://img.shields.io/npm/l/eslint-plugin-jsx-a11y.svg"
-         alt="license">
-  </a>
-  <a href='https://coveralls.io/github/evcohen/eslint-plugin-jsx-a11y?branch=master'>
-    <img src='https://coveralls.io/repos/github/evcohen/eslint-plugin-jsx-a11y/badge.svg?branch=master' alt='Coverage Status' />
-  </a>
-  <a href='https://npmjs.org/package/eslint-plugin-jsx-a11y'>
-    <img src='https://img.shields.io/npm/dt/eslint-plugin-jsx-a11y.svg'
-    alt='Total npm downloads' />
-  </a>
-</p>
-
-# eslint-plugin-jsx-a11y
-
-Static AST checker for accessibility rules on JSX elements.
-
-## Why?
-Ryan Florence built out this awesome runtime-analysis tool called [react-a11y](https://github.com/reactjs/react-a11y). It is super useful. However, since you're probably already using linting in your project, this plugin comes for free and closer to the actual development process. Pairing this plugin with an editor lint plugin, you can bake accessibility standards into your application in real-time.
-
-**Note**: This project does not *replace* react-a11y, but can and should be used in conjunction with it. Static analysis tools cannot determine values of variables that are being placed in props before runtime, so linting will not fail if that value is undefined and/or does not pass the lint rule.
-
-## Installation
-
-**If you are installing this plugin via `eslint-config-airbnb`, please follow [these instructions](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb#eslint-config-airbnb-1).**
-
-You'll first need to install [ESLint](http://eslint.org):
-
-```sh
-# npm
-npm install eslint --save-dev
-
-# yarn
-yarn add eslint --dev
-```
-
-Next, install `eslint-plugin-jsx-a11y`:
-
-```sh
-# npm
-npm install eslint-plugin-jsx-a11y --save-dev
-
-# yarn
-yarn add eslint-plugin-jsx-a11y --dev
-```
-
-**Note:** If you installed ESLint globally (using the `-g` flag in npm, or the `global` prefix in yarn) then you must also install `eslint-plugin-jsx-a11y` globally.
-
-## Usage
-
-Add `jsx-a11y` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
-
-```json
-{
-  "plugins": [
-    "jsx-a11y"
-  ]
-}
-```
-
-
-Then configure the rules you want to use under the rules section.
-
-```json
-{
-  "rules": {
-    "jsx-a11y/rule-name": 2
-  }
-}
-```
-
-
-You can also enable all the recommended or strict rules at once.
-Add `plugin:jsx-a11y/recommended` or `plugin:jsx-a11y/strict` in `extends`:
-
-```json
-{
-  "extends": [
-    "plugin:jsx-a11y/recommended"
-  ]
-}
-```
-
-## Supported Rules
-
-- [accessible-emoji](docs/rules/accessible-emoji.md): Enforce emojis are wrapped in <span> and provide screenreader access.
-- [alt-text](docs/rules/alt-text.md): Enforce all elements that require alternative text have meaningful information to relay back to end user.
-- [anchor-has-content](docs/rules/anchor-has-content.md): Enforce all anchors to contain accessible content.
-- [anchor-is-valid](docs/rules/anchor-is-valid.md): Enforce all anchors are valid, navigable elements.
-- [aria-activedescendant-has-tabindex](docs/rules/aria-activedescendant-has-tabindex.md): Enforce elements with aria-activedescendant are tabbable.
-- [aria-props](docs/rules/aria-props.md): Enforce all `aria-*` props are valid.
-- [aria-proptypes](docs/rules/aria-proptypes.md): Enforce ARIA state and property values are valid.
-- [aria-role](docs/rules/aria-role.md): Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
-- [aria-unsupported-elements](docs/rules/aria-unsupported-elements.md): Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
-- [click-events-have-key-events](docs/rules/click-events-have-key-events.md): Enforce a clickable non-interactive element has at least one keyboard event listener.
-- [heading-has-content](docs/rules/heading-has-content.md): Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
-- [html-has-lang](docs/rules/html-has-lang.md): Enforce `<html>` element has `lang` prop.
-- [iframe-has-title](docs/rules/iframe-has-title.md): Enforce iframe elements have a title attribute.
-- [img-redundant-alt](docs/rules/img-redundant-alt.md): Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
-- [interactive-supports-focus](docs/rules/interactive-supports-focus.md): Enforce that elements with interactive handlers like `onClick` must be focusable.
-- [label-has-associated-control](docs/rules/label-has-associated-control.md): Enforce that a `label` tag has a text label and an associated control.
-- [lang](docs/rules/lang.md): Enforce lang attribute has a valid value.
-- [media-has-caption](docs/rules/media-has-caption.md): Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
-- [mouse-events-have-key-events](docs/rules/mouse-events-have-key-events.md): Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
-- [no-access-key](docs/rules/no-access-key.md): Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreader.
-- [no-autofocus](docs/rules/no-autofocus.md): Enforce autoFocus prop is not used.
-- [no-distracting-elements](docs/rules/no-distracting-elements.md): Enforce distracting elements are not used.
-- [no-interactive-element-to-noninteractive-role](docs/rules/no-interactive-element-to-noninteractive-role.md): Interactive elements should not be assigned non-interactive roles.
-- [no-noninteractive-element-interactions](docs/rules/no-noninteractive-element-interactions.md): Non-interactive elements should not be assigned mouse or keyboard event listeners.
-- [no-noninteractive-element-to-interactive-role](docs/rules/no-noninteractive-element-to-interactive-role.md): Non-interactive elements should not be assigned interactive roles.
-- [no-noninteractive-tabindex](docs/rules/no-noninteractive-tabindex.md): `tabIndex` should only be declared on interactive elements.
-- [no-onchange](docs/rules/no-onchange.md): Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
-- [no-redundant-roles](docs/rules/no-redundant-roles.md): Enforce explicit role property is not the same as implicit/default role property on element.
-- [no-static-element-interactions](docs/rules/no-static-element-interactions.md): Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
-- [role-has-required-aria-props](docs/rules/role-has-required-aria-props.md): Enforce that elements with ARIA roles must have all required attributes for that role.
-- [role-supports-aria-props](docs/rules/role-supports-aria-props.md): Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
-- [scope](docs/rules/scope.md): Enforce `scope` prop is only used on `<th>` elements.
-- [tabindex-no-positive](docs/rules/tabindex-no-positive.md): Enforce `tabIndex` value is not greater than zero.
-
-### Difference between 'recommended' and 'strict' mode
-
-Rule | Recommended | Strict
------------- | ------------- | -------------
-[accessible-emoji](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/accessible-emoji.md) | error | error
-[alt-text](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md) | error | error
-[anchor-has-content](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-has-content.md) | error | error
-[anchor-is-valid](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md) | error | error
-[aria-activedescendant-has-tabindex](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-activedescendant-has-tabindex.md) | error | error
-[aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md) | error | error
-[aria-proptypes](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md) | error | error
-[aria-role](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md) | error | error
-[aria-unsupported-elements](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md) | error | error
-[click-events-have-key-events](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/click-events-have-key-events.md) | error | error
-[heading-has-content](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md) | error | error
-[html-has-lang](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/html-has-lang.md) | error | error
-[iframe-has-title](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md) | error | error
-[img-redundant-alt](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/img-redundant-alt.md) | error | error
-[interactive-supports-focus](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/interactive-supports-focus.md) | error | error
-[label-has-associated-control](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md) | error | error
-[media-has-caption](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/media-has-caption.md) | error | error
-[mouse-events-have-key-events](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/mouse-events-have-key-events.md) | error | error
-[no-access-key](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-access-key.md) | error | error
-[no-autofocus](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-autofocus.md) | error | error
-[no-distracting-elements](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md) | error | error
-[no-interactive-element-to-noninteractive-role](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-interactive-element-to-noninteractive-role.md) | error, with options | error
-[no-noninteractive-element-interactions](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md) | error, with options | error
-[no-noninteractive-element-to-interactive-role](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-to-interactive-role.md) | error, with options | error
-[no-noninteractive-tabindex](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-tabindex.md) | error, with options | error
-[no-onchange](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md) | error | error
-[no-redundant-roles](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md) | error | error
-[no-static-element-interactions](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md) | error, with options | error
-[role-has-required-aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md) | error | error
-[role-supports-aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md) | error | error
-[scope](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/scope.md) | error, with options | error
-[tabindex-no-positive](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/tabindex-no-positive.md) | error | error
-
-
-The following rules have extra options when in *recommended* mode:
-
-#### no-interactive-element-to-noninteractive-role
-```
-'jsx-a11y/no-interactive-element-to-noninteractive-role': [
-  'error',
-  {
-    tr: ['none', 'presentation'],
-  },
-]
-```
-
-#### no-noninteractive-element-interactions
-```
-'jsx-a11y/no-noninteractive-element-interactions': [
-  'error',
-  {
-    handlers: [
-      'onClick',
-      'onMouseDown',
-      'onMouseUp',
-      'onKeyPress',
-      'onKeyDown',
-      'onKeyUp',
-    ],
-  },
-]
-```
-
-#### no-noninteractive-element-to-interactive-role
-```
-'jsx-a11y/no-noninteractive-element-to-interactive-role': [
-  'error',
-  {
-    ul: [
-      'listbox',
-      'menu',
-      'menubar',
-      'radiogroup',
-      'tablist',
-      'tree',
-      'treegrid',
-    ],
-    ol: [
-      'listbox',
-      'menu',
-      'menubar',
-      'radiogroup',
-      'tablist',
-      'tree',
-      'treegrid',
-    ],
-    li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
-    table: ['grid'],
-    td: ['gridcell'],
-  },
-]
-```
-
-#### no-noninteractive-tabindex
-```
-'jsx-a11y/no-noninteractive-tabindex': [
-  'error',
-  {
-    tags: [],
-    roles: ['tabpanel'],
-  },
-]
-```
-
-#### no-static-element-interactions
-```
-'jsx-a11y/no-noninteractive-element-interactions': [
-  'error',
-  {
-    handlers: [
-      'onClick',
-      'onMouseDown',
-      'onMouseUp',
-      'onKeyPress',
-      'onKeyDown',
-      'onKeyUp',
-    ],
-  },
-]
-```
-
-## Creating a new rule
-
-If you are developing new rules for this project, you can use the `create-rule`
-script to scaffold the new files.
-
-```
-$ ./scripts/create-rule.js my-new-rule
-```
-
-## Some background on WAI-ARIA, the AX Tree and Browsers
-
-### Accessibility API
-An operating system will provide an accessibility API that maps application state and content onto input/output controllers such as a screen reader, braille device, keyboard, etc.
-
-These APIs were developed as computer interfaces shifted from buffers (which are text-based and inherently quite accessible) to graphical user interfaces (GUIs). The first attempts to make GUIs accessible involved raster image parsing to recognize characters, words, etc. This information was stored in a parallel buffer and made accessible to assistive technology (AT) devices.
-
-As GUIs became more complex, the raster parsing approach became untenable. Accessibility APIs were developed to replace them. Check out [NSAccessibility (AXAPI)](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/index.html) for an example. See [Core Accessibility API Mappings 1.1](https://www.w3.org/TR/core-aam-1.1/) for more details.
-
-### Browsers
-Browsers support an Accessibility API on a per operating system basis. For instance, Firefox implements the MSAA accessibility API on Windows, but does not implement the AXAPI on OSX.
-
-### The Accessibility (AX) Tree & DOM
-From the [W3 Core Accessibility API Mappings 1.1](https://www.w3.org/TR/core-aam-1.1/#intro_treetypes)
-
-> The accessibility tree and the DOM tree are parallel structures. Roughly speaking the accessibility tree is a subset of the DOM tree. It includes the user interface objects of the user agent and the objects of the document. Accessible objects are created in the accessibility tree for every DOM element that should be exposed to assistive technology, either because it may fire an accessibility event or because it has a property, relationship or feature which needs to be exposed. Generally, if something can be trimmed out it will be, for reasons of performance and simplicity. For example, a <span> with just a style change and no semantics may not get its own accessible object, but the style change will be exposed by other means.
-
-Browser vendors are beginning to expose the AX Tree through inspection tools. Chrome has an experiment available to enable their inspection tool.
-
-You can also see a text-based version of the AX Tree in Chrome in the stable release version.
-
-#### Viewing the AX Tree in Chrome
-  1. Navigate to `chrome://accessibility/` in Chrome.
-  1. Toggle the `accessibility off` link for any tab that you want to inspect.
-  1. A link labeled `show accessibility tree` will appear; click this link.
-  1. Balk at the wall of text that gets displayed, but then regain your conviction.
-  1. Use the browser's find command to locate strings and values in the wall of text.
-
-### Pulling it all together
-A browser constructs an AX Tree as a subset of the DOM. ARIA heavily informs the properties of this AX Tree. This AX Tree is exposed to the system level Accessibility API which mediates assistive technology agents.
-
-We model ARIA in the [aria-query](https://github.com/a11yance/aria-query) project. We model AXObjects (that comprise the AX Tree) in the [axobject-query](https://github.com/A11yance/axobject-query) project. The goal of the WAI-ARIA specification is to be a complete declarative interface to the AXObject model. The [in-draft 1.2 version](https://github.com/w3c/aria/issues?q=is%3Aissue+is%3Aopen+label%3A%22ARIA+1.2%22) is moving towards this goal. But until then, we must consider the semantics constructs afforded by ARIA as well as those afforded by the AXObject model (AXAPI) in order to determine how HTML can be used to express user interface affordances to assistive technology users.
-
-## License
-
-eslint-plugin-jsx-a11y is licensed under the [MIT License](LICENSE.md).
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/IdentifierMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/IdentifierMock.js
deleted file mode 100644
index 2b51c72..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/IdentifierMock.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function IdentifierMock(ident) {
-  return {
-    type: 'Identifier',
-    name: ident,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXAttributeMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXAttributeMock.js
deleted file mode 100644
index 50fc4f2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXAttributeMock.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import toAST from 'to-ast'; // eslint-disable-line import/no-extraneous-dependencies
-import JSXExpressionContainerMock from './JSXExpressionContainerMock';
-
-export default function JSXAttributeMock(prop, value, isExpressionContainer = false) {
-  let astValue;
-  if (value && value.type !== undefined) {
-    astValue = value;
-  } else {
-    astValue = toAST(value);
-  }
-  let attributeValue = astValue;
-  if (isExpressionContainer || astValue.type !== 'Literal') {
-    attributeValue = JSXExpressionContainerMock(astValue);
-  }
-
-  return {
-    type: 'JSXAttribute',
-    name: {
-      type: 'JSXIdentifier',
-      name: prop,
-    },
-    value: attributeValue,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXElementMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXElementMock.js
deleted file mode 100644
index 1cc05af..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXElementMock.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * @flow
- */
-
-import JSXAttributeMock from './JSXAttributeMock';
-
-export type TJSXElementMock = {
-  type: 'JSXElement',
-  openingElement: {
-    type: 'JSXOpeningElement',
-    name: {
-      type: 'JSXIdentifier',
-      name: string,
-    },
-    attributes: Array<JSXAttributeMock>,
-  },
-  children: Array<Node>,
-};
-
-export default function JSXElementMock(
-  tagName: string,
-  attributes: Array<JSXAttributeMock> = [],
-  children: Array<Node> = [],
-): TJSXElementMock {
-  return {
-    type: 'JSXElement',
-    openingElement: {
-      type: 'JSXOpeningElement',
-      name: {
-        type: 'JSXIdentifier',
-        name: tagName,
-      },
-      attributes,
-    },
-    children,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXExpressionContainerMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXExpressionContainerMock.js
deleted file mode 100644
index 7f15af5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXExpressionContainerMock.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function JSXExpressionContainerMock(exp) {
-  return {
-    type: 'JSXExpressionContainer',
-    expression: exp,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXSpreadAttributeMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXSpreadAttributeMock.js
deleted file mode 100644
index a11cc41..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXSpreadAttributeMock.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * @flow
- */
-
-import IdentifierMock from './IdentifierMock';
-
-export default function JSXSpreadAttributeMock(identifier: string) {
-  return {
-    type: 'JSXSpreadAttribute',
-    argument: IdentifierMock(identifier),
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXTextMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXTextMock.js
deleted file mode 100644
index f94a12b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/JSXTextMock.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @flow
- */
-export default function JSXTextMock(value: string) {
-  return {
-    type: 'JSXText',
-    value,
-    raw: value,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/LiteralMock.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/LiteralMock.js
deleted file mode 100644
index 24f885c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/LiteralMock.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @flow
- */
-export default function LiteralMock(value: string) {
-  return {
-    type: 'Literal',
-    value,
-    raw: value,
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__mocks__/genInteractives.js b/node_modules/eslint-plugin-jsx-a11y/__mocks__/genInteractives.js
deleted file mode 100644
index 9ddf507..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__mocks__/genInteractives.js
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * @flow
- */
-
-import { dom, roles } from 'aria-query';
-import includes from 'array-includes';
-import JSXAttributeMock from './JSXAttributeMock';
-import JSXElementMock from './JSXElementMock';
-
-import type { TJSXElementMock } from './JSXElementMock';
-
-const domElements = [...dom.keys()];
-const roleNames = [...roles.keys()];
-
-const interactiveElementsMap = {
-  a: [{ prop: 'href', value: '#' }],
-  area: [{ prop: 'href', value: '#' }],
-  audio: [],
-  button: [],
-  canvas: [],
-  embed: [],
-  label: [],
-  link: [],
-  input: [],
-  'input[type="button"]': [{ prop: 'type', value: 'button' }],
-  'input[type="checkbox"]': [{ prop: 'type', value: 'checkbox' }],
-  'input[type="color"]': [{ prop: 'type', value: 'color' }],
-  'input[type="date"]': [{ prop: 'type', value: 'date' }],
-  'input[type="datetime"]': [{ prop: 'type', value: 'datetime' }],
-  'input[type="email"]': [{ prop: 'type', value: 'email' }],
-  'input[type="file"]': [{ prop: 'type', value: 'file' }],
-  'input[type="image"]': [{ prop: 'type', value: 'image' }],
-  'input[type="month"]': [{ prop: 'type', value: 'month' }],
-  'input[type="number"]': [{ prop: 'type', value: 'number' }],
-  'input[type="password"]': [{ prop: 'type', value: 'password' }],
-  'input[type="radio"]': [{ prop: 'type', value: 'radio' }],
-  'input[type="range"]': [{ prop: 'type', value: 'range' }],
-  'input[type="reset"]': [{ prop: 'type', value: 'reset' }],
-  'input[type="search"]': [{ prop: 'type', value: 'search' }],
-  'input[type="submit"]': [{ prop: 'type', value: 'submit' }],
-  'input[type="tel"]': [{ prop: 'type', value: 'tel' }],
-  'input[type="text"]': [{ prop: 'type', value: 'text' }],
-  'input[type="time"]': [{ prop: 'type', value: 'time' }],
-  'input[type="url"]': [{ prop: 'type', value: 'url' }],
-  'input[type="week"]': [{ prop: 'type', value: 'week' }],
-  menuitem: [],
-  option: [],
-  select: [],
-  // Whereas ARIA makes a distinction between cell and gridcell, the AXObject
-  // treats them both as CellRole and since gridcell is interactive, we consider
-  // cell interactive as well.
-  // td: [],
-  th: [],
-  tr: [],
-  textarea: [],
-  video: [],
-};
-
-const nonInteractiveElementsMap = {
-  abbr: [],
-  article: [],
-  blockquote: [],
-  br: [],
-  caption: [],
-  dd: [],
-  details: [],
-  dfn: [],
-  dialog: [],
-  dir: [],
-  dl: [],
-  dt: [],
-  fieldset: [],
-  figcaption: [],
-  figure: [],
-  footer: [],
-  form: [],
-  frame: [],
-  h1: [],
-  h2: [],
-  h3: [],
-  h4: [],
-  h5: [],
-  h6: [],
-  hr: [],
-  iframe: [],
-  img: [],
-  legend: [],
-  li: [],
-  main: [],
-  mark: [],
-  marquee: [],
-  menu: [],
-  meter: [],
-  nav: [],
-  ol: [],
-  p: [],
-  pre: [],
-  progress: [],
-  ruby: [],
-  section: [],
-  table: [],
-  tbody: [],
-  td: [],
-  tfoot: [],
-  thead: [],
-  time: [],
-  ul: [],
-};
-
-const indeterminantInteractiveElementsMap = domElements.reduce(
-  (accumulator: { [key: string]: Array<any> }, name: string): { [key: string]: Array<any> } => ({
-    ...accumulator,
-    [name]: [],
-  }),
-  {},
-);
-
-Object.keys(interactiveElementsMap)
-  .concat(Object.keys(nonInteractiveElementsMap))
-  .forEach((name: string) => delete indeterminantInteractiveElementsMap[name]);
-
-const abstractRoles = roleNames.filter(role => roles.get(role).abstract);
-
-const nonAbstractRoles = roleNames.filter(role => !roles.get(role).abstract);
-
-const interactiveRoles = []
-  .concat(
-    roleNames,
-    // 'toolbar' does not descend from widget, but it does support
-    // aria-activedescendant, thus in practice we treat it as a widget.
-    'toolbar',
-  )
-  .filter(role => !roles.get(role).abstract)
-  .filter(role => roles.get(role).superClass.some(klasses => includes(klasses, 'widget')));
-
-const nonInteractiveRoles = roleNames
-  .filter(role => !roles.get(role).abstract)
-  .filter(role => !roles.get(role).superClass.some(klasses => includes(klasses, 'widget')))
-  // 'toolbar' does not descend from widget, but it does support
-  // aria-activedescendant, thus in practice we treat it as a widget.
-  .filter(role => !includes(['toolbar'], role));
-
-export function genElementSymbol(openingElement: Object) {
-  return (
-    openingElement.name.name + (openingElement.attributes.length > 0
-      ? `${openingElement.attributes
-        .map(attr => `[${attr.name.name}="${attr.value.value}"]`)
-        .join('')}`
-      : ''
-    )
-  );
-}
-
-export function genInteractiveElements(): Array<TJSXElementMock> {
-  return Object.keys(interactiveElementsMap).map((elementSymbol: string): TJSXElementMock => {
-    const bracketIndex = elementSymbol.indexOf('[');
-    let name = elementSymbol;
-    if (bracketIndex > -1) {
-      name = elementSymbol.slice(0, bracketIndex);
-    }
-    const attributes = interactiveElementsMap[elementSymbol].map(({ prop, value }) => JSXAttributeMock(prop, value));
-    return JSXElementMock(name, attributes);
-  });
-}
-
-export function genInteractiveRoleElements(): Array<TJSXElementMock> {
-  return [...interactiveRoles, 'button article', 'fakerole button article'].map((value): TJSXElementMock => JSXElementMock(
-    'div',
-    [JSXAttributeMock('role', value)],
-  ));
-}
-
-export function genNonInteractiveElements(): Array<TJSXElementMock> {
-  return Object.keys(nonInteractiveElementsMap).map((elementSymbol): TJSXElementMock => {
-    const bracketIndex = elementSymbol.indexOf('[');
-    let name = elementSymbol;
-    if (bracketIndex > -1) {
-      name = elementSymbol.slice(0, bracketIndex);
-    }
-    const attributes = nonInteractiveElementsMap[elementSymbol].map(({ prop, value }) => JSXAttributeMock(prop, value));
-    return JSXElementMock(name, attributes);
-  });
-}
-
-export function genNonInteractiveRoleElements() {
-  return [
-    ...nonInteractiveRoles,
-    'article button',
-    'fakerole article button',
-  ].map(value => JSXElementMock('div', [JSXAttributeMock('role', value)]));
-}
-
-export function genAbstractRoleElements() {
-  return abstractRoles.map(value => JSXElementMock('div', [JSXAttributeMock('role', value)]));
-}
-
-export function genNonAbstractRoleElements() {
-  return nonAbstractRoles.map(value => JSXElementMock('div', [JSXAttributeMock('role', value)]));
-}
-
-export function genIndeterminantInteractiveElements(): Array<TJSXElementMock> {
-  return Object.keys(indeterminantInteractiveElementsMap).map((name) => {
-    const attributes = indeterminantInteractiveElementsMap[name].map(({ prop, value }): TJSXElementMock => JSXAttributeMock(prop, value));
-    return JSXElementMock(name, attributes);
-  });
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/parserOptionsMapper.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/parserOptionsMapper.js
deleted file mode 100644
index c3d2f77..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/parserOptionsMapper.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const defaultParserOptions = {
-  ecmaVersion: 2018,
-  ecmaFeatures: {
-    experimentalObjectRestSpread: true,
-    jsx: true,
-  },
-};
-
-export default function parserOptionsMapper({
-  code,
-  errors,
-  options = [],
-  parserOptions = {},
-}) {
-  return {
-    code,
-    errors,
-    options,
-    parserOptions: {
-      ...defaultParserOptions,
-      ...parserOptions,
-    },
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/ruleOptionsMapperFactory.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/ruleOptionsMapperFactory.js
deleted file mode 100644
index 5f50608..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/__util__/ruleOptionsMapperFactory.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * @flow
- */
-
-type ESLintTestRunnerTestCase = {
-  code: string,
-  errors: ?Array<{ message: string, type: string }>,
-  options: ?Array<mixed>,
-  parserOptions: ?Array<mixed>
-};
-
-export default function ruleOptionsMapperFactory(ruleOptions: Array<mixed> = []) {
-  // eslint-disable-next-line
-  return ({ code, errors, options, parserOptions }: ESLintTestRunnerTestCase): ESLintTestRunnerTestCase => {
-    return {
-      code,
-      errors,
-      // Flatten the array of objects in an array of one object.
-      options: (options || []).concat(ruleOptions).reduce((acc, item) => [{
-        ...acc[0],
-        ...item,
-      }], [{}]),
-      parserOptions,
-    };
-  };
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/index-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/index-test.js
deleted file mode 100644
index 94ed70f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/index-test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* eslint-env jest */
-/* eslint global-require: 0 */
-
-import assert from 'assert';
-import fs from 'fs';
-import path from 'path';
-import plugin from '../src';
-
-const rules = fs.readdirSync(path.resolve(__dirname, '../src/rules/'))
-  .map(f => path.basename(f, '.js'));
-
-describe('all rule files should be exported by the plugin', () => {
-  rules.forEach((ruleName) => {
-    it(`should export ${ruleName}`, () => {
-      assert.equal(
-        plugin.rules[ruleName],
-        require(path.join('../src/rules', ruleName)) // eslint-disable-line
-      );
-    });
-  });
-});
-
-describe('configurations', () => {
-  it('should export a \'recommended\' configuration', () => {
-    assert(plugin.configs.recommended);
-  });
-});
-
-describe('schemas', () => {
-  rules.forEach((ruleName) => {
-    it(`${ruleName} should export a schema with type object`, () => {
-      const rule = require(path.join('../src/rules', ruleName)); // eslint-disable-line
-      const schema = rule.meta && rule.meta.schema && rule.meta.schema[0];
-      const { type } = schema;
-
-      assert.deepEqual(type, 'object');
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/accessible-emoji-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/accessible-emoji-test.js
deleted file mode 100644
index 133f169..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/accessible-emoji-test.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce <marquee> elements are not used.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/accessible-emoji';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Emojis should be wrapped in <span>, have role="img", and have an accessible description with aria-label or aria-labelledby.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('accessible-emoji', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<span />' },
-    { code: '<span>No emoji here!</span>' },
-    { code: '<span role="img" aria-label="Panda face">🐼</span>' },
-    { code: '<span role="img" aria-label="Snowman">&#9731;</span>' },
-    { code: '<span role="img" aria-labelledby="id1">🐼</span>' },
-    { code: '<span role="img" aria-labelledby="id1">&#9731;</span>' },
-    { code: '<span role="img" aria-labelledby="id1" aria-label="Snowman">&#9731;</span>' },
-    { code: '<span>{props.emoji}</span>' },
-    { code: '<span aria-hidden>{props.emoji}</span>' },
-    { code: '<span aria-hidden="true">🐼</span>' },
-    { code: '<span aria-hidden>🐼</span>' },
-    { code: '<div aria-hidden="true">🐼</div>' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<span>🐼</span>', errors: [expectedError] },
-    { code: '<span>foo🐼bar</span>', errors: [expectedError] },
-    { code: '<span>foo 🐼 bar</span>', errors: [expectedError] },
-    { code: '<i role="img" aria-label="Panda face">🐼</i>', errors: [expectedError] },
-    { code: '<i role="img" aria-labelledby="id1">🐼</i>', errors: [expectedError] },
-    { code: '<Foo>🐼</Foo>', errors: [expectedError] },
-    { code: '<span aria-hidden="false">🐼</span>', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/alt-text-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/alt-text-test.js
deleted file mode 100644
index 9ae6ade..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/alt-text-test.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce all elements that require alternative text have it.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/alt-text';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const missingPropError = type => ({
-  message: `${type} elements must have an alt prop, either with meaningful text, or an empty string for decorative images.`,
-  type: 'JSXOpeningElement',
-});
-
-const altValueError = type => ({
-  message: `Invalid alt value for ${type}. \
-Use alt="" for presentational images.`,
-  type: 'JSXOpeningElement',
-});
-
-const preferAltError = () => ({
-  message: 'Prefer alt="" over a presentational role. First rule of aria is to not use aria if it can be achieved via native HTML.',
-  type: 'JSXOpeningElement',
-});
-
-const objectError = 'Embedded <object> elements must have alternative text by providing inner text, aria-label or aria-labelledby props.';
-
-const areaError = 'Each area of an image map must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.';
-
-const inputImageError = '<input> elements with type="image" must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.';
-
-const array = [{
-  img: ['Thumbnail', 'Image'],
-  object: ['Object'],
-  area: ['Area'],
-  'input[type="image"]': ['InputImage'],
-}];
-
-
-ruleTester.run('alt-text', rule, {
-  valid: [
-    // DEFAULT ELEMENT 'img' TESTS
-    { code: '<img alt="foo" />;' },
-    { code: '<img alt={"foo"} />;' },
-    { code: '<img alt={alt} />;' },
-    { code: '<img ALT="foo" />;' },
-    { code: '<img ALT={`This is the ${alt} text`} />;' },
-    { code: '<img ALt="foo" />;' },
-    { code: '<img alt="foo" salt={undefined} />;' },
-    { code: '<img {...this.props} alt="foo" />' },
-    { code: '<a />' },
-    { code: '<div />' },
-    { code: '<img alt={function(e) {} } />' },
-    { code: '<div alt={function(e) {} } />' },
-    { code: '<img alt={() => void 0} />' },
-    { code: '<IMG />' },
-    { code: '<UX.Layout>test</UX.Layout>' },
-    { code: '<img alt={alt || "Alt text" } />' },
-    { code: '<img alt={photo.caption} />;' },
-    { code: '<img alt={bar()} />;' },
-    { code: '<img alt={foo.bar || ""} />' },
-    { code: '<img alt={bar() || ""} />' },
-    { code: '<img alt={foo.bar() || ""} />' },
-    { code: '<img alt="" />' },
-    { code: '<img alt={`${undefined}`} />' },
-    { code: '<img alt=" " />' },
-    { code: '<img alt="" role="presentation" />' },
-    { code: '<img alt="" role="none" />' },
-    { code: '<img alt="" role={`presentation`} />' },
-    { code: '<img alt="" role={"presentation"} />' },
-    { code: '<img alt="this is lit..." role="presentation" />' },
-    { code: '<img alt={error ? "not working": "working"} />' },
-    { code: '<img alt={undefined ? "working": "not working"} />' },
-    { code: '<img alt={plugin.name + " Logo"} />' },
-
-    // DEFAULT <object> TESTS
-    { code: '<object aria-label="foo" />' },
-    { code: '<object aria-labelledby="id1" />' },
-    { code: '<object>Foo</object>' },
-    { code: '<object><p>This is descriptive!</p></object>' },
-    { code: '<Object />' },
-    { code: '<object title="An object" />' },
-
-    // DEFAULT <area> TESTS
-    { code: '<area aria-label="foo" />' },
-    { code: '<area aria-labelledby="id1" />' },
-    { code: '<area alt="" />' },
-    { code: '<area alt="This is descriptive!" />' },
-    { code: '<area alt={altText} />' },
-    { code: '<Area />' },
-
-    // DEFAULT <input type="image"> TESTS
-    { code: '<input />' },
-    { code: '<input type="foo" />' },
-    { code: '<input type="image" aria-label="foo" />' },
-    { code: '<input type="image" aria-labelledby="id1" />' },
-    { code: '<input type="image" alt="" />' },
-    { code: '<input type="image" alt="This is descriptive!" />' },
-    { code: '<input type="image" alt={altText} />' },
-    { code: '<InputImage />' },
-
-    // CUSTOM ELEMENT TESTS FOR ARRAY OPTION TESTS
-    { code: '<Thumbnail alt="foo" />;', options: array },
-    { code: '<Thumbnail alt={"foo"} />;', options: array },
-    { code: '<Thumbnail alt={alt} />;', options: array },
-    { code: '<Thumbnail ALT="foo" />;', options: array },
-    { code: '<Thumbnail ALT={`This is the ${alt} text`} />;', options: array },
-    { code: '<Thumbnail ALt="foo" />;', options: array },
-    { code: '<Thumbnail alt="foo" salt={undefined} />;', options: array },
-    { code: '<Thumbnail {...this.props} alt="foo" />', options: array },
-    { code: '<thumbnail />', options: array },
-    { code: '<Thumbnail alt={function(e) {} } />', options: array },
-    { code: '<div alt={function(e) {} } />', options: array },
-    { code: '<Thumbnail alt={() => void 0} />', options: array },
-    { code: '<THUMBNAIL />', options: array },
-    { code: '<Thumbnail alt={alt || "foo" } />', options: array },
-    { code: '<Image alt="foo" />;', options: array },
-    { code: '<Image alt={"foo"} />;', options: array },
-    { code: '<Image alt={alt} />;', options: array },
-    { code: '<Image ALT="foo" />;', options: array },
-    { code: '<Image ALT={`This is the ${alt} text`} />;', options: array },
-    { code: '<Image ALt="foo" />;', options: array },
-    { code: '<Image alt="foo" salt={undefined} />;', options: array },
-    { code: '<Image {...this.props} alt="foo" />', options: array },
-    { code: '<image />', options: array },
-    { code: '<Image alt={function(e) {} } />', options: array },
-    { code: '<div alt={function(e) {} } />', options: array },
-    { code: '<Image alt={() => void 0} />', options: array },
-    { code: '<IMAGE />', options: array },
-    { code: '<Image alt={alt || "foo" } />', options: array },
-    { code: '<Object aria-label="foo" />', options: array },
-    { code: '<Object aria-labelledby="id1" />', options: array },
-    { code: '<Object>Foo</Object>', options: array },
-    { code: '<Object><p>This is descriptive!</p></Object>', options: array },
-    { code: '<Object title="An object" />', options: array },
-    { code: '<Area aria-label="foo" />', options: array },
-    { code: '<Area aria-labelledby="id1" />', options: array },
-    { code: '<Area alt="" />', options: array },
-    { code: '<Area alt="This is descriptive!" />', options: array },
-    { code: '<Area alt={altText} />', options: array },
-    { code: '<InputImage aria-label="foo" />', options: array },
-    { code: '<InputImage aria-labelledby="id1" />', options: array },
-    { code: '<InputImage alt="" />', options: array },
-    { code: '<InputImage alt="This is descriptive!" />', options: array },
-    { code: '<InputImage alt={altText} />', options: array },
-  ].map(parserOptionsMapper),
-  invalid: [
-    // DEFAULT ELEMENT 'img' TESTS
-    { code: '<img />;', errors: [missingPropError('img')] },
-    { code: '<img alt />;', errors: [altValueError('img')] },
-    { code: '<img alt={undefined} />;', errors: [altValueError('img')] },
-    { code: '<img src="xyz" />', errors: [missingPropError('img')] },
-    { code: '<img role />', errors: [missingPropError('img')] },
-    { code: '<img {...this.props} />', errors: [missingPropError('img')] },
-    { code: '<img alt={false || false} />', errors: [altValueError('img')] },
-    { code: '<img alt={undefined} role="presentation" />;', errors: [altValueError('img')] },
-    { code: '<img alt role="presentation" />;', errors: [altValueError('img')] },
-    { code: '<img role="presentation" />;', errors: [preferAltError()] },
-    { code: '<img role="none" />;', errors: [preferAltError()] },
-
-    // DEFAULT ELEMENT 'object' TESTS
-    { code: '<object />', errors: [objectError] },
-    { code: '<object><div aria-hidden /></object>', errors: [objectError] },
-    { code: '<object title={undefined} />', errors: [objectError] },
-
-    // DEFAULT ELEMENT 'area' TESTS
-    { code: '<area />', errors: [areaError] },
-    { code: '<area alt />', errors: [areaError] },
-    { code: '<area alt={undefined} />', errors: [areaError] },
-    { code: '<area src="xyz" />', errors: [areaError] },
-    { code: '<area {...this.props} />', errors: [areaError] },
-
-    // DEFAULT ELEMENT 'input type="image"' TESTS
-    { code: '<input type="image" />', errors: [inputImageError] },
-    { code: '<input type="image" alt />', errors: [inputImageError] },
-    { code: '<input type="image" alt={undefined} />', errors: [inputImageError] },
-    { code: '<input type="image">Foo</input>', errors: [inputImageError] },
-    { code: '<input type="image" {...this.props} />', errors: [inputImageError] },
-
-    // CUSTOM ELEMENT TESTS FOR ARRAY OPTION TESTS
-    {
-      code: '<Thumbnail />;',
-      errors: [missingPropError('Thumbnail')],
-      options: array,
-    },
-    {
-      code: '<Thumbnail alt />;',
-      errors: [altValueError('Thumbnail')],
-      options: array,
-    },
-    {
-      code: '<Thumbnail alt={undefined} />;',
-      errors: [altValueError('Thumbnail')],
-      options: array,
-    },
-    {
-      code: '<Thumbnail src="xyz" />',
-      errors: [missingPropError('Thumbnail')],
-      options: array,
-    },
-    {
-      code: '<Thumbnail {...this.props} />',
-      errors: [missingPropError('Thumbnail')],
-      options: array,
-    },
-    { code: '<Image />;', errors: [missingPropError('Image')], options: array },
-    { code: '<Image alt />;', errors: [altValueError('Image')], options: array },
-    {
-      code: '<Image alt={undefined} />;',
-      errors: [altValueError('Image')],
-      options: array,
-    },
-    {
-      code: '<Image src="xyz" />',
-      errors: [missingPropError('Image')],
-      options: array,
-    },
-    {
-      code: '<Image {...this.props} />',
-      errors: [missingPropError('Image')],
-      options: array,
-    },
-    { code: '<Object />', errors: [objectError], options: array },
-    { code: '<Object><div aria-hidden /></Object>', errors: [objectError], options: array },
-    { code: '<Object title={undefined} />', errors: [objectError], options: array },
-    { code: '<Area />', errors: [areaError], options: array },
-    { code: '<Area alt />', errors: [areaError], options: array },
-    { code: '<Area alt={undefined} />', errors: [areaError], options: array },
-    { code: '<Area src="xyz" />', errors: [areaError], options: array },
-    { code: '<Area {...this.props} />', errors: [areaError], options: array },
-    { code: '<InputImage />', errors: [inputImageError], options: array },
-    { code: '<InputImage alt />', errors: [inputImageError], options: array },
-    { code: '<InputImage alt={undefined} />', errors: [inputImageError], options: array },
-    { code: '<InputImage>Foo</InputImage>', errors: [inputImageError], options: array },
-    { code: '<InputImage {...this.props} />', errors: [inputImageError], options: array },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-has-content-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-has-content-test.js
deleted file mode 100644
index bfa5138..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-has-content-test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce anchor elements to contain accessible content.
- * @author Lisa Ring & Niklas Holmberg
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/anchor-has-content';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Anchors must have content and the content must be accessible by a screen reader.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('anchor-has-content', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<a>Foo</a>' },
-    { code: '<a><Bar /></a>' },
-    { code: '<a>{foo}</a>' },
-    { code: '<a>{foo.bar}</a>' },
-    { code: '<a dangerouslySetInnerHTML={{ __html: "foo" }} />' },
-    { code: '<a children={children} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<a />', errors: [expectedError] },
-    { code: '<a><Bar aria-hidden /></a>', errors: [expectedError] },
-    { code: '<a>{undefined}</a>', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-is-valid-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-is-valid-test.js
deleted file mode 100644
index 341187b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/anchor-is-valid-test.js
+++ /dev/null
@@ -1,542 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Performs validity check on anchor hrefs. Warns when anchors are used as buttons.
- * @author Almero Steyn
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/anchor-is-valid';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const preferButtonErrorMessage = 'Anchor used as a button. Anchors are primarily expected to navigate. Use the button element instead. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-
-const noHrefErrorMessage = 'The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-
-const invalidHrefErrorMessage = 'The href attribute requires a valid value to be accessible. Provide a valid, navigable address as the href value. If you cannot provide a valid href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-
-const preferButtonexpectedError = {
-  message: preferButtonErrorMessage,
-  type: 'JSXOpeningElement',
-};
-const noHrefexpectedError = {
-  message: noHrefErrorMessage,
-  type: 'JSXOpeningElement',
-};
-const invalidHrefexpectedError = {
-  message: invalidHrefErrorMessage,
-  type: 'JSXOpeningElement',
-};
-
-const components = [{
-  components: ['Anchor', 'Link'],
-}];
-const specialLink = [{
-  specialLink: ['hrefLeft', 'hrefRight'],
-}];
-const noHrefAspect = [{
-  aspects: ['noHref'],
-}];
-const invalidHrefAspect = [{
-  aspects: ['invalidHref'],
-}];
-const preferButtonAspect = [{
-  aspects: ['preferButton'],
-}];
-const noHrefInvalidHrefAspect = [{
-  aspects: ['noHref', 'invalidHref'],
-}];
-const noHrefPreferButtonAspect = [{
-  aspects: ['noHref', 'preferButton'],
-}];
-const preferButtonInvalidHrefAspect = [{
-  aspects: ['preferButton', 'invalidHref'],
-}];
-
-const componentsAndSpecialLink = [{
-  components: ['Anchor'],
-  specialLink: ['hrefLeft'],
-}];
-
-const componentsAndSpecialLinkAndInvalidHrefAspect = [{
-  components: ['Anchor'],
-  specialLink: ['hrefLeft'],
-  aspects: ['invalidHref'],
-}];
-
-const componentsAndSpecialLinkAndNoHrefAspect = [{
-  components: ['Anchor'],
-  specialLink: ['hrefLeft'],
-  aspects: ['noHref'],
-}];
-
-ruleTester.run('anchor-is-valid', rule, {
-  valid: [
-    // DEFAULT ELEMENT 'a' TESTS
-    { code: '<Anchor />;' },
-    { code: '<a {...props} />' },
-    { code: '<a href="foo" />' },
-    { code: '<a href={foo} />' },
-    { code: '<a href="/foo" />' },
-    { code: '<a href="https://foo.bar.com" />' },
-    { code: '<div href="foo" />' },
-    { code: '<a href="javascript" />' },
-    { code: '<a href="javascriptFoo" />' },
-    { code: '<a href={`#foo`}/>' },
-    { code: '<a href={"foo"}/>' },
-    { code: '<a href={"javascript"}/>' },
-    { code: '<a href={`#javascript`}/>' },
-    { code: '<a href="#foo" />' },
-    { code: '<a href="#javascript" />' },
-    { code: '<a href="#javascriptFoo" />' },
-    { code: '<UX.Layout>test</UX.Layout>' },
-    { code: '<a href={this} />' },
-
-    // CUSTOM ELEMENT TEST FOR ARRAY OPTION
-    { code: '<Anchor {...props} />', options: components },
-    { code: '<Anchor href="foo" />', options: components },
-    { code: '<Anchor href={foo} />', options: components },
-    { code: '<Anchor href="/foo" />', options: components },
-    { code: '<Anchor href="https://foo.bar.com" />', options: components },
-    { code: '<div href="foo" />', options: components },
-    { code: '<Anchor href={`#foo`}/>', options: components },
-    { code: '<Anchor href={"foo"}/>', options: components },
-    { code: '<Anchor href="#foo" />', options: components },
-    { code: '<Link {...props} />', options: components },
-    { code: '<Link href="foo" />', options: components },
-    { code: '<Link href={foo} />', options: components },
-    { code: '<Link href="/foo" />', options: components },
-    { code: '<Link href="https://foo.bar.com" />', options: components },
-    { code: '<div href="foo" />', options: components },
-    { code: '<Link href={`#foo`}/>', options: components },
-    { code: '<Link href={"foo"}/>', options: components },
-    { code: '<Link href="#foo" />', options: components },
-
-    // CUSTOM PROP TESTS
-    { code: '<a {...props} />', options: specialLink },
-    { code: '<a hrefLeft="foo" />', options: specialLink },
-    { code: '<a hrefLeft={foo} />', options: specialLink },
-    { code: '<a hrefLeft="/foo" />', options: specialLink },
-    { code: '<a hrefLeft="https://foo.bar.com" />', options: specialLink },
-    { code: '<div hrefLeft="foo" />', options: specialLink },
-    { code: '<a hrefLeft={`#foo`}/>', options: specialLink },
-    { code: '<a hrefLeft={"foo"}/>', options: specialLink },
-    { code: '<a hrefLeft="#foo" />', options: specialLink },
-    { code: '<UX.Layout>test</UX.Layout>', options: specialLink },
-    { code: '<a hrefRight={this} />', options: specialLink },
-    { code: '<a {...props} />', options: specialLink },
-    { code: '<a hrefRight="foo" />', options: specialLink },
-    { code: '<a hrefRight={foo} />', options: specialLink },
-    { code: '<a hrefRight="/foo" />', options: specialLink },
-    { code: '<a hrefRight="https://foo.bar.com" />', options: specialLink },
-    { code: '<div hrefRight="foo" />', options: specialLink },
-    { code: '<a hrefRight={`#foo`}/>', options: specialLink },
-    { code: '<a hrefRight={"foo"}/>', options: specialLink },
-    { code: '<a hrefRight="#foo" />', options: specialLink },
-    { code: '<UX.Layout>test</UX.Layout>', options: specialLink },
-    { code: '<a hrefRight={this} />', options: specialLink },
-
-    // CUSTOM BOTH COMPONENTS AND SPECIALLINK TESTS
-    { code: '<Anchor {...props} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="foo" />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={foo} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="/foo" />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="https://foo.bar.com" />', options: componentsAndSpecialLink },
-    { code: '<div hrefLeft="foo" />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={`#foo`}/>', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={"foo"}/>', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="#foo" />', options: componentsAndSpecialLink },
-    { code: '<UX.Layout>test</UX.Layout>', options: componentsAndSpecialLink },
-
-    // WITH ONCLICK
-    // DEFAULT ELEMENT 'a' TESTS
-    { code: '<a {...props} onClick={() => void 0} />' },
-    { code: '<a href="foo" onClick={() => void 0} />' },
-    { code: '<a href={foo} onClick={() => void 0} />' },
-    { code: '<a href="/foo" onClick={() => void 0} />' },
-    { code: '<a href="https://foo.bar.com" onClick={() => void 0} />' },
-    { code: '<div href="foo" onClick={() => void 0} />' },
-    { code: '<a href={`#foo`} onClick={() => void 0} />' },
-    { code: '<a href={"foo"} onClick={() => void 0} />' },
-    { code: '<a href="#foo" onClick={() => void 0} />' },
-    { code: '<a href={this} onClick={() => void 0} />' },
-
-    // CUSTOM ELEMENT TEST FOR ARRAY OPTION
-    { code: '<Anchor {...props} onClick={() => void 0} />', options: components },
-    { code: '<Anchor href="foo" onClick={() => void 0} />', options: components },
-    { code: '<Anchor href={foo} onClick={() => void 0} />', options: components },
-    { code: '<Anchor href="/foo" onClick={() => void 0} />', options: components },
-    { code: '<Anchor href="https://foo.bar.com" onClick={() => void 0} />', options: components },
-    { code: '<Anchor href={`#foo`} onClick={() => void 0} />', options: components },
-    { code: '<Anchor href={"foo"} onClick={() => void 0} />', options: components },
-    { code: '<Anchor href="#foo" onClick={() => void 0} />', options: components },
-    { code: '<Link {...props} onClick={() => void 0} />', options: components },
-    { code: '<Link href="foo" onClick={() => void 0} />', options: components },
-    { code: '<Link href={foo} onClick={() => void 0} />', options: components },
-    { code: '<Link href="/foo" onClick={() => void 0} />', options: components },
-    { code: '<Link href="https://foo.bar.com" onClick={() => void 0} />', options: components },
-    { code: '<div href="foo" onClick={() => void 0} />', options: components },
-    { code: '<Link href={`#foo`} onClick={() => void 0} />', options: components },
-    { code: '<Link href={"foo"} onClick={() => void 0} />', options: components },
-    { code: '<Link href="#foo" onClick={() => void 0} />', options: components },
-
-    // CUSTOM PROP TESTS
-    { code: '<a {...props} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft="foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft={foo} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft="/foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft href="https://foo.bar.com" onClick={() => void 0} />', options: specialLink },
-    { code: '<div hrefLeft="foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft={`#foo`} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft={"foo"} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefLeft="#foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight={this} onClick={() => void 0} />', options: specialLink },
-    { code: '<a {...props} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight="foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight={foo} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight="/foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight href="https://foo.bar.com" onClick={() => void 0} />', options: specialLink },
-    { code: '<div hrefRight="foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight={`#foo`} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight={"foo"} onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight="#foo" onClick={() => void 0} />', options: specialLink },
-    { code: '<a hrefRight={this} onClick={() => void 0} />', options: specialLink },
-
-    // CUSTOM BOTH COMPONENTS AND SPECIALLINK TESTS
-    { code: '<Anchor {...props} onClick={() => void 0} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="foo" onClick={() => void 0} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={foo} onClick={() => void 0} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="/foo" onClick={() => void 0} />', options: componentsAndSpecialLink },
-    {
-      code: '<Anchor hrefLeft href="https://foo.bar.com" onClick={() => void 0} />',
-      options: componentsAndSpecialLink,
-    },
-    { code: '<Anchor hrefLeft={`#foo`} onClick={() => void 0} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={"foo"} onClick={() => void 0} />', options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="#foo" onClick={() => void 0} />', options: componentsAndSpecialLink },
-
-    // WITH ASPECTS TESTS
-    // NO HREF
-    { code: '<a />', options: invalidHrefAspect },
-    { code: '<a href={undefined} />', options: invalidHrefAspect },
-    { code: '<a href={null} />', options: invalidHrefAspect },
-    { code: '<a />', options: preferButtonAspect },
-    { code: '<a href={undefined} />', options: preferButtonAspect },
-    { code: '<a href={null} />', options: preferButtonAspect },
-    { code: '<a />', options: preferButtonInvalidHrefAspect },
-    { code: '<a href={undefined} />', options: preferButtonInvalidHrefAspect },
-    { code: '<a href={null} />', options: preferButtonInvalidHrefAspect },
-
-    // INVALID HREF
-    { code: '<a href="" />;', options: preferButtonAspect },
-    { code: '<a href="#" />', options: preferButtonAspect },
-    { code: '<a href={"#"} />', options: preferButtonAspect },
-    { code: '<a href="javascript:void(0)" />', options: preferButtonAspect },
-    { code: '<a href={"javascript:void(0)"} />', options: preferButtonAspect },
-    { code: '<a href="" />;', options: noHrefAspect },
-    { code: '<a href="#" />', options: noHrefAspect },
-    { code: '<a href={"#"} />', options: noHrefAspect },
-    { code: '<a href="javascript:void(0)" />', options: noHrefAspect },
-    { code: '<a href={"javascript:void(0)"} />', options: noHrefAspect },
-    { code: '<a href="" />;', options: noHrefPreferButtonAspect },
-    { code: '<a href="#" />', options: noHrefPreferButtonAspect },
-    { code: '<a href={"#"} />', options: noHrefPreferButtonAspect },
-    { code: '<a href="javascript:void(0)" />', options: noHrefPreferButtonAspect },
-    { code: '<a href={"javascript:void(0)"} />', options: noHrefPreferButtonAspect },
-
-    // SHOULD BE BUTTON
-    { code: '<a onClick={() => void 0} />', options: invalidHrefAspect },
-    { code: '<a href="#" onClick={() => void 0} />', options: noHrefAspect },
-    { code: '<a href="javascript:void(0)" onClick={() => void 0} />', options: noHrefAspect },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: noHrefAspect,
-    },
-
-    // CUSTOM COMPONENTS AND SPECIALLINK AND ASPECT
-    { code: '<Anchor hrefLeft={undefined} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-    { code: '<Anchor hrefLeft={null} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-    { code: '<Anchor hrefLeft={undefined} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-    { code: '<Anchor hrefLeft={null} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-    { code: '<Anchor hrefLeft={undefined} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-    { code: '<Anchor hrefLeft={null} />', options: componentsAndSpecialLinkAndInvalidHrefAspect },
-
-  ].map(parserOptionsMapper),
-  invalid: [
-    // DEFAULT ELEMENT 'a' TESTS
-    // NO HREF
-    { code: '<a />', errors: [noHrefexpectedError] },
-    { code: '<a href={undefined} />', errors: [noHrefexpectedError] },
-    { code: '<a href={null} />', errors: [noHrefexpectedError] },
-    // INVALID HREF
-    { code: '<a href="" />;', errors: [invalidHrefexpectedError] },
-    { code: '<a href="#" />', errors: [invalidHrefErrorMessage] },
-    { code: '<a href={"#"} />', errors: [invalidHrefErrorMessage] },
-    { code: '<a href="javascript:void(0)" />', errors: [invalidHrefexpectedError] },
-    { code: '<a href={"javascript:void(0)"} />', errors: [invalidHrefexpectedError] },
-    // SHOULD BE BUTTON
-    { code: '<a onClick={() => void 0} />', errors: [preferButtonexpectedError] },
-    { code: '<a href="#" onClick={() => void 0} />', errors: [preferButtonexpectedError] },
-    { code: '<a href="javascript:void(0)" onClick={() => void 0} />', errors: [preferButtonexpectedError] },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-    },
-
-    // CUSTOM ELEMENT TEST FOR ARRAY OPTION
-    // NO HREF
-    { code: '<Link />', errors: [noHrefexpectedError], options: components },
-    { code: '<Link href={undefined} />', errors: [noHrefexpectedError], options: components },
-    { code: '<Link href={null} />', errors: [noHrefexpectedError], options: components },
-    // INVALID HREF
-    { code: '<Link href="" />', errors: [invalidHrefexpectedError], options: components },
-    { code: '<Link href="#" />', errors: [invalidHrefErrorMessage], options: components },
-    { code: '<Link href={"#"} />', errors: [invalidHrefErrorMessage], options: components },
-    { code: '<Link href="javascript:void(0)" />', errors: [invalidHrefexpectedError], options: components },
-    { code: '<Link href={"javascript:void(0)"} />', errors: [invalidHrefexpectedError], options: components },
-    { code: '<Anchor href="" />', errors: [invalidHrefexpectedError], options: components },
-    { code: '<Anchor href="#" />', errors: [invalidHrefErrorMessage], options: components },
-    { code: '<Anchor href={"#"} />', errors: [invalidHrefErrorMessage], options: components },
-    { code: '<Anchor href="javascript:void(0)" />', errors: [invalidHrefexpectedError], options: components },
-    { code: '<Anchor href={"javascript:void(0)"} />', errors: [invalidHrefexpectedError], options: components },
-    // SHOULD BE BUTTON
-    { code: '<Link onClick={() => void 0} />', errors: [preferButtonexpectedError], options: components },
-    { code: '<Link href="#" onClick={() => void 0} />', errors: [preferButtonexpectedError], options: components },
-    {
-      code: '<Link href="javascript:void(0)" onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: components,
-    },
-    {
-      code: '<Link href={"javascript:void(0)"} onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: components,
-    },
-    { code: '<Anchor onClick={() => void 0} />', errors: [preferButtonexpectedError], options: components },
-    { code: '<Anchor href="#" onClick={() => void 0} />', errors: [preferButtonexpectedError], options: components },
-    {
-      code: '<Anchor href="javascript:void(0)" onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: components,
-    },
-    {
-      code: '<Anchor href={"javascript:void(0)"} onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: components,
-    },
-
-    // CUSTOM PROP TESTS
-    // NO HREF
-    { code: '<a hrefLeft={undefined} />', errors: [noHrefexpectedError], options: specialLink },
-    { code: '<a hrefLeft={null} />', errors: [noHrefexpectedError], options: specialLink },
-    // INVALID HREF
-    { code: '<a hrefLeft="" />;', errors: [invalidHrefexpectedError], options: specialLink },
-    { code: '<a hrefLeft="#" />', errors: [invalidHrefErrorMessage], options: specialLink },
-    { code: '<a hrefLeft={"#"} />', errors: [invalidHrefErrorMessage], options: specialLink },
-    { code: '<a hrefLeft="javascript:void(0)" />', errors: [invalidHrefexpectedError], options: specialLink },
-    { code: '<a hrefLeft={"javascript:void(0)"} />', errors: [invalidHrefexpectedError], options: specialLink },
-    // SHOULD BE BUTTON
-    { code: '<a hrefLeft="#" onClick={() => void 0} />', errors: [preferButtonexpectedError], options: specialLink },
-    {
-      code: '<a hrefLeft="javascript:void(0)" onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: specialLink,
-    },
-    {
-      code: '<a hrefLeft={"javascript:void(0)"} onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: specialLink,
-    },
-
-    // CUSTOM BOTH COMPONENTS AND SPECIALLINK TESTS
-    // NO HREF
-    { code: '<Anchor Anchor={undefined} />', errors: [noHrefexpectedError], options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={null} />', errors: [noHrefexpectedError], options: componentsAndSpecialLink },
-    // INVALID HREF
-    { code: '<Anchor hrefLeft="" />;', errors: [invalidHrefexpectedError], options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft="#" />', errors: [invalidHrefErrorMessage], options: componentsAndSpecialLink },
-    { code: '<Anchor hrefLeft={"#"} />', errors: [invalidHrefErrorMessage], options: componentsAndSpecialLink },
-    {
-      code: '<Anchor hrefLeft="javascript:void(0)" />',
-      errors: [invalidHrefexpectedError],
-      options: componentsAndSpecialLink,
-    },
-    {
-      code: '<Anchor hrefLeft={"javascript:void(0)"} />',
-      errors: [invalidHrefexpectedError],
-      options: componentsAndSpecialLink,
-    },
-    // SHOULD BE BUTTON
-    {
-      code: '<Anchor hrefLeft="#" onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: componentsAndSpecialLink,
-    },
-    {
-      code: '<Anchor hrefLeft="javascript:void(0)" onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: componentsAndSpecialLink,
-    },
-    {
-      code: '<Anchor hrefLeft={"javascript:void(0)"} onClick={() => void 0} />',
-      errors: [preferButtonexpectedError],
-      options: componentsAndSpecialLink,
-    },
-
-    // WITH ASPECTS TESTS
-    // NO HREF
-    { code: '<a />', options: noHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a />', options: noHrefPreferButtonAspect, errors: [noHrefErrorMessage] },
-    { code: '<a />', options: noHrefInvalidHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={undefined} />', options: noHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={undefined} />', options: noHrefPreferButtonAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={undefined} />', options: noHrefInvalidHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={null} />', options: noHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={null} />', options: noHrefPreferButtonAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href={null} />', options: noHrefInvalidHrefAspect, errors: [noHrefErrorMessage] },
-
-    // INVALID HREF
-    { code: '<a href="" />;', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="" />;', options: noHrefInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="" />;', options: preferButtonInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="#" />;', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="#" />;', options: noHrefInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="#" />;', options: preferButtonInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href={"#"} />;', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href={"#"} />;', options: noHrefInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href={"#"} />;', options: preferButtonInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="javascript:void(0)" />;', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href="javascript:void(0)" />;', options: noHrefInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    {
-      code: '<a href="javascript:void(0)" />;',
-      options: preferButtonInvalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-    { code: '<a href={"javascript:void(0)"} />;', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    { code: '<a href={"javascript:void(0)"} />;', options: noHrefInvalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    {
-      code: '<a href={"javascript:void(0)"} />;',
-      options: preferButtonInvalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-
-    // SHOULD BE BUTTON
-    { code: '<a onClick={() => void 0} />', options: preferButtonAspect, errors: [preferButtonErrorMessage] },
-    {
-      code: '<a onClick={() => void 0} />',
-      options: preferButtonInvalidHrefAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    { code: '<a onClick={() => void 0} />', options: noHrefPreferButtonAspect, errors: [preferButtonErrorMessage] },
-    { code: '<a onClick={() => void 0} />', options: noHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a onClick={() => void 0} />', options: noHrefInvalidHrefAspect, errors: [noHrefErrorMessage] },
-    { code: '<a href="#" onClick={() => void 0} />', options: preferButtonAspect, errors: [preferButtonErrorMessage] },
-    {
-      code: '<a href="#" onClick={() => void 0} />',
-      options: noHrefPreferButtonAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href="#" onClick={() => void 0} />',
-      options: preferButtonInvalidHrefAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    { code: '<a href="#" onClick={() => void 0} />', options: invalidHrefAspect, errors: [invalidHrefErrorMessage] },
-    {
-      code: '<a href="#" onClick={() => void 0} />',
-      options: noHrefInvalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-    {
-      code: '<a href="javascript:void(0)" onClick={() => void 0} />',
-      options: preferButtonAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href="javascript:void(0)" onClick={() => void 0} />',
-      options: noHrefPreferButtonAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href="javascript:void(0)" onClick={() => void 0} />',
-      options: preferButtonInvalidHrefAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href="javascript:void(0)" onClick={() => void 0} />',
-      options: invalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-    {
-      code: '<a href="javascript:void(0)" onClick={() => void 0} />',
-      options: noHrefInvalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: preferButtonAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: noHrefPreferButtonAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: preferButtonInvalidHrefAspect,
-      errors: [preferButtonErrorMessage],
-    },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: invalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-    {
-      code: '<a href={"javascript:void(0)"} onClick={() => void 0} />',
-      options: noHrefInvalidHrefAspect,
-      errors: [invalidHrefErrorMessage],
-    },
-
-    // CUSTOM COMPONENTS AND SPECIALLINK AND ASPECT
-    {
-      code: '<Anchor hrefLeft={undefined} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-    {
-      code: '<Anchor hrefLeft={null} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-    {
-      code: '<Anchor hrefLeft={undefined} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-    {
-      code: '<Anchor hrefLeft={null} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-    {
-      code: '<Anchor hrefLeft={undefined} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-    {
-      code: '<Anchor hrefLeft={null} />',
-      options: componentsAndSpecialLinkAndNoHrefAspect,
-      errors: [noHrefErrorMessage],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js
deleted file mode 100644
index 941403c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-activedescendant-has-tabindex-test.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * @fileoverview Enforce elements with aria-activedescendant are tabbable.
- * @author Jesse Beach <@jessebeach>
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/aria-activedescendant-has-tabindex';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'An element that manages focus with `aria-activedescendant` must be tabbable',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('aria-activedescendant-has-tabindex', rule, {
-  valid: [
-    {
-      code: '<CustomComponent />;',
-    },
-    {
-      code: '<CustomComponent aria-activedescendant={someID} />;',
-    },
-    {
-      code: '<CustomComponent aria-activedescendant={someID} tabIndex={0} />;',
-    },
-    {
-      code: '<CustomComponent aria-activedescendant={someID} tabIndex={-1} />;',
-    },
-    {
-      code: '<div />;',
-    },
-    {
-      code: '<input />;',
-    },
-    {
-      code: '<div tabIndex={0} />;',
-    },
-    {
-      code: '<div aria-activedescendant={someID} tabIndex={0} />;',
-    },
-    {
-      code: '<div aria-activedescendant={someID} tabIndex="0" />;',
-    },
-    {
-      code: '<div aria-activedescendant={someID} tabIndex={1} />;',
-    },
-    {
-      code: '<input aria-activedescendant={someID} />;',
-    },
-    {
-      code: '<input aria-activedescendant={someID} tabIndex={0} />;',
-    },
-  ].map(parserOptionsMapper),
-  invalid: [
-    {
-      code: '<div aria-activedescendant={someID} />;',
-      errors: [expectedError],
-    },
-    {
-      code: '<div aria-activedescendant={someID} tabIndex={-1} />;',
-      errors: [expectedError],
-    },
-    {
-      code: '<div aria-activedescendant={someID} tabIndex="-1" />;',
-      errors: [expectedError],
-    },
-    {
-      code: '<input aria-activedescendant={someID} tabIndex={-1} />;',
-      errors: [expectedError],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-props-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-props-test.js
deleted file mode 100644
index 058abad..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-props-test.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce all aria-* properties are valid.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { aria } from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/aria-props';
-import getSuggestion from '../../../src/util/getSuggestion';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-const ariaAttributes = [...aria.keys()];
-
-const errorMessage = (name) => {
-  const suggestions = getSuggestion(name, ariaAttributes);
-  const message = `${name}: This attribute is an invalid ARIA attribute.`;
-
-  if (suggestions.length > 0) {
-    return {
-      type: 'JSXAttribute',
-      message: `${message} Did you mean to use ${suggestions}?`,
-    };
-  }
-
-  return {
-    type: 'JSXAttribute',
-    message,
-  };
-};
-
-// Create basic test cases using all valid role types.
-const basicValidityTests = ariaAttributes.map(prop => ({
-  code: `<div ${prop.toLowerCase()}="foobar" />`,
-}));
-
-ruleTester.run('aria-props', rule, {
-  valid: [
-    // Variables should pass, as we are only testing literals.
-    { code: '<div />' },
-    { code: '<div></div>' },
-    { code: '<div aria="wee"></div>' }, // Needs aria-*
-    { code: '<div abcARIAdef="true"></div>' },
-    { code: '<div fooaria-foobar="true"></div>' },
-    { code: '<div fooaria-hidden="true"></div>' },
-    { code: '<Bar baz />' },
-    { code: '<input type="text" aria-errormessage="foobar" />' },
-  ].concat(basicValidityTests).map(parserOptionsMapper),
-  invalid: [
-    { code: '<div aria-="foobar" />', errors: [errorMessage('aria-')] },
-    {
-      code: '<div aria-labeledby="foobar" />',
-      errors: [errorMessage('aria-labeledby')],
-    },
-    {
-      code: '<div aria-skldjfaria-klajsd="foobar" />',
-      errors: [errorMessage('aria-skldjfaria-klajsd')],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-proptypes-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-proptypes-test.js
deleted file mode 100644
index 04bf9c5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-proptypes-test.js
+++ /dev/null
@@ -1,306 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce ARIA state and property values are valid.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { aria } from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/aria-proptypes';
-
-const { validityCheck } = rule;
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = (name) => {
-  const {
-    type,
-    values: permittedValues,
-  } = aria.get(name.toLowerCase());
-
-  switch (type) {
-    case 'tristate':
-      return `The value for ${name} must be a boolean or the string "mixed".`;
-    case 'token':
-      return `The value for ${name} must be a single token from the following: ${permittedValues}.`;
-    case 'tokenlist':
-      return `The value for ${name} must be a list of one or more \
-tokens from the following: ${permittedValues}.`;
-    case 'idlist':
-      return `The value for ${name} must be a list of strings that represent DOM element IDs (idlist)`;
-    case 'id':
-      return `The value for ${name} must be a string that represents a DOM element ID`;
-    case 'boolean':
-    case 'string':
-    case 'integer':
-    case 'number':
-    default:
-      return `The value for ${name} must be a ${type}.`;
-  }
-};
-
-describe('validityCheck', () => {
-  it('should false for an unknown expected type', () => {
-    expect(validityCheck(
-      null,
-      null,
-    )).toBe(false);
-  });
-});
-
-ruleTester.run('aria-proptypes', rule, {
-  valid: [
-    // DON'T TEST INVALID ARIA-* PROPS
-    { code: '<div aria-foo="true" />' },
-    { code: '<div abcaria-foo="true" />' },
-
-    // BOOLEAN
-    { code: '<div aria-hidden={true} />' },
-    { code: '<div aria-hidden="true" />' },
-    { code: '<div aria-hidden={"false"} />' },
-    { code: '<div aria-hidden={!false} />' },
-    { code: '<div aria-hidden />' },
-    { code: '<div aria-hidden={false} />' },
-    { code: '<div aria-hidden={!true} />' },
-    { code: '<div aria-hidden={!"yes"} />' },
-    { code: '<div aria-hidden={foo} />' },
-    { code: '<div aria-hidden={foo.bar} />' },
-    { code: '<div aria-hidden={null} />' },
-    { code: '<div aria-hidden={undefined} />' },
-    { code: '<div aria-hidden={<div />} />' },
-
-    // STRING
-    { code: '<div aria-label="Close" />' },
-    { code: '<div aria-label={`Close`} />' },
-    { code: '<div aria-label={foo} />' },
-    { code: '<div aria-label={foo.bar} />' },
-    { code: '<div aria-label={null} />' },
-    { code: '<div aria-label={undefined} />' },
-    { code: '<input aria-invalid={error ? "true" : "false"} />' },
-    { code: '<input aria-invalid={undefined ? "true" : "false"} />' },
-
-    // TRISTATE
-    { code: '<div aria-checked={true} />' },
-    { code: '<div aria-checked="true" />' },
-    { code: '<div aria-checked={"false"} />' },
-    { code: '<div aria-checked={!false} />' },
-    { code: '<div aria-checked />' },
-    { code: '<div aria-checked={false} />' },
-    { code: '<div aria-checked={!true} />' },
-    { code: '<div aria-checked={!"yes"} />' },
-    { code: '<div aria-checked={foo} />' },
-    { code: '<div aria-checked={foo.bar} />' },
-    { code: '<div aria-checked="mixed" />' },
-    { code: '<div aria-checked={`mixed`} />' },
-    { code: '<div aria-checked={null} />' },
-    { code: '<div aria-checked={undefined} />' },
-
-    // INTEGER
-    { code: '<div aria-level={123} />' },
-    { code: '<div aria-level={-123} />' },
-    { code: '<div aria-level={+123} />' },
-    { code: '<div aria-level={~123} />' },
-    { code: '<div aria-level={"123"} />' },
-    { code: '<div aria-level={`123`} />' },
-    { code: '<div aria-level="123" />' },
-    { code: '<div aria-level={foo} />' },
-    { code: '<div aria-level={foo.bar} />' },
-    { code: '<div aria-level={null} />' },
-    { code: '<div aria-level={undefined} />' },
-
-    // NUMBER
-    { code: '<div aria-valuemax={123} />' },
-    { code: '<div aria-valuemax={-123} />' },
-    { code: '<div aria-valuemax={+123} />' },
-    { code: '<div aria-valuemax={~123} />' },
-    { code: '<div aria-valuemax={"123"} />' },
-    { code: '<div aria-valuemax={`123`} />' },
-    { code: '<div aria-valuemax="123" />' },
-    { code: '<div aria-valuemax={foo} />' },
-    { code: '<div aria-valuemax={foo.bar} />' },
-    { code: '<div aria-valuemax={null} />' },
-    { code: '<div aria-valuemax={undefined} />' },
-
-    // TOKEN
-    { code: '<div aria-sort="ascending" />' },
-    { code: '<div aria-sort="ASCENDING" />' },
-    { code: '<div aria-sort={"ascending"} />' },
-    { code: '<div aria-sort={`ascending`} />' },
-    { code: '<div aria-sort="descending" />' },
-    { code: '<div aria-sort={"descending"} />' },
-    { code: '<div aria-sort={`descending`} />' },
-    { code: '<div aria-sort="none" />' },
-    { code: '<div aria-sort={"none"} />' },
-    { code: '<div aria-sort={`none`} />' },
-    { code: '<div aria-sort="other" />' },
-    { code: '<div aria-sort={"other"} />' },
-    { code: '<div aria-sort={`other`} />' },
-    { code: '<div aria-sort={foo} />' },
-    { code: '<div aria-sort={foo.bar} />' },
-    { code: '<div aria-invalid={true} />' },
-    { code: '<div aria-invalid="true" />' },
-    { code: '<div aria-invalid={false} />' },
-    { code: '<div aria-invalid="false" />' },
-    { code: '<div aria-invalid="grammar" />' },
-    { code: '<div aria-invalid="spelling" />' },
-    { code: '<div aria-invalid={null} />' },
-    { code: '<div aria-invalid={undefined} />' },
-
-    // TOKENLIST
-    { code: '<div aria-relevant="additions" />' },
-    { code: '<div aria-relevant={"additions"} />' },
-    { code: '<div aria-relevant={`additions`} />' },
-    { code: '<div aria-relevant="additions removals" />' },
-    { code: '<div aria-relevant="additions additions" />' },
-    { code: '<div aria-relevant={"additions removals"} />' },
-    { code: '<div aria-relevant={`additions removals`} />' },
-    { code: '<div aria-relevant="additions removals text" />' },
-    { code: '<div aria-relevant={"additions removals text"} />' },
-    { code: '<div aria-relevant={`additions removals text`} />' },
-    { code: '<div aria-relevant="additions removals text all" />' },
-    { code: '<div aria-relevant={"additions removals text all"} />' },
-    { code: '<div aria-relevant={`removals additions text all`} />' },
-    { code: '<div aria-relevant={foo} />' },
-    { code: '<div aria-relevant={foo.bar} />' },
-    { code: '<div aria-relevant={null} />' },
-    { code: '<div aria-relevant={undefined} />' },
-
-    // ID
-    { code: '<div aria-activedescendant="ascending" />' },
-    { code: '<div aria-activedescendant="ASCENDING" />' },
-    { code: '<div aria-activedescendant={"ascending"} />' },
-    { code: '<div aria-activedescendant={`ascending`} />' },
-    { code: '<div aria-activedescendant="descending" />' },
-    { code: '<div aria-activedescendant={"descending"} />' },
-    { code: '<div aria-activedescendant={`descending`} />' },
-    { code: '<div aria-activedescendant="none" />' },
-    { code: '<div aria-activedescendant={"none"} />' },
-    { code: '<div aria-activedescendant={`none`} />' },
-    { code: '<div aria-activedescendant="other" />' },
-    { code: '<div aria-activedescendant={"other"} />' },
-    { code: '<div aria-activedescendant={`other`} />' },
-    { code: '<div aria-activedescendant={foo} />' },
-    { code: '<div aria-activedescendant={foo.bar} />' },
-    { code: '<div aria-activedescendant={null} />' },
-    { code: '<div aria-activedescendant={undefined} />' },
-
-    // IDLIST
-    { code: '<div aria-labelledby="additions" />' },
-    { code: '<div aria-labelledby={"additions"} />' },
-    { code: '<div aria-labelledby={`additions`} />' },
-    { code: '<div aria-labelledby="additions removals" />' },
-    { code: '<div aria-labelledby="additions additions" />' },
-    { code: '<div aria-labelledby={"additions removals"} />' },
-    { code: '<div aria-labelledby={`additions removals`} />' },
-    { code: '<div aria-labelledby="additions removals text" />' },
-    { code: '<div aria-labelledby={"additions removals text"} />' },
-    { code: '<div aria-labelledby={`additions removals text`} />' },
-    { code: '<div aria-labelledby="additions removals text all" />' },
-    { code: '<div aria-labelledby={"additions removals text all"} />' },
-    { code: '<div aria-labelledby={`removals additions text all`} />' },
-    { code: '<div aria-labelledby={foo} />' },
-    { code: '<div aria-labelledby={foo.bar} />' },
-    { code: '<div aria-labelledby={null} />' },
-    { code: '<div aria-labelledby={undefined} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    // BOOLEAN
-    { code: '<div aria-hidden="yes" />', errors: [errorMessage('aria-hidden')] },
-    { code: '<div aria-hidden="no" />', errors: [errorMessage('aria-hidden')] },
-    { code: '<div aria-hidden={1234} />', errors: [errorMessage('aria-hidden')] },
-    {
-      code: '<div aria-hidden={`${abc}`} />',
-      errors: [errorMessage('aria-hidden')],
-    },
-
-    // STRING
-    { code: '<div aria-label />', errors: [errorMessage('aria-label')] },
-    { code: '<div aria-label={true} />', errors: [errorMessage('aria-label')] },
-    { code: '<div aria-label={false} />', errors: [errorMessage('aria-label')] },
-    { code: '<div aria-label={1234} />', errors: [errorMessage('aria-label')] },
-    { code: '<div aria-label={!true} />', errors: [errorMessage('aria-label')] },
-
-    // TRISTATE
-    { code: '<div aria-checked="yes" />', errors: [errorMessage('aria-checked')] },
-    { code: '<div aria-checked="no" />', errors: [errorMessage('aria-checked')] },
-    { code: '<div aria-checked={1234} />', errors: [errorMessage('aria-checked')] },
-    {
-      code: '<div aria-checked={`${abc}`} />',
-      errors: [errorMessage('aria-checked')],
-    },
-
-    // INTEGER
-    { code: '<div aria-level="yes" />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level="no" />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level={`abc`} />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level={true} />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level={"false"} />', errors: [errorMessage('aria-level')] },
-    { code: '<div aria-level={!"false"} />', errors: [errorMessage('aria-level')] },
-
-    // NUMBER
-    { code: '<div aria-valuemax="yes" />', errors: [errorMessage('aria-valuemax')] },
-    { code: '<div aria-valuemax="no" />', errors: [errorMessage('aria-valuemax')] },
-    {
-      code: '<div aria-valuemax={`abc`} />',
-      errors: [errorMessage('aria-valuemax')],
-    },
-    {
-      code: '<div aria-valuemax={true} />',
-      errors: [errorMessage('aria-valuemax')],
-    },
-    { code: '<div aria-valuemax />', errors: [errorMessage('aria-valuemax')] },
-    {
-      code: '<div aria-valuemax={"false"} />',
-      errors: [errorMessage('aria-valuemax')],
-    },
-    {
-      code: '<div aria-valuemax={!"false"} />',
-      errors: [errorMessage('aria-valuemax')],
-    },
-
-    // TOKEN
-    { code: '<div aria-sort="" />', errors: [errorMessage('aria-sort')] },
-    { code: '<div aria-sort="descnding" />', errors: [errorMessage('aria-sort')] },
-    { code: '<div aria-sort />', errors: [errorMessage('aria-sort')] },
-    { code: '<div aria-sort={true} />', errors: [errorMessage('aria-sort')] },
-    { code: '<div aria-sort={"false"} />', errors: [errorMessage('aria-sort')] },
-    {
-      code: '<div aria-sort="ascending descending" />',
-      errors: [errorMessage('aria-sort')],
-    },
-
-    // TOKENLIST
-    { code: '<div aria-relevant="" />', errors: [errorMessage('aria-relevant')] },
-    {
-      code: '<div aria-relevant="foobar" />',
-      errors: [errorMessage('aria-relevant')],
-    },
-    { code: '<div aria-relevant />', errors: [errorMessage('aria-relevant')] },
-    {
-      code: '<div aria-relevant={true} />',
-      errors: [errorMessage('aria-relevant')],
-    },
-    {
-      code: '<div aria-relevant={"false"} />',
-      errors: [errorMessage('aria-relevant')],
-    },
-    {
-      code: '<div aria-relevant="additions removalss" />',
-      errors: [errorMessage('aria-relevant')],
-    },
-    {
-      code: '<div aria-relevant="additions removalss " />',
-      errors: [errorMessage('aria-relevant')],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-role-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-role-test.js
deleted file mode 100644
index 789bb2f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-role-test.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce aria role attribute is valid.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { roles } from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/aria-role';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = {
-  message: 'Elements with ARIA roles must use a valid, non-abstract ARIA role.',
-  type: 'JSXAttribute',
-};
-
-const roleKeys = [...roles.keys()];
-
-const validRoles = roleKeys.filter(role => roles.get(role).abstract === false);
-const invalidRoles = roleKeys.filter(role => roles.get(role).abstract === true);
-
-const createTests = roleNames => roleNames.map(role => ({
-  code: `<div role="${role.toLowerCase()}" />`,
-}));
-
-const validTests = createTests(validRoles);
-const invalidTests = createTests(invalidRoles).map((test) => {
-  const invalidTest = Object.assign({}, test);
-  invalidTest.errors = [errorMessage];
-  return invalidTest;
-});
-
-const ignoreNonDOMSchema = [{
-  ignoreNonDOM: true,
-}];
-
-ruleTester.run('aria-role', rule, {
-  valid: [
-    // Variables should pass, as we are only testing literals.
-    { code: '<div />' },
-    { code: '<div></div>' },
-    { code: '<div role={role} />' },
-    { code: '<div role={role || "button"} />' },
-    { code: '<div role={role || "foobar"} />' },
-    { code: '<div role="tabpanel row" />' },
-    { code: '<div role="switch" />' },
-    { code: '<div role="doc-abstract" />' },
-    { code: '<div role="doc-appendix doc-bibliography" />' },
-    { code: '<Bar baz />' },
-    { code: '<Foo role="bar" />', options: ignoreNonDOMSchema },
-    { code: '<fakeDOM role="bar" />', options: ignoreNonDOMSchema },
-    { code: '<img role="presentation" />', options: ignoreNonDOMSchema },
-  ].concat(validTests).map(parserOptionsMapper),
-
-  invalid: [
-    { code: '<div role="foobar" />', errors: [errorMessage] },
-    { code: '<div role="datepicker"></div>', errors: [errorMessage] },
-    { code: '<div role="range"></div>', errors: [errorMessage] },
-    { code: '<div role="Button"></div>', errors: [errorMessage] },
-    { code: '<div role=""></div>', errors: [errorMessage] },
-    { code: '<div role="tabpanel row foobar"></div>', errors: [errorMessage] },
-    { code: '<div role="tabpanel row range"></div>', errors: [errorMessage] },
-    { code: '<div role="doc-endnotes range"></div>', errors: [errorMessage] },
-    { code: '<div role />', errors: [errorMessage] },
-    { code: '<div role={null}></div>', errors: [errorMessage] },
-    { code: '<Foo role="datepicker" />', errors: [errorMessage] },
-    { code: '<Foo role="Button" />', errors: [errorMessage] },
-  ].concat(invalidTests).map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-unsupported-elements-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-unsupported-elements-test.js
deleted file mode 100644
index 3862b35..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/aria-unsupported-elements-test.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce that elements that do not support ARIA roles,
- *  states and properties do not have those attributes.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { dom } from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/aria-unsupported-elements';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = invalidProp => ({
-  message: `This element does not support ARIA roles, states and properties. \
-Try removing the prop '${invalidProp}'.`,
-  type: 'JSXOpeningElement',
-});
-
-const domElements = [...dom.keys()];
-// Generate valid test cases
-const roleValidityTests = domElements.map((element) => {
-  const isReserved = dom.get(element).reserved || false;
-  const role = isReserved ? '' : 'role';
-
-  return {
-    code: `<${element} ${role} />`,
-  };
-});
-
-const ariaValidityTests = domElements.map((element) => {
-  const isReserved = dom.get(element).reserved || false;
-  const aria = isReserved ? '' : 'aria-hidden';
-
-  return {
-    code: `<${element} ${aria} />`,
-  };
-}).concat({
-  code: '<fake aria-hidden />',
-  errors: [errorMessage('aria-hidden')],
-});
-
-// Generate invalid test cases.
-const invalidRoleValidityTests = domElements
-  .filter(element => Boolean(dom.get(element).reserved))
-  .map(reservedElem => ({
-    code: `<${reservedElem} role {...props} />`,
-    errors: [errorMessage('role')],
-  }));
-
-const invalidAriaValidityTests = domElements
-  .filter(element => Boolean(dom.get(element).reserved))
-  .map(reservedElem => ({
-    code: `<${reservedElem} aria-hidden aria-role="none" {...props} />`,
-    errors: [errorMessage('aria-hidden')],
-  }));
-
-ruleTester.run('aria-unsupported-elements', rule, {
-  valid: roleValidityTests.concat(ariaValidityTests).map(parserOptionsMapper),
-  invalid: invalidRoleValidityTests.concat(invalidAriaValidityTests)
-    .map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key-events-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key-events-test.js
deleted file mode 100644
index 7d1328f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/click-events-have-key-events-test.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce a clickable non-interactive element has at least 1 keyboard event listener.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/click-events-have-key-events';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = 'Visible, non-interactive elements with click handlers must have at least one keyboard listener.';
-
-const expectedError = {
-  message: errorMessage,
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('click-events-have-key-events', rule, {
-  valid: [
-    { code: '<div onClick={() => void 0} onKeyDown={foo}/>;' },
-    { code: '<div onClick={() => void 0} onKeyUp={foo} />;' },
-    { code: '<div onClick={() => void 0} onKeyPress={foo}/>;' },
-    { code: '<div onClick={() => void 0} onKeyDown={foo} onKeyUp={bar} />;' },
-    { code: '<div onClick={() => void 0} onKeyDown={foo} {...props} />;' },
-    { code: '<div className="foo" />;' },
-    { code: '<div onClick={() => void 0} aria-hidden />;' },
-    { code: '<div onClick={() => void 0} aria-hidden={true} />;' },
-    { code: '<div onClick={() => void 0} aria-hidden={false} onKeyDown={foo} />;' },
-    {
-      code: '<div onClick={() => void 0} onKeyDown={foo} aria-hidden={undefined} />;',
-    },
-    { code: '<input type="text" onClick={() => void 0} />' },
-    { code: '<input onClick={() => void 0} />' },
-    { code: '<button onClick={() => void 0} className="foo" />' },
-    { code: '<option onClick={() => void 0} className="foo" />' },
-    { code: '<select onClick={() => void 0} className="foo" />' },
-    { code: '<textarea onClick={() => void 0} className="foo" />' },
-    { code: '<a onClick={() => void 0} href="http://x.y.z" />' },
-    { code: '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' },
-    { code: '<input onClick={() => void 0} type="hidden" />;' },
-    { code: '<div onClick={() => void 0} role="presentation" />;' },
-    { code: '<div onClick={() => void 0} role="none" />;' },
-    { code: '<TestComponent onClick={doFoo} />' },
-    { code: '<Button onClick={doFoo} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<div onClick={() => void 0} />;', errors: [expectedError] },
-    {
-      code: '<div onClick={() => void 0} role={undefined} />;',
-      errors: [expectedError],
-    },
-    { code: '<div onClick={() => void 0} {...props} />;', errors: [expectedError] },
-    { code: '<section onClick={() => void 0} />;', errors: [expectedError] },
-    { code: '<main onClick={() => void 0} />;', errors: [expectedError] },
-    { code: '<article onClick={() => void 0} />;', errors: [expectedError] },
-    { code: '<header onClick={() => void 0} />;', errors: [expectedError] },
-    { code: '<footer onClick={() => void 0} />;', errors: [expectedError] },
-    {
-      code: '<div onClick={() => void 0} aria-hidden={false} />;',
-      errors: [expectedError],
-    },
-    { code: '<a onClick={() => void 0} />', errors: [expectedError] },
-    { code: '<a tabIndex="0" onClick={() => void 0} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test.js
deleted file mode 100644
index 043a141..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/control-has-associated-label-test.js
+++ /dev/null
@@ -1,309 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Control elements must be associated with a text label
- * @author jessebeach
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-import rule from '../../../src/rules/control-has-associated-label';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const ruleName = 'jsx-a11y/control-has-associated-label';
-
-const expectedError = {
-  message: 'A control must be associated with a text label.',
-  type: 'JSXOpeningElement',
-};
-
-const alwaysValid = [
-  // Custom Control Components
-  { code: '<CustomControl><span><span>Save</span></span></CustomControl>', options: [{ depth: 3, controlComponents: ['CustomControl'] }] },
-  { code: '<CustomControl><span><span label="Save"></span></span></CustomControl>', options: [{ depth: 3, controlComponents: ['CustomControl'], labelAttributes: ['label'] }] },
-  // Interactive Elements
-  { code: '<button>Save</button>' },
-  { code: '<button><span>Save</span></button>' },
-  { code: '<button><span><span>Save</span></span></button>', options: [{ depth: 3 }] },
-  { code: '<button><span><span><span><span><span><span><span><span>Save</span></span></span></span></span></span></span></span></button>', options: [{ depth: 9 }] },
-  { code: '<button><img alt="Save" /></button>' },
-  { code: '<button aria-label="Save" />' },
-  { code: '<button><span aria-label="Save" /></button>' },
-  { code: '<button aria-labelledby="js_1" />' },
-  { code: '<button><span aria-labelledby="js_1" /></button>' },
-  { code: '<button>{sureWhyNot}</button>' },
-  { code: '<button><span><span label="Save"></span></span></button>', options: [{ depth: 3, labelAttributes: ['label'] }] },
-  { code: '<a href="#">Save</a>' },
-  { code: '<area href="#">Save</area>' },
-  { code: '<label>Save</label>' },
-  { code: '<link>Save</link>' },
-  { code: '<menuitem>Save</menuitem>' },
-  { code: '<option>Save</option>' },
-  { code: '<th>Save</th>' },
-  // Interactive Roles
-  { code: '<div role="button">Save</div>' },
-  { code: '<div role="checkbox">Save</div>' },
-  { code: '<div role="columnheader">Save</div>' },
-  { code: '<div role="combobox">Save</div>' },
-  { code: '<div role="gridcell">Save</div>' },
-  { code: '<div role="link">Save</div>' },
-  { code: '<div role="menuitem">Save</div>' },
-  { code: '<div role="menuitemcheckbox">Save</div>' },
-  { code: '<div role="menuitemradio">Save</div>' },
-  { code: '<div role="option">Save</div>' },
-  { code: '<div role="progressbar">Save</div>' },
-  { code: '<div role="radio">Save</div>' },
-  { code: '<div role="rowheader">Save</div>' },
-  { code: '<div role="searchbox">Save</div>' },
-  { code: '<div role="slider">Save</div>' },
-  { code: '<div role="spinbutton">Save</div>' },
-  { code: '<div role="switch">Save</div>' },
-  { code: '<div role="tab">Save</div>' },
-  { code: '<div role="textbox">Save</div>' },
-  { code: '<div role="treeitem">Save</div>' },
-  { code: '<div role="button" aria-label="Save" />' },
-  { code: '<div role="checkbox" aria-label="Save" />' },
-  { code: '<div role="columnheader" aria-label="Save" />' },
-  { code: '<div role="combobox" aria-label="Save" />' },
-  { code: '<div role="gridcell" aria-label="Save" />' },
-  { code: '<div role="link" aria-label="Save" />' },
-  { code: '<div role="menuitem" aria-label="Save" />' },
-  { code: '<div role="menuitemcheckbox" aria-label="Save" />' },
-  { code: '<div role="menuitemradio" aria-label="Save" />' },
-  { code: '<div role="option" aria-label="Save" />' },
-  { code: '<div role="progressbar" aria-label="Save" />' },
-  { code: '<div role="radio" aria-label="Save" />' },
-  { code: '<div role="rowheader" aria-label="Save" />' },
-  { code: '<div role="searchbox" aria-label="Save" />' },
-  { code: '<div role="slider" aria-label="Save" />' },
-  { code: '<div role="spinbutton" aria-label="Save" />' },
-  { code: '<div role="switch" aria-label="Save" />' },
-  { code: '<div role="tab" aria-label="Save" />' },
-  { code: '<div role="textbox" aria-label="Save" />' },
-  { code: '<div role="treeitem" aria-label="Save" />' },
-  { code: '<div role="button" aria-labelledby="js_1" />' },
-  { code: '<div role="checkbox" aria-labelledby="js_1" />' },
-  { code: '<div role="columnheader" aria-labelledby="js_1" />' },
-  { code: '<div role="combobox" aria-labelledby="js_1" />' },
-  { code: '<div role="gridcell" aria-labelledby="Save" />' },
-  { code: '<div role="link" aria-labelledby="js_1" />' },
-  { code: '<div role="menuitem" aria-labelledby="js_1" />' },
-  { code: '<div role="menuitemcheckbox" aria-labelledby="js_1" />' },
-  { code: '<div role="menuitemradio" aria-labelledby="js_1" />' },
-  { code: '<div role="option" aria-labelledby="js_1" />' },
-  { code: '<div role="progressbar" aria-labelledby="js_1" />' },
-  { code: '<div role="radio" aria-labelledby="js_1" />' },
-  { code: '<div role="rowheader" aria-labelledby="js_1" />' },
-  { code: '<div role="searchbox" aria-labelledby="js_1" />' },
-  { code: '<div role="slider" aria-labelledby="js_1" />' },
-  { code: '<div role="spinbutton" aria-labelledby="js_1" />' },
-  { code: '<div role="switch" aria-labelledby="js_1" />' },
-  { code: '<div role="tab" aria-labelledby="js_1" />' },
-  { code: '<div role="textbox" aria-labelledby="js_1" />' },
-  { code: '<div role="treeitem" aria-labelledby="js_1" />' },
-  // Non-interactive Elements
-  { code: '<abbr />' },
-  { code: '<article />' },
-  { code: '<blockquote />' },
-  { code: '<br />' },
-  { code: '<caption />' },
-  { code: '<dd />' },
-  { code: '<details />' },
-  { code: '<dfn />' },
-  { code: '<dialog />' },
-  { code: '<dir />' },
-  { code: '<dl />' },
-  { code: '<dt />' },
-  { code: '<fieldset />' },
-  { code: '<figcaption />' },
-  { code: '<figure />' },
-  { code: '<footer />' },
-  { code: '<form />' },
-  { code: '<frame />' },
-  { code: '<h1 />' },
-  { code: '<h2 />' },
-  { code: '<h3 />' },
-  { code: '<h4 />' },
-  { code: '<h5 />' },
-  { code: '<h6 />' },
-  { code: '<hr />' },
-  { code: '<iframe />' },
-  { code: '<img />' },
-  { code: '<legend />' },
-  { code: '<li />' },
-  { code: '<link />' },
-  { code: '<main />' },
-  { code: '<mark />' },
-  { code: '<marquee />' },
-  { code: '<menu />' },
-  { code: '<meter />' },
-  { code: '<nav />' },
-  { code: '<ol />' },
-  { code: '<p />' },
-  { code: '<pre />' },
-  { code: '<progress />' },
-  { code: '<ruby />' },
-  { code: '<section />' },
-  { code: '<table />' },
-  { code: '<tbody />' },
-  { code: '<td />' },
-  { code: '<tfoot />' },
-  { code: '<thead />' },
-  { code: '<time />' },
-  { code: '<ul />' },
-  // Non-interactive Roles
-  { code: '<div role="alert" />' },
-  { code: '<div role="alertdialog" />' },
-  { code: '<div role="application" />' },
-  { code: '<div role="article" />' },
-  { code: '<div role="banner" />' },
-  { code: '<div role="cell" />' },
-  { code: '<div role="complementary" />' },
-  { code: '<div role="contentinfo" />' },
-  { code: '<div role="definition" />' },
-  { code: '<div role="dialog" />' },
-  { code: '<div role="directory" />' },
-  { code: '<div role="document" />' },
-  { code: '<div role="feed" />' },
-  { code: '<div role="figure" />' },
-  { code: '<div role="form" />' },
-  { code: '<div role="group" />' },
-  { code: '<div role="heading" />' },
-  { code: '<div role="img" />' },
-  { code: '<div role="list" />' },
-  { code: '<div role="listitem" />' },
-  { code: '<div role="log" />' },
-  { code: '<div role="main" />' },
-  { code: '<div role="marquee" />' },
-  { code: '<div role="math" />' },
-  { code: '<div role="navigation" />' },
-  { code: '<div role="none" />' },
-  { code: '<div role="note" />' },
-  { code: '<div role="presentation" />' },
-  { code: '<div role="region" />' },
-  { code: '<div role="rowgroup" />' },
-  { code: '<div role="scrollbar" />' },
-  { code: '<div role="search" />' },
-  { code: '<div role="separator" />' },
-  { code: '<div role="status" />' },
-  { code: '<div role="table" />' },
-  { code: '<div role="tabpanel" />' },
-  { code: '<div role="term" />' },
-  { code: '<div role="timer" />' },
-  { code: '<div role="tooltip" />' },
-  // Via config
-  // Inputs. Ignore them because they might get a label from a wrapping label element.
-  { code: '<input />' },
-  { code: '<input type="button" />' },
-  { code: '<input type="checkbox" />' },
-  { code: '<input type="color" />' },
-  { code: '<input type="date" />' },
-  { code: '<input type="datetime" />' },
-  { code: '<input type="email" />' },
-  { code: '<input type="file" />' },
-  { code: '<input type="image" />' },
-  { code: '<input type="month" />' },
-  { code: '<input type="number" />' },
-  { code: '<input type="password" />' },
-  { code: '<input type="radio" />' },
-  { code: '<input type="range" />' },
-  { code: '<input type="reset" />' },
-  { code: '<input type="search" />' },
-  { code: '<input type="submit" />' },
-  { code: '<input type="tel" />' },
-  { code: '<input type="text" />' },
-  { code: '<input type="time" />' },
-  { code: '<input type="url" />' },
-  { code: '<input type="week" />' },
-  // Marginal interactive elements. It is difficult to insist that these
-  // elements contain a text label.
-  { code: '<audio />' },
-  { code: '<canvas />' },
-  { code: '<embed />' },
-  { code: '<textarea />' },
-  { code: '<tr />' },
-  { code: '<video />' },
-  // Interactive roles to ignore
-  { code: '<div role="grid" />' },
-  { code: '<div role="listbox" />' },
-  { code: '<div role="menu" />' },
-  { code: '<div role="menubar" />' },
-  { code: '<div role="radiogroup" />' },
-  { code: '<div role="row" />' },
-  { code: '<div role="tablist" />' },
-  { code: '<div role="toolbar" />' },
-  { code: '<div role="tree" />' },
-  { code: '<div role="treegrid" />' },
-];
-const neverValid = [
-  { code: '<button />', errors: [expectedError] },
-  { code: '<button><span /></button>', errors: [expectedError] },
-  { code: '<button><img /></button>', errors: [expectedError] },
-  { code: '<button><span title="This is not a real label" /></button>', errors: [expectedError] },
-  { code: '<button><span><span><span>Save</span></span></span></button>', options: [{ depth: 3 }], errors: [expectedError] },
-  { code: '<CustomControl><span><span></span></span></CustomControl>', options: [{ depth: 3, controlComponents: ['CustomControl'] }], errors: [expectedError] },
-  { code: '<a href="#" />', errors: [expectedError] },
-  { code: '<area href="#" />', errors: [expectedError] },
-  { code: '<label />', errors: [expectedError] },
-  { code: '<menuitem />', errors: [expectedError] },
-  { code: '<option />', errors: [expectedError] },
-  { code: '<th />', errors: [expectedError] },
-  // Interactive Roles
-  { code: '<div role="button" />', errors: [expectedError] },
-  { code: '<div role="checkbox" />', errors: [expectedError] },
-  { code: '<div role="columnheader" />', errors: [expectedError] },
-  { code: '<div role="combobox" />', errors: [expectedError] },
-  { code: '<div role="link" />', errors: [expectedError] },
-  { code: '<div role="gridcell" />', errors: [expectedError] },
-  { code: '<div role="menuitem" />', errors: [expectedError] },
-  { code: '<div role="menuitemcheckbox" />', errors: [expectedError] },
-  { code: '<div role="menuitemradio" />', errors: [expectedError] },
-  { code: '<div role="option" />', errors: [expectedError] },
-  { code: '<div role="progressbar" />', errors: [expectedError] },
-  { code: '<div role="radio" />', errors: [expectedError] },
-  { code: '<div role="rowheader" />', errors: [expectedError] },
-  { code: '<div role="searchbox" />', errors: [expectedError] },
-  { code: '<div role="slider" />', errors: [expectedError] },
-  { code: '<div role="spinbutton" />', errors: [expectedError] },
-  { code: '<div role="switch" />', errors: [expectedError] },
-  { code: '<div role="tab" />', errors: [expectedError] },
-  { code: '<div role="textbox" />', errors: [expectedError] },
-];
-
-const recommendedOptions = (configs.recommended.rules[ruleName][1] || {});
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-const strictOptions = (configs.strict.rules[ruleName][1] || {});
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test.js
deleted file mode 100644
index 7e762b1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/heading-has-content-test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce heading (h1, h2, etc) elements contain accessible content.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/heading-has-content';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Headings must have content and the content must be accessible by a screen reader.',
-  type: 'JSXOpeningElement',
-};
-
-const components = [{
-  components: ['Heading', 'Title'],
-}];
-
-ruleTester.run('heading-has-content', rule, {
-  valid: [
-    // DEFAULT ELEMENT TESTS
-    { code: '<div />;' },
-    { code: '<h1>Foo</h1>' },
-    { code: '<h2>Foo</h2>' },
-    { code: '<h3>Foo</h3>' },
-    { code: '<h4>Foo</h4>' },
-    { code: '<h5>Foo</h5>' },
-    { code: '<h6>Foo</h6>' },
-    { code: '<h6>123</h6>' },
-    { code: '<h1><Bar /></h1>' },
-    { code: '<h1>{foo}</h1>' },
-    { code: '<h1>{foo.bar}</h1>' },
-    { code: '<h1 dangerouslySetInnerHTML={{ __html: "foo" }} />' },
-    { code: '<h1 children={children} />' },
-    // CUSTOM ELEMENT TESTS FOR COMPONENTS OPTION
-    { code: '<Heading>Foo</Heading>', options: components },
-    { code: '<Title>Foo</Title>', options: components },
-    { code: '<Heading><Bar /></Heading>', options: components },
-    { code: '<Heading>{foo}</Heading>', options: components },
-    { code: '<Heading>{foo.bar}</Heading>', options: components },
-    { code: '<Heading dangerouslySetInnerHTML={{ __html: "foo" }} />', options: components },
-    { code: '<Heading children={children} />', options: components },
-    { code: '<h1 aria-hidden />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    // DEFAULT ELEMENT TESTS
-    { code: '<h1 />', errors: [expectedError] },
-    { code: '<h1><Bar aria-hidden /></h1>', errors: [expectedError] },
-    { code: '<h1>{undefined}</h1>', errors: [expectedError] },
-
-    // CUSTOM ELEMENT TESTS FOR COMPONENTS OPTION
-    { code: '<Heading />', errors: [expectedError], options: components },
-    { code: '<Heading><Bar aria-hidden /></Heading>', errors: [expectedError], options: components },
-    { code: '<Heading>{undefined}</Heading>', errors: [expectedError], options: components },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/html-has-lang-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/html-has-lang-test.js
deleted file mode 100644
index ff3fb25..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/html-has-lang-test.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce html element has lang prop.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/html-has-lang';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: '<html> elements must have the lang prop.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('html-has-lang', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<html lang="en" />' },
-    { code: '<html lang="en-US" />' },
-    { code: '<html lang={foo} />' },
-    { code: '<html lang />' },
-    { code: '<HTML />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<html />', errors: [expectedError] },
-    { code: '<html {...props} />', errors: [expectedError] },
-    { code: '<html lang={undefined} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/iframe-has-title-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/iframe-has-title-test.js
deleted file mode 100644
index ed07483..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/iframe-has-title-test.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce iframe elements have a title attribute.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/iframe-has-title';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: '<iframe> elements must have a unique title property.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('html-has-lang', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<iframe title="Unique title" />' },
-    { code: '<iframe title={foo} />' },
-    { code: '<FooComponent />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<iframe />', errors: [expectedError] },
-    { code: '<iframe {...props} />', errors: [expectedError] },
-    { code: '<iframe title={undefined} />', errors: [expectedError] },
-    { code: '<iframe title="" />', errors: [expectedError] },
-    { code: '<iframe title={false} />', errors: [expectedError] },
-    { code: '<iframe title={true} />', errors: [expectedError] },
-    { code: "<iframe title={''} />", errors: [expectedError] },
-    { code: '<iframe title={``} />', errors: [expectedError] },
-    { code: '<iframe title={""} />', errors: [expectedError] },
-    { code: '<iframe title={42} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/img-redundant-alt-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/img-redundant-alt-test.js
deleted file mode 100644
index a345352..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/img-redundant-alt-test.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce img alt attribute does not have the word image, picture, or photo.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/img-redundant-alt';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const array = [{
-  components: ['Image'],
-  words: ['Word1', 'Word2'],
-}];
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Redundant alt attribute. Screen-readers already announce `img` tags as an image. You don’t need to use the words `image`, `photo,` or `picture` (or any specified custom words) in the alt prop.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('img-redundant-alt', rule, {
-  valid: [
-    { code: '<img alt="foo" />;' },
-    { code: '<img alt="picture of me taking a photo of an image" aria-hidden />' },
-    { code: '<img aria-hidden alt="photo of image" />' },
-    { code: '<img ALt="foo" />;' },
-    { code: '<img {...this.props} alt="foo" />' },
-    { code: '<img {...this.props} alt={"foo"} />' },
-    { code: '<img {...this.props} alt={alt} />' },
-    { code: '<a />' },
-    { code: '<img />' },
-    { code: '<IMG />' },
-    { code: '<img alt={undefined} />' },
-    { code: '<img alt={`this should pass for ${now}`} />' },
-    { code: '<img alt={`this should pass for ${photo}`} />' },
-    { code: '<img alt={`this should pass for ${image}`} />' },
-    { code: '<img alt={`this should pass for ${picture}`} />' },
-    { code: '<img alt={`${photo}`} />' },
-    { code: '<img alt={`${image}`} />' },
-    { code: '<img alt={`${picture}`} />' },
-    { code: '<img alt={"undefined"} />' },
-    { code: '<img alt={() => {}} />' },
-    { code: '<img alt={function(e){}} />' },
-    { code: '<img aria-hidden={false} alt="Doing cool things." />' },
-    { code: '<UX.Layout>test</UX.Layout>' },
-    { code: '<img alt={imageAlt} />' },
-    { code: '<img alt />' },
-    { code: '<img alt="Photography" />;' },
-    { code: '<img alt="ImageMagick" />;' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<img alt="Photo of friend." />;', errors: [expectedError] },
-    { code: '<img alt="Picture of friend." />;', errors: [expectedError] },
-    { code: '<img alt="Image of friend." />;', errors: [expectedError] },
-    { code: '<img alt="PhOtO of friend." />;', errors: [expectedError] },
-    { code: '<img alt={"photo"} />;', errors: [expectedError] },
-    { code: '<img alt="piCTUre of friend." />;', errors: [expectedError] },
-    { code: '<img alt="imAGE of friend." />;', errors: [expectedError] },
-    {
-      code: '<img alt="photo of cool person" aria-hidden={false} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt="picture of cool person" aria-hidden={false} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt="image of cool person" aria-hidden={false} />',
-      errors: [expectedError],
-    },
-    { code: '<img alt="photo" {...this.props} />', errors: [expectedError] },
-    { code: '<img alt="image" {...this.props} />', errors: [expectedError] },
-    { code: '<img alt="picture" {...this.props} />', errors: [expectedError] },
-    {
-      code: '<img alt={`picture doing ${things}`} {...this.props} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt={`photo doing ${things}`} {...this.props} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt={`image doing ${things}`} {...this.props} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt={`picture doing ${picture}`} {...this.props} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt={`photo doing ${photo}`} {...this.props} />',
-      errors: [expectedError],
-    },
-    {
-      code: '<img alt={`image doing ${image}`} {...this.props} />',
-      errors: [expectedError],
-    },
-
-    // TESTS FOR ARRAY OPTION TESTS
-    { code: '<img alt="Word1" />;', options: array, errors: [expectedError] },
-    { code: '<img alt="Word2" />;', options: array, errors: [expectedError] },
-    { code: '<Image alt="Word1" />;', options: array, errors: [expectedError] },
-    { code: '<Image alt="Word2" />;', options: array, errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/interactive-supports-focus-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/interactive-supports-focus-test.js
deleted file mode 100644
index b2ca2bd..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/interactive-supports-focus-test.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce that elements with onClick handlers must be focusable.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import includes from 'array-includes';
-import { RuleTester } from 'eslint';
-import {
-  eventHandlers,
-  eventHandlersByType,
-} from 'jsx-ast-utils';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/interactive-supports-focus';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-function template(strings, ...keys) {
-  return (...values) => keys.reduce(
-    (acc, k, i) => acc + (values[k] || '') + strings[i + 1],
-    strings[0],
-  );
-}
-
-const ruleName = 'interactive-supports-focus';
-const type = 'JSXOpeningElement';
-const codeTemplate = template`<${0} role="${1}" ${2}={() => void 0} />`;
-const tabindexTemplate = template`<${0} role="${1}" ${2}={() => void 0} tabIndex="0" />`;
-const tabbableTemplate = template`Elements with the '${0}' interactive role must be tabbable.`;
-const focusableTemplate = template`Elements with the '${0}' interactive role must be focusable.`;
-
-const recommendedOptions = configs.recommended.rules[`jsx-a11y/${ruleName}`][1] || {};
-
-const strictOptions = configs.strict.rules[`jsx-a11y/${ruleName}`][1] || {};
-
-const alwaysValid = [
-  { code: '<div />' },
-  { code: '<div aria-hidden onClick={() => void 0} />' },
-  { code: '<div aria-hidden={true == true} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={true === true} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={hidden !== false} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={hidden != false} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={1 < 2} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={1 <= 2} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={2 > 1} onClick={() => void 0} />' },
-  { code: '<div aria-hidden={2 >= 1} onClick={() => void 0} />' },
-  { code: '<div onClick={() => void 0} />;' },
-  { code: '<div onClick={() => void 0} tabIndex={undefined} />;' },
-  { code: '<div onClick={() => void 0} tabIndex="bad" />;' },
-  { code: '<div onClick={() => void 0} role={undefined} />;' },
-  { code: '<div role="section" onClick={() => void 0} />' },
-  { code: '<div onClick={() => void 0} aria-hidden={false} />;' },
-  { code: '<div onClick={() => void 0} {...props} />;' },
-  { code: '<input type="text" onClick={() => void 0} />' },
-  { code: '<input type="hidden" onClick={() => void 0} tabIndex="-1" />' },
-  { code: '<input type="hidden" onClick={() => void 0} tabIndex={-1} />' },
-  { code: '<input onClick={() => void 0} />' },
-  { code: '<input onClick={() => void 0} role="combobox" />' },
-  { code: '<button onClick={() => void 0} className="foo" />' },
-  { code: '<option onClick={() => void 0} className="foo" />' },
-  { code: '<select onClick={() => void 0} className="foo" />' },
-  { code: '<area href="#" onClick={() => void 0} className="foo" />' },
-  { code: '<area onClick={() => void 0} className="foo" />' },
-  { code: '<textarea onClick={() => void 0} className="foo" />' },
-  { code: '<a onClick="showNextPage();">Next page</a>' },
-  { code: '<a onClick="showNextPage();" tabIndex={undefined}>Next page</a>' },
-  { code: '<a onClick="showNextPage();" tabIndex="bad">Next page</a>' },
-  { code: '<a onClick={() => void 0} />' },
-  { code: '<a tabIndex="0" onClick={() => void 0} />' },
-  { code: '<a tabIndex={dynamicTabIndex} onClick={() => void 0} />' },
-  { code: '<a tabIndex={0} onClick={() => void 0} />' },
-  { code: '<a role="button" href="#" onClick={() => void 0} />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" tabIndex={0} />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" role="button" />' },
-  { code: '<TestComponent onClick={doFoo} />' },
-  { code: '<input onClick={() => void 0} type="hidden" />;' },
-  { code: '<span onClick="submitForm();">Submit</span>' },
-  { code: '<span onClick="submitForm();" tabIndex={undefined}>Submit</span>' },
-  { code: '<span onClick="submitForm();" tabIndex="bad">Submit</span>' },
-  { code: '<span onClick="doSomething();" tabIndex="0">Click me!</span>' },
-  { code: '<span onClick="doSomething();" tabIndex={0}>Click me!</span>' },
-  { code: '<span onClick="doSomething();" tabIndex="-1">Click me too!</span>' },
-  {
-    code: '<a href="javascript:void(0);" onClick="doSomething();">Click ALL the things!</a>',
-  },
-  { code: '<section onClick={() => void 0} />;' },
-  { code: '<main onClick={() => void 0} />;' },
-  { code: '<article onClick={() => void 0} />;' },
-  { code: '<header onClick={() => void 0} />;' },
-  { code: '<footer onClick={() => void 0} />;' },
-  { code: '<div role="button" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="checkbox" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="link" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="menuitem" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="menuitemcheckbox" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="menuitemradio" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="option" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="radio" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="spinbutton" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="switch" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="tab" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="textbox" tabIndex="0" onClick={() => void 0} />' },
-  { code: '<div role="textbox" aria-disabled="true" onClick={() => void 0} />' },
-  { code: '<Foo.Bar onClick={() => void 0} aria-hidden={false} />;' },
-  { code: '<Input onClick={() => void 0} type="hidden" />;' },
-];
-
-const interactiveRoles = [
-  'button',
-  'checkbox',
-  'link',
-  'gridcell',
-  'menuitem',
-  'menuitemcheckbox',
-  'menuitemradio',
-  'option',
-  'radio',
-  'searchbox',
-  'slider',
-  'spinbutton',
-  'switch',
-  'tab',
-  'textbox',
-  'treeitem',
-];
-
-const recommendedRoles = [
-  'button',
-  'checkbox',
-  'link',
-  'searchbox',
-  'spinbutton',
-  'switch',
-  'textbox',
-];
-
-const strictRoles = [
-  'button',
-  'checkbox',
-  'link',
-  'progressbar',
-  'searchbox',
-  'slider',
-  'spinbutton',
-  'switch',
-  'textbox',
-];
-
-const staticElements = [
-  'div',
-];
-
-const triggeringHandlers = [
-  ...eventHandlersByType.mouse,
-  ...eventHandlersByType.keyboard,
-];
-
-const passReducer = (roles, handlers, messageTemplate) => (
-  staticElements.reduce((elementAcc, element) => (
-    elementAcc.concat(roles.reduce((roleAcc, role) => (
-      roleAcc.concat(handlers.map(handler => ({
-        code: messageTemplate(element, role, handler),
-      })))
-    ), []))
-  ), [])
-);
-
-const failReducer = (roles, handlers, messageTemplate) => (
-  staticElements.reduce((elementAcc, element) => (
-    elementAcc.concat(roles.reduce((roleAcc, role) => (
-      roleAcc.concat(handlers.map(handler => ({
-        code: codeTemplate(element, role, handler),
-        errors: [{
-          type,
-          message: messageTemplate(role),
-        }],
-      })))
-    ), []))
-  ), [])
-);
-
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    ...passReducer(
-      interactiveRoles,
-      eventHandlers.filter(handler => !includes(triggeringHandlers, handler)),
-      codeTemplate,
-    ),
-    ...passReducer(
-      interactiveRoles.filter(role => !includes(recommendedRoles, role)),
-      eventHandlers.filter(handler => includes(triggeringHandlers, handler)),
-      tabindexTemplate,
-    ),
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...failReducer(recommendedRoles, triggeringHandlers, tabbableTemplate),
-    ...failReducer(
-      interactiveRoles.filter(role => !includes(recommendedRoles, role)),
-      triggeringHandlers,
-      focusableTemplate,
-    ),
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-    ...passReducer(
-      interactiveRoles,
-      eventHandlers.filter(handler => !includes(triggeringHandlers, handler)),
-      codeTemplate,
-    ),
-    ...passReducer(
-      interactiveRoles.filter(role => !includes(strictRoles, role)),
-      eventHandlers.filter(handler => includes(triggeringHandlers, handler)),
-      tabindexTemplate,
-    ),
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...failReducer(strictRoles, triggeringHandlers, tabbableTemplate),
-    ...failReducer(
-      interactiveRoles.filter(role => !includes(strictRoles, role)),
-      triggeringHandlers,
-      focusableTemplate,
-    ),
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-associated-control-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-associated-control-test.js
deleted file mode 100644
index 9b7d9f5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-associated-control-test.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce label tags have an associated control.
- * @author Jesse Beach
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/label-has-associated-control';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const ruleName = 'label-has-associated-control';
-
-const expectedError = {
-  message: 'A form label must be associated with a control.',
-  type: 'JSXOpeningElement',
-};
-
-const htmlForValid = [
-  { code: '<label htmlFor="js_id"><span><span><span>A label</span></span></span></label>', options: [{ depth: 4 }] },
-  { code: '<label htmlFor="js_id" aria-label="A label" />' },
-  { code: '<label htmlFor="js_id" aria-labelledby="A label" />' },
-  // Custom label component.
-  { code: '<CustomLabel htmlFor="js_id" aria-label="A label" />', options: [{ labelComponents: ['CustomLabel'] }] },
-  { code: '<CustomLabel htmlFor="js_id" label="A label" />', options: [{ labelAttributes: ['label'], labelComponents: ['CustomLabel'] }] },
-  // Custom label attributes.
-  { code: '<label htmlFor="js_id" label="A label" />', options: [{ labelAttributes: ['label'] }] },
-];
-const nestingValid = [
-  { code: '<label>A label<input /></label>' },
-  { code: '<label>A label<textarea /></label>' },
-  { code: '<label><img alt="A label" /><input /></label>' },
-  { code: '<label><img aria-label="A label" /><input /></label>' },
-  { code: '<label><span>A label<input /></span></label>' },
-  { code: '<label><span><span>A label<input /></span></span></label>', options: [{ depth: 3 }] },
-  { code: '<label><span><span><span>A label<input /></span></span></span></label>', options: [{ depth: 4 }] },
-  { code: '<label><span><span><span><span>A label</span><input /></span></span></span></label>', options: [{ depth: 5 }] },
-  { code: '<label><span><span><span><span aria-label="A label" /><input /></span></span></span></label>', options: [{ depth: 5 }] },
-  { code: '<label><span><span><span><input aria-label="A label" /></span></span></span></label>', options: [{ depth: 5 }] },
-  // Custom controlComponents.
-  { code: '<label><span>A label<CustomInput /></span></label>', options: [{ controlComponents: ['CustomInput'] }] },
-  { code: '<CustomLabel><span>A label<CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'] }] },
-  { code: '<CustomLabel><span label="A label"><CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'], labelAttributes: ['label'] }] },
-];
-
-const bothValid = [
-  { code: '<label htmlFor="js_id"><span><span><span>A label<input /></span></span></span></label>', options: [{ depth: 4 }] },
-  { code: '<label htmlFor="js_id" aria-label="A label"><input /></label>' },
-  { code: '<label htmlFor="js_id" aria-labelledby="A label"><input /></label>' },
-  { code: '<label htmlFor="js_id" aria-labelledby="A label"><textarea /></label>' },
-  // Custom label component.
-  { code: '<CustomLabel htmlFor="js_id" aria-label="A label"><input /></CustomLabel>', options: [{ labelComponents: ['CustomLabel'] }] },
-  { code: '<CustomLabel htmlFor="js_id" label="A label"><input /></CustomLabel>', options: [{ labelAttributes: ['label'], labelComponents: ['CustomLabel'] }] },
-  // Custom label attributes.
-  { code: '<label htmlFor="js_id" label="A label"><input /></label>', options: [{ labelAttributes: ['label'] }] },
-  { code: '<label htmlFor="selectInput">Some text<select id="selectInput" /></label>' },
-];
-
-const alwaysValid = [
-  { code: '<div />' },
-  { code: '<CustomElement />' },
-];
-
-const htmlForInvalid = [
-  { code: '<label htmlFor="js_id"><span><span><span>A label</span></span></span></label>', options: [{ depth: 4 }], errors: [expectedError] },
-  { code: '<label htmlFor="js_id" aria-label="A label" />', errors: [expectedError] },
-  { code: '<label htmlFor="js_id" aria-labelledby="A label" />', errors: [expectedError] },
-  // Custom label component.
-  { code: '<CustomLabel htmlFor="js_id" aria-label="A label" />', options: [{ labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  { code: '<CustomLabel htmlFor="js_id" label="A label" />', options: [{ labelAttributes: ['label'], labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  // Custom label attributes.
-  { code: '<label htmlFor="js_id" label="A label" />', options: [{ labelAttributes: ['label'] }], errors: [expectedError] },
-];
-const nestingInvalid = [
-  { code: '<label>A label<input /></label>', errors: [expectedError] },
-  { code: '<label>A label<textarea /></label>', errors: [expectedError] },
-  { code: '<label><img alt="A label" /><input /></label>', errors: [expectedError] },
-  { code: '<label><img aria-label="A label" /><input /></label>', errors: [expectedError] },
-  { code: '<label><span>A label<input /></span></label>', errors: [expectedError] },
-  { code: '<label><span><span>A label<input /></span></span></label>', options: [{ depth: 3 }], errors: [expectedError] },
-  { code: '<label><span><span><span>A label<input /></span></span></span></label>', options: [{ depth: 4 }], errors: [expectedError] },
-  { code: '<label><span><span><span><span>A label</span><input /></span></span></span></label>', options: [{ depth: 5 }], errors: [expectedError] },
-  { code: '<label><span><span><span><span aria-label="A label" /><input /></span></span></span></label>', options: [{ depth: 5 }], errors: [expectedError] },
-  { code: '<label><span><span><span><input aria-label="A label" /></span></span></span></label>', options: [{ depth: 5 }], errors: [expectedError] },
-  // Custom controlComponents.
-  { code: '<label><span>A label<CustomInput /></span></label>', options: [{ controlComponents: ['CustomInput'] }], errors: [expectedError] },
-  { code: '<CustomLabel><span>A label<CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  { code: '<CustomLabel><span label="A label"><CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'], labelAttributes: ['label'] }], errors: [expectedError] },
-];
-
-const neverValid = [
-  { code: '<label htmlFor="js_id" />', errors: [expectedError] },
-  { code: '<label htmlFor="js_id"><input /></label>', errors: [expectedError] },
-  { code: '<label htmlFor="js_id"><textarea /></label>', errors: [expectedError] },
-  { code: '<label></label>', errors: [expectedError] },
-  { code: '<label>A label</label>', errors: [expectedError] },
-  { code: '<div><label /><input /></div>', errors: [expectedError] },
-  { code: '<div><label>A label</label><input /></div>', errors: [expectedError] },
-  // Custom label component.
-  { code: '<CustomLabel aria-label="A label" />', options: [{ labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  { code: '<CustomLabel label="A label" />', options: [{ labelAttributes: ['label'], labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  // Custom label attributes.
-  { code: '<label label="A label" />', options: [{ labelAttributes: ['label'] }], errors: [expectedError] },
-  // Custom controlComponents.
-  { code: '<label><span><CustomInput /></span></label>', options: [{ controlComponents: ['CustomInput'] }], errors: [expectedError] },
-  { code: '<CustomLabel><span><CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'] }], errors: [expectedError] },
-  { code: '<CustomLabel><span><CustomInput /></span></CustomLabel>', options: [{ controlComponents: ['CustomInput'], labelComponents: ['CustomLabel'], labelAttributes: ['label'] }], errors: [expectedError] },
-];
-// htmlFor valid
-ruleTester.run(ruleName, rule, {
-  valid: [
-    ...alwaysValid,
-    ...htmlForValid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'htmlFor',
-    }))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    ...nestingInvalid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'htmlFor',
-    }))
-    .map(parserOptionsMapper),
-});
-
-// nesting valid
-ruleTester.run(ruleName, rule, {
-  valid: [
-    ...alwaysValid,
-    ...nestingValid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'nesting',
-    }))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    ...htmlForInvalid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'nesting',
-    }))
-    .map(parserOptionsMapper),
-});
-
-// either valid
-ruleTester.run(ruleName, rule, {
-  valid: [
-    ...alwaysValid,
-    ...htmlForValid,
-    ...nestingValid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'either',
-    }))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ].map(parserOptionsMapper),
-});
-
-// both valid
-ruleTester.run(ruleName, rule, {
-  valid: [
-    ...alwaysValid,
-    ...bothValid,
-  ]
-    .map(ruleOptionsMapperFactory({
-      assert: 'both',
-    }))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-for-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-for-test.js
deleted file mode 100644
index 85cb1b1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/label-has-for-test.js
+++ /dev/null
@@ -1,224 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce label tags have htmlFor attribute.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import assign from 'object.assign';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/label-has-for';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedNestingError = {
-  message: 'Form label must have the following type of associated control: nesting',
-  type: 'JSXOpeningElement',
-};
-
-const expectedSomeError = {
-  message: 'Form label must have ANY of the following types of associated control: nesting, id',
-  type: 'JSXOpeningElement',
-};
-
-const expectedEveryError = {
-  message: 'Form label must have ALL of the following types of associated control: nesting, id',
-  type: 'JSXOpeningElement',
-};
-
-
-const optionsComponents = [{
-  components: ['Label', 'Descriptor'],
-}];
-const optionsRequiredNesting = [{
-  required: 'nesting',
-}];
-const optionsRequiredSome = [{
-  required: { some: ['nesting', 'id'] },
-}];
-const optionsRequiredEvery = [{
-  required: { every: ['nesting', 'id'] },
-}];
-const optionsChildrenAllowed = [{
-  allowChildren: true,
-}];
-
-ruleTester.run('label-has-for', rule, {
-  valid: [
-    // DEFAULT ELEMENT 'label' TESTS
-    { code: '<div />' },
-    { code: '<label htmlFor="foo"><input /></label>' },
-    { code: '<label htmlFor="foo"><textarea /></label>' },
-    { code: '<Label />' }, // lower-case convention refers to real HTML elements.
-    { code: '<Label htmlFor="foo" />' },
-    { code: '<Descriptor />' },
-    { code: '<Descriptor htmlFor="foo">Test!</Descriptor>' },
-    { code: '<UX.Layout>test</UX.Layout>' },
-
-    // CUSTOM ELEMENT ARRAY OPTION TESTS
-    { code: '<Label htmlFor="foo" />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Label htmlFor={"foo"} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Label htmlFor={foo} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Label htmlFor={`${id}`} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<div />', options: optionsComponents },
-    { code: '<Label htmlFor="something"><input /></Label>', options: optionsComponents },
-    { code: '<Label htmlFor="foo">Test!</Label>', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Descriptor htmlFor="foo" />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Descriptor htmlFor={"foo"} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Descriptor htmlFor={foo} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Descriptor htmlFor={`${id}`} />', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<Descriptor htmlFor="foo">Test!</Descriptor>', options: [assign({}, optionsComponents[0], optionsRequiredSome[0])] },
-    { code: '<label htmlFor="foo" />', options: optionsRequiredSome },
-    { code: '<label htmlFor={"foo"} />', options: optionsRequiredSome },
-    { code: '<label htmlFor={foo} />', options: optionsRequiredSome },
-    { code: '<label htmlFor={`${id}`} />', options: optionsRequiredSome },
-    { code: '<label htmlFor="foo">Test!</label>', options: optionsRequiredSome },
-    { code: '<label><input /></label>', options: optionsRequiredSome },
-    { code: '<label><input /></label>', options: optionsRequiredNesting },
-    { code: '<label htmlFor="input"><input /></label>', options: optionsRequiredEvery },
-    { code: '<label><input /></label>', options: optionsChildrenAllowed },
-    { code: '<Descriptor htmlFor="foo">Test!</Descriptor>', options: [assign({}, optionsComponents, optionsChildrenAllowed)] },
-    { code: '<label>Test!</label>', options: optionsChildrenAllowed },
-    { code: '<label htmlFor="foo">Test!</label>', options: optionsChildrenAllowed },
-    { code: '<label>{children}</label>', options: optionsChildrenAllowed },
-    { code: '<label htmlFor="children">{children}</label>', options: optionsChildrenAllowed },
-    { code: '<label htmlFor={id}>{ labelText }<div><input id={id} type="checkbox" name={id} value={value} /></div></label>', options: optionsRequiredEvery },
-    { code: '<label htmlFor={id}>{ labelText }<div><div><div><div><input id={id} type="checkbox" name={id} value={value} /></div></div></div></div></label>', options: optionsRequiredEvery },
-  ].map(parserOptionsMapper),
-  invalid: [
-    // DEFAULT ELEMENT 'label' TESTS
-    { code: '<label id="foo" />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={undefined} />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={`${undefined}`} />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label>First Name</label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label {...props}>Foo</label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label><input /></label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label><textarea /></label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label>{children}</label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor="foo" />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={"foo"} />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={foo} />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={`${id}`} />', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor="foo">Test!</label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    { code: '<label htmlFor={id}>{ labelText }<div><div><div><div><div id={id} type="checkbox" name={id} value={value} /></div></div></div></div></label>', errors: [expectedEveryError], options: optionsRequiredEvery },
-    //
-    // // CUSTOM ELEMENT ARRAY OPTION TESTS
-    {
-      code: '<Label></Label>',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    {
-      code: '<Label htmlFor="foo" />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Label htmlFor={"foo"} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Label htmlFor={foo} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Label htmlFor={`${id}`} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Label htmlFor="foo">Test!</Label>',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Descriptor htmlFor="foo" />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Descriptor htmlFor={"foo"} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Descriptor htmlFor={foo} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Descriptor htmlFor={`${id}`} />',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    {
-      code: '<Descriptor htmlFor="foo">Test!</Descriptor>',
-      errors: [expectedEveryError],
-      options: [{ ...optionsComponents[0], ...optionsRequiredEvery[0] }],
-    },
-    { code: '<Label id="foo" />', errors: [expectedEveryError], options: optionsComponents },
-    {
-      code: '<Label htmlFor={undefined} />',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    {
-      code: '<Label htmlFor={`${undefined}`} />',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    { code: '<Label>First Name</Label>', errors: [expectedEveryError], options: optionsComponents },
-    {
-      code: '<Label {...props}>Foo</Label>',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    { code: '<Descriptor id="foo" />', errors: [expectedEveryError], options: optionsComponents },
-    {
-      code: '<Descriptor htmlFor={undefined} />',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    {
-      code: '<Descriptor htmlFor={`${undefined}`} />',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    {
-      code: '<Descriptor>First Name</Descriptor>',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    {
-      code: '<Descriptor {...props}>Foo</Descriptor>',
-      errors: [expectedEveryError],
-      options: optionsComponents,
-    },
-    { code: '<label>{children}</label>', errors: [expectedEveryError], options: optionsComponents },
-    { code: '<label htmlFor="foo" />', errors: [expectedNestingError], options: optionsRequiredNesting },
-    { code: '<label>First Name</label>', errors: [expectedNestingError], options: optionsRequiredNesting },
-    { code: '<label>First Name</label>', errors: [expectedSomeError], options: optionsRequiredSome },
-    { code: '<label>{children}</label>', errors: [expectedSomeError], options: optionsRequiredSome },
-    { code: '<label>{children}</label>', errors: [expectedNestingError], options: optionsRequiredNesting },
-    {
-      code: '<form><input type="text" id="howmuch" value="1" /><label htmlFor="howmuch">How much ?</label></form>',
-      errors: [expectedEveryError],
-      options: optionsRequiredEvery,
-    },
-    {
-      code: '<form><input type="text" id="howmuch" value="1" /><label htmlFor="howmuch">How much ?<span /></label></form>',
-      errors: [expectedEveryError],
-      options: optionsRequiredEvery,
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/lang-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/lang-test.js
deleted file mode 100644
index 810bebc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/lang-test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce lang attribute has a valid value.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/lang';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'lang attribute must have a valid value.',
-  type: 'JSXAttribute',
-};
-
-ruleTester.run('lang', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<div foo="bar" />;' },
-    { code: '<div lang="foo" />;' },
-    { code: '<html lang="en" />' },
-    { code: '<html lang="en-US" />' },
-    { code: '<html lang={foo} />' },
-    { code: '<HTML lang="foo" />' },
-    { code: '<Foo lang="bar" />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<html lang="foo" />', errors: [expectedError] },
-    { code: '<html lang="zz-LL" />', errors: [expectedError] },
-    { code: '<html lang={undefined} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/media-has-caption-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/media-has-caption-test.js
deleted file mode 100644
index 665ad2f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/media-has-caption-test.js
+++ /dev/null
@@ -1,138 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview <audio> and <video> elements must have a <track> for captions.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/media-has-caption';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Media elements such as <audio> and <video> must have a <track> for captions.',
-  type: 'JSXOpeningElement',
-};
-
-const customSchema = [
-  {
-    audio: ['Audio'],
-    video: ['Video'],
-    track: ['Track'],
-  },
-];
-
-ruleTester.run('media-has-caption', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<MyDiv />;' },
-    { code: '<audio><track kind="captions" /></audio>' },
-    { code: '<audio><track kind="Captions" /></audio>' },
-    {
-      code: '<audio><track kind="Captions" /><track kind="subtitles" /></audio>',
-    },
-    { code: '<video><track kind="captions" /></video>' },
-    { code: '<video><track kind="Captions" /></video>' },
-    {
-      code: '<video><track kind="Captions" /><track kind="subtitles" /></video>',
-    },
-    {
-      code: '<audio muted={true}></audio>',
-    },
-    {
-      code: '<video muted={true}></video>',
-    },
-    {
-      code: '<video muted></video>',
-    },
-    {
-      code: '<Audio><track kind="captions" /></Audio>',
-      options: customSchema,
-    },
-    {
-      code: '<audio><Track kind="captions" /></audio>',
-      options: customSchema,
-    },
-    {
-      code: '<Video><track kind="captions" /></Video>',
-      options: customSchema,
-    },
-    {
-      code: '<video><Track kind="captions" /></video>',
-      options: customSchema,
-    },
-    {
-      code: '<Audio><Track kind="captions" /></Audio>',
-      options: customSchema,
-    },
-    {
-      code: '<Video><Track kind="captions" /></Video>',
-      options: customSchema,
-    },
-    {
-      code: '<Video muted></Video>',
-      options: customSchema,
-    },
-    {
-      code: '<Video muted={true}></Video>',
-      options: customSchema,
-    },
-    {
-      code: '<Audio muted></Audio>',
-      options: customSchema,
-    },
-    {
-      code: '<Audio muted={true}></Audio>',
-      options: customSchema,
-    },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<audio><track /></audio>', errors: [expectedError] },
-    {
-      code: '<audio><track kind="subtitles" /></audio>',
-      errors: [expectedError],
-    },
-    { code: '<audio />', errors: [expectedError] },
-    { code: '<video><track /></video>', errors: [expectedError] },
-    {
-      code: '<video><track kind="subtitles" /></video>',
-      errors: [expectedError],
-    },
-    {
-      code: '<Audio muted={false}></Audio>',
-      options: customSchema,
-      errors: [expectedError],
-    },
-    {
-      code: '<Video muted={false}></Video>',
-      options: customSchema,
-      errors: [expectedError],
-    },
-    { code: '<video />', errors: [expectedError] },
-    { code: '<audio>Foo</audio>', errors: [expectedError] },
-    { code: '<video>Foo</video>', errors: [expectedError] },
-    { code: '<Audio />', options: customSchema, errors: [expectedError] },
-    { code: '<Video />', options: customSchema, errors: [expectedError] },
-    { code: '<audio><Track /></audio>', options: customSchema, errors: [expectedError] },
-    { code: '<video><Track /></video>', options: customSchema, errors: [expectedError] },
-    {
-      code: '<Audio><Track kind="subtitles" /></Audio>',
-      options: customSchema,
-      errors: [expectedError],
-    },
-    {
-      code: '<Video><Track kind="subtitles" /></Video>',
-      options: customSchema,
-      errors: [expectedError],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/mouse-events-have-key-events-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/mouse-events-have-key-events-test.js
deleted file mode 100644
index 542fe93..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/mouse-events-have-key-events-test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce onmouseover/onmouseout are accompanied
- *  by onfocus/onblur.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/mouse-events-have-key-events';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const mouseOverError = {
-  message: 'onMouseOver must be accompanied by onFocus for accessibility.',
-  type: 'JSXOpeningElement',
-};
-const mouseOutError = {
-  message: 'onMouseOut must be accompanied by onBlur for accessibility.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('mouse-events-have-key-events', rule, {
-  valid: [
-    { code: '<div onMouseOver={() => void 0} onFocus={() => void 0} />;' },
-    {
-      code: '<div onMouseOver={() => void 0} onFocus={() => void 0} {...props} />;',
-    },
-    { code: '<div onMouseOver={handleMouseOver} onFocus={handleFocus} />;' },
-    {
-      code: '<div onMouseOver={handleMouseOver} onFocus={handleFocus} {...props} />;',
-    },
-    { code: '<div />;' },
-    { code: '<div onMouseOut={() => void 0} onBlur={() => void 0} />' },
-    { code: '<div onMouseOut={() => void 0} onBlur={() => void 0} {...props} />' },
-    { code: '<div onMouseOut={handleMouseOut} onBlur={handleOnBlur} />' },
-    { code: '<div onMouseOut={handleMouseOut} onBlur={handleOnBlur} {...props} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<div onMouseOver={() => void 0} />;', errors: [mouseOverError] },
-    { code: '<div onMouseOut={() => void 0} />', errors: [mouseOutError] },
-    {
-      code: '<div onMouseOver={() => void 0} onFocus={undefined} />;',
-      errors: [mouseOverError],
-    },
-    {
-      code: '<div onMouseOut={() => void 0} onBlur={undefined} />',
-      errors: [mouseOutError],
-    },
-    {
-      code: '<div onMouseOver={() => void 0} {...props} />',
-      errors: [mouseOverError],
-    },
-    {
-      code: '<div onMouseOut={() => void 0} {...props} />',
-      errors: [mouseOutError],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-access-key-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-access-key-test.js
deleted file mode 100644
index ea2ee66..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-access-key-test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce no accesskey attribute on element.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-access-key';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'No access key attribute allowed. Inconsistencies between keyboard shortcuts and keyboard comments used by screenreader and keyboard only users create a11y complications.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('no-access-key', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<div {...props} />' },
-    { code: '<div accessKey={undefined} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<div accesskey="h" />', errors: [expectedError] },
-    { code: '<div accessKey="h" />', errors: [expectedError] },
-    { code: '<div accessKey="h" {...props} />', errors: [expectedError] },
-    { code: '<div acCesSKeY="y" />', errors: [expectedError] },
-    { code: '<div accessKey={"y"} />', errors: [expectedError] },
-    { code: '<div accessKey={`${y}`} />', errors: [expectedError] },
-    {
-      code: '<div accessKey={`${undefined}y${undefined}`} />',
-      errors: [expectedError],
-    },
-    { code: '<div accessKey={`This is ${bad}`} />', errors: [expectedError] },
-    { code: '<div accessKey={accessKey} />', errors: [expectedError] },
-    { code: '<div accessKey={`${undefined}`} />', errors: [expectedError] },
-    { code: '<div accessKey={`${undefined}${undefined}`} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-autofocus-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-autofocus-test.js
deleted file mode 100644
index 7562862..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-autofocus-test.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce autoFocus prop is not used.
- * @author Ethan Cohen <@evcohen>
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-autofocus';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'The autoFocus prop should not be used, as it can reduce usability and accessibility for users.',
-  type: 'JSXAttribute',
-};
-
-const ignoreNonDOMSchema = [
-  {
-    ignoreNonDOM: true,
-  },
-];
-
-ruleTester.run('no-autofocus', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<div autofocus />;' },
-    { code: '<input autofocus="true" />;' },
-    { code: '<Foo bar />' },
-    { code: '<Foo autoFocus />', options: ignoreNonDOMSchema },
-    { code: '<div><div autofocus /></div>', options: ignoreNonDOMSchema },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<div autoFocus />', errors: [expectedError] },
-    { code: '<div autoFocus={true} />', errors: [expectedError] },
-    { code: '<div autoFocus={false} />', errors: [expectedError] },
-    { code: '<div autoFocus={undefined} />', errors: [expectedError] },
-    { code: '<div autoFocus="true" />', errors: [expectedError] },
-    { code: '<div autoFocus="false" />', errors: [expectedError] },
-    { code: '<input autoFocus />', errors: [expectedError] },
-    { code: '<Foo autoFocus />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-distracting-elements-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-distracting-elements-test.js
deleted file mode 100644
index 7ca6f51..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-distracting-elements-test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce distracting elements are not used.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-distracting-elements';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = element => ({
-  message: `Do not use <${element}> elements as they can create visual accessibility issues and are deprecated.`,
-  type: 'JSXOpeningElement',
-});
-
-ruleTester.run('no-marquee', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<Marquee />' },
-    { code: '<div marquee />' },
-    { code: '<Blink />' },
-    { code: '<div blink />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<marquee />', errors: [expectedError('marquee')] },
-    { code: '<marquee {...props} />', errors: [expectedError('marquee')] },
-    { code: '<marquee lang={undefined} />', errors: [expectedError('marquee')] },
-    { code: '<blink />', errors: [expectedError('blink')] },
-    { code: '<blink {...props} />', errors: [expectedError('blink')] },
-    { code: '<blink foo={undefined} />', errors: [expectedError('blink')] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js
deleted file mode 100644
index fc788da..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-interactive-element-to-noninteractive-role-test.js
+++ /dev/null
@@ -1,389 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Disallow inherently interactive elements to be assigned
- * non-interactive roles.
- * @author Jesse Beach
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-interactive-element-to-noninteractive-role';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-const ruleTester = new RuleTester();
-
-const errorMessage = 'Interactive elements should not be assigned non-interactive roles.';
-
-const expectedError = {
-  message: errorMessage,
-  type: 'JSXAttribute',
-};
-
-const ruleName = 'jsx-a11y/no-interactive-element-to-noninteractive-role';
-
-const alwaysValid = [
-  { code: '<TestComponent onClick={doFoo} />' },
-  { code: '<Button onClick={doFoo} />' },
-  /* Interactive elements */
-  { code: '<a href="http://x.y.z" role="button" />' },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="button" />' },
-  { code: '<button className="foo" role="button" />' },
-  /* All flavors of input */
-  { code: '<input role="button" />' },
-  { code: '<input type="button" role="button" />' },
-  { code: '<input type="checkbox" role="button" />' },
-  { code: '<input type="color" role="button" />' },
-  { code: '<input type="date" role="button" />' },
-  { code: '<input type="datetime" role="button" />' },
-  { code: '<input type="datetime-local" role="button" />' },
-  { code: '<input type="email" role="button" />' },
-  { code: '<input type="file" role="button" />' },
-  { code: '<input type="image" role="button" />' },
-  { code: '<input type="month" role="button" />' },
-  { code: '<input type="number" role="button" />' },
-  { code: '<input type="password" role="button" />' },
-  { code: '<input type="radio" role="button" />' },
-  { code: '<input type="range" role="button" />' },
-  { code: '<input type="reset" role="button" />' },
-  { code: '<input type="search" role="button" />' },
-  { code: '<input type="submit" role="button" />' },
-  { code: '<input type="tel" role="button" />' },
-  { code: '<input type="text" role="button" />' },
-  { code: '<input type="time" role="button" />' },
-  { code: '<input type="url" role="button" />' },
-  { code: '<input type="week" role="button" />' },
-  { code: '<input type="hidden" role="button" />' },
-  /* End all flavors of input */
-  { code: '<menuitem role="button" />;' },
-  { code: '<option className="foo" role="button" />' },
-  { code: '<select className="foo" role="button" />' },
-  { code: '<textarea className="foo" role="button" />' },
-  { code: '<tr role="button" />;' },
-  /* HTML elements with neither an interactive or non-interactive valence (static) */
-  { code: '<a role="button" />' },
-  { code: '<a role="img" />;' },
-  { code: '<a tabIndex="0" role="button" />' },
-  { code: '<a tabIndex="0" role="img" />' },
-  { code: '<acronym role="button" />;' },
-  { code: '<address role="button" />;' },
-  { code: '<applet role="button" />;' },
-  { code: '<aside role="button" />;' },
-  { code: '<audio role="button" />;' },
-  { code: '<b role="button" />;' },
-  { code: '<base role="button" />;' },
-  { code: '<bdi role="button" />;' },
-  { code: '<bdo role="button" />;' },
-  { code: '<big role="button" />;' },
-  { code: '<blink role="button" />;' },
-  { code: '<blockquote role="button" />;' },
-  { code: '<body role="button" />;' },
-  { code: '<br role="button" />;' },
-  { code: '<canvas role="button" />;' },
-  { code: '<caption role="button" />;' },
-  { code: '<center role="button" />;' },
-  { code: '<cite role="button" />;' },
-  { code: '<code role="button" />;' },
-  { code: '<col role="button" />;' },
-  { code: '<colgroup role="button" />;' },
-  { code: '<content role="button" />;' },
-  { code: '<data role="button" />;' },
-  { code: '<datalist role="button" />;' },
-  { code: '<del role="button" />;' },
-  { code: '<details role="button" />;' },
-  { code: '<dir role="button" />;' },
-  { code: '<div role="button" />;' },
-  { code: '<div className="foo" role="button" />;' },
-  { code: '<div className="foo" {...props} role="button" />;' },
-  { code: '<div aria-hidden role="button" />;' },
-  { code: '<div aria-hidden={true} role="button" />;' },
-  { code: '<div role="button" />;' },
-  { code: '<div role={undefined} role="button" />;' },
-  { code: '<div {...props} role="button" />;' },
-  { code: '<div onKeyUp={() => void 0} aria-hidden={false} role="button" />;' },
-  { code: '<dl role="button" />;' },
-  { code: '<em role="button" />;' },
-  { code: '<embed role="button" />;' },
-  { code: '<figcaption role="button" />;' },
-  { code: '<font role="button" />;' },
-  { code: '<footer role="button" />;' },
-  { code: '<frameset role="button" />;' },
-  { code: '<head role="button" />;' },
-  { code: '<header role="button" />;' },
-  { code: '<hgroup role="button" />;' },
-  { code: '<html role="button" />;' },
-  { code: '<i role="button" />;' },
-  { code: '<iframe role="button" />;' },
-  { code: '<ins role="button" />;' },
-  { code: '<kbd role="button" />;' },
-  { code: '<keygen role="button" />;' },
-  { code: '<label role="button" />;' },
-  { code: '<legend role="button" />;' },
-  { code: '<link role="button" />;' },
-  { code: '<map role="button" />;' },
-  { code: '<mark role="button" />;' },
-  { code: '<marquee role="button" />;' },
-  { code: '<menu role="button" />;' },
-  { code: '<meta role="button" />;' },
-  { code: '<meter role="button" />;' },
-  { code: '<noembed role="button" />;' },
-  { code: '<noscript role="button" />;' },
-  { code: '<object role="button" />;' },
-  { code: '<optgroup role="button" />;' },
-  { code: '<output role="button" />;' },
-  { code: '<p role="button" />;' },
-  { code: '<param role="button" />;' },
-  { code: '<picture role="button" />;' },
-  { code: '<pre role="button" />;' },
-  { code: '<progress role="button" />;' },
-  { code: '<q role="button" />;' },
-  { code: '<rp role="button" />;' },
-  { code: '<rt role="button" />;' },
-  { code: '<rtc role="button" />;' },
-  { code: '<ruby role="button" />;' },
-  { code: '<s role="button" />;' },
-  { code: '<samp role="button" />;' },
-  { code: '<script role="button" />;' },
-  { code: '<section role="button" />;' },
-  { code: '<small role="button" />;' },
-  { code: '<source role="button" />;' },
-  { code: '<spacer role="button" />;' },
-  { code: '<span role="button" />;' },
-  { code: '<strike role="button" />;' },
-  { code: '<strong role="button" />;' },
-  { code: '<style role="button" />;' },
-  { code: '<sub role="button" />;' },
-  { code: '<summary role="button" />;' },
-  { code: '<sup role="button" />;' },
-  { code: '<th role="button" />;' },
-  { code: '<time role="button" />;' },
-  { code: '<title role="button" />;' },
-  { code: '<track role="button" />;' },
-  { code: '<tt role="button" />;' },
-  { code: '<u role="button" />;' },
-  { code: '<var role="button" />;' },
-  { code: '<video role="button" />;' },
-  { code: '<wbr role="button" />;' },
-  { code: '<xmp role="button" />;' },
-  /* HTML elements attributed with an interactive role */
-  { code: '<div role="button" />;' },
-  { code: '<div role="checkbox" />;' },
-  { code: '<div role="columnheader" />;' },
-  { code: '<div role="combobox" />;' },
-  { code: '<div role="grid" />;' },
-  { code: '<div role="gridcell" />;' },
-  { code: '<div role="link" />;' },
-  { code: '<div role="listbox" />;' },
-  { code: '<div role="menu" />;' },
-  { code: '<div role="menubar" />;' },
-  { code: '<div role="menuitem" />;' },
-  { code: '<div role="menuitemcheckbox" />;' },
-  { code: '<div role="menuitemradio" />;' },
-  { code: '<div role="option" />;' },
-  { code: '<div role="progressbar" />;' },
-  { code: '<div role="radio" />;' },
-  { code: '<div role="radiogroup" />;' },
-  { code: '<div role="row" />;' },
-  { code: '<div role="rowheader" />;' },
-  { code: '<div role="searchbox" />;' },
-  { code: '<div role="slider" />;' },
-  { code: '<div role="spinbutton" />;' },
-  { code: '<div role="switch" />;' },
-  { code: '<div role="tab" />;' },
-  { code: '<div role="textbox" />;' },
-  { code: '<div role="treeitem" />;' },
-  /* Presentation is a special case role that indicates intentional static semantics */
-  { code: '<div role="presentation" />;' },
-  /* HTML elements attributed with an abstract role */
-  { code: '<div role="command" />;' },
-  { code: '<div role="composite" />;' },
-  { code: '<div role="input" />;' },
-  { code: '<div role="landmark" />;' },
-  { code: '<div role="range" />;' },
-  { code: '<div role="roletype" />;' },
-  { code: '<div role="section" />;' },
-  { code: '<div role="sectionhead" />;' },
-  { code: '<div role="select" />;' },
-  { code: '<div role="structure" />;' },
-  { code: '<div role="tablist" />;' },
-  { code: '<div role="toolbar" />;' },
-  { code: '<div role="tree" />;' },
-  { code: '<div role="treegrid" />;' },
-  { code: '<div role="widget" />;' },
-  { code: '<div role="window" />;' },
-  /* HTML elements with an inherent, non-interactive role, assigned an
-   * interactive role. */
-  { code: '<main role="button" />;' },
-  { code: '<area role="button" />;' },
-  { code: '<article role="button" />;' },
-  { code: '<article role="button" />;' },
-  { code: '<dd role="button" />;' },
-  { code: '<dfn role="button" />;' },
-  { code: '<dt role="button" />;' },
-  { code: '<fieldset role="button" />;' },
-  { code: '<figure role="button" />;' },
-  { code: '<form role="button" />;' },
-  { code: '<frame role="button" />;' },
-  { code: '<h1 role="button" />;' },
-  { code: '<h2 role="button" />;' },
-  { code: '<h3 role="button" />;' },
-  { code: '<h4 role="button" />;' },
-  { code: '<h5 role="button" />;' },
-  { code: '<h6 role="button" />;' },
-  { code: '<hr role="button" />;' },
-  { code: '<img role="button" />;' },
-  { code: '<li role="button" />;' },
-  { code: '<li role="presentation" />;' },
-  { code: '<nav role="button" />;' },
-  { code: '<ol role="button" />;' },
-  { code: '<table role="button" />;' },
-  { code: '<tbody role="button" />;' },
-  { code: '<td role="button" />;' },
-  { code: '<tfoot role="button" />;' },
-  { code: '<thead role="button" />;' },
-  { code: '<ul role="button" />;' },
-  /* HTML elements attributed with a non-interactive role */
-  { code: '<div role="alert" />;' },
-  { code: '<div role="alertdialog" />;' },
-  { code: '<div role="application" />;' },
-  { code: '<div role="article" />;' },
-  { code: '<div role="banner" />;' },
-  { code: '<div role="cell" />;' },
-  { code: '<div role="complementary" />;' },
-  { code: '<div role="contentinfo" />;' },
-  { code: '<div role="definition" />;' },
-  { code: '<div role="dialog" />;' },
-  { code: '<div role="directory" />;' },
-  { code: '<div role="document" />;' },
-  { code: '<div role="feed" />;' },
-  { code: '<div role="figure" />;' },
-  { code: '<div role="form" />;' },
-  { code: '<div role="group" />;' },
-  { code: '<div role="heading" />;' },
-  { code: '<div role="img" />;' },
-  { code: '<div role="list" />;' },
-  { code: '<div role="listitem" />;' },
-  { code: '<div role="log" />;' },
-  { code: '<div role="main" />;' },
-  { code: '<div role="marquee" />;' },
-  { code: '<div role="math" />;' },
-  { code: '<div role="navigation" />;' },
-  { code: '<div role="note" />;' },
-  { code: '<div role="region" />;' },
-  { code: '<div role="rowgroup" />;' },
-  { code: '<div role="search" />;' },
-  { code: '<div role="separator" />;' },
-  { code: '<div role="scrollbar" />;' },
-  { code: '<div role="status" />;' },
-  { code: '<div role="table" />;' },
-  { code: '<div role="tabpanel" />;' },
-  { code: '<div role="term" />;' },
-  { code: '<div role="timer" />;' },
-  { code: '<div role="tooltip" />;' },
-  /* Namespaced roles are not checked */
-  { code: '<div mynamespace:role="term" />' },
-  { code: '<input mynamespace:role="img" />' },
-];
-
-const neverValid = [
-  /* Interactive elements */
-  { code: '<a href="http://x.y.z" role="img" />', errors: [expectedError] },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="img" />', errors: [expectedError] },
-  /* All flavors of input */
-  { code: '<input role="img" />', errors: [expectedError] },
-  { code: '<input type="img" role="img" />', errors: [expectedError] },
-  { code: '<input type="checkbox" role="img" />', errors: [expectedError] },
-  { code: '<input type="color" role="img" />', errors: [expectedError] },
-  { code: '<input type="date" role="img" />', errors: [expectedError] },
-  { code: '<input type="datetime" role="img" />', errors: [expectedError] },
-  { code: '<input type="datetime-local" role="img" />', errors: [expectedError] },
-  { code: '<input type="email" role="img" />', errors: [expectedError] },
-  { code: '<input type="file" role="img" />', errors: [expectedError] },
-  { code: '<input type="hidden" role="img" />', errors: [expectedError] },
-  { code: '<input type="image" role="img" />', errors: [expectedError] },
-  { code: '<input type="month" role="img" />', errors: [expectedError] },
-  { code: '<input type="number" role="img" />', errors: [expectedError] },
-  { code: '<input type="password" role="img" />', errors: [expectedError] },
-  { code: '<input type="radio" role="img" />', errors: [expectedError] },
-  { code: '<input type="range" role="img" />', errors: [expectedError] },
-  { code: '<input type="reset" role="img" />', errors: [expectedError] },
-  { code: '<input type="search" role="img" />', errors: [expectedError] },
-  { code: '<input type="submit" role="img" />', errors: [expectedError] },
-  { code: '<input type="tel" role="img" />', errors: [expectedError] },
-  { code: '<input type="text" role="img" />', errors: [expectedError] },
-  { code: '<input type="time" role="img" />', errors: [expectedError] },
-  { code: '<input type="url" role="img" />', errors: [expectedError] },
-  { code: '<input type="week" role="img" />', errors: [expectedError] },
-  /* End all flavors of input */
-  { code: '<menuitem role="img" />;', errors: [expectedError] },
-  { code: '<option className="foo" role="img" />', errors: [expectedError] },
-  { code: '<select className="foo" role="img" />', errors: [expectedError] },
-  { code: '<textarea className="foo" role="img" />', errors: [expectedError] },
-  { code: '<tr role="img" />;', errors: [expectedError] },
-  /* Interactive elements */
-  { code: '<a href="http://x.y.z" role="listitem" />', errors: [expectedError] },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="listitem" />', errors: [expectedError] },
-  /* All flavors of input */
-  { code: '<input role="listitem" />', errors: [expectedError] },
-  { code: '<input type="listitem" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="checkbox" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="color" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="date" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="datetime" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="datetime-local" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="email" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="file" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="image" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="month" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="number" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="password" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="radio" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="range" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="reset" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="search" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="submit" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="tel" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="text" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="time" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="url" role="listitem" />', errors: [expectedError] },
-  { code: '<input type="week" role="listitem" />', errors: [expectedError] },
-  /* End all flavors of input */
-  { code: '<menuitem role="listitem" />;', errors: [expectedError] },
-  { code: '<option className="foo" role="listitem" />', errors: [expectedError] },
-  { code: '<select className="foo" role="listitem" />', errors: [expectedError] },
-  { code: '<textarea className="foo" role="listitem" />', errors: [expectedError] },
-  { code: '<tr role="listitem" />;', errors: [expectedError] },
-];
-
-const recommendedOptions = (configs.recommended.rules[ruleName][1] || {});
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    { code: '<tr role="presentation" />;' },
-    { code: '<Component role="presentation" />;' },
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ].map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    { code: '<tr role="presentation" />;', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-interactions-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-interactions-test.js
deleted file mode 100644
index 10d5d54..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-interactions-test.js
+++ /dev/null
@@ -1,465 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce non-interactive elements have no interactive handlers.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-noninteractive-element-interactions';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = 'Non-interactive elements should not be assigned mouse or keyboard event listeners.';
-
-const expectedError = {
-  message: errorMessage,
-  type: 'JSXOpeningElement',
-};
-
-const ruleName = 'no-noninteractive-element-interactions';
-
-const alwaysValid = [
-  { code: '<TestComponent onClick={doFoo} />' },
-  { code: '<Button onClick={doFoo} />' },
-  /* All flavors of input */
-  { code: '<input onClick={() => void 0} />' },
-  { code: '<input type="button" onClick={() => void 0} />' },
-  { code: '<input type="checkbox" onClick={() => void 0} />' },
-  { code: '<input type="color" onClick={() => void 0} />' },
-  { code: '<input type="date" onClick={() => void 0} />' },
-  { code: '<input type="datetime" onClick={() => void 0} />' },
-  { code: '<input type="datetime-local" onClick={() => void 0} />' },
-  { code: '<input type="email" onClick={() => void 0} />' },
-  { code: '<input type="file" onClick={() => void 0} />' },
-  { code: '<input type="image" onClick={() => void 0} />' },
-  { code: '<input type="month" onClick={() => void 0} />' },
-  { code: '<input type="number" onClick={() => void 0} />' },
-  { code: '<input type="password" onClick={() => void 0} />' },
-  { code: '<input type="radio" onClick={() => void 0} />' },
-  { code: '<input type="range" onClick={() => void 0} />' },
-  { code: '<input type="reset" onClick={() => void 0} />' },
-  { code: '<input type="search" onClick={() => void 0} />' },
-  { code: '<input type="submit" onClick={() => void 0} />' },
-  { code: '<input type="tel" onClick={() => void 0} />' },
-  { code: '<input type="text" onClick={() => void 0} />' },
-  { code: '<input type="time" onClick={() => void 0} />' },
-  { code: '<input type="url" onClick={() => void 0} />' },
-  { code: '<input type="week" onClick={() => void 0} />' },
-  { code: '<input type="hidden" onClick={() => void 0} />' },
-  /* End all flavors of input */
-  { code: '<a onClick={() => void 0} />' },
-  { code: '<a onClick={() => {}} />;' },
-  { code: '<a tabIndex="0" onClick={() => void 0} />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' },
-  { code: '<area onClick={() => {}} />;' },
-  { code: '<button onClick={() => void 0} className="foo" />' },
-  { code: '<label onClick={() => {}} />;' },
-  { code: '<menuitem onClick={() => {}} />;' },
-  { code: '<option onClick={() => void 0} className="foo" />' },
-  { code: '<select onClick={() => void 0} className="foo" />' },
-  { code: '<textarea onClick={() => void 0} className="foo" />' },
-  { code: '<tr onClick={() => {}} />;' },
-  /* HTML elements with neither an interactive or non-interactive valence (static) */
-  { code: '<acronym onClick={() => {}} />;' },
-  { code: '<address onClick={() => {}} />;' },
-  { code: '<applet onClick={() => {}} />;' },
-  { code: '<aside onClick={() => {}} />;' },
-  { code: '<audio onClick={() => {}} />;' },
-  { code: '<b onClick={() => {}} />;' },
-  { code: '<base onClick={() => {}} />;' },
-  { code: '<bdi onClick={() => {}} />;' },
-  { code: '<bdo onClick={() => {}} />;' },
-  { code: '<big onClick={() => {}} />;' },
-  { code: '<blink onClick={() => {}} />;' },
-  { code: '<body onClick={() => {}} />;' },
-  { code: '<body onLoad={() => {}} />;' },
-  { code: '<canvas onClick={() => {}} />;' },
-  { code: '<center onClick={() => {}} />;' },
-  { code: '<cite onClick={() => {}} />;' },
-  { code: '<code onClick={() => {}} />;' },
-  { code: '<col onClick={() => {}} />;' },
-  { code: '<colgroup onClick={() => {}} />;' },
-  { code: '<content onClick={() => {}} />;' },
-  { code: '<data onClick={() => {}} />;' },
-  { code: '<datalist onClick={() => {}} />;' },
-  { code: '<del onClick={() => {}} />;' },
-  { code: '<div />;' },
-  { code: '<div className="foo" />;' },
-  { code: '<div className="foo" {...props} />;' },
-  { code: '<div onClick={() => void 0} aria-hidden />;' },
-  { code: '<div onClick={() => void 0} aria-hidden={true} />;' },
-  { code: '<div onClick={() => void 0} />;' },
-  { code: '<div onClick={() => void 0} role={undefined} />;' },
-  { code: '<div onClick={() => void 0} {...props} />;' },
-  { code: '<div onClick={null} />;' },
-  { code: '<div onKeyUp={() => void 0} aria-hidden={false} />;' },
-  { code: '<em onClick={() => {}} />;' },
-  { code: '<embed onClick={() => {}} />;' },
-  { code: '<font onClick={() => {}} />;' },
-  { code: '<font onSubmit={() => {}} />;' },
-  { code: '<frameset onClick={() => {}} />;' },
-  { code: '<head onClick={() => {}} />;' },
-  { code: '<header onClick={() => {}} />;' },
-  { code: '<hgroup onClick={() => {}} />;' },
-  { code: '<html onClick={() => {}} />;' },
-  { code: '<i onClick={() => {}} />;' },
-  { code: '<iframe onLoad={() => {}} />;' },
-  {
-    code: `
-      <iframe
-        name="embeddedExternalPayment"
-        ref="embeddedExternalPayment"
-        style={iframeStyle}
-        onLoad={this.handleLoadIframe}
-      />
-    `,
-  },
-  { code: '<img {...props} onError={() => {}} />;' },
-  { code: '<img onLoad={() => {}} />;' },
-  { code: '<ins onClick={() => {}} />;' },
-  { code: '<kbd onClick={() => {}} />;' },
-  { code: '<keygen onClick={() => {}} />;' },
-  { code: '<link onClick={() => {}} />;' },
-  { code: '<main onClick={null} />;' },
-  { code: '<map onClick={() => {}} />;' },
-  { code: '<meta onClick={() => {}} />;' },
-  { code: '<noembed onClick={() => {}} />;' },
-  { code: '<noscript onClick={() => {}} />;' },
-  { code: '<object onClick={() => {}} />;' },
-  { code: '<optgroup onClick={() => {}} />;' },
-  { code: '<output onClick={() => {}} />;' },
-  { code: '<param onClick={() => {}} />;' },
-  { code: '<picture onClick={() => {}} />;' },
-  { code: '<q onClick={() => {}} />;' },
-  { code: '<rp onClick={() => {}} />;' },
-  { code: '<rt onClick={() => {}} />;' },
-  { code: '<rtc onClick={() => {}} />;' },
-  { code: '<s onClick={() => {}} />;' },
-  { code: '<samp onClick={() => {}} />;' },
-  { code: '<script onClick={() => {}} />;' },
-  { code: '<small onClick={() => {}} />;' },
-  { code: '<source onClick={() => {}} />;' },
-  { code: '<spacer onClick={() => {}} />;' },
-  { code: '<span onClick={() => {}} />;' },
-  { code: '<strike onClick={() => {}} />;' },
-  { code: '<strong onClick={() => {}} />;' },
-  { code: '<style onClick={() => {}} />;' },
-  { code: '<sub onClick={() => {}} />;' },
-  { code: '<summary onClick={() => {}} />;' },
-  { code: '<sup onClick={() => {}} />;' },
-  { code: '<th onClick={() => {}} />;' },
-  { code: '<title onClick={() => {}} />;' },
-  { code: '<track onClick={() => {}} />;' },
-  { code: '<tt onClick={() => {}} />;' },
-  { code: '<u onClick={() => {}} />;' },
-  { code: '<var onClick={() => {}} />;' },
-  { code: '<video onClick={() => {}} />;' },
-  { code: '<wbr onClick={() => {}} />;' },
-  { code: '<xmp onClick={() => {}} />;' },
-  /* HTML elements attributed with an interactive role */
-  { code: '<div role="button" onClick={() => {}} />;' },
-  { code: '<div role="checkbox" onClick={() => {}} />;' },
-  { code: '<div role="columnheader" onClick={() => {}} />;' },
-  { code: '<div role="combobox" onClick={() => {}} />;' },
-  { code: '<div role="grid" onClick={() => {}} />;' },
-  { code: '<div role="gridcell" onClick={() => {}} />;' },
-  { code: '<div role="link" onClick={() => {}} />;' },
-  { code: '<div role="listbox" onClick={() => {}} />;' },
-  { code: '<div role="menu" onClick={() => {}} />;' },
-  { code: '<div role="menubar" onClick={() => {}} />;' },
-  { code: '<div role="menuitem" onClick={() => {}} />;' },
-  { code: '<div role="menuitemcheckbox" onClick={() => {}} />;' },
-  { code: '<div role="menuitemradio" onClick={() => {}} />;' },
-  { code: '<div role="option" onClick={() => {}} />;' },
-  { code: '<div role="progressbar" onClick={() => {}} />;' },
-  { code: '<div role="radio" onClick={() => {}} />;' },
-  { code: '<div role="radiogroup" onClick={() => {}} />;' },
-  { code: '<div role="row" onClick={() => {}} />;' },
-  { code: '<div role="rowheader" onClick={() => {}} />;' },
-  { code: '<div role="searchbox" onClick={() => {}} />;' },
-  { code: '<div role="slider" onClick={() => {}} />;' },
-  { code: '<div role="spinbutton" onClick={() => {}} />;' },
-  { code: '<div role="switch" onClick={() => {}} />;' },
-  { code: '<div role="tab" onClick={() => {}} />;' },
-  { code: '<div role="textbox" onClick={() => {}} />;' },
-  { code: '<div role="treeitem" onClick={() => {}} />;' },
-  /* Presentation is a special case role that indicates intentional static semantics */
-  { code: '<div role="presentation" onClick={() => {}} />;' },
-  /* HTML elements attributed with an abstract role */
-  { code: '<div role="command" onClick={() => {}} />;' },
-  { code: '<div role="composite" onClick={() => {}} />;' },
-  { code: '<div role="input" onClick={() => {}} />;' },
-  { code: '<div role="landmark" onClick={() => {}} />;' },
-  { code: '<div role="range" onClick={() => {}} />;' },
-  { code: '<div role="roletype" onClick={() => {}} />;' },
-  { code: '<div role="sectionhead" onClick={() => {}} />;' },
-  { code: '<div role="select" onClick={() => {}} />;' },
-  { code: '<div role="structure" onClick={() => {}} />;' },
-  { code: '<div role="tablist" onClick={() => {}} />;' },
-  { code: '<div role="toolbar" onClick={() => {}} />;' },
-  { code: '<div role="tree" onClick={() => {}} />;' },
-  { code: '<div role="treegrid" onClick={() => {}} />;' },
-  { code: '<div role="widget" onClick={() => {}} />;' },
-  { code: '<div role="window" onClick={() => {}} />;' },
-  // All the possible handlers
-  { code: '<div role="article" onCopy={() => {}} />;' },
-  { code: '<div role="article" onCut={() => {}} />;' },
-  { code: '<div role="article" onPaste={() => {}} />;' },
-  { code: '<div role="article" onCompositionEnd={() => {}} />;' },
-  { code: '<div role="article" onCompositionStart={() => {}} />;' },
-  { code: '<div role="article" onCompositionUpdate={() => {}} />;' },
-  { code: '<div role="article" onChange={() => {}} />;' },
-  { code: '<div role="article" onInput={() => {}} />;' },
-  { code: '<div role="article" onSubmit={() => {}} />;' },
-  { code: '<div role="article" onSelect={() => {}} />;' },
-  { code: '<div role="article" onTouchCancel={() => {}} />;' },
-  { code: '<div role="article" onTouchEnd={() => {}} />;' },
-  { code: '<div role="article" onTouchMove={() => {}} />;' },
-  { code: '<div role="article" onTouchStart={() => {}} />;' },
-  { code: '<div role="article" onScroll={() => {}} />;' },
-  { code: '<div role="article" onWheel={() => {}} />;' },
-  { code: '<div role="article" onAbort={() => {}} />;' },
-  { code: '<div role="article" onCanPlay={() => {}} />;' },
-  { code: '<div role="article" onCanPlayThrough={() => {}} />;' },
-  { code: '<div role="article" onDurationChange={() => {}} />;' },
-  { code: '<div role="article" onEmptied={() => {}} />;' },
-  { code: '<div role="article" onEncrypted={() => {}} />;' },
-  { code: '<div role="article" onEnded={() => {}} />;' },
-  { code: '<div role="article" onLoadedData={() => {}} />;' },
-  { code: '<div role="article" onLoadedMetadata={() => {}} />;' },
-  { code: '<div role="article" onLoadStart={() => {}} />;' },
-  { code: '<div role="article" onPause={() => {}} />;' },
-  { code: '<div role="article" onPlay={() => {}} />;' },
-  { code: '<div role="article" onPlaying={() => {}} />;' },
-  { code: '<div role="article" onProgress={() => {}} />;' },
-  { code: '<div role="article" onRateChange={() => {}} />;' },
-  { code: '<div role="article" onSeeked={() => {}} />;' },
-  { code: '<div role="article" onSeeking={() => {}} />;' },
-  { code: '<div role="article" onStalled={() => {}} />;' },
-  { code: '<div role="article" onSuspend={() => {}} />;' },
-  { code: '<div role="article" onTimeUpdate={() => {}} />;' },
-  { code: '<div role="article" onVolumeChange={() => {}} />;' },
-  { code: '<div role="article" onWaiting={() => {}} />;' },
-  { code: '<div role="article" onAnimationStart={() => {}} />;' },
-  { code: '<div role="article" onAnimationEnd={() => {}} />;' },
-  { code: '<div role="article" onAnimationIteration={() => {}} />;' },
-  { code: '<div role="article" onTransitionEnd={() => {}} />;' },
-];
-
-const neverValid = [
-  /* HTML elements with an inherent, non-interactive role */
-  { code: '<main onClick={() => void 0} />;', errors: [expectedError] },
-  { code: '<article onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<blockquote onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<br onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<caption onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<dd onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<details onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<dfn onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<dl onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<dir onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<dt onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<fieldset onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<figcaption onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<figure onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<footer onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<form onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<frame onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h1 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h2 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h3 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h4 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h5 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<h6 onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<hr onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<iframe onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<img onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<legend onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<li onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<mark onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<marquee onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<menu onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<meter onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<nav onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<ol onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<p onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<pre onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<progress onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<ruby onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<section onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<table onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<tbody onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<td onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<tfoot onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<thead onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<time onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<ol onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<ul onClick={() => {}} />;', errors: [expectedError] },
-  /* HTML elements attributed with a non-interactive role */
-  { code: '<div role="alert" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="alertdialog" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="application" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="banner" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="cell" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="complementary" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="contentinfo" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="definition" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="dialog" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="directory" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="document" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="feed" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="figure" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="form" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="group" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="heading" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="img" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="list" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="listitem" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="log" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="main" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="marquee" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="math" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="navigation" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="note" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="region" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="rowgroup" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="search" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="separator" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="scrollbar" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="status" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="table" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="tabpanel" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="term" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="timer" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="tooltip" onClick={() => {}} />;', errors: [expectedError] },
-  // Handlers
-  { code: '<div role="article" onKeyDown={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onKeyPress={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onKeyUp={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onLoad={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onError={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onMouseDown={() => {}} />;', errors: [expectedError] },
-  { code: '<div role="article" onMouseUp={() => {}} />;', errors: [expectedError] },
-];
-
-const recommendedOptions = configs.recommended.rules[`jsx-a11y/${ruleName}`][1] || {};
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    // All the possible handlers
-    { code: '<div role="article" onCopy={() => {}} />;' },
-    { code: '<div role="article" onCut={() => {}} />;' },
-    { code: '<div role="article" onPaste={() => {}} />;' },
-    { code: '<div role="article" onCompositionEnd={() => {}} />;' },
-    { code: '<div role="article" onCompositionStart={() => {}} />;' },
-    { code: '<div role="article" onCompositionUpdate={() => {}} />;' },
-    { code: '<div role="article" onFocus={() => {}} />;' },
-    { code: '<div role="article" onBlur={() => {}} />;' },
-    { code: '<div role="article" onChange={() => {}} />;' },
-    { code: '<div role="article" onInput={() => {}} />;' },
-    { code: '<div role="article" onSubmit={() => {}} />;' },
-    { code: '<div role="article" onContextMenu={() => {}} />;' },
-    { code: '<div role="article" onDblClick={() => {}} />;' },
-    { code: '<div role="article" onDoubleClick={() => {}} />;' },
-    { code: '<div role="article" onDrag={() => {}} />;' },
-    { code: '<div role="article" onDragEnd={() => {}} />;' },
-    { code: '<div role="article" onDragEnter={() => {}} />;' },
-    { code: '<div role="article" onDragExit={() => {}} />;' },
-    { code: '<div role="article" onDragLeave={() => {}} />;' },
-    { code: '<div role="article" onDragOver={() => {}} />;' },
-    { code: '<div role="article" onDragStart={() => {}} />;' },
-    { code: '<div role="article" onDrop={() => {}} />;' },
-    { code: '<div role="article" onMouseEnter={() => {}} />;' },
-    { code: '<div role="article" onMouseLeave={() => {}} />;' },
-    { code: '<div role="article" onMouseMove={() => {}} />;' },
-    { code: '<div role="article" onMouseOut={() => {}} />;' },
-    { code: '<div role="article" onMouseOver={() => {}} />;' },
-    { code: '<div role="article" onSelect={() => {}} />;' },
-    { code: '<div role="article" onTouchCancel={() => {}} />;' },
-    { code: '<div role="article" onTouchEnd={() => {}} />;' },
-    { code: '<div role="article" onTouchMove={() => {}} />;' },
-    { code: '<div role="article" onTouchStart={() => {}} />;' },
-    { code: '<div role="article" onScroll={() => {}} />;' },
-    { code: '<div role="article" onWheel={() => {}} />;' },
-    { code: '<div role="article" onAbort={() => {}} />;' },
-    { code: '<div role="article" onCanPlay={() => {}} />;' },
-    { code: '<div role="article" onCanPlayThrough={() => {}} />;' },
-    { code: '<div role="article" onDurationChange={() => {}} />;' },
-    { code: '<div role="article" onEmptied={() => {}} />;' },
-    { code: '<div role="article" onEncrypted={() => {}} />;' },
-    { code: '<div role="article" onEnded={() => {}} />;' },
-    { code: '<div role="article" onLoadedData={() => {}} />;' },
-    { code: '<div role="article" onLoadedMetadata={() => {}} />;' },
-    { code: '<div role="article" onLoadStart={() => {}} />;' },
-    { code: '<div role="article" onPause={() => {}} />;' },
-    { code: '<div role="article" onPlay={() => {}} />;' },
-    { code: '<div role="article" onPlaying={() => {}} />;' },
-    { code: '<div role="article" onProgress={() => {}} />;' },
-    { code: '<div role="article" onRateChange={() => {}} />;' },
-    { code: '<div role="article" onSeeked={() => {}} />;' },
-    { code: '<div role="article" onSeeking={() => {}} />;' },
-    { code: '<div role="article" onStalled={() => {}} />;' },
-    { code: '<div role="article" onSuspend={() => {}} />;' },
-    { code: '<div role="article" onTimeUpdate={() => {}} />;' },
-    { code: '<div role="article" onVolumeChange={() => {}} />;' },
-    { code: '<div role="article" onWaiting={() => {}} />;' },
-    { code: '<div role="article" onAnimationStart={() => {}} />;' },
-    { code: '<div role="article" onAnimationEnd={() => {}} />;' },
-    { code: '<div role="article" onAnimationIteration={() => {}} />;' },
-    { code: '<div role="article" onTransitionEnd={() => {}} />;' },
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-const strictOptions = configs.strict.rules[`jsx-a11y/${ruleName}`][1] || {};
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    // All the possible handlers
-    { code: '<div role="article" onFocus={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onBlur={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onContextMenu={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDblClick={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDoubleClick={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDrag={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragEnd={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragEnter={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragExit={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragLeave={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragOver={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDragStart={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onDrop={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onMouseEnter={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onMouseLeave={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onMouseMove={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onMouseOut={() => {}} />;', errors: [expectedError] },
-    { code: '<div role="article" onMouseOver={() => {}} />;', errors: [expectedError] },
-  ]
-    .map(ruleOptionsMapperFactory(strictOptions))
-    .map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-to-interactive-role-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-to-interactive-role-test.js
deleted file mode 100644
index 3a6282c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-element-to-interactive-role-test.js
+++ /dev/null
@@ -1,484 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Disallow inherently non-interactive elements to be assigned
- * interactive roles.
- * @author Jesse Beach
- * @author $AUTHOR
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-noninteractive-element-to-interactive-role';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = 'Non-interactive elements should not be assigned interactive roles.';
-
-const expectedError = {
-  message: errorMessage,
-  type: 'JSXAttribute',
-};
-
-const ruleName = 'jsx-a11y/no-noninteractive-element-to-interactive-role';
-
-const alwaysValid = [
-  { code: '<TestComponent onClick={doFoo} />' },
-  { code: '<Button onClick={doFoo} />' },
-  /* Interactive elements */
-  { code: '<a tabIndex="0" role="button" />' },
-  { code: '<a href="http://x.y.z" role="button" />' },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="button" />' },
-  { code: '<area role="button" />;' },
-  { code: '<area role="menuitem" />;' },
-  { code: '<button className="foo" role="button" />' },
-  /* All flavors of input */
-  { code: '<input role="button" />' },
-  { code: '<input type="button" role="button" />' },
-  { code: '<input type="checkbox" role="button" />' },
-  { code: '<input type="color" role="button" />' },
-  { code: '<input type="date" role="button" />' },
-  { code: '<input type="datetime" role="button" />' },
-  { code: '<input type="datetime-local" role="button" />' },
-  { code: '<input type="email" role="button" />' },
-  { code: '<input type="file" role="button" />' },
-  { code: '<input type="hidden" role="button" />' },
-  { code: '<input type="image" role="button" />' },
-  { code: '<input type="month" role="button" />' },
-  { code: '<input type="number" role="button" />' },
-  { code: '<input type="password" role="button" />' },
-  { code: '<input type="radio" role="button" />' },
-  { code: '<input type="range" role="button" />' },
-  { code: '<input type="reset" role="button" />' },
-  { code: '<input type="search" role="button" />' },
-  { code: '<input type="submit" role="button" />' },
-  { code: '<input type="tel" role="button" />' },
-  { code: '<input type="text" role="button" />' },
-  { code: '<input type="time" role="button" />' },
-  { code: '<input type="url" role="button" />' },
-  { code: '<input type="week" role="button" />' },
-  { code: '<input type="hidden" role="img" />' },
-  /* End all flavors of input */
-  { code: '<menuitem role="button" />;' },
-  { code: '<option className="foo" role="button" />' },
-  { code: '<select className="foo" role="button" />' },
-  { code: '<textarea className="foo" role="button" />' },
-  { code: '<tr role="button" />;' },
-  { code: '<tr role="presentation" />;' },
-  /* Interactive elements */
-  { code: '<a tabIndex="0" role="img" />' },
-  { code: '<a href="http://x.y.z" role="img" />' },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="img" />' },
-  /* All flavors of input */
-  { code: '<input role="img" />' },
-  { code: '<input type="img" role="img" />' },
-  { code: '<input type="checkbox" role="img" />' },
-  { code: '<input type="color" role="img" />' },
-  { code: '<input type="date" role="img" />' },
-  { code: '<input type="datetime" role="img" />' },
-  { code: '<input type="datetime-local" role="img" />' },
-  { code: '<input type="email" role="img" />' },
-  { code: '<input type="file" role="img" />' },
-  { code: '<input type="hidden" role="button" />' },
-  { code: '<input type="image" role="img" />' },
-  { code: '<input type="month" role="img" />' },
-  { code: '<input type="number" role="img" />' },
-  { code: '<input type="password" role="img" />' },
-  { code: '<input type="radio" role="img" />' },
-  { code: '<input type="range" role="img" />' },
-  { code: '<input type="reset" role="img" />' },
-  { code: '<input type="search" role="img" />' },
-  { code: '<input type="submit" role="img" />' },
-  { code: '<input type="tel" role="img" />' },
-  { code: '<input type="text" role="img" />' },
-  { code: '<input type="time" role="img" />' },
-  { code: '<input type="url" role="img" />' },
-  { code: '<input type="week" role="img" />' },
-  /* End all flavors of input */
-  { code: '<menuitem role="img" />;' },
-  { code: '<option className="foo" role="img" />' },
-  { code: '<select className="foo" role="img" />' },
-  { code: '<textarea className="foo" role="img" />' },
-  { code: '<tr role="img" />;' },
-  /* Interactive elements */
-  { code: '<a tabIndex="0" role="listitem" />' },
-  { code: '<a href="http://x.y.z" role="listitem" />' },
-  { code: '<a href="http://x.y.z" tabIndex="0" role="listitem" />' },
-  /* All flavors of input */
-  { code: '<input role="listitem" />' },
-  { code: '<input type="listitem" role="listitem" />' },
-  { code: '<input type="checkbox" role="listitem" />' },
-  { code: '<input type="color" role="listitem" />' },
-  { code: '<input type="date" role="listitem" />' },
-  { code: '<input type="datetime" role="listitem" />' },
-  { code: '<input type="datetime-local" role="listitem" />' },
-  { code: '<input type="email" role="listitem" />' },
-  { code: '<input type="file" role="listitem" />' },
-  { code: '<input type="image" role="listitem" />' },
-  { code: '<input type="month" role="listitem" />' },
-  { code: '<input type="number" role="listitem" />' },
-  { code: '<input type="password" role="listitem" />' },
-  { code: '<input type="radio" role="listitem" />' },
-  { code: '<input type="range" role="listitem" />' },
-  { code: '<input type="reset" role="listitem" />' },
-  { code: '<input type="search" role="listitem" />' },
-  { code: '<input type="submit" role="listitem" />' },
-  { code: '<input type="tel" role="listitem" />' },
-  { code: '<input type="text" role="listitem" />' },
-  { code: '<input type="time" role="listitem" />' },
-  { code: '<input type="url" role="listitem" />' },
-  { code: '<input type="week" role="listitem" />' },
-  /* End all flavors of input */
-  { code: '<label role="button" />;' },
-  { code: '<menuitem role="listitem" />;' },
-  { code: '<option className="foo" role="listitem" />' },
-  { code: '<select className="foo" role="listitem" />' },
-  { code: '<textarea className="foo" role="listitem" />' },
-  { code: '<tr role="listitem" />;' },
-  /* HTML elements with neither an interactive or non-interactive valence (static) */
-  { code: '<acronym role="button" />;' },
-  { code: '<address role="button" />;' },
-  { code: '<applet role="button" />;' },
-  { code: '<aside role="button" />;' },
-  { code: '<audio role="button" />;' },
-  { code: '<b role="button" />;' },
-  { code: '<base role="button" />;' },
-  { code: '<bdi role="button" />;' },
-  { code: '<bdo role="button" />;' },
-  { code: '<big role="button" />;' },
-  { code: '<blink role="button" />;' },
-  { code: '<body role="button" />;' },
-  { code: '<canvas role="button" />;' },
-  { code: '<center role="button" />;' },
-  { code: '<cite role="button" />;' },
-  { code: '<code role="button" />;' },
-  { code: '<col role="button" />;' },
-  { code: '<colgroup role="button" />;' },
-  { code: '<content role="button" />;' },
-  { code: '<data role="button" />;' },
-  { code: '<datalist role="button" />;' },
-  { code: '<del role="button" />;' },
-  { code: '<div role="button" />;' },
-  { code: '<div className="foo" role="button" />;' },
-  { code: '<div className="foo" {...props} role="button" />;' },
-  { code: '<div aria-hidden role="button" />;' },
-  { code: '<div aria-hidden={true} role="button" />;' },
-  { code: '<div role="button" />;' },
-  { code: '<div role={undefined} role="button" />;' },
-  { code: '<div {...props} role="button" />;' },
-  { code: '<div onKeyUp={() => void 0} aria-hidden={false} role="button" />;' },
-  { code: '<em role="button" />;' },
-  { code: '<embed role="button" />;' },
-  { code: '<font role="button" />;' },
-  { code: '<frameset role="button" />;' },
-  { code: '<head role="button" />;' },
-  { code: '<header role="button" />;' },
-  { code: '<hgroup role="button" />;' },
-  { code: '<html role="button" />;' },
-  { code: '<i role="button" />;' },
-  { code: '<ins role="button" />;' },
-  { code: '<kbd role="button" />;' },
-  { code: '<keygen role="button" />;' },
-  { code: '<link role="button" />;' },
-  { code: '<map role="button" />;' },
-  { code: '<meta role="button" />;' },
-  { code: '<noembed role="button" />;' },
-  { code: '<noscript role="button" />;' },
-  { code: '<object role="button" />;' },
-  { code: '<optgroup role="button" />;' },
-  { code: '<output role="button" />;' },
-  { code: '<param role="button" />;' },
-  { code: '<picture role="button" />;' },
-  { code: '<q role="button" />;' },
-  { code: '<rp role="button" />;' },
-  { code: '<rt role="button" />;' },
-  { code: '<rtc role="button" />;' },
-  { code: '<s role="button" />;' },
-  { code: '<samp role="button" />;' },
-  { code: '<script role="button" />;' },
-  { code: '<small role="button" />;' },
-  { code: '<source role="button" />;' },
-  { code: '<spacer role="button" />;' },
-  { code: '<span role="button" />;' },
-  { code: '<strike role="button" />;' },
-  { code: '<strong role="button" />;' },
-  { code: '<style role="button" />;' },
-  { code: '<sub role="button" />;' },
-  { code: '<summary role="button" />;' },
-  { code: '<sup role="button" />;' },
-  { code: '<th role="button" />;' },
-  { code: '<title role="button" />;' },
-  { code: '<track role="button" />;' },
-  { code: '<tt role="button" />;' },
-  { code: '<u role="button" />;' },
-  { code: '<var role="button" />;' },
-  { code: '<video role="button" />;' },
-  { code: '<wbr role="button" />;' },
-  { code: '<xmp role="button" />;' },
-  /* HTML elements attributed with an interactive role */
-  { code: '<div role="button" />;' },
-  { code: '<div role="checkbox" />;' },
-  { code: '<div role="columnheader" />;' },
-  { code: '<div role="combobox" />;' },
-  { code: '<div role="grid" />;' },
-  { code: '<div role="gridcell" />;' },
-  { code: '<div role="link" />;' },
-  { code: '<div role="listbox" />;' },
-  { code: '<div role="menu" />;' },
-  { code: '<div role="menubar" />;' },
-  { code: '<div role="menuitem" />;' },
-  { code: '<div role="menuitemcheckbox" />;' },
-  { code: '<div role="menuitemradio" />;' },
-  { code: '<div role="option" />;' },
-  { code: '<div role="progressbar" />;' },
-  { code: '<div role="radio" />;' },
-  { code: '<div role="radiogroup" />;' },
-  { code: '<div role="row" />;' },
-  { code: '<div role="rowheader" />;' },
-  { code: '<div role="searchbox" />;' },
-  { code: '<div role="slider" />;' },
-  { code: '<div role="spinbutton" />;' },
-  { code: '<div role="switch" />;' },
-  { code: '<div role="tab" />;' },
-  { code: '<div role="textbox" />;' },
-  { code: '<div role="treeitem" />;' },
-  /* Presentation is a special case role that indicates intentional static semantics */
-  { code: '<div role="presentation" />;' },
-  /* HTML elements attributed with an abstract role */
-  { code: '<div role="command" />;' },
-  { code: '<div role="composite" />;' },
-  { code: '<div role="input" />;' },
-  { code: '<div role="landmark" />;' },
-  { code: '<div role="range" />;' },
-  { code: '<div role="roletype" />;' },
-  { code: '<div role="section" />;' },
-  { code: '<div role="sectionhead" />;' },
-  { code: '<div role="select" />;' },
-  { code: '<div role="structure" />;' },
-  { code: '<div role="tablist" />;' },
-  { code: '<div role="toolbar" />;' },
-  { code: '<div role="tree" />;' },
-  { code: '<div role="treegrid" />;' },
-  { code: '<div role="widget" />;' },
-  { code: '<div role="window" />;' },
-  /* HTML elements with an inherent non-interactive role, assigned an
-   * interactive role. */
-  { code: '<main role="listitem" />;' },
-  { code: '<a role="listitem" />' },
-  { code: '<a role="listitem" />;' },
-  { code: '<a role="button" />' },
-  { code: '<a role="button" />;' },
-  { code: '<a role="menuitem" />' },
-  { code: '<a role="menuitem" />;' },
-  { code: '<area role="listitem" />;' },
-  { code: '<article role="listitem" />;' },
-  { code: '<article role="listitem" />;' },
-  { code: '<dd role="listitem" />;' },
-  { code: '<dfn role="listitem" />;' },
-  { code: '<dt role="listitem" />;' },
-  { code: '<fieldset role="listitem" />;' },
-  { code: '<figure role="listitem" />;' },
-  { code: '<form role="listitem" />;' },
-  { code: '<frame role="listitem" />;' },
-  { code: '<h1 role="listitem" />;' },
-  { code: '<h2 role="listitem" />;' },
-  { code: '<h3 role="listitem" />;' },
-  { code: '<h4 role="listitem" />;' },
-  { code: '<h5 role="listitem" />;' },
-  { code: '<h6 role="listitem" />;' },
-  { code: '<hr role="listitem" />;' },
-  { code: '<img role="listitem" />;' },
-  { code: '<li role="listitem" />;' },
-  { code: '<li role="presentation" />;' },
-  { code: '<nav role="listitem" />;' },
-  { code: '<ol role="listitem" />;' },
-  { code: '<table role="listitem" />;' },
-  { code: '<tbody role="listitem" />;' },
-  { code: '<td role="listitem" />;' },
-  { code: '<tfoot role="listitem" />;' },
-  { code: '<thead role="listitem" />;' },
-  { code: '<ul role="listitem" />;' },
-  /* HTML elements attributed with a non-interactive role */
-  { code: '<div role="alert" />;' },
-  { code: '<div role="alertdialog" />;' },
-  { code: '<div role="application" />;' },
-  { code: '<div role="article" />;' },
-  { code: '<div role="banner" />;' },
-  { code: '<div role="cell" />;' },
-  { code: '<div role="complementary" />;' },
-  { code: '<div role="contentinfo" />;' },
-  { code: '<div role="definition" />;' },
-  { code: '<div role="dialog" />;' },
-  { code: '<div role="directory" />;' },
-  { code: '<div role="document" />;' },
-  { code: '<div role="feed" />;' },
-  { code: '<div role="figure" />;' },
-  { code: '<div role="form" />;' },
-  { code: '<div role="group" />;' },
-  { code: '<div role="heading" />;' },
-  { code: '<div role="img" />;' },
-  { code: '<div role="list" />;' },
-  { code: '<div role="listitem" />;' },
-  { code: '<div role="log" />;' },
-  { code: '<div role="main" />;' },
-  { code: '<div role="marquee" />;' },
-  { code: '<div role="math" />;' },
-  { code: '<div role="navigation" />;' },
-  { code: '<div role="note" />;' },
-  { code: '<div role="region" />;' },
-  { code: '<div role="rowgroup" />;' },
-  { code: '<div role="search" />;' },
-  { code: '<div role="separator" />;' },
-  { code: '<div role="scrollbar" />;' },
-  { code: '<div role="status" />;' },
-  { code: '<div role="table" />;' },
-  { code: '<div role="tabpanel" />;' },
-  { code: '<div role="term" />;' },
-  { code: '<div role="timer" />;' },
-  { code: '<div role="tooltip" />;' },
-  { code: '<ul role="list" />;' },
-];
-
-const neverValid = [
-  /* HTML elements with an inherent non-interactive role, assigned an
-   * interactive role. */
-  { code: '<main role="button" />;', errors: [expectedError] },
-  { code: '<article role="button" />;', errors: [expectedError] },
-  { code: '<article role="button" />;', errors: [expectedError] },
-  { code: '<blockquote role="button" />;', errors: [expectedError] },
-  { code: '<br role="button" />;', errors: [expectedError] },
-  { code: '<caption role="button" />;', errors: [expectedError] },
-  { code: '<dd role="button" />;', errors: [expectedError] },
-  { code: '<details role="button" />;', errors: [expectedError] },
-  { code: '<dir role="button" />;', errors: [expectedError] },
-  { code: '<dl role="button" />;', errors: [expectedError] },
-  { code: '<dfn role="button" />;', errors: [expectedError] },
-  { code: '<dt role="button" />;', errors: [expectedError] },
-  { code: '<fieldset role="button" />;', errors: [expectedError] },
-  { code: '<figcaption role="button" />;', errors: [expectedError] },
-  { code: '<figure role="button" />;', errors: [expectedError] },
-  { code: '<footer role="button" />;', errors: [expectedError] },
-  { code: '<form role="button" />;', errors: [expectedError] },
-  { code: '<frame role="button" />;', errors: [expectedError] },
-  { code: '<h1 role="button" />;', errors: [expectedError] },
-  { code: '<h2 role="button" />;', errors: [expectedError] },
-  { code: '<h3 role="button" />;', errors: [expectedError] },
-  { code: '<h4 role="button" />;', errors: [expectedError] },
-  { code: '<h5 role="button" />;', errors: [expectedError] },
-  { code: '<h6 role="button" />;', errors: [expectedError] },
-  { code: '<hr role="button" />;', errors: [expectedError] },
-  { code: '<iframe role="button" />;', errors: [expectedError] },
-  { code: '<img role="button" />;', errors: [expectedError] },
-  { code: '<legend role="button" />;', errors: [expectedError] },
-  { code: '<li role="button" />;', errors: [expectedError] },
-  { code: '<mark role="button" />;', errors: [expectedError] },
-  { code: '<marquee role="button" />;', errors: [expectedError] },
-  { code: '<menu role="button" />;', errors: [expectedError] },
-  { code: '<meter role="button" />;', errors: [expectedError] },
-  { code: '<nav role="button" />;', errors: [expectedError] },
-  { code: '<ol role="button" />;', errors: [expectedError] },
-  { code: '<pre role="button" />;', errors: [expectedError] },
-  { code: '<progress role="button" />;', errors: [expectedError] },
-  { code: '<ruby role="button" />;', errors: [expectedError] },
-  { code: '<table role="button" />;', errors: [expectedError] },
-  { code: '<tbody role="button" />;', errors: [expectedError] },
-  { code: '<td role="button" />;', errors: [expectedError] },
-  { code: '<tfoot role="button" />;', errors: [expectedError] },
-  { code: '<thead role="button" />;', errors: [expectedError] },
-  { code: '<time role="button" />;', errors: [expectedError] },
-  { code: '<ul role="button" />;', errors: [expectedError] },
-  /* HTML elements with an inherent non-interactive role, assigned an
-   * interactive role. */
-  { code: '<main role="menuitem" />;', errors: [expectedError] },
-  { code: '<article role="menuitem" />;', errors: [expectedError] },
-  { code: '<article role="menuitem" />;', errors: [expectedError] },
-  { code: '<dd role="menuitem" />;', errors: [expectedError] },
-  { code: '<dfn role="menuitem" />;', errors: [expectedError] },
-  { code: '<dt role="menuitem" />;', errors: [expectedError] },
-  { code: '<fieldset role="menuitem" />;', errors: [expectedError] },
-  { code: '<figure role="menuitem" />;', errors: [expectedError] },
-  { code: '<form role="menuitem" />;', errors: [expectedError] },
-  { code: '<frame role="menuitem" />;', errors: [expectedError] },
-  { code: '<h1 role="menuitem" />;', errors: [expectedError] },
-  { code: '<h2 role="menuitem" />;', errors: [expectedError] },
-  { code: '<h3 role="menuitem" />;', errors: [expectedError] },
-  { code: '<h4 role="menuitem" />;', errors: [expectedError] },
-  { code: '<h5 role="menuitem" />;', errors: [expectedError] },
-  { code: '<h6 role="menuitem" />;', errors: [expectedError] },
-  { code: '<hr role="menuitem" />;', errors: [expectedError] },
-  { code: '<img role="menuitem" />;', errors: [expectedError] },
-  { code: '<nav role="menuitem" />;', errors: [expectedError] },
-  { code: '<ol role="menuitem" />;', errors: [expectedError] },
-  { code: '<p role="button" />;', errors: [expectedError] },
-  { code: '<section role="button" />;', errors: [expectedError] },
-  { code: '<table role="menuitem" />;', errors: [expectedError] },
-  { code: '<tbody role="menuitem" />;', errors: [expectedError] },
-  { code: '<td role="menuitem" />;', errors: [expectedError] },
-  { code: '<tfoot role="menuitem" />;', errors: [expectedError] },
-  { code: '<thead role="menuitem" />;', errors: [expectedError] },
-];
-
-const recommendedOptions = (configs.recommended.rules[ruleName][1] || {});
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    { code: '<ul role="menu" />;' },
-    { code: '<ul role="menubar" />;' },
-    { code: '<ul role="radiogroup" />;' },
-    { code: '<ul role="tablist" />;' },
-    { code: '<ul role="tree" />;' },
-    { code: '<ul role="treegrid" />;' },
-    { code: '<ol role="menu" />;' },
-    { code: '<ol role="menubar" />;' },
-    { code: '<ol role="radiogroup" />;' },
-    { code: '<ol role="tablist" />;' },
-    { code: '<ol role="tree" />;' },
-    { code: '<ol role="treegrid" />;' },
-    { code: '<li role="tab" />;' },
-    { code: '<li role="menuitem" />;' },
-    { code: '<li role="row" />;' },
-    { code: '<li role="treeitem" />;' },
-    { code: '<Component role="treeitem" />;' },
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ].map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    { code: '<ul role="menu" />;', errors: [expectedError] },
-    { code: '<ul role="menubar" />;', errors: [expectedError] },
-    { code: '<ul role="radiogroup" />;', errors: [expectedError] },
-    { code: '<ul role="tablist" />;', errors: [expectedError] },
-    { code: '<ul role="tree" />;', errors: [expectedError] },
-    { code: '<ul role="treegrid" />;', errors: [expectedError] },
-    { code: '<ol role="menu" />;', errors: [expectedError] },
-    { code: '<ol role="menubar" />;', errors: [expectedError] },
-    { code: '<ol role="radiogroup" />;', errors: [expectedError] },
-    { code: '<ol role="tablist" />;', errors: [expectedError] },
-    { code: '<ol role="tree" />;', errors: [expectedError] },
-    { code: '<ol role="treegrid" />;', errors: [expectedError] },
-    { code: '<li role="tab" />;', errors: [expectedError] },
-    { code: '<li role="menuitem" />;', errors: [expectedError] },
-    { code: '<li role="row" />;', errors: [expectedError] },
-    { code: '<li role="treeitem" />;', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-tabindex-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-tabindex-test.js
deleted file mode 100644
index aa4f1a7..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-noninteractive-tabindex-test.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Disallow tabindex on static and noninteractive elements
- * @author jessebeach
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-noninteractive-tabindex';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const ruleName = 'no-noninteractive-tabindex';
-
-const expectedError = {
-  message: '`tabIndex` should only be declared on interactive elements.',
-  type: 'JSXAttribute',
-};
-
-const alwaysValid = [
-  { code: '<MyButton tabIndex={0} />' },
-  { code: '<button />' },
-  { code: '<button tabIndex="0" />' },
-  { code: '<button tabIndex={0} />' },
-  { code: '<div />' },
-  { code: '<div tabIndex="-1" />' },
-  { code: '<div role="button" tabIndex="0" />' },
-  { code: '<div role="article" tabIndex="-1" />' },
-  { code: '<article tabIndex="-1" />' },
-];
-
-const neverValid = [
-  { code: '<div tabIndex="0" />', errors: [expectedError] },
-  { code: '<div role="article" tabIndex="0" />', errors: [expectedError] },
-  { code: '<article tabIndex="0" />', errors: [expectedError] },
-  { code: '<article tabIndex={0} />', errors: [expectedError] },
-];
-
-const recommendedOptions = (
-  configs.recommended.rules[`jsx-a11y/${ruleName}`][1] || {}
-);
-
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    { code: '<div role="tabpanel" tabIndex="0" />' },
-    // Expressions should fail in strict mode
-    { code: '<div role={ROLE_BUTTON} onClick={() => {}} tabIndex="0" />;' },
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ].map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    { code: '<div role="tabpanel" tabIndex="0" />', errors: [expectedError] },
-    // Expressions should fail in strict mode
-    { code: '<div role={ROLE_BUTTON} onClick={() => {}} tabIndex="0" />;', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-onchange-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-onchange-test.js
deleted file mode 100644
index fa80244..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-onchange-test.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce usage of onBlur over onChange on select menus for accessibility.
- * @author Ethan Cohen
- */
-
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-onchange';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'onBlur must be used instead of onchange, unless absolutely necessary and it causes no negative consequences for keyboard only or screen reader users.',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('no-onchange', rule, {
-  valid: [
-    { code: '<select onBlur={() => {}} />;' },
-    { code: '<select onBlur={handleOnBlur} />;' },
-    { code: '<option />;' },
-    { code: '<option onBlur={() => {}} onChange={() => {}} />;' },
-    { code: '<option {...props} />' },
-    { code: '<input onChange={() => {}} />;' },
-    { code: '<input onChange={handleOnChange} />;' },
-    { code: '<input />;' },
-    { code: '<input onChange={() => {}} onChange={() => {}} />;' },
-    { code: '<input {...props} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<select onChange={() => {}} />;', errors: [expectedError] },
-    { code: '<select onChange={handleOnChange} />;', errors: [expectedError] },
-    { code: '<option onChange={() => {}} />', errors: [expectedError] },
-    { code: '<option onChange={() => {}} {...props} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-redundant-roles-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-redundant-roles-test.js
deleted file mode 100644
index 2412866..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-redundant-roles-test.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce explicit role property is not the
- * same as implicit default role property on element.
- * @author Ethan Cohen <@evcohen>
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-redundant-roles';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = (element, implicitRole) => ({
-  message: `The element ${element} has an implicit role of ${implicitRole}. Defining this explicitly is redundant and should be avoided.`,
-  type: 'JSXOpeningElement',
-});
-
-const ruleName = 'jsx-a11y/no-redundant-roles';
-
-const alwaysValid = [
-  { code: '<div />;' },
-  { code: '<button role="main" />' },
-  { code: '<MyComponent role="button" />' },
-  { code: '<button role={`${foo}button`} />' },
-];
-
-const neverValid = [
-  { code: '<button role="button" />', errors: [expectedError('button', 'button')] },
-  { code: '<body role="DOCUMENT" />', errors: [expectedError('body', 'document')] },
-];
-
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    { code: '<nav role="navigation" />' },
-  ]
-    .map(parserOptionsMapper),
-  invalid: neverValid
-    .map(parserOptionsMapper),
-});
-
-const noNavExceptionsOptions = { nav: [] };
-
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: alwaysValid
-    .map(ruleOptionsMapperFactory(noNavExceptionsOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    { code: '<nav role="navigation" />', errors: [expectedError('nav', 'navigation')] },
-  ]
-    .map(ruleOptionsMapperFactory(noNavExceptionsOptions))
-    .map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-static-element-interactions-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-static-element-interactions-test.js
deleted file mode 100644
index 6b593f5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/no-static-element-interactions-test.js
+++ /dev/null
@@ -1,455 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce static elements have no interactive handlers.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import { configs } from '../../../src/index';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/no-static-element-interactions';
-import ruleOptionsMapperFactory from '../../__util__/ruleOptionsMapperFactory';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = 'Static HTML elements with event handlers require a role.';
-
-const expectedError = {
-  message: errorMessage,
-  type: 'JSXOpeningElement',
-};
-
-const ruleName = 'no-static-element-interactions';
-
-const alwaysValid = [
-  { code: '<TestComponent onClick={doFoo} />' },
-  { code: '<Button onClick={doFoo} />' },
-  { code: '<div />;' },
-  { code: '<div className="foo" />;' },
-  { code: '<div className="foo" {...props} />;' },
-  { code: '<div onClick={() => void 0} aria-hidden />;' },
-  { code: '<div onClick={() => void 0} aria-hidden={true} />;' },
-  { code: '<div onClick={null} />;' },
-  /* All flavors of input */
-  { code: '<input onClick={() => void 0} />' },
-  { code: '<input type="button" onClick={() => void 0} />' },
-  { code: '<input type="checkbox" onClick={() => void 0} />' },
-  { code: '<input type="color" onClick={() => void 0} />' },
-  { code: '<input type="date" onClick={() => void 0} />' },
-  { code: '<input type="datetime" onClick={() => void 0} />' },
-  { code: '<input type="datetime-local" onClick={() => void 0} />' },
-  { code: '<input type="email" onClick={() => void 0} />' },
-  { code: '<input type="file" onClick={() => void 0} />' },
-  { code: '<input type="hidden" onClick={() => void 0} />' },
-  { code: '<input type="image" onClick={() => void 0} />' },
-  { code: '<input type="month" onClick={() => void 0} />' },
-  { code: '<input type="number" onClick={() => void 0} />' },
-  { code: '<input type="password" onClick={() => void 0} />' },
-  { code: '<input type="radio" onClick={() => void 0} />' },
-  { code: '<input type="range" onClick={() => void 0} />' },
-  { code: '<input type="reset" onClick={() => void 0} />' },
-  { code: '<input type="search" onClick={() => void 0} />' },
-  { code: '<input type="submit" onClick={() => void 0} />' },
-  { code: '<input type="tel" onClick={() => void 0} />' },
-  { code: '<input type="text" onClick={() => void 0} />' },
-  { code: '<input type="time" onClick={() => void 0} />' },
-  { code: '<input type="url" onClick={() => void 0} />' },
-  { code: '<input type="week" onClick={() => void 0} />' },
-  /* End all flavors of input */
-  { code: '<button onClick={() => void 0} className="foo" />' },
-  { code: '<menuitem onClick={() => {}} />;' },
-  { code: '<option onClick={() => void 0} className="foo" />' },
-  { code: '<select onClick={() => void 0} className="foo" />' },
-  { code: '<textarea onClick={() => void 0} className="foo" />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" />' },
-  { code: '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' },
-  { code: '<audio onClick={() => {}} />;' },
-  { code: '<form onClick={() => {}} />;' },
-  { code: '<form onSubmit={() => {}} />;' },
-  /* HTML elements attributed with an interactive role */
-  { code: '<div role="button" onClick={() => {}} />;' },
-  { code: '<div role="checkbox" onClick={() => {}} />;' },
-  { code: '<div role="columnheader" onClick={() => {}} />;' },
-  { code: '<div role="combobox" onClick={() => {}} />;' },
-  { code: '<div role="form" onClick={() => {}} />;' },
-  { code: '<div role="gridcell" onClick={() => {}} />;' },
-  { code: '<div role="link" onClick={() => {}} />;' },
-  { code: '<div role="menuitem" onClick={() => {}} />;' },
-  { code: '<div role="menuitemcheckbox" onClick={() => {}} />;' },
-  { code: '<div role="menuitemradio" onClick={() => {}} />;' },
-  { code: '<div role="option" onClick={() => {}} />;' },
-  { code: '<div role="radio" onClick={() => {}} />;' },
-  { code: '<div role="rowheader" onClick={() => {}} />;' },
-  { code: '<div role="searchbox" onClick={() => {}} />;' },
-  { code: '<div role="slider" onClick={() => {}} />;' },
-  { code: '<div role="spinbutton" onClick={() => {}} />;' },
-  { code: '<div role="switch" onClick={() => {}} />;' },
-  { code: '<div role="tab" onClick={() => {}} />;' },
-  { code: '<div role="textbox" onClick={() => {}} />;' },
-  { code: '<div role="treeitem" onClick={() => {}} />;' },
-  /* Presentation is a special case role that indicates intentional static semantics */
-  { code: '<div role="presentation" onClick={() => {}} />;' },
-  { code: '<div role="presentation" onKeyDown={() => {}} />;' },
-  /* HTML elements with an inherent, non-interactive role */
-  { code: '<main onClick={() => void 0} />;' },
-  { code: '<article onClick={() => {}} />;' },
-  { code: '<article onDblClick={() => void 0} />;' },
-  { code: '<blockquote onClick={() => {}} />;' },
-  { code: '<br onClick={() => {}} />;' },
-  { code: '<canvas onClick={() => {}} />;' },
-  { code: '<caption onClick={() => {}} />;' },
-  { code: '<details onClick={() => {}} />;' },
-  { code: '<dd onClick={() => {}} />;' },
-  { code: '<dfn onClick={() => {}} />;' },
-  { code: '<dir onClick={() => {}} />;' },
-  { code: '<dl onClick={() => {}} />;' },
-  { code: '<dt onClick={() => {}} />;' },
-  { code: '<embed onClick={() => {}} />;' },
-  { code: '<fieldset onClick={() => {}} />;' },
-  { code: '<figcaption onClick={() => {}} />;' },
-  { code: '<figure onClick={() => {}} />;' },
-  { code: '<footer onClick={() => {}} />;' },
-  { code: '<frame onClick={() => {}} />;' },
-  { code: '<h1 onClick={() => {}} />;' },
-  { code: '<h2 onClick={() => {}} />;' },
-  { code: '<h3 onClick={() => {}} />;' },
-  { code: '<h4 onClick={() => {}} />;' },
-  { code: '<h5 onClick={() => {}} />;' },
-  { code: '<h6 onClick={() => {}} />;' },
-  { code: '<hr onClick={() => {}} />;' },
-  { code: '<iframe onClick={() => {}} />;' },
-  { code: '<img onClick={() => {}} />;' },
-  { code: '<label onClick={() => {}} />;' },
-  { code: '<legend onClick={() => {}} />;' },
-  { code: '<li onClick={() => {}} />;' },
-  { code: '<link onClick={() => {}} />;' },
-  { code: '<mark onClick={() => {}} />;' },
-  { code: '<marquee onClick={() => {}} />;' },
-  { code: '<menu onClick={() => {}} />;' },
-  { code: '<meter onClick={() => {}} />;' },
-  { code: '<nav onClick={() => {}} />;' },
-  { code: '<ol onClick={() => {}} />;' },
-  { code: '<p onClick={() => {}} />;' },
-  { code: '<pre onClick={() => {}} />;' },
-  { code: '<progress onClick={() => {}} />;' },
-  { code: '<ruby onClick={() => {}} />;' },
-  { code: '<table onClick={() => {}} />;' },
-  { code: '<tbody onClick={() => {}} />;' },
-  { code: '<tfoot onClick={() => {}} />;' },
-  { code: '<th onClick={() => {}} />;' },
-  { code: '<thead onClick={() => {}} />;' },
-  { code: '<time onClick={() => {}} />;' },
-  { code: '<tr onClick={() => {}} />;' },
-  { code: '<video onClick={() => {}} />;' },
-  { code: '<ul onClick={() => {}} />;' },
-  /* HTML elements attributed with an abstract role */
-  { code: '<div role="command" onClick={() => {}} />;' },
-  { code: '<div role="composite" onClick={() => {}} />;' },
-  { code: '<div role="input" onClick={() => {}} />;' },
-  { code: '<div role="landmark" onClick={() => {}} />;' },
-  { code: '<div role="range" onClick={() => {}} />;' },
-  { code: '<div role="roletype" onClick={() => {}} />;' },
-  { code: '<div role="sectionhead" onClick={() => {}} />;' },
-  { code: '<div role="select" onClick={() => {}} />;' },
-  { code: '<div role="structure" onClick={() => {}} />;' },
-  { code: '<div role="widget" onClick={() => {}} />;' },
-  { code: '<div role="window" onClick={() => {}} />;' },
-  /* HTML elements attributed with a non-interactive role */
-  { code: '<div role="alert" onClick={() => {}} />;' },
-  { code: '<div role="alertdialog" onClick={() => {}} />;' },
-  { code: '<div role="application" onClick={() => {}} />;' },
-  { code: '<div role="article" onClick={() => {}} />;' },
-  { code: '<div role="banner" onClick={() => {}} />;' },
-  { code: '<div role="cell" onClick={() => {}} />;' },
-  { code: '<div role="complementary" onClick={() => {}} />;' },
-  { code: '<div role="contentinfo" onClick={() => {}} />;' },
-  { code: '<div role="definition" onClick={() => {}} />;' },
-  { code: '<div role="dialog" onClick={() => {}} />;' },
-  { code: '<div role="directory" onClick={() => {}} />;' },
-  { code: '<div role="document" onClick={() => {}} />;' },
-  { code: '<div role="feed" onClick={() => {}} />;' },
-  { code: '<div role="figure" onClick={() => {}} />;' },
-  { code: '<div role="grid" onClick={() => {}} />;' },
-  { code: '<div role="group" onClick={() => {}} />;' },
-  { code: '<div role="heading" onClick={() => {}} />;' },
-  { code: '<div role="img" onClick={() => {}} />;' },
-  { code: '<div role="list" onClick={() => {}} />;' },
-  { code: '<div role="listbox" onClick={() => {}} />;' },
-  { code: '<div role="listitem" onClick={() => {}} />;' },
-  { code: '<div role="log" onClick={() => {}} />;' },
-  { code: '<div role="main" onClick={() => {}} />;' },
-  { code: '<div role="marquee" onClick={() => {}} />;' },
-  { code: '<div role="math" onClick={() => {}} />;' },
-  { code: '<div role="menu" onClick={() => {}} />;' },
-  { code: '<div role="menubar" onClick={() => {}} />;' },
-  { code: '<div role="navigation" onClick={() => {}} />;' },
-  { code: '<div role="note" onClick={() => {}} />;' },
-  { code: '<div role="progressbar" onClick={() => {}} />;' },
-  { code: '<div role="radiogroup" onClick={() => {}} />;' },
-  { code: '<div role="region" onClick={() => {}} />;' },
-  { code: '<div role="row" onClick={() => {}} />;' },
-  { code: '<div role="rowgroup" onClick={() => {}} />;' },
-  { code: '<div role="section" onClick={() => {}} />;' },
-  { code: '<div role="search" onClick={() => {}} />;' },
-  { code: '<div role="separator" onClick={() => {}} />;' },
-  { code: '<div role="scrollbar" onClick={() => {}} />;' },
-  { code: '<div role="status" onClick={() => {}} />;' },
-  { code: '<div role="table" onClick={() => {}} />;' },
-  { code: '<div role="tablist" onClick={() => {}} />;' },
-  { code: '<div role="tabpanel" onClick={() => {}} />;' },
-  { code: '<td onClick={() => {}} />;' },
-  { code: '<div role="term" onClick={() => {}} />;' },
-  { code: '<div role="timer" onClick={() => {}} />;' },
-  { code: '<div role="toolbar" onClick={() => {}} />;' },
-  { code: '<div role="tooltip" onClick={() => {}} />;' },
-  { code: '<div role="tree" onClick={() => {}} />;' },
-  { code: '<div role="treegrid" onClick={() => {}} />;' },
-  // All the possible handlers
-  { code: '<div onCopy={() => {}} />;' },
-  { code: '<div onCut={() => {}} />;' },
-  { code: '<div onPaste={() => {}} />;' },
-  { code: '<div onCompositionEnd={() => {}} />;' },
-  { code: '<div onCompositionStart={() => {}} />;' },
-  { code: '<div onCompositionUpdate={() => {}} />;' },
-  { code: '<div onChange={() => {}} />;' },
-  { code: '<div onInput={() => {}} />;' },
-  { code: '<div onSubmit={() => {}} />;' },
-  { code: '<div onSelect={() => {}} />;' },
-  { code: '<div onTouchCancel={() => {}} />;' },
-  { code: '<div onTouchEnd={() => {}} />;' },
-  { code: '<div onTouchMove={() => {}} />;' },
-  { code: '<div onTouchStart={() => {}} />;' },
-  { code: '<div onScroll={() => {}} />;' },
-  { code: '<div onWheel={() => {}} />;' },
-  { code: '<div onAbort={() => {}} />;' },
-  { code: '<div onCanPlay={() => {}} />;' },
-  { code: '<div onCanPlayThrough={() => {}} />;' },
-  { code: '<div onDurationChange={() => {}} />;' },
-  { code: '<div onEmptied={() => {}} />;' },
-  { code: '<div onEncrypted={() => {}} />;' },
-  { code: '<div onEnded={() => {}} />;' },
-  { code: '<div onError={() => {}} />;' },
-  { code: '<div onLoadedData={() => {}} />;' },
-  { code: '<div onLoadedMetadata={() => {}} />;' },
-  { code: '<div onLoadStart={() => {}} />;' },
-  { code: '<div onPause={() => {}} />;' },
-  { code: '<div onPlay={() => {}} />;' },
-  { code: '<div onPlaying={() => {}} />;' },
-  { code: '<div onProgress={() => {}} />;' },
-  { code: '<div onRateChange={() => {}} />;' },
-  { code: '<div onSeeked={() => {}} />;' },
-  { code: '<div onSeeking={() => {}} />;' },
-  { code: '<div onStalled={() => {}} />;' },
-  { code: '<div onSuspend={() => {}} />;' },
-  { code: '<div onTimeUpdate={() => {}} />;' },
-  { code: '<div onVolumeChange={() => {}} />;' },
-  { code: '<div onWaiting={() => {}} />;' },
-  { code: '<div onLoad={() => {}} />;' },
-  { code: '<div onError={() => {}} />;' },
-  { code: '<div onAnimationStart={() => {}} />;' },
-  { code: '<div onAnimationEnd={() => {}} />;' },
-  { code: '<div onAnimationIteration={() => {}} />;' },
-  { code: '<div onTransitionEnd={() => {}} />;' },
-];
-
-const neverValid = [
-  { code: '<div onClick={() => void 0} />;', errors: [expectedError] },
-  { code: '<div onClick={() => void 0} role={undefined} />;', errors: [expectedError] },
-  { code: '<div onClick={() => void 0} {...props} />;', errors: [expectedError] },
-  { code: '<div onKeyUp={() => void 0} aria-hidden={false} />;', errors: [expectedError] },
-  /* Static elements; no inherent role */
-  { code: '<a onClick={() => void 0} />', errors: [expectedError] },
-  { code: '<a onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<a tabIndex="0" onClick={() => void 0} />', errors: [expectedError] },
-  { code: '<area onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<acronym onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<address onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<applet onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<aside onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<b onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<base onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<bdi onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<bdo onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<big onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<blink onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<body onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<center onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<cite onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<code onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<col onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<colgroup onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<content onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<data onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<datalist onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<del onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<em onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<font onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<frameset onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<head onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<header onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<hgroup onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<html onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<i onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<ins onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<kbd onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<keygen onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<map onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<meta onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<noembed onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<noscript onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<object onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<optgroup onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<output onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<param onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<picture onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<q onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<rp onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<rt onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<rtc onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<s onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<samp onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<script onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<small onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<source onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<spacer onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<span onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<strike onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<strong onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<style onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<sub onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<summary onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<sup onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<title onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<track onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<tt onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<u onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<var onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<wbr onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<xmp onClick={() => {}} />;', errors: [expectedError] },
-  // Handlers
-  { code: '<div onKeyDown={() => {}} />;', errors: [expectedError] },
-  { code: '<div onKeyPress={() => {}} />;', errors: [expectedError] },
-  { code: '<div onKeyUp={() => {}} />;', errors: [expectedError] },
-  { code: '<div onClick={() => {}} />;', errors: [expectedError] },
-  { code: '<div onMouseDown={() => {}} />;', errors: [expectedError] },
-  { code: '<div onMouseUp={() => {}} />;', errors: [expectedError] },
-];
-
-const recommendedOptions = configs.recommended.rules[`jsx-a11y/${ruleName}`][1] || {};
-ruleTester.run(`${ruleName}:recommended`, rule, {
-  valid: [
-    ...alwaysValid,
-    // All the possible handlers
-    { code: '<div onCopy={() => {}} />;' },
-    { code: '<div onCut={() => {}} />;' },
-    { code: '<div onPaste={() => {}} />;' },
-    { code: '<div onCompositionEnd={() => {}} />;' },
-    { code: '<div onCompositionStart={() => {}} />;' },
-    { code: '<div onCompositionUpdate={() => {}} />;' },
-    { code: '<div onFocus={() => {}} />;' },
-    { code: '<div onBlur={() => {}} />;' },
-    { code: '<div onChange={() => {}} />;' },
-    { code: '<div onInput={() => {}} />;' },
-    { code: '<div onSubmit={() => {}} />;' },
-    { code: '<div onContextMenu={() => {}} />;' },
-    { code: '<div onDblClick={() => {}} />;' },
-    { code: '<div onDoubleClick={() => {}} />;' },
-    { code: '<div onDrag={() => {}} />;' },
-    { code: '<div onDragEnd={() => {}} />;' },
-    { code: '<div onDragEnter={() => {}} />;' },
-    { code: '<div onDragExit={() => {}} />;' },
-    { code: '<div onDragLeave={() => {}} />;' },
-    { code: '<div onDragOver={() => {}} />;' },
-    { code: '<div onDragStart={() => {}} />;' },
-    { code: '<div onDrop={() => {}} />;' },
-    { code: '<div onMouseEnter={() => {}} />;' },
-    { code: '<div onMouseLeave={() => {}} />;' },
-    { code: '<div onMouseMove={() => {}} />;' },
-    { code: '<div onMouseOut={() => {}} />;' },
-    { code: '<div onMouseOver={() => {}} />;' },
-    { code: '<div onSelect={() => {}} />;' },
-    { code: '<div onTouchCancel={() => {}} />;' },
-    { code: '<div onTouchEnd={() => {}} />;' },
-    { code: '<div onTouchMove={() => {}} />;' },
-    { code: '<div onTouchStart={() => {}} />;' },
-    { code: '<div onScroll={() => {}} />;' },
-    { code: '<div onWheel={() => {}} />;' },
-    { code: '<div onAbort={() => {}} />;' },
-    { code: '<div onCanPlay={() => {}} />;' },
-    { code: '<div onCanPlayThrough={() => {}} />;' },
-    { code: '<div onDurationChange={() => {}} />;' },
-    { code: '<div onEmptied={() => {}} />;' },
-    { code: '<div onEncrypted={() => {}} />;' },
-    { code: '<div onEnded={() => {}} />;' },
-    { code: '<div onError={() => {}} />;' },
-    { code: '<div onLoadedData={() => {}} />;' },
-    { code: '<div onLoadedMetadata={() => {}} />;' },
-    { code: '<div onLoadStart={() => {}} />;' },
-    { code: '<div onPause={() => {}} />;' },
-    { code: '<div onPlay={() => {}} />;' },
-    { code: '<div onPlaying={() => {}} />;' },
-    { code: '<div onProgress={() => {}} />;' },
-    { code: '<div onRateChange={() => {}} />;' },
-    { code: '<div onSeeked={() => {}} />;' },
-    { code: '<div onSeeking={() => {}} />;' },
-    { code: '<div onStalled={() => {}} />;' },
-    { code: '<div onSuspend={() => {}} />;' },
-    { code: '<div onTimeUpdate={() => {}} />;' },
-    { code: '<div onVolumeChange={() => {}} />;' },
-    { code: '<div onWaiting={() => {}} />;' },
-    { code: '<div onLoad={() => {}} />;' },
-    { code: '<div onError={() => {}} />;' },
-    { code: '<div onAnimationStart={() => {}} />;' },
-    { code: '<div onAnimationEnd={() => {}} />;' },
-    { code: '<div onAnimationIteration={() => {}} />;' },
-    { code: '<div onTransitionEnd={() => {}} />;' },
-    // Expressions should pass in recommended mode
-    { code: '<div role={ROLE_BUTTON} onClick={() => {}} />;' },
-    { code: '<div  {...this.props} role={this.props.role} onKeyPress={e => this.handleKeyPress(e)}>{this.props.children}</div>' },
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-  ]
-    .map(ruleOptionsMapperFactory(recommendedOptions))
-    .map(parserOptionsMapper),
-});
-
-ruleTester.run(`${ruleName}:strict`, rule, {
-  valid: [
-    ...alwaysValid,
-  ].map(parserOptionsMapper),
-  invalid: [
-    ...neverValid,
-    // All the possible handlers
-    { code: '<div onContextMenu={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDblClick={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDoubleClick={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDrag={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragEnd={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragEnter={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragExit={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragLeave={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragOver={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDragStart={() => {}} />;', errors: [expectedError] },
-    { code: '<div onDrop={() => {}} />;', errors: [expectedError] },
-    { code: '<div onMouseEnter={() => {}} />;', errors: [expectedError] },
-    { code: '<div onMouseLeave={() => {}} />;', errors: [expectedError] },
-    { code: '<div onMouseMove={() => {}} />;', errors: [expectedError] },
-    { code: '<div onMouseOut={() => {}} />;', errors: [expectedError] },
-    { code: '<div onMouseOver={() => {}} />;', errors: [expectedError] },
-    // Expressions should fail in strict mode
-    { code: '<div role={ROLE_BUTTON} onClick={() => {}} />;', errors: [expectedError] },
-    { code: '<div  {...this.props} role={this.props.role} onKeyPress={e => this.handleKeyPress(e)}>{this.props.children}</div>', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-has-required-aria-props-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-has-required-aria-props-test.js
deleted file mode 100644
index 9d38641..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-has-required-aria-props-test.js
+++ /dev/null
@@ -1,140 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce that elements with ARIA roles must
- *  have all required attributes for that role.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { roles } from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/role-has-required-aria-props';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const errorMessage = (role) => {
-  const requiredProps = Object.keys(roles.get(role).requiredProps);
-
-  return {
-    message: `Elements with the ARIA role "${role}" must have the following attributes defined: ${requiredProps}`,
-    type: 'JSXAttribute',
-  };
-};
-
-
-// Create basic test cases using all valid role types.
-const basicValidityTests = [...roles.keys()].map((role) => {
-  const {
-    requiredProps: requiredPropKeyValues,
-  } = roles.get(role);
-  const requiredProps = Object.keys(requiredPropKeyValues);
-  const propChain = requiredProps.join(' ');
-
-  return {
-    code: `<div role="${role.toLowerCase()}" ${propChain} />`,
-  };
-});
-
-ruleTester.run('role-has-required-aria-props', rule, {
-  valid: [
-    { code: '<Bar baz />' },
-    { code: '<MyComponent role="combobox" />' },
-    // Variables should pass, as we are only testing literals.
-    { code: '<div />' },
-    { code: '<div></div>' },
-    { code: '<div role={role} />' },
-    { code: '<div role={role || "button"} />' },
-    { code: '<div role={role || "foobar"} />' },
-    { code: '<div role="row" />' },
-    { code: '<span role="checkbox" aria-checked="false" aria-labelledby="foo" tabindex="0"></span>' },
-    { code: '<input role="checkbox" aria-checked="false" aria-labelledby="foo" tabindex="0" {...props} type="checkbox" />' },
-    { code: '<input type="checkbox" role="switch" />' },
-  ].concat(basicValidityTests).map(parserOptionsMapper),
-
-  invalid: [
-    // SLIDER
-    { code: '<div role="slider" />', errors: [errorMessage('slider')] },
-    {
-      code: '<div role="slider" aria-valuemax />',
-      errors: [errorMessage('slider')],
-    },
-    {
-      code: '<div role="slider" aria-valuemax aria-valuemin />',
-      errors: [errorMessage('slider')],
-    },
-    {
-      code: '<div role="slider" aria-valuemax aria-valuenow />',
-      errors: [errorMessage('slider')],
-    },
-    {
-      code: '<div role="slider" aria-valuemin aria-valuenow />',
-      errors: [errorMessage('slider')],
-    },
-
-    // SPINBUTTON
-    { code: '<div role="spinbutton" />', errors: [errorMessage('spinbutton')] },
-    {
-      code: '<div role="spinbutton" aria-valuemax />',
-      errors: [errorMessage('spinbutton')],
-    },
-    {
-      code: '<div role="spinbutton" aria-valuemax aria-valuemin />',
-      errors: [errorMessage('spinbutton')],
-    },
-    {
-      code: '<div role="spinbutton" aria-valuemax aria-valuenow />',
-      errors: [errorMessage('spinbutton')],
-    },
-    {
-      code: '<div role="spinbutton" aria-valuemin aria-valuenow />',
-      errors: [errorMessage('spinbutton')],
-    },
-
-    // CHECKBOX
-    { code: '<div role="checkbox" />', errors: [errorMessage('checkbox')] },
-    { code: '<div role="checkbox" checked />', errors: [errorMessage('checkbox')] },
-    {
-      code: '<div role="checkbox" aria-chcked />',
-      errors: [errorMessage('checkbox')],
-    },
-    {
-      code: '<span role="checkbox" aria-labelledby="foo" tabindex="0"></span>',
-      errors: [errorMessage('checkbox')],
-    },
-
-    // COMBOBOX
-    { code: '<div role="combobox" />', errors: [errorMessage('combobox')] },
-    { code: '<div role="combobox" expanded />', errors: [errorMessage('combobox')] },
-    {
-      code: '<div role="combobox" aria-expandd />',
-      errors: [errorMessage('combobox')],
-    },
-
-    // SCROLLBAR
-    { code: '<div role="scrollbar" />', errors: [errorMessage('scrollbar')] },
-    {
-      code: '<div role="scrollbar" aria-valuemax />',
-      errors: [errorMessage('scrollbar')],
-    },
-    {
-      code: '<div role="scrollbar" aria-valuemax aria-valuemin />',
-      errors: [errorMessage('scrollbar')],
-    },
-    {
-      code: '<div role="scrollbar" aria-valuemax aria-valuenow />',
-      errors: [errorMessage('scrollbar')],
-    },
-    {
-      code: '<div role="scrollbar" aria-valuemin aria-valuenow />',
-      errors: [errorMessage('scrollbar')],
-    },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-supports-aria-props-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-supports-aria-props-test.js
deleted file mode 100644
index 763ee22..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/role-supports-aria-props-test.js
+++ /dev/null
@@ -1,448 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce that an element does not have an unsupported ARIA attribute.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import {
-  aria,
-  roles,
-} from 'aria-query';
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/role-supports-aria-props';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const generateErrorMessage = (attr, role, tag, isImplicit) => {
-  if (isImplicit) {
-    return `The attribute ${attr} is not supported by the role ${role}. \
-This role is implicit on the element ${tag}.`;
-  }
-
-  return `The attribute ${attr} is not supported by the role ${role}.`;
-};
-
-const errorMessage = (attr, role, tag, isImplicit) => ({
-  message: generateErrorMessage(attr, role, tag, isImplicit),
-  type: 'JSXOpeningElement',
-});
-
-const nonAbstractRoles = [...roles.keys()].filter(role => roles.get(role).abstract === false);
-
-const createTests = rolesNames => rolesNames.reduce((tests, role) => {
-  const {
-    props: propKeyValues,
-  } = roles.get(role);
-  const validPropsForRole = Object.keys(propKeyValues);
-  const invalidPropsForRole = [...aria.keys()]
-    .map(attribute => attribute.toLowerCase())
-    .filter(attribute => validPropsForRole.indexOf(attribute) === -1);
-  const normalRole = role.toLowerCase();
-
-  const allTests = [];
-
-  allTests[0] = tests[0].concat(validPropsForRole.map(prop => ({
-    code: `<div role="${normalRole}" ${prop.toLowerCase()} />`,
-  })));
-
-  allTests[1] = tests[1].concat(invalidPropsForRole.map(prop => ({
-    code: `<div role="${normalRole}" ${prop.toLowerCase()} />`,
-    errors: [errorMessage(prop.toLowerCase(), normalRole, 'div', false)],
-  })));
-
-  return allTests;
-}, [[], []]);
-
-const [validTests, invalidTests] = createTests(nonAbstractRoles);
-
-ruleTester.run('role-supports-aria-props', rule, {
-  valid: [
-    { code: '<Foo bar />' },
-    { code: '<div />' },
-    { code: '<div id="main" />' },
-    { code: '<div role />' },
-    { code: '<div role="presentation" {...props} />' },
-    { code: '<Foo.Bar baz={true} />' },
-
-    // IMPLICIT ROLE TESTS
-    // A TESTS - implicit role is `link`
-    { code: '<a href="#" aria-expanded />' },
-    { code: '<a href="#" aria-atomic />' },
-    { code: '<a href="#" aria-busy />' },
-    { code: '<a href="#" aria-controls />' },
-    { code: '<a href="#" aria-current />' },
-    { code: '<a href="#" aria-describedby />' },
-    { code: '<a href="#" aria-disabled />' },
-    { code: '<a href="#" aria-dropeffect />' },
-    { code: '<a href="#" aria-flowto />' },
-    { code: '<a href="#" aria-grabbed />' },
-    { code: '<a href="#" aria-haspopup />' },
-    { code: '<a href="#" aria-hidden />' },
-    { code: '<a href="#" aria-invalid />' },
-    { code: '<a href="#" aria-label />' },
-    { code: '<a href="#" aria-labelledby />' },
-    { code: '<a href="#" aria-live />' },
-    { code: '<a href="#" aria-owns />' },
-    { code: '<a href="#" aria-relevant />' },
-
-    // this will have global
-    { code: '<a aria-checked />' },
-
-    // AREA TESTS - implicit role is `link`
-    { code: '<area href="#" aria-expanded />' },
-    { code: '<area href="#" aria-atomic />' },
-    { code: '<area href="#" aria-busy />' },
-    { code: '<area href="#" aria-controls />' },
-    { code: '<area href="#" aria-describedby />' },
-    { code: '<area href="#" aria-disabled />' },
-    { code: '<area href="#" aria-dropeffect />' },
-    { code: '<area href="#" aria-flowto />' },
-    { code: '<area href="#" aria-grabbed />' },
-    { code: '<area href="#" aria-haspopup />' },
-    { code: '<area href="#" aria-hidden />' },
-    { code: '<area href="#" aria-invalid />' },
-    { code: '<area href="#" aria-label />' },
-    { code: '<area href="#" aria-labelledby />' },
-    { code: '<area href="#" aria-live />' },
-    { code: '<area href="#" aria-owns />' },
-    { code: '<area href="#" aria-relevant />' },
-
-    // this will have global
-    { code: '<area aria-checked />' },
-
-    // LINK TESTS - implicit role is `link`
-    { code: '<link href="#" aria-expanded />' },
-    { code: '<link href="#" aria-atomic />' },
-    { code: '<link href="#" aria-busy />' },
-    { code: '<link href="#" aria-controls />' },
-    { code: '<link href="#" aria-describedby />' },
-    { code: '<link href="#" aria-disabled />' },
-    { code: '<link href="#" aria-dropeffect />' },
-    { code: '<link href="#" aria-flowto />' },
-    { code: '<link href="#" aria-grabbed />' },
-    { code: '<link href="#" aria-haspopup />' },
-    { code: '<link href="#" aria-hidden />' },
-    { code: '<link href="#" aria-invalid />' },
-    { code: '<link href="#" aria-label />' },
-    { code: '<link href="#" aria-labelledby />' },
-    { code: '<link href="#" aria-live />' },
-    { code: '<link href="#" aria-owns />' },
-    { code: '<link href="#" aria-relevant />' },
-
-    // this will have global
-    { code: '<link aria-checked />' },
-
-    // IMG TESTS - no implicit role
-    { code: '<img alt="" aria-checked />' },
-
-    // this will have role of `img`
-    { code: '<img alt="foobar" aria-busy />' },
-
-    // MENU TESTS - implicit role is `toolbar` when `type="toolbar"`
-    { code: '<menu type="toolbar" aria-activedescendant />' },
-    { code: '<menu type="toolbar" aria-expanded />' },
-    { code: '<menu type="toolbar" aria-atomic />' },
-    { code: '<menu type="toolbar" aria-busy />' },
-    { code: '<menu type="toolbar" aria-controls />' },
-    { code: '<menu type="toolbar" aria-describedby />' },
-    { code: '<menu type="toolbar" aria-disabled />' },
-    { code: '<menu type="toolbar" aria-dropeffect />' },
-    { code: '<menu type="toolbar" aria-flowto />' },
-    { code: '<menu type="toolbar" aria-grabbed />' },
-    { code: '<menu type="toolbar" aria-haspopup />' },
-    { code: '<menu type="toolbar" aria-hidden />' },
-    { code: '<menu type="toolbar" aria-invalid />' },
-    { code: '<menu type="toolbar" aria-label />' },
-    { code: '<menu type="toolbar" aria-labelledby />' },
-    { code: '<menu type="toolbar" aria-live />' },
-    { code: '<menu type="toolbar" aria-owns />' },
-    { code: '<menu type="toolbar" aria-relevant />' },
-
-    // this will have global
-    { code: '<menu aria-checked />' },
-
-    // MENUITEM TESTS
-    // when `type="command`, the implicit role is `menuitem`
-    { code: '<menuitem type="command" aria-atomic />' },
-    { code: '<menuitem type="command" aria-busy />' },
-    { code: '<menuitem type="command" aria-controls />' },
-    { code: '<menuitem type="command" aria-describedby />' },
-    { code: '<menuitem type="command" aria-disabled />' },
-    { code: '<menuitem type="command" aria-dropeffect />' },
-    { code: '<menuitem type="command" aria-flowto />' },
-    { code: '<menuitem type="command" aria-grabbed />' },
-    { code: '<menuitem type="command" aria-haspopup />' },
-    { code: '<menuitem type="command" aria-hidden />' },
-    { code: '<menuitem type="command" aria-invalid />' },
-    { code: '<menuitem type="command" aria-label />' },
-    { code: '<menuitem type="command" aria-labelledby />' },
-    { code: '<menuitem type="command" aria-live />' },
-    { code: '<menuitem type="command" aria-owns />' },
-    { code: '<menuitem type="command" aria-relevant />' },
-    // when `type="checkbox`, the implicit role is `menuitemcheckbox`
-    { code: '<menuitem type="checkbox" aria-checked />' },
-    { code: '<menuitem type="checkbox" aria-atomic />' },
-    { code: '<menuitem type="checkbox" aria-busy />' },
-    { code: '<menuitem type="checkbox" aria-controls />' },
-    { code: '<menuitem type="checkbox" aria-describedby />' },
-    { code: '<menuitem type="checkbox" aria-disabled />' },
-    { code: '<menuitem type="checkbox" aria-dropeffect />' },
-    { code: '<menuitem type="checkbox" aria-flowto />' },
-    { code: '<menuitem type="checkbox" aria-grabbed />' },
-    { code: '<menuitem type="checkbox" aria-haspopup />' },
-    { code: '<menuitem type="checkbox" aria-hidden />' },
-    { code: '<menuitem type="checkbox" aria-invalid />' },
-    { code: '<menuitem type="checkbox" aria-label />' },
-    { code: '<menuitem type="checkbox" aria-labelledby />' },
-    { code: '<menuitem type="checkbox" aria-live />' },
-    { code: '<menuitem type="checkbox" aria-owns />' },
-    { code: '<menuitem type="checkbox" aria-relevant />' },
-    // when `type="radio`, the implicit role is `menuitemradio`
-    { code: '<menuitem type="radio" aria-checked />' },
-    { code: '<menuitem type="radio" aria-atomic />' },
-    { code: '<menuitem type="radio" aria-busy />' },
-    { code: '<menuitem type="radio" aria-controls />' },
-    { code: '<menuitem type="radio" aria-describedby />' },
-    { code: '<menuitem type="radio" aria-disabled />' },
-    { code: '<menuitem type="radio" aria-dropeffect />' },
-    { code: '<menuitem type="radio" aria-flowto />' },
-    { code: '<menuitem type="radio" aria-grabbed />' },
-    { code: '<menuitem type="radio" aria-haspopup />' },
-    { code: '<menuitem type="radio" aria-hidden />' },
-    { code: '<menuitem type="radio" aria-invalid />' },
-    { code: '<menuitem type="radio" aria-label />' },
-    { code: '<menuitem type="radio" aria-labelledby />' },
-    { code: '<menuitem type="radio" aria-live />' },
-    { code: '<menuitem type="radio" aria-owns />' },
-    { code: '<menuitem type="radio" aria-relevant />' },
-    { code: '<menuitem type="radio" aria-posinset />' },
-    { code: '<menuitem type="radio" aria-selected />' },
-    { code: '<menuitem type="radio" aria-setsize />' },
-
-    // these will have global
-    { code: '<menuitem aria-checked />' },
-    { code: '<menuitem type="foo" aria-checked />' },
-
-    // INPUT TESTS
-    // when `type="button"`, the implicit role is `button`
-    { code: '<input type="button" aria-expanded />' },
-    { code: '<input type="button" aria-pressed />' },
-    { code: '<input type="button" aria-atomic />' },
-    { code: '<input type="button" aria-busy />' },
-    { code: '<input type="button" aria-controls />' },
-    { code: '<input type="button" aria-describedby />' },
-    { code: '<input type="button" aria-disabled />' },
-    { code: '<input type="button" aria-dropeffect />' },
-    { code: '<input type="button" aria-flowto />' },
-    { code: '<input type="button" aria-grabbed />' },
-    { code: '<input type="button" aria-haspopup />' },
-    { code: '<input type="button" aria-hidden />' },
-    { code: '<input type="button" aria-invalid />' },
-    { code: '<input type="button" aria-label />' },
-    { code: '<input type="button" aria-labelledby />' },
-    { code: '<input type="button" aria-live />' },
-    { code: '<input type="button" aria-owns />' },
-    { code: '<input type="button" aria-relevant />' },
-    // when `type="image"`, the implicit role is `button`
-    { code: '<input type="image" aria-expanded />' },
-    { code: '<input type="image" aria-pressed />' },
-    { code: '<input type="image" aria-atomic />' },
-    { code: '<input type="image" aria-busy />' },
-    { code: '<input type="image" aria-controls />' },
-    { code: '<input type="image" aria-describedby />' },
-    { code: '<input type="image" aria-disabled />' },
-    { code: '<input type="image" aria-dropeffect />' },
-    { code: '<input type="image" aria-flowto />' },
-    { code: '<input type="image" aria-grabbed />' },
-    { code: '<input type="image" aria-haspopup />' },
-    { code: '<input type="image" aria-hidden />' },
-    { code: '<input type="image" aria-invalid />' },
-    { code: '<input type="image" aria-label />' },
-    { code: '<input type="image" aria-labelledby />' },
-    { code: '<input type="image" aria-live />' },
-    { code: '<input type="image" aria-owns />' },
-    { code: '<input type="image" aria-relevant />' },
-    // when `type="reset"`, the implicit role is `button`
-    { code: '<input type="reset" aria-expanded />' },
-    { code: '<input type="reset" aria-pressed />' },
-    { code: '<input type="reset" aria-atomic />' },
-    { code: '<input type="reset" aria-busy />' },
-    { code: '<input type="reset" aria-controls />' },
-    { code: '<input type="reset" aria-describedby />' },
-    { code: '<input type="reset" aria-disabled />' },
-    { code: '<input type="reset" aria-dropeffect />' },
-    { code: '<input type="reset" aria-flowto />' },
-    { code: '<input type="reset" aria-grabbed />' },
-    { code: '<input type="reset" aria-haspopup />' },
-    { code: '<input type="reset" aria-hidden />' },
-    { code: '<input type="reset" aria-invalid />' },
-    { code: '<input type="reset" aria-label />' },
-    { code: '<input type="reset" aria-labelledby />' },
-    { code: '<input type="reset" aria-live />' },
-    { code: '<input type="reset" aria-owns />' },
-    { code: '<input type="reset" aria-relevant />' },
-    // when `type="submit"`, the implicit role is `button`
-    { code: '<input type="submit" aria-expanded />' },
-    { code: '<input type="submit" aria-pressed />' },
-    { code: '<input type="submit" aria-atomic />' },
-    { code: '<input type="submit" aria-busy />' },
-    { code: '<input type="submit" aria-controls />' },
-    { code: '<input type="submit" aria-describedby />' },
-    { code: '<input type="submit" aria-disabled />' },
-    { code: '<input type="submit" aria-dropeffect />' },
-    { code: '<input type="submit" aria-flowto />' },
-    { code: '<input type="submit" aria-grabbed />' },
-    { code: '<input type="submit" aria-haspopup />' },
-    { code: '<input type="submit" aria-hidden />' },
-    { code: '<input type="submit" aria-invalid />' },
-    { code: '<input type="submit" aria-label />' },
-    { code: '<input type="submit" aria-labelledby />' },
-    { code: '<input type="submit" aria-live />' },
-    { code: '<input type="submit" aria-owns />' },
-    { code: '<input type="submit" aria-relevant />' },
-    // when `type="checkbox"`, the implicit role is `checkbox`
-    { code: '<input type="checkbox" aria-checked />' },
-    { code: '<input type="checkbox" aria-atomic />' },
-    { code: '<input type="checkbox" aria-busy />' },
-    { code: '<input type="checkbox" aria-controls />' },
-    { code: '<input type="checkbox" aria-describedby />' },
-    { code: '<input type="checkbox" aria-disabled />' },
-    { code: '<input type="checkbox" aria-dropeffect />' },
-    { code: '<input type="checkbox" aria-flowto />' },
-    { code: '<input type="checkbox" aria-grabbed />' },
-    { code: '<input type="checkbox" aria-haspopup />' },
-    { code: '<input type="checkbox" aria-hidden />' },
-    { code: '<input type="checkbox" aria-invalid />' },
-    { code: '<input type="checkbox" aria-label />' },
-    { code: '<input type="checkbox" aria-labelledby />' },
-    { code: '<input type="checkbox" aria-live />' },
-    { code: '<input type="checkbox" aria-owns />' },
-    { code: '<input type="checkbox" aria-relevant />' },
-    // when `type="radio"`, the implicit role is `radio`
-    { code: '<input type="radio" aria-checked />' },
-    { code: '<input type="radio" aria-atomic />' },
-    { code: '<input type="radio" aria-busy />' },
-    { code: '<input type="radio" aria-controls />' },
-    { code: '<input type="radio" aria-describedby />' },
-    { code: '<input type="radio" aria-disabled />' },
-    { code: '<input type="radio" aria-dropeffect />' },
-    { code: '<input type="radio" aria-flowto />' },
-    { code: '<input type="radio" aria-grabbed />' },
-    { code: '<input type="radio" aria-haspopup />' },
-    { code: '<input type="radio" aria-hidden />' },
-    { code: '<input type="radio" aria-invalid />' },
-    { code: '<input type="radio" aria-label />' },
-    { code: '<input type="radio" aria-labelledby />' },
-    { code: '<input type="radio" aria-live />' },
-    { code: '<input type="radio" aria-owns />' },
-    { code: '<input type="radio" aria-relevant />' },
-    { code: '<input type="radio" aria-posinset />' },
-    { code: '<input type="radio" aria-selected />' },
-    { code: '<input type="radio" aria-setsize />' },
-    // when `type="range"`, the implicit role is `slider`
-    { code: '<input type="range" aria-valuemax />' },
-    { code: '<input type="range" aria-valuemin />' },
-    { code: '<input type="range" aria-valuenow />' },
-    { code: '<input type="range" aria-orientation />' },
-    { code: '<input type="range" aria-atomic />' },
-    { code: '<input type="range" aria-busy />' },
-    { code: '<input type="range" aria-controls />' },
-    { code: '<input type="range" aria-describedby />' },
-    { code: '<input type="range" aria-disabled />' },
-    { code: '<input type="range" aria-dropeffect />' },
-    { code: '<input type="range" aria-flowto />' },
-    { code: '<input type="range" aria-grabbed />' },
-    { code: '<input type="range" aria-haspopup />' },
-    { code: '<input type="range" aria-hidden />' },
-    { code: '<input type="range" aria-invalid />' },
-    { code: '<input type="range" aria-label />' },
-    { code: '<input type="range" aria-labelledby />' },
-    { code: '<input type="range" aria-live />' },
-    { code: '<input type="range" aria-owns />' },
-    { code: '<input type="range" aria-relevant />' },
-    { code: '<input type="range" aria-valuetext />' },
-
-    // these will have role of `textbox`,
-    { code: '<input type="email" aria-disabled />' },
-    { code: '<input type="password" aria-disabled />' },
-    { code: '<input type="search" aria-disabled />' },
-    { code: '<input type="tel" aria-disabled />' },
-    { code: '<input type="url" aria-disabled />' },
-    { code: '<input aria-disabled />' },
-
-    // Allow null/undefined values regardless of role
-    { code: '<h2 role="presentation" aria-level={null} />' },
-    { code: '<h2 role="presentation" aria-level={undefined} />' },
-
-    // OTHER TESTS
-    { code: '<aside aria-expanded />' },
-    { code: '<article aria-expanded />' },
-    { code: '<body aria-expanded />' },
-    { code: '<button aria-pressed />' },
-    { code: '<datalist aria-expanded />' },
-    { code: '<details aria-expanded />' },
-    { code: '<dialog aria-expanded />' },
-    { code: '<dl aria-expanded />' },
-    { code: '<form aria-hidden />' },
-    { code: '<h1 aria-hidden />' },
-    { code: '<h2 aria-hidden />' },
-    { code: '<h3 aria-hidden />' },
-    { code: '<h4 aria-hidden />' },
-    { code: '<h5 aria-hidden />' },
-    { code: '<h6 aria-hidden />' },
-    { code: '<hr aria-hidden />' },
-    { code: '<li aria-current />' },
-    { code: '<li aria-expanded />' },
-    { code: '<meter aria-atomic />' },
-    { code: '<nav aria-expanded />' },
-    { code: '<ol aria-expanded />' },
-    { code: '<option aria-atomic />' },
-    { code: '<output aria-expanded />' },
-    { code: '<progress aria-atomic />' },
-    { code: '<section aria-expanded />' },
-    { code: '<select aria-expanded />' },
-    { code: '<tbody aria-expanded />' },
-    { code: '<textarea aria-hidden />' },
-    { code: '<tfoot aria-expanded />' },
-    { code: '<thead aria-expanded />' },
-    { code: '<ul aria-expanded />' },
-
-  ].concat(validTests).map(parserOptionsMapper),
-
-  invalid: [
-    // implicit basic checks
-    {
-      code: '<a href="#" aria-checked />',
-      errors: [errorMessage('aria-checked', 'link', 'a', true)],
-    },
-    {
-      code: '<area href="#" aria-checked />',
-      errors: [errorMessage('aria-checked', 'link', 'area', true)],
-    },
-    {
-      code: '<link href="#" aria-checked />',
-      errors: [errorMessage('aria-checked', 'link', 'link', true)],
-    },
-    {
-      code: '<img alt="foobar" aria-checked />',
-      errors: [errorMessage('aria-checked', 'img', 'img', true)],
-    },
-    {
-      code: '<menu type="toolbar" aria-checked />',
-      errors: [errorMessage('aria-checked', 'toolbar', 'menu', true)],
-    },
-    {
-      code: '<aside aria-checked />',
-      errors: [errorMessage('aria-checked', 'complementary', 'aside', true)],
-    },
-  ].concat(invalidTests).map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/scope-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/scope-test.js
deleted file mode 100644
index 995f0c0..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/scope-test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce scope prop is only used on <th> elements.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/scope';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'The scope prop can only be used on <th> elements.',
-  type: 'JSXAttribute',
-};
-
-ruleTester.run('scope', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<div foo />;' },
-    { code: '<th scope />' },
-    { code: '<th scope="row" />' },
-    { code: '<th scope={foo} />' },
-    { code: '<th scope={"col"} {...props} />' },
-    { code: '<Foo scope="bar" {...props} />' },
-  ].map(parserOptionsMapper),
-  invalid: [
-    { code: '<div scope />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/tabindex-no-positive-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/tabindex-no-positive-test.js
deleted file mode 100644
index a986601..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/rules/tabindex-no-positive-test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* eslint-env jest */
-/**
- * @fileoverview Enforce tabIndex value is not greater than zero.
- * @author Ethan Cohen
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/tabindex-no-positive';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: 'Avoid positive integer values for tabIndex.',
-  type: 'JSXAttribute',
-};
-
-ruleTester.run('tabindex-no-positive', rule, {
-  valid: [
-    { code: '<div />;' },
-    { code: '<div {...props} />' },
-    { code: '<div id="main" />' },
-    { code: '<div tabIndex={undefined} />' },
-    { code: '<div tabIndex={`${undefined}`} />' },
-    { code: '<div tabIndex={`${undefined}${undefined}`} />' },
-    { code: '<div tabIndex={0} />' },
-    { code: '<div tabIndex={-1} />' },
-    { code: '<div tabIndex={null} />' },
-    { code: '<div tabIndex={bar()} />' },
-    { code: '<div tabIndex={bar} />' },
-    { code: '<div tabIndex={"foobar"} />' },
-    { code: '<div tabIndex="0" />' },
-    { code: '<div tabIndex="-1" />' },
-    { code: '<div tabIndex="-5" />' },
-    { code: '<div tabIndex="-5.5" />' },
-    { code: '<div tabIndex={-5.5} />' },
-    { code: '<div tabIndex={-5} />' },
-  ].map(parserOptionsMapper),
-
-  invalid: [
-    { code: '<div tabIndex="1" />', errors: [expectedError] },
-    { code: '<div tabIndex={1} />', errors: [expectedError] },
-    { code: '<div tabIndex={"1"} />', errors: [expectedError] },
-    { code: '<div tabIndex={`1`} />', errors: [expectedError] },
-    { code: '<div tabIndex={1.589} />', errors: [expectedError] },
-  ].map(parserOptionsMapper),
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/attributesComparator-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/attributesComparator-test.js
deleted file mode 100644
index 7df5c77..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/attributesComparator-test.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import attributesComparator from '../../../src/util/attributesComparator';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-
-describe('attributesComparator', () => {
-  describe('base attributes', () => {
-    let baseAttributes;
-    let attributes;
-    describe('are undefined', () => {
-      describe('and attributes are undefined', () => {
-        it('should return true', () => {
-          expect(attributesComparator()).toBe(true);
-        });
-      });
-    });
-    describe('are empty', () => {
-      beforeEach(() => {
-        baseAttributes = [];
-      });
-      describe('and attributes', () => {
-        describe('are empty', () => {
-          attributes = [];
-          it('should return true', () => {
-            expect(attributesComparator(baseAttributes, attributes))
-              .toBe(true);
-          });
-        });
-        describe('have values', () => {
-          attributes = [
-            JSXAttributeMock('foo', 0),
-            JSXAttributeMock('bar', 'baz'),
-          ];
-          it('should return true', () => {
-            expect(attributesComparator(baseAttributes, attributes))
-              .toBe(true);
-          });
-        });
-      });
-    });
-    describe('have values', () => {
-      beforeEach(() => {
-        baseAttributes = [
-          {
-            name: 'biz',
-            value: 1,
-          }, {
-            name: 'fizz',
-            value: 'pop',
-          }, {
-            name: 'fuzz',
-            value: 'lolz',
-          },
-        ];
-      });
-      describe('and attributes', () => {
-        describe('are empty', () => {
-          attributes = [];
-          it('should return false', () => {
-            expect(attributesComparator(baseAttributes, attributes))
-              .toBe(false);
-          });
-        });
-        describe('have values', () => {
-          describe('and the values are the different', () => {
-            it('should return false', () => {
-              attributes = [
-                JSXElementMock(),
-                JSXAttributeMock('biz', 2),
-                JSXAttributeMock('ziff', 'opo'),
-                JSXAttributeMock('far', 'lolz'),
-              ];
-              expect(attributesComparator(baseAttributes, attributes))
-                .toBe(false);
-            });
-          });
-          describe('and the values are a subset', () => {
-            it('should return true', () => {
-              attributes = [
-                JSXAttributeMock('biz', 1),
-                JSXAttributeMock('fizz', 'pop'),
-                JSXAttributeMock('goo', 'gazz'),
-              ];
-              expect(attributesComparator(baseAttributes, attributes))
-                .toBe(false);
-            });
-          });
-          describe('and the values are the same', () => {
-            it('should return true', () => {
-              attributes = [
-                JSXAttributeMock('biz', 1),
-                JSXAttributeMock('fizz', 'pop'),
-                JSXAttributeMock('fuzz', 'lolz'),
-              ];
-              expect(attributesComparator(baseAttributes, attributes))
-                .toBe(true);
-            });
-          });
-          describe('and the values are a superset', () => {
-            it('should return true', () => {
-              attributes = [
-                JSXAttributeMock('biz', 1),
-                JSXAttributeMock('fizz', 'pop'),
-                JSXAttributeMock('fuzz', 'lolz'),
-                JSXAttributeMock('dar', 'tee'),
-              ];
-              expect(attributesComparator(baseAttributes, attributes))
-                .toBe(true);
-            });
-          });
-        });
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getComputedRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getComputedRole-test.js
deleted file mode 100644
index f1518a1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getComputedRole-test.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* eslint-env jest */
-import getComputedRole from '../../../src/util/getComputedRole';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-
-describe('getComputedRole', () => {
-  describe('explicit role', () => {
-    describe('valid role', () => {
-      it('should return the role', () => {
-        expect(getComputedRole(
-          'div',
-          [JSXAttributeMock('role', 'button')],
-        )).toBe('button');
-      });
-    });
-    describe('invalid role', () => {
-      describe('has implicit', () => {
-        it('should return the implicit role', () => {
-          expect(getComputedRole(
-            'li',
-            [JSXAttributeMock('role', 'beeswax')],
-          )).toBe('listitem');
-        });
-      });
-      describe('lacks implicit', () => {
-        it('should return null', () => {
-          expect(getComputedRole(
-            'div',
-            [JSXAttributeMock('role', 'beeswax')],
-          )).toBeNull();
-        });
-      });
-    });
-
-    describe('no role', () => {
-      describe('has implicit', () => {
-        it('should return the implicit role', () => {
-          expect(getComputedRole(
-            'li',
-            [],
-          )).toBe('listitem');
-        });
-      });
-      describe('lacks implicit', () => {
-        it('should return null', () => {
-          expect(getComputedRole(
-            'div',
-            [],
-          )).toBeNull();
-        });
-      });
-    });
-  });
-  describe('implicit role', () => {
-    describe('has implicit', () => {
-      it('should return the implicit role', () => {
-        expect(getComputedRole(
-          'li',
-          [JSXAttributeMock('role', 'beeswax')],
-        )).toBe('listitem');
-      });
-    });
-    describe('lacks implicit', () => {
-      it('should return null', () => {
-        expect(getComputedRole(
-          'div',
-          [],
-        )).toBeNull();
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getExplicitRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getExplicitRole-test.js
deleted file mode 100644
index 83c4ef2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getExplicitRole-test.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* eslint-env jest */
-import getExplicitRole from '../../../src/util/getExplicitRole';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-
-describe('getExplicitRole', () => {
-  describe('valid role', () => {
-    it('should return the role', () => {
-      expect(getExplicitRole(
-        'div',
-        [JSXAttributeMock('role', 'button')],
-      )).toBe('button');
-    });
-  });
-  describe('invalid role', () => {
-    it('should return null', () => {
-      expect(getExplicitRole(
-        'div',
-        [JSXAttributeMock('role', 'beeswax')],
-      )).toBeNull();
-    });
-  });
-  describe('no role', () => {
-    it('should return null', () => {
-      expect(getExplicitRole(
-        'div',
-        [],
-      )).toBeNull();
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getImplicitRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getImplicitRole-test.js
deleted file mode 100644
index 2a4a9e2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getImplicitRole-test.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/* eslint-env jest */
-import getImplicitRole from '../../../src/util/getImplicitRole';
-
-describe('getImplicitRole', () => {
-  describe('has implicit', () => {
-    it('should return the implicit role', () => {
-      expect(getImplicitRole(
-        'li',
-        [],
-      )).toBe('listitem');
-    });
-  });
-  describe('lacks implicit', () => {
-    it('should return null', () => {
-      expect(getImplicitRole(
-        'div',
-        [],
-      )).toBeNull();
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getSuggestion-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getSuggestion-test.js
deleted file mode 100644
index 6bc2073..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getSuggestion-test.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/* eslint-env jest */
-import assert from 'assert';
-import getSuggestion from '../../../src/util/getSuggestion';
-
-describe('spell check suggestion API', () => {
-  it('should return no suggestions given empty word and no dictionary', () => {
-    const word = '';
-    const expected = [];
-    const actual = getSuggestion(word);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  it('should return no suggestions given real word and no dictionary', () => {
-    const word = 'foo';
-    const expected = [];
-    const actual = getSuggestion(word);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  it('should return correct suggestion given real word and a dictionary', () => {
-    const word = 'fo';
-    const dictionary = ['foo', 'bar', 'baz'];
-    const expected = ['foo'];
-    const actual = getSuggestion(word, dictionary);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  it('should return multiple correct suggestions given real word and a dictionary', () => {
-    const word = 'theer';
-    const dictionary = ['there', 'their', 'foo', 'bar'];
-    const expected = ['there', 'their'];
-    const actual = getSuggestion(word, dictionary);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  it('should return correct # of suggestions given the limit argument', () => {
-    const word = 'theer';
-    const dictionary = ['there', 'their', 'foo', 'bar'];
-    const limit = 1;
-    const expected = 1;
-    const actual = getSuggestion(word, dictionary, limit).length;
-
-    assert.deepEqual(expected, actual);
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getTabIndex-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getTabIndex-test.js
deleted file mode 100644
index 792fe33..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/getTabIndex-test.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* eslint-env jest */
-import getTabIndex from '../../../src/util/getTabIndex';
-import IdentifierMock from '../../../__mocks__/IdentifierMock';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-
-describe('getTabIndex', () => {
-  describe('tabIndex is defined', () => {
-    describe('as a number ', () => {
-      describe('zero', () => {
-        it('should return zero', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', 0))).toBe(0);
-        });
-      });
-      describe('positive integer', () => {
-        it('should return the integer', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', 1))).toBe(1);
-        });
-      });
-      describe('negative integer', () => {
-        it('should return the integer', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', -1))).toBe(-1);
-        });
-      });
-      describe('float', () => {
-        it('should return undefined', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', 9.1))).toBeUndefined();
-        });
-      });
-    });
-    describe('as a string', () => {
-      describe('empty', () => {
-        it('should return undefined', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', ''))).toBeUndefined();
-        });
-      });
-      describe('which converts to a number', () => {
-        it('should return an integer', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', '0'))).toBe(0);
-        });
-      });
-      describe('which is NaN', () => {
-        it('should return undefined', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', '0a'))).toBeUndefined();
-        });
-      });
-    });
-    describe('as a boolean', () => {
-      describe('true', () => {
-        it('should return undefined', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', true))).toBeUndefined();
-        });
-      });
-      describe('false', () => {
-        it('should return undefined', () => {
-          expect(getTabIndex(JSXAttributeMock('tabIndex', false))).toBeUndefined();
-        });
-      });
-    });
-    describe('as an expression', () => {
-      describe('function expression', () => {
-        it('should return the correct type', () => {
-          const attr = function mockFn() { return 0; };
-          expect(typeof getTabIndex(JSXAttributeMock('tabIndex', attr))).toEqual('function');
-        });
-      });
-      describe('variable expression', () => {
-        it('should return the Identifier name', () => {
-          const name = 'identName';
-          expect(getTabIndex(JSXAttributeMock(
-            'tabIndex',
-            IdentifierMock(name),
-            true,
-          ))).toEqual(name);
-        });
-      });
-    });
-  });
-  describe('tabIndex is not defined', () => {
-    it('should return undefined', () => {
-      expect(getTabIndex(JSXAttributeMock('tabIndex', undefined))).toBeUndefined();
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/hasAccessibleChild-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/hasAccessibleChild-test.js
deleted file mode 100644
index 60d26d2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/hasAccessibleChild-test.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/* eslint-env jest */
-import hasAccessibleChild from '../../../src/util/hasAccessibleChild';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-import JSXExpressionContainerMock from '../../../__mocks__/JSXExpressionContainerMock';
-
-describe('hasAccessibleChild', () => {
-  describe('has no children and does not set dangerouslySetInnerHTML', () => {
-    it('returns false', () => {
-      expect(hasAccessibleChild(JSXElementMock('div', []))).toBe(false);
-    });
-  });
-
-
-  describe('has no children and sets dangerouslySetInnerHTML', () => {
-    it('Returns true', () => {
-      const prop = JSXAttributeMock('dangerouslySetInnerHTML', true);
-      const element = JSXElementMock('div', [prop], []);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-  });
-
-  describe('has children', () => {
-    it('Returns true for a Literal child', () => {
-      const child = {
-        type: 'Literal',
-        value: 'foo',
-      };
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-
-    it('Returns true for visible child JSXElement', () => {
-      const child = JSXElementMock('div', []);
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-
-    it('Returns true for JSXText Element', () => {
-      const child = {
-        type: 'JSXText',
-        value: 'foo',
-      };
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-
-    it('Returns false for hidden child JSXElement', () => {
-      const ariaHiddenAttr = JSXAttributeMock('aria-hidden', true);
-      const child = JSXElementMock('div', [ariaHiddenAttr]);
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(false);
-    });
-
-    it('Returns true for defined JSXExpressionContainer', () => {
-      const expression = {
-        type: 'Identifier',
-        name: 'foo',
-      };
-      const child = JSXExpressionContainerMock(expression);
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-
-    it('Returns false for undefined JSXExpressionContainer', () => {
-      const expression = {
-        type: 'Identifier',
-        name: 'undefined',
-      };
-      const child = JSXExpressionContainerMock(expression);
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(false);
-    });
-
-    it('Returns false for unknown child type', () => {
-      const child = {
-        type: 'Unknown',
-      };
-      const element = JSXElementMock('div', [], [child]);
-      expect(hasAccessibleChild(element)).toBe(false);
-    });
-
-    it('Returns true with children passed as a prop', () => {
-      const children = JSXAttributeMock('children', true);
-      const element = JSXElementMock('div', [children], []);
-      expect(hasAccessibleChild(element)).toBe(true);
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/input-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/input-test.js
deleted file mode 100644
index 2f2412b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/input-test.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import JSXAttributeMock from '../../../../__mocks__/JSXAttributeMock';
-import getImplicitRoleForInput from '../../../../src/util/implicitRoles/input';
-
-describe('isAbstractRole', () => {
-  it('works for buttons', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'button')])).toBe('button');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'image')])).toBe('button');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'reset')])).toBe('button');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'submit')])).toBe('button');
-  });
-  it('works for checkboxes', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'checkbox')])).toBe('checkbox');
-  });
-  it('works for radios', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'radio')])).toBe('radio');
-  });
-  it('works for ranges', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'range')])).toBe('slider');
-  });
-  it('works for textboxes', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'email')])).toBe('textbox');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'password')])).toBe('textbox');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'search')])).toBe('textbox');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'tel')])).toBe('textbox');
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', 'url')])).toBe('textbox');
-  });
-  it('works for the default case', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', '')])).toBe('textbox');
-  });
-  it('works for the true case', () => {
-    expect(getImplicitRoleForInput([JSXAttributeMock('type', true)])).toBe('textbox');
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menu-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menu-test.js
deleted file mode 100644
index ce95128..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menu-test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import JSXAttributeMock from '../../../../__mocks__/JSXAttributeMock';
-import getImplicitRoleForMenu from '../../../../src/util/implicitRoles/menu';
-
-describe('isAbstractRole', () => {
-  it('works for toolbars', () => {
-    expect(getImplicitRoleForMenu([JSXAttributeMock('type', 'toolbar')])).toBe('toolbar');
-  });
-  it('works for non-toolbars', () => {
-    expect(getImplicitRoleForMenu([JSXAttributeMock('type', '')])).toBe('');
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menuitem-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menuitem-test.js
deleted file mode 100644
index c0c9f47..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/implicitRoles/menuitem-test.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import JSXAttributeMock from '../../../../__mocks__/JSXAttributeMock';
-import getImplicitRoleForMenuitem from '../../../../src/util/implicitRoles/menuitem';
-
-describe('isAbstractRole', () => {
-  it('works for menu items', () => {
-    expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', 'command')])).toBe('menuitem');
-  });
-  it('works for menu item checkboxes', () => {
-    expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', 'checkbox')])).toBe('menuitemcheckbox');
-  });
-  it('works for menu item radios', () => {
-    expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', 'radio')])).toBe('menuitemradio');
-  });
-  it('works for non-toolbars', () => {
-    expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', '')])).toBe('');
-  });
-  it('works for the true case', () => {
-    expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', true)])).toBe('');
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isAbstractRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isAbstractRole-test.js
deleted file mode 100644
index 5b07509..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isAbstractRole-test.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isAbstractRole from '../../../src/util/isAbstractRole';
-import {
-  genElementSymbol,
-  genAbstractRoleElements,
-  genNonAbstractRoleElements,
-} from '../../../__mocks__/genInteractives';
-
-describe('isAbstractRole', () => {
-  describe('JSX Components (no tagName)', () => {
-    it('should NOT identify them as abstract role elements', () => {
-      expect(isAbstractRole(undefined, []))
-        .toBe(false);
-    });
-  });
-  describe('elements with an abstract role', () => {
-    genAbstractRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should identify \`${genElementSymbol(openingElement)}\` as an abstract role element`, () => {
-        expect(isAbstractRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(true);
-      });
-    });
-  });
-  describe('elements with a non-abstract role', () => {
-    genNonAbstractRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as an abstract role element`, () => {
-        expect(isAbstractRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(false);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test.js
deleted file mode 100644
index 5f21831..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDOMElement-test.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/* eslint-env mocha */
-import { dom } from 'aria-query';
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isDOMElement from '../../../src/util/isDOMElement';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-
-const domElements = [...dom.keys()];
-
-describe('isDOMElement', () => {
-  describe('DOM elements', () => {
-    domElements.forEach((el) => {
-      it(`should identify ${el} as a DOM element`, () => {
-        const element = JSXElementMock(el);
-        expect(isDOMElement(elementType(element.openingElement)))
-          .toBe(true);
-      });
-    });
-  });
-  describe('Custom Element', () => {
-    it('should not identify a custom element', () => {
-      const element = JSXElementMock('CustomElement');
-      expect(isDOMElement(element))
-        .toBe(false);
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test.js
deleted file mode 100644
index e0ef79e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isDisabledElement-test.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import isDisabledElement from '../../../src/util/isDisabledElement';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-
-describe('isDisabledElement', () => {
-  describe('HTML5', () => {
-    describe('disabled', () => {
-      it('should identify HTML5 disabled elements', () => {
-        const attributes = [
-          JSXAttributeMock('disabled', 'disabled'),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(true);
-      });
-    });
-    describe('not disabled', () => {
-      it('should identify HTML5 disabled elements with null as the value', () => {
-        const attributes = [
-          JSXAttributeMock('disabled', null),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(true);
-      });
-      it('should not identify HTML5 disabled elements with undefined as the value', () => {
-        const attributes = [
-          JSXAttributeMock('disabled', undefined),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(false);
-      });
-    });
-  });
-  describe('ARIA', () => {
-    describe('disabled', () => {
-      it('should not identify ARIA disabled elements', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', 'true'),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(true);
-      });
-      it('should not identify ARIA disabled elements', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', true),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(true);
-      });
-    });
-    describe('not disabled', () => {
-      it('should not identify ARIA disabled elements', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', 'false'),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(false);
-      });
-      it('should not identify ARIA disabled elements', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', false),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(false);
-      });
-      it('should not identify ARIA disabled elements with null as the value', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', null),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(false);
-      });
-      it('should not identify ARIA disabled elements with undefined as the value', () => {
-        const attributes = [
-          JSXAttributeMock('aria-disabled', undefined),
-        ];
-        expect(isDisabledElement(attributes))
-          .toBe(false);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test.js
deleted file mode 100644
index 559fc07..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveElement-test.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isInteractiveElement from '../../../src/util/isInteractiveElement';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-import {
-  genElementSymbol,
-  genIndeterminantInteractiveElements,
-  genInteractiveElements,
-  genInteractiveRoleElements,
-  genNonInteractiveElements,
-  genNonInteractiveRoleElements,
-} from '../../../__mocks__/genInteractives';
-
-describe('isInteractiveElement', () => {
-  describe('JSX Components (no tagName)', () => {
-    it('should identify them as interactive elements', () => {
-      expect(isInteractiveElement(undefined, []))
-        .toBe(false);
-    });
-  });
-  describe('interactive elements', () => {
-    genInteractiveElements().forEach(({ openingElement }) => {
-      it(`should identify \`${genElementSymbol(openingElement)}\` as an interactive element`, () => {
-        expect(isInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(true);
-      });
-    });
-  });
-  describe('interactive role elements', () => {
-    genInteractiveRoleElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as an interactive element`, () => {
-        expect(isInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('non-interactive elements', () => {
-    genNonInteractiveElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as an interactive element`, () => {
-        expect(isInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('non-interactive role elements', () => {
-    genNonInteractiveRoleElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as an interactive element`, () => {
-        expect(isInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('indeterminate elements', () => {
-    genIndeterminantInteractiveElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${openingElement.name.name}\` as an interactive element`, () => {
-        expect(isInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('JSX elements', () => {
-    it('is not interactive', () => {
-      expect(isInteractiveElement('CustomComponent', JSXElementMock())).toBe(false);
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveRole-test.js
deleted file mode 100644
index 048f434..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isInteractiveRole-test.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isInteractiveRole from '../../../src/util/isInteractiveRole';
-import {
-  genElementSymbol,
-  genInteractiveRoleElements,
-  genNonInteractiveRoleElements,
-} from '../../../__mocks__/genInteractives';
-
-describe('isInteractiveRole', () => {
-  describe('JSX Components (no tagName)', () => {
-    it('should identify them as interactive role elements', () => {
-      expect(isInteractiveRole(undefined, []))
-        .toBe(false);
-    });
-  });
-  describe('elements with a non-interactive role', () => {
-    genNonInteractiveRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should not identify \`${genElementSymbol(openingElement)}\` as an interactive role element`, () => {
-        expect(isInteractiveRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('elements without a role', () => {
-    it('should not identify them as interactive role elements', () => {
-      expect(isInteractiveRole('div', [])).toBe(false);
-    });
-  });
-  describe('elements with an interactive role', () => {
-    genInteractiveRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should identify \`${genElementSymbol(openingElement)}\` as an interactive role element`, () => {
-        expect(isInteractiveRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(true);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveElement-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveElement-test.js
deleted file mode 100644
index ea2fb36..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveElement-test.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isNonInteractiveElement from '../../../src/util/isNonInteractiveElement';
-import {
-  genElementSymbol,
-  genIndeterminantInteractiveElements,
-  genInteractiveElements,
-  genInteractiveRoleElements,
-  genNonInteractiveElements,
-  genNonInteractiveRoleElements,
-} from '../../../__mocks__/genInteractives';
-
-describe('isNonInteractiveElement', () => {
-  describe('JSX Components (no tagName)', () => {
-    it('should identify them as interactive elements', () => {
-      expect(isNonInteractiveElement(undefined, []))
-        .toBe(false);
-    });
-  });
-  describe('non-interactive elements', () => {
-    genNonInteractiveElements().forEach(({ openingElement }) => {
-      it(`should identify \`${genElementSymbol(openingElement)}\` as a non-interactive element`, () => {
-        expect(isNonInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(true);
-      });
-    });
-  });
-  describe('non-interactive role elements', () => {
-    genNonInteractiveRoleElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as a non-interactive element`, () => {
-        expect(isNonInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('interactive elements', () => {
-    genInteractiveElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as a non-interactive element`, () => {
-        expect(isNonInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('interactive role elements', () => {
-    genInteractiveRoleElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as a non-interactive element`, () => {
-        expect(isNonInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-  describe('indeterminate elements', () => {
-    genIndeterminantInteractiveElements().forEach(({ openingElement }) => {
-      it(`should NOT identify \`${openingElement.name.name}\` as a non-interactive element`, () => {
-        expect(isNonInteractiveElement(
-          elementType(openingElement),
-          openingElement.attributes,
-        )).toBe(false);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-test.js
deleted file mode 100644
index 4d241da..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonInteractiveRole-test.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import { elementType } from 'jsx-ast-utils';
-import isNonInteractiveRole from '../../../src/util/isNonInteractiveRole';
-import {
-  genElementSymbol,
-  genInteractiveRoleElements,
-  genNonInteractiveRoleElements,
-} from '../../../__mocks__/genInteractives';
-
-describe('isNonInteractiveRole', () => {
-  describe('JSX Components (no tagName)', () => {
-    it('should identify them as interactive role elements', () => {
-      expect(isNonInteractiveRole(undefined, []))
-        .toBe(false);
-    });
-  });
-  describe('elements with a non-interactive role', () => {
-    genNonInteractiveRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should identify \`${genElementSymbol(openingElement)}\` as non-interactive role element`, () => {
-        expect(isNonInteractiveRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(true);
-      });
-    });
-  });
-  describe('elements without a role', () => {
-    it('should not identify them as non-interactive role elements', () => {
-      expect(isNonInteractiveRole('div', [])).toBe(false);
-    });
-  });
-  describe('elements with an interactive role', () => {
-    genInteractiveRoleElements().forEach(({ openingElement }) => {
-      const { attributes } = openingElement;
-      it(`should NOT identify \`${genElementSymbol(openingElement)}\` as a non-interactive role element`, () => {
-        expect(isNonInteractiveRole(
-          elementType(openingElement),
-          attributes,
-        )).toBe(false);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonLiteralProperty-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonLiteralProperty-test.js
deleted file mode 100644
index e2f821d..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isNonLiteralProperty-test.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import isNonLiteralProperty from '../../../src/util/isNonLiteralProperty';
-import IdentifierMock from '../../../__mocks__/IdentifierMock';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-import JSXSpreadAttributeMock from '../../../__mocks__/JSXSpreadAttributeMock';
-import JSXTextMock from '../../../__mocks__/JSXTextMock';
-import LiteralMock from '../../../__mocks__/LiteralMock';
-
-const theProp = 'theProp';
-
-const spread = JSXSpreadAttributeMock('theSpread');
-
-describe('isNonLiteralProperty', () => {
-  describe('elements without the property', () => {
-    it('should not identify them as non-literal role elements', () => {
-      expect(isNonLiteralProperty([], theProp)).toBe(false);
-    });
-  });
-  describe('elements with a literal property', () => {
-    it('should not identify them as non-literal role elements without spread operator', () => {
-      expect(isNonLiteralProperty([JSXAttributeMock(theProp, LiteralMock('theRole'))], theProp)).toBe(false);
-    });
-    it('should not identify them as non-literal role elements with spread operator', () => {
-      expect(isNonLiteralProperty([spread, JSXAttributeMock(theProp, LiteralMock('theRole'))], theProp)).toBe(false);
-    });
-  });
-  describe('elements with a JSXText property', () => {
-    it('should not identify them as non-literal role elements', () => {
-      expect(isNonLiteralProperty([JSXAttributeMock(theProp, JSXTextMock('theRole'))], theProp)).toBe(false);
-    });
-  });
-  describe('elements with a property of undefined', () => {
-    it('should not identify them as non-literal role elements', () => {
-      const undefinedExpression = IdentifierMock('undefined');
-      expect(isNonLiteralProperty([JSXAttributeMock(theProp, undefinedExpression)], theProp)).toBe(false);
-    });
-  });
-  describe('elements with a expression property', () => {
-    it('should identify them as non-literal role elements', () => {
-      const identifierExpression = IdentifierMock('theIdentifier');
-      expect(isNonLiteralProperty([JSXAttributeMock(theProp, identifierExpression)], theProp)).toBe(true);
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test.js
deleted file mode 100644
index c12df7a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/isSemanticRoleElement-test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import isSemanticRoleElement from '../../../src/util/isSemanticRoleElement';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-
-describe('isSemanticRoleElement', () => {
-  it('should identify semantic role elements', () => {
-    expect(isSemanticRoleElement('input', [
-      JSXAttributeMock('type', 'checkbox'),
-      JSXAttributeMock('role', 'switch'),
-    ])).toBe(true);
-  });
-  it('should reject non-semantic role elements', () => {
-    expect(isSemanticRoleElement('input', [
-      JSXAttributeMock('type', 'radio'),
-      JSXAttributeMock('role', 'switch'),
-    ])).toBe(false);
-    expect(isSemanticRoleElement('input', [
-      JSXAttributeMock('type', 'text'),
-      JSXAttributeMock('role', 'combobox'),
-    ])).toBe(false);
-    expect(isSemanticRoleElement('button', [
-      JSXAttributeMock('role', 'switch'),
-      JSXAttributeMock('aria-pressed', 'true'),
-    ])).toBe(false);
-    expect(isSemanticRoleElement('input', [
-      JSXAttributeMock('role', 'switch'),
-    ])).toBe(false);
-  });
-  it('should not throw on JSXSpreadAttribute', () => {
-    expect(() => {
-      isSemanticRoleElement('input', [
-        JSXAttributeMock('type', 'checkbox'),
-        JSXAttributeMock('role', 'checkbox'),
-        JSXAttributeMock('aria-checked', 'false'),
-        JSXAttributeMock('aria-labelledby', 'foo'),
-        JSXAttributeMock('tabindex', '0'),
-        {
-          type: 'JSXSpreadAttribute',
-          argument: {
-            type: 'Identifier',
-            name: 'props',
-          },
-        },
-      ]);
-    }).not.toThrow();
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test.js
deleted file mode 100644
index b27eefd..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayContainChildComponent-test.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* eslint-env jest */
-import mayContainChildComponent from '../../../src/util/mayContainChildComponent';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-import JSXExpressionContainerMock from '../../../__mocks__/JSXExpressionContainerMock';
-
-describe('mayContainChildComponent', () => {
-  describe('no FancyComponent', () => {
-    it('should return false', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('span', [], []),
-            JSXElementMock('span', [], [
-              JSXElementMock('span', [], []),
-              JSXElementMock('span', [], [
-                JSXElementMock('span', [], []),
-              ]),
-            ]),
-          ]),
-          JSXElementMock('span', [], []),
-          JSXElementMock('img', [
-            JSXAttributeMock('src', 'some/path'),
-          ]),
-        ]),
-        'FancyComponent',
-        5,
-      )).toBe(false);
-    });
-  });
-  describe('contains an indicated component', () => {
-    it('should return true', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('input'),
-        ]),
-        'input',
-      )).toBe(true);
-    });
-    it('should return true', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('FancyComponent'),
-        ]),
-        'FancyComponent',
-      )).toBe(true);
-    });
-    it('FancyComponent is outside of default depth, should return false', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('FancyComponent'),
-          ]),
-        ]),
-        'FancyComponent',
-      )).toBe(false);
-    });
-    it('FancyComponent is inside of custom depth, should return true', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('FancyComponent'),
-          ]),
-        ]),
-        'FancyComponent',
-        2,
-      )).toBe(true);
-    });
-    it('deep nesting, should return true', () => {
-      expect(mayContainChildComponent(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('span', [], []),
-            JSXElementMock('span', [], [
-              JSXElementMock('span', [], []),
-              JSXElementMock('span', [], [
-                JSXElementMock('span', [], [
-                  JSXElementMock('span', [], [
-                    JSXElementMock('FancyComponent'),
-                  ]),
-                ]),
-              ]),
-            ]),
-          ]),
-          JSXElementMock('span', [], []),
-          JSXElementMock('img', [
-            JSXAttributeMock('src', 'some/path'),
-          ]),
-        ]),
-        'FancyComponent',
-        6,
-      )).toBe(true);
-    });
-  });
-  describe('Intederminate situations', () => {
-    describe('expression container children', () => {
-      it('should return true', () => {
-        expect(mayContainChildComponent(
-          JSXElementMock('div', [], [
-            JSXExpressionContainerMock('mysteryBox'),
-          ]),
-          'FancyComponent',
-        )).toBe(true);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayHaveAccessibleLabel-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayHaveAccessibleLabel-test.js
deleted file mode 100644
index f4b1553..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/mayHaveAccessibleLabel-test.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/* eslint-env jest */
-import mayHaveAccessibleLabel from '../../../src/util/mayHaveAccessibleLabel';
-import JSXAttributeMock from '../../../__mocks__/JSXAttributeMock';
-import JSXElementMock from '../../../__mocks__/JSXElementMock';
-import JSXExpressionContainerMock from '../../../__mocks__/JSXExpressionContainerMock';
-import JSXSpreadAttributeMock from '../../../__mocks__/JSXSpreadAttributeMock';
-import JSXTextMock from '../../../__mocks__/JSXTextMock';
-import LiteralMock from '../../../__mocks__/LiteralMock';
-
-describe('mayHaveAccessibleLabel', () => {
-  describe('no label', () => {
-    it('should return false', () => {
-      expect(mayHaveAccessibleLabel(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('span', [], []),
-            JSXElementMock('span', [], [
-              JSXElementMock('span', [], []),
-              JSXElementMock('span', [], [
-                JSXElementMock('span', [], []),
-              ]),
-            ]),
-          ]),
-          JSXElementMock('span', [], []),
-          JSXElementMock('img', [
-            JSXAttributeMock('src', 'some/path'),
-          ]),
-        ]),
-        5,
-      )).toBe(false);
-    });
-  });
-  describe('label via attributes', () => {
-    it('aria-label, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-        JSXAttributeMock('aria-label', 'A delicate label'),
-      ], []))).toBe(true);
-    });
-    it('aria-label without content, should return false', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-        JSXAttributeMock('aria-label', ''),
-      ], []))).toBe(false);
-    });
-    it('aria-labelledby, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-        JSXAttributeMock('aria-labelledby', 'elementId'),
-      ], []))).toBe(true);
-    });
-    it('aria-labelledby without content, should return false', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-        JSXAttributeMock('aria-labelledby', ''),
-      ], []))).toBe(false);
-    });
-    it('aria-labelledby with an expression container, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-        JSXAttributeMock('aria-labelledby', 'elementId', true),
-      ], []))).toBe(true);
-    });
-  });
-  describe('label via custom label attribute', () => {
-    let customLabelProp;
-    beforeEach(() => {
-      customLabelProp = 'cowbell';
-    });
-    it('aria-label, should return true', () => {
-      expect(mayHaveAccessibleLabel(
-        JSXElementMock('div', [
-          JSXAttributeMock(customLabelProp, 'A delicate label'),
-        ], []),
-        1,
-        [customLabelProp],
-      )).toBe(true);
-    });
-  });
-  describe('text label', () => {
-    it('Literal text, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        LiteralMock('A fancy label'),
-      ]))).toBe(true);
-    });
-    it('JSXText, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        JSXTextMock('A fancy label'),
-      ]))).toBe(true);
-    });
-    it('label is outside of default depth, should return false', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        JSXElementMock('div', [], [
-          JSXTextMock('A fancy label'),
-        ]),
-      ]))).toBe(false);
-    });
-    it('label is inside of custom depth, should return true', () => {
-      expect(mayHaveAccessibleLabel(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXTextMock('A fancy label'),
-          ]),
-        ]),
-        2,
-      )).toBe(true);
-    });
-    it('deep nesting, should return true', () => {
-      expect(mayHaveAccessibleLabel(
-        JSXElementMock('div', [], [
-          JSXElementMock('div', [], [
-            JSXElementMock('span', [], []),
-            JSXElementMock('span', [], [
-              JSXElementMock('span', [], []),
-              JSXElementMock('span', [], [
-                JSXElementMock('span', [], [
-                  JSXElementMock('span', [], [
-                    JSXTextMock('A fancy label'),
-                  ]),
-                ]),
-              ]),
-            ]),
-          ]),
-          JSXElementMock('span', [], []),
-          JSXElementMock('img', [
-            JSXAttributeMock('src', 'some/path'),
-          ]),
-        ]),
-        6,
-      )).toBe(true);
-    });
-  });
-  describe('image content', () => {
-    it('without alt, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        JSXElementMock('img', [
-          JSXAttributeMock('src', 'some/path'),
-        ]),
-      ]))).toBe(false);
-    });
-    it('with alt, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        JSXElementMock('img', [
-          JSXAttributeMock('src', 'some/path'),
-          JSXAttributeMock('alt', 'A sensible label'),
-        ]),
-      ]))).toBe(true);
-    });
-    it('with aria-label, should return true', () => {
-      expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-        JSXElementMock('img', [
-          JSXAttributeMock('src', 'some/path'),
-          JSXAttributeMock('aria-label', 'A sensible label'),
-        ]),
-      ]))).toBe(true);
-    });
-  });
-  describe('Intederminate situations', () => {
-    describe('expression container children', () => {
-      it('should return true', () => {
-        expect(mayHaveAccessibleLabel(JSXElementMock('div', [], [
-          JSXExpressionContainerMock('mysteryBox'),
-        ]))).toBe(true);
-      });
-    });
-    describe('spread operator in attributes', () => {
-      it('should return true', () => {
-        expect(mayHaveAccessibleLabel(JSXElementMock('div', [
-          JSXAttributeMock('style', 'some-junk'),
-          JSXSpreadAttributeMock('props'),
-        ], []))).toBe(true);
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/parserOptionsMapper-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/parserOptionsMapper-test.js
deleted file mode 100644
index 178a104..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/parserOptionsMapper-test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* eslint-env mocha */
-import expect from 'expect';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-
-describe('parserOptionsMapper', () => {
-  it('should return an test case object', () => {
-    const testCase = {
-      code: '<div />',
-      errors: [],
-      options: {},
-    };
-    expect(parserOptionsMapper(testCase)).toEqual({
-      code: '<div />',
-      errors: [],
-      options: {},
-      parserOptions: {
-        ecmaVersion: 2018,
-        ecmaFeatures: {
-          experimentalObjectRestSpread: true,
-          jsx: true,
-        },
-      },
-    });
-  });
-  it('should allow for overriding parserOptions', () => {
-    const testCase = {
-      code: '<div />',
-      errors: [],
-      options: {},
-      parserOptions: {
-        ecmaVersion: 5,
-      },
-    };
-    expect(parserOptionsMapper(testCase)).toEqual({
-      code: '<div />',
-      errors: [],
-      options: {},
-      parserOptions: {
-        ecmaVersion: 5,
-        ecmaFeatures: {
-          experimentalObjectRestSpread: true,
-          jsx: true,
-        },
-      },
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/schemas-test.js b/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/schemas-test.js
deleted file mode 100644
index 12b5e29..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/__tests__/src/util/schemas-test.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* eslint-env jest */
-import assert from 'assert';
-import { generateObjSchema, arraySchema, enumArraySchema } from '../../../src/util/schemas';
-
-describe('schemas', () => {
-  it('should generate an object schema with correct properties', () => {
-    const schema = generateObjSchema({
-      foo: 'bar',
-      baz: arraySchema,
-    });
-    const properties = schema.properties || {};
-
-    assert.deepEqual(properties.foo, 'bar');
-    assert.deepEqual(properties.baz.type, 'array');
-  });
-  describe('enumArraySchema', () => {
-    it('works with no arguments', () => {
-      assert.deepEqual(enumArraySchema(), {
-        additionalItems: false,
-        items: {
-          enum: [],
-          type: 'string',
-        },
-        minItems: 0,
-        type: 'array',
-        uniqueItems: true,
-      });
-    });
-  });
-});
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/accessible-emoji.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/accessible-emoji.md
deleted file mode 100644
index ba55f4e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/accessible-emoji.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# accessible-emoji
-
-Emoji have become a common way of communicating content to the end user. To a person using a screenreader, however, he/she may not be aware that this content is there at all. By wrapping the emoji in a `<span>`, giving it the `role="img"`, and providing a useful description in `aria-label`, the screenreader will treat the emoji as an image in the accessibility tree with an accessible name for the end user.
-
-#### Resources
-1. [Léonie Watson](http://tink.uk/accessible-emoji/)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<span role="img" aria-label="Snowman">&#9731;</span>
-<span role="img" aria-label="Panda">🐼</span>
-<span role="img" aria-labelledby="panda1">🐼</span>
-```
-
-### Fail
-```jsx
-<span>🐼</span>
-<i role="img" aria-label="Panda">🐼</i>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/alt-text.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/alt-text.md
deleted file mode 100644
index e86edfc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/alt-text.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# alt-text
-
-Enforce that all elements that require alternative text have meaningful information to relay back to the end user. This is a critical component of accessibility for screenreader users in order for them to understand the content's purpose on the page. By default, this rule checks for alternative text on the following elements: `<img>`, `<area>`, `<input type="image">`, and `<object>`.
-
-#### Resources
-1. [axe-core, object-alt](https://dequeuniversity.com/rules/axe/3.2/object-alt)
-2. [axe-core, image-alt](https://dequeuniversity.com/rules/axe/3.2/image-alt)
-3. [axe-core, input-image-alt](https://dequeuniversity.com/rules/axe/3.2/input-image-alt)
-4. [axe-core, area-alt](https://dequeuniversity.com/rules/axe/3.2/area-alt)
-
-## How to resolve
-### `<img>`
-An `<img>` must have the `alt` prop set with meaningful text or as an empty string to indicate that it is an image for decoration.
-
-For images that are being used as icons for a button or control, the `alt` prop should be set to an empty string (`alt=""`).
-
-```jsx
-<button>
-  <img src="icon.png" alt="" />
-  Save
-</button>
-```
-The content of an `alt` attribute is used to calculate the accessible label of an element, whereas the text content is used to produce a label for the element. For this reason, adding a label to an icon can produce a confusing or duplicated label on a control that already has appropriate text content.
-
-### `<object>`
-Add alternative text to all embedded `<object>` elements using either inner text, setting the `title` prop, or using the `aria-label` or `aria-labelledby` props.
-
-### `<input type="image">`
-All `<input type="image">` elements must have a non-empty `alt` prop set with a meaningful description of the image or have the `aria-label` or `aria-labelledby` props set.
-
-### `<area>`
-All clickable `<area>` elements within an image map have an `alt`, `aria-label` or `aria-labelledby` prop that describes the purpose of the link.
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/alt-text": [ 2, {
-            "elements": [ "img", "object", "area", "input[type=\"image\"]" ],
-            "img": ["Image"],
-            "object": ["Object"],
-            "area": ["Area"],
-            "input[type=\"image\"]": ["InputImage"]
-          }],
-    }
-}
-```
-
-The `elements` option is a whitelist for DOM elements to check for alternative text. If an element is removed from the default set of elements (noted above), any custom components for that component will also be ignored. In order to indicate any custom wrapper components that should be checked, you can map the DOM element to an array of JSX custom components. This is a good use case when you have a wrapper component that simply renders an `img` element, for instance (like in React):
-
-```jsx
-// Image.js
-const Image = props => {
-  const {
-    alt,
-    ...otherProps
-  } = props;
-
-  return (
-    <img alt={alt} {...otherProps} />
-  );
-}
-
-...
-
-// Header.js (for example)
-...
-return (
-  <header>
-    <Image alt="Logo" src="logo.jpg" />
-  </header>
-);
-```
-
-Note that passing props as spread attribute without explicitly the necessary accessibility props defined will cause this rule to fail. Explicitly pass down the set of props needed for rule to pass. Use `Image` component above as a reference for destructuring and applying the prop. **It is a good thing to explicitly pass props that you expect to be passed for self-documentation.** For example:
-
-#### Bad
-```jsx
-function Foo(props) {
-  return <img {...props} />
-}
-```
-
-#### Good
-```jsx
-function Foo({ alt, ...props}) {
-    return <img alt={alt} {...props} />
-}
-
-// OR
-
-function Foo(props) {
-    const {
-        alt,
-        ...otherProps
-    } = props;
-
-   return <img alt={alt} {...otherProps} />
-}
-```
-
-### Succeed
-```jsx
-<img src="foo" alt="Foo eating a sandwich." />
-<img src="foo" alt={"Foo eating a sandwich."} />
-<img src="foo" alt={altText} />
-<img src="foo" alt={`${person} smiling`} />
-<img src="foo" alt="" />
-
-<object aria-label="foo" />
-<object aria-labelledby="id1" />
-<object>Meaningful description</object>
-<object title="An object" />
-
-<area aria-label="foo" />
-<area aria-labelledby="id1" />
-<area alt="This is descriptive!" />
-
-<input type="image" alt="This is descriptive!" />
-<input type="image" aria-label="foo" />
-<input type="image" aria-labelledby="id1" />
-
-```
-
-### Fail
-```jsx
-<img src="foo" />
-<img {...props} />
-<img {...props} alt /> // Has no value
-<img {...props} alt={undefined} /> // Has no value
-<img {...props} alt={`${undefined}`} /> // Has no value
-<img src="foo" role="presentation" /> // Avoid ARIA if it can be achieved without
-<img src="foo" role="none" /> // Avoid ARIA if it can be achieved without
-
-<object {...props} />
-
-<area {...props} />
-
-<input type="image" {...props} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-has-content.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-has-content.md
deleted file mode 100644
index 8a6a1cf..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-has-content.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# anchor-has-content
-
-Enforce that anchors have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the `aria-hidden` prop. Refer to the references to learn about why this is important.
-
-#### References
-1. [axe-core, link-name](https://dequeuniversity.com/rules/axe/3.2/link-name)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/anchor-has-content": [ 2, {
-            "components": [ "Anchor" ],
-          }],
-    }
-}
-```
-
-For the `components` option, these strings determine which JSX elements (**always including** `<a>`) should be checked for having content. This is a good use case when you have a wrapper component that simply renders an `a` element (like in React):
-
-```js
-// Anchor.js
-const Anchor = props => {
-  return (
-    <a {...props}>{ props.children }</a>
-  );
-}
-
-...
-
-// CreateAccount.js (for example)
-...
-return (
-  <Anchor>Create Account</Anchor>
-);
-```
-
-
-### Succeed
-```jsx
-<a>Anchor Content!</a>
-<a><TextWrapper /><a>
-<a dangerouslySetInnerHTML={{ __html: 'foo' }} />
-```
-
-### Fail
-```jsx
-<a />
-<a><TextWrapper aria-hidden /></a>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-is-valid.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-is-valid.md
deleted file mode 100644
index afbfb15..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/anchor-is-valid.md
+++ /dev/null
@@ -1,224 +0,0 @@
-# anchor-is-valid
-
-The HTML `<a>` element, with a valid `href` attribute, is formally defined as representing a **hyperlink**. That is, a link between one HTML document and another, or between one location inside an HTML document and another location inside the same document.
-
-In fact, the interactive, underlined `<a>` element has become so synonymous with web navigation that this expectation has become entrenched inside browsers, assistive technologies such as screen readers and in how people generally expect the internet to behave. In short, anchors should navigate.
-
-The use of JavaScript frameworks and libraries, like _React_, has made it very easy to add or subtract functionality from the standard HTML elements. This has led to _anchors_ often being used in applications based on how they look and function instead of what they represent.
-
-Whilst it is possible, for example, to turn the `<a>` element into a fully functional `<button>` element with ARIA, the native user agent implementations of HTML elements are to be preferred over custom ARIA solutions.
-
-## How do I resolve this error?
-
-### Case: I want to perform an action and need a clickable UI element
-
-The native user agent implementations of the `<a>` and `<button>` elements not only differ in how they look and how they act when activated, but also in how the user is expected to interact with them. Both are perfectly clickable when using a mouse, but keyboard users expect `<a>` to activate on `enter` only and `<button>` to activate on _both_ `enter` and `space`.
-
-This is exacerbated by the expectation sighted users have of how _buttons_ and _anchors_ work based on their appearance. Therefore we find that using _anchors_ as _buttons_ can easily create confusion without a relatively complicated ARIA and CSS implementation that only serves to create an element HTML already offers and browsers already implement fully accessibly.
-
-We are aware that sometimes _anchors_ are used instead of _buttons_ to achieve a specific visual design. When using the `<button>` element this can still be achieved with styling but, due to the meaning many people attach to the standard underlined `<a>` due its appearance, please reconsider this in the design.
-
-Consider the following:
-```jsx
-<a href="javascript:void(0)" onClick={foo} >Perform action</a>
-<a href="#" onClick={foo} >Perform action</a>
-<a onClick={foo} >Perform action</a>
-```
-
-All these _anchor_ implementations indicate that the element is only used to execute JavaScript code. All the above should be replaced with:
-```jsx
-<button onClick={foo} >Perform action</button>
-```
-
-### Case: I want navigable links
-
-An `<a>` element without an `href` attribute no longer functions as a hyperlink. That means that it can no longer accept keyboard focus or be clicked on. The documentation for [no-noninteractive-tabindex](no-noninteractive-tabindex.md) explores this further. Preferably use another element (such as `div` or `span`) for display of text.
-
-To properly function as a hyperlink, the `href` attribute should be present and also contain a valid _URL_. _JavaScript_ strings, empty values or using only **#** are not considered valid `href` values.
-
-Valid `href` attributes values are:
-```jsx
-<a href="/some/valid/uri" >Navigate to page</a>
-<a href="/some/valid/uri#top" >Navigate to page and location</a>
-<a href="#top" >Navigate to internal page location</a>
-```
-
-
-### Case: I need the HTML to be interactive, don't I need to use an a tag for that?
-An `<a>` tag is not inherently interactive. Without an href attribute, it really is no different to a `<div>`.
-
-Let's look at an example that is not accessible by all users:
-```jsx
-<a
-  className={'thing'}
-  onMouseEnter={() => this.setState({showSomething: true})}>
-  {label}
-</a>
-```
-
-If you need to create an interface element that the user can click on, consider using a button:
-```jsx
-<button
-  className={'thing'}
-  onClick={() => this.setState({showSomething: true})}>
-  {label}
-</button>
-```
-
-If you want to navigate while providing the user with extra functionality, for example in the `onMouseEnter` event, use an anchor with an `href` attribute containing a URL or path as its value.
-```jsx
-<a
-  href={someValidPath}
-  className={'thing'}
-  onMouseEnter={() => this.setState({showSomething: true})}>
-  {label}
-</a>
-```
-
-If you need to create an interface element that the user can mouse over or mouse out of, consider using a div element. In this case, you may need to apply a role of presentation or an interactive role. Interactive ARIA roles include `button`, `link`, `checkbox`, `menuitem`, `menuitemcheckbox`, `menuitemradio`, `option`, `radio`, `searchbox`, `switch` and `textbox`.
-```jsx
-<div
-  role="menuitem"
-  className={'thing'}
-  onClick={() => this.setState({showSomething: true})}>
-  onMouseEnter={() => this.setState({showSomething: true})}>
-  {label}
-</div>
-```
-
-In the example immediately above an `onClick` event handler was added to provide the same experience mouse users enjoy to keyboard-only and touch-screen users. Never fully rely on mouse events alone to expose functionality.
-
-### Case: I understand the previous cases but still need an element resembling a link that is purely clickable
-
-We recommend, without reserve, that elements resembling anchors should navigate. This will provide a superior user experience to a larger group of users out there.
-
-However, we understand that developers are not always in total control of the visual design of web applications. In cases where it is imperative to provide an element resembling an anchor that purely acts as a click target with no navigation as result, we would like to recommend a compromise.
-
-Again change the element to a `<button>`: 
-
-```jsx
-<button 
-  type="button"
-  className="link-button" 
-  onClick={() => this.setState({showSomething: true})}>
-    Press me, I look like a link
-</button>
-``` 
-
-Then use styling to change its appearance to that of a link:
-
-```css
-.link-button {
-  background-color: transparent;
-  border: none;
-  cursor: pointer;
-  text-decoration: underline;
-  display: inline;
-  margin: 0;
-  padding: 0;
-}
-
-.link-button:hover,
-.link-button:focus {
-text-decoration: none;
-}
-```
-
-This button element can now also be used inline in text.
-
-Once again we stress that this is an inferior implementation and some users will encounter difficulty to use your website, however, it will allow a larger group of people to interact with your website than the alternative of ignoring the rule's warning.
-
-
-### References
-  1. [WebAIM - Introduction to Links and Hypertext](http://webaim.org/techniques/hypertext/)
-  1. [Links vs. Buttons in Modern Web Applications](https://marcysutton.com/links-vs-buttons-in-modern-web-applications/)
-  1. [Using ARIA - Notes on ARIA use in HTML](https://www.w3.org/TR/using-aria/#NOTES)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/anchor-is-valid": [ "error", {
-            "components": [ "Link" ],
-            "specialLink": [ "hrefLeft", "hrefRight" ],
-            "aspects": [ "noHref", "invalidHref", "preferButton" ]
-          }]
-    }
-}
-```
-
-For the `components` option, these strings determine which JSX elements (**always including** `<a>`) should be checked for the props designated in the `specialLink` options (**always including** `href`). This is a good use case when you have a wrapper component that simply renders an `<a>` element (like in React):
-
-```js
-// Link.js
-const Link = props => <a {...props}>A link</a>;
-
-...
-
-// NavBar.js (for example)
-...
-return (
-  <nav>
-    <Link href="/home" />
-  </nav>
-);
-```
-
-For the `aspects` option, these strings determine which sub-rules are run. This allows omission of certain error types in restrictive environments.
-
-- `noHref`: Checks whether an anchor contains an `href` attribute.
-- `invalidHref`: Checks if a given `href` value is valid.
-- `preferButton`: Checks if anchors have been used as buttons.
-
-The option can be used on its own or with the `components` and `specialLink` options.
-
-If omitted, all sub-rule aspects will be run by default. This is the recommended configuration for all cases except where the rule becomes unusable due to well founded restrictions. 
-
-The option must contain at least one `aspect`.
-
-### Succeed
-```jsx
-<a href="https://github.com" />
-<a href="#section" />
-<a href="foo" />
-<a href="/foo/bar" />
-<a href={someValidPath} />
-<a href="https://github.com" onClick={foo} />
-<a href="#section" onClick={foo} />
-<a href="foo" onClick={foo} />
-<a href="/foo/bar" onClick={foo} />
-<a href={someValidPath} onClick={foo} />
-```
-
-### Fail
-
-Anchors should be a button:
-```jsx
-<a onClick={foo} />
-<a href="#" onClick={foo} />
-<a href={"#"} onClick={foo} />
-<a href={`#`} onClick={foo} />
-<a href="javascript:void(0)" onClick={foo} />
-<a href={"javascript:void(0)"} onClick={foo} />
-<a href={`javascript:void(0)`} onClick={foo} />
-```
-
-Missing `href` attribute:
-```jsx
-<a />
-<a href={undefined} />
-<a href={null} />
-```
-
-Invalid `href` attribute:
-```jsx
-<a href="#" />
-<a href={"#"} />
-<a href={`#`} />
-<a href="javascript:void(0)" />
-<a href={"javascript:void(0)"} />
-<a href={`javascript:void(0)`} />
-```
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-activedescendant-has-tabindex.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-activedescendant-has-tabindex.md
deleted file mode 100644
index 29eac88..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-activedescendant-has-tabindex.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# aria-activedescendant-has-tabindex
-
-`aria-activedescendant` is used to manage focus within a [composite widget](https://www.w3.org/TR/wai-aria/roles#composite_header).
-The element with the attribute `aria-activedescendant` retains the active document
-focus; it indicates which of its child elements has secondary focus by assigning
-the ID of that element to the value of `aria-activedescendant`. This pattern is
-used to build a widget like a search typeahead select list. The search input box
-retains document focus so that the user can type in the input. If the down arrow
-key is pressed and a search suggestion is highlighted, the ID of the suggestion
-element will be applied as the value of `aria-activedescendant` on the input
-element.
-
-Because an element with `aria-activedescendant` must be tabbable, it must either
-have an inherent `tabIndex` of zero or declare a `tabIndex` of zero with the `tabIndex`
-attribute.
-
-#### References
-1. [MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-activedescendant_attribute)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<CustomComponent />
-<CustomComponent aria-activedescendant={someID} />
-<CustomComponent aria-activedescendant={someID} tabIndex={0} />
-<CustomComponent aria-activedescendant={someID} tabIndex={-1} />
-<div />
-<input />
-<div tabIndex={0} />
-<div aria-activedescendant={someID} tabIndex={0} />
-<div aria-activedescendant={someID} tabIndex="0" />
-<div aria-activedescendant={someID} tabIndex={1} />
-<input aria-activedescendant={someID} />
-<input aria-activedescendant={someID} tabIndex={0} />
-```
-
-### Fail
-```jsx
-<div aria-activedescendant={someID} />
-<div aria-activedescendant={someID} tabIndex={-1} />
-<div aria-activedescendant={someID} tabIndex="-1" />
-<input aria-activedescendant={someID} tabIndex={-1} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-props.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-props.md
deleted file mode 100644
index 36cb325..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-props.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# aria-props
-
-Elements cannot use an invalid ARIA attribute. This will fail if it finds an `aria-*` property that is not listed in [WAI-ARIA States and Properties spec](https://www.w3.org/WAI/PF/aria-1.1/states_and_properties).
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<!-- Good: Labeled using correctly spelled aria-labelledby -->
-<div id="address_label">Enter your address</div>
-<input aria-labelledby="address_label">
-```
-
-### Fail
-
-```jsx
-<!-- Bad: Labeled using incorrectly spelled aria-labeledby -->
-<div id="address_label">Enter your address</div>
-<input aria-labeledby="address_label">
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-proptypes.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-proptypes.md
deleted file mode 100644
index 9b85d5b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-proptypes.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# aria-proptypes
-
-ARIA state and property values must be valid.
-
-#### References
-1. [Spec](https://www.w3.org/TR/wai-aria/states_and_properties)
-2. [AX_ARIA_04](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_04)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<!-- Good: the aria-hidden state is of type true/false -->
-<span aria-hidden="true">foo</span>
-```
-
-### Fail
-```jsx
-<!-- Bad: the aria-hidden state is of type true/false -->
-<span aria-hidden="yes">foo</span>
-```
-
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-role.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-role.md
deleted file mode 100644
index bd8cc77..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-role.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# aria-role
-
-Elements with ARIA roles must use a valid, non-abstract ARIA role. A reference to role definitions can be found at [WAI-ARIA](https://www.w3.org/TR/wai-aria/#role_definitions) site.
-
-[AX_ARIA_01](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_01)
-[DPUB-ARIA roles](https://www.w3.org/TR/dpub-aria-1.0/)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```
-{
-    "rules": {
-        "jsx-a11y/aria-role": [ 2, {
-            "ignoreNonDOM": true
-        }],
-    }
-}
-```
-
-For the `ignoreNonDOM` option, this determines if developer created components are checked.
-
-### Succeed
-```jsx
-<div role="button"></div>     <!-- Good: "button" is a valid ARIA role -->
-<div role={role}></div>       <!-- Good: role is a variable & cannot be determined until runtime. -->
-<div></div>                   <!-- Good: No ARIA role -->
-<Foo role={role}></Foo>       <!-- Good: ignoreNonDOM is set to true -->
-```
-
-### Fail
-
-```jsx
-<div role="datepicker"></div> <!-- Bad: "datepicker" is not an ARIA role -->
-<div role="range"></div>      <!-- Bad: "range" is an _abstract_ ARIA role -->
-<div role=""></div>           <!-- Bad: An empty ARIA role is not allowed -->
-<Foo role={role}></Foo>       <!-- Bad: ignoreNonDOM is set to false or not set -->
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-unsupported-elements.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-unsupported-elements.md
deleted file mode 100644
index 452c3d4..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/aria-unsupported-elements.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# aria-unsupported-elements
-
-Certain reserved DOM elements do not support ARIA roles, states and properties. This is often because they are not visible, for example `meta`, `html`, `script`, `style`. This rule enforces that these DOM elements do not contain the `role` and/or `aria-*` props.
-
-#### References
-1. [AX_ARIA_12](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_12)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<!-- Good: the meta element should not be given any ARIA attributes -->
-<meta charset="UTF-8" />
-```
-
-### Fail
-```jsx
-<!-- Bad: the meta element should not be given any ARIA attributes -->
-<meta charset="UTF-8" aria-hidden="false" />
-```
-
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/click-events-have-key-events.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/click-events-have-key-events.md
deleted file mode 100644
index d89869b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/click-events-have-key-events.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# click-events-have-key-events
-
-Enforce `onClick` is accompanied by at least one of the following: `onKeyUp`, `onKeyDown`, `onKeyPress`. Coding for the keyboard is important for users with physical disabilities who cannot use a mouse, AT compatibility, and screenreader users.
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<div onClick={() => {}} onKeyDown={this.handleKeyDown} />
-<div onClick={() => {}} onKeyUp={this.handleKeyUp} />
-<div onClick={() => {}} onKeyPress={this.handleKeyPress} />
-```
-
-### Fail
-```jsx
-<div onClick={() => {}} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/control-has-associated-label.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/control-has-associated-label.md
deleted file mode 100644
index f66d1cc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/control-has-associated-label.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# control-has-associated-label
-
-Enforce that a control (an interactive element) has a text label.
-
-There are two supported ways to supply a control with a text label:
-
-- Provide text content inside the element.
-- Use the `aria-label` attribute on the element, with a text value.
-- Use the `aria-labelledby` attribute on the element, and point the IDREF value to an element with an accessible label.
-- Alternatively, with an `img` tag, you may use the `alt` attribute to supply a text description of the image.
-
-The rule is permissive in the sense that it will assume that expressions will eventually provide a label. So an element like this will pass.
-
-```jsx
-<button type="button">{maybeSomethingThatContainsALabel}</button>
-```
-
-## How do I resolve this error?
-
-### Case: I have a simple button that requires a label.
-
-Provide text content in the `button` element.
-
-```jsx
-<button type="button">Save</button>
-```
-
-### Case: I have an icon button and I don't want visible text.
-
-Use the `aria-label` attribute and provide the text label as the value.
-
-```jsx
-<button type="button" aria-label="Save" class="icon-save" />
-```
-
-### Case: The label for my element is already located on the page and I don't want to repeat the text in my source code.
-
-Use the `aria-labelledby` attribute and point the IDREF value to an element with an accessible label.
-
-```jsx
-<div id="js_1">Comment</div>
-<textarea aria-labelledby="js_1"></textarea>
-```
-
-### Case: My label and input components are custom components, but I still want to require that they have an accessible text label.
-
-You can configure the rule to be aware of your custom components. Refer to the Rule Details below.
-
-```jsx
-<CustomInput label="Surname" type="text" value={value} />
-```
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-  "rules": {
-    "jsx-a11y/control-has-associated-label": [ 2, {
-      "labelAttributes": ["label"],
-      "controlComponents": ["CustomComponent"],
-      "ignoreElements": [
-        "audio",
-        "canvas",
-        "embed",
-        "input",
-        "textarea",
-        "tr",
-        "video",
-      ],
-      "ignoreRoles": [
-        "grid",
-        "listbox",
-        "menu",
-        "menubar",
-        "radiogroup",
-        "row",
-        "tablist",
-        "toolbar",
-        "tree",
-        "treegrid",
-      ],
-      "depth": 3,
-    }],
-  }
-}
-```
-
-- `labelAttributes` is a list of attributes to check on the control component and its children for a label. Use this if you have a custom component that uses a string passed on a prop to render an HTML `label`, for example.
-- `controlComponents` is a list of custom React Components names that will render down to an interactive element.
-- `ignoreElements` is an array of elements that should not be considered control (interactive) elements and therefore they do not require a text label.
-- `ignoreRoles` is an array of ARIA roles that should not be considered control (interactive) roles and therefore they do not require a text label.
-- `depth` (default 2, max 25) is an integer that determines how deep within a `JSXElement` the rule should look for text content or an element with a label to determine if the interactive element will have an accessible label.
-
-### Succeed
-```jsx
-<button type="button" aria-label="Save" class="icon-save" />
-```
-
-### Fail
-```jsx
-<button type="button" class="icon-save" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/heading-has-content.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/heading-has-content.md
deleted file mode 100644
index 6f5f53e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/heading-has-content.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# heading-has-content
-
-Enforce that heading elements (`h1`, `h2`, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the `aria-hidden` prop. Refer to the references to learn about why this is important.
-
-#### References
-1. [axe-core, empty-heading](https://dequeuniversity.com/rules/axe/3.2/empty-heading)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/heading-has-content": [ 2, {
-            "components": [ "MyHeading" ],
-          }],
-    }
-}
-```
-
-For the `components` option, these strings determine which JSX elements (**always including** `<h1>` thru `<h6>`) should be checked for having content. This is a good use case when you have a wrapper component that simply renders an `h1` element (like in React):
-
-
-```js
-// Header.js
-const Header = props => {
-  return (
-    <h1 {...props}>{ props.children }</h1>
-  );
-}
-
-...
-
-// CreateAccount.js (for example)
-...
-return (
-  <Header>Create Account</Header>
-);
-```
-
-#### Bad
-```jsx
-function Foo(props) {
-  return <label {...props} />
-}
-```
-
-### Succeed
-```jsx
-<h1>Heading Content!</h1>
-<h1><TextWrapper /><h1>
-<h1 dangerouslySetInnerHTML={{ __html: 'foo' }} />
-```
-
-### Fail
-```jsx
-<h1 />
-<h1><TextWrapper aria-hidden />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/html-has-lang.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/html-has-lang.md
deleted file mode 100644
index f5c9162..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/html-has-lang.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# html-has-lang
-
-<html> elements must have the lang prop.
-
-#### References
-1. [axe-core, html-has-lang](https://dequeuniversity.com/rules/axe/3.2/html-has-lang)
-1. [axe-core, html-lang-valid](https://dequeuniversity.com/rules/axe/3.2/html-lang-valid)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<html lang="en">
-<html lang="en-US">
-<html lang={language}>
-```
-
-### Fail
-
-```jsx
-<html>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/iframe-has-title.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/iframe-has-title.md
deleted file mode 100644
index 7880ecc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/iframe-has-title.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# iframe-has-title
-
-`<iframe>` elements must have a unique title property to indicate its content to the user.
-
-#### References
-1. [axe-core, frame-title](https://dequeuniversity.com/rules/axe/3.2/frame-title)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<iframe title="This is a unique title" />
-<iframe title={uniqueTitle} />
-```
-
-### Fail
-```jsx
-<iframe />
-<iframe {...props} />
-<iframe title="" />
-<iframe title={''} />
-<iframe title={``} />
-<iframe title={undefined} />
-<iframe title={false} />
-<iframe title={true} />
-<iframe title={42} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/img-redundant-alt.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/img-redundant-alt.md
deleted file mode 100644
index 92d8755..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/img-redundant-alt.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# img-redundant-alt
-
-Enforce img alt attribute does not contain the word image, picture, or photo. Screenreaders already announce `img` elements as an image. There is no need to use words such as *image*, *photo*, and/or *picture*.
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/img-redundant-alt": [ 2, {
-            "components": [ "Image" ],
-            "words": [ "Bild", "Foto" ],
-          }],
-    }
-}
-```
-
-For the `components` option, these strings determine which JSX elements (**always including** `<img>`) should be checked for having redundant words in the `alt` prop value . This is a good use case when you have a wrapper component that simply renders an `img` element (like in React).
-
-For the `words` option, these strings can be used to specify custom words that should be checked for in the alt prop, including `image`, `photo`, and `picture`. Useful for specifying words in other languages.
-
-The rule will first check if `aria-hidden` is true to determine whether to enforce the rule. If the image is hidden, then rule will always succeed.
-
-### Succeed
-```jsx
-<img src="foo" alt="Foo eating a sandwich." />
-<img src="bar" aria-hidden alt="Picture of me taking a photo of an image" /> // Will pass because it is hidden.
-<img src="baz" alt={`Baz taking a ${photo}`} /> // This is valid since photo is a variable name.
-```
-
-### Fail
-```jsx
-<img src="foo" alt="Photo of foo being weird." />
-<img src="bar" alt="Image of me at a bar!" />
-<img src="baz" alt="Picture of baz fixing a bug." />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/interactive-supports-focus.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/interactive-supports-focus.md
deleted file mode 100644
index 0518def..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/interactive-supports-focus.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# interactive-supports-focus
-
-Elements with an interactive role and interaction handlers (mouse or key press) must be focusable.
-
-## How do I resolve this error?
-
-### Case: I got the error "Elements with the '${role}' interactive role must be tabbable". How can I fix this?
-
-This element is a stand-alone control like a button, a link or a form element. A user should be able to reach this element by pressing the tab key on their keyboard.
-
-Add the `tabIndex` property to your component. A value of zero indicates that this element can be tabbed to.
-
-```
-<div
-  role="button"
-  tabIndex={0} />
-```
-
--- or --
-
-Replace the component with one that renders semantic html element like `<button>`, `<a href>` or `<input>` -- whichever fits your purpose.
-
-Generally buttons, links and form elements should be reachable via tab key presses. An element that can be tabbed to is said to be in the _tab ring_.
-
-### Case: I got the error "Elements with the '${role}' interactive role must be focusable". How can I fix this?
-
-This element is part of a group of buttons, links, menu items, etc. Or this element is part of a composite widget. Composite widgets prescribe standard [keyboard interaction patterns](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav). Within a group of similar elements -- like a button bar -- or within a composite widget, elements that can be focused are given a tabindex of -1. This makes the element *focusable* but not *tabbable*. Generally one item in a group should have a tabindex of zero so that a user can tab to the component. Once an element in the component has focus, your key management behaviors will control traversal within the component's pieces. As the UI author, you will need to implement the key handling behaviors such as listening for traversal key (up/down/left/right) presses and moving the page focus between the focusable elements in your widget.
-
-```
-<div role="menu">
-  <div role="menuitem" tabIndex="0">Open</div>
-  <div role="menuitem" tabIndex="-1">Save</div>
-  <div role="menuitem" tabIndex="-1">Close</div>
-</div>
-```
-
-In the example above, the first item in the group can be tabbed to. The developer provides the ability to traverse to the subsequent items via the up/down/left/right arrow keys. Traversing via arrow keys is not provided by the browser or the assistive technology. See [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav) for information about established traversal behaviors for various UI widgets.
-
-### Case: This element is not a button, link, menuitem, etc. It is catching bubbled events from elements that it contains
-
-If your element is catching bubbled click or key events from descendant elements, then the proper role for this element is `presentation`.
-
-```
-<div
-  onClick={onClickHandler}
-  role="presentation">
-  <button>Save</button>
-</div>
-```
-
-Marking an element with the role `presentation` indicates to assistive technology that this element should be ignored; it exists to support the web application and is not meant for humans to interact with directly.
-
-### References
-  1. [AX_FOCUS_02](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_focus_02)
-  1. [Mozilla Developer Network - ARIA Techniques](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role#Keyboard_and_focus)
-  1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-  1. [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex)
-
-## Rule details
-
-This rule takes an options object with the key `tabbable`. The value is an array of interactive ARIA roles that should be considered tabbable, not just focusable. Any interactive role not included in this list will be flagged as needing to be focusable (tabindex of -1).
-
-```
-'jsx-a11y/interactive-supports-focus': [
-  'error',
-  {
-    tabbable: [
-      'button',
-      'checkbox',
-      'link',
-      'searchbox',
-      'spinbutton',
-      'switch',
-      'textbox',
-    ],
-  },
-]
-```
-
-The recommended options list interactive roles that act as form elements. Generally, elements with a role like `menuitem` are a part of a composite widget. Focus in a composite widget is controlled and moved programmatically to satisfy the prescribed [keyboard interaction pattern](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav) for the widget.
-
-The list of possible values includes:
-
-```
-[
-  'button',
-  'checkbox',
-  'columnheader',
-  'combobox',
-  'grid',
-  'gridcell',
-  'link',
-  'listbox',
-  'menu',
-  'menubar',
-  'menuitem',
-  'menuitemcheckbox',
-  'menuitemradio',
-  'option',
-  'progressbar',
-  'radio',
-  'radiogroup',
-  'row',
-  'rowheader',
-  'searchbox',
-  'slider',
-  'spinbutton',
-  'switch',
-  'tab',
-  'tablist',
-  'textbox',
-  'toolbar',
-  'tree',
-  'treegrid',
-  'treeitem',
-  'doc-backlink',
-  'doc-biblioref',
-  'doc-glossref',
-  'doc-noteref',
-]
-```
-
-### Succeed
-```jsx
-<!-- Good: div with onClick attribute is hidden from screen reader -->
-<div aria-hidden onClick={() => void 0} />
-<!-- Good: span with onClick attribute is in the tab order -->
-<span onClick="doSomething();" tabIndex="0" role="button">Click me!</span>
-<!-- Good: span with onClick attribute may be focused programmatically -->
-<span onClick="doSomething();" tabIndex="-1" role="menuitem">Click me too!</span>
-<!-- Good: anchor element with href is inherently focusable -->
-<a href="javascript:void(0);" onClick="doSomething();">Click ALL the things!</a>
-<!-- Good: buttons are inherently focusable -->
-<button onClick="doSomething();">Click the button :)</button>
-```
-
-### Fail
-```jsx
-<!-- Bad: span with onClick attribute has no tabindex -->
-<span onclick="submitForm();" role="button">Submit</span>
-<!-- Bad: anchor element without href is not focusable -->
-<a onclick="showNextPage();" role="button">Next page</a>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-associated-control.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-associated-control.md
deleted file mode 100644
index 9d60059..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-associated-control.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# label-has-associated-control
-
-Enforce that a label tag has a text label and an associated control.
-
-There are two supported ways to associate a label with a control:
-
-- Wrapping a control in a label tag.
-- Adding `htmlFor` to a label and assigning it a DOM ID string that indicates an input on the page.
-
-This rule checks that any `label` tag (or an indicated custom component that will output a `label` tag) either (1) wraps an `input` element (or an indicated custom component that will output an `input` tag) or (2) has an `htmlFor` attribute and that the `label` tag has text content.
-
-## How do I resolve this error?
-
-### Case: I just want a text label associated with an input.
-
-The simplest way to achieve an association between a label and an input is to wrap the input in the label.
-
-```jsx
-<label>
-  Surname
-  <input type="text" />
-</label>
-```
-
-All modern browsers and assistive technology will associate the label with the control.
-
-### Case: The label is a sibling of the control.
-
-In this case, use `htmlFor` and an ID to associate the controls.
-
-```jsx
-<label htmlFor={domId}>Surname</label>
-<input type="text" id={domId} />
-```
-
-### Case: My label and input components are custom components.
-
-You can configure the rule to be aware of your custom components.
-
-```jsx
-<CustomInputLabel label="Surname">
-  <CustomInput type="text" value={value} />
-</CustomInputLabel>
-```
-
-And the configuration:
-
-```json
-{
-  "rules": {
-    "jsx-a11y/label-has-associated-control": [ 2, {
-      "labelComponents": ["CustomInputLabel"],
-      "labelAttributes": ["label"],
-      "controlComponents": ["CustomInput"],
-      "depth": 3,
-    }],
-  }
-}
-```
-
-### Case: I have two labels for the same input
-
-If the second `label` is in a different part of the HTML, then the second one can only contain `htmlFor` but not nesting. You will probably need eslint override comment on the second label.
-
-```jsx
-{/* eslint jsx-a11y/label-has-associated-control: ["error", { assert: "either" } ] */}
-<label htmlFor="a">
-  Username:
-</label>
-...
-<label htmlFor="a">
-  <input id="a" />
-</label>
-```
-
-## How to manage IDs of `input`
-
-A common way to think of `id` with libraries like React is, `id`s should be avoided since it must be unique on the page, and components need to be reusable. Hence it is tempted to generate `id` during render-time if `id` is required. *However:*
-
-IDs shouldn't be generated in the browser, so that server and client rendering are deterministic. Render-time uuids aren't just a hack, they're actually broken and should never be used.
-
-To restate, **every ID needs to be deterministic**, on the server and the client, and guaranteed to be unique on the page. EG: For each input, a required ID prop can be passed down from as far up the tree as possible to guarantee uniqueness.
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-  "rules": {
-    "jsx-a11y/label-has-associated-control": [ 2, {
-      "labelComponents": ["CustomLabel"],
-      "labelAttributes": ["inputLabel"],
-      "controlComponents": ["CustomInput"],
-      "assert": "both",
-      "depth": 3,
-    }],
-  }
-}
-```
-
-`labelComponents` is a list of custom React Component names that should be checked for an associated control.
-`labelAttributes` is a list of attributes to check on the label component and its children for a label. Use this if you have a custom component that uses a string passed on a prop to render an HTML `label`, for example.
-`controlComponents` is a list of custom React Components names that will output an input element.
-`assert` asserts that the label has htmlFor, a nested label, both or either. Available options: `'htmlFor', 'nesting', 'both', 'either'`.
-`depth` (default 2, max 25) is an integer that determines how deep within a `JSXElement` label the rule should look for text content or an element with a label to determine if the `label` element will have an accessible label.
-
-### Fail
-```jsx
-function Foo(props) {
-  return <label {...props} />
-}
-```
-
-### Succeed
-```jsx
-function Foo(props) {
-    const {
-        htmlFor,
-        ...otherProps
-    } = props;
-
-   return <label htmlFor={htmlFor} {...otherProps} />
-}
-```
-
-### Fail
-```jsx
-<input type="text" />
-<label>Surname</label>
-```
-
-### Succeed
-```jsx
-<label>
-  <input type="text" />
-  Surname
-</label>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-for.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-for.md
deleted file mode 100644
index 5fff12c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/label-has-for.md
+++ /dev/null
@@ -1,114 +0,0 @@
-# [Deprecated] label-has-for
-
-*This rule was deprecated in v6.1.0. It will no longer be maintained. Please use [`label-has-associated-control`](label-has-associated-control.md) instead.*
-
-Enforce label tags have associated control.
-
-There are two supported ways to associate a label with a control:
-
-- nesting: by wrapping a control in a label tag
-- id: by using the prop `htmlFor` as in `htmlFor=[ID of control]`
-
-To fully cover 100% of assistive devices, you're encouraged to validate for both nesting and id.
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/label-has-for": [ 2, {
-            "components": [ "Label" ],
-            "required": {
-                "every": [ "nesting", "id" ]
-            },
-            "allowChildren": false
-        }]
-    }
-}
-```
-
-For the `components` option, these strings determine which JSX elements (**always including** `<label>`) should be checked for having `htmlFor` prop. This is a good use case when you have a wrapper component that simply renders a `label` element (like in React):
-
-```js
-// Label.js
-const Label = props => {
-  const {
-    htmlFor,
-    ...otherProps
-  } = props;
-
-  return (
-    <label htmlFor={htmlFor} {...otherProps} />
-  );
-}
-
-...
-
-// CreateAccount.js (for example)
-...
-return (
-  <form>
-    <input id="firstName" type="text" />
-    <Label htmlFor="firstName">First Name</Label>
-  </form>
-);
-```
-
-The `required` option (defaults to `"required": { "every": ["nesting", "id"] }`) determines which checks are activated. You're allowed to pass in one of the following types:
-
-- string: must be one of the acceptable strings (`"nesting"` or `"id"`)
-- object, must have one of the following properties:
-
-  - some: an array of acceptable strings, will pass if ANY of the requested checks passed
-  - every: an array of acceptable strings, will pass if ALL of the requested checks passed
-
-The `allowChildren` option (defaults to `false`) determines whether `{children}` content is allowed to be passed into a `label` element. For example, the following pattern, by default, is not allowed:
-
-```js
-<label>{children}</label>
-```
-
-However, if `allowChildren` is set to `true`, no error will be raised. If you want to pass in `{children}` content without raising an error, because you cannot be sure what `{children}` will render, then set `allowChildren` to `true`.
-
-Note that passing props as spread attribute without `htmlFor` explicitly defined will cause this rule to fail. Explicitly pass down `htmlFor` prop for rule to pass. The prop must have an actual value to pass. Use `Label` component above as a reference. **It is a good thing to explicitly pass props that you expect to be passed for self-documentation.** For example:
-
-#### Bad
-```jsx
-function Foo(props) {
-  return <label {...props} />
-}
-```
-
-#### Good
-```jsx
-function Foo({ htmlFor, ...props}) {
-    return <label htmlFor={htmlFor} {...props} />
-}
-
-// OR
-
-function Foo(props) {
-    const {
-        htmlFor,
-        ...otherProps
-    } = props;
-
-   return <label htmlFor={htmlFor} {...otherProps} />
-}
-```
-
-### Succeed
-```jsx
-<label htmlFor="firstName">
-  <input type="text" id="firstName" />
-  First Name
-</label>
-```
-
-### Fail
-```jsx
-<input type="text" id="firstName" />
-<label>First Name</label>
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/lang.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/lang.md
deleted file mode 100644
index 50ec74d..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/lang.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# lang
-
-The `lang` prop on the `<html>` element must have a valid value based on ISO country and language codes.
-
-#### References
-1. [axe-core, valid-lang](https://dequeuniversity.com/rules/axe/3.2/valid-lang)
-2. [ISO Language Codes](http://www.w3schools.com/tags/ref_language_codes.asp)
-3. [ISO Country Codes](http://www.w3schools.com/tags/ref_country_codes.asp)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<html lang="en">
-<html lang="en-US">
-```
-
-### Fail
-
-```jsx
-<html>
-<html lang="foo">
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/media-has-caption.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/media-has-caption.md
deleted file mode 100644
index 6857361..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/media-has-caption.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# media-has-caption
-
-Providing captions for media is essential for deaf users to follow along. Captions should be a transcription or translation of the dialogue, sound effects, relevant musical cues, and other relevant audio information. Not only is this important for accessibility, but can also be useful for all users in the case that the media is unavailable (similar to `alt` text on an image when an image is unable to load).
-
-The captions should contain all important and relevant information to understand the corresponding media. This may mean that the captions are not a 1:1 mapping of the dialogue in the media content. However, captions are *not* necessary for video components with the `muted` attribute.
-
-### References
-
-  1. [audio](https://dequeuniversity.com/rules/axe/2.1/audio-caption)
-  1. [video](https://dequeuniversity.com/rules/axe/2.1/video-caption)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/media-has-caption": [ 2, {
-            "audio": [ "Audio" ],
-            "video": [ "Video" ],
-            "track": [ "Track" ],
-          }],
-    }
-}
-```
-
-For the `audio`, `video`, and `track` options, these strings determine which JSX elements (**always including** their corresponding DOM element) should be used for this rule. This is a good use case when you have a wrapper component that simply renders an `audio`, `video`, or `track` element (like in React):
-
-### Succeed
-```jsx
-<audio><track kind="captions" {...props} /></audio>
-<video><track kind="captions" {...props} /></video>
-<video muted {...props} ></video>
-```
-
-### Fail
-```jsx
-<audio {...props} />
-<video {...props} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/mouse-events-have-key-events.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/mouse-events-have-key-events.md
deleted file mode 100644
index 21d85ae..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/mouse-events-have-key-events.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# mouse-events-have-key-events
-
-Enforce onmouseover/onmouseout are accompanied by onfocus/onblur. Coding for the keyboard is important for users with physical disabilities who cannot use a mouse, AT compatibility, and screenreader users.
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<div onMouseOver={ () => void 0 } onFocus={ () => void 0 } />
-<div onMouseOut={ () => void 0 } onBlur={ () => void 0 } />
-<div onMouseOver={ () => void 0 } onFocus={ () => void 0 } {...otherProps} />
-<div onMouseOut={ () => void 0 } onBlur={ () => void 0 } {...otherProps} />
-```
-
-### Fail
-In example 3 and 4 below, even if otherProps contains onBlur and/or onFocus, this rule will still fail. Props should be passed down explicitly for rule to pass.
-
-```jsx
-<div onMouseOver={ () => void 0 } />
-<div onMouseOut={ () => void 0 } />
-<div onMouseOver={ () => void 0 } {...otherProps} />
-<div onMouseOut={ () => void 0 } {...otherProps} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-access-key.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-access-key.md
deleted file mode 100644
index 1e62912..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-access-key.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# no-access-key
-
-Enforce no accessKey prop on element. Access keys are HTML attributes that allow web developers to assign keyboard shortcuts to elements. Inconsistencies between keyboard shortcuts and keyboard commands used by screenreader and keyboard only users create accessibility complications so to avoid complications, access keys should not be used.
-
-### References
-1. [WebAIM](http://webaim.org/techniques/keyboard/accesskey#spec)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<div />
-```
-
-### Fail
-```jsx
-<div accessKey="h" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-autofocus.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-autofocus.md
deleted file mode 100644
index 6b0c104..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-autofocus.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# no-autofocus
-
-Enforce that autoFocus prop is not used on elements. Autofocusing elements can cause usability issues for sighted and non-sighted users, alike.
-
-#### References
-1. [w3c](https://w3c.github.io/html/sec-forms.html#autofocusing-a-form-control-the-autofocus-attribute)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```
-{
-    "rules": {
-        "jsx-a11y/no-autofocus": [ 2, {
-            "ignoreNonDOM": true
-        }],
-    }
-}
-```
-
-For the `ignoreNonDOM` option, this determines if developer created components are checked.
-
-### Succeed
-```jsx
-<div />
-```
-
-### Fail
-```jsx
-<div autoFocus />
-<div autoFocus="true" />
-<div autoFocus="false" />
-<div autoFocus={undefined} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-distracting-elements.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-distracting-elements.md
deleted file mode 100644
index 85380e2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-distracting-elements.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# no-distracting-elements
-
-Enforces that no distracting elements are used. Elements that can be visually distracting can cause accessibility issues with visually impaired users. Such elements are most likely deprecated, and should be avoided. By default, the following elements are visually distracting: `<marquee>` and `<blink>`.
-
-#### References
-1. [axe-core, marquee](https://dequeuniversity.com/rules/axe/3.2/marquee)
-2. [axe-core, blink](https://dequeuniversity.com/rules/axe/3.2/blink)
-
-## Rule details
-
-This rule takes one optional object argument of type object:
-
-```json
-{
-    "rules": {
-        "jsx-a11y/no-distracting-elements": [ 2, {
-            "elements": [ "marquee", "blink" ],
-          }],
-    }
-}
-```
-
-For the `elements` option, these strings determine which JSX elements should be checked for usage. This shouldn't need to be configured unless you have a seriously compelling use case for these elements. You cannot add any additional elements than what is offered, as the schema is only valid with the provided enumerated list. If you have another element that you think may cause a11y issues due to visual impairment, please feel free to file an issue or send a PR!
-
-### Succeed
-```jsx
-<div />
-```
-
-### Fail
-```jsx
-<marquee />
-<blink />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-interactive-element-to-noninteractive-role.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-interactive-element-to-noninteractive-role.md
deleted file mode 100644
index 29d8ea1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-interactive-element-to-noninteractive-role.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# no-interactive-element-to-noninteractive-role
-
-Interactive HTML elements indicate _controls_ in the user interface. Interactive elements include `<a href>`, `<button>`, `<input>`, `<select>`, `<textarea>`.
-
-Non-interactive HTML elements and non-interactive ARIA roles indicate _content_ and _containers_ in the user interface. Non-interactive elements include `<main>`, `<area>`, `<h1>` (,`<h2>`, etc), `<img>`, `<li>`, `<ul>` and `<ol>`.
-
-[WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro) should not be used to convert an interactive element to a non-interactive element. Non-interactive ARIA roles include `article`, `banner`, `complementary`, `img`, `listitem`, `main`, `region` and `tooltip`.
-
-## How do I resolve this error?
-
-### Case: The element should be a container, like an article
-
-Wrap your interactive element in a `<div>` with the desired role.
-
-```
-<div role="article">
-  <button>Save</button>
-</div>
-```
-
-### Case: The element should be content, like an image
-
-Put the content inside your interactive element.
-
-```
-<div
-  role="button"
-  onClick={() => {}}
-  onKeyPress={() => {}}
-  tabIndex="0">
-  <div role="img" aria-label="Save" />
-</div>
-```
-
-### References
-
-  1. [WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro)
-  1. [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex)
-  1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-  1. [Mozilla Developer Network - ARIA Techniques](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role#Keyboard_and_focus)
-
-## Rule details
-
-The recommended options for this rule allow the `tr` element to be given a role of `presentation` (or its semantic equivalent `none`). Under normal circumstances, an element with an interactive role should not be semantically neutralized with `presentation` (or `none`).
-
-Options are provided as an object keyed by HTML element name; the value is an array of interactive roles that are allowed on the specified element.
-
-```
-{
-  'no-interactive-element-to-noninteractive-role': [
-    'error',
-    {
-      tr: ['none', 'presentation'],
-    },
-  ]
-}
-```
-
-Under the recommended options, the following code is valid. It would be invalid under the strict rules.
-
-```
-<tr role="presentation" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-interactions.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-interactions.md
deleted file mode 100644
index 053d93b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-interactions.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# no-noninteractive-element-interactions
-
-Non-interactive HTML elements and non-interactive ARIA roles indicate _content_ and _containers_ in the user interface. A non-interactive element does not support event handlers (mouse and key handlers). Non-interactive elements include `<main>`, `<area>`, `<h1>` (,`<h2>`, etc), `<p>`, `<img>`, `<li>`, `<ul>` and `<ol>`. Non-interactive [WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro) include `article`, `banner`, `complementary`, `img`, `listitem`, `main`, `region` and `tooltip`.
-
-## How do I resolve this error?
-
-### Case: This element acts like a button, link, menuitem, etc.
-
-Move the event handler function to an inner element that is either a semantically interactive element (`<button>`, `<a href>`) or that has an interactive role. This leaves the _content_ or _container_ semantic value of this element intact.
-
-Common interactive roles include:
-
-  1. `button`
-  1. `link`
-  1. `checkbox`
-  1. `menuitem`
-  1. `menuitemcheckbox`
-  1. `menuitemradio`
-  1. `option`
-  1. `radio`
-  1. `searchbox`
-  1. `switch`
-  1. `textbox`
-
-Note: Adding a role to your element does **not** add behavior. When a semantic HTML element like `<button>` is used, then it will also respond to Enter key presses when it has focus. The developer is responsible for providing the expected behavior of an element that the role suggests it would have: focusability and key press support.
-see [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex).
-
-### Case: This element is catching bubbled events from elements that it contains
-
-Move the event handler function to an inner element like `<div>` and give that element a role of `presentation`. This leaves the _content_ or _container_ semantic value of this element intact.
-
-```
-<div role="article">
-  <div
-    onClick="onClickHandler"
-    onKeyPress={onKeyPressHandler}
-    role="presentation">
-    {this.props.children}
-  </div>
-</div>
-```
-
-Marking an element with the role `presentation` indicates to assistive technology that this element should be ignored; it exists to support the web application and is not meant for humans to interact with directly.
-
-### Case: This is a heading that expands/collapses content on the package
-
-Headers often double as expand/collapse controls for the content they headline. An accordion component is a common example of this pattern. Rather than assign the interaction handling code to the heading itself, put a button inside the heading instead. This pattern retains the role of the heading and the role of the button.
-
-```jsx
-<h3>
-  <button onClick={this._expandSection}>News</button>
-</h3>
-<ul id="articles-list">
-  <li>...</li>
-</ul>
-```
-
-### Case: This element is a table cell
-
-Table cells (and tables in general) are meant to contain data. ARIA provides us with a construct called a [Grid](http://w3c.github.io/aria-practices/#grid) that is essentially a 2 dimensional logical container for content and interactive elements.
-
-You have two options in this case.
-
-#### Option 1, move the interactive content inside the table cells
-
-For instance, move the button inside the cell:
-
-```
-<table>
-  <tr>
-    <td><button>Sort</button></td>
-  </tr>
-</table>
-```
-
-This preserves the table cell semantics and the button semantics; the two are not conflated on the cell.
-
-#### Option 2, convert the table into an ARIA grid
-
-If your user interface has a table-like layout, but is filled with interactive components in the cells, consider converting the table into a grid.
-
-```
-<table role="grid">
-  <tr>
-    <td role="gridcell" onClick={this.sort}>Sort</td>
-  </tr>
-</table>
-```
-
-You can also put the interactive content inside the grid cell. This maintains the semantic distinction between the cell and the interaction content, although a grid cell can be interactive.
-
-### References
-
-  1. [WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro)
-  1. [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex)
-  1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-  1. [Mozilla Developer Network - ARIA Techniques](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role#Keyboard_and_focus)
-
-## Rule details
-
-You may configure which handler props should be taken into account when applying this rule. The recommended configuration includes the following 6 handlers.
-
-```javascript
-'jsx-a11y/no-noninteractive-element-interactions': [
-  'error',
-  {
-    handlers: [
-      'onClick',
-      'onMouseDown',
-      'onMouseUp',
-      'onKeyPress',
-      'onKeyDown',
-      'onKeyUp',
-    ],
-  },
-],
-```
-
-Adjust the list of handler prop names in the handlers array to increase or decrease the coverage surface of this rule in your codebase.
-
-### Succeed
-```jsx
-<div onClick={() => void 0} role="button" />
-<div onClick={() => void 0} role="presentation" />
-<input type="text" onClick={() => void 0} /> // Interactive element does not require role.
-<button onClick={() => void 0} className="foo" /> // button is interactive.
-<div onClick={() => void 0} role="button" aria-hidden /> // This is hidden from screenreader.
-<Input onClick={() => void 0} type="hidden" /> // This is a higher-level DOM component
-```
-
-### Fail
-```jsx
-<li onClick={() => void 0} />
-<div onClick={() => void 0} role="listitem" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-to-interactive-role.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-to-interactive-role.md
deleted file mode 100644
index 8866e11..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-element-to-interactive-role.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# no-noninteractive-element-to-interactive-role
-
-Non-interactive HTML elements indicate _content_ and _containers_ in the user interface. Non-interactive elements include `<main>`, `<area>`, `<h1>` (,`<h2>`, etc), `<img>`, `<li>`, `<ul>` and `<ol>`.
-
-Interactive HTML elements indicate _controls_ in the user interface. Interactive elements include `<a href>`, `<button>`, `<input>`, `<select>`, `<textarea>`.
-
-
-[WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro) should not be used to convert a non-interactive element to an interactive element. Interactive ARIA roles include `button`, `link`, `checkbox`, `menuitem`, `menuitemcheckbox`, `menuitemradio`, `option`, `radio`, `searchbox`, `switch` and `textbox`.
-
-## How do I resolve this error?
-
-### Case: This element should be a control, like a button
-
-Put the control inside the non-interactive container element.
-
-```
-<li>
-  <div
-    role="button"
-    onClick={() => {}}
-    onKeyPress={() => {}}>
-    Save
-  </div>
-</li>
-```
-
-Or wrap the content inside your interactive element.
-
-```
-<div
-  role="button"
-  onClick={() => {}}
-  onKeyPress={() => {}}
-  tabIndex="0">
-  <img src="some/file.png" alt="Save" />
-</div>
-```
-
-### References
-
-1. [WAI-ARIA roles](https://www.w3.org/TR/wai-aria-1.1/#usage_intro)
-1. [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex)
-1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-1. [Mozilla Developer Network - ARIA Techniques](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role#Keyboard_and_focus)
-
-## Rule details
-
-The recommended options for this rule allow several common interactive roles to be applied to a non-interactive element. The options are provided as an object keyed by HTML element name; the value is an array of interactive roles that are allowed on the specified element.
-
-```
-{
-  'no-noninteractive-element-to-interactive-role': [
-    'error',
-    {
-      ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-      ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-      li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
-      table: ['grid'],
-      td: ['gridcell'],
-    },
-  ]
-}
-```
-
-Under the recommended options, the following code is valid. It would be invalid under the strict rules.
-
-```
-<ul role="menu" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-tabindex.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-tabindex.md
deleted file mode 100644
index ee81b98..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-noninteractive-tabindex.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# no-noninteractive-tabindex
-
-Tab key navigation should be limited to elements on the page that can be interacted with. Thus it is not necessary to add a tabindex to items in an unordered list, for example, to make them navigable through assistive technology. These applications already afford page traversal mechanisms based on the HTML of the page. Generally, we should try to reduce the size of the page's tab ring rather than increasing it.
-
-## How do I resolve this error?
-
-### Case: I am using an `<a>` tag. Isn't that interactive?
-
-The `<a>` tag is tricky. Consider the following:
-
-```
-<a>Edit</a>
-<a href="#">Edit</a>
-<a role="button">Edit</a>
-```
-
-The bare `<a>` tag is an _anchor_. It has no semantic AX API mapping in either ARIA or the AXObject model. It's as meaningful as `<div>`, which is to say it has no meaning. An `<a>` tag with an `href` attribute has an inherent role of `link`. An `<a>` tag with an explicit role obtains the designated role. In the example above, this role is `button`.
-
-### Case: I am using "semantic" HTML. Isn't that interactive?
-
-If we take a step back into the field of linguistics for a moment, let's consider what it means for something to be "semantic". Nothing, in and of itself, has meaning. Meaning is constructed through dialogue. A speaker intends a meaning and a listener/observer interprets a meaning. Each participant constructs their own meaning through dialogue. There is no intrinsic or isolated meaning outside of interaction. Thus, we must ask, given that we have a "speaker" who communicates via "semantic" HTML, who is listening/observing?
-
-In our case, the observer is the Accessibility (AX) API. Browsers interpret HTML (inflected at times by ARIA) to construct a meaning (AX Tree) of the page. Whatever the semantic HTML intends has only the force of suggestion to the AX API. Therefore, we have inconsistencies. For example, there is not yet an ARIA role for `text` or `label` and thus no way to change a `<label>` into plain text or a `<span>` into a label via ARIA. `<div>` has an AXObject correpondant `DivRole`, but no such object maps to `<span>`.
-
-What this lint rule endeavors to do is apply the AX API understanding of the semantics of an HTML document back onto your code. The concept of interactivity boils down to whether a user can do something with the indicated or focused component.
-
-Common interactive roles include:
-
-  1. `button`
-  1. `link`
-  1. `checkbox`
-  1. `menuitem`
-  1. `menuitemcheckbox`
-  1. `menuitemradio`
-  1. `option`
-  1. `radio`
-  1. `searchbox`
-  1. `switch`
-  1. `textbox`
-
-Endeavor to limit tabbable elements to those that a user can act upon.
-
-### Case: Shouldn't I add a tabindex so that users can navigate to this item?
-
-It is not necessary to put a tabindex on an `<article>`, for instance or on `<li>` items; assistive technologies provide affordances to users to find and traverse these containers. Most elements that require a tabindex -- `<a href>`, `<button>`, `<input>`, `<textarea>` -- have it already.
-
-Your application might require an exception to this rule in the case of an element that captures incoming tab traversal for a composite widget. In that case, turn off this rule on a per instance basis. This is an uncommon case.
-
-### References
-
-  1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-
-## Rule details
-
-The recommended options for this rule allow `tabIndex` on elements with the noninteractive `tabpanel` role. Adding `tabIndex` to a tabpanel is a recommended practice in some instances.
-
-```javascript
-'jsx-a11y/no-noninteractive-tabindex': [
-  'error',
-  {
-    tags: [],
-    roles: ['tabpanel'],
-  },
-]
-```
-
-### Succeed
-```jsx
-<div />
-<MyButton tabIndex={0} />
-<button />
-<button tabIndex="0" />
-<button tabIndex={0} />
-<div />
-<div tabIndex="-1" />
-<div role="button" tabIndex="0" />
-<div role="article" tabIndex="-1" />
-<article tabIndex="-1" />
-```
-
-### Fail
-```jsx
-<div tabIndex="0" />
-<div role="article" tabIndex="0" />
-<article tabIndex="0" />
-<article tabIndex={0} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-onchange.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-onchange.md
deleted file mode 100644
index b2ea5a0..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-onchange.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# no-onchange
-
-Enforce usage of `onBlur` over/in parallel with `onChange` on select menu elements for accessibility. `onBlur` **should** be used instead of `onChange`, unless absolutely necessary and it causes no negative consequences for keyboard only or screen reader users. `onBlur` is a more declarative action by the user: for instance in a dropdown, using the arrow keys to toggle between options will trigger the `onChange` event in some browsers. Regardless, when a change of context results from an `onBlur` event or an `onChange` event, the user should be notified of the change unless it occurs below the currently focused element.
-
-#### References
-1. [onChange Event Accessibility Issues](http://cita.disability.uiuc.edu/html-best-practices/auto/onchange.php)
-2. [onChange Select Menu](http://www.themaninblue.com/writing/perspective/2004/10/19/)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<select onBlur={updateModel}>
-  <option/>
-</select>
-
-<select>
-  <option onBlur={handleOnBlur} onChange={handleOnChange} />
-</select>
-```
-
-### Fail
-```jsx
-<select onChange={updateModel} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-redundant-roles.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-redundant-roles.md
deleted file mode 100644
index 7e9e9fd..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-redundant-roles.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# no-redundant-roles
-
-Some HTML elements have native semantics that are implemented by the browser. This includes default/implicit ARIA roles. Setting an ARIA role that matches its default/implicit role is redundant since it is already set by the browser.
-
-#### References
-1. [w3](https://www.w3.org/TR/html5/dom.html#aria-role-attribute)
-
-## Rule details
-
-The default options for this rule allow an implicit role of `navigation` to be applied to a `nav` element as is [advised by w3](https://www.w3.org/WAI/GL/wiki/Using_HTML5_nav_element#Example:The_.3Cnav.3E_element). The options are provided as an object keyed by HTML element name; the value is an array of implicit ARIA roles that are allowed on the specified element.
-
-```
-{
-  'jsx-a11y/no-redundant-roles': [
-  'error',
-  {
-    nav: ['navigation'],
-  },
-}
-```
-
-### Succeed
-```jsx
-<div />
-<button role="presentation" />
-<MyComponent role="main" />
-```
-
-### Fail
-```jsx
-<button role="button" />
-<img role="img" src="foo.jpg" />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-static-element-interactions.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-static-element-interactions.md
deleted file mode 100644
index d195c6b..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-static-element-interactions.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# no-static-element-interactions
-
-Static HTML elements do not have semantic meaning. This is clear in the case of `<div>` and `<span>`. It is less so clear in the case of elements that _seem_ semantic, but that do not have a semantic mapping in the accessibility layer. For example `<a>`, `<big>`, `<blockquote>`, `<footer>`, `<picture>`, `<strike>` and `<time>` -- to name a few -- have no semantic layer mapping. They are as void of meaning as `<div>`.
-
-The [WAI-ARIA `role` attribute](https://www.w3.org/TR/wai-aria-1.1/#usage_intro) confers a semantic mapping to an element. The semantic value can then be expressed to a user via assistive technology.
-
-In order to add interactivity such as a mouse or key event listener to a static element, that element must be given a role value as well.
-
-## How do I resolve this error?
-
-### Case: This element acts like a button, link, menuitem, etc.
-
-Indicate the element's role with the `role` attribute:
-
-```jsx
-<div
-  onClick={onClickHandler}
-  onKeyPress={onKeyPressHandler}
-  role="button"
-  tabIndex="0">
-  Save
-</div>
-```
-
-Common interactive roles include:
-
-  1. `button`
-  1. `link`
-  1. `checkbox`
-  1. `menuitem`
-  1. `menuitemcheckbox`
-  1. `menuitemradio`
-  1. `option`
-  1. `radio`
-  1. `searchbox`
-  1. `switch`
-  1. `textbox`
-
-Note: Adding a role to your element does **not** add behavior. When a semantic HTML element like `<button>` is used, then it will also respond to Enter key presses when it has focus. The developer is responsible for providing the expected behavior of an element that the role suggests it would have: focusability and key press support.
-
-### Case: The event handler is only being used to capture bubbled events
-
-If a static element has an event handler for the sole purpose of capturing events from its descendants, you can tell the linter to ignore it by setting `role="presentation"`:
-
-```jsx
-<div
-  onClick={this.handleButtonClick}
-  role="presentation">
-  <button>Save</button>
-  <button>Cancel</button>
-</div>
-```
-
-This `role` has no effect on static elements, but it clarifies your intent.
-
-### References
-
-  1. [WAI-ARIA `role` attribute](https://www.w3.org/TR/wai-aria-1.1/#usage_intro)
-  1. [WAI-ARIA Authoring Practices Guide - Design Patterns and Widgets](https://www.w3.org/TR/wai-aria-practices-1.1/#aria_ex)
-  1. [Fundamental Keyboard Navigation Conventions](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_generalnav)
-  1. [Mozilla Developer Network - ARIA Techniques](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role#Keyboard_and_focus)
-
-## Rule details
-
-You may configure which handler props should be taken into account when applying this rule. The recommended configuration includes the following 6 handlers.
-
-```javascript
-'jsx-a11y/no-static-element-interactions': [
-  'error',
-  {
-    handlers: [
-      'onClick',
-      'onMouseDown',
-      'onMouseUp',
-      'onKeyPress',
-      'onKeyDown',
-      'onKeyUp',
-    ],
-  },
-],
-```
-
-Adjust the list of handler prop names in the handlers array to increase or decrease the coverage surface of this rule in your codebase.
-
-### Succeed
-
-```jsx
-<button onClick={() => {}} className="foo" />
-<div className="foo" onClick={() => {}} role="button" />
-<input type="text" onClick={() => {}} />
-```
-
-### Fail
-
-```jsx
-<div onClick={() => {}} />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-has-required-aria-props.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-has-required-aria-props.md
deleted file mode 100644
index 3d6938f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-has-required-aria-props.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# role-has-required-aria-props
-
-Elements with ARIA roles must have all required attributes for that role.
-
-#### References
-1. [Spec](https://www.w3.org/TR/wai-aria/roles)
-2. [AX_ARIA_03](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_03)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<!-- Good: the checkbox role requires the aria-checked state -->
-<span role="checkbox" aria-checked="false" aria-labelledby="foo" tabindex="0"></span>
-```
-
-### Fail
-
-```jsx
-<!-- Bad: the checkbox role requires the aria-checked state -->
-<span role="checkbox" aria-labelledby="foo" tabindex="0"></span>
-```
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-supports-aria-props.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-supports-aria-props.md
deleted file mode 100644
index c7d5fb0..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/role-supports-aria-props.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# role-supports-aria-props
-
-Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`. Many ARIA attributes (states and properties) can only be used on elements with particular roles. Some elements have implicit roles, such as `<a href="#" />`, which will resolve to `role="link"`.
-
-#### References
-1. [AX_ARIA_10](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_10)
-2. [Supported States & Properties](https://www.w3.org/TR/wai-aria/roles#supportedState)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<!-- Good: the radiogroup role does support the aria-required property -->
-<ul role="radiogroup" aria-required aria-labelledby="foo">
-    <li tabIndex="-1" role="radio" aria-checked="false">Rainbow Trout</li>
-    <li tabIndex="-1" role="radio" aria-checked="false">Brook Trout</li>
-    <li tabIndex="0" role="radio" aria-checked="true">Lake Trout</li>
-</ul>
-```
-
-### Fail
-
-```jsx
-<!-- Bad: the radio role does not support the aria-required property -->
-<ul role="radiogroup" aria-labelledby="foo">
-    <li aria-required tabIndex="-1" role="radio" aria-checked="false">Rainbow Trout</li>
-    <li aria-required tabIndex="-1" role="radio" aria-checked="false">Brook Trout</li>
-    <li aria-required tabIndex="0" role="radio" aria-checked="true">Lake Trout</li>
-</ul>
-```
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/scope.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/scope.md
deleted file mode 100644
index d47a56c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/scope.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# scope
-
-The `scope` scope should be used only on `<th>` elements.
-
-#### References
-1. [axe-core, scope](https://dequeuniversity.com/rules/axe/1.1/scope)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<th scope="col" />
-<th scope={scope} />
-```
-
-### Fail
-
-```jsx
-<div scope />
-```
diff --git a/node_modules/eslint-plugin-jsx-a11y/docs/rules/tabindex-no-positive.md b/node_modules/eslint-plugin-jsx-a11y/docs/rules/tabindex-no-positive.md
deleted file mode 100644
index 3ea9b08..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/docs/rules/tabindex-no-positive.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# tabindex-no-positive
-
-Avoid positive tabIndex property values to synchronize the flow of the page with keyboard tab order.
-
-#### References
-1. [AX_FOCUS_03](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_focus_03)
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-```jsx
-<span tabIndex="0">foo</span>
-<span tabIndex="-1">bar</span>
-<span tabIndex={0}>baz</span>
-```
-
-### Fail
-```jsx
-<span tabIndex="5">foo</span>
-<span tabIndex="3">bar</span>
-<span tabIndex="1">baz</span>
-<span tabIndex="2">never really sure what goes after baz</span>
-```
-
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/index.js b/node_modules/eslint-plugin-jsx-a11y/lib/index.js
deleted file mode 100644
index 4bc37a8..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/index.js
+++ /dev/null
@@ -1,170 +0,0 @@
-"use strict";
-
-/* eslint-disable global-require */
-module.exports = {
-  rules: {
-    'accessible-emoji': require('./rules/accessible-emoji'),
-    'alt-text': require('./rules/alt-text'),
-    'anchor-has-content': require('./rules/anchor-has-content'),
-    'anchor-is-valid': require('./rules/anchor-is-valid'),
-    'aria-activedescendant-has-tabindex': require('./rules/aria-activedescendant-has-tabindex'),
-    'aria-props': require('./rules/aria-props'),
-    'aria-proptypes': require('./rules/aria-proptypes'),
-    'aria-role': require('./rules/aria-role'),
-    'aria-unsupported-elements': require('./rules/aria-unsupported-elements'),
-    'click-events-have-key-events': require('./rules/click-events-have-key-events'),
-    'control-has-associated-label': require('./rules/control-has-associated-label'),
-    'heading-has-content': require('./rules/heading-has-content'),
-    'html-has-lang': require('./rules/html-has-lang'),
-    'iframe-has-title': require('./rules/iframe-has-title'),
-    'img-redundant-alt': require('./rules/img-redundant-alt'),
-    'interactive-supports-focus': require('./rules/interactive-supports-focus'),
-    'label-has-associated-control': require('./rules/label-has-associated-control'),
-    'label-has-for': require('./rules/label-has-for'),
-    lang: require('./rules/lang'),
-    'media-has-caption': require('./rules/media-has-caption'),
-    'mouse-events-have-key-events': require('./rules/mouse-events-have-key-events'),
-    'no-access-key': require('./rules/no-access-key'),
-    'no-autofocus': require('./rules/no-autofocus'),
-    'no-distracting-elements': require('./rules/no-distracting-elements'),
-    'no-interactive-element-to-noninteractive-role': require('./rules/no-interactive-element-to-noninteractive-role'),
-    'no-noninteractive-element-interactions': require('./rules/no-noninteractive-element-interactions'),
-    'no-noninteractive-element-to-interactive-role': require('./rules/no-noninteractive-element-to-interactive-role'),
-    'no-noninteractive-tabindex': require('./rules/no-noninteractive-tabindex'),
-    'no-onchange': require('./rules/no-onchange'),
-    'no-redundant-roles': require('./rules/no-redundant-roles'),
-    'no-static-element-interactions': require('./rules/no-static-element-interactions'),
-    'role-has-required-aria-props': require('./rules/role-has-required-aria-props'),
-    'role-supports-aria-props': require('./rules/role-supports-aria-props'),
-    scope: require('./rules/scope'),
-    'tabindex-no-positive': require('./rules/tabindex-no-positive')
-  },
-  configs: {
-    recommended: {
-      plugins: ['jsx-a11y'],
-      parserOptions: {
-        ecmaFeatures: {
-          jsx: true
-        }
-      },
-      rules: {
-        'jsx-a11y/accessible-emoji': 'error',
-        'jsx-a11y/alt-text': 'error',
-        'jsx-a11y/anchor-has-content': 'error',
-        'jsx-a11y/anchor-is-valid': 'error',
-        'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
-        'jsx-a11y/aria-props': 'error',
-        'jsx-a11y/aria-proptypes': 'error',
-        'jsx-a11y/aria-role': 'error',
-        'jsx-a11y/aria-unsupported-elements': 'error',
-        'jsx-a11y/click-events-have-key-events': 'error',
-        'jsx-a11y/control-has-associated-label': ['off', {
-          ignoreElements: ['audio', 'canvas', 'embed', 'input', 'textarea', 'tr', 'video'],
-          ignoreRoles: ['grid', 'listbox', 'menu', 'menubar', 'radiogroup', 'row', 'tablist', 'toolbar', 'tree', 'treegrid'],
-          includeRoles: ['alert', 'dialog']
-        }],
-        'jsx-a11y/heading-has-content': 'error',
-        'jsx-a11y/html-has-lang': 'error',
-        'jsx-a11y/iframe-has-title': 'error',
-        'jsx-a11y/img-redundant-alt': 'error',
-        'jsx-a11y/interactive-supports-focus': ['error', {
-          tabbable: ['button', 'checkbox', 'link', 'searchbox', 'spinbutton', 'switch', 'textbox']
-        }],
-        'jsx-a11y/label-has-associated-control': 'error',
-        'jsx-a11y/label-has-for': 'off',
-        'jsx-a11y/media-has-caption': 'error',
-        'jsx-a11y/mouse-events-have-key-events': 'error',
-        'jsx-a11y/no-access-key': 'error',
-        'jsx-a11y/no-autofocus': 'error',
-        'jsx-a11y/no-distracting-elements': 'error',
-        'jsx-a11y/no-interactive-element-to-noninteractive-role': ['error', {
-          tr: ['none', 'presentation']
-        }],
-        'jsx-a11y/no-noninteractive-element-interactions': ['error', {
-          handlers: ['onClick', 'onError', 'onLoad', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp'],
-          alert: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
-          body: ['onError', 'onLoad'],
-          dialog: ['onKeyUp', 'onKeyDown', 'onKeyPress'],
-          iframe: ['onError', 'onLoad'],
-          img: ['onError', 'onLoad']
-        }],
-        'jsx-a11y/no-noninteractive-element-to-interactive-role': ['error', {
-          ul: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-          ol: ['listbox', 'menu', 'menubar', 'radiogroup', 'tablist', 'tree', 'treegrid'],
-          li: ['menuitem', 'option', 'row', 'tab', 'treeitem'],
-          table: ['grid'],
-          td: ['gridcell']
-        }],
-        'jsx-a11y/no-noninteractive-tabindex': ['error', {
-          tags: [],
-          roles: ['tabpanel'],
-          allowExpressionValues: true
-        }],
-        'jsx-a11y/no-onchange': 'error',
-        'jsx-a11y/no-redundant-roles': 'error',
-        'jsx-a11y/no-static-element-interactions': ['error', {
-          allowExpressionValues: true,
-          handlers: ['onClick', 'onMouseDown', 'onMouseUp', 'onKeyPress', 'onKeyDown', 'onKeyUp']
-        }],
-        'jsx-a11y/role-has-required-aria-props': 'error',
-        'jsx-a11y/role-supports-aria-props': 'error',
-        'jsx-a11y/scope': 'error',
-        'jsx-a11y/tabindex-no-positive': 'error'
-      }
-    },
-    strict: {
-      plugins: ['jsx-a11y'],
-      parserOptions: {
-        ecmaFeatures: {
-          jsx: true
-        }
-      },
-      rules: {
-        'jsx-a11y/accessible-emoji': 'error',
-        'jsx-a11y/alt-text': 'error',
-        'jsx-a11y/anchor-has-content': 'error',
-        'jsx-a11y/anchor-is-valid': 'error',
-        'jsx-a11y/aria-activedescendant-has-tabindex': 'error',
-        'jsx-a11y/aria-props': 'error',
-        'jsx-a11y/aria-proptypes': 'error',
-        'jsx-a11y/aria-role': 'error',
-        'jsx-a11y/aria-unsupported-elements': 'error',
-        'jsx-a11y/click-events-have-key-events': 'error',
-        'jsx-a11y/control-has-associated-label': ['off', {
-          ignoreElements: ['audio', 'canvas', 'embed', 'input', 'textarea', 'tr', 'video'],
-          ignoreRoles: ['grid', 'listbox', 'menu', 'menubar', 'radiogroup', 'row', 'tablist', 'toolbar', 'tree', 'treegrid'],
-          includeRoles: ['alert', 'dialog']
-        }],
-        'jsx-a11y/heading-has-content': 'error',
-        'jsx-a11y/html-has-lang': 'error',
-        'jsx-a11y/iframe-has-title': 'error',
-        'jsx-a11y/img-redundant-alt': 'error',
-        'jsx-a11y/interactive-supports-focus': ['error', {
-          tabbable: ['button', 'checkbox', 'link', 'progressbar', 'searchbox', 'slider', 'spinbutton', 'switch', 'textbox']
-        }],
-        'jsx-a11y/label-has-for': 'error',
-        'jsx-a11y/label-has-associated-control': 'error',
-        'jsx-a11y/media-has-caption': 'error',
-        'jsx-a11y/mouse-events-have-key-events': 'error',
-        'jsx-a11y/no-access-key': 'error',
-        'jsx-a11y/no-autofocus': 'error',
-        'jsx-a11y/no-distracting-elements': 'error',
-        'jsx-a11y/no-interactive-element-to-noninteractive-role': 'error',
-        'jsx-a11y/no-noninteractive-element-interactions': ['error', {
-          body: ['onError', 'onLoad'],
-          iframe: ['onError', 'onLoad'],
-          img: ['onError', 'onLoad']
-        }],
-        'jsx-a11y/no-noninteractive-element-to-interactive-role': 'error',
-        'jsx-a11y/no-noninteractive-tabindex': 'error',
-        'jsx-a11y/no-onchange': 'error',
-        'jsx-a11y/no-redundant-roles': 'error',
-        'jsx-a11y/no-static-element-interactions': 'error',
-        'jsx-a11y/role-has-required-aria-props': 'error',
-        'jsx-a11y/role-supports-aria-props': 'error',
-        'jsx-a11y/scope': 'error',
-        'jsx-a11y/tabindex-no-positive': 'error'
-      }
-    }
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/accessible-emoji.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/accessible-emoji.js
deleted file mode 100644
index 78dcf69..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/accessible-emoji.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _emojiRegex = _interopRequireDefault(require("emoji-regex"));
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-/**
- * @fileoverview Enforce emojis are wrapped in <span> and provide screenreader access.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Emojis should be wrapped in <span>, have role="img", and have an accessible description with aria-label or aria-labelledby.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/accessible-emoji.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var literalChildValue = node.parent.children.find(function (child) {
-          return child.type === 'Literal' || child.type === 'JSXText';
-        });
-
-        if (literalChildValue && (0, _emojiRegex["default"])().test(literalChildValue.value)) {
-          var elementIsHidden = (0, _isHiddenFromScreenReader["default"])((0, _jsxAstUtils.elementType)(node), node.attributes);
-
-          if (elementIsHidden) {
-            return; // emoji is decorative
-          }
-
-          var rolePropValue = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'role'));
-          var ariaLabelProp = (0, _jsxAstUtils.getProp)(node.attributes, 'aria-label');
-          var arialLabelledByProp = (0, _jsxAstUtils.getProp)(node.attributes, 'aria-labelledby');
-          var hasLabel = ariaLabelProp !== undefined || arialLabelledByProp !== undefined;
-          var isSpan = (0, _jsxAstUtils.elementType)(node) === 'span';
-
-          if (hasLabel === false || rolePropValue !== 'img' || isSpan === false) {
-            context.report({
-              node,
-              message: errorMessage
-            });
-          }
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/alt-text.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/alt-text.js
deleted file mode 100644
index c21627d..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/alt-text.js
+++ /dev/null
@@ -1,210 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _hasAccessibleChild = _interopRequireDefault(require("../util/hasAccessibleChild"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-/**
- * @fileoverview Enforce all elements that require alternative text have it.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var DEFAULT_ELEMENTS = ['img', 'object', 'area', 'input[type="image"]'];
-var schema = (0, _schemas.generateObjSchema)({
-  elements: _schemas.arraySchema,
-  img: _schemas.arraySchema,
-  object: _schemas.arraySchema,
-  area: _schemas.arraySchema,
-  'input[type="image"]': _schemas.arraySchema
-});
-var ruleByElement = {
-  img(context, node) {
-    var nodeType = (0, _jsxAstUtils.elementType)(node);
-    var altProp = (0, _jsxAstUtils.getProp)(node.attributes, 'alt'); // Missing alt prop error.
-
-    if (altProp === undefined) {
-      if ((0, _isPresentationRole["default"])(nodeType, node.attributes)) {
-        context.report({
-          node,
-          message: 'Prefer alt="" over a presentational role. First rule of aria is to not use aria if it can be achieved via native HTML.'
-        });
-        return;
-      }
-
-      context.report({
-        node,
-        message: "".concat(nodeType, " elements must have an alt prop, either with meaningful text, or an empty string for decorative images.")
-      });
-      return;
-    } // Check if alt prop is undefined.
-
-
-    var altValue = (0, _jsxAstUtils.getPropValue)(altProp);
-    var isNullValued = altProp.value === null; // <img alt />
-
-    if (altValue && !isNullValued || altValue === '') {
-      return;
-    } // Undefined alt prop error.
-
-
-    context.report({
-      node,
-      message: "Invalid alt value for ".concat(nodeType, ". Use alt=\"\" for presentational images.")
-    });
-  },
-
-  object(context, node) {
-    var ariaLabelProp = (0, _jsxAstUtils.getProp)(node.attributes, 'aria-label');
-    var arialLabelledByProp = (0, _jsxAstUtils.getProp)(node.attributes, 'aria-labelledby');
-    var hasLabel = ariaLabelProp !== undefined || arialLabelledByProp !== undefined;
-    var titleProp = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'title'));
-    var hasTitleAttr = !!titleProp;
-
-    if (hasLabel || hasTitleAttr || (0, _hasAccessibleChild["default"])(node.parent)) {
-      return;
-    }
-
-    context.report({
-      node,
-      message: 'Embedded <object> elements must have alternative text by providing inner text, aria-label or aria-labelledby props.'
-    });
-  },
-
-  area(context, node) {
-    var ariaLabelPropValue = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'aria-label'));
-    var arialLabelledByPropValue = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'aria-labelledby'));
-    var hasLabel = ariaLabelPropValue !== undefined || arialLabelledByPropValue !== undefined;
-
-    if (hasLabel) {
-      return;
-    }
-
-    var altProp = (0, _jsxAstUtils.getProp)(node.attributes, 'alt');
-
-    if (altProp === undefined) {
-      context.report({
-        node,
-        message: 'Each area of an image map must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.'
-      });
-      return;
-    }
-
-    var altValue = (0, _jsxAstUtils.getPropValue)(altProp);
-    var isNullValued = altProp.value === null; // <area alt />
-
-    if (altValue && !isNullValued || altValue === '') {
-      return;
-    }
-
-    context.report({
-      node,
-      message: 'Each area of an image map must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.'
-    });
-  },
-
-  'input[type="image"]': function inputImage(context, node) {
-    // Only test input[type="image"]
-    var nodeType = (0, _jsxAstUtils.elementType)(node);
-
-    if (nodeType === 'input') {
-      var typePropValue = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'type'));
-
-      if (typePropValue !== 'image') {
-        return;
-      }
-    }
-
-    var ariaLabelPropValue = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'aria-label'));
-    var arialLabelledByPropValue = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'aria-labelledby'));
-    var hasLabel = ariaLabelPropValue !== undefined || arialLabelledByPropValue !== undefined;
-
-    if (hasLabel) {
-      return;
-    }
-
-    var altProp = (0, _jsxAstUtils.getProp)(node.attributes, 'alt');
-
-    if (altProp === undefined) {
-      context.report({
-        node,
-        message: '<input> elements with type="image" must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.'
-      });
-      return;
-    }
-
-    var altValue = (0, _jsxAstUtils.getPropValue)(altProp);
-    var isNullValued = altProp.value === null; // <area alt />
-
-    if (altValue && !isNullValued || altValue === '') {
-      return;
-    }
-
-    context.report({
-      node,
-      message: '<input> elements with type="image" must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop.'
-    });
-  }
-};
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/alt-text.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    var _ref;
-
-    var options = context.options[0] || {}; // Elements to validate for alt text.
-
-    var elementOptions = options.elements || DEFAULT_ELEMENTS; // Get custom components for just the elements that will be tested.
-
-    var customComponents = elementOptions.map(function (element) {
-      return options[element];
-    }).reduce(function (components, customComponentsForElement) {
-      return components.concat(customComponentsForElement || []);
-    }, []);
-    var typesToValidate = new Set((_ref = []).concat.apply(_ref, [customComponents].concat((0, _toConsumableArray2["default"])(elementOptions))).map(function (type) {
-      if (type === 'input[type="image"]') {
-        return 'input';
-      }
-
-      return type;
-    }));
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var nodeType = (0, _jsxAstUtils.elementType)(node);
-
-        if (!typesToValidate.has(nodeType)) {
-          return;
-        }
-
-        var DOMElement = nodeType;
-
-        if (DOMElement === 'input') {
-          DOMElement = 'input[type="image"]';
-        } // Map nodeType to the DOM element if we are running this on a custom component.
-
-
-        if (elementOptions.indexOf(DOMElement) === -1) {
-          DOMElement = elementOptions.find(function (element) {
-            var customComponentsForElement = options[element] || [];
-            return customComponentsForElement.indexOf(nodeType) > -1;
-          });
-        }
-
-        ruleByElement[DOMElement](context, node);
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-has-content.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-has-content.js
deleted file mode 100644
index f67acd1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-has-content.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _hasAccessibleChild = _interopRequireDefault(require("../util/hasAccessibleChild"));
-
-/**
- * @fileoverview Enforce anchor elements to contain accessible content.
- * @author Lisa Ring & Niklas Holmberg
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Anchors must have content and the content must be accessible by a screen reader.';
-var schema = (0, _schemas.generateObjSchema)({
-  components: _schemas.arraySchema
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/anchor-has-content.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var options = context.options[0] || {};
-        var componentOptions = options.components || [];
-        var typeCheck = ['a'].concat(componentOptions);
-        var nodeType = (0, _jsxAstUtils.elementType)(node); // Only check anchor elements and custom types.
-
-        if (typeCheck.indexOf(nodeType) === -1) {
-          return;
-        }
-
-        if ((0, _hasAccessibleChild["default"])(node.parent)) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-is-valid.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-is-valid.js
deleted file mode 100644
index c226e0a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/anchor-is-valid.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Performs validity check on anchor hrefs. Warns when anchors are used as buttons.
- * @author Almero Steyn
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var allAspects = ['noHref', 'invalidHref', 'preferButton'];
-var preferButtonErrorMessage = 'Anchor used as a button. Anchors are primarily expected to navigate. Use the button element instead. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-var noHrefErrorMessage = 'The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-var invalidHrefErrorMessage = 'The href attribute requires a valid value to be accessible. Provide a valid, navigable address as the href value. If you cannot provide a valid href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md';
-var schema = (0, _schemas.generateObjSchema)({
-  components: _schemas.arraySchema,
-  specialLink: _schemas.arraySchema,
-  aspects: (0, _schemas.enumArraySchema)(allAspects, 1)
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/anchor-is-valid.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var attributes = node.attributes;
-        var options = context.options[0] || {};
-        var componentOptions = options.components || [];
-        var typeCheck = ['a'].concat(componentOptions);
-        var nodeType = (0, _jsxAstUtils.elementType)(node); // Only check anchor elements and custom types.
-
-        if (typeCheck.indexOf(nodeType) === -1) {
-          return;
-        } // Set up the rule aspects to check.
-
-
-        var aspects = options.aspects || allAspects; // Create active aspect flag object. Failing checks will only report
-        // if the related flag is set to true.
-
-        var activeAspects = {};
-        allAspects.forEach(function (aspect) {
-          activeAspects[aspect] = aspects.indexOf(aspect) !== -1;
-        });
-        var propOptions = options.specialLink || [];
-        var propsToValidate = ['href'].concat(propOptions);
-        var values = propsToValidate.map(function (prop) {
-          return (0, _jsxAstUtils.getProp)(node.attributes, prop);
-        }).map(function (prop) {
-          return (0, _jsxAstUtils.getPropValue)(prop);
-        }); // Checks if any actual or custom href prop is provided.
-
-        var hasAnyHref = values.filter(function (value) {
-          return value === undefined || value === null;
-        }).length !== values.length; // Need to check for spread operator as props can be spread onto the element
-        // leading to an incorrect validation error.
-
-        var hasSpreadOperator = attributes.filter(function (prop) {
-          return prop.type === 'JSXSpreadAttribute';
-        }).length > 0;
-        var onClick = (0, _jsxAstUtils.getProp)(attributes, 'onClick'); // When there is no href at all, specific scenarios apply:
-
-        if (!hasAnyHref) {
-          // If no spread operator is found and no onClick event is present
-          // it is a link without href.
-          if (!hasSpreadOperator && activeAspects.noHref && (!onClick || onClick && !activeAspects.preferButton)) {
-            context.report({
-              node,
-              message: noHrefErrorMessage
-            });
-          } // If no spread operator is found but an onClick is preset it should be a button.
-
-
-          if (!hasSpreadOperator && onClick && activeAspects.preferButton) {
-            context.report({
-              node,
-              message: preferButtonErrorMessage
-            });
-          }
-
-          return;
-        } // Hrefs have been found, now check for validity.
-
-
-        var invalidHrefValues = values.filter(function (value) {
-          return value !== undefined && value !== null;
-        }).filter(function (value) {
-          return typeof value === 'string' && (!value.length || value === '#' || /^\W*?javascript:/.test(value));
-        });
-
-        if (invalidHrefValues.length !== 0) {
-          // If an onClick is found it should be a button, otherwise it is an invalid link.
-          if (onClick && activeAspects.preferButton) {
-            context.report({
-              node,
-              message: preferButtonErrorMessage
-            });
-          } else if (activeAspects.invalidHref) {
-            context.report({
-              node,
-              message: invalidHrefErrorMessage
-            });
-          }
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-activedescendant-has-tabindex.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-activedescendant-has-tabindex.js
deleted file mode 100644
index 11e51e9..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-activedescendant-has-tabindex.js
+++ /dev/null
@@ -1,70 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _getTabIndex = _interopRequireDefault(require("../util/getTabIndex"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-/**
- * @fileoverview Enforce elements with aria-activedescendant are tabbable.
- * @author Jesse Beach <@jessebeach>
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'An element that manages focus with `aria-activedescendant` must be tabbable';
-var schema = (0, _schemas.generateObjSchema)();
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/aria-activedescendant-has-tabindex.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var attributes = node.attributes;
-
-        if ((0, _jsxAstUtils.getProp)(attributes, 'aria-activedescendant') === undefined) {
-          return;
-        }
-
-        var type = (0, _jsxAstUtils.elementType)(node); // Do not test higher level JSX components, as we do not know what
-        // low-level DOM element this maps to.
-
-        if (domElements.indexOf(type) === -1) {
-          return;
-        }
-
-        var tabIndex = (0, _getTabIndex["default"])((0, _jsxAstUtils.getProp)(attributes, 'tabIndex')); // If this is an interactive element, tabIndex must be either left
-        // unspecified allowing the inherent tabIndex to obtain or it must be
-        // zero (allowing for positive, even though that is not ideal). It cannot
-        // be given a negative value.
-
-        if ((0, _isInteractiveElement["default"])(type, attributes) && (tabIndex === undefined || tabIndex >= 0)) {
-          return;
-        }
-
-        if (tabIndex >= 0) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-props.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-props.js
deleted file mode 100644
index c59d094..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-props.js
+++ /dev/null
@@ -1,64 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _getSuggestion = _interopRequireDefault(require("../util/getSuggestion"));
-
-/**
- * @fileoverview Enforce all aria-* properties are valid.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var ariaAttributes = (0, _toConsumableArray2["default"])(_ariaQuery.aria.keys());
-
-var errorMessage = function errorMessage(name) {
-  var suggestions = (0, _getSuggestion["default"])(name, ariaAttributes);
-  var message = "".concat(name, ": This attribute is an invalid ARIA attribute.");
-
-  if (suggestions.length > 0) {
-    return "".concat(message, " Did you mean to use ").concat(suggestions, "?");
-  }
-
-  return message;
-};
-
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/aria-props.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var name = (0, _jsxAstUtils.propName)(attribute);
-        var normalizedName = name.toLowerCase(); // `aria` needs to be prefix of property.
-
-        if (normalizedName.indexOf('aria-') !== 0) {
-          return;
-        }
-
-        var isValid = ariaAttributes.indexOf(normalizedName) > -1;
-
-        if (isValid === false) {
-          context.report({
-            node: attribute,
-            message: errorMessage(name)
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-proptypes.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-proptypes.js
deleted file mode 100644
index a8ad261..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-proptypes.js
+++ /dev/null
@@ -1,124 +0,0 @@
-"use strict";
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce ARIA state and property values are valid.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(name, type, permittedValues) {
-  switch (type) {
-    case 'tristate':
-      return "The value for ".concat(name, " must be a boolean or the string \"mixed\".");
-
-    case 'token':
-      return "The value for ".concat(name, " must be a single token from the following: ").concat(permittedValues, ".");
-
-    case 'tokenlist':
-      return "The value for ".concat(name, " must be a list of one or more tokens from the following: ").concat(permittedValues, ".");
-
-    case 'idlist':
-      return "The value for ".concat(name, " must be a list of strings that represent DOM element IDs (idlist)");
-
-    case 'id':
-      return "The value for ".concat(name, " must be a string that represents a DOM element ID");
-
-    case 'boolean':
-    case 'string':
-    case 'integer':
-    case 'number':
-    default:
-      return "The value for ".concat(name, " must be a ").concat(type, ".");
-  }
-};
-
-var validityCheck = function validityCheck(value, expectedType, permittedValues) {
-  switch (expectedType) {
-    case 'boolean':
-      return typeof value === 'boolean';
-
-    case 'string':
-    case 'id':
-      return typeof value === 'string';
-
-    case 'tristate':
-      return typeof value === 'boolean' || value === 'mixed';
-
-    case 'integer':
-    case 'number':
-      // Booleans resolve to 0/1 values so hard check that it's not first.
-      // eslint-disable-next-line no-restricted-globals
-      return typeof value !== 'boolean' && isNaN(Number(value)) === false;
-
-    case 'token':
-      return permittedValues.indexOf(typeof value === 'string' ? value.toLowerCase() : value) > -1;
-
-    case 'idlist':
-      return typeof value === 'string' && value.split(' ').every(function (token) {
-        return validityCheck(token, 'id', []);
-      });
-
-    case 'tokenlist':
-      return typeof value === 'string' && value.split(' ').every(function (token) {
-        return permittedValues.indexOf(token.toLowerCase()) > -1;
-      });
-
-    default:
-      return false;
-  }
-};
-
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  validityCheck,
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/aria-proptypes.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var name = (0, _jsxAstUtils.propName)(attribute);
-        var normalizedName = name.toLowerCase(); // Not a valid aria-* state or property.
-
-        if (normalizedName.indexOf('aria-') !== 0 || _ariaQuery.aria.get(normalizedName) === undefined) {
-          return;
-        } // Ignore the attribute if its value is null or undefined.
-
-
-        if ((0, _jsxAstUtils.getPropValue)(attribute) == null) return;
-        var value = (0, _jsxAstUtils.getLiteralPropValue)(attribute); // Ignore the attribute if its value is not a literal.
-
-        if (value === null) {
-          return;
-        } // These are the attributes of the property/state to check against.
-
-
-        var attributes = _ariaQuery.aria.get(normalizedName);
-
-        var permittedType = attributes.type;
-        var allowUndefined = attributes.allowUndefined || false;
-        var permittedValues = attributes.values || [];
-        var isValid = validityCheck(value, permittedType, permittedValues) || allowUndefined && value === undefined;
-
-        if (isValid) {
-          return;
-        }
-
-        context.report({
-          node: attribute,
-          message: errorMessage(name, permittedType, permittedValues)
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-role.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-role.js
deleted file mode 100644
index 76719ad..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-role.js
+++ /dev/null
@@ -1,84 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce aria role attribute is valid.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Elements with ARIA roles must use a valid, non-abstract ARIA role.';
-var schema = (0, _schemas.generateObjSchema)({
-  ignoreNonDOM: {
-    type: 'boolean',
-    "default": false
-  }
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/aria-role.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        // Determine if ignoreNonDOM is set to true
-        // If true, then do not run rule.
-        var options = context.options[0] || {};
-        var ignoreNonDOM = !!options.ignoreNonDOM;
-
-        if (ignoreNonDOM) {
-          var type = (0, _jsxAstUtils.elementType)(attribute.parent);
-
-          if (!_ariaQuery.dom.get(type)) {
-            return;
-          }
-        } // Get prop name
-
-
-        var name = (0, _jsxAstUtils.propName)(attribute).toUpperCase();
-
-        if (name !== 'ROLE') {
-          return;
-        }
-
-        var value = (0, _jsxAstUtils.getLiteralPropValue)(attribute); // If value is undefined, then the role attribute will be dropped in the DOM.
-        // If value is null, then getLiteralAttributeValue is telling us that the
-        // value isn't in the form of a literal.
-
-        if (value === undefined || value === null) {
-          return;
-        }
-
-        var values = String(value).split(' ');
-        var validRoles = (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys()).filter(function (role) {
-          return _ariaQuery.roles.get(role)["abstract"] === false;
-        });
-        var isValid = values.every(function (val) {
-          return validRoles.indexOf(val) > -1;
-        });
-
-        if (isValid === true) {
-          return;
-        }
-
-        context.report({
-          node: attribute,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-unsupported-elements.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-unsupported-elements.js
deleted file mode 100644
index ad6a438..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/aria-unsupported-elements.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce that elements that do not support ARIA roles,
- *  states and properties do not have those attributes.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(invalidProp) {
-  return "This element does not support ARIA roles, states and properties. Try removing the prop '".concat(invalidProp, "'.");
-};
-
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/aria-unsupported-elements.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var nodeType = (0, _jsxAstUtils.elementType)(node);
-        var nodeAttrs = _ariaQuery.dom.get(nodeType) || {};
-        var _nodeAttrs$reserved = nodeAttrs.reserved,
-            isReservedNodeType = _nodeAttrs$reserved === void 0 ? false : _nodeAttrs$reserved; // If it's not reserved, then it can have aria-* roles, states, and properties
-
-        if (isReservedNodeType === false) {
-          return;
-        }
-
-        var invalidAttributes = (0, _toConsumableArray2["default"])(_ariaQuery.aria.keys()).concat('role');
-        node.attributes.forEach(function (prop) {
-          if (prop.type === 'JSXSpreadAttribute') {
-            return;
-          }
-
-          var name = (0, _jsxAstUtils.propName)(prop).toLowerCase();
-
-          if (invalidAttributes.indexOf(name) > -1) {
-            context.report({
-              node,
-              message: errorMessage(name)
-            });
-          }
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events.js
deleted file mode 100644
index d80d930..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/click-events-have-key-events.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _schemas = require("../util/schemas");
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-/**
- * @fileoverview Enforce a clickable non-interactive element has at least 1 keyboard event listener.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Visible, non-interactive elements with click handlers must have at least one keyboard listener.';
-var schema = (0, _schemas.generateObjSchema)();
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/click-events-have-key-events.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var props = node.attributes;
-
-        if ((0, _jsxAstUtils.getProp)(props, 'onclick') === undefined) {
-          return;
-        }
-
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var requiredProps = ['onkeydown', 'onkeyup', 'onkeypress'];
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        }
-
-        if ((0, _isHiddenFromScreenReader["default"])(type, props) || (0, _isPresentationRole["default"])(type, props)) {
-          return;
-        }
-
-        if ((0, _isInteractiveElement["default"])(type, props)) {
-          return;
-        }
-
-        if ((0, _jsxAstUtils.hasAnyProp)(props, requiredProps)) {
-          return;
-        } // Visible, non-interactive elements with click handlers require one keyboard event listener.
-
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label.js
deleted file mode 100644
index 6afa79e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/control-has-associated-label.js
+++ /dev/null
@@ -1,101 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _schemas = require("../util/schemas");
-
-var _isDOMElement = _interopRequireDefault(require("../util/isDOMElement"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-var _mayHaveAccessibleLabel = _interopRequireDefault(require("../util/mayHaveAccessibleLabel"));
-
-/**
- * @fileoverview Enforce controls are associated with a text label.
- * @author Jesse Beach
- *
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'A control must be associated with a text label.';
-var ignoreList = ['link'];
-var schema = (0, _schemas.generateObjSchema)({
-  labelAttributes: _schemas.arraySchema,
-  controlComponents: _schemas.arraySchema,
-  ignoreElements: _schemas.arraySchema,
-  ignoreRoles: _schemas.arraySchema,
-  depth: {
-    description: 'JSX tree depth limit to check for accessible label',
-    type: 'integer',
-    minimum: 0
-  }
-});
-module.exports = {
-  meta: {
-    docs: {},
-    schema: [schema]
-  },
-  create: function create(context) {
-    var options = context.options[0] || {};
-    var _options$labelAttribu = options.labelAttributes,
-        labelAttributes = _options$labelAttribu === void 0 ? [] : _options$labelAttribu,
-        _options$controlCompo = options.controlComponents,
-        controlComponents = _options$controlCompo === void 0 ? [] : _options$controlCompo,
-        _options$ignoreElemen = options.ignoreElements,
-        ignoreElements = _options$ignoreElemen === void 0 ? [] : _options$ignoreElemen,
-        _options$ignoreRoles = options.ignoreRoles,
-        ignoreRoles = _options$ignoreRoles === void 0 ? [] : _options$ignoreRoles;
-    var newIgnoreElements = new Set([].concat((0, _toConsumableArray2["default"])(ignoreElements), ignoreList));
-
-    var rule = function rule(node) {
-      var tag = (0, _jsxAstUtils.elementType)(node.openingElement);
-      var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(node.openingElement.attributes, 'role')); // Ignore interactive elements that might get their label from a source
-      // that cannot be discerned from static analysis, like
-      // <label><input />Save</label>
-
-      if (newIgnoreElements.has(tag)) {
-        return;
-      } // Ignore roles that are "interactive" but should not require a label.
-
-
-      if ((0, _arrayIncludes["default"])(ignoreRoles, role)) {
-        return;
-      }
-
-      var props = node.openingElement.attributes;
-      var nodeIsDOMElement = (0, _isDOMElement["default"])(tag);
-      var nodeIsInteractiveElement = (0, _isInteractiveElement["default"])(tag, props);
-      var nodeIsInteractiveRole = (0, _isInteractiveRole["default"])(tag, props);
-      var nodeIsControlComponent = controlComponents.indexOf(tag) > -1;
-      var hasAccessibleLabel = true;
-
-      if (nodeIsInteractiveElement || nodeIsDOMElement && nodeIsInteractiveRole || nodeIsControlComponent) {
-        // Prevent crazy recursion.
-        var recursionDepth = Math.min(options.depth === undefined ? 2 : options.depth, 25);
-        hasAccessibleLabel = (0, _mayHaveAccessibleLabel["default"])(node, recursionDepth, labelAttributes);
-      }
-
-      if (!hasAccessibleLabel) {
-        context.report({
-          node: node.openingElement,
-          message: errorMessage
-        });
-      }
-    }; // Create visitor selectors.
-
-
-    return {
-      JSXElement: rule
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/heading-has-content.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/heading-has-content.js
deleted file mode 100644
index b7c6cbf..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/heading-has-content.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _hasAccessibleChild = _interopRequireDefault(require("../util/hasAccessibleChild"));
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-/**
- * @fileoverview Enforce heading (h1, h2, etc) elements contain accessible content.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Headings must have content and the content must be accessible by a screen reader.';
-var headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
-var schema = (0, _schemas.generateObjSchema)({
-  components: _schemas.arraySchema
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/heading-has-content.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var options = context.options[0] || {};
-        var componentOptions = options.components || [];
-        var typeCheck = headings.concat(componentOptions);
-        var nodeType = (0, _jsxAstUtils.elementType)(node); // Only check 'h*' elements and custom types.
-
-        if (typeCheck.indexOf(nodeType) === -1) {
-          return;
-        }
-
-        if ((0, _hasAccessibleChild["default"])(node.parent)) {
-          return;
-        }
-
-        if ((0, _isHiddenFromScreenReader["default"])(nodeType, node.attributes)) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/html-has-lang.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/html-has-lang.js
deleted file mode 100644
index 0ac48cb..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/html-has-lang.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce html element has lang prop.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = '<html> elements must have the lang prop.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/html-has-lang.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var type = (0, _jsxAstUtils.elementType)(node);
-
-        if (type && type !== 'html') {
-          return;
-        }
-
-        var lang = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'lang'));
-
-        if (lang) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/iframe-has-title.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/iframe-has-title.js
deleted file mode 100644
index 7e65b5a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/iframe-has-title.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce iframe elements have a title attribute.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = '<iframe> elements must have a unique title property.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/iframe-has-title.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var type = (0, _jsxAstUtils.elementType)(node);
-
-        if (type && type !== 'iframe') {
-          return;
-        }
-
-        var title = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'title'));
-
-        if (title && typeof title === 'string') {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/img-redundant-alt.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/img-redundant-alt.js
deleted file mode 100644
index 559a7fa..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/img-redundant-alt.js
+++ /dev/null
@@ -1,70 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-/**
- * @fileoverview Enforce img alt attribute does not have the word image, picture, or photo.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var REDUNDANT_WORDS = ['image', 'photo', 'picture'];
-var errorMessage = 'Redundant alt attribute. Screen-readers already announce `img` tags as an image. You don’t need to use the words `image`, `photo,` or `picture` (or any specified custom words) in the alt prop.';
-var schema = (0, _schemas.generateObjSchema)({
-  components: _schemas.arraySchema,
-  words: _schemas.arraySchema
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/img-redundant-alt.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var options = context.options[0] || {};
-        var componentOptions = options.components || [];
-        var typesToValidate = ['img'].concat(componentOptions);
-        var nodeType = (0, _jsxAstUtils.elementType)(node); // Only check 'label' elements and custom types.
-
-        if (typesToValidate.indexOf(nodeType) === -1) {
-          return;
-        }
-
-        var altProp = (0, _jsxAstUtils.getProp)(node.attributes, 'alt'); // Return if alt prop is not present.
-
-        if (altProp === undefined) {
-          return;
-        }
-
-        var value = (0, _jsxAstUtils.getLiteralPropValue)(altProp);
-        var isVisible = (0, _isHiddenFromScreenReader["default"])(nodeType, node.attributes) === false;
-        var _options$words = options.words,
-            words = _options$words === void 0 ? [] : _options$words;
-        var redundantWords = REDUNDANT_WORDS.concat(words);
-
-        if (typeof value === 'string' && isVisible) {
-          var hasRedundancy = redundantWords.some(function (word) {
-            return Boolean(value.match(new RegExp("(?!{)\\b".concat(word, "\\b(?!})"), 'i')));
-          });
-
-          if (hasRedundancy === true) {
-            context.report({
-              node,
-              message: errorMessage
-            });
-          }
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/interactive-supports-focus.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/interactive-supports-focus.js
deleted file mode 100644
index 7817447..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/interactive-supports-focus.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _schemas = require("../util/schemas");
-
-var _isDisabledElement = _interopRequireDefault(require("../util/isDisabledElement"));
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-var _isNonInteractiveElement = _interopRequireDefault(require("../util/isNonInteractiveElement"));
-
-var _isNonInteractiveRole = _interopRequireDefault(require("../util/isNonInteractiveRole"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-var _getTabIndex = _interopRequireDefault(require("../util/getTabIndex"));
-
-/**
- * @fileoverview Enforce that elements with onClick handlers must be tabbable.
- * @author Ethan Cohen
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var schema = (0, _schemas.generateObjSchema)({
-  tabbable: (0, _schemas.enumArraySchema)((0, _toConsumableArray2["default"])(_ariaQuery.roles.keys()).filter(function (name) {
-    return !_ariaQuery.roles.get(name)["abstract"];
-  }).filter(function (name) {
-    return _ariaQuery.roles.get(name).superClass.some(function (klasses) {
-      return (0, _arrayIncludes["default"])(klasses, 'widget');
-    });
-  }))
-});
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-var interactiveProps = [].concat((0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.mouse), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.keyboard));
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/interactive-supports-focus.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var tabbable = context.options && context.options[0] && context.options[0].tabbable || [];
-        var attributes = node.attributes;
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var hasInteractiveProps = (0, _jsxAstUtils.hasAnyProp)(attributes, interactiveProps);
-        var hasTabindex = (0, _getTabIndex["default"])((0, _jsxAstUtils.getProp)(attributes, 'tabIndex')) !== undefined;
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        }
-
-        if (!hasInteractiveProps || (0, _isDisabledElement["default"])(attributes) || (0, _isHiddenFromScreenReader["default"])(type, attributes) || (0, _isPresentationRole["default"])(type, attributes)) {
-          // Presentation is an intentional signal from the author that this
-          // element is not meant to be perceivable. For example, a click screen
-          // to close a dialog .
-          return;
-        }
-
-        if (hasInteractiveProps && (0, _isInteractiveRole["default"])(type, attributes) && !(0, _isInteractiveElement["default"])(type, attributes) && !(0, _isNonInteractiveElement["default"])(type, attributes) && !(0, _isNonInteractiveRole["default"])(type, attributes) && !hasTabindex) {
-          var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role'));
-
-          if ((0, _arrayIncludes["default"])(tabbable, role)) {
-            // Always tabbable, tabIndex = 0
-            context.report({
-              node,
-              message: "Elements with the '".concat(role, "' interactive role must be tabbable.")
-            });
-          } else {
-            // Focusable, tabIndex = -1 or 0
-            context.report({
-              node,
-              message: "Elements with the '".concat(role, "' interactive role must be focusable.")
-            });
-          }
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-associated-control.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-associated-control.js
deleted file mode 100644
index edf91c8..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-associated-control.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _mayContainChildComponent = _interopRequireDefault(require("../util/mayContainChildComponent"));
-
-var _mayHaveAccessibleLabel = _interopRequireDefault(require("../util/mayHaveAccessibleLabel"));
-
-/**
- * @fileoverview Enforce label tags have an associated control.
- * @author Jesse Beach
- *
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'A form label must be associated with a control.';
-var schema = (0, _schemas.generateObjSchema)({
-  labelComponents: _schemas.arraySchema,
-  labelAttributes: _schemas.arraySchema,
-  controlComponents: _schemas.arraySchema,
-  assert: {
-    description: 'Assert that the label has htmlFor, a nested label, both or either',
-    type: 'string',
-    "enum": ['htmlFor', 'nesting', 'both', 'either']
-  },
-  depth: {
-    description: 'JSX tree depth limit to check for accessible label',
-    type: 'integer',
-    minimum: 0
-  }
-});
-
-var validateId = function validateId(node) {
-  var htmlForAttr = (0, _jsxAstUtils.getProp)(node.attributes, 'htmlFor');
-  var htmlForValue = (0, _jsxAstUtils.getPropValue)(htmlForAttr);
-  return htmlForAttr !== false && !!htmlForValue;
-};
-
-module.exports = {
-  meta: {
-    docs: {},
-    schema: [schema]
-  },
-  create: function create(context) {
-    var options = context.options[0] || {};
-    var labelComponents = options.labelComponents || [];
-    var assertType = options.assert || 'either';
-    var componentNames = ['label'].concat(labelComponents);
-
-    var rule = function rule(node) {
-      if (componentNames.indexOf((0, _jsxAstUtils.elementType)(node.openingElement)) === -1) {
-        return;
-      }
-
-      var controlComponents = ['input', 'select', 'textarea'].concat(options.controlComponents || []); // Prevent crazy recursion.
-
-      var recursionDepth = Math.min(options.depth === undefined ? 2 : options.depth, 25);
-      var hasLabelId = validateId(node.openingElement); // Check for multiple control components.
-
-      var hasNestedControl = controlComponents.some(function (name) {
-        return (0, _mayContainChildComponent["default"])(node, name, recursionDepth);
-      });
-      var hasAccessibleLabel = (0, _mayHaveAccessibleLabel["default"])(node, recursionDepth, options.labelAttributes);
-
-      if (hasAccessibleLabel) {
-        switch (assertType) {
-          case 'htmlFor':
-            if (hasLabelId) {
-              return;
-            }
-
-            break;
-
-          case 'nesting':
-            if (hasNestedControl) {
-              return;
-            }
-
-            break;
-
-          case 'both':
-            if (hasLabelId && hasNestedControl) {
-              return;
-            }
-
-            break;
-
-          case 'either':
-            if (hasLabelId || hasNestedControl) {
-              return;
-            }
-
-            break;
-
-          default:
-            break;
-        }
-      } // htmlFor case
-
-
-      context.report({
-        node: node.openingElement,
-        message: errorMessage
-      });
-    }; // Create visitor selectors.
-
-
-    return {
-      JSXElement: rule
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-for.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-for.js
deleted file mode 100644
index baaece1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/label-has-for.js
+++ /dev/null
@@ -1,153 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _hasAccessibleChild = _interopRequireDefault(require("../util/hasAccessibleChild"));
-
-/**
- * @fileoverview Enforce label tags have htmlFor attribute.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var enumValues = ['nesting', 'id'];
-var schema = {
-  type: 'object',
-  properties: {
-    components: _schemas.arraySchema,
-    required: {
-      oneOf: [{
-        type: 'string',
-        "enum": enumValues
-      }, (0, _schemas.generateObjSchema)({
-        some: (0, _schemas.enumArraySchema)(enumValues)
-      }, ['some']), (0, _schemas.generateObjSchema)({
-        every: (0, _schemas.enumArraySchema)(enumValues)
-      }, ['every'])]
-    },
-    allowChildren: {
-      type: 'boolean'
-    }
-  }
-}; // Breadth-first search, assuming that HTML for forms is shallow.
-
-function validateNesting(node) {
-  var queue = (0, _toConsumableArray2["default"])(node.parent.children);
-  var child;
-  var opener;
-
-  while (queue.length) {
-    child = queue.shift();
-    opener = child.openingElement;
-
-    if (child.type === 'JSXElement' && opener && (opener.name.name === 'input' || opener.name.name === 'textarea' || opener.name.name === 'select')) {
-      return true;
-    }
-
-    if (child.children) {
-      queue = queue.concat(child.children);
-    }
-  }
-
-  return false;
-}
-
-var validateId = function validateId(node) {
-  var htmlForAttr = (0, _jsxAstUtils.getProp)(node.attributes, 'htmlFor');
-  var htmlForValue = (0, _jsxAstUtils.getPropValue)(htmlForAttr);
-  return htmlForAttr !== false && !!htmlForValue;
-};
-
-var validate = function validate(node, required, allowChildren) {
-  if (allowChildren === true) {
-    return (0, _hasAccessibleChild["default"])(node.parent);
-  }
-
-  if (required === 'nesting') {
-    return validateNesting(node);
-  }
-
-  return validateId(node);
-};
-
-var getValidityStatus = function getValidityStatus(node, required, allowChildren) {
-  if (Array.isArray(required.some)) {
-    var _isValid = required.some.some(function (rule) {
-      return validate(node, rule, allowChildren);
-    });
-
-    var _message = !_isValid ? "Form label must have ANY of the following types of associated control: ".concat(required.some.join(', ')) : null;
-
-    return {
-      isValid: _isValid,
-      message: _message
-    };
-  }
-
-  if (Array.isArray(required.every)) {
-    var _isValid2 = required.every.every(function (rule) {
-      return validate(node, rule, allowChildren);
-    });
-
-    var _message2 = !_isValid2 ? "Form label must have ALL of the following types of associated control: ".concat(required.every.join(', ')) : null;
-
-    return {
-      isValid: _isValid2,
-      message: _message2
-    };
-  }
-
-  var isValid = validate(node, required, allowChildren);
-  var message = !isValid ? "Form label must have the following type of associated control: ".concat(required) : null;
-  return {
-    isValid,
-    message
-  };
-};
-
-module.exports = {
-  meta: {
-    deprecated: true,
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/label-has-for.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var options = context.options[0] || {};
-        var componentOptions = options.components || [];
-        var typesToValidate = ['label'].concat(componentOptions);
-        var nodeType = (0, _jsxAstUtils.elementType)(node); // Only check 'label' elements and custom types.
-
-        if (typesToValidate.indexOf(nodeType) === -1) {
-          return;
-        }
-
-        var required = options.required || {
-          every: ['nesting', 'id']
-        };
-        var allowChildren = options.allowChildren || false;
-
-        var _getValidityStatus = getValidityStatus(node, required, allowChildren),
-            isValid = _getValidityStatus.isValid,
-            message = _getValidityStatus.message;
-
-        if (!isValid) {
-          context.report({
-            node,
-            message
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/lang.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/lang.js
deleted file mode 100644
index d4d28ab..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/lang.js
+++ /dev/null
@@ -1,72 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _ISO = _interopRequireDefault(require("../util/attributes/ISO.json"));
-
-/**
- * @fileoverview Enforce lang attribute has a valid value.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'lang attribute must have a valid value.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/lang.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(node) {
-        var name = (0, _jsxAstUtils.propName)(node);
-
-        if (name && name.toUpperCase() !== 'LANG') {
-          return;
-        }
-
-        var parent = node.parent;
-        var type = (0, _jsxAstUtils.elementType)(parent);
-
-        if (type && type !== 'html') {
-          return;
-        }
-
-        var value = (0, _jsxAstUtils.getLiteralPropValue)(node); // Don't check identifiers
-
-        if (value === null) {
-          return;
-        }
-
-        if (value === undefined) {
-          context.report({
-            node,
-            message: errorMessage
-          });
-          return;
-        }
-
-        var hyphen = value.indexOf('-');
-        var lang = hyphen > -1 ? value.substring(0, hyphen) : value;
-        var country = hyphen > -1 ? value.substring(3) : undefined;
-
-        if (_ISO["default"].languages.indexOf(lang) > -1 && (country === undefined || _ISO["default"].countries.indexOf(country) > -1)) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/media-has-caption.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/media-has-caption.js
deleted file mode 100644
index 2e7f794..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/media-has-caption.js
+++ /dev/null
@@ -1,98 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview <audio> and <video> elements must have a <track> for captions.
- * @author Ethan Cohen
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Media elements such as <audio> and <video> must have a <track> for captions.';
-var MEDIA_TYPES = ['audio', 'video'];
-var schema = (0, _schemas.generateObjSchema)({
-  audio: _schemas.arraySchema,
-  video: _schemas.arraySchema,
-  track: _schemas.arraySchema
-});
-
-var isMediaType = function isMediaType(context, type) {
-  var options = context.options[0] || {};
-  return MEDIA_TYPES.map(function (mediaType) {
-    return options[mediaType];
-  }).reduce(function (types, customComponent) {
-    return types.concat(customComponent);
-  }, MEDIA_TYPES).some(function (typeToCheck) {
-    return typeToCheck === type;
-  });
-};
-
-var isTrackType = function isTrackType(context, type) {
-  var options = context.options[0] || {};
-  return ['track'].concat(options.track || []).some(function (typeToCheck) {
-    return typeToCheck === type;
-  });
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/media-has-caption.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXElement: function JSXElement(node) {
-        var element = node.openingElement;
-        var type = (0, _jsxAstUtils.elementType)(element);
-
-        if (!isMediaType(context, type)) {
-          return;
-        }
-
-        var mutedProp = (0, _jsxAstUtils.getProp)(element.attributes, 'muted');
-        var mutedPropVal = (0, _jsxAstUtils.getLiteralPropValue)(mutedProp);
-
-        if (mutedPropVal === true) {
-          return;
-        } // $FlowFixMe https://github.com/facebook/flow/issues/1414
-
-
-        var trackChildren = node.children.filter(function (child) {
-          if (child.type !== 'JSXElement') {
-            return false;
-          } // $FlowFixMe https://github.com/facebook/flow/issues/1414
-
-
-          return isTrackType(context, (0, _jsxAstUtils.elementType)(child.openingElement));
-        });
-
-        if (trackChildren.length === 0) {
-          context.report({
-            node: element,
-            message: errorMessage
-          });
-          return;
-        }
-
-        var hasCaption = trackChildren.some(function (track) {
-          var kindProp = (0, _jsxAstUtils.getProp)(track.openingElement.attributes, 'kind');
-          var kindPropValue = (0, _jsxAstUtils.getLiteralPropValue)(kindProp) || '';
-          return kindPropValue.toLowerCase() === 'captions';
-        });
-
-        if (!hasCaption) {
-          context.report({
-            node: element,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/mouse-events-have-key-events.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/mouse-events-have-key-events.js
deleted file mode 100644
index 2ebe6c5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/mouse-events-have-key-events.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce onmouseover/onmouseout are
- *  accompanied by onfocus/onblur.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var mouseOverErrorMessage = 'onMouseOver must be accompanied by onFocus for accessibility.';
-var mouseOutErrorMessage = 'onMouseOut must be accompanied by onBlur for accessibility.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/mouse-events-have-key-events.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var attributes = node.attributes; // Check onmouseover / onfocus pairing.
-
-        var onMouseOver = (0, _jsxAstUtils.getProp)(attributes, 'onMouseOver');
-        var onMouseOverValue = (0, _jsxAstUtils.getPropValue)(onMouseOver);
-
-        if (onMouseOver && onMouseOverValue != null) {
-          var hasOnFocus = (0, _jsxAstUtils.getProp)(attributes, 'onFocus');
-          var onFocusValue = (0, _jsxAstUtils.getPropValue)(hasOnFocus);
-
-          if (hasOnFocus === false || onFocusValue === null || onFocusValue === undefined) {
-            context.report({
-              node,
-              message: mouseOverErrorMessage
-            });
-          }
-        } // Checkout onmouseout / onblur pairing
-
-
-        var onMouseOut = (0, _jsxAstUtils.getProp)(attributes, 'onMouseOut');
-        var onMouseOutValue = (0, _jsxAstUtils.getPropValue)(onMouseOut);
-
-        if (onMouseOut && onMouseOutValue != null) {
-          var hasOnBlur = (0, _jsxAstUtils.getProp)(attributes, 'onBlur');
-          var onBlurValue = (0, _jsxAstUtils.getPropValue)(hasOnBlur);
-
-          if (hasOnBlur === false || onBlurValue === null || onBlurValue === undefined) {
-            context.report({
-              node,
-              message: mouseOutErrorMessage
-            });
-          }
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-access-key.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-access-key.js
deleted file mode 100644
index 5bb1dca..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-access-key.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce no accesskey attribute on element.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'No access key attribute allowed. Inconsistencies between keyboard shortcuts and keyboard comments used by screenreader and keyboard only users create a11y complications.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-access-key.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var accessKey = (0, _jsxAstUtils.getProp)(node.attributes, 'accesskey');
-        var accessKeyValue = (0, _jsxAstUtils.getPropValue)(accessKey);
-
-        if (accessKey && accessKeyValue) {
-          context.report({
-            node,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-autofocus.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-autofocus.js
deleted file mode 100644
index 8afb38f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-autofocus.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _ariaQuery = require("aria-query");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce autoFocus prop is not used.
- * @author Ethan Cohen <@evcohen>
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'The autoFocus prop should not be used, as it can reduce usability and accessibility for users.';
-var schema = (0, _schemas.generateObjSchema)({
-  ignoreNonDOM: {
-    type: 'boolean',
-    "default": false
-  }
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-autofocus.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        // Determine if ignoreNonDOM is set to true
-        // If true, then do not run rule.
-        var options = context.options[0] || {};
-        var ignoreNonDOM = !!options.ignoreNonDOM;
-
-        if (ignoreNonDOM) {
-          var type = (0, _jsxAstUtils.elementType)(attribute.parent);
-
-          if (!_ariaQuery.dom.get(type)) {
-            return;
-          }
-        } // Don't normalize, since React only recognizes autoFocus on low-level DOM elements.
-
-
-        if ((0, _jsxAstUtils.propName)(attribute) === 'autoFocus') {
-          context.report({
-            node: attribute,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-distracting-elements.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-distracting-elements.js
deleted file mode 100644
index da04a5e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-distracting-elements.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce distracting elements are not used.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(element) {
-  return "Do not use <".concat(element, "> elements as they can create visual accessibility issues and are deprecated.");
-};
-
-var DEFAULT_ELEMENTS = ['marquee', 'blink'];
-var schema = (0, _schemas.generateObjSchema)({
-  elements: (0, _schemas.enumArraySchema)(DEFAULT_ELEMENTS)
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-distracting-elements.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var options = context.options[0] || {};
-        var elementOptions = options.elements || DEFAULT_ELEMENTS;
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var distractingElement = elementOptions.find(function (element) {
-          return type === element;
-        });
-
-        if (distractingElement) {
-          context.report({
-            node,
-            message: errorMessage(distractingElement)
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-interactive-element-to-noninteractive-role.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-interactive-element-to-noninteractive-role.js
deleted file mode 100644
index 02d5fce..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-interactive-element-to-noninteractive-role.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _has = _interopRequireDefault(require("has"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isNonInteractiveRole = _interopRequireDefault(require("../util/isNonInteractiveRole"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-/**
- * @fileoverview Disallow inherently interactive elements to be assigned
- * non-interactive roles.
- * @author Jesse Beach
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Interactive elements should not be assigned non-interactive roles.';
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-interactive-element-to-noninteractive-role.md'
-    },
-    schema: [{
-      type: 'object',
-      additionalProperties: {
-        type: 'array',
-        items: {
-          type: 'string'
-        },
-        uniqueItems: true
-      }
-    }]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var attributeName = (0, _jsxAstUtils.propName)(attribute); // $FlowFixMe: [TODO] Mark propName as a JSXIdentifier, not a string.
-
-        if (attributeName !== 'role') {
-          return;
-        }
-
-        var node = attribute.parent;
-        var attributes = node.attributes;
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'role'));
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        } // Allow overrides from rule configuration for specific elements and
-        // roles.
-
-
-        var allowedRoles = options[0] || {};
-
-        if ((0, _has["default"])(allowedRoles, type) && (0, _arrayIncludes["default"])(allowedRoles[type], role)) {
-          return;
-        }
-
-        if ((0, _isInteractiveElement["default"])(type, attributes) && ((0, _isNonInteractiveRole["default"])(type, attributes) || (0, _isPresentationRole["default"])(type, attributes))) {
-          // Visible, non-interactive elements should not have an interactive handler.
-          context.report({
-            node: attribute,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-interactions.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-interactions.js
deleted file mode 100644
index b3b80e1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-interactions.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _has = _interopRequireDefault(require("has"));
-
-var _schemas = require("../util/schemas");
-
-var _isAbstractRole = _interopRequireDefault(require("../util/isAbstractRole"));
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-var _isNonInteractiveElement = _interopRequireDefault(require("../util/isNonInteractiveElement"));
-
-var _isNonInteractiveRole = _interopRequireDefault(require("../util/isNonInteractiveRole"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-/**
- * @fileoverview Enforce non-interactive elements have no interactive handlers.
- * @author Jese Beach
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Non-interactive elements should not be assigned mouse or keyboard event listeners.';
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-var defaultInteractiveProps = [].concat((0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.focus), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.image), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.keyboard), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.mouse));
-var schema = (0, _schemas.generateObjSchema)({
-  handlers: _schemas.arraySchema
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-noninteractive-element-interactions.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var attributes = node.attributes;
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var config = options[0] || {};
-        var interactiveProps = config.handlers || defaultInteractiveProps; // Allow overrides from rule configuration for specific elements and roles.
-
-        if ((0, _has["default"])(config, type)) {
-          attributes = attributes.filter(function (attr) {
-            return attr.type !== 'JSXSpreadAttribute' && !(0, _arrayIncludes["default"])(config[type], (0, _jsxAstUtils.propName)(attr));
-          });
-        }
-
-        var hasInteractiveProps = interactiveProps.some(function (prop) {
-          return (0, _jsxAstUtils.hasProp)(attributes, prop) && (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(attributes, prop)) != null;
-        });
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        }
-
-        if (!hasInteractiveProps || (0, _isHiddenFromScreenReader["default"])(type, attributes) || (0, _isPresentationRole["default"])(type, attributes)) {
-          // Presentation is an intentional signal from the author that this
-          // element is not meant to be perceivable. For example, a click screen
-          // to close a dialog .
-          return;
-        }
-
-        if ((0, _isInteractiveElement["default"])(type, attributes) || (0, _isInteractiveRole["default"])(type, attributes) || !(0, _isNonInteractiveElement["default"])(type, attributes) && !(0, _isNonInteractiveRole["default"])(type, attributes) || (0, _isAbstractRole["default"])(type, attributes)) {
-          // This rule has no opinion about abtract roles.
-          return;
-        } // Visible, non-interactive elements should not have an interactive handler.
-
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-to-interactive-role.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-to-interactive-role.js
deleted file mode 100644
index d19973f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-element-to-interactive-role.js
+++ /dev/null
@@ -1,86 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _has = _interopRequireDefault(require("has"));
-
-var _getExplicitRole = _interopRequireDefault(require("../util/getExplicitRole"));
-
-var _isNonInteractiveElement = _interopRequireDefault(require("../util/isNonInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-/**
- * @fileoverview Disallow inherently non-interactive elements to be assigned
- * interactive roles.
- * @author Jesse Beach
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Non-interactive elements should not be assigned interactive roles.';
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-noninteractive-element-to-interactive-role.md'
-    },
-    schema: [{
-      type: 'object',
-      additionalProperties: {
-        type: 'array',
-        items: {
-          type: 'string'
-        },
-        uniqueItems: true
-      }
-    }]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var attributeName = (0, _jsxAstUtils.propName)(attribute); // $FlowFixMe: [TODO] Mark propName as a JSXIdentifier, not a string.
-
-        if (attributeName !== 'role') {
-          return;
-        }
-
-        var node = attribute.parent;
-        var attributes = node.attributes;
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var role = (0, _getExplicitRole["default"])(type, node.attributes);
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        } // Allow overrides from rule configuration for specific elements and
-        // roles.
-
-
-        var allowedRoles = options[0] || {};
-
-        if ((0, _has["default"])(allowedRoles, type) && (0, _arrayIncludes["default"])(allowedRoles[type], role)) {
-          return;
-        }
-
-        if ((0, _isNonInteractiveElement["default"])(type, attributes) && (0, _isInteractiveRole["default"])(type, attributes)) {
-          context.report({
-            node: attribute,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-tabindex.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-tabindex.js
deleted file mode 100644
index 69049ab..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-noninteractive-tabindex.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-var _isNonLiteralProperty = _interopRequireDefault(require("../util/isNonLiteralProperty"));
-
-var _schemas = require("../util/schemas");
-
-var _getTabIndex = _interopRequireDefault(require("../util/getTabIndex"));
-
-/**
- * @fileoverview Disallow tabindex on static and noninteractive elements
- * @author jessebeach
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = '`tabIndex` should only be declared on interactive elements.';
-var schema = (0, _schemas.generateObjSchema)({
-  roles: (0, _objectSpread2["default"])({}, _schemas.arraySchema, {
-    description: 'An array of ARIA roles'
-  }),
-  tags: (0, _objectSpread2["default"])({}, _schemas.arraySchema, {
-    description: 'An array of HTML tag names'
-  })
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-noninteractive-tabindex.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var attributes = node.attributes;
-        var tabIndexProp = (0, _jsxAstUtils.getProp)(attributes, 'tabIndex');
-        var tabIndex = (0, _getTabIndex["default"])(tabIndexProp); // Early return;
-
-        if (typeof tabIndex === 'undefined') {
-          return;
-        }
-
-        var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(node.attributes, 'role'));
-
-        if (!_ariaQuery.dom.has(type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        } // Allow for configuration overrides.
-
-
-        var _ref = options[0] || {},
-            tags = _ref.tags,
-            roles = _ref.roles,
-            allowExpressionValues = _ref.allowExpressionValues;
-
-        if (tags && (0, _arrayIncludes["default"])(tags, type)) {
-          return;
-        }
-
-        if (roles && (0, _arrayIncludes["default"])(roles, role)) {
-          return;
-        }
-
-        if (allowExpressionValues === true && (0, _isNonLiteralProperty["default"])(attributes, 'role')) {
-          return;
-        }
-
-        if ((0, _isInteractiveElement["default"])(type, attributes) || (0, _isInteractiveRole["default"])(type, attributes)) {
-          return;
-        }
-
-        if (tabIndex >= 0) {
-          context.report({
-            node: tabIndexProp,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-onchange.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-onchange.js
deleted file mode 100644
index adfbfcc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-onchange.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce usage of onBlur over onChange for accessibility.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'onBlur must be used instead of onchange, unless absolutely necessary and it causes no negative consequences for keyboard only or screen reader users.';
-var applicableTypes = ['select', 'option'];
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-onchange.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var nodeType = (0, _jsxAstUtils.elementType)(node);
-
-        if (applicableTypes.indexOf(nodeType) === -1) {
-          return;
-        }
-
-        var onChange = (0, _jsxAstUtils.getProp)(node.attributes, 'onChange');
-        var hasOnBlur = (0, _jsxAstUtils.getProp)(node.attributes, 'onBlur') !== undefined;
-
-        if (onChange && !hasOnBlur) {
-          context.report({
-            node,
-            message: errorMessage
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-redundant-roles.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-redundant-roles.js
deleted file mode 100644
index 6f65ca1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-redundant-roles.js
+++ /dev/null
@@ -1,81 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _has = _interopRequireDefault(require("has"));
-
-var _getExplicitRole = _interopRequireDefault(require("../util/getExplicitRole"));
-
-var _getImplicitRole = _interopRequireDefault(require("../util/getImplicitRole"));
-
-/**
- * @fileoverview Enforce explicit role property is not the
- * same as implicit/default role property on element.
- * @author Ethan Cohen <@evcohen>
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(element, implicitRole) {
-  return "The element ".concat(element, " has an implicit role of ").concat(implicitRole, ". Defining this explicitly is redundant and should be avoided.");
-};
-
-var DEFAULT_ROLE_EXCEPTIONS = {
-  nav: ['navigation']
-};
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-redundant-roles.md'
-    },
-    schema: [{
-      type: 'object',
-      additionalProperties: {
-        type: 'array',
-        items: {
-          type: 'string'
-        },
-        uniqueItems: true
-      }
-    }]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var implicitRole = (0, _getImplicitRole["default"])(type, node.attributes);
-        var explicitRole = (0, _getExplicitRole["default"])(type, node.attributes);
-
-        if (!implicitRole || !explicitRole) {
-          return;
-        }
-
-        if (implicitRole === explicitRole) {
-          var allowedRedundantRoles = options[0] || {};
-          var redundantRolesForElement;
-
-          if ((0, _has["default"])(allowedRedundantRoles, type)) {
-            redundantRolesForElement = allowedRedundantRoles[type];
-          } else {
-            redundantRolesForElement = DEFAULT_ROLE_EXCEPTIONS[type] || [];
-          }
-
-          if ((0, _arrayIncludes["default"])(redundantRolesForElement, implicitRole)) {
-            return;
-          }
-
-          context.report({
-            node,
-            message: errorMessage(type, implicitRole.toLowerCase())
-          });
-        }
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-static-element-interactions.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-static-element-interactions.js
deleted file mode 100644
index 0b26449..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/no-static-element-interactions.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _schemas = require("../util/schemas");
-
-var _isAbstractRole = _interopRequireDefault(require("../util/isAbstractRole"));
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("../util/isHiddenFromScreenReader"));
-
-var _isInteractiveElement = _interopRequireDefault(require("../util/isInteractiveElement"));
-
-var _isInteractiveRole = _interopRequireDefault(require("../util/isInteractiveRole"));
-
-var _isNonInteractiveElement = _interopRequireDefault(require("../util/isNonInteractiveElement"));
-
-var _isNonInteractiveRole = _interopRequireDefault(require("../util/isNonInteractiveRole"));
-
-var _isNonLiteralProperty = _interopRequireDefault(require("../util/isNonLiteralProperty"));
-
-var _isPresentationRole = _interopRequireDefault(require("../util/isPresentationRole"));
-
-/**
- * @fileoverview Enforce static elements have no interactive handlers.
- * @author Ethan Cohen
- * 
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Static HTML elements with event handlers require a role.';
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-var defaultInteractiveProps = [].concat((0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.focus), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.keyboard), (0, _toConsumableArray2["default"])(_jsxAstUtils.eventHandlersByType.mouse));
-var schema = (0, _schemas.generateObjSchema)({
-  handlers: _schemas.arraySchema
-});
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/no-static-element-interactions.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    var options = context.options;
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        var attributes = node.attributes;
-        var type = (0, _jsxAstUtils.elementType)(node);
-
-        var _ref = options[0] || {},
-            allowExpressionValues = _ref.allowExpressionValues,
-            _ref$handlers = _ref.handlers,
-            handlers = _ref$handlers === void 0 ? defaultInteractiveProps : _ref$handlers;
-
-        var hasInteractiveProps = handlers.some(function (prop) {
-          return (0, _jsxAstUtils.hasProp)(attributes, prop) && (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(attributes, prop)) != null;
-        });
-
-        if (!(0, _arrayIncludes["default"])(domElements, type)) {
-          // Do not test higher level JSX components, as we do not know what
-          // low-level DOM element this maps to.
-          return;
-        }
-
-        if (!hasInteractiveProps || (0, _isHiddenFromScreenReader["default"])(type, attributes) || (0, _isPresentationRole["default"])(type, attributes)) {
-          // Presentation is an intentional signal from the author that this
-          // element is not meant to be perceivable. For example, a click screen
-          // to close a dialog .
-          return;
-        }
-
-        if ((0, _isInteractiveElement["default"])(type, attributes) || (0, _isInteractiveRole["default"])(type, attributes) || (0, _isNonInteractiveElement["default"])(type, attributes) || (0, _isNonInteractiveRole["default"])(type, attributes) || (0, _isAbstractRole["default"])(type, attributes)) {
-          // This rule has no opinion about abstract roles.
-          return;
-        }
-
-        if (allowExpressionValues === true && (0, _isNonLiteralProperty["default"])(attributes, 'role')) {
-          // This rule has no opinion about non-literal roles.
-          return;
-        } // Visible, non-interactive elements should not have an interactive handler.
-
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-has-required-aria-props.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-has-required-aria-props.js
deleted file mode 100644
index 453c3e1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-has-required-aria-props.js
+++ /dev/null
@@ -1,92 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _isSemanticRoleElement = _interopRequireDefault(require("../util/isSemanticRoleElement"));
-
-/**
- * @fileoverview Enforce that elements with ARIA roles must
- *  have all required attributes for that role.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(role, requiredProps) {
-  return "Elements with the ARIA role \"".concat(role, "\" must have the following attributes defined: ").concat(String(requiredProps).toLowerCase());
-};
-
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/role-has-required-aria-props.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var name = (0, _jsxAstUtils.propName)(attribute).toLowerCase();
-
-        if (name !== 'role') {
-          return;
-        }
-
-        var type = (0, _jsxAstUtils.elementType)(attribute.parent);
-
-        if (!_ariaQuery.dom.get(type)) {
-          return;
-        }
-
-        var roleAttrValue = (0, _jsxAstUtils.getLiteralPropValue)(attribute);
-        var attributes = attribute.parent.attributes; // If value is undefined, then the role attribute will be dropped in the DOM.
-        // If value is null, then getLiteralAttributeValue is telling us
-        // that the value isn't in the form of a literal.
-
-        if (roleAttrValue === undefined || roleAttrValue === null) {
-          return;
-        }
-
-        var normalizedValues = String(roleAttrValue).toLowerCase().split(' ');
-        var validRoles = normalizedValues.filter(function (val) {
-          return (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys()).indexOf(val) > -1;
-        }); // Check semantic DOM elements
-        // For example, <input type="checkbox" role="switch" />
-
-        if ((0, _isSemanticRoleElement["default"])(type, attributes)) {
-          return;
-        } // Check arbitrary DOM elements
-
-
-        validRoles.forEach(function (role) {
-          var _roles$get = _ariaQuery.roles.get(role),
-              requiredPropKeyValues = _roles$get.requiredProps;
-
-          var requiredProps = Object.keys(requiredPropKeyValues);
-
-          if (requiredProps.length > 0) {
-            var hasRequiredProps = requiredProps.every(function (prop) {
-              return (0, _jsxAstUtils.getProp)(attribute.parent.attributes, prop);
-            });
-
-            if (hasRequiredProps === false) {
-              context.report({
-                node: attribute,
-                message: errorMessage(role.toLowerCase(), requiredProps)
-              });
-            }
-          }
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-supports-aria-props.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-supports-aria-props.js
deleted file mode 100644
index 8f05107..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/role-supports-aria-props.js
+++ /dev/null
@@ -1,79 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-var _getImplicitRole = _interopRequireDefault(require("../util/getImplicitRole"));
-
-/**
- * @fileoverview Enforce that elements with explicit or implicit roles defined contain only
- * `aria-*` properties supported by that `role`.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = function errorMessage(attr, role, tag, isImplicit) {
-  if (isImplicit) {
-    return "The attribute ".concat(attr, " is not supported by the role ").concat(role, ". This role is implicit on the element ").concat(tag, ".");
-  }
-
-  return "The attribute ".concat(attr, " is not supported by the role ").concat(role, ".");
-};
-
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/role-supports-aria-props.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXOpeningElement: function JSXOpeningElement(node) {
-        // If role is not explicitly defined, then try and get its implicit role.
-        var type = (0, _jsxAstUtils.elementType)(node);
-        var role = (0, _jsxAstUtils.getProp)(node.attributes, 'role');
-        var roleValue = role ? (0, _jsxAstUtils.getLiteralPropValue)(role) : (0, _getImplicitRole["default"])(type, node.attributes);
-        var isImplicit = roleValue && role === undefined; // If there is no explicit or implicit role, then assume that the element
-        // can handle the global set of aria-* properties.
-        // This actually isn't true - should fix in future release.
-
-        if (typeof roleValue !== 'string' || _ariaQuery.roles.get(roleValue) === undefined) {
-          return;
-        } // Make sure it has no aria-* properties defined outside of its property set.
-
-
-        var _roles$get = _ariaQuery.roles.get(roleValue),
-            propKeyValues = _roles$get.props;
-
-        var propertySet = Object.keys(propKeyValues);
-        var invalidAriaPropsForRole = (0, _toConsumableArray2["default"])(_ariaQuery.aria.keys()).filter(function (attribute) {
-          return propertySet.indexOf(attribute) === -1;
-        });
-        node.attributes.forEach(function (prop) {
-          // Ignore the attribute if its value is null or undefined.
-          if ((0, _jsxAstUtils.getPropValue)(prop) == null) return; // Ignore the attribute if it's a spread.
-
-          if (prop.type === 'JSXSpreadAttribute') return;
-          var name = (0, _jsxAstUtils.propName)(prop);
-
-          if (invalidAriaPropsForRole.indexOf(name) > -1) {
-            context.report({
-              node,
-              message: errorMessage(name, roleValue, type, isImplicit)
-            });
-          }
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/scope.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/scope.js
deleted file mode 100644
index 5de9e30..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/scope.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce scope prop is only used on <th> elements.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'The scope prop can only be used on <th> elements.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/scope.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(node) {
-        var name = (0, _jsxAstUtils.propName)(node);
-
-        if (name && name.toUpperCase() !== 'SCOPE') {
-          return;
-        }
-
-        var parent = node.parent;
-        var tagName = (0, _jsxAstUtils.elementType)(parent); // Do not test higher level JSX components, as we do not know what
-        // low-level DOM element this maps to.
-
-        if (!_ariaQuery.dom.has(tagName)) {
-          return;
-        }
-
-        if (tagName && tagName.toUpperCase() === 'TH') {
-          return;
-        }
-
-        context.report({
-          node,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/rules/tabindex-no-positive.js b/node_modules/eslint-plugin-jsx-a11y/lib/rules/tabindex-no-positive.js
deleted file mode 100644
index 87cd7f2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/rules/tabindex-no-positive.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _schemas = require("../util/schemas");
-
-/**
- * @fileoverview Enforce tabIndex value is not greater than zero.
- * @author Ethan Cohen
- */
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-var errorMessage = 'Avoid positive integer values for tabIndex.';
-var schema = (0, _schemas.generateObjSchema)();
-module.exports = {
-  meta: {
-    docs: {
-      url: 'https://github.com/evcohen/eslint-plugin-jsx-a11y/tree/master/docs/rules/tabindex-no-positive.md'
-    },
-    schema: [schema]
-  },
-  create: function create(context) {
-    return {
-      JSXAttribute: function JSXAttribute(attribute) {
-        var name = (0, _jsxAstUtils.propName)(attribute).toUpperCase(); // Check if tabIndex is the attribute
-
-        if (name !== 'TABINDEX') {
-          return;
-        } // Only check literals because we can't infer values from certain expressions.
-
-
-        var value = Number((0, _jsxAstUtils.getLiteralPropValue)(attribute)); // eslint-disable-next-line no-restricted-globals
-
-        if (isNaN(value) || value <= 0) {
-          return;
-        }
-
-        context.report({
-          node: attribute,
-          message: errorMessage
-        });
-      }
-    };
-  }
-};
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/attributes/ISO.json b/node_modules/eslint-plugin-jsx-a11y/lib/util/attributes/ISO.json
deleted file mode 100644
index 4beb9b5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/attributes/ISO.json
+++ /dev/null
@@ -1,390 +0,0 @@
-{
-  "countries": [
-    "AF",
-    "AL",
-    "DZ",
-    "AS",
-    "AD",
-    "AO",
-    "AI",
-    "AQ",
-    "AG",
-    "AR",
-    "AM",
-    "AW",
-    "AU",
-    "AT",
-    "AZ",
-    "BS",
-    "BH",
-    "BD",
-    "BB",
-    "BY",
-    "BE",
-    "BZ",
-    "BJ",
-    "BM",
-    "BT",
-    "BO",
-    "BA",
-    "BW",
-    "BR",
-    "IO",
-    "VG",
-    "BN",
-    "BG",
-    "BF",
-    "MM",
-    "BI",
-    "KH",
-    "CM",
-    "CA",
-    "CV",
-    "KY",
-    "CF",
-    "TD",
-    "CL",
-    "CN",
-    "CX",
-    "CC",
-    "CO",
-    "KM",
-    "CK",
-    "CR",
-    "HR",
-    "CU",
-    "CY",
-    "CZ",
-    "CD",
-    "DK",
-    "DJ",
-    "DM",
-    "DO",
-    "EC",
-    "EG",
-    "SV",
-    "GQ",
-    "ER",
-    "EE",
-    "ET",
-    "FK",
-    "FO",
-    "FJ",
-    "FI",
-    "FR",
-    "PF",
-    "GA",
-    "GM",
-    "GE",
-    "DE",
-    "GH",
-    "GI",
-    "GR",
-    "GL",
-    "GD",
-    "GU",
-    "GT",
-    "GN",
-    "GW",
-    "GY",
-    "HT",
-    "VA",
-    "HN",
-    "HK",
-    "HU",
-    "IS",
-    "IN",
-    "ID",
-    "IR",
-    "IQ",
-    "IE",
-    "IM",
-    "IL",
-    "IT",
-    "CI",
-    "JM",
-    "JP",
-    "JE",
-    "JO",
-    "KZ",
-    "KE",
-    "KI",
-    "KW",
-    "KG",
-    "LA",
-    "LV",
-    "LB",
-    "LS",
-    "LR",
-    "LY",
-    "LI",
-    "LT",
-    "LU",
-    "MO",
-    "MK",
-    "MG",
-    "MW",
-    "MY",
-    "MV",
-    "ML",
-    "MT",
-    "MH",
-    "MR",
-    "MU",
-    "YT",
-    "MX",
-    "FM",
-    "MD",
-    "MC",
-    "MN",
-    "ME",
-    "MS",
-    "MA",
-    "MZ",
-    "NA",
-    "NR",
-    "NP",
-    "NL",
-    "AN",
-    "NC",
-    "NZ",
-    "NI",
-    "NE",
-    "NG",
-    "NU",
-    "KP",
-    "MP",
-    "NO",
-    "OM",
-    "PK",
-    "PW",
-    "PA",
-    "PG",
-    "PY",
-    "PE",
-    "PH",
-    "PN",
-    "PL",
-    "PT",
-    "PR",
-    "QA",
-    "CG",
-    "RO",
-    "RU",
-    "RW",
-    "BL",
-    "SH",
-    "KN",
-    "LC",
-    "MF",
-    "PM",
-    "VC",
-    "WS",
-    "SM",
-    "ST",
-    "SA",
-    "SN",
-    "RS",
-    "SC",
-    "SL",
-    "SG",
-    "SK",
-    "SI",
-    "SB",
-    "SO",
-    "ZA",
-    "KR",
-    "ES",
-    "LK",
-    "SD",
-    "SR",
-    "SJ",
-    "SZ",
-    "SE",
-    "CH",
-    "SY",
-    "TW",
-    "TJ",
-    "TZ",
-    "TH",
-    "TL",
-    "TG",
-    "TK",
-    "TO",
-    "TT",
-    "TN",
-    "TR",
-    "TM",
-    "TC",
-    "TV",
-    "UG",
-    "UA",
-    "AE",
-    "GB",
-    "US",
-    "UY",
-    "VI",
-    "UZ",
-    "VU",
-    "VE",
-    "VN",
-    "WF",
-    "EH",
-    "YE",
-    "ZM",
-    "ZW"
-  ],
-
-  "languages": [
-    "ab",
-    "aa",
-    "af",
-    "sq",
-    "am",
-    "ar",
-    "an",
-    "hy",
-    "as",
-    "ay",
-    "az",
-    "ba",
-    "eu",
-    "bn",
-    "dz",
-    "bh",
-    "bi",
-    "br",
-    "bg",
-    "my",
-    "be",
-    "km",
-    "ca",
-    "zh",
-    "zh-Hans",
-    "zh-Hant",
-    "co",
-    "hr",
-    "cs",
-    "da",
-    "nl",
-    "en",
-    "eo",
-    "et",
-    "fo",
-    "fa",
-    "fj",
-    "fi",
-    "fr",
-    "fy",
-    "gl",
-    "gd",
-    "gv",
-    "ka",
-    "de",
-    "el",
-    "kl",
-    "gn",
-    "gu",
-    "ht",
-    "ha",
-    "he",
-    "iw",
-    "hi",
-    "hu",
-    "is",
-    "io",
-    "id",
-    "in",
-    "ia",
-    "ie",
-    "iu",
-    "ik",
-    "ga",
-    "it",
-    "ja",
-    "jv",
-    "kn",
-    "ks",
-    "kk",
-    "rw",
-    "ky",
-    "rn",
-    "ko",
-    "ku",
-    "lo",
-    "la",
-    "lv",
-    "li",
-    "ln",
-    "lt",
-    "mk",
-    "mg",
-    "ms",
-    "ml",
-    "mt",
-    "mi",
-    "mr",
-    "mo",
-    "mn",
-    "na",
-    "ne",
-    "no",
-    "oc",
-    "or",
-    "om",
-    "ps",
-    "pl",
-    "pt",
-    "pa",
-    "qu",
-    "rm",
-    "ro",
-    "ru",
-    "sm",
-    "sg",
-    "sa",
-    "sr",
-    "sh",
-    "st",
-    "tn",
-    "sn",
-    "ii",
-    "sd",
-    "si",
-    "ss",
-    "sk",
-    "sl",
-    "so",
-    "es",
-    "su",
-    "sw",
-    "sv",
-    "tl",
-    "tg",
-    "ta",
-    "tt",
-    "te",
-    "th",
-    "bo",
-    "ti",
-    "to",
-    "ts",
-    "tr",
-    "tk",
-    "tw",
-    "ug",
-    "uk",
-    "ur",
-    "uz",
-    "vi",
-    "vo",
-    "wa",
-    "cy",
-    "wo",
-    "xh",
-    "yi",
-    "ji",
-    "yo",
-    "zu"
-  ]
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/attributesComparator.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/attributesComparator.js
deleted file mode 100644
index e9bba04..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/attributesComparator.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns true if all items in baseAttributes are found in attributes. Always
- * returns true if baseAttributes is empty.
- */
-function attributesComparator() {
-  var baseAttributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
-  return baseAttributes.every(function (baseAttr) {
-    return attributes.some(function (attribute) {
-      // Guard against non-JSXAttribute nodes like JSXSpreadAttribute
-      if (attribute.type !== 'JSXAttribute') {
-        return false;
-      } // Attribute matches.
-
-
-      if (baseAttr.name !== (0, _jsxAstUtils.propName)(attribute)) {
-        return false;
-      } // Value exists and does not match.
-
-
-      if (baseAttr.value && baseAttr.value !== (0, _jsxAstUtils.getLiteralPropValue)(attribute)) {
-        return false;
-      }
-
-      return true;
-    });
-  });
-}
-
-var _default = attributesComparator;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/getComputedRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/getComputedRole.js
deleted file mode 100644
index 27f0d40..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/getComputedRole.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getComputedRole;
-
-var _getExplicitRole = _interopRequireDefault(require("./getExplicitRole"));
-
-var _getImplicitRole = _interopRequireDefault(require("./getImplicitRole"));
-
-/**
- * Returns an element's computed role, which is
- *
- *  1. The valid value of its explicit role attribute; or
- *  2. The implicit value of its tag.
- */
-function getComputedRole(tag, attributes) {
-  return (0, _getExplicitRole["default"])(tag, attributes) || (0, _getImplicitRole["default"])(tag, attributes);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/getExplicitRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/getExplicitRole.js
deleted file mode 100644
index 8633db7..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/getExplicitRole.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getExplicitRole;
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns an element's computed role, which is
- *
- *  1. The valid value of its explicit role attribute; or
- *  2. The implicit value of its tag.
- */
-function getExplicitRole(tag, attributes) {
-  var explicitRole = function toLowerCase(role) {
-    if (typeof role === 'string') {
-      return role.toLowerCase();
-    }
-
-    return null;
-  }((0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role')));
-
-  if (_ariaQuery.roles.has(explicitRole)) {
-    return explicitRole;
-  }
-
-  return null;
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/getImplicitRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/getImplicitRole.js
deleted file mode 100644
index 30b362f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/getImplicitRole.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRole;
-
-var _ariaQuery = require("aria-query");
-
-var _implicitRoles = _interopRequireDefault(require("./implicitRoles"));
-
-/**
- * Returns an element's implicit role given its attributes and type.
- * Some elements only have an implicit role when certain props are defined.
- */
-function getImplicitRole(type, attributes) {
-  var implicitRole;
-
-  if (_implicitRoles["default"][type]) {
-    implicitRole = _implicitRoles["default"][type](attributes);
-  }
-
-  if (_ariaQuery.roles.has(implicitRole)) {
-    return implicitRole;
-  }
-
-  return null;
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/getSuggestion.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/getSuggestion.js
deleted file mode 100644
index 29a863f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/getSuggestion.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getSuggestion;
-
-var _damerauLevenshtein = _interopRequireDefault(require("damerau-levenshtein"));
-
-// Minimum edit distance to be considered a good suggestion.
-var THRESHOLD = 2;
-/**
- * Returns an array of suggestions given a word and a dictionary and limit of suggestions
- * to return.
- */
-
-function getSuggestion(word) {
-  var dictionary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
-  var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
-  var distances = dictionary.reduce(function (suggestions, dictionaryWord) {
-    var distance = (0, _damerauLevenshtein["default"])(word.toUpperCase(), dictionaryWord.toUpperCase());
-    var steps = distance.steps;
-    suggestions[dictionaryWord] = steps; // eslint-disable-line
-
-    return suggestions;
-  }, {});
-  return Object.keys(distances).filter(function (suggestion) {
-    return distances[suggestion] <= THRESHOLD;
-  }).sort(function (a, b) {
-    return distances[a] - distances[b];
-  }) // Sort by distance
-  .slice(0, limit);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/getTabIndex.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/getTabIndex.js
deleted file mode 100644
index a9b7022..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/getTabIndex.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getTabIndex;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the tabIndex value.
- */
-function getTabIndex(tabIndex) {
-  var literalValue = (0, _jsxAstUtils.getLiteralPropValue)(tabIndex); // String and number values.
-
-  if (['string', 'number'].indexOf(typeof literalValue) > -1) {
-    // Empty string will convert to zero, so check for it explicity.
-    if (typeof literalValue === 'string' && literalValue.length === 0) {
-      return undefined;
-    }
-
-    var value = Number(literalValue);
-
-    if (Number.isNaN(value)) {
-      return undefined;
-    }
-
-    return Number.isInteger(value) ? value : undefined;
-  } // Booleans are not valid values, return undefined.
-
-
-  if (literalValue === true || literalValue === false) {
-    return undefined;
-  }
-
-  return (0, _jsxAstUtils.getPropValue)(tabIndex);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/hasAccessibleChild.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/hasAccessibleChild.js
deleted file mode 100644
index b7f037e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/hasAccessibleChild.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = hasAccessibleChild;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _isHiddenFromScreenReader = _interopRequireDefault(require("./isHiddenFromScreenReader"));
-
-function hasAccessibleChild(node) {
-  return node.children.some(function (child) {
-    switch (child.type) {
-      case 'Literal':
-      case 'JSXText':
-        return Boolean(child.value);
-
-      case 'JSXElement':
-        return !(0, _isHiddenFromScreenReader["default"])((0, _jsxAstUtils.elementType)(child.openingElement), child.openingElement.attributes);
-
-      case 'JSXExpressionContainer':
-        if (child.expression.type === 'Identifier') {
-          return child.expression.name !== 'undefined';
-        }
-
-        return true;
-
-      default:
-        return false;
-    }
-  }) || (0, _jsxAstUtils.hasAnyProp)(node.openingElement.attributes, ['dangerouslySetInnerHTML', 'children']);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/a.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/a.js
deleted file mode 100644
index 9eabbcc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/a.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForAnchor;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for an anchor tag.
- */
-function getImplicitRoleForAnchor(attributes) {
-  if ((0, _jsxAstUtils.getProp)(attributes, 'href')) {
-    return 'link';
-  }
-
-  return '';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/area.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/area.js
deleted file mode 100644
index a12d26f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/area.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForArea;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for an area tag.
- */
-function getImplicitRoleForArea(attributes) {
-  if ((0, _jsxAstUtils.getProp)(attributes, 'href')) {
-    return 'link';
-  }
-
-  return '';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/article.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/article.js
deleted file mode 100644
index c3424ff..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/article.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForArticle;
-
-/**
- * Returns the implicit role for an article tag.
- */
-function getImplicitRoleForArticle() {
-  return 'article';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/aside.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/aside.js
deleted file mode 100644
index 8bd5f79..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/aside.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForAside;
-
-/**
- * Returns the implicit role for an aside tag.
- */
-function getImplicitRoleForAside() {
-  return 'complementary';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/body.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/body.js
deleted file mode 100644
index 6ca9206..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/body.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForBody;
-
-/**
- * Returns the implicit role for a body tag.
- */
-function getImplicitRoleForBody() {
-  return 'document';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/button.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/button.js
deleted file mode 100644
index 6c100e4..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/button.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForButton;
-
-/**
- * Returns the implicit role for a button tag.
- */
-function getImplicitRoleForButton() {
-  return 'button';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/datalist.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/datalist.js
deleted file mode 100644
index b4f73b6..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/datalist.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForDatalist;
-
-/**
- * Returns the implicit role for a datalist tag.
- */
-function getImplicitRoleForDatalist() {
-  return 'listbox';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/details.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/details.js
deleted file mode 100644
index 3799273..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/details.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForDetails;
-
-/**
- * Returns the implicit role for a details tag.
- */
-function getImplicitRoleForDetails() {
-  return 'group';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dialog.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dialog.js
deleted file mode 100644
index e9d2c8f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dialog.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForDialog;
-
-/**
- * Returns the implicit role for a dialog tag.
- */
-function getImplicitRoleForDialog() {
-  return 'dialog';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dl.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dl.js
deleted file mode 100644
index b120414..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/dl.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForDl;
-
-/**
- * Returns the implicit role for a dl tag.
- */
-function getImplicitRoleForDl() {
-  return 'list';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/form.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/form.js
deleted file mode 100644
index bd23211..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/form.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForForm;
-
-/**
- * Returns the implicit role for a form tag.
- */
-function getImplicitRoleForForm() {
-  return 'form';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h1.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h1.js
deleted file mode 100644
index 3b0793a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h1.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH1;
-
-/**
- * Returns the implicit role for an h1 tag.
- */
-function getImplicitRoleForH1() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h2.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h2.js
deleted file mode 100644
index 2aace79..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h2.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH2;
-
-/**
- * Returns the implicit role for an h2 tag.
- */
-function getImplicitRoleForH2() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h3.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h3.js
deleted file mode 100644
index ee41416..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h3.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH3;
-
-/**
- * Returns the implicit role for an h3 tag.
- */
-function getImplicitRoleForH3() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h4.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h4.js
deleted file mode 100644
index b20a54d..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h4.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH4;
-
-/**
- * Returns the implicit role for an h4 tag.
- */
-function getImplicitRoleForH4() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h5.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h5.js
deleted file mode 100644
index c11fe69..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h5.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH5;
-
-/**
- * Returns the implicit role for an h5 tag.
- */
-function getImplicitRoleForH5() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h6.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h6.js
deleted file mode 100644
index a10150e..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/h6.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForH6;
-
-/**
- * Returns the implicit role for an h6tag.
- */
-function getImplicitRoleForH6() {
-  return 'heading';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/hr.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/hr.js
deleted file mode 100644
index bd176d1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/hr.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForHr;
-
-/**
- * Returns the implicit role for an hr tag.
- */
-function getImplicitRoleForHr() {
-  return 'separator';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/img.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/img.js
deleted file mode 100644
index f74caf4..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/img.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForImg;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for an img tag.
- */
-function getImplicitRoleForImg(attributes) {
-  var alt = (0, _jsxAstUtils.getProp)(attributes, 'alt');
-
-  if (alt && (0, _jsxAstUtils.getLiteralPropValue)(alt) === '') {
-    return '';
-  }
-
-  return 'img';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/index.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/index.js
deleted file mode 100644
index ed6e811..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/index.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _a = _interopRequireDefault(require("./a"));
-
-var _area = _interopRequireDefault(require("./area"));
-
-var _article = _interopRequireDefault(require("./article"));
-
-var _aside = _interopRequireDefault(require("./aside"));
-
-var _body = _interopRequireDefault(require("./body"));
-
-var _button = _interopRequireDefault(require("./button"));
-
-var _datalist = _interopRequireDefault(require("./datalist"));
-
-var _details = _interopRequireDefault(require("./details"));
-
-var _dialog = _interopRequireDefault(require("./dialog"));
-
-var _dl = _interopRequireDefault(require("./dl"));
-
-var _form = _interopRequireDefault(require("./form"));
-
-var _h = _interopRequireDefault(require("./h1"));
-
-var _h2 = _interopRequireDefault(require("./h2"));
-
-var _h3 = _interopRequireDefault(require("./h3"));
-
-var _h4 = _interopRequireDefault(require("./h4"));
-
-var _h5 = _interopRequireDefault(require("./h5"));
-
-var _h6 = _interopRequireDefault(require("./h6"));
-
-var _hr = _interopRequireDefault(require("./hr"));
-
-var _img = _interopRequireDefault(require("./img"));
-
-var _input = _interopRequireDefault(require("./input"));
-
-var _li = _interopRequireDefault(require("./li"));
-
-var _link = _interopRequireDefault(require("./link"));
-
-var _menu = _interopRequireDefault(require("./menu"));
-
-var _menuitem = _interopRequireDefault(require("./menuitem"));
-
-var _meter = _interopRequireDefault(require("./meter"));
-
-var _nav = _interopRequireDefault(require("./nav"));
-
-var _ol = _interopRequireDefault(require("./ol"));
-
-var _option = _interopRequireDefault(require("./option"));
-
-var _output = _interopRequireDefault(require("./output"));
-
-var _progress = _interopRequireDefault(require("./progress"));
-
-var _section = _interopRequireDefault(require("./section"));
-
-var _select = _interopRequireDefault(require("./select"));
-
-var _tbody = _interopRequireDefault(require("./tbody"));
-
-var _textarea = _interopRequireDefault(require("./textarea"));
-
-var _tfoot = _interopRequireDefault(require("./tfoot"));
-
-var _thead = _interopRequireDefault(require("./thead"));
-
-var _ul = _interopRequireDefault(require("./ul"));
-
-var _default = {
-  a: _a["default"],
-  area: _area["default"],
-  article: _article["default"],
-  aside: _aside["default"],
-  body: _body["default"],
-  button: _button["default"],
-  datalist: _datalist["default"],
-  details: _details["default"],
-  dialog: _dialog["default"],
-  dl: _dl["default"],
-  form: _form["default"],
-  h1: _h["default"],
-  h2: _h2["default"],
-  h3: _h3["default"],
-  h4: _h4["default"],
-  h5: _h5["default"],
-  h6: _h6["default"],
-  hr: _hr["default"],
-  img: _img["default"],
-  input: _input["default"],
-  li: _li["default"],
-  link: _link["default"],
-  menu: _menu["default"],
-  menuitem: _menuitem["default"],
-  meter: _meter["default"],
-  nav: _nav["default"],
-  ol: _ol["default"],
-  option: _option["default"],
-  output: _output["default"],
-  progress: _progress["default"],
-  section: _section["default"],
-  select: _select["default"],
-  tbody: _tbody["default"],
-  textarea: _textarea["default"],
-  tfoot: _tfoot["default"],
-  thead: _thead["default"],
-  ul: _ul["default"]
-};
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/input.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/input.js
deleted file mode 100644
index 33c9e3c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/input.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForInput;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for an input tag.
- */
-function getImplicitRoleForInput(attributes) {
-  var type = (0, _jsxAstUtils.getProp)(attributes, 'type');
-
-  if (type) {
-    var value = (0, _jsxAstUtils.getLiteralPropValue)(type) || '';
-
-    switch (typeof value === 'string' && value.toUpperCase()) {
-      case 'BUTTON':
-      case 'IMAGE':
-      case 'RESET':
-      case 'SUBMIT':
-        return 'button';
-
-      case 'CHECKBOX':
-        return 'checkbox';
-
-      case 'RADIO':
-        return 'radio';
-
-      case 'RANGE':
-        return 'slider';
-
-      case 'EMAIL':
-      case 'PASSWORD':
-      case 'SEARCH': // with [list] selector it's combobox
-
-      case 'TEL': // with [list] selector it's combobox
-
-      case 'URL': // with [list] selector it's combobox
-
-      default:
-        return 'textbox';
-    }
-  }
-
-  return 'textbox';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/li.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/li.js
deleted file mode 100644
index 3baab3a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/li.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForLi;
-
-/**
- * Returns the implicit role for an li tag.
- */
-function getImplicitRoleForLi() {
-  return 'listitem';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/link.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/link.js
deleted file mode 100644
index bc14bb2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/link.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForLink;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for a link tag.
- */
-function getImplicitRoleForLink(attributes) {
-  if ((0, _jsxAstUtils.getProp)(attributes, 'href')) {
-    return 'link';
-  }
-
-  return '';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menu.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menu.js
deleted file mode 100644
index d3339d5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menu.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForMenu;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for a menu tag.
- */
-function getImplicitRoleForMenu(attributes) {
-  var type = (0, _jsxAstUtils.getProp)(attributes, 'type');
-
-  if (type) {
-    var value = (0, _jsxAstUtils.getLiteralPropValue)(type);
-    return value && value.toUpperCase() === 'TOOLBAR' ? 'toolbar' : '';
-  }
-
-  return '';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menuitem.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menuitem.js
deleted file mode 100644
index 51154e5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/menuitem.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForMenuitem;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns the implicit role for a menuitem tag.
- */
-function getImplicitRoleForMenuitem(attributes) {
-  var type = (0, _jsxAstUtils.getProp)(attributes, 'type');
-
-  if (type) {
-    var value = (0, _jsxAstUtils.getLiteralPropValue)(type) || '';
-
-    switch (typeof value === 'string' && value.toUpperCase()) {
-      case 'COMMAND':
-        return 'menuitem';
-
-      case 'CHECKBOX':
-        return 'menuitemcheckbox';
-
-      case 'RADIO':
-        return 'menuitemradio';
-
-      default:
-        return '';
-    }
-  }
-
-  return '';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/meter.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/meter.js
deleted file mode 100644
index 5f23304..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/meter.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForMeter;
-
-/**
- * Returns the implicit role for a meter tag.
- */
-function getImplicitRoleForMeter() {
-  return 'progressbar';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/nav.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/nav.js
deleted file mode 100644
index c7132f9..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/nav.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForNav;
-
-/**
- * Returns the implicit role for a nav tag.
- */
-function getImplicitRoleForNav() {
-  return 'navigation';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ol.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ol.js
deleted file mode 100644
index 4bd0474..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ol.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForOl;
-
-/**
- * Returns the implicit role for an ol tag.
- */
-function getImplicitRoleForOl() {
-  return 'list';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/option.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/option.js
deleted file mode 100644
index 473c6fc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/option.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForOption;
-
-/**
- * Returns the implicit role for an option tag.
- */
-function getImplicitRoleForOption() {
-  return 'option';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/output.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/output.js
deleted file mode 100644
index 1255fed..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/output.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForOutput;
-
-/**
- * Returns the implicit role for an output tag.
- */
-function getImplicitRoleForOutput() {
-  return 'status';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/progress.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/progress.js
deleted file mode 100644
index 10c5616..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/progress.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForProgress;
-
-/**
- * Returns the implicit role for a progress tag.
- */
-function getImplicitRoleForProgress() {
-  return 'progressbar';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/section.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/section.js
deleted file mode 100644
index 33e3cbf..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/section.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForSection;
-
-/**
- * Returns the implicit role for a section tag.
- */
-function getImplicitRoleForSection() {
-  return 'region';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/select.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/select.js
deleted file mode 100644
index 01359d2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/select.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForSelect;
-
-/**
- * Returns the implicit role for a select tag.
- */
-function getImplicitRoleForSelect() {
-  return 'listbox';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tbody.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tbody.js
deleted file mode 100644
index 99f1b51..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tbody.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForTbody;
-
-/**
- * Returns the implicit role for a tbody tag.
- */
-function getImplicitRoleForTbody() {
-  return 'rowgroup';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/textarea.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/textarea.js
deleted file mode 100644
index 7dde0cc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/textarea.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForTextarea;
-
-/**
- * Returns the implicit role for a textarea tag.
- */
-function getImplicitRoleForTextarea() {
-  return 'textbox';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tfoot.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tfoot.js
deleted file mode 100644
index d9bdd2c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/tfoot.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForTfoot;
-
-/**
- * Returns the implicit role for a tfoot tag.
- */
-function getImplicitRoleForTfoot() {
-  return 'rowgroup';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/thead.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/thead.js
deleted file mode 100644
index be423d0..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/thead.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForThead;
-
-/**
- * Returns the implicit role for a thead tag.
- */
-function getImplicitRoleForThead() {
-  return 'rowgroup';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ul.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ul.js
deleted file mode 100644
index 4916833..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/implicitRoles/ul.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = getImplicitRoleForUl;
-
-/**
- * Returns the implicit role for a ul tag.
- */
-function getImplicitRoleForUl() {
-  return 'list';
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isAbstractRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isAbstractRole.js
deleted file mode 100644
index 27f6037..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isAbstractRole.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var abstractRoles = new Set((0, _toConsumableArray2["default"])(_ariaQuery.roles.keys()).filter(function (role) {
-  return _ariaQuery.roles.get(role)["abstract"];
-}));
-var DOMElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-
-var isAbstractRole = function isAbstractRole(tagName, attributes) {
-  // Do not test higher level JSX components, as we do not know what
-  // low-level DOM element this maps to.
-  if (DOMElements.indexOf(tagName) === -1) {
-    return false;
-  }
-
-  var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role'));
-  return abstractRoles.has(role);
-};
-
-var _default = isAbstractRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isDOMElement.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isDOMElement.js
deleted file mode 100644
index d37e192..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isDOMElement.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var domElements = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-/**
- * Returns boolean indicating whether the given element is a DOM element.
- */
-
-var isDOMElement = function isDOMElement(tagName) {
-  return (0, _arrayIncludes["default"])(domElements, tagName);
-};
-
-var _default = isDOMElement;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isDisabledElement.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isDisabledElement.js
deleted file mode 100644
index 4dd64e1..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isDisabledElement.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var isDisabledElement = function isDisabledElement(attributes) {
-  var disabledAttr = (0, _jsxAstUtils.getProp)(attributes, 'disabled');
-  var disabledAttrValue = (0, _jsxAstUtils.getPropValue)(disabledAttr);
-  var isHTML5Disabled = disabledAttr && disabledAttrValue !== undefined;
-
-  if (isHTML5Disabled) {
-    return true;
-  }
-
-  var ariaDisabledAttr = (0, _jsxAstUtils.getProp)(attributes, 'aria-disabled');
-  var ariaDisabledAttrValue = (0, _jsxAstUtils.getLiteralPropValue)(ariaDisabledAttr);
-
-  if (ariaDisabledAttr && ariaDisabledAttrValue !== undefined && ariaDisabledAttrValue === true) {
-    return true;
-  }
-
-  return false;
-};
-
-var _default = isDisabledElement;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader.js
deleted file mode 100644
index a99247c..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isHiddenFromScreenReader.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns boolean indicating that the aria-hidden prop
- * is present or the value is true. Will also return true if
- * there is an input with type='hidden'.
- *
- * <div aria-hidden /> is equivalent to the DOM as <div aria-hidden=true />.
- */
-var isHiddenFromScreenReader = function isHiddenFromScreenReader(type, attributes) {
-  if (type.toUpperCase() === 'INPUT') {
-    var hidden = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'type'));
-
-    if (hidden && hidden.toUpperCase() === 'HIDDEN') {
-      return true;
-    }
-  }
-
-  var ariaHidden = (0, _jsxAstUtils.getPropValue)((0, _jsxAstUtils.getProp)(attributes, 'aria-hidden'));
-  return ariaHidden === true;
-};
-
-var _default = isHiddenFromScreenReader;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveElement.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveElement.js
deleted file mode 100644
index 0498c1f..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveElement.js
+++ /dev/null
@@ -1,133 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _axobjectQuery = require("axobject-query");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _attributesComparator = _interopRequireDefault(require("./attributesComparator"));
-
-var domKeys = (0, _toConsumableArray2["default"])(_ariaQuery.dom.keys());
-var roleKeys = (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys());
-var elementRoleEntries = (0, _toConsumableArray2["default"])(_ariaQuery.elementRoles);
-var nonInteractiveRoles = new Set(roleKeys.filter(function (name) {
-  var role = _ariaQuery.roles.get(name);
-
-  return !role["abstract"] && !role.superClass.some(function (classes) {
-    return (0, _arrayIncludes["default"])(classes, 'widget');
-  });
-}));
-var interactiveRoles = new Set([].concat(roleKeys, // 'toolbar' does not descend from widget, but it does support
-// aria-activedescendant, thus in practice we treat it as a widget.
-'toolbar').filter(function (name) {
-  var role = _ariaQuery.roles.get(name);
-
-  return !role["abstract"] && role.superClass.some(function (classes) {
-    return (0, _arrayIncludes["default"])(classes, 'widget');
-  });
-}));
-var nonInteractiveElementRoleSchemas = elementRoleEntries.reduce(function (accumulator, _ref) {
-  var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
-      elementSchema = _ref2[0],
-      roleSet = _ref2[1];
-
-  if ((0, _toConsumableArray2["default"])(roleSet).every(function (role) {
-    return nonInteractiveRoles.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-var interactiveElementRoleSchemas = elementRoleEntries.reduce(function (accumulator, _ref3) {
-  var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
-      elementSchema = _ref4[0],
-      roleSet = _ref4[1];
-
-  if ((0, _toConsumableArray2["default"])(roleSet).some(function (role) {
-    return interactiveRoles.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-var interactiveAXObjects = new Set((0, _toConsumableArray2["default"])(_axobjectQuery.AXObjects.keys()).filter(function (name) {
-  return _axobjectQuery.AXObjects.get(name).type === 'widget';
-}));
-var interactiveElementAXObjectSchemas = (0, _toConsumableArray2["default"])(_axobjectQuery.elementAXObjects).reduce(function (accumulator, _ref5) {
-  var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
-      elementSchema = _ref6[0],
-      AXObjectSet = _ref6[1];
-
-  if ((0, _toConsumableArray2["default"])(AXObjectSet).every(function (role) {
-    return interactiveAXObjects.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-
-function checkIsInteractiveElement(tagName, attributes) {
-  function elementSchemaMatcher(elementSchema) {
-    return tagName === elementSchema.name && (0, _attributesComparator["default"])(elementSchema.attributes, attributes);
-  } // Check in elementRoles for inherent interactive role associations for
-  // this element.
-
-
-  var isInherentInteractiveElement = interactiveElementRoleSchemas.some(elementSchemaMatcher);
-
-  if (isInherentInteractiveElement) {
-    return true;
-  } // Check in elementRoles for inherent non-interactive role associations for
-  // this element.
-
-
-  var isInherentNonInteractiveElement = nonInteractiveElementRoleSchemas.some(elementSchemaMatcher);
-
-  if (isInherentNonInteractiveElement) {
-    return false;
-  } // Check in elementAXObjects for AX Tree associations for this element.
-
-
-  var isInteractiveAXElement = interactiveElementAXObjectSchemas.some(elementSchemaMatcher);
-
-  if (isInteractiveAXElement) {
-    return true;
-  }
-
-  return false;
-}
-/**
- * Returns boolean indicating whether the given element is
- * interactive on the DOM or not. Usually used when an element
- * has a dynamic handler on it and we need to discern whether or not
- * it's intention is to be interacted with on the DOM.
- */
-
-
-var isInteractiveElement = function isInteractiveElement(tagName, attributes) {
-  // Do not test higher level JSX components, as we do not know what
-  // low-level DOM element this maps to.
-  if (!(0, _arrayIncludes["default"])(domKeys, tagName)) {
-    return false;
-  }
-
-  return checkIsInteractiveElement(tagName, attributes);
-};
-
-var _default = isInteractiveElement;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveRole.js
deleted file mode 100644
index d82069a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isInteractiveRole.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var roles = (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys());
-var interactiveRoles = roles.filter(function (name) {
-  return !_ariaQuery.roles.get(name)["abstract"];
-}).filter(function (name) {
-  return _ariaQuery.roles.get(name).superClass.some(function (klasses) {
-    return (0, _arrayIncludes["default"])(klasses, 'widget');
-  });
-}); // 'toolbar' does not descend from widget, but it does support
-// aria-activedescendant, thus in practice we treat it as a widget.
-
-interactiveRoles.push('toolbar');
-/**
- * Returns boolean indicating whether the given element has a role
- * that is associated with an interactive component. Used when an element
- * has a dynamic handler on it and we need to discern whether or not
- * its intention is to be interacted with in the DOM.
- *
- * isInteractiveRole is a Logical Disjunction:
- * https://en.wikipedia.org/wiki/Logical_disjunction
- * The JSX element does not have a tagName or it has a tagName and a role
- * attribute with a value in the set of non-interactive roles.
- */
-
-var isInteractiveRole = function isInteractiveRole(tagName, attributes) {
-  var value = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role')); // If value is undefined, then the role attribute will be dropped in the DOM.
-  // If value is null, then getLiteralAttributeValue is telling us that the
-  // value isn't in the form of a literal
-
-  if (value === undefined || value === null) {
-    return false;
-  }
-
-  var isInteractive = false;
-  var normalizedValues = String(value).toLowerCase().split(' ');
-  var validRoles = normalizedValues.reduce(function (accumulator, name) {
-    if ((0, _arrayIncludes["default"])(roles, name)) {
-      accumulator.push(name);
-    }
-
-    return accumulator;
-  }, []);
-
-  if (validRoles.length > 0) {
-    // The first role value is a series takes precedence.
-    isInteractive = (0, _arrayIncludes["default"])(interactiveRoles, validRoles[0]);
-  }
-
-  return isInteractive;
-};
-
-var _default = isInteractiveRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveElement.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveElement.js
deleted file mode 100644
index b261529..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveElement.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _axobjectQuery = require("axobject-query");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _attributesComparator = _interopRequireDefault(require("./attributesComparator"));
-
-var roleKeys = (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys());
-var elementRoleEntries = (0, _toConsumableArray2["default"])(_ariaQuery.elementRoles);
-var nonInteractiveRoles = new Set(roleKeys.filter(function (name) {
-  var role = _ariaQuery.roles.get(name);
-
-  return !role["abstract"] && !role.superClass.some(function (classes) {
-    return (0, _arrayIncludes["default"])(classes, 'widget');
-  });
-}));
-var interactiveRoles = new Set([].concat(roleKeys, // 'toolbar' does not descend from widget, but it does support
-// aria-activedescendant, thus in practice we treat it as a widget.
-'toolbar').filter(function (name) {
-  var role = _ariaQuery.roles.get(name);
-
-  return !role["abstract"] && role.superClass.some(function (classes) {
-    return (0, _arrayIncludes["default"])(classes, 'widget');
-  });
-}));
-var nonInteractiveElementRoleSchemas = elementRoleEntries.reduce(function (accumulator, _ref) {
-  var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
-      elementSchema = _ref2[0],
-      roleSet = _ref2[1];
-
-  if ((0, _toConsumableArray2["default"])(roleSet).every(function (role) {
-    return nonInteractiveRoles.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-var interactiveElementRoleSchemas = elementRoleEntries.reduce(function (accumulator, _ref3) {
-  var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
-      elementSchema = _ref4[0],
-      roleSet = _ref4[1];
-
-  if ((0, _toConsumableArray2["default"])(roleSet).some(function (role) {
-    return interactiveRoles.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-var nonInteractiveAXObjects = new Set((0, _toConsumableArray2["default"])(_axobjectQuery.AXObjects.keys()).filter(function (name) {
-  return (0, _arrayIncludes["default"])(['window', 'structure'], _axobjectQuery.AXObjects.get(name).type);
-}));
-var nonInteractiveElementAXObjectSchemas = (0, _toConsumableArray2["default"])(_axobjectQuery.elementAXObjects).reduce(function (accumulator, _ref5) {
-  var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
-      elementSchema = _ref6[0],
-      AXObjectSet = _ref6[1];
-
-  if ((0, _toConsumableArray2["default"])(AXObjectSet).every(function (role) {
-    return nonInteractiveAXObjects.has(role);
-  })) {
-    accumulator.push(elementSchema);
-  }
-
-  return accumulator;
-}, []);
-
-function checkIsNonInteractiveElement(tagName, attributes) {
-  function elementSchemaMatcher(elementSchema) {
-    return tagName === elementSchema.name && (0, _attributesComparator["default"])(elementSchema.attributes, attributes);
-  } // Check in elementRoles for inherent non-interactive role associations for
-  // this element.
-
-
-  var isInherentNonInteractiveElement = nonInteractiveElementRoleSchemas.some(elementSchemaMatcher);
-
-  if (isInherentNonInteractiveElement) {
-    return true;
-  } // Check in elementRoles for inherent interactive role associations for
-  // this element.
-
-
-  var isInherentInteractiveElement = interactiveElementRoleSchemas.some(elementSchemaMatcher);
-
-  if (isInherentInteractiveElement) {
-    return false;
-  } // Check in elementAXObjects for AX Tree associations for this element.
-
-
-  var isNonInteractiveAXElement = nonInteractiveElementAXObjectSchemas.some(elementSchemaMatcher);
-
-  if (isNonInteractiveAXElement) {
-    return true;
-  }
-
-  return false;
-}
-/**
- * Returns boolean indicating whether the given element is a non-interactive
- * element. If the element has either a non-interactive role assigned or it
- * is an element with an inherently non-interactive role, then this utility
- * returns true. Elements that lack either an explicitly assigned role or
- * an inherent role are not considered. For those, this utility returns false
- * because a positive determination of interactiveness cannot be determined.
- */
-
-
-var isNonInteractiveElement = function isNonInteractiveElement(tagName, attributes) {
-  // Do not test higher level JSX components, as we do not know what
-  // low-level DOM element this maps to.
-  if (!_ariaQuery.dom.has(tagName)) {
-    return false;
-  }
-
-  return checkIsNonInteractiveElement(tagName, attributes);
-};
-
-var _default = isNonInteractiveElement;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveRole.js
deleted file mode 100644
index afd7d28..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonInteractiveRole.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _ariaQuery = require("aria-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var roles = (0, _toConsumableArray2["default"])(_ariaQuery.roles.keys());
-var nonInteractiveRoles = roles.filter(function (name) {
-  return !_ariaQuery.roles.get(name)["abstract"];
-}).filter(function (name) {
-  return !_ariaQuery.roles.get(name).superClass.some(function (klasses) {
-    return (0, _arrayIncludes["default"])(klasses, 'widget');
-  });
-});
-/**
- * Returns boolean indicating whether the given element has a role
- * that is associated with a non-interactive component. Non-interactive roles
- * include `listitem`, `article`, or `dialog`. These are roles that indicate
- * for the most part containers.
- *
- * Elements with these roles should not respond or handle user interactions.
- * For example, an `onClick` handler should not be assigned to an element with
- * the role `listitem`. An element inside the `listitem`, like a button or a
- * link, should handle the click.
- *
- * This utility returns true for elements that are assigned a non-interactive
- * role. It will return false for elements that do not have a role. So whereas
- * a `div` might be considered non-interactive, for the purpose of this utility,
- * it is considered neither interactive nor non-interactive -- a determination
- * cannot be made in this case and false is returned.
- */
-
-var isNonInteractiveRole = function isNonInteractiveRole(tagName, attributes) {
-  // Do not test higher level JSX components, as we do not know what
-  // low-level DOM element this maps to.
-  if (!_ariaQuery.dom.has(tagName)) {
-    return false;
-  }
-
-  var role = (0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role'));
-  var isNonInteractive = false;
-  var normalizedValues = String(role).toLowerCase().split(' ');
-  var validRoles = normalizedValues.reduce(function (accumulator, name) {
-    if ((0, _arrayIncludes["default"])(roles, name)) {
-      accumulator.push(name);
-    }
-
-    return accumulator;
-  }, []);
-
-  if (validRoles.length > 0) {
-    // The first role value is a series takes precedence.
-    isNonInteractive = (0, _arrayIncludes["default"])(nonInteractiveRoles, validRoles[0]);
-  }
-
-  return isNonInteractive;
-};
-
-var _default = isNonInteractiveRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonLiteralProperty.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonLiteralProperty.js
deleted file mode 100644
index 225df54..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isNonLiteralProperty.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns boolean indicating whether the given element has been specified with
- * an AST node with a non-literal type.
- *
- * Returns true if the elements has a role and its value is not of a type Literal.
- * Otherwise returns false.
- */
-var isNonLiteralProperty = function isNonLiteralProperty(attributes, propName) {
-  var prop = (0, _jsxAstUtils.getProp)(attributes, propName);
-  if (!prop) return false;
-  var propValue = prop.value;
-  if (!propValue) return false;
-  if (propValue.type === 'Literal') return false;
-
-  if (propValue.type === 'JSXExpressionContainer') {
-    var expression = propValue.expression;
-    if (expression.type === 'Identifier' && expression.name === 'undefined') return false;
-    if (expression.type === 'JSXText') return false;
-  }
-
-  return true;
-};
-
-var _default = isNonLiteralProperty;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isPresentationRole.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isPresentationRole.js
deleted file mode 100644
index a5441dc..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isPresentationRole.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var presentationRoles = new Set(['presentation', 'none']);
-
-var isPresentationRole = function isPresentationRole(tagName, attributes) {
-  return presentationRoles.has((0, _jsxAstUtils.getLiteralPropValue)((0, _jsxAstUtils.getProp)(attributes, 'role')));
-};
-
-var _default = isPresentationRole;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement.js
deleted file mode 100644
index ff15d5a..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/isSemanticRoleElement.js
+++ /dev/null
@@ -1,68 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = void 0;
-
-var _axobjectQuery = require("axobject-query");
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-var isSemanticRoleElement = function isSemanticRoleElement(elementType, attributes) {
-  var roleAttr = (0, _jsxAstUtils.getProp)(attributes, 'role');
-  var res = false;
-  var roleAttrValue = (0, _jsxAstUtils.getLiteralPropValue)(roleAttr);
-
-  _axobjectQuery.elementAXObjects.forEach(function (axObjects, concept) {
-    if (res) {
-      return;
-    }
-
-    if (concept.name === elementType && (concept.attributes || []).every(function (cAttr) {
-      return attributes.some(function (attr) {
-        if (!attr.type || attr.type !== 'JSXAttribute') {
-          return false;
-        }
-
-        var namesMatch = cAttr.name === (0, _jsxAstUtils.propName)(attr);
-        var valuesMatch;
-
-        if (cAttr.value !== undefined) {
-          valuesMatch = cAttr.value === (0, _jsxAstUtils.getLiteralPropValue)(attr);
-        }
-
-        if (!namesMatch) {
-          return false;
-        }
-
-        return namesMatch && valuesMatch !== undefined ? valuesMatch : true;
-      });
-    })) {
-      axObjects.forEach(function (name) {
-        if (res) {
-          return;
-        }
-
-        var roles = _axobjectQuery.AXObjectRoles.get(name);
-
-        if (roles) {
-          roles.forEach(function (role) {
-            if (res === true) {
-              return;
-            }
-
-            if (role.name === roleAttrValue) {
-              res = true;
-            }
-          });
-        }
-      });
-    }
-  });
-
-  return res;
-};
-
-var _default = isSemanticRoleElement;
-exports["default"] = _default;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent.js
deleted file mode 100644
index 6f91b35..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/mayContainChildComponent.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = mayContainChildComponent;
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns true if it can positively determine that the element lacks an
- * accessible label. If no determination is possible, it returns false. Treat
- * false as an unknown value. The element might still have an accessible label,
- * but this module cannot determine it positively.
- *
- * 
- */
-function mayContainChildComponent(root, componentName) {
-  var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
-
-  function traverseChildren(node, depth) {
-    // Bail when maxDepth is exceeded.
-    if (depth > maxDepth) {
-      return false;
-    }
-
-    if (node.children) {
-      /* $FlowFixMe */
-      for (var i = 0; i < node.children.length; i += 1) {
-        /* $FlowFixMe */
-        var childNode = node.children[i]; // Assume an expression container renders a label. It is the best we can
-        // do in this case.
-
-        if (childNode.type === 'JSXExpressionContainer') {
-          return true;
-        } // Check for comonents with the provided name.
-
-
-        if (childNode.type === 'JSXElement' && childNode.openingElement && (0, _jsxAstUtils.elementType)(childNode.openingElement) === componentName) {
-          return true;
-        }
-
-        if (traverseChildren(childNode, depth + 1)) {
-          return true;
-        }
-      }
-    }
-
-    return false;
-  }
-
-  return traverseChildren(root, 1);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/mayHaveAccessibleLabel.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/mayHaveAccessibleLabel.js
deleted file mode 100644
index d821dac..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/mayHaveAccessibleLabel.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports["default"] = mayHaveAccessibleLabel;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _arrayIncludes = _interopRequireDefault(require("array-includes"));
-
-var _jsxAstUtils = require("jsx-ast-utils");
-
-/**
- * Returns true if a labelling element is found or if it cannot determine if
- * a label is present because of expression containers or spread attributes.
- * A false return value means that the node definitely does not have a label,
- * but a true return return value means that the node may or may not have a
- * label.
- *
- * 
- */
-function hasLabellingProp(openingElement) {
-  var additionalLabellingProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
-  var labellingProps = ['alt', // Assume alt is used correctly on an image
-  'aria-label', 'aria-labelledby'].concat((0, _toConsumableArray2["default"])(additionalLabellingProps));
-  return openingElement.attributes.some(function (attribute) {
-    // We must assume that a spread value contains a labelling prop.
-    if (attribute.type !== 'JSXAttribute') {
-      return true;
-    } // Attribute matches.
-
-
-    if ((0, _arrayIncludes["default"])(labellingProps, (0, _jsxAstUtils.propName)(attribute)) && !!(0, _jsxAstUtils.getPropValue)(attribute)) {
-      return true;
-    }
-
-    return false;
-  });
-}
-
-function mayHaveAccessibleLabel(root) {
-  var maxDepth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
-  var additionalLabellingProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
-
-  function checkElement(node, depth) {
-    // Bail when maxDepth is exceeded.
-    if (depth > maxDepth) {
-      return false;
-    } // Check for literal text.
-
-
-    if (node.type === 'Literal' && !!node.value) {
-      return true;
-    } // Assume an expression container renders a label. It is the best we can
-    // do in this case.
-
-
-    if (node.type === 'JSXExpressionContainer') {
-      return true;
-    } // Check for JSXText.
-    // $FlowFixMe Remove after updating ast-types-flow
-
-
-    if (node.type === 'JSXText' && !!node.value) {
-      return true;
-    } // Check for labelling props.
-
-
-    if (node.openingElement
-    /* $FlowFixMe */
-    && hasLabellingProp(node.openingElement, additionalLabellingProps)) {
-      return true;
-    } // Recurse into the child element nodes.
-
-
-    if (node.children) {
-      /* $FlowFixMe */
-      for (var i = 0; i < node.children.length; i += 1) {
-        /* $FlowFixMe */
-        if (checkElement(node.children[i], depth + 1)) {
-          return true;
-        }
-      }
-    }
-
-    return false;
-  }
-
-  return checkElement(root, 0);
-}
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/lib/util/schemas.js b/node_modules/eslint-plugin-jsx-a11y/lib/util/schemas.js
deleted file mode 100644
index 7238ced..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/lib/util/schemas.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.generateObjSchema = exports.enumArraySchema = exports.arraySchema = void 0;
-
-/**
- * JSON schema to accept an array of unique strings
- */
-var arraySchema = {
-  type: 'array',
-  items: {
-    type: 'string'
-  },
-  uniqueItems: true,
-  additionalItems: false
-};
-/**
- * JSON schema to accept an array of unique strings from an enumerated list.
- */
-
-exports.arraySchema = arraySchema;
-
-var enumArraySchema = function enumArraySchema() {
-  var enumeratedList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var minItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
-  return Object.assign({}, arraySchema, {
-    items: {
-      type: 'string',
-      "enum": enumeratedList
-    },
-    minItems
-  });
-};
-/**
- * Factory function to generate an object schema
- * with specified properties object
- */
-
-
-exports.enumArraySchema = enumArraySchema;
-
-var generateObjSchema = function generateObjSchema() {
-  var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  var required = arguments.length > 1 ? arguments[1] : undefined;
-  return {
-    type: 'object',
-    properties,
-    required
-  };
-};
-
-exports.generateObjSchema = generateObjSchema;
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-jsx-a11y/package.json b/node_modules/eslint-plugin-jsx-a11y/package.json
deleted file mode 100644
index d8446ec..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
-  "name": "eslint-plugin-jsx-a11y",
-  "version": "6.2.3",
-  "description": "Static AST checker for accessibility rules on JSX elements.",
-  "keywords": [
-    "eslint",
-    "eslintplugin",
-    "eslint-plugin",
-    "a11y",
-    "accessibility",
-    "jsx"
-  ],
-  "author": "Ethan Cohen",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/evcohen/eslint-plugin-jsx-a11y"
-  },
-  "main": "lib/index.js",
-  "scripts": {
-    "build": "rimraf lib && babel src --out-dir lib --copy-files",
-    "coveralls": "cat ./reports/lcov.info | coveralls",
-    "create": "node ./scripts/create-rule",
-    "flow": "if [ ! -e ./.flowconfig ]; then echo \"Could not find .flowconfig\"; else flow; test $? -eq 0 -o $? -eq 2; fi",
-    "lint:fix": "npm run lint -- --fix",
-    "lint": "eslint  --config .eslintrc src __tests__ __mocks__ scripts",
-    "prepublish": "safe-publish-latest && not-in-publish || (npm run lint && npm run flow && npm run jest && npm run build)",
-    "pretest": "npm run lint:fix && npm run flow",
-    "test": "npm run jest",
-    "test:ci": "npm run jest -- --ci --runInBand",
-    "jest": "jest --coverage __tests__/**/*"
-  },
-  "devDependencies": {
-    "@babel/cli": "^7.4.4",
-    "@babel/core": "^7.0.0",
-    "@babel/plugin-transform-flow-strip-types": "^7.2.3",
-    "babel-eslint": "^10.0.1",
-    "babel-jest": "^24.0.0",
-    "babel-preset-airbnb": "^4.0.0",
-    "coveralls": "^3.0.1",
-    "eslint": "^3 || ^4 || ^5 || ^6",
-    "eslint-config-airbnb-base": "^13.0.0",
-    "eslint-plugin-flowtype": "^3.5.0",
-    "eslint-plugin-import": "^2.18.0",
-    "estraverse": "^4.2.0",
-    "expect": "^24.3.1",
-    "flow-bin": "^0.102.0",
-    "in-publish": "^2.0.0",
-    "jest": "^24.0.0",
-    "jscodeshift": "^0.6.0",
-    "minimist": "^1.2.0",
-    "object.assign": "^4.1.0",
-    "rimraf": "^2.6.3",
-    "safe-publish-latest": "^1.1.1",
-    "to-ast": "^1.0.0"
-  },
-  "engines": {
-    "node": ">=4.0"
-  },
-  "license": "MIT",
-  "dependencies": {
-    "@babel/runtime": "^7.4.5",
-    "aria-query": "^3.0.0",
-    "array-includes": "^3.0.3",
-    "ast-types-flow": "^0.0.7",
-    "axobject-query": "^2.0.2",
-    "damerau-levenshtein": "^1.0.4",
-    "emoji-regex": "^7.0.2",
-    "has": "^1.0.3",
-    "jsx-ast-utils": "^2.2.1"
-  },
-  "peerDependencies": {
-    "eslint": "^3 || ^4 || ^5 || ^6"
-  },
-  "jest": {
-    "coverageReporters": [
-      "lcov",
-      "html"
-    ],
-    "coverageDirectory": "reports",
-    "roots": [
-      "__tests__"
-    ],
-    "testPathIgnorePatterns": [
-      "__tests__/__util__/"
-    ],
-    "testEnvironment": "node"
-  },
-  "greenkeeper": {
-    "ignore": [
-      "jest",
-      "babel-jest"
-    ]
-  }
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/addRuleToIndex.js b/node_modules/eslint-plugin-jsx-a11y/scripts/addRuleToIndex.js
deleted file mode 100644
index 12657a2..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/addRuleToIndex.js
+++ /dev/null
@@ -1,53 +0,0 @@
-export const parser = 'flow';
-
-export default function transformer(file, api, options) {
-  const j = api.jscodeshift;
-  const s = j(file.source);
-  const { ruleName, rulePath } = options || {};
-
-  const nameSort = (a, b) => {
-    const aName = a.key.type === 'Literal' ? a.key.value : a.key.name;
-    const bName = b.key.type === 'Literal' ? b.key.value : b.key.name;
-    if (aName < bName) {
-      return -1;
-    }
-    if (bName < aName) {
-      return 1;
-    }
-    return 0;
-  };
-
-  let changesMade = 0;
-
-  const rulePathInSrc = `./${rulePath.match(/src\/(.*)\.js/)[1]}`;
-
-  changesMade += s
-    .find(j.Identifier, {
-      name: 'rules',
-    })
-    .forEach((path, index) => {
-      // Add rule path.
-      if (index === 0) {
-        path.parentPath.value.value.properties.unshift(j.property(
-          'init',
-          j.literal(ruleName),
-          j.callExpression(j.identifier('require'), [j.literal(rulePathInSrc)]),
-        ));
-        path.parentPath.value.value.properties.sort(nameSort);
-      }
-      // Set default reporting to error.
-      if (index === 1) {
-        path.parentPath.value.value.properties.unshift(j.property('init', j.literal(`jsx-a11y/${ruleName}`), j.literal('error')));
-        path.parentPath.value.value.properties.sort(nameSort);
-      }
-    }).length;
-
-  if (changesMade === 0) {
-    return null;
-  }
-
-  return s.toSource({
-    quote: 'single',
-    trailingComma: true,
-  });
-}
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/doc.js b/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/doc.js
deleted file mode 100644
index 0eb9bc5..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/doc.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const docBoilerplateGenerator = name => `# ${name}
-
-Write a useful explanation here!
-
-### References
-
-  1.
-
-## Rule details
-
-This rule takes no arguments.
-
-### Succeed
-\`\`\`jsx
-<div />
-\`\`\`
-
-### Fail
-\`\`\`jsx
-
-\`\`\`
-`;
-
-module.exports = docBoilerplateGenerator;
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/rule.js b/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/rule.js
deleted file mode 100644
index cfc90ef..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/rule.js
+++ /dev/null
@@ -1,35 +0,0 @@
-const ruleBoilerplate = (author, description) => `/**
- * @fileoverview ${description}
- * @author ${author}
- * @flow
- */
-
-// ----------------------------------------------------------------------------
-// Rule Definition
-// ----------------------------------------------------------------------------
-
-import type { JSXOpeningElement } from 'ast-types-flow';
-import { generateObjSchema } from '../util/schemas';
-
-const errorMessage = '';
-
-const schema = generateObjSchema();
-
-module.exports = {
-  meta: {
-    docs: {},
-    schema: [schema],
-  },
-
-  create: (context: ESLintContext) => ({
-    JSXOpeningElement: (node: JSXOpeningElement) => {
-      context.report({
-        node,
-        message: errorMessage,
-      });
-    },
-  }),
-};
-`;
-
-module.exports = ruleBoilerplate;
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/test.js b/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/test.js
deleted file mode 100644
index 46f220d..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/boilerplate/test.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const testBoilerplate = (name, author, description) => `/* eslint-env jest */
-/**
- * @fileoverview ${description}
- * @author ${author}
- */
-
-// -----------------------------------------------------------------------------
-// Requirements
-// -----------------------------------------------------------------------------
-
-import { RuleTester } from 'eslint';
-import parserOptionsMapper from '../../__util__/parserOptionsMapper';
-import rule from '../../../src/rules/${name}';
-
-// -----------------------------------------------------------------------------
-// Tests
-// -----------------------------------------------------------------------------
-
-const ruleTester = new RuleTester();
-
-const expectedError = {
-  message: '',
-  type: 'JSXOpeningElement',
-};
-
-ruleTester.run('${name}', rule, {
-  valid: [
-    { code: '<div />;' },
-  ].map(parserOptionsMapper),
-  invalid: [].map(parserOptionsMapper),
-});
-`;
-
-module.exports = testBoilerplate;
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.js b/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.js
deleted file mode 100755
index 30bc8bb..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.js
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env node --harmony
-const path = require('path');
-const fs = require('fs');
-const { exec } = require('child_process');
-const argv = require('minimist')(process.argv.slice(2)); // eslint-disable-line import/no-extraneous-dependencies
-const jscodeshiftJSON = require('jscodeshift/package.json'); // eslint-disable-line import/no-extraneous-dependencies
-
-const ruleBoilerplateGenerator = require('./boilerplate/rule');
-const testBoilerplateGenerator = require('./boilerplate/test');
-const docBoilerplateGenerator = require('./boilerplate/doc');
-
-const ruleName = argv._[0];
-const author = argv.author || '$AUTHOR';
-const description = argv.description || '$DESCRIPTION';
-
-const rulePath = path.resolve(`src/rules/${ruleName}.js`);
-const testPath = path.resolve(`__tests__/src/rules/${ruleName}-test.js`);
-const docsPath = path.resolve(`docs/rules/${ruleName}.md`);
-
-const jscodeshiftMain = jscodeshiftJSON.main;
-const jscodeshiftPath = require.resolve('jscodeshift');
-const jscodeshiftRoot = jscodeshiftPath.slice(0, jscodeshiftPath.indexOf(jscodeshiftMain));
-
-// Validate
-if (!ruleName) {
-  throw new Error('Rule name is required');
-} else if (fs.existsSync(rulePath)) {
-  throw new Error('Rule already exists!');
-}
-
-// Generate file boilerplate
-const ruleBoilerplate = ruleBoilerplateGenerator(author, description);
-const testBoilerplate = testBoilerplateGenerator(ruleName, author, description);
-const docBoilerplate = docBoilerplateGenerator(ruleName);
-
-// Create new files
-fs.writeFileSync(rulePath, ruleBoilerplate);
-fs.writeFileSync(testPath, testBoilerplate);
-fs.writeFileSync(docsPath, docBoilerplate);
-
-// Add the rule to the index
-exec(
-  [
-    path.join(jscodeshiftRoot, jscodeshiftJSON.bin.jscodeshift),
-    './src/index.js',
-    '-t ./scripts/addRuleToIndex.js',
-    '--extensions js',
-    '--parser flow',
-    `--ruleName=${ruleName}`,
-    `--rulePath=${rulePath}`,
-  ].join(' '),
-  (error) => {
-    if (error) {
-      console.error(`exec error: ${error}`); // eslint-disable-line no-console
-    }
-  },
-);
diff --git a/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.md b/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.md
deleted file mode 100644
index af6bdde..0000000
--- a/node_modules/eslint-plugin-jsx-a11y/scripts/create-rule.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Rule Generator
-
-```bash
-$ node scripts/create-rule.js rule-name --author="Your name" --description="Description of the rule"
-# OR with npm script alias
-$ npm run create -- rule-name --author="Your name" --description="Description of rule"
-```
-
-This script will generate three files with basic boilerplate for the given rule:
-1. src/rules/${rule-name}.js
-2. \__tests__/src/rules/${rule-name}-test.js
-3. docs/rules/${rule-name}.md
-
-If the rule already exists or is not specified in the correct format, an error will be thrown.
-
-If we wanted to scaffold a rule for `no-marquee`, we could run:
-```bash
-$ node scripts/create-rule.js no-marquee --author="Ethan Cohen <@evcohen>" --description="Enforce <marquee> elements are not used."
-# OR
-$ npm run create -- no-marquee --author="Ethan Cohen <@evcohen>" --description="Enforce <marquee> elements are not used."
-```
diff --git a/node_modules/eslint-plugin-react/CHANGELOG.md b/node_modules/eslint-plugin-react/CHANGELOG.md
deleted file mode 100644
index 978f887..0000000
--- a/node_modules/eslint-plugin-react/CHANGELOG.md
+++ /dev/null
@@ -1,2933 +0,0 @@
-# Change Log
-All notable changes to this project will be documented in this file.
-This project adheres to [Semantic Versioning](http://semver.org/).
-This change log adheres to standards from [Keep a CHANGELOG](http://keepachangelog.com).
-
-## [7.19.0] - 2020-03-06
-
-### Added
- * [`style-prop-object`][]: Add `allow` option ([#1819][] @hornta)
- * [`jsx-pascal-case`][]: Support unicode characters ([#2557][] @Svish)
-
-### Fixed
- * [`prefer-stateless-function`][]: avoid crash on ts empty constructor ([#2582][] @golopot)
- * [`no-adjacent-inline-elements`][]: avoid a crash ([#2575] @ljharb)
- * [`no-unused-prop-types`][]: Change the reporting to point to a more accurate node ([#2292][] @jseminck)
- * [`self-closing-comp`][]: consider JSXMemberExpression as component too ([#2572][] @Belco90)
- * [`no-unused-prop-types`][]: make `markPropTypesAsUsed` work with `TSEmptyBodyFunctionExpression` AST node ([#2560][] @guillaumewuip)
- * [`displayName`][] (but really, `propTypes` detection): do not crash on empty flow type spreads ([#2570][] @ljharb)
-
-### Changed
- * [readme] Small visual inconsistency ([#2568] @arvigeus)
- * [docs] add `react/` prefix to rule name, for consistency
- * [`no-unescaped-entities`][]: skip test cases that are now parsing errors in acorn-jsx@5.2.0 ([#2583] @golopot)
-
-[7.19.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.3...v7.19.0
-[#2583]: https://github.com/yannickcr/eslint-plugin-react/pull/2583
-[#2582]: https://github.com/yannickcr/eslint-plugin-react/pull/2582
-[#2575]: https://github.com/yannickcr/eslint-plugin-react/issue/2575
-[#2572]: https://github.com/yannickcr/eslint-plugin-react/pull/2572
-[#2570]: https://github.com/yannickcr/eslint-plugin-react/issue/2570
-[#2568]: https://github.com/yannickcr/eslint-plugin-react/pull/2568
-[#2560]: https://github.com/yannickcr/eslint-plugin-react/pull/2560
-[#2557]: https://github.com/yannickcr/eslint-plugin-react/pull/2557
-[#2292]: https://github.com/yannickcr/eslint-plugin-react/pull/2292
-[#1819]: https://github.com/yannickcr/eslint-plugin-react/pull/1819
-
-## [7.18.3] - 2020-02-02
-
-### Fixed
- * [`jsx-indent`][]: don't check literals not within JSX ([#2564][] @toshi-toma)
-
-[7.18.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.2...v7.18.3
-[#2564]: https://github.com/yannickcr/eslint-plugin-react/issue/2564
-
-## [7.18.2] - 2020-02-01
-
-### Fixed
- * [`jsx-indent`][]: avoid a crash on non-string literals ([#2561][] @ljharb)
-
-[7.18.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.1...v7.18.2
-[#2561]: https://github.com/yannickcr/eslint-plugin-react/issue/2561
-
-## [7.18.1] - 2020-02-01
-
-### Fixed
- * [`jsx-indent`][]: Does not check indents for JSXText ([#2542][] @toshi-toma)
- * [`jsx-props-no-spreading`][]: add support for namespaced jsx components ([#2534][] @jonathanpalma)
- * [`jsx-no-target-blank`][]: allow rel to be an expression ([#2544][] @odinho)
- * [`sort-comp`][]: `|` isn’t a valid regex flag; `u` and `s` are (@ljharb)
-
-### Changed
- * [Docs] use `markdown-magic` to automatically sort all rules alphabetically ([#1742][] @ybiquitous)
- * [Docs] [`jsx-props-no-spreading`][]: fix typo to use correct rule ([#2547][] @jonggyun))
-
-[7.18.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.18.0...v7.18.1
-[#2547]: https://github.com/yannickcr/eslint-plugin-react/pull/2547
-[#2544]: https://github.com/yannickcr/eslint-plugin-react/pull/2544
-[#2542]: https://github.com/yannickcr/eslint-plugin-react/pull/2542
-[#2534]: https://github.com/yannickcr/eslint-plugin-react/pull/2534
-[#1742]: https://github.com/yannickcr/eslint-plugin-react/pull/1742
-
-## [7.18.0] - 2020-01-15
-
-### Added
- * [`require-default-props`][]: add option to ignore functional components ([#2532][] @RedTn)
- * [`function-component-definition`][]: Enforce a specific function type for function components ([#2414][] @Stefanwullems)
- * [`no-adjacent-inline-elements`][]: Prevent adjacent inline elements not separated by whitespace ([#1155][] @SeanHayes)
- * [`jsx-no-script-url`][]: prevent usage of `javascript:` URLs ([#2419][] @sergei-startsev)
-
-### Fixed
- * [`jsx-pascal-case`][]: false negative with namespacing ([#1337][] @mfyuce)
- * [`jsx-curly-brace-presence`][]: Fix `curly-brace-presence` edge cases ([#2523][] @rafbgarcia)
- * [`prop-types`][]: Does not validate missing propTypes for LogicalExpression ([#2533][] @toshi-toma)
- * [`no-unknown-property`][]: allowTransparency does not exist in React >= v16.1 ([#1538][] @dawidvdh)
- * [`jsx-curly-brace-presence`][]: Fix error related to tags line break ([#2521][] @rafbgarcia)
- * [`no-typos`][]: Compilation error when method name is string instead of identifier ([#2514][] @shijistar)
- * [`jsx-curly-brace-presence`][]: allow trailing spaces in TemplateLiteral ([#2507][] @doochik)
- * [`no-unused-prop-types`], [`no-unused-state`]: fix false positives when using TS type assertions ([#2536][] @kdmadej)
-
-### Changed
- * [Docs] [`no-render-return-value`][]: Fix title ([#2540][] @micnic)
- * [Refactor]: remove unused codes in util/propTypes ([#2288][] @golopot)
- * [`no-typos`]: check static lifecycle methods ([#2006][] @bsonntag)
- * [Docs] [`jsx-first-prop-new-line`][]: Fix rule name in "Rule Options" section ([#2535][] @barreira)
- * [Tests] [`no-unused-prop-types`][]: Added test cases ([#977][] @dozoisch)
- * [Tests] avoid running tests on pretest job
- * [meta] Move eslint-plugin-eslint-plugin to devDeps ([#2510][] @nstepien)
- * [Deps] update `array-includes`, `object.entries`, `object.fromentries`, `object.values`, `resolve`
-
-[7.18.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.17.0...v7.18.0
-[#2540]: https://github.com/yannickcr/eslint-plugin-react/pull/2540
-[#2536]: https://github.com/yannickcr/eslint-plugin-react/pull/2536
-[#2535]: https://github.com/yannickcr/eslint-plugin-react/pull/2535
-[#2533]: https://github.com/yannickcr/eslint-plugin-react/pull/2533
-[#2532]: https://github.com/yannickcr/eslint-plugin-react/pull/2532
-[#2523]: https://github.com/yannickcr/eslint-plugin-react/pull/2523
-[#2521]: https://github.com/yannickcr/eslint-plugin-react/pull/2521
-[#2514]: https://github.com/yannickcr/eslint-plugin-react/pull/2514
-[#2510]: https://github.com/yannickcr/eslint-plugin-react/pull/2510
-[#2507]: https://github.com/yannickcr/eslint-plugin-react/pull/2507
-[#2419]: https://github.com/yannickcr/eslint-plugin-react/pull/2419
-[#2414]: https://github.com/yannickcr/eslint-plugin-react/pull/2414
-[#2288]: https://github.com/yannickcr/eslint-plugin-react/pull/2288
-[#2006]: https://github.com/yannickcr/eslint-plugin-react/pull/2006
-[#1538]: https://github.com/yannickcr/eslint-plugin-react/pull/1538
-[#1337]: https://github.com/yannickcr/eslint-plugin-react/pull/1337
-[#1155]: https://github.com/yannickcr/eslint-plugin-react/pull/1155
-[#977]: https://github.com/yannickcr/eslint-plugin-react/pull/977
-
-## [7.17.0] - 2019-11-28
-
-### Added
- * [`jsx-no-target-blank`][]: add `allowReferrer` option ([#2478][] @eps1lon)
- * [`jsx-handler-names`][]: add `checkLocalVariables` option ([#2470][] @aub)
- * [`prop-types`][]: Support Flow Type spread ([#2446][] @moroine)
- * [`jsx-props-no-spreading`][]: add `explicitSpread` option to allow explicit spread of props ([#2449][] @pawelnvk)
- * [`jsx-no-target-blank`][]: warn on `target={'_blank'}` expressions ([#2451][] @timkraut)
- * [`function-component-definition`]: Enforce a specific function type for function components ([#2414][] @Stefanwullems)
-
-### Fixed
- * [`sort-prop-types`][], [`jsx-sort-default-props`][]: disable broken autofix ([#2505][] @webOS101)
- * [`no-typos`][]: improve report location ([#2468][] @golopot)
- * [`jsx-no-literals`][]: trim whitespace for `allowedStrings` check ([#2436][] @cainlevy)
- * [`jsx-curly-brace-presence`][]: Fix filter of undefined error with whitespace inside jsx attr curlies ([#2460][] @dustinyoste)
- * [`no-render-return-value`][]: should warn when used in assignment expression ([#2462][] @jichu4n)
- * [`jsx-curly-brace-presence`][]: allow trailing spaces in literal ([#2448][] @doochik)
-
-### Changed
- * [Deps] update `jsx-ast-utils`, `object.fromentries`, `resolve`
- * [eslint] fix func-names and change object-shorthand to 'always' ([#2483][] @golopot)
- * [Docs] `jsx-first-prop-new-line`: Fix documentation formatting ([#2489][] @pjg)
- * [Docs] [`prop-types`][]: Update 'skipUndeclared' in rule options ([#2504][] @cjnickel)
- * [Docs] [`jsx-first-prop-new-line`][]: fix wrong rule name ([#2500][] @zgayjjf)
- * [eslint] enable eslint-plugin-eslint-plugin ([#2469][] @golopot)
- * [Docs] [`jsx-props-no-multi-spaces`][]: suggest using core rule instead ([#2463][] @golopot)
- * [Docs] [`jsx-first-prop-new-line`][]: add rule options ([#2465][] @SerdarMustafa1)
- * [Docs] [`jsx-no-target-blank`][]: Add section about overriding for trusted links ([#2438][] @aschriner)
- * [Docs] fix typo ([#2453][] @cainwatson)
- * [Docs] [`no-unused-prop-types`][]: clean up prose ([#2273][] @coryhouse)
- * [Docs] [`jsx-no-bind`][]: add section about React Hooks ([#2443][] @kdex)
-
-[7.17.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.16.0...v7.17.0
-[#2532]: https://github.com/yannickcr/eslint-plugin-react/pull/2532
-[#2505]: https://github.com/yannickcr/eslint-plugin-react/pull/2505
-[#2504]: https://github.com/yannickcr/eslint-plugin-react/pull/2504
-[#2500]: https://github.com/yannickcr/eslint-plugin-react/pull/2500
-[#2489]: https://github.com/yannickcr/eslint-plugin-react/pull/2489
-[#2483]: https://github.com/yannickcr/eslint-plugin-react/pull/2483
-[#2478]: https://github.com/yannickcr/eslint-plugin-react/pull/2478
-[#2470]: https://github.com/yannickcr/eslint-plugin-react/pull/2470
-[#2469]: https://github.com/yannickcr/eslint-plugin-react/pull/2469
-[#2468]: https://github.com/yannickcr/eslint-plugin-react/pull/2468
-[#2465]: https://github.com/yannickcr/eslint-plugin-react/pull/2465
-[#2463]: https://github.com/yannickcr/eslint-plugin-react/pull/2463
-[#2460]: https://github.com/yannickcr/eslint-plugin-react/pull/2460
-[#2453]: https://github.com/yannickcr/eslint-plugin-react/pull/2453
-[#2451]: https://github.com/yannickcr/eslint-plugin-react/pull/2451
-[#2449]: https://github.com/yannickcr/eslint-plugin-react/pull/2449
-[#2448]: https://github.com/yannickcr/eslint-plugin-react/pull/2448
-[#2446]: https://github.com/yannickcr/eslint-plugin-react/pull/2446
-[#2443]: https://github.com/yannickcr/eslint-plugin-react/pull/2443
-[#2438]: https://github.com/yannickcr/eslint-plugin-react/pull/2438
-[#2436]: https://github.com/yannickcr/eslint-plugin-react/pull/2436
-[#2414]: https://github.com/yannickcr/eslint-plugin-react/pull/2414
-[#2273]: https://github.com/yannickcr/eslint-plugin-react/pull/2273
-
-## [7.16.0] - 2019-10-04
-
-### Added
-* [`jsx-sort-default-props`][]: make rule fixable ([#2429][] @emroussel)
-
-### Fixed
-* [`jsx-no-useless-fragment`][]: use `array-includes` over `.includes` for back compat (@ljharb)
-* [`jsx-curly-brace-presence`][]: allow necessary white-space literal ([#2437][] @uniqname)
-* [`jsx-curly-brace-presence`][]: warns incorrectly on trailing whitespace ([#2431][] @BC-M)
-* [`no-unused-prop-types`][]: false positive when nested destructuring ([#2428][] @golopot)
-
-[7.16.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.15.1...v7.16.0
-[#2437]: https://github.com/yannickcr/eslint-plugin-react/pull/2437
-[#2431]: https://github.com/yannickcr/eslint-plugin-react/pull/2431
-[#2429]: https://github.com/yannickcr/eslint-plugin-react/pull/2429
-[#2428]: https://github.com/yannickcr/eslint-plugin-react/pull/2428
-
-## [7.15.1] - 2019-10-01
-
-### Fixed
-* [`jsx-curly-brace-presence`][]: bail out checks when JSXElements are passed as props ([#2426][] @vedadeepta)
-
-### Changed
-* [Docs] [`prefer-es6-class`][]: Fix typos ([#2425][] @spencerbyw)
-
-[7.15.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.15.0...v7.15.1
-[#2426]: https://github.com/yannickcr/eslint-plugin-react/pull/2426
-[#2425]: https://github.com/yannickcr/eslint-plugin-react/pull/2425
-
-## [7.15.0] - 2019-09-30
-
-### Added
-* add [`jsx-no-useless-fragment`][] rule ([#2261][] @golopot)
-* [`jsx-handler-name`][]: allow `false` to disable `eventHandlerPrefix`/`eventHandlerPropPrefix` ([#2410][] @tanmoyopenroot)
-* [`sort-comp`][]: add `static-variables` grouping ([#2408][] @vedadeepta)
-* [`jsx-no-literals`][]: Add `allowedStrings` option ([#2380][] @benhollander)
-* [`no-multi-comp`][]: Added handling for `forwardRef` and `memo` wrapping components declared in the same file ([#2184][] @jenil94)
-* [`jsx-pascal-case`][]: `allowAllCaps` option now allows `SCREAMING_SNAKE_CASE` ([#2364][] @TylerR909)
-
-### Fixed
-* [`jsx-indent`][]: Fix false positive when a jsx element is the last statement within a do expression (with tests) ([#2200][] @Kenneth-KT)
-* [`jsx-curly-brace-presence`][]: fix jsx tags in braces ([#2422][] @tanmoyopenroot)
-* [`display-name`][]: Fix false positives ([#2399][] @BPScott)
-* [`jsx-curly-brace-presence`][]: report unnecessary curly braces with children on next line ([#2409][] @vedadeepta)
-* [`no-unused-prop-types`][]: false positive with callback ([#2375][] @golopot)
-* Fix prop-types detection collision on renamed props ([#2383][] @yannickcr)
-* [`jsx-sort-props`][]: use localeCompare rather than comparison operator ([#2391][] @tanmoyopenroot)
-* [`jsx-pascal-case`][]: allow one-letter-named components ([#2395][] @Haegin)
-* [`jsx-wrap-multilines`][]: fix incorrect formatting ([#2392][] @tanmoyopenroot)
-* [`require-optimization`][]: fix when using arrow function in class components ([#2385][] @jenil94)
-* [`no-deprecated`][]: Deprecate cWM/cWRP/cWU lifecycle methods since React 16.9.0 ([#2378][] @meowtec)
-* [`jsx-key`][]: improve docs and confusing error message ([#2367][] @kaykayehnn)
-* Recognize props wrapped in flow $ReadOnly<> utility type ([#2361][] @lukeapage)
-* [`prop-types`][]: false positive with setState updator ([#2359][] @golopot)
-
-### Changed
-* [Docs] [`no-access-state-in-setstate`][]: update grammar ([#2418][] @neaumusic)
-* [`jsx-curly-brace-presence`][], [`jsx-one-expression-per-line`][], [`no-danger-with-children`][]: add `isWhiteSpaces` to `lib/util/jsx` ([#2409][] @vedadeepta)
-
-[7.15.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.3...v7.15.0
-[#2422]: https://github.com/yannickcr/eslint-plugin-react/pull/2422
-[#2410]: https://github.com/yannickcr/eslint-plugin-react/pull/2410
-[#2409]: https://github.com/yannickcr/eslint-plugin-react/pull/2409
-[#2408]: https://github.com/yannickcr/eslint-plugin-react/pull/2408
-[#2402]: https://github.com/yannickcr/eslint-plugin-react/pull/2402
-[#2399]: https://github.com/yannickcr/eslint-plugin-react/pull/2399
-[#2395]: https://github.com/yannickcr/eslint-plugin-react/pull/2395
-[#2392]: https://github.com/yannickcr/eslint-plugin-react/pull/2392
-[#2391]: https://github.com/yannickcr/eslint-plugin-react/pull/2391
-[#2385]: https://github.com/yannickcr/eslint-plugin-react/pull/2385
-[#2383]: https://github.com/yannickcr/eslint-plugin-react/issue/2383
-[#2380]: https://github.com/yannickcr/eslint-plugin-react/pull/2380
-[#2378]: https://github.com/yannickcr/eslint-plugin-react/pull/2378
-[#2375]: https://github.com/yannickcr/eslint-plugin-react/pull/2375
-[#2367]: https://github.com/yannickcr/eslint-plugin-react/pull/2367
-[#2364]: https://github.com/yannickcr/eslint-plugin-react/pull/2364
-[#2361]: https://github.com/yannickcr/eslint-plugin-react/pull/2361
-[#2359]: https://github.com/yannickcr/eslint-plugin-react/pull/2359
-[#2261]: https://github.com/yannickcr/eslint-plugin-react/pull/2261
-[#2200]: https://github.com/yannickcr/eslint-plugin-react/pull/2200
-[#2184]: https://github.com/yannickcr/eslint-plugin-react/pull/2184
-
-## [7.14.3] - 2019-07-23
-
-### Fixed
-* Fix [`prop-types`][] to ignore validation when Flow indexers are used ([#2330][] @yannickcr)
-* Fix error being thrown after the first warning when react version cannot be detected ([#2336][] @abhishekdev)
-* Fix component detection when `memo` and `forwardRef` are used together ([#2349][] @yannickcr)
-
-### Changed
-* Documentation improvements (@ljharb, [#2354][] @golopot)
-
-[7.14.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.2...v7.14.3
-[#2330]: https://github.com/yannickcr/eslint-plugin-react/issues/2330
-[#2336]: https://github.com/yannickcr/eslint-plugin-react/pull/2336
-[#2349]: https://github.com/yannickcr/eslint-plugin-react/issues/2349
-[#2354]: https://github.com/yannickcr/eslint-plugin-react/pull/2354
-
-## [7.14.2] - 2019-06-24
-
-### Fixed
-* Fix [`prop-types`][] crash on for...of destructuring ([#2326][] @yannickcr)
-
-[7.14.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.1...v7.14.2
-[#2326]: https://github.com/yannickcr/eslint-plugin-react/issues/2326
-
-## [7.14.1] - 2019-06-24
-
-### Fixed
-* Fix [`prop-types`][] crash on multiple destructuring ([#2319][] @golopot)
-
-[7.14.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.14.0...v7.14.1
-[#2319]: https://github.com/yannickcr/eslint-plugin-react/issues/2319
-
-## [7.14.0] - 2019-06-23
-
-### Added
-* Add [`jsx-curly-newline`][] rule ([#1493][] @golopot)
-* Add support for nested destructuring to [`prop-types`][] ([#296][] [#1422][] @golopot)
-* Add support for variables defined as props to [`prop-types`][] and [`no-unused-prop-types`][] ([#442][] [#833][] [#1002][] [#1116][] [#1257][] [#1764][] @golopot)
-* Add `checkFragmentShorthand` option to [`jsx-key`][] ([#2316][] @kaykayehnn)
-
-### Fixed
-* Fix [`no-did-mount-set-state`][] and [`no-did-update-set-state`][] to handle cDU and cDM defined as class properties ([#1595][] @jaaberg)
-* Fix [`sort-prop-types`][] cash when a shape PropType is defined in a variable ([#1749][] @alexzherdev)
-* Fix [`no-unused-state`][] false positive when using state of non-lifecycle method ([#2274][] @golopot)
-* Fix [`static-property-placement`][] false positive when accessing static property inside method ([#2283][] @dmason30)
-* Fix [`prop-type`][] detection for annotated props with default value ([#2298][] @yannickcr)
-
-### Changed
-* Add ESLint 6.0.0 as valid peerDependency (@yannickcr)
-* Improve [`no-render-return-value`][] performance ([#2259][] @golopot)
-* Change [`jsx-sort-props`][] to report errors only on the identifier ([#2312][] @MrHen)
-* Change to warn only once if react version cannot be detected ([#2276][] @ljharb)
-* Documentation improvements ([#2263][] @dimitropoulos, [#2262][] @ybiquitous, [#2295][] @battaglr, [#2302][] @Jason-Cooke, [#2303][] @golopot)
-* Code refactoring ([#2265][] [#2267][] [#2286][] [#2294][] @golopot, @ljharb)
-* Tests improvements ([#2304][] [#1047][] @golopot, @yannickcr)
-
-[7.14.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.13.0...v7.14.0
-[#296]: https://github.com/yannickcr/eslint-plugin-react/issues/296
-[#442]: https://github.com/yannickcr/eslint-plugin-react/issues/442
-[#833]: https://github.com/yannickcr/eslint-plugin-react/issues/833
-[#1002]: https://github.com/yannickcr/eslint-plugin-react/issues/1002
-[#1047]: https://github.com/yannickcr/eslint-plugin-react/issues/1047
-[#1116]: https://github.com/yannickcr/eslint-plugin-react/issues/1116
-[#1257]: https://github.com/yannickcr/eslint-plugin-react/issues/1257
-[#1422]: https://github.com/yannickcr/eslint-plugin-react/issues/1422
-[#1493]: https://github.com/yannickcr/eslint-plugin-react/issues/1493
-[#1595]: https://github.com/yannickcr/eslint-plugin-react/issues/1595
-[#1749]: https://github.com/yannickcr/eslint-plugin-react/issues/1749
-[#1764]: https://github.com/yannickcr/eslint-plugin-react/issues/1764
-[#2259]: https://github.com/yannickcr/eslint-plugin-react/pull/2259
-[#2262]: https://github.com/yannickcr/eslint-plugin-react/pull/2262
-[#2263]: https://github.com/yannickcr/eslint-plugin-react/pull/2263
-[#2265]: https://github.com/yannickcr/eslint-plugin-react/pull/2265
-[#2267]: https://github.com/yannickcr/eslint-plugin-react/pull/2267
-[#2274]: https://github.com/yannickcr/eslint-plugin-react/pull/2274
-[#2276]: https://github.com/yannickcr/eslint-plugin-react/issues/2276
-[#2283]: https://github.com/yannickcr/eslint-plugin-react/issues/2283
-[#2286]: https://github.com/yannickcr/eslint-plugin-react/pull/2286
-[#2294]: https://github.com/yannickcr/eslint-plugin-react/pull/2294
-[#2295]: https://github.com/yannickcr/eslint-plugin-react/pull/2295
-[#2298]: https://github.com/yannickcr/eslint-plugin-react/issues/2298
-[#2302]: https://github.com/yannickcr/eslint-plugin-react/pull/2302
-[#2303]: https://github.com/yannickcr/eslint-plugin-react/pull/2303
-[#2304]: https://github.com/yannickcr/eslint-plugin-react/pull/2304
-[#2312]: https://github.com/yannickcr/eslint-plugin-react/issues/2312
-[#2316]: https://github.com/yannickcr/eslint-plugin-react/pull/2316
-
-## [7.13.0] - 2019-05-03
-
-### Added
-* Make [`jsx-sort-props`][] fully fixable ([#2250][], @guliashvili)
-* [`boolean-prop-naming`][]: add `validateNested` option to validate shape prop names ([#2234][], @pawelnvk)
-* add [`static-property-placement`][] rule ([#2193][], @dmason30)
-* add "detect" for flow version ([#2233][], @jedwards1211)
-* [`jsx-indent`][]: Add `indentLogicalExpressions` option ([#2227][], @mdnsk)
-* add [`jsx-props-no-spreading`][] ([#2191][], @ashbhir)
-* [`no-string-refs`][]: Added `noTemplateLiteral` option ([#2167][], @jenil94)
-* add `linkComponents` setting ([#2116][], @gbakernet)
-* [`jsx-no-target-blank`][]: add support for `linkComponents` setting ([#2116][], @gbakernet)
-* Add [`state-in-constructor`][] rule ([#1945][], @lukyth)
-* Add [`prefer-read-only-props`][] rule ([#2110][], @golopot)
-* [`no-unescaped-entities`][]: more friendly error message; add config to adjust ([#2016][], @stevemao)
-
-### Fixed
-* [`jsx-props-no-multi-spaces`][]: support generic components (ts) ([#2256][], @mateuszsokola)
-* [`prop-types`][]: fix case with destructuring and default param ([#2246][], @golopot)
-* [`prefer-stateless-function`][]: Ignoring pure components without props and context usage ([#2238][], @pawelnvk)
-* `propTypes`: resolveSuperParameterPropsType: add null check ([#2232][], @jedwards1211)
-* [`self-closing-comp`][]: stop reporting single-line spaces ([#2210][], @golopot)
-* [`require-render-return`][]: more accurate report location ([#2229][], @golopot)
-* [`sort-prop-types`][]: Fix sorting props with numeric keys ([#2230][], @pawelnvk)
-* [`display-name`][]: fix false negative around nested functions ([#2225][], @dwelle)
-* [`no-unknown-property`][]: fix case like `<Foo.bar>` ([#2207][], @golopot)
-* [`jsx-curly-brace-presence`][]: accept multiline template string ([#2203][], @golopot)
-* [`jsx-one-expression-per-line`][]: fix when using tabs ([#2198][], @Ohar)
-* [`prop-types`][]: Fix false positive on computed member expression ([#2202][], @golopot)
-* [`jsx-sort-default-props`][]: fix case with spread ([#2182][], @VincentLanglet)
-* [`no-this-in-sfc`][]: Fix false positive on SFC defined as object property ([#2147][], @yannickcr)
-* [`sort-comp`][]: correctly recognize instance variables declared without explicit value ([#2183][], @yannickcr)
-* [`no-unused-state`][]: fix set state callback destructing & state use inside callback ([#2151][], @barakyosi)
-* [`no-multi-comp`][]: correctly ignore wrapped stateless components: ([#2145][], @yannickcr)
-* [`display-name`][]: avoid crash on for..of ([#2137][], @ljharb)
-
-### Changed
-* [Docs] [`no-access-state-in-setstate`][]: Use syntax highlighting for examples ([#2160][], @pReya)
-* [Docs] [`jsx-fragments`][]: add "fixable" note ([#2143][], @joshunger)
-* [Docs] Added shared settings info, React version default note ([#2180][], @samsch)
-* [Tests] [`jsx-curly-spacing`][]: add regression test case ([#2206][], @ColCh)
-
-[7.13.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.4...v7.13.0
-[#2256]: https://github.com/yannickcr/eslint-plugin-react/pull/2256
-[#2250]: https://github.com/yannickcr/eslint-plugin-react/pull/2250
-[#2246]: https://github.com/yannickcr/eslint-plugin-react/pull/2246
-[#2238]: https://github.com/yannickcr/eslint-plugin-react/pull/2238
-[#2234]: https://github.com/yannickcr/eslint-plugin-react/pull/2234
-[#2233]: https://github.com/yannickcr/eslint-plugin-react/pull/2233
-[#2232]: https://github.com/yannickcr/eslint-plugin-react/pull/2232
-[#2230]: https://github.com/yannickcr/eslint-plugin-react/pull/2230
-[#2229]: https://github.com/yannickcr/eslint-plugin-react/pull/2229
-[#2227]: https://github.com/yannickcr/eslint-plugin-react/pull/2227
-[#2225]: https://github.com/yannickcr/eslint-plugin-react/pull/2225
-[#2210]: https://github.com/yannickcr/eslint-plugin-react/pull/2210
-[#2207]: https://github.com/yannickcr/eslint-plugin-react/pull/2207
-[#2206]: https://github.com/yannickcr/eslint-plugin-react/pull/2206
-[#2203]: https://github.com/yannickcr/eslint-plugin-react/pull/2203
-[#2202]: https://github.com/yannickcr/eslint-plugin-react/pull/2202
-[#2198]: https://github.com/yannickcr/eslint-plugin-react/pull/2198
-[#2193]: https://github.com/yannickcr/eslint-plugin-react/pull/2193
-[#2191]: https://github.com/yannickcr/eslint-plugin-react/pull/2191
-[#2183]: https://github.com/yannickcr/eslint-plugin-react/issues/2183
-[#2182]: https://github.com/yannickcr/eslint-plugin-react/pull/2182
-[#2180]: https://github.com/yannickcr/eslint-plugin-react/pull/2180
-[#2167]: https://github.com/yannickcr/eslint-plugin-react/pull/2167
-[#2147]: https://github.com/yannickcr/eslint-plugin-react/issues/2147
-[#2145]: https://github.com/yannickcr/eslint-plugin-react/issues/2145
-[#2143]: https://github.com/yannickcr/eslint-plugin-react/pull/2143
-[#2137]: https://github.com/yannickcr/eslint-plugin-react/issues/2137
-[#2116]: https://github.com/yannickcr/eslint-plugin-react/pull/2116
-[#2110]: https://github.com/yannickcr/eslint-plugin-react/pull/2110
-[#2016]: https://github.com/yannickcr/eslint-plugin-react/pull/2016
-[#1945]: https://github.com/yannickcr/eslint-plugin-react/pull/1945
-
-## [7.12.4] - 2019-01-16
-
-### Fixed
-* [`no-unused-prop-types`][]: avoid a crash ([#2131][], @ljharb)
-* [`prop-types`][]: avoid further crashes from nonexistent nodes in unusedPropTypes ([#2127][], @ljharb)
-* [`prop-types`][]: Read name of callee object ([#2125][], @CrOrc)
-* [`prop-types`][]: Ignore reassignments when matching props declarations with components ([#2051][], [#1957][], @yannickcr)
-* [`prop-types`][], [`no-unused-prop-types`][], [`require-default-props`][]: Detect components with return statement in switch/case ([#2118][], @yannickcr)
-
-### Changed
-* [`prop-types`][], [`no-typos`][]: add passing test cases ([#2123][], [#2128][], [#2136][], [#2134][], @ljharb)
-
-[7.12.4]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.3...v7.12.4
-[#2136]: https://github.com/yannickcr/eslint-plugin-react/issues/2136
-[#2134]: https://github.com/yannickcr/eslint-plugin-react/issues/2134
-[#2131]: https://github.com/yannickcr/eslint-plugin-react/issues/2131
-[#2128]: https://github.com/yannickcr/eslint-plugin-react/issues/2128
-[#2127]: https://github.com/yannickcr/eslint-plugin-react/issues/2127
-[#2125]: https://github.com/yannickcr/eslint-plugin-react/pull/2125
-[#2123]: https://github.com/yannickcr/eslint-plugin-react/issues/2123
-[#2118]: https://github.com/yannickcr/eslint-plugin-react/issues/2118
-[#2051]: https://github.com/yannickcr/eslint-plugin-react/issues/2051
-[#1957]: https://github.com/yannickcr/eslint-plugin-react/issues/1957
-
-## [7.12.3] - 2019-01-04
-
-### Fixed
-* [`jsx-indent`][]: Prevent crash on valueless props ([#2120][], @jomasti)
-* [`jsx-fragments`][]: avoid crashing on self-closing fragments ([#2113][], @alexzherdev)
-* [`no-unused-prop-types`][]: Fix propType detection inside class bodies ([#2115][], @drx)
-* [`no-unused-prop-types`][]: fix issue with propTypes misclassifying props ([#2111][], @drx)
-* [`display-name`][]: fix false positive for `React.memo` ([#2109][], @jomasti)
-
-### Changed
-* [Docs] add a missing comma in the JSON settings ([#2117][], @haideralsh)
-* [Docs] update README to document React version detection ([#2114][], @mohsinulhaq)
-
-[7.12.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.2...v7.12.3
-[#2120]: https://github.com/yannickcr/eslint-plugin-react/issues/2120
-[#2117]: https://github.com/yannickcr/eslint-plugin-react/issues/2117
-[#2115]: https://github.com/yannickcr/eslint-plugin-react/issues/2115
-[#2114]: https://github.com/yannickcr/eslint-plugin-react/issues/2114
-[#2113]: https://github.com/yannickcr/eslint-plugin-react/issues/2113
-[#2111]: https://github.com/yannickcr/eslint-plugin-react/issues/2111
-[#2109]: https://github.com/yannickcr/eslint-plugin-react/issues/2109
-
-## [7.12.2] - 2019-01-02
-
-### Fixed
-* [`prop-types`][]: avoid crash on used prevProps ([#2095][], @ljharb)
-* Version warning: Link does not end with '.' ([#2103][], @yoyo837))
-* [`forbid-prop-types`][]: fix crash with propWrapper check on MemberExpressions ([#2104][], @ljharb)
-
-[7.12.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.1...v7.12.2
-[#2104]: https://github.com/yannickcr/eslint-plugin-react/issues/2104
-[#2103]: https://github.com/yannickcr/eslint-plugin-react/pull/2103
-[#2095]: https://github.com/yannickcr/eslint-plugin-react/issues/2095
-
-## [7.12.1] - 2019-01-01
-
-### Fixed
-* [`no-unused-state`][]: Fix crash with class fields ([#2098][], @jomasti)
-* [`prop-types`][]: Fix false positives inside lifecycle methods ([#2099][], @jomasti)
-* [`jsx-max-depth`][]: avoid a crash ([#2102][], @ljharb)
-* [`jsx-wrap-multilines`][]: avoid crash when no trailing newline ([#2100][], @ljharb)
-
-### Changed
-* Fix CHANGELOG.md ([#2097][], @alexzherdev)
-
-[7.12.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.12.0...v7.12.1
-[#2102]: https://github.com/yannickcr/eslint-plugin-react/issues/2102
-[#2100]: https://github.com/yannickcr/eslint-plugin-react/issues/2100
-[#2099]: https://github.com/yannickcr/eslint-plugin-react/pull/2099
-[#2098]: https://github.com/yannickcr/eslint-plugin-react/pull/2098
-[#2097]: https://github.com/yannickcr/eslint-plugin-react/pull/2097
-
-## [7.12.0] - 2018-12-27
-
-### Added
-* [`no-typos`]: Support createClass ([#1828][], @alexzherdev)
-* Support detecting React.forwardRef/React.memo ([#2089][], @jomasti)
-* [`jsx-indent`][]: add `checkAttributes` option for JSX attribute indentation ([#2086][], @jomasti)
-* Change allowed `propWrapperFunctions` setting values ([#2065][], @jomasti)
-* add [`jsx-fragments`][] rule to enforce fragment syntax ([#1994][], @alexzherdev)
-* Support "detect" option for React version setting ([#1978][], @alexzherdev)
-* Support shorthand fragment syntax in many rules ([#1956][], @alexzherdev)
-* [`jsx-no-literals`][]: print node value in warning message ([#2008][], @jlgonzalezdev)
-
-### Fixed
-* [`jsx-max-depth`][]: Fix depth of JSX siblings in a JSXEpressionContainer ([#1824][], @alexzherdev)
-* [`no-array-index-key`][]: fix in React.Children methods ([#2085][], @himynameisdave)
-* [`no-unused-state`][]: handle functional setState ([#2084][], @jomasti)
-* version errors should log to stderr, not stdout ([#2082][], @ljharb)
-* [`no-deprecated`][]: Disable legacy lifecycle methods linting for now ([#2069][], @sergei-startsev)
-* ensure that react and flow versions can be numbers ([#2056][], @ljharb)
-* [`forbid-foreign-prop-types`][]: ensure `allowInPropTypes` option applies to class fields ([#2040][], @Sheile)
-* [`jsx-wrap-multilines`][]: catch single missing newlines ([#1984][], @MrHen)
-* [`jsx-first-prop-new-line`][]: Fix for parsers (like TypeScript) ([#2026][], @HauptmannEck)
-* [`sort-comp`][]: Fix fixer in case of more than 10 props ([#2012][], @tihonove)
-* [`no-unused-state`][] Don't depend on state parameter name ([#1829][], @alexzherdev)
-* [`no-this-in-sfc`][] fix for class properties ([#1995][], @sergei-startsev)
-* [`no-this-in-sfc`][] fix rule behavior for arrow functions inside a class field ([#1989][], @sergei-startsev)
-* [`destructuring-assignment`][]: handle nested props usage ([#1983][], @alexzherdev)
-* [`sort-prop-types`][]: fix string property order ([#1977][], @metreniuk)
-* [`jsx-no-target-blank`][]: don’t crash when there’s no value ([#1949][], @ljharb)
-* [`prop-types`][], [`no-unused-prop-types`][]: better handle object spread ([#1939][], @alexzherdev)
-
-### Changed
-* [`jsx-fragments`][]: improve message text ([#2032][], @alexzherdev)
-* [`no-unsafe`][]: handle all unsafe life-cycle methods ([#2075][], @sergei-startsev)
-* [`require-default-props`][]: Change error message naming from singular defaultProp to plural defaultProps ([#2064][], @jseminck)
-* [Refactor] Extract used `propTypes` detection ([#1946][], @alexzherdev)
-* [Refactor] Extract `defaultProps` detection ([#1942][], @alexzherdev)
-* [Refactor] Extract required `propTypes` detection ([#2001][], @alexzherdev)
-* [Docs] [`no-did-mount-set-state`][], [`no-did-update-set-state`][], [`no-will-update-set-state`][]: fix docs URLs ([#2090][], @JBallin)
-* [Docs] Remove statement on GC in jsx-no-bind ([#2067][], @rickhanlonii)
-* [Docs] [`jsx-sort-props`][]: Fix small mistake ([#2044][], @dimitarnestorov)
-* [Docs] [`no-unescaped-entities`][]: add more escape examples ([#2015][], @stevemao)
-* [Docs] [`display-name`][]: mention default `ignoreTranspilerName` value ([#2002][], @OliverJAsh)
-* [Docs] [`jsx-no-target-blank`][]: Add full example ([#1988][], @atomcorp)
-* [Docs] Update [`jsx-no-target-blank`][].md ([#1953][], @brunocoelho)
-* [Changelog] fix "Ignore class properties" contributor ([#1941][], @alexzherdev)
-* [Tests] Remove redundant `require('babel-eslint')` from tests ([#2004][], @sergei-startsev)
-* [Tests] [`prop-types`][]: Add tests for prop-types destructuring ([#2029][], @sstern6)
-* [Tests] [`display-name`][]: add false positive component detection for destructured createElement ([#1098][], @arian)
-
-[7.12.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.11.1...v7.12.0
-[#2090]: https://github.com/yannickcr/eslint-plugin-react/pull/2090
-[#2089]: https://github.com/yannickcr/eslint-plugin-react/pull/2089
-[#2086]: https://github.com/yannickcr/eslint-plugin-react/pull/2086
-[#2085]: https://github.com/yannickcr/eslint-plugin-react/pull/2085
-[#2084]: https://github.com/yannickcr/eslint-plugin-react/pull/2084
-[#2082]: https://github.com/yannickcr/eslint-plugin-react/issues/2082
-[#2075]: https://github.com/yannickcr/eslint-plugin-react/pull/2075
-[#2069]: https://github.com/yannickcr/eslint-plugin-react/pull/2069
-[#2067]: https://github.com/yannickcr/eslint-plugin-react/pull/2067
-[#2065]: https://github.com/yannickcr/eslint-plugin-react/pull/2065
-[#2064]: https://github.com/yannickcr/eslint-plugin-react/pull/2064
-[#2056]: https://github.com/yannickcr/eslint-plugin-react/issues/2056
-[#2044]: https://github.com/yannickcr/eslint-plugin-react/pull/2044
-[#2040]: https://github.com/yannickcr/eslint-plugin-react/pull/2040
-[#2032]: https://github.com/yannickcr/eslint-plugin-react/pull/2032
-[#2029]: https://github.com/yannickcr/eslint-plugin-react/pull/2029
-[#2026]: https://github.com/yannickcr/eslint-plugin-react/pull/2026
-[#2015]: https://github.com/yannickcr/eslint-plugin-react/pull/2015
-[#2012]: https://github.com/yannickcr/eslint-plugin-react/pull/2012
-[#2008]: https://github.com/yannickcr/eslint-plugin-react/pull/2008
-[#2004]: https://github.com/yannickcr/eslint-plugin-react/pull/2004
-[#2002]: https://github.com/yannickcr/eslint-plugin-react/pull/2002
-[#2001]: https://github.com/yannickcr/eslint-plugin-react/pull/2001
-[#1995]: https://github.com/yannickcr/eslint-plugin-react/pull/1995
-[#1994]: https://github.com/yannickcr/eslint-plugin-react/pull/1994
-[#1989]: https://github.com/yannickcr/eslint-plugin-react/pull/1989
-[#1988]: https://github.com/yannickcr/eslint-plugin-react/pull/1988
-[#1984]: https://github.com/yannickcr/eslint-plugin-react/pull/1984
-[#1983]: https://github.com/yannickcr/eslint-plugin-react/pull/1983
-[#1978]: https://github.com/yannickcr/eslint-plugin-react/pull/1978
-[#1977]: https://github.com/yannickcr/eslint-plugin-react/pull/1977
-[#1956]: https://github.com/yannickcr/eslint-plugin-react/pull/1956
-[#1953]: https://github.com/yannickcr/eslint-plugin-react/pull/1953
-[#1949]: https://github.com/yannickcr/eslint-plugin-react/issues/1949
-[#1946]: https://github.com/yannickcr/eslint-plugin-react/pull/1946
-[#1942]: https://github.com/yannickcr/eslint-plugin-react/pull/1942
-[#1941]: https://github.com/yannickcr/eslint-plugin-react/pull/1941
-[#1939]: https://github.com/yannickcr/eslint-plugin-react/pull/1939
-[#1829]: https://github.com/yannickcr/eslint-plugin-react/pull/1829
-[#1828]: https://github.com/yannickcr/eslint-plugin-react/pull/1828
-[#1824]: https://github.com/yannickcr/eslint-plugin-react/pull/1824
-[#1098]: https://github.com/yannickcr/eslint-plugin-react/pull/1098
-
-## [7.11.1] - 2018-08-14
-### Fixed
-* stop crashing when assigning to propTypes ([#1932][], @alexzherdev)
-
-### Changed
-* Fix changelog links ([#1926][], @ferhatelmas)
-* Fix changelog links ([#1929][], @alexzherdev)
-
-[7.11.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.11.0...v7.11.1
-[#1932]: https://github.com/yannickcr/eslint-plugin-react/pull/1932
-[#1929]: https://github.com/yannickcr/eslint-plugin-react/pull/1929
-[#1926]: https://github.com/yannickcr/eslint-plugin-react/pull/1926
-
-## [7.11.0] - 2018-08-13
-### Added
-* [`jsx-one-expression-per-line`][]: add "allow" option ([#1924][], @alexzherdev)
-* [`sort-prop-types`][]: add autofix ([#1891][], @finnp)
-* [`jsx-no-bind`][]: Add ignoreDOMComponents option ([#1868][], @alexzherdev)
-* Output a warning if React version is missing in settings ([#1857][], @alexzherdev)
-
-### Fixed
-* [`destructuring-assignment`][]: Ignore class properties ([#1909][], @alexandernanberg)
-* [`destructuring-assignment`][], component detection: ignore components with confidence = 0 ([#1907][], @alexzherdev)
-* [`boolean-prop-naming`][]: Handle inline Flow type ([#1905][], @alexzherdev)
-* [`jsx-props-no-multi-spaces`][]: Handle member expressions ([#1890][], @alexzherdev)
-* [`sort-comp`][]: Allow methods to belong to any matching group ([#1858][], @nosilleg)
-* [`jsx-sort-props`][]: Fix `reservedFirst` ([#1883][], @fleischie)
-* [`prop-types`][]: (flow) Stop crashing on undefined or null properties ([#1860][], @nicholas-l)
-* [`no-unknown-property`][]: Make attribute "charset" valid ([#1863][], @silvenon)
-* [`no-deprecated`][]: report identifier AST node instead of the class node ([#1854][], @jsnajdr)
-* [`button-has-type`][]: Account for pragma ([#1851][], @alexzherdev)
-* [`button-has-type`][]: improve error message when an identifier is used as the value ([#1874][], @ljharb)
-* support JSXText nodes alongside Literal nodes (@ljharb)
-
-### Changed
-* Extract propTypes detection code ([#1911][], @alexzherdev)
-* Fix broken links in changelog ([#1849][], @alexzherdev)
-* [`no-unused-state`][]: combine spread visitors (@ljharb)
-* [`jsx-one-expression-per-line`][]: Fix JSX Syntax in docs ([#1867][], @peter-mouland)
-* [`jsx-max-depth`][], [`jsx-sort-default-props`][]: add missing docs urls ([#1880][], @flyerhzm)
-* [`jsx-indent`][]: add test cases ([#1892][], @alexzherdev)
-* [`prop-types`][]: add test cases ([#1898][], @alexzherdev)
-* Add a helper function for determining function-like expressions ([#1914][], @alexzherdev)
-* [`jsx-props-no-multi-spaces`][]: update docs ([#1918][], @BenRichter)
-
-[7.11.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.10.0...v7.11.0
-[#1924]: https://github.com/yannickcr/eslint-plugin-react/pull/1924
-[#1918]: https://github.com/yannickcr/eslint-plugin-react/pull/1918
-[#1914]: https://github.com/yannickcr/eslint-plugin-react/pull/1914
-[#1911]: https://github.com/yannickcr/eslint-plugin-react/pull/1911
-[#1909]: https://github.com/yannickcr/eslint-plugin-react/pull/1909
-[#1907]: https://github.com/yannickcr/eslint-plugin-react/pull/1907
-[#1905]: https://github.com/yannickcr/eslint-plugin-react/pull/1905
-[#1898]: https://github.com/yannickcr/eslint-plugin-react/pull/1898
-[#1892]: https://github.com/yannickcr/eslint-plugin-react/pull/1892
-[#1891]: https://github.com/yannickcr/eslint-plugin-react/pull/1891
-[#1890]: https://github.com/yannickcr/eslint-plugin-react/pull/1890
-[#1883]: https://github.com/yannickcr/eslint-plugin-react/pull/1883
-[#1880]: https://github.com/yannickcr/eslint-plugin-react/pull/1880
-[#1874]: https://github.com/yannickcr/eslint-plugin-react/issues/1874
-[#1868]: https://github.com/yannickcr/eslint-plugin-react/pull/1868
-[#1867]: https://github.com/yannickcr/eslint-plugin-react/pull/1867
-[#1863]: https://github.com/yannickcr/eslint-plugin-react/pull/1863
-[#1860]: https://github.com/yannickcr/eslint-plugin-react/pull/1860
-[#1858]: https://github.com/yannickcr/eslint-plugin-react/pull/1858
-[#1857]: https://github.com/yannickcr/eslint-plugin-react/pull/1857
-[#1854]: https://github.com/yannickcr/eslint-plugin-react/pull/1854
-[#1851]: https://github.com/yannickcr/eslint-plugin-react/pull/1851
-[#1849]: https://github.com/yannickcr/eslint-plugin-react/pull/1849
-
-## [7.10.0] - 2018-06-24
-### Added
-* Allow eslint ^5 ([#1843][] @papandreou, @ljharb)
-* [`no-unsafe`][] rule ([#1831][], [#1830][] @sergei-startsev)
-* [`no-will-update-set-state`][]: Account for `UNSAFE_` methods ([#1845][], [#1844][] @alexzherdev)
-
-### Fixed
-* [`no-typos`][]: Fix static propTypes handling ([#1827][], [#1677][] @alexzherdev)
-* [`destructuring-assignment`][]: Allow LHS ([#1825][], [#1728][] @alexzherdev)
-* [`no-unused-prop-types`][]: Fix crash when encountering mixed union and intersection flow types ([#1806][] @yannickcr)
-
-### Changed
-* Typo fixes in [`jsx-no-target-blank`][] ([#1805][] @ferhatelmas))
-
-[7.10.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.9.1...v7.10.0
-[#1845]: https://github.com/yannickcr/eslint-plugin-react/pull/1845
-[#1844]: https://github.com/yannickcr/eslint-plugin-react/issues/1844
-[#1843]: https://github.com/yannickcr/eslint-plugin-react/pull/1843
-[#1831]: https://github.com/yannickcr/eslint-plugin-react/pull/1831
-[#1830]: https://github.com/yannickcr/eslint-plugin-react/issues/1830
-[#1827]: https://github.com/yannickcr/eslint-plugin-react/pull/1827
-[#1825]: https://github.com/yannickcr/eslint-plugin-react/pull/1825
-[#1806]: https://github.com/yannickcr/eslint-plugin-react/issues/1806
-[#1805]: https://github.com/yannickcr/eslint-plugin-react/pull/1805
-[#1728]: https://github.com/yannickcr/eslint-plugin-react/issues/1728
-[#1677]: https://github.com/yannickcr/eslint-plugin-react/issues/1677
-
-## [7.9.1] - 2018-06-03
-* Nothing was fixed; this is a republish with some updated deps. ([#1804][] @ljharb)
-
-[7.9.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.9.0...v7.9.1
-[#1804]: https://github.com/yannickcr/eslint-plugin-react/issues/1804
-
-## [7.9.0] - 2018-06-03
-### Added
-* Add [`jsx-props-no-multi-spaces`][] rule ([#1755][] @ThiefMaster)
-* Add `first` option to [`jsx-indent-props`][] ([#398][] @ThiefMaster)
-* Add `enforceDynamicLinks` option to [`jsx-no-target-blank`][] ([#1737][] @kenearley)
-
-### Fixed
-* Fix static lifecycle methods validation in [`sort-comp`][] ([#1793][] @lynxtaa)
-* Fix crash in [`no-typos`][] when encountering anonymous react imports ([#1796][] @jsg2021)
-* Fix ESLint 3 support ([#1779][])
-
-### Changed
-* Documentation improvements ([#1794][] @lencioni)
-* Update Travis CI configuration to test on multiple ESLint verions
-
-[7.9.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.8.2...v7.9.0
-[#1755]: https://github.com/yannickcr/eslint-plugin-react/pull/1755
-[#398]: https://github.com/yannickcr/eslint-plugin-react/issues/398
-[#1737]: https://github.com/yannickcr/eslint-plugin-react/issues/1737
-[#1793]: https://github.com/yannickcr/eslint-plugin-react/issues/1793
-[#1796]: https://github.com/yannickcr/eslint-plugin-react/pull/1796
-[#1779]: https://github.com/yannickcr/eslint-plugin-react/issues/1779
-[#1794]: https://github.com/yannickcr/eslint-plugin-react/pull/1794
-
-## [7.8.2] - 2018-05-13
-### Fixed
-* Fix crash in [`boolean-prop-naming`][] when encountering a required shape prop type ([#1791][] @pcorpet)
-
-[7.8.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.8.1...v7.8.2
-[#1791]: https://github.com/yannickcr/eslint-plugin-react/issues/1791
-
-## [7.8.1] - 2018-05-12
-### Fixed
-* Fix crash in [`no-deprecated`][] when encountering a class constructor ([#1785][] @taddei)
-
-[7.8.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.8.0...v7.8.1
-[#1785]: https://github.com/yannickcr/eslint-plugin-react/issues/1785
-
-## [7.8.0] - 2018-05-11
-### Added
-* Add support for fragments to [`react-in-jsx-scope`][] ([#1758][])
-* Add support for Flow generic PropType to [`require-default-props`][] ([#1724][] @Miziak)
-* Add component whitelist option to [`forbid-component-props`][] ([#1732][] @ThiefMaster)
-* Add support for React 16.3 lifecycle methods to [`no-unused-prop-types`][] ([#1681][] @bvaughn)
-* Add support for React 16.3 lifecycle methods to [`sort-comp`][] ([#1767][] @joe-denea)
-* Add support for React 16.3 lifecycle methods to [`no-typos`][]
-* Add support for `prevState` and `nextState` to [`no-unused-state`][] ([#1759][])
-* Add warnings for `componentWillMount`, `componentWillReceiveProps` and `componentWillUpdate` lifecycle methods in [`no-deprecated`][] ([#1750][] @sergei-startsev)
-
-### Fixed
-* Fix [`no-typos`][] false positive on custom `PropType` classes ([#1389][] @brettdh)
-* Fix [`boolean-prop-naming`][] to handle required props ([#1389][] @louisscruz)
-* Fix [`jsx-curly-brace-presence`][] to allow whitespace JSX container ([#1717][] @sharmilajesupaul)
-* Fix [`jsx-no-bind`][] to handle ternary conditions ([#1722][] @gwenaellarmet)
-
-### Changed
-* Documentation improvements ([#1699][] @ronanmathew, [#1743][] @ybiquitous, [#1753][] @awthwathje, [#1783][] @chentsulin, [#1703][] @ferhatelmas)
-
-[7.8.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.7.0...v7.8.0
-[#1758]: https://github.com/yannickcr/eslint-plugin-react/issues/1758
-[#1724]: https://github.com/yannickcr/eslint-plugin-react/issues/1724
-[#1732]: https://github.com/yannickcr/eslint-plugin-react/issues/1732
-[#1681]: https://github.com/yannickcr/eslint-plugin-react/pull/1681
-[#1767]: https://github.com/yannickcr/eslint-plugin-react/issues/1767
-[#1759]: https://github.com/yannickcr/eslint-plugin-react/issues/1759
-[#1750]: https://github.com/yannickcr/eslint-plugin-react/pull/1750
-[#1389]: https://github.com/yannickcr/eslint-plugin-react/issues/1389
-[#1717]: https://github.com/yannickcr/eslint-plugin-react/issues/1717
-[#1722]: https://github.com/yannickcr/eslint-plugin-react/issues/1722
-[#1699]: https://github.com/yannickcr/eslint-plugin-react/pull/1699
-[#1743]: https://github.com/yannickcr/eslint-plugin-react/pull/1743
-[#1753]: https://github.com/yannickcr/eslint-plugin-react/issues/1753
-[#1783]: https://github.com/yannickcr/eslint-plugin-react/pull/1783
-[#1703]: https://github.com/yannickcr/eslint-plugin-react/pull/1703
-
-## [7.7.0] - 2018-02-19
-### Added
-* [`forbid-foreign-prop-types`][]: add `allowInPropTypes` option ([#1655][] @iansu)
-* Add [`jsx-max-depth`][] rule ([#1260][] @chriswong)
-
-### Fixed
-* [`no-access-state-in-setstate`][]: Exclude references to this.state in setState callback ([#1610][] @pfhayes)
-* [`no-danger-with-children`][]: prevent infinite loop ([#1571][] @ljharb)
-* [`sort-prop-types`][]: Fix sortShapeProp when shape is not an object literal ([#1669][] @justinanastos)
-* [`jsx-child-element-spacing`][]: fix error location ([#1666][] @pfhayes)
-* [`no-unused-prop-types`][]: fix for createClass ([#1675][] @yuri-sakharov)
-* [`prop-types`][]: include nextProps checking in shouldComponentUpdate ([#1690][] @amerryma)
-* [`jsx-curly-spacing`][]: refactor to fix start and end-braces in a single pass ([#1414][] @s-h-a-d-o-w)
-
-### Changed
-* [`jsx-child-element-spacing`][]: add missing docs ([#1665][] @pfhayes); fix docs ([#1670][] @SammyM)
-
-[7.7.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.6.1...v7.7.0
-[#1690]: https://github.com/yannickcr/eslint-plugin-react/pull/1690
-[#1675]: https://github.com/yannickcr/eslint-plugin-react/pull/1675
-[#1670]: https://github.com/yannickcr/eslint-plugin-react/pull/1670
-[#1669]: https://github.com/yannickcr/eslint-plugin-react/pull/1669
-[#1666]: https://github.com/yannickcr/eslint-plugin-react/pull/1666
-[#1665]: https://github.com/yannickcr/eslint-plugin-react/pull/1665
-[#1655]: https://github.com/yannickcr/eslint-plugin-react/pull/1655
-[#1610]: https://github.com/yannickcr/eslint-plugin-react/pull/1610
-[#1414]: https://github.com/yannickcr/eslint-plugin-react/pull/1414
-[#1260]: https://github.com/yannickcr/eslint-plugin-react/pull/1260
-[#1571]: https://github.com/yannickcr/eslint-plugin-react/issues/1571
-
-## [7.6.1] - 2018-01-28
-### Fixed
-* Flow: fix crash in [`prop-types`][] with recursive type annotations ([#1653][] @jetpacmonkey)
-* Fix [`no-unknown-property`][] to properly recognize `crossOrigin` instead of `crossorigin`, and allow it on `link` tags. ([#1659][] @jzDev)
-* Fix [`no-access-state-in-setstate`][] to handle object spread ([#1657][] @ljharb)
-
-[7.6.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.6.0...v7.6.1
-[#1659]: https://github.com/yannickcr/eslint-plugin-react/pull/1659
-[#1657]: https://github.com/yannickcr/eslint-plugin-react/issues/1657
-[#1653]: https://github.com/yannickcr/eslint-plugin-react/pull/1653
-
-## [7.6.0] - 2018-01-25
-### Added
-* Add [`forbid-dom-props`][] rule ([#1562][] @davazp)
-* Add [`jsx-child-element-spacing`][] rule ([#1515][] @pfhayes)
-* Add [`no-this-in-sfc`][] rule ([#1435][] @jomasti)
-* Add [`jsx-sort-default-props`][] rule ([#281][] @b0gok)
-* Add `message` option to [`boolean-prop-naming`][] ([#1588][] @louisscruz)
-* Add `beforeClosing` option to [`jsx-tag-spacing`][] ([#1396][] @cjskillingstad)
-* Add `instance-methods` and `instance-variables` to [`sort-comp`][] ([#599][] @RDGthree)
-* Add `propWrapperFunctions` support for [`boolean-prop-naming`][] ([#1478][] @jomasti)
-* Add warning for `React.addons.TestUtils` in [`no-deprecated`][] ([#1644][] @nirnaor)
-* Add URL to rule documentation to the rules metadata ([#1635][] @Arcanemagus)
-
-### Fixed
-* Fix crashes in [`no-access-state-in-setstate`][] ([#1559][] @jomasti, [#1611][] @pfhayes)
-* Fix crash in [`require-optimization`][] when encountering arrays with empty items as values in object ([#1621][] @kamataryo)
-* Fix crash in [`no-unused-prop-types`][] when passing an empty function as a PropType ([#1542][] [#1581][] @kevinzwhuang)
-* Fix crash in [`no-typos`][] when using `PropType.shape` without arguments ([#1471][] @mrichmond)
-* Fix crash when using Unions in flow propTypes ([#1468][] @justinanastos)
-* Fix missing meta in [`jsx-tag-spacing`][] ([#1650][] @flyerhzm)
-* Fix [`no-unused-state`][] to detect usage of `this.state` as an object ([#1572][])
-* Fix [`no-access-state-in-setstate`][] to detect when the `state` variable is destructured from `this.state` ([#1597][] @jaaberg)
-* Fix [`jsx-no-literals`][] to correctly find string literals part of BinaryExpressions ([#1511][] @jaaberg)
-* Fix [`no-typos`][] false positive on custom propTypes with isRequired ([#1607][] @lfades)
-* Fix [`prop-types`][] to check for `nextProps` in `componentWillReceiveProps` ([#1636][] @xjmdoo)
-* Fix [`no-unknown-property`][] to not pascal-casing `crossorigin` attribute and only allow it on script/img/video ([#1642][] @ljharb)
-
-### Changed
-* Improve [`jsx-wrap-multilines`][] auto fix ([#1576][] @sharmilajesupaul)
-* Export `defaultConfig` from [`sort-comp`][] rule for programmatic use ([#1578][] @Andarist)
-* Documentation improvements ([#1552][] @TSMMark, [#1566][] @lukeapage, [#1624][] @alexilyaev, @ljharb)
-* Update dependencies (@ljharb)
-
-[7.6.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.5.1...v7.6.0
-[#1562]: https://github.com/yannickcr/eslint-plugin-react/pull/1562
-[#1515]: https://github.com/yannickcr/eslint-plugin-react/issues/1515
-[#1435]: https://github.com/yannickcr/eslint-plugin-react/issues/1435
-[#281]: https://github.com/yannickcr/eslint-plugin-react/issues/281
-[#1588]: https://github.com/yannickcr/eslint-plugin-react/pull/1588
-[#1396]: https://github.com/yannickcr/eslint-plugin-react/issues/1396
-[#599]: https://github.com/yannickcr/eslint-plugin-react/issues/599
-[#1478]: https://github.com/yannickcr/eslint-plugin-react/pull/1478
-[#1644]: https://github.com/yannickcr/eslint-plugin-react/issues/1644
-[#1635]: https://github.com/yannickcr/eslint-plugin-react/pull/1635
-[#1559]: https://github.com/yannickcr/eslint-plugin-react/issues/1559
-[#1611]: https://github.com/yannickcr/eslint-plugin-react/pull/1611
-[#1621]: https://github.com/yannickcr/eslint-plugin-react/pull/1621
-[#1542]: https://github.com/yannickcr/eslint-plugin-react/issues/1542
-[#1581]: https://github.com/yannickcr/eslint-plugin-react/issues/1581
-[#1471]: https://github.com/yannickcr/eslint-plugin-react/issues/1471
-[#1468]: https://github.com/yannickcr/eslint-plugin-react/issues/1468
-[#1650]: https://github.com/yannickcr/eslint-plugin-react/pull/1650
-[#1572]: https://github.com/yannickcr/eslint-plugin-react/issues/1572
-[#1597]: https://github.com/yannickcr/eslint-plugin-react/issues/1597
-[#1511]: https://github.com/yannickcr/eslint-plugin-react/issues/1511
-[#1607]: https://github.com/yannickcr/eslint-plugin-react/issues/1607
-[#1636]: https://github.com/yannickcr/eslint-plugin-react/issues/1636
-[#1642]: https://github.com/yannickcr/eslint-plugin-react/issues/1642
-[#1576]: https://github.com/yannickcr/eslint-plugin-react/pull/1576
-[#1578]: https://github.com/yannickcr/eslint-plugin-react/pull/1578
-[#1552]: https://github.com/yannickcr/eslint-plugin-react/pull/1552
-[#1566]: https://github.com/yannickcr/eslint-plugin-react/pull/1566
-[#1624]: https://github.com/yannickcr/eslint-plugin-react/pull/1624
-
-## [7.5.1] - 2017-11-19
-### Fixed
-* Fix [`jsx-no-bind`][] crash ([#1543][] @jomasti)
-* Fix [`no-unused-prop-types`][] crash ([#1542][] @jomasti)
-
-### Changed
-* Documentation improvements ([#1546][] @jseminck)
-
-[7.5.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.5.0...v7.5.1
-[#1543]: https://github.com/yannickcr/eslint-plugin-react/issues/1543
-[#1542]: https://github.com/yannickcr/eslint-plugin-react/issues/1542
-[#1546]: https://github.com/yannickcr/eslint-plugin-react/issues/1546
-
-## [7.5.0] - 2017-11-18
-### Added
-* Add [`jsx-one-expression-per-line`][] rule ([#1497][] @TSMMark)
-* Add [`destructuring-assignment`][] rule ([#1462][] @DianaSuvorova)
-* Add [`no-access-state-in-setstate`][] rule ([#1374][] @jaaberg)
-* Add [`button-has-type`][] rule ([#1525][] @Hypnosphi)
-* Add warnings for `React.DOM` factories in [`no-deprecated`][] ([#1530][] @backjo)
-* Add `sortShapeProp` option to [`sort-prop-types`][] ([#1476][] @jomasti)
-* Add `parens-new-line` option to [`jsx-wrap-multilines`][] ([#1475][] @jomasti)
-* Add `checkContextTypes` and `checkChildContextTypes` options to [`forbid-prop-types`][] ([#1533][] @jomasti)
-* Add `forbidDefaultForRequired ` option to [`require-default-props`][] ([#1524][] @jomasti)
-* Add new nodes support to [`jsx-wrap-multilines`][] ([#1384][] @evgeny-petukhov)
-
-### Fixed
-* Fix [`jsx-curly-brace-presence`][] auto fix by bailing out when some chars exist ([#1479][] [#1449][] @jackyho112)
-* Fix [`boolean-prop-naming`][] crash with Object spread ([#1485][] @track0x1)
-* Fix [`no-unused-state`][] to correctly handle arrow function class method ([#1363][] @jackyho112)
-* Fix incompatibility with [`typescript-eslint-parser`](https://github.com/eslint/typescript-eslint-parser) ([#1496][] @timothykang)
-* Fix [`jsx-no-bind`][] to only warn for props and account for variable declaration ([#1444][] [#1395][] [#1417][] @jackyho112)
-* Fix [`no-unused-prop-types`][] to handle props usage in custom prop validators ([#1518][] @petersendidit)
-* Fix [`prefer-stateless-function`][] to account for `contextTypes` and `defaultProps` ([#1521][] @jomasti)
-* Fix [`jsx-no-comment-textnodes`][] to not warn when using two slashes via html entities at the beginning of a literal ([#1517][] @jomasti)
-* Fix [`default-props-match-prop-types`][] crash ([#1499][] @jomasti)
-* Fix [`no-unused-prop-types`][] to handle props used in the `setState` update callback ([#1507][] @petersendidit)
-* Fix alignment bug in [`jsx-indent`][] ([#1246][] @jseminck)
-
-### Changed
-* Documentation improvements ([#1438][] @jseminck, [#1464][] @AlaaAttya, [#1494][] @piperchester, [#1467][] @felicio, [#1512][] @adam-golab)
-* Code refactoring ([#1423][] [#1398][] @jseminck, [#1500][] [#1514][] @Aladdin-ADD, [#1502][] @SimenB, [#1508][] [#1526][] @jomasti, @ljharb)
-* Update dependencies ([#1450][] @leebyron, @ljharb)
-
-[7.5.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.4.0...v7.5.0
-[#1497]: https://github.com/yannickcr/eslint-plugin-react/pull/1497
-[#1462]: https://github.com/yannickcr/eslint-plugin-react/pull/1462
-[#1374]: https://github.com/yannickcr/eslint-plugin-react/pull/1374
-[#1525]: https://github.com/yannickcr/eslint-plugin-react/pull/1525
-[#1530]: https://github.com/yannickcr/eslint-plugin-react/pull/1530
-[#1476]: https://github.com/yannickcr/eslint-plugin-react/issues/1476
-[#1475]: https://github.com/yannickcr/eslint-plugin-react/pull/1475
-[#1533]: https://github.com/yannickcr/eslint-plugin-react/pull/1533
-[#1524]: https://github.com/yannickcr/eslint-plugin-react/issues/1524
-[#1384]: https://github.com/yannickcr/eslint-plugin-react/pull/1384
-[#1479]: https://github.com/yannickcr/eslint-plugin-react/issues/1479
-[#1449]: https://github.com/yannickcr/eslint-plugin-react/issues/1449
-[#1485]: https://github.com/yannickcr/eslint-plugin-react/pull/1485
-[#1363]: https://github.com/yannickcr/eslint-plugin-react/issues/1363
-[#1496]: https://github.com/yannickcr/eslint-plugin-react/pull/1496
-[#1444]: https://github.com/yannickcr/eslint-plugin-react/issues/1444
-[#1395]: https://github.com/yannickcr/eslint-plugin-react/issues/1395
-[#1417]: https://github.com/yannickcr/eslint-plugin-react/issues/1417
-[#1518]: https://github.com/yannickcr/eslint-plugin-react/pull/1518
-[#1521]: https://github.com/yannickcr/eslint-plugin-react/issues/1521
-[#1517]: https://github.com/yannickcr/eslint-plugin-react/issues/1517
-[#1499]: https://github.com/yannickcr/eslint-plugin-react/issues/1499
-[#1507]: https://github.com/yannickcr/eslint-plugin-react/pull/1507
-[#1246]: https://github.com/yannickcr/eslint-plugin-react/issues/1246
-[#1438]: https://github.com/yannickcr/eslint-plugin-react/pull/1438
-[#1464]: https://github.com/yannickcr/eslint-plugin-react/pull/1464
-[#1494]: https://github.com/yannickcr/eslint-plugin-react/pull/1494
-[#1467]: https://github.com/yannickcr/eslint-plugin-react/pull/1467
-[#1512]: https://github.com/yannickcr/eslint-plugin-react/pull/1512
-[#1423]: https://github.com/yannickcr/eslint-plugin-react/pull/1423
-[#1500]: https://github.com/yannickcr/eslint-plugin-react/pull/1500
-[#1514]: https://github.com/yannickcr/eslint-plugin-react/pull/1514
-[#1502]: https://github.com/yannickcr/eslint-plugin-react/pull/1502
-[#1508]: https://github.com/yannickcr/eslint-plugin-react/pull/1508
-[#1526]: https://github.com/yannickcr/eslint-plugin-react/pull/1526
-[#1398]: https://github.com/yannickcr/eslint-plugin-react/pull/1398
-[#1450]: https://github.com/yannickcr/eslint-plugin-react/pull/1450
-
-## [7.4.0] - 2017-09-24
-### Added
-* Add Flow 0.53 support ([#1376][] @jseminck)
-* Add [`jsx-curly-brace-presence`][] rule ([#1310][] @jackyho112)
-* Add support for Flow IntersectionTypeAnnotation to [`prop-types`][] and [`no-unused-prop-types`][] ([#1364][] [#1323][] @jseminck)
-* Add support for Flow TypedArgument to [`no-unused-prop-types`][] ([#1412][] @jseminck)
-* Add support for Flow ClassExpressions to [`prop-types`][] ([#1400][] @jseminck)
-* Add support for Flow read-only props to [`no-unused-prop-types`][] ([#1388][] @jseminck)
-* Add more tests for [`prop-types`][] and [`no-unused-prop-types`][] ([#1381][] @DianaSuvorova)
-* Add support for increment and decrement operations to [`no-direct-mutation-state`][] ([#1386][] @zpao)
-
-### Fixed
-* Fix [`no-unused-state`][] to ignore computed property keys ([#1361][] @jackyho112)
-* Fix [`no-typos`][] crash ([#1406][] @jseminck)
-* Fix [`boolean-prop-naming`][] crash ([#1409][] @EvHaus)
-* Fix [`prop-types`][] and [`no-unused-prop-types`][] crash with IntersectionTypeAnnotation ([#1413][] @jseminck)
-
-### Changed
-* Documentation improvements ([#1392][] @xcatliu, [#1403][] @piperchester, [#1432][] @jneuendorf)
-
-[7.4.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.3.0...v7.4.0
-[#1376]: https://github.com/yannickcr/eslint-plugin-react/issues/1376
-[#1310]: https://github.com/yannickcr/eslint-plugin-react/issues/1310
-[#1364]: https://github.com/yannickcr/eslint-plugin-react/issues/1364
-[#1323]: https://github.com/yannickcr/eslint-plugin-react/issues/1323
-[#1412]: https://github.com/yannickcr/eslint-plugin-react/pull/1412
-[#1400]: https://github.com/yannickcr/eslint-plugin-react/pull/1400
-[#1388]: https://github.com/yannickcr/eslint-plugin-react/issues/1388
-[#1381]: https://github.com/yannickcr/eslint-plugin-react/pull/1381
-[#1361]: https://github.com/yannickcr/eslint-plugin-react/issues/1361
-[#1406]: https://github.com/yannickcr/eslint-plugin-react/pull/1406
-[#1409]: https://github.com/yannickcr/eslint-plugin-react/pull/1409
-[#1392]: https://github.com/yannickcr/eslint-plugin-react/pull/1392
-[#1403]: https://github.com/yannickcr/eslint-plugin-react/pull/1403
-[#1386]: https://github.com/yannickcr/eslint-plugin-react/issues/1386
-[#1413]: https://github.com/yannickcr/eslint-plugin-react/issues/1413
-[#1432]: https://github.com/yannickcr/eslint-plugin-react/pull/1432
-
-## [7.3.0] - 2017-08-21
-### Added
-* Add checks for `propTypes`, `contextTypes` and `childContextTypes` to [`no-typos`][] ([#213][] @DianaSuvorova)
-
-### Fixed
-* Fix [`boolean-prop-naming`][] crash ([#1369][] @EvHaus)
-* Fix [`no-typos`][] crash ([#1353][] @jseminck)
-* Fix [`require-default-props`][] stopping when it finds a component without props ([#1380][] @brgibson)
-* Fix [`no-direct-mutation-state`][] detection with nested components ([#1382][])
-
-### Changed
-* Documentation improvements ([#1383][] @mjomble)
-
-[7.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.2.1...v7.3.0
-[#213]: https://github.com/yannickcr/eslint-plugin-react/issues/213
-[#1369]: https://github.com/yannickcr/eslint-plugin-react/issues/1369
-[#1353]: https://github.com/yannickcr/eslint-plugin-react/issues/1353
-[#1380]: https://github.com/yannickcr/eslint-plugin-react/pull/1380
-[#1382]: https://github.com/yannickcr/eslint-plugin-react/issues/1382
-[#1383]: https://github.com/yannickcr/eslint-plugin-react/pull/1383
-
-## [7.2.1] - 2017-08-14
-### Fixed
-* Fix [`forbid-prop-types`][] crash on identifiers ([#1352][] @ljharb)
-* Fix [`boolean-prop-naming`][] crash with propTypes wrapper ([#1354][] @dustinsoftware)
-* Fix [`prop-types`][] false positive with local variable `props` ([#1288][] @DianaSuvorova)
-* Fix wrapped propTypes detection ([#1366][])
-
-### Changed
-* Documentation improvements ([#1123][] @penx)
-
-[7.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.2.0...v7.2.1
-[#1352]: https://github.com/yannickcr/eslint-plugin-react/issues/1352
-[#1354]: https://github.com/yannickcr/eslint-plugin-react/issues/1354
-[#1288]: https://github.com/yannickcr/eslint-plugin-react/issues/1288
-[#1366]: https://github.com/yannickcr/eslint-plugin-react/issues/1366
-[#1123]: https://github.com/yannickcr/eslint-plugin-react/issues/1123
-
-## [7.2.0] - 2017-08-09
-### Added
-* Add [`no-unused-state`][] rule ([#1103][] @wbinnssmith)
-* Add [`boolean-prop-naming`][] rule ([#1264][] @EvHaus)
-* Add [`no-typos`][] rule ([#1189][] @jseminck, [#1294][] @haridusenadeera)
-* Add auto fix for [`jsx-sort-props`][] ([#1273][] @Overload119)
-* Add `getters` and `setters` groups to [`sort-comp`][] ([#100][] @RDGthree)
-* Add `noStrings` option to [`jsx-no-literals`][] ([#1202][] @deecewan)
-* Add inverse option for `always`/`never` to [`jsx-boolean-value`][] ([#1249][] @ljharb)
-
-### Fixed
-* Fix [`no-direct-mutation-state`][] to disallow `this.state` mutation in constructor ([#832][] @burabure)
-* Fix [`jsx-no-target-blank`][] crash on empty `rel` attribute ([#1269][] @dustinsoftware)
-* Fix [`sort-comp`][] component detection with `ClassExpression` ([#1076][] @webOS101)
-* Fix [`no-unused-prop-types`][] detection with async class properties and methods ([#1053][] @benstepp)
-* Fix [`void-dom-elements-no-children`][] crash ([#1226][] @kokobeware)
-* Fix [`no-danger-with-children`][] to ignore line breaks ([#1262][])
-* Fix [`no-danger-with-children`][] crash with undefined ([#1287][])
-* Fix [`jsx-no-target-blank`][] crash ([#1296][] @jseminck)
-* Fix [`no-unused-prop-types`][] to no longer ignore components with no used props ([#1303][] @DianaSuvorova)
-* Fix [`jsx-no-duplicate-props`][] crash ([#969][] @marcelmokos)
-* Fix [`jsx-no-literals`][] false positives ([#1301][] @davidyorr)
-* Fix [`no-find-dom-node`][] detection with named imports ([#785][] @Hypnosphi)
-* Fix proTypes-related rules detection with wrapped propTypes ([#1266][] @dustinsoftware)
-* Fix [`no-unused-prop-types`][] detection with propTypes wrapped in a function ([#1253][] @dustinsoftware)
-* Fix [`no-unused-prop-types`][] detection with destructured use of properties ([#816][] @DianaSuvorova)
-* Fix [`no-unused-prop-types`][] detection with inline functions ([#1309][] @DianaSuvorova)
-* Fix [`no-unused-prop-types`][] `skipShapeProps` option with Flow annotations ([#1335][] @DianaSuvorova)
-* Fix [`jsx-curly-spacing`][] schema incompatibility with ESLint 4.2.0 ([#1290][] @jseminck)
-
-### Changed
-* Documentation improvements ([#1261][] @mminer, [#1005][] @yooungt13, [#1289][] @konekoya, [#1308][] @xcatliu, [#1306][] @egberts, [#1329][] [#1344][] @DianaSuvorova)
-* ES6-ify codebase ([#1274][] [#1277][] [#1281][] @dfilipidisz)
-* Code refactoring (@ljharb)
-* Update Travis CI and AppVeyor CI configurations (@lencioni)
-
-[7.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.1.0...v7.2.0
-[#1103]: https://github.com/yannickcr/eslint-plugin-react/pull/1103
-[#1273]: https://github.com/yannickcr/eslint-plugin-react/pull/1273
-[#1264]: https://github.com/yannickcr/eslint-plugin-react/pull/1264
-[#1189]: https://github.com/yannickcr/eslint-plugin-react/issues/1189
-[#1294]: https://github.com/yannickcr/eslint-plugin-react/pull/1294
-[#100]: https://github.com/yannickcr/eslint-plugin-react/issues/100
-[#1202]: https://github.com/yannickcr/eslint-plugin-react/pull/1202
-[#1249]: https://github.com/yannickcr/eslint-plugin-react/issues/1249
-[#832]: https://github.com/yannickcr/eslint-plugin-react/issues/832
-[#1269]: https://github.com/yannickcr/eslint-plugin-react/issues/1269
-[#1076]: https://github.com/yannickcr/eslint-plugin-react/issues/1076
-[#1053]: https://github.com/yannickcr/eslint-plugin-react/issues/1053
-[#1226]: https://github.com/yannickcr/eslint-plugin-react/pull/1226
-[#1262]: https://github.com/yannickcr/eslint-plugin-react/issues/1262
-[#1287]: https://github.com/yannickcr/eslint-plugin-react/issues/1287
-[#1296]: https://github.com/yannickcr/eslint-plugin-react/issues/1296
-[#1303]: https://github.com/yannickcr/eslint-plugin-react/pull/1303
-[#969]: https://github.com/yannickcr/eslint-plugin-react/issues/969
-[#1301]: https://github.com/yannickcr/eslint-plugin-react/issues/1301
-[#785]: https://github.com/yannickcr/eslint-plugin-react/issues/785
-[#1266]: https://github.com/yannickcr/eslint-plugin-react/issues/1266
-[#1253]: https://github.com/yannickcr/eslint-plugin-react/pull/1253
-[#816]: https://github.com/yannickcr/eslint-plugin-react/issues/816
-[#1309]: https://github.com/yannickcr/eslint-plugin-react/issues/1309
-[#1261]: https://github.com/yannickcr/eslint-plugin-react/pull/1261
-[#1005]: https://github.com/yannickcr/eslint-plugin-react/pull/1005
-[#1289]: https://github.com/yannickcr/eslint-plugin-react/pull/1289
-[#1308]: https://github.com/yannickcr/eslint-plugin-react/pull/1308
-[#1306]: https://github.com/yannickcr/eslint-plugin-react/issues/1306
-[#1329]: https://github.com/yannickcr/eslint-plugin-react/pull/1329
-[#1274]: https://github.com/yannickcr/eslint-plugin-react/pull/1274
-[#1277]: https://github.com/yannickcr/eslint-plugin-react/pull/1277
-[#1281]: https://github.com/yannickcr/eslint-plugin-react/pull/1281
-[#1335]: https://github.com/yannickcr/eslint-plugin-react/issues/1335
-[#1344]: https://github.com/yannickcr/eslint-plugin-react/pull/1344
-[#1290]: https://github.com/yannickcr/eslint-plugin-react/pull/1290
-
-## [7.1.0] - 2017-06-13
-### Added
-* Add [`default-props-match-prop-types`][] rule ([#1022][] @webOS101)
-* Add [`no-redundant-should-component-update`][] rule ([#985][] @jomasti)
-* Add [`jsx-closing-tag-location`][] rule ([#1206][] @rsolomon)
-* Add auto fix for [`jsx-max-props-per-line`][] ([#949][] @snowypowers)
-* Add support for lifecycle methods with `nextProps`/`prevProps` in [`no-unused-prop-types`][] ([#1213][] @jseminck)
-* Add Flow SuperTypeParameters support to [`prop-types`][] ([#1236][] @gpeal)
-* Add `children` option to [`jsx-curly-spacing`][] ([#857][] @fatfisz)
-
-### Fixed
-* Fix [`prefer-stateless-function`][] `ignorePureComponents` option when using class expressions ([#1122][] @dreid)
-* Fix [`void-dom-elements-no-children`][] crash ([#1195][] @oliviertassinari)
-* Fix [`require-default-props`][] quoted `defaultProps` detection ([#1201][])
-* Fix [`jsx-sort-props`][] bug with `ignoreCase` and `callbacksLast` options set to `true` ([#1175][] @jseminck)
-* Fix [`no-unused-prop-types`][] false positive ([#1183][] [#1135][] @jseminck)
-* Fix [`jsx-no-target-blank`][] to not issue errors for non-external URLs ([#1216][] @gfx)
-* Fix [`prop-types`][] quoted Flow types detection ([#1132][] @ethanjgoldberg)
-* Fix [`no-array-index-key`][] crash with `key` without value ([#1242][] @jseminck)
-
-### Changed
-* Set ESLint 4.0.0 as valid peerDependency
-* Dead code removal ([#1227][] @jseminck)
-* Update dependencies (@ljharb)
-* Documentation improvements ([#1071][] @adnasa, [#1199][] @preco21, [#1222][] @alexilyaev, [#1231][] @vonovak, [#1239][] @webOS101, [#1241][] @102)
-
-[7.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.0.1...v7.1.0
-[#1022]: https://github.com/yannickcr/eslint-plugin-react/issues/1022
-[#949]: https://github.com/yannickcr/eslint-plugin-react/pull/949
-[#985]: https://github.com/yannickcr/eslint-plugin-react/issues/985
-[#1213]: https://github.com/yannickcr/eslint-plugin-react/issues/1213
-[#1236]: https://github.com/yannickcr/eslint-plugin-react/pull/1236
-[#1206]: https://github.com/yannickcr/eslint-plugin-react/issues/1206
-[#857]: https://github.com/yannickcr/eslint-plugin-react/issues/857
-[#1122]: https://github.com/yannickcr/eslint-plugin-react/pull/1122
-[#1195]: https://github.com/yannickcr/eslint-plugin-react/pull/1195
-[#1201]: https://github.com/yannickcr/eslint-plugin-react/issues/1201
-[#1175]: https://github.com/yannickcr/eslint-plugin-react/issues/1175
-[#1183]: https://github.com/yannickcr/eslint-plugin-react/issues/1183
-[#1135]: https://github.com/yannickcr/eslint-plugin-react/issues/1135
-[#1216]: https://github.com/yannickcr/eslint-plugin-react/pull/1216
-[#1132]: https://github.com/yannickcr/eslint-plugin-react/pull/1132
-[#1242]: https://github.com/yannickcr/eslint-plugin-react/issues/1242
-[#1227]: https://github.com/yannickcr/eslint-plugin-react/pull/1227
-[#1071]: https://github.com/yannickcr/eslint-plugin-react/pull/1071
-[#1199]: https://github.com/yannickcr/eslint-plugin-react/pull/1199
-[#1222]: https://github.com/yannickcr/eslint-plugin-react/pull/1222
-[#1231]: https://github.com/yannickcr/eslint-plugin-react/pull/1231
-[#1239]: https://github.com/yannickcr/eslint-plugin-react/pull/1239
-[#1241]: https://github.com/yannickcr/eslint-plugin-react/pull/1241
-
-## [7.0.1] - 2017-05-13
-### Fixed
-* Fix [`jsx-curly-spacing`][] `allowMultiline` option being undefined in some cases ([#1179][] @fatfisz)
-* Fix [`jsx-curly-spacing`][] newline with object literals bug ([#1180][] @fatfisz)
-* Fix [`prop-types`][] to not mark class static function as valid propTypes definition ([#1174][])
-* Fix [`prop-types`][] crash with Flow spread operator ([#1178][])
-* Fix [`void-dom-elements-no-children`][] crash on faulty `createElement` detection ([#1101][])
-* Fix [`require-default-props`][] error message for quoted props ([#1161][])
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#1173][] @luftywiranda13, [#1192][] @markus-willems)
-
-[7.0.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v7.0.0...v7.0.1
-[#1179]: https://github.com/yannickcr/eslint-plugin-react/pull/1179
-[#1180]: https://github.com/yannickcr/eslint-plugin-react/pull/1180
-[#1174]: https://github.com/yannickcr/eslint-plugin-react/issues/1174
-[#1178]: https://github.com/yannickcr/eslint-plugin-react/issues/1178
-[#1101]: https://github.com/yannickcr/eslint-plugin-react/issues/1101
-[#1161]: https://github.com/yannickcr/eslint-plugin-react/issues/1161
-[#1173]: https://github.com/yannickcr/eslint-plugin-react/pull/1173
-[#1192]: https://github.com/yannickcr/eslint-plugin-react/pull/1192
-
-## [7.0.0] - 2017-05-06
-### Added
-* Add [`no-will-update-set-state`][] rule ([#1139][] @ManThursday)
-* Add import and destructuring support to [`no-deprecated`][]
-* Add `reservedFirst` option to [`jsx-sort-props`][] ([#1134][] @MatthewHerbst)
-
-### Breaking
-* Update rules for React 15.5.0:
-  * Add warnings for `React.PropTypes` and `React.createClass` in [`no-deprecated`][] ([#1148][] @Calyhre)
-  * Update `createClass` component factory to `createReactClass`. This is used for React component detection, if you still using `React.createClass` use the [shared settings](README.md#configuration) to specify `createClass` as component factory
-* Drop Node.js < 4 support ([#1038][] @ljharb)
-* Add [`no-danger-with-children`][] rule to recommended rules ([#748][] @ljharb)
-* Add [`no-string-refs`][] rule to recommended rules ([#749][] @ljharb)
-* Add [`jsx-key`][] rule to recommended rules ([#750][] @ljharb)
-* Add [`jsx-no-comment-textnodes`][] rule to recommended rules ([#751][] @ljharb)
-* Add [`jsx-no-target-blank`][] rule to recommended rules ([#752][] @ljharb)
-* Add [`no-unescaped-entities`][] rule to recommended rules ([#841][] @ljharb)
-* Add [`no-children-prop`][] rule to recommended rules ([#842][] @ljharb)
-* Remove deprecated [`wrap-multilines`][] rule, use [`jsx-wrap-multilines`][] instead
-* Remove deprecated [`no-comment-textnodes`][] rule, use [`jsx-no-comment-textnodes`][] instead
-* Remove deprecated [`require-extension`][] rule, use the [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) [`extensions`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md) rule instead
-* Deprecate [`jsx-space-before-closing`][] rule, use the [`jsx-tag-spacing`][] rule instead. [`jsx-space-before-closing`][] still works but will trigger a warning ([#1070][] @afairb)
-* [`jsx-first-prop-new-line`][] default is now `multiline-multiprop` ([#802][] @kokarn)
-* [`jsx-wrap-multilines`][] now checks arrow functions without block body. It can be deactivated in [rule options](docs/rules/jsx-wrap-multilines.md#rule-details) ([#790][] @ColCh)
-* [`jsx-no-undef`][] will not check the global scope by default. You can force it with the [`allowGlobals`](docs/rules/jsx-no-undef.md#allowglobals) option ([#1013][] @jomasti)
-
-### Fixed
-* Fix [`no-unused-prop-types`][] false positive with `nextProps` ([#1079][] @Kerumen)
-* Fix [`prefer-stateless-function`][] to not warn on classes with decorators ([#1034][] @benstepp)
-
-### Changed
-* Update dependencies ([#1119][] @danez)
-* Documentation improvements ([#1121][] @omerzach, [#1130][] @dreid, [#1131][] @shoesandsocks, [#1149][] @Adzz, [#1151][] @MatthewHerbst, [#1167][] @Slumber86)
-
-[7.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.10.3...v7.0.0
-[#1134]: https://github.com/yannickcr/eslint-plugin-react/pull/1134
-[#1038]: https://github.com/yannickcr/eslint-plugin-react/pull/1038
-[#802]: https://github.com/yannickcr/eslint-plugin-react/pull/802
-[#790]: https://github.com/yannickcr/eslint-plugin-react/issues/790
-[#1013]: https://github.com/yannickcr/eslint-plugin-react/pull/1013
-[#1070]: https://github.com/yannickcr/eslint-plugin-react/pull/1070
-[#748]: https://github.com/yannickcr/eslint-plugin-react/issues/748
-[#749]: https://github.com/yannickcr/eslint-plugin-react/issues/749
-[#750]: https://github.com/yannickcr/eslint-plugin-react/issues/750
-[#751]: https://github.com/yannickcr/eslint-plugin-react/issues/751
-[#752]: https://github.com/yannickcr/eslint-plugin-react/issues/752
-[#841]: https://github.com/yannickcr/eslint-plugin-react/issues/841
-[#842]: https://github.com/yannickcr/eslint-plugin-react/issues/842
-[#1139]: https://github.com/yannickcr/eslint-plugin-react/pull/1139
-[#1148]: https://github.com/yannickcr/eslint-plugin-react/pull/1148
-[#1079]: https://github.com/yannickcr/eslint-plugin-react/issues/1079
-[#1034]: https://github.com/yannickcr/eslint-plugin-react/issues/1034
-[#1119]: https://github.com/yannickcr/eslint-plugin-react/pull/1119
-[#1121]: https://github.com/yannickcr/eslint-plugin-react/pull/1121
-[#1130]: https://github.com/yannickcr/eslint-plugin-react/pull/1130
-[#1131]: https://github.com/yannickcr/eslint-plugin-react/pull/1131
-[#1149]: https://github.com/yannickcr/eslint-plugin-react/pull/1149
-[#1151]: https://github.com/yannickcr/eslint-plugin-react/pull/1151
-[#1167]: https://github.com/yannickcr/eslint-plugin-react/pull/1167
-
-## [6.10.3] - 2017-03-20
-### Fixed
-* Revert [#1057][] due to issues with [`jsx-indent`][] ([#1117][])
-
-[6.10.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.10.2...v6.10.3
-
-## [6.10.2] - 2017-03-19
-### Fixed
-* Fix [`jsx-indent`][] indentation calculation with nested JSX ([#1117][])
-
-[6.10.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.10.1...v6.10.2
-[#1117]: https://github.com/yannickcr/eslint-plugin-react/issues/1117
-
-## [6.10.1] - 2017-03-19
-### Fixed
-* Fix [`jsx-indent`][] auto fix with tabs ([#1057][] @kentcdodds @webOS101)
-* Fix [`jsx-indent`][] crash ([#1061][] @iancmyers)
-* Fix [`void-dom-elements-no-children`][] crash and fix it to only checks for a createElement call from
-React ([#1073][] @jomasti)
-* Fix component detection that caused a false positive in [`no-multi-comp`][] ([#1088][] @benstepp)
-
-[6.10.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.10.0...v6.10.1
-[#1057]: https://github.com/yannickcr/eslint-plugin-react/issues/1057
-[#1061]: https://github.com/yannickcr/eslint-plugin-react/issues/1061
-[#1073]: https://github.com/yannickcr/eslint-plugin-react/issues/1073
-[#1088]: https://github.com/yannickcr/eslint-plugin-react/issues/1088
-
-## [6.10.0] - 2017-02-16
-### Added
-* Add [`forbid-foreign-prop-types`][] rule ([#696][] @iancmyers)
-* Add [`void-dom-elements-no-children`][] rule ([#709][] @lencioni)
-* Add [`forbid-elements`][] rule ([#887][] @kentor)
-* Add `noSortAlphabetically` option to [`jsx-sort-props`][] ([#541][] [#786][] @markus101)
-* Add `when` option to [`jsx-max-props-per-line`][] ([#878][] @kentor)
-* Add support for `nextProps` to [`prop-types`][] ([#814][])
-
-### Fixed
-* Fix [`require-default-props`][] crash ([#1029][])
-* Fix [`require-default-props`][] rule when using Flow type from assignment ([#1043][] @wyze @CarlRosell)
-* Fix [`style-prop-object`][] to not warn with explicit `null` or `undefined` ([#812][] @ljharb)
-* Fix [`no-unused-prop-types`][] props detection in stateless components ([#885][] @BarryThePenguin)
-* Fix [`display-name`] false positive with `document.createElement` ([#996][] @jomasti)
-* Fix ESLint 2 compatibility (@ljharb)
-
-### Changed
-* Tests improvements (@ljharb)
-* Documentation improvements ([#958][] @Jorundur, [#1010][] @amilajack, [#1041][] @EvNaverniouk, [#1050][] @lencioni, [#1062][] @dguo)
-
-[6.10.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.9.0...v6.10.0
-[#696]: https://github.com/yannickcr/eslint-plugin-react/issues/696
-[#709]: https://github.com/yannickcr/eslint-plugin-react/issues/709
-[#887]: https://github.com/yannickcr/eslint-plugin-react/issues/887
-[#541]: https://github.com/yannickcr/eslint-plugin-react/issues/541
-[#786]: https://github.com/yannickcr/eslint-plugin-react/issues/786
-[#878]: https://github.com/yannickcr/eslint-plugin-react/issues/878
-[#814]: https://github.com/yannickcr/eslint-plugin-react/issues/814
-[#1029]: https://github.com/yannickcr/eslint-plugin-react/issues/1029
-[#1043]: https://github.com/yannickcr/eslint-plugin-react/issues/1043
-[#812]: https://github.com/yannickcr/eslint-plugin-react/issues/812
-[#885]: https://github.com/yannickcr/eslint-plugin-react/issues/885
-[#996]: https://github.com/yannickcr/eslint-plugin-react/issues/996
-[#958]: https://github.com/yannickcr/eslint-plugin-react/pull/958
-[#1010]: https://github.com/yannickcr/eslint-plugin-react/pull/1010
-[#1041]: https://github.com/yannickcr/eslint-plugin-react/pull/1041
-[#1050]: https://github.com/yannickcr/eslint-plugin-react/pull/1050
-[#1062]: https://github.com/yannickcr/eslint-plugin-react/pull/1062
-
-## [6.9.0] - 2017-01-08
-### Added
-* Add support for variable reference to [`sort-prop-types`][] ([#622][])
-
-### Fixed
-* Fix Node.js 0.10 support ([#1000][] @ljharb)
-* Fix [`prop-types`][] to correctly assign props to components ([#991][])
-
-### Changed
-* Documentation improvements ([#995][] @rutsky)
-
-[6.9.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.8.0...v6.9.0
-[#622]: https://github.com/yannickcr/eslint-plugin-react/issues/622
-[#1000]: https://github.com/yannickcr/eslint-plugin-react/pull/1000
-[#991]: https://github.com/yannickcr/eslint-plugin-react/issues/991
-[#995]: https://github.com/yannickcr/eslint-plugin-react/pull/995
-
-## [6.8.0] - 2016-12-05
-### Added
-* Add [`no-array-index-key`][] rule ([#978][] @lencioni)
-* Add [`require-default-props`][] rule ([#528][]  @vitorbal)
-* Add support for flow variance syntax to [`prop-types`][] ([#961][] @ajhyndman)
-
-### Fixed
-* Fix [`jsx-indent`][] with multiline jsx in ternaries ([#966][])
-* Fix component detection to ignore async functions ([#989][] @taion)
-* Fix [`jsx-curly-spacing`][] autofix to not delete comments ([#648][])
-* Fix auto-enabling of `eslint-plugin-react` in exported configurations ([#984][] @jamischarles)
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#960][] @evilebottnawi, [#973][] @JamesWatling, [#982][] @captbaritone)
-
-[6.8.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.7.1...v6.8.0
-[#978]: https://github.com/yannickcr/eslint-plugin-react/pull/978
-[#528]: https://github.com/yannickcr/eslint-plugin-react/issues/528
-[#961]: https://github.com/yannickcr/eslint-plugin-react/issues/961
-[#966]: https://github.com/yannickcr/eslint-plugin-react/issues/966
-[#989]: https://github.com/yannickcr/eslint-plugin-react/pull/989
-[#648]: https://github.com/yannickcr/eslint-plugin-react/issues/648
-[#984]: https://github.com/yannickcr/eslint-plugin-react/pull/984
-[#960]: https://github.com/yannickcr/eslint-plugin-react/pull/960
-[#973]: https://github.com/yannickcr/eslint-plugin-react/pull/973
-[#982]: https://github.com/yannickcr/eslint-plugin-react/pull/982
-
-## [6.7.1] - 2016-11-15
-### Fixed
-* Fix [`jsx-tag-spacing`][] crash when options object isn't passed ([#955][] @daltones)
-
-[6.7.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.7.0...v6.7.1
-[#955]: https://github.com/yannickcr/eslint-plugin-react/issues/955
-
-## [6.7.0] - 2016-11-14
-### Added
-* Add [`jsx-tag-spacing`][] rule ([#693][] @Kovensky)
-
-### Fixed
-* Fix [`jsx-indent`][] for parenthesized ternaries ([#945][] @voxpelli)
-* Fix [`jsx-indent`][] for multiline ternaries
-* Fix [`jsx-indent`][] for arrays in jsx ([#947][])
-* Fix [`no-danger-with-children`][] crash with spread on global variables ([#921][])
-* Fix [`jsx-wrap-multilines`][] ternaries handling ([#916][])
-
-### Changed
-* Enable [`no-unused-prop-types`][] `skipShapeProps` option by default to limit false positive ([#953][] @everdimension)
-
-[6.7.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.6.0...v6.7.0
-[#693]: https://github.com/yannickcr/eslint-plugin-react/issues/693
-[#945]: https://github.com/yannickcr/eslint-plugin-react/issues/945
-[#947]: https://github.com/yannickcr/eslint-plugin-react/issues/947
-[#921]: https://github.com/yannickcr/eslint-plugin-react/issues/921
-[#916]: https://github.com/yannickcr/eslint-plugin-react/issues/916
-[#953]: https://github.com/yannickcr/eslint-plugin-react/pull/953
-
-## [6.6.0] - 2016-11-06
-### Added
-* Add [`jsx-first-prop-new-line`][] auto fix ([#886][] @snowypowers)
-
-### Fixed
-* Fix [`no-unused-prop-types`][] crash with destructured prop-types ([#938][])
-* Fix [`jsx-indent`][] in multi-line conditional expressions ([#901][], [#907][])
-* Fix [`sort-comp`][] bad error message if 2 methods in the same group must be moved ([#507][])
-
-### Changed
-* Documentation improvements ([#941][] @pwmckenna)
-
-[6.6.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.5.0...v6.6.0
-[#886]: https://github.com/yannickcr/eslint-plugin-react/pull/886
-[#938]: https://github.com/yannickcr/eslint-plugin-react/issues/938
-[#901]: https://github.com/yannickcr/eslint-plugin-react/issues/901
-[#907]: https://github.com/yannickcr/eslint-plugin-react/issues/907
-[#507]: https://github.com/yannickcr/eslint-plugin-react/issues/507
-[#941]: https://github.com/yannickcr/eslint-plugin-react/pull/941
-
-## [6.5.0] - 2016-11-01
-### Added
-* Add tab support to [`jsx-closing-bracket-location`][] auto fixer ([#909][] @arperry)
-* Add tab and space support to [`jsx-indent`][] auto fixer ([#608][] @jayphelps)
-* Add `multiline-multiprop` option to [`jsx-first-prop-new-line`][] ([#883][] @kentor)
-
-### Fixed
-* Fix [`forbid-component-props`][] crash with self reference JSX element ([#839][] @xeodou)
-* Fix [`jsx-indent`][] to ignore lines starting by literals ([#900][])
-* Fix [`no-set-state`][] to correctly detect `setState` in arrow functions ([#931][])
-
-### Changed
-* Update dependencies
-* Add `deprecated` metadata to deprecated rules ([#911][] @randycoulman)
-* Auto-enable `eslint-plugin-react` in exported configurations ([#925][] @MoOx)
-* Documentation improvements ([#910][] @Wilfred, [#932][] @gnarf)
-
-[6.5.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.4.1...v6.5.0
-[#909]: https://github.com/yannickcr/eslint-plugin-react/pull/909
-[#608]: https://github.com/yannickcr/eslint-plugin-react/pull/608
-[#883]: https://github.com/yannickcr/eslint-plugin-react/pull/883
-[#839]: https://github.com/yannickcr/eslint-plugin-react/pull/839
-[#900]: https://github.com/yannickcr/eslint-plugin-react/issues/900
-[#931]: https://github.com/yannickcr/eslint-plugin-react/issues/931
-[#911]: https://github.com/yannickcr/eslint-plugin-react/pull/911
-[#925]: https://github.com/yannickcr/eslint-plugin-react/pull/925
-[#910]: https://github.com/yannickcr/eslint-plugin-react/pull/910
-[#932]: https://github.com/yannickcr/eslint-plugin-react/pull/932
-
-## [6.4.1] - 2016-10-10
-### Fixed
-* Fix [`jsx-indent`][] for arrays ([#897][], [#898][])
-* Fix [`jsx-indent`][] to allow multi-line logical expressions with one level of indent ([#896][])
-
-[6.4.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.4.0...v6.4.1
-[#897]: https://github.com/yannickcr/eslint-plugin-react/issues/897
-[#898]: https://github.com/yannickcr/eslint-plugin-react/issues/898
-[#896]: https://github.com/yannickcr/eslint-plugin-react/pull/896
-
-## [6.4.0] - 2016-10-09
-### Added
-* Add `skipUndeclared` option to [`prop-types`][] ([#846][] @pfhayes)
-
-### Fixed
-* Fix [`jsx-no-bind`][] crash on arrow functions ([#854][])
-* Fix [`display-name`][] false negative on es6-style method in `React.createClass` ([#852][])
-* Fix [`prefer-stateless-function`][] to allow components with `childContextTypes` ([#853][])
-* Fix [`no-children-prop`][] spread support ([#862][] @randycoulman)
-* Fix [`no-unused-prop-types`][] to ignore validation when spread is used ([#840][])
-* Fix [`jsx-closing-bracket-location`][] for multi-line prop ([#889][])
-* Fix [`jsx-indent`][] in multi-line function calls ([#895][])
-* Fix [`jsx-indent`][] in multi-line logical expressions ([#540][])
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#860][] @fson, [#863][] @corydolphin, [#830][] @eelyafi, [#876][] @manovotny, [#877][] @gaearon)
-
-[6.4.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.3.0...v6.4.0
-[#846]: https://github.com/yannickcr/eslint-plugin-react/pull/846
-[#854]: https://github.com/yannickcr/eslint-plugin-react/issues/854
-[#852]: https://github.com/yannickcr/eslint-plugin-react/issues/852
-[#853]: https://github.com/yannickcr/eslint-plugin-react/issues/853
-[#862]: https://github.com/yannickcr/eslint-plugin-react/pull/862
-[#840]: https://github.com/yannickcr/eslint-plugin-react/issues/840
-[#889]: https://github.com/yannickcr/eslint-plugin-react/issues/889
-[#895]: https://github.com/yannickcr/eslint-plugin-react/issues/895
-[#540]: https://github.com/yannickcr/eslint-plugin-react/issues/540
-[#860]: https://github.com/yannickcr/eslint-plugin-react/pull/860
-[#863]: https://github.com/yannickcr/eslint-plugin-react/pull/863
-[#830]: https://github.com/yannickcr/eslint-plugin-react/pull/830
-[#876]: https://github.com/yannickcr/eslint-plugin-react/pull/876
-[#877]: https://github.com/yannickcr/eslint-plugin-react/pull/877
-
-## [6.3.0] - 2016-09-20
-### Added
-* Add [`no-children-prop`][] rule ([#720][] @benstepp)
-* Add [`no-unescaped-entities`][] rule ([#681][] @pfhayes)
-* Add JSXExpressionContainer support to [`jsx-indent`][] rule ([#838][] @eelyafi)
-
-### Fixed
-* Fix [`style-prop-object`][] crash ([#834][])
-* Fix [`style-prop-object`][] false positive on computed properties ([#820][])
-* Fix [`style-prop-object`][] to deal with null and spread props that can't be resolved ([#809][] [#812][] @petersendidit)
-
-[6.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.2.2...v6.3.0
-[#720]: https://github.com/yannickcr/eslint-plugin-react/issues/720
-[#681]: https://github.com/yannickcr/eslint-plugin-react/pull/681
-[#838]: https://github.com/yannickcr/eslint-plugin-react/pull/838
-[#834]: https://github.com/yannickcr/eslint-plugin-react/issues/834
-[#820]: https://github.com/yannickcr/eslint-plugin-react/issues/820
-[#809]: https://github.com/yannickcr/eslint-plugin-react/issues/809
-[#812]: https://github.com/yannickcr/eslint-plugin-react/issues/812
-
-## [6.2.2] - 2016-09-15
-### Fixed
-* Fix [`no-unused-prop-types`][] crash ([#825][] @EvNaverniouk)
-* Fix [`jsx-no-target-blank`][] crash ([#821][])
-
-[6.2.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.2.1...v6.2.2
-[#821]: https://github.com/yannickcr/eslint-plugin-react/issues/821
-[#825]: https://github.com/yannickcr/eslint-plugin-react/pull/825
-
-## [6.2.1] - 2016-09-13
-### Fixed
-* Fix false positive in [`no-unused-prop-types`][] ([#792][] @EvNaverniouk)
-* Fix [`jsx-no-target-blank`][] to target only anchor elements ([#793][] @aduth)
-* Fix [`jsx-no-target-blank`][] to be case insensitive [#796][] @dmnd)
-* Fix [`jsx-uses-vars`][] shadowed variables handling ([#799][])
-
-### Changed
-* Update dependencies
-* Documentation improvements (@ljharb, [#794][] @dougshamoo, [#813][] @AndiDog, [#815][] @chris-vaszauskas)
-
-[6.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.2.0...v6.2.1
-[#792]: https://github.com/yannickcr/eslint-plugin-react/pull/792
-[#793]: https://github.com/yannickcr/eslint-plugin-react/pull/793
-[#794]: https://github.com/yannickcr/eslint-plugin-react/pull/794
-[#796]: https://github.com/yannickcr/eslint-plugin-react/pull/796
-[#799]: https://github.com/yannickcr/eslint-plugin-react/issues/799
-[#813]: https://github.com/yannickcr/eslint-plugin-react/pull/813
-[#815]: https://github.com/yannickcr/eslint-plugin-react/pull/815
-
-## [6.2.0] - 2016-08-28
-### Added
-* Add [`no-unused-prop-types`][] rule ([#226][] @EvNaverniouk)
-* Add [`style-prop-object`][] rule ([#715][] @petersendidit)
-* Add auto fix for [`self-closing-comp`][] ([#770][] @pl12133)
-* Add support for `typeAnnotations` in [`sort-comp`][] ([#235][] @dozoisch)
-* Add support for `PureComponent` in [`prefer-stateless-function`][] ([#781][] @tiemevanveen)
-
-### Fixed
-* Fix [`jsx-uses-vars`][] to work better with [`prefer-const`](http://eslint.org/docs/rules/prefer-const). You'll need to upgrade to ESLint 3.4.0 to completely fix the compatibility issue ([#716][])
-* Fix [`require-render-return`][] crash ([#784][])
-* Fix related components detection in [`prop-types`][] ([#735][])
-* Fix component detection to ignore functions expression without a parent component
-
-### Changed
-* Update dependencies
-* Documentation improvements (@lencioni)
-
-[6.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.1.2...v6.2.0
-[#226]: https://github.com/yannickcr/eslint-plugin-react/issues/226
-[#715]: https://github.com/yannickcr/eslint-plugin-react/issues/715
-[#770]: https://github.com/yannickcr/eslint-plugin-react/pull/770
-[#235]: https://github.com/yannickcr/eslint-plugin-react/issues/235
-[#781]: https://github.com/yannickcr/eslint-plugin-react/pull/781
-[#716]: https://github.com/yannickcr/eslint-plugin-react/issues/716
-[#784]: https://github.com/yannickcr/eslint-plugin-react/issues/784
-[#735]: https://github.com/yannickcr/eslint-plugin-react/issues/735
-
-## [6.1.2] - 2016-08-17
-### Fixed
-* Fix nested spread handling in [`no-danger-with-children`][] ([#771][] @petersendidit)
-
-### Changed
-* Documentation improvements
-
-[6.1.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.1.1...v6.1.2
-[#771]: https://github.com/yannickcr/eslint-plugin-react/issues/771
-
-## [6.1.1] - 2016-08-16
-### Fixed
-* Fix [`prop-types`][] on annotated components ([#766][])
-* Fix [`no-danger-with-children`][] spread support ([#767][] @petersendidit)
-
-### Changed
-* Documentation improvements ([#769][] @daltones)
-
-[6.1.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.1.0...v6.1.1
-[#766]: https://github.com/yannickcr/eslint-plugin-react/issues/766
-[#767]: https://github.com/yannickcr/eslint-plugin-react/issues/767
-[#769]: https://github.com/yannickcr/eslint-plugin-react/pull/769
-
-## [6.1.0] - 2016-08-14
-### Added
-* Add `React.PureComponent` support ([#737][])
-* Add [`forbid-component-props`][] rule ([#314][] @lencioni)
-* Add [`no-danger-with-children`][] rule ([#710][] @petersendidit)
-* Add pragma for `createClass` factory method ([#725][] @zurawiki)
-
-### Fixed
-* Fix Node.js 0.10 support ([#746][])
-* Fix [`prop-types`][] on annotated components ([#729][])
-* Fix [`require-optimization`][] test for function declaration ([#744][] @Tom910)
-* Fix [`jsx-uses-vars`][] to handle nested object properties ([#761][] @yayalice)
-* Fix rules metadata
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#759][] @embrown, [#703][] [#753][] @lencioni, [#739][] @ljharb, [#731][] @wKich, [#745][] @petersendidit, [#659][] @dguo)
-
-[6.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v6.0.0...v6.1.0
-[#737]: https://github.com/yannickcr/eslint-plugin-react/issues/737
-[#710]: https://github.com/yannickcr/eslint-plugin-react/issues/710
-[#725]: https://github.com/yannickcr/eslint-plugin-react/pull/725
-[#746]: https://github.com/yannickcr/eslint-plugin-react/issues/746
-[#729]: https://github.com/yannickcr/eslint-plugin-react/issues/729
-[#744]: https://github.com/yannickcr/eslint-plugin-react/pull/744
-[#761]: https://github.com/yannickcr/eslint-plugin-react/pull/761
-[#759]: https://github.com/yannickcr/eslint-plugin-react/pull/759
-[#703]: https://github.com/yannickcr/eslint-plugin-react/pull/703
-[#753]: https://github.com/yannickcr/eslint-plugin-react/pull/753
-[#739]: https://github.com/yannickcr/eslint-plugin-react/issues/739
-[#731]: https://github.com/yannickcr/eslint-plugin-react/pull/731
-[#745]: https://github.com/yannickcr/eslint-plugin-react/pull/745
-[#659]: https://github.com/yannickcr/eslint-plugin-react/pull/659
-[#314]: https://github.com/yannickcr/eslint-plugin-react/pull/314
-
-## [6.0.0] - 2016-08-01
-### Added
-* Add an `all` shareable configuration with all rules enabled ([#674][] @pfhayes)
-* Add [`no-find-dom-node`][] rule ([#678][])
-* Add `shorthandLast` option to [`jsx-sort-props`][] ([#391][] @mathieumg)
-* Add `allowDecorators` option to [`require-optimization`][] ([#669][] @Tom910)
-
-### Breaking
-* Deprecate [`require-extension`][] rule, use the [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) [`extensions`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md) rule instead. [`require-extension`][] still works but will trigger a warning
-* Enable `allow-in-func` mode by default in [`no-did-mount-set-state`][] and [`no-did-update-set-state`][] rules ([#702][] @lencioni)
-* Enable html tags check by default in `self-closing-comp`
-* Remove `pragma` option from `jsx-uses-react`, use the [shared settings](README.md#configuration) to specify a custom pragma ([#700][] @lencioni)
-* Remove `react` option from [`no-deprecated`][] rule, use the [shared settings](README.md#configuration) to specify the React version ([#700][] @lencioni)
-* Add [`require-render-return`][] rule to recommended rules
-* Remove [`no-danger`][] from recommended rules ([#636][] @mjackson)
-* Remove [`no-did-mount-set-state`][] and [`no-did-update-set-state`][] from recommended rules ([#596][])
-* Remove deprecated [`jsx-sort-prop-types`][] rule, use [`sort-prop-types`][] instead ([#549][] @lencioni)
-* Rename [`no-comment-textnodes`][] to [`jsx-no-comment-textnodes`][]. [`no-comment-textnodes`][] still works but will trigger a warning ([#668][] @lencioni)
-* Rename [`wrap-multilines`][] to [`jsx-wrap-multilines`][]. [`wrap-multilines`][] still works but will trigger a warning ([#668][] @lencioni)
-* Add ESLint as peerDependency ([#657][] @jokeyrhyme)
-* Add Node.js 0.10 as minimum required version ([#657][] @jokeyrhyme)
-
-### Fixed
-* Fix [`jsx-handler-names`][] incorrectly flagging `only` ([#571][] @lencioni)
-* Fix spread props cash in [`jsx-no-target-blank`][] ([#679][] @randycoulman)
-* Fix [`require-optimization`][] warning on stateless components ([#687][])
-* Fix [`jsx-uses-vars`][] that incorrectly marked some variables as used ([#694][] @lencioni)
-* Fix [`no-unknown-property`][] check on SVG attributes ([#718][])
-* Fix [`jsx-no-bind`][] reporting errors on render functions that don't return JSX ([#663][] @petersendidit)
-* Fix [`jsx-closing-bracket-location`][] autofix when `location` is set to `props-aligned` ([#684][] @pfhayes)
-* Fix [`prop-types`][] for destructured arguments being assigned to the parent stateless component in some cases ([#698][])
-* Fix [`prop-types`][] for JSX return being assigned to the parent function in some cases ([#504][])
-* Fix [`jsx-curly-spacing`][] for reporting on JSX content by mistake ([#671][])
-* Fix [`prop-types`][] crash when accessing constructor on props ([#654][])
-* Fix [`jsx-filename-extension`][] to not check filenames on text input ([#662][] @ljharb)
-* Fix [`jsx-no-comment-textnodes`][] incorrectly catching urls ([#664][] @petersendidit)
-
-### Changed
-* Only report [`jsx-filename-extension`][] warning once per file ([#660][] @mathieumg)
-* Update SVG and DOM attribute list for `no-unknown-property`
-* Update rules to use the new ESLint rule format ([#661][] @petersendidit)
-* Update dependencies
-* Documentation improvements ([#724][] @lencioni)
-* Update Travis CI and AppVeyor CI configurations (@ljharb)
-
-[6.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.2.2...v6.0.0
-[#571]: https://github.com/yannickcr/eslint-plugin-react/issues/571
-[#728]: https://github.com/yannickcr/eslint-plugin-react/pull/728
-[#679]: https://github.com/yannickcr/eslint-plugin-react/pull/679
-[#687]: https://github.com/yannickcr/eslint-plugin-react/issues/687
-[#694]: https://github.com/yannickcr/eslint-plugin-react/issues/694
-[#718]: https://github.com/yannickcr/eslint-plugin-react/issues/718
-[#723]: https://github.com/yannickcr/eslint-plugin-react/pull/723
-[#702]: https://github.com/yannickcr/eslint-plugin-react/pull/702
-[#700]: https://github.com/yannickcr/eslint-plugin-react/pull/700
-[#636]: https://github.com/yannickcr/eslint-plugin-react/pull/636
-[#596]: https://github.com/yannickcr/eslint-plugin-react/issues/596
-[#661]: https://github.com/yannickcr/eslint-plugin-react/issues/661
-[#724]: https://github.com/yannickcr/eslint-plugin-react/pull/724
-[#674]: https://github.com/yannickcr/eslint-plugin-react/issues/674
-[#678]: https://github.com/yannickcr/eslint-plugin-react/issues/678
-[#391]: https://github.com/yannickcr/eslint-plugin-react/issues/391
-[#669]: https://github.com/yannickcr/eslint-plugin-react/pull/669
-[#663]: https://github.com/yannickcr/eslint-plugin-react/issues/663
-[#684]: https://github.com/yannickcr/eslint-plugin-react/pull/684
-[#698]: https://github.com/yannickcr/eslint-plugin-react/issues/698
-[#504]: https://github.com/yannickcr/eslint-plugin-react/issues/504
-[#671]: https://github.com/yannickcr/eslint-plugin-react/issues/671
-[#549]: https://github.com/yannickcr/eslint-plugin-react/issues/549
-[#668]: https://github.com/yannickcr/eslint-plugin-react/issues/668
-[#660]: https://github.com/yannickcr/eslint-plugin-react/pull/660
-[#654]: https://github.com/yannickcr/eslint-plugin-react/issues/654
-[#662]: https://github.com/yannickcr/eslint-plugin-react/issues/662
-[#664]: https://github.com/yannickcr/eslint-plugin-react/issues/664
-[#657]: https://github.com/yannickcr/eslint-plugin-react/pull/657
-
-## [5.2.2] - 2016-06-17
-### Fixed
-* Fix [`jsx-no-bind`][] crash ([#641][])
-
-[5.2.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.2.1...v5.2.2
-[#641]: https://github.com/yannickcr/eslint-plugin-react/issues/641
-
-## [5.2.1] - 2016-06-17
-### Fixed
-* Fix [`jsx-pascal-case`][] for namespaced components ([#637][] @evcohen)
-
-[5.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.2.0...v5.2.1
-[#637]: https://github.com/yannickcr/eslint-plugin-react/issues/637
-
-## [5.2.0] - 2016-06-17
-### Added
-* Add [`require-optimization`][] rule ([#240][] @EvNaverniouk)
-* Add [`jsx-filename-extension`][] rule  ([#495][] @lencioni)
-* Add [`no-render-return-value`][] rule ([#531][] @iamdustan)
-* Add [`no-comment-textnodes`][] rule ([#616][] @benvinegar)
-* Add `objectLiterals` option to [`jsx-curly-spacing`][] ([#388][], [#211][] @casesandberg @ljharb)
-* Add option to [`self-closing-comp`][] to check html tags ([#572][] @gitim)
-* Add `ignore` option to [`no-unknown-property`][] rule ([#631][] @insin)
-* Add support for ES7 bind operator to [`jsx-handler-names`][] ([#630][])
-* Add support for explicit declaration that class extends React.Component ([#68][] @gausie)
-
-### Fixed
-* Fix [`jsx-closing-bracket-location`][] multiline prop support ([#493][] @tuures)
-* Fix [`prop-types`][] for props that where not assigned to the right component ([#591][])
-* Fix [`display-name`][] when JSON style is used for defining components ([#590][] @gitim)
-* Fix [`jsx-no-bind`][] for bind detection in render when assigned to a variable ([#474][] @petersendidit)
-* Fix [`jsx-curly-spacing`][] for spread operator ([#606][] @gitim)
-* Fix [`sort-comp`][] crash on spread operator ([#624][])
-* Fix [`prop-types`][] crash when destructuring props with spread only
-
-### Changed
-* Update dependencies
-* Add [doctrine](https://github.com/eslint/doctrine) as a dependency ([#68][] @gausie)
-* Add [jsx-ast-utils](https://github.com/evcohen/jsx-ast-utils) as a dependency ([#634][] @evcohen)
-* Documentation improvements ([#594][] @lencioni, [#598][] @mLuby, [#633][] @appsforartists)
-
-[5.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.1.1...v5.2.0
-[#68]: https://github.com/yannickcr/eslint-plugin-react/issues/68
-[#211]: https://github.com/yannickcr/eslint-plugin-react/issues/211
-[#240]: https://github.com/yannickcr/eslint-plugin-react/issues/240
-[#388]: https://github.com/yannickcr/eslint-plugin-react/issues/388
-[#474]: https://github.com/yannickcr/eslint-plugin-react/issues/474
-[#493]: https://github.com/yannickcr/eslint-plugin-react/pull/493
-[#495]: https://github.com/yannickcr/eslint-plugin-react/issues/495
-[#531]: https://github.com/yannickcr/eslint-plugin-react/issues/531
-[#572]: https://github.com/yannickcr/eslint-plugin-react/issues/572
-[#590]: https://github.com/yannickcr/eslint-plugin-react/issues/590
-[#591]: https://github.com/yannickcr/eslint-plugin-react/issues/591
-[#594]: https://github.com/yannickcr/eslint-plugin-react/pull/594
-[#598]: https://github.com/yannickcr/eslint-plugin-react/pull/598
-[#606]: https://github.com/yannickcr/eslint-plugin-react/issues/606
-[#616]: https://github.com/yannickcr/eslint-plugin-react/pull/616
-[#624]: https://github.com/yannickcr/eslint-plugin-react/issues/624
-[#630]: https://github.com/yannickcr/eslint-plugin-react/issues/630
-[#631]: https://github.com/yannickcr/eslint-plugin-react/pull/631
-[#633]: https://github.com/yannickcr/eslint-plugin-react/pull/633
-[#634]: https://github.com/yannickcr/eslint-plugin-react/pull/634
-
-## [5.1.1] - 2016-05-10
-### Fixed
-* Fix [`require-render-return`][] crash ([#589][])
-
-[5.1.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.1.0...v5.1.1
-[#589]: https://github.com/yannickcr/eslint-plugin-react/issues/589
-
-## [5.1.0] - 2016-05-10
-### Added
-* Add [`jsx-no-target-blank`][] rule ([#582][] @Gasparila)
-* Add `allowAllCaps` and `ignore` options to [`jsx-pascal-case`][] ([#575][])
-* Add class properties support to [`require-render-return`][] ([#564][])
-
-### Fixed
-* Fix [`jsx-closing-bracket-location`][] fixer ([#533][] @dtinth)
-* Fix [`require-render-return`][] to only check valid render methods ([#563][])
-* Fix detection to allow simple `this` usage in fonctional components ([#576][])
-* Fix [`forbid-prop-types`][] crash ([#579][])
-* Fix comment handling in [`jsx-curly-spacing`][] ([#584][])
-
-### Changed
-* Update dependencies
-* Documentation improvements (@coryhouse, [#581][] @scurker, [#588][])
-
-[5.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.0.1...v5.1.0
-[#582]: https://github.com/yannickcr/eslint-plugin-react/pull/582
-[#575]: https://github.com/yannickcr/eslint-plugin-react/issues/575
-[#564]: https://github.com/yannickcr/eslint-plugin-react/issues/564
-[#533]: https://github.com/yannickcr/eslint-plugin-react/issues/533
-[#563]: https://github.com/yannickcr/eslint-plugin-react/issues/563
-[#576]: https://github.com/yannickcr/eslint-plugin-react/issues/576
-[#579]: https://github.com/yannickcr/eslint-plugin-react/issues/579
-[#584]: https://github.com/yannickcr/eslint-plugin-react/pull/584
-[#559]: https://github.com/yannickcr/eslint-plugin-react/pull/559
-[#581]: https://github.com/yannickcr/eslint-plugin-react/pull/581
-[#588]: https://github.com/yannickcr/eslint-plugin-react/issues/588
-
-## [5.0.1] - 2016-04-18
-### Fixed
-* Fix [`require-render-return`][] to not check stateless functions ([#550][])
-
-[5.0.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v5.0.0...v5.0.1
-[#550]: https://github.com/yannickcr/eslint-plugin-react/issues/550
-
-## [5.0.0] - 2016-04-17
-### Added
-* Add [`jsx-first-prop-new-line`][] rule ([#410][] @jseminck)
-
-### Breaking
-* Update rules for React 15:
-  * Add warnings for `LinkedStateMixin`, `ReactPerf.printDOM` and `ReactPerf.getMeasurementsSummaryMap` in `no-deprecated`
-  * Allow stateless components to return `null` in [`prefer-stateless-function`][]
-  * Remove SVG attributes warnings ([#490][])
-
-If you're still not using React 15 you can keep the old behavior by setting the React version to `0.14` in the [shared settings](README.md#configuration).
-
-### Fixed
-* Rewrite [`require-render-return`][] rule ([#542][], [#543][])
-* Fix [`prefer-stateless-function`][] crash ([#544][])
-* Fix external propTypes handling ([#545][])
-* Do not mark inline functions in JSX as components ([#546][])
-
-### Changed
-* Update dependencies
-* Documentation improvements
-
-[5.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.3.0...v5.0.0
-[#410]: https://github.com/yannickcr/eslint-plugin-react/issues/410
-[#490]: https://github.com/yannickcr/eslint-plugin-react/issues/490
-[#542]: https://github.com/yannickcr/eslint-plugin-react/issues/542
-[#543]: https://github.com/yannickcr/eslint-plugin-react/issues/543
-[#544]: https://github.com/yannickcr/eslint-plugin-react/issues/544
-[#545]: https://github.com/yannickcr/eslint-plugin-react/issues/545
-[#546]: https://github.com/yannickcr/eslint-plugin-react/issues/546
-
-## [4.3.0] - 2016-04-07
-### Added
-* Add [`require-render-return`][] rule ([#482][] @shmuga)
-* Add auto fix for [`jsx-equals-spacing`][] ([#506][] @peet)
-* Add auto fix for [`jsx-closing-bracket-location`][] ([#511][] @KevinGrandon)
-
-### Fixed
-* Fix [`prefer-stateless-function`][] for conditional JSX ([#516][])
-* Fix [`jsx-pascal-case`][] to support single letter component names ([#505][] @dthielman)
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#509][] @coryhouse, [#526][] @ahoym)
-
-[4.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.2.3...v4.3.0
-[#482]: https://github.com/yannickcr/eslint-plugin-react/issues/482
-[#506]: https://github.com/yannickcr/eslint-plugin-react/pull/506
-[#511]: https://github.com/yannickcr/eslint-plugin-react/pull/511
-[#516]: https://github.com/yannickcr/eslint-plugin-react/issues/516
-[#505]: https://github.com/yannickcr/eslint-plugin-react/issues/505
-[#509]: https://github.com/yannickcr/eslint-plugin-react/pull/509
-[#526]: https://github.com/yannickcr/eslint-plugin-react/pull/526
-
-## [4.2.3] - 2016-03-15
-### Fixed
-* Fix class properties retrieval in [`prefer-stateless-function`][] ([#499][])
-
-[4.2.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.2.2...v4.2.3
-[#499]: https://github.com/yannickcr/eslint-plugin-react/issues/499
-
-## [4.2.2] - 2016-03-14
-### Fixed
-* Rewrite [`prefer-stateless-function`][] rule ([#491][])
-* Fix [`self-closing-comp`][] to treat non-breaking spaces as content ([#496][])
-* Fix detection for direct props in [`prop-types`][] ([#497][])
-* Fix annotated function detection in [`prop-types`][] ([#498][])
-* Fix `this` usage in [`jsx-no-undef`][] ([#489][])
-
-### Changed
-* Update dependencies
-* Add shared setting for React version
-
-[4.2.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.2.1...v4.2.2
-[#491]: https://github.com/yannickcr/eslint-plugin-react/issues/491
-[#496]: https://github.com/yannickcr/eslint-plugin-react/issues/496
-[#497]: https://github.com/yannickcr/eslint-plugin-react/issues/497
-[#498]: https://github.com/yannickcr/eslint-plugin-react/issues/498
-[#489]: https://github.com/yannickcr/eslint-plugin-react/issues/489
-
-## [4.2.1] - 2016-03-08
-### Fixed
-* Fix [`sort-prop-types`][] crash with spread operator ([#478][])
-* Fix stateless components detection when conditionally returning JSX ([#486][])
-* Fix case where props were not assigned to the right component ([#485][])
-* Fix missing `getChildContext` lifecycle method in [`prefer-stateless-function`][] ([#492][])
-
-[4.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.2.0...v4.2.1
-[#478]: https://github.com/yannickcr/eslint-plugin-react/issues/478
-[#486]: https://github.com/yannickcr/eslint-plugin-react/issues/486
-[#485]: https://github.com/yannickcr/eslint-plugin-react/issues/485
-[#492]: https://github.com/yannickcr/eslint-plugin-react/issues/492
-
-## [4.2.0] - 2016-03-05
-### Added
-* Add support for Flow annotations on stateless components ([#467][])
-* Add [`prefer-stateless-function`][] rule ([#214][])
-* Add auto fix for [`jsx-indent-props`][] ([#483][] @shioju)
-
-### Fixed
-* Fix [`jsx-no-undef`][] crash on objects ([#469][])
-* Fix propTypes detection when declared before the component ([#472][])
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#464][] @alex-tan, [#466][] @awong-dev, [#470][] @Gpx; [#462][] @thaggie)
-
-[4.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.1.0...v4.2.0
-[#467]: https://github.com/yannickcr/eslint-plugin-react/issues/467
-[#214]: https://github.com/yannickcr/eslint-plugin-react/issues/214
-[#483]: https://github.com/yannickcr/eslint-plugin-react/pull/483
-[#469]: https://github.com/yannickcr/eslint-plugin-react/issues/469
-[#472]: https://github.com/yannickcr/eslint-plugin-react/issues/472
-[#464]: https://github.com/yannickcr/eslint-plugin-react/pull/464
-[#466]: https://github.com/yannickcr/eslint-plugin-react/pull/466
-[#470]: https://github.com/yannickcr/eslint-plugin-react/pull/470
-[#462]: https://github.com/yannickcr/eslint-plugin-react/pull/462
-
-## [4.1.0] - 2016-02-23
-### Added
-* Add component detection for class expressions
-* Add displayName detection for class expressions in [`display-name`][] ([#419][])
-
-### Fixed
-* Fix used props detection in components for which we are not confident in [`prop-types`][] ([#420][])
-* Fix false positive in [`jsx-key`][] ([#456][] @jkimbo)
-
-### Changed
-* Documentation improvements ([#457][] @wyze)
-
-[4.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v4.0.0...v4.1.0
-[#419]: https://github.com/yannickcr/eslint-plugin-react/issues/419
-[#420]: https://github.com/yannickcr/eslint-plugin-react/issues/420
-[#456]: https://github.com/yannickcr/eslint-plugin-react/pull/456
-[#457]: https://github.com/yannickcr/eslint-plugin-react/pull/457
-
-## [4.0.0] - 2016-02-19
-### Added
-* Add [`jsx-space-before-closing`][] rule ([#244][] @ryym)
-* Add support for destructing in function signatures to [`prop-types`][] ([#354][] @lencioni)
-
-### Breaking
-* Add support for static methods to `sort-comp`. Static methods must now be declared first, see [rule documentation](docs/rules/sort-comp.md) ([#128][] @lencioni)
-* Add shareable config in place of default configuration. [`jsx-uses-vars`][] is not enabled by default anymore, see [documentation](README.md#recommended-configuration) ([#192][])
-* Rename `jsx-sort-prop-types` to [`sort-prop-types`][]. `jsx-sort-prop-types` still works but will trigger a warning ([#87][] @lencioni)
-* Remove deprecated `jsx-quotes` rule ([#433][] @lencioni)
-* [`display-name`][] now accept the transpiler name by default. You can use the `ignoreTranspilerName` option to get the old behavior, see [rule documentation](docs/rules/display-name.md#ignoretranspilername) ([#440][] @lencioni)
-
-### Fixed
-* Only ignore lowercase JSXIdentifier in [`jsx-no-undef`][] ([#435][])
-* Fix [`jsx-handler-names`][] regex ([#425][])
-* Fix destructured props detection in [`prop-types`][] ([#443][])
-
-### Changed
-* Update dependencies ([#426][] @quentin-)
-* Documentation improvements ([#414][] @vkrol, [#370][] @tmcw, [#441][] [#429][] @lencioni, [#432][] @note89, [#438][] @jmann6)
-
-[4.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.16.1...v4.0.0
-[#244]: https://github.com/yannickcr/eslint-plugin-react/issues/244
-[#354]: https://github.com/yannickcr/eslint-plugin-react/issues/354
-[#128]: https://github.com/yannickcr/eslint-plugin-react/issues/128
-[#192]: https://github.com/yannickcr/eslint-plugin-react/issues/192
-[#87]: https://github.com/yannickcr/eslint-plugin-react/issues/87
-[#440]: https://github.com/yannickcr/eslint-plugin-react/pull/440
-[#435]: https://github.com/yannickcr/eslint-plugin-react/issues/435
-[#425]: https://github.com/yannickcr/eslint-plugin-react/issues/425
-[#443]: https://github.com/yannickcr/eslint-plugin-react/issues/443
-[#426]: https://github.com/yannickcr/eslint-plugin-react/pull/426
-[#414]: https://github.com/yannickcr/eslint-plugin-react/pull/414
-[#370]: https://github.com/yannickcr/eslint-plugin-react/pull/370
-[#441]: https://github.com/yannickcr/eslint-plugin-react/pull/441
-[#429]: https://github.com/yannickcr/eslint-plugin-react/pull/429
-[#432]: https://github.com/yannickcr/eslint-plugin-react/pull/432
-[#438]: https://github.com/yannickcr/eslint-plugin-react/pull/438
-[#433]: https://github.com/yannickcr/eslint-plugin-react/pull/433
-
-## [3.16.1] - 2016-01-24
-### Fixed
-* Fix [`jsx-sort-prop-types`][] issue with custom propTypes ([#408][] @alitaheri)
-
-[3.16.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.16.0...v3.16.1
-[#408]: https://github.com/yannickcr/eslint-plugin-react/issues/408
-
-## [3.16.0] - 2016-01-24
-### Added
-* Add [`jsx-equals-spacing`][] rule ([#394][] @ryym)
-* Add auto fix for `wrap-multiline`
-* Add auto fix for `jsx-boolean-value`
-* Add auto fix for `no-unknown-property`
-* Add auto fix for [`jsx-curly-spacing`][] ([#407][] @ewendel)
-* Add `requiredFirst` option to [`jsx-sort-prop-types`][] ([#392][] @chrislaskey)
-* Add `ignoreRefs` option to [`jsx-no-bind`][] ([#330][] @silvenon)
-
-### Fixed
-* Ignore `ref` in [`jsx-handler-names`][] (again) ([#396][])
-
-### Changed
-* Update dependencies
-
-[3.16.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.15.0...v3.16.0
-[#394]: https://github.com/yannickcr/eslint-plugin-react/issues/394
-[#407]: https://github.com/yannickcr/eslint-plugin-react/pull/407
-[#392]: https://github.com/yannickcr/eslint-plugin-react/pull/392
-[#330]: https://github.com/yannickcr/eslint-plugin-react/issues/330
-[#396]: https://github.com/yannickcr/eslint-plugin-react/issues/396
-
-## [3.15.0] - 2016-01-12
-### Added
-* Add support for flow annotations to [`prop-types`][] ([#382][] @phpnode)
-
-### Fixed
-* Fix [`prop-types`][] crash when initializing class variable with an empty object ([#383][])
-* Fix [`prop-types`][] crash when propTypes are using the spread operator ([#389][])
-
-### Changed
-* Improve [`sort-comp`][] error messages ([#372][] @SystemParadox)
-* Update dependencies
-
-[3.15.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.14.0...v3.15.0
-[#382]: https://github.com/yannickcr/eslint-plugin-react/pull/382
-[#383]: https://github.com/yannickcr/eslint-plugin-react/issues/383
-[#389]: https://github.com/yannickcr/eslint-plugin-react/issues/389
-[#372]: https://github.com/yannickcr/eslint-plugin-react/pull/372
-
-## [3.14.0] - 2016-01-05
-### Added
-* Add [`jsx-indent`][] rule ([#342][])
-* Add shared setting for pragma configuration ([#228][] @NickStefan)
-
-### Fixed
-* Fix crash in [`jsx-key`][] ([#380][] @nfcampos)
-* Fix crash in [`forbid-prop-types`][] ([#377][] @nfcampos)
-* Ignore `ref` in [`jsx-handler-names`][] ([#375][])
-
-### Changed
-* Add AppVeyor CI to run tests on a Windows platform
-* Add [`sort-comp`][] codemod to [`sort-comp`][] documentation ([#381][] @turadg)
-
-[3.14.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.13.1...v3.14.0
-[#342]: https://github.com/yannickcr/eslint-plugin-react/issues/342
-[#228]: https://github.com/yannickcr/eslint-plugin-react/issues/228
-[#380]: https://github.com/yannickcr/eslint-plugin-react/pull/380
-[#377]: https://github.com/yannickcr/eslint-plugin-react/pull/377
-[#375]: https://github.com/yannickcr/eslint-plugin-react/issues/375
-[#381]: https://github.com/yannickcr/eslint-plugin-react/pull/381
-
-## [3.13.1] - 2015-12-26
-### Fixed
-* Fix crash in [`jsx-key`][] ([#373][] @lukekarrys)
-
-[3.13.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.13.0...v3.13.1
-[#373]: https://github.com/yannickcr/eslint-plugin-react/issues/373
-
-## [3.13.0] - 2015-12-24
-### Added
-* Add [`no-string-refs`][] rule ([#341][] @Intellicode)
-* Add support for propTypes assigned via a variable in [`prop-types`][] ([#355][])
-
-### Fixed
-* Fix `never` option in [`prefer-es6-class`][]
-* Fix [`jsx-key`][] false-positives ([#320][] @silvenon)
-
-### Changed
-* Documentation improvements ([#368][] @lencioni, [#370][] @tmcw, [#371][])
-* Update dependencies
-
-[3.13.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.12.0...v3.13.0
-[#341]: https://github.com/yannickcr/eslint-plugin-react/issues/341
-[#355]: https://github.com/yannickcr/eslint-plugin-react/issues/355
-[#320]: https://github.com/yannickcr/eslint-plugin-react/issues/320
-
-[#368]: https://github.com/yannickcr/eslint-plugin-react/pull/368
-[#370]: https://github.com/yannickcr/eslint-plugin-react/pull/370
-[#371]: https://github.com/yannickcr/eslint-plugin-react/issues/371
-
-## [3.12.0] - 2015-12-20
-### Added
-* Add [`no-deprecated`][] rule ([#356][] @graue)
-* Add [`no-is-mounted`][] rule ([#37][] @lencioni)
-* Add `never` option to [`prefer-es6-class`][] rule ([#359][] @pwmckenna)
-
-### Fixed
-* Fix [`jsx-pascal-case`][] to stop checking lower cased components ([#329][])
-* Fix crash in component detection class ([#364][])
-
-### Changed
-* Add link to [eslint-plugin-react-native](https://github.com/Intellicode/eslint-plugin-react-native) in Readme
-* Update dependencies
-
-[3.12.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.11.3...v3.12.0
-[#356]: https://github.com/yannickcr/eslint-plugin-react/pull/356
-[#37]: https://github.com/yannickcr/eslint-plugin-react/issues/37
-[#359]: https://github.com/yannickcr/eslint-plugin-react/pull/359
-[#329]: https://github.com/yannickcr/eslint-plugin-react/issues/329
-[#364]: https://github.com/yannickcr/eslint-plugin-react/issues/364
-
-## [3.11.3] - 2015-12-05
-### Fixed
-* Fix crash in [`prop-types`][] when reassigning props ([#345][])
-* Fix [`jsx-handler-names`][] for stateless components ([#346][])
-
-### Changed
-* Update [`jsx-handler-names`][] error messages to be less specific ([#348][] @jakemmarsh)
-
-[3.11.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.11.2...v3.11.3
-[#345]: https://github.com/yannickcr/eslint-plugin-react/issues/345
-[#346]: https://github.com/yannickcr/eslint-plugin-react/issues/346
-[#348]: https://github.com/yannickcr/eslint-plugin-react/pull/348
-
-## [3.11.2] - 2015-12-01
-### Fixed
-* Allow numbers in [`jsx-pascal-case`][] ([#339][])
-* Fix [`jsx-handler-names`][] crash with arrays ([#340][])
-
-### Changed
-* Add `allow-in-func` option to [`no-did-update-set-state`][] documentation
-
-[3.11.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.11.1...v3.11.2
-[#339]: https://github.com/yannickcr/eslint-plugin-react/issues/339
-[#340]: https://github.com/yannickcr/eslint-plugin-react/issues/340
-
-## [3.11.1] - 2015-11-29
-### Fixed
-* Fix SVG attributes support for [`no-unknown-property`][] ([#338][])
-
-[3.11.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.11.0...v3.11.1
-[#338]: https://github.com/yannickcr/eslint-plugin-react/issues/338
-
-## [3.11.0] - 2015-11-29
-### Added
-* Add [`jsx-handler-names`][] rule ([#315][] @jakemmarsh)
-* Add SVG attributes support to [`no-unknown-property`][] ([#318][])
-* Add shorthandFirst option to [`jsx-sort-props`][] ([#336][] @lucasmotta)
-
-### Fixed
-* Fix destructured props detection in stateless components ([#326][])
-* Fix props validation for nested stateless components ([#331][])
-* Fix [`require-extension`][] to ignore extension if it's part of the package name ([#319][])
-
-### Changed
-* Allow consecutive uppercase letters in [`jsx-pascal-case`][] ([#328][] @lencioni)
-* Update dependencies
-
-[3.11.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.10.0...v3.11.0
-[#315]: https://github.com/yannickcr/eslint-plugin-react/pull/315
-[#318]: https://github.com/yannickcr/eslint-plugin-react/issues/318
-[#336]: https://github.com/yannickcr/eslint-plugin-react/pull/336
-[#326]: https://github.com/yannickcr/eslint-plugin-react/issues/326
-[#331]: https://github.com/yannickcr/eslint-plugin-react/issues/331
-[#319]: https://github.com/yannickcr/eslint-plugin-react/issues/319
-[#328]: https://github.com/yannickcr/eslint-plugin-react/issues/328
-
-## [3.10.0] - 2015-11-21
-### Added
-* Add [`jsx-pascal-case`][] rule ([#306][] @jakemmarsh)
-
-### Fixed
-* Fix crash on incomplete class property declaration ([#317][] @dapetcu21)
-* Fix crash with ESLint 1.10.0 ([#323][] @lukekarrys)
-
-[3.10.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.9.0...v3.10.0
-[#306]: https://github.com/yannickcr/eslint-plugin-react/pull/306
-[#317]: https://github.com/yannickcr/eslint-plugin-react/issues/317
-[#323]: https://github.com/yannickcr/eslint-plugin-react/issues/323
-
-## [3.9.0] - 2015-11-17
-### Added
-* Add [`jsx-key`][] rule ([#293][] @benmosher)
-* Add `allow-in-func` option to [`no-did-update-set-state`][] ([#300][])
-* Add option to only enforce [`jsx-closing-bracket-location`][] rule to one type of tag (nonEmpty or selfClosing) ([#307][])
-
-### Fixed
-* Fix crash when destructuring with only the rest spread ([#269][])
-* Fix variables detection when searching for related components ([#303][])
-* Fix [`no-unknown-property`][] to not check custom elements ([#308][] @zertosh)
-
-### Changed
-* Improve [`jsx-closing-bracket-location`][] error message ([#301][] @alopatin)
-* Update dependencies
-
-[3.9.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.8.0...v3.9.0
-[#293]: https://github.com/yannickcr/eslint-plugin-react/pull/293
-[#300]: https://github.com/yannickcr/eslint-plugin-react/issues/300
-[#307]: https://github.com/yannickcr/eslint-plugin-react/issues/307
-[#269]: https://github.com/yannickcr/eslint-plugin-react/issues/269
-[#303]: https://github.com/yannickcr/eslint-plugin-react/issues/303
-[#308]: https://github.com/yannickcr/eslint-plugin-react/pull/308
-[#301]: https://github.com/yannickcr/eslint-plugin-react/pull/301
-
-## [3.8.0] - 2015-11-07
-### Added
-* Add ignoreStateless option to [`no-multi-comp`][] ([#290][])
-
-### Fixed
-* Fix classes with properties to always be marked as components ([#291][])
-* Fix ES5 class detection when using `createClass` by itself ([#297][])
-* Fix direct props detection ([#298][])
-* Ignore functions containing the keyword `this` during component detection
-
-[3.8.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.7.1...v3.8.0
-[#290]: https://github.com/yannickcr/eslint-plugin-react/issues/290
-[#291]: https://github.com/yannickcr/eslint-plugin-react/issues/291
-[#297]: https://github.com/yannickcr/eslint-plugin-react/issues/297
-[#298]: https://github.com/yannickcr/eslint-plugin-react/issues/298
-
-## [3.7.1] - 2015-11-05
-### Fixed
-* Fix [`sort-comp`][] crash on stateless components ([#285][])
-* Fix crash in ES5 components detection ([#286][])
-* Fix ES5 components detection from nested functions ([#287][])
-
-[3.7.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.7.0...v3.7.1
-[#285]: https://github.com/yannickcr/eslint-plugin-react/issues/285
-[#286]: https://github.com/yannickcr/eslint-plugin-react/issues/286
-[#287]: https://github.com/yannickcr/eslint-plugin-react/issues/287
-
-## [3.7.0] - 2015-11-05
-### Added
-* Add [`jsx-no-bind`][] rule ([#184][] @Daniel15)
-* Add line-aligned option to [`jsx-closing-bracket-location`][] ([#243][] @alopatin)
-
-### Fixed
-* Fix a lot of issues about components detection, mostly related to stateless components ([#264][], [#267][], [#268][], [#276][], [#277][], [#280][])
-
-### Changed
-* Update dependencies
-
-[3.7.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.6.3...v3.7.0
-[#184]: https://github.com/yannickcr/eslint-plugin-react/issues/184
-[#243]: https://github.com/yannickcr/eslint-plugin-react/issues/243
-[#264]: https://github.com/yannickcr/eslint-plugin-react/issues/264
-[#267]: https://github.com/yannickcr/eslint-plugin-react/issues/267
-[#268]: https://github.com/yannickcr/eslint-plugin-react/issues/268
-[#276]: https://github.com/yannickcr/eslint-plugin-react/issues/276
-[#277]: https://github.com/yannickcr/eslint-plugin-react/issues/277
-[#280]: https://github.com/yannickcr/eslint-plugin-react/issues/280
-
-## [3.6.3] - 2015-10-20
-### Fixed
-* Fix [`display-name`][] for stateless components ([#256][])
-* Fix [`prop-types`][] props validation in constructor ([#259][])
-* Fix typo in README ([#261][] @chiedojohn)
-
-[3.6.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.6.2...v3.6.3
-[#256]: https://github.com/yannickcr/eslint-plugin-react/issues/256
-[#259]: https://github.com/yannickcr/eslint-plugin-react/issues/259
-[#261]: https://github.com/yannickcr/eslint-plugin-react/pull/261
-
-## [3.6.2] - 2015-10-18
-### Fixed
-* Fix wrong prop-types detection ([#255][])
-
-[3.6.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.6.1...v3.6.2
-[#255]: https://github.com/yannickcr/eslint-plugin-react/issues/255
-
-## [3.6.1] - 2015-10-18
-### Fixed
-* Fix props validation in constructor ([#254][])
-
-[3.6.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.6.0...v3.6.1
-[#254]: https://github.com/yannickcr/eslint-plugin-react/issues/254
-
-## [3.6.0] - 2015-10-18
-### Added
-* Add support for stateless function components to [`display-name`][] and [`prop-types`][] ([#237][])
-* Add callbacksLast option to [`jsx-sort-props`][] and [`jsx-sort-prop-types`][] ([#242][] @Daniel15)
-* Add [`prefer-es6-class`][] rule ([#247][] @hamiltondanielb)
-
-### Fixed
-* Fix [`forbid-prop-types`][] crash with destructured PropTypes ([#230][] @epmatsw)
-* Fix [`forbid-prop-types`][] to do not modify AST directly ([#249][] @rhysd)
-* Fix [`prop-types`][] crash with empty destructuring ([#251][])
-* Fix [`prop-types`][] to not validate computed keys in destructuring ([#236][])
-
-### Changed
-* Update dependencies
-* Improve components detection ([#233][])
-* Documentation improvements ([#248][] @dguo)
-
-[3.6.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.5.1...v3.6.0
-[#237]: https://github.com/yannickcr/eslint-plugin-react/issues/237
-[#242]: https://github.com/yannickcr/eslint-plugin-react/pull/242
-[#247]: https://github.com/yannickcr/eslint-plugin-react/issues/247
-[#230]: https://github.com/yannickcr/eslint-plugin-react/issues/230
-[#249]: https://github.com/yannickcr/eslint-plugin-react/issues/249
-[#251]: https://github.com/yannickcr/eslint-plugin-react/issues/251
-[#236]: https://github.com/yannickcr/eslint-plugin-react/issues/236
-[#233]: https://github.com/yannickcr/eslint-plugin-react/issues/233
-[#248]: https://github.com/yannickcr/eslint-plugin-react/pull/248
-
-## [3.5.1] - 2015-10-01
-### Fixed
-* Fix [`no-direct-mutation-state`][] to report only in React components ([#229][])
-* Fix [`forbid-prop-types`][] for arrayOf and instanceOf ([#230][])
-
-### Changed
-* Documentation improvements ([#232][] @edge)
-
-[3.5.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.5.0...v3.5.1
-[#229]: https://github.com/yannickcr/eslint-plugin-react/issues/229
-[#230]: https://github.com/yannickcr/eslint-plugin-react/issues/230
-[#232]: https://github.com/yannickcr/eslint-plugin-react/pull/232
-
-## [3.5.0] - 2015-09-28
-### Added
-* Add [`no-direct-mutation-state`][] rule ([#133][], [#201][] @petersendidit)
-* Add [`forbid-prop-types`][] rule ([#215][] @pwmckenna)
-
-### Fixed
-* Fix no-did-mount/update-set-state rules, these rules were not working on ES6 classes
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#222][] @Andersos)
-
-[3.5.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.4.2...v3.5.0
-[#133]: https://github.com/yannickcr/eslint-plugin-react/issues/133
-[#201]: https://github.com/yannickcr/eslint-plugin-react/issues/201
-[#215]: https://github.com/yannickcr/eslint-plugin-react/issues/215
-[#222]: https://github.com/yannickcr/eslint-plugin-react/pull/222
-
-## [3.4.2] - 2015-09-18
-### Fixed
-* Only display the `jsx-quotes` deprecation warning with the default formatter ([#221][])
-
-[3.4.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.4.1...v3.4.2
-[#221]: https://github.com/yannickcr/eslint-plugin-react/issues/221
-
-## [3.4.1] - 2015-09-17
-### Fixed
-* Fix `jsx-quotes` rule deprecation message ([#220][])
-
-[3.4.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.4.0...v3.4.1
-[#220]: https://github.com/yannickcr/eslint-plugin-react/issues/220
-
-## [3.4.0] - 2015-09-16
-### Added
-* Add namespaced JSX support to [`jsx-no-undef`][] ([#219][] @zertosh)
-* Add option to [`jsx-closing-bracket-location`][] to configure different styles for self-closing and non-empty tags ([#208][] @evocateur)
-
-### Deprecated
-* Deprecate `jsx-quotes` rule, will now trigger a warning if used ([#217][])
-
-[3.4.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.3.2...v3.4.0
-[#219]: https://github.com/yannickcr/eslint-plugin-react/pull/219
-[#208]: https://github.com/yannickcr/eslint-plugin-react/pull/208
-[#217]: https://github.com/yannickcr/eslint-plugin-react/issues/217
-
-## [3.3.2] - 2015-09-10
-### Changed
-* Add `state` in lifecycle methods for [`sort-comp`][] rule ([#197][] @mathieudutour)
-* Treat component with render which returns `createElement` as valid ([#206][] @epmatsw)
-
-### Fixed
-* Fix allowed methods on arrayOf in [`prop-types`][] ([#146][])
-* Fix default configuration for [`jsx-boolean-value`][] ([#210][])
-
-[3.3.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.3.1...v3.3.2
-[#146]: https://github.com/yannickcr/eslint-plugin-react/issues/146
-[#197]: https://github.com/yannickcr/eslint-plugin-react/pull/197
-[#206]: https://github.com/yannickcr/eslint-plugin-react/pull/206
-[#210]: https://github.com/yannickcr/eslint-plugin-react/issues/210
-
-## [3.3.1] - 2015-09-01
-### Changed
-* Update dependencies
-* Update changelog to follow the Keep a CHANGELOG standards
-* Documentation improvements ([#198][] @lencioni)
-
-### Fixed
-* Fix [`jsx-closing-bracket-location`][] for multiline props ([#199][])
-
-[3.3.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.3.0...v3.3.1
-[#198]: https://github.com/yannickcr/eslint-plugin-react/pull/198
-[#199]: https://github.com/yannickcr/eslint-plugin-react/issues/199
-
-## [3.3.0] - 2015-08-26
-### Added
-* Add [`jsx-indent-props`][] rule ([#15][], [#181][])
-* Add `no-set-state rule` ([#197][] @markdalgleish)
-* Add [`jsx-closing-bracket-location`][] rule ([#14][], [#64][])
-
-### Changed
-* Update dependencies
-
-### Fixed
-* Fix crash on propTypes declarations with an empty body ([#193][] @mattyod)
-
-[3.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.2.3...v3.3.0
-[#15]: https://github.com/yannickcr/eslint-plugin-react/issues/15
-[#181]: https://github.com/yannickcr/eslint-plugin-react/issues/181
-[#197]: https://github.com/yannickcr/eslint-plugin-react/pull/197
-[#14]: https://github.com/yannickcr/eslint-plugin-react/issues/14
-[#64]: https://github.com/yannickcr/eslint-plugin-react/issues/64
-[#193]: https://github.com/yannickcr/eslint-plugin-react/pull/193
-
-## [3.2.3] - 2015-08-16
-### Changed
-* Update dependencies
-
-### Fixed
-* Fix object rest/spread handling ([#187][] @xjamundx, [#189][] @Morantron)
-
-[3.2.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.2.2...v3.2.3
-[#187]: https://github.com/yannickcr/eslint-plugin-react/pull/187
-[#189]: https://github.com/yannickcr/eslint-plugin-react/pull/189
-
-## [3.2.2] - 2015-08-11
-### Changed
-* Remove peerDependencies ([#178][])
-
-[3.2.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.2.1...v3.2.2
-[#178]: https://github.com/yannickcr/eslint-plugin-react/issues/178
-
-## [3.2.1] - 2015-08-08
-### Fixed
-* Fix crash when propTypes don't have any parent ([#182][])
-* Fix jsx-no-literals reporting errors outside JSX ([#183][] @CalebMorris)
-
-[3.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.2.0...v3.2.1
-[#182]: https://github.com/yannickcr/eslint-plugin-react/issues/182
-[#183]: https://github.com/yannickcr/eslint-plugin-react/pull/183
-
-## [3.2.0] - 2015-08-04
-### Added
-* Add [`jsx-max-props-per-line`][] rule ([#13][])
-* Add [`jsx-no-literals`][] rule ([#176][] @CalebMorris)
-
-### Changed
-* Update dependencies
-
-### Fixed
-* Fix object access in [`jsx-no-undef`][] ([#172][])
-
-[3.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.1.0...v3.2.0
-[#13]: https://github.com/yannickcr/eslint-plugin-react/issues/13
-[#176]: https://github.com/yannickcr/eslint-plugin-react/pull/176
-[#172]: https://github.com/yannickcr/eslint-plugin-react/issues/172
-
-## [3.1.0] - 2015-07-28
-### Added
-* Add event handlers to [`no-unknown-property`][] ([#164][] @mkenyon)
-* Add customValidators option to [`prop-types`][] ([#145][] @CalebMorris)
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#167][] @ngbrown)
-
-### Fixed
-* Fix comment handling in [`jsx-curly-spacing`][] ([#165][])
-
-[3.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v3.0.0...v3.1.0
-[#164]: https://github.com/yannickcr/eslint-plugin-react/pull/164
-[#145]: https://github.com/yannickcr/eslint-plugin-react/issues/145
-[#165]: https://github.com/yannickcr/eslint-plugin-react/issues/165
-[#167]: https://github.com/yannickcr/eslint-plugin-react/pull/167
-
-## [3.0.0] - 2015-07-21
-### Added
-* Add jsx-no-duplicate-props rule ([#161][] @hummlas)
-* Add allowMultiline option to the [`jsx-curly-spacing`][] rule ([#156][] @mathieumg)
-
-### Breaking
-* In [`jsx-curly-spacing`][] braces spanning multiple lines are now allowed with `never` option ([#156][] @mathieumg)
-
-### Fixed
-* Fix multiple var and destructuring handling in [`prop-types`][] ([#159][])
-* Fix crash when retrieving propType name ([#163][])
-
-[3.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.7.1...v3.0.0
-[#161]: https://github.com/yannickcr/eslint-plugin-react/pull/161
-[#156]: https://github.com/yannickcr/eslint-plugin-react/pull/156
-[#159]: https://github.com/yannickcr/eslint-plugin-react/issues/159
-[#163]: https://github.com/yannickcr/eslint-plugin-react/issues/163
-
-## [2.7.1] - 2015-07-16
-### Changed
-* Update peerDependencies requirements ([#154][])
-* Update codebase for ESLint v1.0.0
-* Change oneOfType to actually keep the child types ([#148][] @CalebMorris)
-* Documentation improvements ([#147][] @lencioni)
-
-[2.7.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.7.0...v2.7.1
-[#154]: https://github.com/yannickcr/eslint-plugin-react/issues/154
-[#148]: https://github.com/yannickcr/eslint-plugin-react/issues/148
-[#147]: https://github.com/yannickcr/eslint-plugin-react/pull/147
-
-## [2.7.0] - 2015-07-11
-### Added
-* Add [`no-danger`][] rule ([#138][] @scothis)
-* Add [`jsx-curly-spacing`][] rule ([#142][])
-
-### Fixed
-* Fix properties limitations on propTypes ([#139][])
-* Fix component detection ([#144][])
-
-[2.7.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.6.4...v2.7.0
-[#138]: https://github.com/yannickcr/eslint-plugin-react/pull/138
-[#142]: https://github.com/yannickcr/eslint-plugin-react/issues/142
-[#139]: https://github.com/yannickcr/eslint-plugin-react/issues/139
-[#144]: https://github.com/yannickcr/eslint-plugin-react/issues/144
-
-## [2.6.4] - 2015-07-02
-### Fixed
-* Fix simple destructuring handling ([#137][])
-
-[2.6.4]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.6.3...v2.6.4
-[#137]: https://github.com/yannickcr/eslint-plugin-react/issues/137
-
-## [2.6.3] - 2015-06-30
-### Fixed
-* Fix ignore option for [`prop-types`][] rule ([#135][])
-* Fix nested props destructuring ([#136][])
-
-[2.6.3]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.6.2...v2.6.3
-[#135]: https://github.com/yannickcr/eslint-plugin-react/issues/135
-[#136]: https://github.com/yannickcr/eslint-plugin-react/issues/136
-
-## [2.6.2] - 2015-06-28
-### Fixed
-* Fix props validation when using a prop as an object key ([#132][])
-
-[2.6.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.6.1...v2.6.2
-[#132]: https://github.com/yannickcr/eslint-plugin-react/issues/132
-
-## [2.6.1] - 2015-06-28
-### Fixed
-* Fix crash in [`prop-types`][] when encountering an empty variable declaration ([#130][])
-
-[2.6.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.6.0...v2.6.1
-[#130]: https://github.com/yannickcr/eslint-plugin-react/issues/130
-
-## [2.6.0] - 2015-06-28
-### Added
-* Add support for nested propTypes ([#62][] [#105][] @Cellule)
-* Add [`require-extension`][] rule ([#117][] @scothis)
-* Add support for computed string format in [`prop-types`][] ([#127][] @Cellule)
-* Add ES6 methods to [`sort-comp`][] default configuration ([#97][] [#122][])
-* Add support for props destructuring directly on the this keyword
-* Add `acceptTranspilerName` option to [`display-name`][] rule ([#75][])
-* Add schema to validate rules options
-
-### Changed
-* Update dependencies
-
-### Fixed
-* Fix test command for Windows ([#114][] @Cellule)
-* Fix detection of missing displayName and propTypes when `ecmaFeatures.jsx` is false ([#119][] @rpl)
-* Fix propTypes destructuring with properties as string ([#118][] @Cellule)
-* Fix [`jsx-sort-prop-types`][] support for keys as string ([#123][] @Cellule)
-* Fix crash if a ClassProperty has only one token ([#125][])
-* Fix invalid class property handling in [`jsx-sort-prop-types`][] ([#129][])
-
-[2.6.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.5.2...v2.6.0
-[#62]: https://github.com/yannickcr/eslint-plugin-react/issues/62
-[#105]: https://github.com/yannickcr/eslint-plugin-react/issues/105
-[#114]: https://github.com/yannickcr/eslint-plugin-react/pull/114
-[#117]: https://github.com/yannickcr/eslint-plugin-react/pull/117
-[#119]: https://github.com/yannickcr/eslint-plugin-react/pull/119
-[#118]: https://github.com/yannickcr/eslint-plugin-react/issues/118
-[#123]: https://github.com/yannickcr/eslint-plugin-react/pull/123
-[#125]: https://github.com/yannickcr/eslint-plugin-react/issues/125
-[#127]: https://github.com/yannickcr/eslint-plugin-react/pull/127
-[#97]: https://github.com/yannickcr/eslint-plugin-react/issues/97
-[#122]: https://github.com/yannickcr/eslint-plugin-react/issues/122
-[#129]: https://github.com/yannickcr/eslint-plugin-react/issues/129
-[#75]: https://github.com/yannickcr/eslint-plugin-react/issues/75
-
-## [2.5.2] - 2015-06-14
-### Fixed
-* Fix regression in [`jsx-uses-vars`][] with `babel-eslint` ([#110][])
-
-[2.5.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.5.1...v2.5.2
-[#110]: https://github.com/yannickcr/eslint-plugin-react/issues/110
-
-## [2.5.1] - 2015-06-14
-### Changed
-* Update dependencies
-* Documentation improvements ([#99][] @morenoh149)
-
-### Fixed
-* Fix [`prop-types`][] crash when propTypes definition is invalid ([#95][])
-* Fix [`jsx-uses-vars`][] for ES6 classes ([#96][])
-* Fix hasOwnProperty that is taken for a prop ([#102][])
-
-[2.5.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.5.0...v2.5.1
-[#95]: https://github.com/yannickcr/eslint-plugin-react/issues/95
-[#96]: https://github.com/yannickcr/eslint-plugin-react/issues/96
-[#102]: https://github.com/yannickcr/eslint-plugin-react/issues/102
-[#99]: https://github.com/yannickcr/eslint-plugin-react/pull/99
-
-## [2.5.0] - 2015-06-04
-### Added
-* Add option to make [`wrap-multilines`][] more granular ([#94][] @PiPeep)
-
-### Changed
-* Update dependencies
-* Documentation improvements ([#92][] [#93][] @lencioni)
-
-[2.5.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.4.0...v2.5.0
-[#94]: https://github.com/yannickcr/eslint-plugin-react/pull/94
-[#92]: https://github.com/yannickcr/eslint-plugin-react/pull/92
-[#93]: https://github.com/yannickcr/eslint-plugin-react/pull/93
-
-## [2.4.0] - 2015-05-30
-### Added
-* Add pragma option to [`jsx-uses-react`][] ([#82][] @dominicbarnes)
-* Add context props to [`sort-comp`][] ([#89][] @zertosh)
-
-### Changed
-* Update dependencies
-* Documentation improvement ([#91][] @matthewwithanm)
-
-### Fixed
-* Fix itemID in [`no-unknown-property`][] rule ([#85][] @cody)
-* Fix license field in package.json ([#90][] @zertosh)
-* Fix usage of contructor in [`sort-comp`][] options ([#88][])
-
-[2.4.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.3.0...v2.4.0
-[#82]: https://github.com/yannickcr/eslint-plugin-react/pull/82
-[#89]: https://github.com/yannickcr/eslint-plugin-react/pull/89
-[#85]: https://github.com/yannickcr/eslint-plugin-react/pull/85
-[#90]: https://github.com/yannickcr/eslint-plugin-react/pull/90
-[#88]: https://github.com/yannickcr/eslint-plugin-react/issues/88
-[#91]: https://github.com/yannickcr/eslint-plugin-react/pull/91
-
-## [2.3.0] - 2015-05-14
-### Added
-* Add [`sort-comp`][] rule ([#39][])
-* Add `allow-in-func` option to [`no-did-mount-set-state`][] ([#56][])
-
-### Changed
-* Update dependencies
-* Improve errors locations for `prop-types`
-
-### Fixed
-* Fix quoted propTypes in ES6 ([#77][])
-
-[2.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.2.0...v2.3.0
-[#39]: https://github.com/yannickcr/eslint-plugin-react/issues/39
-[#77]: https://github.com/yannickcr/eslint-plugin-react/issues/77
-[#56]: https://github.com/yannickcr/eslint-plugin-react/issues/56
-
-## [2.2.0] - 2015-04-22
-### Added
-* Add [`jsx-sort-prop-types`][] rule ([#38][] @AlexKVal)
-
-### Changed
-* Documentation improvements ([#71][] @AlexKVal)
-
-### Fixed
-* Fix variables marked as used when a prop has the same name ([#69][] @burnnat)
-
-[2.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.1.1...v2.2.0
-[#38]: https://github.com/yannickcr/eslint-plugin-react/issues/38
-[#69]: https://github.com/yannickcr/eslint-plugin-react/pull/69
-[#71]: https://github.com/yannickcr/eslint-plugin-react/pull/71
-
-## [2.1.1] - 2015-04-17
-### Added
-* Add support for classes static properties ([#43][])
-* Add tests for the `babel-eslint` parser
-* Add ESLint as peerDependency ([#63][] @AlexKVal)
-
-### Changed
-* Documentation improvements ([#55][] @AlexKVal, [#60][] @chriscalo)
-
-[2.1.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.1.0...v2.1.1
-[#43]: https://github.com/yannickcr/eslint-plugin-react/issues/43
-[#63]: https://github.com/yannickcr/eslint-plugin-react/pull/63
-[#55]: https://github.com/yannickcr/eslint-plugin-react/pull/55
-[#60]: https://github.com/yannickcr/eslint-plugin-react/pull/60
-
-## [2.1.0] - 2015-04-06
-### Added
-* Add [`jsx-boolean-value`][] rule ([#11][])
-* Add support for static methods in [`display-name`][] and [`prop-types`][] ([#48][])
-
-### Changed
-* Update [`jsx-sort-props`][] to reset the alphabetical verification on spread ([#47][] @zertosh)
-* Update [`jsx-uses-vars`][] to be enabled by default ([#49][] @banderson)
-
-### Fixed
-* Fix describing comment for hasSpreadOperator() method ([#53][] @AlexKVal)
-
-[2.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.0.2...v2.1.0
-[#47]: https://github.com/yannickcr/eslint-plugin-react/pull/47
-[#49]: https://github.com/yannickcr/eslint-plugin-react/pull/49
-[#11]: https://github.com/yannickcr/eslint-plugin-react/issues/11
-[#48]: https://github.com/yannickcr/eslint-plugin-react/issues/48
-[#53]: https://github.com/yannickcr/eslint-plugin-react/pull/53
-
-## [2.0.2] - 2015-03-31
-### Fixed
-* Fix ignore rest spread when destructuring props ([#46][])
-* Fix component detection in [`prop-types`][] and [`display-name`][] ([#45][])
-* Fix spread handling in [`jsx-sort-props`][] ([#42][] @zertosh)
-
-[2.0.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.0.1...v2.0.2
-[#46]: https://github.com/yannickcr/eslint-plugin-react/issues/46
-[#45]: https://github.com/yannickcr/eslint-plugin-react/issues/45
-[#42]: https://github.com/yannickcr/eslint-plugin-react/pull/42
-
-## [2.0.1] - 2015-03-30
-### Fixed
-* Fix props detection when used in an object ([#41][])
-
-[2.0.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v2.0.0...v2.0.1
-[#41]: https://github.com/yannickcr/eslint-plugin-react/issues/41
-
-## [2.0.0] - 2015-03-29
-### Added
-* Add [`jsx-sort-props`][] rule ([#16][])
-* Add [`no-unknown-property`][] rule ([#28][])
-* Add ignore option to [`prop-types`][] rule
-
-### Changed
-* Update dependencies
-
-### Breaking
-* In [`prop-types`][] the children prop is no longer ignored
-
-### Fixed
-* Fix components are now detected when using ES6 classes ([#24][])
-* Fix [`prop-types`][] now return the right line/column ([#33][])
-* Fix props are now detected when destructuring ([#27][])
-* Fix only check for computed property names in [`prop-types`][] ([#36][] @burnnat)
-
-[2.0.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.6.1...v2.0.0
-[#16]: https://github.com/yannickcr/eslint-plugin-react/issues/16
-[#28]: https://github.com/yannickcr/eslint-plugin-react/issues/28
-[#24]: https://github.com/yannickcr/eslint-plugin-react/issues/24
-[#33]: https://github.com/yannickcr/eslint-plugin-react/issues/33
-[#27]: https://github.com/yannickcr/eslint-plugin-react/issues/27
-[#36]: https://github.com/yannickcr/eslint-plugin-react/pull/36
-
-## [1.6.1] - 2015-03-25
-### Changed
-* Update `jsx-quotes` documentation
-
-### Fixed
-* Fix [`jsx-no-undef`][] with `babel-eslint` ([#30][])
-* Fix `jsx-quotes` on Literal childs ([#29][])
-
-[1.6.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.6.0...v1.6.1
-[#30]: https://github.com/yannickcr/eslint-plugin-react/issues/30
-[#29]: https://github.com/yannickcr/eslint-plugin-react/issues/29
-
-## [1.6.0] - 2015-03-22
-### Added
-* Add [`jsx-no-undef`][] rule
-* Add `jsx-quotes` rule ([#12][])
-* Add `@jsx` pragma support ([#23][])
-
-### Changed
-* Allow `this.getState` references (not calls) in lifecycle methods ([#22][] @benmosher)
-* Update dependencies
-
-### Fixed
-* Fix [`react-in-jsx-scope`][] in Node.js env
-* Fix usage of propTypes with an external object ([#9][])
-
-[1.6.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.5.0...v1.6.0
-[#12]: https://github.com/yannickcr/eslint-plugin-react/issues/12
-[#23]: https://github.com/yannickcr/eslint-plugin-react/issues/23
-[#9]: https://github.com/yannickcr/eslint-plugin-react/issues/9
-[#22]: https://github.com/yannickcr/eslint-plugin-react/pull/22
-
-## [1.5.0] - 2015-03-14
-### Added
-* Add [`jsx-uses-vars`][] rule
-
-### Fixed
-* Fix [`jsx-uses-react`][] for ESLint 0.17.0
-
-[1.5.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.4.1...v1.5.0
-
-## [1.4.1] - 2015-03-03
-### Fixed
-* Fix `this.props.children` marked as missing in props validation ([#7][])
-* Fix usage of `this.props` without property ([#8][])
-
-[1.4.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.4.0...v1.4.1
-[#7]: https://github.com/yannickcr/eslint-plugin-react/issues/7
-[#8]: https://github.com/yannickcr/eslint-plugin-react/issues/8
-
-## [1.4.0] - 2015-02-24
-### Added
-* Add [`react-in-jsx-scope`][] rule ([#5][] @glenjamin)
-* Add [`jsx-uses-react`][] rule ([#6][] @glenjamin)
-
-### Changed
-* Update [`prop-types`][] to check props usage insead of propTypes presence ([#4][])
-
-[1.4.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.3.0...v1.4.0
-[#4]: https://github.com/yannickcr/eslint-plugin-react/issues/4
-[#5]: https://github.com/yannickcr/eslint-plugin-react/pull/5
-[#6]: https://github.com/yannickcr/eslint-plugin-react/pull/6
-
-## [1.3.0] - 2015-02-24
-### Added
-* Add [`no-did-mount-set-state`][] rule
-* Add [`no-did-update-set-state`][] rule
-
-### Changed
-* Update dependencies
-
-[1.3.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.2.2...v1.3.0
-
-## [1.2.2] - 2015-02-09
-### Changed
-* Update dependencies
-
-### Fixed
-* Fix childs detection in [`self-closing-comp`][] ([#3][])
-
-[1.2.2]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.2.1...v1.2.2
-[#3]: https://github.com/yannickcr/eslint-plugin-react/issues/3
-
-## [1.2.1] - 2015-01-29
-### Changed
-* Update Readme
-* Update dependencies
-* Update [`wrap-multilines`][] and [`self-closing-comp`][] rules for ESLint 0.13.0
-
-[1.2.1]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.2.0...v1.2.1
-
-## [1.2.0] - 2014-12-29
-### Added
-* Add [`self-closing-comp`][] rule
-
-### Fixed
-* Fix [`display-name`][] and [`prop-types`][] rules
-
-[1.2.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.1.0...v1.2.0
-
-## [1.1.0] - 2014-12-28
-### Added
- * Add [`display-name`][] rule
- * Add [`wrap-multilines`][] rule
- * Add rules documentation
- * Add rules tests
-
-[1.1.0]: https://github.com/yannickcr/eslint-plugin-react/compare/v1.0.0...v1.1.0
-
-## 1.0.0 - 2014-12-16
-### Added
- * First revision
-
-[`display-name`]: docs/rules/display-name.md
-[`forbid-component-props`]: docs/rules/forbid-component-props.md
-[`forbid-elements`]: docs/rules/forbid-elements.md
-[`forbid-foreign-prop-types`]: docs/rules/forbid-foreign-prop-types.md
-[`forbid-prop-types`]: docs/rules/forbid-prop-types.md
-[`no-array-index-key`]: docs/rules/no-array-index-key.md
-[`no-children-prop`]: docs/rules/no-children-prop.md
-[`no-danger`]: docs/rules/no-danger.md
-[`no-danger-with-children`]: docs/rules/no-danger-with-children.md
-[`no-deprecated`]: docs/rules/no-deprecated.md
-[`no-did-mount-set-state`]: docs/rules/no-did-mount-set-state.md
-[`no-did-update-set-state`]: docs/rules/no-did-update-set-state.md
-[`no-direct-mutation-state`]: docs/rules/no-direct-mutation-state.md
-[`no-find-dom-node`]: docs/rules/no-find-dom-node.md
-[`no-is-mounted`]: docs/rules/no-is-mounted.md
-[`no-multi-comp`]: docs/rules/no-multi-comp.md
-[`no-render-return-value`]: docs/rules/no-render-return-value.md
-[`no-set-state`]: docs/rules/no-set-state.md
-[`no-string-refs`]: docs/rules/no-string-refs.md
-[`no-unescaped-entities`]: docs/rules/no-unescaped-entities.md
-[`no-unknown-property`]: docs/rules/no-unknown-property.md
-[`no-unused-prop-types`]: docs/rules/no-unused-prop-types.md
-[`no-will-update-set-state`]: docs/rules/no-will-update-set-state.md
-[`prefer-es6-class`]: docs/rules/prefer-es6-class.md
-[`prefer-stateless-function`]: docs/rules/prefer-stateless-function.md
-[`prop-types`]: docs/rules/prop-types.md
-[`react-in-jsx-scope`]: docs/rules/react-in-jsx-scope.md
-[`require-optimization`]: docs/rules/require-optimization.md
-[`require-render-return`]: docs/rules/require-render-return.md
-[`self-closing-comp`]: docs/rules/self-closing-comp.md
-[`sort-comp`]: docs/rules/sort-comp.md
-[`sort-prop-types`]: docs/rules/sort-prop-types.md
-[`style-prop-object`]: docs/rules/style-prop-object.md
-[`jsx-boolean-value`]: docs/rules/jsx-boolean-value.md
-[`jsx-closing-bracket-location`]: docs/rules/jsx-closing-bracket-location.md
-[`jsx-curly-spacing`]: docs/rules/jsx-curly-spacing.md
-[`jsx-equals-spacing`]: docs/rules/jsx-equals-spacing.md
-[`jsx-filename-extension`]: docs/rules/jsx-filename-extension.md
-[`jsx-first-prop-new-line`]: docs/rules/jsx-first-prop-new-line.md
-[`jsx-handler-names`]: docs/rules/jsx-handler-names.md
-[`jsx-indent`]: docs/rules/jsx-indent.md
-[`jsx-indent-props`]: docs/rules/jsx-indent-props.md
-[`jsx-key`]: docs/rules/jsx-key.md
-[`jsx-max-props-per-line`]: docs/rules/jsx-max-props-per-line.md
-[`jsx-no-bind`]: docs/rules/jsx-no-bind.md
-[`jsx-no-comment-textnodes`]: docs/rules/jsx-no-comment-textnodes.md
-[`jsx-no-duplicate-props`]: docs/rules/jsx-no-duplicate-props.md
-[`jsx-no-literals`]: docs/rules/jsx-no-literals.md
-[`jsx-no-target-blank`]: docs/rules/jsx-no-target-blank.md
-[`jsx-no-undef`]: docs/rules/jsx-no-undef.md
-[`jsx-pascal-case`]: docs/rules/jsx-pascal-case.md
-[`require-default-props`]: docs/rules/require-default-props.md
-[`jsx-sort-props`]: docs/rules/jsx-sort-props.md
-[`jsx-space-before-closing`]: docs/rules/jsx-space-before-closing.md
-[`jsx-tag-spacing`]: docs/rules/jsx-tag-spacing.md
-[`jsx-uses-react`]: docs/rules/jsx-uses-react.md
-[`jsx-uses-vars`]: docs/rules/jsx-uses-vars.md
-[`jsx-wrap-multilines`]: docs/rules/jsx-wrap-multilines.md
-[`void-dom-elements-no-children`]: docs/rules/void-dom-elements-no-children.md
-[`default-props-match-prop-types`]: docs/rules/default-props-match-prop-types.md
-[`no-redundant-should-component-update`]: docs/rules/no-redundant-should-component-update.md
-[`jsx-closing-tag-location`]: docs/rules/jsx-closing-tag-location.md
-[`no-unused-state`]: docs/rules/no-unused-state.md
-[`boolean-prop-naming`]: docs/rules/boolean-prop-naming.md
-[`no-typos`]: docs/rules/no-typos.md
-[`jsx-sort-prop-types`]: docs/rules/sort-prop-types.md
-[`require-extension`]: docs/rules/require-extension.md
-[`no-comment-textnodes`]: docs/rules/jsx-no-comment-textnodes.md
-[`wrap-multilines`]: docs/rules/jsx-wrap-multilines.md
-[`jsx-curly-brace-presence`]: docs/rules/jsx-curly-brace-presence.md
-[`jsx-one-expression-per-line`]: docs/rules/jsx-one-expression-per-line.md
-[`destructuring-assignment`]: docs/rules/destructuring-assignment.md
-[`no-access-state-in-setstate`]: docs/rules/no-access-state-in-setstate.md
-[`button-has-type`]: docs/rules/button-has-type.md
-[`forbid-dom-props`]: docs/rules/forbid-dom-props.md
-[`jsx-child-element-spacing`]: docs/rules/jsx-child-element-spacing.md
-[`no-this-in-sfc`]: docs/rules/no-this-in-sfc.md
-[`jsx-sort-default-props`]: docs/rules/jsx-sort-default-props.md
-[`jsx-max-depth`]: docs/rules/jsx-max-depth.md
-[`jsx-props-no-multi-spaces`]: docs/rules/jsx-props-no-multi-spaces.md
-[`no-unsafe`]: docs/rules/no-unsafe.md
-[`jsx-fragments`]: docs/rules/jsx-fragments.md
-[`jsx-props-no-spreading`]: docs/rules/jsx-props-no-spreading.md
-[`prefer-read-only-props`]: docs/rules/prefer-read-only-props.md
-[`state-in-constructor`]: docs/rules/state-in-constructor.md
-[`jsx-props-no-spreading`]: docs/rules/jsx-props-no-spreading.md
-[`static-property-placement`]: docs/rules/static-property-placement.md
-[`jsx-curly-newline`]: docs/rules/jsx-curly-newline.md
-[`jsx-no-useless-fragment`]: docs/rules/jsx-no-useless-fragment.md
-[`jsx-no-script-url`]: docs/rules/jsx-no-script-url.md
-[`no-adjacent-inline-elements`]: docs/rules/no-adjacent-inline-elements.md
-[`function-component-definition`]: docs/rules/function-component-definition.md
diff --git a/node_modules/eslint-plugin-react/LICENSE b/node_modules/eslint-plugin-react/LICENSE
deleted file mode 100644
index 6b5a43e..0000000
--- a/node_modules/eslint-plugin-react/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Yannick Croissant
-
-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.
-
diff --git a/node_modules/eslint-plugin-react/README.md b/node_modules/eslint-plugin-react/README.md
deleted file mode 100644
index 011504b..0000000
--- a/node_modules/eslint-plugin-react/README.md
+++ /dev/null
@@ -1,280 +0,0 @@
-ESLint-plugin-React
-===================
-
-[![Maintenance Status][status-image]][status-url] [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][deps-image]][deps-url] [![Coverage Status][coverage-image]][coverage-url] [![Code Climate][climate-image]][climate-url] [![Tidelift][tidelift-image]][tidelift-url]
-
-React specific linting rules for ESLint
-
-# Installation
-
-Install [ESLint](https://www.github.com/eslint/eslint) either locally or globally. (Note that locally, per project, is strongly preferred)
-
-```sh
-$ npm install eslint --save-dev
-```
-
-If you installed `ESLint` globally, you have to install React plugin globally too. Otherwise, install it locally.
-
-```sh
-$ npm install eslint-plugin-react --save-dev
-```
-
-# Configuration
-
-Use [our preset](#recommended) to get reasonable defaults:
-
-```json
-  "extends": [
-    "eslint:recommended",
-    "plugin:react/recommended"
-  ]
-```
-
-You should also specify settings that will be shared across all the plugin rules. ([More about eslint shared settings](https://eslint.org/docs/user-guide/configuring#adding-shared-settings))
-
-```json5
-{
-  "settings": {
-    "react": {
-      "createClass": "createReactClass", // Regex for Component Factory to use,
-                                         // default to "createReactClass"
-      "pragma": "React",  // Pragma to use, default to "React"
-      "version": "detect", // React version. "detect" automatically picks the version you have installed.
-                           // You can also use `16.0`, `16.3`, etc, if you want to override the detected value.
-                           // default to latest and warns if missing
-                           // It will default to "detect" in the future
-      "flowVersion": "0.53" // Flow version
-    },
-    "propWrapperFunctions": [
-        // The names of any function used to wrap propTypes, e.g. `forbidExtraProps`. If this isn't set, any propTypes wrapped in a function will be skipped.
-        "forbidExtraProps",
-        {"property": "freeze", "object": "Object"},
-        {"property": "myFavoriteWrapper"}
-    ],
-    "linkComponents": [
-      // Components used as alternatives to <a> for linking, eg. <Link to={ url } />
-      "Hyperlink",
-      {"name": "Link", "linkAttribute": "to"}
-    ]
-  }
-}
-```
-
-If you do not use a preset you will need to specify individual rules and add extra configuration.
-
-Add "react" to the plugins section.
-
-```json
-{
-  "plugins": [
-    "react"
-  ]
-}
-```
-
-Enable JSX support.
-
-With ESLint 2+
-
-```json
-{
-  "parserOptions": {
-    "ecmaFeatures": {
-      "jsx": true
-    }
-  }
-}
-```
-
-Enable the rules that you would like to use.
-
-```json
-  "rules": {
-    "react/jsx-uses-react": "error",
-    "react/jsx-uses-vars": "error",
-  }
-```
-
-# List of supported rules
-
-<!-- AUTO-GENERATED-CONTENT:START (BASIC_RULES) -->
-* [react/boolean-prop-naming](docs/rules/boolean-prop-naming.md): Enforces consistent naming for boolean props
-* [react/button-has-type](docs/rules/button-has-type.md): Forbid "button" element without an explicit "type" attribute
-* [react/default-props-match-prop-types](docs/rules/default-props-match-prop-types.md): Enforce all defaultProps are defined and not "required" in propTypes.
-* [react/destructuring-assignment](docs/rules/destructuring-assignment.md): Enforce consistent usage of destructuring assignment of props, state, and context
-* [react/display-name](docs/rules/display-name.md): Prevent missing displayName in a React component definition
-* [react/forbid-component-props](docs/rules/forbid-component-props.md): Forbid certain props on components
-* [react/forbid-dom-props](docs/rules/forbid-dom-props.md): Forbid certain props on DOM Nodes
-* [react/forbid-elements](docs/rules/forbid-elements.md): Forbid certain elements
-* [react/forbid-foreign-prop-types](docs/rules/forbid-foreign-prop-types.md): Forbid using another component's propTypes
-* [react/forbid-prop-types](docs/rules/forbid-prop-types.md): Forbid certain propTypes
-* [react/function-component-definition](docs/rules/function-component-definition.md): Standardize the way function component get defined (fixable)
-* [react/no-access-state-in-setstate](docs/rules/no-access-state-in-setstate.md): Reports when this.state is accessed within setState
-* [react/no-adjacent-inline-elements](docs/rules/no-adjacent-inline-elements.md): Prevent adjacent inline elements not separated by whitespace.
-* [react/no-array-index-key](docs/rules/no-array-index-key.md): Prevent usage of Array index in keys
-* [react/no-children-prop](docs/rules/no-children-prop.md): Prevent passing of children as props.
-* [react/no-danger](docs/rules/no-danger.md): Prevent usage of dangerous JSX props
-* [react/no-danger-with-children](docs/rules/no-danger-with-children.md): Report when a DOM element is using both children and dangerouslySetInnerHTML
-* [react/no-deprecated](docs/rules/no-deprecated.md): Prevent usage of deprecated methods
-* [react/no-did-mount-set-state](docs/rules/no-did-mount-set-state.md): Prevent usage of setState in componentDidMount
-* [react/no-did-update-set-state](docs/rules/no-did-update-set-state.md): Prevent usage of setState in componentDidUpdate
-* [react/no-direct-mutation-state](docs/rules/no-direct-mutation-state.md): Prevent direct mutation of this.state
-* [react/no-find-dom-node](docs/rules/no-find-dom-node.md): Prevent usage of findDOMNode
-* [react/no-is-mounted](docs/rules/no-is-mounted.md): Prevent usage of isMounted
-* [react/no-multi-comp](docs/rules/no-multi-comp.md): Prevent multiple component definition per file
-* [react/no-redundant-should-component-update](docs/rules/no-redundant-should-component-update.md): Flag shouldComponentUpdate when extending PureComponent
-* [react/no-render-return-value](docs/rules/no-render-return-value.md): Prevent usage of the return value of React.render
-* [react/no-set-state](docs/rules/no-set-state.md): Prevent usage of setState
-* [react/no-string-refs](docs/rules/no-string-refs.md): Prevent string definitions for references and prevent referencing this.refs
-* [react/no-this-in-sfc](docs/rules/no-this-in-sfc.md): Report "this" being used in stateless components
-* [react/no-typos](docs/rules/no-typos.md): Prevent common typos
-* [react/no-unescaped-entities](docs/rules/no-unescaped-entities.md): Detect unescaped HTML entities, which might represent malformed tags
-* [react/no-unknown-property](docs/rules/no-unknown-property.md): Prevent usage of unknown DOM property (fixable)
-* [react/no-unsafe](docs/rules/no-unsafe.md): Prevent usage of unsafe lifecycle methods
-* [react/no-unused-prop-types](docs/rules/no-unused-prop-types.md): Prevent definitions of unused prop types
-* [react/no-unused-state](docs/rules/no-unused-state.md): Prevent definition of unused state fields
-* [react/no-will-update-set-state](docs/rules/no-will-update-set-state.md): Prevent usage of setState in componentWillUpdate
-* [react/prefer-es6-class](docs/rules/prefer-es6-class.md): Enforce ES5 or ES6 class for React Components
-* [react/prefer-read-only-props](docs/rules/prefer-read-only-props.md): Require read-only props. (fixable)
-* [react/prefer-stateless-function](docs/rules/prefer-stateless-function.md): Enforce stateless components to be written as a pure function
-* [react/prop-types](docs/rules/prop-types.md): Prevent missing props validation in a React component definition
-* [react/react-in-jsx-scope](docs/rules/react-in-jsx-scope.md): Prevent missing React when using JSX
-* [react/require-default-props](docs/rules/require-default-props.md): Enforce a defaultProps definition for every prop that is not a required prop.
-* [react/require-optimization](docs/rules/require-optimization.md): Enforce React components to have a shouldComponentUpdate method
-* [react/require-render-return](docs/rules/require-render-return.md): Enforce ES5 or ES6 class for returning value in render function
-* [react/self-closing-comp](docs/rules/self-closing-comp.md): Prevent extra closing tags for components without children (fixable)
-* [react/sort-comp](docs/rules/sort-comp.md): Enforce component methods order
-* [react/sort-prop-types](docs/rules/sort-prop-types.md): Enforce propTypes declarations alphabetical sorting
-* [react/state-in-constructor](docs/rules/state-in-constructor.md): State initialization in an ES6 class component should be in a constructor
-* [react/static-property-placement](docs/rules/static-property-placement.md): Defines where React component static properties should be positioned.
-* [react/style-prop-object](docs/rules/style-prop-object.md): Enforce style prop value is an object
-* [react/void-dom-elements-no-children](docs/rules/void-dom-elements-no-children.md): Prevent passing of children to void DOM elements (e.g. `<br />`).
-<!-- AUTO-GENERATED-CONTENT:END -->
-
-## JSX-specific rules
-
-<!-- AUTO-GENERATED-CONTENT:START (JSX_RULES) -->
-* [react/jsx-boolean-value](docs/rules/jsx-boolean-value.md): Enforce boolean attributes notation in JSX (fixable)
-* [react/jsx-child-element-spacing](docs/rules/jsx-child-element-spacing.md): Ensures inline tags are not rendered without spaces between them
-* [react/jsx-closing-bracket-location](docs/rules/jsx-closing-bracket-location.md): Validate closing bracket location in JSX (fixable)
-* [react/jsx-closing-tag-location](docs/rules/jsx-closing-tag-location.md): Validate closing tag location for multiline JSX (fixable)
-* [react/jsx-curly-brace-presence](docs/rules/jsx-curly-brace-presence.md): Disallow unnecessary JSX expressions when literals alone are sufficient or enfore JSX expressions on literals in JSX children or attributes (fixable)
-* [react/jsx-curly-newline](docs/rules/jsx-curly-newline.md): Enforce consistent line breaks inside jsx curly (fixable)
-* [react/jsx-curly-spacing](docs/rules/jsx-curly-spacing.md): Enforce or disallow spaces inside of curly braces in JSX attributes (fixable)
-* [react/jsx-equals-spacing](docs/rules/jsx-equals-spacing.md): Disallow or enforce spaces around equal signs in JSX attributes (fixable)
-* [react/jsx-filename-extension](docs/rules/jsx-filename-extension.md): Restrict file extensions that may contain JSX
-* [react/jsx-first-prop-new-line](docs/rules/jsx-first-prop-new-line.md): Ensure proper position of the first property in JSX (fixable)
-* [react/jsx-fragments](docs/rules/jsx-fragments.md): Enforce shorthand or standard form for React fragments (fixable)
-* [react/jsx-handler-names](docs/rules/jsx-handler-names.md): Enforce event handler naming conventions in JSX
-* [react/jsx-indent](docs/rules/jsx-indent.md): Validate JSX indentation (fixable)
-* [react/jsx-indent-props](docs/rules/jsx-indent-props.md): Validate props indentation in JSX (fixable)
-* [react/jsx-key](docs/rules/jsx-key.md): Report missing `key` props in iterators/collection literals
-* [react/jsx-max-depth](docs/rules/jsx-max-depth.md): Validate JSX maximum depth
-* [react/jsx-max-props-per-line](docs/rules/jsx-max-props-per-line.md): Limit maximum of props on a single line in JSX (fixable)
-* [react/jsx-no-bind](docs/rules/jsx-no-bind.md): Prevents usage of Function.prototype.bind and arrow functions in React component props
-* [react/jsx-no-comment-textnodes](docs/rules/jsx-no-comment-textnodes.md): Comments inside children section of tag should be placed inside braces
-* [react/jsx-no-duplicate-props](docs/rules/jsx-no-duplicate-props.md): Enforce no duplicate props
-* [react/jsx-no-literals](docs/rules/jsx-no-literals.md): Prevent using string literals in React component definition
-* [react/jsx-no-script-url](docs/rules/jsx-no-script-url.md): Forbid `javascript:` URLs
-* [react/jsx-no-target-blank](docs/rules/jsx-no-target-blank.md): Forbid target="_blank" attribute without rel="noopener noreferrer"
-* [react/jsx-no-undef](docs/rules/jsx-no-undef.md): Disallow undeclared variables in JSX
-* [react/jsx-no-useless-fragment](docs/rules/jsx-no-useless-fragment.md): Disallow unnecessary fragments (fixable)
-* [react/jsx-one-expression-per-line](docs/rules/jsx-one-expression-per-line.md): Limit to one expression per line in JSX (fixable)
-* [react/jsx-pascal-case](docs/rules/jsx-pascal-case.md): Enforce PascalCase for user-defined JSX components
-* [react/jsx-props-no-multi-spaces](docs/rules/jsx-props-no-multi-spaces.md): Disallow multiple spaces between inline JSX props (fixable)
-* [react/jsx-props-no-spreading](docs/rules/jsx-props-no-spreading.md): Prevent JSX prop spreading
-* [react/jsx-sort-default-props](docs/rules/jsx-sort-default-props.md): Enforce default props alphabetical sorting
-* [react/jsx-sort-props](docs/rules/jsx-sort-props.md): Enforce props alphabetical sorting (fixable)
-* [react/jsx-space-before-closing](docs/rules/jsx-space-before-closing.md): Validate spacing before closing bracket in JSX (fixable)
-* [react/jsx-tag-spacing](docs/rules/jsx-tag-spacing.md): Validate whitespace in and around the JSX opening and closing brackets (fixable)
-* [react/jsx-uses-react](docs/rules/jsx-uses-react.md): Prevent React to be marked as unused
-* [react/jsx-uses-vars](docs/rules/jsx-uses-vars.md): Prevent variables used in JSX to be marked as unused
-* [react/jsx-wrap-multilines](docs/rules/jsx-wrap-multilines.md): Prevent missing parentheses around multilines JSX (fixable)
-<!-- AUTO-GENERATED-CONTENT:END -->
-
-## Other useful plugins
-
-- JSX accessibility: [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y)
-- React Native: [eslint-plugin-react-native](https://github.com/Intellicode/eslint-plugin-react-native)
-
-# Shareable configurations
-
-## Recommended
-
-This plugin exports a `recommended` configuration that enforces React good practices.
-
-To enable this configuration use the `extends` property in your `.eslintrc` config file:
-
-```json
-{
-  "extends": ["eslint:recommended", "plugin:react/recommended"]
-}
-```
-
-See [ESLint documentation](http://eslint.org/docs/user-guide/configuring#extending-configuration-files) for more information about extending configuration files.
-
-The rules enabled in this configuration are:
-
-* [react/display-name](docs/rules/display-name.md)
-* [react/jsx-key](docs/rules/jsx-key.md)
-* [react/jsx-no-comment-textnodes](docs/rules/jsx-no-comment-textnodes.md)
-* [react/jsx-no-duplicate-props](docs/rules/jsx-no-duplicate-props.md)
-* [react/jsx-no-target-blank](docs/rules/jsx-no-target-blank.md)
-* [react/jsx-no-undef](docs/rules/jsx-no-undef.md)
-* [react/jsx-uses-react](docs/rules/jsx-uses-react.md)
-* [react/jsx-uses-vars](docs/rules/jsx-uses-vars.md)
-* [react/no-children-prop](docs/rules/no-children-prop.md)
-* [react/no-danger-with-children](docs/rules/no-danger-with-children.md)
-* [react/no-deprecated](docs/rules/no-deprecated.md)
-* [react/no-direct-mutation-state](docs/rules/no-direct-mutation-state.md)
-* [react/no-find-dom-node](docs/rules/no-find-dom-node.md)
-* [react/no-is-mounted](docs/rules/no-is-mounted.md)
-* [react/no-render-return-value](docs/rules/no-render-return-value.md)
-* [react/no-string-refs](docs/rules/no-string-refs.md)
-* [react/no-unescaped-entities](docs/rules/no-unescaped-entities.md)
-* [react/no-unknown-property](docs/rules/no-unknown-property.md)
-* [react/prop-types](docs/rules/prop-types.md)
-* [react/react-in-jsx-scope](docs/rules/react-in-jsx-scope.md)
-* [react/require-render-return](docs/rules/require-render-return.md)
-
-## All
-
-This plugin also exports an `all` configuration that includes every available rule.
-This pairs well with the `eslint:all` rule.
-
-```json
-{
-  "plugins": [
-    "react"
-  ],
-  "extends": ["eslint:all", "plugin:react/all"]
-}
-```
-
-**Note**: These configurations will import `eslint-plugin-react` and enable JSX in [parser options](http://eslint.org/docs/user-guide/configuring#specifying-parser-options).
-
-# License
-
-ESLint-plugin-React is licensed under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
-
-
-[npm-url]: https://npmjs.org/package/eslint-plugin-react
-[npm-image]: https://img.shields.io/npm/v/eslint-plugin-react.svg
-
-[travis-url]: https://travis-ci.org/yannickcr/eslint-plugin-react
-[travis-image]: https://img.shields.io/travis/yannickcr/eslint-plugin-react/master.svg
-
-[deps-url]: https://david-dm.org/yannickcr/eslint-plugin-react
-[deps-image]: https://img.shields.io/david/dev/yannickcr/eslint-plugin-react.svg
-
-[coverage-url]: https://coveralls.io/r/yannickcr/eslint-plugin-react?branch=master
-[coverage-image]: https://img.shields.io/coveralls/yannickcr/eslint-plugin-react/master.svg
-
-[climate-url]: https://codeclimate.com/github/yannickcr/eslint-plugin-react
-[climate-image]: https://img.shields.io/codeclimate/maintainability/yannickcr/eslint-plugin-react.svg
-
-[status-url]: https://github.com/yannickcr/eslint-plugin-react/pulse
-[status-image]: https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react.svg
-
-[tidelift-url]: https://tidelift.com/subscription/pkg/npm-eslint-plugin-react?utm_source=npm-eslint-plugin-react&utm_medium=referral&utm_campaign=readme
-[tidelift-image]: https://tidelift.com/badges/github/yannickcr/eslint-plugin-react?style=flat
diff --git a/node_modules/eslint-plugin-react/index.js b/node_modules/eslint-plugin-react/index.js
deleted file mode 100644
index 53b5023..0000000
--- a/node_modules/eslint-plugin-react/index.js
+++ /dev/null
@@ -1,161 +0,0 @@
-'use strict';
-
-const fromEntries = require('object.fromentries');
-const entries = require('object.entries');
-
-/* eslint-disable global-require */
-const allRules = {
-  'boolean-prop-naming': require('./lib/rules/boolean-prop-naming'),
-  'button-has-type': require('./lib/rules/button-has-type'),
-  'default-props-match-prop-types': require('./lib/rules/default-props-match-prop-types'),
-  'destructuring-assignment': require('./lib/rules/destructuring-assignment'),
-  'display-name': require('./lib/rules/display-name'),
-  'forbid-component-props': require('./lib/rules/forbid-component-props'),
-  'forbid-dom-props': require('./lib/rules/forbid-dom-props'),
-  'forbid-elements': require('./lib/rules/forbid-elements'),
-  'forbid-foreign-prop-types': require('./lib/rules/forbid-foreign-prop-types'),
-  'forbid-prop-types': require('./lib/rules/forbid-prop-types'),
-  'function-component-definition': require('./lib/rules/function-component-definition'),
-  'jsx-boolean-value': require('./lib/rules/jsx-boolean-value'),
-  'jsx-child-element-spacing': require('./lib/rules/jsx-child-element-spacing'),
-  'jsx-closing-bracket-location': require('./lib/rules/jsx-closing-bracket-location'),
-  'jsx-closing-tag-location': require('./lib/rules/jsx-closing-tag-location'),
-  'jsx-curly-spacing': require('./lib/rules/jsx-curly-spacing'),
-  'jsx-curly-newline': require('./lib/rules/jsx-curly-newline'),
-  'jsx-equals-spacing': require('./lib/rules/jsx-equals-spacing'),
-  'jsx-filename-extension': require('./lib/rules/jsx-filename-extension'),
-  'jsx-first-prop-new-line': require('./lib/rules/jsx-first-prop-new-line'),
-  'jsx-handler-names': require('./lib/rules/jsx-handler-names'),
-  'jsx-indent': require('./lib/rules/jsx-indent'),
-  'jsx-indent-props': require('./lib/rules/jsx-indent-props'),
-  'jsx-key': require('./lib/rules/jsx-key'),
-  'jsx-max-depth': require('./lib/rules/jsx-max-depth'),
-  'jsx-max-props-per-line': require('./lib/rules/jsx-max-props-per-line'),
-  'jsx-no-bind': require('./lib/rules/jsx-no-bind'),
-  'jsx-no-comment-textnodes': require('./lib/rules/jsx-no-comment-textnodes'),
-  'jsx-no-duplicate-props': require('./lib/rules/jsx-no-duplicate-props'),
-  'jsx-no-literals': require('./lib/rules/jsx-no-literals'),
-  'jsx-no-script-url': require('./lib/rules/jsx-no-script-url'),
-  'jsx-no-target-blank': require('./lib/rules/jsx-no-target-blank'),
-  'jsx-no-useless-fragment': require('./lib/rules/jsx-no-useless-fragment'),
-  'jsx-one-expression-per-line': require('./lib/rules/jsx-one-expression-per-line'),
-  'jsx-no-undef': require('./lib/rules/jsx-no-undef'),
-  'jsx-curly-brace-presence': require('./lib/rules/jsx-curly-brace-presence'),
-  'jsx-pascal-case': require('./lib/rules/jsx-pascal-case'),
-  'jsx-fragments': require('./lib/rules/jsx-fragments'),
-  'jsx-props-no-multi-spaces': require('./lib/rules/jsx-props-no-multi-spaces'),
-  'jsx-props-no-spreading': require('./lib/rules/jsx-props-no-spreading'),
-  'jsx-sort-default-props': require('./lib/rules/jsx-sort-default-props'),
-  'jsx-sort-props': require('./lib/rules/jsx-sort-props'),
-  'jsx-space-before-closing': require('./lib/rules/jsx-space-before-closing'),
-  'jsx-tag-spacing': require('./lib/rules/jsx-tag-spacing'),
-  'jsx-uses-react': require('./lib/rules/jsx-uses-react'),
-  'jsx-uses-vars': require('./lib/rules/jsx-uses-vars'),
-  'jsx-wrap-multilines': require('./lib/rules/jsx-wrap-multilines'),
-  'no-access-state-in-setstate': require('./lib/rules/no-access-state-in-setstate'),
-  'no-adjacent-inline-elements': require('./lib/rules/no-adjacent-inline-elements'),
-  'no-array-index-key': require('./lib/rules/no-array-index-key'),
-  'no-children-prop': require('./lib/rules/no-children-prop'),
-  'no-danger': require('./lib/rules/no-danger'),
-  'no-danger-with-children': require('./lib/rules/no-danger-with-children'),
-  'no-deprecated': require('./lib/rules/no-deprecated'),
-  'no-did-mount-set-state': require('./lib/rules/no-did-mount-set-state'),
-  'no-did-update-set-state': require('./lib/rules/no-did-update-set-state'),
-  'no-direct-mutation-state': require('./lib/rules/no-direct-mutation-state'),
-  'no-find-dom-node': require('./lib/rules/no-find-dom-node'),
-  'no-is-mounted': require('./lib/rules/no-is-mounted'),
-  'no-multi-comp': require('./lib/rules/no-multi-comp'),
-  'no-set-state': require('./lib/rules/no-set-state'),
-  'no-string-refs': require('./lib/rules/no-string-refs'),
-  'no-redundant-should-component-update': require('./lib/rules/no-redundant-should-component-update'),
-  'no-render-return-value': require('./lib/rules/no-render-return-value'),
-  'no-this-in-sfc': require('./lib/rules/no-this-in-sfc'),
-  'no-typos': require('./lib/rules/no-typos'),
-  'no-unescaped-entities': require('./lib/rules/no-unescaped-entities'),
-  'no-unknown-property': require('./lib/rules/no-unknown-property'),
-  'no-unsafe': require('./lib/rules/no-unsafe'),
-  'no-unused-prop-types': require('./lib/rules/no-unused-prop-types'),
-  'no-unused-state': require('./lib/rules/no-unused-state'),
-  'no-will-update-set-state': require('./lib/rules/no-will-update-set-state'),
-  'prefer-es6-class': require('./lib/rules/prefer-es6-class'),
-  'prefer-read-only-props': require('./lib/rules/prefer-read-only-props'),
-  'prefer-stateless-function': require('./lib/rules/prefer-stateless-function'),
-  'prop-types': require('./lib/rules/prop-types'),
-  'react-in-jsx-scope': require('./lib/rules/react-in-jsx-scope'),
-  'require-default-props': require('./lib/rules/require-default-props'),
-  'require-optimization': require('./lib/rules/require-optimization'),
-  'require-render-return': require('./lib/rules/require-render-return'),
-  'self-closing-comp': require('./lib/rules/self-closing-comp'),
-  'sort-comp': require('./lib/rules/sort-comp'),
-  'sort-prop-types': require('./lib/rules/sort-prop-types'),
-  'state-in-constructor': require('./lib/rules/state-in-constructor'),
-  'static-property-placement': require('./lib/rules/static-property-placement'),
-  'style-prop-object': require('./lib/rules/style-prop-object'),
-  'void-dom-elements-no-children': require('./lib/rules/void-dom-elements-no-children')
-};
-/* eslint-enable */
-
-function filterRules(rules, predicate) {
-  return fromEntries(entries(rules).filter(entry => predicate(entry[1])));
-}
-
-function configureAsError(rules) {
-  return fromEntries(Object.keys(rules).map(key => [`react/${key}`, 2]));
-}
-
-const activeRules = filterRules(allRules, rule => !rule.meta.deprecated);
-const activeRulesConfig = configureAsError(activeRules);
-
-const deprecatedRules = filterRules(allRules, rule => rule.meta.deprecated);
-
-module.exports = {
-  deprecatedRules,
-  rules: allRules,
-  configs: {
-    recommended: {
-      plugins: [
-        'react'
-      ],
-      parserOptions: {
-        ecmaFeatures: {
-          jsx: true
-        }
-      },
-      rules: {
-        'react/display-name': 2,
-        'react/jsx-key': 2,
-        'react/jsx-no-comment-textnodes': 2,
-        'react/jsx-no-duplicate-props': 2,
-        'react/jsx-no-target-blank': 2,
-        'react/jsx-no-undef': 2,
-        'react/jsx-uses-react': 2,
-        'react/jsx-uses-vars': 2,
-        'react/no-children-prop': 2,
-        'react/no-danger-with-children': 2,
-        'react/no-deprecated': 2,
-        'react/no-direct-mutation-state': 2,
-        'react/no-find-dom-node': 2,
-        'react/no-is-mounted': 2,
-        'react/no-render-return-value': 2,
-        'react/no-string-refs': 2,
-        'react/no-unescaped-entities': 2,
-        'react/no-unknown-property': 2,
-        'react/no-unsafe': 0,
-        'react/prop-types': 2,
-        'react/react-in-jsx-scope': 2,
-        'react/require-render-return': 2
-      }
-    },
-    all: {
-      plugins: [
-        'react'
-      ],
-      parserOptions: {
-        ecmaFeatures: {
-          jsx: true
-        }
-      },
-      rules: activeRulesConfig
-    }
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/boolean-prop-naming.js b/node_modules/eslint-plugin-react/lib/rules/boolean-prop-naming.js
deleted file mode 100644
index e319df8..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/boolean-prop-naming.js
+++ /dev/null
@@ -1,324 +0,0 @@
-/**
- * @fileoverview Enforces consistent naming for boolean props
- * @author Ev Haus
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const propsUtil = require('../util/props');
-const docsUrl = require('../util/docsUrl');
-const propWrapperUtil = require('../util/propWrapper');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      category: 'Stylistic Issues',
-      description: 'Enforces consistent naming for boolean props',
-      recommended: false,
-      url: docsUrl('boolean-prop-naming')
-    },
-
-    schema: [{
-      additionalProperties: false,
-      properties: {
-        propTypeNames: {
-          items: {
-            type: 'string'
-          },
-          minItems: 1,
-          type: 'array',
-          uniqueItems: true
-        },
-        rule: {
-          default: '^(is|has)[A-Z]([A-Za-z0-9]?)+',
-          minLength: 1,
-          type: 'string'
-        },
-        message: {
-          minLength: 1,
-          type: 'string'
-        },
-        validateNested: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      type: 'object'
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const config = context.options[0] || {};
-    const rule = config.rule ? new RegExp(config.rule) : null;
-    const propTypeNames = config.propTypeNames || ['bool'];
-
-    // Remembers all Flowtype object definitions
-    const objectTypeAnnotations = new Map();
-
-    /**
-     * Returns the prop key to ensure we handle the following cases:
-     * propTypes: {
-     *   full: React.PropTypes.bool,
-     *   short: PropTypes.bool,
-     *   direct: bool,
-     *   required: PropTypes.bool.isRequired
-     * }
-     * @param {Object} node The node we're getting the name of
-     * @returns {string | null}
-     */
-    function getPropKey(node) {
-      // Check for `ExperimentalSpreadProperty` (ESLint 3/4) and `SpreadElement` (ESLint 5)
-      // so we can skip validation of those fields.
-      // Otherwise it will look for `node.value.property` which doesn't exist and breaks ESLint.
-      if (node.type === 'ExperimentalSpreadProperty' || node.type === 'SpreadElement') {
-        return null;
-      }
-      if (node.value.property) {
-        const name = node.value.property.name;
-        if (name === 'isRequired') {
-          if (node.value.object && node.value.object.property) {
-            return node.value.object.property.name;
-          }
-          return null;
-        }
-        return name;
-      }
-      if (node.value.type === 'Identifier') {
-        return node.value.name;
-      }
-      return null;
-    }
-
-    /**
-     * Returns the name of the given node (prop)
-     * @param {Object} node The node we're getting the name of
-     * @returns {string}
-     */
-    function getPropName(node) {
-      // Due to this bug https://github.com/babel/babel-eslint/issues/307
-      // we can't get the name of the Flow object key name. So we have
-      // to hack around it for now.
-      if (node.type === 'ObjectTypeProperty') {
-        return context.getSourceCode().getFirstToken(node).value;
-      }
-
-      return node.key.name;
-    }
-
-    /**
-     * Checks if prop is declared in flow way
-     * @param {Object} prop Property object, single prop type declaration
-     * @returns {Boolean}
-     */
-    function flowCheck(prop) {
-      return (
-        prop.type === 'ObjectTypeProperty' &&
-        prop.value.type === 'BooleanTypeAnnotation' &&
-        rule.test(getPropName(prop)) === false
-      );
-    }
-
-    /**
-     * Checks if prop is declared in regular way
-     * @param {Object} prop Property object, single prop type declaration
-     * @returns {Boolean}
-     */
-    function regularCheck(prop) {
-      const propKey = getPropKey(prop);
-      return (
-        propKey &&
-        propTypeNames.indexOf(propKey) >= 0 &&
-        rule.test(getPropName(prop)) === false
-      );
-    }
-
-    /**
-     * Checks if prop is nested
-     * @param {Object} prop Property object, single prop type declaration
-     * @returns {Boolean}
-     */
-    function nestedPropTypes(prop) {
-      return (
-        prop.type === 'Property' &&
-        prop.value.type === 'CallExpression'
-      );
-    }
-
-    /**
-     * Runs recursive check on all proptypes
-     * @param {Array} proptypes A list of Property object (for each proptype defined)
-     * @param {Function} addInvalidProp callback to run for each error
-     */
-    function runCheck(proptypes, addInvalidProp) {
-      proptypes = proptypes || [];
-
-      proptypes.forEach((prop) => {
-        if (config.validateNested && nestedPropTypes(prop)) {
-          runCheck(prop.value.arguments[0].properties, addInvalidProp);
-          return;
-        }
-        if (flowCheck(prop) || regularCheck(prop)) {
-          addInvalidProp(prop);
-        }
-      });
-    }
-
-    /**
-     * Checks and mark props with invalid naming
-     * @param {Object} node The component node we're testing
-     * @param {Array} proptypes A list of Property object (for each proptype defined)
-     */
-    function validatePropNaming(node, proptypes) {
-      const component = components.get(node) || node;
-      const invalidProps = component.invalidProps || [];
-
-      runCheck(proptypes, (prop) => {
-        invalidProps.push(prop);
-      });
-
-      components.set(node, {
-        invalidProps
-      });
-    }
-
-    /**
-     * Reports invalid prop naming
-     * @param {Object} component The component to process
-     */
-    function reportInvalidNaming(component) {
-      component.invalidProps.forEach((propNode) => {
-        const propName = getPropName(propNode);
-        context.report({
-          node: propNode,
-          message: config.message || 'Prop name ({{ propName }}) doesn\'t match rule ({{ pattern }})',
-          data: {
-            component: propName,
-            propName,
-            pattern: config.rule
-          }
-        });
-      });
-    }
-
-    function checkPropWrapperArguments(node, args) {
-      if (!node || !Array.isArray(args)) {
-        return;
-      }
-      args.filter(arg => arg.type === 'ObjectExpression').forEach(object => validatePropNaming(node, object.properties));
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      ClassProperty(node) {
-        if (!rule || !propsUtil.isPropTypesDeclaration(node)) {
-          return;
-        }
-        if (
-          node.value &&
-          node.value.type === 'CallExpression' &&
-          propWrapperUtil.isPropWrapperFunction(
-            context,
-            context.getSourceCode().getText(node.value.callee)
-          )
-        ) {
-          checkPropWrapperArguments(node, node.value.arguments);
-        }
-        if (node.value && node.value.properties) {
-          validatePropNaming(node, node.value.properties);
-        }
-        if (node.typeAnnotation && node.typeAnnotation.typeAnnotation) {
-          validatePropNaming(node, node.typeAnnotation.typeAnnotation.properties);
-        }
-      },
-
-      MemberExpression(node) {
-        if (!rule || !propsUtil.isPropTypesDeclaration(node)) {
-          return;
-        }
-        const component = utils.getRelatedComponent(node);
-        if (!component || !node.parent.right) {
-          return;
-        }
-        const right = node.parent.right;
-        if (
-          right.type === 'CallExpression' &&
-          propWrapperUtil.isPropWrapperFunction(
-            context,
-            context.getSourceCode().getText(right.callee)
-          )
-        ) {
-          checkPropWrapperArguments(component.node, right.arguments);
-          return;
-        }
-        validatePropNaming(component.node, node.parent.right.properties);
-      },
-
-      ObjectExpression(node) {
-        if (!rule) {
-          return;
-        }
-
-        // Search for the proptypes declaration
-        node.properties.forEach((property) => {
-          if (!propsUtil.isPropTypesDeclaration(property)) {
-            return;
-          }
-          validatePropNaming(node, property.value.properties);
-        });
-      },
-
-      TypeAlias(node) {
-        // Cache all ObjectType annotations, we will check them at the end
-        if (node.right.type === 'ObjectTypeAnnotation') {
-          objectTypeAnnotations.set(node.id.name, node.right);
-        }
-      },
-
-      // eslint-disable-next-line object-shorthand
-      'Program:exit'() {
-        if (!rule) {
-          return;
-        }
-
-        const list = components.list();
-        Object.keys(list).forEach((component) => {
-          // If this is a functional component that uses a global type, check it
-          if (
-            list[component].node.type === 'FunctionDeclaration' &&
-            list[component].node.params &&
-            list[component].node.params.length &&
-            list[component].node.params[0].typeAnnotation
-          ) {
-            const typeNode = list[component].node.params[0].typeAnnotation;
-            const annotation = typeNode.typeAnnotation;
-
-            let propType;
-            if (annotation.type === 'GenericTypeAnnotation') {
-              propType = objectTypeAnnotations.get(annotation.id.name);
-            } else if (annotation.type === 'ObjectTypeAnnotation') {
-              propType = annotation;
-            }
-            if (propType) {
-              validatePropNaming(list[component].node, propType.properties);
-            }
-          }
-
-          if (list[component].invalidProps && list[component].invalidProps.length > 0) {
-            reportInvalidNaming(list[component]);
-          }
-        });
-
-        // Reset cache
-        objectTypeAnnotations.clear();
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/button-has-type.js b/node_modules/eslint-plugin-react/lib/rules/button-has-type.js
deleted file mode 100644
index a7d4694..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/button-has-type.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * @fileoverview Forbid "button" element without an explicit "type" attribute
- * @author Filipp Riabchun
- */
-
-'use strict';
-
-const getProp = require('jsx-ast-utils/getProp');
-const getLiteralPropValue = require('jsx-ast-utils/getLiteralPropValue');
-const docsUrl = require('../util/docsUrl');
-const pragmaUtil = require('../util/pragma');
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-function isCreateElement(node, context) {
-  const pragma = pragmaUtil.getFromContext(context);
-  return node.callee &&
-    node.callee.type === 'MemberExpression' &&
-    node.callee.property.name === 'createElement' &&
-    node.callee.object &&
-    node.callee.object.name === pragma &&
-    node.arguments.length > 0;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const optionDefaults = {
-  button: true,
-  submit: true,
-  reset: true
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid "button" element without an explicit "type" attribute',
-      category: 'Possible Errors',
-      recommended: false,
-      url: docsUrl('button-has-type')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        button: {
-          default: optionDefaults.button,
-          type: 'boolean'
-        },
-        submit: {
-          default: optionDefaults.submit,
-          type: 'boolean'
-        },
-        reset: {
-          default: optionDefaults.reset,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = Object.assign({}, optionDefaults, context.options[0]);
-
-    function reportMissing(node) {
-      context.report({
-        node,
-        message: 'Missing an explicit type attribute for button'
-      });
-    }
-
-    function checkValue(node, value, quoteFn) {
-      const q = quoteFn || (x => `"${x}"`);
-      if (!(value in configuration)) {
-        context.report({
-          node,
-          message: `${q(value)} is an invalid value for button type attribute`
-        });
-      } else if (!configuration[value]) {
-        context.report({
-          node,
-          message: `${q(value)} is a forbidden value for button type attribute`
-        });
-      }
-    }
-
-    return {
-      JSXElement(node) {
-        if (node.openingElement.name.name !== 'button') {
-          return;
-        }
-
-        const typeProp = getProp(node.openingElement.attributes, 'type');
-
-        if (!typeProp) {
-          reportMissing(node);
-          return;
-        }
-
-        const propValue = getLiteralPropValue(typeProp);
-        if (!propValue && typeProp.value && typeProp.value.expression) {
-          checkValue(node, typeProp.value.expression.name, x => `\`${x}\``);
-        } else {
-          checkValue(node, propValue);
-        }
-      },
-      CallExpression(node) {
-        if (!isCreateElement(node, context)) {
-          return;
-        }
-
-        if (node.arguments[0].type !== 'Literal' || node.arguments[0].value !== 'button') {
-          return;
-        }
-
-        if (!node.arguments[1] || node.arguments[1].type !== 'ObjectExpression') {
-          reportMissing(node);
-          return;
-        }
-
-        const props = node.arguments[1].properties;
-        const typeProp = props.find(prop => prop.key && prop.key.name === 'type');
-
-        if (!typeProp || typeProp.value.type !== 'Literal') {
-          reportMissing(node);
-          return;
-        }
-
-        checkValue(node, typeProp.value.value);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js b/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js
deleted file mode 100644
index 988949b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/default-props-match-prop-types.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * @fileOverview Enforce all defaultProps are defined in propTypes
- * @author Vitor Balocco
- * @author Roy Sutton
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce all defaultProps are defined and not "required" in propTypes.',
-      category: 'Best Practices',
-      url: docsUrl('default-props-match-prop-types')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        allowRequiredDefaults: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const configuration = context.options[0] || {};
-    const allowRequiredDefaults = configuration.allowRequiredDefaults || false;
-
-    /**
-     * Reports all defaultProps passed in that don't have an appropriate propTypes counterpart.
-     * @param  {Object[]} propTypes    Array of propTypes to check.
-     * @param  {Object}   defaultProps Object of defaultProps to check. Keys are the props names.
-     * @return {void}
-     */
-    function reportInvalidDefaultProps(propTypes, defaultProps) {
-      // If this defaultProps is "unresolved" or the propTypes is undefined, then we should ignore
-      // this component and not report any errors for it, to avoid false-positives with e.g.
-      // external defaultProps/propTypes declarations or spread operators.
-      if (defaultProps === 'unresolved' || !propTypes || Object.keys(propTypes).length === 0) {
-        return;
-      }
-
-      Object.keys(defaultProps).forEach((defaultPropName) => {
-        const defaultProp = defaultProps[defaultPropName];
-        const prop = propTypes[defaultPropName];
-
-        if (prop && (allowRequiredDefaults || !prop.isRequired)) {
-          return;
-        }
-
-        if (prop) {
-          context.report({
-            node: defaultProp.node,
-            message: 'defaultProp "{{name}}" defined for isRequired propType.',
-            data: {name: defaultPropName}
-          });
-        } else {
-          context.report({
-            node: defaultProp.node,
-            message: 'defaultProp "{{name}}" has no corresponding propTypes declaration.',
-            data: {name: defaultPropName}
-          });
-        }
-      });
-    }
-
-    // --------------------------------------------------------------------------
-    // Public API
-    // --------------------------------------------------------------------------
-
-    return {
-      'Program:exit'() {
-        const list = components.list();
-
-        // If no defaultProps could be found, we don't report anything.
-        Object.keys(list).filter(component => list[component].defaultProps).forEach((component) => {
-          reportInvalidDefaultProps(
-            list[component].declaredPropTypes,
-            list[component].defaultProps || {}
-          );
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/destructuring-assignment.js b/node_modules/eslint-plugin-react/lib/rules/destructuring-assignment.js
deleted file mode 100644
index 0299911..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/destructuring-assignment.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * @fileoverview Enforce consistent usage of destructuring assignment of props, state, and context.
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-const isAssignmentLHS = require('../util/ast').isAssignmentLHS;
-
-const DEFAULT_OPTION = 'always';
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce consistent usage of destructuring assignment of props, state, and context',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('destructuring-assignment')
-    },
-    schema: [{
-      type: 'string',
-      enum: [
-        'always',
-        'never'
-      ]
-    }, {
-      type: 'object',
-      properties: {
-        ignoreClassFields: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const configuration = context.options[0] || DEFAULT_OPTION;
-    const ignoreClassFields = context.options[1] && context.options[1].ignoreClassFields === true || false;
-
-    /**
-     * @param {ASTNode} node We expect either an ArrowFunctionExpression,
-     *   FunctionDeclaration, or FunctionExpression
-     */
-    function handleStatelessComponent(node) {
-      const destructuringProps = node.params && node.params[0] && node.params[0].type === 'ObjectPattern';
-      const destructuringContext = node.params && node.params[1] && node.params[1].type === 'ObjectPattern';
-
-      if (destructuringProps && components.get(node) && configuration === 'never') {
-        context.report({
-          node,
-          message: 'Must never use destructuring props assignment in SFC argument'
-        });
-      } else if (destructuringContext && components.get(node) && configuration === 'never') {
-        context.report({
-          node,
-          message: 'Must never use destructuring context assignment in SFC argument'
-        });
-      }
-    }
-
-    function handleSFCUsage(node) {
-      // props.aProp || context.aProp
-      const isPropUsed = (node.object.name === 'props' || node.object.name === 'context') && !isAssignmentLHS(node);
-      if (isPropUsed && configuration === 'always') {
-        context.report({
-          node,
-          message: `Must use destructuring ${node.object.name} assignment`
-        });
-      }
-    }
-
-    function isInClassProperty(node) {
-      let curNode = node.parent;
-      while (curNode) {
-        if (curNode.type === 'ClassProperty') {
-          return true;
-        }
-        curNode = curNode.parent;
-      }
-      return false;
-    }
-
-    function handleClassUsage(node) {
-      // this.props.Aprop || this.context.aProp || this.state.aState
-      const isPropUsed = (
-        node.object.type === 'MemberExpression' && node.object.object.type === 'ThisExpression' &&
-        (node.object.property.name === 'props' || node.object.property.name === 'context' || node.object.property.name === 'state') &&
-        !isAssignmentLHS(node)
-      );
-
-      if (
-        isPropUsed && configuration === 'always' &&
-        !(ignoreClassFields && isInClassProperty(node))
-      ) {
-        context.report({
-          node,
-          message: `Must use destructuring ${node.object.property.name} assignment`
-        });
-      }
-    }
-
-    return {
-
-      FunctionDeclaration: handleStatelessComponent,
-
-      ArrowFunctionExpression: handleStatelessComponent,
-
-      FunctionExpression: handleStatelessComponent,
-
-      MemberExpression(node) {
-        const SFCComponent = components.get(context.getScope(node).block);
-        const classComponent = utils.getParentComponent(node);
-        if (SFCComponent) {
-          handleSFCUsage(node);
-        }
-        if (classComponent) {
-          handleClassUsage(node);
-        }
-      },
-
-      VariableDeclarator(node) {
-        const classComponent = utils.getParentComponent(node);
-        const SFCComponent = components.get(context.getScope(node).block);
-
-        const destructuring = (node.init && node.id && node.id.type === 'ObjectPattern');
-        // let {foo} = props;
-        const destructuringSFC = destructuring && (node.init.name === 'props' || node.init.name === 'context');
-        // let {foo} = this.props;
-        const destructuringClass = destructuring && node.init.object && node.init.object.type === 'ThisExpression' && (
-          node.init.property.name === 'props' || node.init.property.name === 'context' || node.init.property.name === 'state'
-        );
-
-        if (SFCComponent && destructuringSFC && configuration === 'never') {
-          context.report({
-            node,
-            message: `Must never use destructuring ${node.init.name} assignment`
-          });
-        }
-
-        if (
-          classComponent && destructuringClass && configuration === 'never' &&
-          !(ignoreClassFields && node.parent.type === 'ClassProperty')
-        ) {
-          context.report({
-            node,
-            message: `Must never use destructuring ${node.init.property.name} assignment`
-          });
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/display-name.js b/node_modules/eslint-plugin-react/lib/rules/display-name.js
deleted file mode 100644
index 0e0b4e7..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/display-name.js
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * @fileoverview Prevent missing displayName in a React component definition
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-const propsUtil = require('../util/props');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent missing displayName in a React component definition',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('display-name')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignoreTranspilerName: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const config = context.options[0] || {};
-    const ignoreTranspilerName = config.ignoreTranspilerName || false;
-
-    const MISSING_MESSAGE = 'Component definition is missing display name';
-
-    /**
-     * Mark a prop type as declared
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markDisplayNameAsDeclared(node) {
-      components.set(node, {
-        hasDisplayName: true
-      });
-    }
-
-    /**
-     * Reports missing display name for a given component
-     * @param {Object} component The component to process
-     */
-    function reportMissingDisplayName(component) {
-      context.report({
-        node: component.node,
-        message: MISSING_MESSAGE,
-        data: {
-          component: component.name
-        }
-      });
-    }
-
-    /**
-     * Checks if the component have a name set by the transpiler
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if component has a name, false if not.
-     */
-    function hasTranspilerName(node) {
-      const namedObjectAssignment = (
-        node.type === 'ObjectExpression' &&
-        node.parent &&
-        node.parent.parent &&
-        node.parent.parent.type === 'AssignmentExpression' &&
-        (
-          !node.parent.parent.left.object ||
-          node.parent.parent.left.object.name !== 'module' ||
-          node.parent.parent.left.property.name !== 'exports'
-        )
-      );
-      const namedObjectDeclaration = (
-        node.type === 'ObjectExpression' &&
-        node.parent &&
-        node.parent.parent &&
-        node.parent.parent.type === 'VariableDeclarator'
-      );
-      const namedClass = (
-        (node.type === 'ClassDeclaration' || node.type === 'ClassExpression') &&
-        node.id &&
-        !!node.id.name
-      );
-
-      const namedFunctionDeclaration = (
-        (node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression') &&
-        node.id &&
-        !!node.id.name
-      );
-
-      const namedFunctionExpression = (
-        astUtil.isFunctionLikeExpression(node) &&
-        node.parent &&
-        (node.parent.type === 'VariableDeclarator' || node.parent.method === true) &&
-        (!node.parent.parent || !utils.isES5Component(node.parent.parent))
-      );
-
-      if (
-        namedObjectAssignment || namedObjectDeclaration ||
-        namedClass ||
-        namedFunctionDeclaration || namedFunctionExpression
-      ) {
-        return true;
-      }
-      return false;
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      ClassProperty(node) {
-        if (!propsUtil.isDisplayNameDeclaration(node)) {
-          return;
-        }
-        markDisplayNameAsDeclared(node);
-      },
-
-      MemberExpression(node) {
-        if (!propsUtil.isDisplayNameDeclaration(node.property)) {
-          return;
-        }
-        const component = utils.getRelatedComponent(node);
-        if (!component) {
-          return;
-        }
-        markDisplayNameAsDeclared(component.node);
-      },
-
-      FunctionExpression(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          return;
-        }
-        if (components.get(node)) {
-          markDisplayNameAsDeclared(node);
-        }
-      },
-
-      FunctionDeclaration(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          return;
-        }
-        if (components.get(node)) {
-          markDisplayNameAsDeclared(node);
-        }
-      },
-
-      ArrowFunctionExpression(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          return;
-        }
-        if (components.get(node)) {
-          markDisplayNameAsDeclared(node);
-        }
-      },
-
-      MethodDefinition(node) {
-        if (!propsUtil.isDisplayNameDeclaration(node.key)) {
-          return;
-        }
-        markDisplayNameAsDeclared(node);
-      },
-
-      ClassExpression(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          return;
-        }
-        markDisplayNameAsDeclared(node);
-      },
-
-      ClassDeclaration(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          return;
-        }
-        markDisplayNameAsDeclared(node);
-      },
-
-      ObjectExpression(node) {
-        if (ignoreTranspilerName || !hasTranspilerName(node)) {
-          // Search for the displayName declaration
-          node.properties.forEach((property) => {
-            if (!property.key || !propsUtil.isDisplayNameDeclaration(property.key)) {
-              return;
-            }
-            markDisplayNameAsDeclared(node);
-          });
-          return;
-        }
-        markDisplayNameAsDeclared(node);
-      },
-
-      CallExpression(node) {
-        if (!utils.isPragmaComponentWrapper(node)) {
-          return;
-        }
-
-        if (node.arguments.length > 0 && astUtil.isFunctionLikeExpression(node.arguments[0])) {
-          // Skip over React.forwardRef declarations that are embeded within
-          // a React.memo i.e. React.memo(React.forwardRef(/* ... */))
-          // This means that we raise a single error for the call to React.memo
-          // instead of one for React.memo and one for React.forwardRef
-          const isWrappedInAnotherPragma = utils.getPragmaComponentWrapper(node);
-
-          if (
-            !isWrappedInAnotherPragma &&
-            (ignoreTranspilerName || !hasTranspilerName(node.arguments[0]))
-          ) {
-            return;
-          }
-
-          if (components.get(node)) {
-            markDisplayNameAsDeclared(node);
-          }
-        }
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-        // Report missing display name for all components
-        Object.keys(list).filter(component => !list[component].hasDisplayName).forEach((component) => {
-          reportMissingDisplayName(list[component]);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/forbid-component-props.js b/node_modules/eslint-plugin-react/lib/rules/forbid-component-props.js
deleted file mode 100644
index 6c11687..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/forbid-component-props.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * @fileoverview Forbid certain props on components
- * @author Joe Lencioni
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = ['className', 'style'];
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid certain props on components',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('forbid-component-props')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        forbid: {
-          type: 'array',
-          items: {
-            oneOf: [{
-              type: 'string'
-            }, {
-              type: 'object',
-              properties: {
-                propName: {
-                  type: 'string'
-                },
-                allowedFor: {
-                  type: 'array',
-                  uniqueItems: true,
-                  items: {
-                    type: 'string'
-                  }
-                }
-              }
-            }]
-          }
-        }
-      }
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const forbid = new Map((configuration.forbid || DEFAULTS).map((value) => {
-      const propName = typeof value === 'string' ? value : value.propName;
-      const whitelist = typeof value === 'string' ? [] : (value.allowedFor || []);
-      return [propName, whitelist];
-    }));
-
-    function isForbidden(prop, tagName) {
-      const whitelist = forbid.get(prop);
-      // if the tagName is undefined (`<this.something>`), we assume it's a forbidden element
-      return typeof whitelist !== 'undefined' && (typeof tagName === 'undefined' || whitelist.indexOf(tagName) === -1);
-    }
-
-    return {
-      JSXAttribute(node) {
-        const tag = node.parent.name.name;
-        if (tag && tag[0] !== tag[0].toUpperCase()) {
-          // This is a DOM node, not a Component, so exit.
-          return;
-        }
-
-        const prop = node.name.name;
-
-        if (!isForbidden(prop, tag)) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: `Prop \`${prop}\` is forbidden on Components`
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/forbid-dom-props.js b/node_modules/eslint-plugin-react/lib/rules/forbid-dom-props.js
deleted file mode 100644
index 08853a4..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/forbid-dom-props.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @fileoverview Forbid certain props on DOM Nodes
- * @author David Vázquez
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = [];
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid certain props on DOM Nodes',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('forbid-dom-props')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        forbid: {
-          type: 'array',
-          items: {
-            type: 'string',
-            minLength: 1
-          },
-          uniqueItems: true
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function isForbidden(prop) {
-      const configuration = context.options[0] || {};
-
-      const forbid = configuration.forbid || DEFAULTS;
-      return forbid.indexOf(prop) >= 0;
-    }
-
-    return {
-      JSXAttribute(node) {
-        const tag = node.parent.name.name;
-        if (!(tag && tag[0] !== tag[0].toUpperCase())) {
-          // This is a Component, not  a DOM node, so exit.
-          return;
-        }
-
-        const prop = node.name.name;
-
-        if (!isForbidden(prop)) {
-          return;
-        }
-
-        context.report({
-          node,
-          message: `Prop \`${prop}\` is forbidden on DOM Nodes`
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/forbid-elements.js b/node_modules/eslint-plugin-react/lib/rules/forbid-elements.js
deleted file mode 100644
index bb00517..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/forbid-elements.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * @fileoverview Forbid certain elements
- * @author Kenneth Chung
- */
-
-'use strict';
-
-const has = require('has');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid certain elements',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('forbid-elements')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        forbid: {
-          type: 'array',
-          items: {
-            anyOf: [
-              {type: 'string'},
-              {
-                type: 'object',
-                properties: {
-                  element: {type: 'string'},
-                  message: {type: 'string'}
-                },
-                required: ['element'],
-                additionalProperties: false
-              }
-            ]
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const forbidConfiguration = configuration.forbid || [];
-
-    const indexedForbidConfigs = {};
-
-    forbidConfiguration.forEach((item) => {
-      if (typeof item === 'string') {
-        indexedForbidConfigs[item] = {element: item};
-      } else {
-        indexedForbidConfigs[item.element] = item;
-      }
-    });
-
-    function errorMessageForElement(name) {
-      const message = `<${name}> is forbidden`;
-      const additionalMessage = indexedForbidConfigs[name].message;
-
-      if (additionalMessage) {
-        return `${message}, ${additionalMessage}`;
-      }
-
-      return message;
-    }
-
-    function isValidCreateElement(node) {
-      return node.callee &&
-        node.callee.type === 'MemberExpression' &&
-        node.callee.object.name === 'React' &&
-        node.callee.property.name === 'createElement' &&
-        node.arguments.length > 0;
-    }
-
-    function reportIfForbidden(element, node) {
-      if (has(indexedForbidConfigs, element)) {
-        context.report({
-          node,
-          message: errorMessageForElement(element)
-        });
-      }
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        reportIfForbidden(context.getSourceCode().getText(node.name), node.name);
-      },
-
-      CallExpression(node) {
-        if (!isValidCreateElement(node)) {
-          return;
-        }
-
-        const argument = node.arguments[0];
-        const argType = argument.type;
-
-        if (argType === 'Identifier' && /^[A-Z_]/.test(argument.name)) {
-          reportIfForbidden(argument.name, argument);
-        } else if (argType === 'Literal' && /^[a-z][^.]*$/.test(argument.value)) {
-          reportIfForbidden(argument.value, argument);
-        } else if (argType === 'MemberExpression') {
-          reportIfForbidden(context.getSourceCode().getText(argument), argument);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/forbid-foreign-prop-types.js b/node_modules/eslint-plugin-react/lib/rules/forbid-foreign-prop-types.js
deleted file mode 100644
index ad23d50..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/forbid-foreign-prop-types.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * @fileoverview Forbid using another component's propTypes
- * @author Ian Christian Myers
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const ast = require('../util/ast');
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid using another component\'s propTypes',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('forbid-foreign-prop-types')
-    },
-
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          allowInPropTypes: {
-            type: 'boolean'
-          }
-        },
-        additionalProperties: false
-      }
-    ]
-  },
-
-  create(context) {
-    const config = context.options[0] || {};
-    const allowInPropTypes = config.allowInPropTypes || false;
-
-    // --------------------------------------------------------------------------
-    // Helpers
-    // --------------------------------------------------------------------------
-
-    function findParentAssignmentExpression(node) {
-      let parent = node.parent;
-
-      while (parent && parent.type !== 'Program') {
-        if (parent.type === 'AssignmentExpression') {
-          return parent;
-        }
-        parent = parent.parent;
-      }
-      return null;
-    }
-
-    function findParentClassProperty(node) {
-      let parent = node.parent;
-
-      while (parent && parent.type !== 'Program') {
-        if (parent.type === 'ClassProperty') {
-          return parent;
-        }
-        parent = parent.parent;
-      }
-      return null;
-    }
-
-    function isAllowedAssignment(node) {
-      if (!allowInPropTypes) {
-        return false;
-      }
-
-      const assignmentExpression = findParentAssignmentExpression(node);
-
-      if (
-        assignmentExpression &&
-        assignmentExpression.left &&
-        assignmentExpression.left.property &&
-        assignmentExpression.left.property.name === 'propTypes'
-      ) {
-        return true;
-      }
-
-      const classProperty = findParentClassProperty(node);
-
-      if (
-        classProperty &&
-        classProperty.key &&
-        classProperty.key.name === 'propTypes'
-      ) {
-        return true;
-      }
-      return false;
-    }
-
-    return {
-      MemberExpression(node) {
-        if (
-          node.property &&
-          (
-            !node.computed &&
-            node.property.type === 'Identifier' &&
-            node.property.name === 'propTypes' &&
-            !ast.isAssignmentLHS(node) &&
-            !isAllowedAssignment(node)
-          ) || (
-            (node.property.type === 'Literal' || node.property.type === 'JSXText') &&
-            node.property.value === 'propTypes' &&
-            !ast.isAssignmentLHS(node) &&
-            !isAllowedAssignment(node)
-          )
-        ) {
-          context.report({
-            node: node.property,
-            message: 'Using propTypes from another component is not safe because they may be removed in production builds'
-          });
-        }
-      },
-
-      ObjectPattern(node) {
-        const propTypesNode = node.properties.find(property => property.type === 'Property' && property.key.name === 'propTypes');
-
-        if (propTypesNode) {
-          context.report({
-            node: propTypesNode,
-            message: 'Using propTypes from another component is not safe because they may be removed in production builds'
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/forbid-prop-types.js b/node_modules/eslint-plugin-react/lib/rules/forbid-prop-types.js
deleted file mode 100644
index 04b61bf..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/forbid-prop-types.js
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * @fileoverview Forbid certain propTypes
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const propsUtil = require('../util/props');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-const propWrapperUtil = require('../util/propWrapper');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = ['any', 'array', 'object'];
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid certain propTypes',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('forbid-prop-types')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        forbid: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        },
-        checkContextTypes: {
-          type: 'boolean'
-        },
-        checkChildContextTypes: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: true
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const checkContextTypes = configuration.checkContextTypes || false;
-    const checkChildContextTypes = configuration.checkChildContextTypes || false;
-
-    function isForbidden(type) {
-      const forbid = configuration.forbid || DEFAULTS;
-      return forbid.indexOf(type) >= 0;
-    }
-
-    function shouldCheckContextTypes(node) {
-      if (checkContextTypes && propsUtil.isContextTypesDeclaration(node)) {
-        return true;
-      }
-      return false;
-    }
-
-    function shouldCheckChildContextTypes(node) {
-      if (checkChildContextTypes && propsUtil.isChildContextTypesDeclaration(node)) {
-        return true;
-      }
-      return false;
-    }
-
-    /**
-     * Checks if propTypes declarations are forbidden
-     * @param {Array} declarations The array of AST nodes being checked.
-     * @returns {void}
-     */
-    function checkProperties(declarations) {
-      declarations.forEach((declaration) => {
-        if (declaration.type !== 'Property') {
-          return;
-        }
-        let target;
-        let value = declaration.value;
-        if (
-          value.type === 'MemberExpression' &&
-          value.property &&
-          value.property.name &&
-          value.property.name === 'isRequired'
-        ) {
-          value = value.object;
-        }
-        if (
-          value.type === 'CallExpression' &&
-          value.callee.type === 'MemberExpression'
-        ) {
-          value = value.callee;
-        }
-        if (value.property) {
-          target = value.property.name;
-        } else if (value.type === 'Identifier') {
-          target = value.name;
-        }
-        if (isForbidden(target)) {
-          context.report({
-            node: declaration,
-            message: `Prop type \`${target}\` is forbidden`
-          });
-        }
-      });
-    }
-
-    function checkNode(node) {
-      switch (node && node.type) {
-        case 'ObjectExpression':
-          checkProperties(node.properties);
-          break;
-        case 'Identifier': {
-          const propTypesObject = variableUtil.findVariableByName(context, node.name);
-          if (propTypesObject && propTypesObject.properties) {
-            checkProperties(propTypesObject.properties);
-          }
-          break;
-        }
-        case 'CallExpression': {
-          const innerNode = node.arguments && node.arguments[0];
-          if (propWrapperUtil.isPropWrapperFunction(context, context.getSource(node.callee)) && innerNode) {
-            checkNode(innerNode);
-          }
-          break;
-        }
-        default:
-          break;
-      }
-    }
-
-    return {
-      ClassProperty(node) {
-        if (
-          !propsUtil.isPropTypesDeclaration(node) &&
-          !shouldCheckContextTypes(node) &&
-          !shouldCheckChildContextTypes(node)
-        ) {
-          return;
-        }
-        checkNode(node.value);
-      },
-
-      MemberExpression(node) {
-        if (
-          !propsUtil.isPropTypesDeclaration(node) &&
-          !shouldCheckContextTypes(node) &&
-          !shouldCheckChildContextTypes(node)
-        ) {
-          return;
-        }
-
-        checkNode(node.parent.right);
-      },
-
-      MethodDefinition(node) {
-        if (
-          !propsUtil.isPropTypesDeclaration(node) &&
-          !shouldCheckContextTypes(node) &&
-          !shouldCheckChildContextTypes(node)
-        ) {
-          return;
-        }
-
-        const returnStatement = astUtil.findReturnStatement(node);
-
-        if (returnStatement && returnStatement.argument) {
-          checkNode(returnStatement.argument);
-        }
-      },
-
-      ObjectExpression(node) {
-        node.properties.forEach((property) => {
-          if (!property.key) {
-            return;
-          }
-
-          if (
-            !propsUtil.isPropTypesDeclaration(property) &&
-            !shouldCheckContextTypes(property) &&
-            !shouldCheckChildContextTypes(property)
-          ) {
-            return;
-          }
-          if (property.value.type === 'ObjectExpression') {
-            checkProperties(property.value.properties);
-          }
-        });
-      }
-
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/function-component-definition.js b/node_modules/eslint-plugin-react/lib/rules/function-component-definition.js
deleted file mode 100644
index e582dc4..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/function-component-definition.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * @fileoverview Standardize the way function component get defined
- * @author Stefan Wullems
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function buildFunction(template, parts) {
-  return Object.keys(parts)
-    .reduce((acc, key) => acc.replace(`{${key}}`, parts[key] || ''), template);
-}
-
-const NAMED_FUNCTION_TEMPLATES = {
-  'function-declaration': 'function {name}{typeParams}({params}){returnType} {body}',
-  'arrow-function': 'var {name}{typeAnnotation} = {typeParams}({params}){returnType} => {body}',
-  'function-expression': 'var {name}{typeAnnotation} = function{typeParams}({params}){returnType} {body}'
-};
-
-const UNNAMED_FUNCTION_TEMPLATES = {
-  'function-expression': 'function{typeParams}({params}){returnType} {body}',
-  'arrow-function': '{typeParams}({params}){returnType} => {body}'
-};
-
-const ERROR_MESSAGES = {
-  'function-declaration': 'Function component is not a function declaration',
-  'function-expression': 'Function component is not a function expression',
-  'arrow-function': 'Function component is not an arrow function'
-};
-
-function hasOneUnconstrainedTypeParam(node) {
-  if (node.typeParameters) {
-    return node.typeParameters.params.length === 1 && !node.typeParameters.params[0].constraint;
-  }
-
-  return false;
-}
-
-function hasName(node) {
-  return node.type === 'FunctionDeclaration' || node.parent.type === 'VariableDeclarator';
-}
-
-function getNodeText(prop, source) {
-  if (!prop) return null;
-  return source.slice(prop.range[0], prop.range[1]);
-}
-
-function getName(node) {
-  if (node.type === 'FunctionDeclaration') {
-    return node.id.name;
-  }
-
-  if (node.type === 'ArrowFunctionExpression' || node.type === 'FunctionExpression') {
-    return hasName(node) && node.parent.id.name;
-  }
-}
-
-function getParams(node, source) {
-  if (node.params.length === 0) return null;
-  return source.slice(node.params[0].range[0], node.params[node.params.length - 1].range[1]);
-}
-
-function getBody(node, source) {
-  const range = node.body.range;
-
-  if (node.body.type !== 'BlockStatement') {
-    return [
-      '{',
-      `  return ${source.slice(range[0], range[1])}`,
-      '}'
-    ].join('\n');
-  }
-
-  return source.slice(range[0], range[1]);
-}
-
-function getTypeAnnotation(node, source) {
-  if (!hasName(node) || node.type === 'FunctionDeclaration') return;
-
-  if (node.type === 'ArrowFunctionExpression' || node.type === 'FunctionExpression') {
-    return getNodeText(node.parent.id.typeAnnotation, source);
-  }
-}
-
-function isUnfixableBecauseOfExport(node) {
-  return node.type === 'FunctionDeclaration' && node.parent && node.parent.type === 'ExportDefaultDeclaration';
-}
-
-function isFunctionExpressionWithName(node) {
-  return node.type === 'FunctionExpression' && node.id && node.id.name;
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Standardize the way function component get defined',
-      category: 'Stylistic issues',
-      recommended: false,
-      url: docsUrl('function-component-definition')
-    },
-    fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      properties: {
-        namedComponents: {
-          enum: ['function-declaration', 'arrow-function', 'function-expression']
-        },
-        unnamedComponents: {
-          enum: ['arrow-function', 'function-expression']
-        }
-      }
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const configuration = context.options[0] || {};
-
-    const namedConfig = configuration.namedComponents || 'function-declaration';
-    const unnamedConfig = configuration.unnamedComponents || 'function-expression';
-
-    function getFixer(node, options) {
-      const sourceCode = context.getSourceCode();
-      const source = sourceCode.getText();
-
-      const typeAnnotation = getTypeAnnotation(node, source);
-
-      if (options.type === 'function-declaration' && typeAnnotation) return;
-      if (options.type === 'arrow-function' && hasOneUnconstrainedTypeParam(node)) return;
-      if (isUnfixableBecauseOfExport(node)) return;
-      if (isFunctionExpressionWithName(node)) return;
-
-      return fixer => fixer.replaceTextRange(options.range, buildFunction(options.template, {
-        typeAnnotation,
-        typeParams: getNodeText(node.typeParameters, source),
-        params: getParams(node, source),
-        returnType: getNodeText(node.returnType, source),
-        body: getBody(node, source),
-        name: getName(node)
-      }));
-    }
-
-    function report(node, options) {
-      context.report({
-        node,
-        message: options.message,
-        fix: getFixer(node, options.fixerOptions)
-      });
-    }
-
-    function validate(node, functionType) {
-      if (!components.get(node)) return;
-      if (hasName(node) && namedConfig !== functionType) {
-        report(node, {
-          message: ERROR_MESSAGES[namedConfig],
-          fixerOptions: {
-            type: namedConfig,
-            template: NAMED_FUNCTION_TEMPLATES[namedConfig],
-            range: node.type === 'FunctionDeclaration' ?
-              node.range :
-              node.parent.parent.range
-          }
-        });
-      }
-      if (!hasName(node) && unnamedConfig !== functionType) {
-        report(node, {
-          message: ERROR_MESSAGES[unnamedConfig],
-          fixerOptions: {
-            type: unnamedConfig,
-            template: UNNAMED_FUNCTION_TEMPLATES[unnamedConfig],
-            range: node.range
-          }
-        });
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      FunctionDeclaration(node) { validate(node, 'function-declaration'); },
-      ArrowFunctionExpression(node) { validate(node, 'arrow-function'); },
-      FunctionExpression(node) { validate(node, 'function-expression'); }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-boolean-value.js b/node_modules/eslint-plugin-react/lib/rules/jsx-boolean-value.js
deleted file mode 100644
index 50768b5..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-boolean-value.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- * @fileoverview Enforce boolean attributes notation in JSX
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const exceptionsSchema = {
-  type: 'array',
-  items: {type: 'string', minLength: 1},
-  uniqueItems: true
-};
-
-const ALWAYS = 'always';
-const NEVER = 'never';
-
-const errorData = new WeakMap();
-function getErrorData(exceptions) {
-  if (!errorData.has(exceptions)) {
-    const exceptionProps = Array.from(exceptions, name => `\`${name}\``).join(', ');
-    const exceptionsMessage = exceptions.size > 0 ? ` for the following props: ${exceptionProps}` : '';
-    errorData.set(exceptions, {exceptionsMessage});
-  }
-  return errorData.get(exceptions);
-}
-
-function isAlways(configuration, exceptions, propName) {
-  const isException = exceptions.has(propName);
-  if (configuration === ALWAYS) {
-    return !isException;
-  }
-  return isException;
-}
-
-function isNever(configuration, exceptions, propName) {
-  const isException = exceptions.has(propName);
-  if (configuration === NEVER) {
-    return !isException;
-  }
-  return isException;
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce boolean attributes notation in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-boolean-value')
-    },
-    fixable: 'code',
-
-    schema: {
-      anyOf: [{
-        type: 'array',
-        items: [{enum: [ALWAYS, NEVER]}],
-        additionalItems: false
-      }, {
-        type: 'array',
-        items: [{
-          enum: [ALWAYS]
-        }, {
-          type: 'object',
-          additionalProperties: false,
-          properties: {
-            [NEVER]: exceptionsSchema
-          }
-        }],
-        additionalItems: false
-      }, {
-        type: 'array',
-        items: [{
-          enum: [NEVER]
-        }, {
-          type: 'object',
-          additionalProperties: false,
-          properties: {
-            [ALWAYS]: exceptionsSchema
-          }
-        }],
-        additionalItems: false
-      }]
-    }
-  },
-
-  create(context) {
-    const configuration = context.options[0] || NEVER;
-    const configObject = context.options[1] || {};
-    const exceptions = new Set((configuration === ALWAYS ? configObject[NEVER] : configObject[ALWAYS]) || []);
-
-    const NEVER_MESSAGE = 'Value must be omitted for boolean attributes{{exceptionsMessage}}';
-    const ALWAYS_MESSAGE = 'Value must be set for boolean attributes{{exceptionsMessage}}';
-
-    return {
-      JSXAttribute(node) {
-        const propName = node.name && node.name.name;
-        const value = node.value;
-
-        if (isAlways(configuration, exceptions, propName) && value === null) {
-          const data = getErrorData(exceptions);
-          context.report({
-            node,
-            message: ALWAYS_MESSAGE,
-            data,
-            fix(fixer) {
-              return fixer.insertTextAfter(node, '={true}');
-            }
-          });
-        }
-        if (isNever(configuration, exceptions, propName) && value && value.type === 'JSXExpressionContainer' && value.expression.value === true) {
-          const data = getErrorData(exceptions);
-          context.report({
-            node,
-            message: NEVER_MESSAGE,
-            data,
-            fix(fixer) {
-              return fixer.removeRange([node.name.range[1], value.range[1]]);
-            }
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-child-element-spacing.js b/node_modules/eslint-plugin-react/lib/rules/jsx-child-element-spacing.js
deleted file mode 100644
index 6c78257..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-child-element-spacing.js
+++ /dev/null
@@ -1,109 +0,0 @@
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// This list is taken from https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements
-const INLINE_ELEMENTS = new Set([
-  'a',
-  'abbr',
-  'acronym',
-  'b',
-  'bdo',
-  'big',
-  'br',
-  'button',
-  'cite',
-  'code',
-  'dfn',
-  'em',
-  'i',
-  'img',
-  'input',
-  'kbd',
-  'label',
-  'map',
-  'object',
-  'q',
-  'samp',
-  'script',
-  'select',
-  'small',
-  'span',
-  'strong',
-  'sub',
-  'sup',
-  'textarea',
-  'tt',
-  'var'
-]);
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Ensures inline tags are not rendered without spaces between them',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-child-element-spacing')
-    },
-    fixable: null,
-    schema: [
-      {
-        type: 'object',
-        properties: {},
-        default: {},
-        additionalProperties: false
-      }
-    ]
-  },
-  create(context) {
-    const TEXT_FOLLOWING_ELEMENT_PATTERN = /^\s*\n\s*\S/;
-    const TEXT_PRECEDING_ELEMENT_PATTERN = /\S\s*\n\s*$/;
-
-    const elementName = node => (
-      node.openingElement &&
-      node.openingElement.name &&
-      node.openingElement.name.type === 'JSXIdentifier' &&
-      node.openingElement.name.name
-    );
-
-    const isInlineElement = node => (
-      node.type === 'JSXElement' &&
-      INLINE_ELEMENTS.has(elementName(node))
-    );
-
-    const handleJSX = (node) => {
-      let lastChild = null;
-      let child = null;
-      (node.children.concat([null])).forEach((nextChild) => {
-        if (
-          (lastChild || nextChild) &&
-          (!lastChild || isInlineElement(lastChild)) &&
-          (child && (child.type === 'Literal' || child.type === 'JSXText')) &&
-          (!nextChild || isInlineElement(nextChild)) &&
-          true
-        ) {
-          if (lastChild && child.value.match(TEXT_FOLLOWING_ELEMENT_PATTERN)) {
-            context.report({
-              node: lastChild,
-              loc: lastChild.loc.end,
-              message: `Ambiguous spacing after previous element ${elementName(lastChild)}`
-            });
-          } else if (nextChild && child.value.match(TEXT_PRECEDING_ELEMENT_PATTERN)) {
-            context.report({
-              node: nextChild,
-              loc: nextChild.loc.start,
-              message: `Ambiguous spacing before next element ${elementName(nextChild)}`
-            });
-          }
-        }
-        lastChild = child;
-        child = nextChild;
-      });
-    };
-
-    return {
-      JSXElement: handleJSX,
-      JSXFragment: handleJSX
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-closing-bracket-location.js b/node_modules/eslint-plugin-react/lib/rules/jsx-closing-bracket-location.js
deleted file mode 100644
index e0863f9..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-closing-bracket-location.js
+++ /dev/null
@@ -1,290 +0,0 @@
-/**
- * @fileoverview Validate closing bracket location in JSX
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const has = require('has');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate closing bracket location in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-closing-bracket-location')
-    },
-    fixable: 'code',
-
-    schema: [{
-      oneOf: [
-        {
-          enum: ['after-props', 'props-aligned', 'tag-aligned', 'line-aligned']
-        },
-        {
-          type: 'object',
-          properties: {
-            location: {
-              enum: ['after-props', 'props-aligned', 'tag-aligned', 'line-aligned']
-            }
-          },
-          additionalProperties: false
-        }, {
-          type: 'object',
-          properties: {
-            nonEmpty: {
-              enum: ['after-props', 'props-aligned', 'tag-aligned', 'line-aligned', false]
-            },
-            selfClosing: {
-              enum: ['after-props', 'props-aligned', 'tag-aligned', 'line-aligned', false]
-            }
-          },
-          additionalProperties: false
-        }
-      ]
-    }]
-  },
-
-  create(context) {
-    const MESSAGE = 'The closing bracket must be {{location}}{{details}}';
-    const MESSAGE_LOCATION = {
-      'after-props': 'placed after the last prop',
-      'after-tag': 'placed after the opening tag',
-      'props-aligned': 'aligned with the last prop',
-      'tag-aligned': 'aligned with the opening tag',
-      'line-aligned': 'aligned with the line containing the opening tag'
-    };
-    const DEFAULT_LOCATION = 'tag-aligned';
-
-    const config = context.options[0];
-    const options = {
-      nonEmpty: DEFAULT_LOCATION,
-      selfClosing: DEFAULT_LOCATION
-    };
-
-    if (typeof config === 'string') {
-      // simple shorthand [1, 'something']
-      options.nonEmpty = config;
-      options.selfClosing = config;
-    } else if (typeof config === 'object') {
-      // [1, {location: 'something'}] (back-compat)
-      if (has(config, 'location')) {
-        options.nonEmpty = config.location;
-        options.selfClosing = config.location;
-      }
-      // [1, {nonEmpty: 'something'}]
-      if (has(config, 'nonEmpty')) {
-        options.nonEmpty = config.nonEmpty;
-      }
-      // [1, {selfClosing: 'something'}]
-      if (has(config, 'selfClosing')) {
-        options.selfClosing = config.selfClosing;
-      }
-    }
-
-    /**
-     * Get expected location for the closing bracket
-     * @param {Object} tokens Locations of the opening bracket, closing bracket and last prop
-     * @return {String} Expected location for the closing bracket
-     */
-    function getExpectedLocation(tokens) {
-      let location;
-      // Is always after the opening tag if there is no props
-      if (typeof tokens.lastProp === 'undefined') {
-        location = 'after-tag';
-      // Is always after the last prop if this one is on the same line as the opening bracket
-      } else if (tokens.opening.line === tokens.lastProp.lastLine) {
-        location = 'after-props';
-      // Else use configuration dependent on selfClosing property
-      } else {
-        location = tokens.selfClosing ? options.selfClosing : options.nonEmpty;
-      }
-      return location;
-    }
-
-    /**
-     * Get the correct 0-indexed column for the closing bracket, given the
-     * expected location.
-     * @param {Object} tokens Locations of the opening bracket, closing bracket and last prop
-     * @param {String} expectedLocation Expected location for the closing bracket
-     * @return {?Number} The correct column for the closing bracket, or null
-     */
-    function getCorrectColumn(tokens, expectedLocation) {
-      switch (expectedLocation) {
-        case 'props-aligned':
-          return tokens.lastProp.column;
-        case 'tag-aligned':
-          return tokens.opening.column;
-        case 'line-aligned':
-          return tokens.openingStartOfLine.column;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Check if the closing bracket is correctly located
-     * @param {Object} tokens Locations of the opening bracket, closing bracket and last prop
-     * @param {String} expectedLocation Expected location for the closing bracket
-     * @return {Boolean} True if the closing bracket is correctly located, false if not
-     */
-    function hasCorrectLocation(tokens, expectedLocation) {
-      switch (expectedLocation) {
-        case 'after-tag':
-          return tokens.tag.line === tokens.closing.line;
-        case 'after-props':
-          return tokens.lastProp.lastLine === tokens.closing.line;
-        case 'props-aligned':
-        case 'tag-aligned':
-        case 'line-aligned': {
-          const correctColumn = getCorrectColumn(tokens, expectedLocation);
-          return correctColumn === tokens.closing.column;
-        }
-        default:
-          return true;
-      }
-    }
-
-    /**
-     * Get the characters used for indentation on the line to be matched
-     * @param {Object} tokens Locations of the opening bracket, closing bracket and last prop
-     * @param {String} expectedLocation Expected location for the closing bracket
-     * @param {Number} [correctColumn] Expected column for the closing bracket. Default to 0
-     * @return {String} The characters used for indentation
-     */
-    function getIndentation(tokens, expectedLocation, correctColumn) {
-      correctColumn = correctColumn || 0;
-      let indentation;
-      let spaces = [];
-      switch (expectedLocation) {
-        case 'props-aligned':
-          indentation = /^\s*/.exec(context.getSourceCode().lines[tokens.lastProp.firstLine - 1])[0];
-          break;
-        case 'tag-aligned':
-        case 'line-aligned':
-          indentation = /^\s*/.exec(context.getSourceCode().lines[tokens.opening.line - 1])[0];
-          break;
-        default:
-          indentation = '';
-      }
-      if (indentation.length + 1 < correctColumn) {
-        // Non-whitespace characters were included in the column offset
-        spaces = new Array(+correctColumn + 1 - indentation.length);
-      }
-      return indentation + spaces.join(' ');
-    }
-
-    /**
-     * Get the locations of the opening bracket, closing bracket, last prop, and
-     * start of opening line.
-     * @param {ASTNode} node The node to check
-     * @return {Object} Locations of the opening bracket, closing bracket, last
-     * prop and start of opening line.
-     */
-    function getTokensLocations(node) {
-      const sourceCode = context.getSourceCode();
-      const opening = sourceCode.getFirstToken(node).loc.start;
-      const closing = sourceCode.getLastTokens(node, node.selfClosing ? 2 : 1)[0].loc.start;
-      const tag = sourceCode.getFirstToken(node.name).loc.start;
-      let lastProp;
-      if (node.attributes.length) {
-        lastProp = node.attributes[node.attributes.length - 1];
-        lastProp = {
-          column: sourceCode.getFirstToken(lastProp).loc.start.column,
-          firstLine: sourceCode.getFirstToken(lastProp).loc.start.line,
-          lastLine: sourceCode.getLastToken(lastProp).loc.end.line
-        };
-      }
-      const openingLine = sourceCode.lines[opening.line - 1];
-      const openingStartOfLine = {
-        column: /^\s*/.exec(openingLine)[0].length,
-        line: opening.line
-      };
-      return {
-        tag,
-        opening,
-        closing,
-        lastProp,
-        selfClosing: node.selfClosing,
-        openingStartOfLine
-      };
-    }
-
-    /**
-     * Get an unique ID for a given JSXOpeningElement
-     *
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {String} Unique ID (based on its range)
-     */
-    function getOpeningElementId(node) {
-      return node.range.join(':');
-    }
-
-    const lastAttributeNode = {};
-
-    return {
-      JSXAttribute(node) {
-        lastAttributeNode[getOpeningElementId(node.parent)] = node;
-      },
-
-      JSXSpreadAttribute(node) {
-        lastAttributeNode[getOpeningElementId(node.parent)] = node;
-      },
-
-      'JSXOpeningElement:exit'(node) {
-        const attributeNode = lastAttributeNode[getOpeningElementId(node)];
-        const cachedLastAttributeEndPos = attributeNode ? attributeNode.range[1] : null;
-        let expectedNextLine;
-        const tokens = getTokensLocations(node);
-        const expectedLocation = getExpectedLocation(tokens);
-
-        if (hasCorrectLocation(tokens, expectedLocation)) {
-          return;
-        }
-
-        const data = {location: MESSAGE_LOCATION[expectedLocation], details: ''};
-        const correctColumn = getCorrectColumn(tokens, expectedLocation);
-
-        if (correctColumn !== null) {
-          expectedNextLine = tokens.lastProp &&
-            (tokens.lastProp.lastLine === tokens.closing.line);
-          data.details = ` (expected column ${correctColumn + 1}${expectedNextLine ? ' on the next line)' : ')'}`;
-        }
-
-        context.report({
-          node,
-          loc: tokens.closing,
-          message: MESSAGE,
-          data,
-          fix(fixer) {
-            const closingTag = tokens.selfClosing ? '/>' : '>';
-            switch (expectedLocation) {
-              case 'after-tag':
-                if (cachedLastAttributeEndPos) {
-                  return fixer.replaceTextRange([cachedLastAttributeEndPos, node.range[1]],
-                    (expectedNextLine ? '\n' : '') + closingTag);
-                }
-                return fixer.replaceTextRange([node.name.range[1], node.range[1]],
-                  (expectedNextLine ? '\n' : ' ') + closingTag);
-              case 'after-props':
-                return fixer.replaceTextRange([cachedLastAttributeEndPos, node.range[1]],
-                  (expectedNextLine ? '\n' : '') + closingTag);
-              case 'props-aligned':
-              case 'tag-aligned':
-              case 'line-aligned':
-                return fixer.replaceTextRange([cachedLastAttributeEndPos, node.range[1]],
-                  `\n${getIndentation(tokens, expectedLocation, correctColumn)}${closingTag}`);
-              default:
-                return true;
-            }
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-closing-tag-location.js b/node_modules/eslint-plugin-react/lib/rules/jsx-closing-tag-location.js
deleted file mode 100644
index d4bf10e..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-closing-tag-location.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @fileoverview Validate closing tag location in JSX
- * @author Ross Solomon
- */
-
-'use strict';
-
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate closing tag location for multiline JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-closing-tag-location')
-    },
-    fixable: 'whitespace'
-  },
-
-  create(context) {
-    function handleClosingElement(node) {
-      if (!node.parent) {
-        return;
-      }
-
-      const opening = node.parent.openingElement || node.parent.openingFragment;
-      if (opening.loc.start.line === node.loc.start.line) {
-        return;
-      }
-
-      if (opening.loc.start.column === node.loc.start.column) {
-        return;
-      }
-
-      let message;
-      if (!astUtil.isNodeFirstInLine(context, node)) {
-        message = 'Closing tag of a multiline JSX expression must be on its own line.';
-      } else {
-        message = 'Expected closing tag to match indentation of opening.';
-      }
-
-      context.report({
-        node,
-        loc: node.loc,
-        message,
-        fix(fixer) {
-          const indent = Array(opening.loc.start.column + 1).join(' ');
-          if (astUtil.isNodeFirstInLine(context, node)) {
-            return fixer.replaceTextRange(
-              [node.range[0] - node.loc.start.column, node.range[0]],
-              indent
-            );
-          }
-
-          return fixer.insertTextBefore(node, `\n${indent}`);
-        }
-      });
-    }
-
-    return {
-      JSXClosingElement: handleClosingElement,
-      JSXClosingFragment: handleClosingElement
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-brace-presence.js b/node_modules/eslint-plugin-react/lib/rules/jsx-curly-brace-presence.js
deleted file mode 100755
index deeda0b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-brace-presence.js
+++ /dev/null
@@ -1,380 +0,0 @@
-/**
- * @fileoverview Enforce curly braces or disallow unnecessary curly brace in JSX
- * @author Jacky Ho
- * @author Simon Lydell
- */
-
-'use strict';
-
-const arrayIncludes = require('array-includes');
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const OPTION_ALWAYS = 'always';
-const OPTION_NEVER = 'never';
-const OPTION_IGNORE = 'ignore';
-
-const OPTION_VALUES = [
-  OPTION_ALWAYS,
-  OPTION_NEVER,
-  OPTION_IGNORE
-];
-const DEFAULT_CONFIG = {props: OPTION_NEVER, children: OPTION_NEVER};
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description:
-        'Disallow unnecessary JSX expressions when literals alone are sufficient ' +
-          'or enfore JSX expressions on literals in JSX children or attributes',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-curly-brace-presence')
-    },
-    fixable: 'code',
-
-    schema: [
-      {
-        oneOf: [
-          {
-            type: 'object',
-            properties: {
-              props: {enum: OPTION_VALUES},
-              children: {enum: OPTION_VALUES}
-            },
-            additionalProperties: false
-          },
-          {
-            enum: OPTION_VALUES
-          }
-        ]
-      }
-    ]
-  },
-
-  create(context) {
-    const HTML_ENTITY_REGEX = () => /&[A-Za-z\d#]+;/g;
-    const ruleOptions = context.options[0];
-    const userConfig = typeof ruleOptions === 'string' ?
-      {props: ruleOptions, children: ruleOptions} :
-      Object.assign({}, DEFAULT_CONFIG, ruleOptions);
-
-    function containsLineTerminators(rawStringValue) {
-      return /[\n\r\u2028\u2029]/.test(rawStringValue);
-    }
-
-    function containsBackslash(rawStringValue) {
-      return arrayIncludes(rawStringValue, '\\');
-    }
-
-    function containsHTMLEntity(rawStringValue) {
-      return HTML_ENTITY_REGEX().test(rawStringValue);
-    }
-
-    function containsOnlyHtmlEntities(rawStringValue) {
-      return rawStringValue.replace(HTML_ENTITY_REGEX(), '').trim() === '';
-    }
-
-    function containsDisallowedJSXTextChars(rawStringValue) {
-      return /[{<>}]/.test(rawStringValue);
-    }
-
-    function containsQuoteCharacters(value) {
-      return /['"]/.test(value);
-    }
-
-    function escapeDoubleQuotes(rawStringValue) {
-      return rawStringValue.replace(/\\"/g, '"').replace(/"/g, '\\"');
-    }
-
-    function escapeBackslashes(rawStringValue) {
-      return rawStringValue.replace(/\\/g, '\\\\');
-    }
-
-    function needToEscapeCharacterForJSX(raw) {
-      return (
-        containsBackslash(raw) ||
-        containsHTMLEntity(raw) ||
-        containsDisallowedJSXTextChars(raw)
-      );
-    }
-
-    function containsWhitespaceExpression(child) {
-      if (child.type === 'JSXExpressionContainer') {
-        const value = child.expression.value;
-        return value ? jsxUtil.isWhiteSpaces(value) : false;
-      }
-      return false;
-    }
-
-    function isLineBreak(text) {
-      return containsLineTerminators(text) && text.trim() === '';
-    }
-
-    function wrapNonHTMLEntities(text) {
-      const HTML_ENTITY = '<HTML_ENTITY>';
-      const withCurlyBraces = text.split(HTML_ENTITY_REGEX()).map(word => (
-        word === '' ? '' : `{${JSON.stringify(word)}}`
-      )).join(HTML_ENTITY);
-
-      const htmlEntities = text.match(HTML_ENTITY_REGEX());
-      return htmlEntities.reduce((acc, htmlEntitiy) => (
-        acc.replace(HTML_ENTITY, htmlEntitiy)
-      ), withCurlyBraces);
-    }
-
-    function wrapWithCurlyBraces(rawText) {
-      if (!containsLineTerminators(rawText)) {
-        return `{${JSON.stringify(rawText)}}`;
-      }
-
-      return rawText.split('\n').map((line) => {
-        if (line.trim() === '') {
-          return line;
-        }
-        const firstCharIndex = line.search(/[^\s]/);
-        const leftWhitespace = line.slice(0, firstCharIndex);
-        const text = line.slice(firstCharIndex);
-
-        if (containsHTMLEntity(line)) {
-          return `${leftWhitespace}${wrapNonHTMLEntities(text)}`;
-        }
-        return `${leftWhitespace}{${JSON.stringify(text)}}`;
-      }).join('\n');
-    }
-
-    /**
-     * Report and fix an unnecessary curly brace violation on a node
-     * @param {ASTNode} JSXExpressionNode - The AST node with an unnecessary JSX expression
-     */
-    function reportUnnecessaryCurly(JSXExpressionNode) {
-      context.report({
-        node: JSXExpressionNode,
-        message: 'Curly braces are unnecessary here.',
-        fix(fixer) {
-          const expression = JSXExpressionNode.expression;
-          const expressionType = expression.type;
-          const parentType = JSXExpressionNode.parent.type;
-
-          let textToReplace;
-          if (parentType === 'JSXAttribute') {
-            textToReplace = `"${expressionType === 'TemplateLiteral' ?
-              expression.quasis[0].value.raw :
-              expression.raw.substring(1, expression.raw.length - 1)
-            }"`;
-          } else if (jsxUtil.isJSX(expression)) {
-            const sourceCode = context.getSourceCode();
-
-            textToReplace = sourceCode.getText(expression);
-          } else {
-            textToReplace = expressionType === 'TemplateLiteral' ?
-              expression.quasis[0].value.cooked : expression.value;
-          }
-
-          return fixer.replaceText(JSXExpressionNode, textToReplace);
-        }
-      });
-    }
-
-    function reportMissingCurly(literalNode) {
-      context.report({
-        node: literalNode,
-        message: 'Need to wrap this literal in a JSX expression.',
-        fix(fixer) {
-          // If a HTML entity name is found, bail out because it can be fixed
-          // by either using the real character or the unicode equivalent.
-          // If it contains any line terminator character, bail out as well.
-          if (
-            containsOnlyHtmlEntities(literalNode.raw) ||
-            (literalNode.parent.type === 'JSXAttribute' && containsLineTerminators(literalNode.raw)) ||
-            isLineBreak(literalNode.raw)
-          ) {
-            return null;
-          }
-
-          const expression = literalNode.parent.type === 'JSXAttribute' ?
-            `{"${escapeDoubleQuotes(escapeBackslashes(
-              literalNode.raw.substring(1, literalNode.raw.length - 1)
-            ))}"}` :
-            wrapWithCurlyBraces(literalNode.raw);
-
-          return fixer.replaceText(literalNode, expression);
-        }
-      });
-    }
-
-    function isWhiteSpaceLiteral(node) {
-      return node.type && node.type === 'Literal' && node.value && jsxUtil.isWhiteSpaces(node.value);
-    }
-
-    function isStringWithTrailingWhiteSpaces(value) {
-      return /^\s|\s$/.test(value);
-    }
-
-    function isLiteralWithTrailingWhiteSpaces(node) {
-      return node.type && node.type === 'Literal' && node.value && isStringWithTrailingWhiteSpaces(node.value);
-    }
-
-    // Bail out if there is any character that needs to be escaped in JSX
-    // because escaping decreases readiblity and the original code may be more
-    // readible anyway or intentional for other specific reasons
-    function lintUnnecessaryCurly(JSXExpressionNode) {
-      const expression = JSXExpressionNode.expression;
-      const expressionType = expression.type;
-
-      if (
-        (expressionType === 'Literal' || expressionType === 'JSXText') &&
-          typeof expression.value === 'string' &&
-          (
-            (JSXExpressionNode.parent.type === 'JSXAttribute' && !isWhiteSpaceLiteral(expression)) ||
-            !isLiteralWithTrailingWhiteSpaces(expression)
-          ) &&
-          !needToEscapeCharacterForJSX(expression.raw) && (
-          jsxUtil.isJSX(JSXExpressionNode.parent) ||
-          !containsQuoteCharacters(expression.value)
-        )
-      ) {
-        reportUnnecessaryCurly(JSXExpressionNode);
-      } else if (
-        expressionType === 'TemplateLiteral' &&
-          expression.expressions.length === 0 &&
-          expression.quasis[0].value.raw.indexOf('\n') === -1 &&
-          !isStringWithTrailingWhiteSpaces(expression.quasis[0].value.raw) &&
-          !needToEscapeCharacterForJSX(expression.quasis[0].value.raw) && (
-          jsxUtil.isJSX(JSXExpressionNode.parent) ||
-          !containsQuoteCharacters(expression.quasis[0].value.cooked)
-        )
-      ) {
-        reportUnnecessaryCurly(JSXExpressionNode);
-      } else if (jsxUtil.isJSX(expression)) {
-        reportUnnecessaryCurly(JSXExpressionNode);
-      }
-    }
-
-    function areRuleConditionsSatisfied(parent, config, ruleCondition) {
-      return (
-        parent.type === 'JSXAttribute' &&
-          typeof config.props === 'string' &&
-          config.props === ruleCondition
-      ) || (
-        jsxUtil.isJSX(parent) &&
-          typeof config.children === 'string' &&
-          config.children === ruleCondition
-      );
-    }
-
-    function getAdjacentSiblings(node, children) {
-      for (let i = 1; i < children.length - 1; i++) {
-        const child = children[i];
-        if (node === child) {
-          return [children[i - 1], children[i + 1]];
-        }
-      }
-      if (node === children[0] && children[1]) {
-        return [children[1]];
-      }
-      if (node === children[children.length - 1] && children[children.length - 2]) {
-        return [children[children.length - 2]];
-      }
-      return [];
-    }
-
-    function hasAdjacentJsxExpressionContainers(node, children) {
-      if (!children) {
-        return false;
-      }
-      const childrenExcludingWhitespaceLiteral = children.filter(child => !isWhiteSpaceLiteral(child));
-      const adjSiblings = getAdjacentSiblings(node, childrenExcludingWhitespaceLiteral);
-
-      return adjSiblings.some(x => x.type && x.type === 'JSXExpressionContainer');
-    }
-    function hasAdjacentJsx(node, children) {
-      if (!children) {
-        return false;
-      }
-      const childrenExcludingWhitespaceLiteral = children.filter(child => !isWhiteSpaceLiteral(child));
-      const adjSiblings = getAdjacentSiblings(node, childrenExcludingWhitespaceLiteral);
-
-      return adjSiblings.some(x => x.type && arrayIncludes(['JSXExpressionContainer', 'JSXElement'], x.type));
-    }
-    function shouldCheckForUnnecessaryCurly(parent, node, config) {
-      // Bail out if the parent is a JSXAttribute & its contents aren't
-      // StringLiteral or TemplateLiteral since e.g
-      // <App prop1={<CustomEl />} prop2={<CustomEl>...</CustomEl>} />
-
-      if (
-        parent.type && parent.type === 'JSXAttribute' &&
-        (node.expression && node.expression.type &&
-          node.expression.type !== 'Literal' &&
-          node.expression.type !== 'StringLiteral' &&
-          node.expression.type !== 'TemplateLiteral')
-      ) {
-        return false;
-      }
-
-      // If there are adjacent `JsxExpressionContainer` then there is no need,
-      // to check for unnecessary curly braces.
-      if (jsxUtil.isJSX(parent) && hasAdjacentJsxExpressionContainers(node, parent.children)) {
-        return false;
-      }
-      if (containsWhitespaceExpression(node) && hasAdjacentJsx(node, parent.children)) {
-        return false;
-      }
-      if (
-        parent.children &&
-        parent.children.length === 1 &&
-        containsWhitespaceExpression(node)
-      ) {
-        return false;
-      }
-
-      return areRuleConditionsSatisfied(parent, config, OPTION_NEVER);
-    }
-
-    function shouldCheckForMissingCurly(node, config) {
-      if (
-        isLineBreak(node.raw) ||
-        containsOnlyHtmlEntities(node.raw)
-      ) {
-        return false;
-      }
-      const parent = node.parent;
-      if (
-        parent.children &&
-        parent.children.length === 1 &&
-        containsWhitespaceExpression(parent.children[0])
-      ) {
-        return false;
-      }
-
-      return areRuleConditionsSatisfied(parent, config, OPTION_ALWAYS);
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXExpressionContainer: (node) => {
-        if (shouldCheckForUnnecessaryCurly(node.parent, node, userConfig)) {
-          lintUnnecessaryCurly(node);
-        }
-      },
-
-      'Literal, JSXText': (node) => {
-        if (shouldCheckForMissingCurly(node, userConfig)) {
-          reportMissingCurly(node);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-newline.js b/node_modules/eslint-plugin-react/lib/rules/jsx-curly-newline.js
deleted file mode 100644
index 62823e2..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-newline.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * @fileoverview enforce consistent line breaks inside jsx curly
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function getNormalizedOption(context) {
-  const rawOption = context.options[0] || 'consistent';
-
-  if (rawOption === 'consistent') {
-    return {
-      multiline: 'consistent',
-      singleline: 'consistent'
-    };
-  }
-
-  if (rawOption === 'never') {
-    return {
-      multiline: 'forbid',
-      singleline: 'forbid'
-    };
-  }
-
-  return {
-    multiline: rawOption.multiline || 'consistent',
-    singleline: rawOption.singleline || 'consistent'
-  };
-}
-
-module.exports = {
-  meta: {
-    type: 'layout',
-
-    docs: {
-      description: 'Enforce consistent line breaks inside jsx curly',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-curly-newline')
-    },
-
-    fixable: 'whitespace',
-
-    schema: [
-      {
-        oneOf: [
-          {
-            enum: ['consistent', 'never']
-          },
-          {
-            type: 'object',
-            properties: {
-              singleline: {enum: ['consistent', 'require', 'forbid']},
-              multiline: {enum: ['consistent', 'require', 'forbid']}
-            },
-            additionalProperties: false
-          }
-        ]
-      }
-    ],
-
-
-    messages: {
-      expectedBefore: 'Expected newline before \'}\'.',
-      expectedAfter: 'Expected newline after \'{\'.',
-      unexpectedBefore: 'Unexpected newline before \'{\'.',
-      unexpectedAfter: 'Unexpected newline after \'}\'.'
-    }
-  },
-
-  create(context) {
-    const sourceCode = context.getSourceCode();
-    const option = getNormalizedOption(context);
-
-    // ----------------------------------------------------------------------
-    // Helpers
-    // ----------------------------------------------------------------------
-
-    /**
-     * Determines whether two adjacent tokens are on the same line.
-     * @param {Object} left - The left token object.
-     * @param {Object} right - The right token object.
-     * @returns {boolean} Whether or not the tokens are on the same line.
-     */
-    function isTokenOnSameLine(left, right) {
-      return left.loc.end.line === right.loc.start.line;
-    }
-
-    /**
-     * Determines whether there should be newlines inside curlys
-     * @param {ASTNode} expression The expression contained in the curlys
-     * @param {boolean} hasLeftNewline `true` if the left curly has a newline in the current code.
-     * @returns {boolean} `true` if there should be newlines inside the function curlys
-     */
-    function shouldHaveNewlines(expression, hasLeftNewline) {
-      const isMultiline = expression.loc.start.line !== expression.loc.end.line;
-
-      switch (isMultiline ? option.multiline : option.singleline) {
-        case 'forbid': return false;
-        case 'require': return true;
-        case 'consistent':
-        default: return hasLeftNewline;
-      }
-    }
-
-    /**
-     * Validates curlys
-     * @param {Object} curlys An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token
-     * @param {ASTNode} expression The expression inside the curly
-     * @returns {void}
-     */
-    function validateCurlys(curlys, expression) {
-      const leftCurly = curlys.leftCurly;
-      const rightCurly = curlys.rightCurly;
-      const tokenAfterLeftCurly = sourceCode.getTokenAfter(leftCurly);
-      const tokenBeforeRightCurly = sourceCode.getTokenBefore(rightCurly);
-      const hasLeftNewline = !isTokenOnSameLine(leftCurly, tokenAfterLeftCurly);
-      const hasRightNewline = !isTokenOnSameLine(tokenBeforeRightCurly, rightCurly);
-      const needsNewlines = shouldHaveNewlines(expression, hasLeftNewline);
-
-      if (hasLeftNewline && !needsNewlines) {
-        context.report({
-          node: leftCurly,
-          messageId: 'unexpectedAfter',
-          fix(fixer) {
-            return sourceCode
-              .getText()
-              .slice(leftCurly.range[1], tokenAfterLeftCurly.range[0])
-              .trim() ?
-              null : // If there is a comment between the { and the first element, don't do a fix.
-              fixer.removeRange([leftCurly.range[1], tokenAfterLeftCurly.range[0]]);
-          }
-        });
-      } else if (!hasLeftNewline && needsNewlines) {
-        context.report({
-          node: leftCurly,
-          messageId: 'expectedAfter',
-          fix: fixer => fixer.insertTextAfter(leftCurly, '\n')
-        });
-      }
-
-      if (hasRightNewline && !needsNewlines) {
-        context.report({
-          node: rightCurly,
-          messageId: 'unexpectedBefore',
-          fix(fixer) {
-            return sourceCode
-              .getText()
-              .slice(tokenBeforeRightCurly.range[1], rightCurly.range[0])
-              .trim() ?
-              null : // If there is a comment between the last element and the }, don't do a fix.
-              fixer.removeRange([
-                tokenBeforeRightCurly.range[1],
-                rightCurly.range[0]
-              ]);
-          }
-        });
-      } else if (!hasRightNewline && needsNewlines) {
-        context.report({
-          node: rightCurly,
-          messageId: 'expectedBefore',
-          fix: fixer => fixer.insertTextBefore(rightCurly, '\n')
-        });
-      }
-    }
-
-
-    // ----------------------------------------------------------------------
-    // Public
-    // ----------------------------------------------------------------------
-
-    return {
-      JSXExpressionContainer(node) {
-        const curlyTokens = {
-          leftCurly: sourceCode.getFirstToken(node),
-          rightCurly: sourceCode.getLastToken(node)
-        };
-        validateCurlys(curlyTokens, node.expression);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-spacing.js b/node_modules/eslint-plugin-react/lib/rules/jsx-curly-spacing.js
deleted file mode 100644
index a53f24a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-curly-spacing.js
+++ /dev/null
@@ -1,406 +0,0 @@
-/**
- * @fileoverview Enforce or disallow spaces inside of curly braces in JSX attributes.
- * @author Jamund Ferguson
- * @author Brandyn Bennett
- * @author Michael Ficarra
- * @author Vignesh Anand
- * @author Jamund Ferguson
- * @author Yannick Croissant
- * @author Erik Wendel
- */
-
-'use strict';
-
-const has = require('has');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const SPACING = {
-  always: 'always',
-  never: 'never'
-};
-const SPACING_VALUES = [SPACING.always, SPACING.never];
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce or disallow spaces inside of curly braces in JSX attributes',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-curly-spacing')
-    },
-    fixable: 'code',
-
-    schema: {
-      definitions: {
-        basicConfig: {
-          type: 'object',
-          properties: {
-            when: {
-              enum: SPACING_VALUES
-            },
-            allowMultiline: {
-              type: 'boolean'
-            },
-            spacing: {
-              type: 'object',
-              properties: {
-                objectLiterals: {
-                  enum: SPACING_VALUES
-                }
-              }
-            }
-          }
-        },
-        basicConfigOrBoolean: {
-          oneOf: [{
-            $ref: '#/definitions/basicConfig'
-          }, {
-            type: 'boolean'
-          }]
-        }
-      },
-      type: 'array',
-      items: [{
-        oneOf: [{
-          allOf: [{
-            $ref: '#/definitions/basicConfig'
-          }, {
-            type: 'object',
-            properties: {
-              attributes: {
-                $ref: '#/definitions/basicConfigOrBoolean'
-              },
-              children: {
-                $ref: '#/definitions/basicConfigOrBoolean'
-              }
-            }
-          }]
-        }, {
-          enum: SPACING_VALUES
-        }]
-      }, {
-        type: 'object',
-        properties: {
-          allowMultiline: {
-            type: 'boolean'
-          },
-          spacing: {
-            type: 'object',
-            properties: {
-              objectLiterals: {
-                enum: SPACING_VALUES
-              }
-            }
-          }
-        },
-        additionalProperties: false
-      }]
-    }
-  },
-
-  create(context) {
-    function normalizeConfig(configOrTrue, defaults, lastPass) {
-      const config = configOrTrue === true ? {} : configOrTrue;
-      const when = config.when || defaults.when;
-      const allowMultiline = has(config, 'allowMultiline') ? config.allowMultiline : defaults.allowMultiline;
-      const spacing = config.spacing || {};
-      let objectLiteralSpaces = spacing.objectLiterals || defaults.objectLiteralSpaces;
-      if (lastPass) {
-        // On the final pass assign the values that should be derived from others if they are still undefined
-        objectLiteralSpaces = objectLiteralSpaces || when;
-      }
-
-      return {
-        when,
-        allowMultiline,
-        objectLiteralSpaces
-      };
-    }
-
-    const DEFAULT_WHEN = SPACING.never;
-    const DEFAULT_ALLOW_MULTILINE = true;
-    const DEFAULT_ATTRIBUTES = true;
-    const DEFAULT_CHILDREN = false;
-
-    let originalConfig = context.options[0] || {};
-    if (SPACING_VALUES.indexOf(originalConfig) !== -1) {
-      originalConfig = Object.assign({when: context.options[0]}, context.options[1]);
-    }
-    const defaultConfig = normalizeConfig(originalConfig, {
-      when: DEFAULT_WHEN,
-      allowMultiline: DEFAULT_ALLOW_MULTILINE
-    });
-    const attributes = has(originalConfig, 'attributes') ? originalConfig.attributes : DEFAULT_ATTRIBUTES;
-    const attributesConfig = attributes ? normalizeConfig(attributes, defaultConfig, true) : null;
-    const children = has(originalConfig, 'children') ? originalConfig.children : DEFAULT_CHILDREN;
-    const childrenConfig = children ? normalizeConfig(children, defaultConfig, true) : null;
-
-    // --------------------------------------------------------------------------
-    // Helpers
-    // --------------------------------------------------------------------------
-
-    /**
-     * Determines whether two adjacent tokens have a newline between them.
-     * @param {Object} left - The left token object.
-     * @param {Object} right - The right token object.
-     * @returns {boolean} Whether or not there is a newline between the tokens.
-     */
-    function isMultiline(left, right) {
-      return left.loc.end.line !== right.loc.start.line;
-    }
-
-    /**
-     * Trims text of whitespace between two ranges
-     * @param {Fixer} fixer - the eslint fixer object
-     * @param {number} fromLoc - the start location
-     * @param {number} toLoc - the end location
-     * @param {string} mode - either 'start' or 'end'
-     * @param {string=} spacing - a spacing value that will optionally add a space to the removed text
-     * @returns {Object|*|{range, text}}
-     */
-    function fixByTrimmingWhitespace(fixer, fromLoc, toLoc, mode, spacing) {
-      let replacementText = context.getSourceCode().text.slice(fromLoc, toLoc);
-      if (mode === 'start') {
-        replacementText = replacementText.replace(/^\s+/gm, '');
-      } else {
-        replacementText = replacementText.replace(/\s+$/gm, '');
-      }
-      if (spacing === SPACING.always) {
-        if (mode === 'start') {
-          replacementText += ' ';
-        } else {
-          replacementText = ` ${replacementText}`;
-        }
-      }
-      return fixer.replaceTextRange([fromLoc, toLoc], replacementText);
-    }
-
-    /**
-    * Reports that there shouldn't be a newline after the first token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @param {string} spacing
-    * @returns {void}
-    */
-    function reportNoBeginningNewline(node, token, spacing) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `There should be no newline after '${token.value}'`,
-        fix(fixer) {
-          const nextToken = context.getSourceCode().getTokenAfter(token);
-          return fixByTrimmingWhitespace(fixer, token.range[1], nextToken.range[0], 'start', spacing);
-        }
-      });
-    }
-
-    /**
-    * Reports that there shouldn't be a newline before the last token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @param {string} spacing
-    * @returns {void}
-    */
-    function reportNoEndingNewline(node, token, spacing) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `There should be no newline before '${token.value}'`,
-        fix(fixer) {
-          const previousToken = context.getSourceCode().getTokenBefore(token);
-          return fixByTrimmingWhitespace(fixer, previousToken.range[1], token.range[0], 'end', spacing);
-        }
-      });
-    }
-
-    /**
-    * Reports that there shouldn't be a space after the first token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @returns {void}
-    */
-    function reportNoBeginningSpace(node, token) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `There should be no space after '${token.value}'`,
-        fix(fixer) {
-          const sourceCode = context.getSourceCode();
-          const nextToken = sourceCode.getTokenAfter(token);
-          let nextComment;
-
-          // ESLint >=4.x
-          if (sourceCode.getCommentsAfter) {
-            nextComment = sourceCode.getCommentsAfter(token);
-          // ESLint 3.x
-          } else {
-            const potentialComment = sourceCode.getTokenAfter(token, {includeComments: true});
-            nextComment = nextToken === potentialComment ? [] : [potentialComment];
-          }
-
-          // Take comments into consideration to narrow the fix range to what is actually affected. (See #1414)
-          if (nextComment.length > 0) {
-            return fixByTrimmingWhitespace(fixer, token.range[1], Math.min(nextToken.range[0], nextComment[0].start), 'start');
-          }
-
-          return fixByTrimmingWhitespace(fixer, token.range[1], nextToken.range[0], 'start');
-        }
-      });
-    }
-
-    /**
-    * Reports that there shouldn't be a space before the last token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @returns {void}
-    */
-    function reportNoEndingSpace(node, token) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `There should be no space before '${token.value}'`,
-        fix(fixer) {
-          const sourceCode = context.getSourceCode();
-          const previousToken = sourceCode.getTokenBefore(token);
-          let previousComment;
-
-          // ESLint >=4.x
-          if (sourceCode.getCommentsBefore) {
-            previousComment = sourceCode.getCommentsBefore(token);
-          // ESLint 3.x
-          } else {
-            const potentialComment = sourceCode.getTokenBefore(token, {includeComments: true});
-            previousComment = previousToken === potentialComment ? [] : [potentialComment];
-          }
-
-          // Take comments into consideration to narrow the fix range to what is actually affected. (See #1414)
-          if (previousComment.length > 0) {
-            return fixByTrimmingWhitespace(fixer, Math.max(previousToken.range[1], previousComment[0].end), token.range[0], 'end');
-          }
-
-          return fixByTrimmingWhitespace(fixer, previousToken.range[1], token.range[0], 'end');
-        }
-      });
-    }
-
-    /**
-    * Reports that there should be a space after the first token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @returns {void}
-    */
-    function reportRequiredBeginningSpace(node, token) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `A space is required after '${token.value}'`,
-        fix(fixer) {
-          return fixer.insertTextAfter(token, ' ');
-        }
-      });
-    }
-
-    /**
-    * Reports that there should be a space before the last token
-    * @param {ASTNode} node - The node to report in the event of an error.
-    * @param {Token} token - The token to use for the report.
-    * @returns {void}
-    */
-    function reportRequiredEndingSpace(node, token) {
-      context.report({
-        node,
-        loc: token.loc.start,
-        message: `A space is required before '${token.value}'`,
-        fix(fixer) {
-          return fixer.insertTextBefore(token, ' ');
-        }
-      });
-    }
-
-    /**
-     * Determines if spacing in curly braces is valid.
-     * @param {ASTNode} node The AST node to check.
-     * @returns {void}
-     */
-    function validateBraceSpacing(node) {
-      let config;
-      switch (node.parent.type) {
-        case 'JSXAttribute':
-        case 'JSXOpeningElement':
-          config = attributesConfig;
-          break;
-
-        case 'JSXElement':
-        case 'JSXFragment':
-          config = childrenConfig;
-          break;
-
-        default:
-          return;
-      }
-      if (config === null) {
-        return;
-      }
-
-      const sourceCode = context.getSourceCode();
-      const first = context.getFirstToken(node);
-      const last = sourceCode.getLastToken(node);
-      let second = context.getTokenAfter(first, {includeComments: true});
-      let penultimate = sourceCode.getTokenBefore(last, {includeComments: true});
-
-      if (!second) {
-        second = context.getTokenAfter(first);
-        const leadingComments = sourceCode.getNodeByRangeIndex(second.range[0]).leadingComments;
-        second = leadingComments ? leadingComments[0] : second;
-      }
-      if (!penultimate) {
-        penultimate = sourceCode.getTokenBefore(last);
-        const trailingComments = sourceCode.getNodeByRangeIndex(penultimate.range[0]).trailingComments;
-        penultimate = trailingComments ? trailingComments[trailingComments.length - 1] : penultimate;
-      }
-
-      const isObjectLiteral = first.value === second.value;
-      const spacing = isObjectLiteral ? config.objectLiteralSpaces : config.when;
-      if (spacing === SPACING.always) {
-        if (!sourceCode.isSpaceBetweenTokens(first, second)) {
-          reportRequiredBeginningSpace(node, first);
-        } else if (!config.allowMultiline && isMultiline(first, second)) {
-          reportNoBeginningNewline(node, first, spacing);
-        }
-        if (!sourceCode.isSpaceBetweenTokens(penultimate, last)) {
-          reportRequiredEndingSpace(node, last);
-        } else if (!config.allowMultiline && isMultiline(penultimate, last)) {
-          reportNoEndingNewline(node, last, spacing);
-        }
-      } else if (spacing === SPACING.never) {
-        if (isMultiline(first, second)) {
-          if (!config.allowMultiline) {
-            reportNoBeginningNewline(node, first, spacing);
-          }
-        } else if (sourceCode.isSpaceBetweenTokens(first, second)) {
-          reportNoBeginningSpace(node, first);
-        }
-        if (isMultiline(penultimate, last)) {
-          if (!config.allowMultiline) {
-            reportNoEndingNewline(node, last, spacing);
-          }
-        } else if (sourceCode.isSpaceBetweenTokens(penultimate, last)) {
-          reportNoEndingSpace(node, last);
-        }
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXExpressionContainer: validateBraceSpacing,
-      JSXSpreadAttribute: validateBraceSpacing
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-equals-spacing.js b/node_modules/eslint-plugin-react/lib/rules/jsx-equals-spacing.js
deleted file mode 100644
index 27f0bec..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-equals-spacing.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @fileoverview Disallow or enforce spaces around equal signs in JSX attributes.
- * @author ryym
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Disallow or enforce spaces around equal signs in JSX attributes',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-equals-spacing')
-    },
-    fixable: 'code',
-
-    schema: [{
-      enum: ['always', 'never']
-    }]
-  },
-
-  create(context) {
-    const config = context.options[0];
-
-    /**
-     * Determines a given attribute node has an equal sign.
-     * @param {ASTNode} attrNode - The attribute node.
-     * @returns {boolean} Whether or not the attriute node has an equal sign.
-     */
-    function hasEqual(attrNode) {
-      return attrNode.type !== 'JSXSpreadAttribute' && attrNode.value !== null;
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXOpeningElement(node) {
-        node.attributes.forEach((attrNode) => {
-          if (!hasEqual(attrNode)) {
-            return;
-          }
-
-          const sourceCode = context.getSourceCode();
-          const equalToken = sourceCode.getTokenAfter(attrNode.name);
-          const spacedBefore = sourceCode.isSpaceBetweenTokens(attrNode.name, equalToken);
-          const spacedAfter = sourceCode.isSpaceBetweenTokens(equalToken, attrNode.value);
-
-          switch (config) {
-            default:
-            case 'never':
-              if (spacedBefore) {
-                context.report({
-                  node: attrNode,
-                  loc: equalToken.loc.start,
-                  message: 'There should be no space before \'=\'',
-                  fix(fixer) {
-                    return fixer.removeRange([attrNode.name.range[1], equalToken.range[0]]);
-                  }
-                });
-              }
-              if (spacedAfter) {
-                context.report({
-                  node: attrNode,
-                  loc: equalToken.loc.start,
-                  message: 'There should be no space after \'=\'',
-                  fix(fixer) {
-                    return fixer.removeRange([equalToken.range[1], attrNode.value.range[0]]);
-                  }
-                });
-              }
-              break;
-            case 'always':
-              if (!spacedBefore) {
-                context.report({
-                  node: attrNode,
-                  loc: equalToken.loc.start,
-                  message: 'A space is required before \'=\'',
-                  fix(fixer) {
-                    return fixer.insertTextBefore(equalToken, ' ');
-                  }
-                });
-              }
-              if (!spacedAfter) {
-                context.report({
-                  node: attrNode,
-                  loc: equalToken.loc.start,
-                  message: 'A space is required after \'=\'',
-                  fix(fixer) {
-                    return fixer.insertTextAfter(equalToken, ' ');
-                  }
-                });
-              }
-              break;
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-filename-extension.js b/node_modules/eslint-plugin-react/lib/rules/jsx-filename-extension.js
deleted file mode 100644
index 3d23cb4..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-filename-extension.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * @fileoverview Restrict file extensions that may contain JSX
- * @author Joe Lencioni
- */
-
-'use strict';
-
-const path = require('path');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = {
-  extensions: ['.jsx']
-};
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Restrict file extensions that may contain JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-filename-extension')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        extensions: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    let invalidExtension;
-    let invalidNode;
-
-    function getExtensionsConfig() {
-      return context.options[0] && context.options[0].extensions || DEFAULTS.extensions;
-    }
-
-    function handleJSX(node) {
-      const filename = context.getFilename();
-      if (filename === '<text>') {
-        return;
-      }
-
-      if (invalidNode) {
-        return;
-      }
-
-      const allowedExtensions = getExtensionsConfig();
-      const isAllowedExtension = allowedExtensions.some(extension => filename.slice(-extension.length) === extension);
-
-      if (isAllowedExtension) {
-        return;
-      }
-
-      invalidNode = node;
-      invalidExtension = path.extname(filename);
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXElement: handleJSX,
-      JSXFragment: handleJSX,
-
-      'Program:exit'() {
-        if (!invalidNode) {
-          return;
-        }
-
-        context.report({
-          node: invalidNode,
-          message: `JSX not allowed in files with extension '${invalidExtension}'`
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-first-prop-new-line.js b/node_modules/eslint-plugin-react/lib/rules/jsx-first-prop-new-line.js
deleted file mode 100644
index 30b4a57..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-first-prop-new-line.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @fileoverview Ensure proper position of the first property in JSX
- * @author Joachim Seminck
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Ensure proper position of the first property in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-first-prop-new-line')
-    },
-    fixable: 'code',
-
-    schema: [{
-      enum: ['always', 'never', 'multiline', 'multiline-multiprop']
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || 'multiline-multiprop';
-
-    function isMultilineJSX(jsxNode) {
-      return jsxNode.loc.start.line < jsxNode.loc.end.line;
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        if (
-          (configuration === 'multiline' && isMultilineJSX(node)) ||
-          (configuration === 'multiline-multiprop' && isMultilineJSX(node) && node.attributes.length > 1) ||
-          (configuration === 'always')
-        ) {
-          node.attributes.some((decl) => {
-            if (decl.loc.start.line === node.loc.start.line) {
-              context.report({
-                node: decl,
-                message: 'Property should be placed on a new line',
-                fix(fixer) {
-                  return fixer.replaceTextRange([node.name.range[1], decl.range[0]], '\n');
-                }
-              });
-            }
-            return true;
-          });
-        } else if (configuration === 'never' && node.attributes.length > 0) {
-          const firstNode = node.attributes[0];
-          if (node.loc.start.line < firstNode.loc.start.line) {
-            context.report({
-              node: firstNode,
-              message: 'Property should be placed on the same line as the component declaration',
-              fix(fixer) {
-                return fixer.replaceTextRange([node.name.range[1], firstNode.range[0]], ' ');
-              }
-            });
-          }
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-fragments.js b/node_modules/eslint-plugin-react/lib/rules/jsx-fragments.js
deleted file mode 100644
index d2ec3ab..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-fragments.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * @fileoverview Enforce shorthand or standard form for React fragments.
- * @author Alex Zherdev
- */
-
-'use strict';
-
-const elementType = require('jsx-ast-utils/elementType');
-const pragmaUtil = require('../util/pragma');
-const variableUtil = require('../util/variable');
-const versionUtil = require('../util/version');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function replaceNode(source, node, text) {
-  return `${source.slice(0, node.range[0])}${text}${source.slice(node.range[1])}`;
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce shorthand or standard form for React fragments',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-fragments')
-    },
-    fixable: 'code',
-
-    schema: [{
-      enum: ['syntax', 'element']
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || 'syntax';
-    const reactPragma = pragmaUtil.getFromContext(context);
-    const fragmentPragma = pragmaUtil.getFragmentFromContext(context);
-    const openFragShort = '<>';
-    const closeFragShort = '</>';
-    const openFragLong = `<${reactPragma}.${fragmentPragma}>`;
-    const closeFragLong = `</${reactPragma}.${fragmentPragma}>`;
-
-    function reportOnReactVersion(node) {
-      if (!versionUtil.testReactVersion(context, '16.2.0')) {
-        context.report({
-          node,
-          message: 'Fragments are only supported starting from React v16.2. ' +
-            'Please disable the `react/jsx-fragments` rule in ESLint settings or upgrade your version of React.'
-        });
-        return true;
-      }
-
-      return false;
-    }
-
-    function getFixerToLong(jsxFragment) {
-      const sourceCode = context.getSourceCode();
-      return function fix(fixer) {
-        let source = sourceCode.getText();
-        source = replaceNode(source, jsxFragment.closingFragment, closeFragLong);
-        source = replaceNode(source, jsxFragment.openingFragment, openFragLong);
-        const lengthDiff = openFragLong.length - sourceCode.getText(jsxFragment.openingFragment).length +
-          closeFragLong.length - sourceCode.getText(jsxFragment.closingFragment).length;
-        const range = jsxFragment.range;
-        return fixer.replaceTextRange(range, source.slice(range[0], range[1] + lengthDiff));
-      };
-    }
-
-    function getFixerToShort(jsxElement) {
-      const sourceCode = context.getSourceCode();
-      return function fix(fixer) {
-        let source = sourceCode.getText();
-        let lengthDiff;
-        if (jsxElement.closingElement) {
-          source = replaceNode(source, jsxElement.closingElement, closeFragShort);
-          source = replaceNode(source, jsxElement.openingElement, openFragShort);
-          lengthDiff = sourceCode.getText(jsxElement.openingElement).length - openFragShort.length +
-            sourceCode.getText(jsxElement.closingElement).length - closeFragShort.length;
-        } else {
-          source = replaceNode(source, jsxElement.openingElement, `${openFragShort}${closeFragShort}`);
-          lengthDiff = sourceCode.getText(jsxElement.openingElement).length - openFragShort.length -
-            closeFragShort.length;
-        }
-
-        const range = jsxElement.range;
-        return fixer.replaceTextRange(range, source.slice(range[0], range[1] - lengthDiff));
-      };
-    }
-
-    function refersToReactFragment(name) {
-      const variableInit = variableUtil.findVariableByName(context, name);
-      if (!variableInit) {
-        return false;
-      }
-
-      // const { Fragment } = React;
-      if (variableInit.type === 'Identifier' && variableInit.name === reactPragma) {
-        return true;
-      }
-
-      // const Fragment = React.Fragment;
-      if (
-        variableInit.type === 'MemberExpression' &&
-        variableInit.object.type === 'Identifier' &&
-        variableInit.object.name === reactPragma &&
-        variableInit.property.type === 'Identifier' &&
-        variableInit.property.name === fragmentPragma
-      ) {
-        return true;
-      }
-
-      // const { Fragment } = require('react');
-      if (
-        variableInit.callee &&
-        variableInit.callee.name === 'require' &&
-        variableInit.arguments &&
-        variableInit.arguments[0] &&
-        variableInit.arguments[0].value === 'react'
-      ) {
-        return true;
-      }
-
-      return false;
-    }
-
-    const jsxElements = [];
-    const fragmentNames = new Set([`${reactPragma}.${fragmentPragma}`]);
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXElement(node) {
-        jsxElements.push(node);
-      },
-
-      JSXFragment(node) {
-        if (reportOnReactVersion(node)) {
-          return;
-        }
-
-        if (configuration === 'element') {
-          context.report({
-            node,
-            message: `Prefer ${reactPragma}.${fragmentPragma} over fragment shorthand`,
-            fix: getFixerToLong(node)
-          });
-        }
-      },
-
-      ImportDeclaration(node) {
-        if (node.source && node.source.value === 'react') {
-          node.specifiers.forEach((spec) => {
-            if (spec.imported && spec.imported.name === fragmentPragma) {
-              if (spec.local) {
-                fragmentNames.add(spec.local.name);
-              }
-            }
-          });
-        }
-      },
-
-      'Program:exit'() {
-        jsxElements.forEach((node) => {
-          const openingEl = node.openingElement;
-          const elName = elementType(openingEl);
-
-          if (fragmentNames.has(elName) || refersToReactFragment(elName)) {
-            if (reportOnReactVersion(node)) {
-              return;
-            }
-
-            const attrs = openingEl.attributes;
-            if (configuration === 'syntax' && !(attrs && attrs.length > 0)) {
-              context.report({
-                node,
-                message: `Prefer fragment shorthand over ${reactPragma}.${fragmentPragma}`,
-                fix: getFixerToShort(node)
-              });
-            }
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-handler-names.js b/node_modules/eslint-plugin-react/lib/rules/jsx-handler-names.js
deleted file mode 100644
index 7c2b34a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-handler-names.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * @fileoverview Enforce event handler naming conventions in JSX
- * @author Jake Marsh
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce event handler naming conventions in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-handler-names')
-    },
-
-    schema: [{
-      anyOf: [
-        {
-          type: 'object',
-          properties: {
-            eventHandlerPrefix: {type: 'string'},
-            eventHandlerPropPrefix: {type: 'string'},
-            checkLocalVariables: {type: 'boolean'}
-          },
-          additionalProperties: false
-        }, {
-          type: 'object',
-          properties: {
-            eventHandlerPrefix: {type: 'string'},
-            eventHandlerPropPrefix: {
-              type: 'boolean',
-              enum: [false]
-            },
-            checkLocalVariables: {type: 'boolean'}
-          },
-          additionalProperties: false
-        }, {
-          type: 'object',
-          properties: {
-            eventHandlerPrefix: {
-              type: 'boolean',
-              enum: [false]
-            },
-            eventHandlerPropPrefix: {type: 'string'},
-            checkLocalVariables: {type: 'boolean'}
-          },
-          additionalProperties: false
-        }, {
-          type: 'object',
-          properties: {
-            checkLocalVariables: {type: 'boolean'}
-          },
-          additionalProperties: false
-        }
-      ]
-    }]
-  },
-
-  create(context) {
-    function isPrefixDisabled(prefix) {
-      return prefix === false;
-    }
-
-    const configuration = context.options[0] || {};
-
-    const eventHandlerPrefix = isPrefixDisabled(configuration.eventHandlerPrefix) ?
-      null :
-      configuration.eventHandlerPrefix || 'handle';
-    const eventHandlerPropPrefix = isPrefixDisabled(configuration.eventHandlerPropPrefix) ?
-      null :
-      configuration.eventHandlerPropPrefix || 'on';
-
-    const EVENT_HANDLER_REGEX = !eventHandlerPrefix ?
-      null :
-      new RegExp(`^((props\\.${eventHandlerPropPrefix || ''})|((.*\\.)?${eventHandlerPrefix}))[A-Z].*$`);
-    const PROP_EVENT_HANDLER_REGEX = !eventHandlerPropPrefix ?
-      null :
-      new RegExp(`^(${eventHandlerPropPrefix}[A-Z].*|ref)$`);
-
-    const checkLocal = !!configuration.checkLocalVariables;
-
-    return {
-      JSXAttribute(node) {
-        if (!node.value || !node.value.expression || (!checkLocal && !node.value.expression.object)) {
-          return;
-        }
-
-        const propKey = typeof node.name === 'object' ? node.name.name : node.name;
-        const propValue = context.getSourceCode().getText(node.value.expression).replace(/^this\.|.*::/, '');
-
-        if (propKey === 'ref') {
-          return;
-        }
-
-        const propIsEventHandler = PROP_EVENT_HANDLER_REGEX && PROP_EVENT_HANDLER_REGEX.test(propKey);
-        const propFnIsNamedCorrectly = EVENT_HANDLER_REGEX && EVENT_HANDLER_REGEX.test(propValue);
-
-        if (
-          propIsEventHandler &&
-          propFnIsNamedCorrectly !== null &&
-          !propFnIsNamedCorrectly
-        ) {
-          context.report({
-            node,
-            message: `Handler function for ${propKey} prop key must begin with '${eventHandlerPrefix}'`
-          });
-        } else if (
-          propFnIsNamedCorrectly &&
-          propIsEventHandler !== null &&
-          !propIsEventHandler
-        ) {
-          context.report({
-            node,
-            message: `Prop key for ${propValue} must begin with '${eventHandlerPropPrefix}'`
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-indent-props.js b/node_modules/eslint-plugin-react/lib/rules/jsx-indent-props.js
deleted file mode 100644
index c2bbe51..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-indent-props.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * @fileoverview Validate props indentation in JSX
- * @author Yannick Croissant
-
- * This rule has been ported and modified from eslint and nodeca.
- * @author Vitaly Puzrin
- * @author Gyandeep Singh
- * @copyright 2015 Vitaly Puzrin. All rights reserved.
- * @copyright 2015 Gyandeep Singh. All rights reserved.
- Copyright (C) 2014 by Vitaly Puzrin
-
- 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.
- */
-
-'use strict';
-
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate props indentation in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-indent-props')
-    },
-    fixable: 'code',
-
-    schema: [{
-      oneOf: [{
-        enum: ['tab', 'first']
-      }, {
-        type: 'integer'
-      }]
-    }]
-  },
-
-  create(context) {
-    const MESSAGE = 'Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}.';
-
-    const extraColumnStart = 0;
-    let indentType = 'space';
-    /** @type {number|'first'} */
-    let indentSize = 4;
-
-    if (context.options.length) {
-      if (context.options[0] === 'first') {
-        indentSize = 'first';
-        indentType = 'space';
-      } else if (context.options[0] === 'tab') {
-        indentSize = 1;
-        indentType = 'tab';
-      } else if (typeof context.options[0] === 'number') {
-        indentSize = context.options[0];
-        indentType = 'space';
-      }
-    }
-
-    /**
-     * Reports a given indent violation and properly pluralizes the message
-     * @param {ASTNode} node Node violating the indent rule
-     * @param {Number} needed Expected indentation character count
-     * @param {Number} gotten Indentation character count in the actual node/code
-     */
-    function report(node, needed, gotten) {
-      const msgContext = {
-        needed,
-        type: indentType,
-        characters: needed === 1 ? 'character' : 'characters',
-        gotten
-      };
-
-      context.report({
-        node,
-        message: MESSAGE,
-        data: msgContext,
-        fix(fixer) {
-          return fixer.replaceTextRange([node.range[0] - node.loc.start.column, node.range[0]],
-            Array(needed + 1).join(indentType === 'space' ? ' ' : '\t'));
-        }
-      });
-    }
-
-    /**
-     * Get node indent
-     * @param {ASTNode} node Node to examine
-     * @return {Number} Indent
-     */
-    function getNodeIndent(node) {
-      let src = context.getSourceCode().getText(node, node.loc.start.column + extraColumnStart);
-      const lines = src.split('\n');
-      src = lines[0];
-
-      let regExp;
-      if (indentType === 'space') {
-        regExp = /^[ ]+/;
-      } else {
-        regExp = /^[\t]+/;
-      }
-
-      const indent = regExp.exec(src);
-      return indent ? indent[0].length : 0;
-    }
-
-    /**
-     * Check indent for nodes list
-     * @param {ASTNode[]} nodes list of node objects
-     * @param {Number} indent needed indent
-     */
-    function checkNodesIndent(nodes, indent) {
-      nodes.forEach((node) => {
-        const nodeIndent = getNodeIndent(node);
-        if (
-          node.type !== 'ArrayExpression' && node.type !== 'ObjectExpression' &&
-          nodeIndent !== indent && astUtil.isNodeFirstInLine(context, node)
-        ) {
-          report(node, indent, nodeIndent);
-        }
-      });
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        if (!node.attributes.length) {
-          return;
-        }
-        let propIndent;
-        if (indentSize === 'first') {
-          const firstPropNode = node.attributes[0];
-          propIndent = firstPropNode.loc.start.column;
-        } else {
-          const elementIndent = getNodeIndent(node);
-          propIndent = elementIndent + indentSize;
-        }
-        checkNodesIndent(node.attributes, propIndent);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-indent.js b/node_modules/eslint-plugin-react/lib/rules/jsx-indent.js
deleted file mode 100644
index a7c4de1..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-indent.js
+++ /dev/null
@@ -1,401 +0,0 @@
-/**
- * @fileoverview Validate JSX indentation
- * @author Yannick Croissant
-
- * This rule has been ported and modified from eslint and nodeca.
- * @author Vitaly Puzrin
- * @author Gyandeep Singh
- * @copyright 2015 Vitaly Puzrin. All rights reserved.
- * @copyright 2015 Gyandeep Singh. All rights reserved.
- Copyright (C) 2014 by Vitaly Puzrin
-
- 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.
- */
-
-'use strict';
-
-const matchAll = require('string.prototype.matchall');
-
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate JSX indentation',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-indent')
-    },
-    fixable: 'whitespace',
-    schema: [{
-      oneOf: [{
-        enum: ['tab']
-      }, {
-        type: 'integer'
-      }]
-    }, {
-      type: 'object',
-      properties: {
-        checkAttributes: {
-          type: 'boolean'
-        },
-        indentLogicalExpressions: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const MESSAGE = 'Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}.';
-
-    const extraColumnStart = 0;
-    let indentType = 'space';
-    let indentSize = 4;
-
-    if (context.options.length) {
-      if (context.options[0] === 'tab') {
-        indentSize = 1;
-        indentType = 'tab';
-      } else if (typeof context.options[0] === 'number') {
-        indentSize = context.options[0];
-        indentType = 'space';
-      }
-    }
-
-    const indentChar = indentType === 'space' ? ' ' : '\t';
-    const options = context.options[1] || {};
-    const checkAttributes = options.checkAttributes || false;
-    const indentLogicalExpressions = options.indentLogicalExpressions || false;
-
-    /**
-     * Responsible for fixing the indentation issue fix
-     * @param {ASTNode} node Node violating the indent rule
-     * @param {Number} needed Expected indentation character count
-     * @returns {Function} function to be executed by the fixer
-     * @private
-     */
-    function getFixerFunction(node, needed) {
-      return function fix(fixer) {
-        const indent = Array(needed + 1).join(indentChar);
-        if (node.type === 'JSXText' || node.type === 'Literal') {
-          const regExp = /\n[\t ]*(\S)/g;
-          const fixedText = node.raw.replace(regExp, (match, p1) => `\n${indent}${p1}`);
-          return fixer.replaceText(node, fixedText);
-        }
-        return fixer.replaceTextRange(
-          [node.range[0] - node.loc.start.column, node.range[0]],
-          indent
-        );
-      };
-    }
-
-    /**
-     * Reports a given indent violation and properly pluralizes the message
-     * @param {ASTNode} node Node violating the indent rule
-     * @param {Number} needed Expected indentation character count
-     * @param {Number} gotten Indentation character count in the actual node/code
-     * @param {Object} [loc] Error line and column location
-     */
-    function report(node, needed, gotten, loc) {
-      const msgContext = {
-        needed,
-        type: indentType,
-        characters: needed === 1 ? 'character' : 'characters',
-        gotten
-      };
-
-      if (loc) {
-        context.report({
-          node,
-          loc,
-          message: MESSAGE,
-          data: msgContext,
-          fix: getFixerFunction(node, needed)
-        });
-      } else {
-        context.report({
-          node,
-          message: MESSAGE,
-          data: msgContext,
-          fix: getFixerFunction(node, needed)
-        });
-      }
-    }
-
-    /**
-     * Get node indent
-     * @param {ASTNode} node Node to examine
-     * @param {Boolean} [byLastLine] get indent of node's last line
-     * @param {Boolean} [excludeCommas] skip comma on start of line
-     * @return {Number} Indent
-     */
-    function getNodeIndent(node, byLastLine, excludeCommas) {
-      byLastLine = byLastLine || false;
-      excludeCommas = excludeCommas || false;
-
-      let src = context.getSourceCode().getText(node, node.loc.start.column + extraColumnStart);
-      const lines = src.split('\n');
-      if (byLastLine) {
-        src = lines[lines.length - 1];
-      } else {
-        src = lines[0];
-      }
-
-      const skip = excludeCommas ? ',' : '';
-
-      let regExp;
-      if (indentType === 'space') {
-        regExp = new RegExp(`^[ ${skip}]+`);
-      } else {
-        regExp = new RegExp(`^[\t${skip}]+`);
-      }
-
-      const indent = regExp.exec(src);
-      return indent ? indent[0].length : 0;
-    }
-
-    /**
-     * Check if the node is the right member of a logical expression
-     * @param {ASTNode} node The node to check
-     * @return {Boolean} true if its the case, false if not
-     */
-    function isRightInLogicalExp(node) {
-      return (
-        node.parent &&
-        node.parent.parent &&
-        node.parent.parent.type === 'LogicalExpression' &&
-        node.parent.parent.right === node.parent &&
-        !indentLogicalExpressions
-      );
-    }
-
-    /**
-     * Check if the node is the alternate member of a conditional expression
-     * @param {ASTNode} node The node to check
-     * @return {Boolean} true if its the case, false if not
-     */
-    function isAlternateInConditionalExp(node) {
-      return (
-        node.parent &&
-        node.parent.parent &&
-        node.parent.parent.type === 'ConditionalExpression' &&
-        node.parent.parent.alternate === node.parent &&
-        context.getSourceCode().getTokenBefore(node).value !== '('
-      );
-    }
-
-    /**
-     * Check if the node is within a DoExpression block but not the first expression (which need to be indented)
-     * @param {ASTNode} node The node to check
-     * @return {Boolean} true if its the case, false if not
-     */
-    function isSecondOrSubsequentExpWithinDoExp(node) {
-      /*
-        It returns true when node.parent.parent.parent.parent matches:
-
-        DoExpression({
-          ...,
-          body: BlockStatement({
-            ...,
-            body: [
-              ...,  // 1-n times
-              ExpressionStatement({
-                ...,
-                expression: JSXElement({
-                  ...,
-                  openingElement: JSXOpeningElement()  // the node
-                })
-              }),
-              ...  // 0-n times
-            ]
-          })
-        })
-
-        except:
-
-        DoExpression({
-          ...,
-          body: BlockStatement({
-            ...,
-            body: [
-              ExpressionStatement({
-                ...,
-                expression: JSXElement({
-                  ...,
-                  openingElement: JSXOpeningElement()  // the node
-                })
-              }),
-              ...  // 0-n times
-            ]
-          })
-        })
-      */
-      const isInExpStmt = (
-        node.parent &&
-        node.parent.parent &&
-        node.parent.parent.type === 'ExpressionStatement'
-      );
-      if (!isInExpStmt) {
-        return false;
-      }
-
-      const expStmt = node.parent.parent;
-      const isInBlockStmtWithinDoExp = (
-        expStmt.parent &&
-        expStmt.parent.type === 'BlockStatement' &&
-        expStmt.parent.parent &&
-        expStmt.parent.parent.type === 'DoExpression'
-      );
-      if (!isInBlockStmtWithinDoExp) {
-        return false;
-      }
-
-      const blockStmt = expStmt.parent;
-      const blockStmtFirstExp = blockStmt.body[0];
-      return !(blockStmtFirstExp === expStmt);
-    }
-
-    /**
-     * Check indent for nodes list
-     * @param {ASTNode} node The node to check
-     * @param {Number} indent needed indent
-     * @param {Boolean} [excludeCommas] skip comma on start of line
-     */
-    function checkNodesIndent(node, indent, excludeCommas) {
-      const nodeIndent = getNodeIndent(node, false, excludeCommas);
-      const isCorrectRightInLogicalExp = isRightInLogicalExp(node) && (nodeIndent - indent) === indentSize;
-      const isCorrectAlternateInCondExp = isAlternateInConditionalExp(node) && (nodeIndent - indent) === 0;
-      if (
-        nodeIndent !== indent &&
-        astUtil.isNodeFirstInLine(context, node) &&
-        !isCorrectRightInLogicalExp &&
-        !isCorrectAlternateInCondExp
-      ) {
-        report(node, indent, nodeIndent);
-      }
-    }
-
-    /**
-     * Check indent for Literal Node or JSXText Node
-     * @param {ASTNode} node The node to check
-     * @param {Number} indent needed indent
-     */
-    function checkLiteralNodeIndent(node, indent) {
-      const value = node.value;
-      const regExp = indentType === 'space' ? /\n( *)[\t ]*\S/g : /\n(\t*)[\t ]*\S/g;
-      const nodeIndentsPerLine = Array.from(
-        matchAll(String(value), regExp),
-        match => (match[1] ? match[1].length : 0)
-      );
-      const hasFirstInLineNode = nodeIndentsPerLine.length > 0;
-      if (
-        hasFirstInLineNode &&
-        !nodeIndentsPerLine.every(actualIndent => actualIndent === indent)
-      ) {
-        nodeIndentsPerLine.forEach((nodeIndent) => {
-          report(node, indent, nodeIndent);
-        });
-      }
-    }
-
-    function handleOpeningElement(node) {
-      const sourceCode = context.getSourceCode();
-      let prevToken = sourceCode.getTokenBefore(node);
-      if (!prevToken) {
-        return;
-      }
-      // Use the parent in a list or an array
-      if (prevToken.type === 'JSXText' || prevToken.type === 'Punctuator' && prevToken.value === ',') {
-        prevToken = sourceCode.getNodeByRangeIndex(prevToken.range[0]);
-        prevToken = prevToken.type === 'Literal' || prevToken.type === 'JSXText' ? prevToken.parent : prevToken;
-      // Use the first non-punctuator token in a conditional expression
-      } else if (prevToken.type === 'Punctuator' && prevToken.value === ':') {
-        do {
-          prevToken = sourceCode.getTokenBefore(prevToken);
-        } while (prevToken.type === 'Punctuator' && prevToken.value !== '/');
-        prevToken = sourceCode.getNodeByRangeIndex(prevToken.range[0]);
-        while (prevToken.parent && prevToken.parent.type !== 'ConditionalExpression') {
-          prevToken = prevToken.parent;
-        }
-      }
-      prevToken = prevToken.type === 'JSXExpressionContainer' ? prevToken.expression : prevToken;
-      const parentElementIndent = getNodeIndent(prevToken);
-      const indent = (
-        prevToken.loc.start.line === node.loc.start.line ||
-        isRightInLogicalExp(node) ||
-        isAlternateInConditionalExp(node) ||
-        isSecondOrSubsequentExpWithinDoExp(node)
-      ) ? 0 : indentSize;
-      checkNodesIndent(node, parentElementIndent + indent);
-    }
-
-    function handleClosingElement(node) {
-      if (!node.parent) {
-        return;
-      }
-      const peerElementIndent = getNodeIndent(node.parent.openingElement || node.parent.openingFragment);
-      checkNodesIndent(node, peerElementIndent);
-    }
-
-    function handleAttribute(node) {
-      if (!checkAttributes || (!node.value || node.value.type !== 'JSXExpressionContainer')) {
-        return;
-      }
-      const nameIndent = getNodeIndent(node.name);
-      const lastToken = context.getSourceCode().getLastToken(node.value);
-      const firstInLine = astUtil.getFirstNodeInLine(context, lastToken);
-      const indent = node.name.loc.start.line === firstInLine.loc.start.line ? 0 : nameIndent;
-      checkNodesIndent(firstInLine, indent);
-    }
-
-    function handleLiteral(node) {
-      if (!node.parent) {
-        return;
-      }
-      if (node.parent.type !== 'JSXElement' && node.parent.type !== 'JSXFragment') {
-        return;
-      }
-      const parentNodeIndent = getNodeIndent(node.parent);
-      checkLiteralNodeIndent(node, parentNodeIndent + indentSize);
-    }
-
-    return {
-      JSXOpeningElement: handleOpeningElement,
-      JSXOpeningFragment: handleOpeningElement,
-      JSXClosingElement: handleClosingElement,
-      JSXClosingFragment: handleClosingElement,
-      JSXAttribute: handleAttribute,
-      JSXExpressionContainer(node) {
-        if (!node.parent) {
-          return;
-        }
-        const parentNodeIndent = getNodeIndent(node.parent);
-        checkNodesIndent(node, parentNodeIndent + indentSize);
-      },
-      Literal: handleLiteral,
-      JSXText: handleLiteral
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-key.js b/node_modules/eslint-plugin-react/lib/rules/jsx-key.js
deleted file mode 100644
index 8daeebf..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-key.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * @fileoverview Report missing `key` props in iterators/collection literals.
- * @author Ben Mosher
- */
-
-'use strict';
-
-const hasProp = require('jsx-ast-utils/hasProp');
-const docsUrl = require('../util/docsUrl');
-const pragmaUtil = require('../util/pragma');
-
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const defaultOptions = {
-  checkFragmentShorthand: false
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Report missing `key` props in iterators/collection literals',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('jsx-key')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        checkFragmentShorthand: {
-          type: 'boolean',
-          default: defaultOptions.checkFragmentShorthand
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const options = Object.assign({}, defaultOptions, context.options[0]);
-    const checkFragmentShorthand = options.checkFragmentShorthand;
-    const reactPragma = pragmaUtil.getFromContext(context);
-    const fragmentPragma = pragmaUtil.getFragmentFromContext(context);
-
-    function checkIteratorElement(node) {
-      if (node.type === 'JSXElement' && !hasProp(node.openingElement.attributes, 'key')) {
-        context.report({
-          node,
-          message: 'Missing "key" prop for element in iterator'
-        });
-      } else if (checkFragmentShorthand && node.type === 'JSXFragment') {
-        context.report({
-          node,
-          message: `Missing "key" prop for element in iterator. Shorthand fragment syntax does not support providing keys. Use ${reactPragma}.${fragmentPragma} instead`
-        });
-      }
-    }
-
-    function getReturnStatement(body) {
-      return body.filter(item => item.type === 'ReturnStatement')[0];
-    }
-
-    return {
-      JSXElement(node) {
-        if (hasProp(node.openingElement.attributes, 'key')) {
-          return;
-        }
-
-        if (node.parent.type === 'ArrayExpression') {
-          context.report({
-            node,
-            message: 'Missing "key" prop for element in array'
-          });
-        }
-      },
-
-      JSXFragment(node) {
-        if (!checkFragmentShorthand) {
-          return;
-        }
-
-        if (node.parent.type === 'ArrayExpression') {
-          context.report({
-            node,
-            message: `Missing "key" prop for element in array. Shorthand fragment syntax does not support providing keys. Use ${reactPragma}.${fragmentPragma} instead`
-          });
-        }
-      },
-
-      // Array.prototype.map
-      CallExpression(node) {
-        if (node.callee && node.callee.type !== 'MemberExpression') {
-          return;
-        }
-
-        if (node.callee && node.callee.property && node.callee.property.name !== 'map') {
-          return;
-        }
-
-        const fn = node.arguments[0];
-        const isFn = fn && fn.type === 'FunctionExpression';
-        const isArrFn = fn && fn.type === 'ArrowFunctionExpression';
-
-        if (isArrFn && (fn.body.type === 'JSXElement' || fn.body.type === 'JSXFragment')) {
-          checkIteratorElement(fn.body);
-        }
-
-        if (isFn || isArrFn) {
-          if (fn.body.type === 'BlockStatement') {
-            const returnStatement = getReturnStatement(fn.body.body);
-            if (returnStatement && returnStatement.argument) {
-              checkIteratorElement(returnStatement.argument);
-            }
-          }
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-max-depth.js b/node_modules/eslint-plugin-react/lib/rules/jsx-max-depth.js
deleted file mode 100644
index 1e0edd5..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-max-depth.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * @fileoverview Validate JSX maximum depth
- * @author Chris<wfsr@foxmail.com>
- */
-
-'use strict';
-
-const has = require('has');
-const variableUtil = require('../util/variable');
-const jsxUtil = require('../util/jsx');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate JSX maximum depth',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-max-depth')
-    },
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          max: {
-            type: 'integer',
-            minimum: 0
-          }
-        },
-        additionalProperties: false
-      }
-    ]
-  },
-  create(context) {
-    const MESSAGE = 'Expected the depth of nested jsx elements to be <= {{needed}}, but found {{found}}.';
-    const DEFAULT_DEPTH = 2;
-
-    const option = context.options[0] || {};
-    const maxDepth = has(option, 'max') ? option.max : DEFAULT_DEPTH;
-
-    function isExpression(node) {
-      return node.type === 'JSXExpressionContainer';
-    }
-
-    function hasJSX(node) {
-      return jsxUtil.isJSX(node) || isExpression(node) && jsxUtil.isJSX(node.expression);
-    }
-
-    function isLeaf(node) {
-      const children = node.children;
-
-      return !children.length || !children.some(hasJSX);
-    }
-
-    function getDepth(node) {
-      let count = 0;
-
-      while (jsxUtil.isJSX(node.parent) || isExpression(node.parent)) {
-        node = node.parent;
-        if (jsxUtil.isJSX(node)) {
-          count++;
-        }
-      }
-
-      return count;
-    }
-
-
-    function report(node, depth) {
-      context.report({
-        node,
-        message: MESSAGE,
-        data: {
-          found: depth,
-          needed: maxDepth
-        }
-      });
-    }
-
-    function findJSXElementOrFragment(variables, name) {
-      function find(refs) {
-        let i = refs.length;
-
-        while (--i >= 0) {
-          if (has(refs[i], 'writeExpr')) {
-            const writeExpr = refs[i].writeExpr;
-
-            return jsxUtil.isJSX(writeExpr) &&
-              writeExpr ||
-              (writeExpr && writeExpr.type === 'Identifier') &&
-              findJSXElementOrFragment(variables, writeExpr.name);
-          }
-        }
-
-        return null;
-      }
-
-      const variable = variableUtil.getVariable(variables, name);
-      return variable && variable.references && find(variable.references);
-    }
-
-    function checkDescendant(baseDepth, children) {
-      baseDepth++;
-      (children || []).forEach((node) => {
-        if (!hasJSX(node)) {
-          return;
-        }
-
-        if (baseDepth > maxDepth) {
-          report(node, baseDepth);
-        } else if (!isLeaf(node)) {
-          checkDescendant(baseDepth, node.children);
-        }
-      });
-    }
-
-    function handleJSX(node) {
-      if (!isLeaf(node)) {
-        return;
-      }
-
-      const depth = getDepth(node);
-      if (depth > maxDepth) {
-        report(node, depth);
-      }
-    }
-
-    return {
-      JSXElement: handleJSX,
-      JSXFragment: handleJSX,
-
-      JSXExpressionContainer(node) {
-        if (node.expression.type !== 'Identifier') {
-          return;
-        }
-
-        const variables = variableUtil.variablesInScope(context);
-        const element = findJSXElementOrFragment(variables, node.expression.name);
-
-        if (element) {
-          const baseDepth = getDepth(node);
-          checkDescendant(baseDepth, element.children);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-max-props-per-line.js b/node_modules/eslint-plugin-react/lib/rules/jsx-max-props-per-line.js
deleted file mode 100644
index 387a9ff..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-max-props-per-line.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * @fileoverview Limit maximum of props on a single line in JSX
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Limit maximum of props on a single line in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-max-props-per-line')
-    },
-    fixable: 'code',
-    schema: [{
-      type: 'object',
-      properties: {
-        maximum: {
-          type: 'integer',
-          minimum: 1
-        },
-        when: {
-          type: 'string',
-          enum: ['always', 'multiline']
-        }
-      }
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const maximum = configuration.maximum || 1;
-    const when = configuration.when || 'always';
-
-    function getPropName(propNode) {
-      if (propNode.type === 'JSXSpreadAttribute') {
-        return context.getSourceCode().getText(propNode.argument);
-      }
-      return propNode.name.name;
-    }
-
-    function generateFixFunction(line, max) {
-      const sourceCode = context.getSourceCode();
-      const output = [];
-      const front = line[0].range[0];
-      const back = line[line.length - 1].range[1];
-      for (let i = 0; i < line.length; i += max) {
-        const nodes = line.slice(i, i + max);
-        output.push(nodes.reduce((prev, curr) => {
-          if (prev === '') {
-            return sourceCode.getText(curr);
-          }
-          return `${prev} ${sourceCode.getText(curr)}`;
-        }, ''));
-      }
-      const code = output.join('\n');
-      return function fix(fixer) {
-        return fixer.replaceTextRange([front, back], code);
-      };
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        if (!node.attributes.length) {
-          return;
-        }
-
-        if (when === 'multiline' && node.loc.start.line === node.loc.end.line) {
-          return;
-        }
-
-        const firstProp = node.attributes[0];
-        const linePartitionedProps = [[firstProp]];
-
-        node.attributes.reduce((last, decl) => {
-          if (last.loc.end.line === decl.loc.start.line) {
-            linePartitionedProps[linePartitionedProps.length - 1].push(decl);
-          } else {
-            linePartitionedProps.push([decl]);
-          }
-          return decl;
-        });
-
-        linePartitionedProps.forEach((propsInLine) => {
-          if (propsInLine.length > maximum) {
-            const name = getPropName(propsInLine[maximum]);
-            context.report({
-              node: propsInLine[maximum],
-              message: `Prop \`${name}\` must be placed on a new line`,
-              fix: generateFixFunction(propsInLine, maximum)
-            });
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-bind.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-bind.js
deleted file mode 100644
index 612f492..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-bind.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * @fileoverview Prevents usage of Function.prototype.bind and arrow functions
- *               in React component props.
- * @author Daniel Lo Nigro <dan.cx>
- * @author Jacky Ho
- */
-
-'use strict';
-
-const propName = require('jsx-ast-utils/propName');
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// -----------------------------------------------------------------------------
-// Rule Definition
-// -----------------------------------------------------------------------------
-
-const violationMessageStore = {
-  bindCall: 'JSX props should not use .bind()',
-  arrowFunc: 'JSX props should not use arrow functions',
-  bindExpression: 'JSX props should not use ::',
-  func: 'JSX props should not use functions'
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevents usage of Function.prototype.bind and arrow functions in React component props',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('jsx-no-bind')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        allowArrowFunctions: {
-          default: false,
-          type: 'boolean'
-        },
-        allowBind: {
-          default: false,
-          type: 'boolean'
-        },
-        allowFunctions: {
-          default: false,
-          type: 'boolean'
-        },
-        ignoreRefs: {
-          default: false,
-          type: 'boolean'
-        },
-        ignoreDOMComponents: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context) => {
-    const configuration = context.options[0] || {};
-
-    // Keep track of all the variable names pointing to a bind call,
-    // bind expression or an arrow function in different block statements
-    const blockVariableNameSets = {};
-
-    function setBlockVariableNameSet(blockStart) {
-      blockVariableNameSets[blockStart] = {
-        arrowFunc: new Set(),
-        bindCall: new Set(),
-        bindExpression: new Set(),
-        func: new Set()
-      };
-    }
-
-    function getNodeViolationType(node) {
-      const nodeType = node.type;
-
-      if (
-        !configuration.allowBind &&
-        nodeType === 'CallExpression' &&
-        node.callee.type === 'MemberExpression' &&
-        node.callee.property.type === 'Identifier' &&
-        node.callee.property.name === 'bind'
-      ) {
-        return 'bindCall';
-      }
-      if (nodeType === 'ConditionalExpression') {
-        return getNodeViolationType(node.test) ||
-               getNodeViolationType(node.consequent) ||
-               getNodeViolationType(node.alternate);
-      }
-      if (!configuration.allowArrowFunctions && nodeType === 'ArrowFunctionExpression') {
-        return 'arrowFunc';
-      }
-      if (!configuration.allowFunctions && nodeType === 'FunctionExpression') {
-        return 'func';
-      }
-      if (!configuration.allowBind && nodeType === 'BindExpression') {
-        return 'bindExpression';
-      }
-
-      return null;
-    }
-
-    function addVariableNameToSet(violationType, variableName, blockStart) {
-      blockVariableNameSets[blockStart][violationType].add(variableName);
-    }
-
-    function getBlockStatementAncestors(node) {
-      return context.getAncestors(node).reverse().filter(
-        ancestor => ancestor.type === 'BlockStatement'
-      );
-    }
-
-    function reportVariableViolation(node, name, blockStart) {
-      const blockSets = blockVariableNameSets[blockStart];
-      const violationTypes = Object.keys(blockSets);
-
-      return violationTypes.find((type) => {
-        if (blockSets[type].has(name)) {
-          context.report({node, message: violationMessageStore[type]});
-          return true;
-        }
-
-        return false;
-      });
-    }
-
-    function findVariableViolation(node, name) {
-      getBlockStatementAncestors(node).find(
-        block => reportVariableViolation(node, name, block.start)
-      );
-    }
-
-    return {
-      BlockStatement(node) {
-        setBlockVariableNameSet(node.start);
-      },
-
-      VariableDeclarator(node) {
-        if (!node.init) {
-          return;
-        }
-        const blockAncestors = getBlockStatementAncestors(node);
-        const variableViolationType = getNodeViolationType(node.init);
-
-        if (
-          blockAncestors.length > 0 &&
-          variableViolationType &&
-          node.parent.kind === 'const' // only support const right now
-        ) {
-          addVariableNameToSet(
-            variableViolationType, node.id.name, blockAncestors[0].start
-          );
-        }
-      },
-
-      JSXAttribute(node) {
-        const isRef = configuration.ignoreRefs && propName(node) === 'ref';
-        if (isRef || !node.value || !node.value.expression) {
-          return;
-        }
-        const isDOMComponent = jsxUtil.isDOMComponent(node.parent);
-        if (configuration.ignoreDOMComponents && isDOMComponent) {
-          return;
-        }
-        const valueNode = node.value.expression;
-        const valueNodeType = valueNode.type;
-        const nodeViolationType = getNodeViolationType(valueNode);
-
-        if (valueNodeType === 'Identifier') {
-          findVariableViolation(node, valueNode.name);
-        } else if (nodeViolationType) {
-          context.report({
-            node, message: violationMessageStore[nodeViolationType]
-          });
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-comment-textnodes.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-comment-textnodes.js
deleted file mode 100644
index e245d11..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-comment-textnodes.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * @fileoverview Comments inside children section of tag should be placed inside braces.
- * @author Ben Vinegar
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Comments inside children section of tag should be placed inside braces',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('jsx-no-comment-textnodes')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {},
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function reportLiteralNode(node) {
-      context.report({
-        node,
-        message: 'Comments inside children section of tag should be placed inside braces'
-      });
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      Literal(node) {
-        // since babel-eslint has the wrong node.raw, we'll get the source text
-        const rawValue = context.getSourceCode().getText(node);
-        if (/^\s*\/(\/|\*)/m.test(rawValue)) {
-          // inside component, e.g. <div>literal</div>
-          if (node.parent.type !== 'JSXAttribute' &&
-              node.parent.type !== 'JSXExpressionContainer' &&
-              node.parent.type.indexOf('JSX') !== -1) {
-            reportLiteralNode(node);
-          }
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-duplicate-props.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-duplicate-props.js
deleted file mode 100644
index 7d9e006..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-duplicate-props.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @fileoverview Enforce no duplicate props
- * @author Markus Ånöstam
- */
-
-'use strict';
-
-const has = require('has');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce no duplicate props',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('jsx-no-duplicate-props')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignoreCase: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const ignoreCase = configuration.ignoreCase || false;
-
-    return {
-      JSXOpeningElement(node) {
-        const props = {};
-
-        node.attributes.forEach((decl) => {
-          if (decl.type === 'JSXSpreadAttribute') {
-            return;
-          }
-
-          let name = decl.name.name;
-
-          if (typeof name !== 'string') {
-            return;
-          }
-
-          if (ignoreCase) {
-            name = name.toLowerCase();
-          }
-
-          if (has(props, name)) {
-            context.report({
-              node: decl,
-              message: 'No duplicate props allowed'
-            });
-          } else {
-            props[name] = 1;
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js
deleted file mode 100644
index f2bb83d..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * @fileoverview Prevent using string literals in React component definition
- * @author Caleb Morris
- * @author David Buchan-Swanson
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent using string literals in React component definition',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-no-literals')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        noStrings: {
-          type: 'boolean'
-        },
-        allowedStrings: {
-          type: 'array',
-          uniqueItems: true,
-          items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function trimIfString(val) {
-      return typeof val === 'string' ? val.trim() : val;
-    }
-
-    const defaults = {noStrings: false, allowedStrings: []};
-    const config = Object.assign({}, defaults, context.options[0] || {});
-    config.allowedStrings = new Set(config.allowedStrings.map(trimIfString));
-
-    const message = config.noStrings ?
-      'Strings not allowed in JSX files' :
-      'Missing JSX expression container around literal string';
-
-    function reportLiteralNode(node) {
-      context.report({
-        node,
-        message: `${message}: “${context.getSourceCode().getText(node).trim()}”`
-      });
-    }
-
-    function getParentIgnoringBinaryExpressions(node) {
-      let current = node;
-      while (current.parent.type === 'BinaryExpression') {
-        current = current.parent;
-      }
-      return current.parent;
-    }
-
-    function getValidation(node) {
-      if (config.allowedStrings.has(trimIfString(node.value))) {
-        return false;
-      }
-      const parent = getParentIgnoringBinaryExpressions(node);
-      const standard = !/^[\s]+$/.test(node.value) &&
-          typeof node.value === 'string' &&
-          parent.type.indexOf('JSX') !== -1 &&
-          parent.type !== 'JSXAttribute';
-      if (config.noStrings) {
-        return standard;
-      }
-      return standard && parent.type !== 'JSXExpressionContainer';
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      Literal(node) {
-        if (getValidation(node)) {
-          reportLiteralNode(node);
-        }
-      },
-
-      JSXText(node) {
-        if (getValidation(node)) {
-          reportLiteralNode(node);
-        }
-      },
-
-      TemplateLiteral(node) {
-        const parent = getParentIgnoringBinaryExpressions(node);
-        if (config.noStrings && parent.type === 'JSXExpressionContainer') {
-          reportLiteralNode(node);
-        }
-      }
-
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-script-url.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-script-url.js
deleted file mode 100644
index 63cf7dd..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-script-url.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * @fileoverview Prevent usage of `javascript:` URLs
- * @author Sergei Startsev
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-// https://github.com/facebook/react/blob/d0ebde77f6d1232cefc0da184d731943d78e86f2/packages/react-dom/src/shared/sanitizeURL.js#L30
-/* eslint-disable-next-line max-len, no-control-regex */
-const isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;
-
-function hasJavaScriptProtocol(attr) {
-  return attr.value.type === 'Literal' &&
-    isJavaScriptProtocol.test(attr.value.value);
-}
-
-function shouldVerifyElement(node, config) {
-  const name = node.name && node.name.name;
-  return name === 'a' || config.find(i => i.name === name);
-}
-
-function shouldVerifyProp(node, config) {
-  const name = node.name && node.name.name;
-  const parentName = node.parent.name && node.parent.name.name;
-
-  if (parentName === 'a' && name === 'href') {
-    return true;
-  }
-
-  const el = config.find(i => i.name === parentName);
-  if (!el) {
-    return false;
-  }
-
-  const props = el.props || [];
-  return node.name && props.indexOf(name) !== -1;
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid `javascript:` URLs',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('jsx-no-script-url')
-    },
-    schema: [{
-      type: 'array',
-      uniqueItems: true,
-      items: {
-        type: 'object',
-        properties: {
-          name: {
-            type: 'string'
-          },
-          props: {
-            type: 'array',
-            items: {
-              type: 'string',
-              uniqueItems: true
-            }
-          }
-        },
-        required: ['name', 'props'],
-        additionalProperties: false
-      }
-    }]
-  },
-
-  create(context) {
-    const config = context.options[0] || [];
-    return {
-      JSXAttribute(node) {
-        const parent = node.parent;
-        if (shouldVerifyElement(parent, config) && shouldVerifyProp(node, config) && hasJavaScriptProtocol(node)) {
-          context.report({
-            node,
-            message: 'A future version of React will block javascript: URLs as a security precaution. ' +
-              'Use event handlers instead if you can. If you need to generate unsafe HTML, try using dangerouslySetInnerHTML instead.'
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-target-blank.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-target-blank.js
deleted file mode 100644
index 41b3de4..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-target-blank.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * @fileoverview Forbid target='_blank' attribute
- * @author Kevin Miller
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const linkComponentsUtil = require('../util/linkComponents');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function isTargetBlank(attr) {
-  return attr.name &&
-    attr.name.name === 'target' &&
-    attr.value &&
-    ((
-      attr.value.type === 'Literal' &&
-      attr.value.value.toLowerCase() === '_blank'
-    ) || (
-      attr.value.type === 'JSXExpressionContainer' &&
-      attr.value.expression &&
-      attr.value.expression.value &&
-      attr.value.expression.value.toLowerCase() === '_blank'
-    ));
-}
-
-function hasExternalLink(element, linkAttribute) {
-  return element.attributes.some(attr => attr.name &&
-      attr.name.name === linkAttribute &&
-      attr.value.type === 'Literal' &&
-      /^(?:\w+:|\/\/)/.test(attr.value.value));
-}
-
-function hasDynamicLink(element, linkAttribute) {
-  return element.attributes.some(attr => attr.name &&
-    attr.name.name === linkAttribute &&
-    attr.value.type === 'JSXExpressionContainer');
-}
-
-function hasSecureRel(element, allowReferrer) {
-  return element.attributes.find((attr) => {
-    if (attr.type === 'JSXAttribute' && attr.name.name === 'rel') {
-      const value = attr.value &&
-        ((
-          attr.value.type === 'Literal' &&
-          attr.value.value
-        ) || (
-          attr.value.type === 'JSXExpressionContainer' &&
-          attr.value.expression &&
-          attr.value.expression.value
-        ));
-      const tags = value && value.toLowerCase && value.toLowerCase().split(' ');
-      return tags && tags.indexOf('noopener') >= 0 && (allowReferrer || tags.indexOf('noreferrer') >= 0);
-    }
-    return false;
-  });
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Forbid target="_blank" attribute without rel="noopener noreferrer"',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('jsx-no-target-blank')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        allowReferrer: {
-          type: 'boolean'
-        },
-        enforceDynamicLinks: {
-          enum: ['always', 'never']
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const allowReferrer = configuration.allowReferrer || false;
-    const enforceDynamicLinks = configuration.enforceDynamicLinks || 'always';
-    const components = linkComponentsUtil.getLinkComponents(context);
-
-    return {
-      JSXAttribute(node) {
-        if (
-          !components.has(node.parent.name.name) ||
-          !isTargetBlank(node) ||
-          hasSecureRel(node.parent, allowReferrer)
-        ) {
-          return;
-        }
-
-        const linkAttribute = components.get(node.parent.name.name);
-
-        if (hasExternalLink(node.parent, linkAttribute) || (enforceDynamicLinks === 'always' && hasDynamicLink(node.parent, linkAttribute))) {
-          context.report({
-            node,
-            message: 'Using target="_blank" without rel="noopener noreferrer" ' +
-              'is a security risk: see https://mathiasbynens.github.io/rel-noopener'
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-undef.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-undef.js
deleted file mode 100644
index a887e48..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-undef.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * @fileoverview Disallow undeclared variables in JSX
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Disallow undeclared variables in JSX',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('jsx-no-undef')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        allowGlobals: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const config = context.options[0] || {};
-    const allowGlobals = config.allowGlobals || false;
-
-    /**
-     * Compare an identifier with the variables declared in the scope
-     * @param {ASTNode} node - Identifier or JSXIdentifier node
-     * @returns {void}
-     */
-    function checkIdentifierInJSX(node) {
-      let scope = context.getScope();
-      const sourceCode = context.getSourceCode();
-      const sourceType = sourceCode.ast.sourceType;
-      let variables = scope.variables;
-      let scopeType = 'global';
-      let i;
-      let len;
-
-      // Ignore 'this' keyword (also maked as JSXIdentifier when used in JSX)
-      if (node.name === 'this') {
-        return;
-      }
-
-      if (!allowGlobals && sourceType === 'module') {
-        scopeType = 'module';
-      }
-
-      while (scope.type !== scopeType) {
-        scope = scope.upper;
-        variables = scope.variables.concat(variables);
-      }
-      if (scope.childScopes.length) {
-        variables = scope.childScopes[0].variables.concat(variables);
-        // Temporary fix for babel-eslint
-        if (scope.childScopes[0].childScopes.length) {
-          variables = scope.childScopes[0].childScopes[0].variables.concat(variables);
-        }
-      }
-
-      for (i = 0, len = variables.length; i < len; i++) {
-        if (variables[i].name === node.name) {
-          return;
-        }
-      }
-
-      context.report({
-        node,
-        message: `'${node.name}' is not defined.`
-      });
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        switch (node.name.type) {
-          case 'JSXIdentifier':
-            if (jsxUtil.isDOMComponent(node)) {
-              return;
-            }
-            node = node.name;
-            break;
-          case 'JSXMemberExpression':
-            node = node.name;
-            do {
-              node = node.object;
-            } while (node && node.type !== 'JSXIdentifier');
-            break;
-          case 'JSXNamespacedName':
-            node = node.name.namespace;
-            break;
-          default:
-            break;
-        }
-        checkIdentifierInJSX(node);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-no-useless-fragment.js b/node_modules/eslint-plugin-react/lib/rules/jsx-no-useless-fragment.js
deleted file mode 100644
index 7ff30c2..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-no-useless-fragment.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
- * @fileoverview Disallow useless fragments
- */
-
-'use strict';
-
-const arrayIncludes = require('array-includes');
-
-const pragmaUtil = require('../util/pragma');
-const jsxUtil = require('../util/jsx');
-const docsUrl = require('../util/docsUrl');
-
-function isJSXText(node) {
-  return !!node && (node.type === 'JSXText' || node.type === 'Literal');
-}
-
-/**
- * @param {string} text
- * @returns {boolean}
- */
-function isOnlyWhitespace(text) {
-  return text.trim().length === 0;
-}
-
-/**
- * @param {ASTNode} node
- * @returns {boolean}
- */
-function isNonspaceJSXTextOrJSXCurly(node) {
-  return (isJSXText(node) && !isOnlyWhitespace(node.raw)) || node.type === 'JSXExpressionContainer';
-}
-
-/**
- * Somehow fragment like this is useful: <Foo content={<>ee eeee eeee ...</>} />
- * @param {ASTNode} node
- * @returns {boolean}
- */
-function isFragmentWithOnlyTextAndIsNotChild(node) {
-  return node.children.length === 1 &&
-    isJSXText(node.children[0]) &&
-    !(node.parent.type === 'JSXElement' || node.parent.type === 'JSXFragment');
-}
-
-/**
- * @param {string} text
- * @returns {string}
- */
-function trimLikeReact(text) {
-  const leadingSpaces = /^\s*/.exec(text)[0];
-  const trailingSpaces = /\s*$/.exec(text)[0];
-
-  const start = arrayIncludes(leadingSpaces, '\n') ? leadingSpaces.length : 0;
-  const end = arrayIncludes(trailingSpaces, '\n') ? text.length - trailingSpaces.length : text.length;
-
-  return text.slice(start, end);
-}
-
-/**
- * Test if node is like `<Fragment key={_}>_</Fragment>`
- * @param {JSXElement} node
- * @returns {boolean}
- */
-function isKeyedElement(node) {
-  return node.type === 'JSXElement' &&
-    node.openingElement.attributes &&
-    node.openingElement.attributes.some(jsxUtil.isJSXAttributeKey);
-}
-
-module.exports = {
-  meta: {
-    type: 'suggestion',
-    fixable: 'code',
-    docs: {
-      description: 'Disallow unnecessary fragments',
-      category: 'Possible Errors',
-      recommended: false,
-      url: docsUrl('jsx-no-useless-fragment')
-    },
-    messages: {
-      NeedsMoreChidren: 'Fragments should contain more than one child - otherwise, there‘s no need for a Fragment at all.',
-      ChildOfHtmlElement: 'Passing a fragment to an HTML element is useless.'
-    }
-  },
-
-  create(context) {
-    const reactPragma = pragmaUtil.getFromContext(context);
-    const fragmentPragma = pragmaUtil.getFragmentFromContext(context);
-
-    /**
-     * Test whether a node is an padding spaces trimmed by react runtime.
-     * @param {ASTNode} node
-     * @returns {boolean}
-     */
-    function isPaddingSpaces(node) {
-      return isJSXText(node) &&
-        isOnlyWhitespace(node.raw) &&
-        arrayIncludes(node.raw, '\n');
-    }
-
-    /**
-     * Test whether a JSXElement has less than two children, excluding paddings spaces.
-     * @param {JSXElement|JSXFragment} node
-     * @returns {boolean}
-     */
-    function hasLessThanTwoChildren(node) {
-      if (!node || !node.children || node.children.length < 2) {
-        return true;
-      }
-
-      return (
-        node.children.length -
-        (+isPaddingSpaces(node.children[0])) -
-        (+isPaddingSpaces(node.children[node.children.length - 1]))
-      ) < 2;
-    }
-
-    /**
-     * @param {JSXElement|JSXFragment} node
-     * @returns {boolean}
-     */
-    function isChildOfHtmlElement(node) {
-      return node.parent.type === 'JSXElement' &&
-        node.parent.openingElement.name.type === 'JSXIdentifier' &&
-        /^[a-z]+$/.test(node.parent.openingElement.name.name);
-    }
-
-    /**
-     * @param {JSXElement|JSXFragment} node
-     * @return {boolean}
-     */
-    function isChildOfComponentElement(node) {
-      return node.parent.type === 'JSXElement' &&
-        !isChildOfHtmlElement(node) &&
-        !jsxUtil.isFragment(node.parent, reactPragma, fragmentPragma);
-    }
-
-    /**
-     * @param {ASTNode} node
-     * @returns {boolean}
-     */
-    function canFix(node) {
-      // Not safe to fix fragments without a jsx parent.
-      if (!(node.parent.type === 'JSXElement' || node.parent.type === 'JSXFragment')) {
-        // const a = <></>
-        if (node.children.length === 0) {
-          return false;
-        }
-
-        // const a = <>cat {meow}</>
-        if (node.children.some(isNonspaceJSXTextOrJSXCurly)) {
-          return false;
-        }
-      }
-
-      // Not safe to fix `<Eeee><>foo</></Eeee>` because `Eeee` might require its children be a ReactElement.
-      if (isChildOfComponentElement(node)) {
-        return false;
-      }
-
-      return true;
-    }
-
-    /**
-     * @param {ASTNode} node
-     * @returns {Function | undefined}
-     */
-    function getFix(node) {
-      if (!canFix(node)) {
-        return undefined;
-      }
-
-      return function fix(fixer) {
-        const opener = node.type === 'JSXFragment' ? node.openingFragment : node.openingElement;
-        const closer = node.type === 'JSXFragment' ? node.closingFragment : node.closingElement;
-        const childrenText = context.getSourceCode().getText().slice(opener.range[1], closer.range[0]);
-
-        return fixer.replaceText(node, trimLikeReact(childrenText));
-      };
-    }
-
-    function checkNode(node) {
-      if (isKeyedElement(node)) {
-        return;
-      }
-
-      if (hasLessThanTwoChildren(node) && !isFragmentWithOnlyTextAndIsNotChild(node)) {
-        context.report({
-          node,
-          messageId: 'NeedsMoreChidren',
-          fix: getFix(node)
-        });
-      }
-
-      if (isChildOfHtmlElement(node)) {
-        context.report({
-          node,
-          messageId: 'ChildOfHtmlElement',
-          fix: getFix(node)
-        });
-      }
-    }
-
-    return {
-      JSXElement(node) {
-        if (jsxUtil.isFragment(node, reactPragma, fragmentPragma)) {
-          checkNode(node);
-        }
-      },
-      JSXFragment: checkNode
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-one-expression-per-line.js b/node_modules/eslint-plugin-react/lib/rules/jsx-one-expression-per-line.js
deleted file mode 100644
index 093969d..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-one-expression-per-line.js
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * @fileoverview Limit to one expression per line in JSX
- * @author Mark Ivan Allen <Vydia.com>
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const optionDefaults = {
-  allow: 'none'
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Limit to one expression per line in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-one-expression-per-line')
-    },
-    fixable: 'whitespace',
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          allow: {
-            enum: ['none', 'literal', 'single-child']
-          }
-        },
-        default: optionDefaults,
-        additionalProperties: false
-      }
-    ]
-  },
-
-  create(context) {
-    const options = Object.assign({}, optionDefaults, context.options[0]);
-
-    function nodeKey(node) {
-      return `${node.loc.start.line},${node.loc.start.column}`;
-    }
-
-    function nodeDescriptor(n) {
-      return n.openingElement ? n.openingElement.name.name : context.getSourceCode().getText(n).replace(/\n/g, '');
-    }
-
-    function handleJSX(node) {
-      const children = node.children;
-
-      if (!children || !children.length) {
-        return;
-      }
-
-      const openingElement = node.openingElement || node.openingFragment;
-      const closingElement = node.closingElement || node.closingFragment;
-      const openingElementStartLine = openingElement.loc.start.line;
-      const openingElementEndLine = openingElement.loc.end.line;
-      const closingElementStartLine = closingElement.loc.start.line;
-      const closingElementEndLine = closingElement.loc.end.line;
-
-      if (children.length === 1) {
-        const child = children[0];
-        if (
-          openingElementStartLine === openingElementEndLine &&
-          openingElementEndLine === closingElementStartLine &&
-          closingElementStartLine === closingElementEndLine &&
-          closingElementEndLine === child.loc.start.line &&
-          child.loc.start.line === child.loc.end.line
-        ) {
-          if (
-            options.allow === 'single-child' ||
-            options.allow === 'literal' && (child.type === 'Literal' || child.type === 'JSXText')
-          ) {
-            return;
-          }
-        }
-      }
-
-      const childrenGroupedByLine = {};
-      const fixDetailsByNode = {};
-
-      children.forEach((child) => {
-        let countNewLinesBeforeContent = 0;
-        let countNewLinesAfterContent = 0;
-
-        if (child.type === 'Literal' || child.type === 'JSXText') {
-          if (jsxUtil.isWhiteSpaces(child.raw)) {
-            return;
-          }
-
-          countNewLinesBeforeContent = (child.raw.match(/^\s*\n/g) || []).length;
-          countNewLinesAfterContent = (child.raw.match(/\n\s*$/g) || []).length;
-        }
-
-        const startLine = child.loc.start.line + countNewLinesBeforeContent;
-        const endLine = child.loc.end.line - countNewLinesAfterContent;
-
-        if (startLine === endLine) {
-          if (!childrenGroupedByLine[startLine]) {
-            childrenGroupedByLine[startLine] = [];
-          }
-          childrenGroupedByLine[startLine].push(child);
-        } else {
-          if (!childrenGroupedByLine[startLine]) {
-            childrenGroupedByLine[startLine] = [];
-          }
-          childrenGroupedByLine[startLine].push(child);
-          if (!childrenGroupedByLine[endLine]) {
-            childrenGroupedByLine[endLine] = [];
-          }
-          childrenGroupedByLine[endLine].push(child);
-        }
-      });
-
-      Object.keys(childrenGroupedByLine).forEach((_line) => {
-        const line = parseInt(_line, 10);
-        const firstIndex = 0;
-        const lastIndex = childrenGroupedByLine[line].length - 1;
-
-        childrenGroupedByLine[line].forEach((child, i) => {
-          let prevChild;
-          let nextChild;
-
-          if (i === firstIndex) {
-            if (line === openingElementEndLine) {
-              prevChild = openingElement;
-            }
-          } else {
-            prevChild = childrenGroupedByLine[line][i - 1];
-          }
-
-          if (i === lastIndex) {
-            if (line === closingElementStartLine) {
-              nextChild = closingElement;
-            }
-          } else {
-            // We don't need to append a trailing because the next child will prepend a leading.
-            // nextChild = childrenGroupedByLine[line][i + 1];
-          }
-
-          function spaceBetweenPrev() {
-            return ((prevChild.type === 'Literal' || prevChild.type === 'JSXText') && / $/.test(prevChild.raw)) ||
-              ((child.type === 'Literal' || child.type === 'JSXText') && /^ /.test(child.raw)) ||
-              context.getSourceCode().isSpaceBetweenTokens(prevChild, child);
-          }
-
-          function spaceBetweenNext() {
-            return ((nextChild.type === 'Literal' || nextChild.type === 'JSXText') && /^ /.test(nextChild.raw)) ||
-              ((child.type === 'Literal' || child.type === 'JSXText') && / $/.test(child.raw)) ||
-              context.getSourceCode().isSpaceBetweenTokens(child, nextChild);
-          }
-
-          if (!prevChild && !nextChild) {
-            return;
-          }
-
-          const source = context.getSourceCode().getText(child);
-          const leadingSpace = !!(prevChild && spaceBetweenPrev());
-          const trailingSpace = !!(nextChild && spaceBetweenNext());
-          const leadingNewLine = !!prevChild;
-          const trailingNewLine = !!nextChild;
-
-          const key = nodeKey(child);
-
-          if (!fixDetailsByNode[key]) {
-            fixDetailsByNode[key] = {
-              node: child,
-              source,
-              descriptor: nodeDescriptor(child)
-            };
-          }
-
-          if (leadingSpace) {
-            fixDetailsByNode[key].leadingSpace = true;
-          }
-          if (leadingNewLine) {
-            fixDetailsByNode[key].leadingNewLine = true;
-          }
-          if (trailingNewLine) {
-            fixDetailsByNode[key].trailingNewLine = true;
-          }
-          if (trailingSpace) {
-            fixDetailsByNode[key].trailingSpace = true;
-          }
-        });
-      });
-
-      Object.keys(fixDetailsByNode).forEach((key) => {
-        const details = fixDetailsByNode[key];
-
-        const nodeToReport = details.node;
-        const descriptor = details.descriptor;
-        const source = details.source.replace(/(^ +| +(?=\n)*$)/g, '');
-
-        const leadingSpaceString = details.leadingSpace ? '\n{\' \'}' : '';
-        const trailingSpaceString = details.trailingSpace ? '{\' \'}\n' : '';
-        const leadingNewLineString = details.leadingNewLine ? '\n' : '';
-        const trailingNewLineString = details.trailingNewLine ? '\n' : '';
-
-        const replaceText = `${leadingSpaceString}${leadingNewLineString}${source}${trailingNewLineString}${trailingSpaceString}`;
-
-        context.report({
-          node: nodeToReport,
-          message: `\`${descriptor}\` must be placed on a new line`,
-          fix(fixer) {
-            return fixer.replaceText(nodeToReport, replaceText);
-          }
-        });
-      });
-    }
-
-    return {
-      JSXElement: handleJSX,
-      JSXFragment: handleJSX
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-pascal-case.js b/node_modules/eslint-plugin-react/lib/rules/jsx-pascal-case.js
deleted file mode 100644
index e6e1339..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-pascal-case.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @fileoverview Enforce PascalCase for user-defined JSX components
- * @author Jake Marsh
- */
-
-'use strict';
-
-const elementType = require('jsx-ast-utils/elementType');
-const XRegExp = require('xregexp');
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-// eslint-disable-next-line no-new
-const hasU = (function hasU() { try { new RegExp('o', 'u'); return true; } catch (e) { return false; } }());
-
-const PASCAL_CASE_REGEX = XRegExp('^(.*[.])*([\\p{Lu}]|[\\p{Lu}]+[\\p{Ll}0-9]+(?:[\\p{Lu}0-9]+[\\p{Ll}0-9]*)*)$', hasU ? 'u' : '');
-const ALL_CAPS_TAG_REGEX = XRegExp('^[\\p{Lu}0-9]+([\\p{Lu}0-9_]*[\\p{Lu}0-9]+)?$', hasU ? 'u' : '');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce PascalCase for user-defined JSX components',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-pascal-case')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        allowAllCaps: {
-          type: 'boolean'
-        },
-        ignore: {
-          type: 'array'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const allowAllCaps = configuration.allowAllCaps || false;
-    const ignore = configuration.ignore || [];
-
-    return {
-      JSXOpeningElement(node) {
-        let name = elementType(node);
-        if (name.length === 1) return undefined;
-
-        // Get namespace if the type is JSXNamespacedName or JSXMemberExpression
-        if (name.indexOf(':') > -1) {
-          name = name.substring(0, name.indexOf(':'));
-        } else if (name.indexOf('.') > -1) {
-          name = name.substring(0, name.indexOf('.'));
-        }
-
-        const isPascalCase = PASCAL_CASE_REGEX.test(name);
-        const isCompatTag = jsxUtil.isDOMComponent(node);
-        const isAllowedAllCaps = allowAllCaps && ALL_CAPS_TAG_REGEX.test(name);
-        const isIgnored = ignore.indexOf(name) !== -1;
-
-        if (!isPascalCase && !isCompatTag && !isAllowedAllCaps && !isIgnored) {
-          let message = `Imported JSX component ${name} must be in PascalCase`;
-
-          if (allowAllCaps) {
-            message += ' or SCREAMING_SNAKE_CASE';
-          }
-
-          context.report({node, message});
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces.js b/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces.js
deleted file mode 100644
index a44494e..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-multi-spaces.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * @fileoverview Disallow multiple spaces between inline JSX props
- * @author Adrian Moennich
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Disallow multiple spaces between inline JSX props',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-props-no-multi-spaces')
-    },
-    fixable: 'code',
-    schema: []
-  },
-
-  create(context) {
-    function getPropName(propNode) {
-      switch (propNode.type) {
-        case 'JSXSpreadAttribute':
-          return context.getSourceCode().getText(propNode.argument);
-        case 'JSXIdentifier':
-          return propNode.name;
-        case 'JSXMemberExpression':
-          return `${getPropName(propNode.object)}.${propNode.property.name}`;
-        default:
-          return propNode.name.name;
-      }
-    }
-
-    function checkSpacing(prev, node) {
-      if (prev.loc.end.line !== node.loc.end.line) {
-        return;
-      }
-      const between = context.getSourceCode().text.slice(prev.range[1], node.range[0]);
-      if (between !== ' ') {
-        context.report({
-          node,
-          message: `Expected only one space between "${getPropName(prev)}" and "${getPropName(node)}"`,
-          fix(fixer) {
-            return fixer.replaceTextRange([prev.range[1], node.range[0]], ' ');
-          }
-        });
-      }
-    }
-
-    function containsGenericType(node) {
-      const containsTypeParams = typeof node.typeParameters !== 'undefined';
-      return containsTypeParams && node.typeParameters.type === 'TSTypeParameterInstantiation';
-    }
-
-    function getGenericNode(node) {
-      const name = node.name;
-      if (containsGenericType(node)) {
-        const type = node.typeParameters;
-
-        return Object.assign(
-          {},
-          node,
-          {
-            range: [
-              name.range[0],
-              type.range[1]
-            ]
-          }
-        );
-      }
-
-      return name;
-    }
-
-    return {
-      JSXOpeningElement(node) {
-        node.attributes.reduce((prev, prop) => {
-          checkSpacing(prev, prop);
-          return prop;
-        }, getGenericNode(node));
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-spreading.js b/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-spreading.js
deleted file mode 100644
index 76e5b0b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-props-no-spreading.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * @fileoverview Prevent JSX prop spreading
- * @author Ashish Gambhir
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const OPTIONS = {ignore: 'ignore', enforce: 'enforce'};
-const DEFAULTS = {
-  html: OPTIONS.enforce,
-  custom: OPTIONS.enforce,
-  explicitSpread: OPTIONS.enforce,
-  exceptions: []
-};
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent JSX prop spreading',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('jsx-props-no-spreading')
-    },
-    schema: [{
-      allOf: [{
-        type: 'object',
-        properties: {
-          html: {
-            enum: [OPTIONS.enforce, OPTIONS.ignore]
-          },
-          custom: {
-            enum: [OPTIONS.enforce, OPTIONS.ignore]
-          },
-          exceptions: {
-            type: 'array',
-            items: {
-              type: 'string',
-              uniqueItems: true
-            }
-          }
-        }
-      }, {
-        not: {
-          type: 'object',
-          required: ['html', 'custom'],
-          properties: {
-            html: {
-              enum: [OPTIONS.ignore]
-            },
-            custom: {
-              enum: [OPTIONS.ignore]
-            },
-            exceptions: {
-              type: 'array',
-              minItems: 0,
-              maxItems: 0
-            }
-          }
-        }
-      }]
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const ignoreHtmlTags = (configuration.html || DEFAULTS.html) === OPTIONS.ignore;
-    const ignoreCustomTags = (configuration.custom || DEFAULTS.custom) === OPTIONS.ignore;
-    const ignoreExplicitSpread = (configuration.explicitSpread || DEFAULTS.explicitSpread) === OPTIONS.ignore;
-    const exceptions = configuration.exceptions || DEFAULTS.exceptions;
-    const isException = (tag, allExceptions) => allExceptions.indexOf(tag) !== -1;
-    const isProperty = property => property.type === 'Property';
-    const getTagNameFromMemberExpression = node => `${node.property.parent.object.name}.${node.property.name}`;
-    return {
-      JSXSpreadAttribute(node) {
-        const jsxOpeningElement = node.parent.name;
-        const type = jsxOpeningElement.type;
-
-        let tagName;
-        if (type === 'JSXIdentifier') {
-          tagName = jsxOpeningElement.name;
-        } else if (type === 'JSXMemberExpression') {
-          tagName = getTagNameFromMemberExpression(jsxOpeningElement);
-        } else {
-          tagName = undefined;
-        }
-
-        const isHTMLTag = tagName && tagName[0] !== tagName[0].toUpperCase();
-        const isCustomTag = tagName && (tagName[0] === tagName[0].toUpperCase() || tagName.includes('.'));
-        if (
-          isHTMLTag &&
-          ((ignoreHtmlTags && !isException(tagName, exceptions)) ||
-          (!ignoreHtmlTags && isException(tagName, exceptions)))
-        ) {
-          return;
-        }
-        if (
-          isCustomTag &&
-          ((ignoreCustomTags && !isException(tagName, exceptions)) ||
-          (!ignoreCustomTags && isException(tagName, exceptions)))
-        ) {
-          return;
-        }
-        if (
-          ignoreExplicitSpread &&
-          node.argument.type === 'ObjectExpression' &&
-          node.argument.properties.every(isProperty)
-        ) {
-          return;
-        }
-        context.report({
-          node,
-          message: 'Prop spreading is forbidden'
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-sort-default-props.js b/node_modules/eslint-plugin-react/lib/rules/jsx-sort-default-props.js
deleted file mode 100644
index 88f230a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-sort-default-props.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * @fileoverview Enforce default props alphabetical sorting
- * @author Vladimir Kattsov
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const docsUrl = require('../util/docsUrl');
-const propWrapperUtil = require('../util/propWrapper');
-// const propTypesSortUtil = require('../util/propTypesSort');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce default props alphabetical sorting',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-sort-default-props')
-    },
-
-    // fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignoreCase: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const ignoreCase = configuration.ignoreCase || false;
-
-    /**
-     * Get properties name
-     * @param {Object} node - Property.
-     * @returns {String} Property name.
-     */
-    function getPropertyName(node) {
-      if (node.key || ['MethodDefinition', 'Property'].indexOf(node.type) !== -1) {
-        return node.key.name;
-      }
-      if (node.type === 'MemberExpression') {
-        return node.property.name;
-      // Special case for class properties
-      // (babel-eslint@5 does not expose property name so we have to rely on tokens)
-      }
-      if (node.type === 'ClassProperty') {
-        const tokens = context.getFirstTokens(node, 2);
-        return tokens[1] && tokens[1].type === 'Identifier' ? tokens[1].value : tokens[0].value;
-      }
-      return '';
-    }
-
-    /**
-     * Checks if the Identifier node passed in looks like a defaultProps declaration.
-     * @param   {ASTNode}  node The node to check. Must be an Identifier node.
-     * @returns {Boolean}       `true` if the node is a defaultProps declaration, `false` if not
-     */
-    function isDefaultPropsDeclaration(node) {
-      const propName = getPropertyName(node);
-      return (propName === 'defaultProps' || propName === 'getDefaultProps');
-    }
-
-    function getKey(node) {
-      return context.getSourceCode().getText(node.key || node.argument);
-    }
-
-    /**
-     * Find a variable by name in the current scope.
-     * @param  {string} name Name of the variable to look for.
-     * @returns {ASTNode|null} Return null if the variable could not be found, ASTNode otherwise.
-     */
-    function findVariableByName(name) {
-      const variable = variableUtil.variablesInScope(context).find(item => item.name === name);
-
-      if (!variable || !variable.defs[0] || !variable.defs[0].node) {
-        return null;
-      }
-
-      if (variable.defs[0].node.type === 'TypeAlias') {
-        return variable.defs[0].node.right;
-      }
-
-      return variable.defs[0].node.init;
-    }
-
-    /**
-     * Checks if defaultProps declarations are sorted
-     * @param {Array} declarations The array of AST nodes being checked.
-     * @returns {void}
-     */
-    function checkSorted(declarations) {
-      // function fix(fixer) {
-      //   return propTypesSortUtil.fixPropTypesSort(fixer, context, declarations, ignoreCase);
-      // }
-
-      declarations.reduce((prev, curr, idx, decls) => {
-        if (/Spread(?:Property|Element)$/.test(curr.type)) {
-          return decls[idx + 1];
-        }
-
-        let prevPropName = getKey(prev);
-        let currentPropName = getKey(curr);
-
-        if (ignoreCase) {
-          prevPropName = prevPropName.toLowerCase();
-          currentPropName = currentPropName.toLowerCase();
-        }
-
-        if (currentPropName < prevPropName) {
-          context.report({
-            node: curr,
-            message: 'Default prop types declarations should be sorted alphabetically'
-            // fix
-          });
-
-          return prev;
-        }
-
-        return curr;
-      }, declarations[0]);
-    }
-
-    function checkNode(node) {
-      switch (node && node.type) {
-        case 'ObjectExpression':
-          checkSorted(node.properties);
-          break;
-        case 'Identifier': {
-          const propTypesObject = findVariableByName(node.name);
-          if (propTypesObject && propTypesObject.properties) {
-            checkSorted(propTypesObject.properties);
-          }
-          break;
-        }
-        case 'CallExpression': {
-          const innerNode = node.arguments && node.arguments[0];
-          if (propWrapperUtil.isPropWrapperFunction(context, node.callee.name) && innerNode) {
-            checkNode(innerNode);
-          }
-          break;
-        }
-        default:
-          break;
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public API
-    // --------------------------------------------------------------------------
-
-    return {
-      ClassProperty(node) {
-        if (!isDefaultPropsDeclaration(node)) {
-          return;
-        }
-
-        checkNode(node.value);
-      },
-
-      MemberExpression(node) {
-        if (!isDefaultPropsDeclaration(node)) {
-          return;
-        }
-
-        checkNode(node.parent.right);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-sort-props.js b/node_modules/eslint-plugin-react/lib/rules/jsx-sort-props.js
deleted file mode 100644
index 5b6265a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-sort-props.js
+++ /dev/null
@@ -1,359 +0,0 @@
-/**
- * @fileoverview Enforce props alphabetical sorting
- * @author Ilya Volodin, Yannick Croissant
- */
-
-'use strict';
-
-const propName = require('jsx-ast-utils/propName');
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function isCallbackPropName(name) {
-  return /^on[A-Z]/.test(name);
-}
-
-const RESERVED_PROPS_LIST = [
-  'children',
-  'dangerouslySetInnerHTML',
-  'key',
-  'ref'
-];
-
-function isReservedPropName(name, list) {
-  return list.indexOf(name) >= 0;
-}
-
-function contextCompare(a, b, options) {
-  let aProp = propName(a);
-  let bProp = propName(b);
-
-  if (options.reservedFirst) {
-    const aIsReserved = isReservedPropName(aProp, options.reservedList);
-    const bIsReserved = isReservedPropName(bProp, options.reservedList);
-    if (aIsReserved && !bIsReserved) {
-      return -1;
-    }
-    if (!aIsReserved && bIsReserved) {
-      return 1;
-    }
-  }
-
-  if (options.callbacksLast) {
-    const aIsCallback = isCallbackPropName(aProp);
-    const bIsCallback = isCallbackPropName(bProp);
-    if (aIsCallback && !bIsCallback) {
-      return 1;
-    }
-    if (!aIsCallback && bIsCallback) {
-      return -1;
-    }
-  }
-
-  if (options.shorthandFirst || options.shorthandLast) {
-    const shorthandSign = options.shorthandFirst ? -1 : 1;
-    if (!a.value && b.value) {
-      return shorthandSign;
-    }
-    if (a.value && !b.value) {
-      return -shorthandSign;
-    }
-  }
-
-  if (options.noSortAlphabetically) {
-    return 0;
-  }
-
-  if (options.ignoreCase) {
-    aProp = aProp.toLowerCase();
-    bProp = bProp.toLowerCase();
-  }
-  return aProp.localeCompare(bProp);
-}
-
-/**
- * Create an array of arrays where each subarray is composed of attributes
- * that are considered sortable.
- * @param {Array<JSXSpreadAttribute|JSXAttribute>} attributes
- * @return {Array<Array<JSXAttribute>>}
- */
-function getGroupsOfSortableAttributes(attributes) {
-  const sortableAttributeGroups = [];
-  let groupCount = 0;
-  for (let i = 0; i < attributes.length; i++) {
-    const lastAttr = attributes[i - 1];
-    // If we have no groups or if the last attribute was JSXSpreadAttribute
-    // then we start a new group. Append attributes to the group until we
-    // come across another JSXSpreadAttribute or exhaust the array.
-    if (
-      !lastAttr ||
-      (lastAttr.type === 'JSXSpreadAttribute' &&
-        attributes[i].type !== 'JSXSpreadAttribute')
-    ) {
-      groupCount++;
-      sortableAttributeGroups[groupCount - 1] = [];
-    }
-    if (attributes[i].type !== 'JSXSpreadAttribute') {
-      sortableAttributeGroups[groupCount - 1].push(attributes[i]);
-    }
-  }
-  return sortableAttributeGroups;
-}
-
-const generateFixerFunction = (node, context, reservedList) => {
-  const sourceCode = context.getSourceCode();
-  const attributes = node.attributes.slice(0);
-  const configuration = context.options[0] || {};
-  const ignoreCase = configuration.ignoreCase || false;
-  const callbacksLast = configuration.callbacksLast || false;
-  const shorthandFirst = configuration.shorthandFirst || false;
-  const shorthandLast = configuration.shorthandLast || false;
-  const noSortAlphabetically = configuration.noSortAlphabetically || false;
-  const reservedFirst = configuration.reservedFirst || false;
-
-  // Sort props according to the context. Only supports ignoreCase.
-  // Since we cannot safely move JSXSpreadAttribute (due to potential variable overrides),
-  // we only consider groups of sortable attributes.
-  const options = {
-    ignoreCase,
-    callbacksLast,
-    shorthandFirst,
-    shorthandLast,
-    noSortAlphabetically,
-    reservedFirst,
-    reservedList
-  };
-  const sortableAttributeGroups = getGroupsOfSortableAttributes(attributes);
-  const sortedAttributeGroups = sortableAttributeGroups
-    .slice(0)
-    .map(group => group.slice(0).sort((a, b) => contextCompare(a, b, options)));
-
-  return function fixFunction(fixer) {
-    const fixers = [];
-    let source = sourceCode.getText();
-
-    // Replace each unsorted attribute with the sorted one.
-    sortableAttributeGroups.forEach((sortableGroup, ii) => {
-      sortableGroup.forEach((attr, jj) => {
-        const sortedAttr = sortedAttributeGroups[ii][jj];
-        const sortedAttrText = sourceCode.getText(sortedAttr);
-        fixers.push({
-          range: [attr.range[0], attr.range[1]],
-          text: sortedAttrText
-        });
-      });
-    });
-
-    fixers.sort((a, b) => b.range[0] - a.range[0]);
-
-    const rangeStart = fixers[fixers.length - 1].range[0];
-    const rangeEnd = fixers[0].range[1];
-
-    fixers.forEach((fix) => {
-      source = `${source.substr(0, fix.range[0])}${fix.text}${source.substr(fix.range[1])}`;
-    });
-
-    return fixer.replaceTextRange([rangeStart, rangeEnd], source.substr(rangeStart, rangeEnd - rangeStart));
-  };
-};
-
-/**
- * Checks if the `reservedFirst` option is valid
- * @param {Object} context The context of the rule
- * @param {Boolean|Array<String>} reservedFirst The `reservedFirst` option
- * @return {Function|undefined} If an error is detected, a function to generate the error message, otherwise, `undefined`
- */
-// eslint-disable-next-line consistent-return
-function validateReservedFirstConfig(context, reservedFirst) {
-  if (reservedFirst) {
-    if (Array.isArray(reservedFirst)) {
-      // Only allow a subset of reserved words in customized lists
-      const nonReservedWords = reservedFirst.filter(word => !isReservedPropName(
-        word,
-        RESERVED_PROPS_LIST
-      ));
-
-      if (reservedFirst.length === 0) {
-        return function report(decl) {
-          context.report({
-            node: decl,
-            message: 'A customized reserved first list must not be empty'
-          });
-        };
-      }
-      if (nonReservedWords.length > 0) {
-        return function report(decl) {
-          context.report({
-            node: decl,
-            message: 'A customized reserved first list must only contain a subset of React reserved props.' +
-              ' Remove: {{ nonReservedWords }}',
-            data: {
-              nonReservedWords: nonReservedWords.toString()
-            }
-          });
-        };
-      }
-    }
-  }
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce props alphabetical sorting',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-sort-props')
-    },
-    fixable: 'code',
-    schema: [{
-      type: 'object',
-      properties: {
-        // Whether callbacks (prefixed with "on") should be listed at the very end,
-        // after all other props. Supersedes shorthandLast.
-        callbacksLast: {
-          type: 'boolean'
-        },
-        // Whether shorthand properties (without a value) should be listed first
-        shorthandFirst: {
-          type: 'boolean'
-        },
-        // Whether shorthand properties (without a value) should be listed last
-        shorthandLast: {
-          type: 'boolean'
-        },
-        ignoreCase: {
-          type: 'boolean'
-        },
-        // Whether alphabetical sorting should be enforced
-        noSortAlphabetically: {
-          type: 'boolean'
-        },
-        reservedFirst: {
-          type: ['array', 'boolean']
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const ignoreCase = configuration.ignoreCase || false;
-    const callbacksLast = configuration.callbacksLast || false;
-    const shorthandFirst = configuration.shorthandFirst || false;
-    const shorthandLast = configuration.shorthandLast || false;
-    const noSortAlphabetically = configuration.noSortAlphabetically || false;
-    const reservedFirst = configuration.reservedFirst || false;
-    const reservedFirstError = validateReservedFirstConfig(context, reservedFirst);
-    let reservedList = Array.isArray(reservedFirst) ? reservedFirst : RESERVED_PROPS_LIST;
-
-    return {
-      JSXOpeningElement(node) {
-        // `dangerouslySetInnerHTML` is only "reserved" on DOM components
-        if (reservedFirst && !jsxUtil.isDOMComponent(node)) {
-          reservedList = reservedList.filter(prop => prop !== 'dangerouslySetInnerHTML');
-        }
-
-        node.attributes.reduce((memo, decl, idx, attrs) => {
-          if (decl.type === 'JSXSpreadAttribute') {
-            return attrs[idx + 1];
-          }
-
-          let previousPropName = propName(memo);
-          let currentPropName = propName(decl);
-          const previousValue = memo.value;
-          const currentValue = decl.value;
-          const previousIsCallback = isCallbackPropName(previousPropName);
-          const currentIsCallback = isCallbackPropName(currentPropName);
-
-          if (ignoreCase) {
-            previousPropName = previousPropName.toLowerCase();
-            currentPropName = currentPropName.toLowerCase();
-          }
-
-          if (reservedFirst) {
-            if (reservedFirstError) {
-              reservedFirstError(decl);
-              return memo;
-            }
-
-            const previousIsReserved = isReservedPropName(previousPropName, reservedList);
-            const currentIsReserved = isReservedPropName(currentPropName, reservedList);
-
-            if (previousIsReserved && !currentIsReserved) {
-              return decl;
-            }
-            if (!previousIsReserved && currentIsReserved) {
-              context.report({
-                node: decl.name,
-                message: 'Reserved props must be listed before all other props',
-                fix: generateFixerFunction(node, context, reservedList)
-              });
-              return memo;
-            }
-          }
-
-          if (callbacksLast) {
-            if (!previousIsCallback && currentIsCallback) {
-              // Entering the callback prop section
-              return decl;
-            }
-            if (previousIsCallback && !currentIsCallback) {
-              // Encountered a non-callback prop after a callback prop
-              context.report({
-                node: memo.name,
-                message: 'Callbacks must be listed after all other props',
-                fix: generateFixerFunction(node, context, reservedList)
-              });
-              return memo;
-            }
-          }
-
-          if (shorthandFirst) {
-            if (currentValue && !previousValue) {
-              return decl;
-            }
-            if (!currentValue && previousValue) {
-              context.report({
-                node: memo.name,
-                message: 'Shorthand props must be listed before all other props',
-                fix: generateFixerFunction(node, context, reservedList)
-              });
-              return memo;
-            }
-          }
-
-          if (shorthandLast) {
-            if (!currentValue && previousValue) {
-              return decl;
-            }
-            if (currentValue && !previousValue) {
-              context.report({
-                node: memo.name,
-                message: 'Shorthand props must be listed after all other props',
-                fix: generateFixerFunction(node, context, reservedList)
-              });
-              return memo;
-            }
-          }
-
-          if (!noSortAlphabetically && previousPropName.localeCompare(currentPropName) > 0) {
-            context.report({
-              node: decl.name,
-              message: 'Props should be sorted alphabetically',
-              fix: generateFixerFunction(node, context, reservedList)
-            });
-            return memo;
-          }
-
-          return decl;
-        }, node.attributes[0]);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-space-before-closing.js b/node_modules/eslint-plugin-react/lib/rules/jsx-space-before-closing.js
deleted file mode 100644
index 284aa06..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-space-before-closing.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * @fileoverview Validate spacing before closing bracket in JSX.
- * @author ryym
- * @deprecated
- */
-
-'use strict';
-
-const getTokenBeforeClosingBracket = require('../util/getTokenBeforeClosingBracket');
-const docsUrl = require('../util/docsUrl');
-const log = require('../util/log');
-
-let isWarnedForDeprecation = false;
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    deprecated: true,
-    docs: {
-      description: 'Validate spacing before closing bracket in JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-space-before-closing')
-    },
-    fixable: 'code',
-
-    schema: [{
-      enum: ['always', 'never']
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || 'always';
-
-    const NEVER_MESSAGE = 'A space is forbidden before closing bracket';
-    const ALWAYS_MESSAGE = 'A space is required before closing bracket';
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXOpeningElement(node) {
-        if (!node.selfClosing) {
-          return;
-        }
-
-        const sourceCode = context.getSourceCode();
-
-        const leftToken = getTokenBeforeClosingBracket(node);
-        const closingSlash = sourceCode.getTokenAfter(leftToken);
-
-        if (leftToken.loc.end.line !== closingSlash.loc.start.line) {
-          return;
-        }
-
-        if (configuration === 'always' && !sourceCode.isSpaceBetweenTokens(leftToken, closingSlash)) {
-          context.report({
-            loc: closingSlash.loc.start,
-            message: ALWAYS_MESSAGE,
-            fix(fixer) {
-              return fixer.insertTextBefore(closingSlash, ' ');
-            }
-          });
-        } else if (configuration === 'never' && sourceCode.isSpaceBetweenTokens(leftToken, closingSlash)) {
-          context.report({
-            loc: closingSlash.loc.start,
-            message: NEVER_MESSAGE,
-            fix(fixer) {
-              const previousToken = sourceCode.getTokenBefore(closingSlash);
-              return fixer.removeRange([previousToken.range[1], closingSlash.range[0]]);
-            }
-          });
-        }
-      },
-
-      Program() {
-        if (isWarnedForDeprecation) {
-          return;
-        }
-
-        log('The react/jsx-space-before-closing rule is deprecated. ' +
-            'Please use the react/jsx-tag-spacing rule with the ' +
-            '"beforeSelfClosing" option instead.');
-        isWarnedForDeprecation = true;
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-tag-spacing.js b/node_modules/eslint-plugin-react/lib/rules/jsx-tag-spacing.js
deleted file mode 100644
index 9568672..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-tag-spacing.js
+++ /dev/null
@@ -1,291 +0,0 @@
-/**
- * @fileoverview Validates whitespace in and around the JSX opening and closing brackets
- * @author Diogo Franco (Kovensky)
- */
-
-'use strict';
-
-const getTokenBeforeClosingBracket = require('../util/getTokenBeforeClosingBracket');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Validators
-// ------------------------------------------------------------------------------
-
-function validateClosingSlash(context, node, option) {
-  const sourceCode = context.getSourceCode();
-
-  const SELF_CLOSING_NEVER_MESSAGE = 'Whitespace is forbidden between `/` and `>`; write `/>`';
-  const SELF_CLOSING_ALWAYS_MESSAGE = 'Whitespace is required between `/` and `>`; write `/ >`';
-  const NEVER_MESSAGE = 'Whitespace is forbidden between `<` and `/`; write `</`';
-  const ALWAYS_MESSAGE = 'Whitespace is required between `<` and `/`; write `< /`';
-
-  let adjacent;
-
-  if (node.selfClosing) {
-    const lastTokens = sourceCode.getLastTokens(node, 2);
-
-    adjacent = !sourceCode.isSpaceBetweenTokens(lastTokens[0], lastTokens[1]);
-
-    if (option === 'never') {
-      if (!adjacent) {
-        context.report({
-          node,
-          loc: {
-            start: lastTokens[0].loc.start,
-            end: lastTokens[1].loc.end
-          },
-          message: SELF_CLOSING_NEVER_MESSAGE,
-          fix(fixer) {
-            return fixer.removeRange([lastTokens[0].range[1], lastTokens[1].range[0]]);
-          }
-        });
-      }
-    } else if (option === 'always' && adjacent) {
-      context.report({
-        node,
-        loc: {
-          start: lastTokens[0].loc.start,
-          end: lastTokens[1].loc.end
-        },
-        message: SELF_CLOSING_ALWAYS_MESSAGE,
-        fix(fixer) {
-          return fixer.insertTextBefore(lastTokens[1], ' ');
-        }
-      });
-    }
-  } else {
-    const firstTokens = sourceCode.getFirstTokens(node, 2);
-
-    adjacent = !sourceCode.isSpaceBetweenTokens(firstTokens[0], firstTokens[1]);
-
-    if (option === 'never') {
-      if (!adjacent) {
-        context.report({
-          node,
-          loc: {
-            start: firstTokens[0].loc.start,
-            end: firstTokens[1].loc.end
-          },
-          message: NEVER_MESSAGE,
-          fix(fixer) {
-            return fixer.removeRange([firstTokens[0].range[1], firstTokens[1].range[0]]);
-          }
-        });
-      }
-    } else if (option === 'always' && adjacent) {
-      context.report({
-        node,
-        loc: {
-          start: firstTokens[0].loc.start,
-          end: firstTokens[1].loc.end
-        },
-        message: ALWAYS_MESSAGE,
-        fix(fixer) {
-          return fixer.insertTextBefore(firstTokens[1], ' ');
-        }
-      });
-    }
-  }
-}
-
-function validateBeforeSelfClosing(context, node, option) {
-  const sourceCode = context.getSourceCode();
-
-  const NEVER_MESSAGE = 'A space is forbidden before closing bracket';
-  const ALWAYS_MESSAGE = 'A space is required before closing bracket';
-
-  const leftToken = getTokenBeforeClosingBracket(node);
-  const closingSlash = sourceCode.getTokenAfter(leftToken);
-
-  if (leftToken.loc.end.line !== closingSlash.loc.start.line) {
-    return;
-  }
-
-  if (option === 'always' && !sourceCode.isSpaceBetweenTokens(leftToken, closingSlash)) {
-    context.report({
-      node,
-      loc: closingSlash.loc.start,
-      message: ALWAYS_MESSAGE,
-      fix(fixer) {
-        return fixer.insertTextBefore(closingSlash, ' ');
-      }
-    });
-  } else if (option === 'never' && sourceCode.isSpaceBetweenTokens(leftToken, closingSlash)) {
-    context.report({
-      node,
-      loc: closingSlash.loc.start,
-      message: NEVER_MESSAGE,
-      fix(fixer) {
-        const previousToken = sourceCode.getTokenBefore(closingSlash);
-        return fixer.removeRange([previousToken.range[1], closingSlash.range[0]]);
-      }
-    });
-  }
-}
-
-function validateAfterOpening(context, node, option) {
-  const sourceCode = context.getSourceCode();
-
-  const NEVER_MESSAGE = 'A space is forbidden after opening bracket';
-  const ALWAYS_MESSAGE = 'A space is required after opening bracket';
-
-  const openingToken = sourceCode.getTokenBefore(node.name);
-
-  if (option === 'allow-multiline') {
-    if (openingToken.loc.start.line !== node.name.loc.start.line) {
-      return;
-    }
-  }
-
-  const adjacent = !sourceCode.isSpaceBetweenTokens(openingToken, node.name);
-
-  if (option === 'never' || option === 'allow-multiline') {
-    if (!adjacent) {
-      context.report({
-        node,
-        loc: {
-          start: openingToken.loc.start,
-          end: node.name.loc.start
-        },
-        message: NEVER_MESSAGE,
-        fix(fixer) {
-          return fixer.removeRange([openingToken.range[1], node.name.range[0]]);
-        }
-      });
-    }
-  } else if (option === 'always' && adjacent) {
-    context.report({
-      node,
-      loc: {
-        start: openingToken.loc.start,
-        end: node.name.loc.start
-      },
-      message: ALWAYS_MESSAGE,
-      fix(fixer) {
-        return fixer.insertTextBefore(node.name, ' ');
-      }
-    });
-  }
-}
-
-function validateBeforeClosing(context, node, option) {
-  // Don't enforce this rule for self closing tags
-  if (!node.selfClosing) {
-    const sourceCode = context.getSourceCode();
-
-    const NEVER_MESSAGE = 'A space is forbidden before closing bracket';
-    const ALWAYS_MESSAGE = 'Whitespace is required before closing bracket';
-
-    const lastTokens = sourceCode.getLastTokens(node, 2);
-    const closingToken = lastTokens[1];
-    const leftToken = lastTokens[0];
-
-    if (leftToken.loc.start.line !== closingToken.loc.start.line) {
-      return;
-    }
-
-    const adjacent = !sourceCode.isSpaceBetweenTokens(leftToken, closingToken);
-
-    if (option === 'never' && !adjacent) {
-      context.report({
-        node,
-        loc: {
-          start: leftToken.loc.end,
-          end: closingToken.loc.start
-        },
-        message: NEVER_MESSAGE,
-        fix(fixer) {
-          return fixer.removeRange([leftToken.range[1], closingToken.range[0]]);
-        }
-      });
-    } else if (option === 'always' && adjacent) {
-      context.report({
-        node,
-        loc: {
-          start: leftToken.loc.end,
-          end: closingToken.loc.start
-        },
-        message: ALWAYS_MESSAGE,
-        fix(fixer) {
-          return fixer.insertTextBefore(closingToken, ' ');
-        }
-      });
-    }
-  }
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const optionDefaults = {
-  closingSlash: 'never',
-  beforeSelfClosing: 'always',
-  afterOpening: 'never',
-  beforeClosing: 'allow'
-};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validate whitespace in and around the JSX opening and closing brackets',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-tag-spacing')
-    },
-    fixable: 'whitespace',
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          closingSlash: {
-            enum: ['always', 'never', 'allow']
-          },
-          beforeSelfClosing: {
-            enum: ['always', 'never', 'allow']
-          },
-          afterOpening: {
-            enum: ['always', 'allow-multiline', 'never', 'allow']
-          },
-          beforeClosing: {
-            enum: ['always', 'never', 'allow']
-          }
-        },
-        default: optionDefaults,
-        additionalProperties: false
-      }
-    ]
-  },
-  create(context) {
-    const options = Object.assign({}, optionDefaults, context.options[0]);
-
-    return {
-      JSXOpeningElement(node) {
-        if (options.closingSlash !== 'allow' && node.selfClosing) {
-          validateClosingSlash(context, node, options.closingSlash);
-        }
-        if (options.afterOpening !== 'allow') {
-          validateAfterOpening(context, node, options.afterOpening);
-        }
-        if (options.beforeSelfClosing !== 'allow' && node.selfClosing) {
-          validateBeforeSelfClosing(context, node, options.beforeSelfClosing);
-        }
-        if (options.beforeClosing !== 'allow') {
-          validateBeforeClosing(context, node, options.beforeClosing);
-        }
-      },
-      JSXClosingElement(node) {
-        if (options.afterOpening !== 'allow') {
-          validateAfterOpening(context, node, options.afterOpening);
-        }
-        if (options.closingSlash !== 'allow') {
-          validateClosingSlash(context, node, options.closingSlash);
-        }
-        if (options.beforeClosing !== 'allow') {
-          validateBeforeClosing(context, node, options.beforeClosing);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-uses-react.js b/node_modules/eslint-plugin-react/lib/rules/jsx-uses-react.js
deleted file mode 100644
index bebcdf3..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-uses-react.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * @fileoverview Prevent React to be marked as unused
- * @author Glen Mailer
- */
-
-'use strict';
-
-const pragmaUtil = require('../util/pragma');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent React to be marked as unused',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('jsx-uses-react')
-    },
-    schema: []
-  },
-
-  create(context) {
-    const pragma = pragmaUtil.getFromContext(context);
-
-    function handleOpeningElement() {
-      context.markVariableAsUsed(pragma);
-    }
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      JSXOpeningElement: handleOpeningElement,
-      JSXOpeningFragment: handleOpeningElement
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js b/node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
deleted file mode 100644
index 86a32f1..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-uses-vars.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @fileoverview Prevent variables used in JSX to be marked as unused
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent variables used in JSX to be marked as unused',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('jsx-uses-vars')
-    },
-    schema: []
-  },
-
-  create(context) {
-    return {
-      JSXOpeningElement(node) {
-        let name;
-        if (node.name.namespace && node.name.namespace.name) {
-          // <Foo:Bar>
-          name = node.name.namespace.name;
-        } else if (node.name.name) {
-          // <Foo>
-          name = node.name.name;
-        } else if (node.name.object) {
-          // <Foo...Bar>
-          let parent = node.name.object;
-          while (parent.object) {
-            parent = parent.object;
-          }
-          name = parent.name;
-        } else {
-          return;
-        }
-
-        context.markVariableAsUsed(name);
-      }
-
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/jsx-wrap-multilines.js b/node_modules/eslint-plugin-react/lib/rules/jsx-wrap-multilines.js
deleted file mode 100644
index 2980a76..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/jsx-wrap-multilines.js
+++ /dev/null
@@ -1,264 +0,0 @@
-/**
- * @fileoverview Prevent missing parentheses around multilines JSX
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const has = require('has');
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = {
-  declaration: 'parens',
-  assignment: 'parens',
-  return: 'parens',
-  arrow: 'parens',
-  condition: 'ignore',
-  logical: 'ignore',
-  prop: 'ignore'
-};
-
-const MISSING_PARENS = 'Missing parentheses around multilines JSX';
-const PARENS_NEW_LINES = 'Parentheses around JSX should be on separate lines';
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent missing parentheses around multilines JSX',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('jsx-wrap-multilines')
-    },
-    fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      // true/false are for backwards compatibility
-      properties: {
-        declaration: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        assignment: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        return: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        arrow: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        condition: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        logical: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        },
-        prop: {
-          enum: [true, false, 'ignore', 'parens', 'parens-new-line']
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function getOption(type) {
-      const userOptions = context.options[0] || {};
-      if (has(userOptions, type)) {
-        return userOptions[type];
-      }
-      return DEFAULTS[type];
-    }
-
-    function isEnabled(type) {
-      const option = getOption(type);
-      return option && option !== 'ignore';
-    }
-
-    function isParenthesised(node) {
-      const sourceCode = context.getSourceCode();
-      const previousToken = sourceCode.getTokenBefore(node);
-      const nextToken = sourceCode.getTokenAfter(node);
-
-      return previousToken && nextToken &&
-        previousToken.value === '(' && previousToken.range[1] <= node.range[0] &&
-        nextToken.value === ')' && nextToken.range[0] >= node.range[1];
-    }
-
-    function needsOpeningNewLine(node) {
-      const previousToken = context.getSourceCode().getTokenBefore(node);
-
-      if (!isParenthesised(node)) {
-        return false;
-      }
-
-      if (previousToken.loc.end.line === node.loc.start.line) {
-        return true;
-      }
-
-      return false;
-    }
-
-    function needsClosingNewLine(node) {
-      const nextToken = context.getSourceCode().getTokenAfter(node);
-
-      if (!isParenthesised(node)) {
-        return false;
-      }
-
-      if (node.loc.end.line === nextToken.loc.end.line) {
-        return true;
-      }
-
-      return false;
-    }
-
-    function isMultilines(node) {
-      return node.loc.start.line !== node.loc.end.line;
-    }
-
-    function report(node, message, fix) {
-      context.report({
-        node,
-        message,
-        fix
-      });
-    }
-
-    function trimTokenBeforeNewline(node, tokenBefore) {
-      // if the token before the jsx is a bracket or curly brace
-      // we don't want a space between the opening parentheses and the multiline jsx
-      const isBracket = tokenBefore.value === '{' || tokenBefore.value === '[';
-      return `${tokenBefore.value.trim()}${isBracket ? '' : ' '}`;
-    }
-
-    function check(node, type) {
-      if (!node || !jsxUtil.isJSX(node)) {
-        return;
-      }
-
-      const sourceCode = context.getSourceCode();
-      const option = getOption(type);
-
-      if ((option === true || option === 'parens') && !isParenthesised(node) && isMultilines(node)) {
-        report(node, MISSING_PARENS, fixer => fixer.replaceText(node, `(${sourceCode.getText(node)})`));
-      }
-
-      if (option === 'parens-new-line' && isMultilines(node)) {
-        if (!isParenthesised(node)) {
-          const tokenBefore = sourceCode.getTokenBefore(node, {includeComments: true});
-          const tokenAfter = sourceCode.getTokenAfter(node, {includeComments: true});
-          if (tokenBefore.loc.end.line < node.loc.start.line) {
-            // Strip newline after operator if parens newline is specified
-            report(
-              node,
-              MISSING_PARENS,
-              fixer => fixer.replaceTextRange(
-                [tokenBefore.range[0], tokenAfter && (tokenAfter.value === ';' || tokenAfter.value === '}') ? tokenAfter.range[0] : node.range[1]],
-                `${trimTokenBeforeNewline(node, tokenBefore)}(\n${' '.repeat(node.loc.start.column)}${sourceCode.getText(node)}\n${' '.repeat(node.loc.start.column - 2)})`
-              )
-            );
-          } else {
-            report(node, MISSING_PARENS, fixer => fixer.replaceText(node, `(\n${sourceCode.getText(node)}\n)`));
-          }
-        } else {
-          const needsOpening = needsOpeningNewLine(node);
-          const needsClosing = needsClosingNewLine(node);
-          if (needsOpening || needsClosing) {
-            report(node, PARENS_NEW_LINES, (fixer) => {
-              const text = sourceCode.getText(node);
-              let fixed = text;
-              if (needsOpening) {
-                fixed = `\n${fixed}`;
-              }
-              if (needsClosing) {
-                fixed = `${fixed}\n`;
-              }
-              return fixer.replaceText(node, fixed);
-            });
-          }
-        }
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      VariableDeclarator(node) {
-        const type = 'declaration';
-        if (!isEnabled(type)) {
-          return;
-        }
-        if (!isEnabled('condition') && node.init && node.init.type === 'ConditionalExpression') {
-          check(node.init.consequent, type);
-          check(node.init.alternate, type);
-          return;
-        }
-        check(node.init, type);
-      },
-
-      AssignmentExpression(node) {
-        const type = 'assignment';
-        if (!isEnabled(type)) {
-          return;
-        }
-        if (!isEnabled('condition') && node.right.type === 'ConditionalExpression') {
-          check(node.right.consequent, type);
-          check(node.right.alternate, type);
-          return;
-        }
-        check(node.right, type);
-      },
-
-      ReturnStatement(node) {
-        const type = 'return';
-        if (isEnabled(type)) {
-          check(node.argument, type);
-        }
-      },
-
-      'ArrowFunctionExpression:exit': (node) => {
-        const arrowBody = node.body;
-        const type = 'arrow';
-
-        if (isEnabled(type) && arrowBody.type !== 'BlockStatement') {
-          check(arrowBody, type);
-        }
-      },
-
-      ConditionalExpression(node) {
-        const type = 'condition';
-        if (isEnabled(type)) {
-          check(node.consequent, type);
-          check(node.alternate, type);
-        }
-      },
-
-      LogicalExpression(node) {
-        const type = 'logical';
-        if (isEnabled(type)) {
-          check(node.right, type);
-        }
-      },
-
-      JSXAttribute(node) {
-        const type = 'prop';
-        if (isEnabled(type) && node.value && node.value.type === 'JSXExpressionContainer') {
-          check(node.value.expression, type);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-access-state-in-setstate.js b/node_modules/eslint-plugin-react/lib/rules/no-access-state-in-setstate.js
deleted file mode 100644
index 9a0af61..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-access-state-in-setstate.js
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * @fileoverview Prevent usage of this.state within setState
- * @author Rolf Erik Lekang, Jørgen Aaberg
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Reports when this.state is accessed within setState',
-      category: 'Possible Errors',
-      recommended: false,
-      url: docsUrl('no-access-state-in-setstate')
-    }
-  },
-
-  create(context) {
-    function isSetStateCall(node) {
-      return node.type === 'CallExpression' &&
-        node.callee.property &&
-        node.callee.property.name === 'setState' &&
-        node.callee.object.type === 'ThisExpression';
-    }
-
-    function isFirstArgumentInSetStateCall(current, node) {
-      if (!isSetStateCall(current)) {
-        return false;
-      }
-      while (node && node.parent !== current) {
-        node = node.parent;
-      }
-      return current.arguments[0] === node;
-    }
-
-    // The methods array contains all methods or functions that are using this.state
-    // or that are calling another method or function using this.state
-    const methods = [];
-    // The vars array contains all variables that contains this.state
-    const vars = [];
-    return {
-      CallExpression(node) {
-        // Appends all the methods that are calling another
-        // method containing this.state to the methods array
-        methods.forEach((method) => {
-          if (node.callee.name === method.methodName) {
-            let current = node.parent;
-            while (current.type !== 'Program') {
-              if (current.type === 'MethodDefinition') {
-                methods.push({
-                  methodName: current.key.name,
-                  node: method.node
-                });
-                break;
-              }
-              current = current.parent;
-            }
-          }
-        });
-
-        // Finding all CallExpressions that is inside a setState
-        // to further check if they contains this.state
-        let current = node.parent;
-        while (current.type !== 'Program') {
-          if (isFirstArgumentInSetStateCall(current, node)) {
-            const methodName = node.callee.name;
-            methods.forEach((method) => {
-              if (method.methodName === methodName) {
-                context.report({
-                  node: method.node,
-                  message: 'Use callback in setState when referencing the previous state.'
-                });
-              }
-            });
-
-            break;
-          }
-          current = current.parent;
-        }
-      },
-
-      MemberExpression(node) {
-        if (
-          node.property.name === 'state' &&
-          node.object.type === 'ThisExpression'
-        ) {
-          let current = node;
-          while (current.type !== 'Program') {
-            // Reporting if this.state is directly within this.setState
-            if (isFirstArgumentInSetStateCall(current, node)) {
-              context.report({
-                node,
-                message: 'Use callback in setState when referencing the previous state.'
-              });
-              break;
-            }
-
-            // Storing all functions and methods that contains this.state
-            if (current.type === 'MethodDefinition') {
-              methods.push({
-                methodName: current.key.name,
-                node
-              });
-              break;
-            } else if (current.type === 'FunctionExpression' && current.parent.key) {
-              methods.push({
-                methodName: current.parent.key.name,
-                node
-              });
-              break;
-            }
-
-            // Storing all variables containg this.state
-            if (current.type === 'VariableDeclarator') {
-              vars.push({
-                node,
-                scope: context.getScope(),
-                variableName: current.id.name
-              });
-              break;
-            }
-
-            current = current.parent;
-          }
-        }
-      },
-
-      Identifier(node) {
-        // Checks if the identifier is a variable within an object
-        let current = node;
-        while (current.parent.type === 'BinaryExpression') {
-          current = current.parent;
-        }
-        if (
-          current.parent.value === current ||
-          current.parent.object === current
-        ) {
-          while (current.type !== 'Program') {
-            if (isFirstArgumentInSetStateCall(current, node)) {
-              vars
-                .filter(v => v.scope === context.getScope() && v.variableName === node.name)
-                .forEach((v) => {
-                  context.report({
-                    node: v.node,
-                    message: 'Use callback in setState when referencing the previous state.'
-                  });
-                });
-            }
-            current = current.parent;
-          }
-        }
-      },
-
-      ObjectPattern(node) {
-        const isDerivedFromThis = node.parent.init && node.parent.init.type === 'ThisExpression';
-        node.properties.forEach((property) => {
-          if (property && property.key && property.key.name === 'state' && isDerivedFromThis) {
-            vars.push({
-              node: property.key,
-              scope: context.getScope(),
-              variableName: property.key.name
-            });
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-adjacent-inline-elements.js b/node_modules/eslint-plugin-react/lib/rules/no-adjacent-inline-elements.js
deleted file mode 100644
index 28abeef..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-adjacent-inline-elements.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @fileoverview Prevent adjacent inline elements not separated by whitespace.
- * @author Sean Hayes
- */
-
-'use strict';
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-// https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements
-const inlineNames = [
-  'a',
-  'b',
-  'big',
-  'i',
-  'small',
-  'tt',
-  'abbr',
-  'acronym',
-  'cite',
-  'code',
-  'dfn',
-  'em',
-  'kbd',
-  'strong',
-  'samp',
-  'time',
-  'var',
-  'bdo',
-  'br',
-  'img',
-  'map',
-  'object',
-  'q',
-  'script',
-  'span',
-  'sub',
-  'sup',
-  'button',
-  'input',
-  'label',
-  'select',
-  'textarea'
-];
-// Note: raw &nbsp; will be transformed into \u00a0.
-const whitespaceRegex = /(?:^\s|\s$)/;
-
-function isInline(node) {
-  if (node.type === 'Literal') {
-    // Regular whitespace will be removed.
-    const value = node.value;
-    // To properly separate inline elements, each end of the literal will need
-    // whitespace.
-    return !whitespaceRegex.test(value);
-  }
-  if (node.type === 'JSXElement' && inlineNames.indexOf(node.openingElement.name.name) > -1) {
-    return true;
-  }
-  if (node.type === 'CallExpression' && inlineNames.indexOf(node.arguments[0].value) > -1) {
-    return true;
-  }
-  return false;
-}
-
-const ERROR = 'Child elements which render as inline HTML elements should be separated by a space or wrapped in block level elements.';
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  ERROR,
-  meta: {
-    docs: {
-      description: 'Prevent adjacent inline elements not separated by whitespace.',
-      category: 'Best Practices',
-      recommended: false
-    },
-    schema: []
-  },
-  create(context) {
-    function validate(node, children) {
-      let currentIsInline = false;
-      let previousIsInline = false;
-      for (let i = 0; i < children.length; i++) {
-        currentIsInline = isInline(children[i]);
-        if (previousIsInline && currentIsInline) {
-          context.report({
-            node,
-            message: ERROR
-          });
-          return;
-        }
-        previousIsInline = currentIsInline;
-      }
-    }
-    return {
-      JSXElement(node) {
-        validate(node, node.children);
-      },
-      CallExpression(node) {
-        if (!node.callee || node.callee.type !== 'MemberExpression' || node.callee.property.name !== 'createElement') {
-          return;
-        }
-        if (node.arguments.length < 2 || !node.arguments[2]) {
-          return;
-        }
-        const children = node.arguments[2].elements;
-        validate(node, children);
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-array-index-key.js b/node_modules/eslint-plugin-react/lib/rules/no-array-index-key.js
deleted file mode 100644
index 0a81bc8..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-array-index-key.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * @fileoverview Prevent usage of Array index in keys
- * @author Joe Lencioni
- */
-
-'use strict';
-
-const has = require('has');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-const pragma = require('../util/pragma');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of Array index in keys',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('no-array-index-key')
-    },
-
-    schema: []
-  },
-
-  create(context) {
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-    const indexParamNames = [];
-    const iteratorFunctionsToIndexParamPosition = {
-      every: 1,
-      filter: 1,
-      find: 1,
-      findIndex: 1,
-      forEach: 1,
-      map: 1,
-      reduce: 2,
-      reduceRight: 2,
-      some: 1
-    };
-    const ERROR_MESSAGE = 'Do not use Array index in keys';
-
-    function isArrayIndex(node) {
-      return node.type === 'Identifier' &&
-        indexParamNames.indexOf(node.name) !== -1;
-    }
-
-    function isUsingReactChildren(node) {
-      const callee = node.callee;
-      if (
-        !callee ||
-        !callee.property ||
-        !callee.object
-      ) {
-        return null;
-      }
-
-      const isReactChildMethod = ['map', 'forEach'].indexOf(callee.property.name) > -1;
-      if (!isReactChildMethod) {
-        return null;
-      }
-
-      const obj = callee.object;
-      if (obj && obj.name === 'Children') {
-        return true;
-      }
-      if (obj && obj.object && obj.object.name === pragma.getFromContext(context)) {
-        return true;
-      }
-
-      return false;
-    }
-
-    function getMapIndexParamName(node) {
-      const callee = node.callee;
-      if (callee.type !== 'MemberExpression') {
-        return null;
-      }
-      if (callee.property.type !== 'Identifier') {
-        return null;
-      }
-      if (!has(iteratorFunctionsToIndexParamPosition, callee.property.name)) {
-        return null;
-      }
-
-      const callbackArg = isUsingReactChildren(node) ?
-        node.arguments[1] :
-        node.arguments[0];
-
-      if (!callbackArg) {
-        return null;
-      }
-
-      if (!astUtil.isFunctionLikeExpression(callbackArg)) {
-        return null;
-      }
-
-      const params = callbackArg.params;
-
-      const indexParamPosition = iteratorFunctionsToIndexParamPosition[callee.property.name];
-      if (params.length < indexParamPosition + 1) {
-        return null;
-      }
-
-      return params[indexParamPosition].name;
-    }
-
-    function getIdentifiersFromBinaryExpression(side) {
-      if (side.type === 'Identifier') {
-        return side;
-      }
-
-      if (side.type === 'BinaryExpression') {
-        // recurse
-        const left = getIdentifiersFromBinaryExpression(side.left);
-        const right = getIdentifiersFromBinaryExpression(side.right);
-        return [].concat(left, right).filter(Boolean);
-      }
-
-      return null;
-    }
-
-    function checkPropValue(node) {
-      if (isArrayIndex(node)) {
-        // key={bar}
-        context.report({
-          node,
-          message: ERROR_MESSAGE
-        });
-        return;
-      }
-
-      if (node.type === 'TemplateLiteral') {
-        // key={`foo-${bar}`}
-        node.expressions.filter(isArrayIndex).forEach(() => {
-          context.report({node, message: ERROR_MESSAGE});
-        });
-
-        return;
-      }
-
-      if (node.type === 'BinaryExpression') {
-        // key={'foo' + bar}
-        const identifiers = getIdentifiersFromBinaryExpression(node);
-
-        identifiers.filter(isArrayIndex).forEach(() => {
-          context.report({node, message: ERROR_MESSAGE});
-        });
-      }
-    }
-
-    return {
-      CallExpression(node) {
-        if (
-          node.callee &&
-          node.callee.type === 'MemberExpression' &&
-          ['createElement', 'cloneElement'].indexOf(node.callee.property.name) !== -1 &&
-          node.arguments.length > 1
-        ) {
-          // React.createElement
-          if (!indexParamNames.length) {
-            return;
-          }
-
-          const props = node.arguments[1];
-
-          if (props.type !== 'ObjectExpression') {
-            return;
-          }
-
-          props.properties.forEach((prop) => {
-            if (!prop.key || prop.key.name !== 'key') {
-              // { ...foo }
-              // { foo: bar }
-              return;
-            }
-
-            checkPropValue(prop.value);
-          });
-
-          return;
-        }
-
-        const mapIndexParamName = getMapIndexParamName(node);
-        if (!mapIndexParamName) {
-          return;
-        }
-
-        indexParamNames.push(mapIndexParamName);
-      },
-
-      JSXAttribute(node) {
-        if (node.name.name !== 'key') {
-          // foo={bar}
-          return;
-        }
-
-        if (!indexParamNames.length) {
-          // Not inside a call expression that we think has an index param.
-          return;
-        }
-
-        const value = node.value;
-        if (!value || value.type !== 'JSXExpressionContainer') {
-          // key='foo' or just simply 'key'
-          return;
-        }
-
-        checkPropValue(value.expression);
-      },
-
-      'CallExpression:exit'(node) {
-        const mapIndexParamName = getMapIndexParamName(node);
-        if (!mapIndexParamName) {
-          return;
-        }
-
-        indexParamNames.pop();
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-children-prop.js b/node_modules/eslint-plugin-react/lib/rules/no-children-prop.js
deleted file mode 100644
index 0e9e011..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-children-prop.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @fileoverview Prevent passing of children as props
- * @author Benjamin Stepp
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-/**
- * Checks if the node is a createElement call with a props literal.
- * @param {ASTNode} node - The AST node being checked.
- * @returns {Boolean} - True if node is a createElement call with a props
- * object literal, False if not.
-*/
-function isCreateElementWithProps(node) {
-  return node.callee &&
-    node.callee.type === 'MemberExpression' &&
-    node.callee.property.name === 'createElement' &&
-    node.arguments.length > 1 &&
-    node.arguments[1].type === 'ObjectExpression';
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent passing of children as props.',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-children-prop')
-    },
-    schema: []
-  },
-  create(context) {
-    return {
-      JSXAttribute(node) {
-        if (node.name.name !== 'children') {
-          return;
-        }
-
-        context.report({
-          node,
-          message: 'Do not pass children as props. Instead, nest children between the opening and closing tags.'
-        });
-      },
-      CallExpression(node) {
-        if (!isCreateElementWithProps(node)) {
-          return;
-        }
-
-        const props = node.arguments[1].properties;
-        const childrenProp = props.find(prop => prop.key && prop.key.name === 'children');
-
-        if (childrenProp) {
-          context.report({
-            node,
-            message: 'Do not pass children as props. Instead, pass them as additional arguments to React.createElement.'
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-danger-with-children.js b/node_modules/eslint-plugin-react/lib/rules/no-danger-with-children.js
deleted file mode 100644
index 66eb7f7..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-danger-with-children.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * @fileoverview Report when a DOM element is using both children and dangerouslySetInnerHTML
- * @author David Petersen
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const jsxUtil = require('../util/jsx');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Report when a DOM element is using both children and dangerouslySetInnerHTML',
-      category: '',
-      recommended: true,
-      url: docsUrl('no-danger-with-children')
-    },
-    schema: [] // no options
-  },
-  create(context) {
-    function findSpreadVariable(name) {
-      return variableUtil.variablesInScope(context).find(item => item.name === name);
-    }
-    /**
-     * Takes a ObjectExpression and returns the value of the prop if it has it
-     * @param {object} node - ObjectExpression node
-     * @param {string} propName - name of the prop to look for
-     * @param {string[]} seenProps
-     * @returns {object | boolean}
-     */
-    function findObjectProp(node, propName, seenProps) {
-      if (!node.properties) {
-        return false;
-      }
-      return node.properties.find((prop) => {
-        if (prop.type === 'Property') {
-          return prop.key.name === propName;
-        }
-        if (prop.type === 'ExperimentalSpreadProperty' || prop.type === 'SpreadElement') {
-          const variable = findSpreadVariable(prop.argument.name);
-          if (variable && variable.defs.length && variable.defs[0].node.init) {
-            if (seenProps.indexOf(prop.argument.name) > -1) {
-              return false;
-            }
-            const newSeenProps = seenProps.concat(prop.argument.name || []);
-            return findObjectProp(variable.defs[0].node.init, propName, newSeenProps);
-          }
-        }
-        return false;
-      });
-    }
-
-    /**
-     * Takes a JSXElement and returns the value of the prop if it has it
-     * @param {object} node - JSXElement node
-     * @param {string} propName - name of the prop to look for
-     * @returns {object | boolean}
-     */
-    function findJsxProp(node, propName) {
-      const attributes = node.openingElement.attributes;
-      return attributes.find((attribute) => {
-        if (attribute.type === 'JSXSpreadAttribute') {
-          const variable = findSpreadVariable(attribute.argument.name);
-          if (variable && variable.defs.length && variable.defs[0].node.init) {
-            return findObjectProp(variable.defs[0].node.init, propName, []);
-          }
-        }
-        return attribute.name && attribute.name.name === propName;
-      });
-    }
-
-    /**
-     * Checks to see if a node is a line break
-     * @param {ASTNode} node The AST node being checked
-     * @returns {Boolean} True if node is a line break, false if not
-     */
-    function isLineBreak(node) {
-      const isLiteral = node.type === 'Literal' || node.type === 'JSXText';
-      const isMultiline = node.loc.start.line !== node.loc.end.line;
-      const isWhiteSpaces = jsxUtil.isWhiteSpaces(node.value);
-
-      return isLiteral && isMultiline && isWhiteSpaces;
-    }
-
-    return {
-      JSXElement(node) {
-        let hasChildren = false;
-
-        if (node.children.length && !isLineBreak(node.children[0])) {
-          hasChildren = true;
-        } else if (findJsxProp(node, 'children')) {
-          hasChildren = true;
-        }
-
-        if (
-          node.openingElement.attributes &&
-          hasChildren &&
-          findJsxProp(node, 'dangerouslySetInnerHTML')
-        ) {
-          context.report({
-            node,
-            message: 'Only set one of `children` or `props.dangerouslySetInnerHTML`'
-          });
-        }
-      },
-      CallExpression(node) {
-        if (
-          node.callee &&
-          node.callee.type === 'MemberExpression' &&
-          node.callee.property.name === 'createElement' &&
-          node.arguments.length > 1
-        ) {
-          let hasChildren = false;
-
-          let props = node.arguments[1];
-
-          if (props.type === 'Identifier') {
-            const variable = variableUtil.variablesInScope(context).find(item => item.name === props.name);
-            if (variable && variable.defs.length && variable.defs[0].node.init) {
-              props = variable.defs[0].node.init;
-            }
-          }
-
-          const dangerously = findObjectProp(props, 'dangerouslySetInnerHTML', []);
-
-          if (node.arguments.length === 2) {
-            if (findObjectProp(props, 'children', [])) {
-              hasChildren = true;
-            }
-          } else {
-            hasChildren = true;
-          }
-
-          if (dangerously && hasChildren) {
-            context.report({
-              node,
-              message: 'Only set one of `children` or `props.dangerouslySetInnerHTML`'
-            });
-          }
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-danger.js b/node_modules/eslint-plugin-react/lib/rules/no-danger.js
deleted file mode 100644
index 9322c09..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-danger.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @fileoverview Prevent usage of dangerous JSX props
- * @author Scott Andrews
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DANGEROUS_MESSAGE = 'Dangerous property \'{{name}}\' found';
-
-const DANGEROUS_PROPERTY_NAMES = [
-  'dangerouslySetInnerHTML'
-];
-
-const DANGEROUS_PROPERTIES = DANGEROUS_PROPERTY_NAMES.reduce((props, prop) => {
-  props[prop] = prop;
-  return props;
-}, Object.create(null));
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-/**
- * Checks if a JSX attribute is dangerous.
- * @param {String} name - Name of the attribute to check.
- * @returns {boolean} Whether or not the attribute is dnagerous.
- */
-function isDangerous(name) {
-  return name in DANGEROUS_PROPERTIES;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of dangerous JSX props',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('no-danger')
-    },
-    schema: []
-  },
-
-  create(context) {
-    return {
-
-      JSXAttribute(node) {
-        if (jsxUtil.isDOMComponent(node.parent) && isDangerous(node.name.name)) {
-          context.report({
-            node,
-            message: DANGEROUS_MESSAGE,
-            data: {
-              name: node.name.name
-            }
-          });
-        }
-      }
-
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-deprecated.js b/node_modules/eslint-plugin-react/lib/rules/no-deprecated.js
deleted file mode 100644
index da354eb..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-deprecated.js
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * @fileoverview Prevent usage of deprecated methods
- * @author Yannick Croissant
- * @author Scott Feeney
- * @author Sergei Startsev
- */
-
-'use strict';
-
-const values = require('object.values');
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-const pragmaUtil = require('../util/pragma');
-const versionUtil = require('../util/version');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const MODULES = {
-  react: ['React'],
-  'react-addons-perf': ['ReactPerf', 'Perf']
-};
-
-const DEPRECATED_MESSAGE = '{{oldMethod}} is deprecated since React {{version}}{{newMethod}}{{refs}}';
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of deprecated methods',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-deprecated')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const pragma = pragmaUtil.getFromContext(context);
-
-    function getDeprecated() {
-      const deprecated = {};
-      // 0.12.0
-      deprecated[`${pragma}.renderComponent`] = ['0.12.0', `${pragma}.render`];
-      deprecated[`${pragma}.renderComponentToString`] = ['0.12.0', `${pragma}.renderToString`];
-      deprecated[`${pragma}.renderComponentToStaticMarkup`] = ['0.12.0', `${pragma}.renderToStaticMarkup`];
-      deprecated[`${pragma}.isValidComponent`] = ['0.12.0', `${pragma}.isValidElement`];
-      deprecated[`${pragma}.PropTypes.component`] = ['0.12.0', `${pragma}.PropTypes.element`];
-      deprecated[`${pragma}.PropTypes.renderable`] = ['0.12.0', `${pragma}.PropTypes.node`];
-      deprecated[`${pragma}.isValidClass`] = ['0.12.0'];
-      deprecated['this.transferPropsTo'] = ['0.12.0', 'spread operator ({...})'];
-      // 0.13.0
-      deprecated[`${pragma}.addons.classSet`] = ['0.13.0', 'the npm module classnames'];
-      deprecated[`${pragma}.addons.cloneWithProps`] = ['0.13.0', `${pragma}.cloneElement`];
-      // 0.14.0
-      deprecated[`${pragma}.render`] = ['0.14.0', 'ReactDOM.render'];
-      deprecated[`${pragma}.unmountComponentAtNode`] = ['0.14.0', 'ReactDOM.unmountComponentAtNode'];
-      deprecated[`${pragma}.findDOMNode`] = ['0.14.0', 'ReactDOM.findDOMNode'];
-      deprecated[`${pragma}.renderToString`] = ['0.14.0', 'ReactDOMServer.renderToString'];
-      deprecated[`${pragma}.renderToStaticMarkup`] = ['0.14.0', 'ReactDOMServer.renderToStaticMarkup'];
-      // 15.0.0
-      deprecated[`${pragma}.addons.LinkedStateMixin`] = ['15.0.0'];
-      deprecated['ReactPerf.printDOM'] = ['15.0.0', 'ReactPerf.printOperations'];
-      deprecated['Perf.printDOM'] = ['15.0.0', 'Perf.printOperations'];
-      deprecated['ReactPerf.getMeasurementsSummaryMap'] = ['15.0.0', 'ReactPerf.getWasted'];
-      deprecated['Perf.getMeasurementsSummaryMap'] = ['15.0.0', 'Perf.getWasted'];
-      // 15.5.0
-      deprecated[`${pragma}.createClass`] = ['15.5.0', 'the npm module create-react-class'];
-      deprecated[`${pragma}.addons.TestUtils`] = ['15.5.0', 'ReactDOM.TestUtils'];
-      deprecated[`${pragma}.PropTypes`] = ['15.5.0', 'the npm module prop-types'];
-      // 15.6.0
-      deprecated[`${pragma}.DOM`] = ['15.6.0', 'the npm module react-dom-factories'];
-      // 16.9.0
-      // For now the following life-cycle methods are just legacy, not deprecated:
-      // `componentWillMount`, `componentWillReceiveProps`, `componentWillUpdate`
-      // https://github.com/yannickcr/eslint-plugin-react/pull/1750#issuecomment-425975934
-      deprecated.componentWillMount = [
-        '16.9.0',
-        'UNSAFE_componentWillMount',
-        'https://reactjs.org/docs/react-component.html#unsafe_componentwillmount. ' +
-        'Use https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles to automatically update your components.'
-      ];
-      deprecated.componentWillReceiveProps = [
-        '16.9.0',
-        'UNSAFE_componentWillReceiveProps',
-        'https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops. ' +
-        'Use https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles to automatically update your components.'
-      ];
-      deprecated.componentWillUpdate = [
-        '16.9.0',
-        'UNSAFE_componentWillUpdate',
-        'https://reactjs.org/docs/react-component.html#unsafe_componentwillupdate. ' +
-        'Use https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles to automatically update your components.'
-      ];
-      return deprecated;
-    }
-
-    function isDeprecated(method) {
-      const deprecated = getDeprecated();
-
-      return (
-        deprecated &&
-        deprecated[method] &&
-        deprecated[method][0] &&
-        versionUtil.testReactVersion(context, deprecated[method][0])
-      );
-    }
-
-    function checkDeprecation(node, methodName, methodNode) {
-      if (!isDeprecated(methodName)) {
-        return;
-      }
-      const deprecated = getDeprecated();
-      const version = deprecated[methodName][0];
-      const newMethod = deprecated[methodName][1];
-      const refs = deprecated[methodName][2];
-      context.report({
-        node: methodNode || node,
-        message: DEPRECATED_MESSAGE,
-        data: {
-          oldMethod: methodName,
-          version,
-          newMethod: newMethod ? `, use ${newMethod} instead` : '',
-          refs: refs ? `, see ${refs}` : ''
-        }
-      });
-    }
-
-    function getReactModuleName(node) {
-      let moduleName = false;
-      if (!node.init) {
-        return moduleName;
-      }
-
-      values(MODULES).some((moduleNames) => {
-        moduleName = moduleNames.find(name => name === node.init.name);
-        return moduleName;
-      });
-
-      return moduleName;
-    }
-
-    /**
-     * Returns life cycle methods if available
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Array} The array of methods.
-     */
-    function getLifeCycleMethods(node) {
-      const properties = astUtil.getComponentProperties(node);
-      return properties.map(property => ({
-        name: astUtil.getPropertyName(property),
-        node: astUtil.getPropertyNameNode(property)
-      }));
-    }
-
-    /**
-     * Checks life cycle methods
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function checkLifeCycleMethods(node) {
-      if (utils.isES5Component(node) || utils.isES6Component(node)) {
-        const methods = getLifeCycleMethods(node);
-        methods.forEach(method => checkDeprecation(node, method.name, method.node));
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      MemberExpression(node) {
-        checkDeprecation(node, context.getSourceCode().getText(node));
-      },
-
-      ImportDeclaration(node) {
-        const isReactImport = typeof MODULES[node.source.value] !== 'undefined';
-        if (!isReactImport) {
-          return;
-        }
-        node.specifiers.forEach((specifier) => {
-          if (!specifier.imported) {
-            return;
-          }
-          checkDeprecation(node, `${MODULES[node.source.value][0]}.${specifier.imported.name}`);
-        });
-      },
-
-      VariableDeclarator(node) {
-        const reactModuleName = getReactModuleName(node);
-        const isRequire = node.init && node.init.callee && node.init.callee.name === 'require';
-        const isReactRequire = node.init &&
-          node.init.arguments &&
-          node.init.arguments.length &&
-          typeof MODULES[node.init.arguments[0].value] !== 'undefined';
-        const isDestructuring = node.id && node.id.type === 'ObjectPattern';
-
-        if (
-          !(isDestructuring && reactModuleName) &&
-          !(isDestructuring && isRequire && isReactRequire)
-        ) {
-          return;
-        }
-        node.id.properties.forEach((property) => {
-          checkDeprecation(node, `${reactModuleName || pragma}.${property.key.name}`);
-        });
-      },
-
-      ClassDeclaration: checkLifeCycleMethods,
-      ClassExpression: checkLifeCycleMethods,
-      ObjectExpression: checkLifeCycleMethods
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-did-mount-set-state.js b/node_modules/eslint-plugin-react/lib/rules/no-did-mount-set-state.js
deleted file mode 100644
index a5705ef..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-did-mount-set-state.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @fileoverview Prevent usage of setState in componentDidMount
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const makeNoMethodSetStateRule = require('../util/makeNoMethodSetStateRule');
-
-module.exports = makeNoMethodSetStateRule('componentDidMount');
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-did-update-set-state.js b/node_modules/eslint-plugin-react/lib/rules/no-did-update-set-state.js
deleted file mode 100644
index 5c76a1f..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-did-update-set-state.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @fileoverview Prevent usage of setState in componentDidUpdate
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const makeNoMethodSetStateRule = require('../util/makeNoMethodSetStateRule');
-
-module.exports = makeNoMethodSetStateRule('componentDidUpdate');
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-direct-mutation-state.js b/node_modules/eslint-plugin-react/lib/rules/no-direct-mutation-state.js
deleted file mode 100644
index 816fbeb..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-direct-mutation-state.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * @fileoverview Prevent direct mutation of this.state
- * @author David Petersen
- * @author Nicolas Fernandez <@burabure>
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent direct mutation of this.state',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('no-direct-mutation-state')
-    }
-  },
-
-  create: Components.detect((context, components, utils) => {
-    /**
-     * Checks if the component is valid
-     * @param {Object} component The component to process
-     * @returns {Boolean} True if the component is valid, false if not.
-     */
-    function isValid(component) {
-      return Boolean(component && !component.mutateSetState);
-    }
-
-    /**
-     * Reports undeclared proptypes for a given component
-     * @param {Object} component The component to process
-     */
-    function reportMutations(component) {
-      let mutation;
-      for (let i = 0, j = component.mutations.length; i < j; i++) {
-        mutation = component.mutations[i];
-        context.report({
-          node: mutation,
-          message: 'Do not mutate state directly. Use setState().'
-        });
-      }
-    }
-
-    /**
-     * Walks throughs the MemberExpression to the top-most property.
-     * @param {Object} node The node to process
-     * @returns {Object} The outer-most MemberExpression
-     */
-    function getOuterMemberExpression(node) {
-      while (node.object && node.object.property) {
-        node = node.object;
-      }
-      return node;
-    }
-
-    /**
-     * Determine if we should currently ignore assignments in this component.
-     * @param {?Object} component The component to process
-     * @returns {Boolean} True if we should skip assignment checks.
-     */
-    function shouldIgnoreComponent(component) {
-      return !component || (component.inConstructor && !component.inCallExpression);
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-    return {
-      MethodDefinition(node) {
-        if (node.kind === 'constructor') {
-          components.set(node, {
-            inConstructor: true
-          });
-        }
-      },
-
-      CallExpression(node) {
-        components.set(node, {
-          inCallExpression: true
-        });
-      },
-
-      AssignmentExpression(node) {
-        const component = components.get(utils.getParentComponent());
-        if (shouldIgnoreComponent(component) || !node.left || !node.left.object) {
-          return;
-        }
-        const item = getOuterMemberExpression(node.left);
-        if (utils.isStateMemberExpression(item)) {
-          const mutations = (component && component.mutations) || [];
-          mutations.push(node.left.object);
-          components.set(node, {
-            mutateSetState: true,
-            mutations
-          });
-        }
-      },
-
-      UpdateExpression(node) {
-        const component = components.get(utils.getParentComponent());
-        if (shouldIgnoreComponent(component) || node.argument.type !== 'MemberExpression') {
-          return;
-        }
-        const item = getOuterMemberExpression(node.argument);
-        if (utils.isStateMemberExpression(item)) {
-          const mutations = (component && component.mutations) || [];
-          mutations.push(item);
-          components.set(node, {
-            mutateSetState: true,
-            mutations
-          });
-        }
-      },
-
-      'CallExpression:exit'(node) {
-        components.set(node, {
-          inCallExpression: false
-        });
-      },
-
-      'MethodDefinition:exit'(node) {
-        if (node.kind === 'constructor') {
-          components.set(node, {
-            inConstructor: false
-          });
-        }
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-
-        Object.keys(list).forEach((key) => {
-          if (!isValid(list[key])) {
-            reportMutations(list[key]);
-          }
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-find-dom-node.js b/node_modules/eslint-plugin-react/lib/rules/no-find-dom-node.js
deleted file mode 100644
index f62e821..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-find-dom-node.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * @fileoverview Prevent usage of findDOMNode
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of findDOMNode',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-find-dom-node')
-    },
-    schema: []
-  },
-
-  create(context) {
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      CallExpression(node) {
-        const callee = node.callee;
-
-        const isfindDOMNode = (callee.name === 'findDOMNode') ||
-          (callee.property && callee.property.name === 'findDOMNode');
-        if (!isfindDOMNode) {
-          return;
-        }
-
-        context.report({
-          node: callee,
-          message: 'Do not use findDOMNode'
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js b/node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
deleted file mode 100644
index 3132079..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-is-mounted.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * @fileoverview Prevent usage of isMounted
- * @author Joe Lencioni
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of isMounted',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-is-mounted')
-    },
-    schema: []
-  },
-
-  create(context) {
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      CallExpression(node) {
-        const callee = node.callee;
-        if (callee.type !== 'MemberExpression') {
-          return;
-        }
-        if (callee.object.type !== 'ThisExpression' || callee.property.name !== 'isMounted') {
-          return;
-        }
-        const ancestors = context.getAncestors(callee);
-        for (let i = 0, j = ancestors.length; i < j; i++) {
-          if (ancestors[i].type === 'Property' || ancestors[i].type === 'MethodDefinition') {
-            context.report({
-              node: callee,
-              message: 'Do not use isMounted'
-            });
-            break;
-          }
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-multi-comp.js b/node_modules/eslint-plugin-react/lib/rules/no-multi-comp.js
deleted file mode 100644
index 12c5bf8..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-multi-comp.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * @fileoverview Prevent multiple component definition per file
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent multiple component definition per file',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('no-multi-comp')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignoreStateless: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const configuration = context.options[0] || {};
-    const ignoreStateless = configuration.ignoreStateless || false;
-
-    const MULTI_COMP_MESSAGE = 'Declare only one React component per file';
-
-    /**
-     * Checks if the component is ignored
-     * @param {Object} component The component being checked.
-     * @returns {Boolean} True if the component is ignored, false if not.
-     */
-    function isIgnored(component) {
-      return (
-        ignoreStateless && (
-          /Function/.test(component.node.type) ||
-          utils.isPragmaComponentWrapper(component.node)
-        )
-      );
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      'Program:exit'() {
-        if (components.length() <= 1) {
-          return;
-        }
-
-        const list = components.list();
-
-        Object.keys(list).filter(component => !isIgnored(list[component])).forEach((component, i) => {
-          if (i >= 1) {
-            context.report({
-              node: list[component].node,
-              message: MULTI_COMP_MESSAGE
-            });
-          }
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-redundant-should-component-update.js b/node_modules/eslint-plugin-react/lib/rules/no-redundant-should-component-update.js
deleted file mode 100644
index 3321dff..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-redundant-should-component-update.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * @fileoverview Flag shouldComponentUpdate when extending PureComponent
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-function errorMessage(node) {
-  return `${node} does not need shouldComponentUpdate when extending React.PureComponent.`;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Flag shouldComponentUpdate when extending PureComponent',
-      category: 'Possible Errors',
-      recommended: false,
-      url: docsUrl('no-redundant-should-component-update')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => {
-    /**
-     * Checks for shouldComponentUpdate property
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} Whether or not the property exists.
-     */
-    function hasShouldComponentUpdate(node) {
-      const properties = astUtil.getComponentProperties(node);
-      return properties.some((property) => {
-        const name = astUtil.getPropertyName(property);
-        return name === 'shouldComponentUpdate';
-      });
-    }
-
-    /**
-     * Get name of node if available
-     * @param {ASTNode} node The AST node being checked.
-     * @return {String} The name of the node
-     */
-    function getNodeName(node) {
-      if (node.id) {
-        return node.id.name;
-      }
-      if (node.parent && node.parent.id) {
-        return node.parent.id.name;
-      }
-      return '';
-    }
-
-    /**
-     * Checks for violation of rule
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function checkForViolation(node) {
-      if (utils.isPureComponent(node)) {
-        const hasScu = hasShouldComponentUpdate(node);
-        if (hasScu) {
-          const className = getNodeName(node);
-          context.report({
-            node,
-            message: errorMessage(className)
-          });
-        }
-      }
-    }
-
-    return {
-      ClassDeclaration: checkForViolation,
-      ClassExpression: checkForViolation
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-render-return-value.js b/node_modules/eslint-plugin-react/lib/rules/no-render-return-value.js
deleted file mode 100644
index 103887d..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-render-return-value.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * @fileoverview Prevent usage of the return value of React.render
- * @author Dustan Kasten
- */
-
-'use strict';
-
-const versionUtil = require('../util/version');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of the return value of React.render',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-render-return-value')
-    },
-    schema: []
-  },
-
-  create(context) {
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    let calleeObjectName = /^ReactDOM$/;
-    if (versionUtil.testReactVersion(context, '15.0.0')) {
-      calleeObjectName = /^ReactDOM$/;
-    } else if (versionUtil.testReactVersion(context, '0.14.0')) {
-      calleeObjectName = /^React(DOM)?$/;
-    } else if (versionUtil.testReactVersion(context, '0.13.0')) {
-      calleeObjectName = /^React$/;
-    }
-
-    return {
-
-      CallExpression(node) {
-        const callee = node.callee;
-        const parent = node.parent;
-        if (callee.type !== 'MemberExpression') {
-          return;
-        }
-
-        if (
-          callee.object.type !== 'Identifier' ||
-          !calleeObjectName.test(callee.object.name) ||
-          callee.property.name !== 'render'
-        ) {
-          return;
-        }
-
-        if (
-          parent.type === 'VariableDeclarator' ||
-          parent.type === 'Property' ||
-          parent.type === 'ReturnStatement' ||
-          parent.type === 'ArrowFunctionExpression' ||
-          parent.type === 'AssignmentExpression'
-        ) {
-          context.report({
-            node: callee,
-            message: `Do not depend on the return value from ${callee.object.name}.render`
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-set-state.js b/node_modules/eslint-plugin-react/lib/rules/no-set-state.js
deleted file mode 100644
index 7e0c67f..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-set-state.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * @fileoverview Prevent usage of setState
- * @author Mark Dalgleish
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of setState',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('no-set-state')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => {
-    /**
-     * Checks if the component is valid
-     * @param {Object} component The component to process
-     * @returns {Boolean} True if the component is valid, false if not.
-     */
-    function isValid(component) {
-      return Boolean(component && !component.useSetState);
-    }
-
-    /**
-     * Reports usages of setState for a given component
-     * @param {Object} component The component to process
-     */
-    function reportSetStateUsages(component) {
-      let setStateUsage;
-      for (let i = 0, j = component.setStateUsages.length; i < j; i++) {
-        setStateUsage = component.setStateUsages[i];
-        context.report({
-          node: setStateUsage,
-          message: 'Do not use setState'
-        });
-      }
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      CallExpression(node) {
-        const callee = node.callee;
-        if (
-          callee.type !== 'MemberExpression' ||
-          callee.object.type !== 'ThisExpression' ||
-          callee.property.name !== 'setState'
-        ) {
-          return;
-        }
-        const component = components.get(utils.getParentComponent());
-        const setStateUsages = component && component.setStateUsages || [];
-        setStateUsages.push(callee);
-        components.set(node, {
-          useSetState: true,
-          setStateUsages
-        });
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-        Object.keys(list).filter(component => !isValid(list[component])).forEach((component) => {
-          reportSetStateUsages(list[component]);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-string-refs.js b/node_modules/eslint-plugin-react/lib/rules/no-string-refs.js
deleted file mode 100644
index 96ebc2e..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-string-refs.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @fileoverview Prevent string definitions for references and prevent referencing this.refs
- * @author Tom Hastjarjanto
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent string definitions for references and prevent referencing this.refs',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('no-string-refs')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        noTemplateLiterals: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const detectTemplateLiterals = context.options[0] ? context.options[0].noTemplateLiterals : false;
-    /**
-     * Checks if we are using refs
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if we are using refs, false if not.
-     */
-    function isRefsUsage(node) {
-      return Boolean(
-        (
-          utils.getParentES6Component() ||
-          utils.getParentES5Component()
-        ) &&
-        node.object.type === 'ThisExpression' &&
-        node.property.name === 'refs'
-      );
-    }
-
-    /**
-     * Checks if we are using a ref attribute
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if we are using a ref attribute, false if not.
-     */
-    function isRefAttribute(node) {
-      return Boolean(
-        node.type === 'JSXAttribute' &&
-        node.name &&
-        node.name.name === 'ref'
-      );
-    }
-
-    /**
-     * Checks if a node contains a string value
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if the node contains a string value, false if not.
-     */
-    function containsStringLiteral(node) {
-      return Boolean(
-        node.value &&
-        node.value.type === 'Literal' &&
-        typeof node.value.value === 'string'
-      );
-    }
-
-    /**
-     * Checks if a node contains a string value within a jsx expression
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if the node contains a string value within a jsx expression, false if not.
-     */
-    function containsStringExpressionContainer(node) {
-      return Boolean(
-        node.value &&
-        node.value.type === 'JSXExpressionContainer' &&
-        node.value.expression &&
-        ((node.value.expression.type === 'Literal' && typeof node.value.expression.value === 'string') ||
-        (node.value.expression.type === 'TemplateLiteral' && detectTemplateLiterals))
-      );
-    }
-
-    return {
-      MemberExpression(node) {
-        if (isRefsUsage(node)) {
-          context.report({
-            node,
-            message: 'Using this.refs is deprecated.'
-          });
-        }
-      },
-      JSXAttribute(node) {
-        if (
-          isRefAttribute(node) &&
-          (containsStringLiteral(node) || containsStringExpressionContainer(node))
-        ) {
-          context.report({
-            node,
-            message: 'Using string literals in ref attributes is deprecated.'
-          });
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-this-in-sfc.js b/node_modules/eslint-plugin-react/lib/rules/no-this-in-sfc.js
deleted file mode 100644
index df86ba5..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-this-in-sfc.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * @fileoverview Report "this" being used in stateless functional components.
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const ERROR_MESSAGE = 'Stateless functional components should not use this';
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Report "this" being used in stateless components',
-      category: 'Possible Errors',
-      recommended: false,
-      url: docsUrl('no-this-in-sfc')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => ({
-    MemberExpression(node) {
-      if (node.object.type === 'ThisExpression') {
-        const component = components.get(utils.getParentStatelessComponent());
-        if (!component || component.node && component.node.parent && component.node.parent.type === 'Property') {
-          return;
-        }
-        context.report({
-          node,
-          message: ERROR_MESSAGE
-        });
-      }
-    }
-  }))
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-typos.js b/node_modules/eslint-plugin-react/lib/rules/no-typos.js
deleted file mode 100644
index ec1d6a2..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-typos.js
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * @fileoverview Prevent common casing typos
- */
-
-'use strict';
-
-const PROP_TYPES = Object.keys(require('prop-types'));
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const STATIC_CLASS_PROPERTIES = ['propTypes', 'contextTypes', 'childContextTypes', 'defaultProps'];
-const STATIC_LIFECYCLE_METHODS = ['getDerivedStateFromProps'];
-const LIFECYCLE_METHODS = [
-  'getDerivedStateFromProps',
-  'componentWillMount',
-  'UNSAFE_componentWillMount',
-  'componentDidMount',
-  'componentWillReceiveProps',
-  'UNSAFE_componentWillReceiveProps',
-  'shouldComponentUpdate',
-  'componentWillUpdate',
-  'UNSAFE_componentWillUpdate',
-  'getSnapshotBeforeUpdate',
-  'componentDidUpdate',
-  'componentDidCatch',
-  'componentWillUnmount',
-  'render'
-];
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent common typos',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('no-typos')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => {
-    let propTypesPackageName = null;
-    let reactPackageName = null;
-
-    function checkValidPropTypeQualifier(node) {
-      if (node.name !== 'isRequired') {
-        context.report({
-          node,
-          message: 'Typo in prop type chain qualifier: {{name}}',
-          data: {name: node.name}
-        });
-      }
-    }
-
-    function checkValidPropType(node) {
-      if (node.name && !PROP_TYPES.some(propTypeName => propTypeName === node.name)) {
-        context.report({
-          node,
-          message: 'Typo in declared prop type: {{name}}',
-          data: {name: node.name}
-        });
-      }
-    }
-
-    function isPropTypesPackage(node) {
-      return (
-        node.type === 'Identifier' &&
-        node.name === propTypesPackageName
-      ) || (
-        node.type === 'MemberExpression' &&
-        node.property.name === 'PropTypes' &&
-        node.object.name === reactPackageName
-      );
-    }
-
-    /* eslint-disable no-use-before-define */
-
-    function checkValidCallExpression(node) {
-      const callee = node.callee;
-      if (callee.type === 'MemberExpression' && callee.property.name === 'shape') {
-        checkValidPropObject(node.arguments[0]);
-      } else if (callee.type === 'MemberExpression' && callee.property.name === 'oneOfType') {
-        const args = node.arguments[0];
-        if (args && args.type === 'ArrayExpression') {
-          args.elements.forEach((el) => {
-            checkValidProp(el);
-          });
-        }
-      }
-    }
-
-    function checkValidProp(node) {
-      if ((!propTypesPackageName && !reactPackageName) || !node) {
-        return;
-      }
-
-      if (node.type === 'MemberExpression') {
-        if (
-          node.object.type === 'MemberExpression' &&
-          isPropTypesPackage(node.object.object)
-        ) { // PropTypes.myProp.isRequired
-          checkValidPropType(node.object.property);
-          checkValidPropTypeQualifier(node.property);
-        } else if (
-          isPropTypesPackage(node.object) &&
-          node.property.name !== 'isRequired'
-        ) { // PropTypes.myProp
-          checkValidPropType(node.property);
-        } else if (node.object.type === 'CallExpression') {
-          checkValidPropTypeQualifier(node.property);
-          checkValidCallExpression(node.object);
-        }
-      } else if (node.type === 'CallExpression') {
-        checkValidCallExpression(node);
-      }
-    }
-
-    /* eslint-enable no-use-before-define */
-
-    function checkValidPropObject(node) {
-      if (node && node.type === 'ObjectExpression') {
-        node.properties.forEach(prop => checkValidProp(prop.value));
-      }
-    }
-
-    function reportErrorIfPropertyCasingTypo(propertyValue, propertyKey, isClassProperty) {
-      const propertyName = propertyKey.name;
-      if (propertyName === 'propTypes' || propertyName === 'contextTypes' || propertyName === 'childContextTypes') {
-        checkValidPropObject(propertyValue);
-      }
-      STATIC_CLASS_PROPERTIES.forEach((CLASS_PROP) => {
-        if (propertyName && CLASS_PROP.toLowerCase() === propertyName.toLowerCase() && CLASS_PROP !== propertyName) {
-          const message = isClassProperty ?
-            'Typo in static class property declaration' :
-            'Typo in property declaration';
-          context.report({
-            node: propertyKey,
-            message
-          });
-        }
-      });
-    }
-
-    function reportErrorIfLifecycleMethodCasingTypo(node) {
-      let nodeKeyName = node.key.name;
-      if (node.key.type === 'Literal') {
-        nodeKeyName = node.key.value;
-      }
-
-      STATIC_LIFECYCLE_METHODS.forEach((method) => {
-        if (!node.static && nodeKeyName.toLowerCase() === method.toLowerCase()) {
-          context.report({
-            node,
-            message: `Lifecycle method should be static: ${nodeKeyName}`
-          });
-        }
-      });
-
-      LIFECYCLE_METHODS.forEach((method) => {
-        if (method.toLowerCase() === nodeKeyName.toLowerCase() && method !== nodeKeyName) {
-          context.report({
-            node,
-            message: 'Typo in component lifecycle method declaration: {{actual}} should be {{expected}}',
-            data: {actual: nodeKeyName, expected: method}
-          });
-        }
-      });
-    }
-
-    return {
-      ImportDeclaration(node) {
-        if (node.source && node.source.value === 'prop-types') { // import PropType from "prop-types"
-          propTypesPackageName = node.specifiers[0].local.name;
-        } else if (node.source && node.source.value === 'react') { // import { PropTypes } from "react"
-          if (node.specifiers.length > 0) {
-            reactPackageName = node.specifiers[0].local.name; // guard against accidental anonymous `import "react"`
-          }
-          if (node.specifiers.length >= 1) {
-            const propTypesSpecifier = node.specifiers.find(specifier => (
-              specifier.imported && specifier.imported.name === 'PropTypes'
-            ));
-            if (propTypesSpecifier) {
-              propTypesPackageName = propTypesSpecifier.local.name;
-            }
-          }
-        }
-      },
-
-      ClassProperty(node) {
-        if (!node.static || !utils.isES6Component(node.parent.parent)) {
-          return;
-        }
-
-        reportErrorIfPropertyCasingTypo(node.value, node.key, true);
-      },
-
-      MemberExpression(node) {
-        const propertyName = node.property.name;
-
-        if (
-          !propertyName ||
-          STATIC_CLASS_PROPERTIES.map(prop => prop.toLocaleLowerCase()).indexOf(propertyName.toLowerCase()) === -1
-        ) {
-          return;
-        }
-
-        const relatedComponent = utils.getRelatedComponent(node);
-
-        if (
-          relatedComponent &&
-          (utils.isES6Component(relatedComponent.node) || utils.isReturningJSX(relatedComponent.node)) &&
-          (node.parent && node.parent.type === 'AssignmentExpression' && node.parent.right)
-        ) {
-          reportErrorIfPropertyCasingTypo(node.parent.right, node.property, true);
-        }
-      },
-
-      MethodDefinition(node) {
-        if (!utils.isES6Component(node.parent.parent)) {
-          return;
-        }
-
-        reportErrorIfLifecycleMethodCasingTypo(node);
-      },
-
-      ObjectExpression(node) {
-        const component = utils.isES5Component(node) && components.get(node);
-
-        if (!component) {
-          return;
-        }
-
-        node.properties.forEach((property) => {
-          reportErrorIfPropertyCasingTypo(property.value, property.key, false);
-          reportErrorIfLifecycleMethodCasingTypo(property);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-unescaped-entities.js b/node_modules/eslint-plugin-react/lib/rules/no-unescaped-entities.js
deleted file mode 100644
index e42e140..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-unescaped-entities.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * @fileoverview HTML special characters should be escaped.
- * @author Patrick Hayes
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-// NOTE: '<' and '{' are also problematic characters, but they do not need
-// to be included here because it is a syntax error when these characters are
-// included accidentally.
-const DEFAULTS = [{
-  char: '>',
-  alternatives: ['&gt;']
-}, {
-  char: '"',
-  alternatives: ['&quot;', '&ldquo;', '&#34;', '&rdquo;']
-}, {
-  char: '\'',
-  alternatives: ['&apos;', '&lsquo;', '&#39;', '&rsquo;']
-}, {
-  char: '}',
-  alternatives: ['&#125;']
-}];
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Detect unescaped HTML entities, which might represent malformed tags',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('no-unescaped-entities')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        forbid: {
-          type: 'array',
-          items: {
-            oneOf: [{
-              type: 'string'
-            }, {
-              type: 'object',
-              properties: {
-                char: {
-                  type: 'string'
-                },
-                alternatives: {
-                  type: 'array',
-                  uniqueItems: true,
-                  items: {
-                    type: 'string'
-                  }
-                }
-              }
-            }]
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function reportInvalidEntity(node) {
-      const configuration = context.options[0] || {};
-      const entities = configuration.forbid || DEFAULTS;
-
-      // HTML entites are already escaped in node.value (as well as node.raw),
-      // so pull the raw text from context.getSourceCode()
-      for (let i = node.loc.start.line; i <= node.loc.end.line; i++) {
-        let rawLine = context.getSourceCode().lines[i - 1];
-        let start = 0;
-        let end = rawLine.length;
-        if (i === node.loc.start.line) {
-          start = node.loc.start.column;
-        }
-        if (i === node.loc.end.line) {
-          end = node.loc.end.column;
-        }
-        rawLine = rawLine.substring(start, end);
-        for (let j = 0; j < entities.length; j++) {
-          for (let index = 0; index < rawLine.length; index++) {
-            const c = rawLine[index];
-            if (typeof entities[j] === 'string') {
-              if (c === entities[j]) {
-                context.report({
-                  loc: {line: i, column: start + index},
-                  message: `HTML entity, \`${entities[j]}\` , must be escaped.`,
-                  node
-                });
-              }
-            } else if (c === entities[j].char) {
-              context.report({
-                loc: {line: i, column: start + index},
-                message: `\`${entities[j].char}\` can be escaped with ${entities[j].alternatives.map(alt => `\`${alt}\``).join(', ')}.`,
-                node
-              });
-            }
-          }
-        }
-      }
-    }
-
-    return {
-      'Literal, JSXText'(node) {
-        if (jsxUtil.isJSX(node.parent)) {
-          reportInvalidEntity(node);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-unknown-property.js b/node_modules/eslint-plugin-react/lib/rules/no-unknown-property.js
deleted file mode 100644
index 9152f5e..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-unknown-property.js
+++ /dev/null
@@ -1,293 +0,0 @@
-/**
- * @fileoverview Prevent usage of unknown DOM property
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const versionUtil = require('../util/version');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const DEFAULTS = {
-  ignore: []
-};
-
-const UNKNOWN_MESSAGE = 'Unknown property \'{{name}}\' found, use \'{{standardName}}\' instead';
-const WRONG_TAG_MESSAGE = 'Invalid property \'{{name}}\' found on tag \'{{tagName}}\', but it is only allowed on: {{allowedTags}}';
-
-const DOM_ATTRIBUTE_NAMES = {
-  'accept-charset': 'acceptCharset',
-  class: 'className',
-  for: 'htmlFor',
-  'http-equiv': 'httpEquiv',
-  crossorigin: 'crossOrigin'
-};
-
-const ATTRIBUTE_TAGS_MAP = {
-  crossOrigin: ['script', 'img', 'video', 'audio', 'link']
-};
-
-const SVGDOM_ATTRIBUTE_NAMES = {
-  'accent-height': 'accentHeight',
-  'alignment-baseline': 'alignmentBaseline',
-  'arabic-form': 'arabicForm',
-  'baseline-shift': 'baselineShift',
-  'cap-height': 'capHeight',
-  'clip-path': 'clipPath',
-  'clip-rule': 'clipRule',
-  'color-interpolation': 'colorInterpolation',
-  'color-interpolation-filters': 'colorInterpolationFilters',
-  'color-profile': 'colorProfile',
-  'color-rendering': 'colorRendering',
-  'dominant-baseline': 'dominantBaseline',
-  'enable-background': 'enableBackground',
-  'fill-opacity': 'fillOpacity',
-  'fill-rule': 'fillRule',
-  'flood-color': 'floodColor',
-  'flood-opacity': 'floodOpacity',
-  'font-family': 'fontFamily',
-  'font-size': 'fontSize',
-  'font-size-adjust': 'fontSizeAdjust',
-  'font-stretch': 'fontStretch',
-  'font-style': 'fontStyle',
-  'font-variant': 'fontVariant',
-  'font-weight': 'fontWeight',
-  'glyph-name': 'glyphName',
-  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
-  'glyph-orientation-vertical': 'glyphOrientationVertical',
-  'horiz-adv-x': 'horizAdvX',
-  'horiz-origin-x': 'horizOriginX',
-  'image-rendering': 'imageRendering',
-  'letter-spacing': 'letterSpacing',
-  'lighting-color': 'lightingColor',
-  'marker-end': 'markerEnd',
-  'marker-mid': 'markerMid',
-  'marker-start': 'markerStart',
-  'overline-position': 'overlinePosition',
-  'overline-thickness': 'overlineThickness',
-  'paint-order': 'paintOrder',
-  'panose-1': 'panose1',
-  'pointer-events': 'pointerEvents',
-  'rendering-intent': 'renderingIntent',
-  'shape-rendering': 'shapeRendering',
-  'stop-color': 'stopColor',
-  'stop-opacity': 'stopOpacity',
-  'strikethrough-position': 'strikethroughPosition',
-  'strikethrough-thickness': 'strikethroughThickness',
-  'stroke-dasharray': 'strokeDasharray',
-  'stroke-dashoffset': 'strokeDashoffset',
-  'stroke-linecap': 'strokeLinecap',
-  'stroke-linejoin': 'strokeLinejoin',
-  'stroke-miterlimit': 'strokeMiterlimit',
-  'stroke-opacity': 'strokeOpacity',
-  'stroke-width': 'strokeWidth',
-  'text-anchor': 'textAnchor',
-  'text-decoration': 'textDecoration',
-  'text-rendering': 'textRendering',
-  'underline-position': 'underlinePosition',
-  'underline-thickness': 'underlineThickness',
-  'unicode-bidi': 'unicodeBidi',
-  'unicode-range': 'unicodeRange',
-  'units-per-em': 'unitsPerEm',
-  'v-alphabetic': 'vAlphabetic',
-  'v-hanging': 'vHanging',
-  'v-ideographic': 'vIdeographic',
-  'v-mathematical': 'vMathematical',
-  'vector-effect': 'vectorEffect',
-  'vert-adv-y': 'vertAdvY',
-  'vert-origin-x': 'vertOriginX',
-  'vert-origin-y': 'vertOriginY',
-  'word-spacing': 'wordSpacing',
-  'writing-mode': 'writingMode',
-  'x-height': 'xHeight',
-  'xlink:actuate': 'xlinkActuate',
-  'xlink:arcrole': 'xlinkArcrole',
-  'xlink:href': 'xlinkHref',
-  'xlink:role': 'xlinkRole',
-  'xlink:show': 'xlinkShow',
-  'xlink:title': 'xlinkTitle',
-  'xlink:type': 'xlinkType',
-  'xml:base': 'xmlBase',
-  'xml:lang': 'xmlLang',
-  'xml:space': 'xmlSpace'
-};
-
-const DOM_PROPERTY_NAMES = [
-  // Standard
-  'acceptCharset', 'accessKey', 'allowFullScreen', 'autoComplete', 'autoFocus', 'autoPlay',
-  'cellPadding', 'cellSpacing', 'classID', 'className', 'colSpan', 'contentEditable', 'contextMenu',
-  'dateTime', 'encType', 'formAction', 'formEncType', 'formMethod', 'formNoValidate', 'formTarget',
-  'frameBorder', 'hrefLang', 'htmlFor', 'httpEquiv', 'inputMode', 'keyParams', 'keyType', 'marginHeight', 'marginWidth',
-  'maxLength', 'mediaGroup', 'minLength', 'noValidate', 'onAnimationEnd', 'onAnimationIteration', 'onAnimationStart',
-  'onBlur', 'onChange', 'onClick', 'onContextMenu', 'onCopy', 'onCompositionEnd', 'onCompositionStart',
-  'onCompositionUpdate', 'onCut', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave',
-  'onError', 'onFocus', 'onInput', 'onKeyDown', 'onKeyPress', 'onKeyUp', 'onLoad', 'onWheel', 'onDragOver',
-  'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver',
-  'onMouseUp', 'onPaste', 'onScroll', 'onSelect', 'onSubmit', 'onTransitionEnd', 'radioGroup', 'readOnly', 'rowSpan',
-  'spellCheck', 'srcDoc', 'srcLang', 'srcSet', 'tabIndex', 'useMap',
-  // Non standard
-  'autoCapitalize', 'autoCorrect',
-  'autoSave',
-  'itemProp', 'itemScope', 'itemType', 'itemRef', 'itemID'
-];
-function getDOMPropertyNames(context) {
-  // this was removed in React v16.1+, see https://github.com/facebook/react/pull/10823
-  if (!versionUtil.testReactVersion(context, '16.1.0')) {
-    return ['allowTransparency'].concat(DOM_PROPERTY_NAMES);
-  }
-  return DOM_PROPERTY_NAMES;
-}
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-/**
- * Checks if a node matches the JSX tag convention.
- * @param {Object} node - JSX element being tested.
- * @returns {boolean} Whether or not the node name match the JSX tag convention.
- */
-const tagConvention = /^[a-z][^-]*$/;
-function isTagName(node) {
-  if (tagConvention.test(node.parent.name.name)) {
-    // http://www.w3.org/TR/custom-elements/#type-extension-semantics
-    return !node.parent.attributes.some(attrNode => (
-      attrNode.type === 'JSXAttribute' &&
-        attrNode.name.type === 'JSXIdentifier' &&
-        attrNode.name.name === 'is'
-    ));
-  }
-  return false;
-}
-
-/**
- * Extracts the tag name for the JSXAttribute
- * @param {JSXAttribute} node - JSXAttribute being tested.
- * @returns {String|null} tag name
- */
-function getTagName(node) {
-  if (node && node.parent && node.parent.name && node.parent.name) {
-    return node.parent.name.name;
-  }
-  return null;
-}
-
-/**
- * Test wether the tag name for the JSXAttribute is
- * something like <Foo.bar />
- * @param {JSXAttribute} node - JSXAttribute being tested.
- * @returns {Boolean} result
- */
-function tagNameHasDot(node) {
-  return !!(
-    node.parent &&
-    node.parent.name &&
-    node.parent.name.type === 'JSXMemberExpression'
-  );
-}
-
-/**
- * Get the standard name of the attribute.
- * @param {String} name - Name of the attribute.
- * @param {String} context - eslint context
- * @returns {String} The standard name of the attribute.
- */
-function getStandardName(name, context) {
-  if (DOM_ATTRIBUTE_NAMES[name]) {
-    return DOM_ATTRIBUTE_NAMES[name];
-  }
-  if (SVGDOM_ATTRIBUTE_NAMES[name]) {
-    return SVGDOM_ATTRIBUTE_NAMES[name];
-  }
-  let i = -1;
-  const names = getDOMPropertyNames(context);
-  const found = names.some((element, index) => {
-    i = index;
-    return element.toLowerCase() === name;
-  });
-  return found ? names[i] : null;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of unknown DOM property',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('no-unknown-property')
-    },
-    fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignore: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function getIgnoreConfig() {
-      return context.options[0] && context.options[0].ignore || DEFAULTS.ignore;
-    }
-
-    return {
-      JSXAttribute(node) {
-        const ignoreNames = getIgnoreConfig();
-        const name = context.getSourceCode().getText(node.name);
-        if (ignoreNames.indexOf(name) >= 0) {
-          return;
-        }
-
-        // Ignore tags like <Foo.bar />
-        if (tagNameHasDot(node)) {
-          return;
-        }
-
-        const tagName = getTagName(node);
-        const allowedTags = ATTRIBUTE_TAGS_MAP[name];
-        if (tagName && allowedTags && /[^A-Z]/.test(tagName.charAt(0)) && allowedTags.indexOf(tagName) === -1) {
-          context.report({
-            node,
-            message: WRONG_TAG_MESSAGE,
-            data: {
-              name,
-              tagName,
-              allowedTags: allowedTags.join(', ')
-            }
-          });
-        }
-
-        const standardName = getStandardName(name, context);
-        if (!isTagName(node) || !standardName) {
-          return;
-        }
-        context.report({
-          node,
-          message: UNKNOWN_MESSAGE,
-          data: {
-            name,
-            standardName
-          },
-          fix(fixer) {
-            return fixer.replaceText(node.name, standardName);
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-unsafe.js b/node_modules/eslint-plugin-react/lib/rules/no-unsafe.js
deleted file mode 100644
index 59b691b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-unsafe.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * @fileoverview Prevent usage of unsafe lifecycle methods
- * @author Sergei Startsev
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-const versionUtil = require('../util/version');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent usage of unsafe lifecycle methods',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('no-unsafe')
-    },
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          checkAliases: {
-            default: false,
-            type: 'boolean'
-          }
-        },
-        additionalProperties: false
-      }
-    ]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const config = context.options[0] || {};
-    const checkAliases = config.checkAliases || false;
-
-    const isApplicable = versionUtil.testReactVersion(context, '16.3.0');
-    if (!isApplicable) {
-      return {};
-    }
-
-    const unsafe = {
-      UNSAFE_componentWillMount: {
-        newMethod: 'componentDidMount',
-        details:
-          'See https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html.'
-      },
-      UNSAFE_componentWillReceiveProps: {
-        newMethod: 'getDerivedStateFromProps',
-        details:
-          'See https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html.'
-      },
-      UNSAFE_componentWillUpdate: {
-        newMethod: 'componentDidUpdate',
-        details:
-          'See https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html.'
-      }
-    };
-    if (checkAliases) {
-      unsafe.componentWillMount = unsafe.UNSAFE_componentWillMount;
-      unsafe.componentWillReceiveProps = unsafe.UNSAFE_componentWillReceiveProps;
-      unsafe.componentWillUpdate = unsafe.UNSAFE_componentWillUpdate;
-    }
-
-    /**
-     * Returns a list of unsafe methods
-     * @returns {Array} A list of unsafe methods
-     */
-    function getUnsafeMethods() {
-      return Object.keys(unsafe);
-    }
-
-    /**
-     * Checks if a passed method is unsafe
-     * @param {string} method Life cycle method
-     * @returns {boolean} Returns true for unsafe methods, otherwise returns false
-     */
-    function isUnsafe(method) {
-      const unsafeMethods = getUnsafeMethods();
-      return unsafeMethods.indexOf(method) !== -1;
-    }
-
-    /**
-     * Reports the error for an unsafe method
-     * @param {ASTNode} node The AST node being checked
-     * @param {string} method Life cycle method
-     */
-    function checkUnsafe(node, method) {
-      if (!isUnsafe(method)) {
-        return;
-      }
-
-      const meta = unsafe[method];
-      const newMethod = meta.newMethod;
-      const details = meta.details;
-
-      context.report({
-        node,
-        message: `${method} is unsafe for use in async rendering. Update the component to use ${newMethod} instead. ${details}`
-      });
-    }
-
-    /**
-     * Returns life cycle methods if available
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Array} The array of methods.
-     */
-    function getLifeCycleMethods(node) {
-      const properties = astUtil.getComponentProperties(node);
-      return properties.map(property => astUtil.getPropertyName(property));
-    }
-
-    /**
-     * Checks life cycle methods
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function checkLifeCycleMethods(node) {
-      if (utils.isES5Component(node) || utils.isES6Component(node)) {
-        const methods = getLifeCycleMethods(node);
-        methods.forEach(method => checkUnsafe(node, method));
-      }
-    }
-
-    return {
-      ClassDeclaration: checkLifeCycleMethods,
-      ClassExpression: checkLifeCycleMethods,
-      ObjectExpression: checkLifeCycleMethods
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-unused-prop-types.js b/node_modules/eslint-plugin-react/lib/rules/no-unused-prop-types.js
deleted file mode 100644
index 2fcda62..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-unused-prop-types.js
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @fileoverview Prevent definitions of unused prop types
- * @author Evgueni Naverniouk
- */
-
-'use strict';
-
-// As for exceptions for props.children or props.className (and alike) look at
-// https://github.com/yannickcr/eslint-plugin-react/issues/7
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent definitions of unused prop types',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('no-unused-prop-types')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        customValidators: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        },
-        skipShapeProps: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const defaults = {skipShapeProps: true, customValidators: []};
-    const configuration = Object.assign({}, defaults, context.options[0] || {});
-    const UNUSED_MESSAGE = '\'{{name}}\' PropType is defined but prop is never used';
-
-    /**
-     * Checks if the component must be validated
-     * @param {Object} component The component to process
-     * @returns {Boolean} True if the component must be validated, false if not.
-     */
-    function mustBeValidated(component) {
-      return Boolean(
-        component &&
-        !component.ignoreUnusedPropTypesValidation
-      );
-    }
-
-    /**
-     * Checks if a prop is used
-     * @param {ASTNode} node The AST node being checked.
-     * @param {Object} prop Declared prop object
-     * @returns {Boolean} True if the prop is used, false if not.
-     */
-    function isPropUsed(node, prop) {
-      const usedPropTypes = node.usedPropTypes || [];
-      for (let i = 0, l = usedPropTypes.length; i < l; i++) {
-        const usedProp = usedPropTypes[i];
-        if (
-          prop.type === 'shape' ||
-          prop.name === '__ANY_KEY__' ||
-          usedProp.name === prop.name
-        ) {
-          return true;
-        }
-      }
-
-      return false;
-    }
-
-    /**
-     * Used to recursively loop through each declared prop type
-     * @param {Object} component The component to process
-     * @param {ASTNode[]|true} props List of props to validate
-     */
-    function reportUnusedPropType(component, props) {
-      // Skip props that check instances
-      if (props === true) {
-        return;
-      }
-
-      Object.keys(props || {}).forEach((key) => {
-        const prop = props[key];
-        // Skip props that check instances
-        if (prop === true) {
-          return;
-        }
-
-        if (prop.type === 'shape' && configuration.skipShapeProps) {
-          return;
-        }
-
-        if (prop.node && !isPropUsed(component, prop)) {
-          context.report({
-            node: prop.node.key || prop.node,
-            message: UNUSED_MESSAGE,
-            data: {
-              name: prop.fullName
-            }
-          });
-        }
-
-        if (prop.children) {
-          reportUnusedPropType(component, prop.children);
-        }
-      });
-    }
-
-    /**
-     * Reports unused proptypes for a given component
-     * @param {Object} component The component to process
-     */
-    function reportUnusedPropTypes(component) {
-      reportUnusedPropType(component, component.declaredPropTypes);
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      'Program:exit'() {
-        const list = components.list();
-        // Report undeclared proptypes for all classes
-        Object.keys(list).filter(component => mustBeValidated(list[component])).forEach((component) => {
-          if (!mustBeValidated(list[component])) {
-            return;
-          }
-          reportUnusedPropTypes(list[component]);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-unused-state.js b/node_modules/eslint-plugin-react/lib/rules/no-unused-state.js
deleted file mode 100644
index 05bc08b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-unused-state.js
+++ /dev/null
@@ -1,449 +0,0 @@
-/**
- * @fileoverview  Attempts to discover all state fields in a React component and
- * warn if any of them are never read.
- *
- * State field definitions are collected from `this.state = {}` assignments in
- * the constructor, objects passed to `this.setState()`, and `state = {}` class
- * property assignments.
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-const ast = require('../util/ast');
-
-// Descend through all wrapping TypeCastExpressions and return the expression
-// that was cast.
-function uncast(node) {
-  while (node.type === 'TypeCastExpression') {
-    node = node.expression;
-  }
-  return node;
-}
-
-// Return the name of an identifier or the string value of a literal. Useful
-// anywhere that a literal may be used as a key (e.g., member expressions,
-// method definitions, ObjectExpression property keys).
-function getName(node) {
-  node = uncast(node);
-  const type = node.type;
-
-  if (type === 'Identifier') {
-    return node.name;
-  }
-  if (type === 'Literal') {
-    return String(node.value);
-  }
-  if (type === 'TemplateLiteral' && node.expressions.length === 0) {
-    return node.quasis[0].value.raw;
-  }
-  return null;
-}
-
-function isThisExpression(node) {
-  return ast.unwrapTSAsExpression(uncast(node)).type === 'ThisExpression';
-}
-
-function getInitialClassInfo() {
-  return {
-    // Set of nodes where state fields were defined.
-    stateFields: new Set(),
-
-    // Set of names of state fields that we've seen used.
-    usedStateFields: new Set(),
-
-    // Names of local variables that may be pointing to this.state. To
-    // track this properly, we would need to keep track of all locals,
-    // shadowing, assignments, etc. To keep things simple, we only
-    // maintain one set of aliases per method and accept that it will
-    // produce some false negatives.
-    aliases: null
-  };
-}
-
-function isSetStateCall(node) {
-  const unwrappedCalleeNode = ast.unwrapTSAsExpression(node.callee);
-
-  return (
-    unwrappedCalleeNode.type === 'MemberExpression' &&
-    isThisExpression(unwrappedCalleeNode.object) &&
-    getName(unwrappedCalleeNode.property) === 'setState'
-  );
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent definition of unused state fields',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('no-unused-state')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => {
-    // Non-null when we are inside a React component ClassDeclaration and we have
-    // not yet encountered any use of this.state which we have chosen not to
-    // analyze. If we encounter any such usage (like this.state being spread as
-    // JSX attributes), then this is again set to null.
-    let classInfo = null;
-
-    function isStateParameterReference(node) {
-      const classMethods = [
-        'shouldComponentUpdate',
-        'componentWillUpdate',
-        'UNSAFE_componentWillUpdate',
-        'getSnapshotBeforeUpdate',
-        'componentDidUpdate'
-      ];
-
-      let scope = context.getScope();
-      while (scope) {
-        const parent = scope.block && scope.block.parent;
-        if (
-          parent &&
-          parent.type === 'MethodDefinition' && (
-            parent.static && parent.key.name === 'getDerivedStateFromProps' ||
-            classMethods.indexOf(parent.key.name) !== -1
-          ) &&
-          parent.value.type === 'FunctionExpression' &&
-          parent.value.params[1] &&
-          parent.value.params[1].name === node.name
-        ) {
-          return true;
-        }
-        scope = scope.upper;
-      }
-
-      return false;
-    }
-
-    // Returns true if the given node is possibly a reference to `this.state` or the state parameter of
-    // a lifecycle method.
-    function isStateReference(node) {
-      node = uncast(node);
-
-      const isDirectStateReference = node.type === 'MemberExpression' &&
-        isThisExpression(node.object) &&
-        node.property.name === 'state';
-
-      const isAliasedStateReference = node.type === 'Identifier' &&
-        classInfo.aliases &&
-        classInfo.aliases.has(node.name);
-
-      return isDirectStateReference || isAliasedStateReference || isStateParameterReference(node);
-    }
-
-    // Takes an ObjectExpression node and adds all named Property nodes to the
-    // current set of state fields.
-    function addStateFields(node) {
-      for (const prop of node.properties) {
-        const key = prop.key;
-
-        if (
-          prop.type === 'Property' &&
-          (key.type === 'Literal' ||
-          (key.type === 'TemplateLiteral' && key.expressions.length === 0) ||
-          (prop.computed === false && key.type === 'Identifier')) &&
-          getName(prop.key) !== null
-        ) {
-          classInfo.stateFields.add(prop);
-        }
-      }
-    }
-
-    // Adds the name of the given node as a used state field if the node is an
-    // Identifier or a Literal. Other node types are ignored.
-    function addUsedStateField(node) {
-      const name = getName(node);
-      if (name) {
-        classInfo.usedStateFields.add(name);
-      }
-    }
-
-    // Records used state fields and new aliases for an ObjectPattern which
-    // destructures `this.state`.
-    function handleStateDestructuring(node) {
-      for (const prop of node.properties) {
-        if (prop.type === 'Property') {
-          addUsedStateField(prop.key);
-        } else if (
-          (prop.type === 'ExperimentalRestProperty' || prop.type === 'RestElement') &&
-          classInfo.aliases
-        ) {
-          classInfo.aliases.add(getName(prop.argument));
-        }
-      }
-    }
-
-    // Used to record used state fields and new aliases for both
-    // AssignmentExpressions and VariableDeclarators.
-    function handleAssignment(left, right) {
-      const unwrappedRight = ast.unwrapTSAsExpression(right);
-
-      switch (left.type) {
-        case 'Identifier':
-          if (isStateReference(unwrappedRight) && classInfo.aliases) {
-            classInfo.aliases.add(left.name);
-          }
-          break;
-        case 'ObjectPattern':
-          if (isStateReference(unwrappedRight)) {
-            handleStateDestructuring(left);
-          } else if (isThisExpression(unwrappedRight) && classInfo.aliases) {
-            for (const prop of left.properties) {
-              if (prop.type === 'Property' && getName(prop.key) === 'state') {
-                const name = getName(prop.value);
-                if (name) {
-                  classInfo.aliases.add(name);
-                } else if (prop.value.type === 'ObjectPattern') {
-                  handleStateDestructuring(prop.value);
-                }
-              }
-            }
-          }
-          break;
-        default:
-        // pass
-      }
-    }
-
-    function reportUnusedFields() {
-      // Report all unused state fields.
-      for (const node of classInfo.stateFields) {
-        const name = getName(node.key);
-        if (!classInfo.usedStateFields.has(name)) {
-          context.report({
-            node,
-            message: `Unused state field: '${name}'`
-          });
-        }
-      }
-    }
-
-    return {
-      ClassDeclaration(node) {
-        if (utils.isES6Component(node)) {
-          classInfo = getInitialClassInfo();
-        }
-      },
-
-      ObjectExpression(node) {
-        if (utils.isES5Component(node)) {
-          classInfo = getInitialClassInfo();
-        }
-      },
-
-      'ObjectExpression:exit'(node) {
-        if (!classInfo) {
-          return;
-        }
-
-        if (utils.isES5Component(node)) {
-          reportUnusedFields();
-          classInfo = null;
-        }
-      },
-
-      'ClassDeclaration:exit'() {
-        if (!classInfo) {
-          return;
-        }
-        reportUnusedFields();
-        classInfo = null;
-      },
-
-      CallExpression(node) {
-        if (!classInfo) {
-          return;
-        }
-
-        const unwrappedNode = ast.unwrapTSAsExpression(node);
-        const unwrappedArgumentNode = ast.unwrapTSAsExpression(unwrappedNode.arguments[0]);
-
-        // If we're looking at a `this.setState({})` invocation, record all the
-        // properties as state fields.
-        if (
-          isSetStateCall(unwrappedNode) &&
-          unwrappedNode.arguments.length > 0 &&
-          unwrappedArgumentNode.type === 'ObjectExpression'
-        ) {
-          addStateFields(unwrappedArgumentNode);
-        } else if (
-          isSetStateCall(unwrappedNode) &&
-          unwrappedNode.arguments.length > 0 &&
-          unwrappedArgumentNode.type === 'ArrowFunctionExpression'
-        ) {
-          const unwrappedBodyNode = ast.unwrapTSAsExpression(unwrappedArgumentNode.body);
-
-          if (unwrappedBodyNode.type === 'ObjectExpression') {
-            addStateFields(unwrappedBodyNode);
-          }
-          if (unwrappedArgumentNode.params.length > 0 && classInfo.aliases) {
-            const firstParam = unwrappedArgumentNode.params[0];
-            if (firstParam.type === 'ObjectPattern') {
-              handleStateDestructuring(firstParam);
-            } else {
-              classInfo.aliases.add(getName(firstParam));
-            }
-          }
-        }
-      },
-
-      ClassProperty(node) {
-        if (!classInfo) {
-          return;
-        }
-        // If we see state being assigned as a class property using an object
-        // expression, record all the fields of that object as state fields.
-        const unwrappedValueNode = ast.unwrapTSAsExpression(node.value);
-
-        if (
-          getName(node.key) === 'state' &&
-          !node.static &&
-          unwrappedValueNode &&
-          unwrappedValueNode.type === 'ObjectExpression'
-        ) {
-          addStateFields(unwrappedValueNode);
-        }
-
-        if (
-          !node.static &&
-          unwrappedValueNode &&
-          unwrappedValueNode.type === 'ArrowFunctionExpression'
-        ) {
-          // Create a new set for this.state aliases local to this method.
-          classInfo.aliases = new Set();
-        }
-      },
-
-      'ClassProperty:exit'(node) {
-        if (
-          classInfo &&
-          !node.static &&
-          node.value &&
-          node.value.type === 'ArrowFunctionExpression'
-        ) {
-          // Forget our set of local aliases.
-          classInfo.aliases = null;
-        }
-      },
-
-      MethodDefinition() {
-        if (!classInfo) {
-          return;
-        }
-        // Create a new set for this.state aliases local to this method.
-        classInfo.aliases = new Set();
-      },
-
-      'MethodDefinition:exit'() {
-        if (!classInfo) {
-          return;
-        }
-        // Forget our set of local aliases.
-        classInfo.aliases = null;
-      },
-
-      FunctionExpression(node) {
-        if (!classInfo) {
-          return;
-        }
-
-        const parent = node.parent;
-        if (!utils.isES5Component(parent.parent)) {
-          return;
-        }
-
-        if (parent.key.name === 'getInitialState') {
-          const body = node.body.body;
-          const lastBodyNode = body[body.length - 1];
-
-          if (
-            lastBodyNode.type === 'ReturnStatement' &&
-            lastBodyNode.argument.type === 'ObjectExpression'
-          ) {
-            addStateFields(lastBodyNode.argument);
-          }
-        } else {
-          // Create a new set for this.state aliases local to this method.
-          classInfo.aliases = new Set();
-        }
-      },
-
-      AssignmentExpression(node) {
-        if (!classInfo) {
-          return;
-        }
-
-        const unwrappedLeft = ast.unwrapTSAsExpression(node.left);
-        const unwrappedRight = ast.unwrapTSAsExpression(node.right);
-
-        // Check for assignments like `this.state = {}`
-        if (
-          unwrappedLeft.type === 'MemberExpression' &&
-          isThisExpression(unwrappedLeft.object) &&
-          getName(unwrappedLeft.property) === 'state' &&
-          unwrappedRight.type === 'ObjectExpression'
-        ) {
-          // Find the nearest function expression containing this assignment.
-          let fn = node;
-          while (fn.type !== 'FunctionExpression' && fn.parent) {
-            fn = fn.parent;
-          }
-          // If the nearest containing function is the constructor, then we want
-          // to record all the assigned properties as state fields.
-          if (
-            fn.parent &&
-            fn.parent.type === 'MethodDefinition' &&
-            fn.parent.kind === 'constructor'
-          ) {
-            addStateFields(unwrappedRight);
-          }
-        } else {
-          // Check for assignments like `alias = this.state` and record the alias.
-          handleAssignment(unwrappedLeft, unwrappedRight);
-        }
-      },
-
-      VariableDeclarator(node) {
-        if (!classInfo || !node.init) {
-          return;
-        }
-        handleAssignment(node.id, node.init);
-      },
-
-      MemberExpression(node) {
-        if (!classInfo) {
-          return;
-        }
-        if (isStateReference(ast.unwrapTSAsExpression(node.object))) {
-          // If we see this.state[foo] access, give up.
-          if (node.computed && node.property.type !== 'Literal') {
-            classInfo = null;
-            return;
-          }
-          // Otherwise, record that we saw this property being accessed.
-          addUsedStateField(node.property);
-        // If we see a `this.state` access in a CallExpression, give up.
-        } else if (isStateReference(node) && node.parent.type === 'CallExpression') {
-          classInfo = null;
-        }
-      },
-
-      JSXSpreadAttribute(node) {
-        if (classInfo && isStateReference(node.argument)) {
-          classInfo = null;
-        }
-      },
-
-      'ExperimentalSpreadProperty, SpreadElement'(node) {
-        if (classInfo && isStateReference(node.argument)) {
-          classInfo = null;
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/no-will-update-set-state.js b/node_modules/eslint-plugin-react/lib/rules/no-will-update-set-state.js
deleted file mode 100644
index 0267227..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/no-will-update-set-state.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * @fileoverview Prevent usage of setState in componentWillUpdate
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const makeNoMethodSetStateRule = require('../util/makeNoMethodSetStateRule');
-const versionUtil = require('../util/version');
-
-module.exports = makeNoMethodSetStateRule(
-  'componentWillUpdate',
-  context => versionUtil.testReactVersion(context, '16.3.0')
-);
diff --git a/node_modules/eslint-plugin-react/lib/rules/prefer-es6-class.js b/node_modules/eslint-plugin-react/lib/rules/prefer-es6-class.js
deleted file mode 100644
index b35a85b..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/prefer-es6-class.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @fileoverview Enforce ES5 or ES6 class for React Components
- * @author Dan Hamilton
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce ES5 or ES6 class for React Components',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('prefer-es6-class')
-    },
-
-    schema: [{
-      enum: ['always', 'never']
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const configuration = context.options[0] || 'always';
-
-    return {
-      ObjectExpression(node) {
-        if (utils.isES5Component(node) && configuration === 'always') {
-          context.report({
-            node,
-            message: 'Component should use es6 class instead of createClass'
-          });
-        }
-      },
-      ClassDeclaration(node) {
-        if (utils.isES6Component(node) && configuration === 'never') {
-          context.report({
-            node,
-            message: 'Component should use createClass instead of es6 class'
-          });
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/prefer-read-only-props.js b/node_modules/eslint-plugin-react/lib/rules/prefer-read-only-props.js
deleted file mode 100644
index 8349435..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/prefer-read-only-props.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * @fileoverview Require component props to be typed as read-only.
- * @author Luke Zapart
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-function isFlowPropertyType(node) {
-  return node.type === 'ObjectTypeProperty';
-}
-
-function isCovariant(node) {
-  return node.variance && node.variance.kind === 'plus';
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Require read-only props.',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('prefer-read-only-props')
-    },
-    fixable: 'code',
-    schema: []
-  },
-
-  create: Components.detect((context, components) => ({
-    'Program:exit'() {
-      const list = components.list();
-
-      Object.keys(list).forEach((key) => {
-        const component = list[key];
-
-        if (!component.declaredPropTypes) {
-          return;
-        }
-
-        Object.keys(component.declaredPropTypes).forEach((propName) => {
-          const prop = component.declaredPropTypes[propName];
-
-          if (!isFlowPropertyType(prop.node)) {
-            return;
-          }
-
-          if (!isCovariant(prop.node)) {
-            context.report({
-              node: prop.node,
-              message: 'Prop \'{{propName}}\' should be read-only.',
-              data: {
-                propName
-              },
-              fix: (fixer) => {
-                if (!prop.node.variance) {
-                  // Insert covariance
-                  return fixer.insertTextBefore(prop.node, '+');
-                }
-
-                // Replace contravariance with covariance
-                return fixer.replaceText(prop.node.variance, '+');
-              }
-            });
-          }
-        });
-      });
-    }
-  }))
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/prefer-stateless-function.js b/node_modules/eslint-plugin-react/lib/rules/prefer-stateless-function.js
deleted file mode 100644
index e128b2d..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/prefer-stateless-function.js
+++ /dev/null
@@ -1,381 +0,0 @@
-/**
- * @fileoverview Enforce stateless components to be written as a pure function
- * @author Yannick Croissant
- * @author Alberto Rodríguez
- * @copyright 2015 Alberto Rodríguez. All rights reserved.
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const versionUtil = require('../util/version');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce stateless components to be written as a pure function',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('prefer-stateless-function')
-    },
-    schema: [{
-      type: 'object',
-      properties: {
-        ignorePureComponents: {
-          default: false,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const configuration = context.options[0] || {};
-    const ignorePureComponents = configuration.ignorePureComponents || false;
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    /**
-     * Checks whether a given array of statements is a single call of `super`.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode[]} body - An array of statements to check.
-     * @returns {boolean} `true` if the body is a single call of `super`.
-     */
-    function isSingleSuperCall(body) {
-      return (
-        body.length === 1 &&
-        body[0].type === 'ExpressionStatement' &&
-        body[0].expression.type === 'CallExpression' &&
-        body[0].expression.callee.type === 'Super'
-      );
-    }
-
-    /**
-     * Checks whether a given node is a pattern which doesn't have any side effects.
-     * Default parameters and Destructuring parameters can have side effects.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode} node - A pattern node.
-     * @returns {boolean} `true` if the node doesn't have any side effects.
-     */
-    function isSimple(node) {
-      return node.type === 'Identifier' || node.type === 'RestElement';
-    }
-
-    /**
-     * Checks whether a given array of expressions is `...arguments` or not.
-     * `super(...arguments)` passes all arguments through.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode[]} superArgs - An array of expressions to check.
-     * @returns {boolean} `true` if the superArgs is `...arguments`.
-     */
-    function isSpreadArguments(superArgs) {
-      return (
-        superArgs.length === 1 &&
-        superArgs[0].type === 'SpreadElement' &&
-        superArgs[0].argument.type === 'Identifier' &&
-        superArgs[0].argument.name === 'arguments'
-      );
-    }
-
-    /**
-     * Checks whether given 2 nodes are identifiers which have the same name or not.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode} ctorParam - A node to check.
-     * @param {ASTNode} superArg - A node to check.
-     * @returns {boolean} `true` if the nodes are identifiers which have the same
-     *      name.
-     */
-    function isValidIdentifierPair(ctorParam, superArg) {
-      return (
-        ctorParam.type === 'Identifier' &&
-        superArg.type === 'Identifier' &&
-        ctorParam.name === superArg.name
-      );
-    }
-
-    /**
-     * Checks whether given 2 nodes are a rest/spread pair which has the same values.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode} ctorParam - A node to check.
-     * @param {ASTNode} superArg - A node to check.
-     * @returns {boolean} `true` if the nodes are a rest/spread pair which has the
-     *      same values.
-     */
-    function isValidRestSpreadPair(ctorParam, superArg) {
-      return (
-        ctorParam.type === 'RestElement' &&
-        superArg.type === 'SpreadElement' &&
-        isValidIdentifierPair(ctorParam.argument, superArg.argument)
-      );
-    }
-
-    /**
-     * Checks whether given 2 nodes have the same value or not.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode} ctorParam - A node to check.
-     * @param {ASTNode} superArg - A node to check.
-     * @returns {boolean} `true` if the nodes have the same value or not.
-     */
-    function isValidPair(ctorParam, superArg) {
-      return (
-        isValidIdentifierPair(ctorParam, superArg) ||
-        isValidRestSpreadPair(ctorParam, superArg)
-      );
-    }
-
-    /**
-     * Checks whether the parameters of a constructor and the arguments of `super()`
-     * have the same values or not.
-     * @see ESLint no-useless-constructor rule
-     * @param {ASTNode[]} ctorParams - The parameters of a constructor to check.
-     * @param {ASTNode} superArgs - The arguments of `super()` to check.
-     * @returns {boolean} `true` if those have the same values.
-     */
-    function isPassingThrough(ctorParams, superArgs) {
-      if (ctorParams.length !== superArgs.length) {
-        return false;
-      }
-
-      for (let i = 0; i < ctorParams.length; ++i) {
-        if (!isValidPair(ctorParams[i], superArgs[i])) {
-          return false;
-        }
-      }
-
-      return true;
-    }
-
-    /**
-     * Checks whether the constructor body is a redundant super call.
-     * @see ESLint no-useless-constructor rule
-     * @param {Array} body - constructor body content.
-     * @param {Array} ctorParams - The params to check against super call.
-     * @returns {boolean} true if the construtor body is redundant
-     */
-    function isRedundantSuperCall(body, ctorParams) {
-      return (
-        isSingleSuperCall(body) &&
-        ctorParams.every(isSimple) &&
-        (
-          isSpreadArguments(body[0].expression.arguments) ||
-          isPassingThrough(ctorParams, body[0].expression.arguments)
-        )
-      );
-    }
-
-    /**
-     * Check if a given AST node have any other properties the ones available in stateless components
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if the node has at least one other property, false if not.
-     */
-    function hasOtherProperties(node) {
-      const properties = astUtil.getComponentProperties(node);
-      return properties.some((property) => {
-        const name = astUtil.getPropertyName(property);
-        const isDisplayName = name === 'displayName';
-        const isPropTypes = name === 'propTypes' || name === 'props' && property.typeAnnotation;
-        const contextTypes = name === 'contextTypes';
-        const defaultProps = name === 'defaultProps';
-        const isUselessConstructor = property.kind === 'constructor' &&
-          !!property.value.body &&
-          isRedundantSuperCall(property.value.body.body, property.value.params);
-        const isRender = name === 'render';
-        return !isDisplayName && !isPropTypes && !contextTypes && !defaultProps && !isUselessConstructor && !isRender;
-      });
-    }
-
-    /**
-     * Mark component as pure as declared
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markSCUAsDeclared(node) {
-      components.set(node, {
-        hasSCU: true
-      });
-    }
-
-    /**
-     * Mark childContextTypes as declared
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markChildContextTypesAsDeclared(node) {
-      components.set(node, {
-        hasChildContextTypes: true
-      });
-    }
-
-    /**
-     * Mark a setState as used
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markThisAsUsed(node) {
-      components.set(node, {
-        useThis: true
-      });
-    }
-
-    /**
-     * Mark a props or context as used
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markPropsOrContextAsUsed(node) {
-      components.set(node, {
-        usePropsOrContext: true
-      });
-    }
-
-    /**
-     * Mark a ref as used
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markRefAsUsed(node) {
-      components.set(node, {
-        useRef: true
-      });
-    }
-
-    /**
-     * Mark return as invalid
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markReturnAsInvalid(node) {
-      components.set(node, {
-        invalidReturn: true
-      });
-    }
-
-    /**
-     * Mark a ClassDeclaration as having used decorators
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markDecoratorsAsUsed(node) {
-      components.set(node, {
-        useDecorators: true
-      });
-    }
-
-    function visitClass(node) {
-      if (ignorePureComponents && utils.isPureComponent(node)) {
-        markSCUAsDeclared(node);
-      }
-
-      if (node.decorators && node.decorators.length) {
-        markDecoratorsAsUsed(node);
-      }
-    }
-
-    return {
-      ClassDeclaration: visitClass,
-      ClassExpression: visitClass,
-
-      // Mark `this` destructuring as a usage of `this`
-      VariableDeclarator(node) {
-        // Ignore destructuring on other than `this`
-        if (!node.id || node.id.type !== 'ObjectPattern' || !node.init || node.init.type !== 'ThisExpression') {
-          return;
-        }
-        // Ignore `props` and `context`
-        const useThis = node.id.properties.some((property) => {
-          const name = astUtil.getPropertyName(property);
-          return name !== 'props' && name !== 'context';
-        });
-        if (!useThis) {
-          markPropsOrContextAsUsed(node);
-          return;
-        }
-        markThisAsUsed(node);
-      },
-
-      // Mark `this` usage
-      MemberExpression(node) {
-        if (node.object.type !== 'ThisExpression') {
-          if (node.property && node.property.name === 'childContextTypes') {
-            const component = utils.getRelatedComponent(node);
-            if (!component) {
-              return;
-            }
-            markChildContextTypesAsDeclared(component.node);
-          }
-          return;
-        // Ignore calls to `this.props` and `this.context`
-        }
-        if (
-          (node.property.name || node.property.value) === 'props' ||
-          (node.property.name || node.property.value) === 'context'
-        ) {
-          markPropsOrContextAsUsed(node);
-          return;
-        }
-        markThisAsUsed(node);
-      },
-
-      // Mark `ref` usage
-      JSXAttribute(node) {
-        const name = context.getSourceCode().getText(node.name);
-        if (name !== 'ref') {
-          return;
-        }
-        markRefAsUsed(node);
-      },
-
-      // Mark `render` that do not return some JSX
-      ReturnStatement(node) {
-        let blockNode;
-        let scope = context.getScope();
-        while (scope) {
-          blockNode = scope.block && scope.block.parent;
-          if (blockNode && (blockNode.type === 'MethodDefinition' || blockNode.type === 'Property')) {
-            break;
-          }
-          scope = scope.upper;
-        }
-        const isRender = blockNode && blockNode.key && blockNode.key.name === 'render';
-        const allowNull = versionUtil.testReactVersion(context, '15.0.0'); // Stateless components can return null since React 15
-        const isReturningJSX = utils.isReturningJSX(node, !allowNull);
-        const isReturningNull = node.argument && (node.argument.value === null || node.argument.value === false);
-        if (
-          !isRender ||
-          (allowNull && (isReturningJSX || isReturningNull)) ||
-          (!allowNull && isReturningJSX)
-        ) {
-          return;
-        }
-        markReturnAsInvalid(node);
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-        Object.keys(list).forEach((component) => {
-          if (
-            hasOtherProperties(list[component].node) ||
-            list[component].useThis ||
-            list[component].useRef ||
-            list[component].invalidReturn ||
-            list[component].hasChildContextTypes ||
-            list[component].useDecorators ||
-            (!utils.isES5Component(list[component].node) && !utils.isES6Component(list[component].node))
-          ) {
-            return;
-          }
-
-          if (list[component].hasSCU) {
-            return;
-          }
-          context.report({
-            node: list[component].node,
-            message: 'Component should be written as a pure function'
-          });
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/prop-types.js b/node_modules/eslint-plugin-react/lib/rules/prop-types.js
deleted file mode 100644
index a974833..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/prop-types.js
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- * @fileoverview Prevent missing props validation in a React component definition
- * @author Yannick Croissant
- */
-
-'use strict';
-
-// As for exceptions for props.children or props.className (and alike) look at
-// https://github.com/yannickcr/eslint-plugin-react/issues/7
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent missing props validation in a React component definition',
-      category: 'Best Practices',
-      recommended: true,
-      url: docsUrl('prop-types')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        ignore: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        },
-        customValidators: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        },
-        skipUndeclared: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const configuration = context.options[0] || {};
-    const ignored = configuration.ignore || [];
-    const skipUndeclared = configuration.skipUndeclared || false;
-
-    const MISSING_MESSAGE = '\'{{name}}\' is missing in props validation';
-
-    /**
-     * Checks if the prop is ignored
-     * @param {String} name Name of the prop to check.
-     * @returns {Boolean} True if the prop is ignored, false if not.
-     */
-    function isIgnored(name) {
-      return ignored.indexOf(name) !== -1;
-    }
-
-    /**
-     * Checks if the component must be validated
-     * @param {Object} component The component to process
-     * @returns {Boolean} True if the component must be validated, false if not.
-     */
-    function mustBeValidated(component) {
-      const isSkippedByConfig = skipUndeclared && typeof component.declaredPropTypes === 'undefined';
-      return Boolean(
-        component &&
-        component.usedPropTypes &&
-        !component.ignorePropsValidation &&
-        !isSkippedByConfig
-      );
-    }
-
-    /**
-     * Internal: Checks if the prop is declared
-     * @param {Object} declaredPropTypes Description of propTypes declared in the current component
-     * @param {String[]} keyList Dot separated name of the prop to check.
-     * @returns {Boolean} True if the prop is declared, false if not.
-     */
-    function internalIsDeclaredInComponent(declaredPropTypes, keyList) {
-      for (let i = 0, j = keyList.length; i < j; i++) {
-        const key = keyList[i];
-        const propType = (
-          declaredPropTypes && (
-            // Check if this key is declared
-            (declaredPropTypes[key] || // If not, check if this type accepts any key
-            declaredPropTypes.__ANY_KEY__) // eslint-disable-line no-underscore-dangle
-          )
-        );
-
-        if (!propType) {
-          // If it's a computed property, we can't make any further analysis, but is valid
-          return key === '__COMPUTED_PROP__';
-        }
-        if (typeof propType === 'object' && !propType.type) {
-          return true;
-        }
-        // Consider every children as declared
-        if (propType.children === true || propType.containsUnresolvedSpread || propType.containsIndexers) {
-          return true;
-        }
-        if (propType.acceptedProperties) {
-          return key in propType.acceptedProperties;
-        }
-        if (propType.type === 'union') {
-          // If we fall in this case, we know there is at least one complex type in the union
-          if (i + 1 >= j) {
-            // this is the last key, accept everything
-            return true;
-          }
-          // non trivial, check all of them
-          const unionTypes = propType.children;
-          const unionPropType = {};
-          for (let k = 0, z = unionTypes.length; k < z; k++) {
-            unionPropType[key] = unionTypes[k];
-            const isValid = internalIsDeclaredInComponent(
-              unionPropType,
-              keyList.slice(i)
-            );
-            if (isValid) {
-              return true;
-            }
-          }
-
-          // every possible union were invalid
-          return false;
-        }
-        declaredPropTypes = propType.children;
-      }
-      return true;
-    }
-
-    /**
-     * Checks if the prop is declared
-     * @param {ASTNode} node The AST node being checked.
-     * @param {String[]} names List of names of the prop to check.
-     * @returns {Boolean} True if the prop is declared, false if not.
-     */
-    function isDeclaredInComponent(node, names) {
-      while (node) {
-        const component = components.get(node);
-
-        const isDeclared = component && component.confidence === 2 &&
-          internalIsDeclaredInComponent(component.declaredPropTypes || {}, names);
-        if (isDeclared) {
-          return true;
-        }
-        node = node.parent;
-      }
-      return false;
-    }
-
-    /**
-     * Reports undeclared proptypes for a given component
-     * @param {Object} component The component to process
-     */
-    function reportUndeclaredPropTypes(component) {
-      const undeclareds = component.usedPropTypes.filter(propType => (
-        propType.node &&
-        !isIgnored(propType.allNames[0]) &&
-        !isDeclaredInComponent(component.node, propType.allNames)
-      ));
-      undeclareds.forEach((propType) => {
-        context.report({
-          node: propType.node,
-          message: MISSING_MESSAGE,
-          data: {
-            name: propType.allNames.join('.').replace(/\.__COMPUTED_PROP__/g, '[]')
-          }
-        });
-      });
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-      'Program:exit'() {
-        const list = components.list();
-        // Report undeclared proptypes for all classes
-        Object.keys(list).filter(component => mustBeValidated(list[component])).forEach((component) => {
-          reportUndeclaredPropTypes(list[component]);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/react-in-jsx-scope.js b/node_modules/eslint-plugin-react/lib/rules/react-in-jsx-scope.js
deleted file mode 100644
index 9df35da..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/react-in-jsx-scope.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * @fileoverview Prevent missing React when using JSX
- * @author Glen Mailer
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const pragmaUtil = require('../util/pragma');
-const docsUrl = require('../util/docsUrl');
-
-// -----------------------------------------------------------------------------
-// Rule Definition
-// -----------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent missing React when using JSX',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('react-in-jsx-scope')
-    },
-    schema: []
-  },
-
-  create(context) {
-    const pragma = pragmaUtil.getFromContext(context);
-    const NOT_DEFINED_MESSAGE = '\'{{name}}\' must be in scope when using JSX';
-
-    function checkIfReactIsInScope(node) {
-      const variables = variableUtil.variablesInScope(context);
-      if (variableUtil.findVariable(variables, pragma)) {
-        return;
-      }
-      context.report({
-        node,
-        message: NOT_DEFINED_MESSAGE,
-        data: {
-          name: pragma
-        }
-      });
-    }
-
-    return {
-      JSXOpeningElement: checkIfReactIsInScope,
-      JSXOpeningFragment: checkIfReactIsInScope
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/require-default-props.js b/node_modules/eslint-plugin-react/lib/rules/require-default-props.js
deleted file mode 100644
index e744f05..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/require-default-props.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- * @fileOverview Enforce a defaultProps definition for every prop that is not a required prop.
- * @author Vitor Balocco
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-const astUtil = require('../util/ast');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce a defaultProps definition for every prop that is not a required prop.',
-      category: 'Best Practices',
-      url: docsUrl('require-default-props')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        forbidDefaultForRequired: {
-          type: 'boolean'
-        },
-        ignoreFunctionalComponents: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const configuration = context.options[0] || {};
-    const forbidDefaultForRequired = configuration.forbidDefaultForRequired || false;
-    const ignoreFunctionalComponents = configuration.ignoreFunctionalComponents || false;
-
-    /**
-     * Reports all propTypes passed in that don't have a defaultProps counterpart.
-     * @param  {Object[]} propTypes    List of propTypes to check.
-     * @param  {Object}   defaultProps Object of defaultProps to check. Keys are the props names.
-     * @return {void}
-     */
-    function reportPropTypesWithoutDefault(propTypes, defaultProps) {
-      // If this defaultProps is "unresolved", then we should ignore this component and not report
-      // any errors for it, to avoid false-positives with e.g. external defaultProps declarations or spread operators.
-      if (defaultProps === 'unresolved') {
-        return;
-      }
-
-      Object.keys(propTypes).forEach((propName) => {
-        const prop = propTypes[propName];
-        if (prop.isRequired) {
-          if (forbidDefaultForRequired && defaultProps[propName]) {
-            context.report({
-              node: prop.node,
-              message: 'propType "{{name}}" is required and should not have a defaultProps declaration.',
-              data: {name: propName}
-            });
-          }
-          return;
-        }
-
-        if (defaultProps[propName]) {
-          return;
-        }
-
-        context.report({
-          node: prop.node,
-          message: 'propType "{{name}}" is not required, but has no corresponding defaultProps declaration.',
-          data: {name: propName}
-        });
-      });
-    }
-
-    // --------------------------------------------------------------------------
-    // Public API
-    // --------------------------------------------------------------------------
-
-    return {
-      'Program:exit'() {
-        const list = components.list();
-
-        Object.keys(list).filter((component) => {
-          if (ignoreFunctionalComponents &&
-            (astUtil.isFunction(list[component].node) || astUtil.isFunctionLikeExpression(list[component].node))) {
-            return false;
-          }
-          return list[component].declaredPropTypes;
-        }).forEach((component) => {
-          reportPropTypesWithoutDefault(
-            list[component].declaredPropTypes,
-            list[component].defaultProps || {}
-          );
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/require-optimization.js b/node_modules/eslint-plugin-react/lib/rules/require-optimization.js
deleted file mode 100644
index ee56e82..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/require-optimization.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/**
- * @fileoverview Enforce React components to have a shouldComponentUpdate method
- * @author Evgueni Naverniouk
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce React components to have a shouldComponentUpdate method',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('require-optimization')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        allowDecorators: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const MISSING_MESSAGE = 'Component is not optimized. Please add a shouldComponentUpdate method.';
-    const configuration = context.options[0] || {};
-    const allowDecorators = configuration.allowDecorators || [];
-
-    /**
-     * Checks to see if our component is decorated by PureRenderMixin via reactMixin
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if node is decorated with a PureRenderMixin, false if not.
-     */
-    function hasPureRenderDecorator(node) {
-      if (node.decorators && node.decorators.length) {
-        for (let i = 0, l = node.decorators.length; i < l; i++) {
-          if (
-            node.decorators[i].expression &&
-            node.decorators[i].expression.callee &&
-            node.decorators[i].expression.callee.object &&
-            node.decorators[i].expression.callee.object.name === 'reactMixin' &&
-            node.decorators[i].expression.callee.property &&
-            node.decorators[i].expression.callee.property.name === 'decorate' &&
-            node.decorators[i].expression.arguments &&
-            node.decorators[i].expression.arguments.length &&
-            node.decorators[i].expression.arguments[0].name === 'PureRenderMixin'
-          ) {
-            return true;
-          }
-        }
-      }
-
-      return false;
-    }
-
-    /**
-     * Checks to see if our component is custom decorated
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if node is decorated name with a custom decorated, false if not.
-     */
-    function hasCustomDecorator(node) {
-      const allowLength = allowDecorators.length;
-
-      if (allowLength && node.decorators && node.decorators.length) {
-        for (let i = 0; i < allowLength; i++) {
-          for (let j = 0, l = node.decorators.length; j < l; j++) {
-            if (
-              node.decorators[j].expression &&
-              node.decorators[j].expression.name === allowDecorators[i]
-            ) {
-              return true;
-            }
-          }
-        }
-      }
-
-      return false;
-    }
-
-    /**
-     * Checks if we are declaring a shouldComponentUpdate method
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if we are declaring a shouldComponentUpdate method, false if not.
-     */
-    function isSCUDeclared(node) {
-      return Boolean(
-        node &&
-        node.name === 'shouldComponentUpdate'
-      );
-    }
-
-    /**
-     * Checks if we are declaring a PureRenderMixin mixin
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if we are declaring a PureRenderMixin method, false if not.
-     */
-    function isPureRenderDeclared(node) {
-      let hasPR = false;
-      if (node.value && node.value.elements) {
-        for (let i = 0, l = node.value.elements.length; i < l; i++) {
-          if (node.value.elements[i] && node.value.elements[i].name === 'PureRenderMixin') {
-            hasPR = true;
-            break;
-          }
-        }
-      }
-
-      return Boolean(
-        node &&
-        node.key.name === 'mixins' &&
-        hasPR
-      );
-    }
-
-    /**
-     * Mark shouldComponentUpdate as declared
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markSCUAsDeclared(node) {
-      components.set(node, {
-        hasSCU: true
-      });
-    }
-
-    /**
-     * Reports missing optimization for a given component
-     * @param {Object} component The component to process
-     */
-    function reportMissingOptimization(component) {
-      context.report({
-        node: component.node,
-        message: MISSING_MESSAGE,
-        data: {
-          component: component.name
-        }
-      });
-    }
-
-    /**
-     * Checks if we are declaring function in class
-     * @returns {Boolean} True if we are declaring function in class, false if not.
-     */
-    function isFunctionInClass() {
-      let blockNode;
-      let scope = context.getScope();
-      while (scope) {
-        blockNode = scope.block;
-        if (blockNode && blockNode.type === 'ClassDeclaration') {
-          return true;
-        }
-        scope = scope.upper;
-      }
-
-      return false;
-    }
-
-    return {
-      ArrowFunctionExpression(node) {
-        // Skip if the function is declared in the class
-        if (isFunctionInClass()) {
-          return;
-        }
-        // Stateless Functional Components cannot be optimized (yet)
-        markSCUAsDeclared(node);
-      },
-
-      ClassDeclaration(node) {
-        if (!(hasPureRenderDecorator(node) || hasCustomDecorator(node) || utils.isPureComponent(node))) {
-          return;
-        }
-        markSCUAsDeclared(node);
-      },
-
-      FunctionDeclaration(node) {
-        // Skip if the function is declared in the class
-        if (isFunctionInClass()) {
-          return;
-        }
-        // Stateless Functional Components cannot be optimized (yet)
-        markSCUAsDeclared(node);
-      },
-
-      FunctionExpression(node) {
-        // Skip if the function is declared in the class
-        if (isFunctionInClass()) {
-          return;
-        }
-        // Stateless Functional Components cannot be optimized (yet)
-        markSCUAsDeclared(node);
-      },
-
-      MethodDefinition(node) {
-        if (!isSCUDeclared(node.key)) {
-          return;
-        }
-        markSCUAsDeclared(node);
-      },
-
-      ObjectExpression(node) {
-        // Search for the shouldComponentUpdate declaration
-        const found = node.properties.some(property => (
-          property.key &&
-          (isSCUDeclared(property.key) || isPureRenderDeclared(property))
-        ));
-        if (found) {
-          markSCUAsDeclared(node);
-        }
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-
-        // Report missing shouldComponentUpdate for all components
-        Object.keys(list).filter(component => !list[component].hasSCU).forEach((component) => {
-          reportMissingOptimization(list[component]);
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/require-render-return.js b/node_modules/eslint-plugin-react/lib/rules/require-render-return.js
deleted file mode 100644
index 72a2249..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/require-render-return.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * @fileoverview Enforce ES5 or ES6 class for returning value in render function.
- * @author Mark Orel
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce ES5 or ES6 class for returning value in render function',
-      category: 'Possible Errors',
-      recommended: true,
-      url: docsUrl('require-render-return')
-    },
-    schema: [{}]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    /**
-     * Mark a return statement as present
-     * @param {ASTNode} node The AST node being checked.
-     */
-    function markReturnStatementPresent(node) {
-      components.set(node, {
-        hasReturnStatement: true
-      });
-    }
-
-    /**
-     * Find render method in a given AST node
-     * @param {ASTNode} node The component to find render method.
-     * @returns {ASTNode} Method node if found, undefined if not.
-     */
-    function findRenderMethod(node) {
-      const properties = astUtil.getComponentProperties(node);
-      return properties
-        .filter(property => astUtil.getPropertyName(property) === 'render' && property.value)
-        .find(property => astUtil.isFunctionLikeExpression(property.value));
-    }
-
-    return {
-      ReturnStatement(node) {
-        const ancestors = context.getAncestors(node).reverse();
-        let depth = 0;
-        ancestors.forEach((ancestor) => {
-          if (/Function(Expression|Declaration)$/.test(ancestor.type)) {
-            depth++;
-          }
-          if (
-            /(MethodDefinition|(Class)?Property)$/.test(ancestor.type) &&
-            astUtil.getPropertyName(ancestor) === 'render' &&
-            depth <= 1
-          ) {
-            markReturnStatementPresent(node);
-          }
-        });
-      },
-
-      ArrowFunctionExpression(node) {
-        if (node.expression === false || astUtil.getPropertyName(node.parent) !== 'render') {
-          return;
-        }
-        markReturnStatementPresent(node);
-      },
-
-      'Program:exit'() {
-        const list = components.list();
-        Object.keys(list).forEach((component) => {
-          if (
-            !findRenderMethod(list[component].node) ||
-            list[component].hasReturnStatement ||
-            (!utils.isES5Component(list[component].node) && !utils.isES6Component(list[component].node))
-          ) {
-            return;
-          }
-          context.report({
-            node: findRenderMethod(list[component].node),
-            message: 'Your render method should have return statement'
-          });
-        });
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/self-closing-comp.js b/node_modules/eslint-plugin-react/lib/rules/self-closing-comp.js
deleted file mode 100644
index 3e51509..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/self-closing-comp.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * @fileoverview Prevent extra closing tags for components without children
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('../util/docsUrl');
-const jsxUtil = require('../util/jsx');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-const optionDefaults = {component: true, html: true};
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent extra closing tags for components without children',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('self-closing-comp')
-    },
-    fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      properties: {
-        component: {
-          default: optionDefaults.component,
-          type: 'boolean'
-        },
-        html: {
-          default: optionDefaults.html,
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    function isComponent(node) {
-      return (
-        node.name &&
-        (node.name.type === 'JSXIdentifier' || node.name.type === 'JSXMemberExpression') &&
-        !jsxUtil.isDOMComponent(node)
-      );
-    }
-
-    function childrenIsEmpty(node) {
-      return node.parent.children.length === 0;
-    }
-
-    function childrenIsMultilineSpaces(node) {
-      const childrens = node.parent.children;
-
-      return (
-        childrens.length === 1 &&
-        (childrens[0].type === 'Literal' || childrens[0].type === 'JSXText') &&
-        childrens[0].value.indexOf('\n') !== -1 &&
-        childrens[0].value.replace(/(?!\xA0)\s/g, '') === ''
-      );
-    }
-
-    function isShouldBeSelfClosed(node) {
-      const configuration = Object.assign({}, optionDefaults, context.options[0]);
-      return (
-        configuration.component && isComponent(node) ||
-        configuration.html && jsxUtil.isDOMComponent(node)
-      ) && !node.selfClosing && (childrenIsEmpty(node) || childrenIsMultilineSpaces(node));
-    }
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    return {
-
-      JSXOpeningElement(node) {
-        if (!isShouldBeSelfClosed(node)) {
-          return;
-        }
-        context.report({
-          node,
-          message: 'Empty components are self-closing',
-          fix(fixer) {
-            // Represents the last character of the JSXOpeningElement, the '>' character
-            const openingElementEnding = node.range[1] - 1;
-            // Represents the last character of the JSXClosingElement, the '>' character
-            const closingElementEnding = node.parent.closingElement.range[1];
-
-            // Replace />.*<\/.*>/ with '/>'
-            const range = [openingElementEnding, closingElementEnding];
-            return fixer.replaceTextRange(range, ' />');
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/sort-comp.js b/node_modules/eslint-plugin-react/lib/rules/sort-comp.js
deleted file mode 100644
index c946701..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/sort-comp.js
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- * @fileoverview Enforce component methods order
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const has = require('has');
-const entries = require('object.entries');
-const arrayIncludes = require('array-includes');
-
-const Components = require('../util/Components');
-const astUtil = require('../util/ast');
-const docsUrl = require('../util/docsUrl');
-
-const defaultConfig = {
-  order: [
-    'static-methods',
-    'lifecycle',
-    'everything-else',
-    'render'
-  ],
-  groups: {
-    lifecycle: [
-      'displayName',
-      'propTypes',
-      'contextTypes',
-      'childContextTypes',
-      'mixins',
-      'statics',
-      'defaultProps',
-      'constructor',
-      'getDefaultProps',
-      'state',
-      'getInitialState',
-      'getChildContext',
-      'getDerivedStateFromProps',
-      'componentWillMount',
-      'UNSAFE_componentWillMount',
-      'componentDidMount',
-      'componentWillReceiveProps',
-      'UNSAFE_componentWillReceiveProps',
-      'shouldComponentUpdate',
-      'componentWillUpdate',
-      'UNSAFE_componentWillUpdate',
-      'getSnapshotBeforeUpdate',
-      'componentDidUpdate',
-      'componentDidCatch',
-      'componentWillUnmount'
-    ]
-  }
-};
-
-/**
- * Get the methods order from the default config and the user config
- * @param {Object} userConfig The user configuration.
- * @returns {Array} Methods order
- */
-function getMethodsOrder(userConfig) {
-  userConfig = userConfig || {};
-
-  const groups = Object.assign({}, defaultConfig.groups, userConfig.groups);
-  const order = userConfig.order || defaultConfig.order;
-
-  let config = [];
-  let entry;
-  for (let i = 0, j = order.length; i < j; i++) {
-    entry = order[i];
-    if (has(groups, entry)) {
-      config = config.concat(groups[entry]);
-    } else {
-      config.push(entry);
-    }
-  }
-
-  return config;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce component methods order',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('sort-comp')
-    },
-
-    schema: [{
-      type: 'object',
-      properties: {
-        order: {
-          type: 'array',
-          items: {
-            type: 'string'
-          }
-        },
-        groups: {
-          type: 'object',
-          patternProperties: {
-            '^.*$': {
-              type: 'array',
-              items: {
-                type: 'string'
-              }
-            }
-          }
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create: Components.detect((context, components) => {
-    const errors = {};
-
-    const MISPOSITION_MESSAGE = '{{propA}} should be placed {{position}} {{propB}}';
-
-    const methodsOrder = getMethodsOrder(context.options[0]);
-
-    // --------------------------------------------------------------------------
-    // Public
-    // --------------------------------------------------------------------------
-
-    const regExpRegExp = /\/(.*)\/([gimsuy]*)/;
-
-    /**
-     * Get indexes of the matching patterns in methods order configuration
-     * @param {Object} method - Method metadata.
-     * @returns {Array} The matching patterns indexes. Return [Infinity] if there is no match.
-     */
-    function getRefPropIndexes(method) {
-      const methodGroupIndexes = [];
-
-      methodsOrder.forEach((currentGroup, groupIndex) => {
-        if (currentGroup === 'getters') {
-          if (method.getter) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'setters') {
-          if (method.setter) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'type-annotations') {
-          if (method.typeAnnotation) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'static-variables') {
-          if (method.staticVariable) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'static-methods') {
-          if (method.staticMethod) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'instance-variables') {
-          if (method.instanceVariable) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (currentGroup === 'instance-methods') {
-          if (method.instanceMethod) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else if (arrayIncludes([
-          'displayName',
-          'propTypes',
-          'contextTypes',
-          'childContextTypes',
-          'mixins',
-          'statics',
-          'defaultProps',
-          'constructor',
-          'getDefaultProps',
-          'state',
-          'getInitialState',
-          'getChildContext',
-          'getDerivedStateFromProps',
-          'componentWillMount',
-          'UNSAFE_componentWillMount',
-          'componentDidMount',
-          'componentWillReceiveProps',
-          'UNSAFE_componentWillReceiveProps',
-          'shouldComponentUpdate',
-          'componentWillUpdate',
-          'UNSAFE_componentWillUpdate',
-          'getSnapshotBeforeUpdate',
-          'componentDidUpdate',
-          'componentDidCatch',
-          'componentWillUnmount',
-          'render'
-        ], currentGroup)) {
-          if (currentGroup === method.name) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        } else {
-          // Is the group a regex?
-          const isRegExp = currentGroup.match(regExpRegExp);
-          if (isRegExp) {
-            const isMatching = new RegExp(isRegExp[1], isRegExp[2]).test(method.name);
-            if (isMatching) {
-              methodGroupIndexes.push(groupIndex);
-            }
-          } else if (currentGroup === method.name) {
-            methodGroupIndexes.push(groupIndex);
-          }
-        }
-      });
-
-      // No matching pattern, return 'everything-else' index
-      if (methodGroupIndexes.length === 0) {
-        const everythingElseIndex = methodsOrder.indexOf('everything-else');
-
-        if (everythingElseIndex !== -1) {
-          methodGroupIndexes.push(everythingElseIndex);
-        } else {
-          // No matching pattern and no 'everything-else' group
-          methodGroupIndexes.push(Infinity);
-        }
-      }
-
-      return methodGroupIndexes;
-    }
-
-    /**
-     * Get properties name
-     * @param {Object} node - Property.
-     * @returns {String} Property name.
-     */
-    function getPropertyName(node) {
-      if (node.kind === 'get') {
-        return 'getter functions';
-      }
-
-      if (node.kind === 'set') {
-        return 'setter functions';
-      }
-
-      return astUtil.getPropertyName(node);
-    }
-
-    /**
-     * Store a new error in the error list
-     * @param {Object} propA - Mispositioned property.
-     * @param {Object} propB - Reference property.
-     */
-    function storeError(propA, propB) {
-      // Initialize the error object if needed
-      if (!errors[propA.index]) {
-        errors[propA.index] = {
-          node: propA.node,
-          score: 0,
-          closest: {
-            distance: Infinity,
-            ref: {
-              node: null,
-              index: 0
-            }
-          }
-        };
-      }
-      // Increment the prop score
-      errors[propA.index].score++;
-      // Stop here if we already have pushed another node at this position
-      if (getPropertyName(errors[propA.index].node) !== getPropertyName(propA.node)) {
-        return;
-      }
-      // Stop here if we already have a closer reference
-      if (Math.abs(propA.index - propB.index) > errors[propA.index].closest.distance) {
-        return;
-      }
-      // Update the closest reference
-      errors[propA.index].closest.distance = Math.abs(propA.index - propB.index);
-      errors[propA.index].closest.ref.node = propB.node;
-      errors[propA.index].closest.ref.index = propB.index;
-    }
-
-    /**
-     * Dedupe errors, only keep the ones with the highest score and delete the others
-     */
-    function dedupeErrors() {
-      for (const i in errors) {
-        if (has(errors, i)) {
-          const index = errors[i].closest.ref.index;
-          if (errors[index]) {
-            if (errors[i].score > errors[index].score) {
-              delete errors[index];
-            } else {
-              delete errors[i];
-            }
-          }
-        }
-      }
-    }
-
-    /**
-     * Report errors
-     */
-    function reportErrors() {
-      dedupeErrors();
-
-      entries(errors).forEach((entry) => {
-        const nodeA = entry[1].node;
-        const nodeB = entry[1].closest.ref.node;
-        const indexA = entry[0];
-        const indexB = entry[1].closest.ref.index;
-
-        context.report({
-          node: nodeA,
-          message: MISPOSITION_MESSAGE,
-          data: {
-            propA: getPropertyName(nodeA),
-            propB: getPropertyName(nodeB),
-            position: indexA < indexB ? 'before' : 'after'
-          }
-        });
-      });
-    }
-
-    /**
-     * Compare two properties and find out if they are in the right order
-     * @param {Array} propertiesInfos Array containing all the properties metadata.
-     * @param {Object} propA First property name and metadata
-     * @param {Object} propB Second property name.
-     * @returns {Object} Object containing a correct true/false flag and the correct indexes for the two properties.
-     */
-    function comparePropsOrder(propertiesInfos, propA, propB) {
-      let i;
-      let j;
-      let k;
-      let l;
-      let refIndexA;
-      let refIndexB;
-
-      // Get references indexes (the correct position) for given properties
-      const refIndexesA = getRefPropIndexes(propA);
-      const refIndexesB = getRefPropIndexes(propB);
-
-      // Get current indexes for given properties
-      const classIndexA = propertiesInfos.indexOf(propA);
-      const classIndexB = propertiesInfos.indexOf(propB);
-
-      // Loop around the references indexes for the 1st property
-      for (i = 0, j = refIndexesA.length; i < j; i++) {
-        refIndexA = refIndexesA[i];
-
-        // Loop around the properties for the 2nd property (for comparison)
-        for (k = 0, l = refIndexesB.length; k < l; k++) {
-          refIndexB = refIndexesB[k];
-
-          if (
-            // Comparing the same properties
-            refIndexA === refIndexB ||
-            // 1st property is placed before the 2nd one in reference and in current component
-            refIndexA < refIndexB && classIndexA < classIndexB ||
-            // 1st property is placed after the 2nd one in reference and in current component
-            refIndexA > refIndexB && classIndexA > classIndexB
-          ) {
-            return {
-              correct: true,
-              indexA: classIndexA,
-              indexB: classIndexB
-            };
-          }
-        }
-      }
-
-      // We did not find any correct match between reference and current component
-      return {
-        correct: false,
-        indexA: refIndexA,
-        indexB: refIndexB
-      };
-    }
-
-    /**
-     * Check properties order from a properties list and store the eventual errors
-     * @param {Array} properties Array containing all the properties.
-     */
-    function checkPropsOrder(properties) {
-      const propertiesInfos = properties.map(node => ({
-        name: getPropertyName(node),
-        getter: node.kind === 'get',
-        setter: node.kind === 'set',
-        staticVariable: node.static &&
-          node.type === 'ClassProperty' &&
-          (!node.value || !astUtil.isFunctionLikeExpression(node.value)),
-        staticMethod: node.static &&
-          (node.type === 'ClassProperty' || node.type === 'MethodDefinition') &&
-          node.value &&
-          (astUtil.isFunctionLikeExpression(node.value)),
-        instanceVariable: !node.static &&
-          node.type === 'ClassProperty' &&
-          (!node.value || !astUtil.isFunctionLikeExpression(node.value)),
-        instanceMethod: !node.static &&
-          node.type === 'ClassProperty' &&
-          node.value &&
-          (astUtil.isFunctionLikeExpression(node.value)),
-        typeAnnotation: !!node.typeAnnotation && node.value === null
-      }));
-
-      // Loop around the properties
-      propertiesInfos.forEach((propA, i) => {
-        // Loop around the properties a second time (for comparison)
-        propertiesInfos.forEach((propB, k) => {
-          if (i === k) {
-            return;
-          }
-
-          // Compare the properties order
-          const order = comparePropsOrder(propertiesInfos, propA, propB);
-
-          if (!order.correct) {
-            // Store an error if the order is incorrect
-            storeError({
-              node: properties[i],
-              index: order.indexA
-            }, {
-              node: properties[k],
-              index: order.indexB
-            });
-          }
-        });
-      });
-    }
-
-    return {
-      'Program:exit'() {
-        const list = components.list();
-        Object.keys(list).forEach((component) => {
-          const properties = astUtil.getComponentProperties(list[component].node);
-          checkPropsOrder(properties);
-        });
-
-        reportErrors();
-      }
-    };
-  }),
-
-  defaultConfig
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/sort-prop-types.js b/node_modules/eslint-plugin-react/lib/rules/sort-prop-types.js
deleted file mode 100644
index 9dbf13a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/sort-prop-types.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * @fileoverview Enforce propTypes declarations alphabetical sorting
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const propsUtil = require('../util/props');
-const docsUrl = require('../util/docsUrl');
-const propWrapperUtil = require('../util/propWrapper');
-// const propTypesSortUtil = require('../util/propTypesSort');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce propTypes declarations alphabetical sorting',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('sort-prop-types')
-    },
-
-    // fixable: 'code',
-
-    schema: [{
-      type: 'object',
-      properties: {
-        requiredFirst: {
-          type: 'boolean'
-        },
-        callbacksLast: {
-          type: 'boolean'
-        },
-        ignoreCase: {
-          type: 'boolean'
-        },
-        // Whether alphabetical sorting should be enforced
-        noSortAlphabetically: {
-          type: 'boolean'
-        },
-        sortShapeProp: {
-          type: 'boolean'
-        }
-      },
-      additionalProperties: false
-    }]
-  },
-
-  create(context) {
-    const configuration = context.options[0] || {};
-    const requiredFirst = configuration.requiredFirst || false;
-    const callbacksLast = configuration.callbacksLast || false;
-    const ignoreCase = configuration.ignoreCase || false;
-    const noSortAlphabetically = configuration.noSortAlphabetically || false;
-    const sortShapeProp = configuration.sortShapeProp || false;
-
-    function getKey(node) {
-      if (node.key && node.key.value) {
-        return node.key.value;
-      }
-      return context.getSourceCode().getText(node.key || node.argument);
-    }
-
-    function getValueName(node) {
-      return node.type === 'Property' && node.value.property && node.value.property.name;
-    }
-
-    function isCallbackPropName(propName) {
-      return /^on[A-Z]/.test(propName);
-    }
-
-    function isRequiredProp(node) {
-      return getValueName(node) === 'isRequired';
-    }
-
-    function isShapeProp(node) {
-      return Boolean(
-        node && node.callee && node.callee.property && node.callee.property.name === 'shape'
-      );
-    }
-
-    function toLowerCase(item) {
-      return String(item).toLowerCase();
-    }
-
-    /**
-     * Checks if propTypes declarations are sorted
-     * @param {Array} declarations The array of AST nodes being checked.
-     * @returns {void}
-     */
-    function checkSorted(declarations) {
-      // Declarations will be `undefined` if the `shape` is not a literal. For
-      // example, if it is a propType imported from another file.
-      if (!declarations) {
-        return;
-      }
-
-      // function fix(fixer) {
-      //   return propTypesSortUtil.fixPropTypesSort(
-      //     fixer,
-      //     context,
-      //     declarations,
-      //     ignoreCase,
-      //     requiredFirst,
-      //     callbacksLast,
-      //     sortShapeProp
-      //   );
-      // }
-
-      declarations.reduce((prev, curr, idx, decls) => {
-        if (curr.type === 'ExperimentalSpreadProperty' || curr.type === 'SpreadElement') {
-          return decls[idx + 1];
-        }
-
-        let prevPropName = getKey(prev);
-        let currentPropName = getKey(curr);
-        const previousIsRequired = isRequiredProp(prev);
-        const currentIsRequired = isRequiredProp(curr);
-        const previousIsCallback = isCallbackPropName(prevPropName);
-        const currentIsCallback = isCallbackPropName(currentPropName);
-
-        if (ignoreCase) {
-          prevPropName = toLowerCase(prevPropName);
-          currentPropName = toLowerCase(currentPropName);
-        }
-
-        if (requiredFirst) {
-          if (previousIsRequired && !currentIsRequired) {
-            // Transition between required and non-required. Don't compare for alphabetical.
-            return curr;
-          }
-          if (!previousIsRequired && currentIsRequired) {
-            // Encountered a non-required prop after a required prop
-            context.report({
-              node: curr,
-              message: 'Required prop types must be listed before all other prop types'
-            //  fix
-            });
-            return curr;
-          }
-        }
-
-        if (callbacksLast) {
-          if (!previousIsCallback && currentIsCallback) {
-            // Entering the callback prop section
-            return curr;
-          }
-          if (previousIsCallback && !currentIsCallback) {
-            // Encountered a non-callback prop after a callback prop
-            context.report({
-              node: prev,
-              message: 'Callback prop types must be listed after all other prop types'
-              // fix
-            });
-            return prev;
-          }
-        }
-
-        if (!noSortAlphabetically && currentPropName < prevPropName) {
-          context.report({
-            node: curr,
-            message: 'Prop types declarations should be sorted alphabetically'
-            // fix
-          });
-          return prev;
-        }
-
-        return curr;
-      }, declarations[0]);
-    }
-
-    function checkNode(node) {
-      switch (node && node.type) {
-        case 'ObjectExpression':
-          checkSorted(node.properties);
-          break;
-        case 'Identifier': {
-          const propTypesObject = variableUtil.findVariableByName(context, node.name);
-          if (propTypesObject && propTypesObject.properties) {
-            checkSorted(propTypesObject.properties);
-          }
-          break;
-        }
-        case 'CallExpression': {
-          const innerNode = node.arguments && node.arguments[0];
-          if (propWrapperUtil.isPropWrapperFunction(context, node.callee.name) && innerNode) {
-            checkNode(innerNode);
-          }
-          break;
-        }
-        default:
-          break;
-      }
-    }
-
-    return {
-      CallExpression(node) {
-        if (!sortShapeProp || !isShapeProp(node) || !(node.arguments && node.arguments[0])) {
-          return;
-        }
-
-        const firstArg = node.arguments[0];
-        if (firstArg.properties) {
-          checkSorted(firstArg.properties);
-        } else if (firstArg.type === 'Identifier') {
-          const variable = variableUtil.findVariableByName(context, firstArg.name);
-          if (variable && variable.properties) {
-            checkSorted(variable.properties);
-          }
-        }
-      },
-
-      ClassProperty(node) {
-        if (!propsUtil.isPropTypesDeclaration(node)) {
-          return;
-        }
-        checkNode(node.value);
-      },
-
-      MemberExpression(node) {
-        if (!propsUtil.isPropTypesDeclaration(node)) {
-          return;
-        }
-
-        checkNode(node.parent.right);
-      },
-
-      ObjectExpression(node) {
-        node.properties.forEach((property) => {
-          if (!property.key) {
-            return;
-          }
-
-          if (!propsUtil.isPropTypesDeclaration(property)) {
-            return;
-          }
-          if (property.value.type === 'ObjectExpression') {
-            checkSorted(property.value.properties);
-          }
-        });
-      }
-
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/state-in-constructor.js b/node_modules/eslint-plugin-react/lib/rules/state-in-constructor.js
deleted file mode 100644
index 91a5d5d..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/state-in-constructor.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * @fileoverview Enforce the state initialization style to be either in a constructor or with a class property
- * @author Kanitkorn Sujautra
- */
-
-'use strict';
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'State initialization in an ES6 class component should be in a constructor',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('state-in-constructor')
-    },
-    schema: [{
-      enum: ['always', 'never']
-    }]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    const option = context.options[0] || 'always';
-    return {
-      ClassProperty(node) {
-        if (
-          option === 'always' &&
-          !node.static &&
-          node.key.name === 'state' &&
-          utils.getParentES6Component()
-        ) {
-          context.report({
-            node,
-            message: 'State initialization should be in a constructor'
-          });
-        }
-      },
-      AssignmentExpression(node) {
-        if (
-          option === 'never' &&
-          utils.isStateMemberExpression(node.left) &&
-          utils.inConstructor() &&
-          utils.getParentES6Component()
-        ) {
-          context.report({
-            node,
-            message: 'State initialization should be in a class property'
-          });
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/static-property-placement.js b/node_modules/eslint-plugin-react/lib/rules/static-property-placement.js
deleted file mode 100644
index 8e2a89a..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/static-property-placement.js
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * @fileoverview Defines where React component static properties should be positioned.
- * @author Daniel Mason
- */
-
-'use strict';
-
-const fromEntries = require('object.fromentries');
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-const astUtil = require('../util/ast');
-const propsUtil = require('../util/props');
-
-// ------------------------------------------------------------------------------
-// Positioning Options
-// ------------------------------------------------------------------------------
-const STATIC_PUBLIC_FIELD = 'static public field';
-const STATIC_GETTER = 'static getter';
-const PROPERTY_ASSIGNMENT = 'property assignment';
-const POSITION_SETTINGS = [STATIC_PUBLIC_FIELD, STATIC_GETTER, PROPERTY_ASSIGNMENT];
-
-// ------------------------------------------------------------------------------
-// Rule messages
-// ------------------------------------------------------------------------------
-const ERROR_MESSAGES = {
-  [STATIC_PUBLIC_FIELD]: '\'{{name}}\' should be declared as a static class property.',
-  [STATIC_GETTER]: '\'{{name}}\' should be declared as a static getter class function.',
-  [PROPERTY_ASSIGNMENT]: '\'{{name}}\' should be declared outside the class body.'
-};
-
-// ------------------------------------------------------------------------------
-// Properties to check
-// ------------------------------------------------------------------------------
-const propertiesToCheck = {
-  propTypes: propsUtil.isPropTypesDeclaration,
-  defaultProps: propsUtil.isDefaultPropsDeclaration,
-  childContextTypes: propsUtil.isChildContextTypesDeclaration,
-  contextTypes: propsUtil.isContextTypesDeclaration,
-  contextType: propsUtil.isContextTypeDeclaration,
-  displayName: node => propsUtil.isDisplayNameDeclaration(astUtil.getPropertyNameNode(node))
-};
-
-const classProperties = Object.keys(propertiesToCheck);
-const schemaProperties = fromEntries(classProperties.map(property => [property, {enum: POSITION_SETTINGS}]));
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Defines where React component static properties should be positioned.',
-      category: 'Stylistic Issues',
-      recommended: false,
-      url: docsUrl('static-property-placement')
-    },
-    fixable: null, // or 'code' or 'whitespace'
-    schema: [
-      {enum: POSITION_SETTINGS},
-      {
-        type: 'object',
-        properties: schemaProperties,
-        additionalProperties: false
-      }
-    ]
-  },
-
-  create: Components.detect((context, components, utils) => {
-    // variables should be defined here
-    const options = context.options;
-    const defaultCheckType = options[0] || STATIC_PUBLIC_FIELD;
-    const hasAdditionalConfig = options.length > 1;
-    const additionalConfig = hasAdditionalConfig ? options[1] : {};
-
-    // Set config
-    const config = fromEntries(classProperties.map(property => [
-      property,
-      additionalConfig[property] || defaultCheckType
-    ]));
-
-    // ----------------------------------------------------------------------
-    // Helpers
-    // ----------------------------------------------------------------------
-
-    /**
-      * Checks if we are declaring context in class
-      * @returns {Boolean} True if we are declaring context in class, false if not.
-     */
-    function isContextInClass() {
-      let blockNode;
-      let scope = context.getScope();
-      while (scope) {
-        blockNode = scope.block;
-        if (blockNode && blockNode.type === 'ClassDeclaration') {
-          return true;
-        }
-        scope = scope.upper;
-      }
-
-      return false;
-    }
-
-    /**
-     * Check if we should report this property node
-     * @param {ASTNode} node
-     * @param {string} expectedRule
-     */
-    function reportNodeIncorrectlyPositioned(node, expectedRule) {
-      // Detect if this node is an expected property declaration adn return the property name
-      const name = classProperties.find((propertyName) => {
-        if (propertiesToCheck[propertyName](node)) {
-          return !!propertyName;
-        }
-
-        return false;
-      });
-
-      // If name is set but the configured rule does not match expected then report error
-      if (name && config[name] !== expectedRule) {
-        // Report the error
-        context.report({
-          node,
-          message: ERROR_MESSAGES[config[name]],
-          data: {name}
-        });
-      }
-    }
-
-    // ----------------------------------------------------------------------
-    // Public
-    // ----------------------------------------------------------------------
-    return {
-      ClassProperty: node => reportNodeIncorrectlyPositioned(node, STATIC_PUBLIC_FIELD),
-
-      MemberExpression: (node) => {
-        // If definition type is undefined then it must not be a defining expression or if the definition is inside a
-        // class body then skip this node.
-        const right = node.parent.right;
-        if (!right || right.type === 'undefined' || isContextInClass()) {
-          return;
-        }
-
-        // Get the related component
-        const relatedComponent = utils.getRelatedComponent(node);
-
-        // If the related component is not an ES6 component then skip this node
-        if (!relatedComponent || !utils.isES6Component(relatedComponent.node)) {
-          return;
-        }
-
-        // Report if needed
-        reportNodeIncorrectlyPositioned(node, PROPERTY_ASSIGNMENT);
-      },
-
-      MethodDefinition: (node) => {
-        // If the function is inside a class and is static getter then check if correctly positioned
-        if (isContextInClass() && node.static && node.kind === 'get') {
-          // Report error if needed
-          reportNodeIncorrectlyPositioned(node, STATIC_GETTER);
-        }
-      }
-    };
-  })
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/style-prop-object.js b/node_modules/eslint-plugin-react/lib/rules/style-prop-object.js
deleted file mode 100644
index 5061aa0..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/style-prop-object.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * @fileoverview Enforce style prop value is an object
- * @author David Petersen
- */
-
-'use strict';
-
-const variableUtil = require('../util/variable');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Enforce style prop value is an object',
-      category: '',
-      recommended: false,
-      url: docsUrl('style-prop-object')
-    },
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          allow: {
-            type: 'array',
-            items: {
-              type: 'string'
-            },
-            additionalItems: false,
-            uniqueItems: true
-          }
-        }
-      }
-    ]
-  },
-
-  create(context) {
-    const allowed = new Set(context.options.length > 0 && context.options[0].allow || []);
-
-    /**
-     * @param {ASTNode} expression An Identifier node
-     * @returns {boolean}
-     */
-    function isNonNullaryLiteral(expression) {
-      return expression.type === 'Literal' && expression.value !== null;
-    }
-
-    /**
-     * @param {object} node A Identifier node
-     */
-    function checkIdentifiers(node) {
-      const variable = variableUtil.variablesInScope(context).find(item => item.name === node.name);
-
-      if (!variable || !variable.defs[0] || !variable.defs[0].node.init) {
-        return;
-      }
-
-      if (isNonNullaryLiteral(variable.defs[0].node.init)) {
-        context.report({
-          node,
-          message: 'Style prop value must be an object'
-        });
-      }
-    }
-
-    return {
-      CallExpression(node) {
-        if (
-          node.callee &&
-          node.callee.type === 'MemberExpression' &&
-          node.callee.property.name === 'createElement' &&
-          node.arguments.length > 1
-        ) {
-          if (node.arguments[0].name) {
-            // store name of component
-            const componentName = node.arguments[0].name;
-
-            // allowed list contains the name
-            if (allowed.has(componentName)) {
-              // abort operation
-              return;
-            }
-          }
-          if (node.arguments[1].type === 'ObjectExpression') {
-            const style = node.arguments[1].properties.find(property => property.key && property.key.name === 'style' && !property.computed);
-            if (style) {
-              if (style.value.type === 'Identifier') {
-                checkIdentifiers(style.value);
-              } else if (isNonNullaryLiteral(style.value)) {
-                context.report({
-                  node: style.value,
-                  message: 'Style prop value must be an object'
-                });
-              }
-            }
-          }
-        }
-      },
-
-      JSXAttribute(node) {
-        if (!node.value || node.name.name !== 'style') {
-          return;
-        }
-        // store parent element
-        const parentElement = node.parent;
-
-        // parent element is a JSXOpeningElement
-        if (parentElement && parentElement.type === 'JSXOpeningElement') {
-          // get the name of the JSX element
-          const name = parentElement.name && parentElement.name.name;
-
-          // allowed list contains the name
-          if (allowed.has(name)) {
-            // abort operation
-            return;
-          }
-        }
-
-        if (node.value.type !== 'JSXExpressionContainer' || isNonNullaryLiteral(node.value.expression)) {
-          context.report({
-            node,
-            message: 'Style prop value must be an object'
-          });
-        } else if (node.value.expression.type === 'Identifier') {
-          checkIdentifiers(node.value.expression);
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-react/lib/rules/void-dom-elements-no-children.js b/node_modules/eslint-plugin-react/lib/rules/void-dom-elements-no-children.js
deleted file mode 100644
index d25cc49..0000000
--- a/node_modules/eslint-plugin-react/lib/rules/void-dom-elements-no-children.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * @fileoverview Prevent void elements (e.g. <img />, <br />) from receiving
- *   children
- * @author Joe Lencioni
- */
-
-'use strict';
-
-const has = require('has');
-
-const Components = require('../util/Components');
-const docsUrl = require('../util/docsUrl');
-
-// ------------------------------------------------------------------------------
-// Helpers
-// ------------------------------------------------------------------------------
-
-// Using an object here to avoid array scan. We should switch to Set once
-// support is good enough.
-const VOID_DOM_ELEMENTS = {
-  area: true,
-  base: true,
-  br: true,
-  col: true,
-  embed: true,
-  hr: true,
-  img: true,
-  input: true,
-  keygen: true,
-  link: true,
-  menuitem: true,
-  meta: true,
-  param: true,
-  source: true,
-  track: true,
-  wbr: true
-};
-
-function isVoidDOMElement(elementName) {
-  return has(VOID_DOM_ELEMENTS, elementName);
-}
-
-function errorMessage(elementName) {
-  return `Void DOM element <${elementName} /> cannot receive children.`;
-}
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Prevent passing of children to void DOM elements (e.g. `<br />`).',
-      category: 'Best Practices',
-      recommended: false,
-      url: docsUrl('void-dom-elements-no-children')
-    },
-    schema: []
-  },
-
-  create: Components.detect((context, components, utils) => ({
-    JSXElement(node) {
-      const elementName = node.openingElement.name.name;
-
-      if (!isVoidDOMElement(elementName)) {
-        // e.g. <div />
-        return;
-      }
-
-      if (node.children.length > 0) {
-        // e.g. <br>Foo</br>
-        context.report({
-          node,
-          message: errorMessage(elementName)
-        });
-      }
-
-      const attributes = node.openingElement.attributes;
-
-      const hasChildrenAttributeOrDanger = attributes.some((attribute) => {
-        if (!attribute.name) {
-          return false;
-        }
-
-        return attribute.name.name === 'children' || attribute.name.name === 'dangerouslySetInnerHTML';
-      });
-
-      if (hasChildrenAttributeOrDanger) {
-        // e.g. <br children="Foo" />
-        context.report({
-          node,
-          message: errorMessage(elementName)
-        });
-      }
-    },
-
-    CallExpression(node) {
-      if (node.callee.type !== 'MemberExpression' && node.callee.type !== 'Identifier') {
-        return;
-      }
-
-      if (!utils.isCreateElement(node)) {
-        return;
-      }
-
-      const args = node.arguments;
-
-      if (args.length < 1) {
-        // React.createElement() should not crash linter
-        return;
-      }
-
-      const elementName = args[0].value;
-
-      if (!isVoidDOMElement(elementName)) {
-        // e.g. React.createElement('div');
-        return;
-      }
-
-      if (args.length < 2 || args[1].type !== 'ObjectExpression') {
-        return;
-      }
-
-      const firstChild = args[2];
-      if (firstChild) {
-        // e.g. React.createElement('br', undefined, 'Foo')
-        context.report({
-          node,
-          message: errorMessage(elementName)
-        });
-      }
-
-      const props = args[1].properties;
-
-      const hasChildrenPropOrDanger = props.some((prop) => {
-        if (!prop.key) {
-          return false;
-        }
-
-        return prop.key.name === 'children' || prop.key.name === 'dangerouslySetInnerHTML';
-      });
-
-      if (hasChildrenPropOrDanger) {
-        // e.g. React.createElement('br', { children: 'Foo' })
-        context.report({
-          node,
-          message: errorMessage(elementName)
-        });
-      }
-    }
-  }))
-};
diff --git a/node_modules/eslint-plugin-react/lib/types.d.ts b/node_modules/eslint-plugin-react/lib/types.d.ts
deleted file mode 100644
index 7e22f27..0000000
--- a/node_modules/eslint-plugin-react/lib/types.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import eslint from 'eslint';
-import estree from 'estree';
-
-declare global {
-  interface ASTNode extends estree.BaseNode {
-    [_: string]: any; // TODO: fixme
-  }
-  type Scope = eslint.Scope.Scope;
-  type Token = eslint.AST.Token;
-  type Fixer = eslint.Rule.RuleFixer;
-  type JSXAttribute = ASTNode;
-  type JSXElement = ASTNode;
-  type JSXFragment = ASTNode;
-  type JSXSpreadAttribute = ASTNode;
-
-  interface Context extends eslint.SourceCode {
-    getFirstTokens(node: estree.Node | ASTNode, options?: eslint.SourceCode.CursorWithCountOptions): eslint.AST.Token[];
-  }
-
-  type TypeDeclarationBuilder = (annotation: ASTNode, parentName: string, seen: Set<typeof annotation>) => object;
-
-  type TypeDeclarationBuilders = {
-    [k in string]: TypeDeclarationBuilder;
-  };
-
-  type UnionTypeDefinition = {
-    type: 'union' | 'shape';
-    children: unknown[];
-  };
-}
diff --git a/node_modules/eslint-plugin-react/lib/util/Components.js b/node_modules/eslint-plugin-react/lib/util/Components.js
deleted file mode 100644
index 515a39d..0000000
--- a/node_modules/eslint-plugin-react/lib/util/Components.js
+++ /dev/null
@@ -1,922 +0,0 @@
-/**
- * @fileoverview Utility class and functions for React components detection
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const doctrine = require('doctrine');
-const arrayIncludes = require('array-includes');
-const values = require('object.values');
-
-const variableUtil = require('./variable');
-const pragmaUtil = require('./pragma');
-const astUtil = require('./ast');
-const propTypesUtil = require('./propTypes');
-const jsxUtil = require('./jsx');
-const usedPropTypesUtil = require('./usedPropTypes');
-const defaultPropsUtil = require('./defaultProps');
-
-function getId(node) {
-  return node && node.range.join(':');
-}
-
-function usedPropTypesAreEquivalent(propA, propB) {
-  if (propA.name === propB.name) {
-    if (!propA.allNames && !propB.allNames) {
-      return true;
-    }
-    if (Array.isArray(propA.allNames) && Array.isArray(propB.allNames) && propA.allNames.join('') === propB.allNames.join('')) {
-      return true;
-    }
-    return false;
-  }
-  return false;
-}
-
-function mergeUsedPropTypes(propsList, newPropsList) {
-  const propsToAdd = [];
-  newPropsList.forEach((newProp) => {
-    const newPropisAlreadyInTheList = propsList.some(prop => usedPropTypesAreEquivalent(prop, newProp));
-    if (!newPropisAlreadyInTheList) {
-      propsToAdd.push(newProp);
-    }
-  });
-
-  return propsList.concat(propsToAdd);
-}
-
-function isReturnsConditionalJSX(node, property, strict) {
-  const returnsConditionalJSXConsequent = node[property] &&
-    node[property].type === 'ConditionalExpression' &&
-    jsxUtil.isJSX(node[property].consequent);
-  const returnsConditionalJSXAlternate = node[property] &&
-    node[property].type === 'ConditionalExpression' &&
-    jsxUtil.isJSX(node[property].alternate);
-  return strict ?
-    (returnsConditionalJSXConsequent && returnsConditionalJSXAlternate) :
-    (returnsConditionalJSXConsequent || returnsConditionalJSXAlternate);
-}
-
-function isReturnsLogicalJSX(node, property, strict) {
-  const returnsLogicalJSXLeft = node[property] &&
-    node[property].type === 'LogicalExpression' &&
-    jsxUtil.isJSX(node[property].left);
-  const returnsLogicalJSXRight = node[property] &&
-    node[property].type === 'LogicalExpression' &&
-    jsxUtil.isJSX(node[property].right);
-  return strict ?
-    (returnsLogicalJSXLeft && returnsLogicalJSXRight) :
-    (returnsLogicalJSXLeft || returnsLogicalJSXRight);
-}
-
-const Lists = new WeakMap();
-
-/**
- * Components
- */
-class Components {
-  constructor() {
-    Lists.set(this, {});
-  }
-
-  /**
-   * Add a node to the components list, or update it if it's already in the list
-   *
-   * @param {ASTNode} node The AST node being added.
-   * @param {Number} confidence Confidence in the component detection (0=banned, 1=maybe, 2=yes)
-   * @returns {Object} Added component object
-   */
-  add(node, confidence) {
-    const id = getId(node);
-    const list = Lists.get(this);
-    if (list[id]) {
-      if (confidence === 0 || list[id].confidence === 0) {
-        list[id].confidence = 0;
-      } else {
-        list[id].confidence = Math.max(list[id].confidence, confidence);
-      }
-      return list[id];
-    }
-    list[id] = {
-      node,
-      confidence
-    };
-    return list[id];
-  }
-
-  /**
-   * Find a component in the list using its node
-   *
-   * @param {ASTNode} node The AST node being searched.
-   * @returns {Object} Component object, undefined if the component is not found or has confidence value of 0.
-   */
-  get(node) {
-    const id = getId(node);
-    const item = Lists.get(this)[id];
-    if (item && item.confidence >= 1) {
-      return item;
-    }
-    return null;
-  }
-
-  /**
-   * Update a component in the list
-   *
-   * @param {ASTNode} node The AST node being updated.
-   * @param {Object} props Additional properties to add to the component.
-   */
-  set(node, props) {
-    const list = Lists.get(this);
-    let component = list[getId(node)];
-    while (!component) {
-      node = node.parent;
-      if (!node) {
-        return;
-      }
-      component = list[getId(node)];
-    }
-
-    Object.assign(
-      component,
-      props,
-      {
-        usedPropTypes: mergeUsedPropTypes(
-          component.usedPropTypes || [],
-          props.usedPropTypes || []
-        )
-      }
-    );
-  }
-
-  /**
-   * Return the components list
-   * Components for which we are not confident are not returned
-   *
-   * @returns {Object} Components list
-   */
-  list() {
-    const thisList = Lists.get(this);
-    const list = {};
-    const usedPropTypes = {};
-
-    // Find props used in components for which we are not confident
-    Object.keys(thisList).filter(i => thisList[i].confidence < 2).forEach((i) => {
-      let component = null;
-      let node = null;
-      node = thisList[i].node;
-      while (!component && node.parent) {
-        node = node.parent;
-        // Stop moving up if we reach a decorator
-        if (node.type === 'Decorator') {
-          break;
-        }
-        component = this.get(node);
-      }
-      if (component) {
-        const newUsedProps = (thisList[i].usedPropTypes || []).filter(propType => !propType.node || propType.node.kind !== 'init');
-
-        const componentId = getId(component.node);
-
-        usedPropTypes[componentId] = mergeUsedPropTypes(usedPropTypes[componentId] || [], newUsedProps);
-      }
-    });
-
-    // Assign used props in not confident components to the parent component
-    Object.keys(thisList).filter(j => thisList[j].confidence >= 2).forEach((j) => {
-      const id = getId(thisList[j].node);
-      list[j] = thisList[j];
-      if (usedPropTypes[id]) {
-        list[j].usedPropTypes = mergeUsedPropTypes(list[j].usedPropTypes || [], usedPropTypes[id]);
-      }
-    });
-    return list;
-  }
-
-  /**
-   * Return the length of the components list
-   * Components for which we are not confident are not counted
-   *
-   * @returns {Number} Components list length
-   */
-  length() {
-    const list = Lists.get(this);
-    return Object.keys(list).filter(i => list[i].confidence >= 2).length;
-  }
-}
-
-function componentRule(rule, context) {
-  const createClass = pragmaUtil.getCreateClassFromContext(context);
-  const pragma = pragmaUtil.getFromContext(context);
-  const sourceCode = context.getSourceCode();
-  const components = new Components();
-
-  // Utilities for component detection
-  const utils = {
-
-    /**
-     * Check if the node is a React ES5 component
-     *
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if the node is a React ES5 component, false if not
-     */
-    isES5Component(node) {
-      if (!node.parent) {
-        return false;
-      }
-      return new RegExp(`^(${pragma}\\.)?${createClass}$`).test(sourceCode.getText(node.parent.callee));
-    },
-
-    /**
-     * Check if the node is a React ES6 component
-     *
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if the node is a React ES6 component, false if not
-     */
-    isES6Component(node) {
-      if (utils.isExplicitComponent(node)) {
-        return true;
-      }
-
-      if (!node.superClass) {
-        return false;
-      }
-      return new RegExp(`^(${pragma}\\.)?(Pure)?Component$`).test(sourceCode.getText(node.superClass));
-    },
-
-    /**
-     * Check if the node is explicitly declared as a descendant of a React Component
-     *
-     * @param {ASTNode} node The AST node being checked (can be a ReturnStatement or an ArrowFunctionExpression).
-     * @returns {Boolean} True if the node is explicitly declared as a descendant of a React Component, false if not
-     */
-    isExplicitComponent(node) {
-      let comment;
-      // Sometimes the passed node may not have been parsed yet by eslint, and this function call crashes.
-      // Can be removed when eslint sets "parent" property for all nodes on initial AST traversal: https://github.com/eslint/eslint-scope/issues/27
-      // eslint-disable-next-line no-warning-comments
-      // FIXME: Remove try/catch when https://github.com/eslint/eslint-scope/issues/27 is implemented.
-      try {
-        comment = sourceCode.getJSDocComment(node);
-      } catch (e) {
-        comment = null;
-      }
-
-      if (comment === null) {
-        return false;
-      }
-
-      const commentAst = doctrine.parse(comment.value, {
-        unwrap: true,
-        tags: ['extends', 'augments']
-      });
-
-      const relevantTags = commentAst.tags.filter(tag => tag.name === 'React.Component' || tag.name === 'React.PureComponent');
-
-      return relevantTags.length > 0;
-    },
-
-    /**
-     * Checks to see if our component extends React.PureComponent
-     *
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if node extends React.PureComponent, false if not
-     */
-    isPureComponent(node) {
-      if (node.superClass) {
-        return new RegExp(`^(${pragma}\\.)?PureComponent$`).test(sourceCode.getText(node.superClass));
-      }
-      return false;
-    },
-
-    /**
-     * Check if variable is destructured from pragma import
-     *
-     * @param {string} variable The variable name to check
-     * @returns {Boolean} True if createElement is destructured from the pragma
-     */
-    isDestructuredFromPragmaImport(variable) {
-      const variables = variableUtil.variablesInScope(context);
-      const variableInScope = variableUtil.getVariable(variables, variable);
-      if (variableInScope) {
-        const map = variableInScope.scope.set;
-        return map.has(pragma);
-      }
-      return false;
-    },
-
-    /**
-     * Checks to see if node is called within createElement from pragma
-     *
-     * @param {ASTNode} node The AST node being checked.
-     * @returns {Boolean} True if createElement called from pragma
-     */
-    isCreateElement(node) {
-      const calledOnPragma = (
-        node &&
-        node.callee &&
-        node.callee.object &&
-        node.callee.object.name === pragma &&
-        node.callee.property &&
-        node.callee.property.name === 'createElement'
-      );
-
-      const calledDirectly = (
-        node &&
-        node.callee &&
-        node.callee.name === 'createElement'
-      );
-
-      if (this.isDestructuredFromPragmaImport('createElement')) {
-        return calledDirectly || calledOnPragma;
-      }
-      return calledOnPragma;
-    },
-
-    /**
-     * Check if we are in a class constructor
-     * @return {boolean} true if we are in a class constructor, false if not
-     */
-    inConstructor() {
-      let scope = context.getScope();
-      while (scope) {
-        if (scope.block && scope.block.parent && scope.block.parent.kind === 'constructor') {
-          return true;
-        }
-        scope = scope.upper;
-      }
-      return false;
-    },
-
-    /**
-     * Determine if the node is MemberExpression of `this.state`
-     * @param {Object} node The node to process
-     * @returns {Boolean}
-     */
-    isStateMemberExpression(node) {
-      return node.type === 'MemberExpression' && node.object.type === 'ThisExpression' && node.property.name === 'state';
-    },
-
-    getReturnPropertyAndNode(ASTnode) {
-      let property;
-      let node = ASTnode;
-      switch (node.type) {
-        case 'ReturnStatement':
-          property = 'argument';
-          break;
-        case 'ArrowFunctionExpression':
-          property = 'body';
-          if (node[property] && node[property].type === 'BlockStatement') {
-            node = utils.findReturnStatement(node);
-            property = 'argument';
-          }
-          break;
-        default:
-          node = utils.findReturnStatement(node);
-          property = 'argument';
-      }
-      return {
-        node,
-        property
-      };
-    },
-
-    /**
-     * Check if the node is returning JSX
-     *
-     * @param {ASTNode} ASTnode The AST node being checked
-     * @param {Boolean} [strict] If true, in a ternary condition the node must return JSX in both cases
-     * @returns {Boolean} True if the node is returning JSX, false if not
-     */
-    isReturningJSX(ASTnode, strict) {
-      const nodeAndProperty = utils.getReturnPropertyAndNode(ASTnode);
-      const node = nodeAndProperty.node;
-      const property = nodeAndProperty.property;
-
-      if (!node) {
-        return false;
-      }
-
-      const returnsConditionalJSX = isReturnsConditionalJSX(node, property, strict);
-      const returnsLogicalJSX = isReturnsLogicalJSX(node, property, strict);
-
-      const returnsJSX = node[property] && jsxUtil.isJSX(node[property]);
-      const returnsPragmaCreateElement = this.isCreateElement(node[property]);
-
-      return !!(
-        returnsConditionalJSX ||
-        returnsLogicalJSX ||
-        returnsJSX ||
-        returnsPragmaCreateElement
-      );
-    },
-
-    /**
-     * Check if the node is returning null
-     *
-     * @param {ASTNode} ASTnode The AST node being checked
-     * @returns {Boolean} True if the node is returning null, false if not
-     */
-    isReturningNull(ASTnode) {
-      const nodeAndProperty = utils.getReturnPropertyAndNode(ASTnode);
-      const property = nodeAndProperty.property;
-      const node = nodeAndProperty.node;
-
-      if (!node) {
-        return false;
-      }
-
-      return node[property] && node[property].value === null;
-    },
-
-    /**
-     * Check if the node is returning JSX or null
-     *
-     * @param {ASTNode} ASTNode The AST node being checked
-     * @param {Boolean} [strict] If true, in a ternary condition the node must return JSX in both cases
-     * @returns {Boolean} True if the node is returning JSX or null, false if not
-     */
-    isReturningJSXOrNull(ASTNode, strict) {
-      return utils.isReturningJSX(ASTNode, strict) || utils.isReturningNull(ASTNode);
-    },
-
-    getPragmaComponentWrapper(node) {
-      let isPragmaComponentWrapper;
-      let currentNode = node;
-      let prevNode;
-      do {
-        currentNode = currentNode.parent;
-        isPragmaComponentWrapper = this.isPragmaComponentWrapper(currentNode);
-        if (isPragmaComponentWrapper) {
-          prevNode = currentNode;
-        }
-      } while (isPragmaComponentWrapper);
-
-      return prevNode;
-    },
-
-    getComponentNameFromJSXElement(node) {
-      if (node.type !== 'JSXElement') {
-        return null;
-      }
-      if (node.openingElement && node.openingElement.name && node.openingElement.name.name) {
-        return node.openingElement.name.name;
-      }
-      return null;
-    },
-
-    /**
-     * Getting the first JSX element's name.
-     * @param {object} node
-     * @returns {string | null}
-     */
-    getNameOfWrappedComponent(node) {
-      if (node.length < 1) {
-        return null;
-      }
-      const body = node[0].body;
-      if (!body) {
-        return null;
-      }
-      if (body.type === 'JSXElement') {
-        return this.getComponentNameFromJSXElement(body);
-      }
-      if (body.type === 'BlockStatement') {
-        const jsxElement = body.body.find(item => item.type === 'ReturnStatement');
-        return jsxElement && this.getComponentNameFromJSXElement(jsxElement.argument);
-      }
-      return null;
-    },
-
-    /**
-     * Get the list of names of components created till now
-     * @returns {string | boolean}
-     */
-    getDetectedComponents() {
-      const list = components.list();
-      return values(list).filter((val) => {
-        if (val.node.type === 'ClassDeclaration') {
-          return true;
-        }
-        if (
-          val.node.type === 'ArrowFunctionExpression' &&
-          val.node.parent &&
-          val.node.parent.type === 'VariableDeclarator' &&
-          val.node.parent.id
-        ) {
-          return true;
-        }
-        return false;
-      }).map((val) => {
-        if (val.node.type === 'ArrowFunctionExpression') return val.node.parent.id.name;
-        return val.node.id.name;
-      });
-    },
-
-    /**
-     * It will check wheater memo/forwardRef is wrapping existing component or
-     * creating a new one.
-     * @param {object} node
-     * @returns {boolean}
-     */
-    nodeWrapsComponent(node) {
-      const childComponent = this.getNameOfWrappedComponent(node.arguments);
-      const componentList = this.getDetectedComponents();
-      return !!childComponent && arrayIncludes(componentList, childComponent);
-    },
-
-    isPragmaComponentWrapper(node) {
-      if (!node || node.type !== 'CallExpression') {
-        return false;
-      }
-      const propertyNames = ['forwardRef', 'memo'];
-      const calleeObject = node.callee.object;
-      if (calleeObject && node.callee.property) {
-        return arrayIncludes(propertyNames, node.callee.property.name) &&
-          calleeObject.name === pragma &&
-          !this.nodeWrapsComponent(node);
-      }
-      return arrayIncludes(propertyNames, node.callee.name) && this.isDestructuredFromPragmaImport(node.callee.name);
-    },
-
-    /**
-     * Find a return statment in the current node
-     *
-     * @param {ASTNode} ASTnode The AST node being checked
-     */
-    findReturnStatement: astUtil.findReturnStatement,
-
-    /**
-     * Get the parent component node from the current scope
-     *
-     * @returns {ASTNode} component node, null if we are not in a component
-     */
-    getParentComponent() {
-      return (
-        utils.getParentES6Component() ||
-        utils.getParentES5Component() ||
-        utils.getParentStatelessComponent()
-      );
-    },
-
-    /**
-     * Get the parent ES5 component node from the current scope
-     *
-     * @returns {ASTNode} component node, null if we are not in a component
-     */
-    getParentES5Component() {
-      let scope = context.getScope();
-      while (scope) {
-        const node = scope.block && scope.block.parent && scope.block.parent.parent;
-        if (node && utils.isES5Component(node)) {
-          return node;
-        }
-        scope = scope.upper;
-      }
-      return null;
-    },
-
-    /**
-     * Get the parent ES6 component node from the current scope
-     *
-     * @returns {ASTNode} component node, null if we are not in a component
-     */
-    getParentES6Component() {
-      let scope = context.getScope();
-      while (scope && scope.type !== 'class') {
-        scope = scope.upper;
-      }
-      const node = scope && scope.block;
-      if (!node || !utils.isES6Component(node)) {
-        return null;
-      }
-      return node;
-    },
-
-    /**
-     * @param {ASTNode} node
-     * @returns {boolean}
-     */
-    isInAllowedPositionForComponent(node) {
-      switch (node.parent.type) {
-        case 'VariableDeclarator':
-        case 'AssignmentExpression':
-        case 'Property':
-        case 'ReturnStatement':
-        case 'ExportDefaultDeclaration': {
-          return true;
-        }
-        case 'SequenceExpression': {
-          return utils.isInAllowedPositionForComponent(node.parent) &&
-            node === node.parent.expressions[node.parent.expressions.length - 1];
-        }
-        default:
-          return false;
-      }
-    },
-
-    /**
-     * Get node if node is a stateless component, or node.parent in cases like
-     * `React.memo` or `React.forwardRef`. Otherwise returns `undefined`.
-     * @param {ASTNode} node
-     * @returns {ASTNode | undefined}
-     */
-    getStatelessComponent(node) {
-      if (node.type === 'FunctionDeclaration') {
-        if (utils.isReturningJSXOrNull(node)) {
-          return node;
-        }
-      }
-
-      if (node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression') {
-        if (utils.isInAllowedPositionForComponent(node) && utils.isReturningJSXOrNull(node)) {
-          return node;
-        }
-
-        // Case like `React.memo(() => <></>)` or `React.forwardRef(...)`
-        const pragmaComponentWrapper = utils.getPragmaComponentWrapper(node);
-        if (pragmaComponentWrapper) {
-          return pragmaComponentWrapper;
-        }
-      }
-
-      return undefined;
-    },
-
-    /**
-     * Get the parent stateless component node from the current scope
-     *
-     * @returns {ASTNode} component node, null if we are not in a component
-     */
-    getParentStatelessComponent() {
-      let scope = context.getScope();
-      while (scope) {
-        const node = scope.block;
-        const statelessComponent = utils.getStatelessComponent(node);
-        if (statelessComponent) {
-          return statelessComponent;
-        }
-        scope = scope.upper;
-      }
-      return null;
-    },
-
-    /**
-     * Get the related component from a node
-     *
-     * @param {ASTNode} node The AST node being checked (must be a MemberExpression).
-     * @returns {ASTNode} component node, null if we cannot find the component
-     */
-    getRelatedComponent(node) {
-      let i;
-      let j;
-      let k;
-      let l;
-      let componentNode;
-      // Get the component path
-      const componentPath = [];
-      while (node) {
-        if (node.property && node.property.type === 'Identifier') {
-          componentPath.push(node.property.name);
-        }
-        if (node.object && node.object.type === 'Identifier') {
-          componentPath.push(node.object.name);
-        }
-        node = node.object;
-      }
-      componentPath.reverse();
-      const componentName = componentPath.slice(0, componentPath.length - 1).join('.');
-
-      // Find the variable in the current scope
-      const variableName = componentPath.shift();
-      if (!variableName) {
-        return null;
-      }
-      let variableInScope;
-      const variables = variableUtil.variablesInScope(context);
-      for (i = 0, j = variables.length; i < j; i++) {
-        if (variables[i].name === variableName) {
-          variableInScope = variables[i];
-          break;
-        }
-      }
-      if (!variableInScope) {
-        return null;
-      }
-
-      // Try to find the component using variable references
-      const refs = variableInScope.references;
-      refs.some((ref) => {
-        let refId = ref.identifier;
-        if (refId.parent && refId.parent.type === 'MemberExpression') {
-          refId = refId.parent;
-        }
-        if (sourceCode.getText(refId) !== componentName) {
-          return false;
-        }
-        if (refId.type === 'MemberExpression') {
-          componentNode = refId.parent.right;
-        } else if (
-          refId.parent &&
-          refId.parent.type === 'VariableDeclarator' &&
-          refId.parent.init &&
-          refId.parent.init.type !== 'Identifier'
-        ) {
-          componentNode = refId.parent.init;
-        }
-        return true;
-      });
-
-      if (componentNode) {
-        // Return the component
-        return components.add(componentNode, 1);
-      }
-
-      // Try to find the component using variable declarations
-      const defs = variableInScope.defs;
-      const defInScope = defs.find(def => (
-        def.type === 'ClassName' ||
-        def.type === 'FunctionName' ||
-        def.type === 'Variable'
-      ));
-      if (!defInScope || !defInScope.node) {
-        return null;
-      }
-      componentNode = defInScope.node.init || defInScope.node;
-
-      // Traverse the node properties to the component declaration
-      for (i = 0, j = componentPath.length; i < j; i++) {
-        if (!componentNode.properties) {
-          continue; // eslint-disable-line no-continue
-        }
-        for (k = 0, l = componentNode.properties.length; k < l; k++) {
-          if (componentNode.properties[k].key && componentNode.properties[k].key.name === componentPath[i]) {
-            componentNode = componentNode.properties[k];
-            break;
-          }
-        }
-        if (!componentNode || !componentNode.value) {
-          return null;
-        }
-        componentNode = componentNode.value;
-      }
-
-      // Return the component
-      return components.add(componentNode, 1);
-    }
-  };
-
-  // Component detection instructions
-  const detectionInstructions = {
-    CallExpression(node) {
-      if (!utils.isPragmaComponentWrapper(node)) {
-        return;
-      }
-      if (node.arguments.length > 0 && astUtil.isFunctionLikeExpression(node.arguments[0])) {
-        components.add(node, 2);
-      }
-    },
-
-    ClassExpression(node) {
-      if (!utils.isES6Component(node)) {
-        return;
-      }
-      components.add(node, 2);
-    },
-
-    ClassDeclaration(node) {
-      if (!utils.isES6Component(node)) {
-        return;
-      }
-      components.add(node, 2);
-    },
-
-    ClassProperty(node) {
-      node = utils.getParentComponent();
-      if (!node) {
-        return;
-      }
-      components.add(node, 2);
-    },
-
-    ObjectExpression(node) {
-      if (!utils.isES5Component(node)) {
-        return;
-      }
-      components.add(node, 2);
-    },
-
-    FunctionExpression(node) {
-      if (node.async) {
-        components.add(node, 0);
-        return;
-      }
-      const component = utils.getParentComponent();
-      if (
-        !component ||
-        (component.parent && component.parent.type === 'JSXExpressionContainer')
-      ) {
-        // Ban the node if we cannot find a parent component
-        components.add(node, 0);
-        return;
-      }
-      components.add(component, 1);
-    },
-
-    FunctionDeclaration(node) {
-      if (node.async) {
-        components.add(node, 0);
-        return;
-      }
-      node = utils.getParentComponent();
-      if (!node) {
-        return;
-      }
-      components.add(node, 1);
-    },
-
-    ArrowFunctionExpression(node) {
-      if (node.async) {
-        components.add(node, 0);
-        return;
-      }
-      const component = utils.getParentComponent();
-      if (
-        !component ||
-        (component.parent && component.parent.type === 'JSXExpressionContainer')
-      ) {
-        // Ban the node if we cannot find a parent component
-        components.add(node, 0);
-        return;
-      }
-      if (component.expression && utils.isReturningJSX(component)) {
-        components.add(component, 2);
-      } else {
-        components.add(component, 1);
-      }
-    },
-
-    ThisExpression(node) {
-      const component = utils.getParentComponent();
-      if (!component || !/Function/.test(component.type) || !node.parent.property) {
-        return;
-      }
-      // Ban functions accessing a property on a ThisExpression
-      components.add(node, 0);
-    },
-
-    ReturnStatement(node) {
-      if (!utils.isReturningJSX(node)) {
-        return;
-      }
-      node = utils.getParentComponent();
-      if (!node) {
-        const scope = context.getScope();
-        components.add(scope.block, 1);
-        return;
-      }
-      components.add(node, 2);
-    }
-  };
-
-  // Update the provided rule instructions to add the component detection
-  const ruleInstructions = rule(context, components, utils);
-  const updatedRuleInstructions = Object.assign({}, ruleInstructions);
-  const propTypesInstructions = propTypesUtil(context, components, utils);
-  const usedPropTypesInstructions = usedPropTypesUtil(context, components, utils);
-  const defaultPropsInstructions = defaultPropsUtil(context, components, utils);
-  const allKeys = new Set(Object.keys(detectionInstructions).concat(
-    Object.keys(propTypesInstructions),
-    Object.keys(usedPropTypesInstructions),
-    Object.keys(defaultPropsInstructions)
-  ));
-
-  allKeys.forEach((instruction) => {
-    updatedRuleInstructions[instruction] = (node) => {
-      if (instruction in detectionInstructions) {
-        detectionInstructions[instruction](node);
-      }
-      if (instruction in propTypesInstructions) {
-        propTypesInstructions[instruction](node);
-      }
-      if (instruction in usedPropTypesInstructions) {
-        usedPropTypesInstructions[instruction](node);
-      }
-      if (instruction in defaultPropsInstructions) {
-        defaultPropsInstructions[instruction](node);
-      }
-      if (ruleInstructions[instruction]) {
-        return ruleInstructions[instruction](node);
-      }
-    };
-  });
-
-  // Return the updated rule instructions
-  return updatedRuleInstructions;
-}
-
-module.exports = Object.assign(Components, {
-  detect(rule) {
-    return componentRule.bind(this, rule);
-  }
-});
diff --git a/node_modules/eslint-plugin-react/lib/util/annotations.js b/node_modules/eslint-plugin-react/lib/util/annotations.js
deleted file mode 100644
index d52fb21..0000000
--- a/node_modules/eslint-plugin-react/lib/util/annotations.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * @fileoverview Utility functions for type annotation detection.
- * @author Yannick Croissant
- * @author Vitor Balocco
- */
-
-'use strict';
-
-/**
- * Checks if we are declaring a `props` argument with a flow type annotation.
- * @param {ASTNode} node The AST node being checked.
- * @param {Object} context
- * @returns {Boolean} True if the node is a type annotated props declaration, false if not.
- */
-function isAnnotatedFunctionPropsDeclaration(node, context) {
-  if (!node || !node.params || !node.params.length) {
-    return false;
-  }
-
-  const typeNode = node.params[0].type === 'AssignmentPattern' ? node.params[0].left : node.params[0];
-
-  const tokens = context.getFirstTokens(typeNode, 2);
-  const isAnnotated = typeNode.typeAnnotation;
-  const isDestructuredProps = typeNode.type === 'ObjectPattern';
-  const isProps = tokens[0].value === 'props' || (tokens[1] && tokens[1].value === 'props');
-
-  return (isAnnotated && (isDestructuredProps || isProps));
-}
-
-module.exports = {
-  isAnnotatedFunctionPropsDeclaration
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/ast.js b/node_modules/eslint-plugin-react/lib/util/ast.js
deleted file mode 100644
index 731a273..0000000
--- a/node_modules/eslint-plugin-react/lib/util/ast.js
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * @fileoverview Utility functions for AST
- */
-
-'use strict';
-
-/**
- * Find a return statment in the current node
- *
- * @param {ASTNode} node The AST node being checked
- * @returns {ASTNode | false}
- */
-function findReturnStatement(node) {
-  if (
-    (!node.value || !node.value.body || !node.value.body.body) &&
-    (!node.body || !node.body.body)
-  ) {
-    return false;
-  }
-
-  const bodyNodes = (node.value ? node.value.body.body : node.body.body);
-
-  return (function loopNodes(nodes) {
-    let i = nodes.length - 1;
-    for (; i >= 0; i--) {
-      if (nodes[i].type === 'ReturnStatement') {
-        return nodes[i];
-      }
-      if (nodes[i].type === 'SwitchStatement') {
-        let j = nodes[i].cases.length - 1;
-        for (; j >= 0; j--) {
-          return loopNodes(nodes[i].cases[j].consequent);
-        }
-      }
-    }
-    return false;
-  }(bodyNodes));
-}
-
-/**
- * Get node with property's name
- * @param {Object} node - Property.
- * @returns {Object} Property name node.
- */
-function getPropertyNameNode(node) {
-  if (node.key || ['MethodDefinition', 'Property'].indexOf(node.type) !== -1) {
-    return node.key;
-  }
-  if (node.type === 'MemberExpression') {
-    return node.property;
-  }
-  return null;
-}
-
-/**
- * Get properties name
- * @param {Object} node - Property.
- * @returns {String} Property name.
- */
-function getPropertyName(node) {
-  const nameNode = getPropertyNameNode(node);
-  return nameNode ? nameNode.name : '';
-}
-
-/**
- * Get properties for a given AST node
- * @param {ASTNode} node The AST node being checked.
- * @returns {Array} Properties array.
- */
-function getComponentProperties(node) {
-  switch (node.type) {
-    case 'ClassDeclaration':
-    case 'ClassExpression':
-      return node.body.body;
-    case 'ObjectExpression':
-      return node.properties;
-    default:
-      return [];
-  }
-}
-
-
-/**
- * Gets the first node in a line from the initial node, excluding whitespace.
- * @param {Object} context The node to check
- * @param {ASTNode} node The node to check
- * @return {ASTNode} the first node in the line
- */
-function getFirstNodeInLine(context, node) {
-  const sourceCode = context.getSourceCode();
-  let token = node;
-  let lines;
-  do {
-    token = sourceCode.getTokenBefore(token);
-    lines = token.type === 'JSXText' ?
-      token.value.split('\n') :
-      null;
-  } while (
-    token.type === 'JSXText' &&
-        /^\s*$/.test(lines[lines.length - 1])
-  );
-  return token;
-}
-
-/**
- * Checks if the node is the first in its line, excluding whitespace.
- * @param {Object} context The node to check
- * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's the first node in its line
- */
-function isNodeFirstInLine(context, node) {
-  const token = getFirstNodeInLine(context, node);
-  const startLine = node.loc.start.line;
-  const endLine = token ? token.loc.end.line : -1;
-  return startLine !== endLine;
-}
-
-/**
- * Checks if the node is a function or arrow function expression.
- * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a function-like expression
- */
-function isFunctionLikeExpression(node) {
-  return node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression';
-}
-
-/**
- * Checks if the node is a function.
- * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a function
- */
-function isFunction(node) {
-  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration';
-}
-
-/**
- * Checks if the node is a class.
- * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a class
- */
-function isClass(node) {
-  return node.type === 'ClassDeclaration' || node.type === 'ClassExpression';
-}
-
-/**
- * Removes quotes from around an identifier.
- * @param {string} string the identifier to strip
- * @returns {string}
- */
-function stripQuotes(string) {
-  return string.replace(/^'|'$/g, '');
-}
-
-/**
- * Retrieve the name of a key node
- * @param {Context} context The AST node with the key.
- * @param {ASTNode} node The AST node with the key.
- * @return {string} the name of the key
- */
-function getKeyValue(context, node) {
-  if (node.type === 'ObjectTypeProperty') {
-    const tokens = context.getFirstTokens(node, 2);
-    return (tokens[0].value === '+' || tokens[0].value === '-' ?
-      tokens[1].value :
-      stripQuotes(tokens[0].value)
-    );
-  }
-  if (node.type === 'GenericTypeAnnotation') {
-    return node.id.name;
-  }
-  if (node.type === 'ObjectTypeAnnotation') {
-    return;
-  }
-  const key = node.key || node.argument;
-  return key.type === 'Identifier' ? key.name : key.value;
-}
-
-/**
- * Checks if a node is being assigned a value: props.bar = 'bar'
- * @param {ASTNode} node The AST node being checked.
- * @returns {Boolean}
- */
-function isAssignmentLHS(node) {
-  return (
-    node.parent &&
-    node.parent.type === 'AssignmentExpression' &&
-    node.parent.left === node
-  );
-}
-
-/**
- * Extracts the expression node that is wrapped inside a TS type assertion
- *
- * @param {ASTNode} node - potential TS node
- * @returns {ASTNode} - unwrapped expression node
- */
-function unwrapTSAsExpression(node) {
-  if (node && node.type === 'TSAsExpression') return node.expression;
-  return node;
-}
-
-module.exports = {
-  findReturnStatement,
-  getFirstNodeInLine,
-  getPropertyName,
-  getPropertyNameNode,
-  getComponentProperties,
-  getKeyValue,
-  isAssignmentLHS,
-  isClass,
-  isFunction,
-  isFunctionLikeExpression,
-  isNodeFirstInLine,
-  unwrapTSAsExpression
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/defaultProps.js b/node_modules/eslint-plugin-react/lib/util/defaultProps.js
deleted file mode 100644
index cf8ab46..0000000
--- a/node_modules/eslint-plugin-react/lib/util/defaultProps.js
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * @fileoverview Common defaultProps detection functionality.
- */
-
-'use strict';
-
-const fromEntries = require('object.fromentries');
-const astUtil = require('./ast');
-const propsUtil = require('./props');
-const variableUtil = require('./variable');
-const propWrapperUtil = require('../util/propWrapper');
-
-const QUOTES_REGEX = /^["']|["']$/g;
-
-module.exports = function defaultPropsInstructions(context, components, utils) {
-  const sourceCode = context.getSourceCode();
-
-  /**
-   * Try to resolve the node passed in to a variable in the current scope. If the node passed in is not
-   * an Identifier, then the node is simply returned.
-   * @param   {ASTNode} node The node to resolve.
-   * @returns {ASTNode|null} Return null if the value could not be resolved, ASTNode otherwise.
-   */
-  function resolveNodeValue(node) {
-    if (node.type === 'Identifier') {
-      return variableUtil.findVariableByName(context, node.name);
-    }
-    if (
-      node.type === 'CallExpression' &&
-      propWrapperUtil.isPropWrapperFunction(context, node.callee.name) &&
-      node.arguments && node.arguments[0]
-    ) {
-      return resolveNodeValue(node.arguments[0]);
-    }
-    return node;
-  }
-
-  /**
-   * Extracts a DefaultProp from an ObjectExpression node.
-   * @param   {ASTNode} objectExpression ObjectExpression node.
-   * @returns {Object|string}            Object representation of a defaultProp, to be consumed by
-   *                                     `addDefaultPropsToComponent`, or string "unresolved", if the defaultProps
-   *                                     from this ObjectExpression can't be resolved.
-   */
-  function getDefaultPropsFromObjectExpression(objectExpression) {
-    const hasSpread = objectExpression.properties.find(property => property.type === 'ExperimentalSpreadProperty' || property.type === 'SpreadElement');
-
-    if (hasSpread) {
-      return 'unresolved';
-    }
-
-    return objectExpression.properties.map(defaultProp => ({
-      name: sourceCode.getText(defaultProp.key).replace(QUOTES_REGEX, ''),
-      node: defaultProp
-    }));
-  }
-
-  /**
-   * Marks a component's DefaultProps declaration as "unresolved". A component's DefaultProps is
-   * marked as "unresolved" if we cannot safely infer the values of its defaultProps declarations
-   * without risking false negatives.
-   * @param   {Object} component The component to mark.
-   * @returns {void}
-   */
-  function markDefaultPropsAsUnresolved(component) {
-    components.set(component.node, {
-      defaultProps: 'unresolved'
-    });
-  }
-
-  /**
-   * Adds defaultProps to the component passed in.
-   * @param   {ASTNode}         component    The component to add the defaultProps to.
-   * @param   {Object[]|'unresolved'} defaultProps defaultProps to add to the component or the string "unresolved"
-   *                                         if this component has defaultProps that can't be resolved.
-   * @returns {void}
-   */
-  function addDefaultPropsToComponent(component, defaultProps) {
-    // Early return if this component's defaultProps is already marked as "unresolved".
-    if (component.defaultProps === 'unresolved') {
-      return;
-    }
-
-    if (defaultProps === 'unresolved') {
-      markDefaultPropsAsUnresolved(component);
-      return;
-    }
-
-    const defaults = component.defaultProps || {};
-    const newDefaultProps = Object.assign(
-      {},
-      defaults,
-      fromEntries(defaultProps.map(prop => [prop.name, prop]))
-    );
-
-    components.set(component.node, {
-      defaultProps: newDefaultProps
-    });
-  }
-
-  return {
-    MemberExpression(node) {
-      const isDefaultProp = propsUtil.isDefaultPropsDeclaration(node);
-
-      if (!isDefaultProp) {
-        return;
-      }
-
-      // find component this defaultProps belongs to
-      const component = utils.getRelatedComponent(node);
-      if (!component) {
-        return;
-      }
-
-      // e.g.:
-      // MyComponent.propTypes = {
-      //   foo: React.PropTypes.string.isRequired,
-      //   bar: React.PropTypes.string
-      // };
-      //
-      // or:
-      //
-      // MyComponent.propTypes = myPropTypes;
-      if (node.parent.type === 'AssignmentExpression') {
-        const expression = resolveNodeValue(node.parent.right);
-        if (!expression || expression.type !== 'ObjectExpression') {
-          // If a value can't be found, we mark the defaultProps declaration as "unresolved", because
-          // we should ignore this component and not report any errors for it, to avoid false-positives
-          // with e.g. external defaultProps declarations.
-          if (isDefaultProp) {
-            markDefaultPropsAsUnresolved(component);
-          }
-
-          return;
-        }
-
-        addDefaultPropsToComponent(component, getDefaultPropsFromObjectExpression(expression));
-
-        return;
-      }
-
-      // e.g.:
-      // MyComponent.propTypes.baz = React.PropTypes.string;
-      if (node.parent.type === 'MemberExpression' && node.parent.parent &&
-        node.parent.parent.type === 'AssignmentExpression') {
-        addDefaultPropsToComponent(component, [{
-          name: node.parent.property.name,
-          node: node.parent.parent
-        }]);
-      }
-    },
-
-    // e.g.:
-    // class Hello extends React.Component {
-    //   static get defaultProps() {
-    //     return {
-    //       name: 'Dean'
-    //     };
-    //   }
-    //   render() {
-    //     return <div>Hello {this.props.name}</div>;
-    //   }
-    // }
-    MethodDefinition(node) {
-      if (!node.static || node.kind !== 'get') {
-        return;
-      }
-
-      if (!propsUtil.isDefaultPropsDeclaration(node)) {
-        return;
-      }
-
-      // find component this propTypes/defaultProps belongs to
-      const component = components.get(utils.getParentES6Component());
-      if (!component) {
-        return;
-      }
-
-      const returnStatement = utils.findReturnStatement(node);
-      if (!returnStatement) {
-        return;
-      }
-
-      const expression = resolveNodeValue(returnStatement.argument);
-      if (!expression || expression.type !== 'ObjectExpression') {
-        return;
-      }
-
-      addDefaultPropsToComponent(component, getDefaultPropsFromObjectExpression(expression));
-    },
-
-    // e.g.:
-    // class Greeting extends React.Component {
-    //   render() {
-    //     return (
-    //       <h1>Hello, {this.props.foo} {this.props.bar}</h1>
-    //     );
-    //   }
-    //   static defaultProps = {
-    //     foo: 'bar',
-    //     bar: 'baz'
-    //   };
-    // }
-    ClassProperty(node) {
-      if (!(node.static && node.value)) {
-        return;
-      }
-
-      const propName = astUtil.getPropertyName(node);
-      const isDefaultProp = propName === 'defaultProps' || propName === 'getDefaultProps';
-
-      if (!isDefaultProp) {
-        return;
-      }
-
-      // find component this propTypes/defaultProps belongs to
-      const component = components.get(utils.getParentES6Component());
-      if (!component) {
-        return;
-      }
-
-      const expression = resolveNodeValue(node.value);
-      if (!expression || expression.type !== 'ObjectExpression') {
-        return;
-      }
-
-      addDefaultPropsToComponent(component, getDefaultPropsFromObjectExpression(expression));
-    },
-
-    // e.g.:
-    // React.createClass({
-    //   render: function() {
-    //     return <div>{this.props.foo}</div>;
-    //   },
-    //   getDefaultProps: function() {
-    //     return {
-    //       foo: 'default'
-    //     };
-    //   }
-    // });
-    ObjectExpression(node) {
-      // find component this propTypes/defaultProps belongs to
-      const component = utils.isES5Component(node) && components.get(node);
-      if (!component) {
-        return;
-      }
-
-      // Search for the proptypes declaration
-      node.properties.forEach((property) => {
-        if (property.type === 'ExperimentalSpreadProperty' || property.type === 'SpreadElement') {
-          return;
-        }
-
-        const isDefaultProp = propsUtil.isDefaultPropsDeclaration(property);
-
-        if (isDefaultProp && property.value.type === 'FunctionExpression') {
-          const returnStatement = utils.findReturnStatement(property);
-          if (!returnStatement || returnStatement.argument.type !== 'ObjectExpression') {
-            return;
-          }
-
-          addDefaultPropsToComponent(component, getDefaultPropsFromObjectExpression(returnStatement.argument));
-        }
-      });
-    }
-  };
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/docsUrl.js b/node_modules/eslint-plugin-react/lib/util/docsUrl.js
deleted file mode 100644
index f579409..0000000
--- a/node_modules/eslint-plugin-react/lib/util/docsUrl.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-function docsUrl(ruleName) {
-  return `https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/${ruleName}.md`;
-}
-
-module.exports = docsUrl;
diff --git a/node_modules/eslint-plugin-react/lib/util/error.js b/node_modules/eslint-plugin-react/lib/util/error.js
deleted file mode 100644
index bbfc3d6..0000000
--- a/node_modules/eslint-plugin-react/lib/util/error.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-/**
- * Logs out a message if there is no format option set.
- * @param {String} message - Message to log.
- */
-function error(message) {
-  if (!/=-(f|-format)=/.test(process.argv.join('='))) {
-    // eslint-disable-next-line no-console
-    console.error(message);
-  }
-}
-
-module.exports = error;
diff --git a/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.js b/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.js
deleted file mode 100644
index a727c1a..0000000
--- a/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-/**
- * Find the token before the closing bracket.
- * @param {ASTNode} node - The JSX element node.
- * @returns {Token} The token before the closing bracket.
- */
-function getTokenBeforeClosingBracket(node) {
-  const attributes = node.attributes;
-  if (attributes.length === 0) {
-    return node.name;
-  }
-  return attributes[attributes.length - 1];
-}
-
-module.exports = getTokenBeforeClosingBracket;
diff --git a/node_modules/eslint-plugin-react/lib/util/jsx.js b/node_modules/eslint-plugin-react/lib/util/jsx.js
deleted file mode 100644
index e3bcc23..0000000
--- a/node_modules/eslint-plugin-react/lib/util/jsx.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @fileoverview Utility functions for JSX
- */
-
-'use strict';
-
-const elementType = require('jsx-ast-utils/elementType');
-
-const COMPAT_TAG_REGEX = /^[a-z]|-/;
-
-/**
- * Checks if a node represents a DOM element.
- * @param {object} node - JSXOpeningElement to check.
- * @returns {boolean} Whether or not the node corresponds to a DOM element.
- */
-function isDOMComponent(node) {
-  let name = elementType(node);
-
-  // Get namespace if the type is JSXNamespacedName or JSXMemberExpression
-  if (name.indexOf(':') > -1) {
-    name = name.slice(0, name.indexOf(':'));
-  } else if (name.indexOf('.') > -1) {
-    name = name.slice(0, name.indexOf('.'));
-  }
-
-  return COMPAT_TAG_REGEX.test(name);
-}
-
-/**
- * Test whether a JSXElement is a fragment
- * @param {JSXElement} node
- * @param {string} reactPragma
- * @param {string} fragmentPragma
- * @returns {boolean}
- */
-function isFragment(node, reactPragma, fragmentPragma) {
-  const name = node.openingElement.name;
-
-  // <Fragment>
-  if (name.type === 'JSXIdentifier' && name.name === fragmentPragma) {
-    return true;
-  }
-
-  // <React.Fragment>
-  if (
-    name.type === 'JSXMemberExpression' &&
-    name.object.type === 'JSXIdentifier' &&
-    name.object.name === reactPragma &&
-    name.property.type === 'JSXIdentifier' &&
-    name.property.name === fragmentPragma
-  ) {
-    return true;
-  }
-
-  return false;
-}
-
-/**
- * Checks if a node represents a JSX element or fragment.
- * @param {object} node - node to check.
- * @returns {boolean} Whether or not the node if a JSX element or fragment.
- */
-function isJSX(node) {
-  return node && ['JSXElement', 'JSXFragment'].indexOf(node.type) >= 0;
-}
-
-/**
- * Check if node is like `key={...}` as in `<Foo key={...} />`
- * @param {ASTNode} node
- * @returns {boolean}
- */
-function isJSXAttributeKey(node) {
-  return node.type === 'JSXAttribute' &&
-    node.name &&
-    node.name.type === 'JSXIdentifier' &&
-    node.name.name === 'key';
-}
-
-/**
- * Check if value has only whitespaces
- * @param {string} value
- * @returns {boolean}
- */
-function isWhiteSpaces(value) {
-  return typeof value === 'string' ? /^\s*$/.test(value) : false;
-}
-
-module.exports = {
-  isDOMComponent,
-  isFragment,
-  isJSX,
-  isJSXAttributeKey,
-  isWhiteSpaces
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/linkComponents.js b/node_modules/eslint-plugin-react/lib/util/linkComponents.js
deleted file mode 100644
index 066b2ea..0000000
--- a/node_modules/eslint-plugin-react/lib/util/linkComponents.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * @fileoverview Utility functions for propWrapperFunctions setting
- */
-
-'use strict';
-
-/** TODO: type {(string | { name: string, linkAttribute: string })[]} */
-/** @type {any} */
-const DEFAULT_LINK_COMPONENTS = ['a'];
-const DEFAULT_LINK_ATTRIBUTE = 'href';
-
-function getLinkComponents(context) {
-  const settings = context.settings || {};
-  const linkComponents = /** @type {typeof DEFAULT_LINK_COMPONENTS} */ (
-    DEFAULT_LINK_COMPONENTS.concat(settings.linkComponents || [])
-  );
-  return new Map(linkComponents.map((value) => {
-    if (typeof value === 'string') {
-      return [value, DEFAULT_LINK_ATTRIBUTE];
-    }
-    return [value.name, value.linkAttribute];
-  }));
-}
-
-module.exports = {
-  getLinkComponents
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/log.js b/node_modules/eslint-plugin-react/lib/util/log.js
deleted file mode 100644
index 9782b21..0000000
--- a/node_modules/eslint-plugin-react/lib/util/log.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-/**
- * Logs out a message if there is no format option set.
- * @param {String} message - Message to log.
- */
-function log(message) {
-  if (!/=-(f|-format)=/.test(process.argv.join('='))) {
-    // eslint-disable-next-line no-console
-    console.log(message);
-  }
-}
-
-module.exports = log;
diff --git a/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js b/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js
deleted file mode 100644
index 3a46b5e..0000000
--- a/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * @fileoverview Prevent usage of setState in lifecycle methods
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const docsUrl = require('./docsUrl');
-
-// ------------------------------------------------------------------------------
-// Rule Definition
-// ------------------------------------------------------------------------------
-
-function mapTitle(methodName) {
-  const map = {
-    componentDidMount: 'did-mount',
-    componentDidUpdate: 'did-update',
-    componentWillUpdate: 'will-update'
-  };
-  const title = map[methodName];
-  if (!title) {
-    throw Error(`No docsUrl for '${methodName}'`);
-  }
-  return `no-${title}-set-state`;
-}
-
-function makeNoMethodSetStateRule(methodName, shouldCheckUnsafeCb) {
-  return {
-    meta: {
-      docs: {
-        description: `Prevent usage of setState in ${methodName}`,
-        category: 'Best Practices',
-        recommended: false,
-        url: docsUrl(mapTitle(methodName))
-      },
-
-      schema: [{
-        enum: ['disallow-in-func']
-      }]
-    },
-
-    create(context) {
-      const mode = context.options[0] || 'allow-in-func';
-
-      function nameMatches(name) {
-        if (name === methodName) {
-          return true;
-        }
-
-        if (typeof shouldCheckUnsafeCb === 'function' && shouldCheckUnsafeCb(context)) {
-          return name === `UNSAFE_${methodName}`;
-        }
-
-        return false;
-      }
-
-      // --------------------------------------------------------------------------
-      // Public
-      // --------------------------------------------------------------------------
-
-      return {
-
-        CallExpression(node) {
-          const callee = node.callee;
-          if (
-            callee.type !== 'MemberExpression' ||
-            callee.object.type !== 'ThisExpression' ||
-            callee.property.name !== 'setState'
-          ) {
-            return;
-          }
-          const ancestors = context.getAncestors(callee).reverse();
-          let depth = 0;
-          ancestors.some((ancestor) => {
-            if (/Function(Expression|Declaration)$/.test(ancestor.type)) {
-              depth++;
-            }
-            if (
-              (ancestor.type !== 'Property' && ancestor.type !== 'MethodDefinition' && ancestor.type !== 'ClassProperty') ||
-              !nameMatches(ancestor.key.name) ||
-              (mode !== 'disallow-in-func' && depth > 1)
-            ) {
-              return false;
-            }
-            context.report({
-              node: callee,
-              message: `Do not use setState in ${ancestor.key.name}`
-            });
-            return true;
-          });
-        }
-      };
-    }
-  };
-}
-
-module.exports = makeNoMethodSetStateRule;
diff --git a/node_modules/eslint-plugin-react/lib/util/pragma.js b/node_modules/eslint-plugin-react/lib/util/pragma.js
deleted file mode 100644
index 4768284..0000000
--- a/node_modules/eslint-plugin-react/lib/util/pragma.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * @fileoverview Utility functions for React pragma configuration
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/;
-// Does not check for reserved keywords or unicode characters
-const JS_IDENTIFIER_REGEX = /^[_$a-zA-Z][_$a-zA-Z0-9]*$/;
-
-
-function getCreateClassFromContext(context) {
-  let pragma = 'createReactClass';
-  // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
-  if (context.settings.react && context.settings.react.createClass) {
-    pragma = context.settings.react.createClass;
-  }
-  if (!JS_IDENTIFIER_REGEX.test(pragma)) {
-    throw new Error(`createClass pragma ${pragma} is not a valid function name`);
-  }
-  return pragma;
-}
-
-function getFragmentFromContext(context) {
-  let pragma = 'Fragment';
-  // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
-  if (context.settings.react && context.settings.react.fragment) {
-    pragma = context.settings.react.fragment;
-  }
-  if (!JS_IDENTIFIER_REGEX.test(pragma)) {
-    throw new Error(`Fragment pragma ${pragma} is not a valid identifier`);
-  }
-  return pragma;
-}
-
-function getFromContext(context) {
-  let pragma = 'React';
-
-  const sourceCode = context.getSourceCode();
-  const pragmaNode = sourceCode.getAllComments().find(node => JSX_ANNOTATION_REGEX.test(node.value));
-
-  if (pragmaNode) {
-    const matches = JSX_ANNOTATION_REGEX.exec(pragmaNode.value);
-    pragma = matches[1].split('.')[0];
-  // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
-  } else if (context.settings.react && context.settings.react.pragma) {
-    pragma = context.settings.react.pragma;
-  }
-
-  if (!JS_IDENTIFIER_REGEX.test(pragma)) {
-    throw new Error(`React pragma ${pragma} is not a valid identifier`);
-  }
-  return pragma;
-}
-
-module.exports = {
-  getCreateClassFromContext,
-  getFragmentFromContext,
-  getFromContext
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/propTypes.js b/node_modules/eslint-plugin-react/lib/util/propTypes.js
deleted file mode 100644
index 9c2b956..0000000
--- a/node_modules/eslint-plugin-react/lib/util/propTypes.js
+++ /dev/null
@@ -1,740 +0,0 @@
-/**
- * @fileoverview Common propTypes detection functionality.
- */
-
-'use strict';
-
-const annotations = require('./annotations');
-const propsUtil = require('./props');
-const variableUtil = require('./variable');
-const versionUtil = require('./version');
-const propWrapperUtil = require('./propWrapper');
-const getKeyValue = require('./ast').getKeyValue;
-
-/**
- * Checks if we are declaring a props as a generic type in a flow-annotated class.
- *
- * @param {ASTNode} node  the AST node being checked.
- * @returns {Boolean} True if the node is a class with generic prop types, false if not.
- */
-function isSuperTypeParameterPropsDeclaration(node) {
-  if (node && (node.type === 'ClassDeclaration' || node.type === 'ClassExpression')) {
-    if (node.superTypeParameters && node.superTypeParameters.params.length > 0) {
-      return true;
-    }
-  }
-  return false;
-}
-
-/**
- * Iterates through a properties node, like a customized forEach.
- * @param {Object} context Array of properties to iterate.
- * @param {Object[]} properties Array of properties to iterate.
- * @param {Function} fn Function to call on each property, receives property key
-    and property value. (key, value) => void
-  * @param {Function} [handleSpreadFn] Function to call on each ObjectTypeSpreadProperty, receives the
-    argument
- */
-function iterateProperties(context, properties, fn, handleSpreadFn) {
-  if (properties && properties.length && typeof fn === 'function') {
-    for (let i = 0, j = properties.length; i < j; i++) {
-      const node = properties[i];
-      const key = getKeyValue(context, node);
-
-      if (node.type === 'ObjectTypeSpreadProperty' && typeof handleSpreadFn === 'function') {
-        handleSpreadFn(node.argument);
-      }
-
-      const value = node.value;
-      fn(key, value, node);
-    }
-  }
-}
-
-/**
- * Checks if a node is inside a class body.
- *
- * @param {ASTNode} node  the AST node being checked.
- * @returns {Boolean} True if the node has a ClassBody ancestor, false if not.
- */
-function isInsideClassBody(node) {
-  let parent = node.parent;
-  while (parent) {
-    if (parent.type === 'ClassBody') {
-      return true;
-    }
-    parent = parent.parent;
-  }
-
-  return false;
-}
-
-module.exports = function propTypesInstructions(context, components, utils) {
-  // Used to track the type annotations in scope.
-  // Necessary because babel's scopes do not track type annotations.
-  let stack = null;
-
-  const classExpressions = [];
-  const defaults = {customValidators: []};
-  const configuration = Object.assign({}, defaults, context.options[0] || {});
-  const customValidators = configuration.customValidators;
-
-  /**
-   * Returns the full scope.
-   * @returns {Object} The whole scope.
-   */
-  function typeScope() {
-    return stack[stack.length - 1];
-  }
-
-  /**
-   * Gets a node from the scope.
-   * @param {string} key The name of the identifier to access.
-   * @returns {ASTNode} The ASTNode associated with the given identifier.
-   */
-  function getInTypeScope(key) {
-    return stack[stack.length - 1][key];
-  }
-
-  /**
-   * Sets the new value in the scope.
-   * @param {string} key The name of the identifier to access
-   * @param {ASTNode} value The new value for the identifier.
-   * @returns {ASTNode} The ASTNode associated with the given identifier.
-   */
-  function setInTypeScope(key, value) {
-    stack[stack.length - 1][key] = value;
-    return value;
-  }
-
-  /**
-   * Checks if prop should be validated by plugin-react-proptypes
-   * @param {String} validator Name of validator to check.
-   * @returns {Boolean} True if validator should be checked by custom validator.
-   */
-  function hasCustomValidator(validator) {
-    return customValidators.indexOf(validator) !== -1;
-  }
-
-  /* eslint-disable no-use-before-define */
-  /** @type {TypeDeclarationBuilders} */
-  const typeDeclarationBuilders = {
-    GenericTypeAnnotation(annotation, parentName, seen) {
-      if (getInTypeScope(annotation.id.name)) {
-        return buildTypeAnnotationDeclarationTypes(getInTypeScope(annotation.id.name), parentName, seen);
-      }
-      return {};
-    },
-
-    ObjectTypeAnnotation(annotation, parentName, seen) {
-      let containsUnresolvedObjectTypeSpread = false;
-      let containsSpread = false;
-      const containsIndexers = Boolean(annotation.indexers && annotation.indexers.length);
-      const shapeTypeDefinition = {
-        type: 'shape',
-        children: {}
-      };
-      iterateProperties(context, annotation.properties, (childKey, childValue, propNode) => {
-        const fullName = [parentName, childKey].join('.');
-        if (childKey || childValue) {
-          const types = buildTypeAnnotationDeclarationTypes(childValue, fullName, seen);
-          types.fullName = fullName;
-          types.name = childKey;
-          types.node = propNode;
-          types.isRequired = !childValue.optional;
-          shapeTypeDefinition.children[childKey] = types;
-        }
-      },
-      (spreadNode) => {
-        const key = getKeyValue(context, spreadNode);
-        const types = buildTypeAnnotationDeclarationTypes(spreadNode, key, seen);
-        if (!types.children) {
-          containsUnresolvedObjectTypeSpread = true;
-        } else {
-          Object.assign(shapeTypeDefinition, types.children);
-        }
-        containsSpread = true;
-      });
-
-      // Mark if this shape has spread or an indexer. We will know to consider all props from this shape as having propTypes,
-      // but still have the ability to detect unused children of this shape.
-      shapeTypeDefinition.containsUnresolvedSpread = containsUnresolvedObjectTypeSpread;
-      shapeTypeDefinition.containsIndexers = containsIndexers;
-      // Deprecated: containsSpread is not used anymore in the codebase, ensure to keep API backward compatibility
-      shapeTypeDefinition.containsSpread = containsSpread;
-
-      return shapeTypeDefinition;
-    },
-
-    UnionTypeAnnotation(annotation, parentName, seen) {
-      /** @type {UnionTypeDefinition} */
-      const unionTypeDefinition = {
-        type: 'union',
-        children: annotation.types.map(type => buildTypeAnnotationDeclarationTypes(type, parentName, seen))
-      };
-      if (unionTypeDefinition.children.length === 0) {
-        // no complex type found, simply accept everything
-        return {};
-      }
-      return unionTypeDefinition;
-    },
-
-    ArrayTypeAnnotation(annotation, parentName, seen) {
-      const fullName = [parentName, '*'].join('.');
-      const child = buildTypeAnnotationDeclarationTypes(annotation.elementType, fullName, seen);
-      child.fullName = fullName;
-      child.name = '__ANY_KEY__';
-      child.node = annotation;
-      return {
-        type: 'object',
-        children: {
-          __ANY_KEY__: child
-        }
-      };
-    }
-  };
-  /* eslint-enable no-use-before-define */
-
-  /**
-   * Resolve the type annotation for a given node.
-   * Flow annotations are sometimes wrapped in outer `TypeAnnotation`
-   * and `NullableTypeAnnotation` nodes which obscure the annotation we're
-   * interested in.
-   * This method also resolves type aliases where possible.
-   *
-   * @param {ASTNode} node The annotation or a node containing the type annotation.
-   * @returns {ASTNode} The resolved type annotation for the node.
-   */
-  function resolveTypeAnnotation(node) {
-    let annotation = (node.left && node.left.typeAnnotation) || node.typeAnnotation || node;
-    while (annotation && (annotation.type === 'TypeAnnotation' || annotation.type === 'NullableTypeAnnotation')) {
-      annotation = annotation.typeAnnotation;
-    }
-    if (annotation.type === 'GenericTypeAnnotation' && getInTypeScope(annotation.id.name)) {
-      return getInTypeScope(annotation.id.name);
-    }
-
-    return annotation;
-  }
-
-  /**
-   * Creates the representation of the React props type annotation for the component.
-   * The representation is used to verify nested used properties.
-   * @param {ASTNode} annotation Type annotation for the props class property.
-   * @param {String} parentName
-   * @param {Set<ASTNode>} [seen]
-   * @return {Object} The representation of the declaration, empty object means
-   *    the property is declared without the need for further analysis.
-   */
-  function buildTypeAnnotationDeclarationTypes(annotation, parentName, seen) {
-    if (typeof seen === 'undefined') {
-      // Keeps track of annotations we've already seen to
-      // prevent problems with recursive types.
-      seen = new Set();
-    }
-    if (seen.has(annotation)) {
-      // This must be a recursive type annotation, so just accept anything.
-      return {};
-    }
-    seen.add(annotation);
-
-    if (annotation.type in typeDeclarationBuilders) {
-      return typeDeclarationBuilders[annotation.type](annotation, parentName, seen);
-    }
-    return {};
-  }
-
-  /**
-   * Marks all props found inside ObjectTypeAnnotation as declared.
-   *
-   * Modifies the declaredProperties object
-   * @param {ASTNode} propTypes
-   * @param {Object} declaredPropTypes
-   * @returns {Boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
-   */
-  function declarePropTypesForObjectTypeAnnotation(propTypes, declaredPropTypes) {
-    let ignorePropsValidation = false;
-
-    iterateProperties(context, propTypes.properties, (key, value, propNode) => {
-      if (!value) {
-        ignorePropsValidation = ignorePropsValidation || propNode.type !== 'ObjectTypeSpreadProperty';
-        return;
-      }
-
-      const types = buildTypeAnnotationDeclarationTypes(value, key);
-      types.fullName = key;
-      types.name = key;
-      types.node = propNode;
-      types.isRequired = !propNode.optional;
-      declaredPropTypes[key] = types;
-    }, (spreadNode) => {
-      const key = getKeyValue(context, spreadNode);
-      const spreadAnnotation = getInTypeScope(key);
-      if (!spreadAnnotation) {
-        ignorePropsValidation = true;
-      } else {
-        const spreadIgnoreValidation = declarePropTypesForObjectTypeAnnotation(spreadAnnotation, declaredPropTypes);
-        ignorePropsValidation = ignorePropsValidation || spreadIgnoreValidation;
-      }
-    });
-
-    return ignorePropsValidation;
-  }
-
-  /**
-   * Marks all props found inside IntersectionTypeAnnotation as declared.
-   * Since InterSectionTypeAnnotations can be nested, this handles recursively.
-   *
-   * Modifies the declaredPropTypes object
-   * @param {ASTNode} propTypes
-   * @param {Object} declaredPropTypes
-   * @returns {Boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
-   */
-  function declarePropTypesForIntersectionTypeAnnotation(propTypes, declaredPropTypes) {
-    return propTypes.types.some((annotation) => {
-      if (annotation.type === 'ObjectTypeAnnotation') {
-        return declarePropTypesForObjectTypeAnnotation(annotation, declaredPropTypes);
-      }
-
-      if (annotation.type === 'UnionTypeAnnotation') {
-        return true;
-      }
-
-      // Type can't be resolved
-      if (!annotation.id) {
-        return true;
-      }
-
-      const typeNode = getInTypeScope(annotation.id.name);
-
-      if (!typeNode) {
-        return true;
-      }
-      if (typeNode.type === 'IntersectionTypeAnnotation') {
-        return declarePropTypesForIntersectionTypeAnnotation(typeNode, declaredPropTypes);
-      }
-
-      return declarePropTypesForObjectTypeAnnotation(typeNode, declaredPropTypes);
-    });
-  }
-
-  /**
-   * Creates the representation of the React propTypes for the component.
-   * The representation is used to verify nested used properties.
-   * @param {ASTNode} value Node of the PropTypes for the desired property
-   * @param {string} parentName
-   * @return {Object} The representation of the declaration, empty object means
-   *    the property is declared without the need for further analysis.
-   */
-  function buildReactDeclarationTypes(value, parentName) {
-    if (
-      value &&
-      value.callee &&
-      value.callee.object &&
-      hasCustomValidator(value.callee.object.name)
-    ) {
-      return {};
-    }
-
-    if (
-      value &&
-      value.type === 'MemberExpression' &&
-      value.property &&
-      value.property.name &&
-      value.property.name === 'isRequired'
-    ) {
-      value = value.object;
-    }
-
-    // Verify PropTypes that are functions
-    if (
-      value &&
-      value.type === 'CallExpression' &&
-      value.callee &&
-      value.callee.property &&
-      value.callee.property.name &&
-      value.arguments &&
-      value.arguments.length > 0
-    ) {
-      const callName = value.callee.property.name;
-      const argument = value.arguments[0];
-      switch (callName) {
-        case 'shape': {
-          if (argument.type !== 'ObjectExpression') {
-            // Invalid proptype or cannot analyse statically
-            return {};
-          }
-          const shapeTypeDefinition = {
-            type: 'shape',
-            children: {}
-          };
-          iterateProperties(context, argument.properties, (childKey, childValue, propNode) => {
-            if (childValue) { // skip spread propTypes
-              const fullName = [parentName, childKey].join('.');
-              const types = buildReactDeclarationTypes(childValue, fullName);
-              types.fullName = fullName;
-              types.name = childKey;
-              types.node = propNode;
-              shapeTypeDefinition.children[childKey] = types;
-            }
-          });
-          return shapeTypeDefinition;
-        }
-        case 'arrayOf':
-        case 'objectOf': {
-          const fullName = [parentName, '*'].join('.');
-          const child = buildReactDeclarationTypes(argument, fullName);
-          child.fullName = fullName;
-          child.name = '__ANY_KEY__';
-          child.node = argument;
-          return {
-            type: 'object',
-            children: {
-              __ANY_KEY__: child
-            }
-          };
-        }
-        case 'oneOfType': {
-          if (
-            !argument.elements ||
-            !argument.elements.length
-          ) {
-            // Invalid proptype or cannot analyse statically
-            return {};
-          }
-
-          /** @type {UnionTypeDefinition} */
-          const unionTypeDefinition = {
-            type: 'union',
-            children: argument.elements.map(element => buildReactDeclarationTypes(element, parentName))
-          };
-          if (unionTypeDefinition.children.length === 0) {
-            // no complex type found, simply accept everything
-            return {};
-          }
-          return unionTypeDefinition;
-        }
-        default:
-          return {};
-      }
-    }
-    // Unknown property or accepts everything (any, object, ...)
-    return {};
-  }
-
-
-  /**
-   * Mark a prop type as declared
-   * @param {ASTNode} node The AST node being checked.
-   * @param {ASTNode} propTypes The AST node containing the proptypes
-   */
-  function markPropTypesAsDeclared(node, propTypes) {
-    let componentNode = node;
-    while (componentNode && !components.get(componentNode)) {
-      componentNode = componentNode.parent;
-    }
-    const component = components.get(componentNode);
-    const declaredPropTypes = component && component.declaredPropTypes || {};
-    let ignorePropsValidation = component && component.ignorePropsValidation || false;
-    switch (propTypes && propTypes.type) {
-      case 'ObjectTypeAnnotation':
-        ignorePropsValidation = declarePropTypesForObjectTypeAnnotation(propTypes, declaredPropTypes);
-        break;
-      case 'ObjectExpression':
-        iterateProperties(context, propTypes.properties, (key, value, propNode) => {
-          if (!value) {
-            ignorePropsValidation = true;
-            return;
-          }
-          const types = buildReactDeclarationTypes(value, key);
-          types.fullName = key;
-          types.name = key;
-          types.node = propNode;
-          types.isRequired = propsUtil.isRequiredPropType(value);
-          declaredPropTypes[key] = types;
-        });
-        break;
-      case 'MemberExpression': {
-        let curDeclaredPropTypes = declaredPropTypes;
-        // Walk the list of properties, until we reach the assignment
-        // ie: ClassX.propTypes.a.b.c = ...
-        while (
-          propTypes &&
-          propTypes.parent &&
-          propTypes.parent.type !== 'AssignmentExpression' &&
-          propTypes.property &&
-          curDeclaredPropTypes
-        ) {
-          const propName = propTypes.property.name;
-          if (propName in curDeclaredPropTypes) {
-            curDeclaredPropTypes = curDeclaredPropTypes[propName].children;
-            propTypes = propTypes.parent;
-          } else {
-            // This will crash at runtime because we haven't seen this key before
-            // stop this and do not declare it
-            propTypes = null;
-          }
-        }
-        if (propTypes && propTypes.parent && propTypes.property) {
-          if (!(propTypes === propTypes.parent.left && propTypes.parent.left.object)) {
-            ignorePropsValidation = true;
-            break;
-          }
-          const parentProp = context.getSource(propTypes.parent.left.object).replace(/^.*\.propTypes\./, '');
-          const types = buildReactDeclarationTypes(
-            propTypes.parent.right,
-            parentProp
-          );
-
-          types.name = propTypes.property.name;
-          types.fullName = [parentProp, propTypes.property.name].join('.');
-          types.node = propTypes.parent;
-          types.isRequired = propsUtil.isRequiredPropType(propTypes.parent.right);
-          curDeclaredPropTypes[propTypes.property.name] = types;
-        } else {
-          let isUsedInPropTypes = false;
-          let n = propTypes;
-          while (n) {
-            if (n.type === 'AssignmentExpression' && propsUtil.isPropTypesDeclaration(n.left) ||
-              (n.type === 'ClassProperty' || n.type === 'Property') && propsUtil.isPropTypesDeclaration(n)) {
-              // Found a propType used inside of another propType. This is not considered usage, we'll still validate
-              // this component.
-              isUsedInPropTypes = true;
-              break;
-            }
-            n = n.parent;
-          }
-          if (!isUsedInPropTypes) {
-            ignorePropsValidation = true;
-          }
-        }
-        break;
-      }
-      case 'Identifier': {
-        const variablesInScope = variableUtil.variablesInScope(context);
-        const firstMatchingVariable = variablesInScope
-          .find(variableInScope => variableInScope.name === propTypes.name);
-        if (firstMatchingVariable) {
-          const defInScope = firstMatchingVariable.defs[firstMatchingVariable.defs.length - 1];
-          markPropTypesAsDeclared(node, defInScope.node && defInScope.node.init);
-          return;
-        }
-        ignorePropsValidation = true;
-        break;
-      }
-      case 'CallExpression': {
-        if (
-          propWrapperUtil.isPropWrapperFunction(
-            context,
-            context.getSourceCode().getText(propTypes.callee)
-          ) &&
-          propTypes.arguments && propTypes.arguments[0]
-        ) {
-          markPropTypesAsDeclared(node, propTypes.arguments[0]);
-          return;
-        }
-        break;
-      }
-      case 'IntersectionTypeAnnotation':
-        ignorePropsValidation = declarePropTypesForIntersectionTypeAnnotation(propTypes, declaredPropTypes);
-        break;
-      case 'GenericTypeAnnotation':
-        if (propTypes.id.name === '$ReadOnly') {
-          ignorePropsValidation = declarePropTypesForObjectTypeAnnotation(
-            propTypes.typeParameters.params[0],
-            declaredPropTypes
-          );
-        } else {
-          ignorePropsValidation = true;
-        }
-        break;
-      case null:
-        break;
-      default:
-        ignorePropsValidation = true;
-        break;
-    }
-
-    components.set(node, {
-      declaredPropTypes,
-      ignorePropsValidation
-    });
-  }
-
-  /**
-   * @param {ASTNode} node We expect either an ArrowFunctionExpression,
-   *   FunctionDeclaration, or FunctionExpression
-   */
-  function markAnnotatedFunctionArgumentsAsDeclared(node) {
-    if (!node.params || !node.params.length || !annotations.isAnnotatedFunctionPropsDeclaration(node, context)) {
-      return;
-    }
-
-    if (isInsideClassBody(node)) {
-      return;
-    }
-
-    const param = node.params[0];
-    if (param.typeAnnotation && param.typeAnnotation.typeAnnotation && param.typeAnnotation.typeAnnotation.type === 'UnionTypeAnnotation') {
-      param.typeAnnotation.typeAnnotation.types.forEach((annotation) => {
-        if (annotation.type === 'GenericTypeAnnotation') {
-          markPropTypesAsDeclared(node, resolveTypeAnnotation(annotation));
-        } else {
-          markPropTypesAsDeclared(node, annotation);
-        }
-      });
-    } else {
-      markPropTypesAsDeclared(node, resolveTypeAnnotation(param));
-    }
-  }
-
-  /**
-   * Resolve the type annotation for a given class declaration node with superTypeParameters.
-   *
-   * @param {ASTNode} node The annotation or a node containing the type annotation.
-   * @returns {ASTNode} The resolved type annotation for the node.
-   */
-  function resolveSuperParameterPropsType(node) {
-    let propsParameterPosition;
-    try {
-      // Flow <=0.52 had 3 required TypedParameters of which the second one is the Props.
-      // Flow >=0.53 has 2 optional TypedParameters of which the first one is the Props.
-      propsParameterPosition = versionUtil.testFlowVersion(context, '0.53.0') ? 0 : 1;
-    } catch (e) {
-      // In case there is no flow version defined, we can safely assume that when there are 3 Props we are dealing with version <= 0.52
-      propsParameterPosition = node.superTypeParameters.params.length <= 2 ? 0 : 1;
-    }
-
-    let annotation = node.superTypeParameters.params[propsParameterPosition];
-    while (annotation && (annotation.type === 'TypeAnnotation' || annotation.type === 'NullableTypeAnnotation')) {
-      annotation = annotation.typeAnnotation;
-    }
-
-    if (annotation && annotation.type === 'GenericTypeAnnotation' && getInTypeScope(annotation.id.name)) {
-      return getInTypeScope(annotation.id.name);
-    }
-    return annotation;
-  }
-
-  /**
-   * Checks if we are declaring a `props` class property with a flow type annotation.
-   * @param {ASTNode} node The AST node being checked.
-   * @returns {Boolean} True if the node is a type annotated props declaration, false if not.
-   */
-  function isAnnotatedClassPropsDeclaration(node) {
-    if (node && node.type === 'ClassProperty') {
-      const tokens = context.getFirstTokens(node, 2);
-      if (
-        node.typeAnnotation && (
-          tokens[0].value === 'props' ||
-          (tokens[1] && tokens[1].value === 'props')
-        )
-      ) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  return {
-    ClassExpression(node) {
-      // TypeParameterDeclaration need to be added to typeScope in order to handle ClassExpressions.
-      // This visitor is executed before TypeParameterDeclaration are scoped, therefore we postpone
-      // processing class expressions until when the program exists.
-      classExpressions.push(node);
-    },
-
-    ClassDeclaration(node) {
-      if (isSuperTypeParameterPropsDeclaration(node)) {
-        markPropTypesAsDeclared(node, resolveSuperParameterPropsType(node));
-      }
-    },
-
-    ClassProperty(node) {
-      if (isAnnotatedClassPropsDeclaration(node)) {
-        markPropTypesAsDeclared(node, resolveTypeAnnotation(node));
-      } else if (propsUtil.isPropTypesDeclaration(node)) {
-        markPropTypesAsDeclared(node, node.value);
-      }
-    },
-
-    ObjectExpression(node) {
-      // Search for the proptypes declaration
-      node.properties.forEach((property) => {
-        if (!propsUtil.isPropTypesDeclaration(property)) {
-          return;
-        }
-        markPropTypesAsDeclared(node, property.value);
-      });
-    },
-
-    FunctionExpression(node) {
-      if (node.parent.type !== 'MethodDefinition') {
-        markAnnotatedFunctionArgumentsAsDeclared(node);
-      }
-    },
-
-    FunctionDeclaration: markAnnotatedFunctionArgumentsAsDeclared,
-
-    ArrowFunctionExpression: markAnnotatedFunctionArgumentsAsDeclared,
-
-    MemberExpression(node) {
-      if (propsUtil.isPropTypesDeclaration(node)) {
-        const component = utils.getRelatedComponent(node);
-        if (!component) {
-          return;
-        }
-        markPropTypesAsDeclared(component.node, node.parent.right || node.parent);
-      }
-    },
-
-    MethodDefinition(node) {
-      if (!node.static || node.kind !== 'get' || !propsUtil.isPropTypesDeclaration(node)) {
-        return;
-      }
-
-      let i = node.value.body.body.length - 1;
-      for (; i >= 0; i--) {
-        if (node.value.body.body[i].type === 'ReturnStatement') {
-          break;
-        }
-      }
-
-      if (i >= 0) {
-        markPropTypesAsDeclared(node, node.value.body.body[i].argument);
-      }
-    },
-
-    TypeAlias(node) {
-      setInTypeScope(node.id.name, node.right);
-    },
-
-    TypeParameterDeclaration(node) {
-      const identifier = node.params[0];
-
-      if (identifier.typeAnnotation) {
-        setInTypeScope(identifier.name, identifier.typeAnnotation.typeAnnotation);
-      }
-    },
-
-    Program() {
-      stack = [{}];
-    },
-
-    BlockStatement() {
-      stack.push(Object.create(typeScope()));
-    },
-
-    'BlockStatement:exit'() {
-      stack.pop();
-    },
-
-    'Program:exit'() {
-      classExpressions.forEach((node) => {
-        if (isSuperTypeParameterPropsDeclaration(node)) {
-          markPropTypesAsDeclared(node, resolveSuperParameterPropsType(node));
-        }
-      });
-    }
-  };
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/propTypesSort.js b/node_modules/eslint-plugin-react/lib/util/propTypesSort.js
deleted file mode 100644
index badcf79..0000000
--- a/node_modules/eslint-plugin-react/lib/util/propTypesSort.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * @fileoverview Common propTypes sorting functionality.
- */
-
-'use strict';
-
-const astUtil = require('./ast');
-
-/**
- * Returns the value name of a node.
- *
- * @param {ASTNode} node the node to check.
- * @returns {String} The name of the node.
- */
-function getValueName(node) {
-  return node.type === 'Property' && node.value.property && node.value.property.name;
-}
-
-/**
- * Checks if the prop is required or not.
- *
- * @param {ASTNode} node the prop to check.
- * @returns {Boolean} true if the prop is required.
- */
-function isRequiredProp(node) {
-  return getValueName(node) === 'isRequired';
-}
-
-/**
- * Checks if the proptype is a callback by checking if it starts with 'on'.
- *
- * @param {String} propName the name of the proptype to check.
- * @returns {Boolean} true if the proptype is a callback.
- */
-function isCallbackPropName(propName) {
-  return /^on[A-Z]/.test(propName);
-}
-
-/**
- * Checks if the prop is PropTypes.shape.
- *
- * @param {ASTNode} node the prop to check.
- * @returns {Boolean} true if the prop is PropTypes.shape.
- */
-function isShapeProp(node) {
-  return Boolean(
-    node && node.callee && node.callee.property && node.callee.property.name === 'shape'
-  );
-}
-
-/**
- * Returns the properties of a PropTypes.shape.
- *
- * @param {ASTNode} node the prop to check.
- * @returns {Array} the properties of the PropTypes.shape node.
- */
-function getShapeProperties(node) {
-  return node.arguments && node.arguments[0] && node.arguments[0].properties;
-}
-
-/**
- * Compares two elements.
- *
- * @param {ASTNode} a the first element to compare.
- * @param {ASTNode} b the second element to compare.
- * @param {Context} context The context of the two nodes.
- * @param {Boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
- * @param {Boolean=} requiredFirst whether or not to sort required elements first.
- * @param {Boolean=} callbacksLast whether or not to sort callbacks after everyting else.
- * @returns {Number} the sort order of the two elements.
- */
-function sorter(a, b, context, ignoreCase, requiredFirst, callbacksLast) {
-  const aKey = String(astUtil.getKeyValue(context, a));
-  const bKey = String(astUtil.getKeyValue(context, b));
-
-  if (requiredFirst) {
-    if (isRequiredProp(a) && !isRequiredProp(b)) {
-      return -1;
-    }
-    if (!isRequiredProp(a) && isRequiredProp(b)) {
-      return 1;
-    }
-  }
-
-  if (callbacksLast) {
-    if (isCallbackPropName(aKey) && !isCallbackPropName(bKey)) {
-      return 1;
-    }
-    if (!isCallbackPropName(aKey) && isCallbackPropName(bKey)) {
-      return -1;
-    }
-  }
-
-  if (ignoreCase) {
-    return aKey.localeCompare(bKey);
-  }
-
-  if (aKey < bKey) {
-    return -1;
-  }
-  if (aKey > bKey) {
-    return 1;
-  }
-  return 0;
-}
-
-/**
- * Fixes sort order of prop types.
- *
- * @param {Fixer} fixer the first element to compare.
- * @param {Object} context the second element to compare.
- * @param {Array} declarations The context of the two nodes.
- * @param {Boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
- * @param {Boolean=} requiredFirst whether or not to sort required elements first.
- * @param {Boolean=} callbacksLast whether or not to sort callbacks after everyting else.
- * @param {Boolean=} sortShapeProp whether or not to sort propTypes defined in PropTypes.shape.
- * @returns {Object|*|{range, text}} the sort order of the two elements.
- */
-function fixPropTypesSort(fixer, context, declarations, ignoreCase, requiredFirst, callbacksLast, sortShapeProp) {
-  function sortInSource(allNodes, source) {
-    const originalSource = source;
-    const nodeGroups = allNodes.reduce((acc, curr) => {
-      if (curr.type === 'ExperimentalSpreadProperty' || curr.type === 'SpreadElement') {
-        acc.push([]);
-      } else {
-        acc[acc.length - 1].push(curr);
-      }
-      return acc;
-    }, [[]]);
-
-    nodeGroups.forEach((nodes) => {
-      const sortedAttributes = nodes
-        .slice()
-        .sort((a, b) => sorter(a, b, context, ignoreCase, requiredFirst, callbacksLast));
-
-      source = nodes.reduceRight((acc, attr, index) => {
-        const sortedAttr = sortedAttributes[index];
-        let sortedAttrText = context.getSourceCode().getText(sortedAttr);
-        if (sortShapeProp && isShapeProp(sortedAttr.value)) {
-          const shape = getShapeProperties(sortedAttr.value);
-          if (shape) {
-            const attrSource = sortInSource(
-              shape,
-              originalSource
-            );
-            sortedAttrText = attrSource.slice(sortedAttr.range[0], sortedAttr.range[1]);
-          }
-        }
-        return `${acc.slice(0, attr.range[0])}${sortedAttrText}${acc.slice(attr.range[1])}`;
-      }, source);
-    });
-    return source;
-  }
-
-  const source = sortInSource(declarations, context.getSourceCode().getText());
-
-  const rangeStart = declarations[0].range[0];
-  const rangeEnd = declarations[declarations.length - 1].range[1];
-  return fixer.replaceTextRange([rangeStart, rangeEnd], source.slice(rangeStart, rangeEnd));
-}
-
-module.exports = {
-  fixPropTypesSort
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/propWrapper.js b/node_modules/eslint-plugin-react/lib/util/propWrapper.js
deleted file mode 100644
index 7202b13..0000000
--- a/node_modules/eslint-plugin-react/lib/util/propWrapper.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * @fileoverview Utility functions for propWrapperFunctions setting
- */
-
-'use strict';
-
-function getPropWrapperFunctions(context) {
-  return new Set(context.settings.propWrapperFunctions || []);
-}
-
-function isPropWrapperFunction(context, name) {
-  if (typeof name !== 'string') {
-    return false;
-  }
-  const propWrapperFunctions = getPropWrapperFunctions(context);
-  const splitName = name.split('.');
-  return Array.from(propWrapperFunctions).some((func) => {
-    if (splitName.length === 2 && func.object === splitName[0] && func.property === splitName[1]) {
-      return true;
-    }
-    return name === func || func.property === name;
-  });
-}
-
-module.exports = {
-  getPropWrapperFunctions,
-  isPropWrapperFunction
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/props.js b/node_modules/eslint-plugin-react/lib/util/props.js
deleted file mode 100644
index 1177200..0000000
--- a/node_modules/eslint-plugin-react/lib/util/props.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * @fileoverview Utility functions for props
- */
-
-'use strict';
-
-const astUtil = require('./ast');
-
-/**
- * Checks if the Identifier node passed in looks like a propTypes declaration.
- * @param {ASTNode} node The node to check. Must be an Identifier node.
- * @returns {Boolean} `true` if the node is a propTypes declaration, `false` if not
- */
-function isPropTypesDeclaration(node) {
-  if (node && node.type === 'ClassProperty') {
-    // Flow support
-    if (node.typeAnnotation && node.key.name === 'props') {
-      return true;
-    }
-  }
-  return astUtil.getPropertyName(node) === 'propTypes';
-}
-
-/**
- * Checks if the node passed in looks like a contextTypes declaration.
- * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a contextTypes declaration, `false` if not
- */
-function isContextTypesDeclaration(node) {
-  if (node && node.type === 'ClassProperty') {
-    // Flow support
-    if (node.typeAnnotation && node.key.name === 'context') {
-      return true;
-    }
-  }
-  return astUtil.getPropertyName(node) === 'contextTypes';
-}
-
-/**
- * Checks if the node passed in looks like a contextType declaration.
- * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a contextType declaration, `false` if not
- */
-function isContextTypeDeclaration(node) {
-  return astUtil.getPropertyName(node) === 'contextType';
-}
-
-/**
- * Checks if the node passed in looks like a childContextTypes declaration.
- * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a childContextTypes declaration, `false` if not
- */
-function isChildContextTypesDeclaration(node) {
-  return astUtil.getPropertyName(node) === 'childContextTypes';
-}
-
-/**
- * Checks if the Identifier node passed in looks like a defaultProps declaration.
- * @param {ASTNode} node The node to check. Must be an Identifier node.
- * @returns {Boolean} `true` if the node is a defaultProps declaration, `false` if not
- */
-function isDefaultPropsDeclaration(node) {
-  const propName = astUtil.getPropertyName(node);
-  return (propName === 'defaultProps' || propName === 'getDefaultProps');
-}
-
-/**
- * Checks if we are declaring a display name
- * @param {ASTNode} node The AST node being checked.
- * @returns {Boolean} True if we are declaring a display name, false if not.
- */
-function isDisplayNameDeclaration(node) {
-  switch (node.type) {
-    case 'ClassProperty':
-      return node.key && node.key.name === 'displayName';
-    case 'Identifier':
-      return node.name === 'displayName';
-    case 'Literal':
-      return node.value === 'displayName';
-    default:
-      return false;
-  }
-}
-
-/**
- * Checks if the PropTypes MemberExpression node passed in declares a required propType.
- * @param {ASTNode} propTypeExpression node to check. Must be a `PropTypes` MemberExpression.
- * @returns {Boolean} `true` if this PropType is required, `false` if not.
- */
-function isRequiredPropType(propTypeExpression) {
-  return propTypeExpression.type === 'MemberExpression' && propTypeExpression.property.name === 'isRequired';
-}
-
-module.exports = {
-  isPropTypesDeclaration,
-  isContextTypesDeclaration,
-  isContextTypeDeclaration,
-  isChildContextTypesDeclaration,
-  isDefaultPropsDeclaration,
-  isDisplayNameDeclaration,
-  isRequiredPropType
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js b/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js
deleted file mode 100755
index f1ac146..0000000
--- a/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js
+++ /dev/null
@@ -1,552 +0,0 @@
-/**
- * @fileoverview Common used propTypes detection functionality.
- */
-
-'use strict';
-
-const astUtil = require('./ast');
-const versionUtil = require('./version');
-const ast = require('./ast');
-
-// ------------------------------------------------------------------------------
-// Constants
-// ------------------------------------------------------------------------------
-
-const LIFE_CYCLE_METHODS = ['componentWillReceiveProps', 'shouldComponentUpdate', 'componentWillUpdate', 'componentDidUpdate'];
-const ASYNC_SAFE_LIFE_CYCLE_METHODS = ['getDerivedStateFromProps', 'getSnapshotBeforeUpdate', 'UNSAFE_componentWillReceiveProps', 'UNSAFE_componentWillUpdate'];
-
-function createPropVariables() {
-  /** @type {Map<string, string[]>} Maps the variable to its definition. `props.a.b` is stored as `['a', 'b']` */
-  let propVariables = new Map();
-  let hasBeenWritten = false;
-  const stack = [{propVariables, hasBeenWritten}];
-  return {
-    pushScope() {
-      // popVariables is not copied until first write.
-      stack.push({propVariables, hasBeenWritten: false});
-    },
-    popScope() {
-      stack.pop();
-      propVariables = stack[stack.length - 1].propVariables;
-      hasBeenWritten = stack[stack.length - 1].hasBeenWritten;
-    },
-    /**
-     * Add a variable name to the current scope
-     * @param {string} name
-     * @param {string[]} allNames Example: `props.a.b` should be formatted as `['a', 'b']`
-     * @returns {Map<string, string[]>}
-     */
-    set(name, allNames) {
-      if (!hasBeenWritten) {
-        // copy on write
-        propVariables = new Map(propVariables);
-        Object.assign(stack[stack.length - 1], {propVariables, hasBeenWritten: true});
-        stack[stack.length - 1].hasBeenWritten = true;
-      }
-      return propVariables.set(name, allNames);
-    },
-    /**
-     * Get the definition of a variable.
-     * @param {string} name
-     * @returns {string[]} Example: `props.a.b` is represented by `['a', 'b']`
-     */
-    get(name) {
-      return propVariables.get(name);
-    }
-  };
-}
-
-/**
- * Checks if the string is one of `props`, `nextProps`, or `prevProps`
- * @param {string} name The AST node being checked.
- * @returns {Boolean} True if the prop name matches
- */
-function isCommonVariableNameForProps(name) {
-  return name === 'props' || name === 'nextProps' || name === 'prevProps';
-}
-
-/**
- * Checks if the component must be validated
- * @param {Object} component The component to process
- * @returns {Boolean} True if the component must be validated, false if not.
- */
-function mustBeValidated(component) {
-  return !!(component && !component.ignorePropsValidation);
-}
-
-/**
- * Check if we are in a lifecycle method
- * @param {object} context
- * @param {boolean} checkAsyncSafeLifeCycles
- * @return {boolean} true if we are in a class constructor, false if not
- */
-function inLifeCycleMethod(context, checkAsyncSafeLifeCycles) {
-  let scope = context.getScope();
-  while (scope) {
-    if (scope.block && scope.block.parent && scope.block.parent.key) {
-      const name = scope.block.parent.key.name;
-
-      if (LIFE_CYCLE_METHODS.indexOf(name) >= 0) {
-        return true;
-      }
-      if (checkAsyncSafeLifeCycles && ASYNC_SAFE_LIFE_CYCLE_METHODS.indexOf(name) >= 0) {
-        return true;
-      }
-    }
-    scope = scope.upper;
-  }
-  return false;
-}
-
-/**
- * Returns true if the given node is a React Component lifecycle method
- * @param {ASTNode} node The AST node being checked.
- * @param {boolean} checkAsyncSafeLifeCycles
- * @return {Boolean} True if the node is a lifecycle method
- */
-function isNodeALifeCycleMethod(node, checkAsyncSafeLifeCycles) {
-  const nodeKeyName = (node.key || /** @type {ASTNode} */ ({})).name;
-
-  if (node.kind === 'constructor') {
-    return true;
-  }
-  if (LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
-    return true;
-  }
-  if (checkAsyncSafeLifeCycles && ASYNC_SAFE_LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
-    return true;
-  }
-
-  return false;
-}
-
-/**
- * Returns true if the given node is inside a React Component lifecycle
- * method.
- * @param {ASTNode} node The AST node being checked.
- * @param {boolean} checkAsyncSafeLifeCycles
- * @return {Boolean} True if the node is inside a lifecycle method
- */
-function isInLifeCycleMethod(node, checkAsyncSafeLifeCycles) {
-  if ((node.type === 'MethodDefinition' || node.type === 'Property') && isNodeALifeCycleMethod(node, checkAsyncSafeLifeCycles)) {
-    return true;
-  }
-
-  if (node.parent) {
-    return isInLifeCycleMethod(node.parent, checkAsyncSafeLifeCycles);
-  }
-
-  return false;
-}
-
-/**
- * Check if a function node is a setState updater
- * @param {ASTNode} node a function node
- * @return {boolean}
- */
-function isSetStateUpdater(node) {
-  const unwrappedParentCalleeNode = node.parent.type === 'CallExpression' &&
-    ast.unwrapTSAsExpression(node.parent.callee);
-
-  return unwrappedParentCalleeNode &&
-    unwrappedParentCalleeNode.property &&
-    unwrappedParentCalleeNode.property.name === 'setState' &&
-    // Make sure we are in the updater not the callback
-    node.parent.arguments[0] === node;
-}
-
-function isPropArgumentInSetStateUpdater(context, name) {
-  if (typeof name !== 'string') {
-    return;
-  }
-  let scope = context.getScope();
-  while (scope) {
-    const unwrappedParentCalleeNode =
-      scope.block && scope.block.parent &&
-      scope.block.parent.type === 'CallExpression' &&
-      ast.unwrapTSAsExpression(scope.block.parent.callee);
-    if (
-      unwrappedParentCalleeNode &&
-      unwrappedParentCalleeNode.property &&
-      unwrappedParentCalleeNode.property.name === 'setState' &&
-      // Make sure we are in the updater not the callback
-      scope.block.parent.arguments[0].start === scope.block.start &&
-      scope.block.parent.arguments[0].params &&
-      scope.block.parent.arguments[0].params.length > 1
-    ) {
-      return scope.block.parent.arguments[0].params[1].name === name;
-    }
-    scope = scope.upper;
-  }
-  return false;
-}
-
-function isInClassComponent(utils) {
-  return utils.getParentES6Component() || utils.getParentES5Component();
-}
-
-/**
- * Checks if the node is `this.props`
- * @param {ASTNode|undefined} node
- * @returns {boolean}
- */
-function isThisDotProps(node) {
-  return !!node &&
-    node.type === 'MemberExpression' &&
-    ast.unwrapTSAsExpression(node.object).type === 'ThisExpression' &&
-    node.property.name === 'props';
-}
-
-/**
- * Checks if the prop has spread operator.
- * @param {object} context
- * @param {ASTNode} node The AST node being marked.
- * @returns {Boolean} True if the prop has spread operator, false if not.
- */
-function hasSpreadOperator(context, node) {
-  const tokens = context.getSourceCode().getTokens(node);
-  return tokens.length && tokens[0].value === '...';
-}
-
-/**
- * Retrieve the name of a property node
- * @param {ASTNode} node The AST node with the property.
- * @return {string|undefined} the name of the property or undefined if not found
- */
-function getPropertyName(node) {
-  const property = node.property;
-  if (property) {
-    switch (property.type) {
-      case 'Identifier':
-        if (node.computed) {
-          return '__COMPUTED_PROP__';
-        }
-        return property.name;
-      case 'MemberExpression':
-        return;
-      case 'Literal':
-        // Accept computed properties that are literal strings
-        if (typeof property.value === 'string') {
-          return property.value;
-        }
-        // falls through
-      default:
-        if (node.computed) {
-          return '__COMPUTED_PROP__';
-        }
-        break;
-    }
-  }
-}
-
-/**
- * Checks if the node is a propTypes usage of the form `this.props.*`, `props.*`, `prevProps.*`, or `nextProps.*`.
- * @param {ASTNode} node
- * @param {Context} context
- * @param {Object} utils
- * @param {boolean} checkAsyncSafeLifeCycles
- * @returns {boolean}
- */
-function isPropTypesUsageByMemberExpression(node, context, utils, checkAsyncSafeLifeCycles) {
-  const unwrappedObjectNode = ast.unwrapTSAsExpression(node.object);
-
-  if (isInClassComponent(utils)) {
-    // this.props.*
-    if (isThisDotProps(unwrappedObjectNode)) {
-      return true;
-    }
-    // props.* or prevProps.* or nextProps.*
-    if (
-      isCommonVariableNameForProps(unwrappedObjectNode.name) &&
-      (inLifeCycleMethod(context, checkAsyncSafeLifeCycles) || utils.inConstructor())
-    ) {
-      return true;
-    }
-    // this.setState((_, props) => props.*))
-    if (isPropArgumentInSetStateUpdater(context, unwrappedObjectNode.name)) {
-      return true;
-    }
-    return false;
-  }
-  // props.* in function component
-  return unwrappedObjectNode.name === 'props' && !ast.isAssignmentLHS(node);
-}
-
-module.exports = function usedPropTypesInstructions(context, components, utils) {
-  const checkAsyncSafeLifeCycles = versionUtil.testReactVersion(context, '16.3.0');
-
-  const propVariables = createPropVariables();
-  const pushScope = propVariables.pushScope;
-  const popScope = propVariables.popScope;
-
-  /**
-   * Mark a prop type as used
-   * @param {ASTNode} node The AST node being marked.
-   * @param {string[]} [parentNames]
-   */
-  function markPropTypesAsUsed(node, parentNames) {
-    parentNames = parentNames || [];
-    let type;
-    let name;
-    let allNames;
-    let properties;
-    switch (node.type) {
-      case 'MemberExpression':
-        name = getPropertyName(node);
-        if (name) {
-          allNames = parentNames.concat(name);
-          if (
-            // Match props.foo.bar, don't match bar[props.foo]
-            node.parent.type === 'MemberExpression' &&
-            node.parent.object === node
-          ) {
-            markPropTypesAsUsed(node.parent, allNames);
-          }
-          // Handle the destructuring part of `const {foo} = props.a.b`
-          if (
-            node.parent.type === 'VariableDeclarator' &&
-            node.parent.id.type === 'ObjectPattern'
-          ) {
-            node.parent.id.parent = node.parent; // patch for bug in eslint@4 in which ObjectPattern has no parent
-            markPropTypesAsUsed(node.parent.id, allNames);
-          }
-
-          // const a = props.a
-          if (
-            node.parent.type === 'VariableDeclarator' &&
-            node.parent.id.type === 'Identifier'
-          ) {
-            propVariables.set(node.parent.id.name, allNames);
-          }
-          // Do not mark computed props as used.
-          type = name !== '__COMPUTED_PROP__' ? 'direct' : null;
-        }
-        break;
-      case 'ArrowFunctionExpression':
-      case 'FunctionDeclaration':
-      case 'FunctionExpression': {
-        if (node.params.length === 0) {
-          break;
-        }
-        type = 'destructuring';
-        const propParam = isSetStateUpdater(node) ? node.params[1] : node.params[0];
-        properties = propParam.type === 'AssignmentPattern' ?
-          propParam.left.properties :
-          propParam.properties;
-        break;
-      }
-      case 'ObjectPattern':
-        type = 'destructuring';
-        properties = node.properties;
-        break;
-      case 'TSEmptyBodyFunctionExpression':
-        break;
-      default:
-        throw new Error(`${node.type} ASTNodes are not handled by markPropTypesAsUsed`);
-    }
-
-    const component = components.get(utils.getParentComponent());
-    const usedPropTypes = component && component.usedPropTypes || [];
-    let ignoreUnusedPropTypesValidation = component && component.ignoreUnusedPropTypesValidation || false;
-
-    switch (type) {
-      case 'direct': {
-        // Ignore Object methods
-        if (name in Object.prototype) {
-          break;
-        }
-
-        const reportedNode = node.property;
-        usedPropTypes.push({
-          name,
-          allNames,
-          node: reportedNode
-        });
-        break;
-      }
-      case 'destructuring': {
-        for (let k = 0, l = (properties || []).length; k < l; k++) {
-          if (hasSpreadOperator(context, properties[k]) || properties[k].computed) {
-            ignoreUnusedPropTypesValidation = true;
-            break;
-          }
-          const propName = ast.getKeyValue(context, properties[k]);
-
-          if (!propName || properties[k].type !== 'Property') {
-            break;
-          }
-
-          usedPropTypes.push({
-            allNames: parentNames.concat([propName]),
-            name: propName,
-            node: properties[k]
-          });
-
-          if (properties[k].value.type === 'ObjectPattern') {
-            markPropTypesAsUsed(properties[k].value, parentNames.concat([propName]));
-          } else if (properties[k].value.type === 'Identifier') {
-            propVariables.set(propName, parentNames.concat(propName));
-          }
-        }
-        break;
-      }
-      default:
-        break;
-    }
-
-    components.set(component ? component.node : node, {
-      usedPropTypes,
-      ignoreUnusedPropTypesValidation
-    });
-  }
-
-  /**
-   * @param {ASTNode} node We expect either an ArrowFunctionExpression,
-   *   FunctionDeclaration, or FunctionExpression
-   */
-  function markDestructuredFunctionArgumentsAsUsed(node) {
-    const param = node.params && isSetStateUpdater(node) ? node.params[1] : node.params[0];
-
-    const destructuring = param && (
-      param.type === 'ObjectPattern' ||
-      param.type === 'AssignmentPattern' && param.left.type === 'ObjectPattern'
-    );
-
-    if (destructuring && (components.get(node) || components.get(node.parent))) {
-      markPropTypesAsUsed(node);
-    }
-  }
-
-  function handleSetStateUpdater(node) {
-    if (!node.params || node.params.length < 2 || !isSetStateUpdater(node)) {
-      return;
-    }
-    markPropTypesAsUsed(node);
-  }
-
-  /**
-   * Handle both stateless functions and setState updater functions.
-   * @param {ASTNode} node We expect either an ArrowFunctionExpression,
-   *   FunctionDeclaration, or FunctionExpression
-   */
-  function handleFunctionLikeExpressions(node) {
-    pushScope();
-    handleSetStateUpdater(node);
-    markDestructuredFunctionArgumentsAsUsed(node);
-  }
-
-  function handleCustomValidators(component) {
-    const propTypes = component.declaredPropTypes;
-    if (!propTypes) {
-      return;
-    }
-
-    Object.keys(propTypes).forEach((key) => {
-      const node = propTypes[key].node;
-
-      if (node.value && astUtil.isFunctionLikeExpression(node.value)) {
-        markPropTypesAsUsed(node.value);
-      }
-    });
-  }
-
-  return {
-    VariableDeclarator(node) {
-      const unwrappedInitNode = ast.unwrapTSAsExpression(node.init);
-
-      // let props = this.props
-      if (isThisDotProps(unwrappedInitNode) && isInClassComponent(utils) && node.id.type === 'Identifier') {
-        propVariables.set(node.id.name, []);
-      }
-
-      // Only handles destructuring
-      if (node.id.type !== 'ObjectPattern' || !unwrappedInitNode) {
-        return;
-      }
-
-      // let {props: {firstname}} = this
-      const propsProperty = node.id.properties.find(property => (
-        property.key &&
-        (property.key.name === 'props' || property.key.value === 'props')
-      ));
-
-      if (unwrappedInitNode.type === 'ThisExpression' && propsProperty && propsProperty.value.type === 'ObjectPattern') {
-        markPropTypesAsUsed(propsProperty.value);
-        return;
-      }
-
-      // let {props} = this
-      if (unwrappedInitNode.type === 'ThisExpression' && propsProperty && propsProperty.value.name === 'props') {
-        propVariables.set('props', []);
-        return;
-      }
-
-      // let {firstname} = props
-      if (
-        isCommonVariableNameForProps(unwrappedInitNode.name) &&
-        (utils.getParentStatelessComponent() || isInLifeCycleMethod(node, checkAsyncSafeLifeCycles))
-      ) {
-        markPropTypesAsUsed(node.id);
-        return;
-      }
-
-      // let {firstname} = this.props
-      if (isThisDotProps(unwrappedInitNode) && isInClassComponent(utils)) {
-        markPropTypesAsUsed(node.id);
-        return;
-      }
-
-      // let {firstname} = thing, where thing is defined by const thing = this.props.**.*
-      if (propVariables.get(unwrappedInitNode.name)) {
-        markPropTypesAsUsed(node.id, propVariables.get(unwrappedInitNode.name));
-      }
-    },
-
-    FunctionDeclaration: handleFunctionLikeExpressions,
-
-    ArrowFunctionExpression: handleFunctionLikeExpressions,
-
-    FunctionExpression: handleFunctionLikeExpressions,
-
-    'FunctionDeclaration:exit': popScope,
-
-    'ArrowFunctionExpression:exit': popScope,
-
-    'FunctionExpression:exit': popScope,
-
-    JSXSpreadAttribute(node) {
-      const component = components.get(utils.getParentComponent());
-      components.set(component ? component.node : node, {
-        ignoreUnusedPropTypesValidation: true
-      });
-    },
-
-    MemberExpression(node) {
-      if (isPropTypesUsageByMemberExpression(node, context, utils, checkAsyncSafeLifeCycles)) {
-        markPropTypesAsUsed(node);
-        return;
-      }
-
-      const propVariable = propVariables.get(ast.unwrapTSAsExpression(node.object).name);
-      if (propVariable) {
-        markPropTypesAsUsed(node, propVariable);
-      }
-    },
-
-    ObjectPattern(node) {
-      // If the object pattern is a destructured props object in a lifecycle
-      // method -- mark it for used props.
-      if (isNodeALifeCycleMethod(node.parent.parent, checkAsyncSafeLifeCycles) && node.properties.length > 0) {
-        markPropTypesAsUsed(node.parent);
-      }
-    },
-
-    'Program:exit'() {
-      const list = components.list();
-
-      Object.keys(list).filter(component => mustBeValidated(list[component])).forEach((component) => {
-        handleCustomValidators(list[component]);
-      });
-    }
-  };
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/variable.js b/node_modules/eslint-plugin-react/lib/util/variable.js
deleted file mode 100644
index cbc30f4..0000000
--- a/node_modules/eslint-plugin-react/lib/util/variable.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * @fileoverview Utility functions for React components detection
- * @author Yannick Croissant
- */
-
-'use strict';
-
-/**
- * Search a particular variable in a list
- * @param {Array} variables The variables list.
- * @param {string} name The name of the variable to search.
- * @returns {Boolean} True if the variable was found, false if not.
- */
-function findVariable(variables, name) {
-  return variables.some(variable => variable.name === name);
-}
-
-/**
- * Find and return a particular variable in a list
- * @param {Array} variables The variables list.
- * @param {string} name The name of the variable to search.
- * @returns {Object} Variable if the variable was found, null if not.
- */
-function getVariable(variables, name) {
-  return variables.find(variable => variable.name === name);
-}
-
-/**
- * List all variable in a given scope
- *
- * Contain a patch for babel-eslint to avoid https://github.com/babel/babel-eslint/issues/21
- *
- * @param {Object} context The current rule context.
- * @returns {Array} The variables list
- */
-function variablesInScope(context) {
-  let scope = context.getScope();
-  let variables = scope.variables;
-
-  while (scope.type !== 'global') {
-    scope = scope.upper;
-    variables = scope.variables.concat(variables);
-  }
-  if (scope.childScopes.length) {
-    variables = scope.childScopes[0].variables.concat(variables);
-    if (scope.childScopes[0].childScopes.length) {
-      variables = scope.childScopes[0].childScopes[0].variables.concat(variables);
-    }
-  }
-  variables.reverse();
-
-  return variables;
-}
-
-/**
- * Find a variable by name in the current scope.
- * @param {Object} context The current rule context.
- * @param  {string} name Name of the variable to look for.
- * @returns {ASTNode|null} Return null if the variable could not be found, ASTNode otherwise.
- */
-function findVariableByName(context, name) {
-  const variable = getVariable(variablesInScope(context), name);
-
-  if (!variable || !variable.defs[0] || !variable.defs[0].node) {
-    return null;
-  }
-
-  if (variable.defs[0].node.type === 'TypeAlias') {
-    return variable.defs[0].node.right;
-  }
-
-  return variable.defs[0].node.init;
-}
-
-module.exports = {
-  findVariable,
-  findVariableByName,
-  getVariable,
-  variablesInScope
-};
diff --git a/node_modules/eslint-plugin-react/lib/util/version.js b/node_modules/eslint-plugin-react/lib/util/version.js
deleted file mode 100644
index ff7397c..0000000
--- a/node_modules/eslint-plugin-react/lib/util/version.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * @fileoverview Utility functions for React and Flow version configuration
- * @author Yannick Croissant
- */
-
-'use strict';
-
-const resolve = require('resolve');
-const error = require('./error');
-
-let warnedForMissingVersion = false;
-
-function resetWarningFlag() {
-  warnedForMissingVersion = false;
-}
-
-function detectReactVersion() {
-  try {
-    const reactPath = resolve.sync('react', {basedir: process.cwd()});
-    const react = require(reactPath); // eslint-disable-line global-require, import/no-dynamic-require
-    return react.version;
-  } catch (e) {
-    if (e.code === 'MODULE_NOT_FOUND') {
-      if (!warnedForMissingVersion) {
-        error('Warning: React version was set to "detect" in eslint-plugin-react settings, ' +
-        'but the "react" package is not installed. Assuming latest React version for linting.');
-        warnedForMissingVersion = true;
-      }
-      return '999.999.999';
-    }
-    throw e;
-  }
-}
-
-function getReactVersionFromContext(context) {
-  let confVer = '999.999.999';
-  // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
-  if (context.settings && context.settings.react && context.settings.react.version) {
-    let settingsVersion = context.settings.react.version;
-    if (settingsVersion === 'detect') {
-      settingsVersion = detectReactVersion();
-    }
-    if (typeof settingsVersion !== 'string') {
-      error('Warning: React version specified in eslint-plugin-react-settings must be a string; ' +
-        `got “${typeof settingsVersion}”`);
-    }
-    confVer = String(settingsVersion);
-  } else if (!warnedForMissingVersion) {
-    error('Warning: React version not specified in eslint-plugin-react settings. ' +
-      'See https://github.com/yannickcr/eslint-plugin-react#configuration .');
-    warnedForMissingVersion = true;
-  }
-  confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
-  return confVer.split('.').map(part => Number(part));
-}
-
-function detectFlowVersion() {
-  try {
-    const flowPackageJsonPath = resolve.sync('flow-bin/package.json', {basedir: process.cwd()});
-    const flowPackageJson = require(flowPackageJsonPath); // eslint-disable-line global-require, import/no-dynamic-require
-    return flowPackageJson.version;
-  } catch (e) {
-    if (e.code === 'MODULE_NOT_FOUND') {
-      error('Warning: Flow version was set to "detect" in eslint-plugin-react settings, ' +
-        'but the "flow-bin" package is not installed. Assuming latest Flow version for linting.');
-      return '999.999.999';
-    }
-    throw e;
-  }
-}
-
-function getFlowVersionFromContext(context) {
-  let confVer = '999.999.999';
-  // .eslintrc shared settings (http://eslint.org/docs/user-guide/configuring#adding-shared-settings)
-  if (context.settings.react && context.settings.react.flowVersion) {
-    let flowVersion = context.settings.react.flowVersion;
-    if (flowVersion === 'detect') {
-      flowVersion = detectFlowVersion();
-    }
-    if (typeof flowVersion !== 'string') {
-      error('Warning: Flow version specified in eslint-plugin-react-settings must be a string; ' +
-        `got “${typeof flowVersion}”`);
-    }
-    confVer = String(flowVersion);
-  } else {
-    throw 'Could not retrieve flowVersion from settings'; // eslint-disable-line no-throw-literal
-  }
-  confVer = /^[0-9]+\.[0-9]+$/.test(confVer) ? `${confVer}.0` : confVer;
-  return confVer.split('.').map(part => Number(part));
-}
-
-function normalizeParts(parts) {
-  return Array.from({length: 3}, (_, i) => (parts[i] || 0));
-}
-
-function test(context, methodVer, confVer) {
-  const methodVers = normalizeParts(String(methodVer || '').split('.').map(part => Number(part)));
-  const confVers = normalizeParts(confVer);
-  const higherMajor = methodVers[0] < confVers[0];
-  const higherMinor = methodVers[0] === confVers[0] && methodVers[1] < confVers[1];
-  const higherOrEqualPatch = methodVers[0] === confVers[0] &&
-    methodVers[1] === confVers[1] &&
-    methodVers[2] <= confVers[2];
-
-  return higherMajor || higherMinor || higherOrEqualPatch;
-}
-
-function testReactVersion(context, methodVer) {
-  return test(context, methodVer, getReactVersionFromContext(context));
-}
-
-function testFlowVersion(context, methodVer) {
-  return test(context, methodVer, getFlowVersionFromContext(context));
-}
-
-module.exports = {
-  testReactVersion,
-  testFlowVersion,
-  resetWarningFlag
-};
diff --git a/node_modules/eslint-plugin-react/node_modules/.bin/semver b/node_modules/eslint-plugin-react/node_modules/.bin/semver
deleted file mode 120000
index c3277a7..0000000
--- a/node_modules/eslint-plugin-react/node_modules/.bin/semver
+++ /dev/null
@@ -1 +0,0 @@
-../../../semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/CHANGELOG.md b/node_modules/eslint-plugin-react/node_modules/doctrine/CHANGELOG.md
deleted file mode 100644
index 57140d0..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/CHANGELOG.md
+++ /dev/null
@@ -1,94 +0,0 @@
-v2.1.0 - January 6, 2018
-
-* 827f314 Update: support node ranges (fixes #89) (#190) (Teddy Katz)
-
-v2.0.2 - November 25, 2017
-
-* 5049ee3 Fix: Remove redundant LICENSE/README names from files (#203) (Kevin Partington)
-
-v2.0.1 - November 10, 2017
-
-* 009f33d Fix: Making sure union type stringification respects compact flag (#199) (Mitermayer Reis)
-* 19da935 Use native String.prototype.trim instead of a custom implementation. (#201) (Rouven Weßling)
-* e3a011b chore: add mocha.opts to restore custom mocha config (Jason Kurian)
-* d888200 chore: adds nyc and a newer version of mocha to accurately report coverage (Jason Kurian)
-* 6b210a8 fix: support type expression for @this tag (fixes #181) (#182) (Frédéric Junod)
-* 1c4a4c7 fix: Allow array indexes in names (#193) (Tom MacWright)
-* 9aed54d Fix incorrect behavior when arrow functions are used as default values (#189) (Gaurab Paul)
-* 9efb6ca Upgrade: Use Array.isArray instead of isarray package (#195) (medanat)
-
-v2.0.0 - November 15, 2016
-
-* 7d7c5f1 Breaking: Re-license to Apache 2 (fixes #176) (#178) (Nicholas C. Zakas)
-* 5496132 Docs: Update license copyright (Nicholas C. Zakas)
-
-v1.5.0 - October 13, 2016
-
-* e33c6bb Update: Add support for BooleanLiteralType (#173) (Erik Arvidsson)
-
-v1.4.0 - September 13, 2016
-
-* d7426e5 Update: add ability to parse optional properties in typedefs (refs #5) (#174) (ikokostya)
-
-v1.3.0 - August 22, 2016
-
-* 12c7ad9 Update: Add support for numeric and string literal types (fixes #156) (#172) (Andrew Walter)
-
-v1.2.3 - August 16, 2016
-
-* b96a884 Build: Add CI release script (Nicholas C. Zakas)
-* 8d9b3c7 Upgrade: Upgrade esutils to v2.0.2 (fixes #170) (#171) (Emeegeemee)
-
-v1.2.2 - May 19, 2016
-
-* ebe0b08 Fix: Support case insensitive tags (fixes #163) (#164) (alberto)
-* 8e6d81e Chore: Remove copyright and license from headers (Nicholas C. Zakas)
-* 79035c6 Chore: Include jQuery Foundation copyright (Nicholas C. Zakas)
-* 06910a7 Fix: Preserve whitespace in default param string values (fixes #157) (Kai Cataldo)
-
-v1.2.1 - March 29, 2016
-
-* 1f54014 Fix: allow hyphens in names (fixes #116) (Kai Cataldo)
-* bbee469 Docs: Add issue template (Nicholas C. Zakas)
-
-v1.2.0 - February 19, 2016
-
-* 18136c5 Build: Cleanup build system (Nicholas C. Zakas)
-* b082f85 Update: Add support for slash in namepaths (fixes #100) (Ryan Duffy)
-* def53a2 Docs: Fix typo in option lineNumbers (Daniel Tschinder)
-* e2cbbc5 Update: Bump isarray to v1.0.0 (Shinnosuke Watanabe)
-* ae07aa8 Fix: Allow whitespace in optional param with default value (fixes #141) (chris)
-
-v1.1.0 - January 6, 2016
-
-* Build: Switch to Makefile.js (Nicholas C. Zakas)
-* New: support name expression for @this tag (fixes #143) (Tim Schaub)
-* Build: Update ESLint settings (Nicholas C. Zakas)
-
-v1.0.0 - December 21, 2015
-
-* New: parse caption tags in examples into separate property. (fixes #131) (Tom MacWright)
-
-v0.7.2 - November 27, 2015
-
-* Fix: Line numbers for some tags (fixes #138) Fixing issue where input was not consumed via advance() but was skipped when parsing tags resulting in sometimes incorrect reported lineNumber. (TEHEK)
-* Build: Add missing linefix package (Nicholas C. Zakas)
-
-v0.7.1 - November 13, 2015
-
-* Update: Begin switch to Makefile.js (Nicholas C. Zakas)
-* Fix: permit return tag without type (fixes #136) (Tom MacWright)
-* Fix: package.json homepage field (Bogdan Chadkin)
-* Fix: Parse array default syntax. Fixes #133 (Tom MacWright)
-* Fix: Last tag always has \n in the description (fixes #87) (Burak Yigit Kaya)
-* Docs: Add changelog (Nicholas C. Zakas)
-
-v0.7.0 - September 21, 2015
-
-* Docs: Update README with new info (fixes #127) (Nicholas C. Zakas)
-* Fix: Parsing fix for param with arrays and properties (fixes #111) (Gyandeep Singh)
-* Build: Add travis build (fixes #123) (Gyandeep Singh)
-* Fix: Parsing of parameter name without a type (fixes #120) (Gyandeep Singh)
-* New: added preserveWhitespace option (Aleks Totic)
-* New: Add "files" entry to only deploy select files (Rob Loach)
-* New: Add support and tests for typedefs. Refs #5 (Tom MacWright)
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE b/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE
deleted file mode 100644
index 3e8ba72..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE
+++ /dev/null
@@ -1,177 +0,0 @@
-
-                             Apache License
-                       Version 2.0, January 2004
-                    http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-  "License" shall mean the terms and conditions for use, reproduction,
-  and distribution as defined by Sections 1 through 9 of this document.
-
-  "Licensor" shall mean the copyright owner or entity authorized by
-  the copyright owner that is granting the License.
-
-  "Legal Entity" shall mean the union of the acting entity and all
-  other entities that control, are controlled by, or are under common
-  control with that entity. For the purposes of this definition,
-  "control" means (i) the power, direct or indirect, to cause the
-  direction or management of such entity, whether by contract or
-  otherwise, or (ii) ownership of fifty percent (50%) or more of the
-  outstanding shares, or (iii) beneficial ownership of such entity.
-
-  "You" (or "Your") shall mean an individual or Legal Entity
-  exercising permissions granted by this License.
-
-  "Source" form shall mean the preferred form for making modifications,
-  including but not limited to software source code, documentation
-  source, and configuration files.
-
-  "Object" form shall mean any form resulting from mechanical
-  transformation or translation of a Source form, including but
-  not limited to compiled object code, generated documentation,
-  and conversions to other media types.
-
-  "Work" shall mean the work of authorship, whether in Source or
-  Object form, made available under the License, as indicated by a
-  copyright notice that is included in or attached to the work
-  (an example is provided in the Appendix below).
-
-  "Derivative Works" shall mean any work, whether in Source or Object
-  form, that is based on (or derived from) the Work and for which the
-  editorial revisions, annotations, elaborations, or other modifications
-  represent, as a whole, an original work of authorship. For the purposes
-  of this License, Derivative Works shall not include works that remain
-  separable from, or merely link (or bind by name) to the interfaces of,
-  the Work and Derivative Works thereof.
-
-  "Contribution" shall mean any work of authorship, including
-  the original version of the Work and any modifications or additions
-  to that Work or Derivative Works thereof, that is intentionally
-  submitted to Licensor for inclusion in the Work by the copyright owner
-  or by an individual or Legal Entity authorized to submit on behalf of
-  the copyright owner. For the purposes of this definition, "submitted"
-  means any form of electronic, verbal, or written communication sent
-  to the Licensor or its representatives, including but not limited to
-  communication on electronic mailing lists, source code control systems,
-  and issue tracking systems that are managed by, or on behalf of, the
-  Licensor for the purpose of discussing and improving the Work, but
-  excluding communication that is conspicuously marked or otherwise
-  designated in writing by the copyright owner as "Not a Contribution."
-
-  "Contributor" shall mean Licensor and any individual or Legal Entity
-  on behalf of whom a Contribution has been received by Licensor and
-  subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-  this License, each Contributor hereby grants to You a perpetual,
-  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-  copyright license to reproduce, prepare Derivative Works of,
-  publicly display, publicly perform, sublicense, and distribute the
-  Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-  this License, each Contributor hereby grants to You a perpetual,
-  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-  (except as stated in this section) patent license to make, have made,
-  use, offer to sell, sell, import, and otherwise transfer the Work,
-  where such license applies only to those patent claims licensable
-  by such Contributor that are necessarily infringed by their
-  Contribution(s) alone or by combination of their Contribution(s)
-  with the Work to which such Contribution(s) was submitted. If You
-  institute patent litigation against any entity (including a
-  cross-claim or counterclaim in a lawsuit) alleging that the Work
-  or a Contribution incorporated within the Work constitutes direct
-  or contributory patent infringement, then any patent licenses
-  granted to You under this License for that Work shall terminate
-  as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-  Work or Derivative Works thereof in any medium, with or without
-  modifications, and in Source or Object form, provided that You
-  meet the following conditions:
-
-  (a) You must give any other recipients of the Work or
-      Derivative Works a copy of this License; and
-
-  (b) You must cause any modified files to carry prominent notices
-      stating that You changed the files; and
-
-  (c) You must retain, in the Source form of any Derivative Works
-      that You distribute, all copyright, patent, trademark, and
-      attribution notices from the Source form of the Work,
-      excluding those notices that do not pertain to any part of
-      the Derivative Works; and
-
-  (d) If the Work includes a "NOTICE" text file as part of its
-      distribution, then any Derivative Works that You distribute must
-      include a readable copy of the attribution notices contained
-      within such NOTICE file, excluding those notices that do not
-      pertain to any part of the Derivative Works, in at least one
-      of the following places: within a NOTICE text file distributed
-      as part of the Derivative Works; within the Source form or
-      documentation, if provided along with the Derivative Works; or,
-      within a display generated by the Derivative Works, if and
-      wherever such third-party notices normally appear. The contents
-      of the NOTICE file are for informational purposes only and
-      do not modify the License. You may add Your own attribution
-      notices within Derivative Works that You distribute, alongside
-      or as an addendum to the NOTICE text from the Work, provided
-      that such additional attribution notices cannot be construed
-      as modifying the License.
-
-  You may add Your own copyright statement to Your modifications and
-  may provide additional or different license terms and conditions
-  for use, reproduction, or distribution of Your modifications, or
-  for any such Derivative Works as a whole, provided Your use,
-  reproduction, and distribution of the Work otherwise complies with
-  the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-  any Contribution intentionally submitted for inclusion in the Work
-  by You to the Licensor shall be under the terms and conditions of
-  this License, without any additional terms or conditions.
-  Notwithstanding the above, nothing herein shall supersede or modify
-  the terms of any separate license agreement you may have executed
-  with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-  names, trademarks, service marks, or product names of the Licensor,
-  except as required for reasonable and customary use in describing the
-  origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-  agreed to in writing, Licensor provides the Work (and each
-  Contributor provides its Contributions) on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-  implied, including, without limitation, any warranties or conditions
-  of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-  PARTICULAR PURPOSE. You are solely responsible for determining the
-  appropriateness of using or redistributing the Work and assume any
-  risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-  whether in tort (including negligence), contract, or otherwise,
-  unless required by applicable law (such as deliberate and grossly
-  negligent acts) or agreed to in writing, shall any Contributor be
-  liable to You for damages, including any direct, indirect, special,
-  incidental, or consequential damages of any character arising as a
-  result of this License or out of the use or inability to use the
-  Work (including but not limited to damages for loss of goodwill,
-  work stoppage, computer failure or malfunction, or any and all
-  other commercial damages or losses), even if such Contributor
-  has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-  the Work or Derivative Works thereof, You may choose to offer,
-  and charge a fee for, acceptance of support, warranty, indemnity,
-  or other liability obligations and/or rights consistent with this
-  License. However, in accepting such obligations, You may act only
-  on Your own behalf and on Your sole responsibility, not on behalf
-  of any other Contributor, and only if You agree to indemnify,
-  defend, and hold each Contributor harmless for any liability
-  incurred by, or claims asserted against, such Contributor by reason
-  of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE.closure-compiler b/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE.closure-compiler
deleted file mode 100644
index d645695..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE.closure-compiler
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/README.md b/node_modules/eslint-plugin-react/node_modules/doctrine/README.md
deleted file mode 100644
index 26fad18..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/README.md
+++ /dev/null
@@ -1,165 +0,0 @@
-[![NPM version][npm-image]][npm-url]
-[![build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![Downloads][downloads-image]][downloads-url]
-[![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-# Doctrine
-
-Doctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file).
-
-## Installation
-
-You can install Doctrine using [npm](https://npmjs.com):
-
-```
-$ npm install doctrine --save-dev
-```
-
-Doctrine can also be used in web browsers using [Browserify](http://browserify.org).
-
-## Usage
-
-Require doctrine inside of your JavaScript:
-
-```js
-var doctrine = require("doctrine");
-```
-
-### parse()
-
-The primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are:
-
-* `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`.
-* `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`.
-* `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`.
-* `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`.
-* `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`.
-* `range` - set to `true` to add `range` to each node, specifying the start and end index of the node in the original comment. Default: `false`.
-
-Here's a simple example:
-
-```js
-var ast = doctrine.parse(
-    [
-        "/**",
-        " * This function comment is parsed by doctrine",
-        " * @param {{ok:String}} userName",
-        "*/"
-    ].join('\n'), { unwrap: true });
-```
-
-This example returns the following AST:
-
-    {
-        "description": "This function comment is parsed by doctrine",
-        "tags": [
-            {
-                "title": "param",
-                "description": null,
-                "type": {
-                    "type": "RecordType",
-                    "fields": [
-                        {
-                            "type": "FieldType",
-                            "key": "ok",
-                            "value": {
-                                "type": "NameExpression",
-                                "name": "String"
-                            }
-                        }
-                    ]
-                },
-                "name": "userName"
-            }
-        ]
-    }
-
-See the [demo page](http://eslint.org/doctrine/demo/) more detail.
-
-## Team
-
-These folks keep the project moving and are resources for help:
-
-* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead
-* Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer
-
-## Contributing
-
-Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues).
-
-## Frequently Asked Questions
-
-### Can I pass a whole JavaScript file to Doctrine?
-
-No. Doctrine can only parse JSDoc comments, so you'll need to pass just the JSDoc comment to Doctrine in order to work.
-
-
-### License
-
-#### doctrine
-
-Copyright JS Foundation and other contributors, https://js.foundation
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-#### esprima
-
-some of functions is derived from esprima
-
-Copyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)
- (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#### closure-compiler
-
-some of extensions is derived from closure-compiler
-
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-
-### Where to ask for help?
-
-Join our [Chatroom](https://gitter.im/eslint/doctrine)
-
-[npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square
-[npm-url]: https://www.npmjs.com/package/doctrine
-[travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square
-[travis-url]: https://travis-ci.org/eslint/doctrine
-[coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master
-[downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square
-[downloads-url]: https://www.npmjs.com/package/doctrine
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/doctrine.js b/node_modules/eslint-plugin-react/node_modules/doctrine/lib/doctrine.js
deleted file mode 100644
index 1665afe..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/doctrine.js
+++ /dev/null
@@ -1,899 +0,0 @@
-/*
- * @fileoverview Main Doctrine object
- * @author Yusuke Suzuki <utatane.tea@gmail.com>
- * @author Dan Tao <daniel.tao@gmail.com>
- * @author Andrew Eisenberg <andrew@eisenberg.as>
- */
-
-(function () {
-    'use strict';
-
-    var typed,
-        utility,
-        jsdoc,
-        esutils,
-        hasOwnProperty;
-
-    esutils = require('esutils');
-    typed = require('./typed');
-    utility = require('./utility');
-
-    function sliceSource(source, index, last) {
-        return source.slice(index, last);
-    }
-
-    hasOwnProperty = (function () {
-        var func = Object.prototype.hasOwnProperty;
-        return function hasOwnProperty(obj, name) {
-            return func.call(obj, name);
-        };
-    }());
-
-    function shallowCopy(obj) {
-        var ret = {}, key;
-        for (key in obj) {
-            if (obj.hasOwnProperty(key)) {
-                ret[key] = obj[key];
-            }
-        }
-        return ret;
-    }
-
-    function isASCIIAlphanumeric(ch) {
-        return (ch >= 0x61  /* 'a' */ && ch <= 0x7A  /* 'z' */) ||
-            (ch >= 0x41  /* 'A' */ && ch <= 0x5A  /* 'Z' */) ||
-            (ch >= 0x30  /* '0' */ && ch <= 0x39  /* '9' */);
-    }
-
-    function isParamTitle(title) {
-        return title === 'param' || title === 'argument' || title === 'arg';
-    }
-
-    function isReturnTitle(title) {
-        return title === 'return' || title === 'returns';
-    }
-
-    function isProperty(title) {
-        return title === 'property' || title === 'prop';
-    }
-
-    function isNameParameterRequired(title) {
-        return isParamTitle(title) || isProperty(title) ||
-            title === 'alias' || title === 'this' || title === 'mixes' || title === 'requires';
-    }
-
-    function isAllowedName(title) {
-        return isNameParameterRequired(title) || title === 'const' || title === 'constant';
-    }
-
-    function isAllowedNested(title) {
-        return isProperty(title) || isParamTitle(title);
-    }
-
-    function isAllowedOptional(title) {
-        return isProperty(title) || isParamTitle(title);
-    }
-
-    function isTypeParameterRequired(title) {
-        return isParamTitle(title) || isReturnTitle(title) ||
-            title === 'define' || title === 'enum' ||
-            title === 'implements' || title === 'this' ||
-            title === 'type' || title === 'typedef' || isProperty(title);
-    }
-
-    // Consider deprecation instead using 'isTypeParameterRequired' and 'Rules' declaration to pick when a type is optional/required
-    // This would require changes to 'parseType'
-    function isAllowedType(title) {
-        return isTypeParameterRequired(title) || title === 'throws' || title === 'const' || title === 'constant' ||
-            title === 'namespace' || title === 'member' || title === 'var' || title === 'module' ||
-            title === 'constructor' || title === 'class' || title === 'extends' || title === 'augments' ||
-            title === 'public' || title === 'private' || title === 'protected';
-    }
-
-    // A regex character class that contains all whitespace except linebreak characters (\r, \n, \u2028, \u2029)
-    var WHITESPACE = '[ \\f\\t\\v\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]';
-
-    var STAR_MATCHER = '(' + WHITESPACE + '*(?:\\*' + WHITESPACE + '?)?)(.+|[\r\n\u2028\u2029])';
-
-    function unwrapComment(doc) {
-        // JSDoc comment is following form
-        //   /**
-        //    * .......
-        //    */
-
-        return doc.
-            // remove /**
-            replace(/^\/\*\*?/, '').
-            // remove */
-            replace(/\*\/$/, '').
-            // remove ' * ' at the beginning of a line
-            replace(new RegExp(STAR_MATCHER, 'g'), '$2').
-            // remove trailing whitespace
-            replace(/\s*$/, '');
-    }
-
-    /**
-     * Converts an index in an "unwrapped" JSDoc comment to the corresponding index in the original "wrapped" version
-     * @param {string} originalSource The original wrapped comment
-     * @param {number} unwrappedIndex The index of a character in the unwrapped string
-     * @returns {number} The index of the corresponding character in the original wrapped string
-     */
-    function convertUnwrappedCommentIndex(originalSource, unwrappedIndex) {
-        var replacedSource = originalSource.replace(/^\/\*\*?/, '');
-        var numSkippedChars = 0;
-        var matcher = new RegExp(STAR_MATCHER, 'g');
-        var match;
-
-        while ((match = matcher.exec(replacedSource))) {
-            numSkippedChars += match[1].length;
-
-            if (match.index + match[0].length > unwrappedIndex + numSkippedChars) {
-                return unwrappedIndex + numSkippedChars + originalSource.length - replacedSource.length;
-            }
-        }
-
-        return originalSource.replace(/\*\/$/, '').replace(/\s*$/, '').length;
-    }
-
-    // JSDoc Tag Parser
-
-    (function (exports) {
-        var Rules,
-            index,
-            lineNumber,
-            length,
-            source,
-            originalSource,
-            recoverable,
-            sloppy,
-            strict;
-
-        function advance() {
-            var ch = source.charCodeAt(index);
-            index += 1;
-            if (esutils.code.isLineTerminator(ch) && !(ch === 0x0D  /* '\r' */ && source.charCodeAt(index) === 0x0A  /* '\n' */)) {
-                lineNumber += 1;
-            }
-            return String.fromCharCode(ch);
-        }
-
-        function scanTitle() {
-            var title = '';
-            // waste '@'
-            advance();
-
-            while (index < length && isASCIIAlphanumeric(source.charCodeAt(index))) {
-                title += advance();
-            }
-
-            return title;
-        }
-
-        function seekContent() {
-            var ch, waiting, last = index;
-
-            waiting = false;
-            while (last < length) {
-                ch = source.charCodeAt(last);
-                if (esutils.code.isLineTerminator(ch) && !(ch === 0x0D  /* '\r' */ && source.charCodeAt(last + 1) === 0x0A  /* '\n' */)) {
-                    waiting = true;
-                } else if (waiting) {
-                    if (ch === 0x40  /* '@' */) {
-                        break;
-                    }
-                    if (!esutils.code.isWhiteSpace(ch)) {
-                        waiting = false;
-                    }
-                }
-                last += 1;
-            }
-            return last;
-        }
-
-        // type expression may have nest brace, such as,
-        // { { ok: string } }
-        //
-        // therefore, scanning type expression with balancing braces.
-        function parseType(title, last, addRange) {
-            var ch, brace, type, startIndex, direct = false;
-
-
-            // search '{'
-            while (index < last) {
-                ch = source.charCodeAt(index);
-                if (esutils.code.isWhiteSpace(ch)) {
-                    advance();
-                } else if (ch === 0x7B  /* '{' */) {
-                    advance();
-                    break;
-                } else {
-                    // this is direct pattern
-                    direct = true;
-                    break;
-                }
-            }
-
-
-            if (direct) {
-                return null;
-            }
-
-            // type expression { is found
-            brace = 1;
-            type = '';
-            while (index < last) {
-                ch = source.charCodeAt(index);
-                if (esutils.code.isLineTerminator(ch)) {
-                    advance();
-                } else {
-                    if (ch === 0x7D  /* '}' */) {
-                        brace -= 1;
-                        if (brace === 0) {
-                            advance();
-                            break;
-                        }
-                    } else if (ch === 0x7B  /* '{' */) {
-                        brace += 1;
-                    }
-                    if (type === '') {
-                        startIndex = index;
-                    }
-                    type += advance();
-                }
-            }
-
-            if (brace !== 0) {
-                // braces is not balanced
-                return utility.throwError('Braces are not balanced');
-            }
-
-            if (isAllowedOptional(title)) {
-                return typed.parseParamType(type, {startIndex: convertIndex(startIndex), range: addRange});
-            }
-
-            return typed.parseType(type, {startIndex: convertIndex(startIndex), range: addRange});
-        }
-
-        function scanIdentifier(last) {
-            var identifier;
-            if (!esutils.code.isIdentifierStartES5(source.charCodeAt(index)) && !source[index].match(/[0-9]/)) {
-                return null;
-            }
-            identifier = advance();
-            while (index < last && esutils.code.isIdentifierPartES5(source.charCodeAt(index))) {
-                identifier += advance();
-            }
-            return identifier;
-        }
-
-        function skipWhiteSpace(last) {
-            while (index < last && (esutils.code.isWhiteSpace(source.charCodeAt(index)) || esutils.code.isLineTerminator(source.charCodeAt(index)))) {
-                advance();
-            }
-        }
-
-        function parseName(last, allowBrackets, allowNestedParams) {
-            var name = '',
-                useBrackets,
-                insideString;
-
-
-            skipWhiteSpace(last);
-
-            if (index >= last) {
-                return null;
-            }
-
-            if (source.charCodeAt(index) === 0x5B  /* '[' */) {
-                if (allowBrackets) {
-                    useBrackets = true;
-                    name = advance();
-                } else {
-                    return null;
-                }
-            }
-
-            name += scanIdentifier(last);
-
-            if (allowNestedParams) {
-                if (source.charCodeAt(index) === 0x3A /* ':' */ && (
-                        name === 'module' ||
-                        name === 'external' ||
-                        name === 'event')) {
-                    name += advance();
-                    name += scanIdentifier(last);
-
-                }
-                if(source.charCodeAt(index) === 0x5B  /* '[' */ && source.charCodeAt(index + 1) === 0x5D  /* ']' */){
-                    name += advance();
-                    name += advance();
-                }
-                while (source.charCodeAt(index) === 0x2E  /* '.' */ ||
-                        source.charCodeAt(index) === 0x2F  /* '/' */ ||
-                        source.charCodeAt(index) === 0x23  /* '#' */ ||
-                        source.charCodeAt(index) === 0x2D  /* '-' */ ||
-                        source.charCodeAt(index) === 0x7E  /* '~' */) {
-                    name += advance();
-                    name += scanIdentifier(last);
-                }
-            }
-
-            if (useBrackets) {
-                skipWhiteSpace(last);
-                // do we have a default value for this?
-                if (source.charCodeAt(index) === 0x3D  /* '=' */) {
-                    // consume the '='' symbol
-                    name += advance();
-                    skipWhiteSpace(last);
-
-                    var ch;
-                    var bracketDepth = 1;
-
-                    // scan in the default value
-                    while (index < last) {
-                        ch = source.charCodeAt(index);
-
-                        if (esutils.code.isWhiteSpace(ch)) {
-                            if (!insideString) {
-                                skipWhiteSpace(last);
-                                ch = source.charCodeAt(index);
-                            }
-                        }
-
-                        if (ch === 0x27 /* ''' */) {
-                            if (!insideString) {
-                                insideString = '\'';
-                            } else {
-                                if (insideString === '\'') {
-                                    insideString = '';
-                                }
-                            }
-                        }
-
-                        if (ch === 0x22 /* '"' */) {
-                            if (!insideString) {
-                                insideString = '"';
-                            } else {
-                                if (insideString === '"') {
-                                    insideString = '';
-                                }
-                            }
-                        }
-
-                        if (ch === 0x5B /* '[' */) {
-                            bracketDepth++;
-                        } else if (ch === 0x5D  /* ']' */ &&
-                            --bracketDepth === 0) {
-                            break;
-                        }
-
-                        name += advance();
-                    }
-                }
-
-                skipWhiteSpace(last);
-
-                if (index >= last || source.charCodeAt(index) !== 0x5D  /* ']' */) {
-                    // we never found a closing ']'
-                    return null;
-                }
-
-                // collect the last ']'
-                name += advance();
-            }
-
-            return name;
-        }
-
-        function skipToTag() {
-            while (index < length && source.charCodeAt(index) !== 0x40  /* '@' */) {
-                advance();
-            }
-            if (index >= length) {
-                return false;
-            }
-            utility.assert(source.charCodeAt(index) === 0x40  /* '@' */);
-            return true;
-        }
-
-        function convertIndex(rangeIndex) {
-            if (source === originalSource) {
-                return rangeIndex;
-            }
-            return convertUnwrappedCommentIndex(originalSource, rangeIndex);
-        }
-
-        function TagParser(options, title) {
-            this._options = options;
-            this._title = title.toLowerCase();
-            this._tag = {
-                title: title,
-                description: null
-            };
-            if (this._options.lineNumbers) {
-                this._tag.lineNumber = lineNumber;
-            }
-            this._first = index - title.length - 1;
-            this._last = 0;
-            // space to save special information for title parsers.
-            this._extra = { };
-        }
-
-        // addError(err, ...)
-        TagParser.prototype.addError = function addError(errorText) {
-            var args = Array.prototype.slice.call(arguments, 1),
-                msg = errorText.replace(
-                    /%(\d)/g,
-                    function (whole, index) {
-                        utility.assert(index < args.length, 'Message reference must be in range');
-                        return args[index];
-                    }
-                );
-
-            if (!this._tag.errors) {
-                this._tag.errors = [];
-            }
-            if (strict) {
-                utility.throwError(msg);
-            }
-            this._tag.errors.push(msg);
-            return recoverable;
-        };
-
-        TagParser.prototype.parseType = function () {
-            // type required titles
-            if (isTypeParameterRequired(this._title)) {
-                try {
-                    this._tag.type = parseType(this._title, this._last, this._options.range);
-                    if (!this._tag.type) {
-                        if (!isParamTitle(this._title) && !isReturnTitle(this._title)) {
-                            if (!this.addError('Missing or invalid tag type')) {
-                                return false;
-                            }
-                        }
-                    }
-                } catch (error) {
-                    this._tag.type = null;
-                    if (!this.addError(error.message)) {
-                        return false;
-                    }
-                }
-            } else if (isAllowedType(this._title)) {
-                // optional types
-                try {
-                    this._tag.type = parseType(this._title, this._last, this._options.range);
-                } catch (e) {
-                    //For optional types, lets drop the thrown error when we hit the end of the file
-                }
-            }
-            return true;
-        };
-
-        TagParser.prototype._parseNamePath = function (optional) {
-            var name;
-            name = parseName(this._last, sloppy && isAllowedOptional(this._title), true);
-            if (!name) {
-                if (!optional) {
-                    if (!this.addError('Missing or invalid tag name')) {
-                        return false;
-                    }
-                }
-            }
-            this._tag.name = name;
-            return true;
-        };
-
-        TagParser.prototype.parseNamePath = function () {
-            return this._parseNamePath(false);
-        };
-
-        TagParser.prototype.parseNamePathOptional = function () {
-            return this._parseNamePath(true);
-        };
-
-
-        TagParser.prototype.parseName = function () {
-            var assign, name;
-
-            // param, property requires name
-            if (isAllowedName(this._title)) {
-                this._tag.name = parseName(this._last, sloppy && isAllowedOptional(this._title), isAllowedNested(this._title));
-                if (!this._tag.name) {
-                    if (!isNameParameterRequired(this._title)) {
-                        return true;
-                    }
-
-                    // it's possible the name has already been parsed but interpreted as a type
-                    // it's also possible this is a sloppy declaration, in which case it will be
-                    // fixed at the end
-                    if (isParamTitle(this._title) && this._tag.type && this._tag.type.name) {
-                        this._extra.name = this._tag.type;
-                        this._tag.name = this._tag.type.name;
-                        this._tag.type = null;
-                    } else {
-                        if (!this.addError('Missing or invalid tag name')) {
-                            return false;
-                        }
-                    }
-                } else {
-                    name = this._tag.name;
-                    if (name.charAt(0) === '[' && name.charAt(name.length - 1) === ']') {
-                        // extract the default value if there is one
-                        // example: @param {string} [somebody=John Doe] description
-                        assign = name.substring(1, name.length - 1).split('=');
-                        if (assign.length > 1) {
-                            this._tag['default'] = assign.slice(1).join('=');
-                        }
-                        this._tag.name = assign[0];
-
-                        // convert to an optional type
-                        if (this._tag.type && this._tag.type.type !== 'OptionalType') {
-                            this._tag.type = {
-                                type: 'OptionalType',
-                                expression: this._tag.type
-                            };
-                        }
-                    }
-                }
-            }
-
-
-            return true;
-        };
-
-        TagParser.prototype.parseDescription = function parseDescription() {
-            var description = sliceSource(source, index, this._last).trim();
-            if (description) {
-                if ((/^-\s+/).test(description)) {
-                    description = description.substring(2);
-                }
-                this._tag.description = description;
-            }
-            return true;
-        };
-
-        TagParser.prototype.parseCaption = function parseDescription() {
-            var description = sliceSource(source, index, this._last).trim();
-            var captionStartTag = '<caption>';
-            var captionEndTag = '</caption>';
-            var captionStart = description.indexOf(captionStartTag);
-            var captionEnd = description.indexOf(captionEndTag);
-            if (captionStart >= 0 && captionEnd >= 0) {
-                this._tag.caption = description.substring(
-                    captionStart + captionStartTag.length, captionEnd).trim();
-                this._tag.description = description.substring(captionEnd + captionEndTag.length).trim();
-            } else {
-                this._tag.description = description;
-            }
-            return true;
-        };
-
-        TagParser.prototype.parseKind = function parseKind() {
-            var kind, kinds;
-            kinds = {
-                'class': true,
-                'constant': true,
-                'event': true,
-                'external': true,
-                'file': true,
-                'function': true,
-                'member': true,
-                'mixin': true,
-                'module': true,
-                'namespace': true,
-                'typedef': true
-            };
-            kind = sliceSource(source, index, this._last).trim();
-            this._tag.kind = kind;
-            if (!hasOwnProperty(kinds, kind)) {
-                if (!this.addError('Invalid kind name \'%0\'', kind)) {
-                    return false;
-                }
-            }
-            return true;
-        };
-
-        TagParser.prototype.parseAccess = function parseAccess() {
-            var access;
-            access = sliceSource(source, index, this._last).trim();
-            this._tag.access = access;
-            if (access !== 'private' && access !== 'protected' && access !== 'public') {
-                if (!this.addError('Invalid access name \'%0\'', access)) {
-                    return false;
-                }
-            }
-            return true;
-        };
-
-        TagParser.prototype.parseThis = function parseThis() {
-            // this name may be a name expression (e.g. {foo.bar}),
-            // an union (e.g. {foo.bar|foo.baz}) or a name path (e.g. foo.bar)
-            var value = sliceSource(source, index, this._last).trim();
-            if (value && value.charAt(0) === '{') {
-                var gotType = this.parseType();
-                if (gotType && this._tag.type.type === 'NameExpression' || this._tag.type.type === 'UnionType') {
-                    this._tag.name = this._tag.type.name;
-                    return true;
-                } else {
-                    return this.addError('Invalid name for this');
-                }
-            } else {
-                return this.parseNamePath();
-            }
-        };
-
-        TagParser.prototype.parseVariation = function parseVariation() {
-            var variation, text;
-            text = sliceSource(source, index, this._last).trim();
-            variation = parseFloat(text, 10);
-            this._tag.variation = variation;
-            if (isNaN(variation)) {
-                if (!this.addError('Invalid variation \'%0\'', text)) {
-                    return false;
-                }
-            }
-            return true;
-        };
-
-        TagParser.prototype.ensureEnd = function () {
-            var shouldBeEmpty = sliceSource(source, index, this._last).trim();
-            if (shouldBeEmpty) {
-                if (!this.addError('Unknown content \'%0\'', shouldBeEmpty)) {
-                    return false;
-                }
-            }
-            return true;
-        };
-
-        TagParser.prototype.epilogue = function epilogue() {
-            var description;
-
-            description = this._tag.description;
-            // un-fix potentially sloppy declaration
-            if (isAllowedOptional(this._title) && !this._tag.type && description && description.charAt(0) === '[') {
-                this._tag.type = this._extra.name;
-                if (!this._tag.name) {
-                    this._tag.name = undefined;
-                }
-
-                if (!sloppy) {
-                    if (!this.addError('Missing or invalid tag name')) {
-                        return false;
-                    }
-                }
-            }
-
-            return true;
-        };
-
-        Rules = {
-            // http://usejsdoc.org/tags-access.html
-            'access': ['parseAccess'],
-            // http://usejsdoc.org/tags-alias.html
-            'alias': ['parseNamePath', 'ensureEnd'],
-            // http://usejsdoc.org/tags-augments.html
-            'augments': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-constructor.html
-            'constructor': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // Synonym: http://usejsdoc.org/tags-constructor.html
-            'class': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // Synonym: http://usejsdoc.org/tags-extends.html
-            'extends': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-example.html
-            'example': ['parseCaption'],
-            // http://usejsdoc.org/tags-deprecated.html
-            'deprecated': ['parseDescription'],
-            // http://usejsdoc.org/tags-global.html
-            'global': ['ensureEnd'],
-            // http://usejsdoc.org/tags-inner.html
-            'inner': ['ensureEnd'],
-            // http://usejsdoc.org/tags-instance.html
-            'instance': ['ensureEnd'],
-            // http://usejsdoc.org/tags-kind.html
-            'kind': ['parseKind'],
-            // http://usejsdoc.org/tags-mixes.html
-            'mixes': ['parseNamePath', 'ensureEnd'],
-            // http://usejsdoc.org/tags-mixin.html
-            'mixin': ['parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-member.html
-            'member': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-method.html
-            'method': ['parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-module.html
-            'module': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // Synonym: http://usejsdoc.org/tags-method.html
-            'func': ['parseNamePathOptional', 'ensureEnd'],
-            // Synonym: http://usejsdoc.org/tags-method.html
-            'function': ['parseNamePathOptional', 'ensureEnd'],
-            // Synonym: http://usejsdoc.org/tags-member.html
-            'var': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-name.html
-            'name': ['parseNamePath', 'ensureEnd'],
-            // http://usejsdoc.org/tags-namespace.html
-            'namespace': ['parseType', 'parseNamePathOptional', 'ensureEnd'],
-            // http://usejsdoc.org/tags-private.html
-            'private': ['parseType', 'parseDescription'],
-            // http://usejsdoc.org/tags-protected.html
-            'protected': ['parseType', 'parseDescription'],
-            // http://usejsdoc.org/tags-public.html
-            'public': ['parseType', 'parseDescription'],
-            // http://usejsdoc.org/tags-readonly.html
-            'readonly': ['ensureEnd'],
-            // http://usejsdoc.org/tags-requires.html
-            'requires': ['parseNamePath', 'ensureEnd'],
-            // http://usejsdoc.org/tags-since.html
-            'since': ['parseDescription'],
-            // http://usejsdoc.org/tags-static.html
-            'static': ['ensureEnd'],
-            // http://usejsdoc.org/tags-summary.html
-            'summary': ['parseDescription'],
-            // http://usejsdoc.org/tags-this.html
-            'this': ['parseThis', 'ensureEnd'],
-            // http://usejsdoc.org/tags-todo.html
-            'todo': ['parseDescription'],
-            // http://usejsdoc.org/tags-typedef.html
-            'typedef': ['parseType', 'parseNamePathOptional'],
-            // http://usejsdoc.org/tags-variation.html
-            'variation': ['parseVariation'],
-            // http://usejsdoc.org/tags-version.html
-            'version': ['parseDescription']
-        };
-
-        TagParser.prototype.parse = function parse() {
-            var i, iz, sequences, method;
-
-
-            // empty title
-            if (!this._title) {
-                if (!this.addError('Missing or invalid title')) {
-                    return null;
-                }
-            }
-
-            // Seek to content last index.
-            this._last = seekContent(this._title);
-
-            if (this._options.range) {
-                this._tag.range = [this._first, source.slice(0, this._last).replace(/\s*$/, '').length].map(convertIndex);
-            }
-
-            if (hasOwnProperty(Rules, this._title)) {
-                sequences = Rules[this._title];
-            } else {
-                // default sequences
-                sequences = ['parseType', 'parseName', 'parseDescription', 'epilogue'];
-            }
-
-            for (i = 0, iz = sequences.length; i < iz; ++i) {
-                method = sequences[i];
-                if (!this[method]()) {
-                    return null;
-                }
-            }
-
-            return this._tag;
-        };
-
-        function parseTag(options) {
-            var title, parser, tag;
-
-            // skip to tag
-            if (!skipToTag()) {
-                return null;
-            }
-
-            // scan title
-            title = scanTitle();
-
-            // construct tag parser
-            parser = new TagParser(options, title);
-            tag = parser.parse();
-
-            // Seek global index to end of this tag.
-            while (index < parser._last) {
-                advance();
-            }
-
-            return tag;
-        }
-
-        //
-        // Parse JSDoc
-        //
-
-        function scanJSDocDescription(preserveWhitespace) {
-            var description = '', ch, atAllowed;
-
-            atAllowed = true;
-            while (index < length) {
-                ch = source.charCodeAt(index);
-
-                if (atAllowed && ch === 0x40  /* '@' */) {
-                    break;
-                }
-
-                if (esutils.code.isLineTerminator(ch)) {
-                    atAllowed = true;
-                } else if (atAllowed && !esutils.code.isWhiteSpace(ch)) {
-                    atAllowed = false;
-                }
-
-                description += advance();
-            }
-
-            return preserveWhitespace ? description : description.trim();
-        }
-
-        function parse(comment, options) {
-            var tags = [], tag, description, interestingTags, i, iz;
-
-            if (options === undefined) {
-                options = {};
-            }
-
-            if (typeof options.unwrap === 'boolean' && options.unwrap) {
-                source = unwrapComment(comment);
-            } else {
-                source = comment;
-            }
-
-            originalSource = comment;
-
-            // array of relevant tags
-            if (options.tags) {
-                if (Array.isArray(options.tags)) {
-                    interestingTags = { };
-                    for (i = 0, iz = options.tags.length; i < iz; i++) {
-                        if (typeof options.tags[i] === 'string') {
-                            interestingTags[options.tags[i]] = true;
-                        } else {
-                            utility.throwError('Invalid "tags" parameter: ' + options.tags);
-                        }
-                    }
-                } else {
-                    utility.throwError('Invalid "tags" parameter: ' + options.tags);
-                }
-            }
-
-            length = source.length;
-            index = 0;
-            lineNumber = 0;
-            recoverable = options.recoverable;
-            sloppy = options.sloppy;
-            strict = options.strict;
-
-            description = scanJSDocDescription(options.preserveWhitespace);
-
-            while (true) {
-                tag = parseTag(options);
-                if (!tag) {
-                    break;
-                }
-                if (!interestingTags || interestingTags.hasOwnProperty(tag.title)) {
-                    tags.push(tag);
-                }
-            }
-
-            return {
-                description: description,
-                tags: tags
-            };
-        }
-        exports.parse = parse;
-    }(jsdoc = {}));
-
-    exports.version = utility.VERSION;
-    exports.parse = jsdoc.parse;
-    exports.parseType = typed.parseType;
-    exports.parseParamType = typed.parseParamType;
-    exports.unwrapComment = unwrapComment;
-    exports.Syntax = shallowCopy(typed.Syntax);
-    exports.Error = utility.DoctrineError;
-    exports.type = {
-        Syntax: exports.Syntax,
-        parseType: typed.parseType,
-        parseParamType: typed.parseParamType,
-        stringify: typed.stringify
-    };
-}());
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/typed.js b/node_modules/eslint-plugin-react/node_modules/doctrine/lib/typed.js
deleted file mode 100644
index bdd3c39..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/typed.js
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*
- * @fileoverview Type expression parser.
- * @author Yusuke Suzuki <utatane.tea@gmail.com>
- * @author Dan Tao <daniel.tao@gmail.com>
- * @author Andrew Eisenberg <andrew@eisenberg.as>
- */
-
-// "typed", the Type Expression Parser for doctrine.
-
-(function () {
-    'use strict';
-
-    var Syntax,
-        Token,
-        source,
-        length,
-        index,
-        previous,
-        token,
-        value,
-        esutils,
-        utility,
-        rangeOffset,
-        addRange;
-
-    esutils = require('esutils');
-    utility = require('./utility');
-
-    Syntax = {
-        NullableLiteral: 'NullableLiteral',
-        AllLiteral: 'AllLiteral',
-        NullLiteral: 'NullLiteral',
-        UndefinedLiteral: 'UndefinedLiteral',
-        VoidLiteral: 'VoidLiteral',
-        UnionType: 'UnionType',
-        ArrayType: 'ArrayType',
-        RecordType: 'RecordType',
-        FieldType: 'FieldType',
-        FunctionType: 'FunctionType',
-        ParameterType: 'ParameterType',
-        RestType: 'RestType',
-        NonNullableType: 'NonNullableType',
-        OptionalType: 'OptionalType',
-        NullableType: 'NullableType',
-        NameExpression: 'NameExpression',
-        TypeApplication: 'TypeApplication',
-        StringLiteralType: 'StringLiteralType',
-        NumericLiteralType: 'NumericLiteralType',
-        BooleanLiteralType: 'BooleanLiteralType'
-    };
-
-    Token = {
-        ILLEGAL: 0,    // ILLEGAL
-        DOT_LT: 1,     // .<
-        REST: 2,       // ...
-        LT: 3,         // <
-        GT: 4,         // >
-        LPAREN: 5,     // (
-        RPAREN: 6,     // )
-        LBRACE: 7,     // {
-        RBRACE: 8,     // }
-        LBRACK: 9,    // [
-        RBRACK: 10,    // ]
-        COMMA: 11,     // ,
-        COLON: 12,     // :
-        STAR: 13,      // *
-        PIPE: 14,      // |
-        QUESTION: 15,  // ?
-        BANG: 16,      // !
-        EQUAL: 17,     // =
-        NAME: 18,      // name token
-        STRING: 19,    // string
-        NUMBER: 20,    // number
-        EOF: 21
-    };
-
-    function isTypeName(ch) {
-        return '><(){}[],:*|?!='.indexOf(String.fromCharCode(ch)) === -1 && !esutils.code.isWhiteSpace(ch) && !esutils.code.isLineTerminator(ch);
-    }
-
-    function Context(previous, index, token, value) {
-        this._previous = previous;
-        this._index = index;
-        this._token = token;
-        this._value = value;
-    }
-
-    Context.prototype.restore = function () {
-        previous = this._previous;
-        index = this._index;
-        token = this._token;
-        value = this._value;
-    };
-
-    Context.save = function () {
-        return new Context(previous, index, token, value);
-    };
-
-    function maybeAddRange(node, range) {
-        if (addRange) {
-            node.range = [range[0] + rangeOffset, range[1] + rangeOffset];
-        }
-        return node;
-    }
-
-    function advance() {
-        var ch = source.charAt(index);
-        index += 1;
-        return ch;
-    }
-
-    function scanHexEscape(prefix) {
-        var i, len, ch, code = 0;
-
-        len = (prefix === 'u') ? 4 : 2;
-        for (i = 0; i < len; ++i) {
-            if (index < length && esutils.code.isHexDigit(source.charCodeAt(index))) {
-                ch = advance();
-                code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());
-            } else {
-                return '';
-            }
-        }
-        return String.fromCharCode(code);
-    }
-
-    function scanString() {
-        var str = '', quote, ch, code, unescaped, restore; //TODO review removal octal = false
-        quote = source.charAt(index);
-        ++index;
-
-        while (index < length) {
-            ch = advance();
-
-            if (ch === quote) {
-                quote = '';
-                break;
-            } else if (ch === '\\') {
-                ch = advance();
-                if (!esutils.code.isLineTerminator(ch.charCodeAt(0))) {
-                    switch (ch) {
-                    case 'n':
-                        str += '\n';
-                        break;
-                    case 'r':
-                        str += '\r';
-                        break;
-                    case 't':
-                        str += '\t';
-                        break;
-                    case 'u':
-                    case 'x':
-                        restore = index;
-                        unescaped = scanHexEscape(ch);
-                        if (unescaped) {
-                            str += unescaped;
-                        } else {
-                            index = restore;
-                            str += ch;
-                        }
-                        break;
-                    case 'b':
-                        str += '\b';
-                        break;
-                    case 'f':
-                        str += '\f';
-                        break;
-                    case 'v':
-                        str += '\v';
-                        break;
-
-                    default:
-                        if (esutils.code.isOctalDigit(ch.charCodeAt(0))) {
-                            code = '01234567'.indexOf(ch);
-
-                            // \0 is not octal escape sequence
-                            // Deprecating unused code. TODO review removal
-                            //if (code !== 0) {
-                            //    octal = true;
-                            //}
-
-                            if (index < length && esutils.code.isOctalDigit(source.charCodeAt(index))) {
-                                //TODO Review Removal octal = true;
-                                code = code * 8 + '01234567'.indexOf(advance());
-
-                                // 3 digits are only allowed when string starts
-                                // with 0, 1, 2, 3
-                                if ('0123'.indexOf(ch) >= 0 &&
-                                        index < length &&
-                                        esutils.code.isOctalDigit(source.charCodeAt(index))) {
-                                    code = code * 8 + '01234567'.indexOf(advance());
-                                }
-                            }
-                            str += String.fromCharCode(code);
-                        } else {
-                            str += ch;
-                        }
-                        break;
-                    }
-                } else {
-                    if (ch ===  '\r' && source.charCodeAt(index) === 0x0A  /* '\n' */) {
-                        ++index;
-                    }
-                }
-            } else if (esutils.code.isLineTerminator(ch.charCodeAt(0))) {
-                break;
-            } else {
-                str += ch;
-            }
-        }
-
-        if (quote !== '') {
-            utility.throwError('unexpected quote');
-        }
-
-        value = str;
-        return Token.STRING;
-    }
-
-    function scanNumber() {
-        var number, ch;
-
-        number = '';
-        ch = source.charCodeAt(index);
-
-        if (ch !== 0x2E  /* '.' */) {
-            number = advance();
-            ch = source.charCodeAt(index);
-
-            if (number === '0') {
-                if (ch === 0x78  /* 'x' */ || ch === 0x58  /* 'X' */) {
-                    number += advance();
-                    while (index < length) {
-                        ch = source.charCodeAt(index);
-                        if (!esutils.code.isHexDigit(ch)) {
-                            break;
-                        }
-                        number += advance();
-                    }
-
-                    if (number.length <= 2) {
-                        // only 0x
-                        utility.throwError('unexpected token');
-                    }
-
-                    if (index < length) {
-                        ch = source.charCodeAt(index);
-                        if (esutils.code.isIdentifierStartES5(ch)) {
-                            utility.throwError('unexpected token');
-                        }
-                    }
-                    value = parseInt(number, 16);
-                    return Token.NUMBER;
-                }
-
-                if (esutils.code.isOctalDigit(ch)) {
-                    number += advance();
-                    while (index < length) {
-                        ch = source.charCodeAt(index);
-                        if (!esutils.code.isOctalDigit(ch)) {
-                            break;
-                        }
-                        number += advance();
-                    }
-
-                    if (index < length) {
-                        ch = source.charCodeAt(index);
-                        if (esutils.code.isIdentifierStartES5(ch) || esutils.code.isDecimalDigit(ch)) {
-                            utility.throwError('unexpected token');
-                        }
-                    }
-                    value = parseInt(number, 8);
-                    return Token.NUMBER;
-                }
-
-                if (esutils.code.isDecimalDigit(ch)) {
-                    utility.throwError('unexpected token');
-                }
-            }
-
-            while (index < length) {
-                ch = source.charCodeAt(index);
-                if (!esutils.code.isDecimalDigit(ch)) {
-                    break;
-                }
-                number += advance();
-            }
-        }
-
-        if (ch === 0x2E  /* '.' */) {
-            number += advance();
-            while (index < length) {
-                ch = source.charCodeAt(index);
-                if (!esutils.code.isDecimalDigit(ch)) {
-                    break;
-                }
-                number += advance();
-            }
-        }
-
-        if (ch === 0x65  /* 'e' */ || ch === 0x45  /* 'E' */) {
-            number += advance();
-
-            ch = source.charCodeAt(index);
-            if (ch === 0x2B  /* '+' */ || ch === 0x2D  /* '-' */) {
-                number += advance();
-            }
-
-            ch = source.charCodeAt(index);
-            if (esutils.code.isDecimalDigit(ch)) {
-                number += advance();
-                while (index < length) {
-                    ch = source.charCodeAt(index);
-                    if (!esutils.code.isDecimalDigit(ch)) {
-                        break;
-                    }
-                    number += advance();
-                }
-            } else {
-                utility.throwError('unexpected token');
-            }
-        }
-
-        if (index < length) {
-            ch = source.charCodeAt(index);
-            if (esutils.code.isIdentifierStartES5(ch)) {
-                utility.throwError('unexpected token');
-            }
-        }
-
-        value = parseFloat(number);
-        return Token.NUMBER;
-    }
-
-
-    function scanTypeName() {
-        var ch, ch2;
-
-        value = advance();
-        while (index < length && isTypeName(source.charCodeAt(index))) {
-            ch = source.charCodeAt(index);
-            if (ch === 0x2E  /* '.' */) {
-                if ((index + 1) >= length) {
-                    return Token.ILLEGAL;
-                }
-                ch2 = source.charCodeAt(index + 1);
-                if (ch2 === 0x3C  /* '<' */) {
-                    break;
-                }
-            }
-            value += advance();
-        }
-        return Token.NAME;
-    }
-
-    function next() {
-        var ch;
-
-        previous = index;
-
-        while (index < length && esutils.code.isWhiteSpace(source.charCodeAt(index))) {
-            advance();
-        }
-        if (index >= length) {
-            token = Token.EOF;
-            return token;
-        }
-
-        ch = source.charCodeAt(index);
-        switch (ch) {
-        case 0x27:  /* ''' */
-        case 0x22:  /* '"' */
-            token = scanString();
-            return token;
-
-        case 0x3A:  /* ':' */
-            advance();
-            token = Token.COLON;
-            return token;
-
-        case 0x2C:  /* ',' */
-            advance();
-            token = Token.COMMA;
-            return token;
-
-        case 0x28:  /* '(' */
-            advance();
-            token = Token.LPAREN;
-            return token;
-
-        case 0x29:  /* ')' */
-            advance();
-            token = Token.RPAREN;
-            return token;
-
-        case 0x5B:  /* '[' */
-            advance();
-            token = Token.LBRACK;
-            return token;
-
-        case 0x5D:  /* ']' */
-            advance();
-            token = Token.RBRACK;
-            return token;
-
-        case 0x7B:  /* '{' */
-            advance();
-            token = Token.LBRACE;
-            return token;
-
-        case 0x7D:  /* '}' */
-            advance();
-            token = Token.RBRACE;
-            return token;
-
-        case 0x2E:  /* '.' */
-            if (index + 1 < length) {
-                ch = source.charCodeAt(index + 1);
-                if (ch === 0x3C  /* '<' */) {
-                    advance();  // '.'
-                    advance();  // '<'
-                    token = Token.DOT_LT;
-                    return token;
-                }
-
-                if (ch === 0x2E  /* '.' */ && index + 2 < length && source.charCodeAt(index + 2) === 0x2E  /* '.' */) {
-                    advance();  // '.'
-                    advance();  // '.'
-                    advance();  // '.'
-                    token = Token.REST;
-                    return token;
-                }
-
-                if (esutils.code.isDecimalDigit(ch)) {
-                    token = scanNumber();
-                    return token;
-                }
-            }
-            token = Token.ILLEGAL;
-            return token;
-
-        case 0x3C:  /* '<' */
-            advance();
-            token = Token.LT;
-            return token;
-
-        case 0x3E:  /* '>' */
-            advance();
-            token = Token.GT;
-            return token;
-
-        case 0x2A:  /* '*' */
-            advance();
-            token = Token.STAR;
-            return token;
-
-        case 0x7C:  /* '|' */
-            advance();
-            token = Token.PIPE;
-            return token;
-
-        case 0x3F:  /* '?' */
-            advance();
-            token = Token.QUESTION;
-            return token;
-
-        case 0x21:  /* '!' */
-            advance();
-            token = Token.BANG;
-            return token;
-
-        case 0x3D:  /* '=' */
-            advance();
-            token = Token.EQUAL;
-            return token;
-
-        case 0x2D: /* '-' */
-            token = scanNumber();
-            return token;
-
-        default:
-            if (esutils.code.isDecimalDigit(ch)) {
-                token = scanNumber();
-                return token;
-            }
-
-            // type string permits following case,
-            //
-            // namespace.module.MyClass
-            //
-            // this reduced 1 token TK_NAME
-            utility.assert(isTypeName(ch));
-            token = scanTypeName();
-            return token;
-        }
-    }
-
-    function consume(target, text) {
-        utility.assert(token === target, text || 'consumed token not matched');
-        next();
-    }
-
-    function expect(target, message) {
-        if (token !== target) {
-            utility.throwError(message || 'unexpected token');
-        }
-        next();
-    }
-
-    // UnionType := '(' TypeUnionList ')'
-    //
-    // TypeUnionList :=
-    //     <<empty>>
-    //   | NonemptyTypeUnionList
-    //
-    // NonemptyTypeUnionList :=
-    //     TypeExpression
-    //   | TypeExpression '|' NonemptyTypeUnionList
-    function parseUnionType() {
-        var elements, startIndex = index - 1;
-        consume(Token.LPAREN, 'UnionType should start with (');
-        elements = [];
-        if (token !== Token.RPAREN) {
-            while (true) {
-                elements.push(parseTypeExpression());
-                if (token === Token.RPAREN) {
-                    break;
-                }
-                expect(Token.PIPE);
-            }
-        }
-        consume(Token.RPAREN, 'UnionType should end with )');
-        return maybeAddRange({
-            type: Syntax.UnionType,
-            elements: elements
-        }, [startIndex, previous]);
-    }
-
-    // ArrayType := '[' ElementTypeList ']'
-    //
-    // ElementTypeList :=
-    //     <<empty>>
-    //  | TypeExpression
-    //  | '...' TypeExpression
-    //  | TypeExpression ',' ElementTypeList
-    function parseArrayType() {
-        var elements, startIndex = index - 1, restStartIndex;
-        consume(Token.LBRACK, 'ArrayType should start with [');
-        elements = [];
-        while (token !== Token.RBRACK) {
-            if (token === Token.REST) {
-                restStartIndex = index - 3;
-                consume(Token.REST);
-                elements.push(maybeAddRange({
-                    type: Syntax.RestType,
-                    expression: parseTypeExpression()
-                }, [restStartIndex, previous]));
-                break;
-            } else {
-                elements.push(parseTypeExpression());
-            }
-            if (token !== Token.RBRACK) {
-                expect(Token.COMMA);
-            }
-        }
-        expect(Token.RBRACK);
-        return maybeAddRange({
-            type: Syntax.ArrayType,
-            elements: elements
-        }, [startIndex, previous]);
-    }
-
-    function parseFieldName() {
-        var v = value;
-        if (token === Token.NAME || token === Token.STRING) {
-            next();
-            return v;
-        }
-
-        if (token === Token.NUMBER) {
-            consume(Token.NUMBER);
-            return String(v);
-        }
-
-        utility.throwError('unexpected token');
-    }
-
-    // FieldType :=
-    //     FieldName
-    //   | FieldName ':' TypeExpression
-    //
-    // FieldName :=
-    //     NameExpression
-    //   | StringLiteral
-    //   | NumberLiteral
-    //   | ReservedIdentifier
-    function parseFieldType() {
-        var key, rangeStart = previous;
-
-        key = parseFieldName();
-        if (token === Token.COLON) {
-            consume(Token.COLON);
-            return maybeAddRange({
-                type: Syntax.FieldType,
-                key: key,
-                value: parseTypeExpression()
-            }, [rangeStart, previous]);
-        }
-        return maybeAddRange({
-            type: Syntax.FieldType,
-            key: key,
-            value: null
-        }, [rangeStart, previous]);
-    }
-
-    // RecordType := '{' FieldTypeList '}'
-    //
-    // FieldTypeList :=
-    //     <<empty>>
-    //   | FieldType
-    //   | FieldType ',' FieldTypeList
-    function parseRecordType() {
-        var fields, rangeStart = index - 1, rangeEnd;
-
-        consume(Token.LBRACE, 'RecordType should start with {');
-        fields = [];
-        if (token === Token.COMMA) {
-            consume(Token.COMMA);
-        } else {
-            while (token !== Token.RBRACE) {
-                fields.push(parseFieldType());
-                if (token !== Token.RBRACE) {
-                    expect(Token.COMMA);
-                }
-            }
-        }
-        rangeEnd = index;
-        expect(Token.RBRACE);
-        return maybeAddRange({
-            type: Syntax.RecordType,
-            fields: fields
-        }, [rangeStart, rangeEnd]);
-    }
-
-    // NameExpression :=
-    //    Identifier
-    //  | TagIdentifier ':' Identifier
-    //
-    // Tag identifier is one of "module", "external" or "event"
-    // Identifier is the same as Token.NAME, including any dots, something like
-    // namespace.module.MyClass
-    function parseNameExpression() {
-        var name = value, rangeStart = index - name.length;
-        expect(Token.NAME);
-
-        if (token === Token.COLON && (
-                name === 'module' ||
-                name === 'external' ||
-                name === 'event')) {
-            consume(Token.COLON);
-            name += ':' + value;
-            expect(Token.NAME);
-        }
-
-        return maybeAddRange({
-            type: Syntax.NameExpression,
-            name: name
-        }, [rangeStart, previous]);
-    }
-
-    // TypeExpressionList :=
-    //     TopLevelTypeExpression
-    //   | TopLevelTypeExpression ',' TypeExpressionList
-    function parseTypeExpressionList() {
-        var elements = [];
-
-        elements.push(parseTop());
-        while (token === Token.COMMA) {
-            consume(Token.COMMA);
-            elements.push(parseTop());
-        }
-        return elements;
-    }
-
-    // TypeName :=
-    //     NameExpression
-    //   | NameExpression TypeApplication
-    //
-    // TypeApplication :=
-    //     '.<' TypeExpressionList '>'
-    //   | '<' TypeExpressionList '>'   // this is extension of doctrine
-    function parseTypeName() {
-        var expr, applications, startIndex = index - value.length;
-
-        expr = parseNameExpression();
-        if (token === Token.DOT_LT || token === Token.LT) {
-            next();
-            applications = parseTypeExpressionList();
-            expect(Token.GT);
-            return maybeAddRange({
-                type: Syntax.TypeApplication,
-                expression: expr,
-                applications: applications
-            }, [startIndex, previous]);
-        }
-        return expr;
-    }
-
-    // ResultType :=
-    //     <<empty>>
-    //   | ':' void
-    //   | ':' TypeExpression
-    //
-    // BNF is above
-    // but, we remove <<empty>> pattern, so token is always TypeToken::COLON
-    function parseResultType() {
-        consume(Token.COLON, 'ResultType should start with :');
-        if (token === Token.NAME && value === 'void') {
-            consume(Token.NAME);
-            return {
-                type: Syntax.VoidLiteral
-            };
-        }
-        return parseTypeExpression();
-    }
-
-    // ParametersType :=
-    //     RestParameterType
-    //   | NonRestParametersType
-    //   | NonRestParametersType ',' RestParameterType
-    //
-    // RestParameterType :=
-    //     '...'
-    //     '...' Identifier
-    //
-    // NonRestParametersType :=
-    //     ParameterType ',' NonRestParametersType
-    //   | ParameterType
-    //   | OptionalParametersType
-    //
-    // OptionalParametersType :=
-    //     OptionalParameterType
-    //   | OptionalParameterType, OptionalParametersType
-    //
-    // OptionalParameterType := ParameterType=
-    //
-    // ParameterType := TypeExpression | Identifier ':' TypeExpression
-    //
-    // Identifier is "new" or "this"
-    function parseParametersType() {
-        var params = [], optionalSequence = false, expr, rest = false, startIndex, restStartIndex = index - 3, nameStartIndex;
-
-        while (token !== Token.RPAREN) {
-            if (token === Token.REST) {
-                // RestParameterType
-                consume(Token.REST);
-                rest = true;
-            }
-
-            startIndex = previous;
-
-            expr = parseTypeExpression();
-            if (expr.type === Syntax.NameExpression && token === Token.COLON) {
-                nameStartIndex = previous - expr.name.length;
-                // Identifier ':' TypeExpression
-                consume(Token.COLON);
-                expr = maybeAddRange({
-                    type: Syntax.ParameterType,
-                    name: expr.name,
-                    expression: parseTypeExpression()
-                }, [nameStartIndex, previous]);
-            }
-            if (token === Token.EQUAL) {
-                consume(Token.EQUAL);
-                expr = maybeAddRange({
-                    type: Syntax.OptionalType,
-                    expression: expr
-                }, [startIndex, previous]);
-                optionalSequence = true;
-            } else {
-                if (optionalSequence) {
-                    utility.throwError('unexpected token');
-                }
-            }
-            if (rest) {
-                expr = maybeAddRange({
-                    type: Syntax.RestType,
-                    expression: expr
-                }, [restStartIndex, previous]);
-            }
-            params.push(expr);
-            if (token !== Token.RPAREN) {
-                expect(Token.COMMA);
-            }
-        }
-        return params;
-    }
-
-    // FunctionType := 'function' FunctionSignatureType
-    //
-    // FunctionSignatureType :=
-    //   | TypeParameters '(' ')' ResultType
-    //   | TypeParameters '(' ParametersType ')' ResultType
-    //   | TypeParameters '(' 'this' ':' TypeName ')' ResultType
-    //   | TypeParameters '(' 'this' ':' TypeName ',' ParametersType ')' ResultType
-    function parseFunctionType() {
-        var isNew, thisBinding, params, result, fnType, startIndex = index - value.length;
-        utility.assert(token === Token.NAME && value === 'function', 'FunctionType should start with \'function\'');
-        consume(Token.NAME);
-
-        // Google Closure Compiler is not implementing TypeParameters.
-        // So we do not. if we don't get '(', we see it as error.
-        expect(Token.LPAREN);
-
-        isNew = false;
-        params = [];
-        thisBinding = null;
-        if (token !== Token.RPAREN) {
-            // ParametersType or 'this'
-            if (token === Token.NAME &&
-                    (value === 'this' || value === 'new')) {
-                // 'this' or 'new'
-                // 'new' is Closure Compiler extension
-                isNew = value === 'new';
-                consume(Token.NAME);
-                expect(Token.COLON);
-                thisBinding = parseTypeName();
-                if (token === Token.COMMA) {
-                    consume(Token.COMMA);
-                    params = parseParametersType();
-                }
-            } else {
-                params = parseParametersType();
-            }
-        }
-
-        expect(Token.RPAREN);
-
-        result = null;
-        if (token === Token.COLON) {
-            result = parseResultType();
-        }
-
-        fnType = maybeAddRange({
-            type: Syntax.FunctionType,
-            params: params,
-            result: result
-        }, [startIndex, previous]);
-        if (thisBinding) {
-            // avoid adding null 'new' and 'this' properties
-            fnType['this'] = thisBinding;
-            if (isNew) {
-                fnType['new'] = true;
-            }
-        }
-        return fnType;
-    }
-
-    // BasicTypeExpression :=
-    //     '*'
-    //   | 'null'
-    //   | 'undefined'
-    //   | TypeName
-    //   | FunctionType
-    //   | UnionType
-    //   | RecordType
-    //   | ArrayType
-    function parseBasicTypeExpression() {
-        var context, startIndex;
-        switch (token) {
-        case Token.STAR:
-            consume(Token.STAR);
-            return maybeAddRange({
-                type: Syntax.AllLiteral
-            }, [previous - 1, previous]);
-
-        case Token.LPAREN:
-            return parseUnionType();
-
-        case Token.LBRACK:
-            return parseArrayType();
-
-        case Token.LBRACE:
-            return parseRecordType();
-
-        case Token.NAME:
-            startIndex = index - value.length;
-
-            if (value === 'null') {
-                consume(Token.NAME);
-                return maybeAddRange({
-                    type: Syntax.NullLiteral
-                }, [startIndex, previous]);
-            }
-
-            if (value === 'undefined') {
-                consume(Token.NAME);
-                return maybeAddRange({
-                    type: Syntax.UndefinedLiteral
-                }, [startIndex, previous]);
-            }
-
-            if (value === 'true' || value === 'false') {
-                consume(Token.NAME);
-                return maybeAddRange({
-                    type: Syntax.BooleanLiteralType,
-                    value: value === 'true'
-                }, [startIndex, previous]);
-            }
-
-            context = Context.save();
-            if (value === 'function') {
-                try {
-                    return parseFunctionType();
-                } catch (e) {
-                    context.restore();
-                }
-            }
-
-            return parseTypeName();
-
-        case Token.STRING:
-            next();
-            return maybeAddRange({
-                type: Syntax.StringLiteralType,
-                value: value
-            }, [previous - value.length - 2, previous]);
-
-        case Token.NUMBER:
-            next();
-            return maybeAddRange({
-                type: Syntax.NumericLiteralType,
-                value: value
-            }, [previous - String(value).length, previous]);
-
-        default:
-            utility.throwError('unexpected token');
-        }
-    }
-
-    // TypeExpression :=
-    //     BasicTypeExpression
-    //   | '?' BasicTypeExpression
-    //   | '!' BasicTypeExpression
-    //   | BasicTypeExpression '?'
-    //   | BasicTypeExpression '!'
-    //   | '?'
-    //   | BasicTypeExpression '[]'
-    function parseTypeExpression() {
-        var expr, rangeStart;
-
-        if (token === Token.QUESTION) {
-            rangeStart = index - 1;
-            consume(Token.QUESTION);
-            if (token === Token.COMMA || token === Token.EQUAL || token === Token.RBRACE ||
-                    token === Token.RPAREN || token === Token.PIPE || token === Token.EOF ||
-                    token === Token.RBRACK || token === Token.GT) {
-                return maybeAddRange({
-                    type: Syntax.NullableLiteral
-                }, [rangeStart, previous]);
-            }
-            return maybeAddRange({
-                type: Syntax.NullableType,
-                expression: parseBasicTypeExpression(),
-                prefix: true
-            }, [rangeStart, previous]);
-        } else if (token === Token.BANG) {
-            rangeStart = index - 1;
-            consume(Token.BANG);
-            return maybeAddRange({
-                type: Syntax.NonNullableType,
-                expression: parseBasicTypeExpression(),
-                prefix: true
-            }, [rangeStart, previous]);
-        } else {
-            rangeStart = previous;
-        }
-
-        expr = parseBasicTypeExpression();
-        if (token === Token.BANG) {
-            consume(Token.BANG);
-            return maybeAddRange({
-                type: Syntax.NonNullableType,
-                expression: expr,
-                prefix: false
-            }, [rangeStart, previous]);
-        }
-
-        if (token === Token.QUESTION) {
-            consume(Token.QUESTION);
-            return maybeAddRange({
-                type: Syntax.NullableType,
-                expression: expr,
-                prefix: false
-            }, [rangeStart, previous]);
-        }
-
-        if (token === Token.LBRACK) {
-            consume(Token.LBRACK);
-            expect(Token.RBRACK, 'expected an array-style type declaration (' + value + '[])');
-            return maybeAddRange({
-                type: Syntax.TypeApplication,
-                expression: maybeAddRange({
-                    type: Syntax.NameExpression,
-                    name: 'Array'
-                }, [rangeStart, previous]),
-                applications: [expr]
-            }, [rangeStart, previous]);
-        }
-
-        return expr;
-    }
-
-    // TopLevelTypeExpression :=
-    //      TypeExpression
-    //    | TypeUnionList
-    //
-    // This rule is Google Closure Compiler extension, not ES4
-    // like,
-    //   { number | string }
-    // If strict to ES4, we should write it as
-    //   { (number|string) }
-    function parseTop() {
-        var expr, elements;
-
-        expr = parseTypeExpression();
-        if (token !== Token.PIPE) {
-            return expr;
-        }
-
-        elements = [expr];
-        consume(Token.PIPE);
-        while (true) {
-            elements.push(parseTypeExpression());
-            if (token !== Token.PIPE) {
-                break;
-            }
-            consume(Token.PIPE);
-        }
-
-        return maybeAddRange({
-            type: Syntax.UnionType,
-            elements: elements
-        }, [0, index]);
-    }
-
-    function parseTopParamType() {
-        var expr;
-
-        if (token === Token.REST) {
-            consume(Token.REST);
-            return maybeAddRange({
-                type: Syntax.RestType,
-                expression: parseTop()
-            }, [0, index]);
-        }
-
-        expr = parseTop();
-        if (token === Token.EQUAL) {
-            consume(Token.EQUAL);
-            return maybeAddRange({
-                type: Syntax.OptionalType,
-                expression: expr
-            }, [0, index]);
-        }
-
-        return expr;
-    }
-
-    function parseType(src, opt) {
-        var expr;
-
-        source = src;
-        length = source.length;
-        index = 0;
-        previous = 0;
-        addRange = opt && opt.range;
-        rangeOffset = opt && opt.startIndex || 0;
-
-        next();
-        expr = parseTop();
-
-        if (opt && opt.midstream) {
-            return {
-                expression: expr,
-                index: previous
-            };
-        }
-
-        if (token !== Token.EOF) {
-            utility.throwError('not reach to EOF');
-        }
-
-        return expr;
-    }
-
-    function parseParamType(src, opt) {
-        var expr;
-
-        source = src;
-        length = source.length;
-        index = 0;
-        previous = 0;
-        addRange = opt && opt.range;
-        rangeOffset = opt && opt.startIndex || 0;
-
-        next();
-        expr = parseTopParamType();
-
-        if (opt && opt.midstream) {
-            return {
-                expression: expr,
-                index: previous
-            };
-        }
-
-        if (token !== Token.EOF) {
-            utility.throwError('not reach to EOF');
-        }
-
-        return expr;
-    }
-
-    function stringifyImpl(node, compact, topLevel) {
-        var result, i, iz;
-
-        switch (node.type) {
-        case Syntax.NullableLiteral:
-            result = '?';
-            break;
-
-        case Syntax.AllLiteral:
-            result = '*';
-            break;
-
-        case Syntax.NullLiteral:
-            result = 'null';
-            break;
-
-        case Syntax.UndefinedLiteral:
-            result = 'undefined';
-            break;
-
-        case Syntax.VoidLiteral:
-            result = 'void';
-            break;
-
-        case Syntax.UnionType:
-            if (!topLevel) {
-                result = '(';
-            } else {
-                result = '';
-            }
-
-            for (i = 0, iz = node.elements.length; i < iz; ++i) {
-                result += stringifyImpl(node.elements[i], compact);
-                if ((i + 1) !== iz) {
-                    result += compact ? '|' : ' | ';
-                }
-            }
-
-            if (!topLevel) {
-                result += ')';
-            }
-            break;
-
-        case Syntax.ArrayType:
-            result = '[';
-            for (i = 0, iz = node.elements.length; i < iz; ++i) {
-                result += stringifyImpl(node.elements[i], compact);
-                if ((i + 1) !== iz) {
-                    result += compact ? ',' : ', ';
-                }
-            }
-            result += ']';
-            break;
-
-        case Syntax.RecordType:
-            result = '{';
-            for (i = 0, iz = node.fields.length; i < iz; ++i) {
-                result += stringifyImpl(node.fields[i], compact);
-                if ((i + 1) !== iz) {
-                    result += compact ? ',' : ', ';
-                }
-            }
-            result += '}';
-            break;
-
-        case Syntax.FieldType:
-            if (node.value) {
-                result = node.key + (compact ? ':' : ': ') + stringifyImpl(node.value, compact);
-            } else {
-                result = node.key;
-            }
-            break;
-
-        case Syntax.FunctionType:
-            result = compact ? 'function(' : 'function (';
-
-            if (node['this']) {
-                if (node['new']) {
-                    result += (compact ? 'new:' : 'new: ');
-                } else {
-                    result += (compact ? 'this:' : 'this: ');
-                }
-
-                result += stringifyImpl(node['this'], compact);
-
-                if (node.params.length !== 0) {
-                    result += compact ? ',' : ', ';
-                }
-            }
-
-            for (i = 0, iz = node.params.length; i < iz; ++i) {
-                result += stringifyImpl(node.params[i], compact);
-                if ((i + 1) !== iz) {
-                    result += compact ? ',' : ', ';
-                }
-            }
-
-            result += ')';
-
-            if (node.result) {
-                result += (compact ? ':' : ': ') + stringifyImpl(node.result, compact);
-            }
-            break;
-
-        case Syntax.ParameterType:
-            result = node.name + (compact ? ':' : ': ') + stringifyImpl(node.expression, compact);
-            break;
-
-        case Syntax.RestType:
-            result = '...';
-            if (node.expression) {
-                result += stringifyImpl(node.expression, compact);
-            }
-            break;
-
-        case Syntax.NonNullableType:
-            if (node.prefix) {
-                result = '!' + stringifyImpl(node.expression, compact);
-            } else {
-                result = stringifyImpl(node.expression, compact) + '!';
-            }
-            break;
-
-        case Syntax.OptionalType:
-            result = stringifyImpl(node.expression, compact) + '=';
-            break;
-
-        case Syntax.NullableType:
-            if (node.prefix) {
-                result = '?' + stringifyImpl(node.expression, compact);
-            } else {
-                result = stringifyImpl(node.expression, compact) + '?';
-            }
-            break;
-
-        case Syntax.NameExpression:
-            result = node.name;
-            break;
-
-        case Syntax.TypeApplication:
-            result = stringifyImpl(node.expression, compact) + '.<';
-            for (i = 0, iz = node.applications.length; i < iz; ++i) {
-                result += stringifyImpl(node.applications[i], compact);
-                if ((i + 1) !== iz) {
-                    result += compact ? ',' : ', ';
-                }
-            }
-            result += '>';
-            break;
-
-        case Syntax.StringLiteralType:
-            result = '"' + node.value + '"';
-            break;
-
-        case Syntax.NumericLiteralType:
-            result = String(node.value);
-            break;
-
-        case Syntax.BooleanLiteralType:
-            result = String(node.value);
-            break;
-
-        default:
-            utility.throwError('Unknown type ' + node.type);
-        }
-
-        return result;
-    }
-
-    function stringify(node, options) {
-        if (options == null) {
-            options = {};
-        }
-        return stringifyImpl(node, options.compact, options.topLevel);
-    }
-
-    exports.parseType = parseType;
-    exports.parseParamType = parseParamType;
-    exports.stringify = stringify;
-    exports.Syntax = Syntax;
-}());
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/utility.js b/node_modules/eslint-plugin-react/node_modules/doctrine/lib/utility.js
deleted file mode 100644
index 381580e..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/lib/utility.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * @fileoverview Utilities for Doctrine
- * @author Yusuke Suzuki <utatane.tea@gmail.com>
- */
-
-
-(function () {
-    'use strict';
-
-    var VERSION;
-
-    VERSION = require('../package.json').version;
-    exports.VERSION = VERSION;
-
-    function DoctrineError(message) {
-        this.name = 'DoctrineError';
-        this.message = message;
-    }
-    DoctrineError.prototype = (function () {
-        var Middle = function () { };
-        Middle.prototype = Error.prototype;
-        return new Middle();
-    }());
-    DoctrineError.prototype.constructor = DoctrineError;
-    exports.DoctrineError = DoctrineError;
-
-    function throwError(message) {
-        throw new DoctrineError(message);
-    }
-    exports.throwError = throwError;
-
-    exports.assert = require('assert');
-}());
-
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/package.json b/node_modules/eslint-plugin-react/node_modules/doctrine/package.json
deleted file mode 100644
index 92667d3..0000000
--- a/node_modules/eslint-plugin-react/node_modules/doctrine/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "name": "doctrine",
-  "description": "JSDoc parser",
-  "homepage": "https://github.com/eslint/doctrine",
-  "main": "lib/doctrine.js",
-  "version": "2.1.0",
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "directories": {
-    "lib": "./lib"
-  },
-  "files": [
-    "lib"
-  ],
-  "maintainers": [
-    {
-      "name": "Nicholas C. Zakas",
-      "email": "nicholas+npm@nczconsulting.com",
-      "web": "https://www.nczonline.net"
-    },
-    {
-      "name": "Yusuke Suzuki",
-      "email": "utatane.tea@gmail.com",
-      "web": "https://github.com/Constellation"
-    }
-  ],
-  "repository": "eslint/doctrine",
-  "devDependencies": {
-    "coveralls": "^2.11.2",
-    "dateformat": "^1.0.11",
-    "eslint": "^1.10.3",
-    "eslint-release": "^0.10.0",
-    "linefix": "^0.1.1",
-    "mocha": "^3.4.2",
-    "npm-license": "^0.3.1",
-    "nyc": "^10.3.2",
-    "semver": "^5.0.3",
-    "shelljs": "^0.5.3",
-    "shelljs-nodecli": "^0.1.1",
-    "should": "^5.0.1"
-  },
-  "license": "Apache-2.0",
-  "scripts": {
-    "pretest": "npm run lint",
-    "test": "nyc mocha",
-    "coveralls": "nyc report --reporter=text-lcov | coveralls",
-    "lint": "eslint lib/",
-    "release": "eslint-release",
-    "ci-release": "eslint-ci-release",
-    "alpharelease": "eslint-prerelease alpha",
-    "betarelease": "eslint-prerelease beta"
-  },
-  "dependencies": {
-    "esutils": "^2.0.2"
-  }
-}
diff --git a/node_modules/eslint-plugin-react/package.json b/node_modules/eslint-plugin-react/package.json
deleted file mode 100644
index 8b64193..0000000
--- a/node_modules/eslint-plugin-react/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
-  "name": "eslint-plugin-react",
-  "version": "7.19.0",
-  "author": "Yannick Croissant <yannick.croissant+npm@gmail.com>",
-  "description": "React specific linting rules for ESLint",
-  "main": "index.js",
-  "scripts": {
-    "coveralls": "cat ./coverage/lcov.info | coveralls",
-    "lint": "eslint ./",
-    "postlint": "npm run type-check",
-    "pretest": "npm run lint",
-    "test": "npm run unit-test",
-    "type-check": "tsc",
-    "unit-test": "istanbul cover node_modules/mocha/bin/_mocha tests/lib/**/*.js tests/util/**/*.js tests/index.js",
-    "generate-list-of-rules": "md-magic --path README.md",
-    "generate-list-of-rules:check": "npm run generate-list-of-rules && git diff --exit-code README.md"
-  },
-  "files": [
-    "LICENSE",
-    "README.md",
-    "index.js",
-    "lib"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/yannickcr/eslint-plugin-react"
-  },
-  "homepage": "https://github.com/yannickcr/eslint-plugin-react",
-  "bugs": "https://github.com/yannickcr/eslint-plugin-react/issues",
-  "dependencies": {
-    "array-includes": "^3.1.1",
-    "doctrine": "^2.1.0",
-    "has": "^1.0.3",
-    "jsx-ast-utils": "^2.2.3",
-    "object.entries": "^1.1.1",
-    "object.fromentries": "^2.0.2",
-    "object.values": "^1.1.1",
-    "prop-types": "^15.7.2",
-    "resolve": "^1.15.1",
-    "semver": "^6.3.0",
-    "string.prototype.matchall": "^4.0.2",
-    "xregexp": "^4.3.0"
-  },
-  "devDependencies": {
-    "@types/eslint": "^6.1.8",
-    "@types/estree": "0.0.42",
-    "@types/node": "^13.7.4",
-    "babel-eslint": "^8.2.6",
-    "coveralls": "^3.0.9",
-    "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
-    "eslint-config-airbnb-base": "^13.2.0",
-    "eslint-plugin-eslint-plugin": "^2.2.1",
-    "eslint-plugin-import": "^2.20.1",
-    "istanbul": "^0.4.5",
-    "markdown-magic": "^1.0.0",
-    "mocha": "^5.2.0",
-    "sinon": "^7.5.0",
-    "typescript": "^3.8.2",
-    "typescript-eslint-parser": "^20.1.1"
-  },
-  "peerDependencies": {
-    "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
-  },
-  "engines": {
-    "node": ">=4"
-  },
-  "keywords": [
-    "eslint",
-    "eslint-plugin",
-    "eslintplugin",
-    "react"
-  ],
-  "license": "MIT",
-  "greenkeeper": {
-    "ignore": [
-      "semver"
-    ]
-  }
-}
diff --git a/node_modules/eslint-plugin-relay/LICENSE b/node_modules/eslint-plugin-relay/LICENSE
deleted file mode 100644
index b96dcb0..0000000
--- a/node_modules/eslint-plugin-relay/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Facebook, Inc. and its affiliates.
-
-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.
diff --git a/node_modules/eslint-plugin-relay/README.md b/node_modules/eslint-plugin-relay/README.md
deleted file mode 100644
index e0ed3ab..0000000
--- a/node_modules/eslint-plugin-relay/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# eslint-plugin-relay [![Build Status](https://travis-ci.org/relayjs/eslint-plugin-relay.svg?branch=master)](https://travis-ci.org/relayjs/eslint-plugin-relay) [![npm version](https://badge.fury.io/js/eslint-plugin-relay.svg)](http://badge.fury.io/js/eslint-plugin-relay)
-
-`eslint-plugin-relay` is a plugin for [ESLint](http://eslint.org/) to catch common problems in code using [Relay](https://facebook.github.io/relay/) early.
-
-## Install
-
-`npm i --save-dev eslint-plugin-relay`
-
-## How To Use
-
-1.  Add `"relay"` to your eslint `plugins` section.
-2.  Add the relay rules such as `"relay/graphql-syntax": "error"` to your eslint `rules` section, see the example for all rules.
-
-Example .eslintrc.js:
-
-```js
-module.exports = {
-  // Other eslint properties here
-  rules: {
-    'relay/graphql-syntax': 'error',
-    'relay/compat-uses-vars': 'warn',
-    'relay/graphql-naming': 'error',
-    'relay/generated-flow-types': 'warn',
-    'relay/no-future-added-value': 'warn',
-    'relay/unused-fields': 'warn'
-  },
-  plugins: ['relay']
-};
-```
-
-You can also enable all the recommended or strict rules at once.
-Add `plugin:relay/recommended` or `plugin:relay/strict` in `extends`:
-
-```js
-{
-  "extends": [
-    "plugin:relay/recommended"
-  ]
-}
-```
-
-## Contribute
-
-We actively welcome pull requests, learn how to [contribute](./CONTRIBUTING.md).
-
-## License
-
-`eslint-plugin-relay` is [MIT licensed](./LICENSE).
diff --git a/node_modules/eslint-plugin-relay/eslint-plugin-relay.js b/node_modules/eslint-plugin-relay/eslint-plugin-relay.js
deleted file mode 100644
index 41962ba..0000000
--- a/node_modules/eslint-plugin-relay/eslint-plugin-relay.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-module.exports = {
-  rules: {
-    'graphql-syntax': require('./src/rule-graphql-syntax'),
-    'compat-uses-vars': require('./src/rule-compat-uses-vars'),
-    'graphql-naming': require('./src/rule-graphql-naming'),
-    'generated-flow-types': require('./src/rule-generated-flow-types'),
-    'no-future-added-value': require('./src/rule-no-future-added-value'),
-    'unused-fields': require('./src/rule-unused-fields'),
-    'hook-required-argument': require('./src/rule-hook-required-argument')
-  },
-  configs: {
-    recommended: {
-      rules: {
-        'relay/graphql-syntax': 'error',
-        'relay/compat-uses-vars': 'warn',
-        'relay/graphql-naming': 'error',
-        'relay/generated-flow-types': 'warn',
-        'relay/no-future-added-value': 'warn',
-        'relay/unused-fields': 'warn',
-        'relay/hook-required-argument': 'warn'
-      }
-    },
-    strict: {
-      rules: {
-        'relay/graphql-syntax': 'error',
-        'relay/compat-uses-vars': 'error',
-        'relay/graphql-naming': 'error',
-        'relay/generated-flow-types': 'error',
-        'relay/no-future-added-value': 'error',
-        'relay/unused-fields': 'error',
-        'relay/hook-required-argument': 'error'
-      }
-    }
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/package.json b/node_modules/eslint-plugin-relay/package.json
deleted file mode 100644
index d0adb1c..0000000
--- a/node_modules/eslint-plugin-relay/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "name": "eslint-plugin-relay",
-  "version": "1.7.0",
-  "description": "ESLint plugin for Relay.",
-  "main": "eslint-plugin-relay",
-  "repository": "relayjs/eslint-plugin-relay",
-  "license": "MIT",
-  "scripts": {
-    "lint": "eslint eslint-plugin-relay.js src",
-    "test": "mocha",
-    "test-watch": "mocha --watch",
-    "prettier": "prettier --write '**/*.js'"
-  },
-  "files": [
-    "eslint-plugin-relay.js",
-    "src/",
-    "LICENSE"
-  ],
-  "dependencies": {
-    "graphql": "^14.0.0 | ^15.0.0-rc.1"
-  },
-  "devDependencies": {
-    "babel-eslint": "^10.0.1",
-    "eslint": "^5.15.1",
-    "eslint-config-prettier": "^4.1.0",
-    "eslint-plugin-prettier": "^3.0.1",
-    "mocha": "^6.0.2",
-    "prettier": "^1.19.1"
-  }
-}
diff --git a/node_modules/eslint-plugin-relay/src/rule-compat-uses-vars.js b/node_modules/eslint-plugin-relay/src/rule-compat-uses-vars.js
deleted file mode 100644
index 21f6a29..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-compat-uses-vars.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const utils = require('./utils');
-const shouldLint = utils.shouldLint;
-const getGraphQLAST = utils.getGraphQLAST;
-const getModuleName = utils.getModuleName;
-const getLoc = utils.getLoc;
-
-const graphql = require('graphql');
-const visit = graphql.visit;
-
-function validateInlineDirective(spreadNode) {
-  return !!spreadNode.directives
-    .filter(directive => directive.name.value === 'relay')
-    .find(
-      directive =>
-        !!directive.arguments.find(argument => argument.name.value === 'mask')
-    );
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description:
-        'Relay Compat transforms fragment spreads from ' +
-        "`...Container_foo` to `Container.getFragment('foo')`. This " +
-        'makes ESLint aware of this.'
-    }
-  },
-  create(context) {
-    if (!shouldLint(context)) {
-      return {};
-    }
-    if (!/react-relay\/compat|RelayCompat/.test(context.getSourceCode().text)) {
-      // Only run in for compat mode files
-      return {};
-    }
-    function isInScope(name) {
-      var scope = context.getScope();
-      var variables = scope.variables;
-
-      while (scope.type !== 'global') {
-        scope = scope.upper;
-        variables = scope.variables.concat(variables);
-      }
-      if (scope.childScopes.length) {
-        variables = scope.childScopes[0].variables.concat(variables);
-        // Temporary fix for babel-eslint
-        if (scope.childScopes[0].childScopes.length) {
-          variables = scope.childScopes[0].childScopes[0].variables.concat(
-            variables
-          );
-        }
-      }
-
-      for (var i = 0, len = variables.length; i < len; i++) {
-        if (variables[i].name === name) {
-          return true;
-        }
-      }
-      return false;
-    }
-
-    return {
-      TaggedTemplateExpression(taggedTemplateExpression) {
-        const ast = getGraphQLAST(taggedTemplateExpression);
-        if (!ast) {
-          return;
-        }
-        visit(ast, {
-          FragmentSpread(spreadNode) {
-            const m =
-              spreadNode.name &&
-              spreadNode.name.value.match(/^([a-z0-9]+)_([a-z0-9_]+)/i);
-            if (!m) {
-              return;
-            }
-            const componentName = m[1];
-            const propName = m[2];
-            const loc = getLoc(
-              context,
-              taggedTemplateExpression,
-              spreadNode.name
-            );
-            if (isInScope(componentName)) {
-              // if this variable is defined, mark it as used
-              context.markVariableAsUsed(componentName);
-            } else if (componentName === getModuleName(context.getFilename())) {
-              if (!validateInlineDirective(spreadNode)) {
-                context.report({
-                  message:
-                    'It looks like you are trying to spread the locally defined fragment `{{fragmentName}}`. ' +
-                    'In compat mode, Relay only supports that for `@relay(mask: false)` directive. ' +
-                    'If you intend to do that, please add the directive to the fragment spread `{{fragmentName}}` ' +
-                    'and make sure that it is bound to a local variable named `{{propName}}`.',
-                  data: {
-                    fragmentName: spreadNode.name.value,
-                    propName: propName
-                  },
-                  loc: loc
-                });
-                return;
-              }
-
-              if (!isInScope(propName)) {
-                context.report({
-                  message:
-                    'When you are unmasking the locally defined fragment spread `{{fragmentName}}`, please make sure ' +
-                    'the fragment is bound to a variable named `{{propName}}`.',
-                  data: {
-                    fragmentName: spreadNode.name.value,
-                    propName: propName
-                  },
-                  loc: loc
-                });
-              }
-              context.markVariableAsUsed(propName);
-            } else {
-              // otherwise, yell about this needed to be defined
-              context.report({
-                message:
-                  'In compat mode, Relay expects the component that has ' +
-                  'the `{{fragmentName}}` fragment to be imported with ' +
-                  'the variable name `{{varName}}`.',
-                data: {
-                  fragmentName: spreadNode.name.value,
-                  varName: componentName
-                },
-                loc: loc
-              });
-            }
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-generated-flow-types.js b/node_modules/eslint-plugin-relay/src/rule-generated-flow-types.js
deleted file mode 100644
index 84fa00e..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-generated-flow-types.js
+++ /dev/null
@@ -1,951 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const utils = require('./utils');
-const shouldLint = utils.shouldLint;
-const getGraphQLAST = utils.getGraphQLAST;
-
-const DEFAULT_FLOW_TYPES_OPTIONS = {
-  fix: false,
-  haste: false
-};
-
-function getOptions(optionValue) {
-  if (optionValue) {
-    return {
-      fix: optionValue.fix || DEFAULT_FLOW_TYPES_OPTIONS.fix,
-      haste: optionValue.haste || DEFAULT_FLOW_TYPES_OPTIONS.haste
-    };
-  }
-  return DEFAULT_FLOW_TYPES_OPTIONS;
-}
-
-function getTypeImportName(node) {
-  return (node.specifiers[0].local || node.specifiers[0].imported).name;
-}
-
-function genImportFixRange(type, imports, requires) {
-  const typeImports = imports.filter(node => node.importKind === 'type');
-  const alreadyHasImport = typeImports.some(node =>
-    node.specifiers.some(
-      specifier => (specifier.imported || specifier.local).name === type
-    )
-  );
-  if (alreadyHasImport) {
-    return null;
-  }
-  if (typeImports.length > 0) {
-    let precedingImportIndex = 0;
-    while (
-      typeImports[precedingImportIndex + 1] &&
-      getTypeImportName(typeImports[precedingImportIndex + 1]) < type
-    ) {
-      precedingImportIndex++;
-    }
-    return typeImports[precedingImportIndex].range;
-  }
-  if (imports.length > 0) {
-    return imports[imports.length - 1].range;
-  }
-  if (requires.length > 0) {
-    return requires[requires.length - 1].range;
-  }
-  // start of file
-  return [0, 0];
-}
-
-function genImportFixer(fixer, importFixRange, type, haste, whitespace) {
-  if (!importFixRange) {
-    // HACK: insert nothing
-    return fixer.replaceTextRange([0, 0], '');
-  }
-  if (haste) {
-    return fixer.insertTextAfterRange(
-      importFixRange,
-      `\n${whitespace}import type {${type}} from '${type}.graphql'`
-    );
-  } else {
-    return fixer.insertTextAfterRange(
-      importFixRange,
-      `\n${whitespace}import type {${type}} from './__generated__/${type}.graphql'`
-    );
-  }
-}
-
-function getPropTypeProperty(
-  context,
-  typeAliasMap,
-  propType,
-  propName,
-  visitedProps = new Set()
-) {
-  if (propType == null || visitedProps.has(propType)) {
-    return null;
-  }
-  visitedProps.add(propType);
-  const spreadsToVisit = [];
-  if (propType.type === 'GenericTypeAnnotation') {
-    return getPropTypeProperty(
-      context,
-      typeAliasMap,
-      extractReadOnlyType(resolveTypeAlias(propType, typeAliasMap)),
-      propName,
-      visitedProps
-    );
-  }
-  if (propType.type !== 'ObjectTypeAnnotation') {
-    return null;
-  }
-  for (const property of propType.properties) {
-    if (property.type === 'ObjectTypeSpreadProperty') {
-      spreadsToVisit.push(property);
-    } else {
-      // HACK: Type annotations don't currently expose a 'key' property:
-      // https://github.com/babel/babel-eslint/issues/307
-
-      let tokenIndex = 0;
-      if (property.static) {
-        tokenIndex++;
-      }
-      if (property.variance) {
-        tokenIndex++;
-      }
-
-      if (
-        context.getSourceCode().getFirstToken(property, tokenIndex).value ===
-        propName
-      ) {
-        return property;
-      }
-    }
-  }
-  for (const property of spreadsToVisit) {
-    if (
-      property.argument &&
-      property.argument.id &&
-      property.argument.id.name
-    ) {
-      const nextPropType = typeAliasMap[property.argument.id.name];
-      const result = getPropTypeProperty(
-        context,
-        typeAliasMap,
-        nextPropType,
-        propName,
-        visitedProps
-      );
-      if (result) {
-        return result;
-      }
-    }
-  }
-  return null;
-}
-
-function validateObjectTypeAnnotation(
-  context,
-  Component,
-  type,
-  propName,
-  propType,
-  importFixRange,
-  typeAliasMap,
-  onlyVerify
-) {
-  const options = getOptions(context.options[0]);
-  const propTypeProperty = getPropTypeProperty(
-    context,
-    typeAliasMap,
-    propType,
-    propName
-  );
-
-  const atleastOnePropertyExists = !!propType.properties[0];
-
-  if (!propTypeProperty) {
-    if (onlyVerify) {
-      return false;
-    }
-    context.report({
-      message:
-        '`{{prop}}` is not declared in the `props` of the React component or it is not marked with the ' +
-        'generated flow type `{{type}}`. See ' +
-        'https://facebook.github.io/relay/docs/en/graphql-in-relay.html#importing-generated-definitions',
-      data: {
-        prop: propName,
-        type
-      },
-      fix: options.fix
-        ? fixer => {
-            const whitespace = ' '.repeat(Component.parent.loc.start.column);
-            const fixes = [
-              genImportFixer(
-                fixer,
-                importFixRange,
-                type,
-                options.haste,
-                whitespace
-              )
-            ];
-            if (atleastOnePropertyExists) {
-              fixes.push(
-                fixer.insertTextBefore(
-                  propType.properties[0],
-                  `${propName}: ${type}, `
-                )
-              );
-            } else {
-              fixes.push(fixer.replaceText(propType, `{${propName}: ${type}}`));
-            }
-            return fixes;
-          }
-        : null,
-      loc: Component.loc
-    });
-    return false;
-  }
-  if (
-    propTypeProperty.value.type === 'NullableTypeAnnotation' &&
-    propTypeProperty.value.typeAnnotation.type === 'GenericTypeAnnotation' &&
-    propTypeProperty.value.typeAnnotation.id.name === type
-  ) {
-    return true;
-  }
-  if (
-    propTypeProperty.value.type !== 'GenericTypeAnnotation' ||
-    propTypeProperty.value.id.name !== type
-  ) {
-    if (onlyVerify) {
-      return false;
-    }
-    context.report({
-      message:
-        'Component property `{{prop}}` expects to use the generated ' +
-        '`{{type}}` flow type. See https://facebook.github.io/relay/docs/en/graphql-in-relay.html#importing-generated-definitions',
-      data: {
-        prop: propName,
-        type
-      },
-      fix: options.fix
-        ? fixer => {
-            const whitespace = ' '.repeat(Component.parent.loc.start.column);
-            return [
-              genImportFixer(
-                fixer,
-                importFixRange,
-                type,
-                options.haste,
-                whitespace
-              ),
-              fixer.replaceText(propTypeProperty.value, type)
-            ];
-          }
-        : null,
-      loc: Component.loc
-    });
-    return false;
-  }
-  return true;
-}
-
-function extractReadOnlyType(genericType) {
-  let currentType = genericType;
-  while (
-    currentType != null &&
-    currentType.type === 'GenericTypeAnnotation' &&
-    currentType.id.name === '$ReadOnly' &&
-    currentType.typeParameters &&
-    currentType.typeParameters.type === 'TypeParameterInstantiation' &&
-    Array.isArray(currentType.typeParameters.params) &&
-    currentType.typeParameters.params.length === 1
-  ) {
-    currentType = currentType.typeParameters.params[0];
-  }
-  return currentType;
-}
-
-function resolveTypeAlias(genericType, typeAliasMap) {
-  let currentType = genericType;
-  while (
-    currentType != null &&
-    currentType.type === 'GenericTypeAnnotation' &&
-    typeAliasMap[currentType.id.name] != null
-  ) {
-    currentType = typeAliasMap[currentType.id.name];
-  }
-  return currentType;
-}
-
-module.exports = {
-  meta: {
-    fixable: 'code',
-    docs: {
-      description: 'Validates usage of RelayModern generated flow types'
-    },
-    schema: [
-      {
-        type: 'object',
-        properties: {
-          fix: {
-            type: 'boolean'
-          },
-          haste: {
-            type: 'boolean'
-          }
-        },
-        additionalProperties: false
-      }
-    ]
-  },
-  create(context) {
-    if (!shouldLint(context)) {
-      return {};
-    }
-    const options = getOptions(context.options[0]);
-    const componentMap = {};
-    const expectedTypes = [];
-    const imports = [];
-    const requires = [];
-    const typeAliasMap = {};
-    const useFragmentInstances = [];
-
-    /**
-     * Tries to find a GraphQL definition node for a given argument.
-     * Supports a graphql`...` literal inline and follows variable definitions.
-     */
-    function getDefinition(arg) {
-      if (arg == null) {
-        return null;
-      }
-      if (arg.type === 'Identifier') {
-        const name = arg.name;
-        let scope = context.getScope();
-        while (scope && scope.type != 'global') {
-          for (const variable of scope.variables) {
-            if (variable.name === name) {
-              const definition = variable.defs.find(
-                def => def.node && def.node.type === 'VariableDeclarator'
-              );
-              return definition ? getDefinition(definition.node.init) : null;
-            }
-          }
-          scope = scope.upper;
-        }
-        return null;
-      }
-      if (arg.type !== 'TaggedTemplateExpression') {
-        return null;
-      }
-      return getGraphQLAST(arg);
-    }
-
-    function getDefinitionName(arg) {
-      const ast = getDefinition(arg);
-      if (ast == null || ast.definitions.length === 0) {
-        return null;
-      }
-      return ast.definitions[0].name.value;
-    }
-
-    function getRefetchableQueryName(arg) {
-      const ast = getDefinition(arg);
-      if (ast == null || ast.definitions.length === 0) {
-        return null;
-      }
-      const refetchable = ast.definitions[0].directives.find(
-        d => d.name.value === 'refetchable'
-      );
-      if (!refetchable) {
-        return null;
-      }
-      const nameArg = refetchable.arguments.find(
-        a => a.name.value === 'queryName'
-      );
-      return nameArg && nameArg.value && nameArg.value.value
-        ? nameArg.value.value
-        : null;
-    }
-
-    function trackHookCall(node, hookName) {
-      const firstArg = node.arguments[0];
-      if (firstArg == null) {
-        return;
-      }
-      const fragmentName = getDefinitionName(firstArg);
-      if (fragmentName == null) {
-        return;
-      }
-      useFragmentInstances.push({
-        fragmentName: fragmentName,
-        node: node,
-        hookName: hookName
-      });
-    }
-
-    function createTypeImportFixer(node, operationName, typeText) {
-      return fixer => {
-        const importFixRange = genImportFixRange(
-          operationName,
-          imports,
-          requires
-        );
-        return [
-          genImportFixer(
-            fixer,
-            importFixRange,
-            operationName,
-            options.haste,
-            ''
-          ),
-          fixer.insertTextAfter(node.callee, `<${typeText}>`)
-        ];
-      };
-    }
-
-    function reportAndFixRefetchableType(node, hookName, defaultQueryName) {
-      const queryName = getRefetchableQueryName(node.arguments[0]);
-      context.report({
-        node: node,
-        message: `The \`${hookName}\` hook should be used with an explicit generated Flow type, e.g.: ${hookName}<{{queryName}}, _>(...)`,
-        data: {
-          queryName: queryName || defaultQueryName
-        },
-        fix:
-          queryName != null && options.fix
-            ? createTypeImportFixer(node, queryName, `${queryName}, _`)
-            : null
-      });
-    }
-
-    return {
-      ImportDeclaration(node) {
-        imports.push(node);
-      },
-      VariableDeclarator(node) {
-        if (
-          node.init &&
-          node.init.type === 'CallExpression' &&
-          node.init.callee.name === 'require'
-        ) {
-          requires.push(node);
-        }
-      },
-      TypeAlias(node) {
-        typeAliasMap[node.id.name] = node.right;
-      },
-
-      /**
-       * Find useQuery() calls without type arguments.
-       */
-      'CallExpression[callee.name=useQuery]:not([typeArguments])'(node) {
-        const firstArg = node.arguments[0];
-        if (firstArg == null) {
-          return;
-        }
-        const queryName = getDefinitionName(firstArg);
-        context.report({
-          node: node,
-          message:
-            'The `useQuery` hook should be used with an explicit generated Flow type, e.g.: useQuery<{{queryName}}>(...)',
-          data: {
-            queryName: queryName || 'ExampleQuery'
-          },
-          fix:
-            queryName != null && options.fix
-              ? createTypeImportFixer(node, queryName, queryName)
-              : null
-        });
-      },
-
-      /**
-       * Find useLazyLoadQuery() calls without type arguments.
-       */
-      'CallExpression[callee.name=useLazyLoadQuery]:not([typeArguments])'(
-        node
-      ) {
-        const firstArg = node.arguments[0];
-        if (firstArg == null) {
-          return;
-        }
-        const queryName = getDefinitionName(firstArg);
-        context.report({
-          node: node,
-          message:
-            'The `useLazyLoadQuery` hook should be used with an explicit generated Flow type, e.g.: useLazyLoadQuery<{{queryName}}>(...)',
-          data: {
-            queryName: queryName || 'ExampleQuery'
-          },
-          fix:
-            queryName != null && options.fix
-              ? createTypeImportFixer(node, queryName, queryName)
-              : null
-        });
-      },
-
-      /**
-       * Find commitMutation() calls without type arguments.
-       */
-      'CallExpression[callee.name=commitMutation]:not([typeArguments])'(node) {
-        // Get mutation config. It should be second argument of the `commitMutation`
-        const mutationConfig = node.arguments && node.arguments[1];
-        if (
-          mutationConfig == null ||
-          mutationConfig.type !== 'ObjectExpression'
-        ) {
-          return;
-        }
-        // Find `mutation` property on the `mutationConfig`
-        const mutationNameProperty = mutationConfig.properties.find(
-          prop => prop.key != null && prop.key.name === 'mutation'
-        );
-        if (
-          mutationNameProperty == null ||
-          mutationNameProperty.value == null
-        ) {
-          return;
-        }
-        const mutationName = getDefinitionName(mutationNameProperty.value);
-        context.report({
-          node: node,
-          message:
-            'The `commitMutation` must be used with an explicit generated Flow type, e.g.: commitMutation<{{mutationName}}>(...)',
-          data: {
-            mutationName: mutationName || 'ExampleMutation'
-          },
-          fix:
-            mutationName != null && options.fix
-              ? createTypeImportFixer(node, mutationName, mutationName)
-              : null
-        });
-      },
-
-      /**
-       * Find requestSubscription() calls without type arguments.
-       */
-      'CallExpression[callee.name=requestSubscription]:not([typeArguments])'(
-        node
-      ) {
-        const subscriptionConfig = node.arguments && node.arguments[1];
-        if (
-          subscriptionConfig == null ||
-          subscriptionConfig.type !== 'ObjectExpression'
-        ) {
-          return;
-        }
-        const subscriptionNameProperty = subscriptionConfig.properties.find(
-          prop => prop.key != null && prop.key.name === 'subscription'
-        );
-
-        if (
-          subscriptionNameProperty == null ||
-          subscriptionNameProperty.value == null
-        ) {
-          return;
-        }
-        const subscriptionName = getDefinitionName(
-          subscriptionNameProperty.value
-        );
-        context.report({
-          node: node,
-          message:
-            'The `requestSubscription` must be used with an explicit generated Flow type, e.g.: requestSubscription<{{subscriptionName}}>(...)',
-          data: {
-            subscriptionName: subscriptionName || 'ExampleSubscription'
-          },
-          fix:
-            subscriptionName != null && options.fix
-              ? createTypeImportFixer(node, subscriptionName, subscriptionName)
-              : null
-        });
-      },
-
-      /**
-       * Find usePaginationFragment() calls without type arguments.
-       */
-      'CallExpression[callee.name=usePaginationFragment]:not([typeArguments])'(
-        node
-      ) {
-        reportAndFixRefetchableType(
-          node,
-          'usePaginationFragment',
-          'PaginationQuery'
-        );
-      },
-
-      /**
-       * Find useBlockingPaginationFragment() calls without type arguments.
-       */
-      'CallExpression[callee.name=useBlockingPaginationFragment]:not([typeArguments])'(
-        node
-      ) {
-        reportAndFixRefetchableType(
-          node,
-          'useBlockingPaginationFragment',
-          'PaginationQuery'
-        );
-      },
-
-      /**
-       * Find useLegacyPaginationFragment() calls without type arguments.
-       */
-      'CallExpression[callee.name=useLegacyPaginationFragment]:not([typeArguments])'(
-        node
-      ) {
-        reportAndFixRefetchableType(
-          node,
-          'useLegacyPaginationFragment',
-          'PaginationQuery'
-        );
-      },
-
-      /**
-       * Find useRefetchableFragment() calls without type arguments.
-       */
-      'CallExpression[callee.name=useRefetchableFragment]:not([typeArguments])'(
-        node
-      ) {
-        reportAndFixRefetchableType(
-          node,
-          'useRefetchableFragment',
-          'RefetchableQuery'
-        );
-      },
-
-      /**
-       * useFragment() calls
-       */
-      'CallExpression[callee.name=useFragment]'(node) {
-        trackHookCall(node, 'useFragment');
-      },
-
-      /**
-       * usePaginationFragment() calls
-       */
-      'CallExpression[callee.name=usePaginationFragment]'(node) {
-        trackHookCall(node, 'usePaginationFragment');
-      },
-
-      /**
-       * useBlockingPaginationFragment() calls
-       */
-      'CallExpression[callee.name=useBlockingPaginationFragment]'(node) {
-        trackHookCall(node, 'useBlockingPaginationFragment');
-      },
-
-      /**
-       * useLegacyPaginationFragment() calls
-       */
-      'CallExpression[callee.name=useLegacyPaginationFragment]'(node) {
-        trackHookCall(node, 'useLegacyPaginationFragment');
-      },
-
-      /**
-       * useRefetchableFragment() calls
-       */
-      'CallExpression[callee.name=useRefetchableFragment]'(node) {
-        trackHookCall(node, 'useRefetchableFragment');
-      },
-
-      ClassDeclaration(node) {
-        const componentName = node.id.name;
-        componentMap[componentName] = {
-          Component: node.id
-        };
-        // new style React.Component accepts 'props' as the first parameter
-        if (node.superTypeParameters && node.superTypeParameters.params[0]) {
-          componentMap[componentName].propType =
-            node.superTypeParameters.params[0];
-        }
-      },
-      TaggedTemplateExpression(node) {
-        const ast = getGraphQLAST(node);
-        if (!ast) {
-          return;
-        }
-        ast.definitions.forEach(def => {
-          if (!def.name) {
-            // no name, covered by graphql-naming/TaggedTemplateExpression
-            return;
-          }
-          if (def.kind === 'FragmentDefinition') {
-            expectedTypes.push(def.name.value);
-          }
-        });
-      },
-      'Program:exit': function(_node) {
-        useFragmentInstances.forEach(useFragmentInstance => {
-          const fragmentName = useFragmentInstance.fragmentName;
-          const hookName = useFragmentInstance.hookName;
-          const node = useFragmentInstance.node;
-          const foundImport = imports.some(importDeclaration => {
-            const importedFromModuleName = importDeclaration.source.value;
-            // `includes()` to allow a suffix like `.js` or path prefixes
-            if (!importedFromModuleName.includes(fragmentName + '.graphql')) {
-              return false;
-            }
-            // import type {...} from '...';
-            if (importDeclaration.importKind === 'type') {
-              return importDeclaration.specifiers.some(
-                specifier =>
-                  specifier.type === 'ImportSpecifier' &&
-                  specifier.imported.name === fragmentName + '$key'
-              );
-            }
-            // import {type xyz} from '...';
-            if (importDeclaration.importKind === 'value') {
-              return importDeclaration.specifiers.some(
-                specifier =>
-                  specifier.type === 'ImportSpecifier' &&
-                  specifier.importKind === 'type' &&
-                  specifier.imported.name === fragmentName + '$key'
-              );
-            }
-            return false;
-          });
-
-          if (foundImport) {
-            return;
-          }
-
-          // Check if the fragment ref that we're passing to the hook
-          // comes from a previous useFragment (or variants) hook call.
-          const fragmentRefArgName =
-            node.arguments[1] != null ? node.arguments[1].name : null;
-          const foundFragmentRefDeclaration = useFragmentInstances.some(
-            _useFragmentInstance => {
-              if (_useFragmentInstance === useFragmentInstance) {
-                return false;
-              }
-              const variableDeclaratorNode = _useFragmentInstance.node.parent;
-              if (
-                !variableDeclaratorNode ||
-                !variableDeclaratorNode.id ||
-                !variableDeclaratorNode.id.type
-              ) {
-                return false;
-              }
-              if (variableDeclaratorNode.id.type === 'Identifier') {
-                return (
-                  fragmentRefArgName != null &&
-                  variableDeclaratorNode.id.name === fragmentRefArgName
-                );
-              }
-              if (
-                variableDeclaratorNode.id.type === 'ObjectPattern' &&
-                variableDeclaratorNode.id.properties != null
-              ) {
-                return variableDeclaratorNode.id.properties.some(prop => {
-                  return (
-                    fragmentRefArgName != null &&
-                    prop &&
-                    prop.value &&
-                    prop.value.name === fragmentRefArgName
-                  );
-                });
-              }
-              return false;
-            }
-          );
-
-          if (foundFragmentRefDeclaration) {
-            return;
-          }
-
-          context.report({
-            node: node,
-            message:
-              'The prop passed to {{hookName}}() should be typed with the ' +
-              "type '{{name}}$key' imported from '{{name}}.graphql', " +
-              'e.g.:\n' +
-              '\n' +
-              "  import type {{{name}}$key} from '{{name}}.graphql';",
-            data: {
-              name: fragmentName,
-              hookName: hookName
-            }
-          });
-        });
-        expectedTypes.forEach(type => {
-          const componentName = type.split('_')[0];
-          const propName = type
-            .split('_')
-            .slice(1)
-            .join('_');
-          if (!componentName || !propName || !componentMap[componentName]) {
-            // incorrect name, covered by graphql-naming/CallExpression
-            return;
-          }
-          const Component = componentMap[componentName].Component;
-          const propType = componentMap[componentName].propType;
-
-          // resolve local type alias
-          const importedPropType = imports.reduce((acc, node) => {
-            if (node.specifiers) {
-              const typeSpecifier = node.specifiers.find(specifier => {
-                if (specifier.type !== 'ImportSpecifier') {
-                  return false;
-                }
-                return specifier.imported.name === type;
-              });
-              if (typeSpecifier) {
-                return typeSpecifier.local.name;
-              }
-            }
-            return acc;
-          }, type);
-
-          const importFixRange = genImportFixRange(
-            importedPropType,
-            imports,
-            requires
-          );
-
-          if (propType) {
-            // There exists a prop typeAnnotation. Let's look at how it's
-            // structured
-            switch (propType.type) {
-              case 'ObjectTypeAnnotation': {
-                validateObjectTypeAnnotation(
-                  context,
-                  Component,
-                  importedPropType,
-                  propName,
-                  propType,
-                  importFixRange,
-                  typeAliasMap
-                );
-                break;
-              }
-              case 'GenericTypeAnnotation': {
-                const aliasedObjectType = extractReadOnlyType(
-                  resolveTypeAlias(propType, typeAliasMap)
-                );
-                if (!aliasedObjectType) {
-                  // The type Alias doesn't exist, is invalid, or is being
-                  // imported. Can't do anything.
-                  break;
-                }
-                switch (aliasedObjectType.type) {
-                  case 'ObjectTypeAnnotation': {
-                    validateObjectTypeAnnotation(
-                      context,
-                      Component,
-                      importedPropType,
-                      propName,
-                      aliasedObjectType,
-                      importFixRange,
-                      typeAliasMap
-                    );
-                    break;
-                  }
-                  case 'IntersectionTypeAnnotation': {
-                    const objectTypes = aliasedObjectType.types
-                      .map(intersectedType => {
-                        if (intersectedType.type === 'GenericTypeAnnotation') {
-                          return extractReadOnlyType(
-                            resolveTypeAlias(intersectedType, typeAliasMap)
-                          );
-                        }
-                        if (intersectedType.type === 'ObjectTypeAnnotation') {
-                          return intersectedType;
-                        }
-                      })
-                      .filter(maybeObjectType => {
-                        // GenericTypeAnnotation may not map to an object type
-                        return (
-                          maybeObjectType &&
-                          maybeObjectType.type === 'ObjectTypeAnnotation'
-                        );
-                      });
-                    if (!objectTypes.length) {
-                      // The type Alias is likely being imported.
-                      // Can't do anything.
-                      break;
-                    }
-                    for (const objectType of objectTypes) {
-                      const isValid = validateObjectTypeAnnotation(
-                        context,
-                        Component,
-                        importedPropType,
-                        propName,
-                        objectType,
-                        importFixRange,
-                        typeAliasMap,
-                        true // Return false if invalid instead of reporting
-                      );
-                      if (isValid) {
-                        break;
-                      }
-                    }
-                    // otherwise report an error at the first object
-                    validateObjectTypeAnnotation(
-                      context,
-                      Component,
-                      importedPropType,
-                      propName,
-                      objectTypes[0],
-                      importFixRange,
-                      typeAliasMap
-                    );
-                    break;
-                  }
-                }
-                break;
-              }
-            }
-          } else {
-            context.report({
-              message:
-                'Component property `{{prop}}` expects to use the ' +
-                'generated `{{type}}` flow type. See https://facebook.github.io/relay/docs/en/graphql-in-relay.html#importing-generated-definitions',
-              data: {
-                prop: propName,
-                type: importedPropType
-              },
-              fix: options.fix
-                ? fixer => {
-                    const classBodyStart = Component.parent.body.body[0];
-                    if (!classBodyStart) {
-                      // HACK: There's nothing in the body. Let's not do anything
-                      // When something is added to the body, we'll have a fix
-                      return;
-                    }
-                    const aliasWhitespace = ' '.repeat(
-                      Component.parent.loc.start.column
-                    );
-                    const propsWhitespace = ' '.repeat(
-                      classBodyStart.loc.start.column
-                    );
-                    return [
-                      genImportFixer(
-                        fixer,
-                        importFixRange,
-                        importedPropType,
-                        options.haste,
-                        aliasWhitespace
-                      ),
-                      fixer.insertTextBefore(
-                        Component.parent,
-                        `type Props = {${propName}: ` +
-                          `${importedPropType}};\n\n${aliasWhitespace}`
-                      ),
-                      fixer.insertTextBefore(
-                        classBodyStart,
-                        `props: Props;\n\n${propsWhitespace}`
-                      )
-                    ];
-                  }
-                : null,
-              loc: Component.loc
-            });
-          }
-        });
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-graphql-naming.js b/node_modules/eslint-plugin-relay/src/rule-graphql-naming.js
deleted file mode 100644
index 69cde13..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-graphql-naming.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const utils = require('./utils');
-const getGraphQLAST = utils.getGraphQLAST;
-const getLoc = utils.getLoc;
-const getModuleName = utils.getModuleName;
-const getRange = utils.getRange;
-const isGraphQLTag = utils.isGraphQLTag;
-const isGraphQLDeprecatedTag = utils.isGraphQLDeprecatedTag;
-const shouldLint = utils.shouldLint;
-
-const CREATE_CONTAINER_FUNCTIONS = new Set([
-  'createFragmentContainer',
-  'createPaginationContainer',
-  'createRefetchContainer'
-]);
-
-function isCreateContainerCall(node) {
-  const callee = node.callee;
-  // prettier-ignore
-  return (
-    callee.type === 'Identifier' &&
-    CREATE_CONTAINER_FUNCTIONS.has(callee.name)
-  ) || (
-    callee.kind === 'MemberExpression' &&
-    callee.object.type === 'Identifier' &&
-    // Relay, relay, RelayCompat, etc.
-    /relay/i.test(callee.object.value) &&
-    callee.property.type === 'Identifier' &&
-    CREATE_CONTAINER_FUNCTIONS.has(callee.property.name)
-  );
-}
-
-function calleeToString(callee) {
-  if (callee.type) {
-    return callee.name;
-  }
-  if (
-    callee.kind === 'MemberExpression' &&
-    callee.object.type === 'Identifier' &&
-    callee.property.type === 'Identifier'
-  ) {
-    return callee.object.value + '.' + callee.property.name;
-  }
-  return null;
-}
-
-function validateTemplate(context, taggedTemplateExpression, keyName) {
-  const ast = getGraphQLAST(taggedTemplateExpression);
-  if (!ast) {
-    return;
-  }
-  const moduleName = getModuleName(context.getFilename());
-  ast.definitions.forEach(def => {
-    if (!def.name) {
-      // no name, covered by graphql-naming/TaggedTemplateExpression
-      return;
-    }
-    const definitionName = def.name.value;
-    if (def.kind === 'FragmentDefinition') {
-      if (keyName) {
-        const expectedName = moduleName + '_' + keyName;
-        if (definitionName !== expectedName) {
-          context.report({
-            loc: getLoc(context, taggedTemplateExpression, def.name),
-            message:
-              'Container fragment names must be `<ModuleName>_<propName>`. ' +
-              'Got `{{actual}}`, expected `{{expected}}`.',
-            data: {
-              actual: definitionName,
-              expected: expectedName
-            },
-            fix: fixer =>
-              fixer.replaceTextRange(
-                getRange(context, taggedTemplateExpression, def.name),
-                expectedName
-              )
-          });
-        }
-      }
-    }
-  });
-}
-
-module.exports = {
-  meta: {
-    fixable: 'code',
-    docs: {
-      description: 'Validates naming conventions of graphql tags'
-    }
-  },
-  create(context) {
-    if (!shouldLint(context)) {
-      return {};
-    }
-    return {
-      TaggedTemplateExpression(node) {
-        const ast = getGraphQLAST(node);
-        if (!ast) {
-          return;
-        }
-
-        ast.definitions.forEach(definition => {
-          switch (definition.kind) {
-            case 'OperationDefinition': {
-              const moduleName = getModuleName(context.getFilename());
-              const name = definition.name;
-              if (!name) {
-                return;
-              }
-              const operationName = name.value;
-
-              if (operationName.indexOf(moduleName) !== 0) {
-                context.report({
-                  message:
-                    'Operations should start with the module name. ' +
-                    'Expected prefix `{{expected}}`, got `{{actual}}`.',
-                  data: {
-                    expected: moduleName,
-                    actual: operationName
-                  },
-                  loc: getLoc(context, node, name)
-                });
-              }
-              break;
-            }
-            default:
-          }
-        });
-      },
-      CallExpression(node) {
-        if (!isCreateContainerCall(node)) {
-          return;
-        }
-        const fragments = node.arguments[1];
-        if (fragments.type === 'ObjectExpression') {
-          fragments.properties.forEach(property => {
-            if (
-              property.type === 'Property' &&
-              property.key.type === 'Identifier' &&
-              property.computed === false &&
-              property.value.type === 'TaggedTemplateExpression'
-            ) {
-              if (
-                !isGraphQLTag(property.value.tag) &&
-                !isGraphQLDeprecatedTag(property.value.tag)
-              ) {
-                context.report({
-                  node: property.value.tag,
-                  message:
-                    '`{{callee}}` expects GraphQL to be tagged with ' +
-                    'graphql`...`.',
-                  data: {
-                    callee: calleeToString(node.callee)
-                  }
-                });
-                return;
-              }
-              validateTemplate(context, property.value, property.key.name);
-            } else {
-              context.report({
-                node: property,
-                message:
-                  '`{{callee}}` expects fragment definitions to be ' +
-                  '`key: graphql`.',
-                data: {
-                  callee: calleeToString(node.callee)
-                }
-              });
-            }
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-graphql-syntax.js b/node_modules/eslint-plugin-relay/src/rule-graphql-syntax.js
deleted file mode 100644
index 8c758a5..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-graphql-syntax.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const path = require('path');
-
-const utils = require('./utils');
-const getLoc = utils.getLoc;
-const isGraphQLTag = utils.isGraphQLTag;
-const shouldLint = utils.shouldLint;
-
-const graphql = require('graphql');
-const parse = graphql.parse;
-const Source = graphql.Source;
-
-module.exports = {
-  meta: {
-    docs: {
-      description: 'Validates the syntax of graphql`...` templates.'
-    }
-  },
-  create(context) {
-    if (!shouldLint(context)) {
-      return {};
-    }
-    return {
-      TaggedTemplateExpression(node) {
-        if (!isGraphQLTag(node.tag)) {
-          return;
-        }
-        const quasi = node.quasi.quasis[0];
-        if (node.quasi.quasis.length !== 1) {
-          context.report({
-            node: node,
-            message:
-              'graphql tagged templates do not support ${...} substitutions.'
-          });
-          return;
-        }
-        try {
-          const filename = path.basename(context.getFilename());
-          const ast = parse(new Source(quasi.value.cooked, filename));
-          if (ast.definitions.length !== 1) {
-            context.report({
-              node: node,
-              message:
-                'graphql tagged templates can only contain a single definition.'
-            });
-          } else if (!ast.definitions[0].name) {
-            context.report({
-              message: 'Operations in graphql tags require a name.',
-              loc: getLoc(context, node, ast.definitions[0])
-            });
-          }
-        } catch (error) {
-          context.report({
-            node: node,
-            message: '{{message}}',
-            data: {message: error.message}
-          });
-        }
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-hook-required-argument.js b/node_modules/eslint-plugin-relay/src/rule-hook-required-argument.js
deleted file mode 100644
index b4e8eff..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-hook-required-argument.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const utils = require('./utils');
-const shouldLint = utils.shouldLint;
-
-function reportMissingKeyArgument(node, context, hookName) {
-  context.report({
-    node: node,
-    message: `A fragment reference should be passed to the \`${hookName}\` hook`
-  });
-}
-
-module.exports = {
-  meta: {
-    docs: {
-      description:
-        'Validates that the second argument is passed to relay hooks.'
-    }
-  },
-  create(context) {
-    if (!shouldLint(context)) {
-      return {};
-    }
-
-    return {
-      'CallExpression[callee.name=useFragment][arguments.length < 2]'(node) {
-        reportMissingKeyArgument(node, context, 'useFragment');
-      },
-      'CallExpression[callee.name=usePaginationFragment][arguments.length < 2]'(
-        node
-      ) {
-        reportMissingKeyArgument(node, context, 'usePaginationFragment');
-      },
-
-      'CallExpression[callee.name=useBlockingPaginationFragment][arguments.length < 2]'(
-        node
-      ) {
-        reportMissingKeyArgument(
-          node,
-          context,
-          'useBlockingPaginationFragment'
-        );
-      },
-
-      'CallExpression[callee.name=useLegacyPaginationFragment][arguments.length < 2]'(
-        node
-      ) {
-        reportMissingKeyArgument(node, context, 'useLegacyPaginationFragment');
-      },
-
-      'CallExpression[callee.name=useRefetchableFragment][arguments.length < 2]'(
-        node
-      ) {
-        reportMissingKeyArgument(node, context, 'useRefetchableFragment');
-      }
-    };
-  }
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-no-future-added-value.js b/node_modules/eslint-plugin-relay/src/rule-no-future-added-value.js
deleted file mode 100644
index ca25f7b..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-no-future-added-value.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-module.exports = context => {
-  function validateValue(node) {
-    context.report(
-      node,
-      "Do not use `'%future added value'`. It represents any potential " +
-        'value that the server might return in the future that the code ' +
-        'should handle.'
-    );
-  }
-  return {
-    "Literal[value='%future added value']": validateValue,
-
-    // StringLiteralTypeAnnotations that are not children of a default case
-    ":not(SwitchCase[test=null] StringLiteralTypeAnnotation)StringLiteralTypeAnnotation[value='%future added value']": validateValue
-  };
-};
diff --git a/node_modules/eslint-plugin-relay/src/rule-unused-fields.js b/node_modules/eslint-plugin-relay/src/rule-unused-fields.js
deleted file mode 100644
index 71b0cc0..0000000
--- a/node_modules/eslint-plugin-relay/src/rule-unused-fields.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const utils = require('./utils');
-
-const getGraphQLAST = utils.getGraphQLAST;
-
-function getGraphQLFieldNames(graphQLAst) {
-  const fieldNames = {};
-
-  function walkAST(node, ignoreLevel) {
-    if (node.kind === 'Field' && !ignoreLevel) {
-      const nameNode = node.alias || node.name;
-      fieldNames[nameNode.value] = nameNode;
-    }
-    if (node.kind === 'OperationDefinition') {
-      if (node.operation === 'mutation' || node.operation === 'subscription') {
-        return;
-      }
-      // Ignore fields that are direct children of query as used in mutation
-      // or query definitions.
-      node.selectionSet.selections.forEach(selection => {
-        walkAST(selection, true);
-      });
-      return;
-    }
-    for (const prop in node) {
-      const value = node[prop];
-      if (prop === 'loc') {
-        continue;
-      }
-      if (value && typeof value === 'object') {
-        walkAST(value);
-      } else if (Array.isArray(value)) {
-        value.forEach(child => {
-          walkAST(child);
-        });
-      }
-    }
-  }
-
-  walkAST(graphQLAst);
-  return fieldNames;
-}
-
-function isGraphQLTemplate(node) {
-  return (
-    node.tag.type === 'Identifier' &&
-    node.tag.name === 'graphql' &&
-    node.quasi.quasis.length === 1
-  );
-}
-
-function isStringNode(node) {
-  return (
-    node != null && node.type === 'Literal' && typeof node.value === 'string'
-  );
-}
-
-function isPageInfoField(field) {
-  switch (field) {
-    case 'pageInfo':
-    case 'page_info':
-    case 'hasNextPage':
-    case 'has_next_page':
-    case 'hasPreviousPage':
-    case 'has_previous_page':
-    case 'startCursor':
-    case 'start_cursor':
-    case 'endCursor':
-    case 'end_cursor':
-      return true;
-    default:
-      return false;
-  }
-}
-
-function rule(context) {
-  let currentMethod = [];
-  let foundMemberAccesses = {};
-  let templateLiterals = [];
-
-  function visitGetByPathCall(node) {
-    // The `getByPath` utility accesses nested fields in the form
-    // `getByPath(thing, ['field', 'nestedField'])`.
-    const pathArg = node.arguments[1];
-    if (!pathArg || pathArg.type !== 'ArrayExpression') {
-      return;
-    }
-    pathArg.elements.forEach(element => {
-      if (isStringNode(element)) {
-        foundMemberAccesses[element.value] = true;
-      }
-    });
-  }
-
-  function visitDotAccessCall(node) {
-    // The `dotAccess` utility accesses nested fields in the form
-    // `dotAccess(thing, 'field.nestedField')`.
-    const pathArg = node.arguments[1];
-    if (isStringNode(pathArg)) {
-      pathArg.value.split('.').forEach(element => {
-        foundMemberAccesses[element] = true;
-      });
-    }
-  }
-
-  function visitMemberExpression(node) {
-    if (node.property.type === 'Identifier') {
-      foundMemberAccesses[node.property.name] = true;
-    }
-  }
-
-  return {
-    Program(_node) {
-      currentMethod = [];
-      foundMemberAccesses = {};
-      templateLiterals = [];
-    },
-    'Program:exit'(_node) {
-      templateLiterals.forEach(templateLiteral => {
-        const graphQLAst = getGraphQLAST(templateLiteral);
-        if (!graphQLAst) {
-          // ignore nodes with syntax errors, they're handled by rule-graphql-syntax
-          return;
-        }
-
-        const queriedFields = getGraphQLFieldNames(graphQLAst);
-        for (const field in queriedFields) {
-          if (
-            !foundMemberAccesses[field] &&
-            !isPageInfoField(field) &&
-            // Do not warn for unused __typename which can be a workaround
-            // when only interested in existence of an object.
-            field !== '__typename'
-          ) {
-            context.report({
-              node: templateLiteral,
-              loc: utils.getLoc(context, templateLiteral, queriedFields[field]),
-              message:
-                `This queries for the field \`${field}\` but this file does ` +
-                'not seem to use it directly. If a different file needs this ' +
-                'information that file should export a fragment and colocate ' +
-                'the query for the data with the usage.\n' +
-                'If only interested in the existence of a record, __typename ' +
-                'can be used without this warning.'
-            });
-          }
-        }
-      });
-    },
-    CallExpression(node) {
-      if (node.callee.type !== 'Identifier') {
-        return;
-      }
-      switch (node.callee.name) {
-        case 'getByPath':
-          visitGetByPathCall(node);
-          break;
-        case 'dotAccess':
-          visitDotAccessCall(node);
-          break;
-      }
-    },
-    TaggedTemplateExpression(node) {
-      if (currentMethod[0] === 'getConfigs') {
-        return;
-      }
-      if (isGraphQLTemplate(node)) {
-        templateLiterals.push(node);
-      }
-    },
-    MemberExpression: visitMemberExpression,
-    OptionalMemberExpression: visitMemberExpression,
-    ObjectPattern(node) {
-      node.properties.forEach(node => {
-        if (node.type === 'Property' && !node.computed) {
-          foundMemberAccesses[node.key.name] = true;
-        }
-      });
-    },
-    MethodDefinition(node) {
-      currentMethod.unshift(node.key.name);
-    },
-    'MethodDefinition:exit'(_node) {
-      currentMethod.shift();
-    }
-  };
-}
-
-module.exports = rule;
diff --git a/node_modules/eslint-plugin-relay/src/utils.js b/node_modules/eslint-plugin-relay/src/utils.js
deleted file mode 100644
index e9ad7d5..0000000
--- a/node_modules/eslint-plugin-relay/src/utils.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-const path = require('path');
-
-const graphql = require('graphql');
-const parse = graphql.parse;
-
-function getGraphQLAST(taggedTemplateExpression) {
-  if (!isGraphQLTag(taggedTemplateExpression.tag)) {
-    return null;
-  }
-  if (taggedTemplateExpression.quasi.quasis.length !== 1) {
-    // has substitutions, covered by graphql-syntax rule
-    return null;
-  }
-  const quasi = taggedTemplateExpression.quasi.quasis[0];
-  try {
-    return parse(quasi.value.cooked);
-  } catch (error) {
-    // Invalid syntax, covered by graphql-syntax rule
-    return null;
-  }
-}
-
-/**
- * Returns a loc object for error reporting.
- */
-function getLoc(context, templateNode, graphQLNode) {
-  const startAndEnd = getRange(context, templateNode, graphQLNode);
-  const start = startAndEnd[0];
-  const end = startAndEnd[1];
-  return {
-    start: getLocFromIndex(context.getSourceCode(), start),
-    end: getLocFromIndex(context.getSourceCode(), end)
-  };
-}
-
-// TODO remove after we no longer have to support ESLint 3.5.0
-function getLocFromIndex(sourceCode, index) {
-  if (sourceCode.getSourceCode) {
-    return sourceCode.getSourceCode(index);
-  }
-  let pos = 0;
-  for (let line = 0; line < sourceCode.lines.length; line++) {
-    const lineLength = sourceCode.lines[line].length;
-    if (index <= pos + lineLength) {
-      return {line: line + 1, column: index - pos};
-    }
-    pos += lineLength + 1;
-  }
-  return null;
-}
-
-// Copied directly from Relay
-function getModuleName(filePath) {
-  // index.js -> index
-  // index.js.flow -> index.js
-  let filename = path.basename(filePath, path.extname(filePath));
-
-  // index.js -> index (when extension has multiple segments)
-  // index.react -> index (when extension has multiple segments)
-  filename = filename.replace(/(\.(?!ios|android)[_a-zA-Z0-9\\-]+)+/g, '');
-
-  // /path/to/button/index.js -> button
-  let moduleName =
-    filename === 'index' ? path.basename(path.dirname(filePath)) : filename;
-
-  // foo-bar -> fooBar
-  // Relay compatibility mode splits on _, so we can't use that here.
-  moduleName = moduleName.replace(/[^a-zA-Z0-9]+(\w?)/g, (match, next) =>
-    next.toUpperCase()
-  );
-
-  return moduleName;
-}
-
-/**
- * Returns a range object for auto fixers.
- */
-function getRange(context, templateNode, graphQLNode) {
-  const graphQLStart = templateNode.quasi.quasis[0].start;
-  return [
-    graphQLStart + graphQLNode.loc.start,
-    graphQLStart + graphQLNode.loc.end
-  ];
-}
-
-function isGraphQLTag(tag) {
-  return tag.type === 'Identifier' && tag.name === 'graphql';
-}
-
-function isGraphQLDeprecatedTag(tag) {
-  return tag.type === 'Identifier' && tag.name === 'graphql_DEPRECATED';
-}
-
-function shouldLint(context) {
-  return /graphql|relay/i.test(context.getSourceCode().text);
-}
-
-module.exports = {
-  getGraphQLAST: getGraphQLAST,
-  getLoc: getLoc,
-  getLocFromIndex: getLocFromIndex,
-  getModuleName: getModuleName,
-  getRange: getRange,
-  isGraphQLTag: isGraphQLTag,
-  isGraphQLDeprecatedTag: isGraphQLDeprecatedTag,
-  shouldLint: shouldLint
-};
diff --git a/node_modules/eslint-scope/CHANGELOG.md b/node_modules/eslint-scope/CHANGELOG.md
index 5372ac4..cc07de0 100644
--- a/node_modules/eslint-scope/CHANGELOG.md
+++ b/node_modules/eslint-scope/CHANGELOG.md
@@ -1,3 +1,9 @@
+v5.1.1 - September 12, 2020
+
+* [`9b528d7`](https://github.com/eslint/eslint-scope/commit/9b528d778c381718c12dabfb7f1c0e0dc6b36e49) Upgrade: esrecurse version to ^4.3.0 (#64) (Timofey Kachalov)
+* [`f758bbc`](https://github.com/eslint/eslint-scope/commit/f758bbc3d49b9b9ea2289a5d6a6bba8dcf2c4903) Chore: fix definiton -> definition typo in comments (#63) (Kevin Kirsche)
+* [`7513734`](https://github.com/eslint/eslint-scope/commit/751373473375b3f2edc4eaf1c8d2763d8435bb72) Chore: move to GitHub Actions (#62) (Kai Cataldo)
+
 v5.1.0 - June 4, 2020
 
 * [`d4a3764`](https://github.com/eslint/eslint-scope/commit/d4a376434b16289c1a428d7e304576e997520873) Update: support new export syntax (#56) (Toru Nagashima)
diff --git a/node_modules/eslint-scope/lib/scope.js b/node_modules/eslint-scope/lib/scope.js
index 5c4c967..bdb5f63 100644
--- a/node_modules/eslint-scope/lib/scope.js
+++ b/node_modules/eslint-scope/lib/scope.js
@@ -37,7 +37,7 @@
  * Test if scope is struct
  * @param {Scope} scope - scope
  * @param {Block} block - block
- * @param {boolean} isMethodDefinition - is method definiton
+ * @param {boolean} isMethodDefinition - is method definition
  * @param {boolean} useDirective - use directive
  * @returns {boolean} is strict scope
  */
diff --git a/node_modules/eslint-scope/package.json b/node_modules/eslint-scope/package.json
index a19fd8c..b700b92 100644
--- a/node_modules/eslint-scope/package.json
+++ b/node_modules/eslint-scope/package.json
@@ -3,7 +3,7 @@
   "description": "ECMAScript scope analyzer for ESLint",
   "homepage": "http://github.com/eslint/eslint-scope",
   "main": "lib/index.js",
-  "version": "5.1.0",
+  "version": "5.1.1",
   "engines": {
     "node": ">=8.0.0"
   },
@@ -27,7 +27,7 @@
     "lib"
   ],
   "dependencies": {
-    "esrecurse": "^4.1.0",
+    "esrecurse": "^4.3.0",
     "estraverse": "^4.1.1"
   },
   "devDependencies": {
diff --git a/node_modules/eslint/CHANGELOG.md b/node_modules/eslint/CHANGELOG.md
index 2898526..6b6919d 100644
--- a/node_modules/eslint/CHANGELOG.md
+++ b/node_modules/eslint/CHANGELOG.md
@@ -1,3 +1,34 @@
+v7.11.0 - October 9, 2020
+
+* [`23e966f`](https://github.com/eslint/eslint/commit/23e966f6cf2a6c6b699dff5d6950ece3cc396498) Chore: Refactor CLIEngine tests (refs #13481) (#13709) (Nicholas C. Zakas)
+* [`fa9429a`](https://github.com/eslint/eslint/commit/fa9429aac0ffed505f3f02e8fc75f646c69f5c61) Fix: don't count line after EOF in max-lines (#13735) (Milos Djermanovic)
+* [`d973675`](https://github.com/eslint/eslint/commit/d973675a5c06a2bd4f8ce640c78b67842cfebfd4) Docs: Update anchor links to use existing linkrefs (refs #13715) (#13741) (Brandon Mills)
+* [`2c6d774`](https://github.com/eslint/eslint/commit/2c6d774c89dcd14f386bd9d73d451fa2a892c3ef) Docs: Fix typos (#13730) (Frieder Bluemle)
+* [`cc468c0`](https://github.com/eslint/eslint/commit/cc468c01021385a028de727eefcd442e7f34875c) Upgrade: eslint-visitor-keys@2.0.0 (#13732) (Milos Djermanovic)
+* [`ab0ac6c`](https://github.com/eslint/eslint/commit/ab0ac6c532fb7b7d49779c8913146244d680743b) Docs: Fix anchor links (#13715) (Gary Moore)
+* [`27f0de6`](https://github.com/eslint/eslint/commit/27f0de62e6281c28043be38ef051818c9edc15cd) Fix: account for linebreaks before postfix `++`/`--` in no-extra-parens (#13731) (Milos Djermanovic)
+* [`da78fa1`](https://github.com/eslint/eslint/commit/da78fa11632a2908db4ac494012a16f5d5a88a64) Update: support async arrow fn in function-paren-newline (fixes #13728) (#13729) (Michal Dziekonski)
+* [`fe301b8`](https://github.com/eslint/eslint/commit/fe301b8cc0762d7f4edd59603ca51ed0ec0c2a43) Docs: Add configuration comments in examples (#13738) (YeonJuan)
+* [`504408c`](https://github.com/eslint/eslint/commit/504408cd65e9d8827b2b8bbeb8f589df90eee523) Sponsors: Sync README with website (ESLint Jenkins)
+* [`3900659`](https://github.com/eslint/eslint/commit/390065985b2289ad4412a83598e3e833c382d27e) Sponsors: Sync README with website (ESLint Jenkins)
+* [`c1974b3`](https://github.com/eslint/eslint/commit/c1974b3f7169a8e5fab7007df92d02d8c1a8d5a3) Sponsors: Sync README with website (ESLint Jenkins)
+* [`6f4abe5`](https://github.com/eslint/eslint/commit/6f4abe5d5ade2711cc4c21bc8485af952763c2d3) Sponsors: Sync README with website (ESLint Jenkins)
+
+v7.10.0 - September 26, 2020
+
+* [`6919fbb`](https://github.com/eslint/eslint/commit/6919fbb83f86552b0f49ae749da866e4edc7c46a) Docs: Clarify that ignorePattern should be a string (refs #13029) (#13718) (Brandon Mills)
+* [`07d9bea`](https://github.com/eslint/eslint/commit/07d9bea7c6f953e8f754afffc9752edcee799431) Update: Add ignorePattern to no-inline-comments (#13029) (Edie Lemoine)
+* [`d79bbe9`](https://github.com/eslint/eslint/commit/d79bbe982930b53358d34ad91cc6e5eaac8ddede) Docs: fix typo (#13717) (Alexander Liu)
+* [`9b8490e`](https://github.com/eslint/eslint/commit/9b8490ee6391c986b1314540a92b71d8c1e0efc4) Docs: grammatical error (#13687) (rajdeep)
+* [`cb44e93`](https://github.com/eslint/eslint/commit/cb44e93f4780e925a75a68ce2f7f6d065b5f756c) Fix: prefer-destructuring invalid autofix with computed property access (#13704) (Milos Djermanovic)
+* [`46c73b1`](https://github.com/eslint/eslint/commit/46c73b159a5ceed2f7f26f254fd97e459fb0e81a) Upgrade: eslint-scope@5.1.1 (#13716) (Milos Djermanovic)
+* [`b7b12ba`](https://github.com/eslint/eslint/commit/b7b12ba0bd4e9c66883f11e97de8ed84b600cdaa) Chore: Move comment to make tests more organized (#13707) (Yusuke Tanaka)
+* [`51674a4`](https://github.com/eslint/eslint/commit/51674a4113a1ca877094606bbf4938ab06cc1aad) Docs: Add missing quotes (#13714) (Lucio Paiva)
+* [`7c34a98`](https://github.com/eslint/eslint/commit/7c34a982aaf93a02348f56c9ce887c7dcf51b5bd) Chore: remove mistakenly added file (#13710) (Milos Djermanovic)
+* [`30b76c9`](https://github.com/eslint/eslint/commit/30b76c9a13fae3dff59f7db406d6c66f11152973) Docs: Clarify package.json requirement in Getting Started (refs #13549) (#13696) (Nicholas C. Zakas)
+* [`044560d`](https://github.com/eslint/eslint/commit/044560dcc74db98b28e293da2e2f3b41ecbf5884) Sponsors: Sync README with website (ESLint Jenkins)
+* [`54000d1`](https://github.com/eslint/eslint/commit/54000d13f27d5255851b5ac0606ad027e2b8d331) Sponsors: Sync README with website (ESLint Jenkins)
+
 v7.9.0 - September 12, 2020
 
 * [`3ca2700`](https://github.com/eslint/eslint/commit/3ca27004ece5016ba7aed775f01ad13bc9282296) Fix: Corrected notice for invalid (:) plugin names (#13473) (Josh Goldberg)
diff --git a/node_modules/eslint/README.md b/node_modules/eslint/README.md
index f5081d2..4d527e8 100644
--- a/node_modules/eslint/README.md
+++ b/node_modules/eslint/README.md
@@ -1,4 +1,4 @@
-[![NPM version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint)
+[![npm version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint)
 [![Downloads](https://img.shields.io/npm/dm/eslint.svg)](https://www.npmjs.com/package/eslint)
 [![Build Status](https://github.com/eslint/eslint/workflows/CI/badge.svg)](https://github.com/eslint/eslint/actions)
 [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_shield)
@@ -266,7 +266,7 @@
 <h3>Gold Sponsors</h3>
 <p><a href="https://www.salesforce.com"><img src="https://images.opencollective.com/salesforce/ca8f997/logo.png" alt="Salesforce" height="96"></a> <a href="https://www.airbnb.com/"><img src="https://images.opencollective.com/airbnb/d327d66/logo.png" alt="Airbnb" height="96"></a> <a href="https://aka.ms/microsoftfossfund"><img src="https://avatars1.githubusercontent.com/u/67931232?u=7fddc652a464d7151b97e8f108392af7d54fa3e8&v=4" alt="Microsoft FOSS Fund Sponsorships" height="96"></a></p><h3>Silver Sponsors</h3>
 <p><a href="https://liftoff.io/"><img src="https://images.opencollective.com/liftoff/5c4fa84/logo.png" alt="Liftoff" height="64"></a> <a href="https://www.ampproject.org/"><img src="https://images.opencollective.com/amp/c8a3b25/logo.png" alt="AMP Project" height="64"></a></p><h3>Bronze Sponsors</h3>
-<p><a href="https://buy.fineproxy.org/eng/"><img src="https://images.opencollective.com/buy-fineproxy-org/2002c40/logo.png" alt="Buy.Fineproxy.Org" height="32"></a> <a href="https://www.veikkaajat.com"><img src="https://images.opencollective.com/veikkaajat/b92b427/logo.png" alt="Veikkaajat.com" height="32"></a> <a href="https://www.nettikasinot.media/"><img src="https://images.opencollective.com/nettikasinot-media/2dba7da/logo.png" alt="Nettikasinot.media" height="32"></a> <a href="https://mytruemedia.com/"><img src="https://images.opencollective.com/my-true-media/03e2168/logo.png" alt="My True Media" height="32"></a> <a href="https://www.norgekasino.com"><img src="https://images.opencollective.com/norgekasino/ecfd57a/logo.png" alt="Norgekasino" height="32"></a> <a href="https://www.japanesecasino.com/"><img src="https://images.opencollective.com/japanesecasino/b0ffe3c/logo.png" alt="Japanesecasino" height="32"></a> <a href="https://www.casinotop.com/"><img src="https://images.opencollective.com/casinotop-com/10fd95b/logo.png" alt="CasinoTop.com" height="32"></a> <a href="https://www.casinotopp.net/"><img src="https://images.opencollective.com/casino-topp/1dd399a/logo.png" alt="Casino Topp" height="32"></a> <a href="https://www.crosswordsolver.org/anagram-solver/"><img src="https://images.opencollective.com/anagram-solver/2666271/logo.png" alt="Anagram Solver" height="32"></a> <a href="https://www.kasinot.fi"><img src="https://images.opencollective.com/kasinot-fi/e09aa2e/logo.png" alt="Kasinot.fi" height="32"></a> <a href="https://www.pelisivut.com"><img src="https://images.opencollective.com/pelisivut/04f08f2/logo.png" alt="Pelisivut" height="32"></a> <a href="https://www.nettikasinot.org"><img src="https://images.opencollective.com/nettikasinot-org/53a4b44/logo.png" alt="Nettikasinot.org" height="32"></a> <a href="https://www.bonus.com.de/freispiele"><img src="https://images.opencollective.com/bonusfinder-deutschland/646169e/logo.png" alt="BonusFinder Deutschland" height="32"></a> <a href="null"><img src="https://images.opencollective.com/bugsnag-stability-monitoring/c2cef36/logo.png" alt="Bugsnag Stability Monitoring" height="32"></a> <a href="https://mixpanel.com"><img src="https://images.opencollective.com/mixpanel/cd682f7/logo.png" alt="Mixpanel" height="32"></a> <a href="https://www.vpsserver.com"><img src="https://images.opencollective.com/vpsservercom/logo.png" alt="VPS Server" height="32"></a> <a href="https://icons8.com"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8: free icons, photos, illustrations, and music" height="32"></a> <a href="https://discordapp.com"><img src="https://images.opencollective.com/discordapp/7e3d9a9/logo.png" alt="Discord" height="32"></a> <a href="https://themeisle.com"><img src="https://images.opencollective.com/themeisle/d5592fe/logo.png" alt="ThemeIsle" height="32"></a> <a href="https://www.marfeel.com/"><img src="https://images.opencollective.com/marfeel/4b88e30/logo.png" alt="Marfeel" height="32"></a> <a href="https://www.firesticktricks.com"><img src="https://images.opencollective.com/fire-stick-tricks/b8fbe2c/logo.png" alt="Fire Stick Tricks" height="32"></a></p>
+<p><a href="https://writersperhour.com/write-my-essay"><img src="https://images.opencollective.com/writersperhour/5787d4b/logo.png" alt="Writers Per Hour" height="32"></a> <a href="https://www.betacalendars.com/printable-calendar"><img src="https://images.opencollective.com/betacalendars/9334b33/logo.png" alt="2021 calendar" height="32"></a> <a href="https://buy.fineproxy.org/eng/"><img src="https://images.opencollective.com/buy-fineproxy-org/2002c40/logo.png" alt="Buy.Fineproxy.Org" height="32"></a> <a href="https://www.veikkaajat.com"><img src="https://images.opencollective.com/veikkaajat/b92b427/logo.png" alt="Veikkaajat.com" height="32"></a> <a href="https://www.nettikasinot.media/"><img src="https://images.opencollective.com/nettikasinot-media/2dba7da/logo.png" alt="Nettikasinot.media" height="32"></a> <a href="https://www.norgekasino.com"><img src="https://images.opencollective.com/norgekasino/ecfd57a/logo.png" alt="Norgekasino" height="32"></a> <a href="https://www.japanesecasino.com/"><img src="https://images.opencollective.com/japanesecasino/b0ffe3c/logo.png" alt="Japanesecasino" height="32"></a> <a href="https://www.casinotop.com/"><img src="https://images.opencollective.com/casinotop-com/10fd95b/logo.png" alt="CasinoTop.com" height="32"></a> <a href="https://www.casinotopp.net/"><img src="https://images.opencollective.com/casino-topp/1dd399a/logo.png" alt="Casino Topp" height="32"></a> <a href="https://www.crosswordsolver.org/anagram-solver/"><img src="https://images.opencollective.com/anagram-solver/2666271/logo.png" alt="Anagram Solver" height="32"></a> <a href="https://www.kasinot.fi"><img src="https://images.opencollective.com/kasinot-fi/e09aa2e/logo.png" alt="Kasinot.fi" height="32"></a> <a href="https://www.pelisivut.com"><img src="https://images.opencollective.com/pelisivut/04f08f2/logo.png" alt="Pelisivut" height="32"></a> <a href="https://www.nettikasinot.org"><img src="https://images.opencollective.com/nettikasinot-org/53a4b44/logo.png" alt="Nettikasinot.org" height="32"></a> <a href="https://www.bonus.com.de/freispiele"><img src="https://images.opencollective.com/bonusfinder-deutschland/646169e/logo.png" alt="BonusFinder Deutschland" height="32"></a> <a href="null"><img src="https://images.opencollective.com/bugsnag-stability-monitoring/c2cef36/logo.png" alt="Bugsnag Stability Monitoring" height="32"></a> <a href="https://mixpanel.com"><img src="https://images.opencollective.com/mixpanel/cd682f7/logo.png" alt="Mixpanel" height="32"></a> <a href="https://www.vpsserver.com"><img src="https://images.opencollective.com/vpsservercom/logo.png" alt="VPS Server" height="32"></a> <a href="https://icons8.com"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8: free icons, photos, illustrations, and music" height="32"></a> <a href="https://discordapp.com"><img src="https://images.opencollective.com/discordapp/7e3d9a9/logo.png" alt="Discord" height="32"></a> <a href="https://themeisle.com"><img src="https://images.opencollective.com/themeisle/d5592fe/logo.png" alt="ThemeIsle" height="32"></a> <a href="https://www.marfeel.com/"><img src="https://images.opencollective.com/marfeel/4b88e30/logo.png" alt="Marfeel" height="32"></a> <a href="https://www.firesticktricks.com"><img src="https://images.opencollective.com/fire-stick-tricks/b8fbe2c/logo.png" alt="Fire Stick Tricks" height="32"></a></p>
 <!--sponsorsend-->
 
 ## <a name="technology-sponsors"></a>Technology Sponsors
diff --git a/node_modules/eslint/lib/rules/function-paren-newline.js b/node_modules/eslint/lib/rules/function-paren-newline.js
index 894c8e3..9d8d67b 100644
--- a/node_modules/eslint/lib/rules/function-paren-newline.js
+++ b/node_modules/eslint/lib/rules/function-paren-newline.js
@@ -218,7 +218,7 @@
                 }
 
                 case "ArrowFunctionExpression": {
-                    const firstToken = sourceCode.getFirstToken(node);
+                    const firstToken = sourceCode.getFirstToken(node, { skip: (node.async ? 1 : 0) });
 
                     if (!astUtils.isOpeningParenToken(firstToken)) {
 
diff --git a/node_modules/eslint/lib/rules/max-lines.js b/node_modules/eslint/lib/rules/max-lines.js
index f33adbd..0c7e761 100644
--- a/node_modules/eslint/lib/rules/max-lines.js
+++ b/node_modules/eslint/lib/rules/max-lines.js
@@ -131,6 +131,14 @@
                     text
                 }));
 
+                /*
+                 * If file ends with a linebreak, `sourceCode.lines` will have one extra empty line at the end.
+                 * That isn't a real line, so we shouldn't count it.
+                 */
+                if (lines.length > 1 && lodash.last(lines).text === "") {
+                    lines.pop();
+                }
+
                 if (skipBlankLines) {
                     lines = lines.filter(l => l.text.trim() !== "");
                 }
diff --git a/node_modules/eslint/lib/rules/no-extra-parens.js b/node_modules/eslint/lib/rules/no-extra-parens.js
index e9d394c..7afe762 100644
--- a/node_modules/eslint/lib/rules/no-extra-parens.js
+++ b/node_modules/eslint/lib/rules/no-extra-parens.js
@@ -1109,7 +1109,22 @@
             },
 
             UnaryExpression: checkArgumentWithPrecedence,
-            UpdateExpression: checkArgumentWithPrecedence,
+            UpdateExpression(node) {
+                if (node.prefix) {
+                    checkArgumentWithPrecedence(node);
+                } else {
+                    const { argument } = node;
+                    const operatorToken = sourceCode.getLastToken(node);
+
+                    if (argument.loc.end.line === operatorToken.loc.start.line) {
+                        checkArgumentWithPrecedence(node);
+                    } else {
+                        if (hasDoubleExcessParens(argument)) {
+                            report(argument);
+                        }
+                    }
+                }
+            },
             AwaitExpression: checkArgumentWithPrecedence,
 
             VariableDeclarator(node) {
diff --git a/node_modules/eslint/lib/rules/no-inline-comments.js b/node_modules/eslint/lib/rules/no-inline-comments.js
index 41b0f1e..dec2786 100644
--- a/node_modules/eslint/lib/rules/no-inline-comments.js
+++ b/node_modules/eslint/lib/rules/no-inline-comments.js
@@ -21,7 +21,17 @@
             url: "https://eslint.org/docs/rules/no-inline-comments"
         },
 
-        schema: [],
+        schema: [
+            {
+                type: "object",
+                properties: {
+                    ignorePattern: {
+                        type: "string"
+                    }
+                },
+                additionalProperties: false
+            }
+        ],
 
         messages: {
             unexpectedInlineComment: "Unexpected comment inline with code."
@@ -30,6 +40,12 @@
 
     create(context) {
         const sourceCode = context.getSourceCode();
+        const options = context.options[0];
+        let customIgnoreRegExp;
+
+        if (options && options.ignorePattern) {
+            customIgnoreRegExp = new RegExp(options.ignorePattern, "u");
+        }
 
         /**
          * Will check that comments are not on lines starting with or ending with code
@@ -51,6 +67,11 @@
                 return;
             }
 
+            // Matches the ignore pattern
+            if (customIgnoreRegExp && customIgnoreRegExp.test(node.value)) {
+                return;
+            }
+
             // JSX Exception
             if (
                 (isPreambleEmpty || preamble === "{") &&
@@ -80,9 +101,9 @@
 
         return {
             Program() {
-                const comments = sourceCode.getAllComments();
-
-                comments.filter(token => token.type !== "Shebang").forEach(testCodeAroundComment);
+                sourceCode.getAllComments()
+                    .filter(token => token.type !== "Shebang")
+                    .forEach(testCodeAroundComment);
             }
         };
     }
diff --git a/node_modules/eslint/lib/rules/prefer-destructuring.js b/node_modules/eslint/lib/rules/prefer-destructuring.js
index d3314dc..66e412f 100644
--- a/node_modules/eslint/lib/rules/prefer-destructuring.js
+++ b/node_modules/eslint/lib/rules/prefer-destructuring.js
@@ -163,6 +163,8 @@
             return node.type === "VariableDeclarator" &&
                 node.id.type === "Identifier" &&
                 node.init.type === "MemberExpression" &&
+                !node.init.computed &&
+                node.init.property.type === "Identifier" &&
                 node.id.name === node.init.property.name;
         }
 
diff --git a/node_modules/eslint/node_modules/.bin/semver b/node_modules/eslint/node_modules/.bin/semver
index 5aaadf4..20a3df4 120000
--- a/node_modules/eslint/node_modules/.bin/semver
+++ b/node_modules/eslint/node_modules/.bin/semver
@@ -1 +1 @@
-../semver/bin/semver.js
\ No newline at end of file
+../../../jest-circus/node_modules/semver/bin/semver.js
\ No newline at end of file
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md b/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md
new file mode 100644
index 0000000..a980b62
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md
@@ -0,0 +1,30 @@
+v2.0.0 - August 14, 2020
+
+* [`fb86ca3`](https://github.com/eslint/eslint-visitor-keys/commit/fb86ca315daafc84e23ed9005db40b0892b972a6) Breaking: drop support for Node <10 (#13) (Kai Cataldo)
+* [`69383b3`](https://github.com/eslint/eslint-visitor-keys/commit/69383b372915e33ada094880ecc6b6e8f8c7ca4e) Chore: move to GitHub Actions (#14) (Kai Cataldo)
+
+v1.3.0 - June 19, 2020
+
+* [`c92dd7f`](https://github.com/eslint/eslint-visitor-keys/commit/c92dd7ff96f0044dba12d681406a025b92b4c437) Update: add `ChainExpression` node (#12) (Toru Nagashima)
+
+v1.2.0 - June 4, 2020
+
+* [`21f28bf`](https://github.com/eslint/eslint-visitor-keys/commit/21f28bf11be5329d740a8bf6bdbcd0ef13bbf1a2) Update: added exported in exportAllDeclaration key (#10) (Anix)
+
+v1.1.0 - August 13, 2019
+
+* [`9331cc0`](https://github.com/eslint/eslint-visitor-keys/commit/9331cc09e756e65b9044c9186445a474b037fac6) Update: add ImportExpression (#8) (Toru Nagashima)
+* [`5967f58`](https://github.com/eslint/eslint-visitor-keys/commit/5967f583b04f17fba9226aaa394e45d476d2b8af) Chore: add supported Node.js versions to CI (#7) (Kai Cataldo)
+* [`6f7c60f`](https://github.com/eslint/eslint-visitor-keys/commit/6f7c60fef2ceec9f6323202df718321cec45cab0) Upgrade: eslint-release@1.0.0 (#5) (Teddy Katz)
+
+v1.0.0 - December 18, 2017
+
+* 1f6bd38 Breaking: update keys (#4) (Toru Nagashima)
+
+v0.1.0 - November 17, 2017
+
+* 17b4a88 Chore: update `repository` field in package.json (#3) (Toru Nagashima)
+* a5a026b New: eslint-visitor-keys (#1) (Toru Nagashima)
+* a1a48b8 Update: Change license to Apache 2 (#2) (Ilya Volodin)
+* 2204715 Initial commit (Toru Nagashima)
+
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE b/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE
new file mode 100644
index 0000000..17a2553
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright contributors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/README.md b/node_modules/eslint/node_modules/eslint-visitor-keys/README.md
new file mode 100644
index 0000000..250f5fa
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/README.md
@@ -0,0 +1,98 @@
+# eslint-visitor-keys
+
+[![npm version](https://img.shields.io/npm/v/eslint-visitor-keys.svg)](https://www.npmjs.com/package/eslint-visitor-keys)
+[![Downloads/month](https://img.shields.io/npm/dm/eslint-visitor-keys.svg)](http://www.npmtrends.com/eslint-visitor-keys)
+[![Build Status](https://travis-ci.org/eslint/eslint-visitor-keys.svg?branch=master)](https://travis-ci.org/eslint/eslint-visitor-keys)
+[![Dependency Status](https://david-dm.org/eslint/eslint-visitor-keys.svg)](https://david-dm.org/eslint/eslint-visitor-keys)
+
+Constants and utilities about visitor keys to traverse AST.
+
+## 💿 Installation
+
+Use [npm] to install.
+
+```bash
+$ npm install eslint-visitor-keys
+```
+
+### Requirements
+
+- [Node.js] 4.0.0 or later.
+
+## 📖 Usage
+
+```js
+const evk = require("eslint-visitor-keys")
+```
+
+### evk.KEYS
+
+> type: `{ [type: string]: string[] | undefined }`
+
+Visitor keys. This keys are frozen.
+
+This is an object. Keys are the type of [ESTree] nodes. Their values are an array of property names which have child nodes.
+
+For example:
+
+```
+console.log(evk.KEYS.AssignmentExpression) // → ["left", "right"]
+```
+
+### evk.getKeys(node)
+
+> type: `(node: object) => string[]`
+
+Get the visitor keys of a given AST node.
+
+This is similar to `Object.keys(node)` of ES Standard, but some keys are excluded: `parent`, `leadingComments`, `trailingComments`, and names which start with `_`.
+
+This will be used to traverse unknown nodes.
+
+For example:
+
+```
+const node = {
+    type: "AssignmentExpression",
+    left: { type: "Identifier", name: "foo" },
+    right: { type: "Literal", value: 0 }
+}
+console.log(evk.getKeys(node)) // → ["type", "left", "right"]
+```
+
+### evk.unionWith(additionalKeys)
+
+> type: `(additionalKeys: object) => { [type: string]: string[] | undefined }`
+
+Make the union set with `evk.KEYS` and the given keys.
+
+- The order of keys is, `additionalKeys` is at first, then `evk.KEYS` is concatenated after that.
+- It removes duplicated keys as keeping the first one.
+
+For example:
+
+```
+console.log(evk.unionWith({
+    MethodDefinition: ["decorators"]
+})) // → { ..., MethodDefinition: ["decorators", "key", "value"], ... }
+```
+
+## 📰 Change log
+
+See [GitHub releases](https://github.com/eslint/eslint-visitor-keys/releases).
+
+## 🍻 Contributing
+
+Welcome. See [ESLint contribution guidelines](https://eslint.org/docs/developer-guide/contributing/).
+
+### Development commands
+
+- `npm test` runs tests and measures code coverage.
+- `npm run lint` checks source codes with ESLint.
+- `npm run coverage` opens the code coverage report of the previous test with your default browser.
+- `npm run release` publishes this package to [npm] registory.
+
+
+[npm]: https://www.npmjs.com/
+[Node.js]: https://nodejs.org/en/
+[ESTree]: https://github.com/estree/estree
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js
new file mode 100644
index 0000000..cd8a326
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js
@@ -0,0 +1,81 @@
+/**
+ * @author Toru Nagashima <https://github.com/mysticatea>
+ * See LICENSE file in root directory for full license.
+ */
+"use strict";
+
+const KEYS = require("./visitor-keys.json");
+
+// Types.
+const NODE_TYPES = Object.freeze(Object.keys(KEYS));
+
+// Freeze the keys.
+for (const type of NODE_TYPES) {
+    Object.freeze(KEYS[type]);
+}
+Object.freeze(KEYS);
+
+// List to ignore keys.
+const KEY_BLACKLIST = new Set([
+    "parent",
+    "leadingComments",
+    "trailingComments"
+]);
+
+/**
+ * Check whether a given key should be used or not.
+ * @param {string} key The key to check.
+ * @returns {boolean} `true` if the key should be used.
+ */
+function filterKey(key) {
+    return !KEY_BLACKLIST.has(key) && key[0] !== "_";
+}
+
+//------------------------------------------------------------------------------
+// Public interfaces
+//------------------------------------------------------------------------------
+
+module.exports = Object.freeze({
+
+    /**
+     * Visitor keys.
+     * @type {{ [type: string]: string[] | undefined }}
+     */
+    KEYS,
+
+    /**
+     * Get visitor keys of a given node.
+     * @param {Object} node The AST node to get keys.
+     * @returns {string[]} Visitor keys of the node.
+     */
+    getKeys(node) {
+        return Object.keys(node).filter(filterKey);
+    },
+
+    // Disable valid-jsdoc rule because it reports syntax error on the type of @returns.
+    // eslint-disable-next-line valid-jsdoc
+    /**
+     * Make the union set with `KEYS` and given keys.
+     * @param {Object} additionalKeys The additional keys.
+     * @returns {{ [type: string]: string[] | undefined }} The union set.
+     */
+    unionWith(additionalKeys) {
+        const retv = Object.assign({}, KEYS);
+
+        for (const type of Object.keys(additionalKeys)) {
+            if (retv.hasOwnProperty(type)) {
+                const keys = new Set(additionalKeys[type]);
+
+                for (const key of retv[type]) {
+                    keys.add(key);
+                }
+
+                retv[type] = Object.freeze(Array.from(keys));
+            } else {
+                retv[type] = Object.freeze(Array.from(additionalKeys[type]));
+            }
+        }
+
+        return Object.freeze(retv);
+    }
+});
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json
new file mode 100644
index 0000000..a33bbc6
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json
@@ -0,0 +1,284 @@
+{
+    "AssignmentExpression": [
+        "left",
+        "right"
+    ],
+    "AssignmentPattern": [
+        "left",
+        "right"
+    ],
+    "ArrayExpression": [
+        "elements"
+    ],
+    "ArrayPattern": [
+        "elements"
+    ],
+    "ArrowFunctionExpression": [
+        "params",
+        "body"
+    ],
+    "AwaitExpression": [
+        "argument"
+    ],
+    "BlockStatement": [
+        "body"
+    ],
+    "BinaryExpression": [
+        "left",
+        "right"
+    ],
+    "BreakStatement": [
+        "label"
+    ],
+    "CallExpression": [
+        "callee",
+        "arguments"
+    ],
+    "CatchClause": [
+        "param",
+        "body"
+    ],
+    "ChainExpression": [
+        "expression"
+    ],
+    "ClassBody": [
+        "body"
+    ],
+    "ClassDeclaration": [
+        "id",
+        "superClass",
+        "body"
+    ],
+    "ClassExpression": [
+        "id",
+        "superClass",
+        "body"
+    ],
+    "ConditionalExpression": [
+        "test",
+        "consequent",
+        "alternate"
+    ],
+    "ContinueStatement": [
+        "label"
+    ],
+    "DebuggerStatement": [],
+    "DoWhileStatement": [
+        "body",
+        "test"
+    ],
+    "EmptyStatement": [],
+    "ExportAllDeclaration": [
+        "exported",
+        "source"
+    ],
+    "ExportDefaultDeclaration": [
+        "declaration"
+    ],
+    "ExportNamedDeclaration": [
+        "declaration",
+        "specifiers",
+        "source"
+    ],
+    "ExportSpecifier": [
+        "exported",
+        "local"
+    ],
+    "ExpressionStatement": [
+        "expression"
+    ],
+    "ExperimentalRestProperty": [
+        "argument"
+    ],
+    "ExperimentalSpreadProperty": [
+        "argument"
+    ],
+    "ForStatement": [
+        "init",
+        "test",
+        "update",
+        "body"
+    ],
+    "ForInStatement": [
+        "left",
+        "right",
+        "body"
+    ],
+    "ForOfStatement": [
+        "left",
+        "right",
+        "body"
+    ],
+    "FunctionDeclaration": [
+        "id",
+        "params",
+        "body"
+    ],
+    "FunctionExpression": [
+        "id",
+        "params",
+        "body"
+    ],
+    "Identifier": [],
+    "IfStatement": [
+        "test",
+        "consequent",
+        "alternate"
+    ],
+    "ImportDeclaration": [
+        "specifiers",
+        "source"
+    ],
+    "ImportDefaultSpecifier": [
+        "local"
+    ],
+    "ImportExpression": [
+        "source"
+    ],
+    "ImportNamespaceSpecifier": [
+        "local"
+    ],
+    "ImportSpecifier": [
+        "imported",
+        "local"
+    ],
+    "JSXAttribute": [
+        "name",
+        "value"
+    ],
+    "JSXClosingElement": [
+        "name"
+    ],
+    "JSXElement": [
+        "openingElement",
+        "children",
+        "closingElement"
+    ],
+    "JSXEmptyExpression": [],
+    "JSXExpressionContainer": [
+        "expression"
+    ],
+    "JSXIdentifier": [],
+    "JSXMemberExpression": [
+        "object",
+        "property"
+    ],
+    "JSXNamespacedName": [
+        "namespace",
+        "name"
+    ],
+    "JSXOpeningElement": [
+        "name",
+        "attributes"
+    ],
+    "JSXSpreadAttribute": [
+        "argument"
+    ],
+    "JSXText": [],
+    "JSXFragment": [
+        "openingFragment",
+        "children",
+        "closingFragment"
+    ],
+    "Literal": [],
+    "LabeledStatement": [
+        "label",
+        "body"
+    ],
+    "LogicalExpression": [
+        "left",
+        "right"
+    ],
+    "MemberExpression": [
+        "object",
+        "property"
+    ],
+    "MetaProperty": [
+        "meta",
+        "property"
+    ],
+    "MethodDefinition": [
+        "key",
+        "value"
+    ],
+    "NewExpression": [
+        "callee",
+        "arguments"
+    ],
+    "ObjectExpression": [
+        "properties"
+    ],
+    "ObjectPattern": [
+        "properties"
+    ],
+    "Program": [
+        "body"
+    ],
+    "Property": [
+        "key",
+        "value"
+    ],
+    "RestElement": [
+        "argument"
+    ],
+    "ReturnStatement": [
+        "argument"
+    ],
+    "SequenceExpression": [
+        "expressions"
+    ],
+    "SpreadElement": [
+        "argument"
+    ],
+    "Super": [],
+    "SwitchStatement": [
+        "discriminant",
+        "cases"
+    ],
+    "SwitchCase": [
+        "test",
+        "consequent"
+    ],
+    "TaggedTemplateExpression": [
+        "tag",
+        "quasi"
+    ],
+    "TemplateElement": [],
+    "TemplateLiteral": [
+        "quasis",
+        "expressions"
+    ],
+    "ThisExpression": [],
+    "ThrowStatement": [
+        "argument"
+    ],
+    "TryStatement": [
+        "block",
+        "handler",
+        "finalizer"
+    ],
+    "UnaryExpression": [
+        "argument"
+    ],
+    "UpdateExpression": [
+        "argument"
+    ],
+    "VariableDeclaration": [
+        "declarations"
+    ],
+    "VariableDeclarator": [
+        "id",
+        "init"
+    ],
+    "WhileStatement": [
+        "test",
+        "body"
+    ],
+    "WithStatement": [
+        "object",
+        "body"
+    ],
+    "YieldExpression": [
+        "argument"
+    ]
+}
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/package.json b/node_modules/eslint/node_modules/eslint-visitor-keys/package.json
new file mode 100644
index 0000000..a3b8dd6
--- /dev/null
+++ b/node_modules/eslint/node_modules/eslint-visitor-keys/package.json
@@ -0,0 +1,39 @@
+{
+  "name": "eslint-visitor-keys",
+  "version": "2.0.0",
+  "description": "Constants and utilities about visitor keys to traverse AST.",
+  "main": "lib/index.js",
+  "files": [
+    "lib"
+  ],
+  "engines": {
+    "node": ">=10"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "eslint": "^4.7.2",
+    "eslint-config-eslint": "^4.0.0",
+    "eslint-release": "^1.0.0",
+    "mocha": "^3.5.3",
+    "nyc": "^11.2.1",
+    "opener": "^1.4.3"
+  },
+  "scripts": {
+    "lint": "eslint lib tests/lib",
+    "test": "nyc mocha tests/lib",
+    "coverage": "nyc report --reporter lcov && opener coverage/lcov-report/index.html",
+    "generate-release": "eslint-generate-release",
+    "generate-alpharelease": "eslint-generate-prerelease alpha",
+    "generate-betarelease": "eslint-generate-prerelease beta",
+    "generate-rcrelease": "eslint-generate-prerelease rc",
+    "publish-release": "eslint-publish-release"
+  },
+  "repository": "eslint/eslint-visitor-keys",
+  "keywords": [],
+  "author": "Toru Nagashima (https://github.com/mysticatea)",
+  "license": "Apache-2.0",
+  "bugs": {
+    "url": "https://github.com/eslint/eslint-visitor-keys/issues"
+  },
+  "homepage": "https://github.com/eslint/eslint-visitor-keys#readme"
+}
diff --git a/node_modules/eslint/package.json b/node_modules/eslint/package.json
index 0ec47ad..e6930f5 100644
--- a/node_modules/eslint/package.json
+++ b/node_modules/eslint/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint",
-  "version": "7.9.0",
+  "version": "7.11.0",
   "author": "Nicholas C. Zakas <nicholas+npm@nczconsulting.com>",
   "description": "An AST-based pattern checker for JavaScript.",
   "bin": {
@@ -54,9 +54,9 @@
     "debug": "^4.0.1",
     "doctrine": "^3.0.0",
     "enquirer": "^2.3.5",
-    "eslint-scope": "^5.1.0",
+    "eslint-scope": "^5.1.1",
     "eslint-utils": "^2.1.0",
-    "eslint-visitor-keys": "^1.3.0",
+    "eslint-visitor-keys": "^2.0.0",
     "espree": "^7.3.0",
     "esquery": "^1.2.0",
     "esutils": "^2.0.2",
@@ -105,6 +105,7 @@
     "eslint-release": "^2.0.0",
     "eslump": "^2.0.0",
     "esprima": "^4.0.1",
+    "fs-teardown": "^0.1.0",
     "glob": "^7.1.6",
     "jsdoc": "^3.5.5",
     "karma": "^4.0.1",
diff --git a/node_modules/esrecurse/node_modules/estraverse/.jshintrc b/node_modules/esrecurse/node_modules/estraverse/.jshintrc
new file mode 100644
index 0000000..f642dae
--- /dev/null
+++ b/node_modules/esrecurse/node_modules/estraverse/.jshintrc
@@ -0,0 +1,16 @@
+{
+  "curly": true,
+  "eqeqeq": true,
+  "immed": true,
+  "eqnull": true,
+  "latedef": true,
+  "noarg": true,
+  "noempty": true,
+  "quotmark": "single",
+  "undef": true,
+  "unused": true,
+  "strict": true,
+  "trailing": true,
+
+  "node": true
+}
diff --git a/node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE.esprima b/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD
similarity index 100%
rename from node_modules/eslint-plugin-react/node_modules/doctrine/LICENSE.esprima
rename to node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD
diff --git a/node_modules/esrecurse/node_modules/estraverse/README.md b/node_modules/esrecurse/node_modules/estraverse/README.md
new file mode 100644
index 0000000..ccd3377
--- /dev/null
+++ b/node_modules/esrecurse/node_modules/estraverse/README.md
@@ -0,0 +1,153 @@
+### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.svg)](http://travis-ci.org/estools/estraverse)
+
+Estraverse ([estraverse](http://github.com/estools/estraverse)) is
+[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm)
+traversal functions from [esmangle project](http://github.com/estools/esmangle).
+
+### Documentation
+
+You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage).
+
+### Example Usage
+
+The following code will output all variables declared at the root of a file.
+
+```javascript
+estraverse.traverse(ast, {
+    enter: function (node, parent) {
+        if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration')
+            return estraverse.VisitorOption.Skip;
+    },
+    leave: function (node, parent) {
+        if (node.type == 'VariableDeclarator')
+          console.log(node.id.name);
+    }
+});
+```
+
+We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break.
+
+```javascript
+estraverse.traverse(ast, {
+    enter: function (node) {
+        this.break();
+    }
+});
+```
+
+And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it.
+
+```javascript
+result = estraverse.replace(tree, {
+    enter: function (node) {
+        // Replace it with replaced.
+        if (node.type === 'Literal')
+            return replaced;
+    }
+});
+```
+
+By passing `visitor.keys` mapping, we can extend estraverse traversing functionality.
+
+```javascript
+// This tree contains a user-defined `TestExpression` node.
+var tree = {
+    type: 'TestExpression',
+
+    // This 'argument' is the property containing the other **node**.
+    argument: {
+        type: 'Literal',
+        value: 20
+    },
+
+    // This 'extended' is the property not containing the other **node**.
+    extended: true
+};
+estraverse.traverse(tree, {
+    enter: function (node) { },
+
+    // Extending the existing traversing rules.
+    keys: {
+        // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ]
+        TestExpression: ['argument']
+    }
+});
+```
+
+By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes.
+
+```javascript
+// This tree contains a user-defined `TestExpression` node.
+var tree = {
+    type: 'TestExpression',
+
+    // This 'argument' is the property containing the other **node**.
+    argument: {
+        type: 'Literal',
+        value: 20
+    },
+
+    // This 'extended' is the property not containing the other **node**.
+    extended: true
+};
+estraverse.traverse(tree, {
+    enter: function (node) { },
+
+    // Iterating the child **nodes** of unknown nodes.
+    fallback: 'iteration'
+});
+```
+
+When `visitor.fallback` is a function, we can determine which keys to visit on each node.
+
+```javascript
+// This tree contains a user-defined `TestExpression` node.
+var tree = {
+    type: 'TestExpression',
+
+    // This 'argument' is the property containing the other **node**.
+    argument: {
+        type: 'Literal',
+        value: 20
+    },
+
+    // This 'extended' is the property not containing the other **node**.
+    extended: true
+};
+estraverse.traverse(tree, {
+    enter: function (node) { },
+
+    // Skip the `argument` property of each node
+    fallback: function(node) {
+        return Object.keys(node).filter(function(key) {
+            return key !== 'argument';
+        });
+    }
+});
+```
+
+### License
+
+Copyright (C) 2012-2016 [Yusuke Suzuki](http://github.com/Constellation)
+ (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/esrecurse/node_modules/estraverse/estraverse.js b/node_modules/esrecurse/node_modules/estraverse/estraverse.js
new file mode 100644
index 0000000..93225bb
--- /dev/null
+++ b/node_modules/esrecurse/node_modules/estraverse/estraverse.js
@@ -0,0 +1,801 @@
+/*
+  Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>
+  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/*jslint vars:false, bitwise:true*/
+/*jshint indent:4*/
+/*global exports:true*/
+(function clone(exports) {
+    'use strict';
+
+    var Syntax,
+        VisitorOption,
+        VisitorKeys,
+        BREAK,
+        SKIP,
+        REMOVE;
+
+    function deepCopy(obj) {
+        var ret = {}, key, val;
+        for (key in obj) {
+            if (obj.hasOwnProperty(key)) {
+                val = obj[key];
+                if (typeof val === 'object' && val !== null) {
+                    ret[key] = deepCopy(val);
+                } else {
+                    ret[key] = val;
+                }
+            }
+        }
+        return ret;
+    }
+
+    // based on LLVM libc++ upper_bound / lower_bound
+    // MIT License
+
+    function upperBound(array, func) {
+        var diff, len, i, current;
+
+        len = array.length;
+        i = 0;
+
+        while (len) {
+            diff = len >>> 1;
+            current = i + diff;
+            if (func(array[current])) {
+                len = diff;
+            } else {
+                i = current + 1;
+                len -= diff + 1;
+            }
+        }
+        return i;
+    }
+
+    Syntax = {
+        AssignmentExpression: 'AssignmentExpression',
+        AssignmentPattern: 'AssignmentPattern',
+        ArrayExpression: 'ArrayExpression',
+        ArrayPattern: 'ArrayPattern',
+        ArrowFunctionExpression: 'ArrowFunctionExpression',
+        AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.
+        BlockStatement: 'BlockStatement',
+        BinaryExpression: 'BinaryExpression',
+        BreakStatement: 'BreakStatement',
+        CallExpression: 'CallExpression',
+        CatchClause: 'CatchClause',
+        ChainExpression: 'ChainExpression',
+        ClassBody: 'ClassBody',
+        ClassDeclaration: 'ClassDeclaration',
+        ClassExpression: 'ClassExpression',
+        ComprehensionBlock: 'ComprehensionBlock',  // CAUTION: It's deferred to ES7.
+        ComprehensionExpression: 'ComprehensionExpression',  // CAUTION: It's deferred to ES7.
+        ConditionalExpression: 'ConditionalExpression',
+        ContinueStatement: 'ContinueStatement',
+        DebuggerStatement: 'DebuggerStatement',
+        DirectiveStatement: 'DirectiveStatement',
+        DoWhileStatement: 'DoWhileStatement',
+        EmptyStatement: 'EmptyStatement',
+        ExportAllDeclaration: 'ExportAllDeclaration',
+        ExportDefaultDeclaration: 'ExportDefaultDeclaration',
+        ExportNamedDeclaration: 'ExportNamedDeclaration',
+        ExportSpecifier: 'ExportSpecifier',
+        ExpressionStatement: 'ExpressionStatement',
+        ForStatement: 'ForStatement',
+        ForInStatement: 'ForInStatement',
+        ForOfStatement: 'ForOfStatement',
+        FunctionDeclaration: 'FunctionDeclaration',
+        FunctionExpression: 'FunctionExpression',
+        GeneratorExpression: 'GeneratorExpression',  // CAUTION: It's deferred to ES7.
+        Identifier: 'Identifier',
+        IfStatement: 'IfStatement',
+        ImportExpression: 'ImportExpression',
+        ImportDeclaration: 'ImportDeclaration',
+        ImportDefaultSpecifier: 'ImportDefaultSpecifier',
+        ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',
+        ImportSpecifier: 'ImportSpecifier',
+        Literal: 'Literal',
+        LabeledStatement: 'LabeledStatement',
+        LogicalExpression: 'LogicalExpression',
+        MemberExpression: 'MemberExpression',
+        MetaProperty: 'MetaProperty',
+        MethodDefinition: 'MethodDefinition',
+        ModuleSpecifier: 'ModuleSpecifier',
+        NewExpression: 'NewExpression',
+        ObjectExpression: 'ObjectExpression',
+        ObjectPattern: 'ObjectPattern',
+        Program: 'Program',
+        Property: 'Property',
+        RestElement: 'RestElement',
+        ReturnStatement: 'ReturnStatement',
+        SequenceExpression: 'SequenceExpression',
+        SpreadElement: 'SpreadElement',
+        Super: 'Super',
+        SwitchStatement: 'SwitchStatement',
+        SwitchCase: 'SwitchCase',
+        TaggedTemplateExpression: 'TaggedTemplateExpression',
+        TemplateElement: 'TemplateElement',
+        TemplateLiteral: 'TemplateLiteral',
+        ThisExpression: 'ThisExpression',
+        ThrowStatement: 'ThrowStatement',
+        TryStatement: 'TryStatement',
+        UnaryExpression: 'UnaryExpression',
+        UpdateExpression: 'UpdateExpression',
+        VariableDeclaration: 'VariableDeclaration',
+        VariableDeclarator: 'VariableDeclarator',
+        WhileStatement: 'WhileStatement',
+        WithStatement: 'WithStatement',
+        YieldExpression: 'YieldExpression'
+    };
+
+    VisitorKeys = {
+        AssignmentExpression: ['left', 'right'],
+        AssignmentPattern: ['left', 'right'],
+        ArrayExpression: ['elements'],
+        ArrayPattern: ['elements'],
+        ArrowFunctionExpression: ['params', 'body'],
+        AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.
+        BlockStatement: ['body'],
+        BinaryExpression: ['left', 'right'],
+        BreakStatement: ['label'],
+        CallExpression: ['callee', 'arguments'],
+        CatchClause: ['param', 'body'],
+        ChainExpression: ['expression'],
+        ClassBody: ['body'],
+        ClassDeclaration: ['id', 'superClass', 'body'],
+        ClassExpression: ['id', 'superClass', 'body'],
+        ComprehensionBlock: ['left', 'right'],  // CAUTION: It's deferred to ES7.
+        ComprehensionExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.
+        ConditionalExpression: ['test', 'consequent', 'alternate'],
+        ContinueStatement: ['label'],
+        DebuggerStatement: [],
+        DirectiveStatement: [],
+        DoWhileStatement: ['body', 'test'],
+        EmptyStatement: [],
+        ExportAllDeclaration: ['source'],
+        ExportDefaultDeclaration: ['declaration'],
+        ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],
+        ExportSpecifier: ['exported', 'local'],
+        ExpressionStatement: ['expression'],
+        ForStatement: ['init', 'test', 'update', 'body'],
+        ForInStatement: ['left', 'right', 'body'],
+        ForOfStatement: ['left', 'right', 'body'],
+        FunctionDeclaration: ['id', 'params', 'body'],
+        FunctionExpression: ['id', 'params', 'body'],
+        GeneratorExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.
+        Identifier: [],
+        IfStatement: ['test', 'consequent', 'alternate'],
+        ImportExpression: ['source'],
+        ImportDeclaration: ['specifiers', 'source'],
+        ImportDefaultSpecifier: ['local'],
+        ImportNamespaceSpecifier: ['local'],
+        ImportSpecifier: ['imported', 'local'],
+        Literal: [],
+        LabeledStatement: ['label', 'body'],
+        LogicalExpression: ['left', 'right'],
+        MemberExpression: ['object', 'property'],
+        MetaProperty: ['meta', 'property'],
+        MethodDefinition: ['key', 'value'],
+        ModuleSpecifier: [],
+        NewExpression: ['callee', 'arguments'],
+        ObjectExpression: ['properties'],
+        ObjectPattern: ['properties'],
+        Program: ['body'],
+        Property: ['key', 'value'],
+        RestElement: [ 'argument' ],
+        ReturnStatement: ['argument'],
+        SequenceExpression: ['expressions'],
+        SpreadElement: ['argument'],
+        Super: [],
+        SwitchStatement: ['discriminant', 'cases'],
+        SwitchCase: ['test', 'consequent'],
+        TaggedTemplateExpression: ['tag', 'quasi'],
+        TemplateElement: [],
+        TemplateLiteral: ['quasis', 'expressions'],
+        ThisExpression: [],
+        ThrowStatement: ['argument'],
+        TryStatement: ['block', 'handler', 'finalizer'],
+        UnaryExpression: ['argument'],
+        UpdateExpression: ['argument'],
+        VariableDeclaration: ['declarations'],
+        VariableDeclarator: ['id', 'init'],
+        WhileStatement: ['test', 'body'],
+        WithStatement: ['object', 'body'],
+        YieldExpression: ['argument']
+    };
+
+    // unique id
+    BREAK = {};
+    SKIP = {};
+    REMOVE = {};
+
+    VisitorOption = {
+        Break: BREAK,
+        Skip: SKIP,
+        Remove: REMOVE
+    };
+
+    function Reference(parent, key) {
+        this.parent = parent;
+        this.key = key;
+    }
+
+    Reference.prototype.replace = function replace(node) {
+        this.parent[this.key] = node;
+    };
+
+    Reference.prototype.remove = function remove() {
+        if (Array.isArray(this.parent)) {
+            this.parent.splice(this.key, 1);
+            return true;
+        } else {
+            this.replace(null);
+            return false;
+        }
+    };
+
+    function Element(node, path, wrap, ref) {
+        this.node = node;
+        this.path = path;
+        this.wrap = wrap;
+        this.ref = ref;
+    }
+
+    function Controller() { }
+
+    // API:
+    // return property path array from root to current node
+    Controller.prototype.path = function path() {
+        var i, iz, j, jz, result, element;
+
+        function addToPath(result, path) {
+            if (Array.isArray(path)) {
+                for (j = 0, jz = path.length; j < jz; ++j) {
+                    result.push(path[j]);
+                }
+            } else {
+                result.push(path);
+            }
+        }
+
+        // root node
+        if (!this.__current.path) {
+            return null;
+        }
+
+        // first node is sentinel, second node is root element
+        result = [];
+        for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {
+            element = this.__leavelist[i];
+            addToPath(result, element.path);
+        }
+        addToPath(result, this.__current.path);
+        return result;
+    };
+
+    // API:
+    // return type of current node
+    Controller.prototype.type = function () {
+        var node = this.current();
+        return node.type || this.__current.wrap;
+    };
+
+    // API:
+    // return array of parent elements
+    Controller.prototype.parents = function parents() {
+        var i, iz, result;
+
+        // first node is sentinel
+        result = [];
+        for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {
+            result.push(this.__leavelist[i].node);
+        }
+
+        return result;
+    };
+
+    // API:
+    // return current node
+    Controller.prototype.current = function current() {
+        return this.__current.node;
+    };
+
+    Controller.prototype.__execute = function __execute(callback, element) {
+        var previous, result;
+
+        result = undefined;
+
+        previous  = this.__current;
+        this.__current = element;
+        this.__state = null;
+        if (callback) {
+            result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);
+        }
+        this.__current = previous;
+
+        return result;
+    };
+
+    // API:
+    // notify control skip / break
+    Controller.prototype.notify = function notify(flag) {
+        this.__state = flag;
+    };
+
+    // API:
+    // skip child nodes of current node
+    Controller.prototype.skip = function () {
+        this.notify(SKIP);
+    };
+
+    // API:
+    // break traversals
+    Controller.prototype['break'] = function () {
+        this.notify(BREAK);
+    };
+
+    // API:
+    // remove node
+    Controller.prototype.remove = function () {
+        this.notify(REMOVE);
+    };
+
+    Controller.prototype.__initialize = function(root, visitor) {
+        this.visitor = visitor;
+        this.root = root;
+        this.__worklist = [];
+        this.__leavelist = [];
+        this.__current = null;
+        this.__state = null;
+        this.__fallback = null;
+        if (visitor.fallback === 'iteration') {
+            this.__fallback = Object.keys;
+        } else if (typeof visitor.fallback === 'function') {
+            this.__fallback = visitor.fallback;
+        }
+
+        this.__keys = VisitorKeys;
+        if (visitor.keys) {
+            this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);
+        }
+    };
+
+    function isNode(node) {
+        if (node == null) {
+            return false;
+        }
+        return typeof node === 'object' && typeof node.type === 'string';
+    }
+
+    function isProperty(nodeType, key) {
+        return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;
+    }
+  
+    function candidateExistsInLeaveList(leavelist, candidate) {
+        for (var i = leavelist.length - 1; i >= 0; --i) {
+            if (leavelist[i].node === candidate) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    Controller.prototype.traverse = function traverse(root, visitor) {
+        var worklist,
+            leavelist,
+            element,
+            node,
+            nodeType,
+            ret,
+            key,
+            current,
+            current2,
+            candidates,
+            candidate,
+            sentinel;
+
+        this.__initialize(root, visitor);
+
+        sentinel = {};
+
+        // reference
+        worklist = this.__worklist;
+        leavelist = this.__leavelist;
+
+        // initialize
+        worklist.push(new Element(root, null, null, null));
+        leavelist.push(new Element(null, null, null, null));
+
+        while (worklist.length) {
+            element = worklist.pop();
+
+            if (element === sentinel) {
+                element = leavelist.pop();
+
+                ret = this.__execute(visitor.leave, element);
+
+                if (this.__state === BREAK || ret === BREAK) {
+                    return;
+                }
+                continue;
+            }
+
+            if (element.node) {
+
+                ret = this.__execute(visitor.enter, element);
+
+                if (this.__state === BREAK || ret === BREAK) {
+                    return;
+                }
+
+                worklist.push(sentinel);
+                leavelist.push(element);
+
+                if (this.__state === SKIP || ret === SKIP) {
+                    continue;
+                }
+
+                node = element.node;
+                nodeType = node.type || element.wrap;
+                candidates = this.__keys[nodeType];
+                if (!candidates) {
+                    if (this.__fallback) {
+                        candidates = this.__fallback(node);
+                    } else {
+                        throw new Error('Unknown node type ' + nodeType + '.');
+                    }
+                }
+
+                current = candidates.length;
+                while ((current -= 1) >= 0) {
+                    key = candidates[current];
+                    candidate = node[key];
+                    if (!candidate) {
+                        continue;
+                    }
+
+                    if (Array.isArray(candidate)) {
+                        current2 = candidate.length;
+                        while ((current2 -= 1) >= 0) {
+                            if (!candidate[current2]) {
+                                continue;
+                            }
+
+                            if (candidateExistsInLeaveList(leavelist, candidate[current2])) {
+                              continue;
+                            }
+
+                            if (isProperty(nodeType, candidates[current])) {
+                                element = new Element(candidate[current2], [key, current2], 'Property', null);
+                            } else if (isNode(candidate[current2])) {
+                                element = new Element(candidate[current2], [key, current2], null, null);
+                            } else {
+                                continue;
+                            }
+                            worklist.push(element);
+                        }
+                    } else if (isNode(candidate)) {
+                        if (candidateExistsInLeaveList(leavelist, candidate)) {
+                          continue;
+                        }
+
+                        worklist.push(new Element(candidate, key, null, null));
+                    }
+                }
+            }
+        }
+    };
+
+    Controller.prototype.replace = function replace(root, visitor) {
+        var worklist,
+            leavelist,
+            node,
+            nodeType,
+            target,
+            element,
+            current,
+            current2,
+            candidates,
+            candidate,
+            sentinel,
+            outer,
+            key;
+
+        function removeElem(element) {
+            var i,
+                key,
+                nextElem,
+                parent;
+
+            if (element.ref.remove()) {
+                // When the reference is an element of an array.
+                key = element.ref.key;
+                parent = element.ref.parent;
+
+                // If removed from array, then decrease following items' keys.
+                i = worklist.length;
+                while (i--) {
+                    nextElem = worklist[i];
+                    if (nextElem.ref && nextElem.ref.parent === parent) {
+                        if  (nextElem.ref.key < key) {
+                            break;
+                        }
+                        --nextElem.ref.key;
+                    }
+                }
+            }
+        }
+
+        this.__initialize(root, visitor);
+
+        sentinel = {};
+
+        // reference
+        worklist = this.__worklist;
+        leavelist = this.__leavelist;
+
+        // initialize
+        outer = {
+            root: root
+        };
+        element = new Element(root, null, null, new Reference(outer, 'root'));
+        worklist.push(element);
+        leavelist.push(element);
+
+        while (worklist.length) {
+            element = worklist.pop();
+
+            if (element === sentinel) {
+                element = leavelist.pop();
+
+                target = this.__execute(visitor.leave, element);
+
+                // node may be replaced with null,
+                // so distinguish between undefined and null in this place
+                if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {
+                    // replace
+                    element.ref.replace(target);
+                }
+
+                if (this.__state === REMOVE || target === REMOVE) {
+                    removeElem(element);
+                }
+
+                if (this.__state === BREAK || target === BREAK) {
+                    return outer.root;
+                }
+                continue;
+            }
+
+            target = this.__execute(visitor.enter, element);
+
+            // node may be replaced with null,
+            // so distinguish between undefined and null in this place
+            if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {
+                // replace
+                element.ref.replace(target);
+                element.node = target;
+            }
+
+            if (this.__state === REMOVE || target === REMOVE) {
+                removeElem(element);
+                element.node = null;
+            }
+
+            if (this.__state === BREAK || target === BREAK) {
+                return outer.root;
+            }
+
+            // node may be null
+            node = element.node;
+            if (!node) {
+                continue;
+            }
+
+            worklist.push(sentinel);
+            leavelist.push(element);
+
+            if (this.__state === SKIP || target === SKIP) {
+                continue;
+            }
+
+            nodeType = node.type || element.wrap;
+            candidates = this.__keys[nodeType];
+            if (!candidates) {
+                if (this.__fallback) {
+                    candidates = this.__fallback(node);
+                } else {
+                    throw new Error('Unknown node type ' + nodeType + '.');
+                }
+            }
+
+            current = candidates.length;
+            while ((current -= 1) >= 0) {
+                key = candidates[current];
+                candidate = node[key];
+                if (!candidate) {
+                    continue;
+                }
+
+                if (Array.isArray(candidate)) {
+                    current2 = candidate.length;
+                    while ((current2 -= 1) >= 0) {
+                        if (!candidate[current2]) {
+                            continue;
+                        }
+                        if (isProperty(nodeType, candidates[current])) {
+                            element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));
+                        } else if (isNode(candidate[current2])) {
+                            element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));
+                        } else {
+                            continue;
+                        }
+                        worklist.push(element);
+                    }
+                } else if (isNode(candidate)) {
+                    worklist.push(new Element(candidate, key, null, new Reference(node, key)));
+                }
+            }
+        }
+
+        return outer.root;
+    };
+
+    function traverse(root, visitor) {
+        var controller = new Controller();
+        return controller.traverse(root, visitor);
+    }
+
+    function replace(root, visitor) {
+        var controller = new Controller();
+        return controller.replace(root, visitor);
+    }
+
+    function extendCommentRange(comment, tokens) {
+        var target;
+
+        target = upperBound(tokens, function search(token) {
+            return token.range[0] > comment.range[0];
+        });
+
+        comment.extendedRange = [comment.range[0], comment.range[1]];
+
+        if (target !== tokens.length) {
+            comment.extendedRange[1] = tokens[target].range[0];
+        }
+
+        target -= 1;
+        if (target >= 0) {
+            comment.extendedRange[0] = tokens[target].range[1];
+        }
+
+        return comment;
+    }
+
+    function attachComments(tree, providedComments, tokens) {
+        // At first, we should calculate extended comment ranges.
+        var comments = [], comment, len, i, cursor;
+
+        if (!tree.range) {
+            throw new Error('attachComments needs range information');
+        }
+
+        // tokens array is empty, we attach comments to tree as 'leadingComments'
+        if (!tokens.length) {
+            if (providedComments.length) {
+                for (i = 0, len = providedComments.length; i < len; i += 1) {
+                    comment = deepCopy(providedComments[i]);
+                    comment.extendedRange = [0, tree.range[0]];
+                    comments.push(comment);
+                }
+                tree.leadingComments = comments;
+            }
+            return tree;
+        }
+
+        for (i = 0, len = providedComments.length; i < len; i += 1) {
+            comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));
+        }
+
+        // This is based on John Freeman's implementation.
+        cursor = 0;
+        traverse(tree, {
+            enter: function (node) {
+                var comment;
+
+                while (cursor < comments.length) {
+                    comment = comments[cursor];
+                    if (comment.extendedRange[1] > node.range[0]) {
+                        break;
+                    }
+
+                    if (comment.extendedRange[1] === node.range[0]) {
+                        if (!node.leadingComments) {
+                            node.leadingComments = [];
+                        }
+                        node.leadingComments.push(comment);
+                        comments.splice(cursor, 1);
+                    } else {
+                        cursor += 1;
+                    }
+                }
+
+                // already out of owned node
+                if (cursor === comments.length) {
+                    return VisitorOption.Break;
+                }
+
+                if (comments[cursor].extendedRange[0] > node.range[1]) {
+                    return VisitorOption.Skip;
+                }
+            }
+        });
+
+        cursor = 0;
+        traverse(tree, {
+            leave: function (node) {
+                var comment;
+
+                while (cursor < comments.length) {
+                    comment = comments[cursor];
+                    if (node.range[1] < comment.extendedRange[0]) {
+                        break;
+                    }
+
+                    if (node.range[1] === comment.extendedRange[0]) {
+                        if (!node.trailingComments) {
+                            node.trailingComments = [];
+                        }
+                        node.trailingComments.push(comment);
+                        comments.splice(cursor, 1);
+                    } else {
+                        cursor += 1;
+                    }
+                }
+
+                // already out of owned node
+                if (cursor === comments.length) {
+                    return VisitorOption.Break;
+                }
+
+                if (comments[cursor].extendedRange[0] > node.range[1]) {
+                    return VisitorOption.Skip;
+                }
+            }
+        });
+
+        return tree;
+    }
+
+    exports.Syntax = Syntax;
+    exports.traverse = traverse;
+    exports.replace = replace;
+    exports.attachComments = attachComments;
+    exports.VisitorKeys = VisitorKeys;
+    exports.VisitorOption = VisitorOption;
+    exports.Controller = Controller;
+    exports.cloneEnvironment = function () { return clone({}); };
+
+    return exports;
+}(exports));
+/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/esrecurse/node_modules/estraverse/gulpfile.js b/node_modules/esrecurse/node_modules/estraverse/gulpfile.js
new file mode 100644
index 0000000..8772bbc
--- /dev/null
+++ b/node_modules/esrecurse/node_modules/estraverse/gulpfile.js
@@ -0,0 +1,70 @@
+/*
+  Copyright (C) 2014 Yusuke Suzuki <utatane.tea@gmail.com>
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+'use strict';
+
+var gulp = require('gulp'),
+    git = require('gulp-git'),
+    bump = require('gulp-bump'),
+    filter = require('gulp-filter'),
+    tagVersion = require('gulp-tag-version');
+
+var TEST = [ 'test/*.js' ];
+var POWERED = [ 'powered-test/*.js' ];
+var SOURCE = [ 'src/**/*.js' ];
+
+/**
+ * Bumping version number and tagging the repository with it.
+ * Please read http://semver.org/
+ *
+ * You can use the commands
+ *
+ *     gulp patch     # makes v0.1.0 -> v0.1.1
+ *     gulp feature   # makes v0.1.1 -> v0.2.0
+ *     gulp release   # makes v0.2.1 -> v1.0.0
+ *
+ * To bump the version numbers accordingly after you did a patch,
+ * introduced a feature or made a backwards-incompatible release.
+ */
+
+function inc(importance) {
+    // get all the files to bump version in
+    return gulp.src(['./package.json'])
+        // bump the version number in those files
+        .pipe(bump({type: importance}))
+        // save it back to filesystem
+        .pipe(gulp.dest('./'))
+        // commit the changed version number
+        .pipe(git.commit('Bumps package version'))
+        // read only one file to get the version number
+        .pipe(filter('package.json'))
+        // **tag it in the repository**
+        .pipe(tagVersion({
+            prefix: ''
+        }));
+}
+
+gulp.task('patch', [ ], function () { return inc('patch'); })
+gulp.task('minor', [ ], function () { return inc('minor'); })
+gulp.task('major', [ ], function () { return inc('major'); })
diff --git a/node_modules/esrecurse/node_modules/estraverse/package.json b/node_modules/esrecurse/node_modules/estraverse/package.json
new file mode 100644
index 0000000..bc99e7c
--- /dev/null
+++ b/node_modules/esrecurse/node_modules/estraverse/package.json
@@ -0,0 +1,40 @@
+{
+  "name": "estraverse",
+  "description": "ECMAScript JS AST traversal functions",
+  "homepage": "https://github.com/estools/estraverse",
+  "main": "estraverse.js",
+  "version": "5.2.0",
+  "engines": {
+    "node": ">=4.0"
+  },
+  "maintainers": [
+    {
+      "name": "Yusuke Suzuki",
+      "email": "utatane.tea@gmail.com",
+      "web": "http://github.com/Constellation"
+    }
+  ],
+  "repository": {
+    "type": "git",
+    "url": "http://github.com/estools/estraverse.git"
+  },
+  "devDependencies": {
+    "babel-preset-env": "^1.6.1",
+    "babel-register": "^6.3.13",
+    "chai": "^2.1.1",
+    "espree": "^1.11.0",
+    "gulp": "^3.8.10",
+    "gulp-bump": "^0.2.2",
+    "gulp-filter": "^2.0.0",
+    "gulp-git": "^1.0.1",
+    "gulp-tag-version": "^1.3.0",
+    "jshint": "^2.5.6",
+    "mocha": "^2.1.0"
+  },
+  "license": "BSD-2-Clause",
+  "scripts": {
+    "test": "npm run-script lint && npm run-script unit-test",
+    "lint": "jshint estraverse.js",
+    "unit-test": "mocha --compilers js:babel-register"
+  }
+}
diff --git a/node_modules/esrecurse/package.json b/node_modules/esrecurse/package.json
index 13dee2e..dec5b1b 100755
--- a/node_modules/esrecurse/package.json
+++ b/node_modules/esrecurse/package.json
@@ -3,7 +3,7 @@
   "description": "ECMAScript AST recursive visitor",
   "homepage": "https://github.com/estools/esrecurse",
   "main": "esrecurse.js",
-  "version": "4.2.1",
+  "version": "4.3.0",
   "engines": {
     "node": ">=4.0"
   },
@@ -19,7 +19,7 @@
     "url": "https://github.com/estools/esrecurse.git"
   },
   "dependencies": {
-    "estraverse": "^4.1.0"
+    "estraverse": "^5.2.0"
   },
   "devDependencies": {
     "babel-cli": "^6.24.1",
diff --git a/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/semver b/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/semver
index b3ca603..b892cab 120000
--- a/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/semver
+++ b/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/semver
@@ -1 +1 @@
-../../../semver/bin/semver
\ No newline at end of file
+../../../../../normalize-package-data/node_modules/semver/bin/semver
\ No newline at end of file
diff --git a/node_modules/expect/build/asymmetricMatchers.d.ts b/node_modules/expect/build/asymmetricMatchers.d.ts
index 4d97395..e8b9f68 100644
--- a/node_modules/expect/build/asymmetricMatchers.d.ts
+++ b/node_modules/expect/build/asymmetricMatchers.d.ts
@@ -29,8 +29,8 @@
     toString(): string;
     getExpectedType(): string;
 }
-declare class ObjectContaining extends AsymmetricMatcher<Record<string, any>> {
-    constructor(sample: Record<string, any>, inverse?: boolean);
+declare class ObjectContaining extends AsymmetricMatcher<Record<string, unknown>> {
+    constructor(sample: Record<string, unknown>, inverse?: boolean);
     asymmetricMatch(other: any): boolean;
     toString(): string;
     getExpectedType(): string;
@@ -51,8 +51,8 @@
 export declare const anything: () => Anything;
 export declare const arrayContaining: (sample: Array<unknown>) => ArrayContaining;
 export declare const arrayNotContaining: (sample: Array<unknown>) => ArrayContaining;
-export declare const objectContaining: (sample: Record<string, any>) => ObjectContaining;
-export declare const objectNotContaining: (sample: Record<string, any>) => ObjectContaining;
+export declare const objectContaining: (sample: Record<string, unknown>) => ObjectContaining;
+export declare const objectNotContaining: (sample: Record<string, unknown>) => ObjectContaining;
 export declare const stringContaining: (expected: string) => StringContaining;
 export declare const stringNotContaining: (expected: string) => StringContaining;
 export declare const stringMatching: (expected: string | RegExp) => StringMatching;
diff --git a/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts b/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts
index 42acc95..03ccd3e 100644
--- a/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts
+++ b/node_modules/expect/build/extractExpectedAssertionsErrors.d.ts
@@ -5,10 +5,6 @@
  * LICENSE file in the root directory of this source tree.
  *
  */
-declare type AssertionsErrors = Array<{
-    actual: string;
-    error: string;
-    expected: string | number;
-}>;
-declare const extractExpectedAssertionsErrors: () => AssertionsErrors;
+import type { Expect } from './types';
+declare const extractExpectedAssertionsErrors: Expect['extractExpectedAssertionsErrors'];
 export default extractExpectedAssertionsErrors;
diff --git a/node_modules/expect/build/extractExpectedAssertionsErrors.js b/node_modules/expect/build/extractExpectedAssertionsErrors.js
index a1bb1af..b3dcbdd 100644
--- a/node_modules/expect/build/extractExpectedAssertionsErrors.js
+++ b/node_modules/expect/build/extractExpectedAssertionsErrors.js
@@ -22,10 +22,9 @@
     expectedAssertionsNumber: null,
     isExpectingAssertions: false
   });
-};
-
-// Create and format all errors related to the mismatched number of `expect`
+}; // Create and format all errors related to the mismatched number of `expect`
 // calls and reset the matcher's state.
+
 const extractExpectedAssertionsErrors = () => {
   const result = [];
   const {
@@ -60,9 +59,9 @@
       ) +
       '.';
     result.push({
-      actual: assertionCalls,
+      actual: assertionCalls.toString(),
       error: expectedAssertionsNumberError,
-      expected: expectedAssertionsNumber
+      expected: expectedAssertionsNumber.toString()
     });
   }
 
diff --git a/node_modules/expect/build/fakeChalk.d.ts b/node_modules/expect/build/fakeChalk.d.ts
deleted file mode 100644
index 604059f..0000000
--- a/node_modules/expect/build/fakeChalk.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-declare const allColorsAsFunc: {
-    [x: string]: (str: string) => string;
-};
-export = allColorsAsFunc;
diff --git a/node_modules/expect/build/fakeChalk.js b/node_modules/expect/build/fakeChalk.js
deleted file mode 100644
index 4e896b3..0000000
--- a/node_modules/expect/build/fakeChalk.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var _ansiStyles = _interopRequireDefault(require('ansi-styles'));
-
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {default: obj};
-}
-
-/**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-const returnInput = str => str;
-
-const allColorsAsFunc = Object.keys(_ansiStyles.default)
-  .map(style => ({
-    [style]: returnInput
-  }))
-  .reduce((acc, cur) => Object.assign(acc, cur));
-Object.keys(allColorsAsFunc)
-  .map(color => allColorsAsFunc[color])
-  .forEach(style => {
-    Object.assign(style, allColorsAsFunc);
-    Object.assign(returnInput, style);
-  });
-module.exports = allColorsAsFunc;
diff --git a/node_modules/expect/build/index.js b/node_modules/expect/build/index.js
index 75ff176..7db6799 100644
--- a/node_modules/expect/build/index.js
+++ b/node_modules/expect/build/index.js
@@ -431,6 +431,5 @@
 expect.setState = _jestMatchersObject.setState;
 expect.extractExpectedAssertionsErrors =
   _extractExpectedAssertionsErrors.default;
-const expectExport = expect; // eslint-disable-next-line no-redeclare
-
+const expectExport = expect;
 module.exports = expectExport;
diff --git a/node_modules/expect/build/jestMatchersObject.d.ts b/node_modules/expect/build/jestMatchersObject.d.ts
index a73cc80..9d72277 100644
--- a/node_modules/expect/build/jestMatchersObject.d.ts
+++ b/node_modules/expect/build/jestMatchersObject.d.ts
@@ -5,9 +5,9 @@
  * LICENSE file in the root directory of this source tree.
  *
  */
-import type { Expect, MatchersObject } from './types';
+import type { Expect, MatcherState, MatchersObject } from './types';
 export declare const INTERNAL_MATCHER_FLAG: unique symbol;
-export declare const getState: () => any;
-export declare const setState: (state: object) => void;
+export declare const getState: () => MatcherState;
+export declare const setState: (state: Partial<MatcherState>) => void;
 export declare const getMatchers: () => MatchersObject;
 export declare const setMatchers: (matchers: MatchersObject, isInternal: boolean, expect: Expect) => void;
diff --git a/node_modules/expect/build/jestMatchersObject.js b/node_modules/expect/build/jestMatchersObject.js
index 378106b..782151c 100644
--- a/node_modules/expect/build/jestMatchersObject.js
+++ b/node_modules/expect/build/jestMatchersObject.js
@@ -17,15 +17,16 @@
 exports.INTERNAL_MATCHER_FLAG = INTERNAL_MATCHER_FLAG;
 
 if (!global.hasOwnProperty(JEST_MATCHERS_OBJECT)) {
+  const defaultState = {
+    assertionCalls: 0,
+    expectedAssertionsNumber: null,
+    isExpectingAssertions: false,
+    suppressedErrors: [] // errors that are not thrown immediately.
+  };
   Object.defineProperty(global, JEST_MATCHERS_OBJECT, {
     value: {
       matchers: Object.create(null),
-      state: {
-        assertionCalls: 0,
-        expectedAssertionsNumber: null,
-        isExpectingAssertions: false,
-        suppressedErrors: [] // errors that are not thrown immediately.
-      }
+      state: defaultState
     }
   });
 }
diff --git a/node_modules/expect/build/matchers.js b/node_modules/expect/build/matchers.js
index 05bcdcc..bab9557 100644
--- a/node_modules/expect/build/matchers.js
+++ b/node_modules/expect/build/matchers.js
@@ -26,6 +26,8 @@
  * LICENSE file in the root directory of this source tree.
  *
  */
+
+/* eslint-disable local/ban-types-eventually */
 // Omit colon and one or more spaces, so can call getLabelPrinter.
 const EXPECTED_LABEL = 'Expected';
 const RECEIVED_LABEL = 'Received';
diff --git a/node_modules/expect/build/print.js b/node_modules/expect/build/print.js
index 1b09b68..4312de4 100644
--- a/node_modules/expect/build/print.js
+++ b/node_modules/expect/build/print.js
@@ -14,6 +14,8 @@
  * LICENSE file in the root directory of this source tree.
  *
  */
+
+/* eslint-disable local/ban-types-eventually */
 // Format substring but do not enclose in double quote marks.
 // The replacement is compatible with pretty-format package.
 const printSubstring = val => val.replace(/"|\\/g, '\\$&');
diff --git a/node_modules/expect/build/toThrowMatchers.js b/node_modules/expect/build/toThrowMatchers.js
index 27ff7f9..52457b3 100644
--- a/node_modules/expect/build/toThrowMatchers.js
+++ b/node_modules/expect/build/toThrowMatchers.js
@@ -20,6 +20,8 @@
  * LICENSE file in the root directory of this source tree.
  *
  */
+
+/* eslint-disable local/ban-types-eventually */
 const DID_NOT_THROW = 'Received function did not throw';
 
 const getThrown = e => {
@@ -43,10 +45,7 @@
   };
 };
 
-const createMatcher = (
-  matcherName,
-  fromPromise // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-) =>
+const createMatcher = (matcherName, fromPromise) =>
   function (received, expected) {
     const options = {
       isNot: this.isNot,
diff --git a/node_modules/expect/build/types.d.ts b/node_modules/expect/build/types.d.ts
index 164c16a..dd30632 100644
--- a/node_modules/expect/build/types.d.ts
+++ b/node_modules/expect/build/types.d.ts
@@ -28,8 +28,10 @@
     error?: Error;
     equals: (a: unknown, b: unknown, customTesters?: Array<Tester>, strictCheck?: boolean) => boolean;
     expand?: boolean;
-    expectedAssertionsNumber?: number;
+    expectedAssertionsNumber?: number | null;
+    expectedAssertionsNumberError?: Error;
     isExpectingAssertions?: boolean;
+    isExpectingAssertionsError?: Error;
     isNot: boolean;
     promise: string;
     suppressedErrors: Array<Error>;
@@ -43,19 +45,20 @@
 export declare type MatchersObject = {
     [id: string]: RawMatcherFn;
 };
+export declare type ExpectedAssertionsErrors = Array<{
+    actual: string | number;
+    error: Error;
+    expected: string;
+}>;
 export declare type Expect = {
     <T = unknown>(actual: T): Matchers<T>;
     addSnapshotSerializer(arg0: any): void;
     assertions(arg0: number): void;
     extend(arg0: any): void;
-    extractExpectedAssertionsErrors: () => Array<{
-        actual: string | number;
-        error: Error;
-        expected: string;
-    }>;
+    extractExpectedAssertionsErrors: () => ExpectedAssertionsErrors;
     getState(): MatcherState;
     hasAssertions(): void;
-    setState(arg0: any): void;
+    setState(state: Partial<MatcherState>): void;
     any(expectedObject: any): AsymmetricMatcher;
     anything(): AsymmetricMatcher;
     arrayContaining(sample: Array<unknown>): AsymmetricMatcher;
diff --git a/node_modules/expect/build/utils.d.ts b/node_modules/expect/build/utils.d.ts
index 1d87ba5..fcb5252 100644
--- a/node_modules/expect/build/utils.d.ts
+++ b/node_modules/expect/build/utils.d.ts
@@ -14,11 +14,11 @@
 export declare const getPath: (object: Record<string, any>, propertyPath: string | Array<string>) => GetPath;
 export declare const getObjectSubset: (object: any, subset: any, seenReferences?: WeakMap<object, boolean>) => any;
 export declare const iterableEquality: (a: any, b: any, aStack?: Array<any>, bStack?: Array<any>) => boolean | undefined;
-export declare const subsetEquality: (object: any, subset: any) => boolean | undefined;
+export declare const subsetEquality: (object: unknown, subset: unknown) => boolean | undefined;
 export declare const typeEquality: (a: any, b: any) => boolean | undefined;
 export declare const sparseArrayEquality: (a: unknown, b: unknown) => boolean | undefined;
 export declare const partition: <T>(items: T[], predicate: (arg: T) => boolean) => [T[], T[]];
 export declare const isError: (value: unknown) => value is Error;
-export declare function emptyObject(obj: any): boolean;
+export declare function emptyObject(obj: unknown): boolean;
 export declare const isOneline: (expected: unknown, received: unknown) => boolean;
 export {};
diff --git a/node_modules/expect/build/utils.js b/node_modules/expect/build/utils.js
index 9622fac..134476c 100644
--- a/node_modules/expect/build/utils.js
+++ b/node_modules/expect/build/utils.js
@@ -81,11 +81,13 @@
   };
 }; // Strip properties from object that are not present in the subset. Useful for
 // printing the diff for toMatchObject() without adding unrelated noise.
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
+
+/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
 
 exports.getPath = getPath;
 
 const getObjectSubset = (object, subset, seenReferences = new WeakMap()) => {
+  /* eslint-enable @typescript-eslint/explicit-module-boundary-types */
   if (Array.isArray(object)) {
     if (Array.isArray(subset) && subset.length === object.length) {
       // The map method returns correct subclass of subset.
@@ -125,9 +127,16 @@
 exports.getObjectSubset = getObjectSubset;
 const IteratorSymbol = Symbol.iterator;
 
-const hasIterator = object => !!(object != null && object[IteratorSymbol]); // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
+const hasIterator = object => !!(object != null && object[IteratorSymbol]);
+/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
 
-const iterableEquality = (a, b, aStack = [], bStack = []) => {
+const iterableEquality = (
+  a,
+  b,
+  /* eslint-enable @typescript-eslint/explicit-module-boundary-types */
+  aStack = [],
+  bStack = []
+) => {
   if (
     typeof a !== 'object' ||
     typeof b !== 'object' ||
@@ -271,7 +280,7 @@
   isObject(a) &&
   !(a instanceof Error) &&
   !(a instanceof Array) &&
-  !(a instanceof Date); // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
+  !(a instanceof Date);
 
 const subsetEquality = (object, subset) => {
   // subsetEquality needs to keep track of the references
@@ -365,7 +374,7 @@
     default:
       return value instanceof Error;
   }
-}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
+};
 
 exports.isError = isError;
 
diff --git a/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts b/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/expect/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/expect/node_modules/@jest/types/build/Config.d.ts b/node_modules/expect/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/expect/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/expect/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/expect/node_modules/@jest/types/build/Global.d.ts b/node_modules/expect/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/expect/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/expect/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/expect/node_modules/@jest/types/package.json b/node_modules/expect/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/expect/node_modules/@jest/types/package.json
+++ b/node_modules/expect/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/expect/node_modules/@types/stack-utils/LICENSE b/node_modules/expect/node_modules/@types/stack-utils/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/node_modules/expect/node_modules/@types/stack-utils/LICENSE
@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    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
diff --git a/node_modules/expect/node_modules/@types/stack-utils/README.md b/node_modules/expect/node_modules/@types/stack-utils/README.md
new file mode 100644
index 0000000..92a34de
--- /dev/null
+++ b/node_modules/expect/node_modules/@types/stack-utils/README.md
@@ -0,0 +1,16 @@
+# Installation

+> `npm install --save @types/stack-utils`

+

+# Summary

+This package contains type definitions for stack-utils (https://github.com/tapjs/stack-utils#readme).

+

+# Details

+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/stack-utils.

+

+### Additional Details

+ * Last updated: Tue, 22 Sep 2020 00:22:28 GMT

+ * Dependencies: none

+ * Global values: none

+

+# Credits

+These definitions were written by [BendingBender](https://github.com/BendingBender).

diff --git a/node_modules/expect/node_modules/@types/stack-utils/index.d.ts b/node_modules/expect/node_modules/@types/stack-utils/index.d.ts
new file mode 100644
index 0000000..3427e35
--- /dev/null
+++ b/node_modules/expect/node_modules/@types/stack-utils/index.d.ts
@@ -0,0 +1,65 @@
+// Type definitions for stack-utils 2.0
+// Project: https://github.com/tapjs/stack-utils#readme
+// Definitions by: BendingBender <https://github.com/BendingBender>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.2
+
+export = StackUtils;
+
+declare class StackUtils {
+    static nodeInternals(): RegExp[];
+    constructor(options?: StackUtils.Options);
+    clean(stack: string | string[]): string;
+    capture(limit?: number, startStackFunction?: Function): StackUtils.CallSite[];
+    capture(startStackFunction: Function): StackUtils.CallSite[];
+    captureString(limit?: number, startStackFunction?: Function): string;
+    captureString(startStackFunction: Function): string;
+    at(startStackFunction?: Function): StackUtils.CallSiteLike;
+    parseLine(line: string): StackUtils.StackLineData | null;
+}
+
+declare namespace StackUtils {
+    interface Options {
+        internals?: RegExp[];
+        ignoredPackages?: string[];
+        cwd?: string;
+        wrapCallSite?(callSite: CallSite): CallSite;
+    }
+
+    interface CallSite {
+        getThis(): object | undefined;
+        getTypeName(): string;
+        getFunction(): Function | undefined;
+        getFunctionName(): string;
+        getMethodName(): string | null;
+        getFileName(): string | undefined;
+        getLineNumber(): number;
+        getColumnNumber(): number;
+        getEvalOrigin(): CallSite | string;
+        isToplevel(): boolean;
+        isEval(): boolean;
+        isNative(): boolean;
+        isConstructor(): boolean;
+    }
+
+    interface CallSiteLike extends StackData {
+        type?: string;
+    }
+
+    interface StackLineData extends StackData {
+        evalLine?: number;
+        evalColumn?: number;
+        evalFile?: string;
+    }
+
+    interface StackData {
+        line?: number;
+        column?: number;
+        file?: string;
+        constructor?: boolean;
+        evalOrigin?: string;
+        native?: boolean;
+        function?: string;
+        method?: string;
+    }
+}
diff --git a/node_modules/expect/node_modules/@types/stack-utils/package.json b/node_modules/expect/node_modules/@types/stack-utils/package.json
new file mode 100644
index 0000000..1f9393a
--- /dev/null
+++ b/node_modules/expect/node_modules/@types/stack-utils/package.json
@@ -0,0 +1,24 @@
+{
+    "name": "@types/stack-utils",
+    "version": "2.0.0",
+    "description": "TypeScript definitions for stack-utils",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "BendingBender",
+            "url": "https://github.com/BendingBender",
+            "githubUsername": "BendingBender"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/stack-utils"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typesPublisherContentHash": "53c84779043276d5e313653eabfc4fedae5b103c7dc645555065fdc3b4b0a982",
+    "typeScriptVersion": "3.2"
+}
\ No newline at end of file
diff --git a/node_modules/expect/node_modules/jest-message-util/package.json b/node_modules/expect/node_modules/jest-message-util/package.json
index 6f8b6c4..2bbf224 100644
--- a/node_modules/expect/node_modules/jest-message-util/package.json
+++ b/node_modules/expect/node_modules/jest-message-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-message-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -14,8 +14,8 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/code-frame": "^7.0.0",
-    "@jest/types": "^26.3.0",
-    "@types/stack-utils": "^1.0.1",
+    "@jest/types": "^26.5.2",
+    "@types/stack-utils": "^2.0.0",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
     "micromatch": "^4.0.2",
@@ -30,5 +30,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/expect/package.json b/node_modules/expect/package.json
index 73d98d3..710badb 100644
--- a/node_modules/expect/package.json
+++ b/node_modules/expect/package.json
@@ -1,6 +1,6 @@
 {
   "name": "expect",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,15 +10,15 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "ansi-styles": "^4.0.0",
     "jest-get-type": "^26.3.0",
-    "jest-matcher-utils": "^26.4.2",
-    "jest-message-util": "^26.3.0",
+    "jest-matcher-utils": "^26.5.2",
+    "jest-message-util": "^26.5.2",
     "jest-regex-util": "^26.0.0"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "chalk": "^4.0.0",
     "fast-check": "^2.0.0",
     "immutable": "^4.0.0-rc.12"
@@ -29,5 +29,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/external-editor/LICENSE b/node_modules/external-editor/LICENSE
deleted file mode 100644
index f5f6185..0000000
--- a/node_modules/external-editor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Kevin Gravier
-
-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.
diff --git a/node_modules/external-editor/README.md b/node_modules/external-editor/README.md
deleted file mode 100644
index 53a8e70..0000000
--- a/node_modules/external-editor/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# External Editor
-
-[![ExternalEditor on Travis CI](https://img.shields.io/travis/mrkmg/node-external-editor.svg?style=flat-square)](https://travis-ci.org/mrkmg/node-external-editor/branches)
-[![ExternalEditor on NPM](https://img.shields.io/npm/v/external-editor.svg?style=flat-square)](https://www.npmjs.com/package/external-editor)
-[![ExternalEditor uses the MIT](https://img.shields.io/npm/l/external-editor.svg?style=flat-square)](https://opensource.org/licenses/MIT)
-
-
-A node module to edit a string with a users preferred text editor using $VISUAL or $ENVIRONMENT.
-
-Version: 3.1.0
-
-As of version 3.0.0, the minimum version of node supported is 4.
-
-## Install
-
-`npm install external-editor --save`
-
-## Usage
-
-A simple example using the `.edit` convenience method
-
-    import {edit} from "external-editor";
-    const data = edit('\n\n# Please write your text above');
-    console.log(data);
-
-A full featured example
-
-    import {ExternalEditor, CreateFileError, ReadFileError, RemoveFileError} from "external-editor"
-    
-    try {
-        const editor = new ExternalEditor();
-        const text = editor.run() // the text is also available in editor.text
-        
-        if (editor.last_exit_status !== 0) {
-            console.log("The editor exited with a non-zero code");
-        }
-    } catch (err) {
-        if (err instanceOf CreateFileError) {
-            console.log('Failed to create the temporary file');
-        } else if (err instanceOf ReadFileError) {
-            console.log('Failed to read the temporary file');
-        } else if (err instanceOf LaunchEditorError) {
-            console.log('Failed to launch your editor');
-        } else {
-            throw err;
-        }
-    }
-    
-    // Do things with the text
-    
-    // Eventually call the cleanup to remove the temporary file
-    try {
-        editor.cleanup();   
-    } catch (err) {
-         if (err instanceOf RemoveFileError) {
-             console.log('Failed to remove the temporary file');
-         } else {
-            throw err
-        }
-    }
-    
-    
-#### API
-**Convenience Methods**
-
-- `edit(text, config)`
-    - `text` (string) *Optional* Defaults to empty string
-    - `config` (Config) *Optional* Options for temporary file creation
-    - **Returns** (string) The contents of the file
-    - Could throw `CreateFileError`, `ReadFileError`, or `LaunchEditorError`, or `RemoveFileError`
-- `editAsync(text, callback, config)`
-    - `text` (string) *Optional* Defaults to empty string
-    - `callback` (function (error, text))
-        - `error` could be of type `CreateFileError`, `ReadFileError`, or `LaunchEditorError`, or `RemoveFileError`
-        - `text`(string) The contents of the file
-    - `config` (Config) *Optional* Options for temporary file creation
-
-
-**Errors**
-
-- `CreateFileError` Error thrown if the temporary file could not be created. 
-- `ReadFileError` Error thrown if the temporary file could not be read.
-- `RemoveFileError` Error thrown if the temporary file could not be removed during cleanup.
-- `LaunchEditorError` Error thrown if the editor could not be launched.
-
-**External Editor Public Methods**
-
-- `new ExternalEditor(text, config)`
-    - `text` (string) *Optional* Defaults to empty string
-    - `config` (Config) *Optional* Options for temporary file creation
-    - Could throw `CreateFileError`
-- `run()` Launches the editor.
-    - **Returns** (string) The contents of the file
-    - Could throw `LaunchEditorError` or `ReadFileError`
-- `runAsync(callback)` Launches the editor in an async way
-    - `callback` (function (error, text))
-        - `error` could be of type `ReadFileError` or `LaunchEditorError`
-        - `text`(string) The contents of the file
-- `cleanup()`  Removes the temporary file.
-    - Could throw `RemoveFileError`
-    
-**External Editor Public Properties**
-
-- `text` (string) *readonly* The text in the temporary file.
-- `editor.bin` (string) The editor determined from the environment.
-- `editor.args` (array) Default arguments for the bin
-- `tempFile` (string) Path to temporary file. Can be changed, but be careful as the temporary file probably already 
-    exists and would need be removed manually.
-- `lastExitStatus` (number) The last exit code emitted from the editor.
-    
-**Config Options**
-
-- `prefix` (string) *Optional* A prefix for the file name.
-- `postfix` (string; *Optional* A postfix for the file name. Useful if you want to provide an extension.
-- `mode` (number) *Optional* Which mode to create the file with. e.g. 644
-- `template` (string) *Optional* A template for the filename. See [tmp](https://www.npmjs.com/package/tmp).
-- `dir` (string) *Optional* Which path to store the file.
-    
-## Errors
-
-All errors have a simple message explaining what went wrong. They all also have an `originalError` property containing
-the original error thrown for debugging purposes.
-    
-## Why Synchronous?
- 
-Everything is synchronous to make sure the editor has complete control of the stdin and stdout. Testing has shown 
-async launching of the editor can lead to issues when using readline or other packages which try to read from stdin or 
-write to stdout. Seeing as this will be used in an interactive CLI environment, I made the decision to force the package
-to be synchronous. If you know a reliable way to force all stdin and stdout to be limited only to the child_process,
-please submit a PR.
-
-If async is really needed, you can use `editAsync` or `runAsync`. If you are using readline or have anything else
-listening to the stdin or you write to stdout, you will most likely have problem, so make sure to remove any other 
-listeners on stdin, stdout, or stderr.
-
-## Demo
-
-[![asciicast](https://asciinema.org/a/a1qh9lypbe65mj0ivfuoslz2s.png)](https://asciinema.org/a/a1qh9lypbe65mj0ivfuoslz2s)
-
-## Breaking Changes from v2 to v3
-
-- NodeJS 0.12 support dropped.
-- Switched to named imports.
-- All "snake_cased" variables and properties are now "camelCased".
-    - `ExternalEditor.temp_file` is now `ExternalEditor.tempFile`.
-    - `ExternalEditor.last_exit_status` is now `ExternalEditor.lastExitStatus`.
-    - `Error.original_error` is now `Error.originalError`.
-    
-## License
-
-The MIT License (MIT)
-
-Copyright (c) 2016-2018 Kevin Gravier
-
-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.
diff --git a/node_modules/external-editor/example_async.js b/node_modules/external-editor/example_async.js
deleted file mode 100644
index 0526166..0000000
--- a/node_modules/external-editor/example_async.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var ExternalEditor = require('./main').ExternalEditor;
-var readline = require('readline');
-
-var rl = readline.createInterface({
-  input: process.stdin,
-  output: null
-});
-
-var message = '\n\n# Please Write a message\n# Any line starting with # is ignored';
-
-process.stdout.write('Please write a message. (press enter to launch your preferred editor)');
-
-editor = new ExternalEditor(message);
-
-rl.on('line', function () {
-  try {
-    rl.pause();
-    editor.runAsync(function (error, response)
-    {
-      if (error) {
-        process.stdout.write(error.message);
-        process.exit(1);
-      }
-      if (response.length === 0) {
-        readline.moveCursor(process.stdout, 0, -1);
-        process.stdout.write('Your message was empty, please try again. (press enter to launch your preferred editor)');
-        rl.resume();
-      } else {
-        process.stdout.write('Your Message:\n');
-        process.stdout.write(response);
-        process.stdout.write('\n');
-        rl.close();
-      }
-    });
-  } catch (err) {
-    process.stderr.write(err.message);
-    process.stdout.write('\n');
-    rl.close();
-  }
-});
diff --git a/node_modules/external-editor/example_sync.js b/node_modules/external-editor/example_sync.js
deleted file mode 100644
index 4ebee95..0000000
--- a/node_modules/external-editor/example_sync.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var ExternalEditor = require('./main').ExternalEditor;
-var readline = require('readline');
-
-var rl = readline.createInterface({
-  input: process.stdin,
-  output: null
-});
-
-var message = '\n\n# Please Write a message\n# Any line starting with # is ignored';
-
-process.stdout.write('Please write a message. (press enter to launch your preferred editor)');
-
-editor = new ExternalEditor(message);
-
-rl.on('line', function () {
-  try {
-    // Get response, remove all lines starting with #, remove any trailing newlines.
-    var response = editor.run().replace(/^#.*\n?/gm, '').replace(/\n+$/g, '').trim();
-
-    if (editor.lastExitStatus !== 0) {
-      process.stderr.write("WARN: The editor exited with a non-zero status\n\n")
-    }
-
-    if (response.length === 0) {
-      readline.moveCursor(process.stdout, 0, -1);
-      process.stdout.write('Your message was empty, please try again. (press enter to launch your preferred editor)');
-    } else {
-      process.stdout.write('Your Message:\n');
-      process.stdout.write(response);
-      process.stdout.write('\n');
-      rl.close();
-    }
-  } catch (err) {
-    process.stderr.write(err.message);
-    process.stdout.write('\n');
-    rl.close();
-  }
-});
diff --git a/node_modules/external-editor/main/errors/CreateFileError.d.ts b/node_modules/external-editor/main/errors/CreateFileError.d.ts
deleted file mode 100644
index 0df1b3d..0000000
--- a/node_modules/external-editor/main/errors/CreateFileError.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-export declare class CreateFileError extends Error {
-    originalError: Error;
-    constructor(originalError: Error);
-}
diff --git a/node_modules/external-editor/main/errors/CreateFileError.js b/node_modules/external-editor/main/errors/CreateFileError.js
deleted file mode 100644
index 7faa34c..0000000
--- a/node_modules/external-editor/main/errors/CreateFileError.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var CreateFileError = /** @class */ (function (_super) {
-    __extends(CreateFileError, _super);
-    function CreateFileError(originalError) {
-        var _newTarget = this.constructor;
-        var _this = _super.call(this, "Failed to create temporary file for editor") || this;
-        _this.originalError = originalError;
-        var proto = _newTarget.prototype;
-        if (Object.setPrototypeOf) {
-            Object.setPrototypeOf(_this, proto);
-        }
-        else {
-            _this.__proto__ = _newTarget.prototype;
-        }
-        return _this;
-    }
-    return CreateFileError;
-}(Error));
-exports.CreateFileError = CreateFileError;
diff --git a/node_modules/external-editor/main/errors/LaunchEditorError.d.ts b/node_modules/external-editor/main/errors/LaunchEditorError.d.ts
deleted file mode 100644
index 105077c..0000000
--- a/node_modules/external-editor/main/errors/LaunchEditorError.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-export declare class LaunchEditorError extends Error {
-    originalError: Error;
-    constructor(originalError: Error);
-}
diff --git a/node_modules/external-editor/main/errors/LaunchEditorError.js b/node_modules/external-editor/main/errors/LaunchEditorError.js
deleted file mode 100644
index 85a164e..0000000
--- a/node_modules/external-editor/main/errors/LaunchEditorError.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var LaunchEditorError = /** @class */ (function (_super) {
-    __extends(LaunchEditorError, _super);
-    function LaunchEditorError(originalError) {
-        var _newTarget = this.constructor;
-        var _this = _super.call(this, "Failed launch editor") || this;
-        _this.originalError = originalError;
-        var proto = _newTarget.prototype;
-        if (Object.setPrototypeOf) {
-            Object.setPrototypeOf(_this, proto);
-        }
-        else {
-            _this.__proto__ = _newTarget.prototype;
-        }
-        return _this;
-    }
-    return LaunchEditorError;
-}(Error));
-exports.LaunchEditorError = LaunchEditorError;
diff --git a/node_modules/external-editor/main/errors/ReadFileError.d.ts b/node_modules/external-editor/main/errors/ReadFileError.d.ts
deleted file mode 100644
index 438eae1..0000000
--- a/node_modules/external-editor/main/errors/ReadFileError.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-export declare class ReadFileError extends Error {
-    originalError: Error;
-    constructor(originalError: Error);
-}
diff --git a/node_modules/external-editor/main/errors/ReadFileError.js b/node_modules/external-editor/main/errors/ReadFileError.js
deleted file mode 100644
index 69e0513..0000000
--- a/node_modules/external-editor/main/errors/ReadFileError.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var ReadFileError = /** @class */ (function (_super) {
-    __extends(ReadFileError, _super);
-    function ReadFileError(originalError) {
-        var _newTarget = this.constructor;
-        var _this = _super.call(this, "Failed to read temporary file") || this;
-        _this.originalError = originalError;
-        var proto = _newTarget.prototype;
-        if (Object.setPrototypeOf) {
-            Object.setPrototypeOf(_this, proto);
-        }
-        else {
-            _this.__proto__ = _newTarget.prototype;
-        }
-        return _this;
-    }
-    return ReadFileError;
-}(Error));
-exports.ReadFileError = ReadFileError;
diff --git a/node_modules/external-editor/main/errors/RemoveFileError.d.ts b/node_modules/external-editor/main/errors/RemoveFileError.d.ts
deleted file mode 100644
index a6402e4..0000000
--- a/node_modules/external-editor/main/errors/RemoveFileError.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-export declare class RemoveFileError extends Error {
-    originalError: Error;
-    constructor(originalError: Error);
-}
diff --git a/node_modules/external-editor/main/errors/RemoveFileError.js b/node_modules/external-editor/main/errors/RemoveFileError.js
deleted file mode 100644
index 23d266f..0000000
--- a/node_modules/external-editor/main/errors/RemoveFileError.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2018
- */
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var RemoveFileError = /** @class */ (function (_super) {
-    __extends(RemoveFileError, _super);
-    function RemoveFileError(originalError) {
-        var _newTarget = this.constructor;
-        var _this = _super.call(this, "Failed to cleanup temporary file") || this;
-        _this.originalError = originalError;
-        var proto = _newTarget.prototype;
-        if (Object.setPrototypeOf) {
-            Object.setPrototypeOf(_this, proto);
-        }
-        else {
-            _this.__proto__ = _newTarget.prototype;
-        }
-        return _this;
-    }
-    return RemoveFileError;
-}(Error));
-exports.RemoveFileError = RemoveFileError;
diff --git a/node_modules/external-editor/main/index.d.ts b/node_modules/external-editor/main/index.d.ts
deleted file mode 100644
index d1e2730..0000000
--- a/node_modules/external-editor/main/index.d.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2019
- */
-import { CreateFileError } from "./errors/CreateFileError";
-import { LaunchEditorError } from "./errors/LaunchEditorError";
-import { ReadFileError } from "./errors/ReadFileError";
-import { RemoveFileError } from "./errors/RemoveFileError";
-export interface IEditorParams {
-    args: string[];
-    bin: string;
-}
-export interface IFileOptions {
-    prefix?: string;
-    postfix?: string;
-    mode?: number;
-    template?: string;
-    dir?: string;
-}
-export declare type StringCallback = (err: Error, result: string) => void;
-export declare type VoidCallback = () => void;
-export { CreateFileError, LaunchEditorError, ReadFileError, RemoveFileError };
-export declare function edit(text?: string, fileOptions?: IFileOptions): string;
-export declare function editAsync(text: string, callback: StringCallback, fileOptions?: IFileOptions): void;
-export declare class ExternalEditor {
-    private static splitStringBySpace;
-    text: string;
-    tempFile: string;
-    editor: IEditorParams;
-    lastExitStatus: number;
-    private fileOptions;
-    readonly temp_file: string;
-    readonly last_exit_status: number;
-    constructor(text?: string, fileOptions?: IFileOptions);
-    run(): string;
-    runAsync(callback: StringCallback): void;
-    cleanup(): void;
-    private determineEditor;
-    private createTemporaryFile;
-    private readTemporaryFile;
-    private removeTemporaryFile;
-    private launchEditor;
-    private launchEditorAsync;
-}
diff --git a/node_modules/external-editor/main/index.js b/node_modules/external-editor/main/index.js
deleted file mode 100644
index 258f319..0000000
--- a/node_modules/external-editor/main/index.js
+++ /dev/null
@@ -1,193 +0,0 @@
-"use strict";
-/***
- * Node External Editor
- *
- * Kevin Gravier <kevin@mrkmg.com>
- * MIT 2019
- */
-Object.defineProperty(exports, "__esModule", { value: true });
-var chardet_1 = require("chardet");
-var child_process_1 = require("child_process");
-var fs_1 = require("fs");
-var iconv_lite_1 = require("iconv-lite");
-var tmp_1 = require("tmp");
-var CreateFileError_1 = require("./errors/CreateFileError");
-exports.CreateFileError = CreateFileError_1.CreateFileError;
-var LaunchEditorError_1 = require("./errors/LaunchEditorError");
-exports.LaunchEditorError = LaunchEditorError_1.LaunchEditorError;
-var ReadFileError_1 = require("./errors/ReadFileError");
-exports.ReadFileError = ReadFileError_1.ReadFileError;
-var RemoveFileError_1 = require("./errors/RemoveFileError");
-exports.RemoveFileError = RemoveFileError_1.RemoveFileError;
-function edit(text, fileOptions) {
-    if (text === void 0) { text = ""; }
-    var editor = new ExternalEditor(text, fileOptions);
-    editor.run();
-    editor.cleanup();
-    return editor.text;
-}
-exports.edit = edit;
-function editAsync(text, callback, fileOptions) {
-    if (text === void 0) { text = ""; }
-    var editor = new ExternalEditor(text, fileOptions);
-    editor.runAsync(function (err, result) {
-        if (err) {
-            setImmediate(callback, err, null);
-        }
-        else {
-            try {
-                editor.cleanup();
-                setImmediate(callback, null, result);
-            }
-            catch (cleanupError) {
-                setImmediate(callback, cleanupError, null);
-            }
-        }
-    });
-}
-exports.editAsync = editAsync;
-var ExternalEditor = /** @class */ (function () {
-    function ExternalEditor(text, fileOptions) {
-        if (text === void 0) { text = ""; }
-        this.text = "";
-        this.fileOptions = {};
-        this.text = text;
-        if (fileOptions) {
-            this.fileOptions = fileOptions;
-        }
-        this.determineEditor();
-        this.createTemporaryFile();
-    }
-    ExternalEditor.splitStringBySpace = function (str) {
-        var pieces = [];
-        var currentString = "";
-        for (var strIndex = 0; strIndex < str.length; strIndex++) {
-            var currentLetter = str[strIndex];
-            if (strIndex > 0 && currentLetter === " " && str[strIndex - 1] !== "\\" && currentString.length > 0) {
-                pieces.push(currentString);
-                currentString = "";
-            }
-            else {
-                currentString += currentLetter;
-            }
-        }
-        if (currentString.length > 0) {
-            pieces.push(currentString);
-        }
-        return pieces;
-    };
-    Object.defineProperty(ExternalEditor.prototype, "temp_file", {
-        get: function () {
-            console.log("DEPRECATED: temp_file. Use tempFile moving forward.");
-            return this.tempFile;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(ExternalEditor.prototype, "last_exit_status", {
-        get: function () {
-            console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward.");
-            return this.lastExitStatus;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    ExternalEditor.prototype.run = function () {
-        this.launchEditor();
-        this.readTemporaryFile();
-        return this.text;
-    };
-    ExternalEditor.prototype.runAsync = function (callback) {
-        var _this = this;
-        try {
-            this.launchEditorAsync(function () {
-                try {
-                    _this.readTemporaryFile();
-                    setImmediate(callback, null, _this.text);
-                }
-                catch (readError) {
-                    setImmediate(callback, readError, null);
-                }
-            });
-        }
-        catch (launchError) {
-            setImmediate(callback, launchError, null);
-        }
-    };
-    ExternalEditor.prototype.cleanup = function () {
-        this.removeTemporaryFile();
-    };
-    ExternalEditor.prototype.determineEditor = function () {
-        var editor = process.env.VISUAL ? process.env.VISUAL :
-            process.env.EDITOR ? process.env.EDITOR :
-                /^win/.test(process.platform) ? "notepad" :
-                    "vim";
-        var editorOpts = ExternalEditor.splitStringBySpace(editor).map(function (piece) { return piece.replace("\\ ", " "); });
-        var bin = editorOpts.shift();
-        this.editor = { args: editorOpts, bin: bin };
-    };
-    ExternalEditor.prototype.createTemporaryFile = function () {
-        try {
-            this.tempFile = tmp_1.tmpNameSync(this.fileOptions);
-            var opt = { encoding: "utf8" };
-            if (this.fileOptions.hasOwnProperty("mode")) {
-                opt.mode = this.fileOptions.mode;
-            }
-            fs_1.writeFileSync(this.tempFile, this.text, opt);
-        }
-        catch (createFileError) {
-            throw new CreateFileError_1.CreateFileError(createFileError);
-        }
-    };
-    ExternalEditor.prototype.readTemporaryFile = function () {
-        try {
-            var tempFileBuffer = fs_1.readFileSync(this.tempFile);
-            if (tempFileBuffer.length === 0) {
-                this.text = "";
-            }
-            else {
-                var encoding = chardet_1.detect(tempFileBuffer).toString();
-                if (!iconv_lite_1.encodingExists(encoding)) {
-                    // Probably a bad idea, but will at least prevent crashing
-                    encoding = "utf8";
-                }
-                this.text = iconv_lite_1.decode(tempFileBuffer, encoding);
-            }
-        }
-        catch (readFileError) {
-            throw new ReadFileError_1.ReadFileError(readFileError);
-        }
-    };
-    ExternalEditor.prototype.removeTemporaryFile = function () {
-        try {
-            fs_1.unlinkSync(this.tempFile);
-        }
-        catch (removeFileError) {
-            throw new RemoveFileError_1.RemoveFileError(removeFileError);
-        }
-    };
-    ExternalEditor.prototype.launchEditor = function () {
-        try {
-            var editorProcess = child_process_1.spawnSync(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" });
-            this.lastExitStatus = editorProcess.status;
-        }
-        catch (launchError) {
-            throw new LaunchEditorError_1.LaunchEditorError(launchError);
-        }
-    };
-    ExternalEditor.prototype.launchEditorAsync = function (callback) {
-        var _this = this;
-        try {
-            var editorProcess = child_process_1.spawn(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" });
-            editorProcess.on("exit", function (code) {
-                _this.lastExitStatus = code;
-                setImmediate(callback);
-            });
-        }
-        catch (launchError) {
-            throw new LaunchEditorError_1.LaunchEditorError(launchError);
-        }
-    };
-    return ExternalEditor;
-}());
-exports.ExternalEditor = ExternalEditor;
diff --git a/node_modules/external-editor/package.json b/node_modules/external-editor/package.json
deleted file mode 100644
index b0e2474..0000000
--- a/node_modules/external-editor/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-  "name": "external-editor",
-  "version": "3.1.0",
-  "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT",
-  "main": "main/index.js",
-  "types": "main/index.d.ts",
-  "scripts": {
-    "test": "mocha --recursive --require ts-node/register --timeout 10000 ./test/spec 'test/spec/**/*.ts'",
-    "compile": "tsc -p tsconfig.json",
-    "lint": "tslint './src/**/*.ts' './test/**/*.ts'"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mrkmg/node-external-editor.git"
-  },
-  "keywords": [
-    "editor",
-    "external",
-    "user",
-    "visual"
-  ],
-  "author": "Kevin Gravier <kevin@mrkmg.com> (https://mrkmg.com)",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/mrkmg/node-external-editor/issues"
-  },
-  "homepage": "https://github.com/mrkmg/node-external-editor#readme",
-  "dependencies": {
-    "chardet": "^0.7.0",
-    "iconv-lite": "^0.4.24",
-    "tmp": "^0.0.33"
-  },
-  "engines": {
-    "node": ">=4"
-  },
-  "devDependencies": {
-    "@types/chai": "^4.1.4",
-    "@types/chardet": "^0.5.0",
-    "@types/mocha": "^5.2.5",
-    "@types/node": "^10.14.12",
-    "@types/tmp": "0.0.33",
-    "chai": "^4.0.0",
-    "es6-shim": "^0.35.3",
-    "mocha": "^5.2.0",
-    "ts-node": "^7.0.1",
-    "tslint": "^5.18.0",
-    "typescript": "^3.5.2"
-  },
-  "files": [
-    "main",
-    "example_sync.js",
-    "example_async.js"
-  ],
-  "config": {
-    "ndt": {
-      "versions": [
-        "major"
-      ]
-    }
-  }
-}
diff --git a/node_modules/figures/index.d.ts b/node_modules/figures/index.d.ts
deleted file mode 100644
index e770ef3..0000000
--- a/node_modules/figures/index.d.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-declare const figureSet: {
-	readonly tick: string;
-	readonly cross: string;
-	readonly star: string;
-	readonly square: string;
-	readonly squareSmall: string;
-	readonly squareSmallFilled: string;
-	readonly play: string;
-	readonly circle: string;
-	readonly circleFilled: string;
-	readonly circleDotted: string;
-	readonly circleDouble: string;
-	readonly circleCircle: string;
-	readonly circleCross: string;
-	readonly circlePipe: string;
-	readonly circleQuestionMark: string;
-	readonly bullet: string;
-	readonly dot: string;
-	readonly line: string;
-	readonly ellipsis: string;
-	readonly pointer: string;
-	readonly pointerSmall: string;
-	readonly info: string;
-	readonly warning: string;
-	readonly hamburger: string;
-	readonly smiley: string;
-	readonly mustache: string;
-	readonly heart: string;
-	readonly nodejs: string;
-	readonly arrowUp: string;
-	readonly arrowDown: string;
-	readonly arrowLeft: string;
-	readonly arrowRight: string;
-	readonly radioOn: string;
-	readonly radioOff: string;
-	readonly checkboxOn: string;
-	readonly checkboxOff: string;
-	readonly checkboxCircleOn: string;
-	readonly checkboxCircleOff: string;
-	readonly questionMarkPrefix: string;
-	readonly oneHalf: string;
-	readonly oneThird: string;
-	readonly oneQuarter: string;
-	readonly oneFifth: string;
-	readonly oneSixth: string;
-	readonly oneSeventh: string;
-	readonly oneEighth: string;
-	readonly oneNinth: string;
-	readonly oneTenth: string;
-	readonly twoThirds: string;
-	readonly twoFifths: string;
-	readonly threeQuarters: string;
-	readonly threeFifths: string;
-	readonly threeEighths: string;
-	readonly fourFifths: string;
-	readonly fiveSixths: string;
-	readonly fiveEighths: string;
-	readonly sevenEighth: string;
-}
-
-type FigureSet = typeof figureSet
-
-declare const figures: {
-	/**
-	Replace Unicode symbols depending on the OS.
-
-	@param string - String where the Unicode symbols will be replaced with fallback symbols depending on the OS.
-	@returns The input with replaced fallback Unicode symbols on Windows.
-
-	@example
-	```
-	import figures = require('figures');
-
-	console.log(figures('✔︎ check'));
-	// On non-Windows OSes:  ✔︎ check
-	// On Windows:           √ check
-
-	console.log(figures.tick);
-	// On non-Windows OSes:  ✔︎
-	// On Windows:           √
-	```
-	*/
-	(string: string): string;
-
-	/**
-	Symbols to use when not running on Windows.
-	*/
-	readonly main: FigureSet;
-
-	/**
-	Symbols to use when running on Windows.
-	*/
-	readonly windows: FigureSet;
-} & FigureSet;
-
-export = figures;
diff --git a/node_modules/figures/index.js b/node_modules/figures/index.js
deleted file mode 100644
index 2cbe2db..0000000
--- a/node_modules/figures/index.js
+++ /dev/null
@@ -1,151 +0,0 @@
-'use strict';
-const escapeStringRegexp = require('escape-string-regexp');
-
-const {platform} = process;
-
-const main = {
-	tick: '✔',
-	cross: '✖',
-	star: '★',
-	square: '▇',
-	squareSmall: '◻',
-	squareSmallFilled: '◼',
-	play: '▶',
-	circle: '◯',
-	circleFilled: '◉',
-	circleDotted: '◌',
-	circleDouble: '◎',
-	circleCircle: 'ⓞ',
-	circleCross: 'ⓧ',
-	circlePipe: 'Ⓘ',
-	circleQuestionMark: '?⃝',
-	bullet: '●',
-	dot: '․',
-	line: '─',
-	ellipsis: '…',
-	pointer: '❯',
-	pointerSmall: '›',
-	info: 'ℹ',
-	warning: '⚠',
-	hamburger: '☰',
-	smiley: '㋡',
-	mustache: '෴',
-	heart: '♥',
-	nodejs: '⬢',
-	arrowUp: '↑',
-	arrowDown: '↓',
-	arrowLeft: '←',
-	arrowRight: '→',
-	radioOn: '◉',
-	radioOff: '◯',
-	checkboxOn: '☒',
-	checkboxOff: '☐',
-	checkboxCircleOn: 'ⓧ',
-	checkboxCircleOff: 'Ⓘ',
-	questionMarkPrefix: '?⃝',
-	oneHalf: '½',
-	oneThird: '⅓',
-	oneQuarter: '¼',
-	oneFifth: '⅕',
-	oneSixth: '⅙',
-	oneSeventh: '⅐',
-	oneEighth: '⅛',
-	oneNinth: '⅑',
-	oneTenth: '⅒',
-	twoThirds: '⅔',
-	twoFifths: '⅖',
-	threeQuarters: '¾',
-	threeFifths: '⅗',
-	threeEighths: '⅜',
-	fourFifths: '⅘',
-	fiveSixths: '⅚',
-	fiveEighths: '⅝',
-	sevenEighths: '⅞'
-};
-
-const windows = {
-	tick: '√',
-	cross: '×',
-	star: '*',
-	square: '█',
-	squareSmall: '[ ]',
-	squareSmallFilled: '[█]',
-	play: '►',
-	circle: '( )',
-	circleFilled: '(*)',
-	circleDotted: '( )',
-	circleDouble: '( )',
-	circleCircle: '(○)',
-	circleCross: '(×)',
-	circlePipe: '(│)',
-	circleQuestionMark: '(?)',
-	bullet: '*',
-	dot: '.',
-	line: '─',
-	ellipsis: '...',
-	pointer: '>',
-	pointerSmall: '»',
-	info: 'i',
-	warning: '‼',
-	hamburger: '≡',
-	smiley: '☺',
-	mustache: '┌─┐',
-	heart: main.heart,
-	nodejs: '♦',
-	arrowUp: main.arrowUp,
-	arrowDown: main.arrowDown,
-	arrowLeft: main.arrowLeft,
-	arrowRight: main.arrowRight,
-	radioOn: '(*)',
-	radioOff: '( )',
-	checkboxOn: '[×]',
-	checkboxOff: '[ ]',
-	checkboxCircleOn: '(×)',
-	checkboxCircleOff: '( )',
-	questionMarkPrefix: '?',
-	oneHalf: '1/2',
-	oneThird: '1/3',
-	oneQuarter: '1/4',
-	oneFifth: '1/5',
-	oneSixth: '1/6',
-	oneSeventh: '1/7',
-	oneEighth: '1/8',
-	oneNinth: '1/9',
-	oneTenth: '1/10',
-	twoThirds: '2/3',
-	twoFifths: '2/5',
-	threeQuarters: '3/4',
-	threeFifths: '3/5',
-	threeEighths: '3/8',
-	fourFifths: '4/5',
-	fiveSixths: '5/6',
-	fiveEighths: '5/8',
-	sevenEighths: '7/8'
-};
-
-if (platform === 'linux') {
-	// The main one doesn't look that good on Ubuntu.
-	main.questionMarkPrefix = '?';
-}
-
-const figures = platform === 'win32' ? windows : main;
-
-const fn = string => {
-	if (figures === main) {
-		return string;
-	}
-
-	for (const [key, value] of Object.entries(main)) {
-		if (value === figures[key]) {
-			continue;
-		}
-
-		string = string.replace(new RegExp(escapeStringRegexp(value), 'g'), figures[key]);
-	}
-
-	return string;
-};
-
-module.exports = Object.assign(fn, figures);
-module.exports.main = main;
-module.exports.windows = windows;
diff --git a/node_modules/figures/license b/node_modules/figures/license
deleted file mode 100644
index fa7ceba..0000000
--- a/node_modules/figures/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
-
-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.
diff --git a/node_modules/figures/package.json b/node_modules/figures/package.json
deleted file mode 100644
index ee3b3df..0000000
--- a/node_modules/figures/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-	"name": "figures",
-	"version": "3.2.0",
-	"description": "Unicode symbols with Windows CMD fallbacks",
-	"license": "MIT",
-	"repository": "sindresorhus/figures",
-	"funding": "https://github.com/sponsors/sindresorhus",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "https://sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && ava && tsd",
-		"make": "./makefile.js"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"unicode",
-		"cli",
-		"cmd",
-		"command-line",
-		"characters",
-		"symbol",
-		"symbols",
-		"figure",
-		"figures",
-		"fallback"
-	],
-	"dependencies": {
-		"escape-string-regexp": "^1.0.5"
-	},
-	"devDependencies": {
-		"ava": "^1.4.1",
-		"markdown-table": "^1.1.2",
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
-}
diff --git a/node_modules/figures/readme.md b/node_modules/figures/readme.md
deleted file mode 100644
index 22d3620..0000000
--- a/node_modules/figures/readme.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# figures [![Build Status](https://travis-ci.org/sindresorhus/figures.svg?branch=master)](https://travis-ci.org/sindresorhus/figures)
-
-> Unicode symbols with Windows CMD fallbacks
-
-[![](screenshot.png)](index.js)
-
-[*and more...*](index.js)
-
-Windows CMD only supports a [limited character set](http://en.wikipedia.org/wiki/Code_page_437).
-
-## Install
-
-```
-$ npm install figures
-```
-
-## Usage
-
-See the [source](index.js) for supported symbols.
-
-```js
-const figures = require('figures');
-
-console.log(figures('✔︎ check'));
-// On non-Windows OSes:  ✔︎ check
-// On Windows:           √ check
-
-console.log(figures.tick);
-// On non-Windows OSes:  ✔︎
-// On Windows:           √
-
-console.log(figures.main.tick);
-// On all OSes:  ✔︎
-
-console.log(figures.windows.tick);
-// On all OSes:  √
-```
-
-## API
-
-### figures(string)
-
-Returns the input with replaced fallback Unicode symbols on Windows.
-
-All the below [figures](#figures) are attached to the main export as shown in the example above.
-
-#### string
-
-Type: `string`
-
-String where the Unicode symbols will be replaced with fallback symbols depending on the OS.
-
-### figures.main
-
-Symbols to use when not running on Windows.
-
-### figures.windows
-
-Symbols to use when running on Windows.
-
-
-## Figures
-
-| Name               | Non-Windows | Windows |
-| ------------------ | :---------: | :-----: |
-| tick               |      ✔      |    √    |
-| cross              |      ✖      |    ×    |
-| star               |      ★      |    *    |
-| square             |      ▇      |    █    |
-| squareSmall        |      ◻      |   [ ]   |
-| squareSmallFilled  |      ◼      |   [█]   |
-| play               |      ▶      |    ►    |
-| circle             |      ◯      |   ( )   |
-| circleFilled       |      ◉      |   (*)   |
-| circleDotted       |      ◌      |   ( )   |
-| circleDouble       |      ◎      |   ( )   |
-| circleCircle       |      ⓞ      |   (○)   |
-| circleCross        |      ⓧ      |   (×)   |
-| circlePipe         |      Ⓘ      |   (│)   |
-| circleQuestionMark |      ?⃝     |   (?)   |
-| bullet             |      ●      |    *    |
-| dot                |      ․      |    .    |
-| line               |      ─      |    ─    |
-| ellipsis           |      …      |   ...   |
-| pointer            |      ❯      |    >    |
-| pointerSmall       |      ›      |    »    |
-| info               |      ℹ      |    i    |
-| warning            |      ⚠      |    ‼    |
-| hamburger          |      ☰      |    ≡    |
-| smiley             |      ㋡      |    ☺    |
-| mustache           |      ෴      |   ┌─┐   |
-| heart              |      ♥      |    ♥    |
-| nodejs             |      ⬢      |    ♦    |
-| arrowUp            |      ↑      |    ↑    |
-| arrowDown          |      ↓      |    ↓    |
-| arrowLeft          |      ←      |    ←    |
-| arrowRight         |      →      |    →    |
-| radioOn            |      ◉      |   (*)   |
-| radioOff           |      ◯      |   ( )   |
-| checkboxOn         |      ☒      |   [×]   |
-| checkboxOff        |      ☐      |   [ ]   |
-| checkboxCircleOn   |      ⓧ      |   (×)   |
-| checkboxCircleOff  |      Ⓘ      |   ( )   |
-| questionMarkPrefix |      ?⃝     |    ?    |
-| oneHalf            |      ½      |   1/2   |
-| oneThird           |      ⅓      |   1/3   |
-| oneQuarter         |      ¼      |   1/4   |
-| oneFifth           |      ⅕      |   1/5   |
-| oneSixth           |      ⅙      |   1/6   |
-| oneSeventh         |      ⅐      |   1/7   |
-| oneEighth          |      ⅛      |   1/8   |
-| oneNinth           |      ⅑      |   1/9   |
-| oneTenth           |      ⅒      |   1/10  |
-| twoThirds          |      ⅔      |   2/3   |
-| twoFifths          |      ⅖      |   2/5   |
-| threeQuarters      |      ¾      |   3/4   |
-| threeFifths        |      ⅗      |   3/5   |
-| threeEighths       |      ⅜      |   3/8   |
-| fourFifths         |      ⅘      |   4/5   |
-| fiveSixths         |      ⅚      |   5/6   |
-| fiveEighths        |      ⅝      |   5/8   |
-| sevenEighths       |      ⅞      |   7/8   |
-
-
-## Related
-
-- [log-symbols](https://github.com/sindresorhus/log-symbols) - Colored symbols for various log levels
-
----
-
-<div align="center">
-	<b>
-		<a href="https://tidelift.com/subscription/pkg/npm-figures?utm_source=npm-figures&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
-	</b>
-	<br>
-	<sub>
-		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
-	</sub>
-</div>
diff --git a/node_modules/graphql-config/LICENSE b/node_modules/graphql-config/LICENSE
deleted file mode 100644
index 1fd1cea..0000000
--- a/node_modules/graphql-config/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Graphcool
-
-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.
diff --git a/node_modules/graphql-config/README.md b/node_modules/graphql-config/README.md
deleted file mode 100644
index 1c206fc..0000000
--- a/node_modules/graphql-config/README.md
+++ /dev/null
@@ -1,192 +0,0 @@
-# graphql-config
-
-[![Build Status](https://travis-ci.org/prisma/graphql-config.svg?branch=master)](https://travis-ci.org/prisma/graphql-config) [![npm version](https://badge.fury.io/js/graphql-config.svg)](https://badge.fury.io/js/graphql-config)
-
-> The README reflects the new [graphql-config protocol](specification.md).
-> Old graphql-config-parser documentation [can be found here](https://github.com/graphcool/graphql-config/tree/graphql-config-parser)
-
-The easiest way to configure your development environment with your GraphQL schema (supported by most tools, editors &amp; IDEs)
-
-## Supported by...
-
-### Language Services
-* [graphql-language-service](https://github.com/graphql/graphql-language-service) - An interface for building GraphQL language services for IDEs (_pending_)
-
-### Editors
-* [js-graphql-intellij-plugin](https://github.com/jimkyndemeyer/js-graphql-intellij-plugin) - GraphQL language support for IntelliJ IDEA and WebStorm, including Relay.QL tagged templates in JavaScript and TypeScript (_pending_)
-* [atom-language-graphql](https://github.com/rmosolgo/language-graphql) - GraphQL support for Atom text editor (_pending_)
-* [vscode-graphql](https://github.com/stephen/vscode-graphql) - GraphQL support for VSCode text editor
-
-### Tools
-
-* [babel-plugin-react-relay](https://github.com/graphcool/babel-plugin-react-relay) - Babel compile step to process your `Relay.QL` queries (_pending_)
-* [babel-plugin-transform-relay-hot](https://github.com/nodkz/babel-plugin-transform-relay-hot) - Wrapper under BabelRelayPlugin with hot reload (_pending_)
-* [eslint-plugin-graphql](https://github.com/apollostack/eslint-plugin-graphql) - An ESLint plugin that checks tagged template strings against a GraphQL schema (_pending_)
-* [webpack-plugin-graphql-schema-hot](https://github.com/nodkz/webpack-plugin-graphql-schema-hot) - Webpack plugin which tracks changes in your schema and generates its introspection in `json` and `txt` formats (_pending_)
-
-> Did we forget a tool/editor? Please [add it here](https://github.com/graphcool/graphql-config/issues/new).
-
-**[Go to `graphql-config` library docs](#graphql-config-api)**
-
-## Usage
-
-**tl;dr**
-
-Install [`graphql-cli`](https://github.com/graphcool/graphql-cli) and run `graphql init`. Answer a few simple questions and you are set up!
-
-You can either configure your GraphQL endpoint via a configuration file `.graphqlconfig`
-(or `.graphqlconfig.yaml`) which should be put into the root of your project
-
-### Simplest use case
-
-The simplest config specifies only `schemaPath` which is path to the file with introspection
-results or corresponding SDL document
-
-```json
-{
-  "schemaPath": "schema.graphql"
-}
-```
-
-or
-
-```json
-{
-  "schemaPath": "schema.json"
-}
-```
-
-### Specifying includes/excludes files
-
-You can specify which files are included/excluded using the corresponding options:
-
-```json
-{
-  "schemaPath": "schema.graphql",
-  "includes": ["*.graphql"],
-  "excludes": ["temp/**"]
-}
-```
-
-> Note: `excludes` and `includes` fields are globs that should match filename.
-> So, just `temp` or `temp/` won't match all files inside the directory.
-> That's why the example uses `temp/**`
-
-#### Specifying endpoint info
-
-You may specify your endpoints info in `.graphqlconfig` which may be used by some tools.
-The simplest case:
-
-```json
-{
-  "schemaPath": "schema.graphql",
-  "extensions": {
-    "endpoints": {
-      "dev": "https://example.com/graphql"
-    }
-  }
-}
-```
-
-In case you need provide additional information, for example headers to authenticate your GraphQL endpoint or
-an endpoint for subscription, you can use expanded version:
-
-```json
-{
-  "schemaPath": "schema.graphql",
-  "extensions": {
-    "endpoints": {
-      "dev": {
-        "url": "https://example.com/graphql",
-        "headers": {
-          "Authorization": "Bearer ${env:AUTH_TOKEN_ENV}"
-        },
-        "subscription": {
-          "url": "ws://example.com/graphql",
-          "connectionParams": {
-            "Token": "${env:YOUR_APP_TOKEN}"
-          }
-        }
-      }
-    }
-  }
-}
-```
-
-> Note: do not save secure information in .graphqlconfig file. Use [Environment variables](specification.md#referencing-environment-variables) for that like in the example above.
-
-In case if you have multiple endpoints use the following syntax:
-
-```json
-{
-  "schemaPath": "schema.graphql",
-  "extensions": {
-    "endpoints": {
-      "prod": {
-        "url": "https://your-app.com/graphql",
-        "subscription": {
-          "url": "wss://subscriptions.graph.cool/v1/instagram"
-        }
-      },
-      "dev": {
-        "url": "http://localhost:3000/graphql",
-        "subscription": {
-          "url": "ws://localhost:3001"
-        }
-      }
-    }
-  }
-}
-```
-
-### Multi-project configuration (advanced)
-> TBD
-
-__Refer to [specification use-cases](specification.md#use-cases) for details__
-
-## How it works
-
-This project aims to be provide a unifying configuration file format to configure your GraphQL schema in your development environment.
-
-Additional to the format specification, it provides the [`graphql-config`](#graphql-config-api) library, which is used by [all supported tools and editor plugins](#supported-by). The library reads your provided configuration and passes the actual GraphQL schema along to the tool which called it.
-
-
-## `graphql-config` API
-
-Here are very basic examples of how to use `graphql-config` library.
-
-You can find **[the detailed documentation here](docs/)**
-
-### getGraphQLProjectConfig
-
-**NOTE:** if your tool works on per-file basis (e.g. editor plugin, linter, etc) use
-[`getGraphQLConfig`](#getGraphQLConfig) function
-
-`getGraphQLProjectConfig` should be used by tools that do not work on per-file basis
-
-```js
-import { getGraphQLProjectConfig } from 'graphql-config'
-
-const config = getGraphQLProjectConfig('./optionalProjectDir', 'optionalProjectName')
-const schema = config.getSchema()
-// use schema for your tool/plugin
-```
-
-### getGraphQLConfig
-
-`getGraphQLConfig` should be used by tools that work on per-file basis (editor plugins,
-linters, etc.)
-
-```js
-import { getGraphQLConfig } from 'graphql-config'
-
-const config = getGraphQLConfig('./optionalProjectDir')
-const schema = config.getConfigForFile(filename).getSchema()
-// use schema for your tool/plugin
-```
-
-## Help & Community [![Slack Status](https://slack.graph.cool/badge.svg)](https://slack.graph.cool)
-
-Join our [Slack community](http://slack.graph.cool/) if you run into issues or have questions. We love talking to you!
-
-![](http://i.imgur.com/5RHR6Ku.png)
diff --git a/node_modules/graphql-config/lib/GraphQLConfig.d.ts b/node_modules/graphql-config/lib/GraphQLConfig.d.ts
deleted file mode 100644
index 8a74339..0000000
--- a/node_modules/graphql-config/lib/GraphQLConfig.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { GraphQLConfigData } from './types';
-import { GraphQLProjectConfig } from './GraphQLProjectConfig';
-export declare class GraphQLConfig {
-    config: GraphQLConfigData;
-    configPath: string;
-    constructor(config: GraphQLConfigData, configPath: string);
-    readonly configDir: string;
-    getProjectConfig(projectName?: string): GraphQLProjectConfig;
-    getConfigForFile(filePath: string): GraphQLProjectConfig | undefined;
-    getProjectNameForFile(filePath: string): string | undefined;
-    getProjects(): {
-        [name: string]: GraphQLProjectConfig;
-    } | undefined;
-    saveConfig(newConfig: GraphQLConfigData, projectName?: string): void;
-}
diff --git a/node_modules/graphql-config/lib/GraphQLConfig.js b/node_modules/graphql-config/lib/GraphQLConfig.js
deleted file mode 100644
index fb1b487..0000000
--- a/node_modules/graphql-config/lib/GraphQLConfig.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var path_1 = require("path");
-var utils_1 = require("./utils");
-var lodash_1 = require("lodash");
-var GraphQLProjectConfig_1 = require("./GraphQLProjectConfig");
-var GraphQLConfig = /** @class */ (function () {
-    function GraphQLConfig(config, configPath) {
-        utils_1.validateConfig(config);
-        this.config = config;
-        this.configPath = configPath;
-    }
-    Object.defineProperty(GraphQLConfig.prototype, "configDir", {
-        get: function () {
-            return path_1.dirname(this.configPath);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    GraphQLConfig.prototype.getProjectConfig = function (projectName) {
-        return new GraphQLProjectConfig_1.GraphQLProjectConfig(this.config, this.configPath, projectName);
-    };
-    GraphQLConfig.prototype.getConfigForFile = function (filePath) {
-        var projects = this.config.projects;
-        if (!projects || Object.keys(projects).length === 0) {
-            var config = new GraphQLProjectConfig_1.GraphQLProjectConfig(this.config, this.configPath, undefined);
-            return config.includesFile(filePath) ? config : undefined;
-        }
-        return lodash_1.values(this.getProjects()).find(function (project) { return project.includesFile(filePath); }) || undefined;
-    };
-    GraphQLConfig.prototype.getProjectNameForFile = function (filePath) {
-        var proj = this.getConfigForFile(filePath);
-        return proj && proj.projectName || undefined;
-    };
-    GraphQLConfig.prototype.getProjects = function () {
-        var result = {};
-        for (var projectName in (this.config.projects || {})) {
-            result[projectName] = this.getProjectConfig(projectName);
-        }
-        if (Object.keys(result).length === 0) {
-            return undefined;
-        }
-        return result;
-    };
-    GraphQLConfig.prototype.saveConfig = function (newConfig, projectName) {
-        var config;
-        if (projectName) {
-            config = this.config;
-            config.projects = config.projects || {};
-            config.projects[projectName] = config.projects[projectName] || {};
-            config.projects[projectName] = newConfig;
-        }
-        else {
-            config = newConfig;
-        }
-        utils_1.writeConfig(this.configPath, config);
-    };
-    return GraphQLConfig;
-}());
-exports.GraphQLConfig = GraphQLConfig;
diff --git a/node_modules/graphql-config/lib/GraphQLProjectConfig.d.ts b/node_modules/graphql-config/lib/GraphQLProjectConfig.d.ts
deleted file mode 100644
index 709c404..0000000
--- a/node_modules/graphql-config/lib/GraphQLProjectConfig.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLSchema } from 'graphql';
-import { IntrospectionResult, GraphQLResolvedConfigData, GraphQLConfigData, GraphQLConfigExtensions } from './types';
-import { GraphQLEndpointsExtension } from './extensions';
-export declare class GraphQLProjectConfig {
-    config: GraphQLResolvedConfigData;
-    configPath: string;
-    projectName?: string;
-    constructor(config: GraphQLConfigData, configPath: string, projectName?: string);
-    resolveConfigPath(relativePath: string): string;
-    includesFile(fileUri: string): boolean;
-    getSchema(): GraphQLSchema;
-    resolveIntrospection(): Promise<IntrospectionResult>;
-    getSchemaSDL(): string;
-    readonly configDir: string;
-    readonly schemaPath: string | null;
-    readonly includes: string[];
-    readonly excludes: string[];
-    readonly extensions: GraphQLConfigExtensions;
-    readonly endpointsExtension: GraphQLEndpointsExtension | null;
-}
diff --git a/node_modules/graphql-config/lib/GraphQLProjectConfig.js b/node_modules/graphql-config/lib/GraphQLProjectConfig.js
deleted file mode 100644
index 74b7722..0000000
--- a/node_modules/graphql-config/lib/GraphQLProjectConfig.js
+++ /dev/null
@@ -1,163 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var __rest = (this && this.__rest) || function (s, e) {
-    var t = {};
-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-        t[p] = s[p];
-    if (s != null && typeof Object.getOwnPropertySymbols === "function")
-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
-            t[p[i]] = s[p[i]];
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var path_1 = require("path");
-var graphql_1 = require("graphql");
-var utils_1 = require("./utils");
-var extensions_1 = require("./extensions");
-/*
- * this class can be used for simple usecases where there is no need in per-file API
- */
-var GraphQLProjectConfig = /** @class */ (function () {
-    function GraphQLProjectConfig(config, configPath, projectName) {
-        utils_1.validateConfig(config);
-        this.config = loadProjectConfig(config, projectName);
-        this.configPath = configPath;
-        this.projectName = projectName;
-    }
-    GraphQLProjectConfig.prototype.resolveConfigPath = function (relativePath) {
-        return path_1.resolve(this.configDir, relativePath);
-    };
-    GraphQLProjectConfig.prototype.includesFile = function (fileUri) {
-        var filePath = fileUri.startsWith('file://') ?
-            fileUri.substr(7) : fileUri;
-        var fullFilePath = filePath.startsWith(this.configDir) ?
-            filePath : path_1.resolve(path_1.join(this.configDir, filePath));
-        var relativePath = path_1.relative(this.configDir, fullFilePath);
-        return ((!this.config.includes ||
-            utils_1.matchesGlobs(relativePath, this.configDir, this.includes)) && !utils_1.matchesGlobs(relativePath, this.configDir, this.excludes));
-    };
-    GraphQLProjectConfig.prototype.getSchema = function () {
-        if (this.schemaPath) {
-            return utils_1.readSchema(this.resolveConfigPath(this.schemaPath));
-        }
-        throw new Error("\"schemaPath\" is required but not provided in " + this.configPath);
-    };
-    GraphQLProjectConfig.prototype.resolveIntrospection = function () {
-        return __awaiter(this, void 0, void 0, function () {
-            return __generator(this, function (_a) {
-                return [2 /*return*/, utils_1.schemaToIntrospection(this.getSchema())];
-            });
-        });
-    };
-    GraphQLProjectConfig.prototype.getSchemaSDL = function () {
-        return graphql_1.printSchema(this.getSchema());
-    };
-    Object.defineProperty(GraphQLProjectConfig.prototype, "configDir", {
-        // Getters
-        get: function () {
-            return path_1.dirname(this.configPath);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(GraphQLProjectConfig.prototype, "schemaPath", {
-        get: function () {
-            return this.config.schemaPath ? this.resolveConfigPath(this.config.schemaPath) : null;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(GraphQLProjectConfig.prototype, "includes", {
-        get: function () {
-            return (this.config.includes || []).map(utils_1.normalizeGlob);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(GraphQLProjectConfig.prototype, "excludes", {
-        get: function () {
-            return (this.config.excludes || []).map(utils_1.normalizeGlob);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(GraphQLProjectConfig.prototype, "extensions", {
-        get: function () {
-            return this.config.extensions || {};
-        },
-        enumerable: true,
-        configurable: true
-    });
-    Object.defineProperty(GraphQLProjectConfig.prototype, "endpointsExtension", {
-        /*
-         extension related helper functions
-        */
-        get: function () {
-            if (!this.extensions.endpoints) {
-                return null;
-            }
-            var endpoints = this.extensions.endpoints;
-            if (typeof endpoints !== 'object' || Array.isArray(endpoints)) {
-                throw new Error(this.configPath + ": \"endpoints\" should be an object");
-            }
-            if (Object.keys(endpoints).length === 0) {
-                return null;
-            }
-            return new extensions_1.GraphQLEndpointsExtension(this.extensions.endpoints, this.configPath);
-        },
-        enumerable: true,
-        configurable: true
-    });
-    return GraphQLProjectConfig;
-}());
-exports.GraphQLProjectConfig = GraphQLProjectConfig;
-function loadProjectConfig(config, projectName) {
-    var projects = config.projects, configBase = __rest(config, ["projects"]);
-    if (projects == null || !Object.keys(projects).length) {
-        return config;
-    }
-    if (!projectName) {
-        throw new Error("Project name must be specified for multiproject config. " +
-            ("Valid project names: " + Object.keys(projects).join(', ')));
-    }
-    var projectConfig = projects[projectName];
-    if (!projectConfig) {
-        throw new Error("\"" + projectName + "\" is not a valid project name. " +
-            ("Valid project names: " + Object.keys(projects).join(', ')));
-    }
-    return utils_1.mergeConfigs(configBase, projectConfig);
-}
diff --git a/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.d.ts b/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.js b/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.js
deleted file mode 100644
index 47aae34..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/findGraphQLConfigFile.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var path_1 = require("path");
-var fs_1 = require("fs");
-var os_1 = require("os");
-var _1 = require("../../");
-ava_1.default('returns a correct config filename', function (t) {
-    var configFile = _1.findGraphQLConfigFile(__dirname);
-    t.deepEqual(configFile, path_1.join(__dirname, '.graphqlconfig'));
-});
-ava_1.default('returns a correct config filename for 1st level of sub directories', function (t) {
-    var configFile = _1.findGraphQLConfigFile(__dirname + "/../sub-directory-config");
-    t.deepEqual(configFile, path_1.join(__dirname + "/../sub-directory-config/sub-directory-2", '.graphqlconfig'));
-});
-ava_1.default('throws GraphQLConfigNotFoundError when config is not found', function (t) {
-    var tempDir = fs_1.mkdtempSync(path_1.join(os_1.tmpdir(), 'graphql-config'));
-    t.throws(function () { return _1.findGraphQLConfigFile(tempDir); }, _1.ConfigNotFoundError);
-});
diff --git a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.d.ts b/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.js b/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.js
deleted file mode 100644
index 24aa51b..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLConfig.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var path_1 = require("path");
-var graphql_1 = require("graphql");
-var _1 = require("../../");
-var CONFIG_DIR = path_1.join(__dirname, 'config');
-var config;
-ava_1.default.beforeEach(function () {
-    config = _1.getGraphQLConfig(CONFIG_DIR);
-});
-ava_1.default('returns a correct name', function (t) {
-    var testWithSchemaConfig = config.getProjectConfig('testWithSchema');
-    t.deepEqual(testWithSchemaConfig.projectName, 'testWithSchema');
-});
-ava_1.default('returns config for file', function (t) {
-    var testWithSchemaConfig = config.getConfigForFile(path_1.resolve('./config/schema-a.graphql'));
-    if (testWithSchemaConfig) {
-        t.deepEqual(testWithSchemaConfig.projectName, 'testWithSchema');
-    }
-    else {
-        t.fail();
-    }
-});
-ava_1.default('returns a correct root dir', function (t) {
-    t.deepEqual(config.configDir, CONFIG_DIR);
-});
-ava_1.default('returns a correct schema path', function (t) {
-    t.deepEqual(config.getProjectConfig('testWithSchema').schemaPath, path_1.join(CONFIG_DIR, '__schema__/StarWarsSchema.graphql'));
-    t.deepEqual(config.getProjectConfig('testWithoutSchema').schemaPath, null);
-});
-ava_1.default('reads single schema', function (t) {
-    var typeDefs = "type Query {\n  hello: String!\n}\n";
-    t.is(graphql_1.printSchema(config.getProjectConfig('testSchemaA').getSchema()), typeDefs);
-});
-ava_1.default('reads imported schema', function (t) {
-    var typeDefs = "type Query {\n  hello: String!\n  user: User!\n}\n\ntype User {\n  name: String\n}\n";
-    t.is(graphql_1.printSchema(config.getProjectConfig('testSchemaB').getSchema()), typeDefs);
-});
diff --git a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.d.ts b/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.js b/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.js
deleted file mode 100644
index 4183dbe..0000000
--- a/node_modules/graphql-config/lib/__tests__/basic/getGraphQLProjectConfig.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var _this = this;
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var _1 = require("../../");
-ava_1.default('resolves schema from file', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var config, resolvedSchema;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                config = _1.getGraphQLProjectConfig(__dirname);
-                return [4 /*yield*/, config.resolveIntrospection()];
-            case 1:
-                resolvedSchema = _a.sent();
-                t.snapshot(resolvedSchema);
-                return [2 /*return*/];
-        }
-    });
-}); });
diff --git a/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.d.ts b/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.js b/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.js
deleted file mode 100644
index b985800..0000000
--- a/node_modules/graphql-config/lib/__tests__/endpoint-extension/resolve.js
+++ /dev/null
@@ -1,180 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var _this = this;
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var graphql_1 = require("graphql");
-var _1 = require("../../");
-var utils_1 = require("../utils");
-ava_1.default.before(function (t) { return __awaiter(_this, void 0, void 0, function () {
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0: return [4 /*yield*/, utils_1.serveSchema()];
-            case 1: return [2 /*return*/, _a.sent()];
-        }
-    });
-}); });
-var confPath = __dirname + "/.graphqlconfig";
-ava_1.default('getEndpointsMap when endpoint is string url', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, config, endpoints;
-    return __generator(this, function (_a) {
-        configData = {
-            schemaPath: '../schema.json',
-            extensions: {
-                endpoints: {
-                    dev: 'http://default',
-                },
-            },
-        };
-        config = new _1.GraphQLProjectConfig(configData, confPath);
-        endpoints = config.endpointsExtension;
-        t.deepEqual(endpoints && endpoints.getRawEndpointsMap(), {
-            dev: { url: 'http://default' },
-        });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('getEndpointsMap when endpoint is single endpoint config', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, config, endpoint;
-    return __generator(this, function (_a) {
-        configData = {
-            schemaPath: '../schema.json',
-            extensions: {
-                endpoints: {
-                    dev: {
-                        url: 'http://default',
-                        subscription: {
-                            url: 'ws://test',
-                        },
-                    },
-                },
-            },
-        };
-        config = new _1.GraphQLProjectConfig(configData, confPath, undefined);
-        endpoint = config.endpointsExtension;
-        t.deepEqual(endpoint && endpoint.getRawEndpointsMap(), {
-            dev: configData.extensions.endpoints.dev,
-        });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('getEndpointsMap when endpoint is endpoints map', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, config, endpoint;
-    return __generator(this, function (_a) {
-        configData = {
-            schemaPath: '../schema.json',
-            extensions: {
-                endpoints: {
-                    dev: 'http://dev',
-                    prod: {
-                        url: 'http://prod',
-                        subscription: {
-                            url: 'ws://prod',
-                        },
-                    },
-                },
-            },
-        };
-        config = new _1.GraphQLProjectConfig(configData, confPath, undefined);
-        endpoint = config.endpointsExtension;
-        t.deepEqual(endpoint && endpoint.getRawEndpointsMap(), {
-            dev: {
-                url: 'http://dev',
-            },
-            prod: {
-                url: 'http://prod',
-                subscription: {
-                    url: 'ws://prod',
-                },
-            },
-        });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('resolveSchemaFromEndpoint should throw if non-existing endpoint is specified', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, config, error, endpoint;
-    return __generator(this, function (_a) {
-        configData = {
-            schemaPath: '../schema.json',
-            extensions: {
-                endpoints: {
-                    dev: {
-                        url: 'http://dev',
-                        subscription: {
-                            url: 'ws://dev',
-                        },
-                    },
-                },
-            },
-        };
-        config = new _1.GraphQLProjectConfig(configData, confPath, undefined);
-        endpoint = config.endpointsExtension;
-        error = t.throws(function () { return endpoint && endpoint.getEndpoint('prod').resolveSchema(); });
-        t.regex(error.message, /"prod" is not valid endpoint name. Valid endpoint names: dev/);
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('resolveSchemaFromEndpoint HTTP', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, config, schema, resolvedIntrospection;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                configData = {
-                    schemaPath: '../schema.json',
-                    extensions: {
-                        endpoints: {
-                            dev: 'http://127.0.0.1:33333',
-                        },
-                    },
-                };
-                config = new _1.GraphQLProjectConfig(configData, confPath, undefined);
-                if (!config.endpointsExtension) {
-                    throw 'endpointExtension can\'t be empty';
-                }
-                return [4 /*yield*/, config.endpointsExtension
-                        .getEndpoint('dev')
-                        .resolveSchema()];
-            case 1:
-                schema = _a.sent();
-                return [4 /*yield*/, graphql_1.graphql(schema, graphql_1.introspectionQuery)];
-            case 2:
-                resolvedIntrospection = _a.sent();
-                t.snapshot(resolvedIntrospection);
-                return [2 /*return*/];
-        }
-    });
-}); });
diff --git a/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.d.ts b/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.js b/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.js
deleted file mode 100644
index 17cbba6..0000000
--- a/node_modules/graphql-config/lib/__tests__/endpoint-extension/string-refs.js
+++ /dev/null
@@ -1,113 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var _this = this;
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var _1 = require("../../");
-var utils_1 = require("../utils");
-var endpoints;
-ava_1.default.beforeEach(function () {
-    endpoints = _1.getGraphQLProjectConfig(__dirname)
-        .endpointsExtension;
-});
-ava_1.default('getEndpointsMap', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    return __generator(this, function (_a) {
-        t.deepEqual(endpoints.getRawEndpointsMap(), {
-            default: {
-                url: '${env:TEST_ENDPOINT_URL}',
-            },
-        });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('getEndpointEnvVars should returns null for undefined env var', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    return __generator(this, function (_a) {
-        t.deepEqual(endpoints.getEnvVarsForEndpoint('default'), {
-            TEST_ENDPOINT_URL: null,
-        });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('getEndpointEnvVars should returns value for defined env var', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var testURL;
-    return __generator(this, function (_a) {
-        testURL = 'http://test.com';
-        process.env['TEST_ENDPOINT_URL'] = testURL;
-        t.deepEqual(endpoints.getEnvVarsForEndpoint('default'), {
-            TEST_ENDPOINT_URL: testURL,
-        });
-        delete process.env['TEST_ENDPOINT_URL'];
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('resolveSchemaFromEndpoint should throw when not all env variables are set', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    return __generator(this, function (_a) {
-        t.throws(function () { return endpoints.getEndpoint('default').resolveSchema(); });
-        return [2 /*return*/];
-    });
-}); });
-ava_1.default('ability to pass external values as env vars to resolveSchemaFromEndpoint', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0: return [4 /*yield*/, utils_1.serveSchema()];
-            case 1:
-                _a.sent();
-                t.notThrows(function () {
-                    return endpoints
-                        .getEndpoint('default', { TEST_ENDPOINT_URL: 'http://127.0.0.1:33333' })
-                        .resolveSchema();
-                });
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('getUsedEnvs', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var configData, envs;
-    return __generator(this, function (_a) {
-        configData = {
-            schemaPath: '../schema.json',
-            extensions: {
-                endpoints: {
-                    dev: 'http://127.0.0.1:${env:EXTENSION_TEST_PORT}',
-                },
-            },
-        };
-        envs = _1.getUsedEnvs(configData);
-        t.is(Object.keys(envs)[0], 'EXTENSION_TEST_PORT');
-        return [2 /*return*/];
-    });
-}); });
diff --git a/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.d.ts b/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.js b/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.js
deleted file mode 100644
index ffaeec1..0000000
--- a/node_modules/graphql-config/lib/__tests__/introspection-query/getSchema.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var graphql_1 = require("graphql");
-var _1 = require("../../");
-ava_1.default('reads single schema', function (t) {
-    var config = _1.getGraphQLConfig(__dirname);
-    var typeDefs = "schema {\n  query: RootQueryType\n}\n\ntype Bar {\n  widgets: [Widget]\n}\n\ntype RootQueryType {\n  foo: String\n  bar: Bar\n}\n\ntype Widget {\n  count: Int\n}\n";
-    t.is(graphql_1.printSchema(config.getProjectConfig('testSchemaA').getSchema()), typeDefs);
-});
diff --git a/node_modules/graphql-config/lib/__tests__/utils.d.ts b/node_modules/graphql-config/lib/__tests__/utils.d.ts
deleted file mode 100644
index e4c7b67..0000000
--- a/node_modules/graphql-config/lib/__tests__/utils.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function serveSchema(port?: number): Promise<any>;
diff --git a/node_modules/graphql-config/lib/__tests__/utils.js b/node_modules/graphql-config/lib/__tests__/utils.js
deleted file mode 100644
index 2d07cf3..0000000
--- a/node_modules/graphql-config/lib/__tests__/utils.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var schema = require('./schema.json');
-var http_1 = require("http");
-function serveSchema(port) {
-    if (port === void 0) { port = 33333; }
-    var handleRequest = function (request, response) {
-        response.writeHead(200, { 'Content-Type': 'application/json' });
-        response.end(JSON.stringify(schema));
-    };
-    var server = http_1.createServer(handleRequest);
-    return new Promise(function (resolve) {
-        server.listen(port, resolve);
-    });
-}
-exports.serveSchema = serveSchema;
diff --git a/node_modules/graphql-config/lib/__tests__/yaml/test.d.ts b/node_modules/graphql-config/lib/__tests__/yaml/test.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-config/lib/__tests__/yaml/test.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-config/lib/__tests__/yaml/test.js b/node_modules/graphql-config/lib/__tests__/yaml/test.js
deleted file mode 100644
index 7705826..0000000
--- a/node_modules/graphql-config/lib/__tests__/yaml/test.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var _this = this;
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var _1 = require("../../");
-ava_1.default(function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var config, resolvedSchema;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                config = _1.getGraphQLProjectConfig(__dirname);
-                return [4 /*yield*/, config.resolveIntrospection()];
-            case 1:
-                resolvedSchema = _a.sent();
-                t.snapshot(resolvedSchema);
-                return [2 /*return*/];
-        }
-    });
-}); });
diff --git a/node_modules/graphql-config/lib/errors.d.ts b/node_modules/graphql-config/lib/errors.d.ts
deleted file mode 100644
index 2210784..0000000
--- a/node_modules/graphql-config/lib/errors.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const ConfigNotFoundError_base: ErrorConstructor;
-export declare class ConfigNotFoundError extends ConfigNotFoundError_base {
-    constructor(message: string);
-}
diff --git a/node_modules/graphql-config/lib/errors.js b/node_modules/graphql-config/lib/errors.js
deleted file mode 100644
index ff761ba..0000000
--- a/node_modules/graphql-config/lib/errors.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-function ExtendableBuiltin(cls) {
-    function ExtendableBuiltin() {
-        cls.apply(this, arguments);
-    }
-    ExtendableBuiltin.prototype = Object.create(cls.prototype);
-    Object.setPrototypeOf(ExtendableBuiltin, cls);
-    return ExtendableBuiltin;
-}
-var ConfigNotFoundError = /** @class */ (function (_super) {
-    __extends(ConfigNotFoundError, _super);
-    function ConfigNotFoundError(message) {
-        var _this = _super.call(this, message) || this;
-        _this.name = _this.constructor.name;
-        _this.message = message;
-        return _this;
-    }
-    return ConfigNotFoundError;
-}(ExtendableBuiltin(Error)));
-exports.ConfigNotFoundError = ConfigNotFoundError;
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.d.ts b/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.d.ts
deleted file mode 100644
index 782fadc..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { GraphQLClient } from 'graphql-request';
-import { GraphQLSchema } from 'graphql';
-import { IntrospectionResult } from '../../types';
-export declare type GraphQLConfigEnpointsSubscription = {
-    url: string;
-    connectionParams?: {
-        [name: string]: string | undefined;
-    };
-};
-export declare type GraphQLConfigEnpointConfig = {
-    url: string;
-    headers?: {
-        [name: string]: string;
-    };
-    subscription?: GraphQLConfigEnpointsSubscription;
-};
-export declare type GraphQLConfigEnpointsMapData = {
-    [env: string]: GraphQLConfigEnpointConfig | string;
-};
-export declare type GraphQLConfigEnpointsMap = {
-    [env: string]: GraphQLConfigEnpointConfig | GraphQLEndpoint;
-};
-export declare type GraphQLConfigEnpointsData = GraphQLConfigEnpointsMapData;
-export declare class GraphQLEndpointsExtension {
-    raw: GraphQLConfigEnpointsMapData;
-    private configPath;
-    constructor(endpointConfig: GraphQLConfigEnpointsMapData, configPath: string);
-    getRawEndpointsMap(): GraphQLConfigEnpointsMap;
-    getEnvVarsForEndpoint(endpointName: string): {
-        [name: string]: string | null;
-    };
-    getEndpoint(endpointName: string, env?: {
-        [name: string]: string | undefined;
-    }): GraphQLEndpoint;
-    private getRawEndpoint(endpointName?);
-}
-export declare class GraphQLEndpoint {
-    url: string;
-    headers: {
-        [name: string]: string;
-    };
-    subscription: GraphQLConfigEnpointsSubscription;
-    constructor(resolvedConfig: GraphQLConfigEnpointConfig);
-    getClient(clientOptions?: any): GraphQLClient;
-    resolveIntrospection(): Promise<IntrospectionResult>;
-    resolveSchema(): Promise<GraphQLSchema>;
-    resolveSchemaSDL(): Promise<string>;
-}
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.js b/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.js
deleted file mode 100644
index f8df2e3..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/EndpointsExtension.js
+++ /dev/null
@@ -1,165 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var graphql_request_1 = require("graphql-request");
-var graphql_1 = require("graphql");
-var resolveRefString_1 = require("./resolveRefString");
-var GraphQLEndpointsExtension = /** @class */ (function () {
-    function GraphQLEndpointsExtension(endpointConfig, configPath) {
-        this.raw = endpointConfig;
-        this.configPath = configPath;
-    }
-    GraphQLEndpointsExtension.prototype.getRawEndpointsMap = function () {
-        var endpoints = {};
-        for (var name_1 in this.raw) {
-            var rawEndpoint = this.raw[name_1];
-            if (typeof rawEndpoint === 'string') {
-                endpoints[name_1] = { url: rawEndpoint };
-            }
-            else {
-                endpoints[name_1] = rawEndpoint;
-            }
-        }
-        return endpoints;
-    };
-    GraphQLEndpointsExtension.prototype.getEnvVarsForEndpoint = function (endpointName) {
-        return resolveRefString_1.getUsedEnvs(this.getRawEndpoint(endpointName));
-    };
-    GraphQLEndpointsExtension.prototype.getEndpoint = function (endpointName, env) {
-        if (env === void 0) { env = process.env; }
-        var endpoint = this.getRawEndpoint(endpointName);
-        try {
-            var resolved = resolveRefString_1.resolveEnvsInValues(endpoint, env);
-            // graphql-config extensions might have already instantiated a GraphQLEndpoint
-            // or derived class from the GraphQLConfigEndpointConfig data. In that case,
-            // getRawEndpoint will already return a GraphQLEndpoint and it should not be overwritten.
-            if (!(resolved instanceof GraphQLEndpoint)) {
-                return new GraphQLEndpoint(resolved);
-            }
-            return resolved;
-        }
-        catch (e) {
-            e.message = this.configPath + ": " + e.message;
-            throw e;
-        }
-    };
-    GraphQLEndpointsExtension.prototype.getRawEndpoint = function (endpointName) {
-        if (endpointName === void 0) { endpointName = process.env.GRAPHQL_CONFIG_ENDPOINT_NAME; }
-        var rawEndpointsMap = this.getRawEndpointsMap();
-        var endpointNames = Object.keys(rawEndpointsMap);
-        if (endpointName == null) {
-            if (endpointNames.length === 1) {
-                endpointName = endpointNames[0];
-            }
-            else {
-                throw new Error('You have to specify endpoint name or define GRAPHQL_CONFIG_ENDPOINT_NAME environment variable');
-            }
-        }
-        var endpoint = rawEndpointsMap[endpointName];
-        if (!endpoint) {
-            throw new Error(this.configPath + ": \"" + endpointName + "\" is not valid endpoint name. " +
-                ("Valid endpoint names: " + endpointNames.join(', ')));
-        }
-        if (!endpoint.url && !(endpoint instanceof GraphQLEndpoint)) {
-            throw new Error(this
-                .configPath + ": \"url\" is required but is not specified for \"" + endpointName + "\" endpoint");
-        }
-        return endpoint;
-    };
-    return GraphQLEndpointsExtension;
-}());
-exports.GraphQLEndpointsExtension = GraphQLEndpointsExtension;
-var GraphQLEndpoint = /** @class */ (function () {
-    function GraphQLEndpoint(resolvedConfig) {
-        Object.assign(this, resolvedConfig);
-    }
-    GraphQLEndpoint.prototype.getClient = function (clientOptions) {
-        if (clientOptions === void 0) { clientOptions = {}; }
-        return new graphql_request_1.GraphQLClient(this.url, __assign({}, clientOptions, { headers: this.headers }));
-    };
-    GraphQLEndpoint.prototype.resolveIntrospection = function () {
-        return __awaiter(this, void 0, void 0, function () {
-            var client, data;
-            return __generator(this, function (_a) {
-                switch (_a.label) {
-                    case 0:
-                        client = this.getClient();
-                        return [4 /*yield*/, client.request(graphql_1.introspectionQuery)];
-                    case 1:
-                        data = _a.sent();
-                        return [2 /*return*/, { data: data }];
-                }
-            });
-        });
-    };
-    GraphQLEndpoint.prototype.resolveSchema = function () {
-        return __awaiter(this, void 0, void 0, function () {
-            var introspection;
-            return __generator(this, function (_a) {
-                switch (_a.label) {
-                    case 0: return [4 /*yield*/, this.resolveIntrospection()];
-                    case 1:
-                        introspection = _a.sent();
-                        return [2 /*return*/, graphql_1.buildClientSchema(introspection.data)];
-                }
-            });
-        });
-    };
-    GraphQLEndpoint.prototype.resolveSchemaSDL = function () {
-        return __awaiter(this, void 0, void 0, function () {
-            var schema;
-            return __generator(this, function (_a) {
-                switch (_a.label) {
-                    case 0: return [4 /*yield*/, this.resolveSchema()];
-                    case 1:
-                        schema = _a.sent();
-                        return [2 /*return*/, graphql_1.printSchema(schema)];
-                }
-            });
-        });
-    };
-    return GraphQLEndpoint;
-}());
-exports.GraphQLEndpoint = GraphQLEndpoint;
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/index.d.ts b/node_modules/graphql-config/lib/extensions/endpoints/index.d.ts
deleted file mode 100644
index fc9045b..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './EndpointsExtension';
-export * from './resolveRefString';
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/index.js b/node_modules/graphql-config/lib/extensions/endpoints/index.js
deleted file mode 100644
index 6c8c9d8..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("./EndpointsExtension"));
-__export(require("./resolveRefString"));
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.d.ts b/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.d.ts
deleted file mode 100644
index 7c75917..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export declare function resolveRefString(str: string, values?: object): string;
-export declare function resolveEnvsInValues<T extends {
-    [key: string]: any;
-}>(config: T, env: {
-    [name: string]: string | undefined;
-}): T;
-export declare function getUsedEnvs(config: any): {
-    [name: string]: string;
-};
diff --git a/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.js b/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.js
deleted file mode 100644
index abdb0b0..0000000
--- a/node_modules/graphql-config/lib/extensions/endpoints/resolveRefString.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function resolveRefString(str, values) {
-    var _a = parse(str), strings = _a.strings, rawRefs = _a.rawRefs;
-    var refValues = rawRefs.map(function (ref) { return resolveRef(ref, values); });
-    var res = '';
-    for (var i = 0; i < refValues.length; i++) {
-        res += strings[i];
-        res += refValues[i];
-    }
-    res += strings.pop();
-    return res;
-}
-exports.resolveRefString = resolveRefString;
-function resolveEnvsInValues(config, env) {
-    for (var key in config) {
-        var value = config[key];
-        if (typeof value === 'string') {
-            config[key] = resolveRefString(value, { env: env });
-        }
-        else if (typeof value === 'object') {
-            config[key] = resolveEnvsInValues(value, env);
-        }
-    }
-    return config;
-}
-exports.resolveEnvsInValues = resolveEnvsInValues;
-function getUsedEnvs(config) {
-    var result = {};
-    var traverse = function (val) {
-        if (typeof val === 'string') {
-            var rawRefs = parse(val).rawRefs;
-            for (var _i = 0, rawRefs_1 = rawRefs; _i < rawRefs_1.length; _i++) {
-                var ref = rawRefs_1[_i];
-                result[parseRef(ref).ref] = resolveRef(ref, {}, false);
-            }
-        }
-        else if (typeof val === 'object') {
-            for (var key in val) {
-                traverse(val[key]);
-            }
-        }
-    };
-    traverse(config);
-    return result;
-}
-exports.getUsedEnvs = getUsedEnvs;
-function parseRef(rawRef) {
-    var _a = rawRef.split(/\s*:\s*/), type = _a[0], ref = _a[1];
-    return { type: type, ref: ref };
-}
-function resolveRef(rawRef, values, throwIfUndef) {
-    if (values === void 0) { values = {}; }
-    if (throwIfUndef === void 0) { throwIfUndef = true; }
-    var _a = parseRef(rawRef), type = _a.type, ref = _a.ref;
-    if (type === 'env') {
-        if (!ref) {
-            throw new Error("Reference value is not present for " + type + ": " + rawRef);
-        }
-        var refValue = (values.env && values.env[ref]) || process.env[ref];
-        if (!refValue) {
-            if (throwIfUndef) {
-                throw new Error("Environment variable " + ref + " is not set");
-            }
-            else {
-                return null;
-            }
-        }
-        return refValue;
-    }
-    else {
-        // support only 'env' for now
-        throw new Error('Undefined reference type ${refType}. Only "env" is supported');
-    }
-}
-function parse(str) {
-    var regex = /\${([^}]*)}/g;
-    var strings = [];
-    var rawRefs = [];
-    var prevIdx = 0;
-    var match;
-    // tslint:disable-next-line:no-conditional-assignment
-    while ((match = regex.exec(str)) !== null) {
-        if (match.index > 0 && str[match.index - 1] === '\\') {
-            continue;
-        }
-        strings.push(str.substring(prevIdx, match.index));
-        rawRefs.push(match[1]);
-        prevIdx = match.index + match[0].length;
-    }
-    strings.push(str.substring(prevIdx));
-    return { strings: strings, rawRefs: rawRefs };
-}
diff --git a/node_modules/graphql-config/lib/extensions/index.d.ts b/node_modules/graphql-config/lib/extensions/index.d.ts
deleted file mode 100644
index 2a5d186..0000000
--- a/node_modules/graphql-config/lib/extensions/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './endpoints/';
diff --git a/node_modules/graphql-config/lib/extensions/index.js b/node_modules/graphql-config/lib/extensions/index.js
deleted file mode 100644
index 4a853fe..0000000
--- a/node_modules/graphql-config/lib/extensions/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("./endpoints/"));
diff --git a/node_modules/graphql-config/lib/findGraphQLConfigFile.d.ts b/node_modules/graphql-config/lib/findGraphQLConfigFile.d.ts
deleted file mode 100644
index 0e871ee..0000000
--- a/node_modules/graphql-config/lib/findGraphQLConfigFile.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare const GRAPHQL_CONFIG_NAME = ".graphqlconfig";
-export declare const GRAPHQL_CONFIG_YAML_NAME = ".graphqlconfig.yaml";
-export declare const GRAPHQL_CONFIG_YML_NAME = ".graphqlconfig.yml";
-export declare function findGraphQLConfigFile(filePath: string): string;
diff --git a/node_modules/graphql-config/lib/findGraphQLConfigFile.js b/node_modules/graphql-config/lib/findGraphQLConfigFile.js
deleted file mode 100644
index 835f993..0000000
--- a/node_modules/graphql-config/lib/findGraphQLConfigFile.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var path_1 = require("path");
-var fs_1 = require("fs");
-var errors_1 = require("./errors");
-exports.GRAPHQL_CONFIG_NAME = '.graphqlconfig';
-exports.GRAPHQL_CONFIG_YAML_NAME = '.graphqlconfig.yaml';
-exports.GRAPHQL_CONFIG_YML_NAME = '.graphqlconfig.yml';
-function isRootDir(path) {
-    return path_1.dirname(path) === path;
-}
-function findGraphQLConfigFile(filePath) {
-    filePath = path_1.resolve(filePath);
-    if (filePath.endsWith(exports.GRAPHQL_CONFIG_NAME) ||
-        filePath.endsWith(exports.GRAPHQL_CONFIG_YAML_NAME) ||
-        filePath.endsWith(exports.GRAPHQL_CONFIG_YML_NAME)) {
-        return filePath;
-    }
-    var currentDir = filePath;
-    while (!isRootDir(currentDir)) {
-        var configPath = path_1.join(currentDir, exports.GRAPHQL_CONFIG_NAME);
-        if (fs_1.existsSync(configPath)) {
-            return configPath;
-        }
-        if (fs_1.existsSync(configPath + '.yaml')) {
-            return configPath + '.yaml';
-        }
-        if (fs_1.existsSync(configPath + '.yml')) {
-            return configPath + '.yml';
-        }
-        currentDir = path_1.dirname(currentDir);
-    }
-    // Try to find GraphQL config in first level of sub-directories.
-    var subDirectories = fs_1.readdirSync(filePath).map(function (dir) { return path_1.join(filePath, dir); }).filter(function (dir) {
-        return (fs_1.lstatSync(dir).isDirectory());
-    });
-    var subDirectoriesWithGraphQLConfig = subDirectories.map(function (subDirectory) {
-        var subDirectoryFiles = fs_1.readdirSync(subDirectory)
-            .filter(function (file) {
-            return !(fs_1.lstatSync(path_1.join(subDirectory, file)).isDirectory());
-        })
-            .map(function (file) {
-            return path_1.basename(path_1.join(subDirectory, file));
-        });
-        if (subDirectoryFiles.includes(exports.GRAPHQL_CONFIG_NAME)) {
-            return subDirectory + "/" + exports.GRAPHQL_CONFIG_NAME;
-        }
-        if (subDirectoryFiles.includes(exports.GRAPHQL_CONFIG_NAME + ".yml")) {
-            return subDirectory + "/" + exports.GRAPHQL_CONFIG_NAME + ".yml";
-        }
-        if (subDirectoryFiles.includes(exports.GRAPHQL_CONFIG_NAME + ".yaml")) {
-            return subDirectory + "/" + exports.GRAPHQL_CONFIG_NAME + ".yaml";
-        }
-    }).filter(function (subDirectory) { return Boolean(subDirectory); });
-    if (subDirectoriesWithGraphQLConfig.length > 0) {
-        return subDirectoriesWithGraphQLConfig[0];
-    }
-    throw new errors_1.ConfigNotFoundError("\"" + exports.GRAPHQL_CONFIG_NAME + "\" file is not available in the provided config " +
-        ("directory: " + filePath + "\nPlease check the config directory."));
-}
-exports.findGraphQLConfigFile = findGraphQLConfigFile;
diff --git a/node_modules/graphql-config/lib/getGraphQLConfig.d.ts b/node_modules/graphql-config/lib/getGraphQLConfig.d.ts
deleted file mode 100644
index 167ce97..0000000
--- a/node_modules/graphql-config/lib/getGraphQLConfig.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { GraphQLConfig } from './GraphQLConfig';
-import { GraphQLProjectConfig } from './GraphQLProjectConfig';
-export declare function getGraphQLConfig(rootDir?: string): GraphQLConfig;
-export declare function getGraphQLProjectConfig(rootDir?: string, projectName?: string | undefined): GraphQLProjectConfig;
diff --git a/node_modules/graphql-config/lib/getGraphQLConfig.js b/node_modules/graphql-config/lib/getGraphQLConfig.js
deleted file mode 100644
index 22ff6b7..0000000
--- a/node_modules/graphql-config/lib/getGraphQLConfig.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var utils_1 = require("./utils");
-var findGraphQLConfigFile_1 = require("./findGraphQLConfigFile");
-var GraphQLConfig_1 = require("./GraphQLConfig");
-function getGraphQLConfig(rootDir) {
-    if (rootDir === void 0) { rootDir = process.cwd(); }
-    var configPath = findGraphQLConfigFile_1.findGraphQLConfigFile(rootDir);
-    var config = utils_1.readConfig(configPath);
-    utils_1.validateConfig(config);
-    return new GraphQLConfig_1.GraphQLConfig(config, configPath);
-}
-exports.getGraphQLConfig = getGraphQLConfig;
-function getGraphQLProjectConfig(rootDir, projectName) {
-    if (projectName === void 0) { projectName = process.env.GRAPHQL_CONFIG_PROJECT; }
-    return getGraphQLConfig(rootDir).getProjectConfig(projectName);
-}
-exports.getGraphQLProjectConfig = getGraphQLProjectConfig;
diff --git a/node_modules/graphql-config/lib/index.d.ts b/node_modules/graphql-config/lib/index.d.ts
deleted file mode 100644
index 1e7cc15..0000000
--- a/node_modules/graphql-config/lib/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export { getGraphQLConfig, getGraphQLProjectConfig } from './getGraphQLConfig';
-export { GRAPHQL_CONFIG_NAME, GRAPHQL_CONFIG_YAML_NAME, findGraphQLConfigFile } from './findGraphQLConfigFile';
-export { writeSchema, validateConfig, getSchemaExtensions } from './utils';
-export * from './errors';
-export * from './extensions/';
-export { GraphQLConfig } from './GraphQLConfig';
-export { GraphQLProjectConfig } from './GraphQLProjectConfig';
-export * from './types';
diff --git a/node_modules/graphql-config/lib/index.js b/node_modules/graphql-config/lib/index.js
deleted file mode 100644
index 3cf5fea..0000000
--- a/node_modules/graphql-config/lib/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-var getGraphQLConfig_1 = require("./getGraphQLConfig");
-exports.getGraphQLConfig = getGraphQLConfig_1.getGraphQLConfig;
-exports.getGraphQLProjectConfig = getGraphQLConfig_1.getGraphQLProjectConfig;
-var findGraphQLConfigFile_1 = require("./findGraphQLConfigFile");
-exports.GRAPHQL_CONFIG_NAME = findGraphQLConfigFile_1.GRAPHQL_CONFIG_NAME;
-exports.GRAPHQL_CONFIG_YAML_NAME = findGraphQLConfigFile_1.GRAPHQL_CONFIG_YAML_NAME;
-exports.findGraphQLConfigFile = findGraphQLConfigFile_1.findGraphQLConfigFile;
-var utils_1 = require("./utils");
-exports.writeSchema = utils_1.writeSchema;
-exports.validateConfig = utils_1.validateConfig;
-exports.getSchemaExtensions = utils_1.getSchemaExtensions;
-__export(require("./errors"));
-__export(require("./extensions/"));
-var GraphQLConfig_1 = require("./GraphQLConfig");
-exports.GraphQLConfig = GraphQLConfig_1.GraphQLConfig;
-var GraphQLProjectConfig_1 = require("./GraphQLProjectConfig");
-exports.GraphQLProjectConfig = GraphQLProjectConfig_1.GraphQLProjectConfig;
diff --git a/node_modules/graphql-config/lib/types.d.ts b/node_modules/graphql-config/lib/types.d.ts
deleted file mode 100644
index 62475cd..0000000
--- a/node_modules/graphql-config/lib/types.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { IntrospectionQuery } from 'graphql';
-import { GraphQLConfigEnpointsData } from './extensions/';
-export declare type IntrospectionResult = {
-    data: IntrospectionQuery;
-    extensions?: Object;
-    errors?: any;
-};
-export declare type GraphQLConfigExtensions = {
-    endpoints?: GraphQLConfigEnpointsData;
-    [name: string]: any;
-};
-export declare type GraphQLResolvedConfigData = {
-    schemaPath: string;
-    includes?: Array<string>;
-    excludes?: Array<string>;
-    extensions?: GraphQLConfigExtensions;
-};
-export declare type GraphQLConfigData = GraphQLResolvedConfigData & {
-    projects?: {
-        [projectName: string]: GraphQLResolvedConfigData;
-    };
-};
diff --git a/node_modules/graphql-config/lib/types.js b/node_modules/graphql-config/lib/types.js
deleted file mode 100644
index c8ad2e5..0000000
--- a/node_modules/graphql-config/lib/types.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/node_modules/graphql-config/lib/utils.d.ts b/node_modules/graphql-config/lib/utils.d.ts
deleted file mode 100644
index 220bd56..0000000
--- a/node_modules/graphql-config/lib/utils.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLSchema, IntrospectionQuery } from 'graphql';
-import { GraphQLConfigData, IntrospectionResult } from './types';
-export declare function readConfig(configPath: string): GraphQLConfigData;
-export declare function writeConfig(configPath: string, config: GraphQLConfigData): void;
-export declare function normalizeGlob(glob: string): string;
-export declare function matchesGlobs(filePath: string, configDir: string, globs?: string[]): boolean;
-export declare function validateConfig(config: GraphQLConfigData): void;
-export declare function mergeConfigs(dest: GraphQLConfigData, src: GraphQLConfigData): GraphQLConfigData;
-export declare function schemaToIntrospection(schema: GraphQLSchema): Promise<IntrospectionResult>;
-export declare function introspectionToSchema(introspection: IntrospectionResult | (IntrospectionQuery & {
-    errors: undefined;
-    data: undefined;
-})): GraphQLSchema;
-export declare function readSchema(path: any): GraphQLSchema;
-export declare function writeSchema(path: string, schema: GraphQLSchema, schemaExtensions?: {
-    [name: string]: string;
-}): Promise<void>;
-export declare function getSchemaExtensions(path: string): {
-    [name: string]: string;
-};
diff --git a/node_modules/graphql-config/lib/utils.js b/node_modules/graphql-config/lib/utils.js
deleted file mode 100644
index 1bb4941..0000000
--- a/node_modules/graphql-config/lib/utils.js
+++ /dev/null
@@ -1,227 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var fs_1 = require("fs");
-var path_1 = require("path");
-var graphql_import_1 = require("graphql-import");
-var minimatch = require("minimatch");
-var yaml = require("js-yaml");
-var graphql_1 = require("graphql");
-function readConfig(configPath) {
-    var config;
-    try {
-        var rawConfig = fs_1.readFileSync(configPath, 'utf-8');
-        if (configPath.endsWith('.yaml') || configPath.endsWith('.yml')) {
-            config = yaml.safeLoad(rawConfig);
-        }
-        else {
-            config = JSON.parse(rawConfig);
-        }
-    }
-    catch (error) {
-        error.message = "Parsing " + configPath + " file has failed.\n" + error.message;
-        throw error;
-    }
-    return config;
-}
-exports.readConfig = readConfig;
-function writeConfig(configPath, config) {
-    var configContents;
-    if (configPath.endsWith('.yaml') || configPath.endsWith('.yml')) {
-        configContents = yaml.safeDump(config);
-    }
-    else {
-        configContents = JSON.stringify(config);
-    }
-    fs_1.writeFileSync(configPath, configContents, 'utf-8');
-}
-exports.writeConfig = writeConfig;
-function normalizeGlob(glob) {
-    if (glob.startsWith('./')) {
-        return glob.substr(2);
-    }
-    return glob;
-}
-exports.normalizeGlob = normalizeGlob;
-function matchesGlobs(filePath, configDir, globs) {
-    return (globs || []).some(function (glob) {
-        try {
-            var globStat = fs_1.lstatSync(path_1.join(configDir, glob));
-            var newGlob = glob.length === 0 ? '.' : glob;
-            var globToMatch = globStat.isDirectory() ? glob + "/**" : glob;
-            return minimatch(filePath, globToMatch, { matchBase: true });
-        }
-        catch (error) {
-            // Out of errors that lstat provides, EACCES and ENOENT are the
-            // most likely. For both cases, run the match with the raw glob
-            // and return the result.
-            return minimatch(filePath, glob, { matchBase: true });
-        }
-    });
-}
-exports.matchesGlobs = matchesGlobs;
-function validateConfig(config) {
-    // FIXME: implement
-}
-exports.validateConfig = validateConfig;
-function mergeConfigs(dest, src) {
-    var result = __assign({}, dest, src);
-    if (dest.extensions && src.extensions) {
-        result.extensions = __assign({}, dest.extensions, src.extensions);
-    }
-    if (dest.projects && src.projects) {
-        result.projects = __assign({}, dest.projects, src.projects);
-    }
-    return result;
-}
-exports.mergeConfigs = mergeConfigs;
-function schemaToIntrospection(schema) {
-    return graphql_1.graphql(schema, graphql_1.introspectionQuery);
-}
-exports.schemaToIntrospection = schemaToIntrospection;
-// Predicate for errors/data can be removed after typescript 2.7.
-// See: https://github.com/Microsoft/TypeScript/pull/19513
-function introspectionToSchema(introspection) {
-    if (introspection.errors != null) {
-        throw new Error('Introspection result contains errors');
-    }
-    return graphql_1.buildClientSchema(introspection.data ? introspection.data : introspection);
-}
-exports.introspectionToSchema = introspectionToSchema;
-function readSchema(path) {
-    // FIXME: prefix error
-    switch (path_1.extname(path)) {
-        case '.graphql':
-            return valueToSchema(graphql_import_1.importSchema(path));
-        case '.json':
-            var data = fs_1.readFileSync(path, { encoding: 'utf-8' });
-            var introspection = JSON.parse(data);
-            return valueToSchema(introspection);
-        default:
-            throw new Error('Unsupported schema file extention. Only ".graphql" and ".json" are supported');
-    }
-}
-exports.readSchema = readSchema;
-function valueToSchema(schema) {
-    if (schema instanceof graphql_1.GraphQLSchema) {
-        return schema;
-    }
-    else if (typeof schema === 'string') {
-        return graphql_1.buildSchema(schema);
-    }
-    else if (schema instanceof graphql_1.Source) {
-        return graphql_1.buildSchema(schema);
-    }
-    else if (typeof schema === 'object' && !Array.isArray(schema)) {
-        return introspectionToSchema(schema);
-    }
-    throw new Error('Can not convert data to a schema');
-}
-function writeSchema(path, schema, schemaExtensions) {
-    return __awaiter(this, void 0, void 0, function () {
-        var data, _a, name_1, introspection, _b;
-        return __generator(this, function (_c) {
-            switch (_c.label) {
-                case 0:
-                    schema = valueToSchema(schema);
-                    _a = path_1.extname(path);
-                    switch (_a) {
-                        case '.graphql': return [3 /*break*/, 1];
-                        case '.json': return [3 /*break*/, 2];
-                    }
-                    return [3 /*break*/, 4];
-                case 1:
-                    data = '';
-                    if (schemaExtensions) {
-                        for (name_1 in schemaExtensions) {
-                            data += "# " + name_1 + ": " + schemaExtensions[name_1] + "\n";
-                        }
-                        data += '\n';
-                    }
-                    data += graphql_1.printSchema(schema);
-                    return [3 /*break*/, 5];
-                case 2: return [4 /*yield*/, schemaToIntrospection(schema)];
-                case 3:
-                    introspection = _c.sent();
-                    introspection.extensions = (_b = {},
-                        _b['graphql-config'] = schemaExtensions,
-                        _b);
-                    data = JSON.stringify(introspection, null, 2);
-                    return [3 /*break*/, 5];
-                case 4: throw new Error('Unsupported schema file extention. Only ".graphql" and ".json" are supported');
-                case 5:
-                    fs_1.writeFileSync(path, data, 'utf-8');
-                    return [2 /*return*/];
-            }
-        });
-    });
-}
-exports.writeSchema = writeSchema;
-function getSchemaExtensions(path) {
-    var data = fs_1.readFileSync(path, 'utf-8');
-    switch (path_1.extname(path)) {
-        case '.graphql':
-            var extensions = {};
-            for (var _i = 0, _a = data.split('\n'); _i < _a.length; _i++) {
-                var line = _a[_i];
-                var result = /# ([^:]+): (.+)$/.exec(line);
-                if (result == null) {
-                    break;
-                }
-                var _ = result[0], key = result[1], value = result[2];
-                extensions[key] = value;
-            }
-            return extensions;
-        case '.json':
-            var introspection = JSON.parse(data);
-            if (!introspection.extentions) {
-                return {};
-            }
-            return introspection.extensions['graphql-config'] || {};
-        default:
-            throw new Error('Unsupported schema file extention. Only ".graphql" and ".json" are supported');
-    }
-}
-exports.getSchemaExtensions = getSchemaExtensions;
diff --git a/node_modules/graphql-config/node_modules/.bin/js-yaml b/node_modules/graphql-config/node_modules/.bin/js-yaml
deleted file mode 120000
index daf9f11..0000000
--- a/node_modules/graphql-config/node_modules/.bin/js-yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../../js-yaml/bin/js-yaml.js
\ No newline at end of file
diff --git a/node_modules/graphql-config/package.json b/node_modules/graphql-config/package.json
deleted file mode 100644
index cc8eb58..0000000
--- a/node_modules/graphql-config/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-  "name": "graphql-config",
-  "version": "2.2.1",
-  "description": "The easiest way to configure your development environment with your GraphQL schema (supported by most tools, editors & IDEs)",
-  "engines": {
-    "node": ">= 6.0.0"
-  },
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "lib/"
-  ],
-  "scripts": {
-    "prepublish": "npm run build",
-    "clean": "rimraf lib",
-    "build": "npm run clean && tsc",
-    "copy-test-assets": "cpx \"src/**/{.graphqlconfig*,*.graphql,*.json}\" lib",
-    "test-only": "npm run build && npm run copy-test-assets && ava --verbose lib/__tests__/**/*.js --serial",
-    "test": "tslint src/**/*.ts && npm run test-only"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/graphcool/graphql-config.git"
-  },
-  "keywords": [
-    "graphql",
-    "config",
-    "relay",
-    "apollo"
-  ],
-  "author": "Johannes Schickling <johannes@graph.cool>",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/graphcool/graphql-config/issues"
-  },
-  "homepage": "https://github.com/graphcool/graphql-config#readme",
-  "devDependencies": {
-    "@types/graphql": "0.13.3",
-    "@types/node": "9.4.6",
-    "@types/node-fetch": "1.6.7",
-    "ava": "0.25.0",
-    "cpx": "1.5.0",
-    "graphql": "14.0.2",
-    "rimraf": "2.6.2",
-    "tslint": "5.9.1",
-    "tslint-config-standard": "7.0.0",
-    "typescript": "2.7.2"
-  },
-  "dependencies": {
-    "graphql-import": "^0.7.1",
-    "graphql-request": "^1.5.0",
-    "js-yaml": "^3.10.0",
-    "lodash": "^4.17.4",
-    "minimatch": "^3.0.4"
-  },
-  "peerDependencies": {
-    "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0"
-  }
-}
diff --git a/node_modules/graphql-import/LICENSE b/node_modules/graphql-import/LICENSE
deleted file mode 100644
index 3e74b15..0000000
--- a/node_modules/graphql-import/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 Graphcool
-
-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.
diff --git a/node_modules/graphql-import/README.md b/node_modules/graphql-import/README.md
deleted file mode 100644
index fef849e..0000000
--- a/node_modules/graphql-import/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# graphql-import
-
-[![CircleCI](https://circleci.com/gh/prisma/graphql-import.svg?style=shield)](https://circleci.com/gh/prisma/graphql-import) [![npm version](https://badge.fury.io/js/graphql-import.svg)](https://badge.fury.io/js/graphql-import)
-
-Import &amp; export definitions in GraphQL SDL (also refered to as GraphQL modules)
-
-> There is also a [`graphql-import-loader`](https://github.com/prisma/graphql-import-loader) for Webpack available.
-
-## Install
-
-```sh
-yarn add graphql-import
-```
-
-## Usage
-
-```ts
-import { importSchema } from 'graphql-import'
-import { makeExecutableSchema } from 'graphql-tools'
-
-const typeDefs = importSchema('schema.graphql')
-const resolvers = {}
-
-const schema = makeExecutableSchema({ typeDefs, resolvers })
-```
-
-Assume the following directory structure:
-
-```
-.
-├── schema.graphql
-├── posts.graphql
-└── comments.graphql
-```
-
-`schema.graphql`
-
-```graphql
-# import Post from "posts.graphql"
-
-type Query {
-  posts: [Post]
-}
-```
-
-`posts.graphql`
-
-```graphql
-# import Comment from 'comments.graphql'
-
-type Post {
-  comments: [Comment]
-  id: ID!
-  text: String!
-  tags: [String]
-}
-```
-
-`comments.graphql`
-
-```graphql
-type Comment {
-  id: ID!
-  text: String!
-}
-```
-
-Running `console.log(importSchema('schema.graphql'))` produces the following output:
-
-```graphql
-type Query {
-  posts: [Post]
-}
-
-type Post {
-  comments: [Comment]
-  id: ID!
-  text: String!
-  tags: [String]
-}
-
-type Comment {
-  id: ID!
-  text: String!
-}
-```
-
-## [Full documentation](https://oss.prisma.io/content/graphql-import/overview)
-
-## Related topics & next steps
-
-- Static import step as build time
-- Namespaces
-- Support importing from HTTP endpoints (or [Links](https://github.com/apollographql/apollo-link))
-- Create RFC to add import syntax to GraphQL spec
-
-<p align="center"><a href="https://oss.prisma.io"><img src="https://imgur.com/IMU2ERq.png" alt="Prisma" height="170px"></a></p>
-
diff --git a/node_modules/graphql-import/dist/definition.d.ts b/node_modules/graphql-import/dist/definition.d.ts
deleted file mode 100644
index bc6d342..0000000
--- a/node_modules/graphql-import/dist/definition.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { TypeDefinitionNode, DirectiveDefinitionNode } from 'graphql';
-export declare type ValidDefinitionNode = DirectiveDefinitionNode | TypeDefinitionNode;
-export interface DefinitionMap {
-    [key: string]: ValidDefinitionNode;
-}
-/**
- * Post processing of all imported type definitions. Loops over each of the
- * imported type definitions, and processes it using collectNewTypeDefinitions.
- *
- * @param allDefinitions All definitions from all schemas
- * @param definitionPool Current definitions (from first schema)
- * @param newTypeDefinitions All imported definitions
- * @returns Final collection of type definitions for the resulting schema
- */
-export declare function completeDefinitionPool(allDefinitions: ValidDefinitionNode[], definitionPool: ValidDefinitionNode[], newTypeDefinitions: ValidDefinitionNode[]): ValidDefinitionNode[];
diff --git a/node_modules/graphql-import/dist/definition.js b/node_modules/graphql-import/dist/definition.js
deleted file mode 100644
index 19129c0..0000000
--- a/node_modules/graphql-import/dist/definition.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var lodash_1 = require("lodash");
-var builtinTypes = ['String', 'Float', 'Int', 'Boolean', 'ID'];
-var builtinDirectives = ['deprecated', 'skip', 'include'];
-/**
- * Post processing of all imported type definitions. Loops over each of the
- * imported type definitions, and processes it using collectNewTypeDefinitions.
- *
- * @param allDefinitions All definitions from all schemas
- * @param definitionPool Current definitions (from first schema)
- * @param newTypeDefinitions All imported definitions
- * @returns Final collection of type definitions for the resulting schema
- */
-function completeDefinitionPool(allDefinitions, definitionPool, newTypeDefinitions) {
-    var visitedDefinitions = {};
-    while (newTypeDefinitions.length > 0) {
-        var schemaMap = lodash_1.keyBy(allDefinitions, function (d) { return d.name.value; });
-        var newDefinition = newTypeDefinitions.shift();
-        if (visitedDefinitions[newDefinition.name.value]) {
-            continue;
-        }
-        var collectedTypedDefinitions = collectNewTypeDefinitions(allDefinitions, definitionPool, newDefinition, schemaMap);
-        newTypeDefinitions.push.apply(newTypeDefinitions, collectedTypedDefinitions);
-        definitionPool.push.apply(definitionPool, collectedTypedDefinitions);
-        visitedDefinitions[newDefinition.name.value] = true;
-    }
-    return lodash_1.uniqBy(definitionPool, 'name.value');
-}
-exports.completeDefinitionPool = completeDefinitionPool;
-/**
- * Processes a single type definition, and performs a number of checks:
- * - Add missing interface implementations
- * - Add missing referenced types
- * - Remove unused type definitions
- *
- * @param allDefinitions All definitions from all schemas
- * (only used to find missing interface implementations)
- * @param definitionPool Resulting definitions
- * @param newDefinition All imported definitions
- * @param schemaMap Map of all definitions for easy lookup
- * @returns All relevant type definitions to add to the final schema
- */
-function collectNewTypeDefinitions(allDefinitions, definitionPool, newDefinition, schemaMap) {
-    var newTypeDefinitions = [];
-    if (newDefinition.kind !== 'DirectiveDefinition') {
-        newDefinition.directives.forEach(collectDirective);
-    }
-    if (newDefinition.kind === 'InputObjectTypeDefinition') {
-        newDefinition.fields.forEach(collectNode);
-    }
-    if (newDefinition.kind === 'InterfaceTypeDefinition') {
-        var interfaceName_1 = newDefinition.name.value;
-        newDefinition.fields.forEach(collectNode);
-        var interfaceImplementations = allDefinitions.filter(function (d) {
-            return d.kind === 'ObjectTypeDefinition' &&
-                d.interfaces.some(function (i) { return i.name.value === interfaceName_1; });
-        });
-        newTypeDefinitions.push.apply(newTypeDefinitions, interfaceImplementations);
-    }
-    if (newDefinition.kind === 'UnionTypeDefinition') {
-        newDefinition.types.forEach(function (type) {
-            if (!definitionPool.some(function (d) { return d.name.value === type.name.value; })) {
-                var typeName = type.name.value;
-                var typeMatch = schemaMap[typeName];
-                if (!typeMatch) {
-                    throw new Error("Couldn't find type " + typeName + " in any of the schemas.");
-                }
-                newTypeDefinitions.push(schemaMap[type.name.value]);
-            }
-        });
-    }
-    if (newDefinition.kind === 'ObjectTypeDefinition') {
-        // collect missing interfaces
-        newDefinition.interfaces.forEach(function (int) {
-            if (!definitionPool.some(function (d) { return d.name.value === int.name.value; })) {
-                var interfaceName = int.name.value;
-                var interfaceMatch = schemaMap[interfaceName];
-                if (!interfaceMatch) {
-                    throw new Error("Couldn't find interface " + interfaceName + " in any of the schemas.");
-                }
-                newTypeDefinitions.push(schemaMap[int.name.value]);
-            }
-        });
-        // iterate over all fields
-        newDefinition.fields.forEach(function (field) {
-            collectNode(field);
-            // collect missing argument input types
-            field.arguments.forEach(collectNode);
-        });
-    }
-    return newTypeDefinitions;
-    function collectNode(node) {
-        var nodeType = getNamedType(node.type);
-        var nodeTypeName = nodeType.name.value;
-        // collect missing argument input types
-        if (!definitionPool.some(function (d) { return d.name.value === nodeTypeName; }) &&
-            !lodash_1.includes(builtinTypes, nodeTypeName)) {
-            var argTypeMatch = schemaMap[nodeTypeName];
-            if (!argTypeMatch) {
-                throw new Error("Field " + node.name.value + ": Couldn't find type " + nodeTypeName + " in any of the schemas.");
-            }
-            newTypeDefinitions.push(argTypeMatch);
-        }
-        node.directives.forEach(collectDirective);
-    }
-    function collectDirective(directive) {
-        var directiveName = directive.name.value;
-        if (!definitionPool.some(function (d) { return d.name.value === directiveName; }) &&
-            !lodash_1.includes(builtinDirectives, directiveName)) {
-            var directive_1 = schemaMap[directiveName];
-            if (!directive_1) {
-                throw new Error("Directive " + directiveName + ": Couldn't find type " + directiveName + " in any of the schemas.");
-            }
-            directive_1.arguments.forEach(collectNode);
-            newTypeDefinitions.push(directive_1);
-        }
-    }
-}
-/**
- * Nested visitor for a type node to get to the final NamedType
- *
- * @param {TypeNode} type Type node to get NamedTypeNode for
- * @returns {NamedTypeNode} The found NamedTypeNode
- */
-function getNamedType(type) {
-    if (type.kind === 'NamedType') {
-        return type;
-    }
-    else {
-        return getNamedType(type.type);
-    }
-}
-//# sourceMappingURL=definition.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-import/dist/definition.js.map b/node_modules/graphql-import/dist/definition.js.map
deleted file mode 100644
index 950de03..0000000
--- a/node_modules/graphql-import/dist/definition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"definition.js","sourceRoot":"","sources":["../src/definition.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/graphql-import/dist/index.d.ts b/node_modules/graphql-import/dist/index.d.ts
deleted file mode 100644
index debc9e6..0000000
--- a/node_modules/graphql-import/dist/index.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Describes the information from a single import line
- *
- */
-export interface RawModule {
-    imports: string[];
-    from: string;
-}
-/**
- * Parse a single import line and extract imported types and schema filename
- *
- * @param importLine Import line
- * @returns Processed import line
- */
-export declare function parseImportLine(importLine: string): RawModule;
-/**
- * Parse a schema and analyze all import lines
- *
- * @param sdl Schema to parse
- * @returns Array with collection of imports per import line (file)
- */
-export declare function parseSDL(sdl: string): RawModule[];
-/**
- * Main entry point. Recursively process all import statement in a schema
- *
- * @param filePath File path to the initial schema file
- * @returns Single bundled schema with all imported types
- */
-export declare function importSchema(schema: string, schemas?: {
-    [key: string]: string;
-}): string;
diff --git a/node_modules/graphql-import/dist/index.js b/node_modules/graphql-import/dist/index.js
deleted file mode 100644
index df0d6ac..0000000
--- a/node_modules/graphql-import/dist/index.js
+++ /dev/null
@@ -1,258 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || function () {
-    __assign = Object.assign || function(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-                t[p] = s[p];
-        }
-        return t;
-    };
-    return __assign.apply(this, arguments);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var fs = require("fs");
-var graphql_1 = require("graphql");
-var lodash_1 = require("lodash");
-var path = require("path");
-var resolveFrom = require("resolve-from");
-var definition_1 = require("./definition");
-var rootFields = ['Query', 'Mutation', 'Subscription'];
-var read = function (schema, schemas) {
-    if (isFile(schema)) {
-        return fs.readFileSync(schema, { encoding: 'utf8' });
-    }
-    return schemas ? schemas[schema] : schema;
-};
-var isFile = function (f) { return f.endsWith('.graphql'); };
-/**
- * Parse a single import line and extract imported types and schema filename
- *
- * @param importLine Import line
- * @returns Processed import line
- */
-function parseImportLine(importLine) {
-    // Apply regex to import line
-    var matches = importLine.match(/^import (\*|(.*)) from ('|")(.*)('|");?$/);
-    if (!matches || matches.length !== 6 || !matches[4]) {
-        throw new Error("Too few regex matches: " + matches);
-    }
-    // Extract matches into named variables
-    var wildcard = matches[1], importsString = matches[2], from = matches[4];
-    // Extract imported types
-    var imports = wildcard === '*' ? ['*'] : importsString.split(',').map(function (d) { return d.trim(); });
-    // Return information about the import line
-    return { imports: imports, from: from };
-}
-exports.parseImportLine = parseImportLine;
-/**
- * Parse a schema and analyze all import lines
- *
- * @param sdl Schema to parse
- * @returns Array with collection of imports per import line (file)
- */
-function parseSDL(sdl) {
-    return sdl
-        .split('\n')
-        .map(function (l) { return l.trim(); })
-        .filter(function (l) { return l.startsWith('# import ') || l.startsWith('#import '); })
-        .map(function (l) { return l.replace('#', '').trim(); })
-        .map(parseImportLine);
-}
-exports.parseSDL = parseSDL;
-/**
- * Main entry point. Recursively process all import statement in a schema
- *
- * @param filePath File path to the initial schema file
- * @returns Single bundled schema with all imported types
- */
-function importSchema(schema, schemas) {
-    var sdl = read(schema, schemas) || schema;
-    var document = getDocumentFromSDL(sdl);
-    // Recursively process the imports, starting by importing all types from the initial schema
-    var _a = collectDefinitions(['*'], sdl, schema, schemas), allDefinitions = _a.allDefinitions, typeDefinitions = _a.typeDefinitions;
-    // Post processing of the final schema (missing types, unused types, etc.)
-    // Query, Mutation and Subscription should be merged
-    // And should always be in the first set, to make sure they
-    // are not filtered out.
-    var firstTypes = lodash_1.flatten(typeDefinitions).filter(function (d) {
-        return lodash_1.includes(rootFields, d.name.value);
-    });
-    var otherFirstTypes = typeDefinitions[0].filter(function (d) { return !lodash_1.includes(rootFields, d.name.value); });
-    var firstSet = firstTypes.concat(otherFirstTypes);
-    var processedTypeNames = [];
-    var mergedFirstTypes = [];
-    var _loop_1 = function (type) {
-        if (!lodash_1.includes(processedTypeNames, type.name.value)) {
-            processedTypeNames.push(type.name.value);
-            mergedFirstTypes.push(type);
-        }
-        else {
-            var existingType = mergedFirstTypes.find(function (t) { return t.name.value === type.name.value; });
-            existingType.fields = existingType.fields.concat(type.fields);
-        }
-    };
-    for (var _i = 0, firstSet_1 = firstSet; _i < firstSet_1.length; _i++) {
-        var type = firstSet_1[_i];
-        _loop_1(type);
-    }
-    document = __assign({}, document, { definitions: definition_1.completeDefinitionPool(lodash_1.flatten(allDefinitions), firstSet, lodash_1.flatten(typeDefinitions)) });
-    // Return the schema as string
-    return graphql_1.print(document);
-}
-exports.importSchema = importSchema;
-/**
- * Parses a schema into a graphql DocumentNode.
- * If the schema is empty a DocumentNode with empty definitions will be created.
- *
- * @param sdl Schema to parse
- * @returns A graphql DocumentNode with definitions of the parsed sdl.
- */
-function getDocumentFromSDL(sdl) {
-    if (isEmptySDL(sdl)) {
-        return {
-            kind: graphql_1.Kind.DOCUMENT,
-            definitions: [],
-        };
-    }
-    else {
-        return graphql_1.parse(sdl, { noLocation: true });
-    }
-}
-/**
- * Check if a schema contains any type definitions at all.
- *
- * @param sdl Schema to parse
- * @returns True if SDL only contains comments and/or whitespaces
- */
-function isEmptySDL(sdl) {
-    return (sdl
-        .split('\n')
-        .map(function (l) { return l.trim(); })
-        .filter(function (l) { return !(l.length === 0 || l.startsWith('#')); }).length === 0);
-}
-/**
- * Resolve the path of an import.
- * First it will try to find a file relative from the file the import is in, if that fails it will try to resolve it as a module so imports from packages work correctly.
- *
- * @param filePath Path the import was made from
- * @param importFrom Path given for the import
- * @returns Full resolved path to a file
- */
-function resolveModuleFilePath(filePath, importFrom) {
-    var dirname = path.dirname(filePath);
-    if (isFile(filePath) && isFile(importFrom)) {
-        try {
-            return fs.realpathSync(path.join(dirname, importFrom));
-        }
-        catch (e) {
-            if (e.code === 'ENOENT') {
-                return resolveFrom(dirname, importFrom);
-            }
-        }
-    }
-    return importFrom;
-}
-/**
- * Recursively process all schema files. Keeps track of both the filtered
- * type definitions, and all type definitions, because they might be needed
- * in post-processing (to add missing types)
- *
- * @param imports Types specified in the import statement
- * @param sdl Current schema
- * @param filePath File location for current schema
- * @param Tracking of processed schemas (for circular dependencies)
- * @param Tracking of imported type definitions per schema
- * @param Tracking of all type definitions per schema
- * @returns Both the collection of all type definitions, and the collection of imported type definitions
- */
-function collectDefinitions(imports, sdl, filePath, schemas, processedFiles, typeDefinitions, allDefinitions) {
-    if (processedFiles === void 0) { processedFiles = new Map(); }
-    if (typeDefinitions === void 0) { typeDefinitions = []; }
-    if (allDefinitions === void 0) { allDefinitions = []; }
-    var key = isFile(filePath) ? path.resolve(filePath) : filePath;
-    // Get TypeDefinitionNodes from current schema
-    var document = getDocumentFromSDL(sdl);
-    // Add all definitions to running total
-    allDefinitions.push(filterTypeDefinitions(document.definitions));
-    // Filter TypeDefinitionNodes by type and defined imports
-    var currentTypeDefinitions = filterImportedDefinitions(imports, document.definitions, allDefinitions);
-    // Add typedefinitions to running total
-    typeDefinitions.push(currentTypeDefinitions);
-    // Read imports from current file
-    var rawModules = parseSDL(sdl);
-    // Process each file (recursively)
-    rawModules.forEach(function (m) {
-        // If it was not yet processed (in case of circular dependencies)
-        var moduleFilePath = resolveModuleFilePath(filePath, m.from);
-        var processedFile = processedFiles.get(key);
-        if (!processedFile || !processedFile.find(function (rModule) { return lodash_1.isEqual(rModule, m); })) {
-            // Mark this specific import line as processed for this file (for cicular dependency cases)
-            processedFiles.set(key, processedFile ? processedFile.concat(m) : [m]);
-            collectDefinitions(m.imports, read(moduleFilePath, schemas), moduleFilePath, schemas, processedFiles, typeDefinitions, allDefinitions);
-        }
-    });
-    // Return the maps of type definitions from each file
-    return { allDefinitions: allDefinitions, typeDefinitions: typeDefinitions };
-}
-/**
- * Filter the types loaded from a schema, first by relevant types,
- * then by the types specified in the import statement.
- *
- * @param imports Types specified in the import statement
- * @param typeDefinitions All definitions from a schema
- * @returns Filtered collection of type definitions
- */
-function filterImportedDefinitions(imports, typeDefinitions, allDefinitions) {
-    // This should do something smart with fields
-    if (allDefinitions === void 0) { allDefinitions = []; }
-    var filteredDefinitions = filterTypeDefinitions(typeDefinitions);
-    if (lodash_1.includes(imports, '*')) {
-        if (imports.length === 1 &&
-            imports[0] === '*' &&
-            allDefinitions.length > 1) {
-            var previousTypeDefinitions_1 = lodash_1.keyBy(lodash_1.flatten(allDefinitions.slice(0, allDefinitions.length - 1)).filter(function (def) { return !lodash_1.includes(rootFields, def.name.value); }), function (def) { return def.name.value; });
-            return typeDefinitions.filter(function (typeDef) {
-                return typeDef.kind === 'ObjectTypeDefinition' &&
-                    previousTypeDefinitions_1[typeDef.name.value];
-            });
-        }
-        return filteredDefinitions;
-    }
-    else {
-        var result = filteredDefinitions.filter(function (d) {
-            return lodash_1.includes(imports.map(function (i) { return i.split('.')[0]; }), d.name.value);
-        });
-        var fieldImports = imports.filter(function (i) { return i.split('.').length > 1; });
-        var groupedFieldImports = lodash_1.groupBy(fieldImports, function (x) { return x.split('.')[0]; });
-        var _loop_2 = function (rootType) {
-            var fields = groupedFieldImports[rootType].map(function (x) { return x.split('.')[1]; });
-            filteredDefinitions.find(function (def) { return def.name.value === rootType; }).fields = filteredDefinitions.find(function (def) { return def.name.value === rootType; }).fields.filter(function (f) { return lodash_1.includes(fields, f.name.value) || lodash_1.includes(fields, '*'); });
-        };
-        for (var rootType in groupedFieldImports) {
-            _loop_2(rootType);
-        }
-        return result;
-    }
-}
-/**
- * Filter relevant definitions from schema
- *
- * @param definitions All definitions from a schema
- * @returns Relevant type definitions
- */
-function filterTypeDefinitions(definitions) {
-    var validKinds = [
-        'DirectiveDefinition',
-        'ScalarTypeDefinition',
-        'ObjectTypeDefinition',
-        'InterfaceTypeDefinition',
-        'EnumTypeDefinition',
-        'UnionTypeDefinition',
-        'InputObjectTypeDefinition',
-    ];
-    return definitions
-        .filter(function (d) { return lodash_1.includes(validKinds, d.kind); })
-        .map(function (d) { return d; });
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-import/dist/index.js.map b/node_modules/graphql-import/dist/index.js.map
deleted file mode 100644
index 02e8680..0000000
--- a/node_modules/graphql-import/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/graphql-import/dist/index.test.d.ts b/node_modules/graphql-import/dist/index.test.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-import/dist/index.test.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-import/dist/index.test.js b/node_modules/graphql-import/dist/index.test.js
deleted file mode 100644
index e7bdf6d..0000000
--- a/node_modules/graphql-import/dist/index.test.js
+++ /dev/null
@@ -1,239 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var fs = require("fs");
-var _1 = require(".");
-ava_1.default('parseImportLine: parse single import', function (t) {
-    t.deepEqual(_1.parseImportLine("import A from \"schema.graphql\""), {
-        imports: ['A'],
-        from: 'schema.graphql',
-    });
-});
-ava_1.default('parseImportLine: optional semicolon', function (t) {
-    t.deepEqual(_1.parseImportLine("import A from \"schema.graphql\";"), {
-        imports: ['A'],
-        from: 'schema.graphql',
-    });
-});
-ava_1.default('parseImportLine: invalid', function (t) {
-    t.throws(function () { return _1.parseImportLine("import from \"schema.graphql\""); }, Error);
-});
-ava_1.default('parseImportLine: invalid 2', function (t) {
-    t.throws(function () { return _1.parseImportLine("import A from \"\""); }, Error);
-});
-ava_1.default('parseImportLine: parse multi import', function (t) {
-    t.deepEqual(_1.parseImportLine("import A, B from \"schema.graphql\""), {
-        imports: ['A', 'B'],
-        from: 'schema.graphql',
-    });
-});
-ava_1.default('parseImportLine: parse multi import (weird spacing)', function (t) {
-    t.deepEqual(_1.parseImportLine("import  A  ,B   from \"schema.graphql\""), {
-        imports: ['A', 'B'],
-        from: 'schema.graphql',
-    });
-});
-ava_1.default('parseImportLine: different path', function (t) {
-    t.deepEqual(_1.parseImportLine("import A from \"../new/schema.graphql\""), {
-        imports: ['A'],
-        from: '../new/schema.graphql',
-    });
-});
-ava_1.default('parseImportLine: module in node_modules', function (t) {
-    t.deepEqual(_1.parseImportLine("import A from \"module-name\""), {
-        imports: ['A'],
-        from: 'module-name',
-    });
-});
-ava_1.default('parseSDL: non-import comment', function (t) {
-    t.deepEqual(_1.parseSDL("#importent: comment"), []);
-});
-ava_1.default('parse: multi line import', function (t) {
-    var sdl = "# import A from \"a.graphql\"\n# import * from \"b.graphql\"\n  ";
-    t.deepEqual(_1.parseSDL(sdl), [
-        {
-            imports: ['A'],
-            from: 'a.graphql',
-        },
-        {
-            imports: ['*'],
-            from: 'b.graphql',
-        },
-    ]);
-});
-ava_1.default('Module in node_modules', function (t) {
-    var b = "# import lower from './lower.graphql'\ntype B {\n  id: ID!\n  nickname: String! @lower\n}\n";
-    var lower = "directive @lower on FIELD_DEFINITION\n";
-    var expectedSDL = "type A {\n  id: ID!\n  author: B!\n}\n\ntype B {\n  id: ID!\n  nickname: String! @lower\n}\n\ndirective @lower on FIELD_DEFINITION\n";
-    var moduleDir = 'node_modules/graphql-import-test';
-    if (!fs.existsSync(moduleDir)) {
-        fs.mkdirSync(moduleDir);
-    }
-    fs.writeFileSync(moduleDir + '/b.graphql', b);
-    fs.writeFileSync(moduleDir + '/lower.graphql', lower);
-    t.is(_1.importSchema('fixtures/import-module/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: imports only', function (t) {
-    var expectedSDL = "type Query {\n  first: String\n  second: Float\n  third: String\n}\n";
-    t.is(_1.importSchema('fixtures/imports-only/all.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: import duplicate', function (t) {
-    var expectedSDL = "type Query {\n  first: String\n  second: Float\n  third: String\n}\n";
-    t.is(_1.importSchema('fixtures/import-duplicate/all.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: import nested', function (t) {
-    var expectedSDL = "type Query {\n  first: String\n  second: Float\n  third: String\n}\n";
-    t.is(_1.importSchema('fixtures/import-nested/all.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: field types', function (t) {
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  c: C\n  hello: String!\n}\n\ntype C {\n  id: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/field-types/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: enums', function (t) {
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\nenum B {\n  B1\n  B2\n  B3\n}\n";
-    t.is(_1.importSchema('fixtures/enums/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: import all', function (t) {
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/import-all/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: import all from objects', function (t) {
-    var schemaC = "\n    type C1 {\n      id: ID!\n    }\n\n    type C2 {\n      id: ID!\n    }\n\n    type C3 {\n      id: ID!\n    }";
-    var schemaB = "\n    # import * from 'schemaC'\n\n    type B {\n      hello: String!\n      c1: C1\n      c2: C2\n    }";
-    var schemaA = "\n    # import B from 'schemaB'\n\n    type A {\n      # test 1\n      first: String\n      second: Float\n      b: B\n    }";
-    var schemas = {
-        schemaA: schemaA,
-        schemaB: schemaB,
-        schemaC: schemaC,
-    };
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    t.is(_1.importSchema(schemaA, schemas), expectedSDL);
-});
-ava_1.default("importSchema: single object schema", function (t) {
-    var schemaA = "\n    type A {\n      field: String\n    }";
-    var expectedSDL = "type A {\n  field: String\n}\n";
-    t.is(_1.importSchema(schemaA), expectedSDL);
-});
-ava_1.default("importSchema: import all mix 'n match", function (t) {
-    var schemaB = "\n    # import C1, C2 from 'fixtures/import-all/c.graphql'\n\n    type B {\n      hello: String!\n      c1: C1\n      c2: C2\n    }";
-    var schemaA = "\n    # import * from \"schemaB\"\n\n    type A {\n      # test 1\n      first: String\n      second: Float\n      b: B\n    }";
-    var schemas = {
-        schemaB: schemaB,
-    };
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    t.is(_1.importSchema(schemaA, schemas), expectedSDL);
-});
-ava_1.default("importSchema: import all mix 'n match 2", function (t) {
-    var schemaA = "\n    # import * from \"fixtures/import-all/b.graphql\"\n\n    type A {\n      # test 1\n      first: String\n      second: Float\n      b: B\n    }";
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    t.is(_1.importSchema(schemaA), expectedSDL);
-});
-ava_1.default("importSchema: import all - exclude Query/Mutation/Subscription type", function (t) {
-    var schemaC = "\n    type C1 {\n      id: ID!\n    }\n\n    type C2 {\n      id: ID!\n    }\n\n    type C3 {\n      id: ID!\n    }\n\n    type Query {\n      hello: String!\n    }\n\n    type Mutation {\n      hello: String!\n    }\n\n    type Subscription {\n      hello: String!\n    }\n    ";
-    var schemaB = "\n    # import * from 'schemaC'\n\n    type B {\n      hello: String!\n      c1: C1\n      c2: C2\n    }";
-    var schemaA = "\n    # import B from 'schemaB'\n\n    type Query {\n      greet: String!\n    }\n\n    type A {\n      # test 1\n      first: String\n      second: Float\n      b: B\n    }";
-    var schemas = {
-        schemaA: schemaA,
-        schemaB: schemaB,
-        schemaC: schemaC,
-    };
-    var expectedSDL = "type Query {\n  greet: String!\n}\n\ntype A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    t.is(_1.importSchema(schemaA, schemas), expectedSDL);
-});
-ava_1.default('importSchema: scalar', function (t) {
-    var expectedSDL = "type A {\n  b: B\n}\n\nscalar B\n";
-    t.is(_1.importSchema('fixtures/scalar/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: directive', function (t) {
-    var expectedSDL = "type A {\n  first: String @upper\n  second: String @withB @deprecated\n}\n\ndirective @upper on FIELD_DEFINITION\n\nscalar B\n\ndirective @withB(argB: B) on FIELD_DEFINITION\n";
-    t.is(_1.importSchema('fixtures/directive/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: interfaces', function (t) {
-    var expectedSDL = "type A implements B {\n  first: String\n  second: Float\n}\n\ninterface B {\n  second: Float\n  c: [C!]!\n}\n\ntype C {\n  c: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/interfaces/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: interfaces-many', function (t) {
-    var expectedSDL = "type A implements B {\n  first: String\n  second: Float\n}\n\ninterface B {\n  second: Float\n  c: [C!]!\n}\n\ntype C implements D1 & D2 {\n  c: ID!\n}\n\ninterface D1 {\n  d1: ID!\n}\n\ninterface D2 {\n  d2: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/interfaces-many/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: interfaces-implements', function (t) {
-    var expectedSDL = "type A implements B {\n  id: ID!\n}\n\ninterface B {\n  id: ID!\n}\n\ntype B1 implements B {\n  id: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/interfaces-implements/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: interfaces-implements-many', function (t) {
-    var expectedSDL = "type A implements B {\n  id: ID!\n}\n\ninterface B {\n  id: ID!\n}\n\ntype B1 implements B {\n  id: ID!\n}\n\ntype B2 implements B {\n  id: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/interfaces-implements-many/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: input types', function (t) {
-    var expectedSDL = "type A {\n  first(b: B): String\n  second: Float\n}\n\ninput B {\n  hello: [C!]!\n}\n\ninput C {\n  id: ID!\n}\n";
-    t.is(_1.importSchema('fixtures/input-types/a.graphql'), expectedSDL);
-});
-ava_1.default('importSchema: complex test', function (t) {
-    t.notThrows(function () {
-        _1.importSchema('fixtures/complex/a.graphql');
-    });
-});
-ava_1.default('circular imports', function (t) {
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C1\n  c2: C2\n  a: A\n}\n\ntype C1 {\n  id: ID!\n}\n\ntype C2 {\n  id: ID!\n}\n";
-    var actualSDL = _1.importSchema('fixtures/circular/a.graphql');
-    t.is(actualSDL, expectedSDL);
-});
-ava_1.default('related types', function (t) {
-    var expectedSDL = "type A {\n  first: String\n  second: Float\n  b: B\n}\n\ntype B {\n  hello: String!\n  c1: C\n}\n\ntype C {\n  field: String\n}\n";
-    var actualSDL = _1.importSchema('fixtures/related-types/a.graphql');
-    t.is(actualSDL, expectedSDL);
-});
-ava_1.default('relative paths', function (t) {
-    var expectedSDL = "type Query {\n  feed: [Post!]!\n}\n\ntype Mutation {\n  createDraft(title: String!, text: String): Post\n  publish(id: ID!): Post\n}\n\ntype Post implements Node {\n  id: ID!\n  isPublished: Boolean!\n  title: String!\n  text: String!\n}\n\ninterface Node {\n  id: ID!\n}\n";
-    var actualSDL = _1.importSchema('fixtures/relative-paths/src/schema.graphql');
-    t.is(actualSDL, expectedSDL);
-});
-ava_1.default('root field imports', function (t) {
-    var expectedSDL = "type Query {\n  posts(filter: PostFilter): [Post]\n}\n\ntype Dummy {\n  field: String\n}\n\ntype Post {\n  field1: String\n}\n\ninput PostFilter {\n  field3: Int\n}\n";
-    var actualSDL = _1.importSchema('fixtures/root-fields/a.graphql');
-    t.is(actualSDL, expectedSDL);
-});
-ava_1.default('merged root field imports', function (t) {
-    var expectedSDL = "type Query {\n  helloA: String\n  posts(filter: PostFilter): [Post]\n  hello: String\n}\n\ntype Dummy {\n  field: String\n}\n\ntype Post {\n  field1: String\n}\n\ninput PostFilter {\n  field3: Int\n}\n";
-    var actualSDL = _1.importSchema('fixtures/merged-root-fields/a.graphql');
-    t.is(actualSDL, expectedSDL);
-});
-ava_1.default('global schema modules', function (t) {
-    var shared = "\n    type Shared {\n      first: String\n    }\n  ";
-    var expectedSDL = "type A {\n  first: String\n  second: Shared\n}\n\ntype Shared {\n  first: String\n}\n";
-    t.is(_1.importSchema('fixtures/global/a.graphql', { shared: shared }), expectedSDL);
-});
-ava_1.default('missing type on type', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/a.graphql'); }, Error);
-    t.is(err.message, "Field test: Couldn't find type Post in any of the schemas.");
-});
-ava_1.default('missing type on interface', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/b.graphql'); }, Error);
-    t.is(err.message, "Field test: Couldn't find type Post in any of the schemas.");
-});
-ava_1.default('missing type on input type', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/c.graphql'); }, Error);
-    t.is(err.message, "Field post: Couldn't find type Post in any of the schemas.");
-});
-ava_1.default('missing interface type', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/d.graphql'); }, Error);
-    t.is(err.message, "Couldn't find interface MyInterface in any of the schemas.");
-});
-ava_1.default('missing union type', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/e.graphql'); }, Error);
-    t.is(err.message, "Couldn't find type C in any of the schemas.");
-});
-ava_1.default('missing type on input type', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/f.graphql'); }, Error);
-    t.is(err.message, "Field myfield: Couldn't find type Post in any of the schemas.");
-});
-ava_1.default('missing type on directive', function (t) {
-    var err = t.throws(function () { return _1.importSchema('fixtures/type-not-found/g.graphql'); }, Error);
-    t.is(err.message, "Directive first: Couldn't find type first in any of the schemas.");
-});
-ava_1.default('import with collision', function (t) {
-    // Local type gets preference over imported type
-    var expectedSDL = "type User {\n  id: ID!\n  name: String!\n}\n";
-    t.is(_1.importSchema('fixtures/collision/a.graphql'), expectedSDL);
-});
-//# sourceMappingURL=index.test.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-import/dist/index.test.js.map b/node_modules/graphql-import/dist/index.test.js.map
deleted file mode 100644
index 274f98e..0000000
--- a/node_modules/graphql-import/dist/index.test.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/graphql-import/package.json b/node_modules/graphql-import/package.json
deleted file mode 100644
index 50d44a2..0000000
--- a/node_modules/graphql-import/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-  "name": "graphql-import",
-  "version": "0.7.1",
-  "engines": {
-    "node": ">=4.0.0"
-  },
-  "license": "MIT",
-  "repository": "git@github.com:graphcool/graphql-import.git",
-  "files": [
-    "dist"
-  ],
-  "main": "dist/index.js",
-  "typings": "dist/index.d.ts",
-  "typescript": {
-    "definition": "dist/index.d.ts"
-  },
-  "nyc": {
-    "extension": [
-      ".ts"
-    ],
-    "require": [
-      "ts-node/register"
-    ],
-    "include": [
-      "src/**/*.ts"
-    ],
-    "exclude": [
-      "**/*.d.ts",
-      "**/*.test.ts"
-    ],
-    "all": true,
-    "sourceMap": true,
-    "instrument": true
-  },
-  "scripts": {
-    "prepare": "npm run build",
-    "build": "rm -rf dist && tsc -d",
-    "testlocal": "npm run build && nyc --reporter lcov --reporter text ava-ts -u --verbose src/**/*.test.ts",
-    "test-only": "npm run build && mkdir -p ~/reports && nyc --reporter lcov ava-ts --verbose src/**/*.test.ts --tap | tap-xunit > ~/reports/ava.xml",
-    "test": "tslint src/**/*.ts && npm run test-only",
-    "docs": "typedoc --out docs src/index.ts --hideGenerator --exclude **/*.test.ts",
-    "docs:publish": "cp ./now.json ./docs && cd docs && now --public -f && now alias && now rm --yes --safe graphql-import & cd .."
-  },
-  "peerDependencies": {
-    "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0"
-  },
-  "devDependencies": {
-    "@types/graphql": "14.0.0",
-    "@types/lodash": "4.14.116",
-    "@types/resolve-from": "0.0.18",
-    "@types/node": "9.6.31",
-    "ava": "0.25.0",
-    "ava-ts": "0.25.1",
-    "graphql": "14.0.2",
-    "nyc": "11.8.0",
-    "tap-xunit": "2.3.0",
-    "ts-node": "7.0.1",
-    "tslint": "5.11.0",
-    "tslint-config-standard": "7.0.0",
-    "typedoc": "0.11.1",
-    "typescript": "3.0.1"
-  },
-  "dependencies": {
-    "lodash": "^4.17.4",
-    "resolve-from": "^4.0.0"
-  }
-}
diff --git a/node_modules/graphql-request/LICENSE b/node_modules/graphql-request/LICENSE
deleted file mode 100644
index 3e74b15..0000000
--- a/node_modules/graphql-request/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 Graphcool
-
-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.
diff --git a/node_modules/graphql-request/README.md b/node_modules/graphql-request/README.md
deleted file mode 100644
index eb2893a..0000000
--- a/node_modules/graphql-request/README.md
+++ /dev/null
@@ -1,223 +0,0 @@
-# graphql-request
-
-[![CircleCI](https://circleci.com/gh/prismagraphql/graphql-request.svg?style=shield)](https://circleci.com/gh/prismagraphql/graphql-request) [![npm version](https://badge.fury.io/js/graphql-request.svg)](https://badge.fury.io/js/graphql-request)
-
-📡 Minimal GraphQL client supporting Node and browsers for scripts or simple apps
-
-## Features
-
-* Most **simple and lightweight** GraphQL client
-* Promise-based API (works with `async` / `await`)
-* Typescript support (Flow coming soon)
-
-
-## Install
-
-```sh
-npm install graphql-request
-```
-
-## Quickstart
-
-Send a GraphQL query with a single line of code. ▶️ [Try it out](https://runkit.com/593130bdfad7120012472003/593130bdfad7120012472004).
-
-```js
-import { request } from 'graphql-request'
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-request('https://api.graph.cool/simple/v1/movies', query).then(data => console.log(data))
-```
-
-## Usage
-
-```js
-import { request, GraphQLClient } from 'graphql-request'
-
-// Run GraphQL queries/mutations using a static function
-request(endpoint, query, variables).then(data => console.log(data))
-
-// ... or create a GraphQL client instance to send requests
-const client = new GraphQLClient(endpoint, { headers: {} })
-client.request(query, variables).then(data => console.log(data))
-```
-
-## Examples
-
-### Authentication via HTTP header
-
-```js
-import { GraphQLClient } from 'graphql-request'
-
-const client = new GraphQLClient('my-endpoint', {
-  headers: {
-    Authorization: 'Bearer my-jwt-token',
-  },
-})
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-client.request(query).then(data => console.log(data))
-```
-
-### Passing more options to fetch
-
-```js
-import { GraphQLClient } from 'graphql-request'
-
-const client = new GraphQLClient('my-endpoint', {
- credentials: 'include',
- mode: 'cors'
-})
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-client.request(query).then(data => console.log(data))
-```
-
-### Using variables
-
-```js
-import { request } from 'graphql-request'
-
-const query = `query getMovie($title: String!) {
-  Movie(title: $title) {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-const variables = {
-  title: 'Inception',
-}
-
-request('my-endpoint', query, variables).then(data => console.log(data))
-```
-
-### Error handling
-
-```js
-import { request } from 'graphql-request'
-
-const wrongQuery = `{
-  some random stuff
-}`
-
-request('my-endpoint', query)
-  .then(data => console.log(data))
-  .catch(err => {
-    console.log(err.response.errors) // GraphQL response errors
-    console.log(err.response.data) // Response data if available
-  })
-```
-
-### Using `require` instead of `import`
-
-```js
-const { request } = require('graphql-request')
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-request('my-endpoint', query).then(data => console.log(data))
-```
-
-### Cookie support for `node`
-
-```sh
-npm install fetch-cookie/node-fetch
-```
-
-```js
-import { GraphQLClient } from 'graphql-request'
-
-// use this instead for cookie support
-global['fetch'] = require('fetch-cookie/node-fetch')(require('node-fetch'))
-
-const client = new GraphQLClient('my-endpoint')
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-client.request(query).then(data => console.log(data))
-```
-
-### Receiving a raw response
-
-The `request` method will return the `data` or `errors` key from the response.
-If you need to access the `extensions` key you can use the `rawRequest` method:
-
-```js
-import { rawRequest } from 'graphql-request'
-
-const query = `{
-  Movie(title: "Inception") {
-    releaseDate
-    actors {
-      name
-    }
-  }
-}`
-
-rawRequest('my-endpoint', query).then(({data, extensions}) => console.log(data, extensions))
-```
-
-### More examples coming soon...
-
-* Fragments
-* Using [`graphql-tag`](https://github.com/apollographql/graphql-tag)
-* Typed Typescript return values
-
-## FAQ
-
-### What's the difference between `graphql-request`, Apollo and Relay?
-
-`graphql-request` is the most minimal and simplest to use GraphQL client. It's perfect for small scripts or simple apps.
-
-Compared to GraphQL clients like Apollo or Relay, `graphql-request` doesn't have a built-in cache and has no integrations for frontend frameworks. The goal is to keep the package and API as minimal as possible.
-
-### So what about Lokka?
-
-Lokka is great but it still requires [a lot of setup code](https://github.com/kadirahq/lokka-transport-http) to be able to send a simple GraphQL query. `graphql-request` does less work compared to Lokka but is a lot simpler to use.
-
-
-## Help & Community [![Slack Status](https://slack.prisma.io/badge.svg)](https://slack.prisma.io)
-
-Join our [Slack community](http://slack.prisma.io/) if you run into issues or have questions. We love talking to you!
-
-<p align="center"><a href="https://oss.prisma.io"><img src="https://imgur.com/IMU2ERq.png" alt="Prisma" height="170px"></a></p>
diff --git a/node_modules/graphql-request/dist/src/index.d.ts b/node_modules/graphql-request/dist/src/index.d.ts
deleted file mode 100644
index 7a892b5..0000000
--- a/node_modules/graphql-request/dist/src/index.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { GraphQLError, Headers as HttpHeaders, Options, Variables } from './types';
-export { ClientError } from './types';
-import 'cross-fetch/polyfill';
-export declare class GraphQLClient {
-    private url;
-    private options;
-    constructor(url: string, options?: Options);
-    rawRequest<T extends any>(query: string, variables?: Variables): Promise<{
-        data?: T;
-        extensions?: any;
-        headers: Headers;
-        status: number;
-        errors?: GraphQLError[];
-    }>;
-    request<T extends any>(query: string, variables?: Variables): Promise<T>;
-    setHeaders(headers: HttpHeaders): GraphQLClient;
-    setHeader(key: string, value: string): GraphQLClient;
-}
-export declare function rawRequest<T extends any>(url: string, query: string, variables?: Variables): Promise<{
-    data?: T;
-    extensions?: any;
-    headers: Headers;
-    status: number;
-    errors?: GraphQLError[];
-}>;
-export declare function request<T extends any>(url: string, query: string, variables?: Variables): Promise<T>;
-export default request;
diff --git a/node_modules/graphql-request/dist/src/index.js b/node_modules/graphql-request/dist/src/index.js
deleted file mode 100644
index 2925cf2..0000000
--- a/node_modules/graphql-request/dist/src/index.js
+++ /dev/null
@@ -1,177 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var __rest = (this && this.__rest) || function (s, e) {
-    var t = {};
-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-        t[p] = s[p];
-    if (s != null && typeof Object.getOwnPropertySymbols === "function")
-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
-            t[p[i]] = s[p[i]];
-    return t;
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var types_1 = require("./types");
-var types_2 = require("./types");
-exports.ClientError = types_2.ClientError;
-require("cross-fetch/polyfill");
-var GraphQLClient = /** @class */ (function () {
-    function GraphQLClient(url, options) {
-        this.url = url;
-        this.options = options || {};
-    }
-    GraphQLClient.prototype.rawRequest = function (query, variables) {
-        return __awaiter(this, void 0, void 0, function () {
-            var _a, headers, others, body, response, result, headers_1, status_1, errorResult;
-            return __generator(this, function (_b) {
-                switch (_b.label) {
-                    case 0:
-                        _a = this.options, headers = _a.headers, others = __rest(_a, ["headers"]);
-                        body = JSON.stringify({
-                            query: query,
-                            variables: variables ? variables : undefined,
-                        });
-                        return [4 /*yield*/, fetch(this.url, __assign({ method: 'POST', headers: Object.assign({ 'Content-Type': 'application/json' }, headers), body: body }, others))];
-                    case 1:
-                        response = _b.sent();
-                        return [4 /*yield*/, getResult(response)];
-                    case 2:
-                        result = _b.sent();
-                        if (response.ok && !result.errors && result.data) {
-                            headers_1 = response.headers, status_1 = response.status;
-                            return [2 /*return*/, __assign({}, result, { headers: headers_1, status: status_1 })];
-                        }
-                        else {
-                            errorResult = typeof result === 'string' ? { error: result } : result;
-                            throw new types_1.ClientError(__assign({}, errorResult, { status: response.status, headers: response.headers }), { query: query, variables: variables });
-                        }
-                        return [2 /*return*/];
-                }
-            });
-        });
-    };
-    GraphQLClient.prototype.request = function (query, variables) {
-        return __awaiter(this, void 0, void 0, function () {
-            var _a, headers, others, body, response, result, errorResult;
-            return __generator(this, function (_b) {
-                switch (_b.label) {
-                    case 0:
-                        _a = this.options, headers = _a.headers, others = __rest(_a, ["headers"]);
-                        body = JSON.stringify({
-                            query: query,
-                            variables: variables ? variables : undefined,
-                        });
-                        return [4 /*yield*/, fetch(this.url, __assign({ method: 'POST', headers: Object.assign({ 'Content-Type': 'application/json' }, headers), body: body }, others))];
-                    case 1:
-                        response = _b.sent();
-                        return [4 /*yield*/, getResult(response)];
-                    case 2:
-                        result = _b.sent();
-                        if (response.ok && !result.errors && result.data) {
-                            return [2 /*return*/, result.data];
-                        }
-                        else {
-                            errorResult = typeof result === 'string' ? { error: result } : result;
-                            throw new types_1.ClientError(__assign({}, errorResult, { status: response.status }), { query: query, variables: variables });
-                        }
-                        return [2 /*return*/];
-                }
-            });
-        });
-    };
-    GraphQLClient.prototype.setHeaders = function (headers) {
-        this.options.headers = headers;
-        return this;
-    };
-    GraphQLClient.prototype.setHeader = function (key, value) {
-        var headers = this.options.headers;
-        if (headers) {
-            headers[key] = value;
-        }
-        else {
-            this.options.headers = (_a = {}, _a[key] = value, _a);
-        }
-        return this;
-        var _a;
-    };
-    return GraphQLClient;
-}());
-exports.GraphQLClient = GraphQLClient;
-function rawRequest(url, query, variables) {
-    return __awaiter(this, void 0, void 0, function () {
-        var client;
-        return __generator(this, function (_a) {
-            client = new GraphQLClient(url);
-            return [2 /*return*/, client.rawRequest(query, variables)];
-        });
-    });
-}
-exports.rawRequest = rawRequest;
-function request(url, query, variables) {
-    return __awaiter(this, void 0, void 0, function () {
-        var client;
-        return __generator(this, function (_a) {
-            client = new GraphQLClient(url);
-            return [2 /*return*/, client.request(query, variables)];
-        });
-    });
-}
-exports.request = request;
-exports.default = request;
-function getResult(response) {
-    return __awaiter(this, void 0, void 0, function () {
-        var contentType;
-        return __generator(this, function (_a) {
-            contentType = response.headers.get('Content-Type');
-            if (contentType && contentType.startsWith('application/json')) {
-                return [2 /*return*/, response.json()];
-            }
-            else {
-                return [2 /*return*/, response.text()];
-            }
-            return [2 /*return*/];
-        });
-    });
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-request/dist/src/index.js.map b/node_modules/graphql-request/dist/src/index.js.map
deleted file mode 100644
index a817b39..0000000
--- a/node_modules/graphql-request/dist/src/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/graphql-request/dist/src/types.d.ts b/node_modules/graphql-request/dist/src/types.d.ts
deleted file mode 100644
index f3ab8fc..0000000
--- a/node_modules/graphql-request/dist/src/types.d.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-export declare type Variables = {
-    [key: string]: any;
-};
-export interface Headers {
-    [key: string]: string;
-}
-export interface Options {
-    method?: RequestInit['method'];
-    headers?: Headers;
-    mode?: RequestInit['mode'];
-    credentials?: RequestInit['credentials'];
-    cache?: RequestInit['cache'];
-    redirect?: RequestInit['redirect'];
-    referrer?: RequestInit['referrer'];
-    referrerPolicy?: RequestInit['referrerPolicy'];
-    integrity?: RequestInit['integrity'];
-}
-export interface GraphQLError {
-    message: string;
-    locations: {
-        line: number;
-        column: number;
-    }[];
-    path: string[];
-}
-export interface GraphQLResponse {
-    data?: any;
-    errors?: GraphQLError[];
-    extensions?: any;
-    status: number;
-    [key: string]: any;
-}
-export interface GraphQLRequestContext {
-    query: string;
-    variables?: Variables;
-}
-export declare class ClientError extends Error {
-    response: GraphQLResponse;
-    request: GraphQLRequestContext;
-    constructor(response: GraphQLResponse, request: GraphQLRequestContext);
-    private static extractMessage(response);
-}
diff --git a/node_modules/graphql-request/dist/src/types.js b/node_modules/graphql-request/dist/src/types.js
deleted file mode 100644
index c9a7a95..0000000
--- a/node_modules/graphql-request/dist/src/types.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var ClientError = /** @class */ (function (_super) {
-    __extends(ClientError, _super);
-    function ClientError(response, request) {
-        var _this = this;
-        var message = ClientError.extractMessage(response) + ": " + JSON.stringify({ response: response, request: request });
-        _this = _super.call(this, message) || this;
-        _this.response = response;
-        _this.request = request;
-        // this is needed as Safari doesn't support .captureStackTrace
-        /* tslint:disable-next-line */
-        if (typeof Error.captureStackTrace === 'function') {
-            Error.captureStackTrace(_this, ClientError);
-        }
-        return _this;
-    }
-    ClientError.extractMessage = function (response) {
-        try {
-            return response.errors[0].message;
-        }
-        catch (e) {
-            return "GraphQL Error (Code: " + response.status + ")";
-        }
-    };
-    return ClientError;
-}(Error));
-exports.ClientError = ClientError;
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-request/dist/src/types.js.map b/node_modules/graphql-request/dist/src/types.js.map
deleted file mode 100644
index 0b6a7c5..0000000
--- a/node_modules/graphql-request/dist/src/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;AAqCA;IAAiC,+BAAK;IAKpC,qBAAa,QAAyB,EAAE,OAA8B;QAAtE,iBAaC;QAZC,IAAM,OAAO,GAAM,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAK,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,CAAG,CAAA;QAEnG,QAAA,kBAAM,OAAO,CAAC,SAAA;QAEd,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,KAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,8DAA8D;QAC9D,8BAA8B;QAC9B,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC;YAClD,KAAK,CAAC,iBAAiB,CAAC,KAAI,EAAE,WAAW,CAAC,CAAA;QAC5C,CAAC;;IACH,CAAC;IAEc,0BAAc,GAA7B,UAA+B,QAAyB;QACtD,IAAI,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACpC,CAAC;QAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,0BAAwB,QAAQ,CAAC,MAAM,MAAG,CAAA;QACnD,CAAC;IACH,CAAC;IACH,kBAAC;AAAD,CAAC,AA3BD,CAAiC,KAAK,GA2BrC;AA3BY,kCAAW"}
\ No newline at end of file
diff --git a/node_modules/graphql-request/dist/tests/index.test.d.ts b/node_modules/graphql-request/dist/tests/index.test.d.ts
deleted file mode 100644
index cb0ff5c..0000000
--- a/node_modules/graphql-request/dist/tests/index.test.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/graphql-request/dist/tests/index.test.js b/node_modules/graphql-request/dist/tests/index.test.js
deleted file mode 100644
index 26260e1..0000000
--- a/node_modules/graphql-request/dist/tests/index.test.js
+++ /dev/null
@@ -1,313 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [0, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-};
-var __rest = (this && this.__rest) || function (s, e) {
-    var t = {};
-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-        t[p] = s[p];
-    if (s != null && typeof Object.getOwnPropertySymbols === "function")
-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
-            t[p[i]] = s[p[i]];
-    return t;
-};
-var _this = this;
-Object.defineProperty(exports, "__esModule", { value: true });
-var ava_1 = require("ava");
-var fetchMock = require("fetch-mock");
-var index_1 = require("../src/index");
-ava_1.default('minimal query', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var data;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                data = {
-                    viewer: {
-                        id: 'some-id',
-                    },
-                };
-                return [4 /*yield*/, mock({ body: { data: data } }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var _a, _b;
-                        return __generator(this, function (_c) {
-                            switch (_c.label) {
-                                case 0:
-                                    _b = (_a = t).deepEqual;
-                                    return [4 /*yield*/, index_1.request('https://mock-api.com/graphql', "{ viewer { id } }")];
-                                case 1:
-                                    _b.apply(_a, [_c.sent(), data]);
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('minimal raw query', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var data, extensions;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                data = {
-                    viewer: {
-                        id: 'some-id',
-                    },
-                };
-                extensions = {
-                    version: '1',
-                };
-                return [4 /*yield*/, mock({ body: { data: data, extensions: extensions } }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var _a, headers, result;
-                        return __generator(this, function (_b) {
-                            switch (_b.label) {
-                                case 0: return [4 /*yield*/, index_1.rawRequest('https://mock-api.com/graphql', "{ viewer { id } }")];
-                                case 1:
-                                    _a = _b.sent(), headers = _a.headers, result = __rest(_a, ["headers"]);
-                                    t.deepEqual(result, { data: data, extensions: extensions, status: 200 });
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('minimal raw query with response headers', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var data, extensions, reqHeaders;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                data = {
-                    viewer: {
-                        id: 'some-id',
-                    },
-                };
-                extensions = {
-                    version: '1',
-                };
-                reqHeaders = {
-                    'Content-Type': 'application/json',
-                    'X-Custom-Header': 'test-custom-header',
-                };
-                return [4 /*yield*/, mock({ headers: reqHeaders, body: { data: data, extensions: extensions } }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var _a, headers, result;
-                        return __generator(this, function (_b) {
-                            switch (_b.label) {
-                                case 0: return [4 /*yield*/, index_1.rawRequest('https://mock-api.com/graphql', "{ viewer { id } }")];
-                                case 1:
-                                    _a = _b.sent(), headers = _a.headers, result = __rest(_a, ["headers"]);
-                                    t.deepEqual(result, { data: data, extensions: extensions, status: 200 });
-                                    t.deepEqual(headers.get('X-Custom-Header'), reqHeaders['X-Custom-Header']);
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('basic error', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var errors;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                errors = {
-                    message: "Syntax Error GraphQL request (1:1) Unexpected Name \"x\"\n\n1: x\n   ^\n",
-                    locations: [
-                        {
-                            line: 1,
-                            column: 1
-                        }
-                    ]
-                };
-                return [4 /*yield*/, mock({ body: { errors: errors } }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var err;
-                        return __generator(this, function (_a) {
-                            switch (_a.label) {
-                                case 0: return [4 /*yield*/, t.throws(index_1.request('https://mock-api.com/graphql', "x"))];
-                                case 1:
-                                    err = _a.sent();
-                                    t.deepEqual(err.response.errors, errors);
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('raw request error', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var errors;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                errors = {
-                    message: "Syntax Error GraphQL request (1:1) Unexpected Name \"x\"\n\n1: x\n   ^\n",
-                    locations: [
-                        {
-                            line: 1,
-                            column: 1
-                        }
-                    ]
-                };
-                return [4 /*yield*/, mock({ body: { errors: errors } }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var err;
-                        return __generator(this, function (_a) {
-                            switch (_a.label) {
-                                case 0: return [4 /*yield*/, t.throws(index_1.rawRequest('https://mock-api.com/graphql', "x"))];
-                                case 1:
-                                    err = _a.sent();
-                                    t.deepEqual(err.response.errors, errors);
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('content-type with charset', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var data;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                data = {
-                    viewer: {
-                        id: 'some-id',
-                    },
-                };
-                return [4 /*yield*/, mock({
-                        headers: { 'Content-Type': 'application/json; charset=utf-8' },
-                        body: { data: data }
-                    }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var _a, _b;
-                        return __generator(this, function (_c) {
-                            switch (_c.label) {
-                                case 0:
-                                    _b = (_a = t).deepEqual;
-                                    return [4 /*yield*/, index_1.request('https://mock-api.com/graphql', "{ viewer { id } }")];
-                                case 1:
-                                    _b.apply(_a, [_c.sent(), data]);
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-ava_1.default('extra fetch options', function (t) { return __awaiter(_this, void 0, void 0, function () {
-    var _this = this;
-    var options, client;
-    return __generator(this, function (_a) {
-        switch (_a.label) {
-            case 0:
-                options = {
-                    credentials: 'include',
-                    mode: 'cors',
-                    cache: 'reload',
-                };
-                client = new index_1.GraphQLClient('https://mock-api.com/graphql', options);
-                return [4 /*yield*/, mock({
-                        body: { data: { test: 'test' } }
-                    }, function () { return __awaiter(_this, void 0, void 0, function () {
-                        var actualOptions, name_1;
-                        return __generator(this, function (_a) {
-                            switch (_a.label) {
-                                case 0: return [4 /*yield*/, client.request('{ test }')];
-                                case 1:
-                                    _a.sent();
-                                    actualOptions = fetchMock.lastCall()[1];
-                                    for (name_1 in options) {
-                                        t.deepEqual(actualOptions[name_1], options[name_1]);
-                                    }
-                                    return [2 /*return*/];
-                            }
-                        });
-                    }); })];
-            case 1:
-                _a.sent();
-                return [2 /*return*/];
-        }
-    });
-}); });
-function mock(response, testFn) {
-    return __awaiter(this, void 0, void 0, function () {
-        return __generator(this, function (_a) {
-            switch (_a.label) {
-                case 0:
-                    fetchMock.mock({
-                        matcher: '*',
-                        response: {
-                            headers: __assign({ 'Content-Type': 'application/json' }, response.headers),
-                            body: JSON.stringify(response.body),
-                        },
-                    });
-                    return [4 /*yield*/, testFn()];
-                case 1:
-                    _a.sent();
-                    fetchMock.restore();
-                    return [2 /*return*/];
-            }
-        });
-    });
-}
-//# sourceMappingURL=index.test.js.map
\ No newline at end of file
diff --git a/node_modules/graphql-request/dist/tests/index.test.js.map b/node_modules/graphql-request/dist/tests/index.test.js.map
deleted file mode 100644
index 1baa500..0000000
--- a/node_modules/graphql-request/dist/tests/index.test.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../tests/index.test.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/graphql-request/package.json b/node_modules/graphql-request/package.json
deleted file mode 100644
index 465420d..0000000
--- a/node_modules/graphql-request/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "graphql-request",
-  "version": "1.8.2",
-  "main": "dist/src/index.js",
-  "typings": "./dist/src/index.d.ts",
-  "files": [
-    "dist"
-  ],
-  "bundlesize": [
-    {
-      "path": "./dist/src/index.js",
-      "maxSize": "15 kB"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/graphcool/graphql-request.git"
-  },
-  "keywords": [
-    "graphql",
-    "request",
-    "fetch",
-    "graphql-client",
-    "apollo"
-  ],
-  "author": "Johannes Schickling <johannes@graph.cool>",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/graphcool/graphql-request/issues"
-  },
-  "homepage": "https://github.com/graphcool/graphql-request",
-  "scripts": {
-    "prepublish": "npm run build",
-    "build": "rm -rf dist && tsc -d",
-    "lint": "tslint --type-check --project tsconfig.json {src,test}/**/*.ts",
-    "test": "npm run lint && npm run build && ava --serial && npm run size",
-    "size": "bundlesize"
-  },
-  "devDependencies": {
-    "@types/fetch-mock": "5.12.2",
-    "@types/node": "8.5.5",
-    "ava": "0.25.0",
-    "bundlesize": "0.17.0",
-    "fetch-mock": "5.13.1",
-    "tslint": "5.9.1",
-    "tslint-config-standard": "7.0.0",
-    "typescript": "2.7.2"
-  },
-  "dependencies": {
-    "cross-fetch": "2.2.2"
-  }
-}
diff --git a/node_modules/graphql/LICENSE b/node_modules/graphql/LICENSE
deleted file mode 100644
index cd2262e..0000000
--- a/node_modules/graphql/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 GraphQL Contributors
-
-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.
diff --git a/node_modules/graphql/README.md b/node_modules/graphql/README.md
deleted file mode 100644
index 54200e2..0000000
--- a/node_modules/graphql/README.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# GraphQL.js
-
-The JavaScript reference implementation for GraphQL, a query language for APIs created by Facebook.
-
-[![npm version](https://badge.fury.io/js/graphql.svg)](https://badge.fury.io/js/graphql)
-[![Build Status](https://travis-ci.org/graphql/graphql-js.svg?branch=master)](https://travis-ci.org/graphql/graphql-js?branch=master)
-[![Coverage Status](https://codecov.io/gh/graphql/graphql-js/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql/graphql-js)
-
-See more complete documentation at https://graphql.org/ and
-https://graphql.org/graphql-js/.
-
-Looking for help? Find resources [from the community](https://graphql.org/community/).
-
-## Getting Started
-
-An overview of GraphQL in general is available in the
-[README](https://github.com/graphql/graphql-spec/blob/master/README.md) for the
-[Specification for GraphQL](https://github.com/graphql/graphql-spec). That overview
-describes a simple set of GraphQL examples that exist as [tests](src/__tests__)
-in this repository. A good way to get started with this repository is to walk
-through that README and the corresponding tests in parallel.
-
-### Using GraphQL.js
-
-Install GraphQL.js from npm
-
-With yarn:
-
-```sh
-yarn add graphql
-```
-
-or alternatively using npm:
-
-```sh
-npm install --save graphql
-```
-
-GraphQL.js provides two important capabilities: building a type schema, and
-serving queries against that type schema.
-
-First, build a GraphQL type schema which maps to your code base.
-
-```js
-import {
-  graphql,
-  GraphQLSchema,
-  GraphQLObjectType,
-  GraphQLString,
-} from 'graphql';
-
-var schema = new GraphQLSchema({
-  query: new GraphQLObjectType({
-    name: 'RootQueryType',
-    fields: {
-      hello: {
-        type: GraphQLString,
-        resolve() {
-          return 'world';
-        },
-      },
-    },
-  }),
-});
-```
-
-This defines a simple schema with one type and one field, that resolves
-to a fixed value. The `resolve` function can return a value, a promise,
-or an array of promises. A more complex example is included in the top
-level [tests](src/__tests__) directory.
-
-Then, serve the result of a query against that type schema.
-
-```js
-var query = '{ hello }';
-
-graphql(schema, query).then(result => {
-  // Prints
-  // {
-  //   data: { hello: "world" }
-  // }
-  console.log(result);
-});
-```
-
-This runs a query fetching the one field defined. The `graphql` function will
-first ensure the query is syntactically and semantically valid before executing
-it, reporting errors otherwise.
-
-```js
-var query = '{ BoyHowdy }';
-
-graphql(schema, query).then(result => {
-  // Prints
-  // {
-  //   errors: [
-  //     { message: 'Cannot query field BoyHowdy on RootQueryType',
-  //       locations: [ { line: 1, column: 3 } ] }
-  //   ]
-  // }
-  console.log(result);
-});
-```
-
-**Note**: Please don't forget to set `NODE_ENV=production` if you are running a production server it will disable some checks that can be useful during development but will significantly improve performance.
-
-### Want to ride the bleeding edge?
-
-The `npm` branch in this repository is automatically maintained to be the last
-commit to `master` to pass all tests, in the same form found on npm. It is
-recommended to use builds deployed to npm for many reasons, but if you want to use
-the latest not-yet-released version of graphql-js, you can do so by depending
-directly on this branch:
-
-```
-npm install graphql@git://github.com/graphql/graphql-js.git#npm
-```
-
-### Using in a Browser
-
-GraphQL.js is a general purpose library and can be used both in a Node server
-and in the browser. As an example, the [GraphiQL](https://github.com/graphql/graphiql/)
-tool is built with GraphQL.js!
-
-Building a project using GraphQL.js with [webpack](https://webpack.js.org) or
-[rollup](https://github.com/rollup/rollup) should just work and only include
-the portions of the library you use. This works because GraphQL.js is distributed
-with both CommonJS (`require()`) and ESModule (`import`) files. Ensure that any
-custom build configurations look for `.mjs` files!
-
-### Contributing
-
-We actively welcome pull requests, learn how to
-[contribute](https://github.com/graphql/graphql-js/blob/master/.github/CONTRIBUTING.md).
-
-### Changelog
-
-Changes are tracked as [GitHub releases](https://github.com/graphql/graphql-js/releases).
-
-### License
-
-GraphQL.js is [MIT-licensed](https://github.com/graphql/graphql-js/blob/master/LICENSE).
-
-### Credits
-
-The `*.d.ts` files in this project are based on [DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/54712a7e28090c5b1253b746d1878003c954f3ff/types/graphql) definitions written by:
-
-<!--- spell-checker:disable -->
-
-- TonyYang https://github.com/TonyPythoneer
-- Caleb Meredith https://github.com/calebmer
-- Dominic Watson https://github.com/intellix
-- Firede https://github.com/firede
-- Kepennar https://github.com/kepennar
-- Mikhail Novikov https://github.com/freiksenet
-- Ivan Goncharov https://github.com/IvanGoncharov
-- Hagai Cohen https://github.com/DxCx
-- Ricardo Portugal https://github.com/rportugal
-- Tim Griesser https://github.com/tgriesser
-- Dylan Stewart https://github.com/dyst5422
-- Alessio Dionisi https://github.com/adnsio
-- Divyendu Singh https://github.com/divyenduz
-- Brad Zacher https://github.com/bradzacher
-- Curtis Layne https://github.com/clayne11
-- Jonathan Cardoso https://github.com/JCMais
-- Pavel Lang https://github.com/langpavel
-- Mark Caudill https://github.com/mc0
-- Martijn Walraven https://github.com/martijnwalraven
-- Jed Mao https://github.com/jedmao
diff --git a/node_modules/graphql/error/GraphQLError.d.ts b/node_modules/graphql/error/GraphQLError.d.ts
deleted file mode 100644
index d8886a1..0000000
--- a/node_modules/graphql/error/GraphQLError.d.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { ASTNode } from '../language/ast';
-import { Source } from '../language/source';
-import { SourceLocation } from '../language/location';
-
-/**
- * A GraphQLError describes an Error found during the parse, validate, or
- * execute phases of performing a GraphQL operation. In addition to a message
- * and stack trace, it also includes information about the locations in a
- * GraphQL document and/or execution result that correspond to the Error.
- */
-export class GraphQLError extends Error {
-  constructor(
-    message: string,
-    nodes?: ReadonlyArray<ASTNode> | ASTNode | undefined,
-    source?: Maybe<Source>,
-    positions?: Maybe<ReadonlyArray<number>>,
-    path?: Maybe<ReadonlyArray<string | number>>,
-    originalError?: Maybe<Error>,
-    extensions?: Maybe<{ [key: string]: any }>,
-  );
-
-  /**
-   * A message describing the Error for debugging purposes.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   *
-   * Note: should be treated as readonly, despite invariant usage.
-   */
-  message: string;
-
-  /**
-   * An array of { line, column } locations within the source GraphQL document
-   * which correspond to this error.
-   *
-   * Errors during validation often contain multiple locations, for example to
-   * point out two things with the same name. Errors during execution include a
-   * single location, the field which produced the error.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-  readonly locations: ReadonlyArray<SourceLocation> | undefined;
-
-  /**
-   * An array describing the JSON-path into the execution response which
-   * corresponds to this error. Only included for errors during execution.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-  readonly path: ReadonlyArray<string | number> | undefined;
-
-  /**
-   * An array of GraphQL AST Nodes corresponding to this error.
-   */
-  readonly nodes: ReadonlyArray<ASTNode> | undefined;
-
-  /**
-   * The source GraphQL document corresponding to this error.
-   *
-   * Note that if this Error represents more than one node, the source may not
-   * represent nodes after the first node.
-   */
-  readonly source: Source | undefined;
-
-  /**
-   * An array of character offsets within the source GraphQL document
-   * which correspond to this error.
-   */
-  readonly positions: ReadonlyArray<number> | undefined;
-
-  /**
-   * The original error thrown from a field resolver during execution.
-   */
-  readonly originalError: Maybe<Error>;
-
-  /**
-   * Extension fields to add to the formatted error.
-   */
-  readonly extensions: { [key: string]: any } | undefined;
-}
-
-/**
- * Prints a GraphQLError to a string, representing useful location information
- * about the error's position in the source.
- */
-export function printError(error: GraphQLError): string;
diff --git a/node_modules/graphql/error/GraphQLError.js b/node_modules/graphql/error/GraphQLError.js
deleted file mode 100644
index 9264aa8..0000000
--- a/node_modules/graphql/error/GraphQLError.js
+++ /dev/null
@@ -1,287 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.printError = printError;
-exports.GraphQLError = void 0;
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _symbols = require("../polyfills/symbols");
-
-var _location = require("../language/location");
-
-var _printLocation = require("../language/printLocation");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
-
-function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
-
-function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
-
-function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
-
-function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
-
-function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
-
-function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
-
-function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
-
-/**
- * A GraphQLError describes an Error found during the parse, validate, or
- * execute phases of performing a GraphQL operation. In addition to a message
- * and stack trace, it also includes information about the locations in a
- * GraphQL document and/or execution result that correspond to the Error.
- */
-var GraphQLError =
-/*#__PURE__*/
-function (_Error) {
-  _inherits(GraphQLError, _Error);
-
-  /**
-   * A message describing the Error for debugging purposes.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   *
-   * Note: should be treated as readonly, despite invariant usage.
-   */
-
-  /**
-   * An array of { line, column } locations within the source GraphQL document
-   * which correspond to this error.
-   *
-   * Errors during validation often contain multiple locations, for example to
-   * point out two things with the same name. Errors during execution include a
-   * single location, the field which produced the error.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-
-  /**
-   * An array describing the JSON-path into the execution response which
-   * corresponds to this error. Only included for errors during execution.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-
-  /**
-   * An array of GraphQL AST Nodes corresponding to this error.
-   */
-
-  /**
-   * The source GraphQL document for the first location of this error.
-   *
-   * Note that if this Error represents more than one node, the source may not
-   * represent nodes after the first node.
-   */
-
-  /**
-   * An array of character offsets within the source GraphQL document
-   * which correspond to this error.
-   */
-
-  /**
-   * The original error thrown from a field resolver during execution.
-   */
-
-  /**
-   * Extension fields to add to the formatted error.
-   */
-  function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {
-    var _locations2, _source2, _positions2, _extensions2;
-
-    var _this;
-
-    _classCallCheck(this, GraphQLError);
-
-    _this = _possibleConstructorReturn(this, _getPrototypeOf(GraphQLError).call(this, message)); // Compute list of blame nodes.
-
-    var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions.
-
-
-    var _source = source;
-
-    if (!_source && _nodes) {
-      var _nodes$0$loc;
-
-      _source = (_nodes$0$loc = _nodes[0].loc) === null || _nodes$0$loc === void 0 ? void 0 : _nodes$0$loc.source;
-    }
-
-    var _positions = positions;
-
-    if (!_positions && _nodes) {
-      _positions = _nodes.reduce(function (list, node) {
-        if (node.loc) {
-          list.push(node.loc.start);
-        }
-
-        return list;
-      }, []);
-    }
-
-    if (_positions && _positions.length === 0) {
-      _positions = undefined;
-    }
-
-    var _locations;
-
-    if (positions && source) {
-      _locations = positions.map(function (pos) {
-        return (0, _location.getLocation)(source, pos);
-      });
-    } else if (_nodes) {
-      _locations = _nodes.reduce(function (list, node) {
-        if (node.loc) {
-          list.push((0, _location.getLocation)(node.loc.source, node.loc.start));
-        }
-
-        return list;
-      }, []);
-    }
-
-    var _extensions = extensions;
-
-    if (_extensions == null && originalError != null) {
-      var originalExtensions = originalError.extensions;
-
-      if ((0, _isObjectLike.default)(originalExtensions)) {
-        _extensions = originalExtensions;
-      }
-    }
-
-    Object.defineProperties(_assertThisInitialized(_this), {
-      name: {
-        value: 'GraphQLError'
-      },
-      message: {
-        value: message,
-        // By being enumerable, JSON.stringify will include `message` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: true,
-        writable: true
-      },
-      locations: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: (_locations2 = _locations) !== null && _locations2 !== void 0 ? _locations2 : undefined,
-        // By being enumerable, JSON.stringify will include `locations` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _locations != null
-      },
-      path: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: path !== null && path !== void 0 ? path : undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: path != null
-      },
-      nodes: {
-        value: _nodes !== null && _nodes !== void 0 ? _nodes : undefined
-      },
-      source: {
-        value: (_source2 = _source) !== null && _source2 !== void 0 ? _source2 : undefined
-      },
-      positions: {
-        value: (_positions2 = _positions) !== null && _positions2 !== void 0 ? _positions2 : undefined
-      },
-      originalError: {
-        value: originalError
-      },
-      extensions: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: (_extensions2 = _extensions) !== null && _extensions2 !== void 0 ? _extensions2 : undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _extensions != null
-      }
-    }); // Include (non-enumerable) stack trace.
-
-    if (originalError === null || originalError === void 0 ? void 0 : originalError.stack) {
-      Object.defineProperty(_assertThisInitialized(_this), 'stack', {
-        value: originalError.stack,
-        writable: true,
-        configurable: true
-      });
-      return _possibleConstructorReturn(_this);
-    }
-    /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);
-    } else {
-      Object.defineProperty(_assertThisInitialized(_this), 'stack', {
-        value: Error().stack,
-        writable: true,
-        configurable: true
-      });
-    }
-
-    return _this;
-  }
-
-  _createClass(GraphQLError, [{
-    key: "toString",
-    value: function toString() {
-      return printError(this);
-    } // FIXME: workaround to not break chai comparisons, should be remove in v16
-    // $FlowFixMe Flow doesn't support computed properties yet
-
-  }, {
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'Object';
-    }
-  }]);
-
-  return GraphQLError;
-}(_wrapNativeSuper(Error));
-/**
- * Prints a GraphQLError to a string, representing useful location information
- * about the error's position in the source.
- */
-
-
-exports.GraphQLError = GraphQLError;
-
-function printError(error) {
-  var output = error.message;
-
-  if (error.nodes) {
-    for (var _i2 = 0, _error$nodes2 = error.nodes; _i2 < _error$nodes2.length; _i2++) {
-      var node = _error$nodes2[_i2];
-
-      if (node.loc) {
-        output += '\n\n' + (0, _printLocation.printLocation)(node.loc);
-      }
-    }
-  } else if (error.source && error.locations) {
-    for (var _i4 = 0, _error$locations2 = error.locations; _i4 < _error$locations2.length; _i4++) {
-      var location = _error$locations2[_i4];
-      output += '\n\n' + (0, _printLocation.printSourceLocation)(error.source, location);
-    }
-  }
-
-  return output;
-}
diff --git a/node_modules/graphql/error/GraphQLError.js.flow b/node_modules/graphql/error/GraphQLError.js.flow
deleted file mode 100644
index b847f42..0000000
--- a/node_modules/graphql/error/GraphQLError.js.flow
+++ /dev/null
@@ -1,242 +0,0 @@
-// @flow strict
-
-// FIXME:
-// flowlint uninitialized-instance-property:off
-
-import isObjectLike from '../jsutils/isObjectLike';
-import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
-
-import { type ASTNode } from '../language/ast';
-import { type Source } from '../language/source';
-import { type SourceLocation, getLocation } from '../language/location';
-import { printLocation, printSourceLocation } from '../language/printLocation';
-
-/**
- * A GraphQLError describes an Error found during the parse, validate, or
- * execute phases of performing a GraphQL operation. In addition to a message
- * and stack trace, it also includes information about the locations in a
- * GraphQL document and/or execution result that correspond to the Error.
- */
-export class GraphQLError extends Error {
-  /**
-   * A message describing the Error for debugging purposes.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   *
-   * Note: should be treated as readonly, despite invariant usage.
-   */
-  message: string;
-
-  /**
-   * An array of { line, column } locations within the source GraphQL document
-   * which correspond to this error.
-   *
-   * Errors during validation often contain multiple locations, for example to
-   * point out two things with the same name. Errors during execution include a
-   * single location, the field which produced the error.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-  +locations: $ReadOnlyArray<SourceLocation> | void;
-
-  /**
-   * An array describing the JSON-path into the execution response which
-   * corresponds to this error. Only included for errors during execution.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-  +path: $ReadOnlyArray<string | number> | void;
-
-  /**
-   * An array of GraphQL AST Nodes corresponding to this error.
-   */
-  +nodes: $ReadOnlyArray<ASTNode> | void;
-
-  /**
-   * The source GraphQL document for the first location of this error.
-   *
-   * Note that if this Error represents more than one node, the source may not
-   * represent nodes after the first node.
-   */
-  +source: Source | void;
-
-  /**
-   * An array of character offsets within the source GraphQL document
-   * which correspond to this error.
-   */
-  +positions: $ReadOnlyArray<number> | void;
-
-  /**
-   * The original error thrown from a field resolver during execution.
-   */
-  +originalError: ?Error;
-
-  /**
-   * Extension fields to add to the formatted error.
-   */
-  +extensions: { [key: string]: mixed, ... } | void;
-
-  constructor(
-    message: string,
-    nodes?: $ReadOnlyArray<ASTNode> | ASTNode | void | null,
-    source?: ?Source,
-    positions?: ?$ReadOnlyArray<number>,
-    path?: ?$ReadOnlyArray<string | number>,
-    originalError?: ?(Error & { +extensions?: mixed, ... }),
-    extensions?: ?{ [key: string]: mixed, ... },
-  ): void {
-    super(message);
-
-    // Compute list of blame nodes.
-    const _nodes = Array.isArray(nodes)
-      ? nodes.length !== 0
-        ? nodes
-        : undefined
-      : nodes
-      ? [nodes]
-      : undefined;
-
-    // Compute locations in the source for the given nodes/positions.
-    let _source = source;
-    if (!_source && _nodes) {
-      _source = _nodes[0].loc?.source;
-    }
-
-    let _positions = positions;
-    if (!_positions && _nodes) {
-      _positions = _nodes.reduce((list, node) => {
-        if (node.loc) {
-          list.push(node.loc.start);
-        }
-        return list;
-      }, []);
-    }
-    if (_positions && _positions.length === 0) {
-      _positions = undefined;
-    }
-
-    let _locations;
-    if (positions && source) {
-      _locations = positions.map(pos => getLocation(source, pos));
-    } else if (_nodes) {
-      _locations = _nodes.reduce((list, node) => {
-        if (node.loc) {
-          list.push(getLocation(node.loc.source, node.loc.start));
-        }
-        return list;
-      }, []);
-    }
-
-    let _extensions = extensions;
-    if (_extensions == null && originalError != null) {
-      const originalExtensions = originalError.extensions;
-      if (isObjectLike(originalExtensions)) {
-        _extensions = originalExtensions;
-      }
-    }
-
-    Object.defineProperties((this: any), {
-      name: { value: 'GraphQLError' },
-      message: {
-        value: message,
-        // By being enumerable, JSON.stringify will include `message` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: true,
-        writable: true,
-      },
-      locations: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: _locations ?? undefined,
-        // By being enumerable, JSON.stringify will include `locations` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _locations != null,
-      },
-      path: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: path ?? undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: path != null,
-      },
-      nodes: {
-        value: _nodes ?? undefined,
-      },
-      source: {
-        value: _source ?? undefined,
-      },
-      positions: {
-        value: _positions ?? undefined,
-      },
-      originalError: {
-        value: originalError,
-      },
-      extensions: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: _extensions ?? undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _extensions != null,
-      },
-    });
-
-    // Include (non-enumerable) stack trace.
-    if (originalError?.stack) {
-      Object.defineProperty(this, 'stack', {
-        value: originalError.stack,
-        writable: true,
-        configurable: true,
-      });
-      return;
-    }
-
-    /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, GraphQLError);
-    } else {
-      Object.defineProperty(this, 'stack', {
-        value: Error().stack,
-        writable: true,
-        configurable: true,
-      });
-    }
-  }
-
-  toString(): string {
-    return printError(this);
-  }
-
-  // FIXME: workaround to not break chai comparisons, should be remove in v16
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG](): string {
-    return 'Object';
-  }
-}
-
-/**
- * Prints a GraphQLError to a string, representing useful location information
- * about the error's position in the source.
- */
-export function printError(error: GraphQLError): string {
-  let output = error.message;
-
-  if (error.nodes) {
-    for (const node of error.nodes) {
-      if (node.loc) {
-        output += '\n\n' + printLocation(node.loc);
-      }
-    }
-  } else if (error.source && error.locations) {
-    for (const location of error.locations) {
-      output += '\n\n' + printSourceLocation(error.source, location);
-    }
-  }
-
-  return output;
-}
diff --git a/node_modules/graphql/error/GraphQLError.mjs b/node_modules/graphql/error/GraphQLError.mjs
deleted file mode 100644
index 892ccdc..0000000
--- a/node_modules/graphql/error/GraphQLError.mjs
+++ /dev/null
@@ -1,273 +0,0 @@
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
-
-function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
-
-function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
-
-function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
-
-function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
-
-function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
-
-function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
-
-function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
-
-function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
-
-// FIXME:
-// flowlint uninitialized-instance-property:off
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
-import { getLocation } from "../language/location.mjs";
-import { printLocation, printSourceLocation } from "../language/printLocation.mjs";
-/**
- * A GraphQLError describes an Error found during the parse, validate, or
- * execute phases of performing a GraphQL operation. In addition to a message
- * and stack trace, it also includes information about the locations in a
- * GraphQL document and/or execution result that correspond to the Error.
- */
-
-export var GraphQLError =
-/*#__PURE__*/
-function (_Error) {
-  _inherits(GraphQLError, _Error);
-
-  /**
-   * A message describing the Error for debugging purposes.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   *
-   * Note: should be treated as readonly, despite invariant usage.
-   */
-
-  /**
-   * An array of { line, column } locations within the source GraphQL document
-   * which correspond to this error.
-   *
-   * Errors during validation often contain multiple locations, for example to
-   * point out two things with the same name. Errors during execution include a
-   * single location, the field which produced the error.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-
-  /**
-   * An array describing the JSON-path into the execution response which
-   * corresponds to this error. Only included for errors during execution.
-   *
-   * Enumerable, and appears in the result of JSON.stringify().
-   */
-
-  /**
-   * An array of GraphQL AST Nodes corresponding to this error.
-   */
-
-  /**
-   * The source GraphQL document for the first location of this error.
-   *
-   * Note that if this Error represents more than one node, the source may not
-   * represent nodes after the first node.
-   */
-
-  /**
-   * An array of character offsets within the source GraphQL document
-   * which correspond to this error.
-   */
-
-  /**
-   * The original error thrown from a field resolver during execution.
-   */
-
-  /**
-   * Extension fields to add to the formatted error.
-   */
-  function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {
-    var _locations2, _source2, _positions2, _extensions2;
-
-    var _this;
-
-    _classCallCheck(this, GraphQLError);
-
-    _this = _possibleConstructorReturn(this, _getPrototypeOf(GraphQLError).call(this, message)); // Compute list of blame nodes.
-
-    var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions.
-
-
-    var _source = source;
-
-    if (!_source && _nodes) {
-      var _nodes$0$loc;
-
-      _source = (_nodes$0$loc = _nodes[0].loc) === null || _nodes$0$loc === void 0 ? void 0 : _nodes$0$loc.source;
-    }
-
-    var _positions = positions;
-
-    if (!_positions && _nodes) {
-      _positions = _nodes.reduce(function (list, node) {
-        if (node.loc) {
-          list.push(node.loc.start);
-        }
-
-        return list;
-      }, []);
-    }
-
-    if (_positions && _positions.length === 0) {
-      _positions = undefined;
-    }
-
-    var _locations;
-
-    if (positions && source) {
-      _locations = positions.map(function (pos) {
-        return getLocation(source, pos);
-      });
-    } else if (_nodes) {
-      _locations = _nodes.reduce(function (list, node) {
-        if (node.loc) {
-          list.push(getLocation(node.loc.source, node.loc.start));
-        }
-
-        return list;
-      }, []);
-    }
-
-    var _extensions = extensions;
-
-    if (_extensions == null && originalError != null) {
-      var originalExtensions = originalError.extensions;
-
-      if (isObjectLike(originalExtensions)) {
-        _extensions = originalExtensions;
-      }
-    }
-
-    Object.defineProperties(_assertThisInitialized(_this), {
-      name: {
-        value: 'GraphQLError'
-      },
-      message: {
-        value: message,
-        // By being enumerable, JSON.stringify will include `message` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: true,
-        writable: true
-      },
-      locations: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: (_locations2 = _locations) !== null && _locations2 !== void 0 ? _locations2 : undefined,
-        // By being enumerable, JSON.stringify will include `locations` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _locations != null
-      },
-      path: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: path !== null && path !== void 0 ? path : undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: path != null
-      },
-      nodes: {
-        value: _nodes !== null && _nodes !== void 0 ? _nodes : undefined
-      },
-      source: {
-        value: (_source2 = _source) !== null && _source2 !== void 0 ? _source2 : undefined
-      },
-      positions: {
-        value: (_positions2 = _positions) !== null && _positions2 !== void 0 ? _positions2 : undefined
-      },
-      originalError: {
-        value: originalError
-      },
-      extensions: {
-        // Coercing falsy values to undefined ensures they will not be included
-        // in JSON.stringify() when not provided.
-        value: (_extensions2 = _extensions) !== null && _extensions2 !== void 0 ? _extensions2 : undefined,
-        // By being enumerable, JSON.stringify will include `path` in the
-        // resulting output. This ensures that the simplest possible GraphQL
-        // service adheres to the spec.
-        enumerable: _extensions != null
-      }
-    }); // Include (non-enumerable) stack trace.
-
-    if (originalError === null || originalError === void 0 ? void 0 : originalError.stack) {
-      Object.defineProperty(_assertThisInitialized(_this), 'stack', {
-        value: originalError.stack,
-        writable: true,
-        configurable: true
-      });
-      return _possibleConstructorReturn(_this);
-    }
-    /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);
-    } else {
-      Object.defineProperty(_assertThisInitialized(_this), 'stack', {
-        value: Error().stack,
-        writable: true,
-        configurable: true
-      });
-    }
-
-    return _this;
-  }
-
-  _createClass(GraphQLError, [{
-    key: "toString",
-    value: function toString() {
-      return printError(this);
-    } // FIXME: workaround to not break chai comparisons, should be remove in v16
-    // $FlowFixMe Flow doesn't support computed properties yet
-
-  }, {
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'Object';
-    }
-  }]);
-
-  return GraphQLError;
-}(_wrapNativeSuper(Error));
-/**
- * Prints a GraphQLError to a string, representing useful location information
- * about the error's position in the source.
- */
-
-export function printError(error) {
-  var output = error.message;
-
-  if (error.nodes) {
-    for (var _i2 = 0, _error$nodes2 = error.nodes; _i2 < _error$nodes2.length; _i2++) {
-      var node = _error$nodes2[_i2];
-
-      if (node.loc) {
-        output += '\n\n' + printLocation(node.loc);
-      }
-    }
-  } else if (error.source && error.locations) {
-    for (var _i4 = 0, _error$locations2 = error.locations; _i4 < _error$locations2.length; _i4++) {
-      var location = _error$locations2[_i4];
-      output += '\n\n' + printSourceLocation(error.source, location);
-    }
-  }
-
-  return output;
-}
diff --git a/node_modules/graphql/error/formatError.d.ts b/node_modules/graphql/error/formatError.d.ts
deleted file mode 100644
index fb3451b..0000000
--- a/node_modules/graphql/error/formatError.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { SourceLocation } from '../language/location';
-
-import { GraphQLError } from './GraphQLError';
-
-/**
- * Given a GraphQLError, format it according to the rules described by the
- * Response Format, Errors section of the GraphQL Specification.
- */
-export function formatError(error: GraphQLError): GraphQLFormattedError;
-
-/**
- * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
- */
-export interface GraphQLFormattedError<
-  TExtensions extends Record<string, any> = Record<string, any>
-> {
-  /**
-   * A short, human-readable summary of the problem that **SHOULD NOT** change
-   * from occurrence to occurrence of the problem, except for purposes of
-   * localization.
-   */
-  readonly message: string;
-  /**
-   * If an error can be associated to a particular point in the requested
-   * GraphQL document, it should contain a list of locations.
-   */
-  readonly locations?: ReadonlyArray<SourceLocation>;
-  /**
-   * If an error can be associated to a particular field in the GraphQL result,
-   * it _must_ contain an entry with the key `path` that details the path of
-   * the response field which experienced the error. This allows clients to
-   * identify whether a null result is intentional or caused by a runtime error.
-   */
-  readonly path?: ReadonlyArray<string | number>;
-  /**
-   * Reserved for implementors to extend the protocol however they see fit,
-   * and hence there are no additional restrictions on its contents.
-   */
-  readonly extensions?: TExtensions;
-}
diff --git a/node_modules/graphql/error/formatError.js b/node_modules/graphql/error/formatError.js
deleted file mode 100644
index 689f468..0000000
--- a/node_modules/graphql/error/formatError.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.formatError = formatError;
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Given a GraphQLError, format it according to the rules described by the
- * Response Format, Errors section of the GraphQL Specification.
- */
-function formatError(error) {
-  var _error$message;
-
-  error || (0, _devAssert.default)(0, 'Received null or undefined error.');
-  var message = (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'An unknown error occurred.';
-  var locations = error.locations;
-  var path = error.path;
-  var extensions = error.extensions;
-  return extensions ? {
-    message: message,
-    locations: locations,
-    path: path,
-    extensions: extensions
-  } : {
-    message: message,
-    locations: locations,
-    path: path
-  };
-}
-/**
- * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
- */
diff --git a/node_modules/graphql/error/formatError.js.flow b/node_modules/graphql/error/formatError.js.flow
deleted file mode 100644
index 8bb4c5b..0000000
--- a/node_modules/graphql/error/formatError.js.flow
+++ /dev/null
@@ -1,52 +0,0 @@
-// @flow strict
-
-import devAssert from '../jsutils/devAssert';
-
-import { type SourceLocation } from '../language/location';
-
-import { type GraphQLError } from './GraphQLError';
-
-/**
- * Given a GraphQLError, format it according to the rules described by the
- * Response Format, Errors section of the GraphQL Specification.
- */
-export function formatError(error: GraphQLError): GraphQLFormattedError {
-  devAssert(error, 'Received null or undefined error.');
-  const message = error.message ?? 'An unknown error occurred.';
-  const locations = error.locations;
-  const path = error.path;
-  const extensions = error.extensions;
-
-  return extensions
-    ? { message, locations, path, extensions }
-    : { message, locations, path };
-}
-
-/**
- * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
- */
-export type GraphQLFormattedError = {|
-  /**
-   * A short, human-readable summary of the problem that **SHOULD NOT** change
-   * from occurrence to occurrence of the problem, except for purposes of
-   * localization.
-   */
-  +message: string,
-  /**
-   * If an error can be associated to a particular point in the requested
-   * GraphQL document, it should contain a list of locations.
-   */
-  +locations: $ReadOnlyArray<SourceLocation> | void,
-  /**
-   * If an error can be associated to a particular field in the GraphQL result,
-   * it _must_ contain an entry with the key `path` that details the path of
-   * the response field which experienced the error. This allows clients to
-   * identify whether a null result is intentional or caused by a runtime error.
-   */
-  +path: $ReadOnlyArray<string | number> | void,
-  /**
-   * Reserved for implementors to extend the protocol however they see fit,
-   * and hence there are no additional restrictions on its contents.
-   */
-  +extensions?: { [key: string]: mixed, ... },
-|};
diff --git a/node_modules/graphql/error/formatError.mjs b/node_modules/graphql/error/formatError.mjs
deleted file mode 100644
index 3f80411..0000000
--- a/node_modules/graphql/error/formatError.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-import devAssert from "../jsutils/devAssert.mjs";
-
-/**
- * Given a GraphQLError, format it according to the rules described by the
- * Response Format, Errors section of the GraphQL Specification.
- */
-export function formatError(error) {
-  var _error$message;
-
-  error || devAssert(0, 'Received null or undefined error.');
-  var message = (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'An unknown error occurred.';
-  var locations = error.locations;
-  var path = error.path;
-  var extensions = error.extensions;
-  return extensions ? {
-    message: message,
-    locations: locations,
-    path: path,
-    extensions: extensions
-  } : {
-    message: message,
-    locations: locations,
-    path: path
-  };
-}
-/**
- * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors
- */
diff --git a/node_modules/graphql/error/index.d.ts b/node_modules/graphql/error/index.d.ts
deleted file mode 100644
index 9373b71..0000000
--- a/node_modules/graphql/error/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export { GraphQLError, printError } from './GraphQLError';
-export { syntaxError } from './syntaxError';
-export { locatedError } from './locatedError';
-export { formatError, GraphQLFormattedError } from './formatError';
diff --git a/node_modules/graphql/error/index.js b/node_modules/graphql/error/index.js
deleted file mode 100644
index e71a994..0000000
--- a/node_modules/graphql/error/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "GraphQLError", {
-  enumerable: true,
-  get: function get() {
-    return _GraphQLError.GraphQLError;
-  }
-});
-Object.defineProperty(exports, "printError", {
-  enumerable: true,
-  get: function get() {
-    return _GraphQLError.printError;
-  }
-});
-Object.defineProperty(exports, "syntaxError", {
-  enumerable: true,
-  get: function get() {
-    return _syntaxError.syntaxError;
-  }
-});
-Object.defineProperty(exports, "locatedError", {
-  enumerable: true,
-  get: function get() {
-    return _locatedError.locatedError;
-  }
-});
-Object.defineProperty(exports, "formatError", {
-  enumerable: true,
-  get: function get() {
-    return _formatError.formatError;
-  }
-});
-
-var _GraphQLError = require("./GraphQLError");
-
-var _syntaxError = require("./syntaxError");
-
-var _locatedError = require("./locatedError");
-
-var _formatError = require("./formatError");
diff --git a/node_modules/graphql/error/index.js.flow b/node_modules/graphql/error/index.js.flow
deleted file mode 100644
index c920bfc..0000000
--- a/node_modules/graphql/error/index.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-export { GraphQLError, printError } from './GraphQLError';
-
-export { syntaxError } from './syntaxError';
-
-export { locatedError } from './locatedError';
-
-export { formatError } from './formatError';
-export type { GraphQLFormattedError } from './formatError';
diff --git a/node_modules/graphql/error/index.mjs b/node_modules/graphql/error/index.mjs
deleted file mode 100644
index 5ac29d1..0000000
--- a/node_modules/graphql/error/index.mjs
+++ /dev/null
@@ -1,4 +0,0 @@
-export { GraphQLError, printError } from "./GraphQLError.mjs";
-export { syntaxError } from "./syntaxError.mjs";
-export { locatedError } from "./locatedError.mjs";
-export { formatError } from "./formatError.mjs";
diff --git a/node_modules/graphql/error/locatedError.d.ts b/node_modules/graphql/error/locatedError.d.ts
deleted file mode 100644
index 5e9d02d..0000000
--- a/node_modules/graphql/error/locatedError.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { ASTNode } from '../language/ast';
-
-import { GraphQLError } from './GraphQLError';
-
-/**
- * Given an arbitrary Error, presumably thrown while attempting to execute a
- * GraphQL operation, produce a new GraphQLError aware of the location in the
- * document responsible for the original Error.
- */
-export function locatedError(
-  originalError: Error | GraphQLError,
-  nodes: ASTNode | ReadonlyArray<ASTNode> | undefined,
-  path?: Maybe<ReadonlyArray<string | number>>,
-): GraphQLError;
diff --git a/node_modules/graphql/error/locatedError.js b/node_modules/graphql/error/locatedError.js
deleted file mode 100644
index 002c010..0000000
--- a/node_modules/graphql/error/locatedError.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.locatedError = locatedError;
-
-var _GraphQLError = require("./GraphQLError");
-
-/**
- * Given an arbitrary Error, presumably thrown while attempting to execute a
- * GraphQL operation, produce a new GraphQLError aware of the location in the
- * document responsible for the original Error.
- */
-function locatedError(originalError, nodes, path) {
-  var _nodes;
-
-  // Note: this uses a brand-check to support GraphQL errors originating from
-  // other contexts.
-  if (Array.isArray(originalError.path)) {
-    return originalError;
-  }
-
-  return new _GraphQLError.GraphQLError(originalError.message, (_nodes = originalError.nodes) !== null && _nodes !== void 0 ? _nodes : nodes, originalError.source, originalError.positions, path, originalError);
-}
diff --git a/node_modules/graphql/error/locatedError.js.flow b/node_modules/graphql/error/locatedError.js.flow
deleted file mode 100644
index ceb5426..0000000
--- a/node_modules/graphql/error/locatedError.js.flow
+++ /dev/null
@@ -1,31 +0,0 @@
-// @flow strict
-
-import { type ASTNode } from '../language/ast';
-
-import { GraphQLError } from './GraphQLError';
-
-/**
- * Given an arbitrary Error, presumably thrown while attempting to execute a
- * GraphQL operation, produce a new GraphQLError aware of the location in the
- * document responsible for the original Error.
- */
-export function locatedError(
-  originalError: Error | GraphQLError,
-  nodes: ASTNode | $ReadOnlyArray<ASTNode> | void | null,
-  path?: ?$ReadOnlyArray<string | number>,
-): GraphQLError {
-  // Note: this uses a brand-check to support GraphQL errors originating from
-  // other contexts.
-  if (Array.isArray(originalError.path)) {
-    return (originalError: any);
-  }
-
-  return new GraphQLError(
-    originalError.message,
-    (originalError: any).nodes ?? nodes,
-    (originalError: any).source,
-    (originalError: any).positions,
-    path,
-    originalError,
-  );
-}
diff --git a/node_modules/graphql/error/locatedError.mjs b/node_modules/graphql/error/locatedError.mjs
deleted file mode 100644
index 737f674..0000000
--- a/node_modules/graphql/error/locatedError.mjs
+++ /dev/null
@@ -1,18 +0,0 @@
-import { GraphQLError } from "./GraphQLError.mjs";
-/**
- * Given an arbitrary Error, presumably thrown while attempting to execute a
- * GraphQL operation, produce a new GraphQLError aware of the location in the
- * document responsible for the original Error.
- */
-
-export function locatedError(originalError, nodes, path) {
-  var _nodes;
-
-  // Note: this uses a brand-check to support GraphQL errors originating from
-  // other contexts.
-  if (Array.isArray(originalError.path)) {
-    return originalError;
-  }
-
-  return new GraphQLError(originalError.message, (_nodes = originalError.nodes) !== null && _nodes !== void 0 ? _nodes : nodes, originalError.source, originalError.positions, path, originalError);
-}
diff --git a/node_modules/graphql/error/syntaxError.d.ts b/node_modules/graphql/error/syntaxError.d.ts
deleted file mode 100644
index 1c5413c..0000000
--- a/node_modules/graphql/error/syntaxError.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Source } from '../language/source';
-
-import { GraphQLError } from './GraphQLError';
-
-/**
- * Produces a GraphQLError representing a syntax error, containing useful
- * descriptive information about the syntax error's position in the source.
- */
-export function syntaxError(
-  source: Source,
-  position: number,
-  description: string,
-): GraphQLError;
diff --git a/node_modules/graphql/error/syntaxError.js b/node_modules/graphql/error/syntaxError.js
deleted file mode 100644
index 6e3ceec..0000000
--- a/node_modules/graphql/error/syntaxError.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.syntaxError = syntaxError;
-
-var _GraphQLError = require("./GraphQLError");
-
-/**
- * Produces a GraphQLError representing a syntax error, containing useful
- * descriptive information about the syntax error's position in the source.
- */
-function syntaxError(source, position, description) {
-  return new _GraphQLError.GraphQLError("Syntax Error: ".concat(description), undefined, source, [position]);
-}
diff --git a/node_modules/graphql/error/syntaxError.js.flow b/node_modules/graphql/error/syntaxError.js.flow
deleted file mode 100644
index c5eeb1d..0000000
--- a/node_modules/graphql/error/syntaxError.js.flow
+++ /dev/null
@@ -1,19 +0,0 @@
-// @flow strict
-
-import { type Source } from '../language/source';
-
-import { GraphQLError } from './GraphQLError';
-
-/**
- * Produces a GraphQLError representing a syntax error, containing useful
- * descriptive information about the syntax error's position in the source.
- */
-export function syntaxError(
-  source: Source,
-  position: number,
-  description: string,
-): GraphQLError {
-  return new GraphQLError(`Syntax Error: ${description}`, undefined, source, [
-    position,
-  ]);
-}
diff --git a/node_modules/graphql/error/syntaxError.mjs b/node_modules/graphql/error/syntaxError.mjs
deleted file mode 100644
index 33aae5a..0000000
--- a/node_modules/graphql/error/syntaxError.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { GraphQLError } from "./GraphQLError.mjs";
-/**
- * Produces a GraphQLError representing a syntax error, containing useful
- * descriptive information about the syntax error's position in the source.
- */
-
-export function syntaxError(source, position, description) {
-  return new GraphQLError("Syntax Error: ".concat(description), undefined, source, [position]);
-}
diff --git a/node_modules/graphql/execution/execute.d.ts b/node_modules/graphql/execution/execute.d.ts
deleted file mode 100644
index 3514e46..0000000
--- a/node_modules/graphql/execution/execute.d.ts
+++ /dev/null
@@ -1,189 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { PromiseOrValue } from '../jsutils/PromiseOrValue';
-import { Path } from '../jsutils/Path';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import {
-  DocumentNode,
-  OperationDefinitionNode,
-  SelectionSetNode,
-  FieldNode,
-  FragmentDefinitionNode,
-} from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-import {
-  GraphQLField,
-  GraphQLFieldResolver,
-  GraphQLResolveInfo,
-  GraphQLTypeResolver,
-  GraphQLObjectType,
-} from '../type/definition';
-
-/**
- * Data that must be available at all points during query execution.
- *
- * Namely, schema of the type system that is currently executing,
- * and the fragments defined in the query document
- */
-export interface ExecutionContext {
-  schema: GraphQLSchema;
-  fragments: { [key: string]: FragmentDefinitionNode };
-  rootValue: any;
-  contextValue: any;
-  operation: OperationDefinitionNode;
-  variableValues: { [key: string]: any };
-  fieldResolver: GraphQLFieldResolver<any, any>;
-  errors: Array<GraphQLError>;
-}
-
-export interface ExecutionResultDataDefault {
-  [key: string]: any;
-}
-
-/**
- * The result of GraphQL execution.
- *
- *   - `errors` is included when any errors occurred as a non-empty array.
- *   - `data` is the result of a successful execution of the query.
- */
-// TS_SPECIFIC: TData and ExecutionResultDataDefault
-export interface ExecutionResult<TData = ExecutionResultDataDefault> {
-  errors?: ReadonlyArray<GraphQLError>;
-  data?: TData | null;
-}
-
-export type ExecutionArgs = {
-  schema: GraphQLSchema;
-  document: DocumentNode;
-  rootValue?: any;
-  contextValue?: any;
-  variableValues?: Maybe<{ [key: string]: any }>;
-  operationName?: Maybe<string>;
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>;
-};
-
-/**
- * Implements the "Evaluating requests" section of the GraphQL specification.
- *
- * Returns either a synchronous ExecutionResult (if all encountered resolvers
- * are synchronous), or a Promise of an ExecutionResult that will eventually be
- * resolved and never rejected.
- *
- * If the arguments to this function do not result in a legal execution context,
- * a GraphQLError will be thrown immediately explaining the invalid input.
- *
- * Accepts either an object with named arguments, or individual arguments.
- */
-export function execute<TData = ExecutionResultDataDefault>(
-  args: ExecutionArgs,
-): PromiseOrValue<ExecutionResult<TData>>;
-export function execute<TData = ExecutionResultDataDefault>(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: any,
-  contextValue?: any,
-  variableValues?: Maybe<{ [key: string]: any }>,
-  operationName?: Maybe<string>,
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
-): PromiseOrValue<ExecutionResult<TData>>;
-
-/**
- * Essential assertions before executing to provide developer feedback for
- * improper use of the GraphQL library.
- */
-export function assertValidExecutionArguments(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rawVariableValues: Maybe<{ [key: string]: any }>,
-): void;
-
-/**
- * Constructs a ExecutionContext object from the arguments passed to
- * execute, which we will pass throughout the other execution methods.
- *
- * Throws a GraphQLError if a valid execution context cannot be created.
- */
-export function buildExecutionContext(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue: any,
-  contextValue: any,
-  rawVariableValues: Maybe<{ [key: string]: any }>,
-  operationName: Maybe<string>,
-  fieldResolver: Maybe<GraphQLFieldResolver<any, any>>,
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
-): ReadonlyArray<GraphQLError> | ExecutionContext;
-
-/**
- * Given a selectionSet, adds all of the fields in that selection to
- * the passed in map of fields, and returns it at the end.
- *
- * CollectFields requires the "runtime type" of an object. For a field which
- * returns an Interface or Union type, the "runtime type" will be the actual
- * Object type returned by that field.
- */
-export function collectFields(
-  exeContext: ExecutionContext,
-  runtimeType: GraphQLObjectType,
-  selectionSet: SelectionSetNode,
-  fields: { [key: string]: Array<FieldNode> },
-  visitedFragmentNames: { [key: string]: boolean },
-): { [key: string]: Array<FieldNode> };
-
-export function buildResolveInfo(
-  exeContext: ExecutionContext,
-  fieldDef: GraphQLField<any, any>,
-  fieldNodes: ReadonlyArray<FieldNode>,
-  parentType: GraphQLObjectType,
-  path: Path,
-): GraphQLResolveInfo;
-
-// Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
-// function. Returns the result of resolveFn or the abrupt-return Error object.
-// TS_SPECIFIC: TSource
-export function resolveFieldValueOrError<TSource>(
-  exeContext: ExecutionContext,
-  fieldDef: GraphQLField<TSource, any>,
-  fieldNodes: ReadonlyArray<FieldNode>,
-  resolveFn: GraphQLFieldResolver<TSource, any>,
-  source: TSource,
-  info: GraphQLResolveInfo,
-): Error | any;
-
-/**
- * If a resolveType function is not given, then a default resolve behavior is
- * used which attempts two strategies:
- *
- * First, See if the provided value has a `__typename` field defined, if so, use
- * that value as name of the resolved type.
- *
- * Otherwise, test each possible type for the abstract type by calling
- * isTypeOf for the object being coerced, returning the first type that matches.
- */
-export const defaultTypeResolver: GraphQLTypeResolver<any, any>;
-
-/**
- * If a resolve function is not given, then a default resolve behavior is used
- * which takes the property of the source object of the same name as the field
- * and returns it as the result, or if it's a function, returns the result
- * of calling that function while passing along args and context.
- */
-export const defaultFieldResolver: GraphQLFieldResolver<any, any>;
-
-/**
- * This method looks up the field on the given type definition.
- * It has special casing for the two introspection fields, __schema
- * and __typename. __typename is special because it can always be
- * queried as a field, even in situations where no other fields
- * are allowed, like on a Union. __schema could get automatically
- * added to the query type, but that would require mutating type
- * definitions, which would cause issues.
- */
-export function getFieldDef(
-  schema: GraphQLSchema,
-  parentType: GraphQLObjectType,
-  fieldName: string,
-): Maybe<GraphQLField<any, any>>;
diff --git a/node_modules/graphql/execution/execute.js b/node_modules/graphql/execution/execute.js
deleted file mode 100644
index 859adbe..0000000
--- a/node_modules/graphql/execution/execute.js
+++ /dev/null
@@ -1,851 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.execute = execute;
-exports.assertValidExecutionArguments = assertValidExecutionArguments;
-exports.buildExecutionContext = buildExecutionContext;
-exports.collectFields = collectFields;
-exports.buildResolveInfo = buildResolveInfo;
-exports.resolveFieldValueOrError = resolveFieldValueOrError;
-exports.getFieldDef = getFieldDef;
-exports.defaultFieldResolver = exports.defaultTypeResolver = void 0;
-
-var _arrayFrom = _interopRequireDefault(require("../polyfills/arrayFrom"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _memoize = _interopRequireDefault(require("../jsutils/memoize3"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _isPromise = _interopRequireDefault(require("../jsutils/isPromise"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
-
-var _promiseReduce = _interopRequireDefault(require("../jsutils/promiseReduce"));
-
-var _promiseForObject = _interopRequireDefault(require("../jsutils/promiseForObject"));
-
-var _Path = require("../jsutils/Path");
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _locatedError = require("../error/locatedError");
-
-var _kinds = require("../language/kinds");
-
-var _validate = require("../type/validate");
-
-var _introspection = require("../type/introspection");
-
-var _directives = require("../type/directives");
-
-var _definition = require("../type/definition");
-
-var _typeFromAST = require("../utilities/typeFromAST");
-
-var _getOperationRootType = require("../utilities/getOperationRootType");
-
-var _values = require("./values");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({
-    schema: argsOrSchema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  });
-}
-
-function executeImpl(args) {
-  var schema = args.schema,
-      document = args.document,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      typeResolver = args.typeResolver; // If arguments are missing or incorrect, throw an error.
-
-  assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
-  // a "Response" with only errors is returned.
-
-  var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.
-
-  if (Array.isArray(exeContext)) {
-    return {
-      errors: exeContext
-    };
-  } // Return a Promise that will eventually resolve to the data described by
-  // The "Response" section of the GraphQL specification.
-  //
-  // If errors are encountered while executing a GraphQL field, only that
-  // field and its descendants will be omitted, and sibling fields will still
-  // be executed. An execution which encounters errors will still result in a
-  // resolved Promise.
-
-
-  var data = executeOperation(exeContext, exeContext.operation, rootValue);
-  return buildResponse(exeContext, data);
-}
-/**
- * Given a completed execution context and data, build the { errors, data }
- * response defined by the "Response" section of the GraphQL specification.
- */
-
-
-function buildResponse(exeContext, data) {
-  if ((0, _isPromise.default)(data)) {
-    return data.then(function (resolved) {
-      return buildResponse(exeContext, resolved);
-    });
-  }
-
-  return exeContext.errors.length === 0 ? {
-    data: data
-  } : {
-    errors: exeContext.errors,
-    data: data
-  };
-}
-/**
- * Essential assertions before executing to provide developer feedback for
- * improper use of the GraphQL library.
- *
- * @internal
- */
-
-
-function assertValidExecutionArguments(schema, document, rawVariableValues) {
-  document || (0, _devAssert.default)(0, 'Must provide document.'); // If the schema used for execution is invalid, throw an error.
-
-  (0, _validate.assertValidSchema)(schema); // Variables, if provided, must be an object.
-
-  rawVariableValues == null || (0, _isObjectLike.default)(rawVariableValues) || (0, _devAssert.default)(0, 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.');
-}
-/**
- * Constructs a ExecutionContext object from the arguments passed to
- * execute, which we will pass throughout the other execution methods.
- *
- * Throws a GraphQLError if a valid execution context cannot be created.
- *
- * @internal
- */
-
-
-function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {
-  var _definition$name, _operation$variableDe;
-
-  var operation;
-  var fragments = Object.create(null);
-
-  for (var _i2 = 0, _document$definitions2 = document.definitions; _i2 < _document$definitions2.length; _i2++) {
-    var definition = _document$definitions2[_i2];
-
-    switch (definition.kind) {
-      case _kinds.Kind.OPERATION_DEFINITION:
-        if (operationName == null) {
-          if (operation !== undefined) {
-            return [new _GraphQLError.GraphQLError('Must provide operation name if query contains multiple operations.')];
-          }
-
-          operation = definition;
-        } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {
-          operation = definition;
-        }
-
-        break;
-
-      case _kinds.Kind.FRAGMENT_DEFINITION:
-        fragments[definition.name.value] = definition;
-        break;
-    }
-  }
-
-  if (!operation) {
-    if (operationName != null) {
-      return [new _GraphQLError.GraphQLError("Unknown operation named \"".concat(operationName, "\"."))];
-    }
-
-    return [new _GraphQLError.GraphQLError('Must provide an operation.')];
-  }
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-  var variableDefinitions = (_operation$variableDe = operation.variableDefinitions) !== null && _operation$variableDe !== void 0 ? _operation$variableDe : [];
-  var coercedVariableValues = (0, _values.getVariableValues)(schema, variableDefinitions, rawVariableValues !== null && rawVariableValues !== void 0 ? rawVariableValues : {}, {
-    maxErrors: 50
-  });
-
-  if (coercedVariableValues.errors) {
-    return coercedVariableValues.errors;
-  }
-
-  return {
-    schema: schema,
-    fragments: fragments,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    operation: operation,
-    variableValues: coercedVariableValues.coerced,
-    fieldResolver: fieldResolver !== null && fieldResolver !== void 0 ? fieldResolver : defaultFieldResolver,
-    typeResolver: typeResolver !== null && typeResolver !== void 0 ? typeResolver : defaultTypeResolver,
-    errors: []
-  };
-}
-/**
- * Implements the "Evaluating operations" section of the spec.
- */
-
-
-function executeOperation(exeContext, operation, rootValue) {
-  var type = (0, _getOperationRootType.getOperationRootType)(exeContext.schema, operation);
-  var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
-  var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,
-  // at which point we still log the error and null the parent field, which
-  // in this case is the entire response.
-  //
-  // Similar to completeValueCatchingError.
-
-  try {
-    var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);
-
-    if ((0, _isPromise.default)(result)) {
-      return result.then(undefined, function (error) {
-        exeContext.errors.push(error);
-        return Promise.resolve(null);
-      });
-    }
-
-    return result;
-  } catch (error) {
-    exeContext.errors.push(error);
-    return null;
-  }
-}
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "write" mode.
- */
-
-
-function executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {
-  return (0, _promiseReduce.default)(Object.keys(fields), function (results, responseName) {
-    var fieldNodes = fields[responseName];
-    var fieldPath = (0, _Path.addPath)(path, responseName);
-    var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
-
-    if (result === undefined) {
-      return results;
-    }
-
-    if ((0, _isPromise.default)(result)) {
-      return result.then(function (resolvedResult) {
-        results[responseName] = resolvedResult;
-        return results;
-      });
-    }
-
-    results[responseName] = result;
-    return results;
-  }, Object.create(null));
-}
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "read" mode.
- */
-
-
-function executeFields(exeContext, parentType, sourceValue, path, fields) {
-  var results = Object.create(null);
-  var containsPromise = false;
-
-  for (var _i4 = 0, _Object$keys2 = Object.keys(fields); _i4 < _Object$keys2.length; _i4++) {
-    var responseName = _Object$keys2[_i4];
-    var fieldNodes = fields[responseName];
-    var fieldPath = (0, _Path.addPath)(path, responseName);
-    var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
-
-    if (result !== undefined) {
-      results[responseName] = result;
-
-      if (!containsPromise && (0, _isPromise.default)(result)) {
-        containsPromise = true;
-      }
-    }
-  } // If there are no promises, we can just return the object
-
-
-  if (!containsPromise) {
-    return results;
-  } // Otherwise, results is a map from field name to the result of resolving that
-  // field, which is possibly a promise. Return a promise that will return this
-  // same map, but with any promises replaced with the values they resolved to.
-
-
-  return (0, _promiseForObject.default)(results);
-}
-/**
- * Given a selectionSet, adds all of the fields in that selection to
- * the passed in map of fields, and returns it at the end.
- *
- * CollectFields requires the "runtime type" of an object. For a field which
- * returns an Interface or Union type, the "runtime type" will be the actual
- * Object type returned by that field.
- *
- * @internal
- */
-
-
-function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {
-  for (var _i6 = 0, _selectionSet$selecti2 = selectionSet.selections; _i6 < _selectionSet$selecti2.length; _i6++) {
-    var selection = _selectionSet$selecti2[_i6];
-
-    switch (selection.kind) {
-      case _kinds.Kind.FIELD:
-        {
-          if (!shouldIncludeNode(exeContext, selection)) {
-            continue;
-          }
-
-          var name = getFieldEntryKey(selection);
-
-          if (!fields[name]) {
-            fields[name] = [];
-          }
-
-          fields[name].push(selection);
-          break;
-        }
-
-      case _kinds.Kind.INLINE_FRAGMENT:
-        {
-          if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
-            continue;
-          }
-
-          collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
-          break;
-        }
-
-      case _kinds.Kind.FRAGMENT_SPREAD:
-        {
-          var fragName = selection.name.value;
-
-          if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
-            continue;
-          }
-
-          visitedFragmentNames[fragName] = true;
-          var fragment = exeContext.fragments[fragName];
-
-          if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
-            continue;
-          }
-
-          collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
-          break;
-        }
-    }
-  }
-
-  return fields;
-}
-/**
- * Determines if a field should be included based on the @include and @skip
- * directives, where @skip has higher precedence than @include.
- */
-
-
-function shouldIncludeNode(exeContext, node) {
-  var skip = (0, _values.getDirectiveValues)(_directives.GraphQLSkipDirective, node, exeContext.variableValues);
-
-  if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {
-    return false;
-  }
-
-  var include = (0, _values.getDirectiveValues)(_directives.GraphQLIncludeDirective, node, exeContext.variableValues);
-
-  if ((include === null || include === void 0 ? void 0 : include.if) === false) {
-    return false;
-  }
-
-  return true;
-}
-/**
- * Determines if a fragment is applicable to the given type.
- */
-
-
-function doesFragmentConditionMatch(exeContext, fragment, type) {
-  var typeConditionNode = fragment.typeCondition;
-
-  if (!typeConditionNode) {
-    return true;
-  }
-
-  var conditionalType = (0, _typeFromAST.typeFromAST)(exeContext.schema, typeConditionNode);
-
-  if (conditionalType === type) {
-    return true;
-  }
-
-  if ((0, _definition.isAbstractType)(conditionalType)) {
-    return exeContext.schema.isSubType(conditionalType, type);
-  }
-
-  return false;
-}
-/**
- * Implements the logic to compute the key of a given field's entry
- */
-
-
-function getFieldEntryKey(node) {
-  return node.alias ? node.alias.value : node.name.value;
-}
-/**
- * Resolves the field on the given source object. In particular, this
- * figures out the value that the field returns by calling its resolve function,
- * then calls completeValue to complete promises, serialize scalars, or execute
- * the sub-selection-set for objects.
- */
-
-
-function resolveField(exeContext, parentType, source, fieldNodes, path) {
-  var _fieldDef$resolve;
-
-  var fieldNode = fieldNodes[0];
-  var fieldName = fieldNode.name.value;
-  var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);
-
-  if (!fieldDef) {
-    return;
-  }
-
-  var resolveFn = (_fieldDef$resolve = fieldDef.resolve) !== null && _fieldDef$resolve !== void 0 ? _fieldDef$resolve : exeContext.fieldResolver;
-  var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal
-  // or abrupt (error).
-
-  var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info);
-  return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result);
-}
-/**
- * @internal
- */
-
-
-function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
-  // The resolve function's optional fourth argument is a collection of
-  // information about the current execution state.
-  return {
-    fieldName: fieldDef.name,
-    fieldNodes: fieldNodes,
-    returnType: fieldDef.type,
-    parentType: parentType,
-    path: path,
-    schema: exeContext.schema,
-    fragments: exeContext.fragments,
-    rootValue: exeContext.rootValue,
-    operation: exeContext.operation,
-    variableValues: exeContext.variableValues
-  };
-}
-/**
- * Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
- * function. Returns the result of resolveFn or the abrupt-return Error object.
- *
- * @internal
- */
-
-
-function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) {
-  try {
-    // Build a JS object of arguments from the field.arguments AST, using the
-    // variables scope to fulfill any variable references.
-    // TODO: find a way to memoize, in case this field is within a List type.
-    var args = (0, _values.getArgumentValues)(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that
-    // is provided to every resolve function within an execution. It is commonly
-    // used to represent an authenticated user, or request-specific caches.
-
-    var _contextValue = exeContext.contextValue;
-    var result = resolveFn(source, args, _contextValue, info);
-    return (0, _isPromise.default)(result) ? result.then(undefined, asErrorInstance) : result;
-  } catch (error) {
-    return asErrorInstance(error);
-  }
-} // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a
-// consistent Error interface.
-
-
-function asErrorInstance(error) {
-  if (error instanceof Error) {
-    return error;
-  }
-
-  return new Error('Unexpected error value: ' + (0, _inspect.default)(error));
-} // This is a small wrapper around completeValue which detects and logs errors
-// in the execution context.
-
-
-function completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) {
-  try {
-    var completed;
-
-    if ((0, _isPromise.default)(result)) {
-      completed = result.then(function (resolved) {
-        return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);
-      });
-    } else {
-      completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);
-    }
-
-    if ((0, _isPromise.default)(completed)) {
-      // Note: we don't rely on a `catch` method, but we do expect "thenable"
-      // to take a second callback for the error case.
-      return completed.then(undefined, function (error) {
-        return handleFieldError(error, fieldNodes, path, returnType, exeContext);
-      });
-    }
-
-    return completed;
-  } catch (error) {
-    return handleFieldError(error, fieldNodes, path, returnType, exeContext);
-  }
-}
-
-function handleFieldError(rawError, fieldNodes, path, returnType, exeContext) {
-  var error = (0, _locatedError.locatedError)(asErrorInstance(rawError), fieldNodes, (0, _Path.pathToArray)(path)); // If the field type is non-nullable, then it is resolved without any
-  // protection from errors, however it still properly locates the error.
-
-  if ((0, _definition.isNonNullType)(returnType)) {
-    throw error;
-  } // Otherwise, error protection is applied, logging the error and resolving
-  // a null value for this field if one is encountered.
-
-
-  exeContext.errors.push(error);
-  return null;
-}
-/**
- * Implements the instructions for completeValue as defined in the
- * "Field entries" section of the spec.
- *
- * If the field type is Non-Null, then this recursively completes the value
- * for the inner type. It throws a field error if that completion returns null,
- * as per the "Nullability" section of the spec.
- *
- * If the field type is a List, then this recursively completes the value
- * for the inner type on each item in the list.
- *
- * If the field type is a Scalar or Enum, ensures the completed value is a legal
- * value of the type by calling the `serialize` method of GraphQL type
- * definition.
- *
- * If the field is an abstract type, determine the runtime type of the value
- * and then complete based on that type
- *
- * Otherwise, the field type expects a sub-selection set, and will complete the
- * value by evaluating all sub-selections.
- */
-
-
-function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
-  // If result is an Error, throw a located error.
-  if (result instanceof Error) {
-    throw result;
-  } // If field type is NonNull, complete for inner type, and throw field error
-  // if result is null.
-
-
-  if ((0, _definition.isNonNullType)(returnType)) {
-    var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);
-
-    if (completed === null) {
-      throw new Error("Cannot return null for non-nullable field ".concat(info.parentType.name, ".").concat(info.fieldName, "."));
-    }
-
-    return completed;
-  } // If result value is null or undefined then return null.
-
-
-  if (result == null) {
-    return null;
-  } // If field type is List, complete each item in the list with the inner type
-
-
-  if ((0, _definition.isListType)(returnType)) {
-    return completeListValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // If field type is a leaf type, Scalar or Enum, serialize to a valid value,
-  // returning null if serialization is not possible.
-
-
-  if ((0, _definition.isLeafType)(returnType)) {
-    return completeLeafValue(returnType, result);
-  } // If field type is an abstract type, Interface or Union, determine the
-  // runtime Object type and complete for that type.
-
-
-  if ((0, _definition.isAbstractType)(returnType)) {
-    return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // If field type is Object, execute and complete all sub-selections.
-
-
-  /* istanbul ignore else */
-  if ((0, _definition.isObjectType)(returnType)) {
-    return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // Not reachable. All possible output types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Cannot complete value of unexpected output type: ' + (0, _inspect.default)(returnType));
-}
-/**
- * Complete a list value by completing each item in the list with the
- * inner type
- */
-
-
-function completeListValue(exeContext, returnType, fieldNodes, info, path, result) {
-  if (!(0, _isCollection.default)(result)) {
-    throw new _GraphQLError.GraphQLError("Expected Iterable, but did not find one for field \"".concat(info.parentType.name, ".").concat(info.fieldName, "\"."));
-  } // This is specified as a simple map, however we're optimizing the path
-  // where the list contains no Promises by avoiding creating another Promise.
-
-
-  var itemType = returnType.ofType;
-  var containsPromise = false;
-  var completedResults = (0, _arrayFrom.default)(result, function (item, index) {
-    // No need to modify the info object containing the path,
-    // since from here on it is not ever accessed by resolver functions.
-    var fieldPath = (0, _Path.addPath)(path, index);
-    var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item);
-
-    if (!containsPromise && (0, _isPromise.default)(completedItem)) {
-      containsPromise = true;
-    }
-
-    return completedItem;
-  });
-  return containsPromise ? Promise.all(completedResults) : completedResults;
-}
-/**
- * Complete a Scalar or Enum by serializing to a valid value, returning
- * null if serialization is not possible.
- */
-
-
-function completeLeafValue(returnType, result) {
-  var serializedResult = returnType.serialize(result);
-
-  if (serializedResult === undefined) {
-    throw new Error("Expected a value of type \"".concat((0, _inspect.default)(returnType), "\" but ") + "received: ".concat((0, _inspect.default)(result)));
-  }
-
-  return serializedResult;
-}
-/**
- * Complete a value of an abstract type by determining the runtime object type
- * of that value, then complete the value for that type.
- */
-
-
-function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {
-  var _returnType$resolveTy;
-
-  var resolveTypeFn = (_returnType$resolveTy = returnType.resolveType) !== null && _returnType$resolveTy !== void 0 ? _returnType$resolveTy : exeContext.typeResolver;
-  var contextValue = exeContext.contextValue;
-  var runtimeType = resolveTypeFn(result, contextValue, info, returnType);
-
-  if ((0, _isPromise.default)(runtimeType)) {
-    return runtimeType.then(function (resolvedRuntimeType) {
-      return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
-    });
-  }
-
-  return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
-}
-
-function ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {
-  var runtimeType = typeof runtimeTypeOrName === 'string' ? exeContext.schema.getType(runtimeTypeOrName) : runtimeTypeOrName;
-
-  if (!(0, _definition.isObjectType)(runtimeType)) {
-    throw new _GraphQLError.GraphQLError("Abstract type \"".concat(returnType.name, "\" must resolve to an Object type at runtime for field \"").concat(info.parentType.name, ".").concat(info.fieldName, "\" with ") + "value ".concat((0, _inspect.default)(result), ", received \"").concat((0, _inspect.default)(runtimeType), "\". ") + "Either the \"".concat(returnType.name, "\" type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function."), fieldNodes);
-  }
-
-  if (!exeContext.schema.isSubType(returnType, runtimeType)) {
-    throw new _GraphQLError.GraphQLError("Runtime Object type \"".concat(runtimeType.name, "\" is not a possible type for \"").concat(returnType.name, "\"."), fieldNodes);
-  }
-
-  return runtimeType;
-}
-/**
- * Complete an Object value by executing all sub-selections.
- */
-
-
-function completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {
-  // If there is an isTypeOf predicate function, call it with the
-  // current result. If isTypeOf returns false, then raise an error rather
-  // than continuing execution.
-  if (returnType.isTypeOf) {
-    var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);
-
-    if ((0, _isPromise.default)(isTypeOf)) {
-      return isTypeOf.then(function (resolvedIsTypeOf) {
-        if (!resolvedIsTypeOf) {
-          throw invalidReturnTypeError(returnType, result, fieldNodes);
-        }
-
-        return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);
-      });
-    }
-
-    if (!isTypeOf) {
-      throw invalidReturnTypeError(returnType, result, fieldNodes);
-    }
-  }
-
-  return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);
-}
-
-function invalidReturnTypeError(returnType, result, fieldNodes) {
-  return new _GraphQLError.GraphQLError("Expected value of type \"".concat(returnType.name, "\" but got: ").concat((0, _inspect.default)(result), "."), fieldNodes);
-}
-
-function collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) {
-  // Collect sub-fields to execute to complete this value.
-  var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);
-  return executeFields(exeContext, returnType, result, path, subFieldNodes);
-}
-/**
- * A memoized collection of relevant subfields with regard to the return
- * type. Memoizing ensures the subfields are not repeatedly calculated, which
- * saves overhead when resolving lists of values.
- */
-
-
-var collectSubfields = (0, _memoize.default)(_collectSubfields);
-
-function _collectSubfields(exeContext, returnType, fieldNodes) {
-  var subFieldNodes = Object.create(null);
-  var visitedFragmentNames = Object.create(null);
-
-  for (var _i8 = 0; _i8 < fieldNodes.length; _i8++) {
-    var node = fieldNodes[_i8];
-
-    if (node.selectionSet) {
-      subFieldNodes = collectFields(exeContext, returnType, node.selectionSet, subFieldNodes, visitedFragmentNames);
-    }
-  }
-
-  return subFieldNodes;
-}
-/**
- * If a resolveType function is not given, then a default resolve behavior is
- * used which attempts two strategies:
- *
- * First, See if the provided value has a `__typename` field defined, if so, use
- * that value as name of the resolved type.
- *
- * Otherwise, test each possible type for the abstract type by calling
- * isTypeOf for the object being coerced, returning the first type that matches.
- */
-
-
-var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {
-  // First, look for `__typename`.
-  if ((0, _isObjectLike.default)(value) && typeof value.__typename === 'string') {
-    return value.__typename;
-  } // Otherwise, test each possible type.
-
-
-  var possibleTypes = info.schema.getPossibleTypes(abstractType);
-  var promisedIsTypeOfResults = [];
-
-  for (var i = 0; i < possibleTypes.length; i++) {
-    var type = possibleTypes[i];
-
-    if (type.isTypeOf) {
-      var isTypeOfResult = type.isTypeOf(value, contextValue, info);
-
-      if ((0, _isPromise.default)(isTypeOfResult)) {
-        promisedIsTypeOfResults[i] = isTypeOfResult;
-      } else if (isTypeOfResult) {
-        return type;
-      }
-    }
-  }
-
-  if (promisedIsTypeOfResults.length) {
-    return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {
-      for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {
-        if (isTypeOfResults[_i9]) {
-          return possibleTypes[_i9];
-        }
-      }
-    });
-  }
-};
-/**
- * If a resolve function is not given, then a default resolve behavior is used
- * which takes the property of the source object of the same name as the field
- * and returns it as the result, or if it's a function, returns the result
- * of calling that function while passing along args and context value.
- */
-
-
-exports.defaultTypeResolver = defaultTypeResolver;
-
-var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {
-  // ensure source is a value for which property access is acceptable.
-  if ((0, _isObjectLike.default)(source) || typeof source === 'function') {
-    var property = source[info.fieldName];
-
-    if (typeof property === 'function') {
-      return source[info.fieldName](args, contextValue, info);
-    }
-
-    return property;
-  }
-};
-/**
- * This method looks up the field on the given type definition.
- * It has special casing for the two introspection fields, __schema
- * and __typename. __typename is special because it can always be
- * queried as a field, even in situations where no other fields
- * are allowed, like on a Union. __schema could get automatically
- * added to the query type, but that would require mutating type
- * definitions, which would cause issues.
- *
- * @internal
- */
-
-
-exports.defaultFieldResolver = defaultFieldResolver;
-
-function getFieldDef(schema, parentType, fieldName) {
-  if (fieldName === _introspection.SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return _introspection.SchemaMetaFieldDef;
-  } else if (fieldName === _introspection.TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return _introspection.TypeMetaFieldDef;
-  } else if (fieldName === _introspection.TypeNameMetaFieldDef.name) {
-    return _introspection.TypeNameMetaFieldDef;
-  }
-
-  return parentType.getFields()[fieldName];
-}
diff --git a/node_modules/graphql/execution/execute.js.flow b/node_modules/graphql/execution/execute.js.flow
deleted file mode 100644
index 970e644..0000000
--- a/node_modules/graphql/execution/execute.js.flow
+++ /dev/null
@@ -1,1231 +0,0 @@
-// @flow strict
-
-import arrayFrom from '../polyfills/arrayFrom';
-
-import inspect from '../jsutils/inspect';
-import memoize3 from '../jsutils/memoize3';
-import invariant from '../jsutils/invariant';
-import devAssert from '../jsutils/devAssert';
-import isPromise from '../jsutils/isPromise';
-import { type ObjMap } from '../jsutils/ObjMap';
-import isObjectLike from '../jsutils/isObjectLike';
-import isCollection from '../jsutils/isCollection';
-import promiseReduce from '../jsutils/promiseReduce';
-import promiseForObject from '../jsutils/promiseForObject';
-import { type PromiseOrValue } from '../jsutils/PromiseOrValue';
-import { type Path, addPath, pathToArray } from '../jsutils/Path';
-
-import { GraphQLError } from '../error/GraphQLError';
-import { locatedError } from '../error/locatedError';
-
-import { Kind } from '../language/kinds';
-import {
-  type DocumentNode,
-  type OperationDefinitionNode,
-  type SelectionSetNode,
-  type FieldNode,
-  type FragmentSpreadNode,
-  type InlineFragmentNode,
-  type FragmentDefinitionNode,
-} from '../language/ast';
-
-import { assertValidSchema } from '../type/validate';
-import { type GraphQLSchema } from '../type/schema';
-import {
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-} from '../type/introspection';
-import {
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-} from '../type/directives';
-import {
-  type GraphQLObjectType,
-  type GraphQLOutputType,
-  type GraphQLLeafType,
-  type GraphQLAbstractType,
-  type GraphQLField,
-  type GraphQLFieldResolver,
-  type GraphQLResolveInfo,
-  type GraphQLTypeResolver,
-  type GraphQLList,
-  isObjectType,
-  isAbstractType,
-  isLeafType,
-  isListType,
-  isNonNullType,
-} from '../type/definition';
-
-import { typeFromAST } from '../utilities/typeFromAST';
-import { getOperationRootType } from '../utilities/getOperationRootType';
-
-import {
-  getVariableValues,
-  getArgumentValues,
-  getDirectiveValues,
-} from './values';
-
-/**
- * Terminology
- *
- * "Definitions" are the generic name for top-level statements in the document.
- * Examples of this include:
- * 1) Operations (such as a query)
- * 2) Fragments
- *
- * "Operations" are a generic name for requests in the document.
- * Examples of this include:
- * 1) query,
- * 2) mutation
- *
- * "Selections" are the definitions that can appear legally and at
- * single level of the query. These include:
- * 1) field references e.g "a"
- * 2) fragment "spreads" e.g. "...c"
- * 3) inline fragment "spreads" e.g. "...on Type { a }"
- */
-
-/**
- * Data that must be available at all points during query execution.
- *
- * Namely, schema of the type system that is currently executing,
- * and the fragments defined in the query document
- */
-export type ExecutionContext = {|
-  schema: GraphQLSchema,
-  fragments: ObjMap<FragmentDefinitionNode>,
-  rootValue: mixed,
-  contextValue: mixed,
-  operation: OperationDefinitionNode,
-  variableValues: { [variable: string]: mixed, ... },
-  fieldResolver: GraphQLFieldResolver<any, any>,
-  typeResolver: GraphQLTypeResolver<any, any>,
-  errors: Array<GraphQLError>,
-|};
-
-/**
- * The result of GraphQL execution.
- *
- *   - `errors` is included when any errors occurred as a non-empty array.
- *   - `data` is the result of a successful execution of the query.
- */
-export type ExecutionResult = {|
-  errors?: $ReadOnlyArray<GraphQLError>,
-  data?: ObjMap<mixed> | null,
-|};
-
-export type ExecutionArgs = {|
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  typeResolver?: ?GraphQLTypeResolver<any, any>,
-|};
-
-/**
- * Implements the "Evaluating requests" section of the GraphQL specification.
- *
- * Returns either a synchronous ExecutionResult (if all encountered resolvers
- * are synchronous), or a Promise of an ExecutionResult that will eventually be
- * resolved and never rejected.
- *
- * If the arguments to this function do not result in a legal execution context,
- * a GraphQLError will be thrown immediately explaining the invalid input.
- *
- * Accepts either an object with named arguments, or individual arguments.
- */
-declare function execute(
-  ExecutionArgs,
-  ..._: []
-): PromiseOrValue<ExecutionResult>;
-/* eslint-disable no-redeclare */
-declare function execute(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  typeResolver?: ?GraphQLTypeResolver<any, any>,
-): PromiseOrValue<ExecutionResult>;
-export function execute(
-  argsOrSchema,
-  document,
-  rootValue,
-  contextValue,
-  variableValues,
-  operationName,
-  fieldResolver,
-  typeResolver,
-) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1
-    ? executeImpl(argsOrSchema)
-    : executeImpl({
-        schema: argsOrSchema,
-        document,
-        rootValue,
-        contextValue,
-        variableValues,
-        operationName,
-        fieldResolver,
-        typeResolver,
-      });
-}
-
-function executeImpl(args: ExecutionArgs): PromiseOrValue<ExecutionResult> {
-  const {
-    schema,
-    document,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    fieldResolver,
-    typeResolver,
-  } = args;
-
-  // If arguments are missing or incorrect, throw an error.
-  assertValidExecutionArguments(schema, document, variableValues);
-
-  // If a valid execution context cannot be created due to incorrect arguments,
-  // a "Response" with only errors is returned.
-  const exeContext = buildExecutionContext(
-    schema,
-    document,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    fieldResolver,
-    typeResolver,
-  );
-
-  // Return early errors if execution context failed.
-  if (Array.isArray(exeContext)) {
-    return { errors: exeContext };
-  }
-
-  // Return a Promise that will eventually resolve to the data described by
-  // The "Response" section of the GraphQL specification.
-  //
-  // If errors are encountered while executing a GraphQL field, only that
-  // field and its descendants will be omitted, and sibling fields will still
-  // be executed. An execution which encounters errors will still result in a
-  // resolved Promise.
-  const data = executeOperation(exeContext, exeContext.operation, rootValue);
-  return buildResponse(exeContext, data);
-}
-
-/**
- * Given a completed execution context and data, build the { errors, data }
- * response defined by the "Response" section of the GraphQL specification.
- */
-function buildResponse(
-  exeContext: ExecutionContext,
-  data: PromiseOrValue<ObjMap<mixed> | null>,
-): PromiseOrValue<ExecutionResult> {
-  if (isPromise(data)) {
-    return data.then(resolved => buildResponse(exeContext, resolved));
-  }
-  return exeContext.errors.length === 0
-    ? { data }
-    : { errors: exeContext.errors, data };
-}
-
-/**
- * Essential assertions before executing to provide developer feedback for
- * improper use of the GraphQL library.
- *
- * @internal
- */
-export function assertValidExecutionArguments(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rawVariableValues: ?{ +[variable: string]: mixed, ... },
-): void {
-  devAssert(document, 'Must provide document.');
-
-  // If the schema used for execution is invalid, throw an error.
-  assertValidSchema(schema);
-
-  // Variables, if provided, must be an object.
-  devAssert(
-    rawVariableValues == null || isObjectLike(rawVariableValues),
-    'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.',
-  );
-}
-
-/**
- * Constructs a ExecutionContext object from the arguments passed to
- * execute, which we will pass throughout the other execution methods.
- *
- * Throws a GraphQLError if a valid execution context cannot be created.
- *
- * @internal
- */
-export function buildExecutionContext(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue: mixed,
-  contextValue: mixed,
-  rawVariableValues: ?{ +[variable: string]: mixed, ... },
-  operationName: ?string,
-  fieldResolver: ?GraphQLFieldResolver<mixed, mixed>,
-  typeResolver?: ?GraphQLTypeResolver<mixed, mixed>,
-): $ReadOnlyArray<GraphQLError> | ExecutionContext {
-  let operation: OperationDefinitionNode | void;
-  const fragments: ObjMap<FragmentDefinitionNode> = Object.create(null);
-  for (const definition of document.definitions) {
-    switch (definition.kind) {
-      case Kind.OPERATION_DEFINITION:
-        if (operationName == null) {
-          if (operation !== undefined) {
-            return [
-              new GraphQLError(
-                'Must provide operation name if query contains multiple operations.',
-              ),
-            ];
-          }
-          operation = definition;
-        } else if (definition.name?.value === operationName) {
-          operation = definition;
-        }
-        break;
-      case Kind.FRAGMENT_DEFINITION:
-        fragments[definition.name.value] = definition;
-        break;
-    }
-  }
-
-  if (!operation) {
-    if (operationName != null) {
-      return [new GraphQLError(`Unknown operation named "${operationName}".`)];
-    }
-    return [new GraphQLError('Must provide an operation.')];
-  }
-
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-  const variableDefinitions = operation.variableDefinitions ?? [];
-
-  const coercedVariableValues = getVariableValues(
-    schema,
-    variableDefinitions,
-    rawVariableValues ?? {},
-    { maxErrors: 50 },
-  );
-
-  if (coercedVariableValues.errors) {
-    return coercedVariableValues.errors;
-  }
-
-  return {
-    schema,
-    fragments,
-    rootValue,
-    contextValue,
-    operation,
-    variableValues: coercedVariableValues.coerced,
-    fieldResolver: fieldResolver ?? defaultFieldResolver,
-    typeResolver: typeResolver ?? defaultTypeResolver,
-    errors: [],
-  };
-}
-
-/**
- * Implements the "Evaluating operations" section of the spec.
- */
-function executeOperation(
-  exeContext: ExecutionContext,
-  operation: OperationDefinitionNode,
-  rootValue: mixed,
-): PromiseOrValue<ObjMap<mixed> | null> {
-  const type = getOperationRootType(exeContext.schema, operation);
-  const fields = collectFields(
-    exeContext,
-    type,
-    operation.selectionSet,
-    Object.create(null),
-    Object.create(null),
-  );
-
-  const path = undefined;
-
-  // Errors from sub-fields of a NonNull type may propagate to the top level,
-  // at which point we still log the error and null the parent field, which
-  // in this case is the entire response.
-  //
-  // Similar to completeValueCatchingError.
-  try {
-    const result =
-      operation.operation === 'mutation'
-        ? executeFieldsSerially(exeContext, type, rootValue, path, fields)
-        : executeFields(exeContext, type, rootValue, path, fields);
-    if (isPromise(result)) {
-      return result.then(undefined, error => {
-        exeContext.errors.push(error);
-        return Promise.resolve(null);
-      });
-    }
-    return result;
-  } catch (error) {
-    exeContext.errors.push(error);
-    return null;
-  }
-}
-
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "write" mode.
- */
-function executeFieldsSerially(
-  exeContext: ExecutionContext,
-  parentType: GraphQLObjectType,
-  sourceValue: mixed,
-  path: Path | void,
-  fields: ObjMap<Array<FieldNode>>,
-): PromiseOrValue<ObjMap<mixed>> {
-  return promiseReduce(
-    Object.keys(fields),
-    (results, responseName) => {
-      const fieldNodes = fields[responseName];
-      const fieldPath = addPath(path, responseName);
-      const result = resolveField(
-        exeContext,
-        parentType,
-        sourceValue,
-        fieldNodes,
-        fieldPath,
-      );
-      if (result === undefined) {
-        return results;
-      }
-      if (isPromise(result)) {
-        return result.then(resolvedResult => {
-          results[responseName] = resolvedResult;
-          return results;
-        });
-      }
-      results[responseName] = result;
-      return results;
-    },
-    Object.create(null),
-  );
-}
-
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "read" mode.
- */
-function executeFields(
-  exeContext: ExecutionContext,
-  parentType: GraphQLObjectType,
-  sourceValue: mixed,
-  path: Path | void,
-  fields: ObjMap<Array<FieldNode>>,
-): PromiseOrValue<ObjMap<mixed>> {
-  const results = Object.create(null);
-  let containsPromise = false;
-
-  for (const responseName of Object.keys(fields)) {
-    const fieldNodes = fields[responseName];
-    const fieldPath = addPath(path, responseName);
-    const result = resolveField(
-      exeContext,
-      parentType,
-      sourceValue,
-      fieldNodes,
-      fieldPath,
-    );
-
-    if (result !== undefined) {
-      results[responseName] = result;
-      if (!containsPromise && isPromise(result)) {
-        containsPromise = true;
-      }
-    }
-  }
-
-  // If there are no promises, we can just return the object
-  if (!containsPromise) {
-    return results;
-  }
-
-  // Otherwise, results is a map from field name to the result of resolving that
-  // field, which is possibly a promise. Return a promise that will return this
-  // same map, but with any promises replaced with the values they resolved to.
-  return promiseForObject(results);
-}
-
-/**
- * Given a selectionSet, adds all of the fields in that selection to
- * the passed in map of fields, and returns it at the end.
- *
- * CollectFields requires the "runtime type" of an object. For a field which
- * returns an Interface or Union type, the "runtime type" will be the actual
- * Object type returned by that field.
- *
- * @internal
- */
-export function collectFields(
-  exeContext: ExecutionContext,
-  runtimeType: GraphQLObjectType,
-  selectionSet: SelectionSetNode,
-  fields: ObjMap<Array<FieldNode>>,
-  visitedFragmentNames: ObjMap<boolean>,
-): ObjMap<Array<FieldNode>> {
-  for (const selection of selectionSet.selections) {
-    switch (selection.kind) {
-      case Kind.FIELD: {
-        if (!shouldIncludeNode(exeContext, selection)) {
-          continue;
-        }
-        const name = getFieldEntryKey(selection);
-        if (!fields[name]) {
-          fields[name] = [];
-        }
-        fields[name].push(selection);
-        break;
-      }
-      case Kind.INLINE_FRAGMENT: {
-        if (
-          !shouldIncludeNode(exeContext, selection) ||
-          !doesFragmentConditionMatch(exeContext, selection, runtimeType)
-        ) {
-          continue;
-        }
-        collectFields(
-          exeContext,
-          runtimeType,
-          selection.selectionSet,
-          fields,
-          visitedFragmentNames,
-        );
-        break;
-      }
-      case Kind.FRAGMENT_SPREAD: {
-        const fragName = selection.name.value;
-        if (
-          visitedFragmentNames[fragName] ||
-          !shouldIncludeNode(exeContext, selection)
-        ) {
-          continue;
-        }
-        visitedFragmentNames[fragName] = true;
-        const fragment = exeContext.fragments[fragName];
-        if (
-          !fragment ||
-          !doesFragmentConditionMatch(exeContext, fragment, runtimeType)
-        ) {
-          continue;
-        }
-        collectFields(
-          exeContext,
-          runtimeType,
-          fragment.selectionSet,
-          fields,
-          visitedFragmentNames,
-        );
-        break;
-      }
-    }
-  }
-  return fields;
-}
-
-/**
- * Determines if a field should be included based on the @include and @skip
- * directives, where @skip has higher precedence than @include.
- */
-function shouldIncludeNode(
-  exeContext: ExecutionContext,
-  node: FragmentSpreadNode | FieldNode | InlineFragmentNode,
-): boolean {
-  const skip = getDirectiveValues(
-    GraphQLSkipDirective,
-    node,
-    exeContext.variableValues,
-  );
-  if (skip?.if === true) {
-    return false;
-  }
-
-  const include = getDirectiveValues(
-    GraphQLIncludeDirective,
-    node,
-    exeContext.variableValues,
-  );
-  if (include?.if === false) {
-    return false;
-  }
-  return true;
-}
-
-/**
- * Determines if a fragment is applicable to the given type.
- */
-function doesFragmentConditionMatch(
-  exeContext: ExecutionContext,
-  fragment: FragmentDefinitionNode | InlineFragmentNode,
-  type: GraphQLObjectType,
-): boolean {
-  const typeConditionNode = fragment.typeCondition;
-  if (!typeConditionNode) {
-    return true;
-  }
-  const conditionalType = typeFromAST(exeContext.schema, typeConditionNode);
-  if (conditionalType === type) {
-    return true;
-  }
-  if (isAbstractType(conditionalType)) {
-    return exeContext.schema.isSubType(conditionalType, type);
-  }
-  return false;
-}
-
-/**
- * Implements the logic to compute the key of a given field's entry
- */
-function getFieldEntryKey(node: FieldNode): string {
-  return node.alias ? node.alias.value : node.name.value;
-}
-
-/**
- * Resolves the field on the given source object. In particular, this
- * figures out the value that the field returns by calling its resolve function,
- * then calls completeValue to complete promises, serialize scalars, or execute
- * the sub-selection-set for objects.
- */
-function resolveField(
-  exeContext: ExecutionContext,
-  parentType: GraphQLObjectType,
-  source: mixed,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  path: Path,
-): PromiseOrValue<mixed> {
-  const fieldNode = fieldNodes[0];
-  const fieldName = fieldNode.name.value;
-
-  const fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);
-  if (!fieldDef) {
-    return;
-  }
-
-  const resolveFn = fieldDef.resolve ?? exeContext.fieldResolver;
-
-  const info = buildResolveInfo(
-    exeContext,
-    fieldDef,
-    fieldNodes,
-    parentType,
-    path,
-  );
-
-  // Get the resolve function, regardless of if its result is normal
-  // or abrupt (error).
-  const result = resolveFieldValueOrError(
-    exeContext,
-    fieldDef,
-    fieldNodes,
-    resolveFn,
-    source,
-    info,
-  );
-
-  return completeValueCatchingError(
-    exeContext,
-    fieldDef.type,
-    fieldNodes,
-    info,
-    path,
-    result,
-  );
-}
-
-/**
- * @internal
- */
-export function buildResolveInfo(
-  exeContext: ExecutionContext,
-  fieldDef: GraphQLField<mixed, mixed>,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  parentType: GraphQLObjectType,
-  path: Path,
-): GraphQLResolveInfo {
-  // The resolve function's optional fourth argument is a collection of
-  // information about the current execution state.
-  return {
-    fieldName: fieldDef.name,
-    fieldNodes,
-    returnType: fieldDef.type,
-    parentType,
-    path,
-    schema: exeContext.schema,
-    fragments: exeContext.fragments,
-    rootValue: exeContext.rootValue,
-    operation: exeContext.operation,
-    variableValues: exeContext.variableValues,
-  };
-}
-
-/**
- * Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
- * function. Returns the result of resolveFn or the abrupt-return Error object.
- *
- * @internal
- */
-export function resolveFieldValueOrError(
-  exeContext: ExecutionContext,
-  fieldDef: GraphQLField<mixed, mixed>,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  resolveFn: GraphQLFieldResolver<mixed, mixed>,
-  source: mixed,
-  info: GraphQLResolveInfo,
-): Error | mixed {
-  try {
-    // Build a JS object of arguments from the field.arguments AST, using the
-    // variables scope to fulfill any variable references.
-    // TODO: find a way to memoize, in case this field is within a List type.
-    const args = getArgumentValues(
-      fieldDef,
-      fieldNodes[0],
-      exeContext.variableValues,
-    );
-
-    // The resolve function's optional third argument is a context value that
-    // is provided to every resolve function within an execution. It is commonly
-    // used to represent an authenticated user, or request-specific caches.
-    const contextValue = exeContext.contextValue;
-
-    const result = resolveFn(source, args, contextValue, info);
-    return isPromise(result) ? result.then(undefined, asErrorInstance) : result;
-  } catch (error) {
-    return asErrorInstance(error);
-  }
-}
-
-// Sometimes a non-error is thrown, wrap it as an Error instance to ensure a
-// consistent Error interface.
-function asErrorInstance(error: mixed): Error {
-  if (error instanceof Error) {
-    return error;
-  }
-  return new Error('Unexpected error value: ' + inspect(error));
-}
-
-// This is a small wrapper around completeValue which detects and logs errors
-// in the execution context.
-function completeValueCatchingError(
-  exeContext: ExecutionContext,
-  returnType: GraphQLOutputType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<mixed> {
-  try {
-    let completed;
-    if (isPromise(result)) {
-      completed = result.then(resolved =>
-        completeValue(exeContext, returnType, fieldNodes, info, path, resolved),
-      );
-    } else {
-      completed = completeValue(
-        exeContext,
-        returnType,
-        fieldNodes,
-        info,
-        path,
-        result,
-      );
-    }
-
-    if (isPromise(completed)) {
-      // Note: we don't rely on a `catch` method, but we do expect "thenable"
-      // to take a second callback for the error case.
-      return completed.then(undefined, error =>
-        handleFieldError(error, fieldNodes, path, returnType, exeContext),
-      );
-    }
-    return completed;
-  } catch (error) {
-    return handleFieldError(error, fieldNodes, path, returnType, exeContext);
-  }
-}
-
-function handleFieldError(rawError, fieldNodes, path, returnType, exeContext) {
-  const error = locatedError(
-    asErrorInstance(rawError),
-    fieldNodes,
-    pathToArray(path),
-  );
-
-  // If the field type is non-nullable, then it is resolved without any
-  // protection from errors, however it still properly locates the error.
-  if (isNonNullType(returnType)) {
-    throw error;
-  }
-
-  // Otherwise, error protection is applied, logging the error and resolving
-  // a null value for this field if one is encountered.
-  exeContext.errors.push(error);
-  return null;
-}
-
-/**
- * Implements the instructions for completeValue as defined in the
- * "Field entries" section of the spec.
- *
- * If the field type is Non-Null, then this recursively completes the value
- * for the inner type. It throws a field error if that completion returns null,
- * as per the "Nullability" section of the spec.
- *
- * If the field type is a List, then this recursively completes the value
- * for the inner type on each item in the list.
- *
- * If the field type is a Scalar or Enum, ensures the completed value is a legal
- * value of the type by calling the `serialize` method of GraphQL type
- * definition.
- *
- * If the field is an abstract type, determine the runtime type of the value
- * and then complete based on that type
- *
- * Otherwise, the field type expects a sub-selection set, and will complete the
- * value by evaluating all sub-selections.
- */
-function completeValue(
-  exeContext: ExecutionContext,
-  returnType: GraphQLOutputType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<mixed> {
-  // If result is an Error, throw a located error.
-  if (result instanceof Error) {
-    throw result;
-  }
-
-  // If field type is NonNull, complete for inner type, and throw field error
-  // if result is null.
-  if (isNonNullType(returnType)) {
-    const completed = completeValue(
-      exeContext,
-      returnType.ofType,
-      fieldNodes,
-      info,
-      path,
-      result,
-    );
-    if (completed === null) {
-      throw new Error(
-        `Cannot return null for non-nullable field ${info.parentType.name}.${info.fieldName}.`,
-      );
-    }
-    return completed;
-  }
-
-  // If result value is null or undefined then return null.
-  if (result == null) {
-    return null;
-  }
-
-  // If field type is List, complete each item in the list with the inner type
-  if (isListType(returnType)) {
-    return completeListValue(
-      exeContext,
-      returnType,
-      fieldNodes,
-      info,
-      path,
-      result,
-    );
-  }
-
-  // If field type is a leaf type, Scalar or Enum, serialize to a valid value,
-  // returning null if serialization is not possible.
-  if (isLeafType(returnType)) {
-    return completeLeafValue(returnType, result);
-  }
-
-  // If field type is an abstract type, Interface or Union, determine the
-  // runtime Object type and complete for that type.
-  if (isAbstractType(returnType)) {
-    return completeAbstractValue(
-      exeContext,
-      returnType,
-      fieldNodes,
-      info,
-      path,
-      result,
-    );
-  }
-
-  // If field type is Object, execute and complete all sub-selections.
-  if (isObjectType(returnType)) {
-    return completeObjectValue(
-      exeContext,
-      returnType,
-      fieldNodes,
-      info,
-      path,
-      result,
-    );
-  }
-
-  // Not reachable. All possible output types have been considered.
-  invariant(
-    false,
-    'Cannot complete value of unexpected output type: ' +
-      inspect((returnType: empty)),
-  );
-}
-
-/**
- * Complete a list value by completing each item in the list with the
- * inner type
- */
-function completeListValue(
-  exeContext: ExecutionContext,
-  returnType: GraphQLList<GraphQLOutputType>,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<$ReadOnlyArray<mixed>> {
-  if (!isCollection(result)) {
-    throw new GraphQLError(
-      `Expected Iterable, but did not find one for field "${info.parentType.name}.${info.fieldName}".`,
-    );
-  }
-
-  // This is specified as a simple map, however we're optimizing the path
-  // where the list contains no Promises by avoiding creating another Promise.
-  const itemType = returnType.ofType;
-  let containsPromise = false;
-  const completedResults = arrayFrom(result, (item, index) => {
-    // No need to modify the info object containing the path,
-    // since from here on it is not ever accessed by resolver functions.
-    const fieldPath = addPath(path, index);
-    const completedItem = completeValueCatchingError(
-      exeContext,
-      itemType,
-      fieldNodes,
-      info,
-      fieldPath,
-      item,
-    );
-
-    if (!containsPromise && isPromise(completedItem)) {
-      containsPromise = true;
-    }
-
-    return completedItem;
-  });
-
-  return containsPromise ? Promise.all(completedResults) : completedResults;
-}
-
-/**
- * Complete a Scalar or Enum by serializing to a valid value, returning
- * null if serialization is not possible.
- */
-function completeLeafValue(returnType: GraphQLLeafType, result: mixed): mixed {
-  const serializedResult = returnType.serialize(result);
-  if (serializedResult === undefined) {
-    throw new Error(
-      `Expected a value of type "${inspect(returnType)}" but ` +
-        `received: ${inspect(result)}`,
-    );
-  }
-  return serializedResult;
-}
-
-/**
- * Complete a value of an abstract type by determining the runtime object type
- * of that value, then complete the value for that type.
- */
-function completeAbstractValue(
-  exeContext: ExecutionContext,
-  returnType: GraphQLAbstractType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<ObjMap<mixed>> {
-  const resolveTypeFn = returnType.resolveType ?? exeContext.typeResolver;
-  const contextValue = exeContext.contextValue;
-  const runtimeType = resolveTypeFn(result, contextValue, info, returnType);
-
-  if (isPromise(runtimeType)) {
-    return runtimeType.then(resolvedRuntimeType =>
-      completeObjectValue(
-        exeContext,
-        ensureValidRuntimeType(
-          resolvedRuntimeType,
-          exeContext,
-          returnType,
-          fieldNodes,
-          info,
-          result,
-        ),
-        fieldNodes,
-        info,
-        path,
-        result,
-      ),
-    );
-  }
-
-  return completeObjectValue(
-    exeContext,
-    ensureValidRuntimeType(
-      runtimeType,
-      exeContext,
-      returnType,
-      fieldNodes,
-      info,
-      result,
-    ),
-    fieldNodes,
-    info,
-    path,
-    result,
-  );
-}
-
-function ensureValidRuntimeType(
-  runtimeTypeOrName: ?GraphQLObjectType | string,
-  exeContext: ExecutionContext,
-  returnType: GraphQLAbstractType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  result: mixed,
-): GraphQLObjectType {
-  const runtimeType =
-    typeof runtimeTypeOrName === 'string'
-      ? exeContext.schema.getType(runtimeTypeOrName)
-      : runtimeTypeOrName;
-
-  if (!isObjectType(runtimeType)) {
-    throw new GraphQLError(
-      `Abstract type "${returnType.name}" must resolve to an Object type at runtime for field "${info.parentType.name}.${info.fieldName}" with ` +
-        `value ${inspect(result)}, received "${inspect(runtimeType)}". ` +
-        `Either the "${returnType.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,
-      fieldNodes,
-    );
-  }
-
-  if (!exeContext.schema.isSubType(returnType, runtimeType)) {
-    throw new GraphQLError(
-      `Runtime Object type "${runtimeType.name}" is not a possible type for "${returnType.name}".`,
-      fieldNodes,
-    );
-  }
-
-  return runtimeType;
-}
-
-/**
- * Complete an Object value by executing all sub-selections.
- */
-function completeObjectValue(
-  exeContext: ExecutionContext,
-  returnType: GraphQLObjectType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  info: GraphQLResolveInfo,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<ObjMap<mixed>> {
-  // If there is an isTypeOf predicate function, call it with the
-  // current result. If isTypeOf returns false, then raise an error rather
-  // than continuing execution.
-  if (returnType.isTypeOf) {
-    const isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);
-
-    if (isPromise(isTypeOf)) {
-      return isTypeOf.then(resolvedIsTypeOf => {
-        if (!resolvedIsTypeOf) {
-          throw invalidReturnTypeError(returnType, result, fieldNodes);
-        }
-        return collectAndExecuteSubfields(
-          exeContext,
-          returnType,
-          fieldNodes,
-          path,
-          result,
-        );
-      });
-    }
-
-    if (!isTypeOf) {
-      throw invalidReturnTypeError(returnType, result, fieldNodes);
-    }
-  }
-
-  return collectAndExecuteSubfields(
-    exeContext,
-    returnType,
-    fieldNodes,
-    path,
-    result,
-  );
-}
-
-function invalidReturnTypeError(
-  returnType: GraphQLObjectType,
-  result: mixed,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-): GraphQLError {
-  return new GraphQLError(
-    `Expected value of type "${returnType.name}" but got: ${inspect(result)}.`,
-    fieldNodes,
-  );
-}
-
-function collectAndExecuteSubfields(
-  exeContext: ExecutionContext,
-  returnType: GraphQLObjectType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-  path: Path,
-  result: mixed,
-): PromiseOrValue<ObjMap<mixed>> {
-  // Collect sub-fields to execute to complete this value.
-  const subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);
-  return executeFields(exeContext, returnType, result, path, subFieldNodes);
-}
-
-/**
- * A memoized collection of relevant subfields with regard to the return
- * type. Memoizing ensures the subfields are not repeatedly calculated, which
- * saves overhead when resolving lists of values.
- */
-const collectSubfields = memoize3(_collectSubfields);
-function _collectSubfields(
-  exeContext: ExecutionContext,
-  returnType: GraphQLObjectType,
-  fieldNodes: $ReadOnlyArray<FieldNode>,
-): ObjMap<Array<FieldNode>> {
-  let subFieldNodes = Object.create(null);
-  const visitedFragmentNames = Object.create(null);
-  for (const node of fieldNodes) {
-    if (node.selectionSet) {
-      subFieldNodes = collectFields(
-        exeContext,
-        returnType,
-        node.selectionSet,
-        subFieldNodes,
-        visitedFragmentNames,
-      );
-    }
-  }
-  return subFieldNodes;
-}
-
-/**
- * If a resolveType function is not given, then a default resolve behavior is
- * used which attempts two strategies:
- *
- * First, See if the provided value has a `__typename` field defined, if so, use
- * that value as name of the resolved type.
- *
- * Otherwise, test each possible type for the abstract type by calling
- * isTypeOf for the object being coerced, returning the first type that matches.
- */
-export const defaultTypeResolver: GraphQLTypeResolver<mixed, mixed> = function(
-  value,
-  contextValue,
-  info,
-  abstractType,
-) {
-  // First, look for `__typename`.
-  if (isObjectLike(value) && typeof value.__typename === 'string') {
-    return value.__typename;
-  }
-
-  // Otherwise, test each possible type.
-  const possibleTypes = info.schema.getPossibleTypes(abstractType);
-  const promisedIsTypeOfResults = [];
-
-  for (let i = 0; i < possibleTypes.length; i++) {
-    const type = possibleTypes[i];
-
-    if (type.isTypeOf) {
-      const isTypeOfResult = type.isTypeOf(value, contextValue, info);
-
-      if (isPromise(isTypeOfResult)) {
-        promisedIsTypeOfResults[i] = isTypeOfResult;
-      } else if (isTypeOfResult) {
-        return type;
-      }
-    }
-  }
-
-  if (promisedIsTypeOfResults.length) {
-    return Promise.all(promisedIsTypeOfResults).then(isTypeOfResults => {
-      for (let i = 0; i < isTypeOfResults.length; i++) {
-        if (isTypeOfResults[i]) {
-          return possibleTypes[i];
-        }
-      }
-    });
-  }
-};
-
-/**
- * If a resolve function is not given, then a default resolve behavior is used
- * which takes the property of the source object of the same name as the field
- * and returns it as the result, or if it's a function, returns the result
- * of calling that function while passing along args and context value.
- */
-export const defaultFieldResolver: GraphQLFieldResolver<
-  mixed,
-  mixed,
-> = function(source: any, args, contextValue, info) {
-  // ensure source is a value for which property access is acceptable.
-  if (isObjectLike(source) || typeof source === 'function') {
-    const property = source[info.fieldName];
-    if (typeof property === 'function') {
-      return source[info.fieldName](args, contextValue, info);
-    }
-    return property;
-  }
-};
-
-/**
- * This method looks up the field on the given type definition.
- * It has special casing for the two introspection fields, __schema
- * and __typename. __typename is special because it can always be
- * queried as a field, even in situations where no other fields
- * are allowed, like on a Union. __schema could get automatically
- * added to the query type, but that would require mutating type
- * definitions, which would cause issues.
- *
- * @internal
- */
-export function getFieldDef(
-  schema: GraphQLSchema,
-  parentType: GraphQLObjectType,
-  fieldName: string,
-): ?GraphQLField<mixed, mixed> {
-  if (
-    fieldName === SchemaMetaFieldDef.name &&
-    schema.getQueryType() === parentType
-  ) {
-    return SchemaMetaFieldDef;
-  } else if (
-    fieldName === TypeMetaFieldDef.name &&
-    schema.getQueryType() === parentType
-  ) {
-    return TypeMetaFieldDef;
-  } else if (fieldName === TypeNameMetaFieldDef.name) {
-    return TypeNameMetaFieldDef;
-  }
-  return parentType.getFields()[fieldName];
-}
diff --git a/node_modules/graphql/execution/execute.mjs b/node_modules/graphql/execution/execute.mjs
deleted file mode 100644
index 50cc538..0000000
--- a/node_modules/graphql/execution/execute.mjs
+++ /dev/null
@@ -1,830 +0,0 @@
-import arrayFrom from "../polyfills/arrayFrom.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import memoize3 from "../jsutils/memoize3.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import isPromise from "../jsutils/isPromise.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import isCollection from "../jsutils/isCollection.mjs";
-import promiseReduce from "../jsutils/promiseReduce.mjs";
-import promiseForObject from "../jsutils/promiseForObject.mjs";
-import { addPath, pathToArray } from "../jsutils/Path.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { locatedError } from "../error/locatedError.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { assertValidSchema } from "../type/validate.mjs";
-import { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from "../type/introspection.mjs";
-import { GraphQLIncludeDirective, GraphQLSkipDirective } from "../type/directives.mjs";
-import { isObjectType, isAbstractType, isLeafType, isListType, isNonNullType } from "../type/definition.mjs";
-import { typeFromAST } from "../utilities/typeFromAST.mjs";
-import { getOperationRootType } from "../utilities/getOperationRootType.mjs";
-import { getVariableValues, getArgumentValues, getDirectiveValues } from "./values.mjs";
-/**
- * Terminology
- *
- * "Definitions" are the generic name for top-level statements in the document.
- * Examples of this include:
- * 1) Operations (such as a query)
- * 2) Fragments
- *
- * "Operations" are a generic name for requests in the document.
- * Examples of this include:
- * 1) query,
- * 2) mutation
- *
- * "Selections" are the definitions that can appear legally and at
- * single level of the query. These include:
- * 1) field references e.g "a"
- * 2) fragment "spreads" e.g. "...c"
- * 3) inline fragment "spreads" e.g. "...on Type { a }"
- */
-
-/**
- * Data that must be available at all points during query execution.
- *
- * Namely, schema of the type system that is currently executing,
- * and the fragments defined in the query document
- */
-
-export function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1 ? executeImpl(argsOrSchema) : executeImpl({
-    schema: argsOrSchema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  });
-}
-
-function executeImpl(args) {
-  var schema = args.schema,
-      document = args.document,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      typeResolver = args.typeResolver; // If arguments are missing or incorrect, throw an error.
-
-  assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
-  // a "Response" with only errors is returned.
-
-  var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.
-
-  if (Array.isArray(exeContext)) {
-    return {
-      errors: exeContext
-    };
-  } // Return a Promise that will eventually resolve to the data described by
-  // The "Response" section of the GraphQL specification.
-  //
-  // If errors are encountered while executing a GraphQL field, only that
-  // field and its descendants will be omitted, and sibling fields will still
-  // be executed. An execution which encounters errors will still result in a
-  // resolved Promise.
-
-
-  var data = executeOperation(exeContext, exeContext.operation, rootValue);
-  return buildResponse(exeContext, data);
-}
-/**
- * Given a completed execution context and data, build the { errors, data }
- * response defined by the "Response" section of the GraphQL specification.
- */
-
-
-function buildResponse(exeContext, data) {
-  if (isPromise(data)) {
-    return data.then(function (resolved) {
-      return buildResponse(exeContext, resolved);
-    });
-  }
-
-  return exeContext.errors.length === 0 ? {
-    data: data
-  } : {
-    errors: exeContext.errors,
-    data: data
-  };
-}
-/**
- * Essential assertions before executing to provide developer feedback for
- * improper use of the GraphQL library.
- *
- * @internal
- */
-
-
-export function assertValidExecutionArguments(schema, document, rawVariableValues) {
-  document || devAssert(0, 'Must provide document.'); // If the schema used for execution is invalid, throw an error.
-
-  assertValidSchema(schema); // Variables, if provided, must be an object.
-
-  rawVariableValues == null || isObjectLike(rawVariableValues) || devAssert(0, 'Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.');
-}
-/**
- * Constructs a ExecutionContext object from the arguments passed to
- * execute, which we will pass throughout the other execution methods.
- *
- * Throws a GraphQLError if a valid execution context cannot be created.
- *
- * @internal
- */
-
-export function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {
-  var _definition$name, _operation$variableDe;
-
-  var operation;
-  var fragments = Object.create(null);
-
-  for (var _i2 = 0, _document$definitions2 = document.definitions; _i2 < _document$definitions2.length; _i2++) {
-    var definition = _document$definitions2[_i2];
-
-    switch (definition.kind) {
-      case Kind.OPERATION_DEFINITION:
-        if (operationName == null) {
-          if (operation !== undefined) {
-            return [new GraphQLError('Must provide operation name if query contains multiple operations.')];
-          }
-
-          operation = definition;
-        } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {
-          operation = definition;
-        }
-
-        break;
-
-      case Kind.FRAGMENT_DEFINITION:
-        fragments[definition.name.value] = definition;
-        break;
-    }
-  }
-
-  if (!operation) {
-    if (operationName != null) {
-      return [new GraphQLError("Unknown operation named \"".concat(operationName, "\"."))];
-    }
-
-    return [new GraphQLError('Must provide an operation.')];
-  }
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-  var variableDefinitions = (_operation$variableDe = operation.variableDefinitions) !== null && _operation$variableDe !== void 0 ? _operation$variableDe : [];
-  var coercedVariableValues = getVariableValues(schema, variableDefinitions, rawVariableValues !== null && rawVariableValues !== void 0 ? rawVariableValues : {}, {
-    maxErrors: 50
-  });
-
-  if (coercedVariableValues.errors) {
-    return coercedVariableValues.errors;
-  }
-
-  return {
-    schema: schema,
-    fragments: fragments,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    operation: operation,
-    variableValues: coercedVariableValues.coerced,
-    fieldResolver: fieldResolver !== null && fieldResolver !== void 0 ? fieldResolver : defaultFieldResolver,
-    typeResolver: typeResolver !== null && typeResolver !== void 0 ? typeResolver : defaultTypeResolver,
-    errors: []
-  };
-}
-/**
- * Implements the "Evaluating operations" section of the spec.
- */
-
-function executeOperation(exeContext, operation, rootValue) {
-  var type = getOperationRootType(exeContext.schema, operation);
-  var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
-  var path = undefined; // Errors from sub-fields of a NonNull type may propagate to the top level,
-  // at which point we still log the error and null the parent field, which
-  // in this case is the entire response.
-  //
-  // Similar to completeValueCatchingError.
-
-  try {
-    var result = operation.operation === 'mutation' ? executeFieldsSerially(exeContext, type, rootValue, path, fields) : executeFields(exeContext, type, rootValue, path, fields);
-
-    if (isPromise(result)) {
-      return result.then(undefined, function (error) {
-        exeContext.errors.push(error);
-        return Promise.resolve(null);
-      });
-    }
-
-    return result;
-  } catch (error) {
-    exeContext.errors.push(error);
-    return null;
-  }
-}
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "write" mode.
- */
-
-
-function executeFieldsSerially(exeContext, parentType, sourceValue, path, fields) {
-  return promiseReduce(Object.keys(fields), function (results, responseName) {
-    var fieldNodes = fields[responseName];
-    var fieldPath = addPath(path, responseName);
-    var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
-
-    if (result === undefined) {
-      return results;
-    }
-
-    if (isPromise(result)) {
-      return result.then(function (resolvedResult) {
-        results[responseName] = resolvedResult;
-        return results;
-      });
-    }
-
-    results[responseName] = result;
-    return results;
-  }, Object.create(null));
-}
-/**
- * Implements the "Evaluating selection sets" section of the spec
- * for "read" mode.
- */
-
-
-function executeFields(exeContext, parentType, sourceValue, path, fields) {
-  var results = Object.create(null);
-  var containsPromise = false;
-
-  for (var _i4 = 0, _Object$keys2 = Object.keys(fields); _i4 < _Object$keys2.length; _i4++) {
-    var responseName = _Object$keys2[_i4];
-    var fieldNodes = fields[responseName];
-    var fieldPath = addPath(path, responseName);
-    var result = resolveField(exeContext, parentType, sourceValue, fieldNodes, fieldPath);
-
-    if (result !== undefined) {
-      results[responseName] = result;
-
-      if (!containsPromise && isPromise(result)) {
-        containsPromise = true;
-      }
-    }
-  } // If there are no promises, we can just return the object
-
-
-  if (!containsPromise) {
-    return results;
-  } // Otherwise, results is a map from field name to the result of resolving that
-  // field, which is possibly a promise. Return a promise that will return this
-  // same map, but with any promises replaced with the values they resolved to.
-
-
-  return promiseForObject(results);
-}
-/**
- * Given a selectionSet, adds all of the fields in that selection to
- * the passed in map of fields, and returns it at the end.
- *
- * CollectFields requires the "runtime type" of an object. For a field which
- * returns an Interface or Union type, the "runtime type" will be the actual
- * Object type returned by that field.
- *
- * @internal
- */
-
-
-export function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFragmentNames) {
-  for (var _i6 = 0, _selectionSet$selecti2 = selectionSet.selections; _i6 < _selectionSet$selecti2.length; _i6++) {
-    var selection = _selectionSet$selecti2[_i6];
-
-    switch (selection.kind) {
-      case Kind.FIELD:
-        {
-          if (!shouldIncludeNode(exeContext, selection)) {
-            continue;
-          }
-
-          var name = getFieldEntryKey(selection);
-
-          if (!fields[name]) {
-            fields[name] = [];
-          }
-
-          fields[name].push(selection);
-          break;
-        }
-
-      case Kind.INLINE_FRAGMENT:
-        {
-          if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
-            continue;
-          }
-
-          collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
-          break;
-        }
-
-      case Kind.FRAGMENT_SPREAD:
-        {
-          var fragName = selection.name.value;
-
-          if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
-            continue;
-          }
-
-          visitedFragmentNames[fragName] = true;
-          var fragment = exeContext.fragments[fragName];
-
-          if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
-            continue;
-          }
-
-          collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
-          break;
-        }
-    }
-  }
-
-  return fields;
-}
-/**
- * Determines if a field should be included based on the @include and @skip
- * directives, where @skip has higher precedence than @include.
- */
-
-function shouldIncludeNode(exeContext, node) {
-  var skip = getDirectiveValues(GraphQLSkipDirective, node, exeContext.variableValues);
-
-  if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {
-    return false;
-  }
-
-  var include = getDirectiveValues(GraphQLIncludeDirective, node, exeContext.variableValues);
-
-  if ((include === null || include === void 0 ? void 0 : include.if) === false) {
-    return false;
-  }
-
-  return true;
-}
-/**
- * Determines if a fragment is applicable to the given type.
- */
-
-
-function doesFragmentConditionMatch(exeContext, fragment, type) {
-  var typeConditionNode = fragment.typeCondition;
-
-  if (!typeConditionNode) {
-    return true;
-  }
-
-  var conditionalType = typeFromAST(exeContext.schema, typeConditionNode);
-
-  if (conditionalType === type) {
-    return true;
-  }
-
-  if (isAbstractType(conditionalType)) {
-    return exeContext.schema.isSubType(conditionalType, type);
-  }
-
-  return false;
-}
-/**
- * Implements the logic to compute the key of a given field's entry
- */
-
-
-function getFieldEntryKey(node) {
-  return node.alias ? node.alias.value : node.name.value;
-}
-/**
- * Resolves the field on the given source object. In particular, this
- * figures out the value that the field returns by calling its resolve function,
- * then calls completeValue to complete promises, serialize scalars, or execute
- * the sub-selection-set for objects.
- */
-
-
-function resolveField(exeContext, parentType, source, fieldNodes, path) {
-  var _fieldDef$resolve;
-
-  var fieldNode = fieldNodes[0];
-  var fieldName = fieldNode.name.value;
-  var fieldDef = getFieldDef(exeContext.schema, parentType, fieldName);
-
-  if (!fieldDef) {
-    return;
-  }
-
-  var resolveFn = (_fieldDef$resolve = fieldDef.resolve) !== null && _fieldDef$resolve !== void 0 ? _fieldDef$resolve : exeContext.fieldResolver;
-  var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path); // Get the resolve function, regardless of if its result is normal
-  // or abrupt (error).
-
-  var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info);
-  return completeValueCatchingError(exeContext, fieldDef.type, fieldNodes, info, path, result);
-}
-/**
- * @internal
- */
-
-
-export function buildResolveInfo(exeContext, fieldDef, fieldNodes, parentType, path) {
-  // The resolve function's optional fourth argument is a collection of
-  // information about the current execution state.
-  return {
-    fieldName: fieldDef.name,
-    fieldNodes: fieldNodes,
-    returnType: fieldDef.type,
-    parentType: parentType,
-    path: path,
-    schema: exeContext.schema,
-    fragments: exeContext.fragments,
-    rootValue: exeContext.rootValue,
-    operation: exeContext.operation,
-    variableValues: exeContext.variableValues
-  };
-}
-/**
- * Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
- * function. Returns the result of resolveFn or the abrupt-return Error object.
- *
- * @internal
- */
-
-export function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, source, info) {
-  try {
-    // Build a JS object of arguments from the field.arguments AST, using the
-    // variables scope to fulfill any variable references.
-    // TODO: find a way to memoize, in case this field is within a List type.
-    var args = getArgumentValues(fieldDef, fieldNodes[0], exeContext.variableValues); // The resolve function's optional third argument is a context value that
-    // is provided to every resolve function within an execution. It is commonly
-    // used to represent an authenticated user, or request-specific caches.
-
-    var _contextValue = exeContext.contextValue;
-    var result = resolveFn(source, args, _contextValue, info);
-    return isPromise(result) ? result.then(undefined, asErrorInstance) : result;
-  } catch (error) {
-    return asErrorInstance(error);
-  }
-} // Sometimes a non-error is thrown, wrap it as an Error instance to ensure a
-// consistent Error interface.
-
-function asErrorInstance(error) {
-  if (error instanceof Error) {
-    return error;
-  }
-
-  return new Error('Unexpected error value: ' + inspect(error));
-} // This is a small wrapper around completeValue which detects and logs errors
-// in the execution context.
-
-
-function completeValueCatchingError(exeContext, returnType, fieldNodes, info, path, result) {
-  try {
-    var completed;
-
-    if (isPromise(result)) {
-      completed = result.then(function (resolved) {
-        return completeValue(exeContext, returnType, fieldNodes, info, path, resolved);
-      });
-    } else {
-      completed = completeValue(exeContext, returnType, fieldNodes, info, path, result);
-    }
-
-    if (isPromise(completed)) {
-      // Note: we don't rely on a `catch` method, but we do expect "thenable"
-      // to take a second callback for the error case.
-      return completed.then(undefined, function (error) {
-        return handleFieldError(error, fieldNodes, path, returnType, exeContext);
-      });
-    }
-
-    return completed;
-  } catch (error) {
-    return handleFieldError(error, fieldNodes, path, returnType, exeContext);
-  }
-}
-
-function handleFieldError(rawError, fieldNodes, path, returnType, exeContext) {
-  var error = locatedError(asErrorInstance(rawError), fieldNodes, pathToArray(path)); // If the field type is non-nullable, then it is resolved without any
-  // protection from errors, however it still properly locates the error.
-
-  if (isNonNullType(returnType)) {
-    throw error;
-  } // Otherwise, error protection is applied, logging the error and resolving
-  // a null value for this field if one is encountered.
-
-
-  exeContext.errors.push(error);
-  return null;
-}
-/**
- * Implements the instructions for completeValue as defined in the
- * "Field entries" section of the spec.
- *
- * If the field type is Non-Null, then this recursively completes the value
- * for the inner type. It throws a field error if that completion returns null,
- * as per the "Nullability" section of the spec.
- *
- * If the field type is a List, then this recursively completes the value
- * for the inner type on each item in the list.
- *
- * If the field type is a Scalar or Enum, ensures the completed value is a legal
- * value of the type by calling the `serialize` method of GraphQL type
- * definition.
- *
- * If the field is an abstract type, determine the runtime type of the value
- * and then complete based on that type
- *
- * Otherwise, the field type expects a sub-selection set, and will complete the
- * value by evaluating all sub-selections.
- */
-
-
-function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
-  // If result is an Error, throw a located error.
-  if (result instanceof Error) {
-    throw result;
-  } // If field type is NonNull, complete for inner type, and throw field error
-  // if result is null.
-
-
-  if (isNonNullType(returnType)) {
-    var completed = completeValue(exeContext, returnType.ofType, fieldNodes, info, path, result);
-
-    if (completed === null) {
-      throw new Error("Cannot return null for non-nullable field ".concat(info.parentType.name, ".").concat(info.fieldName, "."));
-    }
-
-    return completed;
-  } // If result value is null or undefined then return null.
-
-
-  if (result == null) {
-    return null;
-  } // If field type is List, complete each item in the list with the inner type
-
-
-  if (isListType(returnType)) {
-    return completeListValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // If field type is a leaf type, Scalar or Enum, serialize to a valid value,
-  // returning null if serialization is not possible.
-
-
-  if (isLeafType(returnType)) {
-    return completeLeafValue(returnType, result);
-  } // If field type is an abstract type, Interface or Union, determine the
-  // runtime Object type and complete for that type.
-
-
-  if (isAbstractType(returnType)) {
-    return completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // If field type is Object, execute and complete all sub-selections.
-
-
-  /* istanbul ignore else */
-  if (isObjectType(returnType)) {
-    return completeObjectValue(exeContext, returnType, fieldNodes, info, path, result);
-  } // Not reachable. All possible output types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Cannot complete value of unexpected output type: ' + inspect(returnType));
-}
-/**
- * Complete a list value by completing each item in the list with the
- * inner type
- */
-
-
-function completeListValue(exeContext, returnType, fieldNodes, info, path, result) {
-  if (!isCollection(result)) {
-    throw new GraphQLError("Expected Iterable, but did not find one for field \"".concat(info.parentType.name, ".").concat(info.fieldName, "\"."));
-  } // This is specified as a simple map, however we're optimizing the path
-  // where the list contains no Promises by avoiding creating another Promise.
-
-
-  var itemType = returnType.ofType;
-  var containsPromise = false;
-  var completedResults = arrayFrom(result, function (item, index) {
-    // No need to modify the info object containing the path,
-    // since from here on it is not ever accessed by resolver functions.
-    var fieldPath = addPath(path, index);
-    var completedItem = completeValueCatchingError(exeContext, itemType, fieldNodes, info, fieldPath, item);
-
-    if (!containsPromise && isPromise(completedItem)) {
-      containsPromise = true;
-    }
-
-    return completedItem;
-  });
-  return containsPromise ? Promise.all(completedResults) : completedResults;
-}
-/**
- * Complete a Scalar or Enum by serializing to a valid value, returning
- * null if serialization is not possible.
- */
-
-
-function completeLeafValue(returnType, result) {
-  var serializedResult = returnType.serialize(result);
-
-  if (serializedResult === undefined) {
-    throw new Error("Expected a value of type \"".concat(inspect(returnType), "\" but ") + "received: ".concat(inspect(result)));
-  }
-
-  return serializedResult;
-}
-/**
- * Complete a value of an abstract type by determining the runtime object type
- * of that value, then complete the value for that type.
- */
-
-
-function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {
-  var _returnType$resolveTy;
-
-  var resolveTypeFn = (_returnType$resolveTy = returnType.resolveType) !== null && _returnType$resolveTy !== void 0 ? _returnType$resolveTy : exeContext.typeResolver;
-  var contextValue = exeContext.contextValue;
-  var runtimeType = resolveTypeFn(result, contextValue, info, returnType);
-
-  if (isPromise(runtimeType)) {
-    return runtimeType.then(function (resolvedRuntimeType) {
-      return completeObjectValue(exeContext, ensureValidRuntimeType(resolvedRuntimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
-    });
-  }
-
-  return completeObjectValue(exeContext, ensureValidRuntimeType(runtimeType, exeContext, returnType, fieldNodes, info, result), fieldNodes, info, path, result);
-}
-
-function ensureValidRuntimeType(runtimeTypeOrName, exeContext, returnType, fieldNodes, info, result) {
-  var runtimeType = typeof runtimeTypeOrName === 'string' ? exeContext.schema.getType(runtimeTypeOrName) : runtimeTypeOrName;
-
-  if (!isObjectType(runtimeType)) {
-    throw new GraphQLError("Abstract type \"".concat(returnType.name, "\" must resolve to an Object type at runtime for field \"").concat(info.parentType.name, ".").concat(info.fieldName, "\" with ") + "value ".concat(inspect(result), ", received \"").concat(inspect(runtimeType), "\". ") + "Either the \"".concat(returnType.name, "\" type should provide a \"resolveType\" function or each possible type should provide an \"isTypeOf\" function."), fieldNodes);
-  }
-
-  if (!exeContext.schema.isSubType(returnType, runtimeType)) {
-    throw new GraphQLError("Runtime Object type \"".concat(runtimeType.name, "\" is not a possible type for \"").concat(returnType.name, "\"."), fieldNodes);
-  }
-
-  return runtimeType;
-}
-/**
- * Complete an Object value by executing all sub-selections.
- */
-
-
-function completeObjectValue(exeContext, returnType, fieldNodes, info, path, result) {
-  // If there is an isTypeOf predicate function, call it with the
-  // current result. If isTypeOf returns false, then raise an error rather
-  // than continuing execution.
-  if (returnType.isTypeOf) {
-    var isTypeOf = returnType.isTypeOf(result, exeContext.contextValue, info);
-
-    if (isPromise(isTypeOf)) {
-      return isTypeOf.then(function (resolvedIsTypeOf) {
-        if (!resolvedIsTypeOf) {
-          throw invalidReturnTypeError(returnType, result, fieldNodes);
-        }
-
-        return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);
-      });
-    }
-
-    if (!isTypeOf) {
-      throw invalidReturnTypeError(returnType, result, fieldNodes);
-    }
-  }
-
-  return collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result);
-}
-
-function invalidReturnTypeError(returnType, result, fieldNodes) {
-  return new GraphQLError("Expected value of type \"".concat(returnType.name, "\" but got: ").concat(inspect(result), "."), fieldNodes);
-}
-
-function collectAndExecuteSubfields(exeContext, returnType, fieldNodes, path, result) {
-  // Collect sub-fields to execute to complete this value.
-  var subFieldNodes = collectSubfields(exeContext, returnType, fieldNodes);
-  return executeFields(exeContext, returnType, result, path, subFieldNodes);
-}
-/**
- * A memoized collection of relevant subfields with regard to the return
- * type. Memoizing ensures the subfields are not repeatedly calculated, which
- * saves overhead when resolving lists of values.
- */
-
-
-var collectSubfields = memoize3(_collectSubfields);
-
-function _collectSubfields(exeContext, returnType, fieldNodes) {
-  var subFieldNodes = Object.create(null);
-  var visitedFragmentNames = Object.create(null);
-
-  for (var _i8 = 0; _i8 < fieldNodes.length; _i8++) {
-    var node = fieldNodes[_i8];
-
-    if (node.selectionSet) {
-      subFieldNodes = collectFields(exeContext, returnType, node.selectionSet, subFieldNodes, visitedFragmentNames);
-    }
-  }
-
-  return subFieldNodes;
-}
-/**
- * If a resolveType function is not given, then a default resolve behavior is
- * used which attempts two strategies:
- *
- * First, See if the provided value has a `__typename` field defined, if so, use
- * that value as name of the resolved type.
- *
- * Otherwise, test each possible type for the abstract type by calling
- * isTypeOf for the object being coerced, returning the first type that matches.
- */
-
-
-export var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {
-  // First, look for `__typename`.
-  if (isObjectLike(value) && typeof value.__typename === 'string') {
-    return value.__typename;
-  } // Otherwise, test each possible type.
-
-
-  var possibleTypes = info.schema.getPossibleTypes(abstractType);
-  var promisedIsTypeOfResults = [];
-
-  for (var i = 0; i < possibleTypes.length; i++) {
-    var type = possibleTypes[i];
-
-    if (type.isTypeOf) {
-      var isTypeOfResult = type.isTypeOf(value, contextValue, info);
-
-      if (isPromise(isTypeOfResult)) {
-        promisedIsTypeOfResults[i] = isTypeOfResult;
-      } else if (isTypeOfResult) {
-        return type;
-      }
-    }
-  }
-
-  if (promisedIsTypeOfResults.length) {
-    return Promise.all(promisedIsTypeOfResults).then(function (isTypeOfResults) {
-      for (var _i9 = 0; _i9 < isTypeOfResults.length; _i9++) {
-        if (isTypeOfResults[_i9]) {
-          return possibleTypes[_i9];
-        }
-      }
-    });
-  }
-};
-/**
- * If a resolve function is not given, then a default resolve behavior is used
- * which takes the property of the source object of the same name as the field
- * and returns it as the result, or if it's a function, returns the result
- * of calling that function while passing along args and context value.
- */
-
-export var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {
-  // ensure source is a value for which property access is acceptable.
-  if (isObjectLike(source) || typeof source === 'function') {
-    var property = source[info.fieldName];
-
-    if (typeof property === 'function') {
-      return source[info.fieldName](args, contextValue, info);
-    }
-
-    return property;
-  }
-};
-/**
- * This method looks up the field on the given type definition.
- * It has special casing for the two introspection fields, __schema
- * and __typename. __typename is special because it can always be
- * queried as a field, even in situations where no other fields
- * are allowed, like on a Union. __schema could get automatically
- * added to the query type, but that would require mutating type
- * definitions, which would cause issues.
- *
- * @internal
- */
-
-export function getFieldDef(schema, parentType, fieldName) {
-  if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return SchemaMetaFieldDef;
-  } else if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return TypeMetaFieldDef;
-  } else if (fieldName === TypeNameMetaFieldDef.name) {
-    return TypeNameMetaFieldDef;
-  }
-
-  return parentType.getFields()[fieldName];
-}
diff --git a/node_modules/graphql/execution/index.d.ts b/node_modules/graphql/execution/index.d.ts
deleted file mode 100644
index ed0f8f1..0000000
--- a/node_modules/graphql/execution/index.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export { pathToArray as responsePathAsArray } from '../jsutils/Path';
-
-export {
-  execute,
-  defaultFieldResolver,
-  defaultTypeResolver,
-  ExecutionArgs,
-  ExecutionResult,
-} from './execute';
-
-export { getDirectiveValues } from './values';
diff --git a/node_modules/graphql/execution/index.js b/node_modules/graphql/execution/index.js
deleted file mode 100644
index 1dfb5a3..0000000
--- a/node_modules/graphql/execution/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "responsePathAsArray", {
-  enumerable: true,
-  get: function get() {
-    return _Path.pathToArray;
-  }
-});
-Object.defineProperty(exports, "execute", {
-  enumerable: true,
-  get: function get() {
-    return _execute.execute;
-  }
-});
-Object.defineProperty(exports, "defaultFieldResolver", {
-  enumerable: true,
-  get: function get() {
-    return _execute.defaultFieldResolver;
-  }
-});
-Object.defineProperty(exports, "defaultTypeResolver", {
-  enumerable: true,
-  get: function get() {
-    return _execute.defaultTypeResolver;
-  }
-});
-Object.defineProperty(exports, "getDirectiveValues", {
-  enumerable: true,
-  get: function get() {
-    return _values.getDirectiveValues;
-  }
-});
-
-var _Path = require("../jsutils/Path");
-
-var _execute = require("./execute");
-
-var _values = require("./values");
diff --git a/node_modules/graphql/execution/index.js.flow b/node_modules/graphql/execution/index.js.flow
deleted file mode 100644
index c7ffa5c..0000000
--- a/node_modules/graphql/execution/index.js.flow
+++ /dev/null
@@ -1,8 +0,0 @@
-// @flow strict
-
-export { pathToArray as responsePathAsArray } from '../jsutils/Path';
-
-export { execute, defaultFieldResolver, defaultTypeResolver } from './execute';
-export type { ExecutionArgs, ExecutionResult } from './execute';
-
-export { getDirectiveValues } from './values';
diff --git a/node_modules/graphql/execution/index.mjs b/node_modules/graphql/execution/index.mjs
deleted file mode 100644
index ff4a47e..0000000
--- a/node_modules/graphql/execution/index.mjs
+++ /dev/null
@@ -1,3 +0,0 @@
-export { pathToArray as responsePathAsArray } from "../jsutils/Path.mjs";
-export { execute, defaultFieldResolver, defaultTypeResolver } from "./execute.mjs";
-export { getDirectiveValues } from "./values.mjs";
diff --git a/node_modules/graphql/execution/values.d.ts b/node_modules/graphql/execution/values.d.ts
deleted file mode 100644
index 82e2ce8..0000000
--- a/node_modules/graphql/execution/values.d.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { GraphQLError } from '../error/GraphQLError';
-import {
-  FieldNode,
-  DirectiveNode,
-  VariableDefinitionNode,
-} from '../language/ast';
-
-import { GraphQLDirective } from '../type/directives';
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLField } from '../type/definition';
-
-type CoercedVariableValues =
-  | { errors: ReadonlyArray<GraphQLError>; coerced?: never }
-  | { errors?: never; coerced: { [key: string]: any } };
-
-/**
- * Prepares an object map of variableValues of the correct type based on the
- * provided variable definitions and arbitrary input. If the input cannot be
- * parsed to match the variable definitions, a GraphQLError will be thrown.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-export function getVariableValues(
-  schema: GraphQLSchema,
-  varDefNodes: ReadonlyArray<VariableDefinitionNode>,
-  inputs: { [key: string]: any },
-  options?: { maxErrors?: number },
-): CoercedVariableValues;
-
-/**
- * Prepares an object map of argument values given a list of argument
- * definitions and list of argument AST nodes.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-export function getArgumentValues(
-  def: GraphQLField<any, any> | GraphQLDirective,
-  node: FieldNode | DirectiveNode,
-  variableValues?: Maybe<{ [key: string]: any }>,
-): { [key: string]: any };
-
-/**
- * Prepares an object map of argument values given a directive definition
- * and a AST node which may contain directives. Optionally also accepts a map
- * of variable values.
- *
- * If the directive does not exist on the node, returns undefined.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-export function getDirectiveValues(
-  directiveDef: GraphQLDirective,
-  node: {
-    readonly directives?: ReadonlyArray<DirectiveNode>;
-  },
-  variableValues?: Maybe<{ [key: string]: any }>,
-): undefined | { [key: string]: any };
diff --git a/node_modules/graphql/execution/values.js b/node_modules/graphql/execution/values.js
deleted file mode 100644
index e626a04..0000000
--- a/node_modules/graphql/execution/values.js
+++ /dev/null
@@ -1,229 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getVariableValues = getVariableValues;
-exports.getArgumentValues = getArgumentValues;
-exports.getDirectiveValues = getDirectiveValues;
-
-var _find = _interopRequireDefault(require("../polyfills/find"));
-
-var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _printPathArray = _interopRequireDefault(require("../jsutils/printPathArray"));
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _kinds = require("../language/kinds");
-
-var _printer = require("../language/printer");
-
-var _definition = require("../type/definition");
-
-var _typeFromAST = require("../utilities/typeFromAST");
-
-var _valueFromAST = require("../utilities/valueFromAST");
-
-var _coerceInputValue = require("../utilities/coerceInputValue");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Prepares an object map of variableValues of the correct type based on the
- * provided variable definitions and arbitrary input. If the input cannot be
- * parsed to match the variable definitions, a GraphQLError will be thrown.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-function getVariableValues(schema, varDefNodes, inputs, options) {
-  var errors = [];
-  var maxErrors = options === null || options === void 0 ? void 0 : options.maxErrors;
-
-  try {
-    var coerced = coerceVariableValues(schema, varDefNodes, inputs, function (error) {
-      if (maxErrors != null && errors.length >= maxErrors) {
-        throw new _GraphQLError.GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');
-      }
-
-      errors.push(error);
-    });
-
-    if (errors.length === 0) {
-      return {
-        coerced: coerced
-      };
-    }
-  } catch (error) {
-    errors.push(error);
-  }
-
-  return {
-    errors: errors
-  };
-}
-
-function coerceVariableValues(schema, varDefNodes, inputs, onError) {
-  var coercedValues = {};
-
-  var _loop = function _loop(_i2) {
-    var varDefNode = varDefNodes[_i2];
-    var varName = varDefNode.variable.name.value;
-    var varType = (0, _typeFromAST.typeFromAST)(schema, varDefNode.type);
-
-    if (!(0, _definition.isInputType)(varType)) {
-      // Must use input types for variables. This should be caught during
-      // validation, however is checked again here for safety.
-      var varTypeStr = (0, _printer.print)(varDefNode.type);
-      onError(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" expected value of type \"").concat(varTypeStr, "\" which cannot be used as an input type."), varDefNode.type));
-      return "continue";
-    }
-
-    if (!hasOwnProperty(inputs, varName)) {
-      if (varDefNode.defaultValue) {
-        coercedValues[varName] = (0, _valueFromAST.valueFromAST)(varDefNode.defaultValue, varType);
-      } else if ((0, _definition.isNonNullType)(varType)) {
-        var _varTypeStr = (0, _inspect.default)(varType);
-
-        onError(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" of required type \"").concat(_varTypeStr, "\" was not provided."), varDefNode));
-      }
-
-      return "continue";
-    }
-
-    var value = inputs[varName];
-
-    if (value === null && (0, _definition.isNonNullType)(varType)) {
-      var _varTypeStr2 = (0, _inspect.default)(varType);
-
-      onError(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" of non-null type \"").concat(_varTypeStr2, "\" must not be null."), varDefNode));
-      return "continue";
-    }
-
-    coercedValues[varName] = (0, _coerceInputValue.coerceInputValue)(value, varType, function (path, invalidValue, error) {
-      var prefix = "Variable \"$".concat(varName, "\" got invalid value ") + (0, _inspect.default)(invalidValue);
-
-      if (path.length > 0) {
-        prefix += " at \"".concat(varName).concat((0, _printPathArray.default)(path), "\"");
-      }
-
-      onError(new _GraphQLError.GraphQLError(prefix + '; ' + error.message, varDefNode, undefined, undefined, undefined, error.originalError));
-    });
-  };
-
-  for (var _i2 = 0; _i2 < varDefNodes.length; _i2++) {
-    var _ret = _loop(_i2);
-
-    if (_ret === "continue") continue;
-  }
-
-  return coercedValues;
-}
-/**
- * Prepares an object map of argument values given a list of argument
- * definitions and list of argument AST nodes.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-
-
-function getArgumentValues(def, node, variableValues) {
-  var _node$arguments;
-
-  var coercedValues = {};
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-  var argumentNodes = (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 ? _node$arguments : [];
-  var argNodeMap = (0, _keyMap.default)(argumentNodes, function (arg) {
-    return arg.name.value;
-  });
-
-  for (var _i4 = 0, _def$args2 = def.args; _i4 < _def$args2.length; _i4++) {
-    var argDef = _def$args2[_i4];
-    var name = argDef.name;
-    var argType = argDef.type;
-    var argumentNode = argNodeMap[name];
-
-    if (!argumentNode) {
-      if (argDef.defaultValue !== undefined) {
-        coercedValues[name] = argDef.defaultValue;
-      } else if ((0, _definition.isNonNullType)(argType)) {
-        throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + 'was not provided.', node);
-      }
-
-      continue;
-    }
-
-    var valueNode = argumentNode.value;
-    var isNull = valueNode.kind === _kinds.Kind.NULL;
-
-    if (valueNode.kind === _kinds.Kind.VARIABLE) {
-      var variableName = valueNode.name.value;
-
-      if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {
-        if (argDef.defaultValue !== undefined) {
-          coercedValues[name] = argDef.defaultValue;
-        } else if ((0, _definition.isNonNullType)(argType)) {
-          throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of required type \"").concat((0, _inspect.default)(argType), "\" ") + "was provided the variable \"$".concat(variableName, "\" which was not provided a runtime value."), valueNode);
-        }
-
-        continue;
-      }
-
-      isNull = variableValues[variableName] == null;
-    }
-
-    if (isNull && (0, _definition.isNonNullType)(argType)) {
-      throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" of non-null type \"").concat((0, _inspect.default)(argType), "\" ") + 'must not be null.', valueNode);
-    }
-
-    var coercedValue = (0, _valueFromAST.valueFromAST)(valueNode, argType, variableValues);
-
-    if (coercedValue === undefined) {
-      // Note: ValuesOfCorrectTypeRule validation should catch this before
-      // execution. This is a runtime check to ensure execution does not
-      // continue with an invalid argument value.
-      throw new _GraphQLError.GraphQLError("Argument \"".concat(name, "\" has invalid value ").concat((0, _printer.print)(valueNode), "."), valueNode);
-    }
-
-    coercedValues[name] = coercedValue;
-  }
-
-  return coercedValues;
-}
-/**
- * Prepares an object map of argument values given a directive definition
- * and a AST node which may contain directives. Optionally also accepts a map
- * of variable values.
- *
- * If the directive does not exist on the node, returns undefined.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-
-
-function getDirectiveValues(directiveDef, node, variableValues) {
-  var directiveNode = node.directives && (0, _find.default)(node.directives, function (directive) {
-    return directive.name.value === directiveDef.name;
-  });
-
-  if (directiveNode) {
-    return getArgumentValues(directiveDef, directiveNode, variableValues);
-  }
-}
-
-function hasOwnProperty(obj, prop) {
-  return Object.prototype.hasOwnProperty.call(obj, prop);
-}
diff --git a/node_modules/graphql/execution/values.js.flow b/node_modules/graphql/execution/values.js.flow
deleted file mode 100644
index 44c5149..0000000
--- a/node_modules/graphql/execution/values.js.flow
+++ /dev/null
@@ -1,266 +0,0 @@
-// @flow strict
-
-import find from '../polyfills/find';
-
-import keyMap from '../jsutils/keyMap';
-import inspect from '../jsutils/inspect';
-import { type ObjMap } from '../jsutils/ObjMap';
-import printPathArray from '../jsutils/printPathArray';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { Kind } from '../language/kinds';
-import { print } from '../language/printer';
-import {
-  type FieldNode,
-  type DirectiveNode,
-  type VariableDefinitionNode,
-} from '../language/ast';
-
-import { type GraphQLSchema } from '../type/schema';
-import { type GraphQLDirective } from '../type/directives';
-import {
-  type GraphQLField,
-  isInputType,
-  isNonNullType,
-} from '../type/definition';
-
-import { typeFromAST } from '../utilities/typeFromAST';
-import { valueFromAST } from '../utilities/valueFromAST';
-import { coerceInputValue } from '../utilities/coerceInputValue';
-
-type CoercedVariableValues =
-  | {| errors: $ReadOnlyArray<GraphQLError> |}
-  | {| coerced: { [variable: string]: mixed, ... } |};
-
-/**
- * Prepares an object map of variableValues of the correct type based on the
- * provided variable definitions and arbitrary input. If the input cannot be
- * parsed to match the variable definitions, a GraphQLError will be thrown.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-export function getVariableValues(
-  schema: GraphQLSchema,
-  varDefNodes: $ReadOnlyArray<VariableDefinitionNode>,
-  inputs: { +[variable: string]: mixed, ... },
-  options?: {| maxErrors?: number |},
-): CoercedVariableValues {
-  const errors = [];
-  const maxErrors = options?.maxErrors;
-  try {
-    const coerced = coerceVariableValues(schema, varDefNodes, inputs, error => {
-      if (maxErrors != null && errors.length >= maxErrors) {
-        throw new GraphQLError(
-          'Too many errors processing variables, error limit reached. Execution aborted.',
-        );
-      }
-      errors.push(error);
-    });
-
-    if (errors.length === 0) {
-      return { coerced };
-    }
-  } catch (error) {
-    errors.push(error);
-  }
-
-  return { errors };
-}
-
-function coerceVariableValues(
-  schema: GraphQLSchema,
-  varDefNodes: $ReadOnlyArray<VariableDefinitionNode>,
-  inputs: { +[variable: string]: mixed, ... },
-  onError: GraphQLError => void,
-): { [variable: string]: mixed, ... } {
-  const coercedValues = {};
-  for (const varDefNode of varDefNodes) {
-    const varName = varDefNode.variable.name.value;
-    const varType = typeFromAST(schema, varDefNode.type);
-    if (!isInputType(varType)) {
-      // Must use input types for variables. This should be caught during
-      // validation, however is checked again here for safety.
-      const varTypeStr = print(varDefNode.type);
-      onError(
-        new GraphQLError(
-          `Variable "$${varName}" expected value of type "${varTypeStr}" which cannot be used as an input type.`,
-          varDefNode.type,
-        ),
-      );
-      continue;
-    }
-
-    if (!hasOwnProperty(inputs, varName)) {
-      if (varDefNode.defaultValue) {
-        coercedValues[varName] = valueFromAST(varDefNode.defaultValue, varType);
-      } else if (isNonNullType(varType)) {
-        const varTypeStr = inspect(varType);
-        onError(
-          new GraphQLError(
-            `Variable "$${varName}" of required type "${varTypeStr}" was not provided.`,
-            varDefNode,
-          ),
-        );
-      }
-      continue;
-    }
-
-    const value = inputs[varName];
-    if (value === null && isNonNullType(varType)) {
-      const varTypeStr = inspect(varType);
-      onError(
-        new GraphQLError(
-          `Variable "$${varName}" of non-null type "${varTypeStr}" must not be null.`,
-          varDefNode,
-        ),
-      );
-      continue;
-    }
-
-    coercedValues[varName] = coerceInputValue(
-      value,
-      varType,
-      (path, invalidValue, error) => {
-        let prefix =
-          `Variable "$${varName}" got invalid value ` + inspect(invalidValue);
-        if (path.length > 0) {
-          prefix += ` at "${varName}${printPathArray(path)}"`;
-        }
-        onError(
-          new GraphQLError(
-            prefix + '; ' + error.message,
-            varDefNode,
-            undefined,
-            undefined,
-            undefined,
-            error.originalError,
-          ),
-        );
-      },
-    );
-  }
-
-  return coercedValues;
-}
-
-/**
- * Prepares an object map of argument values given a list of argument
- * definitions and list of argument AST nodes.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-export function getArgumentValues(
-  def: GraphQLField<mixed, mixed> | GraphQLDirective,
-  node: FieldNode | DirectiveNode,
-  variableValues?: ?ObjMap<mixed>,
-): { [argument: string]: mixed, ... } {
-  const coercedValues = {};
-
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-  const argumentNodes = node.arguments ?? [];
-  const argNodeMap = keyMap(argumentNodes, arg => arg.name.value);
-
-  for (const argDef of def.args) {
-    const name = argDef.name;
-    const argType = argDef.type;
-    const argumentNode = argNodeMap[name];
-
-    if (!argumentNode) {
-      if (argDef.defaultValue !== undefined) {
-        coercedValues[name] = argDef.defaultValue;
-      } else if (isNonNullType(argType)) {
-        throw new GraphQLError(
-          `Argument "${name}" of required type "${inspect(argType)}" ` +
-            'was not provided.',
-          node,
-        );
-      }
-      continue;
-    }
-
-    const valueNode = argumentNode.value;
-    let isNull = valueNode.kind === Kind.NULL;
-
-    if (valueNode.kind === Kind.VARIABLE) {
-      const variableName = valueNode.name.value;
-      if (
-        variableValues == null ||
-        !hasOwnProperty(variableValues, variableName)
-      ) {
-        if (argDef.defaultValue !== undefined) {
-          coercedValues[name] = argDef.defaultValue;
-        } else if (isNonNullType(argType)) {
-          throw new GraphQLError(
-            `Argument "${name}" of required type "${inspect(argType)}" ` +
-              `was provided the variable "$${variableName}" which was not provided a runtime value.`,
-            valueNode,
-          );
-        }
-        continue;
-      }
-      isNull = variableValues[variableName] == null;
-    }
-
-    if (isNull && isNonNullType(argType)) {
-      throw new GraphQLError(
-        `Argument "${name}" of non-null type "${inspect(argType)}" ` +
-          'must not be null.',
-        valueNode,
-      );
-    }
-
-    const coercedValue = valueFromAST(valueNode, argType, variableValues);
-    if (coercedValue === undefined) {
-      // Note: ValuesOfCorrectTypeRule validation should catch this before
-      // execution. This is a runtime check to ensure execution does not
-      // continue with an invalid argument value.
-      throw new GraphQLError(
-        `Argument "${name}" has invalid value ${print(valueNode)}.`,
-        valueNode,
-      );
-    }
-    coercedValues[name] = coercedValue;
-  }
-  return coercedValues;
-}
-
-/**
- * Prepares an object map of argument values given a directive definition
- * and a AST node which may contain directives. Optionally also accepts a map
- * of variable values.
- *
- * If the directive does not exist on the node, returns undefined.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-export function getDirectiveValues(
-  directiveDef: GraphQLDirective,
-  node: { +directives?: $ReadOnlyArray<DirectiveNode>, ... },
-  variableValues?: ?ObjMap<mixed>,
-): void | { [argument: string]: mixed, ... } {
-  const directiveNode =
-    node.directives &&
-    find(
-      node.directives,
-      directive => directive.name.value === directiveDef.name,
-    );
-
-  if (directiveNode) {
-    return getArgumentValues(directiveDef, directiveNode, variableValues);
-  }
-}
-
-function hasOwnProperty(obj: mixed, prop: string): boolean {
-  return Object.prototype.hasOwnProperty.call(obj, prop);
-}
diff --git a/node_modules/graphql/execution/values.mjs b/node_modules/graphql/execution/values.mjs
deleted file mode 100644
index 7fc668e..0000000
--- a/node_modules/graphql/execution/values.mjs
+++ /dev/null
@@ -1,207 +0,0 @@
-import find from "../polyfills/find.mjs";
-import keyMap from "../jsutils/keyMap.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import printPathArray from "../jsutils/printPathArray.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { print } from "../language/printer.mjs";
-import { isInputType, isNonNullType } from "../type/definition.mjs";
-import { typeFromAST } from "../utilities/typeFromAST.mjs";
-import { valueFromAST } from "../utilities/valueFromAST.mjs";
-import { coerceInputValue } from "../utilities/coerceInputValue.mjs";
-
-/**
- * Prepares an object map of variableValues of the correct type based on the
- * provided variable definitions and arbitrary input. If the input cannot be
- * parsed to match the variable definitions, a GraphQLError will be thrown.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-export function getVariableValues(schema, varDefNodes, inputs, options) {
-  var errors = [];
-  var maxErrors = options === null || options === void 0 ? void 0 : options.maxErrors;
-
-  try {
-    var coerced = coerceVariableValues(schema, varDefNodes, inputs, function (error) {
-      if (maxErrors != null && errors.length >= maxErrors) {
-        throw new GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');
-      }
-
-      errors.push(error);
-    });
-
-    if (errors.length === 0) {
-      return {
-        coerced: coerced
-      };
-    }
-  } catch (error) {
-    errors.push(error);
-  }
-
-  return {
-    errors: errors
-  };
-}
-
-function coerceVariableValues(schema, varDefNodes, inputs, onError) {
-  var coercedValues = {};
-
-  var _loop = function _loop(_i2) {
-    var varDefNode = varDefNodes[_i2];
-    var varName = varDefNode.variable.name.value;
-    var varType = typeFromAST(schema, varDefNode.type);
-
-    if (!isInputType(varType)) {
-      // Must use input types for variables. This should be caught during
-      // validation, however is checked again here for safety.
-      var varTypeStr = print(varDefNode.type);
-      onError(new GraphQLError("Variable \"$".concat(varName, "\" expected value of type \"").concat(varTypeStr, "\" which cannot be used as an input type."), varDefNode.type));
-      return "continue";
-    }
-
-    if (!hasOwnProperty(inputs, varName)) {
-      if (varDefNode.defaultValue) {
-        coercedValues[varName] = valueFromAST(varDefNode.defaultValue, varType);
-      } else if (isNonNullType(varType)) {
-        var _varTypeStr = inspect(varType);
-
-        onError(new GraphQLError("Variable \"$".concat(varName, "\" of required type \"").concat(_varTypeStr, "\" was not provided."), varDefNode));
-      }
-
-      return "continue";
-    }
-
-    var value = inputs[varName];
-
-    if (value === null && isNonNullType(varType)) {
-      var _varTypeStr2 = inspect(varType);
-
-      onError(new GraphQLError("Variable \"$".concat(varName, "\" of non-null type \"").concat(_varTypeStr2, "\" must not be null."), varDefNode));
-      return "continue";
-    }
-
-    coercedValues[varName] = coerceInputValue(value, varType, function (path, invalidValue, error) {
-      var prefix = "Variable \"$".concat(varName, "\" got invalid value ") + inspect(invalidValue);
-
-      if (path.length > 0) {
-        prefix += " at \"".concat(varName).concat(printPathArray(path), "\"");
-      }
-
-      onError(new GraphQLError(prefix + '; ' + error.message, varDefNode, undefined, undefined, undefined, error.originalError));
-    });
-  };
-
-  for (var _i2 = 0; _i2 < varDefNodes.length; _i2++) {
-    var _ret = _loop(_i2);
-
-    if (_ret === "continue") continue;
-  }
-
-  return coercedValues;
-}
-/**
- * Prepares an object map of argument values given a list of argument
- * definitions and list of argument AST nodes.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- *
- * @internal
- */
-
-
-export function getArgumentValues(def, node, variableValues) {
-  var _node$arguments;
-
-  var coercedValues = {};
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-  var argumentNodes = (_node$arguments = node.arguments) !== null && _node$arguments !== void 0 ? _node$arguments : [];
-  var argNodeMap = keyMap(argumentNodes, function (arg) {
-    return arg.name.value;
-  });
-
-  for (var _i4 = 0, _def$args2 = def.args; _i4 < _def$args2.length; _i4++) {
-    var argDef = _def$args2[_i4];
-    var name = argDef.name;
-    var argType = argDef.type;
-    var argumentNode = argNodeMap[name];
-
-    if (!argumentNode) {
-      if (argDef.defaultValue !== undefined) {
-        coercedValues[name] = argDef.defaultValue;
-      } else if (isNonNullType(argType)) {
-        throw new GraphQLError("Argument \"".concat(name, "\" of required type \"").concat(inspect(argType), "\" ") + 'was not provided.', node);
-      }
-
-      continue;
-    }
-
-    var valueNode = argumentNode.value;
-    var isNull = valueNode.kind === Kind.NULL;
-
-    if (valueNode.kind === Kind.VARIABLE) {
-      var variableName = valueNode.name.value;
-
-      if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {
-        if (argDef.defaultValue !== undefined) {
-          coercedValues[name] = argDef.defaultValue;
-        } else if (isNonNullType(argType)) {
-          throw new GraphQLError("Argument \"".concat(name, "\" of required type \"").concat(inspect(argType), "\" ") + "was provided the variable \"$".concat(variableName, "\" which was not provided a runtime value."), valueNode);
-        }
-
-        continue;
-      }
-
-      isNull = variableValues[variableName] == null;
-    }
-
-    if (isNull && isNonNullType(argType)) {
-      throw new GraphQLError("Argument \"".concat(name, "\" of non-null type \"").concat(inspect(argType), "\" ") + 'must not be null.', valueNode);
-    }
-
-    var coercedValue = valueFromAST(valueNode, argType, variableValues);
-
-    if (coercedValue === undefined) {
-      // Note: ValuesOfCorrectTypeRule validation should catch this before
-      // execution. This is a runtime check to ensure execution does not
-      // continue with an invalid argument value.
-      throw new GraphQLError("Argument \"".concat(name, "\" has invalid value ").concat(print(valueNode), "."), valueNode);
-    }
-
-    coercedValues[name] = coercedValue;
-  }
-
-  return coercedValues;
-}
-/**
- * Prepares an object map of argument values given a directive definition
- * and a AST node which may contain directives. Optionally also accepts a map
- * of variable values.
- *
- * If the directive does not exist on the node, returns undefined.
- *
- * Note: The returned value is a plain Object with a prototype, since it is
- * exposed to user code. Care should be taken to not pull values from the
- * Object prototype.
- */
-
-export function getDirectiveValues(directiveDef, node, variableValues) {
-  var directiveNode = node.directives && find(node.directives, function (directive) {
-    return directive.name.value === directiveDef.name;
-  });
-
-  if (directiveNode) {
-    return getArgumentValues(directiveDef, directiveNode, variableValues);
-  }
-}
-
-function hasOwnProperty(obj, prop) {
-  return Object.prototype.hasOwnProperty.call(obj, prop);
-}
diff --git a/node_modules/graphql/graphql.d.ts b/node_modules/graphql/graphql.d.ts
deleted file mode 100644
index 90b29c9..0000000
--- a/node_modules/graphql/graphql.d.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import Maybe from './tsutils/Maybe';
-import { Source } from './language/source';
-import { GraphQLSchema } from './type/schema';
-import { GraphQLFieldResolver, GraphQLTypeResolver } from './type/definition';
-import {
-  ExecutionResult,
-  ExecutionResultDataDefault,
-} from './execution/execute';
-
-/**
- * This is the primary entry point function for fulfilling GraphQL operations
- * by parsing, validating, and executing a GraphQL document along side a
- * GraphQL schema.
- *
- * More sophisticated GraphQL servers, such as those which persist queries,
- * may wish to separate the validation and execution phases to a static time
- * tooling step, and a server runtime step.
- *
- * Accepts either an object with named arguments, or individual arguments:
- *
- * schema:
- *    The GraphQL type system to use when validating and executing a query.
- * source:
- *    A GraphQL language formatted string representing the requested operation.
- * rootValue:
- *    The value provided as the first argument to resolver functions on the top
- *    level type (e.g. the query object type).
- * contextValue:
- *    The context value is provided as an argument to resolver functions after
- *    field arguments. It is used to pass shared information useful at any point
- *    during executing this query, for example the currently logged in user and
- *    connections to databases or other services.
- * variableValues:
- *    A mapping of variable name to runtime value to use for all variables
- *    defined in the requestString.
- * operationName:
- *    The name of the operation to use if requestString contains multiple
- *    possible operations. Can be omitted if requestString contains only
- *    one operation.
- * fieldResolver:
- *    A resolver function to use when one is not provided by the schema.
- *    If not provided, the default field resolver is used (which looks for a
- *    value or method on the source value with the field's name).
- */
-export interface GraphQLArgs {
-  schema: GraphQLSchema;
-  source: string | Source;
-  rootValue?: any;
-  contextValue?: any;
-  variableValues?: Maybe<{ [key: string]: any }>;
-  operationName?: Maybe<string>;
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>;
-}
-
-export function graphql<TData = ExecutionResultDataDefault>(
-  args: GraphQLArgs,
-): Promise<ExecutionResult<TData>>;
-export function graphql<TData = ExecutionResultDataDefault>(
-  schema: GraphQLSchema,
-  source: Source | string,
-  rootValue?: any,
-  contextValue?: any,
-  variableValues?: Maybe<{ [key: string]: any }>,
-  operationName?: Maybe<string>,
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
-): Promise<ExecutionResult<TData>>;
-
-/**
- * The graphqlSync function also fulfills GraphQL operations by parsing,
- * validating, and executing a GraphQL document along side a GraphQL schema.
- * However, it guarantees to complete synchronously (or throw an error) assuming
- * that all field resolvers are also synchronous.
- */
-export function graphqlSync<TData = ExecutionResultDataDefault>(
-  args: GraphQLArgs,
-): ExecutionResult<TData>;
-export function graphqlSync<TData = ExecutionResultDataDefault>(
-  schema: GraphQLSchema,
-  source: Source | string,
-  rootValue?: any,
-  contextValue?: any,
-  variableValues?: Maybe<{ [key: string]: any }>,
-  operationName?: Maybe<string>,
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>,
-): ExecutionResult<TData>;
diff --git a/node_modules/graphql/graphql.js b/node_modules/graphql/graphql.js
deleted file mode 100644
index 6cc8c55..0000000
--- a/node_modules/graphql/graphql.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.graphql = graphql;
-exports.graphqlSync = graphqlSync;
-
-var _isPromise = _interopRequireDefault(require("./jsutils/isPromise"));
-
-var _parser = require("./language/parser");
-
-var _validate = require("./validation/validate");
-
-var _validate2 = require("./type/validate");
-
-var _execute = require("./execution/execute");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  var _arguments = arguments;
-
-  /* eslint-enable no-redeclare */
-  // Always return a Promise for a consistent API.
-  return new Promise(function (resolve) {
-    return resolve( // Extract arguments from object args if provided.
-    _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
-      schema: argsOrSchema,
-      source: source,
-      rootValue: rootValue,
-      contextValue: contextValue,
-      variableValues: variableValues,
-      operationName: operationName,
-      fieldResolver: fieldResolver,
-      typeResolver: typeResolver
-    }));
-  });
-}
-/**
- * The graphqlSync function also fulfills GraphQL operations by parsing,
- * validating, and executing a GraphQL document along side a GraphQL schema.
- * However, it guarantees to complete synchronously (or throw an error) assuming
- * that all field resolvers are also synchronous.
- */
-
-
-function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
-    schema: argsOrSchema,
-    source: source,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  }); // Assert that the execution was synchronous.
-
-  if ((0, _isPromise.default)(result)) {
-    throw new Error('GraphQL execution failed to complete synchronously.');
-  }
-
-  return result;
-}
-
-function graphqlImpl(args) {
-  var schema = args.schema,
-      source = args.source,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      typeResolver = args.typeResolver; // Validate Schema
-
-  var schemaValidationErrors = (0, _validate2.validateSchema)(schema);
-
-  if (schemaValidationErrors.length > 0) {
-    return {
-      errors: schemaValidationErrors
-    };
-  } // Parse
-
-
-  var document;
-
-  try {
-    document = (0, _parser.parse)(source);
-  } catch (syntaxError) {
-    return {
-      errors: [syntaxError]
-    };
-  } // Validate
-
-
-  var validationErrors = (0, _validate.validate)(schema, document);
-
-  if (validationErrors.length > 0) {
-    return {
-      errors: validationErrors
-    };
-  } // Execute
-
-
-  return (0, _execute.execute)({
-    schema: schema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  });
-}
diff --git a/node_modules/graphql/graphql.js.flow b/node_modules/graphql/graphql.js.flow
deleted file mode 100644
index a49f032..0000000
--- a/node_modules/graphql/graphql.js.flow
+++ /dev/null
@@ -1,207 +0,0 @@
-// @flow strict
-
-import isPromise from './jsutils/isPromise';
-import { type PromiseOrValue } from './jsutils/PromiseOrValue';
-
-import { parse } from './language/parser';
-import { type Source } from './language/source';
-
-import { validate } from './validation/validate';
-
-import { validateSchema } from './type/validate';
-import { type GraphQLSchema } from './type/schema';
-import {
-  type GraphQLFieldResolver,
-  type GraphQLTypeResolver,
-} from './type/definition';
-
-import { type ExecutionResult, execute } from './execution/execute';
-
-/**
- * This is the primary entry point function for fulfilling GraphQL operations
- * by parsing, validating, and executing a GraphQL document along side a
- * GraphQL schema.
- *
- * More sophisticated GraphQL servers, such as those which persist queries,
- * may wish to separate the validation and execution phases to a static time
- * tooling step, and a server runtime step.
- *
- * Accepts either an object with named arguments, or individual arguments:
- *
- * schema:
- *    The GraphQL type system to use when validating and executing a query.
- * source:
- *    A GraphQL language formatted string representing the requested operation.
- * rootValue:
- *    The value provided as the first argument to resolver functions on the top
- *    level type (e.g. the query object type).
- * contextValue:
- *    The context value is provided as an argument to resolver functions after
- *    field arguments. It is used to pass shared information useful at any point
- *    during executing this query, for example the currently logged in user and
- *    connections to databases or other services.
- * variableValues:
- *    A mapping of variable name to runtime value to use for all variables
- *    defined in the requestString.
- * operationName:
- *    The name of the operation to use if requestString contains multiple
- *    possible operations. Can be omitted if requestString contains only
- *    one operation.
- * fieldResolver:
- *    A resolver function to use when one is not provided by the schema.
- *    If not provided, the default field resolver is used (which looks for a
- *    value or method on the source value with the field's name).
- * typeResolver:
- *    A type resolver function to use when none is provided by the schema.
- *    If not provided, the default type resolver is used (which looks for a
- *    `__typename` field or alternatively calls the `isTypeOf` method).
- */
-export type GraphQLArgs = {|
-  schema: GraphQLSchema,
-  source: string | Source,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  typeResolver?: ?GraphQLTypeResolver<any, any>,
-|};
-declare function graphql(GraphQLArgs, ..._: []): Promise<ExecutionResult>;
-/* eslint-disable no-redeclare */
-declare function graphql(
-  schema: GraphQLSchema,
-  source: Source | string,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  typeResolver?: ?GraphQLTypeResolver<any, any>,
-): Promise<ExecutionResult>;
-export function graphql(
-  argsOrSchema,
-  source,
-  rootValue,
-  contextValue,
-  variableValues,
-  operationName,
-  fieldResolver,
-  typeResolver,
-) {
-  /* eslint-enable no-redeclare */
-  // Always return a Promise for a consistent API.
-  return new Promise(resolve =>
-    resolve(
-      // Extract arguments from object args if provided.
-      arguments.length === 1
-        ? graphqlImpl(argsOrSchema)
-        : graphqlImpl({
-            schema: argsOrSchema,
-            source,
-            rootValue,
-            contextValue,
-            variableValues,
-            operationName,
-            fieldResolver,
-            typeResolver,
-          }),
-    ),
-  );
-}
-
-/**
- * The graphqlSync function also fulfills GraphQL operations by parsing,
- * validating, and executing a GraphQL document along side a GraphQL schema.
- * However, it guarantees to complete synchronously (or throw an error) assuming
- * that all field resolvers are also synchronous.
- */
-declare function graphqlSync(GraphQLArgs, ..._: []): ExecutionResult;
-/* eslint-disable no-redeclare */
-declare function graphqlSync(
-  schema: GraphQLSchema,
-  source: Source | string,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  typeResolver?: ?GraphQLTypeResolver<any, any>,
-): ExecutionResult;
-export function graphqlSync(
-  argsOrSchema,
-  source,
-  rootValue,
-  contextValue,
-  variableValues,
-  operationName,
-  fieldResolver,
-  typeResolver,
-) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  const result =
-    arguments.length === 1
-      ? graphqlImpl(argsOrSchema)
-      : graphqlImpl({
-          schema: argsOrSchema,
-          source,
-          rootValue,
-          contextValue,
-          variableValues,
-          operationName,
-          fieldResolver,
-          typeResolver,
-        });
-
-  // Assert that the execution was synchronous.
-  if (isPromise(result)) {
-    throw new Error('GraphQL execution failed to complete synchronously.');
-  }
-
-  return result;
-}
-
-function graphqlImpl(args: GraphQLArgs): PromiseOrValue<ExecutionResult> {
-  const {
-    schema,
-    source,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    fieldResolver,
-    typeResolver,
-  } = args;
-
-  // Validate Schema
-  const schemaValidationErrors = validateSchema(schema);
-  if (schemaValidationErrors.length > 0) {
-    return { errors: schemaValidationErrors };
-  }
-
-  // Parse
-  let document;
-  try {
-    document = parse(source);
-  } catch (syntaxError) {
-    return { errors: [syntaxError] };
-  }
-
-  // Validate
-  const validationErrors = validate(schema, document);
-  if (validationErrors.length > 0) {
-    return { errors: validationErrors };
-  }
-
-  // Execute
-  return execute({
-    schema,
-    document,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    fieldResolver,
-    typeResolver,
-  });
-}
diff --git a/node_modules/graphql/graphql.mjs b/node_modules/graphql/graphql.mjs
deleted file mode 100644
index aa3cb91..0000000
--- a/node_modules/graphql/graphql.mjs
+++ /dev/null
@@ -1,142 +0,0 @@
-import isPromise from "./jsutils/isPromise.mjs";
-import { parse } from "./language/parser.mjs";
-import { validate } from "./validation/validate.mjs";
-import { validateSchema } from "./type/validate.mjs";
-import { execute } from "./execution/execute.mjs";
-/**
- * This is the primary entry point function for fulfilling GraphQL operations
- * by parsing, validating, and executing a GraphQL document along side a
- * GraphQL schema.
- *
- * More sophisticated GraphQL servers, such as those which persist queries,
- * may wish to separate the validation and execution phases to a static time
- * tooling step, and a server runtime step.
- *
- * Accepts either an object with named arguments, or individual arguments:
- *
- * schema:
- *    The GraphQL type system to use when validating and executing a query.
- * source:
- *    A GraphQL language formatted string representing the requested operation.
- * rootValue:
- *    The value provided as the first argument to resolver functions on the top
- *    level type (e.g. the query object type).
- * contextValue:
- *    The context value is provided as an argument to resolver functions after
- *    field arguments. It is used to pass shared information useful at any point
- *    during executing this query, for example the currently logged in user and
- *    connections to databases or other services.
- * variableValues:
- *    A mapping of variable name to runtime value to use for all variables
- *    defined in the requestString.
- * operationName:
- *    The name of the operation to use if requestString contains multiple
- *    possible operations. Can be omitted if requestString contains only
- *    one operation.
- * fieldResolver:
- *    A resolver function to use when one is not provided by the schema.
- *    If not provided, the default field resolver is used (which looks for a
- *    value or method on the source value with the field's name).
- * typeResolver:
- *    A type resolver function to use when none is provided by the schema.
- *    If not provided, the default type resolver is used (which looks for a
- *    `__typename` field or alternatively calls the `isTypeOf` method).
- */
-
-export function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  var _arguments = arguments;
-
-  /* eslint-enable no-redeclare */
-  // Always return a Promise for a consistent API.
-  return new Promise(function (resolve) {
-    return resolve( // Extract arguments from object args if provided.
-    _arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
-      schema: argsOrSchema,
-      source: source,
-      rootValue: rootValue,
-      contextValue: contextValue,
-      variableValues: variableValues,
-      operationName: operationName,
-      fieldResolver: fieldResolver,
-      typeResolver: typeResolver
-    }));
-  });
-}
-/**
- * The graphqlSync function also fulfills GraphQL operations by parsing,
- * validating, and executing a GraphQL document along side a GraphQL schema.
- * However, it guarantees to complete synchronously (or throw an error) assuming
- * that all field resolvers are also synchronous.
- */
-
-export function graphqlSync(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  var result = arguments.length === 1 ? graphqlImpl(argsOrSchema) : graphqlImpl({
-    schema: argsOrSchema,
-    source: source,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  }); // Assert that the execution was synchronous.
-
-  if (isPromise(result)) {
-    throw new Error('GraphQL execution failed to complete synchronously.');
-  }
-
-  return result;
-}
-
-function graphqlImpl(args) {
-  var schema = args.schema,
-      source = args.source,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      typeResolver = args.typeResolver; // Validate Schema
-
-  var schemaValidationErrors = validateSchema(schema);
-
-  if (schemaValidationErrors.length > 0) {
-    return {
-      errors: schemaValidationErrors
-    };
-  } // Parse
-
-
-  var document;
-
-  try {
-    document = parse(source);
-  } catch (syntaxError) {
-    return {
-      errors: [syntaxError]
-    };
-  } // Validate
-
-
-  var validationErrors = validate(schema, document);
-
-  if (validationErrors.length > 0) {
-    return {
-      errors: validationErrors
-    };
-  } // Execute
-
-
-  return execute({
-    schema: schema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    typeResolver: typeResolver
-  });
-}
diff --git a/node_modules/graphql/index.d.ts b/node_modules/graphql/index.d.ts
deleted file mode 100644
index f318172..0000000
--- a/node_modules/graphql/index.d.ts
+++ /dev/null
@@ -1,446 +0,0 @@
-// Minimum TypeScript Version: 2.6
-
-/**
- * GraphQL.js provides a reference implementation for the GraphQL specification
- * but is also a useful utility for operating on GraphQL files and building
- * sophisticated tools.
- *
- * This primary module exports a general purpose function for fulfilling all
- * steps of the GraphQL specification in a single operation, but also includes
- * utilities for every part of the GraphQL specification:
- *
- *   - Parsing the GraphQL language.
- *   - Building a GraphQL type schema.
- *   - Validating a GraphQL request against a type schema.
- *   - Executing a GraphQL request against a type schema.
- *
- * This also includes utility functions for operating on GraphQL types and
- * GraphQL documents to facilitate building tools.
- *
- * You may also import from each sub-directory directly. For example, the
- * following two import statements are equivalent:
- *
- *     import { parse } from 'graphql';
- *     import { parse } from 'graphql/language';
- */
-
-// The GraphQL.js version info.
-export { version, versionInfo } from './version';
-
-// The primary entry point into fulfilling a GraphQL request.
-export { GraphQLArgs, graphql, graphqlSync } from './graphql';
-
-// Create and operate on GraphQL type definitions and schema.
-export {
-  // Definitions
-  GraphQLSchema,
-  GraphQLDirective,
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  GraphQLList,
-  GraphQLNonNull,
-  // Standard GraphQL Scalars
-  specifiedScalarTypes,
-  GraphQLInt,
-  GraphQLFloat,
-  GraphQLString,
-  GraphQLBoolean,
-  GraphQLID,
-  // Built-in Directives defined by the Spec
-  specifiedDirectives,
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-  GraphQLDeprecatedDirective,
-  // "Enum" of Type Kinds
-  TypeKind,
-  // Constant Deprecation Reason
-  DEFAULT_DEPRECATION_REASON,
-  // GraphQL Types for introspection.
-  introspectionTypes,
-  __Schema,
-  __Directive,
-  __DirectiveLocation,
-  __Type,
-  __Field,
-  __InputValue,
-  __EnumValue,
-  __TypeKind,
-  // Meta-field definitions.
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-  // Predicates
-  isSchema,
-  isDirective,
-  isType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isInputType,
-  isOutputType,
-  isLeafType,
-  isCompositeType,
-  isAbstractType,
-  isWrappingType,
-  isNullableType,
-  isNamedType,
-  isRequiredArgument,
-  isRequiredInputField,
-  isSpecifiedScalarType,
-  isIntrospectionType,
-  isSpecifiedDirective,
-  // Assertions
-  assertSchema,
-  assertDirective,
-  assertType,
-  assertScalarType,
-  assertObjectType,
-  assertInterfaceType,
-  assertUnionType,
-  assertEnumType,
-  assertInputObjectType,
-  assertListType,
-  assertNonNullType,
-  assertInputType,
-  assertOutputType,
-  assertLeafType,
-  assertCompositeType,
-  assertAbstractType,
-  assertWrappingType,
-  assertNullableType,
-  assertNamedType,
-  // Un-modifiers
-  getNullableType,
-  getNamedType,
-  // Validate GraphQL schema.
-  validateSchema,
-  assertValidSchema,
-} from './type/index';
-
-export {
-  GraphQLType,
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLLeafType,
-  GraphQLCompositeType,
-  GraphQLAbstractType,
-  GraphQLWrappingType,
-  GraphQLNullableType,
-  GraphQLNamedType,
-  Thunk,
-  GraphQLSchemaConfig,
-  GraphQLDirectiveConfig,
-  GraphQLArgument,
-  GraphQLArgumentConfig,
-  GraphQLEnumTypeConfig,
-  GraphQLEnumValue,
-  GraphQLEnumValueConfig,
-  GraphQLEnumValueConfigMap,
-  GraphQLField,
-  GraphQLFieldConfig,
-  GraphQLFieldConfigArgumentMap,
-  GraphQLFieldConfigMap,
-  GraphQLFieldMap,
-  GraphQLFieldResolver,
-  GraphQLInputField,
-  GraphQLInputFieldConfig,
-  GraphQLInputFieldConfigMap,
-  GraphQLInputFieldMap,
-  GraphQLInputObjectTypeConfig,
-  GraphQLInterfaceTypeConfig,
-  GraphQLIsTypeOfFn,
-  GraphQLObjectTypeConfig,
-  GraphQLResolveInfo,
-  ResponsePath,
-  GraphQLScalarTypeConfig,
-  GraphQLTypeResolver,
-  GraphQLUnionTypeConfig,
-  GraphQLScalarSerializer,
-  GraphQLScalarValueParser,
-  GraphQLScalarLiteralParser,
-} from './type/index';
-
-// Parse and operate on GraphQL language source files.
-export {
-  Source,
-  getLocation,
-  // Print source location
-  printLocation,
-  printSourceLocation,
-  // Lex
-  Lexer,
-  TokenKind,
-  // Parse
-  parse,
-  parseValue,
-  parseType,
-  // Print
-  print,
-  // Visit
-  visit,
-  visitInParallel,
-  getVisitFn,
-  BREAK,
-  Kind,
-  DirectiveLocation,
-  // Predicates
-  isDefinitionNode,
-  isExecutableDefinitionNode,
-  isSelectionNode,
-  isValueNode,
-  isTypeNode,
-  isTypeSystemDefinitionNode,
-  isTypeDefinitionNode,
-  isTypeSystemExtensionNode,
-  isTypeExtensionNode,
-} from './language/index';
-
-export {
-  ParseOptions,
-  SourceLocation,
-  Location,
-  Token,
-  TokenKindEnum,
-  KindEnum,
-  DirectiveLocationEnum,
-  // Visitor utilities
-  ASTVisitor,
-  Visitor,
-  VisitFn,
-  VisitorKeyMap,
-  // AST nodes
-  ASTNode,
-  ASTKindToNode,
-  // Each kind of AST node
-  NameNode,
-  DocumentNode,
-  DefinitionNode,
-  ExecutableDefinitionNode,
-  OperationDefinitionNode,
-  OperationTypeNode,
-  VariableDefinitionNode,
-  VariableNode,
-  SelectionSetNode,
-  SelectionNode,
-  FieldNode,
-  ArgumentNode,
-  FragmentSpreadNode,
-  InlineFragmentNode,
-  FragmentDefinitionNode,
-  ValueNode,
-  IntValueNode,
-  FloatValueNode,
-  StringValueNode,
-  BooleanValueNode,
-  NullValueNode,
-  EnumValueNode,
-  ListValueNode,
-  ObjectValueNode,
-  ObjectFieldNode,
-  DirectiveNode,
-  TypeNode,
-  NamedTypeNode,
-  ListTypeNode,
-  NonNullTypeNode,
-  TypeSystemDefinitionNode,
-  SchemaDefinitionNode,
-  OperationTypeDefinitionNode,
-  TypeDefinitionNode,
-  ScalarTypeDefinitionNode,
-  ObjectTypeDefinitionNode,
-  FieldDefinitionNode,
-  InputValueDefinitionNode,
-  InterfaceTypeDefinitionNode,
-  UnionTypeDefinitionNode,
-  EnumTypeDefinitionNode,
-  EnumValueDefinitionNode,
-  InputObjectTypeDefinitionNode,
-  DirectiveDefinitionNode,
-  TypeSystemExtensionNode,
-  SchemaExtensionNode,
-  TypeExtensionNode,
-  ScalarTypeExtensionNode,
-  ObjectTypeExtensionNode,
-  InterfaceTypeExtensionNode,
-  UnionTypeExtensionNode,
-  EnumTypeExtensionNode,
-  InputObjectTypeExtensionNode,
-} from './language/index';
-
-// Execute GraphQL queries.
-export {
-  execute,
-  defaultFieldResolver,
-  defaultTypeResolver,
-  responsePathAsArray,
-  getDirectiveValues,
-  ExecutionArgs,
-  ExecutionResult,
-} from './execution/index';
-
-export {
-  subscribe,
-  createSourceEventStream,
-  SubscriptionArgs,
-} from './subscription/index';
-
-// Validate GraphQL documents.
-export {
-  validate,
-  ValidationContext,
-  // All validation rules in the GraphQL Specification.
-  specifiedRules,
-  // Individual validation rules.
-  ExecutableDefinitionsRule,
-  FieldsOnCorrectTypeRule,
-  FragmentsOnCompositeTypesRule,
-  KnownArgumentNamesRule,
-  KnownDirectivesRule,
-  KnownFragmentNamesRule,
-  KnownTypeNamesRule,
-  LoneAnonymousOperationRule,
-  NoFragmentCyclesRule,
-  NoUndefinedVariablesRule,
-  NoUnusedFragmentsRule,
-  NoUnusedVariablesRule,
-  OverlappingFieldsCanBeMergedRule,
-  PossibleFragmentSpreadsRule,
-  ProvidedRequiredArgumentsRule,
-  ScalarLeafsRule,
-  SingleFieldSubscriptionsRule,
-  UniqueArgumentNamesRule,
-  UniqueDirectivesPerLocationRule,
-  UniqueFragmentNamesRule,
-  UniqueInputFieldNamesRule,
-  UniqueOperationNamesRule,
-  UniqueVariableNamesRule,
-  ValuesOfCorrectTypeRule,
-  VariablesAreInputTypesRule,
-  VariablesInAllowedPositionRule,
-  // SDL-specific validation rules
-  LoneSchemaDefinitionRule,
-  UniqueOperationTypesRule,
-  UniqueTypeNamesRule,
-  UniqueEnumValueNamesRule,
-  UniqueFieldDefinitionNamesRule,
-  UniqueDirectiveNamesRule,
-  PossibleTypeExtensionsRule,
-  ValidationRule,
-} from './validation/index';
-
-// Create, format, and print GraphQL errors.
-export {
-  GraphQLError,
-  syntaxError,
-  locatedError,
-  printError,
-  formatError,
-  GraphQLFormattedError,
-} from './error/index';
-
-// Utilities for operating on GraphQL type schema and parsed sources.
-export {
-  // Produce the GraphQL query recommended for a full schema introspection.
-  // Accepts optional IntrospectionOptions.
-  getIntrospectionQuery,
-  // Gets the target Operation from a Document.
-  getOperationAST,
-  // Gets the Type for the target Operation AST.
-  getOperationRootType,
-  // Convert a GraphQLSchema to an IntrospectionQuery.
-  introspectionFromSchema,
-  // Build a GraphQLSchema from an introspection result.
-  buildClientSchema,
-  // Build a GraphQLSchema from a parsed GraphQL Schema language AST.
-  buildASTSchema,
-  // Build a GraphQLSchema from a GraphQL schema language document.
-  buildSchema,
-  // @deprecated: Get the description from a schema AST node and supports legacy
-  // syntax for specifying descriptions - will be removed in v16.
-  getDescription,
-  // Extends an existing GraphQLSchema from a parsed GraphQL Schema
-  // language AST.
-  extendSchema,
-  // Sort a GraphQLSchema.
-  lexicographicSortSchema,
-  // Print a GraphQLSchema to GraphQL Schema language.
-  printSchema,
-  // Print a GraphQLType to GraphQL Schema language.
-  printType,
-  // Prints the built-in introspection schema in the Schema Language
-  // format.
-  printIntrospectionSchema,
-  // Create a GraphQLType from a GraphQL language AST.
-  typeFromAST,
-  // Create a JavaScript value from a GraphQL language AST with a Type.
-  valueFromAST,
-  // Create a JavaScript value from a GraphQL language AST without a Type.
-  valueFromASTUntyped,
-  // Create a GraphQL language AST from a JavaScript value.
-  astFromValue,
-  // A helper to use within recursive-descent visitors which need to be aware of
-  // the GraphQL type system.
-  TypeInfo,
-  visitWithTypeInfo,
-  // Coerces a JavaScript value to a GraphQL type, or produces errors.
-  coerceInputValue,
-  // Concatenates multiple AST together.
-  concatAST,
-  // Separates an AST into an AST per Operation.
-  separateOperations,
-  // Strips characters that are not significant to the validity or execution
-  // of a GraphQL document.
-  stripIgnoredCharacters,
-  // Comparators for types
-  isEqualType,
-  isTypeSubTypeOf,
-  doTypesOverlap,
-  // Asserts a string is a valid GraphQL name.
-  assertValidName,
-  // Determine if a string is a valid GraphQL name.
-  isValidNameError,
-  // Compares two GraphQLSchemas and detects breaking changes.
-  BreakingChangeType,
-  DangerousChangeType,
-  findBreakingChanges,
-  findDangerousChanges,
-  // Report all deprecated usage within a GraphQL document.
-  findDeprecatedUsages,
-} from './utilities/index';
-
-export {
-  IntrospectionOptions,
-  IntrospectionQuery,
-  IntrospectionSchema,
-  IntrospectionType,
-  IntrospectionInputType,
-  IntrospectionOutputType,
-  IntrospectionScalarType,
-  IntrospectionObjectType,
-  IntrospectionInterfaceType,
-  IntrospectionUnionType,
-  IntrospectionEnumType,
-  IntrospectionInputObjectType,
-  IntrospectionTypeRef,
-  IntrospectionInputTypeRef,
-  IntrospectionOutputTypeRef,
-  IntrospectionNamedTypeRef,
-  IntrospectionListTypeRef,
-  IntrospectionNonNullTypeRef,
-  IntrospectionField,
-  IntrospectionInputValue,
-  IntrospectionEnumValue,
-  IntrospectionDirective,
-  BuildSchemaOptions,
-  BreakingChange,
-  DangerousChange,
-} from './utilities/index';
diff --git a/node_modules/graphql/index.js b/node_modules/graphql/index.js
deleted file mode 100644
index 0d3d256..0000000
--- a/node_modules/graphql/index.js
+++ /dev/null
@@ -1,1169 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "version", {
-  enumerable: true,
-  get: function get() {
-    return _version.version;
-  }
-});
-Object.defineProperty(exports, "versionInfo", {
-  enumerable: true,
-  get: function get() {
-    return _version.versionInfo;
-  }
-});
-Object.defineProperty(exports, "graphql", {
-  enumerable: true,
-  get: function get() {
-    return _graphql.graphql;
-  }
-});
-Object.defineProperty(exports, "graphqlSync", {
-  enumerable: true,
-  get: function get() {
-    return _graphql.graphqlSync;
-  }
-});
-Object.defineProperty(exports, "GraphQLSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLSchema;
-  }
-});
-Object.defineProperty(exports, "GraphQLDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLScalarType;
-  }
-});
-Object.defineProperty(exports, "GraphQLObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLObjectType;
-  }
-});
-Object.defineProperty(exports, "GraphQLInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLInterfaceType;
-  }
-});
-Object.defineProperty(exports, "GraphQLUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLUnionType;
-  }
-});
-Object.defineProperty(exports, "GraphQLEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLEnumType;
-  }
-});
-Object.defineProperty(exports, "GraphQLInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLInputObjectType;
-  }
-});
-Object.defineProperty(exports, "GraphQLList", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLList;
-  }
-});
-Object.defineProperty(exports, "GraphQLNonNull", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLNonNull;
-  }
-});
-Object.defineProperty(exports, "specifiedScalarTypes", {
-  enumerable: true,
-  get: function get() {
-    return _index.specifiedScalarTypes;
-  }
-});
-Object.defineProperty(exports, "GraphQLInt", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLInt;
-  }
-});
-Object.defineProperty(exports, "GraphQLFloat", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLFloat;
-  }
-});
-Object.defineProperty(exports, "GraphQLString", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLString;
-  }
-});
-Object.defineProperty(exports, "GraphQLBoolean", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLBoolean;
-  }
-});
-Object.defineProperty(exports, "GraphQLID", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLID;
-  }
-});
-Object.defineProperty(exports, "specifiedDirectives", {
-  enumerable: true,
-  get: function get() {
-    return _index.specifiedDirectives;
-  }
-});
-Object.defineProperty(exports, "GraphQLIncludeDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLIncludeDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLSkipDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLSkipDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLDeprecatedDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.GraphQLDeprecatedDirective;
-  }
-});
-Object.defineProperty(exports, "TypeKind", {
-  enumerable: true,
-  get: function get() {
-    return _index.TypeKind;
-  }
-});
-Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", {
-  enumerable: true,
-  get: function get() {
-    return _index.DEFAULT_DEPRECATION_REASON;
-  }
-});
-Object.defineProperty(exports, "introspectionTypes", {
-  enumerable: true,
-  get: function get() {
-    return _index.introspectionTypes;
-  }
-});
-Object.defineProperty(exports, "__Schema", {
-  enumerable: true,
-  get: function get() {
-    return _index.__Schema;
-  }
-});
-Object.defineProperty(exports, "__Directive", {
-  enumerable: true,
-  get: function get() {
-    return _index.__Directive;
-  }
-});
-Object.defineProperty(exports, "__DirectiveLocation", {
-  enumerable: true,
-  get: function get() {
-    return _index.__DirectiveLocation;
-  }
-});
-Object.defineProperty(exports, "__Type", {
-  enumerable: true,
-  get: function get() {
-    return _index.__Type;
-  }
-});
-Object.defineProperty(exports, "__Field", {
-  enumerable: true,
-  get: function get() {
-    return _index.__Field;
-  }
-});
-Object.defineProperty(exports, "__InputValue", {
-  enumerable: true,
-  get: function get() {
-    return _index.__InputValue;
-  }
-});
-Object.defineProperty(exports, "__EnumValue", {
-  enumerable: true,
-  get: function get() {
-    return _index.__EnumValue;
-  }
-});
-Object.defineProperty(exports, "__TypeKind", {
-  enumerable: true,
-  get: function get() {
-    return _index.__TypeKind;
-  }
-});
-Object.defineProperty(exports, "SchemaMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _index.SchemaMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "TypeMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _index.TypeMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "TypeNameMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _index.TypeNameMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "isSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index.isSchema;
-  }
-});
-Object.defineProperty(exports, "isDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.isDirective;
-  }
-});
-Object.defineProperty(exports, "isType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isType;
-  }
-});
-Object.defineProperty(exports, "isScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isScalarType;
-  }
-});
-Object.defineProperty(exports, "isObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isObjectType;
-  }
-});
-Object.defineProperty(exports, "isInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isInterfaceType;
-  }
-});
-Object.defineProperty(exports, "isUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isUnionType;
-  }
-});
-Object.defineProperty(exports, "isEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isEnumType;
-  }
-});
-Object.defineProperty(exports, "isInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isInputObjectType;
-  }
-});
-Object.defineProperty(exports, "isListType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isListType;
-  }
-});
-Object.defineProperty(exports, "isNonNullType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isNonNullType;
-  }
-});
-Object.defineProperty(exports, "isInputType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isInputType;
-  }
-});
-Object.defineProperty(exports, "isOutputType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isOutputType;
-  }
-});
-Object.defineProperty(exports, "isLeafType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isLeafType;
-  }
-});
-Object.defineProperty(exports, "isCompositeType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isCompositeType;
-  }
-});
-Object.defineProperty(exports, "isAbstractType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isAbstractType;
-  }
-});
-Object.defineProperty(exports, "isWrappingType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isWrappingType;
-  }
-});
-Object.defineProperty(exports, "isNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isNullableType;
-  }
-});
-Object.defineProperty(exports, "isNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isNamedType;
-  }
-});
-Object.defineProperty(exports, "isRequiredArgument", {
-  enumerable: true,
-  get: function get() {
-    return _index.isRequiredArgument;
-  }
-});
-Object.defineProperty(exports, "isRequiredInputField", {
-  enumerable: true,
-  get: function get() {
-    return _index.isRequiredInputField;
-  }
-});
-Object.defineProperty(exports, "isSpecifiedScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isSpecifiedScalarType;
-  }
-});
-Object.defineProperty(exports, "isIntrospectionType", {
-  enumerable: true,
-  get: function get() {
-    return _index.isIntrospectionType;
-  }
-});
-Object.defineProperty(exports, "isSpecifiedDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.isSpecifiedDirective;
-  }
-});
-Object.defineProperty(exports, "assertSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertSchema;
-  }
-});
-Object.defineProperty(exports, "assertDirective", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertDirective;
-  }
-});
-Object.defineProperty(exports, "assertType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertType;
-  }
-});
-Object.defineProperty(exports, "assertScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertScalarType;
-  }
-});
-Object.defineProperty(exports, "assertObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertObjectType;
-  }
-});
-Object.defineProperty(exports, "assertInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertInterfaceType;
-  }
-});
-Object.defineProperty(exports, "assertUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertUnionType;
-  }
-});
-Object.defineProperty(exports, "assertEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertEnumType;
-  }
-});
-Object.defineProperty(exports, "assertInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertInputObjectType;
-  }
-});
-Object.defineProperty(exports, "assertListType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertListType;
-  }
-});
-Object.defineProperty(exports, "assertNonNullType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertNonNullType;
-  }
-});
-Object.defineProperty(exports, "assertInputType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertInputType;
-  }
-});
-Object.defineProperty(exports, "assertOutputType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertOutputType;
-  }
-});
-Object.defineProperty(exports, "assertLeafType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertLeafType;
-  }
-});
-Object.defineProperty(exports, "assertCompositeType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertCompositeType;
-  }
-});
-Object.defineProperty(exports, "assertAbstractType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertAbstractType;
-  }
-});
-Object.defineProperty(exports, "assertWrappingType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertWrappingType;
-  }
-});
-Object.defineProperty(exports, "assertNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertNullableType;
-  }
-});
-Object.defineProperty(exports, "assertNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertNamedType;
-  }
-});
-Object.defineProperty(exports, "getNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _index.getNullableType;
-  }
-});
-Object.defineProperty(exports, "getNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _index.getNamedType;
-  }
-});
-Object.defineProperty(exports, "validateSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index.validateSchema;
-  }
-});
-Object.defineProperty(exports, "assertValidSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index.assertValidSchema;
-  }
-});
-Object.defineProperty(exports, "Source", {
-  enumerable: true,
-  get: function get() {
-    return _index2.Source;
-  }
-});
-Object.defineProperty(exports, "getLocation", {
-  enumerable: true,
-  get: function get() {
-    return _index2.getLocation;
-  }
-});
-Object.defineProperty(exports, "printLocation", {
-  enumerable: true,
-  get: function get() {
-    return _index2.printLocation;
-  }
-});
-Object.defineProperty(exports, "printSourceLocation", {
-  enumerable: true,
-  get: function get() {
-    return _index2.printSourceLocation;
-  }
-});
-Object.defineProperty(exports, "Lexer", {
-  enumerable: true,
-  get: function get() {
-    return _index2.Lexer;
-  }
-});
-Object.defineProperty(exports, "TokenKind", {
-  enumerable: true,
-  get: function get() {
-    return _index2.TokenKind;
-  }
-});
-Object.defineProperty(exports, "parse", {
-  enumerable: true,
-  get: function get() {
-    return _index2.parse;
-  }
-});
-Object.defineProperty(exports, "parseValue", {
-  enumerable: true,
-  get: function get() {
-    return _index2.parseValue;
-  }
-});
-Object.defineProperty(exports, "parseType", {
-  enumerable: true,
-  get: function get() {
-    return _index2.parseType;
-  }
-});
-Object.defineProperty(exports, "print", {
-  enumerable: true,
-  get: function get() {
-    return _index2.print;
-  }
-});
-Object.defineProperty(exports, "visit", {
-  enumerable: true,
-  get: function get() {
-    return _index2.visit;
-  }
-});
-Object.defineProperty(exports, "visitInParallel", {
-  enumerable: true,
-  get: function get() {
-    return _index2.visitInParallel;
-  }
-});
-Object.defineProperty(exports, "getVisitFn", {
-  enumerable: true,
-  get: function get() {
-    return _index2.getVisitFn;
-  }
-});
-Object.defineProperty(exports, "BREAK", {
-  enumerable: true,
-  get: function get() {
-    return _index2.BREAK;
-  }
-});
-Object.defineProperty(exports, "Kind", {
-  enumerable: true,
-  get: function get() {
-    return _index2.Kind;
-  }
-});
-Object.defineProperty(exports, "DirectiveLocation", {
-  enumerable: true,
-  get: function get() {
-    return _index2.DirectiveLocation;
-  }
-});
-Object.defineProperty(exports, "isDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isExecutableDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isExecutableDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isSelectionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isSelectionNode;
-  }
-});
-Object.defineProperty(exports, "isValueNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isValueNode;
-  }
-});
-Object.defineProperty(exports, "isTypeNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isTypeNode;
-  }
-});
-Object.defineProperty(exports, "isTypeSystemDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isTypeSystemDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isTypeDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeSystemExtensionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isTypeSystemExtensionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeExtensionNode", {
-  enumerable: true,
-  get: function get() {
-    return _index2.isTypeExtensionNode;
-  }
-});
-Object.defineProperty(exports, "execute", {
-  enumerable: true,
-  get: function get() {
-    return _index3.execute;
-  }
-});
-Object.defineProperty(exports, "defaultFieldResolver", {
-  enumerable: true,
-  get: function get() {
-    return _index3.defaultFieldResolver;
-  }
-});
-Object.defineProperty(exports, "defaultTypeResolver", {
-  enumerable: true,
-  get: function get() {
-    return _index3.defaultTypeResolver;
-  }
-});
-Object.defineProperty(exports, "responsePathAsArray", {
-  enumerable: true,
-  get: function get() {
-    return _index3.responsePathAsArray;
-  }
-});
-Object.defineProperty(exports, "getDirectiveValues", {
-  enumerable: true,
-  get: function get() {
-    return _index3.getDirectiveValues;
-  }
-});
-Object.defineProperty(exports, "subscribe", {
-  enumerable: true,
-  get: function get() {
-    return _index4.subscribe;
-  }
-});
-Object.defineProperty(exports, "createSourceEventStream", {
-  enumerable: true,
-  get: function get() {
-    return _index4.createSourceEventStream;
-  }
-});
-Object.defineProperty(exports, "validate", {
-  enumerable: true,
-  get: function get() {
-    return _index5.validate;
-  }
-});
-Object.defineProperty(exports, "ValidationContext", {
-  enumerable: true,
-  get: function get() {
-    return _index5.ValidationContext;
-  }
-});
-Object.defineProperty(exports, "specifiedRules", {
-  enumerable: true,
-  get: function get() {
-    return _index5.specifiedRules;
-  }
-});
-Object.defineProperty(exports, "ExecutableDefinitionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.ExecutableDefinitionsRule;
-  }
-});
-Object.defineProperty(exports, "FieldsOnCorrectTypeRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.FieldsOnCorrectTypeRule;
-  }
-});
-Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.FragmentsOnCompositeTypesRule;
-  }
-});
-Object.defineProperty(exports, "KnownArgumentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.KnownArgumentNamesRule;
-  }
-});
-Object.defineProperty(exports, "KnownDirectivesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.KnownDirectivesRule;
-  }
-});
-Object.defineProperty(exports, "KnownFragmentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.KnownFragmentNamesRule;
-  }
-});
-Object.defineProperty(exports, "KnownTypeNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.KnownTypeNamesRule;
-  }
-});
-Object.defineProperty(exports, "LoneAnonymousOperationRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.LoneAnonymousOperationRule;
-  }
-});
-Object.defineProperty(exports, "NoFragmentCyclesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.NoFragmentCyclesRule;
-  }
-});
-Object.defineProperty(exports, "NoUndefinedVariablesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.NoUndefinedVariablesRule;
-  }
-});
-Object.defineProperty(exports, "NoUnusedFragmentsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.NoUnusedFragmentsRule;
-  }
-});
-Object.defineProperty(exports, "NoUnusedVariablesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.NoUnusedVariablesRule;
-  }
-});
-Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.OverlappingFieldsCanBeMergedRule;
-  }
-});
-Object.defineProperty(exports, "PossibleFragmentSpreadsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.PossibleFragmentSpreadsRule;
-  }
-});
-Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.ProvidedRequiredArgumentsRule;
-  }
-});
-Object.defineProperty(exports, "ScalarLeafsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.ScalarLeafsRule;
-  }
-});
-Object.defineProperty(exports, "SingleFieldSubscriptionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.SingleFieldSubscriptionsRule;
-  }
-});
-Object.defineProperty(exports, "UniqueArgumentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueArgumentNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueDirectivesPerLocationRule;
-  }
-});
-Object.defineProperty(exports, "UniqueFragmentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueFragmentNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueInputFieldNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueInputFieldNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueOperationNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueOperationNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueVariableNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueVariableNamesRule;
-  }
-});
-Object.defineProperty(exports, "ValuesOfCorrectTypeRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.ValuesOfCorrectTypeRule;
-  }
-});
-Object.defineProperty(exports, "VariablesAreInputTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.VariablesAreInputTypesRule;
-  }
-});
-Object.defineProperty(exports, "VariablesInAllowedPositionRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.VariablesInAllowedPositionRule;
-  }
-});
-Object.defineProperty(exports, "LoneSchemaDefinitionRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.LoneSchemaDefinitionRule;
-  }
-});
-Object.defineProperty(exports, "UniqueOperationTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueOperationTypesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueTypeNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueTypeNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueEnumValueNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueEnumValueNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueFieldDefinitionNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueDirectiveNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.UniqueDirectiveNamesRule;
-  }
-});
-Object.defineProperty(exports, "PossibleTypeExtensionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _index5.PossibleTypeExtensionsRule;
-  }
-});
-Object.defineProperty(exports, "GraphQLError", {
-  enumerable: true,
-  get: function get() {
-    return _index6.GraphQLError;
-  }
-});
-Object.defineProperty(exports, "syntaxError", {
-  enumerable: true,
-  get: function get() {
-    return _index6.syntaxError;
-  }
-});
-Object.defineProperty(exports, "locatedError", {
-  enumerable: true,
-  get: function get() {
-    return _index6.locatedError;
-  }
-});
-Object.defineProperty(exports, "printError", {
-  enumerable: true,
-  get: function get() {
-    return _index6.printError;
-  }
-});
-Object.defineProperty(exports, "formatError", {
-  enumerable: true,
-  get: function get() {
-    return _index6.formatError;
-  }
-});
-Object.defineProperty(exports, "getIntrospectionQuery", {
-  enumerable: true,
-  get: function get() {
-    return _index7.getIntrospectionQuery;
-  }
-});
-Object.defineProperty(exports, "getOperationAST", {
-  enumerable: true,
-  get: function get() {
-    return _index7.getOperationAST;
-  }
-});
-Object.defineProperty(exports, "getOperationRootType", {
-  enumerable: true,
-  get: function get() {
-    return _index7.getOperationRootType;
-  }
-});
-Object.defineProperty(exports, "introspectionFromSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.introspectionFromSchema;
-  }
-});
-Object.defineProperty(exports, "buildClientSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.buildClientSchema;
-  }
-});
-Object.defineProperty(exports, "buildASTSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.buildASTSchema;
-  }
-});
-Object.defineProperty(exports, "buildSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.buildSchema;
-  }
-});
-Object.defineProperty(exports, "getDescription", {
-  enumerable: true,
-  get: function get() {
-    return _index7.getDescription;
-  }
-});
-Object.defineProperty(exports, "extendSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.extendSchema;
-  }
-});
-Object.defineProperty(exports, "lexicographicSortSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.lexicographicSortSchema;
-  }
-});
-Object.defineProperty(exports, "printSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.printSchema;
-  }
-});
-Object.defineProperty(exports, "printType", {
-  enumerable: true,
-  get: function get() {
-    return _index7.printType;
-  }
-});
-Object.defineProperty(exports, "printIntrospectionSchema", {
-  enumerable: true,
-  get: function get() {
-    return _index7.printIntrospectionSchema;
-  }
-});
-Object.defineProperty(exports, "typeFromAST", {
-  enumerable: true,
-  get: function get() {
-    return _index7.typeFromAST;
-  }
-});
-Object.defineProperty(exports, "valueFromAST", {
-  enumerable: true,
-  get: function get() {
-    return _index7.valueFromAST;
-  }
-});
-Object.defineProperty(exports, "valueFromASTUntyped", {
-  enumerable: true,
-  get: function get() {
-    return _index7.valueFromASTUntyped;
-  }
-});
-Object.defineProperty(exports, "astFromValue", {
-  enumerable: true,
-  get: function get() {
-    return _index7.astFromValue;
-  }
-});
-Object.defineProperty(exports, "TypeInfo", {
-  enumerable: true,
-  get: function get() {
-    return _index7.TypeInfo;
-  }
-});
-Object.defineProperty(exports, "visitWithTypeInfo", {
-  enumerable: true,
-  get: function get() {
-    return _index7.visitWithTypeInfo;
-  }
-});
-Object.defineProperty(exports, "coerceInputValue", {
-  enumerable: true,
-  get: function get() {
-    return _index7.coerceInputValue;
-  }
-});
-Object.defineProperty(exports, "concatAST", {
-  enumerable: true,
-  get: function get() {
-    return _index7.concatAST;
-  }
-});
-Object.defineProperty(exports, "separateOperations", {
-  enumerable: true,
-  get: function get() {
-    return _index7.separateOperations;
-  }
-});
-Object.defineProperty(exports, "stripIgnoredCharacters", {
-  enumerable: true,
-  get: function get() {
-    return _index7.stripIgnoredCharacters;
-  }
-});
-Object.defineProperty(exports, "isEqualType", {
-  enumerable: true,
-  get: function get() {
-    return _index7.isEqualType;
-  }
-});
-Object.defineProperty(exports, "isTypeSubTypeOf", {
-  enumerable: true,
-  get: function get() {
-    return _index7.isTypeSubTypeOf;
-  }
-});
-Object.defineProperty(exports, "doTypesOverlap", {
-  enumerable: true,
-  get: function get() {
-    return _index7.doTypesOverlap;
-  }
-});
-Object.defineProperty(exports, "assertValidName", {
-  enumerable: true,
-  get: function get() {
-    return _index7.assertValidName;
-  }
-});
-Object.defineProperty(exports, "isValidNameError", {
-  enumerable: true,
-  get: function get() {
-    return _index7.isValidNameError;
-  }
-});
-Object.defineProperty(exports, "BreakingChangeType", {
-  enumerable: true,
-  get: function get() {
-    return _index7.BreakingChangeType;
-  }
-});
-Object.defineProperty(exports, "DangerousChangeType", {
-  enumerable: true,
-  get: function get() {
-    return _index7.DangerousChangeType;
-  }
-});
-Object.defineProperty(exports, "findBreakingChanges", {
-  enumerable: true,
-  get: function get() {
-    return _index7.findBreakingChanges;
-  }
-});
-Object.defineProperty(exports, "findDangerousChanges", {
-  enumerable: true,
-  get: function get() {
-    return _index7.findDangerousChanges;
-  }
-});
-Object.defineProperty(exports, "findDeprecatedUsages", {
-  enumerable: true,
-  get: function get() {
-    return _index7.findDeprecatedUsages;
-  }
-});
-
-var _version = require("./version");
-
-var _graphql = require("./graphql");
-
-var _index = require("./type/index");
-
-var _index2 = require("./language/index");
-
-var _index3 = require("./execution/index");
-
-var _index4 = require("./subscription/index");
-
-var _index5 = require("./validation/index");
-
-var _index6 = require("./error/index");
-
-var _index7 = require("./utilities/index");
diff --git a/node_modules/graphql/index.js.flow b/node_modules/graphql/index.js.flow
deleted file mode 100644
index e92c936..0000000
--- a/node_modules/graphql/index.js.flow
+++ /dev/null
@@ -1,446 +0,0 @@
-// @flow strict
-
-/**
- * GraphQL.js provides a reference implementation for the GraphQL specification
- * but is also a useful utility for operating on GraphQL files and building
- * sophisticated tools.
- *
- * This primary module exports a general purpose function for fulfilling all
- * steps of the GraphQL specification in a single operation, but also includes
- * utilities for every part of the GraphQL specification:
- *
- *   - Parsing the GraphQL language.
- *   - Building a GraphQL type schema.
- *   - Validating a GraphQL request against a type schema.
- *   - Executing a GraphQL request against a type schema.
- *
- * This also includes utility functions for operating on GraphQL types and
- * GraphQL documents to facilitate building tools.
- *
- * You may also import from each sub-directory directly. For example, the
- * following two import statements are equivalent:
- *
- *     import { parse } from 'graphql';
- *     import { parse } from 'graphql/language';
- */
-
-// The GraphQL.js version info.
-export { version, versionInfo } from './version';
-
-// The primary entry point into fulfilling a GraphQL request.
-export type { GraphQLArgs } from './graphql';
-export { graphql, graphqlSync } from './graphql';
-
-// Create and operate on GraphQL type definitions and schema.
-export {
-  // Definitions
-  GraphQLSchema,
-  GraphQLDirective,
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  GraphQLList,
-  GraphQLNonNull,
-  // Standard GraphQL Scalars
-  specifiedScalarTypes,
-  GraphQLInt,
-  GraphQLFloat,
-  GraphQLString,
-  GraphQLBoolean,
-  GraphQLID,
-  // Built-in Directives defined by the Spec
-  specifiedDirectives,
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-  GraphQLDeprecatedDirective,
-  // "Enum" of Type Kinds
-  TypeKind,
-  // Constant Deprecation Reason
-  DEFAULT_DEPRECATION_REASON,
-  // GraphQL Types for introspection.
-  introspectionTypes,
-  __Schema,
-  __Directive,
-  __DirectiveLocation,
-  __Type,
-  __Field,
-  __InputValue,
-  __EnumValue,
-  __TypeKind,
-  // Meta-field definitions.
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-  // Predicates
-  isSchema,
-  isDirective,
-  isType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isInputType,
-  isOutputType,
-  isLeafType,
-  isCompositeType,
-  isAbstractType,
-  isWrappingType,
-  isNullableType,
-  isNamedType,
-  isRequiredArgument,
-  isRequiredInputField,
-  isSpecifiedScalarType,
-  isIntrospectionType,
-  isSpecifiedDirective,
-  // Assertions
-  assertSchema,
-  assertDirective,
-  assertType,
-  assertScalarType,
-  assertObjectType,
-  assertInterfaceType,
-  assertUnionType,
-  assertEnumType,
-  assertInputObjectType,
-  assertListType,
-  assertNonNullType,
-  assertInputType,
-  assertOutputType,
-  assertLeafType,
-  assertCompositeType,
-  assertAbstractType,
-  assertWrappingType,
-  assertNullableType,
-  assertNamedType,
-  // Un-modifiers
-  getNullableType,
-  getNamedType,
-  // Validate GraphQL schema.
-  validateSchema,
-  assertValidSchema,
-} from './type/index';
-
-export type {
-  GraphQLType,
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLLeafType,
-  GraphQLCompositeType,
-  GraphQLAbstractType,
-  GraphQLWrappingType,
-  GraphQLNullableType,
-  GraphQLNamedType,
-  Thunk,
-  GraphQLSchemaConfig,
-  GraphQLDirectiveConfig,
-  GraphQLArgument,
-  GraphQLArgumentConfig,
-  GraphQLEnumTypeConfig,
-  GraphQLEnumValue,
-  GraphQLEnumValueConfig,
-  GraphQLEnumValueConfigMap,
-  GraphQLField,
-  GraphQLFieldConfig,
-  GraphQLFieldConfigArgumentMap,
-  GraphQLFieldConfigMap,
-  GraphQLFieldMap,
-  GraphQLFieldResolver,
-  GraphQLInputField,
-  GraphQLInputFieldConfig,
-  GraphQLInputFieldConfigMap,
-  GraphQLInputFieldMap,
-  GraphQLInputObjectTypeConfig,
-  GraphQLInterfaceTypeConfig,
-  GraphQLIsTypeOfFn,
-  GraphQLObjectTypeConfig,
-  GraphQLResolveInfo,
-  ResponsePath,
-  GraphQLScalarTypeConfig,
-  GraphQLTypeResolver,
-  GraphQLUnionTypeConfig,
-  GraphQLScalarSerializer,
-  GraphQLScalarValueParser,
-  GraphQLScalarLiteralParser,
-} from './type/index';
-
-// Parse and operate on GraphQL language source files.
-export {
-  Source,
-  getLocation,
-  // Print source location
-  printLocation,
-  printSourceLocation,
-  // Lex
-  Lexer,
-  TokenKind,
-  // Parse
-  parse,
-  parseValue,
-  parseType,
-  // Print
-  print,
-  // Visit
-  visit,
-  visitInParallel,
-  getVisitFn,
-  BREAK,
-  Kind,
-  DirectiveLocation,
-  // Predicates
-  isDefinitionNode,
-  isExecutableDefinitionNode,
-  isSelectionNode,
-  isValueNode,
-  isTypeNode,
-  isTypeSystemDefinitionNode,
-  isTypeDefinitionNode,
-  isTypeSystemExtensionNode,
-  isTypeExtensionNode,
-} from './language/index';
-
-export type {
-  ParseOptions,
-  SourceLocation,
-  Location,
-  Token,
-  TokenKindEnum,
-  KindEnum,
-  DirectiveLocationEnum,
-  // Visitor utilities
-  ASTVisitor,
-  Visitor,
-  VisitFn,
-  VisitorKeyMap,
-  // AST nodes
-  ASTNode,
-  ASTKindToNode,
-  // Each kind of AST node
-  NameNode,
-  DocumentNode,
-  DefinitionNode,
-  ExecutableDefinitionNode,
-  OperationDefinitionNode,
-  OperationTypeNode,
-  VariableDefinitionNode,
-  VariableNode,
-  SelectionSetNode,
-  SelectionNode,
-  FieldNode,
-  ArgumentNode,
-  FragmentSpreadNode,
-  InlineFragmentNode,
-  FragmentDefinitionNode,
-  ValueNode,
-  IntValueNode,
-  FloatValueNode,
-  StringValueNode,
-  BooleanValueNode,
-  NullValueNode,
-  EnumValueNode,
-  ListValueNode,
-  ObjectValueNode,
-  ObjectFieldNode,
-  DirectiveNode,
-  TypeNode,
-  NamedTypeNode,
-  ListTypeNode,
-  NonNullTypeNode,
-  TypeSystemDefinitionNode,
-  SchemaDefinitionNode,
-  OperationTypeDefinitionNode,
-  TypeDefinitionNode,
-  ScalarTypeDefinitionNode,
-  ObjectTypeDefinitionNode,
-  FieldDefinitionNode,
-  InputValueDefinitionNode,
-  InterfaceTypeDefinitionNode,
-  UnionTypeDefinitionNode,
-  EnumTypeDefinitionNode,
-  EnumValueDefinitionNode,
-  InputObjectTypeDefinitionNode,
-  DirectiveDefinitionNode,
-  TypeSystemExtensionNode,
-  SchemaExtensionNode,
-  TypeExtensionNode,
-  ScalarTypeExtensionNode,
-  ObjectTypeExtensionNode,
-  InterfaceTypeExtensionNode,
-  UnionTypeExtensionNode,
-  EnumTypeExtensionNode,
-  InputObjectTypeExtensionNode,
-} from './language/index';
-
-// Execute GraphQL queries.
-export {
-  execute,
-  defaultFieldResolver,
-  defaultTypeResolver,
-  responsePathAsArray,
-  getDirectiveValues,
-} from './execution/index';
-
-export type { ExecutionArgs, ExecutionResult } from './execution/index';
-
-export { subscribe, createSourceEventStream } from './subscription/index';
-export type { SubscriptionArgs } from './subscription/index';
-
-// Validate GraphQL documents.
-export {
-  validate,
-  ValidationContext,
-  // All validation rules in the GraphQL Specification.
-  specifiedRules,
-  // Individual validation rules.
-  ExecutableDefinitionsRule,
-  FieldsOnCorrectTypeRule,
-  FragmentsOnCompositeTypesRule,
-  KnownArgumentNamesRule,
-  KnownDirectivesRule,
-  KnownFragmentNamesRule,
-  KnownTypeNamesRule,
-  LoneAnonymousOperationRule,
-  NoFragmentCyclesRule,
-  NoUndefinedVariablesRule,
-  NoUnusedFragmentsRule,
-  NoUnusedVariablesRule,
-  OverlappingFieldsCanBeMergedRule,
-  PossibleFragmentSpreadsRule,
-  ProvidedRequiredArgumentsRule,
-  ScalarLeafsRule,
-  SingleFieldSubscriptionsRule,
-  UniqueArgumentNamesRule,
-  UniqueDirectivesPerLocationRule,
-  UniqueFragmentNamesRule,
-  UniqueInputFieldNamesRule,
-  UniqueOperationNamesRule,
-  UniqueVariableNamesRule,
-  ValuesOfCorrectTypeRule,
-  VariablesAreInputTypesRule,
-  VariablesInAllowedPositionRule,
-  // SDL-specific validation rules
-  LoneSchemaDefinitionRule,
-  UniqueOperationTypesRule,
-  UniqueTypeNamesRule,
-  UniqueEnumValueNamesRule,
-  UniqueFieldDefinitionNamesRule,
-  UniqueDirectiveNamesRule,
-  PossibleTypeExtensionsRule,
-} from './validation/index';
-
-export type { ValidationRule } from './validation/index';
-
-// Create, format, and print GraphQL errors.
-export {
-  GraphQLError,
-  syntaxError,
-  locatedError,
-  printError,
-  formatError,
-} from './error/index';
-
-export type { GraphQLFormattedError } from './error/index';
-
-// Utilities for operating on GraphQL type schema and parsed sources.
-export {
-  // Produce the GraphQL query recommended for a full schema introspection.
-  // Accepts optional IntrospectionOptions.
-  getIntrospectionQuery,
-  // Gets the target Operation from a Document.
-  getOperationAST,
-  // Gets the Type for the target Operation AST.
-  getOperationRootType,
-  // Convert a GraphQLSchema to an IntrospectionQuery.
-  introspectionFromSchema,
-  // Build a GraphQLSchema from an introspection result.
-  buildClientSchema,
-  // Build a GraphQLSchema from a parsed GraphQL Schema language AST.
-  buildASTSchema,
-  // Build a GraphQLSchema from a GraphQL schema language document.
-  buildSchema,
-  // @deprecated: Get the description from a schema AST node and supports legacy
-  // syntax for specifying descriptions - will be removed in v16.
-  getDescription,
-  // Extends an existing GraphQLSchema from a parsed GraphQL Schema
-  // language AST.
-  extendSchema,
-  // Sort a GraphQLSchema.
-  lexicographicSortSchema,
-  // Print a GraphQLSchema to GraphQL Schema language.
-  printSchema,
-  // Print a GraphQLType to GraphQL Schema language.
-  printType,
-  // Prints the built-in introspection schema in the Schema Language
-  // format.
-  printIntrospectionSchema,
-  // Create a GraphQLType from a GraphQL language AST.
-  typeFromAST,
-  // Create a JavaScript value from a GraphQL language AST with a Type.
-  valueFromAST,
-  // Create a JavaScript value from a GraphQL language AST without a Type.
-  valueFromASTUntyped,
-  // Create a GraphQL language AST from a JavaScript value.
-  astFromValue,
-  // A helper to use within recursive-descent visitors which need to be aware of
-  // the GraphQL type system.
-  TypeInfo,
-  visitWithTypeInfo,
-  // Coerces a JavaScript value to a GraphQL type, or produces errors.
-  coerceInputValue,
-  // Concatenates multiple AST together.
-  concatAST,
-  // Separates an AST into an AST per Operation.
-  separateOperations,
-  // Strips characters that are not significant to the validity or execution
-  // of a GraphQL document.
-  stripIgnoredCharacters,
-  // Comparators for types
-  isEqualType,
-  isTypeSubTypeOf,
-  doTypesOverlap,
-  // Asserts a string is a valid GraphQL name.
-  assertValidName,
-  // Determine if a string is a valid GraphQL name.
-  isValidNameError,
-  // Compares two GraphQLSchemas and detects breaking changes.
-  BreakingChangeType,
-  DangerousChangeType,
-  findBreakingChanges,
-  findDangerousChanges,
-  // Report all deprecated usage within a GraphQL document.
-  findDeprecatedUsages,
-} from './utilities/index';
-
-export type {
-  IntrospectionOptions,
-  IntrospectionQuery,
-  IntrospectionSchema,
-  IntrospectionType,
-  IntrospectionInputType,
-  IntrospectionOutputType,
-  IntrospectionScalarType,
-  IntrospectionObjectType,
-  IntrospectionInterfaceType,
-  IntrospectionUnionType,
-  IntrospectionEnumType,
-  IntrospectionInputObjectType,
-  IntrospectionTypeRef,
-  IntrospectionInputTypeRef,
-  IntrospectionOutputTypeRef,
-  IntrospectionNamedTypeRef,
-  IntrospectionListTypeRef,
-  IntrospectionNonNullTypeRef,
-  IntrospectionField,
-  IntrospectionInputValue,
-  IntrospectionEnumValue,
-  IntrospectionDirective,
-  BuildSchemaOptions,
-  BreakingChange,
-  DangerousChange,
-} from './utilities/index';
diff --git a/node_modules/graphql/index.mjs b/node_modules/graphql/index.mjs
deleted file mode 100644
index a949c7c..0000000
--- a/node_modules/graphql/index.mjs
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * GraphQL.js provides a reference implementation for the GraphQL specification
- * but is also a useful utility for operating on GraphQL files and building
- * sophisticated tools.
- *
- * This primary module exports a general purpose function for fulfilling all
- * steps of the GraphQL specification in a single operation, but also includes
- * utilities for every part of the GraphQL specification:
- *
- *   - Parsing the GraphQL language.
- *   - Building a GraphQL type schema.
- *   - Validating a GraphQL request against a type schema.
- *   - Executing a GraphQL request against a type schema.
- *
- * This also includes utility functions for operating on GraphQL types and
- * GraphQL documents to facilitate building tools.
- *
- * You may also import from each sub-directory directly. For example, the
- * following two import statements are equivalent:
- *
- *     import { parse } from 'graphql';
- *     import { parse } from 'graphql/language';
- */
-// The GraphQL.js version info.
-export { version, versionInfo } from "./version.mjs"; // The primary entry point into fulfilling a GraphQL request.
-
-export { graphql, graphqlSync } from "./graphql.mjs"; // Create and operate on GraphQL type definitions and schema.
-
-export { // Definitions
-GraphQLSchema, GraphQLDirective, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull // Standard GraphQL Scalars
-, specifiedScalarTypes, GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID // Built-in Directives defined by the Spec
-, specifiedDirectives, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective // "Enum" of Type Kinds
-, TypeKind // Constant Deprecation Reason
-, DEFAULT_DEPRECATION_REASON // GraphQL Types for introspection.
-, introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind // Meta-field definitions.
-, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef // Predicates
-, isSchema, isDirective, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective // Assertions
-, assertSchema, assertDirective, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType // Un-modifiers
-, getNullableType, getNamedType // Validate GraphQL schema.
-, validateSchema, assertValidSchema } from "./type/index.mjs";
-// Parse and operate on GraphQL language source files.
-export { Source, getLocation // Print source location
-, printLocation, printSourceLocation // Lex
-, Lexer, TokenKind // Parse
-, parse, parseValue, parseType // Print
-, print // Visit
-, visit, visitInParallel, getVisitFn, BREAK, Kind, DirectiveLocation // Predicates
-, isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode } from "./language/index.mjs";
-// Execute GraphQL queries.
-export { execute, defaultFieldResolver, defaultTypeResolver, responsePathAsArray, getDirectiveValues } from "./execution/index.mjs";
-export { subscribe, createSourceEventStream } from "./subscription/index.mjs";
-// Validate GraphQL documents.
-export { validate, ValidationContext // All validation rules in the GraphQL Specification.
-, specifiedRules // Individual validation rules.
-, ExecutableDefinitionsRule, FieldsOnCorrectTypeRule, FragmentsOnCompositeTypesRule, KnownArgumentNamesRule, KnownDirectivesRule, KnownFragmentNamesRule, KnownTypeNamesRule, LoneAnonymousOperationRule, NoFragmentCyclesRule, NoUndefinedVariablesRule, NoUnusedFragmentsRule, NoUnusedVariablesRule, OverlappingFieldsCanBeMergedRule, PossibleFragmentSpreadsRule, ProvidedRequiredArgumentsRule, ScalarLeafsRule, SingleFieldSubscriptionsRule, UniqueArgumentNamesRule, UniqueDirectivesPerLocationRule, UniqueFragmentNamesRule, UniqueInputFieldNamesRule, UniqueOperationNamesRule, UniqueVariableNamesRule, ValuesOfCorrectTypeRule, VariablesAreInputTypesRule, VariablesInAllowedPositionRule // SDL-specific validation rules
-, LoneSchemaDefinitionRule, UniqueOperationTypesRule, UniqueTypeNamesRule, UniqueEnumValueNamesRule, UniqueFieldDefinitionNamesRule, UniqueDirectiveNamesRule, PossibleTypeExtensionsRule } from "./validation/index.mjs";
-// Create, format, and print GraphQL errors.
-export { GraphQLError, syntaxError, locatedError, printError, formatError } from "./error/index.mjs";
-// Utilities for operating on GraphQL type schema and parsed sources.
-export { // Produce the GraphQL query recommended for a full schema introspection.
-// Accepts optional IntrospectionOptions.
-getIntrospectionQuery // Gets the target Operation from a Document.
-, getOperationAST // Gets the Type for the target Operation AST.
-, getOperationRootType // Convert a GraphQLSchema to an IntrospectionQuery.
-, introspectionFromSchema // Build a GraphQLSchema from an introspection result.
-, buildClientSchema // Build a GraphQLSchema from a parsed GraphQL Schema language AST.
-, buildASTSchema // Build a GraphQLSchema from a GraphQL schema language document.
-, buildSchema // @deprecated: Get the description from a schema AST node and supports legacy
-// syntax for specifying descriptions - will be removed in v16.
-, getDescription // Extends an existing GraphQLSchema from a parsed GraphQL Schema
-// language AST.
-, extendSchema // Sort a GraphQLSchema.
-, lexicographicSortSchema // Print a GraphQLSchema to GraphQL Schema language.
-, printSchema // Print a GraphQLType to GraphQL Schema language.
-, printType // Prints the built-in introspection schema in the Schema Language
-// format.
-, printIntrospectionSchema // Create a GraphQLType from a GraphQL language AST.
-, typeFromAST // Create a JavaScript value from a GraphQL language AST with a Type.
-, valueFromAST // Create a JavaScript value from a GraphQL language AST without a Type.
-, valueFromASTUntyped // Create a GraphQL language AST from a JavaScript value.
-, astFromValue // A helper to use within recursive-descent visitors which need to be aware of
-// the GraphQL type system.
-, TypeInfo, visitWithTypeInfo // Coerces a JavaScript value to a GraphQL type, or produces errors.
-, coerceInputValue // Concatenates multiple AST together.
-, concatAST // Separates an AST into an AST per Operation.
-, separateOperations // Strips characters that are not significant to the validity or execution
-// of a GraphQL document.
-, stripIgnoredCharacters // Comparators for types
-, isEqualType, isTypeSubTypeOf, doTypesOverlap // Asserts a string is a valid GraphQL name.
-, assertValidName // Determine if a string is a valid GraphQL name.
-, isValidNameError // Compares two GraphQLSchemas and detects breaking changes.
-, BreakingChangeType, DangerousChangeType, findBreakingChanges, findDangerousChanges // Report all deprecated usage within a GraphQL document.
-, findDeprecatedUsages } from "./utilities/index.mjs";
diff --git a/node_modules/graphql/jsutils/ObjMap.js b/node_modules/graphql/jsutils/ObjMap.js
deleted file mode 100644
index 3918c74..0000000
--- a/node_modules/graphql/jsutils/ObjMap.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";
diff --git a/node_modules/graphql/jsutils/ObjMap.js.flow b/node_modules/graphql/jsutils/ObjMap.js.flow
deleted file mode 100644
index 63a8251..0000000
--- a/node_modules/graphql/jsutils/ObjMap.js.flow
+++ /dev/null
@@ -1,9 +0,0 @@
-// @flow strict
-
-export type ObjMap<T> = { [key: string]: T, __proto__: null, ... };
-export type ObjMapLike<T> = ObjMap<T> | { [key: string]: T, ... };
-
-export type ReadOnlyObjMap<T> = { +[key: string]: T, __proto__: null, ... };
-export type ReadOnlyObjMapLike<T> =
-  | ReadOnlyObjMap<T>
-  | { +[key: string]: T, ... };
diff --git a/node_modules/graphql/jsutils/Path.d.ts b/node_modules/graphql/jsutils/Path.d.ts
deleted file mode 100644
index ef8f10a..0000000
--- a/node_modules/graphql/jsutils/Path.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export type Path = {
-  prev: Path | undefined;
-  key: string | number;
-};
-
-/**
- * Given a Path and a key, return a new Path containing the new key.
- */
-export function addPath(prev: Path | undefined, key: string | number): Path;
-
-/**
- * Given a Path, return an Array of the path keys.
- */
-export function pathToArray(path: Path): Array<string | number>;
diff --git a/node_modules/graphql/jsutils/Path.js b/node_modules/graphql/jsutils/Path.js
deleted file mode 100644
index 18eaa60..0000000
--- a/node_modules/graphql/jsutils/Path.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.addPath = addPath;
-exports.pathToArray = pathToArray;
-
-/**
- * Given a Path and a key, return a new Path containing the new key.
- */
-function addPath(prev, key) {
-  return {
-    prev: prev,
-    key: key
-  };
-}
-/**
- * Given a Path, return an Array of the path keys.
- */
-
-
-function pathToArray(path) {
-  var flattened = [];
-  var curr = path;
-
-  while (curr) {
-    flattened.push(curr.key);
-    curr = curr.prev;
-  }
-
-  return flattened.reverse();
-}
diff --git a/node_modules/graphql/jsutils/Path.js.flow b/node_modules/graphql/jsutils/Path.js.flow
deleted file mode 100644
index f477354..0000000
--- a/node_modules/graphql/jsutils/Path.js.flow
+++ /dev/null
@@ -1,29 +0,0 @@
-// @flow strict
-
-export type Path = {|
-  +prev: Path | void,
-  +key: string | number,
-|};
-
-/**
- * Given a Path and a key, return a new Path containing the new key.
- */
-export function addPath(
-  prev: $ReadOnly<Path> | void,
-  key: string | number,
-): Path {
-  return { prev, key };
-}
-
-/**
- * Given a Path, return an Array of the path keys.
- */
-export function pathToArray(path: ?$ReadOnly<Path>): Array<string | number> {
-  const flattened = [];
-  let curr = path;
-  while (curr) {
-    flattened.push(curr.key);
-    curr = curr.prev;
-  }
-  return flattened.reverse();
-}
diff --git a/node_modules/graphql/jsutils/Path.mjs b/node_modules/graphql/jsutils/Path.mjs
deleted file mode 100644
index c511493..0000000
--- a/node_modules/graphql/jsutils/Path.mjs
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Given a Path and a key, return a new Path containing the new key.
- */
-export function addPath(prev, key) {
-  return {
-    prev: prev,
-    key: key
-  };
-}
-/**
- * Given a Path, return an Array of the path keys.
- */
-
-export function pathToArray(path) {
-  var flattened = [];
-  var curr = path;
-
-  while (curr) {
-    flattened.push(curr.key);
-    curr = curr.prev;
-  }
-
-  return flattened.reverse();
-}
diff --git a/node_modules/graphql/jsutils/PromiseOrValue.d.ts b/node_modules/graphql/jsutils/PromiseOrValue.d.ts
deleted file mode 100644
index 6b2517e..0000000
--- a/node_modules/graphql/jsutils/PromiseOrValue.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export type PromiseOrValue<T> = Promise<T> | T;
diff --git a/node_modules/graphql/jsutils/PromiseOrValue.js b/node_modules/graphql/jsutils/PromiseOrValue.js
deleted file mode 100644
index 3918c74..0000000
--- a/node_modules/graphql/jsutils/PromiseOrValue.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";
diff --git a/node_modules/graphql/jsutils/PromiseOrValue.js.flow b/node_modules/graphql/jsutils/PromiseOrValue.js.flow
deleted file mode 100644
index 2d37412..0000000
--- a/node_modules/graphql/jsutils/PromiseOrValue.js.flow
+++ /dev/null
@@ -1,3 +0,0 @@
-// @flow strict
-
-export type PromiseOrValue<+T> = Promise<T> | T;
diff --git a/node_modules/graphql/jsutils/PromiseOrValue.mjs b/node_modules/graphql/jsutils/PromiseOrValue.mjs
deleted file mode 100644
index 8b13789..0000000
--- a/node_modules/graphql/jsutils/PromiseOrValue.mjs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/node_modules/graphql/jsutils/dedent.js b/node_modules/graphql/jsutils/dedent.js
deleted file mode 100644
index a0206dc..0000000
--- a/node_modules/graphql/jsutils/dedent.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = dedent;
-
-/**
- * An ES6 string tag that fixes indentation. Also removes leading newlines
- * and trailing spaces and tabs, but keeps trailing newlines.
- *
- * Example usage:
- * const str = dedent`
- *   {
- *     test
- *   }
- * `;
- * str === "{\n  test\n}\n";
- */
-function dedent(strings) {
-  var str = '';
-
-  for (var i = 0; i < strings.length; ++i) {
-    str += strings[i];
-
-    if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) {
-      /* istanbul ignore next (ignore else inside Babel generated code) */
-      var value = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];
-      str += value; // interpolation
-    }
-  }
-
-  var trimmedStr = str.replace(/^\n*/m, '') //  remove leading newline
-  .replace(/[ \t]*$/, ''); // remove trailing spaces and tabs
-  // fixes indentation by removing leading spaces and tabs from each line
-
-  var indent = '';
-
-  for (var _i2 = 0; _i2 < trimmedStr.length; _i2++) {
-    var char = trimmedStr[_i2];
-
-    if (char !== ' ' && char !== '\t') {
-      break;
-    }
-
-    indent += char;
-  }
-
-  return trimmedStr.replace(RegExp('^' + indent, 'mg'), ''); // remove indent
-}
diff --git a/node_modules/graphql/jsutils/dedent.js.flow b/node_modules/graphql/jsutils/dedent.js.flow
deleted file mode 100644
index a34a23a..0000000
--- a/node_modules/graphql/jsutils/dedent.js.flow
+++ /dev/null
@@ -1,44 +0,0 @@
-// @flow strict
-
-/**
- * An ES6 string tag that fixes indentation. Also removes leading newlines
- * and trailing spaces and tabs, but keeps trailing newlines.
- *
- * Example usage:
- * const str = dedent`
- *   {
- *     test
- *   }
- * `;
- * str === "{\n  test\n}\n";
- */
-export default function dedent(
-  strings: $ReadOnlyArray<string>,
-  ...values: $ReadOnlyArray<string>
-): string {
-  let str = '';
-
-  for (let i = 0; i < strings.length; ++i) {
-    str += strings[i];
-    if (i < values.length) {
-      /* istanbul ignore next (ignore else inside Babel generated code) */
-      const value = values[i];
-
-      str += value; // interpolation
-    }
-  }
-
-  const trimmedStr = str
-    .replace(/^\n*/m, '') //  remove leading newline
-    .replace(/[ \t]*$/, ''); // remove trailing spaces and tabs
-
-  // fixes indentation by removing leading spaces and tabs from each line
-  let indent = '';
-  for (const char of trimmedStr) {
-    if (char !== ' ' && char !== '\t') {
-      break;
-    }
-    indent += char;
-  }
-  return trimmedStr.replace(RegExp('^' + indent, 'mg'), ''); // remove indent
-}
diff --git a/node_modules/graphql/jsutils/dedent.mjs b/node_modules/graphql/jsutils/dedent.mjs
deleted file mode 100644
index d49841d..0000000
--- a/node_modules/graphql/jsutils/dedent.mjs
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * An ES6 string tag that fixes indentation. Also removes leading newlines
- * and trailing spaces and tabs, but keeps trailing newlines.
- *
- * Example usage:
- * const str = dedent`
- *   {
- *     test
- *   }
- * `;
- * str === "{\n  test\n}\n";
- */
-export default function dedent(strings) {
-  var str = '';
-
-  for (var i = 0; i < strings.length; ++i) {
-    str += strings[i];
-
-    if (i < (arguments.length <= 1 ? 0 : arguments.length - 1)) {
-      /* istanbul ignore next (ignore else inside Babel generated code) */
-      var value = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];
-      str += value; // interpolation
-    }
-  }
-
-  var trimmedStr = str.replace(/^\n*/m, '') //  remove leading newline
-  .replace(/[ \t]*$/, ''); // remove trailing spaces and tabs
-  // fixes indentation by removing leading spaces and tabs from each line
-
-  var indent = '';
-
-  for (var _i2 = 0; _i2 < trimmedStr.length; _i2++) {
-    var char = trimmedStr[_i2];
-
-    if (char !== ' ' && char !== '\t') {
-      break;
-    }
-
-    indent += char;
-  }
-
-  return trimmedStr.replace(RegExp('^' + indent, 'mg'), ''); // remove indent
-}
diff --git a/node_modules/graphql/jsutils/defineToJSON.js b/node_modules/graphql/jsutils/defineToJSON.js
deleted file mode 100644
index 514e2c6..0000000
--- a/node_modules/graphql/jsutils/defineToJSON.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = defineToJSON;
-
-var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * The `defineToJSON()` function defines toJSON() and inspect() prototype
- * methods, if no function provided they become aliases for toString().
- */
-function defineToJSON(classObject) {
-  var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
-  classObject.prototype.toJSON = fn;
-  classObject.prototype.inspect = fn;
-  /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-  if (_nodejsCustomInspectSymbol.default) {
-    classObject.prototype[_nodejsCustomInspectSymbol.default] = fn;
-  }
-}
diff --git a/node_modules/graphql/jsutils/defineToJSON.js.flow b/node_modules/graphql/jsutils/defineToJSON.js.flow
deleted file mode 100644
index 76d6f75..0000000
--- a/node_modules/graphql/jsutils/defineToJSON.js.flow
+++ /dev/null
@@ -1,20 +0,0 @@
-// @flow strict
-
-import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
-
-/**
- * The `defineToJSON()` function defines toJSON() and inspect() prototype
- * methods, if no function provided they become aliases for toString().
- */
-export default function defineToJSON(
-  classObject: Class<any> | ((...args: Array<any>) => mixed),
-  fn?: () => mixed = classObject.prototype.toString,
-): void {
-  classObject.prototype.toJSON = fn;
-  classObject.prototype.inspect = fn;
-
-  /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */
-  if (nodejsCustomInspectSymbol) {
-    classObject.prototype[nodejsCustomInspectSymbol] = fn;
-  }
-}
diff --git a/node_modules/graphql/jsutils/defineToJSON.mjs b/node_modules/graphql/jsutils/defineToJSON.mjs
deleted file mode 100644
index 9820bc2..0000000
--- a/node_modules/graphql/jsutils/defineToJSON.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import nodejsCustomInspectSymbol from "./nodejsCustomInspectSymbol.mjs";
-/**
- * The `defineToJSON()` function defines toJSON() and inspect() prototype
- * methods, if no function provided they become aliases for toString().
- */
-
-export default function defineToJSON(classObject) {
-  var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
-  classObject.prototype.toJSON = fn;
-  classObject.prototype.inspect = fn;
-  /* istanbul ignore else (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-  if (nodejsCustomInspectSymbol) {
-    classObject.prototype[nodejsCustomInspectSymbol] = fn;
-  }
-}
diff --git a/node_modules/graphql/jsutils/devAssert.js b/node_modules/graphql/jsutils/devAssert.js
deleted file mode 100644
index 623c0f2..0000000
--- a/node_modules/graphql/jsutils/devAssert.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = devAssert;
-
-function devAssert(condition, message) {
-  var booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-
-  if (!booleanCondition) {
-    throw new Error(message);
-  }
-}
diff --git a/node_modules/graphql/jsutils/devAssert.js.flow b/node_modules/graphql/jsutils/devAssert.js.flow
deleted file mode 100644
index 4d465c4..0000000
--- a/node_modules/graphql/jsutils/devAssert.js.flow
+++ /dev/null
@@ -1,9 +0,0 @@
-// @flow strict
-
-export default function devAssert(condition: mixed, message: string): void {
-  const booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-  if (!booleanCondition) {
-    throw new Error(message);
-  }
-}
diff --git a/node_modules/graphql/jsutils/devAssert.mjs b/node_modules/graphql/jsutils/devAssert.mjs
deleted file mode 100644
index f91e13b..0000000
--- a/node_modules/graphql/jsutils/devAssert.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function devAssert(condition, message) {
-  var booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-
-  if (!booleanCondition) {
-    throw new Error(message);
-  }
-}
diff --git a/node_modules/graphql/jsutils/didYouMean.js b/node_modules/graphql/jsutils/didYouMean.js
deleted file mode 100644
index d6b0d90..0000000
--- a/node_modules/graphql/jsutils/didYouMean.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = didYouMean;
-var MAX_SUGGESTIONS = 5;
-/**
- * Given [ A, B, C ] return ' Did you mean A, B, or C?'.
- */
-
-// eslint-disable-next-line no-redeclare
-function didYouMean(firstArg, secondArg) {
-  var _ref = typeof firstArg === 'string' ? [firstArg, secondArg] : [undefined, firstArg],
-      subMessage = _ref[0],
-      suggestionsArg = _ref[1];
-
-  var message = ' Did you mean ';
-
-  if (subMessage) {
-    message += subMessage + ' ';
-  }
-
-  var suggestions = suggestionsArg.map(function (x) {
-    return "\"".concat(x, "\"");
-  });
-
-  switch (suggestions.length) {
-    case 0:
-      return '';
-
-    case 1:
-      return message + suggestions[0] + '?';
-
-    case 2:
-      return message + suggestions[0] + ' or ' + suggestions[1] + '?';
-  }
-
-  var selected = suggestions.slice(0, MAX_SUGGESTIONS);
-  var lastItem = selected.pop();
-  return message + selected.join(', ') + ', or ' + lastItem + '?';
-}
diff --git a/node_modules/graphql/jsutils/didYouMean.js.flow b/node_modules/graphql/jsutils/didYouMean.js.flow
deleted file mode 100644
index 6c9bc3d..0000000
--- a/node_modules/graphql/jsutils/didYouMean.js.flow
+++ /dev/null
@@ -1,40 +0,0 @@
-// @flow strict
-
-const MAX_SUGGESTIONS = 5;
-
-/**
- * Given [ A, B, C ] return ' Did you mean A, B, or C?'.
- */
-declare function didYouMean(suggestions: $ReadOnlyArray<string>): string;
-// eslint-disable-next-line no-redeclare
-declare function didYouMean(
-  subMessage: string,
-  suggestions: $ReadOnlyArray<string>,
-): string;
-
-// eslint-disable-next-line no-redeclare
-export default function didYouMean(firstArg, secondArg) {
-  const [subMessage, suggestionsArg] =
-    typeof firstArg === 'string'
-      ? [firstArg, secondArg]
-      : [undefined, firstArg];
-
-  let message = ' Did you mean ';
-  if (subMessage) {
-    message += subMessage + ' ';
-  }
-
-  const suggestions = suggestionsArg.map(x => `"${x}"`);
-  switch (suggestions.length) {
-    case 0:
-      return '';
-    case 1:
-      return message + suggestions[0] + '?';
-    case 2:
-      return message + suggestions[0] + ' or ' + suggestions[1] + '?';
-  }
-
-  const selected = suggestions.slice(0, MAX_SUGGESTIONS);
-  const lastItem = selected.pop();
-  return message + selected.join(', ') + ', or ' + lastItem + '?';
-}
diff --git a/node_modules/graphql/jsutils/didYouMean.mjs b/node_modules/graphql/jsutils/didYouMean.mjs
deleted file mode 100644
index 19e26cc..0000000
--- a/node_modules/graphql/jsutils/didYouMean.mjs
+++ /dev/null
@@ -1,36 +0,0 @@
-var MAX_SUGGESTIONS = 5;
-/**
- * Given [ A, B, C ] return ' Did you mean A, B, or C?'.
- */
-
-// eslint-disable-next-line no-redeclare
-export default function didYouMean(firstArg, secondArg) {
-  var _ref = typeof firstArg === 'string' ? [firstArg, secondArg] : [undefined, firstArg],
-      subMessage = _ref[0],
-      suggestionsArg = _ref[1];
-
-  var message = ' Did you mean ';
-
-  if (subMessage) {
-    message += subMessage + ' ';
-  }
-
-  var suggestions = suggestionsArg.map(function (x) {
-    return "\"".concat(x, "\"");
-  });
-
-  switch (suggestions.length) {
-    case 0:
-      return '';
-
-    case 1:
-      return message + suggestions[0] + '?';
-
-    case 2:
-      return message + suggestions[0] + ' or ' + suggestions[1] + '?';
-  }
-
-  var selected = suggestions.slice(0, MAX_SUGGESTIONS);
-  var lastItem = selected.pop();
-  return message + selected.join(', ') + ', or ' + lastItem + '?';
-}
diff --git a/node_modules/graphql/jsutils/identityFunc.js b/node_modules/graphql/jsutils/identityFunc.js
deleted file mode 100644
index 630772f..0000000
--- a/node_modules/graphql/jsutils/identityFunc.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = identityFunc;
-
-/**
- * Returns the first argument it receives.
- */
-function identityFunc(x) {
-  return x;
-}
diff --git a/node_modules/graphql/jsutils/identityFunc.js.flow b/node_modules/graphql/jsutils/identityFunc.js.flow
deleted file mode 100644
index 5cf7c4c..0000000
--- a/node_modules/graphql/jsutils/identityFunc.js.flow
+++ /dev/null
@@ -1,8 +0,0 @@
-// @flow strict
-
-/**
- * Returns the first argument it receives.
- */
-export default function identityFunc<T>(x: T): T {
-  return x;
-}
diff --git a/node_modules/graphql/jsutils/identityFunc.mjs b/node_modules/graphql/jsutils/identityFunc.mjs
deleted file mode 100644
index daf2391..0000000
--- a/node_modules/graphql/jsutils/identityFunc.mjs
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * Returns the first argument it receives.
- */
-export default function identityFunc(x) {
-  return x;
-}
diff --git a/node_modules/graphql/jsutils/inspect.js b/node_modules/graphql/jsutils/inspect.js
deleted file mode 100644
index 9a22f42..0000000
--- a/node_modules/graphql/jsutils/inspect.js
+++ /dev/null
@@ -1,134 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = inspect;
-
-var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-var MAX_ARRAY_LENGTH = 10;
-var MAX_RECURSIVE_DEPTH = 2;
-/**
- * Used to print values in error messages.
- */
-
-function inspect(value) {
-  return formatValue(value, []);
-}
-
-function formatValue(value, seenValues) {
-  switch (_typeof(value)) {
-    case 'string':
-      return JSON.stringify(value);
-
-    case 'function':
-      return value.name ? "[function ".concat(value.name, "]") : '[function]';
-
-    case 'object':
-      if (value === null) {
-        return 'null';
-      }
-
-      return formatObjectValue(value, seenValues);
-
-    default:
-      return String(value);
-  }
-}
-
-function formatObjectValue(value, previouslySeenValues) {
-  if (previouslySeenValues.indexOf(value) !== -1) {
-    return '[Circular]';
-  }
-
-  var seenValues = [].concat(previouslySeenValues, [value]);
-  var customInspectFn = getCustomFn(value);
-
-  if (customInspectFn !== undefined) {
-    // $FlowFixMe(>=0.90.0)
-    var customValue = customInspectFn.call(value); // check for infinite recursion
-
-    if (customValue !== value) {
-      return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);
-    }
-  } else if (Array.isArray(value)) {
-    return formatArray(value, seenValues);
-  }
-
-  return formatObject(value, seenValues);
-}
-
-function formatObject(object, seenValues) {
-  var keys = Object.keys(object);
-
-  if (keys.length === 0) {
-    return '{}';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[' + getObjectTag(object) + ']';
-  }
-
-  var properties = keys.map(function (key) {
-    var value = formatValue(object[key], seenValues);
-    return key + ': ' + value;
-  });
-  return '{ ' + properties.join(', ') + ' }';
-}
-
-function formatArray(array, seenValues) {
-  if (array.length === 0) {
-    return '[]';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[Array]';
-  }
-
-  var len = Math.min(MAX_ARRAY_LENGTH, array.length);
-  var remaining = array.length - len;
-  var items = [];
-
-  for (var i = 0; i < len; ++i) {
-    items.push(formatValue(array[i], seenValues));
-  }
-
-  if (remaining === 1) {
-    items.push('... 1 more item');
-  } else if (remaining > 1) {
-    items.push("... ".concat(remaining, " more items"));
-  }
-
-  return '[' + items.join(', ') + ']';
-}
-
-function getCustomFn(object) {
-  var customInspectFn = object[String(_nodejsCustomInspectSymbol.default)];
-
-  if (typeof customInspectFn === 'function') {
-    return customInspectFn;
-  }
-
-  if (typeof object.inspect === 'function') {
-    return object.inspect;
-  }
-}
-
-function getObjectTag(object) {
-  var tag = Object.prototype.toString.call(object).replace(/^\[object /, '').replace(/]$/, '');
-
-  if (tag === 'Object' && typeof object.constructor === 'function') {
-    var name = object.constructor.name;
-
-    if (typeof name === 'string' && name !== '') {
-      return name;
-    }
-  }
-
-  return tag;
-}
diff --git a/node_modules/graphql/jsutils/inspect.js.flow b/node_modules/graphql/jsutils/inspect.js.flow
deleted file mode 100644
index 49e0d8b..0000000
--- a/node_modules/graphql/jsutils/inspect.js.flow
+++ /dev/null
@@ -1,126 +0,0 @@
-// @flow strict
-
-import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
-
-const MAX_ARRAY_LENGTH = 10;
-const MAX_RECURSIVE_DEPTH = 2;
-
-/**
- * Used to print values in error messages.
- */
-export default function inspect(value: mixed): string {
-  return formatValue(value, []);
-}
-
-function formatValue(value, seenValues) {
-  switch (typeof value) {
-    case 'string':
-      return JSON.stringify(value);
-    case 'function':
-      return value.name ? `[function ${value.name}]` : '[function]';
-    case 'object':
-      if (value === null) {
-        return 'null';
-      }
-      return formatObjectValue(value, seenValues);
-    default:
-      return String(value);
-  }
-}
-
-function formatObjectValue(value, previouslySeenValues) {
-  if (previouslySeenValues.indexOf(value) !== -1) {
-    return '[Circular]';
-  }
-
-  const seenValues = [...previouslySeenValues, value];
-  const customInspectFn = getCustomFn(value);
-
-  if (customInspectFn !== undefined) {
-    // $FlowFixMe(>=0.90.0)
-    const customValue = customInspectFn.call(value);
-
-    // check for infinite recursion
-    if (customValue !== value) {
-      return typeof customValue === 'string'
-        ? customValue
-        : formatValue(customValue, seenValues);
-    }
-  } else if (Array.isArray(value)) {
-    return formatArray(value, seenValues);
-  }
-
-  return formatObject(value, seenValues);
-}
-
-function formatObject(object, seenValues) {
-  const keys = Object.keys(object);
-  if (keys.length === 0) {
-    return '{}';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[' + getObjectTag(object) + ']';
-  }
-
-  const properties = keys.map(key => {
-    const value = formatValue(object[key], seenValues);
-    return key + ': ' + value;
-  });
-
-  return '{ ' + properties.join(', ') + ' }';
-}
-
-function formatArray(array, seenValues) {
-  if (array.length === 0) {
-    return '[]';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[Array]';
-  }
-
-  const len = Math.min(MAX_ARRAY_LENGTH, array.length);
-  const remaining = array.length - len;
-  const items = [];
-
-  for (let i = 0; i < len; ++i) {
-    items.push(formatValue(array[i], seenValues));
-  }
-
-  if (remaining === 1) {
-    items.push('... 1 more item');
-  } else if (remaining > 1) {
-    items.push(`... ${remaining} more items`);
-  }
-
-  return '[' + items.join(', ') + ']';
-}
-
-function getCustomFn(object) {
-  const customInspectFn = object[String(nodejsCustomInspectSymbol)];
-
-  if (typeof customInspectFn === 'function') {
-    return customInspectFn;
-  }
-
-  if (typeof object.inspect === 'function') {
-    return object.inspect;
-  }
-}
-
-function getObjectTag(object) {
-  const tag = Object.prototype.toString
-    .call(object)
-    .replace(/^\[object /, '')
-    .replace(/]$/, '');
-
-  if (tag === 'Object' && typeof object.constructor === 'function') {
-    const name = object.constructor.name;
-    if (typeof name === 'string' && name !== '') {
-      return name;
-    }
-  }
-
-  return tag;
-}
diff --git a/node_modules/graphql/jsutils/inspect.mjs b/node_modules/graphql/jsutils/inspect.mjs
deleted file mode 100644
index 9d93e91..0000000
--- a/node_modules/graphql/jsutils/inspect.mjs
+++ /dev/null
@@ -1,124 +0,0 @@
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-import nodejsCustomInspectSymbol from "./nodejsCustomInspectSymbol.mjs";
-var MAX_ARRAY_LENGTH = 10;
-var MAX_RECURSIVE_DEPTH = 2;
-/**
- * Used to print values in error messages.
- */
-
-export default function inspect(value) {
-  return formatValue(value, []);
-}
-
-function formatValue(value, seenValues) {
-  switch (_typeof(value)) {
-    case 'string':
-      return JSON.stringify(value);
-
-    case 'function':
-      return value.name ? "[function ".concat(value.name, "]") : '[function]';
-
-    case 'object':
-      if (value === null) {
-        return 'null';
-      }
-
-      return formatObjectValue(value, seenValues);
-
-    default:
-      return String(value);
-  }
-}
-
-function formatObjectValue(value, previouslySeenValues) {
-  if (previouslySeenValues.indexOf(value) !== -1) {
-    return '[Circular]';
-  }
-
-  var seenValues = [].concat(previouslySeenValues, [value]);
-  var customInspectFn = getCustomFn(value);
-
-  if (customInspectFn !== undefined) {
-    // $FlowFixMe(>=0.90.0)
-    var customValue = customInspectFn.call(value); // check for infinite recursion
-
-    if (customValue !== value) {
-      return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);
-    }
-  } else if (Array.isArray(value)) {
-    return formatArray(value, seenValues);
-  }
-
-  return formatObject(value, seenValues);
-}
-
-function formatObject(object, seenValues) {
-  var keys = Object.keys(object);
-
-  if (keys.length === 0) {
-    return '{}';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[' + getObjectTag(object) + ']';
-  }
-
-  var properties = keys.map(function (key) {
-    var value = formatValue(object[key], seenValues);
-    return key + ': ' + value;
-  });
-  return '{ ' + properties.join(', ') + ' }';
-}
-
-function formatArray(array, seenValues) {
-  if (array.length === 0) {
-    return '[]';
-  }
-
-  if (seenValues.length > MAX_RECURSIVE_DEPTH) {
-    return '[Array]';
-  }
-
-  var len = Math.min(MAX_ARRAY_LENGTH, array.length);
-  var remaining = array.length - len;
-  var items = [];
-
-  for (var i = 0; i < len; ++i) {
-    items.push(formatValue(array[i], seenValues));
-  }
-
-  if (remaining === 1) {
-    items.push('... 1 more item');
-  } else if (remaining > 1) {
-    items.push("... ".concat(remaining, " more items"));
-  }
-
-  return '[' + items.join(', ') + ']';
-}
-
-function getCustomFn(object) {
-  var customInspectFn = object[String(nodejsCustomInspectSymbol)];
-
-  if (typeof customInspectFn === 'function') {
-    return customInspectFn;
-  }
-
-  if (typeof object.inspect === 'function') {
-    return object.inspect;
-  }
-}
-
-function getObjectTag(object) {
-  var tag = Object.prototype.toString.call(object).replace(/^\[object /, '').replace(/]$/, '');
-
-  if (tag === 'Object' && typeof object.constructor === 'function') {
-    var name = object.constructor.name;
-
-    if (typeof name === 'string' && name !== '') {
-      return name;
-    }
-  }
-
-  return tag;
-}
diff --git a/node_modules/graphql/jsutils/instanceOf.js b/node_modules/graphql/jsutils/instanceOf.js
deleted file mode 100644
index 87e50db..0000000
--- a/node_modules/graphql/jsutils/instanceOf.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/**
- * A replacement for instanceof which includes an error warning when multi-realm
- * constructors are detected.
- */
-// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production
-// See: https://webpack.js.org/guides/production/
-var _default = process.env.NODE_ENV === 'production' ?
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-// eslint-disable-next-line no-shadow
-function instanceOf(value, constructor) {
-  return value instanceof constructor;
-} : // eslint-disable-next-line no-shadow
-function instanceOf(value, constructor) {
-  if (value instanceof constructor) {
-    return true;
-  }
-
-  if (value) {
-    var valueClass = value.constructor;
-    var className = constructor.name;
-
-    if (className && valueClass && valueClass.name === className) {
-      throw new Error("Cannot use ".concat(className, " \"").concat(value, "\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results."));
-    }
-  }
-
-  return false;
-};
-
-exports.default = _default;
diff --git a/node_modules/graphql/jsutils/instanceOf.js.flow b/node_modules/graphql/jsutils/instanceOf.js.flow
deleted file mode 100644
index e944809..0000000
--- a/node_modules/graphql/jsutils/instanceOf.js.flow
+++ /dev/null
@@ -1,46 +0,0 @@
-// @flow strict
-
-/**
- * A replacement for instanceof which includes an error warning when multi-realm
- * constructors are detected.
- */
-declare function instanceOf(
-  value: mixed,
-  constructor: mixed,
-): boolean %checks(value instanceof constructor);
-
-// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production
-// See: https://webpack.js.org/guides/production/
-export default process.env.NODE_ENV === 'production'
-  ? /* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-    // eslint-disable-next-line no-shadow
-    function instanceOf(value: mixed, constructor: mixed) {
-      return value instanceof constructor;
-    }
-  : // eslint-disable-next-line no-shadow
-    function instanceOf(value: any, constructor: any) {
-      if (value instanceof constructor) {
-        return true;
-      }
-      if (value) {
-        const valueClass = value.constructor;
-        const className = constructor.name;
-        if (className && valueClass && valueClass.name === className) {
-          throw new Error(
-            `Cannot use ${className} "${value}" from another module or realm.
-
-Ensure that there is only one instance of "graphql" in the node_modules
-directory. If different versions of "graphql" are the dependencies of other
-relied on modules, use "resolutions" to ensure only one version is installed.
-
-https://yarnpkg.com/en/docs/selective-version-resolutions
-
-Duplicate "graphql" modules cannot be used at the same time since different
-versions may have different capabilities and behavior. The data from one
-version used in the function from another could produce confusing and
-spurious results.`,
-          );
-        }
-      }
-      return false;
-    };
diff --git a/node_modules/graphql/jsutils/instanceOf.mjs b/node_modules/graphql/jsutils/instanceOf.mjs
deleted file mode 100644
index 2c33297..0000000
--- a/node_modules/graphql/jsutils/instanceOf.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * A replacement for instanceof which includes an error warning when multi-realm
- * constructors are detected.
- */
-// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production
-// See: https://webpack.js.org/guides/production/
-export default process.env.NODE_ENV === 'production' ?
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-// eslint-disable-next-line no-shadow
-function instanceOf(value, constructor) {
-  return value instanceof constructor;
-} : // eslint-disable-next-line no-shadow
-function instanceOf(value, constructor) {
-  if (value instanceof constructor) {
-    return true;
-  }
-
-  if (value) {
-    var valueClass = value.constructor;
-    var className = constructor.name;
-
-    if (className && valueClass && valueClass.name === className) {
-      throw new Error("Cannot use ".concat(className, " \"").concat(value, "\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results."));
-    }
-  }
-
-  return false;
-};
diff --git a/node_modules/graphql/jsutils/invariant.js b/node_modules/graphql/jsutils/invariant.js
deleted file mode 100644
index df40814..0000000
--- a/node_modules/graphql/jsutils/invariant.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = invariant;
-
-function invariant(condition, message) {
-  var booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-
-  if (!booleanCondition) {
-    throw new Error(message != null ? message : 'Unexpected invariant triggered.');
-  }
-}
diff --git a/node_modules/graphql/jsutils/invariant.js.flow b/node_modules/graphql/jsutils/invariant.js.flow
deleted file mode 100644
index f3af549..0000000
--- a/node_modules/graphql/jsutils/invariant.js.flow
+++ /dev/null
@@ -1,11 +0,0 @@
-// @flow strict
-
-export default function invariant(condition: mixed, message?: string): void {
-  const booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-  if (!booleanCondition) {
-    throw new Error(
-      message != null ? message : 'Unexpected invariant triggered.',
-    );
-  }
-}
diff --git a/node_modules/graphql/jsutils/invariant.mjs b/node_modules/graphql/jsutils/invariant.mjs
deleted file mode 100644
index 8ad1c77..0000000
--- a/node_modules/graphql/jsutils/invariant.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-export default function invariant(condition, message) {
-  var booleanCondition = Boolean(condition);
-  /* istanbul ignore else (see transformation done in './resources/inlineInvariant.js') */
-
-  if (!booleanCondition) {
-    throw new Error(message != null ? message : 'Unexpected invariant triggered.');
-  }
-}
diff --git a/node_modules/graphql/jsutils/isCollection.js b/node_modules/graphql/jsutils/isCollection.js
deleted file mode 100644
index 046d3da..0000000
--- a/node_modules/graphql/jsutils/isCollection.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = isCollection;
-
-var _symbols = require("../polyfills/symbols");
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-/**
- * Returns true if the provided object is an Object (i.e. not a string literal)
- * and is either Iterable or Array-like.
- *
- * This may be used in place of [Array.isArray()][isArray] to determine if an
- * object should be iterated-over. It always excludes string literals and
- * includes Arrays (regardless of if it is Iterable). It also includes other
- * Array-like objects such as NodeList, TypedArray, and Buffer.
- *
- * @example
- *
- * isCollection([ 1, 2, 3 ]) // true
- * isCollection('ABC') // false
- * isCollection({ length: 1, 0: 'Alpha' }) // true
- * isCollection({ key: 'value' }) // false
- * isCollection(new Map()) // true
- *
- * @param obj
- *   An Object value which might implement the Iterable or Array-like protocols.
- * @return {boolean} true if Iterable or Array-like Object.
- */
-function isCollection(obj) {
-  if (obj == null || _typeof(obj) !== 'object') {
-    return false;
-  } // Is Array like?
-
-
-  var length = obj.length;
-
-  if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-    return true;
-  } // Is Iterable?
-
-
-  return typeof obj[_symbols.SYMBOL_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/jsutils/isCollection.js.flow b/node_modules/graphql/jsutils/isCollection.js.flow
deleted file mode 100644
index e5ff8e9..0000000
--- a/node_modules/graphql/jsutils/isCollection.js.flow
+++ /dev/null
@@ -1,39 +0,0 @@
-// @flow strict
-
-import { SYMBOL_ITERATOR } from '../polyfills/symbols';
-
-/**
- * Returns true if the provided object is an Object (i.e. not a string literal)
- * and is either Iterable or Array-like.
- *
- * This may be used in place of [Array.isArray()][isArray] to determine if an
- * object should be iterated-over. It always excludes string literals and
- * includes Arrays (regardless of if it is Iterable). It also includes other
- * Array-like objects such as NodeList, TypedArray, and Buffer.
- *
- * @example
- *
- * isCollection([ 1, 2, 3 ]) // true
- * isCollection('ABC') // false
- * isCollection({ length: 1, 0: 'Alpha' }) // true
- * isCollection({ key: 'value' }) // false
- * isCollection(new Map()) // true
- *
- * @param obj
- *   An Object value which might implement the Iterable or Array-like protocols.
- * @return {boolean} true if Iterable or Array-like Object.
- */
-export default function isCollection(obj: mixed): boolean {
-  if (obj == null || typeof obj !== 'object') {
-    return false;
-  }
-
-  // Is Array like?
-  const length = obj.length;
-  if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-    return true;
-  }
-
-  // Is Iterable?
-  return typeof obj[SYMBOL_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/jsutils/isCollection.mjs b/node_modules/graphql/jsutils/isCollection.mjs
deleted file mode 100644
index 43c1d25..0000000
--- a/node_modules/graphql/jsutils/isCollection.mjs
+++ /dev/null
@@ -1,40 +0,0 @@
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-import { SYMBOL_ITERATOR } from "../polyfills/symbols.mjs";
-/**
- * Returns true if the provided object is an Object (i.e. not a string literal)
- * and is either Iterable or Array-like.
- *
- * This may be used in place of [Array.isArray()][isArray] to determine if an
- * object should be iterated-over. It always excludes string literals and
- * includes Arrays (regardless of if it is Iterable). It also includes other
- * Array-like objects such as NodeList, TypedArray, and Buffer.
- *
- * @example
- *
- * isCollection([ 1, 2, 3 ]) // true
- * isCollection('ABC') // false
- * isCollection({ length: 1, 0: 'Alpha' }) // true
- * isCollection({ key: 'value' }) // false
- * isCollection(new Map()) // true
- *
- * @param obj
- *   An Object value which might implement the Iterable or Array-like protocols.
- * @return {boolean} true if Iterable or Array-like Object.
- */
-
-export default function isCollection(obj) {
-  if (obj == null || _typeof(obj) !== 'object') {
-    return false;
-  } // Is Array like?
-
-
-  var length = obj.length;
-
-  if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-    return true;
-  } // Is Iterable?
-
-
-  return typeof obj[SYMBOL_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/jsutils/isObjectLike.js b/node_modules/graphql/jsutils/isObjectLike.js
deleted file mode 100644
index 19c9a89..0000000
--- a/node_modules/graphql/jsutils/isObjectLike.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = isObjectLike;
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-/**
- * Return true if `value` is object-like. A value is object-like if it's not
- * `null` and has a `typeof` result of "object".
- */
-function isObjectLike(value) {
-  return _typeof(value) == 'object' && value !== null;
-}
diff --git a/node_modules/graphql/jsutils/isObjectLike.js.flow b/node_modules/graphql/jsutils/isObjectLike.js.flow
deleted file mode 100644
index 45d29f6..0000000
--- a/node_modules/graphql/jsutils/isObjectLike.js.flow
+++ /dev/null
@@ -1,9 +0,0 @@
-// @flow strict
-
-/**
- * Return true if `value` is object-like. A value is object-like if it's not
- * `null` and has a `typeof` result of "object".
- */
-export default function isObjectLike(value: mixed): boolean %checks {
-  return typeof value == 'object' && value !== null;
-}
diff --git a/node_modules/graphql/jsutils/isObjectLike.mjs b/node_modules/graphql/jsutils/isObjectLike.mjs
deleted file mode 100644
index 41dc3cd..0000000
--- a/node_modules/graphql/jsutils/isObjectLike.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-/**
- * Return true if `value` is object-like. A value is object-like if it's not
- * `null` and has a `typeof` result of "object".
- */
-export default function isObjectLike(value) {
-  return _typeof(value) == 'object' && value !== null;
-}
diff --git a/node_modules/graphql/jsutils/isPromise.js b/node_modules/graphql/jsutils/isPromise.js
deleted file mode 100644
index bca6ccc..0000000
--- a/node_modules/graphql/jsutils/isPromise.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = isPromise;
-
-/**
- * Returns true if the value acts like a Promise, i.e. has a "then" function,
- * otherwise returns false.
- */
-// eslint-disable-next-line no-redeclare
-function isPromise(value) {
-  return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';
-}
diff --git a/node_modules/graphql/jsutils/isPromise.js.flow b/node_modules/graphql/jsutils/isPromise.js.flow
deleted file mode 100644
index d6ef817..0000000
--- a/node_modules/graphql/jsutils/isPromise.js.flow
+++ /dev/null
@@ -1,13 +0,0 @@
-// @flow strict
-
-/**
- * Returns true if the value acts like a Promise, i.e. has a "then" function,
- * otherwise returns false.
- */
-declare function isPromise(value: mixed): boolean %checks(value instanceof
-  Promise);
-
-// eslint-disable-next-line no-redeclare
-export default function isPromise(value) {
-  return typeof value?.then === 'function';
-}
diff --git a/node_modules/graphql/jsutils/isPromise.mjs b/node_modules/graphql/jsutils/isPromise.mjs
deleted file mode 100644
index 2d9079b..0000000
--- a/node_modules/graphql/jsutils/isPromise.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Returns true if the value acts like a Promise, i.e. has a "then" function,
- * otherwise returns false.
- */
-// eslint-disable-next-line no-redeclare
-export default function isPromise(value) {
-  return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';
-}
diff --git a/node_modules/graphql/jsutils/keyMap.js b/node_modules/graphql/jsutils/keyMap.js
deleted file mode 100644
index c067210..0000000
--- a/node_modules/graphql/jsutils/keyMap.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = keyMap;
-
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * for each value in the array.
- *
- * This provides a convenient lookup for the array items if the key function
- * produces unique results.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: { name: 'Jon', num: '555-1234' },
- *     //   Jenny: { name: 'Jenny', num: '867-5309' } }
- *     const entriesByName = keyMap(
- *       phoneBook,
- *       entry => entry.name
- *     )
- *
- *     // { name: 'Jenny', num: '857-6309' }
- *     const jennyEntry = entriesByName['Jenny']
- *
- */
-function keyMap(list, keyFn) {
-  return list.reduce(function (map, item) {
-    map[keyFn(item)] = item;
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/keyMap.js.flow b/node_modules/graphql/jsutils/keyMap.js.flow
deleted file mode 100644
index 410dad4..0000000
--- a/node_modules/graphql/jsutils/keyMap.js.flow
+++ /dev/null
@@ -1,36 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from './ObjMap';
-
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * for each value in the array.
- *
- * This provides a convenient lookup for the array items if the key function
- * produces unique results.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: { name: 'Jon', num: '555-1234' },
- *     //   Jenny: { name: 'Jenny', num: '867-5309' } }
- *     const entriesByName = keyMap(
- *       phoneBook,
- *       entry => entry.name
- *     )
- *
- *     // { name: 'Jenny', num: '857-6309' }
- *     const jennyEntry = entriesByName['Jenny']
- *
- */
-export default function keyMap<T>(
-  list: $ReadOnlyArray<T>,
-  keyFn: (item: T) => string,
-): ObjMap<T> {
-  return list.reduce((map, item) => {
-    map[keyFn(item)] = item;
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/keyMap.mjs b/node_modules/graphql/jsutils/keyMap.mjs
deleted file mode 100644
index 567dd86..0000000
--- a/node_modules/graphql/jsutils/keyMap.mjs
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * for each value in the array.
- *
- * This provides a convenient lookup for the array items if the key function
- * produces unique results.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: { name: 'Jon', num: '555-1234' },
- *     //   Jenny: { name: 'Jenny', num: '867-5309' } }
- *     const entriesByName = keyMap(
- *       phoneBook,
- *       entry => entry.name
- *     )
- *
- *     // { name: 'Jenny', num: '857-6309' }
- *     const jennyEntry = entriesByName['Jenny']
- *
- */
-export default function keyMap(list, keyFn) {
-  return list.reduce(function (map, item) {
-    map[keyFn(item)] = item;
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/keyValMap.js b/node_modules/graphql/jsutils/keyValMap.js
deleted file mode 100644
index 0b2dab5..0000000
--- a/node_modules/graphql/jsutils/keyValMap.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = keyValMap;
-
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * and a function to produce the values from each item in the array.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: '555-1234', Jenny: '867-5309' }
- *     const phonesByName = keyValMap(
- *       phoneBook,
- *       entry => entry.name,
- *       entry => entry.num
- *     )
- *
- */
-function keyValMap(list, keyFn, valFn) {
-  return list.reduce(function (map, item) {
-    map[keyFn(item)] = valFn(item);
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/keyValMap.js.flow b/node_modules/graphql/jsutils/keyValMap.js.flow
deleted file mode 100644
index 6f6e703..0000000
--- a/node_modules/graphql/jsutils/keyValMap.js.flow
+++ /dev/null
@@ -1,31 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from './ObjMap';
-
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * and a function to produce the values from each item in the array.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: '555-1234', Jenny: '867-5309' }
- *     const phonesByName = keyValMap(
- *       phoneBook,
- *       entry => entry.name,
- *       entry => entry.num
- *     )
- *
- */
-export default function keyValMap<T, V>(
-  list: $ReadOnlyArray<T>,
-  keyFn: (item: T) => string,
-  valFn: (item: T) => V,
-): ObjMap<V> {
-  return list.reduce((map, item) => {
-    map[keyFn(item)] = valFn(item);
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/keyValMap.mjs b/node_modules/graphql/jsutils/keyValMap.mjs
deleted file mode 100644
index 5061c66..0000000
--- a/node_modules/graphql/jsutils/keyValMap.mjs
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Creates a keyed JS object from an array, given a function to produce the keys
- * and a function to produce the values from each item in the array.
- *
- *     const phoneBook = [
- *       { name: 'Jon', num: '555-1234' },
- *       { name: 'Jenny', num: '867-5309' }
- *     ]
- *
- *     // { Jon: '555-1234', Jenny: '867-5309' }
- *     const phonesByName = keyValMap(
- *       phoneBook,
- *       entry => entry.name,
- *       entry => entry.num
- *     )
- *
- */
-export default function keyValMap(list, keyFn, valFn) {
-  return list.reduce(function (map, item) {
-    map[keyFn(item)] = valFn(item);
-    return map;
-  }, Object.create(null));
-}
diff --git a/node_modules/graphql/jsutils/mapValue.js b/node_modules/graphql/jsutils/mapValue.js
deleted file mode 100644
index f9827da..0000000
--- a/node_modules/graphql/jsutils/mapValue.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = mapValue;
-
-var _objectEntries3 = _interopRequireDefault(require("../polyfills/objectEntries"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Creates an object map with the same keys as `map` and values generated by
- * running each value of `map` thru `fn`.
- */
-function mapValue(map, fn) {
-  var result = Object.create(null);
-
-  for (var _i2 = 0, _objectEntries2 = (0, _objectEntries3.default)(map); _i2 < _objectEntries2.length; _i2++) {
-    var _ref2 = _objectEntries2[_i2];
-    var _key = _ref2[0];
-    var _value = _ref2[1];
-    result[_key] = fn(_value, _key);
-  }
-
-  return result;
-}
diff --git a/node_modules/graphql/jsutils/mapValue.js.flow b/node_modules/graphql/jsutils/mapValue.js.flow
deleted file mode 100644
index 4390b4f..0000000
--- a/node_modules/graphql/jsutils/mapValue.js.flow
+++ /dev/null
@@ -1,21 +0,0 @@
-// @flow strict
-
-import objectEntries from '../polyfills/objectEntries';
-
-import { type ObjMap } from './ObjMap';
-
-/**
- * Creates an object map with the same keys as `map` and values generated by
- * running each value of `map` thru `fn`.
- */
-export default function mapValue<T, V>(
-  map: ObjMap<T>,
-  fn: (value: T, key: string) => V,
-): ObjMap<V> {
-  const result = Object.create(null);
-
-  for (const [key, value] of objectEntries(map)) {
-    result[key] = fn(value, key);
-  }
-  return result;
-}
diff --git a/node_modules/graphql/jsutils/mapValue.mjs b/node_modules/graphql/jsutils/mapValue.mjs
deleted file mode 100644
index 7992abb..0000000
--- a/node_modules/graphql/jsutils/mapValue.mjs
+++ /dev/null
@@ -1,18 +0,0 @@
-import objectEntries from "../polyfills/objectEntries.mjs";
-
-/**
- * Creates an object map with the same keys as `map` and values generated by
- * running each value of `map` thru `fn`.
- */
-export default function mapValue(map, fn) {
-  var result = Object.create(null);
-
-  for (var _i2 = 0, _objectEntries2 = objectEntries(map); _i2 < _objectEntries2.length; _i2++) {
-    var _ref2 = _objectEntries2[_i2];
-    var _key = _ref2[0];
-    var _value = _ref2[1];
-    result[_key] = fn(_value, _key);
-  }
-
-  return result;
-}
diff --git a/node_modules/graphql/jsutils/memoize3.js b/node_modules/graphql/jsutils/memoize3.js
deleted file mode 100644
index 05bef37..0000000
--- a/node_modules/graphql/jsutils/memoize3.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = memoize3;
-
-/**
- * Memoizes the provided three-argument function.
- */
-function memoize3(fn) {
-  var cache0;
-
-  function memoized(a1, a2, a3) {
-    if (!cache0) {
-      cache0 = new WeakMap();
-    }
-
-    var cache1 = cache0.get(a1);
-    var cache2;
-
-    if (cache1) {
-      cache2 = cache1.get(a2);
-
-      if (cache2) {
-        var cachedValue = cache2.get(a3);
-
-        if (cachedValue !== undefined) {
-          return cachedValue;
-        }
-      }
-    } else {
-      cache1 = new WeakMap();
-      cache0.set(a1, cache1);
-    }
-
-    if (!cache2) {
-      cache2 = new WeakMap();
-      cache1.set(a2, cache2);
-    }
-
-    var newValue = fn(a1, a2, a3);
-    cache2.set(a3, newValue);
-    return newValue;
-  }
-
-  return memoized;
-}
diff --git a/node_modules/graphql/jsutils/memoize3.js.flow b/node_modules/graphql/jsutils/memoize3.js.flow
deleted file mode 100644
index 2d5707c..0000000
--- a/node_modules/graphql/jsutils/memoize3.js.flow
+++ /dev/null
@@ -1,42 +0,0 @@
-// @flow strict
-
-/**
- * Memoizes the provided three-argument function.
- */
-export default function memoize3<
-  A1: { ... } | $ReadOnlyArray<mixed>,
-  A2: { ... } | $ReadOnlyArray<mixed>,
-  A3: { ... } | $ReadOnlyArray<mixed>,
-  R: mixed,
->(fn: (A1, A2, A3) => R): (A1, A2, A3) => R {
-  let cache0;
-
-  function memoized(a1, a2, a3) {
-    if (!cache0) {
-      cache0 = new WeakMap();
-    }
-    let cache1 = cache0.get(a1);
-    let cache2;
-    if (cache1) {
-      cache2 = cache1.get(a2);
-      if (cache2) {
-        const cachedValue = cache2.get(a3);
-        if (cachedValue !== undefined) {
-          return cachedValue;
-        }
-      }
-    } else {
-      cache1 = new WeakMap();
-      cache0.set(a1, cache1);
-    }
-    if (!cache2) {
-      cache2 = new WeakMap();
-      cache1.set(a2, cache2);
-    }
-    const newValue = fn(a1, a2, a3);
-    cache2.set(a3, newValue);
-    return newValue;
-  }
-
-  return memoized;
-}
diff --git a/node_modules/graphql/jsutils/memoize3.mjs b/node_modules/graphql/jsutils/memoize3.mjs
deleted file mode 100644
index 3c31e86..0000000
--- a/node_modules/graphql/jsutils/memoize3.mjs
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Memoizes the provided three-argument function.
- */
-export default function memoize3(fn) {
-  var cache0;
-
-  function memoized(a1, a2, a3) {
-    if (!cache0) {
-      cache0 = new WeakMap();
-    }
-
-    var cache1 = cache0.get(a1);
-    var cache2;
-
-    if (cache1) {
-      cache2 = cache1.get(a2);
-
-      if (cache2) {
-        var cachedValue = cache2.get(a3);
-
-        if (cachedValue !== undefined) {
-          return cachedValue;
-        }
-      }
-    } else {
-      cache1 = new WeakMap();
-      cache0.set(a1, cache1);
-    }
-
-    if (!cache2) {
-      cache2 = new WeakMap();
-      cache1.set(a2, cache2);
-    }
-
-    var newValue = fn(a1, a2, a3);
-    cache2.set(a3, newValue);
-    return newValue;
-  }
-
-  return memoized;
-}
diff --git a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js b/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js
deleted file mode 100644
index 22fd2dd..0000000
--- a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-var nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;
-var _default = nodejsCustomInspectSymbol;
-exports.default = _default;
diff --git a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js.flow b/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js.flow
deleted file mode 100644
index a884a47..0000000
--- a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js.flow
+++ /dev/null
@@ -1,9 +0,0 @@
-// @flow strict
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-const nodejsCustomInspectSymbol =
-  typeof Symbol === 'function' && typeof Symbol.for === 'function'
-    ? Symbol.for('nodejs.util.inspect.custom')
-    : undefined;
-
-export default nodejsCustomInspectSymbol;
diff --git a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs b/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs
deleted file mode 100644
index 5437923..0000000
--- a/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs
+++ /dev/null
@@ -1,3 +0,0 @@
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-var nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;
-export default nodejsCustomInspectSymbol;
diff --git a/node_modules/graphql/jsutils/printPathArray.js b/node_modules/graphql/jsutils/printPathArray.js
deleted file mode 100644
index 31224eb..0000000
--- a/node_modules/graphql/jsutils/printPathArray.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = printPathArray;
-
-/**
- * Build a string describing the path.
- */
-function printPathArray(path) {
-  return path.map(function (key) {
-    return typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key;
-  }).join('');
-}
diff --git a/node_modules/graphql/jsutils/printPathArray.js.flow b/node_modules/graphql/jsutils/printPathArray.js.flow
deleted file mode 100644
index f850c5e..0000000
--- a/node_modules/graphql/jsutils/printPathArray.js.flow
+++ /dev/null
@@ -1,14 +0,0 @@
-// @flow strict
-
-/**
- * Build a string describing the path.
- */
-export default function printPathArray(
-  path: $ReadOnlyArray<string | number>,
-): string {
-  return path
-    .map(key =>
-      typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key,
-    )
-    .join('');
-}
diff --git a/node_modules/graphql/jsutils/printPathArray.mjs b/node_modules/graphql/jsutils/printPathArray.mjs
deleted file mode 100644
index 6bf077a..0000000
--- a/node_modules/graphql/jsutils/printPathArray.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Build a string describing the path.
- */
-export default function printPathArray(path) {
-  return path.map(function (key) {
-    return typeof key === 'number' ? '[' + key.toString() + ']' : '.' + key;
-  }).join('');
-}
diff --git a/node_modules/graphql/jsutils/promiseForObject.js b/node_modules/graphql/jsutils/promiseForObject.js
deleted file mode 100644
index f291f9b..0000000
--- a/node_modules/graphql/jsutils/promiseForObject.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = promiseForObject;
-
-/**
- * This function transforms a JS object `ObjMap<Promise<T>>` into
- * a `Promise<ObjMap<T>>`
- *
- * This is akin to bluebird's `Promise.props`, but implemented only using
- * `Promise.all` so it will work with any implementation of ES6 promises.
- */
-function promiseForObject(object) {
-  var keys = Object.keys(object);
-  var valuesAndPromises = keys.map(function (name) {
-    return object[name];
-  });
-  return Promise.all(valuesAndPromises).then(function (values) {
-    return values.reduce(function (resolvedObject, value, i) {
-      resolvedObject[keys[i]] = value;
-      return resolvedObject;
-    }, Object.create(null));
-  });
-}
diff --git a/node_modules/graphql/jsutils/promiseForObject.js.flow b/node_modules/graphql/jsutils/promiseForObject.js.flow
deleted file mode 100644
index b0afd8b..0000000
--- a/node_modules/graphql/jsutils/promiseForObject.js.flow
+++ /dev/null
@@ -1,23 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from './ObjMap';
-
-/**
- * This function transforms a JS object `ObjMap<Promise<T>>` into
- * a `Promise<ObjMap<T>>`
- *
- * This is akin to bluebird's `Promise.props`, but implemented only using
- * `Promise.all` so it will work with any implementation of ES6 promises.
- */
-export default function promiseForObject<T>(
-  object: ObjMap<Promise<T>>,
-): Promise<ObjMap<T>> {
-  const keys = Object.keys(object);
-  const valuesAndPromises = keys.map(name => object[name]);
-  return Promise.all(valuesAndPromises).then(values =>
-    values.reduce((resolvedObject, value, i) => {
-      resolvedObject[keys[i]] = value;
-      return resolvedObject;
-    }, Object.create(null)),
-  );
-}
diff --git a/node_modules/graphql/jsutils/promiseForObject.mjs b/node_modules/graphql/jsutils/promiseForObject.mjs
deleted file mode 100644
index ee36ed4..0000000
--- a/node_modules/graphql/jsutils/promiseForObject.mjs
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * This function transforms a JS object `ObjMap<Promise<T>>` into
- * a `Promise<ObjMap<T>>`
- *
- * This is akin to bluebird's `Promise.props`, but implemented only using
- * `Promise.all` so it will work with any implementation of ES6 promises.
- */
-export default function promiseForObject(object) {
-  var keys = Object.keys(object);
-  var valuesAndPromises = keys.map(function (name) {
-    return object[name];
-  });
-  return Promise.all(valuesAndPromises).then(function (values) {
-    return values.reduce(function (resolvedObject, value, i) {
-      resolvedObject[keys[i]] = value;
-      return resolvedObject;
-    }, Object.create(null));
-  });
-}
diff --git a/node_modules/graphql/jsutils/promiseReduce.js b/node_modules/graphql/jsutils/promiseReduce.js
deleted file mode 100644
index 836296a..0000000
--- a/node_modules/graphql/jsutils/promiseReduce.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = promiseReduce;
-
-var _isPromise = _interopRequireDefault(require("./isPromise"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Similar to Array.prototype.reduce(), however the reducing callback may return
- * a Promise, in which case reduction will continue after each promise resolves.
- *
- * If the callback does not return a Promise, then this function will also not
- * return a Promise.
- */
-function promiseReduce(values, callback, initialValue) {
-  return values.reduce(function (previous, value) {
-    return (0, _isPromise.default)(previous) ? previous.then(function (resolved) {
-      return callback(resolved, value);
-    }) : callback(previous, value);
-  }, initialValue);
-}
diff --git a/node_modules/graphql/jsutils/promiseReduce.js.flow b/node_modules/graphql/jsutils/promiseReduce.js.flow
deleted file mode 100644
index 22abbd5..0000000
--- a/node_modules/graphql/jsutils/promiseReduce.js.flow
+++ /dev/null
@@ -1,25 +0,0 @@
-// @flow strict
-
-import isPromise from './isPromise';
-import { type PromiseOrValue } from './PromiseOrValue';
-
-/**
- * Similar to Array.prototype.reduce(), however the reducing callback may return
- * a Promise, in which case reduction will continue after each promise resolves.
- *
- * If the callback does not return a Promise, then this function will also not
- * return a Promise.
- */
-export default function promiseReduce<T, U>(
-  values: $ReadOnlyArray<T>,
-  callback: (U, T) => PromiseOrValue<U>,
-  initialValue: PromiseOrValue<U>,
-): PromiseOrValue<U> {
-  return values.reduce(
-    (previous, value) =>
-      isPromise(previous)
-        ? previous.then(resolved => callback(resolved, value))
-        : callback(previous, value),
-    initialValue,
-  );
-}
diff --git a/node_modules/graphql/jsutils/promiseReduce.mjs b/node_modules/graphql/jsutils/promiseReduce.mjs
deleted file mode 100644
index 324268f..0000000
--- a/node_modules/graphql/jsutils/promiseReduce.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import isPromise from "./isPromise.mjs";
-
-/**
- * Similar to Array.prototype.reduce(), however the reducing callback may return
- * a Promise, in which case reduction will continue after each promise resolves.
- *
- * If the callback does not return a Promise, then this function will also not
- * return a Promise.
- */
-export default function promiseReduce(values, callback, initialValue) {
-  return values.reduce(function (previous, value) {
-    return isPromise(previous) ? previous.then(function (resolved) {
-      return callback(resolved, value);
-    }) : callback(previous, value);
-  }, initialValue);
-}
diff --git a/node_modules/graphql/jsutils/suggestionList.js b/node_modules/graphql/jsutils/suggestionList.js
deleted file mode 100644
index ffc0f8c..0000000
--- a/node_modules/graphql/jsutils/suggestionList.js
+++ /dev/null
@@ -1,86 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = suggestionList;
-
-/**
- * Given an invalid input string and a list of valid options, returns a filtered
- * list of valid options sorted based on their similarity with the input.
- */
-function suggestionList(input, options) {
-  var optionsByDistance = Object.create(null);
-  var inputThreshold = input.length / 2;
-
-  for (var _i2 = 0; _i2 < options.length; _i2++) {
-    var option = options[_i2];
-    var distance = lexicalDistance(input, option);
-    var threshold = Math.max(inputThreshold, option.length / 2, 1);
-
-    if (distance <= threshold) {
-      optionsByDistance[option] = distance;
-    }
-  }
-
-  return Object.keys(optionsByDistance).sort(function (a, b) {
-    var distanceDiff = optionsByDistance[a] - optionsByDistance[b];
-    return distanceDiff !== 0 ? distanceDiff : a.localeCompare(b);
-  });
-}
-/**
- * Computes the lexical distance between strings A and B.
- *
- * The "distance" between two strings is given by counting the minimum number
- * of edits needed to transform string A into string B. An edit can be an
- * insertion, deletion, or substitution of a single character, or a swap of two
- * adjacent characters.
- *
- * Includes a custom alteration from Damerau-Levenshtein to treat case changes
- * as a single edit which helps identify mis-cased values with an edit distance
- * of 1.
- *
- * This distance can be useful for detecting typos in input or sorting
- *
- * @param {string} a
- * @param {string} b
- * @return {int} distance in number of edits
- */
-
-
-function lexicalDistance(aStr, bStr) {
-  if (aStr === bStr) {
-    return 0;
-  }
-
-  var d = [];
-  var a = aStr.toLowerCase();
-  var b = bStr.toLowerCase();
-  var aLength = a.length;
-  var bLength = b.length; // Any case change counts as a single edit
-
-  if (a === b) {
-    return 1;
-  }
-
-  for (var i = 0; i <= aLength; i++) {
-    d[i] = [i];
-  }
-
-  for (var j = 1; j <= bLength; j++) {
-    d[0][j] = j;
-  }
-
-  for (var _i3 = 1; _i3 <= aLength; _i3++) {
-    for (var _j = 1; _j <= bLength; _j++) {
-      var cost = a[_i3 - 1] === b[_j - 1] ? 0 : 1;
-      d[_i3][_j] = Math.min(d[_i3 - 1][_j] + 1, d[_i3][_j - 1] + 1, d[_i3 - 1][_j - 1] + cost);
-
-      if (_i3 > 1 && _j > 1 && a[_i3 - 1] === b[_j - 2] && a[_i3 - 2] === b[_j - 1]) {
-        d[_i3][_j] = Math.min(d[_i3][_j], d[_i3 - 2][_j - 2] + cost);
-      }
-    }
-  }
-
-  return d[aLength][bLength];
-}
diff --git a/node_modules/graphql/jsutils/suggestionList.js.flow b/node_modules/graphql/jsutils/suggestionList.js.flow
deleted file mode 100644
index 90ae4b5..0000000
--- a/node_modules/graphql/jsutils/suggestionList.js.flow
+++ /dev/null
@@ -1,85 +0,0 @@
-// @flow strict
-
-/**
- * Given an invalid input string and a list of valid options, returns a filtered
- * list of valid options sorted based on their similarity with the input.
- */
-export default function suggestionList(
-  input: string,
-  options: $ReadOnlyArray<string>,
-): Array<string> {
-  const optionsByDistance = Object.create(null);
-  const inputThreshold = input.length / 2;
-  for (const option of options) {
-    const distance = lexicalDistance(input, option);
-    const threshold = Math.max(inputThreshold, option.length / 2, 1);
-    if (distance <= threshold) {
-      optionsByDistance[option] = distance;
-    }
-  }
-  return Object.keys(optionsByDistance).sort((a, b) => {
-    const distanceDiff = optionsByDistance[a] - optionsByDistance[b];
-    return distanceDiff !== 0 ? distanceDiff : a.localeCompare(b);
-  });
-}
-
-/**
- * Computes the lexical distance between strings A and B.
- *
- * The "distance" between two strings is given by counting the minimum number
- * of edits needed to transform string A into string B. An edit can be an
- * insertion, deletion, or substitution of a single character, or a swap of two
- * adjacent characters.
- *
- * Includes a custom alteration from Damerau-Levenshtein to treat case changes
- * as a single edit which helps identify mis-cased values with an edit distance
- * of 1.
- *
- * This distance can be useful for detecting typos in input or sorting
- *
- * @param {string} a
- * @param {string} b
- * @return {int} distance in number of edits
- */
-function lexicalDistance(aStr, bStr) {
-  if (aStr === bStr) {
-    return 0;
-  }
-
-  const d = [];
-  const a = aStr.toLowerCase();
-  const b = bStr.toLowerCase();
-  const aLength = a.length;
-  const bLength = b.length;
-
-  // Any case change counts as a single edit
-  if (a === b) {
-    return 1;
-  }
-
-  for (let i = 0; i <= aLength; i++) {
-    d[i] = [i];
-  }
-
-  for (let j = 1; j <= bLength; j++) {
-    d[0][j] = j;
-  }
-
-  for (let i = 1; i <= aLength; i++) {
-    for (let j = 1; j <= bLength; j++) {
-      const cost = a[i - 1] === b[j - 1] ? 0 : 1;
-
-      d[i][j] = Math.min(
-        d[i - 1][j] + 1,
-        d[i][j - 1] + 1,
-        d[i - 1][j - 1] + cost,
-      );
-
-      if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
-        d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);
-      }
-    }
-  }
-
-  return d[aLength][bLength];
-}
diff --git a/node_modules/graphql/jsutils/suggestionList.mjs b/node_modules/graphql/jsutils/suggestionList.mjs
deleted file mode 100644
index fd2bd5e..0000000
--- a/node_modules/graphql/jsutils/suggestionList.mjs
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Given an invalid input string and a list of valid options, returns a filtered
- * list of valid options sorted based on their similarity with the input.
- */
-export default function suggestionList(input, options) {
-  var optionsByDistance = Object.create(null);
-  var inputThreshold = input.length / 2;
-
-  for (var _i2 = 0; _i2 < options.length; _i2++) {
-    var option = options[_i2];
-    var distance = lexicalDistance(input, option);
-    var threshold = Math.max(inputThreshold, option.length / 2, 1);
-
-    if (distance <= threshold) {
-      optionsByDistance[option] = distance;
-    }
-  }
-
-  return Object.keys(optionsByDistance).sort(function (a, b) {
-    var distanceDiff = optionsByDistance[a] - optionsByDistance[b];
-    return distanceDiff !== 0 ? distanceDiff : a.localeCompare(b);
-  });
-}
-/**
- * Computes the lexical distance between strings A and B.
- *
- * The "distance" between two strings is given by counting the minimum number
- * of edits needed to transform string A into string B. An edit can be an
- * insertion, deletion, or substitution of a single character, or a swap of two
- * adjacent characters.
- *
- * Includes a custom alteration from Damerau-Levenshtein to treat case changes
- * as a single edit which helps identify mis-cased values with an edit distance
- * of 1.
- *
- * This distance can be useful for detecting typos in input or sorting
- *
- * @param {string} a
- * @param {string} b
- * @return {int} distance in number of edits
- */
-
-function lexicalDistance(aStr, bStr) {
-  if (aStr === bStr) {
-    return 0;
-  }
-
-  var d = [];
-  var a = aStr.toLowerCase();
-  var b = bStr.toLowerCase();
-  var aLength = a.length;
-  var bLength = b.length; // Any case change counts as a single edit
-
-  if (a === b) {
-    return 1;
-  }
-
-  for (var i = 0; i <= aLength; i++) {
-    d[i] = [i];
-  }
-
-  for (var j = 1; j <= bLength; j++) {
-    d[0][j] = j;
-  }
-
-  for (var _i3 = 1; _i3 <= aLength; _i3++) {
-    for (var _j = 1; _j <= bLength; _j++) {
-      var cost = a[_i3 - 1] === b[_j - 1] ? 0 : 1;
-      d[_i3][_j] = Math.min(d[_i3 - 1][_j] + 1, d[_i3][_j - 1] + 1, d[_i3 - 1][_j - 1] + cost);
-
-      if (_i3 > 1 && _j > 1 && a[_i3 - 1] === b[_j - 2] && a[_i3 - 2] === b[_j - 1]) {
-        d[_i3][_j] = Math.min(d[_i3][_j], d[_i3 - 2][_j - 2] + cost);
-      }
-    }
-  }
-
-  return d[aLength][bLength];
-}
diff --git a/node_modules/graphql/jsutils/toObjMap.js b/node_modules/graphql/jsutils/toObjMap.js
deleted file mode 100644
index 894edef..0000000
--- a/node_modules/graphql/jsutils/toObjMap.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = toObjMap;
-
-var _objectEntries3 = _interopRequireDefault(require("../polyfills/objectEntries"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function toObjMap(obj) {
-  /* eslint-enable no-redeclare */
-  if (Object.getPrototypeOf(obj) === null) {
-    return obj;
-  }
-
-  var map = Object.create(null);
-
-  for (var _i2 = 0, _objectEntries2 = (0, _objectEntries3.default)(obj); _i2 < _objectEntries2.length; _i2++) {
-    var _ref2 = _objectEntries2[_i2];
-    var key = _ref2[0];
-    var value = _ref2[1];
-    map[key] = value;
-  }
-
-  return map;
-}
diff --git a/node_modules/graphql/jsutils/toObjMap.js.flow b/node_modules/graphql/jsutils/toObjMap.js.flow
deleted file mode 100644
index cf0da8f..0000000
--- a/node_modules/graphql/jsutils/toObjMap.js.flow
+++ /dev/null
@@ -1,27 +0,0 @@
-// @flow strict
-
-import objectEntries from '../polyfills/objectEntries';
-
-import {
-  type ObjMap,
-  type ObjMapLike,
-  type ReadOnlyObjMap,
-  type ReadOnlyObjMapLike,
-} from './ObjMap';
-
-/* eslint-disable no-redeclare */
-declare function toObjMap<T>(obj: ObjMapLike<T>): ObjMap<T>;
-declare function toObjMap<T>(obj: ReadOnlyObjMapLike<T>): ReadOnlyObjMap<T>;
-
-export default function toObjMap(obj) {
-  /* eslint-enable no-redeclare */
-  if (Object.getPrototypeOf(obj) === null) {
-    return obj;
-  }
-
-  const map = Object.create(null);
-  for (const [key, value] of objectEntries(obj)) {
-    map[key] = value;
-  }
-  return map;
-}
diff --git a/node_modules/graphql/jsutils/toObjMap.mjs b/node_modules/graphql/jsutils/toObjMap.mjs
deleted file mode 100644
index b0ddf05..0000000
--- a/node_modules/graphql/jsutils/toObjMap.mjs
+++ /dev/null
@@ -1,18 +0,0 @@
-import objectEntries from "../polyfills/objectEntries.mjs";
-export default function toObjMap(obj) {
-  /* eslint-enable no-redeclare */
-  if (Object.getPrototypeOf(obj) === null) {
-    return obj;
-  }
-
-  var map = Object.create(null);
-
-  for (var _i2 = 0, _objectEntries2 = objectEntries(obj); _i2 < _objectEntries2.length; _i2++) {
-    var _ref2 = _objectEntries2[_i2];
-    var key = _ref2[0];
-    var value = _ref2[1];
-    map[key] = value;
-  }
-
-  return map;
-}
diff --git a/node_modules/graphql/language/ast.d.ts b/node_modules/graphql/language/ast.d.ts
deleted file mode 100644
index 576db47..0000000
--- a/node_modules/graphql/language/ast.d.ts
+++ /dev/null
@@ -1,593 +0,0 @@
-import { Source } from './source';
-import { TokenKindEnum } from './tokenKind';
-
-/**
- * Contains a range of UTF-8 character offsets and token references that
- * identify the region of the source from which the AST derived.
- */
-export class Location {
-  /**
-   * The character offset at which this Node begins.
-   */
-  readonly start: number;
-
-  /**
-   * The character offset at which this Node ends.
-   */
-  readonly end: number;
-
-  /**
-   * The Token at which this Node begins.
-   */
-  readonly startToken: Token;
-
-  /**
-   * The Token at which this Node ends.
-   */
-  readonly endToken: Token;
-
-  /**
-   * The Source document the AST represents.
-   */
-  readonly source: Source;
-
-  constructor(startToken: Token, endToken: Token, source: Source);
-}
-
-/**
- * Represents a range of characters represented by a lexical token
- * within a Source.
- */
-export class Token {
-  /**
-   * The kind of Token.
-   */
-  readonly kind: TokenKindEnum;
-
-  /**
-   * The character offset at which this Node begins.
-   */
-  readonly start: number;
-
-  /**
-   * The character offset at which this Node ends.
-   */
-  readonly end: number;
-
-  /**
-   * The 1-indexed line number on which this Token appears.
-   */
-  readonly line: number;
-
-  /**
-   * The 1-indexed column number at which this Token begins.
-   */
-  readonly column: number;
-
-  /**
-   * For non-punctuation tokens, represents the interpreted value of the token.
-   */
-  readonly value: string | undefined;
-
-  /**
-   * Tokens exist as nodes in a double-linked-list amongst all tokens
-   * including ignored tokens. <SOF> is always the first node and <EOF>
-   * the last.
-   */
-  readonly prev: Token | null;
-  readonly next: Token | null;
-
-  constructor(
-    kind: TokenKindEnum,
-    start: number,
-    end: number,
-    line: number,
-    column: number,
-    prev: Token | null,
-    value?: string,
-  );
-}
-
-/**
- * @internal
- */
-export function isNode(maybeNode: any): maybeNode is ASTNode;
-
-/**
- * The list of all possible AST node types.
- */
-export type ASTNode =
-  | NameNode
-  | DocumentNode
-  | OperationDefinitionNode
-  | VariableDefinitionNode
-  | VariableNode
-  | SelectionSetNode
-  | FieldNode
-  | ArgumentNode
-  | FragmentSpreadNode
-  | InlineFragmentNode
-  | FragmentDefinitionNode
-  | IntValueNode
-  | FloatValueNode
-  | StringValueNode
-  | BooleanValueNode
-  | NullValueNode
-  | EnumValueNode
-  | ListValueNode
-  | ObjectValueNode
-  | ObjectFieldNode
-  | DirectiveNode
-  | NamedTypeNode
-  | ListTypeNode
-  | NonNullTypeNode
-  | SchemaDefinitionNode
-  | OperationTypeDefinitionNode
-  | ScalarTypeDefinitionNode
-  | ObjectTypeDefinitionNode
-  | FieldDefinitionNode
-  | InputValueDefinitionNode
-  | InterfaceTypeDefinitionNode
-  | UnionTypeDefinitionNode
-  | EnumTypeDefinitionNode
-  | EnumValueDefinitionNode
-  | InputObjectTypeDefinitionNode
-  | DirectiveDefinitionNode
-  | SchemaExtensionNode
-  | ScalarTypeExtensionNode
-  | ObjectTypeExtensionNode
-  | InterfaceTypeExtensionNode
-  | UnionTypeExtensionNode
-  | EnumTypeExtensionNode
-  | InputObjectTypeExtensionNode;
-
-/**
- * Utility type listing all nodes indexed by their kind.
- */
-export interface ASTKindToNode {
-  Name: NameNode;
-  Document: DocumentNode;
-  OperationDefinition: OperationDefinitionNode;
-  VariableDefinition: VariableDefinitionNode;
-  Variable: VariableNode;
-  SelectionSet: SelectionSetNode;
-  Field: FieldNode;
-  Argument: ArgumentNode;
-  FragmentSpread: FragmentSpreadNode;
-  InlineFragment: InlineFragmentNode;
-  FragmentDefinition: FragmentDefinitionNode;
-  IntValue: IntValueNode;
-  FloatValue: FloatValueNode;
-  StringValue: StringValueNode;
-  BooleanValue: BooleanValueNode;
-  NullValue: NullValueNode;
-  EnumValue: EnumValueNode;
-  ListValue: ListValueNode;
-  ObjectValue: ObjectValueNode;
-  ObjectField: ObjectFieldNode;
-  Directive: DirectiveNode;
-  NamedType: NamedTypeNode;
-  ListType: ListTypeNode;
-  NonNullType: NonNullTypeNode;
-  SchemaDefinition: SchemaDefinitionNode;
-  OperationTypeDefinition: OperationTypeDefinitionNode;
-  ScalarTypeDefinition: ScalarTypeDefinitionNode;
-  ObjectTypeDefinition: ObjectTypeDefinitionNode;
-  FieldDefinition: FieldDefinitionNode;
-  InputValueDefinition: InputValueDefinitionNode;
-  InterfaceTypeDefinition: InterfaceTypeDefinitionNode;
-  UnionTypeDefinition: UnionTypeDefinitionNode;
-  EnumTypeDefinition: EnumTypeDefinitionNode;
-  EnumValueDefinition: EnumValueDefinitionNode;
-  InputObjectTypeDefinition: InputObjectTypeDefinitionNode;
-  DirectiveDefinition: DirectiveDefinitionNode;
-  SchemaExtension: SchemaExtensionNode;
-  ScalarTypeExtension: ScalarTypeExtensionNode;
-  ObjectTypeExtension: ObjectTypeExtensionNode;
-  InterfaceTypeExtension: InterfaceTypeExtensionNode;
-  UnionTypeExtension: UnionTypeExtensionNode;
-  EnumTypeExtension: EnumTypeExtensionNode;
-  InputObjectTypeExtension: InputObjectTypeExtensionNode;
-}
-
-// Name
-
-export interface NameNode {
-  readonly kind: 'Name';
-  readonly loc?: Location;
-  readonly value: string;
-}
-
-// Document
-
-export interface DocumentNode {
-  readonly kind: 'Document';
-  readonly loc?: Location;
-  readonly definitions: ReadonlyArray<DefinitionNode>;
-}
-
-export type DefinitionNode =
-  | ExecutableDefinitionNode
-  | TypeSystemDefinitionNode
-  | TypeSystemExtensionNode;
-
-export type ExecutableDefinitionNode =
-  | OperationDefinitionNode
-  | FragmentDefinitionNode;
-
-export interface OperationDefinitionNode {
-  readonly kind: 'OperationDefinition';
-  readonly loc?: Location;
-  readonly operation: OperationTypeNode;
-  readonly name?: NameNode;
-  readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly selectionSet: SelectionSetNode;
-}
-
-export type OperationTypeNode = 'query' | 'mutation' | 'subscription';
-
-export interface VariableDefinitionNode {
-  readonly kind: 'VariableDefinition';
-  readonly loc?: Location;
-  readonly variable: VariableNode;
-  readonly type: TypeNode;
-  readonly defaultValue?: ValueNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface VariableNode {
-  readonly kind: 'Variable';
-  readonly loc?: Location;
-  readonly name: NameNode;
-}
-
-export interface SelectionSetNode {
-  kind: 'SelectionSet';
-  loc?: Location;
-  selections: ReadonlyArray<SelectionNode>;
-}
-
-export type SelectionNode = FieldNode | FragmentSpreadNode | InlineFragmentNode;
-
-export interface FieldNode {
-  readonly kind: 'Field';
-  readonly loc?: Location;
-  readonly alias?: NameNode;
-  readonly name: NameNode;
-  readonly arguments?: ReadonlyArray<ArgumentNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly selectionSet?: SelectionSetNode;
-}
-
-export interface ArgumentNode {
-  readonly kind: 'Argument';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly value: ValueNode;
-}
-
-// Fragments
-
-export interface FragmentSpreadNode {
-  readonly kind: 'FragmentSpread';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface InlineFragmentNode {
-  readonly kind: 'InlineFragment';
-  readonly loc?: Location;
-  readonly typeCondition?: NamedTypeNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly selectionSet: SelectionSetNode;
-}
-
-export interface FragmentDefinitionNode {
-  readonly kind: 'FragmentDefinition';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  // Note: fragment variable definitions are experimental and may be changed
-  // or removed in the future.
-  readonly variableDefinitions?: ReadonlyArray<VariableDefinitionNode>;
-  readonly typeCondition: NamedTypeNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly selectionSet: SelectionSetNode;
-}
-
-// Values
-
-export type ValueNode =
-  | VariableNode
-  | IntValueNode
-  | FloatValueNode
-  | StringValueNode
-  | BooleanValueNode
-  | NullValueNode
-  | EnumValueNode
-  | ListValueNode
-  | ObjectValueNode;
-
-export interface IntValueNode {
-  readonly kind: 'IntValue';
-  readonly loc?: Location;
-  readonly value: string;
-}
-
-export interface FloatValueNode {
-  readonly kind: 'FloatValue';
-  readonly loc?: Location;
-  readonly value: string;
-}
-
-export interface StringValueNode {
-  readonly kind: 'StringValue';
-  readonly loc?: Location;
-  readonly value: string;
-  readonly block?: boolean;
-}
-
-export interface BooleanValueNode {
-  readonly kind: 'BooleanValue';
-  readonly loc?: Location;
-  readonly value: boolean;
-}
-
-export interface NullValueNode {
-  readonly kind: 'NullValue';
-  readonly loc?: Location;
-}
-
-export interface EnumValueNode {
-  readonly kind: 'EnumValue';
-  readonly loc?: Location;
-  readonly value: string;
-}
-
-export interface ListValueNode {
-  readonly kind: 'ListValue';
-  readonly loc?: Location;
-  readonly values: ReadonlyArray<ValueNode>;
-}
-
-export interface ObjectValueNode {
-  readonly kind: 'ObjectValue';
-  readonly loc?: Location;
-  readonly fields: ReadonlyArray<ObjectFieldNode>;
-}
-
-export interface ObjectFieldNode {
-  readonly kind: 'ObjectField';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly value: ValueNode;
-}
-
-// Directives
-
-export interface DirectiveNode {
-  readonly kind: 'Directive';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly arguments?: ReadonlyArray<ArgumentNode>;
-}
-
-// Type Reference
-
-export type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode;
-
-export interface NamedTypeNode {
-  readonly kind: 'NamedType';
-  readonly loc?: Location;
-  readonly name: NameNode;
-}
-
-export interface ListTypeNode {
-  readonly kind: 'ListType';
-  readonly loc?: Location;
-  readonly type: TypeNode;
-}
-
-export interface NonNullTypeNode {
-  readonly kind: 'NonNullType';
-  readonly loc?: Location;
-  readonly type: NamedTypeNode | ListTypeNode;
-}
-
-// Type System Definition
-
-export type TypeSystemDefinitionNode =
-  | SchemaDefinitionNode
-  | TypeDefinitionNode
-  | DirectiveDefinitionNode;
-
-export interface SchemaDefinitionNode {
-  readonly kind: 'SchemaDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly operationTypes: ReadonlyArray<OperationTypeDefinitionNode>;
-}
-
-export interface OperationTypeDefinitionNode {
-  readonly kind: 'OperationTypeDefinition';
-  readonly loc?: Location;
-  readonly operation: OperationTypeNode;
-  readonly type: NamedTypeNode;
-}
-
-// Type Definition
-
-export type TypeDefinitionNode =
-  | ScalarTypeDefinitionNode
-  | ObjectTypeDefinitionNode
-  | InterfaceTypeDefinitionNode
-  | UnionTypeDefinitionNode
-  | EnumTypeDefinitionNode
-  | InputObjectTypeDefinitionNode;
-
-export interface ScalarTypeDefinitionNode {
-  readonly kind: 'ScalarTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface ObjectTypeDefinitionNode {
-  readonly kind: 'ObjectTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly interfaces?: ReadonlyArray<NamedTypeNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<FieldDefinitionNode>;
-}
-
-export interface FieldDefinitionNode {
-  readonly kind: 'FieldDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
-  readonly type: TypeNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface InputValueDefinitionNode {
-  readonly kind: 'InputValueDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly type: TypeNode;
-  readonly defaultValue?: ValueNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface InterfaceTypeDefinitionNode {
-  readonly kind: 'InterfaceTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly interfaces?: ReadonlyArray<NamedTypeNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<FieldDefinitionNode>;
-}
-
-export interface UnionTypeDefinitionNode {
-  readonly kind: 'UnionTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly types?: ReadonlyArray<NamedTypeNode>;
-}
-
-export interface EnumTypeDefinitionNode {
-  readonly kind: 'EnumTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly values?: ReadonlyArray<EnumValueDefinitionNode>;
-}
-
-export interface EnumValueDefinitionNode {
-  readonly kind: 'EnumValueDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface InputObjectTypeDefinitionNode {
-  readonly kind: 'InputObjectTypeDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<InputValueDefinitionNode>;
-}
-
-// Directive Definitions
-
-export interface DirectiveDefinitionNode {
-  readonly kind: 'DirectiveDefinition';
-  readonly loc?: Location;
-  readonly description?: StringValueNode;
-  readonly name: NameNode;
-  readonly arguments?: ReadonlyArray<InputValueDefinitionNode>;
-  readonly repeatable: boolean;
-  readonly locations: ReadonlyArray<NameNode>;
-}
-
-// Type System Extensions
-
-export type TypeSystemExtensionNode = SchemaExtensionNode | TypeExtensionNode;
-
-export type SchemaExtensionNode = {
-  readonly kind: 'SchemaExtension';
-  readonly loc?: Location;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly operationTypes?: ReadonlyArray<OperationTypeDefinitionNode>;
-};
-
-// Type Extensions
-
-export type TypeExtensionNode =
-  | ScalarTypeExtensionNode
-  | ObjectTypeExtensionNode
-  | InterfaceTypeExtensionNode
-  | UnionTypeExtensionNode
-  | EnumTypeExtensionNode
-  | InputObjectTypeExtensionNode;
-
-export interface ScalarTypeExtensionNode {
-  readonly kind: 'ScalarTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-}
-
-export interface ObjectTypeExtensionNode {
-  readonly kind: 'ObjectTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly interfaces?: ReadonlyArray<NamedTypeNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<FieldDefinitionNode>;
-}
-
-export interface InterfaceTypeExtensionNode {
-  readonly kind: 'InterfaceTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly interfaces?: ReadonlyArray<NamedTypeNode>;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<FieldDefinitionNode>;
-}
-
-export interface UnionTypeExtensionNode {
-  readonly kind: 'UnionTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly types?: ReadonlyArray<NamedTypeNode>;
-}
-
-export interface EnumTypeExtensionNode {
-  readonly kind: 'EnumTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly values?: ReadonlyArray<EnumValueDefinitionNode>;
-}
-
-export interface InputObjectTypeExtensionNode {
-  readonly kind: 'InputObjectTypeExtension';
-  readonly loc?: Location;
-  readonly name: NameNode;
-  readonly directives?: ReadonlyArray<DirectiveNode>;
-  readonly fields?: ReadonlyArray<InputValueDefinitionNode>;
-}
diff --git a/node_modules/graphql/language/ast.js b/node_modules/graphql/language/ast.js
deleted file mode 100644
index 41d43b4..0000000
--- a/node_modules/graphql/language/ast.js
+++ /dev/null
@@ -1,118 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isNode = isNode;
-exports.Token = exports.Location = void 0;
-
-var _defineToJSON = _interopRequireDefault(require("../jsutils/defineToJSON"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Contains a range of UTF-8 character offsets and token references that
- * identify the region of the source from which the AST derived.
- */
-var Location =
-/**
- * The character offset at which this Node begins.
- */
-
-/**
- * The character offset at which this Node ends.
- */
-
-/**
- * The Token at which this Node begins.
- */
-
-/**
- * The Token at which this Node ends.
- */
-
-/**
- * The Source document the AST represents.
- */
-function Location(startToken, endToken, source) {
-  this.start = startToken.start;
-  this.end = endToken.end;
-  this.startToken = startToken;
-  this.endToken = endToken;
-  this.source = source;
-}; // Print a simplified form when appearing in JSON/util.inspect.
-
-
-exports.Location = Location;
-(0, _defineToJSON.default)(Location, function () {
-  return {
-    start: this.start,
-    end: this.end
-  };
-});
-/**
- * Represents a range of characters represented by a lexical token
- * within a Source.
- */
-
-var Token =
-/**
- * The kind of Token.
- */
-
-/**
- * The character offset at which this Node begins.
- */
-
-/**
- * The character offset at which this Node ends.
- */
-
-/**
- * The 1-indexed line number on which this Token appears.
- */
-
-/**
- * The 1-indexed column number at which this Token begins.
- */
-
-/**
- * For non-punctuation tokens, represents the interpreted value of the token.
- */
-
-/**
- * Tokens exist as nodes in a double-linked-list amongst all tokens
- * including ignored tokens. <SOF> is always the first node and <EOF>
- * the last.
- */
-function Token(kind, start, end, line, column, prev, value) {
-  this.kind = kind;
-  this.start = start;
-  this.end = end;
-  this.line = line;
-  this.column = column;
-  this.value = value;
-  this.prev = prev;
-  this.next = null;
-}; // Print a simplified form when appearing in JSON/util.inspect.
-
-
-exports.Token = Token;
-(0, _defineToJSON.default)(Token, function () {
-  return {
-    kind: this.kind,
-    value: this.value,
-    line: this.line,
-    column: this.column
-  };
-});
-/**
- * @internal
- */
-
-function isNode(maybeNode) {
-  return maybeNode != null && typeof maybeNode.kind === 'string';
-}
-/**
- * The list of all possible AST node types.
- */
diff --git a/node_modules/graphql/language/ast.js.flow b/node_modules/graphql/language/ast.js.flow
deleted file mode 100644
index 9d5df64..0000000
--- a/node_modules/graphql/language/ast.js.flow
+++ /dev/null
@@ -1,629 +0,0 @@
-// @flow strict
-
-import defineToJSON from '../jsutils/defineToJSON';
-
-import { type Source } from './source';
-import { type TokenKindEnum } from './tokenKind';
-
-/**
- * Contains a range of UTF-8 character offsets and token references that
- * identify the region of the source from which the AST derived.
- */
-export class Location {
-  /**
-   * The character offset at which this Node begins.
-   */
-  +start: number;
-
-  /**
-   * The character offset at which this Node ends.
-   */
-  +end: number;
-
-  /**
-   * The Token at which this Node begins.
-   */
-  +startToken: Token;
-
-  /**
-   * The Token at which this Node ends.
-   */
-  +endToken: Token;
-
-  /**
-   * The Source document the AST represents.
-   */
-  +source: Source;
-
-  constructor(startToken: Token, endToken: Token, source: Source) {
-    this.start = startToken.start;
-    this.end = endToken.end;
-    this.startToken = startToken;
-    this.endToken = endToken;
-    this.source = source;
-  }
-}
-
-// Print a simplified form when appearing in JSON/util.inspect.
-defineToJSON(Location, function() {
-  return { start: this.start, end: this.end };
-});
-
-/**
- * Represents a range of characters represented by a lexical token
- * within a Source.
- */
-export class Token {
-  /**
-   * The kind of Token.
-   */
-  +kind: TokenKindEnum;
-
-  /**
-   * The character offset at which this Node begins.
-   */
-  +start: number;
-
-  /**
-   * The character offset at which this Node ends.
-   */
-  +end: number;
-
-  /**
-   * The 1-indexed line number on which this Token appears.
-   */
-  +line: number;
-
-  /**
-   * The 1-indexed column number at which this Token begins.
-   */
-  +column: number;
-
-  /**
-   * For non-punctuation tokens, represents the interpreted value of the token.
-   */
-  +value: string | void;
-
-  /**
-   * Tokens exist as nodes in a double-linked-list amongst all tokens
-   * including ignored tokens. <SOF> is always the first node and <EOF>
-   * the last.
-   */
-  +prev: Token | null;
-  +next: Token | null;
-
-  constructor(
-    kind: TokenKindEnum,
-    start: number,
-    end: number,
-    line: number,
-    column: number,
-    prev: Token | null,
-    value?: string,
-  ) {
-    this.kind = kind;
-    this.start = start;
-    this.end = end;
-    this.line = line;
-    this.column = column;
-    this.value = value;
-    this.prev = prev;
-    this.next = null;
-  }
-}
-
-// Print a simplified form when appearing in JSON/util.inspect.
-defineToJSON(Token, function() {
-  return {
-    kind: this.kind,
-    value: this.value,
-    line: this.line,
-    column: this.column,
-  };
-});
-
-/**
- * @internal
- */
-export function isNode(maybeNode: mixed): boolean %checks {
-  return maybeNode != null && typeof maybeNode.kind === 'string';
-}
-
-/**
- * The list of all possible AST node types.
- */
-export type ASTNode =
-  | NameNode
-  | DocumentNode
-  | OperationDefinitionNode
-  | VariableDefinitionNode
-  | VariableNode
-  | SelectionSetNode
-  | FieldNode
-  | ArgumentNode
-  | FragmentSpreadNode
-  | InlineFragmentNode
-  | FragmentDefinitionNode
-  | IntValueNode
-  | FloatValueNode
-  | StringValueNode
-  | BooleanValueNode
-  | NullValueNode
-  | EnumValueNode
-  | ListValueNode
-  | ObjectValueNode
-  | ObjectFieldNode
-  | DirectiveNode
-  | NamedTypeNode
-  | ListTypeNode
-  | NonNullTypeNode
-  | SchemaDefinitionNode
-  | OperationTypeDefinitionNode
-  | ScalarTypeDefinitionNode
-  | ObjectTypeDefinitionNode
-  | FieldDefinitionNode
-  | InputValueDefinitionNode
-  | InterfaceTypeDefinitionNode
-  | UnionTypeDefinitionNode
-  | EnumTypeDefinitionNode
-  | EnumValueDefinitionNode
-  | InputObjectTypeDefinitionNode
-  | DirectiveDefinitionNode
-  | SchemaExtensionNode
-  | ScalarTypeExtensionNode
-  | ObjectTypeExtensionNode
-  | InterfaceTypeExtensionNode
-  | UnionTypeExtensionNode
-  | EnumTypeExtensionNode
-  | InputObjectTypeExtensionNode;
-
-/**
- * Utility type listing all nodes indexed by their kind.
- */
-export type ASTKindToNode = {|
-  Name: NameNode,
-  Document: DocumentNode,
-  OperationDefinition: OperationDefinitionNode,
-  VariableDefinition: VariableDefinitionNode,
-  Variable: VariableNode,
-  SelectionSet: SelectionSetNode,
-  Field: FieldNode,
-  Argument: ArgumentNode,
-  FragmentSpread: FragmentSpreadNode,
-  InlineFragment: InlineFragmentNode,
-  FragmentDefinition: FragmentDefinitionNode,
-  IntValue: IntValueNode,
-  FloatValue: FloatValueNode,
-  StringValue: StringValueNode,
-  BooleanValue: BooleanValueNode,
-  NullValue: NullValueNode,
-  EnumValue: EnumValueNode,
-  ListValue: ListValueNode,
-  ObjectValue: ObjectValueNode,
-  ObjectField: ObjectFieldNode,
-  Directive: DirectiveNode,
-  NamedType: NamedTypeNode,
-  ListType: ListTypeNode,
-  NonNullType: NonNullTypeNode,
-  SchemaDefinition: SchemaDefinitionNode,
-  OperationTypeDefinition: OperationTypeDefinitionNode,
-  ScalarTypeDefinition: ScalarTypeDefinitionNode,
-  ObjectTypeDefinition: ObjectTypeDefinitionNode,
-  FieldDefinition: FieldDefinitionNode,
-  InputValueDefinition: InputValueDefinitionNode,
-  InterfaceTypeDefinition: InterfaceTypeDefinitionNode,
-  UnionTypeDefinition: UnionTypeDefinitionNode,
-  EnumTypeDefinition: EnumTypeDefinitionNode,
-  EnumValueDefinition: EnumValueDefinitionNode,
-  InputObjectTypeDefinition: InputObjectTypeDefinitionNode,
-  DirectiveDefinition: DirectiveDefinitionNode,
-  SchemaExtension: SchemaExtensionNode,
-  ScalarTypeExtension: ScalarTypeExtensionNode,
-  ObjectTypeExtension: ObjectTypeExtensionNode,
-  InterfaceTypeExtension: InterfaceTypeExtensionNode,
-  UnionTypeExtension: UnionTypeExtensionNode,
-  EnumTypeExtension: EnumTypeExtensionNode,
-  InputObjectTypeExtension: InputObjectTypeExtensionNode,
-|};
-
-// Name
-
-export type NameNode = {|
-  +kind: 'Name',
-  +loc?: Location,
-  +value: string,
-|};
-
-// Document
-
-export type DocumentNode = {|
-  +kind: 'Document',
-  +loc?: Location,
-  +definitions: $ReadOnlyArray<DefinitionNode>,
-|};
-
-export type DefinitionNode =
-  | ExecutableDefinitionNode
-  | TypeSystemDefinitionNode
-  | TypeSystemExtensionNode;
-
-export type ExecutableDefinitionNode =
-  | OperationDefinitionNode
-  | FragmentDefinitionNode;
-
-export type OperationDefinitionNode = {|
-  +kind: 'OperationDefinition',
-  +loc?: Location,
-  +operation: OperationTypeNode,
-  +name?: NameNode,
-  +variableDefinitions?: $ReadOnlyArray<VariableDefinitionNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +selectionSet: SelectionSetNode,
-|};
-
-export type OperationTypeNode = 'query' | 'mutation' | 'subscription';
-
-export type VariableDefinitionNode = {|
-  +kind: 'VariableDefinition',
-  +loc?: Location,
-  +variable: VariableNode,
-  +type: TypeNode,
-  +defaultValue?: ValueNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type VariableNode = {|
-  +kind: 'Variable',
-  +loc?: Location,
-  +name: NameNode,
-|};
-
-export type SelectionSetNode = {|
-  kind: 'SelectionSet',
-  loc?: Location,
-  selections: $ReadOnlyArray<SelectionNode>,
-|};
-
-export type SelectionNode = FieldNode | FragmentSpreadNode | InlineFragmentNode;
-
-export type FieldNode = {|
-  +kind: 'Field',
-  +loc?: Location,
-  +alias?: NameNode,
-  +name: NameNode,
-  +arguments?: $ReadOnlyArray<ArgumentNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +selectionSet?: SelectionSetNode,
-|};
-
-export type ArgumentNode = {|
-  +kind: 'Argument',
-  +loc?: Location,
-  +name: NameNode,
-  +value: ValueNode,
-|};
-
-// Fragments
-
-export type FragmentSpreadNode = {|
-  +kind: 'FragmentSpread',
-  +loc?: Location,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type InlineFragmentNode = {|
-  +kind: 'InlineFragment',
-  +loc?: Location,
-  +typeCondition?: NamedTypeNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +selectionSet: SelectionSetNode,
-|};
-
-export type FragmentDefinitionNode = {|
-  +kind: 'FragmentDefinition',
-  +loc?: Location,
-  +name: NameNode,
-  // Note: fragment variable definitions are experimental and may be changed
-  // or removed in the future.
-  +variableDefinitions?: $ReadOnlyArray<VariableDefinitionNode>,
-  +typeCondition: NamedTypeNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +selectionSet: SelectionSetNode,
-|};
-
-// Values
-
-export type ValueNode =
-  | VariableNode
-  | IntValueNode
-  | FloatValueNode
-  | StringValueNode
-  | BooleanValueNode
-  | NullValueNode
-  | EnumValueNode
-  | ListValueNode
-  | ObjectValueNode;
-
-export type IntValueNode = {|
-  +kind: 'IntValue',
-  +loc?: Location,
-  +value: string,
-|};
-
-export type FloatValueNode = {|
-  +kind: 'FloatValue',
-  +loc?: Location,
-  +value: string,
-|};
-
-export type StringValueNode = {|
-  +kind: 'StringValue',
-  +loc?: Location,
-  +value: string,
-  +block?: boolean,
-|};
-
-export type BooleanValueNode = {|
-  +kind: 'BooleanValue',
-  +loc?: Location,
-  +value: boolean,
-|};
-
-export type NullValueNode = {|
-  +kind: 'NullValue',
-  +loc?: Location,
-|};
-
-export type EnumValueNode = {|
-  +kind: 'EnumValue',
-  +loc?: Location,
-  +value: string,
-|};
-
-export type ListValueNode = {|
-  +kind: 'ListValue',
-  +loc?: Location,
-  +values: $ReadOnlyArray<ValueNode>,
-|};
-
-export type ObjectValueNode = {|
-  +kind: 'ObjectValue',
-  +loc?: Location,
-  +fields: $ReadOnlyArray<ObjectFieldNode>,
-|};
-
-export type ObjectFieldNode = {|
-  +kind: 'ObjectField',
-  +loc?: Location,
-  +name: NameNode,
-  +value: ValueNode,
-|};
-
-// Directives
-
-export type DirectiveNode = {|
-  +kind: 'Directive',
-  +loc?: Location,
-  +name: NameNode,
-  +arguments?: $ReadOnlyArray<ArgumentNode>,
-|};
-
-// Type Reference
-
-export type TypeNode = NamedTypeNode | ListTypeNode | NonNullTypeNode;
-
-export type NamedTypeNode = {|
-  +kind: 'NamedType',
-  +loc?: Location,
-  +name: NameNode,
-|};
-
-export type ListTypeNode = {|
-  +kind: 'ListType',
-  +loc?: Location,
-  +type: TypeNode,
-|};
-
-export type NonNullTypeNode = {|
-  +kind: 'NonNullType',
-  +loc?: Location,
-  +type: NamedTypeNode | ListTypeNode,
-|};
-
-// Type System Definition
-
-export type TypeSystemDefinitionNode =
-  | SchemaDefinitionNode
-  | TypeDefinitionNode
-  | DirectiveDefinitionNode;
-
-export type SchemaDefinitionNode = {|
-  +kind: 'SchemaDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +operationTypes: $ReadOnlyArray<OperationTypeDefinitionNode>,
-|};
-
-export type OperationTypeDefinitionNode = {|
-  +kind: 'OperationTypeDefinition',
-  +loc?: Location,
-  +operation: OperationTypeNode,
-  +type: NamedTypeNode,
-|};
-
-// Type Definition
-
-export type TypeDefinitionNode =
-  | ScalarTypeDefinitionNode
-  | ObjectTypeDefinitionNode
-  | InterfaceTypeDefinitionNode
-  | UnionTypeDefinitionNode
-  | EnumTypeDefinitionNode
-  | InputObjectTypeDefinitionNode;
-
-export type ScalarTypeDefinitionNode = {|
-  +kind: 'ScalarTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type ObjectTypeDefinitionNode = {|
-  +kind: 'ObjectTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +interfaces?: $ReadOnlyArray<NamedTypeNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<FieldDefinitionNode>,
-|};
-
-export type FieldDefinitionNode = {|
-  +kind: 'FieldDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +arguments?: $ReadOnlyArray<InputValueDefinitionNode>,
-  +type: TypeNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type InputValueDefinitionNode = {|
-  +kind: 'InputValueDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +type: TypeNode,
-  +defaultValue?: ValueNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type InterfaceTypeDefinitionNode = {|
-  +kind: 'InterfaceTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +interfaces?: $ReadOnlyArray<NamedTypeNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<FieldDefinitionNode>,
-|};
-
-export type UnionTypeDefinitionNode = {|
-  +kind: 'UnionTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +types?: $ReadOnlyArray<NamedTypeNode>,
-|};
-
-export type EnumTypeDefinitionNode = {|
-  +kind: 'EnumTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +values?: $ReadOnlyArray<EnumValueDefinitionNode>,
-|};
-
-export type EnumValueDefinitionNode = {|
-  +kind: 'EnumValueDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type InputObjectTypeDefinitionNode = {|
-  +kind: 'InputObjectTypeDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<InputValueDefinitionNode>,
-|};
-
-// Directive Definitions
-
-export type DirectiveDefinitionNode = {|
-  +kind: 'DirectiveDefinition',
-  +loc?: Location,
-  +description?: StringValueNode,
-  +name: NameNode,
-  +arguments?: $ReadOnlyArray<InputValueDefinitionNode>,
-  +repeatable: boolean,
-  +locations: $ReadOnlyArray<NameNode>,
-|};
-
-// Type System Extensions
-
-export type TypeSystemExtensionNode = SchemaExtensionNode | TypeExtensionNode;
-
-export type SchemaExtensionNode = {|
-  +kind: 'SchemaExtension',
-  +loc?: Location,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +operationTypes?: $ReadOnlyArray<OperationTypeDefinitionNode>,
-|};
-
-// Type Extensions
-
-export type TypeExtensionNode =
-  | ScalarTypeExtensionNode
-  | ObjectTypeExtensionNode
-  | InterfaceTypeExtensionNode
-  | UnionTypeExtensionNode
-  | EnumTypeExtensionNode
-  | InputObjectTypeExtensionNode;
-
-export type ScalarTypeExtensionNode = {|
-  +kind: 'ScalarTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-|};
-
-export type ObjectTypeExtensionNode = {|
-  +kind: 'ObjectTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +interfaces?: $ReadOnlyArray<NamedTypeNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<FieldDefinitionNode>,
-|};
-
-export type InterfaceTypeExtensionNode = {|
-  +kind: 'InterfaceTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +interfaces?: $ReadOnlyArray<NamedTypeNode>,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<FieldDefinitionNode>,
-|};
-
-export type UnionTypeExtensionNode = {|
-  +kind: 'UnionTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +types?: $ReadOnlyArray<NamedTypeNode>,
-|};
-
-export type EnumTypeExtensionNode = {|
-  +kind: 'EnumTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +values?: $ReadOnlyArray<EnumValueDefinitionNode>,
-|};
-
-export type InputObjectTypeExtensionNode = {|
-  +kind: 'InputObjectTypeExtension',
-  +loc?: Location,
-  +name: NameNode,
-  +directives?: $ReadOnlyArray<DirectiveNode>,
-  +fields?: $ReadOnlyArray<InputValueDefinitionNode>,
-|};
diff --git a/node_modules/graphql/language/ast.mjs b/node_modules/graphql/language/ast.mjs
deleted file mode 100644
index 9635962..0000000
--- a/node_modules/graphql/language/ast.mjs
+++ /dev/null
@@ -1,104 +0,0 @@
-import defineToJSON from "../jsutils/defineToJSON.mjs";
-
-/**
- * Contains a range of UTF-8 character offsets and token references that
- * identify the region of the source from which the AST derived.
- */
-export var Location =
-/**
- * The character offset at which this Node begins.
- */
-
-/**
- * The character offset at which this Node ends.
- */
-
-/**
- * The Token at which this Node begins.
- */
-
-/**
- * The Token at which this Node ends.
- */
-
-/**
- * The Source document the AST represents.
- */
-function Location(startToken, endToken, source) {
-  this.start = startToken.start;
-  this.end = endToken.end;
-  this.startToken = startToken;
-  this.endToken = endToken;
-  this.source = source;
-}; // Print a simplified form when appearing in JSON/util.inspect.
-
-defineToJSON(Location, function () {
-  return {
-    start: this.start,
-    end: this.end
-  };
-});
-/**
- * Represents a range of characters represented by a lexical token
- * within a Source.
- */
-
-export var Token =
-/**
- * The kind of Token.
- */
-
-/**
- * The character offset at which this Node begins.
- */
-
-/**
- * The character offset at which this Node ends.
- */
-
-/**
- * The 1-indexed line number on which this Token appears.
- */
-
-/**
- * The 1-indexed column number at which this Token begins.
- */
-
-/**
- * For non-punctuation tokens, represents the interpreted value of the token.
- */
-
-/**
- * Tokens exist as nodes in a double-linked-list amongst all tokens
- * including ignored tokens. <SOF> is always the first node and <EOF>
- * the last.
- */
-function Token(kind, start, end, line, column, prev, value) {
-  this.kind = kind;
-  this.start = start;
-  this.end = end;
-  this.line = line;
-  this.column = column;
-  this.value = value;
-  this.prev = prev;
-  this.next = null;
-}; // Print a simplified form when appearing in JSON/util.inspect.
-
-defineToJSON(Token, function () {
-  return {
-    kind: this.kind,
-    value: this.value,
-    line: this.line,
-    column: this.column
-  };
-});
-/**
- * @internal
- */
-
-export function isNode(maybeNode) {
-  return maybeNode != null && typeof maybeNode.kind === 'string';
-}
-/**
- * The list of all possible AST node types.
- */
diff --git a/node_modules/graphql/language/blockString.d.ts b/node_modules/graphql/language/blockString.d.ts
deleted file mode 100644
index fe997b4..0000000
--- a/node_modules/graphql/language/blockString.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Produces the value of a block string from its parsed raw value, similar to
- * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
- *
- * This implements the GraphQL spec's BlockStringValue() static algorithm.
- */
-export function dedentBlockStringValue(rawString: string): string;
-
-/**
- * @internal
- */
-export function getBlockStringIndentation(lines: ReadonlyArray<string>): number;
-
-/**
- * Print a block string in the indented block form by adding a leading and
- * trailing blank line. However, if a block string starts with whitespace and is
- * a single-line, adding a leading blank line would strip that whitespace.
- */
-export function printBlockString(
-  value: string,
-  indentation?: string,
-  preferMultipleLines?: boolean,
-): string;
diff --git a/node_modules/graphql/language/blockString.js b/node_modules/graphql/language/blockString.js
deleted file mode 100644
index 1a227ff..0000000
--- a/node_modules/graphql/language/blockString.js
+++ /dev/null
@@ -1,112 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.dedentBlockStringValue = dedentBlockStringValue;
-exports.getBlockStringIndentation = getBlockStringIndentation;
-exports.printBlockString = printBlockString;
-
-/**
- * Produces the value of a block string from its parsed raw value, similar to
- * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
- *
- * This implements the GraphQL spec's BlockStringValue() static algorithm.
- *
- * @internal
- */
-function dedentBlockStringValue(rawString) {
-  // Expand a block string's raw value into independent lines.
-  var lines = rawString.split(/\r\n|[\n\r]/g); // Remove common indentation from all lines but first.
-
-  var commonIndent = getBlockStringIndentation(lines);
-
-  if (commonIndent !== 0) {
-    for (var i = 1; i < lines.length; i++) {
-      lines[i] = lines[i].slice(commonIndent);
-    }
-  } // Remove leading and trailing blank lines.
-
-
-  while (lines.length > 0 && isBlank(lines[0])) {
-    lines.shift();
-  }
-
-  while (lines.length > 0 && isBlank(lines[lines.length - 1])) {
-    lines.pop();
-  } // Return a string of the lines joined with U+000A.
-
-
-  return lines.join('\n');
-}
-/**
- * @internal
- */
-
-
-function getBlockStringIndentation(lines) {
-  var commonIndent = null;
-
-  for (var i = 1; i < lines.length; i++) {
-    var line = lines[i];
-    var indent = leadingWhitespace(line);
-
-    if (indent === line.length) {
-      continue; // skip empty lines
-    }
-
-    if (commonIndent === null || indent < commonIndent) {
-      commonIndent = indent;
-
-      if (commonIndent === 0) {
-        break;
-      }
-    }
-  }
-
-  return commonIndent === null ? 0 : commonIndent;
-}
-
-function leadingWhitespace(str) {
-  var i = 0;
-
-  while (i < str.length && (str[i] === ' ' || str[i] === '\t')) {
-    i++;
-  }
-
-  return i;
-}
-
-function isBlank(str) {
-  return leadingWhitespace(str) === str.length;
-}
-/**
- * Print a block string in the indented block form by adding a leading and
- * trailing blank line. However, if a block string starts with whitespace and is
- * a single-line, adding a leading blank line would strip that whitespace.
- *
- * @internal
- */
-
-
-function printBlockString(value) {
-  var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-  var isSingleLine = value.indexOf('\n') === -1;
-  var hasLeadingSpace = value[0] === ' ' || value[0] === '\t';
-  var hasTrailingQuote = value[value.length - 1] === '"';
-  var printAsMultipleLines = !isSingleLine || hasTrailingQuote || preferMultipleLines;
-  var result = ''; // Format a multi-line block quote to account for leading space.
-
-  if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {
-    result += '\n' + indentation;
-  }
-
-  result += indentation ? value.replace(/\n/g, '\n' + indentation) : value;
-
-  if (printAsMultipleLines) {
-    result += '\n';
-  }
-
-  return '"""' + result.replace(/"""/g, '\\"""') + '"""';
-}
diff --git a/node_modules/graphql/language/blockString.js.flow b/node_modules/graphql/language/blockString.js.flow
deleted file mode 100644
index dba151a..0000000
--- a/node_modules/graphql/language/blockString.js.flow
+++ /dev/null
@@ -1,102 +0,0 @@
-// @flow strict
-
-/**
- * Produces the value of a block string from its parsed raw value, similar to
- * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
- *
- * This implements the GraphQL spec's BlockStringValue() static algorithm.
- *
- * @internal
- */
-export function dedentBlockStringValue(rawString: string): string {
-  // Expand a block string's raw value into independent lines.
-  const lines = rawString.split(/\r\n|[\n\r]/g);
-
-  // Remove common indentation from all lines but first.
-  const commonIndent = getBlockStringIndentation(lines);
-
-  if (commonIndent !== 0) {
-    for (let i = 1; i < lines.length; i++) {
-      lines[i] = lines[i].slice(commonIndent);
-    }
-  }
-
-  // Remove leading and trailing blank lines.
-  while (lines.length > 0 && isBlank(lines[0])) {
-    lines.shift();
-  }
-  while (lines.length > 0 && isBlank(lines[lines.length - 1])) {
-    lines.pop();
-  }
-
-  // Return a string of the lines joined with U+000A.
-  return lines.join('\n');
-}
-/**
- * @internal
- */
-export function getBlockStringIndentation(
-  lines: $ReadOnlyArray<string>,
-): number {
-  let commonIndent = null;
-
-  for (let i = 1; i < lines.length; i++) {
-    const line = lines[i];
-    const indent = leadingWhitespace(line);
-    if (indent === line.length) {
-      continue; // skip empty lines
-    }
-
-    if (commonIndent === null || indent < commonIndent) {
-      commonIndent = indent;
-      if (commonIndent === 0) {
-        break;
-      }
-    }
-  }
-
-  return commonIndent === null ? 0 : commonIndent;
-}
-
-function leadingWhitespace(str) {
-  let i = 0;
-  while (i < str.length && (str[i] === ' ' || str[i] === '\t')) {
-    i++;
-  }
-  return i;
-}
-
-function isBlank(str) {
-  return leadingWhitespace(str) === str.length;
-}
-
-/**
- * Print a block string in the indented block form by adding a leading and
- * trailing blank line. However, if a block string starts with whitespace and is
- * a single-line, adding a leading blank line would strip that whitespace.
- *
- * @internal
- */
-export function printBlockString(
-  value: string,
-  indentation?: string = '',
-  preferMultipleLines?: boolean = false,
-): string {
-  const isSingleLine = value.indexOf('\n') === -1;
-  const hasLeadingSpace = value[0] === ' ' || value[0] === '\t';
-  const hasTrailingQuote = value[value.length - 1] === '"';
-  const printAsMultipleLines =
-    !isSingleLine || hasTrailingQuote || preferMultipleLines;
-
-  let result = '';
-  // Format a multi-line block quote to account for leading space.
-  if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {
-    result += '\n' + indentation;
-  }
-  result += indentation ? value.replace(/\n/g, '\n' + indentation) : value;
-  if (printAsMultipleLines) {
-    result += '\n';
-  }
-
-  return '"""' + result.replace(/"""/g, '\\"""') + '"""';
-}
diff --git a/node_modules/graphql/language/blockString.mjs b/node_modules/graphql/language/blockString.mjs
deleted file mode 100644
index bc8f3cf..0000000
--- a/node_modules/graphql/language/blockString.mjs
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Produces the value of a block string from its parsed raw value, similar to
- * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
- *
- * This implements the GraphQL spec's BlockStringValue() static algorithm.
- *
- * @internal
- */
-export function dedentBlockStringValue(rawString) {
-  // Expand a block string's raw value into independent lines.
-  var lines = rawString.split(/\r\n|[\n\r]/g); // Remove common indentation from all lines but first.
-
-  var commonIndent = getBlockStringIndentation(lines);
-
-  if (commonIndent !== 0) {
-    for (var i = 1; i < lines.length; i++) {
-      lines[i] = lines[i].slice(commonIndent);
-    }
-  } // Remove leading and trailing blank lines.
-
-
-  while (lines.length > 0 && isBlank(lines[0])) {
-    lines.shift();
-  }
-
-  while (lines.length > 0 && isBlank(lines[lines.length - 1])) {
-    lines.pop();
-  } // Return a string of the lines joined with U+000A.
-
-
-  return lines.join('\n');
-}
-/**
- * @internal
- */
-
-export function getBlockStringIndentation(lines) {
-  var commonIndent = null;
-
-  for (var i = 1; i < lines.length; i++) {
-    var line = lines[i];
-    var indent = leadingWhitespace(line);
-
-    if (indent === line.length) {
-      continue; // skip empty lines
-    }
-
-    if (commonIndent === null || indent < commonIndent) {
-      commonIndent = indent;
-
-      if (commonIndent === 0) {
-        break;
-      }
-    }
-  }
-
-  return commonIndent === null ? 0 : commonIndent;
-}
-
-function leadingWhitespace(str) {
-  var i = 0;
-
-  while (i < str.length && (str[i] === ' ' || str[i] === '\t')) {
-    i++;
-  }
-
-  return i;
-}
-
-function isBlank(str) {
-  return leadingWhitespace(str) === str.length;
-}
-/**
- * Print a block string in the indented block form by adding a leading and
- * trailing blank line. However, if a block string starts with whitespace and is
- * a single-line, adding a leading blank line would strip that whitespace.
- *
- * @internal
- */
-
-
-export function printBlockString(value) {
-  var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-  var isSingleLine = value.indexOf('\n') === -1;
-  var hasLeadingSpace = value[0] === ' ' || value[0] === '\t';
-  var hasTrailingQuote = value[value.length - 1] === '"';
-  var printAsMultipleLines = !isSingleLine || hasTrailingQuote || preferMultipleLines;
-  var result = ''; // Format a multi-line block quote to account for leading space.
-
-  if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {
-    result += '\n' + indentation;
-  }
-
-  result += indentation ? value.replace(/\n/g, '\n' + indentation) : value;
-
-  if (printAsMultipleLines) {
-    result += '\n';
-  }
-
-  return '"""' + result.replace(/"""/g, '\\"""') + '"""';
-}
diff --git a/node_modules/graphql/language/directiveLocation.d.ts b/node_modules/graphql/language/directiveLocation.d.ts
deleted file mode 100644
index 31365f5..0000000
--- a/node_modules/graphql/language/directiveLocation.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * The set of allowed directive location values.
- */
-export const DirectiveLocation: _DirectiveLocation;
-
-/**
- * @internal
- */
-type _DirectiveLocation = {
-  // Request Definitions
-  QUERY: 'QUERY';
-  MUTATION: 'MUTATION';
-  SUBSCRIPTION: 'SUBSCRIPTION';
-  FIELD: 'FIELD';
-  FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION';
-  FRAGMENT_SPREAD: 'FRAGMENT_SPREAD';
-  INLINE_FRAGMENT: 'INLINE_FRAGMENT';
-  VARIABLE_DEFINITION: 'VARIABLE_DEFINITION';
-
-  // Type System Definitions
-  SCHEMA: 'SCHEMA';
-  SCALAR: 'SCALAR';
-  OBJECT: 'OBJECT';
-  FIELD_DEFINITION: 'FIELD_DEFINITION';
-  ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION';
-  INTERFACE: 'INTERFACE';
-  UNION: 'UNION';
-  ENUM: 'ENUM';
-  ENUM_VALUE: 'ENUM_VALUE';
-  INPUT_OBJECT: 'INPUT_OBJECT';
-  INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION';
-};
-
-/**
- * The enum type representing the directive location values.
- */
-export type DirectiveLocationEnum = _DirectiveLocation[keyof _DirectiveLocation];
diff --git a/node_modules/graphql/language/directiveLocation.js b/node_modules/graphql/language/directiveLocation.js
deleted file mode 100644
index 57bb417..0000000
--- a/node_modules/graphql/language/directiveLocation.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.DirectiveLocation = void 0;
-
-/**
- * The set of allowed directive location values.
- */
-var DirectiveLocation = Object.freeze({
-  // Request Definitions
-  QUERY: 'QUERY',
-  MUTATION: 'MUTATION',
-  SUBSCRIPTION: 'SUBSCRIPTION',
-  FIELD: 'FIELD',
-  FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',
-  FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',
-  INLINE_FRAGMENT: 'INLINE_FRAGMENT',
-  VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',
-  // Type System Definitions
-  SCHEMA: 'SCHEMA',
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  FIELD_DEFINITION: 'FIELD_DEFINITION',
-  ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  ENUM_VALUE: 'ENUM_VALUE',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'
-});
-/**
- * The enum type representing the directive location values.
- */
-
-exports.DirectiveLocation = DirectiveLocation;
diff --git a/node_modules/graphql/language/directiveLocation.js.flow b/node_modules/graphql/language/directiveLocation.js.flow
deleted file mode 100644
index 6529898..0000000
--- a/node_modules/graphql/language/directiveLocation.js.flow
+++ /dev/null
@@ -1,33 +0,0 @@
-// @flow strict
-
-/**
- * The set of allowed directive location values.
- */
-export const DirectiveLocation = Object.freeze({
-  // Request Definitions
-  QUERY: 'QUERY',
-  MUTATION: 'MUTATION',
-  SUBSCRIPTION: 'SUBSCRIPTION',
-  FIELD: 'FIELD',
-  FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',
-  FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',
-  INLINE_FRAGMENT: 'INLINE_FRAGMENT',
-  VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',
-  // Type System Definitions
-  SCHEMA: 'SCHEMA',
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  FIELD_DEFINITION: 'FIELD_DEFINITION',
-  ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  ENUM_VALUE: 'ENUM_VALUE',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION',
-});
-
-/**
- * The enum type representing the directive location values.
- */
-export type DirectiveLocationEnum = $Values<typeof DirectiveLocation>;
diff --git a/node_modules/graphql/language/directiveLocation.mjs b/node_modules/graphql/language/directiveLocation.mjs
deleted file mode 100644
index 82823b7..0000000
--- a/node_modules/graphql/language/directiveLocation.mjs
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * The set of allowed directive location values.
- */
-export var DirectiveLocation = Object.freeze({
-  // Request Definitions
-  QUERY: 'QUERY',
-  MUTATION: 'MUTATION',
-  SUBSCRIPTION: 'SUBSCRIPTION',
-  FIELD: 'FIELD',
-  FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',
-  FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',
-  INLINE_FRAGMENT: 'INLINE_FRAGMENT',
-  VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',
-  // Type System Definitions
-  SCHEMA: 'SCHEMA',
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  FIELD_DEFINITION: 'FIELD_DEFINITION',
-  ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  ENUM_VALUE: 'ENUM_VALUE',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'
-});
-/**
- * The enum type representing the directive location values.
- */
diff --git a/node_modules/graphql/language/index.d.ts b/node_modules/graphql/language/index.d.ts
deleted file mode 100644
index ce96538..0000000
--- a/node_modules/graphql/language/index.d.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-export { Source } from './source';
-export { getLocation, SourceLocation } from './location';
-
-export { printLocation, printSourceLocation } from './printLocation';
-
-export { Kind, KindEnum } from './kinds';
-export { TokenKind, TokenKindEnum } from './tokenKind';
-export { Lexer } from './lexer';
-export { parse, parseValue, parseType, ParseOptions } from './parser';
-export { print } from './printer';
-export {
-  visit,
-  visitInParallel,
-  getVisitFn,
-  BREAK,
-  ASTVisitor,
-  Visitor,
-  VisitFn,
-  VisitorKeyMap,
-} from './visitor';
-
-export {
-  Location,
-  Token,
-  ASTNode,
-  ASTKindToNode,
-  // Each kind of AST node
-  NameNode,
-  DocumentNode,
-  DefinitionNode,
-  ExecutableDefinitionNode,
-  OperationDefinitionNode,
-  OperationTypeNode,
-  VariableDefinitionNode,
-  VariableNode,
-  SelectionSetNode,
-  SelectionNode,
-  FieldNode,
-  ArgumentNode,
-  FragmentSpreadNode,
-  InlineFragmentNode,
-  FragmentDefinitionNode,
-  ValueNode,
-  IntValueNode,
-  FloatValueNode,
-  StringValueNode,
-  BooleanValueNode,
-  NullValueNode,
-  EnumValueNode,
-  ListValueNode,
-  ObjectValueNode,
-  ObjectFieldNode,
-  DirectiveNode,
-  TypeNode,
-  NamedTypeNode,
-  ListTypeNode,
-  NonNullTypeNode,
-  TypeSystemDefinitionNode,
-  SchemaDefinitionNode,
-  OperationTypeDefinitionNode,
-  TypeDefinitionNode,
-  ScalarTypeDefinitionNode,
-  ObjectTypeDefinitionNode,
-  FieldDefinitionNode,
-  InputValueDefinitionNode,
-  InterfaceTypeDefinitionNode,
-  UnionTypeDefinitionNode,
-  EnumTypeDefinitionNode,
-  EnumValueDefinitionNode,
-  InputObjectTypeDefinitionNode,
-  DirectiveDefinitionNode,
-  TypeSystemExtensionNode,
-  SchemaExtensionNode,
-  TypeExtensionNode,
-  ScalarTypeExtensionNode,
-  ObjectTypeExtensionNode,
-  InterfaceTypeExtensionNode,
-  UnionTypeExtensionNode,
-  EnumTypeExtensionNode,
-  InputObjectTypeExtensionNode,
-} from './ast';
-
-export {
-  isDefinitionNode,
-  isExecutableDefinitionNode,
-  isSelectionNode,
-  isValueNode,
-  isTypeNode,
-  isTypeSystemDefinitionNode,
-  isTypeDefinitionNode,
-  isTypeSystemExtensionNode,
-  isTypeExtensionNode,
-} from './predicates';
-
-export { DirectiveLocation, DirectiveLocationEnum } from './directiveLocation';
diff --git a/node_modules/graphql/language/index.js b/node_modules/graphql/language/index.js
deleted file mode 100644
index f577778..0000000
--- a/node_modules/graphql/language/index.js
+++ /dev/null
@@ -1,177 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "Source", {
-  enumerable: true,
-  get: function get() {
-    return _source.Source;
-  }
-});
-Object.defineProperty(exports, "getLocation", {
-  enumerable: true,
-  get: function get() {
-    return _location.getLocation;
-  }
-});
-Object.defineProperty(exports, "printLocation", {
-  enumerable: true,
-  get: function get() {
-    return _printLocation.printLocation;
-  }
-});
-Object.defineProperty(exports, "printSourceLocation", {
-  enumerable: true,
-  get: function get() {
-    return _printLocation.printSourceLocation;
-  }
-});
-Object.defineProperty(exports, "Kind", {
-  enumerable: true,
-  get: function get() {
-    return _kinds.Kind;
-  }
-});
-Object.defineProperty(exports, "TokenKind", {
-  enumerable: true,
-  get: function get() {
-    return _tokenKind.TokenKind;
-  }
-});
-Object.defineProperty(exports, "Lexer", {
-  enumerable: true,
-  get: function get() {
-    return _lexer.Lexer;
-  }
-});
-Object.defineProperty(exports, "parse", {
-  enumerable: true,
-  get: function get() {
-    return _parser.parse;
-  }
-});
-Object.defineProperty(exports, "parseValue", {
-  enumerable: true,
-  get: function get() {
-    return _parser.parseValue;
-  }
-});
-Object.defineProperty(exports, "parseType", {
-  enumerable: true,
-  get: function get() {
-    return _parser.parseType;
-  }
-});
-Object.defineProperty(exports, "print", {
-  enumerable: true,
-  get: function get() {
-    return _printer.print;
-  }
-});
-Object.defineProperty(exports, "visit", {
-  enumerable: true,
-  get: function get() {
-    return _visitor.visit;
-  }
-});
-Object.defineProperty(exports, "visitInParallel", {
-  enumerable: true,
-  get: function get() {
-    return _visitor.visitInParallel;
-  }
-});
-Object.defineProperty(exports, "getVisitFn", {
-  enumerable: true,
-  get: function get() {
-    return _visitor.getVisitFn;
-  }
-});
-Object.defineProperty(exports, "BREAK", {
-  enumerable: true,
-  get: function get() {
-    return _visitor.BREAK;
-  }
-});
-Object.defineProperty(exports, "isDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isExecutableDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isExecutableDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isSelectionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isSelectionNode;
-  }
-});
-Object.defineProperty(exports, "isValueNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isValueNode;
-  }
-});
-Object.defineProperty(exports, "isTypeNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isTypeNode;
-  }
-});
-Object.defineProperty(exports, "isTypeSystemDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isTypeSystemDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeDefinitionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isTypeDefinitionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeSystemExtensionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isTypeSystemExtensionNode;
-  }
-});
-Object.defineProperty(exports, "isTypeExtensionNode", {
-  enumerable: true,
-  get: function get() {
-    return _predicates.isTypeExtensionNode;
-  }
-});
-Object.defineProperty(exports, "DirectiveLocation", {
-  enumerable: true,
-  get: function get() {
-    return _directiveLocation.DirectiveLocation;
-  }
-});
-
-var _source = require("./source");
-
-var _location = require("./location");
-
-var _printLocation = require("./printLocation");
-
-var _kinds = require("./kinds");
-
-var _tokenKind = require("./tokenKind");
-
-var _lexer = require("./lexer");
-
-var _parser = require("./parser");
-
-var _printer = require("./printer");
-
-var _visitor = require("./visitor");
-
-var _predicates = require("./predicates");
-
-var _directiveLocation = require("./directiveLocation");
diff --git a/node_modules/graphql/language/index.js.flow b/node_modules/graphql/language/index.js.flow
deleted file mode 100644
index 0ce8ff6..0000000
--- a/node_modules/graphql/language/index.js.flow
+++ /dev/null
@@ -1,100 +0,0 @@
-// @flow strict
-
-export { Source } from './source';
-
-export { getLocation } from './location';
-export type { SourceLocation } from './location';
-
-export { printLocation, printSourceLocation } from './printLocation';
-
-export { Kind } from './kinds';
-export type { KindEnum } from './kinds';
-
-export { TokenKind } from './tokenKind';
-export type { TokenKindEnum } from './tokenKind';
-
-export { Lexer } from './lexer';
-
-export { parse, parseValue, parseType } from './parser';
-export type { ParseOptions } from './parser';
-
-export { print } from './printer';
-
-export { visit, visitInParallel, getVisitFn, BREAK } from './visitor';
-export type { ASTVisitor, Visitor, VisitFn, VisitorKeyMap } from './visitor';
-
-export type {
-  Location,
-  Token,
-  ASTNode,
-  ASTKindToNode,
-  // Each kind of AST node
-  NameNode,
-  DocumentNode,
-  DefinitionNode,
-  ExecutableDefinitionNode,
-  OperationDefinitionNode,
-  OperationTypeNode,
-  VariableDefinitionNode,
-  VariableNode,
-  SelectionSetNode,
-  SelectionNode,
-  FieldNode,
-  ArgumentNode,
-  FragmentSpreadNode,
-  InlineFragmentNode,
-  FragmentDefinitionNode,
-  ValueNode,
-  IntValueNode,
-  FloatValueNode,
-  StringValueNode,
-  BooleanValueNode,
-  NullValueNode,
-  EnumValueNode,
-  ListValueNode,
-  ObjectValueNode,
-  ObjectFieldNode,
-  DirectiveNode,
-  TypeNode,
-  NamedTypeNode,
-  ListTypeNode,
-  NonNullTypeNode,
-  TypeSystemDefinitionNode,
-  SchemaDefinitionNode,
-  OperationTypeDefinitionNode,
-  TypeDefinitionNode,
-  ScalarTypeDefinitionNode,
-  ObjectTypeDefinitionNode,
-  FieldDefinitionNode,
-  InputValueDefinitionNode,
-  InterfaceTypeDefinitionNode,
-  UnionTypeDefinitionNode,
-  EnumTypeDefinitionNode,
-  EnumValueDefinitionNode,
-  InputObjectTypeDefinitionNode,
-  DirectiveDefinitionNode,
-  TypeSystemExtensionNode,
-  SchemaExtensionNode,
-  TypeExtensionNode,
-  ScalarTypeExtensionNode,
-  ObjectTypeExtensionNode,
-  InterfaceTypeExtensionNode,
-  UnionTypeExtensionNode,
-  EnumTypeExtensionNode,
-  InputObjectTypeExtensionNode,
-} from './ast';
-
-export {
-  isDefinitionNode,
-  isExecutableDefinitionNode,
-  isSelectionNode,
-  isValueNode,
-  isTypeNode,
-  isTypeSystemDefinitionNode,
-  isTypeDefinitionNode,
-  isTypeSystemExtensionNode,
-  isTypeExtensionNode,
-} from './predicates';
-
-export { DirectiveLocation } from './directiveLocation';
-export type { DirectiveLocationEnum } from './directiveLocation';
diff --git a/node_modules/graphql/language/index.mjs b/node_modules/graphql/language/index.mjs
deleted file mode 100644
index d46ef87..0000000
--- a/node_modules/graphql/language/index.mjs
+++ /dev/null
@@ -1,11 +0,0 @@
-export { Source } from "./source.mjs";
-export { getLocation } from "./location.mjs";
-export { printLocation, printSourceLocation } from "./printLocation.mjs";
-export { Kind } from "./kinds.mjs";
-export { TokenKind } from "./tokenKind.mjs";
-export { Lexer } from "./lexer.mjs";
-export { parse, parseValue, parseType } from "./parser.mjs";
-export { print } from "./printer.mjs";
-export { visit, visitInParallel, getVisitFn, BREAK } from "./visitor.mjs";
-export { isDefinitionNode, isExecutableDefinitionNode, isSelectionNode, isValueNode, isTypeNode, isTypeSystemDefinitionNode, isTypeDefinitionNode, isTypeSystemExtensionNode, isTypeExtensionNode } from "./predicates.mjs";
-export { DirectiveLocation } from "./directiveLocation.mjs";
diff --git a/node_modules/graphql/language/kinds.d.ts b/node_modules/graphql/language/kinds.d.ts
deleted file mode 100644
index e655af0..0000000
--- a/node_modules/graphql/language/kinds.d.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * The set of allowed kind values for AST nodes.
- */
-export const Kind: _Kind;
-
-/**
- * @internal
- */
-type _Kind = {
-  // Name
-  NAME: 'Name';
-
-  // Document
-  DOCUMENT: 'Document';
-  OPERATION_DEFINITION: 'OperationDefinition';
-  VARIABLE_DEFINITION: 'VariableDefinition';
-  SELECTION_SET: 'SelectionSet';
-  FIELD: 'Field';
-  ARGUMENT: 'Argument';
-
-  // Fragments
-  FRAGMENT_SPREAD: 'FragmentSpread';
-  INLINE_FRAGMENT: 'InlineFragment';
-  FRAGMENT_DEFINITION: 'FragmentDefinition';
-
-  // Values
-  VARIABLE: 'Variable';
-  INT: 'IntValue';
-  FLOAT: 'FloatValue';
-  STRING: 'StringValue';
-  BOOLEAN: 'BooleanValue';
-  NULL: 'NullValue';
-  ENUM: 'EnumValue';
-  LIST: 'ListValue';
-  OBJECT: 'ObjectValue';
-  OBJECT_FIELD: 'ObjectField';
-
-  // Directives
-  DIRECTIVE: 'Directive';
-
-  // Types
-  NAMED_TYPE: 'NamedType';
-  LIST_TYPE: 'ListType';
-  NON_NULL_TYPE: 'NonNullType';
-
-  // Type System Definitions
-  SCHEMA_DEFINITION: 'SchemaDefinition';
-  OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition';
-
-  // Type Definitions
-  SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition';
-  OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition';
-  FIELD_DEFINITION: 'FieldDefinition';
-  INPUT_VALUE_DEFINITION: 'InputValueDefinition';
-  INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition';
-  UNION_TYPE_DEFINITION: 'UnionTypeDefinition';
-  ENUM_TYPE_DEFINITION: 'EnumTypeDefinition';
-  ENUM_VALUE_DEFINITION: 'EnumValueDefinition';
-  INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition';
-
-  // Directive Definitions
-  DIRECTIVE_DEFINITION: 'DirectiveDefinition';
-
-  // Type System Extensions
-  SCHEMA_EXTENSION: 'SchemaExtension';
-
-  // Type Extensions
-  SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension';
-  OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension';
-  INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension';
-  UNION_TYPE_EXTENSION: 'UnionTypeExtension';
-  ENUM_TYPE_EXTENSION: 'EnumTypeExtension';
-  INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension';
-};
-
-/**
- * The enum type representing the possible kind values of AST nodes.
- */
-export type KindEnum = _Kind[keyof _Kind];
diff --git a/node_modules/graphql/language/kinds.js b/node_modules/graphql/language/kinds.js
deleted file mode 100644
index 32b90c4..0000000
--- a/node_modules/graphql/language/kinds.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Kind = void 0;
-
-/**
- * The set of allowed kind values for AST nodes.
- */
-var Kind = Object.freeze({
-  // Name
-  NAME: 'Name',
-  // Document
-  DOCUMENT: 'Document',
-  OPERATION_DEFINITION: 'OperationDefinition',
-  VARIABLE_DEFINITION: 'VariableDefinition',
-  SELECTION_SET: 'SelectionSet',
-  FIELD: 'Field',
-  ARGUMENT: 'Argument',
-  // Fragments
-  FRAGMENT_SPREAD: 'FragmentSpread',
-  INLINE_FRAGMENT: 'InlineFragment',
-  FRAGMENT_DEFINITION: 'FragmentDefinition',
-  // Values
-  VARIABLE: 'Variable',
-  INT: 'IntValue',
-  FLOAT: 'FloatValue',
-  STRING: 'StringValue',
-  BOOLEAN: 'BooleanValue',
-  NULL: 'NullValue',
-  ENUM: 'EnumValue',
-  LIST: 'ListValue',
-  OBJECT: 'ObjectValue',
-  OBJECT_FIELD: 'ObjectField',
-  // Directives
-  DIRECTIVE: 'Directive',
-  // Types
-  NAMED_TYPE: 'NamedType',
-  LIST_TYPE: 'ListType',
-  NON_NULL_TYPE: 'NonNullType',
-  // Type System Definitions
-  SCHEMA_DEFINITION: 'SchemaDefinition',
-  OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',
-  // Type Definitions
-  SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',
-  OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',
-  FIELD_DEFINITION: 'FieldDefinition',
-  INPUT_VALUE_DEFINITION: 'InputValueDefinition',
-  INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',
-  UNION_TYPE_DEFINITION: 'UnionTypeDefinition',
-  ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',
-  ENUM_VALUE_DEFINITION: 'EnumValueDefinition',
-  INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',
-  // Directive Definitions
-  DIRECTIVE_DEFINITION: 'DirectiveDefinition',
-  // Type System Extensions
-  SCHEMA_EXTENSION: 'SchemaExtension',
-  // Type Extensions
-  SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',
-  OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',
-  INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',
-  UNION_TYPE_EXTENSION: 'UnionTypeExtension',
-  ENUM_TYPE_EXTENSION: 'EnumTypeExtension',
-  INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'
-});
-/**
- * The enum type representing the possible kind values of AST nodes.
- */
-
-exports.Kind = Kind;
diff --git a/node_modules/graphql/language/kinds.js.flow b/node_modules/graphql/language/kinds.js.flow
deleted file mode 100644
index d3292b2..0000000
--- a/node_modules/graphql/language/kinds.js.flow
+++ /dev/null
@@ -1,76 +0,0 @@
-// @flow strict
-
-/**
- * The set of allowed kind values for AST nodes.
- */
-export const Kind = Object.freeze({
-  // Name
-  NAME: 'Name',
-
-  // Document
-  DOCUMENT: 'Document',
-  OPERATION_DEFINITION: 'OperationDefinition',
-  VARIABLE_DEFINITION: 'VariableDefinition',
-  SELECTION_SET: 'SelectionSet',
-  FIELD: 'Field',
-  ARGUMENT: 'Argument',
-
-  // Fragments
-  FRAGMENT_SPREAD: 'FragmentSpread',
-  INLINE_FRAGMENT: 'InlineFragment',
-  FRAGMENT_DEFINITION: 'FragmentDefinition',
-
-  // Values
-  VARIABLE: 'Variable',
-  INT: 'IntValue',
-  FLOAT: 'FloatValue',
-  STRING: 'StringValue',
-  BOOLEAN: 'BooleanValue',
-  NULL: 'NullValue',
-  ENUM: 'EnumValue',
-  LIST: 'ListValue',
-  OBJECT: 'ObjectValue',
-  OBJECT_FIELD: 'ObjectField',
-
-  // Directives
-  DIRECTIVE: 'Directive',
-
-  // Types
-  NAMED_TYPE: 'NamedType',
-  LIST_TYPE: 'ListType',
-  NON_NULL_TYPE: 'NonNullType',
-
-  // Type System Definitions
-  SCHEMA_DEFINITION: 'SchemaDefinition',
-  OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',
-
-  // Type Definitions
-  SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',
-  OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',
-  FIELD_DEFINITION: 'FieldDefinition',
-  INPUT_VALUE_DEFINITION: 'InputValueDefinition',
-  INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',
-  UNION_TYPE_DEFINITION: 'UnionTypeDefinition',
-  ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',
-  ENUM_VALUE_DEFINITION: 'EnumValueDefinition',
-  INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',
-
-  // Directive Definitions
-  DIRECTIVE_DEFINITION: 'DirectiveDefinition',
-
-  // Type System Extensions
-  SCHEMA_EXTENSION: 'SchemaExtension',
-
-  // Type Extensions
-  SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',
-  OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',
-  INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',
-  UNION_TYPE_EXTENSION: 'UnionTypeExtension',
-  ENUM_TYPE_EXTENSION: 'EnumTypeExtension',
-  INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension',
-});
-
-/**
- * The enum type representing the possible kind values of AST nodes.
- */
-export type KindEnum = $Values<typeof Kind>;
diff --git a/node_modules/graphql/language/kinds.mjs b/node_modules/graphql/language/kinds.mjs
deleted file mode 100644
index b439c71..0000000
--- a/node_modules/graphql/language/kinds.mjs
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * The set of allowed kind values for AST nodes.
- */
-export var Kind = Object.freeze({
-  // Name
-  NAME: 'Name',
-  // Document
-  DOCUMENT: 'Document',
-  OPERATION_DEFINITION: 'OperationDefinition',
-  VARIABLE_DEFINITION: 'VariableDefinition',
-  SELECTION_SET: 'SelectionSet',
-  FIELD: 'Field',
-  ARGUMENT: 'Argument',
-  // Fragments
-  FRAGMENT_SPREAD: 'FragmentSpread',
-  INLINE_FRAGMENT: 'InlineFragment',
-  FRAGMENT_DEFINITION: 'FragmentDefinition',
-  // Values
-  VARIABLE: 'Variable',
-  INT: 'IntValue',
-  FLOAT: 'FloatValue',
-  STRING: 'StringValue',
-  BOOLEAN: 'BooleanValue',
-  NULL: 'NullValue',
-  ENUM: 'EnumValue',
-  LIST: 'ListValue',
-  OBJECT: 'ObjectValue',
-  OBJECT_FIELD: 'ObjectField',
-  // Directives
-  DIRECTIVE: 'Directive',
-  // Types
-  NAMED_TYPE: 'NamedType',
-  LIST_TYPE: 'ListType',
-  NON_NULL_TYPE: 'NonNullType',
-  // Type System Definitions
-  SCHEMA_DEFINITION: 'SchemaDefinition',
-  OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',
-  // Type Definitions
-  SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',
-  OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',
-  FIELD_DEFINITION: 'FieldDefinition',
-  INPUT_VALUE_DEFINITION: 'InputValueDefinition',
-  INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',
-  UNION_TYPE_DEFINITION: 'UnionTypeDefinition',
-  ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',
-  ENUM_VALUE_DEFINITION: 'EnumValueDefinition',
-  INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',
-  // Directive Definitions
-  DIRECTIVE_DEFINITION: 'DirectiveDefinition',
-  // Type System Extensions
-  SCHEMA_EXTENSION: 'SchemaExtension',
-  // Type Extensions
-  SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',
-  OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',
-  INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',
-  UNION_TYPE_EXTENSION: 'UnionTypeExtension',
-  ENUM_TYPE_EXTENSION: 'EnumTypeExtension',
-  INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'
-});
-/**
- * The enum type representing the possible kind values of AST nodes.
- */
diff --git a/node_modules/graphql/language/lexer.d.ts b/node_modules/graphql/language/lexer.d.ts
deleted file mode 100644
index 92484b6..0000000
--- a/node_modules/graphql/language/lexer.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Token } from './ast';
-import { Source } from './source';
-
-/**
- * Given a Source object, this returns a Lexer for that source.
- * A Lexer is a stateful stream generator in that every time
- * it is advanced, it returns the next token in the Source. Assuming the
- * source lexes, the final Token emitted by the lexer will be of kind
- * EOF, after which the lexer will repeatedly return the same EOF token
- * whenever called.
- */
-export class Lexer {
-  source: Source;
-
-  /**
-   * The previously focused non-ignored token.
-   */
-  lastToken: Token;
-
-  /**
-   * The currently focused non-ignored token.
-   */
-  token: Token;
-
-  /**
-   * The (1-indexed) line containing the current token.
-   */
-  line: number;
-
-  /**
-   * The character offset at which the current line begins.
-   */
-  lineStart: number;
-
-  constructor(source: Source);
-
-  /**
-   * Advances the token stream to the next non-ignored token.
-   */
-  advance(): Token;
-
-  /**
-   * Looks ahead and returns the next non-ignored token, but does not change
-   * the state of Lexer.
-   */
-  lookahead(): Token;
-}
-
-/**
- * @internal
- */
-export function isPunctuatorToken(token: Token): boolean;
diff --git a/node_modules/graphql/language/lexer.js b/node_modules/graphql/language/lexer.js
deleted file mode 100644
index 02e6277..0000000
--- a/node_modules/graphql/language/lexer.js
+++ /dev/null
@@ -1,633 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isPunctuatorTokenKind = isPunctuatorTokenKind;
-exports.Lexer = void 0;
-
-var _syntaxError = require("../error/syntaxError");
-
-var _ast = require("./ast");
-
-var _blockString = require("./blockString");
-
-var _tokenKind = require("./tokenKind");
-
-/**
- * Given a Source object, creates a Lexer for that source.
- * A Lexer is a stateful stream generator in that every time
- * it is advanced, it returns the next token in the Source. Assuming the
- * source lexes, the final Token emitted by the lexer will be of kind
- * EOF, after which the lexer will repeatedly return the same EOF token
- * whenever called.
- */
-var Lexer =
-/*#__PURE__*/
-function () {
-  /**
-   * The previously focused non-ignored token.
-   */
-
-  /**
-   * The currently focused non-ignored token.
-   */
-
-  /**
-   * The (1-indexed) line containing the current token.
-   */
-
-  /**
-   * The character offset at which the current line begins.
-   */
-  function Lexer(source) {
-    var startOfFileToken = new _ast.Token(_tokenKind.TokenKind.SOF, 0, 0, 0, 0, null);
-    this.source = source;
-    this.lastToken = startOfFileToken;
-    this.token = startOfFileToken;
-    this.line = 1;
-    this.lineStart = 0;
-  }
-  /**
-   * Advances the token stream to the next non-ignored token.
-   */
-
-
-  var _proto = Lexer.prototype;
-
-  _proto.advance = function advance() {
-    this.lastToken = this.token;
-    var token = this.token = this.lookahead();
-    return token;
-  }
-  /**
-   * Looks ahead and returns the next non-ignored token, but does not change
-   * the state of Lexer.
-   */
-  ;
-
-  _proto.lookahead = function lookahead() {
-    var token = this.token;
-
-    if (token.kind !== _tokenKind.TokenKind.EOF) {
-      do {
-        var _token$next;
-
-        // Note: next is only mutable during parsing, so we cast to allow this.
-        token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);
-      } while (token.kind === _tokenKind.TokenKind.COMMENT);
-    }
-
-    return token;
-  };
-
-  return Lexer;
-}();
-/**
- * @internal
- */
-
-
-exports.Lexer = Lexer;
-
-function isPunctuatorTokenKind(kind) {
-  return kind === _tokenKind.TokenKind.BANG || kind === _tokenKind.TokenKind.DOLLAR || kind === _tokenKind.TokenKind.AMP || kind === _tokenKind.TokenKind.PAREN_L || kind === _tokenKind.TokenKind.PAREN_R || kind === _tokenKind.TokenKind.SPREAD || kind === _tokenKind.TokenKind.COLON || kind === _tokenKind.TokenKind.EQUALS || kind === _tokenKind.TokenKind.AT || kind === _tokenKind.TokenKind.BRACKET_L || kind === _tokenKind.TokenKind.BRACKET_R || kind === _tokenKind.TokenKind.BRACE_L || kind === _tokenKind.TokenKind.PIPE || kind === _tokenKind.TokenKind.BRACE_R;
-}
-
-function printCharCode(code) {
-  return (// NaN/undefined represents access beyond the end of the file.
-    isNaN(code) ? _tokenKind.TokenKind.EOF : // Trust JSON for ASCII.
-    code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.
-    "\"\\u".concat(('00' + code.toString(16).toUpperCase()).slice(-4), "\"")
-  );
-}
-/**
- * Gets the next token from the source starting at the given position.
- *
- * This skips over whitespace until it finds the next lexable token, then lexes
- * punctuators immediately or calls the appropriate helper function for more
- * complicated tokens.
- */
-
-
-function readToken(lexer, prev) {
-  var source = lexer.source;
-  var body = source.body;
-  var bodyLength = body.length;
-  var pos = positionAfterWhitespace(body, prev.end, lexer);
-  var line = lexer.line;
-  var col = 1 + pos - lexer.lineStart;
-
-  if (pos >= bodyLength) {
-    return new _ast.Token(_tokenKind.TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
-  }
-
-  var code = body.charCodeAt(pos); // SourceCharacter
-
-  switch (code) {
-    // !
-    case 33:
-      return new _ast.Token(_tokenKind.TokenKind.BANG, pos, pos + 1, line, col, prev);
-    // #
-
-    case 35:
-      return readComment(source, pos, line, col, prev);
-    // $
-
-    case 36:
-      return new _ast.Token(_tokenKind.TokenKind.DOLLAR, pos, pos + 1, line, col, prev);
-    // &
-
-    case 38:
-      return new _ast.Token(_tokenKind.TokenKind.AMP, pos, pos + 1, line, col, prev);
-    // (
-
-    case 40:
-      return new _ast.Token(_tokenKind.TokenKind.PAREN_L, pos, pos + 1, line, col, prev);
-    // )
-
-    case 41:
-      return new _ast.Token(_tokenKind.TokenKind.PAREN_R, pos, pos + 1, line, col, prev);
-    // .
-
-    case 46:
-      if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
-        return new _ast.Token(_tokenKind.TokenKind.SPREAD, pos, pos + 3, line, col, prev);
-      }
-
-      break;
-    // :
-
-    case 58:
-      return new _ast.Token(_tokenKind.TokenKind.COLON, pos, pos + 1, line, col, prev);
-    // =
-
-    case 61:
-      return new _ast.Token(_tokenKind.TokenKind.EQUALS, pos, pos + 1, line, col, prev);
-    // @
-
-    case 64:
-      return new _ast.Token(_tokenKind.TokenKind.AT, pos, pos + 1, line, col, prev);
-    // [
-
-    case 91:
-      return new _ast.Token(_tokenKind.TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);
-    // ]
-
-    case 93:
-      return new _ast.Token(_tokenKind.TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);
-    // {
-
-    case 123:
-      return new _ast.Token(_tokenKind.TokenKind.BRACE_L, pos, pos + 1, line, col, prev);
-    // |
-
-    case 124:
-      return new _ast.Token(_tokenKind.TokenKind.PIPE, pos, pos + 1, line, col, prev);
-    // }
-
-    case 125:
-      return new _ast.Token(_tokenKind.TokenKind.BRACE_R, pos, pos + 1, line, col, prev);
-    // A-Z _ a-z
-
-    case 65:
-    case 66:
-    case 67:
-    case 68:
-    case 69:
-    case 70:
-    case 71:
-    case 72:
-    case 73:
-    case 74:
-    case 75:
-    case 76:
-    case 77:
-    case 78:
-    case 79:
-    case 80:
-    case 81:
-    case 82:
-    case 83:
-    case 84:
-    case 85:
-    case 86:
-    case 87:
-    case 88:
-    case 89:
-    case 90:
-    case 95:
-    case 97:
-    case 98:
-    case 99:
-    case 100:
-    case 101:
-    case 102:
-    case 103:
-    case 104:
-    case 105:
-    case 106:
-    case 107:
-    case 108:
-    case 109:
-    case 110:
-    case 111:
-    case 112:
-    case 113:
-    case 114:
-    case 115:
-    case 116:
-    case 117:
-    case 118:
-    case 119:
-    case 120:
-    case 121:
-    case 122:
-      return readName(source, pos, line, col, prev);
-    // - 0-9
-
-    case 45:
-    case 48:
-    case 49:
-    case 50:
-    case 51:
-    case 52:
-    case 53:
-    case 54:
-    case 55:
-    case 56:
-    case 57:
-      return readNumber(source, pos, code, line, col, prev);
-    // "
-
-    case 34:
-      if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
-        return readBlockString(source, pos, line, col, prev, lexer);
-      }
-
-      return readString(source, pos, line, col, prev);
-  }
-
-  throw (0, _syntaxError.syntaxError)(source, pos, unexpectedCharacterMessage(code));
-}
-/**
- * Report a message that an unexpected character was encountered.
- */
-
-
-function unexpectedCharacterMessage(code) {
-  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
-    return "Cannot contain the invalid character ".concat(printCharCode(code), ".");
-  }
-
-  if (code === 39) {
-    // '
-    return 'Unexpected single quote character (\'), did you mean to use a double quote (")?';
-  }
-
-  return "Cannot parse the unexpected character ".concat(printCharCode(code), ".");
-}
-/**
- * Reads from body starting at startPosition until it finds a non-whitespace
- * character, then returns the position of that character for lexing.
- */
-
-
-function positionAfterWhitespace(body, startPosition, lexer) {
-  var bodyLength = body.length;
-  var position = startPosition;
-
-  while (position < bodyLength) {
-    var code = body.charCodeAt(position); // tab | space | comma | BOM
-
-    if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {
-      ++position;
-    } else if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else {
-      break;
-    }
-  }
-
-  return position;
-}
-/**
- * Reads a comment token from the source file.
- *
- * #[\u0009\u0020-\uFFFF]*
- */
-
-
-function readComment(source, start, line, col, prev) {
-  var body = source.body;
-  var code;
-  var position = start;
-
-  do {
-    code = body.charCodeAt(++position);
-  } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator
-  code > 0x001f || code === 0x0009));
-
-  return new _ast.Token(_tokenKind.TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));
-}
-/**
- * Reads a number token from the source file, either a float
- * or an int depending on whether a decimal point appears.
- *
- * Int:   -?(0|[1-9][0-9]*)
- * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)?
- */
-
-
-function readNumber(source, start, firstCode, line, col, prev) {
-  var body = source.body;
-  var code = firstCode;
-  var position = start;
-  var isFloat = false;
-
-  if (code === 45) {
-    // -
-    code = body.charCodeAt(++position);
-  }
-
-  if (code === 48) {
-    // 0
-    code = body.charCodeAt(++position);
-
-    if (code >= 48 && code <= 57) {
-      throw (0, _syntaxError.syntaxError)(source, position, "Invalid number, unexpected digit after 0: ".concat(printCharCode(code), "."));
-    }
-  } else {
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 46) {
-    // .
-    isFloat = true;
-    code = body.charCodeAt(++position);
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 69 || code === 101) {
-    // E e
-    isFloat = true;
-    code = body.charCodeAt(++position);
-
-    if (code === 43 || code === 45) {
-      // + -
-      code = body.charCodeAt(++position);
-    }
-
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  } // Numbers cannot be followed by . or NameStart
-
-
-  if (code === 46 || isNameStart(code)) {
-    throw (0, _syntaxError.syntaxError)(source, position, "Invalid number, expected digit but got: ".concat(printCharCode(code), "."));
-  }
-
-  return new _ast.Token(isFloat ? _tokenKind.TokenKind.FLOAT : _tokenKind.TokenKind.INT, start, position, line, col, prev, body.slice(start, position));
-}
-/**
- * Returns the new position in the source after reading digits.
- */
-
-
-function readDigits(source, start, firstCode) {
-  var body = source.body;
-  var position = start;
-  var code = firstCode;
-
-  if (code >= 48 && code <= 57) {
-    // 0 - 9
-    do {
-      code = body.charCodeAt(++position);
-    } while (code >= 48 && code <= 57); // 0 - 9
-
-
-    return position;
-  }
-
-  throw (0, _syntaxError.syntaxError)(source, position, "Invalid number, expected digit but got: ".concat(printCharCode(code), "."));
-}
-/**
- * Reads a string token from the source file.
- *
- * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*"
- */
-
-
-function readString(source, start, line, col, prev) {
-  var body = source.body;
-  var position = start + 1;
-  var chunkStart = position;
-  var code = 0;
-  var value = '';
-
-  while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator
-  code !== 0x000a && code !== 0x000d) {
-    // Closing Quote (")
-    if (code === 34) {
-      value += body.slice(chunkStart, position);
-      return new _ast.Token(_tokenKind.TokenKind.STRING, start, position + 1, line, col, prev, value);
-    } // SourceCharacter
-
-
-    if (code < 0x0020 && code !== 0x0009) {
-      throw (0, _syntaxError.syntaxError)(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
-    }
-
-    ++position;
-
-    if (code === 92) {
-      // \
-      value += body.slice(chunkStart, position - 1);
-      code = body.charCodeAt(position);
-
-      switch (code) {
-        case 34:
-          value += '"';
-          break;
-
-        case 47:
-          value += '/';
-          break;
-
-        case 92:
-          value += '\\';
-          break;
-
-        case 98:
-          value += '\b';
-          break;
-
-        case 102:
-          value += '\f';
-          break;
-
-        case 110:
-          value += '\n';
-          break;
-
-        case 114:
-          value += '\r';
-          break;
-
-        case 116:
-          value += '\t';
-          break;
-
-        case 117:
-          {
-            // uXXXX
-            var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));
-
-            if (charCode < 0) {
-              var invalidSequence = body.slice(position + 1, position + 5);
-              throw (0, _syntaxError.syntaxError)(source, position, "Invalid character escape sequence: \\u".concat(invalidSequence, "."));
-            }
-
-            value += String.fromCharCode(charCode);
-            position += 4;
-            break;
-          }
-
-        default:
-          throw (0, _syntaxError.syntaxError)(source, position, "Invalid character escape sequence: \\".concat(String.fromCharCode(code), "."));
-      }
-
-      ++position;
-      chunkStart = position;
-    }
-  }
-
-  throw (0, _syntaxError.syntaxError)(source, position, 'Unterminated string.');
-}
-/**
- * Reads a block string token from the source file.
- *
- * """("?"?(\\"""|\\(?!=""")|[^"\\]))*"""
- */
-
-
-function readBlockString(source, start, line, col, prev, lexer) {
-  var body = source.body;
-  var position = start + 3;
-  var chunkStart = position;
-  var code = 0;
-  var rawValue = '';
-
-  while (position < body.length && !isNaN(code = body.charCodeAt(position))) {
-    // Closing Triple-Quote (""")
-    if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {
-      rawValue += body.slice(chunkStart, position);
-      return new _ast.Token(_tokenKind.TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, (0, _blockString.dedentBlockStringValue)(rawValue));
-    } // SourceCharacter
-
-
-    if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
-      throw (0, _syntaxError.syntaxError)(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
-    }
-
-    if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if ( // Escape Triple-Quote (\""")
-    code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {
-      rawValue += body.slice(chunkStart, position) + '"""';
-      position += 4;
-      chunkStart = position;
-    } else {
-      ++position;
-    }
-  }
-
-  throw (0, _syntaxError.syntaxError)(source, position, 'Unterminated string.');
-}
-/**
- * Converts four hexadecimal chars to the integer that the
- * string represents. For example, uniCharCode('0','0','0','f')
- * will return 15, and uniCharCode('0','0','f','f') returns 255.
- *
- * Returns a negative number on error, if a char was invalid.
- *
- * This is implemented by noting that char2hex() returns -1 on error,
- * which means the result of ORing the char2hex() will also be negative.
- */
-
-
-function uniCharCode(a, b, c, d) {
-  return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);
-}
-/**
- * Converts a hex character to its integer value.
- * '0' becomes 0, '9' becomes 9
- * 'A' becomes 10, 'F' becomes 15
- * 'a' becomes 10, 'f' becomes 15
- *
- * Returns -1 on error.
- */
-
-
-function char2hex(a) {
-  return a >= 48 && a <= 57 ? a - 48 // 0-9
-  : a >= 65 && a <= 70 ? a - 55 // A-F
-  : a >= 97 && a <= 102 ? a - 87 // a-f
-  : -1;
-}
-/**
- * Reads an alphanumeric + underscore name from the source.
- *
- * [_A-Za-z][_0-9A-Za-z]*
- */
-
-
-function readName(source, start, line, col, prev) {
-  var body = source.body;
-  var bodyLength = body.length;
-  var position = start + 1;
-  var code = 0;
-
-  while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _
-  code >= 48 && code <= 57 || // 0-9
-  code >= 65 && code <= 90 || // A-Z
-  code >= 97 && code <= 122) // a-z
-  ) {
-    ++position;
-  }
-
-  return new _ast.Token(_tokenKind.TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));
-} // _ A-Z a-z
-
-
-function isNameStart(code) {
-  return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;
-}
diff --git a/node_modules/graphql/language/lexer.js.flow b/node_modules/graphql/language/lexer.js.flow
deleted file mode 100644
index b6ab501..0000000
--- a/node_modules/graphql/language/lexer.js.flow
+++ /dev/null
@@ -1,696 +0,0 @@
-// @flow strict
-
-import { syntaxError } from '../error/syntaxError';
-
-import { Token } from './ast';
-import { type Source } from './source';
-import { dedentBlockStringValue } from './blockString';
-import { type TokenKindEnum, TokenKind } from './tokenKind';
-
-/**
- * Given a Source object, creates a Lexer for that source.
- * A Lexer is a stateful stream generator in that every time
- * it is advanced, it returns the next token in the Source. Assuming the
- * source lexes, the final Token emitted by the lexer will be of kind
- * EOF, after which the lexer will repeatedly return the same EOF token
- * whenever called.
- */
-export class Lexer {
-  source: Source;
-
-  /**
-   * The previously focused non-ignored token.
-   */
-  lastToken: Token;
-
-  /**
-   * The currently focused non-ignored token.
-   */
-  token: Token;
-
-  /**
-   * The (1-indexed) line containing the current token.
-   */
-  line: number;
-
-  /**
-   * The character offset at which the current line begins.
-   */
-  lineStart: number;
-
-  constructor(source: Source) {
-    const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);
-
-    this.source = source;
-    this.lastToken = startOfFileToken;
-    this.token = startOfFileToken;
-    this.line = 1;
-    this.lineStart = 0;
-  }
-
-  /**
-   * Advances the token stream to the next non-ignored token.
-   */
-  advance(): Token {
-    this.lastToken = this.token;
-    const token = (this.token = this.lookahead());
-    return token;
-  }
-
-  /**
-   * Looks ahead and returns the next non-ignored token, but does not change
-   * the state of Lexer.
-   */
-  lookahead(): Token {
-    let token = this.token;
-    if (token.kind !== TokenKind.EOF) {
-      do {
-        // Note: next is only mutable during parsing, so we cast to allow this.
-        token = token.next ?? ((token: any).next = readToken(this, token));
-      } while (token.kind === TokenKind.COMMENT);
-    }
-    return token;
-  }
-}
-
-/**
- * @internal
- */
-export function isPunctuatorTokenKind(kind: TokenKindEnum): boolean %checks {
-  return (
-    kind === TokenKind.BANG ||
-    kind === TokenKind.DOLLAR ||
-    kind === TokenKind.AMP ||
-    kind === TokenKind.PAREN_L ||
-    kind === TokenKind.PAREN_R ||
-    kind === TokenKind.SPREAD ||
-    kind === TokenKind.COLON ||
-    kind === TokenKind.EQUALS ||
-    kind === TokenKind.AT ||
-    kind === TokenKind.BRACKET_L ||
-    kind === TokenKind.BRACKET_R ||
-    kind === TokenKind.BRACE_L ||
-    kind === TokenKind.PIPE ||
-    kind === TokenKind.BRACE_R
-  );
-}
-
-function printCharCode(code) {
-  return (
-    // NaN/undefined represents access beyond the end of the file.
-    isNaN(code)
-      ? TokenKind.EOF
-      : // Trust JSON for ASCII.
-      code < 0x007f
-      ? JSON.stringify(String.fromCharCode(code))
-      : // Otherwise print the escaped form.
-        `"\\u${('00' + code.toString(16).toUpperCase()).slice(-4)}"`
-  );
-}
-
-/**
- * Gets the next token from the source starting at the given position.
- *
- * This skips over whitespace until it finds the next lexable token, then lexes
- * punctuators immediately or calls the appropriate helper function for more
- * complicated tokens.
- */
-function readToken(lexer: Lexer, prev: Token): Token {
-  const source = lexer.source;
-  const body = source.body;
-  const bodyLength = body.length;
-
-  const pos = positionAfterWhitespace(body, prev.end, lexer);
-  const line = lexer.line;
-  const col = 1 + pos - lexer.lineStart;
-
-  if (pos >= bodyLength) {
-    return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
-  }
-
-  const code = body.charCodeAt(pos);
-
-  // SourceCharacter
-  switch (code) {
-    // !
-    case 33:
-      return new Token(TokenKind.BANG, pos, pos + 1, line, col, prev);
-    // #
-    case 35:
-      return readComment(source, pos, line, col, prev);
-    // $
-    case 36:
-      return new Token(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);
-    // &
-    case 38:
-      return new Token(TokenKind.AMP, pos, pos + 1, line, col, prev);
-    // (
-    case 40:
-      return new Token(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);
-    // )
-    case 41:
-      return new Token(TokenKind.PAREN_R, pos, pos + 1, line, col, prev);
-    // .
-    case 46:
-      if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
-        return new Token(TokenKind.SPREAD, pos, pos + 3, line, col, prev);
-      }
-      break;
-    // :
-    case 58:
-      return new Token(TokenKind.COLON, pos, pos + 1, line, col, prev);
-    // =
-    case 61:
-      return new Token(TokenKind.EQUALS, pos, pos + 1, line, col, prev);
-    // @
-    case 64:
-      return new Token(TokenKind.AT, pos, pos + 1, line, col, prev);
-    // [
-    case 91:
-      return new Token(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);
-    // ]
-    case 93:
-      return new Token(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);
-    // {
-    case 123:
-      return new Token(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);
-    // |
-    case 124:
-      return new Token(TokenKind.PIPE, pos, pos + 1, line, col, prev);
-    // }
-    case 125:
-      return new Token(TokenKind.BRACE_R, pos, pos + 1, line, col, prev);
-    // A-Z _ a-z
-    case 65:
-    case 66:
-    case 67:
-    case 68:
-    case 69:
-    case 70:
-    case 71:
-    case 72:
-    case 73:
-    case 74:
-    case 75:
-    case 76:
-    case 77:
-    case 78:
-    case 79:
-    case 80:
-    case 81:
-    case 82:
-    case 83:
-    case 84:
-    case 85:
-    case 86:
-    case 87:
-    case 88:
-    case 89:
-    case 90:
-    case 95:
-    case 97:
-    case 98:
-    case 99:
-    case 100:
-    case 101:
-    case 102:
-    case 103:
-    case 104:
-    case 105:
-    case 106:
-    case 107:
-    case 108:
-    case 109:
-    case 110:
-    case 111:
-    case 112:
-    case 113:
-    case 114:
-    case 115:
-    case 116:
-    case 117:
-    case 118:
-    case 119:
-    case 120:
-    case 121:
-    case 122:
-      return readName(source, pos, line, col, prev);
-    // - 0-9
-    case 45:
-    case 48:
-    case 49:
-    case 50:
-    case 51:
-    case 52:
-    case 53:
-    case 54:
-    case 55:
-    case 56:
-    case 57:
-      return readNumber(source, pos, code, line, col, prev);
-    // "
-    case 34:
-      if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
-        return readBlockString(source, pos, line, col, prev, lexer);
-      }
-      return readString(source, pos, line, col, prev);
-  }
-
-  throw syntaxError(source, pos, unexpectedCharacterMessage(code));
-}
-
-/**
- * Report a message that an unexpected character was encountered.
- */
-function unexpectedCharacterMessage(code) {
-  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
-    return `Cannot contain the invalid character ${printCharCode(code)}.`;
-  }
-
-  if (code === 39) {
-    // '
-    return 'Unexpected single quote character (\'), did you mean to use a double quote (")?';
-  }
-
-  return `Cannot parse the unexpected character ${printCharCode(code)}.`;
-}
-
-/**
- * Reads from body starting at startPosition until it finds a non-whitespace
- * character, then returns the position of that character for lexing.
- */
-function positionAfterWhitespace(
-  body: string,
-  startPosition: number,
-  lexer: Lexer,
-): number {
-  const bodyLength = body.length;
-  let position = startPosition;
-  while (position < bodyLength) {
-    const code = body.charCodeAt(position);
-    // tab | space | comma | BOM
-    if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {
-      ++position;
-    } else if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else {
-      break;
-    }
-  }
-  return position;
-}
-
-/**
- * Reads a comment token from the source file.
- *
- * #[\u0009\u0020-\uFFFF]*
- */
-function readComment(source, start, line, col, prev): Token {
-  const body = source.body;
-  let code;
-  let position = start;
-
-  do {
-    code = body.charCodeAt(++position);
-  } while (
-    !isNaN(code) &&
-    // SourceCharacter but not LineTerminator
-    (code > 0x001f || code === 0x0009)
-  );
-
-  return new Token(
-    TokenKind.COMMENT,
-    start,
-    position,
-    line,
-    col,
-    prev,
-    body.slice(start + 1, position),
-  );
-}
-
-/**
- * Reads a number token from the source file, either a float
- * or an int depending on whether a decimal point appears.
- *
- * Int:   -?(0|[1-9][0-9]*)
- * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)?
- */
-function readNumber(source, start, firstCode, line, col, prev): Token {
-  const body = source.body;
-  let code = firstCode;
-  let position = start;
-  let isFloat = false;
-
-  if (code === 45) {
-    // -
-    code = body.charCodeAt(++position);
-  }
-
-  if (code === 48) {
-    // 0
-    code = body.charCodeAt(++position);
-    if (code >= 48 && code <= 57) {
-      throw syntaxError(
-        source,
-        position,
-        `Invalid number, unexpected digit after 0: ${printCharCode(code)}.`,
-      );
-    }
-  } else {
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 46) {
-    // .
-    isFloat = true;
-
-    code = body.charCodeAt(++position);
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 69 || code === 101) {
-    // E e
-    isFloat = true;
-
-    code = body.charCodeAt(++position);
-    if (code === 43 || code === 45) {
-      // + -
-      code = body.charCodeAt(++position);
-    }
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  // Numbers cannot be followed by . or NameStart
-  if (code === 46 || isNameStart(code)) {
-    throw syntaxError(
-      source,
-      position,
-      `Invalid number, expected digit but got: ${printCharCode(code)}.`,
-    );
-  }
-
-  return new Token(
-    isFloat ? TokenKind.FLOAT : TokenKind.INT,
-    start,
-    position,
-    line,
-    col,
-    prev,
-    body.slice(start, position),
-  );
-}
-
-/**
- * Returns the new position in the source after reading digits.
- */
-function readDigits(source, start, firstCode) {
-  const body = source.body;
-  let position = start;
-  let code = firstCode;
-  if (code >= 48 && code <= 57) {
-    // 0 - 9
-    do {
-      code = body.charCodeAt(++position);
-    } while (code >= 48 && code <= 57); // 0 - 9
-    return position;
-  }
-  throw syntaxError(
-    source,
-    position,
-    `Invalid number, expected digit but got: ${printCharCode(code)}.`,
-  );
-}
-
-/**
- * Reads a string token from the source file.
- *
- * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*"
- */
-function readString(source, start, line, col, prev): Token {
-  const body = source.body;
-  let position = start + 1;
-  let chunkStart = position;
-  let code = 0;
-  let value = '';
-
-  while (
-    position < body.length &&
-    !isNaN((code = body.charCodeAt(position))) &&
-    // not LineTerminator
-    code !== 0x000a &&
-    code !== 0x000d
-  ) {
-    // Closing Quote (")
-    if (code === 34) {
-      value += body.slice(chunkStart, position);
-      return new Token(
-        TokenKind.STRING,
-        start,
-        position + 1,
-        line,
-        col,
-        prev,
-        value,
-      );
-    }
-
-    // SourceCharacter
-    if (code < 0x0020 && code !== 0x0009) {
-      throw syntaxError(
-        source,
-        position,
-        `Invalid character within String: ${printCharCode(code)}.`,
-      );
-    }
-
-    ++position;
-    if (code === 92) {
-      // \
-      value += body.slice(chunkStart, position - 1);
-      code = body.charCodeAt(position);
-      switch (code) {
-        case 34:
-          value += '"';
-          break;
-        case 47:
-          value += '/';
-          break;
-        case 92:
-          value += '\\';
-          break;
-        case 98:
-          value += '\b';
-          break;
-        case 102:
-          value += '\f';
-          break;
-        case 110:
-          value += '\n';
-          break;
-        case 114:
-          value += '\r';
-          break;
-        case 116:
-          value += '\t';
-          break;
-        case 117: {
-          // uXXXX
-          const charCode = uniCharCode(
-            body.charCodeAt(position + 1),
-            body.charCodeAt(position + 2),
-            body.charCodeAt(position + 3),
-            body.charCodeAt(position + 4),
-          );
-          if (charCode < 0) {
-            const invalidSequence = body.slice(position + 1, position + 5);
-            throw syntaxError(
-              source,
-              position,
-              `Invalid character escape sequence: \\u${invalidSequence}.`,
-            );
-          }
-          value += String.fromCharCode(charCode);
-          position += 4;
-          break;
-        }
-        default:
-          throw syntaxError(
-            source,
-            position,
-            `Invalid character escape sequence: \\${String.fromCharCode(
-              code,
-            )}.`,
-          );
-      }
-      ++position;
-      chunkStart = position;
-    }
-  }
-
-  throw syntaxError(source, position, 'Unterminated string.');
-}
-
-/**
- * Reads a block string token from the source file.
- *
- * """("?"?(\\"""|\\(?!=""")|[^"\\]))*"""
- */
-function readBlockString(source, start, line, col, prev, lexer): Token {
-  const body = source.body;
-  let position = start + 3;
-  let chunkStart = position;
-  let code = 0;
-  let rawValue = '';
-
-  while (position < body.length && !isNaN((code = body.charCodeAt(position)))) {
-    // Closing Triple-Quote (""")
-    if (
-      code === 34 &&
-      body.charCodeAt(position + 1) === 34 &&
-      body.charCodeAt(position + 2) === 34
-    ) {
-      rawValue += body.slice(chunkStart, position);
-      return new Token(
-        TokenKind.BLOCK_STRING,
-        start,
-        position + 3,
-        line,
-        col,
-        prev,
-        dedentBlockStringValue(rawValue),
-      );
-    }
-
-    // SourceCharacter
-    if (
-      code < 0x0020 &&
-      code !== 0x0009 &&
-      code !== 0x000a &&
-      code !== 0x000d
-    ) {
-      throw syntaxError(
-        source,
-        position,
-        `Invalid character within String: ${printCharCode(code)}.`,
-      );
-    }
-
-    if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (
-      // Escape Triple-Quote (\""")
-      code === 92 &&
-      body.charCodeAt(position + 1) === 34 &&
-      body.charCodeAt(position + 2) === 34 &&
-      body.charCodeAt(position + 3) === 34
-    ) {
-      rawValue += body.slice(chunkStart, position) + '"""';
-      position += 4;
-      chunkStart = position;
-    } else {
-      ++position;
-    }
-  }
-
-  throw syntaxError(source, position, 'Unterminated string.');
-}
-
-/**
- * Converts four hexadecimal chars to the integer that the
- * string represents. For example, uniCharCode('0','0','0','f')
- * will return 15, and uniCharCode('0','0','f','f') returns 255.
- *
- * Returns a negative number on error, if a char was invalid.
- *
- * This is implemented by noting that char2hex() returns -1 on error,
- * which means the result of ORing the char2hex() will also be negative.
- */
-function uniCharCode(a, b, c, d) {
-  return (
-    (char2hex(a) << 12) | (char2hex(b) << 8) | (char2hex(c) << 4) | char2hex(d)
-  );
-}
-
-/**
- * Converts a hex character to its integer value.
- * '0' becomes 0, '9' becomes 9
- * 'A' becomes 10, 'F' becomes 15
- * 'a' becomes 10, 'f' becomes 15
- *
- * Returns -1 on error.
- */
-function char2hex(a) {
-  return a >= 48 && a <= 57
-    ? a - 48 // 0-9
-    : a >= 65 && a <= 70
-    ? a - 55 // A-F
-    : a >= 97 && a <= 102
-    ? a - 87 // a-f
-    : -1;
-}
-
-/**
- * Reads an alphanumeric + underscore name from the source.
- *
- * [_A-Za-z][_0-9A-Za-z]*
- */
-function readName(source, start, line, col, prev): Token {
-  const body = source.body;
-  const bodyLength = body.length;
-  let position = start + 1;
-  let code = 0;
-  while (
-    position !== bodyLength &&
-    !isNaN((code = body.charCodeAt(position))) &&
-    (code === 95 || // _
-    (code >= 48 && code <= 57) || // 0-9
-    (code >= 65 && code <= 90) || // A-Z
-      (code >= 97 && code <= 122)) // a-z
-  ) {
-    ++position;
-  }
-  return new Token(
-    TokenKind.NAME,
-    start,
-    position,
-    line,
-    col,
-    prev,
-    body.slice(start, position),
-  );
-}
-
-// _ A-Z a-z
-function isNameStart(code): boolean {
-  return (
-    code === 95 || (code >= 65 && code <= 90) || (code >= 97 && code <= 122)
-  );
-}
diff --git a/node_modules/graphql/language/lexer.mjs b/node_modules/graphql/language/lexer.mjs
deleted file mode 100644
index 4d23a31..0000000
--- a/node_modules/graphql/language/lexer.mjs
+++ /dev/null
@@ -1,619 +0,0 @@
-import { syntaxError } from "../error/syntaxError.mjs";
-import { Token } from "./ast.mjs";
-import { dedentBlockStringValue } from "./blockString.mjs";
-import { TokenKind } from "./tokenKind.mjs";
-/**
- * Given a Source object, creates a Lexer for that source.
- * A Lexer is a stateful stream generator in that every time
- * it is advanced, it returns the next token in the Source. Assuming the
- * source lexes, the final Token emitted by the lexer will be of kind
- * EOF, after which the lexer will repeatedly return the same EOF token
- * whenever called.
- */
-
-export var Lexer =
-/*#__PURE__*/
-function () {
-  /**
-   * The previously focused non-ignored token.
-   */
-
-  /**
-   * The currently focused non-ignored token.
-   */
-
-  /**
-   * The (1-indexed) line containing the current token.
-   */
-
-  /**
-   * The character offset at which the current line begins.
-   */
-  function Lexer(source) {
-    var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);
-    this.source = source;
-    this.lastToken = startOfFileToken;
-    this.token = startOfFileToken;
-    this.line = 1;
-    this.lineStart = 0;
-  }
-  /**
-   * Advances the token stream to the next non-ignored token.
-   */
-
-
-  var _proto = Lexer.prototype;
-
-  _proto.advance = function advance() {
-    this.lastToken = this.token;
-    var token = this.token = this.lookahead();
-    return token;
-  }
-  /**
-   * Looks ahead and returns the next non-ignored token, but does not change
-   * the state of Lexer.
-   */
-  ;
-
-  _proto.lookahead = function lookahead() {
-    var token = this.token;
-
-    if (token.kind !== TokenKind.EOF) {
-      do {
-        var _token$next;
-
-        // Note: next is only mutable during parsing, so we cast to allow this.
-        token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);
-      } while (token.kind === TokenKind.COMMENT);
-    }
-
-    return token;
-  };
-
-  return Lexer;
-}();
-/**
- * @internal
- */
-
-export function isPunctuatorTokenKind(kind) {
-  return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;
-}
-
-function printCharCode(code) {
-  return (// NaN/undefined represents access beyond the end of the file.
-    isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.
-    code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.
-    "\"\\u".concat(('00' + code.toString(16).toUpperCase()).slice(-4), "\"")
-  );
-}
-/**
- * Gets the next token from the source starting at the given position.
- *
- * This skips over whitespace until it finds the next lexable token, then lexes
- * punctuators immediately or calls the appropriate helper function for more
- * complicated tokens.
- */
-
-
-function readToken(lexer, prev) {
-  var source = lexer.source;
-  var body = source.body;
-  var bodyLength = body.length;
-  var pos = positionAfterWhitespace(body, prev.end, lexer);
-  var line = lexer.line;
-  var col = 1 + pos - lexer.lineStart;
-
-  if (pos >= bodyLength) {
-    return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
-  }
-
-  var code = body.charCodeAt(pos); // SourceCharacter
-
-  switch (code) {
-    // !
-    case 33:
-      return new Token(TokenKind.BANG, pos, pos + 1, line, col, prev);
-    // #
-
-    case 35:
-      return readComment(source, pos, line, col, prev);
-    // $
-
-    case 36:
-      return new Token(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);
-    // &
-
-    case 38:
-      return new Token(TokenKind.AMP, pos, pos + 1, line, col, prev);
-    // (
-
-    case 40:
-      return new Token(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);
-    // )
-
-    case 41:
-      return new Token(TokenKind.PAREN_R, pos, pos + 1, line, col, prev);
-    // .
-
-    case 46:
-      if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
-        return new Token(TokenKind.SPREAD, pos, pos + 3, line, col, prev);
-      }
-
-      break;
-    // :
-
-    case 58:
-      return new Token(TokenKind.COLON, pos, pos + 1, line, col, prev);
-    // =
-
-    case 61:
-      return new Token(TokenKind.EQUALS, pos, pos + 1, line, col, prev);
-    // @
-
-    case 64:
-      return new Token(TokenKind.AT, pos, pos + 1, line, col, prev);
-    // [
-
-    case 91:
-      return new Token(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);
-    // ]
-
-    case 93:
-      return new Token(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);
-    // {
-
-    case 123:
-      return new Token(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);
-    // |
-
-    case 124:
-      return new Token(TokenKind.PIPE, pos, pos + 1, line, col, prev);
-    // }
-
-    case 125:
-      return new Token(TokenKind.BRACE_R, pos, pos + 1, line, col, prev);
-    // A-Z _ a-z
-
-    case 65:
-    case 66:
-    case 67:
-    case 68:
-    case 69:
-    case 70:
-    case 71:
-    case 72:
-    case 73:
-    case 74:
-    case 75:
-    case 76:
-    case 77:
-    case 78:
-    case 79:
-    case 80:
-    case 81:
-    case 82:
-    case 83:
-    case 84:
-    case 85:
-    case 86:
-    case 87:
-    case 88:
-    case 89:
-    case 90:
-    case 95:
-    case 97:
-    case 98:
-    case 99:
-    case 100:
-    case 101:
-    case 102:
-    case 103:
-    case 104:
-    case 105:
-    case 106:
-    case 107:
-    case 108:
-    case 109:
-    case 110:
-    case 111:
-    case 112:
-    case 113:
-    case 114:
-    case 115:
-    case 116:
-    case 117:
-    case 118:
-    case 119:
-    case 120:
-    case 121:
-    case 122:
-      return readName(source, pos, line, col, prev);
-    // - 0-9
-
-    case 45:
-    case 48:
-    case 49:
-    case 50:
-    case 51:
-    case 52:
-    case 53:
-    case 54:
-    case 55:
-    case 56:
-    case 57:
-      return readNumber(source, pos, code, line, col, prev);
-    // "
-
-    case 34:
-      if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
-        return readBlockString(source, pos, line, col, prev, lexer);
-      }
-
-      return readString(source, pos, line, col, prev);
-  }
-
-  throw syntaxError(source, pos, unexpectedCharacterMessage(code));
-}
-/**
- * Report a message that an unexpected character was encountered.
- */
-
-
-function unexpectedCharacterMessage(code) {
-  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
-    return "Cannot contain the invalid character ".concat(printCharCode(code), ".");
-  }
-
-  if (code === 39) {
-    // '
-    return 'Unexpected single quote character (\'), did you mean to use a double quote (")?';
-  }
-
-  return "Cannot parse the unexpected character ".concat(printCharCode(code), ".");
-}
-/**
- * Reads from body starting at startPosition until it finds a non-whitespace
- * character, then returns the position of that character for lexing.
- */
-
-
-function positionAfterWhitespace(body, startPosition, lexer) {
-  var bodyLength = body.length;
-  var position = startPosition;
-
-  while (position < bodyLength) {
-    var code = body.charCodeAt(position); // tab | space | comma | BOM
-
-    if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {
-      ++position;
-    } else if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else {
-      break;
-    }
-  }
-
-  return position;
-}
-/**
- * Reads a comment token from the source file.
- *
- * #[\u0009\u0020-\uFFFF]*
- */
-
-
-function readComment(source, start, line, col, prev) {
-  var body = source.body;
-  var code;
-  var position = start;
-
-  do {
-    code = body.charCodeAt(++position);
-  } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator
-  code > 0x001f || code === 0x0009));
-
-  return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));
-}
-/**
- * Reads a number token from the source file, either a float
- * or an int depending on whether a decimal point appears.
- *
- * Int:   -?(0|[1-9][0-9]*)
- * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)?
- */
-
-
-function readNumber(source, start, firstCode, line, col, prev) {
-  var body = source.body;
-  var code = firstCode;
-  var position = start;
-  var isFloat = false;
-
-  if (code === 45) {
-    // -
-    code = body.charCodeAt(++position);
-  }
-
-  if (code === 48) {
-    // 0
-    code = body.charCodeAt(++position);
-
-    if (code >= 48 && code <= 57) {
-      throw syntaxError(source, position, "Invalid number, unexpected digit after 0: ".concat(printCharCode(code), "."));
-    }
-  } else {
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 46) {
-    // .
-    isFloat = true;
-    code = body.charCodeAt(++position);
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  }
-
-  if (code === 69 || code === 101) {
-    // E e
-    isFloat = true;
-    code = body.charCodeAt(++position);
-
-    if (code === 43 || code === 45) {
-      // + -
-      code = body.charCodeAt(++position);
-    }
-
-    position = readDigits(source, position, code);
-    code = body.charCodeAt(position);
-  } // Numbers cannot be followed by . or NameStart
-
-
-  if (code === 46 || isNameStart(code)) {
-    throw syntaxError(source, position, "Invalid number, expected digit but got: ".concat(printCharCode(code), "."));
-  }
-
-  return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));
-}
-/**
- * Returns the new position in the source after reading digits.
- */
-
-
-function readDigits(source, start, firstCode) {
-  var body = source.body;
-  var position = start;
-  var code = firstCode;
-
-  if (code >= 48 && code <= 57) {
-    // 0 - 9
-    do {
-      code = body.charCodeAt(++position);
-    } while (code >= 48 && code <= 57); // 0 - 9
-
-
-    return position;
-  }
-
-  throw syntaxError(source, position, "Invalid number, expected digit but got: ".concat(printCharCode(code), "."));
-}
-/**
- * Reads a string token from the source file.
- *
- * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*"
- */
-
-
-function readString(source, start, line, col, prev) {
-  var body = source.body;
-  var position = start + 1;
-  var chunkStart = position;
-  var code = 0;
-  var value = '';
-
-  while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator
-  code !== 0x000a && code !== 0x000d) {
-    // Closing Quote (")
-    if (code === 34) {
-      value += body.slice(chunkStart, position);
-      return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);
-    } // SourceCharacter
-
-
-    if (code < 0x0020 && code !== 0x0009) {
-      throw syntaxError(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
-    }
-
-    ++position;
-
-    if (code === 92) {
-      // \
-      value += body.slice(chunkStart, position - 1);
-      code = body.charCodeAt(position);
-
-      switch (code) {
-        case 34:
-          value += '"';
-          break;
-
-        case 47:
-          value += '/';
-          break;
-
-        case 92:
-          value += '\\';
-          break;
-
-        case 98:
-          value += '\b';
-          break;
-
-        case 102:
-          value += '\f';
-          break;
-
-        case 110:
-          value += '\n';
-          break;
-
-        case 114:
-          value += '\r';
-          break;
-
-        case 116:
-          value += '\t';
-          break;
-
-        case 117:
-          {
-            // uXXXX
-            var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));
-
-            if (charCode < 0) {
-              var invalidSequence = body.slice(position + 1, position + 5);
-              throw syntaxError(source, position, "Invalid character escape sequence: \\u".concat(invalidSequence, "."));
-            }
-
-            value += String.fromCharCode(charCode);
-            position += 4;
-            break;
-          }
-
-        default:
-          throw syntaxError(source, position, "Invalid character escape sequence: \\".concat(String.fromCharCode(code), "."));
-      }
-
-      ++position;
-      chunkStart = position;
-    }
-  }
-
-  throw syntaxError(source, position, 'Unterminated string.');
-}
-/**
- * Reads a block string token from the source file.
- *
- * """("?"?(\\"""|\\(?!=""")|[^"\\]))*"""
- */
-
-
-function readBlockString(source, start, line, col, prev, lexer) {
-  var body = source.body;
-  var position = start + 3;
-  var chunkStart = position;
-  var code = 0;
-  var rawValue = '';
-
-  while (position < body.length && !isNaN(code = body.charCodeAt(position))) {
-    // Closing Triple-Quote (""")
-    if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {
-      rawValue += body.slice(chunkStart, position);
-      return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));
-    } // SourceCharacter
-
-
-    if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
-      throw syntaxError(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
-    }
-
-    if (code === 10) {
-      // new line
-      ++position;
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if (code === 13) {
-      // carriage return
-      if (body.charCodeAt(position + 1) === 10) {
-        position += 2;
-      } else {
-        ++position;
-      }
-
-      ++lexer.line;
-      lexer.lineStart = position;
-    } else if ( // Escape Triple-Quote (\""")
-    code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {
-      rawValue += body.slice(chunkStart, position) + '"""';
-      position += 4;
-      chunkStart = position;
-    } else {
-      ++position;
-    }
-  }
-
-  throw syntaxError(source, position, 'Unterminated string.');
-}
-/**
- * Converts four hexadecimal chars to the integer that the
- * string represents. For example, uniCharCode('0','0','0','f')
- * will return 15, and uniCharCode('0','0','f','f') returns 255.
- *
- * Returns a negative number on error, if a char was invalid.
- *
- * This is implemented by noting that char2hex() returns -1 on error,
- * which means the result of ORing the char2hex() will also be negative.
- */
-
-
-function uniCharCode(a, b, c, d) {
-  return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);
-}
-/**
- * Converts a hex character to its integer value.
- * '0' becomes 0, '9' becomes 9
- * 'A' becomes 10, 'F' becomes 15
- * 'a' becomes 10, 'f' becomes 15
- *
- * Returns -1 on error.
- */
-
-
-function char2hex(a) {
-  return a >= 48 && a <= 57 ? a - 48 // 0-9
-  : a >= 65 && a <= 70 ? a - 55 // A-F
-  : a >= 97 && a <= 102 ? a - 87 // a-f
-  : -1;
-}
-/**
- * Reads an alphanumeric + underscore name from the source.
- *
- * [_A-Za-z][_0-9A-Za-z]*
- */
-
-
-function readName(source, start, line, col, prev) {
-  var body = source.body;
-  var bodyLength = body.length;
-  var position = start + 1;
-  var code = 0;
-
-  while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _
-  code >= 48 && code <= 57 || // 0-9
-  code >= 65 && code <= 90 || // A-Z
-  code >= 97 && code <= 122) // a-z
-  ) {
-    ++position;
-  }
-
-  return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));
-} // _ A-Z a-z
-
-
-function isNameStart(code) {
-  return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;
-}
diff --git a/node_modules/graphql/language/location.d.ts b/node_modules/graphql/language/location.d.ts
deleted file mode 100644
index a41e82f..0000000
--- a/node_modules/graphql/language/location.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Source } from './source';
-
-/**
- * Represents a location in a Source.
- */
-export interface SourceLocation {
-  readonly line: number;
-  readonly column: number;
-}
-
-/**
- * Takes a Source and a UTF-8 character offset, and returns the corresponding
- * line and column as a SourceLocation.
- */
-export function getLocation(source: Source, position: number): SourceLocation;
diff --git a/node_modules/graphql/language/location.js b/node_modules/graphql/language/location.js
deleted file mode 100644
index 27d87c3..0000000
--- a/node_modules/graphql/language/location.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getLocation = getLocation;
-
-/**
- * Represents a location in a Source.
- */
-
-/**
- * Takes a Source and a UTF-8 character offset, and returns the corresponding
- * line and column as a SourceLocation.
- */
-function getLocation(source, position) {
-  var lineRegexp = /\r\n|[\n\r]/g;
-  var line = 1;
-  var column = position + 1;
-  var match;
-
-  while ((match = lineRegexp.exec(source.body)) && match.index < position) {
-    line += 1;
-    column = position + 1 - (match.index + match[0].length);
-  }
-
-  return {
-    line: line,
-    column: column
-  };
-}
diff --git a/node_modules/graphql/language/location.js.flow b/node_modules/graphql/language/location.js.flow
deleted file mode 100644
index 3918513..0000000
--- a/node_modules/graphql/language/location.js.flow
+++ /dev/null
@@ -1,27 +0,0 @@
-// @flow strict
-
-import { type Source } from './source';
-
-/**
- * Represents a location in a Source.
- */
-export type SourceLocation = {|
-  +line: number,
-  +column: number,
-|};
-
-/**
- * Takes a Source and a UTF-8 character offset, and returns the corresponding
- * line and column as a SourceLocation.
- */
-export function getLocation(source: Source, position: number): SourceLocation {
-  const lineRegexp = /\r\n|[\n\r]/g;
-  let line = 1;
-  let column = position + 1;
-  let match;
-  while ((match = lineRegexp.exec(source.body)) && match.index < position) {
-    line += 1;
-    column = position + 1 - (match.index + match[0].length);
-  }
-  return { line, column };
-}
diff --git a/node_modules/graphql/language/location.mjs b/node_modules/graphql/language/location.mjs
deleted file mode 100644
index e578ef0..0000000
--- a/node_modules/graphql/language/location.mjs
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Represents a location in a Source.
- */
-
-/**
- * Takes a Source and a UTF-8 character offset, and returns the corresponding
- * line and column as a SourceLocation.
- */
-export function getLocation(source, position) {
-  var lineRegexp = /\r\n|[\n\r]/g;
-  var line = 1;
-  var column = position + 1;
-  var match;
-
-  while ((match = lineRegexp.exec(source.body)) && match.index < position) {
-    line += 1;
-    column = position + 1 - (match.index + match[0].length);
-  }
-
-  return {
-    line: line,
-    column: column
-  };
-}
diff --git a/node_modules/graphql/language/parser.d.ts b/node_modules/graphql/language/parser.d.ts
deleted file mode 100644
index 368c6f8..0000000
--- a/node_modules/graphql/language/parser.d.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import { Source } from './source';
-import { TypeNode, ValueNode, DocumentNode } from './ast';
-
-/**
- * Configuration options to control parser behavior
- */
-export interface ParseOptions {
-  /**
-   * By default, the parser creates AST nodes that know the location
-   * in the source that they correspond to. This configuration flag
-   * disables that behavior for performance or testing.
-   */
-  noLocation?: boolean;
-
-  /**
-   * If enabled, the parser will parse empty fields sets in the Schema
-   * Definition Language. Otherwise, the parser will follow the current
-   * specification.
-   *
-   * This option is provided to ease adoption of the final SDL specification
-   * and will be removed in v16.
-   */
-  allowLegacySDLEmptyFields?: boolean;
-
-  /**
-   * If enabled, the parser will parse implemented interfaces with no `&`
-   * character between each interface. Otherwise, the parser will follow the
-   * current specification.
-   *
-   * This option is provided to ease adoption of the final SDL specification
-   * and will be removed in v16.
-   */
-  allowLegacySDLImplementsInterfaces?: boolean;
-
-  /**
-   * EXPERIMENTAL:
-   *
-   * If enabled, the parser will understand and parse variable definitions
-   * contained in a fragment definition. They'll be represented in the
-   * `variableDefinitions` field of the FragmentDefinitionNode.
-   *
-   * The syntax is identical to normal, query-defined variables. For example:
-   *
-   *   fragment A($var: Boolean = false) on T  {
-   *     ...
-   *   }
-   *
-   * Note: this feature is experimental and may change or be removed in the
-   * future.
-   */
-  experimentalFragmentVariables?: boolean;
-}
-
-/**
- * Given a GraphQL source, parses it into a Document.
- * Throws GraphQLError if a syntax error is encountered.
- */
-export function parse(
-  source: string | Source,
-  options?: ParseOptions,
-): DocumentNode;
-
-/**
- * Given a string containing a GraphQL value, parse the AST for that value.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Values directly and
- * in isolation of complete GraphQL documents.
- */
-export function parseValue(
-  source: string | Source,
-  options?: ParseOptions,
-): ValueNode;
-
-/**
- * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for
- * that type.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Types directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: typeFromAST().
- */
-export function parseType(
-  source: string | Source,
-  options?: ParseOptions,
-): TypeNode;
diff --git a/node_modules/graphql/language/parser.js b/node_modules/graphql/language/parser.js
deleted file mode 100644
index c66dad4..0000000
--- a/node_modules/graphql/language/parser.js
+++ /dev/null
@@ -1,1563 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.parse = parse;
-exports.parseValue = parseValue;
-exports.parseType = parseType;
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _syntaxError = require("../error/syntaxError");
-
-var _kinds = require("./kinds");
-
-var _source = require("./source");
-
-var _directiveLocation = require("./directiveLocation");
-
-var _tokenKind = require("./tokenKind");
-
-var _lexer = require("./lexer");
-
-var _ast = require("./ast");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Given a GraphQL source, parses it into a Document.
- * Throws GraphQLError if a syntax error is encountered.
- */
-function parse(source, options) {
-  var parser = new Parser(source, options);
-  return parser.parseDocument();
-}
-/**
- * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for
- * that value.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Values directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: valueFromAST().
- */
-
-
-function parseValue(source, options) {
-  var parser = new Parser(source, options);
-  parser.expectToken(_tokenKind.TokenKind.SOF);
-  var value = parser.parseValueLiteral(false);
-  parser.expectToken(_tokenKind.TokenKind.EOF);
-  return value;
-}
-/**
- * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for
- * that type.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Types directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: typeFromAST().
- */
-
-
-function parseType(source, options) {
-  var parser = new Parser(source, options);
-  parser.expectToken(_tokenKind.TokenKind.SOF);
-  var type = parser.parseTypeReference();
-  parser.expectToken(_tokenKind.TokenKind.EOF);
-  return type;
-}
-
-var Parser =
-/*#__PURE__*/
-function () {
-  function Parser(source, options) {
-    var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
-    sourceObj instanceof _source.Source || (0, _devAssert.default)(0, "Must provide Source. Received: ".concat((0, _inspect.default)(sourceObj), "."));
-    this._lexer = new _lexer.Lexer(sourceObj);
-    this._options = options;
-  }
-  /**
-   * Converts a name lex token into a name parse node.
-   */
-
-
-  var _proto = Parser.prototype;
-
-  _proto.parseName = function parseName() {
-    var token = this.expectToken(_tokenKind.TokenKind.NAME);
-    return {
-      kind: _kinds.Kind.NAME,
-      value: token.value,
-      loc: this.loc(token)
-    };
-  } // Implements the parsing rules in the Document section.
-
-  /**
-   * Document : Definition+
-   */
-  ;
-
-  _proto.parseDocument = function parseDocument() {
-    var start = this._lexer.token;
-    return {
-      kind: _kinds.Kind.DOCUMENT,
-      definitions: this.many(_tokenKind.TokenKind.SOF, this.parseDefinition, _tokenKind.TokenKind.EOF),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Definition :
-   *   - ExecutableDefinition
-   *   - TypeSystemDefinition
-   *   - TypeSystemExtension
-   *
-   * ExecutableDefinition :
-   *   - OperationDefinition
-   *   - FragmentDefinition
-   */
-  ;
-
-  _proto.parseDefinition = function parseDefinition() {
-    if (this.peek(_tokenKind.TokenKind.NAME)) {
-      switch (this._lexer.token.value) {
-        case 'query':
-        case 'mutation':
-        case 'subscription':
-          return this.parseOperationDefinition();
-
-        case 'fragment':
-          return this.parseFragmentDefinition();
-
-        case 'schema':
-        case 'scalar':
-        case 'type':
-        case 'interface':
-        case 'union':
-        case 'enum':
-        case 'input':
-        case 'directive':
-          return this.parseTypeSystemDefinition();
-
-        case 'extend':
-          return this.parseTypeSystemExtension();
-      }
-    } else if (this.peek(_tokenKind.TokenKind.BRACE_L)) {
-      return this.parseOperationDefinition();
-    } else if (this.peekDescription()) {
-      return this.parseTypeSystemDefinition();
-    }
-
-    throw this.unexpected();
-  } // Implements the parsing rules in the Operations section.
-
-  /**
-   * OperationDefinition :
-   *  - SelectionSet
-   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet
-   */
-  ;
-
-  _proto.parseOperationDefinition = function parseOperationDefinition() {
-    var start = this._lexer.token;
-
-    if (this.peek(_tokenKind.TokenKind.BRACE_L)) {
-      return {
-        kind: _kinds.Kind.OPERATION_DEFINITION,
-        operation: 'query',
-        name: undefined,
-        variableDefinitions: [],
-        directives: [],
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start)
-      };
-    }
-
-    var operation = this.parseOperationType();
-    var name;
-
-    if (this.peek(_tokenKind.TokenKind.NAME)) {
-      name = this.parseName();
-    }
-
-    return {
-      kind: _kinds.Kind.OPERATION_DEFINITION,
-      operation: operation,
-      name: name,
-      variableDefinitions: this.parseVariableDefinitions(),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * OperationType : one of query mutation subscription
-   */
-  ;
-
-  _proto.parseOperationType = function parseOperationType() {
-    var operationToken = this.expectToken(_tokenKind.TokenKind.NAME);
-
-    switch (operationToken.value) {
-      case 'query':
-        return 'query';
-
-      case 'mutation':
-        return 'mutation';
-
-      case 'subscription':
-        return 'subscription';
-    }
-
-    throw this.unexpected(operationToken);
-  }
-  /**
-   * VariableDefinitions : ( VariableDefinition+ )
-   */
-  ;
-
-  _proto.parseVariableDefinitions = function parseVariableDefinitions() {
-    return this.optionalMany(_tokenKind.TokenKind.PAREN_L, this.parseVariableDefinition, _tokenKind.TokenKind.PAREN_R);
-  }
-  /**
-   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?
-   */
-  ;
-
-  _proto.parseVariableDefinition = function parseVariableDefinition() {
-    var start = this._lexer.token;
-    return {
-      kind: _kinds.Kind.VARIABLE_DEFINITION,
-      variable: this.parseVariable(),
-      type: (this.expectToken(_tokenKind.TokenKind.COLON), this.parseTypeReference()),
-      defaultValue: this.expectOptionalToken(_tokenKind.TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,
-      directives: this.parseDirectives(true),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Variable : $ Name
-   */
-  ;
-
-  _proto.parseVariable = function parseVariable() {
-    var start = this._lexer.token;
-    this.expectToken(_tokenKind.TokenKind.DOLLAR);
-    return {
-      kind: _kinds.Kind.VARIABLE,
-      name: this.parseName(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * SelectionSet : { Selection+ }
-   */
-  ;
-
-  _proto.parseSelectionSet = function parseSelectionSet() {
-    var start = this._lexer.token;
-    return {
-      kind: _kinds.Kind.SELECTION_SET,
-      selections: this.many(_tokenKind.TokenKind.BRACE_L, this.parseSelection, _tokenKind.TokenKind.BRACE_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Selection :
-   *   - Field
-   *   - FragmentSpread
-   *   - InlineFragment
-   */
-  ;
-
-  _proto.parseSelection = function parseSelection() {
-    return this.peek(_tokenKind.TokenKind.SPREAD) ? this.parseFragment() : this.parseField();
-  }
-  /**
-   * Field : Alias? Name Arguments? Directives? SelectionSet?
-   *
-   * Alias : Name :
-   */
-  ;
-
-  _proto.parseField = function parseField() {
-    var start = this._lexer.token;
-    var nameOrAlias = this.parseName();
-    var alias;
-    var name;
-
-    if (this.expectOptionalToken(_tokenKind.TokenKind.COLON)) {
-      alias = nameOrAlias;
-      name = this.parseName();
-    } else {
-      name = nameOrAlias;
-    }
-
-    return {
-      kind: _kinds.Kind.FIELD,
-      alias: alias,
-      name: name,
-      arguments: this.parseArguments(false),
-      directives: this.parseDirectives(false),
-      selectionSet: this.peek(_tokenKind.TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Arguments[Const] : ( Argument[?Const]+ )
-   */
-  ;
-
-  _proto.parseArguments = function parseArguments(isConst) {
-    var item = isConst ? this.parseConstArgument : this.parseArgument;
-    return this.optionalMany(_tokenKind.TokenKind.PAREN_L, item, _tokenKind.TokenKind.PAREN_R);
-  }
-  /**
-   * Argument[Const] : Name : Value[?Const]
-   */
-  ;
-
-  _proto.parseArgument = function parseArgument() {
-    var start = this._lexer.token;
-    var name = this.parseName();
-    this.expectToken(_tokenKind.TokenKind.COLON);
-    return {
-      kind: _kinds.Kind.ARGUMENT,
-      name: name,
-      value: this.parseValueLiteral(false),
-      loc: this.loc(start)
-    };
-  };
-
-  _proto.parseConstArgument = function parseConstArgument() {
-    var start = this._lexer.token;
-    return {
-      kind: _kinds.Kind.ARGUMENT,
-      name: this.parseName(),
-      value: (this.expectToken(_tokenKind.TokenKind.COLON), this.parseValueLiteral(true)),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Fragments section.
-
-  /**
-   * Corresponds to both FragmentSpread and InlineFragment in the spec.
-   *
-   * FragmentSpread : ... FragmentName Directives?
-   *
-   * InlineFragment : ... TypeCondition? Directives? SelectionSet
-   */
-  ;
-
-  _proto.parseFragment = function parseFragment() {
-    var start = this._lexer.token;
-    this.expectToken(_tokenKind.TokenKind.SPREAD);
-    var hasTypeCondition = this.expectOptionalKeyword('on');
-
-    if (!hasTypeCondition && this.peek(_tokenKind.TokenKind.NAME)) {
-      return {
-        kind: _kinds.Kind.FRAGMENT_SPREAD,
-        name: this.parseFragmentName(),
-        directives: this.parseDirectives(false),
-        loc: this.loc(start)
-      };
-    }
-
-    return {
-      kind: _kinds.Kind.INLINE_FRAGMENT,
-      typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * FragmentDefinition :
-   *   - fragment FragmentName on TypeCondition Directives? SelectionSet
-   *
-   * TypeCondition : NamedType
-   */
-  ;
-
-  _proto.parseFragmentDefinition = function parseFragmentDefinition() {
-    var _this$_options;
-
-    var start = this._lexer.token;
-    this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes
-    // the grammar of FragmentDefinition:
-    //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet
-
-    if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {
-      return {
-        kind: _kinds.Kind.FRAGMENT_DEFINITION,
-        name: this.parseFragmentName(),
-        variableDefinitions: this.parseVariableDefinitions(),
-        typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-        directives: this.parseDirectives(false),
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start)
-      };
-    }
-
-    return {
-      kind: _kinds.Kind.FRAGMENT_DEFINITION,
-      name: this.parseFragmentName(),
-      typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * FragmentName : Name but not `on`
-   */
-  ;
-
-  _proto.parseFragmentName = function parseFragmentName() {
-    if (this._lexer.token.value === 'on') {
-      throw this.unexpected();
-    }
-
-    return this.parseName();
-  } // Implements the parsing rules in the Values section.
-
-  /**
-   * Value[Const] :
-   *   - [~Const] Variable
-   *   - IntValue
-   *   - FloatValue
-   *   - StringValue
-   *   - BooleanValue
-   *   - NullValue
-   *   - EnumValue
-   *   - ListValue[?Const]
-   *   - ObjectValue[?Const]
-   *
-   * BooleanValue : one of `true` `false`
-   *
-   * NullValue : `null`
-   *
-   * EnumValue : Name but not `true`, `false` or `null`
-   */
-  ;
-
-  _proto.parseValueLiteral = function parseValueLiteral(isConst) {
-    var token = this._lexer.token;
-
-    switch (token.kind) {
-      case _tokenKind.TokenKind.BRACKET_L:
-        return this.parseList(isConst);
-
-      case _tokenKind.TokenKind.BRACE_L:
-        return this.parseObject(isConst);
-
-      case _tokenKind.TokenKind.INT:
-        this._lexer.advance();
-
-        return {
-          kind: _kinds.Kind.INT,
-          value: token.value,
-          loc: this.loc(token)
-        };
-
-      case _tokenKind.TokenKind.FLOAT:
-        this._lexer.advance();
-
-        return {
-          kind: _kinds.Kind.FLOAT,
-          value: token.value,
-          loc: this.loc(token)
-        };
-
-      case _tokenKind.TokenKind.STRING:
-      case _tokenKind.TokenKind.BLOCK_STRING:
-        return this.parseStringLiteral();
-
-      case _tokenKind.TokenKind.NAME:
-        this._lexer.advance();
-
-        switch (token.value) {
-          case 'true':
-            return {
-              kind: _kinds.Kind.BOOLEAN,
-              value: true,
-              loc: this.loc(token)
-            };
-
-          case 'false':
-            return {
-              kind: _kinds.Kind.BOOLEAN,
-              value: false,
-              loc: this.loc(token)
-            };
-
-          case 'null':
-            return {
-              kind: _kinds.Kind.NULL,
-              loc: this.loc(token)
-            };
-
-          default:
-            return {
-              kind: _kinds.Kind.ENUM,
-              value: token.value,
-              loc: this.loc(token)
-            };
-        }
-
-      case _tokenKind.TokenKind.DOLLAR:
-        if (!isConst) {
-          return this.parseVariable();
-        }
-
-        break;
-    }
-
-    throw this.unexpected();
-  };
-
-  _proto.parseStringLiteral = function parseStringLiteral() {
-    var token = this._lexer.token;
-
-    this._lexer.advance();
-
-    return {
-      kind: _kinds.Kind.STRING,
-      value: token.value,
-      block: token.kind === _tokenKind.TokenKind.BLOCK_STRING,
-      loc: this.loc(token)
-    };
-  }
-  /**
-   * ListValue[Const] :
-   *   - [ ]
-   *   - [ Value[?Const]+ ]
-   */
-  ;
-
-  _proto.parseList = function parseList(isConst) {
-    var _this = this;
-
-    var start = this._lexer.token;
-
-    var item = function item() {
-      return _this.parseValueLiteral(isConst);
-    };
-
-    return {
-      kind: _kinds.Kind.LIST,
-      values: this.any(_tokenKind.TokenKind.BRACKET_L, item, _tokenKind.TokenKind.BRACKET_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectValue[Const] :
-   *   - { }
-   *   - { ObjectField[?Const]+ }
-   */
-  ;
-
-  _proto.parseObject = function parseObject(isConst) {
-    var _this2 = this;
-
-    var start = this._lexer.token;
-
-    var item = function item() {
-      return _this2.parseObjectField(isConst);
-    };
-
-    return {
-      kind: _kinds.Kind.OBJECT,
-      fields: this.any(_tokenKind.TokenKind.BRACE_L, item, _tokenKind.TokenKind.BRACE_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectField[Const] : Name : Value[?Const]
-   */
-  ;
-
-  _proto.parseObjectField = function parseObjectField(isConst) {
-    var start = this._lexer.token;
-    var name = this.parseName();
-    this.expectToken(_tokenKind.TokenKind.COLON);
-    return {
-      kind: _kinds.Kind.OBJECT_FIELD,
-      name: name,
-      value: this.parseValueLiteral(isConst),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Directives section.
-
-  /**
-   * Directives[Const] : Directive[?Const]+
-   */
-  ;
-
-  _proto.parseDirectives = function parseDirectives(isConst) {
-    var directives = [];
-
-    while (this.peek(_tokenKind.TokenKind.AT)) {
-      directives.push(this.parseDirective(isConst));
-    }
-
-    return directives;
-  }
-  /**
-   * Directive[Const] : @ Name Arguments[?Const]?
-   */
-  ;
-
-  _proto.parseDirective = function parseDirective(isConst) {
-    var start = this._lexer.token;
-    this.expectToken(_tokenKind.TokenKind.AT);
-    return {
-      kind: _kinds.Kind.DIRECTIVE,
-      name: this.parseName(),
-      arguments: this.parseArguments(isConst),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Types section.
-
-  /**
-   * Type :
-   *   - NamedType
-   *   - ListType
-   *   - NonNullType
-   */
-  ;
-
-  _proto.parseTypeReference = function parseTypeReference() {
-    var start = this._lexer.token;
-    var type;
-
-    if (this.expectOptionalToken(_tokenKind.TokenKind.BRACKET_L)) {
-      type = this.parseTypeReference();
-      this.expectToken(_tokenKind.TokenKind.BRACKET_R);
-      type = {
-        kind: _kinds.Kind.LIST_TYPE,
-        type: type,
-        loc: this.loc(start)
-      };
-    } else {
-      type = this.parseNamedType();
-    }
-
-    if (this.expectOptionalToken(_tokenKind.TokenKind.BANG)) {
-      return {
-        kind: _kinds.Kind.NON_NULL_TYPE,
-        type: type,
-        loc: this.loc(start)
-      };
-    }
-
-    return type;
-  }
-  /**
-   * NamedType : Name
-   */
-  ;
-
-  _proto.parseNamedType = function parseNamedType() {
-    var start = this._lexer.token;
-    return {
-      kind: _kinds.Kind.NAMED_TYPE,
-      name: this.parseName(),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Type Definition section.
-
-  /**
-   * TypeSystemDefinition :
-   *   - SchemaDefinition
-   *   - TypeDefinition
-   *   - DirectiveDefinition
-   *
-   * TypeDefinition :
-   *   - ScalarTypeDefinition
-   *   - ObjectTypeDefinition
-   *   - InterfaceTypeDefinition
-   *   - UnionTypeDefinition
-   *   - EnumTypeDefinition
-   *   - InputObjectTypeDefinition
-   */
-  ;
-
-  _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {
-    // Many definitions begin with a description and require a lookahead.
-    var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;
-
-    if (keywordToken.kind === _tokenKind.TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaDefinition();
-
-        case 'scalar':
-          return this.parseScalarTypeDefinition();
-
-        case 'type':
-          return this.parseObjectTypeDefinition();
-
-        case 'interface':
-          return this.parseInterfaceTypeDefinition();
-
-        case 'union':
-          return this.parseUnionTypeDefinition();
-
-        case 'enum':
-          return this.parseEnumTypeDefinition();
-
-        case 'input':
-          return this.parseInputObjectTypeDefinition();
-
-        case 'directive':
-          return this.parseDirectiveDefinition();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  };
-
-  _proto.peekDescription = function peekDescription() {
-    return this.peek(_tokenKind.TokenKind.STRING) || this.peek(_tokenKind.TokenKind.BLOCK_STRING);
-  }
-  /**
-   * Description : StringValue
-   */
-  ;
-
-  _proto.parseDescription = function parseDescription() {
-    if (this.peekDescription()) {
-      return this.parseStringLiteral();
-    }
-  }
-  /**
-   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }
-   */
-  ;
-
-  _proto.parseSchemaDefinition = function parseSchemaDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('schema');
-    var directives = this.parseDirectives(true);
-    var operationTypes = this.many(_tokenKind.TokenKind.BRACE_L, this.parseOperationTypeDefinition, _tokenKind.TokenKind.BRACE_R);
-    return {
-      kind: _kinds.Kind.SCHEMA_DEFINITION,
-      description: description,
-      directives: directives,
-      operationTypes: operationTypes,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * OperationTypeDefinition : OperationType : NamedType
-   */
-  ;
-
-  _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {
-    var start = this._lexer.token;
-    var operation = this.parseOperationType();
-    this.expectToken(_tokenKind.TokenKind.COLON);
-    var type = this.parseNamedType();
-    return {
-      kind: _kinds.Kind.OPERATION_TYPE_DEFINITION,
-      operation: operation,
-      type: type,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?
-   */
-  ;
-
-  _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('scalar');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: _kinds.Kind.SCALAR_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectTypeDefinition :
-   *   Description?
-   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?
-   */
-  ;
-
-  _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('type');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-    return {
-      kind: _kinds.Kind.OBJECT_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ImplementsInterfaces :
-   *   - implements `&`? NamedType
-   *   - ImplementsInterfaces & NamedType
-   */
-  ;
-
-  _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {
-    var types = [];
-
-    if (this.expectOptionalKeyword('implements')) {
-      // Optional leading ampersand
-      this.expectOptionalToken(_tokenKind.TokenKind.AMP);
-
-      do {
-        var _this$_options2;
-
-        types.push(this.parseNamedType());
-      } while (this.expectOptionalToken(_tokenKind.TokenKind.AMP) || // Legacy support for the SDL?
-      ((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true && this.peek(_tokenKind.TokenKind.NAME));
-    }
-
-    return types;
-  }
-  /**
-   * FieldsDefinition : { FieldDefinition+ }
-   */
-  ;
-
-  _proto.parseFieldsDefinition = function parseFieldsDefinition() {
-    var _this$_options3;
-
-    // Legacy support for the SDL?
-    if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(_tokenKind.TokenKind.BRACE_L) && this._lexer.lookahead().kind === _tokenKind.TokenKind.BRACE_R) {
-      this._lexer.advance();
-
-      this._lexer.advance();
-
-      return [];
-    }
-
-    return this.optionalMany(_tokenKind.TokenKind.BRACE_L, this.parseFieldDefinition, _tokenKind.TokenKind.BRACE_R);
-  }
-  /**
-   * FieldDefinition :
-   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?
-   */
-  ;
-
-  _proto.parseFieldDefinition = function parseFieldDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    var args = this.parseArgumentDefs();
-    this.expectToken(_tokenKind.TokenKind.COLON);
-    var type = this.parseTypeReference();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: _kinds.Kind.FIELD_DEFINITION,
-      description: description,
-      name: name,
-      arguments: args,
-      type: type,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ArgumentsDefinition : ( InputValueDefinition+ )
-   */
-  ;
-
-  _proto.parseArgumentDefs = function parseArgumentDefs() {
-    return this.optionalMany(_tokenKind.TokenKind.PAREN_L, this.parseInputValueDef, _tokenKind.TokenKind.PAREN_R);
-  }
-  /**
-   * InputValueDefinition :
-   *   - Description? Name : Type DefaultValue? Directives[Const]?
-   */
-  ;
-
-  _proto.parseInputValueDef = function parseInputValueDef() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    this.expectToken(_tokenKind.TokenKind.COLON);
-    var type = this.parseTypeReference();
-    var defaultValue;
-
-    if (this.expectOptionalToken(_tokenKind.TokenKind.EQUALS)) {
-      defaultValue = this.parseValueLiteral(true);
-    }
-
-    var directives = this.parseDirectives(true);
-    return {
-      kind: _kinds.Kind.INPUT_VALUE_DEFINITION,
-      description: description,
-      name: name,
-      type: type,
-      defaultValue: defaultValue,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InterfaceTypeDefinition :
-   *   - Description? interface Name Directives[Const]? FieldsDefinition?
-   */
-  ;
-
-  _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('interface');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-    return {
-      kind: _kinds.Kind.INTERFACE_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionTypeDefinition :
-   *   - Description? union Name Directives[Const]? UnionMemberTypes?
-   */
-  ;
-
-  _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('union');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var types = this.parseUnionMemberTypes();
-    return {
-      kind: _kinds.Kind.UNION_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      types: types,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionMemberTypes :
-   *   - = `|`? NamedType
-   *   - UnionMemberTypes | NamedType
-   */
-  ;
-
-  _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {
-    var types = [];
-
-    if (this.expectOptionalToken(_tokenKind.TokenKind.EQUALS)) {
-      // Optional leading pipe
-      this.expectOptionalToken(_tokenKind.TokenKind.PIPE);
-
-      do {
-        types.push(this.parseNamedType());
-      } while (this.expectOptionalToken(_tokenKind.TokenKind.PIPE));
-    }
-
-    return types;
-  }
-  /**
-   * EnumTypeDefinition :
-   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?
-   */
-  ;
-
-  _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('enum');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var values = this.parseEnumValuesDefinition();
-    return {
-      kind: _kinds.Kind.ENUM_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      values: values,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * EnumValuesDefinition : { EnumValueDefinition+ }
-   */
-  ;
-
-  _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {
-    return this.optionalMany(_tokenKind.TokenKind.BRACE_L, this.parseEnumValueDefinition, _tokenKind.TokenKind.BRACE_R);
-  }
-  /**
-   * EnumValueDefinition : Description? EnumValue Directives[Const]?
-   *
-   * EnumValue : Name
-   */
-  ;
-
-  _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: _kinds.Kind.ENUM_VALUE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputObjectTypeDefinition :
-   *   - Description? input Name Directives[Const]? InputFieldsDefinition?
-   */
-  ;
-
-  _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('input');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseInputFieldsDefinition();
-    return {
-      kind: _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputFieldsDefinition : { InputValueDefinition+ }
-   */
-  ;
-
-  _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {
-    return this.optionalMany(_tokenKind.TokenKind.BRACE_L, this.parseInputValueDef, _tokenKind.TokenKind.BRACE_R);
-  }
-  /**
-   * TypeSystemExtension :
-   *   - SchemaExtension
-   *   - TypeExtension
-   *
-   * TypeExtension :
-   *   - ScalarTypeExtension
-   *   - ObjectTypeExtension
-   *   - InterfaceTypeExtension
-   *   - UnionTypeExtension
-   *   - EnumTypeExtension
-   *   - InputObjectTypeDefinition
-   */
-  ;
-
-  _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {
-    var keywordToken = this._lexer.lookahead();
-
-    if (keywordToken.kind === _tokenKind.TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaExtension();
-
-        case 'scalar':
-          return this.parseScalarTypeExtension();
-
-        case 'type':
-          return this.parseObjectTypeExtension();
-
-        case 'interface':
-          return this.parseInterfaceTypeExtension();
-
-        case 'union':
-          return this.parseUnionTypeExtension();
-
-        case 'enum':
-          return this.parseEnumTypeExtension();
-
-        case 'input':
-          return this.parseInputObjectTypeExtension();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  }
-  /**
-   * SchemaExtension :
-   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }
-   *  - extend schema Directives[Const]
-   */
-  ;
-
-  _proto.parseSchemaExtension = function parseSchemaExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('schema');
-    var directives = this.parseDirectives(true);
-    var operationTypes = this.optionalMany(_tokenKind.TokenKind.BRACE_L, this.parseOperationTypeDefinition, _tokenKind.TokenKind.BRACE_R);
-
-    if (directives.length === 0 && operationTypes.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.SCHEMA_EXTENSION,
-      directives: directives,
-      operationTypes: operationTypes,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ScalarTypeExtension :
-   *   - extend scalar Name Directives[Const]
-   */
-  ;
-
-  _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('scalar');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-
-    if (directives.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.SCALAR_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectTypeExtension :
-   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend type Name ImplementsInterfaces? Directives[Const]
-   *  - extend type Name ImplementsInterfaces
-   */
-  ;
-
-  _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('type');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-
-    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.OBJECT_TYPE_EXTENSION,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InterfaceTypeExtension :
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]
-   *  - extend interface Name ImplementsInterfaces
-   */
-  ;
-
-  _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('interface');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-
-    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.INTERFACE_TYPE_EXTENSION,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionTypeExtension :
-   *   - extend union Name Directives[Const]? UnionMemberTypes
-   *   - extend union Name Directives[Const]
-   */
-  ;
-
-  _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('union');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var types = this.parseUnionMemberTypes();
-
-    if (directives.length === 0 && types.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.UNION_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      types: types,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * EnumTypeExtension :
-   *   - extend enum Name Directives[Const]? EnumValuesDefinition
-   *   - extend enum Name Directives[Const]
-   */
-  ;
-
-  _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('enum');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var values = this.parseEnumValuesDefinition();
-
-    if (directives.length === 0 && values.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.ENUM_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      values: values,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputObjectTypeExtension :
-   *   - extend input Name Directives[Const]? InputFieldsDefinition
-   *   - extend input Name Directives[Const]
-   */
-  ;
-
-  _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('input');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseInputFieldsDefinition();
-
-    if (directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * DirectiveDefinition :
-   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations
-   */
-  ;
-
-  _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('directive');
-    this.expectToken(_tokenKind.TokenKind.AT);
-    var name = this.parseName();
-    var args = this.parseArgumentDefs();
-    var repeatable = this.expectOptionalKeyword('repeatable');
-    this.expectKeyword('on');
-    var locations = this.parseDirectiveLocations();
-    return {
-      kind: _kinds.Kind.DIRECTIVE_DEFINITION,
-      description: description,
-      name: name,
-      arguments: args,
-      repeatable: repeatable,
-      locations: locations,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * DirectiveLocations :
-   *   - `|`? DirectiveLocation
-   *   - DirectiveLocations | DirectiveLocation
-   */
-  ;
-
-  _proto.parseDirectiveLocations = function parseDirectiveLocations() {
-    // Optional leading pipe
-    this.expectOptionalToken(_tokenKind.TokenKind.PIPE);
-    var locations = [];
-
-    do {
-      locations.push(this.parseDirectiveLocation());
-    } while (this.expectOptionalToken(_tokenKind.TokenKind.PIPE));
-
-    return locations;
-  }
-  /*
-   * DirectiveLocation :
-   *   - ExecutableDirectiveLocation
-   *   - TypeSystemDirectiveLocation
-   *
-   * ExecutableDirectiveLocation : one of
-   *   `QUERY`
-   *   `MUTATION`
-   *   `SUBSCRIPTION`
-   *   `FIELD`
-   *   `FRAGMENT_DEFINITION`
-   *   `FRAGMENT_SPREAD`
-   *   `INLINE_FRAGMENT`
-   *
-   * TypeSystemDirectiveLocation : one of
-   *   `SCHEMA`
-   *   `SCALAR`
-   *   `OBJECT`
-   *   `FIELD_DEFINITION`
-   *   `ARGUMENT_DEFINITION`
-   *   `INTERFACE`
-   *   `UNION`
-   *   `ENUM`
-   *   `ENUM_VALUE`
-   *   `INPUT_OBJECT`
-   *   `INPUT_FIELD_DEFINITION`
-   */
-  ;
-
-  _proto.parseDirectiveLocation = function parseDirectiveLocation() {
-    var start = this._lexer.token;
-    var name = this.parseName();
-
-    if (_directiveLocation.DirectiveLocation[name.value] !== undefined) {
-      return name;
-    }
-
-    throw this.unexpected(start);
-  } // Core parsing utility functions
-
-  /**
-   * Returns a location object, used to identify the place in
-   * the source that created a given parsed object.
-   */
-  ;
-
-  _proto.loc = function loc(startToken) {
-    var _this$_options4;
-
-    if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {
-      return new _ast.Location(startToken, this._lexer.lastToken, this._lexer.source);
-    }
-  }
-  /**
-   * Determines if the next token is of a given kind
-   */
-  ;
-
-  _proto.peek = function peek(kind) {
-    return this._lexer.token.kind === kind;
-  }
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and throw an error.
-   */
-  ;
-
-  _proto.expectToken = function expectToken(kind) {
-    var token = this._lexer.token;
-
-    if (token.kind === kind) {
-      this._lexer.advance();
-
-      return token;
-    }
-
-    throw (0, _syntaxError.syntaxError)(this._lexer.source, token.start, "Expected ".concat(getTokenKindDesc(kind), ", found ").concat(getTokenDesc(token), "."));
-  }
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and return undefined.
-   */
-  ;
-
-  _proto.expectOptionalToken = function expectOptionalToken(kind) {
-    var token = this._lexer.token;
-
-    if (token.kind === kind) {
-      this._lexer.advance();
-
-      return token;
-    }
-
-    return undefined;
-  }
-  /**
-   * If the next token is a given keyword, advance the lexer.
-   * Otherwise, do not change the parser state and throw an error.
-   */
-  ;
-
-  _proto.expectKeyword = function expectKeyword(value) {
-    var token = this._lexer.token;
-
-    if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-    } else {
-      throw (0, _syntaxError.syntaxError)(this._lexer.source, token.start, "Expected \"".concat(value, "\", found ").concat(getTokenDesc(token), "."));
-    }
-  }
-  /**
-   * If the next token is a given keyword, return "true" after advancing
-   * the lexer. Otherwise, do not change the parser state and return "false".
-   */
-  ;
-
-  _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {
-    var token = this._lexer.token;
-
-    if (token.kind === _tokenKind.TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-
-      return true;
-    }
-
-    return false;
-  }
-  /**
-   * Helper function for creating an error when an unexpected lexed token
-   * is encountered.
-   */
-  ;
-
-  _proto.unexpected = function unexpected(atToken) {
-    var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;
-    return (0, _syntaxError.syntaxError)(this._lexer.source, token.start, "Unexpected ".concat(getTokenDesc(token), "."));
-  }
-  /**
-   * Returns a possibly empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  ;
-
-  _proto.any = function any(openKind, parseFn, closeKind) {
-    this.expectToken(openKind);
-    var nodes = [];
-
-    while (!this.expectOptionalToken(closeKind)) {
-      nodes.push(parseFn.call(this));
-    }
-
-    return nodes;
-  }
-  /**
-   * Returns a list of parse nodes, determined by the parseFn.
-   * It can be empty only if open token is missing otherwise it will always
-   * return non-empty list that begins with a lex token of openKind and ends
-   * with a lex token of closeKind. Advances the parser to the next lex token
-   * after the closing token.
-   */
-  ;
-
-  _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {
-    if (this.expectOptionalToken(openKind)) {
-      var nodes = [];
-
-      do {
-        nodes.push(parseFn.call(this));
-      } while (!this.expectOptionalToken(closeKind));
-
-      return nodes;
-    }
-
-    return [];
-  }
-  /**
-   * Returns a non-empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  ;
-
-  _proto.many = function many(openKind, parseFn, closeKind) {
-    this.expectToken(openKind);
-    var nodes = [];
-
-    do {
-      nodes.push(parseFn.call(this));
-    } while (!this.expectOptionalToken(closeKind));
-
-    return nodes;
-  };
-
-  return Parser;
-}();
-/**
- * A helper function to describe a token as a string for debugging
- */
-
-
-function getTokenDesc(token) {
-  var value = token.value;
-  return getTokenKindDesc(token.kind) + (value != null ? " \"".concat(value, "\"") : '');
-}
-/**
- * A helper function to describe a token kind as a string for debugging
- */
-
-
-function getTokenKindDesc(kind) {
-  return (0, _lexer.isPunctuatorTokenKind)(kind) ? "\"".concat(kind, "\"") : kind;
-}
diff --git a/node_modules/graphql/language/parser.js.flow b/node_modules/graphql/language/parser.js.flow
deleted file mode 100644
index 2fdcdc6..0000000
--- a/node_modules/graphql/language/parser.js.flow
+++ /dev/null
@@ -1,1562 +0,0 @@
-// @flow strict
-
-import inspect from '../jsutils/inspect';
-import devAssert from '../jsutils/devAssert';
-
-import { syntaxError } from '../error/syntaxError';
-import { type GraphQLError } from '../error/GraphQLError';
-
-import { Kind } from './kinds';
-import { Source } from './source';
-import { DirectiveLocation } from './directiveLocation';
-import { type TokenKindEnum, TokenKind } from './tokenKind';
-import { Lexer, isPunctuatorTokenKind } from './lexer';
-import {
-  Location,
-  type Token,
-  type NameNode,
-  type VariableNode,
-  type DocumentNode,
-  type DefinitionNode,
-  type OperationDefinitionNode,
-  type OperationTypeNode,
-  type VariableDefinitionNode,
-  type SelectionSetNode,
-  type SelectionNode,
-  type FieldNode,
-  type ArgumentNode,
-  type FragmentSpreadNode,
-  type InlineFragmentNode,
-  type FragmentDefinitionNode,
-  type ValueNode,
-  type StringValueNode,
-  type ListValueNode,
-  type ObjectValueNode,
-  type ObjectFieldNode,
-  type DirectiveNode,
-  type TypeNode,
-  type NamedTypeNode,
-  type TypeSystemDefinitionNode,
-  type SchemaDefinitionNode,
-  type OperationTypeDefinitionNode,
-  type ScalarTypeDefinitionNode,
-  type ObjectTypeDefinitionNode,
-  type FieldDefinitionNode,
-  type InputValueDefinitionNode,
-  type InterfaceTypeDefinitionNode,
-  type UnionTypeDefinitionNode,
-  type EnumTypeDefinitionNode,
-  type EnumValueDefinitionNode,
-  type InputObjectTypeDefinitionNode,
-  type DirectiveDefinitionNode,
-  type TypeSystemExtensionNode,
-  type SchemaExtensionNode,
-  type ScalarTypeExtensionNode,
-  type ObjectTypeExtensionNode,
-  type InterfaceTypeExtensionNode,
-  type UnionTypeExtensionNode,
-  type EnumTypeExtensionNode,
-  type InputObjectTypeExtensionNode,
-} from './ast';
-
-/**
- * Configuration options to control parser behavior
- */
-export type ParseOptions = {|
-  /**
-   * By default, the parser creates AST nodes that know the location
-   * in the source that they correspond to. This configuration flag
-   * disables that behavior for performance or testing.
-   */
-  noLocation?: boolean,
-
-  /**
-   * If enabled, the parser will parse empty fields sets in the Schema
-   * Definition Language. Otherwise, the parser will follow the current
-   * specification.
-   *
-   * This option is provided to ease adoption of the final SDL specification
-   * and will be removed in v16.
-   */
-  allowLegacySDLEmptyFields?: boolean,
-
-  /**
-   * If enabled, the parser will parse implemented interfaces with no `&`
-   * character between each interface. Otherwise, the parser will follow the
-   * current specification.
-   *
-   * This option is provided to ease adoption of the final SDL specification
-   * and will be removed in v16.
-   */
-  allowLegacySDLImplementsInterfaces?: boolean,
-
-  /**
-   * EXPERIMENTAL:
-   *
-   * If enabled, the parser will understand and parse variable definitions
-   * contained in a fragment definition. They'll be represented in the
-   * `variableDefinitions` field of the FragmentDefinitionNode.
-   *
-   * The syntax is identical to normal, query-defined variables. For example:
-   *
-   *   fragment A($var: Boolean = false) on T  {
-   *     ...
-   *   }
-   *
-   * Note: this feature is experimental and may change or be removed in the
-   * future.
-   */
-  experimentalFragmentVariables?: boolean,
-|};
-
-/**
- * Given a GraphQL source, parses it into a Document.
- * Throws GraphQLError if a syntax error is encountered.
- */
-export function parse(
-  source: string | Source,
-  options?: ParseOptions,
-): DocumentNode {
-  const parser = new Parser(source, options);
-  return parser.parseDocument();
-}
-
-/**
- * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for
- * that value.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Values directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: valueFromAST().
- */
-export function parseValue(
-  source: string | Source,
-  options?: ParseOptions,
-): ValueNode {
-  const parser = new Parser(source, options);
-  parser.expectToken(TokenKind.SOF);
-  const value = parser.parseValueLiteral(false);
-  parser.expectToken(TokenKind.EOF);
-  return value;
-}
-
-/**
- * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for
- * that type.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Types directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: typeFromAST().
- */
-export function parseType(
-  source: string | Source,
-  options?: ParseOptions,
-): TypeNode {
-  const parser = new Parser(source, options);
-  parser.expectToken(TokenKind.SOF);
-  const type = parser.parseTypeReference();
-  parser.expectToken(TokenKind.EOF);
-  return type;
-}
-
-class Parser {
-  _options: ?ParseOptions;
-  _lexer: Lexer;
-
-  constructor(source: string | Source, options?: ParseOptions) {
-    const sourceObj = typeof source === 'string' ? new Source(source) : source;
-    devAssert(
-      sourceObj instanceof Source,
-      `Must provide Source. Received: ${inspect(sourceObj)}.`,
-    );
-
-    this._lexer = new Lexer(sourceObj);
-    this._options = options;
-  }
-
-  /**
-   * Converts a name lex token into a name parse node.
-   */
-  parseName(): NameNode {
-    const token = this.expectToken(TokenKind.NAME);
-    return {
-      kind: Kind.NAME,
-      value: ((token.value: any): string),
-      loc: this.loc(token),
-    };
-  }
-
-  // Implements the parsing rules in the Document section.
-
-  /**
-   * Document : Definition+
-   */
-  parseDocument(): DocumentNode {
-    const start = this._lexer.token;
-    return {
-      kind: Kind.DOCUMENT,
-      definitions: this.many(
-        TokenKind.SOF,
-        this.parseDefinition,
-        TokenKind.EOF,
-      ),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * Definition :
-   *   - ExecutableDefinition
-   *   - TypeSystemDefinition
-   *   - TypeSystemExtension
-   *
-   * ExecutableDefinition :
-   *   - OperationDefinition
-   *   - FragmentDefinition
-   */
-  parseDefinition(): DefinitionNode {
-    if (this.peek(TokenKind.NAME)) {
-      switch (this._lexer.token.value) {
-        case 'query':
-        case 'mutation':
-        case 'subscription':
-          return this.parseOperationDefinition();
-        case 'fragment':
-          return this.parseFragmentDefinition();
-        case 'schema':
-        case 'scalar':
-        case 'type':
-        case 'interface':
-        case 'union':
-        case 'enum':
-        case 'input':
-        case 'directive':
-          return this.parseTypeSystemDefinition();
-        case 'extend':
-          return this.parseTypeSystemExtension();
-      }
-    } else if (this.peek(TokenKind.BRACE_L)) {
-      return this.parseOperationDefinition();
-    } else if (this.peekDescription()) {
-      return this.parseTypeSystemDefinition();
-    }
-
-    throw this.unexpected();
-  }
-
-  // Implements the parsing rules in the Operations section.
-
-  /**
-   * OperationDefinition :
-   *  - SelectionSet
-   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet
-   */
-  parseOperationDefinition(): OperationDefinitionNode {
-    const start = this._lexer.token;
-    if (this.peek(TokenKind.BRACE_L)) {
-      return {
-        kind: Kind.OPERATION_DEFINITION,
-        operation: 'query',
-        name: undefined,
-        variableDefinitions: [],
-        directives: [],
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start),
-      };
-    }
-    const operation = this.parseOperationType();
-    let name;
-    if (this.peek(TokenKind.NAME)) {
-      name = this.parseName();
-    }
-    return {
-      kind: Kind.OPERATION_DEFINITION,
-      operation,
-      name,
-      variableDefinitions: this.parseVariableDefinitions(),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * OperationType : one of query mutation subscription
-   */
-  parseOperationType(): OperationTypeNode {
-    const operationToken = this.expectToken(TokenKind.NAME);
-    switch (operationToken.value) {
-      case 'query':
-        return 'query';
-      case 'mutation':
-        return 'mutation';
-      case 'subscription':
-        return 'subscription';
-    }
-
-    throw this.unexpected(operationToken);
-  }
-
-  /**
-   * VariableDefinitions : ( VariableDefinition+ )
-   */
-  parseVariableDefinitions(): Array<VariableDefinitionNode> {
-    return this.optionalMany(
-      TokenKind.PAREN_L,
-      this.parseVariableDefinition,
-      TokenKind.PAREN_R,
-    );
-  }
-
-  /**
-   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?
-   */
-  parseVariableDefinition(): VariableDefinitionNode {
-    const start = this._lexer.token;
-    return {
-      kind: Kind.VARIABLE_DEFINITION,
-      variable: this.parseVariable(),
-      type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),
-      defaultValue: this.expectOptionalToken(TokenKind.EQUALS)
-        ? this.parseValueLiteral(true)
-        : undefined,
-      directives: this.parseDirectives(true),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * Variable : $ Name
-   */
-  parseVariable(): VariableNode {
-    const start = this._lexer.token;
-    this.expectToken(TokenKind.DOLLAR);
-    return {
-      kind: Kind.VARIABLE,
-      name: this.parseName(),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * SelectionSet : { Selection+ }
-   */
-  parseSelectionSet(): SelectionSetNode {
-    const start = this._lexer.token;
-    return {
-      kind: Kind.SELECTION_SET,
-      selections: this.many(
-        TokenKind.BRACE_L,
-        this.parseSelection,
-        TokenKind.BRACE_R,
-      ),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * Selection :
-   *   - Field
-   *   - FragmentSpread
-   *   - InlineFragment
-   */
-  parseSelection(): SelectionNode {
-    return this.peek(TokenKind.SPREAD)
-      ? this.parseFragment()
-      : this.parseField();
-  }
-
-  /**
-   * Field : Alias? Name Arguments? Directives? SelectionSet?
-   *
-   * Alias : Name :
-   */
-  parseField(): FieldNode {
-    const start = this._lexer.token;
-
-    const nameOrAlias = this.parseName();
-    let alias;
-    let name;
-    if (this.expectOptionalToken(TokenKind.COLON)) {
-      alias = nameOrAlias;
-      name = this.parseName();
-    } else {
-      name = nameOrAlias;
-    }
-
-    return {
-      kind: Kind.FIELD,
-      alias,
-      name,
-      arguments: this.parseArguments(false),
-      directives: this.parseDirectives(false),
-      selectionSet: this.peek(TokenKind.BRACE_L)
-        ? this.parseSelectionSet()
-        : undefined,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * Arguments[Const] : ( Argument[?Const]+ )
-   */
-  parseArguments(isConst: boolean): Array<ArgumentNode> {
-    const item = isConst ? this.parseConstArgument : this.parseArgument;
-    return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);
-  }
-
-  /**
-   * Argument[Const] : Name : Value[?Const]
-   */
-  parseArgument(): ArgumentNode {
-    const start = this._lexer.token;
-    const name = this.parseName();
-
-    this.expectToken(TokenKind.COLON);
-    return {
-      kind: Kind.ARGUMENT,
-      name,
-      value: this.parseValueLiteral(false),
-      loc: this.loc(start),
-    };
-  }
-
-  parseConstArgument(): ArgumentNode {
-    const start = this._lexer.token;
-    return {
-      kind: Kind.ARGUMENT,
-      name: this.parseName(),
-      value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),
-      loc: this.loc(start),
-    };
-  }
-
-  // Implements the parsing rules in the Fragments section.
-
-  /**
-   * Corresponds to both FragmentSpread and InlineFragment in the spec.
-   *
-   * FragmentSpread : ... FragmentName Directives?
-   *
-   * InlineFragment : ... TypeCondition? Directives? SelectionSet
-   */
-  parseFragment(): FragmentSpreadNode | InlineFragmentNode {
-    const start = this._lexer.token;
-    this.expectToken(TokenKind.SPREAD);
-
-    const hasTypeCondition = this.expectOptionalKeyword('on');
-    if (!hasTypeCondition && this.peek(TokenKind.NAME)) {
-      return {
-        kind: Kind.FRAGMENT_SPREAD,
-        name: this.parseFragmentName(),
-        directives: this.parseDirectives(false),
-        loc: this.loc(start),
-      };
-    }
-    return {
-      kind: Kind.INLINE_FRAGMENT,
-      typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * FragmentDefinition :
-   *   - fragment FragmentName on TypeCondition Directives? SelectionSet
-   *
-   * TypeCondition : NamedType
-   */
-  parseFragmentDefinition(): FragmentDefinitionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('fragment');
-    // Experimental support for defining variables within fragments changes
-    // the grammar of FragmentDefinition:
-    //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet
-    if (this._options?.experimentalFragmentVariables === true) {
-      return {
-        kind: Kind.FRAGMENT_DEFINITION,
-        name: this.parseFragmentName(),
-        variableDefinitions: this.parseVariableDefinitions(),
-        typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-        directives: this.parseDirectives(false),
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start),
-      };
-    }
-    return {
-      kind: Kind.FRAGMENT_DEFINITION,
-      name: this.parseFragmentName(),
-      typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * FragmentName : Name but not `on`
-   */
-  parseFragmentName(): NameNode {
-    if (this._lexer.token.value === 'on') {
-      throw this.unexpected();
-    }
-    return this.parseName();
-  }
-
-  // Implements the parsing rules in the Values section.
-
-  /**
-   * Value[Const] :
-   *   - [~Const] Variable
-   *   - IntValue
-   *   - FloatValue
-   *   - StringValue
-   *   - BooleanValue
-   *   - NullValue
-   *   - EnumValue
-   *   - ListValue[?Const]
-   *   - ObjectValue[?Const]
-   *
-   * BooleanValue : one of `true` `false`
-   *
-   * NullValue : `null`
-   *
-   * EnumValue : Name but not `true`, `false` or `null`
-   */
-  parseValueLiteral(isConst: boolean): ValueNode {
-    const token = this._lexer.token;
-    switch (token.kind) {
-      case TokenKind.BRACKET_L:
-        return this.parseList(isConst);
-      case TokenKind.BRACE_L:
-        return this.parseObject(isConst);
-      case TokenKind.INT:
-        this._lexer.advance();
-        return {
-          kind: Kind.INT,
-          value: ((token.value: any): string),
-          loc: this.loc(token),
-        };
-      case TokenKind.FLOAT:
-        this._lexer.advance();
-        return {
-          kind: Kind.FLOAT,
-          value: ((token.value: any): string),
-          loc: this.loc(token),
-        };
-      case TokenKind.STRING:
-      case TokenKind.BLOCK_STRING:
-        return this.parseStringLiteral();
-      case TokenKind.NAME:
-        this._lexer.advance();
-        switch (token.value) {
-          case 'true':
-            return { kind: Kind.BOOLEAN, value: true, loc: this.loc(token) };
-          case 'false':
-            return { kind: Kind.BOOLEAN, value: false, loc: this.loc(token) };
-          case 'null':
-            return { kind: Kind.NULL, loc: this.loc(token) };
-          default:
-            return {
-              kind: Kind.ENUM,
-              value: ((token.value: any): string),
-              loc: this.loc(token),
-            };
-        }
-      case TokenKind.DOLLAR:
-        if (!isConst) {
-          return this.parseVariable();
-        }
-        break;
-    }
-    throw this.unexpected();
-  }
-
-  parseStringLiteral(): StringValueNode {
-    const token = this._lexer.token;
-    this._lexer.advance();
-    return {
-      kind: Kind.STRING,
-      value: ((token.value: any): string),
-      block: token.kind === TokenKind.BLOCK_STRING,
-      loc: this.loc(token),
-    };
-  }
-
-  /**
-   * ListValue[Const] :
-   *   - [ ]
-   *   - [ Value[?Const]+ ]
-   */
-  parseList(isConst: boolean): ListValueNode {
-    const start = this._lexer.token;
-    const item = () => this.parseValueLiteral(isConst);
-    return {
-      kind: Kind.LIST,
-      values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ObjectValue[Const] :
-   *   - { }
-   *   - { ObjectField[?Const]+ }
-   */
-  parseObject(isConst: boolean): ObjectValueNode {
-    const start = this._lexer.token;
-    const item = () => this.parseObjectField(isConst);
-    return {
-      kind: Kind.OBJECT,
-      fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ObjectField[Const] : Name : Value[?Const]
-   */
-  parseObjectField(isConst: boolean): ObjectFieldNode {
-    const start = this._lexer.token;
-    const name = this.parseName();
-    this.expectToken(TokenKind.COLON);
-
-    return {
-      kind: Kind.OBJECT_FIELD,
-      name,
-      value: this.parseValueLiteral(isConst),
-      loc: this.loc(start),
-    };
-  }
-
-  // Implements the parsing rules in the Directives section.
-
-  /**
-   * Directives[Const] : Directive[?Const]+
-   */
-  parseDirectives(isConst: boolean): Array<DirectiveNode> {
-    const directives = [];
-    while (this.peek(TokenKind.AT)) {
-      directives.push(this.parseDirective(isConst));
-    }
-    return directives;
-  }
-
-  /**
-   * Directive[Const] : @ Name Arguments[?Const]?
-   */
-  parseDirective(isConst: boolean): DirectiveNode {
-    const start = this._lexer.token;
-    this.expectToken(TokenKind.AT);
-    return {
-      kind: Kind.DIRECTIVE,
-      name: this.parseName(),
-      arguments: this.parseArguments(isConst),
-      loc: this.loc(start),
-    };
-  }
-
-  // Implements the parsing rules in the Types section.
-
-  /**
-   * Type :
-   *   - NamedType
-   *   - ListType
-   *   - NonNullType
-   */
-  parseTypeReference(): TypeNode {
-    const start = this._lexer.token;
-    let type;
-    if (this.expectOptionalToken(TokenKind.BRACKET_L)) {
-      type = this.parseTypeReference();
-      this.expectToken(TokenKind.BRACKET_R);
-      type = {
-        kind: Kind.LIST_TYPE,
-        type,
-        loc: this.loc(start),
-      };
-    } else {
-      type = this.parseNamedType();
-    }
-
-    if (this.expectOptionalToken(TokenKind.BANG)) {
-      return {
-        kind: Kind.NON_NULL_TYPE,
-        type,
-        loc: this.loc(start),
-      };
-    }
-    return type;
-  }
-
-  /**
-   * NamedType : Name
-   */
-  parseNamedType(): NamedTypeNode {
-    const start = this._lexer.token;
-    return {
-      kind: Kind.NAMED_TYPE,
-      name: this.parseName(),
-      loc: this.loc(start),
-    };
-  }
-
-  // Implements the parsing rules in the Type Definition section.
-
-  /**
-   * TypeSystemDefinition :
-   *   - SchemaDefinition
-   *   - TypeDefinition
-   *   - DirectiveDefinition
-   *
-   * TypeDefinition :
-   *   - ScalarTypeDefinition
-   *   - ObjectTypeDefinition
-   *   - InterfaceTypeDefinition
-   *   - UnionTypeDefinition
-   *   - EnumTypeDefinition
-   *   - InputObjectTypeDefinition
-   */
-  parseTypeSystemDefinition(): TypeSystemDefinitionNode {
-    // Many definitions begin with a description and require a lookahead.
-    const keywordToken = this.peekDescription()
-      ? this._lexer.lookahead()
-      : this._lexer.token;
-
-    if (keywordToken.kind === TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaDefinition();
-        case 'scalar':
-          return this.parseScalarTypeDefinition();
-        case 'type':
-          return this.parseObjectTypeDefinition();
-        case 'interface':
-          return this.parseInterfaceTypeDefinition();
-        case 'union':
-          return this.parseUnionTypeDefinition();
-        case 'enum':
-          return this.parseEnumTypeDefinition();
-        case 'input':
-          return this.parseInputObjectTypeDefinition();
-        case 'directive':
-          return this.parseDirectiveDefinition();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  }
-
-  peekDescription(): boolean {
-    return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);
-  }
-
-  /**
-   * Description : StringValue
-   */
-  parseDescription(): void | StringValueNode {
-    if (this.peekDescription()) {
-      return this.parseStringLiteral();
-    }
-  }
-
-  /**
-   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }
-   */
-  parseSchemaDefinition(): SchemaDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('schema');
-    const directives = this.parseDirectives(true);
-    const operationTypes = this.many(
-      TokenKind.BRACE_L,
-      this.parseOperationTypeDefinition,
-      TokenKind.BRACE_R,
-    );
-    return {
-      kind: Kind.SCHEMA_DEFINITION,
-      description,
-      directives,
-      operationTypes,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * OperationTypeDefinition : OperationType : NamedType
-   */
-  parseOperationTypeDefinition(): OperationTypeDefinitionNode {
-    const start = this._lexer.token;
-    const operation = this.parseOperationType();
-    this.expectToken(TokenKind.COLON);
-    const type = this.parseNamedType();
-    return {
-      kind: Kind.OPERATION_TYPE_DEFINITION,
-      operation,
-      type,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?
-   */
-  parseScalarTypeDefinition(): ScalarTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('scalar');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    return {
-      kind: Kind.SCALAR_TYPE_DEFINITION,
-      description,
-      name,
-      directives,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ObjectTypeDefinition :
-   *   Description?
-   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?
-   */
-  parseObjectTypeDefinition(): ObjectTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('type');
-    const name = this.parseName();
-    const interfaces = this.parseImplementsInterfaces();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseFieldsDefinition();
-    return {
-      kind: Kind.OBJECT_TYPE_DEFINITION,
-      description,
-      name,
-      interfaces,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ImplementsInterfaces :
-   *   - implements `&`? NamedType
-   *   - ImplementsInterfaces & NamedType
-   */
-  parseImplementsInterfaces(): Array<NamedTypeNode> {
-    const types = [];
-    if (this.expectOptionalKeyword('implements')) {
-      // Optional leading ampersand
-      this.expectOptionalToken(TokenKind.AMP);
-      do {
-        types.push(this.parseNamedType());
-      } while (
-        this.expectOptionalToken(TokenKind.AMP) ||
-        // Legacy support for the SDL?
-        (this._options?.allowLegacySDLImplementsInterfaces === true &&
-          this.peek(TokenKind.NAME))
-      );
-    }
-    return types;
-  }
-
-  /**
-   * FieldsDefinition : { FieldDefinition+ }
-   */
-  parseFieldsDefinition(): Array<FieldDefinitionNode> {
-    // Legacy support for the SDL?
-    if (
-      this._options?.allowLegacySDLEmptyFields === true &&
-      this.peek(TokenKind.BRACE_L) &&
-      this._lexer.lookahead().kind === TokenKind.BRACE_R
-    ) {
-      this._lexer.advance();
-      this._lexer.advance();
-      return [];
-    }
-    return this.optionalMany(
-      TokenKind.BRACE_L,
-      this.parseFieldDefinition,
-      TokenKind.BRACE_R,
-    );
-  }
-
-  /**
-   * FieldDefinition :
-   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?
-   */
-  parseFieldDefinition(): FieldDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    const name = this.parseName();
-    const args = this.parseArgumentDefs();
-    this.expectToken(TokenKind.COLON);
-    const type = this.parseTypeReference();
-    const directives = this.parseDirectives(true);
-    return {
-      kind: Kind.FIELD_DEFINITION,
-      description,
-      name,
-      arguments: args,
-      type,
-      directives,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ArgumentsDefinition : ( InputValueDefinition+ )
-   */
-  parseArgumentDefs(): Array<InputValueDefinitionNode> {
-    return this.optionalMany(
-      TokenKind.PAREN_L,
-      this.parseInputValueDef,
-      TokenKind.PAREN_R,
-    );
-  }
-
-  /**
-   * InputValueDefinition :
-   *   - Description? Name : Type DefaultValue? Directives[Const]?
-   */
-  parseInputValueDef(): InputValueDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    const name = this.parseName();
-    this.expectToken(TokenKind.COLON);
-    const type = this.parseTypeReference();
-    let defaultValue;
-    if (this.expectOptionalToken(TokenKind.EQUALS)) {
-      defaultValue = this.parseValueLiteral(true);
-    }
-    const directives = this.parseDirectives(true);
-    return {
-      kind: Kind.INPUT_VALUE_DEFINITION,
-      description,
-      name,
-      type,
-      defaultValue,
-      directives,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * InterfaceTypeDefinition :
-   *   - Description? interface Name Directives[Const]? FieldsDefinition?
-   */
-  parseInterfaceTypeDefinition(): InterfaceTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('interface');
-    const name = this.parseName();
-    const interfaces = this.parseImplementsInterfaces();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseFieldsDefinition();
-    return {
-      kind: Kind.INTERFACE_TYPE_DEFINITION,
-      description,
-      name,
-      interfaces,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * UnionTypeDefinition :
-   *   - Description? union Name Directives[Const]? UnionMemberTypes?
-   */
-  parseUnionTypeDefinition(): UnionTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('union');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const types = this.parseUnionMemberTypes();
-    return {
-      kind: Kind.UNION_TYPE_DEFINITION,
-      description,
-      name,
-      directives,
-      types,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * UnionMemberTypes :
-   *   - = `|`? NamedType
-   *   - UnionMemberTypes | NamedType
-   */
-  parseUnionMemberTypes(): Array<NamedTypeNode> {
-    const types = [];
-    if (this.expectOptionalToken(TokenKind.EQUALS)) {
-      // Optional leading pipe
-      this.expectOptionalToken(TokenKind.PIPE);
-      do {
-        types.push(this.parseNamedType());
-      } while (this.expectOptionalToken(TokenKind.PIPE));
-    }
-    return types;
-  }
-
-  /**
-   * EnumTypeDefinition :
-   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?
-   */
-  parseEnumTypeDefinition(): EnumTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('enum');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const values = this.parseEnumValuesDefinition();
-    return {
-      kind: Kind.ENUM_TYPE_DEFINITION,
-      description,
-      name,
-      directives,
-      values,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * EnumValuesDefinition : { EnumValueDefinition+ }
-   */
-  parseEnumValuesDefinition(): Array<EnumValueDefinitionNode> {
-    return this.optionalMany(
-      TokenKind.BRACE_L,
-      this.parseEnumValueDefinition,
-      TokenKind.BRACE_R,
-    );
-  }
-
-  /**
-   * EnumValueDefinition : Description? EnumValue Directives[Const]?
-   *
-   * EnumValue : Name
-   */
-  parseEnumValueDefinition(): EnumValueDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    return {
-      kind: Kind.ENUM_VALUE_DEFINITION,
-      description,
-      name,
-      directives,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * InputObjectTypeDefinition :
-   *   - Description? input Name Directives[Const]? InputFieldsDefinition?
-   */
-  parseInputObjectTypeDefinition(): InputObjectTypeDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('input');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseInputFieldsDefinition();
-    return {
-      kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,
-      description,
-      name,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * InputFieldsDefinition : { InputValueDefinition+ }
-   */
-  parseInputFieldsDefinition(): Array<InputValueDefinitionNode> {
-    return this.optionalMany(
-      TokenKind.BRACE_L,
-      this.parseInputValueDef,
-      TokenKind.BRACE_R,
-    );
-  }
-
-  /**
-   * TypeSystemExtension :
-   *   - SchemaExtension
-   *   - TypeExtension
-   *
-   * TypeExtension :
-   *   - ScalarTypeExtension
-   *   - ObjectTypeExtension
-   *   - InterfaceTypeExtension
-   *   - UnionTypeExtension
-   *   - EnumTypeExtension
-   *   - InputObjectTypeDefinition
-   */
-  parseTypeSystemExtension(): TypeSystemExtensionNode {
-    const keywordToken = this._lexer.lookahead();
-
-    if (keywordToken.kind === TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaExtension();
-        case 'scalar':
-          return this.parseScalarTypeExtension();
-        case 'type':
-          return this.parseObjectTypeExtension();
-        case 'interface':
-          return this.parseInterfaceTypeExtension();
-        case 'union':
-          return this.parseUnionTypeExtension();
-        case 'enum':
-          return this.parseEnumTypeExtension();
-        case 'input':
-          return this.parseInputObjectTypeExtension();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  }
-
-  /**
-   * SchemaExtension :
-   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }
-   *  - extend schema Directives[Const]
-   */
-  parseSchemaExtension(): SchemaExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('schema');
-    const directives = this.parseDirectives(true);
-    const operationTypes = this.optionalMany(
-      TokenKind.BRACE_L,
-      this.parseOperationTypeDefinition,
-      TokenKind.BRACE_R,
-    );
-    if (directives.length === 0 && operationTypes.length === 0) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.SCHEMA_EXTENSION,
-      directives,
-      operationTypes,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ScalarTypeExtension :
-   *   - extend scalar Name Directives[Const]
-   */
-  parseScalarTypeExtension(): ScalarTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('scalar');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    if (directives.length === 0) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.SCALAR_TYPE_EXTENSION,
-      name,
-      directives,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * ObjectTypeExtension :
-   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend type Name ImplementsInterfaces? Directives[Const]
-   *  - extend type Name ImplementsInterfaces
-   */
-  parseObjectTypeExtension(): ObjectTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('type');
-    const name = this.parseName();
-    const interfaces = this.parseImplementsInterfaces();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseFieldsDefinition();
-    if (
-      interfaces.length === 0 &&
-      directives.length === 0 &&
-      fields.length === 0
-    ) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.OBJECT_TYPE_EXTENSION,
-      name,
-      interfaces,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * InterfaceTypeExtension :
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]
-   *  - extend interface Name ImplementsInterfaces
-   */
-  parseInterfaceTypeExtension(): InterfaceTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('interface');
-    const name = this.parseName();
-    const interfaces = this.parseImplementsInterfaces();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseFieldsDefinition();
-    if (
-      interfaces.length === 0 &&
-      directives.length === 0 &&
-      fields.length === 0
-    ) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.INTERFACE_TYPE_EXTENSION,
-      name,
-      interfaces,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * UnionTypeExtension :
-   *   - extend union Name Directives[Const]? UnionMemberTypes
-   *   - extend union Name Directives[Const]
-   */
-  parseUnionTypeExtension(): UnionTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('union');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const types = this.parseUnionMemberTypes();
-    if (directives.length === 0 && types.length === 0) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.UNION_TYPE_EXTENSION,
-      name,
-      directives,
-      types,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * EnumTypeExtension :
-   *   - extend enum Name Directives[Const]? EnumValuesDefinition
-   *   - extend enum Name Directives[Const]
-   */
-  parseEnumTypeExtension(): EnumTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('enum');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const values = this.parseEnumValuesDefinition();
-    if (directives.length === 0 && values.length === 0) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.ENUM_TYPE_EXTENSION,
-      name,
-      directives,
-      values,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * InputObjectTypeExtension :
-   *   - extend input Name Directives[Const]? InputFieldsDefinition
-   *   - extend input Name Directives[Const]
-   */
-  parseInputObjectTypeExtension(): InputObjectTypeExtensionNode {
-    const start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('input');
-    const name = this.parseName();
-    const directives = this.parseDirectives(true);
-    const fields = this.parseInputFieldsDefinition();
-    if (directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-    return {
-      kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,
-      name,
-      directives,
-      fields,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * DirectiveDefinition :
-   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations
-   */
-  parseDirectiveDefinition(): DirectiveDefinitionNode {
-    const start = this._lexer.token;
-    const description = this.parseDescription();
-    this.expectKeyword('directive');
-    this.expectToken(TokenKind.AT);
-    const name = this.parseName();
-    const args = this.parseArgumentDefs();
-    const repeatable = this.expectOptionalKeyword('repeatable');
-    this.expectKeyword('on');
-    const locations = this.parseDirectiveLocations();
-    return {
-      kind: Kind.DIRECTIVE_DEFINITION,
-      description,
-      name,
-      arguments: args,
-      repeatable,
-      locations,
-      loc: this.loc(start),
-    };
-  }
-
-  /**
-   * DirectiveLocations :
-   *   - `|`? DirectiveLocation
-   *   - DirectiveLocations | DirectiveLocation
-   */
-  parseDirectiveLocations(): Array<NameNode> {
-    // Optional leading pipe
-    this.expectOptionalToken(TokenKind.PIPE);
-    const locations = [];
-    do {
-      locations.push(this.parseDirectiveLocation());
-    } while (this.expectOptionalToken(TokenKind.PIPE));
-    return locations;
-  }
-
-  /*
-   * DirectiveLocation :
-   *   - ExecutableDirectiveLocation
-   *   - TypeSystemDirectiveLocation
-   *
-   * ExecutableDirectiveLocation : one of
-   *   `QUERY`
-   *   `MUTATION`
-   *   `SUBSCRIPTION`
-   *   `FIELD`
-   *   `FRAGMENT_DEFINITION`
-   *   `FRAGMENT_SPREAD`
-   *   `INLINE_FRAGMENT`
-   *
-   * TypeSystemDirectiveLocation : one of
-   *   `SCHEMA`
-   *   `SCALAR`
-   *   `OBJECT`
-   *   `FIELD_DEFINITION`
-   *   `ARGUMENT_DEFINITION`
-   *   `INTERFACE`
-   *   `UNION`
-   *   `ENUM`
-   *   `ENUM_VALUE`
-   *   `INPUT_OBJECT`
-   *   `INPUT_FIELD_DEFINITION`
-   */
-  parseDirectiveLocation(): NameNode {
-    const start = this._lexer.token;
-    const name = this.parseName();
-    if (DirectiveLocation[name.value] !== undefined) {
-      return name;
-    }
-    throw this.unexpected(start);
-  }
-
-  // Core parsing utility functions
-
-  /**
-   * Returns a location object, used to identify the place in
-   * the source that created a given parsed object.
-   */
-  loc(startToken: Token): Location | void {
-    if (this._options?.noLocation !== true) {
-      return new Location(
-        startToken,
-        this._lexer.lastToken,
-        this._lexer.source,
-      );
-    }
-  }
-
-  /**
-   * Determines if the next token is of a given kind
-   */
-  peek(kind: TokenKindEnum): boolean {
-    return this._lexer.token.kind === kind;
-  }
-
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and throw an error.
-   */
-  expectToken(kind: TokenKindEnum): Token {
-    const token = this._lexer.token;
-    if (token.kind === kind) {
-      this._lexer.advance();
-      return token;
-    }
-
-    throw syntaxError(
-      this._lexer.source,
-      token.start,
-      `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,
-    );
-  }
-
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and return undefined.
-   */
-  expectOptionalToken(kind: TokenKindEnum): ?Token {
-    const token = this._lexer.token;
-    if (token.kind === kind) {
-      this._lexer.advance();
-      return token;
-    }
-    return undefined;
-  }
-
-  /**
-   * If the next token is a given keyword, advance the lexer.
-   * Otherwise, do not change the parser state and throw an error.
-   */
-  expectKeyword(value: string) {
-    const token = this._lexer.token;
-    if (token.kind === TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-    } else {
-      throw syntaxError(
-        this._lexer.source,
-        token.start,
-        `Expected "${value}", found ${getTokenDesc(token)}.`,
-      );
-    }
-  }
-
-  /**
-   * If the next token is a given keyword, return "true" after advancing
-   * the lexer. Otherwise, do not change the parser state and return "false".
-   */
-  expectOptionalKeyword(value: string): boolean {
-    const token = this._lexer.token;
-    if (token.kind === TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-      return true;
-    }
-    return false;
-  }
-
-  /**
-   * Helper function for creating an error when an unexpected lexed token
-   * is encountered.
-   */
-  unexpected(atToken?: ?Token): GraphQLError {
-    const token = atToken ?? this._lexer.token;
-    return syntaxError(
-      this._lexer.source,
-      token.start,
-      `Unexpected ${getTokenDesc(token)}.`,
-    );
-  }
-
-  /**
-   * Returns a possibly empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  any<T>(
-    openKind: TokenKindEnum,
-    parseFn: () => T,
-    closeKind: TokenKindEnum,
-  ): Array<T> {
-    this.expectToken(openKind);
-    const nodes = [];
-    while (!this.expectOptionalToken(closeKind)) {
-      nodes.push(parseFn.call(this));
-    }
-    return nodes;
-  }
-
-  /**
-   * Returns a list of parse nodes, determined by the parseFn.
-   * It can be empty only if open token is missing otherwise it will always
-   * return non-empty list that begins with a lex token of openKind and ends
-   * with a lex token of closeKind. Advances the parser to the next lex token
-   * after the closing token.
-   */
-  optionalMany<T>(
-    openKind: TokenKindEnum,
-    parseFn: () => T,
-    closeKind: TokenKindEnum,
-  ): Array<T> {
-    if (this.expectOptionalToken(openKind)) {
-      const nodes = [];
-      do {
-        nodes.push(parseFn.call(this));
-      } while (!this.expectOptionalToken(closeKind));
-      return nodes;
-    }
-    return [];
-  }
-
-  /**
-   * Returns a non-empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  many<T>(
-    openKind: TokenKindEnum,
-    parseFn: () => T,
-    closeKind: TokenKindEnum,
-  ): Array<T> {
-    this.expectToken(openKind);
-    const nodes = [];
-    do {
-      nodes.push(parseFn.call(this));
-    } while (!this.expectOptionalToken(closeKind));
-    return nodes;
-  }
-}
-
-/**
- * A helper function to describe a token as a string for debugging
- */
-function getTokenDesc(token: Token): string {
-  const value = token.value;
-  return getTokenKindDesc(token.kind) + (value != null ? ` "${value}"` : '');
-}
-
-/**
- * A helper function to describe a token kind as a string for debugging
- */
-function getTokenKindDesc(kind: TokenKindEnum): string {
-  return isPunctuatorTokenKind(kind) ? `"${kind}"` : kind;
-}
diff --git a/node_modules/graphql/language/parser.mjs b/node_modules/graphql/language/parser.mjs
deleted file mode 100644
index 4d97983..0000000
--- a/node_modules/graphql/language/parser.mjs
+++ /dev/null
@@ -1,1545 +0,0 @@
-import inspect from "../jsutils/inspect.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import { syntaxError } from "../error/syntaxError.mjs";
-import { Kind } from "./kinds.mjs";
-import { Source } from "./source.mjs";
-import { DirectiveLocation } from "./directiveLocation.mjs";
-import { TokenKind } from "./tokenKind.mjs";
-import { Lexer, isPunctuatorTokenKind } from "./lexer.mjs";
-import { Location } from "./ast.mjs";
-/**
- * Configuration options to control parser behavior
- */
-
-/**
- * Given a GraphQL source, parses it into a Document.
- * Throws GraphQLError if a syntax error is encountered.
- */
-export function parse(source, options) {
-  var parser = new Parser(source, options);
-  return parser.parseDocument();
-}
-/**
- * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for
- * that value.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Values directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: valueFromAST().
- */
-
-export function parseValue(source, options) {
-  var parser = new Parser(source, options);
-  parser.expectToken(TokenKind.SOF);
-  var value = parser.parseValueLiteral(false);
-  parser.expectToken(TokenKind.EOF);
-  return value;
-}
-/**
- * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for
- * that type.
- * Throws GraphQLError if a syntax error is encountered.
- *
- * This is useful within tools that operate upon GraphQL Types directly and
- * in isolation of complete GraphQL documents.
- *
- * Consider providing the results to the utility function: typeFromAST().
- */
-
-export function parseType(source, options) {
-  var parser = new Parser(source, options);
-  parser.expectToken(TokenKind.SOF);
-  var type = parser.parseTypeReference();
-  parser.expectToken(TokenKind.EOF);
-  return type;
-}
-
-var Parser =
-/*#__PURE__*/
-function () {
-  function Parser(source, options) {
-    var sourceObj = typeof source === 'string' ? new Source(source) : source;
-    sourceObj instanceof Source || devAssert(0, "Must provide Source. Received: ".concat(inspect(sourceObj), "."));
-    this._lexer = new Lexer(sourceObj);
-    this._options = options;
-  }
-  /**
-   * Converts a name lex token into a name parse node.
-   */
-
-
-  var _proto = Parser.prototype;
-
-  _proto.parseName = function parseName() {
-    var token = this.expectToken(TokenKind.NAME);
-    return {
-      kind: Kind.NAME,
-      value: token.value,
-      loc: this.loc(token)
-    };
-  } // Implements the parsing rules in the Document section.
-
-  /**
-   * Document : Definition+
-   */
-  ;
-
-  _proto.parseDocument = function parseDocument() {
-    var start = this._lexer.token;
-    return {
-      kind: Kind.DOCUMENT,
-      definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Definition :
-   *   - ExecutableDefinition
-   *   - TypeSystemDefinition
-   *   - TypeSystemExtension
-   *
-   * ExecutableDefinition :
-   *   - OperationDefinition
-   *   - FragmentDefinition
-   */
-  ;
-
-  _proto.parseDefinition = function parseDefinition() {
-    if (this.peek(TokenKind.NAME)) {
-      switch (this._lexer.token.value) {
-        case 'query':
-        case 'mutation':
-        case 'subscription':
-          return this.parseOperationDefinition();
-
-        case 'fragment':
-          return this.parseFragmentDefinition();
-
-        case 'schema':
-        case 'scalar':
-        case 'type':
-        case 'interface':
-        case 'union':
-        case 'enum':
-        case 'input':
-        case 'directive':
-          return this.parseTypeSystemDefinition();
-
-        case 'extend':
-          return this.parseTypeSystemExtension();
-      }
-    } else if (this.peek(TokenKind.BRACE_L)) {
-      return this.parseOperationDefinition();
-    } else if (this.peekDescription()) {
-      return this.parseTypeSystemDefinition();
-    }
-
-    throw this.unexpected();
-  } // Implements the parsing rules in the Operations section.
-
-  /**
-   * OperationDefinition :
-   *  - SelectionSet
-   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet
-   */
-  ;
-
-  _proto.parseOperationDefinition = function parseOperationDefinition() {
-    var start = this._lexer.token;
-
-    if (this.peek(TokenKind.BRACE_L)) {
-      return {
-        kind: Kind.OPERATION_DEFINITION,
-        operation: 'query',
-        name: undefined,
-        variableDefinitions: [],
-        directives: [],
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start)
-      };
-    }
-
-    var operation = this.parseOperationType();
-    var name;
-
-    if (this.peek(TokenKind.NAME)) {
-      name = this.parseName();
-    }
-
-    return {
-      kind: Kind.OPERATION_DEFINITION,
-      operation: operation,
-      name: name,
-      variableDefinitions: this.parseVariableDefinitions(),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * OperationType : one of query mutation subscription
-   */
-  ;
-
-  _proto.parseOperationType = function parseOperationType() {
-    var operationToken = this.expectToken(TokenKind.NAME);
-
-    switch (operationToken.value) {
-      case 'query':
-        return 'query';
-
-      case 'mutation':
-        return 'mutation';
-
-      case 'subscription':
-        return 'subscription';
-    }
-
-    throw this.unexpected(operationToken);
-  }
-  /**
-   * VariableDefinitions : ( VariableDefinition+ )
-   */
-  ;
-
-  _proto.parseVariableDefinitions = function parseVariableDefinitions() {
-    return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);
-  }
-  /**
-   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?
-   */
-  ;
-
-  _proto.parseVariableDefinition = function parseVariableDefinition() {
-    var start = this._lexer.token;
-    return {
-      kind: Kind.VARIABLE_DEFINITION,
-      variable: this.parseVariable(),
-      type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),
-      defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,
-      directives: this.parseDirectives(true),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Variable : $ Name
-   */
-  ;
-
-  _proto.parseVariable = function parseVariable() {
-    var start = this._lexer.token;
-    this.expectToken(TokenKind.DOLLAR);
-    return {
-      kind: Kind.VARIABLE,
-      name: this.parseName(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * SelectionSet : { Selection+ }
-   */
-  ;
-
-  _proto.parseSelectionSet = function parseSelectionSet() {
-    var start = this._lexer.token;
-    return {
-      kind: Kind.SELECTION_SET,
-      selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Selection :
-   *   - Field
-   *   - FragmentSpread
-   *   - InlineFragment
-   */
-  ;
-
-  _proto.parseSelection = function parseSelection() {
-    return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();
-  }
-  /**
-   * Field : Alias? Name Arguments? Directives? SelectionSet?
-   *
-   * Alias : Name :
-   */
-  ;
-
-  _proto.parseField = function parseField() {
-    var start = this._lexer.token;
-    var nameOrAlias = this.parseName();
-    var alias;
-    var name;
-
-    if (this.expectOptionalToken(TokenKind.COLON)) {
-      alias = nameOrAlias;
-      name = this.parseName();
-    } else {
-      name = nameOrAlias;
-    }
-
-    return {
-      kind: Kind.FIELD,
-      alias: alias,
-      name: name,
-      arguments: this.parseArguments(false),
-      directives: this.parseDirectives(false),
-      selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * Arguments[Const] : ( Argument[?Const]+ )
-   */
-  ;
-
-  _proto.parseArguments = function parseArguments(isConst) {
-    var item = isConst ? this.parseConstArgument : this.parseArgument;
-    return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);
-  }
-  /**
-   * Argument[Const] : Name : Value[?Const]
-   */
-  ;
-
-  _proto.parseArgument = function parseArgument() {
-    var start = this._lexer.token;
-    var name = this.parseName();
-    this.expectToken(TokenKind.COLON);
-    return {
-      kind: Kind.ARGUMENT,
-      name: name,
-      value: this.parseValueLiteral(false),
-      loc: this.loc(start)
-    };
-  };
-
-  _proto.parseConstArgument = function parseConstArgument() {
-    var start = this._lexer.token;
-    return {
-      kind: Kind.ARGUMENT,
-      name: this.parseName(),
-      value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Fragments section.
-
-  /**
-   * Corresponds to both FragmentSpread and InlineFragment in the spec.
-   *
-   * FragmentSpread : ... FragmentName Directives?
-   *
-   * InlineFragment : ... TypeCondition? Directives? SelectionSet
-   */
-  ;
-
-  _proto.parseFragment = function parseFragment() {
-    var start = this._lexer.token;
-    this.expectToken(TokenKind.SPREAD);
-    var hasTypeCondition = this.expectOptionalKeyword('on');
-
-    if (!hasTypeCondition && this.peek(TokenKind.NAME)) {
-      return {
-        kind: Kind.FRAGMENT_SPREAD,
-        name: this.parseFragmentName(),
-        directives: this.parseDirectives(false),
-        loc: this.loc(start)
-      };
-    }
-
-    return {
-      kind: Kind.INLINE_FRAGMENT,
-      typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * FragmentDefinition :
-   *   - fragment FragmentName on TypeCondition Directives? SelectionSet
-   *
-   * TypeCondition : NamedType
-   */
-  ;
-
-  _proto.parseFragmentDefinition = function parseFragmentDefinition() {
-    var _this$_options;
-
-    var start = this._lexer.token;
-    this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes
-    // the grammar of FragmentDefinition:
-    //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet
-
-    if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {
-      return {
-        kind: Kind.FRAGMENT_DEFINITION,
-        name: this.parseFragmentName(),
-        variableDefinitions: this.parseVariableDefinitions(),
-        typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-        directives: this.parseDirectives(false),
-        selectionSet: this.parseSelectionSet(),
-        loc: this.loc(start)
-      };
-    }
-
-    return {
-      kind: Kind.FRAGMENT_DEFINITION,
-      name: this.parseFragmentName(),
-      typeCondition: (this.expectKeyword('on'), this.parseNamedType()),
-      directives: this.parseDirectives(false),
-      selectionSet: this.parseSelectionSet(),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * FragmentName : Name but not `on`
-   */
-  ;
-
-  _proto.parseFragmentName = function parseFragmentName() {
-    if (this._lexer.token.value === 'on') {
-      throw this.unexpected();
-    }
-
-    return this.parseName();
-  } // Implements the parsing rules in the Values section.
-
-  /**
-   * Value[Const] :
-   *   - [~Const] Variable
-   *   - IntValue
-   *   - FloatValue
-   *   - StringValue
-   *   - BooleanValue
-   *   - NullValue
-   *   - EnumValue
-   *   - ListValue[?Const]
-   *   - ObjectValue[?Const]
-   *
-   * BooleanValue : one of `true` `false`
-   *
-   * NullValue : `null`
-   *
-   * EnumValue : Name but not `true`, `false` or `null`
-   */
-  ;
-
-  _proto.parseValueLiteral = function parseValueLiteral(isConst) {
-    var token = this._lexer.token;
-
-    switch (token.kind) {
-      case TokenKind.BRACKET_L:
-        return this.parseList(isConst);
-
-      case TokenKind.BRACE_L:
-        return this.parseObject(isConst);
-
-      case TokenKind.INT:
-        this._lexer.advance();
-
-        return {
-          kind: Kind.INT,
-          value: token.value,
-          loc: this.loc(token)
-        };
-
-      case TokenKind.FLOAT:
-        this._lexer.advance();
-
-        return {
-          kind: Kind.FLOAT,
-          value: token.value,
-          loc: this.loc(token)
-        };
-
-      case TokenKind.STRING:
-      case TokenKind.BLOCK_STRING:
-        return this.parseStringLiteral();
-
-      case TokenKind.NAME:
-        this._lexer.advance();
-
-        switch (token.value) {
-          case 'true':
-            return {
-              kind: Kind.BOOLEAN,
-              value: true,
-              loc: this.loc(token)
-            };
-
-          case 'false':
-            return {
-              kind: Kind.BOOLEAN,
-              value: false,
-              loc: this.loc(token)
-            };
-
-          case 'null':
-            return {
-              kind: Kind.NULL,
-              loc: this.loc(token)
-            };
-
-          default:
-            return {
-              kind: Kind.ENUM,
-              value: token.value,
-              loc: this.loc(token)
-            };
-        }
-
-      case TokenKind.DOLLAR:
-        if (!isConst) {
-          return this.parseVariable();
-        }
-
-        break;
-    }
-
-    throw this.unexpected();
-  };
-
-  _proto.parseStringLiteral = function parseStringLiteral() {
-    var token = this._lexer.token;
-
-    this._lexer.advance();
-
-    return {
-      kind: Kind.STRING,
-      value: token.value,
-      block: token.kind === TokenKind.BLOCK_STRING,
-      loc: this.loc(token)
-    };
-  }
-  /**
-   * ListValue[Const] :
-   *   - [ ]
-   *   - [ Value[?Const]+ ]
-   */
-  ;
-
-  _proto.parseList = function parseList(isConst) {
-    var _this = this;
-
-    var start = this._lexer.token;
-
-    var item = function item() {
-      return _this.parseValueLiteral(isConst);
-    };
-
-    return {
-      kind: Kind.LIST,
-      values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectValue[Const] :
-   *   - { }
-   *   - { ObjectField[?Const]+ }
-   */
-  ;
-
-  _proto.parseObject = function parseObject(isConst) {
-    var _this2 = this;
-
-    var start = this._lexer.token;
-
-    var item = function item() {
-      return _this2.parseObjectField(isConst);
-    };
-
-    return {
-      kind: Kind.OBJECT,
-      fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectField[Const] : Name : Value[?Const]
-   */
-  ;
-
-  _proto.parseObjectField = function parseObjectField(isConst) {
-    var start = this._lexer.token;
-    var name = this.parseName();
-    this.expectToken(TokenKind.COLON);
-    return {
-      kind: Kind.OBJECT_FIELD,
-      name: name,
-      value: this.parseValueLiteral(isConst),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Directives section.
-
-  /**
-   * Directives[Const] : Directive[?Const]+
-   */
-  ;
-
-  _proto.parseDirectives = function parseDirectives(isConst) {
-    var directives = [];
-
-    while (this.peek(TokenKind.AT)) {
-      directives.push(this.parseDirective(isConst));
-    }
-
-    return directives;
-  }
-  /**
-   * Directive[Const] : @ Name Arguments[?Const]?
-   */
-  ;
-
-  _proto.parseDirective = function parseDirective(isConst) {
-    var start = this._lexer.token;
-    this.expectToken(TokenKind.AT);
-    return {
-      kind: Kind.DIRECTIVE,
-      name: this.parseName(),
-      arguments: this.parseArguments(isConst),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Types section.
-
-  /**
-   * Type :
-   *   - NamedType
-   *   - ListType
-   *   - NonNullType
-   */
-  ;
-
-  _proto.parseTypeReference = function parseTypeReference() {
-    var start = this._lexer.token;
-    var type;
-
-    if (this.expectOptionalToken(TokenKind.BRACKET_L)) {
-      type = this.parseTypeReference();
-      this.expectToken(TokenKind.BRACKET_R);
-      type = {
-        kind: Kind.LIST_TYPE,
-        type: type,
-        loc: this.loc(start)
-      };
-    } else {
-      type = this.parseNamedType();
-    }
-
-    if (this.expectOptionalToken(TokenKind.BANG)) {
-      return {
-        kind: Kind.NON_NULL_TYPE,
-        type: type,
-        loc: this.loc(start)
-      };
-    }
-
-    return type;
-  }
-  /**
-   * NamedType : Name
-   */
-  ;
-
-  _proto.parseNamedType = function parseNamedType() {
-    var start = this._lexer.token;
-    return {
-      kind: Kind.NAMED_TYPE,
-      name: this.parseName(),
-      loc: this.loc(start)
-    };
-  } // Implements the parsing rules in the Type Definition section.
-
-  /**
-   * TypeSystemDefinition :
-   *   - SchemaDefinition
-   *   - TypeDefinition
-   *   - DirectiveDefinition
-   *
-   * TypeDefinition :
-   *   - ScalarTypeDefinition
-   *   - ObjectTypeDefinition
-   *   - InterfaceTypeDefinition
-   *   - UnionTypeDefinition
-   *   - EnumTypeDefinition
-   *   - InputObjectTypeDefinition
-   */
-  ;
-
-  _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {
-    // Many definitions begin with a description and require a lookahead.
-    var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;
-
-    if (keywordToken.kind === TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaDefinition();
-
-        case 'scalar':
-          return this.parseScalarTypeDefinition();
-
-        case 'type':
-          return this.parseObjectTypeDefinition();
-
-        case 'interface':
-          return this.parseInterfaceTypeDefinition();
-
-        case 'union':
-          return this.parseUnionTypeDefinition();
-
-        case 'enum':
-          return this.parseEnumTypeDefinition();
-
-        case 'input':
-          return this.parseInputObjectTypeDefinition();
-
-        case 'directive':
-          return this.parseDirectiveDefinition();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  };
-
-  _proto.peekDescription = function peekDescription() {
-    return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);
-  }
-  /**
-   * Description : StringValue
-   */
-  ;
-
-  _proto.parseDescription = function parseDescription() {
-    if (this.peekDescription()) {
-      return this.parseStringLiteral();
-    }
-  }
-  /**
-   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }
-   */
-  ;
-
-  _proto.parseSchemaDefinition = function parseSchemaDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('schema');
-    var directives = this.parseDirectives(true);
-    var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);
-    return {
-      kind: Kind.SCHEMA_DEFINITION,
-      description: description,
-      directives: directives,
-      operationTypes: operationTypes,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * OperationTypeDefinition : OperationType : NamedType
-   */
-  ;
-
-  _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {
-    var start = this._lexer.token;
-    var operation = this.parseOperationType();
-    this.expectToken(TokenKind.COLON);
-    var type = this.parseNamedType();
-    return {
-      kind: Kind.OPERATION_TYPE_DEFINITION,
-      operation: operation,
-      type: type,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?
-   */
-  ;
-
-  _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('scalar');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: Kind.SCALAR_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectTypeDefinition :
-   *   Description?
-   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?
-   */
-  ;
-
-  _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('type');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-    return {
-      kind: Kind.OBJECT_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ImplementsInterfaces :
-   *   - implements `&`? NamedType
-   *   - ImplementsInterfaces & NamedType
-   */
-  ;
-
-  _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {
-    var types = [];
-
-    if (this.expectOptionalKeyword('implements')) {
-      // Optional leading ampersand
-      this.expectOptionalToken(TokenKind.AMP);
-
-      do {
-        var _this$_options2;
-
-        types.push(this.parseNamedType());
-      } while (this.expectOptionalToken(TokenKind.AMP) || // Legacy support for the SDL?
-      ((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true && this.peek(TokenKind.NAME));
-    }
-
-    return types;
-  }
-  /**
-   * FieldsDefinition : { FieldDefinition+ }
-   */
-  ;
-
-  _proto.parseFieldsDefinition = function parseFieldsDefinition() {
-    var _this$_options3;
-
-    // Legacy support for the SDL?
-    if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {
-      this._lexer.advance();
-
-      this._lexer.advance();
-
-      return [];
-    }
-
-    return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);
-  }
-  /**
-   * FieldDefinition :
-   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?
-   */
-  ;
-
-  _proto.parseFieldDefinition = function parseFieldDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    var args = this.parseArgumentDefs();
-    this.expectToken(TokenKind.COLON);
-    var type = this.parseTypeReference();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: Kind.FIELD_DEFINITION,
-      description: description,
-      name: name,
-      arguments: args,
-      type: type,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ArgumentsDefinition : ( InputValueDefinition+ )
-   */
-  ;
-
-  _proto.parseArgumentDefs = function parseArgumentDefs() {
-    return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);
-  }
-  /**
-   * InputValueDefinition :
-   *   - Description? Name : Type DefaultValue? Directives[Const]?
-   */
-  ;
-
-  _proto.parseInputValueDef = function parseInputValueDef() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    this.expectToken(TokenKind.COLON);
-    var type = this.parseTypeReference();
-    var defaultValue;
-
-    if (this.expectOptionalToken(TokenKind.EQUALS)) {
-      defaultValue = this.parseValueLiteral(true);
-    }
-
-    var directives = this.parseDirectives(true);
-    return {
-      kind: Kind.INPUT_VALUE_DEFINITION,
-      description: description,
-      name: name,
-      type: type,
-      defaultValue: defaultValue,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InterfaceTypeDefinition :
-   *   - Description? interface Name Directives[Const]? FieldsDefinition?
-   */
-  ;
-
-  _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('interface');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-    return {
-      kind: Kind.INTERFACE_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionTypeDefinition :
-   *   - Description? union Name Directives[Const]? UnionMemberTypes?
-   */
-  ;
-
-  _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('union');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var types = this.parseUnionMemberTypes();
-    return {
-      kind: Kind.UNION_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      types: types,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionMemberTypes :
-   *   - = `|`? NamedType
-   *   - UnionMemberTypes | NamedType
-   */
-  ;
-
-  _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {
-    var types = [];
-
-    if (this.expectOptionalToken(TokenKind.EQUALS)) {
-      // Optional leading pipe
-      this.expectOptionalToken(TokenKind.PIPE);
-
-      do {
-        types.push(this.parseNamedType());
-      } while (this.expectOptionalToken(TokenKind.PIPE));
-    }
-
-    return types;
-  }
-  /**
-   * EnumTypeDefinition :
-   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?
-   */
-  ;
-
-  _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('enum');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var values = this.parseEnumValuesDefinition();
-    return {
-      kind: Kind.ENUM_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      values: values,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * EnumValuesDefinition : { EnumValueDefinition+ }
-   */
-  ;
-
-  _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {
-    return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);
-  }
-  /**
-   * EnumValueDefinition : Description? EnumValue Directives[Const]?
-   *
-   * EnumValue : Name
-   */
-  ;
-
-  _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    return {
-      kind: Kind.ENUM_VALUE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputObjectTypeDefinition :
-   *   - Description? input Name Directives[Const]? InputFieldsDefinition?
-   */
-  ;
-
-  _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('input');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseInputFieldsDefinition();
-    return {
-      kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,
-      description: description,
-      name: name,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputFieldsDefinition : { InputValueDefinition+ }
-   */
-  ;
-
-  _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {
-    return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);
-  }
-  /**
-   * TypeSystemExtension :
-   *   - SchemaExtension
-   *   - TypeExtension
-   *
-   * TypeExtension :
-   *   - ScalarTypeExtension
-   *   - ObjectTypeExtension
-   *   - InterfaceTypeExtension
-   *   - UnionTypeExtension
-   *   - EnumTypeExtension
-   *   - InputObjectTypeDefinition
-   */
-  ;
-
-  _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {
-    var keywordToken = this._lexer.lookahead();
-
-    if (keywordToken.kind === TokenKind.NAME) {
-      switch (keywordToken.value) {
-        case 'schema':
-          return this.parseSchemaExtension();
-
-        case 'scalar':
-          return this.parseScalarTypeExtension();
-
-        case 'type':
-          return this.parseObjectTypeExtension();
-
-        case 'interface':
-          return this.parseInterfaceTypeExtension();
-
-        case 'union':
-          return this.parseUnionTypeExtension();
-
-        case 'enum':
-          return this.parseEnumTypeExtension();
-
-        case 'input':
-          return this.parseInputObjectTypeExtension();
-      }
-    }
-
-    throw this.unexpected(keywordToken);
-  }
-  /**
-   * SchemaExtension :
-   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }
-   *  - extend schema Directives[Const]
-   */
-  ;
-
-  _proto.parseSchemaExtension = function parseSchemaExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('schema');
-    var directives = this.parseDirectives(true);
-    var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);
-
-    if (directives.length === 0 && operationTypes.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.SCHEMA_EXTENSION,
-      directives: directives,
-      operationTypes: operationTypes,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ScalarTypeExtension :
-   *   - extend scalar Name Directives[Const]
-   */
-  ;
-
-  _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('scalar');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-
-    if (directives.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.SCALAR_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * ObjectTypeExtension :
-   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend type Name ImplementsInterfaces? Directives[Const]
-   *  - extend type Name ImplementsInterfaces
-   */
-  ;
-
-  _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('type');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-
-    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.OBJECT_TYPE_EXTENSION,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InterfaceTypeExtension :
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition
-   *  - extend interface Name ImplementsInterfaces? Directives[Const]
-   *  - extend interface Name ImplementsInterfaces
-   */
-  ;
-
-  _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('interface');
-    var name = this.parseName();
-    var interfaces = this.parseImplementsInterfaces();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseFieldsDefinition();
-
-    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.INTERFACE_TYPE_EXTENSION,
-      name: name,
-      interfaces: interfaces,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * UnionTypeExtension :
-   *   - extend union Name Directives[Const]? UnionMemberTypes
-   *   - extend union Name Directives[Const]
-   */
-  ;
-
-  _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('union');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var types = this.parseUnionMemberTypes();
-
-    if (directives.length === 0 && types.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.UNION_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      types: types,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * EnumTypeExtension :
-   *   - extend enum Name Directives[Const]? EnumValuesDefinition
-   *   - extend enum Name Directives[Const]
-   */
-  ;
-
-  _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('enum');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var values = this.parseEnumValuesDefinition();
-
-    if (directives.length === 0 && values.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.ENUM_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      values: values,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * InputObjectTypeExtension :
-   *   - extend input Name Directives[Const]? InputFieldsDefinition
-   *   - extend input Name Directives[Const]
-   */
-  ;
-
-  _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {
-    var start = this._lexer.token;
-    this.expectKeyword('extend');
-    this.expectKeyword('input');
-    var name = this.parseName();
-    var directives = this.parseDirectives(true);
-    var fields = this.parseInputFieldsDefinition();
-
-    if (directives.length === 0 && fields.length === 0) {
-      throw this.unexpected();
-    }
-
-    return {
-      kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,
-      name: name,
-      directives: directives,
-      fields: fields,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * DirectiveDefinition :
-   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations
-   */
-  ;
-
-  _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {
-    var start = this._lexer.token;
-    var description = this.parseDescription();
-    this.expectKeyword('directive');
-    this.expectToken(TokenKind.AT);
-    var name = this.parseName();
-    var args = this.parseArgumentDefs();
-    var repeatable = this.expectOptionalKeyword('repeatable');
-    this.expectKeyword('on');
-    var locations = this.parseDirectiveLocations();
-    return {
-      kind: Kind.DIRECTIVE_DEFINITION,
-      description: description,
-      name: name,
-      arguments: args,
-      repeatable: repeatable,
-      locations: locations,
-      loc: this.loc(start)
-    };
-  }
-  /**
-   * DirectiveLocations :
-   *   - `|`? DirectiveLocation
-   *   - DirectiveLocations | DirectiveLocation
-   */
-  ;
-
-  _proto.parseDirectiveLocations = function parseDirectiveLocations() {
-    // Optional leading pipe
-    this.expectOptionalToken(TokenKind.PIPE);
-    var locations = [];
-
-    do {
-      locations.push(this.parseDirectiveLocation());
-    } while (this.expectOptionalToken(TokenKind.PIPE));
-
-    return locations;
-  }
-  /*
-   * DirectiveLocation :
-   *   - ExecutableDirectiveLocation
-   *   - TypeSystemDirectiveLocation
-   *
-   * ExecutableDirectiveLocation : one of
-   *   `QUERY`
-   *   `MUTATION`
-   *   `SUBSCRIPTION`
-   *   `FIELD`
-   *   `FRAGMENT_DEFINITION`
-   *   `FRAGMENT_SPREAD`
-   *   `INLINE_FRAGMENT`
-   *
-   * TypeSystemDirectiveLocation : one of
-   *   `SCHEMA`
-   *   `SCALAR`
-   *   `OBJECT`
-   *   `FIELD_DEFINITION`
-   *   `ARGUMENT_DEFINITION`
-   *   `INTERFACE`
-   *   `UNION`
-   *   `ENUM`
-   *   `ENUM_VALUE`
-   *   `INPUT_OBJECT`
-   *   `INPUT_FIELD_DEFINITION`
-   */
-  ;
-
-  _proto.parseDirectiveLocation = function parseDirectiveLocation() {
-    var start = this._lexer.token;
-    var name = this.parseName();
-
-    if (DirectiveLocation[name.value] !== undefined) {
-      return name;
-    }
-
-    throw this.unexpected(start);
-  } // Core parsing utility functions
-
-  /**
-   * Returns a location object, used to identify the place in
-   * the source that created a given parsed object.
-   */
-  ;
-
-  _proto.loc = function loc(startToken) {
-    var _this$_options4;
-
-    if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {
-      return new Location(startToken, this._lexer.lastToken, this._lexer.source);
-    }
-  }
-  /**
-   * Determines if the next token is of a given kind
-   */
-  ;
-
-  _proto.peek = function peek(kind) {
-    return this._lexer.token.kind === kind;
-  }
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and throw an error.
-   */
-  ;
-
-  _proto.expectToken = function expectToken(kind) {
-    var token = this._lexer.token;
-
-    if (token.kind === kind) {
-      this._lexer.advance();
-
-      return token;
-    }
-
-    throw syntaxError(this._lexer.source, token.start, "Expected ".concat(getTokenKindDesc(kind), ", found ").concat(getTokenDesc(token), "."));
-  }
-  /**
-   * If the next token is of the given kind, return that token after advancing
-   * the lexer. Otherwise, do not change the parser state and return undefined.
-   */
-  ;
-
-  _proto.expectOptionalToken = function expectOptionalToken(kind) {
-    var token = this._lexer.token;
-
-    if (token.kind === kind) {
-      this._lexer.advance();
-
-      return token;
-    }
-
-    return undefined;
-  }
-  /**
-   * If the next token is a given keyword, advance the lexer.
-   * Otherwise, do not change the parser state and throw an error.
-   */
-  ;
-
-  _proto.expectKeyword = function expectKeyword(value) {
-    var token = this._lexer.token;
-
-    if (token.kind === TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-    } else {
-      throw syntaxError(this._lexer.source, token.start, "Expected \"".concat(value, "\", found ").concat(getTokenDesc(token), "."));
-    }
-  }
-  /**
-   * If the next token is a given keyword, return "true" after advancing
-   * the lexer. Otherwise, do not change the parser state and return "false".
-   */
-  ;
-
-  _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {
-    var token = this._lexer.token;
-
-    if (token.kind === TokenKind.NAME && token.value === value) {
-      this._lexer.advance();
-
-      return true;
-    }
-
-    return false;
-  }
-  /**
-   * Helper function for creating an error when an unexpected lexed token
-   * is encountered.
-   */
-  ;
-
-  _proto.unexpected = function unexpected(atToken) {
-    var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;
-    return syntaxError(this._lexer.source, token.start, "Unexpected ".concat(getTokenDesc(token), "."));
-  }
-  /**
-   * Returns a possibly empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  ;
-
-  _proto.any = function any(openKind, parseFn, closeKind) {
-    this.expectToken(openKind);
-    var nodes = [];
-
-    while (!this.expectOptionalToken(closeKind)) {
-      nodes.push(parseFn.call(this));
-    }
-
-    return nodes;
-  }
-  /**
-   * Returns a list of parse nodes, determined by the parseFn.
-   * It can be empty only if open token is missing otherwise it will always
-   * return non-empty list that begins with a lex token of openKind and ends
-   * with a lex token of closeKind. Advances the parser to the next lex token
-   * after the closing token.
-   */
-  ;
-
-  _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {
-    if (this.expectOptionalToken(openKind)) {
-      var nodes = [];
-
-      do {
-        nodes.push(parseFn.call(this));
-      } while (!this.expectOptionalToken(closeKind));
-
-      return nodes;
-    }
-
-    return [];
-  }
-  /**
-   * Returns a non-empty list of parse nodes, determined by
-   * the parseFn. This list begins with a lex token of openKind
-   * and ends with a lex token of closeKind. Advances the parser
-   * to the next lex token after the closing token.
-   */
-  ;
-
-  _proto.many = function many(openKind, parseFn, closeKind) {
-    this.expectToken(openKind);
-    var nodes = [];
-
-    do {
-      nodes.push(parseFn.call(this));
-    } while (!this.expectOptionalToken(closeKind));
-
-    return nodes;
-  };
-
-  return Parser;
-}();
-/**
- * A helper function to describe a token as a string for debugging
- */
-
-
-function getTokenDesc(token) {
-  var value = token.value;
-  return getTokenKindDesc(token.kind) + (value != null ? " \"".concat(value, "\"") : '');
-}
-/**
- * A helper function to describe a token kind as a string for debugging
- */
-
-
-function getTokenKindDesc(kind) {
-  return isPunctuatorTokenKind(kind) ? "\"".concat(kind, "\"") : kind;
-}
diff --git a/node_modules/graphql/language/predicates.d.ts b/node_modules/graphql/language/predicates.d.ts
deleted file mode 100644
index cdbe1f9..0000000
--- a/node_modules/graphql/language/predicates.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import {
-  ASTNode,
-  DefinitionNode,
-  ExecutableDefinitionNode,
-  SelectionNode,
-  ValueNode,
-  TypeNode,
-  TypeSystemDefinitionNode,
-  TypeDefinitionNode,
-  TypeSystemExtensionNode,
-  TypeExtensionNode,
-} from './ast';
-
-export function isDefinitionNode(node: ASTNode): node is DefinitionNode;
-
-export function isExecutableDefinitionNode(
-  node: ASTNode,
-): node is ExecutableDefinitionNode;
-
-export function isSelectionNode(node: ASTNode): node is SelectionNode;
-
-export function isValueNode(node: ASTNode): node is ValueNode;
-
-export function isTypeNode(node: ASTNode): node is TypeNode;
-
-export function isTypeSystemDefinitionNode(
-  node: ASTNode,
-): node is TypeSystemDefinitionNode;
-
-export function isTypeDefinitionNode(node: ASTNode): node is TypeDefinitionNode;
-
-export function isTypeSystemExtensionNode(
-  node: ASTNode,
-): node is TypeSystemExtensionNode;
-
-export function isTypeExtensionNode(node: ASTNode): node is TypeExtensionNode;
diff --git a/node_modules/graphql/language/predicates.js b/node_modules/graphql/language/predicates.js
deleted file mode 100644
index f17a94c..0000000
--- a/node_modules/graphql/language/predicates.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isDefinitionNode = isDefinitionNode;
-exports.isExecutableDefinitionNode = isExecutableDefinitionNode;
-exports.isSelectionNode = isSelectionNode;
-exports.isValueNode = isValueNode;
-exports.isTypeNode = isTypeNode;
-exports.isTypeSystemDefinitionNode = isTypeSystemDefinitionNode;
-exports.isTypeDefinitionNode = isTypeDefinitionNode;
-exports.isTypeSystemExtensionNode = isTypeSystemExtensionNode;
-exports.isTypeExtensionNode = isTypeExtensionNode;
-
-var _kinds = require("./kinds");
-
-function isDefinitionNode(node) {
-  return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);
-}
-
-function isExecutableDefinitionNode(node) {
-  return node.kind === _kinds.Kind.OPERATION_DEFINITION || node.kind === _kinds.Kind.FRAGMENT_DEFINITION;
-}
-
-function isSelectionNode(node) {
-  return node.kind === _kinds.Kind.FIELD || node.kind === _kinds.Kind.FRAGMENT_SPREAD || node.kind === _kinds.Kind.INLINE_FRAGMENT;
-}
-
-function isValueNode(node) {
-  return node.kind === _kinds.Kind.VARIABLE || node.kind === _kinds.Kind.INT || node.kind === _kinds.Kind.FLOAT || node.kind === _kinds.Kind.STRING || node.kind === _kinds.Kind.BOOLEAN || node.kind === _kinds.Kind.NULL || node.kind === _kinds.Kind.ENUM || node.kind === _kinds.Kind.LIST || node.kind === _kinds.Kind.OBJECT;
-}
-
-function isTypeNode(node) {
-  return node.kind === _kinds.Kind.NAMED_TYPE || node.kind === _kinds.Kind.LIST_TYPE || node.kind === _kinds.Kind.NON_NULL_TYPE;
-}
-
-function isTypeSystemDefinitionNode(node) {
-  return node.kind === _kinds.Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === _kinds.Kind.DIRECTIVE_DEFINITION;
-}
-
-function isTypeDefinitionNode(node) {
-  return node.kind === _kinds.Kind.SCALAR_TYPE_DEFINITION || node.kind === _kinds.Kind.OBJECT_TYPE_DEFINITION || node.kind === _kinds.Kind.INTERFACE_TYPE_DEFINITION || node.kind === _kinds.Kind.UNION_TYPE_DEFINITION || node.kind === _kinds.Kind.ENUM_TYPE_DEFINITION || node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION;
-}
-
-function isTypeSystemExtensionNode(node) {
-  return node.kind === _kinds.Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);
-}
-
-function isTypeExtensionNode(node) {
-  return node.kind === _kinds.Kind.SCALAR_TYPE_EXTENSION || node.kind === _kinds.Kind.OBJECT_TYPE_EXTENSION || node.kind === _kinds.Kind.INTERFACE_TYPE_EXTENSION || node.kind === _kinds.Kind.UNION_TYPE_EXTENSION || node.kind === _kinds.Kind.ENUM_TYPE_EXTENSION || node.kind === _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION;
-}
diff --git a/node_modules/graphql/language/predicates.js.flow b/node_modules/graphql/language/predicates.js.flow
deleted file mode 100644
index 9cdef3d..0000000
--- a/node_modules/graphql/language/predicates.js.flow
+++ /dev/null
@@ -1,83 +0,0 @@
-// @flow strict
-
-import { Kind } from './kinds';
-import { type ASTNode } from './ast';
-
-export function isDefinitionNode(node: ASTNode): boolean %checks {
-  return (
-    isExecutableDefinitionNode(node) ||
-    isTypeSystemDefinitionNode(node) ||
-    isTypeSystemExtensionNode(node)
-  );
-}
-
-export function isExecutableDefinitionNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.OPERATION_DEFINITION ||
-    node.kind === Kind.FRAGMENT_DEFINITION
-  );
-}
-
-export function isSelectionNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.FIELD ||
-    node.kind === Kind.FRAGMENT_SPREAD ||
-    node.kind === Kind.INLINE_FRAGMENT
-  );
-}
-
-export function isValueNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.VARIABLE ||
-    node.kind === Kind.INT ||
-    node.kind === Kind.FLOAT ||
-    node.kind === Kind.STRING ||
-    node.kind === Kind.BOOLEAN ||
-    node.kind === Kind.NULL ||
-    node.kind === Kind.ENUM ||
-    node.kind === Kind.LIST ||
-    node.kind === Kind.OBJECT
-  );
-}
-
-export function isTypeNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.NAMED_TYPE ||
-    node.kind === Kind.LIST_TYPE ||
-    node.kind === Kind.NON_NULL_TYPE
-  );
-}
-
-export function isTypeSystemDefinitionNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.SCHEMA_DEFINITION ||
-    isTypeDefinitionNode(node) ||
-    node.kind === Kind.DIRECTIVE_DEFINITION
-  );
-}
-
-export function isTypeDefinitionNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.SCALAR_TYPE_DEFINITION ||
-    node.kind === Kind.OBJECT_TYPE_DEFINITION ||
-    node.kind === Kind.INTERFACE_TYPE_DEFINITION ||
-    node.kind === Kind.UNION_TYPE_DEFINITION ||
-    node.kind === Kind.ENUM_TYPE_DEFINITION ||
-    node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION
-  );
-}
-
-export function isTypeSystemExtensionNode(node: ASTNode): boolean %checks {
-  return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);
-}
-
-export function isTypeExtensionNode(node: ASTNode): boolean %checks {
-  return (
-    node.kind === Kind.SCALAR_TYPE_EXTENSION ||
-    node.kind === Kind.OBJECT_TYPE_EXTENSION ||
-    node.kind === Kind.INTERFACE_TYPE_EXTENSION ||
-    node.kind === Kind.UNION_TYPE_EXTENSION ||
-    node.kind === Kind.ENUM_TYPE_EXTENSION ||
-    node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION
-  );
-}
diff --git a/node_modules/graphql/language/predicates.mjs b/node_modules/graphql/language/predicates.mjs
deleted file mode 100644
index 7a066f7..0000000
--- a/node_modules/graphql/language/predicates.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Kind } from "./kinds.mjs";
-export function isDefinitionNode(node) {
-  return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);
-}
-export function isExecutableDefinitionNode(node) {
-  return node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION;
-}
-export function isSelectionNode(node) {
-  return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT;
-}
-export function isValueNode(node) {
-  return node.kind === Kind.VARIABLE || node.kind === Kind.INT || node.kind === Kind.FLOAT || node.kind === Kind.STRING || node.kind === Kind.BOOLEAN || node.kind === Kind.NULL || node.kind === Kind.ENUM || node.kind === Kind.LIST || node.kind === Kind.OBJECT;
-}
-export function isTypeNode(node) {
-  return node.kind === Kind.NAMED_TYPE || node.kind === Kind.LIST_TYPE || node.kind === Kind.NON_NULL_TYPE;
-}
-export function isTypeSystemDefinitionNode(node) {
-  return node.kind === Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === Kind.DIRECTIVE_DEFINITION;
-}
-export function isTypeDefinitionNode(node) {
-  return node.kind === Kind.SCALAR_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.INTERFACE_TYPE_DEFINITION || node.kind === Kind.UNION_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION;
-}
-export function isTypeSystemExtensionNode(node) {
-  return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);
-}
-export function isTypeExtensionNode(node) {
-  return node.kind === Kind.SCALAR_TYPE_EXTENSION || node.kind === Kind.OBJECT_TYPE_EXTENSION || node.kind === Kind.INTERFACE_TYPE_EXTENSION || node.kind === Kind.UNION_TYPE_EXTENSION || node.kind === Kind.ENUM_TYPE_EXTENSION || node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION;
-}
diff --git a/node_modules/graphql/language/printLocation.d.ts b/node_modules/graphql/language/printLocation.d.ts
deleted file mode 100644
index 7d0c347..0000000
--- a/node_modules/graphql/language/printLocation.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Location } from './ast';
-import { Source } from './source';
-import { SourceLocation } from './location';
-
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-export function printLocation(location: Location): string;
-
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-export function printSourceLocation(
-  source: Source,
-  sourceLocation: SourceLocation,
-): string;
diff --git a/node_modules/graphql/language/printLocation.js b/node_modules/graphql/language/printLocation.js
deleted file mode 100644
index 6f8d526..0000000
--- a/node_modules/graphql/language/printLocation.js
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.printLocation = printLocation;
-exports.printSourceLocation = printSourceLocation;
-
-var _location = require("./location");
-
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-function printLocation(location) {
-  return printSourceLocation(location.source, (0, _location.getLocation)(location.source, location.start));
-}
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-
-
-function printSourceLocation(source, sourceLocation) {
-  var firstLineColumnOffset = source.locationOffset.column - 1;
-  var body = whitespace(firstLineColumnOffset) + source.body;
-  var lineIndex = sourceLocation.line - 1;
-  var lineOffset = source.locationOffset.line - 1;
-  var lineNum = sourceLocation.line + lineOffset;
-  var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;
-  var columnNum = sourceLocation.column + columnOffset;
-  var locationStr = "".concat(source.name, ":").concat(lineNum, ":").concat(columnNum, "\n");
-  var lines = body.split(/\r\n|[\n\r]/g);
-  var locationLine = lines[lineIndex]; // Special case for minified documents
-
-  if (locationLine.length > 120) {
-    var subLineIndex = Math.floor(columnNum / 80);
-    var subLineColumnNum = columnNum % 80;
-    var subLines = [];
-
-    for (var i = 0; i < locationLine.length; i += 80) {
-      subLines.push(locationLine.slice(i, i + 80));
-    }
-
-    return locationStr + printPrefixedLines([["".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {
-      return ['', subLine];
-    }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));
-  }
-
-  return locationStr + printPrefixedLines([// Lines specified like this: ["prefix", "string"],
-  ["".concat(lineNum - 1), lines[lineIndex - 1]], ["".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], ["".concat(lineNum + 1), lines[lineIndex + 1]]]);
-}
-
-function printPrefixedLines(lines) {
-  var existingLines = lines.filter(function (_ref) {
-    var _ = _ref[0],
-        line = _ref[1];
-    return line !== undefined;
-  });
-  var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {
-    var prefix = _ref2[0];
-    return prefix.length;
-  }));
-  return existingLines.map(function (_ref3) {
-    var prefix = _ref3[0],
-        line = _ref3[1];
-    return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');
-  }).join('\n');
-}
-
-function whitespace(len) {
-  return Array(len + 1).join(' ');
-}
-
-function leftPad(len, str) {
-  return whitespace(len - str.length) + str;
-}
diff --git a/node_modules/graphql/language/printLocation.js.flow b/node_modules/graphql/language/printLocation.js.flow
deleted file mode 100644
index 536d5ab..0000000
--- a/node_modules/graphql/language/printLocation.js.flow
+++ /dev/null
@@ -1,88 +0,0 @@
-// @flow strict
-
-import { type Location } from './ast';
-import { type Source } from './source';
-import { type SourceLocation, getLocation } from './location';
-
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-export function printLocation(location: Location): string {
-  return printSourceLocation(
-    location.source,
-    getLocation(location.source, location.start),
-  );
-}
-
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-export function printSourceLocation(
-  source: Source,
-  sourceLocation: SourceLocation,
-): string {
-  const firstLineColumnOffset = source.locationOffset.column - 1;
-  const body = whitespace(firstLineColumnOffset) + source.body;
-
-  const lineIndex = sourceLocation.line - 1;
-  const lineOffset = source.locationOffset.line - 1;
-  const lineNum = sourceLocation.line + lineOffset;
-
-  const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;
-  const columnNum = sourceLocation.column + columnOffset;
-  const locationStr = `${source.name}:${lineNum}:${columnNum}\n`;
-
-  const lines = body.split(/\r\n|[\n\r]/g);
-  const locationLine = lines[lineIndex];
-
-  // Special case for minified documents
-  if (locationLine.length > 120) {
-    const subLineIndex = Math.floor(columnNum / 80);
-    const subLineColumnNum = columnNum % 80;
-    const subLines = [];
-    for (let i = 0; i < locationLine.length; i += 80) {
-      subLines.push(locationLine.slice(i, i + 80));
-    }
-
-    return (
-      locationStr +
-      printPrefixedLines([
-        [`${lineNum}`, subLines[0]],
-        ...subLines.slice(1, subLineIndex + 1).map(subLine => ['', subLine]),
-        [' ', whitespace(subLineColumnNum - 1) + '^'],
-        ['', subLines[subLineIndex + 1]],
-      ])
-    );
-  }
-
-  return (
-    locationStr +
-    printPrefixedLines([
-      // Lines specified like this: ["prefix", "string"],
-      [`${lineNum - 1}`, lines[lineIndex - 1]],
-      [`${lineNum}`, locationLine],
-      ['', whitespace(columnNum - 1) + '^'],
-      [`${lineNum + 1}`, lines[lineIndex + 1]],
-    ])
-  );
-}
-
-function printPrefixedLines(lines: $ReadOnlyArray<[string, string]>): string {
-  const existingLines = lines.filter(([_, line]) => line !== undefined);
-
-  const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));
-  return existingLines
-    .map(
-      ([prefix, line]) =>
-        leftPad(padLen, prefix) + (line ? ' | ' + line : ' |'),
-    )
-    .join('\n');
-}
-
-function whitespace(len: number): string {
-  return Array(len + 1).join(' ');
-}
-
-function leftPad(len: number, str: string): string {
-  return whitespace(len - str.length) + str;
-}
diff --git a/node_modules/graphql/language/printLocation.mjs b/node_modules/graphql/language/printLocation.mjs
deleted file mode 100644
index c683f26..0000000
--- a/node_modules/graphql/language/printLocation.mjs
+++ /dev/null
@@ -1,66 +0,0 @@
-import { getLocation } from "./location.mjs";
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-
-export function printLocation(location) {
-  return printSourceLocation(location.source, getLocation(location.source, location.start));
-}
-/**
- * Render a helpful description of the location in the GraphQL Source document.
- */
-
-export function printSourceLocation(source, sourceLocation) {
-  var firstLineColumnOffset = source.locationOffset.column - 1;
-  var body = whitespace(firstLineColumnOffset) + source.body;
-  var lineIndex = sourceLocation.line - 1;
-  var lineOffset = source.locationOffset.line - 1;
-  var lineNum = sourceLocation.line + lineOffset;
-  var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;
-  var columnNum = sourceLocation.column + columnOffset;
-  var locationStr = "".concat(source.name, ":").concat(lineNum, ":").concat(columnNum, "\n");
-  var lines = body.split(/\r\n|[\n\r]/g);
-  var locationLine = lines[lineIndex]; // Special case for minified documents
-
-  if (locationLine.length > 120) {
-    var subLineIndex = Math.floor(columnNum / 80);
-    var subLineColumnNum = columnNum % 80;
-    var subLines = [];
-
-    for (var i = 0; i < locationLine.length; i += 80) {
-      subLines.push(locationLine.slice(i, i + 80));
-    }
-
-    return locationStr + printPrefixedLines([["".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {
-      return ['', subLine];
-    }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));
-  }
-
-  return locationStr + printPrefixedLines([// Lines specified like this: ["prefix", "string"],
-  ["".concat(lineNum - 1), lines[lineIndex - 1]], ["".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], ["".concat(lineNum + 1), lines[lineIndex + 1]]]);
-}
-
-function printPrefixedLines(lines) {
-  var existingLines = lines.filter(function (_ref) {
-    var _ = _ref[0],
-        line = _ref[1];
-    return line !== undefined;
-  });
-  var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {
-    var prefix = _ref2[0];
-    return prefix.length;
-  }));
-  return existingLines.map(function (_ref3) {
-    var prefix = _ref3[0],
-        line = _ref3[1];
-    return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');
-  }).join('\n');
-}
-
-function whitespace(len) {
-  return Array(len + 1).join(' ');
-}
-
-function leftPad(len, str) {
-  return whitespace(len - str.length) + str;
-}
diff --git a/node_modules/graphql/language/printer.d.ts b/node_modules/graphql/language/printer.d.ts
deleted file mode 100644
index 9329b45..0000000
--- a/node_modules/graphql/language/printer.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ASTNode } from './ast';
-
-/**
- * Converts an AST into a string, using one set of reasonable
- * formatting rules.
- */
-export function print(ast: ASTNode): string;
diff --git a/node_modules/graphql/language/printer.js b/node_modules/graphql/language/printer.js
deleted file mode 100644
index 4f14e14..0000000
--- a/node_modules/graphql/language/printer.js
+++ /dev/null
@@ -1,315 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.print = print;
-
-var _visitor = require("./visitor");
-
-var _blockString = require("./blockString");
-
-/**
- * Converts an AST into a string, using one set of reasonable
- * formatting rules.
- */
-function print(ast) {
-  return (0, _visitor.visit)(ast, {
-    leave: printDocASTReducer
-  });
-} // TODO: provide better type coverage in future
-
-
-var printDocASTReducer = {
-  Name: function Name(node) {
-    return node.value;
-  },
-  Variable: function Variable(node) {
-    return '$' + node.name;
-  },
-  // Document
-  Document: function Document(node) {
-    return join(node.definitions, '\n\n') + '\n';
-  },
-  OperationDefinition: function OperationDefinition(node) {
-    var op = node.operation;
-    var name = node.name;
-    var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');
-    var directives = join(node.directives, ' ');
-    var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use
-    // the query short form.
-
-    return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');
-  },
-  VariableDefinition: function VariableDefinition(_ref) {
-    var variable = _ref.variable,
-        type = _ref.type,
-        defaultValue = _ref.defaultValue,
-        directives = _ref.directives;
-    return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));
-  },
-  SelectionSet: function SelectionSet(_ref2) {
-    var selections = _ref2.selections;
-    return block(selections);
-  },
-  Field: function Field(_ref3) {
-    var alias = _ref3.alias,
-        name = _ref3.name,
-        args = _ref3.arguments,
-        directives = _ref3.directives,
-        selectionSet = _ref3.selectionSet;
-    return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');
-  },
-  Argument: function Argument(_ref4) {
-    var name = _ref4.name,
-        value = _ref4.value;
-    return name + ': ' + value;
-  },
-  // Fragments
-  FragmentSpread: function FragmentSpread(_ref5) {
-    var name = _ref5.name,
-        directives = _ref5.directives;
-    return '...' + name + wrap(' ', join(directives, ' '));
-  },
-  InlineFragment: function InlineFragment(_ref6) {
-    var typeCondition = _ref6.typeCondition,
-        directives = _ref6.directives,
-        selectionSet = _ref6.selectionSet;
-    return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');
-  },
-  FragmentDefinition: function FragmentDefinition(_ref7) {
-    var name = _ref7.name,
-        typeCondition = _ref7.typeCondition,
-        variableDefinitions = _ref7.variableDefinitions,
-        directives = _ref7.directives,
-        selectionSet = _ref7.selectionSet;
-    return (// Note: fragment variable definitions are experimental and may be changed
-      // or removed in the future.
-      "fragment ".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), " ") + "on ".concat(typeCondition, " ").concat(wrap('', join(directives, ' '), ' ')) + selectionSet
-    );
-  },
-  // Value
-  IntValue: function IntValue(_ref8) {
-    var value = _ref8.value;
-    return value;
-  },
-  FloatValue: function FloatValue(_ref9) {
-    var value = _ref9.value;
-    return value;
-  },
-  StringValue: function StringValue(_ref10, key) {
-    var value = _ref10.value,
-        isBlockString = _ref10.block;
-    return isBlockString ? (0, _blockString.printBlockString)(value, key === 'description' ? '' : '  ') : JSON.stringify(value);
-  },
-  BooleanValue: function BooleanValue(_ref11) {
-    var value = _ref11.value;
-    return value ? 'true' : 'false';
-  },
-  NullValue: function NullValue() {
-    return 'null';
-  },
-  EnumValue: function EnumValue(_ref12) {
-    var value = _ref12.value;
-    return value;
-  },
-  ListValue: function ListValue(_ref13) {
-    var values = _ref13.values;
-    return '[' + join(values, ', ') + ']';
-  },
-  ObjectValue: function ObjectValue(_ref14) {
-    var fields = _ref14.fields;
-    return '{' + join(fields, ', ') + '}';
-  },
-  ObjectField: function ObjectField(_ref15) {
-    var name = _ref15.name,
-        value = _ref15.value;
-    return name + ': ' + value;
-  },
-  // Directive
-  Directive: function Directive(_ref16) {
-    var name = _ref16.name,
-        args = _ref16.arguments;
-    return '@' + name + wrap('(', join(args, ', '), ')');
-  },
-  // Type
-  NamedType: function NamedType(_ref17) {
-    var name = _ref17.name;
-    return name;
-  },
-  ListType: function ListType(_ref18) {
-    var type = _ref18.type;
-    return '[' + type + ']';
-  },
-  NonNullType: function NonNullType(_ref19) {
-    var type = _ref19.type;
-    return type + '!';
-  },
-  // Type System Definitions
-  SchemaDefinition: addDescription(function (_ref20) {
-    var directives = _ref20.directives,
-        operationTypes = _ref20.operationTypes;
-    return join(['schema', join(directives, ' '), block(operationTypes)], ' ');
-  }),
-  OperationTypeDefinition: function OperationTypeDefinition(_ref21) {
-    var operation = _ref21.operation,
-        type = _ref21.type;
-    return operation + ': ' + type;
-  },
-  ScalarTypeDefinition: addDescription(function (_ref22) {
-    var name = _ref22.name,
-        directives = _ref22.directives;
-    return join(['scalar', name, join(directives, ' ')], ' ');
-  }),
-  ObjectTypeDefinition: addDescription(function (_ref23) {
-    var name = _ref23.name,
-        interfaces = _ref23.interfaces,
-        directives = _ref23.directives,
-        fields = _ref23.fields;
-    return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  }),
-  FieldDefinition: addDescription(function (_ref24) {
-    var name = _ref24.name,
-        args = _ref24.arguments,
-        type = _ref24.type,
-        directives = _ref24.directives;
-    return name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));
-  }),
-  InputValueDefinition: addDescription(function (_ref25) {
-    var name = _ref25.name,
-        type = _ref25.type,
-        defaultValue = _ref25.defaultValue,
-        directives = _ref25.directives;
-    return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');
-  }),
-  InterfaceTypeDefinition: addDescription(function (_ref26) {
-    var name = _ref26.name,
-        interfaces = _ref26.interfaces,
-        directives = _ref26.directives,
-        fields = _ref26.fields;
-    return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  }),
-  UnionTypeDefinition: addDescription(function (_ref27) {
-    var name = _ref27.name,
-        directives = _ref27.directives,
-        types = _ref27.types;
-    return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');
-  }),
-  EnumTypeDefinition: addDescription(function (_ref28) {
-    var name = _ref28.name,
-        directives = _ref28.directives,
-        values = _ref28.values;
-    return join(['enum', name, join(directives, ' '), block(values)], ' ');
-  }),
-  EnumValueDefinition: addDescription(function (_ref29) {
-    var name = _ref29.name,
-        directives = _ref29.directives;
-    return join([name, join(directives, ' ')], ' ');
-  }),
-  InputObjectTypeDefinition: addDescription(function (_ref30) {
-    var name = _ref30.name,
-        directives = _ref30.directives,
-        fields = _ref30.fields;
-    return join(['input', name, join(directives, ' '), block(fields)], ' ');
-  }),
-  DirectiveDefinition: addDescription(function (_ref31) {
-    var name = _ref31.name,
-        args = _ref31.arguments,
-        repeatable = _ref31.repeatable,
-        locations = _ref31.locations;
-    return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');
-  }),
-  SchemaExtension: function SchemaExtension(_ref32) {
-    var directives = _ref32.directives,
-        operationTypes = _ref32.operationTypes;
-    return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');
-  },
-  ScalarTypeExtension: function ScalarTypeExtension(_ref33) {
-    var name = _ref33.name,
-        directives = _ref33.directives;
-    return join(['extend scalar', name, join(directives, ' ')], ' ');
-  },
-  ObjectTypeExtension: function ObjectTypeExtension(_ref34) {
-    var name = _ref34.name,
-        interfaces = _ref34.interfaces,
-        directives = _ref34.directives,
-        fields = _ref34.fields;
-    return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  },
-  InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {
-    var name = _ref35.name,
-        interfaces = _ref35.interfaces,
-        directives = _ref35.directives,
-        fields = _ref35.fields;
-    return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  },
-  UnionTypeExtension: function UnionTypeExtension(_ref36) {
-    var name = _ref36.name,
-        directives = _ref36.directives,
-        types = _ref36.types;
-    return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');
-  },
-  EnumTypeExtension: function EnumTypeExtension(_ref37) {
-    var name = _ref37.name,
-        directives = _ref37.directives,
-        values = _ref37.values;
-    return join(['extend enum', name, join(directives, ' '), block(values)], ' ');
-  },
-  InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {
-    var name = _ref38.name,
-        directives = _ref38.directives,
-        fields = _ref38.fields;
-    return join(['extend input', name, join(directives, ' '), block(fields)], ' ');
-  }
-};
-
-function addDescription(cb) {
-  return function (node) {
-    return join([node.description, cb(node)], '\n');
-  };
-}
-/**
- * Given maybeArray, print an empty string if it is null or empty, otherwise
- * print all items together separated by separator if provided
- */
-
-
-function join(maybeArray) {
-  var _ref39;
-
-  var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return (_ref39 = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {
-    return x;
-  }).join(separator)) !== null && _ref39 !== void 0 ? _ref39 : '';
-}
-/**
- * Given array, print each item on its own line, wrapped in an
- * indented "{ }" block.
- */
-
-
-function block(array) {
-  return array && array.length !== 0 ? '{\n' + indent(join(array, '\n')) + '\n}' : '';
-}
-/**
- * If maybeString is not null or empty, then wrap with start and end, otherwise
- * print an empty string.
- */
-
-
-function wrap(start, maybeString) {
-  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-  return maybeString ? start + maybeString + end : '';
-}
-
-function indent(maybeString) {
-  return maybeString && '  ' + maybeString.replace(/\n/g, '\n  ');
-}
-
-function isMultiline(string) {
-  return string.indexOf('\n') !== -1;
-}
-
-function hasMultilineItems(maybeArray) {
-  return maybeArray && maybeArray.some(isMultiline);
-}
diff --git a/node_modules/graphql/language/printer.js.flow b/node_modules/graphql/language/printer.js.flow
deleted file mode 100644
index aeff16b..0000000
--- a/node_modules/graphql/language/printer.js.flow
+++ /dev/null
@@ -1,290 +0,0 @@
-// @flow strict
-
-import { visit } from './visitor';
-import { type ASTNode } from './ast';
-import { printBlockString } from './blockString';
-
-/**
- * Converts an AST into a string, using one set of reasonable
- * formatting rules.
- */
-export function print(ast: ASTNode): string {
-  return visit(ast, { leave: printDocASTReducer });
-}
-
-// TODO: provide better type coverage in future
-const printDocASTReducer: any = {
-  Name: node => node.value,
-  Variable: node => '$' + node.name,
-
-  // Document
-
-  Document: node => join(node.definitions, '\n\n') + '\n',
-
-  OperationDefinition(node) {
-    const op = node.operation;
-    const name = node.name;
-    const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');
-    const directives = join(node.directives, ' ');
-    const selectionSet = node.selectionSet;
-    // Anonymous queries with no directives or variable definitions can use
-    // the query short form.
-    return !name && !directives && !varDefs && op === 'query'
-      ? selectionSet
-      : join([op, join([name, varDefs]), directives, selectionSet], ' ');
-  },
-
-  VariableDefinition: ({ variable, type, defaultValue, directives }) =>
-    variable +
-    ': ' +
-    type +
-    wrap(' = ', defaultValue) +
-    wrap(' ', join(directives, ' ')),
-  SelectionSet: ({ selections }) => block(selections),
-
-  Field: ({ alias, name, arguments: args, directives, selectionSet }) =>
-    join(
-      [
-        wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'),
-        join(directives, ' '),
-        selectionSet,
-      ],
-      ' ',
-    ),
-
-  Argument: ({ name, value }) => name + ': ' + value,
-
-  // Fragments
-
-  FragmentSpread: ({ name, directives }) =>
-    '...' + name + wrap(' ', join(directives, ' ')),
-
-  InlineFragment: ({ typeCondition, directives, selectionSet }) =>
-    join(
-      ['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet],
-      ' ',
-    ),
-
-  FragmentDefinition: ({
-    name,
-    typeCondition,
-    variableDefinitions,
-    directives,
-    selectionSet,
-  }) =>
-    // Note: fragment variable definitions are experimental and may be changed
-    // or removed in the future.
-    `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +
-    `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +
-    selectionSet,
-
-  // Value
-
-  IntValue: ({ value }) => value,
-  FloatValue: ({ value }) => value,
-  StringValue: ({ value, block: isBlockString }, key) =>
-    isBlockString
-      ? printBlockString(value, key === 'description' ? '' : '  ')
-      : JSON.stringify(value),
-  BooleanValue: ({ value }) => (value ? 'true' : 'false'),
-  NullValue: () => 'null',
-  EnumValue: ({ value }) => value,
-  ListValue: ({ values }) => '[' + join(values, ', ') + ']',
-  ObjectValue: ({ fields }) => '{' + join(fields, ', ') + '}',
-  ObjectField: ({ name, value }) => name + ': ' + value,
-
-  // Directive
-
-  Directive: ({ name, arguments: args }) =>
-    '@' + name + wrap('(', join(args, ', '), ')'),
-
-  // Type
-
-  NamedType: ({ name }) => name,
-  ListType: ({ type }) => '[' + type + ']',
-  NonNullType: ({ type }) => type + '!',
-
-  // Type System Definitions
-
-  SchemaDefinition: addDescription(({ directives, operationTypes }) =>
-    join(['schema', join(directives, ' '), block(operationTypes)], ' '),
-  ),
-
-  OperationTypeDefinition: ({ operation, type }) => operation + ': ' + type,
-
-  ScalarTypeDefinition: addDescription(({ name, directives }) =>
-    join(['scalar', name, join(directives, ' ')], ' '),
-  ),
-
-  ObjectTypeDefinition: addDescription(
-    ({ name, interfaces, directives, fields }) =>
-      join(
-        [
-          'type',
-          name,
-          wrap('implements ', join(interfaces, ' & ')),
-          join(directives, ' '),
-          block(fields),
-        ],
-        ' ',
-      ),
-  ),
-
-  FieldDefinition: addDescription(
-    ({ name, arguments: args, type, directives }) =>
-      name +
-      (hasMultilineItems(args)
-        ? wrap('(\n', indent(join(args, '\n')), '\n)')
-        : wrap('(', join(args, ', '), ')')) +
-      ': ' +
-      type +
-      wrap(' ', join(directives, ' ')),
-  ),
-
-  InputValueDefinition: addDescription(
-    ({ name, type, defaultValue, directives }) =>
-      join(
-        [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],
-        ' ',
-      ),
-  ),
-
-  InterfaceTypeDefinition: addDescription(
-    ({ name, interfaces, directives, fields }) =>
-      join(
-        [
-          'interface',
-          name,
-          wrap('implements ', join(interfaces, ' & ')),
-          join(directives, ' '),
-          block(fields),
-        ],
-        ' ',
-      ),
-  ),
-
-  UnionTypeDefinition: addDescription(({ name, directives, types }) =>
-    join(
-      [
-        'union',
-        name,
-        join(directives, ' '),
-        types && types.length !== 0 ? '= ' + join(types, ' | ') : '',
-      ],
-      ' ',
-    ),
-  ),
-
-  EnumTypeDefinition: addDescription(({ name, directives, values }) =>
-    join(['enum', name, join(directives, ' '), block(values)], ' '),
-  ),
-
-  EnumValueDefinition: addDescription(({ name, directives }) =>
-    join([name, join(directives, ' ')], ' '),
-  ),
-
-  InputObjectTypeDefinition: addDescription(({ name, directives, fields }) =>
-    join(['input', name, join(directives, ' '), block(fields)], ' '),
-  ),
-
-  DirectiveDefinition: addDescription(
-    ({ name, arguments: args, repeatable, locations }) =>
-      'directive @' +
-      name +
-      (hasMultilineItems(args)
-        ? wrap('(\n', indent(join(args, '\n')), '\n)')
-        : wrap('(', join(args, ', '), ')')) +
-      (repeatable ? ' repeatable' : '') +
-      ' on ' +
-      join(locations, ' | '),
-  ),
-
-  SchemaExtension: ({ directives, operationTypes }) =>
-    join(['extend schema', join(directives, ' '), block(operationTypes)], ' '),
-
-  ScalarTypeExtension: ({ name, directives }) =>
-    join(['extend scalar', name, join(directives, ' ')], ' '),
-
-  ObjectTypeExtension: ({ name, interfaces, directives, fields }) =>
-    join(
-      [
-        'extend type',
-        name,
-        wrap('implements ', join(interfaces, ' & ')),
-        join(directives, ' '),
-        block(fields),
-      ],
-      ' ',
-    ),
-
-  InterfaceTypeExtension: ({ name, interfaces, directives, fields }) =>
-    join(
-      [
-        'extend interface',
-        name,
-        wrap('implements ', join(interfaces, ' & ')),
-        join(directives, ' '),
-        block(fields),
-      ],
-      ' ',
-    ),
-
-  UnionTypeExtension: ({ name, directives, types }) =>
-    join(
-      [
-        'extend union',
-        name,
-        join(directives, ' '),
-        types && types.length !== 0 ? '= ' + join(types, ' | ') : '',
-      ],
-      ' ',
-    ),
-
-  EnumTypeExtension: ({ name, directives, values }) =>
-    join(['extend enum', name, join(directives, ' '), block(values)], ' '),
-
-  InputObjectTypeExtension: ({ name, directives, fields }) =>
-    join(['extend input', name, join(directives, ' '), block(fields)], ' '),
-};
-
-function addDescription(cb) {
-  return node => join([node.description, cb(node)], '\n');
-}
-
-/**
- * Given maybeArray, print an empty string if it is null or empty, otherwise
- * print all items together separated by separator if provided
- */
-function join(maybeArray: ?Array<string>, separator = '') {
-  return maybeArray?.filter(x => x).join(separator) ?? '';
-}
-
-/**
- * Given array, print each item on its own line, wrapped in an
- * indented "{ }" block.
- */
-function block(array) {
-  return array && array.length !== 0
-    ? '{\n' + indent(join(array, '\n')) + '\n}'
-    : '';
-}
-
-/**
- * If maybeString is not null or empty, then wrap with start and end, otherwise
- * print an empty string.
- */
-function wrap(start, maybeString, end = '') {
-  return maybeString ? start + maybeString + end : '';
-}
-
-function indent(maybeString) {
-  return maybeString && '  ' + maybeString.replace(/\n/g, '\n  ');
-}
-
-function isMultiline(string) {
-  return string.indexOf('\n') !== -1;
-}
-
-function hasMultilineItems(maybeArray) {
-  return maybeArray && maybeArray.some(isMultiline);
-}
diff --git a/node_modules/graphql/language/printer.mjs b/node_modules/graphql/language/printer.mjs
deleted file mode 100644
index 60135e8..0000000
--- a/node_modules/graphql/language/printer.mjs
+++ /dev/null
@@ -1,306 +0,0 @@
-import { visit } from "./visitor.mjs";
-import { printBlockString } from "./blockString.mjs";
-/**
- * Converts an AST into a string, using one set of reasonable
- * formatting rules.
- */
-
-export function print(ast) {
-  return visit(ast, {
-    leave: printDocASTReducer
-  });
-} // TODO: provide better type coverage in future
-
-var printDocASTReducer = {
-  Name: function Name(node) {
-    return node.value;
-  },
-  Variable: function Variable(node) {
-    return '$' + node.name;
-  },
-  // Document
-  Document: function Document(node) {
-    return join(node.definitions, '\n\n') + '\n';
-  },
-  OperationDefinition: function OperationDefinition(node) {
-    var op = node.operation;
-    var name = node.name;
-    var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');
-    var directives = join(node.directives, ' ');
-    var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use
-    // the query short form.
-
-    return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');
-  },
-  VariableDefinition: function VariableDefinition(_ref) {
-    var variable = _ref.variable,
-        type = _ref.type,
-        defaultValue = _ref.defaultValue,
-        directives = _ref.directives;
-    return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));
-  },
-  SelectionSet: function SelectionSet(_ref2) {
-    var selections = _ref2.selections;
-    return block(selections);
-  },
-  Field: function Field(_ref3) {
-    var alias = _ref3.alias,
-        name = _ref3.name,
-        args = _ref3.arguments,
-        directives = _ref3.directives,
-        selectionSet = _ref3.selectionSet;
-    return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' ');
-  },
-  Argument: function Argument(_ref4) {
-    var name = _ref4.name,
-        value = _ref4.value;
-    return name + ': ' + value;
-  },
-  // Fragments
-  FragmentSpread: function FragmentSpread(_ref5) {
-    var name = _ref5.name,
-        directives = _ref5.directives;
-    return '...' + name + wrap(' ', join(directives, ' '));
-  },
-  InlineFragment: function InlineFragment(_ref6) {
-    var typeCondition = _ref6.typeCondition,
-        directives = _ref6.directives,
-        selectionSet = _ref6.selectionSet;
-    return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');
-  },
-  FragmentDefinition: function FragmentDefinition(_ref7) {
-    var name = _ref7.name,
-        typeCondition = _ref7.typeCondition,
-        variableDefinitions = _ref7.variableDefinitions,
-        directives = _ref7.directives,
-        selectionSet = _ref7.selectionSet;
-    return (// Note: fragment variable definitions are experimental and may be changed
-      // or removed in the future.
-      "fragment ".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), " ") + "on ".concat(typeCondition, " ").concat(wrap('', join(directives, ' '), ' ')) + selectionSet
-    );
-  },
-  // Value
-  IntValue: function IntValue(_ref8) {
-    var value = _ref8.value;
-    return value;
-  },
-  FloatValue: function FloatValue(_ref9) {
-    var value = _ref9.value;
-    return value;
-  },
-  StringValue: function StringValue(_ref10, key) {
-    var value = _ref10.value,
-        isBlockString = _ref10.block;
-    return isBlockString ? printBlockString(value, key === 'description' ? '' : '  ') : JSON.stringify(value);
-  },
-  BooleanValue: function BooleanValue(_ref11) {
-    var value = _ref11.value;
-    return value ? 'true' : 'false';
-  },
-  NullValue: function NullValue() {
-    return 'null';
-  },
-  EnumValue: function EnumValue(_ref12) {
-    var value = _ref12.value;
-    return value;
-  },
-  ListValue: function ListValue(_ref13) {
-    var values = _ref13.values;
-    return '[' + join(values, ', ') + ']';
-  },
-  ObjectValue: function ObjectValue(_ref14) {
-    var fields = _ref14.fields;
-    return '{' + join(fields, ', ') + '}';
-  },
-  ObjectField: function ObjectField(_ref15) {
-    var name = _ref15.name,
-        value = _ref15.value;
-    return name + ': ' + value;
-  },
-  // Directive
-  Directive: function Directive(_ref16) {
-    var name = _ref16.name,
-        args = _ref16.arguments;
-    return '@' + name + wrap('(', join(args, ', '), ')');
-  },
-  // Type
-  NamedType: function NamedType(_ref17) {
-    var name = _ref17.name;
-    return name;
-  },
-  ListType: function ListType(_ref18) {
-    var type = _ref18.type;
-    return '[' + type + ']';
-  },
-  NonNullType: function NonNullType(_ref19) {
-    var type = _ref19.type;
-    return type + '!';
-  },
-  // Type System Definitions
-  SchemaDefinition: addDescription(function (_ref20) {
-    var directives = _ref20.directives,
-        operationTypes = _ref20.operationTypes;
-    return join(['schema', join(directives, ' '), block(operationTypes)], ' ');
-  }),
-  OperationTypeDefinition: function OperationTypeDefinition(_ref21) {
-    var operation = _ref21.operation,
-        type = _ref21.type;
-    return operation + ': ' + type;
-  },
-  ScalarTypeDefinition: addDescription(function (_ref22) {
-    var name = _ref22.name,
-        directives = _ref22.directives;
-    return join(['scalar', name, join(directives, ' ')], ' ');
-  }),
-  ObjectTypeDefinition: addDescription(function (_ref23) {
-    var name = _ref23.name,
-        interfaces = _ref23.interfaces,
-        directives = _ref23.directives,
-        fields = _ref23.fields;
-    return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  }),
-  FieldDefinition: addDescription(function (_ref24) {
-    var name = _ref24.name,
-        args = _ref24.arguments,
-        type = _ref24.type,
-        directives = _ref24.directives;
-    return name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));
-  }),
-  InputValueDefinition: addDescription(function (_ref25) {
-    var name = _ref25.name,
-        type = _ref25.type,
-        defaultValue = _ref25.defaultValue,
-        directives = _ref25.directives;
-    return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');
-  }),
-  InterfaceTypeDefinition: addDescription(function (_ref26) {
-    var name = _ref26.name,
-        interfaces = _ref26.interfaces,
-        directives = _ref26.directives,
-        fields = _ref26.fields;
-    return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  }),
-  UnionTypeDefinition: addDescription(function (_ref27) {
-    var name = _ref27.name,
-        directives = _ref27.directives,
-        types = _ref27.types;
-    return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');
-  }),
-  EnumTypeDefinition: addDescription(function (_ref28) {
-    var name = _ref28.name,
-        directives = _ref28.directives,
-        values = _ref28.values;
-    return join(['enum', name, join(directives, ' '), block(values)], ' ');
-  }),
-  EnumValueDefinition: addDescription(function (_ref29) {
-    var name = _ref29.name,
-        directives = _ref29.directives;
-    return join([name, join(directives, ' ')], ' ');
-  }),
-  InputObjectTypeDefinition: addDescription(function (_ref30) {
-    var name = _ref30.name,
-        directives = _ref30.directives,
-        fields = _ref30.fields;
-    return join(['input', name, join(directives, ' '), block(fields)], ' ');
-  }),
-  DirectiveDefinition: addDescription(function (_ref31) {
-    var name = _ref31.name,
-        args = _ref31.arguments,
-        repeatable = _ref31.repeatable,
-        locations = _ref31.locations;
-    return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');
-  }),
-  SchemaExtension: function SchemaExtension(_ref32) {
-    var directives = _ref32.directives,
-        operationTypes = _ref32.operationTypes;
-    return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');
-  },
-  ScalarTypeExtension: function ScalarTypeExtension(_ref33) {
-    var name = _ref33.name,
-        directives = _ref33.directives;
-    return join(['extend scalar', name, join(directives, ' ')], ' ');
-  },
-  ObjectTypeExtension: function ObjectTypeExtension(_ref34) {
-    var name = _ref34.name,
-        interfaces = _ref34.interfaces,
-        directives = _ref34.directives,
-        fields = _ref34.fields;
-    return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  },
-  InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {
-    var name = _ref35.name,
-        interfaces = _ref35.interfaces,
-        directives = _ref35.directives,
-        fields = _ref35.fields;
-    return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');
-  },
-  UnionTypeExtension: function UnionTypeExtension(_ref36) {
-    var name = _ref36.name,
-        directives = _ref36.directives,
-        types = _ref36.types;
-    return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');
-  },
-  EnumTypeExtension: function EnumTypeExtension(_ref37) {
-    var name = _ref37.name,
-        directives = _ref37.directives,
-        values = _ref37.values;
-    return join(['extend enum', name, join(directives, ' '), block(values)], ' ');
-  },
-  InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {
-    var name = _ref38.name,
-        directives = _ref38.directives,
-        fields = _ref38.fields;
-    return join(['extend input', name, join(directives, ' '), block(fields)], ' ');
-  }
-};
-
-function addDescription(cb) {
-  return function (node) {
-    return join([node.description, cb(node)], '\n');
-  };
-}
-/**
- * Given maybeArray, print an empty string if it is null or empty, otherwise
- * print all items together separated by separator if provided
- */
-
-
-function join(maybeArray) {
-  var _ref39;
-
-  var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  return (_ref39 = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {
-    return x;
-  }).join(separator)) !== null && _ref39 !== void 0 ? _ref39 : '';
-}
-/**
- * Given array, print each item on its own line, wrapped in an
- * indented "{ }" block.
- */
-
-
-function block(array) {
-  return array && array.length !== 0 ? '{\n' + indent(join(array, '\n')) + '\n}' : '';
-}
-/**
- * If maybeString is not null or empty, then wrap with start and end, otherwise
- * print an empty string.
- */
-
-
-function wrap(start, maybeString) {
-  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-  return maybeString ? start + maybeString + end : '';
-}
-
-function indent(maybeString) {
-  return maybeString && '  ' + maybeString.replace(/\n/g, '\n  ');
-}
-
-function isMultiline(string) {
-  return string.indexOf('\n') !== -1;
-}
-
-function hasMultilineItems(maybeArray) {
-  return maybeArray && maybeArray.some(isMultiline);
-}
diff --git a/node_modules/graphql/language/source.d.ts b/node_modules/graphql/language/source.d.ts
deleted file mode 100644
index 4517784..0000000
--- a/node_modules/graphql/language/source.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-interface Location {
-  line: number;
-  column: number;
-}
-
-/**
- * A representation of source input to GraphQL.
- * `name` and `locationOffset` are optional. They are useful for clients who
- * store GraphQL documents in source files; for example, if the GraphQL input
- * starts at line 40 in a file named Foo.graphql, it might be useful for name to
- * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`.
- * line and column in locationOffset are 1-indexed
- */
-export class Source {
-  body: string;
-  name: string;
-  locationOffset: Location;
-  constructor(body: string, name?: string, locationOffset?: Location);
-}
diff --git a/node_modules/graphql/language/source.js b/node_modules/graphql/language/source.js
deleted file mode 100644
index ce77a82..0000000
--- a/node_modules/graphql/language/source.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.Source = void 0;
-
-var _symbols = require("../polyfills/symbols");
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * A representation of source input to GraphQL.
- * `name` and `locationOffset` are optional. They are useful for clients who
- * store GraphQL documents in source files; for example, if the GraphQL input
- * starts at line 40 in a file named Foo.graphql, it might be useful for name to
- * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`.
- * line and column in locationOffset are 1-indexed
- */
-var Source =
-/*#__PURE__*/
-function () {
-  function Source(body) {
-    var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';
-    var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
-      line: 1,
-      column: 1
-    };
-    this.body = body;
-    this.name = name;
-    this.locationOffset = locationOffset;
-    this.locationOffset.line > 0 || (0, _devAssert.default)(0, 'line in locationOffset is 1-indexed and must be positive.');
-    this.locationOffset.column > 0 || (0, _devAssert.default)(0, 'column in locationOffset is 1-indexed and must be positive.');
-  } // $FlowFixMe Flow doesn't support computed properties yet
-
-
-  _createClass(Source, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'Source';
-    }
-  }]);
-
-  return Source;
-}();
-
-exports.Source = Source;
diff --git a/node_modules/graphql/language/source.js.flow b/node_modules/graphql/language/source.js.flow
deleted file mode 100644
index 961205a..0000000
--- a/node_modules/graphql/language/source.js.flow
+++ /dev/null
@@ -1,47 +0,0 @@
-// @flow strict
-
-import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
-
-import devAssert from '../jsutils/devAssert';
-
-type Location = {|
-  line: number,
-  column: number,
-|};
-
-/**
- * A representation of source input to GraphQL.
- * `name` and `locationOffset` are optional. They are useful for clients who
- * store GraphQL documents in source files; for example, if the GraphQL input
- * starts at line 40 in a file named Foo.graphql, it might be useful for name to
- * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`.
- * line and column in locationOffset are 1-indexed
- */
-export class Source {
-  body: string;
-  name: string;
-  locationOffset: Location;
-
-  constructor(
-    body: string,
-    name: string = 'GraphQL request',
-    locationOffset: Location = { line: 1, column: 1 },
-  ): void {
-    this.body = body;
-    this.name = name;
-    this.locationOffset = locationOffset;
-    devAssert(
-      this.locationOffset.line > 0,
-      'line in locationOffset is 1-indexed and must be positive.',
-    );
-    devAssert(
-      this.locationOffset.column > 0,
-      'column in locationOffset is 1-indexed and must be positive.',
-    );
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'Source';
-  }
-}
diff --git a/node_modules/graphql/language/source.mjs b/node_modules/graphql/language/source.mjs
deleted file mode 100644
index 35f3750..0000000
--- a/node_modules/graphql/language/source.mjs
+++ /dev/null
@@ -1,41 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-
-/**
- * A representation of source input to GraphQL.
- * `name` and `locationOffset` are optional. They are useful for clients who
- * store GraphQL documents in source files; for example, if the GraphQL input
- * starts at line 40 in a file named Foo.graphql, it might be useful for name to
- * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`.
- * line and column in locationOffset are 1-indexed
- */
-export var Source =
-/*#__PURE__*/
-function () {
-  function Source(body) {
-    var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';
-    var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
-      line: 1,
-      column: 1
-    };
-    this.body = body;
-    this.name = name;
-    this.locationOffset = locationOffset;
-    this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');
-    this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');
-  } // $FlowFixMe Flow doesn't support computed properties yet
-
-
-  _createClass(Source, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'Source';
-    }
-  }]);
-
-  return Source;
-}();
diff --git a/node_modules/graphql/language/tokenKind.d.ts b/node_modules/graphql/language/tokenKind.d.ts
deleted file mode 100644
index 9919487..0000000
--- a/node_modules/graphql/language/tokenKind.d.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * An exported enum describing the different kinds of tokens that the
- * lexer emits.
- */
-export const TokenKind: _TokenKind;
-
-type _TokenKind = {
-  SOF: '<SOF>';
-  EOF: '<EOF>';
-  BANG: '!';
-  DOLLAR: '$';
-  AMP: '&';
-  PAREN_L: '(';
-  PAREN_R: ')';
-  SPREAD: '...';
-  COLON: ':';
-  EQUALS: '=';
-  AT: '@';
-  BRACKET_L: '[';
-  BRACKET_R: ']';
-  BRACE_L: '{';
-  PIPE: '|';
-  BRACE_R: '}';
-  NAME: 'Name';
-  INT: 'Int';
-  FLOAT: 'Float';
-  STRING: 'String';
-  BLOCK_STRING: 'BlockString';
-  COMMENT: 'Comment';
-};
-
-/**
- * The enum type representing the token kinds values.
- */
-export type TokenKindEnum = _TokenKind[keyof _TokenKind];
diff --git a/node_modules/graphql/language/tokenKind.js b/node_modules/graphql/language/tokenKind.js
deleted file mode 100644
index 3d5532d..0000000
--- a/node_modules/graphql/language/tokenKind.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.TokenKind = void 0;
-
-/**
- * An exported enum describing the different kinds of tokens that the
- * lexer emits.
- */
-var TokenKind = Object.freeze({
-  SOF: '<SOF>',
-  EOF: '<EOF>',
-  BANG: '!',
-  DOLLAR: '$',
-  AMP: '&',
-  PAREN_L: '(',
-  PAREN_R: ')',
-  SPREAD: '...',
-  COLON: ':',
-  EQUALS: '=',
-  AT: '@',
-  BRACKET_L: '[',
-  BRACKET_R: ']',
-  BRACE_L: '{',
-  PIPE: '|',
-  BRACE_R: '}',
-  NAME: 'Name',
-  INT: 'Int',
-  FLOAT: 'Float',
-  STRING: 'String',
-  BLOCK_STRING: 'BlockString',
-  COMMENT: 'Comment'
-});
-/**
- * The enum type representing the token kinds values.
- */
-
-exports.TokenKind = TokenKind;
diff --git a/node_modules/graphql/language/tokenKind.js.flow b/node_modules/graphql/language/tokenKind.js.flow
deleted file mode 100644
index 0dd0afc..0000000
--- a/node_modules/graphql/language/tokenKind.js.flow
+++ /dev/null
@@ -1,35 +0,0 @@
-// @flow strict
-
-/**
- * An exported enum describing the different kinds of tokens that the
- * lexer emits.
- */
-export const TokenKind = Object.freeze({
-  SOF: '<SOF>',
-  EOF: '<EOF>',
-  BANG: '!',
-  DOLLAR: '$',
-  AMP: '&',
-  PAREN_L: '(',
-  PAREN_R: ')',
-  SPREAD: '...',
-  COLON: ':',
-  EQUALS: '=',
-  AT: '@',
-  BRACKET_L: '[',
-  BRACKET_R: ']',
-  BRACE_L: '{',
-  PIPE: '|',
-  BRACE_R: '}',
-  NAME: 'Name',
-  INT: 'Int',
-  FLOAT: 'Float',
-  STRING: 'String',
-  BLOCK_STRING: 'BlockString',
-  COMMENT: 'Comment',
-});
-
-/**
- * The enum type representing the token kinds values.
- */
-export type TokenKindEnum = $Values<typeof TokenKind>;
diff --git a/node_modules/graphql/language/tokenKind.mjs b/node_modules/graphql/language/tokenKind.mjs
deleted file mode 100644
index f100b99..0000000
--- a/node_modules/graphql/language/tokenKind.mjs
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * An exported enum describing the different kinds of tokens that the
- * lexer emits.
- */
-export var TokenKind = Object.freeze({
-  SOF: '<SOF>',
-  EOF: '<EOF>',
-  BANG: '!',
-  DOLLAR: '$',
-  AMP: '&',
-  PAREN_L: '(',
-  PAREN_R: ')',
-  SPREAD: '...',
-  COLON: ':',
-  EQUALS: '=',
-  AT: '@',
-  BRACKET_L: '[',
-  BRACKET_R: ']',
-  BRACE_L: '{',
-  PIPE: '|',
-  BRACE_R: '}',
-  NAME: 'Name',
-  INT: 'Int',
-  FLOAT: 'Float',
-  STRING: 'String',
-  BLOCK_STRING: 'BlockString',
-  COMMENT: 'Comment'
-});
-/**
- * The enum type representing the token kinds values.
- */
diff --git a/node_modules/graphql/language/visitor.d.ts b/node_modules/graphql/language/visitor.d.ts
deleted file mode 100644
index d5b4618..0000000
--- a/node_modules/graphql/language/visitor.d.ts
+++ /dev/null
@@ -1,262 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { ASTNode, ASTKindToNode } from './ast';
-
-/**
- * A visitor is provided to visit, it contains the collection of
- * relevant functions to be called during the visitor's traversal.
- */
-export type ASTVisitor = Visitor<ASTKindToNode>;
-export type Visitor<KindToNode, Nodes = KindToNode[keyof KindToNode]> =
-  | EnterLeaveVisitor<KindToNode, Nodes>
-  | ShapeMapVisitor<KindToNode, Nodes>;
-
-interface EnterLeave<T> {
-  readonly enter?: T;
-  readonly leave?: T;
-}
-
-type EnterLeaveVisitor<KindToNode, Nodes> = EnterLeave<
-  VisitFn<Nodes> | { [K in keyof KindToNode]?: VisitFn<Nodes, KindToNode[K]> }
->;
-
-type ShapeMapVisitor<KindToNode, Nodes> = {
-  [K in keyof KindToNode]?:
-    | VisitFn<Nodes, KindToNode[K]>
-    | EnterLeave<VisitFn<Nodes, KindToNode[K]>>;
-};
-
-/**
- * A visitor is comprised of visit functions, which are called on each node
- * during the visitor's traversal.
- */
-export type VisitFn<TAnyNode, TVisitedNode = TAnyNode> = (
-  /** The current node being visiting.*/
-  node: TVisitedNode,
-  /** The index or key to this node from the parent node or Array. */
-  key: string | number | undefined,
-  /** The parent immediately above this node, which may be an Array. */
-  parent: TAnyNode | ReadonlyArray<TAnyNode> | undefined,
-  /** The key path to get to this node from the root node. */
-  path: ReadonlyArray<string | number>,
-  /** All nodes and Arrays visited before reaching parent of this node.
-   * These correspond to array indices in `path`.
-   * Note: ancestors includes arrays which contain the parent of visited node.
-   */
-  ancestors: ReadonlyArray<TAnyNode | ReadonlyArray<TAnyNode>>,
-) => any;
-
-/**
- * A KeyMap describes each the traversable properties of each kind of node.
- */
-export type VisitorKeyMap<T> = { [P in keyof T]: ReadonlyArray<keyof T[P]> };
-
-// TODO: Should be `[]`, but that requires TypeScript@3
-type EmptyTuple = Array<never>;
-
-export const QueryDocumentKeys: {
-  Name: EmptyTuple;
-
-  Document: ['definitions'];
-  // Prettier forces trailing commas, but TS pre 3.2 doesn't allow them.
-  // prettier-ignore
-  OperationDefinition: [
-    'name',
-    'variableDefinitions',
-    'directives',
-    'selectionSet'
-  ];
-  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'];
-  Variable: ['name'];
-  SelectionSet: ['selections'];
-  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'];
-  Argument: ['name', 'value'];
-
-  FragmentSpread: ['name', 'directives'];
-  InlineFragment: ['typeCondition', 'directives', 'selectionSet'];
-  // prettier-ignore
-  FragmentDefinition: [
-    'name',
-    // Note: fragment variable definitions are experimental and may be changed
-    // or removed in the future.
-    'variableDefinitions',
-    'typeCondition',
-    'directives',
-    'selectionSet'
-  ];
-
-  IntValue: EmptyTuple;
-  FloatValue: EmptyTuple;
-  StringValue: EmptyTuple;
-  BooleanValue: EmptyTuple;
-  NullValue: EmptyTuple;
-  EnumValue: EmptyTuple;
-  ListValue: ['values'];
-  ObjectValue: ['fields'];
-  ObjectField: ['name', 'value'];
-
-  Directive: ['name', 'arguments'];
-
-  NamedType: ['name'];
-  ListType: ['type'];
-  NonNullType: ['type'];
-
-  SchemaDefinition: ['description', 'directives', 'operationTypes'];
-  OperationTypeDefinition: ['type'];
-
-  ScalarTypeDefinition: ['description', 'name', 'directives'];
-  // prettier-ignore
-  ObjectTypeDefinition: [
-    'description',
-    'name',
-    'interfaces',
-    'directives',
-    'fields'
-  ];
-  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'];
-  // prettier-ignore
-  InputValueDefinition: [
-    'description',
-    'name',
-    'type',
-    'defaultValue',
-    'directives'
-  ];
-  // prettier-ignore
-  InterfaceTypeDefinition: [
-    'description',
-    'name',
-    'interfaces',
-    'directives',
-    'fields'
-  ];
-  UnionTypeDefinition: ['description', 'name', 'directives', 'types'];
-  EnumTypeDefinition: ['description', 'name', 'directives', 'values'];
-  EnumValueDefinition: ['description', 'name', 'directives'];
-  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'];
-
-  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'];
-
-  SchemaExtension: ['directives', 'operationTypes'];
-
-  ScalarTypeExtension: ['name', 'directives'];
-  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'];
-  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'];
-  UnionTypeExtension: ['name', 'directives', 'types'];
-  EnumTypeExtension: ['name', 'directives', 'values'];
-  InputObjectTypeExtension: ['name', 'directives', 'fields'];
-};
-
-export const BREAK: any;
-
-/**
- * visit() will walk through an AST using a depth first traversal, calling
- * the visitor's enter function at each node in the traversal, and calling the
- * leave function after visiting that node and all of its child nodes.
- *
- * By returning different values from the enter and leave functions, the
- * behavior of the visitor can be altered, including skipping over a sub-tree of
- * the AST (by returning false), editing the AST by returning a value or null
- * to remove the value, or to stop the whole traversal by returning BREAK.
- *
- * When using visit() to edit an AST, the original AST will not be modified, and
- * a new version of the AST with the changes applied will be returned from the
- * visit function.
- *
- *     const editedAST = visit(ast, {
- *       enter(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: skip visiting this node
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       },
- *       leave(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: no action
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       }
- *     });
- *
- * Alternatively to providing enter() and leave() functions, a visitor can
- * instead provide functions named the same as the kinds of AST nodes, or
- * enter/leave visitors at a named key, leading to four permutations of
- * visitor API:
- *
- * 1) Named visitors triggered when entering a node a specific kind.
- *
- *     visit(ast, {
- *       Kind(node) {
- *         // enter the "Kind" node
- *       }
- *     })
- *
- * 2) Named visitors that trigger upon entering and leaving a node of
- *    a specific kind.
- *
- *     visit(ast, {
- *       Kind: {
- *         enter(node) {
- *           // enter the "Kind" node
- *         }
- *         leave(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- *
- * 3) Generic visitors that trigger upon entering and leaving any node.
- *
- *     visit(ast, {
- *       enter(node) {
- *         // enter any node
- *       },
- *       leave(node) {
- *         // leave any node
- *       }
- *     })
- *
- * 4) Parallel visitors for entering and leaving nodes of a specific kind.
- *
- *     visit(ast, {
- *       enter: {
- *         Kind(node) {
- *           // enter the "Kind" node
- *         }
- *       },
- *       leave: {
- *         Kind(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- */
-export function visit(
-  root: ASTNode,
-  visitor: Visitor<ASTKindToNode>,
-  visitorKeys?: VisitorKeyMap<ASTKindToNode>, // default: QueryDocumentKeys
-): any;
-
-/**
- * Creates a new visitor instance which delegates to many visitors to run in
- * parallel. Each visitor will be visited for each node before moving on.
- *
- * If a prior visitor edits a node, no following visitors will see that node.
- */
-export function visitInParallel(
-  visitors: ReadonlyArray<Visitor<ASTKindToNode>>,
-): Visitor<ASTKindToNode>;
-
-/**
- * Given a visitor instance, if it is leaving or not, and a node kind, return
- * the function the visitor runtime should call.
- */
-export function getVisitFn(
-  visitor: Visitor<any>,
-  kind: string,
-  isLeaving: boolean,
-): Maybe<VisitFn<any>>;
diff --git a/node_modules/graphql/language/visitor.js b/node_modules/graphql/language/visitor.js
deleted file mode 100644
index 4f2ea71..0000000
--- a/node_modules/graphql/language/visitor.js
+++ /dev/null
@@ -1,397 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.visit = visit;
-exports.visitInParallel = visitInParallel;
-exports.getVisitFn = getVisitFn;
-exports.BREAK = exports.QueryDocumentKeys = void 0;
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _ast = require("./ast");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var QueryDocumentKeys = {
-  Name: [],
-  Document: ['definitions'],
-  OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],
-  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
-  Variable: ['name'],
-  SelectionSet: ['selections'],
-  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
-  Argument: ['name', 'value'],
-  FragmentSpread: ['name', 'directives'],
-  InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
-  FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed
-  // or removed in the future.
-  'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],
-  IntValue: [],
-  FloatValue: [],
-  StringValue: [],
-  BooleanValue: [],
-  NullValue: [],
-  EnumValue: [],
-  ListValue: ['values'],
-  ObjectValue: ['fields'],
-  ObjectField: ['name', 'value'],
-  Directive: ['name', 'arguments'],
-  NamedType: ['name'],
-  ListType: ['type'],
-  NonNullType: ['type'],
-  SchemaDefinition: ['description', 'directives', 'operationTypes'],
-  OperationTypeDefinition: ['type'],
-  ScalarTypeDefinition: ['description', 'name', 'directives'],
-  ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],
-  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],
-  InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],
-  InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],
-  UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
-  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
-  EnumValueDefinition: ['description', 'name', 'directives'],
-  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
-  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
-  SchemaExtension: ['directives', 'operationTypes'],
-  ScalarTypeExtension: ['name', 'directives'],
-  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  UnionTypeExtension: ['name', 'directives', 'types'],
-  EnumTypeExtension: ['name', 'directives', 'values'],
-  InputObjectTypeExtension: ['name', 'directives', 'fields']
-};
-exports.QueryDocumentKeys = QueryDocumentKeys;
-var BREAK = Object.freeze({});
-/**
- * visit() will walk through an AST using a depth first traversal, calling
- * the visitor's enter function at each node in the traversal, and calling the
- * leave function after visiting that node and all of its child nodes.
- *
- * By returning different values from the enter and leave functions, the
- * behavior of the visitor can be altered, including skipping over a sub-tree of
- * the AST (by returning false), editing the AST by returning a value or null
- * to remove the value, or to stop the whole traversal by returning BREAK.
- *
- * When using visit() to edit an AST, the original AST will not be modified, and
- * a new version of the AST with the changes applied will be returned from the
- * visit function.
- *
- *     const editedAST = visit(ast, {
- *       enter(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: skip visiting this node
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       },
- *       leave(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: no action
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       }
- *     });
- *
- * Alternatively to providing enter() and leave() functions, a visitor can
- * instead provide functions named the same as the kinds of AST nodes, or
- * enter/leave visitors at a named key, leading to four permutations of
- * visitor API:
- *
- * 1) Named visitors triggered when entering a node a specific kind.
- *
- *     visit(ast, {
- *       Kind(node) {
- *         // enter the "Kind" node
- *       }
- *     })
- *
- * 2) Named visitors that trigger upon entering and leaving a node of
- *    a specific kind.
- *
- *     visit(ast, {
- *       Kind: {
- *         enter(node) {
- *           // enter the "Kind" node
- *         }
- *         leave(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- *
- * 3) Generic visitors that trigger upon entering and leaving any node.
- *
- *     visit(ast, {
- *       enter(node) {
- *         // enter any node
- *       },
- *       leave(node) {
- *         // leave any node
- *       }
- *     })
- *
- * 4) Parallel visitors for entering and leaving nodes of a specific kind.
- *
- *     visit(ast, {
- *       enter: {
- *         Kind(node) {
- *           // enter the "Kind" node
- *         }
- *       },
- *       leave: {
- *         Kind(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- */
-
-exports.BREAK = BREAK;
-
-function visit(root, visitor) {
-  var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;
-
-  /* eslint-disable no-undef-init */
-  var stack = undefined;
-  var inArray = Array.isArray(root);
-  var keys = [root];
-  var index = -1;
-  var edits = [];
-  var node = undefined;
-  var key = undefined;
-  var parent = undefined;
-  var path = [];
-  var ancestors = [];
-  var newRoot = root;
-  /* eslint-enable no-undef-init */
-
-  do {
-    index++;
-    var isLeaving = index === keys.length;
-    var isEdited = isLeaving && edits.length !== 0;
-
-    if (isLeaving) {
-      key = ancestors.length === 0 ? undefined : path[path.length - 1];
-      node = parent;
-      parent = ancestors.pop();
-
-      if (isEdited) {
-        if (inArray) {
-          node = node.slice();
-        } else {
-          var clone = {};
-
-          for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {
-            var k = _Object$keys2[_i2];
-            clone[k] = node[k];
-          }
-
-          node = clone;
-        }
-
-        var editOffset = 0;
-
-        for (var ii = 0; ii < edits.length; ii++) {
-          var editKey = edits[ii][0];
-          var editValue = edits[ii][1];
-
-          if (inArray) {
-            editKey -= editOffset;
-          }
-
-          if (inArray && editValue === null) {
-            node.splice(editKey, 1);
-            editOffset++;
-          } else {
-            node[editKey] = editValue;
-          }
-        }
-      }
-
-      index = stack.index;
-      keys = stack.keys;
-      edits = stack.edits;
-      inArray = stack.inArray;
-      stack = stack.prev;
-    } else {
-      key = parent ? inArray ? index : keys[index] : undefined;
-      node = parent ? parent[key] : newRoot;
-
-      if (node === null || node === undefined) {
-        continue;
-      }
-
-      if (parent) {
-        path.push(key);
-      }
-    }
-
-    var result = void 0;
-
-    if (!Array.isArray(node)) {
-      if (!(0, _ast.isNode)(node)) {
-        throw new Error("Invalid AST Node: ".concat((0, _inspect.default)(node), "."));
-      }
-
-      var visitFn = getVisitFn(visitor, node.kind, isLeaving);
-
-      if (visitFn) {
-        result = visitFn.call(visitor, node, key, parent, path, ancestors);
-
-        if (result === BREAK) {
-          break;
-        }
-
-        if (result === false) {
-          if (!isLeaving) {
-            path.pop();
-            continue;
-          }
-        } else if (result !== undefined) {
-          edits.push([key, result]);
-
-          if (!isLeaving) {
-            if ((0, _ast.isNode)(result)) {
-              node = result;
-            } else {
-              path.pop();
-              continue;
-            }
-          }
-        }
-      }
-    }
-
-    if (result === undefined && isEdited) {
-      edits.push([key, node]);
-    }
-
-    if (isLeaving) {
-      path.pop();
-    } else {
-      var _visitorKeys$node$kin;
-
-      stack = {
-        inArray: inArray,
-        index: index,
-        keys: keys,
-        edits: edits,
-        prev: stack
-      };
-      inArray = Array.isArray(node);
-      keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];
-      index = -1;
-      edits = [];
-
-      if (parent) {
-        ancestors.push(parent);
-      }
-
-      parent = node;
-    }
-  } while (stack !== undefined);
-
-  if (edits.length !== 0) {
-    newRoot = edits[edits.length - 1][1];
-  }
-
-  return newRoot;
-}
-/**
- * Creates a new visitor instance which delegates to many visitors to run in
- * parallel. Each visitor will be visited for each node before moving on.
- *
- * If a prior visitor edits a node, no following visitors will see that node.
- */
-
-
-function visitInParallel(visitors) {
-  var skipping = new Array(visitors.length);
-  return {
-    enter: function enter(node) {
-      for (var i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          var fn = getVisitFn(visitors[i], node.kind,
-          /* isLeaving */
-          false);
-
-          if (fn) {
-            var result = fn.apply(visitors[i], arguments);
-
-            if (result === false) {
-              skipping[i] = node;
-            } else if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined) {
-              return result;
-            }
-          }
-        }
-      }
-    },
-    leave: function leave(node) {
-      for (var i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          var fn = getVisitFn(visitors[i], node.kind,
-          /* isLeaving */
-          true);
-
-          if (fn) {
-            var result = fn.apply(visitors[i], arguments);
-
-            if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined && result !== false) {
-              return result;
-            }
-          }
-        } else if (skipping[i] === node) {
-          skipping[i] = null;
-        }
-      }
-    }
-  };
-}
-/**
- * Given a visitor instance, if it is leaving or not, and a node kind, return
- * the function the visitor runtime should call.
- */
-
-
-function getVisitFn(visitor, kind, isLeaving) {
-  var kindVisitor = visitor[kind];
-
-  if (kindVisitor) {
-    if (!isLeaving && typeof kindVisitor === 'function') {
-      // { Kind() {} }
-      return kindVisitor;
-    }
-
-    var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;
-
-    if (typeof kindSpecificVisitor === 'function') {
-      // { Kind: { enter() {}, leave() {} } }
-      return kindSpecificVisitor;
-    }
-  } else {
-    var specificVisitor = isLeaving ? visitor.leave : visitor.enter;
-
-    if (specificVisitor) {
-      if (typeof specificVisitor === 'function') {
-        // { enter() {}, leave() {} }
-        return specificVisitor;
-      }
-
-      var specificKindVisitor = specificVisitor[kind];
-
-      if (typeof specificKindVisitor === 'function') {
-        // { enter: { Kind() {} }, leave: { Kind() {} } }
-        return specificKindVisitor;
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/language/visitor.js.flow b/node_modules/graphql/language/visitor.js.flow
deleted file mode 100644
index e310ecd..0000000
--- a/node_modules/graphql/language/visitor.js.flow
+++ /dev/null
@@ -1,437 +0,0 @@
-// @flow strict
-
-import inspect from '../jsutils/inspect';
-
-import { type ASTNode, type ASTKindToNode, isNode } from './ast';
-
-/**
- * A visitor is provided to visit, it contains the collection of
- * relevant functions to be called during the visitor's traversal.
- */
-export type ASTVisitor = Visitor<ASTKindToNode>;
-export type Visitor<KindToNode, Nodes = $Values<KindToNode>> =
-  | EnterLeave<
-      | VisitFn<Nodes>
-      | ShapeMap<KindToNode, <Node>(Node) => VisitFn<Nodes, Node>>,
-    >
-  | ShapeMap<
-      KindToNode,
-      <Node>(Node) => VisitFn<Nodes, Node> | EnterLeave<VisitFn<Nodes, Node>>,
-    >;
-type EnterLeave<T> = {| +enter?: T, +leave?: T |};
-type ShapeMap<O, F> = $Shape<$ObjMap<O, F>>;
-
-/**
- * A visitor is comprised of visit functions, which are called on each node
- * during the visitor's traversal.
- */
-export type VisitFn<TAnyNode, TVisitedNode: TAnyNode = TAnyNode> = (
-  // The current node being visiting.
-  node: TVisitedNode,
-  // The index or key to this node from the parent node or Array.
-  key: string | number | void,
-  // The parent immediately above this node, which may be an Array.
-  parent: TAnyNode | $ReadOnlyArray<TAnyNode> | void,
-  // The key path to get to this node from the root node.
-  path: $ReadOnlyArray<string | number>,
-  // All nodes and Arrays visited before reaching parent of this node.
-  // These correspond to array indices in `path`.
-  // Note: ancestors includes arrays which contain the parent of visited node.
-  ancestors: $ReadOnlyArray<TAnyNode | $ReadOnlyArray<TAnyNode>>,
-) => any;
-
-/**
- * A KeyMap describes each the traversable properties of each kind of node.
- */
-export type VisitorKeyMap<KindToNode> = $ObjMap<
-  KindToNode,
-  <T>(T) => $ReadOnlyArray<$Keys<T>>,
->;
-
-export const QueryDocumentKeys: VisitorKeyMap<ASTKindToNode> = {
-  Name: [],
-
-  Document: ['definitions'],
-  OperationDefinition: [
-    'name',
-    'variableDefinitions',
-    'directives',
-    'selectionSet',
-  ],
-  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
-  Variable: ['name'],
-  SelectionSet: ['selections'],
-  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
-  Argument: ['name', 'value'],
-
-  FragmentSpread: ['name', 'directives'],
-  InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
-  FragmentDefinition: [
-    'name',
-    // Note: fragment variable definitions are experimental and may be changed
-    // or removed in the future.
-    'variableDefinitions',
-    'typeCondition',
-    'directives',
-    'selectionSet',
-  ],
-
-  IntValue: [],
-  FloatValue: [],
-  StringValue: [],
-  BooleanValue: [],
-  NullValue: [],
-  EnumValue: [],
-  ListValue: ['values'],
-  ObjectValue: ['fields'],
-  ObjectField: ['name', 'value'],
-
-  Directive: ['name', 'arguments'],
-
-  NamedType: ['name'],
-  ListType: ['type'],
-  NonNullType: ['type'],
-
-  SchemaDefinition: ['description', 'directives', 'operationTypes'],
-  OperationTypeDefinition: ['type'],
-
-  ScalarTypeDefinition: ['description', 'name', 'directives'],
-  ObjectTypeDefinition: [
-    'description',
-    'name',
-    'interfaces',
-    'directives',
-    'fields',
-  ],
-  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],
-  InputValueDefinition: [
-    'description',
-    'name',
-    'type',
-    'defaultValue',
-    'directives',
-  ],
-  InterfaceTypeDefinition: [
-    'description',
-    'name',
-    'interfaces',
-    'directives',
-    'fields',
-  ],
-  UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
-  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
-  EnumValueDefinition: ['description', 'name', 'directives'],
-  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
-
-  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
-
-  SchemaExtension: ['directives', 'operationTypes'],
-
-  ScalarTypeExtension: ['name', 'directives'],
-  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  UnionTypeExtension: ['name', 'directives', 'types'],
-  EnumTypeExtension: ['name', 'directives', 'values'],
-  InputObjectTypeExtension: ['name', 'directives', 'fields'],
-};
-
-export const BREAK: { ... } = Object.freeze({});
-
-/**
- * visit() will walk through an AST using a depth first traversal, calling
- * the visitor's enter function at each node in the traversal, and calling the
- * leave function after visiting that node and all of its child nodes.
- *
- * By returning different values from the enter and leave functions, the
- * behavior of the visitor can be altered, including skipping over a sub-tree of
- * the AST (by returning false), editing the AST by returning a value or null
- * to remove the value, or to stop the whole traversal by returning BREAK.
- *
- * When using visit() to edit an AST, the original AST will not be modified, and
- * a new version of the AST with the changes applied will be returned from the
- * visit function.
- *
- *     const editedAST = visit(ast, {
- *       enter(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: skip visiting this node
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       },
- *       leave(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: no action
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       }
- *     });
- *
- * Alternatively to providing enter() and leave() functions, a visitor can
- * instead provide functions named the same as the kinds of AST nodes, or
- * enter/leave visitors at a named key, leading to four permutations of
- * visitor API:
- *
- * 1) Named visitors triggered when entering a node a specific kind.
- *
- *     visit(ast, {
- *       Kind(node) {
- *         // enter the "Kind" node
- *       }
- *     })
- *
- * 2) Named visitors that trigger upon entering and leaving a node of
- *    a specific kind.
- *
- *     visit(ast, {
- *       Kind: {
- *         enter(node) {
- *           // enter the "Kind" node
- *         }
- *         leave(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- *
- * 3) Generic visitors that trigger upon entering and leaving any node.
- *
- *     visit(ast, {
- *       enter(node) {
- *         // enter any node
- *       },
- *       leave(node) {
- *         // leave any node
- *       }
- *     })
- *
- * 4) Parallel visitors for entering and leaving nodes of a specific kind.
- *
- *     visit(ast, {
- *       enter: {
- *         Kind(node) {
- *           // enter the "Kind" node
- *         }
- *       },
- *       leave: {
- *         Kind(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- */
-export function visit(
-  root: ASTNode,
-  visitor: Visitor<ASTKindToNode>,
-  visitorKeys: VisitorKeyMap<ASTKindToNode> = QueryDocumentKeys,
-): any {
-  /* eslint-disable no-undef-init */
-  let stack: any = undefined;
-  let inArray = Array.isArray(root);
-  let keys: any = [root];
-  let index = -1;
-  let edits = [];
-  let node: any = undefined;
-  let key: any = undefined;
-  let parent: any = undefined;
-  const path: any = [];
-  const ancestors = [];
-  let newRoot = root;
-  /* eslint-enable no-undef-init */
-
-  do {
-    index++;
-    const isLeaving = index === keys.length;
-    const isEdited = isLeaving && edits.length !== 0;
-    if (isLeaving) {
-      key = ancestors.length === 0 ? undefined : path[path.length - 1];
-      node = parent;
-      parent = ancestors.pop();
-      if (isEdited) {
-        if (inArray) {
-          node = node.slice();
-        } else {
-          const clone = {};
-          for (const k of Object.keys(node)) {
-            clone[k] = node[k];
-          }
-          node = clone;
-        }
-        let editOffset = 0;
-        for (let ii = 0; ii < edits.length; ii++) {
-          let editKey: any = edits[ii][0];
-          const editValue = edits[ii][1];
-          if (inArray) {
-            editKey -= editOffset;
-          }
-          if (inArray && editValue === null) {
-            node.splice(editKey, 1);
-            editOffset++;
-          } else {
-            node[editKey] = editValue;
-          }
-        }
-      }
-      index = stack.index;
-      keys = stack.keys;
-      edits = stack.edits;
-      inArray = stack.inArray;
-      stack = stack.prev;
-    } else {
-      key = parent ? (inArray ? index : keys[index]) : undefined;
-      node = parent ? parent[key] : newRoot;
-      if (node === null || node === undefined) {
-        continue;
-      }
-      if (parent) {
-        path.push(key);
-      }
-    }
-
-    let result;
-    if (!Array.isArray(node)) {
-      if (!isNode(node)) {
-        throw new Error(`Invalid AST Node: ${inspect(node)}.`);
-      }
-      const visitFn = getVisitFn(visitor, node.kind, isLeaving);
-      if (visitFn) {
-        result = visitFn.call(visitor, node, key, parent, path, ancestors);
-
-        if (result === BREAK) {
-          break;
-        }
-
-        if (result === false) {
-          if (!isLeaving) {
-            path.pop();
-            continue;
-          }
-        } else if (result !== undefined) {
-          edits.push([key, result]);
-          if (!isLeaving) {
-            if (isNode(result)) {
-              node = result;
-            } else {
-              path.pop();
-              continue;
-            }
-          }
-        }
-      }
-    }
-
-    if (result === undefined && isEdited) {
-      edits.push([key, node]);
-    }
-
-    if (isLeaving) {
-      path.pop();
-    } else {
-      stack = { inArray, index, keys, edits, prev: stack };
-      inArray = Array.isArray(node);
-      keys = inArray ? node : visitorKeys[node.kind] ?? [];
-      index = -1;
-      edits = [];
-      if (parent) {
-        ancestors.push(parent);
-      }
-      parent = node;
-    }
-  } while (stack !== undefined);
-
-  if (edits.length !== 0) {
-    newRoot = edits[edits.length - 1][1];
-  }
-
-  return newRoot;
-}
-
-/**
- * Creates a new visitor instance which delegates to many visitors to run in
- * parallel. Each visitor will be visited for each node before moving on.
- *
- * If a prior visitor edits a node, no following visitors will see that node.
- */
-export function visitInParallel(
-  visitors: $ReadOnlyArray<Visitor<ASTKindToNode>>,
-): Visitor<ASTKindToNode> {
-  const skipping = new Array(visitors.length);
-
-  return {
-    enter(node) {
-      for (let i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          const fn = getVisitFn(visitors[i], node.kind, /* isLeaving */ false);
-          if (fn) {
-            const result = fn.apply(visitors[i], arguments);
-            if (result === false) {
-              skipping[i] = node;
-            } else if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined) {
-              return result;
-            }
-          }
-        }
-      }
-    },
-    leave(node) {
-      for (let i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          const fn = getVisitFn(visitors[i], node.kind, /* isLeaving */ true);
-          if (fn) {
-            const result = fn.apply(visitors[i], arguments);
-            if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined && result !== false) {
-              return result;
-            }
-          }
-        } else if (skipping[i] === node) {
-          skipping[i] = null;
-        }
-      }
-    },
-  };
-}
-
-/**
- * Given a visitor instance, if it is leaving or not, and a node kind, return
- * the function the visitor runtime should call.
- */
-export function getVisitFn(
-  visitor: Visitor<any>,
-  kind: string,
-  isLeaving: boolean,
-): ?VisitFn<any> {
-  const kindVisitor = visitor[kind];
-  if (kindVisitor) {
-    if (!isLeaving && typeof kindVisitor === 'function') {
-      // { Kind() {} }
-      return kindVisitor;
-    }
-    const kindSpecificVisitor = isLeaving
-      ? kindVisitor.leave
-      : kindVisitor.enter;
-    if (typeof kindSpecificVisitor === 'function') {
-      // { Kind: { enter() {}, leave() {} } }
-      return kindSpecificVisitor;
-    }
-  } else {
-    const specificVisitor = isLeaving ? visitor.leave : visitor.enter;
-    if (specificVisitor) {
-      if (typeof specificVisitor === 'function') {
-        // { enter() {}, leave() {} }
-        return specificVisitor;
-      }
-      const specificKindVisitor = specificVisitor[kind];
-      if (typeof specificKindVisitor === 'function') {
-        // { enter: { Kind() {} }, leave: { Kind() {} } }
-        return specificKindVisitor;
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/language/visitor.mjs b/node_modules/graphql/language/visitor.mjs
deleted file mode 100644
index f58d5c2..0000000
--- a/node_modules/graphql/language/visitor.mjs
+++ /dev/null
@@ -1,383 +0,0 @@
-import inspect from "../jsutils/inspect.mjs";
-import { isNode } from "./ast.mjs";
-/**
- * A visitor is provided to visit, it contains the collection of
- * relevant functions to be called during the visitor's traversal.
- */
-
-export var QueryDocumentKeys = {
-  Name: [],
-  Document: ['definitions'],
-  OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],
-  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],
-  Variable: ['name'],
-  SelectionSet: ['selections'],
-  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],
-  Argument: ['name', 'value'],
-  FragmentSpread: ['name', 'directives'],
-  InlineFragment: ['typeCondition', 'directives', 'selectionSet'],
-  FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed
-  // or removed in the future.
-  'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],
-  IntValue: [],
-  FloatValue: [],
-  StringValue: [],
-  BooleanValue: [],
-  NullValue: [],
-  EnumValue: [],
-  ListValue: ['values'],
-  ObjectValue: ['fields'],
-  ObjectField: ['name', 'value'],
-  Directive: ['name', 'arguments'],
-  NamedType: ['name'],
-  ListType: ['type'],
-  NonNullType: ['type'],
-  SchemaDefinition: ['description', 'directives', 'operationTypes'],
-  OperationTypeDefinition: ['type'],
-  ScalarTypeDefinition: ['description', 'name', 'directives'],
-  ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],
-  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],
-  InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],
-  InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],
-  UnionTypeDefinition: ['description', 'name', 'directives', 'types'],
-  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],
-  EnumValueDefinition: ['description', 'name', 'directives'],
-  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],
-  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],
-  SchemaExtension: ['directives', 'operationTypes'],
-  ScalarTypeExtension: ['name', 'directives'],
-  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],
-  UnionTypeExtension: ['name', 'directives', 'types'],
-  EnumTypeExtension: ['name', 'directives', 'values'],
-  InputObjectTypeExtension: ['name', 'directives', 'fields']
-};
-export var BREAK = Object.freeze({});
-/**
- * visit() will walk through an AST using a depth first traversal, calling
- * the visitor's enter function at each node in the traversal, and calling the
- * leave function after visiting that node and all of its child nodes.
- *
- * By returning different values from the enter and leave functions, the
- * behavior of the visitor can be altered, including skipping over a sub-tree of
- * the AST (by returning false), editing the AST by returning a value or null
- * to remove the value, or to stop the whole traversal by returning BREAK.
- *
- * When using visit() to edit an AST, the original AST will not be modified, and
- * a new version of the AST with the changes applied will be returned from the
- * visit function.
- *
- *     const editedAST = visit(ast, {
- *       enter(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: skip visiting this node
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       },
- *       leave(node, key, parent, path, ancestors) {
- *         // @return
- *         //   undefined: no action
- *         //   false: no action
- *         //   visitor.BREAK: stop visiting altogether
- *         //   null: delete this node
- *         //   any value: replace this node with the returned value
- *       }
- *     });
- *
- * Alternatively to providing enter() and leave() functions, a visitor can
- * instead provide functions named the same as the kinds of AST nodes, or
- * enter/leave visitors at a named key, leading to four permutations of
- * visitor API:
- *
- * 1) Named visitors triggered when entering a node a specific kind.
- *
- *     visit(ast, {
- *       Kind(node) {
- *         // enter the "Kind" node
- *       }
- *     })
- *
- * 2) Named visitors that trigger upon entering and leaving a node of
- *    a specific kind.
- *
- *     visit(ast, {
- *       Kind: {
- *         enter(node) {
- *           // enter the "Kind" node
- *         }
- *         leave(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- *
- * 3) Generic visitors that trigger upon entering and leaving any node.
- *
- *     visit(ast, {
- *       enter(node) {
- *         // enter any node
- *       },
- *       leave(node) {
- *         // leave any node
- *       }
- *     })
- *
- * 4) Parallel visitors for entering and leaving nodes of a specific kind.
- *
- *     visit(ast, {
- *       enter: {
- *         Kind(node) {
- *           // enter the "Kind" node
- *         }
- *       },
- *       leave: {
- *         Kind(node) {
- *           // leave the "Kind" node
- *         }
- *       }
- *     })
- */
-
-export function visit(root, visitor) {
-  var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;
-
-  /* eslint-disable no-undef-init */
-  var stack = undefined;
-  var inArray = Array.isArray(root);
-  var keys = [root];
-  var index = -1;
-  var edits = [];
-  var node = undefined;
-  var key = undefined;
-  var parent = undefined;
-  var path = [];
-  var ancestors = [];
-  var newRoot = root;
-  /* eslint-enable no-undef-init */
-
-  do {
-    index++;
-    var isLeaving = index === keys.length;
-    var isEdited = isLeaving && edits.length !== 0;
-
-    if (isLeaving) {
-      key = ancestors.length === 0 ? undefined : path[path.length - 1];
-      node = parent;
-      parent = ancestors.pop();
-
-      if (isEdited) {
-        if (inArray) {
-          node = node.slice();
-        } else {
-          var clone = {};
-
-          for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {
-            var k = _Object$keys2[_i2];
-            clone[k] = node[k];
-          }
-
-          node = clone;
-        }
-
-        var editOffset = 0;
-
-        for (var ii = 0; ii < edits.length; ii++) {
-          var editKey = edits[ii][0];
-          var editValue = edits[ii][1];
-
-          if (inArray) {
-            editKey -= editOffset;
-          }
-
-          if (inArray && editValue === null) {
-            node.splice(editKey, 1);
-            editOffset++;
-          } else {
-            node[editKey] = editValue;
-          }
-        }
-      }
-
-      index = stack.index;
-      keys = stack.keys;
-      edits = stack.edits;
-      inArray = stack.inArray;
-      stack = stack.prev;
-    } else {
-      key = parent ? inArray ? index : keys[index] : undefined;
-      node = parent ? parent[key] : newRoot;
-
-      if (node === null || node === undefined) {
-        continue;
-      }
-
-      if (parent) {
-        path.push(key);
-      }
-    }
-
-    var result = void 0;
-
-    if (!Array.isArray(node)) {
-      if (!isNode(node)) {
-        throw new Error("Invalid AST Node: ".concat(inspect(node), "."));
-      }
-
-      var visitFn = getVisitFn(visitor, node.kind, isLeaving);
-
-      if (visitFn) {
-        result = visitFn.call(visitor, node, key, parent, path, ancestors);
-
-        if (result === BREAK) {
-          break;
-        }
-
-        if (result === false) {
-          if (!isLeaving) {
-            path.pop();
-            continue;
-          }
-        } else if (result !== undefined) {
-          edits.push([key, result]);
-
-          if (!isLeaving) {
-            if (isNode(result)) {
-              node = result;
-            } else {
-              path.pop();
-              continue;
-            }
-          }
-        }
-      }
-    }
-
-    if (result === undefined && isEdited) {
-      edits.push([key, node]);
-    }
-
-    if (isLeaving) {
-      path.pop();
-    } else {
-      var _visitorKeys$node$kin;
-
-      stack = {
-        inArray: inArray,
-        index: index,
-        keys: keys,
-        edits: edits,
-        prev: stack
-      };
-      inArray = Array.isArray(node);
-      keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];
-      index = -1;
-      edits = [];
-
-      if (parent) {
-        ancestors.push(parent);
-      }
-
-      parent = node;
-    }
-  } while (stack !== undefined);
-
-  if (edits.length !== 0) {
-    newRoot = edits[edits.length - 1][1];
-  }
-
-  return newRoot;
-}
-/**
- * Creates a new visitor instance which delegates to many visitors to run in
- * parallel. Each visitor will be visited for each node before moving on.
- *
- * If a prior visitor edits a node, no following visitors will see that node.
- */
-
-export function visitInParallel(visitors) {
-  var skipping = new Array(visitors.length);
-  return {
-    enter: function enter(node) {
-      for (var i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          var fn = getVisitFn(visitors[i], node.kind,
-          /* isLeaving */
-          false);
-
-          if (fn) {
-            var result = fn.apply(visitors[i], arguments);
-
-            if (result === false) {
-              skipping[i] = node;
-            } else if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined) {
-              return result;
-            }
-          }
-        }
-      }
-    },
-    leave: function leave(node) {
-      for (var i = 0; i < visitors.length; i++) {
-        if (skipping[i] == null) {
-          var fn = getVisitFn(visitors[i], node.kind,
-          /* isLeaving */
-          true);
-
-          if (fn) {
-            var result = fn.apply(visitors[i], arguments);
-
-            if (result === BREAK) {
-              skipping[i] = BREAK;
-            } else if (result !== undefined && result !== false) {
-              return result;
-            }
-          }
-        } else if (skipping[i] === node) {
-          skipping[i] = null;
-        }
-      }
-    }
-  };
-}
-/**
- * Given a visitor instance, if it is leaving or not, and a node kind, return
- * the function the visitor runtime should call.
- */
-
-export function getVisitFn(visitor, kind, isLeaving) {
-  var kindVisitor = visitor[kind];
-
-  if (kindVisitor) {
-    if (!isLeaving && typeof kindVisitor === 'function') {
-      // { Kind() {} }
-      return kindVisitor;
-    }
-
-    var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;
-
-    if (typeof kindSpecificVisitor === 'function') {
-      // { Kind: { enter() {}, leave() {} } }
-      return kindSpecificVisitor;
-    }
-  } else {
-    var specificVisitor = isLeaving ? visitor.leave : visitor.enter;
-
-    if (specificVisitor) {
-      if (typeof specificVisitor === 'function') {
-        // { enter() {}, leave() {} }
-        return specificVisitor;
-      }
-
-      var specificKindVisitor = specificVisitor[kind];
-
-      if (typeof specificKindVisitor === 'function') {
-        // { enter: { Kind() {} }, leave: { Kind() {} } }
-        return specificKindVisitor;
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/package.json b/node_modules/graphql/package.json
deleted file mode 100644
index 7151c95..0000000
--- a/node_modules/graphql/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name": "graphql",
-  "version": "15.0.0-rc.2",
-  "description": "A Query Language and Runtime which can target any service.",
-  "license": "MIT",
-  "main": "index",
-  "module": "index.mjs",
-  "types": "index.d.ts",
-  "sideEffects": false,
-  "homepage": "https://github.com/graphql/graphql-js",
-  "bugs": {
-    "url": "https://github.com/graphql/graphql-js/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/graphql/graphql-js.git"
-  },
-  "keywords": [
-    "graphql",
-    "graphql-js"
-  ],
-  "engines": {
-    "node": ">= 10.x"
-  },
-  "dependencies": {},
-  "publishConfig": {
-    "tag": "rc"
-  }
-}
diff --git a/node_modules/graphql/polyfills/arrayFrom.js b/node_modules/graphql/polyfills/arrayFrom.js
deleted file mode 100644
index 2f0a12d..0000000
--- a/node_modules/graphql/polyfills/arrayFrom.js
+++ /dev/null
@@ -1,58 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _symbols = require("./symbols");
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-var arrayFrom = Array.from || function (obj, mapFn, thisArg) {
-  if (obj == null) {
-    throw new TypeError('Array.from requires an array-like object - not null or undefined');
-  } // Is Iterable?
-
-
-  var iteratorMethod = obj[_symbols.SYMBOL_ITERATOR];
-
-  if (typeof iteratorMethod === 'function') {
-    var iterator = iteratorMethod.call(obj);
-    var result = [];
-    var step;
-
-    for (var i = 0; !(step = iterator.next()).done; ++i) {
-      result.push(mapFn.call(thisArg, step.value, i)); // Infinite Iterators could cause forEach to run forever.
-      // After a very large number of iterations, produce an error.
-
-      /* istanbul ignore if */
-
-      if (i > 9999999) {
-        throw new TypeError('Near-infinite iteration.');
-      }
-    }
-
-    return result;
-  } // Is Array like?
-
-
-  var length = obj.length;
-
-  if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-    var _result = [];
-
-    for (var _i = 0; _i < length; ++_i) {
-      if (Object.prototype.hasOwnProperty.call(obj, _i)) {
-        _result.push(mapFn.call(thisArg, obj[_i], _i));
-      }
-    }
-
-    return _result;
-  }
-
-  return [];
-};
-
-var _default = arrayFrom;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/arrayFrom.js.flow b/node_modules/graphql/polyfills/arrayFrom.js.flow
deleted file mode 100644
index ab7ad40..0000000
--- a/node_modules/graphql/polyfills/arrayFrom.js.flow
+++ /dev/null
@@ -1,59 +0,0 @@
-// @flow strict
-
-import { SYMBOL_ITERATOR } from './symbols';
-
-declare function arrayFrom<T>(arrayLike: Iterable<T>): Array<T>;
-// eslint-disable-next-line no-redeclare
-declare function arrayFrom<T: mixed>(
-  arrayLike: mixed,
-  mapFn?: (elem: mixed, index: number) => T,
-  thisArg?: mixed,
-): Array<T>;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-const arrayFrom =
-  Array.from ||
-  function(obj, mapFn, thisArg) {
-    if (obj == null) {
-      throw new TypeError(
-        'Array.from requires an array-like object - not null or undefined',
-      );
-    }
-
-    // Is Iterable?
-    const iteratorMethod = obj[SYMBOL_ITERATOR];
-    if (typeof iteratorMethod === 'function') {
-      const iterator = iteratorMethod.call(obj);
-      const result = [];
-      let step;
-
-      for (let i = 0; !(step = iterator.next()).done; ++i) {
-        result.push(mapFn.call(thisArg, step.value, i));
-        // Infinite Iterators could cause forEach to run forever.
-        // After a very large number of iterations, produce an error.
-        /* istanbul ignore if */
-        if (i > 9999999) {
-          throw new TypeError('Near-infinite iteration.');
-        }
-      }
-      return result;
-    }
-
-    // Is Array like?
-    const length = obj.length;
-    if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-      const result = [];
-
-      for (let i = 0; i < length; ++i) {
-        if (Object.prototype.hasOwnProperty.call(obj, i)) {
-          result.push(mapFn.call(thisArg, obj[i], i));
-        }
-      }
-      return result;
-    }
-
-    return [];
-  };
-
-export default arrayFrom;
diff --git a/node_modules/graphql/polyfills/arrayFrom.mjs b/node_modules/graphql/polyfills/arrayFrom.mjs
deleted file mode 100644
index eb8b4cf..0000000
--- a/node_modules/graphql/polyfills/arrayFrom.mjs
+++ /dev/null
@@ -1,50 +0,0 @@
-import { SYMBOL_ITERATOR } from "./symbols.mjs";
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-var arrayFrom = Array.from || function (obj, mapFn, thisArg) {
-  if (obj == null) {
-    throw new TypeError('Array.from requires an array-like object - not null or undefined');
-  } // Is Iterable?
-
-
-  var iteratorMethod = obj[SYMBOL_ITERATOR];
-
-  if (typeof iteratorMethod === 'function') {
-    var iterator = iteratorMethod.call(obj);
-    var result = [];
-    var step;
-
-    for (var i = 0; !(step = iterator.next()).done; ++i) {
-      result.push(mapFn.call(thisArg, step.value, i)); // Infinite Iterators could cause forEach to run forever.
-      // After a very large number of iterations, produce an error.
-
-      /* istanbul ignore if */
-
-      if (i > 9999999) {
-        throw new TypeError('Near-infinite iteration.');
-      }
-    }
-
-    return result;
-  } // Is Array like?
-
-
-  var length = obj.length;
-
-  if (typeof length === 'number' && length >= 0 && length % 1 === 0) {
-    var _result = [];
-
-    for (var _i = 0; _i < length; ++_i) {
-      if (Object.prototype.hasOwnProperty.call(obj, _i)) {
-        _result.push(mapFn.call(thisArg, obj[_i], _i));
-      }
-    }
-
-    return _result;
-  }
-
-  return [];
-};
-
-export default arrayFrom;
diff --git a/node_modules/graphql/polyfills/find.js b/node_modules/graphql/polyfills/find.js
deleted file mode 100644
index 0ddcdab..0000000
--- a/node_modules/graphql/polyfills/find.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-var find = Array.prototype.find ? function (list, predicate) {
-  return Array.prototype.find.call(list, predicate);
-} : function (list, predicate) {
-  for (var _i2 = 0; _i2 < list.length; _i2++) {
-    var value = list[_i2];
-
-    if (predicate(value)) {
-      return value;
-    }
-  }
-};
-var _default = find;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/find.js.flow b/node_modules/graphql/polyfills/find.js.flow
deleted file mode 100644
index 2243c2a..0000000
--- a/node_modules/graphql/polyfills/find.js.flow
+++ /dev/null
@@ -1,21 +0,0 @@
-// @flow strict
-
-declare function find<T>(
-  list: $ReadOnlyArray<T>,
-  predicate: (item: T) => boolean,
-): T | void;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-const find = Array.prototype.find
-  ? function(list, predicate) {
-      return Array.prototype.find.call(list, predicate);
-    }
-  : function(list, predicate) {
-      for (const value of list) {
-        if (predicate(value)) {
-          return value;
-        }
-      }
-    };
-export default find;
diff --git a/node_modules/graphql/polyfills/find.mjs b/node_modules/graphql/polyfills/find.mjs
deleted file mode 100644
index 6e45b1b..0000000
--- a/node_modules/graphql/polyfills/find.mjs
+++ /dev/null
@@ -1,14 +0,0 @@
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-var find = Array.prototype.find ? function (list, predicate) {
-  return Array.prototype.find.call(list, predicate);
-} : function (list, predicate) {
-  for (var _i2 = 0; _i2 < list.length; _i2++) {
-    var value = list[_i2];
-
-    if (predicate(value)) {
-      return value;
-    }
-  }
-};
-export default find;
diff --git a/node_modules/graphql/polyfills/flatMap.js b/node_modules/graphql/polyfills/flatMap.js
deleted file mode 100644
index 95bbcdd..0000000
--- a/node_modules/graphql/polyfills/flatMap.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-var flatMapMethod = Array.prototype.flatMap;
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-
-var flatMap = flatMapMethod ? function (list, fn) {
-  return flatMapMethod.call(list, fn);
-} : function (list, fn) {
-  var result = [];
-
-  for (var _i2 = 0; _i2 < list.length; _i2++) {
-    var _item = list[_i2];
-    var value = fn(_item);
-
-    if (Array.isArray(value)) {
-      result = result.concat(value);
-    } else {
-      result.push(value);
-    }
-  }
-
-  return result;
-};
-var _default = flatMap;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/flatMap.js.flow b/node_modules/graphql/polyfills/flatMap.js.flow
deleted file mode 100644
index 4152b16..0000000
--- a/node_modules/graphql/polyfills/flatMap.js.flow
+++ /dev/null
@@ -1,28 +0,0 @@
-// @flow strict
-
-declare function flatMap<T, U>(
-  list: $ReadOnlyArray<T>,
-  fn: (item: T, index: number) => $ReadOnlyArray<U> | U,
-): Array<U>;
-
-const flatMapMethod = Array.prototype.flatMap;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-const flatMap = flatMapMethod
-  ? function(list, fn) {
-      return flatMapMethod.call(list, fn);
-    }
-  : function(list, fn) {
-      let result = [];
-      for (const item of list) {
-        const value = fn(item);
-        if (Array.isArray(value)) {
-          result = result.concat(value);
-        } else {
-          result.push(value);
-        }
-      }
-      return result;
-    };
-export default flatMap;
diff --git a/node_modules/graphql/polyfills/flatMap.mjs b/node_modules/graphql/polyfills/flatMap.mjs
deleted file mode 100644
index fa98621..0000000
--- a/node_modules/graphql/polyfills/flatMap.mjs
+++ /dev/null
@@ -1,23 +0,0 @@
-var flatMapMethod = Array.prototype.flatMap;
-/* eslint-disable no-redeclare */
-// $FlowFixMe
-
-var flatMap = flatMapMethod ? function (list, fn) {
-  return flatMapMethod.call(list, fn);
-} : function (list, fn) {
-  var result = [];
-
-  for (var _i2 = 0; _i2 < list.length; _i2++) {
-    var _item = list[_i2];
-    var value = fn(_item);
-
-    if (Array.isArray(value)) {
-      result = result.concat(value);
-    } else {
-      result.push(value);
-    }
-  }
-
-  return result;
-};
-export default flatMap;
diff --git a/node_modules/graphql/polyfills/isFinite.js b/node_modules/graphql/polyfills/isFinite.js
deleted file mode 100644
index 04946c0..0000000
--- a/node_modules/graphql/polyfills/isFinite.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-var isFinitePolyfill = Number.isFinite || function (value) {
-  return typeof value === 'number' && isFinite(value);
-};
-
-var _default = isFinitePolyfill;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/isFinite.js.flow b/node_modules/graphql/polyfills/isFinite.js.flow
deleted file mode 100644
index 9156126..0000000
--- a/node_modules/graphql/polyfills/isFinite.js.flow
+++ /dev/null
@@ -1,14 +0,0 @@
-// @flow strict
-
-declare function isFinitePolyfill(
-  value: mixed,
-): boolean %checks(typeof value === 'number');
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-const isFinitePolyfill =
-  Number.isFinite ||
-  function(value) {
-    return typeof value === 'number' && isFinite(value);
-  };
-export default isFinitePolyfill;
diff --git a/node_modules/graphql/polyfills/isFinite.mjs b/node_modules/graphql/polyfills/isFinite.mjs
deleted file mode 100644
index 5a39aef..0000000
--- a/node_modules/graphql/polyfills/isFinite.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-var isFinitePolyfill = Number.isFinite || function (value) {
-  return typeof value === 'number' && isFinite(value);
-};
-
-export default isFinitePolyfill;
diff --git a/node_modules/graphql/polyfills/isInteger.js b/node_modules/graphql/polyfills/isInteger.js
deleted file mode 100644
index 3e90e1c..0000000
--- a/node_modules/graphql/polyfills/isInteger.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-var isInteger = Number.isInteger || function (value) {
-  return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
-};
-
-var _default = isInteger;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/isInteger.js.flow b/node_modules/graphql/polyfills/isInteger.js.flow
deleted file mode 100644
index f4c4639..0000000
--- a/node_modules/graphql/polyfills/isInteger.js.flow
+++ /dev/null
@@ -1,17 +0,0 @@
-// @flow strict
-
-declare function isInteger(value: mixed): boolean %checks(typeof value ===
-  'number');
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-const isInteger =
-  Number.isInteger ||
-  function(value) {
-    return (
-      typeof value === 'number' &&
-      isFinite(value) &&
-      Math.floor(value) === value
-    );
-  };
-export default isInteger;
diff --git a/node_modules/graphql/polyfills/isInteger.mjs b/node_modules/graphql/polyfills/isInteger.mjs
deleted file mode 100644
index 6c8033d..0000000
--- a/node_modules/graphql/polyfills/isInteger.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
-var isInteger = Number.isInteger || function (value) {
-  return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
-};
-
-export default isInteger;
diff --git a/node_modules/graphql/polyfills/objectEntries.js b/node_modules/graphql/polyfills/objectEntries.js
deleted file mode 100644
index 856dba3..0000000
--- a/node_modules/graphql/polyfills/objectEntries.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838
-var objectEntries = Object.entries || function (obj) {
-  return Object.keys(obj).map(function (key) {
-    return [key, obj[key]];
-  });
-};
-
-var _default = objectEntries;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/objectEntries.js.flow b/node_modules/graphql/polyfills/objectEntries.js.flow
deleted file mode 100644
index ba4f5e1..0000000
--- a/node_modules/graphql/polyfills/objectEntries.js.flow
+++ /dev/null
@@ -1,12 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from '../jsutils/ObjMap';
-
-declare function objectEntries<T>(obj: ObjMap<T>): Array<[string, T]>;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838
-const objectEntries =
-  Object.entries || (obj => Object.keys(obj).map(key => [key, obj[key]]));
-
-export default objectEntries;
diff --git a/node_modules/graphql/polyfills/objectEntries.mjs b/node_modules/graphql/polyfills/objectEntries.mjs
deleted file mode 100644
index a4767a5..0000000
--- a/node_modules/graphql/polyfills/objectEntries.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838
-var objectEntries = Object.entries || function (obj) {
-  return Object.keys(obj).map(function (key) {
-    return [key, obj[key]];
-  });
-};
-
-export default objectEntries;
diff --git a/node_modules/graphql/polyfills/objectValues.js b/node_modules/graphql/polyfills/objectValues.js
deleted file mode 100644
index 28282c4..0000000
--- a/node_modules/graphql/polyfills/objectValues.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221
-var objectValues = Object.values || function (obj) {
-  return Object.keys(obj).map(function (key) {
-    return obj[key];
-  });
-};
-
-var _default = objectValues;
-exports.default = _default;
diff --git a/node_modules/graphql/polyfills/objectValues.js.flow b/node_modules/graphql/polyfills/objectValues.js.flow
deleted file mode 100644
index 8f1d65f..0000000
--- a/node_modules/graphql/polyfills/objectValues.js.flow
+++ /dev/null
@@ -1,11 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from '../jsutils/ObjMap';
-
-declare function objectValues<T>(obj: ObjMap<T>): Array<T>;
-
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221
-const objectValues =
-  Object.values || (obj => Object.keys(obj).map(key => obj[key]));
-export default objectValues;
diff --git a/node_modules/graphql/polyfills/objectValues.mjs b/node_modules/graphql/polyfills/objectValues.mjs
deleted file mode 100644
index 49092b4..0000000
--- a/node_modules/graphql/polyfills/objectValues.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-/* eslint-disable no-redeclare */
-// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/2221
-var objectValues = Object.values || function (obj) {
-  return Object.keys(obj).map(function (key) {
-    return obj[key];
-  });
-};
-
-export default objectValues;
diff --git a/node_modules/graphql/polyfills/symbols.js b/node_modules/graphql/polyfills/symbols.js
deleted file mode 100644
index d31280c..0000000
--- a/node_modules/graphql/polyfills/symbols.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SYMBOL_TO_STRING_TAG = exports.SYMBOL_ASYNC_ITERATOR = exports.SYMBOL_ITERATOR = void 0;
-// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-var SYMBOL_ITERATOR = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-exports.SYMBOL_ITERATOR = SYMBOL_ITERATOR;
-var SYMBOL_ASYNC_ITERATOR = // $FlowFixMe Flow doesn't define `Symbol.asyncIterator` yet
-typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator';
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-exports.SYMBOL_ASYNC_ITERATOR = SYMBOL_ASYNC_ITERATOR;
-var SYMBOL_TO_STRING_TAG = // $FlowFixMe Flow doesn't define `Symbol.toStringTag` yet
-typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';
-exports.SYMBOL_TO_STRING_TAG = SYMBOL_TO_STRING_TAG;
diff --git a/node_modules/graphql/polyfills/symbols.js.flow b/node_modules/graphql/polyfills/symbols.js.flow
deleted file mode 100644
index af2d267..0000000
--- a/node_modules/graphql/polyfills/symbols.js.flow
+++ /dev/null
@@ -1,17 +0,0 @@
-// @flow strict
-
-// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-export const SYMBOL_ITERATOR: string =
-  typeof Symbol === 'function' ? Symbol.iterator : '@@iterator';
-
-// In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-export const SYMBOL_ASYNC_ITERATOR: string =
-  // $FlowFixMe Flow doesn't define `Symbol.asyncIterator` yet
-  typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator';
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-export const SYMBOL_TO_STRING_TAG: string =
-  // $FlowFixMe Flow doesn't define `Symbol.toStringTag` yet
-  typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';
diff --git a/node_modules/graphql/polyfills/symbols.mjs b/node_modules/graphql/polyfills/symbols.mjs
deleted file mode 100644
index 5b2a071..0000000
--- a/node_modules/graphql/polyfills/symbols.mjs
+++ /dev/null
@@ -1,13 +0,0 @@
-// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-export var SYMBOL_ITERATOR = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
-
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-export var SYMBOL_ASYNC_ITERATOR = // $FlowFixMe Flow doesn't define `Symbol.asyncIterator` yet
-typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator';
-/* istanbul ignore next (See: https://github.com/graphql/graphql-js/issues/2317) */
-
-export var SYMBOL_TO_STRING_TAG = // $FlowFixMe Flow doesn't define `Symbol.toStringTag` yet
-typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';
diff --git a/node_modules/graphql/subscription/index.d.ts b/node_modules/graphql/subscription/index.d.ts
deleted file mode 100644
index ba8835f..0000000
--- a/node_modules/graphql/subscription/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export {
-  subscribe,
-  createSourceEventStream,
-  SubscriptionArgs,
-} from './subscribe';
diff --git a/node_modules/graphql/subscription/index.js b/node_modules/graphql/subscription/index.js
deleted file mode 100644
index ec052a6..0000000
--- a/node_modules/graphql/subscription/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "subscribe", {
-  enumerable: true,
-  get: function get() {
-    return _subscribe.subscribe;
-  }
-});
-Object.defineProperty(exports, "createSourceEventStream", {
-  enumerable: true,
-  get: function get() {
-    return _subscribe.createSourceEventStream;
-  }
-});
-
-var _subscribe = require("./subscribe");
diff --git a/node_modules/graphql/subscription/index.js.flow b/node_modules/graphql/subscription/index.js.flow
deleted file mode 100644
index 45645ed..0000000
--- a/node_modules/graphql/subscription/index.js.flow
+++ /dev/null
@@ -1,4 +0,0 @@
-// @flow strict
-
-export { subscribe, createSourceEventStream } from './subscribe';
-export type { SubscriptionArgs } from './subscribe';
diff --git a/node_modules/graphql/subscription/index.mjs b/node_modules/graphql/subscription/index.mjs
deleted file mode 100644
index 8983f84..0000000
--- a/node_modules/graphql/subscription/index.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { subscribe, createSourceEventStream } from "./subscribe.mjs";
diff --git a/node_modules/graphql/subscription/mapAsyncIterator.d.ts b/node_modules/graphql/subscription/mapAsyncIterator.d.ts
deleted file mode 100644
index 22e8a34..0000000
--- a/node_modules/graphql/subscription/mapAsyncIterator.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { PromiseOrValue } from '../jsutils/PromiseOrValue';
-
-/**
- * Given an AsyncIterable and a callback function, return an AsyncIterator
- * which produces values mapped via calling the callback function.
- */
-export default function mapAsyncIterator<T, U>(
-  iterable: AsyncIterable<T>,
-  callback: (arg: T) => PromiseOrValue<U>,
-  rejectCallback?: (arg: any) => PromiseOrValue<U>,
-): any; // TS_SPECIFIC: AsyncGenerator requires typescript@3.6
diff --git a/node_modules/graphql/subscription/mapAsyncIterator.js b/node_modules/graphql/subscription/mapAsyncIterator.js
deleted file mode 100644
index c776a5b..0000000
--- a/node_modules/graphql/subscription/mapAsyncIterator.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = mapAsyncIterator;
-
-var _symbols = require("../polyfills/symbols");
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Given an AsyncIterable and a callback function, return an AsyncIterator
- * which produces values mapped via calling the callback function.
- */
-function mapAsyncIterator(iterable, callback, rejectCallback) {
-  // $FlowFixMe
-  var iteratorMethod = iterable[_symbols.SYMBOL_ASYNC_ITERATOR];
-  var iterator = iteratorMethod.call(iterable);
-  var $return;
-  var abruptClose; // $FlowFixMe(>=0.68.0)
-
-  if (typeof iterator.return === 'function') {
-    $return = iterator.return;
-
-    abruptClose = function abruptClose(error) {
-      var rethrow = function rethrow() {
-        return Promise.reject(error);
-      };
-
-      return $return.call(iterator).then(rethrow, rethrow);
-    };
-  }
-
-  function mapResult(result) {
-    return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
-  }
-
-  var mapReject;
-
-  if (rejectCallback) {
-    // Capture rejectCallback to ensure it cannot be null.
-    var reject = rejectCallback;
-
-    mapReject = function mapReject(error) {
-      return asyncMapValue(error, reject).then(iteratorResult, abruptClose);
-    };
-  }
-  /* TODO: Flow doesn't support symbols as keys:
-     https://github.com/facebook/flow/issues/3258 */
-
-
-  return _defineProperty({
-    next: function next() {
-      return iterator.next().then(mapResult, mapReject);
-    },
-    return: function _return() {
-      return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({
-        value: undefined,
-        done: true
-      });
-    },
-    throw: function _throw(error) {
-      // $FlowFixMe(>=0.68.0)
-      if (typeof iterator.throw === 'function') {
-        return iterator.throw(error).then(mapResult, mapReject);
-      }
-
-      return Promise.reject(error).catch(abruptClose);
-    }
-  }, _symbols.SYMBOL_ASYNC_ITERATOR, function () {
-    return this;
-  });
-}
-
-function asyncMapValue(value, callback) {
-  return new Promise(function (resolve) {
-    return resolve(callback(value));
-  });
-}
-
-function iteratorResult(value) {
-  return {
-    value: value,
-    done: false
-  };
-}
diff --git a/node_modules/graphql/subscription/mapAsyncIterator.js.flow b/node_modules/graphql/subscription/mapAsyncIterator.js.flow
deleted file mode 100644
index 46dc8d7..0000000
--- a/node_modules/graphql/subscription/mapAsyncIterator.js.flow
+++ /dev/null
@@ -1,77 +0,0 @@
-// @flow strict
-
-import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
-
-import { type PromiseOrValue } from '../jsutils/PromiseOrValue';
-
-/**
- * Given an AsyncIterable and a callback function, return an AsyncIterator
- * which produces values mapped via calling the callback function.
- */
-export default function mapAsyncIterator<T, U>(
-  iterable: AsyncIterable<T>,
-  callback: T => PromiseOrValue<U>,
-  rejectCallback?: any => PromiseOrValue<U>,
-): AsyncGenerator<U, void, void> {
-  // $FlowFixMe
-  const iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];
-  const iterator: AsyncIterator<T> = iteratorMethod.call(iterable);
-  let $return;
-  let abruptClose;
-  // $FlowFixMe(>=0.68.0)
-  if (typeof iterator.return === 'function') {
-    $return = iterator.return;
-    abruptClose = error => {
-      const rethrow = () => Promise.reject(error);
-      return $return.call(iterator).then(rethrow, rethrow);
-    };
-  }
-
-  function mapResult(result) {
-    return result.done
-      ? result
-      : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
-  }
-
-  let mapReject;
-  if (rejectCallback) {
-    // Capture rejectCallback to ensure it cannot be null.
-    const reject = rejectCallback;
-    mapReject = error =>
-      asyncMapValue(error, reject).then(iteratorResult, abruptClose);
-  }
-
-  /* TODO: Flow doesn't support symbols as keys:
-     https://github.com/facebook/flow/issues/3258 */
-  return ({
-    next() {
-      return iterator.next().then(mapResult, mapReject);
-    },
-    return() {
-      return $return
-        ? $return.call(iterator).then(mapResult, mapReject)
-        : Promise.resolve({ value: undefined, done: true });
-    },
-    throw(error) {
-      // $FlowFixMe(>=0.68.0)
-      if (typeof iterator.throw === 'function') {
-        return iterator.throw(error).then(mapResult, mapReject);
-      }
-      return Promise.reject(error).catch(abruptClose);
-    },
-    [SYMBOL_ASYNC_ITERATOR]() {
-      return this;
-    },
-  }: any);
-}
-
-function asyncMapValue<T, U>(
-  value: T,
-  callback: T => PromiseOrValue<U>,
-): Promise<U> {
-  return new Promise(resolve => resolve(callback(value)));
-}
-
-function iteratorResult<T>(value: T): IteratorResult<T, void> {
-  return { value, done: false };
-}
diff --git a/node_modules/graphql/subscription/mapAsyncIterator.mjs b/node_modules/graphql/subscription/mapAsyncIterator.mjs
deleted file mode 100644
index 371e356..0000000
--- a/node_modules/graphql/subscription/mapAsyncIterator.mjs
+++ /dev/null
@@ -1,80 +0,0 @@
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import { SYMBOL_ASYNC_ITERATOR } from "../polyfills/symbols.mjs";
-
-/**
- * Given an AsyncIterable and a callback function, return an AsyncIterator
- * which produces values mapped via calling the callback function.
- */
-export default function mapAsyncIterator(iterable, callback, rejectCallback) {
-  // $FlowFixMe
-  var iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];
-  var iterator = iteratorMethod.call(iterable);
-  var $return;
-  var abruptClose; // $FlowFixMe(>=0.68.0)
-
-  if (typeof iterator.return === 'function') {
-    $return = iterator.return;
-
-    abruptClose = function abruptClose(error) {
-      var rethrow = function rethrow() {
-        return Promise.reject(error);
-      };
-
-      return $return.call(iterator).then(rethrow, rethrow);
-    };
-  }
-
-  function mapResult(result) {
-    return result.done ? result : asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
-  }
-
-  var mapReject;
-
-  if (rejectCallback) {
-    // Capture rejectCallback to ensure it cannot be null.
-    var reject = rejectCallback;
-
-    mapReject = function mapReject(error) {
-      return asyncMapValue(error, reject).then(iteratorResult, abruptClose);
-    };
-  }
-  /* TODO: Flow doesn't support symbols as keys:
-     https://github.com/facebook/flow/issues/3258 */
-
-
-  return _defineProperty({
-    next: function next() {
-      return iterator.next().then(mapResult, mapReject);
-    },
-    return: function _return() {
-      return $return ? $return.call(iterator).then(mapResult, mapReject) : Promise.resolve({
-        value: undefined,
-        done: true
-      });
-    },
-    throw: function _throw(error) {
-      // $FlowFixMe(>=0.68.0)
-      if (typeof iterator.throw === 'function') {
-        return iterator.throw(error).then(mapResult, mapReject);
-      }
-
-      return Promise.reject(error).catch(abruptClose);
-    }
-  }, SYMBOL_ASYNC_ITERATOR, function () {
-    return this;
-  });
-}
-
-function asyncMapValue(value, callback) {
-  return new Promise(function (resolve) {
-    return resolve(callback(value));
-  });
-}
-
-function iteratorResult(value) {
-  return {
-    value: value,
-    done: false
-  };
-}
diff --git a/node_modules/graphql/subscription/subscribe.d.ts b/node_modules/graphql/subscription/subscribe.d.ts
deleted file mode 100644
index a2a2d08..0000000
--- a/node_modules/graphql/subscription/subscribe.d.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { DocumentNode } from '../language/ast';
-import {
-  ExecutionResult,
-  ExecutionResultDataDefault,
-} from '../execution/execute';
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLFieldResolver } from '../type/definition';
-
-export interface SubscriptionArgs {
-  schema: GraphQLSchema;
-  document: DocumentNode;
-  rootValue?: any;
-  contextValue?: any;
-  variableValues?: Maybe<Record<string, any>>;
-  operationName?: Maybe<string>;
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
-  subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
-}
-
-/**
- * Implements the "Subscribe" algorithm described in the GraphQL specification.
- *
- * Returns a Promise which resolves to either an AsyncIterator (if successful)
- * or an ExecutionResult (client error). The promise will be rejected if a
- * server error occurs.
- *
- * If the client-provided arguments to this function do not result in a
- * compliant subscription, a GraphQL Response (ExecutionResult) with
- * descriptive errors and no data will be returned.
- *
- * If the the source stream could not be created due to faulty subscription
- * resolver logic or underlying systems, the promise will resolve to a single
- * ExecutionResult containing `errors` and no `data`.
- *
- * If the operation succeeded, the promise resolves to an AsyncIterator, which
- * yields a stream of ExecutionResults representing the response stream.
- *
- * Accepts either an object with named arguments, or individual arguments.
- */
-export function subscribe<TData = ExecutionResultDataDefault>(
-  args: SubscriptionArgs,
-): Promise<
-  AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
->;
-
-export function subscribe<TData = ExecutionResultDataDefault>(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: any,
-  contextValue?: any,
-  variableValues?: Maybe<{ [key: string]: any }>,
-  operationName?: Maybe<string>,
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-  subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-): Promise<
-  AsyncIterableIterator<ExecutionResult<TData>> | ExecutionResult<TData>
->;
-
-/**
- * Implements the "CreateSourceEventStream" algorithm described in the
- * GraphQL specification, resolving the subscription source event stream.
- *
- * Returns a Promise<AsyncIterable>.
- *
- * If the client-provided invalid arguments, the source stream could not be
- * created, or the resolver did not return an AsyncIterable, this function will
- * will throw an error, which should be caught and handled by the caller.
- *
- * A Source Event Stream represents a sequence of events, each of which triggers
- * a GraphQL execution for that event.
- *
- * This may be useful when hosting the stateful subscription service in a
- * different process or machine than the stateless GraphQL execution engine,
- * or otherwise separating these two steps. For more on this, see the
- * "Supporting Subscriptions at Scale" information in the GraphQL specification.
- */
-export function createSourceEventStream<TData = ExecutionResultDataDefault>(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: any,
-  contextValue?: any,
-  variableValues?: { [key: string]: any },
-  operationName?: Maybe<string>,
-  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>,
-): Promise<AsyncIterable<any> | ExecutionResult<TData>>;
diff --git a/node_modules/graphql/subscription/subscribe.js b/node_modules/graphql/subscription/subscribe.js
deleted file mode 100644
index 40a44f1..0000000
--- a/node_modules/graphql/subscription/subscribe.js
+++ /dev/null
@@ -1,204 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.subscribe = subscribe;
-exports.createSourceEventStream = createSourceEventStream;
-
-var _symbols = require("../polyfills/symbols");
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _Path = require("../jsutils/Path");
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _locatedError = require("../error/locatedError");
-
-var _execute = require("../execution/execute");
-
-var _getOperationRootType = require("../utilities/getOperationRootType");
-
-var _mapAsyncIterator = _interopRequireDefault(require("./mapAsyncIterator"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({
-    schema: argsOrSchema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    subscribeFieldResolver: subscribeFieldResolver
-  });
-}
-/**
- * This function checks if the error is a GraphQLError. If it is, report it as
- * an ExecutionResult, containing only errors and no data. Otherwise treat the
- * error as a system-class error and re-throw it.
- */
-
-
-function reportGraphQLError(error) {
-  if (error instanceof _GraphQLError.GraphQLError) {
-    return {
-      errors: [error]
-    };
-  }
-
-  throw error;
-}
-
-function subscribeImpl(args) {
-  var schema = args.schema,
-      document = args.document,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      subscribeFieldResolver = args.subscribeFieldResolver;
-  var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal
-  // GraphQL `execute` function, with `payload` as the rootValue.
-  // This implements the "MapSourceToResponseEvent" algorithm described in
-  // the GraphQL specification. The `execute` function provides the
-  // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the
-  // "ExecuteQuery" algorithm, for which `execute` is also used.
-
-  var mapSourceToResponse = function mapSourceToResponse(payload) {
-    return (0, _execute.execute)({
-      schema: schema,
-      document: document,
-      rootValue: payload,
-      contextValue: contextValue,
-      variableValues: variableValues,
-      operationName: operationName,
-      fieldResolver: fieldResolver
-    });
-  }; // Resolve the Source Stream, then map every source value to a
-  // ExecutionResult value as described above.
-
-
-  return sourcePromise.then(function (resultOrStream) {
-    return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.
-      isAsyncIterable(resultOrStream) ? (0, _mapAsyncIterator.default)(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream
-    );
-  });
-}
-/**
- * Implements the "CreateSourceEventStream" algorithm described in the
- * GraphQL specification, resolving the subscription source event stream.
- *
- * Returns a Promise which resolves to either an AsyncIterable (if successful)
- * or an ExecutionResult (error). The promise will be rejected if the schema or
- * other arguments to this function are invalid, or if the resolved event stream
- * is not an async iterable.
- *
- * If the client-provided arguments to this function do not result in a
- * compliant subscription, a GraphQL Response (ExecutionResult) with
- * descriptive errors and no data will be returned.
- *
- * If the the source stream could not be created due to faulty subscription
- * resolver logic or underlying systems, the promise will resolve to a single
- * ExecutionResult containing `errors` and no `data`.
- *
- * If the operation succeeded, the promise resolves to the AsyncIterable for the
- * event stream returned by the resolver.
- *
- * A Source Event Stream represents a sequence of events, each of which triggers
- * a GraphQL execution for that event.
- *
- * This may be useful when hosting the stateful subscription service in a
- * different process or machine than the stateless GraphQL execution engine,
- * or otherwise separating these two steps. For more on this, see the
- * "Supporting Subscriptions at Scale" information in the GraphQL specification.
- */
-
-
-function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
-  // If arguments are missing or incorrectly typed, this is an internal
-  // developer mistake which should throw an early error.
-  (0, _execute.assertValidExecutionArguments)(schema, document, variableValues);
-
-  try {
-    var _fieldDef$subscribe;
-
-    // If a valid context cannot be created due to incorrect arguments,
-    // this will throw an error.
-    var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
-
-    if (Array.isArray(exeContext)) {
-      return Promise.resolve({
-        errors: exeContext
-      });
-    }
-
-    var type = (0, _getOperationRootType.getOperationRootType)(schema, exeContext.operation);
-    var fields = (0, _execute.collectFields)(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));
-    var responseNames = Object.keys(fields);
-    var responseName = responseNames[0];
-    var fieldNodes = fields[responseName];
-    var fieldNode = fieldNodes[0];
-    var fieldName = fieldNode.name.value;
-    var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldName);
-
-    if (!fieldDef) {
-      throw new _GraphQLError.GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
-    } // Call the `subscribe()` resolver or the default resolver to produce an
-    // AsyncIterable yielding raw payloads.
-
-
-    var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
-    var path = (0, _Path.addPath)(undefined, responseName);
-    var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
-    // algorithm from GraphQL specification. It differs from
-    // "ResolveFieldValue" due to providing a different `resolveFn`.
-
-    var result = (0, _execute.resolveFieldValueOrError)(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.
-
-    return Promise.resolve(result).then(function (eventStream) {
-      // If eventStream is an Error, rethrow a located error.
-      if (eventStream instanceof Error) {
-        return {
-          errors: [(0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path))]
-        };
-      } // Assert field returned an event stream, otherwise yield an error.
-
-
-      if (isAsyncIterable(eventStream)) {
-        // Note: isAsyncIterable above ensures this will be correct.
-        return eventStream;
-      }
-
-      throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat((0, _inspect.default)(eventStream), "."));
-    });
-  } catch (error) {
-    // As with reportGraphQLError above, if the error is a GraphQLError, report
-    // it as an ExecutionResult; otherwise treat it as a system-class error and
-    // re-throw it.
-    return error instanceof _GraphQLError.GraphQLError ? Promise.resolve({
-      errors: [error]
-    }) : Promise.reject(error);
-  }
-}
-/**
- * Returns true if the provided object implements the AsyncIterator protocol via
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
- */
-
-
-function isAsyncIterable(maybeAsyncIterable) {
-  if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
-    return false;
-  }
-
-  return typeof maybeAsyncIterable[_symbols.SYMBOL_ASYNC_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/subscription/subscribe.js.flow b/node_modules/graphql/subscription/subscribe.js.flow
deleted file mode 100644
index 1b17080..0000000
--- a/node_modules/graphql/subscription/subscribe.js.flow
+++ /dev/null
@@ -1,312 +0,0 @@
-// @flow strict
-
-import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
-
-import inspect from '../jsutils/inspect';
-import { addPath, pathToArray } from '../jsutils/Path';
-
-import { GraphQLError } from '../error/GraphQLError';
-import { locatedError } from '../error/locatedError';
-
-import { type DocumentNode } from '../language/ast';
-
-import {
-  type ExecutionResult,
-  assertValidExecutionArguments,
-  buildExecutionContext,
-  buildResolveInfo,
-  collectFields,
-  execute,
-  getFieldDef,
-  resolveFieldValueOrError,
-} from '../execution/execute';
-
-import { type GraphQLSchema } from '../type/schema';
-import { type GraphQLFieldResolver } from '../type/definition';
-
-import { getOperationRootType } from '../utilities/getOperationRootType';
-
-import mapAsyncIterator from './mapAsyncIterator';
-
-export type SubscriptionArgs = {|
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  subscribeFieldResolver?: ?GraphQLFieldResolver<any, any>,
-|};
-
-/**
- * Implements the "Subscribe" algorithm described in the GraphQL specification.
- *
- * Returns a Promise which resolves to either an AsyncIterator (if successful)
- * or an ExecutionResult (error). The promise will be rejected if the schema or
- * other arguments to this function are invalid, or if the resolved event stream
- * is not an async iterable.
- *
- * If the client-provided arguments to this function do not result in a
- * compliant subscription, a GraphQL Response (ExecutionResult) with
- * descriptive errors and no data will be returned.
- *
- * If the source stream could not be created due to faulty subscription
- * resolver logic or underlying systems, the promise will resolve to a single
- * ExecutionResult containing `errors` and no `data`.
- *
- * If the operation succeeded, the promise resolves to an AsyncIterator, which
- * yields a stream of ExecutionResults representing the response stream.
- *
- * Accepts either an object with named arguments, or individual arguments.
- */
-declare function subscribe(
-  SubscriptionArgs,
-  ..._: []
-): Promise<AsyncIterator<ExecutionResult> | ExecutionResult>;
-/* eslint-disable no-redeclare */
-declare function subscribe(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-  subscribeFieldResolver?: ?GraphQLFieldResolver<any, any>,
-): Promise<AsyncIterator<ExecutionResult> | ExecutionResult>;
-export function subscribe(
-  argsOrSchema,
-  document,
-  rootValue,
-  contextValue,
-  variableValues,
-  operationName,
-  fieldResolver,
-  subscribeFieldResolver,
-) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1
-    ? subscribeImpl(argsOrSchema)
-    : subscribeImpl({
-        schema: argsOrSchema,
-        document,
-        rootValue,
-        contextValue,
-        variableValues,
-        operationName,
-        fieldResolver,
-        subscribeFieldResolver,
-      });
-}
-
-/**
- * This function checks if the error is a GraphQLError. If it is, report it as
- * an ExecutionResult, containing only errors and no data. Otherwise treat the
- * error as a system-class error and re-throw it.
- */
-function reportGraphQLError(error) {
-  if (error instanceof GraphQLError) {
-    return { errors: [error] };
-  }
-  throw error;
-}
-
-function subscribeImpl(
-  args: SubscriptionArgs,
-): Promise<AsyncIterator<ExecutionResult> | ExecutionResult> {
-  const {
-    schema,
-    document,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    fieldResolver,
-    subscribeFieldResolver,
-  } = args;
-
-  const sourcePromise = createSourceEventStream(
-    schema,
-    document,
-    rootValue,
-    contextValue,
-    variableValues,
-    operationName,
-    subscribeFieldResolver,
-  );
-
-  // For each payload yielded from a subscription, map it over the normal
-  // GraphQL `execute` function, with `payload` as the rootValue.
-  // This implements the "MapSourceToResponseEvent" algorithm described in
-  // the GraphQL specification. The `execute` function provides the
-  // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the
-  // "ExecuteQuery" algorithm, for which `execute` is also used.
-  const mapSourceToResponse = payload =>
-    execute({
-      schema,
-      document,
-      rootValue: payload,
-      contextValue,
-      variableValues,
-      operationName,
-      fieldResolver,
-    });
-
-  // Resolve the Source Stream, then map every source value to a
-  // ExecutionResult value as described above.
-  return sourcePromise.then(resultOrStream =>
-    // Note: Flow can't refine isAsyncIterable, so explicit casts are used.
-    isAsyncIterable(resultOrStream)
-      ? mapAsyncIterator(
-          ((resultOrStream: any): AsyncIterable<mixed>),
-          mapSourceToResponse,
-          reportGraphQLError,
-        )
-      : ((resultOrStream: any): ExecutionResult),
-  );
-}
-
-/**
- * Implements the "CreateSourceEventStream" algorithm described in the
- * GraphQL specification, resolving the subscription source event stream.
- *
- * Returns a Promise which resolves to either an AsyncIterable (if successful)
- * or an ExecutionResult (error). The promise will be rejected if the schema or
- * other arguments to this function are invalid, or if the resolved event stream
- * is not an async iterable.
- *
- * If the client-provided arguments to this function do not result in a
- * compliant subscription, a GraphQL Response (ExecutionResult) with
- * descriptive errors and no data will be returned.
- *
- * If the the source stream could not be created due to faulty subscription
- * resolver logic or underlying systems, the promise will resolve to a single
- * ExecutionResult containing `errors` and no `data`.
- *
- * If the operation succeeded, the promise resolves to the AsyncIterable for the
- * event stream returned by the resolver.
- *
- * A Source Event Stream represents a sequence of events, each of which triggers
- * a GraphQL execution for that event.
- *
- * This may be useful when hosting the stateful subscription service in a
- * different process or machine than the stateless GraphQL execution engine,
- * or otherwise separating these two steps. For more on this, see the
- * "Supporting Subscriptions at Scale" information in the GraphQL specification.
- */
-export function createSourceEventStream(
-  schema: GraphQLSchema,
-  document: DocumentNode,
-  rootValue?: mixed,
-  contextValue?: mixed,
-  variableValues?: ?{ +[variable: string]: mixed, ... },
-  operationName?: ?string,
-  fieldResolver?: ?GraphQLFieldResolver<any, any>,
-): Promise<AsyncIterable<mixed> | ExecutionResult> {
-  // If arguments are missing or incorrectly typed, this is an internal
-  // developer mistake which should throw an early error.
-  assertValidExecutionArguments(schema, document, variableValues);
-
-  try {
-    // If a valid context cannot be created due to incorrect arguments,
-    // this will throw an error.
-    const exeContext = buildExecutionContext(
-      schema,
-      document,
-      rootValue,
-      contextValue,
-      variableValues,
-      operationName,
-      fieldResolver,
-    );
-
-    // Return early errors if execution context failed.
-    if (Array.isArray(exeContext)) {
-      return Promise.resolve({ errors: exeContext });
-    }
-
-    const type = getOperationRootType(schema, exeContext.operation);
-    const fields = collectFields(
-      exeContext,
-      type,
-      exeContext.operation.selectionSet,
-      Object.create(null),
-      Object.create(null),
-    );
-    const responseNames = Object.keys(fields);
-    const responseName = responseNames[0];
-    const fieldNodes = fields[responseName];
-    const fieldNode = fieldNodes[0];
-    const fieldName = fieldNode.name.value;
-    const fieldDef = getFieldDef(schema, type, fieldName);
-
-    if (!fieldDef) {
-      throw new GraphQLError(
-        `The subscription field "${fieldName}" is not defined.`,
-        fieldNodes,
-      );
-    }
-
-    // Call the `subscribe()` resolver or the default resolver to produce an
-    // AsyncIterable yielding raw payloads.
-    const resolveFn = fieldDef.subscribe ?? exeContext.fieldResolver;
-
-    const path = addPath(undefined, responseName);
-
-    const info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path);
-
-    // resolveFieldValueOrError implements the "ResolveFieldEventStream"
-    // algorithm from GraphQL specification. It differs from
-    // "ResolveFieldValue" due to providing a different `resolveFn`.
-    const result = resolveFieldValueOrError(
-      exeContext,
-      fieldDef,
-      fieldNodes,
-      resolveFn,
-      rootValue,
-      info,
-    );
-
-    // Coerce to Promise for easier error handling and consistent return type.
-    return Promise.resolve(result).then(eventStream => {
-      // If eventStream is an Error, rethrow a located error.
-      if (eventStream instanceof Error) {
-        return {
-          errors: [locatedError(eventStream, fieldNodes, pathToArray(path))],
-        };
-      }
-
-      // Assert field returned an event stream, otherwise yield an error.
-      if (isAsyncIterable(eventStream)) {
-        // Note: isAsyncIterable above ensures this will be correct.
-        return ((eventStream: any): AsyncIterable<mixed>);
-      }
-
-      throw new Error(
-        'Subscription field must return Async Iterable. ' +
-          `Received: ${inspect(eventStream)}.`,
-      );
-    });
-  } catch (error) {
-    // As with reportGraphQLError above, if the error is a GraphQLError, report
-    // it as an ExecutionResult; otherwise treat it as a system-class error and
-    // re-throw it.
-    return error instanceof GraphQLError
-      ? Promise.resolve({ errors: [error] })
-      : Promise.reject(error);
-  }
-}
-
-/**
- * Returns true if the provided object implements the AsyncIterator protocol via
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
- */
-function isAsyncIterable(maybeAsyncIterable: mixed): boolean {
-  if (maybeAsyncIterable == null || typeof maybeAsyncIterable !== 'object') {
-    return false;
-  }
-
-  return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/subscription/subscribe.mjs b/node_modules/graphql/subscription/subscribe.mjs
deleted file mode 100644
index c0ff84d..0000000
--- a/node_modules/graphql/subscription/subscribe.mjs
+++ /dev/null
@@ -1,184 +0,0 @@
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-import { SYMBOL_ASYNC_ITERATOR } from "../polyfills/symbols.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import { addPath, pathToArray } from "../jsutils/Path.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { locatedError } from "../error/locatedError.mjs";
-import { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef, resolveFieldValueOrError } from "../execution/execute.mjs";
-import { getOperationRootType } from "../utilities/getOperationRootType.mjs";
-import mapAsyncIterator from "./mapAsyncIterator.mjs";
-export function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
-  /* eslint-enable no-redeclare */
-  // Extract arguments from object args if provided.
-  return arguments.length === 1 ? subscribeImpl(argsOrSchema) : subscribeImpl({
-    schema: argsOrSchema,
-    document: document,
-    rootValue: rootValue,
-    contextValue: contextValue,
-    variableValues: variableValues,
-    operationName: operationName,
-    fieldResolver: fieldResolver,
-    subscribeFieldResolver: subscribeFieldResolver
-  });
-}
-/**
- * This function checks if the error is a GraphQLError. If it is, report it as
- * an ExecutionResult, containing only errors and no data. Otherwise treat the
- * error as a system-class error and re-throw it.
- */
-
-function reportGraphQLError(error) {
-  if (error instanceof GraphQLError) {
-    return {
-      errors: [error]
-    };
-  }
-
-  throw error;
-}
-
-function subscribeImpl(args) {
-  var schema = args.schema,
-      document = args.document,
-      rootValue = args.rootValue,
-      contextValue = args.contextValue,
-      variableValues = args.variableValues,
-      operationName = args.operationName,
-      fieldResolver = args.fieldResolver,
-      subscribeFieldResolver = args.subscribeFieldResolver;
-  var sourcePromise = createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, subscribeFieldResolver); // For each payload yielded from a subscription, map it over the normal
-  // GraphQL `execute` function, with `payload` as the rootValue.
-  // This implements the "MapSourceToResponseEvent" algorithm described in
-  // the GraphQL specification. The `execute` function provides the
-  // "ExecuteSubscriptionEvent" algorithm, as it is nearly identical to the
-  // "ExecuteQuery" algorithm, for which `execute` is also used.
-
-  var mapSourceToResponse = function mapSourceToResponse(payload) {
-    return execute({
-      schema: schema,
-      document: document,
-      rootValue: payload,
-      contextValue: contextValue,
-      variableValues: variableValues,
-      operationName: operationName,
-      fieldResolver: fieldResolver
-    });
-  }; // Resolve the Source Stream, then map every source value to a
-  // ExecutionResult value as described above.
-
-
-  return sourcePromise.then(function (resultOrStream) {
-    return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.
-      isAsyncIterable(resultOrStream) ? mapAsyncIterator(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream
-    );
-  });
-}
-/**
- * Implements the "CreateSourceEventStream" algorithm described in the
- * GraphQL specification, resolving the subscription source event stream.
- *
- * Returns a Promise which resolves to either an AsyncIterable (if successful)
- * or an ExecutionResult (error). The promise will be rejected if the schema or
- * other arguments to this function are invalid, or if the resolved event stream
- * is not an async iterable.
- *
- * If the client-provided arguments to this function do not result in a
- * compliant subscription, a GraphQL Response (ExecutionResult) with
- * descriptive errors and no data will be returned.
- *
- * If the the source stream could not be created due to faulty subscription
- * resolver logic or underlying systems, the promise will resolve to a single
- * ExecutionResult containing `errors` and no `data`.
- *
- * If the operation succeeded, the promise resolves to the AsyncIterable for the
- * event stream returned by the resolver.
- *
- * A Source Event Stream represents a sequence of events, each of which triggers
- * a GraphQL execution for that event.
- *
- * This may be useful when hosting the stateful subscription service in a
- * different process or machine than the stateless GraphQL execution engine,
- * or otherwise separating these two steps. For more on this, see the
- * "Supporting Subscriptions at Scale" information in the GraphQL specification.
- */
-
-
-export function createSourceEventStream(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
-  // If arguments are missing or incorrectly typed, this is an internal
-  // developer mistake which should throw an early error.
-  assertValidExecutionArguments(schema, document, variableValues);
-
-  try {
-    var _fieldDef$subscribe;
-
-    // If a valid context cannot be created due to incorrect arguments,
-    // this will throw an error.
-    var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
-
-    if (Array.isArray(exeContext)) {
-      return Promise.resolve({
-        errors: exeContext
-      });
-    }
-
-    var type = getOperationRootType(schema, exeContext.operation);
-    var fields = collectFields(exeContext, type, exeContext.operation.selectionSet, Object.create(null), Object.create(null));
-    var responseNames = Object.keys(fields);
-    var responseName = responseNames[0];
-    var fieldNodes = fields[responseName];
-    var fieldNode = fieldNodes[0];
-    var fieldName = fieldNode.name.value;
-    var fieldDef = getFieldDef(schema, type, fieldName);
-
-    if (!fieldDef) {
-      throw new GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
-    } // Call the `subscribe()` resolver or the default resolver to produce an
-    // AsyncIterable yielding raw payloads.
-
-
-    var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
-    var path = addPath(undefined, responseName);
-    var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
-    // algorithm from GraphQL specification. It differs from
-    // "ResolveFieldValue" due to providing a different `resolveFn`.
-
-    var result = resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, rootValue, info); // Coerce to Promise for easier error handling and consistent return type.
-
-    return Promise.resolve(result).then(function (eventStream) {
-      // If eventStream is an Error, rethrow a located error.
-      if (eventStream instanceof Error) {
-        return {
-          errors: [locatedError(eventStream, fieldNodes, pathToArray(path))]
-        };
-      } // Assert field returned an event stream, otherwise yield an error.
-
-
-      if (isAsyncIterable(eventStream)) {
-        // Note: isAsyncIterable above ensures this will be correct.
-        return eventStream;
-      }
-
-      throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat(inspect(eventStream), "."));
-    });
-  } catch (error) {
-    // As with reportGraphQLError above, if the error is a GraphQLError, report
-    // it as an ExecutionResult; otherwise treat it as a system-class error and
-    // re-throw it.
-    return error instanceof GraphQLError ? Promise.resolve({
-      errors: [error]
-    }) : Promise.reject(error);
-  }
-}
-/**
- * Returns true if the provided object implements the AsyncIterator protocol via
- * either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
- */
-
-function isAsyncIterable(maybeAsyncIterable) {
-  if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
-    return false;
-  }
-
-  return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
-}
diff --git a/node_modules/graphql/tsutils/Maybe.d.ts b/node_modules/graphql/tsutils/Maybe.d.ts
deleted file mode 100644
index eb9563a..0000000
--- a/node_modules/graphql/tsutils/Maybe.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-// Conveniently represents flow's "Maybe" type https://flow.org/en/docs/types/maybe/
-type Maybe<T> = null | undefined | T;
-
-// See https://github.com/typescript-eslint/typescript-eslint/issues/131
-// eslint-disable-next-line no-undef
-export default Maybe;
diff --git a/node_modules/graphql/type/definition.d.ts b/node_modules/graphql/type/definition.d.ts
deleted file mode 100644
index 2f07ff9..0000000
--- a/node_modules/graphql/type/definition.d.ts
+++ /dev/null
@@ -1,816 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { PromiseOrValue } from '../jsutils/PromiseOrValue';
-import { Path } from '../jsutils/Path';
-
-import {
-  ScalarTypeDefinitionNode,
-  ObjectTypeDefinitionNode,
-  FieldDefinitionNode,
-  InputValueDefinitionNode,
-  InterfaceTypeDefinitionNode,
-  UnionTypeDefinitionNode,
-  EnumTypeDefinitionNode,
-  EnumValueDefinitionNode,
-  InputObjectTypeDefinitionNode,
-  ObjectTypeExtensionNode,
-  InterfaceTypeExtensionNode,
-  OperationDefinitionNode,
-  FieldNode,
-  FragmentDefinitionNode,
-  ValueNode,
-  ScalarTypeExtensionNode,
-  UnionTypeExtensionNode,
-  EnumTypeExtensionNode,
-  InputObjectTypeExtensionNode,
-} from '../language/ast';
-
-import { GraphQLSchema } from './schema';
-
-/**
- * These are all of the possible kinds of types.
- */
-export type GraphQLType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<any>
-  | GraphQLNonNull<any>;
-
-export function isType(type: any): type is GraphQLType;
-
-export function assertType(type: any): GraphQLType;
-
-export function isScalarType(type: any): type is GraphQLScalarType;
-
-export function assertScalarType(type: any): GraphQLScalarType;
-
-export function isObjectType(type: any): type is GraphQLObjectType;
-
-export function assertObjectType(type: any): GraphQLObjectType;
-
-export function isInterfaceType(type: any): type is GraphQLInterfaceType;
-
-export function assertInterfaceType(type: any): GraphQLInterfaceType;
-
-export function isUnionType(type: any): type is GraphQLUnionType;
-
-export function assertUnionType(type: any): GraphQLUnionType;
-
-export function isEnumType(type: any): type is GraphQLEnumType;
-
-export function assertEnumType(type: any): GraphQLEnumType;
-
-export function isInputObjectType(type: any): type is GraphQLInputObjectType;
-
-export function assertInputObjectType(type: any): GraphQLInputObjectType;
-
-export function isListType(type: any): type is GraphQLList<any>;
-
-export function assertListType(type: any): GraphQLList<any>;
-
-export function isNonNullType(type: any): type is GraphQLNonNull<any>;
-
-export function assertNonNullType(type: any): GraphQLNonNull<any>;
-
-/**
- * These types may be used as input types for arguments and directives.
- */
-// TS_SPECIFIC: TS does not allow recursive type definitions, hence the `any`s
-export type GraphQLInputType =
-  | GraphQLScalarType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<any>
-  | GraphQLNonNull<
-      | GraphQLScalarType
-      | GraphQLEnumType
-      | GraphQLInputObjectType
-      | GraphQLList<any>
-    >;
-
-export function isInputType(type: any): type is GraphQLInputType;
-
-export function assertInputType(type: any): GraphQLInputType;
-
-/**
- * These types may be used as output types as the result of fields.
- */
-// TS_SPECIFIC: TS does not allow recursive type definitions, hence the `any`s
-export type GraphQLOutputType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLList<any>
-  | GraphQLNonNull<
-      | GraphQLScalarType
-      | GraphQLObjectType
-      | GraphQLInterfaceType
-      | GraphQLUnionType
-      | GraphQLEnumType
-      | GraphQLList<any>
-    >;
-
-export function isOutputType(type: any): type is GraphQLOutputType;
-
-export function assertOutputType(type: any): GraphQLOutputType;
-
-/**
- * These types may describe types which may be leaf values.
- */
-export type GraphQLLeafType = GraphQLScalarType | GraphQLEnumType;
-
-export function isLeafType(type: any): type is GraphQLLeafType;
-
-export function assertLeafType(type: any): GraphQLLeafType;
-
-/**
- * These types may describe the parent context of a selection set.
- */
-export type GraphQLCompositeType =
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType;
-
-export function isCompositeType(type: any): type is GraphQLCompositeType;
-
-export function assertCompositeType(type: any): GraphQLCompositeType;
-
-/**
- * These types may describe the parent context of a selection set.
- */
-export type GraphQLAbstractType = GraphQLInterfaceType | GraphQLUnionType;
-
-export function isAbstractType(type: any): type is GraphQLAbstractType;
-
-export function assertAbstractType(type: any): GraphQLAbstractType;
-
-/**
- * List Modifier
- *
- * A list is a kind of type marker, a wrapping type which points to another
- * type. Lists are often created within the context of defining the fields
- * of an object type.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         parents: { type: new GraphQLList(Person) },
- *         children: { type: new GraphQLList(Person) },
- *       })
- *     })
- *
- */
-interface GraphQLList<T extends GraphQLType> {
-  readonly ofType: T;
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-interface _GraphQLList<T extends GraphQLType> {
-  (type: T): GraphQLList<T>;
-  new (type: T): GraphQLList<T>;
-}
-
-export const GraphQLList: _GraphQLList<GraphQLType>;
-
-/**
- * Non-Null Modifier
- *
- * A non-null is a kind of type marker, a wrapping type which points to another
- * type. Non-null types enforce that their values are never null and can ensure
- * an error is raised if this ever occurs during a request. It is useful for
- * fields which you can make a strong guarantee on non-nullability, for example
- * usually the id field of a database row will never be null.
- *
- * Example:
- *
- *     const RowType = new GraphQLObjectType({
- *       name: 'Row',
- *       fields: () => ({
- *         id: { type: new GraphQLNonNull(GraphQLString) },
- *       })
- *     })
- *
- * Note: the enforcement of non-nullability occurs within the executor.
- */
-interface GraphQLNonNull<T extends GraphQLNullableType> {
-  readonly ofType: T;
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-interface _GraphQLNonNull<T extends GraphQLNullableType> {
-  (type: T): GraphQLNonNull<T>;
-  new (type: T): GraphQLNonNull<T>;
-}
-
-export const GraphQLNonNull: _GraphQLNonNull<GraphQLNullableType>;
-
-export type GraphQLWrappingType = GraphQLList<any> | GraphQLNonNull<any>;
-
-export function isWrappingType(type: any): type is GraphQLWrappingType;
-
-export function assertWrappingType(type: any): GraphQLWrappingType;
-
-/**
- * These types can all accept null as a value.
- */
-export type GraphQLNullableType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<any>;
-
-export function isNullableType(type: any): type is GraphQLNullableType;
-
-export function assertNullableType(type: any): GraphQLNullableType;
-
-export function getNullableType(type: void): undefined;
-export function getNullableType<T extends GraphQLNullableType>(
-  type: GraphQLNonNull<T> | T,
-): T;
-
-/**
- * These named types do not include modifiers like List or NonNull.
- */
-export type GraphQLNamedType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType;
-
-export function isNamedType(type: any): type is GraphQLNamedType;
-
-export function assertNamedType(type: any): GraphQLNamedType;
-
-export function getNamedType(type: void): undefined;
-export function getNamedType(type: GraphQLType): GraphQLNamedType;
-
-/**
- * Used while defining GraphQL types to allow for circular references in
- * otherwise immutable type definitions.
- */
-export type Thunk<T> = (() => T) | T;
-
-/**
- * Scalar Type Definition
- *
- * The leaf values of any request and input values to arguments are
- * Scalars (or Enums) and are defined with a name and a series of functions
- * used to parse input from ast or variables and to ensure validity.
- *
- * Example:
- *
- *     const OddType = new GraphQLScalarType({
- *       name: 'Odd',
- *       serialize(value) {
- *         return value % 2 === 1 ? value : null;
- *       }
- *     });
- *
- */
-export class GraphQLScalarType {
-  name: string;
-  description: Maybe<string>;
-  serialize: GraphQLScalarSerializer<any>;
-  parseValue: GraphQLScalarValueParser<any>;
-  parseLiteral: GraphQLScalarLiteralParser<any>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<ScalarTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<ScalarTypeExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLScalarTypeConfig<any, any>>);
-
-  toConfig(): GraphQLScalarTypeConfig<any, any> & {
-    serialize: GraphQLScalarSerializer<any>;
-    parseValue: GraphQLScalarValueParser<any>;
-    parseLiteral: GraphQLScalarLiteralParser<any>;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<ScalarTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export type GraphQLScalarSerializer<TExternal> = (
-  value: any,
-) => Maybe<TExternal>;
-export type GraphQLScalarValueParser<TInternal> = (
-  value: any,
-) => Maybe<TInternal>;
-export type GraphQLScalarLiteralParser<TInternal> = (
-  valueNode: ValueNode,
-  variables: Maybe<{ [key: string]: any }>,
-) => Maybe<TInternal>;
-
-export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
-  name: string;
-  description?: Maybe<string>;
-  // Serializes an internal value to include in a response.
-  serialize: GraphQLScalarSerializer<TExternal>;
-  // Parses an externally provided value to use as an input.
-  parseValue?: GraphQLScalarValueParser<TInternal>;
-  // Parses an externally provided literal value to use as an input.
-  parseLiteral?: GraphQLScalarLiteralParser<TInternal>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<ScalarTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<ScalarTypeExtensionNode>>;
-}
-
-/**
- * Object Type Definition
- *
- * Almost all of the GraphQL types you define will be object types. Object types
- * have a name, but most importantly describe their fields.
- *
- * Example:
- *
- *     const AddressType = new GraphQLObjectType({
- *       name: 'Address',
- *       fields: {
- *         street: { type: GraphQLString },
- *         number: { type: GraphQLInt },
- *         formatted: {
- *           type: GraphQLString,
- *           resolve(obj) {
- *             return obj.number + ' ' + obj.street
- *           }
- *         }
- *       }
- *     });
- *
- * When two types need to refer to each other, or a type needs to refer to
- * itself in a field, you can use a function expression (aka a closure or a
- * thunk) to supply the fields lazily.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         name: { type: GraphQLString },
- *         bestFriend: { type: PersonType },
- *       })
- *     });
- *
- */
-export class GraphQLObjectType<
-  TSource = any,
-  TContext = any,
-  TArgs = { [key: string]: any }
-> {
-  name: string;
-  description: Maybe<string>;
-  isTypeOf: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<ObjectTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
-
-  constructor(
-    config: Readonly<GraphQLObjectTypeConfig<TSource, TContext, TArgs>>,
-  );
-
-  getFields(): GraphQLFieldMap<any, TContext, TArgs>;
-  getInterfaces(): Array<GraphQLInterfaceType>;
-
-  toConfig(): GraphQLObjectTypeConfig<any, any> & {
-    interfaces: Array<GraphQLInterfaceType>;
-    fields: GraphQLFieldConfigMap<any, any>;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<ObjectTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export function argsToArgsConfig(
-  args: ReadonlyArray<GraphQLArgument>,
-): GraphQLFieldConfigArgumentMap;
-
-// TS_SPECIFIC: TArgs
-export interface GraphQLObjectTypeConfig<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> {
-  name: string;
-  description?: Maybe<string>;
-  interfaces?: Thunk<Maybe<Array<GraphQLInterfaceType>>>;
-  fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
-  isTypeOf?: Maybe<GraphQLIsTypeOfFn<TSource, TContext>>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<ObjectTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>;
-}
-
-// TS_SPECIFIC: TArgs
-export type GraphQLTypeResolver<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> = (
-  value: TSource,
-  context: TContext,
-  info: GraphQLResolveInfo,
-  abstractType: GraphQLAbstractType,
-) => PromiseOrValue<
-  Maybe<GraphQLObjectType<TSource, TContext, TArgs> | string>
->;
-
-export type GraphQLIsTypeOfFn<TSource, TContext> = (
-  source: TSource,
-  context: TContext,
-  info: GraphQLResolveInfo,
-) => PromiseOrValue<boolean>;
-
-export type GraphQLFieldResolver<
-  TSource,
-  TContext,
-  TArgs = { [argName: string]: any }
-> = (
-  source: TSource,
-  args: TArgs,
-  context: TContext,
-  info: GraphQLResolveInfo,
-) => any;
-
-export interface GraphQLResolveInfo {
-  readonly fieldName: string;
-  readonly fieldNodes: ReadonlyArray<FieldNode>;
-  readonly returnType: GraphQLOutputType;
-  readonly parentType: GraphQLObjectType;
-  readonly path: Path;
-  readonly schema: GraphQLSchema;
-  readonly fragments: { [key: string]: FragmentDefinitionNode };
-  readonly rootValue: any;
-  readonly operation: OperationDefinitionNode;
-  readonly variableValues: { [variableName: string]: any };
-}
-
-export interface GraphQLFieldConfig<
-  TSource,
-  TContext,
-  TArgs = { [argName: string]: any }
-> {
-  description?: Maybe<string>;
-  type: GraphQLOutputType;
-  args?: GraphQLFieldConfigArgumentMap;
-  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
-  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
-  deprecationReason?: Maybe<string>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<FieldDefinitionNode>;
-}
-
-export type GraphQLFieldConfigArgumentMap = {
-  [key: string]: GraphQLArgumentConfig;
-};
-
-export interface GraphQLArgumentConfig {
-  description?: Maybe<string>;
-  type: GraphQLInputType;
-  defaultValue?: any;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InputValueDefinitionNode>;
-}
-
-// TS_SPECIFIC: TArgs
-export type GraphQLFieldConfigMap<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> = {
-  [key: string]: GraphQLFieldConfig<TSource, TContext, TArgs>;
-};
-
-export interface GraphQLField<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> {
-  name: string;
-  description: Maybe<string>;
-  type: GraphQLOutputType;
-  args: Array<GraphQLArgument>;
-  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
-  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
-  isDeprecated?: boolean;
-  deprecationReason?: Maybe<string>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<FieldDefinitionNode>;
-}
-
-export interface GraphQLArgument {
-  name: string;
-  description: Maybe<string>;
-  type: GraphQLInputType;
-  defaultValue: any;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<InputValueDefinitionNode>;
-}
-
-export function isRequiredArgument(arg: GraphQLArgument): boolean;
-
-// TS_SPECIFIC: TArgs
-export type GraphQLFieldMap<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> = {
-  [key: string]: GraphQLField<TSource, TContext, TArgs>;
-};
-
-/**
- * Interface Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Interface type
- * is used to describe what types are possible, what fields are in common across
- * all types, as well as a function to determine which type is actually used
- * when the field is resolved.
- *
- * Example:
- *
- *     const EntityType = new GraphQLInterfaceType({
- *       name: 'Entity',
- *       fields: {
- *         name: { type: GraphQLString }
- *       }
- *     });
- *
- */
-export class GraphQLInterfaceType {
-  name: string;
-  description: Maybe<string>;
-  resolveType: Maybe<GraphQLTypeResolver<any, any>>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InterfaceTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<InterfaceTypeExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLInterfaceTypeConfig<any, any>>);
-  getFields(): GraphQLFieldMap<any, any>;
-  getInterfaces(): Array<GraphQLInterfaceType>;
-
-  toConfig(): GraphQLInterfaceTypeConfig<any, any> & {
-    interfaces: Array<GraphQLInterfaceType>;
-    fields: GraphQLFieldConfigMap<any, any>;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<InterfaceTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-// TS_SPECIFIC: TArgs
-export interface GraphQLInterfaceTypeConfig<
-  TSource,
-  TContext,
-  TArgs = { [key: string]: any }
-> {
-  name: string;
-  description?: Maybe<string>;
-  interfaces?: Thunk<Maybe<Array<GraphQLInterfaceType>>>;
-  fields: Thunk<GraphQLFieldConfigMap<TSource, TContext, TArgs>>;
-  /**
-   * Optionally provide a custom type resolver function. If one is not provided,
-   * the default implementation will call `isTypeOf` on each implementing
-   * Object type.
-   */
-  resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext, TArgs>>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InterfaceTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<InterfaceTypeExtensionNode>>;
-}
-
-/**
- * Union Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Union type
- * is used to describe what types are possible as well as providing a function
- * to determine which type is actually used when the field is resolved.
- *
- * Example:
- *
- *     const PetType = new GraphQLUnionType({
- *       name: 'Pet',
- *       types: [ DogType, CatType ],
- *       resolveType(value) {
- *         if (value instanceof Dog) {
- *           return DogType;
- *         }
- *         if (value instanceof Cat) {
- *           return CatType;
- *         }
- *       }
- *     });
- *
- */
-export class GraphQLUnionType {
-  name: string;
-  description: Maybe<string>;
-  resolveType: Maybe<GraphQLTypeResolver<any, any>>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<UnionTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<UnionTypeExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLUnionTypeConfig<any, any>>);
-  getTypes(): Array<GraphQLObjectType>;
-
-  toConfig(): GraphQLUnionTypeConfig<any, any> & {
-    types: Array<GraphQLObjectType>;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<UnionTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export interface GraphQLUnionTypeConfig<TSource, TContext> {
-  name: string;
-  description?: Maybe<string>;
-  types: Thunk<Array<GraphQLObjectType>>;
-  /**
-   * Optionally provide a custom type resolver function. If one is not provided,
-   * the default implementation will call `isTypeOf` on each implementing
-   * Object type.
-   */
-  resolveType?: Maybe<GraphQLTypeResolver<TSource, TContext>>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<UnionTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<UnionTypeExtensionNode>>;
-}
-
-/**
- * Enum Type Definition
- *
- * Some leaf values of requests and input values are Enums. GraphQL serializes
- * Enum values as strings, however internally Enums can be represented by any
- * kind of type, often integers.
- *
- * Example:
- *
- *     const RGBType = new GraphQLEnumType({
- *       name: 'RGB',
- *       values: {
- *         RED: { value: 0 },
- *         GREEN: { value: 1 },
- *         BLUE: { value: 2 }
- *       }
- *     });
- *
- * Note: If a value is not provided in a definition, the name of the enum value
- * will be used as its internal value.
- */
-export class GraphQLEnumType {
-  name: string;
-  description: Maybe<string>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<EnumTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<EnumTypeExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLEnumTypeConfig>);
-  getValues(): Array<GraphQLEnumValue>;
-  getValue(name: string): Maybe<GraphQLEnumValue>;
-  serialize(value: any): Maybe<string>;
-  parseValue(value: any): Maybe<any>;
-  parseLiteral(
-    valueNode: ValueNode,
-    _variables: Maybe<{ [key: string]: any }>,
-  ): Maybe<any>;
-
-  toConfig(): GraphQLEnumTypeConfig & {
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<EnumTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export interface GraphQLEnumTypeConfig {
-  name: string;
-  description?: Maybe<string>;
-  values: GraphQLEnumValueConfigMap;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<EnumTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<EnumTypeExtensionNode>>;
-}
-
-export type GraphQLEnumValueConfigMap = {
-  [key: string]: GraphQLEnumValueConfig;
-};
-
-export interface GraphQLEnumValueConfig {
-  description?: Maybe<string>;
-  value?: any;
-  deprecationReason?: Maybe<string>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<EnumValueDefinitionNode>;
-}
-
-export interface GraphQLEnumValue {
-  name: string;
-  description: Maybe<string>;
-  value: any;
-  isDeprecated?: boolean;
-  deprecationReason: Maybe<string>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<EnumValueDefinitionNode>;
-}
-
-/**
- * Input Object Type Definition
- *
- * An input object defines a structured collection of fields which may be
- * supplied to a field argument.
- *
- * Using `NonNull` will ensure that a value must be provided by the query
- *
- * Example:
- *
- *     const GeoPoint = new GraphQLInputObjectType({
- *       name: 'GeoPoint',
- *       fields: {
- *         lat: { type: new GraphQLNonNull(GraphQLFloat) },
- *         lon: { type: new GraphQLNonNull(GraphQLFloat) },
- *         alt: { type: GraphQLFloat, defaultValue: 0 },
- *       }
- *     });
- *
- */
-export class GraphQLInputObjectType {
-  name: string;
-  description: Maybe<string>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<InputObjectTypeDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<InputObjectTypeExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLInputObjectTypeConfig>);
-  getFields(): GraphQLInputFieldMap;
-
-  toConfig(): GraphQLInputObjectTypeConfig & {
-    fields: GraphQLInputFieldConfigMap;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<InputObjectTypeExtensionNode>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export interface GraphQLInputObjectTypeConfig {
-  name: string;
-  description?: Maybe<string>;
-  fields: Thunk<GraphQLInputFieldConfigMap>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InputObjectTypeDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<InputObjectTypeExtensionNode>>;
-}
-
-export interface GraphQLInputFieldConfig {
-  description?: Maybe<string>;
-  type: GraphQLInputType;
-  defaultValue?: any;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InputValueDefinitionNode>;
-}
-
-export type GraphQLInputFieldConfigMap = {
-  [key: string]: GraphQLInputFieldConfig;
-};
-
-export interface GraphQLInputField {
-  name: string;
-  description?: Maybe<string>;
-  type: GraphQLInputType;
-  defaultValue?: any;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<InputValueDefinitionNode>;
-}
-
-export function isRequiredInputField(field: GraphQLInputField): boolean;
-
-export type GraphQLInputFieldMap = { [key: string]: GraphQLInputField };
diff --git a/node_modules/graphql/type/definition.js b/node_modules/graphql/type/definition.js
deleted file mode 100644
index a125853..0000000
--- a/node_modules/graphql/type/definition.js
+++ /dev/null
@@ -1,1189 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isType = isType;
-exports.assertType = assertType;
-exports.isScalarType = isScalarType;
-exports.assertScalarType = assertScalarType;
-exports.isObjectType = isObjectType;
-exports.assertObjectType = assertObjectType;
-exports.isInterfaceType = isInterfaceType;
-exports.assertInterfaceType = assertInterfaceType;
-exports.isUnionType = isUnionType;
-exports.assertUnionType = assertUnionType;
-exports.isEnumType = isEnumType;
-exports.assertEnumType = assertEnumType;
-exports.isInputObjectType = isInputObjectType;
-exports.assertInputObjectType = assertInputObjectType;
-exports.isListType = isListType;
-exports.assertListType = assertListType;
-exports.isNonNullType = isNonNullType;
-exports.assertNonNullType = assertNonNullType;
-exports.isInputType = isInputType;
-exports.assertInputType = assertInputType;
-exports.isOutputType = isOutputType;
-exports.assertOutputType = assertOutputType;
-exports.isLeafType = isLeafType;
-exports.assertLeafType = assertLeafType;
-exports.isCompositeType = isCompositeType;
-exports.assertCompositeType = assertCompositeType;
-exports.isAbstractType = isAbstractType;
-exports.assertAbstractType = assertAbstractType;
-exports.GraphQLList = GraphQLList;
-exports.GraphQLNonNull = GraphQLNonNull;
-exports.isWrappingType = isWrappingType;
-exports.assertWrappingType = assertWrappingType;
-exports.isNullableType = isNullableType;
-exports.assertNullableType = assertNullableType;
-exports.getNullableType = getNullableType;
-exports.isNamedType = isNamedType;
-exports.assertNamedType = assertNamedType;
-exports.getNamedType = getNamedType;
-exports.argsToArgsConfig = argsToArgsConfig;
-exports.isRequiredArgument = isRequiredArgument;
-exports.isRequiredInputField = isRequiredInputField;
-exports.GraphQLInputObjectType = exports.GraphQLEnumType = exports.GraphQLUnionType = exports.GraphQLInterfaceType = exports.GraphQLObjectType = exports.GraphQLScalarType = void 0;
-
-var _objectEntries = _interopRequireDefault(require("../polyfills/objectEntries"));
-
-var _symbols = require("../polyfills/symbols");
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
-
-var _mapValue = _interopRequireDefault(require("../jsutils/mapValue"));
-
-var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
-
-var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
-
-var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _identityFunc = _interopRequireDefault(require("../jsutils/identityFunc"));
-
-var _defineToJSON = _interopRequireDefault(require("../jsutils/defineToJSON"));
-
-var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList"));
-
-var _kinds = require("../language/kinds");
-
-var _printer = require("../language/printer");
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _valueFromASTUntyped = require("../utilities/valueFromASTUntyped");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-function isType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type);
-}
-
-function assertType(type) {
-  if (!isType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL type."));
-  }
-
-  return type;
-}
-/**
- * There are predicates for each kind of GraphQL type.
- */
-
-
-// eslint-disable-next-line no-redeclare
-function isScalarType(type) {
-  return (0, _instanceOf.default)(type, GraphQLScalarType);
-}
-
-function assertScalarType(type) {
-  if (!isScalarType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Scalar type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isObjectType(type) {
-  return (0, _instanceOf.default)(type, GraphQLObjectType);
-}
-
-function assertObjectType(type) {
-  if (!isObjectType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Object type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isInterfaceType(type) {
-  return (0, _instanceOf.default)(type, GraphQLInterfaceType);
-}
-
-function assertInterfaceType(type) {
-  if (!isInterfaceType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Interface type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isUnionType(type) {
-  return (0, _instanceOf.default)(type, GraphQLUnionType);
-}
-
-function assertUnionType(type) {
-  if (!isUnionType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Union type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isEnumType(type) {
-  return (0, _instanceOf.default)(type, GraphQLEnumType);
-}
-
-function assertEnumType(type) {
-  if (!isEnumType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Enum type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isInputObjectType(type) {
-  return (0, _instanceOf.default)(type, GraphQLInputObjectType);
-}
-
-function assertInputObjectType(type) {
-  if (!isInputObjectType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Input Object type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isListType(type) {
-  return (0, _instanceOf.default)(type, GraphQLList);
-}
-
-function assertListType(type) {
-  if (!isListType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL List type."));
-  }
-
-  return type;
-}
-
-// eslint-disable-next-line no-redeclare
-function isNonNullType(type) {
-  return (0, _instanceOf.default)(type, GraphQLNonNull);
-}
-
-function assertNonNullType(type) {
-  if (!isNonNullType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL Non-Null type."));
-  }
-
-  return type;
-}
-/**
- * These types may be used as input types for arguments and directives.
- */
-
-
-function isInputType(type) {
-  return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType);
-}
-
-function assertInputType(type) {
-  if (!isInputType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL input type."));
-  }
-
-  return type;
-}
-/**
- * These types may be used as output types as the result of fields.
- */
-
-
-function isOutputType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType);
-}
-
-function assertOutputType(type) {
-  if (!isOutputType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL output type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe types which may be leaf values.
- */
-
-
-function isLeafType(type) {
-  return isScalarType(type) || isEnumType(type);
-}
-
-function assertLeafType(type) {
-  if (!isLeafType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL leaf type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe the parent context of a selection set.
- */
-
-
-function isCompositeType(type) {
-  return isObjectType(type) || isInterfaceType(type) || isUnionType(type);
-}
-
-function assertCompositeType(type) {
-  if (!isCompositeType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL composite type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe the parent context of a selection set.
- */
-
-
-function isAbstractType(type) {
-  return isInterfaceType(type) || isUnionType(type);
-}
-
-function assertAbstractType(type) {
-  if (!isAbstractType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL abstract type."));
-  }
-
-  return type;
-}
-/**
- * List Type Wrapper
- *
- * A list is a wrapping type which points to another type.
- * Lists are often created within the context of defining the fields of
- * an object type.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         parents: { type: GraphQLList(PersonType) },
- *         children: { type: GraphQLList(PersonType) },
- *       })
- *     })
- *
- */
-// FIXME: workaround to fix issue with Babel parser
-
-/* ::
-declare class GraphQLList<+T: GraphQLType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLList<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-
-function GraphQLList(ofType) {
-  if (this instanceof GraphQLList) {
-    this.ofType = assertType(ofType);
-  } else {
-    return new GraphQLList(ofType);
-  }
-} // Need to cast through any to alter the prototype.
-
-
-GraphQLList.prototype.toString = function toString() {
-  return '[' + String(this.ofType) + ']';
-};
-
-Object.defineProperty(GraphQLList.prototype, _symbols.SYMBOL_TO_STRING_TAG, {
-  get: function get() {
-    return 'GraphQLList';
-  }
-});
-(0, _defineToJSON.default)(GraphQLList);
-/**
- * Non-Null Type Wrapper
- *
- * A non-null is a wrapping type which points to another type.
- * Non-null types enforce that their values are never null and can ensure
- * an error is raised if this ever occurs during a request. It is useful for
- * fields which you can make a strong guarantee on non-nullability, for example
- * usually the id field of a database row will never be null.
- *
- * Example:
- *
- *     const RowType = new GraphQLObjectType({
- *       name: 'Row',
- *       fields: () => ({
- *         id: { type: GraphQLNonNull(GraphQLString) },
- *       })
- *     })
- *
- * Note: the enforcement of non-nullability occurs within the executor.
- */
-// FIXME: workaround to fix issue with Babel parser
-
-/* ::
-declare class GraphQLNonNull<+T: GraphQLNullableType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLNonNull<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-function GraphQLNonNull(ofType) {
-  if (this instanceof GraphQLNonNull) {
-    this.ofType = assertNullableType(ofType);
-  } else {
-    return new GraphQLNonNull(ofType);
-  }
-} // Need to cast through any to alter the prototype.
-
-
-GraphQLNonNull.prototype.toString = function toString() {
-  return String(this.ofType) + '!';
-};
-
-Object.defineProperty(GraphQLNonNull.prototype, _symbols.SYMBOL_TO_STRING_TAG, {
-  get: function get() {
-    return 'GraphQLNonNull';
-  }
-});
-(0, _defineToJSON.default)(GraphQLNonNull);
-/**
- * These types wrap and modify other types
- */
-
-function isWrappingType(type) {
-  return isListType(type) || isNonNullType(type);
-}
-
-function assertWrappingType(type) {
-  if (!isWrappingType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL wrapping type."));
-  }
-
-  return type;
-}
-/**
- * These types can all accept null as a value.
- */
-
-
-function isNullableType(type) {
-  return isType(type) && !isNonNullType(type);
-}
-
-function assertNullableType(type) {
-  if (!isNullableType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL nullable type."));
-  }
-
-  return type;
-}
-/* eslint-disable no-redeclare */
-
-
-function getNullableType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    return isNonNullType(type) ? type.ofType : type;
-  }
-}
-/**
- * These named types do not include modifiers like List or NonNull.
- */
-
-
-function isNamedType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type);
-}
-
-function assertNamedType(type) {
-  if (!isNamedType(type)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(type), " to be a GraphQL named type."));
-  }
-
-  return type;
-}
-/* eslint-disable no-redeclare */
-
-
-function getNamedType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    var unwrappedType = type;
-
-    while (isWrappingType(unwrappedType)) {
-      unwrappedType = unwrappedType.ofType;
-    }
-
-    return unwrappedType;
-  }
-}
-/**
- * Used while defining GraphQL types to allow for circular references in
- * otherwise immutable type definitions.
- */
-
-
-function resolveThunk(thunk) {
-  // $FlowFixMe(>=0.90.0)
-  return typeof thunk === 'function' ? thunk() : thunk;
-}
-
-function undefineIfEmpty(arr) {
-  return arr && arr.length > 0 ? arr : undefined;
-}
-/**
- * Scalar Type Definition
- *
- * The leaf values of any request and input values to arguments are
- * Scalars (or Enums) and are defined with a name and a series of functions
- * used to parse input from ast or variables and to ensure validity.
- *
- * If a type's serialize function does not return a value (i.e. it returns
- * `undefined`) then an error will be raised and a `null` value will be returned
- * in the response. If the serialize function returns `null`, then no error will
- * be included in the response.
- *
- * Example:
- *
- *     const OddType = new GraphQLScalarType({
- *       name: 'Odd',
- *       serialize(value) {
- *         if (value % 2 === 1) {
- *           return value;
- *         }
- *       }
- *     });
- *
- */
-
-
-var GraphQLScalarType =
-/*#__PURE__*/
-function () {
-  function GraphQLScalarType(config) {
-    var _config$parseValue, _config$serialize, _config$parseLiteral;
-
-    var parseValue = (_config$parseValue = config.parseValue) !== null && _config$parseValue !== void 0 ? _config$parseValue : _identityFunc.default;
-    this.name = config.name;
-    this.description = config.description;
-    this.serialize = (_config$serialize = config.serialize) !== null && _config$serialize !== void 0 ? _config$serialize : _identityFunc.default;
-    this.parseValue = parseValue;
-    this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node) {
-      return parseValue((0, _valueFromASTUntyped.valueFromASTUntyped)(node));
-    };
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-    config.serialize == null || typeof config.serialize === 'function' || (0, _devAssert.default)(0, "".concat(this.name, " must provide \"serialize\" function. If this custom Scalar is also used as an input type, ensure \"parseValue\" and \"parseLiteral\" functions are also provided."));
-
-    if (config.parseLiteral) {
-      typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function' || (0, _devAssert.default)(0, "".concat(this.name, " must provide both \"parseValue\" and \"parseLiteral\" functions."));
-    }
-  }
-
-  var _proto = GraphQLScalarType.prototype;
-
-  _proto.toConfig = function toConfig() {
-    var _this$extensionASTNod;
-
-    return {
-      name: this.name,
-      description: this.description,
-      serialize: this.serialize,
-      parseValue: this.parseValue,
-      parseLiteral: this.parseLiteral,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : []
-    };
-  };
-
-  _proto.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLScalarType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLScalarType';
-    }
-  }]);
-
-  return GraphQLScalarType;
-}();
-
-exports.GraphQLScalarType = GraphQLScalarType;
-(0, _defineToJSON.default)(GraphQLScalarType);
-
-/**
- * Object Type Definition
- *
- * Almost all of the GraphQL types you define will be object types. Object types
- * have a name, but most importantly describe their fields.
- *
- * Example:
- *
- *     const AddressType = new GraphQLObjectType({
- *       name: 'Address',
- *       fields: {
- *         street: { type: GraphQLString },
- *         number: { type: GraphQLInt },
- *         formatted: {
- *           type: GraphQLString,
- *           resolve(obj) {
- *             return obj.number + ' ' + obj.street
- *           }
- *         }
- *       }
- *     });
- *
- * When two types need to refer to each other, or a type needs to refer to
- * itself in a field, you can use a function expression (aka a closure or a
- * thunk) to supply the fields lazily.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         name: { type: GraphQLString },
- *         bestFriend: { type: PersonType },
- *       })
- *     });
- *
- */
-var GraphQLObjectType =
-/*#__PURE__*/
-function () {
-  function GraphQLObjectType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.isTypeOf = config.isTypeOf;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-    config.isTypeOf == null || typeof config.isTypeOf === 'function' || (0, _devAssert.default)(0, "".concat(this.name, " must provide \"isTypeOf\" as a function, ") + "but got: ".concat((0, _inspect.default)(config.isTypeOf), "."));
-  }
-
-  var _proto2 = GraphQLObjectType.prototype;
-
-  _proto2.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto2.getInterfaces = function getInterfaces() {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-
-    return this._interfaces;
-  };
-
-  _proto2.toConfig = function toConfig() {
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      isTypeOf: this.isTypeOf,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes || []
-    };
-  };
-
-  _proto2.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLObjectType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLObjectType';
-    }
-  }]);
-
-  return GraphQLObjectType;
-}();
-
-exports.GraphQLObjectType = GraphQLObjectType;
-(0, _defineToJSON.default)(GraphQLObjectType);
-
-function defineInterfaces(config) {
-  var _resolveThunk;
-
-  var interfaces = (_resolveThunk = resolveThunk(config.interfaces)) !== null && _resolveThunk !== void 0 ? _resolveThunk : [];
-  Array.isArray(interfaces) || (0, _devAssert.default)(0, "".concat(config.name, " interfaces must be an Array or a function which returns an Array."));
-  return interfaces;
-}
-
-function defineFieldMap(config) {
-  var fieldMap = resolveThunk(config.fields);
-  isPlainObj(fieldMap) || (0, _devAssert.default)(0, "".concat(config.name, " fields must be an object with field names as keys or a function which returns such an object."));
-  return (0, _mapValue.default)(fieldMap, function (fieldConfig, fieldName) {
-    var _fieldConfig$args;
-
-    isPlainObj(fieldConfig) || (0, _devAssert.default)(0, "".concat(config.name, ".").concat(fieldName, " field config must be an object."));
-    !('isDeprecated' in fieldConfig) || (0, _devAssert.default)(0, "".concat(config.name, ".").concat(fieldName, " should provide \"deprecationReason\" instead of \"isDeprecated\"."));
-    fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function' || (0, _devAssert.default)(0, "".concat(config.name, ".").concat(fieldName, " field resolver must be a function if ") + "provided, but got: ".concat((0, _inspect.default)(fieldConfig.resolve), "."));
-    var argsConfig = (_fieldConfig$args = fieldConfig.args) !== null && _fieldConfig$args !== void 0 ? _fieldConfig$args : {};
-    isPlainObj(argsConfig) || (0, _devAssert.default)(0, "".concat(config.name, ".").concat(fieldName, " args must be an object with argument names as keys."));
-    var args = (0, _objectEntries.default)(argsConfig).map(function (_ref) {
-      var argName = _ref[0],
-          argConfig = _ref[1];
-      return {
-        name: argName,
-        description: argConfig.description,
-        type: argConfig.type,
-        defaultValue: argConfig.defaultValue,
-        extensions: argConfig.extensions && (0, _toObjMap.default)(argConfig.extensions),
-        astNode: argConfig.astNode
-      };
-    });
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      args: args,
-      resolve: fieldConfig.resolve,
-      subscribe: fieldConfig.subscribe,
-      isDeprecated: fieldConfig.deprecationReason != null,
-      deprecationReason: fieldConfig.deprecationReason,
-      extensions: fieldConfig.extensions && (0, _toObjMap.default)(fieldConfig.extensions),
-      astNode: fieldConfig.astNode
-    };
-  });
-}
-
-function isPlainObj(obj) {
-  return (0, _isObjectLike.default)(obj) && !Array.isArray(obj);
-}
-
-function fieldsToFieldsConfig(fields) {
-  return (0, _mapValue.default)(fields, function (field) {
-    return {
-      description: field.description,
-      type: field.type,
-      args: argsToArgsConfig(field.args),
-      resolve: field.resolve,
-      subscribe: field.subscribe,
-      deprecationReason: field.deprecationReason,
-      extensions: field.extensions,
-      astNode: field.astNode
-    };
-  });
-}
-/**
- * @internal
- */
-
-
-function argsToArgsConfig(args) {
-  return (0, _keyValMap.default)(args, function (arg) {
-    return arg.name;
-  }, function (arg) {
-    return {
-      description: arg.description,
-      type: arg.type,
-      defaultValue: arg.defaultValue,
-      extensions: arg.extensions,
-      astNode: arg.astNode
-    };
-  });
-}
-
-function isRequiredArgument(arg) {
-  return isNonNullType(arg.type) && arg.defaultValue === undefined;
-}
-
-/**
- * Interface Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Interface type
- * is used to describe what types are possible, what fields are in common across
- * all types, as well as a function to determine which type is actually used
- * when the field is resolved.
- *
- * Example:
- *
- *     const EntityType = new GraphQLInterfaceType({
- *       name: 'Entity',
- *       fields: {
- *         name: { type: GraphQLString }
- *       }
- *     });
- *
- */
-var GraphQLInterfaceType =
-/*#__PURE__*/
-function () {
-  function GraphQLInterfaceType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-    config.resolveType == null || typeof config.resolveType === 'function' || (0, _devAssert.default)(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat((0, _inspect.default)(config.resolveType), "."));
-  }
-
-  var _proto3 = GraphQLInterfaceType.prototype;
-
-  _proto3.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto3.getInterfaces = function getInterfaces() {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-
-    return this._interfaces;
-  };
-
-  _proto3.toConfig = function toConfig() {
-    var _this$extensionASTNod2;
-
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod2 = this.extensionASTNodes) !== null && _this$extensionASTNod2 !== void 0 ? _this$extensionASTNod2 : []
-    };
-  };
-
-  _proto3.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLInterfaceType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLInterfaceType';
-    }
-  }]);
-
-  return GraphQLInterfaceType;
-}();
-
-exports.GraphQLInterfaceType = GraphQLInterfaceType;
-(0, _defineToJSON.default)(GraphQLInterfaceType);
-
-/**
- * Union Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Union type
- * is used to describe what types are possible as well as providing a function
- * to determine which type is actually used when the field is resolved.
- *
- * Example:
- *
- *     const PetType = new GraphQLUnionType({
- *       name: 'Pet',
- *       types: [ DogType, CatType ],
- *       resolveType(value) {
- *         if (value instanceof Dog) {
- *           return DogType;
- *         }
- *         if (value instanceof Cat) {
- *           return CatType;
- *         }
- *       }
- *     });
- *
- */
-var GraphQLUnionType =
-/*#__PURE__*/
-function () {
-  function GraphQLUnionType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._types = defineTypes.bind(undefined, config);
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-    config.resolveType == null || typeof config.resolveType === 'function' || (0, _devAssert.default)(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat((0, _inspect.default)(config.resolveType), "."));
-  }
-
-  var _proto4 = GraphQLUnionType.prototype;
-
-  _proto4.getTypes = function getTypes() {
-    if (typeof this._types === 'function') {
-      this._types = this._types();
-    }
-
-    return this._types;
-  };
-
-  _proto4.toConfig = function toConfig() {
-    var _this$extensionASTNod3;
-
-    return {
-      name: this.name,
-      description: this.description,
-      types: this.getTypes(),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod3 = this.extensionASTNodes) !== null && _this$extensionASTNod3 !== void 0 ? _this$extensionASTNod3 : []
-    };
-  };
-
-  _proto4.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLUnionType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLUnionType';
-    }
-  }]);
-
-  return GraphQLUnionType;
-}();
-
-exports.GraphQLUnionType = GraphQLUnionType;
-(0, _defineToJSON.default)(GraphQLUnionType);
-
-function defineTypes(config) {
-  var types = resolveThunk(config.types);
-  Array.isArray(types) || (0, _devAssert.default)(0, "Must provide Array of types or a function which returns such an array for Union ".concat(config.name, "."));
-  return types;
-}
-
-/**
- * Enum Type Definition
- *
- * Some leaf values of requests and input values are Enums. GraphQL serializes
- * Enum values as strings, however internally Enums can be represented by any
- * kind of type, often integers.
- *
- * Example:
- *
- *     const RGBType = new GraphQLEnumType({
- *       name: 'RGB',
- *       values: {
- *         RED: { value: 0 },
- *         GREEN: { value: 1 },
- *         BLUE: { value: 2 }
- *       }
- *     });
- *
- * Note: If a value is not provided in a definition, the name of the enum value
- * will be used as its internal value.
- */
-var GraphQLEnumType
-/* <T> */
-=
-/*#__PURE__*/
-function () {
-  function GraphQLEnumType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._values = defineEnumValues(this.name, config.values);
-    this._valueLookup = new Map(this._values.map(function (enumValue) {
-      return [enumValue.value, enumValue];
-    }));
-    this._nameLookup = (0, _keyMap.default)(this._values, function (value) {
-      return value.name;
-    });
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-  }
-
-  var _proto5 = GraphQLEnumType.prototype;
-
-  _proto5.getValues = function getValues() {
-    return this._values;
-  };
-
-  _proto5.getValue = function getValue(name) {
-    return this._nameLookup[name];
-  };
-
-  _proto5.serialize = function serialize(outputValue) {
-    var enumValue = this._valueLookup.get(outputValue);
-
-    if (enumValue === undefined) {
-      throw new _GraphQLError.GraphQLError("Enum \"".concat(this.name, "\" cannot represent value: ").concat((0, _inspect.default)(outputValue)));
-    }
-
-    return enumValue.name;
-  };
-
-  _proto5.parseValue = function parseValue(inputValue)
-  /* T */
-  {
-    if (typeof inputValue !== 'string') {
-      var valueStr = (0, _inspect.default)(inputValue);
-      throw new _GraphQLError.GraphQLError("Enum \"".concat(this.name, "\" cannot represent non-string value: ").concat(valueStr, ".") + didYouMeanEnumValue(this, valueStr));
-    }
-
-    var enumValue = this.getValue(inputValue);
-
-    if (enumValue == null) {
-      throw new _GraphQLError.GraphQLError("Value \"".concat(inputValue, "\" does not exist in \"").concat(this.name, "\" enum.") + didYouMeanEnumValue(this, inputValue));
-    }
-
-    return enumValue.value;
-  };
-
-  _proto5.parseLiteral = function parseLiteral(valueNode, _variables)
-  /* T */
-  {
-    // Note: variables will be resolved to a value before calling this function.
-    if (valueNode.kind !== _kinds.Kind.ENUM) {
-      var valueStr = (0, _printer.print)(valueNode);
-      throw new _GraphQLError.GraphQLError("Enum \"".concat(this.name, "\" cannot represent non-enum value: ").concat(valueStr, ".") + didYouMeanEnumValue(this, valueStr), valueNode);
-    }
-
-    var enumValue = this.getValue(valueNode.value);
-
-    if (enumValue == null) {
-      var _valueStr = (0, _printer.print)(valueNode);
-
-      throw new _GraphQLError.GraphQLError("Value \"".concat(_valueStr, "\" does not exist in \"").concat(this.name, "\" enum.") + didYouMeanEnumValue(this, _valueStr), valueNode);
-    }
-
-    return enumValue.value;
-  };
-
-  _proto5.toConfig = function toConfig() {
-    var _this$extensionASTNod4;
-
-    var values = (0, _keyValMap.default)(this.getValues(), function (value) {
-      return value.name;
-    }, function (value) {
-      return {
-        description: value.description,
-        value: value.value,
-        deprecationReason: value.deprecationReason,
-        extensions: value.extensions,
-        astNode: value.astNode
-      };
-    });
-    return {
-      name: this.name,
-      description: this.description,
-      values: values,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod4 = this.extensionASTNodes) !== null && _this$extensionASTNod4 !== void 0 ? _this$extensionASTNod4 : []
-    };
-  };
-
-  _proto5.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLEnumType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLEnumType';
-    }
-  }]);
-
-  return GraphQLEnumType;
-}();
-
-exports.GraphQLEnumType = GraphQLEnumType;
-(0, _defineToJSON.default)(GraphQLEnumType);
-
-function didYouMeanEnumValue(enumType, unknownValueStr) {
-  var allNames = enumType.getValues().map(function (value) {
-    return value.name;
-  });
-  var suggestedValues = (0, _suggestionList.default)(unknownValueStr, allNames);
-  return (0, _didYouMean.default)('the enum value', suggestedValues);
-}
-
-function defineEnumValues(typeName, valueMap) {
-  isPlainObj(valueMap) || (0, _devAssert.default)(0, "".concat(typeName, " values must be an object with value names as keys."));
-  return (0, _objectEntries.default)(valueMap).map(function (_ref2) {
-    var valueName = _ref2[0],
-        valueConfig = _ref2[1];
-    isPlainObj(valueConfig) || (0, _devAssert.default)(0, "".concat(typeName, ".").concat(valueName, " must refer to an object with a \"value\" key ") + "representing an internal value but got: ".concat((0, _inspect.default)(valueConfig), "."));
-    !('isDeprecated' in valueConfig) || (0, _devAssert.default)(0, "".concat(typeName, ".").concat(valueName, " should provide \"deprecationReason\" instead of \"isDeprecated\"."));
-    return {
-      name: valueName,
-      description: valueConfig.description,
-      value: valueConfig.value !== undefined ? valueConfig.value : valueName,
-      isDeprecated: valueConfig.deprecationReason != null,
-      deprecationReason: valueConfig.deprecationReason,
-      extensions: valueConfig.extensions && (0, _toObjMap.default)(valueConfig.extensions),
-      astNode: valueConfig.astNode
-    };
-  });
-}
-
-/**
- * Input Object Type Definition
- *
- * An input object defines a structured collection of fields which may be
- * supplied to a field argument.
- *
- * Using `NonNull` will ensure that a value must be provided by the query
- *
- * Example:
- *
- *     const GeoPoint = new GraphQLInputObjectType({
- *       name: 'GeoPoint',
- *       fields: {
- *         lat: { type: GraphQLNonNull(GraphQLFloat) },
- *         lon: { type: GraphQLNonNull(GraphQLFloat) },
- *         alt: { type: GraphQLFloat, defaultValue: 0 },
- *       }
- *     });
- *
- */
-var GraphQLInputObjectType =
-/*#__PURE__*/
-function () {
-  function GraphQLInputObjectType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineInputFieldMap.bind(undefined, config);
-    typeof config.name === 'string' || (0, _devAssert.default)(0, 'Must provide name.');
-  }
-
-  var _proto6 = GraphQLInputObjectType.prototype;
-
-  _proto6.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto6.toConfig = function toConfig() {
-    var _this$extensionASTNod5;
-
-    var fields = (0, _mapValue.default)(this.getFields(), function (field) {
-      return {
-        description: field.description,
-        type: field.type,
-        defaultValue: field.defaultValue,
-        extensions: field.extensions,
-        astNode: field.astNode
-      };
-    });
-    return {
-      name: this.name,
-      description: this.description,
-      fields: fields,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod5 = this.extensionASTNodes) !== null && _this$extensionASTNod5 !== void 0 ? _this$extensionASTNod5 : []
-    };
-  };
-
-  _proto6.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLInputObjectType, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLInputObjectType';
-    }
-  }]);
-
-  return GraphQLInputObjectType;
-}();
-
-exports.GraphQLInputObjectType = GraphQLInputObjectType;
-(0, _defineToJSON.default)(GraphQLInputObjectType);
-
-function defineInputFieldMap(config) {
-  var fieldMap = resolveThunk(config.fields);
-  isPlainObj(fieldMap) || (0, _devAssert.default)(0, "".concat(config.name, " fields must be an object with field names as keys or a function which returns such an object."));
-  return (0, _mapValue.default)(fieldMap, function (fieldConfig, fieldName) {
-    !('resolve' in fieldConfig) || (0, _devAssert.default)(0, "".concat(config.name, ".").concat(fieldName, " field has a resolve property, but Input Types cannot define resolvers."));
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      defaultValue: fieldConfig.defaultValue,
-      extensions: fieldConfig.extensions && (0, _toObjMap.default)(fieldConfig.extensions),
-      astNode: fieldConfig.astNode
-    };
-  });
-}
-
-function isRequiredInputField(field) {
-  return isNonNullType(field.type) && field.defaultValue === undefined;
-}
diff --git a/node_modules/graphql/type/definition.js.flow b/node_modules/graphql/type/definition.js.flow
deleted file mode 100644
index 739732c..0000000
--- a/node_modules/graphql/type/definition.js.flow
+++ /dev/null
@@ -1,1570 +0,0 @@
-// @flow strict
-
-// FIXME
-/* eslint-disable import/no-cycle */
-
-import objectEntries from '../polyfills/objectEntries';
-import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
-
-import inspect from '../jsutils/inspect';
-import keyMap from '../jsutils/keyMap';
-import mapValue from '../jsutils/mapValue';
-import toObjMap from '../jsutils/toObjMap';
-import { type Path } from '../jsutils/Path';
-import devAssert from '../jsutils/devAssert';
-import keyValMap from '../jsutils/keyValMap';
-import instanceOf from '../jsutils/instanceOf';
-import didYouMean from '../jsutils/didYouMean';
-import isObjectLike from '../jsutils/isObjectLike';
-import identityFunc from '../jsutils/identityFunc';
-import defineToJSON from '../jsutils/defineToJSON';
-import suggestionList from '../jsutils/suggestionList';
-import { type PromiseOrValue } from '../jsutils/PromiseOrValue';
-import {
-  type ObjMap,
-  type ReadOnlyObjMap,
-  type ReadOnlyObjMapLike,
-} from '../jsutils/ObjMap';
-
-import { Kind } from '../language/kinds';
-import { print } from '../language/printer';
-import {
-  type ScalarTypeDefinitionNode,
-  type ObjectTypeDefinitionNode,
-  type FieldDefinitionNode,
-  type InputValueDefinitionNode,
-  type InterfaceTypeDefinitionNode,
-  type UnionTypeDefinitionNode,
-  type EnumTypeDefinitionNode,
-  type EnumValueDefinitionNode,
-  type InputObjectTypeDefinitionNode,
-  type ScalarTypeExtensionNode,
-  type ObjectTypeExtensionNode,
-  type InterfaceTypeExtensionNode,
-  type UnionTypeExtensionNode,
-  type EnumTypeExtensionNode,
-  type InputObjectTypeExtensionNode,
-  type OperationDefinitionNode,
-  type FieldNode,
-  type FragmentDefinitionNode,
-  type ValueNode,
-} from '../language/ast';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { valueFromASTUntyped } from '../utilities/valueFromASTUntyped';
-
-import { type GraphQLSchema } from './schema';
-
-// Predicates & Assertions
-
-/**
- * These are all of the possible kinds of types.
- */
-export type GraphQLType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<any>
-  | GraphQLNonNull<any>;
-
-export function isType(type: mixed): boolean %checks {
-  return (
-    isScalarType(type) ||
-    isObjectType(type) ||
-    isInterfaceType(type) ||
-    isUnionType(type) ||
-    isEnumType(type) ||
-    isInputObjectType(type) ||
-    isListType(type) ||
-    isNonNullType(type)
-  );
-}
-
-export function assertType(type: mixed): GraphQLType {
-  if (!isType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL type.`);
-  }
-  return type;
-}
-
-/**
- * There are predicates for each kind of GraphQL type.
- */
-
-declare function isScalarType(type: mixed): boolean %checks(type instanceof
-  GraphQLScalarType);
-// eslint-disable-next-line no-redeclare
-export function isScalarType(type) {
-  return instanceOf(type, GraphQLScalarType);
-}
-
-export function assertScalarType(type: mixed): GraphQLScalarType {
-  if (!isScalarType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL Scalar type.`);
-  }
-  return type;
-}
-
-declare function isObjectType(type: mixed): boolean %checks(type instanceof
-  GraphQLObjectType);
-// eslint-disable-next-line no-redeclare
-export function isObjectType(type) {
-  return instanceOf(type, GraphQLObjectType);
-}
-
-export function assertObjectType(type: mixed): GraphQLObjectType {
-  if (!isObjectType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL Object type.`);
-  }
-  return type;
-}
-
-declare function isInterfaceType(type: mixed): boolean %checks(type instanceof
-  GraphQLInterfaceType);
-// eslint-disable-next-line no-redeclare
-export function isInterfaceType(type) {
-  return instanceOf(type, GraphQLInterfaceType);
-}
-
-export function assertInterfaceType(type: mixed): GraphQLInterfaceType {
-  if (!isInterfaceType(type)) {
-    throw new Error(
-      `Expected ${inspect(type)} to be a GraphQL Interface type.`,
-    );
-  }
-  return type;
-}
-
-declare function isUnionType(type: mixed): boolean %checks(type instanceof
-  GraphQLUnionType);
-// eslint-disable-next-line no-redeclare
-export function isUnionType(type) {
-  return instanceOf(type, GraphQLUnionType);
-}
-
-export function assertUnionType(type: mixed): GraphQLUnionType {
-  if (!isUnionType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL Union type.`);
-  }
-  return type;
-}
-
-declare function isEnumType(type: mixed): boolean %checks(type instanceof
-  GraphQLEnumType);
-// eslint-disable-next-line no-redeclare
-export function isEnumType(type) {
-  return instanceOf(type, GraphQLEnumType);
-}
-
-export function assertEnumType(type: mixed): GraphQLEnumType {
-  if (!isEnumType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL Enum type.`);
-  }
-  return type;
-}
-
-declare function isInputObjectType(type: mixed): boolean %checks(type instanceof
-  GraphQLInputObjectType);
-// eslint-disable-next-line no-redeclare
-export function isInputObjectType(type) {
-  return instanceOf(type, GraphQLInputObjectType);
-}
-
-export function assertInputObjectType(type: mixed): GraphQLInputObjectType {
-  if (!isInputObjectType(type)) {
-    throw new Error(
-      `Expected ${inspect(type)} to be a GraphQL Input Object type.`,
-    );
-  }
-  return type;
-}
-
-declare function isListType(type: mixed): boolean %checks(type instanceof
-  GraphQLList);
-// eslint-disable-next-line no-redeclare
-export function isListType(type) {
-  return instanceOf(type, GraphQLList);
-}
-
-export function assertListType(type: mixed): GraphQLList<any> {
-  if (!isListType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL List type.`);
-  }
-  return type;
-}
-
-declare function isNonNullType(type: mixed): boolean %checks(type instanceof
-  GraphQLNonNull);
-// eslint-disable-next-line no-redeclare
-export function isNonNullType(type) {
-  return instanceOf(type, GraphQLNonNull);
-}
-
-export function assertNonNullType(type: mixed): GraphQLNonNull<any> {
-  if (!isNonNullType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL Non-Null type.`);
-  }
-  return type;
-}
-
-/**
- * These types may be used as input types for arguments and directives.
- */
-export type GraphQLInputType =
-  | GraphQLScalarType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<GraphQLInputType>
-  | GraphQLNonNull<
-      | GraphQLScalarType
-      | GraphQLEnumType
-      | GraphQLInputObjectType
-      | GraphQLList<GraphQLInputType>,
-    >;
-
-export function isInputType(type: mixed): boolean %checks {
-  return (
-    isScalarType(type) ||
-    isEnumType(type) ||
-    isInputObjectType(type) ||
-    (isWrappingType(type) && isInputType(type.ofType))
-  );
-}
-
-export function assertInputType(type: mixed): GraphQLInputType {
-  if (!isInputType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL input type.`);
-  }
-  return type;
-}
-
-/**
- * These types may be used as output types as the result of fields.
- */
-export type GraphQLOutputType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLList<GraphQLOutputType>
-  | GraphQLNonNull<
-      | GraphQLScalarType
-      | GraphQLObjectType
-      | GraphQLInterfaceType
-      | GraphQLUnionType
-      | GraphQLEnumType
-      | GraphQLList<GraphQLOutputType>,
-    >;
-
-export function isOutputType(type: mixed): boolean %checks {
-  return (
-    isScalarType(type) ||
-    isObjectType(type) ||
-    isInterfaceType(type) ||
-    isUnionType(type) ||
-    isEnumType(type) ||
-    (isWrappingType(type) && isOutputType(type.ofType))
-  );
-}
-
-export function assertOutputType(type: mixed): GraphQLOutputType {
-  if (!isOutputType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL output type.`);
-  }
-  return type;
-}
-
-/**
- * These types may describe types which may be leaf values.
- */
-export type GraphQLLeafType = GraphQLScalarType | GraphQLEnumType;
-
-export function isLeafType(type: mixed): boolean %checks {
-  return isScalarType(type) || isEnumType(type);
-}
-
-export function assertLeafType(type: mixed): GraphQLLeafType {
-  if (!isLeafType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL leaf type.`);
-  }
-  return type;
-}
-
-/**
- * These types may describe the parent context of a selection set.
- */
-export type GraphQLCompositeType =
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType;
-
-export function isCompositeType(type: mixed): boolean %checks {
-  return isObjectType(type) || isInterfaceType(type) || isUnionType(type);
-}
-
-export function assertCompositeType(type: mixed): GraphQLCompositeType {
-  if (!isCompositeType(type)) {
-    throw new Error(
-      `Expected ${inspect(type)} to be a GraphQL composite type.`,
-    );
-  }
-  return type;
-}
-
-/**
- * These types may describe the parent context of a selection set.
- */
-export type GraphQLAbstractType = GraphQLInterfaceType | GraphQLUnionType;
-
-export function isAbstractType(type: mixed): boolean %checks {
-  return isInterfaceType(type) || isUnionType(type);
-}
-
-export function assertAbstractType(type: mixed): GraphQLAbstractType {
-  if (!isAbstractType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL abstract type.`);
-  }
-  return type;
-}
-
-/**
- * List Type Wrapper
- *
- * A list is a wrapping type which points to another type.
- * Lists are often created within the context of defining the fields of
- * an object type.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         parents: { type: GraphQLList(PersonType) },
- *         children: { type: GraphQLList(PersonType) },
- *       })
- *     })
- *
- */
-// FIXME: workaround to fix issue with Babel parser
-/* ::
-declare class GraphQLList<+T: GraphQLType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLList<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-export function GraphQLList(ofType) {
-  if (this instanceof GraphQLList) {
-    this.ofType = assertType(ofType);
-  } else {
-    return new GraphQLList(ofType);
-  }
-}
-
-// Need to cast through any to alter the prototype.
-(GraphQLList.prototype: any).toString = function toString() {
-  return '[' + String(this.ofType) + ']';
-};
-
-Object.defineProperty(GraphQLList.prototype, SYMBOL_TO_STRING_TAG, {
-  get() {
-    return 'GraphQLList';
-  },
-});
-
-defineToJSON(GraphQLList);
-
-/**
- * Non-Null Type Wrapper
- *
- * A non-null is a wrapping type which points to another type.
- * Non-null types enforce that their values are never null and can ensure
- * an error is raised if this ever occurs during a request. It is useful for
- * fields which you can make a strong guarantee on non-nullability, for example
- * usually the id field of a database row will never be null.
- *
- * Example:
- *
- *     const RowType = new GraphQLObjectType({
- *       name: 'Row',
- *       fields: () => ({
- *         id: { type: GraphQLNonNull(GraphQLString) },
- *       })
- *     })
- *
- * Note: the enforcement of non-nullability occurs within the executor.
- */
-// FIXME: workaround to fix issue with Babel parser
-/* ::
-declare class GraphQLNonNull<+T: GraphQLNullableType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLNonNull<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-export function GraphQLNonNull(ofType) {
-  if (this instanceof GraphQLNonNull) {
-    this.ofType = assertNullableType(ofType);
-  } else {
-    return new GraphQLNonNull(ofType);
-  }
-}
-
-// Need to cast through any to alter the prototype.
-(GraphQLNonNull.prototype: any).toString = function toString() {
-  return String(this.ofType) + '!';
-};
-
-Object.defineProperty(GraphQLNonNull.prototype, SYMBOL_TO_STRING_TAG, {
-  get() {
-    return 'GraphQLNonNull';
-  },
-});
-
-defineToJSON(GraphQLNonNull);
-
-/**
- * These types wrap and modify other types
- */
-
-export type GraphQLWrappingType = GraphQLList<any> | GraphQLNonNull<any>;
-
-export function isWrappingType(type: mixed): boolean %checks {
-  return isListType(type) || isNonNullType(type);
-}
-
-export function assertWrappingType(type: mixed): GraphQLWrappingType {
-  if (!isWrappingType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL wrapping type.`);
-  }
-  return type;
-}
-
-/**
- * These types can all accept null as a value.
- */
-export type GraphQLNullableType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType
-  | GraphQLList<any>;
-
-export function isNullableType(type: mixed): boolean %checks {
-  return isType(type) && !isNonNullType(type);
-}
-
-export function assertNullableType(type: mixed): GraphQLNullableType {
-  if (!isNullableType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL nullable type.`);
-  }
-  return type;
-}
-
-/* eslint-disable no-redeclare */
-declare function getNullableType(type: void | null): void;
-declare function getNullableType<T>(type: GraphQLNonNull<T> | T): T;
-export function getNullableType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    return isNonNullType(type) ? type.ofType : type;
-  }
-}
-
-/**
- * These named types do not include modifiers like List or NonNull.
- */
-export type GraphQLNamedType =
-  | GraphQLScalarType
-  | GraphQLObjectType
-  | GraphQLInterfaceType
-  | GraphQLUnionType
-  | GraphQLEnumType
-  | GraphQLInputObjectType;
-
-export function isNamedType(type: mixed): boolean %checks {
-  return (
-    isScalarType(type) ||
-    isObjectType(type) ||
-    isInterfaceType(type) ||
-    isUnionType(type) ||
-    isEnumType(type) ||
-    isInputObjectType(type)
-  );
-}
-
-export function assertNamedType(type: mixed): GraphQLNamedType {
-  if (!isNamedType(type)) {
-    throw new Error(`Expected ${inspect(type)} to be a GraphQL named type.`);
-  }
-  return type;
-}
-
-/* eslint-disable no-redeclare */
-declare function getNamedType(type: void | null): void;
-declare function getNamedType(type: GraphQLType): GraphQLNamedType;
-export function getNamedType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    let unwrappedType = type;
-    while (isWrappingType(unwrappedType)) {
-      unwrappedType = unwrappedType.ofType;
-    }
-    return unwrappedType;
-  }
-}
-
-/**
- * Used while defining GraphQL types to allow for circular references in
- * otherwise immutable type definitions.
- */
-export type Thunk<+T> = (() => T) | T;
-
-function resolveThunk<+T>(thunk: Thunk<T>): T {
-  // $FlowFixMe(>=0.90.0)
-  return typeof thunk === 'function' ? thunk() : thunk;
-}
-
-function undefineIfEmpty<T>(arr: ?$ReadOnlyArray<T>): ?$ReadOnlyArray<T> {
-  return arr && arr.length > 0 ? arr : undefined;
-}
-
-/**
- * Scalar Type Definition
- *
- * The leaf values of any request and input values to arguments are
- * Scalars (or Enums) and are defined with a name and a series of functions
- * used to parse input from ast or variables and to ensure validity.
- *
- * If a type's serialize function does not return a value (i.e. it returns
- * `undefined`) then an error will be raised and a `null` value will be returned
- * in the response. If the serialize function returns `null`, then no error will
- * be included in the response.
- *
- * Example:
- *
- *     const OddType = new GraphQLScalarType({
- *       name: 'Odd',
- *       serialize(value) {
- *         if (value % 2 === 1) {
- *           return value;
- *         }
- *       }
- *     });
- *
- */
-export class GraphQLScalarType {
-  name: string;
-  description: ?string;
-  serialize: GraphQLScalarSerializer<mixed>;
-  parseValue: GraphQLScalarValueParser<mixed>;
-  parseLiteral: GraphQLScalarLiteralParser<mixed>;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?ScalarTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<ScalarTypeExtensionNode>;
-
-  constructor(config: $ReadOnly<GraphQLScalarTypeConfig<mixed, mixed>>): void {
-    const parseValue = config.parseValue ?? identityFunc;
-    this.name = config.name;
-    this.description = config.description;
-    this.serialize = config.serialize ?? identityFunc;
-    this.parseValue = parseValue;
-    this.parseLiteral =
-      config.parseLiteral ?? (node => parseValue(valueFromASTUntyped(node)));
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-    devAssert(
-      config.serialize == null || typeof config.serialize === 'function',
-      `${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`,
-    );
-
-    if (config.parseLiteral) {
-      devAssert(
-        typeof config.parseValue === 'function' &&
-          typeof config.parseLiteral === 'function',
-        `${this.name} must provide both "parseValue" and "parseLiteral" functions.`,
-      );
-    }
-  }
-
-  toConfig(): {|
-    ...GraphQLScalarTypeConfig<mixed, mixed>,
-    serialize: GraphQLScalarSerializer<mixed>,
-    parseValue: GraphQLScalarValueParser<mixed>,
-    parseLiteral: GraphQLScalarLiteralParser<mixed>,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<ScalarTypeExtensionNode>,
-  |} {
-    return {
-      name: this.name,
-      description: this.description,
-      serialize: this.serialize,
-      parseValue: this.parseValue,
-      parseLiteral: this.parseLiteral,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLScalarType';
-  }
-}
-
-defineToJSON(GraphQLScalarType);
-
-export type GraphQLScalarSerializer<TExternal> = (
-  outputValue: mixed,
-) => ?TExternal;
-
-export type GraphQLScalarValueParser<TInternal> = (
-  inputValue: mixed,
-) => ?TInternal;
-
-export type GraphQLScalarLiteralParser<TInternal> = (
-  valueNode: ValueNode,
-  variables: ?ObjMap<mixed>,
-) => ?TInternal;
-
-export type GraphQLScalarTypeConfig<TInternal, TExternal> = {|
-  name: string,
-  description?: ?string,
-  // Serializes an internal value to include in a response.
-  serialize?: GraphQLScalarSerializer<TExternal>,
-  // Parses an externally provided value to use as an input.
-  parseValue?: GraphQLScalarValueParser<TInternal>,
-  // Parses an externally provided literal value to use as an input.
-  parseLiteral?: GraphQLScalarLiteralParser<TInternal>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?ScalarTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<ScalarTypeExtensionNode>,
-|};
-
-/**
- * Object Type Definition
- *
- * Almost all of the GraphQL types you define will be object types. Object types
- * have a name, but most importantly describe their fields.
- *
- * Example:
- *
- *     const AddressType = new GraphQLObjectType({
- *       name: 'Address',
- *       fields: {
- *         street: { type: GraphQLString },
- *         number: { type: GraphQLInt },
- *         formatted: {
- *           type: GraphQLString,
- *           resolve(obj) {
- *             return obj.number + ' ' + obj.street
- *           }
- *         }
- *       }
- *     });
- *
- * When two types need to refer to each other, or a type needs to refer to
- * itself in a field, you can use a function expression (aka a closure or a
- * thunk) to supply the fields lazily.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         name: { type: GraphQLString },
- *         bestFriend: { type: PersonType },
- *       })
- *     });
- *
- */
-export class GraphQLObjectType {
-  name: string;
-  description: ?string;
-  isTypeOf: ?GraphQLIsTypeOfFn<any, any>;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?ObjectTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<ObjectTypeExtensionNode>;
-
-  _fields: Thunk<GraphQLFieldMap<any, any>>;
-  _interfaces: Thunk<Array<GraphQLInterfaceType>>;
-
-  constructor(config: $ReadOnly<GraphQLObjectTypeConfig<any, any>>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.isTypeOf = config.isTypeOf;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-    devAssert(
-      config.isTypeOf == null || typeof config.isTypeOf === 'function',
-      `${this.name} must provide "isTypeOf" as a function, ` +
-        `but got: ${inspect(config.isTypeOf)}.`,
-    );
-  }
-
-  getFields(): GraphQLFieldMap<any, any> {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-    return this._fields;
-  }
-
-  getInterfaces(): Array<GraphQLInterfaceType> {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-    return this._interfaces;
-  }
-
-  toConfig(): {|
-    ...GraphQLObjectTypeConfig<any, any>,
-    interfaces: Array<GraphQLInterfaceType>,
-    fields: GraphQLFieldConfigMap<any, any>,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<ObjectTypeExtensionNode>,
-  |} {
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      isTypeOf: this.isTypeOf,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes || [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLObjectType';
-  }
-}
-
-defineToJSON(GraphQLObjectType);
-
-function defineInterfaces(
-  config: $ReadOnly<
-    | GraphQLObjectTypeConfig<mixed, mixed>
-    | GraphQLInterfaceTypeConfig<mixed, mixed>,
-  >,
-): Array<GraphQLInterfaceType> {
-  const interfaces = resolveThunk(config.interfaces) ?? [];
-  devAssert(
-    Array.isArray(interfaces),
-    `${config.name} interfaces must be an Array or a function which returns an Array.`,
-  );
-  return interfaces;
-}
-
-function defineFieldMap<TSource, TContext>(
-  config: $ReadOnly<
-    | GraphQLObjectTypeConfig<TSource, TContext>
-    | GraphQLInterfaceTypeConfig<TSource, TContext>,
-  >,
-): GraphQLFieldMap<TSource, TContext> {
-  const fieldMap = resolveThunk(config.fields);
-  devAssert(
-    isPlainObj(fieldMap),
-    `${config.name} fields must be an object with field names as keys or a function which returns such an object.`,
-  );
-
-  return mapValue(fieldMap, (fieldConfig, fieldName) => {
-    devAssert(
-      isPlainObj(fieldConfig),
-      `${config.name}.${fieldName} field config must be an object.`,
-    );
-    devAssert(
-      !('isDeprecated' in fieldConfig),
-      `${config.name}.${fieldName} should provide "deprecationReason" instead of "isDeprecated".`,
-    );
-    devAssert(
-      fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function',
-      `${config.name}.${fieldName} field resolver must be a function if ` +
-        `provided, but got: ${inspect(fieldConfig.resolve)}.`,
-    );
-
-    const argsConfig = fieldConfig.args ?? {};
-    devAssert(
-      isPlainObj(argsConfig),
-      `${config.name}.${fieldName} args must be an object with argument names as keys.`,
-    );
-
-    const args = objectEntries(argsConfig).map(([argName, argConfig]) => ({
-      name: argName,
-      description: argConfig.description,
-      type: argConfig.type,
-      defaultValue: argConfig.defaultValue,
-      extensions: argConfig.extensions && toObjMap(argConfig.extensions),
-      astNode: argConfig.astNode,
-    }));
-
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      args,
-      resolve: fieldConfig.resolve,
-      subscribe: fieldConfig.subscribe,
-      isDeprecated: fieldConfig.deprecationReason != null,
-      deprecationReason: fieldConfig.deprecationReason,
-      extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),
-      astNode: fieldConfig.astNode,
-    };
-  });
-}
-
-function isPlainObj(obj) {
-  return isObjectLike(obj) && !Array.isArray(obj);
-}
-
-function fieldsToFieldsConfig(fields) {
-  return mapValue(fields, field => ({
-    description: field.description,
-    type: field.type,
-    args: argsToArgsConfig(field.args),
-    resolve: field.resolve,
-    subscribe: field.subscribe,
-    deprecationReason: field.deprecationReason,
-    extensions: field.extensions,
-    astNode: field.astNode,
-  }));
-}
-
-/**
- * @internal
- */
-export function argsToArgsConfig(
-  args: $ReadOnlyArray<GraphQLArgument>,
-): GraphQLFieldConfigArgumentMap {
-  return keyValMap(
-    args,
-    arg => arg.name,
-    arg => ({
-      description: arg.description,
-      type: arg.type,
-      defaultValue: arg.defaultValue,
-      extensions: arg.extensions,
-      astNode: arg.astNode,
-    }),
-  );
-}
-
-export type GraphQLObjectTypeConfig<TSource, TContext> = {|
-  name: string,
-  description?: ?string,
-  interfaces?: Thunk<?Array<GraphQLInterfaceType>>,
-  fields: Thunk<GraphQLFieldConfigMap<TSource, TContext>>,
-  isTypeOf?: ?GraphQLIsTypeOfFn<TSource, TContext>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?ObjectTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<ObjectTypeExtensionNode>,
-|};
-
-export type GraphQLTypeResolver<TSource, TContext> = (
-  value: TSource,
-  context: TContext,
-  info: GraphQLResolveInfo,
-  abstractType: GraphQLAbstractType,
-) => PromiseOrValue<?GraphQLObjectType | string>;
-
-export type GraphQLIsTypeOfFn<TSource, TContext> = (
-  source: TSource,
-  context: TContext,
-  info: GraphQLResolveInfo,
-) => PromiseOrValue<boolean>;
-
-export type GraphQLFieldResolver<
-  TSource,
-  TContext,
-  TArgs = { [argument: string]: any, ... },
-> = (
-  source: TSource,
-  args: TArgs,
-  context: TContext,
-  info: GraphQLResolveInfo,
-) => mixed;
-
-export type GraphQLResolveInfo = {|
-  +fieldName: string,
-  +fieldNodes: $ReadOnlyArray<FieldNode>,
-  +returnType: GraphQLOutputType,
-  +parentType: GraphQLObjectType,
-  +path: Path,
-  +schema: GraphQLSchema,
-  +fragments: ObjMap<FragmentDefinitionNode>,
-  +rootValue: mixed,
-  +operation: OperationDefinitionNode,
-  +variableValues: { [variable: string]: mixed, ... },
-|};
-
-export type GraphQLFieldConfig<
-  TSource,
-  TContext,
-  TArgs = { [argument: string]: any, ... },
-> = {|
-  description?: ?string,
-  type: GraphQLOutputType,
-  args?: GraphQLFieldConfigArgumentMap,
-  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>,
-  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>,
-  deprecationReason?: ?string,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?FieldDefinitionNode,
-|};
-
-export type GraphQLFieldConfigArgumentMap = ObjMap<GraphQLArgumentConfig>;
-
-export type GraphQLArgumentConfig = {|
-  description?: ?string,
-  type: GraphQLInputType,
-  defaultValue?: mixed,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?InputValueDefinitionNode,
-|};
-
-export type GraphQLFieldConfigMap<TSource, TContext> = ObjMap<
-  GraphQLFieldConfig<TSource, TContext>,
->;
-
-export type GraphQLField<
-  TSource,
-  TContext,
-  TArgs = { [argument: string]: any, ... },
-> = {|
-  name: string,
-  description: ?string,
-  type: GraphQLOutputType,
-  args: Array<GraphQLArgument>,
-  resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>,
-  subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>,
-  isDeprecated?: boolean,
-  deprecationReason: ?string,
-  extensions: ?ReadOnlyObjMap<mixed>,
-  astNode: ?FieldDefinitionNode,
-|};
-
-export type GraphQLArgument = {|
-  name: string,
-  description: ?string,
-  type: GraphQLInputType,
-  defaultValue: mixed,
-  extensions: ?ReadOnlyObjMap<mixed>,
-  astNode: ?InputValueDefinitionNode,
-|};
-
-export function isRequiredArgument(arg: GraphQLArgument): boolean %checks {
-  return isNonNullType(arg.type) && arg.defaultValue === undefined;
-}
-
-export type GraphQLFieldMap<TSource, TContext> = ObjMap<
-  GraphQLField<TSource, TContext>,
->;
-
-/**
- * Interface Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Interface type
- * is used to describe what types are possible, what fields are in common across
- * all types, as well as a function to determine which type is actually used
- * when the field is resolved.
- *
- * Example:
- *
- *     const EntityType = new GraphQLInterfaceType({
- *       name: 'Entity',
- *       fields: {
- *         name: { type: GraphQLString }
- *       }
- *     });
- *
- */
-export class GraphQLInterfaceType {
-  name: string;
-  description: ?string;
-  resolveType: ?GraphQLTypeResolver<any, any>;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?InterfaceTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<InterfaceTypeExtensionNode>;
-
-  _fields: Thunk<GraphQLFieldMap<any, any>>;
-  _interfaces: Thunk<Array<GraphQLInterfaceType>>;
-
-  constructor(config: $ReadOnly<GraphQLInterfaceTypeConfig<any, any>>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-    devAssert(
-      config.resolveType == null || typeof config.resolveType === 'function',
-      `${this.name} must provide "resolveType" as a function, ` +
-        `but got: ${inspect(config.resolveType)}.`,
-    );
-  }
-
-  getFields(): GraphQLFieldMap<any, any> {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-    return this._fields;
-  }
-
-  getInterfaces(): Array<GraphQLInterfaceType> {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-    return this._interfaces;
-  }
-
-  toConfig(): {|
-    ...GraphQLInterfaceTypeConfig<any, any>,
-    interfaces: Array<GraphQLInterfaceType>,
-    fields: GraphQLFieldConfigMap<any, any>,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<InterfaceTypeExtensionNode>,
-  |} {
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLInterfaceType';
-  }
-}
-
-defineToJSON(GraphQLInterfaceType);
-
-export type GraphQLInterfaceTypeConfig<TSource, TContext> = {|
-  name: string,
-  description?: ?string,
-  interfaces?: Thunk<?Array<GraphQLInterfaceType>>,
-  fields: Thunk<GraphQLFieldConfigMap<TSource, TContext>>,
-  /**
-   * Optionally provide a custom type resolver function. If one is not provided,
-   * the default implementation will call `isTypeOf` on each implementing
-   * Object type.
-   */
-  resolveType?: ?GraphQLTypeResolver<TSource, TContext>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?InterfaceTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<InterfaceTypeExtensionNode>,
-|};
-
-/**
- * Union Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Union type
- * is used to describe what types are possible as well as providing a function
- * to determine which type is actually used when the field is resolved.
- *
- * Example:
- *
- *     const PetType = new GraphQLUnionType({
- *       name: 'Pet',
- *       types: [ DogType, CatType ],
- *       resolveType(value) {
- *         if (value instanceof Dog) {
- *           return DogType;
- *         }
- *         if (value instanceof Cat) {
- *           return CatType;
- *         }
- *       }
- *     });
- *
- */
-export class GraphQLUnionType {
-  name: string;
-  description: ?string;
-  resolveType: ?GraphQLTypeResolver<any, any>;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?UnionTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<UnionTypeExtensionNode>;
-
-  _types: Thunk<Array<GraphQLObjectType>>;
-
-  constructor(config: $ReadOnly<GraphQLUnionTypeConfig<any, any>>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    this._types = defineTypes.bind(undefined, config);
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-    devAssert(
-      config.resolveType == null || typeof config.resolveType === 'function',
-      `${this.name} must provide "resolveType" as a function, ` +
-        `but got: ${inspect(config.resolveType)}.`,
-    );
-  }
-
-  getTypes(): Array<GraphQLObjectType> {
-    if (typeof this._types === 'function') {
-      this._types = this._types();
-    }
-    return this._types;
-  }
-
-  toConfig(): {|
-    ...GraphQLUnionTypeConfig<any, any>,
-    types: Array<GraphQLObjectType>,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<UnionTypeExtensionNode>,
-  |} {
-    return {
-      name: this.name,
-      description: this.description,
-      types: this.getTypes(),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLUnionType';
-  }
-}
-
-defineToJSON(GraphQLUnionType);
-
-function defineTypes(
-  config: $ReadOnly<GraphQLUnionTypeConfig<mixed, mixed>>,
-): Array<GraphQLObjectType> {
-  const types = resolveThunk(config.types);
-  devAssert(
-    Array.isArray(types),
-    `Must provide Array of types or a function which returns such an array for Union ${config.name}.`,
-  );
-  return types;
-}
-
-export type GraphQLUnionTypeConfig<TSource, TContext> = {|
-  name: string,
-  description?: ?string,
-  types: Thunk<Array<GraphQLObjectType>>,
-  /**
-   * Optionally provide a custom type resolver function. If one is not provided,
-   * the default implementation will call `isTypeOf` on each implementing
-   * Object type.
-   */
-  resolveType?: ?GraphQLTypeResolver<TSource, TContext>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?UnionTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<UnionTypeExtensionNode>,
-|};
-
-/**
- * Enum Type Definition
- *
- * Some leaf values of requests and input values are Enums. GraphQL serializes
- * Enum values as strings, however internally Enums can be represented by any
- * kind of type, often integers.
- *
- * Example:
- *
- *     const RGBType = new GraphQLEnumType({
- *       name: 'RGB',
- *       values: {
- *         RED: { value: 0 },
- *         GREEN: { value: 1 },
- *         BLUE: { value: 2 }
- *       }
- *     });
- *
- * Note: If a value is not provided in a definition, the name of the enum value
- * will be used as its internal value.
- */
-export class GraphQLEnumType /* <T> */ {
-  name: string;
-  description: ?string;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?EnumTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<EnumTypeExtensionNode>;
-
-  _values: Array<GraphQLEnumValue /* <T> */>;
-  _valueLookup: Map<any /* T */, GraphQLEnumValue>;
-  _nameLookup: ObjMap<GraphQLEnumValue>;
-
-  constructor(config: $ReadOnly<GraphQLEnumTypeConfig /* <T> */>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    this._values = defineEnumValues(this.name, config.values);
-    this._valueLookup = new Map(
-      this._values.map(enumValue => [enumValue.value, enumValue]),
-    );
-    this._nameLookup = keyMap(this._values, value => value.name);
-
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-  }
-
-  getValues(): Array<GraphQLEnumValue /* <T> */> {
-    return this._values;
-  }
-
-  getValue(name: string): ?GraphQLEnumValue {
-    return this._nameLookup[name];
-  }
-
-  serialize(outputValue: mixed /* T */): ?string {
-    const enumValue = this._valueLookup.get(outputValue);
-    if (enumValue === undefined) {
-      throw new GraphQLError(
-        `Enum "${this.name}" cannot represent value: ${inspect(outputValue)}`,
-      );
-    }
-    return enumValue.name;
-  }
-
-  parseValue(inputValue: mixed): ?any /* T */ {
-    if (typeof inputValue !== 'string') {
-      const valueStr = inspect(inputValue);
-      throw new GraphQLError(
-        `Enum "${this.name}" cannot represent non-string value: ${valueStr}.` +
-          didYouMeanEnumValue(this, valueStr),
-      );
-    }
-
-    const enumValue = this.getValue(inputValue);
-    if (enumValue == null) {
-      throw new GraphQLError(
-        `Value "${inputValue}" does not exist in "${this.name}" enum.` +
-          didYouMeanEnumValue(this, inputValue),
-      );
-    }
-    return enumValue.value;
-  }
-
-  parseLiteral(valueNode: ValueNode, _variables: ?ObjMap<mixed>): ?any /* T */ {
-    // Note: variables will be resolved to a value before calling this function.
-    if (valueNode.kind !== Kind.ENUM) {
-      const valueStr = print(valueNode);
-      throw new GraphQLError(
-        `Enum "${this.name}" cannot represent non-enum value: ${valueStr}.` +
-          didYouMeanEnumValue(this, valueStr),
-        valueNode,
-      );
-    }
-
-    const enumValue = this.getValue(valueNode.value);
-    if (enumValue == null) {
-      const valueStr = print(valueNode);
-      throw new GraphQLError(
-        `Value "${valueStr}" does not exist in "${this.name}" enum.` +
-          didYouMeanEnumValue(this, valueStr),
-        valueNode,
-      );
-    }
-    return enumValue.value;
-  }
-
-  toConfig(): {|
-    ...GraphQLEnumTypeConfig,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<EnumTypeExtensionNode>,
-  |} {
-    const values = keyValMap(
-      this.getValues(),
-      value => value.name,
-      value => ({
-        description: value.description,
-        value: value.value,
-        deprecationReason: value.deprecationReason,
-        extensions: value.extensions,
-        astNode: value.astNode,
-      }),
-    );
-
-    return {
-      name: this.name,
-      description: this.description,
-      values,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLEnumType';
-  }
-}
-
-defineToJSON(GraphQLEnumType);
-
-function didYouMeanEnumValue(
-  enumType: GraphQLEnumType,
-  unknownValueStr: string,
-): string {
-  const allNames = enumType.getValues().map(value => value.name);
-  const suggestedValues = suggestionList(unknownValueStr, allNames);
-
-  return didYouMean('the enum value', suggestedValues);
-}
-
-function defineEnumValues(
-  typeName: string,
-  valueMap: GraphQLEnumValueConfigMap /* <T> */,
-): Array<GraphQLEnumValue /* <T> */> {
-  devAssert(
-    isPlainObj(valueMap),
-    `${typeName} values must be an object with value names as keys.`,
-  );
-  return objectEntries(valueMap).map(([valueName, valueConfig]) => {
-    devAssert(
-      isPlainObj(valueConfig),
-      `${typeName}.${valueName} must refer to an object with a "value" key ` +
-        `representing an internal value but got: ${inspect(valueConfig)}.`,
-    );
-    devAssert(
-      !('isDeprecated' in valueConfig),
-      `${typeName}.${valueName} should provide "deprecationReason" instead of "isDeprecated".`,
-    );
-    return {
-      name: valueName,
-      description: valueConfig.description,
-      value: valueConfig.value !== undefined ? valueConfig.value : valueName,
-      isDeprecated: valueConfig.deprecationReason != null,
-      deprecationReason: valueConfig.deprecationReason,
-      extensions: valueConfig.extensions && toObjMap(valueConfig.extensions),
-      astNode: valueConfig.astNode,
-    };
-  });
-}
-
-export type GraphQLEnumTypeConfig /* <T> */ = {|
-  name: string,
-  description?: ?string,
-  values: GraphQLEnumValueConfigMap /* <T> */,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?EnumTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<EnumTypeExtensionNode>,
-|};
-
-export type GraphQLEnumValueConfigMap /* <T> */ = ObjMap<GraphQLEnumValueConfig /* <T> */>;
-
-export type GraphQLEnumValueConfig /* <T> */ = {|
-  description?: ?string,
-  value?: any /* T */,
-  deprecationReason?: ?string,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?EnumValueDefinitionNode,
-|};
-
-export type GraphQLEnumValue /* <T> */ = {|
-  name: string,
-  description: ?string,
-  value: any /* T */,
-  isDeprecated: boolean,
-  deprecationReason: ?string,
-  extensions: ?ReadOnlyObjMap<mixed>,
-  astNode: ?EnumValueDefinitionNode,
-|};
-
-/**
- * Input Object Type Definition
- *
- * An input object defines a structured collection of fields which may be
- * supplied to a field argument.
- *
- * Using `NonNull` will ensure that a value must be provided by the query
- *
- * Example:
- *
- *     const GeoPoint = new GraphQLInputObjectType({
- *       name: 'GeoPoint',
- *       fields: {
- *         lat: { type: GraphQLNonNull(GraphQLFloat) },
- *         lon: { type: GraphQLNonNull(GraphQLFloat) },
- *         alt: { type: GraphQLFloat, defaultValue: 0 },
- *       }
- *     });
- *
- */
-export class GraphQLInputObjectType {
-  name: string;
-  description: ?string;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?InputObjectTypeDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<InputObjectTypeExtensionNode>;
-
-  _fields: Thunk<GraphQLInputFieldMap>;
-
-  constructor(config: $ReadOnly<GraphQLInputObjectTypeConfig>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-
-    this._fields = defineInputFieldMap.bind(undefined, config);
-    devAssert(typeof config.name === 'string', 'Must provide name.');
-  }
-
-  getFields(): GraphQLInputFieldMap {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-    return this._fields;
-  }
-
-  toConfig(): {|
-    ...GraphQLInputObjectTypeConfig,
-    fields: GraphQLInputFieldConfigMap,
-    extensions: ?ReadOnlyObjMap<mixed>,
-    extensionASTNodes: $ReadOnlyArray<InputObjectTypeExtensionNode>,
-  |} {
-    const fields = mapValue(this.getFields(), field => ({
-      description: field.description,
-      type: field.type,
-      defaultValue: field.defaultValue,
-      extensions: field.extensions,
-      astNode: field.astNode,
-    }));
-
-    return {
-      name: this.name,
-      description: this.description,
-      fields,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-    };
-  }
-
-  toString(): string {
-    return this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLInputObjectType';
-  }
-}
-
-defineToJSON(GraphQLInputObjectType);
-
-function defineInputFieldMap(
-  config: $ReadOnly<GraphQLInputObjectTypeConfig>,
-): GraphQLInputFieldMap {
-  const fieldMap = resolveThunk(config.fields);
-  devAssert(
-    isPlainObj(fieldMap),
-    `${config.name} fields must be an object with field names as keys or a function which returns such an object.`,
-  );
-  return mapValue(fieldMap, (fieldConfig, fieldName) => {
-    devAssert(
-      !('resolve' in fieldConfig),
-      `${config.name}.${fieldName} field has a resolve property, but Input Types cannot define resolvers.`,
-    );
-
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      defaultValue: fieldConfig.defaultValue,
-      extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),
-      astNode: fieldConfig.astNode,
-    };
-  });
-}
-
-export type GraphQLInputObjectTypeConfig = {|
-  name: string,
-  description?: ?string,
-  fields: Thunk<GraphQLInputFieldConfigMap>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?InputObjectTypeDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<InputObjectTypeExtensionNode>,
-|};
-
-export type GraphQLInputFieldConfig = {|
-  description?: ?string,
-  type: GraphQLInputType,
-  defaultValue?: mixed,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?InputValueDefinitionNode,
-|};
-
-export type GraphQLInputFieldConfigMap = ObjMap<GraphQLInputFieldConfig>;
-
-export type GraphQLInputField = {|
-  name: string,
-  description: ?string,
-  type: GraphQLInputType,
-  defaultValue: mixed,
-  extensions: ?ReadOnlyObjMap<mixed>,
-  astNode: ?InputValueDefinitionNode,
-|};
-
-export function isRequiredInputField(
-  field: GraphQLInputField,
-): boolean %checks {
-  return isNonNullType(field.type) && field.defaultValue === undefined;
-}
-
-export type GraphQLInputFieldMap = ObjMap<GraphQLInputField>;
diff --git a/node_modules/graphql/type/definition.mjs b/node_modules/graphql/type/definition.mjs
deleted file mode 100644
index 00d7807..0000000
--- a/node_modules/graphql/type/definition.mjs
+++ /dev/null
@@ -1,1073 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-// FIXME
-
-/* eslint-disable import/no-cycle */
-import objectEntries from "../polyfills/objectEntries.mjs";
-import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import keyMap from "../jsutils/keyMap.mjs";
-import mapValue from "../jsutils/mapValue.mjs";
-import toObjMap from "../jsutils/toObjMap.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import keyValMap from "../jsutils/keyValMap.mjs";
-import instanceOf from "../jsutils/instanceOf.mjs";
-import didYouMean from "../jsutils/didYouMean.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import identityFunc from "../jsutils/identityFunc.mjs";
-import defineToJSON from "../jsutils/defineToJSON.mjs";
-import suggestionList from "../jsutils/suggestionList.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { print } from "../language/printer.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { valueFromASTUntyped } from "../utilities/valueFromASTUntyped.mjs";
-export function isType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type) || isListType(type) || isNonNullType(type);
-}
-export function assertType(type) {
-  if (!isType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL type."));
-  }
-
-  return type;
-}
-/**
- * There are predicates for each kind of GraphQL type.
- */
-
-// eslint-disable-next-line no-redeclare
-export function isScalarType(type) {
-  return instanceOf(type, GraphQLScalarType);
-}
-export function assertScalarType(type) {
-  if (!isScalarType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Scalar type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isObjectType(type) {
-  return instanceOf(type, GraphQLObjectType);
-}
-export function assertObjectType(type) {
-  if (!isObjectType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Object type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isInterfaceType(type) {
-  return instanceOf(type, GraphQLInterfaceType);
-}
-export function assertInterfaceType(type) {
-  if (!isInterfaceType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Interface type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isUnionType(type) {
-  return instanceOf(type, GraphQLUnionType);
-}
-export function assertUnionType(type) {
-  if (!isUnionType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Union type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isEnumType(type) {
-  return instanceOf(type, GraphQLEnumType);
-}
-export function assertEnumType(type) {
-  if (!isEnumType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Enum type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isInputObjectType(type) {
-  return instanceOf(type, GraphQLInputObjectType);
-}
-export function assertInputObjectType(type) {
-  if (!isInputObjectType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Input Object type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isListType(type) {
-  return instanceOf(type, GraphQLList);
-}
-export function assertListType(type) {
-  if (!isListType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL List type."));
-  }
-
-  return type;
-}
-// eslint-disable-next-line no-redeclare
-export function isNonNullType(type) {
-  return instanceOf(type, GraphQLNonNull);
-}
-export function assertNonNullType(type) {
-  if (!isNonNullType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL Non-Null type."));
-  }
-
-  return type;
-}
-/**
- * These types may be used as input types for arguments and directives.
- */
-
-export function isInputType(type) {
-  return isScalarType(type) || isEnumType(type) || isInputObjectType(type) || isWrappingType(type) && isInputType(type.ofType);
-}
-export function assertInputType(type) {
-  if (!isInputType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL input type."));
-  }
-
-  return type;
-}
-/**
- * These types may be used as output types as the result of fields.
- */
-
-export function isOutputType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isWrappingType(type) && isOutputType(type.ofType);
-}
-export function assertOutputType(type) {
-  if (!isOutputType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL output type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe types which may be leaf values.
- */
-
-export function isLeafType(type) {
-  return isScalarType(type) || isEnumType(type);
-}
-export function assertLeafType(type) {
-  if (!isLeafType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL leaf type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe the parent context of a selection set.
- */
-
-export function isCompositeType(type) {
-  return isObjectType(type) || isInterfaceType(type) || isUnionType(type);
-}
-export function assertCompositeType(type) {
-  if (!isCompositeType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL composite type."));
-  }
-
-  return type;
-}
-/**
- * These types may describe the parent context of a selection set.
- */
-
-export function isAbstractType(type) {
-  return isInterfaceType(type) || isUnionType(type);
-}
-export function assertAbstractType(type) {
-  if (!isAbstractType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL abstract type."));
-  }
-
-  return type;
-}
-/**
- * List Type Wrapper
- *
- * A list is a wrapping type which points to another type.
- * Lists are often created within the context of defining the fields of
- * an object type.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         parents: { type: GraphQLList(PersonType) },
- *         children: { type: GraphQLList(PersonType) },
- *       })
- *     })
- *
- */
-// FIXME: workaround to fix issue with Babel parser
-
-/* ::
-declare class GraphQLList<+T: GraphQLType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLList<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-export function GraphQLList(ofType) {
-  if (this instanceof GraphQLList) {
-    this.ofType = assertType(ofType);
-  } else {
-    return new GraphQLList(ofType);
-  }
-} // Need to cast through any to alter the prototype.
-
-GraphQLList.prototype.toString = function toString() {
-  return '[' + String(this.ofType) + ']';
-};
-
-Object.defineProperty(GraphQLList.prototype, SYMBOL_TO_STRING_TAG, {
-  get: function get() {
-    return 'GraphQLList';
-  }
-});
-defineToJSON(GraphQLList);
-/**
- * Non-Null Type Wrapper
- *
- * A non-null is a wrapping type which points to another type.
- * Non-null types enforce that their values are never null and can ensure
- * an error is raised if this ever occurs during a request. It is useful for
- * fields which you can make a strong guarantee on non-nullability, for example
- * usually the id field of a database row will never be null.
- *
- * Example:
- *
- *     const RowType = new GraphQLObjectType({
- *       name: 'Row',
- *       fields: () => ({
- *         id: { type: GraphQLNonNull(GraphQLString) },
- *       })
- *     })
- *
- * Note: the enforcement of non-nullability occurs within the executor.
- */
-// FIXME: workaround to fix issue with Babel parser
-
-/* ::
-declare class GraphQLNonNull<+T: GraphQLNullableType> {
-  +ofType: T;
-  static <T>(ofType: T): GraphQLNonNull<T>;
-  // Note: constructors cannot be used for covariant types. Drop the "new".
-  constructor(ofType: GraphQLType): void;
-}
-*/
-
-export function GraphQLNonNull(ofType) {
-  if (this instanceof GraphQLNonNull) {
-    this.ofType = assertNullableType(ofType);
-  } else {
-    return new GraphQLNonNull(ofType);
-  }
-} // Need to cast through any to alter the prototype.
-
-GraphQLNonNull.prototype.toString = function toString() {
-  return String(this.ofType) + '!';
-};
-
-Object.defineProperty(GraphQLNonNull.prototype, SYMBOL_TO_STRING_TAG, {
-  get: function get() {
-    return 'GraphQLNonNull';
-  }
-});
-defineToJSON(GraphQLNonNull);
-/**
- * These types wrap and modify other types
- */
-
-export function isWrappingType(type) {
-  return isListType(type) || isNonNullType(type);
-}
-export function assertWrappingType(type) {
-  if (!isWrappingType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL wrapping type."));
-  }
-
-  return type;
-}
-/**
- * These types can all accept null as a value.
- */
-
-export function isNullableType(type) {
-  return isType(type) && !isNonNullType(type);
-}
-export function assertNullableType(type) {
-  if (!isNullableType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL nullable type."));
-  }
-
-  return type;
-}
-/* eslint-disable no-redeclare */
-
-export function getNullableType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    return isNonNullType(type) ? type.ofType : type;
-  }
-}
-/**
- * These named types do not include modifiers like List or NonNull.
- */
-
-export function isNamedType(type) {
-  return isScalarType(type) || isObjectType(type) || isInterfaceType(type) || isUnionType(type) || isEnumType(type) || isInputObjectType(type);
-}
-export function assertNamedType(type) {
-  if (!isNamedType(type)) {
-    throw new Error("Expected ".concat(inspect(type), " to be a GraphQL named type."));
-  }
-
-  return type;
-}
-/* eslint-disable no-redeclare */
-
-export function getNamedType(type) {
-  /* eslint-enable no-redeclare */
-  if (type) {
-    var unwrappedType = type;
-
-    while (isWrappingType(unwrappedType)) {
-      unwrappedType = unwrappedType.ofType;
-    }
-
-    return unwrappedType;
-  }
-}
-/**
- * Used while defining GraphQL types to allow for circular references in
- * otherwise immutable type definitions.
- */
-
-function resolveThunk(thunk) {
-  // $FlowFixMe(>=0.90.0)
-  return typeof thunk === 'function' ? thunk() : thunk;
-}
-
-function undefineIfEmpty(arr) {
-  return arr && arr.length > 0 ? arr : undefined;
-}
-/**
- * Scalar Type Definition
- *
- * The leaf values of any request and input values to arguments are
- * Scalars (or Enums) and are defined with a name and a series of functions
- * used to parse input from ast or variables and to ensure validity.
- *
- * If a type's serialize function does not return a value (i.e. it returns
- * `undefined`) then an error will be raised and a `null` value will be returned
- * in the response. If the serialize function returns `null`, then no error will
- * be included in the response.
- *
- * Example:
- *
- *     const OddType = new GraphQLScalarType({
- *       name: 'Odd',
- *       serialize(value) {
- *         if (value % 2 === 1) {
- *           return value;
- *         }
- *       }
- *     });
- *
- */
-
-
-export var GraphQLScalarType =
-/*#__PURE__*/
-function () {
-  function GraphQLScalarType(config) {
-    var _config$parseValue, _config$serialize, _config$parseLiteral;
-
-    var parseValue = (_config$parseValue = config.parseValue) !== null && _config$parseValue !== void 0 ? _config$parseValue : identityFunc;
-    this.name = config.name;
-    this.description = config.description;
-    this.serialize = (_config$serialize = config.serialize) !== null && _config$serialize !== void 0 ? _config$serialize : identityFunc;
-    this.parseValue = parseValue;
-    this.parseLiteral = (_config$parseLiteral = config.parseLiteral) !== null && _config$parseLiteral !== void 0 ? _config$parseLiteral : function (node) {
-      return parseValue(valueFromASTUntyped(node));
-    };
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-    config.serialize == null || typeof config.serialize === 'function' || devAssert(0, "".concat(this.name, " must provide \"serialize\" function. If this custom Scalar is also used as an input type, ensure \"parseValue\" and \"parseLiteral\" functions are also provided."));
-
-    if (config.parseLiteral) {
-      typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function' || devAssert(0, "".concat(this.name, " must provide both \"parseValue\" and \"parseLiteral\" functions."));
-    }
-  }
-
-  var _proto = GraphQLScalarType.prototype;
-
-  _proto.toConfig = function toConfig() {
-    var _this$extensionASTNod;
-
-    return {
-      name: this.name,
-      description: this.description,
-      serialize: this.serialize,
-      parseValue: this.parseValue,
-      parseLiteral: this.parseLiteral,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : []
-    };
-  };
-
-  _proto.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLScalarType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLScalarType';
-    }
-  }]);
-
-  return GraphQLScalarType;
-}();
-defineToJSON(GraphQLScalarType);
-
-/**
- * Object Type Definition
- *
- * Almost all of the GraphQL types you define will be object types. Object types
- * have a name, but most importantly describe their fields.
- *
- * Example:
- *
- *     const AddressType = new GraphQLObjectType({
- *       name: 'Address',
- *       fields: {
- *         street: { type: GraphQLString },
- *         number: { type: GraphQLInt },
- *         formatted: {
- *           type: GraphQLString,
- *           resolve(obj) {
- *             return obj.number + ' ' + obj.street
- *           }
- *         }
- *       }
- *     });
- *
- * When two types need to refer to each other, or a type needs to refer to
- * itself in a field, you can use a function expression (aka a closure or a
- * thunk) to supply the fields lazily.
- *
- * Example:
- *
- *     const PersonType = new GraphQLObjectType({
- *       name: 'Person',
- *       fields: () => ({
- *         name: { type: GraphQLString },
- *         bestFriend: { type: PersonType },
- *       })
- *     });
- *
- */
-export var GraphQLObjectType =
-/*#__PURE__*/
-function () {
-  function GraphQLObjectType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.isTypeOf = config.isTypeOf;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-    config.isTypeOf == null || typeof config.isTypeOf === 'function' || devAssert(0, "".concat(this.name, " must provide \"isTypeOf\" as a function, ") + "but got: ".concat(inspect(config.isTypeOf), "."));
-  }
-
-  var _proto2 = GraphQLObjectType.prototype;
-
-  _proto2.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto2.getInterfaces = function getInterfaces() {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-
-    return this._interfaces;
-  };
-
-  _proto2.toConfig = function toConfig() {
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      isTypeOf: this.isTypeOf,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes || []
-    };
-  };
-
-  _proto2.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLObjectType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLObjectType';
-    }
-  }]);
-
-  return GraphQLObjectType;
-}();
-defineToJSON(GraphQLObjectType);
-
-function defineInterfaces(config) {
-  var _resolveThunk;
-
-  var interfaces = (_resolveThunk = resolveThunk(config.interfaces)) !== null && _resolveThunk !== void 0 ? _resolveThunk : [];
-  Array.isArray(interfaces) || devAssert(0, "".concat(config.name, " interfaces must be an Array or a function which returns an Array."));
-  return interfaces;
-}
-
-function defineFieldMap(config) {
-  var fieldMap = resolveThunk(config.fields);
-  isPlainObj(fieldMap) || devAssert(0, "".concat(config.name, " fields must be an object with field names as keys or a function which returns such an object."));
-  return mapValue(fieldMap, function (fieldConfig, fieldName) {
-    var _fieldConfig$args;
-
-    isPlainObj(fieldConfig) || devAssert(0, "".concat(config.name, ".").concat(fieldName, " field config must be an object."));
-    !('isDeprecated' in fieldConfig) || devAssert(0, "".concat(config.name, ".").concat(fieldName, " should provide \"deprecationReason\" instead of \"isDeprecated\"."));
-    fieldConfig.resolve == null || typeof fieldConfig.resolve === 'function' || devAssert(0, "".concat(config.name, ".").concat(fieldName, " field resolver must be a function if ") + "provided, but got: ".concat(inspect(fieldConfig.resolve), "."));
-    var argsConfig = (_fieldConfig$args = fieldConfig.args) !== null && _fieldConfig$args !== void 0 ? _fieldConfig$args : {};
-    isPlainObj(argsConfig) || devAssert(0, "".concat(config.name, ".").concat(fieldName, " args must be an object with argument names as keys."));
-    var args = objectEntries(argsConfig).map(function (_ref) {
-      var argName = _ref[0],
-          argConfig = _ref[1];
-      return {
-        name: argName,
-        description: argConfig.description,
-        type: argConfig.type,
-        defaultValue: argConfig.defaultValue,
-        extensions: argConfig.extensions && toObjMap(argConfig.extensions),
-        astNode: argConfig.astNode
-      };
-    });
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      args: args,
-      resolve: fieldConfig.resolve,
-      subscribe: fieldConfig.subscribe,
-      isDeprecated: fieldConfig.deprecationReason != null,
-      deprecationReason: fieldConfig.deprecationReason,
-      extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),
-      astNode: fieldConfig.astNode
-    };
-  });
-}
-
-function isPlainObj(obj) {
-  return isObjectLike(obj) && !Array.isArray(obj);
-}
-
-function fieldsToFieldsConfig(fields) {
-  return mapValue(fields, function (field) {
-    return {
-      description: field.description,
-      type: field.type,
-      args: argsToArgsConfig(field.args),
-      resolve: field.resolve,
-      subscribe: field.subscribe,
-      deprecationReason: field.deprecationReason,
-      extensions: field.extensions,
-      astNode: field.astNode
-    };
-  });
-}
-/**
- * @internal
- */
-
-
-export function argsToArgsConfig(args) {
-  return keyValMap(args, function (arg) {
-    return arg.name;
-  }, function (arg) {
-    return {
-      description: arg.description,
-      type: arg.type,
-      defaultValue: arg.defaultValue,
-      extensions: arg.extensions,
-      astNode: arg.astNode
-    };
-  });
-}
-export function isRequiredArgument(arg) {
-  return isNonNullType(arg.type) && arg.defaultValue === undefined;
-}
-
-/**
- * Interface Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Interface type
- * is used to describe what types are possible, what fields are in common across
- * all types, as well as a function to determine which type is actually used
- * when the field is resolved.
- *
- * Example:
- *
- *     const EntityType = new GraphQLInterfaceType({
- *       name: 'Entity',
- *       fields: {
- *         name: { type: GraphQLString }
- *       }
- *     });
- *
- */
-export var GraphQLInterfaceType =
-/*#__PURE__*/
-function () {
-  function GraphQLInterfaceType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineFieldMap.bind(undefined, config);
-    this._interfaces = defineInterfaces.bind(undefined, config);
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-    config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat(inspect(config.resolveType), "."));
-  }
-
-  var _proto3 = GraphQLInterfaceType.prototype;
-
-  _proto3.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto3.getInterfaces = function getInterfaces() {
-    if (typeof this._interfaces === 'function') {
-      this._interfaces = this._interfaces();
-    }
-
-    return this._interfaces;
-  };
-
-  _proto3.toConfig = function toConfig() {
-    var _this$extensionASTNod2;
-
-    return {
-      name: this.name,
-      description: this.description,
-      interfaces: this.getInterfaces(),
-      fields: fieldsToFieldsConfig(this.getFields()),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod2 = this.extensionASTNodes) !== null && _this$extensionASTNod2 !== void 0 ? _this$extensionASTNod2 : []
-    };
-  };
-
-  _proto3.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLInterfaceType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLInterfaceType';
-    }
-  }]);
-
-  return GraphQLInterfaceType;
-}();
-defineToJSON(GraphQLInterfaceType);
-
-/**
- * Union Type Definition
- *
- * When a field can return one of a heterogeneous set of types, a Union type
- * is used to describe what types are possible as well as providing a function
- * to determine which type is actually used when the field is resolved.
- *
- * Example:
- *
- *     const PetType = new GraphQLUnionType({
- *       name: 'Pet',
- *       types: [ DogType, CatType ],
- *       resolveType(value) {
- *         if (value instanceof Dog) {
- *           return DogType;
- *         }
- *         if (value instanceof Cat) {
- *           return CatType;
- *         }
- *       }
- *     });
- *
- */
-export var GraphQLUnionType =
-/*#__PURE__*/
-function () {
-  function GraphQLUnionType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.resolveType = config.resolveType;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._types = defineTypes.bind(undefined, config);
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-    config.resolveType == null || typeof config.resolveType === 'function' || devAssert(0, "".concat(this.name, " must provide \"resolveType\" as a function, ") + "but got: ".concat(inspect(config.resolveType), "."));
-  }
-
-  var _proto4 = GraphQLUnionType.prototype;
-
-  _proto4.getTypes = function getTypes() {
-    if (typeof this._types === 'function') {
-      this._types = this._types();
-    }
-
-    return this._types;
-  };
-
-  _proto4.toConfig = function toConfig() {
-    var _this$extensionASTNod3;
-
-    return {
-      name: this.name,
-      description: this.description,
-      types: this.getTypes(),
-      resolveType: this.resolveType,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod3 = this.extensionASTNodes) !== null && _this$extensionASTNod3 !== void 0 ? _this$extensionASTNod3 : []
-    };
-  };
-
-  _proto4.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLUnionType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLUnionType';
-    }
-  }]);
-
-  return GraphQLUnionType;
-}();
-defineToJSON(GraphQLUnionType);
-
-function defineTypes(config) {
-  var types = resolveThunk(config.types);
-  Array.isArray(types) || devAssert(0, "Must provide Array of types or a function which returns such an array for Union ".concat(config.name, "."));
-  return types;
-}
-
-/**
- * Enum Type Definition
- *
- * Some leaf values of requests and input values are Enums. GraphQL serializes
- * Enum values as strings, however internally Enums can be represented by any
- * kind of type, often integers.
- *
- * Example:
- *
- *     const RGBType = new GraphQLEnumType({
- *       name: 'RGB',
- *       values: {
- *         RED: { value: 0 },
- *         GREEN: { value: 1 },
- *         BLUE: { value: 2 }
- *       }
- *     });
- *
- * Note: If a value is not provided in a definition, the name of the enum value
- * will be used as its internal value.
- */
-export var GraphQLEnumType
-/* <T> */
-=
-/*#__PURE__*/
-function () {
-  function GraphQLEnumType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._values = defineEnumValues(this.name, config.values);
-    this._valueLookup = new Map(this._values.map(function (enumValue) {
-      return [enumValue.value, enumValue];
-    }));
-    this._nameLookup = keyMap(this._values, function (value) {
-      return value.name;
-    });
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-  }
-
-  var _proto5 = GraphQLEnumType.prototype;
-
-  _proto5.getValues = function getValues() {
-    return this._values;
-  };
-
-  _proto5.getValue = function getValue(name) {
-    return this._nameLookup[name];
-  };
-
-  _proto5.serialize = function serialize(outputValue) {
-    var enumValue = this._valueLookup.get(outputValue);
-
-    if (enumValue === undefined) {
-      throw new GraphQLError("Enum \"".concat(this.name, "\" cannot represent value: ").concat(inspect(outputValue)));
-    }
-
-    return enumValue.name;
-  };
-
-  _proto5.parseValue = function parseValue(inputValue)
-  /* T */
-  {
-    if (typeof inputValue !== 'string') {
-      var valueStr = inspect(inputValue);
-      throw new GraphQLError("Enum \"".concat(this.name, "\" cannot represent non-string value: ").concat(valueStr, ".") + didYouMeanEnumValue(this, valueStr));
-    }
-
-    var enumValue = this.getValue(inputValue);
-
-    if (enumValue == null) {
-      throw new GraphQLError("Value \"".concat(inputValue, "\" does not exist in \"").concat(this.name, "\" enum.") + didYouMeanEnumValue(this, inputValue));
-    }
-
-    return enumValue.value;
-  };
-
-  _proto5.parseLiteral = function parseLiteral(valueNode, _variables)
-  /* T */
-  {
-    // Note: variables will be resolved to a value before calling this function.
-    if (valueNode.kind !== Kind.ENUM) {
-      var valueStr = print(valueNode);
-      throw new GraphQLError("Enum \"".concat(this.name, "\" cannot represent non-enum value: ").concat(valueStr, ".") + didYouMeanEnumValue(this, valueStr), valueNode);
-    }
-
-    var enumValue = this.getValue(valueNode.value);
-
-    if (enumValue == null) {
-      var _valueStr = print(valueNode);
-
-      throw new GraphQLError("Value \"".concat(_valueStr, "\" does not exist in \"").concat(this.name, "\" enum.") + didYouMeanEnumValue(this, _valueStr), valueNode);
-    }
-
-    return enumValue.value;
-  };
-
-  _proto5.toConfig = function toConfig() {
-    var _this$extensionASTNod4;
-
-    var values = keyValMap(this.getValues(), function (value) {
-      return value.name;
-    }, function (value) {
-      return {
-        description: value.description,
-        value: value.value,
-        deprecationReason: value.deprecationReason,
-        extensions: value.extensions,
-        astNode: value.astNode
-      };
-    });
-    return {
-      name: this.name,
-      description: this.description,
-      values: values,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod4 = this.extensionASTNodes) !== null && _this$extensionASTNod4 !== void 0 ? _this$extensionASTNod4 : []
-    };
-  };
-
-  _proto5.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLEnumType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLEnumType';
-    }
-  }]);
-
-  return GraphQLEnumType;
-}();
-defineToJSON(GraphQLEnumType);
-
-function didYouMeanEnumValue(enumType, unknownValueStr) {
-  var allNames = enumType.getValues().map(function (value) {
-    return value.name;
-  });
-  var suggestedValues = suggestionList(unknownValueStr, allNames);
-  return didYouMean('the enum value', suggestedValues);
-}
-
-function defineEnumValues(typeName, valueMap) {
-  isPlainObj(valueMap) || devAssert(0, "".concat(typeName, " values must be an object with value names as keys."));
-  return objectEntries(valueMap).map(function (_ref2) {
-    var valueName = _ref2[0],
-        valueConfig = _ref2[1];
-    isPlainObj(valueConfig) || devAssert(0, "".concat(typeName, ".").concat(valueName, " must refer to an object with a \"value\" key ") + "representing an internal value but got: ".concat(inspect(valueConfig), "."));
-    !('isDeprecated' in valueConfig) || devAssert(0, "".concat(typeName, ".").concat(valueName, " should provide \"deprecationReason\" instead of \"isDeprecated\"."));
-    return {
-      name: valueName,
-      description: valueConfig.description,
-      value: valueConfig.value !== undefined ? valueConfig.value : valueName,
-      isDeprecated: valueConfig.deprecationReason != null,
-      deprecationReason: valueConfig.deprecationReason,
-      extensions: valueConfig.extensions && toObjMap(valueConfig.extensions),
-      astNode: valueConfig.astNode
-    };
-  });
-}
-
-/**
- * Input Object Type Definition
- *
- * An input object defines a structured collection of fields which may be
- * supplied to a field argument.
- *
- * Using `NonNull` will ensure that a value must be provided by the query
- *
- * Example:
- *
- *     const GeoPoint = new GraphQLInputObjectType({
- *       name: 'GeoPoint',
- *       fields: {
- *         lat: { type: GraphQLNonNull(GraphQLFloat) },
- *         lon: { type: GraphQLNonNull(GraphQLFloat) },
- *         alt: { type: GraphQLFloat, defaultValue: 0 },
- *       }
- *     });
- *
- */
-export var GraphQLInputObjectType =
-/*#__PURE__*/
-function () {
-  function GraphQLInputObjectType(config) {
-    this.name = config.name;
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = undefineIfEmpty(config.extensionASTNodes);
-    this._fields = defineInputFieldMap.bind(undefined, config);
-    typeof config.name === 'string' || devAssert(0, 'Must provide name.');
-  }
-
-  var _proto6 = GraphQLInputObjectType.prototype;
-
-  _proto6.getFields = function getFields() {
-    if (typeof this._fields === 'function') {
-      this._fields = this._fields();
-    }
-
-    return this._fields;
-  };
-
-  _proto6.toConfig = function toConfig() {
-    var _this$extensionASTNod5;
-
-    var fields = mapValue(this.getFields(), function (field) {
-      return {
-        description: field.description,
-        type: field.type,
-        defaultValue: field.defaultValue,
-        extensions: field.extensions,
-        astNode: field.astNode
-      };
-    });
-    return {
-      name: this.name,
-      description: this.description,
-      fields: fields,
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod5 = this.extensionASTNodes) !== null && _this$extensionASTNod5 !== void 0 ? _this$extensionASTNod5 : []
-    };
-  };
-
-  _proto6.toString = function toString() {
-    return this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLInputObjectType, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLInputObjectType';
-    }
-  }]);
-
-  return GraphQLInputObjectType;
-}();
-defineToJSON(GraphQLInputObjectType);
-
-function defineInputFieldMap(config) {
-  var fieldMap = resolveThunk(config.fields);
-  isPlainObj(fieldMap) || devAssert(0, "".concat(config.name, " fields must be an object with field names as keys or a function which returns such an object."));
-  return mapValue(fieldMap, function (fieldConfig, fieldName) {
-    !('resolve' in fieldConfig) || devAssert(0, "".concat(config.name, ".").concat(fieldName, " field has a resolve property, but Input Types cannot define resolvers."));
-    return {
-      name: fieldName,
-      description: fieldConfig.description,
-      type: fieldConfig.type,
-      defaultValue: fieldConfig.defaultValue,
-      extensions: fieldConfig.extensions && toObjMap(fieldConfig.extensions),
-      astNode: fieldConfig.astNode
-    };
-  });
-}
-
-export function isRequiredInputField(field) {
-  return isNonNullType(field.type) && field.defaultValue === undefined;
-}
diff --git a/node_modules/graphql/type/directives.d.ts b/node_modules/graphql/type/directives.d.ts
deleted file mode 100644
index 28c70c5..0000000
--- a/node_modules/graphql/type/directives.d.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { DirectiveDefinitionNode } from '../language/ast';
-import { DirectiveLocationEnum } from '../language/directiveLocation';
-
-import { GraphQLFieldConfigArgumentMap, GraphQLArgument } from './definition';
-
-/**
- * Test if the given value is a GraphQL directive.
- */
-export function isDirective(directive: any): directive is GraphQLDirective;
-export function assertDirective(directive: any): GraphQLDirective;
-/**
- * Directives are used by the GraphQL runtime as a way of modifying execution
- * behavior. Type system creators will usually not create these directly.
- */
-export class GraphQLDirective {
-  name: string;
-  description: Maybe<string>;
-  locations: Array<DirectiveLocationEnum>;
-  isRepeatable: boolean;
-  args: Array<GraphQLArgument>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<DirectiveDefinitionNode>;
-
-  constructor(config: Readonly<GraphQLDirectiveConfig>);
-
-  toConfig(): GraphQLDirectiveConfig & {
-    args: GraphQLFieldConfigArgumentMap;
-    isRepeatable: boolean;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-  };
-
-  toString(): string;
-  toJSON(): string;
-  inspect(): string;
-}
-
-export interface GraphQLDirectiveConfig {
-  name: string;
-  description?: Maybe<string>;
-  locations: Array<DirectiveLocationEnum>;
-  args?: Maybe<GraphQLFieldConfigArgumentMap>;
-  isRepeatable?: Maybe<boolean>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<DirectiveDefinitionNode>;
-}
-
-/**
- * Used to conditionally include fields or fragments.
- */
-export const GraphQLIncludeDirective: GraphQLDirective;
-
-/**
- * Used to conditionally skip (exclude) fields or fragments.
- */
-export const GraphQLSkipDirective: GraphQLDirective;
-
-/**
- * Constant string used for default reason for a deprecation.
- */
-export const DEFAULT_DEPRECATION_REASON: 'No longer supported';
-
-/**
- * Used to declare element of a GraphQL schema as deprecated.
- */
-export const GraphQLDeprecatedDirective: GraphQLDirective;
-
-/**
- * The full list of specified directives.
- */
-export const specifiedDirectives: ReadonlyArray<GraphQLDirective>;
-
-export function isSpecifiedDirective(directive: GraphQLDirective): boolean;
diff --git a/node_modules/graphql/type/directives.js b/node_modules/graphql/type/directives.js
deleted file mode 100644
index c839a22..0000000
--- a/node_modules/graphql/type/directives.js
+++ /dev/null
@@ -1,185 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isDirective = isDirective;
-exports.assertDirective = assertDirective;
-exports.isSpecifiedDirective = isSpecifiedDirective;
-exports.specifiedDirectives = exports.GraphQLDeprecatedDirective = exports.DEFAULT_DEPRECATION_REASON = exports.GraphQLSkipDirective = exports.GraphQLIncludeDirective = exports.GraphQLDirective = void 0;
-
-var _objectEntries = _interopRequireDefault(require("../polyfills/objectEntries"));
-
-var _symbols = require("../polyfills/symbols");
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
-
-var _defineToJSON = _interopRequireDefault(require("../jsutils/defineToJSON"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _directiveLocation = require("../language/directiveLocation");
-
-var _scalars = require("./scalars");
-
-var _definition = require("./definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-// eslint-disable-next-line no-redeclare
-function isDirective(directive) {
-  return (0, _instanceOf.default)(directive, GraphQLDirective);
-}
-
-function assertDirective(directive) {
-  if (!isDirective(directive)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(directive), " to be a GraphQL directive."));
-  }
-
-  return directive;
-}
-/**
- * Directives are used by the GraphQL runtime as a way of modifying execution
- * behavior. Type system creators will usually not create these directly.
- */
-
-
-var GraphQLDirective =
-/*#__PURE__*/
-function () {
-  function GraphQLDirective(config) {
-    var _config$isRepeatable, _config$args;
-
-    this.name = config.name;
-    this.description = config.description;
-    this.locations = config.locations;
-    this.isRepeatable = (_config$isRepeatable = config.isRepeatable) !== null && _config$isRepeatable !== void 0 ? _config$isRepeatable : false;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    config.name || (0, _devAssert.default)(0, 'Directive must be named.');
-    Array.isArray(config.locations) || (0, _devAssert.default)(0, "@".concat(config.name, " locations must be an Array."));
-    var args = (_config$args = config.args) !== null && _config$args !== void 0 ? _config$args : {};
-    (0, _isObjectLike.default)(args) && !Array.isArray(args) || (0, _devAssert.default)(0, "@".concat(config.name, " args must be an object with argument names as keys."));
-    this.args = (0, _objectEntries.default)(args).map(function (_ref) {
-      var argName = _ref[0],
-          argConfig = _ref[1];
-      return {
-        name: argName,
-        description: argConfig.description,
-        type: argConfig.type,
-        defaultValue: argConfig.defaultValue,
-        extensions: argConfig.extensions && (0, _toObjMap.default)(argConfig.extensions),
-        astNode: argConfig.astNode
-      };
-    });
-  }
-
-  var _proto = GraphQLDirective.prototype;
-
-  _proto.toConfig = function toConfig() {
-    return {
-      name: this.name,
-      description: this.description,
-      locations: this.locations,
-      args: (0, _definition.argsToArgsConfig)(this.args),
-      isRepeatable: this.isRepeatable,
-      extensions: this.extensions,
-      astNode: this.astNode
-    };
-  };
-
-  _proto.toString = function toString() {
-    return '@' + this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLDirective, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLDirective';
-    }
-  }]);
-
-  return GraphQLDirective;
-}();
-
-exports.GraphQLDirective = GraphQLDirective;
-(0, _defineToJSON.default)(GraphQLDirective);
-
-/**
- * Used to conditionally include fields or fragments.
- */
-var GraphQLIncludeDirective = new GraphQLDirective({
-  name: 'include',
-  description: 'Directs the executor to include this field or fragment only when the `if` argument is true.',
-  locations: [_directiveLocation.DirectiveLocation.FIELD, _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, _directiveLocation.DirectiveLocation.INLINE_FRAGMENT],
-  args: {
-    if: {
-      type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
-      description: 'Included when true.'
-    }
-  }
-});
-/**
- * Used to conditionally skip (exclude) fields or fragments.
- */
-
-exports.GraphQLIncludeDirective = GraphQLIncludeDirective;
-var GraphQLSkipDirective = new GraphQLDirective({
-  name: 'skip',
-  description: 'Directs the executor to skip this field or fragment when the `if` argument is true.',
-  locations: [_directiveLocation.DirectiveLocation.FIELD, _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD, _directiveLocation.DirectiveLocation.INLINE_FRAGMENT],
-  args: {
-    if: {
-      type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
-      description: 'Skipped when true.'
-    }
-  }
-});
-/**
- * Constant string used for default reason for a deprecation.
- */
-
-exports.GraphQLSkipDirective = GraphQLSkipDirective;
-var DEFAULT_DEPRECATION_REASON = 'No longer supported';
-/**
- * Used to declare element of a GraphQL schema as deprecated.
- */
-
-exports.DEFAULT_DEPRECATION_REASON = DEFAULT_DEPRECATION_REASON;
-var GraphQLDeprecatedDirective = new GraphQLDirective({
-  name: 'deprecated',
-  description: 'Marks an element of a GraphQL schema as no longer supported.',
-  locations: [_directiveLocation.DirectiveLocation.FIELD_DEFINITION, _directiveLocation.DirectiveLocation.ENUM_VALUE],
-  args: {
-    reason: {
-      type: _scalars.GraphQLString,
-      description: 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).',
-      defaultValue: DEFAULT_DEPRECATION_REASON
-    }
-  }
-});
-/**
- * The full list of specified directives.
- */
-
-exports.GraphQLDeprecatedDirective = GraphQLDeprecatedDirective;
-var specifiedDirectives = Object.freeze([GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective]);
-exports.specifiedDirectives = specifiedDirectives;
-
-function isSpecifiedDirective(directive) {
-  return specifiedDirectives.some(function (_ref2) {
-    var name = _ref2.name;
-    return name === directive.name;
-  });
-}
diff --git a/node_modules/graphql/type/directives.js.flow b/node_modules/graphql/type/directives.js.flow
deleted file mode 100644
index d3ed6fd..0000000
--- a/node_modules/graphql/type/directives.js.flow
+++ /dev/null
@@ -1,208 +0,0 @@
-// @flow strict
-
-import objectEntries from '../polyfills/objectEntries';
-import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
-
-import inspect from '../jsutils/inspect';
-import toObjMap from '../jsutils/toObjMap';
-import devAssert from '../jsutils/devAssert';
-import instanceOf from '../jsutils/instanceOf';
-import defineToJSON from '../jsutils/defineToJSON';
-import isObjectLike from '../jsutils/isObjectLike';
-import {
-  type ReadOnlyObjMap,
-  type ReadOnlyObjMapLike,
-} from '../jsutils/ObjMap';
-
-import { type DirectiveDefinitionNode } from '../language/ast';
-import {
-  DirectiveLocation,
-  type DirectiveLocationEnum,
-} from '../language/directiveLocation';
-
-import { GraphQLString, GraphQLBoolean } from './scalars';
-import {
-  type GraphQLFieldConfigArgumentMap,
-  type GraphQLArgument,
-  argsToArgsConfig,
-  GraphQLNonNull,
-} from './definition';
-
-/**
- * Test if the given value is a GraphQL directive.
- */
-declare function isDirective(
-  directive: mixed,
-): boolean %checks(directive instanceof GraphQLDirective);
-// eslint-disable-next-line no-redeclare
-export function isDirective(directive) {
-  return instanceOf(directive, GraphQLDirective);
-}
-
-export function assertDirective(directive: mixed): GraphQLDirective {
-  if (!isDirective(directive)) {
-    throw new Error(
-      `Expected ${inspect(directive)} to be a GraphQL directive.`,
-    );
-  }
-  return directive;
-}
-
-/**
- * Directives are used by the GraphQL runtime as a way of modifying execution
- * behavior. Type system creators will usually not create these directly.
- */
-export class GraphQLDirective {
-  name: string;
-  description: ?string;
-  locations: Array<DirectiveLocationEnum>;
-  args: Array<GraphQLArgument>;
-  isRepeatable: boolean;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?DirectiveDefinitionNode;
-
-  constructor(config: $ReadOnly<GraphQLDirectiveConfig>): void {
-    this.name = config.name;
-    this.description = config.description;
-    this.locations = config.locations;
-    this.isRepeatable = config.isRepeatable ?? false;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-
-    devAssert(config.name, 'Directive must be named.');
-    devAssert(
-      Array.isArray(config.locations),
-      `@${config.name} locations must be an Array.`,
-    );
-
-    const args = config.args ?? {};
-    devAssert(
-      isObjectLike(args) && !Array.isArray(args),
-      `@${config.name} args must be an object with argument names as keys.`,
-    );
-
-    this.args = objectEntries(args).map(([argName, argConfig]) => ({
-      name: argName,
-      description: argConfig.description,
-      type: argConfig.type,
-      defaultValue: argConfig.defaultValue,
-      extensions: argConfig.extensions && toObjMap(argConfig.extensions),
-      astNode: argConfig.astNode,
-    }));
-  }
-
-  toConfig(): {|
-    ...GraphQLDirectiveConfig,
-    args: GraphQLFieldConfigArgumentMap,
-    isRepeatable: boolean,
-    extensions: ?ReadOnlyObjMap<mixed>,
-  |} {
-    return {
-      name: this.name,
-      description: this.description,
-      locations: this.locations,
-      args: argsToArgsConfig(this.args),
-      isRepeatable: this.isRepeatable,
-      extensions: this.extensions,
-      astNode: this.astNode,
-    };
-  }
-
-  toString(): string {
-    return '@' + this.name;
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLDirective';
-  }
-}
-
-defineToJSON(GraphQLDirective);
-
-export type GraphQLDirectiveConfig = {|
-  name: string,
-  description?: ?string,
-  locations: Array<DirectiveLocationEnum>,
-  args?: ?GraphQLFieldConfigArgumentMap,
-  isRepeatable?: ?boolean,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?DirectiveDefinitionNode,
-|};
-
-/**
- * Used to conditionally include fields or fragments.
- */
-export const GraphQLIncludeDirective = new GraphQLDirective({
-  name: 'include',
-  description:
-    'Directs the executor to include this field or fragment only when the `if` argument is true.',
-  locations: [
-    DirectiveLocation.FIELD,
-    DirectiveLocation.FRAGMENT_SPREAD,
-    DirectiveLocation.INLINE_FRAGMENT,
-  ],
-  args: {
-    if: {
-      type: GraphQLNonNull(GraphQLBoolean),
-      description: 'Included when true.',
-    },
-  },
-});
-
-/**
- * Used to conditionally skip (exclude) fields or fragments.
- */
-export const GraphQLSkipDirective = new GraphQLDirective({
-  name: 'skip',
-  description:
-    'Directs the executor to skip this field or fragment when the `if` argument is true.',
-  locations: [
-    DirectiveLocation.FIELD,
-    DirectiveLocation.FRAGMENT_SPREAD,
-    DirectiveLocation.INLINE_FRAGMENT,
-  ],
-  args: {
-    if: {
-      type: GraphQLNonNull(GraphQLBoolean),
-      description: 'Skipped when true.',
-    },
-  },
-});
-
-/**
- * Constant string used for default reason for a deprecation.
- */
-export const DEFAULT_DEPRECATION_REASON = 'No longer supported';
-
-/**
- * Used to declare element of a GraphQL schema as deprecated.
- */
-export const GraphQLDeprecatedDirective = new GraphQLDirective({
-  name: 'deprecated',
-  description: 'Marks an element of a GraphQL schema as no longer supported.',
-  locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
-  args: {
-    reason: {
-      type: GraphQLString,
-      description:
-        'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).',
-      defaultValue: DEFAULT_DEPRECATION_REASON,
-    },
-  },
-});
-
-/**
- * The full list of specified directives.
- */
-export const specifiedDirectives = Object.freeze([
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-  GraphQLDeprecatedDirective,
-]);
-
-export function isSpecifiedDirective(
-  directive: GraphQLDirective,
-): boolean %checks {
-  return specifiedDirectives.some(({ name }) => name === directive.name);
-}
diff --git a/node_modules/graphql/type/directives.mjs b/node_modules/graphql/type/directives.mjs
deleted file mode 100644
index 6461270..0000000
--- a/node_modules/graphql/type/directives.mjs
+++ /dev/null
@@ -1,156 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-import objectEntries from "../polyfills/objectEntries.mjs";
-import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import toObjMap from "../jsutils/toObjMap.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import instanceOf from "../jsutils/instanceOf.mjs";
-import defineToJSON from "../jsutils/defineToJSON.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import { DirectiveLocation } from "../language/directiveLocation.mjs";
-import { GraphQLString, GraphQLBoolean } from "./scalars.mjs";
-import { argsToArgsConfig, GraphQLNonNull } from "./definition.mjs";
-/**
- * Test if the given value is a GraphQL directive.
- */
-
-// eslint-disable-next-line no-redeclare
-export function isDirective(directive) {
-  return instanceOf(directive, GraphQLDirective);
-}
-export function assertDirective(directive) {
-  if (!isDirective(directive)) {
-    throw new Error("Expected ".concat(inspect(directive), " to be a GraphQL directive."));
-  }
-
-  return directive;
-}
-/**
- * Directives are used by the GraphQL runtime as a way of modifying execution
- * behavior. Type system creators will usually not create these directly.
- */
-
-export var GraphQLDirective =
-/*#__PURE__*/
-function () {
-  function GraphQLDirective(config) {
-    var _config$isRepeatable, _config$args;
-
-    this.name = config.name;
-    this.description = config.description;
-    this.locations = config.locations;
-    this.isRepeatable = (_config$isRepeatable = config.isRepeatable) !== null && _config$isRepeatable !== void 0 ? _config$isRepeatable : false;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    config.name || devAssert(0, 'Directive must be named.');
-    Array.isArray(config.locations) || devAssert(0, "@".concat(config.name, " locations must be an Array."));
-    var args = (_config$args = config.args) !== null && _config$args !== void 0 ? _config$args : {};
-    isObjectLike(args) && !Array.isArray(args) || devAssert(0, "@".concat(config.name, " args must be an object with argument names as keys."));
-    this.args = objectEntries(args).map(function (_ref) {
-      var argName = _ref[0],
-          argConfig = _ref[1];
-      return {
-        name: argName,
-        description: argConfig.description,
-        type: argConfig.type,
-        defaultValue: argConfig.defaultValue,
-        extensions: argConfig.extensions && toObjMap(argConfig.extensions),
-        astNode: argConfig.astNode
-      };
-    });
-  }
-
-  var _proto = GraphQLDirective.prototype;
-
-  _proto.toConfig = function toConfig() {
-    return {
-      name: this.name,
-      description: this.description,
-      locations: this.locations,
-      args: argsToArgsConfig(this.args),
-      isRepeatable: this.isRepeatable,
-      extensions: this.extensions,
-      astNode: this.astNode
-    };
-  };
-
-  _proto.toString = function toString() {
-    return '@' + this.name;
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLDirective, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLDirective';
-    }
-  }]);
-
-  return GraphQLDirective;
-}();
-defineToJSON(GraphQLDirective);
-
-/**
- * Used to conditionally include fields or fragments.
- */
-export var GraphQLIncludeDirective = new GraphQLDirective({
-  name: 'include',
-  description: 'Directs the executor to include this field or fragment only when the `if` argument is true.',
-  locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
-  args: {
-    if: {
-      type: GraphQLNonNull(GraphQLBoolean),
-      description: 'Included when true.'
-    }
-  }
-});
-/**
- * Used to conditionally skip (exclude) fields or fragments.
- */
-
-export var GraphQLSkipDirective = new GraphQLDirective({
-  name: 'skip',
-  description: 'Directs the executor to skip this field or fragment when the `if` argument is true.',
-  locations: [DirectiveLocation.FIELD, DirectiveLocation.FRAGMENT_SPREAD, DirectiveLocation.INLINE_FRAGMENT],
-  args: {
-    if: {
-      type: GraphQLNonNull(GraphQLBoolean),
-      description: 'Skipped when true.'
-    }
-  }
-});
-/**
- * Constant string used for default reason for a deprecation.
- */
-
-export var DEFAULT_DEPRECATION_REASON = 'No longer supported';
-/**
- * Used to declare element of a GraphQL schema as deprecated.
- */
-
-export var GraphQLDeprecatedDirective = new GraphQLDirective({
-  name: 'deprecated',
-  description: 'Marks an element of a GraphQL schema as no longer supported.',
-  locations: [DirectiveLocation.FIELD_DEFINITION, DirectiveLocation.ENUM_VALUE],
-  args: {
-    reason: {
-      type: GraphQLString,
-      description: 'Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).',
-      defaultValue: DEFAULT_DEPRECATION_REASON
-    }
-  }
-});
-/**
- * The full list of specified directives.
- */
-
-export var specifiedDirectives = Object.freeze([GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective]);
-export function isSpecifiedDirective(directive) {
-  return specifiedDirectives.some(function (_ref2) {
-    var name = _ref2.name;
-    return name === directive.name;
-  });
-}
diff --git a/node_modules/graphql/type/index.d.ts b/node_modules/graphql/type/index.d.ts
deleted file mode 100644
index b6780d8..0000000
--- a/node_modules/graphql/type/index.d.ts
+++ /dev/null
@@ -1,155 +0,0 @@
-export { Path as ResponsePath } from '../jsutils/Path';
-
-export {
-  // Predicate
-  isSchema,
-  // Assertion
-  assertSchema,
-  // GraphQL Schema definition
-  GraphQLSchema,
-  GraphQLSchemaConfig,
-} from './schema';
-
-export {
-  // Predicates
-  isType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isInputType,
-  isOutputType,
-  isLeafType,
-  isCompositeType,
-  isAbstractType,
-  isWrappingType,
-  isNullableType,
-  isNamedType,
-  isRequiredArgument,
-  isRequiredInputField,
-  // Assertions
-  assertType,
-  assertScalarType,
-  assertObjectType,
-  assertInterfaceType,
-  assertUnionType,
-  assertEnumType,
-  assertInputObjectType,
-  assertListType,
-  assertNonNullType,
-  assertInputType,
-  assertOutputType,
-  assertLeafType,
-  assertCompositeType,
-  assertAbstractType,
-  assertWrappingType,
-  assertNullableType,
-  assertNamedType,
-  // Un-modifiers
-  getNullableType,
-  getNamedType,
-  // Definitions
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  // Type Wrappers
-  GraphQLList,
-  GraphQLNonNull,
-  // type
-  GraphQLType,
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLLeafType,
-  GraphQLCompositeType,
-  GraphQLAbstractType,
-  GraphQLWrappingType,
-  GraphQLNullableType,
-  GraphQLNamedType,
-  Thunk,
-  GraphQLArgument,
-  GraphQLArgumentConfig,
-  GraphQLEnumTypeConfig,
-  GraphQLEnumValue,
-  GraphQLEnumValueConfig,
-  GraphQLEnumValueConfigMap,
-  GraphQLField,
-  GraphQLFieldConfig,
-  GraphQLFieldConfigArgumentMap,
-  GraphQLFieldConfigMap,
-  GraphQLFieldMap,
-  GraphQLFieldResolver,
-  GraphQLInputField,
-  GraphQLInputFieldConfig,
-  GraphQLInputFieldConfigMap,
-  GraphQLInputFieldMap,
-  GraphQLInputObjectTypeConfig,
-  GraphQLInterfaceTypeConfig,
-  GraphQLIsTypeOfFn,
-  GraphQLObjectTypeConfig,
-  GraphQLResolveInfo,
-  GraphQLScalarTypeConfig,
-  GraphQLTypeResolver,
-  GraphQLUnionTypeConfig,
-  GraphQLScalarSerializer,
-  GraphQLScalarValueParser,
-  GraphQLScalarLiteralParser,
-} from './definition';
-
-export {
-  // Predicate
-  isDirective,
-  // Assertion
-  assertDirective,
-  // Directives Definition
-  GraphQLDirective,
-  // Built-in Directives defined by the Spec
-  isSpecifiedDirective,
-  specifiedDirectives,
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-  GraphQLDeprecatedDirective,
-  // Constant Deprecation Reason
-  DEFAULT_DEPRECATION_REASON,
-  // type
-  GraphQLDirectiveConfig,
-} from './directives';
-
-// Common built-in scalar instances.
-export {
-  isSpecifiedScalarType,
-  specifiedScalarTypes,
-  GraphQLInt,
-  GraphQLFloat,
-  GraphQLString,
-  GraphQLBoolean,
-  GraphQLID,
-} from './scalars';
-
-export {
-  // "Enum" of Type Kinds
-  TypeKind,
-  // GraphQL Types for introspection.
-  isIntrospectionType,
-  introspectionTypes,
-  __Schema,
-  __Directive,
-  __DirectiveLocation,
-  __Type,
-  __Field,
-  __InputValue,
-  __EnumValue,
-  __TypeKind,
-  // Meta-field definitions.
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-} from './introspection';
-
-export { validateSchema, assertValidSchema } from './validate';
diff --git a/node_modules/graphql/type/index.js b/node_modules/graphql/type/index.js
deleted file mode 100644
index 0cc85cb..0000000
--- a/node_modules/graphql/type/index.js
+++ /dev/null
@@ -1,503 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "isSchema", {
-  enumerable: true,
-  get: function get() {
-    return _schema.isSchema;
-  }
-});
-Object.defineProperty(exports, "assertSchema", {
-  enumerable: true,
-  get: function get() {
-    return _schema.assertSchema;
-  }
-});
-Object.defineProperty(exports, "GraphQLSchema", {
-  enumerable: true,
-  get: function get() {
-    return _schema.GraphQLSchema;
-  }
-});
-Object.defineProperty(exports, "isType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isType;
-  }
-});
-Object.defineProperty(exports, "isScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isScalarType;
-  }
-});
-Object.defineProperty(exports, "isObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isObjectType;
-  }
-});
-Object.defineProperty(exports, "isInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isInterfaceType;
-  }
-});
-Object.defineProperty(exports, "isUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isUnionType;
-  }
-});
-Object.defineProperty(exports, "isEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isEnumType;
-  }
-});
-Object.defineProperty(exports, "isInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isInputObjectType;
-  }
-});
-Object.defineProperty(exports, "isListType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isListType;
-  }
-});
-Object.defineProperty(exports, "isNonNullType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isNonNullType;
-  }
-});
-Object.defineProperty(exports, "isInputType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isInputType;
-  }
-});
-Object.defineProperty(exports, "isOutputType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isOutputType;
-  }
-});
-Object.defineProperty(exports, "isLeafType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isLeafType;
-  }
-});
-Object.defineProperty(exports, "isCompositeType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isCompositeType;
-  }
-});
-Object.defineProperty(exports, "isAbstractType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isAbstractType;
-  }
-});
-Object.defineProperty(exports, "isWrappingType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isWrappingType;
-  }
-});
-Object.defineProperty(exports, "isNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isNullableType;
-  }
-});
-Object.defineProperty(exports, "isNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isNamedType;
-  }
-});
-Object.defineProperty(exports, "isRequiredArgument", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isRequiredArgument;
-  }
-});
-Object.defineProperty(exports, "isRequiredInputField", {
-  enumerable: true,
-  get: function get() {
-    return _definition.isRequiredInputField;
-  }
-});
-Object.defineProperty(exports, "assertType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertType;
-  }
-});
-Object.defineProperty(exports, "assertScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertScalarType;
-  }
-});
-Object.defineProperty(exports, "assertObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertObjectType;
-  }
-});
-Object.defineProperty(exports, "assertInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertInterfaceType;
-  }
-});
-Object.defineProperty(exports, "assertUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertUnionType;
-  }
-});
-Object.defineProperty(exports, "assertEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertEnumType;
-  }
-});
-Object.defineProperty(exports, "assertInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertInputObjectType;
-  }
-});
-Object.defineProperty(exports, "assertListType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertListType;
-  }
-});
-Object.defineProperty(exports, "assertNonNullType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertNonNullType;
-  }
-});
-Object.defineProperty(exports, "assertInputType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertInputType;
-  }
-});
-Object.defineProperty(exports, "assertOutputType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertOutputType;
-  }
-});
-Object.defineProperty(exports, "assertLeafType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertLeafType;
-  }
-});
-Object.defineProperty(exports, "assertCompositeType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertCompositeType;
-  }
-});
-Object.defineProperty(exports, "assertAbstractType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertAbstractType;
-  }
-});
-Object.defineProperty(exports, "assertWrappingType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertWrappingType;
-  }
-});
-Object.defineProperty(exports, "assertNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertNullableType;
-  }
-});
-Object.defineProperty(exports, "assertNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.assertNamedType;
-  }
-});
-Object.defineProperty(exports, "getNullableType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.getNullableType;
-  }
-});
-Object.defineProperty(exports, "getNamedType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.getNamedType;
-  }
-});
-Object.defineProperty(exports, "GraphQLScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLScalarType;
-  }
-});
-Object.defineProperty(exports, "GraphQLObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLObjectType;
-  }
-});
-Object.defineProperty(exports, "GraphQLInterfaceType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLInterfaceType;
-  }
-});
-Object.defineProperty(exports, "GraphQLUnionType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLUnionType;
-  }
-});
-Object.defineProperty(exports, "GraphQLEnumType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLEnumType;
-  }
-});
-Object.defineProperty(exports, "GraphQLInputObjectType", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLInputObjectType;
-  }
-});
-Object.defineProperty(exports, "GraphQLList", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLList;
-  }
-});
-Object.defineProperty(exports, "GraphQLNonNull", {
-  enumerable: true,
-  get: function get() {
-    return _definition.GraphQLNonNull;
-  }
-});
-Object.defineProperty(exports, "isDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.isDirective;
-  }
-});
-Object.defineProperty(exports, "assertDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.assertDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.GraphQLDirective;
-  }
-});
-Object.defineProperty(exports, "isSpecifiedDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.isSpecifiedDirective;
-  }
-});
-Object.defineProperty(exports, "specifiedDirectives", {
-  enumerable: true,
-  get: function get() {
-    return _directives.specifiedDirectives;
-  }
-});
-Object.defineProperty(exports, "GraphQLIncludeDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.GraphQLIncludeDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLSkipDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.GraphQLSkipDirective;
-  }
-});
-Object.defineProperty(exports, "GraphQLDeprecatedDirective", {
-  enumerable: true,
-  get: function get() {
-    return _directives.GraphQLDeprecatedDirective;
-  }
-});
-Object.defineProperty(exports, "DEFAULT_DEPRECATION_REASON", {
-  enumerable: true,
-  get: function get() {
-    return _directives.DEFAULT_DEPRECATION_REASON;
-  }
-});
-Object.defineProperty(exports, "isSpecifiedScalarType", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.isSpecifiedScalarType;
-  }
-});
-Object.defineProperty(exports, "specifiedScalarTypes", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.specifiedScalarTypes;
-  }
-});
-Object.defineProperty(exports, "GraphQLInt", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.GraphQLInt;
-  }
-});
-Object.defineProperty(exports, "GraphQLFloat", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.GraphQLFloat;
-  }
-});
-Object.defineProperty(exports, "GraphQLString", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.GraphQLString;
-  }
-});
-Object.defineProperty(exports, "GraphQLBoolean", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.GraphQLBoolean;
-  }
-});
-Object.defineProperty(exports, "GraphQLID", {
-  enumerable: true,
-  get: function get() {
-    return _scalars.GraphQLID;
-  }
-});
-Object.defineProperty(exports, "isIntrospectionType", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.isIntrospectionType;
-  }
-});
-Object.defineProperty(exports, "introspectionTypes", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.introspectionTypes;
-  }
-});
-Object.defineProperty(exports, "__Schema", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__Schema;
-  }
-});
-Object.defineProperty(exports, "__Directive", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__Directive;
-  }
-});
-Object.defineProperty(exports, "__DirectiveLocation", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__DirectiveLocation;
-  }
-});
-Object.defineProperty(exports, "__Type", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__Type;
-  }
-});
-Object.defineProperty(exports, "__Field", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__Field;
-  }
-});
-Object.defineProperty(exports, "__InputValue", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__InputValue;
-  }
-});
-Object.defineProperty(exports, "__EnumValue", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__EnumValue;
-  }
-});
-Object.defineProperty(exports, "__TypeKind", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.__TypeKind;
-  }
-});
-Object.defineProperty(exports, "TypeKind", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.TypeKind;
-  }
-});
-Object.defineProperty(exports, "SchemaMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.SchemaMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "TypeMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.TypeMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "TypeNameMetaFieldDef", {
-  enumerable: true,
-  get: function get() {
-    return _introspection.TypeNameMetaFieldDef;
-  }
-});
-Object.defineProperty(exports, "validateSchema", {
-  enumerable: true,
-  get: function get() {
-    return _validate.validateSchema;
-  }
-});
-Object.defineProperty(exports, "assertValidSchema", {
-  enumerable: true,
-  get: function get() {
-    return _validate.assertValidSchema;
-  }
-});
-
-var _schema = require("./schema");
-
-var _definition = require("./definition");
-
-var _directives = require("./directives");
-
-var _scalars = require("./scalars");
-
-var _introspection = require("./introspection");
-
-var _validate = require("./validate");
diff --git a/node_modules/graphql/type/index.js.flow b/node_modules/graphql/type/index.js.flow
deleted file mode 100644
index ec87a1c..0000000
--- a/node_modules/graphql/type/index.js.flow
+++ /dev/null
@@ -1,163 +0,0 @@
-// @flow strict
-
-export type { Path as ResponsePath } from '../jsutils/Path';
-
-export {
-  // Predicate
-  isSchema,
-  // Assertion
-  assertSchema,
-  // GraphQL Schema definition
-  GraphQLSchema,
-} from './schema';
-export type { GraphQLSchemaConfig } from './schema';
-
-export {
-  // Predicates
-  isType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isInputType,
-  isOutputType,
-  isLeafType,
-  isCompositeType,
-  isAbstractType,
-  isWrappingType,
-  isNullableType,
-  isNamedType,
-  isRequiredArgument,
-  isRequiredInputField,
-  // Assertions
-  assertType,
-  assertScalarType,
-  assertObjectType,
-  assertInterfaceType,
-  assertUnionType,
-  assertEnumType,
-  assertInputObjectType,
-  assertListType,
-  assertNonNullType,
-  assertInputType,
-  assertOutputType,
-  assertLeafType,
-  assertCompositeType,
-  assertAbstractType,
-  assertWrappingType,
-  assertNullableType,
-  assertNamedType,
-  // Un-modifiers
-  getNullableType,
-  getNamedType,
-  // Definitions
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  // Type Wrappers
-  GraphQLList,
-  GraphQLNonNull,
-} from './definition';
-
-export {
-  // Predicate
-  isDirective,
-  // Assertion
-  assertDirective,
-  // Directives Definition
-  GraphQLDirective,
-  // Built-in Directives defined by the Spec
-  isSpecifiedDirective,
-  specifiedDirectives,
-  GraphQLIncludeDirective,
-  GraphQLSkipDirective,
-  GraphQLDeprecatedDirective,
-  // Constant Deprecation Reason
-  DEFAULT_DEPRECATION_REASON,
-} from './directives';
-
-export type { GraphQLDirectiveConfig } from './directives';
-
-// Common built-in scalar instances.
-export {
-  // Predicate
-  isSpecifiedScalarType,
-  // Standard GraphQL Scalars
-  specifiedScalarTypes,
-  GraphQLInt,
-  GraphQLFloat,
-  GraphQLString,
-  GraphQLBoolean,
-  GraphQLID,
-} from './scalars';
-
-export {
-  // Predicate
-  isIntrospectionType,
-  // GraphQL Types for introspection.
-  introspectionTypes,
-  __Schema,
-  __Directive,
-  __DirectiveLocation,
-  __Type,
-  __Field,
-  __InputValue,
-  __EnumValue,
-  __TypeKind,
-  // "Enum" of Type Kinds
-  TypeKind,
-  // Meta-field definitions.
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-} from './introspection';
-
-export type {
-  GraphQLType,
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLLeafType,
-  GraphQLCompositeType,
-  GraphQLAbstractType,
-  GraphQLWrappingType,
-  GraphQLNullableType,
-  GraphQLNamedType,
-  Thunk,
-  GraphQLArgument,
-  GraphQLArgumentConfig,
-  GraphQLEnumTypeConfig,
-  GraphQLEnumValue,
-  GraphQLEnumValueConfig,
-  GraphQLEnumValueConfigMap,
-  GraphQLField,
-  GraphQLFieldConfig,
-  GraphQLFieldConfigArgumentMap,
-  GraphQLFieldConfigMap,
-  GraphQLFieldMap,
-  GraphQLFieldResolver,
-  GraphQLInputField,
-  GraphQLInputFieldConfig,
-  GraphQLInputFieldConfigMap,
-  GraphQLInputFieldMap,
-  GraphQLInputObjectTypeConfig,
-  GraphQLInterfaceTypeConfig,
-  GraphQLIsTypeOfFn,
-  GraphQLObjectTypeConfig,
-  GraphQLResolveInfo,
-  GraphQLScalarTypeConfig,
-  GraphQLTypeResolver,
-  GraphQLUnionTypeConfig,
-  GraphQLScalarSerializer,
-  GraphQLScalarValueParser,
-  GraphQLScalarLiteralParser,
-} from './definition';
-
-// Validate GraphQL schema.
-export { validateSchema, assertValidSchema } from './validate';
diff --git a/node_modules/graphql/type/index.mjs b/node_modules/graphql/type/index.mjs
deleted file mode 100644
index 0004f08..0000000
--- a/node_modules/graphql/type/index.mjs
+++ /dev/null
@@ -1,27 +0,0 @@
-export { // Predicate
-isSchema // Assertion
-, assertSchema // GraphQL Schema definition
-, GraphQLSchema } from "./schema.mjs";
-export { // Predicates
-isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField // Assertions
-, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType // Un-modifiers
-, getNullableType, getNamedType // Definitions
-, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType // Type Wrappers
-, GraphQLList, GraphQLNonNull } from "./definition.mjs";
-export { // Predicate
-isDirective // Assertion
-, assertDirective // Directives Definition
-, GraphQLDirective // Built-in Directives defined by the Spec
-, isSpecifiedDirective, specifiedDirectives, GraphQLIncludeDirective, GraphQLSkipDirective, GraphQLDeprecatedDirective // Constant Deprecation Reason
-, DEFAULT_DEPRECATION_REASON } from "./directives.mjs";
-// Common built-in scalar instances.
-export { // Predicate
-isSpecifiedScalarType // Standard GraphQL Scalars
-, specifiedScalarTypes, GraphQLInt, GraphQLFloat, GraphQLString, GraphQLBoolean, GraphQLID } from "./scalars.mjs";
-export { // Predicate
-isIntrospectionType // GraphQL Types for introspection.
-, introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind // "Enum" of Type Kinds
-, TypeKind // Meta-field definitions.
-, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from "./introspection.mjs";
-// Validate GraphQL schema.
-export { validateSchema, assertValidSchema } from "./validate.mjs";
diff --git a/node_modules/graphql/type/introspection.d.ts b/node_modules/graphql/type/introspection.d.ts
deleted file mode 100644
index 34cefa7..0000000
--- a/node_modules/graphql/type/introspection.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import {
-  GraphQLObjectType,
-  GraphQLField,
-  GraphQLEnumType,
-  GraphQLNamedType,
-} from './definition';
-
-export const __Schema: GraphQLObjectType;
-export const __Directive: GraphQLObjectType;
-export const __DirectiveLocation: GraphQLEnumType;
-export const __Type: GraphQLObjectType;
-export const __Field: GraphQLObjectType;
-export const __InputValue: GraphQLObjectType;
-export const __EnumValue: GraphQLObjectType;
-
-export const TypeKind: {
-  SCALAR: 'SCALAR';
-  OBJECT: 'OBJECT';
-  INTERFACE: 'INTERFACE';
-  UNION: 'UNION';
-  ENUM: 'ENUM';
-  INPUT_OBJECT: 'INPUT_OBJECT';
-  LIST: 'LIST';
-  NON_NULL: 'NON_NULL';
-};
-
-export const __TypeKind: GraphQLEnumType;
-
-/**
- * Note that these are GraphQLField and not GraphQLFieldConfig,
- * so the format for args is different.
- */
-
-export const SchemaMetaFieldDef: GraphQLField<any, any>;
-export const TypeMetaFieldDef: GraphQLField<any, any>;
-export const TypeNameMetaFieldDef: GraphQLField<any, any>;
-
-export const introspectionTypes: ReadonlyArray<GraphQLNamedType>;
-
-export function isIntrospectionType(type: GraphQLNamedType): boolean;
diff --git a/node_modules/graphql/type/introspection.js b/node_modules/graphql/type/introspection.js
deleted file mode 100644
index 72d427f..0000000
--- a/node_modules/graphql/type/introspection.js
+++ /dev/null
@@ -1,589 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isIntrospectionType = isIntrospectionType;
-exports.introspectionTypes = exports.TypeNameMetaFieldDef = exports.TypeMetaFieldDef = exports.SchemaMetaFieldDef = exports.__TypeKind = exports.TypeKind = exports.__EnumValue = exports.__InputValue = exports.__Field = exports.__Type = exports.__DirectiveLocation = exports.__Directive = exports.__Schema = void 0;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _printer = require("../language/printer");
-
-var _directiveLocation = require("../language/directiveLocation");
-
-var _astFromValue = require("../utilities/astFromValue");
-
-var _scalars = require("./scalars");
-
-var _definition = require("./definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// FIXME
-
-/* eslint-disable import/no-cycle */
-var __Schema = new _definition.GraphQLObjectType({
-  name: '__Schema',
-  description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',
-  fields: function fields() {
-    return {
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(schema) {
-          return schema.description;
-        }
-      },
-      types: {
-        description: 'A list of all types supported by this server.',
-        type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type))),
-        resolve: function resolve(schema) {
-          return (0, _objectValues.default)(schema.getTypeMap());
-        }
-      },
-      queryType: {
-        description: 'The type that query operations will be rooted at.',
-        type: (0, _definition.GraphQLNonNull)(__Type),
-        resolve: function resolve(schema) {
-          return schema.getQueryType();
-        }
-      },
-      mutationType: {
-        description: 'If this server supports mutation, the type that mutation operations will be rooted at.',
-        type: __Type,
-        resolve: function resolve(schema) {
-          return schema.getMutationType();
-        }
-      },
-      subscriptionType: {
-        description: 'If this server support subscription, the type that subscription operations will be rooted at.',
-        type: __Type,
-        resolve: function resolve(schema) {
-          return schema.getSubscriptionType();
-        }
-      },
-      directives: {
-        description: 'A list of all directives supported by this server.',
-        type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Directive))),
-        resolve: function resolve(schema) {
-          return schema.getDirectives();
-        }
-      }
-    };
-  }
-});
-
-exports.__Schema = __Schema;
-
-var __Directive = new _definition.GraphQLObjectType({
-  name: '__Directive',
-  description: "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",
-  fields: function fields() {
-    return {
-      name: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-        resolve: function resolve(directive) {
-          return directive.name;
-        }
-      },
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(directive) {
-          return directive.description;
-        }
-      },
-      isRepeatable: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
-        resolve: function resolve(directive) {
-          return directive.isRepeatable;
-        }
-      },
-      locations: {
-        type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__DirectiveLocation))),
-        resolve: function resolve(directive) {
-          return directive.locations;
-        }
-      },
-      args: {
-        type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue))),
-        resolve: function resolve(directive) {
-          return directive.args;
-        }
-      }
-    };
-  }
-});
-
-exports.__Directive = __Directive;
-
-var __DirectiveLocation = new _definition.GraphQLEnumType({
-  name: '__DirectiveLocation',
-  description: 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',
-  values: {
-    QUERY: {
-      value: _directiveLocation.DirectiveLocation.QUERY,
-      description: 'Location adjacent to a query operation.'
-    },
-    MUTATION: {
-      value: _directiveLocation.DirectiveLocation.MUTATION,
-      description: 'Location adjacent to a mutation operation.'
-    },
-    SUBSCRIPTION: {
-      value: _directiveLocation.DirectiveLocation.SUBSCRIPTION,
-      description: 'Location adjacent to a subscription operation.'
-    },
-    FIELD: {
-      value: _directiveLocation.DirectiveLocation.FIELD,
-      description: 'Location adjacent to a field.'
-    },
-    FRAGMENT_DEFINITION: {
-      value: _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION,
-      description: 'Location adjacent to a fragment definition.'
-    },
-    FRAGMENT_SPREAD: {
-      value: _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD,
-      description: 'Location adjacent to a fragment spread.'
-    },
-    INLINE_FRAGMENT: {
-      value: _directiveLocation.DirectiveLocation.INLINE_FRAGMENT,
-      description: 'Location adjacent to an inline fragment.'
-    },
-    VARIABLE_DEFINITION: {
-      value: _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION,
-      description: 'Location adjacent to a variable definition.'
-    },
-    SCHEMA: {
-      value: _directiveLocation.DirectiveLocation.SCHEMA,
-      description: 'Location adjacent to a schema definition.'
-    },
-    SCALAR: {
-      value: _directiveLocation.DirectiveLocation.SCALAR,
-      description: 'Location adjacent to a scalar definition.'
-    },
-    OBJECT: {
-      value: _directiveLocation.DirectiveLocation.OBJECT,
-      description: 'Location adjacent to an object type definition.'
-    },
-    FIELD_DEFINITION: {
-      value: _directiveLocation.DirectiveLocation.FIELD_DEFINITION,
-      description: 'Location adjacent to a field definition.'
-    },
-    ARGUMENT_DEFINITION: {
-      value: _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION,
-      description: 'Location adjacent to an argument definition.'
-    },
-    INTERFACE: {
-      value: _directiveLocation.DirectiveLocation.INTERFACE,
-      description: 'Location adjacent to an interface definition.'
-    },
-    UNION: {
-      value: _directiveLocation.DirectiveLocation.UNION,
-      description: 'Location adjacent to a union definition.'
-    },
-    ENUM: {
-      value: _directiveLocation.DirectiveLocation.ENUM,
-      description: 'Location adjacent to an enum definition.'
-    },
-    ENUM_VALUE: {
-      value: _directiveLocation.DirectiveLocation.ENUM_VALUE,
-      description: 'Location adjacent to an enum value definition.'
-    },
-    INPUT_OBJECT: {
-      value: _directiveLocation.DirectiveLocation.INPUT_OBJECT,
-      description: 'Location adjacent to an input object type definition.'
-    },
-    INPUT_FIELD_DEFINITION: {
-      value: _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION,
-      description: 'Location adjacent to an input object field definition.'
-    }
-  }
-});
-
-exports.__DirectiveLocation = __DirectiveLocation;
-
-var __Type = new _definition.GraphQLObjectType({
-  name: '__Type',
-  description: 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',
-  fields: function fields() {
-    return {
-      kind: {
-        type: (0, _definition.GraphQLNonNull)(__TypeKind),
-        resolve: function resolve(type) {
-          if ((0, _definition.isScalarType)(type)) {
-            return TypeKind.SCALAR;
-          }
-
-          if ((0, _definition.isObjectType)(type)) {
-            return TypeKind.OBJECT;
-          }
-
-          if ((0, _definition.isInterfaceType)(type)) {
-            return TypeKind.INTERFACE;
-          }
-
-          if ((0, _definition.isUnionType)(type)) {
-            return TypeKind.UNION;
-          }
-
-          if ((0, _definition.isEnumType)(type)) {
-            return TypeKind.ENUM;
-          }
-
-          if ((0, _definition.isInputObjectType)(type)) {
-            return TypeKind.INPUT_OBJECT;
-          }
-
-          if ((0, _definition.isListType)(type)) {
-            return TypeKind.LIST;
-          }
-
-          /* istanbul ignore else */
-          if ((0, _definition.isNonNullType)(type)) {
-            return TypeKind.NON_NULL;
-          } // Not reachable. All possible types have been considered.
-
-
-          /* istanbul ignore next */
-          (0, _invariant.default)(false, "Unexpected type: \"".concat((0, _inspect.default)(type), "\"."));
-        }
-      },
-      name: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(type) {
-          return type.name !== undefined ? type.name : undefined;
-        }
-      },
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(type) {
-          return type.description !== undefined ? type.description : undefined;
-        }
-      },
-      fields: {
-        type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Field)),
-        args: {
-          includeDeprecated: {
-            type: _scalars.GraphQLBoolean,
-            defaultValue: false
-          }
-        },
-        resolve: function resolve(type, _ref) {
-          var includeDeprecated = _ref.includeDeprecated;
-
-          if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
-            var fields = (0, _objectValues.default)(type.getFields());
-
-            if (!includeDeprecated) {
-              fields = fields.filter(function (field) {
-                return !field.isDeprecated;
-              });
-            }
-
-            return fields;
-          }
-
-          return null;
-        }
-      },
-      interfaces: {
-        type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type)),
-        resolve: function resolve(type) {
-          if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
-            return type.getInterfaces();
-          }
-        }
-      },
-      possibleTypes: {
-        type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__Type)),
-        resolve: function resolve(type, _args, _context, _ref2) {
-          var schema = _ref2.schema;
-
-          if ((0, _definition.isAbstractType)(type)) {
-            return schema.getPossibleTypes(type);
-          }
-        }
-      },
-      enumValues: {
-        type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__EnumValue)),
-        args: {
-          includeDeprecated: {
-            type: _scalars.GraphQLBoolean,
-            defaultValue: false
-          }
-        },
-        resolve: function resolve(type, _ref3) {
-          var includeDeprecated = _ref3.includeDeprecated;
-
-          if ((0, _definition.isEnumType)(type)) {
-            var values = type.getValues();
-
-            if (!includeDeprecated) {
-              values = values.filter(function (value) {
-                return !value.isDeprecated;
-              });
-            }
-
-            return values;
-          }
-        }
-      },
-      inputFields: {
-        type: (0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue)),
-        resolve: function resolve(type) {
-          if ((0, _definition.isInputObjectType)(type)) {
-            return (0, _objectValues.default)(type.getFields());
-          }
-        }
-      },
-      ofType: {
-        type: __Type,
-        resolve: function resolve(type) {
-          return type.ofType !== undefined ? type.ofType : undefined;
-        }
-      }
-    };
-  }
-});
-
-exports.__Type = __Type;
-
-var __Field = new _definition.GraphQLObjectType({
-  name: '__Field',
-  description: 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',
-  fields: function fields() {
-    return {
-      name: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-        resolve: function resolve(field) {
-          return field.name;
-        }
-      },
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(field) {
-          return field.description;
-        }
-      },
-      args: {
-        type: (0, _definition.GraphQLNonNull)((0, _definition.GraphQLList)((0, _definition.GraphQLNonNull)(__InputValue))),
-        resolve: function resolve(field) {
-          return field.args;
-        }
-      },
-      type: {
-        type: (0, _definition.GraphQLNonNull)(__Type),
-        resolve: function resolve(field) {
-          return field.type;
-        }
-      },
-      isDeprecated: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
-        resolve: function resolve(field) {
-          return field.isDeprecated;
-        }
-      },
-      deprecationReason: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(field) {
-          return field.deprecationReason;
-        }
-      }
-    };
-  }
-});
-
-exports.__Field = __Field;
-
-var __InputValue = new _definition.GraphQLObjectType({
-  name: '__InputValue',
-  description: 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',
-  fields: function fields() {
-    return {
-      name: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-        resolve: function resolve(inputValue) {
-          return inputValue.name;
-        }
-      },
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(inputValue) {
-          return inputValue.description;
-        }
-      },
-      type: {
-        type: (0, _definition.GraphQLNonNull)(__Type),
-        resolve: function resolve(inputValue) {
-          return inputValue.type;
-        }
-      },
-      defaultValue: {
-        type: _scalars.GraphQLString,
-        description: 'A GraphQL-formatted string representing the default value for this input value.',
-        resolve: function resolve(inputValue) {
-          var type = inputValue.type,
-              defaultValue = inputValue.defaultValue;
-          var valueAST = (0, _astFromValue.astFromValue)(defaultValue, type);
-          return valueAST ? (0, _printer.print)(valueAST) : null;
-        }
-      }
-    };
-  }
-});
-
-exports.__InputValue = __InputValue;
-
-var __EnumValue = new _definition.GraphQLObjectType({
-  name: '__EnumValue',
-  description: 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',
-  fields: function fields() {
-    return {
-      name: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-        resolve: function resolve(enumValue) {
-          return enumValue.name;
-        }
-      },
-      description: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(enumValue) {
-          return enumValue.description;
-        }
-      },
-      isDeprecated: {
-        type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLBoolean),
-        resolve: function resolve(enumValue) {
-          return enumValue.isDeprecated;
-        }
-      },
-      deprecationReason: {
-        type: _scalars.GraphQLString,
-        resolve: function resolve(enumValue) {
-          return enumValue.deprecationReason;
-        }
-      }
-    };
-  }
-});
-
-exports.__EnumValue = __EnumValue;
-var TypeKind = Object.freeze({
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  LIST: 'LIST',
-  NON_NULL: 'NON_NULL'
-});
-exports.TypeKind = TypeKind;
-
-var __TypeKind = new _definition.GraphQLEnumType({
-  name: '__TypeKind',
-  description: 'An enum describing what kind of type a given `__Type` is.',
-  values: {
-    SCALAR: {
-      value: TypeKind.SCALAR,
-      description: 'Indicates this type is a scalar.'
-    },
-    OBJECT: {
-      value: TypeKind.OBJECT,
-      description: 'Indicates this type is an object. `fields` and `interfaces` are valid fields.'
-    },
-    INTERFACE: {
-      value: TypeKind.INTERFACE,
-      description: 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.'
-    },
-    UNION: {
-      value: TypeKind.UNION,
-      description: 'Indicates this type is a union. `possibleTypes` is a valid field.'
-    },
-    ENUM: {
-      value: TypeKind.ENUM,
-      description: 'Indicates this type is an enum. `enumValues` is a valid field.'
-    },
-    INPUT_OBJECT: {
-      value: TypeKind.INPUT_OBJECT,
-      description: 'Indicates this type is an input object. `inputFields` is a valid field.'
-    },
-    LIST: {
-      value: TypeKind.LIST,
-      description: 'Indicates this type is a list. `ofType` is a valid field.'
-    },
-    NON_NULL: {
-      value: TypeKind.NON_NULL,
-      description: 'Indicates this type is a non-null. `ofType` is a valid field.'
-    }
-  }
-});
-/**
- * Note that these are GraphQLField and not GraphQLFieldConfig,
- * so the format for args is different.
- */
-
-
-exports.__TypeKind = __TypeKind;
-var SchemaMetaFieldDef = {
-  name: '__schema',
-  type: (0, _definition.GraphQLNonNull)(__Schema),
-  description: 'Access the current type schema of this server.',
-  args: [],
-  resolve: function resolve(_source, _args, _context, _ref4) {
-    var schema = _ref4.schema;
-    return schema;
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-exports.SchemaMetaFieldDef = SchemaMetaFieldDef;
-var TypeMetaFieldDef = {
-  name: '__type',
-  type: __Type,
-  description: 'Request the type information of a single type.',
-  args: [{
-    name: 'name',
-    description: undefined,
-    type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-    defaultValue: undefined,
-    extensions: undefined,
-    astNode: undefined
-  }],
-  resolve: function resolve(_source, _ref5, _context, _ref6) {
-    var name = _ref5.name;
-    var schema = _ref6.schema;
-    return schema.getType(name);
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-exports.TypeMetaFieldDef = TypeMetaFieldDef;
-var TypeNameMetaFieldDef = {
-  name: '__typename',
-  type: (0, _definition.GraphQLNonNull)(_scalars.GraphQLString),
-  description: 'The name of the current Object type at runtime.',
-  args: [],
-  resolve: function resolve(_source, _args, _context, _ref7) {
-    var parentType = _ref7.parentType;
-    return parentType.name;
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-exports.TypeNameMetaFieldDef = TypeNameMetaFieldDef;
-var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]);
-exports.introspectionTypes = introspectionTypes;
-
-function isIntrospectionType(type) {
-  return introspectionTypes.some(function (_ref8) {
-    var name = _ref8.name;
-    return type.name === name;
-  });
-}
diff --git a/node_modules/graphql/type/introspection.js.flow b/node_modules/graphql/type/introspection.js.flow
deleted file mode 100644
index 0436854..0000000
--- a/node_modules/graphql/type/introspection.js.flow
+++ /dev/null
@@ -1,509 +0,0 @@
-// @flow strict
-
-// FIXME
-/* eslint-disable import/no-cycle */
-
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-
-import { print } from '../language/printer';
-import { DirectiveLocation } from '../language/directiveLocation';
-import { astFromValue } from '../utilities/astFromValue';
-
-import { type GraphQLSchema } from './schema';
-import { type GraphQLDirective } from './directives';
-import { GraphQLString, GraphQLBoolean } from './scalars';
-import {
-  type GraphQLType,
-  type GraphQLNamedType,
-  type GraphQLInputField,
-  type GraphQLEnumValue,
-  type GraphQLField,
-  type GraphQLFieldConfigMap,
-  GraphQLObjectType,
-  GraphQLEnumType,
-  GraphQLList,
-  GraphQLNonNull,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isAbstractType,
-} from './definition';
-
-export const __Schema = new GraphQLObjectType({
-  name: '__Schema',
-  description:
-    'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',
-  fields: () =>
-    ({
-      description: {
-        type: GraphQLString,
-        resolve: schema => schema.description,
-      },
-      types: {
-        description: 'A list of all types supported by this server.',
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Type))),
-        resolve(schema) {
-          return objectValues(schema.getTypeMap());
-        },
-      },
-      queryType: {
-        description: 'The type that query operations will be rooted at.',
-        type: GraphQLNonNull(__Type),
-        resolve: schema => schema.getQueryType(),
-      },
-      mutationType: {
-        description:
-          'If this server supports mutation, the type that mutation operations will be rooted at.',
-        type: __Type,
-        resolve: schema => schema.getMutationType(),
-      },
-      subscriptionType: {
-        description:
-          'If this server support subscription, the type that subscription operations will be rooted at.',
-        type: __Type,
-        resolve: schema => schema.getSubscriptionType(),
-      },
-      directives: {
-        description: 'A list of all directives supported by this server.',
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Directive))),
-        resolve: schema => schema.getDirectives(),
-      },
-    }: GraphQLFieldConfigMap<GraphQLSchema, mixed>),
-});
-
-export const __Directive = new GraphQLObjectType({
-  name: '__Directive',
-  description:
-    "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",
-  fields: () =>
-    ({
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: directive => directive.name,
-      },
-      description: {
-        type: GraphQLString,
-        resolve: directive => directive.description,
-      },
-      isRepeatable: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: directive => directive.isRepeatable,
-      },
-      locations: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__DirectiveLocation))),
-        resolve: directive => directive.locations,
-      },
-      args: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),
-        resolve: directive => directive.args,
-      },
-    }: GraphQLFieldConfigMap<GraphQLDirective, mixed>),
-});
-
-export const __DirectiveLocation = new GraphQLEnumType({
-  name: '__DirectiveLocation',
-  description:
-    'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',
-  values: {
-    QUERY: {
-      value: DirectiveLocation.QUERY,
-      description: 'Location adjacent to a query operation.',
-    },
-    MUTATION: {
-      value: DirectiveLocation.MUTATION,
-      description: 'Location adjacent to a mutation operation.',
-    },
-    SUBSCRIPTION: {
-      value: DirectiveLocation.SUBSCRIPTION,
-      description: 'Location adjacent to a subscription operation.',
-    },
-    FIELD: {
-      value: DirectiveLocation.FIELD,
-      description: 'Location adjacent to a field.',
-    },
-    FRAGMENT_DEFINITION: {
-      value: DirectiveLocation.FRAGMENT_DEFINITION,
-      description: 'Location adjacent to a fragment definition.',
-    },
-    FRAGMENT_SPREAD: {
-      value: DirectiveLocation.FRAGMENT_SPREAD,
-      description: 'Location adjacent to a fragment spread.',
-    },
-    INLINE_FRAGMENT: {
-      value: DirectiveLocation.INLINE_FRAGMENT,
-      description: 'Location adjacent to an inline fragment.',
-    },
-    VARIABLE_DEFINITION: {
-      value: DirectiveLocation.VARIABLE_DEFINITION,
-      description: 'Location adjacent to a variable definition.',
-    },
-    SCHEMA: {
-      value: DirectiveLocation.SCHEMA,
-      description: 'Location adjacent to a schema definition.',
-    },
-    SCALAR: {
-      value: DirectiveLocation.SCALAR,
-      description: 'Location adjacent to a scalar definition.',
-    },
-    OBJECT: {
-      value: DirectiveLocation.OBJECT,
-      description: 'Location adjacent to an object type definition.',
-    },
-    FIELD_DEFINITION: {
-      value: DirectiveLocation.FIELD_DEFINITION,
-      description: 'Location adjacent to a field definition.',
-    },
-    ARGUMENT_DEFINITION: {
-      value: DirectiveLocation.ARGUMENT_DEFINITION,
-      description: 'Location adjacent to an argument definition.',
-    },
-    INTERFACE: {
-      value: DirectiveLocation.INTERFACE,
-      description: 'Location adjacent to an interface definition.',
-    },
-    UNION: {
-      value: DirectiveLocation.UNION,
-      description: 'Location adjacent to a union definition.',
-    },
-    ENUM: {
-      value: DirectiveLocation.ENUM,
-      description: 'Location adjacent to an enum definition.',
-    },
-    ENUM_VALUE: {
-      value: DirectiveLocation.ENUM_VALUE,
-      description: 'Location adjacent to an enum value definition.',
-    },
-    INPUT_OBJECT: {
-      value: DirectiveLocation.INPUT_OBJECT,
-      description: 'Location adjacent to an input object type definition.',
-    },
-    INPUT_FIELD_DEFINITION: {
-      value: DirectiveLocation.INPUT_FIELD_DEFINITION,
-      description: 'Location adjacent to an input object field definition.',
-    },
-  },
-});
-
-export const __Type = new GraphQLObjectType({
-  name: '__Type',
-  description:
-    'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',
-  fields: () =>
-    ({
-      kind: {
-        type: GraphQLNonNull(__TypeKind),
-        resolve(type) {
-          if (isScalarType(type)) {
-            return TypeKind.SCALAR;
-          }
-          if (isObjectType(type)) {
-            return TypeKind.OBJECT;
-          }
-          if (isInterfaceType(type)) {
-            return TypeKind.INTERFACE;
-          }
-          if (isUnionType(type)) {
-            return TypeKind.UNION;
-          }
-          if (isEnumType(type)) {
-            return TypeKind.ENUM;
-          }
-          if (isInputObjectType(type)) {
-            return TypeKind.INPUT_OBJECT;
-          }
-          if (isListType(type)) {
-            return TypeKind.LIST;
-          }
-          if (isNonNullType(type)) {
-            return TypeKind.NON_NULL;
-          }
-
-          // Not reachable. All possible types have been considered.
-          invariant(false, `Unexpected type: "${inspect((type: empty))}".`);
-        },
-      },
-      name: {
-        type: GraphQLString,
-        resolve: type => (type.name !== undefined ? type.name : undefined),
-      },
-      description: {
-        type: GraphQLString,
-        resolve: type =>
-          type.description !== undefined ? type.description : undefined,
-      },
-      fields: {
-        type: GraphQLList(GraphQLNonNull(__Field)),
-        args: {
-          includeDeprecated: { type: GraphQLBoolean, defaultValue: false },
-        },
-        resolve(type, { includeDeprecated }) {
-          if (isObjectType(type) || isInterfaceType(type)) {
-            let fields = objectValues(type.getFields());
-            if (!includeDeprecated) {
-              fields = fields.filter(field => !field.isDeprecated);
-            }
-            return fields;
-          }
-          return null;
-        },
-      },
-      interfaces: {
-        type: GraphQLList(GraphQLNonNull(__Type)),
-        resolve(type) {
-          if (isObjectType(type) || isInterfaceType(type)) {
-            return type.getInterfaces();
-          }
-        },
-      },
-      possibleTypes: {
-        type: GraphQLList(GraphQLNonNull(__Type)),
-        resolve(type, _args, _context, { schema }) {
-          if (isAbstractType(type)) {
-            return schema.getPossibleTypes(type);
-          }
-        },
-      },
-      enumValues: {
-        type: GraphQLList(GraphQLNonNull(__EnumValue)),
-        args: {
-          includeDeprecated: { type: GraphQLBoolean, defaultValue: false },
-        },
-        resolve(type, { includeDeprecated }) {
-          if (isEnumType(type)) {
-            let values = type.getValues();
-            if (!includeDeprecated) {
-              values = values.filter(value => !value.isDeprecated);
-            }
-            return values;
-          }
-        },
-      },
-      inputFields: {
-        type: GraphQLList(GraphQLNonNull(__InputValue)),
-        resolve(type) {
-          if (isInputObjectType(type)) {
-            return objectValues(type.getFields());
-          }
-        },
-      },
-      ofType: {
-        type: __Type,
-        resolve: type => (type.ofType !== undefined ? type.ofType : undefined),
-      },
-    }: GraphQLFieldConfigMap<GraphQLType, mixed>),
-});
-
-export const __Field = new GraphQLObjectType({
-  name: '__Field',
-  description:
-    'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',
-  fields: () =>
-    ({
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: field => field.name,
-      },
-      description: {
-        type: GraphQLString,
-        resolve: field => field.description,
-      },
-      args: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),
-        resolve: field => field.args,
-      },
-      type: {
-        type: GraphQLNonNull(__Type),
-        resolve: field => field.type,
-      },
-      isDeprecated: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: field => field.isDeprecated,
-      },
-      deprecationReason: {
-        type: GraphQLString,
-        resolve: field => field.deprecationReason,
-      },
-    }: GraphQLFieldConfigMap<GraphQLField<mixed, mixed>, mixed>),
-});
-
-export const __InputValue = new GraphQLObjectType({
-  name: '__InputValue',
-  description:
-    'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',
-  fields: () =>
-    ({
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: inputValue => inputValue.name,
-      },
-      description: {
-        type: GraphQLString,
-        resolve: inputValue => inputValue.description,
-      },
-      type: {
-        type: GraphQLNonNull(__Type),
-        resolve: inputValue => inputValue.type,
-      },
-      defaultValue: {
-        type: GraphQLString,
-        description:
-          'A GraphQL-formatted string representing the default value for this input value.',
-        resolve(inputValue) {
-          const { type, defaultValue } = inputValue;
-          const valueAST = astFromValue(defaultValue, type);
-          return valueAST ? print(valueAST) : null;
-        },
-      },
-    }: GraphQLFieldConfigMap<GraphQLInputField, mixed>),
-});
-
-export const __EnumValue = new GraphQLObjectType({
-  name: '__EnumValue',
-  description:
-    'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',
-  fields: () =>
-    ({
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: enumValue => enumValue.name,
-      },
-      description: {
-        type: GraphQLString,
-        resolve: enumValue => enumValue.description,
-      },
-      isDeprecated: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: enumValue => enumValue.isDeprecated,
-      },
-      deprecationReason: {
-        type: GraphQLString,
-        resolve: enumValue => enumValue.deprecationReason,
-      },
-    }: GraphQLFieldConfigMap<GraphQLEnumValue, mixed>),
-});
-
-export const TypeKind = Object.freeze({
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  LIST: 'LIST',
-  NON_NULL: 'NON_NULL',
-});
-
-export const __TypeKind = new GraphQLEnumType({
-  name: '__TypeKind',
-  description: 'An enum describing what kind of type a given `__Type` is.',
-  values: {
-    SCALAR: {
-      value: TypeKind.SCALAR,
-      description: 'Indicates this type is a scalar.',
-    },
-    OBJECT: {
-      value: TypeKind.OBJECT,
-      description:
-        'Indicates this type is an object. `fields` and `interfaces` are valid fields.',
-    },
-    INTERFACE: {
-      value: TypeKind.INTERFACE,
-      description:
-        'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.',
-    },
-    UNION: {
-      value: TypeKind.UNION,
-      description:
-        'Indicates this type is a union. `possibleTypes` is a valid field.',
-    },
-    ENUM: {
-      value: TypeKind.ENUM,
-      description:
-        'Indicates this type is an enum. `enumValues` is a valid field.',
-    },
-    INPUT_OBJECT: {
-      value: TypeKind.INPUT_OBJECT,
-      description:
-        'Indicates this type is an input object. `inputFields` is a valid field.',
-    },
-    LIST: {
-      value: TypeKind.LIST,
-      description: 'Indicates this type is a list. `ofType` is a valid field.',
-    },
-    NON_NULL: {
-      value: TypeKind.NON_NULL,
-      description:
-        'Indicates this type is a non-null. `ofType` is a valid field.',
-    },
-  },
-});
-
-/**
- * Note that these are GraphQLField and not GraphQLFieldConfig,
- * so the format for args is different.
- */
-
-export const SchemaMetaFieldDef: GraphQLField<mixed, mixed> = {
-  name: '__schema',
-  type: GraphQLNonNull(__Schema),
-  description: 'Access the current type schema of this server.',
-  args: [],
-  resolve: (_source, _args, _context, { schema }) => schema,
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined,
-};
-
-export const TypeMetaFieldDef: GraphQLField<mixed, mixed> = {
-  name: '__type',
-  type: __Type,
-  description: 'Request the type information of a single type.',
-  args: [
-    {
-      name: 'name',
-      description: undefined,
-      type: GraphQLNonNull(GraphQLString),
-      defaultValue: undefined,
-      extensions: undefined,
-      astNode: undefined,
-    },
-  ],
-  resolve: (_source, { name }, _context, { schema }) => schema.getType(name),
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined,
-};
-
-export const TypeNameMetaFieldDef: GraphQLField<mixed, mixed> = {
-  name: '__typename',
-  type: GraphQLNonNull(GraphQLString),
-  description: 'The name of the current Object type at runtime.',
-  args: [],
-  resolve: (_source, _args, _context, { parentType }) => parentType.name,
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined,
-};
-
-export const introspectionTypes = Object.freeze([
-  __Schema,
-  __Directive,
-  __DirectiveLocation,
-  __Type,
-  __Field,
-  __InputValue,
-  __EnumValue,
-  __TypeKind,
-]);
-
-export function isIntrospectionType(type: GraphQLNamedType): boolean %checks {
-  return introspectionTypes.some(({ name }) => type.name === name);
-}
diff --git a/node_modules/graphql/type/introspection.mjs b/node_modules/graphql/type/introspection.mjs
deleted file mode 100644
index 5a46ce0..0000000
--- a/node_modules/graphql/type/introspection.mjs
+++ /dev/null
@@ -1,542 +0,0 @@
-// FIXME
-
-/* eslint-disable import/no-cycle */
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import { print } from "../language/printer.mjs";
-import { DirectiveLocation } from "../language/directiveLocation.mjs";
-import { astFromValue } from "../utilities/astFromValue.mjs";
-import { GraphQLString, GraphQLBoolean } from "./scalars.mjs";
-import { GraphQLObjectType, GraphQLEnumType, GraphQLList, GraphQLNonNull, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isAbstractType } from "./definition.mjs";
-export var __Schema = new GraphQLObjectType({
-  name: '__Schema',
-  description: 'A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.',
-  fields: function fields() {
-    return {
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(schema) {
-          return schema.description;
-        }
-      },
-      types: {
-        description: 'A list of all types supported by this server.',
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Type))),
-        resolve: function resolve(schema) {
-          return objectValues(schema.getTypeMap());
-        }
-      },
-      queryType: {
-        description: 'The type that query operations will be rooted at.',
-        type: GraphQLNonNull(__Type),
-        resolve: function resolve(schema) {
-          return schema.getQueryType();
-        }
-      },
-      mutationType: {
-        description: 'If this server supports mutation, the type that mutation operations will be rooted at.',
-        type: __Type,
-        resolve: function resolve(schema) {
-          return schema.getMutationType();
-        }
-      },
-      subscriptionType: {
-        description: 'If this server support subscription, the type that subscription operations will be rooted at.',
-        type: __Type,
-        resolve: function resolve(schema) {
-          return schema.getSubscriptionType();
-        }
-      },
-      directives: {
-        description: 'A list of all directives supported by this server.',
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__Directive))),
-        resolve: function resolve(schema) {
-          return schema.getDirectives();
-        }
-      }
-    };
-  }
-});
-export var __Directive = new GraphQLObjectType({
-  name: '__Directive',
-  description: "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.",
-  fields: function fields() {
-    return {
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: function resolve(directive) {
-          return directive.name;
-        }
-      },
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(directive) {
-          return directive.description;
-        }
-      },
-      isRepeatable: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: function resolve(directive) {
-          return directive.isRepeatable;
-        }
-      },
-      locations: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__DirectiveLocation))),
-        resolve: function resolve(directive) {
-          return directive.locations;
-        }
-      },
-      args: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),
-        resolve: function resolve(directive) {
-          return directive.args;
-        }
-      }
-    };
-  }
-});
-export var __DirectiveLocation = new GraphQLEnumType({
-  name: '__DirectiveLocation',
-  description: 'A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.',
-  values: {
-    QUERY: {
-      value: DirectiveLocation.QUERY,
-      description: 'Location adjacent to a query operation.'
-    },
-    MUTATION: {
-      value: DirectiveLocation.MUTATION,
-      description: 'Location adjacent to a mutation operation.'
-    },
-    SUBSCRIPTION: {
-      value: DirectiveLocation.SUBSCRIPTION,
-      description: 'Location adjacent to a subscription operation.'
-    },
-    FIELD: {
-      value: DirectiveLocation.FIELD,
-      description: 'Location adjacent to a field.'
-    },
-    FRAGMENT_DEFINITION: {
-      value: DirectiveLocation.FRAGMENT_DEFINITION,
-      description: 'Location adjacent to a fragment definition.'
-    },
-    FRAGMENT_SPREAD: {
-      value: DirectiveLocation.FRAGMENT_SPREAD,
-      description: 'Location adjacent to a fragment spread.'
-    },
-    INLINE_FRAGMENT: {
-      value: DirectiveLocation.INLINE_FRAGMENT,
-      description: 'Location adjacent to an inline fragment.'
-    },
-    VARIABLE_DEFINITION: {
-      value: DirectiveLocation.VARIABLE_DEFINITION,
-      description: 'Location adjacent to a variable definition.'
-    },
-    SCHEMA: {
-      value: DirectiveLocation.SCHEMA,
-      description: 'Location adjacent to a schema definition.'
-    },
-    SCALAR: {
-      value: DirectiveLocation.SCALAR,
-      description: 'Location adjacent to a scalar definition.'
-    },
-    OBJECT: {
-      value: DirectiveLocation.OBJECT,
-      description: 'Location adjacent to an object type definition.'
-    },
-    FIELD_DEFINITION: {
-      value: DirectiveLocation.FIELD_DEFINITION,
-      description: 'Location adjacent to a field definition.'
-    },
-    ARGUMENT_DEFINITION: {
-      value: DirectiveLocation.ARGUMENT_DEFINITION,
-      description: 'Location adjacent to an argument definition.'
-    },
-    INTERFACE: {
-      value: DirectiveLocation.INTERFACE,
-      description: 'Location adjacent to an interface definition.'
-    },
-    UNION: {
-      value: DirectiveLocation.UNION,
-      description: 'Location adjacent to a union definition.'
-    },
-    ENUM: {
-      value: DirectiveLocation.ENUM,
-      description: 'Location adjacent to an enum definition.'
-    },
-    ENUM_VALUE: {
-      value: DirectiveLocation.ENUM_VALUE,
-      description: 'Location adjacent to an enum value definition.'
-    },
-    INPUT_OBJECT: {
-      value: DirectiveLocation.INPUT_OBJECT,
-      description: 'Location adjacent to an input object type definition.'
-    },
-    INPUT_FIELD_DEFINITION: {
-      value: DirectiveLocation.INPUT_FIELD_DEFINITION,
-      description: 'Location adjacent to an input object field definition.'
-    }
-  }
-});
-export var __Type = new GraphQLObjectType({
-  name: '__Type',
-  description: 'The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.',
-  fields: function fields() {
-    return {
-      kind: {
-        type: GraphQLNonNull(__TypeKind),
-        resolve: function resolve(type) {
-          if (isScalarType(type)) {
-            return TypeKind.SCALAR;
-          }
-
-          if (isObjectType(type)) {
-            return TypeKind.OBJECT;
-          }
-
-          if (isInterfaceType(type)) {
-            return TypeKind.INTERFACE;
-          }
-
-          if (isUnionType(type)) {
-            return TypeKind.UNION;
-          }
-
-          if (isEnumType(type)) {
-            return TypeKind.ENUM;
-          }
-
-          if (isInputObjectType(type)) {
-            return TypeKind.INPUT_OBJECT;
-          }
-
-          if (isListType(type)) {
-            return TypeKind.LIST;
-          }
-
-          /* istanbul ignore else */
-          if (isNonNullType(type)) {
-            return TypeKind.NON_NULL;
-          } // Not reachable. All possible types have been considered.
-
-
-          /* istanbul ignore next */
-          invariant(false, "Unexpected type: \"".concat(inspect(type), "\"."));
-        }
-      },
-      name: {
-        type: GraphQLString,
-        resolve: function resolve(type) {
-          return type.name !== undefined ? type.name : undefined;
-        }
-      },
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(type) {
-          return type.description !== undefined ? type.description : undefined;
-        }
-      },
-      fields: {
-        type: GraphQLList(GraphQLNonNull(__Field)),
-        args: {
-          includeDeprecated: {
-            type: GraphQLBoolean,
-            defaultValue: false
-          }
-        },
-        resolve: function resolve(type, _ref) {
-          var includeDeprecated = _ref.includeDeprecated;
-
-          if (isObjectType(type) || isInterfaceType(type)) {
-            var fields = objectValues(type.getFields());
-
-            if (!includeDeprecated) {
-              fields = fields.filter(function (field) {
-                return !field.isDeprecated;
-              });
-            }
-
-            return fields;
-          }
-
-          return null;
-        }
-      },
-      interfaces: {
-        type: GraphQLList(GraphQLNonNull(__Type)),
-        resolve: function resolve(type) {
-          if (isObjectType(type) || isInterfaceType(type)) {
-            return type.getInterfaces();
-          }
-        }
-      },
-      possibleTypes: {
-        type: GraphQLList(GraphQLNonNull(__Type)),
-        resolve: function resolve(type, _args, _context, _ref2) {
-          var schema = _ref2.schema;
-
-          if (isAbstractType(type)) {
-            return schema.getPossibleTypes(type);
-          }
-        }
-      },
-      enumValues: {
-        type: GraphQLList(GraphQLNonNull(__EnumValue)),
-        args: {
-          includeDeprecated: {
-            type: GraphQLBoolean,
-            defaultValue: false
-          }
-        },
-        resolve: function resolve(type, _ref3) {
-          var includeDeprecated = _ref3.includeDeprecated;
-
-          if (isEnumType(type)) {
-            var values = type.getValues();
-
-            if (!includeDeprecated) {
-              values = values.filter(function (value) {
-                return !value.isDeprecated;
-              });
-            }
-
-            return values;
-          }
-        }
-      },
-      inputFields: {
-        type: GraphQLList(GraphQLNonNull(__InputValue)),
-        resolve: function resolve(type) {
-          if (isInputObjectType(type)) {
-            return objectValues(type.getFields());
-          }
-        }
-      },
-      ofType: {
-        type: __Type,
-        resolve: function resolve(type) {
-          return type.ofType !== undefined ? type.ofType : undefined;
-        }
-      }
-    };
-  }
-});
-export var __Field = new GraphQLObjectType({
-  name: '__Field',
-  description: 'Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.',
-  fields: function fields() {
-    return {
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: function resolve(field) {
-          return field.name;
-        }
-      },
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(field) {
-          return field.description;
-        }
-      },
-      args: {
-        type: GraphQLNonNull(GraphQLList(GraphQLNonNull(__InputValue))),
-        resolve: function resolve(field) {
-          return field.args;
-        }
-      },
-      type: {
-        type: GraphQLNonNull(__Type),
-        resolve: function resolve(field) {
-          return field.type;
-        }
-      },
-      isDeprecated: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: function resolve(field) {
-          return field.isDeprecated;
-        }
-      },
-      deprecationReason: {
-        type: GraphQLString,
-        resolve: function resolve(field) {
-          return field.deprecationReason;
-        }
-      }
-    };
-  }
-});
-export var __InputValue = new GraphQLObjectType({
-  name: '__InputValue',
-  description: 'Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.',
-  fields: function fields() {
-    return {
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: function resolve(inputValue) {
-          return inputValue.name;
-        }
-      },
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(inputValue) {
-          return inputValue.description;
-        }
-      },
-      type: {
-        type: GraphQLNonNull(__Type),
-        resolve: function resolve(inputValue) {
-          return inputValue.type;
-        }
-      },
-      defaultValue: {
-        type: GraphQLString,
-        description: 'A GraphQL-formatted string representing the default value for this input value.',
-        resolve: function resolve(inputValue) {
-          var type = inputValue.type,
-              defaultValue = inputValue.defaultValue;
-          var valueAST = astFromValue(defaultValue, type);
-          return valueAST ? print(valueAST) : null;
-        }
-      }
-    };
-  }
-});
-export var __EnumValue = new GraphQLObjectType({
-  name: '__EnumValue',
-  description: 'One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.',
-  fields: function fields() {
-    return {
-      name: {
-        type: GraphQLNonNull(GraphQLString),
-        resolve: function resolve(enumValue) {
-          return enumValue.name;
-        }
-      },
-      description: {
-        type: GraphQLString,
-        resolve: function resolve(enumValue) {
-          return enumValue.description;
-        }
-      },
-      isDeprecated: {
-        type: GraphQLNonNull(GraphQLBoolean),
-        resolve: function resolve(enumValue) {
-          return enumValue.isDeprecated;
-        }
-      },
-      deprecationReason: {
-        type: GraphQLString,
-        resolve: function resolve(enumValue) {
-          return enumValue.deprecationReason;
-        }
-      }
-    };
-  }
-});
-export var TypeKind = Object.freeze({
-  SCALAR: 'SCALAR',
-  OBJECT: 'OBJECT',
-  INTERFACE: 'INTERFACE',
-  UNION: 'UNION',
-  ENUM: 'ENUM',
-  INPUT_OBJECT: 'INPUT_OBJECT',
-  LIST: 'LIST',
-  NON_NULL: 'NON_NULL'
-});
-export var __TypeKind = new GraphQLEnumType({
-  name: '__TypeKind',
-  description: 'An enum describing what kind of type a given `__Type` is.',
-  values: {
-    SCALAR: {
-      value: TypeKind.SCALAR,
-      description: 'Indicates this type is a scalar.'
-    },
-    OBJECT: {
-      value: TypeKind.OBJECT,
-      description: 'Indicates this type is an object. `fields` and `interfaces` are valid fields.'
-    },
-    INTERFACE: {
-      value: TypeKind.INTERFACE,
-      description: 'Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.'
-    },
-    UNION: {
-      value: TypeKind.UNION,
-      description: 'Indicates this type is a union. `possibleTypes` is a valid field.'
-    },
-    ENUM: {
-      value: TypeKind.ENUM,
-      description: 'Indicates this type is an enum. `enumValues` is a valid field.'
-    },
-    INPUT_OBJECT: {
-      value: TypeKind.INPUT_OBJECT,
-      description: 'Indicates this type is an input object. `inputFields` is a valid field.'
-    },
-    LIST: {
-      value: TypeKind.LIST,
-      description: 'Indicates this type is a list. `ofType` is a valid field.'
-    },
-    NON_NULL: {
-      value: TypeKind.NON_NULL,
-      description: 'Indicates this type is a non-null. `ofType` is a valid field.'
-    }
-  }
-});
-/**
- * Note that these are GraphQLField and not GraphQLFieldConfig,
- * so the format for args is different.
- */
-
-export var SchemaMetaFieldDef = {
-  name: '__schema',
-  type: GraphQLNonNull(__Schema),
-  description: 'Access the current type schema of this server.',
-  args: [],
-  resolve: function resolve(_source, _args, _context, _ref4) {
-    var schema = _ref4.schema;
-    return schema;
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-export var TypeMetaFieldDef = {
-  name: '__type',
-  type: __Type,
-  description: 'Request the type information of a single type.',
-  args: [{
-    name: 'name',
-    description: undefined,
-    type: GraphQLNonNull(GraphQLString),
-    defaultValue: undefined,
-    extensions: undefined,
-    astNode: undefined
-  }],
-  resolve: function resolve(_source, _ref5, _context, _ref6) {
-    var name = _ref5.name;
-    var schema = _ref6.schema;
-    return schema.getType(name);
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-export var TypeNameMetaFieldDef = {
-  name: '__typename',
-  type: GraphQLNonNull(GraphQLString),
-  description: 'The name of the current Object type at runtime.',
-  args: [],
-  resolve: function resolve(_source, _args, _context, _ref7) {
-    var parentType = _ref7.parentType;
-    return parentType.name;
-  },
-  deprecationReason: undefined,
-  extensions: undefined,
-  astNode: undefined
-};
-export var introspectionTypes = Object.freeze([__Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind]);
-export function isIntrospectionType(type) {
-  return introspectionTypes.some(function (_ref8) {
-    var name = _ref8.name;
-    return type.name === name;
-  });
-}
diff --git a/node_modules/graphql/type/scalars.d.ts b/node_modules/graphql/type/scalars.d.ts
deleted file mode 100644
index 71593d1..0000000
--- a/node_modules/graphql/type/scalars.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { GraphQLScalarType, GraphQLNamedType } from './definition';
-
-export const GraphQLInt: GraphQLScalarType;
-export const GraphQLFloat: GraphQLScalarType;
-export const GraphQLString: GraphQLScalarType;
-export const GraphQLBoolean: GraphQLScalarType;
-export const GraphQLID: GraphQLScalarType;
-
-export const specifiedScalarTypes: ReadonlyArray<GraphQLScalarType>;
-
-export function isSpecifiedScalarType(type: GraphQLNamedType): boolean;
diff --git a/node_modules/graphql/type/scalars.js b/node_modules/graphql/type/scalars.js
deleted file mode 100644
index 5144266..0000000
--- a/node_modules/graphql/type/scalars.js
+++ /dev/null
@@ -1,284 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isSpecifiedScalarType = isSpecifiedScalarType;
-exports.specifiedScalarTypes = exports.GraphQLID = exports.GraphQLBoolean = exports.GraphQLString = exports.GraphQLFloat = exports.GraphQLInt = void 0;
-
-var _isFinite = _interopRequireDefault(require("../polyfills/isFinite"));
-
-var _isInteger = _interopRequireDefault(require("../polyfills/isInteger"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _kinds = require("../language/kinds");
-
-var _printer = require("../language/printer");
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _definition = require("./definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// As per the GraphQL Spec, Integers are only treated as valid when a valid
-// 32-bit signed integer, providing the broadest support across platforms.
-//
-// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because
-// they are internally represented as IEEE 754 doubles.
-var MAX_INT = 2147483647;
-var MIN_INT = -2147483648;
-
-function serializeInt(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  var num = coercedValue;
-
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!(0, _isInteger.default)(num)) {
-    throw new _GraphQLError.GraphQLError("Int cannot represent non-integer value: ".concat((0, _inspect.default)(coercedValue)));
-  }
-
-  if (num > MAX_INT || num < MIN_INT) {
-    throw new _GraphQLError.GraphQLError('Int cannot represent non 32-bit signed integer value: ' + (0, _inspect.default)(coercedValue));
-  }
-
-  return num;
-}
-
-function coerceInt(inputValue) {
-  if (!(0, _isInteger.default)(inputValue)) {
-    throw new _GraphQLError.GraphQLError("Int cannot represent non-integer value: ".concat((0, _inspect.default)(inputValue)));
-  }
-
-  if (inputValue > MAX_INT || inputValue < MIN_INT) {
-    throw new _GraphQLError.GraphQLError("Int cannot represent non 32-bit signed integer value: ".concat(inputValue));
-  }
-
-  return inputValue;
-}
-
-var GraphQLInt = new _definition.GraphQLScalarType({
-  name: 'Int',
-  description: 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',
-  serialize: serializeInt,
-  parseValue: coerceInt,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== _kinds.Kind.INT) {
-      throw new _GraphQLError.GraphQLError("Int cannot represent non-integer value: ".concat((0, _printer.print)(valueNode)), valueNode);
-    }
-
-    var num = parseInt(valueNode.value, 10);
-
-    if (num > MAX_INT || num < MIN_INT) {
-      throw new _GraphQLError.GraphQLError("Int cannot represent non 32-bit signed integer value: ".concat(valueNode.value), valueNode);
-    }
-
-    return num;
-  }
-});
-exports.GraphQLInt = GraphQLInt;
-
-function serializeFloat(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  var num = coercedValue;
-
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!(0, _isFinite.default)(num)) {
-    throw new _GraphQLError.GraphQLError("Float cannot represent non numeric value: ".concat((0, _inspect.default)(coercedValue)));
-  }
-
-  return num;
-}
-
-function coerceFloat(inputValue) {
-  if (!(0, _isFinite.default)(inputValue)) {
-    throw new _GraphQLError.GraphQLError("Float cannot represent non numeric value: ".concat((0, _inspect.default)(inputValue)));
-  }
-
-  return inputValue;
-}
-
-var GraphQLFloat = new _definition.GraphQLScalarType({
-  name: 'Float',
-  description: 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',
-  serialize: serializeFloat,
-  parseValue: coerceFloat,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== _kinds.Kind.FLOAT && valueNode.kind !== _kinds.Kind.INT) {
-      throw new _GraphQLError.GraphQLError("Float cannot represent non numeric value: ".concat((0, _printer.print)(valueNode)), valueNode);
-    }
-
-    return parseFloat(valueNode.value);
-  }
-}); // Support serializing objects with custom valueOf() or toJSON() functions -
-// a common way to represent a complex value which can be represented as
-// a string (ex: MongoDB id objects).
-
-exports.GraphQLFloat = GraphQLFloat;
-
-function serializeObject(outputValue) {
-  if ((0, _isObjectLike.default)(outputValue)) {
-    if (typeof outputValue.valueOf === 'function') {
-      var valueOfResult = outputValue.valueOf();
-
-      if (!(0, _isObjectLike.default)(valueOfResult)) {
-        return valueOfResult;
-      }
-    }
-
-    if (typeof outputValue.toJSON === 'function') {
-      // $FlowFixMe(>=0.90.0)
-      return outputValue.toJSON();
-    }
-  }
-
-  return outputValue;
-}
-
-function serializeString(outputValue) {
-  var coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not
-  // attempt to coerce object, function, symbol, or other types as strings.
-
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 'true' : 'false';
-  }
-
-  if ((0, _isFinite.default)(coercedValue)) {
-    return coercedValue.toString();
-  }
-
-  throw new _GraphQLError.GraphQLError("String cannot represent value: ".concat((0, _inspect.default)(outputValue)));
-}
-
-function coerceString(inputValue) {
-  if (typeof inputValue !== 'string') {
-    throw new _GraphQLError.GraphQLError("String cannot represent a non string value: ".concat((0, _inspect.default)(inputValue)));
-  }
-
-  return inputValue;
-}
-
-var GraphQLString = new _definition.GraphQLScalarType({
-  name: 'String',
-  description: 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',
-  serialize: serializeString,
-  parseValue: coerceString,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== _kinds.Kind.STRING) {
-      throw new _GraphQLError.GraphQLError("String cannot represent a non string value: ".concat((0, _printer.print)(valueNode)), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-exports.GraphQLString = GraphQLString;
-
-function serializeBoolean(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue;
-  }
-
-  if ((0, _isFinite.default)(coercedValue)) {
-    return coercedValue !== 0;
-  }
-
-  throw new _GraphQLError.GraphQLError("Boolean cannot represent a non boolean value: ".concat((0, _inspect.default)(coercedValue)));
-}
-
-function coerceBoolean(inputValue) {
-  if (typeof inputValue !== 'boolean') {
-    throw new _GraphQLError.GraphQLError("Boolean cannot represent a non boolean value: ".concat((0, _inspect.default)(inputValue)));
-  }
-
-  return inputValue;
-}
-
-var GraphQLBoolean = new _definition.GraphQLScalarType({
-  name: 'Boolean',
-  description: 'The `Boolean` scalar type represents `true` or `false`.',
-  serialize: serializeBoolean,
-  parseValue: coerceBoolean,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== _kinds.Kind.BOOLEAN) {
-      throw new _GraphQLError.GraphQLError("Boolean cannot represent a non boolean value: ".concat((0, _printer.print)(valueNode)), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-exports.GraphQLBoolean = GraphQLBoolean;
-
-function serializeID(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-
-  if ((0, _isInteger.default)(coercedValue)) {
-    return String(coercedValue);
-  }
-
-  throw new _GraphQLError.GraphQLError("ID cannot represent value: ".concat((0, _inspect.default)(outputValue)));
-}
-
-function coerceID(inputValue) {
-  if (typeof inputValue === 'string') {
-    return inputValue;
-  }
-
-  if ((0, _isInteger.default)(inputValue)) {
-    return inputValue.toString();
-  }
-
-  throw new _GraphQLError.GraphQLError("ID cannot represent value: ".concat((0, _inspect.default)(inputValue)));
-}
-
-var GraphQLID = new _definition.GraphQLScalarType({
-  name: 'ID',
-  description: 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',
-  serialize: serializeID,
-  parseValue: coerceID,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== _kinds.Kind.STRING && valueNode.kind !== _kinds.Kind.INT) {
-      throw new _GraphQLError.GraphQLError('ID cannot represent a non-string and non-integer value: ' + (0, _printer.print)(valueNode), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-exports.GraphQLID = GraphQLID;
-var specifiedScalarTypes = Object.freeze([GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]);
-exports.specifiedScalarTypes = specifiedScalarTypes;
-
-function isSpecifiedScalarType(type) {
-  return specifiedScalarTypes.some(function (_ref) {
-    var name = _ref.name;
-    return type.name === name;
-  });
-}
diff --git a/node_modules/graphql/type/scalars.js.flow b/node_modules/graphql/type/scalars.js.flow
deleted file mode 100644
index e425a17..0000000
--- a/node_modules/graphql/type/scalars.js.flow
+++ /dev/null
@@ -1,287 +0,0 @@
-// @flow strict
-
-import isFinite from '../polyfills/isFinite';
-import isInteger from '../polyfills/isInteger';
-
-import inspect from '../jsutils/inspect';
-import isObjectLike from '../jsutils/isObjectLike';
-
-import { Kind } from '../language/kinds';
-import { print } from '../language/printer';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { type GraphQLNamedType, GraphQLScalarType } from './definition';
-
-// As per the GraphQL Spec, Integers are only treated as valid when a valid
-// 32-bit signed integer, providing the broadest support across platforms.
-//
-// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because
-// they are internally represented as IEEE 754 doubles.
-const MAX_INT = 2147483647;
-const MIN_INT = -2147483648;
-
-function serializeInt(outputValue: mixed): number {
-  const coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  let num = coercedValue;
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!isInteger(num)) {
-    throw new GraphQLError(
-      `Int cannot represent non-integer value: ${inspect(coercedValue)}`,
-    );
-  }
-  if (num > MAX_INT || num < MIN_INT) {
-    throw new GraphQLError(
-      'Int cannot represent non 32-bit signed integer value: ' +
-        inspect(coercedValue),
-    );
-  }
-  return num;
-}
-
-function coerceInt(inputValue: mixed): number {
-  if (!isInteger(inputValue)) {
-    throw new GraphQLError(
-      `Int cannot represent non-integer value: ${inspect(inputValue)}`,
-    );
-  }
-  if (inputValue > MAX_INT || inputValue < MIN_INT) {
-    throw new GraphQLError(
-      `Int cannot represent non 32-bit signed integer value: ${inputValue}`,
-    );
-  }
-  return inputValue;
-}
-
-export const GraphQLInt = new GraphQLScalarType({
-  name: 'Int',
-  description:
-    'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',
-  serialize: serializeInt,
-  parseValue: coerceInt,
-  parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.INT) {
-      throw new GraphQLError(
-        `Int cannot represent non-integer value: ${print(valueNode)}`,
-        valueNode,
-      );
-    }
-    const num = parseInt(valueNode.value, 10);
-    if (num > MAX_INT || num < MIN_INT) {
-      throw new GraphQLError(
-        `Int cannot represent non 32-bit signed integer value: ${valueNode.value}`,
-        valueNode,
-      );
-    }
-    return num;
-  },
-});
-
-function serializeFloat(outputValue: mixed): number {
-  const coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  let num = coercedValue;
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!isFinite(num)) {
-    throw new GraphQLError(
-      `Float cannot represent non numeric value: ${inspect(coercedValue)}`,
-    );
-  }
-  return num;
-}
-
-function coerceFloat(inputValue: mixed): number {
-  if (!isFinite(inputValue)) {
-    throw new GraphQLError(
-      `Float cannot represent non numeric value: ${inspect(inputValue)}`,
-    );
-  }
-  return inputValue;
-}
-
-export const GraphQLFloat = new GraphQLScalarType({
-  name: 'Float',
-  description:
-    'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',
-  serialize: serializeFloat,
-  parseValue: coerceFloat,
-  parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.FLOAT && valueNode.kind !== Kind.INT) {
-      throw new GraphQLError(
-        `Float cannot represent non numeric value: ${print(valueNode)}`,
-        valueNode,
-      );
-    }
-    return parseFloat(valueNode.value);
-  },
-});
-
-// Support serializing objects with custom valueOf() or toJSON() functions -
-// a common way to represent a complex value which can be represented as
-// a string (ex: MongoDB id objects).
-function serializeObject(outputValue: mixed): mixed {
-  if (isObjectLike(outputValue)) {
-    if (typeof outputValue.valueOf === 'function') {
-      const valueOfResult = outputValue.valueOf();
-      if (!isObjectLike(valueOfResult)) {
-        return valueOfResult;
-      }
-    }
-    if (typeof outputValue.toJSON === 'function') {
-      // $FlowFixMe(>=0.90.0)
-      return outputValue.toJSON();
-    }
-  }
-  return outputValue;
-}
-
-function serializeString(outputValue: mixed): string {
-  const coercedValue = serializeObject(outputValue);
-
-  // Serialize string, boolean and number values to a string, but do not
-  // attempt to coerce object, function, symbol, or other types as strings.
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 'true' : 'false';
-  }
-  if (isFinite(coercedValue)) {
-    return coercedValue.toString();
-  }
-  throw new GraphQLError(
-    `String cannot represent value: ${inspect(outputValue)}`,
-  );
-}
-
-function coerceString(inputValue: mixed): string {
-  if (typeof inputValue !== 'string') {
-    throw new GraphQLError(
-      `String cannot represent a non string value: ${inspect(inputValue)}`,
-    );
-  }
-  return inputValue;
-}
-
-export const GraphQLString = new GraphQLScalarType({
-  name: 'String',
-  description:
-    'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',
-  serialize: serializeString,
-  parseValue: coerceString,
-  parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.STRING) {
-      throw new GraphQLError(
-        `String cannot represent a non string value: ${print(valueNode)}`,
-        valueNode,
-      );
-    }
-    return valueNode.value;
-  },
-});
-
-function serializeBoolean(outputValue: mixed): boolean {
-  const coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue;
-  }
-  if (isFinite(coercedValue)) {
-    return coercedValue !== 0;
-  }
-  throw new GraphQLError(
-    `Boolean cannot represent a non boolean value: ${inspect(coercedValue)}`,
-  );
-}
-
-function coerceBoolean(inputValue: mixed): boolean {
-  if (typeof inputValue !== 'boolean') {
-    throw new GraphQLError(
-      `Boolean cannot represent a non boolean value: ${inspect(inputValue)}`,
-    );
-  }
-  return inputValue;
-}
-
-export const GraphQLBoolean = new GraphQLScalarType({
-  name: 'Boolean',
-  description: 'The `Boolean` scalar type represents `true` or `false`.',
-  serialize: serializeBoolean,
-  parseValue: coerceBoolean,
-  parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.BOOLEAN) {
-      throw new GraphQLError(
-        `Boolean cannot represent a non boolean value: ${print(valueNode)}`,
-        valueNode,
-      );
-    }
-    return valueNode.value;
-  },
-});
-
-function serializeID(outputValue: mixed): string {
-  const coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-  if (isInteger(coercedValue)) {
-    return String(coercedValue);
-  }
-  throw new GraphQLError(`ID cannot represent value: ${inspect(outputValue)}`);
-}
-
-function coerceID(inputValue: mixed): string {
-  if (typeof inputValue === 'string') {
-    return inputValue;
-  }
-  if (isInteger(inputValue)) {
-    return inputValue.toString();
-  }
-  throw new GraphQLError(`ID cannot represent value: ${inspect(inputValue)}`);
-}
-
-export const GraphQLID = new GraphQLScalarType({
-  name: 'ID',
-  description:
-    'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',
-  serialize: serializeID,
-  parseValue: coerceID,
-  parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.STRING && valueNode.kind !== Kind.INT) {
-      throw new GraphQLError(
-        'ID cannot represent a non-string and non-integer value: ' +
-          print(valueNode),
-        valueNode,
-      );
-    }
-    return valueNode.value;
-  },
-});
-
-export const specifiedScalarTypes = Object.freeze([
-  GraphQLString,
-  GraphQLInt,
-  GraphQLFloat,
-  GraphQLBoolean,
-  GraphQLID,
-]);
-
-export function isSpecifiedScalarType(type: GraphQLNamedType): boolean %checks {
-  return specifiedScalarTypes.some(({ name }) => type.name === name);
-}
diff --git a/node_modules/graphql/type/scalars.mjs b/node_modules/graphql/type/scalars.mjs
deleted file mode 100644
index fd64f33..0000000
--- a/node_modules/graphql/type/scalars.mjs
+++ /dev/null
@@ -1,258 +0,0 @@
-import isFinite from "../polyfills/isFinite.mjs";
-import isInteger from "../polyfills/isInteger.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { print } from "../language/printer.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { GraphQLScalarType } from "./definition.mjs"; // As per the GraphQL Spec, Integers are only treated as valid when a valid
-// 32-bit signed integer, providing the broadest support across platforms.
-//
-// n.b. JavaScript's integers are safe between -(2^53 - 1) and 2^53 - 1 because
-// they are internally represented as IEEE 754 doubles.
-
-var MAX_INT = 2147483647;
-var MIN_INT = -2147483648;
-
-function serializeInt(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  var num = coercedValue;
-
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!isInteger(num)) {
-    throw new GraphQLError("Int cannot represent non-integer value: ".concat(inspect(coercedValue)));
-  }
-
-  if (num > MAX_INT || num < MIN_INT) {
-    throw new GraphQLError('Int cannot represent non 32-bit signed integer value: ' + inspect(coercedValue));
-  }
-
-  return num;
-}
-
-function coerceInt(inputValue) {
-  if (!isInteger(inputValue)) {
-    throw new GraphQLError("Int cannot represent non-integer value: ".concat(inspect(inputValue)));
-  }
-
-  if (inputValue > MAX_INT || inputValue < MIN_INT) {
-    throw new GraphQLError("Int cannot represent non 32-bit signed integer value: ".concat(inputValue));
-  }
-
-  return inputValue;
-}
-
-export var GraphQLInt = new GraphQLScalarType({
-  name: 'Int',
-  description: 'The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.',
-  serialize: serializeInt,
-  parseValue: coerceInt,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.INT) {
-      throw new GraphQLError("Int cannot represent non-integer value: ".concat(print(valueNode)), valueNode);
-    }
-
-    var num = parseInt(valueNode.value, 10);
-
-    if (num > MAX_INT || num < MIN_INT) {
-      throw new GraphQLError("Int cannot represent non 32-bit signed integer value: ".concat(valueNode.value), valueNode);
-    }
-
-    return num;
-  }
-});
-
-function serializeFloat(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 1 : 0;
-  }
-
-  var num = coercedValue;
-
-  if (typeof coercedValue === 'string' && coercedValue !== '') {
-    num = Number(coercedValue);
-  }
-
-  if (!isFinite(num)) {
-    throw new GraphQLError("Float cannot represent non numeric value: ".concat(inspect(coercedValue)));
-  }
-
-  return num;
-}
-
-function coerceFloat(inputValue) {
-  if (!isFinite(inputValue)) {
-    throw new GraphQLError("Float cannot represent non numeric value: ".concat(inspect(inputValue)));
-  }
-
-  return inputValue;
-}
-
-export var GraphQLFloat = new GraphQLScalarType({
-  name: 'Float',
-  description: 'The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).',
-  serialize: serializeFloat,
-  parseValue: coerceFloat,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.FLOAT && valueNode.kind !== Kind.INT) {
-      throw new GraphQLError("Float cannot represent non numeric value: ".concat(print(valueNode)), valueNode);
-    }
-
-    return parseFloat(valueNode.value);
-  }
-}); // Support serializing objects with custom valueOf() or toJSON() functions -
-// a common way to represent a complex value which can be represented as
-// a string (ex: MongoDB id objects).
-
-function serializeObject(outputValue) {
-  if (isObjectLike(outputValue)) {
-    if (typeof outputValue.valueOf === 'function') {
-      var valueOfResult = outputValue.valueOf();
-
-      if (!isObjectLike(valueOfResult)) {
-        return valueOfResult;
-      }
-    }
-
-    if (typeof outputValue.toJSON === 'function') {
-      // $FlowFixMe(>=0.90.0)
-      return outputValue.toJSON();
-    }
-  }
-
-  return outputValue;
-}
-
-function serializeString(outputValue) {
-  var coercedValue = serializeObject(outputValue); // Serialize string, boolean and number values to a string, but do not
-  // attempt to coerce object, function, symbol, or other types as strings.
-
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue ? 'true' : 'false';
-  }
-
-  if (isFinite(coercedValue)) {
-    return coercedValue.toString();
-  }
-
-  throw new GraphQLError("String cannot represent value: ".concat(inspect(outputValue)));
-}
-
-function coerceString(inputValue) {
-  if (typeof inputValue !== 'string') {
-    throw new GraphQLError("String cannot represent a non string value: ".concat(inspect(inputValue)));
-  }
-
-  return inputValue;
-}
-
-export var GraphQLString = new GraphQLScalarType({
-  name: 'String',
-  description: 'The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.',
-  serialize: serializeString,
-  parseValue: coerceString,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.STRING) {
-      throw new GraphQLError("String cannot represent a non string value: ".concat(print(valueNode)), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-
-function serializeBoolean(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'boolean') {
-    return coercedValue;
-  }
-
-  if (isFinite(coercedValue)) {
-    return coercedValue !== 0;
-  }
-
-  throw new GraphQLError("Boolean cannot represent a non boolean value: ".concat(inspect(coercedValue)));
-}
-
-function coerceBoolean(inputValue) {
-  if (typeof inputValue !== 'boolean') {
-    throw new GraphQLError("Boolean cannot represent a non boolean value: ".concat(inspect(inputValue)));
-  }
-
-  return inputValue;
-}
-
-export var GraphQLBoolean = new GraphQLScalarType({
-  name: 'Boolean',
-  description: 'The `Boolean` scalar type represents `true` or `false`.',
-  serialize: serializeBoolean,
-  parseValue: coerceBoolean,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.BOOLEAN) {
-      throw new GraphQLError("Boolean cannot represent a non boolean value: ".concat(print(valueNode)), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-
-function serializeID(outputValue) {
-  var coercedValue = serializeObject(outputValue);
-
-  if (typeof coercedValue === 'string') {
-    return coercedValue;
-  }
-
-  if (isInteger(coercedValue)) {
-    return String(coercedValue);
-  }
-
-  throw new GraphQLError("ID cannot represent value: ".concat(inspect(outputValue)));
-}
-
-function coerceID(inputValue) {
-  if (typeof inputValue === 'string') {
-    return inputValue;
-  }
-
-  if (isInteger(inputValue)) {
-    return inputValue.toString();
-  }
-
-  throw new GraphQLError("ID cannot represent value: ".concat(inspect(inputValue)));
-}
-
-export var GraphQLID = new GraphQLScalarType({
-  name: 'ID',
-  description: 'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',
-  serialize: serializeID,
-  parseValue: coerceID,
-  parseLiteral: function parseLiteral(valueNode) {
-    if (valueNode.kind !== Kind.STRING && valueNode.kind !== Kind.INT) {
-      throw new GraphQLError('ID cannot represent a non-string and non-integer value: ' + print(valueNode), valueNode);
-    }
-
-    return valueNode.value;
-  }
-});
-export var specifiedScalarTypes = Object.freeze([GraphQLString, GraphQLInt, GraphQLFloat, GraphQLBoolean, GraphQLID]);
-export function isSpecifiedScalarType(type) {
-  return specifiedScalarTypes.some(function (_ref) {
-    var name = _ref.name;
-    return type.name === name;
-  });
-}
diff --git a/node_modules/graphql/type/schema.d.ts b/node_modules/graphql/type/schema.d.ts
deleted file mode 100644
index be2cfb4..0000000
--- a/node_modules/graphql/type/schema.d.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { SchemaDefinitionNode, SchemaExtensionNode } from '../language/ast';
-
-import { GraphQLDirective } from './directives';
-import {
-  GraphQLNamedType,
-  GraphQLAbstractType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-} from './definition';
-
-/**
- * Test if the given value is a GraphQL schema.
- */
-export function isSchema(schema: any): schema is GraphQLSchema;
-export function assertSchema(schema: any): GraphQLSchema;
-
-/**
- * Schema Definition
- *
- * A Schema is created by supplying the root types of each type of operation,
- * query and mutation (optional). A schema definition is then supplied to the
- * validator and executor.
- *
- * Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       query: MyAppQueryRootType,
- *       mutation: MyAppMutationRootType,
- *     })
- *
- * Note: If an array of `directives` are provided to GraphQLSchema, that will be
- * the exact list of directives represented and allowed. If `directives` is not
- * provided then a default set of the specified directives (e.g. @include and
- * @skip) will be used. If you wish to provide *additional* directives to these
- * specified directives, you must explicitly declare them. Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       ...
- *       directives: specifiedDirectives.concat([ myCustomDirective ]),
- *     })
- *
- */
-export class GraphQLSchema {
-  description: Maybe<string>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  astNode: Maybe<SchemaDefinitionNode>;
-  extensionASTNodes: Maybe<ReadonlyArray<SchemaExtensionNode>>;
-
-  constructor(config: Readonly<GraphQLSchemaConfig>);
-  getQueryType(): Maybe<GraphQLObjectType>;
-  getMutationType(): Maybe<GraphQLObjectType>;
-  getSubscriptionType(): Maybe<GraphQLObjectType>;
-  getTypeMap(): TypeMap;
-  getType(name: string): Maybe<GraphQLNamedType>;
-
-  getPossibleTypes(
-    abstractType: GraphQLAbstractType,
-  ): ReadonlyArray<GraphQLObjectType>;
-
-  getImplementations(
-    interfaceType: GraphQLInterfaceType,
-  ): InterfaceImplementations;
-
-  // @deprecated: use isSubType instead - will be removed in v16.
-  isPossibleType(
-    abstractType: GraphQLAbstractType,
-    possibleType: GraphQLObjectType,
-  ): boolean;
-
-  isSubType(
-    abstractType: GraphQLAbstractType,
-    maybeSubType: GraphQLNamedType,
-  ): boolean;
-
-  getDirectives(): ReadonlyArray<GraphQLDirective>;
-  getDirective(name: string): Maybe<GraphQLDirective>;
-
-  toConfig(): GraphQLSchemaConfig & {
-    types: Array<GraphQLNamedType>;
-    directives: Array<GraphQLDirective>;
-    extensions: Maybe<Readonly<Record<string, any>>>;
-    extensionASTNodes: ReadonlyArray<SchemaExtensionNode>;
-    assumeValid: boolean;
-  };
-}
-
-type TypeMap = { [key: string]: GraphQLNamedType };
-
-type InterfaceImplementations = {
-  objects: ReadonlyArray<GraphQLObjectType>;
-  interfaces: ReadonlyArray<GraphQLInterfaceType>;
-};
-
-export interface GraphQLSchemaValidationOptions {
-  /**
-   * When building a schema from a GraphQL service's introspection result, it
-   * might be safe to assume the schema is valid. Set to true to assume the
-   * produced schema is valid.
-   *
-   * Default: false
-   */
-  assumeValid?: boolean;
-}
-
-export interface GraphQLSchemaConfig extends GraphQLSchemaValidationOptions {
-  description?: Maybe<string>;
-  query: Maybe<GraphQLObjectType>;
-  mutation?: Maybe<GraphQLObjectType>;
-  subscription?: Maybe<GraphQLObjectType>;
-  types?: Maybe<Array<GraphQLNamedType>>;
-  directives?: Maybe<Array<GraphQLDirective>>;
-  extensions?: Maybe<Readonly<Record<string, any>>>;
-  astNode?: Maybe<SchemaDefinitionNode>;
-  extensionASTNodes?: Maybe<ReadonlyArray<SchemaExtensionNode>>;
-}
-
-/**
- * @internal
- */
-export interface GraphQLSchemaNormalizedConfig extends GraphQLSchemaConfig {
-  description: Maybe<string>;
-  types: Array<GraphQLNamedType>;
-  directives: Array<GraphQLDirective>;
-  extensions: Maybe<Readonly<Record<string, any>>>;
-  extensionASTNodes: Maybe<ReadonlyArray<SchemaExtensionNode>>;
-  assumeValid: boolean;
-}
diff --git a/node_modules/graphql/type/schema.js b/node_modules/graphql/type/schema.js
deleted file mode 100644
index 31584cf..0000000
--- a/node_modules/graphql/type/schema.js
+++ /dev/null
@@ -1,385 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isSchema = isSchema;
-exports.assertSchema = assertSchema;
-exports.GraphQLSchema = void 0;
-
-var _find = _interopRequireDefault(require("../polyfills/find"));
-
-var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
-
-var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _symbols = require("../polyfills/symbols");
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _introspection = require("./introspection");
-
-var _directives = require("./directives");
-
-var _definition = require("./definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-// eslint-disable-next-line no-redeclare
-function isSchema(schema) {
-  return (0, _instanceOf.default)(schema, GraphQLSchema);
-}
-
-function assertSchema(schema) {
-  if (!isSchema(schema)) {
-    throw new Error("Expected ".concat((0, _inspect.default)(schema), " to be a GraphQL schema."));
-  }
-
-  return schema;
-}
-/**
- * Schema Definition
- *
- * A Schema is created by supplying the root types of each type of operation,
- * query and mutation (optional). A schema definition is then supplied to the
- * validator and executor.
- *
- * Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       query: MyAppQueryRootType,
- *       mutation: MyAppMutationRootType,
- *     })
- *
- * Note: When the schema is constructed, by default only the types that are
- * reachable by traversing the root types are included, other types must be
- * explicitly referenced.
- *
- * Example:
- *
- *     const characterInterface = new GraphQLInterfaceType({
- *       name: 'Character',
- *       ...
- *     });
- *
- *     const humanType = new GraphQLObjectType({
- *       name: 'Human',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const droidType = new GraphQLObjectType({
- *       name: 'Droid',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const schema = new GraphQLSchema({
- *       query: new GraphQLObjectType({
- *         name: 'Query',
- *         fields: {
- *           hero: { type: characterInterface, ... },
- *         }
- *       }),
- *       ...
- *       // Since this schema references only the `Character` interface it's
- *       // necessary to explicitly list the types that implement it if
- *       // you want them to be included in the final schema.
- *       types: [humanType, droidType],
- *     })
- *
- * Note: If an array of `directives` are provided to GraphQLSchema, that will be
- * the exact list of directives represented and allowed. If `directives` is not
- * provided then a default set of the specified directives (e.g. @include and
- * @skip) will be used. If you wish to provide *additional* directives to these
- * specified directives, you must explicitly declare them. Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       ...
- *       directives: specifiedDirectives.concat([ myCustomDirective ]),
- *     })
- *
- */
-
-
-var GraphQLSchema =
-/*#__PURE__*/
-function () {
-  // Used as a cache for validateSchema().
-  function GraphQLSchema(config) {
-    var _config$directives;
-
-    // If this schema was built from a source known to be valid, then it may be
-    // marked with assumeValid to avoid an additional type system validation.
-    this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.
-
-    (0, _isObjectLike.default)(config) || (0, _devAssert.default)(0, 'Must provide configuration object.');
-    !config.types || Array.isArray(config.types) || (0, _devAssert.default)(0, "\"types\" must be Array if provided but got: ".concat((0, _inspect.default)(config.types), "."));
-    !config.directives || Array.isArray(config.directives) || (0, _devAssert.default)(0, '"directives" must be Array if provided but got: ' + "".concat((0, _inspect.default)(config.directives), "."));
-    this.description = config.description;
-    this.extensions = config.extensions && (0, _toObjMap.default)(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = config.extensionASTNodes;
-    this._queryType = config.query;
-    this._mutationType = config.mutation;
-    this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.
-
-    this._directives = (_config$directives = config.directives) !== null && _config$directives !== void 0 ? _config$directives : _directives.specifiedDirectives; // To preserve order of user-provided types, we add first to add them to
-    // the set of "collected" types, so `collectReferencedTypes` ignore them.
-
-    var allReferencedTypes = new Set(config.types);
-
-    if (config.types != null) {
-      for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {
-        var type = _config$types2[_i2];
-        // When we ready to process this type, we remove it from "collected" types
-        // and then add it together with all dependent types in the correct position.
-        allReferencedTypes.delete(type);
-        collectReferencedTypes(type, allReferencedTypes);
-      }
-    }
-
-    if (this._queryType != null) {
-      collectReferencedTypes(this._queryType, allReferencedTypes);
-    }
-
-    if (this._mutationType != null) {
-      collectReferencedTypes(this._mutationType, allReferencedTypes);
-    }
-
-    if (this._subscriptionType != null) {
-      collectReferencedTypes(this._subscriptionType, allReferencedTypes);
-    }
-
-    for (var _i4 = 0, _this$_directives2 = this._directives; _i4 < _this$_directives2.length; _i4++) {
-      var directive = _this$_directives2[_i4];
-
-      // Directives are not validated until validateSchema() is called.
-      if ((0, _directives.isDirective)(directive)) {
-        for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {
-          var arg = _directive$args2[_i6];
-          collectReferencedTypes(arg.type, allReferencedTypes);
-        }
-      }
-    }
-
-    collectReferencedTypes(_introspection.__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.
-
-    this._typeMap = Object.create(null);
-    this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.
-
-    this._implementationsMap = Object.create(null);
-
-    for (var _i8 = 0, _arrayFrom2 = (0, _arrayFrom3.default)(allReferencedTypes); _i8 < _arrayFrom2.length; _i8++) {
-      var namedType = _arrayFrom2[_i8];
-
-      if (namedType == null) {
-        continue;
-      }
-
-      var typeName = namedType.name;
-
-      if (this._typeMap[typeName] !== undefined) {
-        throw new Error("Schema must contain uniquely named types but contains multiple types named \"".concat(typeName, "\"."));
-      }
-
-      this._typeMap[typeName] = namedType;
-
-      if ((0, _definition.isInterfaceType)(namedType)) {
-        // Store implementations by interface.
-        for (var _i10 = 0, _namedType$getInterfa2 = namedType.getInterfaces(); _i10 < _namedType$getInterfa2.length; _i10++) {
-          var iface = _namedType$getInterfa2[_i10];
-
-          if ((0, _definition.isInterfaceType)(iface)) {
-            var implementations = this._implementationsMap[iface.name];
-
-            if (implementations === undefined) {
-              implementations = this._implementationsMap[iface.name] = {
-                objects: [],
-                interfaces: []
-              };
-            }
-
-            implementations.interfaces.push(namedType);
-          }
-        }
-      } else if ((0, _definition.isObjectType)(namedType)) {
-        // Store implementations by objects.
-        for (var _i12 = 0, _namedType$getInterfa4 = namedType.getInterfaces(); _i12 < _namedType$getInterfa4.length; _i12++) {
-          var _iface = _namedType$getInterfa4[_i12];
-
-          if ((0, _definition.isInterfaceType)(_iface)) {
-            var _implementations = this._implementationsMap[_iface.name];
-
-            if (_implementations === undefined) {
-              _implementations = this._implementationsMap[_iface.name] = {
-                objects: [],
-                interfaces: []
-              };
-            }
-
-            _implementations.objects.push(namedType);
-          }
-        }
-      }
-    }
-  }
-
-  var _proto = GraphQLSchema.prototype;
-
-  _proto.getQueryType = function getQueryType() {
-    return this._queryType;
-  };
-
-  _proto.getMutationType = function getMutationType() {
-    return this._mutationType;
-  };
-
-  _proto.getSubscriptionType = function getSubscriptionType() {
-    return this._subscriptionType;
-  };
-
-  _proto.getTypeMap = function getTypeMap() {
-    return this._typeMap;
-  };
-
-  _proto.getType = function getType(name) {
-    return this.getTypeMap()[name];
-  };
-
-  _proto.getPossibleTypes = function getPossibleTypes(abstractType) {
-    return (0, _definition.isUnionType)(abstractType) ? abstractType.getTypes() : this.getImplementations(abstractType).objects;
-  };
-
-  _proto.getImplementations = function getImplementations(interfaceType) {
-    var implementations = this._implementationsMap[interfaceType.name];
-    return implementations !== null && implementations !== void 0 ? implementations : {
-      objects: [],
-      interfaces: []
-    };
-  } // @deprecated: use isSubType instead - will be removed in v16.
-  ;
-
-  _proto.isPossibleType = function isPossibleType(abstractType, possibleType) {
-    return this.isSubType(abstractType, possibleType);
-  };
-
-  _proto.isSubType = function isSubType(abstractType, maybeSubType) {
-    var map = this._subTypeMap[abstractType.name];
-
-    if (map === undefined) {
-      map = Object.create(null);
-
-      if ((0, _definition.isUnionType)(abstractType)) {
-        for (var _i14 = 0, _abstractType$getType2 = abstractType.getTypes(); _i14 < _abstractType$getType2.length; _i14++) {
-          var type = _abstractType$getType2[_i14];
-          map[type.name] = true;
-        }
-      } else {
-        var implementations = this.getImplementations(abstractType);
-
-        for (var _i16 = 0, _implementations$obje2 = implementations.objects; _i16 < _implementations$obje2.length; _i16++) {
-          var _type = _implementations$obje2[_i16];
-          map[_type.name] = true;
-        }
-
-        for (var _i18 = 0, _implementations$inte2 = implementations.interfaces; _i18 < _implementations$inte2.length; _i18++) {
-          var _type2 = _implementations$inte2[_i18];
-          map[_type2.name] = true;
-        }
-      }
-
-      this._subTypeMap[abstractType.name] = map;
-    }
-
-    return map[maybeSubType.name] !== undefined;
-  };
-
-  _proto.getDirectives = function getDirectives() {
-    return this._directives;
-  };
-
-  _proto.getDirective = function getDirective(name) {
-    return (0, _find.default)(this.getDirectives(), function (directive) {
-      return directive.name === name;
-    });
-  };
-
-  _proto.toConfig = function toConfig() {
-    var _this$extensionASTNod;
-
-    return {
-      description: this.description,
-      query: this.getQueryType(),
-      mutation: this.getMutationType(),
-      subscription: this.getSubscriptionType(),
-      types: (0, _objectValues5.default)(this.getTypeMap()),
-      directives: this.getDirectives().slice(),
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
-      assumeValid: this.__validationErrors !== undefined
-    };
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLSchema, [{
-    key: _symbols.SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLSchema';
-    }
-  }]);
-
-  return GraphQLSchema;
-}();
-
-exports.GraphQLSchema = GraphQLSchema;
-
-function collectReferencedTypes(type, typeSet) {
-  var namedType = (0, _definition.getNamedType)(type);
-
-  if (!typeSet.has(namedType)) {
-    typeSet.add(namedType);
-
-    if ((0, _definition.isUnionType)(namedType)) {
-      for (var _i20 = 0, _namedType$getTypes2 = namedType.getTypes(); _i20 < _namedType$getTypes2.length; _i20++) {
-        var memberType = _namedType$getTypes2[_i20];
-        collectReferencedTypes(memberType, typeSet);
-      }
-    } else if ((0, _definition.isObjectType)(namedType) || (0, _definition.isInterfaceType)(namedType)) {
-      for (var _i22 = 0, _namedType$getInterfa6 = namedType.getInterfaces(); _i22 < _namedType$getInterfa6.length; _i22++) {
-        var interfaceType = _namedType$getInterfa6[_i22];
-        collectReferencedTypes(interfaceType, typeSet);
-      }
-
-      for (var _i24 = 0, _objectValues2 = (0, _objectValues5.default)(namedType.getFields()); _i24 < _objectValues2.length; _i24++) {
-        var field = _objectValues2[_i24];
-        collectReferencedTypes(field.type, typeSet);
-
-        for (var _i26 = 0, _field$args2 = field.args; _i26 < _field$args2.length; _i26++) {
-          var arg = _field$args2[_i26];
-          collectReferencedTypes(arg.type, typeSet);
-        }
-      }
-    } else if ((0, _definition.isInputObjectType)(namedType)) {
-      for (var _i28 = 0, _objectValues4 = (0, _objectValues5.default)(namedType.getFields()); _i28 < _objectValues4.length; _i28++) {
-        var _field = _objectValues4[_i28];
-        collectReferencedTypes(_field.type, typeSet);
-      }
-    }
-  }
-
-  return typeSet;
-}
diff --git a/node_modules/graphql/type/schema.js.flow b/node_modules/graphql/type/schema.js.flow
deleted file mode 100644
index 5cb5241..0000000
--- a/node_modules/graphql/type/schema.js.flow
+++ /dev/null
@@ -1,429 +0,0 @@
-// @flow strict
-
-import find from '../polyfills/find';
-import arrayFrom from '../polyfills/arrayFrom';
-import objectValues from '../polyfills/objectValues';
-import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
-
-import inspect from '../jsutils/inspect';
-import toObjMap from '../jsutils/toObjMap';
-import devAssert from '../jsutils/devAssert';
-import instanceOf from '../jsutils/instanceOf';
-import isObjectLike from '../jsutils/isObjectLike';
-import {
-  type ObjMap,
-  type ReadOnlyObjMap,
-  type ReadOnlyObjMapLike,
-} from '../jsutils/ObjMap';
-
-import { type GraphQLError } from '../error/GraphQLError';
-import {
-  type SchemaDefinitionNode,
-  type SchemaExtensionNode,
-} from '../language/ast';
-
-import { __Schema } from './introspection';
-import {
-  GraphQLDirective,
-  isDirective,
-  specifiedDirectives,
-} from './directives';
-import {
-  type GraphQLType,
-  type GraphQLNamedType,
-  type GraphQLAbstractType,
-  type GraphQLObjectType,
-  type GraphQLInterfaceType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isInputObjectType,
-  getNamedType,
-} from './definition';
-
-/**
- * Test if the given value is a GraphQL schema.
- */
-declare function isSchema(schema: mixed): boolean %checks(schema instanceof
-  GraphQLSchema);
-// eslint-disable-next-line no-redeclare
-export function isSchema(schema) {
-  return instanceOf(schema, GraphQLSchema);
-}
-
-export function assertSchema(schema: mixed): GraphQLSchema {
-  if (!isSchema(schema)) {
-    throw new Error(`Expected ${inspect(schema)} to be a GraphQL schema.`);
-  }
-  return schema;
-}
-
-/**
- * Schema Definition
- *
- * A Schema is created by supplying the root types of each type of operation,
- * query and mutation (optional). A schema definition is then supplied to the
- * validator and executor.
- *
- * Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       query: MyAppQueryRootType,
- *       mutation: MyAppMutationRootType,
- *     })
- *
- * Note: When the schema is constructed, by default only the types that are
- * reachable by traversing the root types are included, other types must be
- * explicitly referenced.
- *
- * Example:
- *
- *     const characterInterface = new GraphQLInterfaceType({
- *       name: 'Character',
- *       ...
- *     });
- *
- *     const humanType = new GraphQLObjectType({
- *       name: 'Human',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const droidType = new GraphQLObjectType({
- *       name: 'Droid',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const schema = new GraphQLSchema({
- *       query: new GraphQLObjectType({
- *         name: 'Query',
- *         fields: {
- *           hero: { type: characterInterface, ... },
- *         }
- *       }),
- *       ...
- *       // Since this schema references only the `Character` interface it's
- *       // necessary to explicitly list the types that implement it if
- *       // you want them to be included in the final schema.
- *       types: [humanType, droidType],
- *     })
- *
- * Note: If an array of `directives` are provided to GraphQLSchema, that will be
- * the exact list of directives represented and allowed. If `directives` is not
- * provided then a default set of the specified directives (e.g. @include and
- * @skip) will be used. If you wish to provide *additional* directives to these
- * specified directives, you must explicitly declare them. Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       ...
- *       directives: specifiedDirectives.concat([ myCustomDirective ]),
- *     })
- *
- */
-export class GraphQLSchema {
-  description: ?string;
-  extensions: ?ReadOnlyObjMap<mixed>;
-  astNode: ?SchemaDefinitionNode;
-  extensionASTNodes: ?$ReadOnlyArray<SchemaExtensionNode>;
-
-  _queryType: ?GraphQLObjectType;
-  _mutationType: ?GraphQLObjectType;
-  _subscriptionType: ?GraphQLObjectType;
-  _directives: $ReadOnlyArray<GraphQLDirective>;
-  _typeMap: TypeMap;
-  _subTypeMap: ObjMap<ObjMap<boolean>>;
-  _implementationsMap: ObjMap<{|
-    objects: Array<GraphQLObjectType>,
-    interfaces: Array<GraphQLInterfaceType>,
-  |}>;
-
-  // Used as a cache for validateSchema().
-  __validationErrors: ?$ReadOnlyArray<GraphQLError>;
-
-  constructor(config: $ReadOnly<GraphQLSchemaConfig>): void {
-    // If this schema was built from a source known to be valid, then it may be
-    // marked with assumeValid to avoid an additional type system validation.
-    this.__validationErrors = config.assumeValid === true ? [] : undefined;
-
-    // Check for common mistakes during construction to produce early errors.
-    devAssert(isObjectLike(config), 'Must provide configuration object.');
-    devAssert(
-      !config.types || Array.isArray(config.types),
-      `"types" must be Array if provided but got: ${inspect(config.types)}.`,
-    );
-    devAssert(
-      !config.directives || Array.isArray(config.directives),
-      '"directives" must be Array if provided but got: ' +
-        `${inspect(config.directives)}.`,
-    );
-
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = config.extensionASTNodes;
-
-    this._queryType = config.query;
-    this._mutationType = config.mutation;
-    this._subscriptionType = config.subscription;
-    // Provide specified directives (e.g. @include and @skip) by default.
-    this._directives = config.directives ?? specifiedDirectives;
-
-    // To preserve order of user-provided types, we add first to add them to
-    // the set of "collected" types, so `collectReferencedTypes` ignore them.
-    const allReferencedTypes: Set<GraphQLNamedType> = new Set(config.types);
-    if (config.types != null) {
-      for (const type of config.types) {
-        // When we ready to process this type, we remove it from "collected" types
-        // and then add it together with all dependent types in the correct position.
-        allReferencedTypes.delete(type);
-        collectReferencedTypes(type, allReferencedTypes);
-      }
-    }
-
-    if (this._queryType != null) {
-      collectReferencedTypes(this._queryType, allReferencedTypes);
-    }
-    if (this._mutationType != null) {
-      collectReferencedTypes(this._mutationType, allReferencedTypes);
-    }
-    if (this._subscriptionType != null) {
-      collectReferencedTypes(this._subscriptionType, allReferencedTypes);
-    }
-
-    for (const directive of this._directives) {
-      // Directives are not validated until validateSchema() is called.
-      if (isDirective(directive)) {
-        for (const arg of directive.args) {
-          collectReferencedTypes(arg.type, allReferencedTypes);
-        }
-      }
-    }
-    collectReferencedTypes(__Schema, allReferencedTypes);
-
-    // Storing the resulting map for reference by the schema.
-    this._typeMap = Object.create(null);
-    this._subTypeMap = Object.create(null);
-    // Keep track of all implementations by interface name.
-    this._implementationsMap = Object.create(null);
-
-    for (const namedType of arrayFrom(allReferencedTypes)) {
-      if (namedType == null) {
-        continue;
-      }
-
-      const typeName = namedType.name;
-      if (this._typeMap[typeName] !== undefined) {
-        throw new Error(
-          `Schema must contain uniquely named types but contains multiple types named "${typeName}".`,
-        );
-      }
-      this._typeMap[typeName] = namedType;
-
-      if (isInterfaceType(namedType)) {
-        // Store implementations by interface.
-        for (const iface of namedType.getInterfaces()) {
-          if (isInterfaceType(iface)) {
-            let implementations = this._implementationsMap[iface.name];
-            if (implementations === undefined) {
-              implementations = this._implementationsMap[iface.name] = {
-                objects: [],
-                interfaces: [],
-              };
-            }
-
-            implementations.interfaces.push(namedType);
-          }
-        }
-      } else if (isObjectType(namedType)) {
-        // Store implementations by objects.
-        for (const iface of namedType.getInterfaces()) {
-          if (isInterfaceType(iface)) {
-            let implementations = this._implementationsMap[iface.name];
-            if (implementations === undefined) {
-              implementations = this._implementationsMap[iface.name] = {
-                objects: [],
-                interfaces: [],
-              };
-            }
-
-            implementations.objects.push(namedType);
-          }
-        }
-      }
-    }
-  }
-
-  getQueryType(): ?GraphQLObjectType {
-    return this._queryType;
-  }
-
-  getMutationType(): ?GraphQLObjectType {
-    return this._mutationType;
-  }
-
-  getSubscriptionType(): ?GraphQLObjectType {
-    return this._subscriptionType;
-  }
-
-  getTypeMap(): TypeMap {
-    return this._typeMap;
-  }
-
-  getType(name: string): ?GraphQLNamedType {
-    return this.getTypeMap()[name];
-  }
-
-  getPossibleTypes(
-    abstractType: GraphQLAbstractType,
-  ): $ReadOnlyArray<GraphQLObjectType> {
-    return isUnionType(abstractType)
-      ? abstractType.getTypes()
-      : this.getImplementations(abstractType).objects;
-  }
-
-  getImplementations(
-    interfaceType: GraphQLInterfaceType,
-  ): {|
-    objects: /* $ReadOnly */ Array<GraphQLObjectType>,
-    interfaces: /* $ReadOnly */ Array<GraphQLInterfaceType>,
-  |} {
-    const implementations = this._implementationsMap[interfaceType.name];
-    return implementations ?? { objects: [], interfaces: [] };
-  }
-
-  // @deprecated: use isSubType instead - will be removed in v16.
-  isPossibleType(
-    abstractType: GraphQLAbstractType,
-    possibleType: GraphQLObjectType,
-  ): boolean {
-    return this.isSubType(abstractType, possibleType);
-  }
-
-  isSubType(
-    abstractType: GraphQLAbstractType,
-    maybeSubType: GraphQLObjectType | GraphQLInterfaceType,
-  ): boolean {
-    let map = this._subTypeMap[abstractType.name];
-    if (map === undefined) {
-      map = Object.create(null);
-
-      if (isUnionType(abstractType)) {
-        for (const type of abstractType.getTypes()) {
-          map[type.name] = true;
-        }
-      } else {
-        const implementations = this.getImplementations(abstractType);
-        for (const type of implementations.objects) {
-          map[type.name] = true;
-        }
-        for (const type of implementations.interfaces) {
-          map[type.name] = true;
-        }
-      }
-
-      this._subTypeMap[abstractType.name] = map;
-    }
-    return map[maybeSubType.name] !== undefined;
-  }
-
-  getDirectives(): $ReadOnlyArray<GraphQLDirective> {
-    return this._directives;
-  }
-
-  getDirective(name: string): ?GraphQLDirective {
-    return find(this.getDirectives(), directive => directive.name === name);
-  }
-
-  toConfig(): GraphQLSchemaNormalizedConfig {
-    return {
-      description: this.description,
-      query: this.getQueryType(),
-      mutation: this.getMutationType(),
-      subscription: this.getSubscriptionType(),
-      types: objectValues(this.getTypeMap()),
-      directives: this.getDirectives().slice(),
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: this.extensionASTNodes ?? [],
-      assumeValid: this.__validationErrors !== undefined,
-    };
-  }
-
-  // $FlowFixMe Flow doesn't support computed properties yet
-  get [SYMBOL_TO_STRING_TAG]() {
-    return 'GraphQLSchema';
-  }
-}
-
-type TypeMap = ObjMap<GraphQLNamedType>;
-
-export type GraphQLSchemaValidationOptions = {|
-  /**
-   * When building a schema from a GraphQL service's introspection result, it
-   * might be safe to assume the schema is valid. Set to true to assume the
-   * produced schema is valid.
-   *
-   * Default: false
-   */
-  assumeValid?: boolean,
-|};
-
-export type GraphQLSchemaConfig = {|
-  description?: ?string,
-  query?: ?GraphQLObjectType,
-  mutation?: ?GraphQLObjectType,
-  subscription?: ?GraphQLObjectType,
-  types?: ?Array<GraphQLNamedType>,
-  directives?: ?Array<GraphQLDirective>,
-  extensions?: ?ReadOnlyObjMapLike<mixed>,
-  astNode?: ?SchemaDefinitionNode,
-  extensionASTNodes?: ?$ReadOnlyArray<SchemaExtensionNode>,
-  ...GraphQLSchemaValidationOptions,
-|};
-
-/**
- * @internal
- */
-export type GraphQLSchemaNormalizedConfig = {|
-  ...GraphQLSchemaConfig,
-  description: ?string,
-  types: Array<GraphQLNamedType>,
-  directives: Array<GraphQLDirective>,
-  extensions: ?ReadOnlyObjMap<mixed>,
-  extensionASTNodes: $ReadOnlyArray<SchemaExtensionNode>,
-  assumeValid: boolean,
-|};
-
-function collectReferencedTypes(
-  type: GraphQLType,
-  typeSet: Set<GraphQLNamedType>,
-): Set<GraphQLNamedType> {
-  const namedType = getNamedType(type);
-
-  if (!typeSet.has(namedType)) {
-    typeSet.add(namedType);
-    if (isUnionType(namedType)) {
-      for (const memberType of namedType.getTypes()) {
-        collectReferencedTypes(memberType, typeSet);
-      }
-    } else if (isObjectType(namedType) || isInterfaceType(namedType)) {
-      for (const interfaceType of namedType.getInterfaces()) {
-        collectReferencedTypes(interfaceType, typeSet);
-      }
-
-      for (const field of objectValues(namedType.getFields())) {
-        collectReferencedTypes(field.type, typeSet);
-        for (const arg of field.args) {
-          collectReferencedTypes(arg.type, typeSet);
-        }
-      }
-    } else if (isInputObjectType(namedType)) {
-      for (const field of objectValues(namedType.getFields())) {
-        collectReferencedTypes(field.type, typeSet);
-      }
-    }
-  }
-
-  return typeSet;
-}
diff --git a/node_modules/graphql/type/schema.mjs b/node_modules/graphql/type/schema.mjs
deleted file mode 100644
index 8557cca..0000000
--- a/node_modules/graphql/type/schema.mjs
+++ /dev/null
@@ -1,362 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-import find from "../polyfills/find.mjs";
-import arrayFrom from "../polyfills/arrayFrom.mjs";
-import objectValues from "../polyfills/objectValues.mjs";
-import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import toObjMap from "../jsutils/toObjMap.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import instanceOf from "../jsutils/instanceOf.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import { __Schema } from "./introspection.mjs";
-import { GraphQLDirective, isDirective, specifiedDirectives } from "./directives.mjs";
-import { isObjectType, isInterfaceType, isUnionType, isInputObjectType, getNamedType } from "./definition.mjs";
-/**
- * Test if the given value is a GraphQL schema.
- */
-
-// eslint-disable-next-line no-redeclare
-export function isSchema(schema) {
-  return instanceOf(schema, GraphQLSchema);
-}
-export function assertSchema(schema) {
-  if (!isSchema(schema)) {
-    throw new Error("Expected ".concat(inspect(schema), " to be a GraphQL schema."));
-  }
-
-  return schema;
-}
-/**
- * Schema Definition
- *
- * A Schema is created by supplying the root types of each type of operation,
- * query and mutation (optional). A schema definition is then supplied to the
- * validator and executor.
- *
- * Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       query: MyAppQueryRootType,
- *       mutation: MyAppMutationRootType,
- *     })
- *
- * Note: When the schema is constructed, by default only the types that are
- * reachable by traversing the root types are included, other types must be
- * explicitly referenced.
- *
- * Example:
- *
- *     const characterInterface = new GraphQLInterfaceType({
- *       name: 'Character',
- *       ...
- *     });
- *
- *     const humanType = new GraphQLObjectType({
- *       name: 'Human',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const droidType = new GraphQLObjectType({
- *       name: 'Droid',
- *       interfaces: [characterInterface],
- *       ...
- *     });
- *
- *     const schema = new GraphQLSchema({
- *       query: new GraphQLObjectType({
- *         name: 'Query',
- *         fields: {
- *           hero: { type: characterInterface, ... },
- *         }
- *       }),
- *       ...
- *       // Since this schema references only the `Character` interface it's
- *       // necessary to explicitly list the types that implement it if
- *       // you want them to be included in the final schema.
- *       types: [humanType, droidType],
- *     })
- *
- * Note: If an array of `directives` are provided to GraphQLSchema, that will be
- * the exact list of directives represented and allowed. If `directives` is not
- * provided then a default set of the specified directives (e.g. @include and
- * @skip) will be used. If you wish to provide *additional* directives to these
- * specified directives, you must explicitly declare them. Example:
- *
- *     const MyAppSchema = new GraphQLSchema({
- *       ...
- *       directives: specifiedDirectives.concat([ myCustomDirective ]),
- *     })
- *
- */
-
-export var GraphQLSchema =
-/*#__PURE__*/
-function () {
-  // Used as a cache for validateSchema().
-  function GraphQLSchema(config) {
-    var _config$directives;
-
-    // If this schema was built from a source known to be valid, then it may be
-    // marked with assumeValid to avoid an additional type system validation.
-    this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.
-
-    isObjectLike(config) || devAssert(0, 'Must provide configuration object.');
-    !config.types || Array.isArray(config.types) || devAssert(0, "\"types\" must be Array if provided but got: ".concat(inspect(config.types), "."));
-    !config.directives || Array.isArray(config.directives) || devAssert(0, '"directives" must be Array if provided but got: ' + "".concat(inspect(config.directives), "."));
-    this.description = config.description;
-    this.extensions = config.extensions && toObjMap(config.extensions);
-    this.astNode = config.astNode;
-    this.extensionASTNodes = config.extensionASTNodes;
-    this._queryType = config.query;
-    this._mutationType = config.mutation;
-    this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.
-
-    this._directives = (_config$directives = config.directives) !== null && _config$directives !== void 0 ? _config$directives : specifiedDirectives; // To preserve order of user-provided types, we add first to add them to
-    // the set of "collected" types, so `collectReferencedTypes` ignore them.
-
-    var allReferencedTypes = new Set(config.types);
-
-    if (config.types != null) {
-      for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {
-        var type = _config$types2[_i2];
-        // When we ready to process this type, we remove it from "collected" types
-        // and then add it together with all dependent types in the correct position.
-        allReferencedTypes.delete(type);
-        collectReferencedTypes(type, allReferencedTypes);
-      }
-    }
-
-    if (this._queryType != null) {
-      collectReferencedTypes(this._queryType, allReferencedTypes);
-    }
-
-    if (this._mutationType != null) {
-      collectReferencedTypes(this._mutationType, allReferencedTypes);
-    }
-
-    if (this._subscriptionType != null) {
-      collectReferencedTypes(this._subscriptionType, allReferencedTypes);
-    }
-
-    for (var _i4 = 0, _this$_directives2 = this._directives; _i4 < _this$_directives2.length; _i4++) {
-      var directive = _this$_directives2[_i4];
-
-      // Directives are not validated until validateSchema() is called.
-      if (isDirective(directive)) {
-        for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {
-          var arg = _directive$args2[_i6];
-          collectReferencedTypes(arg.type, allReferencedTypes);
-        }
-      }
-    }
-
-    collectReferencedTypes(__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.
-
-    this._typeMap = Object.create(null);
-    this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.
-
-    this._implementationsMap = Object.create(null);
-
-    for (var _i8 = 0, _arrayFrom2 = arrayFrom(allReferencedTypes); _i8 < _arrayFrom2.length; _i8++) {
-      var namedType = _arrayFrom2[_i8];
-
-      if (namedType == null) {
-        continue;
-      }
-
-      var typeName = namedType.name;
-
-      if (this._typeMap[typeName] !== undefined) {
-        throw new Error("Schema must contain uniquely named types but contains multiple types named \"".concat(typeName, "\"."));
-      }
-
-      this._typeMap[typeName] = namedType;
-
-      if (isInterfaceType(namedType)) {
-        // Store implementations by interface.
-        for (var _i10 = 0, _namedType$getInterfa2 = namedType.getInterfaces(); _i10 < _namedType$getInterfa2.length; _i10++) {
-          var iface = _namedType$getInterfa2[_i10];
-
-          if (isInterfaceType(iface)) {
-            var implementations = this._implementationsMap[iface.name];
-
-            if (implementations === undefined) {
-              implementations = this._implementationsMap[iface.name] = {
-                objects: [],
-                interfaces: []
-              };
-            }
-
-            implementations.interfaces.push(namedType);
-          }
-        }
-      } else if (isObjectType(namedType)) {
-        // Store implementations by objects.
-        for (var _i12 = 0, _namedType$getInterfa4 = namedType.getInterfaces(); _i12 < _namedType$getInterfa4.length; _i12++) {
-          var _iface = _namedType$getInterfa4[_i12];
-
-          if (isInterfaceType(_iface)) {
-            var _implementations = this._implementationsMap[_iface.name];
-
-            if (_implementations === undefined) {
-              _implementations = this._implementationsMap[_iface.name] = {
-                objects: [],
-                interfaces: []
-              };
-            }
-
-            _implementations.objects.push(namedType);
-          }
-        }
-      }
-    }
-  }
-
-  var _proto = GraphQLSchema.prototype;
-
-  _proto.getQueryType = function getQueryType() {
-    return this._queryType;
-  };
-
-  _proto.getMutationType = function getMutationType() {
-    return this._mutationType;
-  };
-
-  _proto.getSubscriptionType = function getSubscriptionType() {
-    return this._subscriptionType;
-  };
-
-  _proto.getTypeMap = function getTypeMap() {
-    return this._typeMap;
-  };
-
-  _proto.getType = function getType(name) {
-    return this.getTypeMap()[name];
-  };
-
-  _proto.getPossibleTypes = function getPossibleTypes(abstractType) {
-    return isUnionType(abstractType) ? abstractType.getTypes() : this.getImplementations(abstractType).objects;
-  };
-
-  _proto.getImplementations = function getImplementations(interfaceType) {
-    var implementations = this._implementationsMap[interfaceType.name];
-    return implementations !== null && implementations !== void 0 ? implementations : {
-      objects: [],
-      interfaces: []
-    };
-  } // @deprecated: use isSubType instead - will be removed in v16.
-  ;
-
-  _proto.isPossibleType = function isPossibleType(abstractType, possibleType) {
-    return this.isSubType(abstractType, possibleType);
-  };
-
-  _proto.isSubType = function isSubType(abstractType, maybeSubType) {
-    var map = this._subTypeMap[abstractType.name];
-
-    if (map === undefined) {
-      map = Object.create(null);
-
-      if (isUnionType(abstractType)) {
-        for (var _i14 = 0, _abstractType$getType2 = abstractType.getTypes(); _i14 < _abstractType$getType2.length; _i14++) {
-          var type = _abstractType$getType2[_i14];
-          map[type.name] = true;
-        }
-      } else {
-        var implementations = this.getImplementations(abstractType);
-
-        for (var _i16 = 0, _implementations$obje2 = implementations.objects; _i16 < _implementations$obje2.length; _i16++) {
-          var _type = _implementations$obje2[_i16];
-          map[_type.name] = true;
-        }
-
-        for (var _i18 = 0, _implementations$inte2 = implementations.interfaces; _i18 < _implementations$inte2.length; _i18++) {
-          var _type2 = _implementations$inte2[_i18];
-          map[_type2.name] = true;
-        }
-      }
-
-      this._subTypeMap[abstractType.name] = map;
-    }
-
-    return map[maybeSubType.name] !== undefined;
-  };
-
-  _proto.getDirectives = function getDirectives() {
-    return this._directives;
-  };
-
-  _proto.getDirective = function getDirective(name) {
-    return find(this.getDirectives(), function (directive) {
-      return directive.name === name;
-    });
-  };
-
-  _proto.toConfig = function toConfig() {
-    var _this$extensionASTNod;
-
-    return {
-      description: this.description,
-      query: this.getQueryType(),
-      mutation: this.getMutationType(),
-      subscription: this.getSubscriptionType(),
-      types: objectValues(this.getTypeMap()),
-      directives: this.getDirectives().slice(),
-      extensions: this.extensions,
-      astNode: this.astNode,
-      extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
-      assumeValid: this.__validationErrors !== undefined
-    };
-  } // $FlowFixMe Flow doesn't support computed properties yet
-  ;
-
-  _createClass(GraphQLSchema, [{
-    key: SYMBOL_TO_STRING_TAG,
-    get: function get() {
-      return 'GraphQLSchema';
-    }
-  }]);
-
-  return GraphQLSchema;
-}();
-
-function collectReferencedTypes(type, typeSet) {
-  var namedType = getNamedType(type);
-
-  if (!typeSet.has(namedType)) {
-    typeSet.add(namedType);
-
-    if (isUnionType(namedType)) {
-      for (var _i20 = 0, _namedType$getTypes2 = namedType.getTypes(); _i20 < _namedType$getTypes2.length; _i20++) {
-        var memberType = _namedType$getTypes2[_i20];
-        collectReferencedTypes(memberType, typeSet);
-      }
-    } else if (isObjectType(namedType) || isInterfaceType(namedType)) {
-      for (var _i22 = 0, _namedType$getInterfa6 = namedType.getInterfaces(); _i22 < _namedType$getInterfa6.length; _i22++) {
-        var interfaceType = _namedType$getInterfa6[_i22];
-        collectReferencedTypes(interfaceType, typeSet);
-      }
-
-      for (var _i24 = 0, _objectValues2 = objectValues(namedType.getFields()); _i24 < _objectValues2.length; _i24++) {
-        var field = _objectValues2[_i24];
-        collectReferencedTypes(field.type, typeSet);
-
-        for (var _i26 = 0, _field$args2 = field.args; _i26 < _field$args2.length; _i26++) {
-          var arg = _field$args2[_i26];
-          collectReferencedTypes(arg.type, typeSet);
-        }
-      }
-    } else if (isInputObjectType(namedType)) {
-      for (var _i28 = 0, _objectValues4 = objectValues(namedType.getFields()); _i28 < _objectValues4.length; _i28++) {
-        var _field = _objectValues4[_i28];
-        collectReferencedTypes(_field.type, typeSet);
-      }
-    }
-  }
-
-  return typeSet;
-}
diff --git a/node_modules/graphql/type/validate.d.ts b/node_modules/graphql/type/validate.d.ts
deleted file mode 100644
index 98400a2..0000000
--- a/node_modules/graphql/type/validate.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLError } from '../error/GraphQLError';
-
-import { GraphQLSchema } from './schema';
-
-/**
- * Implements the "Type Validation" sub-sections of the specification's
- * "Type System" section.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the Schema is valid.
- */
-export function validateSchema(
-  schema: GraphQLSchema,
-): ReadonlyArray<GraphQLError>;
-
-/**
- * Utility function which asserts a schema is valid by throwing an error if
- * it is invalid.
- */
-export function assertValidSchema(schema: GraphQLSchema): void;
diff --git a/node_modules/graphql/type/validate.js b/node_modules/graphql/type/validate.js
deleted file mode 100644
index 13da100..0000000
--- a/node_modules/graphql/type/validate.js
+++ /dev/null
@@ -1,504 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.validateSchema = validateSchema;
-exports.assertValidSchema = assertValidSchema;
-
-var _find = _interopRequireDefault(require("../polyfills/find"));
-
-var _flatMap = _interopRequireDefault(require("../polyfills/flatMap"));
-
-var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _locatedError = require("../error/locatedError");
-
-var _assertValidName = require("../utilities/assertValidName");
-
-var _typeComparators = require("../utilities/typeComparators");
-
-var _directives = require("./directives");
-
-var _introspection = require("./introspection");
-
-var _schema = require("./schema");
-
-var _definition = require("./definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Implements the "Type Validation" sub-sections of the specification's
- * "Type System" section.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the Schema is valid.
- */
-function validateSchema(schema) {
-  // First check to ensure the provided value is in fact a GraphQLSchema.
-  (0, _schema.assertSchema)(schema); // If this Schema has already been validated, return the previous results.
-
-  if (schema.__validationErrors) {
-    return schema.__validationErrors;
-  } // Validate the schema, producing a list of errors.
-
-
-  var context = new SchemaValidationContext(schema);
-  validateRootTypes(context);
-  validateDirectives(context);
-  validateTypes(context); // Persist the results of validation before returning to ensure validation
-  // does not run multiple times for this schema.
-
-  var errors = context.getErrors();
-  schema.__validationErrors = errors;
-  return errors;
-}
-/**
- * Utility function which asserts a schema is valid by throwing an error if
- * it is invalid.
- */
-
-
-function assertValidSchema(schema) {
-  var errors = validateSchema(schema);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
-
-var SchemaValidationContext =
-/*#__PURE__*/
-function () {
-  function SchemaValidationContext(schema) {
-    this._errors = [];
-    this.schema = schema;
-  }
-
-  var _proto = SchemaValidationContext.prototype;
-
-  _proto.reportError = function reportError(message, nodes) {
-    var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;
-
-    this.addError(new _GraphQLError.GraphQLError(message, _nodes));
-  };
-
-  _proto.addError = function addError(error) {
-    this._errors.push(error);
-  };
-
-  _proto.getErrors = function getErrors() {
-    return this._errors;
-  };
-
-  return SchemaValidationContext;
-}();
-
-function validateRootTypes(context) {
-  var schema = context.schema;
-  var queryType = schema.getQueryType();
-
-  if (!queryType) {
-    context.reportError('Query root type must be provided.', schema.astNode);
-  } else if (!(0, _definition.isObjectType)(queryType)) {
-    context.reportError("Query root type must be Object type, it cannot be ".concat((0, _inspect.default)(queryType), "."), getOperationTypeNode(schema, queryType, 'query'));
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType && !(0, _definition.isObjectType)(mutationType)) {
-    context.reportError('Mutation root type must be Object type if provided, it cannot be ' + "".concat((0, _inspect.default)(mutationType), "."), getOperationTypeNode(schema, mutationType, 'mutation'));
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType && !(0, _definition.isObjectType)(subscriptionType)) {
-    context.reportError('Subscription root type must be Object type if provided, it cannot be ' + "".concat((0, _inspect.default)(subscriptionType), "."), getOperationTypeNode(schema, subscriptionType, 'subscription'));
-  }
-}
-
-function getOperationTypeNode(schema, type, operation) {
-  var operationNodes = getAllSubNodes(schema, function (node) {
-    return node.operationTypes;
-  });
-
-  for (var _i2 = 0; _i2 < operationNodes.length; _i2++) {
-    var node = operationNodes[_i2];
-
-    if (node.operation === operation) {
-      return node.type;
-    }
-  }
-
-  return type.astNode;
-}
-
-function validateDirectives(context) {
-  for (var _i4 = 0, _context$schema$getDi2 = context.schema.getDirectives(); _i4 < _context$schema$getDi2.length; _i4++) {
-    var directive = _context$schema$getDi2[_i4];
-
-    // Ensure all directives are in fact GraphQL directives.
-    if (!(0, _directives.isDirective)(directive)) {
-      context.reportError("Expected directive but got: ".concat((0, _inspect.default)(directive), "."), directive === null || directive === void 0 ? void 0 : directive.astNode);
-      continue;
-    } // Ensure they are named correctly.
-
-
-    validateName(context, directive); // TODO: Ensure proper locations.
-    // Ensure the arguments are valid.
-
-    for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {
-      var arg = _directive$args2[_i6];
-      // Ensure they are named correctly.
-      validateName(context, arg); // Ensure the type is an input type.
-
-      if (!(0, _definition.isInputType)(arg.type)) {
-        context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat((0, _inspect.default)(arg.type), "."), arg.astNode);
-      }
-    }
-  }
-}
-
-function validateName(context, node) {
-  // Ensure names are valid, however introspection types opt out.
-  var error = (0, _assertValidName.isValidNameError)(node.name);
-
-  if (error) {
-    context.addError((0, _locatedError.locatedError)(error, node.astNode));
-  }
-}
-
-function validateTypes(context) {
-  var validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(context);
-  var typeMap = context.schema.getTypeMap();
-
-  for (var _i8 = 0, _objectValues2 = (0, _objectValues5.default)(typeMap); _i8 < _objectValues2.length; _i8++) {
-    var type = _objectValues2[_i8];
-
-    // Ensure all provided types are in fact GraphQL type.
-    if (!(0, _definition.isNamedType)(type)) {
-      context.reportError("Expected GraphQL named type but got: ".concat((0, _inspect.default)(type), "."), type.astNode);
-      continue;
-    } // Ensure it is named correctly (excluding introspection types).
-
-
-    if (!(0, _introspection.isIntrospectionType)(type)) {
-      validateName(context, type);
-    }
-
-    if ((0, _definition.isObjectType)(type)) {
-      // Ensure fields are valid
-      validateFields(context, type); // Ensure objects implement the interfaces they claim to.
-
-      validateInterfaces(context, type);
-    } else if ((0, _definition.isInterfaceType)(type)) {
-      // Ensure fields are valid.
-      validateFields(context, type); // Ensure interfaces implement the interfaces they claim to.
-
-      validateInterfaces(context, type);
-    } else if ((0, _definition.isUnionType)(type)) {
-      // Ensure Unions include valid member types.
-      validateUnionMembers(context, type);
-    } else if ((0, _definition.isEnumType)(type)) {
-      // Ensure Enums have valid values.
-      validateEnumValues(context, type);
-    } else if ((0, _definition.isInputObjectType)(type)) {
-      // Ensure Input Object fields are valid.
-      validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references
-
-      validateInputObjectCircularRefs(type);
-    }
-  }
-}
-
-function validateFields(context, type) {
-  var fields = (0, _objectValues5.default)(type.getFields()); // Objects and Interfaces both must define one or more fields.
-
-  if (fields.length === 0) {
-    context.reportError("Type ".concat(type.name, " must define one or more fields."), getAllNodes(type));
-  }
-
-  for (var _i10 = 0; _i10 < fields.length; _i10++) {
-    var field = fields[_i10];
-    // Ensure they are named correctly.
-    validateName(context, field); // Ensure the type is an output type
-
-    if (!(0, _definition.isOutputType)(field.type)) {
-      var _field$astNode;
-
-      context.reportError("The type of ".concat(type.name, ".").concat(field.name, " must be Output Type ") + "but got: ".concat((0, _inspect.default)(field.type), "."), (_field$astNode = field.astNode) === null || _field$astNode === void 0 ? void 0 : _field$astNode.type);
-    } // Ensure the arguments are valid
-
-
-    for (var _i12 = 0, _field$args2 = field.args; _i12 < _field$args2.length; _i12++) {
-      var arg = _field$args2[_i12];
-      var argName = arg.name; // Ensure they are named correctly.
-
-      validateName(context, arg); // Ensure the type is an input type
-
-      if (!(0, _definition.isInputType)(arg.type)) {
-        var _arg$astNode;
-
-        context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat((0, _inspect.default)(arg.type), "."), (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type);
-      }
-    }
-  }
-}
-
-function validateInterfaces(context, type) {
-  var ifaceTypeNames = Object.create(null);
-
-  for (var _i14 = 0, _type$getInterfaces2 = type.getInterfaces(); _i14 < _type$getInterfaces2.length; _i14++) {
-    var iface = _type$getInterfaces2[_i14];
-
-    if (!(0, _definition.isInterfaceType)(iface)) {
-      context.reportError("Type ".concat((0, _inspect.default)(type), " must only implement Interface types, ") + "it cannot implement ".concat((0, _inspect.default)(iface), "."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    if (type === iface) {
-      context.reportError("Type ".concat(type.name, " cannot implement itself because it would create a circular reference."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    if (ifaceTypeNames[iface.name]) {
-      context.reportError("Type ".concat(type.name, " can only implement ").concat(iface.name, " once."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    ifaceTypeNames[iface.name] = true;
-    validateTypeImplementsAncestors(context, type, iface);
-    validateTypeImplementsInterface(context, type, iface);
-  }
-}
-
-function validateTypeImplementsInterface(context, type, iface) {
-  var typeFieldMap = type.getFields(); // Assert each interface field is implemented.
-
-  for (var _i16 = 0, _objectValues4 = (0, _objectValues5.default)(iface.getFields()); _i16 < _objectValues4.length; _i16++) {
-    var ifaceField = _objectValues4[_i16];
-    var fieldName = ifaceField.name;
-    var typeField = typeFieldMap[fieldName]; // Assert interface field exists on type.
-
-    if (!typeField) {
-      context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expected but ").concat(type.name, " does not provide it."), [ifaceField.astNode].concat(getAllNodes(type)));
-      continue;
-    } // Assert interface field type is satisfied by type field type, by being
-    // a valid subtype. (covariant)
-
-
-    if (!(0, _typeComparators.isTypeSubTypeOf)(context.schema, typeField.type, ifaceField.type)) {
-      context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expects type ") + "".concat((0, _inspect.default)(ifaceField.type), " but ").concat(type.name, ".").concat(fieldName, " ") + "is type ".concat((0, _inspect.default)(typeField.type), "."), [ifaceField.astNode.type, typeField.astNode.type]);
-    } // Assert each interface field arg is implemented.
-
-
-    var _loop = function _loop(_i18, _ifaceField$args2) {
-      var ifaceArg = _ifaceField$args2[_i18];
-      var argName = ifaceArg.name;
-      var typeArg = (0, _find.default)(typeField.args, function (arg) {
-        return arg.name === argName;
-      }); // Assert interface field arg exists on object field.
-
-      if (!typeArg) {
-        context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) expected but ").concat(type.name, ".").concat(fieldName, " does not provide it."), [ifaceArg.astNode, typeField.astNode]);
-        return "continue";
-      } // Assert interface field arg type matches object field arg type.
-      // (invariant)
-      // TODO: change to contravariant?
-
-
-      if (!(0, _typeComparators.isEqualType)(ifaceArg.type, typeArg.type)) {
-        context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) ") + "expects type ".concat((0, _inspect.default)(ifaceArg.type), " but ") + "".concat(type.name, ".").concat(fieldName, "(").concat(argName, ":) is type ") + "".concat((0, _inspect.default)(typeArg.type), "."), [ifaceArg.astNode.type, typeArg.astNode.type]);
-      } // TODO: validate default values?
-
-    };
-
-    for (var _i18 = 0, _ifaceField$args2 = ifaceField.args; _i18 < _ifaceField$args2.length; _i18++) {
-      var _ret = _loop(_i18, _ifaceField$args2);
-
-      if (_ret === "continue") continue;
-    } // Assert additional arguments must not be required.
-
-
-    var _loop2 = function _loop2(_i20, _typeField$args2) {
-      var typeArg = _typeField$args2[_i20];
-      var argName = typeArg.name;
-      var ifaceArg = (0, _find.default)(ifaceField.args, function (arg) {
-        return arg.name === argName;
-      });
-
-      if (!ifaceArg && (0, _definition.isRequiredArgument)(typeArg)) {
-        context.reportError("Object field ".concat(type.name, ".").concat(fieldName, " includes required argument ").concat(argName, " that is missing from the Interface field ").concat(iface.name, ".").concat(fieldName, "."), [typeArg.astNode, ifaceField.astNode]);
-      }
-    };
-
-    for (var _i20 = 0, _typeField$args2 = typeField.args; _i20 < _typeField$args2.length; _i20++) {
-      _loop2(_i20, _typeField$args2);
-    }
-  }
-}
-
-function validateTypeImplementsAncestors(context, type, iface) {
-  var ifaceInterfaces = type.getInterfaces();
-
-  for (var _i22 = 0, _iface$getInterfaces2 = iface.getInterfaces(); _i22 < _iface$getInterfaces2.length; _i22++) {
-    var transitive = _iface$getInterfaces2[_i22];
-
-    if (ifaceInterfaces.indexOf(transitive) === -1) {
-      context.reportError(transitive === type ? "Type ".concat(type.name, " cannot implement ").concat(iface.name, " because it would create a circular reference.") : "Type ".concat(type.name, " must implement ").concat(transitive.name, " because it is implemented by ").concat(iface.name, "."), [].concat(getAllImplementsInterfaceNodes(iface, transitive), getAllImplementsInterfaceNodes(type, iface)));
-    }
-  }
-}
-
-function validateUnionMembers(context, union) {
-  var memberTypes = union.getTypes();
-
-  if (memberTypes.length === 0) {
-    context.reportError("Union type ".concat(union.name, " must define one or more member types."), getAllNodes(union));
-  }
-
-  var includedTypeNames = Object.create(null);
-
-  for (var _i24 = 0; _i24 < memberTypes.length; _i24++) {
-    var memberType = memberTypes[_i24];
-
-    if (includedTypeNames[memberType.name]) {
-      context.reportError("Union type ".concat(union.name, " can only include type ").concat(memberType.name, " once."), getUnionMemberTypeNodes(union, memberType.name));
-      continue;
-    }
-
-    includedTypeNames[memberType.name] = true;
-
-    if (!(0, _definition.isObjectType)(memberType)) {
-      context.reportError("Union type ".concat(union.name, " can only include Object types, ") + "it cannot include ".concat((0, _inspect.default)(memberType), "."), getUnionMemberTypeNodes(union, String(memberType)));
-    }
-  }
-}
-
-function validateEnumValues(context, enumType) {
-  var enumValues = enumType.getValues();
-
-  if (enumValues.length === 0) {
-    context.reportError("Enum type ".concat(enumType.name, " must define one or more values."), getAllNodes(enumType));
-  }
-
-  for (var _i26 = 0; _i26 < enumValues.length; _i26++) {
-    var enumValue = enumValues[_i26];
-    var valueName = enumValue.name; // Ensure valid name.
-
-    validateName(context, enumValue);
-
-    if (valueName === 'true' || valueName === 'false' || valueName === 'null') {
-      context.reportError("Enum type ".concat(enumType.name, " cannot include value: ").concat(valueName, "."), enumValue.astNode);
-    }
-  }
-}
-
-function validateInputFields(context, inputObj) {
-  var fields = (0, _objectValues5.default)(inputObj.getFields());
-
-  if (fields.length === 0) {
-    context.reportError("Input Object type ".concat(inputObj.name, " must define one or more fields."), getAllNodes(inputObj));
-  } // Ensure the arguments are valid
-
-
-  for (var _i28 = 0; _i28 < fields.length; _i28++) {
-    var field = fields[_i28];
-    // Ensure they are named correctly.
-    validateName(context, field); // Ensure the type is an input type
-
-    if (!(0, _definition.isInputType)(field.type)) {
-      var _field$astNode2;
-
-      context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat((0, _inspect.default)(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
-    }
-  }
-}
-
-function createInputObjectCircularRefsValidator(context) {
-  // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
-  // Tracks already visited types to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  var visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors
-
-  var fieldPath = []; // Position in the type path
-
-  var fieldPathIndexByTypeName = Object.create(null);
-  return detectCycleRecursive; // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-
-  function detectCycleRecursive(inputObj) {
-    if (visitedTypes[inputObj.name]) {
-      return;
-    }
-
-    visitedTypes[inputObj.name] = true;
-    fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;
-    var fields = (0, _objectValues5.default)(inputObj.getFields());
-
-    for (var _i30 = 0; _i30 < fields.length; _i30++) {
-      var field = fields[_i30];
-
-      if ((0, _definition.isNonNullType)(field.type) && (0, _definition.isInputObjectType)(field.type.ofType)) {
-        var fieldType = field.type.ofType;
-        var cycleIndex = fieldPathIndexByTypeName[fieldType.name];
-        fieldPath.push(field);
-
-        if (cycleIndex === undefined) {
-          detectCycleRecursive(fieldType);
-        } else {
-          var cyclePath = fieldPath.slice(cycleIndex);
-          var pathStr = cyclePath.map(function (fieldObj) {
-            return fieldObj.name;
-          }).join('.');
-          context.reportError("Cannot reference Input Object \"".concat(fieldType.name, "\" within itself through a series of non-null fields: \"").concat(pathStr, "\"."), cyclePath.map(function (fieldObj) {
-            return fieldObj.astNode;
-          }));
-        }
-
-        fieldPath.pop();
-      }
-    }
-
-    fieldPathIndexByTypeName[inputObj.name] = undefined;
-  }
-}
-
-function getAllNodes(object) {
-  var astNode = object.astNode,
-      extensionASTNodes = object.extensionASTNodes;
-  return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes !== null && extensionASTNodes !== void 0 ? extensionASTNodes : [];
-}
-
-function getAllSubNodes(object, getter) {
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-  return (0, _flatMap.default)(getAllNodes(object), function (item) {
-    var _getter;
-
-    return (_getter = getter(item)) !== null && _getter !== void 0 ? _getter : [];
-  });
-}
-
-function getAllImplementsInterfaceNodes(type, iface) {
-  return getAllSubNodes(type, function (typeNode) {
-    return typeNode.interfaces;
-  }).filter(function (ifaceNode) {
-    return ifaceNode.name.value === iface.name;
-  });
-}
-
-function getUnionMemberTypeNodes(union, typeName) {
-  return getAllSubNodes(union, function (unionNode) {
-    return unionNode.types;
-  }).filter(function (typeNode) {
-    return typeNode.name.value === typeName;
-  });
-}
diff --git a/node_modules/graphql/type/validate.js.flow b/node_modules/graphql/type/validate.js.flow
deleted file mode 100644
index fc57bd1..0000000
--- a/node_modules/graphql/type/validate.js.flow
+++ /dev/null
@@ -1,609 +0,0 @@
-// @flow strict
-
-import find from '../polyfills/find';
-import flatMap from '../polyfills/flatMap';
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-
-import { GraphQLError } from '../error/GraphQLError';
-import { locatedError } from '../error/locatedError';
-
-import { type ASTNode, type NamedTypeNode } from '../language/ast';
-
-import { isValidNameError } from '../utilities/assertValidName';
-import { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators';
-
-import { isDirective } from './directives';
-import { isIntrospectionType } from './introspection';
-import { type GraphQLSchema, assertSchema } from './schema';
-import {
-  type GraphQLObjectType,
-  type GraphQLInterfaceType,
-  type GraphQLUnionType,
-  type GraphQLEnumType,
-  type GraphQLInputObjectType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isNamedType,
-  isNonNullType,
-  isInputType,
-  isOutputType,
-  isRequiredArgument,
-} from './definition';
-
-/**
- * Implements the "Type Validation" sub-sections of the specification's
- * "Type System" section.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the Schema is valid.
- */
-export function validateSchema(
-  schema: GraphQLSchema,
-): $ReadOnlyArray<GraphQLError> {
-  // First check to ensure the provided value is in fact a GraphQLSchema.
-  assertSchema(schema);
-
-  // If this Schema has already been validated, return the previous results.
-  if (schema.__validationErrors) {
-    return schema.__validationErrors;
-  }
-
-  // Validate the schema, producing a list of errors.
-  const context = new SchemaValidationContext(schema);
-  validateRootTypes(context);
-  validateDirectives(context);
-  validateTypes(context);
-
-  // Persist the results of validation before returning to ensure validation
-  // does not run multiple times for this schema.
-  const errors = context.getErrors();
-  schema.__validationErrors = errors;
-  return errors;
-}
-
-/**
- * Utility function which asserts a schema is valid by throwing an error if
- * it is invalid.
- */
-export function assertValidSchema(schema: GraphQLSchema): void {
-  const errors = validateSchema(schema);
-  if (errors.length !== 0) {
-    throw new Error(errors.map(error => error.message).join('\n\n'));
-  }
-}
-
-class SchemaValidationContext {
-  +_errors: Array<GraphQLError>;
-  +schema: GraphQLSchema;
-
-  constructor(schema) {
-    this._errors = [];
-    this.schema = schema;
-  }
-
-  reportError(
-    message: string,
-    nodes?: $ReadOnlyArray<?ASTNode> | ?ASTNode,
-  ): void {
-    const _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;
-    this.addError(new GraphQLError(message, _nodes));
-  }
-
-  addError(error: GraphQLError): void {
-    this._errors.push(error);
-  }
-
-  getErrors(): $ReadOnlyArray<GraphQLError> {
-    return this._errors;
-  }
-}
-
-function validateRootTypes(context) {
-  const schema = context.schema;
-  const queryType = schema.getQueryType();
-  if (!queryType) {
-    context.reportError('Query root type must be provided.', schema.astNode);
-  } else if (!isObjectType(queryType)) {
-    context.reportError(
-      `Query root type must be Object type, it cannot be ${inspect(
-        queryType,
-      )}.`,
-      getOperationTypeNode(schema, queryType, 'query'),
-    );
-  }
-
-  const mutationType = schema.getMutationType();
-  if (mutationType && !isObjectType(mutationType)) {
-    context.reportError(
-      'Mutation root type must be Object type if provided, it cannot be ' +
-        `${inspect(mutationType)}.`,
-      getOperationTypeNode(schema, mutationType, 'mutation'),
-    );
-  }
-
-  const subscriptionType = schema.getSubscriptionType();
-  if (subscriptionType && !isObjectType(subscriptionType)) {
-    context.reportError(
-      'Subscription root type must be Object type if provided, it cannot be ' +
-        `${inspect(subscriptionType)}.`,
-      getOperationTypeNode(schema, subscriptionType, 'subscription'),
-    );
-  }
-}
-
-function getOperationTypeNode(
-  schema: GraphQLSchema,
-  type: GraphQLObjectType,
-  operation: string,
-): ?ASTNode {
-  const operationNodes = getAllSubNodes(schema, node => node.operationTypes);
-  for (const node of operationNodes) {
-    if (node.operation === operation) {
-      return node.type;
-    }
-  }
-
-  return type.astNode;
-}
-
-function validateDirectives(context: SchemaValidationContext): void {
-  for (const directive of context.schema.getDirectives()) {
-    // Ensure all directives are in fact GraphQL directives.
-    if (!isDirective(directive)) {
-      context.reportError(
-        `Expected directive but got: ${inspect(directive)}.`,
-        directive?.astNode,
-      );
-      continue;
-    }
-
-    // Ensure they are named correctly.
-    validateName(context, directive);
-
-    // TODO: Ensure proper locations.
-
-    // Ensure the arguments are valid.
-    for (const arg of directive.args) {
-      // Ensure they are named correctly.
-      validateName(context, arg);
-
-      // Ensure the type is an input type.
-      if (!isInputType(arg.type)) {
-        context.reportError(
-          `The type of @${directive.name}(${arg.name}:) must be Input Type ` +
-            `but got: ${inspect(arg.type)}.`,
-          arg.astNode,
-        );
-      }
-    }
-  }
-}
-
-function validateName(
-  context: SchemaValidationContext,
-  node: { +name: string, +astNode: ?ASTNode, ... },
-): void {
-  // Ensure names are valid, however introspection types opt out.
-  const error = isValidNameError(node.name);
-  if (error) {
-    context.addError(locatedError(error, node.astNode));
-  }
-}
-
-function validateTypes(context: SchemaValidationContext): void {
-  const validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(
-    context,
-  );
-  const typeMap = context.schema.getTypeMap();
-  for (const type of objectValues(typeMap)) {
-    // Ensure all provided types are in fact GraphQL type.
-    if (!isNamedType(type)) {
-      context.reportError(
-        `Expected GraphQL named type but got: ${inspect(type)}.`,
-        type.astNode,
-      );
-      continue;
-    }
-
-    // Ensure it is named correctly (excluding introspection types).
-    if (!isIntrospectionType(type)) {
-      validateName(context, type);
-    }
-
-    if (isObjectType(type)) {
-      // Ensure fields are valid
-      validateFields(context, type);
-
-      // Ensure objects implement the interfaces they claim to.
-      validateInterfaces(context, type);
-    } else if (isInterfaceType(type)) {
-      // Ensure fields are valid.
-      validateFields(context, type);
-
-      // Ensure interfaces implement the interfaces they claim to.
-      validateInterfaces(context, type);
-    } else if (isUnionType(type)) {
-      // Ensure Unions include valid member types.
-      validateUnionMembers(context, type);
-    } else if (isEnumType(type)) {
-      // Ensure Enums have valid values.
-      validateEnumValues(context, type);
-    } else if (isInputObjectType(type)) {
-      // Ensure Input Object fields are valid.
-      validateInputFields(context, type);
-
-      // Ensure Input Objects do not contain non-nullable circular references
-      validateInputObjectCircularRefs(type);
-    }
-  }
-}
-
-function validateFields(
-  context: SchemaValidationContext,
-  type: GraphQLObjectType | GraphQLInterfaceType,
-): void {
-  const fields = objectValues(type.getFields());
-
-  // Objects and Interfaces both must define one or more fields.
-  if (fields.length === 0) {
-    context.reportError(
-      `Type ${type.name} must define one or more fields.`,
-      getAllNodes(type),
-    );
-  }
-
-  for (const field of fields) {
-    // Ensure they are named correctly.
-    validateName(context, field);
-
-    // Ensure the type is an output type
-    if (!isOutputType(field.type)) {
-      context.reportError(
-        `The type of ${type.name}.${field.name} must be Output Type ` +
-          `but got: ${inspect(field.type)}.`,
-        field.astNode?.type,
-      );
-    }
-
-    // Ensure the arguments are valid
-    for (const arg of field.args) {
-      const argName = arg.name;
-
-      // Ensure they are named correctly.
-      validateName(context, arg);
-
-      // Ensure the type is an input type
-      if (!isInputType(arg.type)) {
-        context.reportError(
-          `The type of ${type.name}.${field.name}(${argName}:) must be Input ` +
-            `Type but got: ${inspect(arg.type)}.`,
-          arg.astNode?.type,
-        );
-      }
-    }
-  }
-}
-
-function validateInterfaces(
-  context: SchemaValidationContext,
-  type: GraphQLObjectType | GraphQLInterfaceType,
-): void {
-  const ifaceTypeNames = Object.create(null);
-  for (const iface of type.getInterfaces()) {
-    if (!isInterfaceType(iface)) {
-      context.reportError(
-        `Type ${inspect(type)} must only implement Interface types, ` +
-          `it cannot implement ${inspect(iface)}.`,
-        getAllImplementsInterfaceNodes(type, iface),
-      );
-      continue;
-    }
-
-    if (type === iface) {
-      context.reportError(
-        `Type ${type.name} cannot implement itself because it would create a circular reference.`,
-        getAllImplementsInterfaceNodes(type, iface),
-      );
-      continue;
-    }
-
-    if (ifaceTypeNames[iface.name]) {
-      context.reportError(
-        `Type ${type.name} can only implement ${iface.name} once.`,
-        getAllImplementsInterfaceNodes(type, iface),
-      );
-      continue;
-    }
-
-    ifaceTypeNames[iface.name] = true;
-
-    validateTypeImplementsAncestors(context, type, iface);
-    validateTypeImplementsInterface(context, type, iface);
-  }
-}
-
-function validateTypeImplementsInterface(
-  context: SchemaValidationContext,
-  type: GraphQLObjectType | GraphQLInterfaceType,
-  iface: GraphQLInterfaceType,
-): void {
-  const typeFieldMap = type.getFields();
-
-  // Assert each interface field is implemented.
-  for (const ifaceField of objectValues(iface.getFields())) {
-    const fieldName = ifaceField.name;
-    const typeField = typeFieldMap[fieldName];
-
-    // Assert interface field exists on type.
-    if (!typeField) {
-      context.reportError(
-        `Interface field ${iface.name}.${fieldName} expected but ${type.name} does not provide it.`,
-        [ifaceField.astNode, ...getAllNodes(type)],
-      );
-      continue;
-    }
-
-    // Assert interface field type is satisfied by type field type, by being
-    // a valid subtype. (covariant)
-    if (!isTypeSubTypeOf(context.schema, typeField.type, ifaceField.type)) {
-      context.reportError(
-        `Interface field ${iface.name}.${fieldName} expects type ` +
-          `${inspect(ifaceField.type)} but ${type.name}.${fieldName} ` +
-          `is type ${inspect(typeField.type)}.`,
-        [ifaceField.astNode.type, typeField.astNode.type],
-      );
-    }
-
-    // Assert each interface field arg is implemented.
-    for (const ifaceArg of ifaceField.args) {
-      const argName = ifaceArg.name;
-      const typeArg = find(typeField.args, arg => arg.name === argName);
-
-      // Assert interface field arg exists on object field.
-      if (!typeArg) {
-        context.reportError(
-          `Interface field argument ${iface.name}.${fieldName}(${argName}:) expected but ${type.name}.${fieldName} does not provide it.`,
-          [ifaceArg.astNode, typeField.astNode],
-        );
-        continue;
-      }
-
-      // Assert interface field arg type matches object field arg type.
-      // (invariant)
-      // TODO: change to contravariant?
-      if (!isEqualType(ifaceArg.type, typeArg.type)) {
-        context.reportError(
-          `Interface field argument ${iface.name}.${fieldName}(${argName}:) ` +
-            `expects type ${inspect(ifaceArg.type)} but ` +
-            `${type.name}.${fieldName}(${argName}:) is type ` +
-            `${inspect(typeArg.type)}.`,
-          [ifaceArg.astNode.type, typeArg.astNode.type],
-        );
-      }
-
-      // TODO: validate default values?
-    }
-
-    // Assert additional arguments must not be required.
-    for (const typeArg of typeField.args) {
-      const argName = typeArg.name;
-      const ifaceArg = find(ifaceField.args, arg => arg.name === argName);
-      if (!ifaceArg && isRequiredArgument(typeArg)) {
-        context.reportError(
-          `Object field ${type.name}.${fieldName} includes required argument ${argName} that is missing from the Interface field ${iface.name}.${fieldName}.`,
-          [typeArg.astNode, ifaceField.astNode],
-        );
-      }
-    }
-  }
-}
-
-function validateTypeImplementsAncestors(
-  context: SchemaValidationContext,
-  type: GraphQLObjectType | GraphQLInterfaceType,
-  iface: GraphQLInterfaceType,
-): void {
-  const ifaceInterfaces = type.getInterfaces();
-  for (const transitive of iface.getInterfaces()) {
-    if (ifaceInterfaces.indexOf(transitive) === -1) {
-      context.reportError(
-        transitive === type
-          ? `Type ${type.name} cannot implement ${iface.name} because it would create a circular reference.`
-          : `Type ${type.name} must implement ${transitive.name} because it is implemented by ${iface.name}.`,
-        [
-          ...getAllImplementsInterfaceNodes(iface, transitive),
-          ...getAllImplementsInterfaceNodes(type, iface),
-        ],
-      );
-    }
-  }
-}
-
-function validateUnionMembers(
-  context: SchemaValidationContext,
-  union: GraphQLUnionType,
-): void {
-  const memberTypes = union.getTypes();
-
-  if (memberTypes.length === 0) {
-    context.reportError(
-      `Union type ${union.name} must define one or more member types.`,
-      getAllNodes(union),
-    );
-  }
-
-  const includedTypeNames = Object.create(null);
-  for (const memberType of memberTypes) {
-    if (includedTypeNames[memberType.name]) {
-      context.reportError(
-        `Union type ${union.name} can only include type ${memberType.name} once.`,
-        getUnionMemberTypeNodes(union, memberType.name),
-      );
-      continue;
-    }
-    includedTypeNames[memberType.name] = true;
-    if (!isObjectType(memberType)) {
-      context.reportError(
-        `Union type ${union.name} can only include Object types, ` +
-          `it cannot include ${inspect(memberType)}.`,
-        getUnionMemberTypeNodes(union, String(memberType)),
-      );
-    }
-  }
-}
-
-function validateEnumValues(
-  context: SchemaValidationContext,
-  enumType: GraphQLEnumType,
-): void {
-  const enumValues = enumType.getValues();
-
-  if (enumValues.length === 0) {
-    context.reportError(
-      `Enum type ${enumType.name} must define one or more values.`,
-      getAllNodes(enumType),
-    );
-  }
-
-  for (const enumValue of enumValues) {
-    const valueName = enumValue.name;
-
-    // Ensure valid name.
-    validateName(context, enumValue);
-    if (valueName === 'true' || valueName === 'false' || valueName === 'null') {
-      context.reportError(
-        `Enum type ${enumType.name} cannot include value: ${valueName}.`,
-        enumValue.astNode,
-      );
-    }
-  }
-}
-
-function validateInputFields(
-  context: SchemaValidationContext,
-  inputObj: GraphQLInputObjectType,
-): void {
-  const fields = objectValues(inputObj.getFields());
-
-  if (fields.length === 0) {
-    context.reportError(
-      `Input Object type ${inputObj.name} must define one or more fields.`,
-      getAllNodes(inputObj),
-    );
-  }
-
-  // Ensure the arguments are valid
-  for (const field of fields) {
-    // Ensure they are named correctly.
-    validateName(context, field);
-
-    // Ensure the type is an input type
-    if (!isInputType(field.type)) {
-      context.reportError(
-        `The type of ${inputObj.name}.${field.name} must be Input Type ` +
-          `but got: ${inspect(field.type)}.`,
-        field.astNode?.type,
-      );
-    }
-  }
-}
-
-function createInputObjectCircularRefsValidator(
-  context: SchemaValidationContext,
-) {
-  // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
-  // Tracks already visited types to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  const visitedTypes = Object.create(null);
-
-  // Array of types nodes used to produce meaningful errors
-  const fieldPath = [];
-
-  // Position in the type path
-  const fieldPathIndexByTypeName = Object.create(null);
-
-  return detectCycleRecursive;
-
-  // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-  function detectCycleRecursive(inputObj: GraphQLInputObjectType) {
-    if (visitedTypes[inputObj.name]) {
-      return;
-    }
-
-    visitedTypes[inputObj.name] = true;
-    fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;
-
-    const fields = objectValues(inputObj.getFields());
-    for (const field of fields) {
-      if (isNonNullType(field.type) && isInputObjectType(field.type.ofType)) {
-        const fieldType = field.type.ofType;
-        const cycleIndex = fieldPathIndexByTypeName[fieldType.name];
-
-        fieldPath.push(field);
-        if (cycleIndex === undefined) {
-          detectCycleRecursive(fieldType);
-        } else {
-          const cyclePath = fieldPath.slice(cycleIndex);
-          const pathStr = cyclePath.map(fieldObj => fieldObj.name).join('.');
-          context.reportError(
-            `Cannot reference Input Object "${fieldType.name}" within itself through a series of non-null fields: "${pathStr}".`,
-            cyclePath.map(fieldObj => fieldObj.astNode),
-          );
-        }
-        fieldPath.pop();
-      }
-    }
-
-    fieldPathIndexByTypeName[inputObj.name] = undefined;
-  }
-}
-
-type SDLDefinedObject<T, K> = {
-  +astNode: ?T,
-  +extensionASTNodes?: ?$ReadOnlyArray<K>,
-  ...
-};
-
-function getAllNodes<T: ASTNode, K: ASTNode>(
-  object: SDLDefinedObject<T, K>,
-): $ReadOnlyArray<T | K> {
-  const { astNode, extensionASTNodes } = object;
-  return astNode
-    ? extensionASTNodes
-      ? [astNode].concat(extensionASTNodes)
-      : [astNode]
-    : extensionASTNodes ?? [];
-}
-
-function getAllSubNodes<T: ASTNode, K: ASTNode, L: ASTNode>(
-  object: SDLDefinedObject<T, K>,
-  getter: (T | K) => ?(L | $ReadOnlyArray<L>),
-): $ReadOnlyArray<L> {
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-  return flatMap(getAllNodes(object), item => getter(item) ?? []);
-}
-
-function getAllImplementsInterfaceNodes(
-  type: GraphQLObjectType | GraphQLInterfaceType,
-  iface: GraphQLInterfaceType,
-): $ReadOnlyArray<NamedTypeNode> {
-  return getAllSubNodes(type, typeNode => typeNode.interfaces).filter(
-    ifaceNode => ifaceNode.name.value === iface.name,
-  );
-}
-
-function getUnionMemberTypeNodes(
-  union: GraphQLUnionType,
-  typeName: string,
-): ?$ReadOnlyArray<NamedTypeNode> {
-  return getAllSubNodes(union, unionNode => unionNode.types).filter(
-    typeNode => typeNode.name.value === typeName,
-  );
-}
diff --git a/node_modules/graphql/type/validate.mjs b/node_modules/graphql/type/validate.mjs
deleted file mode 100644
index 7f8e969..0000000
--- a/node_modules/graphql/type/validate.mjs
+++ /dev/null
@@ -1,482 +0,0 @@
-import find from "../polyfills/find.mjs";
-import flatMap from "../polyfills/flatMap.mjs";
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { locatedError } from "../error/locatedError.mjs";
-import { isValidNameError } from "../utilities/assertValidName.mjs";
-import { isEqualType, isTypeSubTypeOf } from "../utilities/typeComparators.mjs";
-import { isDirective } from "./directives.mjs";
-import { isIntrospectionType } from "./introspection.mjs";
-import { assertSchema } from "./schema.mjs";
-import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument } from "./definition.mjs";
-/**
- * Implements the "Type Validation" sub-sections of the specification's
- * "Type System" section.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the Schema is valid.
- */
-
-export function validateSchema(schema) {
-  // First check to ensure the provided value is in fact a GraphQLSchema.
-  assertSchema(schema); // If this Schema has already been validated, return the previous results.
-
-  if (schema.__validationErrors) {
-    return schema.__validationErrors;
-  } // Validate the schema, producing a list of errors.
-
-
-  var context = new SchemaValidationContext(schema);
-  validateRootTypes(context);
-  validateDirectives(context);
-  validateTypes(context); // Persist the results of validation before returning to ensure validation
-  // does not run multiple times for this schema.
-
-  var errors = context.getErrors();
-  schema.__validationErrors = errors;
-  return errors;
-}
-/**
- * Utility function which asserts a schema is valid by throwing an error if
- * it is invalid.
- */
-
-export function assertValidSchema(schema) {
-  var errors = validateSchema(schema);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
-
-var SchemaValidationContext =
-/*#__PURE__*/
-function () {
-  function SchemaValidationContext(schema) {
-    this._errors = [];
-    this.schema = schema;
-  }
-
-  var _proto = SchemaValidationContext.prototype;
-
-  _proto.reportError = function reportError(message, nodes) {
-    var _nodes = Array.isArray(nodes) ? nodes.filter(Boolean) : nodes;
-
-    this.addError(new GraphQLError(message, _nodes));
-  };
-
-  _proto.addError = function addError(error) {
-    this._errors.push(error);
-  };
-
-  _proto.getErrors = function getErrors() {
-    return this._errors;
-  };
-
-  return SchemaValidationContext;
-}();
-
-function validateRootTypes(context) {
-  var schema = context.schema;
-  var queryType = schema.getQueryType();
-
-  if (!queryType) {
-    context.reportError('Query root type must be provided.', schema.astNode);
-  } else if (!isObjectType(queryType)) {
-    context.reportError("Query root type must be Object type, it cannot be ".concat(inspect(queryType), "."), getOperationTypeNode(schema, queryType, 'query'));
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType && !isObjectType(mutationType)) {
-    context.reportError('Mutation root type must be Object type if provided, it cannot be ' + "".concat(inspect(mutationType), "."), getOperationTypeNode(schema, mutationType, 'mutation'));
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType && !isObjectType(subscriptionType)) {
-    context.reportError('Subscription root type must be Object type if provided, it cannot be ' + "".concat(inspect(subscriptionType), "."), getOperationTypeNode(schema, subscriptionType, 'subscription'));
-  }
-}
-
-function getOperationTypeNode(schema, type, operation) {
-  var operationNodes = getAllSubNodes(schema, function (node) {
-    return node.operationTypes;
-  });
-
-  for (var _i2 = 0; _i2 < operationNodes.length; _i2++) {
-    var node = operationNodes[_i2];
-
-    if (node.operation === operation) {
-      return node.type;
-    }
-  }
-
-  return type.astNode;
-}
-
-function validateDirectives(context) {
-  for (var _i4 = 0, _context$schema$getDi2 = context.schema.getDirectives(); _i4 < _context$schema$getDi2.length; _i4++) {
-    var directive = _context$schema$getDi2[_i4];
-
-    // Ensure all directives are in fact GraphQL directives.
-    if (!isDirective(directive)) {
-      context.reportError("Expected directive but got: ".concat(inspect(directive), "."), directive === null || directive === void 0 ? void 0 : directive.astNode);
-      continue;
-    } // Ensure they are named correctly.
-
-
-    validateName(context, directive); // TODO: Ensure proper locations.
-    // Ensure the arguments are valid.
-
-    for (var _i6 = 0, _directive$args2 = directive.args; _i6 < _directive$args2.length; _i6++) {
-      var arg = _directive$args2[_i6];
-      // Ensure they are named correctly.
-      validateName(context, arg); // Ensure the type is an input type.
-
-      if (!isInputType(arg.type)) {
-        context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat(inspect(arg.type), "."), arg.astNode);
-      }
-    }
-  }
-}
-
-function validateName(context, node) {
-  // Ensure names are valid, however introspection types opt out.
-  var error = isValidNameError(node.name);
-
-  if (error) {
-    context.addError(locatedError(error, node.astNode));
-  }
-}
-
-function validateTypes(context) {
-  var validateInputObjectCircularRefs = createInputObjectCircularRefsValidator(context);
-  var typeMap = context.schema.getTypeMap();
-
-  for (var _i8 = 0, _objectValues2 = objectValues(typeMap); _i8 < _objectValues2.length; _i8++) {
-    var type = _objectValues2[_i8];
-
-    // Ensure all provided types are in fact GraphQL type.
-    if (!isNamedType(type)) {
-      context.reportError("Expected GraphQL named type but got: ".concat(inspect(type), "."), type.astNode);
-      continue;
-    } // Ensure it is named correctly (excluding introspection types).
-
-
-    if (!isIntrospectionType(type)) {
-      validateName(context, type);
-    }
-
-    if (isObjectType(type)) {
-      // Ensure fields are valid
-      validateFields(context, type); // Ensure objects implement the interfaces they claim to.
-
-      validateInterfaces(context, type);
-    } else if (isInterfaceType(type)) {
-      // Ensure fields are valid.
-      validateFields(context, type); // Ensure interfaces implement the interfaces they claim to.
-
-      validateInterfaces(context, type);
-    } else if (isUnionType(type)) {
-      // Ensure Unions include valid member types.
-      validateUnionMembers(context, type);
-    } else if (isEnumType(type)) {
-      // Ensure Enums have valid values.
-      validateEnumValues(context, type);
-    } else if (isInputObjectType(type)) {
-      // Ensure Input Object fields are valid.
-      validateInputFields(context, type); // Ensure Input Objects do not contain non-nullable circular references
-
-      validateInputObjectCircularRefs(type);
-    }
-  }
-}
-
-function validateFields(context, type) {
-  var fields = objectValues(type.getFields()); // Objects and Interfaces both must define one or more fields.
-
-  if (fields.length === 0) {
-    context.reportError("Type ".concat(type.name, " must define one or more fields."), getAllNodes(type));
-  }
-
-  for (var _i10 = 0; _i10 < fields.length; _i10++) {
-    var field = fields[_i10];
-    // Ensure they are named correctly.
-    validateName(context, field); // Ensure the type is an output type
-
-    if (!isOutputType(field.type)) {
-      var _field$astNode;
-
-      context.reportError("The type of ".concat(type.name, ".").concat(field.name, " must be Output Type ") + "but got: ".concat(inspect(field.type), "."), (_field$astNode = field.astNode) === null || _field$astNode === void 0 ? void 0 : _field$astNode.type);
-    } // Ensure the arguments are valid
-
-
-    for (var _i12 = 0, _field$args2 = field.args; _i12 < _field$args2.length; _i12++) {
-      var arg = _field$args2[_i12];
-      var argName = arg.name; // Ensure they are named correctly.
-
-      validateName(context, arg); // Ensure the type is an input type
-
-      if (!isInputType(arg.type)) {
-        var _arg$astNode;
-
-        context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type);
-      }
-    }
-  }
-}
-
-function validateInterfaces(context, type) {
-  var ifaceTypeNames = Object.create(null);
-
-  for (var _i14 = 0, _type$getInterfaces2 = type.getInterfaces(); _i14 < _type$getInterfaces2.length; _i14++) {
-    var iface = _type$getInterfaces2[_i14];
-
-    if (!isInterfaceType(iface)) {
-      context.reportError("Type ".concat(inspect(type), " must only implement Interface types, ") + "it cannot implement ".concat(inspect(iface), "."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    if (type === iface) {
-      context.reportError("Type ".concat(type.name, " cannot implement itself because it would create a circular reference."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    if (ifaceTypeNames[iface.name]) {
-      context.reportError("Type ".concat(type.name, " can only implement ").concat(iface.name, " once."), getAllImplementsInterfaceNodes(type, iface));
-      continue;
-    }
-
-    ifaceTypeNames[iface.name] = true;
-    validateTypeImplementsAncestors(context, type, iface);
-    validateTypeImplementsInterface(context, type, iface);
-  }
-}
-
-function validateTypeImplementsInterface(context, type, iface) {
-  var typeFieldMap = type.getFields(); // Assert each interface field is implemented.
-
-  for (var _i16 = 0, _objectValues4 = objectValues(iface.getFields()); _i16 < _objectValues4.length; _i16++) {
-    var ifaceField = _objectValues4[_i16];
-    var fieldName = ifaceField.name;
-    var typeField = typeFieldMap[fieldName]; // Assert interface field exists on type.
-
-    if (!typeField) {
-      context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expected but ").concat(type.name, " does not provide it."), [ifaceField.astNode].concat(getAllNodes(type)));
-      continue;
-    } // Assert interface field type is satisfied by type field type, by being
-    // a valid subtype. (covariant)
-
-
-    if (!isTypeSubTypeOf(context.schema, typeField.type, ifaceField.type)) {
-      context.reportError("Interface field ".concat(iface.name, ".").concat(fieldName, " expects type ") + "".concat(inspect(ifaceField.type), " but ").concat(type.name, ".").concat(fieldName, " ") + "is type ".concat(inspect(typeField.type), "."), [ifaceField.astNode.type, typeField.astNode.type]);
-    } // Assert each interface field arg is implemented.
-
-
-    var _loop = function _loop(_i18, _ifaceField$args2) {
-      var ifaceArg = _ifaceField$args2[_i18];
-      var argName = ifaceArg.name;
-      var typeArg = find(typeField.args, function (arg) {
-        return arg.name === argName;
-      }); // Assert interface field arg exists on object field.
-
-      if (!typeArg) {
-        context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) expected but ").concat(type.name, ".").concat(fieldName, " does not provide it."), [ifaceArg.astNode, typeField.astNode]);
-        return "continue";
-      } // Assert interface field arg type matches object field arg type.
-      // (invariant)
-      // TODO: change to contravariant?
-
-
-      if (!isEqualType(ifaceArg.type, typeArg.type)) {
-        context.reportError("Interface field argument ".concat(iface.name, ".").concat(fieldName, "(").concat(argName, ":) ") + "expects type ".concat(inspect(ifaceArg.type), " but ") + "".concat(type.name, ".").concat(fieldName, "(").concat(argName, ":) is type ") + "".concat(inspect(typeArg.type), "."), [ifaceArg.astNode.type, typeArg.astNode.type]);
-      } // TODO: validate default values?
-
-    };
-
-    for (var _i18 = 0, _ifaceField$args2 = ifaceField.args; _i18 < _ifaceField$args2.length; _i18++) {
-      var _ret = _loop(_i18, _ifaceField$args2);
-
-      if (_ret === "continue") continue;
-    } // Assert additional arguments must not be required.
-
-
-    var _loop2 = function _loop2(_i20, _typeField$args2) {
-      var typeArg = _typeField$args2[_i20];
-      var argName = typeArg.name;
-      var ifaceArg = find(ifaceField.args, function (arg) {
-        return arg.name === argName;
-      });
-
-      if (!ifaceArg && isRequiredArgument(typeArg)) {
-        context.reportError("Object field ".concat(type.name, ".").concat(fieldName, " includes required argument ").concat(argName, " that is missing from the Interface field ").concat(iface.name, ".").concat(fieldName, "."), [typeArg.astNode, ifaceField.astNode]);
-      }
-    };
-
-    for (var _i20 = 0, _typeField$args2 = typeField.args; _i20 < _typeField$args2.length; _i20++) {
-      _loop2(_i20, _typeField$args2);
-    }
-  }
-}
-
-function validateTypeImplementsAncestors(context, type, iface) {
-  var ifaceInterfaces = type.getInterfaces();
-
-  for (var _i22 = 0, _iface$getInterfaces2 = iface.getInterfaces(); _i22 < _iface$getInterfaces2.length; _i22++) {
-    var transitive = _iface$getInterfaces2[_i22];
-
-    if (ifaceInterfaces.indexOf(transitive) === -1) {
-      context.reportError(transitive === type ? "Type ".concat(type.name, " cannot implement ").concat(iface.name, " because it would create a circular reference.") : "Type ".concat(type.name, " must implement ").concat(transitive.name, " because it is implemented by ").concat(iface.name, "."), [].concat(getAllImplementsInterfaceNodes(iface, transitive), getAllImplementsInterfaceNodes(type, iface)));
-    }
-  }
-}
-
-function validateUnionMembers(context, union) {
-  var memberTypes = union.getTypes();
-
-  if (memberTypes.length === 0) {
-    context.reportError("Union type ".concat(union.name, " must define one or more member types."), getAllNodes(union));
-  }
-
-  var includedTypeNames = Object.create(null);
-
-  for (var _i24 = 0; _i24 < memberTypes.length; _i24++) {
-    var memberType = memberTypes[_i24];
-
-    if (includedTypeNames[memberType.name]) {
-      context.reportError("Union type ".concat(union.name, " can only include type ").concat(memberType.name, " once."), getUnionMemberTypeNodes(union, memberType.name));
-      continue;
-    }
-
-    includedTypeNames[memberType.name] = true;
-
-    if (!isObjectType(memberType)) {
-      context.reportError("Union type ".concat(union.name, " can only include Object types, ") + "it cannot include ".concat(inspect(memberType), "."), getUnionMemberTypeNodes(union, String(memberType)));
-    }
-  }
-}
-
-function validateEnumValues(context, enumType) {
-  var enumValues = enumType.getValues();
-
-  if (enumValues.length === 0) {
-    context.reportError("Enum type ".concat(enumType.name, " must define one or more values."), getAllNodes(enumType));
-  }
-
-  for (var _i26 = 0; _i26 < enumValues.length; _i26++) {
-    var enumValue = enumValues[_i26];
-    var valueName = enumValue.name; // Ensure valid name.
-
-    validateName(context, enumValue);
-
-    if (valueName === 'true' || valueName === 'false' || valueName === 'null') {
-      context.reportError("Enum type ".concat(enumType.name, " cannot include value: ").concat(valueName, "."), enumValue.astNode);
-    }
-  }
-}
-
-function validateInputFields(context, inputObj) {
-  var fields = objectValues(inputObj.getFields());
-
-  if (fields.length === 0) {
-    context.reportError("Input Object type ".concat(inputObj.name, " must define one or more fields."), getAllNodes(inputObj));
-  } // Ensure the arguments are valid
-
-
-  for (var _i28 = 0; _i28 < fields.length; _i28++) {
-    var field = fields[_i28];
-    // Ensure they are named correctly.
-    validateName(context, field); // Ensure the type is an input type
-
-    if (!isInputType(field.type)) {
-      var _field$astNode2;
-
-      context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat(inspect(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
-    }
-  }
-}
-
-function createInputObjectCircularRefsValidator(context) {
-  // Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
-  // Tracks already visited types to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  var visitedTypes = Object.create(null); // Array of types nodes used to produce meaningful errors
-
-  var fieldPath = []; // Position in the type path
-
-  var fieldPathIndexByTypeName = Object.create(null);
-  return detectCycleRecursive; // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-
-  function detectCycleRecursive(inputObj) {
-    if (visitedTypes[inputObj.name]) {
-      return;
-    }
-
-    visitedTypes[inputObj.name] = true;
-    fieldPathIndexByTypeName[inputObj.name] = fieldPath.length;
-    var fields = objectValues(inputObj.getFields());
-
-    for (var _i30 = 0; _i30 < fields.length; _i30++) {
-      var field = fields[_i30];
-
-      if (isNonNullType(field.type) && isInputObjectType(field.type.ofType)) {
-        var fieldType = field.type.ofType;
-        var cycleIndex = fieldPathIndexByTypeName[fieldType.name];
-        fieldPath.push(field);
-
-        if (cycleIndex === undefined) {
-          detectCycleRecursive(fieldType);
-        } else {
-          var cyclePath = fieldPath.slice(cycleIndex);
-          var pathStr = cyclePath.map(function (fieldObj) {
-            return fieldObj.name;
-          }).join('.');
-          context.reportError("Cannot reference Input Object \"".concat(fieldType.name, "\" within itself through a series of non-null fields: \"").concat(pathStr, "\"."), cyclePath.map(function (fieldObj) {
-            return fieldObj.astNode;
-          }));
-        }
-
-        fieldPath.pop();
-      }
-    }
-
-    fieldPathIndexByTypeName[inputObj.name] = undefined;
-  }
-}
-
-function getAllNodes(object) {
-  var astNode = object.astNode,
-      extensionASTNodes = object.extensionASTNodes;
-  return astNode ? extensionASTNodes ? [astNode].concat(extensionASTNodes) : [astNode] : extensionASTNodes !== null && extensionASTNodes !== void 0 ? extensionASTNodes : [];
-}
-
-function getAllSubNodes(object, getter) {
-  /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-  return flatMap(getAllNodes(object), function (item) {
-    var _getter;
-
-    return (_getter = getter(item)) !== null && _getter !== void 0 ? _getter : [];
-  });
-}
-
-function getAllImplementsInterfaceNodes(type, iface) {
-  return getAllSubNodes(type, function (typeNode) {
-    return typeNode.interfaces;
-  }).filter(function (ifaceNode) {
-    return ifaceNode.name.value === iface.name;
-  });
-}
-
-function getUnionMemberTypeNodes(union, typeName) {
-  return getAllSubNodes(union, function (unionNode) {
-    return unionNode.types;
-  }).filter(function (typeNode) {
-    return typeNode.name.value === typeName;
-  });
-}
diff --git a/node_modules/graphql/utilities/TypeInfo.d.ts b/node_modules/graphql/utilities/TypeInfo.d.ts
deleted file mode 100644
index 4f9b426..0000000
--- a/node_modules/graphql/utilities/TypeInfo.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { Visitor } from '../language/visitor';
-import { ASTNode, ASTKindToNode, FieldNode } from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLDirective } from '../type/directives';
-import {
-  GraphQLType,
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLCompositeType,
-  GraphQLField,
-  GraphQLArgument,
-  GraphQLEnumValue,
-} from '../type/definition';
-
-/**
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
- * of the current field and type definitions at any point in a GraphQL document
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
- */
-export class TypeInfo {
-  constructor(
-    schema: GraphQLSchema,
-    // NOTE: this experimental optional second parameter is only needed in order
-    // to support non-spec-compliant code bases. You should never need to use it.
-    // It may disappear in the future.
-    getFieldDefFn?: getFieldDef,
-    // Initial type may be provided in rare cases to facilitate traversals
-    // beginning somewhere other than documents.
-    initialType?: GraphQLType,
-  );
-
-  getType(): Maybe<GraphQLOutputType>;
-  getParentType(): Maybe<GraphQLCompositeType>;
-  getInputType(): Maybe<GraphQLInputType>;
-  getParentInputType(): Maybe<GraphQLInputType>;
-  getFieldDef(): GraphQLField<any, Maybe<any>>;
-  getDefaultValue(): Maybe<any>;
-  getDirective(): Maybe<GraphQLDirective>;
-  getArgument(): Maybe<GraphQLArgument>;
-  getEnumValue(): Maybe<GraphQLEnumValue>;
-  enter(node: ASTNode): any;
-  leave(node: ASTNode): any;
-}
-
-type getFieldDef = (
-  schema: GraphQLSchema,
-  parentType: GraphQLType,
-  fieldNode: FieldNode,
-) => Maybe<GraphQLField<any, any>>;
-
-/**
- * Creates a new visitor instance which maintains a provided TypeInfo instance
- * along with visiting visitor.
- */
-export function visitWithTypeInfo(
-  typeInfo: TypeInfo,
-  visitor: Visitor<ASTKindToNode>,
-): Visitor<ASTKindToNode>;
diff --git a/node_modules/graphql/utilities/TypeInfo.js b/node_modules/graphql/utilities/TypeInfo.js
deleted file mode 100644
index f083b7e..0000000
--- a/node_modules/graphql/utilities/TypeInfo.js
+++ /dev/null
@@ -1,399 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.visitWithTypeInfo = visitWithTypeInfo;
-exports.TypeInfo = void 0;
-
-var _find = _interopRequireDefault(require("../polyfills/find"));
-
-var _kinds = require("../language/kinds");
-
-var _visitor = require("../language/visitor");
-
-var _ast = require("../language/ast");
-
-var _definition = require("../type/definition");
-
-var _introspection = require("../type/introspection");
-
-var _typeFromAST = require("./typeFromAST");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
- * of the current field and type definitions at any point in a GraphQL document
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
- */
-var TypeInfo =
-/*#__PURE__*/
-function () {
-  function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order
-  // to support non-spec-compliant code bases. You should never need to use it.
-  // It may disappear in the future.
-  getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals
-  // beginning somewhere other than documents.
-  initialType) {
-    this._schema = schema;
-    this._typeStack = [];
-    this._parentTypeStack = [];
-    this._inputTypeStack = [];
-    this._fieldDefStack = [];
-    this._defaultValueStack = [];
-    this._directive = null;
-    this._argument = null;
-    this._enumValue = null;
-    this._getFieldDef = getFieldDefFn !== null && getFieldDefFn !== void 0 ? getFieldDefFn : getFieldDef;
-
-    if (initialType) {
-      if ((0, _definition.isInputType)(initialType)) {
-        this._inputTypeStack.push(initialType);
-      }
-
-      if ((0, _definition.isCompositeType)(initialType)) {
-        this._parentTypeStack.push(initialType);
-      }
-
-      if ((0, _definition.isOutputType)(initialType)) {
-        this._typeStack.push(initialType);
-      }
-    }
-  }
-
-  var _proto = TypeInfo.prototype;
-
-  _proto.getType = function getType() {
-    if (this._typeStack.length > 0) {
-      return this._typeStack[this._typeStack.length - 1];
-    }
-  };
-
-  _proto.getParentType = function getParentType() {
-    if (this._parentTypeStack.length > 0) {
-      return this._parentTypeStack[this._parentTypeStack.length - 1];
-    }
-  };
-
-  _proto.getInputType = function getInputType() {
-    if (this._inputTypeStack.length > 0) {
-      return this._inputTypeStack[this._inputTypeStack.length - 1];
-    }
-  };
-
-  _proto.getParentInputType = function getParentInputType() {
-    if (this._inputTypeStack.length > 1) {
-      return this._inputTypeStack[this._inputTypeStack.length - 2];
-    }
-  };
-
-  _proto.getFieldDef = function getFieldDef() {
-    if (this._fieldDefStack.length > 0) {
-      return this._fieldDefStack[this._fieldDefStack.length - 1];
-    }
-  };
-
-  _proto.getDefaultValue = function getDefaultValue() {
-    if (this._defaultValueStack.length > 0) {
-      return this._defaultValueStack[this._defaultValueStack.length - 1];
-    }
-  };
-
-  _proto.getDirective = function getDirective() {
-    return this._directive;
-  };
-
-  _proto.getArgument = function getArgument() {
-    return this._argument;
-  };
-
-  _proto.getEnumValue = function getEnumValue() {
-    return this._enumValue;
-  };
-
-  _proto.enter = function enter(node) {
-    var schema = this._schema; // Note: many of the types below are explicitly typed as "mixed" to drop
-    // any assumptions of a valid schema to ensure runtime types are properly
-    // checked before continuing since TypeInfo is used as part of validation
-    // which occurs before guarantees of schema and document validity.
-
-    switch (node.kind) {
-      case _kinds.Kind.SELECTION_SET:
-        {
-          var namedType = (0, _definition.getNamedType)(this.getType());
-
-          this._parentTypeStack.push((0, _definition.isCompositeType)(namedType) ? namedType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.FIELD:
-        {
-          var parentType = this.getParentType();
-          var fieldDef;
-          var fieldType;
-
-          if (parentType) {
-            fieldDef = this._getFieldDef(schema, parentType, node);
-
-            if (fieldDef) {
-              fieldType = fieldDef.type;
-            }
-          }
-
-          this._fieldDefStack.push(fieldDef);
-
-          this._typeStack.push((0, _definition.isOutputType)(fieldType) ? fieldType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.DIRECTIVE:
-        this._directive = schema.getDirective(node.name.value);
-        break;
-
-      case _kinds.Kind.OPERATION_DEFINITION:
-        {
-          var type;
-
-          switch (node.operation) {
-            case 'query':
-              type = schema.getQueryType();
-              break;
-
-            case 'mutation':
-              type = schema.getMutationType();
-              break;
-
-            case 'subscription':
-              type = schema.getSubscriptionType();
-              break;
-          }
-
-          this._typeStack.push((0, _definition.isObjectType)(type) ? type : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.INLINE_FRAGMENT:
-      case _kinds.Kind.FRAGMENT_DEFINITION:
-        {
-          var typeConditionAST = node.typeCondition;
-          var outputType = typeConditionAST ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST) : (0, _definition.getNamedType)(this.getType());
-
-          this._typeStack.push((0, _definition.isOutputType)(outputType) ? outputType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.VARIABLE_DEFINITION:
-        {
-          var inputType = (0, _typeFromAST.typeFromAST)(schema, node.type);
-
-          this._inputTypeStack.push((0, _definition.isInputType)(inputType) ? inputType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.ARGUMENT:
-        {
-          var _this$getDirective;
-
-          var argDef;
-          var argType;
-          var fieldOrDirective = (_this$getDirective = this.getDirective()) !== null && _this$getDirective !== void 0 ? _this$getDirective : this.getFieldDef();
-
-          if (fieldOrDirective) {
-            argDef = (0, _find.default)(fieldOrDirective.args, function (arg) {
-              return arg.name === node.name.value;
-            });
-
-            if (argDef) {
-              argType = argDef.type;
-            }
-          }
-
-          this._argument = argDef;
-
-          this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
-
-          this._inputTypeStack.push((0, _definition.isInputType)(argType) ? argType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.LIST:
-        {
-          var listType = (0, _definition.getNullableType)(this.getInputType());
-          var itemType = (0, _definition.isListType)(listType) ? listType.ofType : listType; // List positions never have a default value.
-
-          this._defaultValueStack.push(undefined);
-
-          this._inputTypeStack.push((0, _definition.isInputType)(itemType) ? itemType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.OBJECT_FIELD:
-        {
-          var objectType = (0, _definition.getNamedType)(this.getInputType());
-          var inputFieldType;
-          var inputField;
-
-          if ((0, _definition.isInputObjectType)(objectType)) {
-            inputField = objectType.getFields()[node.name.value];
-
-            if (inputField) {
-              inputFieldType = inputField.type;
-            }
-          }
-
-          this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);
-
-          this._inputTypeStack.push((0, _definition.isInputType)(inputFieldType) ? inputFieldType : undefined);
-
-          break;
-        }
-
-      case _kinds.Kind.ENUM:
-        {
-          var enumType = (0, _definition.getNamedType)(this.getInputType());
-          var enumValue;
-
-          if ((0, _definition.isEnumType)(enumType)) {
-            enumValue = enumType.getValue(node.value);
-          }
-
-          this._enumValue = enumValue;
-          break;
-        }
-    }
-  };
-
-  _proto.leave = function leave(node) {
-    switch (node.kind) {
-      case _kinds.Kind.SELECTION_SET:
-        this._parentTypeStack.pop();
-
-        break;
-
-      case _kinds.Kind.FIELD:
-        this._fieldDefStack.pop();
-
-        this._typeStack.pop();
-
-        break;
-
-      case _kinds.Kind.DIRECTIVE:
-        this._directive = null;
-        break;
-
-      case _kinds.Kind.OPERATION_DEFINITION:
-      case _kinds.Kind.INLINE_FRAGMENT:
-      case _kinds.Kind.FRAGMENT_DEFINITION:
-        this._typeStack.pop();
-
-        break;
-
-      case _kinds.Kind.VARIABLE_DEFINITION:
-        this._inputTypeStack.pop();
-
-        break;
-
-      case _kinds.Kind.ARGUMENT:
-        this._argument = null;
-
-        this._defaultValueStack.pop();
-
-        this._inputTypeStack.pop();
-
-        break;
-
-      case _kinds.Kind.LIST:
-      case _kinds.Kind.OBJECT_FIELD:
-        this._defaultValueStack.pop();
-
-        this._inputTypeStack.pop();
-
-        break;
-
-      case _kinds.Kind.ENUM:
-        this._enumValue = null;
-        break;
-    }
-  };
-
-  return TypeInfo;
-}();
-/**
- * Not exactly the same as the executor's definition of getFieldDef, in this
- * statically evaluated environment we do not always have an Object type,
- * and need to handle Interface and Union types.
- */
-
-
-exports.TypeInfo = TypeInfo;
-
-function getFieldDef(schema, parentType, fieldNode) {
-  var name = fieldNode.name.value;
-
-  if (name === _introspection.SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return _introspection.SchemaMetaFieldDef;
-  }
-
-  if (name === _introspection.TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return _introspection.TypeMetaFieldDef;
-  }
-
-  if (name === _introspection.TypeNameMetaFieldDef.name && (0, _definition.isCompositeType)(parentType)) {
-    return _introspection.TypeNameMetaFieldDef;
-  }
-
-  if ((0, _definition.isObjectType)(parentType) || (0, _definition.isInterfaceType)(parentType)) {
-    return parentType.getFields()[name];
-  }
-}
-/**
- * Creates a new visitor instance which maintains a provided TypeInfo instance
- * along with visiting visitor.
- */
-
-
-function visitWithTypeInfo(typeInfo, visitor) {
-  return {
-    enter: function enter(node) {
-      typeInfo.enter(node);
-      var fn = (0, _visitor.getVisitFn)(visitor, node.kind,
-      /* isLeaving */
-      false);
-
-      if (fn) {
-        var result = fn.apply(visitor, arguments);
-
-        if (result !== undefined) {
-          typeInfo.leave(node);
-
-          if ((0, _ast.isNode)(result)) {
-            typeInfo.enter(result);
-          }
-        }
-
-        return result;
-      }
-    },
-    leave: function leave(node) {
-      var fn = (0, _visitor.getVisitFn)(visitor, node.kind,
-      /* isLeaving */
-      true);
-      var result;
-
-      if (fn) {
-        result = fn.apply(visitor, arguments);
-      }
-
-      typeInfo.leave(node);
-      return result;
-    }
-  };
-}
diff --git a/node_modules/graphql/utilities/TypeInfo.js.flow b/node_modules/graphql/utilities/TypeInfo.js.flow
deleted file mode 100644
index 5d9298d..0000000
--- a/node_modules/graphql/utilities/TypeInfo.js.flow
+++ /dev/null
@@ -1,361 +0,0 @@
-// @flow strict
-
-import find from '../polyfills/find';
-
-import { Kind } from '../language/kinds';
-import { type Visitor, getVisitFn } from '../language/visitor';
-import {
-  type ASTNode,
-  type ASTKindToNode,
-  type FieldNode,
-  isNode,
-} from '../language/ast';
-
-import { type GraphQLSchema } from '../type/schema';
-import { type GraphQLDirective } from '../type/directives';
-import {
-  type GraphQLType,
-  type GraphQLInputType,
-  type GraphQLOutputType,
-  type GraphQLCompositeType,
-  type GraphQLField,
-  type GraphQLArgument,
-  type GraphQLInputField,
-  type GraphQLEnumValue,
-  isObjectType,
-  isInterfaceType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isCompositeType,
-  isInputType,
-  isOutputType,
-  getNullableType,
-  getNamedType,
-} from '../type/definition';
-import {
-  SchemaMetaFieldDef,
-  TypeMetaFieldDef,
-  TypeNameMetaFieldDef,
-} from '../type/introspection';
-
-import { typeFromAST } from './typeFromAST';
-
-/**
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
- * of the current field and type definitions at any point in a GraphQL document
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
- */
-export class TypeInfo {
-  _schema: GraphQLSchema;
-  _typeStack: Array<?GraphQLOutputType>;
-  _parentTypeStack: Array<?GraphQLCompositeType>;
-  _inputTypeStack: Array<?GraphQLInputType>;
-  _fieldDefStack: Array<?GraphQLField<mixed, mixed>>;
-  _defaultValueStack: Array<?mixed>;
-  _directive: ?GraphQLDirective;
-  _argument: ?GraphQLArgument;
-  _enumValue: ?GraphQLEnumValue;
-  _getFieldDef: typeof getFieldDef;
-
-  constructor(
-    schema: GraphQLSchema,
-    // NOTE: this experimental optional second parameter is only needed in order
-    // to support non-spec-compliant code bases. You should never need to use it.
-    // It may disappear in the future.
-    getFieldDefFn?: typeof getFieldDef,
-    // Initial type may be provided in rare cases to facilitate traversals
-    // beginning somewhere other than documents.
-    initialType?: GraphQLType,
-  ): void {
-    this._schema = schema;
-    this._typeStack = [];
-    this._parentTypeStack = [];
-    this._inputTypeStack = [];
-    this._fieldDefStack = [];
-    this._defaultValueStack = [];
-    this._directive = null;
-    this._argument = null;
-    this._enumValue = null;
-    this._getFieldDef = getFieldDefFn ?? getFieldDef;
-    if (initialType) {
-      if (isInputType(initialType)) {
-        this._inputTypeStack.push(initialType);
-      }
-      if (isCompositeType(initialType)) {
-        this._parentTypeStack.push(initialType);
-      }
-      if (isOutputType(initialType)) {
-        this._typeStack.push(initialType);
-      }
-    }
-  }
-
-  getType(): ?GraphQLOutputType {
-    if (this._typeStack.length > 0) {
-      return this._typeStack[this._typeStack.length - 1];
-    }
-  }
-
-  getParentType(): ?GraphQLCompositeType {
-    if (this._parentTypeStack.length > 0) {
-      return this._parentTypeStack[this._parentTypeStack.length - 1];
-    }
-  }
-
-  getInputType(): ?GraphQLInputType {
-    if (this._inputTypeStack.length > 0) {
-      return this._inputTypeStack[this._inputTypeStack.length - 1];
-    }
-  }
-
-  getParentInputType(): ?GraphQLInputType {
-    if (this._inputTypeStack.length > 1) {
-      return this._inputTypeStack[this._inputTypeStack.length - 2];
-    }
-  }
-
-  getFieldDef(): ?GraphQLField<mixed, mixed> {
-    if (this._fieldDefStack.length > 0) {
-      return this._fieldDefStack[this._fieldDefStack.length - 1];
-    }
-  }
-
-  getDefaultValue(): ?mixed {
-    if (this._defaultValueStack.length > 0) {
-      return this._defaultValueStack[this._defaultValueStack.length - 1];
-    }
-  }
-
-  getDirective(): ?GraphQLDirective {
-    return this._directive;
-  }
-
-  getArgument(): ?GraphQLArgument {
-    return this._argument;
-  }
-
-  getEnumValue(): ?GraphQLEnumValue {
-    return this._enumValue;
-  }
-
-  enter(node: ASTNode) {
-    const schema = this._schema;
-    // Note: many of the types below are explicitly typed as "mixed" to drop
-    // any assumptions of a valid schema to ensure runtime types are properly
-    // checked before continuing since TypeInfo is used as part of validation
-    // which occurs before guarantees of schema and document validity.
-    switch (node.kind) {
-      case Kind.SELECTION_SET: {
-        const namedType: mixed = getNamedType(this.getType());
-        this._parentTypeStack.push(
-          isCompositeType(namedType) ? namedType : undefined,
-        );
-        break;
-      }
-      case Kind.FIELD: {
-        const parentType = this.getParentType();
-        let fieldDef;
-        let fieldType: mixed;
-        if (parentType) {
-          fieldDef = this._getFieldDef(schema, parentType, node);
-          if (fieldDef) {
-            fieldType = fieldDef.type;
-          }
-        }
-        this._fieldDefStack.push(fieldDef);
-        this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);
-        break;
-      }
-      case Kind.DIRECTIVE:
-        this._directive = schema.getDirective(node.name.value);
-        break;
-      case Kind.OPERATION_DEFINITION: {
-        let type: mixed;
-        switch (node.operation) {
-          case 'query':
-            type = schema.getQueryType();
-            break;
-          case 'mutation':
-            type = schema.getMutationType();
-            break;
-          case 'subscription':
-            type = schema.getSubscriptionType();
-            break;
-        }
-        this._typeStack.push(isObjectType(type) ? type : undefined);
-        break;
-      }
-      case Kind.INLINE_FRAGMENT:
-      case Kind.FRAGMENT_DEFINITION: {
-        const typeConditionAST = node.typeCondition;
-        const outputType: mixed = typeConditionAST
-          ? typeFromAST(schema, typeConditionAST)
-          : getNamedType(this.getType());
-        this._typeStack.push(isOutputType(outputType) ? outputType : undefined);
-        break;
-      }
-      case Kind.VARIABLE_DEFINITION: {
-        const inputType: mixed = typeFromAST(schema, node.type);
-        this._inputTypeStack.push(
-          isInputType(inputType) ? inputType : undefined,
-        );
-        break;
-      }
-      case Kind.ARGUMENT: {
-        let argDef;
-        let argType: mixed;
-        const fieldOrDirective = this.getDirective() ?? this.getFieldDef();
-        if (fieldOrDirective) {
-          argDef = find(
-            fieldOrDirective.args,
-            arg => arg.name === node.name.value,
-          );
-          if (argDef) {
-            argType = argDef.type;
-          }
-        }
-        this._argument = argDef;
-        this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
-        this._inputTypeStack.push(isInputType(argType) ? argType : undefined);
-        break;
-      }
-      case Kind.LIST: {
-        const listType: mixed = getNullableType(this.getInputType());
-        const itemType: mixed = isListType(listType)
-          ? listType.ofType
-          : listType;
-        // List positions never have a default value.
-        this._defaultValueStack.push(undefined);
-        this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);
-        break;
-      }
-      case Kind.OBJECT_FIELD: {
-        const objectType: mixed = getNamedType(this.getInputType());
-        let inputFieldType: GraphQLInputType | void;
-        let inputField: GraphQLInputField | void;
-        if (isInputObjectType(objectType)) {
-          inputField = objectType.getFields()[node.name.value];
-          if (inputField) {
-            inputFieldType = inputField.type;
-          }
-        }
-        this._defaultValueStack.push(
-          inputField ? inputField.defaultValue : undefined,
-        );
-        this._inputTypeStack.push(
-          isInputType(inputFieldType) ? inputFieldType : undefined,
-        );
-        break;
-      }
-      case Kind.ENUM: {
-        const enumType: mixed = getNamedType(this.getInputType());
-        let enumValue;
-        if (isEnumType(enumType)) {
-          enumValue = enumType.getValue(node.value);
-        }
-        this._enumValue = enumValue;
-        break;
-      }
-    }
-  }
-
-  leave(node: ASTNode) {
-    switch (node.kind) {
-      case Kind.SELECTION_SET:
-        this._parentTypeStack.pop();
-        break;
-      case Kind.FIELD:
-        this._fieldDefStack.pop();
-        this._typeStack.pop();
-        break;
-      case Kind.DIRECTIVE:
-        this._directive = null;
-        break;
-      case Kind.OPERATION_DEFINITION:
-      case Kind.INLINE_FRAGMENT:
-      case Kind.FRAGMENT_DEFINITION:
-        this._typeStack.pop();
-        break;
-      case Kind.VARIABLE_DEFINITION:
-        this._inputTypeStack.pop();
-        break;
-      case Kind.ARGUMENT:
-        this._argument = null;
-        this._defaultValueStack.pop();
-        this._inputTypeStack.pop();
-        break;
-      case Kind.LIST:
-      case Kind.OBJECT_FIELD:
-        this._defaultValueStack.pop();
-        this._inputTypeStack.pop();
-        break;
-      case Kind.ENUM:
-        this._enumValue = null;
-        break;
-    }
-  }
-}
-
-/**
- * Not exactly the same as the executor's definition of getFieldDef, in this
- * statically evaluated environment we do not always have an Object type,
- * and need to handle Interface and Union types.
- */
-function getFieldDef(
-  schema: GraphQLSchema,
-  parentType: GraphQLType,
-  fieldNode: FieldNode,
-): ?GraphQLField<mixed, mixed> {
-  const name = fieldNode.name.value;
-  if (
-    name === SchemaMetaFieldDef.name &&
-    schema.getQueryType() === parentType
-  ) {
-    return SchemaMetaFieldDef;
-  }
-  if (name === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return TypeMetaFieldDef;
-  }
-  if (name === TypeNameMetaFieldDef.name && isCompositeType(parentType)) {
-    return TypeNameMetaFieldDef;
-  }
-  if (isObjectType(parentType) || isInterfaceType(parentType)) {
-    return parentType.getFields()[name];
-  }
-}
-
-/**
- * Creates a new visitor instance which maintains a provided TypeInfo instance
- * along with visiting visitor.
- */
-export function visitWithTypeInfo(
-  typeInfo: TypeInfo,
-  visitor: Visitor<ASTKindToNode>,
-): Visitor<ASTKindToNode> {
-  return {
-    enter(node) {
-      typeInfo.enter(node);
-      const fn = getVisitFn(visitor, node.kind, /* isLeaving */ false);
-      if (fn) {
-        const result = fn.apply(visitor, arguments);
-        if (result !== undefined) {
-          typeInfo.leave(node);
-          if (isNode(result)) {
-            typeInfo.enter(result);
-          }
-        }
-        return result;
-      }
-    },
-    leave(node) {
-      const fn = getVisitFn(visitor, node.kind, /* isLeaving */ true);
-      let result;
-      if (fn) {
-        result = fn.apply(visitor, arguments);
-      }
-      typeInfo.leave(node);
-      return result;
-    },
-  };
-}
diff --git a/node_modules/graphql/utilities/TypeInfo.mjs b/node_modules/graphql/utilities/TypeInfo.mjs
deleted file mode 100644
index 44d0189..0000000
--- a/node_modules/graphql/utilities/TypeInfo.mjs
+++ /dev/null
@@ -1,380 +0,0 @@
-import find from "../polyfills/find.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { getVisitFn } from "../language/visitor.mjs";
-import { isNode } from "../language/ast.mjs";
-import { isObjectType, isInterfaceType, isEnumType, isInputObjectType, isListType, isCompositeType, isInputType, isOutputType, getNullableType, getNamedType } from "../type/definition.mjs";
-import { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef } from "../type/introspection.mjs";
-import { typeFromAST } from "./typeFromAST.mjs";
-/**
- * TypeInfo is a utility class which, given a GraphQL schema, can keep track
- * of the current field and type definitions at any point in a GraphQL document
- * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
- */
-
-export var TypeInfo =
-/*#__PURE__*/
-function () {
-  function TypeInfo(schema, // NOTE: this experimental optional second parameter is only needed in order
-  // to support non-spec-compliant code bases. You should never need to use it.
-  // It may disappear in the future.
-  getFieldDefFn, // Initial type may be provided in rare cases to facilitate traversals
-  // beginning somewhere other than documents.
-  initialType) {
-    this._schema = schema;
-    this._typeStack = [];
-    this._parentTypeStack = [];
-    this._inputTypeStack = [];
-    this._fieldDefStack = [];
-    this._defaultValueStack = [];
-    this._directive = null;
-    this._argument = null;
-    this._enumValue = null;
-    this._getFieldDef = getFieldDefFn !== null && getFieldDefFn !== void 0 ? getFieldDefFn : getFieldDef;
-
-    if (initialType) {
-      if (isInputType(initialType)) {
-        this._inputTypeStack.push(initialType);
-      }
-
-      if (isCompositeType(initialType)) {
-        this._parentTypeStack.push(initialType);
-      }
-
-      if (isOutputType(initialType)) {
-        this._typeStack.push(initialType);
-      }
-    }
-  }
-
-  var _proto = TypeInfo.prototype;
-
-  _proto.getType = function getType() {
-    if (this._typeStack.length > 0) {
-      return this._typeStack[this._typeStack.length - 1];
-    }
-  };
-
-  _proto.getParentType = function getParentType() {
-    if (this._parentTypeStack.length > 0) {
-      return this._parentTypeStack[this._parentTypeStack.length - 1];
-    }
-  };
-
-  _proto.getInputType = function getInputType() {
-    if (this._inputTypeStack.length > 0) {
-      return this._inputTypeStack[this._inputTypeStack.length - 1];
-    }
-  };
-
-  _proto.getParentInputType = function getParentInputType() {
-    if (this._inputTypeStack.length > 1) {
-      return this._inputTypeStack[this._inputTypeStack.length - 2];
-    }
-  };
-
-  _proto.getFieldDef = function getFieldDef() {
-    if (this._fieldDefStack.length > 0) {
-      return this._fieldDefStack[this._fieldDefStack.length - 1];
-    }
-  };
-
-  _proto.getDefaultValue = function getDefaultValue() {
-    if (this._defaultValueStack.length > 0) {
-      return this._defaultValueStack[this._defaultValueStack.length - 1];
-    }
-  };
-
-  _proto.getDirective = function getDirective() {
-    return this._directive;
-  };
-
-  _proto.getArgument = function getArgument() {
-    return this._argument;
-  };
-
-  _proto.getEnumValue = function getEnumValue() {
-    return this._enumValue;
-  };
-
-  _proto.enter = function enter(node) {
-    var schema = this._schema; // Note: many of the types below are explicitly typed as "mixed" to drop
-    // any assumptions of a valid schema to ensure runtime types are properly
-    // checked before continuing since TypeInfo is used as part of validation
-    // which occurs before guarantees of schema and document validity.
-
-    switch (node.kind) {
-      case Kind.SELECTION_SET:
-        {
-          var namedType = getNamedType(this.getType());
-
-          this._parentTypeStack.push(isCompositeType(namedType) ? namedType : undefined);
-
-          break;
-        }
-
-      case Kind.FIELD:
-        {
-          var parentType = this.getParentType();
-          var fieldDef;
-          var fieldType;
-
-          if (parentType) {
-            fieldDef = this._getFieldDef(schema, parentType, node);
-
-            if (fieldDef) {
-              fieldType = fieldDef.type;
-            }
-          }
-
-          this._fieldDefStack.push(fieldDef);
-
-          this._typeStack.push(isOutputType(fieldType) ? fieldType : undefined);
-
-          break;
-        }
-
-      case Kind.DIRECTIVE:
-        this._directive = schema.getDirective(node.name.value);
-        break;
-
-      case Kind.OPERATION_DEFINITION:
-        {
-          var type;
-
-          switch (node.operation) {
-            case 'query':
-              type = schema.getQueryType();
-              break;
-
-            case 'mutation':
-              type = schema.getMutationType();
-              break;
-
-            case 'subscription':
-              type = schema.getSubscriptionType();
-              break;
-          }
-
-          this._typeStack.push(isObjectType(type) ? type : undefined);
-
-          break;
-        }
-
-      case Kind.INLINE_FRAGMENT:
-      case Kind.FRAGMENT_DEFINITION:
-        {
-          var typeConditionAST = node.typeCondition;
-          var outputType = typeConditionAST ? typeFromAST(schema, typeConditionAST) : getNamedType(this.getType());
-
-          this._typeStack.push(isOutputType(outputType) ? outputType : undefined);
-
-          break;
-        }
-
-      case Kind.VARIABLE_DEFINITION:
-        {
-          var inputType = typeFromAST(schema, node.type);
-
-          this._inputTypeStack.push(isInputType(inputType) ? inputType : undefined);
-
-          break;
-        }
-
-      case Kind.ARGUMENT:
-        {
-          var _this$getDirective;
-
-          var argDef;
-          var argType;
-          var fieldOrDirective = (_this$getDirective = this.getDirective()) !== null && _this$getDirective !== void 0 ? _this$getDirective : this.getFieldDef();
-
-          if (fieldOrDirective) {
-            argDef = find(fieldOrDirective.args, function (arg) {
-              return arg.name === node.name.value;
-            });
-
-            if (argDef) {
-              argType = argDef.type;
-            }
-          }
-
-          this._argument = argDef;
-
-          this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
-
-          this._inputTypeStack.push(isInputType(argType) ? argType : undefined);
-
-          break;
-        }
-
-      case Kind.LIST:
-        {
-          var listType = getNullableType(this.getInputType());
-          var itemType = isListType(listType) ? listType.ofType : listType; // List positions never have a default value.
-
-          this._defaultValueStack.push(undefined);
-
-          this._inputTypeStack.push(isInputType(itemType) ? itemType : undefined);
-
-          break;
-        }
-
-      case Kind.OBJECT_FIELD:
-        {
-          var objectType = getNamedType(this.getInputType());
-          var inputFieldType;
-          var inputField;
-
-          if (isInputObjectType(objectType)) {
-            inputField = objectType.getFields()[node.name.value];
-
-            if (inputField) {
-              inputFieldType = inputField.type;
-            }
-          }
-
-          this._defaultValueStack.push(inputField ? inputField.defaultValue : undefined);
-
-          this._inputTypeStack.push(isInputType(inputFieldType) ? inputFieldType : undefined);
-
-          break;
-        }
-
-      case Kind.ENUM:
-        {
-          var enumType = getNamedType(this.getInputType());
-          var enumValue;
-
-          if (isEnumType(enumType)) {
-            enumValue = enumType.getValue(node.value);
-          }
-
-          this._enumValue = enumValue;
-          break;
-        }
-    }
-  };
-
-  _proto.leave = function leave(node) {
-    switch (node.kind) {
-      case Kind.SELECTION_SET:
-        this._parentTypeStack.pop();
-
-        break;
-
-      case Kind.FIELD:
-        this._fieldDefStack.pop();
-
-        this._typeStack.pop();
-
-        break;
-
-      case Kind.DIRECTIVE:
-        this._directive = null;
-        break;
-
-      case Kind.OPERATION_DEFINITION:
-      case Kind.INLINE_FRAGMENT:
-      case Kind.FRAGMENT_DEFINITION:
-        this._typeStack.pop();
-
-        break;
-
-      case Kind.VARIABLE_DEFINITION:
-        this._inputTypeStack.pop();
-
-        break;
-
-      case Kind.ARGUMENT:
-        this._argument = null;
-
-        this._defaultValueStack.pop();
-
-        this._inputTypeStack.pop();
-
-        break;
-
-      case Kind.LIST:
-      case Kind.OBJECT_FIELD:
-        this._defaultValueStack.pop();
-
-        this._inputTypeStack.pop();
-
-        break;
-
-      case Kind.ENUM:
-        this._enumValue = null;
-        break;
-    }
-  };
-
-  return TypeInfo;
-}();
-/**
- * Not exactly the same as the executor's definition of getFieldDef, in this
- * statically evaluated environment we do not always have an Object type,
- * and need to handle Interface and Union types.
- */
-
-function getFieldDef(schema, parentType, fieldNode) {
-  var name = fieldNode.name.value;
-
-  if (name === SchemaMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return SchemaMetaFieldDef;
-  }
-
-  if (name === TypeMetaFieldDef.name && schema.getQueryType() === parentType) {
-    return TypeMetaFieldDef;
-  }
-
-  if (name === TypeNameMetaFieldDef.name && isCompositeType(parentType)) {
-    return TypeNameMetaFieldDef;
-  }
-
-  if (isObjectType(parentType) || isInterfaceType(parentType)) {
-    return parentType.getFields()[name];
-  }
-}
-/**
- * Creates a new visitor instance which maintains a provided TypeInfo instance
- * along with visiting visitor.
- */
-
-
-export function visitWithTypeInfo(typeInfo, visitor) {
-  return {
-    enter: function enter(node) {
-      typeInfo.enter(node);
-      var fn = getVisitFn(visitor, node.kind,
-      /* isLeaving */
-      false);
-
-      if (fn) {
-        var result = fn.apply(visitor, arguments);
-
-        if (result !== undefined) {
-          typeInfo.leave(node);
-
-          if (isNode(result)) {
-            typeInfo.enter(result);
-          }
-        }
-
-        return result;
-      }
-    },
-    leave: function leave(node) {
-      var fn = getVisitFn(visitor, node.kind,
-      /* isLeaving */
-      true);
-      var result;
-
-      if (fn) {
-        result = fn.apply(visitor, arguments);
-      }
-
-      typeInfo.leave(node);
-      return result;
-    }
-  };
-}
diff --git a/node_modules/graphql/utilities/assertValidName.d.ts b/node_modules/graphql/utilities/assertValidName.d.ts
deleted file mode 100644
index 5a1011e..0000000
--- a/node_modules/graphql/utilities/assertValidName.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { GraphQLError } from '../error/GraphQLError';
-
-/**
- * Upholds the spec rules about naming.
- */
-export function assertValidName(name: string): string;
-
-/**
- * Returns an Error if a name is invalid.
- */
-export function isValidNameError(name: string): GraphQLError | undefined;
diff --git a/node_modules/graphql/utilities/assertValidName.js b/node_modules/graphql/utilities/assertValidName.js
deleted file mode 100644
index 26be1e4..0000000
--- a/node_modules/graphql/utilities/assertValidName.js
+++ /dev/null
@@ -1,44 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.assertValidName = assertValidName;
-exports.isValidNameError = isValidNameError;
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _GraphQLError = require("../error/GraphQLError");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
-/**
- * Upholds the spec rules about naming.
- */
-
-function assertValidName(name) {
-  var error = isValidNameError(name);
-
-  if (error) {
-    throw error;
-  }
-
-  return name;
-}
-/**
- * Returns an Error if a name is invalid.
- */
-
-
-function isValidNameError(name) {
-  typeof name === 'string' || (0, _devAssert.default)(0, 'Expected name to be a string.');
-
-  if (name.length > 1 && name[0] === '_' && name[1] === '_') {
-    return new _GraphQLError.GraphQLError("Name \"".concat(name, "\" must not begin with \"__\", which is reserved by GraphQL introspection."));
-  }
-
-  if (!NAME_RX.test(name)) {
-    return new _GraphQLError.GraphQLError("Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \"".concat(name, "\" does not."));
-  }
-}
diff --git a/node_modules/graphql/utilities/assertValidName.js.flow b/node_modules/graphql/utilities/assertValidName.js.flow
deleted file mode 100644
index 0d8bab7..0000000
--- a/node_modules/graphql/utilities/assertValidName.js.flow
+++ /dev/null
@@ -1,35 +0,0 @@
-// @flow strict
-
-import devAssert from '../jsutils/devAssert';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-const NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
-
-/**
- * Upholds the spec rules about naming.
- */
-export function assertValidName(name: string): string {
-  const error = isValidNameError(name);
-  if (error) {
-    throw error;
-  }
-  return name;
-}
-
-/**
- * Returns an Error if a name is invalid.
- */
-export function isValidNameError(name: string): GraphQLError | void {
-  devAssert(typeof name === 'string', 'Expected name to be a string.');
-  if (name.length > 1 && name[0] === '_' && name[1] === '_') {
-    return new GraphQLError(
-      `Name "${name}" must not begin with "__", which is reserved by GraphQL introspection.`,
-    );
-  }
-  if (!NAME_RX.test(name)) {
-    return new GraphQLError(
-      `Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "${name}" does not.`,
-    );
-  }
-}
diff --git a/node_modules/graphql/utilities/assertValidName.mjs b/node_modules/graphql/utilities/assertValidName.mjs
deleted file mode 100644
index d504d22..0000000
--- a/node_modules/graphql/utilities/assertValidName.mjs
+++ /dev/null
@@ -1,31 +0,0 @@
-import devAssert from "../jsutils/devAssert.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-var NAME_RX = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
-/**
- * Upholds the spec rules about naming.
- */
-
-export function assertValidName(name) {
-  var error = isValidNameError(name);
-
-  if (error) {
-    throw error;
-  }
-
-  return name;
-}
-/**
- * Returns an Error if a name is invalid.
- */
-
-export function isValidNameError(name) {
-  typeof name === 'string' || devAssert(0, 'Expected name to be a string.');
-
-  if (name.length > 1 && name[0] === '_' && name[1] === '_') {
-    return new GraphQLError("Name \"".concat(name, "\" must not begin with \"__\", which is reserved by GraphQL introspection."));
-  }
-
-  if (!NAME_RX.test(name)) {
-    return new GraphQLError("Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but \"".concat(name, "\" does not."));
-  }
-}
diff --git a/node_modules/graphql/utilities/astFromValue.d.ts b/node_modules/graphql/utilities/astFromValue.d.ts
deleted file mode 100644
index ed84eb4..0000000
--- a/node_modules/graphql/utilities/astFromValue.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { ValueNode } from '../language/ast';
-import { GraphQLInputType } from '../type/definition';
-
-/**
- * Produces a GraphQL Value AST given a JavaScript value.
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * JavaScript values.
- *
- * | JSON Value    | GraphQL Value        |
- * | ------------- | -------------------- |
- * | Object        | Input Object         |
- * | Array         | List                 |
- * | Boolean       | Boolean              |
- * | String        | String / Enum Value  |
- * | Number        | Int / Float          |
- * | Mixed         | Enum Value           |
- * | null          | NullValue            |
- *
- */
-export function astFromValue(
-  value: any,
-  type: GraphQLInputType,
-): Maybe<ValueNode>;
diff --git a/node_modules/graphql/utilities/astFromValue.js b/node_modules/graphql/utilities/astFromValue.js
deleted file mode 100644
index cfaa01f..0000000
--- a/node_modules/graphql/utilities/astFromValue.js
+++ /dev/null
@@ -1,199 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.astFromValue = astFromValue;
-
-var _isFinite = _interopRequireDefault(require("../polyfills/isFinite"));
-
-var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
-
-var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
-
-var _kinds = require("../language/kinds");
-
-var _scalars = require("../type/scalars");
-
-var _definition = require("../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Produces a GraphQL Value AST given a JavaScript object.
- * Function will match JavaScript/JSON values to GraphQL AST schema format
- * by using suggested GraphQLInputType. For example:
- *
- *     astFromValue("value", GraphQLString)
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * JavaScript values.
- *
- * | JSON Value    | GraphQL Value        |
- * | ------------- | -------------------- |
- * | Object        | Input Object         |
- * | Array         | List                 |
- * | Boolean       | Boolean              |
- * | String        | String / Enum Value  |
- * | Number        | Int / Float          |
- * | Mixed         | Enum Value           |
- * | null          | NullValue            |
- *
- */
-function astFromValue(value, type) {
-  if ((0, _definition.isNonNullType)(type)) {
-    var astValue = astFromValue(value, type.ofType);
-
-    if ((astValue === null || astValue === void 0 ? void 0 : astValue.kind) === _kinds.Kind.NULL) {
-      return null;
-    }
-
-    return astValue;
-  } // only explicit null, not undefined, NaN
-
-
-  if (value === null) {
-    return {
-      kind: _kinds.Kind.NULL
-    };
-  } // undefined
-
-
-  if (value === undefined) {
-    return null;
-  } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
-  // the value is not an array, convert the value using the list's item type.
-
-
-  if ((0, _definition.isListType)(type)) {
-    var itemType = type.ofType;
-
-    if ((0, _isCollection.default)(value)) {
-      var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
-      // and it's required to first convert iteratable into array
-
-      for (var _i2 = 0, _arrayFrom2 = (0, _arrayFrom3.default)(value); _i2 < _arrayFrom2.length; _i2++) {
-        var item = _arrayFrom2[_i2];
-        var itemNode = astFromValue(item, itemType);
-
-        if (itemNode != null) {
-          valuesNodes.push(itemNode);
-        }
-      }
-
-      return {
-        kind: _kinds.Kind.LIST,
-        values: valuesNodes
-      };
-    }
-
-    return astFromValue(value, itemType);
-  } // Populate the fields of the input object by creating ASTs from each value
-  // in the JavaScript object according to the fields in the input type.
-
-
-  if ((0, _definition.isInputObjectType)(type)) {
-    if (!(0, _isObjectLike.default)(value)) {
-      return null;
-    }
-
-    var fieldNodes = [];
-
-    for (var _i4 = 0, _objectValues2 = (0, _objectValues3.default)(type.getFields()); _i4 < _objectValues2.length; _i4++) {
-      var field = _objectValues2[_i4];
-      var fieldValue = astFromValue(value[field.name], field.type);
-
-      if (fieldValue) {
-        fieldNodes.push({
-          kind: _kinds.Kind.OBJECT_FIELD,
-          name: {
-            kind: _kinds.Kind.NAME,
-            value: field.name
-          },
-          value: fieldValue
-        });
-      }
-    }
-
-    return {
-      kind: _kinds.Kind.OBJECT,
-      fields: fieldNodes
-    };
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isLeafType)(type)) {
-    // Since value is an internally represented value, it must be serialized
-    // to an externally represented value before converting into an AST.
-    var serialized = type.serialize(value);
-
-    if (serialized == null) {
-      return null;
-    } // Others serialize based on their corresponding JavaScript scalar types.
-
-
-    if (typeof serialized === 'boolean') {
-      return {
-        kind: _kinds.Kind.BOOLEAN,
-        value: serialized
-      };
-    } // JavaScript numbers can be Int or Float values.
-
-
-    if (typeof serialized === 'number' && (0, _isFinite.default)(serialized)) {
-      var stringNum = String(serialized);
-      return integerStringRegExp.test(stringNum) ? {
-        kind: _kinds.Kind.INT,
-        value: stringNum
-      } : {
-        kind: _kinds.Kind.FLOAT,
-        value: stringNum
-      };
-    }
-
-    if (typeof serialized === 'string') {
-      // Enum types use Enum literals.
-      if ((0, _definition.isEnumType)(type)) {
-        return {
-          kind: _kinds.Kind.ENUM,
-          value: serialized
-        };
-      } // ID types can use Int literals.
-
-
-      if (type === _scalars.GraphQLID && integerStringRegExp.test(serialized)) {
-        return {
-          kind: _kinds.Kind.INT,
-          value: serialized
-        };
-      }
-
-      return {
-        kind: _kinds.Kind.STRING,
-        value: serialized
-      };
-    }
-
-    throw new TypeError("Cannot convert value to AST: ".concat((0, _inspect.default)(serialized), "."));
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected input type: ' + (0, _inspect.default)(type));
-}
-/**
- * IntValue:
- *   - NegativeSign? 0
- *   - NegativeSign? NonZeroDigit ( Digit+ )?
- */
-
-
-var integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
diff --git a/node_modules/graphql/utilities/astFromValue.js.flow b/node_modules/graphql/utilities/astFromValue.js.flow
deleted file mode 100644
index d4ea450..0000000
--- a/node_modules/graphql/utilities/astFromValue.js.flow
+++ /dev/null
@@ -1,154 +0,0 @@
-// @flow strict
-
-import isFinite from '../polyfills/isFinite';
-import arrayFrom from '../polyfills/arrayFrom';
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-import isObjectLike from '../jsutils/isObjectLike';
-import isCollection from '../jsutils/isCollection';
-
-import { Kind } from '../language/kinds';
-import { type ValueNode } from '../language/ast';
-
-import { GraphQLID } from '../type/scalars';
-import {
-  type GraphQLInputType,
-  isLeafType,
-  isEnumType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-} from '../type/definition';
-
-/**
- * Produces a GraphQL Value AST given a JavaScript object.
- * Function will match JavaScript/JSON values to GraphQL AST schema format
- * by using suggested GraphQLInputType. For example:
- *
- *     astFromValue("value", GraphQLString)
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * JavaScript values.
- *
- * | JSON Value    | GraphQL Value        |
- * | ------------- | -------------------- |
- * | Object        | Input Object         |
- * | Array         | List                 |
- * | Boolean       | Boolean              |
- * | String        | String / Enum Value  |
- * | Number        | Int / Float          |
- * | Mixed         | Enum Value           |
- * | null          | NullValue            |
- *
- */
-export function astFromValue(value: mixed, type: GraphQLInputType): ?ValueNode {
-  if (isNonNullType(type)) {
-    const astValue = astFromValue(value, type.ofType);
-    if (astValue?.kind === Kind.NULL) {
-      return null;
-    }
-    return astValue;
-  }
-
-  // only explicit null, not undefined, NaN
-  if (value === null) {
-    return { kind: Kind.NULL };
-  }
-
-  // undefined
-  if (value === undefined) {
-    return null;
-  }
-
-  // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
-  // the value is not an array, convert the value using the list's item type.
-  if (isListType(type)) {
-    const itemType = type.ofType;
-    if (isCollection(value)) {
-      const valuesNodes = [];
-      // Since we transpile for-of in loose mode it doesn't support iterators
-      // and it's required to first convert iteratable into array
-      for (const item of arrayFrom(value)) {
-        const itemNode = astFromValue(item, itemType);
-        if (itemNode != null) {
-          valuesNodes.push(itemNode);
-        }
-      }
-      return { kind: Kind.LIST, values: valuesNodes };
-    }
-    return astFromValue(value, itemType);
-  }
-
-  // Populate the fields of the input object by creating ASTs from each value
-  // in the JavaScript object according to the fields in the input type.
-  if (isInputObjectType(type)) {
-    if (!isObjectLike(value)) {
-      return null;
-    }
-    const fieldNodes = [];
-    for (const field of objectValues(type.getFields())) {
-      const fieldValue = astFromValue(value[field.name], field.type);
-      if (fieldValue) {
-        fieldNodes.push({
-          kind: Kind.OBJECT_FIELD,
-          name: { kind: Kind.NAME, value: field.name },
-          value: fieldValue,
-        });
-      }
-    }
-    return { kind: Kind.OBJECT, fields: fieldNodes };
-  }
-
-  if (isLeafType(type)) {
-    // Since value is an internally represented value, it must be serialized
-    // to an externally represented value before converting into an AST.
-    const serialized = type.serialize(value);
-    if (serialized == null) {
-      return null;
-    }
-
-    // Others serialize based on their corresponding JavaScript scalar types.
-    if (typeof serialized === 'boolean') {
-      return { kind: Kind.BOOLEAN, value: serialized };
-    }
-
-    // JavaScript numbers can be Int or Float values.
-    if (typeof serialized === 'number' && isFinite(serialized)) {
-      const stringNum = String(serialized);
-      return integerStringRegExp.test(stringNum)
-        ? { kind: Kind.INT, value: stringNum }
-        : { kind: Kind.FLOAT, value: stringNum };
-    }
-
-    if (typeof serialized === 'string') {
-      // Enum types use Enum literals.
-      if (isEnumType(type)) {
-        return { kind: Kind.ENUM, value: serialized };
-      }
-
-      // ID types can use Int literals.
-      if (type === GraphQLID && integerStringRegExp.test(serialized)) {
-        return { kind: Kind.INT, value: serialized };
-      }
-
-      return {
-        kind: Kind.STRING,
-        value: serialized,
-      };
-    }
-
-    throw new TypeError(`Cannot convert value to AST: ${inspect(serialized)}.`);
-  }
-
-  // Not reachable. All possible input types have been considered.
-  invariant(false, 'Unexpected input type: ' + inspect((type: empty)));
-}
-
-/**
- * IntValue:
- *   - NegativeSign? 0
- *   - NegativeSign? NonZeroDigit ( Digit+ )?
- */
-const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
diff --git a/node_modules/graphql/utilities/astFromValue.mjs b/node_modules/graphql/utilities/astFromValue.mjs
deleted file mode 100644
index e7d310c..0000000
--- a/node_modules/graphql/utilities/astFromValue.mjs
+++ /dev/null
@@ -1,180 +0,0 @@
-import isFinite from "../polyfills/isFinite.mjs";
-import arrayFrom from "../polyfills/arrayFrom.mjs";
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import isCollection from "../jsutils/isCollection.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { GraphQLID } from "../type/scalars.mjs";
-import { isLeafType, isEnumType, isInputObjectType, isListType, isNonNullType } from "../type/definition.mjs";
-/**
- * Produces a GraphQL Value AST given a JavaScript object.
- * Function will match JavaScript/JSON values to GraphQL AST schema format
- * by using suggested GraphQLInputType. For example:
- *
- *     astFromValue("value", GraphQLString)
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * JavaScript values.
- *
- * | JSON Value    | GraphQL Value        |
- * | ------------- | -------------------- |
- * | Object        | Input Object         |
- * | Array         | List                 |
- * | Boolean       | Boolean              |
- * | String        | String / Enum Value  |
- * | Number        | Int / Float          |
- * | Mixed         | Enum Value           |
- * | null          | NullValue            |
- *
- */
-
-export function astFromValue(value, type) {
-  if (isNonNullType(type)) {
-    var astValue = astFromValue(value, type.ofType);
-
-    if ((astValue === null || astValue === void 0 ? void 0 : astValue.kind) === Kind.NULL) {
-      return null;
-    }
-
-    return astValue;
-  } // only explicit null, not undefined, NaN
-
-
-  if (value === null) {
-    return {
-      kind: Kind.NULL
-    };
-  } // undefined
-
-
-  if (value === undefined) {
-    return null;
-  } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
-  // the value is not an array, convert the value using the list's item type.
-
-
-  if (isListType(type)) {
-    var itemType = type.ofType;
-
-    if (isCollection(value)) {
-      var valuesNodes = []; // Since we transpile for-of in loose mode it doesn't support iterators
-      // and it's required to first convert iteratable into array
-
-      for (var _i2 = 0, _arrayFrom2 = arrayFrom(value); _i2 < _arrayFrom2.length; _i2++) {
-        var item = _arrayFrom2[_i2];
-        var itemNode = astFromValue(item, itemType);
-
-        if (itemNode != null) {
-          valuesNodes.push(itemNode);
-        }
-      }
-
-      return {
-        kind: Kind.LIST,
-        values: valuesNodes
-      };
-    }
-
-    return astFromValue(value, itemType);
-  } // Populate the fields of the input object by creating ASTs from each value
-  // in the JavaScript object according to the fields in the input type.
-
-
-  if (isInputObjectType(type)) {
-    if (!isObjectLike(value)) {
-      return null;
-    }
-
-    var fieldNodes = [];
-
-    for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {
-      var field = _objectValues2[_i4];
-      var fieldValue = astFromValue(value[field.name], field.type);
-
-      if (fieldValue) {
-        fieldNodes.push({
-          kind: Kind.OBJECT_FIELD,
-          name: {
-            kind: Kind.NAME,
-            value: field.name
-          },
-          value: fieldValue
-        });
-      }
-    }
-
-    return {
-      kind: Kind.OBJECT,
-      fields: fieldNodes
-    };
-  }
-
-  /* istanbul ignore else */
-  if (isLeafType(type)) {
-    // Since value is an internally represented value, it must be serialized
-    // to an externally represented value before converting into an AST.
-    var serialized = type.serialize(value);
-
-    if (serialized == null) {
-      return null;
-    } // Others serialize based on their corresponding JavaScript scalar types.
-
-
-    if (typeof serialized === 'boolean') {
-      return {
-        kind: Kind.BOOLEAN,
-        value: serialized
-      };
-    } // JavaScript numbers can be Int or Float values.
-
-
-    if (typeof serialized === 'number' && isFinite(serialized)) {
-      var stringNum = String(serialized);
-      return integerStringRegExp.test(stringNum) ? {
-        kind: Kind.INT,
-        value: stringNum
-      } : {
-        kind: Kind.FLOAT,
-        value: stringNum
-      };
-    }
-
-    if (typeof serialized === 'string') {
-      // Enum types use Enum literals.
-      if (isEnumType(type)) {
-        return {
-          kind: Kind.ENUM,
-          value: serialized
-        };
-      } // ID types can use Int literals.
-
-
-      if (type === GraphQLID && integerStringRegExp.test(serialized)) {
-        return {
-          kind: Kind.INT,
-          value: serialized
-        };
-      }
-
-      return {
-        kind: Kind.STRING,
-        value: serialized
-      };
-    }
-
-    throw new TypeError("Cannot convert value to AST: ".concat(inspect(serialized), "."));
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected input type: ' + inspect(type));
-}
-/**
- * IntValue:
- *   - NegativeSign? 0
- *   - NegativeSign? NonZeroDigit ( Digit+ )?
- */
-
-var integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
diff --git a/node_modules/graphql/utilities/buildASTSchema.d.ts b/node_modules/graphql/utilities/buildASTSchema.d.ts
deleted file mode 100644
index adb7565..0000000
--- a/node_modules/graphql/utilities/buildASTSchema.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { DocumentNode } from '../language/ast';
-import { Source } from '../language/source';
-import { GraphQLSchema, GraphQLSchemaValidationOptions } from '../type/schema';
-import { ParseOptions } from '../language/parser';
-
-interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean;
-
-  /**
-   * Set to true to assume the SDL is valid.
-   *
-   * Default: false
-   */
-  assumeValidSDL?: boolean;
-}
-
-/**
- * This takes the ast of a schema document produced by the parse function in
- * src/language/parser.js.
- *
- * If no schema definition is provided, then it will look for types named Query
- * and Mutation.
- *
- * Given that AST it constructs a GraphQLSchema. The resulting schema
- * has no resolve methods, so execution will use default resolvers.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function buildASTSchema(
-  documentAST: DocumentNode,
-  options?: BuildSchemaOptions,
-): GraphQLSchema;
-
-/**
- * A helper function to build a GraphQLSchema directly from a source
- * document.
- */
-export function buildSchema(
-  source: string | Source,
-  options?: BuildSchemaOptions & ParseOptions,
-): GraphQLSchema;
diff --git a/node_modules/graphql/utilities/buildASTSchema.js b/node_modules/graphql/utilities/buildASTSchema.js
deleted file mode 100644
index 127f7ca..0000000
--- a/node_modules/graphql/utilities/buildASTSchema.js
+++ /dev/null
@@ -1,116 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.buildASTSchema = buildASTSchema;
-exports.buildSchema = buildSchema;
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _kinds = require("../language/kinds");
-
-var _parser = require("../language/parser");
-
-var _validate = require("../validation/validate");
-
-var _schema = require("../type/schema");
-
-var _directives = require("../type/directives");
-
-var _extendSchema = require("./extendSchema");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * This takes the ast of a schema document produced by the parse function in
- * src/language/parser.js.
- *
- * If no schema definition is provided, then it will look for types named Query
- * and Mutation.
- *
- * Given that AST it constructs a GraphQLSchema. The resulting schema
- * has no resolve methods, so execution will use default resolvers.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-function buildASTSchema(documentAST, options) {
-  documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT || (0, _devAssert.default)(0, 'Must provide valid Document AST.');
-
-  if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {
-    (0, _validate.assertValidSDL)(documentAST);
-  }
-
-  var config = (0, _extendSchema.extendSchemaImpl)(emptySchemaConfig, documentAST, options);
-
-  if (config.astNode == null) {
-    for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {
-      var type = _config$types2[_i2];
-
-      switch (type.name) {
-        // Note: While this could make early assertions to get the correctly
-        // typed values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable results.
-        case 'Query':
-          config.query = type;
-          break;
-
-        case 'Mutation':
-          config.mutation = type;
-          break;
-
-        case 'Subscription':
-          config.subscription = type;
-          break;
-      }
-    }
-  }
-
-  var directives = config.directives; // If specified directives were not explicitly declared, add them.
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'skip';
-  })) {
-    directives.push(_directives.GraphQLSkipDirective);
-  }
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'include';
-  })) {
-    directives.push(_directives.GraphQLIncludeDirective);
-  }
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'deprecated';
-  })) {
-    directives.push(_directives.GraphQLDeprecatedDirective);
-  }
-
-  return new _schema.GraphQLSchema(config);
-}
-
-var emptySchemaConfig = new _schema.GraphQLSchema({
-  directives: []
-}).toConfig();
-/**
- * A helper function to build a GraphQLSchema directly from a source
- * document.
- */
-
-function buildSchema(source, options) {
-  var document = (0, _parser.parse)(source, {
-    noLocation: options === null || options === void 0 ? void 0 : options.noLocation,
-    allowLegacySDLEmptyFields: options === null || options === void 0 ? void 0 : options.allowLegacySDLEmptyFields,
-    allowLegacySDLImplementsInterfaces: options === null || options === void 0 ? void 0 : options.allowLegacySDLImplementsInterfaces,
-    experimentalFragmentVariables: options === null || options === void 0 ? void 0 : options.experimentalFragmentVariables
-  });
-  return buildASTSchema(document, {
-    commentDescriptions: options === null || options === void 0 ? void 0 : options.commentDescriptions,
-    assumeValidSDL: options === null || options === void 0 ? void 0 : options.assumeValidSDL,
-    assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid
-  });
-}
diff --git a/node_modules/graphql/utilities/buildASTSchema.js.flow b/node_modules/graphql/utilities/buildASTSchema.js.flow
deleted file mode 100644
index f33fb7a..0000000
--- a/node_modules/graphql/utilities/buildASTSchema.js.flow
+++ /dev/null
@@ -1,135 +0,0 @@
-// @flow strict
-
-import devAssert from '../jsutils/devAssert';
-
-import { Kind } from '../language/kinds';
-import { type Source } from '../language/source';
-import { type DocumentNode } from '../language/ast';
-import { type ParseOptions, parse } from '../language/parser';
-
-import { assertValidSDL } from '../validation/validate';
-
-import {
-  type GraphQLSchemaValidationOptions,
-  GraphQLSchema,
-} from '../type/schema';
-import {
-  GraphQLSkipDirective,
-  GraphQLIncludeDirective,
-  GraphQLDeprecatedDirective,
-} from '../type/directives';
-
-import { extendSchemaImpl } from './extendSchema';
-
-export type BuildSchemaOptions = {|
-  ...GraphQLSchemaValidationOptions,
-
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean,
-
-  /**
-   * Set to true to assume the SDL is valid.
-   *
-   * Default: false
-   */
-  assumeValidSDL?: boolean,
-|};
-
-/**
- * This takes the ast of a schema document produced by the parse function in
- * src/language/parser.js.
- *
- * If no schema definition is provided, then it will look for types named Query
- * and Mutation.
- *
- * Given that AST it constructs a GraphQLSchema. The resulting schema
- * has no resolve methods, so execution will use default resolvers.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function buildASTSchema(
-  documentAST: DocumentNode,
-  options?: BuildSchemaOptions,
-): GraphQLSchema {
-  devAssert(
-    documentAST != null && documentAST.kind === Kind.DOCUMENT,
-    'Must provide valid Document AST.',
-  );
-
-  if (options?.assumeValid !== true && options?.assumeValidSDL !== true) {
-    assertValidSDL(documentAST);
-  }
-
-  const config = extendSchemaImpl(emptySchemaConfig, documentAST, options);
-
-  if (config.astNode == null) {
-    for (const type of config.types) {
-      switch (type.name) {
-        // Note: While this could make early assertions to get the correctly
-        // typed values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable results.
-        case 'Query':
-          config.query = (type: any);
-          break;
-        case 'Mutation':
-          config.mutation = (type: any);
-          break;
-        case 'Subscription':
-          config.subscription = (type: any);
-          break;
-      }
-    }
-  }
-
-  const { directives } = config;
-  // If specified directives were not explicitly declared, add them.
-  if (!directives.some(directive => directive.name === 'skip')) {
-    directives.push(GraphQLSkipDirective);
-  }
-
-  if (!directives.some(directive => directive.name === 'include')) {
-    directives.push(GraphQLIncludeDirective);
-  }
-
-  if (!directives.some(directive => directive.name === 'deprecated')) {
-    directives.push(GraphQLDeprecatedDirective);
-  }
-
-  return new GraphQLSchema(config);
-}
-
-const emptySchemaConfig = new GraphQLSchema({ directives: [] }).toConfig();
-
-/**
- * A helper function to build a GraphQLSchema directly from a source
- * document.
- */
-export function buildSchema(
-  source: string | Source,
-  options?: {| ...BuildSchemaOptions, ...ParseOptions |},
-): GraphQLSchema {
-  const document = parse(source, {
-    noLocation: options?.noLocation,
-    allowLegacySDLEmptyFields: options?.allowLegacySDLEmptyFields,
-    allowLegacySDLImplementsInterfaces:
-      options?.allowLegacySDLImplementsInterfaces,
-    experimentalFragmentVariables: options?.experimentalFragmentVariables,
-  });
-
-  return buildASTSchema(document, {
-    commentDescriptions: options?.commentDescriptions,
-    assumeValidSDL: options?.assumeValidSDL,
-    assumeValid: options?.assumeValid,
-  });
-}
diff --git a/node_modules/graphql/utilities/buildASTSchema.mjs b/node_modules/graphql/utilities/buildASTSchema.mjs
deleted file mode 100644
index ef1be62..0000000
--- a/node_modules/graphql/utilities/buildASTSchema.mjs
+++ /dev/null
@@ -1,99 +0,0 @@
-import devAssert from "../jsutils/devAssert.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { parse } from "../language/parser.mjs";
-import { assertValidSDL } from "../validation/validate.mjs";
-import { GraphQLSchema } from "../type/schema.mjs";
-import { GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective } from "../type/directives.mjs";
-import { extendSchemaImpl } from "./extendSchema.mjs";
-
-/**
- * This takes the ast of a schema document produced by the parse function in
- * src/language/parser.js.
- *
- * If no schema definition is provided, then it will look for types named Query
- * and Mutation.
- *
- * Given that AST it constructs a GraphQLSchema. The resulting schema
- * has no resolve methods, so execution will use default resolvers.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function buildASTSchema(documentAST, options) {
-  documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');
-
-  if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {
-    assertValidSDL(documentAST);
-  }
-
-  var config = extendSchemaImpl(emptySchemaConfig, documentAST, options);
-
-  if (config.astNode == null) {
-    for (var _i2 = 0, _config$types2 = config.types; _i2 < _config$types2.length; _i2++) {
-      var type = _config$types2[_i2];
-
-      switch (type.name) {
-        // Note: While this could make early assertions to get the correctly
-        // typed values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable results.
-        case 'Query':
-          config.query = type;
-          break;
-
-        case 'Mutation':
-          config.mutation = type;
-          break;
-
-        case 'Subscription':
-          config.subscription = type;
-          break;
-      }
-    }
-  }
-
-  var directives = config.directives; // If specified directives were not explicitly declared, add them.
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'skip';
-  })) {
-    directives.push(GraphQLSkipDirective);
-  }
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'include';
-  })) {
-    directives.push(GraphQLIncludeDirective);
-  }
-
-  if (!directives.some(function (directive) {
-    return directive.name === 'deprecated';
-  })) {
-    directives.push(GraphQLDeprecatedDirective);
-  }
-
-  return new GraphQLSchema(config);
-}
-var emptySchemaConfig = new GraphQLSchema({
-  directives: []
-}).toConfig();
-/**
- * A helper function to build a GraphQLSchema directly from a source
- * document.
- */
-
-export function buildSchema(source, options) {
-  var document = parse(source, {
-    noLocation: options === null || options === void 0 ? void 0 : options.noLocation,
-    allowLegacySDLEmptyFields: options === null || options === void 0 ? void 0 : options.allowLegacySDLEmptyFields,
-    allowLegacySDLImplementsInterfaces: options === null || options === void 0 ? void 0 : options.allowLegacySDLImplementsInterfaces,
-    experimentalFragmentVariables: options === null || options === void 0 ? void 0 : options.experimentalFragmentVariables
-  });
-  return buildASTSchema(document, {
-    commentDescriptions: options === null || options === void 0 ? void 0 : options.commentDescriptions,
-    assumeValidSDL: options === null || options === void 0 ? void 0 : options.assumeValidSDL,
-    assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid
-  });
-}
diff --git a/node_modules/graphql/utilities/buildClientSchema.d.ts b/node_modules/graphql/utilities/buildClientSchema.d.ts
deleted file mode 100644
index a541cd3..0000000
--- a/node_modules/graphql/utilities/buildClientSchema.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLSchema, GraphQLSchemaValidationOptions } from '../type/schema';
-
-import { IntrospectionQuery } from './getIntrospectionQuery';
-
-/**
- * Build a GraphQLSchema for use by client tools.
- *
- * Given the result of a client running the introspection query, creates and
- * returns a GraphQLSchema instance which can be then used with all graphql-js
- * tools, but cannot be used to execute a query, as introspection does not
- * represent the "resolver", "parse" or "serialize" functions or any other
- * server-internal mechanisms.
- *
- * This function expects a complete introspection result. Don't forget to check
- * the "errors" field of a server response before calling this function.
- */
-export function buildClientSchema(
-  introspection: IntrospectionQuery,
-  options?: GraphQLSchemaValidationOptions,
-): GraphQLSchema;
diff --git a/node_modules/graphql/utilities/buildClientSchema.js b/node_modules/graphql/utilities/buildClientSchema.js
deleted file mode 100644
index 5ddc9d8..0000000
--- a/node_modules/graphql/utilities/buildClientSchema.js
+++ /dev/null
@@ -1,333 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.buildClientSchema = buildClientSchema;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _parser = require("../language/parser");
-
-var _directives = require("../type/directives");
-
-var _scalars = require("../type/scalars");
-
-var _introspection = require("../type/introspection");
-
-var _schema = require("../type/schema");
-
-var _definition = require("../type/definition");
-
-var _valueFromAST = require("./valueFromAST");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Build a GraphQLSchema for use by client tools.
- *
- * Given the result of a client running the introspection query, creates and
- * returns a GraphQLSchema instance which can be then used with all graphql-js
- * tools, but cannot be used to execute a query, as introspection does not
- * represent the "resolver", "parse" or "serialize" functions or any other
- * server-internal mechanisms.
- *
- * This function expects a complete introspection result. Don't forget to check
- * the "errors" field of a server response before calling this function.
- */
-function buildClientSchema(introspection, options) {
-  (0, _isObjectLike.default)(introspection) && (0, _isObjectLike.default)(introspection.__schema) || (0, _devAssert.default)(0, "Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ".concat((0, _inspect.default)(introspection), ".")); // Get the schema from the introspection result.
-
-  var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.
-
-  var typeMap = (0, _keyValMap.default)(schemaIntrospection.types, function (typeIntrospection) {
-    return typeIntrospection.name;
-  }, function (typeIntrospection) {
-    return buildType(typeIntrospection);
-  }); // Include standard types only if they are used.
-
-  for (var _i2 = 0, _ref2 = [].concat(_scalars.specifiedScalarTypes, _introspection.introspectionTypes); _i2 < _ref2.length; _i2++) {
-    var stdType = _ref2[_i2];
-
-    if (typeMap[stdType.name]) {
-      typeMap[stdType.name] = stdType;
-    }
-  } // Get the root Query, Mutation, and Subscription types.
-
-
-  var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;
-  var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;
-  var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if
-  // directives were not queried for.
-
-  var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.
-
-  return new _schema.GraphQLSchema({
-    description: schemaIntrospection.description,
-    query: queryType,
-    mutation: mutationType,
-    subscription: subscriptionType,
-    types: (0, _objectValues.default)(typeMap),
-    directives: directives,
-    assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid
-  }); // Given a type reference in introspection, return the GraphQLType instance.
-  // preferring cached instances before building new instances.
-
-  function getType(typeRef) {
-    if (typeRef.kind === _introspection.TypeKind.LIST) {
-      var itemRef = typeRef.ofType;
-
-      if (!itemRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-
-      return (0, _definition.GraphQLList)(getType(itemRef));
-    }
-
-    if (typeRef.kind === _introspection.TypeKind.NON_NULL) {
-      var nullableRef = typeRef.ofType;
-
-      if (!nullableRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-
-      var nullableType = getType(nullableRef);
-      return (0, _definition.GraphQLNonNull)((0, _definition.assertNullableType)(nullableType));
-    }
-
-    return getNamedType(typeRef);
-  }
-
-  function getNamedType(typeRef) {
-    var typeName = typeRef.name;
-
-    if (!typeName) {
-      throw new Error("Unknown type reference: ".concat((0, _inspect.default)(typeRef), "."));
-    }
-
-    var type = typeMap[typeName];
-
-    if (!type) {
-      throw new Error("Invalid or incomplete schema, unknown type: ".concat(typeName, ". Ensure that a full introspection query is used in order to build a client schema."));
-    }
-
-    return type;
-  }
-
-  function getObjectType(typeRef) {
-    return (0, _definition.assertObjectType)(getNamedType(typeRef));
-  }
-
-  function getInterfaceType(typeRef) {
-    return (0, _definition.assertInterfaceType)(getNamedType(typeRef));
-  } // Given a type's introspection result, construct the correct
-  // GraphQLType instance.
-
-
-  function buildType(type) {
-    if (type != null && type.name != null && type.kind != null) {
-      switch (type.kind) {
-        case _introspection.TypeKind.SCALAR:
-          return buildScalarDef(type);
-
-        case _introspection.TypeKind.OBJECT:
-          return buildObjectDef(type);
-
-        case _introspection.TypeKind.INTERFACE:
-          return buildInterfaceDef(type);
-
-        case _introspection.TypeKind.UNION:
-          return buildUnionDef(type);
-
-        case _introspection.TypeKind.ENUM:
-          return buildEnumDef(type);
-
-        case _introspection.TypeKind.INPUT_OBJECT:
-          return buildInputObjectDef(type);
-      }
-    }
-
-    var typeStr = (0, _inspect.default)(type);
-    throw new Error("Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ".concat(typeStr, "."));
-  }
-
-  function buildScalarDef(scalarIntrospection) {
-    return new _definition.GraphQLScalarType({
-      name: scalarIntrospection.name,
-      description: scalarIntrospection.description
-    });
-  }
-
-  function buildImplementationsList(implementingIntrospection) {
-    // TODO: Temporary workaround until GraphQL ecosystem will fully support
-    // 'interfaces' on interface types.
-    if (implementingIntrospection.interfaces === null && implementingIntrospection.kind === _introspection.TypeKind.INTERFACE) {
-      return [];
-    }
-
-    if (!implementingIntrospection.interfaces) {
-      var implementingIntrospectionStr = (0, _inspect.default)(implementingIntrospection);
-      throw new Error("Introspection result missing interfaces: ".concat(implementingIntrospectionStr, "."));
-    }
-
-    return implementingIntrospection.interfaces.map(getInterfaceType);
-  }
-
-  function buildObjectDef(objectIntrospection) {
-    return new _definition.GraphQLObjectType({
-      name: objectIntrospection.name,
-      description: objectIntrospection.description,
-      interfaces: function interfaces() {
-        return buildImplementationsList(objectIntrospection);
-      },
-      fields: function fields() {
-        return buildFieldDefMap(objectIntrospection);
-      }
-    });
-  }
-
-  function buildInterfaceDef(interfaceIntrospection) {
-    return new _definition.GraphQLInterfaceType({
-      name: interfaceIntrospection.name,
-      description: interfaceIntrospection.description,
-      interfaces: function interfaces() {
-        return buildImplementationsList(interfaceIntrospection);
-      },
-      fields: function fields() {
-        return buildFieldDefMap(interfaceIntrospection);
-      }
-    });
-  }
-
-  function buildUnionDef(unionIntrospection) {
-    if (!unionIntrospection.possibleTypes) {
-      var unionIntrospectionStr = (0, _inspect.default)(unionIntrospection);
-      throw new Error("Introspection result missing possibleTypes: ".concat(unionIntrospectionStr, "."));
-    }
-
-    return new _definition.GraphQLUnionType({
-      name: unionIntrospection.name,
-      description: unionIntrospection.description,
-      types: function types() {
-        return unionIntrospection.possibleTypes.map(getObjectType);
-      }
-    });
-  }
-
-  function buildEnumDef(enumIntrospection) {
-    if (!enumIntrospection.enumValues) {
-      var enumIntrospectionStr = (0, _inspect.default)(enumIntrospection);
-      throw new Error("Introspection result missing enumValues: ".concat(enumIntrospectionStr, "."));
-    }
-
-    return new _definition.GraphQLEnumType({
-      name: enumIntrospection.name,
-      description: enumIntrospection.description,
-      values: (0, _keyValMap.default)(enumIntrospection.enumValues, function (valueIntrospection) {
-        return valueIntrospection.name;
-      }, function (valueIntrospection) {
-        return {
-          description: valueIntrospection.description,
-          deprecationReason: valueIntrospection.deprecationReason
-        };
-      })
-    });
-  }
-
-  function buildInputObjectDef(inputObjectIntrospection) {
-    if (!inputObjectIntrospection.inputFields) {
-      var inputObjectIntrospectionStr = (0, _inspect.default)(inputObjectIntrospection);
-      throw new Error("Introspection result missing inputFields: ".concat(inputObjectIntrospectionStr, "."));
-    }
-
-    return new _definition.GraphQLInputObjectType({
-      name: inputObjectIntrospection.name,
-      description: inputObjectIntrospection.description,
-      fields: function fields() {
-        return buildInputValueDefMap(inputObjectIntrospection.inputFields);
-      }
-    });
-  }
-
-  function buildFieldDefMap(typeIntrospection) {
-    if (!typeIntrospection.fields) {
-      throw new Error("Introspection result missing fields: ".concat((0, _inspect.default)(typeIntrospection), "."));
-    }
-
-    return (0, _keyValMap.default)(typeIntrospection.fields, function (fieldIntrospection) {
-      return fieldIntrospection.name;
-    }, buildField);
-  }
-
-  function buildField(fieldIntrospection) {
-    var type = getType(fieldIntrospection.type);
-
-    if (!(0, _definition.isOutputType)(type)) {
-      var typeStr = (0, _inspect.default)(type);
-      throw new Error("Introspection must provide output type for fields, but received: ".concat(typeStr, "."));
-    }
-
-    if (!fieldIntrospection.args) {
-      var fieldIntrospectionStr = (0, _inspect.default)(fieldIntrospection);
-      throw new Error("Introspection result missing field args: ".concat(fieldIntrospectionStr, "."));
-    }
-
-    return {
-      description: fieldIntrospection.description,
-      deprecationReason: fieldIntrospection.deprecationReason,
-      type: type,
-      args: buildInputValueDefMap(fieldIntrospection.args)
-    };
-  }
-
-  function buildInputValueDefMap(inputValueIntrospections) {
-    return (0, _keyValMap.default)(inputValueIntrospections, function (inputValue) {
-      return inputValue.name;
-    }, buildInputValue);
-  }
-
-  function buildInputValue(inputValueIntrospection) {
-    var type = getType(inputValueIntrospection.type);
-
-    if (!(0, _definition.isInputType)(type)) {
-      var typeStr = (0, _inspect.default)(type);
-      throw new Error("Introspection must provide input type for arguments, but received: ".concat(typeStr, "."));
-    }
-
-    var defaultValue = inputValueIntrospection.defaultValue != null ? (0, _valueFromAST.valueFromAST)((0, _parser.parseValue)(inputValueIntrospection.defaultValue), type) : undefined;
-    return {
-      description: inputValueIntrospection.description,
-      type: type,
-      defaultValue: defaultValue
-    };
-  }
-
-  function buildDirective(directiveIntrospection) {
-    if (!directiveIntrospection.args) {
-      var directiveIntrospectionStr = (0, _inspect.default)(directiveIntrospection);
-      throw new Error("Introspection result missing directive args: ".concat(directiveIntrospectionStr, "."));
-    }
-
-    if (!directiveIntrospection.locations) {
-      var _directiveIntrospectionStr = (0, _inspect.default)(directiveIntrospection);
-
-      throw new Error("Introspection result missing directive locations: ".concat(_directiveIntrospectionStr, "."));
-    }
-
-    return new _directives.GraphQLDirective({
-      name: directiveIntrospection.name,
-      description: directiveIntrospection.description,
-      isRepeatable: directiveIntrospection.isRepeatable,
-      locations: directiveIntrospection.locations.slice(),
-      args: buildInputValueDefMap(directiveIntrospection.args)
-    });
-  }
-}
diff --git a/node_modules/graphql/utilities/buildClientSchema.js.flow b/node_modules/graphql/utilities/buildClientSchema.js.flow
deleted file mode 100644
index 788d602..0000000
--- a/node_modules/graphql/utilities/buildClientSchema.js.flow
+++ /dev/null
@@ -1,394 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import devAssert from '../jsutils/devAssert';
-import keyValMap from '../jsutils/keyValMap';
-import isObjectLike from '../jsutils/isObjectLike';
-
-import { parseValue } from '../language/parser';
-
-import { GraphQLDirective } from '../type/directives';
-import { specifiedScalarTypes } from '../type/scalars';
-import { introspectionTypes, TypeKind } from '../type/introspection';
-import {
-  type GraphQLSchemaValidationOptions,
-  GraphQLSchema,
-} from '../type/schema';
-import {
-  type GraphQLType,
-  type GraphQLNamedType,
-  isInputType,
-  isOutputType,
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  GraphQLList,
-  GraphQLNonNull,
-  assertNullableType,
-  assertObjectType,
-  assertInterfaceType,
-} from '../type/definition';
-
-import { valueFromAST } from './valueFromAST';
-import {
-  type IntrospectionQuery,
-  type IntrospectionType,
-  type IntrospectionScalarType,
-  type IntrospectionObjectType,
-  type IntrospectionInterfaceType,
-  type IntrospectionUnionType,
-  type IntrospectionEnumType,
-  type IntrospectionInputObjectType,
-  type IntrospectionTypeRef,
-  type IntrospectionNamedTypeRef,
-} from './getIntrospectionQuery';
-
-/**
- * Build a GraphQLSchema for use by client tools.
- *
- * Given the result of a client running the introspection query, creates and
- * returns a GraphQLSchema instance which can be then used with all graphql-js
- * tools, but cannot be used to execute a query, as introspection does not
- * represent the "resolver", "parse" or "serialize" functions or any other
- * server-internal mechanisms.
- *
- * This function expects a complete introspection result. Don't forget to check
- * the "errors" field of a server response before calling this function.
- */
-export function buildClientSchema(
-  introspection: IntrospectionQuery,
-  options?: GraphQLSchemaValidationOptions,
-): GraphQLSchema {
-  devAssert(
-    isObjectLike(introspection) && isObjectLike(introspection.__schema),
-    `Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${inspect(
-      introspection,
-    )}.`,
-  );
-
-  // Get the schema from the introspection result.
-  const schemaIntrospection = introspection.__schema;
-
-  // Iterate through all types, getting the type definition for each.
-  const typeMap = keyValMap(
-    schemaIntrospection.types,
-    typeIntrospection => typeIntrospection.name,
-    typeIntrospection => buildType(typeIntrospection),
-  );
-
-  // Include standard types only if they are used.
-  for (const stdType of [...specifiedScalarTypes, ...introspectionTypes]) {
-    if (typeMap[stdType.name]) {
-      typeMap[stdType.name] = stdType;
-    }
-  }
-
-  // Get the root Query, Mutation, and Subscription types.
-  const queryType = schemaIntrospection.queryType
-    ? getObjectType(schemaIntrospection.queryType)
-    : null;
-
-  const mutationType = schemaIntrospection.mutationType
-    ? getObjectType(schemaIntrospection.mutationType)
-    : null;
-
-  const subscriptionType = schemaIntrospection.subscriptionType
-    ? getObjectType(schemaIntrospection.subscriptionType)
-    : null;
-
-  // Get the directives supported by Introspection, assuming empty-set if
-  // directives were not queried for.
-  const directives = schemaIntrospection.directives
-    ? schemaIntrospection.directives.map(buildDirective)
-    : [];
-
-  // Then produce and return a Schema with these types.
-  return new GraphQLSchema({
-    description: schemaIntrospection.description,
-    query: queryType,
-    mutation: mutationType,
-    subscription: subscriptionType,
-    types: objectValues(typeMap),
-    directives,
-    assumeValid: options?.assumeValid,
-  });
-
-  // Given a type reference in introspection, return the GraphQLType instance.
-  // preferring cached instances before building new instances.
-  function getType(typeRef: IntrospectionTypeRef): GraphQLType {
-    if (typeRef.kind === TypeKind.LIST) {
-      const itemRef = typeRef.ofType;
-      if (!itemRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-      return GraphQLList(getType(itemRef));
-    }
-    if (typeRef.kind === TypeKind.NON_NULL) {
-      const nullableRef = typeRef.ofType;
-      if (!nullableRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-      const nullableType = getType(nullableRef);
-      return GraphQLNonNull(assertNullableType(nullableType));
-    }
-    return getNamedType(typeRef);
-  }
-
-  function getNamedType(
-    typeRef: IntrospectionNamedTypeRef<>,
-  ): GraphQLNamedType {
-    const typeName = typeRef.name;
-    if (!typeName) {
-      throw new Error(`Unknown type reference: ${inspect(typeRef)}.`);
-    }
-
-    const type = typeMap[typeName];
-    if (!type) {
-      throw new Error(
-        `Invalid or incomplete schema, unknown type: ${typeName}. Ensure that a full introspection query is used in order to build a client schema.`,
-      );
-    }
-
-    return type;
-  }
-
-  function getObjectType(
-    typeRef: IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  ): GraphQLObjectType {
-    return assertObjectType(getNamedType(typeRef));
-  }
-
-  function getInterfaceType(
-    typeRef: IntrospectionNamedTypeRef<IntrospectionInterfaceType>,
-  ): GraphQLInterfaceType {
-    return assertInterfaceType(getNamedType(typeRef));
-  }
-
-  // Given a type's introspection result, construct the correct
-  // GraphQLType instance.
-  function buildType(type: IntrospectionType): GraphQLNamedType {
-    if (type != null && type.name != null && type.kind != null) {
-      switch (type.kind) {
-        case TypeKind.SCALAR:
-          return buildScalarDef(type);
-        case TypeKind.OBJECT:
-          return buildObjectDef(type);
-        case TypeKind.INTERFACE:
-          return buildInterfaceDef(type);
-        case TypeKind.UNION:
-          return buildUnionDef(type);
-        case TypeKind.ENUM:
-          return buildEnumDef(type);
-        case TypeKind.INPUT_OBJECT:
-          return buildInputObjectDef(type);
-      }
-    }
-    const typeStr = inspect(type);
-    throw new Error(
-      `Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${typeStr}.`,
-    );
-  }
-
-  function buildScalarDef(
-    scalarIntrospection: IntrospectionScalarType,
-  ): GraphQLScalarType {
-    return new GraphQLScalarType({
-      name: scalarIntrospection.name,
-      description: scalarIntrospection.description,
-    });
-  }
-
-  function buildImplementationsList(
-    implementingIntrospection:
-      | IntrospectionObjectType
-      | IntrospectionInterfaceType,
-  ) {
-    // TODO: Temporary workaround until GraphQL ecosystem will fully support
-    // 'interfaces' on interface types.
-    if (
-      implementingIntrospection.interfaces === null &&
-      implementingIntrospection.kind === TypeKind.INTERFACE
-    ) {
-      return [];
-    }
-
-    if (!implementingIntrospection.interfaces) {
-      const implementingIntrospectionStr = inspect(implementingIntrospection);
-      throw new Error(
-        `Introspection result missing interfaces: ${implementingIntrospectionStr}.`,
-      );
-    }
-
-    return implementingIntrospection.interfaces.map(getInterfaceType);
-  }
-
-  function buildObjectDef(
-    objectIntrospection: IntrospectionObjectType,
-  ): GraphQLObjectType {
-    return new GraphQLObjectType({
-      name: objectIntrospection.name,
-      description: objectIntrospection.description,
-      interfaces: () => buildImplementationsList(objectIntrospection),
-      fields: () => buildFieldDefMap(objectIntrospection),
-    });
-  }
-
-  function buildInterfaceDef(
-    interfaceIntrospection: IntrospectionInterfaceType,
-  ): GraphQLInterfaceType {
-    return new GraphQLInterfaceType({
-      name: interfaceIntrospection.name,
-      description: interfaceIntrospection.description,
-      interfaces: () => buildImplementationsList(interfaceIntrospection),
-      fields: () => buildFieldDefMap(interfaceIntrospection),
-    });
-  }
-
-  function buildUnionDef(
-    unionIntrospection: IntrospectionUnionType,
-  ): GraphQLUnionType {
-    if (!unionIntrospection.possibleTypes) {
-      const unionIntrospectionStr = inspect(unionIntrospection);
-      throw new Error(
-        `Introspection result missing possibleTypes: ${unionIntrospectionStr}.`,
-      );
-    }
-    return new GraphQLUnionType({
-      name: unionIntrospection.name,
-      description: unionIntrospection.description,
-      types: () => unionIntrospection.possibleTypes.map(getObjectType),
-    });
-  }
-
-  function buildEnumDef(
-    enumIntrospection: IntrospectionEnumType,
-  ): GraphQLEnumType {
-    if (!enumIntrospection.enumValues) {
-      const enumIntrospectionStr = inspect(enumIntrospection);
-      throw new Error(
-        `Introspection result missing enumValues: ${enumIntrospectionStr}.`,
-      );
-    }
-    return new GraphQLEnumType({
-      name: enumIntrospection.name,
-      description: enumIntrospection.description,
-      values: keyValMap(
-        enumIntrospection.enumValues,
-        valueIntrospection => valueIntrospection.name,
-        valueIntrospection => ({
-          description: valueIntrospection.description,
-          deprecationReason: valueIntrospection.deprecationReason,
-        }),
-      ),
-    });
-  }
-
-  function buildInputObjectDef(
-    inputObjectIntrospection: IntrospectionInputObjectType,
-  ): GraphQLInputObjectType {
-    if (!inputObjectIntrospection.inputFields) {
-      const inputObjectIntrospectionStr = inspect(inputObjectIntrospection);
-      throw new Error(
-        `Introspection result missing inputFields: ${inputObjectIntrospectionStr}.`,
-      );
-    }
-    return new GraphQLInputObjectType({
-      name: inputObjectIntrospection.name,
-      description: inputObjectIntrospection.description,
-      fields: () => buildInputValueDefMap(inputObjectIntrospection.inputFields),
-    });
-  }
-
-  function buildFieldDefMap(typeIntrospection) {
-    if (!typeIntrospection.fields) {
-      throw new Error(
-        `Introspection result missing fields: ${inspect(typeIntrospection)}.`,
-      );
-    }
-
-    return keyValMap(
-      typeIntrospection.fields,
-      fieldIntrospection => fieldIntrospection.name,
-      buildField,
-    );
-  }
-
-  function buildField(fieldIntrospection) {
-    const type = getType(fieldIntrospection.type);
-    if (!isOutputType(type)) {
-      const typeStr = inspect(type);
-      throw new Error(
-        `Introspection must provide output type for fields, but received: ${typeStr}.`,
-      );
-    }
-
-    if (!fieldIntrospection.args) {
-      const fieldIntrospectionStr = inspect(fieldIntrospection);
-      throw new Error(
-        `Introspection result missing field args: ${fieldIntrospectionStr}.`,
-      );
-    }
-
-    return {
-      description: fieldIntrospection.description,
-      deprecationReason: fieldIntrospection.deprecationReason,
-      type,
-      args: buildInputValueDefMap(fieldIntrospection.args),
-    };
-  }
-
-  function buildInputValueDefMap(inputValueIntrospections) {
-    return keyValMap(
-      inputValueIntrospections,
-      inputValue => inputValue.name,
-      buildInputValue,
-    );
-  }
-
-  function buildInputValue(inputValueIntrospection) {
-    const type = getType(inputValueIntrospection.type);
-    if (!isInputType(type)) {
-      const typeStr = inspect(type);
-      throw new Error(
-        `Introspection must provide input type for arguments, but received: ${typeStr}.`,
-      );
-    }
-
-    const defaultValue =
-      inputValueIntrospection.defaultValue != null
-        ? valueFromAST(parseValue(inputValueIntrospection.defaultValue), type)
-        : undefined;
-    return {
-      description: inputValueIntrospection.description,
-      type,
-      defaultValue,
-    };
-  }
-
-  function buildDirective(directiveIntrospection) {
-    if (!directiveIntrospection.args) {
-      const directiveIntrospectionStr = inspect(directiveIntrospection);
-      throw new Error(
-        `Introspection result missing directive args: ${directiveIntrospectionStr}.`,
-      );
-    }
-    if (!directiveIntrospection.locations) {
-      const directiveIntrospectionStr = inspect(directiveIntrospection);
-      throw new Error(
-        `Introspection result missing directive locations: ${directiveIntrospectionStr}.`,
-      );
-    }
-    return new GraphQLDirective({
-      name: directiveIntrospection.name,
-      description: directiveIntrospection.description,
-      isRepeatable: directiveIntrospection.isRepeatable,
-      locations: directiveIntrospection.locations.slice(),
-      args: buildInputValueDefMap(directiveIntrospection.args),
-    });
-  }
-}
diff --git a/node_modules/graphql/utilities/buildClientSchema.mjs b/node_modules/graphql/utilities/buildClientSchema.mjs
deleted file mode 100644
index 01978bd..0000000
--- a/node_modules/graphql/utilities/buildClientSchema.mjs
+++ /dev/null
@@ -1,313 +0,0 @@
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import keyValMap from "../jsutils/keyValMap.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import { parseValue } from "../language/parser.mjs";
-import { GraphQLDirective } from "../type/directives.mjs";
-import { specifiedScalarTypes } from "../type/scalars.mjs";
-import { introspectionTypes, TypeKind } from "../type/introspection.mjs";
-import { GraphQLSchema } from "../type/schema.mjs";
-import { isInputType, isOutputType, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, assertNullableType, assertObjectType, assertInterfaceType } from "../type/definition.mjs";
-import { valueFromAST } from "./valueFromAST.mjs";
-
-/**
- * Build a GraphQLSchema for use by client tools.
- *
- * Given the result of a client running the introspection query, creates and
- * returns a GraphQLSchema instance which can be then used with all graphql-js
- * tools, but cannot be used to execute a query, as introspection does not
- * represent the "resolver", "parse" or "serialize" functions or any other
- * server-internal mechanisms.
- *
- * This function expects a complete introspection result. Don't forget to check
- * the "errors" field of a server response before calling this function.
- */
-export function buildClientSchema(introspection, options) {
-  isObjectLike(introspection) && isObjectLike(introspection.__schema) || devAssert(0, "Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: ".concat(inspect(introspection), ".")); // Get the schema from the introspection result.
-
-  var schemaIntrospection = introspection.__schema; // Iterate through all types, getting the type definition for each.
-
-  var typeMap = keyValMap(schemaIntrospection.types, function (typeIntrospection) {
-    return typeIntrospection.name;
-  }, function (typeIntrospection) {
-    return buildType(typeIntrospection);
-  }); // Include standard types only if they are used.
-
-  for (var _i2 = 0, _ref2 = [].concat(specifiedScalarTypes, introspectionTypes); _i2 < _ref2.length; _i2++) {
-    var stdType = _ref2[_i2];
-
-    if (typeMap[stdType.name]) {
-      typeMap[stdType.name] = stdType;
-    }
-  } // Get the root Query, Mutation, and Subscription types.
-
-
-  var queryType = schemaIntrospection.queryType ? getObjectType(schemaIntrospection.queryType) : null;
-  var mutationType = schemaIntrospection.mutationType ? getObjectType(schemaIntrospection.mutationType) : null;
-  var subscriptionType = schemaIntrospection.subscriptionType ? getObjectType(schemaIntrospection.subscriptionType) : null; // Get the directives supported by Introspection, assuming empty-set if
-  // directives were not queried for.
-
-  var directives = schemaIntrospection.directives ? schemaIntrospection.directives.map(buildDirective) : []; // Then produce and return a Schema with these types.
-
-  return new GraphQLSchema({
-    description: schemaIntrospection.description,
-    query: queryType,
-    mutation: mutationType,
-    subscription: subscriptionType,
-    types: objectValues(typeMap),
-    directives: directives,
-    assumeValid: options === null || options === void 0 ? void 0 : options.assumeValid
-  }); // Given a type reference in introspection, return the GraphQLType instance.
-  // preferring cached instances before building new instances.
-
-  function getType(typeRef) {
-    if (typeRef.kind === TypeKind.LIST) {
-      var itemRef = typeRef.ofType;
-
-      if (!itemRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-
-      return GraphQLList(getType(itemRef));
-    }
-
-    if (typeRef.kind === TypeKind.NON_NULL) {
-      var nullableRef = typeRef.ofType;
-
-      if (!nullableRef) {
-        throw new Error('Decorated type deeper than introspection query.');
-      }
-
-      var nullableType = getType(nullableRef);
-      return GraphQLNonNull(assertNullableType(nullableType));
-    }
-
-    return getNamedType(typeRef);
-  }
-
-  function getNamedType(typeRef) {
-    var typeName = typeRef.name;
-
-    if (!typeName) {
-      throw new Error("Unknown type reference: ".concat(inspect(typeRef), "."));
-    }
-
-    var type = typeMap[typeName];
-
-    if (!type) {
-      throw new Error("Invalid or incomplete schema, unknown type: ".concat(typeName, ". Ensure that a full introspection query is used in order to build a client schema."));
-    }
-
-    return type;
-  }
-
-  function getObjectType(typeRef) {
-    return assertObjectType(getNamedType(typeRef));
-  }
-
-  function getInterfaceType(typeRef) {
-    return assertInterfaceType(getNamedType(typeRef));
-  } // Given a type's introspection result, construct the correct
-  // GraphQLType instance.
-
-
-  function buildType(type) {
-    if (type != null && type.name != null && type.kind != null) {
-      switch (type.kind) {
-        case TypeKind.SCALAR:
-          return buildScalarDef(type);
-
-        case TypeKind.OBJECT:
-          return buildObjectDef(type);
-
-        case TypeKind.INTERFACE:
-          return buildInterfaceDef(type);
-
-        case TypeKind.UNION:
-          return buildUnionDef(type);
-
-        case TypeKind.ENUM:
-          return buildEnumDef(type);
-
-        case TypeKind.INPUT_OBJECT:
-          return buildInputObjectDef(type);
-      }
-    }
-
-    var typeStr = inspect(type);
-    throw new Error("Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ".concat(typeStr, "."));
-  }
-
-  function buildScalarDef(scalarIntrospection) {
-    return new GraphQLScalarType({
-      name: scalarIntrospection.name,
-      description: scalarIntrospection.description
-    });
-  }
-
-  function buildImplementationsList(implementingIntrospection) {
-    // TODO: Temporary workaround until GraphQL ecosystem will fully support
-    // 'interfaces' on interface types.
-    if (implementingIntrospection.interfaces === null && implementingIntrospection.kind === TypeKind.INTERFACE) {
-      return [];
-    }
-
-    if (!implementingIntrospection.interfaces) {
-      var implementingIntrospectionStr = inspect(implementingIntrospection);
-      throw new Error("Introspection result missing interfaces: ".concat(implementingIntrospectionStr, "."));
-    }
-
-    return implementingIntrospection.interfaces.map(getInterfaceType);
-  }
-
-  function buildObjectDef(objectIntrospection) {
-    return new GraphQLObjectType({
-      name: objectIntrospection.name,
-      description: objectIntrospection.description,
-      interfaces: function interfaces() {
-        return buildImplementationsList(objectIntrospection);
-      },
-      fields: function fields() {
-        return buildFieldDefMap(objectIntrospection);
-      }
-    });
-  }
-
-  function buildInterfaceDef(interfaceIntrospection) {
-    return new GraphQLInterfaceType({
-      name: interfaceIntrospection.name,
-      description: interfaceIntrospection.description,
-      interfaces: function interfaces() {
-        return buildImplementationsList(interfaceIntrospection);
-      },
-      fields: function fields() {
-        return buildFieldDefMap(interfaceIntrospection);
-      }
-    });
-  }
-
-  function buildUnionDef(unionIntrospection) {
-    if (!unionIntrospection.possibleTypes) {
-      var unionIntrospectionStr = inspect(unionIntrospection);
-      throw new Error("Introspection result missing possibleTypes: ".concat(unionIntrospectionStr, "."));
-    }
-
-    return new GraphQLUnionType({
-      name: unionIntrospection.name,
-      description: unionIntrospection.description,
-      types: function types() {
-        return unionIntrospection.possibleTypes.map(getObjectType);
-      }
-    });
-  }
-
-  function buildEnumDef(enumIntrospection) {
-    if (!enumIntrospection.enumValues) {
-      var enumIntrospectionStr = inspect(enumIntrospection);
-      throw new Error("Introspection result missing enumValues: ".concat(enumIntrospectionStr, "."));
-    }
-
-    return new GraphQLEnumType({
-      name: enumIntrospection.name,
-      description: enumIntrospection.description,
-      values: keyValMap(enumIntrospection.enumValues, function (valueIntrospection) {
-        return valueIntrospection.name;
-      }, function (valueIntrospection) {
-        return {
-          description: valueIntrospection.description,
-          deprecationReason: valueIntrospection.deprecationReason
-        };
-      })
-    });
-  }
-
-  function buildInputObjectDef(inputObjectIntrospection) {
-    if (!inputObjectIntrospection.inputFields) {
-      var inputObjectIntrospectionStr = inspect(inputObjectIntrospection);
-      throw new Error("Introspection result missing inputFields: ".concat(inputObjectIntrospectionStr, "."));
-    }
-
-    return new GraphQLInputObjectType({
-      name: inputObjectIntrospection.name,
-      description: inputObjectIntrospection.description,
-      fields: function fields() {
-        return buildInputValueDefMap(inputObjectIntrospection.inputFields);
-      }
-    });
-  }
-
-  function buildFieldDefMap(typeIntrospection) {
-    if (!typeIntrospection.fields) {
-      throw new Error("Introspection result missing fields: ".concat(inspect(typeIntrospection), "."));
-    }
-
-    return keyValMap(typeIntrospection.fields, function (fieldIntrospection) {
-      return fieldIntrospection.name;
-    }, buildField);
-  }
-
-  function buildField(fieldIntrospection) {
-    var type = getType(fieldIntrospection.type);
-
-    if (!isOutputType(type)) {
-      var typeStr = inspect(type);
-      throw new Error("Introspection must provide output type for fields, but received: ".concat(typeStr, "."));
-    }
-
-    if (!fieldIntrospection.args) {
-      var fieldIntrospectionStr = inspect(fieldIntrospection);
-      throw new Error("Introspection result missing field args: ".concat(fieldIntrospectionStr, "."));
-    }
-
-    return {
-      description: fieldIntrospection.description,
-      deprecationReason: fieldIntrospection.deprecationReason,
-      type: type,
-      args: buildInputValueDefMap(fieldIntrospection.args)
-    };
-  }
-
-  function buildInputValueDefMap(inputValueIntrospections) {
-    return keyValMap(inputValueIntrospections, function (inputValue) {
-      return inputValue.name;
-    }, buildInputValue);
-  }
-
-  function buildInputValue(inputValueIntrospection) {
-    var type = getType(inputValueIntrospection.type);
-
-    if (!isInputType(type)) {
-      var typeStr = inspect(type);
-      throw new Error("Introspection must provide input type for arguments, but received: ".concat(typeStr, "."));
-    }
-
-    var defaultValue = inputValueIntrospection.defaultValue != null ? valueFromAST(parseValue(inputValueIntrospection.defaultValue), type) : undefined;
-    return {
-      description: inputValueIntrospection.description,
-      type: type,
-      defaultValue: defaultValue
-    };
-  }
-
-  function buildDirective(directiveIntrospection) {
-    if (!directiveIntrospection.args) {
-      var directiveIntrospectionStr = inspect(directiveIntrospection);
-      throw new Error("Introspection result missing directive args: ".concat(directiveIntrospectionStr, "."));
-    }
-
-    if (!directiveIntrospection.locations) {
-      var _directiveIntrospectionStr = inspect(directiveIntrospection);
-
-      throw new Error("Introspection result missing directive locations: ".concat(_directiveIntrospectionStr, "."));
-    }
-
-    return new GraphQLDirective({
-      name: directiveIntrospection.name,
-      description: directiveIntrospection.description,
-      isRepeatable: directiveIntrospection.isRepeatable,
-      locations: directiveIntrospection.locations.slice(),
-      args: buildInputValueDefMap(directiveIntrospection.args)
-    });
-  }
-}
diff --git a/node_modules/graphql/utilities/coerceInputValue.d.ts b/node_modules/graphql/utilities/coerceInputValue.d.ts
deleted file mode 100644
index 45c70a5..0000000
--- a/node_modules/graphql/utilities/coerceInputValue.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { GraphQLInputType } from '../type/definition';
-import { GraphQLError } from '../error/GraphQLError';
-
-type OnErrorCB = (
-  path: ReadonlyArray<string | number>,
-  invalidValue: any,
-  error: GraphQLError,
-) => void;
-
-/**
- * Coerces a JavaScript value given a GraphQL Input Type.
- */
-export function coerceInputValue(
-  inputValue: any,
-  type: GraphQLInputType,
-  onError?: OnErrorCB,
-): any;
diff --git a/node_modules/graphql/utilities/coerceInputValue.js b/node_modules/graphql/utilities/coerceInputValue.js
deleted file mode 100644
index e399dab..0000000
--- a/node_modules/graphql/utilities/coerceInputValue.js
+++ /dev/null
@@ -1,150 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.coerceInputValue = coerceInputValue;
-
-var _arrayFrom = _interopRequireDefault(require("../polyfills/arrayFrom"));
-
-var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean"));
-
-var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
-
-var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
-
-var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList"));
-
-var _printPathArray = _interopRequireDefault(require("../jsutils/printPathArray"));
-
-var _Path = require("../jsutils/Path");
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _definition = require("../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Coerces a JavaScript value given a GraphQL Input Type.
- */
-function coerceInputValue(inputValue, type) {
-  var onError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOnError;
-  return coerceInputValueImpl(inputValue, type, onError);
-}
-
-function defaultOnError(path, invalidValue, error) {
-  var errorPrefix = 'Invalid value ' + (0, _inspect.default)(invalidValue);
-
-  if (path.length > 0) {
-    errorPrefix += " at \"value".concat((0, _printPathArray.default)(path), "\"");
-  }
-
-  error.message = errorPrefix + ': ' + error.message;
-  throw error;
-}
-
-function coerceInputValueImpl(inputValue, type, onError, path) {
-  if ((0, _definition.isNonNullType)(type)) {
-    if (inputValue != null) {
-      return coerceInputValueImpl(inputValue, type.ofType, onError, path);
-    }
-
-    onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Expected non-nullable type \"".concat((0, _inspect.default)(type), "\" not to be null.")));
-    return;
-  }
-
-  if (inputValue == null) {
-    // Explicitly return the value null.
-    return null;
-  }
-
-  if ((0, _definition.isListType)(type)) {
-    var itemType = type.ofType;
-
-    if ((0, _isCollection.default)(inputValue)) {
-      return (0, _arrayFrom.default)(inputValue, function (itemValue, index) {
-        var itemPath = (0, _Path.addPath)(path, index);
-        return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
-      });
-    } // Lists accept a non-list value as a list of one.
-
-
-    return [coerceInputValueImpl(inputValue, itemType, onError, path)];
-  }
-
-  if ((0, _definition.isInputObjectType)(type)) {
-    if (!(0, _isObjectLike.default)(inputValue)) {
-      onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Expected type \"".concat(type.name, "\" to be an object.")));
-      return;
-    }
-
-    var coercedValue = {};
-    var fieldDefs = type.getFields();
-
-    for (var _i2 = 0, _objectValues2 = (0, _objectValues3.default)(fieldDefs); _i2 < _objectValues2.length; _i2++) {
-      var field = _objectValues2[_i2];
-      var fieldValue = inputValue[field.name];
-
-      if (fieldValue === undefined) {
-        if (field.defaultValue !== undefined) {
-          coercedValue[field.name] = field.defaultValue;
-        } else if ((0, _definition.isNonNullType)(field.type)) {
-          var typeStr = (0, _inspect.default)(field.type);
-          onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Field \"".concat(field.name, "\" of required type \"").concat(typeStr, "\" was not provided.")));
-        }
-
-        continue;
-      }
-
-      coercedValue[field.name] = coerceInputValueImpl(fieldValue, field.type, onError, (0, _Path.addPath)(path, field.name));
-    } // Ensure every provided field is defined.
-
-
-    for (var _i4 = 0, _Object$keys2 = Object.keys(inputValue); _i4 < _Object$keys2.length; _i4++) {
-      var fieldName = _Object$keys2[_i4];
-
-      if (!fieldDefs[fieldName]) {
-        var suggestions = (0, _suggestionList.default)(fieldName, Object.keys(type.getFields()));
-        onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Field \"".concat(fieldName, "\" is not defined by type \"").concat(type.name, "\".") + (0, _didYouMean.default)(suggestions)));
-      }
-    }
-
-    return coercedValue;
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isLeafType)(type)) {
-    var parseResult; // Scalars and Enums determine if a input value is valid via parseValue(),
-    // which can throw to indicate failure. If it throws, maintain a reference
-    // to the original error.
-
-    try {
-      parseResult = type.parseValue(inputValue);
-    } catch (error) {
-      if (error instanceof _GraphQLError.GraphQLError) {
-        onError((0, _Path.pathToArray)(path), inputValue, error);
-      } else {
-        onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Expected type \"".concat(type.name, "\". ") + error.message, undefined, undefined, undefined, undefined, error));
-      }
-
-      return;
-    }
-
-    if (parseResult === undefined) {
-      onError((0, _Path.pathToArray)(path), inputValue, new _GraphQLError.GraphQLError("Expected type \"".concat(type.name, "\".")));
-    }
-
-    return parseResult;
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected input type: ' + (0, _inspect.default)(type));
-}
diff --git a/node_modules/graphql/utilities/coerceInputValue.js.flow b/node_modules/graphql/utilities/coerceInputValue.js.flow
deleted file mode 100644
index b116d51..0000000
--- a/node_modules/graphql/utilities/coerceInputValue.js.flow
+++ /dev/null
@@ -1,190 +0,0 @@
-// @flow strict
-
-import arrayFrom from '../polyfills/arrayFrom';
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-import didYouMean from '../jsutils/didYouMean';
-import isObjectLike from '../jsutils/isObjectLike';
-import isCollection from '../jsutils/isCollection';
-import suggestionList from '../jsutils/suggestionList';
-import printPathArray from '../jsutils/printPathArray';
-import { type Path, addPath, pathToArray } from '../jsutils/Path';
-
-import { GraphQLError } from '../error/GraphQLError';
-import {
-  type GraphQLInputType,
-  isLeafType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-} from '../type/definition';
-
-type OnErrorCB = (
-  path: $ReadOnlyArray<string | number>,
-  invalidValue: mixed,
-  error: GraphQLError,
-) => void;
-
-/**
- * Coerces a JavaScript value given a GraphQL Input Type.
- */
-export function coerceInputValue(
-  inputValue: mixed,
-  type: GraphQLInputType,
-  onError?: OnErrorCB = defaultOnError,
-): mixed {
-  return coerceInputValueImpl(inputValue, type, onError);
-}
-
-function defaultOnError(
-  path: $ReadOnlyArray<string | number>,
-  invalidValue: mixed,
-  error: GraphQLError,
-) {
-  let errorPrefix = 'Invalid value ' + inspect(invalidValue);
-  if (path.length > 0) {
-    errorPrefix += ` at "value${printPathArray(path)}"`;
-  }
-  error.message = errorPrefix + ': ' + error.message;
-  throw error;
-}
-
-function coerceInputValueImpl(
-  inputValue: mixed,
-  type: GraphQLInputType,
-  onError: OnErrorCB,
-  path: Path | void,
-): mixed {
-  if (isNonNullType(type)) {
-    if (inputValue != null) {
-      return coerceInputValueImpl(inputValue, type.ofType, onError, path);
-    }
-    onError(
-      pathToArray(path),
-      inputValue,
-      new GraphQLError(
-        `Expected non-nullable type "${inspect(type)}" not to be null.`,
-      ),
-    );
-    return;
-  }
-
-  if (inputValue == null) {
-    // Explicitly return the value null.
-    return null;
-  }
-
-  if (isListType(type)) {
-    const itemType = type.ofType;
-    if (isCollection(inputValue)) {
-      return arrayFrom(inputValue, (itemValue, index) => {
-        const itemPath = addPath(path, index);
-        return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
-      });
-    }
-    // Lists accept a non-list value as a list of one.
-    return [coerceInputValueImpl(inputValue, itemType, onError, path)];
-  }
-
-  if (isInputObjectType(type)) {
-    if (!isObjectLike(inputValue)) {
-      onError(
-        pathToArray(path),
-        inputValue,
-        new GraphQLError(`Expected type "${type.name}" to be an object.`),
-      );
-      return;
-    }
-
-    const coercedValue = {};
-    const fieldDefs = type.getFields();
-
-    for (const field of objectValues(fieldDefs)) {
-      const fieldValue = inputValue[field.name];
-
-      if (fieldValue === undefined) {
-        if (field.defaultValue !== undefined) {
-          coercedValue[field.name] = field.defaultValue;
-        } else if (isNonNullType(field.type)) {
-          const typeStr = inspect(field.type);
-          onError(
-            pathToArray(path),
-            inputValue,
-            new GraphQLError(
-              `Field "${field.name}" of required type "${typeStr}" was not provided.`,
-            ),
-          );
-        }
-        continue;
-      }
-
-      coercedValue[field.name] = coerceInputValueImpl(
-        fieldValue,
-        field.type,
-        onError,
-        addPath(path, field.name),
-      );
-    }
-
-    // Ensure every provided field is defined.
-    for (const fieldName of Object.keys(inputValue)) {
-      if (!fieldDefs[fieldName]) {
-        const suggestions = suggestionList(
-          fieldName,
-          Object.keys(type.getFields()),
-        );
-        onError(
-          pathToArray(path),
-          inputValue,
-          new GraphQLError(
-            `Field "${fieldName}" is not defined by type "${type.name}".` +
-              didYouMean(suggestions),
-          ),
-        );
-      }
-    }
-    return coercedValue;
-  }
-
-  if (isLeafType(type)) {
-    let parseResult;
-
-    // Scalars and Enums determine if a input value is valid via parseValue(),
-    // which can throw to indicate failure. If it throws, maintain a reference
-    // to the original error.
-    try {
-      parseResult = type.parseValue(inputValue);
-    } catch (error) {
-      if (error instanceof GraphQLError) {
-        onError(pathToArray(path), inputValue, error);
-      } else {
-        onError(
-          pathToArray(path),
-          inputValue,
-          new GraphQLError(
-            `Expected type "${type.name}". ` + error.message,
-            undefined,
-            undefined,
-            undefined,
-            undefined,
-            error,
-          ),
-        );
-      }
-      return;
-    }
-    if (parseResult === undefined) {
-      onError(
-        pathToArray(path),
-        inputValue,
-        new GraphQLError(`Expected type "${type.name}".`),
-      );
-    }
-    return parseResult;
-  }
-
-  // Not reachable. All possible input types have been considered.
-  invariant(false, 'Unexpected input type: ' + inspect((type: empty)));
-}
diff --git a/node_modules/graphql/utilities/coerceInputValue.mjs b/node_modules/graphql/utilities/coerceInputValue.mjs
deleted file mode 100644
index 7ca4cd7..0000000
--- a/node_modules/graphql/utilities/coerceInputValue.mjs
+++ /dev/null
@@ -1,130 +0,0 @@
-import arrayFrom from "../polyfills/arrayFrom.mjs";
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import didYouMean from "../jsutils/didYouMean.mjs";
-import isObjectLike from "../jsutils/isObjectLike.mjs";
-import isCollection from "../jsutils/isCollection.mjs";
-import suggestionList from "../jsutils/suggestionList.mjs";
-import printPathArray from "../jsutils/printPathArray.mjs";
-import { addPath, pathToArray } from "../jsutils/Path.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { isLeafType, isInputObjectType, isListType, isNonNullType } from "../type/definition.mjs";
-
-/**
- * Coerces a JavaScript value given a GraphQL Input Type.
- */
-export function coerceInputValue(inputValue, type) {
-  var onError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultOnError;
-  return coerceInputValueImpl(inputValue, type, onError);
-}
-
-function defaultOnError(path, invalidValue, error) {
-  var errorPrefix = 'Invalid value ' + inspect(invalidValue);
-
-  if (path.length > 0) {
-    errorPrefix += " at \"value".concat(printPathArray(path), "\"");
-  }
-
-  error.message = errorPrefix + ': ' + error.message;
-  throw error;
-}
-
-function coerceInputValueImpl(inputValue, type, onError, path) {
-  if (isNonNullType(type)) {
-    if (inputValue != null) {
-      return coerceInputValueImpl(inputValue, type.ofType, onError, path);
-    }
-
-    onError(pathToArray(path), inputValue, new GraphQLError("Expected non-nullable type \"".concat(inspect(type), "\" not to be null.")));
-    return;
-  }
-
-  if (inputValue == null) {
-    // Explicitly return the value null.
-    return null;
-  }
-
-  if (isListType(type)) {
-    var itemType = type.ofType;
-
-    if (isCollection(inputValue)) {
-      return arrayFrom(inputValue, function (itemValue, index) {
-        var itemPath = addPath(path, index);
-        return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
-      });
-    } // Lists accept a non-list value as a list of one.
-
-
-    return [coerceInputValueImpl(inputValue, itemType, onError, path)];
-  }
-
-  if (isInputObjectType(type)) {
-    if (!isObjectLike(inputValue)) {
-      onError(pathToArray(path), inputValue, new GraphQLError("Expected type \"".concat(type.name, "\" to be an object.")));
-      return;
-    }
-
-    var coercedValue = {};
-    var fieldDefs = type.getFields();
-
-    for (var _i2 = 0, _objectValues2 = objectValues(fieldDefs); _i2 < _objectValues2.length; _i2++) {
-      var field = _objectValues2[_i2];
-      var fieldValue = inputValue[field.name];
-
-      if (fieldValue === undefined) {
-        if (field.defaultValue !== undefined) {
-          coercedValue[field.name] = field.defaultValue;
-        } else if (isNonNullType(field.type)) {
-          var typeStr = inspect(field.type);
-          onError(pathToArray(path), inputValue, new GraphQLError("Field \"".concat(field.name, "\" of required type \"").concat(typeStr, "\" was not provided.")));
-        }
-
-        continue;
-      }
-
-      coercedValue[field.name] = coerceInputValueImpl(fieldValue, field.type, onError, addPath(path, field.name));
-    } // Ensure every provided field is defined.
-
-
-    for (var _i4 = 0, _Object$keys2 = Object.keys(inputValue); _i4 < _Object$keys2.length; _i4++) {
-      var fieldName = _Object$keys2[_i4];
-
-      if (!fieldDefs[fieldName]) {
-        var suggestions = suggestionList(fieldName, Object.keys(type.getFields()));
-        onError(pathToArray(path), inputValue, new GraphQLError("Field \"".concat(fieldName, "\" is not defined by type \"").concat(type.name, "\".") + didYouMean(suggestions)));
-      }
-    }
-
-    return coercedValue;
-  }
-
-  /* istanbul ignore else */
-  if (isLeafType(type)) {
-    var parseResult; // Scalars and Enums determine if a input value is valid via parseValue(),
-    // which can throw to indicate failure. If it throws, maintain a reference
-    // to the original error.
-
-    try {
-      parseResult = type.parseValue(inputValue);
-    } catch (error) {
-      if (error instanceof GraphQLError) {
-        onError(pathToArray(path), inputValue, error);
-      } else {
-        onError(pathToArray(path), inputValue, new GraphQLError("Expected type \"".concat(type.name, "\". ") + error.message, undefined, undefined, undefined, undefined, error));
-      }
-
-      return;
-    }
-
-    if (parseResult === undefined) {
-      onError(pathToArray(path), inputValue, new GraphQLError("Expected type \"".concat(type.name, "\".")));
-    }
-
-    return parseResult;
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected input type: ' + inspect(type));
-}
diff --git a/node_modules/graphql/utilities/concatAST.d.ts b/node_modules/graphql/utilities/concatAST.d.ts
deleted file mode 100644
index 03d441e..0000000
--- a/node_modules/graphql/utilities/concatAST.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { DocumentNode } from '../language/ast';
-
-/**
- * Provided a collection of ASTs, presumably each from different files,
- * concatenate the ASTs together into batched AST, useful for validating many
- * GraphQL source files which together represent one conceptual application.
- */
-export function concatAST(asts: ReadonlyArray<DocumentNode>): DocumentNode;
diff --git a/node_modules/graphql/utilities/concatAST.js b/node_modules/graphql/utilities/concatAST.js
deleted file mode 100644
index e657052..0000000
--- a/node_modules/graphql/utilities/concatAST.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.concatAST = concatAST;
-
-var _flatMap = _interopRequireDefault(require("../polyfills/flatMap"));
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Provided a collection of ASTs, presumably each from different files,
- * concatenate the ASTs together into batched AST, useful for validating many
- * GraphQL source files which together represent one conceptual application.
- */
-function concatAST(asts) {
-  return {
-    kind: 'Document',
-    definitions: (0, _flatMap.default)(asts, function (ast) {
-      return ast.definitions;
-    })
-  };
-}
diff --git a/node_modules/graphql/utilities/concatAST.js.flow b/node_modules/graphql/utilities/concatAST.js.flow
deleted file mode 100644
index aedc27e..0000000
--- a/node_modules/graphql/utilities/concatAST.js.flow
+++ /dev/null
@@ -1,17 +0,0 @@
-// @flow strict
-
-import flatMap from '../polyfills/flatMap';
-
-import { type DocumentNode } from '../language/ast';
-
-/**
- * Provided a collection of ASTs, presumably each from different files,
- * concatenate the ASTs together into batched AST, useful for validating many
- * GraphQL source files which together represent one conceptual application.
- */
-export function concatAST(asts: $ReadOnlyArray<DocumentNode>): DocumentNode {
-  return {
-    kind: 'Document',
-    definitions: flatMap(asts, ast => ast.definitions),
-  };
-}
diff --git a/node_modules/graphql/utilities/concatAST.mjs b/node_modules/graphql/utilities/concatAST.mjs
deleted file mode 100644
index 3b38bb7..0000000
--- a/node_modules/graphql/utilities/concatAST.mjs
+++ /dev/null
@@ -1,15 +0,0 @@
-import flatMap from "../polyfills/flatMap.mjs";
-
-/**
- * Provided a collection of ASTs, presumably each from different files,
- * concatenate the ASTs together into batched AST, useful for validating many
- * GraphQL source files which together represent one conceptual application.
- */
-export function concatAST(asts) {
-  return {
-    kind: 'Document',
-    definitions: flatMap(asts, function (ast) {
-      return ast.definitions;
-    })
-  };
-}
diff --git a/node_modules/graphql/utilities/extendSchema.d.ts b/node_modules/graphql/utilities/extendSchema.d.ts
deleted file mode 100644
index a7fa97c..0000000
--- a/node_modules/graphql/utilities/extendSchema.d.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { Location, DocumentNode, StringValueNode } from '../language/ast';
-import {
-  GraphQLSchemaValidationOptions,
-  GraphQLSchema,
-  GraphQLSchemaNormalizedConfig,
-} from '../type/schema';
-
-interface Options extends GraphQLSchemaValidationOptions {
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean;
-
-  /**
-   * Set to true to assume the SDL is valid.
-   *
-   * Default: false
-   */
-  assumeValidSDL?: boolean;
-}
-
-/**
- * Produces a new schema given an existing schema and a document which may
- * contain GraphQL type extensions and definitions. The original schema will
- * remain unaltered.
- *
- * Because a schema represents a graph of references, a schema cannot be
- * extended without effectively making an entire copy. We do not know until it's
- * too late if subgraphs remain unchanged.
- *
- * This algorithm copies the provided schema, applying extensions while
- * producing the copy. The original schema remains unaltered.
- *
- * Accepts options as a third argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function extendSchema(
-  schema: GraphQLSchema,
-  documentAST: DocumentNode,
-  options?: Options,
-): GraphQLSchema;
-
-/**
- * @internal
- */
-export function extendSchemaImpl(
-  schemaConfig: GraphQLSchemaNormalizedConfig,
-  documentAST: DocumentNode,
-  options?: Options,
-): GraphQLSchemaNormalizedConfig;
-
-/**
- * Given an ast node, returns its string description.
- * @deprecated: provided to ease adoption and will be removed in v16.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function getDescription(
-  node: { readonly description?: StringValueNode; readonly loc?: Location },
-  options?: Maybe<{ commentDescriptions?: boolean }>,
-): string | undefined;
diff --git a/node_modules/graphql/utilities/extendSchema.js b/node_modules/graphql/utilities/extendSchema.js
deleted file mode 100644
index 2322911..0000000
--- a/node_modules/graphql/utilities/extendSchema.js
+++ /dev/null
@@ -1,700 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.extendSchema = extendSchema;
-exports.extendSchemaImpl = extendSchemaImpl;
-exports.getDescription = getDescription;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _mapValue = _interopRequireDefault(require("../jsutils/mapValue"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _kinds = require("../language/kinds");
-
-var _tokenKind = require("../language/tokenKind");
-
-var _blockString = require("../language/blockString");
-
-var _predicates = require("../language/predicates");
-
-var _validate = require("../validation/validate");
-
-var _values = require("../execution/values");
-
-var _scalars = require("../type/scalars");
-
-var _introspection = require("../type/introspection");
-
-var _directives = require("../type/directives");
-
-var _schema = require("../type/schema");
-
-var _definition = require("../type/definition");
-
-var _valueFromAST = require("./valueFromAST");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Produces a new schema given an existing schema and a document which may
- * contain GraphQL type extensions and definitions. The original schema will
- * remain unaltered.
- *
- * Because a schema represents a graph of references, a schema cannot be
- * extended without effectively making an entire copy. We do not know until it's
- * too late if subgraphs remain unchanged.
- *
- * This algorithm copies the provided schema, applying extensions while
- * producing the copy. The original schema remains unaltered.
- *
- * Accepts options as a third argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-function extendSchema(schema, documentAST, options) {
-  (0, _schema.assertSchema)(schema);
-  documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT || (0, _devAssert.default)(0, 'Must provide valid Document AST.');
-
-  if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {
-    (0, _validate.assertValidSDLExtension)(documentAST, schema);
-  }
-
-  var schemaConfig = schema.toConfig();
-  var extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);
-  return schemaConfig === extendedConfig ? schema : new _schema.GraphQLSchema(extendedConfig);
-}
-/**
- * @internal
- */
-
-
-function extendSchemaImpl(schemaConfig, documentAST, options) {
-  var _schemaDef, _schemaDef$descriptio, _schemaDef2, _ref;
-
-  // Collect the type definitions and extensions found in the document.
-  var typeDefs = [];
-  var typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can
-  // have the same name. For example, a type named "skip".
-
-  var directiveDefs = [];
-  var schemaDef; // Schema extensions are collected which may add additional operation types.
-
-  var schemaExtensions = [];
-
-  for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {
-    var def = _documentAST$definiti2[_i2];
-
-    if (def.kind === _kinds.Kind.SCHEMA_DEFINITION) {
-      schemaDef = def;
-    } else if (def.kind === _kinds.Kind.SCHEMA_EXTENSION) {
-      schemaExtensions.push(def);
-    } else if ((0, _predicates.isTypeDefinitionNode)(def)) {
-      typeDefs.push(def);
-    } else if ((0, _predicates.isTypeExtensionNode)(def)) {
-      var extendedTypeName = def.name.value;
-      var existingTypeExtensions = typeExtensionsMap[extendedTypeName];
-      typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];
-    } else if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
-      directiveDefs.push(def);
-    }
-  } // If this document contains no new types, extensions, or directives then
-  // return the same unmodified GraphQLSchema instance.
-
-
-  if (Object.keys(typeExtensionsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExtensions.length === 0 && schemaDef == null) {
-    return schemaConfig;
-  }
-
-  var typeMap = Object.create(null);
-
-  for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {
-    var existingType = _schemaConfig$types2[_i4];
-    typeMap[existingType.name] = extendNamedType(existingType);
-  }
-
-  for (var _i6 = 0; _i6 < typeDefs.length; _i6++) {
-    var _stdTypeMap$name;
-
-    var typeNode = typeDefs[_i6];
-    var name = typeNode.name.value;
-    typeMap[name] = (_stdTypeMap$name = stdTypeMap[name]) !== null && _stdTypeMap$name !== void 0 ? _stdTypeMap$name : buildType(typeNode);
-  }
-
-  var operationTypes = _objectSpread({
-    // Get the extended root operation types.
-    query: schemaConfig.query && replaceNamedType(schemaConfig.query),
-    mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),
-    subscription: schemaConfig.subscription && replaceNamedType(schemaConfig.subscription)
-  }, schemaDef && getOperationTypes([schemaDef]), {}, getOperationTypes(schemaExtensions)); // Then produce and return a Schema config with these types.
-
-
-  return _objectSpread({
-    description: (_schemaDef = schemaDef) === null || _schemaDef === void 0 ? void 0 : (_schemaDef$descriptio = _schemaDef.description) === null || _schemaDef$descriptio === void 0 ? void 0 : _schemaDef$descriptio.value
-  }, operationTypes, {
-    types: (0, _objectValues.default)(typeMap),
-    directives: [].concat(schemaConfig.directives.map(replaceDirective), directiveDefs.map(buildDirective)),
-    extensions: undefined,
-    astNode: (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 ? _schemaDef2 : schemaConfig.astNode,
-    extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),
-    assumeValid: (_ref = options === null || options === void 0 ? void 0 : options.assumeValid) !== null && _ref !== void 0 ? _ref : false
-  }); // Below are functions used for producing this schema that have closed over
-  // this scope and have access to the schema, cache, and newly defined types.
-
-  function replaceType(type) {
-    if ((0, _definition.isListType)(type)) {
-      return new _definition.GraphQLList(replaceType(type.ofType));
-    } else if ((0, _definition.isNonNullType)(type)) {
-      return new _definition.GraphQLNonNull(replaceType(type.ofType));
-    }
-
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType(type) {
-    // Note: While this could make early assertions to get the correctly
-    // typed values, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-    return typeMap[type.name];
-  }
-
-  function replaceDirective(directive) {
-    var config = directive.toConfig();
-    return new _directives.GraphQLDirective(_objectSpread({}, config, {
-      args: (0, _mapValue.default)(config.args, extendArg)
-    }));
-  }
-
-  function extendNamedType(type) {
-    if ((0, _introspection.isIntrospectionType)(type) || (0, _scalars.isSpecifiedScalarType)(type)) {
-      // Builtin types are not extended.
-      return type;
-    }
-
-    if ((0, _definition.isScalarType)(type)) {
-      return extendScalarType(type);
-    }
-
-    if ((0, _definition.isObjectType)(type)) {
-      return extendObjectType(type);
-    }
-
-    if ((0, _definition.isInterfaceType)(type)) {
-      return extendInterfaceType(type);
-    }
-
-    if ((0, _definition.isUnionType)(type)) {
-      return extendUnionType(type);
-    }
-
-    if ((0, _definition.isEnumType)(type)) {
-      return extendEnumType(type);
-    }
-
-    /* istanbul ignore else */
-    if ((0, _definition.isInputObjectType)(type)) {
-      return extendInputObjectType(type);
-    } // Not reachable. All possible types have been considered.
-
-
-    /* istanbul ignore next */
-    (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));
-  }
-
-  function extendInputObjectType(type) {
-    var _typeExtensionsMap$co;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co !== void 0 ? _typeExtensionsMap$co : [];
-    return new _definition.GraphQLInputObjectType(_objectSpread({}, config, {
-      fields: function fields() {
-        return _objectSpread({}, (0, _mapValue.default)(config.fields, function (field) {
-          return _objectSpread({}, field, {
-            type: replaceType(field.type)
-          });
-        }), {}, buildInputFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendEnumType(type) {
-    var _typeExtensionsMap$ty;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && _typeExtensionsMap$ty !== void 0 ? _typeExtensionsMap$ty : [];
-    return new _definition.GraphQLEnumType(_objectSpread({}, config, {
-      values: _objectSpread({}, config.values, {}, buildEnumValueMap(extensions)),
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendScalarType(type) {
-    var _typeExtensionsMap$co2;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co2 !== void 0 ? _typeExtensionsMap$co2 : [];
-    return new _definition.GraphQLScalarType(_objectSpread({}, config, {
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendObjectType(type) {
-    var _typeExtensionsMap$co3;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co3 !== void 0 ? _typeExtensionsMap$co3 : [];
-    return new _definition.GraphQLObjectType(_objectSpread({}, config, {
-      interfaces: function interfaces() {
-        return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));
-      },
-      fields: function fields() {
-        return _objectSpread({}, (0, _mapValue.default)(config.fields, extendField), {}, buildFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendInterfaceType(type) {
-    var _typeExtensionsMap$co4;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co4 !== void 0 ? _typeExtensionsMap$co4 : [];
-    return new _definition.GraphQLInterfaceType(_objectSpread({}, config, {
-      interfaces: function interfaces() {
-        return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));
-      },
-      fields: function fields() {
-        return _objectSpread({}, (0, _mapValue.default)(config.fields, extendField), {}, buildFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendUnionType(type) {
-    var _typeExtensionsMap$co5;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co5 !== void 0 ? _typeExtensionsMap$co5 : [];
-    return new _definition.GraphQLUnionType(_objectSpread({}, config, {
-      types: function types() {
-        return [].concat(type.getTypes().map(replaceNamedType), buildUnionTypes(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendField(field) {
-    return _objectSpread({}, field, {
-      type: replaceType(field.type),
-      args: (0, _mapValue.default)(field.args, extendArg)
-    });
-  }
-
-  function extendArg(arg) {
-    return _objectSpread({}, arg, {
-      type: replaceType(arg.type)
-    });
-  }
-
-  function getOperationTypes(nodes) {
-    var opTypes = {};
-
-    for (var _i8 = 0; _i8 < nodes.length; _i8++) {
-      var _node$operationTypes;
-
-      var node = nodes[_i8];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];
-
-      for (var _i10 = 0; _i10 < operationTypesNodes.length; _i10++) {
-        var operationType = operationTypesNodes[_i10];
-        opTypes[operationType.operation] = getNamedType(operationType.type);
-      }
-    } // Note: While this could make early assertions to get the correctly
-    // typed values below, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-
-
-    return opTypes;
-  }
-
-  function getNamedType(node) {
-    var _stdTypeMap$name2;
-
-    var name = node.name.value;
-    var type = (_stdTypeMap$name2 = stdTypeMap[name]) !== null && _stdTypeMap$name2 !== void 0 ? _stdTypeMap$name2 : typeMap[name];
-
-    if (type === undefined) {
-      throw new Error("Unknown type: \"".concat(name, "\"."));
-    }
-
-    return type;
-  }
-
-  function getWrappedType(node) {
-    if (node.kind === _kinds.Kind.LIST_TYPE) {
-      return new _definition.GraphQLList(getWrappedType(node.type));
-    }
-
-    if (node.kind === _kinds.Kind.NON_NULL_TYPE) {
-      return new _definition.GraphQLNonNull(getWrappedType(node.type));
-    }
-
-    return getNamedType(node);
-  }
-
-  function buildDirective(node) {
-    var locations = node.locations.map(function (_ref2) {
-      var value = _ref2.value;
-      return value;
-    });
-    return new _directives.GraphQLDirective({
-      name: node.name.value,
-      description: getDescription(node, options),
-      locations: locations,
-      isRepeatable: node.repeatable,
-      args: buildArgumentMap(node.arguments),
-      astNode: node
-    });
-  }
-
-  function buildFieldMap(nodes) {
-    var fieldConfigMap = Object.create(null);
-
-    for (var _i12 = 0; _i12 < nodes.length; _i12++) {
-      var _node$fields;
-
-      var node = nodes[_i12];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var nodeFields = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];
-
-      for (var _i14 = 0; _i14 < nodeFields.length; _i14++) {
-        var field = nodeFields[_i14];
-        fieldConfigMap[field.name.value] = {
-          // Note: While this could make assertions to get the correctly typed
-          // value, that would throw immediately while type system validation
-          // with validateSchema() will produce more actionable results.
-          type: getWrappedType(field.type),
-          description: getDescription(field, options),
-          args: buildArgumentMap(field.arguments),
-          deprecationReason: getDeprecationReason(field),
-          astNode: field
-        };
-      }
-    }
-
-    return fieldConfigMap;
-  }
-
-  function buildArgumentMap(args) {
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    var argsNodes = args !== null && args !== void 0 ? args : [];
-    var argConfigMap = Object.create(null);
-
-    for (var _i16 = 0; _i16 < argsNodes.length; _i16++) {
-      var arg = argsNodes[_i16];
-      // Note: While this could make assertions to get the correctly typed
-      // value, that would throw immediately while type system validation
-      // with validateSchema() will produce more actionable results.
-      var type = getWrappedType(arg.type);
-      argConfigMap[arg.name.value] = {
-        type: type,
-        description: getDescription(arg, options),
-        defaultValue: (0, _valueFromAST.valueFromAST)(arg.defaultValue, type),
-        astNode: arg
-      };
-    }
-
-    return argConfigMap;
-  }
-
-  function buildInputFieldMap(nodes) {
-    var inputFieldMap = Object.create(null);
-
-    for (var _i18 = 0; _i18 < nodes.length; _i18++) {
-      var _node$fields2;
-
-      var node = nodes[_i18];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var fieldsNodes = (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 ? _node$fields2 : [];
-
-      for (var _i20 = 0; _i20 < fieldsNodes.length; _i20++) {
-        var field = fieldsNodes[_i20];
-        // Note: While this could make assertions to get the correctly typed
-        // value, that would throw immediately while type system validation
-        // with validateSchema() will produce more actionable results.
-        var type = getWrappedType(field.type);
-        inputFieldMap[field.name.value] = {
-          type: type,
-          description: getDescription(field, options),
-          defaultValue: (0, _valueFromAST.valueFromAST)(field.defaultValue, type),
-          astNode: field
-        };
-      }
-    }
-
-    return inputFieldMap;
-  }
-
-  function buildEnumValueMap(nodes) {
-    var enumValueMap = Object.create(null);
-
-    for (var _i22 = 0; _i22 < nodes.length; _i22++) {
-      var _node$values;
-
-      var node = nodes[_i22];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var valuesNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];
-
-      for (var _i24 = 0; _i24 < valuesNodes.length; _i24++) {
-        var value = valuesNodes[_i24];
-        enumValueMap[value.name.value] = {
-          description: getDescription(value, options),
-          deprecationReason: getDeprecationReason(value),
-          astNode: value
-        };
-      }
-    }
-
-    return enumValueMap;
-  }
-
-  function buildInterfaces(nodes) {
-    var interfaces = [];
-
-    for (var _i26 = 0; _i26 < nodes.length; _i26++) {
-      var _node$interfaces;
-
-      var node = nodes[_i26];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var interfacesNodes = (_node$interfaces = node.interfaces) !== null && _node$interfaces !== void 0 ? _node$interfaces : [];
-
-      for (var _i28 = 0; _i28 < interfacesNodes.length; _i28++) {
-        var type = interfacesNodes[_i28];
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        interfaces.push(getNamedType(type));
-      }
-    }
-
-    return interfaces;
-  }
-
-  function buildUnionTypes(nodes) {
-    var types = [];
-
-    for (var _i30 = 0; _i30 < nodes.length; _i30++) {
-      var _node$types;
-
-      var node = nodes[_i30];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var typeNodes = (_node$types = node.types) !== null && _node$types !== void 0 ? _node$types : [];
-
-      for (var _i32 = 0; _i32 < typeNodes.length; _i32++) {
-        var type = typeNodes[_i32];
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        types.push(getNamedType(type));
-      }
-    }
-
-    return types;
-  }
-
-  function buildType(astNode) {
-    var _typeExtensionsMap$na;
-
-    var name = astNode.name.value;
-    var description = getDescription(astNode, options);
-    var extensionNodes = (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && _typeExtensionsMap$na !== void 0 ? _typeExtensionsMap$na : [];
-
-    switch (astNode.kind) {
-      case _kinds.Kind.OBJECT_TYPE_DEFINITION:
-        {
-          var extensionASTNodes = extensionNodes;
-          var allNodes = [astNode].concat(extensionASTNodes);
-          return new _definition.GraphQLObjectType({
-            name: name,
-            description: description,
-            interfaces: function interfaces() {
-              return buildInterfaces(allNodes);
-            },
-            fields: function fields() {
-              return buildFieldMap(allNodes);
-            },
-            astNode: astNode,
-            extensionASTNodes: extensionASTNodes
-          });
-        }
-
-      case _kinds.Kind.INTERFACE_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes = extensionNodes;
-
-          var _allNodes = [astNode].concat(_extensionASTNodes);
-
-          return new _definition.GraphQLInterfaceType({
-            name: name,
-            description: description,
-            interfaces: function interfaces() {
-              return buildInterfaces(_allNodes);
-            },
-            fields: function fields() {
-              return buildFieldMap(_allNodes);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes
-          });
-        }
-
-      case _kinds.Kind.ENUM_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes2 = extensionNodes;
-
-          var _allNodes2 = [astNode].concat(_extensionASTNodes2);
-
-          return new _definition.GraphQLEnumType({
-            name: name,
-            description: description,
-            values: buildEnumValueMap(_allNodes2),
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes2
-          });
-        }
-
-      case _kinds.Kind.UNION_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes3 = extensionNodes;
-
-          var _allNodes3 = [astNode].concat(_extensionASTNodes3);
-
-          return new _definition.GraphQLUnionType({
-            name: name,
-            description: description,
-            types: function types() {
-              return buildUnionTypes(_allNodes3);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes3
-          });
-        }
-
-      case _kinds.Kind.SCALAR_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes4 = extensionNodes;
-          return new _definition.GraphQLScalarType({
-            name: name,
-            description: description,
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes4
-          });
-        }
-
-      case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes5 = extensionNodes;
-
-          var _allNodes4 = [astNode].concat(_extensionASTNodes5);
-
-          return new _definition.GraphQLInputObjectType({
-            name: name,
-            description: description,
-            fields: function fields() {
-              return buildInputFieldMap(_allNodes4);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes5
-          });
-        }
-    } // Not reachable. All possible type definition nodes have been considered.
-
-
-    /* istanbul ignore next */
-    (0, _invariant.default)(false, 'Unexpected type definition node: ' + (0, _inspect.default)(astNode));
-  }
-}
-
-var stdTypeMap = (0, _keyMap.default)(_scalars.specifiedScalarTypes.concat(_introspection.introspectionTypes), function (type) {
-  return type.name;
-});
-/**
- * Given a field or enum value node, returns the string value for the
- * deprecation reason.
- */
-
-function getDeprecationReason(node) {
-  var deprecated = (0, _values.getDirectiveValues)(_directives.GraphQLDeprecatedDirective, node);
-  return deprecated === null || deprecated === void 0 ? void 0 : deprecated.reason;
-}
-/**
- * Given an ast node, returns its string description.
- * @deprecated: provided to ease adoption and will be removed in v16.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-
-
-function getDescription(node, options) {
-  if (node.description) {
-    return node.description.value;
-  }
-
-  if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {
-    var rawValue = getLeadingCommentBlock(node);
-
-    if (rawValue !== undefined) {
-      return (0, _blockString.dedentBlockStringValue)('\n' + rawValue);
-    }
-  }
-}
-
-function getLeadingCommentBlock(node) {
-  var loc = node.loc;
-
-  if (!loc) {
-    return;
-  }
-
-  var comments = [];
-  var token = loc.startToken.prev;
-
-  while (token != null && token.kind === _tokenKind.TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {
-    var value = String(token.value);
-    comments.push(value);
-    token = token.prev;
-  }
-
-  return comments.length > 0 ? comments.reverse().join('\n') : undefined;
-}
diff --git a/node_modules/graphql/utilities/extendSchema.js.flow b/node_modules/graphql/utilities/extendSchema.js.flow
deleted file mode 100644
index 0246eca..0000000
--- a/node_modules/graphql/utilities/extendSchema.js.flow
+++ /dev/null
@@ -1,748 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import keyMap from '../jsutils/keyMap';
-import inspect from '../jsutils/inspect';
-import mapValue from '../jsutils/mapValue';
-import invariant from '../jsutils/invariant';
-import devAssert from '../jsutils/devAssert';
-
-import { Kind } from '../language/kinds';
-import { TokenKind } from '../language/tokenKind';
-import { dedentBlockStringValue } from '../language/blockString';
-import { type DirectiveLocationEnum } from '../language/directiveLocation';
-import {
-  isTypeDefinitionNode,
-  isTypeExtensionNode,
-} from '../language/predicates';
-import {
-  type Location,
-  type DocumentNode,
-  type StringValueNode,
-  type TypeNode,
-  type NamedTypeNode,
-  type SchemaDefinitionNode,
-  type SchemaExtensionNode,
-  type TypeDefinitionNode,
-  type InterfaceTypeDefinitionNode,
-  type InterfaceTypeExtensionNode,
-  type ObjectTypeDefinitionNode,
-  type ObjectTypeExtensionNode,
-  type UnionTypeDefinitionNode,
-  type UnionTypeExtensionNode,
-  type FieldDefinitionNode,
-  type InputObjectTypeDefinitionNode,
-  type InputObjectTypeExtensionNode,
-  type InputValueDefinitionNode,
-  type EnumTypeDefinitionNode,
-  type EnumTypeExtensionNode,
-  type EnumValueDefinitionNode,
-  type DirectiveDefinitionNode,
-} from '../language/ast';
-
-import { assertValidSDLExtension } from '../validation/validate';
-
-import { getDirectiveValues } from '../execution/values';
-
-import { specifiedScalarTypes, isSpecifiedScalarType } from '../type/scalars';
-import { introspectionTypes, isIntrospectionType } from '../type/introspection';
-import {
-  GraphQLDirective,
-  GraphQLDeprecatedDirective,
-} from '../type/directives';
-import {
-  type GraphQLSchemaValidationOptions,
-  assertSchema,
-  GraphQLSchema,
-  type GraphQLSchemaNormalizedConfig,
-} from '../type/schema';
-import {
-  type GraphQLType,
-  type GraphQLNamedType,
-  type GraphQLFieldConfigMap,
-  type GraphQLEnumValueConfigMap,
-  type GraphQLInputFieldConfigMap,
-  type GraphQLFieldConfigArgumentMap,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isListType,
-  isNonNullType,
-  isEnumType,
-  isInputObjectType,
-  GraphQLList,
-  GraphQLNonNull,
-  GraphQLScalarType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-} from '../type/definition';
-
-import { valueFromAST } from './valueFromAST';
-
-type Options = {|
-  ...GraphQLSchemaValidationOptions,
-
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean,
-
-  /**
-   * Set to true to assume the SDL is valid.
-   *
-   * Default: false
-   */
-  assumeValidSDL?: boolean,
-|};
-
-/**
- * Produces a new schema given an existing schema and a document which may
- * contain GraphQL type extensions and definitions. The original schema will
- * remain unaltered.
- *
- * Because a schema represents a graph of references, a schema cannot be
- * extended without effectively making an entire copy. We do not know until it's
- * too late if subgraphs remain unchanged.
- *
- * This algorithm copies the provided schema, applying extensions while
- * producing the copy. The original schema remains unaltered.
- *
- * Accepts options as a third argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function extendSchema(
-  schema: GraphQLSchema,
-  documentAST: DocumentNode,
-  options?: Options,
-): GraphQLSchema {
-  assertSchema(schema);
-
-  devAssert(
-    documentAST != null && documentAST.kind === Kind.DOCUMENT,
-    'Must provide valid Document AST.',
-  );
-
-  if (options?.assumeValid !== true && options?.assumeValidSDL !== true) {
-    assertValidSDLExtension(documentAST, schema);
-  }
-
-  const schemaConfig = schema.toConfig();
-  const extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);
-  return schemaConfig === extendedConfig
-    ? schema
-    : new GraphQLSchema(extendedConfig);
-}
-
-/**
- * @internal
- */
-export function extendSchemaImpl(
-  schemaConfig: GraphQLSchemaNormalizedConfig,
-  documentAST: DocumentNode,
-  options?: Options,
-): GraphQLSchemaNormalizedConfig {
-  // Collect the type definitions and extensions found in the document.
-  const typeDefs: Array<TypeDefinitionNode> = [];
-  const typeExtensionsMap = Object.create(null);
-
-  // New directives and types are separate because a directives and types can
-  // have the same name. For example, a type named "skip".
-  const directiveDefs: Array<DirectiveDefinitionNode> = [];
-
-  let schemaDef: ?SchemaDefinitionNode;
-  // Schema extensions are collected which may add additional operation types.
-  const schemaExtensions: Array<SchemaExtensionNode> = [];
-
-  for (const def of documentAST.definitions) {
-    if (def.kind === Kind.SCHEMA_DEFINITION) {
-      schemaDef = def;
-    } else if (def.kind === Kind.SCHEMA_EXTENSION) {
-      schemaExtensions.push(def);
-    } else if (isTypeDefinitionNode(def)) {
-      typeDefs.push(def);
-    } else if (isTypeExtensionNode(def)) {
-      const extendedTypeName = def.name.value;
-      const existingTypeExtensions = typeExtensionsMap[extendedTypeName];
-      typeExtensionsMap[extendedTypeName] = existingTypeExtensions
-        ? existingTypeExtensions.concat([def])
-        : [def];
-    } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      directiveDefs.push(def);
-    }
-  }
-
-  // If this document contains no new types, extensions, or directives then
-  // return the same unmodified GraphQLSchema instance.
-  if (
-    Object.keys(typeExtensionsMap).length === 0 &&
-    typeDefs.length === 0 &&
-    directiveDefs.length === 0 &&
-    schemaExtensions.length === 0 &&
-    schemaDef == null
-  ) {
-    return schemaConfig;
-  }
-
-  const typeMap = Object.create(null);
-  for (const existingType of schemaConfig.types) {
-    typeMap[existingType.name] = extendNamedType(existingType);
-  }
-
-  for (const typeNode of typeDefs) {
-    const name = typeNode.name.value;
-    typeMap[name] = stdTypeMap[name] ?? buildType(typeNode);
-  }
-
-  const operationTypes = {
-    // Get the extended root operation types.
-    query: schemaConfig.query && replaceNamedType(schemaConfig.query),
-    mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),
-    subscription:
-      schemaConfig.subscription && replaceNamedType(schemaConfig.subscription),
-    // Then, incorporate schema definition and all schema extensions.
-    ...(schemaDef && getOperationTypes([schemaDef])),
-    ...getOperationTypes(schemaExtensions),
-  };
-
-  // Then produce and return a Schema config with these types.
-  return {
-    description: schemaDef?.description?.value,
-    ...operationTypes,
-    types: objectValues(typeMap),
-    directives: [
-      ...schemaConfig.directives.map(replaceDirective),
-      ...directiveDefs.map(buildDirective),
-    ],
-    extensions: undefined,
-    astNode: schemaDef ?? schemaConfig.astNode,
-    extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),
-    assumeValid: options?.assumeValid ?? false,
-  };
-
-  // Below are functions used for producing this schema that have closed over
-  // this scope and have access to the schema, cache, and newly defined types.
-
-  function replaceType(type) {
-    if (isListType(type)) {
-      return new GraphQLList(replaceType(type.ofType));
-    } else if (isNonNullType(type)) {
-      return new GraphQLNonNull(replaceType(type.ofType));
-    }
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType<T: GraphQLNamedType>(type: T): T {
-    // Note: While this could make early assertions to get the correctly
-    // typed values, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-    return ((typeMap[type.name]: any): T);
-  }
-
-  function replaceDirective(directive: GraphQLDirective): GraphQLDirective {
-    const config = directive.toConfig();
-    return new GraphQLDirective({
-      ...config,
-      args: mapValue(config.args, extendArg),
-    });
-  }
-
-  function extendNamedType(type: GraphQLNamedType): GraphQLNamedType {
-    if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {
-      // Builtin types are not extended.
-      return type;
-    }
-    if (isScalarType(type)) {
-      return extendScalarType(type);
-    }
-    if (isObjectType(type)) {
-      return extendObjectType(type);
-    }
-    if (isInterfaceType(type)) {
-      return extendInterfaceType(type);
-    }
-    if (isUnionType(type)) {
-      return extendUnionType(type);
-    }
-    if (isEnumType(type)) {
-      return extendEnumType(type);
-    }
-    if (isInputObjectType(type)) {
-      return extendInputObjectType(type);
-    }
-
-    // Not reachable. All possible types have been considered.
-    invariant(false, 'Unexpected type: ' + inspect((type: empty)));
-  }
-
-  function extendInputObjectType(
-    type: GraphQLInputObjectType,
-  ): GraphQLInputObjectType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[config.name] ?? [];
-
-    return new GraphQLInputObjectType({
-      ...config,
-      fields: () => ({
-        ...mapValue(config.fields, field => ({
-          ...field,
-          type: replaceType(field.type),
-        })),
-        ...buildInputFieldMap(extensions),
-      }),
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendEnumType(type: GraphQLEnumType): GraphQLEnumType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[type.name] ?? [];
-
-    return new GraphQLEnumType({
-      ...config,
-      values: {
-        ...config.values,
-        ...buildEnumValueMap(extensions),
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendScalarType(type: GraphQLScalarType): GraphQLScalarType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[config.name] ?? [];
-
-    return new GraphQLScalarType({
-      ...config,
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendObjectType(type: GraphQLObjectType): GraphQLObjectType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[config.name] ?? [];
-
-    return new GraphQLObjectType({
-      ...config,
-      interfaces: () => [
-        ...type.getInterfaces().map(replaceNamedType),
-        ...buildInterfaces(extensions),
-      ],
-      fields: () => ({
-        ...mapValue(config.fields, extendField),
-        ...buildFieldMap(extensions),
-      }),
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendInterfaceType(
-    type: GraphQLInterfaceType,
-  ): GraphQLInterfaceType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[config.name] ?? [];
-
-    return new GraphQLInterfaceType({
-      ...config,
-      interfaces: () => [
-        ...type.getInterfaces().map(replaceNamedType),
-        ...buildInterfaces(extensions),
-      ],
-      fields: () => ({
-        ...mapValue(config.fields, extendField),
-        ...buildFieldMap(extensions),
-      }),
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendUnionType(type: GraphQLUnionType): GraphQLUnionType {
-    const config = type.toConfig();
-    const extensions = typeExtensionsMap[config.name] ?? [];
-
-    return new GraphQLUnionType({
-      ...config,
-      types: () => [
-        ...type.getTypes().map(replaceNamedType),
-        ...buildUnionTypes(extensions),
-      ],
-      extensionASTNodes: config.extensionASTNodes.concat(extensions),
-    });
-  }
-
-  function extendField(field) {
-    return {
-      ...field,
-      type: replaceType(field.type),
-      args: mapValue(field.args, extendArg),
-    };
-  }
-
-  function extendArg(arg) {
-    return {
-      ...arg,
-      type: replaceType(arg.type),
-    };
-  }
-
-  function getOperationTypes(
-    nodes: $ReadOnlyArray<SchemaDefinitionNode | SchemaExtensionNode>,
-  ): {|
-    query: ?GraphQLObjectType,
-    mutation: ?GraphQLObjectType,
-    subscription: ?GraphQLObjectType,
-  |} {
-    const opTypes = {};
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const operationTypesNodes = node.operationTypes ?? [];
-
-      for (const operationType of operationTypesNodes) {
-        opTypes[operationType.operation] = getNamedType(operationType.type);
-      }
-    }
-
-    // Note: While this could make early assertions to get the correctly
-    // typed values below, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-    return (opTypes: any);
-  }
-
-  function getNamedType(node: NamedTypeNode): GraphQLNamedType {
-    const name = node.name.value;
-    const type = stdTypeMap[name] ?? typeMap[name];
-
-    if (type === undefined) {
-      throw new Error(`Unknown type: "${name}".`);
-    }
-    return type;
-  }
-
-  function getWrappedType(node: TypeNode): GraphQLType {
-    if (node.kind === Kind.LIST_TYPE) {
-      return new GraphQLList(getWrappedType(node.type));
-    }
-    if (node.kind === Kind.NON_NULL_TYPE) {
-      return new GraphQLNonNull(getWrappedType(node.type));
-    }
-    return getNamedType(node);
-  }
-
-  function buildDirective(node: DirectiveDefinitionNode): GraphQLDirective {
-    const locations = node.locations.map(
-      ({ value }) => ((value: any): DirectiveLocationEnum),
-    );
-
-    return new GraphQLDirective({
-      name: node.name.value,
-      description: getDescription(node, options),
-      locations,
-      isRepeatable: node.repeatable,
-      args: buildArgumentMap(node.arguments),
-      astNode: node,
-    });
-  }
-
-  function buildFieldMap(
-    nodes: $ReadOnlyArray<
-      | InterfaceTypeDefinitionNode
-      | InterfaceTypeExtensionNode
-      | ObjectTypeDefinitionNode
-      | ObjectTypeExtensionNode,
-    >,
-  ): GraphQLFieldConfigMap<mixed, mixed> {
-    const fieldConfigMap = Object.create(null);
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const nodeFields = node.fields ?? [];
-
-      for (const field of nodeFields) {
-        fieldConfigMap[field.name.value] = {
-          // Note: While this could make assertions to get the correctly typed
-          // value, that would throw immediately while type system validation
-          // with validateSchema() will produce more actionable results.
-          type: (getWrappedType(field.type): any),
-          description: getDescription(field, options),
-          args: buildArgumentMap(field.arguments),
-          deprecationReason: getDeprecationReason(field),
-          astNode: field,
-        };
-      }
-    }
-    return fieldConfigMap;
-  }
-
-  function buildArgumentMap(
-    args: ?$ReadOnlyArray<InputValueDefinitionNode>,
-  ): GraphQLFieldConfigArgumentMap {
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const argsNodes = args ?? [];
-
-    const argConfigMap = Object.create(null);
-    for (const arg of argsNodes) {
-      // Note: While this could make assertions to get the correctly typed
-      // value, that would throw immediately while type system validation
-      // with validateSchema() will produce more actionable results.
-      const type: any = getWrappedType(arg.type);
-
-      argConfigMap[arg.name.value] = {
-        type,
-        description: getDescription(arg, options),
-        defaultValue: valueFromAST(arg.defaultValue, type),
-        astNode: arg,
-      };
-    }
-    return argConfigMap;
-  }
-
-  function buildInputFieldMap(
-    nodes: $ReadOnlyArray<
-      InputObjectTypeDefinitionNode | InputObjectTypeExtensionNode,
-    >,
-  ): GraphQLInputFieldConfigMap {
-    const inputFieldMap = Object.create(null);
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const fieldsNodes = node.fields ?? [];
-
-      for (const field of fieldsNodes) {
-        // Note: While this could make assertions to get the correctly typed
-        // value, that would throw immediately while type system validation
-        // with validateSchema() will produce more actionable results.
-        const type: any = getWrappedType(field.type);
-
-        inputFieldMap[field.name.value] = {
-          type,
-          description: getDescription(field, options),
-          defaultValue: valueFromAST(field.defaultValue, type),
-          astNode: field,
-        };
-      }
-    }
-    return inputFieldMap;
-  }
-
-  function buildEnumValueMap(
-    nodes: $ReadOnlyArray<EnumTypeDefinitionNode | EnumTypeExtensionNode>,
-  ): GraphQLEnumValueConfigMap {
-    const enumValueMap = Object.create(null);
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const valuesNodes = node.values ?? [];
-
-      for (const value of valuesNodes) {
-        enumValueMap[value.name.value] = {
-          description: getDescription(value, options),
-          deprecationReason: getDeprecationReason(value),
-          astNode: value,
-        };
-      }
-    }
-    return enumValueMap;
-  }
-
-  function buildInterfaces(
-    nodes: $ReadOnlyArray<
-      | InterfaceTypeDefinitionNode
-      | InterfaceTypeExtensionNode
-      | ObjectTypeDefinitionNode
-      | ObjectTypeExtensionNode,
-    >,
-  ): Array<GraphQLInterfaceType> {
-    const interfaces = [];
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const interfacesNodes = node.interfaces ?? [];
-
-      for (const type of interfacesNodes) {
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        interfaces.push((getNamedType(type): any));
-      }
-    }
-    return interfaces;
-  }
-
-  function buildUnionTypes(
-    nodes: $ReadOnlyArray<UnionTypeDefinitionNode | UnionTypeExtensionNode>,
-  ): Array<GraphQLObjectType> {
-    const types = [];
-    for (const node of nodes) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const typeNodes = node.types ?? [];
-
-      for (const type of typeNodes) {
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        types.push((getNamedType(type): any));
-      }
-    }
-    return types;
-  }
-
-  function buildType(astNode: TypeDefinitionNode): GraphQLNamedType {
-    const name = astNode.name.value;
-    const description = getDescription(astNode, options);
-    const extensionNodes = typeExtensionsMap[name] ?? [];
-
-    switch (astNode.kind) {
-      case Kind.OBJECT_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-        const allNodes = [astNode, ...extensionASTNodes];
-
-        return new GraphQLObjectType({
-          name,
-          description,
-          interfaces: () => buildInterfaces(allNodes),
-          fields: () => buildFieldMap(allNodes),
-          astNode,
-          extensionASTNodes,
-        });
-      }
-      case Kind.INTERFACE_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-        const allNodes = [astNode, ...extensionASTNodes];
-
-        return new GraphQLInterfaceType({
-          name,
-          description,
-          interfaces: () => buildInterfaces(allNodes),
-          fields: () => buildFieldMap(allNodes),
-          astNode,
-          extensionASTNodes,
-        });
-      }
-      case Kind.ENUM_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-        const allNodes = [astNode, ...extensionASTNodes];
-
-        return new GraphQLEnumType({
-          name,
-          description,
-          values: buildEnumValueMap(allNodes),
-          astNode,
-          extensionASTNodes,
-        });
-      }
-      case Kind.UNION_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-        const allNodes = [astNode, ...extensionASTNodes];
-
-        return new GraphQLUnionType({
-          name,
-          description,
-          types: () => buildUnionTypes(allNodes),
-          astNode,
-          extensionASTNodes,
-        });
-      }
-      case Kind.SCALAR_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-
-        return new GraphQLScalarType({
-          name,
-          description,
-          astNode,
-          extensionASTNodes,
-        });
-      }
-      case Kind.INPUT_OBJECT_TYPE_DEFINITION: {
-        const extensionASTNodes = (extensionNodes: any);
-        const allNodes = [astNode, ...extensionASTNodes];
-
-        return new GraphQLInputObjectType({
-          name,
-          description,
-          fields: () => buildInputFieldMap(allNodes),
-          astNode,
-          extensionASTNodes,
-        });
-      }
-    }
-
-    // Not reachable. All possible type definition nodes have been considered.
-    invariant(
-      false,
-      'Unexpected type definition node: ' + inspect((astNode: empty)),
-    );
-  }
-}
-
-const stdTypeMap = keyMap(
-  specifiedScalarTypes.concat(introspectionTypes),
-  type => type.name,
-);
-
-/**
- * Given a field or enum value node, returns the string value for the
- * deprecation reason.
- */
-function getDeprecationReason(
-  node: EnumValueDefinitionNode | FieldDefinitionNode,
-): ?string {
-  const deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);
-  return (deprecated?.reason: any);
-}
-
-/**
- * Given an ast node, returns its string description.
- * @deprecated: provided to ease adoption and will be removed in v16.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function getDescription(
-  node: { +description?: StringValueNode, +loc?: Location, ... },
-  options: ?{ commentDescriptions?: boolean, ... },
-): void | string {
-  if (node.description) {
-    return node.description.value;
-  }
-  if (options?.commentDescriptions === true) {
-    const rawValue = getLeadingCommentBlock(node);
-    if (rawValue !== undefined) {
-      return dedentBlockStringValue('\n' + rawValue);
-    }
-  }
-}
-
-function getLeadingCommentBlock(node): void | string {
-  const loc = node.loc;
-  if (!loc) {
-    return;
-  }
-  const comments = [];
-  let token = loc.startToken.prev;
-  while (
-    token != null &&
-    token.kind === TokenKind.COMMENT &&
-    token.next &&
-    token.prev &&
-    token.line + 1 === token.next.line &&
-    token.line !== token.prev.line
-  ) {
-    const value = String(token.value);
-    comments.push(value);
-    token = token.prev;
-  }
-  return comments.length > 0 ? comments.reverse().join('\n') : undefined;
-}
diff --git a/node_modules/graphql/utilities/extendSchema.mjs b/node_modules/graphql/utilities/extendSchema.mjs
deleted file mode 100644
index 39cb990..0000000
--- a/node_modules/graphql/utilities/extendSchema.mjs
+++ /dev/null
@@ -1,670 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import objectValues from "../polyfills/objectValues.mjs";
-import keyMap from "../jsutils/keyMap.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import mapValue from "../jsutils/mapValue.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import devAssert from "../jsutils/devAssert.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { TokenKind } from "../language/tokenKind.mjs";
-import { dedentBlockStringValue } from "../language/blockString.mjs";
-import { isTypeDefinitionNode, isTypeExtensionNode } from "../language/predicates.mjs";
-import { assertValidSDLExtension } from "../validation/validate.mjs";
-import { getDirectiveValues } from "../execution/values.mjs";
-import { specifiedScalarTypes, isSpecifiedScalarType } from "../type/scalars.mjs";
-import { introspectionTypes, isIntrospectionType } from "../type/introspection.mjs";
-import { GraphQLDirective, GraphQLDeprecatedDirective } from "../type/directives.mjs";
-import { assertSchema, GraphQLSchema } from "../type/schema.mjs";
-import { isScalarType, isObjectType, isInterfaceType, isUnionType, isListType, isNonNullType, isEnumType, isInputObjectType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType } from "../type/definition.mjs";
-import { valueFromAST } from "./valueFromAST.mjs";
-
-/**
- * Produces a new schema given an existing schema and a document which may
- * contain GraphQL type extensions and definitions. The original schema will
- * remain unaltered.
- *
- * Because a schema represents a graph of references, a schema cannot be
- * extended without effectively making an entire copy. We do not know until it's
- * too late if subgraphs remain unchanged.
- *
- * This algorithm copies the provided schema, applying extensions while
- * producing the copy. The original schema remains unaltered.
- *
- * Accepts options as a third argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function extendSchema(schema, documentAST, options) {
-  assertSchema(schema);
-  documentAST != null && documentAST.kind === Kind.DOCUMENT || devAssert(0, 'Must provide valid Document AST.');
-
-  if ((options === null || options === void 0 ? void 0 : options.assumeValid) !== true && (options === null || options === void 0 ? void 0 : options.assumeValidSDL) !== true) {
-    assertValidSDLExtension(documentAST, schema);
-  }
-
-  var schemaConfig = schema.toConfig();
-  var extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);
-  return schemaConfig === extendedConfig ? schema : new GraphQLSchema(extendedConfig);
-}
-/**
- * @internal
- */
-
-export function extendSchemaImpl(schemaConfig, documentAST, options) {
-  var _schemaDef, _schemaDef$descriptio, _schemaDef2, _ref;
-
-  // Collect the type definitions and extensions found in the document.
-  var typeDefs = [];
-  var typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can
-  // have the same name. For example, a type named "skip".
-
-  var directiveDefs = [];
-  var schemaDef; // Schema extensions are collected which may add additional operation types.
-
-  var schemaExtensions = [];
-
-  for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {
-    var def = _documentAST$definiti2[_i2];
-
-    if (def.kind === Kind.SCHEMA_DEFINITION) {
-      schemaDef = def;
-    } else if (def.kind === Kind.SCHEMA_EXTENSION) {
-      schemaExtensions.push(def);
-    } else if (isTypeDefinitionNode(def)) {
-      typeDefs.push(def);
-    } else if (isTypeExtensionNode(def)) {
-      var extendedTypeName = def.name.value;
-      var existingTypeExtensions = typeExtensionsMap[extendedTypeName];
-      typeExtensionsMap[extendedTypeName] = existingTypeExtensions ? existingTypeExtensions.concat([def]) : [def];
-    } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      directiveDefs.push(def);
-    }
-  } // If this document contains no new types, extensions, or directives then
-  // return the same unmodified GraphQLSchema instance.
-
-
-  if (Object.keys(typeExtensionsMap).length === 0 && typeDefs.length === 0 && directiveDefs.length === 0 && schemaExtensions.length === 0 && schemaDef == null) {
-    return schemaConfig;
-  }
-
-  var typeMap = Object.create(null);
-
-  for (var _i4 = 0, _schemaConfig$types2 = schemaConfig.types; _i4 < _schemaConfig$types2.length; _i4++) {
-    var existingType = _schemaConfig$types2[_i4];
-    typeMap[existingType.name] = extendNamedType(existingType);
-  }
-
-  for (var _i6 = 0; _i6 < typeDefs.length; _i6++) {
-    var _stdTypeMap$name;
-
-    var typeNode = typeDefs[_i6];
-    var name = typeNode.name.value;
-    typeMap[name] = (_stdTypeMap$name = stdTypeMap[name]) !== null && _stdTypeMap$name !== void 0 ? _stdTypeMap$name : buildType(typeNode);
-  }
-
-  var operationTypes = _objectSpread({
-    // Get the extended root operation types.
-    query: schemaConfig.query && replaceNamedType(schemaConfig.query),
-    mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),
-    subscription: schemaConfig.subscription && replaceNamedType(schemaConfig.subscription)
-  }, schemaDef && getOperationTypes([schemaDef]), {}, getOperationTypes(schemaExtensions)); // Then produce and return a Schema config with these types.
-
-
-  return _objectSpread({
-    description: (_schemaDef = schemaDef) === null || _schemaDef === void 0 ? void 0 : (_schemaDef$descriptio = _schemaDef.description) === null || _schemaDef$descriptio === void 0 ? void 0 : _schemaDef$descriptio.value
-  }, operationTypes, {
-    types: objectValues(typeMap),
-    directives: [].concat(schemaConfig.directives.map(replaceDirective), directiveDefs.map(buildDirective)),
-    extensions: undefined,
-    astNode: (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0 ? _schemaDef2 : schemaConfig.astNode,
-    extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),
-    assumeValid: (_ref = options === null || options === void 0 ? void 0 : options.assumeValid) !== null && _ref !== void 0 ? _ref : false
-  }); // Below are functions used for producing this schema that have closed over
-  // this scope and have access to the schema, cache, and newly defined types.
-
-  function replaceType(type) {
-    if (isListType(type)) {
-      return new GraphQLList(replaceType(type.ofType));
-    } else if (isNonNullType(type)) {
-      return new GraphQLNonNull(replaceType(type.ofType));
-    }
-
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType(type) {
-    // Note: While this could make early assertions to get the correctly
-    // typed values, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-    return typeMap[type.name];
-  }
-
-  function replaceDirective(directive) {
-    var config = directive.toConfig();
-    return new GraphQLDirective(_objectSpread({}, config, {
-      args: mapValue(config.args, extendArg)
-    }));
-  }
-
-  function extendNamedType(type) {
-    if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {
-      // Builtin types are not extended.
-      return type;
-    }
-
-    if (isScalarType(type)) {
-      return extendScalarType(type);
-    }
-
-    if (isObjectType(type)) {
-      return extendObjectType(type);
-    }
-
-    if (isInterfaceType(type)) {
-      return extendInterfaceType(type);
-    }
-
-    if (isUnionType(type)) {
-      return extendUnionType(type);
-    }
-
-    if (isEnumType(type)) {
-      return extendEnumType(type);
-    }
-
-    /* istanbul ignore else */
-    if (isInputObjectType(type)) {
-      return extendInputObjectType(type);
-    } // Not reachable. All possible types have been considered.
-
-
-    /* istanbul ignore next */
-    invariant(false, 'Unexpected type: ' + inspect(type));
-  }
-
-  function extendInputObjectType(type) {
-    var _typeExtensionsMap$co;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co !== void 0 ? _typeExtensionsMap$co : [];
-    return new GraphQLInputObjectType(_objectSpread({}, config, {
-      fields: function fields() {
-        return _objectSpread({}, mapValue(config.fields, function (field) {
-          return _objectSpread({}, field, {
-            type: replaceType(field.type)
-          });
-        }), {}, buildInputFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendEnumType(type) {
-    var _typeExtensionsMap$ty;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null && _typeExtensionsMap$ty !== void 0 ? _typeExtensionsMap$ty : [];
-    return new GraphQLEnumType(_objectSpread({}, config, {
-      values: _objectSpread({}, config.values, {}, buildEnumValueMap(extensions)),
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendScalarType(type) {
-    var _typeExtensionsMap$co2;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co2 !== void 0 ? _typeExtensionsMap$co2 : [];
-    return new GraphQLScalarType(_objectSpread({}, config, {
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendObjectType(type) {
-    var _typeExtensionsMap$co3;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co3 !== void 0 ? _typeExtensionsMap$co3 : [];
-    return new GraphQLObjectType(_objectSpread({}, config, {
-      interfaces: function interfaces() {
-        return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));
-      },
-      fields: function fields() {
-        return _objectSpread({}, mapValue(config.fields, extendField), {}, buildFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendInterfaceType(type) {
-    var _typeExtensionsMap$co4;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co4 !== void 0 ? _typeExtensionsMap$co4 : [];
-    return new GraphQLInterfaceType(_objectSpread({}, config, {
-      interfaces: function interfaces() {
-        return [].concat(type.getInterfaces().map(replaceNamedType), buildInterfaces(extensions));
-      },
-      fields: function fields() {
-        return _objectSpread({}, mapValue(config.fields, extendField), {}, buildFieldMap(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendUnionType(type) {
-    var _typeExtensionsMap$co5;
-
-    var config = type.toConfig();
-    var extensions = (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null && _typeExtensionsMap$co5 !== void 0 ? _typeExtensionsMap$co5 : [];
-    return new GraphQLUnionType(_objectSpread({}, config, {
-      types: function types() {
-        return [].concat(type.getTypes().map(replaceNamedType), buildUnionTypes(extensions));
-      },
-      extensionASTNodes: config.extensionASTNodes.concat(extensions)
-    }));
-  }
-
-  function extendField(field) {
-    return _objectSpread({}, field, {
-      type: replaceType(field.type),
-      args: mapValue(field.args, extendArg)
-    });
-  }
-
-  function extendArg(arg) {
-    return _objectSpread({}, arg, {
-      type: replaceType(arg.type)
-    });
-  }
-
-  function getOperationTypes(nodes) {
-    var opTypes = {};
-
-    for (var _i8 = 0; _i8 < nodes.length; _i8++) {
-      var _node$operationTypes;
-
-      var node = nodes[_i8];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];
-
-      for (var _i10 = 0; _i10 < operationTypesNodes.length; _i10++) {
-        var operationType = operationTypesNodes[_i10];
-        opTypes[operationType.operation] = getNamedType(operationType.type);
-      }
-    } // Note: While this could make early assertions to get the correctly
-    // typed values below, that would throw immediately while type system
-    // validation with validateSchema() will produce more actionable results.
-
-
-    return opTypes;
-  }
-
-  function getNamedType(node) {
-    var _stdTypeMap$name2;
-
-    var name = node.name.value;
-    var type = (_stdTypeMap$name2 = stdTypeMap[name]) !== null && _stdTypeMap$name2 !== void 0 ? _stdTypeMap$name2 : typeMap[name];
-
-    if (type === undefined) {
-      throw new Error("Unknown type: \"".concat(name, "\"."));
-    }
-
-    return type;
-  }
-
-  function getWrappedType(node) {
-    if (node.kind === Kind.LIST_TYPE) {
-      return new GraphQLList(getWrappedType(node.type));
-    }
-
-    if (node.kind === Kind.NON_NULL_TYPE) {
-      return new GraphQLNonNull(getWrappedType(node.type));
-    }
-
-    return getNamedType(node);
-  }
-
-  function buildDirective(node) {
-    var locations = node.locations.map(function (_ref2) {
-      var value = _ref2.value;
-      return value;
-    });
-    return new GraphQLDirective({
-      name: node.name.value,
-      description: getDescription(node, options),
-      locations: locations,
-      isRepeatable: node.repeatable,
-      args: buildArgumentMap(node.arguments),
-      astNode: node
-    });
-  }
-
-  function buildFieldMap(nodes) {
-    var fieldConfigMap = Object.create(null);
-
-    for (var _i12 = 0; _i12 < nodes.length; _i12++) {
-      var _node$fields;
-
-      var node = nodes[_i12];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var nodeFields = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];
-
-      for (var _i14 = 0; _i14 < nodeFields.length; _i14++) {
-        var field = nodeFields[_i14];
-        fieldConfigMap[field.name.value] = {
-          // Note: While this could make assertions to get the correctly typed
-          // value, that would throw immediately while type system validation
-          // with validateSchema() will produce more actionable results.
-          type: getWrappedType(field.type),
-          description: getDescription(field, options),
-          args: buildArgumentMap(field.arguments),
-          deprecationReason: getDeprecationReason(field),
-          astNode: field
-        };
-      }
-    }
-
-    return fieldConfigMap;
-  }
-
-  function buildArgumentMap(args) {
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    var argsNodes = args !== null && args !== void 0 ? args : [];
-    var argConfigMap = Object.create(null);
-
-    for (var _i16 = 0; _i16 < argsNodes.length; _i16++) {
-      var arg = argsNodes[_i16];
-      // Note: While this could make assertions to get the correctly typed
-      // value, that would throw immediately while type system validation
-      // with validateSchema() will produce more actionable results.
-      var type = getWrappedType(arg.type);
-      argConfigMap[arg.name.value] = {
-        type: type,
-        description: getDescription(arg, options),
-        defaultValue: valueFromAST(arg.defaultValue, type),
-        astNode: arg
-      };
-    }
-
-    return argConfigMap;
-  }
-
-  function buildInputFieldMap(nodes) {
-    var inputFieldMap = Object.create(null);
-
-    for (var _i18 = 0; _i18 < nodes.length; _i18++) {
-      var _node$fields2;
-
-      var node = nodes[_i18];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var fieldsNodes = (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0 ? _node$fields2 : [];
-
-      for (var _i20 = 0; _i20 < fieldsNodes.length; _i20++) {
-        var field = fieldsNodes[_i20];
-        // Note: While this could make assertions to get the correctly typed
-        // value, that would throw immediately while type system validation
-        // with validateSchema() will produce more actionable results.
-        var type = getWrappedType(field.type);
-        inputFieldMap[field.name.value] = {
-          type: type,
-          description: getDescription(field, options),
-          defaultValue: valueFromAST(field.defaultValue, type),
-          astNode: field
-        };
-      }
-    }
-
-    return inputFieldMap;
-  }
-
-  function buildEnumValueMap(nodes) {
-    var enumValueMap = Object.create(null);
-
-    for (var _i22 = 0; _i22 < nodes.length; _i22++) {
-      var _node$values;
-
-      var node = nodes[_i22];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var valuesNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];
-
-      for (var _i24 = 0; _i24 < valuesNodes.length; _i24++) {
-        var value = valuesNodes[_i24];
-        enumValueMap[value.name.value] = {
-          description: getDescription(value, options),
-          deprecationReason: getDeprecationReason(value),
-          astNode: value
-        };
-      }
-    }
-
-    return enumValueMap;
-  }
-
-  function buildInterfaces(nodes) {
-    var interfaces = [];
-
-    for (var _i26 = 0; _i26 < nodes.length; _i26++) {
-      var _node$interfaces;
-
-      var node = nodes[_i26];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var interfacesNodes = (_node$interfaces = node.interfaces) !== null && _node$interfaces !== void 0 ? _node$interfaces : [];
-
-      for (var _i28 = 0; _i28 < interfacesNodes.length; _i28++) {
-        var type = interfacesNodes[_i28];
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        interfaces.push(getNamedType(type));
-      }
-    }
-
-    return interfaces;
-  }
-
-  function buildUnionTypes(nodes) {
-    var types = [];
-
-    for (var _i30 = 0; _i30 < nodes.length; _i30++) {
-      var _node$types;
-
-      var node = nodes[_i30];
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var typeNodes = (_node$types = node.types) !== null && _node$types !== void 0 ? _node$types : [];
-
-      for (var _i32 = 0; _i32 < typeNodes.length; _i32++) {
-        var type = typeNodes[_i32];
-        // Note: While this could make assertions to get the correctly typed
-        // values below, that would throw immediately while type system
-        // validation with validateSchema() will produce more actionable
-        // results.
-        types.push(getNamedType(type));
-      }
-    }
-
-    return types;
-  }
-
-  function buildType(astNode) {
-    var _typeExtensionsMap$na;
-
-    var name = astNode.name.value;
-    var description = getDescription(astNode, options);
-    var extensionNodes = (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null && _typeExtensionsMap$na !== void 0 ? _typeExtensionsMap$na : [];
-
-    switch (astNode.kind) {
-      case Kind.OBJECT_TYPE_DEFINITION:
-        {
-          var extensionASTNodes = extensionNodes;
-          var allNodes = [astNode].concat(extensionASTNodes);
-          return new GraphQLObjectType({
-            name: name,
-            description: description,
-            interfaces: function interfaces() {
-              return buildInterfaces(allNodes);
-            },
-            fields: function fields() {
-              return buildFieldMap(allNodes);
-            },
-            astNode: astNode,
-            extensionASTNodes: extensionASTNodes
-          });
-        }
-
-      case Kind.INTERFACE_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes = extensionNodes;
-
-          var _allNodes = [astNode].concat(_extensionASTNodes);
-
-          return new GraphQLInterfaceType({
-            name: name,
-            description: description,
-            interfaces: function interfaces() {
-              return buildInterfaces(_allNodes);
-            },
-            fields: function fields() {
-              return buildFieldMap(_allNodes);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes
-          });
-        }
-
-      case Kind.ENUM_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes2 = extensionNodes;
-
-          var _allNodes2 = [astNode].concat(_extensionASTNodes2);
-
-          return new GraphQLEnumType({
-            name: name,
-            description: description,
-            values: buildEnumValueMap(_allNodes2),
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes2
-          });
-        }
-
-      case Kind.UNION_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes3 = extensionNodes;
-
-          var _allNodes3 = [astNode].concat(_extensionASTNodes3);
-
-          return new GraphQLUnionType({
-            name: name,
-            description: description,
-            types: function types() {
-              return buildUnionTypes(_allNodes3);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes3
-          });
-        }
-
-      case Kind.SCALAR_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes4 = extensionNodes;
-          return new GraphQLScalarType({
-            name: name,
-            description: description,
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes4
-          });
-        }
-
-      case Kind.INPUT_OBJECT_TYPE_DEFINITION:
-        {
-          var _extensionASTNodes5 = extensionNodes;
-
-          var _allNodes4 = [astNode].concat(_extensionASTNodes5);
-
-          return new GraphQLInputObjectType({
-            name: name,
-            description: description,
-            fields: function fields() {
-              return buildInputFieldMap(_allNodes4);
-            },
-            astNode: astNode,
-            extensionASTNodes: _extensionASTNodes5
-          });
-        }
-    } // Not reachable. All possible type definition nodes have been considered.
-
-
-    /* istanbul ignore next */
-    invariant(false, 'Unexpected type definition node: ' + inspect(astNode));
-  }
-}
-var stdTypeMap = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {
-  return type.name;
-});
-/**
- * Given a field or enum value node, returns the string value for the
- * deprecation reason.
- */
-
-function getDeprecationReason(node) {
-  var deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);
-  return deprecated === null || deprecated === void 0 ? void 0 : deprecated.reason;
-}
-/**
- * Given an ast node, returns its string description.
- * @deprecated: provided to ease adoption and will be removed in v16.
- *
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-
-
-export function getDescription(node, options) {
-  if (node.description) {
-    return node.description.value;
-  }
-
-  if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {
-    var rawValue = getLeadingCommentBlock(node);
-
-    if (rawValue !== undefined) {
-      return dedentBlockStringValue('\n' + rawValue);
-    }
-  }
-}
-
-function getLeadingCommentBlock(node) {
-  var loc = node.loc;
-
-  if (!loc) {
-    return;
-  }
-
-  var comments = [];
-  var token = loc.startToken.prev;
-
-  while (token != null && token.kind === TokenKind.COMMENT && token.next && token.prev && token.line + 1 === token.next.line && token.line !== token.prev.line) {
-    var value = String(token.value);
-    comments.push(value);
-    token = token.prev;
-  }
-
-  return comments.length > 0 ? comments.reverse().join('\n') : undefined;
-}
diff --git a/node_modules/graphql/utilities/findBreakingChanges.d.ts b/node_modules/graphql/utilities/findBreakingChanges.d.ts
deleted file mode 100644
index 37297e2..0000000
--- a/node_modules/graphql/utilities/findBreakingChanges.d.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { GraphQLSchema } from '../type/schema';
-
-export const BreakingChangeType: _BreakingChangeType;
-
-/**
- * @internal
- */
-type _BreakingChangeType = {
-  TYPE_REMOVED: 'TYPE_REMOVED';
-  TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND';
-  TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION';
-  VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM';
-  REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED';
-  INTERFACE_REMOVED_FROM_OBJECT: 'INTERFACE_REMOVED_FROM_OBJECT';
-  FIELD_REMOVED: 'FIELD_REMOVED';
-  FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND';
-  REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED';
-  ARG_REMOVED: 'ARG_REMOVED';
-  ARG_CHANGED_KIND: 'ARG_CHANGED_KIND';
-  DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED';
-  DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED';
-  REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED';
-  DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED';
-  DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED';
-};
-
-export const DangerousChangeType: _DangerousChangeType;
-
-/**
- * @internal
- */
-type _DangerousChangeType = {
-  VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM';
-  TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION';
-  OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED';
-  OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED';
-  INTERFACE_ADDED_TO_OBJECT: 'INTERFACE_ADDED_TO_OBJECT';
-  ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE';
-};
-
-export interface BreakingChange {
-  type: keyof _BreakingChangeType;
-  description: string;
-}
-
-export interface DangerousChange {
-  type: keyof _DangerousChangeType;
-  description: string;
-}
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of breaking changes covered by the other functions down below.
- */
-export function findBreakingChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<BreakingChange>;
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of potentially dangerous changes covered by the other functions down below.
- */
-export function findDangerousChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<DangerousChange>;
diff --git a/node_modules/graphql/utilities/findBreakingChanges.js b/node_modules/graphql/utilities/findBreakingChanges.js
deleted file mode 100644
index 6f7d2b5..0000000
--- a/node_modules/graphql/utilities/findBreakingChanges.js
+++ /dev/null
@@ -1,521 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.findBreakingChanges = findBreakingChanges;
-exports.findDangerousChanges = findDangerousChanges;
-exports.DangerousChangeType = exports.BreakingChangeType = void 0;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _printer = require("../language/printer");
-
-var _visitor = require("../language/visitor");
-
-var _scalars = require("../type/scalars");
-
-var _definition = require("../type/definition");
-
-var _astFromValue = require("./astFromValue");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-var BreakingChangeType = Object.freeze({
-  TYPE_REMOVED: 'TYPE_REMOVED',
-  TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',
-  TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',
-  VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',
-  REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',
-  IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED',
-  FIELD_REMOVED: 'FIELD_REMOVED',
-  FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',
-  REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',
-  ARG_REMOVED: 'ARG_REMOVED',
-  ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',
-  DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',
-  DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',
-  REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',
-  DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED',
-  DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'
-});
-exports.BreakingChangeType = BreakingChangeType;
-var DangerousChangeType = Object.freeze({
-  VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',
-  TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',
-  OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',
-  OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',
-  IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED',
-  ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'
-});
-exports.DangerousChangeType = DangerousChangeType;
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of breaking changes covered by the other functions down below.
- */
-function findBreakingChanges(oldSchema, newSchema) {
-  var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {
-    return change.type in BreakingChangeType;
-  });
-  return breakingChanges;
-}
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of potentially dangerous changes covered by the other functions down below.
- */
-
-
-function findDangerousChanges(oldSchema, newSchema) {
-  var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {
-    return change.type in DangerousChangeType;
-  });
-  return dangerousChanges;
-}
-
-function findSchemaChanges(oldSchema, newSchema) {
-  return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));
-}
-
-function findDirectiveChanges(oldSchema, newSchema) {
-  var schemaChanges = [];
-  var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());
-
-  for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {
-    var oldDirective = _directivesDiff$remov2[_i2];
-    schemaChanges.push({
-      type: BreakingChangeType.DIRECTIVE_REMOVED,
-      description: "".concat(oldDirective.name, " was removed.")
-    });
-  }
-
-  for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {
-    var _ref2 = _directivesDiff$persi2[_i4];
-    var _oldDirective = _ref2[0];
-    var newDirective = _ref2[1];
-    var argsDiff = diff(_oldDirective.args, newDirective.args);
-
-    for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {
-      var newArg = _argsDiff$added2[_i6];
-
-      if ((0, _definition.isRequiredArgument)(newArg)) {
-        schemaChanges.push({
-          type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,
-          description: "A required arg ".concat(newArg.name, " on directive ").concat(_oldDirective.name, " was added.")
-        });
-      }
-    }
-
-    for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {
-      var oldArg = _argsDiff$removed2[_i8];
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,
-        description: "".concat(oldArg.name, " was removed from ").concat(_oldDirective.name, ".")
-      });
-    }
-
-    if (_oldDirective.isRepeatable && !newDirective.isRepeatable) {
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,
-        description: "Repeatable flag was removed from ".concat(_oldDirective.name, ".")
-      });
-    }
-
-    for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {
-      var location = _oldDirective$locatio2[_i10];
-
-      if (newDirective.locations.indexOf(location) === -1) {
-        schemaChanges.push({
-          type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,
-          description: "".concat(location, " was removed from ").concat(_oldDirective.name, ".")
-        });
-      }
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findTypeChanges(oldSchema, newSchema) {
-  var schemaChanges = [];
-  var typesDiff = diff((0, _objectValues.default)(oldSchema.getTypeMap()), (0, _objectValues.default)(newSchema.getTypeMap()));
-
-  for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {
-    var oldType = _typesDiff$removed2[_i12];
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED,
-      description: (0, _scalars.isSpecifiedScalarType)(oldType) ? "Standard scalar ".concat(oldType.name, " was removed because it is not referenced anymore.") : "".concat(oldType.name, " was removed.")
-    });
-  }
-
-  for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {
-    var _ref4 = _typesDiff$persisted2[_i14];
-    var _oldType = _ref4[0];
-    var newType = _ref4[1];
-
-    if ((0, _definition.isEnumType)(_oldType) && (0, _definition.isEnumType)(newType)) {
-      schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));
-    } else if ((0, _definition.isUnionType)(_oldType) && (0, _definition.isUnionType)(newType)) {
-      schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));
-    } else if ((0, _definition.isInputObjectType)(_oldType) && (0, _definition.isInputObjectType)(newType)) {
-      schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));
-    } else if ((0, _definition.isObjectType)(_oldType) && (0, _definition.isObjectType)(newType)) {
-      schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));
-    } else if ((0, _definition.isInterfaceType)(_oldType) && (0, _definition.isInterfaceType)(newType)) {
-      schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));
-    } else if (_oldType.constructor !== newType.constructor) {
-      schemaChanges.push({
-        type: BreakingChangeType.TYPE_CHANGED_KIND,
-        description: "".concat(_oldType.name, " changed from ") + "".concat(typeKindName(_oldType), " to ").concat(typeKindName(newType), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findInputObjectTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var fieldsDiff = diff((0, _objectValues.default)(oldType.getFields()), (0, _objectValues.default)(newType.getFields()));
-
-  for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {
-    var newField = _fieldsDiff$added2[_i16];
-
-    if ((0, _definition.isRequiredInputField)(newField)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,
-        description: "A required field ".concat(newField.name, " on input type ").concat(oldType.name, " was added.")
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,
-        description: "An optional field ".concat(newField.name, " on input type ").concat(oldType.name, " was added.")
-      });
-    }
-  }
-
-  for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {
-    var oldField = _fieldsDiff$removed2[_i18];
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " was removed.")
-    });
-  }
-
-  for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {
-    var _ref6 = _fieldsDiff$persisted2[_i20];
-    var _oldField = _ref6[0];
-    var _newField = _ref6[1];
-    var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(_oldField.name, " changed type from ") + "".concat(String(_oldField.type), " to ").concat(String(_newField.type), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findUnionTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());
-
-  for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {
-    var newPossibleType = _possibleTypesDiff$ad2[_i22];
-    schemaChanges.push({
-      type: DangerousChangeType.TYPE_ADDED_TO_UNION,
-      description: "".concat(newPossibleType.name, " was added to union type ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {
-    var oldPossibleType = _possibleTypesDiff$re2[_i24];
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
-      description: "".concat(oldPossibleType.name, " was removed from union type ").concat(oldType.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findEnumTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var valuesDiff = diff(oldType.getValues(), newType.getValues());
-
-  for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {
-    var newValue = _valuesDiff$added2[_i26];
-    schemaChanges.push({
-      type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
-      description: "".concat(newValue.name, " was added to enum type ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {
-    var oldValue = _valuesDiff$removed2[_i28];
-    schemaChanges.push({
-      type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
-      description: "".concat(oldValue.name, " was removed from enum type ").concat(oldType.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findImplementedInterfacesChanges(oldType, newType) {
-  var schemaChanges = [];
-  var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());
-
-  for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {
-    var newInterface = _interfacesDiff$added2[_i30];
-    schemaChanges.push({
-      type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,
-      description: "".concat(newInterface.name, " added to interfaces implemented by ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {
-    var oldInterface = _interfacesDiff$remov2[_i32];
-    schemaChanges.push({
-      type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,
-      description: "".concat(oldType.name, " no longer implements interface ").concat(oldInterface.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findFieldChanges(oldType, newType) {
-  var schemaChanges = [];
-  var fieldsDiff = diff((0, _objectValues.default)(oldType.getFields()), (0, _objectValues.default)(newType.getFields()));
-
-  for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {
-    var oldField = _fieldsDiff$removed4[_i34];
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " was removed.")
-    });
-  }
-
-  for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {
-    var _ref8 = _fieldsDiff$persisted4[_i36];
-    var _oldField2 = _ref8[0];
-    var newField = _ref8[1];
-    schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));
-    var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(_oldField2.name, " changed type from ") + "".concat(String(_oldField2.type), " to ").concat(String(newField.type), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findArgChanges(oldType, oldField, newField) {
-  var schemaChanges = [];
-  var argsDiff = diff(oldField.args, newField.args);
-
-  for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {
-    var oldArg = _argsDiff$removed4[_i38];
-    schemaChanges.push({
-      type: BreakingChangeType.ARG_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(oldArg.name, " was removed.")
-    });
-  }
-
-  for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {
-    var _ref10 = _argsDiff$persisted2[_i40];
-    var _oldArg = _ref10[0];
-    var newArg = _ref10[1];
-    var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.ARG_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " has changed type from ") + "".concat(String(_oldArg.type), " to ").concat(String(newArg.type), ".")
-      });
-    } else if (_oldArg.defaultValue !== undefined) {
-      if (newArg.defaultValue === undefined) {
-        schemaChanges.push({
-          type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-          description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " defaultValue was removed.")
-        });
-      } else {
-        // Since we looking only for client's observable changes we should
-        // compare default values in the same representation as they are
-        // represented inside introspection.
-        var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);
-        var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);
-
-        if (oldValueStr !== newValueStr) {
-          schemaChanges.push({
-            type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-            description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " has changed defaultValue from ").concat(oldValueStr, " to ").concat(newValueStr, ".")
-          });
-        }
-      }
-    }
-  }
-
-  for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {
-    var _newArg = _argsDiff$added4[_i42];
-
-    if ((0, _definition.isRequiredArgument)(_newArg)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_ARG_ADDED,
-        description: "A required arg ".concat(_newArg.name, " on ").concat(oldType.name, ".").concat(oldField.name, " was added.")
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_ARG_ADDED,
-        description: "An optional arg ".concat(_newArg.name, " on ").concat(oldType.name, ".").concat(oldField.name, " was added.")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
-  if ((0, _definition.isListType)(oldType)) {
-    return (// if they're both lists, make sure the underlying types are compatible
-      (0, _definition.isListType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe
-      (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
-    );
-  }
-
-  if ((0, _definition.isNonNullType)(oldType)) {
-    // if they're both non-null, make sure the underlying types are compatible
-    return (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);
-  }
-
-  return (// if they're both named types, see if their names are equivalent
-    (0, _definition.isNamedType)(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe
-    (0, _definition.isNonNullType)(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
-  );
-}
-
-function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
-  if ((0, _definition.isListType)(oldType)) {
-    // if they're both lists, make sure the underlying types are compatible
-    return (0, _definition.isListType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);
-  }
-
-  if ((0, _definition.isNonNullType)(oldType)) {
-    return (// if they're both non-null, make sure the underlying types are
-      // compatible
-      (0, _definition.isNonNullType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe
-      !(0, _definition.isNonNullType)(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)
-    );
-  } // if they're both named types, see if their names are equivalent
-
-
-  return (0, _definition.isNamedType)(newType) && oldType.name === newType.name;
-}
-
-function typeKindName(type) {
-  if ((0, _definition.isScalarType)(type)) {
-    return 'a Scalar type';
-  }
-
-  if ((0, _definition.isObjectType)(type)) {
-    return 'an Object type';
-  }
-
-  if ((0, _definition.isInterfaceType)(type)) {
-    return 'an Interface type';
-  }
-
-  if ((0, _definition.isUnionType)(type)) {
-    return 'a Union type';
-  }
-
-  if ((0, _definition.isEnumType)(type)) {
-    return 'an Enum type';
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isInputObjectType)(type)) {
-    return 'an Input type';
-  } // Not reachable. All possible named types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));
-}
-
-function stringifyValue(value, type) {
-  var ast = (0, _astFromValue.astFromValue)(value, type);
-
-  /* istanbul ignore next */
-  ast != null || (0, _invariant.default)(0);
-  var sortedAST = (0, _visitor.visit)(ast, {
-    ObjectValue: function ObjectValue(objectNode) {
-      var fields = [].concat(objectNode.fields).sort(function (fieldA, fieldB) {
-        return fieldA.name.value.localeCompare(fieldB.name.value);
-      });
-      return _objectSpread({}, objectNode, {
-        fields: fields
-      });
-    }
-  });
-  return (0, _printer.print)(sortedAST);
-}
-
-function diff(oldArray, newArray) {
-  var added = [];
-  var removed = [];
-  var persisted = [];
-  var oldMap = (0, _keyMap.default)(oldArray, function (_ref11) {
-    var name = _ref11.name;
-    return name;
-  });
-  var newMap = (0, _keyMap.default)(newArray, function (_ref12) {
-    var name = _ref12.name;
-    return name;
-  });
-
-  for (var _i44 = 0; _i44 < oldArray.length; _i44++) {
-    var oldItem = oldArray[_i44];
-    var newItem = newMap[oldItem.name];
-
-    if (newItem === undefined) {
-      removed.push(oldItem);
-    } else {
-      persisted.push([oldItem, newItem]);
-    }
-  }
-
-  for (var _i46 = 0; _i46 < newArray.length; _i46++) {
-    var _newItem = newArray[_i46];
-
-    if (oldMap[_newItem.name] === undefined) {
-      added.push(_newItem);
-    }
-  }
-
-  return {
-    added: added,
-    persisted: persisted,
-    removed: removed
-  };
-}
diff --git a/node_modules/graphql/utilities/findBreakingChanges.js.flow b/node_modules/graphql/utilities/findBreakingChanges.js.flow
deleted file mode 100644
index ab566d4..0000000
--- a/node_modules/graphql/utilities/findBreakingChanges.js.flow
+++ /dev/null
@@ -1,584 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import keyMap from '../jsutils/keyMap';
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-
-import { print } from '../language/printer';
-import { visit } from '../language/visitor';
-
-import { type GraphQLSchema } from '../type/schema';
-import { isSpecifiedScalarType } from '../type/scalars';
-import {
-  type GraphQLField,
-  type GraphQLType,
-  type GraphQLInputType,
-  type GraphQLNamedType,
-  type GraphQLEnumType,
-  type GraphQLUnionType,
-  type GraphQLObjectType,
-  type GraphQLInterfaceType,
-  type GraphQLInputObjectType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-  isNonNullType,
-  isListType,
-  isNamedType,
-  isRequiredArgument,
-  isRequiredInputField,
-} from '../type/definition';
-
-import { astFromValue } from './astFromValue';
-
-export const BreakingChangeType = Object.freeze({
-  TYPE_REMOVED: 'TYPE_REMOVED',
-  TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',
-  TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',
-  VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',
-  REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',
-  IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED',
-  FIELD_REMOVED: 'FIELD_REMOVED',
-  FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',
-  REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',
-  ARG_REMOVED: 'ARG_REMOVED',
-  ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',
-  DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',
-  DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',
-  REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',
-  DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED',
-  DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED',
-});
-
-export const DangerousChangeType = Object.freeze({
-  VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',
-  TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',
-  OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',
-  OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',
-  IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED',
-  ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE',
-});
-
-export type BreakingChange = {|
-  type: $Keys<typeof BreakingChangeType>,
-  description: string,
-|};
-
-export type DangerousChange = {|
-  type: $Keys<typeof DangerousChangeType>,
-  description: string,
-|};
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of breaking changes covered by the other functions down below.
- */
-export function findBreakingChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<BreakingChange> {
-  const breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(
-    change => change.type in BreakingChangeType,
-  );
-  return ((breakingChanges: any): Array<BreakingChange>);
-}
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of potentially dangerous changes covered by the other functions down below.
- */
-export function findDangerousChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<DangerousChange> {
-  const dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(
-    change => change.type in DangerousChangeType,
-  );
-  return ((dangerousChanges: any): Array<DangerousChange>);
-}
-
-function findSchemaChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<BreakingChange | DangerousChange> {
-  return [
-    ...findTypeChanges(oldSchema, newSchema),
-    ...findDirectiveChanges(oldSchema, newSchema),
-  ];
-}
-
-function findDirectiveChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-
-  const directivesDiff = diff(
-    oldSchema.getDirectives(),
-    newSchema.getDirectives(),
-  );
-
-  for (const oldDirective of directivesDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.DIRECTIVE_REMOVED,
-      description: `${oldDirective.name} was removed.`,
-    });
-  }
-
-  for (const [oldDirective, newDirective] of directivesDiff.persisted) {
-    const argsDiff = diff(oldDirective.args, newDirective.args);
-
-    for (const newArg of argsDiff.added) {
-      if (isRequiredArgument(newArg)) {
-        schemaChanges.push({
-          type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,
-          description: `A required arg ${newArg.name} on directive ${oldDirective.name} was added.`,
-        });
-      }
-    }
-
-    for (const oldArg of argsDiff.removed) {
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,
-        description: `${oldArg.name} was removed from ${oldDirective.name}.`,
-      });
-    }
-
-    if (oldDirective.isRepeatable && !newDirective.isRepeatable) {
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,
-        description: `Repeatable flag was removed from ${oldDirective.name}.`,
-      });
-    }
-
-    for (const location of oldDirective.locations) {
-      if (newDirective.locations.indexOf(location) === -1) {
-        schemaChanges.push({
-          type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,
-          description: `${location} was removed from ${oldDirective.name}.`,
-        });
-      }
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findTypeChanges(
-  oldSchema: GraphQLSchema,
-  newSchema: GraphQLSchema,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-
-  const typesDiff = diff(
-    objectValues(oldSchema.getTypeMap()),
-    objectValues(newSchema.getTypeMap()),
-  );
-
-  for (const oldType of typesDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED,
-      description: isSpecifiedScalarType(oldType)
-        ? `Standard scalar ${oldType.name} was removed because it is not referenced anymore.`
-        : `${oldType.name} was removed.`,
-    });
-  }
-
-  for (const [oldType, newType] of typesDiff.persisted) {
-    if (isEnumType(oldType) && isEnumType(newType)) {
-      schemaChanges.push(...findEnumTypeChanges(oldType, newType));
-    } else if (isUnionType(oldType) && isUnionType(newType)) {
-      schemaChanges.push(...findUnionTypeChanges(oldType, newType));
-    } else if (isInputObjectType(oldType) && isInputObjectType(newType)) {
-      schemaChanges.push(...findInputObjectTypeChanges(oldType, newType));
-    } else if (isObjectType(oldType) && isObjectType(newType)) {
-      schemaChanges.push(
-        ...findFieldChanges(oldType, newType),
-        ...findImplementedInterfacesChanges(oldType, newType),
-      );
-    } else if (isInterfaceType(oldType) && isInterfaceType(newType)) {
-      schemaChanges.push(
-        ...findFieldChanges(oldType, newType),
-        ...findImplementedInterfacesChanges(oldType, newType),
-      );
-    } else if (oldType.constructor !== newType.constructor) {
-      schemaChanges.push({
-        type: BreakingChangeType.TYPE_CHANGED_KIND,
-        description:
-          `${oldType.name} changed from ` +
-          `${typeKindName(oldType)} to ${typeKindName(newType)}.`,
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findInputObjectTypeChanges(
-  oldType: GraphQLInputObjectType,
-  newType: GraphQLInputObjectType,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const fieldsDiff = diff(
-    objectValues(oldType.getFields()),
-    objectValues(newType.getFields()),
-  );
-
-  for (const newField of fieldsDiff.added) {
-    if (isRequiredInputField(newField)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,
-        description: `A required field ${newField.name} on input type ${oldType.name} was added.`,
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,
-        description: `An optional field ${newField.name} on input type ${oldType.name} was added.`,
-      });
-    }
-  }
-
-  for (const oldField of fieldsDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: `${oldType.name}.${oldField.name} was removed.`,
-    });
-  }
-
-  for (const [oldField, newField] of fieldsDiff.persisted) {
-    const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
-      oldField.type,
-      newField.type,
-    );
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description:
-          `${oldType.name}.${oldField.name} changed type from ` +
-          `${String(oldField.type)} to ${String(newField.type)}.`,
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findUnionTypeChanges(
-  oldType: GraphQLUnionType,
-  newType: GraphQLUnionType,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());
-
-  for (const newPossibleType of possibleTypesDiff.added) {
-    schemaChanges.push({
-      type: DangerousChangeType.TYPE_ADDED_TO_UNION,
-      description: `${newPossibleType.name} was added to union type ${oldType.name}.`,
-    });
-  }
-
-  for (const oldPossibleType of possibleTypesDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
-      description: `${oldPossibleType.name} was removed from union type ${oldType.name}.`,
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findEnumTypeChanges(
-  oldType: GraphQLEnumType,
-  newType: GraphQLEnumType,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const valuesDiff = diff(oldType.getValues(), newType.getValues());
-
-  for (const newValue of valuesDiff.added) {
-    schemaChanges.push({
-      type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
-      description: `${newValue.name} was added to enum type ${oldType.name}.`,
-    });
-  }
-
-  for (const oldValue of valuesDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
-      description: `${oldValue.name} was removed from enum type ${oldType.name}.`,
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findImplementedInterfacesChanges(
-  oldType: GraphQLObjectType | GraphQLInterfaceType,
-  newType: GraphQLObjectType | GraphQLInterfaceType,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());
-
-  for (const newInterface of interfacesDiff.added) {
-    schemaChanges.push({
-      type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,
-      description: `${newInterface.name} added to interfaces implemented by ${oldType.name}.`,
-    });
-  }
-
-  for (const oldInterface of interfacesDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,
-      description: `${oldType.name} no longer implements interface ${oldInterface.name}.`,
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findFieldChanges(
-  oldType: GraphQLObjectType | GraphQLInterfaceType,
-  newType: GraphQLObjectType | GraphQLInterfaceType,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const fieldsDiff = diff(
-    objectValues(oldType.getFields()),
-    objectValues(newType.getFields()),
-  );
-
-  for (const oldField of fieldsDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: `${oldType.name}.${oldField.name} was removed.`,
-    });
-  }
-
-  for (const [oldField, newField] of fieldsDiff.persisted) {
-    schemaChanges.push(...findArgChanges(oldType, oldField, newField));
-
-    const isSafe = isChangeSafeForObjectOrInterfaceField(
-      oldField.type,
-      newField.type,
-    );
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description:
-          `${oldType.name}.${oldField.name} changed type from ` +
-          `${String(oldField.type)} to ${String(newField.type)}.`,
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findArgChanges(
-  oldType: GraphQLObjectType | GraphQLInterfaceType,
-  oldField: GraphQLField<mixed, mixed>,
-  newField: GraphQLField<mixed, mixed>,
-): Array<BreakingChange | DangerousChange> {
-  const schemaChanges = [];
-  const argsDiff = diff(oldField.args, newField.args);
-
-  for (const oldArg of argsDiff.removed) {
-    schemaChanges.push({
-      type: BreakingChangeType.ARG_REMOVED,
-      description: `${oldType.name}.${oldField.name} arg ${oldArg.name} was removed.`,
-    });
-  }
-
-  for (const [oldArg, newArg] of argsDiff.persisted) {
-    const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
-      oldArg.type,
-      newArg.type,
-    );
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.ARG_CHANGED_KIND,
-        description:
-          `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed type from ` +
-          `${String(oldArg.type)} to ${String(newArg.type)}.`,
-      });
-    } else if (oldArg.defaultValue !== undefined) {
-      if (newArg.defaultValue === undefined) {
-        schemaChanges.push({
-          type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-          description: `${oldType.name}.${oldField.name} arg ${oldArg.name} defaultValue was removed.`,
-        });
-      } else {
-        // Since we looking only for client's observable changes we should
-        // compare default values in the same representation as they are
-        // represented inside introspection.
-        const oldValueStr = stringifyValue(oldArg.defaultValue, oldArg.type);
-        const newValueStr = stringifyValue(newArg.defaultValue, newArg.type);
-
-        if (oldValueStr !== newValueStr) {
-          schemaChanges.push({
-            type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-            description: `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed defaultValue from ${oldValueStr} to ${newValueStr}.`,
-          });
-        }
-      }
-    }
-  }
-
-  for (const newArg of argsDiff.added) {
-    if (isRequiredArgument(newArg)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_ARG_ADDED,
-        description: `A required arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_ARG_ADDED,
-        description: `An optional arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function isChangeSafeForObjectOrInterfaceField(
-  oldType: GraphQLType,
-  newType: GraphQLType,
-): boolean {
-  if (isListType(oldType)) {
-    return (
-      // if they're both lists, make sure the underlying types are compatible
-      (isListType(newType) &&
-        isChangeSafeForObjectOrInterfaceField(
-          oldType.ofType,
-          newType.ofType,
-        )) ||
-      // moving from nullable to non-null of the same underlying type is safe
-      (isNonNullType(newType) &&
-        isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
-    );
-  }
-
-  if (isNonNullType(oldType)) {
-    // if they're both non-null, make sure the underlying types are compatible
-    return (
-      isNonNullType(newType) &&
-      isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)
-    );
-  }
-
-  return (
-    // if they're both named types, see if their names are equivalent
-    (isNamedType(newType) && oldType.name === newType.name) ||
-    // moving from nullable to non-null of the same underlying type is safe
-    (isNonNullType(newType) &&
-      isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
-  );
-}
-
-function isChangeSafeForInputObjectFieldOrFieldArg(
-  oldType: GraphQLType,
-  newType: GraphQLType,
-): boolean {
-  if (isListType(oldType)) {
-    // if they're both lists, make sure the underlying types are compatible
-    return (
-      isListType(newType) &&
-      isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)
-    );
-  }
-
-  if (isNonNullType(oldType)) {
-    return (
-      // if they're both non-null, make sure the underlying types are
-      // compatible
-      (isNonNullType(newType) &&
-        isChangeSafeForInputObjectFieldOrFieldArg(
-          oldType.ofType,
-          newType.ofType,
-        )) ||
-      // moving from non-null to nullable of the same underlying type is safe
-      (!isNonNullType(newType) &&
-        isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType))
-    );
-  }
-
-  // if they're both named types, see if their names are equivalent
-  return isNamedType(newType) && oldType.name === newType.name;
-}
-
-function typeKindName(type: GraphQLNamedType): string {
-  if (isScalarType(type)) {
-    return 'a Scalar type';
-  }
-  if (isObjectType(type)) {
-    return 'an Object type';
-  }
-  if (isInterfaceType(type)) {
-    return 'an Interface type';
-  }
-  if (isUnionType(type)) {
-    return 'a Union type';
-  }
-  if (isEnumType(type)) {
-    return 'an Enum type';
-  }
-  if (isInputObjectType(type)) {
-    return 'an Input type';
-  }
-
-  // Not reachable. All possible named types have been considered.
-  invariant(false, 'Unexpected type: ' + inspect((type: empty)));
-}
-
-function stringifyValue(value: mixed, type: GraphQLInputType): string {
-  const ast = astFromValue(value, type);
-  invariant(ast != null);
-
-  const sortedAST = visit(ast, {
-    ObjectValue(objectNode) {
-      const fields = [...objectNode.fields].sort((fieldA, fieldB) =>
-        fieldA.name.value.localeCompare(fieldB.name.value),
-      );
-      return { ...objectNode, fields };
-    },
-  });
-
-  return print(sortedAST);
-}
-
-function diff<T: { name: string, ... }>(
-  oldArray: $ReadOnlyArray<T>,
-  newArray: $ReadOnlyArray<T>,
-): {|
-  added: Array<T>,
-  removed: Array<T>,
-  persisted: Array<[T, T]>,
-|} {
-  const added = [];
-  const removed = [];
-  const persisted = [];
-
-  const oldMap = keyMap(oldArray, ({ name }) => name);
-  const newMap = keyMap(newArray, ({ name }) => name);
-
-  for (const oldItem of oldArray) {
-    const newItem = newMap[oldItem.name];
-    if (newItem === undefined) {
-      removed.push(oldItem);
-    } else {
-      persisted.push([oldItem, newItem]);
-    }
-  }
-
-  for (const newItem of newArray) {
-    if (oldMap[newItem.name] === undefined) {
-      added.push(newItem);
-    }
-  }
-
-  return { added, persisted, removed };
-}
diff --git a/node_modules/graphql/utilities/findBreakingChanges.mjs b/node_modules/graphql/utilities/findBreakingChanges.mjs
deleted file mode 100644
index 52b00f5..0000000
--- a/node_modules/graphql/utilities/findBreakingChanges.mjs
+++ /dev/null
@@ -1,498 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import objectValues from "../polyfills/objectValues.mjs";
-import keyMap from "../jsutils/keyMap.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import { print } from "../language/printer.mjs";
-import { visit } from "../language/visitor.mjs";
-import { isSpecifiedScalarType } from "../type/scalars.mjs";
-import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNonNullType, isListType, isNamedType, isRequiredArgument, isRequiredInputField } from "../type/definition.mjs";
-import { astFromValue } from "./astFromValue.mjs";
-export var BreakingChangeType = Object.freeze({
-  TYPE_REMOVED: 'TYPE_REMOVED',
-  TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND',
-  TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION',
-  VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM',
-  REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED',
-  IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED',
-  FIELD_REMOVED: 'FIELD_REMOVED',
-  FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND',
-  REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED',
-  ARG_REMOVED: 'ARG_REMOVED',
-  ARG_CHANGED_KIND: 'ARG_CHANGED_KIND',
-  DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED',
-  DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED',
-  REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED',
-  DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED',
-  DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED'
-});
-export var DangerousChangeType = Object.freeze({
-  VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM',
-  TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION',
-  OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED',
-  OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED',
-  IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED',
-  ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE'
-});
-
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of breaking changes covered by the other functions down below.
- */
-export function findBreakingChanges(oldSchema, newSchema) {
-  var breakingChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {
-    return change.type in BreakingChangeType;
-  });
-  return breakingChanges;
-}
-/**
- * Given two schemas, returns an Array containing descriptions of all the types
- * of potentially dangerous changes covered by the other functions down below.
- */
-
-export function findDangerousChanges(oldSchema, newSchema) {
-  var dangerousChanges = findSchemaChanges(oldSchema, newSchema).filter(function (change) {
-    return change.type in DangerousChangeType;
-  });
-  return dangerousChanges;
-}
-
-function findSchemaChanges(oldSchema, newSchema) {
-  return [].concat(findTypeChanges(oldSchema, newSchema), findDirectiveChanges(oldSchema, newSchema));
-}
-
-function findDirectiveChanges(oldSchema, newSchema) {
-  var schemaChanges = [];
-  var directivesDiff = diff(oldSchema.getDirectives(), newSchema.getDirectives());
-
-  for (var _i2 = 0, _directivesDiff$remov2 = directivesDiff.removed; _i2 < _directivesDiff$remov2.length; _i2++) {
-    var oldDirective = _directivesDiff$remov2[_i2];
-    schemaChanges.push({
-      type: BreakingChangeType.DIRECTIVE_REMOVED,
-      description: "".concat(oldDirective.name, " was removed.")
-    });
-  }
-
-  for (var _i4 = 0, _directivesDiff$persi2 = directivesDiff.persisted; _i4 < _directivesDiff$persi2.length; _i4++) {
-    var _ref2 = _directivesDiff$persi2[_i4];
-    var _oldDirective = _ref2[0];
-    var newDirective = _ref2[1];
-    var argsDiff = diff(_oldDirective.args, newDirective.args);
-
-    for (var _i6 = 0, _argsDiff$added2 = argsDiff.added; _i6 < _argsDiff$added2.length; _i6++) {
-      var newArg = _argsDiff$added2[_i6];
-
-      if (isRequiredArgument(newArg)) {
-        schemaChanges.push({
-          type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,
-          description: "A required arg ".concat(newArg.name, " on directive ").concat(_oldDirective.name, " was added.")
-        });
-      }
-    }
-
-    for (var _i8 = 0, _argsDiff$removed2 = argsDiff.removed; _i8 < _argsDiff$removed2.length; _i8++) {
-      var oldArg = _argsDiff$removed2[_i8];
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,
-        description: "".concat(oldArg.name, " was removed from ").concat(_oldDirective.name, ".")
-      });
-    }
-
-    if (_oldDirective.isRepeatable && !newDirective.isRepeatable) {
-      schemaChanges.push({
-        type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,
-        description: "Repeatable flag was removed from ".concat(_oldDirective.name, ".")
-      });
-    }
-
-    for (var _i10 = 0, _oldDirective$locatio2 = _oldDirective.locations; _i10 < _oldDirective$locatio2.length; _i10++) {
-      var location = _oldDirective$locatio2[_i10];
-
-      if (newDirective.locations.indexOf(location) === -1) {
-        schemaChanges.push({
-          type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,
-          description: "".concat(location, " was removed from ").concat(_oldDirective.name, ".")
-        });
-      }
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findTypeChanges(oldSchema, newSchema) {
-  var schemaChanges = [];
-  var typesDiff = diff(objectValues(oldSchema.getTypeMap()), objectValues(newSchema.getTypeMap()));
-
-  for (var _i12 = 0, _typesDiff$removed2 = typesDiff.removed; _i12 < _typesDiff$removed2.length; _i12++) {
-    var oldType = _typesDiff$removed2[_i12];
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED,
-      description: isSpecifiedScalarType(oldType) ? "Standard scalar ".concat(oldType.name, " was removed because it is not referenced anymore.") : "".concat(oldType.name, " was removed.")
-    });
-  }
-
-  for (var _i14 = 0, _typesDiff$persisted2 = typesDiff.persisted; _i14 < _typesDiff$persisted2.length; _i14++) {
-    var _ref4 = _typesDiff$persisted2[_i14];
-    var _oldType = _ref4[0];
-    var newType = _ref4[1];
-
-    if (isEnumType(_oldType) && isEnumType(newType)) {
-      schemaChanges.push.apply(schemaChanges, findEnumTypeChanges(_oldType, newType));
-    } else if (isUnionType(_oldType) && isUnionType(newType)) {
-      schemaChanges.push.apply(schemaChanges, findUnionTypeChanges(_oldType, newType));
-    } else if (isInputObjectType(_oldType) && isInputObjectType(newType)) {
-      schemaChanges.push.apply(schemaChanges, findInputObjectTypeChanges(_oldType, newType));
-    } else if (isObjectType(_oldType) && isObjectType(newType)) {
-      schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));
-    } else if (isInterfaceType(_oldType) && isInterfaceType(newType)) {
-      schemaChanges.push.apply(schemaChanges, findFieldChanges(_oldType, newType).concat(findImplementedInterfacesChanges(_oldType, newType)));
-    } else if (_oldType.constructor !== newType.constructor) {
-      schemaChanges.push({
-        type: BreakingChangeType.TYPE_CHANGED_KIND,
-        description: "".concat(_oldType.name, " changed from ") + "".concat(typeKindName(_oldType), " to ").concat(typeKindName(newType), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findInputObjectTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));
-
-  for (var _i16 = 0, _fieldsDiff$added2 = fieldsDiff.added; _i16 < _fieldsDiff$added2.length; _i16++) {
-    var newField = _fieldsDiff$added2[_i16];
-
-    if (isRequiredInputField(newField)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,
-        description: "A required field ".concat(newField.name, " on input type ").concat(oldType.name, " was added.")
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,
-        description: "An optional field ".concat(newField.name, " on input type ").concat(oldType.name, " was added.")
-      });
-    }
-  }
-
-  for (var _i18 = 0, _fieldsDiff$removed2 = fieldsDiff.removed; _i18 < _fieldsDiff$removed2.length; _i18++) {
-    var oldField = _fieldsDiff$removed2[_i18];
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " was removed.")
-    });
-  }
-
-  for (var _i20 = 0, _fieldsDiff$persisted2 = fieldsDiff.persisted; _i20 < _fieldsDiff$persisted2.length; _i20++) {
-    var _ref6 = _fieldsDiff$persisted2[_i20];
-    var _oldField = _ref6[0];
-    var _newField = _ref6[1];
-    var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldField.type, _newField.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(_oldField.name, " changed type from ") + "".concat(String(_oldField.type), " to ").concat(String(_newField.type), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findUnionTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());
-
-  for (var _i22 = 0, _possibleTypesDiff$ad2 = possibleTypesDiff.added; _i22 < _possibleTypesDiff$ad2.length; _i22++) {
-    var newPossibleType = _possibleTypesDiff$ad2[_i22];
-    schemaChanges.push({
-      type: DangerousChangeType.TYPE_ADDED_TO_UNION,
-      description: "".concat(newPossibleType.name, " was added to union type ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i24 = 0, _possibleTypesDiff$re2 = possibleTypesDiff.removed; _i24 < _possibleTypesDiff$re2.length; _i24++) {
-    var oldPossibleType = _possibleTypesDiff$re2[_i24];
-    schemaChanges.push({
-      type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
-      description: "".concat(oldPossibleType.name, " was removed from union type ").concat(oldType.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findEnumTypeChanges(oldType, newType) {
-  var schemaChanges = [];
-  var valuesDiff = diff(oldType.getValues(), newType.getValues());
-
-  for (var _i26 = 0, _valuesDiff$added2 = valuesDiff.added; _i26 < _valuesDiff$added2.length; _i26++) {
-    var newValue = _valuesDiff$added2[_i26];
-    schemaChanges.push({
-      type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
-      description: "".concat(newValue.name, " was added to enum type ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i28 = 0, _valuesDiff$removed2 = valuesDiff.removed; _i28 < _valuesDiff$removed2.length; _i28++) {
-    var oldValue = _valuesDiff$removed2[_i28];
-    schemaChanges.push({
-      type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
-      description: "".concat(oldValue.name, " was removed from enum type ").concat(oldType.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findImplementedInterfacesChanges(oldType, newType) {
-  var schemaChanges = [];
-  var interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());
-
-  for (var _i30 = 0, _interfacesDiff$added2 = interfacesDiff.added; _i30 < _interfacesDiff$added2.length; _i30++) {
-    var newInterface = _interfacesDiff$added2[_i30];
-    schemaChanges.push({
-      type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,
-      description: "".concat(newInterface.name, " added to interfaces implemented by ").concat(oldType.name, ".")
-    });
-  }
-
-  for (var _i32 = 0, _interfacesDiff$remov2 = interfacesDiff.removed; _i32 < _interfacesDiff$remov2.length; _i32++) {
-    var oldInterface = _interfacesDiff$remov2[_i32];
-    schemaChanges.push({
-      type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,
-      description: "".concat(oldType.name, " no longer implements interface ").concat(oldInterface.name, ".")
-    });
-  }
-
-  return schemaChanges;
-}
-
-function findFieldChanges(oldType, newType) {
-  var schemaChanges = [];
-  var fieldsDiff = diff(objectValues(oldType.getFields()), objectValues(newType.getFields()));
-
-  for (var _i34 = 0, _fieldsDiff$removed4 = fieldsDiff.removed; _i34 < _fieldsDiff$removed4.length; _i34++) {
-    var oldField = _fieldsDiff$removed4[_i34];
-    schemaChanges.push({
-      type: BreakingChangeType.FIELD_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " was removed.")
-    });
-  }
-
-  for (var _i36 = 0, _fieldsDiff$persisted4 = fieldsDiff.persisted; _i36 < _fieldsDiff$persisted4.length; _i36++) {
-    var _ref8 = _fieldsDiff$persisted4[_i36];
-    var _oldField2 = _ref8[0];
-    var newField = _ref8[1];
-    schemaChanges.push.apply(schemaChanges, findArgChanges(oldType, _oldField2, newField));
-    var isSafe = isChangeSafeForObjectOrInterfaceField(_oldField2.type, newField.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.FIELD_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(_oldField2.name, " changed type from ") + "".concat(String(_oldField2.type), " to ").concat(String(newField.type), ".")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function findArgChanges(oldType, oldField, newField) {
-  var schemaChanges = [];
-  var argsDiff = diff(oldField.args, newField.args);
-
-  for (var _i38 = 0, _argsDiff$removed4 = argsDiff.removed; _i38 < _argsDiff$removed4.length; _i38++) {
-    var oldArg = _argsDiff$removed4[_i38];
-    schemaChanges.push({
-      type: BreakingChangeType.ARG_REMOVED,
-      description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(oldArg.name, " was removed.")
-    });
-  }
-
-  for (var _i40 = 0, _argsDiff$persisted2 = argsDiff.persisted; _i40 < _argsDiff$persisted2.length; _i40++) {
-    var _ref10 = _argsDiff$persisted2[_i40];
-    var _oldArg = _ref10[0];
-    var newArg = _ref10[1];
-    var isSafe = isChangeSafeForInputObjectFieldOrFieldArg(_oldArg.type, newArg.type);
-
-    if (!isSafe) {
-      schemaChanges.push({
-        type: BreakingChangeType.ARG_CHANGED_KIND,
-        description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " has changed type from ") + "".concat(String(_oldArg.type), " to ").concat(String(newArg.type), ".")
-      });
-    } else if (_oldArg.defaultValue !== undefined) {
-      if (newArg.defaultValue === undefined) {
-        schemaChanges.push({
-          type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-          description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " defaultValue was removed.")
-        });
-      } else {
-        // Since we looking only for client's observable changes we should
-        // compare default values in the same representation as they are
-        // represented inside introspection.
-        var oldValueStr = stringifyValue(_oldArg.defaultValue, _oldArg.type);
-        var newValueStr = stringifyValue(newArg.defaultValue, newArg.type);
-
-        if (oldValueStr !== newValueStr) {
-          schemaChanges.push({
-            type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
-            description: "".concat(oldType.name, ".").concat(oldField.name, " arg ").concat(_oldArg.name, " has changed defaultValue from ").concat(oldValueStr, " to ").concat(newValueStr, ".")
-          });
-        }
-      }
-    }
-  }
-
-  for (var _i42 = 0, _argsDiff$added4 = argsDiff.added; _i42 < _argsDiff$added4.length; _i42++) {
-    var _newArg = _argsDiff$added4[_i42];
-
-    if (isRequiredArgument(_newArg)) {
-      schemaChanges.push({
-        type: BreakingChangeType.REQUIRED_ARG_ADDED,
-        description: "A required arg ".concat(_newArg.name, " on ").concat(oldType.name, ".").concat(oldField.name, " was added.")
-      });
-    } else {
-      schemaChanges.push({
-        type: DangerousChangeType.OPTIONAL_ARG_ADDED,
-        description: "An optional arg ".concat(_newArg.name, " on ").concat(oldType.name, ".").concat(oldField.name, " was added.")
-      });
-    }
-  }
-
-  return schemaChanges;
-}
-
-function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
-  if (isListType(oldType)) {
-    return (// if they're both lists, make sure the underlying types are compatible
-      isListType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType) || // moving from nullable to non-null of the same underlying type is safe
-      isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
-    );
-  }
-
-  if (isNonNullType(oldType)) {
-    // if they're both non-null, make sure the underlying types are compatible
-    return isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType);
-  }
-
-  return (// if they're both named types, see if their names are equivalent
-    isNamedType(newType) && oldType.name === newType.name || // moving from nullable to non-null of the same underlying type is safe
-    isNonNullType(newType) && isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType)
-  );
-}
-
-function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
-  if (isListType(oldType)) {
-    // if they're both lists, make sure the underlying types are compatible
-    return isListType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType);
-  }
-
-  if (isNonNullType(oldType)) {
-    return (// if they're both non-null, make sure the underlying types are
-      // compatible
-      isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType) || // moving from non-null to nullable of the same underlying type is safe
-      !isNonNullType(newType) && isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType)
-    );
-  } // if they're both named types, see if their names are equivalent
-
-
-  return isNamedType(newType) && oldType.name === newType.name;
-}
-
-function typeKindName(type) {
-  if (isScalarType(type)) {
-    return 'a Scalar type';
-  }
-
-  if (isObjectType(type)) {
-    return 'an Object type';
-  }
-
-  if (isInterfaceType(type)) {
-    return 'an Interface type';
-  }
-
-  if (isUnionType(type)) {
-    return 'a Union type';
-  }
-
-  if (isEnumType(type)) {
-    return 'an Enum type';
-  }
-
-  /* istanbul ignore else */
-  if (isInputObjectType(type)) {
-    return 'an Input type';
-  } // Not reachable. All possible named types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected type: ' + inspect(type));
-}
-
-function stringifyValue(value, type) {
-  var ast = astFromValue(value, type);
-
-  /* istanbul ignore next */
-  ast != null || invariant(0);
-  var sortedAST = visit(ast, {
-    ObjectValue: function ObjectValue(objectNode) {
-      var fields = [].concat(objectNode.fields).sort(function (fieldA, fieldB) {
-        return fieldA.name.value.localeCompare(fieldB.name.value);
-      });
-      return _objectSpread({}, objectNode, {
-        fields: fields
-      });
-    }
-  });
-  return print(sortedAST);
-}
-
-function diff(oldArray, newArray) {
-  var added = [];
-  var removed = [];
-  var persisted = [];
-  var oldMap = keyMap(oldArray, function (_ref11) {
-    var name = _ref11.name;
-    return name;
-  });
-  var newMap = keyMap(newArray, function (_ref12) {
-    var name = _ref12.name;
-    return name;
-  });
-
-  for (var _i44 = 0; _i44 < oldArray.length; _i44++) {
-    var oldItem = oldArray[_i44];
-    var newItem = newMap[oldItem.name];
-
-    if (newItem === undefined) {
-      removed.push(oldItem);
-    } else {
-      persisted.push([oldItem, newItem]);
-    }
-  }
-
-  for (var _i46 = 0; _i46 < newArray.length; _i46++) {
-    var _newItem = newArray[_i46];
-
-    if (oldMap[_newItem.name] === undefined) {
-      added.push(_newItem);
-    }
-  }
-
-  return {
-    added: added,
-    persisted: persisted,
-    removed: removed
-  };
-}
diff --git a/node_modules/graphql/utilities/findDeprecatedUsages.d.ts b/node_modules/graphql/utilities/findDeprecatedUsages.d.ts
deleted file mode 100644
index 6beb244..0000000
--- a/node_modules/graphql/utilities/findDeprecatedUsages.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { GraphQLError } from '../error/GraphQLError';
-import { DocumentNode } from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-
-/**
- * A validation rule which reports deprecated usages.
- *
- * Returns a list of GraphQLError instances describing each deprecated use.
- */
-export function findDeprecatedUsages(
-  schema: GraphQLSchema,
-  ast: DocumentNode,
-): Array<GraphQLError>;
diff --git a/node_modules/graphql/utilities/findDeprecatedUsages.js b/node_modules/graphql/utilities/findDeprecatedUsages.js
deleted file mode 100644
index ad8c6e5..0000000
--- a/node_modules/graphql/utilities/findDeprecatedUsages.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.findDeprecatedUsages = findDeprecatedUsages;
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _visitor = require("../language/visitor");
-
-var _definition = require("../type/definition");
-
-var _TypeInfo = require("./TypeInfo");
-
-/**
- * A validation rule which reports deprecated usages.
- *
- * Returns a list of GraphQLError instances describing each deprecated use.
- */
-function findDeprecatedUsages(schema, ast) {
-  var errors = [];
-  var typeInfo = new _TypeInfo.TypeInfo(schema);
-  (0, _visitor.visit)(ast, (0, _TypeInfo.visitWithTypeInfo)(typeInfo, {
-    Field: function Field(node) {
-      var parentType = typeInfo.getParentType();
-      var fieldDef = typeInfo.getFieldDef();
-
-      if (parentType && (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason) != null) {
-        errors.push(new _GraphQLError.GraphQLError("The field \"".concat(parentType.name, ".").concat(fieldDef.name, "\" is deprecated. ") + fieldDef.deprecationReason, node));
-      }
-    },
-    EnumValue: function EnumValue(node) {
-      var type = (0, _definition.getNamedType)(typeInfo.getInputType());
-      var enumVal = typeInfo.getEnumValue();
-
-      if (type && (enumVal === null || enumVal === void 0 ? void 0 : enumVal.deprecationReason) != null) {
-        errors.push(new _GraphQLError.GraphQLError("The enum value \"".concat(type.name, ".").concat(enumVal.name, "\" is deprecated. ") + enumVal.deprecationReason, node));
-      }
-    }
-  }));
-  return errors;
-}
diff --git a/node_modules/graphql/utilities/findDeprecatedUsages.js.flow b/node_modules/graphql/utilities/findDeprecatedUsages.js.flow
deleted file mode 100644
index e63003b..0000000
--- a/node_modules/graphql/utilities/findDeprecatedUsages.js.flow
+++ /dev/null
@@ -1,58 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { visit } from '../language/visitor';
-import { type DocumentNode } from '../language/ast';
-
-import { getNamedType } from '../type/definition';
-import { type GraphQLSchema } from '../type/schema';
-
-import { TypeInfo, visitWithTypeInfo } from './TypeInfo';
-
-/**
- * A validation rule which reports deprecated usages.
- *
- * Returns a list of GraphQLError instances describing each deprecated use.
- */
-export function findDeprecatedUsages(
-  schema: GraphQLSchema,
-  ast: DocumentNode,
-): Array<GraphQLError> {
-  const errors = [];
-  const typeInfo = new TypeInfo(schema);
-
-  visit(
-    ast,
-    visitWithTypeInfo(typeInfo, {
-      Field(node) {
-        const parentType = typeInfo.getParentType();
-        const fieldDef = typeInfo.getFieldDef();
-        if (parentType && fieldDef?.deprecationReason != null) {
-          errors.push(
-            new GraphQLError(
-              `The field "${parentType.name}.${fieldDef.name}" is deprecated. ` +
-                fieldDef.deprecationReason,
-              node,
-            ),
-          );
-        }
-      },
-      EnumValue(node) {
-        const type = getNamedType(typeInfo.getInputType());
-        const enumVal = typeInfo.getEnumValue();
-        if (type && enumVal?.deprecationReason != null) {
-          errors.push(
-            new GraphQLError(
-              `The enum value "${type.name}.${enumVal.name}" is deprecated. ` +
-                enumVal.deprecationReason,
-              node,
-            ),
-          );
-        }
-      },
-    }),
-  );
-
-  return errors;
-}
diff --git a/node_modules/graphql/utilities/findDeprecatedUsages.mjs b/node_modules/graphql/utilities/findDeprecatedUsages.mjs
deleted file mode 100644
index 0344a0c..0000000
--- a/node_modules/graphql/utilities/findDeprecatedUsages.mjs
+++ /dev/null
@@ -1,33 +0,0 @@
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { visit } from "../language/visitor.mjs";
-import { getNamedType } from "../type/definition.mjs";
-import { TypeInfo, visitWithTypeInfo } from "./TypeInfo.mjs";
-/**
- * A validation rule which reports deprecated usages.
- *
- * Returns a list of GraphQLError instances describing each deprecated use.
- */
-
-export function findDeprecatedUsages(schema, ast) {
-  var errors = [];
-  var typeInfo = new TypeInfo(schema);
-  visit(ast, visitWithTypeInfo(typeInfo, {
-    Field: function Field(node) {
-      var parentType = typeInfo.getParentType();
-      var fieldDef = typeInfo.getFieldDef();
-
-      if (parentType && (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.deprecationReason) != null) {
-        errors.push(new GraphQLError("The field \"".concat(parentType.name, ".").concat(fieldDef.name, "\" is deprecated. ") + fieldDef.deprecationReason, node));
-      }
-    },
-    EnumValue: function EnumValue(node) {
-      var type = getNamedType(typeInfo.getInputType());
-      var enumVal = typeInfo.getEnumValue();
-
-      if (type && (enumVal === null || enumVal === void 0 ? void 0 : enumVal.deprecationReason) != null) {
-        errors.push(new GraphQLError("The enum value \"".concat(type.name, ".").concat(enumVal.name, "\" is deprecated. ") + enumVal.deprecationReason, node));
-      }
-    }
-  }));
-  return errors;
-}
diff --git a/node_modules/graphql/utilities/getIntrospectionQuery.d.ts b/node_modules/graphql/utilities/getIntrospectionQuery.d.ts
deleted file mode 100644
index ece6b71..0000000
--- a/node_modules/graphql/utilities/getIntrospectionQuery.d.ts
+++ /dev/null
@@ -1,177 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { DirectiveLocationEnum } from '../language/directiveLocation';
-
-export interface IntrospectionOptions {
-  // Whether to include descriptions in the introspection result.
-  // Default: true
-  descriptions: boolean;
-
-  // Whether to include `isRepeatable` flag on directives.
-  // Default: false
-  directiveIsRepeatable?: boolean;
-}
-
-export function getIntrospectionQuery(options?: IntrospectionOptions): string;
-
-export interface IntrospectionQuery {
-  readonly __schema: IntrospectionSchema;
-}
-
-export interface IntrospectionSchema {
-  readonly queryType: IntrospectionNamedTypeRef<IntrospectionObjectType>;
-  readonly mutationType: Maybe<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>
-  >;
-  readonly subscriptionType: Maybe<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>
-  >;
-  readonly types: ReadonlyArray<IntrospectionType>;
-  readonly directives: ReadonlyArray<IntrospectionDirective>;
-}
-
-export type IntrospectionType =
-  | IntrospectionScalarType
-  | IntrospectionObjectType
-  | IntrospectionInterfaceType
-  | IntrospectionUnionType
-  | IntrospectionEnumType
-  | IntrospectionInputObjectType;
-
-export type IntrospectionOutputType =
-  | IntrospectionScalarType
-  | IntrospectionObjectType
-  | IntrospectionInterfaceType
-  | IntrospectionUnionType
-  | IntrospectionEnumType;
-
-export type IntrospectionInputType =
-  | IntrospectionScalarType
-  | IntrospectionEnumType
-  | IntrospectionInputObjectType;
-
-export interface IntrospectionScalarType {
-  readonly kind: 'SCALAR';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-}
-
-export interface IntrospectionObjectType {
-  readonly kind: 'OBJECT';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly fields: ReadonlyArray<IntrospectionField>;
-  readonly interfaces: ReadonlyArray<
-    IntrospectionNamedTypeRef<IntrospectionInterfaceType>
-  >;
-}
-
-export interface IntrospectionInterfaceType {
-  readonly kind: 'INTERFACE';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly fields: ReadonlyArray<IntrospectionField>;
-  readonly interfaces: ReadonlyArray<
-    IntrospectionNamedTypeRef<IntrospectionInterfaceType>
-  >;
-  readonly possibleTypes: ReadonlyArray<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>
-  >;
-}
-
-export interface IntrospectionUnionType {
-  readonly kind: 'UNION';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly possibleTypes: ReadonlyArray<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>
-  >;
-}
-
-export interface IntrospectionEnumType {
-  readonly kind: 'ENUM';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly enumValues: ReadonlyArray<IntrospectionEnumValue>;
-}
-
-export interface IntrospectionInputObjectType {
-  readonly kind: 'INPUT_OBJECT';
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly inputFields: ReadonlyArray<IntrospectionInputValue>;
-}
-
-export interface IntrospectionListTypeRef<
-  T extends IntrospectionTypeRef = IntrospectionTypeRef
-> {
-  readonly kind: 'LIST';
-  readonly ofType: T;
-}
-
-export interface IntrospectionNonNullTypeRef<
-  T extends IntrospectionTypeRef = IntrospectionTypeRef
-> {
-  readonly kind: 'NON_NULL';
-  readonly ofType: T;
-}
-
-export type IntrospectionTypeRef =
-  | IntrospectionNamedTypeRef
-  | IntrospectionListTypeRef<any>
-  | IntrospectionNonNullTypeRef<
-      IntrospectionNamedTypeRef | IntrospectionListTypeRef<any>
-    >;
-
-export type IntrospectionOutputTypeRef =
-  | IntrospectionNamedTypeRef<IntrospectionOutputType>
-  | IntrospectionListTypeRef<any>
-  | IntrospectionNonNullTypeRef<
-      | IntrospectionNamedTypeRef<IntrospectionOutputType>
-      | IntrospectionListTypeRef<any>
-    >;
-
-export type IntrospectionInputTypeRef =
-  | IntrospectionNamedTypeRef<IntrospectionInputType>
-  | IntrospectionListTypeRef<any>
-  | IntrospectionNonNullTypeRef<
-      | IntrospectionNamedTypeRef<IntrospectionInputType>
-      | IntrospectionListTypeRef<any>
-    >;
-
-export interface IntrospectionNamedTypeRef<
-  T extends IntrospectionType = IntrospectionType
-> {
-  readonly kind: T['kind'];
-  readonly name: string;
-}
-
-export interface IntrospectionField {
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly args: ReadonlyArray<IntrospectionInputValue>;
-  readonly type: IntrospectionOutputTypeRef;
-  readonly isDeprecated: boolean;
-  readonly deprecationReason?: Maybe<string>;
-}
-
-export interface IntrospectionInputValue {
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly type: IntrospectionInputTypeRef;
-  readonly defaultValue?: Maybe<string>;
-}
-
-export interface IntrospectionEnumValue {
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly isDeprecated: boolean;
-  readonly deprecationReason?: Maybe<string>;
-}
-
-export interface IntrospectionDirective {
-  readonly name: string;
-  readonly description?: Maybe<string>;
-  readonly isRepeatable?: boolean;
-  readonly locations: ReadonlyArray<DirectiveLocationEnum>;
-  readonly args: ReadonlyArray<IntrospectionInputValue>;
-}
diff --git a/node_modules/graphql/utilities/getIntrospectionQuery.js b/node_modules/graphql/utilities/getIntrospectionQuery.js
deleted file mode 100644
index 4653703..0000000
--- a/node_modules/graphql/utilities/getIntrospectionQuery.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getIntrospectionQuery = getIntrospectionQuery;
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function getIntrospectionQuery(options) {
-  var optionsWithDefault = _objectSpread({
-    descriptions: true,
-    directiveIsRepeatable: false,
-    schemaDescription: false
-  }, options);
-
-  var descriptions = optionsWithDefault.descriptions ? 'description' : '';
-  var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';
-  var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';
-  return "\n    query IntrospectionQuery {\n      __schema {\n        ".concat(schemaDescription, "\n        queryType { name }\n        mutationType { name }\n        subscriptionType { name }\n        types {\n          ...FullType\n        }\n        directives {\n          name\n          ").concat(descriptions, "\n          ").concat(directiveIsRepeatable, "\n          locations\n          args {\n            ...InputValue\n          }\n        }\n      }\n    }\n\n    fragment FullType on __Type {\n      kind\n      name\n      ").concat(descriptions, "\n      fields(includeDeprecated: true) {\n        name\n        ").concat(descriptions, "\n        args {\n          ...InputValue\n        }\n        type {\n          ...TypeRef\n        }\n        isDeprecated\n        deprecationReason\n      }\n      inputFields {\n        ...InputValue\n      }\n      interfaces {\n        ...TypeRef\n      }\n      enumValues(includeDeprecated: true) {\n        name\n        ").concat(descriptions, "\n        isDeprecated\n        deprecationReason\n      }\n      possibleTypes {\n        ...TypeRef\n      }\n    }\n\n    fragment InputValue on __InputValue {\n      name\n      ").concat(descriptions, "\n      type { ...TypeRef }\n      defaultValue\n    }\n\n    fragment TypeRef on __Type {\n      kind\n      name\n      ofType {\n        kind\n        name\n        ofType {\n          kind\n          name\n          ofType {\n            kind\n            name\n            ofType {\n              kind\n              name\n              ofType {\n                kind\n                name\n                ofType {\n                  kind\n                  name\n                  ofType {\n                    kind\n                    name\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  ");
-}
diff --git a/node_modules/graphql/utilities/getIntrospectionQuery.js.flow b/node_modules/graphql/utilities/getIntrospectionQuery.js.flow
deleted file mode 100644
index 8f79aac..0000000
--- a/node_modules/graphql/utilities/getIntrospectionQuery.js.flow
+++ /dev/null
@@ -1,290 +0,0 @@
-// @flow strict
-
-import { type DirectiveLocationEnum } from '../language/directiveLocation';
-
-export type IntrospectionOptions = {|
-  // Whether to include descriptions in the introspection result.
-  // Default: true
-  descriptions?: boolean,
-
-  // Whether to include `isRepeatable` field on directives.
-  // Default: false
-  directiveIsRepeatable?: boolean,
-
-  // Whether to include `description` field on schema.
-  // Default: false
-  schemaDescription?: boolean,
-|};
-
-export function getIntrospectionQuery(options?: IntrospectionOptions): string {
-  const optionsWithDefault = {
-    descriptions: true,
-    directiveIsRepeatable: false,
-    schemaDescription: false,
-    ...options,
-  };
-
-  const descriptions = optionsWithDefault.descriptions ? 'description' : '';
-  const directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable
-    ? 'isRepeatable'
-    : '';
-  const schemaDescription = optionsWithDefault.schemaDescription
-    ? descriptions
-    : '';
-
-  return `
-    query IntrospectionQuery {
-      __schema {
-        ${schemaDescription}
-        queryType { name }
-        mutationType { name }
-        subscriptionType { name }
-        types {
-          ...FullType
-        }
-        directives {
-          name
-          ${descriptions}
-          ${directiveIsRepeatable}
-          locations
-          args {
-            ...InputValue
-          }
-        }
-      }
-    }
-
-    fragment FullType on __Type {
-      kind
-      name
-      ${descriptions}
-      fields(includeDeprecated: true) {
-        name
-        ${descriptions}
-        args {
-          ...InputValue
-        }
-        type {
-          ...TypeRef
-        }
-        isDeprecated
-        deprecationReason
-      }
-      inputFields {
-        ...InputValue
-      }
-      interfaces {
-        ...TypeRef
-      }
-      enumValues(includeDeprecated: true) {
-        name
-        ${descriptions}
-        isDeprecated
-        deprecationReason
-      }
-      possibleTypes {
-        ...TypeRef
-      }
-    }
-
-    fragment InputValue on __InputValue {
-      name
-      ${descriptions}
-      type { ...TypeRef }
-      defaultValue
-    }
-
-    fragment TypeRef on __Type {
-      kind
-      name
-      ofType {
-        kind
-        name
-        ofType {
-          kind
-          name
-          ofType {
-            kind
-            name
-            ofType {
-              kind
-              name
-              ofType {
-                kind
-                name
-                ofType {
-                  kind
-                  name
-                  ofType {
-                    kind
-                    name
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-  `;
-}
-
-export type IntrospectionQuery = {|
-  +__schema: IntrospectionSchema,
-|};
-
-export type IntrospectionSchema = {|
-  +description?: ?string,
-  +queryType: IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  +mutationType: ?IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  +subscriptionType: ?IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  +types: $ReadOnlyArray<IntrospectionType>,
-  +directives: $ReadOnlyArray<IntrospectionDirective>,
-|};
-
-export type IntrospectionType =
-  | IntrospectionScalarType
-  | IntrospectionObjectType
-  | IntrospectionInterfaceType
-  | IntrospectionUnionType
-  | IntrospectionEnumType
-  | IntrospectionInputObjectType;
-
-export type IntrospectionOutputType =
-  | IntrospectionScalarType
-  | IntrospectionObjectType
-  | IntrospectionInterfaceType
-  | IntrospectionUnionType
-  | IntrospectionEnumType;
-
-export type IntrospectionInputType =
-  | IntrospectionScalarType
-  | IntrospectionEnumType
-  | IntrospectionInputObjectType;
-
-export type IntrospectionScalarType = {|
-  +kind: 'SCALAR',
-  +name: string,
-  +description?: ?string,
-|};
-
-export type IntrospectionObjectType = {|
-  +kind: 'OBJECT',
-  +name: string,
-  +description?: ?string,
-  +fields: $ReadOnlyArray<IntrospectionField>,
-  +interfaces: $ReadOnlyArray<
-    IntrospectionNamedTypeRef<IntrospectionInterfaceType>,
-  >,
-|};
-
-export type IntrospectionInterfaceType = {|
-  +kind: 'INTERFACE',
-  +name: string,
-  +description?: ?string,
-  +fields: $ReadOnlyArray<IntrospectionField>,
-  +interfaces: $ReadOnlyArray<
-    IntrospectionNamedTypeRef<IntrospectionInterfaceType>,
-  >,
-  +possibleTypes: $ReadOnlyArray<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  >,
-|};
-
-export type IntrospectionUnionType = {|
-  +kind: 'UNION',
-  +name: string,
-  +description?: ?string,
-  +possibleTypes: $ReadOnlyArray<
-    IntrospectionNamedTypeRef<IntrospectionObjectType>,
-  >,
-|};
-
-export type IntrospectionEnumType = {|
-  +kind: 'ENUM',
-  +name: string,
-  +description?: ?string,
-  +enumValues: $ReadOnlyArray<IntrospectionEnumValue>,
-|};
-
-export type IntrospectionInputObjectType = {|
-  +kind: 'INPUT_OBJECT',
-  +name: string,
-  +description?: ?string,
-  +inputFields: $ReadOnlyArray<IntrospectionInputValue>,
-|};
-
-export type IntrospectionListTypeRef<
-  T: IntrospectionTypeRef = IntrospectionTypeRef,
-> = {|
-  +kind: 'LIST',
-  +ofType: T,
-|};
-
-export type IntrospectionNonNullTypeRef<
-  T: IntrospectionTypeRef = IntrospectionTypeRef,
-> = {|
-  +kind: 'NON_NULL',
-  +ofType: T,
-|};
-
-export type IntrospectionTypeRef =
-  | IntrospectionNamedTypeRef<>
-  | IntrospectionListTypeRef<>
-  | IntrospectionNonNullTypeRef<
-      IntrospectionNamedTypeRef<> | IntrospectionListTypeRef<>,
-    >;
-
-export type IntrospectionOutputTypeRef =
-  | IntrospectionNamedTypeRef<IntrospectionOutputType>
-  | IntrospectionListTypeRef<IntrospectionOutputTypeRef>
-  | IntrospectionNonNullTypeRef<
-      | IntrospectionNamedTypeRef<IntrospectionOutputType>
-      | IntrospectionListTypeRef<IntrospectionOutputTypeRef>,
-    >;
-
-export type IntrospectionInputTypeRef =
-  | IntrospectionNamedTypeRef<IntrospectionInputType>
-  | IntrospectionListTypeRef<IntrospectionInputTypeRef>
-  | IntrospectionNonNullTypeRef<
-      | IntrospectionNamedTypeRef<IntrospectionInputType>
-      | IntrospectionListTypeRef<IntrospectionInputTypeRef>,
-    >;
-
-export type IntrospectionNamedTypeRef<
-  T: IntrospectionType = IntrospectionType,
-> = {|
-  +kind: $PropertyType<T, 'kind'>,
-  +name: string,
-|};
-
-export type IntrospectionField = {|
-  +name: string,
-  +description?: ?string,
-  +args: $ReadOnlyArray<IntrospectionInputValue>,
-  +type: IntrospectionOutputTypeRef,
-  +isDeprecated: boolean,
-  +deprecationReason: ?string,
-|};
-
-export type IntrospectionInputValue = {|
-  +name: string,
-  +description?: ?string,
-  +type: IntrospectionInputTypeRef,
-  +defaultValue: ?string,
-|};
-
-export type IntrospectionEnumValue = {|
-  +name: string,
-  +description?: ?string,
-  +isDeprecated: boolean,
-  +deprecationReason: ?string,
-|};
-
-export type IntrospectionDirective = {|
-  +name: string,
-  +description?: ?string,
-  +isRepeatable?: boolean,
-  +locations: $ReadOnlyArray<DirectiveLocationEnum>,
-  +args: $ReadOnlyArray<IntrospectionInputValue>,
-|};
diff --git a/node_modules/graphql/utilities/getIntrospectionQuery.mjs b/node_modules/graphql/utilities/getIntrospectionQuery.mjs
deleted file mode 100644
index 83ab080..0000000
--- a/node_modules/graphql/utilities/getIntrospectionQuery.mjs
+++ /dev/null
@@ -1,18 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-export function getIntrospectionQuery(options) {
-  var optionsWithDefault = _objectSpread({
-    descriptions: true,
-    directiveIsRepeatable: false,
-    schemaDescription: false
-  }, options);
-
-  var descriptions = optionsWithDefault.descriptions ? 'description' : '';
-  var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';
-  var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';
-  return "\n    query IntrospectionQuery {\n      __schema {\n        ".concat(schemaDescription, "\n        queryType { name }\n        mutationType { name }\n        subscriptionType { name }\n        types {\n          ...FullType\n        }\n        directives {\n          name\n          ").concat(descriptions, "\n          ").concat(directiveIsRepeatable, "\n          locations\n          args {\n            ...InputValue\n          }\n        }\n      }\n    }\n\n    fragment FullType on __Type {\n      kind\n      name\n      ").concat(descriptions, "\n      fields(includeDeprecated: true) {\n        name\n        ").concat(descriptions, "\n        args {\n          ...InputValue\n        }\n        type {\n          ...TypeRef\n        }\n        isDeprecated\n        deprecationReason\n      }\n      inputFields {\n        ...InputValue\n      }\n      interfaces {\n        ...TypeRef\n      }\n      enumValues(includeDeprecated: true) {\n        name\n        ").concat(descriptions, "\n        isDeprecated\n        deprecationReason\n      }\n      possibleTypes {\n        ...TypeRef\n      }\n    }\n\n    fragment InputValue on __InputValue {\n      name\n      ").concat(descriptions, "\n      type { ...TypeRef }\n      defaultValue\n    }\n\n    fragment TypeRef on __Type {\n      kind\n      name\n      ofType {\n        kind\n        name\n        ofType {\n          kind\n          name\n          ofType {\n            kind\n            name\n            ofType {\n              kind\n              name\n              ofType {\n                kind\n                name\n                ofType {\n                  kind\n                  name\n                  ofType {\n                    kind\n                    name\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  ");
-}
diff --git a/node_modules/graphql/utilities/getOperationAST.d.ts b/node_modules/graphql/utilities/getOperationAST.d.ts
deleted file mode 100644
index 9f72b7e..0000000
--- a/node_modules/graphql/utilities/getOperationAST.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { DocumentNode, OperationDefinitionNode } from '../language/ast';
-
-/**
- * Returns an operation AST given a document AST and optionally an operation
- * name. If a name is not provided, an operation is only returned if only one is
- * provided in the document.
- */
-export function getOperationAST(
-  documentAST: DocumentNode,
-  operationName: Maybe<string>,
-): Maybe<OperationDefinitionNode>;
diff --git a/node_modules/graphql/utilities/getOperationAST.js b/node_modules/graphql/utilities/getOperationAST.js
deleted file mode 100644
index c284100..0000000
--- a/node_modules/graphql/utilities/getOperationAST.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getOperationAST = getOperationAST;
-
-var _kinds = require("../language/kinds");
-
-/**
- * Returns an operation AST given a document AST and optionally an operation
- * name. If a name is not provided, an operation is only returned if only one is
- * provided in the document.
- */
-function getOperationAST(documentAST, operationName) {
-  var operation = null;
-
-  for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {
-    var definition = _documentAST$definiti2[_i2];
-
-    if (definition.kind === _kinds.Kind.OPERATION_DEFINITION) {
-      var _definition$name;
-
-      if (operationName == null) {
-        // If no operation name was provided, only return an Operation if there
-        // is one defined in the document. Upon encountering the second, return
-        // null.
-        if (operation) {
-          return null;
-        }
-
-        operation = definition;
-      } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {
-        return definition;
-      }
-    }
-  }
-
-  return operation;
-}
diff --git a/node_modules/graphql/utilities/getOperationAST.js.flow b/node_modules/graphql/utilities/getOperationAST.js.flow
deleted file mode 100644
index 7e3dbcb..0000000
--- a/node_modules/graphql/utilities/getOperationAST.js.flow
+++ /dev/null
@@ -1,35 +0,0 @@
-// @flow strict
-
-import { Kind } from '../language/kinds';
-import {
-  type DocumentNode,
-  type OperationDefinitionNode,
-} from '../language/ast';
-
-/**
- * Returns an operation AST given a document AST and optionally an operation
- * name. If a name is not provided, an operation is only returned if only one is
- * provided in the document.
- */
-export function getOperationAST(
-  documentAST: DocumentNode,
-  operationName: ?string,
-): ?OperationDefinitionNode {
-  let operation = null;
-  for (const definition of documentAST.definitions) {
-    if (definition.kind === Kind.OPERATION_DEFINITION) {
-      if (operationName == null) {
-        // If no operation name was provided, only return an Operation if there
-        // is one defined in the document. Upon encountering the second, return
-        // null.
-        if (operation) {
-          return null;
-        }
-        operation = definition;
-      } else if (definition.name?.value === operationName) {
-        return definition;
-      }
-    }
-  }
-  return operation;
-}
diff --git a/node_modules/graphql/utilities/getOperationAST.mjs b/node_modules/graphql/utilities/getOperationAST.mjs
deleted file mode 100644
index 078b4f1..0000000
--- a/node_modules/graphql/utilities/getOperationAST.mjs
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Kind } from "../language/kinds.mjs";
-
-/**
- * Returns an operation AST given a document AST and optionally an operation
- * name. If a name is not provided, an operation is only returned if only one is
- * provided in the document.
- */
-export function getOperationAST(documentAST, operationName) {
-  var operation = null;
-
-  for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {
-    var definition = _documentAST$definiti2[_i2];
-
-    if (definition.kind === Kind.OPERATION_DEFINITION) {
-      var _definition$name;
-
-      if (operationName == null) {
-        // If no operation name was provided, only return an Operation if there
-        // is one defined in the document. Upon encountering the second, return
-        // null.
-        if (operation) {
-          return null;
-        }
-
-        operation = definition;
-      } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) {
-        return definition;
-      }
-    }
-  }
-
-  return operation;
-}
diff --git a/node_modules/graphql/utilities/getOperationRootType.d.ts b/node_modules/graphql/utilities/getOperationRootType.d.ts
deleted file mode 100644
index 5adc59c..0000000
--- a/node_modules/graphql/utilities/getOperationRootType.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import {
-  OperationDefinitionNode,
-  OperationTypeDefinitionNode,
-} from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLObjectType } from '../type/definition';
-
-/**
- * Extracts the root type of the operation from the schema.
- */
-export function getOperationRootType(
-  schema: GraphQLSchema,
-  operation: OperationDefinitionNode | OperationTypeDefinitionNode,
-): GraphQLObjectType;
diff --git a/node_modules/graphql/utilities/getOperationRootType.js b/node_modules/graphql/utilities/getOperationRootType.js
deleted file mode 100644
index 8e7ca1b..0000000
--- a/node_modules/graphql/utilities/getOperationRootType.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.getOperationRootType = getOperationRootType;
-
-var _GraphQLError = require("../error/GraphQLError");
-
-/**
- * Extracts the root type of the operation from the schema.
- */
-function getOperationRootType(schema, operation) {
-  if (operation.operation === 'query') {
-    var queryType = schema.getQueryType();
-
-    if (!queryType) {
-      throw new _GraphQLError.GraphQLError('Schema does not define the required query root type.', operation);
-    }
-
-    return queryType;
-  }
-
-  if (operation.operation === 'mutation') {
-    var mutationType = schema.getMutationType();
-
-    if (!mutationType) {
-      throw new _GraphQLError.GraphQLError('Schema is not configured for mutations.', operation);
-    }
-
-    return mutationType;
-  }
-
-  if (operation.operation === 'subscription') {
-    var subscriptionType = schema.getSubscriptionType();
-
-    if (!subscriptionType) {
-      throw new _GraphQLError.GraphQLError('Schema is not configured for subscriptions.', operation);
-    }
-
-    return subscriptionType;
-  }
-
-  throw new _GraphQLError.GraphQLError('Can only have query, mutation and subscription operations.', operation);
-}
diff --git a/node_modules/graphql/utilities/getOperationRootType.js.flow b/node_modules/graphql/utilities/getOperationRootType.js.flow
deleted file mode 100644
index 107c6de..0000000
--- a/node_modules/graphql/utilities/getOperationRootType.js.flow
+++ /dev/null
@@ -1,57 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import {
-  type OperationDefinitionNode,
-  type OperationTypeDefinitionNode,
-} from '../language/ast';
-
-import { type GraphQLSchema } from '../type/schema';
-import { type GraphQLObjectType } from '../type/definition';
-
-/**
- * Extracts the root type of the operation from the schema.
- */
-export function getOperationRootType(
-  schema: GraphQLSchema,
-  operation: OperationDefinitionNode | OperationTypeDefinitionNode,
-): GraphQLObjectType {
-  if (operation.operation === 'query') {
-    const queryType = schema.getQueryType();
-    if (!queryType) {
-      throw new GraphQLError(
-        'Schema does not define the required query root type.',
-        operation,
-      );
-    }
-    return queryType;
-  }
-
-  if (operation.operation === 'mutation') {
-    const mutationType = schema.getMutationType();
-    if (!mutationType) {
-      throw new GraphQLError(
-        'Schema is not configured for mutations.',
-        operation,
-      );
-    }
-    return mutationType;
-  }
-
-  if (operation.operation === 'subscription') {
-    const subscriptionType = schema.getSubscriptionType();
-    if (!subscriptionType) {
-      throw new GraphQLError(
-        'Schema is not configured for subscriptions.',
-        operation,
-      );
-    }
-    return subscriptionType;
-  }
-
-  throw new GraphQLError(
-    'Can only have query, mutation and subscription operations.',
-    operation,
-  );
-}
diff --git a/node_modules/graphql/utilities/getOperationRootType.mjs b/node_modules/graphql/utilities/getOperationRootType.mjs
deleted file mode 100644
index e0b75d7..0000000
--- a/node_modules/graphql/utilities/getOperationRootType.mjs
+++ /dev/null
@@ -1,38 +0,0 @@
-import { GraphQLError } from "../error/GraphQLError.mjs";
-
-/**
- * Extracts the root type of the operation from the schema.
- */
-export function getOperationRootType(schema, operation) {
-  if (operation.operation === 'query') {
-    var queryType = schema.getQueryType();
-
-    if (!queryType) {
-      throw new GraphQLError('Schema does not define the required query root type.', operation);
-    }
-
-    return queryType;
-  }
-
-  if (operation.operation === 'mutation') {
-    var mutationType = schema.getMutationType();
-
-    if (!mutationType) {
-      throw new GraphQLError('Schema is not configured for mutations.', operation);
-    }
-
-    return mutationType;
-  }
-
-  if (operation.operation === 'subscription') {
-    var subscriptionType = schema.getSubscriptionType();
-
-    if (!subscriptionType) {
-      throw new GraphQLError('Schema is not configured for subscriptions.', operation);
-    }
-
-    return subscriptionType;
-  }
-
-  throw new GraphQLError('Can only have query, mutation and subscription operations.', operation);
-}
diff --git a/node_modules/graphql/utilities/index.d.ts b/node_modules/graphql/utilities/index.d.ts
deleted file mode 100644
index fadc54c..0000000
--- a/node_modules/graphql/utilities/index.d.ts
+++ /dev/null
@@ -1,116 +0,0 @@
-export {
-  // Produce the GraphQL query recommended for a full schema introspection.
-  // Accepts optional IntrospectionOptions.
-  getIntrospectionQuery,
-  IntrospectionOptions,
-  IntrospectionQuery,
-  IntrospectionSchema,
-  IntrospectionType,
-  IntrospectionInputType,
-  IntrospectionOutputType,
-  IntrospectionScalarType,
-  IntrospectionObjectType,
-  IntrospectionInterfaceType,
-  IntrospectionUnionType,
-  IntrospectionEnumType,
-  IntrospectionInputObjectType,
-  IntrospectionTypeRef,
-  IntrospectionInputTypeRef,
-  IntrospectionOutputTypeRef,
-  IntrospectionNamedTypeRef,
-  IntrospectionListTypeRef,
-  IntrospectionNonNullTypeRef,
-  IntrospectionField,
-  IntrospectionInputValue,
-  IntrospectionEnumValue,
-  IntrospectionDirective,
-} from './getIntrospectionQuery';
-
-// Gets the target Operation from a Document
-export { getOperationAST } from './getOperationAST';
-
-// Gets the Type for the target Operation AST.
-export { getOperationRootType } from './getOperationRootType';
-
-// Convert a GraphQLSchema to an IntrospectionQuery
-export { introspectionFromSchema } from './introspectionFromSchema';
-
-// Build a GraphQLSchema from an introspection result.
-export { buildClientSchema } from './buildClientSchema';
-
-// Build a GraphQLSchema from GraphQL Schema language.
-export {
-  buildASTSchema,
-  buildSchema,
-  BuildSchemaOptions,
-} from './buildASTSchema';
-
-// Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST.
-export {
-  extendSchema,
-  // @deprecated: Get the description from a schema AST node and supports legacy
-  // syntax for specifying descriptions - will be removed in v16
-  getDescription,
-} from './extendSchema';
-
-// Sort a GraphQLSchema.
-export { lexicographicSortSchema } from './lexicographicSortSchema';
-
-// Print a GraphQLSchema to GraphQL Schema language.
-export {
-  printSchema,
-  printType,
-  printIntrospectionSchema,
-} from './printSchema';
-
-// Create a GraphQLType from a GraphQL language AST.
-export { typeFromAST } from './typeFromAST';
-
-// Create a JavaScript value from a GraphQL language AST with a type.
-export { valueFromAST } from './valueFromAST';
-
-// Create a JavaScript value from a GraphQL language AST without a type.
-export { valueFromASTUntyped } from './valueFromASTUntyped';
-
-// Create a GraphQL language AST from a JavaScript value.
-export { astFromValue } from './astFromValue';
-
-// A helper to use within recursive-descent visitors which need to be aware of
-// the GraphQL type system.
-export { TypeInfo, visitWithTypeInfo } from './TypeInfo';
-
-// Coerces a JavaScript value to a GraphQL type, or produces errors.
-export { coerceInputValue } from './coerceInputValue';
-
-// Concatenates multiple AST together.
-export { concatAST } from './concatAST';
-
-// Separates an AST into an AST per Operation.
-export { separateOperations } from './separateOperations';
-
-// Strips characters that are not significant to the validity or execution
-// of a GraphQL document.
-export { stripIgnoredCharacters } from './stripIgnoredCharacters';
-
-// Comparators for types
-export {
-  isEqualType,
-  isTypeSubTypeOf,
-  doTypesOverlap,
-} from './typeComparators';
-
-// Asserts that a string is a valid GraphQL name
-export { assertValidName, isValidNameError } from './assertValidName';
-
-// Compares two GraphQLSchemas and detects breaking changes.
-export {
-  BreakingChangeType,
-  DangerousChangeType,
-  findBreakingChanges,
-  findDangerousChanges,
-  BreakingChange,
-  DangerousChange,
-} from './findBreakingChanges';
-
-// Report all deprecated usage within a GraphQL document.
-export { findDeprecatedUsages } from './findDeprecatedUsages';
diff --git a/node_modules/graphql/utilities/index.js b/node_modules/graphql/utilities/index.js
deleted file mode 100644
index 0989000..0000000
--- a/node_modules/graphql/utilities/index.js
+++ /dev/null
@@ -1,247 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "getIntrospectionQuery", {
-  enumerable: true,
-  get: function get() {
-    return _getIntrospectionQuery.getIntrospectionQuery;
-  }
-});
-Object.defineProperty(exports, "getOperationAST", {
-  enumerable: true,
-  get: function get() {
-    return _getOperationAST.getOperationAST;
-  }
-});
-Object.defineProperty(exports, "getOperationRootType", {
-  enumerable: true,
-  get: function get() {
-    return _getOperationRootType.getOperationRootType;
-  }
-});
-Object.defineProperty(exports, "introspectionFromSchema", {
-  enumerable: true,
-  get: function get() {
-    return _introspectionFromSchema.introspectionFromSchema;
-  }
-});
-Object.defineProperty(exports, "buildClientSchema", {
-  enumerable: true,
-  get: function get() {
-    return _buildClientSchema.buildClientSchema;
-  }
-});
-Object.defineProperty(exports, "buildASTSchema", {
-  enumerable: true,
-  get: function get() {
-    return _buildASTSchema.buildASTSchema;
-  }
-});
-Object.defineProperty(exports, "buildSchema", {
-  enumerable: true,
-  get: function get() {
-    return _buildASTSchema.buildSchema;
-  }
-});
-Object.defineProperty(exports, "extendSchema", {
-  enumerable: true,
-  get: function get() {
-    return _extendSchema.extendSchema;
-  }
-});
-Object.defineProperty(exports, "getDescription", {
-  enumerable: true,
-  get: function get() {
-    return _extendSchema.getDescription;
-  }
-});
-Object.defineProperty(exports, "lexicographicSortSchema", {
-  enumerable: true,
-  get: function get() {
-    return _lexicographicSortSchema.lexicographicSortSchema;
-  }
-});
-Object.defineProperty(exports, "printSchema", {
-  enumerable: true,
-  get: function get() {
-    return _printSchema.printSchema;
-  }
-});
-Object.defineProperty(exports, "printType", {
-  enumerable: true,
-  get: function get() {
-    return _printSchema.printType;
-  }
-});
-Object.defineProperty(exports, "printIntrospectionSchema", {
-  enumerable: true,
-  get: function get() {
-    return _printSchema.printIntrospectionSchema;
-  }
-});
-Object.defineProperty(exports, "typeFromAST", {
-  enumerable: true,
-  get: function get() {
-    return _typeFromAST.typeFromAST;
-  }
-});
-Object.defineProperty(exports, "valueFromAST", {
-  enumerable: true,
-  get: function get() {
-    return _valueFromAST.valueFromAST;
-  }
-});
-Object.defineProperty(exports, "valueFromASTUntyped", {
-  enumerable: true,
-  get: function get() {
-    return _valueFromASTUntyped.valueFromASTUntyped;
-  }
-});
-Object.defineProperty(exports, "astFromValue", {
-  enumerable: true,
-  get: function get() {
-    return _astFromValue.astFromValue;
-  }
-});
-Object.defineProperty(exports, "TypeInfo", {
-  enumerable: true,
-  get: function get() {
-    return _TypeInfo.TypeInfo;
-  }
-});
-Object.defineProperty(exports, "visitWithTypeInfo", {
-  enumerable: true,
-  get: function get() {
-    return _TypeInfo.visitWithTypeInfo;
-  }
-});
-Object.defineProperty(exports, "coerceInputValue", {
-  enumerable: true,
-  get: function get() {
-    return _coerceInputValue.coerceInputValue;
-  }
-});
-Object.defineProperty(exports, "concatAST", {
-  enumerable: true,
-  get: function get() {
-    return _concatAST.concatAST;
-  }
-});
-Object.defineProperty(exports, "separateOperations", {
-  enumerable: true,
-  get: function get() {
-    return _separateOperations.separateOperations;
-  }
-});
-Object.defineProperty(exports, "stripIgnoredCharacters", {
-  enumerable: true,
-  get: function get() {
-    return _stripIgnoredCharacters.stripIgnoredCharacters;
-  }
-});
-Object.defineProperty(exports, "isEqualType", {
-  enumerable: true,
-  get: function get() {
-    return _typeComparators.isEqualType;
-  }
-});
-Object.defineProperty(exports, "isTypeSubTypeOf", {
-  enumerable: true,
-  get: function get() {
-    return _typeComparators.isTypeSubTypeOf;
-  }
-});
-Object.defineProperty(exports, "doTypesOverlap", {
-  enumerable: true,
-  get: function get() {
-    return _typeComparators.doTypesOverlap;
-  }
-});
-Object.defineProperty(exports, "assertValidName", {
-  enumerable: true,
-  get: function get() {
-    return _assertValidName.assertValidName;
-  }
-});
-Object.defineProperty(exports, "isValidNameError", {
-  enumerable: true,
-  get: function get() {
-    return _assertValidName.isValidNameError;
-  }
-});
-Object.defineProperty(exports, "BreakingChangeType", {
-  enumerable: true,
-  get: function get() {
-    return _findBreakingChanges.BreakingChangeType;
-  }
-});
-Object.defineProperty(exports, "DangerousChangeType", {
-  enumerable: true,
-  get: function get() {
-    return _findBreakingChanges.DangerousChangeType;
-  }
-});
-Object.defineProperty(exports, "findBreakingChanges", {
-  enumerable: true,
-  get: function get() {
-    return _findBreakingChanges.findBreakingChanges;
-  }
-});
-Object.defineProperty(exports, "findDangerousChanges", {
-  enumerable: true,
-  get: function get() {
-    return _findBreakingChanges.findDangerousChanges;
-  }
-});
-Object.defineProperty(exports, "findDeprecatedUsages", {
-  enumerable: true,
-  get: function get() {
-    return _findDeprecatedUsages.findDeprecatedUsages;
-  }
-});
-
-var _getIntrospectionQuery = require("./getIntrospectionQuery");
-
-var _getOperationAST = require("./getOperationAST");
-
-var _getOperationRootType = require("./getOperationRootType");
-
-var _introspectionFromSchema = require("./introspectionFromSchema");
-
-var _buildClientSchema = require("./buildClientSchema");
-
-var _buildASTSchema = require("./buildASTSchema");
-
-var _extendSchema = require("./extendSchema");
-
-var _lexicographicSortSchema = require("./lexicographicSortSchema");
-
-var _printSchema = require("./printSchema");
-
-var _typeFromAST = require("./typeFromAST");
-
-var _valueFromAST = require("./valueFromAST");
-
-var _valueFromASTUntyped = require("./valueFromASTUntyped");
-
-var _astFromValue = require("./astFromValue");
-
-var _TypeInfo = require("./TypeInfo");
-
-var _coerceInputValue = require("./coerceInputValue");
-
-var _concatAST = require("./concatAST");
-
-var _separateOperations = require("./separateOperations");
-
-var _stripIgnoredCharacters = require("./stripIgnoredCharacters");
-
-var _typeComparators = require("./typeComparators");
-
-var _assertValidName = require("./assertValidName");
-
-var _findBreakingChanges = require("./findBreakingChanges");
-
-var _findDeprecatedUsages = require("./findDeprecatedUsages");
diff --git a/node_modules/graphql/utilities/index.js.flow b/node_modules/graphql/utilities/index.js.flow
deleted file mode 100644
index 9949483..0000000
--- a/node_modules/graphql/utilities/index.js.flow
+++ /dev/null
@@ -1,115 +0,0 @@
-// @flow strict
-
-// Produce the GraphQL query recommended for a full schema introspection.
-// Accepts optional IntrospectionOptions.
-export { getIntrospectionQuery } from './getIntrospectionQuery';
-
-export type {
-  IntrospectionOptions,
-  IntrospectionQuery,
-  IntrospectionSchema,
-  IntrospectionType,
-  IntrospectionInputType,
-  IntrospectionOutputType,
-  IntrospectionScalarType,
-  IntrospectionObjectType,
-  IntrospectionInterfaceType,
-  IntrospectionUnionType,
-  IntrospectionEnumType,
-  IntrospectionInputObjectType,
-  IntrospectionTypeRef,
-  IntrospectionInputTypeRef,
-  IntrospectionOutputTypeRef,
-  IntrospectionNamedTypeRef,
-  IntrospectionListTypeRef,
-  IntrospectionNonNullTypeRef,
-  IntrospectionField,
-  IntrospectionInputValue,
-  IntrospectionEnumValue,
-  IntrospectionDirective,
-} from './getIntrospectionQuery';
-
-// Gets the target Operation from a Document.
-export { getOperationAST } from './getOperationAST';
-
-// Gets the Type for the target Operation AST.
-export { getOperationRootType } from './getOperationRootType';
-
-// Convert a GraphQLSchema to an IntrospectionQuery.
-export { introspectionFromSchema } from './introspectionFromSchema';
-
-// Build a GraphQLSchema from an introspection result.
-export { buildClientSchema } from './buildClientSchema';
-
-// Build a GraphQLSchema from GraphQL Schema language.
-export { buildASTSchema, buildSchema } from './buildASTSchema';
-export type { BuildSchemaOptions } from './buildASTSchema';
-
-// Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST.
-export {
-  extendSchema,
-  // @deprecated: Get the description from a schema AST node and supports legacy
-  // syntax for specifying descriptions - will be removed in v16.
-  getDescription,
-} from './extendSchema';
-
-// Sort a GraphQLSchema.
-export { lexicographicSortSchema } from './lexicographicSortSchema';
-
-// Print a GraphQLSchema to GraphQL Schema language.
-export {
-  printSchema,
-  printType,
-  printIntrospectionSchema,
-} from './printSchema';
-
-// Create a GraphQLType from a GraphQL language AST.
-export { typeFromAST } from './typeFromAST';
-
-// Create a JavaScript value from a GraphQL language AST with a type.
-export { valueFromAST } from './valueFromAST';
-
-// Create a JavaScript value from a GraphQL language AST without a type.
-export { valueFromASTUntyped } from './valueFromASTUntyped';
-
-// Create a GraphQL language AST from a JavaScript value.
-export { astFromValue } from './astFromValue';
-
-// A helper to use within recursive-descent visitors which need to be aware of
-// the GraphQL type system.
-export { TypeInfo, visitWithTypeInfo } from './TypeInfo';
-
-// Coerces a JavaScript value to a GraphQL type, or produces errors.
-export { coerceInputValue } from './coerceInputValue';
-
-// Concatenates multiple AST together.
-export { concatAST } from './concatAST';
-
-// Separates an AST into an AST per Operation.
-export { separateOperations } from './separateOperations';
-
-// Strips characters that are not significant to the validity or execution
-// of a GraphQL document.
-export { stripIgnoredCharacters } from './stripIgnoredCharacters';
-
-// Comparators for types
-export {
-  isEqualType,
-  isTypeSubTypeOf,
-  doTypesOverlap,
-} from './typeComparators';
-
-// Asserts that a string is a valid GraphQL name
-export { assertValidName, isValidNameError } from './assertValidName';
-
-// Compares two GraphQLSchemas and detects breaking changes.
-export {
-  BreakingChangeType,
-  DangerousChangeType,
-  findBreakingChanges,
-  findDangerousChanges,
-} from './findBreakingChanges';
-export type { BreakingChange, DangerousChange } from './findBreakingChanges';
-
-// Report all deprecated usage within a GraphQL document.
-export { findDeprecatedUsages } from './findDeprecatedUsages';
diff --git a/node_modules/graphql/utilities/index.mjs b/node_modules/graphql/utilities/index.mjs
deleted file mode 100644
index 5e4ebde..0000000
--- a/node_modules/graphql/utilities/index.mjs
+++ /dev/null
@@ -1,49 +0,0 @@
-// Produce the GraphQL query recommended for a full schema introspection.
-// Accepts optional IntrospectionOptions.
-export { getIntrospectionQuery } from "./getIntrospectionQuery.mjs";
-// Gets the target Operation from a Document.
-export { getOperationAST } from "./getOperationAST.mjs"; // Gets the Type for the target Operation AST.
-
-export { getOperationRootType } from "./getOperationRootType.mjs"; // Convert a GraphQLSchema to an IntrospectionQuery.
-
-export { introspectionFromSchema } from "./introspectionFromSchema.mjs"; // Build a GraphQLSchema from an introspection result.
-
-export { buildClientSchema } from "./buildClientSchema.mjs"; // Build a GraphQLSchema from GraphQL Schema language.
-
-export { buildASTSchema, buildSchema } from "./buildASTSchema.mjs";
-// Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST.
-export { extendSchema // @deprecated: Get the description from a schema AST node and supports legacy
-// syntax for specifying descriptions - will be removed in v16.
-, getDescription } from "./extendSchema.mjs"; // Sort a GraphQLSchema.
-
-export { lexicographicSortSchema } from "./lexicographicSortSchema.mjs"; // Print a GraphQLSchema to GraphQL Schema language.
-
-export { printSchema, printType, printIntrospectionSchema } from "./printSchema.mjs"; // Create a GraphQLType from a GraphQL language AST.
-
-export { typeFromAST } from "./typeFromAST.mjs"; // Create a JavaScript value from a GraphQL language AST with a type.
-
-export { valueFromAST } from "./valueFromAST.mjs"; // Create a JavaScript value from a GraphQL language AST without a type.
-
-export { valueFromASTUntyped } from "./valueFromASTUntyped.mjs"; // Create a GraphQL language AST from a JavaScript value.
-
-export { astFromValue } from "./astFromValue.mjs"; // A helper to use within recursive-descent visitors which need to be aware of
-// the GraphQL type system.
-
-export { TypeInfo, visitWithTypeInfo } from "./TypeInfo.mjs"; // Coerces a JavaScript value to a GraphQL type, or produces errors.
-
-export { coerceInputValue } from "./coerceInputValue.mjs"; // Concatenates multiple AST together.
-
-export { concatAST } from "./concatAST.mjs"; // Separates an AST into an AST per Operation.
-
-export { separateOperations } from "./separateOperations.mjs"; // Strips characters that are not significant to the validity or execution
-// of a GraphQL document.
-
-export { stripIgnoredCharacters } from "./stripIgnoredCharacters.mjs"; // Comparators for types
-
-export { isEqualType, isTypeSubTypeOf, doTypesOverlap } from "./typeComparators.mjs"; // Asserts that a string is a valid GraphQL name
-
-export { assertValidName, isValidNameError } from "./assertValidName.mjs"; // Compares two GraphQLSchemas and detects breaking changes.
-
-export { BreakingChangeType, DangerousChangeType, findBreakingChanges, findDangerousChanges } from "./findBreakingChanges.mjs";
-// Report all deprecated usage within a GraphQL document.
-export { findDeprecatedUsages } from "./findDeprecatedUsages.mjs";
diff --git a/node_modules/graphql/utilities/introspectionFromSchema.d.ts b/node_modules/graphql/utilities/introspectionFromSchema.d.ts
deleted file mode 100644
index ed9abf1..0000000
--- a/node_modules/graphql/utilities/introspectionFromSchema.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLSchema } from '../type/schema';
-
-import {
-  IntrospectionQuery,
-  IntrospectionOptions,
-} from './getIntrospectionQuery';
-
-/**
- * Build an IntrospectionQuery from a GraphQLSchema
- *
- * IntrospectionQuery is useful for utilities that care about type and field
- * relationships, but do not need to traverse through those relationships.
- *
- * This is the inverse of buildClientSchema. The primary use case is outside
- * of the server context, for instance when doing schema comparisons.
- */
-export function introspectionFromSchema(
-  schema: GraphQLSchema,
-  options?: IntrospectionOptions,
-): IntrospectionQuery;
diff --git a/node_modules/graphql/utilities/introspectionFromSchema.js b/node_modules/graphql/utilities/introspectionFromSchema.js
deleted file mode 100644
index b352225..0000000
--- a/node_modules/graphql/utilities/introspectionFromSchema.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.introspectionFromSchema = introspectionFromSchema;
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _isPromise = _interopRequireDefault(require("../jsutils/isPromise"));
-
-var _parser = require("../language/parser");
-
-var _execute = require("../execution/execute");
-
-var _getIntrospectionQuery = require("./getIntrospectionQuery");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Build an IntrospectionQuery from a GraphQLSchema
- *
- * IntrospectionQuery is useful for utilities that care about type and field
- * relationships, but do not need to traverse through those relationships.
- *
- * This is the inverse of buildClientSchema. The primary use case is outside
- * of the server context, for instance when doing schema comparisons.
- */
-function introspectionFromSchema(schema, options) {
-  var optionsWithDefaults = _objectSpread({
-    directiveIsRepeatable: true,
-    schemaDescription: true
-  }, options);
-
-  var document = (0, _parser.parse)((0, _getIntrospectionQuery.getIntrospectionQuery)(optionsWithDefaults));
-  var result = (0, _execute.execute)({
-    schema: schema,
-    document: document
-  });
-
-  /* istanbul ignore next */
-  !(0, _isPromise.default)(result) && !result.errors && result.data || (0, _invariant.default)(0);
-  return result.data;
-}
diff --git a/node_modules/graphql/utilities/introspectionFromSchema.js.flow b/node_modules/graphql/utilities/introspectionFromSchema.js.flow
deleted file mode 100644
index 7fe8dd6..0000000
--- a/node_modules/graphql/utilities/introspectionFromSchema.js.flow
+++ /dev/null
@@ -1,39 +0,0 @@
-// @flow strict
-
-import invariant from '../jsutils/invariant';
-import isPromise from '../jsutils/isPromise';
-
-import { parse } from '../language/parser';
-import { execute } from '../execution/execute';
-import { type GraphQLSchema } from '../type/schema';
-
-import {
-  type IntrospectionQuery,
-  type IntrospectionOptions,
-  getIntrospectionQuery,
-} from './getIntrospectionQuery';
-
-/**
- * Build an IntrospectionQuery from a GraphQLSchema
- *
- * IntrospectionQuery is useful for utilities that care about type and field
- * relationships, but do not need to traverse through those relationships.
- *
- * This is the inverse of buildClientSchema. The primary use case is outside
- * of the server context, for instance when doing schema comparisons.
- */
-export function introspectionFromSchema(
-  schema: GraphQLSchema,
-  options?: IntrospectionOptions,
-): IntrospectionQuery {
-  const optionsWithDefaults = {
-    directiveIsRepeatable: true,
-    schemaDescription: true,
-    ...options,
-  };
-
-  const document = parse(getIntrospectionQuery(optionsWithDefaults));
-  const result = execute({ schema, document });
-  invariant(!isPromise(result) && !result.errors && result.data);
-  return (result.data: any);
-}
diff --git a/node_modules/graphql/utilities/introspectionFromSchema.mjs b/node_modules/graphql/utilities/introspectionFromSchema.mjs
deleted file mode 100644
index 75f85b5..0000000
--- a/node_modules/graphql/utilities/introspectionFromSchema.mjs
+++ /dev/null
@@ -1,37 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import invariant from "../jsutils/invariant.mjs";
-import isPromise from "../jsutils/isPromise.mjs";
-import { parse } from "../language/parser.mjs";
-import { execute } from "../execution/execute.mjs";
-import { getIntrospectionQuery } from "./getIntrospectionQuery.mjs";
-/**
- * Build an IntrospectionQuery from a GraphQLSchema
- *
- * IntrospectionQuery is useful for utilities that care about type and field
- * relationships, but do not need to traverse through those relationships.
- *
- * This is the inverse of buildClientSchema. The primary use case is outside
- * of the server context, for instance when doing schema comparisons.
- */
-
-export function introspectionFromSchema(schema, options) {
-  var optionsWithDefaults = _objectSpread({
-    directiveIsRepeatable: true,
-    schemaDescription: true
-  }, options);
-
-  var document = parse(getIntrospectionQuery(optionsWithDefaults));
-  var result = execute({
-    schema: schema,
-    document: document
-  });
-
-  /* istanbul ignore next */
-  !isPromise(result) && !result.errors && result.data || invariant(0);
-  return result.data;
-}
diff --git a/node_modules/graphql/utilities/lexicographicSortSchema.d.ts b/node_modules/graphql/utilities/lexicographicSortSchema.d.ts
deleted file mode 100644
index 7dfde70..0000000
--- a/node_modules/graphql/utilities/lexicographicSortSchema.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { GraphQLSchema } from '../type/schema';
-
-/**
- * Sort GraphQLSchema.
- *
- * This function returns a sorted copy of the given GraphQLSchema.
- */
-export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema;
diff --git a/node_modules/graphql/utilities/lexicographicSortSchema.js b/node_modules/graphql/utilities/lexicographicSortSchema.js
deleted file mode 100644
index 3d034bf..0000000
--- a/node_modules/graphql/utilities/lexicographicSortSchema.js
+++ /dev/null
@@ -1,199 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.lexicographicSortSchema = lexicographicSortSchema;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
-
-var _schema = require("../type/schema");
-
-var _directives = require("../type/directives");
-
-var _introspection = require("../type/introspection");
-
-var _definition = require("../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Sort GraphQLSchema.
- *
- * This function returns a sorted copy of the given GraphQLSchema.
- */
-function lexicographicSortSchema(schema) {
-  var schemaConfig = schema.toConfig();
-  var typeMap = (0, _keyValMap.default)(sortByName(schemaConfig.types), function (type) {
-    return type.name;
-  }, sortNamedType);
-  return new _schema.GraphQLSchema(_objectSpread({}, schemaConfig, {
-    types: (0, _objectValues.default)(typeMap),
-    directives: sortByName(schemaConfig.directives).map(sortDirective),
-    query: replaceMaybeType(schemaConfig.query),
-    mutation: replaceMaybeType(schemaConfig.mutation),
-    subscription: replaceMaybeType(schemaConfig.subscription)
-  }));
-
-  function replaceType(type) {
-    if ((0, _definition.isListType)(type)) {
-      return new _definition.GraphQLList(replaceType(type.ofType));
-    } else if ((0, _definition.isNonNullType)(type)) {
-      return new _definition.GraphQLNonNull(replaceType(type.ofType));
-    }
-
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType(type) {
-    return typeMap[type.name];
-  }
-
-  function replaceMaybeType(maybeType) {
-    return maybeType && replaceNamedType(maybeType);
-  }
-
-  function sortDirective(directive) {
-    var config = directive.toConfig();
-    return new _directives.GraphQLDirective(_objectSpread({}, config, {
-      locations: sortBy(config.locations, function (x) {
-        return x;
-      }),
-      args: sortArgs(config.args)
-    }));
-  }
-
-  function sortArgs(args) {
-    return sortObjMap(args, function (arg) {
-      return _objectSpread({}, arg, {
-        type: replaceType(arg.type)
-      });
-    });
-  }
-
-  function sortFields(fieldsMap) {
-    return sortObjMap(fieldsMap, function (field) {
-      return _objectSpread({}, field, {
-        type: replaceType(field.type),
-        args: sortArgs(field.args)
-      });
-    });
-  }
-
-  function sortInputFields(fieldsMap) {
-    return sortObjMap(fieldsMap, function (field) {
-      return _objectSpread({}, field, {
-        type: replaceType(field.type)
-      });
-    });
-  }
-
-  function sortTypes(arr) {
-    return sortByName(arr).map(replaceNamedType);
-  }
-
-  function sortNamedType(type) {
-    if ((0, _definition.isScalarType)(type) || (0, _introspection.isIntrospectionType)(type)) {
-      return type;
-    }
-
-    if ((0, _definition.isObjectType)(type)) {
-      var config = type.toConfig();
-      return new _definition.GraphQLObjectType(_objectSpread({}, config, {
-        interfaces: function interfaces() {
-          return sortTypes(config.interfaces);
-        },
-        fields: function fields() {
-          return sortFields(config.fields);
-        }
-      }));
-    }
-
-    if ((0, _definition.isInterfaceType)(type)) {
-      var _config = type.toConfig();
-
-      return new _definition.GraphQLInterfaceType(_objectSpread({}, _config, {
-        interfaces: function interfaces() {
-          return sortTypes(_config.interfaces);
-        },
-        fields: function fields() {
-          return sortFields(_config.fields);
-        }
-      }));
-    }
-
-    if ((0, _definition.isUnionType)(type)) {
-      var _config2 = type.toConfig();
-
-      return new _definition.GraphQLUnionType(_objectSpread({}, _config2, {
-        types: function types() {
-          return sortTypes(_config2.types);
-        }
-      }));
-    }
-
-    if ((0, _definition.isEnumType)(type)) {
-      var _config3 = type.toConfig();
-
-      return new _definition.GraphQLEnumType(_objectSpread({}, _config3, {
-        values: sortObjMap(_config3.values)
-      }));
-    }
-
-    /* istanbul ignore else */
-    if ((0, _definition.isInputObjectType)(type)) {
-      var _config4 = type.toConfig();
-
-      return new _definition.GraphQLInputObjectType(_objectSpread({}, _config4, {
-        fields: function fields() {
-          return sortInputFields(_config4.fields);
-        }
-      }));
-    } // Not reachable. All possible types have been considered.
-
-
-    /* istanbul ignore next */
-    (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));
-  }
-}
-
-function sortObjMap(map, sortValueFn) {
-  var sortedMap = Object.create(null);
-  var sortedKeys = sortBy(Object.keys(map), function (x) {
-    return x;
-  });
-
-  for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {
-    var key = sortedKeys[_i2];
-    var value = map[key];
-    sortedMap[key] = sortValueFn ? sortValueFn(value) : value;
-  }
-
-  return sortedMap;
-}
-
-function sortByName(array) {
-  return sortBy(array, function (obj) {
-    return obj.name;
-  });
-}
-
-function sortBy(array, mapToKey) {
-  return array.slice().sort(function (obj1, obj2) {
-    var key1 = mapToKey(obj1);
-    var key2 = mapToKey(obj2);
-    return key1.localeCompare(key2);
-  });
-}
diff --git a/node_modules/graphql/utilities/lexicographicSortSchema.js.flow b/node_modules/graphql/utilities/lexicographicSortSchema.js.flow
deleted file mode 100644
index c9b932f..0000000
--- a/node_modules/graphql/utilities/lexicographicSortSchema.js.flow
+++ /dev/null
@@ -1,175 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-import keyValMap from '../jsutils/keyValMap';
-import { type ObjMap } from '../jsutils/ObjMap';
-
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLDirective } from '../type/directives';
-import { isIntrospectionType } from '../type/introspection';
-import {
-  type GraphQLNamedType,
-  GraphQLObjectType,
-  GraphQLInterfaceType,
-  GraphQLUnionType,
-  GraphQLEnumType,
-  GraphQLInputObjectType,
-  GraphQLList,
-  GraphQLNonNull,
-  isListType,
-  isNonNullType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-} from '../type/definition';
-
-/**
- * Sort GraphQLSchema.
- *
- * This function returns a sorted copy of the given GraphQLSchema.
- */
-export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
-  const schemaConfig = schema.toConfig();
-  const typeMap = keyValMap(
-    sortByName(schemaConfig.types),
-    type => type.name,
-    sortNamedType,
-  );
-
-  return new GraphQLSchema({
-    ...schemaConfig,
-    types: objectValues(typeMap),
-    directives: sortByName(schemaConfig.directives).map(sortDirective),
-    query: replaceMaybeType(schemaConfig.query),
-    mutation: replaceMaybeType(schemaConfig.mutation),
-    subscription: replaceMaybeType(schemaConfig.subscription),
-  });
-
-  function replaceType(type) {
-    if (isListType(type)) {
-      return new GraphQLList(replaceType(type.ofType));
-    } else if (isNonNullType(type)) {
-      return new GraphQLNonNull(replaceType(type.ofType));
-    }
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType<T: GraphQLNamedType>(type: T): T {
-    return ((typeMap[type.name]: any): T);
-  }
-
-  function replaceMaybeType(maybeType) {
-    return maybeType && replaceNamedType(maybeType);
-  }
-
-  function sortDirective(directive) {
-    const config = directive.toConfig();
-    return new GraphQLDirective({
-      ...config,
-      locations: sortBy(config.locations, x => x),
-      args: sortArgs(config.args),
-    });
-  }
-
-  function sortArgs(args) {
-    return sortObjMap(args, arg => ({
-      ...arg,
-      type: replaceType(arg.type),
-    }));
-  }
-
-  function sortFields(fieldsMap) {
-    return sortObjMap(fieldsMap, field => ({
-      ...field,
-      type: replaceType(field.type),
-      args: sortArgs(field.args),
-    }));
-  }
-
-  function sortInputFields(fieldsMap) {
-    return sortObjMap(fieldsMap, field => ({
-      ...field,
-      type: replaceType(field.type),
-    }));
-  }
-
-  function sortTypes<T: GraphQLNamedType>(arr: $ReadOnlyArray<T>): Array<T> {
-    return sortByName(arr).map(replaceNamedType);
-  }
-
-  function sortNamedType(type) {
-    if (isScalarType(type) || isIntrospectionType(type)) {
-      return type;
-    }
-    if (isObjectType(type)) {
-      const config = type.toConfig();
-      return new GraphQLObjectType({
-        ...config,
-        interfaces: () => sortTypes(config.interfaces),
-        fields: () => sortFields(config.fields),
-      });
-    }
-    if (isInterfaceType(type)) {
-      const config = type.toConfig();
-      return new GraphQLInterfaceType({
-        ...config,
-        interfaces: () => sortTypes(config.interfaces),
-        fields: () => sortFields(config.fields),
-      });
-    }
-    if (isUnionType(type)) {
-      const config = type.toConfig();
-      return new GraphQLUnionType({
-        ...config,
-        types: () => sortTypes(config.types),
-      });
-    }
-    if (isEnumType(type)) {
-      const config = type.toConfig();
-      return new GraphQLEnumType({
-        ...config,
-        values: sortObjMap(config.values),
-      });
-    }
-    if (isInputObjectType(type)) {
-      const config = type.toConfig();
-      return new GraphQLInputObjectType({
-        ...config,
-        fields: () => sortInputFields(config.fields),
-      });
-    }
-
-    // Not reachable. All possible types have been considered.
-    invariant(false, 'Unexpected type: ' + inspect((type: empty)));
-  }
-}
-
-function sortObjMap<T, R>(map: ObjMap<T>, sortValueFn?: T => R): ObjMap<R> {
-  const sortedMap = Object.create(null);
-  const sortedKeys = sortBy(Object.keys(map), x => x);
-  for (const key of sortedKeys) {
-    const value = map[key];
-    sortedMap[key] = sortValueFn ? sortValueFn(value) : value;
-  }
-  return sortedMap;
-}
-
-function sortByName<T: { +name: string, ... }>(
-  array: $ReadOnlyArray<T>,
-): Array<T> {
-  return sortBy(array, obj => obj.name);
-}
-
-function sortBy<T>(array: $ReadOnlyArray<T>, mapToKey: T => string): Array<T> {
-  return array.slice().sort((obj1, obj2) => {
-    const key1 = mapToKey(obj1);
-    const key2 = mapToKey(obj2);
-    return key1.localeCompare(key2);
-  });
-}
diff --git a/node_modules/graphql/utilities/lexicographicSortSchema.mjs b/node_modules/graphql/utilities/lexicographicSortSchema.mjs
deleted file mode 100644
index 5a51c92..0000000
--- a/node_modules/graphql/utilities/lexicographicSortSchema.mjs
+++ /dev/null
@@ -1,183 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import keyValMap from "../jsutils/keyValMap.mjs";
-import { GraphQLSchema } from "../type/schema.mjs";
-import { GraphQLDirective } from "../type/directives.mjs";
-import { isIntrospectionType } from "../type/introspection.mjs";
-import { GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, isListType, isNonNullType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from "../type/definition.mjs";
-/**
- * Sort GraphQLSchema.
- *
- * This function returns a sorted copy of the given GraphQLSchema.
- */
-
-export function lexicographicSortSchema(schema) {
-  var schemaConfig = schema.toConfig();
-  var typeMap = keyValMap(sortByName(schemaConfig.types), function (type) {
-    return type.name;
-  }, sortNamedType);
-  return new GraphQLSchema(_objectSpread({}, schemaConfig, {
-    types: objectValues(typeMap),
-    directives: sortByName(schemaConfig.directives).map(sortDirective),
-    query: replaceMaybeType(schemaConfig.query),
-    mutation: replaceMaybeType(schemaConfig.mutation),
-    subscription: replaceMaybeType(schemaConfig.subscription)
-  }));
-
-  function replaceType(type) {
-    if (isListType(type)) {
-      return new GraphQLList(replaceType(type.ofType));
-    } else if (isNonNullType(type)) {
-      return new GraphQLNonNull(replaceType(type.ofType));
-    }
-
-    return replaceNamedType(type);
-  }
-
-  function replaceNamedType(type) {
-    return typeMap[type.name];
-  }
-
-  function replaceMaybeType(maybeType) {
-    return maybeType && replaceNamedType(maybeType);
-  }
-
-  function sortDirective(directive) {
-    var config = directive.toConfig();
-    return new GraphQLDirective(_objectSpread({}, config, {
-      locations: sortBy(config.locations, function (x) {
-        return x;
-      }),
-      args: sortArgs(config.args)
-    }));
-  }
-
-  function sortArgs(args) {
-    return sortObjMap(args, function (arg) {
-      return _objectSpread({}, arg, {
-        type: replaceType(arg.type)
-      });
-    });
-  }
-
-  function sortFields(fieldsMap) {
-    return sortObjMap(fieldsMap, function (field) {
-      return _objectSpread({}, field, {
-        type: replaceType(field.type),
-        args: sortArgs(field.args)
-      });
-    });
-  }
-
-  function sortInputFields(fieldsMap) {
-    return sortObjMap(fieldsMap, function (field) {
-      return _objectSpread({}, field, {
-        type: replaceType(field.type)
-      });
-    });
-  }
-
-  function sortTypes(arr) {
-    return sortByName(arr).map(replaceNamedType);
-  }
-
-  function sortNamedType(type) {
-    if (isScalarType(type) || isIntrospectionType(type)) {
-      return type;
-    }
-
-    if (isObjectType(type)) {
-      var config = type.toConfig();
-      return new GraphQLObjectType(_objectSpread({}, config, {
-        interfaces: function interfaces() {
-          return sortTypes(config.interfaces);
-        },
-        fields: function fields() {
-          return sortFields(config.fields);
-        }
-      }));
-    }
-
-    if (isInterfaceType(type)) {
-      var _config = type.toConfig();
-
-      return new GraphQLInterfaceType(_objectSpread({}, _config, {
-        interfaces: function interfaces() {
-          return sortTypes(_config.interfaces);
-        },
-        fields: function fields() {
-          return sortFields(_config.fields);
-        }
-      }));
-    }
-
-    if (isUnionType(type)) {
-      var _config2 = type.toConfig();
-
-      return new GraphQLUnionType(_objectSpread({}, _config2, {
-        types: function types() {
-          return sortTypes(_config2.types);
-        }
-      }));
-    }
-
-    if (isEnumType(type)) {
-      var _config3 = type.toConfig();
-
-      return new GraphQLEnumType(_objectSpread({}, _config3, {
-        values: sortObjMap(_config3.values)
-      }));
-    }
-
-    /* istanbul ignore else */
-    if (isInputObjectType(type)) {
-      var _config4 = type.toConfig();
-
-      return new GraphQLInputObjectType(_objectSpread({}, _config4, {
-        fields: function fields() {
-          return sortInputFields(_config4.fields);
-        }
-      }));
-    } // Not reachable. All possible types have been considered.
-
-
-    /* istanbul ignore next */
-    invariant(false, 'Unexpected type: ' + inspect(type));
-  }
-}
-
-function sortObjMap(map, sortValueFn) {
-  var sortedMap = Object.create(null);
-  var sortedKeys = sortBy(Object.keys(map), function (x) {
-    return x;
-  });
-
-  for (var _i2 = 0; _i2 < sortedKeys.length; _i2++) {
-    var key = sortedKeys[_i2];
-    var value = map[key];
-    sortedMap[key] = sortValueFn ? sortValueFn(value) : value;
-  }
-
-  return sortedMap;
-}
-
-function sortByName(array) {
-  return sortBy(array, function (obj) {
-    return obj.name;
-  });
-}
-
-function sortBy(array, mapToKey) {
-  return array.slice().sort(function (obj1, obj2) {
-    var key1 = mapToKey(obj1);
-    var key2 = mapToKey(obj2);
-    return key1.localeCompare(key2);
-  });
-}
diff --git a/node_modules/graphql/utilities/printSchema.d.ts b/node_modules/graphql/utilities/printSchema.d.ts
deleted file mode 100644
index 1417ee5..0000000
--- a/node_modules/graphql/utilities/printSchema.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLNamedType } from '../type/definition';
-
-export interface Options {
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean;
-}
-
-/**
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function printSchema(schema: GraphQLSchema, options?: Options): string;
-
-export function printIntrospectionSchema(
-  schema: GraphQLSchema,
-  options?: Options,
-): string;
-
-export function printType(type: GraphQLNamedType, options?: Options): string;
diff --git a/node_modules/graphql/utilities/printSchema.js b/node_modules/graphql/utilities/printSchema.js
deleted file mode 100644
index 3351975..0000000
--- a/node_modules/graphql/utilities/printSchema.js
+++ /dev/null
@@ -1,280 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.printSchema = printSchema;
-exports.printIntrospectionSchema = printIntrospectionSchema;
-exports.printType = printType;
-
-var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _printer = require("../language/printer");
-
-var _blockString = require("../language/blockString");
-
-var _introspection = require("../type/introspection");
-
-var _scalars = require("../type/scalars");
-
-var _directives = require("../type/directives");
-
-var _definition = require("../type/definition");
-
-var _astFromValue = require("./astFromValue");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-function printSchema(schema, options) {
-  return printFilteredSchema(schema, function (n) {
-    return !(0, _directives.isSpecifiedDirective)(n);
-  }, isDefinedType, options);
-}
-
-function printIntrospectionSchema(schema, options) {
-  return printFilteredSchema(schema, _directives.isSpecifiedDirective, _introspection.isIntrospectionType, options);
-}
-
-function isDefinedType(type) {
-  return !(0, _scalars.isSpecifiedScalarType)(type) && !(0, _introspection.isIntrospectionType)(type);
-}
-
-function printFilteredSchema(schema, directiveFilter, typeFilter, options) {
-  var directives = schema.getDirectives().filter(directiveFilter);
-  var types = (0, _objectValues.default)(schema.getTypeMap()).filter(typeFilter);
-  return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {
-    return printDirective(directive, options);
-  }), types.map(function (type) {
-    return printType(type, options);
-  })).filter(Boolean).join('\n\n') + '\n';
-}
-
-function printSchemaDefinition(schema) {
-  if (schema.description == null && isSchemaOfCommonNames(schema)) {
-    return;
-  }
-
-  var operationTypes = [];
-  var queryType = schema.getQueryType();
-
-  if (queryType) {
-    operationTypes.push("  query: ".concat(queryType.name));
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType) {
-    operationTypes.push("  mutation: ".concat(mutationType.name));
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType) {
-    operationTypes.push("  subscription: ".concat(subscriptionType.name));
-  }
-
-  return printDescription({}, schema) + "schema {\n".concat(operationTypes.join('\n'), "\n}");
-}
-/**
- * GraphQL schema define root types for each type of operation. These types are
- * the same as any other type and can be named in any manner, however there is
- * a common naming convention:
- *
- *   schema {
- *     query: Query
- *     mutation: Mutation
- *   }
- *
- * When using this naming convention, the schema description can be omitted.
- */
-
-
-function isSchemaOfCommonNames(schema) {
-  var queryType = schema.getQueryType();
-
-  if (queryType && queryType.name !== 'Query') {
-    return false;
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType && mutationType.name !== 'Mutation') {
-    return false;
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType && subscriptionType.name !== 'Subscription') {
-    return false;
-  }
-
-  return true;
-}
-
-function printType(type, options) {
-  if ((0, _definition.isScalarType)(type)) {
-    return printScalar(type, options);
-  }
-
-  if ((0, _definition.isObjectType)(type)) {
-    return printObject(type, options);
-  }
-
-  if ((0, _definition.isInterfaceType)(type)) {
-    return printInterface(type, options);
-  }
-
-  if ((0, _definition.isUnionType)(type)) {
-    return printUnion(type, options);
-  }
-
-  if ((0, _definition.isEnumType)(type)) {
-    return printEnum(type, options);
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isInputObjectType)(type)) {
-    return printInputObject(type, options);
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));
-}
-
-function printScalar(type, options) {
-  return printDescription(options, type) + "scalar ".concat(type.name);
-}
-
-function printImplementedInterfaces(type) {
-  var interfaces = type.getInterfaces();
-  return interfaces.length ? ' implements ' + interfaces.map(function (i) {
-    return i.name;
-  }).join(' & ') : '';
-}
-
-function printObject(type, options) {
-  return printDescription(options, type) + "type ".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);
-}
-
-function printInterface(type, options) {
-  return printDescription(options, type) + "interface ".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);
-}
-
-function printUnion(type, options) {
-  var types = type.getTypes();
-  var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
-  return printDescription(options, type) + 'union ' + type.name + possibleTypes;
-}
-
-function printEnum(type, options) {
-  var values = type.getValues().map(function (value, i) {
-    return printDescription(options, value, '  ', !i) + '  ' + value.name + printDeprecated(value);
-  });
-  return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
-}
-
-function printInputObject(type, options) {
-  var fields = (0, _objectValues.default)(type.getFields()).map(function (f, i) {
-    return printDescription(options, f, '  ', !i) + '  ' + printInputValue(f);
-  });
-  return printDescription(options, type) + "input ".concat(type.name) + printBlock(fields);
-}
-
-function printFields(options, type) {
-  var fields = (0, _objectValues.default)(type.getFields()).map(function (f, i) {
-    return printDescription(options, f, '  ', !i) + '  ' + f.name + printArgs(options, f.args, '  ') + ': ' + String(f.type) + printDeprecated(f);
-  });
-  return printBlock(fields);
-}
-
-function printBlock(items) {
-  return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
-}
-
-function printArgs(options, args) {
-  var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-
-  if (args.length === 0) {
-    return '';
-  } // If every arg does not have a description, print them on one line.
-
-
-  if (args.every(function (arg) {
-    return !arg.description;
-  })) {
-    return '(' + args.map(printInputValue).join(', ') + ')';
-  }
-
-  return '(\n' + args.map(function (arg, i) {
-    return printDescription(options, arg, '  ' + indentation, !i) + '  ' + indentation + printInputValue(arg);
-  }).join('\n') + '\n' + indentation + ')';
-}
-
-function printInputValue(arg) {
-  var defaultAST = (0, _astFromValue.astFromValue)(arg.defaultValue, arg.type);
-  var argDecl = arg.name + ': ' + String(arg.type);
-
-  if (defaultAST) {
-    argDecl += " = ".concat((0, _printer.print)(defaultAST));
-  }
-
-  return argDecl;
-}
-
-function printDirective(directive, options) {
-  return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');
-}
-
-function printDeprecated(fieldOrEnumVal) {
-  if (!fieldOrEnumVal.isDeprecated) {
-    return '';
-  }
-
-  var reason = fieldOrEnumVal.deprecationReason;
-  var reasonAST = (0, _astFromValue.astFromValue)(reason, _scalars.GraphQLString);
-
-  if (reasonAST && reason !== _directives.DEFAULT_DEPRECATION_REASON) {
-    return ' @deprecated(reason: ' + (0, _printer.print)(reasonAST) + ')';
-  }
-
-  return ' @deprecated';
-}
-
-function printDescription(options, def) {
-  var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-  var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
-  var description = def.description;
-
-  if (description == null) {
-    return '';
-  }
-
-  if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {
-    return printDescriptionWithComments(description, indentation, firstInBlock);
-  }
-
-  var preferMultipleLines = description.length > 70;
-  var blockString = (0, _blockString.printBlockString)(description, '', preferMultipleLines);
-  var prefix = indentation && !firstInBlock ? '\n' + indentation : indentation;
-  return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
-}
-
-function printDescriptionWithComments(description, indentation, firstInBlock) {
-  var prefix = indentation && !firstInBlock ? '\n' : '';
-  var comment = description.split('\n').map(function (line) {
-    return indentation + (line !== '' ? '# ' + line : '#');
-  }).join('\n');
-  return prefix + comment + '\n';
-}
diff --git a/node_modules/graphql/utilities/printSchema.js.flow b/node_modules/graphql/utilities/printSchema.js.flow
deleted file mode 100644
index 674d5b2..0000000
--- a/node_modules/graphql/utilities/printSchema.js.flow
+++ /dev/null
@@ -1,355 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-
-import { print } from '../language/printer';
-import { printBlockString } from '../language/blockString';
-
-import { type GraphQLSchema } from '../type/schema';
-import { isIntrospectionType } from '../type/introspection';
-import { GraphQLString, isSpecifiedScalarType } from '../type/scalars';
-import {
-  GraphQLDirective,
-  DEFAULT_DEPRECATION_REASON,
-  isSpecifiedDirective,
-} from '../type/directives';
-import {
-  type GraphQLNamedType,
-  type GraphQLScalarType,
-  type GraphQLEnumType,
-  type GraphQLObjectType,
-  type GraphQLInterfaceType,
-  type GraphQLUnionType,
-  type GraphQLInputObjectType,
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-} from '../type/definition';
-
-import { astFromValue } from './astFromValue';
-
-type Options = {|
-  /**
-   * Descriptions are defined as preceding string literals, however an older
-   * experimental version of the SDL supported preceding comments as
-   * descriptions. Set to true to enable this deprecated behavior.
-   * This option is provided to ease adoption and will be removed in v16.
-   *
-   * Default: false
-   */
-  commentDescriptions?: boolean,
-|};
-
-/**
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function printSchema(schema: GraphQLSchema, options?: Options): string {
-  return printFilteredSchema(
-    schema,
-    n => !isSpecifiedDirective(n),
-    isDefinedType,
-    options,
-  );
-}
-
-export function printIntrospectionSchema(
-  schema: GraphQLSchema,
-  options?: Options,
-): string {
-  return printFilteredSchema(
-    schema,
-    isSpecifiedDirective,
-    isIntrospectionType,
-    options,
-  );
-}
-
-function isDefinedType(type: GraphQLNamedType): boolean {
-  return !isSpecifiedScalarType(type) && !isIntrospectionType(type);
-}
-
-function printFilteredSchema(
-  schema: GraphQLSchema,
-  directiveFilter: (type: GraphQLDirective) => boolean,
-  typeFilter: (type: GraphQLNamedType) => boolean,
-  options,
-): string {
-  const directives = schema.getDirectives().filter(directiveFilter);
-  const types = objectValues(schema.getTypeMap()).filter(typeFilter);
-
-  return (
-    [printSchemaDefinition(schema)]
-      .concat(
-        directives.map(directive => printDirective(directive, options)),
-        types.map(type => printType(type, options)),
-      )
-      .filter(Boolean)
-      .join('\n\n') + '\n'
-  );
-}
-
-function printSchemaDefinition(schema: GraphQLSchema): ?string {
-  if (schema.description == null && isSchemaOfCommonNames(schema)) {
-    return;
-  }
-
-  const operationTypes = [];
-
-  const queryType = schema.getQueryType();
-  if (queryType) {
-    operationTypes.push(`  query: ${queryType.name}`);
-  }
-
-  const mutationType = schema.getMutationType();
-  if (mutationType) {
-    operationTypes.push(`  mutation: ${mutationType.name}`);
-  }
-
-  const subscriptionType = schema.getSubscriptionType();
-  if (subscriptionType) {
-    operationTypes.push(`  subscription: ${subscriptionType.name}`);
-  }
-
-  return (
-    printDescription({}, schema) + `schema {\n${operationTypes.join('\n')}\n}`
-  );
-}
-
-/**
- * GraphQL schema define root types for each type of operation. These types are
- * the same as any other type and can be named in any manner, however there is
- * a common naming convention:
- *
- *   schema {
- *     query: Query
- *     mutation: Mutation
- *   }
- *
- * When using this naming convention, the schema description can be omitted.
- */
-function isSchemaOfCommonNames(schema: GraphQLSchema): boolean {
-  const queryType = schema.getQueryType();
-  if (queryType && queryType.name !== 'Query') {
-    return false;
-  }
-
-  const mutationType = schema.getMutationType();
-  if (mutationType && mutationType.name !== 'Mutation') {
-    return false;
-  }
-
-  const subscriptionType = schema.getSubscriptionType();
-  if (subscriptionType && subscriptionType.name !== 'Subscription') {
-    return false;
-  }
-
-  return true;
-}
-
-export function printType(type: GraphQLNamedType, options?: Options): string {
-  if (isScalarType(type)) {
-    return printScalar(type, options);
-  }
-  if (isObjectType(type)) {
-    return printObject(type, options);
-  }
-  if (isInterfaceType(type)) {
-    return printInterface(type, options);
-  }
-  if (isUnionType(type)) {
-    return printUnion(type, options);
-  }
-  if (isEnumType(type)) {
-    return printEnum(type, options);
-  }
-  if (isInputObjectType(type)) {
-    return printInputObject(type, options);
-  }
-
-  // Not reachable. All possible types have been considered.
-  invariant(false, 'Unexpected type: ' + inspect((type: empty)));
-}
-
-function printScalar(type: GraphQLScalarType, options): string {
-  return printDescription(options, type) + `scalar ${type.name}`;
-}
-
-function printImplementedInterfaces(
-  type: GraphQLObjectType | GraphQLInterfaceType,
-): string {
-  const interfaces = type.getInterfaces();
-  return interfaces.length
-    ? ' implements ' + interfaces.map(i => i.name).join(' & ')
-    : '';
-}
-
-function printObject(type: GraphQLObjectType, options): string {
-  return (
-    printDescription(options, type) +
-    `type ${type.name}` +
-    printImplementedInterfaces(type) +
-    printFields(options, type)
-  );
-}
-
-function printInterface(type: GraphQLInterfaceType, options): string {
-  return (
-    printDescription(options, type) +
-    `interface ${type.name}` +
-    printImplementedInterfaces(type) +
-    printFields(options, type)
-  );
-}
-
-function printUnion(type: GraphQLUnionType, options): string {
-  const types = type.getTypes();
-  const possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
-  return printDescription(options, type) + 'union ' + type.name + possibleTypes;
-}
-
-function printEnum(type: GraphQLEnumType, options): string {
-  const values = type
-    .getValues()
-    .map(
-      (value, i) =>
-        printDescription(options, value, '  ', !i) +
-        '  ' +
-        value.name +
-        printDeprecated(value),
-    );
-
-  return (
-    printDescription(options, type) + `enum ${type.name}` + printBlock(values)
-  );
-}
-
-function printInputObject(type: GraphQLInputObjectType, options): string {
-  const fields = objectValues(type.getFields()).map(
-    (f, i) =>
-      printDescription(options, f, '  ', !i) + '  ' + printInputValue(f),
-  );
-  return (
-    printDescription(options, type) + `input ${type.name}` + printBlock(fields)
-  );
-}
-
-function printFields(options, type) {
-  const fields = objectValues(type.getFields()).map(
-    (f, i) =>
-      printDescription(options, f, '  ', !i) +
-      '  ' +
-      f.name +
-      printArgs(options, f.args, '  ') +
-      ': ' +
-      String(f.type) +
-      printDeprecated(f),
-  );
-  return printBlock(fields);
-}
-
-function printBlock(items) {
-  return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
-}
-
-function printArgs(options, args, indentation = '') {
-  if (args.length === 0) {
-    return '';
-  }
-
-  // If every arg does not have a description, print them on one line.
-  if (args.every(arg => !arg.description)) {
-    return '(' + args.map(printInputValue).join(', ') + ')';
-  }
-
-  return (
-    '(\n' +
-    args
-      .map(
-        (arg, i) =>
-          printDescription(options, arg, '  ' + indentation, !i) +
-          '  ' +
-          indentation +
-          printInputValue(arg),
-      )
-      .join('\n') +
-    '\n' +
-    indentation +
-    ')'
-  );
-}
-
-function printInputValue(arg) {
-  const defaultAST = astFromValue(arg.defaultValue, arg.type);
-  let argDecl = arg.name + ': ' + String(arg.type);
-  if (defaultAST) {
-    argDecl += ` = ${print(defaultAST)}`;
-  }
-  return argDecl;
-}
-
-function printDirective(directive, options) {
-  return (
-    printDescription(options, directive) +
-    'directive @' +
-    directive.name +
-    printArgs(options, directive.args) +
-    (directive.isRepeatable ? ' repeatable' : '') +
-    ' on ' +
-    directive.locations.join(' | ')
-  );
-}
-
-function printDeprecated(fieldOrEnumVal) {
-  if (!fieldOrEnumVal.isDeprecated) {
-    return '';
-  }
-  const reason = fieldOrEnumVal.deprecationReason;
-  const reasonAST = astFromValue(reason, GraphQLString);
-  if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {
-    return ' @deprecated(reason: ' + print(reasonAST) + ')';
-  }
-  return ' @deprecated';
-}
-
-function printDescription(
-  options,
-  def,
-  indentation = '',
-  firstInBlock = true,
-): string {
-  const { description } = def;
-  if (description == null) {
-    return '';
-  }
-
-  if (options?.commentDescriptions === true) {
-    return printDescriptionWithComments(description, indentation, firstInBlock);
-  }
-
-  const preferMultipleLines = description.length > 70;
-  const blockString = printBlockString(description, '', preferMultipleLines);
-  const prefix =
-    indentation && !firstInBlock ? '\n' + indentation : indentation;
-
-  return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
-}
-
-function printDescriptionWithComments(description, indentation, firstInBlock) {
-  const prefix = indentation && !firstInBlock ? '\n' : '';
-  const comment = description
-    .split('\n')
-    .map(line => indentation + (line !== '' ? '# ' + line : '#'))
-    .join('\n');
-
-  return prefix + comment + '\n';
-}
diff --git a/node_modules/graphql/utilities/printSchema.mjs b/node_modules/graphql/utilities/printSchema.mjs
deleted file mode 100644
index 2a40720..0000000
--- a/node_modules/graphql/utilities/printSchema.mjs
+++ /dev/null
@@ -1,259 +0,0 @@
-import objectValues from "../polyfills/objectValues.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import { print } from "../language/printer.mjs";
-import { printBlockString } from "../language/blockString.mjs";
-import { isIntrospectionType } from "../type/introspection.mjs";
-import { GraphQLString, isSpecifiedScalarType } from "../type/scalars.mjs";
-import { GraphQLDirective, DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from "../type/directives.mjs";
-import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from "../type/definition.mjs";
-import { astFromValue } from "./astFromValue.mjs";
-
-/**
- * Accepts options as a second argument:
- *
- *    - commentDescriptions:
- *        Provide true to use preceding comments as the description.
- *
- */
-export function printSchema(schema, options) {
-  return printFilteredSchema(schema, function (n) {
-    return !isSpecifiedDirective(n);
-  }, isDefinedType, options);
-}
-export function printIntrospectionSchema(schema, options) {
-  return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType, options);
-}
-
-function isDefinedType(type) {
-  return !isSpecifiedScalarType(type) && !isIntrospectionType(type);
-}
-
-function printFilteredSchema(schema, directiveFilter, typeFilter, options) {
-  var directives = schema.getDirectives().filter(directiveFilter);
-  var types = objectValues(schema.getTypeMap()).filter(typeFilter);
-  return [printSchemaDefinition(schema)].concat(directives.map(function (directive) {
-    return printDirective(directive, options);
-  }), types.map(function (type) {
-    return printType(type, options);
-  })).filter(Boolean).join('\n\n') + '\n';
-}
-
-function printSchemaDefinition(schema) {
-  if (schema.description == null && isSchemaOfCommonNames(schema)) {
-    return;
-  }
-
-  var operationTypes = [];
-  var queryType = schema.getQueryType();
-
-  if (queryType) {
-    operationTypes.push("  query: ".concat(queryType.name));
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType) {
-    operationTypes.push("  mutation: ".concat(mutationType.name));
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType) {
-    operationTypes.push("  subscription: ".concat(subscriptionType.name));
-  }
-
-  return printDescription({}, schema) + "schema {\n".concat(operationTypes.join('\n'), "\n}");
-}
-/**
- * GraphQL schema define root types for each type of operation. These types are
- * the same as any other type and can be named in any manner, however there is
- * a common naming convention:
- *
- *   schema {
- *     query: Query
- *     mutation: Mutation
- *   }
- *
- * When using this naming convention, the schema description can be omitted.
- */
-
-
-function isSchemaOfCommonNames(schema) {
-  var queryType = schema.getQueryType();
-
-  if (queryType && queryType.name !== 'Query') {
-    return false;
-  }
-
-  var mutationType = schema.getMutationType();
-
-  if (mutationType && mutationType.name !== 'Mutation') {
-    return false;
-  }
-
-  var subscriptionType = schema.getSubscriptionType();
-
-  if (subscriptionType && subscriptionType.name !== 'Subscription') {
-    return false;
-  }
-
-  return true;
-}
-
-export function printType(type, options) {
-  if (isScalarType(type)) {
-    return printScalar(type, options);
-  }
-
-  if (isObjectType(type)) {
-    return printObject(type, options);
-  }
-
-  if (isInterfaceType(type)) {
-    return printInterface(type, options);
-  }
-
-  if (isUnionType(type)) {
-    return printUnion(type, options);
-  }
-
-  if (isEnumType(type)) {
-    return printEnum(type, options);
-  }
-
-  /* istanbul ignore else */
-  if (isInputObjectType(type)) {
-    return printInputObject(type, options);
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected type: ' + inspect(type));
-}
-
-function printScalar(type, options) {
-  return printDescription(options, type) + "scalar ".concat(type.name);
-}
-
-function printImplementedInterfaces(type) {
-  var interfaces = type.getInterfaces();
-  return interfaces.length ? ' implements ' + interfaces.map(function (i) {
-    return i.name;
-  }).join(' & ') : '';
-}
-
-function printObject(type, options) {
-  return printDescription(options, type) + "type ".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);
-}
-
-function printInterface(type, options) {
-  return printDescription(options, type) + "interface ".concat(type.name) + printImplementedInterfaces(type) + printFields(options, type);
-}
-
-function printUnion(type, options) {
-  var types = type.getTypes();
-  var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
-  return printDescription(options, type) + 'union ' + type.name + possibleTypes;
-}
-
-function printEnum(type, options) {
-  var values = type.getValues().map(function (value, i) {
-    return printDescription(options, value, '  ', !i) + '  ' + value.name + printDeprecated(value);
-  });
-  return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
-}
-
-function printInputObject(type, options) {
-  var fields = objectValues(type.getFields()).map(function (f, i) {
-    return printDescription(options, f, '  ', !i) + '  ' + printInputValue(f);
-  });
-  return printDescription(options, type) + "input ".concat(type.name) + printBlock(fields);
-}
-
-function printFields(options, type) {
-  var fields = objectValues(type.getFields()).map(function (f, i) {
-    return printDescription(options, f, '  ', !i) + '  ' + f.name + printArgs(options, f.args, '  ') + ': ' + String(f.type) + printDeprecated(f);
-  });
-  return printBlock(fields);
-}
-
-function printBlock(items) {
-  return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
-}
-
-function printArgs(options, args) {
-  var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-
-  if (args.length === 0) {
-    return '';
-  } // If every arg does not have a description, print them on one line.
-
-
-  if (args.every(function (arg) {
-    return !arg.description;
-  })) {
-    return '(' + args.map(printInputValue).join(', ') + ')';
-  }
-
-  return '(\n' + args.map(function (arg, i) {
-    return printDescription(options, arg, '  ' + indentation, !i) + '  ' + indentation + printInputValue(arg);
-  }).join('\n') + '\n' + indentation + ')';
-}
-
-function printInputValue(arg) {
-  var defaultAST = astFromValue(arg.defaultValue, arg.type);
-  var argDecl = arg.name + ': ' + String(arg.type);
-
-  if (defaultAST) {
-    argDecl += " = ".concat(print(defaultAST));
-  }
-
-  return argDecl;
-}
-
-function printDirective(directive, options) {
-  return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');
-}
-
-function printDeprecated(fieldOrEnumVal) {
-  if (!fieldOrEnumVal.isDeprecated) {
-    return '';
-  }
-
-  var reason = fieldOrEnumVal.deprecationReason;
-  var reasonAST = astFromValue(reason, GraphQLString);
-
-  if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {
-    return ' @deprecated(reason: ' + print(reasonAST) + ')';
-  }
-
-  return ' @deprecated';
-}
-
-function printDescription(options, def) {
-  var indentation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
-  var firstInBlock = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
-  var description = def.description;
-
-  if (description == null) {
-    return '';
-  }
-
-  if ((options === null || options === void 0 ? void 0 : options.commentDescriptions) === true) {
-    return printDescriptionWithComments(description, indentation, firstInBlock);
-  }
-
-  var preferMultipleLines = description.length > 70;
-  var blockString = printBlockString(description, '', preferMultipleLines);
-  var prefix = indentation && !firstInBlock ? '\n' + indentation : indentation;
-  return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
-}
-
-function printDescriptionWithComments(description, indentation, firstInBlock) {
-  var prefix = indentation && !firstInBlock ? '\n' : '';
-  var comment = description.split('\n').map(function (line) {
-    return indentation + (line !== '' ? '# ' + line : '#');
-  }).join('\n');
-  return prefix + comment + '\n';
-}
diff --git a/node_modules/graphql/utilities/separateOperations.d.ts b/node_modules/graphql/utilities/separateOperations.d.ts
deleted file mode 100644
index 28654fd..0000000
--- a/node_modules/graphql/utilities/separateOperations.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { DocumentNode } from '../language/ast';
-
-/**
- * separateOperations accepts a single AST document which may contain many
- * operations and fragments and returns a collection of AST documents each of
- * which contains a single operation as well the fragment definitions it
- * refers to.
- */
-export function separateOperations(
-  documentAST: DocumentNode,
-): { [key: string]: DocumentNode };
diff --git a/node_modules/graphql/utilities/separateOperations.js b/node_modules/graphql/utilities/separateOperations.js
deleted file mode 100644
index 6f92ed5..0000000
--- a/node_modules/graphql/utilities/separateOperations.js
+++ /dev/null
@@ -1,88 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.separateOperations = separateOperations;
-
-var _kinds = require("../language/kinds");
-
-var _visitor = require("../language/visitor");
-
-/**
- * separateOperations accepts a single AST document which may contain many
- * operations and fragments and returns a collection of AST documents each of
- * which contains a single operation as well the fragment definitions it
- * refers to.
- */
-function separateOperations(documentAST) {
-  var operations = [];
-  var depGraph = Object.create(null);
-  var fromName; // Populate metadata and build a dependency graph.
-
-  (0, _visitor.visit)(documentAST, {
-    OperationDefinition: function OperationDefinition(node) {
-      fromName = opName(node);
-      operations.push(node);
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      fromName = node.name.value;
-    },
-    FragmentSpread: function FragmentSpread(node) {
-      var toName = node.name.value;
-      var dependents = depGraph[fromName];
-
-      if (dependents === undefined) {
-        dependents = depGraph[fromName] = Object.create(null);
-      }
-
-      dependents[toName] = true;
-    }
-  }); // For each operation, produce a new synthesized AST which includes only what
-  // is necessary for completing that operation.
-
-  var separatedDocumentASTs = Object.create(null);
-
-  var _loop = function _loop(_i2) {
-    var operation = operations[_i2];
-    var operationName = opName(operation);
-    var dependencies = Object.create(null);
-    collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
-    // to retain the same order as the original document.
-
-    separatedDocumentASTs[operationName] = {
-      kind: _kinds.Kind.DOCUMENT,
-      definitions: documentAST.definitions.filter(function (node) {
-        return node === operation || node.kind === _kinds.Kind.FRAGMENT_DEFINITION && dependencies[node.name.value];
-      })
-    };
-  };
-
-  for (var _i2 = 0; _i2 < operations.length; _i2++) {
-    _loop(_i2);
-  }
-
-  return separatedDocumentASTs;
-}
-
-// Provides the empty string for anonymous operations.
-function opName(operation) {
-  return operation.name ? operation.name.value : '';
-} // From a dependency graph, collects a list of transitive dependencies by
-// recursing through a dependency graph.
-
-
-function collectTransitiveDependencies(collected, depGraph, fromName) {
-  var immediateDeps = depGraph[fromName];
-
-  if (immediateDeps) {
-    for (var _i4 = 0, _Object$keys2 = Object.keys(immediateDeps); _i4 < _Object$keys2.length; _i4++) {
-      var toName = _Object$keys2[_i4];
-
-      if (!collected[toName]) {
-        collected[toName] = true;
-        collectTransitiveDependencies(collected, depGraph, toName);
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/utilities/separateOperations.js.flow b/node_modules/graphql/utilities/separateOperations.js.flow
deleted file mode 100644
index 57319ee..0000000
--- a/node_modules/graphql/utilities/separateOperations.js.flow
+++ /dev/null
@@ -1,91 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from '../jsutils/ObjMap';
-
-import { Kind } from '../language/kinds';
-import { visit } from '../language/visitor';
-import {
-  type DocumentNode,
-  type OperationDefinitionNode,
-} from '../language/ast';
-
-/**
- * separateOperations accepts a single AST document which may contain many
- * operations and fragments and returns a collection of AST documents each of
- * which contains a single operation as well the fragment definitions it
- * refers to.
- */
-export function separateOperations(
-  documentAST: DocumentNode,
-): ObjMap<DocumentNode> {
-  const operations = [];
-  const depGraph: DepGraph = Object.create(null);
-  let fromName;
-
-  // Populate metadata and build a dependency graph.
-  visit(documentAST, {
-    OperationDefinition(node) {
-      fromName = opName(node);
-      operations.push(node);
-    },
-    FragmentDefinition(node) {
-      fromName = node.name.value;
-    },
-    FragmentSpread(node) {
-      const toName = node.name.value;
-      let dependents = depGraph[fromName];
-      if (dependents === undefined) {
-        dependents = depGraph[fromName] = Object.create(null);
-      }
-      dependents[toName] = true;
-    },
-  });
-
-  // For each operation, produce a new synthesized AST which includes only what
-  // is necessary for completing that operation.
-  const separatedDocumentASTs = Object.create(null);
-  for (const operation of operations) {
-    const operationName = opName(operation);
-    const dependencies = Object.create(null);
-    collectTransitiveDependencies(dependencies, depGraph, operationName);
-
-    // The list of definition nodes to be included for this operation, sorted
-    // to retain the same order as the original document.
-    separatedDocumentASTs[operationName] = {
-      kind: Kind.DOCUMENT,
-      definitions: documentAST.definitions.filter(
-        node =>
-          node === operation ||
-          (node.kind === Kind.FRAGMENT_DEFINITION &&
-            dependencies[node.name.value]),
-      ),
-    };
-  }
-
-  return separatedDocumentASTs;
-}
-
-type DepGraph = ObjMap<ObjMap<boolean>>;
-
-// Provides the empty string for anonymous operations.
-function opName(operation: OperationDefinitionNode): string {
-  return operation.name ? operation.name.value : '';
-}
-
-// From a dependency graph, collects a list of transitive dependencies by
-// recursing through a dependency graph.
-function collectTransitiveDependencies(
-  collected: ObjMap<boolean>,
-  depGraph: DepGraph,
-  fromName: string,
-): void {
-  const immediateDeps = depGraph[fromName];
-  if (immediateDeps) {
-    for (const toName of Object.keys(immediateDeps)) {
-      if (!collected[toName]) {
-        collected[toName] = true;
-        collectTransitiveDependencies(collected, depGraph, toName);
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/utilities/separateOperations.mjs b/node_modules/graphql/utilities/separateOperations.mjs
deleted file mode 100644
index da71102..0000000
--- a/node_modules/graphql/utilities/separateOperations.mjs
+++ /dev/null
@@ -1,80 +0,0 @@
-import { Kind } from "../language/kinds.mjs";
-import { visit } from "../language/visitor.mjs";
-
-/**
- * separateOperations accepts a single AST document which may contain many
- * operations and fragments and returns a collection of AST documents each of
- * which contains a single operation as well the fragment definitions it
- * refers to.
- */
-export function separateOperations(documentAST) {
-  var operations = [];
-  var depGraph = Object.create(null);
-  var fromName; // Populate metadata and build a dependency graph.
-
-  visit(documentAST, {
-    OperationDefinition: function OperationDefinition(node) {
-      fromName = opName(node);
-      operations.push(node);
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      fromName = node.name.value;
-    },
-    FragmentSpread: function FragmentSpread(node) {
-      var toName = node.name.value;
-      var dependents = depGraph[fromName];
-
-      if (dependents === undefined) {
-        dependents = depGraph[fromName] = Object.create(null);
-      }
-
-      dependents[toName] = true;
-    }
-  }); // For each operation, produce a new synthesized AST which includes only what
-  // is necessary for completing that operation.
-
-  var separatedDocumentASTs = Object.create(null);
-
-  var _loop = function _loop(_i2) {
-    var operation = operations[_i2];
-    var operationName = opName(operation);
-    var dependencies = Object.create(null);
-    collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
-    // to retain the same order as the original document.
-
-    separatedDocumentASTs[operationName] = {
-      kind: Kind.DOCUMENT,
-      definitions: documentAST.definitions.filter(function (node) {
-        return node === operation || node.kind === Kind.FRAGMENT_DEFINITION && dependencies[node.name.value];
-      })
-    };
-  };
-
-  for (var _i2 = 0; _i2 < operations.length; _i2++) {
-    _loop(_i2);
-  }
-
-  return separatedDocumentASTs;
-}
-
-// Provides the empty string for anonymous operations.
-function opName(operation) {
-  return operation.name ? operation.name.value : '';
-} // From a dependency graph, collects a list of transitive dependencies by
-// recursing through a dependency graph.
-
-
-function collectTransitiveDependencies(collected, depGraph, fromName) {
-  var immediateDeps = depGraph[fromName];
-
-  if (immediateDeps) {
-    for (var _i4 = 0, _Object$keys2 = Object.keys(immediateDeps); _i4 < _Object$keys2.length; _i4++) {
-      var toName = _Object$keys2[_i4];
-
-      if (!collected[toName]) {
-        collected[toName] = true;
-        collectTransitiveDependencies(collected, depGraph, toName);
-      }
-    }
-  }
-}
diff --git a/node_modules/graphql/utilities/stripIgnoredCharacters.d.ts b/node_modules/graphql/utilities/stripIgnoredCharacters.d.ts
deleted file mode 100644
index a131af0..0000000
--- a/node_modules/graphql/utilities/stripIgnoredCharacters.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Source } from '../language/source';
-
-/**
- * Strips characters that are not significant to the validity or execution
- * of a GraphQL document:
- *   - UnicodeBOM
- *   - WhiteSpace
- *   - LineTerminator
- *   - Comment
- *   - Comma
- *   - BlockString indentation
- *
- * Note: It is required to have a delimiter character between neighboring
- * non-punctuator tokens and this function always uses single space as delimiter.
- *
- * It is guaranteed that both input and output documents if parsed would result
- * in the exact same AST except for nodes location.
- *
- * Warning: It is guaranteed that this function will always produce stable results.
- * However, it's not guaranteed that it will stay the same between different
- * releases due to bugfixes or changes in the GraphQL specification.
- *
- * Query example:
- *
- * query SomeQuery($foo: String!, $bar: String) {
- *   someField(foo: $foo, bar: $bar) {
- *     a
- *     b {
- *       c
- *       d
- *     }
- *   }
- * }
- *
- * Becomes:
- *
- * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
- *
- * SDL example:
- *
- * """
- * Type description
- * """
- * type Foo {
- *   """
- *   Field description
- *   """
- *   bar: String
- * }
- *
- * Becomes:
- *
- * """Type description""" type Foo{"""Field description""" bar:String}
- */
-export function stripIgnoredCharacters(source: string | Source): string;
diff --git a/node_modules/graphql/utilities/stripIgnoredCharacters.js b/node_modules/graphql/utilities/stripIgnoredCharacters.js
deleted file mode 100644
index dca0c32..0000000
--- a/node_modules/graphql/utilities/stripIgnoredCharacters.js
+++ /dev/null
@@ -1,133 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.stripIgnoredCharacters = stripIgnoredCharacters;
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _source = require("../language/source");
-
-var _tokenKind = require("../language/tokenKind");
-
-var _lexer = require("../language/lexer");
-
-var _blockString = require("../language/blockString");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Strips characters that are not significant to the validity or execution
- * of a GraphQL document:
- *   - UnicodeBOM
- *   - WhiteSpace
- *   - LineTerminator
- *   - Comment
- *   - Comma
- *   - BlockString indentation
- *
- * Note: It is required to have a delimiter character between neighboring
- * non-punctuator tokens and this function always uses single space as delimiter.
- *
- * It is guaranteed that both input and output documents if parsed would result
- * in the exact same AST except for nodes location.
- *
- * Warning: It is guaranteed that this function will always produce stable results.
- * However, it's not guaranteed that it will stay the same between different
- * releases due to bugfixes or changes in the GraphQL specification.
- *
- * Query example:
- *
- * query SomeQuery($foo: String!, $bar: String) {
- *   someField(foo: $foo, bar: $bar) {
- *     a
- *     b {
- *       c
- *       d
- *     }
- *   }
- * }
- *
- * Becomes:
- *
- * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
- *
- * SDL example:
- *
- * """
- * Type description
- * """
- * type Foo {
- *   """
- *   Field description
- *   """
- *   bar: String
- * }
- *
- * Becomes:
- *
- * """Type description""" type Foo{"""Field description""" bar:String}
- */
-function stripIgnoredCharacters(source) {
-  var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
-
-  if (!(sourceObj instanceof _source.Source)) {
-    throw new TypeError("Must provide string or Source. Received: ".concat((0, _inspect.default)(sourceObj), "."));
-  }
-
-  var body = sourceObj.body;
-  var lexer = new _lexer.Lexer(sourceObj);
-  var strippedBody = '';
-  var wasLastAddedTokenNonPunctuator = false;
-
-  while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) {
-    var currentToken = lexer.token;
-    var tokenKind = currentToken.kind;
-    /**
-     * Every two non-punctuator tokens should have space between them.
-     * Also prevent case of non-punctuator token following by spread resulting
-     * in invalid token (e.g. `1...` is invalid Float token).
-     */
-
-    var isNonPunctuator = !(0, _lexer.isPunctuatorTokenKind)(currentToken.kind);
-
-    if (wasLastAddedTokenNonPunctuator) {
-      if (isNonPunctuator || currentToken.kind === _tokenKind.TokenKind.SPREAD) {
-        strippedBody += ' ';
-      }
-    }
-
-    var tokenBody = body.slice(currentToken.start, currentToken.end);
-
-    if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) {
-      strippedBody += dedentBlockString(tokenBody);
-    } else {
-      strippedBody += tokenBody;
-    }
-
-    wasLastAddedTokenNonPunctuator = isNonPunctuator;
-  }
-
-  return strippedBody;
-}
-
-function dedentBlockString(blockStr) {
-  // skip leading and trailing triple quotations
-  var rawStr = blockStr.slice(3, -3);
-  var body = (0, _blockString.dedentBlockStringValue)(rawStr);
-  var lines = body.split(/\r\n|[\n\r]/g);
-
-  if ((0, _blockString.getBlockStringIndentation)(lines) > 0) {
-    body = '\n' + body;
-  }
-
-  var lastChar = body[body.length - 1];
-  var hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
-
-  if (hasTrailingQuote || lastChar === '\\') {
-    body += '\n';
-  }
-
-  return '"""' + body + '"""';
-}
diff --git a/node_modules/graphql/utilities/stripIgnoredCharacters.js.flow b/node_modules/graphql/utilities/stripIgnoredCharacters.js.flow
deleted file mode 100644
index 2b2036b..0000000
--- a/node_modules/graphql/utilities/stripIgnoredCharacters.js.flow
+++ /dev/null
@@ -1,124 +0,0 @@
-// @flow strict
-
-import inspect from '../jsutils/inspect';
-
-import { Source } from '../language/source';
-import { TokenKind } from '../language/tokenKind';
-import { Lexer, isPunctuatorTokenKind } from '../language/lexer';
-import {
-  dedentBlockStringValue,
-  getBlockStringIndentation,
-} from '../language/blockString';
-
-/**
- * Strips characters that are not significant to the validity or execution
- * of a GraphQL document:
- *   - UnicodeBOM
- *   - WhiteSpace
- *   - LineTerminator
- *   - Comment
- *   - Comma
- *   - BlockString indentation
- *
- * Note: It is required to have a delimiter character between neighboring
- * non-punctuator tokens and this function always uses single space as delimiter.
- *
- * It is guaranteed that both input and output documents if parsed would result
- * in the exact same AST except for nodes location.
- *
- * Warning: It is guaranteed that this function will always produce stable results.
- * However, it's not guaranteed that it will stay the same between different
- * releases due to bugfixes or changes in the GraphQL specification.
- *
- * Query example:
- *
- * query SomeQuery($foo: String!, $bar: String) {
- *   someField(foo: $foo, bar: $bar) {
- *     a
- *     b {
- *       c
- *       d
- *     }
- *   }
- * }
- *
- * Becomes:
- *
- * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
- *
- * SDL example:
- *
- * """
- * Type description
- * """
- * type Foo {
- *   """
- *   Field description
- *   """
- *   bar: String
- * }
- *
- * Becomes:
- *
- * """Type description""" type Foo{"""Field description""" bar:String}
- */
-export function stripIgnoredCharacters(source: string | Source): string {
-  const sourceObj = typeof source === 'string' ? new Source(source) : source;
-  if (!(sourceObj instanceof Source)) {
-    throw new TypeError(
-      `Must provide string or Source. Received: ${inspect(sourceObj)}.`,
-    );
-  }
-
-  const body = sourceObj.body;
-  const lexer = new Lexer(sourceObj);
-  let strippedBody = '';
-
-  let wasLastAddedTokenNonPunctuator = false;
-  while (lexer.advance().kind !== TokenKind.EOF) {
-    const currentToken = lexer.token;
-    const tokenKind = currentToken.kind;
-
-    /**
-     * Every two non-punctuator tokens should have space between them.
-     * Also prevent case of non-punctuator token following by spread resulting
-     * in invalid token (e.g. `1...` is invalid Float token).
-     */
-    const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);
-    if (wasLastAddedTokenNonPunctuator) {
-      if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {
-        strippedBody += ' ';
-      }
-    }
-
-    const tokenBody = body.slice(currentToken.start, currentToken.end);
-    if (tokenKind === TokenKind.BLOCK_STRING) {
-      strippedBody += dedentBlockString(tokenBody);
-    } else {
-      strippedBody += tokenBody;
-    }
-
-    wasLastAddedTokenNonPunctuator = isNonPunctuator;
-  }
-
-  return strippedBody;
-}
-
-function dedentBlockString(blockStr) {
-  // skip leading and trailing triple quotations
-  const rawStr = blockStr.slice(3, -3);
-  let body = dedentBlockStringValue(rawStr);
-
-  const lines = body.split(/\r\n|[\n\r]/g);
-  if (getBlockStringIndentation(lines) > 0) {
-    body = '\n' + body;
-  }
-
-  const lastChar = body[body.length - 1];
-  const hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
-  if (hasTrailingQuote || lastChar === '\\') {
-    body += '\n';
-  }
-
-  return '"""' + body + '"""';
-}
diff --git a/node_modules/graphql/utilities/stripIgnoredCharacters.mjs b/node_modules/graphql/utilities/stripIgnoredCharacters.mjs
deleted file mode 100644
index aac07be..0000000
--- a/node_modules/graphql/utilities/stripIgnoredCharacters.mjs
+++ /dev/null
@@ -1,120 +0,0 @@
-import inspect from "../jsutils/inspect.mjs";
-import { Source } from "../language/source.mjs";
-import { TokenKind } from "../language/tokenKind.mjs";
-import { Lexer, isPunctuatorTokenKind } from "../language/lexer.mjs";
-import { dedentBlockStringValue, getBlockStringIndentation } from "../language/blockString.mjs";
-/**
- * Strips characters that are not significant to the validity or execution
- * of a GraphQL document:
- *   - UnicodeBOM
- *   - WhiteSpace
- *   - LineTerminator
- *   - Comment
- *   - Comma
- *   - BlockString indentation
- *
- * Note: It is required to have a delimiter character between neighboring
- * non-punctuator tokens and this function always uses single space as delimiter.
- *
- * It is guaranteed that both input and output documents if parsed would result
- * in the exact same AST except for nodes location.
- *
- * Warning: It is guaranteed that this function will always produce stable results.
- * However, it's not guaranteed that it will stay the same between different
- * releases due to bugfixes or changes in the GraphQL specification.
- *
- * Query example:
- *
- * query SomeQuery($foo: String!, $bar: String) {
- *   someField(foo: $foo, bar: $bar) {
- *     a
- *     b {
- *       c
- *       d
- *     }
- *   }
- * }
- *
- * Becomes:
- *
- * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
- *
- * SDL example:
- *
- * """
- * Type description
- * """
- * type Foo {
- *   """
- *   Field description
- *   """
- *   bar: String
- * }
- *
- * Becomes:
- *
- * """Type description""" type Foo{"""Field description""" bar:String}
- */
-
-export function stripIgnoredCharacters(source) {
-  var sourceObj = typeof source === 'string' ? new Source(source) : source;
-
-  if (!(sourceObj instanceof Source)) {
-    throw new TypeError("Must provide string or Source. Received: ".concat(inspect(sourceObj), "."));
-  }
-
-  var body = sourceObj.body;
-  var lexer = new Lexer(sourceObj);
-  var strippedBody = '';
-  var wasLastAddedTokenNonPunctuator = false;
-
-  while (lexer.advance().kind !== TokenKind.EOF) {
-    var currentToken = lexer.token;
-    var tokenKind = currentToken.kind;
-    /**
-     * Every two non-punctuator tokens should have space between them.
-     * Also prevent case of non-punctuator token following by spread resulting
-     * in invalid token (e.g. `1...` is invalid Float token).
-     */
-
-    var isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);
-
-    if (wasLastAddedTokenNonPunctuator) {
-      if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {
-        strippedBody += ' ';
-      }
-    }
-
-    var tokenBody = body.slice(currentToken.start, currentToken.end);
-
-    if (tokenKind === TokenKind.BLOCK_STRING) {
-      strippedBody += dedentBlockString(tokenBody);
-    } else {
-      strippedBody += tokenBody;
-    }
-
-    wasLastAddedTokenNonPunctuator = isNonPunctuator;
-  }
-
-  return strippedBody;
-}
-
-function dedentBlockString(blockStr) {
-  // skip leading and trailing triple quotations
-  var rawStr = blockStr.slice(3, -3);
-  var body = dedentBlockStringValue(rawStr);
-  var lines = body.split(/\r\n|[\n\r]/g);
-
-  if (getBlockStringIndentation(lines) > 0) {
-    body = '\n' + body;
-  }
-
-  var lastChar = body[body.length - 1];
-  var hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
-
-  if (hasTrailingQuote || lastChar === '\\') {
-    body += '\n';
-  }
-
-  return '"""' + body + '"""';
-}
diff --git a/node_modules/graphql/utilities/typeComparators.d.ts b/node_modules/graphql/utilities/typeComparators.d.ts
deleted file mode 100644
index 7de3e00..0000000
--- a/node_modules/graphql/utilities/typeComparators.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLType, GraphQLCompositeType } from '../type/definition';
-
-/**
- * Provided two types, return true if the types are equal (invariant).
- */
-export function isEqualType(typeA: GraphQLType, typeB: GraphQLType): boolean;
-
-/**
- * Provided a type and a super type, return true if the first type is either
- * equal or a subset of the second super type (covariant).
- */
-export function isTypeSubTypeOf(
-  schema: GraphQLSchema,
-  maybeSubType: GraphQLType,
-  superType: GraphQLType,
-): boolean;
-
-/**
- * Provided two composite types, determine if they "overlap". Two composite
- * types overlap when the Sets of possible concrete types for each intersect.
- *
- * This is often used to determine if a fragment of a given type could possibly
- * be visited in a context of another type.
- *
- * This function is commutative.
- */
-export function doTypesOverlap(
-  schema: GraphQLSchema,
-  typeA: GraphQLCompositeType,
-  typeB: GraphQLCompositeType,
-): boolean;
diff --git a/node_modules/graphql/utilities/typeComparators.js b/node_modules/graphql/utilities/typeComparators.js
deleted file mode 100644
index fc836f8..0000000
--- a/node_modules/graphql/utilities/typeComparators.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.isEqualType = isEqualType;
-exports.isTypeSubTypeOf = isTypeSubTypeOf;
-exports.doTypesOverlap = doTypesOverlap;
-
-var _definition = require("../type/definition");
-
-/**
- * Provided two types, return true if the types are equal (invariant).
- */
-function isEqualType(typeA, typeB) {
-  // Equivalent types are equal.
-  if (typeA === typeB) {
-    return true;
-  } // If either type is non-null, the other must also be non-null.
-
-
-  if ((0, _definition.isNonNullType)(typeA) && (0, _definition.isNonNullType)(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  } // If either type is a list, the other must also be a list.
-
-
-  if ((0, _definition.isListType)(typeA) && (0, _definition.isListType)(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  } // Otherwise the types are not equal.
-
-
-  return false;
-}
-/**
- * Provided a type and a super type, return true if the first type is either
- * equal or a subset of the second super type (covariant).
- */
-
-
-function isTypeSubTypeOf(schema, maybeSubType, superType) {
-  // Equivalent type is a valid subtype
-  if (maybeSubType === superType) {
-    return true;
-  } // If superType is non-null, maybeSubType must also be non-null.
-
-
-  if ((0, _definition.isNonNullType)(superType)) {
-    if ((0, _definition.isNonNullType)(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-
-    return false;
-  }
-
-  if ((0, _definition.isNonNullType)(maybeSubType)) {
-    // If superType is nullable, maybeSubType may be non-null or nullable.
-    return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
-  } // If superType type is a list, maybeSubType type must also be a list.
-
-
-  if ((0, _definition.isListType)(superType)) {
-    if ((0, _definition.isListType)(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-
-    return false;
-  }
-
-  if ((0, _definition.isListType)(maybeSubType)) {
-    // If superType is not a list, maybeSubType must also be not a list.
-    return false;
-  } // If superType type is an abstract type, check if it is super type of maybeSubType.
-  // Otherwise, the child type is not a valid subtype of the parent type.
-
-
-  return (0, _definition.isAbstractType)(superType) && ((0, _definition.isInterfaceType)(maybeSubType) || (0, _definition.isObjectType)(maybeSubType)) && schema.isSubType(superType, maybeSubType);
-}
-/**
- * Provided two composite types, determine if they "overlap". Two composite
- * types overlap when the Sets of possible concrete types for each intersect.
- *
- * This is often used to determine if a fragment of a given type could possibly
- * be visited in a context of another type.
- *
- * This function is commutative.
- */
-
-
-function doTypesOverlap(schema, typeA, typeB) {
-  // Equivalent types overlap
-  if (typeA === typeB) {
-    return true;
-  }
-
-  if ((0, _definition.isAbstractType)(typeA)) {
-    if ((0, _definition.isAbstractType)(typeB)) {
-      // If both types are abstract, then determine if there is any intersection
-      // between possible concrete types of each.
-      return schema.getPossibleTypes(typeA).some(function (type) {
-        return schema.isSubType(typeB, type);
-      });
-    } // Determine if the latter type is a possible concrete type of the former.
-
-
-    return schema.isSubType(typeA, typeB);
-  }
-
-  if ((0, _definition.isAbstractType)(typeB)) {
-    // Determine if the former type is a possible concrete type of the latter.
-    return schema.isSubType(typeB, typeA);
-  } // Otherwise the types do not overlap.
-
-
-  return false;
-}
diff --git a/node_modules/graphql/utilities/typeComparators.js.flow b/node_modules/graphql/utilities/typeComparators.js.flow
deleted file mode 100644
index 18e4447..0000000
--- a/node_modules/graphql/utilities/typeComparators.js.flow
+++ /dev/null
@@ -1,122 +0,0 @@
-// @flow strict
-
-import { type GraphQLSchema } from '../type/schema';
-import {
-  type GraphQLType,
-  type GraphQLCompositeType,
-  isInterfaceType,
-  isObjectType,
-  isListType,
-  isNonNullType,
-  isAbstractType,
-} from '../type/definition';
-
-/**
- * Provided two types, return true if the types are equal (invariant).
- */
-export function isEqualType(typeA: GraphQLType, typeB: GraphQLType): boolean {
-  // Equivalent types are equal.
-  if (typeA === typeB) {
-    return true;
-  }
-
-  // If either type is non-null, the other must also be non-null.
-  if (isNonNullType(typeA) && isNonNullType(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  }
-
-  // If either type is a list, the other must also be a list.
-  if (isListType(typeA) && isListType(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  }
-
-  // Otherwise the types are not equal.
-  return false;
-}
-
-/**
- * Provided a type and a super type, return true if the first type is either
- * equal or a subset of the second super type (covariant).
- */
-export function isTypeSubTypeOf(
-  schema: GraphQLSchema,
-  maybeSubType: GraphQLType,
-  superType: GraphQLType,
-): boolean {
-  // Equivalent type is a valid subtype
-  if (maybeSubType === superType) {
-    return true;
-  }
-
-  // If superType is non-null, maybeSubType must also be non-null.
-  if (isNonNullType(superType)) {
-    if (isNonNullType(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-    return false;
-  }
-  if (isNonNullType(maybeSubType)) {
-    // If superType is nullable, maybeSubType may be non-null or nullable.
-    return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
-  }
-
-  // If superType type is a list, maybeSubType type must also be a list.
-  if (isListType(superType)) {
-    if (isListType(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-    return false;
-  }
-  if (isListType(maybeSubType)) {
-    // If superType is not a list, maybeSubType must also be not a list.
-    return false;
-  }
-
-  // If superType type is an abstract type, check if it is super type of maybeSubType.
-  // Otherwise, the child type is not a valid subtype of the parent type.
-  return (
-    isAbstractType(superType) &&
-    (isInterfaceType(maybeSubType) || isObjectType(maybeSubType)) &&
-    schema.isSubType(superType, maybeSubType)
-  );
-}
-
-/**
- * Provided two composite types, determine if they "overlap". Two composite
- * types overlap when the Sets of possible concrete types for each intersect.
- *
- * This is often used to determine if a fragment of a given type could possibly
- * be visited in a context of another type.
- *
- * This function is commutative.
- */
-export function doTypesOverlap(
-  schema: GraphQLSchema,
-  typeA: GraphQLCompositeType,
-  typeB: GraphQLCompositeType,
-): boolean {
-  // Equivalent types overlap
-  if (typeA === typeB) {
-    return true;
-  }
-
-  if (isAbstractType(typeA)) {
-    if (isAbstractType(typeB)) {
-      // If both types are abstract, then determine if there is any intersection
-      // between possible concrete types of each.
-      return schema
-        .getPossibleTypes(typeA)
-        .some(type => schema.isSubType(typeB, type));
-    }
-    // Determine if the latter type is a possible concrete type of the former.
-    return schema.isSubType(typeA, typeB);
-  }
-
-  if (isAbstractType(typeB)) {
-    // Determine if the former type is a possible concrete type of the latter.
-    return schema.isSubType(typeB, typeA);
-  }
-
-  // Otherwise the types do not overlap.
-  return false;
-}
diff --git a/node_modules/graphql/utilities/typeComparators.mjs b/node_modules/graphql/utilities/typeComparators.mjs
deleted file mode 100644
index ad3288a..0000000
--- a/node_modules/graphql/utilities/typeComparators.mjs
+++ /dev/null
@@ -1,104 +0,0 @@
-import { isInterfaceType, isObjectType, isListType, isNonNullType, isAbstractType } from "../type/definition.mjs";
-/**
- * Provided two types, return true if the types are equal (invariant).
- */
-
-export function isEqualType(typeA, typeB) {
-  // Equivalent types are equal.
-  if (typeA === typeB) {
-    return true;
-  } // If either type is non-null, the other must also be non-null.
-
-
-  if (isNonNullType(typeA) && isNonNullType(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  } // If either type is a list, the other must also be a list.
-
-
-  if (isListType(typeA) && isListType(typeB)) {
-    return isEqualType(typeA.ofType, typeB.ofType);
-  } // Otherwise the types are not equal.
-
-
-  return false;
-}
-/**
- * Provided a type and a super type, return true if the first type is either
- * equal or a subset of the second super type (covariant).
- */
-
-export function isTypeSubTypeOf(schema, maybeSubType, superType) {
-  // Equivalent type is a valid subtype
-  if (maybeSubType === superType) {
-    return true;
-  } // If superType is non-null, maybeSubType must also be non-null.
-
-
-  if (isNonNullType(superType)) {
-    if (isNonNullType(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-
-    return false;
-  }
-
-  if (isNonNullType(maybeSubType)) {
-    // If superType is nullable, maybeSubType may be non-null or nullable.
-    return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
-  } // If superType type is a list, maybeSubType type must also be a list.
-
-
-  if (isListType(superType)) {
-    if (isListType(maybeSubType)) {
-      return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
-    }
-
-    return false;
-  }
-
-  if (isListType(maybeSubType)) {
-    // If superType is not a list, maybeSubType must also be not a list.
-    return false;
-  } // If superType type is an abstract type, check if it is super type of maybeSubType.
-  // Otherwise, the child type is not a valid subtype of the parent type.
-
-
-  return isAbstractType(superType) && (isInterfaceType(maybeSubType) || isObjectType(maybeSubType)) && schema.isSubType(superType, maybeSubType);
-}
-/**
- * Provided two composite types, determine if they "overlap". Two composite
- * types overlap when the Sets of possible concrete types for each intersect.
- *
- * This is often used to determine if a fragment of a given type could possibly
- * be visited in a context of another type.
- *
- * This function is commutative.
- */
-
-export function doTypesOverlap(schema, typeA, typeB) {
-  // Equivalent types overlap
-  if (typeA === typeB) {
-    return true;
-  }
-
-  if (isAbstractType(typeA)) {
-    if (isAbstractType(typeB)) {
-      // If both types are abstract, then determine if there is any intersection
-      // between possible concrete types of each.
-      return schema.getPossibleTypes(typeA).some(function (type) {
-        return schema.isSubType(typeB, type);
-      });
-    } // Determine if the latter type is a possible concrete type of the former.
-
-
-    return schema.isSubType(typeA, typeB);
-  }
-
-  if (isAbstractType(typeB)) {
-    // Determine if the former type is a possible concrete type of the latter.
-    return schema.isSubType(typeB, typeA);
-  } // Otherwise the types do not overlap.
-
-
-  return false;
-}
diff --git a/node_modules/graphql/utilities/typeFromAST.d.ts b/node_modules/graphql/utilities/typeFromAST.d.ts
deleted file mode 100644
index cf32ac7..0000000
--- a/node_modules/graphql/utilities/typeFromAST.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { NamedTypeNode, ListTypeNode, NonNullTypeNode } from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-import {
-  GraphQLNamedType,
-  GraphQLList,
-  GraphQLNonNull,
-} from '../type/definition';
-
-/**
- * Given a Schema and an AST node describing a type, return a GraphQLType
- * definition which applies to that type. For example, if provided the parsed
- * AST node for `[User]`, a GraphQLList instance will be returned, containing
- * the type called "User" found in the schema. If a type called "User" is not
- * found in the schema, then undefined will be returned.
- */
-export function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: NamedTypeNode,
-): GraphQLNamedType | undefined;
-
-export function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: ListTypeNode,
-): GraphQLList<any> | undefined;
-
-export function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: NonNullTypeNode,
-): GraphQLNonNull<any> | undefined;
diff --git a/node_modules/graphql/utilities/typeFromAST.js b/node_modules/graphql/utilities/typeFromAST.js
deleted file mode 100644
index 623ad39..0000000
--- a/node_modules/graphql/utilities/typeFromAST.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.typeFromAST = typeFromAST;
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _kinds = require("../language/kinds");
-
-var _definition = require("../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function typeFromAST(schema, typeNode) {
-  /* eslint-enable no-redeclare */
-  var innerType;
-
-  if (typeNode.kind === _kinds.Kind.LIST_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && (0, _definition.GraphQLList)(innerType);
-  }
-
-  if (typeNode.kind === _kinds.Kind.NON_NULL_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && (0, _definition.GraphQLNonNull)(innerType);
-  }
-
-  /* istanbul ignore else */
-  if (typeNode.kind === _kinds.Kind.NAMED_TYPE) {
-    return schema.getType(typeNode.name.value);
-  } // Not reachable. All possible type nodes have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected type node: ' + (0, _inspect.default)(typeNode));
-}
diff --git a/node_modules/graphql/utilities/typeFromAST.js.flow b/node_modules/graphql/utilities/typeFromAST.js.flow
deleted file mode 100644
index c418511..0000000
--- a/node_modules/graphql/utilities/typeFromAST.js.flow
+++ /dev/null
@@ -1,57 +0,0 @@
-// @flow strict
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-
-import { Kind } from '../language/kinds';
-import {
-  type NamedTypeNode,
-  type ListTypeNode,
-  type NonNullTypeNode,
-} from '../language/ast';
-
-import { type GraphQLSchema } from '../type/schema';
-import {
-  type GraphQLNamedType,
-  GraphQLList,
-  GraphQLNonNull,
-} from '../type/definition';
-
-/**
- * Given a Schema and an AST node describing a type, return a GraphQLType
- * definition which applies to that type. For example, if provided the parsed
- * AST node for `[User]`, a GraphQLList instance will be returned, containing
- * the type called "User" found in the schema. If a type called "User" is not
- * found in the schema, then undefined will be returned.
- */
-/* eslint-disable no-redeclare */
-declare function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: NamedTypeNode,
-): GraphQLNamedType | void;
-declare function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: ListTypeNode,
-): GraphQLList<any> | void;
-declare function typeFromAST(
-  schema: GraphQLSchema,
-  typeNode: NonNullTypeNode,
-): GraphQLNonNull<any> | void;
-export function typeFromAST(schema, typeNode) {
-  /* eslint-enable no-redeclare */
-  let innerType;
-  if (typeNode.kind === Kind.LIST_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && GraphQLList(innerType);
-  }
-  if (typeNode.kind === Kind.NON_NULL_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && GraphQLNonNull(innerType);
-  }
-  if (typeNode.kind === Kind.NAMED_TYPE) {
-    return schema.getType(typeNode.name.value);
-  }
-
-  // Not reachable. All possible type nodes have been considered.
-  invariant(false, 'Unexpected type node: ' + inspect((typeNode: empty)));
-}
diff --git a/node_modules/graphql/utilities/typeFromAST.mjs b/node_modules/graphql/utilities/typeFromAST.mjs
deleted file mode 100644
index 741df2a..0000000
--- a/node_modules/graphql/utilities/typeFromAST.mjs
+++ /dev/null
@@ -1,37 +0,0 @@
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { GraphQLList, GraphQLNonNull } from "../type/definition.mjs";
-/**
- * Given a Schema and an AST node describing a type, return a GraphQLType
- * definition which applies to that type. For example, if provided the parsed
- * AST node for `[User]`, a GraphQLList instance will be returned, containing
- * the type called "User" found in the schema. If a type called "User" is not
- * found in the schema, then undefined will be returned.
- */
-
-/* eslint-disable no-redeclare */
-
-export function typeFromAST(schema, typeNode) {
-  /* eslint-enable no-redeclare */
-  var innerType;
-
-  if (typeNode.kind === Kind.LIST_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && GraphQLList(innerType);
-  }
-
-  if (typeNode.kind === Kind.NON_NULL_TYPE) {
-    innerType = typeFromAST(schema, typeNode.type);
-    return innerType && GraphQLNonNull(innerType);
-  }
-
-  /* istanbul ignore else */
-  if (typeNode.kind === Kind.NAMED_TYPE) {
-    return schema.getType(typeNode.name.value);
-  } // Not reachable. All possible type nodes have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected type node: ' + inspect(typeNode));
-}
diff --git a/node_modules/graphql/utilities/valueFromAST.d.ts b/node_modules/graphql/utilities/valueFromAST.d.ts
deleted file mode 100644
index bef11b7..0000000
--- a/node_modules/graphql/utilities/valueFromAST.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { ValueNode } from '../language/ast';
-import { GraphQLInputType } from '../type/definition';
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * GraphQL Value literals.
- *
- * Returns `undefined` when the value could not be validly coerced according to
- * the provided type.
- *
- * | GraphQL Value        | JSON Value    |
- * | -------------------- | ------------- |
- * | Input Object         | Object        |
- * | List                 | Array         |
- * | Boolean              | Boolean       |
- * | String               | String        |
- * | Int / Float          | Number        |
- * | Enum Value           | Mixed         |
- * | NullValue            | null          |
- *
- */
-export function valueFromAST(
-  valueNode: Maybe<ValueNode>,
-  type: GraphQLInputType,
-  variables?: Maybe<{ [key: string]: any }>,
-): any;
diff --git a/node_modules/graphql/utilities/valueFromAST.js b/node_modules/graphql/utilities/valueFromAST.js
deleted file mode 100644
index 6eaac4e..0000000
--- a/node_modules/graphql/utilities/valueFromAST.js
+++ /dev/null
@@ -1,187 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.valueFromAST = valueFromAST;
-
-var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
-
-var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _kinds = require("../language/kinds");
-
-var _definition = require("../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * GraphQL Value literals.
- *
- * Returns `undefined` when the value could not be validly coerced according to
- * the provided type.
- *
- * | GraphQL Value        | JSON Value    |
- * | -------------------- | ------------- |
- * | Input Object         | Object        |
- * | List                 | Array         |
- * | Boolean              | Boolean       |
- * | String               | String        |
- * | Int / Float          | Number        |
- * | Enum Value           | Mixed         |
- * | NullValue            | null          |
- *
- */
-function valueFromAST(valueNode, type, variables) {
-  if (!valueNode) {
-    // When there is no node, then there is also no value.
-    // Importantly, this is different from returning the value null.
-    return;
-  }
-
-  if (valueNode.kind === _kinds.Kind.VARIABLE) {
-    var variableName = valueNode.name.value;
-
-    if (variables == null || variables[variableName] === undefined) {
-      // No valid return value.
-      return;
-    }
-
-    var variableValue = variables[variableName];
-
-    if (variableValue === null && (0, _definition.isNonNullType)(type)) {
-      return; // Invalid: intentionally return no value.
-    } // Note: This does no further checking that this variable is correct.
-    // This assumes that this query has been validated and the variable
-    // usage here is of the correct type.
-
-
-    return variableValue;
-  }
-
-  if ((0, _definition.isNonNullType)(type)) {
-    if (valueNode.kind === _kinds.Kind.NULL) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return valueFromAST(valueNode, type.ofType, variables);
-  }
-
-  if (valueNode.kind === _kinds.Kind.NULL) {
-    // This is explicitly returning the value null.
-    return null;
-  }
-
-  if ((0, _definition.isListType)(type)) {
-    var itemType = type.ofType;
-
-    if (valueNode.kind === _kinds.Kind.LIST) {
-      var coercedValues = [];
-
-      for (var _i2 = 0, _valueNode$values2 = valueNode.values; _i2 < _valueNode$values2.length; _i2++) {
-        var itemNode = _valueNode$values2[_i2];
-
-        if (isMissingVariable(itemNode, variables)) {
-          // If an array contains a missing variable, it is either coerced to
-          // null or if the item type is non-null, it considered invalid.
-          if ((0, _definition.isNonNullType)(itemType)) {
-            return; // Invalid: intentionally return no value.
-          }
-
-          coercedValues.push(null);
-        } else {
-          var itemValue = valueFromAST(itemNode, itemType, variables);
-
-          if (itemValue === undefined) {
-            return; // Invalid: intentionally return no value.
-          }
-
-          coercedValues.push(itemValue);
-        }
-      }
-
-      return coercedValues;
-    }
-
-    var coercedValue = valueFromAST(valueNode, itemType, variables);
-
-    if (coercedValue === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return [coercedValue];
-  }
-
-  if ((0, _definition.isInputObjectType)(type)) {
-    if (valueNode.kind !== _kinds.Kind.OBJECT) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    var coercedObj = Object.create(null);
-    var fieldNodes = (0, _keyMap.default)(valueNode.fields, function (field) {
-      return field.name.value;
-    });
-
-    for (var _i4 = 0, _objectValues2 = (0, _objectValues3.default)(type.getFields()); _i4 < _objectValues2.length; _i4++) {
-      var field = _objectValues2[_i4];
-      var fieldNode = fieldNodes[field.name];
-
-      if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {
-        if (field.defaultValue !== undefined) {
-          coercedObj[field.name] = field.defaultValue;
-        } else if ((0, _definition.isNonNullType)(field.type)) {
-          return; // Invalid: intentionally return no value.
-        }
-
-        continue;
-      }
-
-      var fieldValue = valueFromAST(fieldNode.value, field.type, variables);
-
-      if (fieldValue === undefined) {
-        return; // Invalid: intentionally return no value.
-      }
-
-      coercedObj[field.name] = fieldValue;
-    }
-
-    return coercedObj;
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isLeafType)(type)) {
-    // Scalars and Enums fulfill parsing a literal value via parseLiteral().
-    // Invalid values represent a failure to parse correctly, in which case
-    // no value is returned.
-    var result;
-
-    try {
-      result = type.parseLiteral(valueNode, variables);
-    } catch (_error) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    if (result === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return result;
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected input type: ' + (0, _inspect.default)(type));
-} // Returns true if the provided valueNode is a variable which is not defined
-// in the set of variables.
-
-
-function isMissingVariable(valueNode, variables) {
-  return valueNode.kind === _kinds.Kind.VARIABLE && (variables == null || variables[valueNode.name.value] === undefined);
-}
diff --git a/node_modules/graphql/utilities/valueFromAST.js.flow b/node_modules/graphql/utilities/valueFromAST.js.flow
deleted file mode 100644
index e5abd02..0000000
--- a/node_modules/graphql/utilities/valueFromAST.js.flow
+++ /dev/null
@@ -1,161 +0,0 @@
-// @flow strict
-
-import objectValues from '../polyfills/objectValues';
-
-import keyMap from '../jsutils/keyMap';
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-import { type ObjMap } from '../jsutils/ObjMap';
-
-import { Kind } from '../language/kinds';
-import { type ValueNode } from '../language/ast';
-
-import {
-  type GraphQLInputType,
-  isLeafType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-} from '../type/definition';
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * GraphQL Value literals.
- *
- * Returns `undefined` when the value could not be validly coerced according to
- * the provided type.
- *
- * | GraphQL Value        | JSON Value    |
- * | -------------------- | ------------- |
- * | Input Object         | Object        |
- * | List                 | Array         |
- * | Boolean              | Boolean       |
- * | String               | String        |
- * | Int / Float          | Number        |
- * | Enum Value           | Mixed         |
- * | NullValue            | null          |
- *
- */
-export function valueFromAST(
-  valueNode: ?ValueNode,
-  type: GraphQLInputType,
-  variables?: ?ObjMap<mixed>,
-): mixed | void {
-  if (!valueNode) {
-    // When there is no node, then there is also no value.
-    // Importantly, this is different from returning the value null.
-    return;
-  }
-
-  if (valueNode.kind === Kind.VARIABLE) {
-    const variableName = valueNode.name.value;
-    if (variables == null || variables[variableName] === undefined) {
-      // No valid return value.
-      return;
-    }
-    const variableValue = variables[variableName];
-    if (variableValue === null && isNonNullType(type)) {
-      return; // Invalid: intentionally return no value.
-    }
-    // Note: This does no further checking that this variable is correct.
-    // This assumes that this query has been validated and the variable
-    // usage here is of the correct type.
-    return variableValue;
-  }
-
-  if (isNonNullType(type)) {
-    if (valueNode.kind === Kind.NULL) {
-      return; // Invalid: intentionally return no value.
-    }
-    return valueFromAST(valueNode, type.ofType, variables);
-  }
-
-  if (valueNode.kind === Kind.NULL) {
-    // This is explicitly returning the value null.
-    return null;
-  }
-
-  if (isListType(type)) {
-    const itemType = type.ofType;
-    if (valueNode.kind === Kind.LIST) {
-      const coercedValues = [];
-      for (const itemNode of valueNode.values) {
-        if (isMissingVariable(itemNode, variables)) {
-          // If an array contains a missing variable, it is either coerced to
-          // null or if the item type is non-null, it considered invalid.
-          if (isNonNullType(itemType)) {
-            return; // Invalid: intentionally return no value.
-          }
-          coercedValues.push(null);
-        } else {
-          const itemValue = valueFromAST(itemNode, itemType, variables);
-          if (itemValue === undefined) {
-            return; // Invalid: intentionally return no value.
-          }
-          coercedValues.push(itemValue);
-        }
-      }
-      return coercedValues;
-    }
-    const coercedValue = valueFromAST(valueNode, itemType, variables);
-    if (coercedValue === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-    return [coercedValue];
-  }
-
-  if (isInputObjectType(type)) {
-    if (valueNode.kind !== Kind.OBJECT) {
-      return; // Invalid: intentionally return no value.
-    }
-    const coercedObj = Object.create(null);
-    const fieldNodes = keyMap(valueNode.fields, field => field.name.value);
-    for (const field of objectValues(type.getFields())) {
-      const fieldNode = fieldNodes[field.name];
-      if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {
-        if (field.defaultValue !== undefined) {
-          coercedObj[field.name] = field.defaultValue;
-        } else if (isNonNullType(field.type)) {
-          return; // Invalid: intentionally return no value.
-        }
-        continue;
-      }
-      const fieldValue = valueFromAST(fieldNode.value, field.type, variables);
-      if (fieldValue === undefined) {
-        return; // Invalid: intentionally return no value.
-      }
-      coercedObj[field.name] = fieldValue;
-    }
-    return coercedObj;
-  }
-
-  if (isLeafType(type)) {
-    // Scalars and Enums fulfill parsing a literal value via parseLiteral().
-    // Invalid values represent a failure to parse correctly, in which case
-    // no value is returned.
-    let result;
-    try {
-      result = type.parseLiteral(valueNode, variables);
-    } catch (_error) {
-      return; // Invalid: intentionally return no value.
-    }
-    if (result === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-    return result;
-  }
-
-  // Not reachable. All possible input types have been considered.
-  invariant(false, 'Unexpected input type: ' + inspect((type: empty)));
-}
-
-// Returns true if the provided valueNode is a variable which is not defined
-// in the set of variables.
-function isMissingVariable(valueNode, variables) {
-  return (
-    valueNode.kind === Kind.VARIABLE &&
-    (variables == null || variables[valueNode.name.value] === undefined)
-  );
-}
diff --git a/node_modules/graphql/utilities/valueFromAST.mjs b/node_modules/graphql/utilities/valueFromAST.mjs
deleted file mode 100644
index 0ad5197..0000000
--- a/node_modules/graphql/utilities/valueFromAST.mjs
+++ /dev/null
@@ -1,172 +0,0 @@
-import objectValues from "../polyfills/objectValues.mjs";
-import keyMap from "../jsutils/keyMap.mjs";
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import { Kind } from "../language/kinds.mjs";
-import { isLeafType, isInputObjectType, isListType, isNonNullType } from "../type/definition.mjs";
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * A GraphQL type must be provided, which will be used to interpret different
- * GraphQL Value literals.
- *
- * Returns `undefined` when the value could not be validly coerced according to
- * the provided type.
- *
- * | GraphQL Value        | JSON Value    |
- * | -------------------- | ------------- |
- * | Input Object         | Object        |
- * | List                 | Array         |
- * | Boolean              | Boolean       |
- * | String               | String        |
- * | Int / Float          | Number        |
- * | Enum Value           | Mixed         |
- * | NullValue            | null          |
- *
- */
-
-export function valueFromAST(valueNode, type, variables) {
-  if (!valueNode) {
-    // When there is no node, then there is also no value.
-    // Importantly, this is different from returning the value null.
-    return;
-  }
-
-  if (valueNode.kind === Kind.VARIABLE) {
-    var variableName = valueNode.name.value;
-
-    if (variables == null || variables[variableName] === undefined) {
-      // No valid return value.
-      return;
-    }
-
-    var variableValue = variables[variableName];
-
-    if (variableValue === null && isNonNullType(type)) {
-      return; // Invalid: intentionally return no value.
-    } // Note: This does no further checking that this variable is correct.
-    // This assumes that this query has been validated and the variable
-    // usage here is of the correct type.
-
-
-    return variableValue;
-  }
-
-  if (isNonNullType(type)) {
-    if (valueNode.kind === Kind.NULL) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return valueFromAST(valueNode, type.ofType, variables);
-  }
-
-  if (valueNode.kind === Kind.NULL) {
-    // This is explicitly returning the value null.
-    return null;
-  }
-
-  if (isListType(type)) {
-    var itemType = type.ofType;
-
-    if (valueNode.kind === Kind.LIST) {
-      var coercedValues = [];
-
-      for (var _i2 = 0, _valueNode$values2 = valueNode.values; _i2 < _valueNode$values2.length; _i2++) {
-        var itemNode = _valueNode$values2[_i2];
-
-        if (isMissingVariable(itemNode, variables)) {
-          // If an array contains a missing variable, it is either coerced to
-          // null or if the item type is non-null, it considered invalid.
-          if (isNonNullType(itemType)) {
-            return; // Invalid: intentionally return no value.
-          }
-
-          coercedValues.push(null);
-        } else {
-          var itemValue = valueFromAST(itemNode, itemType, variables);
-
-          if (itemValue === undefined) {
-            return; // Invalid: intentionally return no value.
-          }
-
-          coercedValues.push(itemValue);
-        }
-      }
-
-      return coercedValues;
-    }
-
-    var coercedValue = valueFromAST(valueNode, itemType, variables);
-
-    if (coercedValue === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return [coercedValue];
-  }
-
-  if (isInputObjectType(type)) {
-    if (valueNode.kind !== Kind.OBJECT) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    var coercedObj = Object.create(null);
-    var fieldNodes = keyMap(valueNode.fields, function (field) {
-      return field.name.value;
-    });
-
-    for (var _i4 = 0, _objectValues2 = objectValues(type.getFields()); _i4 < _objectValues2.length; _i4++) {
-      var field = _objectValues2[_i4];
-      var fieldNode = fieldNodes[field.name];
-
-      if (!fieldNode || isMissingVariable(fieldNode.value, variables)) {
-        if (field.defaultValue !== undefined) {
-          coercedObj[field.name] = field.defaultValue;
-        } else if (isNonNullType(field.type)) {
-          return; // Invalid: intentionally return no value.
-        }
-
-        continue;
-      }
-
-      var fieldValue = valueFromAST(fieldNode.value, field.type, variables);
-
-      if (fieldValue === undefined) {
-        return; // Invalid: intentionally return no value.
-      }
-
-      coercedObj[field.name] = fieldValue;
-    }
-
-    return coercedObj;
-  }
-
-  /* istanbul ignore else */
-  if (isLeafType(type)) {
-    // Scalars and Enums fulfill parsing a literal value via parseLiteral().
-    // Invalid values represent a failure to parse correctly, in which case
-    // no value is returned.
-    var result;
-
-    try {
-      result = type.parseLiteral(valueNode, variables);
-    } catch (_error) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    if (result === undefined) {
-      return; // Invalid: intentionally return no value.
-    }
-
-    return result;
-  } // Not reachable. All possible input types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected input type: ' + inspect(type));
-} // Returns true if the provided valueNode is a variable which is not defined
-// in the set of variables.
-
-function isMissingVariable(valueNode, variables) {
-  return valueNode.kind === Kind.VARIABLE && (variables == null || variables[valueNode.name.value] === undefined);
-}
diff --git a/node_modules/graphql/utilities/valueFromASTUntyped.d.ts b/node_modules/graphql/utilities/valueFromASTUntyped.d.ts
deleted file mode 100644
index ab7512e..0000000
--- a/node_modules/graphql/utilities/valueFromASTUntyped.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { ValueNode } from '../language/ast';
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value
- * will reflect the provided GraphQL value AST.
- *
- * | GraphQL Value        | JavaScript Value |
- * | -------------------- | ---------------- |
- * | Input Object         | Object           |
- * | List                 | Array            |
- * | Boolean              | Boolean          |
- * | String / Enum        | String           |
- * | Int / Float          | Number           |
- * | Null                 | null             |
- *
- */
-export function valueFromASTUntyped(
-  valueNode: ValueNode,
-  variables?: Maybe<{ [key: string]: any }>,
-): any;
diff --git a/node_modules/graphql/utilities/valueFromASTUntyped.js b/node_modules/graphql/utilities/valueFromASTUntyped.js
deleted file mode 100644
index 5f005ed..0000000
--- a/node_modules/graphql/utilities/valueFromASTUntyped.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.valueFromASTUntyped = valueFromASTUntyped;
-
-var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
-
-var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
-
-var _kinds = require("../language/kinds");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value
- * will reflect the provided GraphQL value AST.
- *
- * | GraphQL Value        | JavaScript Value |
- * | -------------------- | ---------------- |
- * | Input Object         | Object           |
- * | List                 | Array            |
- * | Boolean              | Boolean          |
- * | String / Enum        | String           |
- * | Int / Float          | Number           |
- * | Null                 | null             |
- *
- */
-function valueFromASTUntyped(valueNode, variables) {
-  switch (valueNode.kind) {
-    case _kinds.Kind.NULL:
-      return null;
-
-    case _kinds.Kind.INT:
-      return parseInt(valueNode.value, 10);
-
-    case _kinds.Kind.FLOAT:
-      return parseFloat(valueNode.value);
-
-    case _kinds.Kind.STRING:
-    case _kinds.Kind.ENUM:
-    case _kinds.Kind.BOOLEAN:
-      return valueNode.value;
-
-    case _kinds.Kind.LIST:
-      return valueNode.values.map(function (node) {
-        return valueFromASTUntyped(node, variables);
-      });
-
-    case _kinds.Kind.OBJECT:
-      return (0, _keyValMap.default)(valueNode.fields, function (field) {
-        return field.name.value;
-      }, function (field) {
-        return valueFromASTUntyped(field.value, variables);
-      });
-
-    case _kinds.Kind.VARIABLE:
-      return variables === null || variables === void 0 ? void 0 : variables[valueNode.name.value];
-  } // Not reachable. All possible value nodes have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected value node: ' + (0, _inspect.default)(valueNode));
-}
diff --git a/node_modules/graphql/utilities/valueFromASTUntyped.js.flow b/node_modules/graphql/utilities/valueFromASTUntyped.js.flow
deleted file mode 100644
index 5957ea8..0000000
--- a/node_modules/graphql/utilities/valueFromASTUntyped.js.flow
+++ /dev/null
@@ -1,56 +0,0 @@
-// @flow strict
-
-import inspect from '../jsutils/inspect';
-import invariant from '../jsutils/invariant';
-import keyValMap from '../jsutils/keyValMap';
-import { type ObjMap } from '../jsutils/ObjMap';
-
-import { Kind } from '../language/kinds';
-import { type ValueNode } from '../language/ast';
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value
- * will reflect the provided GraphQL value AST.
- *
- * | GraphQL Value        | JavaScript Value |
- * | -------------------- | ---------------- |
- * | Input Object         | Object           |
- * | List                 | Array            |
- * | Boolean              | Boolean          |
- * | String / Enum        | String           |
- * | Int / Float          | Number           |
- * | Null                 | null             |
- *
- */
-export function valueFromASTUntyped(
-  valueNode: ValueNode,
-  variables?: ?ObjMap<mixed>,
-): mixed {
-  switch (valueNode.kind) {
-    case Kind.NULL:
-      return null;
-    case Kind.INT:
-      return parseInt(valueNode.value, 10);
-    case Kind.FLOAT:
-      return parseFloat(valueNode.value);
-    case Kind.STRING:
-    case Kind.ENUM:
-    case Kind.BOOLEAN:
-      return valueNode.value;
-    case Kind.LIST:
-      return valueNode.values.map(node => valueFromASTUntyped(node, variables));
-    case Kind.OBJECT:
-      return keyValMap(
-        valueNode.fields,
-        field => field.name.value,
-        field => valueFromASTUntyped(field.value, variables),
-      );
-    case Kind.VARIABLE:
-      return variables?.[valueNode.name.value];
-  }
-
-  // Not reachable. All possible value nodes have been considered.
-  invariant(false, 'Unexpected value node: ' + inspect((valueNode: empty)));
-}
diff --git a/node_modules/graphql/utilities/valueFromASTUntyped.mjs b/node_modules/graphql/utilities/valueFromASTUntyped.mjs
deleted file mode 100644
index 9ae45e3..0000000
--- a/node_modules/graphql/utilities/valueFromASTUntyped.mjs
+++ /dev/null
@@ -1,57 +0,0 @@
-import inspect from "../jsutils/inspect.mjs";
-import invariant from "../jsutils/invariant.mjs";
-import keyValMap from "../jsutils/keyValMap.mjs";
-import { Kind } from "../language/kinds.mjs";
-
-/**
- * Produces a JavaScript value given a GraphQL Value AST.
- *
- * Unlike `valueFromAST()`, no type is provided. The resulting JavaScript value
- * will reflect the provided GraphQL value AST.
- *
- * | GraphQL Value        | JavaScript Value |
- * | -------------------- | ---------------- |
- * | Input Object         | Object           |
- * | List                 | Array            |
- * | Boolean              | Boolean          |
- * | String / Enum        | String           |
- * | Int / Float          | Number           |
- * | Null                 | null             |
- *
- */
-export function valueFromASTUntyped(valueNode, variables) {
-  switch (valueNode.kind) {
-    case Kind.NULL:
-      return null;
-
-    case Kind.INT:
-      return parseInt(valueNode.value, 10);
-
-    case Kind.FLOAT:
-      return parseFloat(valueNode.value);
-
-    case Kind.STRING:
-    case Kind.ENUM:
-    case Kind.BOOLEAN:
-      return valueNode.value;
-
-    case Kind.LIST:
-      return valueNode.values.map(function (node) {
-        return valueFromASTUntyped(node, variables);
-      });
-
-    case Kind.OBJECT:
-      return keyValMap(valueNode.fields, function (field) {
-        return field.name.value;
-      }, function (field) {
-        return valueFromASTUntyped(field.value, variables);
-      });
-
-    case Kind.VARIABLE:
-      return variables === null || variables === void 0 ? void 0 : variables[valueNode.name.value];
-  } // Not reachable. All possible value nodes have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected value node: ' + inspect(valueNode));
-}
diff --git a/node_modules/graphql/validation/ValidationContext.d.ts b/node_modules/graphql/validation/ValidationContext.d.ts
deleted file mode 100644
index 1591a46..0000000
--- a/node_modules/graphql/validation/ValidationContext.d.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-import { GraphQLError } from '../error/GraphQLError';
-import { ASTVisitor } from '../language/visitor';
-import {
-  DocumentNode,
-  OperationDefinitionNode,
-  VariableNode,
-  SelectionSetNode,
-  FragmentSpreadNode,
-  FragmentDefinitionNode,
-} from '../language/ast';
-import { GraphQLSchema } from '../type/schema';
-import { GraphQLDirective } from '../type/directives';
-import {
-  GraphQLInputType,
-  GraphQLOutputType,
-  GraphQLCompositeType,
-  GraphQLField,
-  GraphQLArgument,
-} from '../type/definition';
-import { TypeInfo } from '../utilities/TypeInfo';
-
-type NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;
-type VariableUsage = {
-  readonly node: VariableNode;
-  readonly type: Maybe<GraphQLInputType>;
-  readonly defaultValue: Maybe<any>;
-};
-
-/**
- * An instance of this class is passed as the "this" context to all validators,
- * allowing access to commonly useful contextual information from within a
- * validation rule.
- */
-export class ASTValidationContext {
-  constructor(ast: DocumentNode, onError: (err: GraphQLError) => void);
-
-  reportError(error: GraphQLError): undefined;
-
-  getDocument(): DocumentNode;
-
-  getFragment(name: string): Maybe<FragmentDefinitionNode>;
-
-  getFragmentSpreads(node: SelectionSetNode): ReadonlyArray<FragmentSpreadNode>;
-
-  getRecursivelyReferencedFragments(
-    operation: OperationDefinitionNode,
-  ): ReadonlyArray<FragmentDefinitionNode>;
-}
-
-export class SDLValidationContext extends ASTValidationContext {
-  constructor(
-    ast: DocumentNode,
-    schema: Maybe<GraphQLSchema>,
-    onError: (err: GraphQLError) => void,
-  );
-
-  getSchema(): Maybe<GraphQLSchema>;
-}
-
-export type SDLValidationRule = (context: SDLValidationContext) => ASTVisitor;
-
-export class ValidationContext extends ASTValidationContext {
-  constructor(
-    schema: GraphQLSchema,
-    ast: DocumentNode,
-    typeInfo: TypeInfo,
-    onError: (err: GraphQLError) => void,
-  );
-
-  getSchema(): GraphQLSchema;
-
-  getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage>;
-
-  getRecursivelyReferencedFragments(
-    operation: OperationDefinitionNode,
-  ): ReadonlyArray<FragmentDefinitionNode>;
-
-  getType(): Maybe<GraphQLOutputType>;
-
-  getParentType(): Maybe<GraphQLCompositeType>;
-
-  getInputType(): Maybe<GraphQLInputType>;
-
-  getParentInputType(): Maybe<GraphQLInputType>;
-
-  getFieldDef(): Maybe<GraphQLField<any, any>>;
-
-  getDirective(): Maybe<GraphQLDirective>;
-
-  getArgument(): Maybe<GraphQLArgument>;
-}
-
-export type ValidationRule = (context: ValidationContext) => ASTVisitor;
diff --git a/node_modules/graphql/validation/ValidationContext.js b/node_modules/graphql/validation/ValidationContext.js
deleted file mode 100644
index 350ef06..0000000
--- a/node_modules/graphql/validation/ValidationContext.js
+++ /dev/null
@@ -1,243 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ValidationContext = exports.SDLValidationContext = exports.ASTValidationContext = void 0;
-
-var _kinds = require("../language/kinds");
-
-var _visitor = require("../language/visitor");
-
-var _TypeInfo = require("../utilities/TypeInfo");
-
-function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
-
-/**
- * An instance of this class is passed as the "this" context to all validators,
- * allowing access to commonly useful contextual information from within a
- * validation rule.
- */
-var ASTValidationContext =
-/*#__PURE__*/
-function () {
-  function ASTValidationContext(ast, onError) {
-    this._ast = ast;
-    this._fragments = undefined;
-    this._fragmentSpreads = new Map();
-    this._recursivelyReferencedFragments = new Map();
-    this._onError = onError;
-  }
-
-  var _proto = ASTValidationContext.prototype;
-
-  _proto.reportError = function reportError(error) {
-    this._onError(error);
-  };
-
-  _proto.getDocument = function getDocument() {
-    return this._ast;
-  };
-
-  _proto.getFragment = function getFragment(name) {
-    var fragments = this._fragments;
-
-    if (!fragments) {
-      this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {
-        if (statement.kind === _kinds.Kind.FRAGMENT_DEFINITION) {
-          frags[statement.name.value] = statement;
-        }
-
-        return frags;
-      }, Object.create(null));
-    }
-
-    return fragments[name];
-  };
-
-  _proto.getFragmentSpreads = function getFragmentSpreads(node) {
-    var spreads = this._fragmentSpreads.get(node);
-
-    if (!spreads) {
-      spreads = [];
-      var setsToVisit = [node];
-
-      while (setsToVisit.length !== 0) {
-        var set = setsToVisit.pop();
-
-        for (var _i2 = 0, _set$selections2 = set.selections; _i2 < _set$selections2.length; _i2++) {
-          var selection = _set$selections2[_i2];
-
-          if (selection.kind === _kinds.Kind.FRAGMENT_SPREAD) {
-            spreads.push(selection);
-          } else if (selection.selectionSet) {
-            setsToVisit.push(selection.selectionSet);
-          }
-        }
-      }
-
-      this._fragmentSpreads.set(node, spreads);
-    }
-
-    return spreads;
-  };
-
-  _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
-    var fragments = this._recursivelyReferencedFragments.get(operation);
-
-    if (!fragments) {
-      fragments = [];
-      var collectedNames = Object.create(null);
-      var nodesToVisit = [operation.selectionSet];
-
-      while (nodesToVisit.length !== 0) {
-        var node = nodesToVisit.pop();
-
-        for (var _i4 = 0, _this$getFragmentSpre2 = this.getFragmentSpreads(node); _i4 < _this$getFragmentSpre2.length; _i4++) {
-          var spread = _this$getFragmentSpre2[_i4];
-          var fragName = spread.name.value;
-
-          if (collectedNames[fragName] !== true) {
-            collectedNames[fragName] = true;
-            var fragment = this.getFragment(fragName);
-
-            if (fragment) {
-              fragments.push(fragment);
-              nodesToVisit.push(fragment.selectionSet);
-            }
-          }
-        }
-      }
-
-      this._recursivelyReferencedFragments.set(operation, fragments);
-    }
-
-    return fragments;
-  };
-
-  return ASTValidationContext;
-}();
-
-exports.ASTValidationContext = ASTValidationContext;
-
-var SDLValidationContext =
-/*#__PURE__*/
-function (_ASTValidationContext) {
-  _inheritsLoose(SDLValidationContext, _ASTValidationContext);
-
-  function SDLValidationContext(ast, schema, onError) {
-    var _this;
-
-    _this = _ASTValidationContext.call(this, ast, onError) || this;
-    _this._schema = schema;
-    return _this;
-  }
-
-  var _proto2 = SDLValidationContext.prototype;
-
-  _proto2.getSchema = function getSchema() {
-    return this._schema;
-  };
-
-  return SDLValidationContext;
-}(ASTValidationContext);
-
-exports.SDLValidationContext = SDLValidationContext;
-
-var ValidationContext =
-/*#__PURE__*/
-function (_ASTValidationContext2) {
-  _inheritsLoose(ValidationContext, _ASTValidationContext2);
-
-  function ValidationContext(schema, ast, typeInfo, onError) {
-    var _this2;
-
-    _this2 = _ASTValidationContext2.call(this, ast, onError) || this;
-    _this2._schema = schema;
-    _this2._typeInfo = typeInfo;
-    _this2._variableUsages = new Map();
-    _this2._recursiveVariableUsages = new Map();
-    return _this2;
-  }
-
-  var _proto3 = ValidationContext.prototype;
-
-  _proto3.getSchema = function getSchema() {
-    return this._schema;
-  };
-
-  _proto3.getVariableUsages = function getVariableUsages(node) {
-    var usages = this._variableUsages.get(node);
-
-    if (!usages) {
-      var newUsages = [];
-      var typeInfo = new _TypeInfo.TypeInfo(this._schema);
-      (0, _visitor.visit)(node, (0, _TypeInfo.visitWithTypeInfo)(typeInfo, {
-        VariableDefinition: function VariableDefinition() {
-          return false;
-        },
-        Variable: function Variable(variable) {
-          newUsages.push({
-            node: variable,
-            type: typeInfo.getInputType(),
-            defaultValue: typeInfo.getDefaultValue()
-          });
-        }
-      }));
-      usages = newUsages;
-
-      this._variableUsages.set(node, usages);
-    }
-
-    return usages;
-  };
-
-  _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {
-    var usages = this._recursiveVariableUsages.get(operation);
-
-    if (!usages) {
-      usages = this.getVariableUsages(operation);
-
-      for (var _i6 = 0, _this$getRecursivelyR2 = this.getRecursivelyReferencedFragments(operation); _i6 < _this$getRecursivelyR2.length; _i6++) {
-        var frag = _this$getRecursivelyR2[_i6];
-        usages = usages.concat(this.getVariableUsages(frag));
-      }
-
-      this._recursiveVariableUsages.set(operation, usages);
-    }
-
-    return usages;
-  };
-
-  _proto3.getType = function getType() {
-    return this._typeInfo.getType();
-  };
-
-  _proto3.getParentType = function getParentType() {
-    return this._typeInfo.getParentType();
-  };
-
-  _proto3.getInputType = function getInputType() {
-    return this._typeInfo.getInputType();
-  };
-
-  _proto3.getParentInputType = function getParentInputType() {
-    return this._typeInfo.getParentInputType();
-  };
-
-  _proto3.getFieldDef = function getFieldDef() {
-    return this._typeInfo.getFieldDef();
-  };
-
-  _proto3.getDirective = function getDirective() {
-    return this._typeInfo.getDirective();
-  };
-
-  _proto3.getArgument = function getArgument() {
-    return this._typeInfo.getArgument();
-  };
-
-  return ValidationContext;
-}(ASTValidationContext);
-
-exports.ValidationContext = ValidationContext;
diff --git a/node_modules/graphql/validation/ValidationContext.js.flow b/node_modules/graphql/validation/ValidationContext.js.flow
deleted file mode 100644
index a8f720a..0000000
--- a/node_modules/graphql/validation/ValidationContext.js.flow
+++ /dev/null
@@ -1,248 +0,0 @@
-// @flow strict
-
-import { type ObjMap } from '../jsutils/ObjMap';
-
-import { type GraphQLError } from '../error/GraphQLError';
-
-import { Kind } from '../language/kinds';
-import { type ASTVisitor, visit } from '../language/visitor';
-import {
-  type DocumentNode,
-  type OperationDefinitionNode,
-  type VariableNode,
-  type SelectionSetNode,
-  type FragmentSpreadNode,
-  type FragmentDefinitionNode,
-} from '../language/ast';
-
-import { type GraphQLSchema } from '../type/schema';
-import { type GraphQLDirective } from '../type/directives';
-import {
-  type GraphQLInputType,
-  type GraphQLOutputType,
-  type GraphQLCompositeType,
-  type GraphQLField,
-  type GraphQLArgument,
-} from '../type/definition';
-
-import { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo';
-
-type NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;
-type VariableUsage = {|
-  +node: VariableNode,
-  +type: ?GraphQLInputType,
-  +defaultValue: ?mixed,
-|};
-
-/**
- * An instance of this class is passed as the "this" context to all validators,
- * allowing access to commonly useful contextual information from within a
- * validation rule.
- */
-export class ASTValidationContext {
-  _ast: DocumentNode;
-  _onError: (err: GraphQLError) => void;
-  _fragments: ?ObjMap<FragmentDefinitionNode>;
-  _fragmentSpreads: Map<SelectionSetNode, $ReadOnlyArray<FragmentSpreadNode>>;
-  _recursivelyReferencedFragments: Map<
-    OperationDefinitionNode,
-    $ReadOnlyArray<FragmentDefinitionNode>,
-  >;
-
-  constructor(ast: DocumentNode, onError: (err: GraphQLError) => void): void {
-    this._ast = ast;
-    this._fragments = undefined;
-    this._fragmentSpreads = new Map();
-    this._recursivelyReferencedFragments = new Map();
-    this._onError = onError;
-  }
-
-  reportError(error: GraphQLError): void {
-    this._onError(error);
-  }
-
-  getDocument(): DocumentNode {
-    return this._ast;
-  }
-
-  getFragment(name: string): ?FragmentDefinitionNode {
-    let fragments = this._fragments;
-    if (!fragments) {
-      this._fragments = fragments = this.getDocument().definitions.reduce(
-        (frags, statement) => {
-          if (statement.kind === Kind.FRAGMENT_DEFINITION) {
-            frags[statement.name.value] = statement;
-          }
-          return frags;
-        },
-        Object.create(null),
-      );
-    }
-    return fragments[name];
-  }
-
-  getFragmentSpreads(
-    node: SelectionSetNode,
-  ): $ReadOnlyArray<FragmentSpreadNode> {
-    let spreads = this._fragmentSpreads.get(node);
-    if (!spreads) {
-      spreads = [];
-      const setsToVisit: Array<SelectionSetNode> = [node];
-      while (setsToVisit.length !== 0) {
-        const set = setsToVisit.pop();
-        for (const selection of set.selections) {
-          if (selection.kind === Kind.FRAGMENT_SPREAD) {
-            spreads.push(selection);
-          } else if (selection.selectionSet) {
-            setsToVisit.push(selection.selectionSet);
-          }
-        }
-      }
-      this._fragmentSpreads.set(node, spreads);
-    }
-    return spreads;
-  }
-
-  getRecursivelyReferencedFragments(
-    operation: OperationDefinitionNode,
-  ): $ReadOnlyArray<FragmentDefinitionNode> {
-    let fragments = this._recursivelyReferencedFragments.get(operation);
-    if (!fragments) {
-      fragments = [];
-      const collectedNames = Object.create(null);
-      const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];
-      while (nodesToVisit.length !== 0) {
-        const node = nodesToVisit.pop();
-        for (const spread of this.getFragmentSpreads(node)) {
-          const fragName = spread.name.value;
-          if (collectedNames[fragName] !== true) {
-            collectedNames[fragName] = true;
-            const fragment = this.getFragment(fragName);
-            if (fragment) {
-              fragments.push(fragment);
-              nodesToVisit.push(fragment.selectionSet);
-            }
-          }
-        }
-      }
-      this._recursivelyReferencedFragments.set(operation, fragments);
-    }
-    return fragments;
-  }
-}
-
-export type ASTValidationRule = ASTValidationContext => ASTVisitor;
-
-export class SDLValidationContext extends ASTValidationContext {
-  _schema: ?GraphQLSchema;
-
-  constructor(
-    ast: DocumentNode,
-    schema: ?GraphQLSchema,
-    onError: (err: GraphQLError) => void,
-  ): void {
-    super(ast, onError);
-    this._schema = schema;
-  }
-
-  getSchema(): ?GraphQLSchema {
-    return this._schema;
-  }
-}
-
-export type SDLValidationRule = SDLValidationContext => ASTVisitor;
-
-export class ValidationContext extends ASTValidationContext {
-  _schema: GraphQLSchema;
-  _typeInfo: TypeInfo;
-  _variableUsages: Map<NodeWithSelectionSet, $ReadOnlyArray<VariableUsage>>;
-  _recursiveVariableUsages: Map<
-    OperationDefinitionNode,
-    $ReadOnlyArray<VariableUsage>,
-  >;
-
-  constructor(
-    schema: GraphQLSchema,
-    ast: DocumentNode,
-    typeInfo: TypeInfo,
-    onError: (err: GraphQLError) => void,
-  ): void {
-    super(ast, onError);
-    this._schema = schema;
-    this._typeInfo = typeInfo;
-    this._variableUsages = new Map();
-    this._recursiveVariableUsages = new Map();
-  }
-
-  getSchema(): GraphQLSchema {
-    return this._schema;
-  }
-
-  getVariableUsages(node: NodeWithSelectionSet): $ReadOnlyArray<VariableUsage> {
-    let usages = this._variableUsages.get(node);
-    if (!usages) {
-      const newUsages = [];
-      const typeInfo = new TypeInfo(this._schema);
-      visit(
-        node,
-        visitWithTypeInfo(typeInfo, {
-          VariableDefinition: () => false,
-          Variable(variable) {
-            newUsages.push({
-              node: variable,
-              type: typeInfo.getInputType(),
-              defaultValue: typeInfo.getDefaultValue(),
-            });
-          },
-        }),
-      );
-      usages = newUsages;
-      this._variableUsages.set(node, usages);
-    }
-    return usages;
-  }
-
-  getRecursiveVariableUsages(
-    operation: OperationDefinitionNode,
-  ): $ReadOnlyArray<VariableUsage> {
-    let usages = this._recursiveVariableUsages.get(operation);
-    if (!usages) {
-      usages = this.getVariableUsages(operation);
-      for (const frag of this.getRecursivelyReferencedFragments(operation)) {
-        usages = usages.concat(this.getVariableUsages(frag));
-      }
-      this._recursiveVariableUsages.set(operation, usages);
-    }
-    return usages;
-  }
-
-  getType(): ?GraphQLOutputType {
-    return this._typeInfo.getType();
-  }
-
-  getParentType(): ?GraphQLCompositeType {
-    return this._typeInfo.getParentType();
-  }
-
-  getInputType(): ?GraphQLInputType {
-    return this._typeInfo.getInputType();
-  }
-
-  getParentInputType(): ?GraphQLInputType {
-    return this._typeInfo.getParentInputType();
-  }
-
-  getFieldDef(): ?GraphQLField<mixed, mixed> {
-    return this._typeInfo.getFieldDef();
-  }
-
-  getDirective(): ?GraphQLDirective {
-    return this._typeInfo.getDirective();
-  }
-
-  getArgument(): ?GraphQLArgument {
-    return this._typeInfo.getArgument();
-  }
-}
-
-export type ValidationRule = ValidationContext => ASTVisitor;
diff --git a/node_modules/graphql/validation/ValidationContext.mjs b/node_modules/graphql/validation/ValidationContext.mjs
deleted file mode 100644
index 44eef74..0000000
--- a/node_modules/graphql/validation/ValidationContext.mjs
+++ /dev/null
@@ -1,226 +0,0 @@
-function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
-
-import { Kind } from "../language/kinds.mjs";
-import { visit } from "../language/visitor.mjs";
-import { TypeInfo, visitWithTypeInfo } from "../utilities/TypeInfo.mjs";
-
-/**
- * An instance of this class is passed as the "this" context to all validators,
- * allowing access to commonly useful contextual information from within a
- * validation rule.
- */
-export var ASTValidationContext =
-/*#__PURE__*/
-function () {
-  function ASTValidationContext(ast, onError) {
-    this._ast = ast;
-    this._fragments = undefined;
-    this._fragmentSpreads = new Map();
-    this._recursivelyReferencedFragments = new Map();
-    this._onError = onError;
-  }
-
-  var _proto = ASTValidationContext.prototype;
-
-  _proto.reportError = function reportError(error) {
-    this._onError(error);
-  };
-
-  _proto.getDocument = function getDocument() {
-    return this._ast;
-  };
-
-  _proto.getFragment = function getFragment(name) {
-    var fragments = this._fragments;
-
-    if (!fragments) {
-      this._fragments = fragments = this.getDocument().definitions.reduce(function (frags, statement) {
-        if (statement.kind === Kind.FRAGMENT_DEFINITION) {
-          frags[statement.name.value] = statement;
-        }
-
-        return frags;
-      }, Object.create(null));
-    }
-
-    return fragments[name];
-  };
-
-  _proto.getFragmentSpreads = function getFragmentSpreads(node) {
-    var spreads = this._fragmentSpreads.get(node);
-
-    if (!spreads) {
-      spreads = [];
-      var setsToVisit = [node];
-
-      while (setsToVisit.length !== 0) {
-        var set = setsToVisit.pop();
-
-        for (var _i2 = 0, _set$selections2 = set.selections; _i2 < _set$selections2.length; _i2++) {
-          var selection = _set$selections2[_i2];
-
-          if (selection.kind === Kind.FRAGMENT_SPREAD) {
-            spreads.push(selection);
-          } else if (selection.selectionSet) {
-            setsToVisit.push(selection.selectionSet);
-          }
-        }
-      }
-
-      this._fragmentSpreads.set(node, spreads);
-    }
-
-    return spreads;
-  };
-
-  _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
-    var fragments = this._recursivelyReferencedFragments.get(operation);
-
-    if (!fragments) {
-      fragments = [];
-      var collectedNames = Object.create(null);
-      var nodesToVisit = [operation.selectionSet];
-
-      while (nodesToVisit.length !== 0) {
-        var node = nodesToVisit.pop();
-
-        for (var _i4 = 0, _this$getFragmentSpre2 = this.getFragmentSpreads(node); _i4 < _this$getFragmentSpre2.length; _i4++) {
-          var spread = _this$getFragmentSpre2[_i4];
-          var fragName = spread.name.value;
-
-          if (collectedNames[fragName] !== true) {
-            collectedNames[fragName] = true;
-            var fragment = this.getFragment(fragName);
-
-            if (fragment) {
-              fragments.push(fragment);
-              nodesToVisit.push(fragment.selectionSet);
-            }
-          }
-        }
-      }
-
-      this._recursivelyReferencedFragments.set(operation, fragments);
-    }
-
-    return fragments;
-  };
-
-  return ASTValidationContext;
-}();
-export var SDLValidationContext =
-/*#__PURE__*/
-function (_ASTValidationContext) {
-  _inheritsLoose(SDLValidationContext, _ASTValidationContext);
-
-  function SDLValidationContext(ast, schema, onError) {
-    var _this;
-
-    _this = _ASTValidationContext.call(this, ast, onError) || this;
-    _this._schema = schema;
-    return _this;
-  }
-
-  var _proto2 = SDLValidationContext.prototype;
-
-  _proto2.getSchema = function getSchema() {
-    return this._schema;
-  };
-
-  return SDLValidationContext;
-}(ASTValidationContext);
-export var ValidationContext =
-/*#__PURE__*/
-function (_ASTValidationContext2) {
-  _inheritsLoose(ValidationContext, _ASTValidationContext2);
-
-  function ValidationContext(schema, ast, typeInfo, onError) {
-    var _this2;
-
-    _this2 = _ASTValidationContext2.call(this, ast, onError) || this;
-    _this2._schema = schema;
-    _this2._typeInfo = typeInfo;
-    _this2._variableUsages = new Map();
-    _this2._recursiveVariableUsages = new Map();
-    return _this2;
-  }
-
-  var _proto3 = ValidationContext.prototype;
-
-  _proto3.getSchema = function getSchema() {
-    return this._schema;
-  };
-
-  _proto3.getVariableUsages = function getVariableUsages(node) {
-    var usages = this._variableUsages.get(node);
-
-    if (!usages) {
-      var newUsages = [];
-      var typeInfo = new TypeInfo(this._schema);
-      visit(node, visitWithTypeInfo(typeInfo, {
-        VariableDefinition: function VariableDefinition() {
-          return false;
-        },
-        Variable: function Variable(variable) {
-          newUsages.push({
-            node: variable,
-            type: typeInfo.getInputType(),
-            defaultValue: typeInfo.getDefaultValue()
-          });
-        }
-      }));
-      usages = newUsages;
-
-      this._variableUsages.set(node, usages);
-    }
-
-    return usages;
-  };
-
-  _proto3.getRecursiveVariableUsages = function getRecursiveVariableUsages(operation) {
-    var usages = this._recursiveVariableUsages.get(operation);
-
-    if (!usages) {
-      usages = this.getVariableUsages(operation);
-
-      for (var _i6 = 0, _this$getRecursivelyR2 = this.getRecursivelyReferencedFragments(operation); _i6 < _this$getRecursivelyR2.length; _i6++) {
-        var frag = _this$getRecursivelyR2[_i6];
-        usages = usages.concat(this.getVariableUsages(frag));
-      }
-
-      this._recursiveVariableUsages.set(operation, usages);
-    }
-
-    return usages;
-  };
-
-  _proto3.getType = function getType() {
-    return this._typeInfo.getType();
-  };
-
-  _proto3.getParentType = function getParentType() {
-    return this._typeInfo.getParentType();
-  };
-
-  _proto3.getInputType = function getInputType() {
-    return this._typeInfo.getInputType();
-  };
-
-  _proto3.getParentInputType = function getParentInputType() {
-    return this._typeInfo.getParentInputType();
-  };
-
-  _proto3.getFieldDef = function getFieldDef() {
-    return this._typeInfo.getFieldDef();
-  };
-
-  _proto3.getDirective = function getDirective() {
-    return this._typeInfo.getDirective();
-  };
-
-  _proto3.getArgument = function getArgument() {
-    return this._typeInfo.getArgument();
-  };
-
-  return ValidationContext;
-}(ASTValidationContext);
diff --git a/node_modules/graphql/validation/index.d.ts b/node_modules/graphql/validation/index.d.ts
deleted file mode 100644
index 79317bf..0000000
--- a/node_modules/graphql/validation/index.d.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-export { validate } from './validate';
-
-export { ValidationContext, ValidationRule } from './ValidationContext';
-
-export { specifiedRules } from './specifiedRules';
-
-// Spec Section: "Executable Definitions"
-export { ExecutableDefinitionsRule } from './rules/ExecutableDefinitionsRule';
-
-// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-export { FieldsOnCorrectTypeRule } from './rules/FieldsOnCorrectTypeRule';
-
-// Spec Section: "Fragments on Composite Types"
-export { FragmentsOnCompositeTypesRule } from './rules/FragmentsOnCompositeTypesRule';
-
-// Spec Section: "Argument Names"
-export { KnownArgumentNamesRule } from './rules/KnownArgumentNamesRule';
-
-// Spec Section: "Directives Are Defined"
-export { KnownDirectivesRule } from './rules/KnownDirectivesRule';
-
-// Spec Section: "Fragment spread target defined"
-export { KnownFragmentNamesRule } from './rules/KnownFragmentNamesRule';
-
-// Spec Section: "Fragment Spread Type Existence"
-export { KnownTypeNamesRule } from './rules/KnownTypeNamesRule';
-
-// Spec Section: "Lone Anonymous Operation"
-export { LoneAnonymousOperationRule } from './rules/LoneAnonymousOperationRule';
-
-// Spec Section: "Fragments must not form cycles"
-export { NoFragmentCyclesRule } from './rules/NoFragmentCyclesRule';
-
-// Spec Section: "All Variable Used Defined"
-export { NoUndefinedVariablesRule } from './rules/NoUndefinedVariablesRule';
-
-// Spec Section: "Fragments must be used"
-export { NoUnusedFragmentsRule } from './rules/NoUnusedFragmentsRule';
-
-// Spec Section: "All Variables Used"
-export { NoUnusedVariablesRule } from './rules/NoUnusedVariablesRule';
-
-// Spec Section: "Field Selection Merging"
-export { OverlappingFieldsCanBeMergedRule } from './rules/OverlappingFieldsCanBeMergedRule';
-
-// Spec Section: "Fragment spread is possible"
-export { PossibleFragmentSpreadsRule } from './rules/PossibleFragmentSpreadsRule';
-
-// Spec Section: "Argument Optionality"
-export { ProvidedRequiredArgumentsRule } from './rules/ProvidedRequiredArgumentsRule';
-
-// Spec Section: "Leaf Field Selections"
-export { ScalarLeafsRule } from './rules/ScalarLeafsRule';
-
-// Spec Section: "Subscriptions with Single Root Field"
-export { SingleFieldSubscriptionsRule } from './rules/SingleFieldSubscriptionsRule';
-
-// Spec Section: "Argument Uniqueness"
-export { UniqueArgumentNamesRule } from './rules/UniqueArgumentNamesRule';
-
-// Spec Section: "Directives Are Unique Per Location"
-export { UniqueDirectivesPerLocationRule } from './rules/UniqueDirectivesPerLocationRule';
-
-// Spec Section: "Fragment Name Uniqueness"
-export { UniqueFragmentNamesRule } from './rules/UniqueFragmentNamesRule';
-
-// Spec Section: "Input Object Field Uniqueness"
-export { UniqueInputFieldNamesRule } from './rules/UniqueInputFieldNamesRule';
-
-// Spec Section: "Operation Name Uniqueness"
-export { UniqueOperationNamesRule } from './rules/UniqueOperationNamesRule';
-
-// Spec Section: "Variable Uniqueness"
-export { UniqueVariableNamesRule } from './rules/UniqueVariableNamesRule';
-
-// Spec Section: "Values Type Correctness"
-export { ValuesOfCorrectTypeRule } from './rules/ValuesOfCorrectTypeRule';
-
-// Spec Section: "Variables are Input Types"
-export { VariablesAreInputTypesRule } from './rules/VariablesAreInputTypesRule';
-
-// Spec Section: "All Variable Usages Are Allowed"
-export { VariablesInAllowedPositionRule } from './rules/VariablesInAllowedPositionRule';
-
-// SDL-specific validation rules
-export { LoneSchemaDefinitionRule } from './rules/LoneSchemaDefinitionRule';
-export { UniqueOperationTypesRule } from './rules/UniqueOperationTypesRule';
-export { UniqueTypeNamesRule } from './rules/UniqueTypeNamesRule';
-export { UniqueEnumValueNamesRule } from './rules/UniqueEnumValueNamesRule';
-export { UniqueFieldDefinitionNamesRule } from './rules/UniqueFieldDefinitionNamesRule';
-export { UniqueDirectiveNamesRule } from './rules/UniqueDirectiveNamesRule';
-export { PossibleTypeExtensionsRule } from './rules/PossibleTypeExtensionsRule';
diff --git a/node_modules/graphql/validation/index.js b/node_modules/graphql/validation/index.js
deleted file mode 100644
index d88fad0..0000000
--- a/node_modules/graphql/validation/index.js
+++ /dev/null
@@ -1,293 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "validate", {
-  enumerable: true,
-  get: function get() {
-    return _validate.validate;
-  }
-});
-Object.defineProperty(exports, "ValidationContext", {
-  enumerable: true,
-  get: function get() {
-    return _ValidationContext.ValidationContext;
-  }
-});
-Object.defineProperty(exports, "specifiedRules", {
-  enumerable: true,
-  get: function get() {
-    return _specifiedRules.specifiedRules;
-  }
-});
-Object.defineProperty(exports, "ExecutableDefinitionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _ExecutableDefinitionsRule.ExecutableDefinitionsRule;
-  }
-});
-Object.defineProperty(exports, "FieldsOnCorrectTypeRule", {
-  enumerable: true,
-  get: function get() {
-    return _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule;
-  }
-});
-Object.defineProperty(exports, "FragmentsOnCompositeTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule;
-  }
-});
-Object.defineProperty(exports, "KnownArgumentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _KnownArgumentNamesRule.KnownArgumentNamesRule;
-  }
-});
-Object.defineProperty(exports, "KnownDirectivesRule", {
-  enumerable: true,
-  get: function get() {
-    return _KnownDirectivesRule.KnownDirectivesRule;
-  }
-});
-Object.defineProperty(exports, "KnownFragmentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _KnownFragmentNamesRule.KnownFragmentNamesRule;
-  }
-});
-Object.defineProperty(exports, "KnownTypeNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _KnownTypeNamesRule.KnownTypeNamesRule;
-  }
-});
-Object.defineProperty(exports, "LoneAnonymousOperationRule", {
-  enumerable: true,
-  get: function get() {
-    return _LoneAnonymousOperationRule.LoneAnonymousOperationRule;
-  }
-});
-Object.defineProperty(exports, "NoFragmentCyclesRule", {
-  enumerable: true,
-  get: function get() {
-    return _NoFragmentCyclesRule.NoFragmentCyclesRule;
-  }
-});
-Object.defineProperty(exports, "NoUndefinedVariablesRule", {
-  enumerable: true,
-  get: function get() {
-    return _NoUndefinedVariablesRule.NoUndefinedVariablesRule;
-  }
-});
-Object.defineProperty(exports, "NoUnusedFragmentsRule", {
-  enumerable: true,
-  get: function get() {
-    return _NoUnusedFragmentsRule.NoUnusedFragmentsRule;
-  }
-});
-Object.defineProperty(exports, "NoUnusedVariablesRule", {
-  enumerable: true,
-  get: function get() {
-    return _NoUnusedVariablesRule.NoUnusedVariablesRule;
-  }
-});
-Object.defineProperty(exports, "OverlappingFieldsCanBeMergedRule", {
-  enumerable: true,
-  get: function get() {
-    return _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule;
-  }
-});
-Object.defineProperty(exports, "PossibleFragmentSpreadsRule", {
-  enumerable: true,
-  get: function get() {
-    return _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule;
-  }
-});
-Object.defineProperty(exports, "ProvidedRequiredArgumentsRule", {
-  enumerable: true,
-  get: function get() {
-    return _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule;
-  }
-});
-Object.defineProperty(exports, "ScalarLeafsRule", {
-  enumerable: true,
-  get: function get() {
-    return _ScalarLeafsRule.ScalarLeafsRule;
-  }
-});
-Object.defineProperty(exports, "SingleFieldSubscriptionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule;
-  }
-});
-Object.defineProperty(exports, "UniqueArgumentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueArgumentNamesRule.UniqueArgumentNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueDirectivesPerLocationRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule;
-  }
-});
-Object.defineProperty(exports, "UniqueFragmentNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueFragmentNamesRule.UniqueFragmentNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueInputFieldNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueOperationNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueOperationNamesRule.UniqueOperationNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueVariableNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueVariableNamesRule.UniqueVariableNamesRule;
-  }
-});
-Object.defineProperty(exports, "ValuesOfCorrectTypeRule", {
-  enumerable: true,
-  get: function get() {
-    return _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule;
-  }
-});
-Object.defineProperty(exports, "VariablesAreInputTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _VariablesAreInputTypesRule.VariablesAreInputTypesRule;
-  }
-});
-Object.defineProperty(exports, "VariablesInAllowedPositionRule", {
-  enumerable: true,
-  get: function get() {
-    return _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule;
-  }
-});
-Object.defineProperty(exports, "LoneSchemaDefinitionRule", {
-  enumerable: true,
-  get: function get() {
-    return _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule;
-  }
-});
-Object.defineProperty(exports, "UniqueOperationTypesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueOperationTypesRule.UniqueOperationTypesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueTypeNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueTypeNamesRule.UniqueTypeNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueEnumValueNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueFieldDefinitionNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule;
-  }
-});
-Object.defineProperty(exports, "UniqueDirectiveNamesRule", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule;
-  }
-});
-Object.defineProperty(exports, "PossibleTypeExtensionsRule", {
-  enumerable: true,
-  get: function get() {
-    return _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule;
-  }
-});
-
-var _validate = require("./validate");
-
-var _ValidationContext = require("./ValidationContext");
-
-var _specifiedRules = require("./specifiedRules");
-
-var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule");
-
-var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule");
-
-var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule");
-
-var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule");
-
-var _KnownDirectivesRule = require("./rules/KnownDirectivesRule");
-
-var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule");
-
-var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule");
-
-var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule");
-
-var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule");
-
-var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule");
-
-var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule");
-
-var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule");
-
-var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule");
-
-var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule");
-
-var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule");
-
-var _ScalarLeafsRule = require("./rules/ScalarLeafsRule");
-
-var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule");
-
-var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule");
-
-var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule");
-
-var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule");
-
-var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule");
-
-var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule");
-
-var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule");
-
-var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule");
-
-var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule");
-
-var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule");
-
-var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule");
-
-var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule");
-
-var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule");
-
-var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule");
-
-var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule");
-
-var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule");
-
-var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule");
diff --git a/node_modules/graphql/validation/index.js.flow b/node_modules/graphql/validation/index.js.flow
deleted file mode 100644
index 906b31e..0000000
--- a/node_modules/graphql/validation/index.js.flow
+++ /dev/null
@@ -1,96 +0,0 @@
-// @flow strict
-
-export { validate } from './validate';
-
-export { ValidationContext } from './ValidationContext';
-export type { ValidationRule } from './ValidationContext';
-
-// All validation rules in the GraphQL Specification.
-export { specifiedRules } from './specifiedRules';
-
-// Spec Section: "Executable Definitions"
-export { ExecutableDefinitionsRule } from './rules/ExecutableDefinitionsRule';
-
-// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-export { FieldsOnCorrectTypeRule } from './rules/FieldsOnCorrectTypeRule';
-
-// Spec Section: "Fragments on Composite Types"
-export { FragmentsOnCompositeTypesRule } from './rules/FragmentsOnCompositeTypesRule';
-
-// Spec Section: "Argument Names"
-export { KnownArgumentNamesRule } from './rules/KnownArgumentNamesRule';
-
-// Spec Section: "Directives Are Defined"
-export { KnownDirectivesRule } from './rules/KnownDirectivesRule';
-
-// Spec Section: "Fragment spread target defined"
-export { KnownFragmentNamesRule } from './rules/KnownFragmentNamesRule';
-
-// Spec Section: "Fragment Spread Type Existence"
-export { KnownTypeNamesRule } from './rules/KnownTypeNamesRule';
-
-// Spec Section: "Lone Anonymous Operation"
-export { LoneAnonymousOperationRule } from './rules/LoneAnonymousOperationRule';
-
-// Spec Section: "Fragments must not form cycles"
-export { NoFragmentCyclesRule } from './rules/NoFragmentCyclesRule';
-
-// Spec Section: "All Variable Used Defined"
-export { NoUndefinedVariablesRule } from './rules/NoUndefinedVariablesRule';
-
-// Spec Section: "Fragments must be used"
-export { NoUnusedFragmentsRule } from './rules/NoUnusedFragmentsRule';
-
-// Spec Section: "All Variables Used"
-export { NoUnusedVariablesRule } from './rules/NoUnusedVariablesRule';
-
-// Spec Section: "Field Selection Merging"
-export { OverlappingFieldsCanBeMergedRule } from './rules/OverlappingFieldsCanBeMergedRule';
-
-// Spec Section: "Fragment spread is possible"
-export { PossibleFragmentSpreadsRule } from './rules/PossibleFragmentSpreadsRule';
-
-// Spec Section: "Argument Optionality"
-export { ProvidedRequiredArgumentsRule } from './rules/ProvidedRequiredArgumentsRule';
-
-// Spec Section: "Leaf Field Selections"
-export { ScalarLeafsRule } from './rules/ScalarLeafsRule';
-
-// Spec Section: "Subscriptions with Single Root Field"
-export { SingleFieldSubscriptionsRule } from './rules/SingleFieldSubscriptionsRule';
-
-// Spec Section: "Argument Uniqueness"
-export { UniqueArgumentNamesRule } from './rules/UniqueArgumentNamesRule';
-
-// Spec Section: "Directives Are Unique Per Location"
-export { UniqueDirectivesPerLocationRule } from './rules/UniqueDirectivesPerLocationRule';
-
-// Spec Section: "Fragment Name Uniqueness"
-export { UniqueFragmentNamesRule } from './rules/UniqueFragmentNamesRule';
-
-// Spec Section: "Input Object Field Uniqueness"
-export { UniqueInputFieldNamesRule } from './rules/UniqueInputFieldNamesRule';
-
-// Spec Section: "Operation Name Uniqueness"
-export { UniqueOperationNamesRule } from './rules/UniqueOperationNamesRule';
-
-// Spec Section: "Variable Uniqueness"
-export { UniqueVariableNamesRule } from './rules/UniqueVariableNamesRule';
-
-// Spec Section: "Values Type Correctness"
-export { ValuesOfCorrectTypeRule } from './rules/ValuesOfCorrectTypeRule';
-
-// Spec Section: "Variables are Input Types"
-export { VariablesAreInputTypesRule } from './rules/VariablesAreInputTypesRule';
-
-// Spec Section: "All Variable Usages Are Allowed"
-export { VariablesInAllowedPositionRule } from './rules/VariablesInAllowedPositionRule';
-
-// SDL-specific validation rules
-export { LoneSchemaDefinitionRule } from './rules/LoneSchemaDefinitionRule';
-export { UniqueOperationTypesRule } from './rules/UniqueOperationTypesRule';
-export { UniqueTypeNamesRule } from './rules/UniqueTypeNamesRule';
-export { UniqueEnumValueNamesRule } from './rules/UniqueEnumValueNamesRule';
-export { UniqueFieldDefinitionNamesRule } from './rules/UniqueFieldDefinitionNamesRule';
-export { UniqueDirectiveNamesRule } from './rules/UniqueDirectiveNamesRule';
-export { PossibleTypeExtensionsRule } from './rules/PossibleTypeExtensionsRule';
diff --git a/node_modules/graphql/validation/index.mjs b/node_modules/graphql/validation/index.mjs
deleted file mode 100644
index 4957469..0000000
--- a/node_modules/graphql/validation/index.mjs
+++ /dev/null
@@ -1,64 +0,0 @@
-export { validate } from "./validate.mjs";
-export { ValidationContext } from "./ValidationContext.mjs";
-// All validation rules in the GraphQL Specification.
-export { specifiedRules } from "./specifiedRules.mjs"; // Spec Section: "Executable Definitions"
-
-export { ExecutableDefinitionsRule } from "./rules/ExecutableDefinitionsRule.mjs"; // Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-
-export { FieldsOnCorrectTypeRule } from "./rules/FieldsOnCorrectTypeRule.mjs"; // Spec Section: "Fragments on Composite Types"
-
-export { FragmentsOnCompositeTypesRule } from "./rules/FragmentsOnCompositeTypesRule.mjs"; // Spec Section: "Argument Names"
-
-export { KnownArgumentNamesRule } from "./rules/KnownArgumentNamesRule.mjs"; // Spec Section: "Directives Are Defined"
-
-export { KnownDirectivesRule } from "./rules/KnownDirectivesRule.mjs"; // Spec Section: "Fragment spread target defined"
-
-export { KnownFragmentNamesRule } from "./rules/KnownFragmentNamesRule.mjs"; // Spec Section: "Fragment Spread Type Existence"
-
-export { KnownTypeNamesRule } from "./rules/KnownTypeNamesRule.mjs"; // Spec Section: "Lone Anonymous Operation"
-
-export { LoneAnonymousOperationRule } from "./rules/LoneAnonymousOperationRule.mjs"; // Spec Section: "Fragments must not form cycles"
-
-export { NoFragmentCyclesRule } from "./rules/NoFragmentCyclesRule.mjs"; // Spec Section: "All Variable Used Defined"
-
-export { NoUndefinedVariablesRule } from "./rules/NoUndefinedVariablesRule.mjs"; // Spec Section: "Fragments must be used"
-
-export { NoUnusedFragmentsRule } from "./rules/NoUnusedFragmentsRule.mjs"; // Spec Section: "All Variables Used"
-
-export { NoUnusedVariablesRule } from "./rules/NoUnusedVariablesRule.mjs"; // Spec Section: "Field Selection Merging"
-
-export { OverlappingFieldsCanBeMergedRule } from "./rules/OverlappingFieldsCanBeMergedRule.mjs"; // Spec Section: "Fragment spread is possible"
-
-export { PossibleFragmentSpreadsRule } from "./rules/PossibleFragmentSpreadsRule.mjs"; // Spec Section: "Argument Optionality"
-
-export { ProvidedRequiredArgumentsRule } from "./rules/ProvidedRequiredArgumentsRule.mjs"; // Spec Section: "Leaf Field Selections"
-
-export { ScalarLeafsRule } from "./rules/ScalarLeafsRule.mjs"; // Spec Section: "Subscriptions with Single Root Field"
-
-export { SingleFieldSubscriptionsRule } from "./rules/SingleFieldSubscriptionsRule.mjs"; // Spec Section: "Argument Uniqueness"
-
-export { UniqueArgumentNamesRule } from "./rules/UniqueArgumentNamesRule.mjs"; // Spec Section: "Directives Are Unique Per Location"
-
-export { UniqueDirectivesPerLocationRule } from "./rules/UniqueDirectivesPerLocationRule.mjs"; // Spec Section: "Fragment Name Uniqueness"
-
-export { UniqueFragmentNamesRule } from "./rules/UniqueFragmentNamesRule.mjs"; // Spec Section: "Input Object Field Uniqueness"
-
-export { UniqueInputFieldNamesRule } from "./rules/UniqueInputFieldNamesRule.mjs"; // Spec Section: "Operation Name Uniqueness"
-
-export { UniqueOperationNamesRule } from "./rules/UniqueOperationNamesRule.mjs"; // Spec Section: "Variable Uniqueness"
-
-export { UniqueVariableNamesRule } from "./rules/UniqueVariableNamesRule.mjs"; // Spec Section: "Values Type Correctness"
-
-export { ValuesOfCorrectTypeRule } from "./rules/ValuesOfCorrectTypeRule.mjs"; // Spec Section: "Variables are Input Types"
-
-export { VariablesAreInputTypesRule } from "./rules/VariablesAreInputTypesRule.mjs"; // Spec Section: "All Variable Usages Are Allowed"
-
-export { VariablesInAllowedPositionRule } from "./rules/VariablesInAllowedPositionRule.mjs"; // SDL-specific validation rules
-
-export { LoneSchemaDefinitionRule } from "./rules/LoneSchemaDefinitionRule.mjs";
-export { UniqueOperationTypesRule } from "./rules/UniqueOperationTypesRule.mjs";
-export { UniqueTypeNamesRule } from "./rules/UniqueTypeNamesRule.mjs";
-export { UniqueEnumValueNamesRule } from "./rules/UniqueEnumValueNamesRule.mjs";
-export { UniqueFieldDefinitionNamesRule } from "./rules/UniqueFieldDefinitionNamesRule.mjs";
-export { UniqueDirectiveNamesRule } from "./rules/UniqueDirectiveNamesRule.mjs";
-export { PossibleTypeExtensionsRule } from "./rules/PossibleTypeExtensionsRule.mjs";
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts b/node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts
deleted file mode 100644
index 94557ad..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitions.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { ExecutableDefinitionsRule } from 'graphql'
- * or
- *   import { ExecutableDefinitionsRule } from 'graphql/validation'
- */
-export { ExecutableDefinitionsRule as ExecutableDefinitions } from './ExecutableDefinitionsRule';
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitions.js b/node_modules/graphql/validation/rules/ExecutableDefinitions.js
deleted file mode 100644
index 45dac1d..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitions.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "ExecutableDefinitions", {
-  enumerable: true,
-  get: function get() {
-    return _ExecutableDefinitionsRule.ExecutableDefinitionsRule;
-  }
-});
-
-var _ExecutableDefinitionsRule = require("./ExecutableDefinitionsRule");
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitions.js.flow b/node_modules/graphql/validation/rules/ExecutableDefinitions.js.flow
deleted file mode 100644
index b9ee751..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitions.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { ExecutableDefinitionsRule } from 'graphql'
- * or
- *   import { ExecutableDefinitionsRule } from 'graphql/validation'
- */
-export { ExecutableDefinitionsRule as ExecutableDefinitions } from './ExecutableDefinitionsRule';
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitions.mjs b/node_modules/graphql/validation/rules/ExecutableDefinitions.mjs
deleted file mode 100644
index 9dc914e..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitions.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { ExecutableDefinitionsRule } from 'graphql'
- * or
- *   import { ExecutableDefinitionsRule } from 'graphql/validation'
- */
-export { ExecutableDefinitionsRule as ExecutableDefinitions } from "./ExecutableDefinitionsRule.mjs";
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.d.ts b/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.d.ts
deleted file mode 100644
index 9709256..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Executable definitions
- *
- * A GraphQL document is only valid for execution if all definitions are either
- * operation or fragment definitions.
- */
-export function ExecutableDefinitionsRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js b/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js
deleted file mode 100644
index de6d29c..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _predicates = require("../../language/predicates");
-
-/**
- * Executable definitions
- *
- * A GraphQL document is only valid for execution if all definitions are either
- * operation or fragment definitions.
- */
-function ExecutableDefinitionsRule(context) {
-  return {
-    Document: function Document(node) {
-      for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {
-        var definition = _node$definitions2[_i2];
-
-        if (!(0, _predicates.isExecutableDefinitionNode)(definition)) {
-          var defName = definition.kind === _kinds.Kind.SCHEMA_DEFINITION || definition.kind === _kinds.Kind.SCHEMA_EXTENSION ? 'schema' : '"' + definition.name.value + '"';
-          context.reportError(new _GraphQLError.GraphQLError("The ".concat(defName, " definition is not executable."), definition));
-        }
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js.flow b/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js.flow
deleted file mode 100644
index 4ae128f..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.js.flow
+++ /dev/null
@@ -1,40 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-import { isExecutableDefinitionNode } from '../../language/predicates';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Executable definitions
- *
- * A GraphQL document is only valid for execution if all definitions are either
- * operation or fragment definitions.
- */
-export function ExecutableDefinitionsRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  return {
-    Document(node) {
-      for (const definition of node.definitions) {
-        if (!isExecutableDefinitionNode(definition)) {
-          const defName =
-            definition.kind === Kind.SCHEMA_DEFINITION ||
-            definition.kind === Kind.SCHEMA_EXTENSION
-              ? 'schema'
-              : '"' + definition.name.value + '"';
-          context.reportError(
-            new GraphQLError(
-              `The ${defName} definition is not executable.`,
-              definition,
-            ),
-          );
-        }
-      }
-      return false;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs b/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs
deleted file mode 100644
index c47b996..0000000
--- a/node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs
+++ /dev/null
@@ -1,26 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { isExecutableDefinitionNode } from "../../language/predicates.mjs";
-
-/**
- * Executable definitions
- *
- * A GraphQL document is only valid for execution if all definitions are either
- * operation or fragment definitions.
- */
-export function ExecutableDefinitionsRule(context) {
-  return {
-    Document: function Document(node) {
-      for (var _i2 = 0, _node$definitions2 = node.definitions; _i2 < _node$definitions2.length; _i2++) {
-        var definition = _node$definitions2[_i2];
-
-        if (!isExecutableDefinitionNode(definition)) {
-          var defName = definition.kind === Kind.SCHEMA_DEFINITION || definition.kind === Kind.SCHEMA_EXTENSION ? 'schema' : '"' + definition.name.value + '"';
-          context.reportError(new GraphQLError("The ".concat(defName, " definition is not executable."), definition));
-        }
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.d.ts b/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.d.ts
deleted file mode 100644
index 6091c6c..0000000
--- a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Fields on correct type
- *
- * A GraphQL document is only valid if all fields selected are defined by the
- * parent type, or are an allowed meta field such as __typename.
- */
-export function FieldsOnCorrectTypeRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js b/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js
deleted file mode 100644
index 9a3f8ce..0000000
--- a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js
+++ /dev/null
@@ -1,130 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.FieldsOnCorrectTypeRule = FieldsOnCorrectTypeRule;
-
-var _arrayFrom = _interopRequireDefault(require("../../polyfills/arrayFrom"));
-
-var _didYouMean = _interopRequireDefault(require("../../jsutils/didYouMean"));
-
-var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _definition = require("../../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Fields on correct type
- *
- * A GraphQL document is only valid if all fields selected are defined by the
- * parent type, or are an allowed meta field such as __typename.
- */
-function FieldsOnCorrectTypeRule(context) {
-  return {
-    Field: function Field(node) {
-      var type = context.getParentType();
-
-      if (type) {
-        var fieldDef = context.getFieldDef();
-
-        if (!fieldDef) {
-          // This field doesn't exist, lets look for suggestions.
-          var schema = context.getSchema();
-          var fieldName = node.name.value; // First determine if there are any suggested types to condition on.
-
-          var suggestion = (0, _didYouMean.default)('to use an inline fragment on', getSuggestedTypeNames(schema, type, fieldName)); // If there are no suggested types, then perhaps this was a typo?
-
-          if (suggestion === '') {
-            suggestion = (0, _didYouMean.default)(getSuggestedFieldNames(type, fieldName));
-          } // Report an error, including helpful suggestions.
-
-
-          context.reportError(new _GraphQLError.GraphQLError("Cannot query field \"".concat(fieldName, "\" on type \"").concat(type.name, "\".") + suggestion, node));
-        }
-      }
-    }
-  };
-}
-/**
- * Go through all of the implementations of type, as well as the interfaces that
- * they implement. If any of those types include the provided field, suggest them,
- * sorted by how often the type is referenced.
- */
-
-
-function getSuggestedTypeNames(schema, type, fieldName) {
-  if (!(0, _definition.isAbstractType)(type)) {
-    // Must be an Object type, which does not have possible fields.
-    return [];
-  }
-
-  var suggestedTypes = new Set();
-  var usageCount = Object.create(null);
-
-  for (var _i2 = 0, _schema$getPossibleTy2 = schema.getPossibleTypes(type); _i2 < _schema$getPossibleTy2.length; _i2++) {
-    var possibleType = _schema$getPossibleTy2[_i2];
-
-    if (!possibleType.getFields()[fieldName]) {
-      continue;
-    } // This object type defines this field.
-
-
-    suggestedTypes.add(possibleType);
-    usageCount[possibleType.name] = 1;
-
-    for (var _i4 = 0, _possibleType$getInte2 = possibleType.getInterfaces(); _i4 < _possibleType$getInte2.length; _i4++) {
-      var _usageCount$possibleI;
-
-      var possibleInterface = _possibleType$getInte2[_i4];
-
-      if (!possibleInterface.getFields()[fieldName]) {
-        continue;
-      } // This interface type defines this field.
-
-
-      suggestedTypes.add(possibleInterface);
-      usageCount[possibleInterface.name] = ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== null && _usageCount$possibleI !== void 0 ? _usageCount$possibleI : 0) + 1;
-    }
-  }
-
-  return (0, _arrayFrom.default)(suggestedTypes).sort(function (typeA, typeB) {
-    // Suggest both interface and object types based on how common they are.
-    var usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];
-
-    if (usageCountDiff !== 0) {
-      return usageCountDiff;
-    } // Suggest super types first followed by subtypes
-
-
-    if ((0, _definition.isInterfaceType)(typeA) && schema.isSubType(typeA, typeB)) {
-      return -1;
-    }
-
-    if ((0, _definition.isInterfaceType)(typeB) && schema.isSubType(typeB, typeA)) {
-      return 1;
-    }
-
-    return typeA.name.localeCompare(typeB.name);
-  }).map(function (x) {
-    return x.name;
-  });
-}
-/**
- * For the field name provided, determine if there are any similar field names
- * that may be the result of a typo.
- */
-
-
-function getSuggestedFieldNames(type, fieldName) {
-  if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type)) {
-    var possibleFieldNames = Object.keys(type.getFields());
-    return (0, _suggestionList.default)(fieldName, possibleFieldNames);
-  } // Otherwise, must be a Union type, which does not define fields.
-
-
-  return [];
-}
diff --git a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js.flow b/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js.flow
deleted file mode 100644
index 0e6d74d..0000000
--- a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.js.flow
+++ /dev/null
@@ -1,144 +0,0 @@
-// @flow strict
-
-import arrayFrom from '../../polyfills/arrayFrom';
-
-import didYouMean from '../../jsutils/didYouMean';
-import suggestionList from '../../jsutils/suggestionList';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type FieldNode } from '../../language/ast';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type GraphQLSchema } from '../../type/schema';
-import {
-  type GraphQLOutputType,
-  type GraphQLObjectType,
-  type GraphQLInterfaceType,
-  isObjectType,
-  isInterfaceType,
-  isAbstractType,
-} from '../../type/definition';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Fields on correct type
- *
- * A GraphQL document is only valid if all fields selected are defined by the
- * parent type, or are an allowed meta field such as __typename.
- */
-export function FieldsOnCorrectTypeRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    Field(node: FieldNode) {
-      const type = context.getParentType();
-      if (type) {
-        const fieldDef = context.getFieldDef();
-        if (!fieldDef) {
-          // This field doesn't exist, lets look for suggestions.
-          const schema = context.getSchema();
-          const fieldName = node.name.value;
-
-          // First determine if there are any suggested types to condition on.
-          let suggestion = didYouMean(
-            'to use an inline fragment on',
-            getSuggestedTypeNames(schema, type, fieldName),
-          );
-
-          // If there are no suggested types, then perhaps this was a typo?
-          if (suggestion === '') {
-            suggestion = didYouMean(getSuggestedFieldNames(type, fieldName));
-          }
-
-          // Report an error, including helpful suggestions.
-          context.reportError(
-            new GraphQLError(
-              `Cannot query field "${fieldName}" on type "${type.name}".` +
-                suggestion,
-              node,
-            ),
-          );
-        }
-      }
-    },
-  };
-}
-
-/**
- * Go through all of the implementations of type, as well as the interfaces that
- * they implement. If any of those types include the provided field, suggest them,
- * sorted by how often the type is referenced.
- */
-function getSuggestedTypeNames(
-  schema: GraphQLSchema,
-  type: GraphQLOutputType,
-  fieldName: string,
-): Array<string> {
-  if (!isAbstractType(type)) {
-    // Must be an Object type, which does not have possible fields.
-    return [];
-  }
-
-  const suggestedTypes: Set<
-    GraphQLObjectType | GraphQLInterfaceType,
-  > = new Set();
-  const usageCount = Object.create(null);
-  for (const possibleType of schema.getPossibleTypes(type)) {
-    if (!possibleType.getFields()[fieldName]) {
-      continue;
-    }
-
-    // This object type defines this field.
-    suggestedTypes.add(possibleType);
-    usageCount[possibleType.name] = 1;
-
-    for (const possibleInterface of possibleType.getInterfaces()) {
-      if (!possibleInterface.getFields()[fieldName]) {
-        continue;
-      }
-
-      // This interface type defines this field.
-      suggestedTypes.add(possibleInterface);
-      usageCount[possibleInterface.name] =
-        (usageCount[possibleInterface.name] ?? 0) + 1;
-    }
-  }
-
-  return arrayFrom(suggestedTypes)
-    .sort((typeA, typeB) => {
-      // Suggest both interface and object types based on how common they are.
-      const usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];
-      if (usageCountDiff !== 0) {
-        return usageCountDiff;
-      }
-
-      // Suggest super types first followed by subtypes
-      if (isInterfaceType(typeA) && schema.isSubType(typeA, typeB)) {
-        return -1;
-      }
-      if (isInterfaceType(typeB) && schema.isSubType(typeB, typeA)) {
-        return 1;
-      }
-
-      return typeA.name.localeCompare(typeB.name);
-    })
-    .map(x => x.name);
-}
-
-/**
- * For the field name provided, determine if there are any similar field names
- * that may be the result of a typo.
- */
-function getSuggestedFieldNames(
-  type: GraphQLOutputType,
-  fieldName: string,
-): Array<string> {
-  if (isObjectType(type) || isInterfaceType(type)) {
-    const possibleFieldNames = Object.keys(type.getFields());
-    return suggestionList(fieldName, possibleFieldNames);
-  }
-  // Otherwise, must be a Union type, which does not define fields.
-  return [];
-}
diff --git a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs b/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs
deleted file mode 100644
index 7e01058..0000000
--- a/node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs
+++ /dev/null
@@ -1,116 +0,0 @@
-import arrayFrom from "../../polyfills/arrayFrom.mjs";
-import didYouMean from "../../jsutils/didYouMean.mjs";
-import suggestionList from "../../jsutils/suggestionList.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { isObjectType, isInterfaceType, isAbstractType } from "../../type/definition.mjs";
-
-/**
- * Fields on correct type
- *
- * A GraphQL document is only valid if all fields selected are defined by the
- * parent type, or are an allowed meta field such as __typename.
- */
-export function FieldsOnCorrectTypeRule(context) {
-  return {
-    Field: function Field(node) {
-      var type = context.getParentType();
-
-      if (type) {
-        var fieldDef = context.getFieldDef();
-
-        if (!fieldDef) {
-          // This field doesn't exist, lets look for suggestions.
-          var schema = context.getSchema();
-          var fieldName = node.name.value; // First determine if there are any suggested types to condition on.
-
-          var suggestion = didYouMean('to use an inline fragment on', getSuggestedTypeNames(schema, type, fieldName)); // If there are no suggested types, then perhaps this was a typo?
-
-          if (suggestion === '') {
-            suggestion = didYouMean(getSuggestedFieldNames(type, fieldName));
-          } // Report an error, including helpful suggestions.
-
-
-          context.reportError(new GraphQLError("Cannot query field \"".concat(fieldName, "\" on type \"").concat(type.name, "\".") + suggestion, node));
-        }
-      }
-    }
-  };
-}
-/**
- * Go through all of the implementations of type, as well as the interfaces that
- * they implement. If any of those types include the provided field, suggest them,
- * sorted by how often the type is referenced.
- */
-
-function getSuggestedTypeNames(schema, type, fieldName) {
-  if (!isAbstractType(type)) {
-    // Must be an Object type, which does not have possible fields.
-    return [];
-  }
-
-  var suggestedTypes = new Set();
-  var usageCount = Object.create(null);
-
-  for (var _i2 = 0, _schema$getPossibleTy2 = schema.getPossibleTypes(type); _i2 < _schema$getPossibleTy2.length; _i2++) {
-    var possibleType = _schema$getPossibleTy2[_i2];
-
-    if (!possibleType.getFields()[fieldName]) {
-      continue;
-    } // This object type defines this field.
-
-
-    suggestedTypes.add(possibleType);
-    usageCount[possibleType.name] = 1;
-
-    for (var _i4 = 0, _possibleType$getInte2 = possibleType.getInterfaces(); _i4 < _possibleType$getInte2.length; _i4++) {
-      var _usageCount$possibleI;
-
-      var possibleInterface = _possibleType$getInte2[_i4];
-
-      if (!possibleInterface.getFields()[fieldName]) {
-        continue;
-      } // This interface type defines this field.
-
-
-      suggestedTypes.add(possibleInterface);
-      usageCount[possibleInterface.name] = ((_usageCount$possibleI = usageCount[possibleInterface.name]) !== null && _usageCount$possibleI !== void 0 ? _usageCount$possibleI : 0) + 1;
-    }
-  }
-
-  return arrayFrom(suggestedTypes).sort(function (typeA, typeB) {
-    // Suggest both interface and object types based on how common they are.
-    var usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];
-
-    if (usageCountDiff !== 0) {
-      return usageCountDiff;
-    } // Suggest super types first followed by subtypes
-
-
-    if (isInterfaceType(typeA) && schema.isSubType(typeA, typeB)) {
-      return -1;
-    }
-
-    if (isInterfaceType(typeB) && schema.isSubType(typeB, typeA)) {
-      return 1;
-    }
-
-    return typeA.name.localeCompare(typeB.name);
-  }).map(function (x) {
-    return x.name;
-  });
-}
-/**
- * For the field name provided, determine if there are any similar field names
- * that may be the result of a typo.
- */
-
-
-function getSuggestedFieldNames(type, fieldName) {
-  if (isObjectType(type) || isInterfaceType(type)) {
-    var possibleFieldNames = Object.keys(type.getFields());
-    return suggestionList(fieldName, possibleFieldNames);
-  } // Otherwise, must be a Union type, which does not define fields.
-
-
-  return [];
-}
diff --git a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.d.ts b/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.d.ts
deleted file mode 100644
index 70b9b14..0000000
--- a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Fragments on composite type
- *
- * Fragments use a type condition to determine if they apply, since fragments
- * can only be spread into a composite type (object, interface, or union), the
- * type condition must also be a composite type.
- */
-export function FragmentsOnCompositeTypesRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js b/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js
deleted file mode 100644
index 9d6622f..0000000
--- a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.FragmentsOnCompositeTypesRule = FragmentsOnCompositeTypesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _printer = require("../../language/printer");
-
-var _definition = require("../../type/definition");
-
-var _typeFromAST = require("../../utilities/typeFromAST");
-
-/**
- * Fragments on composite type
- *
- * Fragments use a type condition to determine if they apply, since fragments
- * can only be spread into a composite type (object, interface, or union), the
- * type condition must also be a composite type.
- */
-function FragmentsOnCompositeTypesRule(context) {
-  return {
-    InlineFragment: function InlineFragment(node) {
-      var typeCondition = node.typeCondition;
-
-      if (typeCondition) {
-        var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), typeCondition);
-
-        if (type && !(0, _definition.isCompositeType)(type)) {
-          var typeStr = (0, _printer.print)(typeCondition);
-          context.reportError(new _GraphQLError.GraphQLError("Fragment cannot condition on non composite type \"".concat(typeStr, "\"."), typeCondition));
-        }
-      }
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), node.typeCondition);
-
-      if (type && !(0, _definition.isCompositeType)(type)) {
-        var typeStr = (0, _printer.print)(node.typeCondition);
-        context.reportError(new _GraphQLError.GraphQLError("Fragment \"".concat(node.name.value, "\" cannot condition on non composite type \"").concat(typeStr, "\"."), node.typeCondition));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js.flow b/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js.flow
deleted file mode 100644
index 4eee719..0000000
--- a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.js.flow
+++ /dev/null
@@ -1,53 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { print } from '../../language/printer';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { isCompositeType } from '../../type/definition';
-
-import { typeFromAST } from '../../utilities/typeFromAST';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Fragments on composite type
- *
- * Fragments use a type condition to determine if they apply, since fragments
- * can only be spread into a composite type (object, interface, or union), the
- * type condition must also be a composite type.
- */
-export function FragmentsOnCompositeTypesRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    InlineFragment(node) {
-      const typeCondition = node.typeCondition;
-      if (typeCondition) {
-        const type = typeFromAST(context.getSchema(), typeCondition);
-        if (type && !isCompositeType(type)) {
-          const typeStr = print(typeCondition);
-          context.reportError(
-            new GraphQLError(
-              `Fragment cannot condition on non composite type "${typeStr}".`,
-              typeCondition,
-            ),
-          );
-        }
-      }
-    },
-    FragmentDefinition(node) {
-      const type = typeFromAST(context.getSchema(), node.typeCondition);
-      if (type && !isCompositeType(type)) {
-        const typeStr = print(node.typeCondition);
-        context.reportError(
-          new GraphQLError(
-            `Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`,
-            node.typeCondition,
-          ),
-        );
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs b/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs
deleted file mode 100644
index 44aaac6..0000000
--- a/node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs
+++ /dev/null
@@ -1,36 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { print } from "../../language/printer.mjs";
-import { isCompositeType } from "../../type/definition.mjs";
-import { typeFromAST } from "../../utilities/typeFromAST.mjs";
-
-/**
- * Fragments on composite type
- *
- * Fragments use a type condition to determine if they apply, since fragments
- * can only be spread into a composite type (object, interface, or union), the
- * type condition must also be a composite type.
- */
-export function FragmentsOnCompositeTypesRule(context) {
-  return {
-    InlineFragment: function InlineFragment(node) {
-      var typeCondition = node.typeCondition;
-
-      if (typeCondition) {
-        var type = typeFromAST(context.getSchema(), typeCondition);
-
-        if (type && !isCompositeType(type)) {
-          var typeStr = print(typeCondition);
-          context.reportError(new GraphQLError("Fragment cannot condition on non composite type \"".concat(typeStr, "\"."), typeCondition));
-        }
-      }
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      var type = typeFromAST(context.getSchema(), node.typeCondition);
-
-      if (type && !isCompositeType(type)) {
-        var typeStr = print(node.typeCondition);
-        context.reportError(new GraphQLError("Fragment \"".concat(node.name.value, "\" cannot condition on non composite type \"").concat(typeStr, "\"."), node.typeCondition));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.d.ts b/node_modules/graphql/validation/rules/KnownArgumentNamesRule.d.ts
deleted file mode 100644
index 8c0f828..0000000
--- a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ValidationContext, SDLValidationContext } from '../ValidationContext';
-import { ASTVisitor } from '../../language/visitor';
-
-/**
- * Known argument names
- *
- * A GraphQL field is only valid if all supplied arguments are defined by
- * that field.
- */
-export function KnownArgumentNamesRule(context: ValidationContext): ASTVisitor;
-
-/**
- * @internal
- */
-export function KnownArgumentNamesOnDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js b/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js
deleted file mode 100644
index ce0f59f..0000000
--- a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.KnownArgumentNamesRule = KnownArgumentNamesRule;
-exports.KnownArgumentNamesOnDirectivesRule = KnownArgumentNamesOnDirectivesRule;
-
-var _didYouMean = _interopRequireDefault(require("../../jsutils/didYouMean"));
-
-var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _directives = require("../../type/directives");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Known argument names
- *
- * A GraphQL field is only valid if all supplied arguments are defined by
- * that field.
- */
-function KnownArgumentNamesRule(context) {
-  return _objectSpread({}, KnownArgumentNamesOnDirectivesRule(context), {
-    Argument: function Argument(argNode) {
-      var argDef = context.getArgument();
-      var fieldDef = context.getFieldDef();
-      var parentType = context.getParentType();
-
-      if (!argDef && fieldDef && parentType) {
-        var argName = argNode.name.value;
-        var knownArgsNames = fieldDef.args.map(function (arg) {
-          return arg.name;
-        });
-        var suggestions = (0, _suggestionList.default)(argName, knownArgsNames);
-        context.reportError(new _GraphQLError.GraphQLError("Unknown argument \"".concat(argName, "\" on field \"").concat(parentType.name, ".").concat(fieldDef.name, "\".") + (0, _didYouMean.default)(suggestions), argNode));
-      }
-    }
-  });
-}
-/**
- * @internal
- */
-
-
-function KnownArgumentNamesOnDirectivesRule(context) {
-  var directiveArgs = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : _directives.specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    directiveArgs[directive.name] = directive.args.map(function (arg) {
-      return arg.name;
-    });
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
-      var _def$arguments;
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var argsNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];
-      directiveArgs[def.name.value] = argsNodes.map(function (arg) {
-        return arg.name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: function Directive(directiveNode) {
-      var directiveName = directiveNode.name.value;
-      var knownArgs = directiveArgs[directiveName];
-
-      if (directiveNode.arguments && knownArgs) {
-        for (var _i6 = 0, _directiveNode$argume2 = directiveNode.arguments; _i6 < _directiveNode$argume2.length; _i6++) {
-          var argNode = _directiveNode$argume2[_i6];
-          var argName = argNode.name.value;
-
-          if (knownArgs.indexOf(argName) === -1) {
-            var suggestions = (0, _suggestionList.default)(argName, knownArgs);
-            context.reportError(new _GraphQLError.GraphQLError("Unknown argument \"".concat(argName, "\" on directive \"@").concat(directiveName, "\".") + (0, _didYouMean.default)(suggestions), argNode));
-          }
-        }
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js.flow b/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js.flow
deleted file mode 100644
index fe4b4bc..0000000
--- a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.js.flow
+++ /dev/null
@@ -1,98 +0,0 @@
-// @flow strict
-
-import didYouMean from '../../jsutils/didYouMean';
-import suggestionList from '../../jsutils/suggestionList';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { specifiedDirectives } from '../../type/directives';
-
-import {
-  type ValidationContext,
-  type SDLValidationContext,
-} from '../ValidationContext';
-
-/**
- * Known argument names
- *
- * A GraphQL field is only valid if all supplied arguments are defined by
- * that field.
- */
-export function KnownArgumentNamesRule(context: ValidationContext): ASTVisitor {
-  return {
-    ...KnownArgumentNamesOnDirectivesRule(context),
-    Argument(argNode) {
-      const argDef = context.getArgument();
-      const fieldDef = context.getFieldDef();
-      const parentType = context.getParentType();
-
-      if (!argDef && fieldDef && parentType) {
-        const argName = argNode.name.value;
-        const knownArgsNames = fieldDef.args.map(arg => arg.name);
-        const suggestions = suggestionList(argName, knownArgsNames);
-        context.reportError(
-          new GraphQLError(
-            `Unknown argument "${argName}" on field "${parentType.name}.${fieldDef.name}".` +
-              didYouMean(suggestions),
-            argNode,
-          ),
-        );
-      }
-    },
-  };
-}
-
-/**
- * @internal
- */
-export function KnownArgumentNamesOnDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor {
-  const directiveArgs = Object.create(null);
-
-  const schema = context.getSchema();
-  const definedDirectives = schema
-    ? schema.getDirectives()
-    : specifiedDirectives;
-  for (const directive of definedDirectives) {
-    directiveArgs[directive.name] = directive.args.map(arg => arg.name);
-  }
-
-  const astDefinitions = context.getDocument().definitions;
-  for (const def of astDefinitions) {
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const argsNodes = def.arguments ?? [];
-
-      directiveArgs[def.name.value] = argsNodes.map(arg => arg.name.value);
-    }
-  }
-
-  return {
-    Directive(directiveNode) {
-      const directiveName = directiveNode.name.value;
-      const knownArgs = directiveArgs[directiveName];
-
-      if (directiveNode.arguments && knownArgs) {
-        for (const argNode of directiveNode.arguments) {
-          const argName = argNode.name.value;
-          if (knownArgs.indexOf(argName) === -1) {
-            const suggestions = suggestionList(argName, knownArgs);
-            context.reportError(
-              new GraphQLError(
-                `Unknown argument "${argName}" on directive "@${directiveName}".` +
-                  didYouMean(suggestions),
-                argNode,
-              ),
-            );
-          }
-        }
-      }
-
-      return false;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs b/node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs
deleted file mode 100644
index fa76800..0000000
--- a/node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs
+++ /dev/null
@@ -1,89 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import didYouMean from "../../jsutils/didYouMean.mjs";
-import suggestionList from "../../jsutils/suggestionList.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { specifiedDirectives } from "../../type/directives.mjs";
-
-/**
- * Known argument names
- *
- * A GraphQL field is only valid if all supplied arguments are defined by
- * that field.
- */
-export function KnownArgumentNamesRule(context) {
-  return _objectSpread({}, KnownArgumentNamesOnDirectivesRule(context), {
-    Argument: function Argument(argNode) {
-      var argDef = context.getArgument();
-      var fieldDef = context.getFieldDef();
-      var parentType = context.getParentType();
-
-      if (!argDef && fieldDef && parentType) {
-        var argName = argNode.name.value;
-        var knownArgsNames = fieldDef.args.map(function (arg) {
-          return arg.name;
-        });
-        var suggestions = suggestionList(argName, knownArgsNames);
-        context.reportError(new GraphQLError("Unknown argument \"".concat(argName, "\" on field \"").concat(parentType.name, ".").concat(fieldDef.name, "\".") + didYouMean(suggestions), argNode));
-      }
-    }
-  });
-}
-/**
- * @internal
- */
-
-export function KnownArgumentNamesOnDirectivesRule(context) {
-  var directiveArgs = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    directiveArgs[directive.name] = directive.args.map(function (arg) {
-      return arg.name;
-    });
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      var _def$arguments;
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var argsNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];
-      directiveArgs[def.name.value] = argsNodes.map(function (arg) {
-        return arg.name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: function Directive(directiveNode) {
-      var directiveName = directiveNode.name.value;
-      var knownArgs = directiveArgs[directiveName];
-
-      if (directiveNode.arguments && knownArgs) {
-        for (var _i6 = 0, _directiveNode$argume2 = directiveNode.arguments; _i6 < _directiveNode$argume2.length; _i6++) {
-          var argNode = _directiveNode$argume2[_i6];
-          var argName = argNode.name.value;
-
-          if (knownArgs.indexOf(argName) === -1) {
-            var suggestions = suggestionList(argName, knownArgs);
-            context.reportError(new GraphQLError("Unknown argument \"".concat(argName, "\" on directive \"@").concat(directiveName, "\".") + didYouMean(suggestions), argNode));
-          }
-        }
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownDirectivesRule.d.ts b/node_modules/graphql/validation/rules/KnownDirectivesRule.d.ts
deleted file mode 100644
index dcb6af6..0000000
--- a/node_modules/graphql/validation/rules/KnownDirectivesRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext, SDLValidationContext } from '../ValidationContext';
-
-/**
- * Known directives
- *
- * A GraphQL document is only valid if all `@directives` are known by the
- * schema and legally positioned.
- */
-export function KnownDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/KnownDirectivesRule.js b/node_modules/graphql/validation/rules/KnownDirectivesRule.js
deleted file mode 100644
index 3222790..0000000
--- a/node_modules/graphql/validation/rules/KnownDirectivesRule.js
+++ /dev/null
@@ -1,151 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.KnownDirectivesRule = KnownDirectivesRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../../jsutils/invariant"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _directiveLocation = require("../../language/directiveLocation");
-
-var _directives = require("../../type/directives");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Known directives
- *
- * A GraphQL document is only valid if all `@directives` are known by the
- * schema and legally positioned.
- */
-function KnownDirectivesRule(context) {
-  var locationsMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : _directives.specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    locationsMap[directive.name] = directive.locations;
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
-      locationsMap[def.name.value] = def.locations.map(function (name) {
-        return name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: function Directive(node, _key, _parent, _path, ancestors) {
-      var name = node.name.value;
-      var locations = locationsMap[name];
-
-      if (!locations) {
-        context.reportError(new _GraphQLError.GraphQLError("Unknown directive \"@".concat(name, "\"."), node));
-        return;
-      }
-
-      var candidateLocation = getDirectiveLocationForASTPath(ancestors);
-
-      if (candidateLocation && locations.indexOf(candidateLocation) === -1) {
-        context.reportError(new _GraphQLError.GraphQLError("Directive \"@".concat(name, "\" may not be used on ").concat(candidateLocation, "."), node));
-      }
-    }
-  };
-}
-
-function getDirectiveLocationForASTPath(ancestors) {
-  var appliedTo = ancestors[ancestors.length - 1];
-
-  /* istanbul ignore next */
-  !Array.isArray(appliedTo) || (0, _invariant.default)(0);
-
-  switch (appliedTo.kind) {
-    case _kinds.Kind.OPERATION_DEFINITION:
-      return getDirectiveLocationForOperation(appliedTo.operation);
-
-    case _kinds.Kind.FIELD:
-      return _directiveLocation.DirectiveLocation.FIELD;
-
-    case _kinds.Kind.FRAGMENT_SPREAD:
-      return _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD;
-
-    case _kinds.Kind.INLINE_FRAGMENT:
-      return _directiveLocation.DirectiveLocation.INLINE_FRAGMENT;
-
-    case _kinds.Kind.FRAGMENT_DEFINITION:
-      return _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION;
-
-    case _kinds.Kind.VARIABLE_DEFINITION:
-      return _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION;
-
-    case _kinds.Kind.SCHEMA_DEFINITION:
-    case _kinds.Kind.SCHEMA_EXTENSION:
-      return _directiveLocation.DirectiveLocation.SCHEMA;
-
-    case _kinds.Kind.SCALAR_TYPE_DEFINITION:
-    case _kinds.Kind.SCALAR_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.SCALAR;
-
-    case _kinds.Kind.OBJECT_TYPE_DEFINITION:
-    case _kinds.Kind.OBJECT_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.OBJECT;
-
-    case _kinds.Kind.FIELD_DEFINITION:
-      return _directiveLocation.DirectiveLocation.FIELD_DEFINITION;
-
-    case _kinds.Kind.INTERFACE_TYPE_DEFINITION:
-    case _kinds.Kind.INTERFACE_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.INTERFACE;
-
-    case _kinds.Kind.UNION_TYPE_DEFINITION:
-    case _kinds.Kind.UNION_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.UNION;
-
-    case _kinds.Kind.ENUM_TYPE_DEFINITION:
-    case _kinds.Kind.ENUM_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.ENUM;
-
-    case _kinds.Kind.ENUM_VALUE_DEFINITION:
-      return _directiveLocation.DirectiveLocation.ENUM_VALUE;
-
-    case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION:
-    case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return _directiveLocation.DirectiveLocation.INPUT_OBJECT;
-
-    case _kinds.Kind.INPUT_VALUE_DEFINITION:
-      {
-        var parentNode = ancestors[ancestors.length - 3];
-        return parentNode.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION ? _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION : _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION;
-      }
-  }
-}
-
-function getDirectiveLocationForOperation(operation) {
-  switch (operation) {
-    case 'query':
-      return _directiveLocation.DirectiveLocation.QUERY;
-
-    case 'mutation':
-      return _directiveLocation.DirectiveLocation.MUTATION;
-
-    case 'subscription':
-      return _directiveLocation.DirectiveLocation.SUBSCRIPTION;
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected operation: ' + (0, _inspect.default)(operation));
-}
diff --git a/node_modules/graphql/validation/rules/KnownDirectivesRule.js.flow b/node_modules/graphql/validation/rules/KnownDirectivesRule.js.flow
deleted file mode 100644
index fc8dee2..0000000
--- a/node_modules/graphql/validation/rules/KnownDirectivesRule.js.flow
+++ /dev/null
@@ -1,139 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-import invariant from '../../jsutils/invariant';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-import { type OperationTypeNode } from '../../language/ast';
-import {
-  type DirectiveLocationEnum,
-  DirectiveLocation,
-} from '../../language/directiveLocation';
-
-import { specifiedDirectives } from '../../type/directives';
-
-import {
-  type ValidationContext,
-  type SDLValidationContext,
-} from '../ValidationContext';
-
-/**
- * Known directives
- *
- * A GraphQL document is only valid if all `@directives` are known by the
- * schema and legally positioned.
- */
-export function KnownDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor {
-  const locationsMap = Object.create(null);
-
-  const schema = context.getSchema();
-  const definedDirectives = schema
-    ? schema.getDirectives()
-    : specifiedDirectives;
-  for (const directive of definedDirectives) {
-    locationsMap[directive.name] = directive.locations;
-  }
-
-  const astDefinitions = context.getDocument().definitions;
-  for (const def of astDefinitions) {
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      locationsMap[def.name.value] = def.locations.map(name => name.value);
-    }
-  }
-
-  return {
-    Directive(node, _key, _parent, _path, ancestors) {
-      const name = node.name.value;
-      const locations = locationsMap[name];
-
-      if (!locations) {
-        context.reportError(
-          new GraphQLError(`Unknown directive "@${name}".`, node),
-        );
-        return;
-      }
-
-      const candidateLocation = getDirectiveLocationForASTPath(ancestors);
-      if (candidateLocation && locations.indexOf(candidateLocation) === -1) {
-        context.reportError(
-          new GraphQLError(
-            `Directive "@${name}" may not be used on ${candidateLocation}.`,
-            node,
-          ),
-        );
-      }
-    },
-  };
-}
-
-function getDirectiveLocationForASTPath(ancestors) {
-  const appliedTo = ancestors[ancestors.length - 1];
-  invariant(!Array.isArray(appliedTo));
-
-  switch (appliedTo.kind) {
-    case Kind.OPERATION_DEFINITION:
-      return getDirectiveLocationForOperation(appliedTo.operation);
-    case Kind.FIELD:
-      return DirectiveLocation.FIELD;
-    case Kind.FRAGMENT_SPREAD:
-      return DirectiveLocation.FRAGMENT_SPREAD;
-    case Kind.INLINE_FRAGMENT:
-      return DirectiveLocation.INLINE_FRAGMENT;
-    case Kind.FRAGMENT_DEFINITION:
-      return DirectiveLocation.FRAGMENT_DEFINITION;
-    case Kind.VARIABLE_DEFINITION:
-      return DirectiveLocation.VARIABLE_DEFINITION;
-    case Kind.SCHEMA_DEFINITION:
-    case Kind.SCHEMA_EXTENSION:
-      return DirectiveLocation.SCHEMA;
-    case Kind.SCALAR_TYPE_DEFINITION:
-    case Kind.SCALAR_TYPE_EXTENSION:
-      return DirectiveLocation.SCALAR;
-    case Kind.OBJECT_TYPE_DEFINITION:
-    case Kind.OBJECT_TYPE_EXTENSION:
-      return DirectiveLocation.OBJECT;
-    case Kind.FIELD_DEFINITION:
-      return DirectiveLocation.FIELD_DEFINITION;
-    case Kind.INTERFACE_TYPE_DEFINITION:
-    case Kind.INTERFACE_TYPE_EXTENSION:
-      return DirectiveLocation.INTERFACE;
-    case Kind.UNION_TYPE_DEFINITION:
-    case Kind.UNION_TYPE_EXTENSION:
-      return DirectiveLocation.UNION;
-    case Kind.ENUM_TYPE_DEFINITION:
-    case Kind.ENUM_TYPE_EXTENSION:
-      return DirectiveLocation.ENUM;
-    case Kind.ENUM_VALUE_DEFINITION:
-      return DirectiveLocation.ENUM_VALUE;
-    case Kind.INPUT_OBJECT_TYPE_DEFINITION:
-    case Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return DirectiveLocation.INPUT_OBJECT;
-    case Kind.INPUT_VALUE_DEFINITION: {
-      const parentNode = ancestors[ancestors.length - 3];
-      return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION
-        ? DirectiveLocation.INPUT_FIELD_DEFINITION
-        : DirectiveLocation.ARGUMENT_DEFINITION;
-    }
-  }
-}
-
-function getDirectiveLocationForOperation(
-  operation: OperationTypeNode,
-): DirectiveLocationEnum {
-  switch (operation) {
-    case 'query':
-      return DirectiveLocation.QUERY;
-    case 'mutation':
-      return DirectiveLocation.MUTATION;
-    case 'subscription':
-      return DirectiveLocation.SUBSCRIPTION;
-  }
-
-  // Not reachable. All possible types have been considered.
-  invariant(false, 'Unexpected operation: ' + inspect((operation: empty)));
-}
diff --git a/node_modules/graphql/validation/rules/KnownDirectivesRule.mjs b/node_modules/graphql/validation/rules/KnownDirectivesRule.mjs
deleted file mode 100644
index a4709bd..0000000
--- a/node_modules/graphql/validation/rules/KnownDirectivesRule.mjs
+++ /dev/null
@@ -1,137 +0,0 @@
-import inspect from "../../jsutils/inspect.mjs";
-import invariant from "../../jsutils/invariant.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { DirectiveLocation } from "../../language/directiveLocation.mjs";
-import { specifiedDirectives } from "../../type/directives.mjs";
-
-/**
- * Known directives
- *
- * A GraphQL document is only valid if all `@directives` are known by the
- * schema and legally positioned.
- */
-export function KnownDirectivesRule(context) {
-  var locationsMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    locationsMap[directive.name] = directive.locations;
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      locationsMap[def.name.value] = def.locations.map(function (name) {
-        return name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: function Directive(node, _key, _parent, _path, ancestors) {
-      var name = node.name.value;
-      var locations = locationsMap[name];
-
-      if (!locations) {
-        context.reportError(new GraphQLError("Unknown directive \"@".concat(name, "\"."), node));
-        return;
-      }
-
-      var candidateLocation = getDirectiveLocationForASTPath(ancestors);
-
-      if (candidateLocation && locations.indexOf(candidateLocation) === -1) {
-        context.reportError(new GraphQLError("Directive \"@".concat(name, "\" may not be used on ").concat(candidateLocation, "."), node));
-      }
-    }
-  };
-}
-
-function getDirectiveLocationForASTPath(ancestors) {
-  var appliedTo = ancestors[ancestors.length - 1];
-
-  /* istanbul ignore next */
-  !Array.isArray(appliedTo) || invariant(0);
-
-  switch (appliedTo.kind) {
-    case Kind.OPERATION_DEFINITION:
-      return getDirectiveLocationForOperation(appliedTo.operation);
-
-    case Kind.FIELD:
-      return DirectiveLocation.FIELD;
-
-    case Kind.FRAGMENT_SPREAD:
-      return DirectiveLocation.FRAGMENT_SPREAD;
-
-    case Kind.INLINE_FRAGMENT:
-      return DirectiveLocation.INLINE_FRAGMENT;
-
-    case Kind.FRAGMENT_DEFINITION:
-      return DirectiveLocation.FRAGMENT_DEFINITION;
-
-    case Kind.VARIABLE_DEFINITION:
-      return DirectiveLocation.VARIABLE_DEFINITION;
-
-    case Kind.SCHEMA_DEFINITION:
-    case Kind.SCHEMA_EXTENSION:
-      return DirectiveLocation.SCHEMA;
-
-    case Kind.SCALAR_TYPE_DEFINITION:
-    case Kind.SCALAR_TYPE_EXTENSION:
-      return DirectiveLocation.SCALAR;
-
-    case Kind.OBJECT_TYPE_DEFINITION:
-    case Kind.OBJECT_TYPE_EXTENSION:
-      return DirectiveLocation.OBJECT;
-
-    case Kind.FIELD_DEFINITION:
-      return DirectiveLocation.FIELD_DEFINITION;
-
-    case Kind.INTERFACE_TYPE_DEFINITION:
-    case Kind.INTERFACE_TYPE_EXTENSION:
-      return DirectiveLocation.INTERFACE;
-
-    case Kind.UNION_TYPE_DEFINITION:
-    case Kind.UNION_TYPE_EXTENSION:
-      return DirectiveLocation.UNION;
-
-    case Kind.ENUM_TYPE_DEFINITION:
-    case Kind.ENUM_TYPE_EXTENSION:
-      return DirectiveLocation.ENUM;
-
-    case Kind.ENUM_VALUE_DEFINITION:
-      return DirectiveLocation.ENUM_VALUE;
-
-    case Kind.INPUT_OBJECT_TYPE_DEFINITION:
-    case Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return DirectiveLocation.INPUT_OBJECT;
-
-    case Kind.INPUT_VALUE_DEFINITION:
-      {
-        var parentNode = ancestors[ancestors.length - 3];
-        return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? DirectiveLocation.INPUT_FIELD_DEFINITION : DirectiveLocation.ARGUMENT_DEFINITION;
-      }
-  }
-}
-
-function getDirectiveLocationForOperation(operation) {
-  switch (operation) {
-    case 'query':
-      return DirectiveLocation.QUERY;
-
-    case 'mutation':
-      return DirectiveLocation.MUTATION;
-
-    case 'subscription':
-      return DirectiveLocation.SUBSCRIPTION;
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected operation: ' + inspect(operation));
-}
diff --git a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.d.ts b/node_modules/graphql/validation/rules/KnownFragmentNamesRule.d.ts
deleted file mode 100644
index 7b594fd..0000000
--- a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Known fragment names
- *
- * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
- * to fragments defined in the same document.
- */
-export function KnownFragmentNamesRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js b/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js
deleted file mode 100644
index 6d33788..0000000
--- a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.KnownFragmentNamesRule = KnownFragmentNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Known fragment names
- *
- * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
- * to fragments defined in the same document.
- */
-function KnownFragmentNamesRule(context) {
-  return {
-    FragmentSpread: function FragmentSpread(node) {
-      var fragmentName = node.name.value;
-      var fragment = context.getFragment(fragmentName);
-
-      if (!fragment) {
-        context.reportError(new _GraphQLError.GraphQLError("Unknown fragment \"".concat(fragmentName, "\"."), node.name));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow b/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow
deleted file mode 100644
index ad7cd5e..0000000
--- a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.js.flow
+++ /dev/null
@@ -1,26 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Known fragment names
- *
- * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
- * to fragments defined in the same document.
- */
-export function KnownFragmentNamesRule(context: ValidationContext): ASTVisitor {
-  return {
-    FragmentSpread(node) {
-      const fragmentName = node.name.value;
-      const fragment = context.getFragment(fragmentName);
-      if (!fragment) {
-        context.reportError(
-          new GraphQLError(`Unknown fragment "${fragmentName}".`, node.name),
-        );
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs b/node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs
deleted file mode 100644
index 72f935d..0000000
--- a/node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs
+++ /dev/null
@@ -1,20 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Known fragment names
- *
- * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
- * to fragments defined in the same document.
- */
-export function KnownFragmentNamesRule(context) {
-  return {
-    FragmentSpread: function FragmentSpread(node) {
-      var fragmentName = node.name.value;
-      var fragment = context.getFragment(fragmentName);
-
-      if (!fragment) {
-        context.reportError(new GraphQLError("Unknown fragment \"".concat(fragmentName, "\"."), node.name));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/KnownTypeNamesRule.d.ts b/node_modules/graphql/validation/rules/KnownTypeNamesRule.d.ts
deleted file mode 100644
index 6c4560e..0000000
--- a/node_modules/graphql/validation/rules/KnownTypeNamesRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Known type names
- *
- * A GraphQL document is only valid if referenced types (specifically
- * variable definitions and fragment conditions) are defined by the type schema.
- */
-export function KnownTypeNamesRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/KnownTypeNamesRule.js b/node_modules/graphql/validation/rules/KnownTypeNamesRule.js
deleted file mode 100644
index 01d0a95..0000000
--- a/node_modules/graphql/validation/rules/KnownTypeNamesRule.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.KnownTypeNamesRule = KnownTypeNamesRule;
-
-var _didYouMean = _interopRequireDefault(require("../../jsutils/didYouMean"));
-
-var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _predicates = require("../../language/predicates");
-
-var _scalars = require("../../type/scalars");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Known type names
- *
- * A GraphQL document is only valid if referenced types (specifically
- * variable definitions and fragment conditions) are defined by the type schema.
- */
-function KnownTypeNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
-  var definedTypes = Object.create(null);
-
-  for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {
-    var def = _context$getDocument$2[_i2];
-
-    if ((0, _predicates.isTypeDefinitionNode)(def)) {
-      definedTypes[def.name.value] = true;
-    }
-  }
-
-  var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
-  return {
-    NamedType: function NamedType(node, _1, parent, _2, ancestors) {
-      var typeName = node.name.value;
-
-      if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
-        var _ancestors$;
-
-        var definitionNode = (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 ? _ancestors$ : parent;
-        var isSDL = definitionNode != null && isSDLNode(definitionNode);
-
-        if (isSDL && isSpecifiedScalarName(typeName)) {
-          return;
-        }
-
-        var suggestedTypes = (0, _suggestionList.default)(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
-        context.reportError(new _GraphQLError.GraphQLError("Unknown type \"".concat(typeName, "\".") + (0, _didYouMean.default)(suggestedTypes), node));
-      }
-    }
-  };
-}
-
-var specifiedScalarsNames = _scalars.specifiedScalarTypes.map(function (type) {
-  return type.name;
-});
-
-function isSpecifiedScalarName(typeName) {
-  return specifiedScalarsNames.indexOf(typeName) !== -1;
-}
-
-function isSDLNode(value) {
-  return !Array.isArray(value) && ((0, _predicates.isTypeSystemDefinitionNode)(value) || (0, _predicates.isTypeSystemExtensionNode)(value));
-}
diff --git a/node_modules/graphql/validation/rules/KnownTypeNamesRule.js.flow b/node_modules/graphql/validation/rules/KnownTypeNamesRule.js.flow
deleted file mode 100644
index 2c71a38..0000000
--- a/node_modules/graphql/validation/rules/KnownTypeNamesRule.js.flow
+++ /dev/null
@@ -1,81 +0,0 @@
-// @flow strict
-
-import didYouMean from '../../jsutils/didYouMean';
-import suggestionList from '../../jsutils/suggestionList';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTNode } from '../../language/ast';
-import { type ASTVisitor } from '../../language/visitor';
-import {
-  isTypeDefinitionNode,
-  isTypeSystemDefinitionNode,
-  isTypeSystemExtensionNode,
-} from '../../language/predicates';
-
-import { specifiedScalarTypes } from '../../type/scalars';
-
-import {
-  type ValidationContext,
-  type SDLValidationContext,
-} from '../ValidationContext';
-
-/**
- * Known type names
- *
- * A GraphQL document is only valid if referenced types (specifically
- * variable definitions and fragment conditions) are defined by the type schema.
- */
-export function KnownTypeNamesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor {
-  const schema = context.getSchema();
-  const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
-
-  const definedTypes = Object.create(null);
-  for (const def of context.getDocument().definitions) {
-    if (isTypeDefinitionNode(def)) {
-      definedTypes[def.name.value] = true;
-    }
-  }
-
-  const typeNames = Object.keys(existingTypesMap).concat(
-    Object.keys(definedTypes),
-  );
-
-  return {
-    NamedType(node, _1, parent, _2, ancestors) {
-      const typeName = node.name.value;
-      if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
-        const definitionNode = ancestors[2] ?? parent;
-        const isSDL = definitionNode != null && isSDLNode(definitionNode);
-        if (isSDL && isSpecifiedScalarName(typeName)) {
-          return;
-        }
-
-        const suggestedTypes = suggestionList(
-          typeName,
-          isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames,
-        );
-        context.reportError(
-          new GraphQLError(
-            `Unknown type "${typeName}".` + didYouMean(suggestedTypes),
-            node,
-          ),
-        );
-      }
-    },
-  };
-}
-
-const specifiedScalarsNames = specifiedScalarTypes.map(type => type.name);
-function isSpecifiedScalarName(typeName) {
-  return specifiedScalarsNames.indexOf(typeName) !== -1;
-}
-
-function isSDLNode(value: ASTNode | $ReadOnlyArray<ASTNode>): boolean {
-  return (
-    !Array.isArray(value) &&
-    (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))
-  );
-}
diff --git a/node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs b/node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs
deleted file mode 100644
index 0216087..0000000
--- a/node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs
+++ /dev/null
@@ -1,57 +0,0 @@
-import didYouMean from "../../jsutils/didYouMean.mjs";
-import suggestionList from "../../jsutils/suggestionList.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { isTypeDefinitionNode, isTypeSystemDefinitionNode, isTypeSystemExtensionNode } from "../../language/predicates.mjs";
-import { specifiedScalarTypes } from "../../type/scalars.mjs";
-
-/**
- * Known type names
- *
- * A GraphQL document is only valid if referenced types (specifically
- * variable definitions and fragment conditions) are defined by the type schema.
- */
-export function KnownTypeNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
-  var definedTypes = Object.create(null);
-
-  for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {
-    var def = _context$getDocument$2[_i2];
-
-    if (isTypeDefinitionNode(def)) {
-      definedTypes[def.name.value] = true;
-    }
-  }
-
-  var typeNames = Object.keys(existingTypesMap).concat(Object.keys(definedTypes));
-  return {
-    NamedType: function NamedType(node, _1, parent, _2, ancestors) {
-      var typeName = node.name.value;
-
-      if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
-        var _ancestors$;
-
-        var definitionNode = (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0 ? _ancestors$ : parent;
-        var isSDL = definitionNode != null && isSDLNode(definitionNode);
-
-        if (isSDL && isSpecifiedScalarName(typeName)) {
-          return;
-        }
-
-        var suggestedTypes = suggestionList(typeName, isSDL ? specifiedScalarsNames.concat(typeNames) : typeNames);
-        context.reportError(new GraphQLError("Unknown type \"".concat(typeName, "\".") + didYouMean(suggestedTypes), node));
-      }
-    }
-  };
-}
-var specifiedScalarsNames = specifiedScalarTypes.map(function (type) {
-  return type.name;
-});
-
-function isSpecifiedScalarName(typeName) {
-  return specifiedScalarsNames.indexOf(typeName) !== -1;
-}
-
-function isSDLNode(value) {
-  return !Array.isArray(value) && (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value));
-}
diff --git a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.d.ts b/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.d.ts
deleted file mode 100644
index 1ac19ef..0000000
--- a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Lone anonymous operation
- *
- * A GraphQL document is only valid if when it contains an anonymous operation
- * (the query short-hand) that it contains only that one operation definition.
- */
-export function LoneAnonymousOperationRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js b/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js
deleted file mode 100644
index 4a656db..0000000
--- a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-/**
- * Lone anonymous operation
- *
- * A GraphQL document is only valid if when it contains an anonymous operation
- * (the query short-hand) that it contains only that one operation definition.
- */
-function LoneAnonymousOperationRule(context) {
-  var operationCount = 0;
-  return {
-    Document: function Document(node) {
-      operationCount = node.definitions.filter(function (definition) {
-        return definition.kind === _kinds.Kind.OPERATION_DEFINITION;
-      }).length;
-    },
-    OperationDefinition: function OperationDefinition(node) {
-      if (!node.name && operationCount > 1) {
-        context.reportError(new _GraphQLError.GraphQLError('This anonymous operation must be the only defined operation.', node));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js.flow b/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js.flow
deleted file mode 100644
index 0ca8c7f..0000000
--- a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.js.flow
+++ /dev/null
@@ -1,37 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Lone anonymous operation
- *
- * A GraphQL document is only valid if when it contains an anonymous operation
- * (the query short-hand) that it contains only that one operation definition.
- */
-export function LoneAnonymousOperationRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  let operationCount = 0;
-  return {
-    Document(node) {
-      operationCount = node.definitions.filter(
-        definition => definition.kind === Kind.OPERATION_DEFINITION,
-      ).length;
-    },
-    OperationDefinition(node) {
-      if (!node.name && operationCount > 1) {
-        context.reportError(
-          new GraphQLError(
-            'This anonymous operation must be the only defined operation.',
-            node,
-          ),
-        );
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs b/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs
deleted file mode 100644
index 134322d..0000000
--- a/node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs
+++ /dev/null
@@ -1,24 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-
-/**
- * Lone anonymous operation
- *
- * A GraphQL document is only valid if when it contains an anonymous operation
- * (the query short-hand) that it contains only that one operation definition.
- */
-export function LoneAnonymousOperationRule(context) {
-  var operationCount = 0;
-  return {
-    Document: function Document(node) {
-      operationCount = node.definitions.filter(function (definition) {
-        return definition.kind === Kind.OPERATION_DEFINITION;
-      }).length;
-    },
-    OperationDefinition: function OperationDefinition(node) {
-      if (!node.name && operationCount > 1) {
-        context.reportError(new GraphQLError('This anonymous operation must be the only defined operation.', node));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts b/node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts
deleted file mode 100644
index a38ad06..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinition.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { LoneSchemaDefinitionRule } from 'graphql'
- * or
- *   import { LoneSchemaDefinitionRule } from 'graphql/validation'
- */
-export { LoneSchemaDefinitionRule as LoneSchemaDefinition } from './LoneSchemaDefinitionRule';
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinition.js b/node_modules/graphql/validation/rules/LoneSchemaDefinition.js
deleted file mode 100644
index 034367e..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinition.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "LoneSchemaDefinition", {
-  enumerable: true,
-  get: function get() {
-    return _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule;
-  }
-});
-
-var _LoneSchemaDefinitionRule = require("./LoneSchemaDefinitionRule");
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinition.js.flow b/node_modules/graphql/validation/rules/LoneSchemaDefinition.js.flow
deleted file mode 100644
index d5acb84..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinition.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { LoneSchemaDefinitionRule } from 'graphql'
- * or
- *   import { LoneSchemaDefinitionRule } from 'graphql/validation'
- */
-export { LoneSchemaDefinitionRule as LoneSchemaDefinition } from './LoneSchemaDefinitionRule';
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs b/node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs
deleted file mode 100644
index 5485db0..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinition.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { LoneSchemaDefinitionRule } from 'graphql'
- * or
- *   import { LoneSchemaDefinitionRule } from 'graphql/validation'
- */
-export { LoneSchemaDefinitionRule as LoneSchemaDefinition } from "./LoneSchemaDefinitionRule.mjs";
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.d.ts b/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.d.ts
deleted file mode 100644
index 5075e74..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Lone Schema definition
- *
- * A GraphQL document is only valid if it contains only one schema definition.
- */
-export function LoneSchemaDefinitionRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js b/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js
deleted file mode 100644
index f4ced67..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.LoneSchemaDefinitionRule = LoneSchemaDefinitionRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Lone Schema definition
- *
- * A GraphQL document is only valid if it contains only one schema definition.
- */
-function LoneSchemaDefinitionRule(context) {
-  var _ref, _ref2, _ref3;
-
-  var oldSchema = context.getSchema();
-  var alreadyDefined = (_ref = (_ref2 = (_ref3 = oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.astNode) !== null && _ref3 !== void 0 ? _ref3 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getQueryType()) !== null && _ref2 !== void 0 ? _ref2 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getMutationType()) !== null && _ref !== void 0 ? _ref : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getSubscriptionType();
-  var schemaDefinitionsCount = 0;
-  return {
-    SchemaDefinition: function SchemaDefinition(node) {
-      if (alreadyDefined) {
-        context.reportError(new _GraphQLError.GraphQLError('Cannot define a new schema within a schema extension.', node));
-        return;
-      }
-
-      if (schemaDefinitionsCount > 0) {
-        context.reportError(new _GraphQLError.GraphQLError('Must provide only one schema definition.', node));
-      }
-
-      ++schemaDefinitionsCount;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js.flow b/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js.flow
deleted file mode 100644
index cd0ff8b..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.js.flow
+++ /dev/null
@@ -1,44 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Lone Schema definition
- *
- * A GraphQL document is only valid if it contains only one schema definition.
- */
-export function LoneSchemaDefinitionRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const oldSchema = context.getSchema();
-  const alreadyDefined =
-    oldSchema?.astNode ??
-    oldSchema?.getQueryType() ??
-    oldSchema?.getMutationType() ??
-    oldSchema?.getSubscriptionType();
-
-  let schemaDefinitionsCount = 0;
-  return {
-    SchemaDefinition(node) {
-      if (alreadyDefined) {
-        context.reportError(
-          new GraphQLError(
-            'Cannot define a new schema within a schema extension.',
-            node,
-          ),
-        );
-        return;
-      }
-
-      if (schemaDefinitionsCount > 0) {
-        context.reportError(
-          new GraphQLError('Must provide only one schema definition.', node),
-        );
-      }
-      ++schemaDefinitionsCount;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs b/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs
deleted file mode 100644
index 9254e13..0000000
--- a/node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Lone Schema definition
- *
- * A GraphQL document is only valid if it contains only one schema definition.
- */
-export function LoneSchemaDefinitionRule(context) {
-  var _ref, _ref2, _ref3;
-
-  var oldSchema = context.getSchema();
-  var alreadyDefined = (_ref = (_ref2 = (_ref3 = oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.astNode) !== null && _ref3 !== void 0 ? _ref3 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getQueryType()) !== null && _ref2 !== void 0 ? _ref2 : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getMutationType()) !== null && _ref !== void 0 ? _ref : oldSchema === null || oldSchema === void 0 ? void 0 : oldSchema.getSubscriptionType();
-  var schemaDefinitionsCount = 0;
-  return {
-    SchemaDefinition: function SchemaDefinition(node) {
-      if (alreadyDefined) {
-        context.reportError(new GraphQLError('Cannot define a new schema within a schema extension.', node));
-        return;
-      }
-
-      if (schemaDefinitionsCount > 0) {
-        context.reportError(new GraphQLError('Must provide only one schema definition.', node));
-      }
-
-      ++schemaDefinitionsCount;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.d.ts b/node_modules/graphql/validation/rules/NoFragmentCyclesRule.d.ts
deleted file mode 100644
index 85b2b10..0000000
--- a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-export function NoFragmentCyclesRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js b/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js
deleted file mode 100644
index b3b0815..0000000
--- a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js
+++ /dev/null
@@ -1,70 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.NoFragmentCyclesRule = NoFragmentCyclesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-function NoFragmentCyclesRule(context) {
-  // Tracks already visited fragments to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors
-
-  var spreadPath = []; // Position in the spread path
-
-  var spreadPathIndexByName = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      detectCycleRecursive(node);
-      return false;
-    }
-  }; // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-
-  function detectCycleRecursive(fragment) {
-    if (visitedFrags[fragment.name.value]) {
-      return;
-    }
-
-    var fragmentName = fragment.name.value;
-    visitedFrags[fragmentName] = true;
-    var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
-
-    if (spreadNodes.length === 0) {
-      return;
-    }
-
-    spreadPathIndexByName[fragmentName] = spreadPath.length;
-
-    for (var _i2 = 0; _i2 < spreadNodes.length; _i2++) {
-      var spreadNode = spreadNodes[_i2];
-      var spreadName = spreadNode.name.value;
-      var cycleIndex = spreadPathIndexByName[spreadName];
-      spreadPath.push(spreadNode);
-
-      if (cycleIndex === undefined) {
-        var spreadFragment = context.getFragment(spreadName);
-
-        if (spreadFragment) {
-          detectCycleRecursive(spreadFragment);
-        }
-      } else {
-        var cyclePath = spreadPath.slice(cycleIndex);
-        var viaPath = cyclePath.slice(0, -1).map(function (s) {
-          return '"' + s.name.value + '"';
-        }).join(', ');
-        context.reportError(new _GraphQLError.GraphQLError("Cannot spread fragment \"".concat(spreadName, "\" within itself") + (viaPath !== '' ? " via ".concat(viaPath, ".") : '.'), cyclePath));
-      }
-
-      spreadPath.pop();
-    }
-
-    spreadPathIndexByName[fragmentName] = undefined;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js.flow b/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js.flow
deleted file mode 100644
index bb6f605..0000000
--- a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.js.flow
+++ /dev/null
@@ -1,79 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTVisitor } from '../../language/visitor';
-import { type FragmentDefinitionNode } from '../../language/ast';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-export function NoFragmentCyclesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  // Tracks already visited fragments to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  const visitedFrags = Object.create(null);
-
-  // Array of AST nodes used to produce meaningful errors
-  const spreadPath = [];
-
-  // Position in the spread path
-  const spreadPathIndexByName = Object.create(null);
-
-  return {
-    OperationDefinition: () => false,
-    FragmentDefinition(node) {
-      detectCycleRecursive(node);
-      return false;
-    },
-  };
-
-  // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-  function detectCycleRecursive(fragment: FragmentDefinitionNode) {
-    if (visitedFrags[fragment.name.value]) {
-      return;
-    }
-
-    const fragmentName = fragment.name.value;
-    visitedFrags[fragmentName] = true;
-
-    const spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
-    if (spreadNodes.length === 0) {
-      return;
-    }
-
-    spreadPathIndexByName[fragmentName] = spreadPath.length;
-
-    for (const spreadNode of spreadNodes) {
-      const spreadName = spreadNode.name.value;
-      const cycleIndex = spreadPathIndexByName[spreadName];
-
-      spreadPath.push(spreadNode);
-      if (cycleIndex === undefined) {
-        const spreadFragment = context.getFragment(spreadName);
-        if (spreadFragment) {
-          detectCycleRecursive(spreadFragment);
-        }
-      } else {
-        const cyclePath = spreadPath.slice(cycleIndex);
-        const viaPath = cyclePath
-          .slice(0, -1)
-          .map(s => '"' + s.name.value + '"')
-          .join(', ');
-
-        context.reportError(
-          new GraphQLError(
-            `Cannot spread fragment "${spreadName}" within itself` +
-              (viaPath !== '' ? ` via ${viaPath}.` : '.'),
-            cyclePath,
-          ),
-        );
-      }
-      spreadPath.pop();
-    }
-
-    spreadPathIndexByName[fragmentName] = undefined;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs b/node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs
deleted file mode 100644
index 8d7618e..0000000
--- a/node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs
+++ /dev/null
@@ -1,62 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-export function NoFragmentCyclesRule(context) {
-  // Tracks already visited fragments to maintain O(N) and to ensure that cycles
-  // are not redundantly reported.
-  var visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors
-
-  var spreadPath = []; // Position in the spread path
-
-  var spreadPathIndexByName = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      detectCycleRecursive(node);
-      return false;
-    }
-  }; // This does a straight-forward DFS to find cycles.
-  // It does not terminate when a cycle was found but continues to explore
-  // the graph to find all possible cycles.
-
-  function detectCycleRecursive(fragment) {
-    if (visitedFrags[fragment.name.value]) {
-      return;
-    }
-
-    var fragmentName = fragment.name.value;
-    visitedFrags[fragmentName] = true;
-    var spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
-
-    if (spreadNodes.length === 0) {
-      return;
-    }
-
-    spreadPathIndexByName[fragmentName] = spreadPath.length;
-
-    for (var _i2 = 0; _i2 < spreadNodes.length; _i2++) {
-      var spreadNode = spreadNodes[_i2];
-      var spreadName = spreadNode.name.value;
-      var cycleIndex = spreadPathIndexByName[spreadName];
-      spreadPath.push(spreadNode);
-
-      if (cycleIndex === undefined) {
-        var spreadFragment = context.getFragment(spreadName);
-
-        if (spreadFragment) {
-          detectCycleRecursive(spreadFragment);
-        }
-      } else {
-        var cyclePath = spreadPath.slice(cycleIndex);
-        var viaPath = cyclePath.slice(0, -1).map(function (s) {
-          return '"' + s.name.value + '"';
-        }).join(', ');
-        context.reportError(new GraphQLError("Cannot spread fragment \"".concat(spreadName, "\" within itself") + (viaPath !== '' ? " via ".concat(viaPath, ".") : '.'), cyclePath));
-      }
-
-      spreadPath.pop();
-    }
-
-    spreadPathIndexByName[fragmentName] = undefined;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.d.ts b/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.d.ts
deleted file mode 100644
index d1a0806..0000000
--- a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * No undefined variables
- *
- * A GraphQL operation is only valid if all variables encountered, both directly
- * and via fragment spreads, are defined by that operation.
- */
-export function NoUndefinedVariablesRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js b/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js
deleted file mode 100644
index 5488816..0000000
--- a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.NoUndefinedVariablesRule = NoUndefinedVariablesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * No undefined variables
- *
- * A GraphQL operation is only valid if all variables encountered, both directly
- * and via fragment spreads, are defined by that operation.
- */
-function NoUndefinedVariablesRule(context) {
-  var variableNameDefined = Object.create(null);
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        variableNameDefined = Object.create(null);
-      },
-      leave: function leave(operation) {
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          var varName = node.name.value;
-
-          if (variableNameDefined[varName] !== true) {
-            context.reportError(new _GraphQLError.GraphQLError(operation.name ? "Variable \"$".concat(varName, "\" is not defined by operation \"").concat(operation.name.value, "\".") : "Variable \"$".concat(varName, "\" is not defined."), [node, operation]));
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      variableNameDefined[node.variable.name.value] = true;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js.flow b/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js.flow
deleted file mode 100644
index be99da0..0000000
--- a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.js.flow
+++ /dev/null
@@ -1,46 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * No undefined variables
- *
- * A GraphQL operation is only valid if all variables encountered, both directly
- * and via fragment spreads, are defined by that operation.
- */
-export function NoUndefinedVariablesRule(
-  context: ValidationContext,
-): ASTVisitor {
-  let variableNameDefined = Object.create(null);
-
-  return {
-    OperationDefinition: {
-      enter() {
-        variableNameDefined = Object.create(null);
-      },
-      leave(operation) {
-        const usages = context.getRecursiveVariableUsages(operation);
-
-        for (const { node } of usages) {
-          const varName = node.name.value;
-          if (variableNameDefined[varName] !== true) {
-            context.reportError(
-              new GraphQLError(
-                operation.name
-                  ? `Variable "$${varName}" is not defined by operation "${operation.name.value}".`
-                  : `Variable "$${varName}" is not defined.`,
-                [node, operation],
-              ),
-            );
-          }
-        }
-      },
-    },
-    VariableDefinition(node) {
-      variableNameDefined[node.variable.name.value] = true;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs b/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs
deleted file mode 100644
index 004059f..0000000
--- a/node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs
+++ /dev/null
@@ -1,34 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * No undefined variables
- *
- * A GraphQL operation is only valid if all variables encountered, both directly
- * and via fragment spreads, are defined by that operation.
- */
-export function NoUndefinedVariablesRule(context) {
-  var variableNameDefined = Object.create(null);
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        variableNameDefined = Object.create(null);
-      },
-      leave: function leave(operation) {
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          var varName = node.name.value;
-
-          if (variableNameDefined[varName] !== true) {
-            context.reportError(new GraphQLError(operation.name ? "Variable \"$".concat(varName, "\" is not defined by operation \"").concat(operation.name.value, "\".") : "Variable \"$".concat(varName, "\" is not defined."), [node, operation]));
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      variableNameDefined[node.variable.name.value] = true;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.d.ts b/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.d.ts
deleted file mode 100644
index 8435bab..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * No unused fragments
- *
- * A GraphQL document is only valid if all fragment definitions are spread
- * within operations, or spread within other fragments spread within operations.
- */
-export function NoUnusedFragmentsRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js b/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js
deleted file mode 100644
index c5d5ac9..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.NoUnusedFragmentsRule = NoUnusedFragmentsRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * No unused fragments
- *
- * A GraphQL document is only valid if all fragment definitions are spread
- * within operations, or spread within other fragments spread within operations.
- */
-function NoUnusedFragmentsRule(context) {
-  var operationDefs = [];
-  var fragmentDefs = [];
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      operationDefs.push(node);
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      fragmentDefs.push(node);
-      return false;
-    },
-    Document: {
-      leave: function leave() {
-        var fragmentNameUsed = Object.create(null);
-
-        for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {
-          var operation = operationDefs[_i2];
-
-          for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {
-            var fragment = _context$getRecursive2[_i4];
-            fragmentNameUsed[fragment.name.value] = true;
-          }
-        }
-
-        for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {
-          var fragmentDef = fragmentDefs[_i6];
-          var fragName = fragmentDef.name.value;
-
-          if (fragmentNameUsed[fragName] !== true) {
-            context.reportError(new _GraphQLError.GraphQLError("Fragment \"".concat(fragName, "\" is never used."), fragmentDef));
-          }
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow b/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow
deleted file mode 100644
index f9772e4..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.js.flow
+++ /dev/null
@@ -1,54 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * No unused fragments
- *
- * A GraphQL document is only valid if all fragment definitions are spread
- * within operations, or spread within other fragments spread within operations.
- */
-export function NoUnusedFragmentsRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  const operationDefs = [];
-  const fragmentDefs = [];
-
-  return {
-    OperationDefinition(node) {
-      operationDefs.push(node);
-      return false;
-    },
-    FragmentDefinition(node) {
-      fragmentDefs.push(node);
-      return false;
-    },
-    Document: {
-      leave() {
-        const fragmentNameUsed = Object.create(null);
-        for (const operation of operationDefs) {
-          for (const fragment of context.getRecursivelyReferencedFragments(
-            operation,
-          )) {
-            fragmentNameUsed[fragment.name.value] = true;
-          }
-        }
-
-        for (const fragmentDef of fragmentDefs) {
-          const fragName = fragmentDef.name.value;
-          if (fragmentNameUsed[fragName] !== true) {
-            context.reportError(
-              new GraphQLError(
-                `Fragment "${fragName}" is never used.`,
-                fragmentDef,
-              ),
-            );
-          }
-        }
-      },
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs b/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs
deleted file mode 100644
index 1f5f816..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs
+++ /dev/null
@@ -1,45 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * No unused fragments
- *
- * A GraphQL document is only valid if all fragment definitions are spread
- * within operations, or spread within other fragments spread within operations.
- */
-export function NoUnusedFragmentsRule(context) {
-  var operationDefs = [];
-  var fragmentDefs = [];
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      operationDefs.push(node);
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      fragmentDefs.push(node);
-      return false;
-    },
-    Document: {
-      leave: function leave() {
-        var fragmentNameUsed = Object.create(null);
-
-        for (var _i2 = 0; _i2 < operationDefs.length; _i2++) {
-          var operation = operationDefs[_i2];
-
-          for (var _i4 = 0, _context$getRecursive2 = context.getRecursivelyReferencedFragments(operation); _i4 < _context$getRecursive2.length; _i4++) {
-            var fragment = _context$getRecursive2[_i4];
-            fragmentNameUsed[fragment.name.value] = true;
-          }
-        }
-
-        for (var _i6 = 0; _i6 < fragmentDefs.length; _i6++) {
-          var fragmentDef = fragmentDefs[_i6];
-          var fragName = fragmentDef.name.value;
-
-          if (fragmentNameUsed[fragName] !== true) {
-            context.reportError(new GraphQLError("Fragment \"".concat(fragName, "\" is never used."), fragmentDef));
-          }
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.d.ts b/node_modules/graphql/validation/rules/NoUnusedVariablesRule.d.ts
deleted file mode 100644
index 351449d..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * No unused variables
- *
- * A GraphQL operation is only valid if all variables defined by an operation
- * are used, either directly or within a spread fragment.
- */
-export function NoUnusedVariablesRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js b/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js
deleted file mode 100644
index 4046648..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.NoUnusedVariablesRule = NoUnusedVariablesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * No unused variables
- *
- * A GraphQL operation is only valid if all variables defined by an operation
- * are used, either directly or within a spread fragment.
- */
-function NoUnusedVariablesRule(context) {
-  var variableDefs = [];
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        variableDefs = [];
-      },
-      leave: function leave(operation) {
-        var variableNameUsed = Object.create(null);
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          variableNameUsed[node.name.value] = true;
-        }
-
-        for (var _i4 = 0, _variableDefs2 = variableDefs; _i4 < _variableDefs2.length; _i4++) {
-          var variableDef = _variableDefs2[_i4];
-          var variableName = variableDef.variable.name.value;
-
-          if (variableNameUsed[variableName] !== true) {
-            context.reportError(new _GraphQLError.GraphQLError(operation.name ? "Variable \"$".concat(variableName, "\" is never used in operation \"").concat(operation.name.value, "\".") : "Variable \"$".concat(variableName, "\" is never used."), variableDef));
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(def) {
-      variableDefs.push(def);
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow b/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow
deleted file mode 100644
index d24164e..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.js.flow
+++ /dev/null
@@ -1,49 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * No unused variables
- *
- * A GraphQL operation is only valid if all variables defined by an operation
- * are used, either directly or within a spread fragment.
- */
-export function NoUnusedVariablesRule(context: ValidationContext): ASTVisitor {
-  let variableDefs = [];
-
-  return {
-    OperationDefinition: {
-      enter() {
-        variableDefs = [];
-      },
-      leave(operation) {
-        const variableNameUsed = Object.create(null);
-        const usages = context.getRecursiveVariableUsages(operation);
-
-        for (const { node } of usages) {
-          variableNameUsed[node.name.value] = true;
-        }
-
-        for (const variableDef of variableDefs) {
-          const variableName = variableDef.variable.name.value;
-          if (variableNameUsed[variableName] !== true) {
-            context.reportError(
-              new GraphQLError(
-                operation.name
-                  ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".`
-                  : `Variable "$${variableName}" is never used.`,
-                variableDef,
-              ),
-            );
-          }
-        }
-      },
-    },
-    VariableDefinition(def) {
-      variableDefs.push(def);
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs b/node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs
deleted file mode 100644
index df62472..0000000
--- a/node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs
+++ /dev/null
@@ -1,40 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * No unused variables
- *
- * A GraphQL operation is only valid if all variables defined by an operation
- * are used, either directly or within a spread fragment.
- */
-export function NoUnusedVariablesRule(context) {
-  var variableDefs = [];
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        variableDefs = [];
-      },
-      leave: function leave(operation) {
-        var variableNameUsed = Object.create(null);
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          variableNameUsed[node.name.value] = true;
-        }
-
-        for (var _i4 = 0, _variableDefs2 = variableDefs; _i4 < _variableDefs2.length; _i4++) {
-          var variableDef = _variableDefs2[_i4];
-          var variableName = variableDef.variable.name.value;
-
-          if (variableNameUsed[variableName] !== true) {
-            context.reportError(new GraphQLError(operation.name ? "Variable \"$".concat(variableName, "\" is never used in operation \"").concat(operation.name.value, "\".") : "Variable \"$".concat(variableName, "\" is never used."), variableDef));
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(def) {
-      variableDefs.push(def);
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts b/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts
deleted file mode 100644
index c1671c2..0000000
--- a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Overlapping fields can be merged
- *
- * A selection set is only valid if all fields (including spreading any
- * fragments) either correspond to distinct response names or can be merged
- * without ambiguity.
- */
-export function OverlappingFieldsCanBeMergedRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js b/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js
deleted file mode 100644
index 29e7a58..0000000
--- a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js
+++ /dev/null
@@ -1,588 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.OverlappingFieldsCanBeMergedRule = OverlappingFieldsCanBeMergedRule;
-
-var _find = _interopRequireDefault(require("../../polyfills/find"));
-
-var _objectEntries3 = _interopRequireDefault(require("../../polyfills/objectEntries"));
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _printer = require("../../language/printer");
-
-var _definition = require("../../type/definition");
-
-var _typeFromAST = require("../../utilities/typeFromAST");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function reasonMessage(reason) {
-  if (Array.isArray(reason)) {
-    return reason.map(function (_ref) {
-      var responseName = _ref[0],
-          subReason = _ref[1];
-      return "subfields \"".concat(responseName, "\" conflict because ") + reasonMessage(subReason);
-    }).join(' and ');
-  }
-
-  return reason;
-}
-/**
- * Overlapping fields can be merged
- *
- * A selection set is only valid if all fields (including spreading any
- * fragments) either correspond to distinct response names or can be merged
- * without ambiguity.
- */
-
-
-function OverlappingFieldsCanBeMergedRule(context) {
-  // A memoization for when two fragments are compared "between" each other for
-  // conflicts. Two fragments may be compared many times, so memoizing this can
-  // dramatically improve the performance of this validator.
-  var comparedFragmentPairs = new PairSet(); // A cache for the "field map" and list of fragment names found in any given
-  // selection set. Selection sets may be asked for this information multiple
-  // times, so this improves the performance of this validator.
-
-  var cachedFieldsAndFragmentNames = new Map();
-  return {
-    SelectionSet: function SelectionSet(selectionSet) {
-      var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet);
-
-      for (var _i2 = 0; _i2 < conflicts.length; _i2++) {
-        var _ref3 = conflicts[_i2];
-        var _ref2$ = _ref3[0];
-        var responseName = _ref2$[0];
-        var reason = _ref2$[1];
-        var fields1 = _ref3[1];
-        var fields2 = _ref3[2];
-        var reasonMsg = reasonMessage(reason);
-        context.reportError(new _GraphQLError.GraphQLError("Fields \"".concat(responseName, "\" conflict because ").concat(reasonMsg, ". Use different aliases on the fields to fetch both if this was intentional."), fields1.concat(fields2)));
-      }
-    }
-  };
-}
-
-/**
- * Algorithm:
- *
- * Conflicts occur when two fields exist in a query which will produce the same
- * response name, but represent differing values, thus creating a conflict.
- * The algorithm below finds all conflicts via making a series of comparisons
- * between fields. In order to compare as few fields as possible, this makes
- * a series of comparisons "within" sets of fields and "between" sets of fields.
- *
- * Given any selection set, a collection produces both a set of fields by
- * also including all inline fragments, as well as a list of fragments
- * referenced by fragment spreads.
- *
- * A) Each selection set represented in the document first compares "within" its
- * collected set of fields, finding any conflicts between every pair of
- * overlapping fields.
- * Note: This is the *only time* that a the fields "within" a set are compared
- * to each other. After this only fields "between" sets are compared.
- *
- * B) Also, if any fragment is referenced in a selection set, then a
- * comparison is made "between" the original set of fields and the
- * referenced fragment.
- *
- * C) Also, if multiple fragments are referenced, then comparisons
- * are made "between" each referenced fragment.
- *
- * D) When comparing "between" a set of fields and a referenced fragment, first
- * a comparison is made between each field in the original set of fields and
- * each field in the the referenced set of fields.
- *
- * E) Also, if any fragment is referenced in the referenced selection set,
- * then a comparison is made "between" the original set of fields and the
- * referenced fragment (recursively referring to step D).
- *
- * F) When comparing "between" two fragments, first a comparison is made between
- * each field in the first referenced set of fields and each field in the the
- * second referenced set of fields.
- *
- * G) Also, any fragments referenced by the first must be compared to the
- * second, and any fragments referenced by the second must be compared to the
- * first (recursively referring to step F).
- *
- * H) When comparing two fields, if both have selection sets, then a comparison
- * is made "between" both selection sets, first comparing the set of fields in
- * the first selection set with the set of fields in the second.
- *
- * I) Also, if any fragment is referenced in either selection set, then a
- * comparison is made "between" the other set of fields and the
- * referenced fragment.
- *
- * J) Also, if two fragments are referenced in both selection sets, then a
- * comparison is made "between" the two fragments.
- *
- */
-// Find all conflicts found "within" a selection set, including those found
-// via spreading in fragments. Called when visiting each SelectionSet in the
-// GraphQL Document.
-function findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) {
-  var conflicts = [];
-
-  var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),
-      fieldMap = _getFieldsAndFragment[0],
-      fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts "within" the fields of this selection set.
-  // Note: this is the *only place* `collectConflictsWithin` is called.
-
-
-  collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap);
-
-  if (fragmentNames.length !== 0) {
-    // (B) Then collect conflicts between these fields and those represented by
-    // each spread fragment name found.
-    for (var i = 0; i < fragmentNames.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this
-      // selection set to collect conflicts between fragments spread together.
-      // This compares each item in the list of fragment names to every other
-      // item in that same list (except for itself).
-
-      for (var j = i + 1; j < fragmentNames.length; j++) {
-        collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]);
-      }
-    }
-  }
-
-  return conflicts;
-} // Collect all conflicts found between a set of fields and a fragment reference
-// including via spreading in any nested fragments.
-
-
-function collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) {
-  var fragment = context.getFragment(fragmentName);
-
-  if (!fragment) {
-    return;
-  }
-
-  var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),
-      fieldMap2 = _getReferencedFieldsA[0],
-      fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself.
-
-
-  if (fieldMap === fieldMap2) {
-    return;
-  } // (D) First collect any conflicts between the provided collection of fields
-  // and the collection of fields represented by the given fragment.
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields
-  // and any fragment names found in the given fragment.
-
-  for (var i = 0; i < fragmentNames2.length; i++) {
-    collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]);
-  }
-} // Collect all conflicts found between two fragments, including via spreading in
-// any nested fragments.
-
-
-function collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) {
-  // No need to compare a fragment to itself.
-  if (fragmentName1 === fragmentName2) {
-    return;
-  } // Memoize so two fragments are not compared for conflicts more than once.
-
-
-  if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {
-    return;
-  }
-
-  comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);
-  var fragment1 = context.getFragment(fragmentName1);
-  var fragment2 = context.getFragment(fragmentName2);
-
-  if (!fragment1 || !fragment2) {
-    return;
-  }
-
-  var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),
-      fieldMap1 = _getReferencedFieldsA2[0],
-      fragmentNames1 = _getReferencedFieldsA2[1];
-
-  var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),
-      fieldMap2 = _getReferencedFieldsA3[0],
-      fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields
-  // (not including any nested fragments).
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested
-  // fragments spread in the second fragment.
-
-  for (var j = 0; j < fragmentNames2.length; j++) {
-    collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);
-  } // (G) Then collect conflicts between the second fragment and any nested
-  // fragments spread in the first fragment.
-
-
-  for (var i = 0; i < fragmentNames1.length; i++) {
-    collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2);
-  }
-} // Find all conflicts found between two selection sets, including those found
-// via spreading in fragments. Called when determining if conflicts exist
-// between the sub-fields of two overlapping fields.
-
-
-function findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {
-  var conflicts = [];
-
-  var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),
-      fieldMap1 = _getFieldsAndFragment2[0],
-      fragmentNames1 = _getFieldsAndFragment2[1];
-
-  var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),
-      fieldMap2 = _getFieldsAndFragment3[0],
-      fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field.
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and
-  // those referenced by each fragment name associated with the second.
-
-  if (fragmentNames2.length !== 0) {
-    for (var j = 0; j < fragmentNames2.length; j++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);
-    }
-  } // (I) Then collect conflicts between the second collection of fields and
-  // those referenced by each fragment name associated with the first.
-
-
-  if (fragmentNames1.length !== 0) {
-    for (var i = 0; i < fragmentNames1.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);
-    }
-  } // (J) Also collect conflicts between any fragment names by the first and
-  // fragment names by the second. This compares each item in the first set of
-  // names to each item in the second set of names.
-
-
-  for (var _i3 = 0; _i3 < fragmentNames1.length; _i3++) {
-    for (var _j = 0; _j < fragmentNames2.length; _j++) {
-      collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i3], fragmentNames2[_j]);
-    }
-  }
-
-  return conflicts;
-} // Collect all Conflicts "within" one collection of fields.
-
-
-function collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For every response name, if there are multiple fields, they
-  // must be compared to find a potential conflict.
-  for (var _i5 = 0, _objectEntries2 = (0, _objectEntries3.default)(fieldMap); _i5 < _objectEntries2.length; _i5++) {
-    var _ref5 = _objectEntries2[_i5];
-    var responseName = _ref5[0];
-    var fields = _ref5[1];
-
-    // This compares every field in the list to every other field in this list
-    // (except to itself). If the list only has one item, nothing needs to
-    // be compared.
-    if (fields.length > 1) {
-      for (var i = 0; i < fields.length; i++) {
-        for (var j = i + 1; j < fields.length; j++) {
-          var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive
-          responseName, fields[i], fields[j]);
-
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-} // Collect all Conflicts between two collections of fields. This is similar to,
-// but different from the `collectConflictsWithin` function above. This check
-// assumes that `collectConflictsWithin` has already been called on each
-// provided collection of fields. This is true because this validator traverses
-// each individual selection set.
-
-
-function collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For any response name which appears in both provided field
-  // maps, each field from the first field map must be compared to every field
-  // in the second field map to find potential conflicts.
-  for (var _i7 = 0, _Object$keys2 = Object.keys(fieldMap1); _i7 < _Object$keys2.length; _i7++) {
-    var responseName = _Object$keys2[_i7];
-    var fields2 = fieldMap2[responseName];
-
-    if (fields2) {
-      var fields1 = fieldMap1[responseName];
-
-      for (var i = 0; i < fields1.length; i++) {
-        for (var j = 0; j < fields2.length; j++) {
-          var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);
-
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-} // Determines if there is a conflict between two particular fields, including
-// comparing their sub-fields.
-
-
-function findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {
-  var parentType1 = field1[0],
-      node1 = field1[1],
-      def1 = field1[2];
-  var parentType2 = field2[0],
-      node2 = field2[1],
-      def2 = field2[2]; // If it is known that two fields could not possibly apply at the same
-  // time, due to the parent types, then it is safe to permit them to diverge
-  // in aliased field or arguments used as they will not present any ambiguity
-  // by differing.
-  // It is known that two parent types could never overlap if they are
-  // different Object types. Interface or Union types might overlap - if not
-  // in the current state of the schema, then perhaps in some future version,
-  // thus may not safely diverge.
-
-  var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && (0, _definition.isObjectType)(parentType1) && (0, _definition.isObjectType)(parentType2);
-
-  if (!areMutuallyExclusive) {
-    var _node1$arguments, _node2$arguments;
-
-    // Two aliases must refer to the same field.
-    var name1 = node1.name.value;
-    var name2 = node2.name.value;
-
-    if (name1 !== name2) {
-      return [[responseName, "\"".concat(name1, "\" and \"").concat(name2, "\" are different fields")], [node1], [node2]];
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var args1 = (_node1$arguments = node1.arguments) !== null && _node1$arguments !== void 0 ? _node1$arguments : [];
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-    var args2 = (_node2$arguments = node2.arguments) !== null && _node2$arguments !== void 0 ? _node2$arguments : []; // Two field calls must have the same arguments.
-
-    if (!sameArguments(args1, args2)) {
-      return [[responseName, 'they have differing arguments'], [node1], [node2]];
-    }
-  } // The return type for each field.
-
-
-  var type1 = def1 === null || def1 === void 0 ? void 0 : def1.type;
-  var type2 = def2 === null || def2 === void 0 ? void 0 : def2.type;
-
-  if (type1 && type2 && doTypesConflict(type1, type2)) {
-    return [[responseName, "they return conflicting types \"".concat((0, _inspect.default)(type1), "\" and \"").concat((0, _inspect.default)(type2), "\"")], [node1], [node2]];
-  } // Collect and compare sub-fields. Use the same "visited fragment names" list
-  // for both collections so fields in a fragment reference are never
-  // compared to themselves.
-
-
-  var selectionSet1 = node1.selectionSet;
-  var selectionSet2 = node2.selectionSet;
-
-  if (selectionSet1 && selectionSet2) {
-    var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, (0, _definition.getNamedType)(type1), selectionSet1, (0, _definition.getNamedType)(type2), selectionSet2);
-    return subfieldConflicts(conflicts, responseName, node1, node2);
-  }
-}
-
-function sameArguments(arguments1, arguments2) {
-  if (arguments1.length !== arguments2.length) {
-    return false;
-  }
-
-  return arguments1.every(function (argument1) {
-    var argument2 = (0, _find.default)(arguments2, function (argument) {
-      return argument.name.value === argument1.name.value;
-    });
-
-    if (!argument2) {
-      return false;
-    }
-
-    return sameValue(argument1.value, argument2.value);
-  });
-}
-
-function sameValue(value1, value2) {
-  return (0, _printer.print)(value1) === (0, _printer.print)(value2);
-} // Two types conflict if both types could not apply to a value simultaneously.
-// Composite types are ignored as their individual field types will be compared
-// later recursively. However List and Non-Null types must match.
-
-
-function doTypesConflict(type1, type2) {
-  if ((0, _definition.isListType)(type1)) {
-    return (0, _definition.isListType)(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;
-  }
-
-  if ((0, _definition.isListType)(type2)) {
-    return true;
-  }
-
-  if ((0, _definition.isNonNullType)(type1)) {
-    return (0, _definition.isNonNullType)(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;
-  }
-
-  if ((0, _definition.isNonNullType)(type2)) {
-    return true;
-  }
-
-  if ((0, _definition.isLeafType)(type1) || (0, _definition.isLeafType)(type2)) {
-    return type1 !== type2;
-  }
-
-  return false;
-} // Given a selection set, return the collection of fields (a mapping of response
-// name to field nodes and definitions) as well as a list of fragment names
-// referenced via fragment spreads.
-
-
-function getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {
-  var cached = cachedFieldsAndFragmentNames.get(selectionSet);
-
-  if (!cached) {
-    var nodeAndDefs = Object.create(null);
-    var fragmentNames = Object.create(null);
-
-    _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);
-
-    cached = [nodeAndDefs, Object.keys(fragmentNames)];
-    cachedFieldsAndFragmentNames.set(selectionSet, cached);
-  }
-
-  return cached;
-} // Given a reference to a fragment, return the represented collection of fields
-// as well as a list of nested fragment names referenced via fragment spreads.
-
-
-function getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {
-  // Short-circuit building a type from the node if possible.
-  var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);
-
-  if (cached) {
-    return cached;
-  }
-
-  var fragmentType = (0, _typeFromAST.typeFromAST)(context.getSchema(), fragment.typeCondition);
-  return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);
-}
-
-function _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {
-  for (var _i9 = 0, _selectionSet$selecti2 = selectionSet.selections; _i9 < _selectionSet$selecti2.length; _i9++) {
-    var selection = _selectionSet$selecti2[_i9];
-
-    switch (selection.kind) {
-      case _kinds.Kind.FIELD:
-        {
-          var fieldName = selection.name.value;
-          var fieldDef = void 0;
-
-          if ((0, _definition.isObjectType)(parentType) || (0, _definition.isInterfaceType)(parentType)) {
-            fieldDef = parentType.getFields()[fieldName];
-          }
-
-          var responseName = selection.alias ? selection.alias.value : fieldName;
-
-          if (!nodeAndDefs[responseName]) {
-            nodeAndDefs[responseName] = [];
-          }
-
-          nodeAndDefs[responseName].push([parentType, selection, fieldDef]);
-          break;
-        }
-
-      case _kinds.Kind.FRAGMENT_SPREAD:
-        fragmentNames[selection.name.value] = true;
-        break;
-
-      case _kinds.Kind.INLINE_FRAGMENT:
-        {
-          var typeCondition = selection.typeCondition;
-          var inlineFragmentType = typeCondition ? (0, _typeFromAST.typeFromAST)(context.getSchema(), typeCondition) : parentType;
-
-          _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);
-
-          break;
-        }
-    }
-  }
-} // Given a series of Conflicts which occurred between two sub-fields, generate
-// a single Conflict.
-
-
-function subfieldConflicts(conflicts, responseName, node1, node2) {
-  if (conflicts.length > 0) {
-    return [[responseName, conflicts.map(function (_ref6) {
-      var reason = _ref6[0];
-      return reason;
-    })], conflicts.reduce(function (allFields, _ref7) {
-      var fields1 = _ref7[1];
-      return allFields.concat(fields1);
-    }, [node1]), conflicts.reduce(function (allFields, _ref8) {
-      var fields2 = _ref8[2];
-      return allFields.concat(fields2);
-    }, [node2])];
-  }
-}
-/**
- * A way to keep track of pairs of things when the ordering of the pair does
- * not matter. We do this by maintaining a sort of double adjacency sets.
- */
-
-
-var PairSet =
-/*#__PURE__*/
-function () {
-  function PairSet() {
-    this._data = Object.create(null);
-  }
-
-  var _proto = PairSet.prototype;
-
-  _proto.has = function has(a, b, areMutuallyExclusive) {
-    var first = this._data[a];
-    var result = first && first[b];
-
-    if (result === undefined) {
-      return false;
-    } // areMutuallyExclusive being false is a superset of being true,
-    // hence if we want to know if this PairSet "has" these two with no
-    // exclusivity, we have to ensure it was added as such.
-
-
-    if (areMutuallyExclusive === false) {
-      return result === false;
-    }
-
-    return true;
-  };
-
-  _proto.add = function add(a, b, areMutuallyExclusive) {
-    _pairSetAdd(this._data, a, b, areMutuallyExclusive);
-
-    _pairSetAdd(this._data, b, a, areMutuallyExclusive);
-  };
-
-  return PairSet;
-}();
-
-function _pairSetAdd(data, a, b, areMutuallyExclusive) {
-  var map = data[a];
-
-  if (!map) {
-    map = Object.create(null);
-    data[a] = map;
-  }
-
-  map[b] = areMutuallyExclusive;
-}
diff --git a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow b/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow
deleted file mode 100644
index 15a6f7b..0000000
--- a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow
+++ /dev/null
@@ -1,831 +0,0 @@
-// @flow strict
-
-import find from '../../polyfills/find';
-import objectEntries from '../../polyfills/objectEntries';
-
-import inspect from '../../jsutils/inspect';
-import { type ObjMap } from '../../jsutils/ObjMap';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { print } from '../../language/printer';
-import { type ASTVisitor } from '../../language/visitor';
-import {
-  type SelectionSetNode,
-  type FieldNode,
-  type ArgumentNode,
-  type FragmentDefinitionNode,
-} from '../../language/ast';
-
-import {
-  type GraphQLNamedType,
-  type GraphQLOutputType,
-  type GraphQLCompositeType,
-  type GraphQLField,
-  getNamedType,
-  isNonNullType,
-  isLeafType,
-  isObjectType,
-  isListType,
-  isInterfaceType,
-} from '../../type/definition';
-
-import { typeFromAST } from '../../utilities/typeFromAST';
-
-import { type ValidationContext } from '../ValidationContext';
-
-function reasonMessage(reason: ConflictReasonMessage): string {
-  if (Array.isArray(reason)) {
-    return reason
-      .map(
-        ([responseName, subReason]) =>
-          `subfields "${responseName}" conflict because ` +
-          reasonMessage(subReason),
-      )
-      .join(' and ');
-  }
-  return reason;
-}
-
-/**
- * Overlapping fields can be merged
- *
- * A selection set is only valid if all fields (including spreading any
- * fragments) either correspond to distinct response names or can be merged
- * without ambiguity.
- */
-export function OverlappingFieldsCanBeMergedRule(
-  context: ValidationContext,
-): ASTVisitor {
-  // A memoization for when two fragments are compared "between" each other for
-  // conflicts. Two fragments may be compared many times, so memoizing this can
-  // dramatically improve the performance of this validator.
-  const comparedFragmentPairs = new PairSet();
-
-  // A cache for the "field map" and list of fragment names found in any given
-  // selection set. Selection sets may be asked for this information multiple
-  // times, so this improves the performance of this validator.
-  const cachedFieldsAndFragmentNames = new Map();
-
-  return {
-    SelectionSet(selectionSet) {
-      const conflicts = findConflictsWithinSelectionSet(
-        context,
-        cachedFieldsAndFragmentNames,
-        comparedFragmentPairs,
-        context.getParentType(),
-        selectionSet,
-      );
-      for (const [[responseName, reason], fields1, fields2] of conflicts) {
-        const reasonMsg = reasonMessage(reason);
-        context.reportError(
-          new GraphQLError(
-            `Fields "${responseName}" conflict because ${reasonMsg}. Use different aliases on the fields to fetch both if this was intentional.`,
-            fields1.concat(fields2),
-          ),
-        );
-      }
-    },
-  };
-}
-
-type Conflict = [ConflictReason, Array<FieldNode>, Array<FieldNode>];
-// Field name and reason.
-type ConflictReason = [string, ConflictReasonMessage];
-// Reason is a string, or a nested list of conflicts.
-type ConflictReasonMessage = string | Array<ConflictReason>;
-// Tuple defining a field node in a context.
-type NodeAndDef = [
-  GraphQLCompositeType,
-  FieldNode,
-  ?GraphQLField<mixed, mixed>,
-];
-// Map of array of those.
-type NodeAndDefCollection = ObjMap<Array<NodeAndDef>>;
-
-/**
- * Algorithm:
- *
- * Conflicts occur when two fields exist in a query which will produce the same
- * response name, but represent differing values, thus creating a conflict.
- * The algorithm below finds all conflicts via making a series of comparisons
- * between fields. In order to compare as few fields as possible, this makes
- * a series of comparisons "within" sets of fields and "between" sets of fields.
- *
- * Given any selection set, a collection produces both a set of fields by
- * also including all inline fragments, as well as a list of fragments
- * referenced by fragment spreads.
- *
- * A) Each selection set represented in the document first compares "within" its
- * collected set of fields, finding any conflicts between every pair of
- * overlapping fields.
- * Note: This is the *only time* that a the fields "within" a set are compared
- * to each other. After this only fields "between" sets are compared.
- *
- * B) Also, if any fragment is referenced in a selection set, then a
- * comparison is made "between" the original set of fields and the
- * referenced fragment.
- *
- * C) Also, if multiple fragments are referenced, then comparisons
- * are made "between" each referenced fragment.
- *
- * D) When comparing "between" a set of fields and a referenced fragment, first
- * a comparison is made between each field in the original set of fields and
- * each field in the the referenced set of fields.
- *
- * E) Also, if any fragment is referenced in the referenced selection set,
- * then a comparison is made "between" the original set of fields and the
- * referenced fragment (recursively referring to step D).
- *
- * F) When comparing "between" two fragments, first a comparison is made between
- * each field in the first referenced set of fields and each field in the the
- * second referenced set of fields.
- *
- * G) Also, any fragments referenced by the first must be compared to the
- * second, and any fragments referenced by the second must be compared to the
- * first (recursively referring to step F).
- *
- * H) When comparing two fields, if both have selection sets, then a comparison
- * is made "between" both selection sets, first comparing the set of fields in
- * the first selection set with the set of fields in the second.
- *
- * I) Also, if any fragment is referenced in either selection set, then a
- * comparison is made "between" the other set of fields and the
- * referenced fragment.
- *
- * J) Also, if two fragments are referenced in both selection sets, then a
- * comparison is made "between" the two fragments.
- *
- */
-
-// Find all conflicts found "within" a selection set, including those found
-// via spreading in fragments. Called when visiting each SelectionSet in the
-// GraphQL Document.
-function findConflictsWithinSelectionSet(
-  context: ValidationContext,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  parentType: ?GraphQLNamedType,
-  selectionSet: SelectionSetNode,
-): Array<Conflict> {
-  const conflicts = [];
-
-  const [fieldMap, fragmentNames] = getFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    parentType,
-    selectionSet,
-  );
-
-  // (A) Find find all conflicts "within" the fields of this selection set.
-  // Note: this is the *only place* `collectConflictsWithin` is called.
-  collectConflictsWithin(
-    context,
-    conflicts,
-    cachedFieldsAndFragmentNames,
-    comparedFragmentPairs,
-    fieldMap,
-  );
-
-  if (fragmentNames.length !== 0) {
-    // (B) Then collect conflicts between these fields and those represented by
-    // each spread fragment name found.
-    for (let i = 0; i < fragmentNames.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(
-        context,
-        conflicts,
-        cachedFieldsAndFragmentNames,
-        comparedFragmentPairs,
-        false,
-        fieldMap,
-        fragmentNames[i],
-      );
-      // (C) Then compare this fragment with all other fragments found in this
-      // selection set to collect conflicts between fragments spread together.
-      // This compares each item in the list of fragment names to every other
-      // item in that same list (except for itself).
-      for (let j = i + 1; j < fragmentNames.length; j++) {
-        collectConflictsBetweenFragments(
-          context,
-          conflicts,
-          cachedFieldsAndFragmentNames,
-          comparedFragmentPairs,
-          false,
-          fragmentNames[i],
-          fragmentNames[j],
-        );
-      }
-    }
-  }
-  return conflicts;
-}
-
-// Collect all conflicts found between a set of fields and a fragment reference
-// including via spreading in any nested fragments.
-function collectConflictsBetweenFieldsAndFragment(
-  context: ValidationContext,
-  conflicts: Array<Conflict>,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  areMutuallyExclusive: boolean,
-  fieldMap: NodeAndDefCollection,
-  fragmentName: string,
-): void {
-  const fragment = context.getFragment(fragmentName);
-  if (!fragment) {
-    return;
-  }
-
-  const [fieldMap2, fragmentNames2] = getReferencedFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    fragment,
-  );
-
-  // Do not compare a fragment's fieldMap to itself.
-  if (fieldMap === fieldMap2) {
-    return;
-  }
-
-  // (D) First collect any conflicts between the provided collection of fields
-  // and the collection of fields represented by the given fragment.
-  collectConflictsBetween(
-    context,
-    conflicts,
-    cachedFieldsAndFragmentNames,
-    comparedFragmentPairs,
-    areMutuallyExclusive,
-    fieldMap,
-    fieldMap2,
-  );
-
-  // (E) Then collect any conflicts between the provided collection of fields
-  // and any fragment names found in the given fragment.
-  for (let i = 0; i < fragmentNames2.length; i++) {
-    collectConflictsBetweenFieldsAndFragment(
-      context,
-      conflicts,
-      cachedFieldsAndFragmentNames,
-      comparedFragmentPairs,
-      areMutuallyExclusive,
-      fieldMap,
-      fragmentNames2[i],
-    );
-  }
-}
-
-// Collect all conflicts found between two fragments, including via spreading in
-// any nested fragments.
-function collectConflictsBetweenFragments(
-  context: ValidationContext,
-  conflicts: Array<Conflict>,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  areMutuallyExclusive: boolean,
-  fragmentName1: string,
-  fragmentName2: string,
-): void {
-  // No need to compare a fragment to itself.
-  if (fragmentName1 === fragmentName2) {
-    return;
-  }
-
-  // Memoize so two fragments are not compared for conflicts more than once.
-  if (
-    comparedFragmentPairs.has(
-      fragmentName1,
-      fragmentName2,
-      areMutuallyExclusive,
-    )
-  ) {
-    return;
-  }
-  comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);
-
-  const fragment1 = context.getFragment(fragmentName1);
-  const fragment2 = context.getFragment(fragmentName2);
-  if (!fragment1 || !fragment2) {
-    return;
-  }
-
-  const [fieldMap1, fragmentNames1] = getReferencedFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    fragment1,
-  );
-  const [fieldMap2, fragmentNames2] = getReferencedFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    fragment2,
-  );
-
-  // (F) First, collect all conflicts between these two collections of fields
-  // (not including any nested fragments).
-  collectConflictsBetween(
-    context,
-    conflicts,
-    cachedFieldsAndFragmentNames,
-    comparedFragmentPairs,
-    areMutuallyExclusive,
-    fieldMap1,
-    fieldMap2,
-  );
-
-  // (G) Then collect conflicts between the first fragment and any nested
-  // fragments spread in the second fragment.
-  for (let j = 0; j < fragmentNames2.length; j++) {
-    collectConflictsBetweenFragments(
-      context,
-      conflicts,
-      cachedFieldsAndFragmentNames,
-      comparedFragmentPairs,
-      areMutuallyExclusive,
-      fragmentName1,
-      fragmentNames2[j],
-    );
-  }
-
-  // (G) Then collect conflicts between the second fragment and any nested
-  // fragments spread in the first fragment.
-  for (let i = 0; i < fragmentNames1.length; i++) {
-    collectConflictsBetweenFragments(
-      context,
-      conflicts,
-      cachedFieldsAndFragmentNames,
-      comparedFragmentPairs,
-      areMutuallyExclusive,
-      fragmentNames1[i],
-      fragmentName2,
-    );
-  }
-}
-
-// Find all conflicts found between two selection sets, including those found
-// via spreading in fragments. Called when determining if conflicts exist
-// between the sub-fields of two overlapping fields.
-function findConflictsBetweenSubSelectionSets(
-  context: ValidationContext,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  areMutuallyExclusive: boolean,
-  parentType1: ?GraphQLNamedType,
-  selectionSet1: SelectionSetNode,
-  parentType2: ?GraphQLNamedType,
-  selectionSet2: SelectionSetNode,
-): Array<Conflict> {
-  const conflicts = [];
-
-  const [fieldMap1, fragmentNames1] = getFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    parentType1,
-    selectionSet1,
-  );
-  const [fieldMap2, fragmentNames2] = getFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    parentType2,
-    selectionSet2,
-  );
-
-  // (H) First, collect all conflicts between these two collections of field.
-  collectConflictsBetween(
-    context,
-    conflicts,
-    cachedFieldsAndFragmentNames,
-    comparedFragmentPairs,
-    areMutuallyExclusive,
-    fieldMap1,
-    fieldMap2,
-  );
-
-  // (I) Then collect conflicts between the first collection of fields and
-  // those referenced by each fragment name associated with the second.
-  if (fragmentNames2.length !== 0) {
-    for (let j = 0; j < fragmentNames2.length; j++) {
-      collectConflictsBetweenFieldsAndFragment(
-        context,
-        conflicts,
-        cachedFieldsAndFragmentNames,
-        comparedFragmentPairs,
-        areMutuallyExclusive,
-        fieldMap1,
-        fragmentNames2[j],
-      );
-    }
-  }
-
-  // (I) Then collect conflicts between the second collection of fields and
-  // those referenced by each fragment name associated with the first.
-  if (fragmentNames1.length !== 0) {
-    for (let i = 0; i < fragmentNames1.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(
-        context,
-        conflicts,
-        cachedFieldsAndFragmentNames,
-        comparedFragmentPairs,
-        areMutuallyExclusive,
-        fieldMap2,
-        fragmentNames1[i],
-      );
-    }
-  }
-
-  // (J) Also collect conflicts between any fragment names by the first and
-  // fragment names by the second. This compares each item in the first set of
-  // names to each item in the second set of names.
-  for (let i = 0; i < fragmentNames1.length; i++) {
-    for (let j = 0; j < fragmentNames2.length; j++) {
-      collectConflictsBetweenFragments(
-        context,
-        conflicts,
-        cachedFieldsAndFragmentNames,
-        comparedFragmentPairs,
-        areMutuallyExclusive,
-        fragmentNames1[i],
-        fragmentNames2[j],
-      );
-    }
-  }
-  return conflicts;
-}
-
-// Collect all Conflicts "within" one collection of fields.
-function collectConflictsWithin(
-  context: ValidationContext,
-  conflicts: Array<Conflict>,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  fieldMap: NodeAndDefCollection,
-): void {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For every response name, if there are multiple fields, they
-  // must be compared to find a potential conflict.
-  for (const [responseName, fields] of objectEntries(fieldMap)) {
-    // This compares every field in the list to every other field in this list
-    // (except to itself). If the list only has one item, nothing needs to
-    // be compared.
-    if (fields.length > 1) {
-      for (let i = 0; i < fields.length; i++) {
-        for (let j = i + 1; j < fields.length; j++) {
-          const conflict = findConflict(
-            context,
-            cachedFieldsAndFragmentNames,
-            comparedFragmentPairs,
-            false, // within one collection is never mutually exclusive
-            responseName,
-            fields[i],
-            fields[j],
-          );
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-}
-
-// Collect all Conflicts between two collections of fields. This is similar to,
-// but different from the `collectConflictsWithin` function above. This check
-// assumes that `collectConflictsWithin` has already been called on each
-// provided collection of fields. This is true because this validator traverses
-// each individual selection set.
-function collectConflictsBetween(
-  context: ValidationContext,
-  conflicts: Array<Conflict>,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  parentFieldsAreMutuallyExclusive: boolean,
-  fieldMap1: NodeAndDefCollection,
-  fieldMap2: NodeAndDefCollection,
-): void {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For any response name which appears in both provided field
-  // maps, each field from the first field map must be compared to every field
-  // in the second field map to find potential conflicts.
-  for (const responseName of Object.keys(fieldMap1)) {
-    const fields2 = fieldMap2[responseName];
-    if (fields2) {
-      const fields1 = fieldMap1[responseName];
-      for (let i = 0; i < fields1.length; i++) {
-        for (let j = 0; j < fields2.length; j++) {
-          const conflict = findConflict(
-            context,
-            cachedFieldsAndFragmentNames,
-            comparedFragmentPairs,
-            parentFieldsAreMutuallyExclusive,
-            responseName,
-            fields1[i],
-            fields2[j],
-          );
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-}
-
-// Determines if there is a conflict between two particular fields, including
-// comparing their sub-fields.
-function findConflict(
-  context: ValidationContext,
-  cachedFieldsAndFragmentNames,
-  comparedFragmentPairs: PairSet,
-  parentFieldsAreMutuallyExclusive: boolean,
-  responseName: string,
-  field1: NodeAndDef,
-  field2: NodeAndDef,
-): ?Conflict {
-  const [parentType1, node1, def1] = field1;
-  const [parentType2, node2, def2] = field2;
-
-  // If it is known that two fields could not possibly apply at the same
-  // time, due to the parent types, then it is safe to permit them to diverge
-  // in aliased field or arguments used as they will not present any ambiguity
-  // by differing.
-  // It is known that two parent types could never overlap if they are
-  // different Object types. Interface or Union types might overlap - if not
-  // in the current state of the schema, then perhaps in some future version,
-  // thus may not safely diverge.
-  const areMutuallyExclusive =
-    parentFieldsAreMutuallyExclusive ||
-    (parentType1 !== parentType2 &&
-      isObjectType(parentType1) &&
-      isObjectType(parentType2));
-
-  if (!areMutuallyExclusive) {
-    // Two aliases must refer to the same field.
-    const name1 = node1.name.value;
-    const name2 = node2.name.value;
-    if (name1 !== name2) {
-      return [
-        [responseName, `"${name1}" and "${name2}" are different fields`],
-        [node1],
-        [node2],
-      ];
-    }
-
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const args1 = node1.arguments ?? [];
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const args2 = node2.arguments ?? [];
-    // Two field calls must have the same arguments.
-    if (!sameArguments(args1, args2)) {
-      return [
-        [responseName, 'they have differing arguments'],
-        [node1],
-        [node2],
-      ];
-    }
-  }
-
-  // The return type for each field.
-  const type1 = def1?.type;
-  const type2 = def2?.type;
-
-  if (type1 && type2 && doTypesConflict(type1, type2)) {
-    return [
-      [
-        responseName,
-        `they return conflicting types "${inspect(type1)}" and "${inspect(
-          type2,
-        )}"`,
-      ],
-      [node1],
-      [node2],
-    ];
-  }
-
-  // Collect and compare sub-fields. Use the same "visited fragment names" list
-  // for both collections so fields in a fragment reference are never
-  // compared to themselves.
-  const selectionSet1 = node1.selectionSet;
-  const selectionSet2 = node2.selectionSet;
-  if (selectionSet1 && selectionSet2) {
-    const conflicts = findConflictsBetweenSubSelectionSets(
-      context,
-      cachedFieldsAndFragmentNames,
-      comparedFragmentPairs,
-      areMutuallyExclusive,
-      getNamedType(type1),
-      selectionSet1,
-      getNamedType(type2),
-      selectionSet2,
-    );
-    return subfieldConflicts(conflicts, responseName, node1, node2);
-  }
-}
-
-function sameArguments(
-  arguments1: $ReadOnlyArray<ArgumentNode>,
-  arguments2: $ReadOnlyArray<ArgumentNode>,
-): boolean {
-  if (arguments1.length !== arguments2.length) {
-    return false;
-  }
-  return arguments1.every(argument1 => {
-    const argument2 = find(
-      arguments2,
-      argument => argument.name.value === argument1.name.value,
-    );
-    if (!argument2) {
-      return false;
-    }
-    return sameValue(argument1.value, argument2.value);
-  });
-}
-
-function sameValue(value1, value2) {
-  return print(value1) === print(value2);
-}
-
-// Two types conflict if both types could not apply to a value simultaneously.
-// Composite types are ignored as their individual field types will be compared
-// later recursively. However List and Non-Null types must match.
-function doTypesConflict(
-  type1: GraphQLOutputType,
-  type2: GraphQLOutputType,
-): boolean {
-  if (isListType(type1)) {
-    return isListType(type2)
-      ? doTypesConflict(type1.ofType, type2.ofType)
-      : true;
-  }
-  if (isListType(type2)) {
-    return true;
-  }
-  if (isNonNullType(type1)) {
-    return isNonNullType(type2)
-      ? doTypesConflict(type1.ofType, type2.ofType)
-      : true;
-  }
-  if (isNonNullType(type2)) {
-    return true;
-  }
-  if (isLeafType(type1) || isLeafType(type2)) {
-    return type1 !== type2;
-  }
-  return false;
-}
-
-// Given a selection set, return the collection of fields (a mapping of response
-// name to field nodes and definitions) as well as a list of fragment names
-// referenced via fragment spreads.
-function getFieldsAndFragmentNames(
-  context: ValidationContext,
-  cachedFieldsAndFragmentNames,
-  parentType: ?GraphQLNamedType,
-  selectionSet: SelectionSetNode,
-): [NodeAndDefCollection, Array<string>] {
-  let cached = cachedFieldsAndFragmentNames.get(selectionSet);
-  if (!cached) {
-    const nodeAndDefs = Object.create(null);
-    const fragmentNames = Object.create(null);
-    _collectFieldsAndFragmentNames(
-      context,
-      parentType,
-      selectionSet,
-      nodeAndDefs,
-      fragmentNames,
-    );
-    cached = [nodeAndDefs, Object.keys(fragmentNames)];
-    cachedFieldsAndFragmentNames.set(selectionSet, cached);
-  }
-  return cached;
-}
-
-// Given a reference to a fragment, return the represented collection of fields
-// as well as a list of nested fragment names referenced via fragment spreads.
-function getReferencedFieldsAndFragmentNames(
-  context: ValidationContext,
-  cachedFieldsAndFragmentNames,
-  fragment: FragmentDefinitionNode,
-) {
-  // Short-circuit building a type from the node if possible.
-  const cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);
-  if (cached) {
-    return cached;
-  }
-
-  const fragmentType = typeFromAST(context.getSchema(), fragment.typeCondition);
-  return getFieldsAndFragmentNames(
-    context,
-    cachedFieldsAndFragmentNames,
-    fragmentType,
-    fragment.selectionSet,
-  );
-}
-
-function _collectFieldsAndFragmentNames(
-  context: ValidationContext,
-  parentType: ?GraphQLNamedType,
-  selectionSet: SelectionSetNode,
-  nodeAndDefs,
-  fragmentNames,
-): void {
-  for (const selection of selectionSet.selections) {
-    switch (selection.kind) {
-      case Kind.FIELD: {
-        const fieldName = selection.name.value;
-        let fieldDef;
-        if (isObjectType(parentType) || isInterfaceType(parentType)) {
-          fieldDef = parentType.getFields()[fieldName];
-        }
-        const responseName = selection.alias
-          ? selection.alias.value
-          : fieldName;
-        if (!nodeAndDefs[responseName]) {
-          nodeAndDefs[responseName] = [];
-        }
-        nodeAndDefs[responseName].push([parentType, selection, fieldDef]);
-        break;
-      }
-      case Kind.FRAGMENT_SPREAD:
-        fragmentNames[selection.name.value] = true;
-        break;
-      case Kind.INLINE_FRAGMENT: {
-        const typeCondition = selection.typeCondition;
-        const inlineFragmentType = typeCondition
-          ? typeFromAST(context.getSchema(), typeCondition)
-          : parentType;
-        _collectFieldsAndFragmentNames(
-          context,
-          inlineFragmentType,
-          selection.selectionSet,
-          nodeAndDefs,
-          fragmentNames,
-        );
-        break;
-      }
-    }
-  }
-}
-
-// Given a series of Conflicts which occurred between two sub-fields, generate
-// a single Conflict.
-function subfieldConflicts(
-  conflicts: $ReadOnlyArray<Conflict>,
-  responseName: string,
-  node1: FieldNode,
-  node2: FieldNode,
-): ?Conflict {
-  if (conflicts.length > 0) {
-    return [
-      [responseName, conflicts.map(([reason]) => reason)],
-      conflicts.reduce((allFields, [, fields1]) => allFields.concat(fields1), [
-        node1,
-      ]),
-      conflicts.reduce(
-        (allFields, [, , fields2]) => allFields.concat(fields2),
-        [node2],
-      ),
-    ];
-  }
-}
-
-/**
- * A way to keep track of pairs of things when the ordering of the pair does
- * not matter. We do this by maintaining a sort of double adjacency sets.
- */
-class PairSet {
-  _data: ObjMap<ObjMap<boolean>>;
-
-  constructor(): void {
-    this._data = Object.create(null);
-  }
-
-  has(a: string, b: string, areMutuallyExclusive: boolean) {
-    const first = this._data[a];
-    const result = first && first[b];
-    if (result === undefined) {
-      return false;
-    }
-    // areMutuallyExclusive being false is a superset of being true,
-    // hence if we want to know if this PairSet "has" these two with no
-    // exclusivity, we have to ensure it was added as such.
-    if (areMutuallyExclusive === false) {
-      return result === false;
-    }
-    return true;
-  }
-
-  add(a: string, b: string, areMutuallyExclusive: boolean) {
-    _pairSetAdd(this._data, a, b, areMutuallyExclusive);
-    _pairSetAdd(this._data, b, a, areMutuallyExclusive);
-  }
-}
-
-function _pairSetAdd(data, a, b, areMutuallyExclusive) {
-  let map = data[a];
-  if (!map) {
-    map = Object.create(null);
-    data[a] = map;
-  }
-  map[b] = areMutuallyExclusive;
-}
diff --git a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs b/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs
deleted file mode 100644
index 02cfdde..0000000
--- a/node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs
+++ /dev/null
@@ -1,572 +0,0 @@
-import find from "../../polyfills/find.mjs";
-import objectEntries from "../../polyfills/objectEntries.mjs";
-import inspect from "../../jsutils/inspect.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { print } from "../../language/printer.mjs";
-import { getNamedType, isNonNullType, isLeafType, isObjectType, isListType, isInterfaceType } from "../../type/definition.mjs";
-import { typeFromAST } from "../../utilities/typeFromAST.mjs";
-
-function reasonMessage(reason) {
-  if (Array.isArray(reason)) {
-    return reason.map(function (_ref) {
-      var responseName = _ref[0],
-          subReason = _ref[1];
-      return "subfields \"".concat(responseName, "\" conflict because ") + reasonMessage(subReason);
-    }).join(' and ');
-  }
-
-  return reason;
-}
-/**
- * Overlapping fields can be merged
- *
- * A selection set is only valid if all fields (including spreading any
- * fragments) either correspond to distinct response names or can be merged
- * without ambiguity.
- */
-
-
-export function OverlappingFieldsCanBeMergedRule(context) {
-  // A memoization for when two fragments are compared "between" each other for
-  // conflicts. Two fragments may be compared many times, so memoizing this can
-  // dramatically improve the performance of this validator.
-  var comparedFragmentPairs = new PairSet(); // A cache for the "field map" and list of fragment names found in any given
-  // selection set. Selection sets may be asked for this information multiple
-  // times, so this improves the performance of this validator.
-
-  var cachedFieldsAndFragmentNames = new Map();
-  return {
-    SelectionSet: function SelectionSet(selectionSet) {
-      var conflicts = findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, context.getParentType(), selectionSet);
-
-      for (var _i2 = 0; _i2 < conflicts.length; _i2++) {
-        var _ref3 = conflicts[_i2];
-        var _ref2$ = _ref3[0];
-        var responseName = _ref2$[0];
-        var reason = _ref2$[1];
-        var fields1 = _ref3[1];
-        var fields2 = _ref3[2];
-        var reasonMsg = reasonMessage(reason);
-        context.reportError(new GraphQLError("Fields \"".concat(responseName, "\" conflict because ").concat(reasonMsg, ". Use different aliases on the fields to fetch both if this was intentional."), fields1.concat(fields2)));
-      }
-    }
-  };
-}
-
-/**
- * Algorithm:
- *
- * Conflicts occur when two fields exist in a query which will produce the same
- * response name, but represent differing values, thus creating a conflict.
- * The algorithm below finds all conflicts via making a series of comparisons
- * between fields. In order to compare as few fields as possible, this makes
- * a series of comparisons "within" sets of fields and "between" sets of fields.
- *
- * Given any selection set, a collection produces both a set of fields by
- * also including all inline fragments, as well as a list of fragments
- * referenced by fragment spreads.
- *
- * A) Each selection set represented in the document first compares "within" its
- * collected set of fields, finding any conflicts between every pair of
- * overlapping fields.
- * Note: This is the *only time* that a the fields "within" a set are compared
- * to each other. After this only fields "between" sets are compared.
- *
- * B) Also, if any fragment is referenced in a selection set, then a
- * comparison is made "between" the original set of fields and the
- * referenced fragment.
- *
- * C) Also, if multiple fragments are referenced, then comparisons
- * are made "between" each referenced fragment.
- *
- * D) When comparing "between" a set of fields and a referenced fragment, first
- * a comparison is made between each field in the original set of fields and
- * each field in the the referenced set of fields.
- *
- * E) Also, if any fragment is referenced in the referenced selection set,
- * then a comparison is made "between" the original set of fields and the
- * referenced fragment (recursively referring to step D).
- *
- * F) When comparing "between" two fragments, first a comparison is made between
- * each field in the first referenced set of fields and each field in the the
- * second referenced set of fields.
- *
- * G) Also, any fragments referenced by the first must be compared to the
- * second, and any fragments referenced by the second must be compared to the
- * first (recursively referring to step F).
- *
- * H) When comparing two fields, if both have selection sets, then a comparison
- * is made "between" both selection sets, first comparing the set of fields in
- * the first selection set with the set of fields in the second.
- *
- * I) Also, if any fragment is referenced in either selection set, then a
- * comparison is made "between" the other set of fields and the
- * referenced fragment.
- *
- * J) Also, if two fragments are referenced in both selection sets, then a
- * comparison is made "between" the two fragments.
- *
- */
-// Find all conflicts found "within" a selection set, including those found
-// via spreading in fragments. Called when visiting each SelectionSet in the
-// GraphQL Document.
-function findConflictsWithinSelectionSet(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentType, selectionSet) {
-  var conflicts = [];
-
-  var _getFieldsAndFragment = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet),
-      fieldMap = _getFieldsAndFragment[0],
-      fragmentNames = _getFieldsAndFragment[1]; // (A) Find find all conflicts "within" the fields of this selection set.
-  // Note: this is the *only place* `collectConflictsWithin` is called.
-
-
-  collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap);
-
-  if (fragmentNames.length !== 0) {
-    // (B) Then collect conflicts between these fields and those represented by
-    // each spread fragment name found.
-    for (var i = 0; i < fragmentNames.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fieldMap, fragmentNames[i]); // (C) Then compare this fragment with all other fragments found in this
-      // selection set to collect conflicts between fragments spread together.
-      // This compares each item in the list of fragment names to every other
-      // item in that same list (except for itself).
-
-      for (var j = i + 1; j < fragmentNames.length; j++) {
-        collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, fragmentNames[i], fragmentNames[j]);
-      }
-    }
-  }
-
-  return conflicts;
-} // Collect all conflicts found between a set of fields and a fragment reference
-// including via spreading in any nested fragments.
-
-
-function collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentName) {
-  var fragment = context.getFragment(fragmentName);
-
-  if (!fragment) {
-    return;
-  }
-
-  var _getReferencedFieldsA = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment),
-      fieldMap2 = _getReferencedFieldsA[0],
-      fragmentNames2 = _getReferencedFieldsA[1]; // Do not compare a fragment's fieldMap to itself.
-
-
-  if (fieldMap === fieldMap2) {
-    return;
-  } // (D) First collect any conflicts between the provided collection of fields
-  // and the collection of fields represented by the given fragment.
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fieldMap2); // (E) Then collect any conflicts between the provided collection of fields
-  // and any fragment names found in the given fragment.
-
-  for (var i = 0; i < fragmentNames2.length; i++) {
-    collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap, fragmentNames2[i]);
-  }
-} // Collect all conflicts found between two fragments, including via spreading in
-// any nested fragments.
-
-
-function collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentName2) {
-  // No need to compare a fragment to itself.
-  if (fragmentName1 === fragmentName2) {
-    return;
-  } // Memoize so two fragments are not compared for conflicts more than once.
-
-
-  if (comparedFragmentPairs.has(fragmentName1, fragmentName2, areMutuallyExclusive)) {
-    return;
-  }
-
-  comparedFragmentPairs.add(fragmentName1, fragmentName2, areMutuallyExclusive);
-  var fragment1 = context.getFragment(fragmentName1);
-  var fragment2 = context.getFragment(fragmentName2);
-
-  if (!fragment1 || !fragment2) {
-    return;
-  }
-
-  var _getReferencedFieldsA2 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment1),
-      fieldMap1 = _getReferencedFieldsA2[0],
-      fragmentNames1 = _getReferencedFieldsA2[1];
-
-  var _getReferencedFieldsA3 = getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment2),
-      fieldMap2 = _getReferencedFieldsA3[0],
-      fragmentNames2 = _getReferencedFieldsA3[1]; // (F) First, collect all conflicts between these two collections of fields
-  // (not including any nested fragments).
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (G) Then collect conflicts between the first fragment and any nested
-  // fragments spread in the second fragment.
-
-  for (var j = 0; j < fragmentNames2.length; j++) {
-    collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentName1, fragmentNames2[j]);
-  } // (G) Then collect conflicts between the second fragment and any nested
-  // fragments spread in the first fragment.
-
-
-  for (var i = 0; i < fragmentNames1.length; i++) {
-    collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[i], fragmentName2);
-  }
-} // Find all conflicts found between two selection sets, including those found
-// via spreading in fragments. Called when determining if conflicts exist
-// between the sub-fields of two overlapping fields.
-
-
-function findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, parentType1, selectionSet1, parentType2, selectionSet2) {
-  var conflicts = [];
-
-  var _getFieldsAndFragment2 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType1, selectionSet1),
-      fieldMap1 = _getFieldsAndFragment2[0],
-      fragmentNames1 = _getFieldsAndFragment2[1];
-
-  var _getFieldsAndFragment3 = getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType2, selectionSet2),
-      fieldMap2 = _getFieldsAndFragment3[0],
-      fragmentNames2 = _getFieldsAndFragment3[1]; // (H) First, collect all conflicts between these two collections of field.
-
-
-  collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fieldMap2); // (I) Then collect conflicts between the first collection of fields and
-  // those referenced by each fragment name associated with the second.
-
-  if (fragmentNames2.length !== 0) {
-    for (var j = 0; j < fragmentNames2.length; j++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap1, fragmentNames2[j]);
-    }
-  } // (I) Then collect conflicts between the second collection of fields and
-  // those referenced by each fragment name associated with the first.
-
-
-  if (fragmentNames1.length !== 0) {
-    for (var i = 0; i < fragmentNames1.length; i++) {
-      collectConflictsBetweenFieldsAndFragment(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fieldMap2, fragmentNames1[i]);
-    }
-  } // (J) Also collect conflicts between any fragment names by the first and
-  // fragment names by the second. This compares each item in the first set of
-  // names to each item in the second set of names.
-
-
-  for (var _i3 = 0; _i3 < fragmentNames1.length; _i3++) {
-    for (var _j = 0; _j < fragmentNames2.length; _j++) {
-      collectConflictsBetweenFragments(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, fragmentNames1[_i3], fragmentNames2[_j]);
-    }
-  }
-
-  return conflicts;
-} // Collect all Conflicts "within" one collection of fields.
-
-
-function collectConflictsWithin(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, fieldMap) {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For every response name, if there are multiple fields, they
-  // must be compared to find a potential conflict.
-  for (var _i5 = 0, _objectEntries2 = objectEntries(fieldMap); _i5 < _objectEntries2.length; _i5++) {
-    var _ref5 = _objectEntries2[_i5];
-    var responseName = _ref5[0];
-    var fields = _ref5[1];
-
-    // This compares every field in the list to every other field in this list
-    // (except to itself). If the list only has one item, nothing needs to
-    // be compared.
-    if (fields.length > 1) {
-      for (var i = 0; i < fields.length; i++) {
-        for (var j = i + 1; j < fields.length; j++) {
-          var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, false, // within one collection is never mutually exclusive
-          responseName, fields[i], fields[j]);
-
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-} // Collect all Conflicts between two collections of fields. This is similar to,
-// but different from the `collectConflictsWithin` function above. This check
-// assumes that `collectConflictsWithin` has already been called on each
-// provided collection of fields. This is true because this validator traverses
-// each individual selection set.
-
-
-function collectConflictsBetween(context, conflicts, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, fieldMap1, fieldMap2) {
-  // A field map is a keyed collection, where each key represents a response
-  // name and the value at that key is a list of all fields which provide that
-  // response name. For any response name which appears in both provided field
-  // maps, each field from the first field map must be compared to every field
-  // in the second field map to find potential conflicts.
-  for (var _i7 = 0, _Object$keys2 = Object.keys(fieldMap1); _i7 < _Object$keys2.length; _i7++) {
-    var responseName = _Object$keys2[_i7];
-    var fields2 = fieldMap2[responseName];
-
-    if (fields2) {
-      var fields1 = fieldMap1[responseName];
-
-      for (var i = 0; i < fields1.length; i++) {
-        for (var j = 0; j < fields2.length; j++) {
-          var conflict = findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, fields1[i], fields2[j]);
-
-          if (conflict) {
-            conflicts.push(conflict);
-          }
-        }
-      }
-    }
-  }
-} // Determines if there is a conflict between two particular fields, including
-// comparing their sub-fields.
-
-
-function findConflict(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, parentFieldsAreMutuallyExclusive, responseName, field1, field2) {
-  var parentType1 = field1[0],
-      node1 = field1[1],
-      def1 = field1[2];
-  var parentType2 = field2[0],
-      node2 = field2[1],
-      def2 = field2[2]; // If it is known that two fields could not possibly apply at the same
-  // time, due to the parent types, then it is safe to permit them to diverge
-  // in aliased field or arguments used as they will not present any ambiguity
-  // by differing.
-  // It is known that two parent types could never overlap if they are
-  // different Object types. Interface or Union types might overlap - if not
-  // in the current state of the schema, then perhaps in some future version,
-  // thus may not safely diverge.
-
-  var areMutuallyExclusive = parentFieldsAreMutuallyExclusive || parentType1 !== parentType2 && isObjectType(parentType1) && isObjectType(parentType2);
-
-  if (!areMutuallyExclusive) {
-    var _node1$arguments, _node2$arguments;
-
-    // Two aliases must refer to the same field.
-    var name1 = node1.name.value;
-    var name2 = node2.name.value;
-
-    if (name1 !== name2) {
-      return [[responseName, "\"".concat(name1, "\" and \"").concat(name2, "\" are different fields")], [node1], [node2]];
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var args1 = (_node1$arguments = node1.arguments) !== null && _node1$arguments !== void 0 ? _node1$arguments : [];
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-    var args2 = (_node2$arguments = node2.arguments) !== null && _node2$arguments !== void 0 ? _node2$arguments : []; // Two field calls must have the same arguments.
-
-    if (!sameArguments(args1, args2)) {
-      return [[responseName, 'they have differing arguments'], [node1], [node2]];
-    }
-  } // The return type for each field.
-
-
-  var type1 = def1 === null || def1 === void 0 ? void 0 : def1.type;
-  var type2 = def2 === null || def2 === void 0 ? void 0 : def2.type;
-
-  if (type1 && type2 && doTypesConflict(type1, type2)) {
-    return [[responseName, "they return conflicting types \"".concat(inspect(type1), "\" and \"").concat(inspect(type2), "\"")], [node1], [node2]];
-  } // Collect and compare sub-fields. Use the same "visited fragment names" list
-  // for both collections so fields in a fragment reference are never
-  // compared to themselves.
-
-
-  var selectionSet1 = node1.selectionSet;
-  var selectionSet2 = node2.selectionSet;
-
-  if (selectionSet1 && selectionSet2) {
-    var conflicts = findConflictsBetweenSubSelectionSets(context, cachedFieldsAndFragmentNames, comparedFragmentPairs, areMutuallyExclusive, getNamedType(type1), selectionSet1, getNamedType(type2), selectionSet2);
-    return subfieldConflicts(conflicts, responseName, node1, node2);
-  }
-}
-
-function sameArguments(arguments1, arguments2) {
-  if (arguments1.length !== arguments2.length) {
-    return false;
-  }
-
-  return arguments1.every(function (argument1) {
-    var argument2 = find(arguments2, function (argument) {
-      return argument.name.value === argument1.name.value;
-    });
-
-    if (!argument2) {
-      return false;
-    }
-
-    return sameValue(argument1.value, argument2.value);
-  });
-}
-
-function sameValue(value1, value2) {
-  return print(value1) === print(value2);
-} // Two types conflict if both types could not apply to a value simultaneously.
-// Composite types are ignored as their individual field types will be compared
-// later recursively. However List and Non-Null types must match.
-
-
-function doTypesConflict(type1, type2) {
-  if (isListType(type1)) {
-    return isListType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;
-  }
-
-  if (isListType(type2)) {
-    return true;
-  }
-
-  if (isNonNullType(type1)) {
-    return isNonNullType(type2) ? doTypesConflict(type1.ofType, type2.ofType) : true;
-  }
-
-  if (isNonNullType(type2)) {
-    return true;
-  }
-
-  if (isLeafType(type1) || isLeafType(type2)) {
-    return type1 !== type2;
-  }
-
-  return false;
-} // Given a selection set, return the collection of fields (a mapping of response
-// name to field nodes and definitions) as well as a list of fragment names
-// referenced via fragment spreads.
-
-
-function getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, parentType, selectionSet) {
-  var cached = cachedFieldsAndFragmentNames.get(selectionSet);
-
-  if (!cached) {
-    var nodeAndDefs = Object.create(null);
-    var fragmentNames = Object.create(null);
-
-    _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames);
-
-    cached = [nodeAndDefs, Object.keys(fragmentNames)];
-    cachedFieldsAndFragmentNames.set(selectionSet, cached);
-  }
-
-  return cached;
-} // Given a reference to a fragment, return the represented collection of fields
-// as well as a list of nested fragment names referenced via fragment spreads.
-
-
-function getReferencedFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragment) {
-  // Short-circuit building a type from the node if possible.
-  var cached = cachedFieldsAndFragmentNames.get(fragment.selectionSet);
-
-  if (cached) {
-    return cached;
-  }
-
-  var fragmentType = typeFromAST(context.getSchema(), fragment.typeCondition);
-  return getFieldsAndFragmentNames(context, cachedFieldsAndFragmentNames, fragmentType, fragment.selectionSet);
-}
-
-function _collectFieldsAndFragmentNames(context, parentType, selectionSet, nodeAndDefs, fragmentNames) {
-  for (var _i9 = 0, _selectionSet$selecti2 = selectionSet.selections; _i9 < _selectionSet$selecti2.length; _i9++) {
-    var selection = _selectionSet$selecti2[_i9];
-
-    switch (selection.kind) {
-      case Kind.FIELD:
-        {
-          var fieldName = selection.name.value;
-          var fieldDef = void 0;
-
-          if (isObjectType(parentType) || isInterfaceType(parentType)) {
-            fieldDef = parentType.getFields()[fieldName];
-          }
-
-          var responseName = selection.alias ? selection.alias.value : fieldName;
-
-          if (!nodeAndDefs[responseName]) {
-            nodeAndDefs[responseName] = [];
-          }
-
-          nodeAndDefs[responseName].push([parentType, selection, fieldDef]);
-          break;
-        }
-
-      case Kind.FRAGMENT_SPREAD:
-        fragmentNames[selection.name.value] = true;
-        break;
-
-      case Kind.INLINE_FRAGMENT:
-        {
-          var typeCondition = selection.typeCondition;
-          var inlineFragmentType = typeCondition ? typeFromAST(context.getSchema(), typeCondition) : parentType;
-
-          _collectFieldsAndFragmentNames(context, inlineFragmentType, selection.selectionSet, nodeAndDefs, fragmentNames);
-
-          break;
-        }
-    }
-  }
-} // Given a series of Conflicts which occurred between two sub-fields, generate
-// a single Conflict.
-
-
-function subfieldConflicts(conflicts, responseName, node1, node2) {
-  if (conflicts.length > 0) {
-    return [[responseName, conflicts.map(function (_ref6) {
-      var reason = _ref6[0];
-      return reason;
-    })], conflicts.reduce(function (allFields, _ref7) {
-      var fields1 = _ref7[1];
-      return allFields.concat(fields1);
-    }, [node1]), conflicts.reduce(function (allFields, _ref8) {
-      var fields2 = _ref8[2];
-      return allFields.concat(fields2);
-    }, [node2])];
-  }
-}
-/**
- * A way to keep track of pairs of things when the ordering of the pair does
- * not matter. We do this by maintaining a sort of double adjacency sets.
- */
-
-
-var PairSet =
-/*#__PURE__*/
-function () {
-  function PairSet() {
-    this._data = Object.create(null);
-  }
-
-  var _proto = PairSet.prototype;
-
-  _proto.has = function has(a, b, areMutuallyExclusive) {
-    var first = this._data[a];
-    var result = first && first[b];
-
-    if (result === undefined) {
-      return false;
-    } // areMutuallyExclusive being false is a superset of being true,
-    // hence if we want to know if this PairSet "has" these two with no
-    // exclusivity, we have to ensure it was added as such.
-
-
-    if (areMutuallyExclusive === false) {
-      return result === false;
-    }
-
-    return true;
-  };
-
-  _proto.add = function add(a, b, areMutuallyExclusive) {
-    _pairSetAdd(this._data, a, b, areMutuallyExclusive);
-
-    _pairSetAdd(this._data, b, a, areMutuallyExclusive);
-  };
-
-  return PairSet;
-}();
-
-function _pairSetAdd(data, a, b, areMutuallyExclusive) {
-  var map = data[a];
-
-  if (!map) {
-    map = Object.create(null);
-    data[a] = map;
-  }
-
-  map[b] = areMutuallyExclusive;
-}
diff --git a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.d.ts b/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.d.ts
deleted file mode 100644
index 36f551d..0000000
--- a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Possible fragment spread
- *
- * A fragment spread is only valid if the type condition could ever possibly
- * be true: if there is a non-empty intersection of the possible parent types,
- * and possible types which pass the type condition.
- */
-export function PossibleFragmentSpreadsRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js b/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js
deleted file mode 100644
index 3be930f..0000000
--- a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PossibleFragmentSpreadsRule = PossibleFragmentSpreadsRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _definition = require("../../type/definition");
-
-var _typeFromAST = require("../../utilities/typeFromAST");
-
-var _typeComparators = require("../../utilities/typeComparators");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Possible fragment spread
- *
- * A fragment spread is only valid if the type condition could ever possibly
- * be true: if there is a non-empty intersection of the possible parent types,
- * and possible types which pass the type condition.
- */
-function PossibleFragmentSpreadsRule(context) {
-  return {
-    InlineFragment: function InlineFragment(node) {
-      var fragType = context.getType();
-      var parentType = context.getParentType();
-
-      if ((0, _definition.isCompositeType)(fragType) && (0, _definition.isCompositeType)(parentType) && !(0, _typeComparators.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
-        var parentTypeStr = (0, _inspect.default)(parentType);
-        var fragTypeStr = (0, _inspect.default)(fragType);
-        context.reportError(new _GraphQLError.GraphQLError("Fragment cannot be spread here as objects of type \"".concat(parentTypeStr, "\" can never be of type \"").concat(fragTypeStr, "\"."), node));
-      }
-    },
-    FragmentSpread: function FragmentSpread(node) {
-      var fragName = node.name.value;
-      var fragType = getFragmentType(context, fragName);
-      var parentType = context.getParentType();
-
-      if (fragType && parentType && !(0, _typeComparators.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
-        var parentTypeStr = (0, _inspect.default)(parentType);
-        var fragTypeStr = (0, _inspect.default)(fragType);
-        context.reportError(new _GraphQLError.GraphQLError("Fragment \"".concat(fragName, "\" cannot be spread here as objects of type \"").concat(parentTypeStr, "\" can never be of type \"").concat(fragTypeStr, "\"."), node));
-      }
-    }
-  };
-}
-
-function getFragmentType(context, name) {
-  var frag = context.getFragment(name);
-
-  if (frag) {
-    var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), frag.typeCondition);
-
-    if ((0, _definition.isCompositeType)(type)) {
-      return type;
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js.flow b/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js.flow
deleted file mode 100644
index e374d59..0000000
--- a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.js.flow
+++ /dev/null
@@ -1,75 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTVisitor } from '../../language/visitor';
-
-import { isCompositeType } from '../../type/definition';
-
-import { typeFromAST } from '../../utilities/typeFromAST';
-import { doTypesOverlap } from '../../utilities/typeComparators';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Possible fragment spread
- *
- * A fragment spread is only valid if the type condition could ever possibly
- * be true: if there is a non-empty intersection of the possible parent types,
- * and possible types which pass the type condition.
- */
-export function PossibleFragmentSpreadsRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    InlineFragment(node) {
-      const fragType = context.getType();
-      const parentType = context.getParentType();
-      if (
-        isCompositeType(fragType) &&
-        isCompositeType(parentType) &&
-        !doTypesOverlap(context.getSchema(), fragType, parentType)
-      ) {
-        const parentTypeStr = inspect(parentType);
-        const fragTypeStr = inspect(fragType);
-        context.reportError(
-          new GraphQLError(
-            `Fragment cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`,
-            node,
-          ),
-        );
-      }
-    },
-    FragmentSpread(node) {
-      const fragName = node.name.value;
-      const fragType = getFragmentType(context, fragName);
-      const parentType = context.getParentType();
-      if (
-        fragType &&
-        parentType &&
-        !doTypesOverlap(context.getSchema(), fragType, parentType)
-      ) {
-        const parentTypeStr = inspect(parentType);
-        const fragTypeStr = inspect(fragType);
-        context.reportError(
-          new GraphQLError(
-            `Fragment "${fragName}" cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`,
-            node,
-          ),
-        );
-      }
-    },
-  };
-}
-
-function getFragmentType(context, name) {
-  const frag = context.getFragment(name);
-  if (frag) {
-    const type = typeFromAST(context.getSchema(), frag.typeCondition);
-    if (isCompositeType(type)) {
-      return type;
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs b/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs
deleted file mode 100644
index da45925..0000000
--- a/node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs
+++ /dev/null
@@ -1,50 +0,0 @@
-import inspect from "../../jsutils/inspect.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { isCompositeType } from "../../type/definition.mjs";
-import { typeFromAST } from "../../utilities/typeFromAST.mjs";
-import { doTypesOverlap } from "../../utilities/typeComparators.mjs";
-
-/**
- * Possible fragment spread
- *
- * A fragment spread is only valid if the type condition could ever possibly
- * be true: if there is a non-empty intersection of the possible parent types,
- * and possible types which pass the type condition.
- */
-export function PossibleFragmentSpreadsRule(context) {
-  return {
-    InlineFragment: function InlineFragment(node) {
-      var fragType = context.getType();
-      var parentType = context.getParentType();
-
-      if (isCompositeType(fragType) && isCompositeType(parentType) && !doTypesOverlap(context.getSchema(), fragType, parentType)) {
-        var parentTypeStr = inspect(parentType);
-        var fragTypeStr = inspect(fragType);
-        context.reportError(new GraphQLError("Fragment cannot be spread here as objects of type \"".concat(parentTypeStr, "\" can never be of type \"").concat(fragTypeStr, "\"."), node));
-      }
-    },
-    FragmentSpread: function FragmentSpread(node) {
-      var fragName = node.name.value;
-      var fragType = getFragmentType(context, fragName);
-      var parentType = context.getParentType();
-
-      if (fragType && parentType && !doTypesOverlap(context.getSchema(), fragType, parentType)) {
-        var parentTypeStr = inspect(parentType);
-        var fragTypeStr = inspect(fragType);
-        context.reportError(new GraphQLError("Fragment \"".concat(fragName, "\" cannot be spread here as objects of type \"").concat(parentTypeStr, "\" can never be of type \"").concat(fragTypeStr, "\"."), node));
-      }
-    }
-  };
-}
-
-function getFragmentType(context, name) {
-  var frag = context.getFragment(name);
-
-  if (frag) {
-    var type = typeFromAST(context.getSchema(), frag.typeCondition);
-
-    if (isCompositeType(type)) {
-      return type;
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensions.d.ts b/node_modules/graphql/validation/rules/PossibleTypeExtensions.d.ts
deleted file mode 100644
index 7573375..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensions.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { PossibleTypeExtensionsRule } from 'graphql'
- * or
- *   import { PossibleTypeExtensionsRule } from 'graphql/validation'
- */
-export { PossibleTypeExtensionsRule as PossibleTypeExtensions } from './PossibleTypeExtensionsRule';
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensions.js b/node_modules/graphql/validation/rules/PossibleTypeExtensions.js
deleted file mode 100644
index 17257ac..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensions.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "PossibleTypeExtensions", {
-  enumerable: true,
-  get: function get() {
-    return _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule;
-  }
-});
-
-var _PossibleTypeExtensionsRule = require("./PossibleTypeExtensionsRule");
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensions.js.flow b/node_modules/graphql/validation/rules/PossibleTypeExtensions.js.flow
deleted file mode 100644
index 0e80b89..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensions.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { PossibleTypeExtensionsRule } from 'graphql'
- * or
- *   import { PossibleTypeExtensionsRule } from 'graphql/validation'
- */
-export { PossibleTypeExtensionsRule as PossibleTypeExtensions } from './PossibleTypeExtensionsRule';
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs b/node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs
deleted file mode 100644
index 99796c8..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensions.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { PossibleTypeExtensionsRule } from 'graphql'
- * or
- *   import { PossibleTypeExtensionsRule } from 'graphql/validation'
- */
-export { PossibleTypeExtensionsRule as PossibleTypeExtensions } from "./PossibleTypeExtensionsRule.mjs";
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.d.ts b/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.d.ts
deleted file mode 100644
index 8337dc5..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Possible type extension
- *
- * A type extension is only valid if the type is defined and has the same kind.
- */
-export function PossibleTypeExtensionsRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js b/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js
deleted file mode 100644
index 1c375d1..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js
+++ /dev/null
@@ -1,143 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.PossibleTypeExtensionsRule = PossibleTypeExtensionsRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _invariant = _interopRequireDefault(require("../../jsutils/invariant"));
-
-var _didYouMean = _interopRequireDefault(require("../../jsutils/didYouMean"));
-
-var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _predicates = require("../../language/predicates");
-
-var _definition = require("../../type/definition");
-
-var _defKindToExtKind;
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Possible type extension
- *
- * A type extension is only valid if the type is defined and has the same kind.
- */
-function PossibleTypeExtensionsRule(context) {
-  var schema = context.getSchema();
-  var definedTypes = Object.create(null);
-
-  for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {
-    var def = _context$getDocument$2[_i2];
-
-    if ((0, _predicates.isTypeDefinitionNode)(def)) {
-      definedTypes[def.name.value] = def;
-    }
-  }
-
-  return {
-    ScalarTypeExtension: checkExtension,
-    ObjectTypeExtension: checkExtension,
-    InterfaceTypeExtension: checkExtension,
-    UnionTypeExtension: checkExtension,
-    EnumTypeExtension: checkExtension,
-    InputObjectTypeExtension: checkExtension
-  };
-
-  function checkExtension(node) {
-    var typeName = node.name.value;
-    var defNode = definedTypes[typeName];
-    var existingType = schema === null || schema === void 0 ? void 0 : schema.getType(typeName);
-    var expectedKind;
-
-    if (defNode) {
-      expectedKind = defKindToExtKind[defNode.kind];
-    } else if (existingType) {
-      expectedKind = typeToExtKind(existingType);
-    }
-
-    if (expectedKind) {
-      if (expectedKind !== node.kind) {
-        var kindStr = extensionKindToTypeName(node.kind);
-        context.reportError(new _GraphQLError.GraphQLError("Cannot extend non-".concat(kindStr, " type \"").concat(typeName, "\"."), defNode ? [defNode, node] : node));
-      }
-    } else {
-      var allTypeNames = Object.keys(definedTypes);
-
-      if (schema) {
-        allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
-      }
-
-      var suggestedTypes = (0, _suggestionList.default)(typeName, allTypeNames);
-      context.reportError(new _GraphQLError.GraphQLError("Cannot extend type \"".concat(typeName, "\" because it is not defined.") + (0, _didYouMean.default)(suggestedTypes), node.name));
-    }
-  }
-}
-
-var defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, _kinds.Kind.SCALAR_TYPE_DEFINITION, _kinds.Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.OBJECT_TYPE_DEFINITION, _kinds.Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.INTERFACE_TYPE_DEFINITION, _kinds.Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.UNION_TYPE_DEFINITION, _kinds.Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.ENUM_TYPE_DEFINITION, _kinds.Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION, _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);
-
-function typeToExtKind(type) {
-  if ((0, _definition.isScalarType)(type)) {
-    return _kinds.Kind.SCALAR_TYPE_EXTENSION;
-  }
-
-  if ((0, _definition.isObjectType)(type)) {
-    return _kinds.Kind.OBJECT_TYPE_EXTENSION;
-  }
-
-  if ((0, _definition.isInterfaceType)(type)) {
-    return _kinds.Kind.INTERFACE_TYPE_EXTENSION;
-  }
-
-  if ((0, _definition.isUnionType)(type)) {
-    return _kinds.Kind.UNION_TYPE_EXTENSION;
-  }
-
-  if ((0, _definition.isEnumType)(type)) {
-    return _kinds.Kind.ENUM_TYPE_EXTENSION;
-  }
-
-  /* istanbul ignore else */
-  if ((0, _definition.isInputObjectType)(type)) {
-    return _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION;
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected type: ' + (0, _inspect.default)(type));
-}
-
-function extensionKindToTypeName(kind) {
-  switch (kind) {
-    case _kinds.Kind.SCALAR_TYPE_EXTENSION:
-      return 'scalar';
-
-    case _kinds.Kind.OBJECT_TYPE_EXTENSION:
-      return 'object';
-
-    case _kinds.Kind.INTERFACE_TYPE_EXTENSION:
-      return 'interface';
-
-    case _kinds.Kind.UNION_TYPE_EXTENSION:
-      return 'union';
-
-    case _kinds.Kind.ENUM_TYPE_EXTENSION:
-      return 'enum';
-
-    case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return 'input object';
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  (0, _invariant.default)(false, 'Unexpected kind: ' + (0, _inspect.default)(kind));
-}
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js.flow b/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js.flow
deleted file mode 100644
index 1d0db90..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.js.flow
+++ /dev/null
@@ -1,142 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-import invariant from '../../jsutils/invariant';
-import didYouMean from '../../jsutils/didYouMean';
-import suggestionList from '../../jsutils/suggestionList';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-import { isTypeDefinitionNode } from '../../language/predicates';
-
-import {
-  isScalarType,
-  isObjectType,
-  isInterfaceType,
-  isUnionType,
-  isEnumType,
-  isInputObjectType,
-} from '../../type/definition';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Possible type extension
- *
- * A type extension is only valid if the type is defined and has the same kind.
- */
-export function PossibleTypeExtensionsRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const schema = context.getSchema();
-  const definedTypes = Object.create(null);
-
-  for (const def of context.getDocument().definitions) {
-    if (isTypeDefinitionNode(def)) {
-      definedTypes[def.name.value] = def;
-    }
-  }
-
-  return {
-    ScalarTypeExtension: checkExtension,
-    ObjectTypeExtension: checkExtension,
-    InterfaceTypeExtension: checkExtension,
-    UnionTypeExtension: checkExtension,
-    EnumTypeExtension: checkExtension,
-    InputObjectTypeExtension: checkExtension,
-  };
-
-  function checkExtension(node) {
-    const typeName = node.name.value;
-    const defNode = definedTypes[typeName];
-    const existingType = schema?.getType(typeName);
-
-    let expectedKind;
-    if (defNode) {
-      expectedKind = defKindToExtKind[defNode.kind];
-    } else if (existingType) {
-      expectedKind = typeToExtKind(existingType);
-    }
-
-    if (expectedKind) {
-      if (expectedKind !== node.kind) {
-        const kindStr = extensionKindToTypeName(node.kind);
-        context.reportError(
-          new GraphQLError(
-            `Cannot extend non-${kindStr} type "${typeName}".`,
-            defNode ? [defNode, node] : node,
-          ),
-        );
-      }
-    } else {
-      let allTypeNames = Object.keys(definedTypes);
-      if (schema) {
-        allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
-      }
-
-      const suggestedTypes = suggestionList(typeName, allTypeNames);
-      context.reportError(
-        new GraphQLError(
-          `Cannot extend type "${typeName}" because it is not defined.` +
-            didYouMean(suggestedTypes),
-          node.name,
-        ),
-      );
-    }
-  }
-}
-
-const defKindToExtKind = {
-  [Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION,
-  [Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION,
-  [Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION,
-  [Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION,
-  [Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION,
-  [Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION,
-};
-
-function typeToExtKind(type) {
-  if (isScalarType(type)) {
-    return Kind.SCALAR_TYPE_EXTENSION;
-  }
-  if (isObjectType(type)) {
-    return Kind.OBJECT_TYPE_EXTENSION;
-  }
-  if (isInterfaceType(type)) {
-    return Kind.INTERFACE_TYPE_EXTENSION;
-  }
-  if (isUnionType(type)) {
-    return Kind.UNION_TYPE_EXTENSION;
-  }
-  if (isEnumType(type)) {
-    return Kind.ENUM_TYPE_EXTENSION;
-  }
-  if (isInputObjectType(type)) {
-    return Kind.INPUT_OBJECT_TYPE_EXTENSION;
-  }
-
-  // Not reachable. All possible types have been considered.
-  invariant(false, 'Unexpected type: ' + inspect((type: empty)));
-}
-
-function extensionKindToTypeName(kind) {
-  switch (kind) {
-    case Kind.SCALAR_TYPE_EXTENSION:
-      return 'scalar';
-    case Kind.OBJECT_TYPE_EXTENSION:
-      return 'object';
-    case Kind.INTERFACE_TYPE_EXTENSION:
-      return 'interface';
-    case Kind.UNION_TYPE_EXTENSION:
-      return 'union';
-    case Kind.ENUM_TYPE_EXTENSION:
-      return 'enum';
-    case Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return 'input object';
-  }
-
-  // Not reachable. All possible types have been considered.
-  invariant(false, 'Unexpected kind: ' + inspect(kind));
-}
diff --git a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs b/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs
deleted file mode 100644
index 2699594..0000000
--- a/node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs
+++ /dev/null
@@ -1,126 +0,0 @@
-var _defKindToExtKind;
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import inspect from "../../jsutils/inspect.mjs";
-import invariant from "../../jsutils/invariant.mjs";
-import didYouMean from "../../jsutils/didYouMean.mjs";
-import suggestionList from "../../jsutils/suggestionList.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { isTypeDefinitionNode } from "../../language/predicates.mjs";
-import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from "../../type/definition.mjs";
-
-/**
- * Possible type extension
- *
- * A type extension is only valid if the type is defined and has the same kind.
- */
-export function PossibleTypeExtensionsRule(context) {
-  var schema = context.getSchema();
-  var definedTypes = Object.create(null);
-
-  for (var _i2 = 0, _context$getDocument$2 = context.getDocument().definitions; _i2 < _context$getDocument$2.length; _i2++) {
-    var def = _context$getDocument$2[_i2];
-
-    if (isTypeDefinitionNode(def)) {
-      definedTypes[def.name.value] = def;
-    }
-  }
-
-  return {
-    ScalarTypeExtension: checkExtension,
-    ObjectTypeExtension: checkExtension,
-    InterfaceTypeExtension: checkExtension,
-    UnionTypeExtension: checkExtension,
-    EnumTypeExtension: checkExtension,
-    InputObjectTypeExtension: checkExtension
-  };
-
-  function checkExtension(node) {
-    var typeName = node.name.value;
-    var defNode = definedTypes[typeName];
-    var existingType = schema === null || schema === void 0 ? void 0 : schema.getType(typeName);
-    var expectedKind;
-
-    if (defNode) {
-      expectedKind = defKindToExtKind[defNode.kind];
-    } else if (existingType) {
-      expectedKind = typeToExtKind(existingType);
-    }
-
-    if (expectedKind) {
-      if (expectedKind !== node.kind) {
-        var kindStr = extensionKindToTypeName(node.kind);
-        context.reportError(new GraphQLError("Cannot extend non-".concat(kindStr, " type \"").concat(typeName, "\"."), defNode ? [defNode, node] : node));
-      }
-    } else {
-      var allTypeNames = Object.keys(definedTypes);
-
-      if (schema) {
-        allTypeNames = allTypeNames.concat(Object.keys(schema.getTypeMap()));
-      }
-
-      var suggestedTypes = suggestionList(typeName, allTypeNames);
-      context.reportError(new GraphQLError("Cannot extend type \"".concat(typeName, "\" because it is not defined.") + didYouMean(suggestedTypes), node.name));
-    }
-  }
-}
-var defKindToExtKind = (_defKindToExtKind = {}, _defineProperty(_defKindToExtKind, Kind.SCALAR_TYPE_DEFINITION, Kind.SCALAR_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INTERFACE_TYPE_DEFINITION, Kind.INTERFACE_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.ENUM_TYPE_DEFINITION, Kind.ENUM_TYPE_EXTENSION), _defineProperty(_defKindToExtKind, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_EXTENSION), _defKindToExtKind);
-
-function typeToExtKind(type) {
-  if (isScalarType(type)) {
-    return Kind.SCALAR_TYPE_EXTENSION;
-  }
-
-  if (isObjectType(type)) {
-    return Kind.OBJECT_TYPE_EXTENSION;
-  }
-
-  if (isInterfaceType(type)) {
-    return Kind.INTERFACE_TYPE_EXTENSION;
-  }
-
-  if (isUnionType(type)) {
-    return Kind.UNION_TYPE_EXTENSION;
-  }
-
-  if (isEnumType(type)) {
-    return Kind.ENUM_TYPE_EXTENSION;
-  }
-
-  /* istanbul ignore else */
-  if (isInputObjectType(type)) {
-    return Kind.INPUT_OBJECT_TYPE_EXTENSION;
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected type: ' + inspect(type));
-}
-
-function extensionKindToTypeName(kind) {
-  switch (kind) {
-    case Kind.SCALAR_TYPE_EXTENSION:
-      return 'scalar';
-
-    case Kind.OBJECT_TYPE_EXTENSION:
-      return 'object';
-
-    case Kind.INTERFACE_TYPE_EXTENSION:
-      return 'interface';
-
-    case Kind.UNION_TYPE_EXTENSION:
-      return 'union';
-
-    case Kind.ENUM_TYPE_EXTENSION:
-      return 'enum';
-
-    case Kind.INPUT_OBJECT_TYPE_EXTENSION:
-      return 'input object';
-  } // Not reachable. All possible types have been considered.
-
-
-  /* istanbul ignore next */
-  invariant(false, 'Unexpected kind: ' + inspect(kind));
-}
diff --git a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.d.ts b/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.d.ts
deleted file mode 100644
index 116069c..0000000
--- a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext, SDLValidationContext } from '../ValidationContext';
-
-/**
- * Provided required arguments
- *
- * A field or directive is only valid if all required (non-null without a
- * default value) field arguments have been provided.
- */
-export function ProvidedRequiredArgumentsRule(
-  context: ValidationContext,
-): ASTVisitor;
-
-/**
- * @internal
- */
-export function ProvidedRequiredArgumentsOnDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js b/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js
deleted file mode 100644
index 548e870..0000000
--- a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js
+++ /dev/null
@@ -1,137 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ProvidedRequiredArgumentsRule = ProvidedRequiredArgumentsRule;
-exports.ProvidedRequiredArgumentsOnDirectivesRule = ProvidedRequiredArgumentsOnDirectivesRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _keyMap = _interopRequireDefault(require("../../jsutils/keyMap"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _printer = require("../../language/printer");
-
-var _directives = require("../../type/directives");
-
-var _definition = require("../../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-/**
- * Provided required arguments
- *
- * A field or directive is only valid if all required (non-null without a
- * default value) field arguments have been provided.
- */
-function ProvidedRequiredArgumentsRule(context) {
-  return _objectSpread({}, ProvidedRequiredArgumentsOnDirectivesRule(context), {
-    Field: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave: function leave(fieldNode) {
-        var _fieldNode$arguments;
-
-        var fieldDef = context.getFieldDef();
-
-        if (!fieldDef) {
-          return false;
-        }
-        /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-        var argNodes = (_fieldNode$arguments = fieldNode.arguments) !== null && _fieldNode$arguments !== void 0 ? _fieldNode$arguments : [];
-        var argNodeMap = (0, _keyMap.default)(argNodes, function (arg) {
-          return arg.name.value;
-        });
-
-        for (var _i2 = 0, _fieldDef$args2 = fieldDef.args; _i2 < _fieldDef$args2.length; _i2++) {
-          var argDef = _fieldDef$args2[_i2];
-          var argNode = argNodeMap[argDef.name];
-
-          if (!argNode && (0, _definition.isRequiredArgument)(argDef)) {
-            var argTypeStr = (0, _inspect.default)(argDef.type);
-            context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(fieldDef.name, "\" argument \"").concat(argDef.name, "\" of type \"").concat(argTypeStr, "\" is required, but it was not provided."), fieldNode));
-          }
-        }
-      }
-    }
-  });
-}
-/**
- * @internal
- */
-
-
-function ProvidedRequiredArgumentsOnDirectivesRule(context) {
-  var requiredArgsMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : _directives.specifiedDirectives;
-
-  for (var _i4 = 0; _i4 < definedDirectives.length; _i4++) {
-    var directive = definedDirectives[_i4];
-    requiredArgsMap[directive.name] = (0, _keyMap.default)(directive.args.filter(_definition.isRequiredArgument), function (arg) {
-      return arg.name;
-    });
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i6 = 0; _i6 < astDefinitions.length; _i6++) {
-    var def = astDefinitions[_i6];
-
-    if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
-      var _def$arguments;
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var argNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];
-      requiredArgsMap[def.name.value] = (0, _keyMap.default)(argNodes.filter(isRequiredArgumentNode), function (arg) {
-        return arg.name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave: function leave(directiveNode) {
-        var directiveName = directiveNode.name.value;
-        var requiredArgs = requiredArgsMap[directiveName];
-
-        if (requiredArgs) {
-          var _directiveNode$argume;
-
-          /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-          var _argNodes = (_directiveNode$argume = directiveNode.arguments) !== null && _directiveNode$argume !== void 0 ? _directiveNode$argume : [];
-
-          var argNodeMap = (0, _keyMap.default)(_argNodes, function (arg) {
-            return arg.name.value;
-          });
-
-          for (var _i8 = 0, _Object$keys2 = Object.keys(requiredArgs); _i8 < _Object$keys2.length; _i8++) {
-            var argName = _Object$keys2[_i8];
-
-            if (!argNodeMap[argName]) {
-              var argType = requiredArgs[argName].type;
-              var argTypeStr = (0, _definition.isType)(argType) ? (0, _inspect.default)(argType) : (0, _printer.print)(argType);
-              context.reportError(new _GraphQLError.GraphQLError("Directive \"@".concat(directiveName, "\" argument \"").concat(argName, "\" of type \"").concat(argTypeStr, "\" is required, but it was not provided."), directiveNode));
-            }
-          }
-        }
-      }
-    }
-  };
-}
-
-function isRequiredArgumentNode(arg) {
-  return arg.type.kind === _kinds.Kind.NON_NULL_TYPE && arg.defaultValue == null;
-}
diff --git a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js.flow b/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js.flow
deleted file mode 100644
index 8e08233..0000000
--- a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.js.flow
+++ /dev/null
@@ -1,124 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-import keyMap from '../../jsutils/keyMap';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { print } from '../../language/printer';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { specifiedDirectives } from '../../type/directives';
-import { isType, isRequiredArgument } from '../../type/definition';
-
-import {
-  type ValidationContext,
-  type SDLValidationContext,
-} from '../ValidationContext';
-
-/**
- * Provided required arguments
- *
- * A field or directive is only valid if all required (non-null without a
- * default value) field arguments have been provided.
- */
-export function ProvidedRequiredArgumentsRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    ...ProvidedRequiredArgumentsOnDirectivesRule(context),
-    Field: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave(fieldNode) {
-        const fieldDef = context.getFieldDef();
-        if (!fieldDef) {
-          return false;
-        }
-
-        /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-        const argNodes = fieldNode.arguments ?? [];
-        const argNodeMap = keyMap(argNodes, arg => arg.name.value);
-        for (const argDef of fieldDef.args) {
-          const argNode = argNodeMap[argDef.name];
-          if (!argNode && isRequiredArgument(argDef)) {
-            const argTypeStr = inspect(argDef.type);
-            context.reportError(
-              new GraphQLError(
-                `Field "${fieldDef.name}" argument "${argDef.name}" of type "${argTypeStr}" is required, but it was not provided.`,
-                fieldNode,
-              ),
-            );
-          }
-        }
-      },
-    },
-  };
-}
-
-/**
- * @internal
- */
-export function ProvidedRequiredArgumentsOnDirectivesRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor {
-  const requiredArgsMap = Object.create(null);
-
-  const schema = context.getSchema();
-  const definedDirectives = schema
-    ? schema.getDirectives()
-    : specifiedDirectives;
-  for (const directive of definedDirectives) {
-    requiredArgsMap[directive.name] = keyMap(
-      directive.args.filter(isRequiredArgument),
-      arg => arg.name,
-    );
-  }
-
-  const astDefinitions = context.getDocument().definitions;
-  for (const def of astDefinitions) {
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      const argNodes = def.arguments ?? [];
-
-      requiredArgsMap[def.name.value] = keyMap(
-        argNodes.filter(isRequiredArgumentNode),
-        arg => arg.name.value,
-      );
-    }
-  }
-
-  return {
-    Directive: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave(directiveNode) {
-        const directiveName = directiveNode.name.value;
-        const requiredArgs = requiredArgsMap[directiveName];
-        if (requiredArgs) {
-          /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-          const argNodes = directiveNode.arguments ?? [];
-          const argNodeMap = keyMap(argNodes, arg => arg.name.value);
-          for (const argName of Object.keys(requiredArgs)) {
-            if (!argNodeMap[argName]) {
-              const argType = requiredArgs[argName].type;
-              const argTypeStr = isType(argType)
-                ? inspect(argType)
-                : print(argType);
-
-              context.reportError(
-                new GraphQLError(
-                  `Directive "@${directiveName}" argument "${argName}" of type "${argTypeStr}" is required, but it was not provided.`,
-                  directiveNode,
-                ),
-              );
-            }
-          }
-        }
-      },
-    },
-  };
-}
-
-function isRequiredArgumentNode(arg) {
-  return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;
-}
diff --git a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs b/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs
deleted file mode 100644
index 3163a60..0000000
--- a/node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs
+++ /dev/null
@@ -1,120 +0,0 @@
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-import inspect from "../../jsutils/inspect.mjs";
-import keyMap from "../../jsutils/keyMap.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { print } from "../../language/printer.mjs";
-import { specifiedDirectives } from "../../type/directives.mjs";
-import { isType, isRequiredArgument } from "../../type/definition.mjs";
-
-/**
- * Provided required arguments
- *
- * A field or directive is only valid if all required (non-null without a
- * default value) field arguments have been provided.
- */
-export function ProvidedRequiredArgumentsRule(context) {
-  return _objectSpread({}, ProvidedRequiredArgumentsOnDirectivesRule(context), {
-    Field: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave: function leave(fieldNode) {
-        var _fieldNode$arguments;
-
-        var fieldDef = context.getFieldDef();
-
-        if (!fieldDef) {
-          return false;
-        }
-        /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-        var argNodes = (_fieldNode$arguments = fieldNode.arguments) !== null && _fieldNode$arguments !== void 0 ? _fieldNode$arguments : [];
-        var argNodeMap = keyMap(argNodes, function (arg) {
-          return arg.name.value;
-        });
-
-        for (var _i2 = 0, _fieldDef$args2 = fieldDef.args; _i2 < _fieldDef$args2.length; _i2++) {
-          var argDef = _fieldDef$args2[_i2];
-          var argNode = argNodeMap[argDef.name];
-
-          if (!argNode && isRequiredArgument(argDef)) {
-            var argTypeStr = inspect(argDef.type);
-            context.reportError(new GraphQLError("Field \"".concat(fieldDef.name, "\" argument \"").concat(argDef.name, "\" of type \"").concat(argTypeStr, "\" is required, but it was not provided."), fieldNode));
-          }
-        }
-      }
-    }
-  });
-}
-/**
- * @internal
- */
-
-export function ProvidedRequiredArgumentsOnDirectivesRule(context) {
-  var requiredArgsMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;
-
-  for (var _i4 = 0; _i4 < definedDirectives.length; _i4++) {
-    var directive = definedDirectives[_i4];
-    requiredArgsMap[directive.name] = keyMap(directive.args.filter(isRequiredArgument), function (arg) {
-      return arg.name;
-    });
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i6 = 0; _i6 < astDefinitions.length; _i6++) {
-    var def = astDefinitions[_i6];
-
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      var _def$arguments;
-
-      /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-      var argNodes = (_def$arguments = def.arguments) !== null && _def$arguments !== void 0 ? _def$arguments : [];
-      requiredArgsMap[def.name.value] = keyMap(argNodes.filter(isRequiredArgumentNode), function (arg) {
-        return arg.name.value;
-      });
-    }
-  }
-
-  return {
-    Directive: {
-      // Validate on leave to allow for deeper errors to appear first.
-      leave: function leave(directiveNode) {
-        var directiveName = directiveNode.name.value;
-        var requiredArgs = requiredArgsMap[directiveName];
-
-        if (requiredArgs) {
-          var _directiveNode$argume;
-
-          /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-          var _argNodes = (_directiveNode$argume = directiveNode.arguments) !== null && _directiveNode$argume !== void 0 ? _directiveNode$argume : [];
-
-          var argNodeMap = keyMap(_argNodes, function (arg) {
-            return arg.name.value;
-          });
-
-          for (var _i8 = 0, _Object$keys2 = Object.keys(requiredArgs); _i8 < _Object$keys2.length; _i8++) {
-            var argName = _Object$keys2[_i8];
-
-            if (!argNodeMap[argName]) {
-              var argType = requiredArgs[argName].type;
-              var argTypeStr = isType(argType) ? inspect(argType) : print(argType);
-              context.reportError(new GraphQLError("Directive \"@".concat(directiveName, "\" argument \"").concat(argName, "\" of type \"").concat(argTypeStr, "\" is required, but it was not provided."), directiveNode));
-            }
-          }
-        }
-      }
-    }
-  };
-}
-
-function isRequiredArgumentNode(arg) {
-  return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;
-}
diff --git a/node_modules/graphql/validation/rules/ScalarLeafsRule.d.ts b/node_modules/graphql/validation/rules/ScalarLeafsRule.d.ts
deleted file mode 100644
index ae956ef..0000000
--- a/node_modules/graphql/validation/rules/ScalarLeafsRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Scalar leafs
- *
- * A GraphQL document is valid only if all leaf fields (fields without
- * sub selections) are of scalar or enum types.
- */
-export function ScalarLeafsRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/ScalarLeafsRule.js b/node_modules/graphql/validation/rules/ScalarLeafsRule.js
deleted file mode 100644
index 08a51f0..0000000
--- a/node_modules/graphql/validation/rules/ScalarLeafsRule.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ScalarLeafsRule = ScalarLeafsRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _definition = require("../../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Scalar leafs
- *
- * A GraphQL document is valid only if all leaf fields (fields without
- * sub selections) are of scalar or enum types.
- */
-function ScalarLeafsRule(context) {
-  return {
-    Field: function Field(node) {
-      var type = context.getType();
-      var selectionSet = node.selectionSet;
-
-      if (type) {
-        if ((0, _definition.isLeafType)((0, _definition.getNamedType)(type))) {
-          if (selectionSet) {
-            var fieldName = node.name.value;
-            var typeStr = (0, _inspect.default)(type);
-            context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(fieldName, "\" must not have a selection since type \"").concat(typeStr, "\" has no subfields."), selectionSet));
-          }
-        } else if (!selectionSet) {
-          var _fieldName = node.name.value;
-
-          var _typeStr = (0, _inspect.default)(type);
-
-          context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(_fieldName, "\" of type \"").concat(_typeStr, "\" must have a selection of subfields. Did you mean \"").concat(_fieldName, " { ... }\"?"), node));
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow b/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow
deleted file mode 100644
index abc4355..0000000
--- a/node_modules/graphql/validation/rules/ScalarLeafsRule.js.flow
+++ /dev/null
@@ -1,50 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type FieldNode } from '../../language/ast';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { getNamedType, isLeafType } from '../../type/definition';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Scalar leafs
- *
- * A GraphQL document is valid only if all leaf fields (fields without
- * sub selections) are of scalar or enum types.
- */
-export function ScalarLeafsRule(context: ValidationContext): ASTVisitor {
-  return {
-    Field(node: FieldNode) {
-      const type = context.getType();
-      const selectionSet = node.selectionSet;
-      if (type) {
-        if (isLeafType(getNamedType(type))) {
-          if (selectionSet) {
-            const fieldName = node.name.value;
-            const typeStr = inspect(type);
-            context.reportError(
-              new GraphQLError(
-                `Field "${fieldName}" must not have a selection since type "${typeStr}" has no subfields.`,
-                selectionSet,
-              ),
-            );
-          }
-        } else if (!selectionSet) {
-          const fieldName = node.name.value;
-          const typeStr = inspect(type);
-          context.reportError(
-            new GraphQLError(
-              `Field "${fieldName}" of type "${typeStr}" must have a selection of subfields. Did you mean "${fieldName} { ... }"?`,
-              node,
-            ),
-          );
-        }
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/ScalarLeafsRule.mjs b/node_modules/graphql/validation/rules/ScalarLeafsRule.mjs
deleted file mode 100644
index 8a5111d..0000000
--- a/node_modules/graphql/validation/rules/ScalarLeafsRule.mjs
+++ /dev/null
@@ -1,34 +0,0 @@
-import inspect from "../../jsutils/inspect.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { getNamedType, isLeafType } from "../../type/definition.mjs";
-
-/**
- * Scalar leafs
- *
- * A GraphQL document is valid only if all leaf fields (fields without
- * sub selections) are of scalar or enum types.
- */
-export function ScalarLeafsRule(context) {
-  return {
-    Field: function Field(node) {
-      var type = context.getType();
-      var selectionSet = node.selectionSet;
-
-      if (type) {
-        if (isLeafType(getNamedType(type))) {
-          if (selectionSet) {
-            var fieldName = node.name.value;
-            var typeStr = inspect(type);
-            context.reportError(new GraphQLError("Field \"".concat(fieldName, "\" must not have a selection since type \"").concat(typeStr, "\" has no subfields."), selectionSet));
-          }
-        } else if (!selectionSet) {
-          var _fieldName = node.name.value;
-
-          var _typeStr = inspect(type);
-
-          context.reportError(new GraphQLError("Field \"".concat(_fieldName, "\" of type \"").concat(_typeStr, "\" must have a selection of subfields. Did you mean \"").concat(_fieldName, " { ... }\"?"), node));
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.d.ts b/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.d.ts
deleted file mode 100644
index d56c4fd..0000000
--- a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Subscriptions must only include one field.
- *
- * A GraphQL subscription is valid only if it contains a single root field.
- */
-export function SingleFieldSubscriptionsRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js b/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js
deleted file mode 100644
index 1ad9dc3..0000000
--- a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.SingleFieldSubscriptionsRule = SingleFieldSubscriptionsRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Subscriptions must only include one field.
- *
- * A GraphQL subscription is valid only if it contains a single root field.
- */
-function SingleFieldSubscriptionsRule(context) {
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      if (node.operation === 'subscription') {
-        if (node.selectionSet.selections.length !== 1) {
-          context.reportError(new _GraphQLError.GraphQLError(node.name ? "Subscription \"".concat(node.name.value, "\" must select only one top level field.") : 'Anonymous Subscription must select only one top level field.', node.selectionSet.selections.slice(1)));
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js.flow b/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js.flow
deleted file mode 100644
index 7773467..0000000
--- a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.js.flow
+++ /dev/null
@@ -1,34 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTVisitor } from '../../language/visitor';
-import { type OperationDefinitionNode } from '../../language/ast';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Subscriptions must only include one field.
- *
- * A GraphQL subscription is valid only if it contains a single root field.
- */
-export function SingleFieldSubscriptionsRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  return {
-    OperationDefinition(node: OperationDefinitionNode) {
-      if (node.operation === 'subscription') {
-        if (node.selectionSet.selections.length !== 1) {
-          context.reportError(
-            new GraphQLError(
-              node.name
-                ? `Subscription "${node.name.value}" must select only one top level field.`
-                : 'Anonymous Subscription must select only one top level field.',
-              node.selectionSet.selections.slice(1),
-            ),
-          );
-        }
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs b/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs
deleted file mode 100644
index 0dd5351..0000000
--- a/node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs
+++ /dev/null
@@ -1,18 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Subscriptions must only include one field.
- *
- * A GraphQL subscription is valid only if it contains a single root field.
- */
-export function SingleFieldSubscriptionsRule(context) {
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      if (node.operation === 'subscription') {
-        if (node.selectionSet.selections.length !== 1) {
-          context.reportError(new GraphQLError(node.name ? "Subscription \"".concat(node.name.value, "\" must select only one top level field.") : 'Anonymous Subscription must select only one top level field.', node.selectionSet.selections.slice(1)));
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.d.ts
deleted file mode 100644
index 1d0d4f4..0000000
--- a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique argument names
- *
- * A GraphQL field or directive is only valid if all supplied arguments are
- * uniquely named.
- */
-export function UniqueArgumentNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js b/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js
deleted file mode 100644
index 6bbdc60..0000000
--- a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueArgumentNamesRule = UniqueArgumentNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique argument names
- *
- * A GraphQL field or directive is only valid if all supplied arguments are
- * uniquely named.
- */
-function UniqueArgumentNamesRule(context) {
-  var knownArgNames = Object.create(null);
-  return {
-    Field: function Field() {
-      knownArgNames = Object.create(null);
-    },
-    Directive: function Directive() {
-      knownArgNames = Object.create(null);
-    },
-    Argument: function Argument(node) {
-      var argName = node.name.value;
-
-      if (knownArgNames[argName]) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one argument named \"".concat(argName, "\"."), [knownArgNames[argName], node.name]));
-      } else {
-        knownArgNames[argName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js.flow
deleted file mode 100644
index 2792070..0000000
--- a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.js.flow
+++ /dev/null
@@ -1,40 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique argument names
- *
- * A GraphQL field or directive is only valid if all supplied arguments are
- * uniquely named.
- */
-export function UniqueArgumentNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  let knownArgNames = Object.create(null);
-  return {
-    Field() {
-      knownArgNames = Object.create(null);
-    },
-    Directive() {
-      knownArgNames = Object.create(null);
-    },
-    Argument(node) {
-      const argName = node.name.value;
-      if (knownArgNames[argName]) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one argument named "${argName}".`,
-            [knownArgNames[argName], node.name],
-          ),
-        );
-      } else {
-        knownArgNames[argName] = node.name;
-      }
-      return false;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs
deleted file mode 100644
index 5359d08..0000000
--- a/node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs
+++ /dev/null
@@ -1,30 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique argument names
- *
- * A GraphQL field or directive is only valid if all supplied arguments are
- * uniquely named.
- */
-export function UniqueArgumentNamesRule(context) {
-  var knownArgNames = Object.create(null);
-  return {
-    Field: function Field() {
-      knownArgNames = Object.create(null);
-    },
-    Directive: function Directive() {
-      knownArgNames = Object.create(null);
-    },
-    Argument: function Argument(node) {
-      var argName = node.name.value;
-
-      if (knownArgNames[argName]) {
-        context.reportError(new GraphQLError("There can be only one argument named \"".concat(argName, "\"."), [knownArgNames[argName], node.name]));
-      } else {
-        knownArgNames[argName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNames.d.ts b/node_modules/graphql/validation/rules/UniqueDirectiveNames.d.ts
deleted file mode 100644
index c197e87..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNames.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueDirectiveNamesRule } from 'graphql'
- * or
- *   import { UniqueDirectiveNamesRule } from 'graphql/validation'
- */
-export { UniqueDirectiveNamesRule as UniqueDirectiveNames } from './UniqueDirectiveNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNames.js b/node_modules/graphql/validation/rules/UniqueDirectiveNames.js
deleted file mode 100644
index d7d6116..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNames.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "UniqueDirectiveNames", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule;
-  }
-});
-
-var _UniqueDirectiveNamesRule = require("./UniqueDirectiveNamesRule");
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNames.js.flow b/node_modules/graphql/validation/rules/UniqueDirectiveNames.js.flow
deleted file mode 100644
index fbbd6fc..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNames.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueDirectiveNamesRule } from 'graphql'
- * or
- *   import { UniqueDirectiveNamesRule } from 'graphql/validation'
- */
-export { UniqueDirectiveNamesRule as UniqueDirectiveNames } from './UniqueDirectiveNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs b/node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs
deleted file mode 100644
index 24f4e39..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNames.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueDirectiveNamesRule } from 'graphql'
- * or
- *   import { UniqueDirectiveNamesRule } from 'graphql/validation'
- */
-export { UniqueDirectiveNamesRule as UniqueDirectiveNames } from "./UniqueDirectiveNamesRule.mjs";
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.d.ts
deleted file mode 100644
index a4dd841..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique directive names
- *
- * A GraphQL document is only valid if all defined directives have unique names.
- */
-export function UniqueDirectiveNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js b/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js
deleted file mode 100644
index 96eaf0b..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueDirectiveNamesRule = UniqueDirectiveNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique directive names
- *
- * A GraphQL document is only valid if all defined directives have unique names.
- */
-function UniqueDirectiveNamesRule(context) {
-  var knownDirectiveNames = Object.create(null);
-  var schema = context.getSchema();
-  return {
-    DirectiveDefinition: function DirectiveDefinition(node) {
-      var directiveName = node.name.value;
-
-      if (schema === null || schema === void 0 ? void 0 : schema.getDirective(directiveName)) {
-        context.reportError(new _GraphQLError.GraphQLError("Directive \"@".concat(directiveName, "\" already exists in the schema. It cannot be redefined."), node.name));
-        return;
-      }
-
-      if (knownDirectiveNames[directiveName]) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one directive named \"@".concat(directiveName, "\"."), [knownDirectiveNames[directiveName], node.name]));
-      } else {
-        knownDirectiveNames[directiveName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js.flow
deleted file mode 100644
index bad5ca5..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.js.flow
+++ /dev/null
@@ -1,47 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique directive names
- *
- * A GraphQL document is only valid if all defined directives have unique names.
- */
-export function UniqueDirectiveNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const knownDirectiveNames = Object.create(null);
-  const schema = context.getSchema();
-
-  return {
-    DirectiveDefinition(node) {
-      const directiveName = node.name.value;
-
-      if (schema?.getDirective(directiveName)) {
-        context.reportError(
-          new GraphQLError(
-            `Directive "@${directiveName}" already exists in the schema. It cannot be redefined.`,
-            node.name,
-          ),
-        );
-        return;
-      }
-
-      if (knownDirectiveNames[directiveName]) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one directive named "@${directiveName}".`,
-            [knownDirectiveNames[directiveName], node.name],
-          ),
-        );
-      } else {
-        knownDirectiveNames[directiveName] = node.name;
-      }
-
-      return false;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs
deleted file mode 100644
index b77197a..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs
+++ /dev/null
@@ -1,29 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique directive names
- *
- * A GraphQL document is only valid if all defined directives have unique names.
- */
-export function UniqueDirectiveNamesRule(context) {
-  var knownDirectiveNames = Object.create(null);
-  var schema = context.getSchema();
-  return {
-    DirectiveDefinition: function DirectiveDefinition(node) {
-      var directiveName = node.name.value;
-
-      if (schema === null || schema === void 0 ? void 0 : schema.getDirective(directiveName)) {
-        context.reportError(new GraphQLError("Directive \"@".concat(directiveName, "\" already exists in the schema. It cannot be redefined."), node.name));
-        return;
-      }
-
-      if (knownDirectiveNames[directiveName]) {
-        context.reportError(new GraphQLError("There can be only one directive named \"@".concat(directiveName, "\"."), [knownDirectiveNames[directiveName], node.name]));
-      } else {
-        knownDirectiveNames[directiveName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.d.ts b/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.d.ts
deleted file mode 100644
index d059446..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique directive names per location
- *
- * A GraphQL document is only valid if all directives at a given location
- * are uniquely named.
- */
-export function UniqueDirectivesPerLocationRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js b/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js
deleted file mode 100644
index 0a16139..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js
+++ /dev/null
@@ -1,82 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueDirectivesPerLocationRule = UniqueDirectivesPerLocationRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _predicates = require("../../language/predicates");
-
-var _directives = require("../../type/directives");
-
-/**
- * Unique directive names per location
- *
- * A GraphQL document is only valid if all non-repeatable directives at
- * a given location are uniquely named.
- */
-function UniqueDirectivesPerLocationRule(context) {
-  var uniqueDirectiveMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : _directives.specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    uniqueDirectiveMap[directive.name] = !directive.isRepeatable;
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
-      uniqueDirectiveMap[def.name.value] = !def.repeatable;
-    }
-  }
-
-  var schemaDirectives = Object.create(null);
-  var typeDirectivesMap = Object.create(null);
-  return {
-    // Many different AST nodes may contain directives. Rather than listing
-    // them all, just listen for entering any node, and check to see if it
-    // defines any directives.
-    enter: function enter(node) {
-      if (node.directives == null) {
-        return;
-      }
-
-      var seenDirectives;
-
-      if (node.kind === _kinds.Kind.SCHEMA_DEFINITION || node.kind === _kinds.Kind.SCHEMA_EXTENSION) {
-        seenDirectives = schemaDirectives;
-      } else if ((0, _predicates.isTypeDefinitionNode)(node) || (0, _predicates.isTypeExtensionNode)(node)) {
-        var typeName = node.name.value;
-        seenDirectives = typeDirectivesMap[typeName];
-
-        if (seenDirectives === undefined) {
-          typeDirectivesMap[typeName] = seenDirectives = Object.create(null);
-        }
-      } else {
-        seenDirectives = Object.create(null);
-      }
-
-      for (var _i6 = 0, _node$directives2 = node.directives; _i6 < _node$directives2.length; _i6++) {
-        var _directive = _node$directives2[_i6];
-        var directiveName = _directive.name.value;
-
-        if (uniqueDirectiveMap[directiveName]) {
-          if (seenDirectives[directiveName]) {
-            context.reportError(new _GraphQLError.GraphQLError("The directive \"@".concat(directiveName, "\" can only be used once at this location."), [seenDirectives[directiveName], _directive]));
-          } else {
-            seenDirectives[directiveName] = _directive;
-          }
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js.flow b/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js.flow
deleted file mode 100644
index 4f74d0f..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.js.flow
+++ /dev/null
@@ -1,91 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ASTVisitor } from '../../language/visitor';
-import {
-  isTypeDefinitionNode,
-  isTypeExtensionNode,
-} from '../../language/predicates';
-
-import { specifiedDirectives } from '../../type/directives';
-
-import {
-  type SDLValidationContext,
-  type ValidationContext,
-} from '../ValidationContext';
-
-/**
- * Unique directive names per location
- *
- * A GraphQL document is only valid if all non-repeatable directives at
- * a given location are uniquely named.
- */
-export function UniqueDirectivesPerLocationRule(
-  context: ValidationContext | SDLValidationContext,
-): ASTVisitor {
-  const uniqueDirectiveMap = Object.create(null);
-
-  const schema = context.getSchema();
-  const definedDirectives = schema
-    ? schema.getDirectives()
-    : specifiedDirectives;
-  for (const directive of definedDirectives) {
-    uniqueDirectiveMap[directive.name] = !directive.isRepeatable;
-  }
-
-  const astDefinitions = context.getDocument().definitions;
-  for (const def of astDefinitions) {
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      uniqueDirectiveMap[def.name.value] = !def.repeatable;
-    }
-  }
-
-  const schemaDirectives = Object.create(null);
-  const typeDirectivesMap = Object.create(null);
-
-  return {
-    // Many different AST nodes may contain directives. Rather than listing
-    // them all, just listen for entering any node, and check to see if it
-    // defines any directives.
-    enter(node) {
-      if (node.directives == null) {
-        return;
-      }
-
-      let seenDirectives;
-      if (
-        node.kind === Kind.SCHEMA_DEFINITION ||
-        node.kind === Kind.SCHEMA_EXTENSION
-      ) {
-        seenDirectives = schemaDirectives;
-      } else if (isTypeDefinitionNode(node) || isTypeExtensionNode(node)) {
-        const typeName = node.name.value;
-        seenDirectives = typeDirectivesMap[typeName];
-        if (seenDirectives === undefined) {
-          typeDirectivesMap[typeName] = seenDirectives = Object.create(null);
-        }
-      } else {
-        seenDirectives = Object.create(null);
-      }
-
-      for (const directive of node.directives) {
-        const directiveName = directive.name.value;
-
-        if (uniqueDirectiveMap[directiveName]) {
-          if (seenDirectives[directiveName]) {
-            context.reportError(
-              new GraphQLError(
-                `The directive "@${directiveName}" can only be used once at this location.`,
-                [seenDirectives[directiveName], directive],
-              ),
-            );
-          } else {
-            seenDirectives[directiveName] = directive;
-          }
-        }
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs b/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs
deleted file mode 100644
index 9a3951a..0000000
--- a/node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs
+++ /dev/null
@@ -1,72 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { isTypeDefinitionNode, isTypeExtensionNode } from "../../language/predicates.mjs";
-import { specifiedDirectives } from "../../type/directives.mjs";
-
-/**
- * Unique directive names per location
- *
- * A GraphQL document is only valid if all non-repeatable directives at
- * a given location are uniquely named.
- */
-export function UniqueDirectivesPerLocationRule(context) {
-  var uniqueDirectiveMap = Object.create(null);
-  var schema = context.getSchema();
-  var definedDirectives = schema ? schema.getDirectives() : specifiedDirectives;
-
-  for (var _i2 = 0; _i2 < definedDirectives.length; _i2++) {
-    var directive = definedDirectives[_i2];
-    uniqueDirectiveMap[directive.name] = !directive.isRepeatable;
-  }
-
-  var astDefinitions = context.getDocument().definitions;
-
-  for (var _i4 = 0; _i4 < astDefinitions.length; _i4++) {
-    var def = astDefinitions[_i4];
-
-    if (def.kind === Kind.DIRECTIVE_DEFINITION) {
-      uniqueDirectiveMap[def.name.value] = !def.repeatable;
-    }
-  }
-
-  var schemaDirectives = Object.create(null);
-  var typeDirectivesMap = Object.create(null);
-  return {
-    // Many different AST nodes may contain directives. Rather than listing
-    // them all, just listen for entering any node, and check to see if it
-    // defines any directives.
-    enter: function enter(node) {
-      if (node.directives == null) {
-        return;
-      }
-
-      var seenDirectives;
-
-      if (node.kind === Kind.SCHEMA_DEFINITION || node.kind === Kind.SCHEMA_EXTENSION) {
-        seenDirectives = schemaDirectives;
-      } else if (isTypeDefinitionNode(node) || isTypeExtensionNode(node)) {
-        var typeName = node.name.value;
-        seenDirectives = typeDirectivesMap[typeName];
-
-        if (seenDirectives === undefined) {
-          typeDirectivesMap[typeName] = seenDirectives = Object.create(null);
-        }
-      } else {
-        seenDirectives = Object.create(null);
-      }
-
-      for (var _i6 = 0, _node$directives2 = node.directives; _i6 < _node$directives2.length; _i6++) {
-        var _directive = _node$directives2[_i6];
-        var directiveName = _directive.name.value;
-
-        if (uniqueDirectiveMap[directiveName]) {
-          if (seenDirectives[directiveName]) {
-            context.reportError(new GraphQLError("The directive \"@".concat(directiveName, "\" can only be used once at this location."), [seenDirectives[directiveName], _directive]));
-          } else {
-            seenDirectives[directiveName] = _directive;
-          }
-        }
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNames.d.ts b/node_modules/graphql/validation/rules/UniqueEnumValueNames.d.ts
deleted file mode 100644
index 96d9b78..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNames.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueEnumValueNamesRule } from 'graphql'
- * or
- *   import { UniqueEnumValueNamesRule } from 'graphql/validation'
- */
-export { UniqueEnumValueNamesRule as UniqueEnumValueNames } from './UniqueEnumValueNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNames.js b/node_modules/graphql/validation/rules/UniqueEnumValueNames.js
deleted file mode 100644
index 3f5ea51..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNames.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "UniqueEnumValueNames", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule;
-  }
-});
-
-var _UniqueEnumValueNamesRule = require("./UniqueEnumValueNamesRule");
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNames.js.flow b/node_modules/graphql/validation/rules/UniqueEnumValueNames.js.flow
deleted file mode 100644
index bf40bb2..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNames.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueEnumValueNamesRule } from 'graphql'
- * or
- *   import { UniqueEnumValueNamesRule } from 'graphql/validation'
- */
-export { UniqueEnumValueNamesRule as UniqueEnumValueNames } from './UniqueEnumValueNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs b/node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs
deleted file mode 100644
index 05f361a..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNames.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueEnumValueNamesRule } from 'graphql'
- * or
- *   import { UniqueEnumValueNamesRule } from 'graphql/validation'
- */
-export { UniqueEnumValueNamesRule as UniqueEnumValueNames } from "./UniqueEnumValueNamesRule.mjs";
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.d.ts
deleted file mode 100644
index 9c5ff50..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique enum value names
- *
- * A GraphQL enum type is only valid if all its values are uniquely named.
- */
-export function UniqueEnumValueNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js b/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js
deleted file mode 100644
index 41d7e9e..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueEnumValueNamesRule = UniqueEnumValueNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _definition = require("../../type/definition");
-
-/**
- * Unique enum value names
- *
- * A GraphQL enum type is only valid if all its values are uniquely named.
- */
-function UniqueEnumValueNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  var knownValueNames = Object.create(null);
-  return {
-    EnumTypeDefinition: checkValueUniqueness,
-    EnumTypeExtension: checkValueUniqueness
-  };
-
-  function checkValueUniqueness(node) {
-    var _node$values;
-
-    var typeName = node.name.value;
-
-    if (!knownValueNames[typeName]) {
-      knownValueNames[typeName] = Object.create(null);
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var valueNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];
-    var valueNames = knownValueNames[typeName];
-
-    for (var _i2 = 0; _i2 < valueNodes.length; _i2++) {
-      var valueDef = valueNodes[_i2];
-      var valueName = valueDef.name.value;
-      var existingType = existingTypeMap[typeName];
-
-      if ((0, _definition.isEnumType)(existingType) && existingType.getValue(valueName)) {
-        context.reportError(new _GraphQLError.GraphQLError("Enum value \"".concat(typeName, ".").concat(valueName, "\" already exists in the schema. It cannot also be defined in this type extension."), valueDef.name));
-      } else if (valueNames[valueName]) {
-        context.reportError(new _GraphQLError.GraphQLError("Enum value \"".concat(typeName, ".").concat(valueName, "\" can only be defined once."), [valueNames[valueName], valueDef.name]));
-      } else {
-        valueNames[valueName] = valueDef.name;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js.flow
deleted file mode 100644
index dac1939..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.js.flow
+++ /dev/null
@@ -1,62 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-import { isEnumType } from '../../type/definition';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique enum value names
- *
- * A GraphQL enum type is only valid if all its values are uniquely named.
- */
-export function UniqueEnumValueNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const schema = context.getSchema();
-  const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  const knownValueNames = Object.create(null);
-
-  return {
-    EnumTypeDefinition: checkValueUniqueness,
-    EnumTypeExtension: checkValueUniqueness,
-  };
-
-  function checkValueUniqueness(node) {
-    const typeName = node.name.value;
-
-    if (!knownValueNames[typeName]) {
-      knownValueNames[typeName] = Object.create(null);
-    }
-
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const valueNodes = node.values ?? [];
-    const valueNames = knownValueNames[typeName];
-
-    for (const valueDef of valueNodes) {
-      const valueName = valueDef.name.value;
-
-      const existingType = existingTypeMap[typeName];
-      if (isEnumType(existingType) && existingType.getValue(valueName)) {
-        context.reportError(
-          new GraphQLError(
-            `Enum value "${typeName}.${valueName}" already exists in the schema. It cannot also be defined in this type extension.`,
-            valueDef.name,
-          ),
-        );
-      } else if (valueNames[valueName]) {
-        context.reportError(
-          new GraphQLError(
-            `Enum value "${typeName}.${valueName}" can only be defined once.`,
-            [valueNames[valueName], valueDef.name],
-          ),
-        );
-      } else {
-        valueNames[valueName] = valueDef.name;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs
deleted file mode 100644
index 23c979b..0000000
--- a/node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs
+++ /dev/null
@@ -1,48 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { isEnumType } from "../../type/definition.mjs";
-
-/**
- * Unique enum value names
- *
- * A GraphQL enum type is only valid if all its values are uniquely named.
- */
-export function UniqueEnumValueNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  var knownValueNames = Object.create(null);
-  return {
-    EnumTypeDefinition: checkValueUniqueness,
-    EnumTypeExtension: checkValueUniqueness
-  };
-
-  function checkValueUniqueness(node) {
-    var _node$values;
-
-    var typeName = node.name.value;
-
-    if (!knownValueNames[typeName]) {
-      knownValueNames[typeName] = Object.create(null);
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var valueNodes = (_node$values = node.values) !== null && _node$values !== void 0 ? _node$values : [];
-    var valueNames = knownValueNames[typeName];
-
-    for (var _i2 = 0; _i2 < valueNodes.length; _i2++) {
-      var valueDef = valueNodes[_i2];
-      var valueName = valueDef.name.value;
-      var existingType = existingTypeMap[typeName];
-
-      if (isEnumType(existingType) && existingType.getValue(valueName)) {
-        context.reportError(new GraphQLError("Enum value \"".concat(typeName, ".").concat(valueName, "\" already exists in the schema. It cannot also be defined in this type extension."), valueDef.name));
-      } else if (valueNames[valueName]) {
-        context.reportError(new GraphQLError("Enum value \"".concat(typeName, ".").concat(valueName, "\" can only be defined once."), [valueNames[valueName], valueDef.name]));
-      } else {
-        valueNames[valueName] = valueDef.name;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.d.ts b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.d.ts
deleted file mode 100644
index 26ebb06..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql'
- * or
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql/validation'
- */
-export { UniqueFieldDefinitionNamesRule as UniqueFieldDefinitionNames } from './UniqueFieldDefinitionNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js
deleted file mode 100644
index b47ef36..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "UniqueFieldDefinitionNames", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule;
-  }
-});
-
-var _UniqueFieldDefinitionNamesRule = require("./UniqueFieldDefinitionNamesRule");
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js.flow b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js.flow
deleted file mode 100644
index 2efdf02..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql'
- * or
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql/validation'
- */
-export { UniqueFieldDefinitionNamesRule as UniqueFieldDefinitionNames } from './UniqueFieldDefinitionNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs
deleted file mode 100644
index c2a3add..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNames.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql'
- * or
- *   import { UniqueFieldDefinitionNamesRule } from 'graphql/validation'
- */
-export { UniqueFieldDefinitionNamesRule as UniqueFieldDefinitionNames } from "./UniqueFieldDefinitionNamesRule.mjs";
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.d.ts
deleted file mode 100644
index 6f356ed..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique field definition names
- *
- * A GraphQL complex type is only valid if all its fields are uniquely named.
- */
-export function UniqueFieldDefinitionNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js
deleted file mode 100644
index 133585b..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueFieldDefinitionNamesRule = UniqueFieldDefinitionNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _definition = require("../../type/definition");
-
-/**
- * Unique field definition names
- *
- * A GraphQL complex type is only valid if all its fields are uniquely named.
- */
-function UniqueFieldDefinitionNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  var knownFieldNames = Object.create(null);
-  return {
-    InputObjectTypeDefinition: checkFieldUniqueness,
-    InputObjectTypeExtension: checkFieldUniqueness,
-    InterfaceTypeDefinition: checkFieldUniqueness,
-    InterfaceTypeExtension: checkFieldUniqueness,
-    ObjectTypeDefinition: checkFieldUniqueness,
-    ObjectTypeExtension: checkFieldUniqueness
-  };
-
-  function checkFieldUniqueness(node) {
-    var _node$fields;
-
-    var typeName = node.name.value;
-
-    if (!knownFieldNames[typeName]) {
-      knownFieldNames[typeName] = Object.create(null);
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var fieldNodes = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];
-    var fieldNames = knownFieldNames[typeName];
-
-    for (var _i2 = 0; _i2 < fieldNodes.length; _i2++) {
-      var fieldDef = fieldNodes[_i2];
-      var fieldName = fieldDef.name.value;
-
-      if (hasField(existingTypeMap[typeName], fieldName)) {
-        context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(typeName, ".").concat(fieldName, "\" already exists in the schema. It cannot also be defined in this type extension."), fieldDef.name));
-      } else if (fieldNames[fieldName]) {
-        context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(typeName, ".").concat(fieldName, "\" can only be defined once."), [fieldNames[fieldName], fieldDef.name]));
-      } else {
-        fieldNames[fieldName] = fieldDef.name;
-      }
-    }
-
-    return false;
-  }
-}
-
-function hasField(type, fieldName) {
-  if ((0, _definition.isObjectType)(type) || (0, _definition.isInterfaceType)(type) || (0, _definition.isInputObjectType)(type)) {
-    return type.getFields()[fieldName];
-  }
-
-  return false;
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js.flow
deleted file mode 100644
index 2a75e5b..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.js.flow
+++ /dev/null
@@ -1,76 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-import {
-  isObjectType,
-  isInterfaceType,
-  isInputObjectType,
-} from '../../type/definition';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique field definition names
- *
- * A GraphQL complex type is only valid if all its fields are uniquely named.
- */
-export function UniqueFieldDefinitionNamesRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const schema = context.getSchema();
-  const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  const knownFieldNames = Object.create(null);
-
-  return {
-    InputObjectTypeDefinition: checkFieldUniqueness,
-    InputObjectTypeExtension: checkFieldUniqueness,
-    InterfaceTypeDefinition: checkFieldUniqueness,
-    InterfaceTypeExtension: checkFieldUniqueness,
-    ObjectTypeDefinition: checkFieldUniqueness,
-    ObjectTypeExtension: checkFieldUniqueness,
-  };
-
-  function checkFieldUniqueness(node) {
-    const typeName = node.name.value;
-
-    if (!knownFieldNames[typeName]) {
-      knownFieldNames[typeName] = Object.create(null);
-    }
-
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const fieldNodes = node.fields ?? [];
-    const fieldNames = knownFieldNames[typeName];
-
-    for (const fieldDef of fieldNodes) {
-      const fieldName = fieldDef.name.value;
-
-      if (hasField(existingTypeMap[typeName], fieldName)) {
-        context.reportError(
-          new GraphQLError(
-            `Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension.`,
-            fieldDef.name,
-          ),
-        );
-      } else if (fieldNames[fieldName]) {
-        context.reportError(
-          new GraphQLError(
-            `Field "${typeName}.${fieldName}" can only be defined once.`,
-            [fieldNames[fieldName], fieldDef.name],
-          ),
-        );
-      } else {
-        fieldNames[fieldName] = fieldDef.name;
-      }
-    }
-
-    return false;
-  }
-}
-
-function hasField(type, fieldName) {
-  if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {
-    return type.getFields()[fieldName];
-  }
-  return false;
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs
deleted file mode 100644
index 0697264..0000000
--- a/node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs
+++ /dev/null
@@ -1,59 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { isObjectType, isInterfaceType, isInputObjectType } from "../../type/definition.mjs";
-
-/**
- * Unique field definition names
- *
- * A GraphQL complex type is only valid if all its fields are uniquely named.
- */
-export function UniqueFieldDefinitionNamesRule(context) {
-  var schema = context.getSchema();
-  var existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
-  var knownFieldNames = Object.create(null);
-  return {
-    InputObjectTypeDefinition: checkFieldUniqueness,
-    InputObjectTypeExtension: checkFieldUniqueness,
-    InterfaceTypeDefinition: checkFieldUniqueness,
-    InterfaceTypeExtension: checkFieldUniqueness,
-    ObjectTypeDefinition: checkFieldUniqueness,
-    ObjectTypeExtension: checkFieldUniqueness
-  };
-
-  function checkFieldUniqueness(node) {
-    var _node$fields;
-
-    var typeName = node.name.value;
-
-    if (!knownFieldNames[typeName]) {
-      knownFieldNames[typeName] = Object.create(null);
-    }
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-
-
-    var fieldNodes = (_node$fields = node.fields) !== null && _node$fields !== void 0 ? _node$fields : [];
-    var fieldNames = knownFieldNames[typeName];
-
-    for (var _i2 = 0; _i2 < fieldNodes.length; _i2++) {
-      var fieldDef = fieldNodes[_i2];
-      var fieldName = fieldDef.name.value;
-
-      if (hasField(existingTypeMap[typeName], fieldName)) {
-        context.reportError(new GraphQLError("Field \"".concat(typeName, ".").concat(fieldName, "\" already exists in the schema. It cannot also be defined in this type extension."), fieldDef.name));
-      } else if (fieldNames[fieldName]) {
-        context.reportError(new GraphQLError("Field \"".concat(typeName, ".").concat(fieldName, "\" can only be defined once."), [fieldNames[fieldName], fieldDef.name]));
-      } else {
-        fieldNames[fieldName] = fieldDef.name;
-      }
-    }
-
-    return false;
-  }
-}
-
-function hasField(type, fieldName) {
-  if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {
-    return type.getFields()[fieldName];
-  }
-
-  return false;
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.d.ts
deleted file mode 100644
index 6154158..0000000
--- a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique fragment names
- *
- * A GraphQL document is only valid if all defined fragments have unique names.
- */
-export function UniqueFragmentNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js b/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js
deleted file mode 100644
index b19e151..0000000
--- a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueFragmentNamesRule = UniqueFragmentNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique fragment names
- *
- * A GraphQL document is only valid if all defined fragments have unique names.
- */
-function UniqueFragmentNamesRule(context) {
-  var knownFragmentNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      var fragmentName = node.name.value;
-
-      if (knownFragmentNames[fragmentName]) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one fragment named \"".concat(fragmentName, "\"."), [knownFragmentNames[fragmentName], node.name]));
-      } else {
-        knownFragmentNames[fragmentName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js.flow
deleted file mode 100644
index 3150ab6..0000000
--- a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.js.flow
+++ /dev/null
@@ -1,34 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique fragment names
- *
- * A GraphQL document is only valid if all defined fragments have unique names.
- */
-export function UniqueFragmentNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  const knownFragmentNames = Object.create(null);
-  return {
-    OperationDefinition: () => false,
-    FragmentDefinition(node) {
-      const fragmentName = node.name.value;
-      if (knownFragmentNames[fragmentName]) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one fragment named "${fragmentName}".`,
-            [knownFragmentNames[fragmentName], node.name],
-          ),
-        );
-      } else {
-        knownFragmentNames[fragmentName] = node.name;
-      }
-      return false;
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs
deleted file mode 100644
index d9b0ef3..0000000
--- a/node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs
+++ /dev/null
@@ -1,26 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique fragment names
- *
- * A GraphQL document is only valid if all defined fragments have unique names.
- */
-export function UniqueFragmentNamesRule(context) {
-  var knownFragmentNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition(node) {
-      var fragmentName = node.name.value;
-
-      if (knownFragmentNames[fragmentName]) {
-        context.reportError(new GraphQLError("There can be only one fragment named \"".concat(fragmentName, "\"."), [knownFragmentNames[fragmentName], node.name]));
-      } else {
-        knownFragmentNames[fragmentName] = node.name;
-      }
-
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.d.ts
deleted file mode 100644
index c66d65f..0000000
--- a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique input field names
- *
- * A GraphQL input object value is only valid if all supplied fields are
- * uniquely named.
- */
-export function UniqueInputFieldNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js b/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js
deleted file mode 100644
index 00e6ccf..0000000
--- a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueInputFieldNamesRule = UniqueInputFieldNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique input field names
- *
- * A GraphQL input object value is only valid if all supplied fields are
- * uniquely named.
- */
-function UniqueInputFieldNamesRule(context) {
-  var knownNameStack = [];
-  var knownNames = Object.create(null);
-  return {
-    ObjectValue: {
-      enter: function enter() {
-        knownNameStack.push(knownNames);
-        knownNames = Object.create(null);
-      },
-      leave: function leave() {
-        knownNames = knownNameStack.pop();
-      }
-    },
-    ObjectField: function ObjectField(node) {
-      var fieldName = node.name.value;
-
-      if (knownNames[fieldName]) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one input field named \"".concat(fieldName, "\"."), [knownNames[fieldName], node.name]));
-      } else {
-        knownNames[fieldName] = node.name;
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js.flow
deleted file mode 100644
index 9041bdd..0000000
--- a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.js.flow
+++ /dev/null
@@ -1,44 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique input field names
- *
- * A GraphQL input object value is only valid if all supplied fields are
- * uniquely named.
- */
-export function UniqueInputFieldNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  const knownNameStack = [];
-  let knownNames = Object.create(null);
-
-  return {
-    ObjectValue: {
-      enter() {
-        knownNameStack.push(knownNames);
-        knownNames = Object.create(null);
-      },
-      leave() {
-        knownNames = knownNameStack.pop();
-      },
-    },
-    ObjectField(node) {
-      const fieldName = node.name.value;
-      if (knownNames[fieldName]) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one input field named "${fieldName}".`,
-            [knownNames[fieldName], node.name],
-          ),
-        );
-      } else {
-        knownNames[fieldName] = node.name;
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs
deleted file mode 100644
index ae0c884..0000000
--- a/node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs
+++ /dev/null
@@ -1,32 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique input field names
- *
- * A GraphQL input object value is only valid if all supplied fields are
- * uniquely named.
- */
-export function UniqueInputFieldNamesRule(context) {
-  var knownNameStack = [];
-  var knownNames = Object.create(null);
-  return {
-    ObjectValue: {
-      enter: function enter() {
-        knownNameStack.push(knownNames);
-        knownNames = Object.create(null);
-      },
-      leave: function leave() {
-        knownNames = knownNameStack.pop();
-      }
-    },
-    ObjectField: function ObjectField(node) {
-      var fieldName = node.name.value;
-
-      if (knownNames[fieldName]) {
-        context.reportError(new GraphQLError("There can be only one input field named \"".concat(fieldName, "\"."), [knownNames[fieldName], node.name]));
-      } else {
-        knownNames[fieldName] = node.name;
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueOperationNamesRule.d.ts
deleted file mode 100644
index aa2d06a..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique operation names
- *
- * A GraphQL document is only valid if all defined operations have unique names.
- */
-export function UniqueOperationNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js b/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js
deleted file mode 100644
index d87c169..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueOperationNamesRule = UniqueOperationNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique operation names
- *
- * A GraphQL document is only valid if all defined operations have unique names.
- */
-function UniqueOperationNamesRule(context) {
-  var knownOperationNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      var operationName = node.name;
-
-      if (operationName) {
-        if (knownOperationNames[operationName.value]) {
-          context.reportError(new _GraphQLError.GraphQLError("There can be only one operation named \"".concat(operationName.value, "\"."), [knownOperationNames[operationName.value], operationName]));
-        } else {
-          knownOperationNames[operationName.value] = operationName;
-        }
-      }
-
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition() {
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js.flow
deleted file mode 100644
index 3a0e40d..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.js.flow
+++ /dev/null
@@ -1,36 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique operation names
- *
- * A GraphQL document is only valid if all defined operations have unique names.
- */
-export function UniqueOperationNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  const knownOperationNames = Object.create(null);
-  return {
-    OperationDefinition(node) {
-      const operationName = node.name;
-      if (operationName) {
-        if (knownOperationNames[operationName.value]) {
-          context.reportError(
-            new GraphQLError(
-              `There can be only one operation named "${operationName.value}".`,
-              [knownOperationNames[operationName.value], operationName],
-            ),
-          );
-        } else {
-          knownOperationNames[operationName.value] = operationName;
-        }
-      }
-      return false;
-    },
-    FragmentDefinition: () => false,
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs
deleted file mode 100644
index 28190c5..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs
+++ /dev/null
@@ -1,28 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique operation names
- *
- * A GraphQL document is only valid if all defined operations have unique names.
- */
-export function UniqueOperationNamesRule(context) {
-  var knownOperationNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition(node) {
-      var operationName = node.name;
-
-      if (operationName) {
-        if (knownOperationNames[operationName.value]) {
-          context.reportError(new GraphQLError("There can be only one operation named \"".concat(operationName.value, "\"."), [knownOperationNames[operationName.value], operationName]));
-        } else {
-          knownOperationNames[operationName.value] = operationName;
-        }
-      }
-
-      return false;
-    },
-    FragmentDefinition: function FragmentDefinition() {
-      return false;
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypes.d.ts b/node_modules/graphql/validation/rules/UniqueOperationTypes.d.ts
deleted file mode 100644
index 423932d..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypes.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueOperationTypesRule } from 'graphql'
- * or
- *   import { UniqueOperationTypesRule } from 'graphql/validation'
- */
-export { UniqueOperationTypesRule as UniqueOperationTypes } from './UniqueOperationTypesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypes.js b/node_modules/graphql/validation/rules/UniqueOperationTypes.js
deleted file mode 100644
index d73f60d..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypes.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "UniqueOperationTypes", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueOperationTypesRule.UniqueOperationTypesRule;
-  }
-});
-
-var _UniqueOperationTypesRule = require("./UniqueOperationTypesRule");
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypes.js.flow b/node_modules/graphql/validation/rules/UniqueOperationTypes.js.flow
deleted file mode 100644
index bb3d541..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypes.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueOperationTypesRule } from 'graphql'
- * or
- *   import { UniqueOperationTypesRule } from 'graphql/validation'
- */
-export { UniqueOperationTypesRule as UniqueOperationTypes } from './UniqueOperationTypesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypes.mjs b/node_modules/graphql/validation/rules/UniqueOperationTypes.mjs
deleted file mode 100644
index 4cd53b3..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypes.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueOperationTypesRule } from 'graphql'
- * or
- *   import { UniqueOperationTypesRule } from 'graphql/validation'
- */
-export { UniqueOperationTypesRule as UniqueOperationTypes } from "./UniqueOperationTypesRule.mjs";
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.d.ts b/node_modules/graphql/validation/rules/UniqueOperationTypesRule.d.ts
deleted file mode 100644
index a0d6441..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique operation types
- *
- * A GraphQL document is only valid if it has only one type per operation.
- */
-export function UniqueOperationTypesRule(
-  context: SDLValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js b/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js
deleted file mode 100644
index 8fc9e8a..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueOperationTypesRule = UniqueOperationTypesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique operation types
- *
- * A GraphQL document is only valid if it has only one type per operation.
- */
-function UniqueOperationTypesRule(context) {
-  var schema = context.getSchema();
-  var definedOperationTypes = Object.create(null);
-  var existingOperationTypes = schema ? {
-    query: schema.getQueryType(),
-    mutation: schema.getMutationType(),
-    subscription: schema.getSubscriptionType()
-  } : {};
-  return {
-    SchemaDefinition: checkOperationTypes,
-    SchemaExtension: checkOperationTypes
-  };
-
-  function checkOperationTypes(node) {
-    var _node$operationTypes;
-
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];
-
-    for (var _i2 = 0; _i2 < operationTypesNodes.length; _i2++) {
-      var operationType = operationTypesNodes[_i2];
-      var operation = operationType.operation;
-      var alreadyDefinedOperationType = definedOperationTypes[operation];
-
-      if (existingOperationTypes[operation]) {
-        context.reportError(new _GraphQLError.GraphQLError("Type for ".concat(operation, " already defined in the schema. It cannot be redefined."), operationType));
-      } else if (alreadyDefinedOperationType) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one ".concat(operation, " type in schema."), [alreadyDefinedOperationType, operationType]));
-      } else {
-        definedOperationTypes[operation] = operationType;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js.flow b/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js.flow
deleted file mode 100644
index 2cd40fc..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.js.flow
+++ /dev/null
@@ -1,60 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique operation types
- *
- * A GraphQL document is only valid if it has only one type per operation.
- */
-export function UniqueOperationTypesRule(
-  context: SDLValidationContext,
-): ASTVisitor {
-  const schema = context.getSchema();
-  const definedOperationTypes = Object.create(null);
-  const existingOperationTypes = schema
-    ? {
-        query: schema.getQueryType(),
-        mutation: schema.getMutationType(),
-        subscription: schema.getSubscriptionType(),
-      }
-    : {};
-
-  return {
-    SchemaDefinition: checkOperationTypes,
-    SchemaExtension: checkOperationTypes,
-  };
-
-  function checkOperationTypes(node) {
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    const operationTypesNodes = node.operationTypes ?? [];
-
-    for (const operationType of operationTypesNodes) {
-      const operation = operationType.operation;
-      const alreadyDefinedOperationType = definedOperationTypes[operation];
-
-      if (existingOperationTypes[operation]) {
-        context.reportError(
-          new GraphQLError(
-            `Type for ${operation} already defined in the schema. It cannot be redefined.`,
-            operationType,
-          ),
-        );
-      } else if (alreadyDefinedOperationType) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one ${operation} type in schema.`,
-            [alreadyDefinedOperationType, operationType],
-          ),
-        );
-      } else {
-        definedOperationTypes[operation] = operationType;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs b/node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs
deleted file mode 100644
index af01655..0000000
--- a/node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs
+++ /dev/null
@@ -1,43 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique operation types
- *
- * A GraphQL document is only valid if it has only one type per operation.
- */
-export function UniqueOperationTypesRule(context) {
-  var schema = context.getSchema();
-  var definedOperationTypes = Object.create(null);
-  var existingOperationTypes = schema ? {
-    query: schema.getQueryType(),
-    mutation: schema.getMutationType(),
-    subscription: schema.getSubscriptionType()
-  } : {};
-  return {
-    SchemaDefinition: checkOperationTypes,
-    SchemaExtension: checkOperationTypes
-  };
-
-  function checkOperationTypes(node) {
-    var _node$operationTypes;
-
-    /* istanbul ignore next (See https://github.com/graphql/graphql-js/issues/2203) */
-    var operationTypesNodes = (_node$operationTypes = node.operationTypes) !== null && _node$operationTypes !== void 0 ? _node$operationTypes : [];
-
-    for (var _i2 = 0; _i2 < operationTypesNodes.length; _i2++) {
-      var operationType = operationTypesNodes[_i2];
-      var operation = operationType.operation;
-      var alreadyDefinedOperationType = definedOperationTypes[operation];
-
-      if (existingOperationTypes[operation]) {
-        context.reportError(new GraphQLError("Type for ".concat(operation, " already defined in the schema. It cannot be redefined."), operationType));
-      } else if (alreadyDefinedOperationType) {
-        context.reportError(new GraphQLError("There can be only one ".concat(operation, " type in schema."), [alreadyDefinedOperationType, operationType]));
-      } else {
-        definedOperationTypes[operation] = operationType;
-      }
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNames.d.ts b/node_modules/graphql/validation/rules/UniqueTypeNames.d.ts
deleted file mode 100644
index 1740eef..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNames.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueTypeNamesRule } from 'graphql'
- * or
- *   import { UniqueTypeNamesRule } from 'graphql/validation'
- */
-export { UniqueTypeNamesRule as UniqueTypeNames } from './UniqueTypeNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNames.js b/node_modules/graphql/validation/rules/UniqueTypeNames.js
deleted file mode 100644
index 362855c..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNames.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-Object.defineProperty(exports, "UniqueTypeNames", {
-  enumerable: true,
-  get: function get() {
-    return _UniqueTypeNamesRule.UniqueTypeNamesRule;
-  }
-});
-
-var _UniqueTypeNamesRule = require("./UniqueTypeNamesRule");
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNames.js.flow b/node_modules/graphql/validation/rules/UniqueTypeNames.js.flow
deleted file mode 100644
index ea708b2..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNames.js.flow
+++ /dev/null
@@ -1,10 +0,0 @@
-// @flow strict
-
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueTypeNamesRule } from 'graphql'
- * or
- *   import { UniqueTypeNamesRule } from 'graphql/validation'
- */
-export { UniqueTypeNamesRule as UniqueTypeNames } from './UniqueTypeNamesRule';
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNames.mjs b/node_modules/graphql/validation/rules/UniqueTypeNames.mjs
deleted file mode 100644
index ea0c5bf..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNames.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @deprecated and will be removed in v16
- * Please use either:
- *   import { UniqueTypeNamesRule } from 'graphql'
- * or
- *   import { UniqueTypeNamesRule } from 'graphql/validation'
- */
-export { UniqueTypeNamesRule as UniqueTypeNames } from "./UniqueTypeNamesRule.mjs";
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueTypeNamesRule.d.ts
deleted file mode 100644
index e2b3759..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique type names
- *
- * A GraphQL document is only valid if all defined types have unique names.
- */
-export function UniqueTypeNamesRule(context: SDLValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js b/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js
deleted file mode 100644
index 9474f9d..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueTypeNamesRule = UniqueTypeNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique type names
- *
- * A GraphQL document is only valid if all defined types have unique names.
- */
-function UniqueTypeNamesRule(context) {
-  var knownTypeNames = Object.create(null);
-  var schema = context.getSchema();
-  return {
-    ScalarTypeDefinition: checkTypeName,
-    ObjectTypeDefinition: checkTypeName,
-    InterfaceTypeDefinition: checkTypeName,
-    UnionTypeDefinition: checkTypeName,
-    EnumTypeDefinition: checkTypeName,
-    InputObjectTypeDefinition: checkTypeName
-  };
-
-  function checkTypeName(node) {
-    var typeName = node.name.value;
-
-    if (schema === null || schema === void 0 ? void 0 : schema.getType(typeName)) {
-      context.reportError(new _GraphQLError.GraphQLError("Type \"".concat(typeName, "\" already exists in the schema. It cannot also be defined in this type definition."), node.name));
-      return;
-    }
-
-    if (knownTypeNames[typeName]) {
-      context.reportError(new _GraphQLError.GraphQLError("There can be only one type named \"".concat(typeName, "\"."), [knownTypeNames[typeName], node.name]));
-    } else {
-      knownTypeNames[typeName] = node.name;
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js.flow
deleted file mode 100644
index a20cde0..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.js.flow
+++ /dev/null
@@ -1,54 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTVisitor } from '../../language/visitor';
-import { type TypeDefinitionNode } from '../../language/ast';
-
-import { type SDLValidationContext } from '../ValidationContext';
-
-/**
- * Unique type names
- *
- * A GraphQL document is only valid if all defined types have unique names.
- */
-export function UniqueTypeNamesRule(context: SDLValidationContext): ASTVisitor {
-  const knownTypeNames = Object.create(null);
-  const schema = context.getSchema();
-
-  return {
-    ScalarTypeDefinition: checkTypeName,
-    ObjectTypeDefinition: checkTypeName,
-    InterfaceTypeDefinition: checkTypeName,
-    UnionTypeDefinition: checkTypeName,
-    EnumTypeDefinition: checkTypeName,
-    InputObjectTypeDefinition: checkTypeName,
-  };
-
-  function checkTypeName(node: TypeDefinitionNode) {
-    const typeName = node.name.value;
-
-    if (schema?.getType(typeName)) {
-      context.reportError(
-        new GraphQLError(
-          `Type "${typeName}" already exists in the schema. It cannot also be defined in this type definition.`,
-          node.name,
-        ),
-      );
-      return;
-    }
-
-    if (knownTypeNames[typeName]) {
-      context.reportError(
-        new GraphQLError(`There can be only one type named "${typeName}".`, [
-          knownTypeNames[typeName],
-          node.name,
-        ]),
-      );
-    } else {
-      knownTypeNames[typeName] = node.name;
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs
deleted file mode 100644
index 8e854ce..0000000
--- a/node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs
+++ /dev/null
@@ -1,36 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique type names
- *
- * A GraphQL document is only valid if all defined types have unique names.
- */
-export function UniqueTypeNamesRule(context) {
-  var knownTypeNames = Object.create(null);
-  var schema = context.getSchema();
-  return {
-    ScalarTypeDefinition: checkTypeName,
-    ObjectTypeDefinition: checkTypeName,
-    InterfaceTypeDefinition: checkTypeName,
-    UnionTypeDefinition: checkTypeName,
-    EnumTypeDefinition: checkTypeName,
-    InputObjectTypeDefinition: checkTypeName
-  };
-
-  function checkTypeName(node) {
-    var typeName = node.name.value;
-
-    if (schema === null || schema === void 0 ? void 0 : schema.getType(typeName)) {
-      context.reportError(new GraphQLError("Type \"".concat(typeName, "\" already exists in the schema. It cannot also be defined in this type definition."), node.name));
-      return;
-    }
-
-    if (knownTypeNames[typeName]) {
-      context.reportError(new GraphQLError("There can be only one type named \"".concat(typeName, "\"."), [knownTypeNames[typeName], node.name]));
-    } else {
-      knownTypeNames[typeName] = node.name;
-    }
-
-    return false;
-  }
-}
diff --git a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.d.ts b/node_modules/graphql/validation/rules/UniqueVariableNamesRule.d.ts
deleted file mode 100644
index 6f15764..0000000
--- a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique variable names
- *
- * A GraphQL operation is only valid if all its variables are uniquely named.
- */
-export function UniqueVariableNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js b/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js
deleted file mode 100644
index 89917ec..0000000
--- a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.UniqueVariableNamesRule = UniqueVariableNamesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-/**
- * Unique variable names
- *
- * A GraphQL operation is only valid if all its variables are uniquely named.
- */
-function UniqueVariableNamesRule(context) {
-  var knownVariableNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      knownVariableNames = Object.create(null);
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      var variableName = node.variable.name.value;
-
-      if (knownVariableNames[variableName]) {
-        context.reportError(new _GraphQLError.GraphQLError("There can be only one variable named \"$".concat(variableName, "\"."), [knownVariableNames[variableName], node.variable.name]));
-      } else {
-        knownVariableNames[variableName] = node.variable.name;
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js.flow b/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js.flow
deleted file mode 100644
index 26a4dad..0000000
--- a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.js.flow
+++ /dev/null
@@ -1,37 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { type ASTVisitor } from '../../language/visitor';
-import { type VariableDefinitionNode } from '../../language/ast';
-
-import { type ASTValidationContext } from '../ValidationContext';
-
-/**
- * Unique variable names
- *
- * A GraphQL operation is only valid if all its variables are uniquely named.
- */
-export function UniqueVariableNamesRule(
-  context: ASTValidationContext,
-): ASTVisitor {
-  let knownVariableNames = Object.create(null);
-  return {
-    OperationDefinition() {
-      knownVariableNames = Object.create(null);
-    },
-    VariableDefinition(node: VariableDefinitionNode) {
-      const variableName = node.variable.name.value;
-      if (knownVariableNames[variableName]) {
-        context.reportError(
-          new GraphQLError(
-            `There can be only one variable named "$${variableName}".`,
-            [knownVariableNames[variableName], node.variable.name],
-          ),
-        );
-      } else {
-        knownVariableNames[variableName] = node.variable.name;
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs b/node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs
deleted file mode 100644
index 3b650a4..0000000
--- a/node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs
+++ /dev/null
@@ -1,24 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-
-/**
- * Unique variable names
- *
- * A GraphQL operation is only valid if all its variables are uniquely named.
- */
-export function UniqueVariableNamesRule(context) {
-  var knownVariableNames = Object.create(null);
-  return {
-    OperationDefinition: function OperationDefinition() {
-      knownVariableNames = Object.create(null);
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      var variableName = node.variable.name.value;
-
-      if (knownVariableNames[variableName]) {
-        context.reportError(new GraphQLError("There can be only one variable named \"$".concat(variableName, "\"."), [knownVariableNames[variableName], node.variable.name]));
-      } else {
-        knownVariableNames[variableName] = node.variable.name;
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.d.ts b/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.d.ts
deleted file mode 100644
index 98ff7a7..0000000
--- a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Value literals of correct type
- *
- * A GraphQL document is only valid if all value literals are of the type
- * expected at their position.
- */
-export function ValuesOfCorrectTypeRule(context: ValidationContext): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js b/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js
deleted file mode 100644
index 5db1e11..0000000
--- a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js
+++ /dev/null
@@ -1,143 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.ValuesOfCorrectTypeRule = ValuesOfCorrectTypeRule;
-
-var _objectValues3 = _interopRequireDefault(require("../../polyfills/objectValues"));
-
-var _keyMap = _interopRequireDefault(require("../../jsutils/keyMap"));
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _didYouMean = _interopRequireDefault(require("../../jsutils/didYouMean"));
-
-var _suggestionList = _interopRequireDefault(require("../../jsutils/suggestionList"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _printer = require("../../language/printer");
-
-var _definition = require("../../type/definition");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Value literals of correct type
- *
- * A GraphQL document is only valid if all value literals are of the type
- * expected at their position.
- */
-function ValuesOfCorrectTypeRule(context) {
-  return {
-    ListValue: function ListValue(node) {
-      // Note: TypeInfo will traverse into a list's item type, so look to the
-      // parent input type to check if it is a list.
-      var type = (0, _definition.getNullableType)(context.getParentInputType());
-
-      if (!(0, _definition.isListType)(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      }
-    },
-    ObjectValue: function ObjectValue(node) {
-      var type = (0, _definition.getNamedType)(context.getInputType());
-
-      if (!(0, _definition.isInputObjectType)(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      } // Ensure every required field exists.
-
-
-      var fieldNodeMap = (0, _keyMap.default)(node.fields, function (field) {
-        return field.name.value;
-      });
-
-      for (var _i2 = 0, _objectValues2 = (0, _objectValues3.default)(type.getFields()); _i2 < _objectValues2.length; _i2++) {
-        var fieldDef = _objectValues2[_i2];
-        var fieldNode = fieldNodeMap[fieldDef.name];
-
-        if (!fieldNode && (0, _definition.isRequiredInputField)(fieldDef)) {
-          var typeStr = (0, _inspect.default)(fieldDef.type);
-          context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(type.name, ".").concat(fieldDef.name, "\" of required type \"").concat(typeStr, "\" was not provided."), node));
-        }
-      }
-    },
-    ObjectField: function ObjectField(node) {
-      var parentType = (0, _definition.getNamedType)(context.getParentInputType());
-      var fieldType = context.getInputType();
-
-      if (!fieldType && (0, _definition.isInputObjectType)(parentType)) {
-        var suggestions = (0, _suggestionList.default)(node.name.value, Object.keys(parentType.getFields()));
-        context.reportError(new _GraphQLError.GraphQLError("Field \"".concat(node.name.value, "\" is not defined by type \"").concat(parentType.name, "\".") + (0, _didYouMean.default)(suggestions), node));
-      }
-    },
-    NullValue: function NullValue(node) {
-      var type = context.getInputType();
-
-      if ((0, _definition.isNonNullType)(type)) {
-        context.reportError(new _GraphQLError.GraphQLError("Expected value of type \"".concat((0, _inspect.default)(type), "\", found ").concat((0, _printer.print)(node), "."), node));
-      }
-    },
-    EnumValue: function EnumValue(node) {
-      return isValidValueNode(context, node);
-    },
-    IntValue: function IntValue(node) {
-      return isValidValueNode(context, node);
-    },
-    FloatValue: function FloatValue(node) {
-      return isValidValueNode(context, node);
-    },
-    StringValue: function StringValue(node) {
-      return isValidValueNode(context, node);
-    },
-    BooleanValue: function BooleanValue(node) {
-      return isValidValueNode(context, node);
-    }
-  };
-}
-/**
- * Any value literal may be a valid representation of a Scalar, depending on
- * that scalar type.
- */
-
-
-function isValidValueNode(context, node) {
-  // Report any error at the full type expected by the location.
-  var locationType = context.getInputType();
-
-  if (!locationType) {
-    return;
-  }
-
-  var type = (0, _definition.getNamedType)(locationType);
-
-  if (!(0, _definition.isLeafType)(type)) {
-    var typeStr = (0, _inspect.default)(locationType);
-    context.reportError(new _GraphQLError.GraphQLError("Expected value of type \"".concat(typeStr, "\", found ").concat((0, _printer.print)(node), "."), node));
-    return;
-  } // Scalars and Enums determine if a literal value is valid via parseLiteral(),
-  // which may throw or return an invalid value to indicate failure.
-
-
-  try {
-    var parseResult = type.parseLiteral(node, undefined
-    /* variables */
-    );
-
-    if (parseResult === undefined) {
-      var _typeStr = (0, _inspect.default)(locationType);
-
-      context.reportError(new _GraphQLError.GraphQLError("Expected value of type \"".concat(_typeStr, "\", found ").concat((0, _printer.print)(node), "."), node));
-    }
-  } catch (error) {
-    var _typeStr2 = (0, _inspect.default)(locationType);
-
-    if (error instanceof _GraphQLError.GraphQLError) {
-      context.reportError(error);
-    } else {
-      context.reportError(new _GraphQLError.GraphQLError("Expected value of type \"".concat(_typeStr2, "\", found ").concat((0, _printer.print)(node), "; ") + error.message, node, undefined, undefined, undefined, error));
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js.flow b/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js.flow
deleted file mode 100644
index 8681e46..0000000
--- a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.js.flow
+++ /dev/null
@@ -1,159 +0,0 @@
-// @flow strict
-
-import objectValues from '../../polyfills/objectValues';
-
-import keyMap from '../../jsutils/keyMap';
-import inspect from '../../jsutils/inspect';
-import didYouMean from '../../jsutils/didYouMean';
-import suggestionList from '../../jsutils/suggestionList';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { print } from '../../language/printer';
-import { type ValueNode } from '../../language/ast';
-import { type ASTVisitor } from '../../language/visitor';
-
-import {
-  isLeafType,
-  isInputObjectType,
-  isListType,
-  isNonNullType,
-  isRequiredInputField,
-  getNullableType,
-  getNamedType,
-} from '../../type/definition';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Value literals of correct type
- *
- * A GraphQL document is only valid if all value literals are of the type
- * expected at their position.
- */
-export function ValuesOfCorrectTypeRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    ListValue(node) {
-      // Note: TypeInfo will traverse into a list's item type, so look to the
-      // parent input type to check if it is a list.
-      const type = getNullableType(context.getParentInputType());
-      if (!isListType(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      }
-    },
-    ObjectValue(node) {
-      const type = getNamedType(context.getInputType());
-      if (!isInputObjectType(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      }
-      // Ensure every required field exists.
-      const fieldNodeMap = keyMap(node.fields, field => field.name.value);
-      for (const fieldDef of objectValues(type.getFields())) {
-        const fieldNode = fieldNodeMap[fieldDef.name];
-        if (!fieldNode && isRequiredInputField(fieldDef)) {
-          const typeStr = inspect(fieldDef.type);
-          context.reportError(
-            new GraphQLError(
-              `Field "${type.name}.${fieldDef.name}" of required type "${typeStr}" was not provided.`,
-              node,
-            ),
-          );
-        }
-      }
-    },
-    ObjectField(node) {
-      const parentType = getNamedType(context.getParentInputType());
-      const fieldType = context.getInputType();
-      if (!fieldType && isInputObjectType(parentType)) {
-        const suggestions = suggestionList(
-          node.name.value,
-          Object.keys(parentType.getFields()),
-        );
-        context.reportError(
-          new GraphQLError(
-            `Field "${node.name.value}" is not defined by type "${parentType.name}".` +
-              didYouMean(suggestions),
-            node,
-          ),
-        );
-      }
-    },
-    NullValue(node) {
-      const type = context.getInputType();
-      if (isNonNullType(type)) {
-        context.reportError(
-          new GraphQLError(
-            `Expected value of type "${inspect(type)}", found ${print(node)}.`,
-            node,
-          ),
-        );
-      }
-    },
-    EnumValue: node => isValidValueNode(context, node),
-    IntValue: node => isValidValueNode(context, node),
-    FloatValue: node => isValidValueNode(context, node),
-    StringValue: node => isValidValueNode(context, node),
-    BooleanValue: node => isValidValueNode(context, node),
-  };
-}
-
-/**
- * Any value literal may be a valid representation of a Scalar, depending on
- * that scalar type.
- */
-function isValidValueNode(context: ValidationContext, node: ValueNode): void {
-  // Report any error at the full type expected by the location.
-  const locationType = context.getInputType();
-  if (!locationType) {
-    return;
-  }
-
-  const type = getNamedType(locationType);
-
-  if (!isLeafType(type)) {
-    const typeStr = inspect(locationType);
-    context.reportError(
-      new GraphQLError(
-        `Expected value of type "${typeStr}", found ${print(node)}.`,
-        node,
-      ),
-    );
-    return;
-  }
-
-  // Scalars and Enums determine if a literal value is valid via parseLiteral(),
-  // which may throw or return an invalid value to indicate failure.
-  try {
-    const parseResult = type.parseLiteral(node, undefined /* variables */);
-    if (parseResult === undefined) {
-      const typeStr = inspect(locationType);
-      context.reportError(
-        new GraphQLError(
-          `Expected value of type "${typeStr}", found ${print(node)}.`,
-          node,
-        ),
-      );
-    }
-  } catch (error) {
-    const typeStr = inspect(locationType);
-    if (error instanceof GraphQLError) {
-      context.reportError(error);
-    } else {
-      context.reportError(
-        new GraphQLError(
-          `Expected value of type "${typeStr}", found ${print(node)}; ` +
-            error.message,
-          node,
-          undefined,
-          undefined,
-          undefined,
-          error, // Ensure a reference to the original error is maintained.
-        ),
-      );
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs b/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs
deleted file mode 100644
index 01c8967..0000000
--- a/node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs
+++ /dev/null
@@ -1,126 +0,0 @@
-import objectValues from "../../polyfills/objectValues.mjs";
-import keyMap from "../../jsutils/keyMap.mjs";
-import inspect from "../../jsutils/inspect.mjs";
-import didYouMean from "../../jsutils/didYouMean.mjs";
-import suggestionList from "../../jsutils/suggestionList.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { print } from "../../language/printer.mjs";
-import { isLeafType, isInputObjectType, isListType, isNonNullType, isRequiredInputField, getNullableType, getNamedType } from "../../type/definition.mjs";
-
-/**
- * Value literals of correct type
- *
- * A GraphQL document is only valid if all value literals are of the type
- * expected at their position.
- */
-export function ValuesOfCorrectTypeRule(context) {
-  return {
-    ListValue: function ListValue(node) {
-      // Note: TypeInfo will traverse into a list's item type, so look to the
-      // parent input type to check if it is a list.
-      var type = getNullableType(context.getParentInputType());
-
-      if (!isListType(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      }
-    },
-    ObjectValue: function ObjectValue(node) {
-      var type = getNamedType(context.getInputType());
-
-      if (!isInputObjectType(type)) {
-        isValidValueNode(context, node);
-        return false; // Don't traverse further.
-      } // Ensure every required field exists.
-
-
-      var fieldNodeMap = keyMap(node.fields, function (field) {
-        return field.name.value;
-      });
-
-      for (var _i2 = 0, _objectValues2 = objectValues(type.getFields()); _i2 < _objectValues2.length; _i2++) {
-        var fieldDef = _objectValues2[_i2];
-        var fieldNode = fieldNodeMap[fieldDef.name];
-
-        if (!fieldNode && isRequiredInputField(fieldDef)) {
-          var typeStr = inspect(fieldDef.type);
-          context.reportError(new GraphQLError("Field \"".concat(type.name, ".").concat(fieldDef.name, "\" of required type \"").concat(typeStr, "\" was not provided."), node));
-        }
-      }
-    },
-    ObjectField: function ObjectField(node) {
-      var parentType = getNamedType(context.getParentInputType());
-      var fieldType = context.getInputType();
-
-      if (!fieldType && isInputObjectType(parentType)) {
-        var suggestions = suggestionList(node.name.value, Object.keys(parentType.getFields()));
-        context.reportError(new GraphQLError("Field \"".concat(node.name.value, "\" is not defined by type \"").concat(parentType.name, "\".") + didYouMean(suggestions), node));
-      }
-    },
-    NullValue: function NullValue(node) {
-      var type = context.getInputType();
-
-      if (isNonNullType(type)) {
-        context.reportError(new GraphQLError("Expected value of type \"".concat(inspect(type), "\", found ").concat(print(node), "."), node));
-      }
-    },
-    EnumValue: function EnumValue(node) {
-      return isValidValueNode(context, node);
-    },
-    IntValue: function IntValue(node) {
-      return isValidValueNode(context, node);
-    },
-    FloatValue: function FloatValue(node) {
-      return isValidValueNode(context, node);
-    },
-    StringValue: function StringValue(node) {
-      return isValidValueNode(context, node);
-    },
-    BooleanValue: function BooleanValue(node) {
-      return isValidValueNode(context, node);
-    }
-  };
-}
-/**
- * Any value literal may be a valid representation of a Scalar, depending on
- * that scalar type.
- */
-
-function isValidValueNode(context, node) {
-  // Report any error at the full type expected by the location.
-  var locationType = context.getInputType();
-
-  if (!locationType) {
-    return;
-  }
-
-  var type = getNamedType(locationType);
-
-  if (!isLeafType(type)) {
-    var typeStr = inspect(locationType);
-    context.reportError(new GraphQLError("Expected value of type \"".concat(typeStr, "\", found ").concat(print(node), "."), node));
-    return;
-  } // Scalars and Enums determine if a literal value is valid via parseLiteral(),
-  // which may throw or return an invalid value to indicate failure.
-
-
-  try {
-    var parseResult = type.parseLiteral(node, undefined
-    /* variables */
-    );
-
-    if (parseResult === undefined) {
-      var _typeStr = inspect(locationType);
-
-      context.reportError(new GraphQLError("Expected value of type \"".concat(_typeStr, "\", found ").concat(print(node), "."), node));
-    }
-  } catch (error) {
-    var _typeStr2 = inspect(locationType);
-
-    if (error instanceof GraphQLError) {
-      context.reportError(error);
-    } else {
-      context.reportError(new GraphQLError("Expected value of type \"".concat(_typeStr2, "\", found ").concat(print(node), "; ") + error.message, node, undefined, undefined, undefined, error));
-    }
-  }
-}
diff --git a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.d.ts b/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.d.ts
deleted file mode 100644
index c82229c..0000000
--- a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Variables are input types
- *
- * A GraphQL operation is only valid if all the variables it defines are of
- * input types (scalar, enum, or input object).
- */
-export function VariablesAreInputTypesRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js b/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js
deleted file mode 100644
index c7aaf29..0000000
--- a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.VariablesAreInputTypesRule = VariablesAreInputTypesRule;
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _printer = require("../../language/printer");
-
-var _definition = require("../../type/definition");
-
-var _typeFromAST = require("../../utilities/typeFromAST");
-
-/**
- * Variables are input types
- *
- * A GraphQL operation is only valid if all the variables it defines are of
- * input types (scalar, enum, or input object).
- */
-function VariablesAreInputTypesRule(context) {
-  return {
-    VariableDefinition: function VariableDefinition(node) {
-      var type = (0, _typeFromAST.typeFromAST)(context.getSchema(), node.type);
-
-      if (type && !(0, _definition.isInputType)(type)) {
-        var variableName = node.variable.name.value;
-        var typeName = (0, _printer.print)(node.type);
-        context.reportError(new _GraphQLError.GraphQLError("Variable \"$".concat(variableName, "\" cannot be non-input type \"").concat(typeName, "\"."), node.type));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js.flow b/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js.flow
deleted file mode 100644
index 05d7d20..0000000
--- a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.js.flow
+++ /dev/null
@@ -1,41 +0,0 @@
-// @flow strict
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { print } from '../../language/printer';
-import { type ASTVisitor } from '../../language/visitor';
-import { type VariableDefinitionNode } from '../../language/ast';
-
-import { isInputType } from '../../type/definition';
-
-import { typeFromAST } from '../../utilities/typeFromAST';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Variables are input types
- *
- * A GraphQL operation is only valid if all the variables it defines are of
- * input types (scalar, enum, or input object).
- */
-export function VariablesAreInputTypesRule(
-  context: ValidationContext,
-): ASTVisitor {
-  return {
-    VariableDefinition(node: VariableDefinitionNode): ?GraphQLError {
-      const type = typeFromAST(context.getSchema(), node.type);
-
-      if (type && !isInputType(type)) {
-        const variableName = node.variable.name.value;
-        const typeName = print(node.type);
-
-        context.reportError(
-          new GraphQLError(
-            `Variable "$${variableName}" cannot be non-input type "${typeName}".`,
-            node.type,
-          ),
-        );
-      }
-    },
-  };
-}
diff --git a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs b/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs
deleted file mode 100644
index f6e5d11..0000000
--- a/node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs
+++ /dev/null
@@ -1,24 +0,0 @@
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { print } from "../../language/printer.mjs";
-import { isInputType } from "../../type/definition.mjs";
-import { typeFromAST } from "../../utilities/typeFromAST.mjs";
-
-/**
- * Variables are input types
- *
- * A GraphQL operation is only valid if all the variables it defines are of
- * input types (scalar, enum, or input object).
- */
-export function VariablesAreInputTypesRule(context) {
-  return {
-    VariableDefinition: function VariableDefinition(node) {
-      var type = typeFromAST(context.getSchema(), node.type);
-
-      if (type && !isInputType(type)) {
-        var variableName = node.variable.name.value;
-        var typeName = print(node.type);
-        context.reportError(new GraphQLError("Variable \"$".concat(variableName, "\" cannot be non-input type \"").concat(typeName, "\"."), node.type));
-      }
-    }
-  };
-}
diff --git a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.d.ts b/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.d.ts
deleted file mode 100644
index 6ee5737..0000000
--- a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { ASTVisitor } from '../../language/visitor';
-import { ValidationContext } from '../ValidationContext';
-
-/**
- * Variables passed to field arguments conform to type
- */
-export function VariablesInAllowedPositionRule(
-  context: ValidationContext,
-): ASTVisitor;
diff --git a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js b/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js
deleted file mode 100644
index c2e8c18..0000000
--- a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.VariablesInAllowedPositionRule = VariablesInAllowedPositionRule;
-
-var _inspect = _interopRequireDefault(require("../../jsutils/inspect"));
-
-var _GraphQLError = require("../../error/GraphQLError");
-
-var _kinds = require("../../language/kinds");
-
-var _definition = require("../../type/definition");
-
-var _typeFromAST = require("../../utilities/typeFromAST");
-
-var _typeComparators = require("../../utilities/typeComparators");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Variables passed to field arguments conform to type
- */
-function VariablesInAllowedPositionRule(context) {
-  var varDefMap = Object.create(null);
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        varDefMap = Object.create(null);
-      },
-      leave: function leave(operation) {
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          var type = _ref2.type;
-          var defaultValue = _ref2.defaultValue;
-          var varName = node.name.value;
-          var varDef = varDefMap[varName];
-
-          if (varDef && type) {
-            // A var type is allowed if it is the same or more strict (e.g. is
-            // a subtype of) than the expected type. It can be more strict if
-            // the variable type is non-null when the expected type is nullable.
-            // If both are list types, the variable item type can be more strict
-            // than the expected item type (contravariant).
-            var schema = context.getSchema();
-            var varType = (0, _typeFromAST.typeFromAST)(schema, varDef.type);
-
-            if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) {
-              var varTypeStr = (0, _inspect.default)(varType);
-              var typeStr = (0, _inspect.default)(type);
-              context.reportError(new _GraphQLError.GraphQLError("Variable \"$".concat(varName, "\" of type \"").concat(varTypeStr, "\" used in position expecting type \"").concat(typeStr, "\"."), [varDef, node]));
-            }
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      varDefMap[node.variable.name.value] = node;
-    }
-  };
-}
-/**
- * Returns true if the variable is allowed in the location it was found,
- * which includes considering if default values exist for either the variable
- * or the location at which it is located.
- */
-
-
-function allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) {
-  if ((0, _definition.isNonNullType)(locationType) && !(0, _definition.isNonNullType)(varType)) {
-    var hasNonNullVariableDefaultValue = varDefaultValue != null && varDefaultValue.kind !== _kinds.Kind.NULL;
-    var hasLocationDefaultValue = locationDefaultValue !== undefined;
-
-    if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {
-      return false;
-    }
-
-    var nullableLocationType = locationType.ofType;
-    return (0, _typeComparators.isTypeSubTypeOf)(schema, varType, nullableLocationType);
-  }
-
-  return (0, _typeComparators.isTypeSubTypeOf)(schema, varType, locationType);
-}
diff --git a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js.flow b/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js.flow
deleted file mode 100644
index bba589a..0000000
--- a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.js.flow
+++ /dev/null
@@ -1,98 +0,0 @@
-// @flow strict
-
-import inspect from '../../jsutils/inspect';
-
-import { GraphQLError } from '../../error/GraphQLError';
-
-import { Kind } from '../../language/kinds';
-import { type ValueNode } from '../../language/ast';
-import { type ASTVisitor } from '../../language/visitor';
-
-import { type GraphQLSchema } from '../../type/schema';
-import { type GraphQLType, isNonNullType } from '../../type/definition';
-
-import { typeFromAST } from '../../utilities/typeFromAST';
-import { isTypeSubTypeOf } from '../../utilities/typeComparators';
-
-import { type ValidationContext } from '../ValidationContext';
-
-/**
- * Variables passed to field arguments conform to type
- */
-export function VariablesInAllowedPositionRule(
-  context: ValidationContext,
-): ASTVisitor {
-  let varDefMap = Object.create(null);
-
-  return {
-    OperationDefinition: {
-      enter() {
-        varDefMap = Object.create(null);
-      },
-      leave(operation) {
-        const usages = context.getRecursiveVariableUsages(operation);
-
-        for (const { node, type, defaultValue } of usages) {
-          const varName = node.name.value;
-          const varDef = varDefMap[varName];
-          if (varDef && type) {
-            // A var type is allowed if it is the same or more strict (e.g. is
-            // a subtype of) than the expected type. It can be more strict if
-            // the variable type is non-null when the expected type is nullable.
-            // If both are list types, the variable item type can be more strict
-            // than the expected item type (contravariant).
-            const schema = context.getSchema();
-            const varType = typeFromAST(schema, varDef.type);
-            if (
-              varType &&
-              !allowedVariableUsage(
-                schema,
-                varType,
-                varDef.defaultValue,
-                type,
-                defaultValue,
-              )
-            ) {
-              const varTypeStr = inspect(varType);
-              const typeStr = inspect(type);
-              context.reportError(
-                new GraphQLError(
-                  `Variable "$${varName}" of type "${varTypeStr}" used in position expecting type "${typeStr}".`,
-                  [varDef, node],
-                ),
-              );
-            }
-          }
-        }
-      },
-    },
-    VariableDefinition(node) {
-      varDefMap[node.variable.name.value] = node;
-    },
-  };
-}
-
-/**
- * Returns true if the variable is allowed in the location it was found,
- * which includes considering if default values exist for either the variable
- * or the location at which it is located.
- */
-function allowedVariableUsage(
-  schema: GraphQLSchema,
-  varType: GraphQLType,
-  varDefaultValue: ?ValueNode,
-  locationType: GraphQLType,
-  locationDefaultValue: ?mixed,
-): boolean {
-  if (isNonNullType(locationType) && !isNonNullType(varType)) {
-    const hasNonNullVariableDefaultValue =
-      varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;
-    const hasLocationDefaultValue = locationDefaultValue !== undefined;
-    if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {
-      return false;
-    }
-    const nullableLocationType = locationType.ofType;
-    return isTypeSubTypeOf(schema, varType, nullableLocationType);
-  }
-  return isTypeSubTypeOf(schema, varType, locationType);
-}
diff --git a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs b/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs
deleted file mode 100644
index bdddb2f..0000000
--- a/node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs
+++ /dev/null
@@ -1,72 +0,0 @@
-import inspect from "../../jsutils/inspect.mjs";
-import { GraphQLError } from "../../error/GraphQLError.mjs";
-import { Kind } from "../../language/kinds.mjs";
-import { isNonNullType } from "../../type/definition.mjs";
-import { typeFromAST } from "../../utilities/typeFromAST.mjs";
-import { isTypeSubTypeOf } from "../../utilities/typeComparators.mjs";
-
-/**
- * Variables passed to field arguments conform to type
- */
-export function VariablesInAllowedPositionRule(context) {
-  var varDefMap = Object.create(null);
-  return {
-    OperationDefinition: {
-      enter: function enter() {
-        varDefMap = Object.create(null);
-      },
-      leave: function leave(operation) {
-        var usages = context.getRecursiveVariableUsages(operation);
-
-        for (var _i2 = 0; _i2 < usages.length; _i2++) {
-          var _ref2 = usages[_i2];
-          var node = _ref2.node;
-          var type = _ref2.type;
-          var defaultValue = _ref2.defaultValue;
-          var varName = node.name.value;
-          var varDef = varDefMap[varName];
-
-          if (varDef && type) {
-            // A var type is allowed if it is the same or more strict (e.g. is
-            // a subtype of) than the expected type. It can be more strict if
-            // the variable type is non-null when the expected type is nullable.
-            // If both are list types, the variable item type can be more strict
-            // than the expected item type (contravariant).
-            var schema = context.getSchema();
-            var varType = typeFromAST(schema, varDef.type);
-
-            if (varType && !allowedVariableUsage(schema, varType, varDef.defaultValue, type, defaultValue)) {
-              var varTypeStr = inspect(varType);
-              var typeStr = inspect(type);
-              context.reportError(new GraphQLError("Variable \"$".concat(varName, "\" of type \"").concat(varTypeStr, "\" used in position expecting type \"").concat(typeStr, "\"."), [varDef, node]));
-            }
-          }
-        }
-      }
-    },
-    VariableDefinition: function VariableDefinition(node) {
-      varDefMap[node.variable.name.value] = node;
-    }
-  };
-}
-/**
- * Returns true if the variable is allowed in the location it was found,
- * which includes considering if default values exist for either the variable
- * or the location at which it is located.
- */
-
-function allowedVariableUsage(schema, varType, varDefaultValue, locationType, locationDefaultValue) {
-  if (isNonNullType(locationType) && !isNonNullType(varType)) {
-    var hasNonNullVariableDefaultValue = varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;
-    var hasLocationDefaultValue = locationDefaultValue !== undefined;
-
-    if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {
-      return false;
-    }
-
-    var nullableLocationType = locationType.ofType;
-    return isTypeSubTypeOf(schema, varType, nullableLocationType);
-  }
-
-  return isTypeSubTypeOf(schema, varType, locationType);
-}
diff --git a/node_modules/graphql/validation/specifiedRules.d.ts b/node_modules/graphql/validation/specifiedRules.d.ts
deleted file mode 100644
index ffb5570..0000000
--- a/node_modules/graphql/validation/specifiedRules.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ValidationRule, SDLValidationRule } from './ValidationContext';
-
-/**
- * This set includes all validation rules defined by the GraphQL spec.
- *
- * The order of the rules in this list has been adjusted to lead to the
- * most clear output when encountering multiple validation errors.
- */
-export const specifiedRules: ReadonlyArray<ValidationRule>;
-
-/**
- * @internal
- */
-export const specifiedSDLRules: ReadonlyArray<SDLValidationRule>;
diff --git a/node_modules/graphql/validation/specifiedRules.js b/node_modules/graphql/validation/specifiedRules.js
deleted file mode 100644
index 0f93fb3..0000000
--- a/node_modules/graphql/validation/specifiedRules.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.specifiedSDLRules = exports.specifiedRules = void 0;
-
-var _ExecutableDefinitionsRule = require("./rules/ExecutableDefinitionsRule");
-
-var _UniqueOperationNamesRule = require("./rules/UniqueOperationNamesRule");
-
-var _LoneAnonymousOperationRule = require("./rules/LoneAnonymousOperationRule");
-
-var _SingleFieldSubscriptionsRule = require("./rules/SingleFieldSubscriptionsRule");
-
-var _KnownTypeNamesRule = require("./rules/KnownTypeNamesRule");
-
-var _FragmentsOnCompositeTypesRule = require("./rules/FragmentsOnCompositeTypesRule");
-
-var _VariablesAreInputTypesRule = require("./rules/VariablesAreInputTypesRule");
-
-var _ScalarLeafsRule = require("./rules/ScalarLeafsRule");
-
-var _FieldsOnCorrectTypeRule = require("./rules/FieldsOnCorrectTypeRule");
-
-var _UniqueFragmentNamesRule = require("./rules/UniqueFragmentNamesRule");
-
-var _KnownFragmentNamesRule = require("./rules/KnownFragmentNamesRule");
-
-var _NoUnusedFragmentsRule = require("./rules/NoUnusedFragmentsRule");
-
-var _PossibleFragmentSpreadsRule = require("./rules/PossibleFragmentSpreadsRule");
-
-var _NoFragmentCyclesRule = require("./rules/NoFragmentCyclesRule");
-
-var _UniqueVariableNamesRule = require("./rules/UniqueVariableNamesRule");
-
-var _NoUndefinedVariablesRule = require("./rules/NoUndefinedVariablesRule");
-
-var _NoUnusedVariablesRule = require("./rules/NoUnusedVariablesRule");
-
-var _KnownDirectivesRule = require("./rules/KnownDirectivesRule");
-
-var _UniqueDirectivesPerLocationRule = require("./rules/UniqueDirectivesPerLocationRule");
-
-var _KnownArgumentNamesRule = require("./rules/KnownArgumentNamesRule");
-
-var _UniqueArgumentNamesRule = require("./rules/UniqueArgumentNamesRule");
-
-var _ValuesOfCorrectTypeRule = require("./rules/ValuesOfCorrectTypeRule");
-
-var _ProvidedRequiredArgumentsRule = require("./rules/ProvidedRequiredArgumentsRule");
-
-var _VariablesInAllowedPositionRule = require("./rules/VariablesInAllowedPositionRule");
-
-var _OverlappingFieldsCanBeMergedRule = require("./rules/OverlappingFieldsCanBeMergedRule");
-
-var _UniqueInputFieldNamesRule = require("./rules/UniqueInputFieldNamesRule");
-
-var _LoneSchemaDefinitionRule = require("./rules/LoneSchemaDefinitionRule");
-
-var _UniqueOperationTypesRule = require("./rules/UniqueOperationTypesRule");
-
-var _UniqueTypeNamesRule = require("./rules/UniqueTypeNamesRule");
-
-var _UniqueEnumValueNamesRule = require("./rules/UniqueEnumValueNamesRule");
-
-var _UniqueFieldDefinitionNamesRule = require("./rules/UniqueFieldDefinitionNamesRule");
-
-var _UniqueDirectiveNamesRule = require("./rules/UniqueDirectiveNamesRule");
-
-var _PossibleTypeExtensionsRule = require("./rules/PossibleTypeExtensionsRule");
-
-// Spec Section: "Executable Definitions"
-// Spec Section: "Operation Name Uniqueness"
-// Spec Section: "Lone Anonymous Operation"
-// Spec Section: "Subscriptions with Single Root Field"
-// Spec Section: "Fragment Spread Type Existence"
-// Spec Section: "Fragments on Composite Types"
-// Spec Section: "Variables are Input Types"
-// Spec Section: "Leaf Field Selections"
-// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-// Spec Section: "Fragment Name Uniqueness"
-// Spec Section: "Fragment spread target defined"
-// Spec Section: "Fragments must be used"
-// Spec Section: "Fragment spread is possible"
-// Spec Section: "Fragments must not form cycles"
-// Spec Section: "Variable Uniqueness"
-// Spec Section: "All Variable Used Defined"
-// Spec Section: "All Variables Used"
-// Spec Section: "Directives Are Defined"
-// Spec Section: "Directives Are Unique Per Location"
-// Spec Section: "Argument Names"
-// Spec Section: "Argument Uniqueness"
-// Spec Section: "Value Type Correctness"
-// Spec Section: "Argument Optionality"
-// Spec Section: "All Variable Usages Are Allowed"
-// Spec Section: "Field Selection Merging"
-// Spec Section: "Input Object Field Uniqueness"
-// SDL-specific validation rules
-
-/**
- * This set includes all validation rules defined by the GraphQL spec.
- *
- * The order of the rules in this list has been adjusted to lead to the
- * most clear output when encountering multiple validation errors.
- */
-var specifiedRules = Object.freeze([_ExecutableDefinitionsRule.ExecutableDefinitionsRule, _UniqueOperationNamesRule.UniqueOperationNamesRule, _LoneAnonymousOperationRule.LoneAnonymousOperationRule, _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule, _KnownTypeNamesRule.KnownTypeNamesRule, _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule, _VariablesAreInputTypesRule.VariablesAreInputTypesRule, _ScalarLeafsRule.ScalarLeafsRule, _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule, _UniqueFragmentNamesRule.UniqueFragmentNamesRule, _KnownFragmentNamesRule.KnownFragmentNamesRule, _NoUnusedFragmentsRule.NoUnusedFragmentsRule, _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule, _NoFragmentCyclesRule.NoFragmentCyclesRule, _UniqueVariableNamesRule.UniqueVariableNamesRule, _NoUndefinedVariablesRule.NoUndefinedVariablesRule, _NoUnusedVariablesRule.NoUnusedVariablesRule, _KnownDirectivesRule.KnownDirectivesRule, _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, _KnownArgumentNamesRule.KnownArgumentNamesRule, _UniqueArgumentNamesRule.UniqueArgumentNamesRule, _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule, _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule, _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule, _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule, _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule]);
-/**
- * @internal
- */
-
-exports.specifiedRules = specifiedRules;
-var specifiedSDLRules = Object.freeze([_LoneSchemaDefinitionRule.LoneSchemaDefinitionRule, _UniqueOperationTypesRule.UniqueOperationTypesRule, _UniqueTypeNamesRule.UniqueTypeNamesRule, _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule, _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule, _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule, _KnownTypeNamesRule.KnownTypeNamesRule, _KnownDirectivesRule.KnownDirectivesRule, _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule, _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule, _KnownArgumentNamesRule.KnownArgumentNamesOnDirectivesRule, _UniqueArgumentNamesRule.UniqueArgumentNamesRule, _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule, _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsOnDirectivesRule]);
-exports.specifiedSDLRules = specifiedSDLRules;
diff --git a/node_modules/graphql/validation/specifiedRules.js.flow b/node_modules/graphql/validation/specifiedRules.js.flow
deleted file mode 100644
index 54bbf84..0000000
--- a/node_modules/graphql/validation/specifiedRules.js.flow
+++ /dev/null
@@ -1,149 +0,0 @@
-// @flow strict
-
-// Spec Section: "Executable Definitions"
-import { ExecutableDefinitionsRule } from './rules/ExecutableDefinitionsRule';
-
-// Spec Section: "Operation Name Uniqueness"
-import { UniqueOperationNamesRule } from './rules/UniqueOperationNamesRule';
-
-// Spec Section: "Lone Anonymous Operation"
-import { LoneAnonymousOperationRule } from './rules/LoneAnonymousOperationRule';
-
-// Spec Section: "Subscriptions with Single Root Field"
-import { SingleFieldSubscriptionsRule } from './rules/SingleFieldSubscriptionsRule';
-
-// Spec Section: "Fragment Spread Type Existence"
-import { KnownTypeNamesRule } from './rules/KnownTypeNamesRule';
-
-// Spec Section: "Fragments on Composite Types"
-import { FragmentsOnCompositeTypesRule } from './rules/FragmentsOnCompositeTypesRule';
-
-// Spec Section: "Variables are Input Types"
-import { VariablesAreInputTypesRule } from './rules/VariablesAreInputTypesRule';
-
-// Spec Section: "Leaf Field Selections"
-import { ScalarLeafsRule } from './rules/ScalarLeafsRule';
-
-// Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-import { FieldsOnCorrectTypeRule } from './rules/FieldsOnCorrectTypeRule';
-
-// Spec Section: "Fragment Name Uniqueness"
-import { UniqueFragmentNamesRule } from './rules/UniqueFragmentNamesRule';
-
-// Spec Section: "Fragment spread target defined"
-import { KnownFragmentNamesRule } from './rules/KnownFragmentNamesRule';
-
-// Spec Section: "Fragments must be used"
-import { NoUnusedFragmentsRule } from './rules/NoUnusedFragmentsRule';
-
-// Spec Section: "Fragment spread is possible"
-import { PossibleFragmentSpreadsRule } from './rules/PossibleFragmentSpreadsRule';
-
-// Spec Section: "Fragments must not form cycles"
-import { NoFragmentCyclesRule } from './rules/NoFragmentCyclesRule';
-
-// Spec Section: "Variable Uniqueness"
-import { UniqueVariableNamesRule } from './rules/UniqueVariableNamesRule';
-
-// Spec Section: "All Variable Used Defined"
-import { NoUndefinedVariablesRule } from './rules/NoUndefinedVariablesRule';
-
-// Spec Section: "All Variables Used"
-import { NoUnusedVariablesRule } from './rules/NoUnusedVariablesRule';
-
-// Spec Section: "Directives Are Defined"
-import { KnownDirectivesRule } from './rules/KnownDirectivesRule';
-
-// Spec Section: "Directives Are Unique Per Location"
-import { UniqueDirectivesPerLocationRule } from './rules/UniqueDirectivesPerLocationRule';
-
-// Spec Section: "Argument Names"
-import {
-  KnownArgumentNamesRule,
-  KnownArgumentNamesOnDirectivesRule,
-} from './rules/KnownArgumentNamesRule';
-
-// Spec Section: "Argument Uniqueness"
-import { UniqueArgumentNamesRule } from './rules/UniqueArgumentNamesRule';
-
-// Spec Section: "Value Type Correctness"
-import { ValuesOfCorrectTypeRule } from './rules/ValuesOfCorrectTypeRule';
-
-// Spec Section: "Argument Optionality"
-import {
-  ProvidedRequiredArgumentsRule,
-  ProvidedRequiredArgumentsOnDirectivesRule,
-} from './rules/ProvidedRequiredArgumentsRule';
-
-// Spec Section: "All Variable Usages Are Allowed"
-import { VariablesInAllowedPositionRule } from './rules/VariablesInAllowedPositionRule';
-
-// Spec Section: "Field Selection Merging"
-import { OverlappingFieldsCanBeMergedRule } from './rules/OverlappingFieldsCanBeMergedRule';
-
-// Spec Section: "Input Object Field Uniqueness"
-import { UniqueInputFieldNamesRule } from './rules/UniqueInputFieldNamesRule';
-
-// SDL-specific validation rules
-import { LoneSchemaDefinitionRule } from './rules/LoneSchemaDefinitionRule';
-import { UniqueOperationTypesRule } from './rules/UniqueOperationTypesRule';
-import { UniqueTypeNamesRule } from './rules/UniqueTypeNamesRule';
-import { UniqueEnumValueNamesRule } from './rules/UniqueEnumValueNamesRule';
-import { UniqueFieldDefinitionNamesRule } from './rules/UniqueFieldDefinitionNamesRule';
-import { UniqueDirectiveNamesRule } from './rules/UniqueDirectiveNamesRule';
-import { PossibleTypeExtensionsRule } from './rules/PossibleTypeExtensionsRule';
-
-/**
- * This set includes all validation rules defined by the GraphQL spec.
- *
- * The order of the rules in this list has been adjusted to lead to the
- * most clear output when encountering multiple validation errors.
- */
-export const specifiedRules = Object.freeze([
-  ExecutableDefinitionsRule,
-  UniqueOperationNamesRule,
-  LoneAnonymousOperationRule,
-  SingleFieldSubscriptionsRule,
-  KnownTypeNamesRule,
-  FragmentsOnCompositeTypesRule,
-  VariablesAreInputTypesRule,
-  ScalarLeafsRule,
-  FieldsOnCorrectTypeRule,
-  UniqueFragmentNamesRule,
-  KnownFragmentNamesRule,
-  NoUnusedFragmentsRule,
-  PossibleFragmentSpreadsRule,
-  NoFragmentCyclesRule,
-  UniqueVariableNamesRule,
-  NoUndefinedVariablesRule,
-  NoUnusedVariablesRule,
-  KnownDirectivesRule,
-  UniqueDirectivesPerLocationRule,
-  KnownArgumentNamesRule,
-  UniqueArgumentNamesRule,
-  ValuesOfCorrectTypeRule,
-  ProvidedRequiredArgumentsRule,
-  VariablesInAllowedPositionRule,
-  OverlappingFieldsCanBeMergedRule,
-  UniqueInputFieldNamesRule,
-]);
-
-/**
- * @internal
- */
-export const specifiedSDLRules = Object.freeze([
-  LoneSchemaDefinitionRule,
-  UniqueOperationTypesRule,
-  UniqueTypeNamesRule,
-  UniqueEnumValueNamesRule,
-  UniqueFieldDefinitionNamesRule,
-  UniqueDirectiveNamesRule,
-  KnownTypeNamesRule,
-  KnownDirectivesRule,
-  UniqueDirectivesPerLocationRule,
-  PossibleTypeExtensionsRule,
-  KnownArgumentNamesOnDirectivesRule,
-  UniqueArgumentNamesRule,
-  UniqueInputFieldNamesRule,
-  ProvidedRequiredArgumentsOnDirectivesRule,
-]);
diff --git a/node_modules/graphql/validation/specifiedRules.mjs b/node_modules/graphql/validation/specifiedRules.mjs
deleted file mode 100644
index 97f4664..0000000
--- a/node_modules/graphql/validation/specifiedRules.mjs
+++ /dev/null
@@ -1,73 +0,0 @@
-// Spec Section: "Executable Definitions"
-import { ExecutableDefinitionsRule } from "./rules/ExecutableDefinitionsRule.mjs"; // Spec Section: "Operation Name Uniqueness"
-
-import { UniqueOperationNamesRule } from "./rules/UniqueOperationNamesRule.mjs"; // Spec Section: "Lone Anonymous Operation"
-
-import { LoneAnonymousOperationRule } from "./rules/LoneAnonymousOperationRule.mjs"; // Spec Section: "Subscriptions with Single Root Field"
-
-import { SingleFieldSubscriptionsRule } from "./rules/SingleFieldSubscriptionsRule.mjs"; // Spec Section: "Fragment Spread Type Existence"
-
-import { KnownTypeNamesRule } from "./rules/KnownTypeNamesRule.mjs"; // Spec Section: "Fragments on Composite Types"
-
-import { FragmentsOnCompositeTypesRule } from "./rules/FragmentsOnCompositeTypesRule.mjs"; // Spec Section: "Variables are Input Types"
-
-import { VariablesAreInputTypesRule } from "./rules/VariablesAreInputTypesRule.mjs"; // Spec Section: "Leaf Field Selections"
-
-import { ScalarLeafsRule } from "./rules/ScalarLeafsRule.mjs"; // Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
-
-import { FieldsOnCorrectTypeRule } from "./rules/FieldsOnCorrectTypeRule.mjs"; // Spec Section: "Fragment Name Uniqueness"
-
-import { UniqueFragmentNamesRule } from "./rules/UniqueFragmentNamesRule.mjs"; // Spec Section: "Fragment spread target defined"
-
-import { KnownFragmentNamesRule } from "./rules/KnownFragmentNamesRule.mjs"; // Spec Section: "Fragments must be used"
-
-import { NoUnusedFragmentsRule } from "./rules/NoUnusedFragmentsRule.mjs"; // Spec Section: "Fragment spread is possible"
-
-import { PossibleFragmentSpreadsRule } from "./rules/PossibleFragmentSpreadsRule.mjs"; // Spec Section: "Fragments must not form cycles"
-
-import { NoFragmentCyclesRule } from "./rules/NoFragmentCyclesRule.mjs"; // Spec Section: "Variable Uniqueness"
-
-import { UniqueVariableNamesRule } from "./rules/UniqueVariableNamesRule.mjs"; // Spec Section: "All Variable Used Defined"
-
-import { NoUndefinedVariablesRule } from "./rules/NoUndefinedVariablesRule.mjs"; // Spec Section: "All Variables Used"
-
-import { NoUnusedVariablesRule } from "./rules/NoUnusedVariablesRule.mjs"; // Spec Section: "Directives Are Defined"
-
-import { KnownDirectivesRule } from "./rules/KnownDirectivesRule.mjs"; // Spec Section: "Directives Are Unique Per Location"
-
-import { UniqueDirectivesPerLocationRule } from "./rules/UniqueDirectivesPerLocationRule.mjs"; // Spec Section: "Argument Names"
-
-import { KnownArgumentNamesRule, KnownArgumentNamesOnDirectivesRule } from "./rules/KnownArgumentNamesRule.mjs"; // Spec Section: "Argument Uniqueness"
-
-import { UniqueArgumentNamesRule } from "./rules/UniqueArgumentNamesRule.mjs"; // Spec Section: "Value Type Correctness"
-
-import { ValuesOfCorrectTypeRule } from "./rules/ValuesOfCorrectTypeRule.mjs"; // Spec Section: "Argument Optionality"
-
-import { ProvidedRequiredArgumentsRule, ProvidedRequiredArgumentsOnDirectivesRule } from "./rules/ProvidedRequiredArgumentsRule.mjs"; // Spec Section: "All Variable Usages Are Allowed"
-
-import { VariablesInAllowedPositionRule } from "./rules/VariablesInAllowedPositionRule.mjs"; // Spec Section: "Field Selection Merging"
-
-import { OverlappingFieldsCanBeMergedRule } from "./rules/OverlappingFieldsCanBeMergedRule.mjs"; // Spec Section: "Input Object Field Uniqueness"
-
-import { UniqueInputFieldNamesRule } from "./rules/UniqueInputFieldNamesRule.mjs"; // SDL-specific validation rules
-
-import { LoneSchemaDefinitionRule } from "./rules/LoneSchemaDefinitionRule.mjs";
-import { UniqueOperationTypesRule } from "./rules/UniqueOperationTypesRule.mjs";
-import { UniqueTypeNamesRule } from "./rules/UniqueTypeNamesRule.mjs";
-import { UniqueEnumValueNamesRule } from "./rules/UniqueEnumValueNamesRule.mjs";
-import { UniqueFieldDefinitionNamesRule } from "./rules/UniqueFieldDefinitionNamesRule.mjs";
-import { UniqueDirectiveNamesRule } from "./rules/UniqueDirectiveNamesRule.mjs";
-import { PossibleTypeExtensionsRule } from "./rules/PossibleTypeExtensionsRule.mjs";
-/**
- * This set includes all validation rules defined by the GraphQL spec.
- *
- * The order of the rules in this list has been adjusted to lead to the
- * most clear output when encountering multiple validation errors.
- */
-
-export var specifiedRules = Object.freeze([ExecutableDefinitionsRule, UniqueOperationNamesRule, LoneAnonymousOperationRule, SingleFieldSubscriptionsRule, KnownTypeNamesRule, FragmentsOnCompositeTypesRule, VariablesAreInputTypesRule, ScalarLeafsRule, FieldsOnCorrectTypeRule, UniqueFragmentNamesRule, KnownFragmentNamesRule, NoUnusedFragmentsRule, PossibleFragmentSpreadsRule, NoFragmentCyclesRule, UniqueVariableNamesRule, NoUndefinedVariablesRule, NoUnusedVariablesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, KnownArgumentNamesRule, UniqueArgumentNamesRule, ValuesOfCorrectTypeRule, ProvidedRequiredArgumentsRule, VariablesInAllowedPositionRule, OverlappingFieldsCanBeMergedRule, UniqueInputFieldNamesRule]);
-/**
- * @internal
- */
-
-export var specifiedSDLRules = Object.freeze([LoneSchemaDefinitionRule, UniqueOperationTypesRule, UniqueTypeNamesRule, UniqueEnumValueNamesRule, UniqueFieldDefinitionNamesRule, UniqueDirectiveNamesRule, KnownTypeNamesRule, KnownDirectivesRule, UniqueDirectivesPerLocationRule, PossibleTypeExtensionsRule, KnownArgumentNamesOnDirectivesRule, UniqueArgumentNamesRule, UniqueInputFieldNamesRule, ProvidedRequiredArgumentsOnDirectivesRule]);
diff --git a/node_modules/graphql/validation/validate.d.ts b/node_modules/graphql/validation/validate.d.ts
deleted file mode 100644
index 9230c52..0000000
--- a/node_modules/graphql/validation/validate.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import Maybe from '../tsutils/Maybe';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { DocumentNode } from '../language/ast';
-
-import { GraphQLSchema } from '../type/schema';
-
-import { TypeInfo } from '../utilities/TypeInfo';
-
-import { ValidationRule, SDLValidationRule } from './ValidationContext';
-
-/**
- * Implements the "Validation" section of the spec.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the document is valid.
- *
- * A list of specific validation rules may be provided. If not provided, the
- * default list of rules defined by the GraphQL specification will be used.
- *
- * Each validation rules is a function which returns a visitor
- * (see the language/visitor API). Visitor methods are expected to return
- * GraphQLErrors, or Arrays of GraphQLErrors when invalid.
- *
- * Optionally a custom TypeInfo instance may be provided. If not provided, one
- * will be created from the provided schema.
- */
-export function validate(
-  schema: GraphQLSchema,
-  documentAST: DocumentNode,
-  rules?: ReadonlyArray<ValidationRule>,
-  typeInfo?: TypeInfo,
-  options?: { maxErrors?: number },
-): ReadonlyArray<GraphQLError>;
-
-/**
- * @internal
- */
-export function validateSDL(
-  documentAST: DocumentNode,
-  schemaToExtend?: Maybe<GraphQLSchema>,
-  rules?: ReadonlyArray<SDLValidationRule>,
-): Array<GraphQLError>;
-
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-export function assertValidSDL(documentAST: DocumentNode): undefined;
-
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-export function assertValidSDLExtension(
-  documentAST: DocumentNode,
-  schema: GraphQLSchema,
-): undefined;
diff --git a/node_modules/graphql/validation/validate.js b/node_modules/graphql/validation/validate.js
deleted file mode 100644
index 0a207e4..0000000
--- a/node_modules/graphql/validation/validate.js
+++ /dev/null
@@ -1,128 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.validate = validate;
-exports.validateSDL = validateSDL;
-exports.assertValidSDL = assertValidSDL;
-exports.assertValidSDLExtension = assertValidSDLExtension;
-
-var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
-
-var _GraphQLError = require("../error/GraphQLError");
-
-var _visitor = require("../language/visitor");
-
-var _validate = require("../type/validate");
-
-var _TypeInfo = require("../utilities/TypeInfo");
-
-var _specifiedRules = require("./specifiedRules");
-
-var _ValidationContext = require("./ValidationContext");
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Implements the "Validation" section of the spec.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the document is valid.
- *
- * A list of specific validation rules may be provided. If not provided, the
- * default list of rules defined by the GraphQL specification will be used.
- *
- * Each validation rules is a function which returns a visitor
- * (see the language/visitor API). Visitor methods are expected to return
- * GraphQLErrors, or Arrays of GraphQLErrors when invalid.
- *
- * Optionally a custom TypeInfo instance may be provided. If not provided, one
- * will be created from the provided schema.
- */
-function validate(schema, documentAST) {
-  var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _specifiedRules.specifiedRules;
-  var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new _TypeInfo.TypeInfo(schema);
-  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
-    maxErrors: undefined
-  };
-  documentAST || (0, _devAssert.default)(0, 'Must provide document.'); // If the schema used for validation is invalid, throw an error.
-
-  (0, _validate.assertValidSchema)(schema);
-  var abortObj = Object.freeze({});
-  var errors = [];
-  var context = new _ValidationContext.ValidationContext(schema, documentAST, typeInfo, function (error) {
-    if (options.maxErrors != null && errors.length >= options.maxErrors) {
-      errors.push(new _GraphQLError.GraphQLError('Too many validation errors, error limit reached. Validation aborted.'));
-      throw abortObj;
-    }
-
-    errors.push(error);
-  }); // This uses a specialized visitor which runs multiple visitors in parallel,
-  // while maintaining the visitor skip and break API.
-
-  var visitor = (0, _visitor.visitInParallel)(rules.map(function (rule) {
-    return rule(context);
-  })); // Visit the whole document with each instance of all provided rules.
-
-  try {
-    (0, _visitor.visit)(documentAST, (0, _TypeInfo.visitWithTypeInfo)(typeInfo, visitor));
-  } catch (e) {
-    if (e !== abortObj) {
-      throw e;
-    }
-  }
-
-  return errors;
-}
-/**
- * @internal
- */
-
-
-function validateSDL(documentAST, schemaToExtend) {
-  var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _specifiedRules.specifiedSDLRules;
-  var errors = [];
-  var context = new _ValidationContext.SDLValidationContext(documentAST, schemaToExtend, function (error) {
-    errors.push(error);
-  });
-  var visitors = rules.map(function (rule) {
-    return rule(context);
-  });
-  (0, _visitor.visit)(documentAST, (0, _visitor.visitInParallel)(visitors));
-  return errors;
-}
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-
-
-function assertValidSDL(documentAST) {
-  var errors = validateSDL(documentAST);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-
-
-function assertValidSDLExtension(documentAST, schema) {
-  var errors = validateSDL(documentAST, schema);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
diff --git a/node_modules/graphql/validation/validate.js.flow b/node_modules/graphql/validation/validate.js.flow
deleted file mode 100644
index 63361e9..0000000
--- a/node_modules/graphql/validation/validate.js.flow
+++ /dev/null
@@ -1,133 +0,0 @@
-// @flow strict
-
-import devAssert from '../jsutils/devAssert';
-
-import { GraphQLError } from '../error/GraphQLError';
-
-import { type DocumentNode } from '../language/ast';
-import { visit, visitInParallel } from '../language/visitor';
-
-import { type GraphQLSchema } from '../type/schema';
-import { assertValidSchema } from '../type/validate';
-
-import { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo';
-
-import { specifiedRules, specifiedSDLRules } from './specifiedRules';
-import {
-  type SDLValidationRule,
-  type ValidationRule,
-  SDLValidationContext,
-  ValidationContext,
-} from './ValidationContext';
-
-/**
- * Implements the "Validation" section of the spec.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the document is valid.
- *
- * A list of specific validation rules may be provided. If not provided, the
- * default list of rules defined by the GraphQL specification will be used.
- *
- * Each validation rules is a function which returns a visitor
- * (see the language/visitor API). Visitor methods are expected to return
- * GraphQLErrors, or Arrays of GraphQLErrors when invalid.
- *
- * Optionally a custom TypeInfo instance may be provided. If not provided, one
- * will be created from the provided schema.
- */
-export function validate(
-  schema: GraphQLSchema,
-  documentAST: DocumentNode,
-  rules?: $ReadOnlyArray<ValidationRule> = specifiedRules,
-  typeInfo?: TypeInfo = new TypeInfo(schema),
-  options?: {| maxErrors?: number |} = { maxErrors: undefined },
-): $ReadOnlyArray<GraphQLError> {
-  devAssert(documentAST, 'Must provide document.');
-  // If the schema used for validation is invalid, throw an error.
-  assertValidSchema(schema);
-
-  const abortObj = Object.freeze({});
-  const errors = [];
-  const context = new ValidationContext(
-    schema,
-    documentAST,
-    typeInfo,
-    error => {
-      if (options.maxErrors != null && errors.length >= options.maxErrors) {
-        errors.push(
-          new GraphQLError(
-            'Too many validation errors, error limit reached. Validation aborted.',
-          ),
-        );
-        throw abortObj;
-      }
-      errors.push(error);
-    },
-  );
-
-  // This uses a specialized visitor which runs multiple visitors in parallel,
-  // while maintaining the visitor skip and break API.
-  const visitor = visitInParallel(rules.map(rule => rule(context)));
-
-  // Visit the whole document with each instance of all provided rules.
-  try {
-    visit(documentAST, visitWithTypeInfo(typeInfo, visitor));
-  } catch (e) {
-    if (e !== abortObj) {
-      throw e;
-    }
-  }
-  return errors;
-}
-
-/**
- * @internal
- */
-export function validateSDL(
-  documentAST: DocumentNode,
-  schemaToExtend?: ?GraphQLSchema,
-  rules?: $ReadOnlyArray<SDLValidationRule> = specifiedSDLRules,
-): $ReadOnlyArray<GraphQLError> {
-  const errors = [];
-  const context = new SDLValidationContext(
-    documentAST,
-    schemaToExtend,
-    error => {
-      errors.push(error);
-    },
-  );
-
-  const visitors = rules.map(rule => rule(context));
-  visit(documentAST, visitInParallel(visitors));
-  return errors;
-}
-
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-export function assertValidSDL(documentAST: DocumentNode): void {
-  const errors = validateSDL(documentAST);
-  if (errors.length !== 0) {
-    throw new Error(errors.map(error => error.message).join('\n\n'));
-  }
-}
-
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-export function assertValidSDLExtension(
-  documentAST: DocumentNode,
-  schema: GraphQLSchema,
-): void {
-  const errors = validateSDL(documentAST, schema);
-  if (errors.length !== 0) {
-    throw new Error(errors.map(error => error.message).join('\n\n'));
-  }
-}
diff --git a/node_modules/graphql/validation/validate.mjs b/node_modules/graphql/validation/validate.mjs
deleted file mode 100644
index 2ae71e7..0000000
--- a/node_modules/graphql/validation/validate.mjs
+++ /dev/null
@@ -1,107 +0,0 @@
-import devAssert from "../jsutils/devAssert.mjs";
-import { GraphQLError } from "../error/GraphQLError.mjs";
-import { visit, visitInParallel } from "../language/visitor.mjs";
-import { assertValidSchema } from "../type/validate.mjs";
-import { TypeInfo, visitWithTypeInfo } from "../utilities/TypeInfo.mjs";
-import { specifiedRules, specifiedSDLRules } from "./specifiedRules.mjs";
-import { SDLValidationContext, ValidationContext } from "./ValidationContext.mjs";
-/**
- * Implements the "Validation" section of the spec.
- *
- * Validation runs synchronously, returning an array of encountered errors, or
- * an empty array if no errors were encountered and the document is valid.
- *
- * A list of specific validation rules may be provided. If not provided, the
- * default list of rules defined by the GraphQL specification will be used.
- *
- * Each validation rules is a function which returns a visitor
- * (see the language/visitor API). Visitor methods are expected to return
- * GraphQLErrors, or Arrays of GraphQLErrors when invalid.
- *
- * Optionally a custom TypeInfo instance may be provided. If not provided, one
- * will be created from the provided schema.
- */
-
-export function validate(schema, documentAST) {
-  var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedRules;
-  var typeInfo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new TypeInfo(schema);
-  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
-    maxErrors: undefined
-  };
-  documentAST || devAssert(0, 'Must provide document.'); // If the schema used for validation is invalid, throw an error.
-
-  assertValidSchema(schema);
-  var abortObj = Object.freeze({});
-  var errors = [];
-  var context = new ValidationContext(schema, documentAST, typeInfo, function (error) {
-    if (options.maxErrors != null && errors.length >= options.maxErrors) {
-      errors.push(new GraphQLError('Too many validation errors, error limit reached. Validation aborted.'));
-      throw abortObj;
-    }
-
-    errors.push(error);
-  }); // This uses a specialized visitor which runs multiple visitors in parallel,
-  // while maintaining the visitor skip and break API.
-
-  var visitor = visitInParallel(rules.map(function (rule) {
-    return rule(context);
-  })); // Visit the whole document with each instance of all provided rules.
-
-  try {
-    visit(documentAST, visitWithTypeInfo(typeInfo, visitor));
-  } catch (e) {
-    if (e !== abortObj) {
-      throw e;
-    }
-  }
-
-  return errors;
-}
-/**
- * @internal
- */
-
-export function validateSDL(documentAST, schemaToExtend) {
-  var rules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : specifiedSDLRules;
-  var errors = [];
-  var context = new SDLValidationContext(documentAST, schemaToExtend, function (error) {
-    errors.push(error);
-  });
-  var visitors = rules.map(function (rule) {
-    return rule(context);
-  });
-  visit(documentAST, visitInParallel(visitors));
-  return errors;
-}
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-
-export function assertValidSDL(documentAST) {
-  var errors = validateSDL(documentAST);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
-/**
- * Utility function which asserts a SDL document is valid by throwing an error
- * if it is invalid.
- *
- * @internal
- */
-
-export function assertValidSDLExtension(documentAST, schema) {
-  var errors = validateSDL(documentAST, schema);
-
-  if (errors.length !== 0) {
-    throw new Error(errors.map(function (error) {
-      return error.message;
-    }).join('\n\n'));
-  }
-}
diff --git a/node_modules/graphql/version.d.ts b/node_modules/graphql/version.d.ts
deleted file mode 100644
index 765329b..0000000
--- a/node_modules/graphql/version.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * A string containing the version of the GraphQL.js library
- */
-export const version: string;
-
-/**
- * An object containing the components of the GraphQL.js version string
- */
-export const versionInfo: {
-  major: number;
-  minor: number;
-  patch: number;
-  preReleaseTag: number | null;
-};
diff --git a/node_modules/graphql/version.js b/node_modules/graphql/version.js
deleted file mode 100644
index 0770687..0000000
--- a/node_modules/graphql/version.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.versionInfo = exports.version = void 0;
-
-/**
- * Note: This file is autogenerated using "resources/gen-version.js" script and
- * automatically updated by "yarn version" command.
- */
-
-/**
- * A string containing the version of the GraphQL.js library
- */
-var version = '15.0.0-rc.2';
-/**
- * An object containing the components of the GraphQL.js version string
- */
-
-exports.version = version;
-var versionInfo = Object.freeze({
-  major: 15,
-  minor: 0,
-  patch: 0,
-  preReleaseTag: 'rc.2'
-});
-exports.versionInfo = versionInfo;
diff --git a/node_modules/graphql/version.js.flow b/node_modules/graphql/version.js.flow
deleted file mode 100644
index fa19a5f..0000000
--- a/node_modules/graphql/version.js.flow
+++ /dev/null
@@ -1,21 +0,0 @@
-// @flow strict
-
-/**
- * Note: This file is autogenerated using "resources/gen-version.js" script and
- * automatically updated by "yarn version" command.
- */
-
-/**
- * A string containing the version of the GraphQL.js library
- */
-export const version = '15.0.0-rc.2';
-
-/**
- * An object containing the components of the GraphQL.js version string
- */
-export const versionInfo = Object.freeze({
-  major: 15,
-  minor: 0,
-  patch: 0,
-  preReleaseTag: 'rc.2',
-});
diff --git a/node_modules/graphql/version.mjs b/node_modules/graphql/version.mjs
deleted file mode 100644
index a7998c6..0000000
--- a/node_modules/graphql/version.mjs
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Note: This file is autogenerated using "resources/gen-version.js" script and
- * automatically updated by "yarn version" command.
- */
-
-/**
- * A string containing the version of the GraphQL.js library
- */
-export var version = '15.0.0-rc.2';
-/**
- * An object containing the components of the GraphQL.js version string
- */
-
-export var versionInfo = Object.freeze({
-  major: 15,
-  minor: 0,
-  patch: 0,
-  preReleaseTag: 'rc.2'
-});
diff --git a/node_modules/import-fresh/node_modules/resolve-from/index.js b/node_modules/import-fresh/node_modules/resolve-from/index.js
new file mode 100644
index 0000000..d092447
--- /dev/null
+++ b/node_modules/import-fresh/node_modules/resolve-from/index.js
@@ -0,0 +1,47 @@
+'use strict';
+const path = require('path');
+const Module = require('module');
+const fs = require('fs');
+
+const resolveFrom = (fromDir, moduleId, silent) => {
+	if (typeof fromDir !== 'string') {
+		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
+	}
+
+	if (typeof moduleId !== 'string') {
+		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
+	}
+
+	try {
+		fromDir = fs.realpathSync(fromDir);
+	} catch (err) {
+		if (err.code === 'ENOENT') {
+			fromDir = path.resolve(fromDir);
+		} else if (silent) {
+			return null;
+		} else {
+			throw err;
+		}
+	}
+
+	const fromFile = path.join(fromDir, 'noop.js');
+
+	const resolveFileName = () => Module._resolveFilename(moduleId, {
+		id: fromFile,
+		filename: fromFile,
+		paths: Module._nodeModulePaths(fromDir)
+	});
+
+	if (silent) {
+		try {
+			return resolveFileName();
+		} catch (err) {
+			return null;
+		}
+	}
+
+	return resolveFileName();
+};
+
+module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
+module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
diff --git a/node_modules/resolve-cwd/node_modules/resolve-from/license b/node_modules/import-fresh/node_modules/resolve-from/license
similarity index 100%
rename from node_modules/resolve-cwd/node_modules/resolve-from/license
rename to node_modules/import-fresh/node_modules/resolve-from/license
diff --git a/node_modules/import-fresh/node_modules/resolve-from/package.json b/node_modules/import-fresh/node_modules/resolve-from/package.json
new file mode 100644
index 0000000..96bade5
--- /dev/null
+++ b/node_modules/import-fresh/node_modules/resolve-from/package.json
@@ -0,0 +1,34 @@
+{
+	"name": "resolve-from",
+	"version": "4.0.0",
+	"description": "Resolve the path of a module like `require.resolve()` but from a given path",
+	"license": "MIT",
+	"repository": "sindresorhus/resolve-from",
+	"author": {
+		"name": "Sindre Sorhus",
+		"email": "sindresorhus@gmail.com",
+		"url": "sindresorhus.com"
+	},
+	"engines": {
+		"node": ">=4"
+	},
+	"scripts": {
+		"test": "xo && ava"
+	},
+	"files": [
+		"index.js"
+	],
+	"keywords": [
+		"require",
+		"resolve",
+		"path",
+		"module",
+		"from",
+		"like",
+		"import"
+	],
+	"devDependencies": {
+		"ava": "*",
+		"xo": "*"
+	}
+}
diff --git a/node_modules/import-fresh/node_modules/resolve-from/readme.md b/node_modules/import-fresh/node_modules/resolve-from/readme.md
new file mode 100644
index 0000000..e539f85
--- /dev/null
+++ b/node_modules/import-fresh/node_modules/resolve-from/readme.md
@@ -0,0 +1,72 @@
+# resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from)
+
+> Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path
+
+
+## Install
+
+```
+$ npm install resolve-from
+```
+
+
+## Usage
+
+```js
+const resolveFrom = require('resolve-from');
+
+// There is a file at `./foo/bar.js`
+
+resolveFrom('foo', './bar');
+//=> '/Users/sindresorhus/dev/test/foo/bar.js'
+```
+
+
+## API
+
+### resolveFrom(fromDir, moduleId)
+
+Like `require()`, throws when the module can't be found.
+
+### resolveFrom.silent(fromDir, moduleId)
+
+Returns `null` instead of throwing when the module can't be found.
+
+#### fromDir
+
+Type: `string`
+
+Directory to resolve from.
+
+#### moduleId
+
+Type: `string`
+
+What you would use in `require()`.
+
+
+## Tip
+
+Create a partial using a bound function if you want to resolve from the same `fromDir` multiple times:
+
+```js
+const resolveFromFoo = resolveFrom.bind(null, 'foo');
+
+resolveFromFoo('./bar');
+resolveFromFoo('./baz');
+```
+
+
+## Related
+
+- [resolve-cwd](https://github.com/sindresorhus/resolve-cwd) - Resolve the path of a module from the current working directory
+- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path
+- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory
+- [resolve-pkg](https://github.com/sindresorhus/resolve-pkg) - Resolve the path of a package regardless of it having an entry point
+- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily
+- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/inquirer/LICENSE b/node_modules/inquirer/LICENSE
deleted file mode 100644
index 8aae090..0000000
--- a/node_modules/inquirer/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012 Simon Boudrias
-
-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/node_modules/inquirer/README.md b/node_modules/inquirer/README.md
deleted file mode 100644
index 7fa5119..0000000
--- a/node_modules/inquirer/README.md
+++ /dev/null
@@ -1,476 +0,0 @@
-<img width="75px" height="75px" align="right" alt="Inquirer Logo" src="https://raw.githubusercontent.com/SBoudrias/Inquirer.js/master/assets/inquirer_readme.svg?sanitize=true" title="Inquirer.js"/>
-
-# Inquirer.js
-
-[![npm](https://badge.fury.io/js/inquirer.svg)](http://badge.fury.io/js/inquirer)
-[![tests](https://travis-ci.org/SBoudrias/Inquirer.js.svg?branch=master)](http://travis-ci.org/SBoudrias/Inquirer.js)
-[![Coverage Status](https://codecov.io/gh/SBoudrias/Inquirer.js/branch/master/graph/badge.svg)](https://codecov.io/gh/SBoudrias/Inquirer.js)
-[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FSBoudrias%2FInquirer.js.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FSBoudrias%2FInquirer.js?ref=badge_shield)
-
-A collection of common interactive command line user interfaces.
-
-## Table of Contents
-
-1.  [Documentation](#documentation)
-    1.  [Installation](#installation)
-    2.  [Examples](#examples)
-    3.  [Methods](#methods)
-    4.  [Objects](#objects)
-    5.  [Questions](#questions)
-    6.  [Answers](#answers)
-    7.  [Separator](#separator)
-    8.  [Prompt Types](#prompt)
-2.  [User Interfaces and Layouts](#layouts)
-    1.  [Reactive Interface](#reactive)
-3.  [Support](#support)
-4.  [Known issues](#issues)
-4.  [News](#news)
-5.  [Contributing](#contributing)
-6.  [License](#license)
-7.  [Plugins](#plugins)
-
-## Goal and Philosophy
-
-**`Inquirer.js`** strives to be an easily embeddable and beautiful command line interface for [Node.js](https://nodejs.org/) (and perhaps the "CLI [Xanadu](https://en.wikipedia.org/wiki/Citizen_Kane)").
-
-**`Inquirer.js`** should ease the process of
-
-- providing _error feedback_
-- _asking questions_
-- _parsing_ input
-- _validating_ answers
-- managing _hierarchical prompts_
-
-> **Note:** **`Inquirer.js`** provides the user interface and the inquiry session flow. If you're searching for a full blown command line program utility, then check out [commander](https://github.com/visionmedia/commander.js), [vorpal](https://github.com/dthree/vorpal) or [args](https://github.com/leo/args).
-
-## [Documentation](#documentation)
-
-<a name="documentation"></a>
-
-### Installation
-
-<a name="installation"></a>
-
-```shell
-npm install inquirer
-```
-
-```javascript
-var inquirer = require('inquirer');
-inquirer
-  .prompt([
-    /* Pass your questions in here */
-  ])
-  .then(answers => {
-    // Use user feedback for... whatever!!
-  })
-  .catch(error => {
-    if(error.isTtyError) {
-      // Prompt couldn't be rendered in the current environment
-    } else {
-      // Something else when wrong
-    }
-  });
-```
-
-<a name="examples"></a>
-
-### Examples (Run it and see it)
-
-Check out the [`packages/inquirer/examples/`](https://github.com/SBoudrias/Inquirer.js/tree/master/packages/inquirer/examples) folder for code and interface examples.
-
-```shell
-node packages/inquirer/examples/pizza.js
-node packages/inquirer/examples/checkbox.js
-# etc...
-```
-
-### Methods
-
-<a name="methods"></a>
-
-#### `inquirer.prompt(questions) -> promise`
-
-Launch the prompt interface (inquiry session)
-
-- **questions** (Array) containing [Question Object](#question) (using the [reactive interface](#reactive-interface), you can also pass a `Rx.Observable` instance)
-- returns a **Promise**
-
-#### `inquirer.registerPrompt(name, prompt)`
-
-Register prompt plugins under `name`.
-
-- **name** (string) name of the this new prompt. (used for question `type`)
-- **prompt** (object) the prompt object itself (the plugin)
-
-#### `inquirer.createPromptModule() -> prompt function`
-
-Create a self contained inquirer module. If you don't want to affect other libraries that also rely on inquirer when you overwrite or add new prompt types.
-
-```js
-var prompt = inquirer.createPromptModule();
-
-prompt(questions).then(/* ... */);
-```
-
-### Objects
-
-<a name="objects"></a>
-
-#### Question
-
-<a name="questions"></a>
-A question object is a `hash` containing question related values:
-
-- **type**: (String) Type of the prompt. Defaults: `input` - Possible values: `input`, `number`, `confirm`,
-  `list`, `rawlist`, `expand`, `checkbox`, `password`, `editor`
-- **name**: (String) The name to use when storing the answer in the answers hash. If the name contains periods, it will define a path in the answers hash.
-- **message**: (String|Function) The question to print. If defined as a function, the first parameter will be the current inquirer session answers. Defaults to the value of `name` (followed by a colon).
-- **default**: (String|Number|Boolean|Array|Function) Default value(s) to use if nothing is entered, or a function that returns the default value(s). If defined as a function, the first parameter will be the current inquirer session answers.
-- **choices**: (Array|Function) Choices array or a function returning a choices array. If defined as a function, the first parameter will be the current inquirer session answers.
-  Array values can be simple `numbers`, `strings`, or `objects` containing a `name` (to display in list), a `value` (to save in the answers hash) and a `short` (to display after selection) properties. The choices array can also contain [a `Separator`](#separator).
-- **validate**: (Function) Receive the user input and answers hash. Should return `true` if the value is valid, and an error message (`String`) otherwise. If `false` is returned, a default error message is provided.
-- **filter**: (Function) Receive the user input and return the filtered value to be used inside the program. The value returned will be added to the _Answers_ hash.
-- **transformer**: (Function) Receive the user input, answers hash and option flags, and return a transformed value to display to the user. The transformation only impacts what is shown while editing. It does not modify the answers hash.
-- **when**: (Function, Boolean) Receive the current user answers hash and should return `true` or `false` depending on whether or not this question should be asked. The value can also be a simple boolean.
-- **pageSize**: (Number) Change the number of lines that will be rendered when using `list`, `rawList`, `expand` or `checkbox`.
-- **prefix**: (String) Change the default _prefix_ message.
-- **suffix**: (String) Change the default _suffix_ message.
-- **askAnswered**: (Boolean) Force to prompt the question if the answer already exists.
-
-`default`, `choices`(if defined as functions), `validate`, `filter` and `when` functions can be called asynchronously. Either return a promise or use `this.async()` to get a callback you'll call with the final value.
-
-```javascript
-{
-  /* Preferred way: with promise */
-  filter() {
-    return new Promise(/* etc... */);
-  },
-
-  /* Legacy way: with this.async */
-  validate: function (input) {
-    // Declare function as asynchronous, and save the done callback
-    var done = this.async();
-
-    // Do async stuff
-    setTimeout(function() {
-      if (typeof input !== 'number') {
-        // Pass the return value in the done callback
-        done('You need to provide a number');
-        return;
-      }
-      // Pass the return value in the done callback
-      done(null, true);
-    }, 3000);
-  }
-}
-```
-
-### Answers
-
-<a name="answers"></a>
-A key/value hash containing the client answers in each prompt.
-
-- **Key** The `name` property of the _question_ object
-- **Value** (Depends on the prompt)
-  - `confirm`: (Boolean)
-  - `input` : User input (filtered if `filter` is defined) (String)
-  - `number`: User input (filtered if `filter` is defined) (Number)
-  - `rawlist`, `list` : Selected choice value (or name if no value specified) (String)
-
-### Separator
-
-<a name="separator"></a>
-A separator can be added to any `choices` array:
-
-```
-// In the question object
-choices: [ "Choice A", new inquirer.Separator(), "choice B" ]
-
-// Which'll be displayed this way
-[?] What do you want to do?
- > Order a pizza
-   Make a reservation
-   --------
-   Ask opening hours
-   Talk to the receptionist
-```
-
-The constructor takes a facultative `String` value that'll be use as the separator. If omitted, the separator will be `--------`.
-
-Separator instances have a property `type` equal to `separator`. This should allow tools façading Inquirer interface from detecting separator types in lists.
-
-<a name="prompt"></a>
-
-### Prompt types
-
----
-
-> **Note:**: _allowed options written inside square brackets (`[]`) are optional. Others are required._
-
-#### List - `{type: 'list'}`
-
-Take `type`, `name`, `message`, `choices`[, `default`, `filter`] properties. (Note that
-default must be the choice `index` in the array or a choice `value`)
-
-![List prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/list.svg)
-
----
-
-#### Raw List - `{type: 'rawlist'}`
-
-Take `type`, `name`, `message`, `choices`[, `default`, `filter`] properties. (Note that
-default must be the choice `index` in the array)
-
-![Raw list prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/rawlist.svg)
-
----
-
-#### Expand - `{type: 'expand'}`
-
-Take `type`, `name`, `message`, `choices`[, `default`] properties. (Note that
-default must be the choice `index` in the array. If `default` key not provided, then `help` will be used as default choice)
-
-Note that the `choices` object will take an extra parameter called `key` for the `expand` prompt. This parameter must be a single (lowercased) character. The `h` option is added by the prompt and shouldn't be defined by the user.
-
-See `examples/expand.js` for a running example.
-
-![Expand prompt closed](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/expand-y.svg)
-![Expand prompt expanded](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/expand-d.svg)
-
----
-
-#### Checkbox - `{type: 'checkbox'}`
-
-Take `type`, `name`, `message`, `choices`[, `filter`, `validate`, `default`] properties. `default` is expected to be an Array of the checked choices value.
-
-Choices marked as `{checked: true}` will be checked by default.
-
-Choices whose property `disabled` is truthy will be unselectable. If `disabled` is a string, then the string will be outputted next to the disabled choice, otherwise it'll default to `"Disabled"`. The `disabled` property can also be a synchronous function receiving the current answers as argument and returning a boolean or a string.
-
-![Checkbox prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/checkbox.svg)
-
----
-
-#### Confirm - `{type: 'confirm'}`
-
-Take `type`, `name`, `message`, [`default`] properties. `default` is expected to be a boolean if used.
-
-![Confirm prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/confirm.svg)
-
----
-
-#### Input - `{type: 'input'}`
-
-Take `type`, `name`, `message`[, `default`, `filter`, `validate`, `transformer`] properties.
-
-![Input prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/input.svg)
-
----
-
-#### Input - `{type: 'number'}`
-
-Take `type`, `name`, `message`[, `default`, `filter`, `validate`, `transformer`] properties.
-
----
-
-#### Password - `{type: 'password'}`
-
-Take `type`, `name`, `message`, `mask`,[, `default`, `filter`, `validate`] properties.
-
-![Password prompt](https://cdn.rawgit.com/SBoudrias/Inquirer.js/28ae8337ba51d93e359ef4f7ee24e79b69898962/assets/screenshots/password.svg)
-
----
-
-Note that `mask` is required to hide the actual user input.
-
-#### Editor - `{type: 'editor'}`
-
-Take `type`, `name`, `message`[, `default`, `filter`, `validate`] properties
-
-Launches an instance of the users preferred editor on a temporary file. Once the user exits their editor, the contents of the temporary file are read in as the result. The editor to use is determined by reading the $VISUAL or $EDITOR environment variables. If neither of those are present, notepad (on Windows) or vim (Linux or Mac) is used.
-
-<a name="layouts"></a>
-
-### Use in Non-Interactive Environments
-`prompt()` requires that it is run in an interactive environment. (I.e. [One where `process.stdin.isTTY` is `true`](https://nodejs.org/docs/latest-v12.x/api/process.html#process_a_note_on_process_i_o)). If `prompt()` is invoked outside of such an environment, then `prompt()` will return a rejected promise with an error. For convenience, the error will have a `isTtyError` property to programmatically indicate the cause.
-
-
-## User Interfaces and layouts
-
-Along with the prompts, Inquirer offers some basic text UI.
-
-#### Bottom Bar - `inquirer.ui.BottomBar`
-
-This UI present a fixed text at the bottom of a free text zone. This is useful to keep a message to the bottom of the screen while outputting command outputs on the higher section.
-
-```javascript
-var ui = new inquirer.ui.BottomBar();
-
-// pipe a Stream to the log zone
-outputStream.pipe(ui.log);
-
-// Or simply write output
-ui.log.write('something just happened.');
-ui.log.write('Almost over, standby!');
-
-// During processing, update the bottom bar content to display a loader
-// or output a progress bar, etc
-ui.updateBottomBar('new bottom bar content');
-```
-
-<a name="reactive"></a>
-
-## Reactive interface
-
-Internally, Inquirer uses the [JS reactive extension](https://github.com/ReactiveX/rxjs) to handle events and async flows.
-
-This mean you can take advantage of this feature to provide more advanced flows. For example, you can dynamically add questions to be asked:
-
-```js
-var prompts = new Rx.Subject();
-inquirer.prompt(prompts);
-
-// At some point in the future, push new questions
-prompts.next({
-  /* question... */
-});
-prompts.next({
-  /* question... */
-});
-
-// When you're done
-prompts.complete();
-```
-
-And using the return value `process` property, you can access more fine grained callbacks:
-
-```js
-inquirer.prompt(prompts).ui.process.subscribe(onEachAnswer, onError, onComplete);
-```
-
-## Support (OS Terminals)
-
-<a name="support"></a>
-
-You should expect mostly good support for the CLI below. This does not mean we won't
-look at issues found on other command line - feel free to report any!
-
-- **Mac OS**:
-  - Terminal.app
-  - iTerm
-- **Windows ([Known issues](#issues))**:
-  - [ConEmu](https://conemu.github.io/)
-  - cmd.exe
-  - Powershell
-  - Cygwin
-- **Linux (Ubuntu, openSUSE, Arch Linux, etc)**:
-  - gnome-terminal (Terminal GNOME)
-  - konsole
-
-## Know issues
-
-<a name="issues"></a>
-
-Running Inquirer together with network streams in Windows platform inside some terminals can result in process hang.
-Workaround: run inside another terminal.
-Please refer to the https://github.com/nodejs/node/issues/21771
-
-## News on the march (Release notes)
-
-<a name="news"></a>
-
-Please refer to the [GitHub releases section for the changelog](https://github.com/SBoudrias/Inquirer.js/releases)
-
-## Contributing
-
-<a name="contributing"></a>
-
-**Unit test**
-Unit test are written in [Mocha](https://mochajs.org/). Please add a unit test for every new feature or bug fix. `npm test` to run the test suite.
-
-**Documentation**
-Add documentation for every API change. Feel free to send typo fixes and better docs!
-
-We're looking to offer good support for multiple prompts and environments. If you want to
-help, we'd like to keep a list of testers for each terminal/OS so we can contact you and
-get feedback before release. Let us know if you want to be added to the list (just tweet
-to [@vaxilart](https://twitter.com/Vaxilart)) or just add your name to [the wiki](https://github.com/SBoudrias/Inquirer.js/wiki/Testers)
-
-## License
-
-<a name="license"></a>
-
-Copyright (c) 2016 Simon Boudrias (twitter: [@vaxilart](https://twitter.com/Vaxilart))
-Licensed under the MIT license.
-
-## Plugins
-
-<a name="plugins"></a>
-
-### Prompts
-
-[**autocomplete**](https://github.com/mokkabonna/inquirer-autocomplete-prompt)<br>
-Presents a list of options as the user types, compatible with other packages such as fuzzy (for search)<br>
-<br>
-![autocomplete prompt](https://github.com/mokkabonna/inquirer-autocomplete-prompt/raw/master/inquirer.gif)
-
-[**checkbox-plus**](https://github.com/faressoft/inquirer-checkbox-plus-prompt)<br>
-Checkbox list with autocomplete and other additions<br>
-<br>
-![checkbox-plus](https://github.com/faressoft/inquirer-checkbox-plus-prompt/raw/master/demo.gif)
-
-[**datetime**](https://github.com/DerekTBrown/inquirer-datepicker-prompt)<br>
-Customizable date/time selector using both number pad and arrow keys<br>
-<br>
-![Datetime Prompt](https://github.com/DerekTBrown/inquirer-datepicker-prompt/raw/master/example/datetime-prompt.png)
-
-[**inquirer-select-line**](https://github.com/adam-golab/inquirer-select-line)<br>
-Prompt for selecting index in array where add new element<br>
-<br>
-![inquirer-select-line gif](https://media.giphy.com/media/xUA7b1MxpngddUvdHW/giphy.gif)
-
-[**command**](https://github.com/sullof/inquirer-command-prompt)<br>
-<br>
-Simple prompt with command history and dynamic autocomplete
-
-[**inquirer-fuzzy-path**](https://github.com/adelsz/inquirer-fuzzy-path)<br>
-Prompt for fuzzy file/directory selection.<br>
-<br>
-![inquirer-fuzzy-path](https://raw.githubusercontent.com/adelsz/inquirer-fuzzy-path/master/recording.gif)
-
-[**inquirer-emoji**](https://github.com/tannerntannern/inquirer-emoji)<br>
-Prompt for inputting emojis.<br>
-<br>
-![inquirer-emoji](https://github.com/tannerntannern/inquirer-emoji/raw/master/demo.gif)
-
-[**inquirer-chalk-pipe**](https://github.com/LitoMore/inquirer-chalk-pipe)<br>
-Prompt for input chalk-pipe style strings<br>
-<br>
-![inquirer-chalk-pipe](https://github.com/LitoMore/inquirer-chalk-pipe/raw/master/screenshot.gif)
-
-[**inquirer-search-checkbox**](https://github.com/clinyong/inquirer-search-checkbox)<br>
-Searchable Inquirer checkbox<br>
-
-[**inquirer-prompt-suggest**](https://github.com/olistic/inquirer-prompt-suggest)<br>
-Inquirer prompt for your less creative users.
-
-![inquirer-prompt-suggest](https://user-images.githubusercontent.com/5600126/40391192-d4f3d6d0-5ded-11e8-932f-4b75b642c09e.gif)
-
-[**inquirer-s3**](https://github.com/HQarroum/inquirer-s3)<br>
-An S3 object selector for Inquirer.
-
-![inquirer-s3](https://github.com/HQarroum/inquirer-s3/raw/master/docs/inquirer-screenshot.png)
-
-[**inquirer-autosubmit-prompt**](https://github.com/yaodingyd/inquirer-autosubmit-prompt)<br>
-Auto submit based on your current input, saving one extra enter
-
-[**inquirer-file-tree-selection-prompt**](https://github.com/anc95/inquirer-file-tree-selection)<br>
-Inquirer prompt for to select a file or directory in file tree
-
-![inquirer-file-tree-selection-prompt](https://github.com/anc95/inquirer-file-tree-selection/blob/master/example/screenshot.gif)
-
-[**inquirer-table-prompt**](https://github.com/eduardoboucas/inquirer-table-prompt)<br>
-A table-like prompt for Inquirer.
-
-![inquirer-table-prompt](https://raw.githubusercontent.com/eduardoboucas/inquirer-table-prompt/master/screen-capture.gif)
diff --git a/node_modules/inquirer/lib/inquirer.js b/node_modules/inquirer/lib/inquirer.js
deleted file mode 100644
index aa8b2a1..0000000
--- a/node_modules/inquirer/lib/inquirer.js
+++ /dev/null
@@ -1,93 +0,0 @@
-'use strict';
-/**
- * Inquirer.js
- * A collection of common interactive command line user interfaces.
- */
-
-var inquirer = module.exports;
-
-/**
- * Client interfaces
- */
-
-inquirer.prompts = {};
-
-inquirer.Separator = require('./objects/separator');
-
-inquirer.ui = {
-  BottomBar: require('./ui/bottom-bar'),
-  Prompt: require('./ui/prompt')
-};
-
-/**
- * Create a new self-contained prompt module.
- */
-inquirer.createPromptModule = function(opt) {
-  var promptModule = function(questions, answers) {
-    var ui;
-    try {
-      ui = new inquirer.ui.Prompt(promptModule.prompts, opt);
-    } catch (error) {
-      return Promise.reject(error);
-    }
-    var promise = ui.run(questions, answers);
-
-    // Monkey patch the UI on the promise object so
-    // that it remains publicly accessible.
-    promise.ui = ui;
-
-    return promise;
-  };
-
-  promptModule.prompts = {};
-
-  /**
-   * Register a prompt type
-   * @param {String} name     Prompt type name
-   * @param {Function} prompt Prompt constructor
-   * @return {inquirer}
-   */
-
-  promptModule.registerPrompt = function(name, prompt) {
-    promptModule.prompts[name] = prompt;
-    return this;
-  };
-
-  /**
-   * Register the defaults provider prompts
-   */
-
-  promptModule.restoreDefaultPrompts = function() {
-    this.registerPrompt('list', require('./prompts/list'));
-    this.registerPrompt('input', require('./prompts/input'));
-    this.registerPrompt('number', require('./prompts/number'));
-    this.registerPrompt('confirm', require('./prompts/confirm'));
-    this.registerPrompt('rawlist', require('./prompts/rawlist'));
-    this.registerPrompt('expand', require('./prompts/expand'));
-    this.registerPrompt('checkbox', require('./prompts/checkbox'));
-    this.registerPrompt('password', require('./prompts/password'));
-    this.registerPrompt('editor', require('./prompts/editor'));
-  };
-
-  promptModule.restoreDefaultPrompts();
-
-  return promptModule;
-};
-
-/**
- * Public CLI helper interface
- * @param  {Array|Object|Rx.Observable} questions - Questions settings array
- * @param  {Function} cb - Callback being passed the user answers
- * @return {inquirer.ui.Prompt}
- */
-
-inquirer.prompt = inquirer.createPromptModule();
-
-// Expose helper functions on the top level for easiest usage by common users
-inquirer.registerPrompt = function(name, prompt) {
-  inquirer.prompt.registerPrompt(name, prompt);
-};
-
-inquirer.restoreDefaultPrompts = function() {
-  inquirer.prompt.restoreDefaultPrompts();
-};
diff --git a/node_modules/inquirer/lib/objects/choice.js b/node_modules/inquirer/lib/objects/choice.js
deleted file mode 100644
index 1bc1acd..0000000
--- a/node_modules/inquirer/lib/objects/choice.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-var _ = require('lodash');
-
-/**
- * Choice object
- * Normalize input as choice object
- * @constructor
- * @param {Number|String|Object} val  Choice value. If an object is passed, it should contains
- *                                    at least one of `value` or `name` property
- */
-
-module.exports = class Choice {
-  constructor(val, answers) {
-    // Don't process Choice and Separator object
-    if (val instanceof Choice || val.type === 'separator') {
-      // eslint-disable-next-line no-constructor-return
-      return val;
-    }
-
-    if (_.isString(val) || _.isNumber(val)) {
-      this.name = String(val);
-      this.value = val;
-      this.short = String(val);
-    } else {
-      _.extend(this, val, {
-        name: val.name || val.value,
-        value: 'value' in val ? val.value : val.name,
-        short: val.short || val.name || val.value
-      });
-    }
-
-    if (_.isFunction(val.disabled)) {
-      this.disabled = val.disabled(answers);
-    } else {
-      this.disabled = val.disabled;
-    }
-  }
-};
diff --git a/node_modules/inquirer/lib/objects/choices.js b/node_modules/inquirer/lib/objects/choices.js
deleted file mode 100644
index e3c16d0..0000000
--- a/node_modules/inquirer/lib/objects/choices.js
+++ /dev/null
@@ -1,118 +0,0 @@
-'use strict';
-var assert = require('assert');
-var _ = require('lodash');
-var Separator = require('./separator');
-var Choice = require('./choice');
-
-/**
- * Choices collection
- * Collection of multiple `choice` object
- * @constructor
- * @param {Array} choices  All `choice` to keep in the collection
- */
-
-module.exports = class Choices {
-  constructor(choices, answers) {
-    this.choices = choices.map(val => {
-      if (val.type === 'separator') {
-        if (!(val instanceof Separator)) {
-          val = new Separator(val.line);
-        }
-
-        return val;
-      }
-
-      return new Choice(val, answers);
-    });
-
-    this.realChoices = this.choices
-      .filter(Separator.exclude)
-      .filter(item => !item.disabled);
-
-    Object.defineProperty(this, 'length', {
-      get() {
-        return this.choices.length;
-      },
-      set(val) {
-        this.choices.length = val;
-      }
-    });
-
-    Object.defineProperty(this, 'realLength', {
-      get() {
-        return this.realChoices.length;
-      },
-      set() {
-        throw new Error('Cannot set `realLength` of a Choices collection');
-      }
-    });
-  }
-
-  /**
-   * Get a valid choice from the collection
-   * @param  {Number} selector  The selected choice index
-   * @return {Choice|Undefined} Return the matched choice or undefined
-   */
-
-  getChoice(selector) {
-    assert(_.isNumber(selector));
-    return this.realChoices[selector];
-  }
-
-  /**
-   * Get a raw element from the collection
-   * @param  {Number} selector  The selected index value
-   * @return {Choice|Undefined} Return the matched choice or undefined
-   */
-
-  get(selector) {
-    assert(_.isNumber(selector));
-    return this.choices[selector];
-  }
-
-  /**
-   * Match the valid choices against a where clause
-   * @param  {Object} whereClause Lodash `where` clause
-   * @return {Array}              Matching choices or empty array
-   */
-
-  where(whereClause) {
-    return _.filter(this.realChoices, whereClause);
-  }
-
-  /**
-   * Pluck a particular key from the choices
-   * @param  {String} propertyName Property name to select
-   * @return {Array}               Selected properties
-   */
-
-  pluck(propertyName) {
-    return _.map(this.realChoices, propertyName);
-  }
-
-  // Expose usual Array methods
-  indexOf() {
-    return this.choices.indexOf.apply(this.choices, arguments);
-  }
-
-  forEach() {
-    return this.choices.forEach.apply(this.choices, arguments);
-  }
-
-  filter() {
-    return this.choices.filter.apply(this.choices, arguments);
-  }
-
-  find(func) {
-    return _.find(this.choices, func);
-  }
-
-  push() {
-    var objs = _.map(arguments, val => new Choice(val));
-    this.choices.push.apply(this.choices, objs);
-    this.realChoices = this.choices
-      .filter(Separator.exclude)
-      .filter(item => !item.disabled);
-    return this.choices;
-  }
-};
diff --git a/node_modules/inquirer/lib/objects/separator.js b/node_modules/inquirer/lib/objects/separator.js
deleted file mode 100644
index e4beb7a..0000000
--- a/node_modules/inquirer/lib/objects/separator.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-var chalk = require('chalk');
-var figures = require('figures');
-
-/**
- * Separator object
- * Used to space/separate choices group
- * @constructor
- * @param {String} line   Separation line content (facultative)
- */
-
-class Separator {
-  constructor(line) {
-    this.type = 'separator';
-    this.line = chalk.dim(line || new Array(15).join(figures.line));
-  }
-
-  /**
-   * Stringify separator
-   * @return {String} the separator display string
-   */
-  toString() {
-    return this.line;
-  }
-}
-
-/**
- * Helper function returning false if object is a separator
- * @param  {Object} obj object to test against
- * @return {Boolean}    `false` if object is a separator
- */
-
-Separator.exclude = function(obj) {
-  return obj.type !== 'separator';
-};
-
-module.exports = Separator;
diff --git a/node_modules/inquirer/lib/prompts/base.js b/node_modules/inquirer/lib/prompts/base.js
deleted file mode 100644
index 6a7b19d..0000000
--- a/node_modules/inquirer/lib/prompts/base.js
+++ /dev/null
@@ -1,148 +0,0 @@
-'use strict';
-/**
- * Base prompt implementation
- * Should be extended by prompt types.
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var runAsync = require('run-async');
-var { filter, flatMap, share, take, takeUntil } = require('rxjs/operators');
-var Choices = require('../objects/choices');
-var ScreenManager = require('../utils/screen-manager');
-
-class Prompt {
-  constructor(question, rl, answers) {
-    // Setup instance defaults property
-    _.assign(this, {
-      answers: answers,
-      status: 'pending'
-    });
-
-    // Set defaults prompt options
-    this.opt = _.defaults(_.clone(question), {
-      validate: () => true,
-      filter: val => val,
-      when: () => true,
-      suffix: '',
-      prefix: chalk.green('?')
-    });
-
-    // Make sure name is present
-    if (!this.opt.name) {
-      this.throwParamError('name');
-    }
-
-    // Set default message if no message defined
-    if (!this.opt.message) {
-      this.opt.message = this.opt.name + ':';
-    }
-
-    // Normalize choices
-    if (Array.isArray(this.opt.choices)) {
-      this.opt.choices = new Choices(this.opt.choices, answers);
-    }
-
-    this.rl = rl;
-    this.screen = new ScreenManager(this.rl);
-  }
-
-  /**
-   * Start the Inquiry session and manage output value filtering
-   * @return {Promise}
-   */
-
-  run() {
-    return new Promise(resolve => {
-      this._run(value => resolve(value));
-    });
-  }
-
-  // Default noop (this one should be overwritten in prompts)
-  _run(cb) {
-    cb();
-  }
-
-  /**
-   * Throw an error telling a required parameter is missing
-   * @param  {String} name Name of the missing param
-   * @return {Throw Error}
-   */
-
-  throwParamError(name) {
-    throw new Error('You must provide a `' + name + '` parameter');
-  }
-
-  /**
-   * Called when the UI closes. Override to do any specific cleanup necessary
-   */
-  close() {
-    this.screen.releaseCursor();
-  }
-
-  /**
-   * Run the provided validation method each time a submit event occur.
-   * @param  {Rx.Observable} submit - submit event flow
-   * @return {Object}        Object containing two observables: `success` and `error`
-   */
-  handleSubmitEvents(submit) {
-    var self = this;
-    var validate = runAsync(this.opt.validate);
-    var asyncFilter = runAsync(this.opt.filter);
-    var validation = submit.pipe(
-      flatMap(value =>
-        asyncFilter(value, self.answers).then(
-          filteredValue =>
-            validate(filteredValue, self.answers).then(
-              isValid => ({ isValid: isValid, value: filteredValue }),
-              err => ({ isValid: err, value: filteredValue })
-            ),
-          err => ({ isValid: err })
-        )
-      ),
-      share()
-    );
-
-    var success = validation.pipe(
-      filter(state => state.isValid === true),
-      take(1)
-    );
-    var error = validation.pipe(
-      filter(state => state.isValid !== true),
-      takeUntil(success)
-    );
-
-    return {
-      success: success,
-      error: error
-    };
-  }
-
-  /**
-   * Generate the prompt question string
-   * @return {String} prompt question string
-   */
-
-  getQuestion() {
-    var message =
-      this.opt.prefix +
-      ' ' +
-      chalk.bold(this.opt.message) +
-      this.opt.suffix +
-      chalk.reset(' ');
-
-    // Append the default if available, and if question isn't answered
-    if (this.opt.default != null && this.status !== 'answered') {
-      // If default password is supplied, hide it
-      if (this.opt.type === 'password') {
-        message += chalk.italic.dim('[hidden] ');
-      } else {
-        message += chalk.dim('(' + this.opt.default + ') ');
-      }
-    }
-
-    return message;
-  }
-}
-
-module.exports = Prompt;
diff --git a/node_modules/inquirer/lib/prompts/checkbox.js b/node_modules/inquirer/lib/prompts/checkbox.js
deleted file mode 100644
index 1fee1d2..0000000
--- a/node_modules/inquirer/lib/prompts/checkbox.js
+++ /dev/null
@@ -1,254 +0,0 @@
-'use strict';
-/**
- * `list` type prompt
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var cliCursor = require('cli-cursor');
-var figures = require('figures');
-var { map, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var observe = require('../utils/events');
-var Paginator = require('../utils/paginator');
-
-class CheckboxPrompt extends Base {
-  constructor(questions, rl, answers) {
-    super(questions, rl, answers);
-
-    if (!this.opt.choices) {
-      this.throwParamError('choices');
-    }
-
-    if (_.isArray(this.opt.default)) {
-      this.opt.choices.forEach(function(choice) {
-        if (this.opt.default.indexOf(choice.value) >= 0) {
-          choice.checked = true;
-        }
-      }, this);
-    }
-
-    this.pointer = 0;
-
-    // Make sure no default is set (so it won't be printed)
-    this.opt.default = null;
-
-    this.paginator = new Paginator(this.screen);
-  }
-
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    var events = observe(this.rl);
-
-    var validation = this.handleSubmitEvents(
-      events.line.pipe(map(this.getCurrentValue.bind(this)))
-    );
-    validation.success.forEach(this.onEnd.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-
-    events.normalizedUpKey
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onUpKey.bind(this));
-    events.normalizedDownKey
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onDownKey.bind(this));
-    events.numberKey
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onNumberKey.bind(this));
-    events.spaceKey
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onSpaceKey.bind(this));
-    events.aKey.pipe(takeUntil(validation.success)).forEach(this.onAllKey.bind(this));
-    events.iKey.pipe(takeUntil(validation.success)).forEach(this.onInverseKey.bind(this));
-
-    // Init the prompt
-    cliCursor.hide();
-    this.render();
-    this.firstRender = false;
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {CheckboxPrompt} self
-   */
-
-  render(error) {
-    // Render question
-    var message = this.getQuestion();
-    var bottomContent = '';
-
-    if (!this.spaceKeyPressed) {
-      message +=
-        '(Press ' +
-        chalk.cyan.bold('<space>') +
-        ' to select, ' +
-        chalk.cyan.bold('<a>') +
-        ' to toggle all, ' +
-        chalk.cyan.bold('<i>') +
-        ' to invert selection)';
-    }
-
-    // Render choices or answer depending on the state
-    if (this.status === 'answered') {
-      message += chalk.cyan(this.selection.join(', '));
-    } else {
-      var choicesStr = renderChoices(this.opt.choices, this.pointer);
-      var indexPosition = this.opt.choices.indexOf(
-        this.opt.choices.getChoice(this.pointer)
-      );
-      message +=
-        '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize);
-    }
-
-    if (error) {
-      bottomContent = chalk.red('>> ') + error;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  onEnd(state) {
-    this.status = 'answered';
-    this.spaceKeyPressed = true;
-    // Rerender prompt (and clean subline error)
-    this.render();
-
-    this.screen.done();
-    cliCursor.show();
-    this.done(state.value);
-  }
-
-  onError(state) {
-    this.render(state.isValid);
-  }
-
-  getCurrentValue() {
-    var choices = this.opt.choices.filter(function(choice) {
-      return Boolean(choice.checked) && !choice.disabled;
-    });
-
-    this.selection = _.map(choices, 'short');
-    return _.map(choices, 'value');
-  }
-
-  onUpKey() {
-    var len = this.opt.choices.realLength;
-    this.pointer = this.pointer > 0 ? this.pointer - 1 : len - 1;
-    this.render();
-  }
-
-  onDownKey() {
-    var len = this.opt.choices.realLength;
-    this.pointer = this.pointer < len - 1 ? this.pointer + 1 : 0;
-    this.render();
-  }
-
-  onNumberKey(input) {
-    if (input <= this.opt.choices.realLength) {
-      this.pointer = input - 1;
-      this.toggleChoice(this.pointer);
-    }
-
-    this.render();
-  }
-
-  onSpaceKey() {
-    this.spaceKeyPressed = true;
-    this.toggleChoice(this.pointer);
-    this.render();
-  }
-
-  onAllKey() {
-    var shouldBeChecked = Boolean(
-      this.opt.choices.find(function(choice) {
-        return choice.type !== 'separator' && !choice.checked;
-      })
-    );
-
-    this.opt.choices.forEach(function(choice) {
-      if (choice.type !== 'separator') {
-        choice.checked = shouldBeChecked;
-      }
-    });
-
-    this.render();
-  }
-
-  onInverseKey() {
-    this.opt.choices.forEach(function(choice) {
-      if (choice.type !== 'separator') {
-        choice.checked = !choice.checked;
-      }
-    });
-
-    this.render();
-  }
-
-  toggleChoice(index) {
-    var item = this.opt.choices.getChoice(index);
-    if (item !== undefined) {
-      this.opt.choices.getChoice(index).checked = !item.checked;
-    }
-  }
-}
-
-/**
- * Function for rendering checkbox choices
- * @param  {Number} pointer Position of the pointer
- * @return {String}         Rendered content
- */
-
-function renderChoices(choices, pointer) {
-  var output = '';
-  var separatorOffset = 0;
-
-  choices.forEach(function(choice, i) {
-    if (choice.type === 'separator') {
-      separatorOffset++;
-      output += ' ' + choice + '\n';
-      return;
-    }
-
-    if (choice.disabled) {
-      separatorOffset++;
-      output += ' - ' + choice.name;
-      output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
-    } else {
-      var line = getCheckbox(choice.checked) + ' ' + choice.name;
-      if (i - separatorOffset === pointer) {
-        output += chalk.cyan(figures.pointer + line);
-      } else {
-        output += ' ' + line;
-      }
-    }
-
-    output += '\n';
-  });
-
-  return output.replace(/\n$/, '');
-}
-
-/**
- * Get the checkbox
- * @param  {Boolean} checked - add a X or not to the checkbox
- * @return {String} Composited checkbox string
- */
-
-function getCheckbox(checked) {
-  return checked ? chalk.green(figures.radioOn) : figures.radioOff;
-}
-
-module.exports = CheckboxPrompt;
diff --git a/node_modules/inquirer/lib/prompts/confirm.js b/node_modules/inquirer/lib/prompts/confirm.js
deleted file mode 100644
index 1ede6b8..0000000
--- a/node_modules/inquirer/lib/prompts/confirm.js
+++ /dev/null
@@ -1,99 +0,0 @@
-'use strict';
-/**
- * `confirm` type prompt
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var { take, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var observe = require('../utils/events');
-
-class ConfirmPrompt extends Base {
-  constructor(questions, rl, answers) {
-    super(questions, rl, answers);
-
-    var rawDefault = true;
-
-    _.extend(this.opt, {
-      filter: function(input) {
-        var value = rawDefault;
-        if (input != null && input !== '') {
-          value = /^y(es)?/i.test(input);
-        }
-
-        return value;
-      }
-    });
-
-    if (_.isBoolean(this.opt.default)) {
-      rawDefault = this.opt.default;
-    }
-
-    this.opt.default = rawDefault ? 'Y/n' : 'y/N';
-  }
-
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb   Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    // Once user confirm (enter key)
-    var events = observe(this.rl);
-    events.keypress.pipe(takeUntil(events.line)).forEach(this.onKeypress.bind(this));
-
-    events.line.pipe(take(1)).forEach(this.onEnd.bind(this));
-
-    // Init
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {ConfirmPrompt} self
-   */
-
-  render(answer) {
-    var message = this.getQuestion();
-
-    if (typeof answer === 'boolean') {
-      message += chalk.cyan(answer ? 'Yes' : 'No');
-    } else {
-      message += this.rl.line;
-    }
-
-    this.screen.render(message);
-
-    return this;
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  onEnd(input) {
-    this.status = 'answered';
-
-    var output = this.opt.filter(input);
-    this.render(output);
-
-    this.screen.done();
-    this.done(output);
-  }
-
-  /**
-   * When user press a key
-   */
-
-  onKeypress() {
-    this.render();
-  }
-}
-
-module.exports = ConfirmPrompt;
diff --git a/node_modules/inquirer/lib/prompts/editor.js b/node_modules/inquirer/lib/prompts/editor.js
deleted file mode 100644
index 121cda8..0000000
--- a/node_modules/inquirer/lib/prompts/editor.js
+++ /dev/null
@@ -1,100 +0,0 @@
-'use strict';
-/**
- * `editor` type prompt
- */
-
-var chalk = require('chalk');
-var editAsync = require('external-editor').editAsync;
-var Base = require('./base');
-var observe = require('../utils/events');
-var { Subject } = require('rxjs');
-
-class EditorPrompt extends Base {
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    this.editorResult = new Subject();
-
-    // Open Editor on "line" (Enter Key)
-    var events = observe(this.rl);
-    this.lineSubscription = events.line.subscribe(this.startExternalEditor.bind(this));
-
-    // Trigger Validation when editor closes
-    var validation = this.handleSubmitEvents(this.editorResult);
-    validation.success.forEach(this.onEnd.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-
-    // Prevents default from being printed on screen (can look weird with multiple lines)
-    this.currentText = this.opt.default;
-    this.opt.default = null;
-
-    // Init
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {EditorPrompt} self
-   */
-
-  render(error) {
-    var bottomContent = '';
-    var message = this.getQuestion();
-
-    if (this.status === 'answered') {
-      message += chalk.dim('Received');
-    } else {
-      message += chalk.dim('Press <enter> to launch your preferred editor.');
-    }
-
-    if (error) {
-      bottomContent = chalk.red('>> ') + error;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  /**
-   * Launch $EDITOR on user press enter
-   */
-
-  startExternalEditor() {
-    // Pause Readline to prevent stdin and stdout from being modified while the editor is showing
-    this.rl.pause();
-    editAsync(this.currentText, this.endExternalEditor.bind(this));
-  }
-
-  endExternalEditor(error, result) {
-    this.rl.resume();
-    if (error) {
-      this.editorResult.error(error);
-    } else {
-      this.editorResult.next(result);
-    }
-  }
-
-  onEnd(state) {
-    this.editorResult.unsubscribe();
-    this.lineSubscription.unsubscribe();
-    this.answer = state.value;
-    this.status = 'answered';
-    // Re-render prompt
-    this.render();
-    this.screen.done();
-    this.done(this.answer);
-  }
-
-  onError(state) {
-    this.render(state.isValid);
-  }
-}
-
-module.exports = EditorPrompt;
diff --git a/node_modules/inquirer/lib/prompts/expand.js b/node_modules/inquirer/lib/prompts/expand.js
deleted file mode 100644
index 5534a39..0000000
--- a/node_modules/inquirer/lib/prompts/expand.js
+++ /dev/null
@@ -1,276 +0,0 @@
-'use strict';
-/**
- * `rawlist` type prompt
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var { map, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var Separator = require('../objects/separator');
-var observe = require('../utils/events');
-var Paginator = require('../utils/paginator');
-
-class ExpandPrompt extends Base {
-  constructor(questions, rl, answers) {
-    super(questions, rl, answers);
-
-    if (!this.opt.choices) {
-      this.throwParamError('choices');
-    }
-
-    this.validateChoices(this.opt.choices);
-
-    // Add the default `help` (/expand) option
-    this.opt.choices.push({
-      key: 'h',
-      name: 'Help, list all options',
-      value: 'help'
-    });
-
-    this.opt.validate = choice => {
-      if (choice == null) {
-        return 'Please enter a valid command';
-      }
-
-      return choice !== 'help';
-    };
-
-    // Setup the default string (capitalize the default key)
-    this.opt.default = this.generateChoicesString(this.opt.choices, this.opt.default);
-
-    this.paginator = new Paginator(this.screen);
-  }
-
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    // Save user answer and update prompt to show selected option.
-    var events = observe(this.rl);
-    var validation = this.handleSubmitEvents(
-      events.line.pipe(map(this.getCurrentValue.bind(this)))
-    );
-    validation.success.forEach(this.onSubmit.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-    this.keypressObs = events.keypress
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onKeypress.bind(this));
-
-    // Init the prompt
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {ExpandPrompt} self
-   */
-
-  render(error, hint) {
-    var message = this.getQuestion();
-    var bottomContent = '';
-
-    if (this.status === 'answered') {
-      message += chalk.cyan(this.answer);
-    } else if (this.status === 'expanded') {
-      var choicesStr = renderChoices(this.opt.choices, this.selectedKey);
-      message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize);
-      message += '\n  Answer: ';
-    }
-
-    message += this.rl.line;
-
-    if (error) {
-      bottomContent = chalk.red('>> ') + error;
-    }
-
-    if (hint) {
-      bottomContent = chalk.cyan('>> ') + hint;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  getCurrentValue(input) {
-    if (!input) {
-      input = this.rawDefault;
-    }
-
-    var selected = this.opt.choices.where({ key: input.toLowerCase().trim() })[0];
-    if (!selected) {
-      return null;
-    }
-
-    return selected.value;
-  }
-
-  /**
-   * Generate the prompt choices string
-   * @return {String}  Choices string
-   */
-
-  getChoices() {
-    var output = '';
-
-    this.opt.choices.forEach(choice => {
-      output += '\n  ';
-
-      if (choice.type === 'separator') {
-        output += ' ' + choice;
-        return;
-      }
-
-      var choiceStr = choice.key + ') ' + choice.name;
-      if (this.selectedKey === choice.key) {
-        choiceStr = chalk.cyan(choiceStr);
-      }
-
-      output += choiceStr;
-    });
-
-    return output;
-  }
-
-  onError(state) {
-    if (state.value === 'help') {
-      this.selectedKey = '';
-      this.status = 'expanded';
-      this.render();
-      return;
-    }
-
-    this.render(state.isValid);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  onSubmit(state) {
-    this.status = 'answered';
-    var choice = this.opt.choices.where({ value: state.value })[0];
-    this.answer = choice.short || choice.name;
-
-    // Re-render prompt
-    this.render();
-    this.screen.done();
-    this.done(state.value);
-  }
-
-  /**
-   * When user press a key
-   */
-
-  onKeypress() {
-    this.selectedKey = this.rl.line.toLowerCase();
-    var selected = this.opt.choices.where({ key: this.selectedKey })[0];
-    if (this.status === 'expanded') {
-      this.render();
-    } else {
-      this.render(null, selected ? selected.name : null);
-    }
-  }
-
-  /**
-   * Validate the choices
-   * @param {Array} choices
-   */
-
-  validateChoices(choices) {
-    var formatError;
-    var errors = [];
-    var keymap = {};
-    choices.filter(Separator.exclude).forEach(choice => {
-      if (!choice.key || choice.key.length !== 1) {
-        formatError = true;
-      }
-
-      if (keymap[choice.key]) {
-        errors.push(choice.key);
-      }
-
-      keymap[choice.key] = true;
-      choice.key = String(choice.key).toLowerCase();
-    });
-
-    if (formatError) {
-      throw new Error(
-        'Format error: `key` param must be a single letter and is required.'
-      );
-    }
-
-    if (keymap.h) {
-      throw new Error(
-        'Reserved key error: `key` param cannot be `h` - this value is reserved.'
-      );
-    }
-
-    if (errors.length) {
-      throw new Error(
-        'Duplicate key error: `key` param must be unique. Duplicates: ' +
-          _.uniq(errors).join(', ')
-      );
-    }
-  }
-
-  /**
-   * Generate a string out of the choices keys
-   * @param  {Array}  choices
-   * @param  {Number|String} default - the choice index or name to capitalize
-   * @return {String} The rendered choices key string
-   */
-  generateChoicesString(choices, defaultChoice) {
-    var defIndex = choices.realLength - 1;
-    if (_.isNumber(defaultChoice) && this.opt.choices.getChoice(defaultChoice)) {
-      defIndex = defaultChoice;
-    } else if (_.isString(defaultChoice)) {
-      let index = _.findIndex(
-        choices.realChoices,
-        ({ value }) => value === defaultChoice
-      );
-      defIndex = index === -1 ? defIndex : index;
-    }
-
-    var defStr = this.opt.choices.pluck('key');
-    this.rawDefault = defStr[defIndex];
-    defStr[defIndex] = String(defStr[defIndex]).toUpperCase();
-    return defStr.join('');
-  }
-}
-
-/**
- * Function for rendering checkbox choices
- * @param  {String} pointer Selected key
- * @return {String}         Rendered content
- */
-
-function renderChoices(choices, pointer) {
-  var output = '';
-
-  choices.forEach(choice => {
-    output += '\n  ';
-
-    if (choice.type === 'separator') {
-      output += ' ' + choice;
-      return;
-    }
-
-    var choiceStr = choice.key + ') ' + choice.name;
-    if (pointer === choice.key) {
-      choiceStr = chalk.cyan(choiceStr);
-    }
-
-    output += choiceStr;
-  });
-
-  return output;
-}
-
-module.exports = ExpandPrompt;
diff --git a/node_modules/inquirer/lib/prompts/input.js b/node_modules/inquirer/lib/prompts/input.js
deleted file mode 100644
index 2b886ef..0000000
--- a/node_modules/inquirer/lib/prompts/input.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-/**
- * `input` type prompt
- */
-
-var chalk = require('chalk');
-var { map, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var observe = require('../utils/events');
-
-class InputPrompt extends Base {
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    // Once user confirm (enter key)
-    var events = observe(this.rl);
-    var submit = events.line.pipe(map(this.filterInput.bind(this)));
-
-    var validation = this.handleSubmitEvents(submit);
-    validation.success.forEach(this.onEnd.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-
-    events.keypress
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onKeypress.bind(this));
-
-    // Init
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {InputPrompt} self
-   */
-
-  render(error) {
-    var bottomContent = '';
-    var appendContent = '';
-    var message = this.getQuestion();
-    var transformer = this.opt.transformer;
-    var isFinal = this.status === 'answered';
-
-    if (isFinal) {
-      appendContent = this.answer;
-    } else {
-      appendContent = this.rl.line;
-    }
-
-    if (transformer) {
-      message += transformer(appendContent, this.answers, { isFinal });
-    } else {
-      message += isFinal ? chalk.cyan(appendContent) : appendContent;
-    }
-
-    if (error) {
-      bottomContent = chalk.red('>> ') + error;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  filterInput(input) {
-    if (!input) {
-      return this.opt.default == null ? '' : this.opt.default;
-    }
-
-    return input;
-  }
-
-  onEnd(state) {
-    this.answer = state.value;
-    this.status = 'answered';
-
-    // Re-render prompt
-    this.render();
-
-    this.screen.done();
-    this.done(state.value);
-  }
-
-  onError({ value = '', isValid }) {
-    this.rl.line += value;
-    this.rl.cursor += value.length;
-    this.render(isValid);
-  }
-
-  /**
-   * When user press a key
-   */
-
-  onKeypress() {
-    // If user press a key, just clear the default value
-    if (this.opt.default) {
-      this.opt.default = undefined;
-    }
-
-    this.render();
-  }
-}
-
-module.exports = InputPrompt;
diff --git a/node_modules/inquirer/lib/prompts/list.js b/node_modules/inquirer/lib/prompts/list.js
deleted file mode 100644
index 8e3c5a2..0000000
--- a/node_modules/inquirer/lib/prompts/list.js
+++ /dev/null
@@ -1,184 +0,0 @@
-'use strict';
-/**
- * `list` type prompt
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var figures = require('figures');
-var cliCursor = require('cli-cursor');
-var runAsync = require('run-async');
-var { flatMap, map, take, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var observe = require('../utils/events');
-var Paginator = require('../utils/paginator');
-
-class ListPrompt extends Base {
-  constructor(questions, rl, answers) {
-    super(questions, rl, answers);
-
-    if (!this.opt.choices) {
-      this.throwParamError('choices');
-    }
-
-    this.firstRender = true;
-    this.selected = 0;
-
-    var def = this.opt.default;
-
-    // If def is a Number, then use as index. Otherwise, check for value.
-    if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
-      this.selected = def;
-    } else if (!_.isNumber(def) && def != null) {
-      let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def);
-      this.selected = Math.max(index, 0);
-    }
-
-    // Make sure no default is set (so it won't be printed)
-    this.opt.default = null;
-
-    this.paginator = new Paginator(this.screen);
-  }
-
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    var self = this;
-
-    var events = observe(this.rl);
-    events.normalizedUpKey.pipe(takeUntil(events.line)).forEach(this.onUpKey.bind(this));
-    events.normalizedDownKey
-      .pipe(takeUntil(events.line))
-      .forEach(this.onDownKey.bind(this));
-    events.numberKey.pipe(takeUntil(events.line)).forEach(this.onNumberKey.bind(this));
-    events.line
-      .pipe(
-        take(1),
-        map(this.getCurrentValue.bind(this)),
-        flatMap(value => runAsync(self.opt.filter)(value).catch(err => err))
-      )
-      .forEach(this.onSubmit.bind(this));
-
-    // Init the prompt
-    cliCursor.hide();
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {ListPrompt} self
-   */
-
-  render() {
-    // Render question
-    var message = this.getQuestion();
-
-    if (this.firstRender) {
-      message += chalk.dim('(Use arrow keys)');
-    }
-
-    // Render choices or answer depending on the state
-    if (this.status === 'answered') {
-      message += chalk.cyan(this.opt.choices.getChoice(this.selected).short);
-    } else {
-      var choicesStr = listRender(this.opt.choices, this.selected);
-      var indexPosition = this.opt.choices.indexOf(
-        this.opt.choices.getChoice(this.selected)
-      );
-      message +=
-        '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize);
-    }
-
-    this.firstRender = false;
-
-    this.screen.render(message);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  onSubmit(value) {
-    this.status = 'answered';
-
-    // Rerender prompt
-    this.render();
-
-    this.screen.done();
-    cliCursor.show();
-    this.done(value);
-  }
-
-  getCurrentValue() {
-    return this.opt.choices.getChoice(this.selected).value;
-  }
-
-  /**
-   * When user press a key
-   */
-  onUpKey() {
-    var len = this.opt.choices.realLength;
-    this.selected = this.selected > 0 ? this.selected - 1 : len - 1;
-    this.render();
-  }
-
-  onDownKey() {
-    var len = this.opt.choices.realLength;
-    this.selected = this.selected < len - 1 ? this.selected + 1 : 0;
-    this.render();
-  }
-
-  onNumberKey(input) {
-    if (input <= this.opt.choices.realLength) {
-      this.selected = input - 1;
-    }
-
-    this.render();
-  }
-}
-
-/**
- * Function for rendering list choices
- * @param  {Number} pointer Position of the pointer
- * @return {String}         Rendered content
- */
-function listRender(choices, pointer) {
-  var output = '';
-  var separatorOffset = 0;
-
-  choices.forEach((choice, i) => {
-    if (choice.type === 'separator') {
-      separatorOffset++;
-      output += '  ' + choice + '\n';
-      return;
-    }
-
-    if (choice.disabled) {
-      separatorOffset++;
-      output += '  - ' + choice.name;
-      output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
-      output += '\n';
-      return;
-    }
-
-    var isSelected = i - separatorOffset === pointer;
-    var line = (isSelected ? figures.pointer + ' ' : '  ') + choice.name;
-    if (isSelected) {
-      line = chalk.cyan(line);
-    }
-
-    output += line + ' \n';
-  });
-
-  return output.replace(/\n$/, '');
-}
-
-module.exports = ListPrompt;
diff --git a/node_modules/inquirer/lib/prompts/number.js b/node_modules/inquirer/lib/prompts/number.js
deleted file mode 100644
index 6640751..0000000
--- a/node_modules/inquirer/lib/prompts/number.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-/**
- * `input` type prompt
- */
-
-var Input = require('./input');
-
-/**
- * Extention of the Input prompt specifically for use with number inputs.
- */
-
-class NumberPrompt extends Input {
-  filterInput(input) {
-    if (input && typeof input === 'string') {
-      input = input.trim();
-      // Match a number in the input
-      let numberMatch = input.match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);
-      // If a number is found, return that input.
-      if (numberMatch) {
-        return Number(numberMatch[0]);
-      }
-    }
-
-    // If the input was invalid return the default value.
-    return this.opt.default == null ? NaN : this.opt.default;
-  }
-}
-
-module.exports = NumberPrompt;
diff --git a/node_modules/inquirer/lib/prompts/password.js b/node_modules/inquirer/lib/prompts/password.js
deleted file mode 100644
index d5343b3..0000000
--- a/node_modules/inquirer/lib/prompts/password.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-/**
- * `password` type prompt
- */
-
-var chalk = require('chalk');
-var { map, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var observe = require('../utils/events');
-
-function mask(input, maskChar) {
-  input = String(input);
-  maskChar = typeof maskChar === 'string' ? maskChar : '*';
-  if (input.length === 0) {
-    return '';
-  }
-
-  return new Array(input.length + 1).join(maskChar);
-}
-
-class PasswordPrompt extends Base {
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    var events = observe(this.rl);
-
-    // Once user confirm (enter key)
-    var submit = events.line.pipe(map(this.filterInput.bind(this)));
-
-    var validation = this.handleSubmitEvents(submit);
-    validation.success.forEach(this.onEnd.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-
-    events.keypress
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onKeypress.bind(this));
-
-    // Init
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {PasswordPrompt} self
-   */
-
-  render(error) {
-    var message = this.getQuestion();
-    var bottomContent = '';
-
-    if (this.status === 'answered') {
-      message += this.opt.mask
-        ? chalk.cyan(mask(this.answer, this.opt.mask))
-        : chalk.italic.dim('[hidden]');
-    } else if (this.opt.mask) {
-      message += mask(this.rl.line || '', this.opt.mask);
-    } else {
-      message += chalk.italic.dim('[input is hidden] ');
-    }
-
-    if (error) {
-      bottomContent = '\n' + chalk.red('>> ') + error;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  filterInput(input) {
-    if (!input) {
-      return this.opt.default == null ? '' : this.opt.default;
-    }
-
-    return input;
-  }
-
-  onEnd(state) {
-    this.status = 'answered';
-    this.answer = state.value;
-
-    // Re-render prompt
-    this.render();
-
-    this.screen.done();
-    this.done(state.value);
-  }
-
-  onError(state) {
-    this.render(state.isValid);
-  }
-
-  onKeypress() {
-    // If user press a key, just clear the default value
-    if (this.opt.default) {
-      this.opt.default = undefined;
-    }
-
-    this.render();
-  }
-}
-
-module.exports = PasswordPrompt;
diff --git a/node_modules/inquirer/lib/prompts/rawlist.js b/node_modules/inquirer/lib/prompts/rawlist.js
deleted file mode 100644
index 418114b..0000000
--- a/node_modules/inquirer/lib/prompts/rawlist.js
+++ /dev/null
@@ -1,216 +0,0 @@
-'use strict';
-/**
- * `rawlist` type prompt
- */
-
-var _ = require('lodash');
-var chalk = require('chalk');
-var { map, takeUntil } = require('rxjs/operators');
-var Base = require('./base');
-var Separator = require('../objects/separator');
-var observe = require('../utils/events');
-var Paginator = require('../utils/paginator');
-
-class RawListPrompt extends Base {
-  constructor(questions, rl, answers) {
-    super(questions, rl, answers);
-
-    if (!this.opt.choices) {
-      this.throwParamError('choices');
-    }
-
-    this.opt.validChoices = this.opt.choices.filter(Separator.exclude);
-
-    this.selected = 0;
-    this.rawDefault = 0;
-
-    _.extend(this.opt, {
-      validate: function(val) {
-        return val != null;
-      }
-    });
-
-    var def = this.opt.default;
-    if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
-      this.selected = def;
-      this.rawDefault = def;
-    } else if (!_.isNumber(def) && def != null) {
-      let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def);
-      let safeIndex = Math.max(index, 0);
-      this.selected = safeIndex;
-      this.rawDefault = safeIndex;
-    }
-
-    // Make sure no default is set (so it won't be printed)
-    this.opt.default = null;
-
-    this.paginator = new Paginator();
-  }
-
-  /**
-   * Start the Inquiry session
-   * @param  {Function} cb      Callback when prompt is done
-   * @return {this}
-   */
-
-  _run(cb) {
-    this.done = cb;
-
-    // Once user confirm (enter key)
-    var events = observe(this.rl);
-    var submit = events.line.pipe(map(this.getCurrentValue.bind(this)));
-
-    var validation = this.handleSubmitEvents(submit);
-    validation.success.forEach(this.onEnd.bind(this));
-    validation.error.forEach(this.onError.bind(this));
-
-    events.normalizedUpKey.pipe(takeUntil(events.line)).forEach(this.onUpKey.bind(this));
-    events.normalizedDownKey
-      .pipe(takeUntil(events.line))
-      .forEach(this.onDownKey.bind(this));
-    events.keypress
-      .pipe(takeUntil(validation.success))
-      .forEach(this.onKeypress.bind(this));
-    // Init the prompt
-    this.render();
-
-    return this;
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {RawListPrompt} self
-   */
-
-  render(error) {
-    // Render question
-    var message = this.getQuestion();
-    var bottomContent = '';
-
-    if (this.status === 'answered') {
-      message += chalk.cyan(this.answer);
-    } else {
-      var choicesStr = renderChoices(this.opt.choices, this.selected);
-      message +=
-        '\n' + this.paginator.paginate(choicesStr, this.selected, this.opt.pageSize);
-      message += '\n  Answer: ';
-    }
-    message += this.rl.line;
-
-    if (error) {
-      bottomContent = '\n' + chalk.red('>> ') + error;
-    }
-
-    this.screen.render(message, bottomContent);
-  }
-
-  /**
-   * When user press `enter` key
-   */
-
-  getCurrentValue(index) {
-    if (index == null) {
-      index = this.rawDefault;
-    } else if (index === '') {
-      index = this.selected;
-    } else {
-      index -= 1;
-    }
-
-    var choice = this.opt.choices.getChoice(index);
-    return choice ? choice.value : null;
-  }
-
-  onEnd(state) {
-    this.status = 'answered';
-    this.answer = state.value;
-
-    // Re-render prompt
-    this.render();
-
-    this.screen.done();
-    this.done(state.value);
-  }
-
-  onError() {
-    this.render('Please enter a valid index');
-  }
-
-  /**
-   * When user press a key
-   */
-
-  onKeypress() {
-    var index = this.rl.line.length ? Number(this.rl.line) - 1 : 0;
-
-    if (this.opt.choices.getChoice(index)) {
-      this.selected = index;
-    } else {
-      this.selected = undefined;
-    }
-    this.render();
-  }
-
-  /**
-   * When user press up key
-   */
-
-  onUpKey() {
-    this.onArrowKey('up');
-  }
-
-  /**
-   * When user press down key
-   */
-
-  onDownKey() {
-    this.onArrowKey('down');
-  }
-
-  /**
-   * When user press up or down key
-   * @param {String} type Arrow type: up or down
-   */
-
-  onArrowKey(type) {
-    var len = this.opt.choices.realLength;
-
-    if (type === 'up') this.selected = this.selected > 0 ? this.selected - 1 : len - 1;
-    else this.selected = this.selected < len - 1 ? this.selected + 1 : 0;
-
-    this.rl.line = String(this.selected + 1);
-  }
-}
-
-/**
- * Function for rendering list choices
- * @param  {Number} pointer Position of the pointer
- * @return {String}         Rendered content
- */
-
-function renderChoices(choices, pointer) {
-  var output = '';
-  var separatorOffset = 0;
-
-  choices.forEach(function(choice, i) {
-    output += '\n  ';
-
-    if (choice.type === 'separator') {
-      separatorOffset++;
-      output += ' ' + choice;
-      return;
-    }
-
-    var index = i - separatorOffset;
-    var display = index + 1 + ') ' + choice.name;
-    if (index === pointer) {
-      display = chalk.cyan(display);
-    }
-
-    output += display;
-  });
-
-  return output;
-}
-
-module.exports = RawListPrompt;
diff --git a/node_modules/inquirer/lib/ui/baseUI.js b/node_modules/inquirer/lib/ui/baseUI.js
deleted file mode 100644
index 45248ef..0000000
--- a/node_modules/inquirer/lib/ui/baseUI.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-var _ = require('lodash');
-var MuteStream = require('mute-stream');
-var readline = require('readline');
-
-/**
- * Base interface class other can inherits from
- */
-
-class UI {
-  constructor(opt) {
-    // Instantiate the Readline interface
-    // @Note: Don't reassign if already present (allow test to override the Stream)
-    if (!this.rl) {
-      this.rl = readline.createInterface(setupReadlineOptions(opt));
-    }
-
-    this.rl.resume();
-
-    this.onForceClose = this.onForceClose.bind(this);
-
-    // Make sure new prompt start on a newline when closing
-    process.on('exit', this.onForceClose);
-
-    // Terminate process on SIGINT (which will call process.on('exit') in return)
-    this.rl.on('SIGINT', this.onForceClose);
-  }
-
-  /**
-   * Handle the ^C exit
-   * @return {null}
-   */
-
-  onForceClose() {
-    this.close();
-    process.kill(process.pid, 'SIGINT');
-    console.log('');
-  }
-
-  /**
-   * Close the interface and cleanup listeners
-   */
-
-  close() {
-    // Remove events listeners
-    this.rl.removeListener('SIGINT', this.onForceClose);
-    process.removeListener('exit', this.onForceClose);
-
-    this.rl.output.unmute();
-
-    if (this.activePrompt && typeof this.activePrompt.close === 'function') {
-      this.activePrompt.close();
-    }
-
-    // Close the readline
-    this.rl.output.end();
-    this.rl.pause();
-    this.rl.close();
-  }
-}
-
-function setupReadlineOptions(opt) {
-  opt = opt || {};
-  // Inquirer 8.x:
-  // opt.skipTTYChecks = opt.skipTTYChecks === undefined ? opt.input !== undefined : opt.skipTTYChecks;
-  opt.skipTTYChecks = opt.skipTTYChecks === undefined ? true : opt.skipTTYChecks;
-
-  // Default `input` to stdin
-  var input = opt.input || process.stdin;
-
-  // Check if prompt is being called in TTY environment
-  // If it isn't return a failed promise
-  if (!opt.skipTTYChecks && !input.isTTY) {
-    const nonTtyError = new Error(
-      'Prompts can not be meaningfully rendered in non-TTY environments'
-    );
-    nonTtyError.isTtyError = true;
-    throw nonTtyError;
-  }
-
-  // Add mute capabilities to the output
-  var ms = new MuteStream();
-  ms.pipe(opt.output || process.stdout);
-  var output = ms;
-
-  return _.extend(
-    {
-      terminal: true,
-      input: input,
-      output: output
-    },
-    _.omit(opt, ['input', 'output'])
-  );
-}
-
-module.exports = UI;
diff --git a/node_modules/inquirer/lib/ui/bottom-bar.js b/node_modules/inquirer/lib/ui/bottom-bar.js
deleted file mode 100644
index b56d6d7..0000000
--- a/node_modules/inquirer/lib/ui/bottom-bar.js
+++ /dev/null
@@ -1,100 +0,0 @@
-'use strict';
-/**
- * Sticky bottom bar user interface
- */
-
-var through = require('through');
-var Base = require('./baseUI');
-var rlUtils = require('../utils/readline');
-var _ = require('lodash');
-
-class BottomBar extends Base {
-  constructor(opt) {
-    opt = opt || {};
-
-    super(opt);
-
-    this.log = through(this.writeLog.bind(this));
-    this.bottomBar = opt.bottomBar || '';
-    this.render();
-  }
-
-  /**
-   * Render the prompt to screen
-   * @return {BottomBar} self
-   */
-
-  render() {
-    this.write(this.bottomBar);
-    return this;
-  }
-
-  clean() {
-    rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length);
-    return this;
-  }
-
-  /**
-   * Update the bottom bar content and rerender
-   * @param  {String} bottomBar Bottom bar content
-   * @return {BottomBar}           self
-   */
-
-  updateBottomBar(bottomBar) {
-    rlUtils.clearLine(this.rl, 1);
-    this.rl.output.unmute();
-    this.clean();
-    this.bottomBar = bottomBar;
-    this.render();
-    this.rl.output.mute();
-    return this;
-  }
-
-  /**
-   * Write out log data
-   * @param {String} data - The log data to be output
-   * @return {BottomBar} self
-   */
-
-  writeLog(data) {
-    this.rl.output.unmute();
-    this.clean();
-    this.rl.output.write(this.enforceLF(data.toString()));
-    this.render();
-    this.rl.output.mute();
-    return this;
-  }
-
-  /**
-   * Make sure line end on a line feed
-   * @param  {String} str Input string
-   * @return {String}     The input string with a final line feed
-   */
-
-  enforceLF(str) {
-    return str.match(/[\r\n]$/) ? str : str + '\n';
-  }
-
-  /**
-   * Helper for writing message in Prompt
-   * @param {BottomBar} prompt  - The Prompt object that extends tty
-   * @param {String} message - The message to be output
-   */
-  write(message) {
-    var msgLines = message.split(/\n/);
-    this.height = msgLines.length;
-
-    // Write message to screen and setPrompt to control backspace
-    this.rl.setPrompt(_.last(msgLines));
-
-    if (this.rl.output.rows === 0 && this.rl.output.columns === 0) {
-      /* When it's a tty through serial port there's no terminal info and the render will malfunction,
-         so we need enforce the cursor to locate to the leftmost position for rendering. */
-      rlUtils.left(this.rl, message.length + this.rl.line.length);
-    }
-
-    this.rl.output.write(message);
-  }
-}
-
-module.exports = BottomBar;
diff --git a/node_modules/inquirer/lib/ui/prompt.js b/node_modules/inquirer/lib/ui/prompt.js
deleted file mode 100644
index 9735c99..0000000
--- a/node_modules/inquirer/lib/ui/prompt.js
+++ /dev/null
@@ -1,132 +0,0 @@
-'use strict';
-var _ = require('lodash');
-var { defer, empty, from, of } = require('rxjs');
-var { concatMap, filter, publish, reduce } = require('rxjs/operators');
-var runAsync = require('run-async');
-var utils = require('../utils/utils');
-var Base = require('./baseUI');
-
-/**
- * Base interface class other can inherits from
- */
-
-class PromptUI extends Base {
-  constructor(prompts, opt) {
-    super(opt);
-    this.prompts = prompts;
-  }
-
-  run(questions, answers) {
-    // Keep global reference to the answers
-    if (_.isPlainObject(answers)) {
-      this.answers = _.clone(answers);
-    } else {
-      this.answers = {};
-    }
-
-    // Make sure questions is an array.
-    if (_.isPlainObject(questions)) {
-      questions = [questions];
-    }
-
-    // Create an observable, unless we received one as parameter.
-    // Note: As this is a public interface, we cannot do an instanceof check as we won't
-    // be using the exact same object in memory.
-    var obs = _.isArray(questions) ? from(questions) : questions;
-
-    this.process = obs.pipe(
-      concatMap(this.processQuestion.bind(this)),
-      publish() // Creates a hot Observable. It prevents duplicating prompts.
-    );
-
-    this.process.connect();
-
-    return this.process
-      .pipe(
-        reduce((answers, answer) => {
-          _.set(answers, answer.name, answer.answer);
-          return answers;
-        }, this.answers)
-      )
-      .toPromise(Promise)
-      .then(this.onCompletion.bind(this));
-  }
-
-  /**
-   * Once all prompt are over
-   */
-
-  onCompletion() {
-    this.close();
-
-    return this.answers;
-  }
-
-  processQuestion(question) {
-    question = _.clone(question);
-    return defer(() => {
-      var obs = of(question);
-
-      return obs.pipe(
-        concatMap(this.setDefaultType.bind(this)),
-        concatMap(this.filterIfRunnable.bind(this)),
-        concatMap(() =>
-          utils.fetchAsyncQuestionProperty(question, 'message', this.answers)
-        ),
-        concatMap(() =>
-          utils.fetchAsyncQuestionProperty(question, 'default', this.answers)
-        ),
-        concatMap(() =>
-          utils.fetchAsyncQuestionProperty(question, 'choices', this.answers)
-        ),
-        concatMap(this.fetchAnswer.bind(this))
-      );
-    });
-  }
-
-  fetchAnswer(question) {
-    var Prompt = this.prompts[question.type];
-    this.activePrompt = new Prompt(question, this.rl, this.answers);
-    return defer(() =>
-      from(
-        this.activePrompt.run().then(answer => ({ name: question.name, answer: answer }))
-      )
-    );
-  }
-
-  setDefaultType(question) {
-    // Default type to input
-    if (!this.prompts[question.type]) {
-      question.type = 'input';
-    }
-
-    return defer(() => of(question));
-  }
-
-  filterIfRunnable(question) {
-    if (question.askAnswered !== true && this.answers[question.name] !== undefined) {
-      return empty();
-    }
-
-    if (question.when === false) {
-      return empty();
-    }
-
-    if (!_.isFunction(question.when)) {
-      return of(question);
-    }
-
-    var answers = this.answers;
-    return defer(() =>
-      from(
-        runAsync(question.when)(answers).then(shouldRun => {
-          if (shouldRun) {
-            return question;
-          }
-        })
-      ).pipe(filter(val => val != null))
-    );
-  }
-}
-
-module.exports = PromptUI;
diff --git a/node_modules/inquirer/lib/utils/events.js b/node_modules/inquirer/lib/utils/events.js
deleted file mode 100644
index 966d146..0000000
--- a/node_modules/inquirer/lib/utils/events.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-var { fromEvent } = require('rxjs');
-var { filter, map, share, takeUntil } = require('rxjs/operators');
-
-function normalizeKeypressEvents(value, key) {
-  return { value: value, key: key || {} };
-}
-
-module.exports = function(rl) {
-  var keypress = fromEvent(rl.input, 'keypress', normalizeKeypressEvents)
-    .pipe(takeUntil(fromEvent(rl, 'close')))
-    // Ignore `enter` key. On the readline, we only care about the `line` event.
-    .pipe(filter(({ key }) => key.name !== 'enter' && key.name !== 'return'));
-
-  return {
-    line: fromEvent(rl, 'line'),
-    keypress: keypress,
-
-    normalizedUpKey: keypress.pipe(
-      filter(
-        ({ key }) =>
-          key.name === 'up' || key.name === 'k' || (key.name === 'p' && key.ctrl)
-      ),
-      share()
-    ),
-
-    normalizedDownKey: keypress.pipe(
-      filter(
-        ({ key }) =>
-          key.name === 'down' || key.name === 'j' || (key.name === 'n' && key.ctrl)
-      ),
-      share()
-    ),
-
-    numberKey: keypress.pipe(
-      filter(e => e.value && '123456789'.indexOf(e.value) >= 0),
-      map(e => Number(e.value)),
-      share()
-    ),
-
-    spaceKey: keypress.pipe(
-      filter(({ key }) => key && key.name === 'space'),
-      share()
-    ),
-    aKey: keypress.pipe(
-      filter(({ key }) => key && key.name === 'a'),
-      share()
-    ),
-    iKey: keypress.pipe(
-      filter(({ key }) => key && key.name === 'i'),
-      share()
-    )
-  };
-};
diff --git a/node_modules/inquirer/lib/utils/paginator.js b/node_modules/inquirer/lib/utils/paginator.js
deleted file mode 100644
index 272d104..0000000
--- a/node_modules/inquirer/lib/utils/paginator.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var chalk = require('chalk');
-
-/**
- * The paginator keeps track of a pointer index in a list and returns
- * a subset of the choices if the list is too long.
- */
-
-class Paginator {
-  constructor(screen) {
-    this.pointer = 0;
-    this.lastIndex = 0;
-    this.screen = screen;
-  }
-
-  paginate(output, active, pageSize) {
-    pageSize = pageSize || 7;
-    var middleOfList = Math.floor(pageSize / 2);
-    var lines = output.split('\n');
-
-    if (this.screen) {
-      lines = this.screen.breakLines(lines);
-      active = _.sum(lines.map(lineParts => lineParts.length).splice(0, active));
-      lines = _.flatten(lines);
-    }
-
-    // Make sure there's enough lines to paginate
-    if (lines.length <= pageSize) {
-      return output;
-    }
-
-    // Move the pointer only when the user go down and limit it to the middle of the list
-    if (
-      this.pointer < middleOfList &&
-      this.lastIndex < active &&
-      active - this.lastIndex < pageSize
-    ) {
-      this.pointer = Math.min(middleOfList, this.pointer + active - this.lastIndex);
-    }
-
-    this.lastIndex = active;
-
-    // Duplicate the lines so it give an infinite list look
-    var infinite = _.flatten([lines, lines, lines]);
-    var topIndex = Math.max(0, active + lines.length - this.pointer);
-
-    var section = infinite.splice(topIndex, pageSize).join('\n');
-    return section + '\n' + chalk.dim('(Move up and down to reveal more choices)');
-  }
-}
-
-module.exports = Paginator;
diff --git a/node_modules/inquirer/lib/utils/readline.js b/node_modules/inquirer/lib/utils/readline.js
deleted file mode 100644
index 929b672..0000000
--- a/node_modules/inquirer/lib/utils/readline.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-var ansiEscapes = require('ansi-escapes');
-
-/**
- * Move cursor left by `x`
- * @param  {Readline} rl - Readline instance
- * @param  {Number}   x  - How far to go left (default to 1)
- */
-
-exports.left = function(rl, x) {
-  rl.output.write(ansiEscapes.cursorBackward(x));
-};
-
-/**
- * Move cursor right by `x`
- * @param  {Readline} rl - Readline instance
- * @param  {Number}   x  - How far to go left (default to 1)
- */
-
-exports.right = function(rl, x) {
-  rl.output.write(ansiEscapes.cursorForward(x));
-};
-
-/**
- * Move cursor up by `x`
- * @param  {Readline} rl - Readline instance
- * @param  {Number}   x  - How far to go up (default to 1)
- */
-
-exports.up = function(rl, x) {
-  rl.output.write(ansiEscapes.cursorUp(x));
-};
-
-/**
- * Move cursor down by `x`
- * @param  {Readline} rl - Readline instance
- * @param  {Number}   x  - How far to go down (default to 1)
- */
-
-exports.down = function(rl, x) {
-  rl.output.write(ansiEscapes.cursorDown(x));
-};
-
-/**
- * Clear current line
- * @param  {Readline} rl  - Readline instance
- * @param  {Number}   len - number of line to delete
- */
-exports.clearLine = function(rl, len) {
-  rl.output.write(ansiEscapes.eraseLines(len));
-};
diff --git a/node_modules/inquirer/lib/utils/screen-manager.js b/node_modules/inquirer/lib/utils/screen-manager.js
deleted file mode 100644
index 6b8f669..0000000
--- a/node_modules/inquirer/lib/utils/screen-manager.js
+++ /dev/null
@@ -1,142 +0,0 @@
-'use strict';
-var _ = require('lodash');
-var util = require('./readline');
-var cliWidth = require('cli-width');
-var stripAnsi = require('strip-ansi');
-var stringWidth = require('string-width');
-
-function height(content) {
-  return content.split('\n').length;
-}
-
-function lastLine(content) {
-  return _.last(content.split('\n'));
-}
-
-class ScreenManager {
-  constructor(rl) {
-    // These variables are keeping information to allow correct prompt re-rendering
-    this.height = 0;
-    this.extraLinesUnderPrompt = 0;
-
-    this.rl = rl;
-  }
-
-  render(content, bottomContent) {
-    this.rl.output.unmute();
-    this.clean(this.extraLinesUnderPrompt);
-
-    /**
-     * Write message to screen and setPrompt to control backspace
-     */
-
-    var promptLine = lastLine(content);
-    var rawPromptLine = stripAnsi(promptLine);
-
-    // Remove the rl.line from our prompt. We can't rely on the content of
-    // rl.line (mainly because of the password prompt), so just rely on it's
-    // length.
-    var prompt = rawPromptLine;
-    if (this.rl.line.length) {
-      prompt = prompt.slice(0, -this.rl.line.length);
-    }
-
-    this.rl.setPrompt(prompt);
-
-    // SetPrompt will change cursor position, now we can get correct value
-    var cursorPos = this.rl._getCursorPos();
-    var width = this.normalizedCliWidth();
-
-    content = this.forceLineReturn(content, width);
-    if (bottomContent) {
-      bottomContent = this.forceLineReturn(bottomContent, width);
-    }
-
-    // Manually insert an extra line if we're at the end of the line.
-    // This prevent the cursor from appearing at the beginning of the
-    // current line.
-    if (rawPromptLine.length % width === 0) {
-      content += '\n';
-    }
-
-    var fullContent = content + (bottomContent ? '\n' + bottomContent : '');
-    this.rl.output.write(fullContent);
-
-    /**
-     * Re-adjust the cursor at the correct position.
-     */
-
-    // We need to consider parts of the prompt under the cursor as part of the bottom
-    // content in order to correctly cleanup and re-render.
-    var promptLineUpDiff = Math.floor(rawPromptLine.length / width) - cursorPos.rows;
-    var bottomContentHeight =
-      promptLineUpDiff + (bottomContent ? height(bottomContent) : 0);
-    if (bottomContentHeight > 0) {
-      util.up(this.rl, bottomContentHeight);
-    }
-
-    // Reset cursor at the beginning of the line
-    util.left(this.rl, stringWidth(lastLine(fullContent)));
-
-    // Adjust cursor on the right
-    if (cursorPos.cols > 0) {
-      util.right(this.rl, cursorPos.cols);
-    }
-
-    /**
-     * Set up state for next re-rendering
-     */
-    this.extraLinesUnderPrompt = bottomContentHeight;
-    this.height = height(fullContent);
-
-    this.rl.output.mute();
-  }
-
-  clean(extraLines) {
-    if (extraLines > 0) {
-      util.down(this.rl, extraLines);
-    }
-
-    util.clearLine(this.rl, this.height);
-  }
-
-  done() {
-    this.rl.setPrompt('');
-    this.rl.output.unmute();
-    this.rl.output.write('\n');
-  }
-
-  releaseCursor() {
-    if (this.extraLinesUnderPrompt > 0) {
-      util.down(this.rl, this.extraLinesUnderPrompt);
-    }
-  }
-
-  normalizedCliWidth() {
-    var width = cliWidth({
-      defaultWidth: 80,
-      output: this.rl.output
-    });
-    return width;
-  }
-
-  breakLines(lines, width) {
-    // Break lines who're longer than the cli width so we can normalize the natural line
-    // returns behavior across terminals.
-    width = width || this.normalizedCliWidth();
-    var regex = new RegExp('(?:(?:\\033[[0-9;]*m)*.?){1,' + width + '}', 'g');
-    return lines.map(line => {
-      var chunk = line.match(regex);
-      // Last match is always empty
-      chunk.pop();
-      return chunk || '';
-    });
-  }
-
-  forceLineReturn(content, width) {
-    width = width || this.normalizedCliWidth();
-    return _.flatten(this.breakLines(content.split('\n'), width)).join('\n');
-  }
-}
-
-module.exports = ScreenManager;
diff --git a/node_modules/inquirer/lib/utils/utils.js b/node_modules/inquirer/lib/utils/utils.js
deleted file mode 100644
index 942b35c..0000000
--- a/node_modules/inquirer/lib/utils/utils.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-var _ = require('lodash');
-var { from, of } = require('rxjs');
-var runAsync = require('run-async');
-
-/**
- * Resolve a question property value if it is passed as a function.
- * This method will overwrite the property on the question object with the received value.
- * @param  {Object} question - Question object
- * @param  {String} prop     - Property to fetch name
- * @param  {Object} answers  - Answers object
- * @return {Rx.Observable}   - Observable emitting once value is known
- */
-
-exports.fetchAsyncQuestionProperty = function(question, prop, answers) {
-  if (!_.isFunction(question[prop])) {
-    return of(question);
-  }
-
-  return from(
-    runAsync(question[prop])(answers).then(value => {
-      question[prop] = value;
-      return question;
-    })
-  );
-};
diff --git a/node_modules/inquirer/package.json b/node_modules/inquirer/package.json
deleted file mode 100644
index bc8e431..0000000
--- a/node_modules/inquirer/package.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
-  "name": "inquirer",
-  "version": "7.1.0",
-  "description": "A collection of common interactive command line user interfaces.",
-  "author": "Simon Boudrias <admin@simonboudrias.com>",
-  "files": [
-    "lib",
-    "README.md"
-  ],
-  "main": "lib/inquirer.js",
-  "keywords": [
-    "command",
-    "prompt",
-    "stdin",
-    "cli",
-    "tty",
-    "menu"
-  ],
-  "engines": {
-    "node": ">=6.0.0"
-  },
-  "devDependencies": {
-    "chai": "^4.2.0",
-    "chalk-pipe": "^3.0.0",
-    "cmdify": "^0.0.4",
-    "mocha": "^7.1.0",
-    "mockery": "^2.1.0",
-    "nyc": "^15.0.0",
-    "sinon": "^9.0.0"
-  },
-  "scripts": {
-    "test": "nyc mocha test/**/* -r ./test/before",
-    "posttest": "nyc report --reporter=text-lcov > ../../coverage/nyc-report.lcov",
-    "prepublishOnly": "cp ../../README.md .",
-    "postpublish": "rm -f README.md"
-  },
-  "repository": "SBoudrias/Inquirer.js",
-  "license": "MIT",
-  "dependencies": {
-    "ansi-escapes": "^4.2.1",
-    "chalk": "^3.0.0",
-    "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.4.0",
-    "rxjs": "^6.5.3",
-    "string-width": "^4.1.0",
-    "strip-ansi": "^6.0.0",
-    "through": "^2.3.6"
-  },
-  "gitHead": "cdce9828f5f27b89e5743b1826876b9042db410a"
-}
diff --git a/node_modules/internal-slot/.eslintrc b/node_modules/internal-slot/.eslintrc
deleted file mode 100644
index cab5bd0..0000000
--- a/node_modules/internal-slot/.eslintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"max-params": [2, 3],
-		"new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }],
-		"no-magic-numbers": 0,
-		"operator-linebreak": [2, "before"],
-	},
-}
diff --git a/node_modules/internal-slot/.github/FUNDING.yml b/node_modules/internal-slot/.github/FUNDING.yml
deleted file mode 100644
index 8dc96e2..0000000
--- a/node_modules/internal-slot/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/internal-slot
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with a single custom sponsorship URL
diff --git a/node_modules/internal-slot/.github/workflows/rebase.yml b/node_modules/internal-slot/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/internal-slot/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/internal-slot/.travis.yml b/node_modules/internal-slot/.travis.yml
deleted file mode 100644
index 0b5d834..0000000
--- a/node_modules/internal-slot/.travis.yml
+++ /dev/null
@@ -1,319 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
-  - "12.12"
-  - "11.15"
-  - "10.16"
-  - "9.11"
-  - "8.16"
-  - "7.10"
-  - "6.17"
-  - "5.12"
-  - "4.9"
-  - "iojs-v3.3"
-  - "iojs-v2.5"
-  - "iojs-v1.8"
-  - "0.12"
-  - "0.10"
-  - "0.8"
-before_install:
-  - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
-  - 'nvm install-latest-npm'
-install:
-  - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
-  - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
-  - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
-  - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
-  - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
-  - TEST=true
-matrix:
-  fast_finish: true
-  include:
-    - node_js: "lts/*"
-      env: PRETEST=true
-    - node_js: "lts/*"
-      env: POSTTEST=true
-    - node_js: "12.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "12.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.14"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.13"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.12"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "11.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.15"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.14"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.13"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.12"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "10.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "9.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.15"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.14"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.13"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.12"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "8.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "7.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.16"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.15"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.14"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.13"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.12"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "6.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.10"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "5.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.8"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "4.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v3.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v3.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v3.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v2.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v2.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v2.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v2.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v2.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.7"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.5"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.4"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.3"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.2"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.1"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "iojs-v1.0"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "0.11"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "0.9"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "0.6"
-      env: TEST=true ALLOW_FAILURE=true
-    - node_js: "0.4"
-      env: TEST=true ALLOW_FAILURE=true
-  allow_failures:
-    - os: osx
-    - env: TEST=true ALLOW_FAILURE=true
-    - env: COVERAGE=true
diff --git a/node_modules/internal-slot/CHANGELOG.md b/node_modules/internal-slot/CHANGELOG.md
deleted file mode 100644
index 11c57b1..0000000
--- a/node_modules/internal-slot/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-### Changelog
-
-All notable changes to this project will be documented in this file. Dates are displayed in UTC.
-
-Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
-
-#### [v1.0.2](https://github.com/ljharb/internal-slot/compare/v1.0.1...v1.0.2)
-
-> 20 December 2019
-
-- [Deps] update `es-abstract`, `side-channel` [`5c9df03`](https://github.com/ljharb/internal-slot/commit/5c9df03a25518f5c482cff4e1447a26fa071df9a)
-- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`7820f98`](https://github.com/ljharb/internal-slot/commit/7820f984e523a64ddf3068c4e5631abf61eb1ea4)
-
-#### [v1.0.1](https://github.com/ljharb/internal-slot/compare/v1.0.0...v1.0.1)
-
-> 2 December 2019
-
-- [Refactor] use `side-channel` package [`d38639f`](https://github.com/ljharb/internal-slot/commit/d38639f0a3cdb5090711179d0e78df857ecbd5d3)
-- [actions] add automatic rebasing / merge commit blocking [`74267e6`](https://github.com/ljharb/internal-slot/commit/74267e6e591e18ba39186cb99139d3fd7a757c9f)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `safe-publish-latest` [`b042eef`](https://github.com/ljharb/internal-slot/commit/b042eefc067b830bbd370833f7f21754e802b0b2)
-- [Deps] update `es-abstract` [`98cf4e8`](https://github.com/ljharb/internal-slot/commit/98cf4e86c1bfe99eda7b11a8ea70394368f33e4f)
-
-#### v1.0.0
-
-> 21 October 2019
-
-- Tests [`b50fa41`](https://github.com/ljharb/internal-slot/commit/b50fa41b6f47aba39ac4cb733658580974a0b00a)
-- implementation [`c5a59f3`](https://github.com/ljharb/internal-slot/commit/c5a59f3753677f81aa12a0226d3b1187846d06dd)
-- Initial commit [`15ebe4d`](https://github.com/ljharb/internal-slot/commit/15ebe4dc6d46885f67969d64c9c3e705780963f8)
-- readme [`382a3f5`](https://github.com/ljharb/internal-slot/commit/382a3f53d8975e6488373a0fc2abcdc7c4c44247)
-- npm init [`d5e7c97`](https://github.com/ljharb/internal-slot/commit/d5e7c977ef694e89c245fd11165f63c06a7a5040)
-- [meta] add FUNDING.yml [`685b608`](https://github.com/ljharb/internal-slot/commit/685b6087613f6735f4411a558500d92f8a3ec3f2)
-- [meta] add `auto-changelog`, `safe-publish-latest` [`f8fdf1c`](https://github.com/ljharb/internal-slot/commit/f8fdf1c3f0c592f71746da6d7f8bea18f8946dda)
-- [Tests] add `npm run lint` [`baaaa09`](https://github.com/ljharb/internal-slot/commit/baaaa09ab6e5bc5fcc0e7c76e10c55aa18f4ca7e)
-- Only apps should have lockfiles [`dfa7efa`](https://github.com/ljharb/internal-slot/commit/dfa7efa3d5cd23261cb75c2adab6ee3c06790fee)
diff --git a/node_modules/internal-slot/LICENSE b/node_modules/internal-slot/LICENSE
deleted file mode 100644
index 3900dd7..0000000
--- a/node_modules/internal-slot/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Jordan Harband
-
-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.
diff --git a/node_modules/internal-slot/README.md b/node_modules/internal-slot/README.md
deleted file mode 100644
index 17d3f6e..0000000
--- a/node_modules/internal-slot/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# internal-slot <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-Truly private storage, akin to the JS spec’s concept of internal slots.
-
-Uses a WeakMap when available; a Map when not; and a regular object in even older engines. Performance and garbage collection behavior will reflect the environment’s capabilities accordingly.
-
-## Example
-
-```js
-var SLOT = require('internal-slot');
-var assert = require('assert');
-
-var o = {};
-
-assert.throws(function () { SLOT.assert(o, 'foo'); });
-
-assert.equal(SLOT.has(o, 'foo'), false);
-assert.equal(SLOT.get(o, 'foo'), undefined);
-
-SLOT.set(o, 'foo', 42);
-
-assert.equal(SLOT.has(o, 'foo'), true);
-assert.equal(SLOT.get(o, 'foo'), 42);
-
-assert.doesNotThrow(function () { SLOT.assert(o, 'foo'); });
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-## Security
-
-Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
-
-[package-url]: https://npmjs.org/package/internal-slot
-[npm-version-svg]: http://versionbadg.es/ljharb/internal-slot.svg
-[travis-svg]: https://travis-ci.org/ljharb/internal-slot.svg
-[travis-url]: https://travis-ci.org/ljharb/internal-slot
-[deps-svg]: https://david-dm.org/ljharb/internal-slot.svg
-[deps-url]: https://david-dm.org/ljharb/internal-slot
-[dev-deps-svg]: https://david-dm.org/ljharb/internal-slot/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/internal-slot#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/internal-slot.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/internal-slot.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/internal-slot.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=internal-slot
diff --git a/node_modules/internal-slot/index.js b/node_modules/internal-slot/index.js
deleted file mode 100644
index b32aa83..0000000
--- a/node_modules/internal-slot/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('es-abstract/GetIntrinsic');
-var has = require('has');
-var channel = require('side-channel')();
-
-var $TypeError = GetIntrinsic('%TypeError%');
-
-var SLOT = {
-	assert: function (O, slot) {
-		if (!O || (typeof O !== 'object' && typeof O !== 'function')) {
-			throw new $TypeError('`O` is not an object');
-		}
-		if (typeof slot !== 'string') {
-			throw new $TypeError('`slot` must be a string');
-		}
-		channel.assert(O);
-	},
-	get: function (O, slot) {
-		if (!O || (typeof O !== 'object' && typeof O !== 'function')) {
-			throw new $TypeError('`O` is not an object');
-		}
-		if (typeof slot !== 'string') {
-			throw new $TypeError('`slot` must be a string');
-		}
-		var slots = channel.get(O);
-		return slots && slots['$' + slot];
-	},
-	has: function (O, slot) {
-		if (!O || (typeof O !== 'object' && typeof O !== 'function')) {
-			throw new $TypeError('`O` is not an object');
-		}
-		if (typeof slot !== 'string') {
-			throw new $TypeError('`slot` must be a string');
-		}
-		var slots = channel.get(O);
-		return !!slots && has(slots, '$' + slot);
-	},
-	set: function (O, slot, V) {
-		if (!O || (typeof O !== 'object' && typeof O !== 'function')) {
-			throw new $TypeError('`O` is not an object');
-		}
-		if (typeof slot !== 'string') {
-			throw new $TypeError('`slot` must be a string');
-		}
-		var slots = channel.get(O);
-		if (!slots) {
-			slots = {};
-			channel.set(O, slots);
-		}
-		slots['$' + slot] = V;
-	}
-};
-
-if (Object.freeze) {
-	Object.freeze(SLOT);
-}
-
-module.exports = SLOT;
diff --git a/node_modules/internal-slot/package.json b/node_modules/internal-slot/package.json
deleted file mode 100644
index c59cc32..0000000
--- a/node_modules/internal-slot/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-	"name": "internal-slot",
-	"version": "1.0.2",
-	"description": "ES spec-like internal slots",
-	"main": "index.js",
-	"scripts": {
-		"prepublish": "safe-publish-latest",
-		"version": "auto-changelog && git add CHANGELOG.md",
-		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
-		"pretest": "npm run lint",
-		"lint": "eslint .",
-		"tests-only": "node test",
-		"test": "npm run tests-only",
-		"posttest": "npx aud"
-	},
-	"repository": {
-		"type": "git",
-		"url": "git+https://github.com/ljharb/internal-slot.git"
-	},
-	"keywords": [
-		"internal",
-		"slot",
-		"internal slot",
-		"ecmascript",
-		"es",
-		"spec",
-		"private",
-		"data",
-		"private data",
-		"weakmap"
-	],
-	"author": "Jordan Harband <ljharb@gmail.com>",
-	"license": "MIT",
-	"bugs": {
-		"url": "https://github.com/ljharb/internal-slot/issues"
-	},
-	"homepage": "https://github.com/ljharb/internal-slot#readme",
-	"engines": {
-		"node": ">= 0.4"
-	},
-	"devDependencies": {
-		"@ljharb/eslint-config": "^15.1.0",
-		"auto-changelog": "^1.16.2",
-		"eslint": "^6.7.2",
-		"foreach": "^2.0.5",
-		"object-inspect": "^1.7.0",
-		"safe-publish-latest": "^1.1.4",
-		"tape": "^4.12.0"
-	},
-	"dependencies": {
-		"es-abstract": "^1.17.0-next.1",
-		"has": "^1.0.3",
-		"side-channel": "^1.0.2"
-	},
-	"auto-changelog": {
-		"output": "CHANGELOG.md",
-		"unreleased": false,
-		"commitLimit": false,
-		"backfillLimit": false
-	}
-}
diff --git a/node_modules/internal-slot/test/index.js b/node_modules/internal-slot/test/index.js
deleted file mode 100644
index de65d45..0000000
--- a/node_modules/internal-slot/test/index.js
+++ /dev/null
@@ -1,120 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var inspect = require('object-inspect');
-var forEach = require('foreach');
-
-var SLOT = require('../');
-
-test('assert', function (t) {
-	forEach([null, undefined, true, false, 'foo', '', 42, 0], function (primitive) {
-		t['throws'](
-			function () { SLOT.assert(primitive, ''); },
-			TypeError,
-			inspect(primitive) + ' is not an Object'
-		);
-	});
-
-	forEach([null, undefined, true, false, 42, 0, {}, [], function () {}, /a/g], function (nonString) {
-		t['throws'](
-			function () { SLOT.assert({}, nonString); },
-			TypeError,
-			inspect(nonString) + ' is not a String'
-		);
-	});
-
-	t['throws'](
-		function () { SLOT.assert({}, 'whatever'); },
-		TypeError,
-		'nonexistent slot throws'
-	);
-
-	var o = {};
-	SLOT.set(o, 'x');
-	t.doesNotThrow(function () { SLOT.assert(o, 'x'); }, 'existent slot noops');
-
-	t.end();
-});
-
-test('has', function (t) {
-	forEach([null, undefined, true, false, 'foo', '', 42, 0], function (primitive) {
-		t['throws'](
-			function () { SLOT.has(primitive, ''); },
-			TypeError,
-			inspect(primitive) + ' is not an Object'
-		);
-	});
-
-	forEach([null, undefined, true, false, 42, 0, {}, [], function () {}, /a/g], function (nonString) {
-		t['throws'](
-			function () { SLOT.has({}, nonString); },
-			TypeError,
-			inspect(nonString) + ' is not a String'
-		);
-	});
-
-	var o = {};
-
-	t.equal(SLOT.has(o, 'nonexistent'), false, 'nonexistent slot yields false');
-
-	SLOT.set(o, 'foo');
-	t.equal(SLOT.has(o, 'foo'), true, 'existent slot yields true');
-
-	t.end();
-});
-
-test('get', function (t) {
-	forEach([null, undefined, true, false, 'foo', '', 42, 0], function (primitive) {
-		t['throws'](
-			function () { SLOT.get(primitive, ''); },
-			TypeError,
-			inspect(primitive) + ' is not an Object'
-		);
-	});
-
-	forEach([null, undefined, true, false, 42, 0, {}, [], function () {}, /a/g], function (nonString) {
-		t['throws'](
-			function () { SLOT.get({}, nonString); },
-			TypeError,
-			inspect(nonString) + ' is not a String'
-		);
-	});
-
-	var o = {};
-	t.equal(SLOT.get(o, 'nonexistent'), undefined, 'nonexistent slot is undefined');
-
-	var v = {};
-	SLOT.set(o, 'f', v);
-	t.equal(SLOT.get(o, 'f'), v, '"get" retrieves value set by "set"');
-
-	t.end();
-});
-
-test('set', function (t) {
-	forEach([null, undefined, true, false, 'foo', '', 42, 0], function (primitive) {
-		t['throws'](
-			function () { SLOT.set(primitive, ''); },
-			TypeError,
-			inspect(primitive) + ' is not an Object'
-		);
-	});
-
-	forEach([null, undefined, true, false, 42, 0, {}, [], function () {}, /a/g], function (nonString) {
-		t['throws'](
-			function () { SLOT.set({}, nonString); },
-			TypeError,
-			inspect(nonString) + ' is not a String'
-		);
-	});
-
-	var o = function () {};
-	t.equal(SLOT.get(o, 'f'), undefined, 'slot not set');
-
-	SLOT.set(o, 'f', 42);
-	t.equal(SLOT.get(o, 'f'), 42, 'slot was set');
-
-	SLOT.set(o, 'f', Infinity);
-	t.equal(SLOT.get(o, 'f'), Infinity, 'slot was set again');
-
-	t.end();
-});
diff --git a/node_modules/is-promise/.npmignore b/node_modules/is-promise/.npmignore
deleted file mode 100644
index aeb7b45..0000000
--- a/node_modules/is-promise/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-component
-build
-node_modules
-test.js
-component.json
-.gitignore
\ No newline at end of file
diff --git a/node_modules/is-promise/.travis.yml b/node_modules/is-promise/.travis.yml
deleted file mode 100644
index 87f8cd9..0000000
--- a/node_modules/is-promise/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
-  - "0.10"
\ No newline at end of file
diff --git a/node_modules/is-promise/LICENSE b/node_modules/is-promise/LICENSE
deleted file mode 100644
index 27cc9f3..0000000
--- a/node_modules/is-promise/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Forbes Lindesay
-
-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/node_modules/is-promise/index.js b/node_modules/is-promise/index.js
deleted file mode 100644
index ca2444c..0000000
--- a/node_modules/is-promise/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = isPromise;
-
-function isPromise(obj) {
-  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
-}
diff --git a/node_modules/is-promise/package.json b/node_modules/is-promise/package.json
deleted file mode 100644
index cd8dae9..0000000
--- a/node_modules/is-promise/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "name": "is-promise",
-  "version": "2.1.0",
-  "description": "Test whether an object looks like a promises-a+ promise",
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha -R spec"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/then/is-promise.git"
-  },
-  "author": "ForbesLindesay",
-  "license": "MIT",
-  "devDependencies": {
-    "better-assert": "~0.1.0",
-    "mocha": "~1.7.4"
-  }
-}
diff --git a/node_modules/is-promise/readme.md b/node_modules/is-promise/readme.md
deleted file mode 100644
index 50d5d98..0000000
--- a/node_modules/is-promise/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-<a href="http://promises-aplus.github.com/promises-spec"><img src="http://promises-aplus.github.com/promises-spec/assets/logo-small.png" align="right" /></a>
-# is-promise
-
-  Test whether an object looks like a promises-a+ promise
-
- [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise)
- [![Dependency Status](https://img.shields.io/gemnasium/then/is-promise.svg)](https://gemnasium.com/then/is-promise)
- [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise)
-
-## Installation
-
-    $ npm install is-promise
-
-You can also use it client side via npm.
-
-## API
-
-```javascript
-var isPromise = require('is-promise');
-
-isPromise({then:function () {...}});//=>true
-isPromise(null);//=>false
-isPromise({});//=>false
-isPromise({then: true})//=>false
-```
-
-## License
-
-  MIT
diff --git a/node_modules/istanbul-lib-instrument/node_modules/@babel/core/node_modules/.bin/semver b/node_modules/istanbul-lib-instrument/node_modules/@babel/core/node_modules/.bin/semver
index 317eb29..3bf1206 120000
--- a/node_modules/istanbul-lib-instrument/node_modules/@babel/core/node_modules/.bin/semver
+++ b/node_modules/istanbul-lib-instrument/node_modules/@babel/core/node_modules/.bin/semver
@@ -1 +1 @@
-../semver/bin/semver
\ No newline at end of file
+../../../../../../normalize-package-data/node_modules/semver/bin/semver
\ No newline at end of file
diff --git a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js
index 2824719..b23f688 100644
--- a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js
+++ b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js
@@ -1,59 +1,14 @@
 'use strict';
 
-var path = _interopRequireWildcard(require('path'));
-
 var _jestUtil = require('jest-util');
 
-function _getRequireWildcardCache() {
-  if (typeof WeakMap !== 'function') return null;
-  var cache = new WeakMap();
-  _getRequireWildcardCache = function () {
-    return cache;
-  };
-  return cache;
-}
-
-function _interopRequireWildcard(obj) {
-  if (obj && obj.__esModule) {
-    return obj;
-  }
-  if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
-    return {default: obj};
-  }
-  var cache = _getRequireWildcardCache();
-  if (cache && cache.has(obj)) {
-    return cache.get(obj);
-  }
-  var newObj = {};
-  var hasPropertyDescriptor =
-    Object.defineProperty && Object.getOwnPropertyDescriptor;
-  for (var key in obj) {
-    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-      var desc = hasPropertyDescriptor
-        ? Object.getOwnPropertyDescriptor(obj, key)
-        : null;
-      if (desc && (desc.get || desc.set)) {
-        Object.defineProperty(newObj, key, desc);
-      } else {
-        newObj[key] = obj[key];
-      }
-    }
-  }
-  newObj.default = obj;
-  if (cache) {
-    cache.set(obj, newObj);
-  }
-  return newObj;
-}
-
 /**
  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-const FRAMEWORK_INITIALIZER = path.resolve(__dirname, './jestAdapterInit.js');
-const EXPECT_INITIALIZER = path.resolve(__dirname, './jestExpect.js');
+const FRAMEWORK_INITIALIZER = require.resolve('./jestAdapterInit');
 
 const jestAdapter = async (
   globalConfig,
@@ -63,15 +18,12 @@
   testPath,
   sendMessageToJest
 ) => {
-  var _runtime$unstable_sho2;
+  var _runtime$setGlobalsFo, _runtime$unstable_sho2;
 
   const {
     initialize,
     runAndTransformResultsToJestFormat
   } = runtime.requireInternalModule(FRAMEWORK_INITIALIZER);
-  runtime.requireInternalModule(EXPECT_INITIALIZER).default({
-    expand: globalConfig.expand
-  });
 
   const getPrettier = () =>
     config.prettierPath ? require(config.prettierPath) : null;
@@ -87,6 +39,11 @@
     localRequire: runtime.requireModule.bind(runtime),
     parentProcess: process,
     sendMessageToJest,
+    setGlobalsForRuntime:
+      (_runtime$setGlobalsFo = runtime.setGlobalsForRuntime) === null ||
+      _runtime$setGlobalsFo === void 0
+        ? void 0
+        : _runtime$setGlobalsFo.bind(runtime),
     testPath
   });
 
diff --git a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.d.ts b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.d.ts
index b76bf67..8105128 100644
--- a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.d.ts
+++ b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.d.ts
@@ -5,43 +5,32 @@
  * LICENSE file in the root directory of this source tree.
  */
 /// <reference types="node" />
+import type BabelTraverse from '@babel/traverse';
 import type { Config, Global } from '@jest/types';
 import type { JestEnvironment } from '@jest/environment';
 import { TestResult } from '@jest/test-result';
 import type { TestFileEvent } from 'jest-runner';
+import { SnapshotStateType } from 'jest-snapshot';
+import globals from '..';
+import { Expect } from './jestExpect';
 declare type Process = NodeJS.Process;
-export declare const initialize: ({ config, environment, getPrettier, getBabelTraverse, globalConfig, localRequire, parentProcess, testPath, sendMessageToJest, }: {
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: Expect;
+}
+export declare const initialize: ({ config, environment, getPrettier, getBabelTraverse, globalConfig, localRequire, parentProcess, sendMessageToJest, setGlobalsForRuntime, testPath, }: {
     config: Config.ProjectConfig;
     environment: JestEnvironment;
     getPrettier: () => null | any;
-    getBabelTraverse: () => Function;
+    getBabelTraverse: () => typeof BabelTraverse;
     globalConfig: Config.GlobalConfig;
-    localRequire: (path: Config.Path) => any;
+    localRequire: <T = unknown>(path: Config.Path) => T;
     testPath: Config.Path;
     parentProcess: Process;
     sendMessageToJest?: import("jest-runner/build/types").TestFileEvent<"test-file-start" | "test-file-success" | "test-file-failure" | "test-case-result"> | undefined;
+    setGlobalsForRuntime?: ((globals: JestGlobals) => void) | undefined;
 }) => Promise<{
-    globals: {
-        afterAll: (fn: Global.TestFn, timeout?: number | undefined) => void;
-        afterEach: (fn: Global.TestFn, timeout?: number | undefined) => void;
-        beforeAll: (fn: Global.TestFn, timeout?: number | undefined) => void;
-        beforeEach: (fn: Global.TestFn, timeout?: number | undefined) => void;
-        describe: {
-            (blockName: string, blockFn: Global.BlockFn): void;
-            each: (table: Global.EachTable, ...taggedTemplateData: Global.TemplateData) => (title: string, test: Global.EachTestFn<Global.TestCallback>, timeout?: number | undefined) => void;
-            only: {
-                (blockName: string, blockFn: Global.BlockFn): void;
-                each: (table: Global.EachTable, ...taggedTemplateData: Global.TemplateData) => (title: string, test: Global.EachTestFn<Global.TestCallback>, timeout?: number | undefined) => void;
-            };
-            skip: {
-                (blockName: string, blockFn: Global.BlockFn): void;
-                each: (table: Global.EachTable, ...taggedTemplateData: Global.TemplateData) => (title: string, test: Global.EachTestFn<Global.TestCallback>, timeout?: number | undefined) => void;
-            };
-        };
-        it: Global.It;
-        test: Global.It;
-    };
-    snapshotState: import("jest-snapshot/build/State").default;
+    globals: Global.TestFrameworkGlobals;
+    snapshotState: SnapshotStateType;
 }>;
 export declare const runAndTransformResultsToJestFormat: ({ config, globalConfig, testPath, }: {
     config: Config.ProjectConfig;
diff --git a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js
index c560d19..76f3ba8 100644
--- a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js
+++ b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js
@@ -29,6 +29,8 @@
 
 var _ = _interopRequireDefault(require('..'));
 
+var _jestExpect = _interopRequireDefault(require('./jestExpect'));
+
 function _interopRequireDefault(obj) {
   return obj && obj.__esModule ? obj : {default: obj};
 }
@@ -39,8 +41,6 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-// TODO: hard to type
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
 const initialize = async ({
   config,
   environment,
@@ -49,32 +49,37 @@
   globalConfig,
   localRequire,
   parentProcess,
-  testPath,
-  sendMessageToJest
+  sendMessageToJest,
+  setGlobalsForRuntime,
+  testPath
 }) => {
+  var _config$injectGlobals;
+
   if (globalConfig.testTimeout) {
     (0, _state.getState)().testTimeout = globalConfig.testTimeout;
   }
 
-  const mutex = (0, _throat.default)(globalConfig.maxConcurrency);
-  const nodeGlobal = global;
-  Object.assign(nodeGlobal, _.default);
-  nodeGlobal.xit = nodeGlobal.it.skip;
-  nodeGlobal.xtest = nodeGlobal.it.skip;
-  nodeGlobal.xdescribe = nodeGlobal.describe.skip;
-  nodeGlobal.fit = nodeGlobal.it.only;
-  nodeGlobal.fdescribe = nodeGlobal.describe.only;
+  const mutex = (0, _throat.default)(globalConfig.maxConcurrency); // @ts-expect-error
 
-  nodeGlobal.test.concurrent = (test => {
+  const globalsObject = {
+    ..._.default,
+    fdescribe: _.default.describe.only,
+    fit: _.default.it.only,
+    xdescribe: _.default.describe.skip,
+    xit: _.default.it.skip,
+    xtest: _.default.it.skip
+  };
+
+  globalsObject.test.concurrent = (test => {
     const concurrent = (testName, testFn, timeout) => {
       // For concurrent tests we first run the function that returns promise, and then register a
-      // nomral test that will be waiting on the returned promise (when we start the test, the promise
+      // normal test that will be waiting on the returned promise (when we start the test, the promise
       // will already be in the process of execution).
       // Unfortunately at this stage there's no way to know if there are any `.only` tests in the suite
       // that will result in this test to be skipped, so we'll be executing the promise function anyway,
       // even if it ends up being skipped.
       const promise = mutex(() => testFn());
-      nodeGlobal.test(testName, () => promise, timeout);
+      globalsObject.test(testName, () => promise, timeout);
     };
 
     const only = (testName, testFn, timeout) => {
@@ -89,7 +94,7 @@
     concurrent.skip.each = (0, _jestEach.bind)(test.skip, false);
     only.each = (0, _jestEach.bind)(test.only, false);
     return concurrent;
-  })(nodeGlobal.test);
+  })(globalsObject.test);
 
   (0, _state.addEventHandler)(eventHandler);
 
@@ -97,9 +102,28 @@
     (0, _state.addEventHandler)(environment.handleTestEvent.bind(environment));
   }
 
+  const runtimeGlobals = {
+    ...globalsObject,
+    expect: (0, _jestExpect.default)(globalConfig)
+  }; // TODO: `jest-circus` might be newer than `jest-runtime` - remove `?.` for Jest 27
+
+  setGlobalsForRuntime === null || setGlobalsForRuntime === void 0
+    ? void 0
+    : setGlobalsForRuntime(runtimeGlobals); // TODO: `jest-circus` might be newer than `jest-config` - remove `??` for Jest 27
+
+  if (
+    (_config$injectGlobals = config.injectGlobals) !== null &&
+    _config$injectGlobals !== void 0
+      ? _config$injectGlobals
+      : true
+  ) {
+    Object.assign(environment.global, runtimeGlobals);
+  }
+
   await (0, _state.dispatch)({
     name: 'setup',
     parentProcess,
+    runtimeGlobals,
     testNamePattern: globalConfig.testNamePattern
   });
 
@@ -113,9 +137,7 @@
   config.snapshotSerializers
     .concat()
     .reverse()
-    .forEach(path => {
-      (0, _jestSnapshot.addSerializer)(localRequire(path));
-    });
+    .forEach(path => (0, _jestSnapshot.addSerializer)(localRequire(path)));
   const {expand, updateSnapshot} = globalConfig;
   const snapshotResolver = (0, _jestSnapshot.buildSnapshotResolver)(config);
   const snapshotPath = snapshotResolver.resolveSnapshotPath(testPath);
@@ -124,7 +146,8 @@
     getBabelTraverse,
     getPrettier,
     updateSnapshot
-  });
+  }); // @ts-expect-error: snapshotState is a jest extension of `expect`
+
   (0, _expect.setState)({
     snapshotState,
     testPath
@@ -138,7 +161,7 @@
   } // Return it back to the outer scope (test runner outside the VM).
 
   return {
-    globals: _.default,
+    globals: globalsObject,
     snapshotState
   };
 };
diff --git a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.d.ts b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.d.ts
index 0557578..4bdcb51 100644
--- a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.d.ts
+++ b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.d.ts
@@ -4,7 +4,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-declare const _default: (config: {
-    expand: boolean;
-}) => void;
+import type { Config } from '@jest/types';
+import expect = require('expect');
+export declare type Expect = typeof expect;
+declare const _default: (config: Pick<Config.GlobalConfig, 'expand'>) => Expect;
 export default _default;
diff --git a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.js b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.js
index eb7a48f..a4cd100 100644
--- a/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.js
+++ b/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestExpect.js
@@ -20,8 +20,6 @@
  * LICENSE file in the root directory of this source tree.
  */
 var _default = config => {
-  global.expect = _expect.default;
-
   _expect.default.setState({
     expand: config.expand
   });
@@ -35,6 +33,7 @@
   });
 
   _expect.default.addSnapshotSerializer = _jestSnapshot.addSerializer;
+  return _expect.default;
 };
 
 exports.default = _default;
diff --git a/node_modules/jest-circus/build/utils.d.ts b/node_modules/jest-circus/build/utils.d.ts
index 2bd4ea2..f7d9ef4 100644
--- a/node_modules/jest-circus/build/utils.d.ts
+++ b/node_modules/jest-circus/build/utils.d.ts
@@ -22,7 +22,7 @@
 export declare const callAsyncCircusFn: (fn: Circus.AsyncFn, testContext: Circus.TestContext | undefined, asyncError: Circus.Exception, { isHook, timeout }: {
     isHook?: boolean | null | undefined;
     timeout: number;
-}) => Promise<any>;
+}) => Promise<unknown>;
 export declare const getTestDuration: (test: Circus.TestEntry) => number | null;
 export declare const makeRunResult: (describeBlock: Circus.DescribeBlock, unhandledErrors: Array<Error>) => Circus.RunResult;
 export declare const makeSingleTestResult: (test: Circus.TestEntry) => Circus.TestResult;
diff --git a/node_modules/jest-circus/build/utils.js b/node_modules/jest-circus/build/utils.js
index cf02824..5371ae0 100644
--- a/node_modules/jest-circus/build/utils.js
+++ b/node_modules/jest-circus/build/utils.js
@@ -6,6 +6,8 @@
 exports.invariant = invariant;
 exports.parseSingleTestResult = exports.addErrorToEachTestUnderDescribe = exports.getTestID = exports.makeSingleTestResult = exports.makeRunResult = exports.getTestDuration = exports.callAsyncCircusFn = exports.describeBlockHasTests = exports.getEachHooksForTest = exports.getAllHooksForDescribe = exports.makeTest = exports.makeDescribe = void 0;
 
+var path = _interopRequireWildcard(require('path'));
+
 var _jestUtil = require('jest-util');
 
 var _isGeneratorFn = _interopRequireDefault(require('is-generator-fn'));
@@ -24,6 +26,48 @@
   return obj && obj.__esModule ? obj : {default: obj};
 }
 
+function _getRequireWildcardCache() {
+  if (typeof WeakMap !== 'function') return null;
+  var cache = new WeakMap();
+  _getRequireWildcardCache = function () {
+    return cache;
+  };
+  return cache;
+}
+
+function _interopRequireWildcard(obj) {
+  if (obj && obj.__esModule) {
+    return obj;
+  }
+  if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
+    return {default: obj};
+  }
+  var cache = _getRequireWildcardCache();
+  if (cache && cache.has(obj)) {
+    return cache.get(obj);
+  }
+  var newObj = {};
+  var hasPropertyDescriptor =
+    Object.defineProperty && Object.getOwnPropertyDescriptor;
+  for (var key in obj) {
+    if (Object.prototype.hasOwnProperty.call(obj, key)) {
+      var desc = hasPropertyDescriptor
+        ? Object.getOwnPropertyDescriptor(obj, key)
+        : null;
+      if (desc && (desc.get || desc.set)) {
+        Object.defineProperty(newObj, key, desc);
+      } else {
+        newObj[key] = obj[key];
+      }
+    }
+  }
+  newObj.default = obj;
+  if (cache) {
+    cache.set(obj, newObj);
+  }
+  return newObj;
+}
+
 var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
 var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol;
 var jestNow = global[Symbol.for('jest-native-now')] || global.Date.now;
@@ -32,6 +76,7 @@
 const stackUtils = new _stackUtils.default({
   cwd: 'A path that does not exist'
 });
+const jestEachBuildDir = path.dirname(require.resolve('jest-each'));
 
 const makeDescribe = (name, parent, mode) => {
   let _mode = mode;
@@ -304,8 +349,23 @@
   let location = null;
 
   if (includeTestLocationInResult) {
-    const stackLine = test.asyncError.stack.split('\n')[1];
-    const parsedLine = stackUtils.parseLine(stackLine);
+    var _parsedLine, _parsedLine$file;
+
+    const stackLines = test.asyncError.stack.split('\n');
+    const stackLine = stackLines[1];
+    let parsedLine = stackUtils.parseLine(stackLine);
+
+    if (
+      (_parsedLine = parsedLine) === null || _parsedLine === void 0
+        ? void 0
+        : (_parsedLine$file = _parsedLine.file) === null ||
+          _parsedLine$file === void 0
+        ? void 0
+        : _parsedLine$file.startsWith(jestEachBuildDir)
+    ) {
+      const stackLine = stackLines[4];
+      parsedLine = stackUtils.parseLine(stackLine);
+    }
 
     if (
       parsedLine &&
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/CHANGELOG.md b/node_modules/jest-circus/node_modules/@babel/parser/CHANGELOG.md
deleted file mode 100644
index 8a43406..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/CHANGELOG.md
+++ /dev/null
@@ -1,1073 +0,0 @@
-# Changelog
-
-> **Tags:**
-> - :boom:       [Breaking Change]
-> - :eyeglasses: [Spec Compliance]
-> - :rocket:     [New Feature]
-> - :bug:        [Bug Fix]
-> - :memo:       [Documentation]
-> - :house:      [Internal]
-> - :nail_care:  [Polish]
-
-> Semver Policy: https://github.com/babel/babel/tree/master/packages/babel-parser#semver
-
-_Note: Gaps between patch versions are faulty, broken or test releases._
-
-See the [Babel Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) for the pre-6.8.0 version Changelog.
-
-## 6.17.1 (2017-05-10)
-
-### :bug: Bug Fix
- * Fix typo in flow spread operator error (Brian Ng)
- * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko)
- * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko)
- * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng)
- * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng)
- * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng)
- * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng)
-
-## 6.17.0 (2017-04-20)
-
-### :bug: Bug Fix
- * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie)
- * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons)
- * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng)
- * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons)
- * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng)
- * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng)
-
-## 7.0.0-beta.8 (2017-04-04)
-
-### New Feature
-* Add support for flow type spread (#418) (Conrad Buck)
-* Allow statics in flow interfaces (#427) (Brian Ng)
-
-### Bug Fix
-* Fix predicate attachment to match flow parser (#428) (Brian Ng)
-* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray)
-* Fix rest parameters with array and objects (#424) (Brian Ng)
-* Fix number parser (#433) (Alex Kuzmenko)
-
-### Docs
-* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko)
-
-### Internal
-* Use babel-register script when running babel smoke tests (#442) (Brian Ng)
-
-## 7.0.0-beta.7 (2017-03-22)
-
-### Spec Compliance
-* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu)
-
-### Bug Fix
-
-* Fix push-pop logic in flow (#405) (Daniel Tschinder)
-
-## 7.0.0-beta.6 (2017-03-21)
-
-### New Feature
-* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons)
-
-### Polish
-* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal)
-
-### Docs
-
-* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning)
-
-## 7.0.0-beta.5 (2017-03-21)
-
-### Bug Fix
-* Throw error if new.target is used outside of a function (#402) (Brian Ng)
-* Fix parsing of class properties (#351) (Kevin Gibbons)
-
-### Other
- * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy)
- * Optimize travis builds (#419) (Daniel Tschinder)
- * Update codecov to 2.0 (#412) (Daniel Tschinder)
- * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy)
- * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning)
- * Upgrade flow to 0.41 (Daniel Tschinder)
- * Fix watch command (#403) (Brian Ng)
- * Update yarn lock (Daniel Tschinder)
- * Fix watch command (#403) (Brian Ng)
- * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot])
- * Add estree test for correct order of directives (Daniel Tschinder)
- * Add DoExpression to spec (#364) (Alex Kuzmenko)
- * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde)
- * Explain how to run only one test (#389) [skip ci] (Aaron Ang)
-
- ## 7.0.0-beta.4 (2017-03-01)
-
-* Don't consume async when checking for async func decl (#377) (Brian Ng)
-* add `ranges` option [skip ci] (Henry Zhu)
-* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine)
-
-## 7.0.0-beta.3 (2017-02-28)
-
-- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384)
-- Merge changes from 6.x
-
-## 7.0.0-beta.2 (2017-02-20)
-
-- estree: correctly change literals in all cases (#368) (Daniel Tschinder)
-
-## 7.0.0-beta.1 (2017-02-20)
-
-- Fix negative number literal typeannotations (#366) (Daniel Tschinder)
-- Update contributing with more test info [skip ci] (#355) (Brian Ng)
-
-## 7.0.0-beta.0 (2017-02-15)
-
-- Reintroduce Variance node (#333) (Daniel Tschinder)
-- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick)
-- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail)
-- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot])
-- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot])
-- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder)
-- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi)
-- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder)
-- Remove classConstructorCall plugin (#291) (Brian Ng)
-- Update yarn.lock (Daniel Tschinder)
-- Update cross-env to 3.x (Daniel Tschinder)
-- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov)
-- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens)
-
-## 6.16.1 (2017-02-23)
-
-### :bug: Regression
-
-- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375))
-
-Need to modify Babel for this AST node change, so moving to 7.0.
-
-- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376))
-
-[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted.
-
-## 6.16.0 (2017-02-23)
-
-### :rocket: New Feature
-
-***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder)
-
-We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/)
-
-We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc.
-
-To enable `estree` mode simply add the plugin in the config:
-```json
-{
-  "plugins": [ "estree" ]
-}
-```
-
-If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned.
-
-Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew)
-
-Babylon exports a new function to parse a single expression
-
-```js
-import { parseExpression } from 'babylon';
-
-const ast = parseExpression('x || y && z', options);
-```
-
-The returned AST will only consist of the expression. The options are the same as for `parse()`
-
-Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu)
-
-A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`.
-Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ...
-
-Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris)
-
-Added support for function predicates which flow introduced in version 0.33.0
-
-```js
-declare function is_number(x: mixed): boolean %checks(typeof x === "number");
-```
-
-Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder)
-
-Added support for imports within module declarations which flow introduced in version 0.37.0
-
-```js
-declare module "C" {
-  import type { DT } from "D";
-  declare export type CT = { D: DT };
-}
-```
-
-### :eyeglasses: Spec Compliance
-
-Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons)
-
-This example now correctly throws an error when there is a semicolon after the decorator:
-
-```js
-class A {
-@a;
-foo(){}
-}
-```
-
-Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder)
-
-Using keywords in imports is not allowed anymore:
-
-```js
-import { default } from "foo";
-import { a as debugger } from "foo";
-```
-
-Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder)
-
-In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration.
-
-Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder)
-
-The following code now correctly throws an error
-
-```js
-import type { type a } from "foo";
-```
-
-Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine)
-
-Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour.
-
-If you enable the flow plugin you can only define the type of the class properties, but not initialize them.
-
-Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder)
-
-Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`.
-
-```js
-export default async function bar() {};
-```
-
-### :nail_care: Polish
-
-Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng)
-
-### :bug: Bug Fix
-
-Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder)
-
-Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng)
-
-ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder)
-
-Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder)
-
-Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder)
-
-Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder)
-
-Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng)
-
-Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper)
-
-
-### :house: Internal
-
-Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray)
-
-Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray)
-
-Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder)
-
-chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot])
-
-Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder)
-
-Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot])
-
-Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot])
-
-devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo)
-
-Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder)
-
-Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder)
-
-### :memo: Documentation
-
-Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng)
-
-Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu)
-
-Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro)
-
-AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens)
-
-## 6.15.0 (2017-01-10)
-
-### :eyeglasses: Spec Compliance
-
-Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison)
-
-This change implements flows new shorthand import syntax
-and where previously you had to write this code:
-
-```js
-import {someValue} from "blah";
-import type {someType} from "blah";
-import typeof {someOtherValue} from "blah";
-```
-
-you can now write it like this:
-
-```js
-import {
-  someValue,
-  type someType,
-  typeof someOtherValue,
-} from "blah";
-```
-
-For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request.
-
-flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin)
-
-This change now allows a leading pipe everywhere types can be used:
-```js
-var f = (x): | 1 | 2 => 1;
-```
-
-Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo)
-
-Previously babylon parsed the following exports, although they are not valid:
-```js
-export typeof foo;
-export new Foo();
-export function() {};
-export for (;;);
-export while(foo);
-```
-
-### :bug: Bug Fix
-
-Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin)
-
-This fixes parsing of this case:
-
-```js
-const map = {
-  [age <= 17] : 'Too young'
-};
-```
-
-Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long)
-
-The following case produced an invalid AST
-```js
-<div>{/* foo */}</div>
-```
-
-Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy)
-
-When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST.
-
-Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant)
-
-Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray)
-
-### :house: Internal
-
-User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder)
-
-Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo)
-
-Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine)
-
-Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder)
-
-Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine)
-
-Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU)
-
-Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot])
-
-chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot])
-
-chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot])
-
-## 6.14.1 (2016-11-17)
-
-### :bug: Bug Fix
-
-Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder)
-
-```js
-{
-  "plugins": ["*"]
-}
-```
-
-Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer.
-
-## 6.14.0 (2016-11-16)
-
-### :eyeglasses: Spec Compliance
-
-Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo)
-
-[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words)
-
-Babylon will throw for more reserved words such as `enum` or `await` (in strict mode).
-
-```
-class enum {} // throws
-class await {} // throws in strict mode (module)
-```
-
-Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi)
-
-So where you used to have to write
-
-```js
-type A = (x: string, y: boolean) => number;
-type B = (z: string) => number;
-type C = { [key: string]: number };
-```
-
-you can now write (with flow 0.34.0)
-
-```js
-type A = (string, boolean) => number;
-type B = string => number;
-type C = { [string]: number };
-```
-
-Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner)
-
-Supports these form now of specifying array types:
-
-```js
-var a: number[][][][];
-var b: string[][];
-```
-
-### :bug: Bug Fix
-
-Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223))  (Daniel Tschinder)
-
-```
-declare module "foo" { declare module.exports: number }
-declare module "foo" { declare module.exports: number; }  // also allowed now
-```
-
-### :house: Internal
-
- * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman)
- * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger)
- * Add node 7 (Daniel Tschinder)
- * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper)
-
-## v6.13.1 (2016-10-26)
-
-### :nail_care: Polish
-
-- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML))
-
-```js
-const babylon = require('babylon');
-const ast = babylon.parse('var foo = "lol";');
-```
-
-With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph.
-
-**Without bundling**
-![image](https://cloud.githubusercontent.com/assets/5233399/19420264/3133497e-93ad-11e6-9a6a-2da59c4f5c13.png)
-
-**With bundling**
-![image](https://cloud.githubusercontent.com/assets/5233399/19420267/388f556e-93ad-11e6-813e-7c5c396be322.png)
-
-- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu)
-- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu)
-
-## v6.13.0 (2016-10-21)
-
-### :eyeglasses: Spec Compliance
-
-Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman)
-
-> See https://flowtype.org/docs/variance.html for more information
-
-```js
-type T = { +p: T };
-interface T { -p: T };
-declare class T { +[k:K]: V };
-class T { -[k:K]: V };
-class C2 { +p: T = e };
-```
-
-Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman)
-
-```js
-({ __proto__: 1, __proto__: 2 }) // Throws an error now
-```
-
-### :bug: Bug Fix
-
-Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman)
-
-```js
-declare class A {
-  static: T;
-}
-```
-
-Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine)
-
-```js
-var foo = { async, bar };
-```
-
-### :nail_care: Polish
-
-Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder)
-
-> This improves the performance slightly (because of hidden classes)
-
-### :house: Internal
-
-Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman)
-
-Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman)
-
-Readd missin .eslinignore for IDEs (Daniel Tschinder)
-
-Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman)
-
-Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman)
-
-Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman)
-
-## v6.12.0 (2016-10-14)
-
-### :eyeglasses: Spec Compliance
-
-Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler)
-
-#### Dynamic Import
-
-- Proposal Repo: https://github.com/domenic/proposal-dynamic-import
-- Championed by [@domenic](https://github.com/domenic)
-- stage-2
-- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import)
-
-> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript
-
-```js
-import(`./section-modules/${link.dataset.entryModule}.js`)
-.then(module => {
-  module.loadPageInto(main);
-})
-```
-
-Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman)
-
-#### EmptyTypeAnnotation
-
-Just wasn't covered before.
-
-```js
-type T = empty;
-```
-
-### :bug: Bug Fix
-
-Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
-
-```js
-// was failing due to sparse array
-export const { foo: [ ,, qux7 ] } = bar;
-```
-
-Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper)
-
-```js
-declare class X {
-  foobar<T>(): void;
-  static foobar<T>(): void;
-}
-```
-
-Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper)
-
-```js
-class Foo {
-  delete<T>(item: T): T {
-    return item;
-  }
-}
-```
-
-Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder)
-
-```js
-function *foo() {
-  const x = (yield 5: any);
-}
-```
-
-### :nail_care: Polish
-
-Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman)
-
-```js
-// Unexpected token, expected ; (1:6)
-{ set 1 }
-```
-
-### :house: Internal
-
-Remove kcheck ([#173](https://github.com/babel/babylon/pull/173)))  (Daniel Tschinder)
-
-Also run flow, linting, babel tests on separate instances (add back node 0.10)
-
-## v6.11.6 (2016-10-12)
-
-### :bug: Bug Fix/Regression
-
-Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
-
-```js
-// was failing with `Cannot read property 'type' of null` because of null identifiers
-export const { foo: [ ,, qux7 ] } = bar;
-```
-
-## v6.11.5 (2016-10-12)
-
-### :eyeglasses: Spec Compliance
-
-Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo)
-
-```js
-// `foo` has already been exported. Exported identifiers must be unique. (2:20)
-export function foo() {};
-export const { a: [{foo}] } = bar;
-```
-
-Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo)
-
-```js
-// `foo` has already been exported. Exported identifiers must be unique. (2:22)
-export const foo = 1;
-export const [bar, ...foo] = baz;
-```
-
-### :bug: Bug Fix
-
-Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo)
-
-```js
-// this is ok now
-const test = ({async = true}) => {};
-```
-
-### :nail_care: Polish
-
-Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder)
-
-```bash
-# So in the case of a missing ending curly (`}`)
-Module build failed: SyntaxError: Unexpected token, expected } (30:0)
-  28 |   }
-  29 |
-> 30 |
-     | ^
-```
-
-## v6.11.4 (2016-10-03)
-
-Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu)
-
-## v6.11.3 (2016-10-01)
-
-### :eyeglasses: Spec Compliance
-
-Add static errors for object rest (#149) ([@danez](https://github.com/danez))
-
-> https://github.com/sebmarkbage/ecmascript-rest-spread
-
-Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right.
-
-```js
-let { x, y, ...z } =  { x: 1, y: 2, z: 3 };
-// x = 1
-// y = 2
-// z = { z: 3 }
-```
-
-#### New Syntax Errors:
-
-**SyntaxError**: The rest element has to be the last element when destructuring (1:10)
-```bash
-> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3};
-    |           ^
-# Previous behavior:
-# x = { x: 1, y: 2, z: 3 }
-# y = 2
-# z = 3
-```
-
-Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think.
-
-**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13)
-
-```bash
-> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3};
-    |              ^
-# Previous behavior:
-# x = 1
-# y = { y: 2, z: 3 }
-# z = { y: 2, z: 3 }
-```
-
-Before y and z would just be the same value anyway so there is no reason to need to have both.
-
-**SyntaxError**: A trailing comma is not permitted after the rest element (1:16)
-
-```js
-let { x, y, ...z, } = obj;
-```
-
-The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense.
-
----
-
-get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell))
-
-```js
-// valid
-function something({ set = null, get = null }) {}
-```
-
-## v6.11.2 (2016-09-23)
-
-### Bug Fix
-
-- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo
-
-```js
-// regression with duplicate export check
-SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13)
-  20 |
-  21 | export const { rhythm } = typography;
-> 22 | export const { TypographyStyle } = typography
-```
-
-Bail out for now, and make a change to account for destructuring in the next release.
-
-## 6.11.1 (2016-09-22)
-
-### Bug Fix
-- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez
-
-```javascript
-export toString from './toString';
-```
-
-```bash
-`toString` has already been exported. Exported identifiers must be unique. (1:7)
-> 1 | export toString from './toString';
-    |        ^
-  2 |
-```
-
-## 6.11.0 (2016-09-22)
-
-### Spec Compliance (will break CI)
-
-- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo
-
-```js
-// Only one default export allowed per module. (2:9)
-export default function() {};
-export { foo as default };
-
-// Only one default export allowed per module. (2:0)
-export default {};
-export default function() {};
-
-// `Foo` has already been exported. Exported identifiers must be unique. (2:0)
-export { Foo };
-export class Foo {};
-```
-
-### New Feature (Syntax)
-
-- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88
-
-```js
-// AST
-interface ClassProperty <: Node {
-  type: "ClassProperty";
-  key: Identifier;
-  value: Expression;
-  computed: boolean; // added
-}
-```
-
-```js
-// with "plugins": ["classProperties"]
-class Foo {
-  [x]
-  ['y']
-}
-
-class Bar {
-  [p]
-  [m] () {}
-}
- ```
-
-### Bug Fix
-
-- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper
-
-```js
-declare class X {
-    a: number;
-    static b: number; // static
-    c: number; // this was being marked as static in the AST as well
-}
-```
-
-### Polish
-
-- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88
-
-```js
-// Used to error with:
-// SyntaxError: Assigning to rvalue (1:0)
-
-// Now:
-// Invalid left-hand side in assignment expression (1:0)
-3 = 4
-
-// Invalid left-hand side in for-in statement (1:5)
-for (+i in {});
-```
-
-### Internal
-
-- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez
-- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo
-
-## 6.10.0 (2016-09-19)
-
-> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue.
-
-### Spec Compliance
-
-* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu)
-
-> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors
-
-More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists)
-
-For example:
-
-```js
-// this errors because it uses destructuring and default parameters
-// in a function with a "use strict" directive
-function a([ option1, option2 ] = []) {
-  "use strict";
-}
- ```
-
-The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to.
-
-### New Feature
-
-* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer)
-
-Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8
-
-Looks like:
-
-```js
-var a : {| x: number, y: string |} = { x: 0, y: 'foo' };
-```
-
-### Bug Fixes
-
-* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder)
-* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper)
-* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper)
-
-### Misc
-
-* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder)
-* Fix Contributing guidelines [skip ci] (Daniel Tschinder)
-
-## 6.9.2 (2016-09-09)
-
-The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller.
-
-## 6.9.1 (2016-08-23)
-
-This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops.
-
-### Bug Fixes
-
-- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez
-- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez
-- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper
-- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez
-- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez
-
-## 6.9.0 (2016-08-16)
-
-### New syntax support
-
-- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer
-
-(Be aware that React is not going to support this syntax)
-
-```js
-<div>
-  {...todos.map(todo => <Todo key={todo.id} todo={todo}/>)}
-</div>
-```
-
-- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez
-
-```js
-declare module "foo" {
-  declare module.exports: {}
-}
-```
-
-### New Features
-
-- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain
-- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens
-
-### Bug Fixes
-
-- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez
-- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez
-- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi
-- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez
-- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi
-- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez
-- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez
-
-### Internal
-
-- Add codecoverage to tests @danez
-- Fix tests to not save expected output if we expect the test to fail @danez
-- Make a shallow clone of babel for testing @danez
-- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot
-- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot
-- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot
-- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot
-
-## 6.8.4 (2016-07-06)
-
-### Bug Fixes
-
-- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez
-
-## 6.8.3 (2016-07-02)
-
-### Bug Fixes
-
-- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez
-
-## 6.8.2 (2016-06-24)
-
-### Bug Fixes
-
-- Fix parse error with yielding jsx elements in generators `function* it() { yield <a></a>; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal
-- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez
-- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez
-- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez
-- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez
-- Support negative numeric type literals @kittens
-- Remove line terminator restriction after await keyword @kittens
-- Remove grouped type arrow restriction as it seems flow no longer has it @kittens
-- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin
-- Fix parse error with arrow functions that have flow type parameter declarations `<T>(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi
-
-### Documentation
-
-- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene
-- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo
-
-### Internal
-
-- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez
-- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez
-- Upgrade test runner ava @kittens
-- Add missing generate-identifier-regex script @kittens
-- Rename parser context types @kittens
-- Add node v6 to travis testing @hzoo
-- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens
-
-## 6.8.1 (2016-06-06)
-
-### New Feature
-
-- Parse type parameter declarations with defaults like `type Foo<T = string> = T`
-
-### Bug Fixes
-- Type parameter declarations need 1 or more type parameters.
-- The existential type `*` is not a valid type parameter.
-- The existential type `*` is a primary type
-
-### Spec Compliance
-- The param list for type parameter declarations now consists of `TypeParameter` nodes
-- New `TypeParameter` AST Node (replaces using the `Identifier` node before)
-
-```
-interface TypeParameter <: Node {
-  bound: TypeAnnotation;
-  default: TypeAnnotation;
-  name: string;
-  variance: "plus" | "minus";
-}
-```
-
-## 6.8.0 (2016-05-02)
-
-#### New Feature
-
-##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12))
-
-> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md).
-
-Examples:
-
-```js
-class Foo {
-  constructor(@foo() x, @bar({ a: 123 }) @baz() y) {}
-}
-
-export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {}
-
-var obj = {
-  method(@foo() x, @bar({ a: 123 }) @baz() y) {}
-};
-```
-
-##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17))
-
-There is also a new node type, `ForAwaitStatement`.
-
-> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals).
-
-Example:
-
-```js
-async function f() {
-  for await (let x of y);
-}
-```
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/LICENSE b/node_modules/jest-circus/node_modules/@babel/parser/LICENSE
deleted file mode 100644
index d4c7fc5..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2012-2014 by various contributors (see AUTHORS)
-
-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.
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/README.md b/node_modules/jest-circus/node_modules/@babel/parser/README.md
deleted file mode 100644
index 65092a0..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# @babel/parser
-
-> A JavaScript parser
-
-See our website [@babel/parser](https://babeljs.io/docs/en/next/babel-parser.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen) associated with this package.
-
-## Install
-
-Using npm:
-
-```sh
-npm install --save-dev @babel/parser
-```
-
-or using yarn:
-
-```sh
-yarn add @babel/parser --dev
-```
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/bin/babel-parser.js b/node_modules/jest-circus/node_modules/@babel/parser/bin/babel-parser.js
deleted file mode 100755
index 3aca314..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/bin/babel-parser.js
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env node
-/* eslint no-var: 0 */
-
-var parser = require("..");
-var fs = require("fs");
-
-var filename = process.argv[2];
-if (!filename) {
-  console.error("no filename specified");
-} else {
-  var file = fs.readFileSync(filename, "utf8");
-  var ast = parser.parse(file);
-
-  console.log(JSON.stringify(ast, null, "  "));
-}
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js b/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js
deleted file mode 100644
index 95d1f46..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js
+++ /dev/null
@@ -1,12736 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-const beforeExpr = true;
-const startsExpr = true;
-const isLoop = true;
-const isAssign = true;
-const prefix = true;
-const postfix = true;
-class TokenType {
-  constructor(label, conf = {}) {
-    this.label = label;
-    this.keyword = conf.keyword;
-    this.beforeExpr = !!conf.beforeExpr;
-    this.startsExpr = !!conf.startsExpr;
-    this.rightAssociative = !!conf.rightAssociative;
-    this.isLoop = !!conf.isLoop;
-    this.isAssign = !!conf.isAssign;
-    this.prefix = !!conf.prefix;
-    this.postfix = !!conf.postfix;
-    this.binop = conf.binop != null ? conf.binop : null;
-    this.updateContext = null;
-  }
-
-}
-const keywords = new Map();
-
-function createKeyword(name, options = {}) {
-  options.keyword = name;
-  const token = new TokenType(name, options);
-  keywords.set(name, token);
-  return token;
-}
-
-function createBinop(name, binop) {
-  return new TokenType(name, {
-    beforeExpr,
-    binop
-  });
-}
-
-const types = {
-  num: new TokenType("num", {
-    startsExpr
-  }),
-  bigint: new TokenType("bigint", {
-    startsExpr
-  }),
-  regexp: new TokenType("regexp", {
-    startsExpr
-  }),
-  string: new TokenType("string", {
-    startsExpr
-  }),
-  name: new TokenType("name", {
-    startsExpr
-  }),
-  eof: new TokenType("eof"),
-  bracketL: new TokenType("[", {
-    beforeExpr,
-    startsExpr
-  }),
-  bracketHashL: new TokenType("#[", {
-    beforeExpr,
-    startsExpr
-  }),
-  bracketBarL: new TokenType("[|", {
-    beforeExpr,
-    startsExpr
-  }),
-  bracketR: new TokenType("]"),
-  bracketBarR: new TokenType("|]"),
-  braceL: new TokenType("{", {
-    beforeExpr,
-    startsExpr
-  }),
-  braceBarL: new TokenType("{|", {
-    beforeExpr,
-    startsExpr
-  }),
-  braceHashL: new TokenType("#{", {
-    beforeExpr,
-    startsExpr
-  }),
-  braceR: new TokenType("}"),
-  braceBarR: new TokenType("|}"),
-  parenL: new TokenType("(", {
-    beforeExpr,
-    startsExpr
-  }),
-  parenR: new TokenType(")"),
-  comma: new TokenType(",", {
-    beforeExpr
-  }),
-  semi: new TokenType(";", {
-    beforeExpr
-  }),
-  colon: new TokenType(":", {
-    beforeExpr
-  }),
-  doubleColon: new TokenType("::", {
-    beforeExpr
-  }),
-  dot: new TokenType("."),
-  question: new TokenType("?", {
-    beforeExpr
-  }),
-  questionDot: new TokenType("?."),
-  arrow: new TokenType("=>", {
-    beforeExpr
-  }),
-  template: new TokenType("template"),
-  ellipsis: new TokenType("...", {
-    beforeExpr
-  }),
-  backQuote: new TokenType("`", {
-    startsExpr
-  }),
-  dollarBraceL: new TokenType("${", {
-    beforeExpr,
-    startsExpr
-  }),
-  at: new TokenType("@"),
-  hash: new TokenType("#", {
-    startsExpr
-  }),
-  interpreterDirective: new TokenType("#!..."),
-  eq: new TokenType("=", {
-    beforeExpr,
-    isAssign
-  }),
-  assign: new TokenType("_=", {
-    beforeExpr,
-    isAssign
-  }),
-  incDec: new TokenType("++/--", {
-    prefix,
-    postfix,
-    startsExpr
-  }),
-  bang: new TokenType("!", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  }),
-  tilde: new TokenType("~", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  }),
-  pipeline: createBinop("|>", 0),
-  nullishCoalescing: createBinop("??", 1),
-  logicalOR: createBinop("||", 1),
-  logicalAND: createBinop("&&", 2),
-  bitwiseOR: createBinop("|", 3),
-  bitwiseXOR: createBinop("^", 4),
-  bitwiseAND: createBinop("&", 5),
-  equality: createBinop("==/!=/===/!==", 6),
-  relational: createBinop("</>/<=/>=", 7),
-  bitShift: createBinop("<</>>/>>>", 8),
-  plusMin: new TokenType("+/-", {
-    beforeExpr,
-    binop: 9,
-    prefix,
-    startsExpr
-  }),
-  modulo: new TokenType("%", {
-    beforeExpr,
-    binop: 10,
-    startsExpr
-  }),
-  star: createBinop("*", 10),
-  slash: createBinop("/", 10),
-  exponent: new TokenType("**", {
-    beforeExpr,
-    binop: 11,
-    rightAssociative: true
-  }),
-  _break: createKeyword("break"),
-  _case: createKeyword("case", {
-    beforeExpr
-  }),
-  _catch: createKeyword("catch"),
-  _continue: createKeyword("continue"),
-  _debugger: createKeyword("debugger"),
-  _default: createKeyword("default", {
-    beforeExpr
-  }),
-  _do: createKeyword("do", {
-    isLoop,
-    beforeExpr
-  }),
-  _else: createKeyword("else", {
-    beforeExpr
-  }),
-  _finally: createKeyword("finally"),
-  _for: createKeyword("for", {
-    isLoop
-  }),
-  _function: createKeyword("function", {
-    startsExpr
-  }),
-  _if: createKeyword("if"),
-  _return: createKeyword("return", {
-    beforeExpr
-  }),
-  _switch: createKeyword("switch"),
-  _throw: createKeyword("throw", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  }),
-  _try: createKeyword("try"),
-  _var: createKeyword("var"),
-  _const: createKeyword("const"),
-  _while: createKeyword("while", {
-    isLoop
-  }),
-  _with: createKeyword("with"),
-  _new: createKeyword("new", {
-    beforeExpr,
-    startsExpr
-  }),
-  _this: createKeyword("this", {
-    startsExpr
-  }),
-  _super: createKeyword("super", {
-    startsExpr
-  }),
-  _class: createKeyword("class", {
-    startsExpr
-  }),
-  _extends: createKeyword("extends", {
-    beforeExpr
-  }),
-  _export: createKeyword("export"),
-  _import: createKeyword("import", {
-    startsExpr
-  }),
-  _null: createKeyword("null", {
-    startsExpr
-  }),
-  _true: createKeyword("true", {
-    startsExpr
-  }),
-  _false: createKeyword("false", {
-    startsExpr
-  }),
-  _in: createKeyword("in", {
-    beforeExpr,
-    binop: 7
-  }),
-  _instanceof: createKeyword("instanceof", {
-    beforeExpr,
-    binop: 7
-  }),
-  _typeof: createKeyword("typeof", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  }),
-  _void: createKeyword("void", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  }),
-  _delete: createKeyword("delete", {
-    beforeExpr,
-    prefix,
-    startsExpr
-  })
-};
-
-const SCOPE_OTHER = 0b00000000,
-      SCOPE_PROGRAM = 0b00000001,
-      SCOPE_FUNCTION = 0b00000010,
-      SCOPE_ARROW = 0b00000100,
-      SCOPE_SIMPLE_CATCH = 0b00001000,
-      SCOPE_SUPER = 0b00010000,
-      SCOPE_DIRECT_SUPER = 0b00100000,
-      SCOPE_CLASS = 0b01000000,
-      SCOPE_TS_MODULE = 0b10000000,
-      SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;
-const BIND_KIND_VALUE = 0b00000000001,
-      BIND_KIND_TYPE = 0b00000000010,
-      BIND_SCOPE_VAR = 0b00000000100,
-      BIND_SCOPE_LEXICAL = 0b00000001000,
-      BIND_SCOPE_FUNCTION = 0b00000010000,
-      BIND_FLAGS_NONE = 0b00001000000,
-      BIND_FLAGS_CLASS = 0b00010000000,
-      BIND_FLAGS_TS_ENUM = 0b00100000000,
-      BIND_FLAGS_TS_CONST_ENUM = 0b01000000000,
-      BIND_FLAGS_TS_EXPORT_ONLY = 0b10000000000;
-const BIND_CLASS = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_CLASS,
-      BIND_LEXICAL = BIND_KIND_VALUE | 0 | BIND_SCOPE_LEXICAL | 0,
-      BIND_VAR = BIND_KIND_VALUE | 0 | BIND_SCOPE_VAR | 0,
-      BIND_FUNCTION = BIND_KIND_VALUE | 0 | BIND_SCOPE_FUNCTION | 0,
-      BIND_TS_INTERFACE = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_CLASS,
-      BIND_TS_TYPE = 0 | BIND_KIND_TYPE | 0 | 0,
-      BIND_TS_ENUM = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_TS_ENUM,
-      BIND_TS_AMBIENT = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY,
-      BIND_NONE = 0 | 0 | 0 | BIND_FLAGS_NONE,
-      BIND_OUTSIDE = BIND_KIND_VALUE | 0 | 0 | BIND_FLAGS_NONE,
-      BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,
-      BIND_TS_NAMESPACE = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY;
-const CLASS_ELEMENT_FLAG_STATIC = 0b100,
-      CLASS_ELEMENT_KIND_GETTER = 0b010,
-      CLASS_ELEMENT_KIND_SETTER = 0b001,
-      CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;
-const CLASS_ELEMENT_STATIC_GETTER = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,
-      CLASS_ELEMENT_STATIC_SETTER = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,
-      CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,
-      CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,
-      CLASS_ELEMENT_OTHER = 0;
-
-const lineBreak = /\r\n?|[\n\u2028\u2029]/;
-const lineBreakG = new RegExp(lineBreak.source, "g");
-function isNewLine(code) {
-  switch (code) {
-    case 10:
-    case 13:
-    case 8232:
-    case 8233:
-      return true;
-
-    default:
-      return false;
-  }
-}
-const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
-function isWhitespace(code) {
-  switch (code) {
-    case 0x0009:
-    case 0x000b:
-    case 0x000c:
-    case 32:
-    case 160:
-    case 5760:
-    case 0x2000:
-    case 0x2001:
-    case 0x2002:
-    case 0x2003:
-    case 0x2004:
-    case 0x2005:
-    case 0x2006:
-    case 0x2007:
-    case 0x2008:
-    case 0x2009:
-    case 0x200a:
-    case 0x202f:
-    case 0x205f:
-    case 0x3000:
-    case 0xfeff:
-      return true;
-
-    default:
-      return false;
-  }
-}
-
-class Position {
-  constructor(line, col) {
-    this.line = line;
-    this.column = col;
-  }
-
-}
-class SourceLocation {
-  constructor(start, end) {
-    this.start = start;
-    this.end = end;
-  }
-
-}
-function getLineInfo(input, offset) {
-  let line = 1;
-  let lineStart = 0;
-  let match;
-  lineBreakG.lastIndex = 0;
-
-  while ((match = lineBreakG.exec(input)) && match.index < offset) {
-    line++;
-    lineStart = lineBreakG.lastIndex;
-  }
-
-  return new Position(line, offset - lineStart);
-}
-
-class BaseParser {
-  constructor() {
-    this.sawUnambiguousESM = false;
-    this.ambiguousScriptDifferentAst = false;
-  }
-
-  hasPlugin(name) {
-    return this.plugins.has(name);
-  }
-
-  getPluginOption(plugin, name) {
-    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];
-  }
-
-}
-
-function last(stack) {
-  return stack[stack.length - 1];
-}
-
-class CommentsParser extends BaseParser {
-  addComment(comment) {
-    if (this.filename) comment.loc.filename = this.filename;
-    this.state.trailingComments.push(comment);
-    this.state.leadingComments.push(comment);
-  }
-
-  adjustCommentsAfterTrailingComma(node, elements, takeAllComments) {
-    if (this.state.leadingComments.length === 0) {
-      return;
-    }
-
-    let lastElement = null;
-    let i = elements.length;
-
-    while (lastElement === null && i > 0) {
-      lastElement = elements[--i];
-    }
-
-    if (lastElement === null) {
-      return;
-    }
-
-    for (let j = 0; j < this.state.leadingComments.length; j++) {
-      if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) {
-        this.state.leadingComments.splice(j, 1);
-        j--;
-      }
-    }
-
-    const newTrailingComments = [];
-
-    for (let i = 0; i < this.state.leadingComments.length; i++) {
-      const leadingComment = this.state.leadingComments[i];
-
-      if (leadingComment.end < node.end) {
-        newTrailingComments.push(leadingComment);
-
-        if (!takeAllComments) {
-          this.state.leadingComments.splice(i, 1);
-          i--;
-        }
-      } else {
-        if (node.trailingComments === undefined) {
-          node.trailingComments = [];
-        }
-
-        node.trailingComments.push(leadingComment);
-      }
-    }
-
-    if (takeAllComments) this.state.leadingComments = [];
-
-    if (newTrailingComments.length > 0) {
-      lastElement.trailingComments = newTrailingComments;
-    } else if (lastElement.trailingComments !== undefined) {
-      lastElement.trailingComments = [];
-    }
-  }
-
-  processComment(node) {
-    if (node.type === "Program" && node.body.length > 0) return;
-    const stack = this.state.commentStack;
-    let firstChild, lastChild, trailingComments, i, j;
-
-    if (this.state.trailingComments.length > 0) {
-      if (this.state.trailingComments[0].start >= node.end) {
-        trailingComments = this.state.trailingComments;
-        this.state.trailingComments = [];
-      } else {
-        this.state.trailingComments.length = 0;
-      }
-    } else if (stack.length > 0) {
-      const lastInStack = last(stack);
-
-      if (lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) {
-        trailingComments = lastInStack.trailingComments;
-        delete lastInStack.trailingComments;
-      }
-    }
-
-    if (stack.length > 0 && last(stack).start >= node.start) {
-      firstChild = stack.pop();
-    }
-
-    while (stack.length > 0 && last(stack).start >= node.start) {
-      lastChild = stack.pop();
-    }
-
-    if (!lastChild && firstChild) lastChild = firstChild;
-
-    if (firstChild) {
-      switch (node.type) {
-        case "ObjectExpression":
-          this.adjustCommentsAfterTrailingComma(node, node.properties);
-          break;
-
-        case "ObjectPattern":
-          this.adjustCommentsAfterTrailingComma(node, node.properties, true);
-          break;
-
-        case "CallExpression":
-          this.adjustCommentsAfterTrailingComma(node, node.arguments);
-          break;
-
-        case "ArrayExpression":
-          this.adjustCommentsAfterTrailingComma(node, node.elements);
-          break;
-
-        case "ArrayPattern":
-          this.adjustCommentsAfterTrailingComma(node, node.elements, true);
-          break;
-      }
-    } else if (this.state.commentPreviousNode && (this.state.commentPreviousNode.type === "ImportSpecifier" && node.type !== "ImportSpecifier" || this.state.commentPreviousNode.type === "ExportSpecifier" && node.type !== "ExportSpecifier")) {
-      this.adjustCommentsAfterTrailingComma(node, [this.state.commentPreviousNode]);
-    }
-
-    if (lastChild) {
-      if (lastChild.leadingComments) {
-        if (lastChild !== node && lastChild.leadingComments.length > 0 && last(lastChild.leadingComments).end <= node.start) {
-          node.leadingComments = lastChild.leadingComments;
-          delete lastChild.leadingComments;
-        } else {
-          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {
-            if (lastChild.leadingComments[i].end <= node.start) {
-              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);
-              break;
-            }
-          }
-        }
-      }
-    } else if (this.state.leadingComments.length > 0) {
-      if (last(this.state.leadingComments).end <= node.start) {
-        if (this.state.commentPreviousNode) {
-          for (j = 0; j < this.state.leadingComments.length; j++) {
-            if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) {
-              this.state.leadingComments.splice(j, 1);
-              j--;
-            }
-          }
-        }
-
-        if (this.state.leadingComments.length > 0) {
-          node.leadingComments = this.state.leadingComments;
-          this.state.leadingComments = [];
-        }
-      } else {
-        for (i = 0; i < this.state.leadingComments.length; i++) {
-          if (this.state.leadingComments[i].end > node.start) {
-            break;
-          }
-        }
-
-        const leadingComments = this.state.leadingComments.slice(0, i);
-
-        if (leadingComments.length) {
-          node.leadingComments = leadingComments;
-        }
-
-        trailingComments = this.state.leadingComments.slice(i);
-
-        if (trailingComments.length === 0) {
-          trailingComments = null;
-        }
-      }
-    }
-
-    this.state.commentPreviousNode = node;
-
-    if (trailingComments) {
-      if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) {
-        node.innerComments = trailingComments;
-      } else {
-        node.trailingComments = trailingComments;
-      }
-    }
-
-    stack.push(node);
-  }
-
-}
-
-const Errors = Object.freeze({
-  ArgumentsDisallowedInInitializer: "'arguments' is not allowed in class field initializer",
-  AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block",
-  AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function",
-  AwaitExpressionFormalParameter: "await is not allowed in async function parameters",
-  AwaitNotInAsyncFunction: "Can not use keyword 'await' outside an async function",
-  BadGetterArity: "getter must not have any formal parameters",
-  BadSetterArity: "setter must have exactly one formal parameter",
-  BadSetterRestParameter: "setter function argument must not be a rest parameter",
-  ConstructorClassField: "Classes may not have a field named 'constructor'",
-  ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'",
-  ConstructorIsAccessor: "Class constructor may not be an accessor",
-  ConstructorIsAsync: "Constructor can't be an async function",
-  ConstructorIsGenerator: "Constructor can't be a generator",
-  DeclarationMissingInitializer: "%0 require an initialization value",
-  DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax",
-  DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
-  DecoratorExportClass: "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.",
-  DecoratorSemicolon: "Decorators must not be followed by a semicolon",
-  DeletePrivateField: "Deleting a private field is not allowed",
-  DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
-  DuplicateConstructor: "Duplicate constructor in the same class",
-  DuplicateDefaultExport: "Only one default export allowed per module.",
-  DuplicateExport: "`%0` has already been exported. Exported identifiers must be unique.",
-  DuplicateProto: "Redefinition of __proto__ property",
-  DuplicateRegExpFlags: "Duplicate regular expression flag",
-  ElementAfterRest: "Rest element must be last element",
-  EscapedCharNotAnIdentifier: "Invalid Unicode escape",
-  ForInOfLoopInitializer: "%0 loop variable declaration may not have an initializer",
-  GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block",
-  IllegalBreakContinue: "Unsyntactic %0",
-  IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list",
-  IllegalReturn: "'return' outside of function",
-  ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments",
-  ImportCallArity: "import() requires exactly one argument",
-  ImportCallArityLtOne: "Dynamic imports require a parameter: import('a.js')",
-  ImportCallNotNewExpression: "Cannot use new with import(...)",
-  ImportCallSpreadArgument: "... is not allowed in import()",
-  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: "module"'`,
-  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: "module"'`,
-  InvalidCodePoint: "Code point out of bounds",
-  InvalidDigit: "Expected number in radix %0",
-  InvalidEscapeSequence: "Bad character escape sequence",
-  InvalidEscapeSequenceTemplate: "Invalid escape sequence in template",
-  InvalidEscapedReservedWord: "Escape sequence in keyword %0",
-  InvalidIdentifier: "Invalid identifier %0",
-  InvalidLhs: "Invalid left-hand side in %0",
-  InvalidLhsBinding: "Binding invalid left-hand side in %0",
-  InvalidNumber: "Invalid number",
-  InvalidOrUnexpectedToken: "Unexpected character '%0'",
-  InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern",
-  InvalidPrivateFieldResolution: "Private name #%0 is not defined",
-  InvalidPropertyBindingPattern: "Binding member expression",
-  InvalidRestAssignmentPattern: "Invalid rest operator's argument",
-  LabelRedeclaration: "Label '%0' is already declared",
-  LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.",
-  MalformedRegExpFlags: "Invalid regular expression flag",
-  MissingClassName: "A class name is required",
-  MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
-  MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX",
-  MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators",
-  ModuleExportUndefined: "Export '%0' is not defined",
-  MultipleDefaultsInSwitch: "Multiple default clauses",
-  NewlineAfterThrow: "Illegal newline after throw",
-  NoCatchOrFinally: "Missing catch or finally clause",
-  NumberIdentifier: "Identifier directly after number",
-  NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences",
-  ObsoleteAwaitStar: "await* has been removed from the async functions proposal. Use Promise.all() instead.",
-  OptionalChainingNoNew: "constructors in/after an Optional Chain are not allowed",
-  OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain",
-  ParamDupe: "Argument name clash",
-  PatternHasAccessor: "Object pattern can't contain getter or setter",
-  PatternHasMethod: "Object pattern can't contain methods",
-  PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized',
-  PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression",
-  PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression",
-  PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference",
-  PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding",
-  PrimaryTopicRequiresSmartPipeline: "Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.",
-  PrivateNameRedeclaration: "Duplicate private name #%0",
-  RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'",
-  RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'",
-  RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'",
-  RestTrailingComma: "Unexpected trailing comma after rest element",
-  SloppyFunction: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",
-  StaticPrototype: "Classes may not have static property named prototype",
-  StrictDelete: "Deleting local variable in strict mode",
-  StrictEvalArguments: "Assigning to '%0' in strict mode",
-  StrictEvalArgumentsBinding: "Binding '%0' in strict mode",
-  StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block",
-  StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode",
-  StrictWith: "'with' in strict mode",
-  SuperNotAllowed: "super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
-  SuperPrivateField: "Private fields can't be accessed on super",
-  TrailingDecorator: "Decorators must be attached to a class element",
-  TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'",
-  TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'",
-  TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'",
-  UnexpectedArgumentPlaceholder: "Unexpected argument placeholder",
-  UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal',
-  UnexpectedDigitAfterHash: "Unexpected digit after hash token",
-  UnexpectedImportExport: "'import' and 'export' may only appear at the top level",
-  UnexpectedKeyword: "Unexpected keyword '%0'",
-  UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration",
-  UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context",
-  UnexpectedNewTarget: "new.target can only be used in functions",
-  UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits",
-  UnexpectedPrivateField: "Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\n or a property of member expression (i.e. this.#p).",
-  UnexpectedReservedWord: "Unexpected reserved word '%0'",
-  UnexpectedSuper: "super is only allowed in object methods and classes",
-  UnexpectedToken: "Unexpected token '%'",
-  UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
-  UnsupportedBind: "Binding should be performed on object property.",
-  UnsupportedDecoratorExport: "A decorated export must export a class declaration",
-  UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
-  UnsupportedImport: "import can only be used in import() or import.meta",
-  UnsupportedMetaProperty: "The only valid meta property for %0 is %0.%1",
-  UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters",
-  UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties",
-  UnsupportedSuper: "super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])",
-  UnterminatedComment: "Unterminated comment",
-  UnterminatedRegExp: "Unterminated regular expression",
-  UnterminatedString: "Unterminated string constant",
-  UnterminatedTemplate: "Unterminated template",
-  VarRedeclaration: "Identifier '%0' has already been declared",
-  YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator",
-  YieldInParameter: "yield is not allowed in generator parameters",
-  ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0"
-});
-class LocationParser extends CommentsParser {
-  getLocationForPosition(pos) {
-    let loc;
-    if (pos === this.state.start) loc = this.state.startLoc;else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;else if (pos === this.state.end) loc = this.state.endLoc;else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;else loc = getLineInfo(this.input, pos);
-    return loc;
-  }
-
-  raise(pos, errorTemplate, ...params) {
-    return this.raiseWithData(pos, undefined, errorTemplate, ...params);
-  }
-
-  raiseWithData(pos, data, errorTemplate, ...params) {
-    const loc = this.getLocationForPosition(pos);
-    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
-    return this._raise(Object.assign({
-      loc,
-      pos
-    }, data), message);
-  }
-
-  _raise(errorContext, message) {
-    const err = new SyntaxError(message);
-    Object.assign(err, errorContext);
-
-    if (this.options.errorRecovery) {
-      if (!this.isLookahead) this.state.errors.push(err);
-      return err;
-    } else {
-      throw err;
-    }
-  }
-
-}
-
-function isSimpleProperty(node) {
-  return node != null && node.type === "Property" && node.kind === "init" && node.method === false;
-}
-
-var estree = (superClass => class extends superClass {
-  estreeParseRegExpLiteral({
-    pattern,
-    flags
-  }) {
-    let regex = null;
-
-    try {
-      regex = new RegExp(pattern, flags);
-    } catch (e) {}
-
-    const node = this.estreeParseLiteral(regex);
-    node.regex = {
-      pattern,
-      flags
-    };
-    return node;
-  }
-
-  estreeParseBigIntLiteral(value) {
-    const bigInt = typeof BigInt !== "undefined" ? BigInt(value) : null;
-    const node = this.estreeParseLiteral(bigInt);
-    node.bigint = String(node.value || value);
-    return node;
-  }
-
-  estreeParseLiteral(value) {
-    return this.parseLiteral(value, "Literal");
-  }
-
-  directiveToStmt(directive) {
-    const directiveLiteral = directive.value;
-    const stmt = this.startNodeAt(directive.start, directive.loc.start);
-    const expression = this.startNodeAt(directiveLiteral.start, directiveLiteral.loc.start);
-    expression.value = directiveLiteral.value;
-    expression.raw = directiveLiteral.extra.raw;
-    stmt.expression = this.finishNodeAt(expression, "Literal", directiveLiteral.end, directiveLiteral.loc.end);
-    stmt.directive = directiveLiteral.extra.raw.slice(1, -1);
-    return this.finishNodeAt(stmt, "ExpressionStatement", directive.end, directive.loc.end);
-  }
-
-  initFunction(node, isAsync) {
-    super.initFunction(node, isAsync);
-    node.expression = false;
-  }
-
-  checkDeclaration(node) {
-    if (isSimpleProperty(node)) {
-      this.checkDeclaration(node.value);
-    } else {
-      super.checkDeclaration(node);
-    }
-  }
-
-  checkGetterSetterParams(method) {
-    const prop = method;
-    const paramCount = prop.kind === "get" ? 0 : 1;
-    const start = prop.start;
-
-    if (prop.value.params.length !== paramCount) {
-      if (method.kind === "get") {
-        this.raise(start, Errors.BadGetterArity);
-      } else {
-        this.raise(start, Errors.BadSetterArity);
-      }
-    } else if (prop.kind === "set" && prop.value.params[0].type === "RestElement") {
-      this.raise(start, Errors.BadSetterRestParameter);
-    }
-  }
-
-  checkLVal(expr, bindingType = BIND_NONE, checkClashes, contextDescription, disallowLetBinding) {
-    switch (expr.type) {
-      case "ObjectPattern":
-        expr.properties.forEach(prop => {
-          this.checkLVal(prop.type === "Property" ? prop.value : prop, bindingType, checkClashes, "object destructuring pattern", disallowLetBinding);
-        });
-        break;
-
-      default:
-        super.checkLVal(expr, bindingType, checkClashes, contextDescription, disallowLetBinding);
-    }
-  }
-
-  checkDuplicatedProto(prop, protoRef, refExpressionErrors) {
-    if (prop.type === "SpreadElement" || prop.computed || prop.method || prop.shorthand) {
-      return;
-    }
-
-    const key = prop.key;
-    const name = key.type === "Identifier" ? key.name : String(key.value);
-
-    if (name === "__proto__" && prop.kind === "init") {
-      if (protoRef.used) {
-        if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {
-          refExpressionErrors.doubleProto = key.start;
-        } else {
-          this.raise(key.start, Errors.DuplicateProto);
-        }
-      }
-
-      protoRef.used = true;
-    }
-  }
-
-  isValidDirective(stmt) {
-    return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && (!stmt.expression.extra || !stmt.expression.extra.parenthesized);
-  }
-
-  stmtToDirective(stmt) {
-    const directive = super.stmtToDirective(stmt);
-    const value = stmt.expression.value;
-    directive.value.value = value;
-    return directive;
-  }
-
-  parseBlockBody(node, allowDirectives, topLevel, end) {
-    super.parseBlockBody(node, allowDirectives, topLevel, end);
-    const directiveStatements = node.directives.map(d => this.directiveToStmt(d));
-    node.body = directiveStatements.concat(node.body);
-    delete node.directives;
-  }
-
-  pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
-    this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true);
-
-    if (method.typeParameters) {
-      method.value.typeParameters = method.typeParameters;
-      delete method.typeParameters;
-    }
-
-    classBody.body.push(method);
-  }
-
-  parseExprAtom(refExpressionErrors) {
-    switch (this.state.type) {
-      case types.num:
-      case types.string:
-        return this.estreeParseLiteral(this.state.value);
-
-      case types.regexp:
-        return this.estreeParseRegExpLiteral(this.state.value);
-
-      case types.bigint:
-        return this.estreeParseBigIntLiteral(this.state.value);
-
-      case types._null:
-        return this.estreeParseLiteral(null);
-
-      case types._true:
-        return this.estreeParseLiteral(true);
-
-      case types._false:
-        return this.estreeParseLiteral(false);
-
-      default:
-        return super.parseExprAtom(refExpressionErrors);
-    }
-  }
-
-  parseLiteral(value, type, startPos, startLoc) {
-    const node = super.parseLiteral(value, type, startPos, startLoc);
-    node.raw = node.extra.raw;
-    delete node.extra;
-    return node;
-  }
-
-  parseFunctionBody(node, allowExpression, isMethod = false) {
-    super.parseFunctionBody(node, allowExpression, isMethod);
-    node.expression = node.body.type !== "BlockStatement";
-  }
-
-  parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {
-    let funcNode = this.startNode();
-    funcNode.kind = node.kind;
-    funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);
-    funcNode.type = "FunctionExpression";
-    delete funcNode.kind;
-    node.value = funcNode;
-    type = type === "ClassMethod" ? "MethodDefinition" : type;
-    return this.finishNode(node, type);
-  }
-
-  parseObjectMethod(prop, isGenerator, isAsync, isPattern, containsEsc) {
-    const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, containsEsc);
-
-    if (node) {
-      node.type = "Property";
-      if (node.kind === "method") node.kind = "init";
-      node.shorthand = false;
-    }
-
-    return node;
-  }
-
-  parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) {
-    const node = super.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors);
-
-    if (node) {
-      node.kind = "init";
-      node.type = "Property";
-    }
-
-    return node;
-  }
-
-  toAssignable(node) {
-    if (isSimpleProperty(node)) {
-      this.toAssignable(node.value);
-      return node;
-    }
-
-    return super.toAssignable(node);
-  }
-
-  toAssignableObjectExpressionProp(prop, isLast) {
-    if (prop.kind === "get" || prop.kind === "set") {
-      throw this.raise(prop.key.start, Errors.PatternHasAccessor);
-    } else if (prop.method) {
-      throw this.raise(prop.key.start, Errors.PatternHasMethod);
-    } else {
-      super.toAssignableObjectExpressionProp(prop, isLast);
-    }
-  }
-
-  finishCallExpression(node, optional) {
-    super.finishCallExpression(node, optional);
-
-    if (node.callee.type === "Import") {
-      node.type = "ImportExpression";
-      node.source = node.arguments[0];
-      delete node.arguments;
-      delete node.callee;
-    }
-
-    return node;
-  }
-
-  toReferencedListDeep(exprList, isParenthesizedExpr) {
-    if (!exprList) {
-      return;
-    }
-
-    super.toReferencedListDeep(exprList, isParenthesizedExpr);
-  }
-
-  parseExport(node) {
-    super.parseExport(node);
-
-    switch (node.type) {
-      case "ExportAllDeclaration":
-        node.exported = null;
-        break;
-
-      case "ExportNamedDeclaration":
-        if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") {
-          node.type = "ExportAllDeclaration";
-          node.exported = node.specifiers[0].exported;
-          delete node.specifiers;
-        }
-
-        break;
-    }
-
-    return node;
-  }
-
-});
-
-class TokContext {
-  constructor(token, isExpr, preserveSpace, override) {
-    this.token = token;
-    this.isExpr = !!isExpr;
-    this.preserveSpace = !!preserveSpace;
-    this.override = override;
-  }
-
-}
-const types$1 = {
-  braceStatement: new TokContext("{", false),
-  braceExpression: new TokContext("{", true),
-  templateQuasi: new TokContext("${", false),
-  parenStatement: new TokContext("(", false),
-  parenExpression: new TokContext("(", true),
-  template: new TokContext("`", true, true, p => p.readTmplToken()),
-  functionExpression: new TokContext("function", true),
-  functionStatement: new TokContext("function", false)
-};
-
-types.parenR.updateContext = types.braceR.updateContext = function () {
-  if (this.state.context.length === 1) {
-    this.state.exprAllowed = true;
-    return;
-  }
-
-  let out = this.state.context.pop();
-
-  if (out === types$1.braceStatement && this.curContext().token === "function") {
-    out = this.state.context.pop();
-  }
-
-  this.state.exprAllowed = !out.isExpr;
-};
-
-types.name.updateContext = function (prevType) {
-  let allowed = false;
-
-  if (prevType !== types.dot) {
-    if (this.state.value === "of" && !this.state.exprAllowed || this.state.value === "yield" && this.prodParam.hasYield) {
-      allowed = true;
-    }
-  }
-
-  this.state.exprAllowed = allowed;
-
-  if (this.state.isIterator) {
-    this.state.isIterator = false;
-  }
-};
-
-types.braceL.updateContext = function (prevType) {
-  this.state.context.push(this.braceIsBlock(prevType) ? types$1.braceStatement : types$1.braceExpression);
-  this.state.exprAllowed = true;
-};
-
-types.dollarBraceL.updateContext = function () {
-  this.state.context.push(types$1.templateQuasi);
-  this.state.exprAllowed = true;
-};
-
-types.parenL.updateContext = function (prevType) {
-  const statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;
-  this.state.context.push(statementParens ? types$1.parenStatement : types$1.parenExpression);
-  this.state.exprAllowed = true;
-};
-
-types.incDec.updateContext = function () {};
-
-types._function.updateContext = types._class.updateContext = function (prevType) {
-  if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else && !(prevType === types._return && lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) && !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) {
-    this.state.context.push(types$1.functionExpression);
-  } else {
-    this.state.context.push(types$1.functionStatement);
-  }
-
-  this.state.exprAllowed = false;
-};
-
-types.backQuote.updateContext = function () {
-  if (this.curContext() === types$1.template) {
-    this.state.context.pop();
-  } else {
-    this.state.context.push(types$1.template);
-  }
-
-  this.state.exprAllowed = false;
-};
-
-let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
-let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
-const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
-const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
-const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938];
-const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
-
-function isInAstralSet(code, set) {
-  let pos = 0x10000;
-
-  for (let i = 0, length = set.length; i < length; i += 2) {
-    pos += set[i];
-    if (pos > code) return false;
-    pos += set[i + 1];
-    if (pos >= code) return true;
-  }
-
-  return false;
-}
-
-function isIdentifierStart(code) {
-  if (code < 65) return code === 36;
-  if (code <= 90) return true;
-  if (code < 97) return code === 95;
-  if (code <= 122) return true;
-
-  if (code <= 0xffff) {
-    return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
-  }
-
-  return isInAstralSet(code, astralIdentifierStartCodes);
-}
-function isIdentifierChar(code) {
-  if (code < 48) return code === 36;
-  if (code < 58) return true;
-  if (code < 65) return false;
-  if (code <= 90) return true;
-  if (code < 97) return code === 95;
-  if (code <= 122) return true;
-
-  if (code <= 0xffff) {
-    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
-  }
-
-  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
-}
-
-const reservedWords = {
-  keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
-  strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
-  strictBind: ["eval", "arguments"]
-};
-const keywords$1 = new Set(reservedWords.keyword);
-const reservedWordsStrictSet = new Set(reservedWords.strict);
-const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
-function isReservedWord(word, inModule) {
-  return inModule && word === "await" || word === "enum";
-}
-function isStrictReservedWord(word, inModule) {
-  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
-}
-function isStrictBindOnlyReservedWord(word) {
-  return reservedWordsStrictBindSet.has(word);
-}
-function isStrictBindReservedWord(word, inModule) {
-  return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
-}
-function isKeyword(word) {
-  return keywords$1.has(word);
-}
-
-const keywordRelationalOperator = /^in(stanceof)?$/;
-function isIteratorStart(current, next) {
-  return current === 64 && next === 64;
-}
-
-const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
-const FlowErrors = Object.freeze({
-  AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
-  AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module",
-  AssignReservedType: "Cannot overwrite reserved type %0",
-  DeclareClassElement: "The `declare` modifier can only appear on class fields.",
-  DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
-  DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement",
-  EnumBooleanMemberNotInitialized: "Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.",
-  EnumDuplicateMemberName: "Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.",
-  EnumInconsistentMemberValues: "Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.",
-  EnumInvalidExplicitType: "Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.",
-  EnumInvalidExplicitTypeUnknownSupplied: "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.",
-  EnumInvalidMemberInitializerPrimaryType: "Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.",
-  EnumInvalidMemberInitializerSymbolType: "Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.",
-  EnumInvalidMemberInitializerUnknownType: "The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.",
-  EnumInvalidMemberName: "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.",
-  EnumNumberMemberNotInitialized: "Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.",
-  EnumStringMemberInconsistentlyInitailized: "String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.",
-  ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements",
-  InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type",
-  InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions",
-  InexactVariance: "Explicit inexact syntax cannot have variance",
-  InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`",
-  MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
-  NestedDeclareModule: "`declare module` cannot be used inside another `declare module`",
-  NestedFlowComment: "Cannot have a flow comment inside another flow comment",
-  OptionalBindingPattern: "A binding pattern parameter cannot be optional in an implementation signature.",
-  SpreadVariance: "Spread properties cannot have variance",
-  TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`",
-  TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis",
-  UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object",
-  UnexpectedReservedType: "Unexpected reserved type %0",
-  UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new",
-  UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
-  UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions",
-  UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint"',
-  UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration",
-  UnsupportedDeclareExportKind: "`declare export %0` is not supported. Use `%1` instead",
-  UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module",
-  UnterminatedFlowComment: "Unterminated flow-comment"
-});
-
-function isEsModuleType(bodyElement) {
-  return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration");
-}
-
-function hasTypeImportKind(node) {
-  return node.importKind === "type" || node.importKind === "typeof";
-}
-
-function isMaybeDefaultImport(state) {
-  return (state.type === types.name || !!state.type.keyword) && state.value !== "from";
-}
-
-const exportSuggestions = {
-  const: "declare export var",
-  let: "declare export var",
-  type: "export type",
-  interface: "export interface"
-};
-
-function partition(list, test) {
-  const list1 = [];
-  const list2 = [];
-
-  for (let i = 0; i < list.length; i++) {
-    (test(list[i], i, list) ? list1 : list2).push(list[i]);
-  }
-
-  return [list1, list2];
-}
-
-const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/;
-var flow = (superClass => class extends superClass {
-  constructor(options, input) {
-    super(options, input);
-    this.flowPragma = undefined;
-  }
-
-  shouldParseTypes() {
-    return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
-  }
-
-  shouldParseEnums() {
-    return !!this.getPluginOption("flow", "enums");
-  }
-
-  finishToken(type, val) {
-    if (type !== types.string && type !== types.semi && type !== types.interpreterDirective) {
-      if (this.flowPragma === undefined) {
-        this.flowPragma = null;
-      }
-    }
-
-    return super.finishToken(type, val);
-  }
-
-  addComment(comment) {
-    if (this.flowPragma === undefined) {
-      const matches = FLOW_PRAGMA_REGEX.exec(comment.value);
-
-      if (!matches) ; else if (matches[1] === "flow") {
-        this.flowPragma = "flow";
-      } else if (matches[1] === "noflow") {
-        this.flowPragma = "noflow";
-      } else {
-        throw new Error("Unexpected flow pragma");
-      }
-    }
-
-    return super.addComment(comment);
-  }
-
-  flowParseTypeInitialiser(tok) {
-    const oldInType = this.state.inType;
-    this.state.inType = true;
-    this.expect(tok || types.colon);
-    const type = this.flowParseType();
-    this.state.inType = oldInType;
-    return type;
-  }
-
-  flowParsePredicate() {
-    const node = this.startNode();
-    const moduloLoc = this.state.startLoc;
-    const moduloPos = this.state.start;
-    this.expect(types.modulo);
-    const checksLoc = this.state.startLoc;
-    this.expectContextual("checks");
-
-    if (moduloLoc.line !== checksLoc.line || moduloLoc.column !== checksLoc.column - 1) {
-      this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);
-    }
-
-    if (this.eat(types.parenL)) {
-      node.value = this.parseExpression();
-      this.expect(types.parenR);
-      return this.finishNode(node, "DeclaredPredicate");
-    } else {
-      return this.finishNode(node, "InferredPredicate");
-    }
-  }
-
-  flowParseTypeAndPredicateInitialiser() {
-    const oldInType = this.state.inType;
-    this.state.inType = true;
-    this.expect(types.colon);
-    let type = null;
-    let predicate = null;
-
-    if (this.match(types.modulo)) {
-      this.state.inType = oldInType;
-      predicate = this.flowParsePredicate();
-    } else {
-      type = this.flowParseType();
-      this.state.inType = oldInType;
-
-      if (this.match(types.modulo)) {
-        predicate = this.flowParsePredicate();
-      }
-    }
-
-    return [type, predicate];
-  }
-
-  flowParseDeclareClass(node) {
-    this.next();
-    this.flowParseInterfaceish(node, true);
-    return this.finishNode(node, "DeclareClass");
-  }
-
-  flowParseDeclareFunction(node) {
-    this.next();
-    const id = node.id = this.parseIdentifier();
-    const typeNode = this.startNode();
-    const typeContainer = this.startNode();
-
-    if (this.isRelational("<")) {
-      typeNode.typeParameters = this.flowParseTypeParameterDeclaration();
-    } else {
-      typeNode.typeParameters = null;
-    }
-
-    this.expect(types.parenL);
-    const tmp = this.flowParseFunctionTypeParams();
-    typeNode.params = tmp.params;
-    typeNode.rest = tmp.rest;
-    this.expect(types.parenR);
-    [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
-    typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation");
-    id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation");
-    this.resetEndLocation(id);
-    this.semicolon();
-    return this.finishNode(node, "DeclareFunction");
-  }
-
-  flowParseDeclare(node, insideModule) {
-    if (this.match(types._class)) {
-      return this.flowParseDeclareClass(node);
-    } else if (this.match(types._function)) {
-      return this.flowParseDeclareFunction(node);
-    } else if (this.match(types._var)) {
-      return this.flowParseDeclareVariable(node);
-    } else if (this.eatContextual("module")) {
-      if (this.match(types.dot)) {
-        return this.flowParseDeclareModuleExports(node);
-      } else {
-        if (insideModule) {
-          this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);
-        }
-
-        return this.flowParseDeclareModule(node);
-      }
-    } else if (this.isContextual("type")) {
-      return this.flowParseDeclareTypeAlias(node);
-    } else if (this.isContextual("opaque")) {
-      return this.flowParseDeclareOpaqueType(node);
-    } else if (this.isContextual("interface")) {
-      return this.flowParseDeclareInterface(node);
-    } else if (this.match(types._export)) {
-      return this.flowParseDeclareExportDeclaration(node, insideModule);
-    } else {
-      throw this.unexpected();
-    }
-  }
-
-  flowParseDeclareVariable(node) {
-    this.next();
-    node.id = this.flowParseTypeAnnotatableIdentifier(true);
-    this.scope.declareName(node.id.name, BIND_VAR, node.id.start);
-    this.semicolon();
-    return this.finishNode(node, "DeclareVariable");
-  }
-
-  flowParseDeclareModule(node) {
-    this.scope.enter(SCOPE_OTHER);
-
-    if (this.match(types.string)) {
-      node.id = this.parseExprAtom();
-    } else {
-      node.id = this.parseIdentifier();
-    }
-
-    const bodyNode = node.body = this.startNode();
-    const body = bodyNode.body = [];
-    this.expect(types.braceL);
-
-    while (!this.match(types.braceR)) {
-      let bodyNode = this.startNode();
-
-      if (this.match(types._import)) {
-        this.next();
-
-        if (!this.isContextual("type") && !this.match(types._typeof)) {
-          this.raise(this.state.lastTokStart, FlowErrors.InvalidNonTypeImportInDeclareModule);
-        }
-
-        this.parseImport(bodyNode);
-      } else {
-        this.expectContextual("declare", FlowErrors.UnsupportedStatementInDeclareModule);
-        bodyNode = this.flowParseDeclare(bodyNode, true);
-      }
-
-      body.push(bodyNode);
-    }
-
-    this.scope.exit();
-    this.expect(types.braceR);
-    this.finishNode(bodyNode, "BlockStatement");
-    let kind = null;
-    let hasModuleExport = false;
-    body.forEach(bodyElement => {
-      if (isEsModuleType(bodyElement)) {
-        if (kind === "CommonJS") {
-          this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind);
-        }
-
-        kind = "ES";
-      } else if (bodyElement.type === "DeclareModuleExports") {
-        if (hasModuleExport) {
-          this.raise(bodyElement.start, FlowErrors.DuplicateDeclareModuleExports);
-        }
-
-        if (kind === "ES") {
-          this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind);
-        }
-
-        kind = "CommonJS";
-        hasModuleExport = true;
-      }
-    });
-    node.kind = kind || "CommonJS";
-    return this.finishNode(node, "DeclareModule");
-  }
-
-  flowParseDeclareExportDeclaration(node, insideModule) {
-    this.expect(types._export);
-
-    if (this.eat(types._default)) {
-      if (this.match(types._function) || this.match(types._class)) {
-        node.declaration = this.flowParseDeclare(this.startNode());
-      } else {
-        node.declaration = this.flowParseType();
-        this.semicolon();
-      }
-
-      node.default = true;
-      return this.finishNode(node, "DeclareExportDeclaration");
-    } else {
-      if (this.match(types._const) || this.isLet() || (this.isContextual("type") || this.isContextual("interface")) && !insideModule) {
-        const label = this.state.value;
-        const suggestion = exportSuggestions[label];
-        throw this.raise(this.state.start, FlowErrors.UnsupportedDeclareExportKind, label, suggestion);
-      }
-
-      if (this.match(types._var) || this.match(types._function) || this.match(types._class) || this.isContextual("opaque")) {
-          node.declaration = this.flowParseDeclare(this.startNode());
-          node.default = false;
-          return this.finishNode(node, "DeclareExportDeclaration");
-        } else if (this.match(types.star) || this.match(types.braceL) || this.isContextual("interface") || this.isContextual("type") || this.isContextual("opaque")) {
-          node = this.parseExport(node);
-
-          if (node.type === "ExportNamedDeclaration") {
-            node.type = "ExportDeclaration";
-            node.default = false;
-            delete node.exportKind;
-          }
-
-          node.type = "Declare" + node.type;
-          return node;
-        }
-    }
-
-    throw this.unexpected();
-  }
-
-  flowParseDeclareModuleExports(node) {
-    this.next();
-    this.expectContextual("exports");
-    node.typeAnnotation = this.flowParseTypeAnnotation();
-    this.semicolon();
-    return this.finishNode(node, "DeclareModuleExports");
-  }
-
-  flowParseDeclareTypeAlias(node) {
-    this.next();
-    this.flowParseTypeAlias(node);
-    node.type = "DeclareTypeAlias";
-    return node;
-  }
-
-  flowParseDeclareOpaqueType(node) {
-    this.next();
-    this.flowParseOpaqueType(node, true);
-    node.type = "DeclareOpaqueType";
-    return node;
-  }
-
-  flowParseDeclareInterface(node) {
-    this.next();
-    this.flowParseInterfaceish(node);
-    return this.finishNode(node, "DeclareInterface");
-  }
-
-  flowParseInterfaceish(node, isClass = false) {
-    node.id = this.flowParseRestrictedIdentifier(!isClass, true);
-    this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.start);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    } else {
-      node.typeParameters = null;
-    }
-
-    node.extends = [];
-    node.implements = [];
-    node.mixins = [];
-
-    if (this.eat(types._extends)) {
-      do {
-        node.extends.push(this.flowParseInterfaceExtends());
-      } while (!isClass && this.eat(types.comma));
-    }
-
-    if (this.isContextual("mixins")) {
-      this.next();
-
-      do {
-        node.mixins.push(this.flowParseInterfaceExtends());
-      } while (this.eat(types.comma));
-    }
-
-    if (this.isContextual("implements")) {
-      this.next();
-
-      do {
-        node.implements.push(this.flowParseInterfaceExtends());
-      } while (this.eat(types.comma));
-    }
-
-    node.body = this.flowParseObjectType({
-      allowStatic: isClass,
-      allowExact: false,
-      allowSpread: false,
-      allowProto: isClass,
-      allowInexact: false
-    });
-  }
-
-  flowParseInterfaceExtends() {
-    const node = this.startNode();
-    node.id = this.flowParseQualifiedTypeIdentifier();
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterInstantiation();
-    } else {
-      node.typeParameters = null;
-    }
-
-    return this.finishNode(node, "InterfaceExtends");
-  }
-
-  flowParseInterface(node) {
-    this.flowParseInterfaceish(node);
-    return this.finishNode(node, "InterfaceDeclaration");
-  }
-
-  checkNotUnderscore(word) {
-    if (word === "_") {
-      this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);
-    }
-  }
-
-  checkReservedType(word, startLoc, declaration) {
-    if (!reservedTypes.has(word)) return;
-    this.raise(startLoc, declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, word);
-  }
-
-  flowParseRestrictedIdentifier(liberal, declaration) {
-    this.checkReservedType(this.state.value, this.state.start, declaration);
-    return this.parseIdentifier(liberal);
-  }
-
-  flowParseTypeAlias(node) {
-    node.id = this.flowParseRestrictedIdentifier(false, true);
-    this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    } else {
-      node.typeParameters = null;
-    }
-
-    node.right = this.flowParseTypeInitialiser(types.eq);
-    this.semicolon();
-    return this.finishNode(node, "TypeAlias");
-  }
-
-  flowParseOpaqueType(node, declare) {
-    this.expectContextual("type");
-    node.id = this.flowParseRestrictedIdentifier(true, true);
-    this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    } else {
-      node.typeParameters = null;
-    }
-
-    node.supertype = null;
-
-    if (this.match(types.colon)) {
-      node.supertype = this.flowParseTypeInitialiser(types.colon);
-    }
-
-    node.impltype = null;
-
-    if (!declare) {
-      node.impltype = this.flowParseTypeInitialiser(types.eq);
-    }
-
-    this.semicolon();
-    return this.finishNode(node, "OpaqueType");
-  }
-
-  flowParseTypeParameter(requireDefault = false) {
-    const nodeStart = this.state.start;
-    const node = this.startNode();
-    const variance = this.flowParseVariance();
-    const ident = this.flowParseTypeAnnotatableIdentifier();
-    node.name = ident.name;
-    node.variance = variance;
-    node.bound = ident.typeAnnotation;
-
-    if (this.match(types.eq)) {
-      this.eat(types.eq);
-      node.default = this.flowParseType();
-    } else {
-      if (requireDefault) {
-        this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);
-      }
-    }
-
-    return this.finishNode(node, "TypeParameter");
-  }
-
-  flowParseTypeParameterDeclaration() {
-    const oldInType = this.state.inType;
-    const node = this.startNode();
-    node.params = [];
-    this.state.inType = true;
-
-    if (this.isRelational("<") || this.match(types.jsxTagStart)) {
-      this.next();
-    } else {
-      this.unexpected();
-    }
-
-    let defaultRequired = false;
-
-    do {
-      const typeParameter = this.flowParseTypeParameter(defaultRequired);
-      node.params.push(typeParameter);
-
-      if (typeParameter.default) {
-        defaultRequired = true;
-      }
-
-      if (!this.isRelational(">")) {
-        this.expect(types.comma);
-      }
-    } while (!this.isRelational(">"));
-
-    this.expectRelational(">");
-    this.state.inType = oldInType;
-    return this.finishNode(node, "TypeParameterDeclaration");
-  }
-
-  flowParseTypeParameterInstantiation() {
-    const node = this.startNode();
-    const oldInType = this.state.inType;
-    node.params = [];
-    this.state.inType = true;
-    this.expectRelational("<");
-    const oldNoAnonFunctionType = this.state.noAnonFunctionType;
-    this.state.noAnonFunctionType = false;
-
-    while (!this.isRelational(">")) {
-      node.params.push(this.flowParseType());
-
-      if (!this.isRelational(">")) {
-        this.expect(types.comma);
-      }
-    }
-
-    this.state.noAnonFunctionType = oldNoAnonFunctionType;
-    this.expectRelational(">");
-    this.state.inType = oldInType;
-    return this.finishNode(node, "TypeParameterInstantiation");
-  }
-
-  flowParseTypeParameterInstantiationCallOrNew() {
-    const node = this.startNode();
-    const oldInType = this.state.inType;
-    node.params = [];
-    this.state.inType = true;
-    this.expectRelational("<");
-
-    while (!this.isRelational(">")) {
-      node.params.push(this.flowParseTypeOrImplicitInstantiation());
-
-      if (!this.isRelational(">")) {
-        this.expect(types.comma);
-      }
-    }
-
-    this.expectRelational(">");
-    this.state.inType = oldInType;
-    return this.finishNode(node, "TypeParameterInstantiation");
-  }
-
-  flowParseInterfaceType() {
-    const node = this.startNode();
-    this.expectContextual("interface");
-    node.extends = [];
-
-    if (this.eat(types._extends)) {
-      do {
-        node.extends.push(this.flowParseInterfaceExtends());
-      } while (this.eat(types.comma));
-    }
-
-    node.body = this.flowParseObjectType({
-      allowStatic: false,
-      allowExact: false,
-      allowSpread: false,
-      allowProto: false,
-      allowInexact: false
-    });
-    return this.finishNode(node, "InterfaceTypeAnnotation");
-  }
-
-  flowParseObjectPropertyKey() {
-    return this.match(types.num) || this.match(types.string) ? this.parseExprAtom() : this.parseIdentifier(true);
-  }
-
-  flowParseObjectTypeIndexer(node, isStatic, variance) {
-    node.static = isStatic;
-
-    if (this.lookahead().type === types.colon) {
-      node.id = this.flowParseObjectPropertyKey();
-      node.key = this.flowParseTypeInitialiser();
-    } else {
-      node.id = null;
-      node.key = this.flowParseType();
-    }
-
-    this.expect(types.bracketR);
-    node.value = this.flowParseTypeInitialiser();
-    node.variance = variance;
-    return this.finishNode(node, "ObjectTypeIndexer");
-  }
-
-  flowParseObjectTypeInternalSlot(node, isStatic) {
-    node.static = isStatic;
-    node.id = this.flowParseObjectPropertyKey();
-    this.expect(types.bracketR);
-    this.expect(types.bracketR);
-
-    if (this.isRelational("<") || this.match(types.parenL)) {
-      node.method = true;
-      node.optional = false;
-      node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start));
-    } else {
-      node.method = false;
-
-      if (this.eat(types.question)) {
-        node.optional = true;
-      }
-
-      node.value = this.flowParseTypeInitialiser();
-    }
-
-    return this.finishNode(node, "ObjectTypeInternalSlot");
-  }
-
-  flowParseObjectTypeMethodish(node) {
-    node.params = [];
-    node.rest = null;
-    node.typeParameters = null;
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    }
-
-    this.expect(types.parenL);
-
-    while (!this.match(types.parenR) && !this.match(types.ellipsis)) {
-      node.params.push(this.flowParseFunctionTypeParam());
-
-      if (!this.match(types.parenR)) {
-        this.expect(types.comma);
-      }
-    }
-
-    if (this.eat(types.ellipsis)) {
-      node.rest = this.flowParseFunctionTypeParam();
-    }
-
-    this.expect(types.parenR);
-    node.returnType = this.flowParseTypeInitialiser();
-    return this.finishNode(node, "FunctionTypeAnnotation");
-  }
-
-  flowParseObjectTypeCallProperty(node, isStatic) {
-    const valueNode = this.startNode();
-    node.static = isStatic;
-    node.value = this.flowParseObjectTypeMethodish(valueNode);
-    return this.finishNode(node, "ObjectTypeCallProperty");
-  }
-
-  flowParseObjectType({
-    allowStatic,
-    allowExact,
-    allowSpread,
-    allowProto,
-    allowInexact
-  }) {
-    const oldInType = this.state.inType;
-    this.state.inType = true;
-    const nodeStart = this.startNode();
-    nodeStart.callProperties = [];
-    nodeStart.properties = [];
-    nodeStart.indexers = [];
-    nodeStart.internalSlots = [];
-    let endDelim;
-    let exact;
-    let inexact = false;
-
-    if (allowExact && this.match(types.braceBarL)) {
-      this.expect(types.braceBarL);
-      endDelim = types.braceBarR;
-      exact = true;
-    } else {
-      this.expect(types.braceL);
-      endDelim = types.braceR;
-      exact = false;
-    }
-
-    nodeStart.exact = exact;
-
-    while (!this.match(endDelim)) {
-      let isStatic = false;
-      let protoStart = null;
-      let inexactStart = null;
-      const node = this.startNode();
-
-      if (allowProto && this.isContextual("proto")) {
-        const lookahead = this.lookahead();
-
-        if (lookahead.type !== types.colon && lookahead.type !== types.question) {
-          this.next();
-          protoStart = this.state.start;
-          allowStatic = false;
-        }
-      }
-
-      if (allowStatic && this.isContextual("static")) {
-        const lookahead = this.lookahead();
-
-        if (lookahead.type !== types.colon && lookahead.type !== types.question) {
-          this.next();
-          isStatic = true;
-        }
-      }
-
-      const variance = this.flowParseVariance();
-
-      if (this.eat(types.bracketL)) {
-        if (protoStart != null) {
-          this.unexpected(protoStart);
-        }
-
-        if (this.eat(types.bracketL)) {
-          if (variance) {
-            this.unexpected(variance.start);
-          }
-
-          nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic));
-        } else {
-          nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance));
-        }
-      } else if (this.match(types.parenL) || this.isRelational("<")) {
-        if (protoStart != null) {
-          this.unexpected(protoStart);
-        }
-
-        if (variance) {
-          this.unexpected(variance.start);
-        }
-
-        nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic));
-      } else {
-        let kind = "init";
-
-        if (this.isContextual("get") || this.isContextual("set")) {
-          const lookahead = this.lookahead();
-
-          if (lookahead.type === types.name || lookahead.type === types.string || lookahead.type === types.num) {
-            kind = this.state.value;
-            this.next();
-          }
-        }
-
-        const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact);
-
-        if (propOrInexact === null) {
-          inexact = true;
-          inexactStart = this.state.lastTokStart;
-        } else {
-          nodeStart.properties.push(propOrInexact);
-        }
-      }
-
-      this.flowObjectTypeSemicolon();
-
-      if (inexactStart && !this.match(types.braceR) && !this.match(types.braceBarR)) {
-        this.raise(inexactStart, FlowErrors.UnexpectedExplicitInexactInObject);
-      }
-    }
-
-    this.expect(endDelim);
-
-    if (allowSpread) {
-      nodeStart.inexact = inexact;
-    }
-
-    const out = this.finishNode(nodeStart, "ObjectTypeAnnotation");
-    this.state.inType = oldInType;
-    return out;
-  }
-
-  flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact) {
-    if (this.eat(types.ellipsis)) {
-      const isInexactToken = this.match(types.comma) || this.match(types.semi) || this.match(types.braceR) || this.match(types.braceBarR);
-
-      if (isInexactToken) {
-        if (!allowSpread) {
-          this.raise(this.state.lastTokStart, FlowErrors.InexactInsideNonObject);
-        } else if (!allowInexact) {
-          this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);
-        }
-
-        if (variance) {
-          this.raise(variance.start, FlowErrors.InexactVariance);
-        }
-
-        return null;
-      }
-
-      if (!allowSpread) {
-        this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);
-      }
-
-      if (protoStart != null) {
-        this.unexpected(protoStart);
-      }
-
-      if (variance) {
-        this.raise(variance.start, FlowErrors.SpreadVariance);
-      }
-
-      node.argument = this.flowParseType();
-      return this.finishNode(node, "ObjectTypeSpreadProperty");
-    } else {
-      node.key = this.flowParseObjectPropertyKey();
-      node.static = isStatic;
-      node.proto = protoStart != null;
-      node.kind = kind;
-      let optional = false;
-
-      if (this.isRelational("<") || this.match(types.parenL)) {
-        node.method = true;
-
-        if (protoStart != null) {
-          this.unexpected(protoStart);
-        }
-
-        if (variance) {
-          this.unexpected(variance.start);
-        }
-
-        node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start));
-
-        if (kind === "get" || kind === "set") {
-          this.flowCheckGetterSetterParams(node);
-        }
-      } else {
-        if (kind !== "init") this.unexpected();
-        node.method = false;
-
-        if (this.eat(types.question)) {
-          optional = true;
-        }
-
-        node.value = this.flowParseTypeInitialiser();
-        node.variance = variance;
-      }
-
-      node.optional = optional;
-      return this.finishNode(node, "ObjectTypeProperty");
-    }
-  }
-
-  flowCheckGetterSetterParams(property) {
-    const paramCount = property.kind === "get" ? 0 : 1;
-    const start = property.start;
-    const length = property.value.params.length + (property.value.rest ? 1 : 0);
-
-    if (length !== paramCount) {
-      if (property.kind === "get") {
-        this.raise(start, Errors.BadGetterArity);
-      } else {
-        this.raise(start, Errors.BadSetterArity);
-      }
-    }
-
-    if (property.kind === "set" && property.value.rest) {
-      this.raise(start, Errors.BadSetterRestParameter);
-    }
-  }
-
-  flowObjectTypeSemicolon() {
-    if (!this.eat(types.semi) && !this.eat(types.comma) && !this.match(types.braceR) && !this.match(types.braceBarR)) {
-      this.unexpected();
-    }
-  }
-
-  flowParseQualifiedTypeIdentifier(startPos, startLoc, id) {
-    startPos = startPos || this.state.start;
-    startLoc = startLoc || this.state.startLoc;
-    let node = id || this.flowParseRestrictedIdentifier(true);
-
-    while (this.eat(types.dot)) {
-      const node2 = this.startNodeAt(startPos, startLoc);
-      node2.qualification = node;
-      node2.id = this.flowParseRestrictedIdentifier(true);
-      node = this.finishNode(node2, "QualifiedTypeIdentifier");
-    }
-
-    return node;
-  }
-
-  flowParseGenericType(startPos, startLoc, id) {
-    const node = this.startNodeAt(startPos, startLoc);
-    node.typeParameters = null;
-    node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterInstantiation();
-    }
-
-    return this.finishNode(node, "GenericTypeAnnotation");
-  }
-
-  flowParseTypeofType() {
-    const node = this.startNode();
-    this.expect(types._typeof);
-    node.argument = this.flowParsePrimaryType();
-    return this.finishNode(node, "TypeofTypeAnnotation");
-  }
-
-  flowParseTupleType() {
-    const node = this.startNode();
-    node.types = [];
-    this.expect(types.bracketL);
-
-    while (this.state.pos < this.length && !this.match(types.bracketR)) {
-      node.types.push(this.flowParseType());
-      if (this.match(types.bracketR)) break;
-      this.expect(types.comma);
-    }
-
-    this.expect(types.bracketR);
-    return this.finishNode(node, "TupleTypeAnnotation");
-  }
-
-  flowParseFunctionTypeParam() {
-    let name = null;
-    let optional = false;
-    let typeAnnotation = null;
-    const node = this.startNode();
-    const lh = this.lookahead();
-
-    if (lh.type === types.colon || lh.type === types.question) {
-      name = this.parseIdentifier();
-
-      if (this.eat(types.question)) {
-        optional = true;
-      }
-
-      typeAnnotation = this.flowParseTypeInitialiser();
-    } else {
-      typeAnnotation = this.flowParseType();
-    }
-
-    node.name = name;
-    node.optional = optional;
-    node.typeAnnotation = typeAnnotation;
-    return this.finishNode(node, "FunctionTypeParam");
-  }
-
-  reinterpretTypeAsFunctionTypeParam(type) {
-    const node = this.startNodeAt(type.start, type.loc.start);
-    node.name = null;
-    node.optional = false;
-    node.typeAnnotation = type;
-    return this.finishNode(node, "FunctionTypeParam");
-  }
-
-  flowParseFunctionTypeParams(params = []) {
-    let rest = null;
-
-    while (!this.match(types.parenR) && !this.match(types.ellipsis)) {
-      params.push(this.flowParseFunctionTypeParam());
-
-      if (!this.match(types.parenR)) {
-        this.expect(types.comma);
-      }
-    }
-
-    if (this.eat(types.ellipsis)) {
-      rest = this.flowParseFunctionTypeParam();
-    }
-
-    return {
-      params,
-      rest
-    };
-  }
-
-  flowIdentToTypeAnnotation(startPos, startLoc, node, id) {
-    switch (id.name) {
-      case "any":
-        return this.finishNode(node, "AnyTypeAnnotation");
-
-      case "bool":
-      case "boolean":
-        return this.finishNode(node, "BooleanTypeAnnotation");
-
-      case "mixed":
-        return this.finishNode(node, "MixedTypeAnnotation");
-
-      case "empty":
-        return this.finishNode(node, "EmptyTypeAnnotation");
-
-      case "number":
-        return this.finishNode(node, "NumberTypeAnnotation");
-
-      case "string":
-        return this.finishNode(node, "StringTypeAnnotation");
-
-      case "symbol":
-        return this.finishNode(node, "SymbolTypeAnnotation");
-
-      default:
-        this.checkNotUnderscore(id.name);
-        return this.flowParseGenericType(startPos, startLoc, id);
-    }
-  }
-
-  flowParsePrimaryType() {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const node = this.startNode();
-    let tmp;
-    let type;
-    let isGroupedType = false;
-    const oldNoAnonFunctionType = this.state.noAnonFunctionType;
-
-    switch (this.state.type) {
-      case types.name:
-        if (this.isContextual("interface")) {
-          return this.flowParseInterfaceType();
-        }
-
-        return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier());
-
-      case types.braceL:
-        return this.flowParseObjectType({
-          allowStatic: false,
-          allowExact: false,
-          allowSpread: true,
-          allowProto: false,
-          allowInexact: true
-        });
-
-      case types.braceBarL:
-        return this.flowParseObjectType({
-          allowStatic: false,
-          allowExact: true,
-          allowSpread: true,
-          allowProto: false,
-          allowInexact: false
-        });
-
-      case types.bracketL:
-        this.state.noAnonFunctionType = false;
-        type = this.flowParseTupleType();
-        this.state.noAnonFunctionType = oldNoAnonFunctionType;
-        return type;
-
-      case types.relational:
-        if (this.state.value === "<") {
-          node.typeParameters = this.flowParseTypeParameterDeclaration();
-          this.expect(types.parenL);
-          tmp = this.flowParseFunctionTypeParams();
-          node.params = tmp.params;
-          node.rest = tmp.rest;
-          this.expect(types.parenR);
-          this.expect(types.arrow);
-          node.returnType = this.flowParseType();
-          return this.finishNode(node, "FunctionTypeAnnotation");
-        }
-
-        break;
-
-      case types.parenL:
-        this.next();
-
-        if (!this.match(types.parenR) && !this.match(types.ellipsis)) {
-          if (this.match(types.name)) {
-            const token = this.lookahead().type;
-            isGroupedType = token !== types.question && token !== types.colon;
-          } else {
-            isGroupedType = true;
-          }
-        }
-
-        if (isGroupedType) {
-          this.state.noAnonFunctionType = false;
-          type = this.flowParseType();
-          this.state.noAnonFunctionType = oldNoAnonFunctionType;
-
-          if (this.state.noAnonFunctionType || !(this.match(types.comma) || this.match(types.parenR) && this.lookahead().type === types.arrow)) {
-            this.expect(types.parenR);
-            return type;
-          } else {
-            this.eat(types.comma);
-          }
-        }
-
-        if (type) {
-          tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]);
-        } else {
-          tmp = this.flowParseFunctionTypeParams();
-        }
-
-        node.params = tmp.params;
-        node.rest = tmp.rest;
-        this.expect(types.parenR);
-        this.expect(types.arrow);
-        node.returnType = this.flowParseType();
-        node.typeParameters = null;
-        return this.finishNode(node, "FunctionTypeAnnotation");
-
-      case types.string:
-        return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
-
-      case types._true:
-      case types._false:
-        node.value = this.match(types._true);
-        this.next();
-        return this.finishNode(node, "BooleanLiteralTypeAnnotation");
-
-      case types.plusMin:
-        if (this.state.value === "-") {
-          this.next();
-
-          if (this.match(types.num)) {
-            return this.parseLiteral(-this.state.value, "NumberLiteralTypeAnnotation", node.start, node.loc.start);
-          }
-
-          if (this.match(types.bigint)) {
-            return this.parseLiteral(-this.state.value, "BigIntLiteralTypeAnnotation", node.start, node.loc.start);
-          }
-
-          throw this.raise(this.state.start, FlowErrors.UnexpectedSubtractionOperand);
-        }
-
-        throw this.unexpected();
-
-      case types.num:
-        return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
-
-      case types.bigint:
-        return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
-
-      case types._void:
-        this.next();
-        return this.finishNode(node, "VoidTypeAnnotation");
-
-      case types._null:
-        this.next();
-        return this.finishNode(node, "NullLiteralTypeAnnotation");
-
-      case types._this:
-        this.next();
-        return this.finishNode(node, "ThisTypeAnnotation");
-
-      case types.star:
-        this.next();
-        return this.finishNode(node, "ExistsTypeAnnotation");
-
-      default:
-        if (this.state.type.keyword === "typeof") {
-          return this.flowParseTypeofType();
-        } else if (this.state.type.keyword) {
-          const label = this.state.type.label;
-          this.next();
-          return super.createIdentifier(node, label);
-        }
-
-    }
-
-    throw this.unexpected();
-  }
-
-  flowParsePostfixType() {
-    const startPos = this.state.start,
-          startLoc = this.state.startLoc;
-    let type = this.flowParsePrimaryType();
-
-    while (this.match(types.bracketL) && !this.canInsertSemicolon()) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.elementType = type;
-      this.expect(types.bracketL);
-      this.expect(types.bracketR);
-      type = this.finishNode(node, "ArrayTypeAnnotation");
-    }
-
-    return type;
-  }
-
-  flowParsePrefixType() {
-    const node = this.startNode();
-
-    if (this.eat(types.question)) {
-      node.typeAnnotation = this.flowParsePrefixType();
-      return this.finishNode(node, "NullableTypeAnnotation");
-    } else {
-      return this.flowParsePostfixType();
-    }
-  }
-
-  flowParseAnonFunctionWithoutParens() {
-    const param = this.flowParsePrefixType();
-
-    if (!this.state.noAnonFunctionType && this.eat(types.arrow)) {
-      const node = this.startNodeAt(param.start, param.loc.start);
-      node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];
-      node.rest = null;
-      node.returnType = this.flowParseType();
-      node.typeParameters = null;
-      return this.finishNode(node, "FunctionTypeAnnotation");
-    }
-
-    return param;
-  }
-
-  flowParseIntersectionType() {
-    const node = this.startNode();
-    this.eat(types.bitwiseAND);
-    const type = this.flowParseAnonFunctionWithoutParens();
-    node.types = [type];
-
-    while (this.eat(types.bitwiseAND)) {
-      node.types.push(this.flowParseAnonFunctionWithoutParens());
-    }
-
-    return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation");
-  }
-
-  flowParseUnionType() {
-    const node = this.startNode();
-    this.eat(types.bitwiseOR);
-    const type = this.flowParseIntersectionType();
-    node.types = [type];
-
-    while (this.eat(types.bitwiseOR)) {
-      node.types.push(this.flowParseIntersectionType());
-    }
-
-    return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation");
-  }
-
-  flowParseType() {
-    const oldInType = this.state.inType;
-    this.state.inType = true;
-    const type = this.flowParseUnionType();
-    this.state.inType = oldInType;
-    this.state.exprAllowed = this.state.exprAllowed || this.state.noAnonFunctionType;
-    return type;
-  }
-
-  flowParseTypeOrImplicitInstantiation() {
-    if (this.state.type === types.name && this.state.value === "_") {
-      const startPos = this.state.start;
-      const startLoc = this.state.startLoc;
-      const node = this.parseIdentifier();
-      return this.flowParseGenericType(startPos, startLoc, node);
-    } else {
-      return this.flowParseType();
-    }
-  }
-
-  flowParseTypeAnnotation() {
-    const node = this.startNode();
-    node.typeAnnotation = this.flowParseTypeInitialiser();
-    return this.finishNode(node, "TypeAnnotation");
-  }
-
-  flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) {
-    const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
-
-    if (this.match(types.colon)) {
-      ident.typeAnnotation = this.flowParseTypeAnnotation();
-      this.resetEndLocation(ident);
-    }
-
-    return ident;
-  }
-
-  typeCastToParameter(node) {
-    node.expression.typeAnnotation = node.typeAnnotation;
-    this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end);
-    return node.expression;
-  }
-
-  flowParseVariance() {
-    let variance = null;
-
-    if (this.match(types.plusMin)) {
-      variance = this.startNode();
-
-      if (this.state.value === "+") {
-        variance.kind = "plus";
-      } else {
-        variance.kind = "minus";
-      }
-
-      this.next();
-      this.finishNode(variance, "Variance");
-    }
-
-    return variance;
-  }
-
-  parseFunctionBody(node, allowExpressionBody, isMethod = false) {
-    if (allowExpressionBody) {
-      return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod));
-    }
-
-    return super.parseFunctionBody(node, false, isMethod);
-  }
-
-  parseFunctionBodyAndFinish(node, type, isMethod = false) {
-    if (this.match(types.colon)) {
-      const typeNode = this.startNode();
-      [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
-      node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null;
-    }
-
-    super.parseFunctionBodyAndFinish(node, type, isMethod);
-  }
-
-  parseStatement(context, topLevel) {
-    if (this.state.strict && this.match(types.name) && this.state.value === "interface") {
-      const node = this.startNode();
-      this.next();
-      return this.flowParseInterface(node);
-    } else if (this.shouldParseEnums() && this.isContextual("enum")) {
-      const node = this.startNode();
-      this.next();
-      return this.flowParseEnumDeclaration(node);
-    } else {
-      const stmt = super.parseStatement(context, topLevel);
-
-      if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {
-        this.flowPragma = null;
-      }
-
-      return stmt;
-    }
-  }
-
-  parseExpressionStatement(node, expr) {
-    if (expr.type === "Identifier") {
-      if (expr.name === "declare") {
-        if (this.match(types._class) || this.match(types.name) || this.match(types._function) || this.match(types._var) || this.match(types._export)) {
-          return this.flowParseDeclare(node);
-        }
-      } else if (this.match(types.name)) {
-        if (expr.name === "interface") {
-          return this.flowParseInterface(node);
-        } else if (expr.name === "type") {
-          return this.flowParseTypeAlias(node);
-        } else if (expr.name === "opaque") {
-          return this.flowParseOpaqueType(node, false);
-        }
-      }
-    }
-
-    return super.parseExpressionStatement(node, expr);
-  }
-
-  shouldParseExportDeclaration() {
-    return this.isContextual("type") || this.isContextual("interface") || this.isContextual("opaque") || this.shouldParseEnums() && this.isContextual("enum") || super.shouldParseExportDeclaration();
-  }
-
-  isExportDefaultSpecifier() {
-    if (this.match(types.name) && (this.state.value === "type" || this.state.value === "interface" || this.state.value === "opaque" || this.shouldParseEnums() && this.state.value === "enum")) {
-      return false;
-    }
-
-    return super.isExportDefaultSpecifier();
-  }
-
-  parseExportDefaultExpression() {
-    if (this.shouldParseEnums() && this.isContextual("enum")) {
-      const node = this.startNode();
-      this.next();
-      return this.flowParseEnumDeclaration(node);
-    }
-
-    return super.parseExportDefaultExpression();
-  }
-
-  parseConditional(expr, noIn, startPos, startLoc, refNeedsArrowPos) {
-    if (!this.match(types.question)) return expr;
-
-    if (refNeedsArrowPos) {
-      const result = this.tryParse(() => super.parseConditional(expr, noIn, startPos, startLoc));
-
-      if (!result.node) {
-        refNeedsArrowPos.start = result.error.pos || this.state.start;
-        return expr;
-      }
-
-      if (result.error) this.state = result.failState;
-      return result.node;
-    }
-
-    this.expect(types.question);
-    const state = this.state.clone();
-    const originalNoArrowAt = this.state.noArrowAt;
-    const node = this.startNodeAt(startPos, startLoc);
-    let {
-      consequent,
-      failed
-    } = this.tryParseConditionalConsequent();
-    let [valid, invalid] = this.getArrowLikeExpressions(consequent);
-
-    if (failed || invalid.length > 0) {
-      const noArrowAt = [...originalNoArrowAt];
-
-      if (invalid.length > 0) {
-        this.state = state;
-        this.state.noArrowAt = noArrowAt;
-
-        for (let i = 0; i < invalid.length; i++) {
-          noArrowAt.push(invalid[i].start);
-        }
-
-        ({
-          consequent,
-          failed
-        } = this.tryParseConditionalConsequent());
-        [valid, invalid] = this.getArrowLikeExpressions(consequent);
-      }
-
-      if (failed && valid.length > 1) {
-        this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);
-      }
-
-      if (failed && valid.length === 1) {
-        this.state = state;
-        this.state.noArrowAt = noArrowAt.concat(valid[0].start);
-        ({
-          consequent,
-          failed
-        } = this.tryParseConditionalConsequent());
-      }
-    }
-
-    this.getArrowLikeExpressions(consequent, true);
-    this.state.noArrowAt = originalNoArrowAt;
-    this.expect(types.colon);
-    node.test = expr;
-    node.consequent = consequent;
-    node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(noIn, undefined, undefined, undefined));
-    return this.finishNode(node, "ConditionalExpression");
-  }
-
-  tryParseConditionalConsequent() {
-    this.state.noArrowParamsConversionAt.push(this.state.start);
-    const consequent = this.parseMaybeAssign();
-    const failed = !this.match(types.colon);
-    this.state.noArrowParamsConversionAt.pop();
-    return {
-      consequent,
-      failed
-    };
-  }
-
-  getArrowLikeExpressions(node, disallowInvalid) {
-    const stack = [node];
-    const arrows = [];
-
-    while (stack.length !== 0) {
-      const node = stack.pop();
-
-      if (node.type === "ArrowFunctionExpression") {
-        if (node.typeParameters || !node.returnType) {
-          this.finishArrowValidation(node);
-        } else {
-          arrows.push(node);
-        }
-
-        stack.push(node.body);
-      } else if (node.type === "ConditionalExpression") {
-        stack.push(node.consequent);
-        stack.push(node.alternate);
-      }
-    }
-
-    if (disallowInvalid) {
-      arrows.forEach(node => this.finishArrowValidation(node));
-      return [arrows, []];
-    }
-
-    return partition(arrows, node => node.params.every(param => this.isAssignable(param, true)));
-  }
-
-  finishArrowValidation(node) {
-    var _node$extra;
-
-    this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingComma);
-    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);
-    super.checkParams(node, false, true);
-    this.scope.exit();
-  }
-
-  forwardNoArrowParamsConversionAt(node, parse) {
-    let result;
-
-    if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
-      this.state.noArrowParamsConversionAt.push(this.state.start);
-      result = parse();
-      this.state.noArrowParamsConversionAt.pop();
-    } else {
-      result = parse();
-    }
-
-    return result;
-  }
-
-  parseParenItem(node, startPos, startLoc) {
-    node = super.parseParenItem(node, startPos, startLoc);
-
-    if (this.eat(types.question)) {
-      node.optional = true;
-      this.resetEndLocation(node);
-    }
-
-    if (this.match(types.colon)) {
-      const typeCastNode = this.startNodeAt(startPos, startLoc);
-      typeCastNode.expression = node;
-      typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();
-      return this.finishNode(typeCastNode, "TypeCastExpression");
-    }
-
-    return node;
-  }
-
-  assertModuleNodeAllowed(node) {
-    if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") {
-      return;
-    }
-
-    super.assertModuleNodeAllowed(node);
-  }
-
-  parseExport(node) {
-    const decl = super.parseExport(node);
-
-    if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") {
-      decl.exportKind = decl.exportKind || "value";
-    }
-
-    return decl;
-  }
-
-  parseExportDeclaration(node) {
-    if (this.isContextual("type")) {
-      node.exportKind = "type";
-      const declarationNode = this.startNode();
-      this.next();
-
-      if (this.match(types.braceL)) {
-        node.specifiers = this.parseExportSpecifiers();
-        this.parseExportFrom(node);
-        return null;
-      } else {
-        return this.flowParseTypeAlias(declarationNode);
-      }
-    } else if (this.isContextual("opaque")) {
-      node.exportKind = "type";
-      const declarationNode = this.startNode();
-      this.next();
-      return this.flowParseOpaqueType(declarationNode, false);
-    } else if (this.isContextual("interface")) {
-      node.exportKind = "type";
-      const declarationNode = this.startNode();
-      this.next();
-      return this.flowParseInterface(declarationNode);
-    } else if (this.shouldParseEnums() && this.isContextual("enum")) {
-      node.exportKind = "value";
-      const declarationNode = this.startNode();
-      this.next();
-      return this.flowParseEnumDeclaration(declarationNode);
-    } else {
-      return super.parseExportDeclaration(node);
-    }
-  }
-
-  eatExportStar(node) {
-    if (super.eatExportStar(...arguments)) return true;
-
-    if (this.isContextual("type") && this.lookahead().type === types.star) {
-      node.exportKind = "type";
-      this.next();
-      this.next();
-      return true;
-    }
-
-    return false;
-  }
-
-  maybeParseExportNamespaceSpecifier(node) {
-    const pos = this.state.start;
-    const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);
-
-    if (hasNamespace && node.exportKind === "type") {
-      this.unexpected(pos);
-    }
-
-    return hasNamespace;
-  }
-
-  parseClassId(node, isStatement, optionalId) {
-    super.parseClassId(node, isStatement, optionalId);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    }
-  }
-
-  parseClassMember(classBody, member, state, constructorAllowsSuper) {
-    const pos = this.state.start;
-
-    if (this.isContextual("declare")) {
-      if (this.parseClassMemberFromModifier(classBody, member)) {
-        return;
-      }
-
-      member.declare = true;
-    }
-
-    super.parseClassMember(classBody, member, state, constructorAllowsSuper);
-
-    if (member.declare) {
-      if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty") {
-        this.raise(pos, FlowErrors.DeclareClassElement);
-      } else if (member.value) {
-        this.raise(member.value.start, FlowErrors.DeclareClassFieldInitializer);
-      }
-    }
-  }
-
-  getTokenFromCode(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (code === 123 && next === 124) {
-      return this.finishOp(types.braceBarL, 2);
-    } else if (this.state.inType && (code === 62 || code === 60)) {
-      return this.finishOp(types.relational, 1);
-    } else if (isIteratorStart(code, next)) {
-      this.state.isIterator = true;
-      return super.readWord();
-    } else {
-      return super.getTokenFromCode(code);
-    }
-  }
-
-  isAssignable(node, isBinding) {
-    switch (node.type) {
-      case "Identifier":
-      case "ObjectPattern":
-      case "ArrayPattern":
-      case "AssignmentPattern":
-        return true;
-
-      case "ObjectExpression":
-        {
-          const last = node.properties.length - 1;
-          return node.properties.every((prop, i) => {
-            return prop.type !== "ObjectMethod" && (i === last || prop.type === "SpreadElement") && this.isAssignable(prop);
-          });
-        }
-
-      case "ObjectProperty":
-        return this.isAssignable(node.value);
-
-      case "SpreadElement":
-        return this.isAssignable(node.argument);
-
-      case "ArrayExpression":
-        return node.elements.every(element => this.isAssignable(element));
-
-      case "AssignmentExpression":
-        return node.operator === "=";
-
-      case "ParenthesizedExpression":
-      case "TypeCastExpression":
-        return this.isAssignable(node.expression);
-
-      case "MemberExpression":
-      case "OptionalMemberExpression":
-        return !isBinding;
-
-      default:
-        return false;
-    }
-  }
-
-  toAssignable(node) {
-    if (node.type === "TypeCastExpression") {
-      return super.toAssignable(this.typeCastToParameter(node));
-    } else {
-      return super.toAssignable(node);
-    }
-  }
-
-  toAssignableList(exprList, trailingCommaPos) {
-    for (let i = 0; i < exprList.length; i++) {
-      const expr = exprList[i];
-
-      if (expr && expr.type === "TypeCastExpression") {
-        exprList[i] = this.typeCastToParameter(expr);
-      }
-    }
-
-    return super.toAssignableList(exprList, trailingCommaPos);
-  }
-
-  toReferencedList(exprList, isParenthesizedExpr) {
-    for (let i = 0; i < exprList.length; i++) {
-      const expr = exprList[i];
-
-      if (expr && expr.type === "TypeCastExpression" && (!expr.extra || !expr.extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) {
-        this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);
-      }
-    }
-
-    return exprList;
-  }
-
-  checkLVal(expr, bindingType = BIND_NONE, checkClashes, contextDescription) {
-    if (expr.type !== "TypeCastExpression") {
-      return super.checkLVal(expr, bindingType, checkClashes, contextDescription);
-    }
-  }
-
-  parseClassProperty(node) {
-    if (this.match(types.colon)) {
-      node.typeAnnotation = this.flowParseTypeAnnotation();
-    }
-
-    return super.parseClassProperty(node);
-  }
-
-  parseClassPrivateProperty(node) {
-    if (this.match(types.colon)) {
-      node.typeAnnotation = this.flowParseTypeAnnotation();
-    }
-
-    return super.parseClassPrivateProperty(node);
-  }
-
-  isClassMethod() {
-    return this.isRelational("<") || super.isClassMethod();
-  }
-
-  isClassProperty() {
-    return this.match(types.colon) || super.isClassProperty();
-  }
-
-  isNonstaticConstructor(method) {
-    return !this.match(types.colon) && super.isNonstaticConstructor(method);
-  }
-
-  pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
-    if (method.variance) {
-      this.unexpected(method.variance.start);
-    }
-
-    delete method.variance;
-
-    if (this.isRelational("<")) {
-      method.typeParameters = this.flowParseTypeParameterDeclaration();
-    }
-
-    super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);
-  }
-
-  pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
-    if (method.variance) {
-      this.unexpected(method.variance.start);
-    }
-
-    delete method.variance;
-
-    if (this.isRelational("<")) {
-      method.typeParameters = this.flowParseTypeParameterDeclaration();
-    }
-
-    super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);
-  }
-
-  parseClassSuper(node) {
-    super.parseClassSuper(node);
-
-    if (node.superClass && this.isRelational("<")) {
-      node.superTypeParameters = this.flowParseTypeParameterInstantiation();
-    }
-
-    if (this.isContextual("implements")) {
-      this.next();
-      const implemented = node.implements = [];
-
-      do {
-        const node = this.startNode();
-        node.id = this.flowParseRestrictedIdentifier(true);
-
-        if (this.isRelational("<")) {
-          node.typeParameters = this.flowParseTypeParameterInstantiation();
-        } else {
-          node.typeParameters = null;
-        }
-
-        implemented.push(this.finishNode(node, "ClassImplements"));
-      } while (this.eat(types.comma));
-    }
-  }
-
-  parsePropertyName(node, isPrivateNameAllowed) {
-    const variance = this.flowParseVariance();
-    const key = super.parsePropertyName(node, isPrivateNameAllowed);
-    node.variance = variance;
-    return key;
-  }
-
-  parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refExpressionErrors, containsEsc) {
-    if (prop.variance) {
-      this.unexpected(prop.variance.start);
-    }
-
-    delete prop.variance;
-    let typeParameters;
-
-    if (this.isRelational("<")) {
-      typeParameters = this.flowParseTypeParameterDeclaration();
-      if (!this.match(types.parenL)) this.unexpected();
-    }
-
-    super.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refExpressionErrors, containsEsc);
-
-    if (typeParameters) {
-      (prop.value || prop).typeParameters = typeParameters;
-    }
-  }
-
-  parseAssignableListItemTypes(param) {
-    if (this.eat(types.question)) {
-      if (param.type !== "Identifier") {
-        this.raise(param.start, FlowErrors.OptionalBindingPattern);
-      }
-
-      param.optional = true;
-    }
-
-    if (this.match(types.colon)) {
-      param.typeAnnotation = this.flowParseTypeAnnotation();
-    }
-
-    this.resetEndLocation(param);
-    return param;
-  }
-
-  parseMaybeDefault(startPos, startLoc, left) {
-    const node = super.parseMaybeDefault(startPos, startLoc, left);
-
-    if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {
-      this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);
-    }
-
-    return node;
-  }
-
-  shouldParseDefaultImport(node) {
-    if (!hasTypeImportKind(node)) {
-      return super.shouldParseDefaultImport(node);
-    }
-
-    return isMaybeDefaultImport(this.state);
-  }
-
-  parseImportSpecifierLocal(node, specifier, type, contextDescription) {
-    specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier();
-    this.checkLVal(specifier.local, BIND_LEXICAL, undefined, contextDescription);
-    node.specifiers.push(this.finishNode(specifier, type));
-  }
-
-  maybeParseDefaultImportSpecifier(node) {
-    node.importKind = "value";
-    let kind = null;
-
-    if (this.match(types._typeof)) {
-      kind = "typeof";
-    } else if (this.isContextual("type")) {
-      kind = "type";
-    }
-
-    if (kind) {
-      const lh = this.lookahead();
-
-      if (kind === "type" && lh.type === types.star) {
-        this.unexpected(lh.start);
-      }
-
-      if (isMaybeDefaultImport(lh) || lh.type === types.braceL || lh.type === types.star) {
-        this.next();
-        node.importKind = kind;
-      }
-    }
-
-    return super.maybeParseDefaultImportSpecifier(node);
-  }
-
-  parseImportSpecifier(node) {
-    const specifier = this.startNode();
-    const firstIdentLoc = this.state.start;
-    const firstIdent = this.parseIdentifier(true);
-    let specifierTypeKind = null;
-
-    if (firstIdent.name === "type") {
-      specifierTypeKind = "type";
-    } else if (firstIdent.name === "typeof") {
-      specifierTypeKind = "typeof";
-    }
-
-    let isBinding = false;
-
-    if (this.isContextual("as") && !this.isLookaheadContextual("as")) {
-      const as_ident = this.parseIdentifier(true);
-
-      if (specifierTypeKind !== null && !this.match(types.name) && !this.state.type.keyword) {
-        specifier.imported = as_ident;
-        specifier.importKind = specifierTypeKind;
-        specifier.local = as_ident.__clone();
-      } else {
-        specifier.imported = firstIdent;
-        specifier.importKind = null;
-        specifier.local = this.parseIdentifier();
-      }
-    } else if (specifierTypeKind !== null && (this.match(types.name) || this.state.type.keyword)) {
-      specifier.imported = this.parseIdentifier(true);
-      specifier.importKind = specifierTypeKind;
-
-      if (this.eatContextual("as")) {
-        specifier.local = this.parseIdentifier();
-      } else {
-        isBinding = true;
-        specifier.local = specifier.imported.__clone();
-      }
-    } else {
-      isBinding = true;
-      specifier.imported = firstIdent;
-      specifier.importKind = null;
-      specifier.local = specifier.imported.__clone();
-    }
-
-    const nodeIsTypeImport = hasTypeImportKind(node);
-    const specifierIsTypeImport = hasTypeImportKind(specifier);
-
-    if (nodeIsTypeImport && specifierIsTypeImport) {
-      this.raise(firstIdentLoc, FlowErrors.ImportTypeShorthandOnlyInPureImport);
-    }
-
-    if (nodeIsTypeImport || specifierIsTypeImport) {
-      this.checkReservedType(specifier.local.name, specifier.local.start, true);
-    }
-
-    if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {
-      this.checkReservedWord(specifier.local.name, specifier.start, true, true);
-    }
-
-    this.checkLVal(specifier.local, BIND_LEXICAL, undefined, "import specifier");
-    node.specifiers.push(this.finishNode(specifier, "ImportSpecifier"));
-  }
-
-  parseFunctionParams(node, allowModifiers) {
-    const kind = node.kind;
-
-    if (kind !== "get" && kind !== "set" && this.isRelational("<")) {
-      node.typeParameters = this.flowParseTypeParameterDeclaration();
-    }
-
-    super.parseFunctionParams(node, allowModifiers);
-  }
-
-  parseVarId(decl, kind) {
-    super.parseVarId(decl, kind);
-
-    if (this.match(types.colon)) {
-      decl.id.typeAnnotation = this.flowParseTypeAnnotation();
-      this.resetEndLocation(decl.id);
-    }
-  }
-
-  parseAsyncArrowFromCallExpression(node, call) {
-    if (this.match(types.colon)) {
-      const oldNoAnonFunctionType = this.state.noAnonFunctionType;
-      this.state.noAnonFunctionType = true;
-      node.returnType = this.flowParseTypeAnnotation();
-      this.state.noAnonFunctionType = oldNoAnonFunctionType;
-    }
-
-    return super.parseAsyncArrowFromCallExpression(node, call);
-  }
-
-  shouldParseAsyncArrow() {
-    return this.match(types.colon) || super.shouldParseAsyncArrow();
-  }
-
-  parseMaybeAssign(noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos) {
-    let state = null;
-    let jsx;
-
-    if (this.hasPlugin("jsx") && (this.match(types.jsxTagStart) || this.isRelational("<"))) {
-      state = this.state.clone();
-      jsx = this.tryParse(() => super.parseMaybeAssign(noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos), state);
-      if (!jsx.error) return jsx.node;
-      const {
-        context
-      } = this.state;
-
-      if (context[context.length - 1] === types$1.j_oTag) {
-        context.length -= 2;
-      } else if (context[context.length - 1] === types$1.j_expr) {
-        context.length -= 1;
-      }
-    }
-
-    if (jsx && jsx.error || this.isRelational("<")) {
-      state = state || this.state.clone();
-      let typeParameters;
-      const arrow = this.tryParse(() => {
-        typeParameters = this.flowParseTypeParameterDeclaration();
-        const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => super.parseMaybeAssign(noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos));
-        arrowExpression.typeParameters = typeParameters;
-        this.resetStartLocationFromNode(arrowExpression, typeParameters);
-        return arrowExpression;
-      }, state);
-      const arrowExpression = arrow.node && arrow.node.type === "ArrowFunctionExpression" ? arrow.node : null;
-      if (!arrow.error && arrowExpression) return arrowExpression;
-
-      if (jsx && jsx.node) {
-        this.state = jsx.failState;
-        return jsx.node;
-      }
-
-      if (arrowExpression) {
-        this.state = arrow.failState;
-        return arrowExpression;
-      }
-
-      if (jsx && jsx.thrown) throw jsx.error;
-      if (arrow.thrown) throw arrow.error;
-      throw this.raise(typeParameters.start, FlowErrors.UnexpectedTokenAfterTypeParameter);
-    }
-
-    return super.parseMaybeAssign(noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos);
-  }
-
-  parseArrow(node) {
-    if (this.match(types.colon)) {
-      const result = this.tryParse(() => {
-        const oldNoAnonFunctionType = this.state.noAnonFunctionType;
-        this.state.noAnonFunctionType = true;
-        const typeNode = this.startNode();
-        [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
-        this.state.noAnonFunctionType = oldNoAnonFunctionType;
-        if (this.canInsertSemicolon()) this.unexpected();
-        if (!this.match(types.arrow)) this.unexpected();
-        return typeNode;
-      });
-      if (result.thrown) return null;
-      if (result.error) this.state = result.failState;
-      node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null;
-    }
-
-    return super.parseArrow(node);
-  }
-
-  shouldParseArrow() {
-    return this.match(types.colon) || super.shouldParseArrow();
-  }
-
-  setArrowFunctionParameters(node, params) {
-    if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
-      node.params = params;
-    } else {
-      super.setArrowFunctionParameters(node, params);
-    }
-  }
-
-  checkParams(node, allowDuplicates, isArrowFunction) {
-    if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
-      return;
-    }
-
-    return super.checkParams(...arguments);
-  }
-
-  parseParenAndDistinguishExpression(canBeArrow) {
-    return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1);
-  }
-
-  parseSubscripts(base, startPos, startLoc, noCalls) {
-    if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startPos) !== -1) {
-      this.next();
-      const node = this.startNodeAt(startPos, startLoc);
-      node.callee = base;
-      node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-      base = this.finishNode(node, "CallExpression");
-    } else if (base.type === "Identifier" && base.name === "async" && this.isRelational("<")) {
-      const state = this.state.clone();
-      const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startPos, startLoc) || abort(), state);
-      if (!arrow.error && !arrow.aborted) return arrow.node;
-      const result = this.tryParse(() => super.parseSubscripts(base, startPos, startLoc, noCalls), state);
-      if (result.node && !result.error) return result.node;
-
-      if (arrow.node) {
-        this.state = arrow.failState;
-        return arrow.node;
-      }
-
-      if (result.node) {
-        this.state = result.failState;
-        return result.node;
-      }
-
-      throw arrow.error || result.error;
-    }
-
-    return super.parseSubscripts(base, startPos, startLoc, noCalls);
-  }
-
-  parseSubscript(base, startPos, startLoc, noCalls, subscriptState) {
-    if (this.match(types.questionDot) && this.isLookaheadRelational("<")) {
-      subscriptState.optionalChainMember = true;
-
-      if (noCalls) {
-        subscriptState.stop = true;
-        return base;
-      }
-
-      this.next();
-      const node = this.startNodeAt(startPos, startLoc);
-      node.callee = base;
-      node.typeArguments = this.flowParseTypeParameterInstantiation();
-      this.expect(types.parenL);
-      node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-      node.optional = true;
-      return this.finishCallExpression(node, true);
-    } else if (!noCalls && this.shouldParseTypes() && this.isRelational("<")) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.callee = base;
-      const result = this.tryParse(() => {
-        node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();
-        this.expect(types.parenL);
-        node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-        if (subscriptState.optionalChainMember) node.optional = false;
-        return this.finishCallExpression(node, subscriptState.optionalChainMember);
-      });
-
-      if (result.node) {
-        if (result.error) this.state = result.failState;
-        return result.node;
-      }
-    }
-
-    return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState);
-  }
-
-  parseNewArguments(node) {
-    let targs = null;
-
-    if (this.shouldParseTypes() && this.isRelational("<")) {
-      targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node;
-    }
-
-    node.typeArguments = targs;
-    super.parseNewArguments(node);
-  }
-
-  parseAsyncArrowWithTypeParameters(startPos, startLoc) {
-    const node = this.startNodeAt(startPos, startLoc);
-    this.parseFunctionParams(node);
-    if (!this.parseArrow(node)) return;
-    return this.parseArrowExpression(node, undefined, true);
-  }
-
-  readToken_mult_modulo(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (code === 42 && next === 47 && this.state.hasFlowComment) {
-      this.state.hasFlowComment = false;
-      this.state.pos += 2;
-      this.nextToken();
-      return;
-    }
-
-    super.readToken_mult_modulo(code);
-  }
-
-  readToken_pipe_amp(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (code === 124 && next === 125) {
-      this.finishOp(types.braceBarR, 2);
-      return;
-    }
-
-    super.readToken_pipe_amp(code);
-  }
-
-  parseTopLevel(file, program) {
-    const fileNode = super.parseTopLevel(file, program);
-
-    if (this.state.hasFlowComment) {
-      this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);
-    }
-
-    return fileNode;
-  }
-
-  skipBlockComment() {
-    if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
-      if (this.state.hasFlowComment) {
-        this.unexpected(null, FlowErrors.NestedFlowComment);
-      }
-
-      this.hasFlowCommentCompletion();
-      this.state.pos += this.skipFlowComment();
-      this.state.hasFlowComment = true;
-      return;
-    }
-
-    if (this.state.hasFlowComment) {
-      const end = this.input.indexOf("*-/", this.state.pos += 2);
-
-      if (end === -1) {
-        throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);
-      }
-
-      this.state.pos = end + 3;
-      return;
-    }
-
-    super.skipBlockComment();
-  }
-
-  skipFlowComment() {
-    const {
-      pos
-    } = this.state;
-    let shiftToFirstNonWhiteSpace = 2;
-
-    while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) {
-      shiftToFirstNonWhiteSpace++;
-    }
-
-    const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);
-    const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);
-
-    if (ch2 === 58 && ch3 === 58) {
-      return shiftToFirstNonWhiteSpace + 2;
-    }
-
-    if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") {
-      return shiftToFirstNonWhiteSpace + 12;
-    }
-
-    if (ch2 === 58 && ch3 !== 58) {
-      return shiftToFirstNonWhiteSpace;
-    }
-
-    return false;
-  }
-
-  hasFlowCommentCompletion() {
-    const end = this.input.indexOf("*/", this.state.pos);
-
-    if (end === -1) {
-      throw this.raise(this.state.pos, Errors.UnterminatedComment);
-    }
-  }
-
-  flowEnumErrorBooleanMemberNotInitialized(pos, {
-    enumName,
-    memberName
-  }) {
-    this.raise(pos, FlowErrors.EnumBooleanMemberNotInitialized, memberName, enumName);
-  }
-
-  flowEnumErrorInvalidMemberName(pos, {
-    enumName,
-    memberName
-  }) {
-    const suggestion = memberName[0].toUpperCase() + memberName.slice(1);
-    this.raise(pos, FlowErrors.EnumInvalidMemberName, memberName, suggestion, enumName);
-  }
-
-  flowEnumErrorDuplicateMemberName(pos, {
-    enumName,
-    memberName
-  }) {
-    this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);
-  }
-
-  flowEnumErrorInconsistentMemberValues(pos, {
-    enumName
-  }) {
-    this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);
-  }
-
-  flowEnumErrorInvalidExplicitType(pos, {
-    enumName,
-    suppliedType
-  }) {
-    return this.raise(pos, suppliedType === null ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied : FlowErrors.EnumInvalidExplicitType, enumName, suppliedType);
-  }
-
-  flowEnumErrorInvalidMemberInitializer(pos, {
-    enumName,
-    explicitType,
-    memberName
-  }) {
-    let message = null;
-
-    switch (explicitType) {
-      case "boolean":
-      case "number":
-      case "string":
-        message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;
-        break;
-
-      case "symbol":
-        message = FlowErrors.EnumInvalidMemberInitializerSymbolType;
-        break;
-
-      default:
-        message = FlowErrors.EnumInvalidMemberInitializerUnknownType;
-    }
-
-    return this.raise(pos, message, enumName, memberName, explicitType);
-  }
-
-  flowEnumErrorNumberMemberNotInitialized(pos, {
-    enumName,
-    memberName
-  }) {
-    this.raise(pos, FlowErrors.EnumNumberMemberNotInitialized, enumName, memberName);
-  }
-
-  flowEnumErrorStringMemberInconsistentlyInitailized(pos, {
-    enumName
-  }) {
-    this.raise(pos, FlowErrors.EnumStringMemberInconsistentlyInitailized, enumName);
-  }
-
-  flowEnumMemberInit() {
-    const startPos = this.state.start;
-
-    const endOfInit = () => this.match(types.comma) || this.match(types.braceR);
-
-    switch (this.state.type) {
-      case types.num:
-        {
-          const literal = this.parseLiteral(this.state.value, "NumericLiteral");
-
-          if (endOfInit()) {
-            return {
-              type: "number",
-              pos: literal.start,
-              value: literal
-            };
-          }
-
-          return {
-            type: "invalid",
-            pos: startPos
-          };
-        }
-
-      case types.string:
-        {
-          const literal = this.parseLiteral(this.state.value, "StringLiteral");
-
-          if (endOfInit()) {
-            return {
-              type: "string",
-              pos: literal.start,
-              value: literal
-            };
-          }
-
-          return {
-            type: "invalid",
-            pos: startPos
-          };
-        }
-
-      case types._true:
-      case types._false:
-        {
-          const literal = this.parseBooleanLiteral();
-
-          if (endOfInit()) {
-            return {
-              type: "boolean",
-              pos: literal.start,
-              value: literal
-            };
-          }
-
-          return {
-            type: "invalid",
-            pos: startPos
-          };
-        }
-
-      default:
-        return {
-          type: "invalid",
-          pos: startPos
-        };
-    }
-  }
-
-  flowEnumMemberRaw() {
-    const pos = this.state.start;
-    const id = this.parseIdentifier(true);
-    const init = this.eat(types.eq) ? this.flowEnumMemberInit() : {
-      type: "none",
-      pos
-    };
-    return {
-      id,
-      init
-    };
-  }
-
-  flowEnumCheckExplicitTypeMismatch(pos, context, expectedType) {
-    const {
-      explicitType
-    } = context;
-
-    if (explicitType === null) {
-      return;
-    }
-
-    if (explicitType !== expectedType) {
-      this.flowEnumErrorInvalidMemberInitializer(pos, context);
-    }
-  }
-
-  flowEnumMembers({
-    enumName,
-    explicitType
-  }) {
-    const seenNames = new Set();
-    const members = {
-      booleanMembers: [],
-      numberMembers: [],
-      stringMembers: [],
-      defaultedMembers: []
-    };
-
-    while (!this.match(types.braceR)) {
-      const memberNode = this.startNode();
-      const {
-        id,
-        init
-      } = this.flowEnumMemberRaw();
-      const memberName = id.name;
-
-      if (memberName === "") {
-        continue;
-      }
-
-      if (/^[a-z]/.test(memberName)) {
-        this.flowEnumErrorInvalidMemberName(id.start, {
-          enumName,
-          memberName
-        });
-      }
-
-      if (seenNames.has(memberName)) {
-        this.flowEnumErrorDuplicateMemberName(id.start, {
-          enumName,
-          memberName
-        });
-      }
-
-      seenNames.add(memberName);
-      const context = {
-        enumName,
-        explicitType,
-        memberName
-      };
-      memberNode.id = id;
-
-      switch (init.type) {
-        case "boolean":
-          {
-            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "boolean");
-            memberNode.init = init.value;
-            members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember"));
-            break;
-          }
-
-        case "number":
-          {
-            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "number");
-            memberNode.init = init.value;
-            members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember"));
-            break;
-          }
-
-        case "string":
-          {
-            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "string");
-            memberNode.init = init.value;
-            members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember"));
-            break;
-          }
-
-        case "invalid":
-          {
-            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);
-          }
-
-        case "none":
-          {
-            switch (explicitType) {
-              case "boolean":
-                this.flowEnumErrorBooleanMemberNotInitialized(init.pos, context);
-                break;
-
-              case "number":
-                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);
-                break;
-
-              default:
-                members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember"));
-            }
-          }
-      }
-
-      if (!this.match(types.braceR)) {
-        this.expect(types.comma);
-      }
-    }
-
-    return members;
-  }
-
-  flowEnumStringMembers(initializedMembers, defaultedMembers, {
-    enumName
-  }) {
-    if (initializedMembers.length === 0) {
-      return defaultedMembers;
-    } else if (defaultedMembers.length === 0) {
-      return initializedMembers;
-    } else if (defaultedMembers.length > initializedMembers.length) {
-      for (let _i = 0; _i < initializedMembers.length; _i++) {
-        const member = initializedMembers[_i];
-        this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, {
-          enumName
-        });
-      }
-
-      return defaultedMembers;
-    } else {
-      for (let _i2 = 0; _i2 < defaultedMembers.length; _i2++) {
-        const member = defaultedMembers[_i2];
-        this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, {
-          enumName
-        });
-      }
-
-      return initializedMembers;
-    }
-  }
-
-  flowEnumParseExplicitType({
-    enumName
-  }) {
-    if (this.eatContextual("of")) {
-      if (!this.match(types.name)) {
-        throw this.flowEnumErrorInvalidExplicitType(this.state.start, {
-          enumName,
-          suppliedType: null
-        });
-      }
-
-      const {
-        value
-      } = this.state;
-      this.next();
-
-      if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") {
-        this.flowEnumErrorInvalidExplicitType(this.state.start, {
-          enumName,
-          suppliedType: value
-        });
-      }
-
-      return value;
-    }
-
-    return null;
-  }
-
-  flowEnumBody(node, {
-    enumName,
-    nameLoc
-  }) {
-    const explicitType = this.flowEnumParseExplicitType({
-      enumName
-    });
-    this.expect(types.braceL);
-    const members = this.flowEnumMembers({
-      enumName,
-      explicitType
-    });
-
-    switch (explicitType) {
-      case "boolean":
-        node.explicitType = true;
-        node.members = members.booleanMembers;
-        this.expect(types.braceR);
-        return this.finishNode(node, "EnumBooleanBody");
-
-      case "number":
-        node.explicitType = true;
-        node.members = members.numberMembers;
-        this.expect(types.braceR);
-        return this.finishNode(node, "EnumNumberBody");
-
-      case "string":
-        node.explicitType = true;
-        node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {
-          enumName
-        });
-        this.expect(types.braceR);
-        return this.finishNode(node, "EnumStringBody");
-
-      case "symbol":
-        node.members = members.defaultedMembers;
-        this.expect(types.braceR);
-        return this.finishNode(node, "EnumSymbolBody");
-
-      default:
-        {
-          const empty = () => {
-            node.members = [];
-            this.expect(types.braceR);
-            return this.finishNode(node, "EnumStringBody");
-          };
-
-          node.explicitType = false;
-          const boolsLen = members.booleanMembers.length;
-          const numsLen = members.numberMembers.length;
-          const strsLen = members.stringMembers.length;
-          const defaultedLen = members.defaultedMembers.length;
-
-          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {
-            return empty();
-          } else if (!boolsLen && !numsLen) {
-            node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {
-              enumName
-            });
-            this.expect(types.braceR);
-            return this.finishNode(node, "EnumStringBody");
-          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {
-            for (let _i3 = 0, _members$defaultedMem = members.defaultedMembers; _i3 < _members$defaultedMem.length; _i3++) {
-              const member = _members$defaultedMem[_i3];
-              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {
-                enumName,
-                memberName: member.id.name
-              });
-            }
-
-            node.members = members.booleanMembers;
-            this.expect(types.braceR);
-            return this.finishNode(node, "EnumBooleanBody");
-          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {
-            for (let _i4 = 0, _members$defaultedMem2 = members.defaultedMembers; _i4 < _members$defaultedMem2.length; _i4++) {
-              const member = _members$defaultedMem2[_i4];
-              this.flowEnumErrorNumberMemberNotInitialized(member.start, {
-                enumName,
-                memberName: member.id.name
-              });
-            }
-
-            node.members = members.numberMembers;
-            this.expect(types.braceR);
-            return this.finishNode(node, "EnumNumberBody");
-          } else {
-            this.flowEnumErrorInconsistentMemberValues(nameLoc, {
-              enumName
-            });
-            return empty();
-          }
-        }
-    }
-  }
-
-  flowParseEnumDeclaration(node) {
-    const id = this.parseIdentifier();
-    node.id = id;
-    node.body = this.flowEnumBody(this.startNode(), {
-      enumName: id.name,
-      nameLoc: id.start
-    });
-    return this.finishNode(node, "EnumDeclaration");
-  }
-
-});
-
-const entities = {
-  quot: "\u0022",
-  amp: "&",
-  apos: "\u0027",
-  lt: "<",
-  gt: ">",
-  nbsp: "\u00A0",
-  iexcl: "\u00A1",
-  cent: "\u00A2",
-  pound: "\u00A3",
-  curren: "\u00A4",
-  yen: "\u00A5",
-  brvbar: "\u00A6",
-  sect: "\u00A7",
-  uml: "\u00A8",
-  copy: "\u00A9",
-  ordf: "\u00AA",
-  laquo: "\u00AB",
-  not: "\u00AC",
-  shy: "\u00AD",
-  reg: "\u00AE",
-  macr: "\u00AF",
-  deg: "\u00B0",
-  plusmn: "\u00B1",
-  sup2: "\u00B2",
-  sup3: "\u00B3",
-  acute: "\u00B4",
-  micro: "\u00B5",
-  para: "\u00B6",
-  middot: "\u00B7",
-  cedil: "\u00B8",
-  sup1: "\u00B9",
-  ordm: "\u00BA",
-  raquo: "\u00BB",
-  frac14: "\u00BC",
-  frac12: "\u00BD",
-  frac34: "\u00BE",
-  iquest: "\u00BF",
-  Agrave: "\u00C0",
-  Aacute: "\u00C1",
-  Acirc: "\u00C2",
-  Atilde: "\u00C3",
-  Auml: "\u00C4",
-  Aring: "\u00C5",
-  AElig: "\u00C6",
-  Ccedil: "\u00C7",
-  Egrave: "\u00C8",
-  Eacute: "\u00C9",
-  Ecirc: "\u00CA",
-  Euml: "\u00CB",
-  Igrave: "\u00CC",
-  Iacute: "\u00CD",
-  Icirc: "\u00CE",
-  Iuml: "\u00CF",
-  ETH: "\u00D0",
-  Ntilde: "\u00D1",
-  Ograve: "\u00D2",
-  Oacute: "\u00D3",
-  Ocirc: "\u00D4",
-  Otilde: "\u00D5",
-  Ouml: "\u00D6",
-  times: "\u00D7",
-  Oslash: "\u00D8",
-  Ugrave: "\u00D9",
-  Uacute: "\u00DA",
-  Ucirc: "\u00DB",
-  Uuml: "\u00DC",
-  Yacute: "\u00DD",
-  THORN: "\u00DE",
-  szlig: "\u00DF",
-  agrave: "\u00E0",
-  aacute: "\u00E1",
-  acirc: "\u00E2",
-  atilde: "\u00E3",
-  auml: "\u00E4",
-  aring: "\u00E5",
-  aelig: "\u00E6",
-  ccedil: "\u00E7",
-  egrave: "\u00E8",
-  eacute: "\u00E9",
-  ecirc: "\u00EA",
-  euml: "\u00EB",
-  igrave: "\u00EC",
-  iacute: "\u00ED",
-  icirc: "\u00EE",
-  iuml: "\u00EF",
-  eth: "\u00F0",
-  ntilde: "\u00F1",
-  ograve: "\u00F2",
-  oacute: "\u00F3",
-  ocirc: "\u00F4",
-  otilde: "\u00F5",
-  ouml: "\u00F6",
-  divide: "\u00F7",
-  oslash: "\u00F8",
-  ugrave: "\u00F9",
-  uacute: "\u00FA",
-  ucirc: "\u00FB",
-  uuml: "\u00FC",
-  yacute: "\u00FD",
-  thorn: "\u00FE",
-  yuml: "\u00FF",
-  OElig: "\u0152",
-  oelig: "\u0153",
-  Scaron: "\u0160",
-  scaron: "\u0161",
-  Yuml: "\u0178",
-  fnof: "\u0192",
-  circ: "\u02C6",
-  tilde: "\u02DC",
-  Alpha: "\u0391",
-  Beta: "\u0392",
-  Gamma: "\u0393",
-  Delta: "\u0394",
-  Epsilon: "\u0395",
-  Zeta: "\u0396",
-  Eta: "\u0397",
-  Theta: "\u0398",
-  Iota: "\u0399",
-  Kappa: "\u039A",
-  Lambda: "\u039B",
-  Mu: "\u039C",
-  Nu: "\u039D",
-  Xi: "\u039E",
-  Omicron: "\u039F",
-  Pi: "\u03A0",
-  Rho: "\u03A1",
-  Sigma: "\u03A3",
-  Tau: "\u03A4",
-  Upsilon: "\u03A5",
-  Phi: "\u03A6",
-  Chi: "\u03A7",
-  Psi: "\u03A8",
-  Omega: "\u03A9",
-  alpha: "\u03B1",
-  beta: "\u03B2",
-  gamma: "\u03B3",
-  delta: "\u03B4",
-  epsilon: "\u03B5",
-  zeta: "\u03B6",
-  eta: "\u03B7",
-  theta: "\u03B8",
-  iota: "\u03B9",
-  kappa: "\u03BA",
-  lambda: "\u03BB",
-  mu: "\u03BC",
-  nu: "\u03BD",
-  xi: "\u03BE",
-  omicron: "\u03BF",
-  pi: "\u03C0",
-  rho: "\u03C1",
-  sigmaf: "\u03C2",
-  sigma: "\u03C3",
-  tau: "\u03C4",
-  upsilon: "\u03C5",
-  phi: "\u03C6",
-  chi: "\u03C7",
-  psi: "\u03C8",
-  omega: "\u03C9",
-  thetasym: "\u03D1",
-  upsih: "\u03D2",
-  piv: "\u03D6",
-  ensp: "\u2002",
-  emsp: "\u2003",
-  thinsp: "\u2009",
-  zwnj: "\u200C",
-  zwj: "\u200D",
-  lrm: "\u200E",
-  rlm: "\u200F",
-  ndash: "\u2013",
-  mdash: "\u2014",
-  lsquo: "\u2018",
-  rsquo: "\u2019",
-  sbquo: "\u201A",
-  ldquo: "\u201C",
-  rdquo: "\u201D",
-  bdquo: "\u201E",
-  dagger: "\u2020",
-  Dagger: "\u2021",
-  bull: "\u2022",
-  hellip: "\u2026",
-  permil: "\u2030",
-  prime: "\u2032",
-  Prime: "\u2033",
-  lsaquo: "\u2039",
-  rsaquo: "\u203A",
-  oline: "\u203E",
-  frasl: "\u2044",
-  euro: "\u20AC",
-  image: "\u2111",
-  weierp: "\u2118",
-  real: "\u211C",
-  trade: "\u2122",
-  alefsym: "\u2135",
-  larr: "\u2190",
-  uarr: "\u2191",
-  rarr: "\u2192",
-  darr: "\u2193",
-  harr: "\u2194",
-  crarr: "\u21B5",
-  lArr: "\u21D0",
-  uArr: "\u21D1",
-  rArr: "\u21D2",
-  dArr: "\u21D3",
-  hArr: "\u21D4",
-  forall: "\u2200",
-  part: "\u2202",
-  exist: "\u2203",
-  empty: "\u2205",
-  nabla: "\u2207",
-  isin: "\u2208",
-  notin: "\u2209",
-  ni: "\u220B",
-  prod: "\u220F",
-  sum: "\u2211",
-  minus: "\u2212",
-  lowast: "\u2217",
-  radic: "\u221A",
-  prop: "\u221D",
-  infin: "\u221E",
-  ang: "\u2220",
-  and: "\u2227",
-  or: "\u2228",
-  cap: "\u2229",
-  cup: "\u222A",
-  int: "\u222B",
-  there4: "\u2234",
-  sim: "\u223C",
-  cong: "\u2245",
-  asymp: "\u2248",
-  ne: "\u2260",
-  equiv: "\u2261",
-  le: "\u2264",
-  ge: "\u2265",
-  sub: "\u2282",
-  sup: "\u2283",
-  nsub: "\u2284",
-  sube: "\u2286",
-  supe: "\u2287",
-  oplus: "\u2295",
-  otimes: "\u2297",
-  perp: "\u22A5",
-  sdot: "\u22C5",
-  lceil: "\u2308",
-  rceil: "\u2309",
-  lfloor: "\u230A",
-  rfloor: "\u230B",
-  lang: "\u2329",
-  rang: "\u232A",
-  loz: "\u25CA",
-  spades: "\u2660",
-  clubs: "\u2663",
-  hearts: "\u2665",
-  diams: "\u2666"
-};
-
-const HEX_NUMBER = /^[\da-fA-F]+$/;
-const DECIMAL_NUMBER = /^\d+$/;
-const JsxErrors = Object.freeze({
-  AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression",
-  MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>",
-  MissingClosingTagElement: "Expected corresponding JSX closing tag for <%0>",
-  UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text",
-  UnterminatedJsxContent: "Unterminated JSX contents",
-  UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"
-});
-types$1.j_oTag = new TokContext("<tag", false);
-types$1.j_cTag = new TokContext("</tag", false);
-types$1.j_expr = new TokContext("<tag>...</tag>", true, true);
-types.jsxName = new TokenType("jsxName");
-types.jsxText = new TokenType("jsxText", {
-  beforeExpr: true
-});
-types.jsxTagStart = new TokenType("jsxTagStart", {
-  startsExpr: true
-});
-types.jsxTagEnd = new TokenType("jsxTagEnd");
-
-types.jsxTagStart.updateContext = function () {
-  this.state.context.push(types$1.j_expr);
-  this.state.context.push(types$1.j_oTag);
-  this.state.exprAllowed = false;
-};
-
-types.jsxTagEnd.updateContext = function (prevType) {
-  const out = this.state.context.pop();
-
-  if (out === types$1.j_oTag && prevType === types.slash || out === types$1.j_cTag) {
-    this.state.context.pop();
-    this.state.exprAllowed = this.curContext() === types$1.j_expr;
-  } else {
-    this.state.exprAllowed = true;
-  }
-};
-
-function isFragment(object) {
-  return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false;
-}
-
-function getQualifiedJSXName(object) {
-  if (object.type === "JSXIdentifier") {
-    return object.name;
-  }
-
-  if (object.type === "JSXNamespacedName") {
-    return object.namespace.name + ":" + object.name.name;
-  }
-
-  if (object.type === "JSXMemberExpression") {
-    return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property);
-  }
-
-  throw new Error("Node had unexpected type: " + object.type);
-}
-
-var jsx = (superClass => class extends superClass {
-  jsxReadToken() {
-    let out = "";
-    let chunkStart = this.state.pos;
-
-    for (;;) {
-      if (this.state.pos >= this.length) {
-        throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);
-      }
-
-      const ch = this.input.charCodeAt(this.state.pos);
-
-      switch (ch) {
-        case 60:
-        case 123:
-          if (this.state.pos === this.state.start) {
-            if (ch === 60 && this.state.exprAllowed) {
-              ++this.state.pos;
-              return this.finishToken(types.jsxTagStart);
-            }
-
-            return super.getTokenFromCode(ch);
-          }
-
-          out += this.input.slice(chunkStart, this.state.pos);
-          return this.finishToken(types.jsxText, out);
-
-        case 38:
-          out += this.input.slice(chunkStart, this.state.pos);
-          out += this.jsxReadEntity();
-          chunkStart = this.state.pos;
-          break;
-
-        default:
-          if (isNewLine(ch)) {
-            out += this.input.slice(chunkStart, this.state.pos);
-            out += this.jsxReadNewLine(true);
-            chunkStart = this.state.pos;
-          } else {
-            ++this.state.pos;
-          }
-
-      }
-    }
-  }
-
-  jsxReadNewLine(normalizeCRLF) {
-    const ch = this.input.charCodeAt(this.state.pos);
-    let out;
-    ++this.state.pos;
-
-    if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {
-      ++this.state.pos;
-      out = normalizeCRLF ? "\n" : "\r\n";
-    } else {
-      out = String.fromCharCode(ch);
-    }
-
-    ++this.state.curLine;
-    this.state.lineStart = this.state.pos;
-    return out;
-  }
-
-  jsxReadString(quote) {
-    let out = "";
-    let chunkStart = ++this.state.pos;
-
-    for (;;) {
-      if (this.state.pos >= this.length) {
-        throw this.raise(this.state.start, Errors.UnterminatedString);
-      }
-
-      const ch = this.input.charCodeAt(this.state.pos);
-      if (ch === quote) break;
-
-      if (ch === 38) {
-        out += this.input.slice(chunkStart, this.state.pos);
-        out += this.jsxReadEntity();
-        chunkStart = this.state.pos;
-      } else if (isNewLine(ch)) {
-        out += this.input.slice(chunkStart, this.state.pos);
-        out += this.jsxReadNewLine(false);
-        chunkStart = this.state.pos;
-      } else {
-        ++this.state.pos;
-      }
-    }
-
-    out += this.input.slice(chunkStart, this.state.pos++);
-    return this.finishToken(types.string, out);
-  }
-
-  jsxReadEntity() {
-    let str = "";
-    let count = 0;
-    let entity;
-    let ch = this.input[this.state.pos];
-    const startPos = ++this.state.pos;
-
-    while (this.state.pos < this.length && count++ < 10) {
-      ch = this.input[this.state.pos++];
-
-      if (ch === ";") {
-        if (str[0] === "#") {
-          if (str[1] === "x") {
-            str = str.substr(2);
-
-            if (HEX_NUMBER.test(str)) {
-              entity = String.fromCodePoint(parseInt(str, 16));
-            }
-          } else {
-            str = str.substr(1);
-
-            if (DECIMAL_NUMBER.test(str)) {
-              entity = String.fromCodePoint(parseInt(str, 10));
-            }
-          }
-        } else {
-          entity = entities[str];
-        }
-
-        break;
-      }
-
-      str += ch;
-    }
-
-    if (!entity) {
-      this.state.pos = startPos;
-      return "&";
-    }
-
-    return entity;
-  }
-
-  jsxReadWord() {
-    let ch;
-    const start = this.state.pos;
-
-    do {
-      ch = this.input.charCodeAt(++this.state.pos);
-    } while (isIdentifierChar(ch) || ch === 45);
-
-    return this.finishToken(types.jsxName, this.input.slice(start, this.state.pos));
-  }
-
-  jsxParseIdentifier() {
-    const node = this.startNode();
-
-    if (this.match(types.jsxName)) {
-      node.name = this.state.value;
-    } else if (this.state.type.keyword) {
-      node.name = this.state.type.keyword;
-    } else {
-      this.unexpected();
-    }
-
-    this.next();
-    return this.finishNode(node, "JSXIdentifier");
-  }
-
-  jsxParseNamespacedName() {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const name = this.jsxParseIdentifier();
-    if (!this.eat(types.colon)) return name;
-    const node = this.startNodeAt(startPos, startLoc);
-    node.namespace = name;
-    node.name = this.jsxParseIdentifier();
-    return this.finishNode(node, "JSXNamespacedName");
-  }
-
-  jsxParseElementName() {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    let node = this.jsxParseNamespacedName();
-
-    if (node.type === "JSXNamespacedName") {
-      return node;
-    }
-
-    while (this.eat(types.dot)) {
-      const newNode = this.startNodeAt(startPos, startLoc);
-      newNode.object = node;
-      newNode.property = this.jsxParseIdentifier();
-      node = this.finishNode(newNode, "JSXMemberExpression");
-    }
-
-    return node;
-  }
-
-  jsxParseAttributeValue() {
-    let node;
-
-    switch (this.state.type) {
-      case types.braceL:
-        node = this.startNode();
-        this.next();
-        node = this.jsxParseExpressionContainer(node);
-
-        if (node.expression.type === "JSXEmptyExpression") {
-          this.raise(node.start, JsxErrors.AttributeIsEmpty);
-        }
-
-        return node;
-
-      case types.jsxTagStart:
-      case types.string:
-        return this.parseExprAtom();
-
-      default:
-        throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);
-    }
-  }
-
-  jsxParseEmptyExpression() {
-    const node = this.startNodeAt(this.state.lastTokEnd, this.state.lastTokEndLoc);
-    return this.finishNodeAt(node, "JSXEmptyExpression", this.state.start, this.state.startLoc);
-  }
-
-  jsxParseSpreadChild(node) {
-    this.next();
-    node.expression = this.parseExpression();
-    this.expect(types.braceR);
-    return this.finishNode(node, "JSXSpreadChild");
-  }
-
-  jsxParseExpressionContainer(node) {
-    if (this.match(types.braceR)) {
-      node.expression = this.jsxParseEmptyExpression();
-    } else {
-      node.expression = this.parseExpression();
-    }
-
-    this.expect(types.braceR);
-    return this.finishNode(node, "JSXExpressionContainer");
-  }
-
-  jsxParseAttribute() {
-    const node = this.startNode();
-
-    if (this.eat(types.braceL)) {
-      this.expect(types.ellipsis);
-      node.argument = this.parseMaybeAssign();
-      this.expect(types.braceR);
-      return this.finishNode(node, "JSXSpreadAttribute");
-    }
-
-    node.name = this.jsxParseNamespacedName();
-    node.value = this.eat(types.eq) ? this.jsxParseAttributeValue() : null;
-    return this.finishNode(node, "JSXAttribute");
-  }
-
-  jsxParseOpeningElementAt(startPos, startLoc) {
-    const node = this.startNodeAt(startPos, startLoc);
-
-    if (this.match(types.jsxTagEnd)) {
-      this.expect(types.jsxTagEnd);
-      return this.finishNode(node, "JSXOpeningFragment");
-    }
-
-    node.name = this.jsxParseElementName();
-    return this.jsxParseOpeningElementAfterName(node);
-  }
-
-  jsxParseOpeningElementAfterName(node) {
-    const attributes = [];
-
-    while (!this.match(types.slash) && !this.match(types.jsxTagEnd)) {
-      attributes.push(this.jsxParseAttribute());
-    }
-
-    node.attributes = attributes;
-    node.selfClosing = this.eat(types.slash);
-    this.expect(types.jsxTagEnd);
-    return this.finishNode(node, "JSXOpeningElement");
-  }
-
-  jsxParseClosingElementAt(startPos, startLoc) {
-    const node = this.startNodeAt(startPos, startLoc);
-
-    if (this.match(types.jsxTagEnd)) {
-      this.expect(types.jsxTagEnd);
-      return this.finishNode(node, "JSXClosingFragment");
-    }
-
-    node.name = this.jsxParseElementName();
-    this.expect(types.jsxTagEnd);
-    return this.finishNode(node, "JSXClosingElement");
-  }
-
-  jsxParseElementAt(startPos, startLoc) {
-    const node = this.startNodeAt(startPos, startLoc);
-    const children = [];
-    const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);
-    let closingElement = null;
-
-    if (!openingElement.selfClosing) {
-      contents: for (;;) {
-        switch (this.state.type) {
-          case types.jsxTagStart:
-            startPos = this.state.start;
-            startLoc = this.state.startLoc;
-            this.next();
-
-            if (this.eat(types.slash)) {
-              closingElement = this.jsxParseClosingElementAt(startPos, startLoc);
-              break contents;
-            }
-
-            children.push(this.jsxParseElementAt(startPos, startLoc));
-            break;
-
-          case types.jsxText:
-            children.push(this.parseExprAtom());
-            break;
-
-          case types.braceL:
-            {
-              const node = this.startNode();
-              this.next();
-
-              if (this.match(types.ellipsis)) {
-                children.push(this.jsxParseSpreadChild(node));
-              } else {
-                children.push(this.jsxParseExpressionContainer(node));
-              }
-
-              break;
-            }
-
-          default:
-            throw this.unexpected();
-        }
-      }
-
-      if (isFragment(openingElement) && !isFragment(closingElement)) {
-        this.raise(closingElement.start, JsxErrors.MissingClosingTagFragment);
-      } else if (!isFragment(openingElement) && isFragment(closingElement)) {
-        this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name));
-      } else if (!isFragment(openingElement) && !isFragment(closingElement)) {
-        if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {
-          this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name));
-        }
-      }
-    }
-
-    if (isFragment(openingElement)) {
-      node.openingFragment = openingElement;
-      node.closingFragment = closingElement;
-    } else {
-      node.openingElement = openingElement;
-      node.closingElement = closingElement;
-    }
-
-    node.children = children;
-
-    if (this.isRelational("<")) {
-      throw this.raise(this.state.start, JsxErrors.UnwrappedAdjacentJSXElements);
-    }
-
-    return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement");
-  }
-
-  jsxParseElement() {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    this.next();
-    return this.jsxParseElementAt(startPos, startLoc);
-  }
-
-  parseExprAtom(refExpressionErrors) {
-    if (this.match(types.jsxText)) {
-      return this.parseLiteral(this.state.value, "JSXText");
-    } else if (this.match(types.jsxTagStart)) {
-      return this.jsxParseElement();
-    } else if (this.isRelational("<") && this.input.charCodeAt(this.state.pos) !== 33) {
-      this.finishToken(types.jsxTagStart);
-      return this.jsxParseElement();
-    } else {
-      return super.parseExprAtom(refExpressionErrors);
-    }
-  }
-
-  getTokenFromCode(code) {
-    if (this.state.inPropertyName) return super.getTokenFromCode(code);
-    const context = this.curContext();
-
-    if (context === types$1.j_expr) {
-      return this.jsxReadToken();
-    }
-
-    if (context === types$1.j_oTag || context === types$1.j_cTag) {
-      if (isIdentifierStart(code)) {
-        return this.jsxReadWord();
-      }
-
-      if (code === 62) {
-        ++this.state.pos;
-        return this.finishToken(types.jsxTagEnd);
-      }
-
-      if ((code === 34 || code === 39) && context === types$1.j_oTag) {
-        return this.jsxReadString(code);
-      }
-    }
-
-    if (code === 60 && this.state.exprAllowed && this.input.charCodeAt(this.state.pos + 1) !== 33) {
-      ++this.state.pos;
-      return this.finishToken(types.jsxTagStart);
-    }
-
-    return super.getTokenFromCode(code);
-  }
-
-  updateContext(prevType) {
-    if (this.match(types.braceL)) {
-      const curContext = this.curContext();
-
-      if (curContext === types$1.j_oTag) {
-        this.state.context.push(types$1.braceExpression);
-      } else if (curContext === types$1.j_expr) {
-        this.state.context.push(types$1.templateQuasi);
-      } else {
-        super.updateContext(prevType);
-      }
-
-      this.state.exprAllowed = true;
-    } else if (this.match(types.slash) && prevType === types.jsxTagStart) {
-      this.state.context.length -= 2;
-      this.state.context.push(types$1.j_cTag);
-      this.state.exprAllowed = false;
-    } else {
-      return super.updateContext(prevType);
-    }
-  }
-
-});
-
-class Scope {
-  constructor(flags) {
-    this.var = [];
-    this.lexical = [];
-    this.functions = [];
-    this.flags = flags;
-  }
-
-}
-class ScopeHandler {
-  constructor(raise, inModule) {
-    this.scopeStack = [];
-    this.undefinedExports = new Map();
-    this.undefinedPrivateNames = new Map();
-    this.raise = raise;
-    this.inModule = inModule;
-  }
-
-  get inFunction() {
-    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;
-  }
-
-  get allowSuper() {
-    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;
-  }
-
-  get allowDirectSuper() {
-    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;
-  }
-
-  get inClass() {
-    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;
-  }
-
-  get inNonArrowFunction() {
-    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;
-  }
-
-  get treatFunctionsAsVar() {
-    return this.treatFunctionsAsVarInScope(this.currentScope());
-  }
-
-  createScope(flags) {
-    return new Scope(flags);
-  }
-
-  enter(flags) {
-    this.scopeStack.push(this.createScope(flags));
-  }
-
-  exit() {
-    this.scopeStack.pop();
-  }
-
-  treatFunctionsAsVarInScope(scope) {
-    return !!(scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_PROGRAM);
-  }
-
-  declareName(name, bindingType, pos) {
-    let scope = this.currentScope();
-
-    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {
-      this.checkRedeclarationInScope(scope, name, bindingType, pos);
-
-      if (bindingType & BIND_SCOPE_FUNCTION) {
-        scope.functions.push(name);
-      } else {
-        scope.lexical.push(name);
-      }
-
-      if (bindingType & BIND_SCOPE_LEXICAL) {
-        this.maybeExportDefined(scope, name);
-      }
-    } else if (bindingType & BIND_SCOPE_VAR) {
-      for (let i = this.scopeStack.length - 1; i >= 0; --i) {
-        scope = this.scopeStack[i];
-        this.checkRedeclarationInScope(scope, name, bindingType, pos);
-        scope.var.push(name);
-        this.maybeExportDefined(scope, name);
-        if (scope.flags & SCOPE_VAR) break;
-      }
-    }
-
-    if (this.inModule && scope.flags & SCOPE_PROGRAM) {
-      this.undefinedExports.delete(name);
-    }
-  }
-
-  maybeExportDefined(scope, name) {
-    if (this.inModule && scope.flags & SCOPE_PROGRAM) {
-      this.undefinedExports.delete(name);
-    }
-  }
-
-  checkRedeclarationInScope(scope, name, bindingType, pos) {
-    if (this.isRedeclaredInScope(scope, name, bindingType)) {
-      this.raise(pos, Errors.VarRedeclaration, name);
-    }
-  }
-
-  isRedeclaredInScope(scope, name, bindingType) {
-    if (!(bindingType & BIND_KIND_VALUE)) return false;
-
-    if (bindingType & BIND_SCOPE_LEXICAL) {
-      return scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;
-    }
-
-    if (bindingType & BIND_SCOPE_FUNCTION) {
-      return scope.lexical.indexOf(name) > -1 || !this.treatFunctionsAsVarInScope(scope) && scope.var.indexOf(name) > -1;
-    }
-
-    return scope.lexical.indexOf(name) > -1 && !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1;
-  }
-
-  checkLocalExport(id) {
-    if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1 && this.scopeStack[0].functions.indexOf(id.name) === -1) {
-      this.undefinedExports.set(id.name, id.start);
-    }
-  }
-
-  currentScope() {
-    return this.scopeStack[this.scopeStack.length - 1];
-  }
-
-  currentVarScope() {
-    for (let i = this.scopeStack.length - 1;; i--) {
-      const scope = this.scopeStack[i];
-
-      if (scope.flags & SCOPE_VAR) {
-        return scope;
-      }
-    }
-  }
-
-  currentThisScope() {
-    for (let i = this.scopeStack.length - 1;; i--) {
-      const scope = this.scopeStack[i];
-
-      if ((scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) && !(scope.flags & SCOPE_ARROW)) {
-        return scope;
-      }
-    }
-  }
-
-}
-
-class TypeScriptScope extends Scope {
-  constructor(...args) {
-    super(...args);
-    this.types = [];
-    this.enums = [];
-    this.constEnums = [];
-    this.classes = [];
-    this.exportOnlyBindings = [];
-  }
-
-}
-
-class TypeScriptScopeHandler extends ScopeHandler {
-  createScope(flags) {
-    return new TypeScriptScope(flags);
-  }
-
-  declareName(name, bindingType, pos) {
-    const scope = this.currentScope();
-
-    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {
-      this.maybeExportDefined(scope, name);
-      scope.exportOnlyBindings.push(name);
-      return;
-    }
-
-    super.declareName(...arguments);
-
-    if (bindingType & BIND_KIND_TYPE) {
-      if (!(bindingType & BIND_KIND_VALUE)) {
-        this.checkRedeclarationInScope(scope, name, bindingType, pos);
-        this.maybeExportDefined(scope, name);
-      }
-
-      scope.types.push(name);
-    }
-
-    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);
-    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);
-    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);
-  }
-
-  isRedeclaredInScope(scope, name, bindingType) {
-    if (scope.enums.indexOf(name) > -1) {
-      if (bindingType & BIND_FLAGS_TS_ENUM) {
-        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);
-        const wasConst = scope.constEnums.indexOf(name) > -1;
-        return isConst !== wasConst;
-      }
-
-      return true;
-    }
-
-    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {
-      if (scope.lexical.indexOf(name) > -1) {
-        return !!(bindingType & BIND_KIND_VALUE);
-      } else {
-        return false;
-      }
-    }
-
-    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {
-      return true;
-    }
-
-    return super.isRedeclaredInScope(...arguments);
-  }
-
-  checkLocalExport(id) {
-    if (this.scopeStack[0].types.indexOf(id.name) === -1 && this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1) {
-      super.checkLocalExport(id);
-    }
-  }
-
-}
-
-const PARAM = 0b000,
-      PARAM_YIELD = 0b001,
-      PARAM_AWAIT = 0b010,
-      PARAM_RETURN = 0b100;
-class ProductionParameterHandler {
-  constructor() {
-    this.stacks = [];
-  }
-
-  enter(flags) {
-    this.stacks.push(flags);
-  }
-
-  exit() {
-    this.stacks.pop();
-  }
-
-  currentFlags() {
-    return this.stacks[this.stacks.length - 1];
-  }
-
-  get hasAwait() {
-    return (this.currentFlags() & PARAM_AWAIT) > 0;
-  }
-
-  get hasYield() {
-    return (this.currentFlags() & PARAM_YIELD) > 0;
-  }
-
-  get hasReturn() {
-    return (this.currentFlags() & PARAM_RETURN) > 0;
-  }
-
-}
-function functionFlags(isAsync, isGenerator) {
-  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);
-}
-
-function nonNull(x) {
-  if (x == null) {
-    throw new Error(`Unexpected ${x} value.`);
-  }
-
-  return x;
-}
-
-function assert(x) {
-  if (!x) {
-    throw new Error("Assert fail");
-  }
-}
-
-const TSErrors = Object.freeze({
-  ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier",
-  ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier",
-  DeclareClassFieldHasInitializer: "'declare' class fields cannot have an initializer",
-  DuplicateModifier: "Duplicate modifier: '%0'",
-  EmptyHeritageClauseType: "'%0' list cannot be empty.",
-  IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier",
-  IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0')",
-  IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier",
-  OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
-  PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
-  PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
-  PrivateElementHasAccessibility: "Private elements cannot have an accessibility modifier ('%0')",
-  TemplateTypeHasSubstitution: "Template literal types cannot have any substitution",
-  TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`",
-  UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
-  UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
-  UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
-  UnsupportedImportTypeArgument: "Argument in a type import must be a string literal",
-  UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
-  UnsupportedSignatureParameterKind: "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0"
-});
-
-function keywordTypeFromName(value) {
-  switch (value) {
-    case "any":
-      return "TSAnyKeyword";
-
-    case "boolean":
-      return "TSBooleanKeyword";
-
-    case "bigint":
-      return "TSBigIntKeyword";
-
-    case "never":
-      return "TSNeverKeyword";
-
-    case "number":
-      return "TSNumberKeyword";
-
-    case "object":
-      return "TSObjectKeyword";
-
-    case "string":
-      return "TSStringKeyword";
-
-    case "symbol":
-      return "TSSymbolKeyword";
-
-    case "undefined":
-      return "TSUndefinedKeyword";
-
-    case "unknown":
-      return "TSUnknownKeyword";
-
-    default:
-      return undefined;
-  }
-}
-
-var typescript = (superClass => class extends superClass {
-  getScopeHandler() {
-    return TypeScriptScopeHandler;
-  }
-
-  tsIsIdentifier() {
-    return this.match(types.name);
-  }
-
-  tsNextTokenCanFollowModifier() {
-    this.next();
-    return !this.hasPrecedingLineBreak() && !this.match(types.parenL) && !this.match(types.parenR) && !this.match(types.colon) && !this.match(types.eq) && !this.match(types.question) && !this.match(types.bang);
-  }
-
-  tsParseModifier(allowedModifiers) {
-    if (!this.match(types.name)) {
-      return undefined;
-    }
-
-    const modifier = this.state.value;
-
-    if (allowedModifiers.indexOf(modifier) !== -1 && this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) {
-      return modifier;
-    }
-
-    return undefined;
-  }
-
-  tsParseModifiers(modified, allowedModifiers) {
-    for (;;) {
-      const startPos = this.state.start;
-      const modifier = this.tsParseModifier(allowedModifiers);
-      if (!modifier) break;
-
-      if (Object.hasOwnProperty.call(modified, modifier)) {
-        this.raise(startPos, TSErrors.DuplicateModifier, modifier);
-      }
-
-      modified[modifier] = true;
-    }
-  }
-
-  tsIsListTerminator(kind) {
-    switch (kind) {
-      case "EnumMembers":
-      case "TypeMembers":
-        return this.match(types.braceR);
-
-      case "HeritageClauseElement":
-        return this.match(types.braceL);
-
-      case "TupleElementTypes":
-        return this.match(types.bracketR);
-
-      case "TypeParametersOrArguments":
-        return this.isRelational(">");
-    }
-
-    throw new Error("Unreachable");
-  }
-
-  tsParseList(kind, parseElement) {
-    const result = [];
-
-    while (!this.tsIsListTerminator(kind)) {
-      result.push(parseElement());
-    }
-
-    return result;
-  }
-
-  tsParseDelimitedList(kind, parseElement) {
-    return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true));
-  }
-
-  tsParseDelimitedListWorker(kind, parseElement, expectSuccess) {
-    const result = [];
-
-    for (;;) {
-      if (this.tsIsListTerminator(kind)) {
-        break;
-      }
-
-      const element = parseElement();
-
-      if (element == null) {
-        return undefined;
-      }
-
-      result.push(element);
-
-      if (this.eat(types.comma)) {
-        continue;
-      }
-
-      if (this.tsIsListTerminator(kind)) {
-        break;
-      }
-
-      if (expectSuccess) {
-        this.expect(types.comma);
-      }
-
-      return undefined;
-    }
-
-    return result;
-  }
-
-  tsParseBracketedList(kind, parseElement, bracket, skipFirstToken) {
-    if (!skipFirstToken) {
-      if (bracket) {
-        this.expect(types.bracketL);
-      } else {
-        this.expectRelational("<");
-      }
-    }
-
-    const result = this.tsParseDelimitedList(kind, parseElement);
-
-    if (bracket) {
-      this.expect(types.bracketR);
-    } else {
-      this.expectRelational(">");
-    }
-
-    return result;
-  }
-
-  tsParseImportType() {
-    const node = this.startNode();
-    this.expect(types._import);
-    this.expect(types.parenL);
-
-    if (!this.match(types.string)) {
-      this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);
-    }
-
-    node.argument = this.parseExprAtom();
-    this.expect(types.parenR);
-
-    if (this.eat(types.dot)) {
-      node.qualifier = this.tsParseEntityName(true);
-    }
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.tsParseTypeArguments();
-    }
-
-    return this.finishNode(node, "TSImportType");
-  }
-
-  tsParseEntityName(allowReservedWords) {
-    let entity = this.parseIdentifier();
-
-    while (this.eat(types.dot)) {
-      const node = this.startNodeAtNode(entity);
-      node.left = entity;
-      node.right = this.parseIdentifier(allowReservedWords);
-      entity = this.finishNode(node, "TSQualifiedName");
-    }
-
-    return entity;
-  }
-
-  tsParseTypeReference() {
-    const node = this.startNode();
-    node.typeName = this.tsParseEntityName(false);
-
-    if (!this.hasPrecedingLineBreak() && this.isRelational("<")) {
-      node.typeParameters = this.tsParseTypeArguments();
-    }
-
-    return this.finishNode(node, "TSTypeReference");
-  }
-
-  tsParseThisTypePredicate(lhs) {
-    this.next();
-    const node = this.startNodeAtNode(lhs);
-    node.parameterName = lhs;
-    node.typeAnnotation = this.tsParseTypeAnnotation(false);
-    return this.finishNode(node, "TSTypePredicate");
-  }
-
-  tsParseThisTypeNode() {
-    const node = this.startNode();
-    this.next();
-    return this.finishNode(node, "TSThisType");
-  }
-
-  tsParseTypeQuery() {
-    const node = this.startNode();
-    this.expect(types._typeof);
-
-    if (this.match(types._import)) {
-      node.exprName = this.tsParseImportType();
-    } else {
-      node.exprName = this.tsParseEntityName(true);
-    }
-
-    return this.finishNode(node, "TSTypeQuery");
-  }
-
-  tsParseTypeParameter() {
-    const node = this.startNode();
-    node.name = this.parseIdentifierName(node.start);
-    node.constraint = this.tsEatThenParseType(types._extends);
-    node.default = this.tsEatThenParseType(types.eq);
-    return this.finishNode(node, "TSTypeParameter");
-  }
-
-  tsTryParseTypeParameters() {
-    if (this.isRelational("<")) {
-      return this.tsParseTypeParameters();
-    }
-  }
-
-  tsParseTypeParameters() {
-    const node = this.startNode();
-
-    if (this.isRelational("<") || this.match(types.jsxTagStart)) {
-      this.next();
-    } else {
-      this.unexpected();
-    }
-
-    node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true);
-    return this.finishNode(node, "TSTypeParameterDeclaration");
-  }
-
-  tsTryNextParseConstantContext() {
-    if (this.lookahead().type === types._const) {
-      this.next();
-      return this.tsParseTypeReference();
-    }
-
-    return null;
-  }
-
-  tsFillSignature(returnToken, signature) {
-    const returnTokenRequired = returnToken === types.arrow;
-    signature.typeParameters = this.tsTryParseTypeParameters();
-    this.expect(types.parenL);
-    signature.parameters = this.tsParseBindingListForSignature();
-
-    if (returnTokenRequired) {
-      signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken);
-    } else if (this.match(returnToken)) {
-      signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken);
-    }
-  }
-
-  tsParseBindingListForSignature() {
-    return this.parseBindingList(types.parenR, 41).map(pattern => {
-      if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") {
-        this.raise(pattern.start, TSErrors.UnsupportedSignatureParameterKind, pattern.type);
-      }
-
-      return pattern;
-    });
-  }
-
-  tsParseTypeMemberSemicolon() {
-    if (!this.eat(types.comma)) {
-      this.semicolon();
-    }
-  }
-
-  tsParseSignatureMember(kind, node) {
-    this.tsFillSignature(types.colon, node);
-    this.tsParseTypeMemberSemicolon();
-    return this.finishNode(node, kind);
-  }
-
-  tsIsUnambiguouslyIndexSignature() {
-    this.next();
-    return this.eat(types.name) && this.match(types.colon);
-  }
-
-  tsTryParseIndexSignature(node) {
-    if (!(this.match(types.bracketL) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) {
-      return undefined;
-    }
-
-    this.expect(types.bracketL);
-    const id = this.parseIdentifier();
-    id.typeAnnotation = this.tsParseTypeAnnotation();
-    this.resetEndLocation(id);
-    this.expect(types.bracketR);
-    node.parameters = [id];
-    const type = this.tsTryParseTypeAnnotation();
-    if (type) node.typeAnnotation = type;
-    this.tsParseTypeMemberSemicolon();
-    return this.finishNode(node, "TSIndexSignature");
-  }
-
-  tsParsePropertyOrMethodSignature(node, readonly) {
-    if (this.eat(types.question)) node.optional = true;
-    const nodeAny = node;
-
-    if (!readonly && (this.match(types.parenL) || this.isRelational("<"))) {
-      const method = nodeAny;
-      this.tsFillSignature(types.colon, method);
-      this.tsParseTypeMemberSemicolon();
-      return this.finishNode(method, "TSMethodSignature");
-    } else {
-      const property = nodeAny;
-      if (readonly) property.readonly = true;
-      const type = this.tsTryParseTypeAnnotation();
-      if (type) property.typeAnnotation = type;
-      this.tsParseTypeMemberSemicolon();
-      return this.finishNode(property, "TSPropertySignature");
-    }
-  }
-
-  tsParseTypeMember() {
-    const node = this.startNode();
-
-    if (this.match(types.parenL) || this.isRelational("<")) {
-      return this.tsParseSignatureMember("TSCallSignatureDeclaration", node);
-    }
-
-    if (this.match(types._new)) {
-      const id = this.startNode();
-      this.next();
-
-      if (this.match(types.parenL) || this.isRelational("<")) {
-        return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node);
-      } else {
-        node.key = this.createIdentifier(id, "new");
-        return this.tsParsePropertyOrMethodSignature(node, false);
-      }
-    }
-
-    const readonly = !!this.tsParseModifier(["readonly"]);
-    const idx = this.tsTryParseIndexSignature(node);
-
-    if (idx) {
-      if (readonly) node.readonly = true;
-      return idx;
-    }
-
-    this.parsePropertyName(node, false);
-    return this.tsParsePropertyOrMethodSignature(node, readonly);
-  }
-
-  tsParseTypeLiteral() {
-    const node = this.startNode();
-    node.members = this.tsParseObjectTypeMembers();
-    return this.finishNode(node, "TSTypeLiteral");
-  }
-
-  tsParseObjectTypeMembers() {
-    this.expect(types.braceL);
-    const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
-    this.expect(types.braceR);
-    return members;
-  }
-
-  tsIsStartOfMappedType() {
-    this.next();
-
-    if (this.eat(types.plusMin)) {
-      return this.isContextual("readonly");
-    }
-
-    if (this.isContextual("readonly")) {
-      this.next();
-    }
-
-    if (!this.match(types.bracketL)) {
-      return false;
-    }
-
-    this.next();
-
-    if (!this.tsIsIdentifier()) {
-      return false;
-    }
-
-    this.next();
-    return this.match(types._in);
-  }
-
-  tsParseMappedTypeParameter() {
-    const node = this.startNode();
-    node.name = this.parseIdentifierName(node.start);
-    node.constraint = this.tsExpectThenParseType(types._in);
-    return this.finishNode(node, "TSTypeParameter");
-  }
-
-  tsParseMappedType() {
-    const node = this.startNode();
-    this.expect(types.braceL);
-
-    if (this.match(types.plusMin)) {
-      node.readonly = this.state.value;
-      this.next();
-      this.expectContextual("readonly");
-    } else if (this.eatContextual("readonly")) {
-      node.readonly = true;
-    }
-
-    this.expect(types.bracketL);
-    node.typeParameter = this.tsParseMappedTypeParameter();
-    this.expect(types.bracketR);
-
-    if (this.match(types.plusMin)) {
-      node.optional = this.state.value;
-      this.next();
-      this.expect(types.question);
-    } else if (this.eat(types.question)) {
-      node.optional = true;
-    }
-
-    node.typeAnnotation = this.tsTryParseType();
-    this.semicolon();
-    this.expect(types.braceR);
-    return this.finishNode(node, "TSMappedType");
-  }
-
-  tsParseTupleType() {
-    const node = this.startNode();
-    node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false);
-    let seenOptionalElement = false;
-    node.elementTypes.forEach(elementNode => {
-      if (elementNode.type === "TSOptionalType") {
-        seenOptionalElement = true;
-      } else if (seenOptionalElement && elementNode.type !== "TSRestType") {
-        this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);
-      }
-    });
-    return this.finishNode(node, "TSTupleType");
-  }
-
-  tsParseTupleElementType() {
-    if (this.match(types.ellipsis)) {
-      const restNode = this.startNode();
-      this.next();
-      restNode.typeAnnotation = this.tsParseType();
-
-      if (this.match(types.comma) && this.lookaheadCharCode() !== 93) {
-        this.raiseRestNotLast(this.state.start);
-      }
-
-      return this.finishNode(restNode, "TSRestType");
-    }
-
-    const type = this.tsParseType();
-
-    if (this.eat(types.question)) {
-      const optionalTypeNode = this.startNodeAtNode(type);
-      optionalTypeNode.typeAnnotation = type;
-      return this.finishNode(optionalTypeNode, "TSOptionalType");
-    }
-
-    return type;
-  }
-
-  tsParseParenthesizedType() {
-    const node = this.startNode();
-    this.expect(types.parenL);
-    node.typeAnnotation = this.tsParseType();
-    this.expect(types.parenR);
-    return this.finishNode(node, "TSParenthesizedType");
-  }
-
-  tsParseFunctionOrConstructorType(type) {
-    const node = this.startNode();
-
-    if (type === "TSConstructorType") {
-      this.expect(types._new);
-    }
-
-    this.tsFillSignature(types.arrow, node);
-    return this.finishNode(node, type);
-  }
-
-  tsParseLiteralTypeNode() {
-    const node = this.startNode();
-
-    node.literal = (() => {
-      switch (this.state.type) {
-        case types.num:
-        case types.string:
-        case types._true:
-        case types._false:
-          return this.parseExprAtom();
-
-        default:
-          throw this.unexpected();
-      }
-    })();
-
-    return this.finishNode(node, "TSLiteralType");
-  }
-
-  tsParseTemplateLiteralType() {
-    const node = this.startNode();
-    const templateNode = this.parseTemplate(false);
-
-    if (templateNode.expressions.length > 0) {
-      this.raise(templateNode.expressions[0].start, TSErrors.TemplateTypeHasSubstitution);
-    }
-
-    node.literal = templateNode;
-    return this.finishNode(node, "TSLiteralType");
-  }
-
-  tsParseThisTypeOrThisTypePredicate() {
-    const thisKeyword = this.tsParseThisTypeNode();
-
-    if (this.isContextual("is") && !this.hasPrecedingLineBreak()) {
-      return this.tsParseThisTypePredicate(thisKeyword);
-    } else {
-      return thisKeyword;
-    }
-  }
-
-  tsParseNonArrayType() {
-    switch (this.state.type) {
-      case types.name:
-      case types._void:
-      case types._null:
-        {
-          const type = this.match(types._void) ? "TSVoidKeyword" : this.match(types._null) ? "TSNullKeyword" : keywordTypeFromName(this.state.value);
-
-          if (type !== undefined && this.lookaheadCharCode() !== 46) {
-            const node = this.startNode();
-            this.next();
-            return this.finishNode(node, type);
-          }
-
-          return this.tsParseTypeReference();
-        }
-
-      case types.string:
-      case types.num:
-      case types._true:
-      case types._false:
-        return this.tsParseLiteralTypeNode();
-
-      case types.plusMin:
-        if (this.state.value === "-") {
-          const node = this.startNode();
-
-          if (this.lookahead().type !== types.num) {
-            throw this.unexpected();
-          }
-
-          node.literal = this.parseMaybeUnary();
-          return this.finishNode(node, "TSLiteralType");
-        }
-
-        break;
-
-      case types._this:
-        return this.tsParseThisTypeOrThisTypePredicate();
-
-      case types._typeof:
-        return this.tsParseTypeQuery();
-
-      case types._import:
-        return this.tsParseImportType();
-
-      case types.braceL:
-        return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
-
-      case types.bracketL:
-        return this.tsParseTupleType();
-
-      case types.parenL:
-        return this.tsParseParenthesizedType();
-
-      case types.backQuote:
-        return this.tsParseTemplateLiteralType();
-    }
-
-    throw this.unexpected();
-  }
-
-  tsParseArrayTypeOrHigher() {
-    let type = this.tsParseNonArrayType();
-
-    while (!this.hasPrecedingLineBreak() && this.eat(types.bracketL)) {
-      if (this.match(types.bracketR)) {
-        const node = this.startNodeAtNode(type);
-        node.elementType = type;
-        this.expect(types.bracketR);
-        type = this.finishNode(node, "TSArrayType");
-      } else {
-        const node = this.startNodeAtNode(type);
-        node.objectType = type;
-        node.indexType = this.tsParseType();
-        this.expect(types.bracketR);
-        type = this.finishNode(node, "TSIndexedAccessType");
-      }
-    }
-
-    return type;
-  }
-
-  tsParseTypeOperator(operator) {
-    const node = this.startNode();
-    this.expectContextual(operator);
-    node.operator = operator;
-    node.typeAnnotation = this.tsParseTypeOperatorOrHigher();
-
-    if (operator === "readonly") {
-      this.tsCheckTypeAnnotationForReadOnly(node);
-    }
-
-    return this.finishNode(node, "TSTypeOperator");
-  }
-
-  tsCheckTypeAnnotationForReadOnly(node) {
-    switch (node.typeAnnotation.type) {
-      case "TSTupleType":
-      case "TSArrayType":
-        return;
-
-      default:
-        this.raise(node.start, TSErrors.UnexpectedReadonly);
-    }
-  }
-
-  tsParseInferType() {
-    const node = this.startNode();
-    this.expectContextual("infer");
-    const typeParameter = this.startNode();
-    typeParameter.name = this.parseIdentifierName(typeParameter.start);
-    node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter");
-    return this.finishNode(node, "TSInferType");
-  }
-
-  tsParseTypeOperatorOrHigher() {
-    const operator = ["keyof", "unique", "readonly"].find(kw => this.isContextual(kw));
-    return operator ? this.tsParseTypeOperator(operator) : this.isContextual("infer") ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher();
-  }
-
-  tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) {
-    this.eat(operator);
-    let type = parseConstituentType();
-
-    if (this.match(operator)) {
-      const types = [type];
-
-      while (this.eat(operator)) {
-        types.push(parseConstituentType());
-      }
-
-      const node = this.startNodeAtNode(type);
-      node.types = types;
-      type = this.finishNode(node, kind);
-    }
-
-    return type;
-  }
-
-  tsParseIntersectionTypeOrHigher() {
-    return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), types.bitwiseAND);
-  }
-
-  tsParseUnionTypeOrHigher() {
-    return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), types.bitwiseOR);
-  }
-
-  tsIsStartOfFunctionType() {
-    if (this.isRelational("<")) {
-      return true;
-    }
-
-    return this.match(types.parenL) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
-  }
-
-  tsSkipParameterStart() {
-    if (this.match(types.name) || this.match(types._this)) {
-      this.next();
-      return true;
-    }
-
-    if (this.match(types.braceL)) {
-      let braceStackCounter = 1;
-      this.next();
-
-      while (braceStackCounter > 0) {
-        if (this.match(types.braceL)) {
-          ++braceStackCounter;
-        } else if (this.match(types.braceR)) {
-          --braceStackCounter;
-        }
-
-        this.next();
-      }
-
-      return true;
-    }
-
-    if (this.match(types.bracketL)) {
-      let braceStackCounter = 1;
-      this.next();
-
-      while (braceStackCounter > 0) {
-        if (this.match(types.bracketL)) {
-          ++braceStackCounter;
-        } else if (this.match(types.bracketR)) {
-          --braceStackCounter;
-        }
-
-        this.next();
-      }
-
-      return true;
-    }
-
-    return false;
-  }
-
-  tsIsUnambiguouslyStartOfFunctionType() {
-    this.next();
-
-    if (this.match(types.parenR) || this.match(types.ellipsis)) {
-      return true;
-    }
-
-    if (this.tsSkipParameterStart()) {
-      if (this.match(types.colon) || this.match(types.comma) || this.match(types.question) || this.match(types.eq)) {
-        return true;
-      }
-
-      if (this.match(types.parenR)) {
-        this.next();
-
-        if (this.match(types.arrow)) {
-          return true;
-        }
-      }
-    }
-
-    return false;
-  }
-
-  tsParseTypeOrTypePredicateAnnotation(returnToken) {
-    return this.tsInType(() => {
-      const t = this.startNode();
-      this.expect(returnToken);
-      const asserts = this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
-
-      if (asserts && this.match(types._this)) {
-        let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();
-
-        if (thisTypePredicate.type === "TSThisType") {
-          const node = this.startNodeAtNode(t);
-          node.parameterName = thisTypePredicate;
-          node.asserts = true;
-          thisTypePredicate = this.finishNode(node, "TSTypePredicate");
-        } else {
-          thisTypePredicate.asserts = true;
-        }
-
-        t.typeAnnotation = thisTypePredicate;
-        return this.finishNode(t, "TSTypeAnnotation");
-      }
-
-      const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
-
-      if (!typePredicateVariable) {
-        if (!asserts) {
-          return this.tsParseTypeAnnotation(false, t);
-        }
-
-        const node = this.startNodeAtNode(t);
-        node.parameterName = this.parseIdentifier();
-        node.asserts = asserts;
-        t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
-        return this.finishNode(t, "TSTypeAnnotation");
-      }
-
-      const type = this.tsParseTypeAnnotation(false);
-      const node = this.startNodeAtNode(t);
-      node.parameterName = typePredicateVariable;
-      node.typeAnnotation = type;
-      node.asserts = asserts;
-      t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
-      return this.finishNode(t, "TSTypeAnnotation");
-    });
-  }
-
-  tsTryParseTypeOrTypePredicateAnnotation() {
-    return this.match(types.colon) ? this.tsParseTypeOrTypePredicateAnnotation(types.colon) : undefined;
-  }
-
-  tsTryParseTypeAnnotation() {
-    return this.match(types.colon) ? this.tsParseTypeAnnotation() : undefined;
-  }
-
-  tsTryParseType() {
-    return this.tsEatThenParseType(types.colon);
-  }
-
-  tsParseTypePredicatePrefix() {
-    const id = this.parseIdentifier();
-
-    if (this.isContextual("is") && !this.hasPrecedingLineBreak()) {
-      this.next();
-      return id;
-    }
-  }
-
-  tsParseTypePredicateAsserts() {
-    if (!this.match(types.name) || this.state.value !== "asserts" || this.hasPrecedingLineBreak()) {
-      return false;
-    }
-
-    const containsEsc = this.state.containsEsc;
-    this.next();
-
-    if (!this.match(types.name) && !this.match(types._this)) {
-      return false;
-    }
-
-    if (containsEsc) {
-      this.raise(this.state.lastTokStart, Errors.InvalidEscapedReservedWord, "asserts");
-    }
-
-    return true;
-  }
-
-  tsParseTypeAnnotation(eatColon = true, t = this.startNode()) {
-    this.tsInType(() => {
-      if (eatColon) this.expect(types.colon);
-      t.typeAnnotation = this.tsParseType();
-    });
-    return this.finishNode(t, "TSTypeAnnotation");
-  }
-
-  tsParseType() {
-    assert(this.state.inType);
-    const type = this.tsParseNonConditionalType();
-
-    if (this.hasPrecedingLineBreak() || !this.eat(types._extends)) {
-      return type;
-    }
-
-    const node = this.startNodeAtNode(type);
-    node.checkType = type;
-    node.extendsType = this.tsParseNonConditionalType();
-    this.expect(types.question);
-    node.trueType = this.tsParseType();
-    this.expect(types.colon);
-    node.falseType = this.tsParseType();
-    return this.finishNode(node, "TSConditionalType");
-  }
-
-  tsParseNonConditionalType() {
-    if (this.tsIsStartOfFunctionType()) {
-      return this.tsParseFunctionOrConstructorType("TSFunctionType");
-    }
-
-    if (this.match(types._new)) {
-      return this.tsParseFunctionOrConstructorType("TSConstructorType");
-    }
-
-    return this.tsParseUnionTypeOrHigher();
-  }
-
-  tsParseTypeAssertion() {
-    const node = this.startNode();
-
-    const _const = this.tsTryNextParseConstantContext();
-
-    node.typeAnnotation = _const || this.tsNextThenParseType();
-    this.expectRelational(">");
-    node.expression = this.parseMaybeUnary();
-    return this.finishNode(node, "TSTypeAssertion");
-  }
-
-  tsParseHeritageClause(descriptor) {
-    const originalStart = this.state.start;
-    const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this));
-
-    if (!delimitedList.length) {
-      this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);
-    }
-
-    return delimitedList;
-  }
-
-  tsParseExpressionWithTypeArguments() {
-    const node = this.startNode();
-    node.expression = this.tsParseEntityName(false);
-
-    if (this.isRelational("<")) {
-      node.typeParameters = this.tsParseTypeArguments();
-    }
-
-    return this.finishNode(node, "TSExpressionWithTypeArguments");
-  }
-
-  tsParseInterfaceDeclaration(node) {
-    node.id = this.parseIdentifier();
-    this.checkLVal(node.id, BIND_TS_INTERFACE, undefined, "typescript interface declaration");
-    node.typeParameters = this.tsTryParseTypeParameters();
-
-    if (this.eat(types._extends)) {
-      node.extends = this.tsParseHeritageClause("extends");
-    }
-
-    const body = this.startNode();
-    body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));
-    node.body = this.finishNode(body, "TSInterfaceBody");
-    return this.finishNode(node, "TSInterfaceDeclaration");
-  }
-
-  tsParseTypeAliasDeclaration(node) {
-    node.id = this.parseIdentifier();
-    this.checkLVal(node.id, BIND_TS_TYPE, undefined, "typescript type alias");
-    node.typeParameters = this.tsTryParseTypeParameters();
-    node.typeAnnotation = this.tsExpectThenParseType(types.eq);
-    this.semicolon();
-    return this.finishNode(node, "TSTypeAliasDeclaration");
-  }
-
-  tsInNoContext(cb) {
-    const oldContext = this.state.context;
-    this.state.context = [oldContext[0]];
-
-    try {
-      return cb();
-    } finally {
-      this.state.context = oldContext;
-    }
-  }
-
-  tsInType(cb) {
-    const oldInType = this.state.inType;
-    this.state.inType = true;
-
-    try {
-      return cb();
-    } finally {
-      this.state.inType = oldInType;
-    }
-  }
-
-  tsEatThenParseType(token) {
-    return !this.match(token) ? undefined : this.tsNextThenParseType();
-  }
-
-  tsExpectThenParseType(token) {
-    return this.tsDoThenParseType(() => this.expect(token));
-  }
-
-  tsNextThenParseType() {
-    return this.tsDoThenParseType(() => this.next());
-  }
-
-  tsDoThenParseType(cb) {
-    return this.tsInType(() => {
-      cb();
-      return this.tsParseType();
-    });
-  }
-
-  tsParseEnumMember() {
-    const node = this.startNode();
-    node.id = this.match(types.string) ? this.parseExprAtom() : this.parseIdentifier(true);
-
-    if (this.eat(types.eq)) {
-      node.initializer = this.parseMaybeAssign();
-    }
-
-    return this.finishNode(node, "TSEnumMember");
-  }
-
-  tsParseEnumDeclaration(node, isConst) {
-    if (isConst) node.const = true;
-    node.id = this.parseIdentifier();
-    this.checkLVal(node.id, isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM, undefined, "typescript enum declaration");
-    this.expect(types.braceL);
-    node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this));
-    this.expect(types.braceR);
-    return this.finishNode(node, "TSEnumDeclaration");
-  }
-
-  tsParseModuleBlock() {
-    const node = this.startNode();
-    this.scope.enter(SCOPE_OTHER);
-    this.expect(types.braceL);
-    this.parseBlockOrModuleBlockBody(node.body = [], undefined, true, types.braceR);
-    this.scope.exit();
-    return this.finishNode(node, "TSModuleBlock");
-  }
-
-  tsParseModuleOrNamespaceDeclaration(node, nested = false) {
-    node.id = this.parseIdentifier();
-
-    if (!nested) {
-      this.checkLVal(node.id, BIND_TS_NAMESPACE, null, "module or namespace declaration");
-    }
-
-    if (this.eat(types.dot)) {
-      const inner = this.startNode();
-      this.tsParseModuleOrNamespaceDeclaration(inner, true);
-      node.body = inner;
-    } else {
-      this.scope.enter(SCOPE_TS_MODULE);
-      this.prodParam.enter(PARAM);
-      node.body = this.tsParseModuleBlock();
-      this.prodParam.exit();
-      this.scope.exit();
-    }
-
-    return this.finishNode(node, "TSModuleDeclaration");
-  }
-
-  tsParseAmbientExternalModuleDeclaration(node) {
-    if (this.isContextual("global")) {
-      node.global = true;
-      node.id = this.parseIdentifier();
-    } else if (this.match(types.string)) {
-      node.id = this.parseExprAtom();
-    } else {
-      this.unexpected();
-    }
-
-    if (this.match(types.braceL)) {
-      this.scope.enter(SCOPE_TS_MODULE);
-      this.prodParam.enter(PARAM);
-      node.body = this.tsParseModuleBlock();
-      this.prodParam.exit();
-      this.scope.exit();
-    } else {
-      this.semicolon();
-    }
-
-    return this.finishNode(node, "TSModuleDeclaration");
-  }
-
-  tsParseImportEqualsDeclaration(node, isExport) {
-    node.isExport = isExport || false;
-    node.id = this.parseIdentifier();
-    this.checkLVal(node.id, BIND_LEXICAL, undefined, "import equals declaration");
-    this.expect(types.eq);
-    node.moduleReference = this.tsParseModuleReference();
-    this.semicolon();
-    return this.finishNode(node, "TSImportEqualsDeclaration");
-  }
-
-  tsIsExternalModuleReference() {
-    return this.isContextual("require") && this.lookaheadCharCode() === 40;
-  }
-
-  tsParseModuleReference() {
-    return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false);
-  }
-
-  tsParseExternalModuleReference() {
-    const node = this.startNode();
-    this.expectContextual("require");
-    this.expect(types.parenL);
-
-    if (!this.match(types.string)) {
-      throw this.unexpected();
-    }
-
-    node.expression = this.parseExprAtom();
-    this.expect(types.parenR);
-    return this.finishNode(node, "TSExternalModuleReference");
-  }
-
-  tsLookAhead(f) {
-    const state = this.state.clone();
-    const res = f();
-    this.state = state;
-    return res;
-  }
-
-  tsTryParseAndCatch(f) {
-    const result = this.tryParse(abort => f() || abort());
-    if (result.aborted || !result.node) return undefined;
-    if (result.error) this.state = result.failState;
-    return result.node;
-  }
-
-  tsTryParse(f) {
-    const state = this.state.clone();
-    const result = f();
-
-    if (result !== undefined && result !== false) {
-      return result;
-    } else {
-      this.state = state;
-      return undefined;
-    }
-  }
-
-  tsTryParseDeclare(nany) {
-    if (this.isLineTerminator()) {
-      return;
-    }
-
-    let starttype = this.state.type;
-    let kind;
-
-    if (this.isContextual("let")) {
-      starttype = types._var;
-      kind = "let";
-    }
-
-    switch (starttype) {
-      case types._function:
-        return this.parseFunctionStatement(nany, false, true);
-
-      case types._class:
-        nany.declare = true;
-        return this.parseClass(nany, true, false);
-
-      case types._const:
-        if (this.match(types._const) && this.isLookaheadContextual("enum")) {
-          this.expect(types._const);
-          this.expectContextual("enum");
-          return this.tsParseEnumDeclaration(nany, true);
-        }
-
-      case types._var:
-        kind = kind || this.state.value;
-        return this.parseVarStatement(nany, kind);
-
-      case types.name:
-        {
-          const value = this.state.value;
-
-          if (value === "global") {
-            return this.tsParseAmbientExternalModuleDeclaration(nany);
-          } else {
-            return this.tsParseDeclaration(nany, value, true);
-          }
-        }
-    }
-  }
-
-  tsTryParseExportDeclaration() {
-    return this.tsParseDeclaration(this.startNode(), this.state.value, true);
-  }
-
-  tsParseExpressionStatement(node, expr) {
-    switch (expr.name) {
-      case "declare":
-        {
-          const declaration = this.tsTryParseDeclare(node);
-
-          if (declaration) {
-            declaration.declare = true;
-            return declaration;
-          }
-
-          break;
-        }
-
-      case "global":
-        if (this.match(types.braceL)) {
-          this.scope.enter(SCOPE_TS_MODULE);
-          this.prodParam.enter(PARAM);
-          const mod = node;
-          mod.global = true;
-          mod.id = expr;
-          mod.body = this.tsParseModuleBlock();
-          this.scope.exit();
-          this.prodParam.exit();
-          return this.finishNode(mod, "TSModuleDeclaration");
-        }
-
-        break;
-
-      default:
-        return this.tsParseDeclaration(node, expr.name, false);
-    }
-  }
-
-  tsParseDeclaration(node, value, next) {
-    switch (value) {
-      case "abstract":
-        if (this.tsCheckLineTerminatorAndMatch(types._class, next)) {
-          const cls = node;
-          cls.abstract = true;
-
-          if (next) {
-            this.next();
-
-            if (!this.match(types._class)) {
-              this.unexpected(null, types._class);
-            }
-          }
-
-          return this.parseClass(cls, true, false);
-        }
-
-        break;
-
-      case "enum":
-        if (next || this.match(types.name)) {
-          if (next) this.next();
-          return this.tsParseEnumDeclaration(node, false);
-        }
-
-        break;
-
-      case "interface":
-        if (this.tsCheckLineTerminatorAndMatch(types.name, next)) {
-          if (next) this.next();
-          return this.tsParseInterfaceDeclaration(node);
-        }
-
-        break;
-
-      case "module":
-        if (next) this.next();
-
-        if (this.match(types.string)) {
-          return this.tsParseAmbientExternalModuleDeclaration(node);
-        } else if (this.tsCheckLineTerminatorAndMatch(types.name, next)) {
-          return this.tsParseModuleOrNamespaceDeclaration(node);
-        }
-
-        break;
-
-      case "namespace":
-        if (this.tsCheckLineTerminatorAndMatch(types.name, next)) {
-          if (next) this.next();
-          return this.tsParseModuleOrNamespaceDeclaration(node);
-        }
-
-        break;
-
-      case "type":
-        if (this.tsCheckLineTerminatorAndMatch(types.name, next)) {
-          if (next) this.next();
-          return this.tsParseTypeAliasDeclaration(node);
-        }
-
-        break;
-    }
-  }
-
-  tsCheckLineTerminatorAndMatch(tokenType, next) {
-    return (next || this.match(tokenType)) && !this.isLineTerminator();
-  }
-
-  tsTryParseGenericAsyncArrowFunction(startPos, startLoc) {
-    if (!this.isRelational("<")) {
-      return undefined;
-    }
-
-    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-    const oldYieldPos = this.state.yieldPos;
-    const oldAwaitPos = this.state.awaitPos;
-    this.state.maybeInArrowParameters = true;
-    this.state.yieldPos = -1;
-    this.state.awaitPos = -1;
-    const res = this.tsTryParseAndCatch(() => {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.typeParameters = this.tsParseTypeParameters();
-      super.parseFunctionParams(node);
-      node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();
-      this.expect(types.arrow);
-      return node;
-    });
-    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-    this.state.yieldPos = oldYieldPos;
-    this.state.awaitPos = oldAwaitPos;
-
-    if (!res) {
-      return undefined;
-    }
-
-    return this.parseArrowExpression(res, null, true);
-  }
-
-  tsParseTypeArguments() {
-    const node = this.startNode();
-    node.params = this.tsInType(() => this.tsInNoContext(() => {
-      this.expectRelational("<");
-      return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this));
-    }));
-    this.state.exprAllowed = false;
-    this.expectRelational(">");
-    return this.finishNode(node, "TSTypeParameterInstantiation");
-  }
-
-  tsIsDeclarationStart() {
-    if (this.match(types.name)) {
-      switch (this.state.value) {
-        case "abstract":
-        case "declare":
-        case "enum":
-        case "interface":
-        case "module":
-        case "namespace":
-        case "type":
-          return true;
-      }
-    }
-
-    return false;
-  }
-
-  isExportDefaultSpecifier() {
-    if (this.tsIsDeclarationStart()) return false;
-    return super.isExportDefaultSpecifier();
-  }
-
-  parseAssignableListItem(allowModifiers, decorators) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    let accessibility;
-    let readonly = false;
-
-    if (allowModifiers) {
-      accessibility = this.parseAccessModifier();
-      readonly = !!this.tsParseModifier(["readonly"]);
-    }
-
-    const left = this.parseMaybeDefault();
-    this.parseAssignableListItemTypes(left);
-    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);
-
-    if (accessibility || readonly) {
-      const pp = this.startNodeAt(startPos, startLoc);
-
-      if (decorators.length) {
-        pp.decorators = decorators;
-      }
-
-      if (accessibility) pp.accessibility = accessibility;
-      if (readonly) pp.readonly = readonly;
-
-      if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") {
-        this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);
-      }
-
-      pp.parameter = elt;
-      return this.finishNode(pp, "TSParameterProperty");
-    }
-
-    if (decorators.length) {
-      left.decorators = decorators;
-    }
-
-    return elt;
-  }
-
-  parseFunctionBodyAndFinish(node, type, isMethod = false) {
-    if (this.match(types.colon)) {
-      node.returnType = this.tsParseTypeOrTypePredicateAnnotation(types.colon);
-    }
-
-    const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" ? "TSDeclareMethod" : undefined;
-
-    if (bodilessType && !this.match(types.braceL) && this.isLineTerminator()) {
-      this.finishNode(node, bodilessType);
-      return;
-    }
-
-    super.parseFunctionBodyAndFinish(node, type, isMethod);
-  }
-
-  registerFunctionStatementId(node) {
-    if (!node.body && node.id) {
-      this.checkLVal(node.id, BIND_TS_AMBIENT, null, "function name");
-    } else {
-      super.registerFunctionStatementId(...arguments);
-    }
-  }
-
-  parseSubscript(base, startPos, startLoc, noCalls, state) {
-    if (!this.hasPrecedingLineBreak() && this.match(types.bang)) {
-      this.state.exprAllowed = false;
-      this.next();
-      const nonNullExpression = this.startNodeAt(startPos, startLoc);
-      nonNullExpression.expression = base;
-      return this.finishNode(nonNullExpression, "TSNonNullExpression");
-    }
-
-    if (this.isRelational("<")) {
-      const result = this.tsTryParseAndCatch(() => {
-        if (!noCalls && this.atPossibleAsyncArrow(base)) {
-          const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startPos, startLoc);
-
-          if (asyncArrowFn) {
-            return asyncArrowFn;
-          }
-        }
-
-        const node = this.startNodeAt(startPos, startLoc);
-        node.callee = base;
-        const typeArguments = this.tsParseTypeArguments();
-
-        if (typeArguments) {
-          if (!noCalls && this.eat(types.parenL)) {
-            node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-            node.typeParameters = typeArguments;
-            return this.finishCallExpression(node, state.optionalChainMember);
-          } else if (this.match(types.backQuote)) {
-            return this.parseTaggedTemplateExpression(startPos, startLoc, base, state, typeArguments);
-          }
-        }
-
-        this.unexpected();
-      });
-      if (result) return result;
-    }
-
-    return super.parseSubscript(base, startPos, startLoc, noCalls, state);
-  }
-
-  parseNewArguments(node) {
-    if (this.isRelational("<")) {
-      const typeParameters = this.tsTryParseAndCatch(() => {
-        const args = this.tsParseTypeArguments();
-        if (!this.match(types.parenL)) this.unexpected();
-        return args;
-      });
-
-      if (typeParameters) {
-        node.typeParameters = typeParameters;
-      }
-    }
-
-    super.parseNewArguments(node);
-  }
-
-  parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn) {
-    if (nonNull(types._in.binop) > minPrec && !this.hasPrecedingLineBreak() && this.isContextual("as")) {
-      const node = this.startNodeAt(leftStartPos, leftStartLoc);
-      node.expression = left;
-
-      const _const = this.tsTryNextParseConstantContext();
-
-      if (_const) {
-        node.typeAnnotation = _const;
-      } else {
-        node.typeAnnotation = this.tsNextThenParseType();
-      }
-
-      this.finishNode(node, "TSAsExpression");
-      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);
-    }
-
-    return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);
-  }
-
-  checkReservedWord(word, startLoc, checkKeywords, isBinding) {}
-
-  checkDuplicateExports() {}
-
-  parseImport(node) {
-    if (this.match(types.name) || this.match(types.star) || this.match(types.braceL)) {
-      const ahead = this.lookahead();
-
-      if (this.match(types.name) && ahead.type === types.eq) {
-        return this.tsParseImportEqualsDeclaration(node);
-      }
-
-      if (this.isContextual("type") && ahead.type !== types.comma && !(ahead.type === types.name && ahead.value === "from")) {
-        node.importKind = "type";
-        this.next();
-      } else {
-        node.importKind = "value";
-      }
-    }
-
-    const importNode = super.parseImport(node);
-
-    if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") {
-      this.raise(importNode.start, "A type-only import can specify a default import or named bindings, but not both.");
-    }
-
-    return importNode;
-  }
-
-  parseExport(node) {
-    if (this.match(types._import)) {
-      this.expect(types._import);
-      return this.tsParseImportEqualsDeclaration(node, true);
-    } else if (this.eat(types.eq)) {
-      const assign = node;
-      assign.expression = this.parseExpression();
-      this.semicolon();
-      return this.finishNode(assign, "TSExportAssignment");
-    } else if (this.eatContextual("as")) {
-      const decl = node;
-      this.expectContextual("namespace");
-      decl.id = this.parseIdentifier();
-      this.semicolon();
-      return this.finishNode(decl, "TSNamespaceExportDeclaration");
-    } else {
-      if (this.isContextual("type") && this.lookahead().type === types.braceL) {
-        this.next();
-        node.exportKind = "type";
-      } else {
-        node.exportKind = "value";
-      }
-
-      return super.parseExport(node);
-    }
-  }
-
-  isAbstractClass() {
-    return this.isContextual("abstract") && this.lookahead().type === types._class;
-  }
-
-  parseExportDefaultExpression() {
-    if (this.isAbstractClass()) {
-      const cls = this.startNode();
-      this.next();
-      this.parseClass(cls, true, true);
-      cls.abstract = true;
-      return cls;
-    }
-
-    if (this.state.value === "interface") {
-      const result = this.tsParseDeclaration(this.startNode(), this.state.value, true);
-      if (result) return result;
-    }
-
-    return super.parseExportDefaultExpression();
-  }
-
-  parseStatementContent(context, topLevel) {
-    if (this.state.type === types._const) {
-      const ahead = this.lookahead();
-
-      if (ahead.type === types.name && ahead.value === "enum") {
-        const node = this.startNode();
-        this.expect(types._const);
-        this.expectContextual("enum");
-        return this.tsParseEnumDeclaration(node, true);
-      }
-    }
-
-    return super.parseStatementContent(context, topLevel);
-  }
-
-  parseAccessModifier() {
-    return this.tsParseModifier(["public", "protected", "private"]);
-  }
-
-  parseClassMember(classBody, member, state, constructorAllowsSuper) {
-    this.tsParseModifiers(member, ["declare"]);
-    const accessibility = this.parseAccessModifier();
-    if (accessibility) member.accessibility = accessibility;
-    this.tsParseModifiers(member, ["declare"]);
-    super.parseClassMember(classBody, member, state, constructorAllowsSuper);
-  }
-
-  parseClassMemberWithIsStatic(classBody, member, state, isStatic, constructorAllowsSuper) {
-    this.tsParseModifiers(member, ["abstract", "readonly", "declare"]);
-    const idx = this.tsTryParseIndexSignature(member);
-
-    if (idx) {
-      classBody.body.push(idx);
-
-      if (member.abstract) {
-        this.raise(member.start, TSErrors.IndexSignatureHasAbstract);
-      }
-
-      if (isStatic) {
-        this.raise(member.start, TSErrors.IndexSignatureHasStatic);
-      }
-
-      if (member.accessibility) {
-        this.raise(member.start, TSErrors.IndexSignatureHasAccessibility, member.accessibility);
-      }
-
-      return;
-    }
-
-    super.parseClassMemberWithIsStatic(classBody, member, state, isStatic, constructorAllowsSuper);
-  }
-
-  parsePostMemberNameModifiers(methodOrProp) {
-    const optional = this.eat(types.question);
-    if (optional) methodOrProp.optional = true;
-
-    if (methodOrProp.readonly && this.match(types.parenL)) {
-      this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);
-    }
-
-    if (methodOrProp.declare && this.match(types.parenL)) {
-      this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);
-    }
-  }
-
-  parseExpressionStatement(node, expr) {
-    const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr) : undefined;
-    return decl || super.parseExpressionStatement(node, expr);
-  }
-
-  shouldParseExportDeclaration() {
-    if (this.tsIsDeclarationStart()) return true;
-    return super.shouldParseExportDeclaration();
-  }
-
-  parseConditional(expr, noIn, startPos, startLoc, refNeedsArrowPos) {
-    if (!refNeedsArrowPos || !this.match(types.question)) {
-      return super.parseConditional(expr, noIn, startPos, startLoc, refNeedsArrowPos);
-    }
-
-    const result = this.tryParse(() => super.parseConditional(expr, noIn, startPos, startLoc));
-
-    if (!result.node) {
-      refNeedsArrowPos.start = result.error.pos || this.state.start;
-      return expr;
-    }
-
-    if (result.error) this.state = result.failState;
-    return result.node;
-  }
-
-  parseParenItem(node, startPos, startLoc) {
-    node = super.parseParenItem(node, startPos, startLoc);
-
-    if (this.eat(types.question)) {
-      node.optional = true;
-      this.resetEndLocation(node);
-    }
-
-    if (this.match(types.colon)) {
-      const typeCastNode = this.startNodeAt(startPos, startLoc);
-      typeCastNode.expression = node;
-      typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();
-      return this.finishNode(typeCastNode, "TSTypeCastExpression");
-    }
-
-    return node;
-  }
-
-  parseExportDeclaration(node) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const isDeclare = this.eatContextual("declare");
-    let declaration;
-
-    if (this.match(types.name)) {
-      declaration = this.tsTryParseExportDeclaration();
-    }
-
-    if (!declaration) {
-      declaration = super.parseExportDeclaration(node);
-    }
-
-    if (declaration && (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare)) {
-      node.exportKind = "type";
-    }
-
-    if (declaration && isDeclare) {
-      this.resetStartLocation(declaration, startPos, startLoc);
-      declaration.declare = true;
-    }
-
-    return declaration;
-  }
-
-  parseClassId(node, isStatement, optionalId) {
-    if ((!isStatement || optionalId) && this.isContextual("implements")) {
-      return;
-    }
-
-    super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS);
-    const typeParameters = this.tsTryParseTypeParameters();
-    if (typeParameters) node.typeParameters = typeParameters;
-  }
-
-  parseClassPropertyAnnotation(node) {
-    if (!node.optional && this.eat(types.bang)) {
-      node.definite = true;
-    }
-
-    const type = this.tsTryParseTypeAnnotation();
-    if (type) node.typeAnnotation = type;
-  }
-
-  parseClassProperty(node) {
-    this.parseClassPropertyAnnotation(node);
-
-    if (node.declare && this.match(types.equal)) {
-      this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);
-    }
-
-    return super.parseClassProperty(node);
-  }
-
-  parseClassPrivateProperty(node) {
-    if (node.abstract) {
-      this.raise(node.start, TSErrors.PrivateElementHasAbstract);
-    }
-
-    if (node.accessibility) {
-      this.raise(node.start, TSErrors.PrivateElementHasAccessibility, node.accessibility);
-    }
-
-    this.parseClassPropertyAnnotation(node);
-    return super.parseClassPrivateProperty(node);
-  }
-
-  pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
-    const typeParameters = this.tsTryParseTypeParameters();
-    if (typeParameters) method.typeParameters = typeParameters;
-    super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);
-  }
-
-  pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
-    const typeParameters = this.tsTryParseTypeParameters();
-    if (typeParameters) method.typeParameters = typeParameters;
-    super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);
-  }
-
-  parseClassSuper(node) {
-    super.parseClassSuper(node);
-
-    if (node.superClass && this.isRelational("<")) {
-      node.superTypeParameters = this.tsParseTypeArguments();
-    }
-
-    if (this.eatContextual("implements")) {
-      node.implements = this.tsParseHeritageClause("implements");
-    }
-  }
-
-  parseObjPropValue(prop, ...args) {
-    const typeParameters = this.tsTryParseTypeParameters();
-    if (typeParameters) prop.typeParameters = typeParameters;
-    super.parseObjPropValue(prop, ...args);
-  }
-
-  parseFunctionParams(node, allowModifiers) {
-    const typeParameters = this.tsTryParseTypeParameters();
-    if (typeParameters) node.typeParameters = typeParameters;
-    super.parseFunctionParams(node, allowModifiers);
-  }
-
-  parseVarId(decl, kind) {
-    super.parseVarId(decl, kind);
-
-    if (decl.id.type === "Identifier" && this.eat(types.bang)) {
-      decl.definite = true;
-    }
-
-    const type = this.tsTryParseTypeAnnotation();
-
-    if (type) {
-      decl.id.typeAnnotation = type;
-      this.resetEndLocation(decl.id);
-    }
-  }
-
-  parseAsyncArrowFromCallExpression(node, call) {
-    if (this.match(types.colon)) {
-      node.returnType = this.tsParseTypeAnnotation();
-    }
-
-    return super.parseAsyncArrowFromCallExpression(node, call);
-  }
-
-  parseMaybeAssign(...args) {
-    let state;
-    let jsx;
-    let typeCast;
-
-    if (this.match(types.jsxTagStart)) {
-      state = this.state.clone();
-      jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);
-      if (!jsx.error) return jsx.node;
-      const {
-        context
-      } = this.state;
-
-      if (context[context.length - 1] === types$1.j_oTag) {
-        context.length -= 2;
-      } else if (context[context.length - 1] === types$1.j_expr) {
-        context.length -= 1;
-      }
-    }
-
-    if (!(jsx && jsx.error) && !this.isRelational("<")) {
-      return super.parseMaybeAssign(...args);
-    }
-
-    let typeParameters;
-    state = state || this.state.clone();
-    const arrow = this.tryParse(abort => {
-      typeParameters = this.tsParseTypeParameters();
-      const expr = super.parseMaybeAssign(...args);
-
-      if (expr.type !== "ArrowFunctionExpression" || expr.extra && expr.extra.parenthesized) {
-        abort();
-      }
-
-      if (typeParameters && typeParameters.params.length !== 0) {
-        this.resetStartLocationFromNode(expr, typeParameters);
-      }
-
-      expr.typeParameters = typeParameters;
-      return expr;
-    }, state);
-    if (!arrow.error && !arrow.aborted) return arrow.node;
-
-    if (!jsx) {
-      assert(!this.hasPlugin("jsx"));
-      typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);
-      if (!typeCast.error) return typeCast.node;
-    }
-
-    if (jsx && jsx.node) {
-      this.state = jsx.failState;
-      return jsx.node;
-    }
-
-    if (arrow.node) {
-      this.state = arrow.failState;
-      return arrow.node;
-    }
-
-    if (typeCast && typeCast.node) {
-      this.state = typeCast.failState;
-      return typeCast.node;
-    }
-
-    if (jsx && jsx.thrown) throw jsx.error;
-    if (arrow.thrown) throw arrow.error;
-    if (typeCast && typeCast.thrown) throw typeCast.error;
-    throw jsx && jsx.error || arrow.error || typeCast && typeCast.error;
-  }
-
-  parseMaybeUnary(refExpressionErrors) {
-    if (!this.hasPlugin("jsx") && this.isRelational("<")) {
-      return this.tsParseTypeAssertion();
-    } else {
-      return super.parseMaybeUnary(refExpressionErrors);
-    }
-  }
-
-  parseArrow(node) {
-    if (this.match(types.colon)) {
-      const result = this.tryParse(abort => {
-        const returnType = this.tsParseTypeOrTypePredicateAnnotation(types.colon);
-        if (this.canInsertSemicolon() || !this.match(types.arrow)) abort();
-        return returnType;
-      });
-      if (result.aborted) return;
-
-      if (!result.thrown) {
-        if (result.error) this.state = result.failState;
-        node.returnType = result.node;
-      }
-    }
-
-    return super.parseArrow(node);
-  }
-
-  parseAssignableListItemTypes(param) {
-    if (this.eat(types.question)) {
-      if (param.type !== "Identifier") {
-        this.raise(param.start, TSErrors.PatternIsOptional);
-      }
-
-      param.optional = true;
-    }
-
-    const type = this.tsTryParseTypeAnnotation();
-    if (type) param.typeAnnotation = type;
-    this.resetEndLocation(param);
-    return param;
-  }
-
-  toAssignable(node) {
-    switch (node.type) {
-      case "TSTypeCastExpression":
-        return super.toAssignable(this.typeCastToParameter(node));
-
-      case "TSParameterProperty":
-        return super.toAssignable(node);
-
-      case "TSAsExpression":
-      case "TSNonNullExpression":
-      case "TSTypeAssertion":
-        node.expression = this.toAssignable(node.expression);
-        return node;
-
-      default:
-        return super.toAssignable(node);
-    }
-  }
-
-  checkLVal(expr, bindingType = BIND_NONE, checkClashes, contextDescription) {
-    switch (expr.type) {
-      case "TSTypeCastExpression":
-        return;
-
-      case "TSParameterProperty":
-        this.checkLVal(expr.parameter, bindingType, checkClashes, "parameter property");
-        return;
-
-      case "TSAsExpression":
-      case "TSNonNullExpression":
-      case "TSTypeAssertion":
-        this.checkLVal(expr.expression, bindingType, checkClashes, contextDescription);
-        return;
-
-      default:
-        super.checkLVal(expr, bindingType, checkClashes, contextDescription);
-        return;
-    }
-  }
-
-  parseBindingAtom() {
-    switch (this.state.type) {
-      case types._this:
-        return this.parseIdentifier(true);
-
-      default:
-        return super.parseBindingAtom();
-    }
-  }
-
-  parseMaybeDecoratorArguments(expr) {
-    if (this.isRelational("<")) {
-      const typeArguments = this.tsParseTypeArguments();
-
-      if (this.match(types.parenL)) {
-        const call = super.parseMaybeDecoratorArguments(expr);
-        call.typeParameters = typeArguments;
-        return call;
-      }
-
-      this.unexpected(this.state.start, types.parenL);
-    }
-
-    return super.parseMaybeDecoratorArguments(expr);
-  }
-
-  isClassMethod() {
-    return this.isRelational("<") || super.isClassMethod();
-  }
-
-  isClassProperty() {
-    return this.match(types.bang) || this.match(types.colon) || super.isClassProperty();
-  }
-
-  parseMaybeDefault(...args) {
-    const node = super.parseMaybeDefault(...args);
-
-    if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {
-      this.raise(node.typeAnnotation.start, TSErrors.TypeAnnotationAfterAssign);
-    }
-
-    return node;
-  }
-
-  getTokenFromCode(code) {
-    if (this.state.inType && (code === 62 || code === 60)) {
-      return this.finishOp(types.relational, 1);
-    } else {
-      return super.getTokenFromCode(code);
-    }
-  }
-
-  toAssignableList(exprList) {
-    for (let i = 0; i < exprList.length; i++) {
-      const expr = exprList[i];
-      if (!expr) continue;
-
-      switch (expr.type) {
-        case "TSTypeCastExpression":
-          exprList[i] = this.typeCastToParameter(expr);
-          break;
-
-        case "TSAsExpression":
-        case "TSTypeAssertion":
-          if (!this.state.maybeInArrowParameters) {
-            exprList[i] = this.typeCastToParameter(expr);
-          } else {
-            this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);
-          }
-
-          break;
-      }
-    }
-
-    return super.toAssignableList(...arguments);
-  }
-
-  typeCastToParameter(node) {
-    node.expression.typeAnnotation = node.typeAnnotation;
-    this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end);
-    return node.expression;
-  }
-
-  toReferencedList(exprList, isInParens) {
-    for (let i = 0; i < exprList.length; i++) {
-      const expr = exprList[i];
-
-      if (expr && expr.type === "TSTypeCastExpression") {
-        this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);
-      }
-    }
-
-    return exprList;
-  }
-
-  shouldParseArrow() {
-    return this.match(types.colon) || super.shouldParseArrow();
-  }
-
-  shouldParseAsyncArrow() {
-    return this.match(types.colon) || super.shouldParseAsyncArrow();
-  }
-
-  canHaveLeadingDecorator() {
-    return super.canHaveLeadingDecorator() || this.isAbstractClass();
-  }
-
-  jsxParseOpeningElementAfterName(node) {
-    if (this.isRelational("<")) {
-      const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArguments());
-      if (typeArguments) node.typeParameters = typeArguments;
-    }
-
-    return super.jsxParseOpeningElementAfterName(node);
-  }
-
-  getGetterSetterExpectedParamCount(method) {
-    const baseCount = super.getGetterSetterExpectedParamCount(method);
-    const firstParam = method.params[0];
-    const hasContextParam = firstParam && firstParam.type === "Identifier" && firstParam.name === "this";
-    return hasContextParam ? baseCount + 1 : baseCount;
-  }
-
-});
-
-types.placeholder = new TokenType("%%", {
-  startsExpr: true
-});
-var placeholders = (superClass => class extends superClass {
-  parsePlaceholder(expectedNode) {
-    if (this.match(types.placeholder)) {
-      const node = this.startNode();
-      this.next();
-      this.assertNoSpace("Unexpected space in placeholder.");
-      node.name = super.parseIdentifier(true);
-      this.assertNoSpace("Unexpected space in placeholder.");
-      this.expect(types.placeholder);
-      return this.finishPlaceholder(node, expectedNode);
-    }
-  }
-
-  finishPlaceholder(node, expectedNode) {
-    const isFinished = !!(node.expectedNode && node.type === "Placeholder");
-    node.expectedNode = expectedNode;
-    return isFinished ? node : this.finishNode(node, "Placeholder");
-  }
-
-  getTokenFromCode(code) {
-    if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) {
-      return this.finishOp(types.placeholder, 2);
-    }
-
-    return super.getTokenFromCode(...arguments);
-  }
-
-  parseExprAtom() {
-    return this.parsePlaceholder("Expression") || super.parseExprAtom(...arguments);
-  }
-
-  parseIdentifier() {
-    return this.parsePlaceholder("Identifier") || super.parseIdentifier(...arguments);
-  }
-
-  checkReservedWord(word) {
-    if (word !== undefined) super.checkReservedWord(...arguments);
-  }
-
-  parseBindingAtom() {
-    return this.parsePlaceholder("Pattern") || super.parseBindingAtom(...arguments);
-  }
-
-  checkLVal(expr) {
-    if (expr.type !== "Placeholder") super.checkLVal(...arguments);
-  }
-
-  toAssignable(node) {
-    if (node && node.type === "Placeholder" && node.expectedNode === "Expression") {
-      node.expectedNode = "Pattern";
-      return node;
-    }
-
-    return super.toAssignable(...arguments);
-  }
-
-  verifyBreakContinue(node) {
-    if (node.label && node.label.type === "Placeholder") return;
-    super.verifyBreakContinue(...arguments);
-  }
-
-  parseExpressionStatement(node, expr) {
-    if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) {
-      return super.parseExpressionStatement(...arguments);
-    }
-
-    if (this.match(types.colon)) {
-      const stmt = node;
-      stmt.label = this.finishPlaceholder(expr, "Identifier");
-      this.next();
-      stmt.body = this.parseStatement("label");
-      return this.finishNode(stmt, "LabeledStatement");
-    }
-
-    this.semicolon();
-    node.name = expr.name;
-    return this.finishPlaceholder(node, "Statement");
-  }
-
-  parseBlock() {
-    return this.parsePlaceholder("BlockStatement") || super.parseBlock(...arguments);
-  }
-
-  parseFunctionId() {
-    return this.parsePlaceholder("Identifier") || super.parseFunctionId(...arguments);
-  }
-
-  parseClass(node, isStatement, optionalId) {
-    const type = isStatement ? "ClassDeclaration" : "ClassExpression";
-    this.next();
-    this.takeDecorators(node);
-    const placeholder = this.parsePlaceholder("Identifier");
-
-    if (placeholder) {
-      if (this.match(types._extends) || this.match(types.placeholder) || this.match(types.braceL)) {
-        node.id = placeholder;
-      } else if (optionalId || !isStatement) {
-        node.id = null;
-        node.body = this.finishPlaceholder(placeholder, "ClassBody");
-        return this.finishNode(node, type);
-      } else {
-        this.unexpected(null, "A class name is required");
-      }
-    } else {
-      this.parseClassId(node, isStatement, optionalId);
-    }
-
-    this.parseClassSuper(node);
-    node.body = this.parsePlaceholder("ClassBody") || this.parseClassBody(!!node.superClass);
-    return this.finishNode(node, type);
-  }
-
-  parseExport(node) {
-    const placeholder = this.parsePlaceholder("Identifier");
-    if (!placeholder) return super.parseExport(...arguments);
-
-    if (!this.isContextual("from") && !this.match(types.comma)) {
-      node.specifiers = [];
-      node.source = null;
-      node.declaration = this.finishPlaceholder(placeholder, "Declaration");
-      return this.finishNode(node, "ExportNamedDeclaration");
-    }
-
-    this.expectPlugin("exportDefaultFrom");
-    const specifier = this.startNode();
-    specifier.exported = placeholder;
-    node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
-    return super.parseExport(node);
-  }
-
-  maybeParseExportDefaultSpecifier(node) {
-    if (node.specifiers && node.specifiers.length > 0) {
-      return true;
-    }
-
-    return super.maybeParseExportDefaultSpecifier(...arguments);
-  }
-
-  checkExport(node) {
-    const {
-      specifiers
-    } = node;
-
-    if (specifiers && specifiers.length) {
-      node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder");
-    }
-
-    super.checkExport(node);
-    node.specifiers = specifiers;
-  }
-
-  parseImport(node) {
-    const placeholder = this.parsePlaceholder("Identifier");
-    if (!placeholder) return super.parseImport(...arguments);
-    node.specifiers = [];
-
-    if (!this.isContextual("from") && !this.match(types.comma)) {
-      node.source = this.finishPlaceholder(placeholder, "StringLiteral");
-      this.semicolon();
-      return this.finishNode(node, "ImportDeclaration");
-    }
-
-    const specifier = this.startNodeAtNode(placeholder);
-    specifier.local = placeholder;
-    this.finishNode(specifier, "ImportDefaultSpecifier");
-    node.specifiers.push(specifier);
-
-    if (this.eat(types.comma)) {
-      const hasStarImport = this.maybeParseStarImportSpecifier(node);
-      if (!hasStarImport) this.parseNamedImportSpecifiers(node);
-    }
-
-    this.expectContextual("from");
-    node.source = this.parseImportSource();
-    this.semicolon();
-    return this.finishNode(node, "ImportDeclaration");
-  }
-
-  parseImportSource() {
-    return this.parsePlaceholder("StringLiteral") || super.parseImportSource(...arguments);
-  }
-
-});
-
-var v8intrinsic = (superClass => class extends superClass {
-  parseV8Intrinsic() {
-    if (this.match(types.modulo)) {
-      const v8IntrinsicStart = this.state.start;
-      const node = this.startNode();
-      this.eat(types.modulo);
-
-      if (this.match(types.name)) {
-        const name = this.parseIdentifierName(this.state.start);
-        const identifier = this.createIdentifier(node, name);
-        identifier.type = "V8IntrinsicIdentifier";
-
-        if (this.match(types.parenL)) {
-          return identifier;
-        }
-      }
-
-      this.unexpected(v8IntrinsicStart);
-    }
-  }
-
-  parseExprAtom() {
-    return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);
-  }
-
-});
-
-function hasPlugin(plugins, name) {
-  return plugins.some(plugin => {
-    if (Array.isArray(plugin)) {
-      return plugin[0] === name;
-    } else {
-      return plugin === name;
-    }
-  });
-}
-function getPluginOption(plugins, name, option) {
-  const plugin = plugins.find(plugin => {
-    if (Array.isArray(plugin)) {
-      return plugin[0] === name;
-    } else {
-      return plugin === name;
-    }
-  });
-
-  if (plugin && Array.isArray(plugin)) {
-    return plugin[1][option];
-  }
-
-  return null;
-}
-const PIPELINE_PROPOSALS = ["minimal", "smart", "fsharp"];
-const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"];
-function validatePlugins(plugins) {
-  if (hasPlugin(plugins, "decorators")) {
-    if (hasPlugin(plugins, "decorators-legacy")) {
-      throw new Error("Cannot use the decorators and decorators-legacy plugin together");
-    }
-
-    const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport");
-
-    if (decoratorsBeforeExport == null) {
-      throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you are migrating from" + " Babylon/Babel 6 or want to use the old decorators proposal, you" + " should use the 'decorators-legacy' plugin instead of 'decorators'.");
-    } else if (typeof decoratorsBeforeExport !== "boolean") {
-      throw new Error("'decoratorsBeforeExport' must be a boolean.");
-    }
-  }
-
-  if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) {
-    throw new Error("Cannot combine flow and typescript plugins.");
-  }
-
-  if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) {
-    throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
-  }
-
-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
-    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
-  }
-
-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
-    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
-  }
-}
-const mixinPlugins = {
-  estree,
-  jsx,
-  flow,
-  typescript,
-  v8intrinsic,
-  placeholders
-};
-const mixinPluginNames = Object.keys(mixinPlugins);
-
-const defaultOptions = {
-  sourceType: "script",
-  sourceFilename: undefined,
-  startLine: 1,
-  allowAwaitOutsideFunction: false,
-  allowReturnOutsideFunction: false,
-  allowImportExportEverywhere: false,
-  allowSuperOutsideMethod: false,
-  allowUndeclaredExports: false,
-  plugins: [],
-  strictMode: null,
-  ranges: false,
-  tokens: false,
-  createParenthesizedExpressions: false,
-  errorRecovery: false
-};
-function getOptions(opts) {
-  const options = {};
-
-  for (let _i = 0, _Object$keys = Object.keys(defaultOptions); _i < _Object$keys.length; _i++) {
-    const key = _Object$keys[_i];
-    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];
-  }
-
-  return options;
-}
-
-class State {
-  constructor() {
-    this.errors = [];
-    this.potentialArrowAt = -1;
-    this.noArrowAt = [];
-    this.noArrowParamsConversionAt = [];
-    this.inParameters = false;
-    this.maybeInArrowParameters = false;
-    this.maybeInAsyncArrowHead = false;
-    this.inPipeline = false;
-    this.inType = false;
-    this.noAnonFunctionType = false;
-    this.inPropertyName = false;
-    this.hasFlowComment = false;
-    this.isIterator = false;
-    this.topicContext = {
-      maxNumOfResolvableTopics: 0,
-      maxTopicIndex: null
-    };
-    this.soloAwait = false;
-    this.inFSharpPipelineDirectBody = false;
-    this.labels = [];
-    this.decoratorStack = [[]];
-    this.yieldPos = -1;
-    this.awaitPos = -1;
-    this.comments = [];
-    this.trailingComments = [];
-    this.leadingComments = [];
-    this.commentStack = [];
-    this.commentPreviousNode = null;
-    this.pos = 0;
-    this.lineStart = 0;
-    this.type = types.eof;
-    this.value = null;
-    this.start = 0;
-    this.end = 0;
-    this.lastTokEndLoc = null;
-    this.lastTokStartLoc = null;
-    this.lastTokStart = 0;
-    this.lastTokEnd = 0;
-    this.context = [types$1.braceStatement];
-    this.exprAllowed = true;
-    this.containsEsc = false;
-    this.octalPositions = [];
-    this.exportedIdentifiers = [];
-    this.tokensLength = 0;
-  }
-
-  init(options) {
-    this.strict = options.strictMode === false ? false : options.sourceType === "module";
-    this.curLine = options.startLine;
-    this.startLoc = this.endLoc = this.curPosition();
-  }
-
-  curPosition() {
-    return new Position(this.curLine, this.pos - this.lineStart);
-  }
-
-  clone(skipArrays) {
-    const state = new State();
-    const keys = Object.keys(this);
-
-    for (let i = 0, length = keys.length; i < length; i++) {
-      const key = keys[i];
-      let val = this[key];
-
-      if (!skipArrays && Array.isArray(val)) {
-        val = val.slice();
-      }
-
-      state[key] = val;
-    }
-
-    return state;
-  }
-
-}
-
-var _isDigit = function isDigit(code) {
-  return code >= 48 && code <= 57;
-};
-const VALID_REGEX_FLAGS = new Set(["g", "m", "s", "i", "y", "u"]);
-const forbiddenNumericSeparatorSiblings = {
-  decBinOct: [46, 66, 69, 79, 95, 98, 101, 111],
-  hex: [46, 88, 95, 120]
-};
-const allowedNumericSeparatorSiblings = {};
-allowedNumericSeparatorSiblings.bin = [48, 49];
-allowedNumericSeparatorSiblings.oct = [...allowedNumericSeparatorSiblings.bin, 50, 51, 52, 53, 54, 55];
-allowedNumericSeparatorSiblings.dec = [...allowedNumericSeparatorSiblings.oct, 56, 57];
-allowedNumericSeparatorSiblings.hex = [...allowedNumericSeparatorSiblings.dec, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102];
-class Token {
-  constructor(state) {
-    this.type = state.type;
-    this.value = state.value;
-    this.start = state.start;
-    this.end = state.end;
-    this.loc = new SourceLocation(state.startLoc, state.endLoc);
-  }
-
-}
-class Tokenizer extends LocationParser {
-  constructor(options, input) {
-    super();
-    this.tokens = [];
-    this.state = new State();
-    this.state.init(options);
-    this.input = input;
-    this.length = input.length;
-    this.isLookahead = false;
-  }
-
-  pushToken(token) {
-    this.tokens.length = this.state.tokensLength;
-    this.tokens.push(token);
-    ++this.state.tokensLength;
-  }
-
-  next() {
-    if (!this.isLookahead) {
-      this.checkKeywordEscapes();
-
-      if (this.options.tokens) {
-        this.pushToken(new Token(this.state));
-      }
-    }
-
-    this.state.lastTokEnd = this.state.end;
-    this.state.lastTokStart = this.state.start;
-    this.state.lastTokEndLoc = this.state.endLoc;
-    this.state.lastTokStartLoc = this.state.startLoc;
-    this.nextToken();
-  }
-
-  eat(type) {
-    if (this.match(type)) {
-      this.next();
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  match(type) {
-    return this.state.type === type;
-  }
-
-  lookahead() {
-    const old = this.state;
-    this.state = old.clone(true);
-    this.isLookahead = true;
-    this.next();
-    this.isLookahead = false;
-    const curr = this.state;
-    this.state = old;
-    return curr;
-  }
-
-  nextTokenStart() {
-    const thisTokEnd = this.state.pos;
-    skipWhiteSpace.lastIndex = thisTokEnd;
-    const skip = skipWhiteSpace.exec(this.input);
-    return thisTokEnd + skip[0].length;
-  }
-
-  lookaheadCharCode() {
-    return this.input.charCodeAt(this.nextTokenStart());
-  }
-
-  setStrict(strict) {
-    this.state.strict = strict;
-    if (!this.match(types.num) && !this.match(types.string)) return;
-    this.state.pos = this.state.start;
-
-    while (this.state.pos < this.state.lineStart) {
-      this.state.lineStart = this.input.lastIndexOf("\n", this.state.lineStart - 2) + 1;
-      --this.state.curLine;
-    }
-
-    this.nextToken();
-  }
-
-  curContext() {
-    return this.state.context[this.state.context.length - 1];
-  }
-
-  nextToken() {
-    const curContext = this.curContext();
-    if (!curContext || !curContext.preserveSpace) this.skipSpace();
-    this.state.octalPositions = [];
-    this.state.start = this.state.pos;
-    this.state.startLoc = this.state.curPosition();
-
-    if (this.state.pos >= this.length) {
-      this.finishToken(types.eof);
-      return;
-    }
-
-    const override = curContext == null ? void 0 : curContext.override;
-
-    if (override) {
-      override(this);
-    } else {
-      this.getTokenFromCode(this.input.codePointAt(this.state.pos));
-    }
-  }
-
-  pushComment(block, text, start, end, startLoc, endLoc) {
-    const comment = {
-      type: block ? "CommentBlock" : "CommentLine",
-      value: text,
-      start: start,
-      end: end,
-      loc: new SourceLocation(startLoc, endLoc)
-    };
-    if (this.options.tokens) this.pushToken(comment);
-    this.state.comments.push(comment);
-    this.addComment(comment);
-  }
-
-  skipBlockComment() {
-    const startLoc = this.state.curPosition();
-    const start = this.state.pos;
-    const end = this.input.indexOf("*/", this.state.pos + 2);
-    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);
-    this.state.pos = end + 2;
-    lineBreakG.lastIndex = start;
-    let match;
-
-    while ((match = lineBreakG.exec(this.input)) && match.index < this.state.pos) {
-      ++this.state.curLine;
-      this.state.lineStart = match.index + match[0].length;
-    }
-
-    if (this.isLookahead) return;
-    this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition());
-  }
-
-  skipLineComment(startSkip) {
-    const start = this.state.pos;
-    const startLoc = this.state.curPosition();
-    let ch = this.input.charCodeAt(this.state.pos += startSkip);
-
-    if (this.state.pos < this.length) {
-      while (!isNewLine(ch) && ++this.state.pos < this.length) {
-        ch = this.input.charCodeAt(this.state.pos);
-      }
-    }
-
-    if (this.isLookahead) return;
-    this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition());
-  }
-
-  skipSpace() {
-    loop: while (this.state.pos < this.length) {
-      const ch = this.input.charCodeAt(this.state.pos);
-
-      switch (ch) {
-        case 32:
-        case 160:
-        case 9:
-          ++this.state.pos;
-          break;
-
-        case 13:
-          if (this.input.charCodeAt(this.state.pos + 1) === 10) {
-            ++this.state.pos;
-          }
-
-        case 10:
-        case 8232:
-        case 8233:
-          ++this.state.pos;
-          ++this.state.curLine;
-          this.state.lineStart = this.state.pos;
-          break;
-
-        case 47:
-          switch (this.input.charCodeAt(this.state.pos + 1)) {
-            case 42:
-              this.skipBlockComment();
-              break;
-
-            case 47:
-              this.skipLineComment(2);
-              break;
-
-            default:
-              break loop;
-          }
-
-          break;
-
-        default:
-          if (isWhitespace(ch)) {
-            ++this.state.pos;
-          } else {
-            break loop;
-          }
-
-      }
-    }
-  }
-
-  finishToken(type, val) {
-    this.state.end = this.state.pos;
-    this.state.endLoc = this.state.curPosition();
-    const prevType = this.state.type;
-    this.state.type = type;
-    this.state.value = val;
-    if (!this.isLookahead) this.updateContext(prevType);
-  }
-
-  readToken_numberSign() {
-    if (this.state.pos === 0 && this.readToken_interpreter()) {
-      return;
-    }
-
-    const nextPos = this.state.pos + 1;
-    const next = this.input.charCodeAt(nextPos);
-
-    if (next >= 48 && next <= 57) {
-      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);
-    }
-
-    if (this.hasPlugin("recordAndTuple") && (next === 123 || next === 91)) {
-      if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") {
-        throw this.raise(this.state.pos, next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType);
-      }
-
-      if (next === 123) {
-        this.finishToken(types.braceHashL);
-      } else {
-        this.finishToken(types.bracketHashL);
-      }
-
-      this.state.pos += 2;
-    } else if (this.hasPlugin("classPrivateProperties") || this.hasPlugin("classPrivateMethods") || this.getPluginOption("pipelineOperator", "proposal") === "smart") {
-      this.finishOp(types.hash, 1);
-    } else {
-      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, "#");
-    }
-  }
-
-  readToken_dot() {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next >= 48 && next <= 57) {
-      this.readNumber(true);
-      return;
-    }
-
-    if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) {
-      this.state.pos += 3;
-      this.finishToken(types.ellipsis);
-    } else {
-      ++this.state.pos;
-      this.finishToken(types.dot);
-    }
-  }
-
-  readToken_slash() {
-    if (this.state.exprAllowed && !this.state.inType) {
-      ++this.state.pos;
-      this.readRegexp();
-      return;
-    }
-
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next === 61) {
-      this.finishOp(types.assign, 2);
-    } else {
-      this.finishOp(types.slash, 1);
-    }
-  }
-
-  readToken_interpreter() {
-    if (this.state.pos !== 0 || this.length < 2) return false;
-    let ch = this.input.charCodeAt(this.state.pos + 1);
-    if (ch !== 33) return false;
-    const start = this.state.pos;
-    this.state.pos += 1;
-
-    while (!isNewLine(ch) && ++this.state.pos < this.length) {
-      ch = this.input.charCodeAt(this.state.pos);
-    }
-
-    const value = this.input.slice(start + 2, this.state.pos);
-    this.finishToken(types.interpreterDirective, value);
-    return true;
-  }
-
-  readToken_mult_modulo(code) {
-    let type = code === 42 ? types.star : types.modulo;
-    let width = 1;
-    let next = this.input.charCodeAt(this.state.pos + 1);
-    const exprAllowed = this.state.exprAllowed;
-
-    if (code === 42 && next === 42) {
-      width++;
-      next = this.input.charCodeAt(this.state.pos + 2);
-      type = types.exponent;
-    }
-
-    if (next === 61 && !exprAllowed) {
-      width++;
-      type = types.assign;
-    }
-
-    this.finishOp(type, width);
-  }
-
-  readToken_pipe_amp(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next === code) {
-      if (this.input.charCodeAt(this.state.pos + 2) === 61) {
-        this.finishOp(types.assign, 3);
-      } else {
-        this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2);
-      }
-
-      return;
-    }
-
-    if (code === 124) {
-      if (next === 62) {
-        this.finishOp(types.pipeline, 2);
-        return;
-      }
-
-      if (this.hasPlugin("recordAndTuple") && next === 125) {
-        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
-          throw this.raise(this.state.pos, Errors.RecordExpressionBarIncorrectEndSyntaxType);
-        }
-
-        this.finishOp(types.braceBarR, 2);
-        return;
-      }
-
-      if (this.hasPlugin("recordAndTuple") && next === 93) {
-        if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
-          throw this.raise(this.state.pos, Errors.TupleExpressionBarIncorrectEndSyntaxType);
-        }
-
-        this.finishOp(types.bracketBarR, 2);
-        return;
-      }
-    }
-
-    if (next === 61) {
-      this.finishOp(types.assign, 2);
-      return;
-    }
-
-    this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1);
-  }
-
-  readToken_caret() {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next === 61) {
-      this.finishOp(types.assign, 2);
-    } else {
-      this.finishOp(types.bitwiseXOR, 1);
-    }
-  }
-
-  readToken_plus_min(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next === code) {
-      if (next === 45 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 62 && (this.state.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos)))) {
-        this.skipLineComment(3);
-        this.skipSpace();
-        this.nextToken();
-        return;
-      }
-
-      this.finishOp(types.incDec, 2);
-      return;
-    }
-
-    if (next === 61) {
-      this.finishOp(types.assign, 2);
-    } else {
-      this.finishOp(types.plusMin, 1);
-    }
-  }
-
-  readToken_lt_gt(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-    let size = 1;
-
-    if (next === code) {
-      size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2;
-
-      if (this.input.charCodeAt(this.state.pos + size) === 61) {
-        this.finishOp(types.assign, size + 1);
-        return;
-      }
-
-      this.finishOp(types.bitShift, size);
-      return;
-    }
-
-    if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) {
-      this.skipLineComment(4);
-      this.skipSpace();
-      this.nextToken();
-      return;
-    }
-
-    if (next === 61) {
-      size = 2;
-    }
-
-    this.finishOp(types.relational, size);
-  }
-
-  readToken_eq_excl(code) {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-
-    if (next === 61) {
-      this.finishOp(types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
-      return;
-    }
-
-    if (code === 61 && next === 62) {
-      this.state.pos += 2;
-      this.finishToken(types.arrow);
-      return;
-    }
-
-    this.finishOp(code === 61 ? types.eq : types.bang, 1);
-  }
-
-  readToken_question() {
-    const next = this.input.charCodeAt(this.state.pos + 1);
-    const next2 = this.input.charCodeAt(this.state.pos + 2);
-
-    if (next === 63 && !this.state.inType) {
-      if (next2 === 61) {
-        this.finishOp(types.assign, 3);
-      } else {
-        this.finishOp(types.nullishCoalescing, 2);
-      }
-    } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) {
-      this.state.pos += 2;
-      this.finishToken(types.questionDot);
-    } else {
-      ++this.state.pos;
-      this.finishToken(types.question);
-    }
-  }
-
-  getTokenFromCode(code) {
-    switch (code) {
-      case 46:
-        this.readToken_dot();
-        return;
-
-      case 40:
-        ++this.state.pos;
-        this.finishToken(types.parenL);
-        return;
-
-      case 41:
-        ++this.state.pos;
-        this.finishToken(types.parenR);
-        return;
-
-      case 59:
-        ++this.state.pos;
-        this.finishToken(types.semi);
-        return;
-
-      case 44:
-        ++this.state.pos;
-        this.finishToken(types.comma);
-        return;
-
-      case 91:
-        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
-          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
-            throw this.raise(this.state.pos, Errors.TupleExpressionBarIncorrectStartSyntaxType);
-          }
-
-          this.finishToken(types.bracketBarL);
-          this.state.pos += 2;
-        } else {
-          ++this.state.pos;
-          this.finishToken(types.bracketL);
-        }
-
-        return;
-
-      case 93:
-        ++this.state.pos;
-        this.finishToken(types.bracketR);
-        return;
-
-      case 123:
-        if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
-          if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
-            throw this.raise(this.state.pos, Errors.RecordExpressionBarIncorrectStartSyntaxType);
-          }
-
-          this.finishToken(types.braceBarL);
-          this.state.pos += 2;
-        } else {
-          ++this.state.pos;
-          this.finishToken(types.braceL);
-        }
-
-        return;
-
-      case 125:
-        ++this.state.pos;
-        this.finishToken(types.braceR);
-        return;
-
-      case 58:
-        if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) {
-          this.finishOp(types.doubleColon, 2);
-        } else {
-          ++this.state.pos;
-          this.finishToken(types.colon);
-        }
-
-        return;
-
-      case 63:
-        this.readToken_question();
-        return;
-
-      case 96:
-        ++this.state.pos;
-        this.finishToken(types.backQuote);
-        return;
-
-      case 48:
-        {
-          const next = this.input.charCodeAt(this.state.pos + 1);
-
-          if (next === 120 || next === 88) {
-            this.readRadixNumber(16);
-            return;
-          }
-
-          if (next === 111 || next === 79) {
-            this.readRadixNumber(8);
-            return;
-          }
-
-          if (next === 98 || next === 66) {
-            this.readRadixNumber(2);
-            return;
-          }
-        }
-
-      case 49:
-      case 50:
-      case 51:
-      case 52:
-      case 53:
-      case 54:
-      case 55:
-      case 56:
-      case 57:
-        this.readNumber(false);
-        return;
-
-      case 34:
-      case 39:
-        this.readString(code);
-        return;
-
-      case 47:
-        this.readToken_slash();
-        return;
-
-      case 37:
-      case 42:
-        this.readToken_mult_modulo(code);
-        return;
-
-      case 124:
-      case 38:
-        this.readToken_pipe_amp(code);
-        return;
-
-      case 94:
-        this.readToken_caret();
-        return;
-
-      case 43:
-      case 45:
-        this.readToken_plus_min(code);
-        return;
-
-      case 60:
-      case 62:
-        this.readToken_lt_gt(code);
-        return;
-
-      case 61:
-      case 33:
-        this.readToken_eq_excl(code);
-        return;
-
-      case 126:
-        this.finishOp(types.tilde, 1);
-        return;
-
-      case 64:
-        ++this.state.pos;
-        this.finishToken(types.at);
-        return;
-
-      case 35:
-        this.readToken_numberSign();
-        return;
-
-      case 92:
-        this.readWord();
-        return;
-
-      default:
-        if (isIdentifierStart(code)) {
-          this.readWord();
-          return;
-        }
-
-    }
-
-    throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, String.fromCodePoint(code));
-  }
-
-  finishOp(type, size) {
-    const str = this.input.slice(this.state.pos, this.state.pos + size);
-    this.state.pos += size;
-    this.finishToken(type, str);
-  }
-
-  readRegexp() {
-    const start = this.state.pos;
-    let escaped, inClass;
-
-    for (;;) {
-      if (this.state.pos >= this.length) {
-        throw this.raise(start, Errors.UnterminatedRegExp);
-      }
-
-      const ch = this.input.charAt(this.state.pos);
-
-      if (lineBreak.test(ch)) {
-        throw this.raise(start, Errors.UnterminatedRegExp);
-      }
-
-      if (escaped) {
-        escaped = false;
-      } else {
-        if (ch === "[") {
-          inClass = true;
-        } else if (ch === "]" && inClass) {
-          inClass = false;
-        } else if (ch === "/" && !inClass) {
-          break;
-        }
-
-        escaped = ch === "\\";
-      }
-
-      ++this.state.pos;
-    }
-
-    const content = this.input.slice(start, this.state.pos);
-    ++this.state.pos;
-    let mods = "";
-
-    while (this.state.pos < this.length) {
-      const char = this.input[this.state.pos];
-      const charCode = this.input.codePointAt(this.state.pos);
-
-      if (VALID_REGEX_FLAGS.has(char)) {
-        if (mods.indexOf(char) > -1) {
-          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);
-        }
-      } else if (isIdentifierChar(charCode) || charCode === 92) {
-        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);
-      } else {
-        break;
-      }
-
-      ++this.state.pos;
-      mods += char;
-    }
-
-    this.finishToken(types.regexp, {
-      pattern: content,
-      flags: mods
-    });
-  }
-
-  readInt(radix, len, forceLen, allowNumSeparator = true) {
-    const start = this.state.pos;
-    const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
-    const allowedSiblings = radix === 16 ? allowedNumericSeparatorSiblings.hex : radix === 10 ? allowedNumericSeparatorSiblings.dec : radix === 8 ? allowedNumericSeparatorSiblings.oct : allowedNumericSeparatorSiblings.bin;
-    let invalid = false;
-    let total = 0;
-
-    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
-      const code = this.input.charCodeAt(this.state.pos);
-      let val;
-
-      if (this.hasPlugin("numericSeparator")) {
-        if (code === 95) {
-          const prev = this.input.charCodeAt(this.state.pos - 1);
-          const next = this.input.charCodeAt(this.state.pos + 1);
-
-          if (allowedSiblings.indexOf(next) === -1) {
-            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);
-          } else if (forbiddenSiblings.indexOf(prev) > -1 || forbiddenSiblings.indexOf(next) > -1 || Number.isNaN(next)) {
-            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);
-          }
-
-          if (!allowNumSeparator) {
-            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);
-          }
-
-          ++this.state.pos;
-          continue;
-        }
-      }
-
-      if (code >= 97) {
-        val = code - 97 + 10;
-      } else if (code >= 65) {
-        val = code - 65 + 10;
-      } else if (_isDigit(code)) {
-        val = code - 48;
-      } else {
-        val = Infinity;
-      }
-
-      if (val >= radix) {
-        if (this.options.errorRecovery && val <= 9) {
-          val = 0;
-          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);
-        } else if (forceLen) {
-          val = 0;
-          invalid = true;
-        } else {
-          break;
-        }
-      }
-
-      ++this.state.pos;
-      total = total * radix + val;
-    }
-
-    if (this.state.pos === start || len != null && this.state.pos - start !== len || invalid) {
-      return null;
-    }
-
-    return total;
-  }
-
-  readRadixNumber(radix) {
-    const start = this.state.pos;
-    let isBigInt = false;
-    this.state.pos += 2;
-    const val = this.readInt(radix);
-
-    if (val == null) {
-      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);
-    }
-
-    if (this.input.charCodeAt(this.state.pos) === 110) {
-      ++this.state.pos;
-      isBigInt = true;
-    }
-
-    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {
-      throw this.raise(this.state.pos, Errors.NumberIdentifier);
-    }
-
-    if (isBigInt) {
-      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, "");
-      this.finishToken(types.bigint, str);
-      return;
-    }
-
-    this.finishToken(types.num, val);
-  }
-
-  readNumber(startsWithDot) {
-    const start = this.state.pos;
-    let isFloat = false;
-    let isBigInt = false;
-    let isNonOctalDecimalInt = false;
-
-    if (!startsWithDot && this.readInt(10) === null) {
-      this.raise(start, Errors.InvalidNumber);
-    }
-
-    let octal = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48;
-
-    if (octal) {
-      if (this.state.strict) {
-        this.raise(start, Errors.StrictOctalLiteral);
-      }
-
-      if (/[89]/.test(this.input.slice(start, this.state.pos))) {
-        octal = false;
-        isNonOctalDecimalInt = true;
-      }
-    }
-
-    let next = this.input.charCodeAt(this.state.pos);
-
-    if (next === 46 && !octal) {
-      ++this.state.pos;
-      this.readInt(10);
-      isFloat = true;
-      next = this.input.charCodeAt(this.state.pos);
-    }
-
-    if ((next === 69 || next === 101) && !octal) {
-      next = this.input.charCodeAt(++this.state.pos);
-
-      if (next === 43 || next === 45) {
-        ++this.state.pos;
-      }
-
-      if (this.readInt(10) === null) this.raise(start, "Invalid number");
-      isFloat = true;
-      next = this.input.charCodeAt(this.state.pos);
-    }
-
-    if (this.hasPlugin("numericSeparator") && (octal || isNonOctalDecimalInt)) {
-      const underscorePos = this.input.slice(start, this.state.pos).indexOf("_");
-
-      if (underscorePos > 0) {
-        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);
-      }
-    }
-
-    if (next === 110) {
-      if (isFloat || octal || isNonOctalDecimalInt) {
-        this.raise(start, "Invalid BigIntLiteral");
-      }
-
-      ++this.state.pos;
-      isBigInt = true;
-    }
-
-    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {
-      throw this.raise(this.state.pos, Errors.NumberIdentifier);
-    }
-
-    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, "");
-
-    if (isBigInt) {
-      this.finishToken(types.bigint, str);
-      return;
-    }
-
-    const val = octal ? parseInt(str, 8) : parseFloat(str);
-    this.finishToken(types.num, val);
-  }
-
-  readCodePoint(throwOnInvalid) {
-    const ch = this.input.charCodeAt(this.state.pos);
-    let code;
-
-    if (ch === 123) {
-      const codePos = ++this.state.pos;
-      code = this.readHexChar(this.input.indexOf("}", this.state.pos) - this.state.pos, true, throwOnInvalid);
-      ++this.state.pos;
-
-      if (code !== null && code > 0x10ffff) {
-        if (throwOnInvalid) {
-          this.raise(codePos, Errors.InvalidCodePoint);
-        } else {
-          return null;
-        }
-      }
-    } else {
-      code = this.readHexChar(4, false, throwOnInvalid);
-    }
-
-    return code;
-  }
-
-  readString(quote) {
-    let out = "",
-        chunkStart = ++this.state.pos;
-
-    for (;;) {
-      if (this.state.pos >= this.length) {
-        throw this.raise(this.state.start, Errors.UnterminatedString);
-      }
-
-      const ch = this.input.charCodeAt(this.state.pos);
-      if (ch === quote) break;
-
-      if (ch === 92) {
-        out += this.input.slice(chunkStart, this.state.pos);
-        out += this.readEscapedChar(false);
-        chunkStart = this.state.pos;
-      } else if (ch === 8232 || ch === 8233) {
-        ++this.state.pos;
-        ++this.state.curLine;
-        this.state.lineStart = this.state.pos;
-      } else if (isNewLine(ch)) {
-        throw this.raise(this.state.start, Errors.UnterminatedString);
-      } else {
-        ++this.state.pos;
-      }
-    }
-
-    out += this.input.slice(chunkStart, this.state.pos++);
-    this.finishToken(types.string, out);
-  }
-
-  readTmplToken() {
-    let out = "",
-        chunkStart = this.state.pos,
-        containsInvalid = false;
-
-    for (;;) {
-      if (this.state.pos >= this.length) {
-        throw this.raise(this.state.start, Errors.UnterminatedTemplate);
-      }
-
-      const ch = this.input.charCodeAt(this.state.pos);
-
-      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) {
-        if (this.state.pos === this.state.start && this.match(types.template)) {
-          if (ch === 36) {
-            this.state.pos += 2;
-            this.finishToken(types.dollarBraceL);
-            return;
-          } else {
-            ++this.state.pos;
-            this.finishToken(types.backQuote);
-            return;
-          }
-        }
-
-        out += this.input.slice(chunkStart, this.state.pos);
-        this.finishToken(types.template, containsInvalid ? null : out);
-        return;
-      }
-
-      if (ch === 92) {
-        out += this.input.slice(chunkStart, this.state.pos);
-        const escaped = this.readEscapedChar(true);
-
-        if (escaped === null) {
-          containsInvalid = true;
-        } else {
-          out += escaped;
-        }
-
-        chunkStart = this.state.pos;
-      } else if (isNewLine(ch)) {
-        out += this.input.slice(chunkStart, this.state.pos);
-        ++this.state.pos;
-
-        switch (ch) {
-          case 13:
-            if (this.input.charCodeAt(this.state.pos) === 10) {
-              ++this.state.pos;
-            }
-
-          case 10:
-            out += "\n";
-            break;
-
-          default:
-            out += String.fromCharCode(ch);
-            break;
-        }
-
-        ++this.state.curLine;
-        this.state.lineStart = this.state.pos;
-        chunkStart = this.state.pos;
-      } else {
-        ++this.state.pos;
-      }
-    }
-  }
-
-  readEscapedChar(inTemplate) {
-    const throwOnInvalid = !inTemplate;
-    const ch = this.input.charCodeAt(++this.state.pos);
-    ++this.state.pos;
-
-    switch (ch) {
-      case 110:
-        return "\n";
-
-      case 114:
-        return "\r";
-
-      case 120:
-        {
-          const code = this.readHexChar(2, false, throwOnInvalid);
-          return code === null ? null : String.fromCharCode(code);
-        }
-
-      case 117:
-        {
-          const code = this.readCodePoint(throwOnInvalid);
-          return code === null ? null : String.fromCodePoint(code);
-        }
-
-      case 116:
-        return "\t";
-
-      case 98:
-        return "\b";
-
-      case 118:
-        return "\u000b";
-
-      case 102:
-        return "\f";
-
-      case 13:
-        if (this.input.charCodeAt(this.state.pos) === 10) {
-          ++this.state.pos;
-        }
-
-      case 10:
-        this.state.lineStart = this.state.pos;
-        ++this.state.curLine;
-
-      case 8232:
-      case 8233:
-        return "";
-
-      case 56:
-      case 57:
-        if (inTemplate) {
-          return null;
-        }
-
-      default:
-        if (ch >= 48 && ch <= 55) {
-          const codePos = this.state.pos - 1;
-          let octalStr = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/)[0];
-          let octal = parseInt(octalStr, 8);
-
-          if (octal > 255) {
-            octalStr = octalStr.slice(0, -1);
-            octal = parseInt(octalStr, 8);
-          }
-
-          this.state.pos += octalStr.length - 1;
-          const next = this.input.charCodeAt(this.state.pos);
-
-          if (octalStr !== "0" || next === 56 || next === 57) {
-            if (inTemplate) {
-              return null;
-            } else if (this.state.strict) {
-              this.raise(codePos, Errors.StrictOctalLiteral);
-            } else {
-              this.state.octalPositions.push(codePos);
-            }
-          }
-
-          return String.fromCharCode(octal);
-        }
-
-        return String.fromCharCode(ch);
-    }
-  }
-
-  readHexChar(len, forceLen, throwOnInvalid) {
-    const codePos = this.state.pos;
-    const n = this.readInt(16, len, forceLen, false);
-
-    if (n === null) {
-      if (throwOnInvalid) {
-        this.raise(codePos, Errors.InvalidEscapeSequence);
-      } else {
-        this.state.pos = codePos - 1;
-      }
-    }
-
-    return n;
-  }
-
-  readWord1() {
-    let word = "";
-    this.state.containsEsc = false;
-    const start = this.state.pos;
-    let chunkStart = this.state.pos;
-
-    while (this.state.pos < this.length) {
-      const ch = this.input.codePointAt(this.state.pos);
-
-      if (isIdentifierChar(ch)) {
-        this.state.pos += ch <= 0xffff ? 1 : 2;
-      } else if (this.state.isIterator && ch === 64) {
-        ++this.state.pos;
-      } else if (ch === 92) {
-        this.state.containsEsc = true;
-        word += this.input.slice(chunkStart, this.state.pos);
-        const escStart = this.state.pos;
-        const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar;
-
-        if (this.input.charCodeAt(++this.state.pos) !== 117) {
-          this.raise(this.state.pos, Errors.MissingUnicodeEscape);
-          continue;
-        }
-
-        ++this.state.pos;
-        const esc = this.readCodePoint(true);
-
-        if (esc !== null) {
-          if (!identifierCheck(esc)) {
-            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);
-          }
-
-          word += String.fromCodePoint(esc);
-        }
-
-        chunkStart = this.state.pos;
-      } else {
-        break;
-      }
-    }
-
-    return word + this.input.slice(chunkStart, this.state.pos);
-  }
-
-  isIterator(word) {
-    return word === "@@iterator" || word === "@@asyncIterator";
-  }
-
-  readWord() {
-    const word = this.readWord1();
-    const type = keywords.get(word) || types.name;
-
-    if (this.state.isIterator && (!this.isIterator(word) || !this.state.inType)) {
-      this.raise(this.state.pos, Errors.InvalidIdentifier, word);
-    }
-
-    this.finishToken(type, word);
-  }
-
-  checkKeywordEscapes() {
-    const kw = this.state.type.keyword;
-
-    if (kw && this.state.containsEsc) {
-      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);
-    }
-  }
-
-  braceIsBlock(prevType) {
-    const parent = this.curContext();
-
-    if (parent === types$1.functionExpression || parent === types$1.functionStatement) {
-      return true;
-    }
-
-    if (prevType === types.colon && (parent === types$1.braceStatement || parent === types$1.braceExpression)) {
-      return !parent.isExpr;
-    }
-
-    if (prevType === types._return || prevType === types.name && this.state.exprAllowed) {
-      return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));
-    }
-
-    if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) {
-      return true;
-    }
-
-    if (prevType === types.braceL) {
-      return parent === types$1.braceStatement;
-    }
-
-    if (prevType === types._var || prevType === types._const || prevType === types.name) {
-      return false;
-    }
-
-    if (prevType === types.relational) {
-      return true;
-    }
-
-    return !this.state.exprAllowed;
-  }
-
-  updateContext(prevType) {
-    const type = this.state.type;
-    let update;
-
-    if (type.keyword && (prevType === types.dot || prevType === types.questionDot)) {
-      this.state.exprAllowed = false;
-    } else if (update = type.updateContext) {
-      update.call(this, prevType);
-    } else {
-      this.state.exprAllowed = type.beforeExpr;
-    }
-  }
-
-}
-
-class UtilParser extends Tokenizer {
-  addExtra(node, key, val) {
-    if (!node) return;
-    const extra = node.extra = node.extra || {};
-    extra[key] = val;
-  }
-
-  isRelational(op) {
-    return this.match(types.relational) && this.state.value === op;
-  }
-
-  isLookaheadRelational(op) {
-    const next = this.nextTokenStart();
-
-    if (this.input.charAt(next) === op) {
-      if (next + 1 === this.input.length) {
-        return true;
-      }
-
-      const afterNext = this.input.charCodeAt(next + 1);
-      return afterNext !== op.charCodeAt(0) && afterNext !== 61;
-    }
-
-    return false;
-  }
-
-  expectRelational(op) {
-    if (this.isRelational(op)) {
-      this.next();
-    } else {
-      this.unexpected(null, types.relational);
-    }
-  }
-
-  isContextual(name) {
-    return this.match(types.name) && this.state.value === name && !this.state.containsEsc;
-  }
-
-  isUnparsedContextual(nameStart, name) {
-    const nameEnd = nameStart + name.length;
-    return this.input.slice(nameStart, nameEnd) === name && (nameEnd === this.input.length || !isIdentifierChar(this.input.charCodeAt(nameEnd)));
-  }
-
-  isLookaheadContextual(name) {
-    const next = this.nextTokenStart();
-    return this.isUnparsedContextual(next, name);
-  }
-
-  eatContextual(name) {
-    return this.isContextual(name) && this.eat(types.name);
-  }
-
-  expectContextual(name, message) {
-    if (!this.eatContextual(name)) this.unexpected(null, message);
-  }
-
-  canInsertSemicolon() {
-    return this.match(types.eof) || this.match(types.braceR) || this.hasPrecedingLineBreak();
-  }
-
-  hasPrecedingLineBreak() {
-    return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start));
-  }
-
-  isLineTerminator() {
-    return this.eat(types.semi) || this.canInsertSemicolon();
-  }
-
-  semicolon() {
-    if (!this.isLineTerminator()) this.unexpected(null, types.semi);
-  }
-
-  expect(type, pos) {
-    this.eat(type) || this.unexpected(pos, type);
-  }
-
-  assertNoSpace(message = "Unexpected space.") {
-    if (this.state.start > this.state.lastTokEnd) {
-      this.raise(this.state.lastTokEnd, message);
-    }
-  }
-
-  unexpected(pos, messageOrType = "Unexpected token") {
-    if (typeof messageOrType !== "string") {
-      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
-    }
-
-    throw this.raise(pos != null ? pos : this.state.start, messageOrType);
-  }
-
-  expectPlugin(name, pos) {
-    if (!this.hasPlugin(name)) {
-      throw this.raiseWithData(pos != null ? pos : this.state.start, {
-        missingPlugin: [name]
-      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
-    }
-
-    return true;
-  }
-
-  expectOnePlugin(names, pos) {
-    if (!names.some(n => this.hasPlugin(n))) {
-      throw this.raiseWithData(pos != null ? pos : this.state.start, {
-        missingPlugin: names
-      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
-    }
-  }
-
-  checkYieldAwaitInDefaultParams() {
-    if (this.state.yieldPos !== -1 && (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)) {
-      this.raise(this.state.yieldPos, "Yield cannot be used as name inside a generator function");
-    }
-
-    if (this.state.awaitPos !== -1) {
-      this.raise(this.state.awaitPos, "Await cannot be used as name inside an async function");
-    }
-  }
-
-  tryParse(fn, oldState = this.state.clone()) {
-    const abortSignal = {
-      node: null
-    };
-
-    try {
-      const node = fn((node = null) => {
-        abortSignal.node = node;
-        throw abortSignal;
-      });
-
-      if (this.state.errors.length > oldState.errors.length) {
-        const failState = this.state;
-        this.state = oldState;
-        return {
-          node,
-          error: failState.errors[oldState.errors.length],
-          thrown: false,
-          aborted: false,
-          failState
-        };
-      }
-
-      return {
-        node,
-        error: null,
-        thrown: false,
-        aborted: false,
-        failState: null
-      };
-    } catch (error) {
-      const failState = this.state;
-      this.state = oldState;
-
-      if (error instanceof SyntaxError) {
-        return {
-          node: null,
-          error,
-          thrown: true,
-          aborted: false,
-          failState
-        };
-      }
-
-      if (error === abortSignal) {
-        return {
-          node: abortSignal.node,
-          error: null,
-          thrown: false,
-          aborted: true,
-          failState
-        };
-      }
-
-      throw error;
-    }
-  }
-
-  checkExpressionErrors(refExpressionErrors, andThrow) {
-    if (!refExpressionErrors) return false;
-    const {
-      shorthandAssign,
-      doubleProto
-    } = refExpressionErrors;
-    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;
-
-    if (shorthandAssign >= 0) {
-      this.unexpected(shorthandAssign);
-    }
-
-    if (doubleProto >= 0) {
-      this.raise(doubleProto, Errors.DuplicateProto);
-    }
-  }
-
-}
-class ExpressionErrors {
-  constructor() {
-    this.shorthandAssign = -1;
-    this.doubleProto = -1;
-  }
-
-}
-
-class Node {
-  constructor(parser, pos, loc) {
-    this.type = "";
-    this.start = pos;
-    this.end = 0;
-    this.loc = new SourceLocation(loc);
-    if (parser && parser.options.ranges) this.range = [pos, 0];
-    if (parser && parser.filename) this.loc.filename = parser.filename;
-  }
-
-  __clone() {
-    const newNode = new Node();
-    const keys = Object.keys(this);
-
-    for (let i = 0, length = keys.length; i < length; i++) {
-      const key = keys[i];
-
-      if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") {
-        newNode[key] = this[key];
-      }
-    }
-
-    return newNode;
-  }
-
-}
-
-class NodeUtils extends UtilParser {
-  startNode() {
-    return new Node(this, this.state.start, this.state.startLoc);
-  }
-
-  startNodeAt(pos, loc) {
-    return new Node(this, pos, loc);
-  }
-
-  startNodeAtNode(type) {
-    return this.startNodeAt(type.start, type.loc.start);
-  }
-
-  finishNode(node, type) {
-    return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc);
-  }
-
-  finishNodeAt(node, type, pos, loc) {
-
-    node.type = type;
-    node.end = pos;
-    node.loc.end = loc;
-    if (this.options.ranges) node.range[1] = pos;
-    this.processComment(node);
-    return node;
-  }
-
-  resetStartLocation(node, start, startLoc) {
-    node.start = start;
-    node.loc.start = startLoc;
-    if (this.options.ranges) node.range[0] = start;
-  }
-
-  resetEndLocation(node, end = this.state.lastTokEnd, endLoc = this.state.lastTokEndLoc) {
-    node.end = end;
-    node.loc.end = endLoc;
-    if (this.options.ranges) node.range[1] = end;
-  }
-
-  resetStartLocationFromNode(node, locationNode) {
-    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);
-  }
-
-}
-
-const unwrapParenthesizedExpression = node => {
-  return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node;
-};
-
-class LValParser extends NodeUtils {
-  toAssignable(node) {
-    var _node$extra, _node$extra3;
-
-    let parenthesized = undefined;
-
-    if (node.type === "ParenthesizedExpression" || ((_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized)) {
-      parenthesized = unwrapParenthesizedExpression(node);
-
-      if (parenthesized.type !== "Identifier" && parenthesized.type !== "MemberExpression") {
-        this.raise(node.start, Errors.InvalidParenthesizedAssignment);
-      }
-    }
-
-    switch (node.type) {
-      case "Identifier":
-      case "ObjectPattern":
-      case "ArrayPattern":
-      case "AssignmentPattern":
-        break;
-
-      case "ObjectExpression":
-        node.type = "ObjectPattern";
-
-        for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) {
-          var _node$extra2;
-
-          const prop = node.properties[i];
-          const isLast = i === last;
-          this.toAssignableObjectExpressionProp(prop, isLast);
-
-          if (isLast && prop.type === "RestElement" && ((_node$extra2 = node.extra) == null ? void 0 : _node$extra2.trailingComma)) {
-            this.raiseRestNotLast(node.extra.trailingComma);
-          }
-        }
-
-        break;
-
-      case "ObjectProperty":
-        this.toAssignable(node.value);
-        break;
-
-      case "SpreadElement":
-        {
-          this.checkToRestConversion(node);
-          node.type = "RestElement";
-          const arg = node.argument;
-          this.toAssignable(arg);
-          break;
-        }
-
-      case "ArrayExpression":
-        node.type = "ArrayPattern";
-        this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingComma);
-        break;
-
-      case "AssignmentExpression":
-        if (node.operator !== "=") {
-          this.raise(node.left.end, Errors.MissingEqInAssignment);
-        }
-
-        node.type = "AssignmentPattern";
-        delete node.operator;
-        this.toAssignable(node.left);
-        break;
-
-      case "ParenthesizedExpression":
-        this.toAssignable(parenthesized);
-        break;
-    }
-
-    return node;
-  }
-
-  toAssignableObjectExpressionProp(prop, isLast) {
-    if (prop.type === "ObjectMethod") {
-      const error = prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod;
-      this.raise(prop.key.start, error);
-    } else if (prop.type === "SpreadElement" && !isLast) {
-      this.raiseRestNotLast(prop.start);
-    } else {
-      this.toAssignable(prop);
-    }
-  }
-
-  toAssignableList(exprList, trailingCommaPos) {
-    let end = exprList.length;
-
-    if (end) {
-      const last = exprList[end - 1];
-
-      if (last && last.type === "RestElement") {
-        --end;
-      } else if (last && last.type === "SpreadElement") {
-        last.type = "RestElement";
-        const arg = last.argument;
-        this.toAssignable(arg);
-
-        if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern" && arg.type !== "ObjectPattern") {
-          this.unexpected(arg.start);
-        }
-
-        if (trailingCommaPos) {
-          this.raiseTrailingCommaAfterRest(trailingCommaPos);
-        }
-
-        --end;
-      }
-    }
-
-    for (let i = 0; i < end; i++) {
-      const elt = exprList[i];
-
-      if (elt) {
-        this.toAssignable(elt);
-
-        if (elt.type === "RestElement") {
-          this.raiseRestNotLast(elt.start);
-        }
-      }
-    }
-
-    return exprList;
-  }
-
-  toReferencedList(exprList, isParenthesizedExpr) {
-    return exprList;
-  }
-
-  toReferencedListDeep(exprList, isParenthesizedExpr) {
-    this.toReferencedList(exprList, isParenthesizedExpr);
-
-    for (let _i = 0; _i < exprList.length; _i++) {
-      const expr = exprList[_i];
-
-      if (expr && expr.type === "ArrayExpression") {
-        this.toReferencedListDeep(expr.elements);
-      }
-    }
-  }
-
-  parseSpread(refExpressionErrors, refNeedsArrowPos) {
-    const node = this.startNode();
-    this.next();
-    node.argument = this.parseMaybeAssign(false, refExpressionErrors, undefined, refNeedsArrowPos);
-    return this.finishNode(node, "SpreadElement");
-  }
-
-  parseRestBinding() {
-    const node = this.startNode();
-    this.next();
-    node.argument = this.parseBindingAtom();
-    return this.finishNode(node, "RestElement");
-  }
-
-  parseBindingAtom() {
-    switch (this.state.type) {
-      case types.bracketL:
-        {
-          const node = this.startNode();
-          this.next();
-          node.elements = this.parseBindingList(types.bracketR, 93, true);
-          return this.finishNode(node, "ArrayPattern");
-        }
-
-      case types.braceL:
-        return this.parseObj(types.braceR, true);
-    }
-
-    return this.parseIdentifier();
-  }
-
-  parseBindingList(close, closeCharCode, allowEmpty, allowModifiers) {
-    const elts = [];
-    let first = true;
-
-    while (!this.eat(close)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma);
-      }
-
-      if (allowEmpty && this.match(types.comma)) {
-        elts.push(null);
-      } else if (this.eat(close)) {
-        break;
-      } else if (this.match(types.ellipsis)) {
-        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));
-        this.checkCommaAfterRest(closeCharCode);
-        this.expect(close);
-        break;
-      } else {
-        const decorators = [];
-
-        if (this.match(types.at) && this.hasPlugin("decorators")) {
-          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);
-        }
-
-        while (this.match(types.at)) {
-          decorators.push(this.parseDecorator());
-        }
-
-        elts.push(this.parseAssignableListItem(allowModifiers, decorators));
-      }
-    }
-
-    return elts;
-  }
-
-  parseAssignableListItem(allowModifiers, decorators) {
-    const left = this.parseMaybeDefault();
-    this.parseAssignableListItemTypes(left);
-    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);
-
-    if (decorators.length) {
-      left.decorators = decorators;
-    }
-
-    return elt;
-  }
-
-  parseAssignableListItemTypes(param) {
-    return param;
-  }
-
-  parseMaybeDefault(startPos, startLoc, left) {
-    startLoc = startLoc || this.state.startLoc;
-    startPos = startPos || this.state.start;
-    left = left || this.parseBindingAtom();
-    if (!this.eat(types.eq)) return left;
-    const node = this.startNodeAt(startPos, startLoc);
-    node.left = left;
-    node.right = this.parseMaybeAssign();
-    return this.finishNode(node, "AssignmentPattern");
-  }
-
-  checkLVal(expr, bindingType = BIND_NONE, checkClashes, contextDescription, disallowLetBinding, strictModeChanged = false) {
-    switch (expr.type) {
-      case "Identifier":
-        if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(expr.name, this.inModule) : isStrictBindOnlyReservedWord(expr.name))) {
-          this.raise(expr.start, bindingType === BIND_NONE ? Errors.StrictEvalArguments : Errors.StrictEvalArgumentsBinding, expr.name);
-        }
-
-        if (checkClashes) {
-          const key = `_${expr.name}`;
-
-          if (checkClashes[key]) {
-            this.raise(expr.start, Errors.ParamDupe);
-          } else {
-            checkClashes[key] = true;
-          }
-        }
-
-        if (disallowLetBinding && expr.name === "let") {
-          this.raise(expr.start, Errors.LetInLexicalBinding);
-        }
-
-        if (!(bindingType & BIND_NONE)) {
-          this.scope.declareName(expr.name, bindingType, expr.start);
-        }
-
-        break;
-
-      case "MemberExpression":
-        if (bindingType !== BIND_NONE) {
-          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);
-        }
-
-        break;
-
-      case "ObjectPattern":
-        for (let _i2 = 0, _expr$properties = expr.properties; _i2 < _expr$properties.length; _i2++) {
-          let prop = _expr$properties[_i2];
-          if (prop.type === "ObjectProperty") prop = prop.value;else if (prop.type === "ObjectMethod") continue;
-          this.checkLVal(prop, bindingType, checkClashes, "object destructuring pattern", disallowLetBinding);
-        }
-
-        break;
-
-      case "ArrayPattern":
-        for (let _i3 = 0, _expr$elements = expr.elements; _i3 < _expr$elements.length; _i3++) {
-          const elem = _expr$elements[_i3];
-
-          if (elem) {
-            this.checkLVal(elem, bindingType, checkClashes, "array destructuring pattern", disallowLetBinding);
-          }
-        }
-
-        break;
-
-      case "AssignmentPattern":
-        this.checkLVal(expr.left, bindingType, checkClashes, "assignment pattern");
-        break;
-
-      case "RestElement":
-        this.checkLVal(expr.argument, bindingType, checkClashes, "rest element");
-        break;
-
-      case "ParenthesizedExpression":
-        this.checkLVal(expr.expression, bindingType, checkClashes, "parenthesized expression");
-        break;
-
-      default:
-        {
-          this.raise(expr.start, bindingType === BIND_NONE ? Errors.InvalidLhs : Errors.InvalidLhsBinding, contextDescription);
-        }
-    }
-  }
-
-  checkToRestConversion(node) {
-    if (node.argument.type !== "Identifier" && node.argument.type !== "MemberExpression") {
-      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);
-    }
-  }
-
-  checkCommaAfterRest(close) {
-    if (this.match(types.comma)) {
-      if (this.lookaheadCharCode() === close) {
-        this.raiseTrailingCommaAfterRest(this.state.start);
-      } else {
-        this.raiseRestNotLast(this.state.start);
-      }
-    }
-  }
-
-  raiseRestNotLast(pos) {
-    throw this.raise(pos, Errors.ElementAfterRest);
-  }
-
-  raiseTrailingCommaAfterRest(pos) {
-    this.raise(pos, Errors.RestTrailingComma);
-  }
-
-}
-
-class ExpressionParser extends LValParser {
-  checkDuplicatedProto(prop, protoRef, refExpressionErrors) {
-    if (prop.type === "SpreadElement" || prop.computed || prop.kind || prop.shorthand) {
-      return;
-    }
-
-    const key = prop.key;
-    const name = key.type === "Identifier" ? key.name : String(key.value);
-
-    if (name === "__proto__") {
-      if (protoRef.used) {
-        if (refExpressionErrors) {
-          if (refExpressionErrors.doubleProto === -1) {
-            refExpressionErrors.doubleProto = key.start;
-          }
-        } else {
-          this.raise(key.start, Errors.DuplicateProto);
-        }
-      }
-
-      protoRef.used = true;
-    }
-  }
-
-  getExpression() {
-    let paramFlags = PARAM;
-
-    if (this.hasPlugin("topLevelAwait") && this.inModule) {
-      paramFlags |= PARAM_AWAIT;
-    }
-
-    this.scope.enter(SCOPE_PROGRAM);
-    this.prodParam.enter(paramFlags);
-    this.nextToken();
-    const expr = this.parseExpression();
-
-    if (!this.match(types.eof)) {
-      this.unexpected();
-    }
-
-    expr.comments = this.state.comments;
-    expr.errors = this.state.errors;
-    return expr;
-  }
-
-  parseExpression(noIn, refExpressionErrors) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);
-
-    if (this.match(types.comma)) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.expressions = [expr];
-
-      while (this.eat(types.comma)) {
-        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));
-      }
-
-      this.toReferencedList(node.expressions);
-      return this.finishNode(node, "SequenceExpression");
-    }
-
-    return expr;
-  }
-
-  parseMaybeAssign(noIn, refExpressionErrors, afterLeftParse, refNeedsArrowPos) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-
-    if (this.isContextual("yield")) {
-      if (this.prodParam.hasYield) {
-        let left = this.parseYield(noIn);
-
-        if (afterLeftParse) {
-          left = afterLeftParse.call(this, left, startPos, startLoc);
-        }
-
-        return left;
-      } else {
-        this.state.exprAllowed = false;
-      }
-    }
-
-    let ownExpressionErrors;
-
-    if (refExpressionErrors) {
-      ownExpressionErrors = false;
-    } else {
-      refExpressionErrors = new ExpressionErrors();
-      ownExpressionErrors = true;
-    }
-
-    if (this.match(types.parenL) || this.match(types.name)) {
-      this.state.potentialArrowAt = this.state.start;
-    }
-
-    let left = this.parseMaybeConditional(noIn, refExpressionErrors, refNeedsArrowPos);
-
-    if (afterLeftParse) {
-      left = afterLeftParse.call(this, left, startPos, startLoc);
-    }
-
-    if (this.state.type.isAssign) {
-      const node = this.startNodeAt(startPos, startLoc);
-      const operator = this.state.value;
-      node.operator = operator;
-
-      if (operator === "??=") {
-        this.expectPlugin("logicalAssignment");
-      }
-
-      if (operator === "||=" || operator === "&&=") {
-        this.expectPlugin("logicalAssignment");
-      }
-
-      if (this.match(types.eq)) {
-        node.left = this.toAssignable(left);
-        refExpressionErrors.doubleProto = -1;
-      } else {
-        node.left = left;
-      }
-
-      if (refExpressionErrors.shorthandAssign >= node.left.start) {
-        refExpressionErrors.shorthandAssign = -1;
-      }
-
-      this.checkLVal(left, undefined, undefined, "assignment expression");
-      this.next();
-      node.right = this.parseMaybeAssign(noIn);
-      return this.finishNode(node, "AssignmentExpression");
-    } else if (ownExpressionErrors) {
-      this.checkExpressionErrors(refExpressionErrors, true);
-    }
-
-    return left;
-  }
-
-  parseMaybeConditional(noIn, refExpressionErrors, refNeedsArrowPos) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const potentialArrowAt = this.state.potentialArrowAt;
-    const expr = this.parseExprOps(noIn, refExpressionErrors);
-
-    if (expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt) {
-      return expr;
-    }
-
-    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;
-    return this.parseConditional(expr, noIn, startPos, startLoc, refNeedsArrowPos);
-  }
-
-  parseConditional(expr, noIn, startPos, startLoc, refNeedsArrowPos) {
-    if (this.eat(types.question)) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.test = expr;
-      node.consequent = this.parseMaybeAssign();
-      this.expect(types.colon);
-      node.alternate = this.parseMaybeAssign(noIn);
-      return this.finishNode(node, "ConditionalExpression");
-    }
-
-    return expr;
-  }
-
-  parseExprOps(noIn, refExpressionErrors) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const potentialArrowAt = this.state.potentialArrowAt;
-    const expr = this.parseMaybeUnary(refExpressionErrors);
-
-    if (expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt) {
-      return expr;
-    }
-
-    if (this.checkExpressionErrors(refExpressionErrors, false)) {
-      return expr;
-    }
-
-    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);
-  }
-
-  parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn) {
-    let prec = this.state.type.binop;
-
-    if (prec != null && (!noIn || !this.match(types._in))) {
-      if (prec > minPrec) {
-        const operator = this.state.value;
-
-        if (operator === "|>" && this.state.inFSharpPipelineDirectBody) {
-          return left;
-        }
-
-        const node = this.startNodeAt(leftStartPos, leftStartLoc);
-        node.left = left;
-        node.operator = operator;
-
-        if (operator === "**" && left.type === "UnaryExpression" && (this.options.createParenthesizedExpressions || !(left.extra && left.extra.parenthesized))) {
-          this.raise(left.argument.start, Errors.UnexpectedTokenUnaryExponentiation);
-        }
-
-        const op = this.state.type;
-        const logical = op === types.logicalOR || op === types.logicalAND;
-        const coalesce = op === types.nullishCoalescing;
-
-        if (op === types.pipeline) {
-          this.expectPlugin("pipelineOperator");
-          this.state.inPipeline = true;
-          this.checkPipelineAtInfixOperator(left, leftStartPos);
-        } else if (coalesce) {
-          prec = types.logicalAND.binop;
-        }
-
-        this.next();
-
-        if (op === types.pipeline && this.getPluginOption("pipelineOperator", "proposal") === "minimal") {
-          if (this.match(types.name) && this.state.value === "await" && this.prodParam.hasAwait) {
-            throw this.raise(this.state.start, Errors.UnexpectedAwaitAfterPipelineBody);
-          }
-        }
-
-        node.right = this.parseExprOpRightExpr(op, prec, noIn);
-        this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression");
-        const nextOp = this.state.type;
-
-        if (coalesce && (nextOp === types.logicalOR || nextOp === types.logicalAND) || logical && nextOp === types.nullishCoalescing) {
-          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);
-        }
-
-        return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn);
-      }
-    }
-
-    return left;
-  }
-
-  parseExprOpRightExpr(op, prec, noIn) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-
-    switch (op) {
-      case types.pipeline:
-        switch (this.getPluginOption("pipelineOperator", "proposal")) {
-          case "smart":
-            return this.withTopicPermittingContext(() => {
-              return this.parseSmartPipelineBody(this.parseExprOpBaseRightExpr(op, prec, noIn), startPos, startLoc);
-            });
-
-          case "fsharp":
-            return this.withSoloAwaitPermittingContext(() => {
-              return this.parseFSharpPipelineBody(prec, noIn);
-            });
-        }
-
-      default:
-        return this.parseExprOpBaseRightExpr(op, prec, noIn);
-    }
-  }
-
-  parseExprOpBaseRightExpr(op, prec, noIn) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    return this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn);
-  }
-
-  parseMaybeUnary(refExpressionErrors) {
-    if (this.isContextual("await") && this.isAwaitAllowed()) {
-      return this.parseAwait();
-    } else if (this.state.type.prefix) {
-      const node = this.startNode();
-      const update = this.match(types.incDec);
-      node.operator = this.state.value;
-      node.prefix = true;
-
-      if (node.operator === "throw") {
-        this.expectPlugin("throwExpressions");
-      }
-
-      this.next();
-      node.argument = this.parseMaybeUnary();
-      this.checkExpressionErrors(refExpressionErrors, true);
-
-      if (update) {
-        this.checkLVal(node.argument, undefined, undefined, "prefix operation");
-      } else if (this.state.strict && node.operator === "delete") {
-        const arg = node.argument;
-
-        if (arg.type === "Identifier") {
-          this.raise(node.start, Errors.StrictDelete);
-        } else if (arg.type === "MemberExpression" && arg.property.type === "PrivateName") {
-          this.raise(node.start, Errors.DeletePrivateField);
-        }
-      }
-
-      return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
-    }
-
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    let expr = this.parseExprSubscripts(refExpressionErrors);
-    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;
-
-    while (this.state.type.postfix && !this.canInsertSemicolon()) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.operator = this.state.value;
-      node.prefix = false;
-      node.argument = expr;
-      this.checkLVal(expr, undefined, undefined, "postfix operation");
-      this.next();
-      expr = this.finishNode(node, "UpdateExpression");
-    }
-
-    return expr;
-  }
-
-  parseExprSubscripts(refExpressionErrors) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    const potentialArrowAt = this.state.potentialArrowAt;
-    const expr = this.parseExprAtom(refExpressionErrors);
-
-    if (expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt) {
-      return expr;
-    }
-
-    return this.parseSubscripts(expr, startPos, startLoc);
-  }
-
-  parseSubscripts(base, startPos, startLoc, noCalls) {
-    const state = {
-      optionalChainMember: false,
-      maybeAsyncArrow: this.atPossibleAsyncArrow(base),
-      stop: false
-    };
-
-    do {
-      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;
-
-      if (state.maybeAsyncArrow) {
-        this.state.maybeInAsyncArrowHead = true;
-      }
-
-      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);
-      state.maybeAsyncArrow = false;
-      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;
-    } while (!state.stop);
-
-    return base;
-  }
-
-  parseSubscript(base, startPos, startLoc, noCalls, state) {
-    if (!noCalls && this.eat(types.doubleColon)) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.object = base;
-      node.callee = this.parseNoCallExpr();
-      state.stop = true;
-      return this.parseSubscripts(this.finishNode(node, "BindExpression"), startPos, startLoc, noCalls);
-    }
-
-    let optional = false;
-
-    if (this.match(types.questionDot)) {
-      state.optionalChainMember = optional = true;
-
-      if (noCalls && this.lookaheadCharCode() === 40) {
-        state.stop = true;
-        return base;
-      }
-
-      this.next();
-    }
-
-    const computed = this.eat(types.bracketL);
-
-    if (optional && !this.match(types.parenL) && !this.match(types.backQuote) || computed || this.eat(types.dot)) {
-      const node = this.startNodeAt(startPos, startLoc);
-      node.object = base;
-      node.property = computed ? this.parseExpression() : optional ? this.parseIdentifier(true) : this.parseMaybePrivateName(true);
-      node.computed = computed;
-
-      if (node.property.type === "PrivateName") {
-        if (node.object.type === "Super") {
-          this.raise(startPos, Errors.SuperPrivateField);
-        }
-
-        this.classScope.usePrivateName(node.property.id.name, node.property.start);
-      }
-
-      if (computed) {
-        this.expect(types.bracketR);
-      }
-
-      if (state.optionalChainMember) {
-        node.optional = optional;
-        return this.finishNode(node, "OptionalMemberExpression");
-      } else {
-        return this.finishNode(node, "MemberExpression");
-      }
-    } else if (!noCalls && this.match(types.parenL)) {
-      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-      const oldYieldPos = this.state.yieldPos;
-      const oldAwaitPos = this.state.awaitPos;
-      this.state.maybeInArrowParameters = true;
-      this.state.yieldPos = -1;
-      this.state.awaitPos = -1;
-      this.next();
-      let node = this.startNodeAt(startPos, startLoc);
-      node.callee = base;
-
-      if (optional) {
-        node.optional = true;
-        node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-      } else {
-        node.arguments = this.parseCallExpressionArguments(types.parenR, state.maybeAsyncArrow, base.type === "Import", base.type !== "Super", node);
-      }
-
-      this.finishCallExpression(node, state.optionalChainMember);
-
-      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {
-        state.stop = true;
-        node = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node);
-        this.checkYieldAwaitInDefaultParams();
-        this.state.yieldPos = oldYieldPos;
-        this.state.awaitPos = oldAwaitPos;
-      } else {
-        this.toReferencedListDeep(node.arguments);
-        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;
-
-        if (!this.isAwaitAllowed() && !oldMaybeInArrowParameters || oldAwaitPos !== -1) {
-          this.state.awaitPos = oldAwaitPos;
-        }
-      }
-
-      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-      return node;
-    } else if (this.match(types.backQuote)) {
-      return this.parseTaggedTemplateExpression(startPos, startLoc, base, state);
-    } else {
-      state.stop = true;
-      return base;
-    }
-  }
-
-  parseTaggedTemplateExpression(startPos, startLoc, base, state, typeArguments) {
-    const node = this.startNodeAt(startPos, startLoc);
-    node.tag = base;
-    node.quasi = this.parseTemplate(true);
-    if (typeArguments) node.typeParameters = typeArguments;
-
-    if (state.optionalChainMember) {
-      this.raise(startPos, Errors.OptionalChainingNoTemplate);
-    }
-
-    return this.finishNode(node, "TaggedTemplateExpression");
-  }
-
-  atPossibleAsyncArrow(base) {
-    return base.type === "Identifier" && base.name === "async" && this.state.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt;
-  }
-
-  finishCallExpression(node, optional) {
-    if (node.callee.type === "Import") {
-      if (node.arguments.length !== 1) {
-        this.raise(node.start, Errors.ImportCallArity);
-      } else {
-        const importArg = node.arguments[0];
-
-        if (importArg && importArg.type === "SpreadElement") {
-          this.raise(importArg.start, Errors.ImportCallSpreadArgument);
-        }
-      }
-    }
-
-    return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression");
-  }
-
-  parseCallExpressionArguments(close, possibleAsyncArrow, dynamicImport, allowPlaceholder, nodeForExtra) {
-    const elts = [];
-    let innerParenStart;
-    let first = true;
-    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-    this.state.inFSharpPipelineDirectBody = false;
-
-    while (!this.eat(close)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma);
-
-        if (this.match(close)) {
-          if (dynamicImport) {
-            this.raise(this.state.lastTokStart, Errors.ImportCallArgumentTrailingComma);
-          }
-
-          if (nodeForExtra) {
-            this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart);
-          }
-
-          this.next();
-          break;
-        }
-      }
-
-      if (this.match(types.parenL) && !innerParenStart) {
-        innerParenStart = this.state.start;
-      }
-
-      elts.push(this.parseExprListItem(false, possibleAsyncArrow ? new ExpressionErrors() : undefined, possibleAsyncArrow ? {
-        start: 0
-      } : undefined, allowPlaceholder));
-    }
-
-    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {
-      this.unexpected();
-    }
-
-    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-    return elts;
-  }
-
-  shouldParseAsyncArrow() {
-    return this.match(types.arrow) && !this.canInsertSemicolon();
-  }
-
-  parseAsyncArrowFromCallExpression(node, call) {
-    var _call$extra;
-
-    this.expect(types.arrow);
-    this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingComma);
-    return node;
-  }
-
-  parseNoCallExpr() {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);
-  }
-
-  parseExprAtom(refExpressionErrors) {
-    if (this.state.type === types.slash) this.readRegexp();
-    const canBeArrow = this.state.potentialArrowAt === this.state.start;
-    let node;
-
-    switch (this.state.type) {
-      case types._super:
-        node = this.startNode();
-        this.next();
-
-        if (this.match(types.parenL) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) {
-          this.raise(node.start, Errors.SuperNotAllowed);
-        } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) {
-          this.raise(node.start, Errors.UnexpectedSuper);
-        }
-
-        if (!this.match(types.parenL) && !this.match(types.bracketL) && !this.match(types.dot)) {
-          this.raise(node.start, Errors.UnsupportedSuper);
-        }
-
-        return this.finishNode(node, "Super");
-
-      case types._import:
-        node = this.startNode();
-        this.next();
-
-        if (this.match(types.dot)) {
-          return this.parseImportMetaProperty(node);
-        }
-
-        if (!this.match(types.parenL)) {
-          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);
-        }
-
-        return this.finishNode(node, "Import");
-
-      case types._this:
-        node = this.startNode();
-        this.next();
-        return this.finishNode(node, "ThisExpression");
-
-      case types.name:
-        {
-          node = this.startNode();
-          const containsEsc = this.state.containsEsc;
-          const id = this.parseIdentifier();
-
-          if (!containsEsc && id.name === "async" && this.match(types._function) && !this.canInsertSemicolon()) {
-            const last = this.state.context.length - 1;
-
-            if (this.state.context[last] !== types$1.functionStatement) {
-              throw new Error("Internal error");
-            }
-
-            this.state.context[last] = types$1.functionExpression;
-            this.next();
-            return this.parseFunction(node, undefined, true);
-          } else if (canBeArrow && !containsEsc && id.name === "async" && this.match(types.name) && !this.canInsertSemicolon()) {
-            const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-            const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;
-            const oldYieldPos = this.state.yieldPos;
-            const oldAwaitPos = this.state.awaitPos;
-            this.state.maybeInArrowParameters = true;
-            this.state.maybeInAsyncArrowHead = true;
-            this.state.yieldPos = -1;
-            this.state.awaitPos = -1;
-            const params = [this.parseIdentifier()];
-            this.expect(types.arrow);
-            this.checkYieldAwaitInDefaultParams();
-            this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-            this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;
-            this.state.yieldPos = oldYieldPos;
-            this.state.awaitPos = oldAwaitPos;
-            this.parseArrowExpression(node, params, true);
-            return node;
-          }
-
-          if (canBeArrow && this.match(types.arrow) && !this.canInsertSemicolon()) {
-            this.next();
-            this.parseArrowExpression(node, [id], false);
-            return node;
-          }
-
-          return id;
-        }
-
-      case types._do:
-        {
-          this.expectPlugin("doExpressions");
-          const node = this.startNode();
-          this.next();
-          const oldLabels = this.state.labels;
-          this.state.labels = [];
-          node.body = this.parseBlock();
-          this.state.labels = oldLabels;
-          return this.finishNode(node, "DoExpression");
-        }
-
-      case types.regexp:
-        {
-          const value = this.state.value;
-          node = this.parseLiteral(value.value, "RegExpLiteral");
-          node.pattern = value.pattern;
-          node.flags = value.flags;
-          return node;
-        }
-
-      case types.num:
-        return this.parseLiteral(this.state.value, "NumericLiteral");
-
-      case types.bigint:
-        return this.parseLiteral(this.state.value, "BigIntLiteral");
-
-      case types.string:
-        return this.parseLiteral(this.state.value, "StringLiteral");
-
-      case types._null:
-        node = this.startNode();
-        this.next();
-        return this.finishNode(node, "NullLiteral");
-
-      case types._true:
-      case types._false:
-        return this.parseBooleanLiteral();
-
-      case types.parenL:
-        return this.parseParenAndDistinguishExpression(canBeArrow);
-
-      case types.bracketBarL:
-      case types.bracketHashL:
-        {
-          this.expectPlugin("recordAndTuple");
-          const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-          const close = this.state.type === types.bracketBarL ? types.bracketBarR : types.bracketR;
-          this.state.inFSharpPipelineDirectBody = false;
-          node = this.startNode();
-          this.next();
-          node.elements = this.parseExprList(close, true, refExpressionErrors, node);
-          this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-          return this.finishNode(node, "TupleExpression");
-        }
-
-      case types.bracketL:
-        {
-          const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-          this.state.inFSharpPipelineDirectBody = false;
-          node = this.startNode();
-          this.next();
-          node.elements = this.parseExprList(types.bracketR, true, refExpressionErrors, node);
-
-          if (!this.state.maybeInArrowParameters) {
-            this.toReferencedList(node.elements);
-          }
-
-          this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-          return this.finishNode(node, "ArrayExpression");
-        }
-
-      case types.braceBarL:
-      case types.braceHashL:
-        {
-          this.expectPlugin("recordAndTuple");
-          const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-          const close = this.state.type === types.braceBarL ? types.braceBarR : types.braceR;
-          this.state.inFSharpPipelineDirectBody = false;
-          const ret = this.parseObj(close, false, true, refExpressionErrors);
-          this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-          return ret;
-        }
-
-      case types.braceL:
-        {
-          const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-          this.state.inFSharpPipelineDirectBody = false;
-          const ret = this.parseObj(types.braceR, false, false, refExpressionErrors);
-          this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-          return ret;
-        }
-
-      case types._function:
-        return this.parseFunctionExpression();
-
-      case types.at:
-        this.parseDecorators();
-
-      case types._class:
-        node = this.startNode();
-        this.takeDecorators(node);
-        return this.parseClass(node, false);
-
-      case types._new:
-        return this.parseNew();
-
-      case types.backQuote:
-        return this.parseTemplate(false);
-
-      case types.doubleColon:
-        {
-          node = this.startNode();
-          this.next();
-          node.object = null;
-          const callee = node.callee = this.parseNoCallExpr();
-
-          if (callee.type === "MemberExpression") {
-            return this.finishNode(node, "BindExpression");
-          } else {
-            throw this.raise(callee.start, Errors.UnsupportedBind);
-          }
-        }
-
-      case types.hash:
-        {
-          if (this.state.inPipeline) {
-            node = this.startNode();
-
-            if (this.getPluginOption("pipelineOperator", "proposal") !== "smart") {
-              this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);
-            }
-
-            this.next();
-
-            if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {
-              this.raise(node.start, Errors.PrimaryTopicNotAllowed);
-            }
-
-            this.registerTopicReference();
-            return this.finishNode(node, "PipelinePrimaryTopicReference");
-          }
-        }
-
-      default:
-        throw this.unexpected();
-    }
-  }
-
-  parseBooleanLiteral() {
-    const node = this.startNode();
-    node.value = this.match(types._true);
-    this.next();
-    return this.finishNode(node, "BooleanLiteral");
-  }
-
-  parseMaybePrivateName(isPrivateNameAllowed) {
-    const isPrivate = this.match(types.hash);
-
-    if (isPrivate) {
-      this.expectOnePlugin(["classPrivateProperties", "classPrivateMethods"]);
-
-      if (!isPrivateNameAllowed) {
-        this.raise(this.state.pos, Errors.UnexpectedPrivateField);
-      }
-
-      const node = this.startNode();
-      this.next();
-      this.assertNoSpace("Unexpected space between # and identifier");
-      node.id = this.parseIdentifier(true);
-      return this.finishNode(node, "PrivateName");
-    } else {
-      return this.parseIdentifier(true);
-    }
-  }
-
-  parseFunctionExpression() {
-    const node = this.startNode();
-    let meta = this.startNode();
-    this.next();
-    meta = this.createIdentifier(meta, "function");
-
-    if (this.prodParam.hasYield && this.eat(types.dot)) {
-      return this.parseMetaProperty(node, meta, "sent");
-    }
-
-    return this.parseFunction(node);
-  }
-
-  parseMetaProperty(node, meta, propertyName) {
-    node.meta = meta;
-
-    if (meta.name === "function" && propertyName === "sent") {
-      if (this.isContextual(propertyName)) {
-        this.expectPlugin("functionSent");
-      } else if (!this.hasPlugin("functionSent")) {
-        this.unexpected();
-      }
-    }
-
-    const containsEsc = this.state.containsEsc;
-    node.property = this.parseIdentifier(true);
-
-    if (node.property.name !== propertyName || containsEsc) {
-      this.raise(node.property.start, Errors.UnsupportedMetaProperty, meta.name, propertyName);
-    }
-
-    return this.finishNode(node, "MetaProperty");
-  }
-
-  parseImportMetaProperty(node) {
-    const id = this.createIdentifier(this.startNodeAtNode(node), "import");
-    this.expect(types.dot);
-
-    if (this.isContextual("meta")) {
-      this.expectPlugin("importMeta");
-
-      if (!this.inModule) {
-        this.raiseWithData(id.start, {
-          code: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"
-        }, Errors.ImportMetaOutsideModule);
-      }
-
-      this.sawUnambiguousESM = true;
-    } else if (!this.hasPlugin("importMeta")) {
-      this.raise(id.start, Errors.ImportCallArityLtOne);
-    }
-
-    return this.parseMetaProperty(node, id, "meta");
-  }
-
-  parseLiteral(value, type, startPos, startLoc) {
-    startPos = startPos || this.state.start;
-    startLoc = startLoc || this.state.startLoc;
-    const node = this.startNodeAt(startPos, startLoc);
-    this.addExtra(node, "rawValue", value);
-    this.addExtra(node, "raw", this.input.slice(startPos, this.state.end));
-    node.value = value;
-    this.next();
-    return this.finishNode(node, type);
-  }
-
-  parseParenAndDistinguishExpression(canBeArrow) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    let val;
-    this.expect(types.parenL);
-    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-    const oldYieldPos = this.state.yieldPos;
-    const oldAwaitPos = this.state.awaitPos;
-    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-    this.state.maybeInArrowParameters = true;
-    this.state.yieldPos = -1;
-    this.state.awaitPos = -1;
-    this.state.inFSharpPipelineDirectBody = false;
-    const innerStartPos = this.state.start;
-    const innerStartLoc = this.state.startLoc;
-    const exprList = [];
-    const refExpressionErrors = new ExpressionErrors();
-    const refNeedsArrowPos = {
-      start: 0
-    };
-    let first = true;
-    let spreadStart;
-    let optionalCommaStart;
-
-    while (!this.match(types.parenR)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma, refNeedsArrowPos.start || null);
-
-        if (this.match(types.parenR)) {
-          optionalCommaStart = this.state.start;
-          break;
-        }
-      }
-
-      if (this.match(types.ellipsis)) {
-        const spreadNodeStartPos = this.state.start;
-        const spreadNodeStartLoc = this.state.startLoc;
-        spreadStart = this.state.start;
-        exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartPos, spreadNodeStartLoc));
-        this.checkCommaAfterRest(41);
-        break;
-      } else {
-        exprList.push(this.parseMaybeAssign(false, refExpressionErrors, this.parseParenItem, refNeedsArrowPos));
-      }
-    }
-
-    const innerEndPos = this.state.start;
-    const innerEndLoc = this.state.startLoc;
-    this.expect(types.parenR);
-    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-    let arrowNode = this.startNodeAt(startPos, startLoc);
-
-    if (canBeArrow && this.shouldParseArrow() && (arrowNode = this.parseArrow(arrowNode))) {
-      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {
-        this.state.awaitPos = oldAwaitPos;
-      }
-
-      this.checkYieldAwaitInDefaultParams();
-      this.state.yieldPos = oldYieldPos;
-      this.state.awaitPos = oldAwaitPos;
-
-      for (let _i = 0; _i < exprList.length; _i++) {
-        const param = exprList[_i];
-
-        if (param.extra && param.extra.parenthesized) {
-          this.unexpected(param.extra.parenStart);
-        }
-      }
-
-      this.parseArrowExpression(arrowNode, exprList, false);
-      return arrowNode;
-    }
-
-    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;
-    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;
-
-    if (!exprList.length) {
-      this.unexpected(this.state.lastTokStart);
-    }
-
-    if (optionalCommaStart) this.unexpected(optionalCommaStart);
-    if (spreadStart) this.unexpected(spreadStart);
-    this.checkExpressionErrors(refExpressionErrors, true);
-    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);
-    this.toReferencedListDeep(exprList, true);
-
-    if (exprList.length > 1) {
-      val = this.startNodeAt(innerStartPos, innerStartLoc);
-      val.expressions = exprList;
-      this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc);
-    } else {
-      val = exprList[0];
-    }
-
-    if (!this.options.createParenthesizedExpressions) {
-      this.addExtra(val, "parenthesized", true);
-      this.addExtra(val, "parenStart", startPos);
-      return val;
-    }
-
-    const parenExpression = this.startNodeAt(startPos, startLoc);
-    parenExpression.expression = val;
-    this.finishNode(parenExpression, "ParenthesizedExpression");
-    return parenExpression;
-  }
-
-  shouldParseArrow() {
-    return !this.canInsertSemicolon();
-  }
-
-  parseArrow(node) {
-    if (this.eat(types.arrow)) {
-      return node;
-    }
-  }
-
-  parseParenItem(node, startPos, startLoc) {
-    return node;
-  }
-
-  parseNew() {
-    const node = this.startNode();
-    let meta = this.startNode();
-    this.next();
-    meta = this.createIdentifier(meta, "new");
-
-    if (this.eat(types.dot)) {
-      const metaProp = this.parseMetaProperty(node, meta, "target");
-
-      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {
-        let error = Errors.UnexpectedNewTarget;
-
-        if (this.hasPlugin("classProperties")) {
-          error += " or class properties";
-        }
-
-        this.raise(metaProp.start, error);
-      }
-
-      return metaProp;
-    }
-
-    node.callee = this.parseNoCallExpr();
-
-    if (node.callee.type === "Import") {
-      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);
-    } else if (node.callee.type === "OptionalMemberExpression" || node.callee.type === "OptionalCallExpression") {
-      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);
-    } else if (this.eat(types.questionDot)) {
-      this.raise(this.state.start, Errors.OptionalChainingNoNew);
-    }
-
-    this.parseNewArguments(node);
-    return this.finishNode(node, "NewExpression");
-  }
-
-  parseNewArguments(node) {
-    if (this.eat(types.parenL)) {
-      const args = this.parseExprList(types.parenR);
-      this.toReferencedList(args);
-      node.arguments = args;
-    } else {
-      node.arguments = [];
-    }
-  }
-
-  parseTemplateElement(isTagged) {
-    const elem = this.startNode();
-
-    if (this.state.value === null) {
-      if (!isTagged) {
-        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);
-      }
-    }
-
-    elem.value = {
-      raw: this.input.slice(this.state.start, this.state.end).replace(/\r\n?/g, "\n"),
-      cooked: this.state.value
-    };
-    this.next();
-    elem.tail = this.match(types.backQuote);
-    return this.finishNode(elem, "TemplateElement");
-  }
-
-  parseTemplate(isTagged) {
-    const node = this.startNode();
-    this.next();
-    node.expressions = [];
-    let curElt = this.parseTemplateElement(isTagged);
-    node.quasis = [curElt];
-
-    while (!curElt.tail) {
-      this.expect(types.dollarBraceL);
-      node.expressions.push(this.parseExpression());
-      this.expect(types.braceR);
-      node.quasis.push(curElt = this.parseTemplateElement(isTagged));
-    }
-
-    this.next();
-    return this.finishNode(node, "TemplateLiteral");
-  }
-
-  parseObj(close, isPattern, isRecord, refExpressionErrors) {
-    const propHash = Object.create(null);
-    let first = true;
-    const node = this.startNode();
-    node.properties = [];
-    this.next();
-
-    while (!this.eat(close)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma);
-
-        if (this.match(close)) {
-          this.addExtra(node, "trailingComma", this.state.lastTokStart);
-          this.next();
-          break;
-        }
-      }
-
-      const prop = this.parseObjectMember(isPattern, refExpressionErrors);
-
-      if (!isPattern) {
-        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);
-      }
-
-      if (prop.shorthand) {
-        this.addExtra(prop, "shorthand", true);
-      }
-
-      node.properties.push(prop);
-    }
-
-    let type = "ObjectExpression";
-
-    if (isPattern) {
-      type = "ObjectPattern";
-    } else if (isRecord) {
-      type = "RecordExpression";
-    }
-
-    return this.finishNode(node, type);
-  }
-
-  isAsyncProp(prop) {
-    return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.match(types.name) || this.match(types.num) || this.match(types.string) || this.match(types.bracketL) || this.state.type.keyword || this.match(types.star)) && !this.hasPrecedingLineBreak();
-  }
-
-  parseObjectMember(isPattern, refExpressionErrors) {
-    let decorators = [];
-
-    if (this.match(types.at)) {
-      if (this.hasPlugin("decorators")) {
-        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);
-      }
-
-      while (this.match(types.at)) {
-        decorators.push(this.parseDecorator());
-      }
-    }
-
-    const prop = this.startNode();
-    let isGenerator = false;
-    let isAsync = false;
-    let startPos;
-    let startLoc;
-
-    if (this.match(types.ellipsis)) {
-      if (decorators.length) this.unexpected();
-
-      if (isPattern) {
-        this.next();
-        prop.argument = this.parseIdentifier();
-        this.checkCommaAfterRest(125);
-        return this.finishNode(prop, "RestElement");
-      }
-
-      return this.parseSpread();
-    }
-
-    if (decorators.length) {
-      prop.decorators = decorators;
-      decorators = [];
-    }
-
-    prop.method = false;
-
-    if (isPattern || refExpressionErrors) {
-      startPos = this.state.start;
-      startLoc = this.state.startLoc;
-    }
-
-    if (!isPattern) {
-      isGenerator = this.eat(types.star);
-    }
-
-    const containsEsc = this.state.containsEsc;
-    this.parsePropertyName(prop, false);
-
-    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {
-      isAsync = true;
-      isGenerator = this.eat(types.star);
-      this.parsePropertyName(prop, false);
-    } else {
-      isAsync = false;
-    }
-
-    this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refExpressionErrors, containsEsc);
-    return prop;
-  }
-
-  isGetterOrSetterMethod(prop, isPattern) {
-    return !isPattern && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (this.match(types.string) || this.match(types.num) || this.match(types.bracketL) || this.match(types.name) || !!this.state.type.keyword);
-  }
-
-  getGetterSetterExpectedParamCount(method) {
-    return method.kind === "get" ? 0 : 1;
-  }
-
-  checkGetterSetterParams(method) {
-    const paramCount = this.getGetterSetterExpectedParamCount(method);
-    const start = method.start;
-
-    if (method.params.length !== paramCount) {
-      if (method.kind === "get") {
-        this.raise(start, Errors.BadGetterArity);
-      } else {
-        this.raise(start, Errors.BadSetterArity);
-      }
-    }
-
-    if (method.kind === "set" && method.params[method.params.length - 1].type === "RestElement") {
-      this.raise(start, Errors.BadSetterRestParameter);
-    }
-  }
-
-  parseObjectMethod(prop, isGenerator, isAsync, isPattern, containsEsc) {
-    if (isAsync || isGenerator || this.match(types.parenL)) {
-      if (isPattern) this.unexpected();
-      prop.kind = "method";
-      prop.method = true;
-      return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod");
-    }
-
-    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {
-      if (isGenerator || isAsync) this.unexpected();
-      prop.kind = prop.key.name;
-      this.parsePropertyName(prop, false);
-      this.parseMethod(prop, false, false, false, false, "ObjectMethod");
-      this.checkGetterSetterParams(prop);
-      return prop;
-    }
-  }
-
-  parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) {
-    prop.shorthand = false;
-
-    if (this.eat(types.colon)) {
-      prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refExpressionErrors);
-      return this.finishNode(prop, "ObjectProperty");
-    }
-
-    if (!prop.computed && prop.key.type === "Identifier") {
-      this.checkReservedWord(prop.key.name, prop.key.start, true, true);
-
-      if (isPattern) {
-        prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());
-      } else if (this.match(types.eq) && refExpressionErrors) {
-        if (refExpressionErrors.shorthandAssign === -1) {
-          refExpressionErrors.shorthandAssign = this.state.start;
-        }
-
-        prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());
-      } else {
-        prop.value = prop.key.__clone();
-      }
-
-      prop.shorthand = true;
-      return this.finishNode(prop, "ObjectProperty");
-    }
-  }
-
-  parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refExpressionErrors, containsEsc) {
-    const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, containsEsc) || this.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors);
-    if (!node) this.unexpected();
-    return node;
-  }
-
-  parsePropertyName(prop, isPrivateNameAllowed) {
-    if (this.eat(types.bracketL)) {
-      prop.computed = true;
-      prop.key = this.parseMaybeAssign();
-      this.expect(types.bracketR);
-    } else {
-      const oldInPropertyName = this.state.inPropertyName;
-      this.state.inPropertyName = true;
-      prop.key = this.match(types.num) || this.match(types.string) || this.match(types.bigint) ? this.parseExprAtom() : this.parseMaybePrivateName(isPrivateNameAllowed);
-
-      if (prop.key.type !== "PrivateName") {
-        prop.computed = false;
-      }
-
-      this.state.inPropertyName = oldInPropertyName;
-    }
-
-    return prop.key;
-  }
-
-  initFunction(node, isAsync) {
-    node.id = null;
-    node.generator = false;
-    node.async = !!isAsync;
-  }
-
-  parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {
-    const oldYieldPos = this.state.yieldPos;
-    const oldAwaitPos = this.state.awaitPos;
-    this.state.yieldPos = -1;
-    this.state.awaitPos = -1;
-    this.initFunction(node, isAsync);
-    node.generator = !!isGenerator;
-    const allowModifiers = isConstructor;
-    this.scope.enter(SCOPE_FUNCTION | SCOPE_SUPER | (inClassScope ? SCOPE_CLASS : 0) | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
-    this.prodParam.enter(functionFlags(isAsync, node.generator));
-    this.parseFunctionParams(node, allowModifiers);
-    this.parseFunctionBodyAndFinish(node, type, true);
-    this.prodParam.exit();
-    this.scope.exit();
-    this.state.yieldPos = oldYieldPos;
-    this.state.awaitPos = oldAwaitPos;
-    return node;
-  }
-
-  parseArrowExpression(node, params, isAsync, trailingCommaPos) {
-    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);
-    this.prodParam.enter(functionFlags(isAsync, false));
-    this.initFunction(node, isAsync);
-    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-    const oldYieldPos = this.state.yieldPos;
-    const oldAwaitPos = this.state.awaitPos;
-
-    if (params) {
-      this.state.maybeInArrowParameters = true;
-      this.setArrowFunctionParameters(node, params, trailingCommaPos);
-    }
-
-    this.state.maybeInArrowParameters = false;
-    this.state.yieldPos = -1;
-    this.state.awaitPos = -1;
-    this.parseFunctionBody(node, true);
-    this.prodParam.exit();
-    this.scope.exit();
-    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-    this.state.yieldPos = oldYieldPos;
-    this.state.awaitPos = oldAwaitPos;
-    return this.finishNode(node, "ArrowFunctionExpression");
-  }
-
-  setArrowFunctionParameters(node, params, trailingCommaPos) {
-    node.params = this.toAssignableList(params, trailingCommaPos);
-  }
-
-  parseFunctionBodyAndFinish(node, type, isMethod = false) {
-    this.parseFunctionBody(node, false, isMethod);
-    this.finishNode(node, type);
-  }
-
-  parseFunctionBody(node, allowExpression, isMethod = false) {
-    const isExpression = allowExpression && !this.match(types.braceL);
-    const oldInParameters = this.state.inParameters;
-    this.state.inParameters = false;
-
-    if (isExpression) {
-      node.body = this.parseMaybeAssign();
-      this.checkParams(node, false, allowExpression, false);
-    } else {
-      const oldStrict = this.state.strict;
-      const oldLabels = this.state.labels;
-      this.state.labels = [];
-      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);
-      node.body = this.parseBlock(true, false, hasStrictModeDirective => {
-        const nonSimple = !this.isSimpleParamList(node.params);
-
-        if (hasStrictModeDirective && nonSimple) {
-          const errorPos = (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.end : node.start;
-          this.raise(errorPos, Errors.IllegalLanguageModeDirective);
-        }
-
-        const strictModeChanged = !oldStrict && this.state.strict;
-        this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged);
-
-        if (this.state.strict && node.id) {
-          this.checkLVal(node.id, BIND_OUTSIDE, undefined, "function name", undefined, strictModeChanged);
-        }
-      });
-      this.prodParam.exit();
-      this.state.labels = oldLabels;
-    }
-
-    this.state.inParameters = oldInParameters;
-  }
-
-  isSimpleParamList(params) {
-    for (let i = 0, len = params.length; i < len; i++) {
-      if (params[i].type !== "Identifier") return false;
-    }
-
-    return true;
-  }
-
-  checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {
-    const nameHash = Object.create(null);
-
-    for (let i = 0; i < node.params.length; i++) {
-      this.checkLVal(node.params[i], BIND_VAR, allowDuplicates ? null : nameHash, "function parameter list", undefined, strictModeChanged);
-    }
-  }
-
-  parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) {
-    const elts = [];
-    let first = true;
-
-    while (!this.eat(close)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma);
-
-        if (this.match(close)) {
-          if (nodeForExtra) {
-            this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart);
-          }
-
-          this.next();
-          break;
-        }
-      }
-
-      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));
-    }
-
-    return elts;
-  }
-
-  parseExprListItem(allowEmpty, refExpressionErrors, refNeedsArrowPos, allowPlaceholder) {
-    let elt;
-
-    if (allowEmpty && this.match(types.comma)) {
-      elt = null;
-    } else if (this.match(types.ellipsis)) {
-      const spreadNodeStartPos = this.state.start;
-      const spreadNodeStartLoc = this.state.startLoc;
-      elt = this.parseParenItem(this.parseSpread(refExpressionErrors, refNeedsArrowPos), spreadNodeStartPos, spreadNodeStartLoc);
-    } else if (this.match(types.question)) {
-      this.expectPlugin("partialApplication");
-
-      if (!allowPlaceholder) {
-        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);
-      }
-
-      const node = this.startNode();
-      this.next();
-      elt = this.finishNode(node, "ArgumentPlaceholder");
-    } else {
-      elt = this.parseMaybeAssign(false, refExpressionErrors, this.parseParenItem, refNeedsArrowPos);
-    }
-
-    return elt;
-  }
-
-  parseIdentifier(liberal) {
-    const node = this.startNode();
-    const name = this.parseIdentifierName(node.start, liberal);
-    return this.createIdentifier(node, name);
-  }
-
-  createIdentifier(node, name) {
-    node.name = name;
-    node.loc.identifierName = name;
-    return this.finishNode(node, "Identifier");
-  }
-
-  parseIdentifierName(pos, liberal) {
-    let name;
-
-    if (this.match(types.name)) {
-      name = this.state.value;
-    } else if (this.state.type.keyword) {
-      name = this.state.type.keyword;
-
-      if ((name === "class" || name === "function") && (this.state.lastTokEnd !== this.state.lastTokStart + 1 || this.input.charCodeAt(this.state.lastTokStart) !== 46)) {
-        this.state.context.pop();
-      }
-    } else {
-      throw this.unexpected();
-    }
-
-    if (liberal) {
-      this.state.type = types.name;
-    } else {
-      this.checkReservedWord(name, this.state.start, !!this.state.type.keyword, false);
-    }
-
-    this.next();
-    return name;
-  }
-
-  checkReservedWord(word, startLoc, checkKeywords, isBinding) {
-    if (this.prodParam.hasYield && word === "yield") {
-      this.raise(startLoc, Errors.YieldBindingIdentifier);
-      return;
-    }
-
-    if (word === "await") {
-      if (this.prodParam.hasAwait) {
-        this.raise(startLoc, Errors.AwaitBindingIdentifier);
-        return;
-      }
-
-      if (this.state.awaitPos === -1 && (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())) {
-        this.state.awaitPos = this.state.start;
-      }
-    }
-
-    if (this.scope.inClass && !this.scope.inNonArrowFunction && word === "arguments") {
-      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);
-      return;
-    }
-
-    if (checkKeywords && isKeyword(word)) {
-      this.raise(startLoc, Errors.UnexpectedKeyword, word);
-      return;
-    }
-
-    const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord;
-
-    if (reservedTest(word, this.inModule)) {
-      if (!this.prodParam.hasAwait && word === "await") {
-        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);
-      } else {
-        this.raise(startLoc, Errors.UnexpectedReservedWord, word);
-      }
-    }
-  }
-
-  isAwaitAllowed() {
-    if (this.scope.inFunction) return this.prodParam.hasAwait;
-    if (this.options.allowAwaitOutsideFunction) return true;
-
-    if (this.hasPlugin("topLevelAwait")) {
-      return this.inModule && this.prodParam.hasAwait;
-    }
-
-    return false;
-  }
-
-  parseAwait() {
-    const node = this.startNode();
-    this.next();
-
-    if (this.state.inParameters) {
-      this.raise(node.start, Errors.AwaitExpressionFormalParameter);
-    } else if (this.state.awaitPos === -1) {
-      this.state.awaitPos = node.start;
-    }
-
-    if (this.eat(types.star)) {
-      this.raise(node.start, Errors.ObsoleteAwaitStar);
-    }
-
-    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {
-      if (this.hasPrecedingLineBreak() || this.match(types.plusMin) || this.match(types.parenL) || this.match(types.bracketL) || this.match(types.backQuote) || this.match(types.regexp) || this.match(types.slash) || this.hasPlugin("v8intrinsic") && this.match(types.modulo)) {
-        this.ambiguousScriptDifferentAst = true;
-      } else {
-        this.sawUnambiguousESM = true;
-      }
-    }
-
-    if (!this.state.soloAwait) {
-      node.argument = this.parseMaybeUnary();
-    }
-
-    return this.finishNode(node, "AwaitExpression");
-  }
-
-  parseYield(noIn) {
-    const node = this.startNode();
-
-    if (this.state.inParameters) {
-      this.raise(node.start, Errors.YieldInParameter);
-    } else if (this.state.yieldPos === -1) {
-      this.state.yieldPos = node.start;
-    }
-
-    this.next();
-
-    if (this.match(types.semi) || !this.match(types.star) && !this.state.type.startsExpr || this.hasPrecedingLineBreak()) {
-      node.delegate = false;
-      node.argument = null;
-    } else {
-      node.delegate = this.eat(types.star);
-      node.argument = this.parseMaybeAssign(noIn);
-    }
-
-    return this.finishNode(node, "YieldExpression");
-  }
-
-  checkPipelineAtInfixOperator(left, leftStartPos) {
-    if (this.getPluginOption("pipelineOperator", "proposal") === "smart") {
-      if (left.type === "SequenceExpression") {
-        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);
-      }
-    }
-  }
-
-  parseSmartPipelineBody(childExpression, startPos, startLoc) {
-    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);
-    this.checkSmartPipelineBodyEarlyErrors(childExpression, pipelineStyle, startPos);
-    return this.parseSmartPipelineBodyInStyle(childExpression, pipelineStyle, startPos, startLoc);
-  }
-
-  checkSmartPipelineBodyEarlyErrors(childExpression, pipelineStyle, startPos) {
-    if (this.match(types.arrow)) {
-      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);
-    } else if (pipelineStyle === "PipelineTopicExpression" && childExpression.type === "SequenceExpression") {
-      this.raise(startPos, Errors.PipelineBodySequenceExpression);
-    }
-  }
-
-  parseSmartPipelineBodyInStyle(childExpression, pipelineStyle, startPos, startLoc) {
-    const bodyNode = this.startNodeAt(startPos, startLoc);
-
-    switch (pipelineStyle) {
-      case "PipelineBareFunction":
-        bodyNode.callee = childExpression;
-        break;
-
-      case "PipelineBareConstructor":
-        bodyNode.callee = childExpression.callee;
-        break;
-
-      case "PipelineBareAwaitedFunction":
-        bodyNode.callee = childExpression.argument;
-        break;
-
-      case "PipelineTopicExpression":
-        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {
-          this.raise(startPos, Errors.PipelineTopicUnused);
-        }
-
-        bodyNode.expression = childExpression;
-        break;
-
-      default:
-        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
-    }
-
-    return this.finishNode(bodyNode, pipelineStyle);
-  }
-
-  checkSmartPipelineBodyStyle(expression) {
-    switch (expression.type) {
-      default:
-        return this.isSimpleReference(expression) ? "PipelineBareFunction" : "PipelineTopicExpression";
-    }
-  }
-
-  isSimpleReference(expression) {
-    switch (expression.type) {
-      case "MemberExpression":
-        return !expression.computed && this.isSimpleReference(expression.object);
-
-      case "Identifier":
-        return true;
-
-      default:
-        return false;
-    }
-  }
-
-  withTopicPermittingContext(callback) {
-    const outerContextTopicState = this.state.topicContext;
-    this.state.topicContext = {
-      maxNumOfResolvableTopics: 1,
-      maxTopicIndex: null
-    };
-
-    try {
-      return callback();
-    } finally {
-      this.state.topicContext = outerContextTopicState;
-    }
-  }
-
-  withTopicForbiddingContext(callback) {
-    const outerContextTopicState = this.state.topicContext;
-    this.state.topicContext = {
-      maxNumOfResolvableTopics: 0,
-      maxTopicIndex: null
-    };
-
-    try {
-      return callback();
-    } finally {
-      this.state.topicContext = outerContextTopicState;
-    }
-  }
-
-  withSoloAwaitPermittingContext(callback) {
-    const outerContextSoloAwaitState = this.state.soloAwait;
-    this.state.soloAwait = true;
-
-    try {
-      return callback();
-    } finally {
-      this.state.soloAwait = outerContextSoloAwaitState;
-    }
-  }
-
-  registerTopicReference() {
-    this.state.topicContext.maxTopicIndex = 0;
-  }
-
-  primaryTopicReferenceIsAllowedInCurrentTopicContext() {
-    return this.state.topicContext.maxNumOfResolvableTopics >= 1;
-  }
-
-  topicReferenceWasUsedInCurrentTopicContext() {
-    return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
-  }
-
-  parseFSharpPipelineBody(prec, noIn) {
-    const startPos = this.state.start;
-    const startLoc = this.state.startLoc;
-    this.state.potentialArrowAt = this.state.start;
-    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
-    this.state.inFSharpPipelineDirectBody = true;
-    const ret = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, prec, noIn);
-    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
-    return ret;
-  }
-
-}
-
-const loopLabel = {
-  kind: "loop"
-},
-      switchLabel = {
-  kind: "switch"
-};
-const FUNC_NO_FLAGS = 0b000,
-      FUNC_STATEMENT = 0b001,
-      FUNC_HANGING_STATEMENT = 0b010,
-      FUNC_NULLABLE_ID = 0b100;
-class StatementParser extends ExpressionParser {
-  parseTopLevel(file, program) {
-    program.sourceType = this.options.sourceType;
-    program.interpreter = this.parseInterpreterDirective();
-    this.parseBlockBody(program, true, true, types.eof);
-
-    if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) {
-      for (let _i = 0, _Array$from = Array.from(this.scope.undefinedExports); _i < _Array$from.length; _i++) {
-        const [name] = _Array$from[_i];
-        const pos = this.scope.undefinedExports.get(name);
-        this.raise(pos, Errors.ModuleExportUndefined, name);
-      }
-    }
-
-    file.program = this.finishNode(program, "Program");
-    file.comments = this.state.comments;
-    if (this.options.tokens) file.tokens = this.tokens;
-    return this.finishNode(file, "File");
-  }
-
-  stmtToDirective(stmt) {
-    const expr = stmt.expression;
-    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);
-    const directive = this.startNodeAt(stmt.start, stmt.loc.start);
-    const raw = this.input.slice(expr.start, expr.end);
-    const val = directiveLiteral.value = raw.slice(1, -1);
-    this.addExtra(directiveLiteral, "raw", raw);
-    this.addExtra(directiveLiteral, "rawValue", val);
-    directive.value = this.finishNodeAt(directiveLiteral, "DirectiveLiteral", expr.end, expr.loc.end);
-    return this.finishNodeAt(directive, "Directive", stmt.end, stmt.loc.end);
-  }
-
-  parseInterpreterDirective() {
-    if (!this.match(types.interpreterDirective)) {
-      return null;
-    }
-
-    const node = this.startNode();
-    node.value = this.state.value;
-    this.next();
-    return this.finishNode(node, "InterpreterDirective");
-  }
-
-  isLet(context) {
-    if (!this.isContextual("let")) {
-      return false;
-    }
-
-    const next = this.nextTokenStart();
-    const nextCh = this.input.charCodeAt(next);
-    if (nextCh === 91) return true;
-    if (context) return false;
-    if (nextCh === 123) return true;
-
-    if (isIdentifierStart(nextCh)) {
-      let pos = next + 1;
-
-      while (isIdentifierChar(this.input.charCodeAt(pos))) {
-        ++pos;
-      }
-
-      const ident = this.input.slice(next, pos);
-      if (!keywordRelationalOperator.test(ident)) return true;
-    }
-
-    return false;
-  }
-
-  parseStatement(context, topLevel) {
-    if (this.match(types.at)) {
-      this.parseDecorators(true);
-    }
-
-    return this.parseStatementContent(context, topLevel);
-  }
-
-  parseStatementContent(context, topLevel) {
-    let starttype = this.state.type;
-    const node = this.startNode();
-    let kind;
-
-    if (this.isLet(context)) {
-      starttype = types._var;
-      kind = "let";
-    }
-
-    switch (starttype) {
-      case types._break:
-      case types._continue:
-        return this.parseBreakContinueStatement(node, starttype.keyword);
-
-      case types._debugger:
-        return this.parseDebuggerStatement(node);
-
-      case types._do:
-        return this.parseDoStatement(node);
-
-      case types._for:
-        return this.parseForStatement(node);
-
-      case types._function:
-        if (this.lookaheadCharCode() === 46) break;
-
-        if (context) {
-          if (this.state.strict) {
-            this.raise(this.state.start, Errors.StrictFunction);
-          } else if (context !== "if" && context !== "label") {
-            this.raise(this.state.start, Errors.SloppyFunction);
-          }
-        }
-
-        return this.parseFunctionStatement(node, false, !context);
-
-      case types._class:
-        if (context) this.unexpected();
-        return this.parseClass(node, true);
-
-      case types._if:
-        return this.parseIfStatement(node);
-
-      case types._return:
-        return this.parseReturnStatement(node);
-
-      case types._switch:
-        return this.parseSwitchStatement(node);
-
-      case types._throw:
-        return this.parseThrowStatement(node);
-
-      case types._try:
-        return this.parseTryStatement(node);
-
-      case types._const:
-      case types._var:
-        kind = kind || this.state.value;
-
-        if (context && kind !== "var") {
-          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);
-        }
-
-        return this.parseVarStatement(node, kind);
-
-      case types._while:
-        return this.parseWhileStatement(node);
-
-      case types._with:
-        return this.parseWithStatement(node);
-
-      case types.braceL:
-        return this.parseBlock();
-
-      case types.semi:
-        return this.parseEmptyStatement(node);
-
-      case types._export:
-      case types._import:
-        {
-          const nextTokenCharCode = this.lookaheadCharCode();
-
-          if (nextTokenCharCode === 40 || nextTokenCharCode === 46) {
-            break;
-          }
-
-          if (!this.options.allowImportExportEverywhere && !topLevel) {
-            this.raise(this.state.start, Errors.UnexpectedImportExport);
-          }
-
-          this.next();
-          let result;
-
-          if (starttype === types._import) {
-            result = this.parseImport(node);
-
-            if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) {
-              this.sawUnambiguousESM = true;
-            }
-          } else {
-            result = this.parseExport(node);
-
-            if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") {
-              this.sawUnambiguousESM = true;
-            }
-          }
-
-          this.assertModuleNodeAllowed(node);
-          return result;
-        }
-
-      default:
-        {
-          if (this.isAsyncFunction()) {
-            if (context) {
-              this.raise(this.state.start, Errors.AsyncFunctionInSingleStatementContext);
-            }
-
-            this.next();
-            return this.parseFunctionStatement(node, true, !context);
-          }
-        }
-    }
-
-    const maybeName = this.state.value;
-    const expr = this.parseExpression();
-
-    if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) {
-      return this.parseLabeledStatement(node, maybeName, expr, context);
-    } else {
-      return this.parseExpressionStatement(node, expr);
-    }
-  }
-
-  assertModuleNodeAllowed(node) {
-    if (!this.options.allowImportExportEverywhere && !this.inModule) {
-      this.raiseWithData(node.start, {
-        code: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"
-      }, Errors.ImportOutsideModule);
-    }
-  }
-
-  takeDecorators(node) {
-    const decorators = this.state.decoratorStack[this.state.decoratorStack.length - 1];
-
-    if (decorators.length) {
-      node.decorators = decorators;
-      this.resetStartLocationFromNode(node, decorators[0]);
-      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];
-    }
-  }
-
-  canHaveLeadingDecorator() {
-    return this.match(types._class);
-  }
-
-  parseDecorators(allowExport) {
-    const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1];
-
-    while (this.match(types.at)) {
-      const decorator = this.parseDecorator();
-      currentContextDecorators.push(decorator);
-    }
-
-    if (this.match(types._export)) {
-      if (!allowExport) {
-        this.unexpected();
-      }
-
-      if (this.hasPlugin("decorators") && !this.getPluginOption("decorators", "decoratorsBeforeExport")) {
-        this.raise(this.state.start, Errors.DecoratorExportClass);
-      }
-    } else if (!this.canHaveLeadingDecorator()) {
-      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);
-    }
-  }
-
-  parseDecorator() {
-    this.expectOnePlugin(["decorators-legacy", "decorators"]);
-    const node = this.startNode();
-    this.next();
-
-    if (this.hasPlugin("decorators")) {
-      this.state.decoratorStack.push([]);
-      const startPos = this.state.start;
-      const startLoc = this.state.startLoc;
-      let expr;
-
-      if (this.eat(types.parenL)) {
-        expr = this.parseExpression();
-        this.expect(types.parenR);
-      } else {
-        expr = this.parseIdentifier(false);
-
-        while (this.eat(types.dot)) {
-          const node = this.startNodeAt(startPos, startLoc);
-          node.object = expr;
-          node.property = this.parseIdentifier(true);
-          node.computed = false;
-          expr = this.finishNode(node, "MemberExpression");
-        }
-      }
-
-      node.expression = this.parseMaybeDecoratorArguments(expr);
-      this.state.decoratorStack.pop();
-    } else {
-      node.expression = this.parseExprSubscripts();
-    }
-
-    return this.finishNode(node, "Decorator");
-  }
-
-  parseMaybeDecoratorArguments(expr) {
-    if (this.eat(types.parenL)) {
-      const node = this.startNodeAtNode(expr);
-      node.callee = expr;
-      node.arguments = this.parseCallExpressionArguments(types.parenR, false);
-      this.toReferencedList(node.arguments);
-      return this.finishNode(node, "CallExpression");
-    }
-
-    return expr;
-  }
-
-  parseBreakContinueStatement(node, keyword) {
-    const isBreak = keyword === "break";
-    this.next();
-
-    if (this.isLineTerminator()) {
-      node.label = null;
-    } else {
-      node.label = this.parseIdentifier();
-      this.semicolon();
-    }
-
-    this.verifyBreakContinue(node, keyword);
-    return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
-  }
-
-  verifyBreakContinue(node, keyword) {
-    const isBreak = keyword === "break";
-    let i;
-
-    for (i = 0; i < this.state.labels.length; ++i) {
-      const lab = this.state.labels[i];
-
-      if (node.label == null || lab.name === node.label.name) {
-        if (lab.kind != null && (isBreak || lab.kind === "loop")) break;
-        if (node.label && isBreak) break;
-      }
-    }
-
-    if (i === this.state.labels.length) {
-      this.raise(node.start, Errors.IllegalBreakContinue, keyword);
-    }
-  }
-
-  parseDebuggerStatement(node) {
-    this.next();
-    this.semicolon();
-    return this.finishNode(node, "DebuggerStatement");
-  }
-
-  parseHeaderExpression() {
-    this.expect(types.parenL);
-    const val = this.parseExpression();
-    this.expect(types.parenR);
-    return val;
-  }
-
-  parseDoStatement(node) {
-    this.next();
-    this.state.labels.push(loopLabel);
-    node.body = this.withTopicForbiddingContext(() => this.parseStatement("do"));
-    this.state.labels.pop();
-    this.expect(types._while);
-    node.test = this.parseHeaderExpression();
-    this.eat(types.semi);
-    return this.finishNode(node, "DoWhileStatement");
-  }
-
-  parseForStatement(node) {
-    this.next();
-    this.state.labels.push(loopLabel);
-    let awaitAt = -1;
-
-    if (this.isAwaitAllowed() && this.eatContextual("await")) {
-      awaitAt = this.state.lastTokStart;
-    }
-
-    this.scope.enter(SCOPE_OTHER);
-    this.expect(types.parenL);
-
-    if (this.match(types.semi)) {
-      if (awaitAt > -1) {
-        this.unexpected(awaitAt);
-      }
-
-      return this.parseFor(node, null);
-    }
-
-    const isLet = this.isLet();
-
-    if (this.match(types._var) || this.match(types._const) || isLet) {
-      const init = this.startNode();
-      const kind = isLet ? "let" : this.state.value;
-      this.next();
-      this.parseVar(init, true, kind);
-      this.finishNode(init, "VariableDeclaration");
-
-      if ((this.match(types._in) || this.isContextual("of")) && init.declarations.length === 1) {
-        return this.parseForIn(node, init, awaitAt);
-      }
-
-      if (awaitAt > -1) {
-        this.unexpected(awaitAt);
-      }
-
-      return this.parseFor(node, init);
-    }
-
-    const refExpressionErrors = new ExpressionErrors();
-    const init = this.parseExpression(true, refExpressionErrors);
-
-    if (this.match(types._in) || this.isContextual("of")) {
-      this.toAssignable(init);
-      const description = this.isContextual("of") ? "for-of statement" : "for-in statement";
-      this.checkLVal(init, undefined, undefined, description);
-      return this.parseForIn(node, init, awaitAt);
-    } else {
-      this.checkExpressionErrors(refExpressionErrors, true);
-    }
-
-    if (awaitAt > -1) {
-      this.unexpected(awaitAt);
-    }
-
-    return this.parseFor(node, init);
-  }
-
-  parseFunctionStatement(node, isAsync, declarationPosition) {
-    this.next();
-    return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), isAsync);
-  }
-
-  parseIfStatement(node) {
-    this.next();
-    node.test = this.parseHeaderExpression();
-    node.consequent = this.parseStatement("if");
-    node.alternate = this.eat(types._else) ? this.parseStatement("if") : null;
-    return this.finishNode(node, "IfStatement");
-  }
-
-  parseReturnStatement(node) {
-    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {
-      this.raise(this.state.start, Errors.IllegalReturn);
-    }
-
-    this.next();
-
-    if (this.isLineTerminator()) {
-      node.argument = null;
-    } else {
-      node.argument = this.parseExpression();
-      this.semicolon();
-    }
-
-    return this.finishNode(node, "ReturnStatement");
-  }
-
-  parseSwitchStatement(node) {
-    this.next();
-    node.discriminant = this.parseHeaderExpression();
-    const cases = node.cases = [];
-    this.expect(types.braceL);
-    this.state.labels.push(switchLabel);
-    this.scope.enter(SCOPE_OTHER);
-    let cur;
-
-    for (let sawDefault; !this.match(types.braceR);) {
-      if (this.match(types._case) || this.match(types._default)) {
-        const isCase = this.match(types._case);
-        if (cur) this.finishNode(cur, "SwitchCase");
-        cases.push(cur = this.startNode());
-        cur.consequent = [];
-        this.next();
-
-        if (isCase) {
-          cur.test = this.parseExpression();
-        } else {
-          if (sawDefault) {
-            this.raise(this.state.lastTokStart, Errors.MultipleDefaultsInSwitch);
-          }
-
-          sawDefault = true;
-          cur.test = null;
-        }
-
-        this.expect(types.colon);
-      } else {
-        if (cur) {
-          cur.consequent.push(this.parseStatement(null));
-        } else {
-          this.unexpected();
-        }
-      }
-    }
-
-    this.scope.exit();
-    if (cur) this.finishNode(cur, "SwitchCase");
-    this.next();
-    this.state.labels.pop();
-    return this.finishNode(node, "SwitchStatement");
-  }
-
-  parseThrowStatement(node) {
-    this.next();
-
-    if (lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) {
-      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);
-    }
-
-    node.argument = this.parseExpression();
-    this.semicolon();
-    return this.finishNode(node, "ThrowStatement");
-  }
-
-  parseTryStatement(node) {
-    this.next();
-    node.block = this.parseBlock();
-    node.handler = null;
-
-    if (this.match(types._catch)) {
-      const clause = this.startNode();
-      this.next();
-
-      if (this.match(types.parenL)) {
-        this.expect(types.parenL);
-        clause.param = this.parseBindingAtom();
-        const simple = clause.param.type === "Identifier";
-        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);
-        this.checkLVal(clause.param, BIND_LEXICAL, null, "catch clause");
-        this.expect(types.parenR);
-      } else {
-        clause.param = null;
-        this.scope.enter(SCOPE_OTHER);
-      }
-
-      clause.body = this.withTopicForbiddingContext(() => this.parseBlock(false, false));
-      this.scope.exit();
-      node.handler = this.finishNode(clause, "CatchClause");
-    }
-
-    node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;
-
-    if (!node.handler && !node.finalizer) {
-      this.raise(node.start, Errors.NoCatchOrFinally);
-    }
-
-    return this.finishNode(node, "TryStatement");
-  }
-
-  parseVarStatement(node, kind) {
-    this.next();
-    this.parseVar(node, false, kind);
-    this.semicolon();
-    return this.finishNode(node, "VariableDeclaration");
-  }
-
-  parseWhileStatement(node) {
-    this.next();
-    node.test = this.parseHeaderExpression();
-    this.state.labels.push(loopLabel);
-    node.body = this.withTopicForbiddingContext(() => this.parseStatement("while"));
-    this.state.labels.pop();
-    return this.finishNode(node, "WhileStatement");
-  }
-
-  parseWithStatement(node) {
-    if (this.state.strict) {
-      this.raise(this.state.start, Errors.StrictWith);
-    }
-
-    this.next();
-    node.object = this.parseHeaderExpression();
-    node.body = this.withTopicForbiddingContext(() => this.parseStatement("with"));
-    return this.finishNode(node, "WithStatement");
-  }
-
-  parseEmptyStatement(node) {
-    this.next();
-    return this.finishNode(node, "EmptyStatement");
-  }
-
-  parseLabeledStatement(node, maybeName, expr, context) {
-    for (let _i2 = 0, _this$state$labels = this.state.labels; _i2 < _this$state$labels.length; _i2++) {
-      const label = _this$state$labels[_i2];
-
-      if (label.name === maybeName) {
-        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);
-      }
-    }
-
-    const kind = this.state.type.isLoop ? "loop" : this.match(types._switch) ? "switch" : null;
-
-    for (let i = this.state.labels.length - 1; i >= 0; i--) {
-      const label = this.state.labels[i];
-
-      if (label.statementStart === node.start) {
-        label.statementStart = this.state.start;
-        label.kind = kind;
-      } else {
-        break;
-      }
-    }
-
-    this.state.labels.push({
-      name: maybeName,
-      kind: kind,
-      statementStart: this.state.start
-    });
-    node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label");
-    this.state.labels.pop();
-    node.label = expr;
-    return this.finishNode(node, "LabeledStatement");
-  }
-
-  parseExpressionStatement(node, expr) {
-    node.expression = expr;
-    this.semicolon();
-    return this.finishNode(node, "ExpressionStatement");
-  }
-
-  parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) {
-    const node = this.startNode();
-    this.expect(types.braceL);
-
-    if (createNewLexicalScope) {
-      this.scope.enter(SCOPE_OTHER);
-    }
-
-    this.parseBlockBody(node, allowDirectives, false, types.braceR, afterBlockParse);
-
-    if (createNewLexicalScope) {
-      this.scope.exit();
-    }
-
-    return this.finishNode(node, "BlockStatement");
-  }
-
-  isValidDirective(stmt) {
-    return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized;
-  }
-
-  parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {
-    const body = node.body = [];
-    const directives = node.directives = [];
-    this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse);
-  }
-
-  parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) {
-    const octalPositions = [];
-    const oldStrict = this.state.strict;
-    let hasStrictModeDirective = false;
-    let parsedNonDirective = false;
-
-    while (!this.match(end)) {
-      if (!parsedNonDirective && this.state.octalPositions.length) {
-        octalPositions.push(...this.state.octalPositions);
-      }
-
-      const stmt = this.parseStatement(null, topLevel);
-
-      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {
-        const directive = this.stmtToDirective(stmt);
-        directives.push(directive);
-
-        if (!hasStrictModeDirective && directive.value.value === "use strict") {
-          hasStrictModeDirective = true;
-          this.setStrict(true);
-        }
-
-        continue;
-      }
-
-      parsedNonDirective = true;
-      body.push(stmt);
-    }
-
-    if (this.state.strict && octalPositions.length) {
-      for (let _i3 = 0; _i3 < octalPositions.length; _i3++) {
-        const pos = octalPositions[_i3];
-        this.raise(pos, Errors.StrictOctalLiteral);
-      }
-    }
-
-    if (afterBlockParse) {
-      afterBlockParse.call(this, hasStrictModeDirective);
-    }
-
-    if (!oldStrict) {
-      this.setStrict(false);
-    }
-
-    this.next();
-  }
-
-  parseFor(node, init) {
-    node.init = init;
-    this.expect(types.semi);
-    node.test = this.match(types.semi) ? null : this.parseExpression();
-    this.expect(types.semi);
-    node.update = this.match(types.parenR) ? null : this.parseExpression();
-    this.expect(types.parenR);
-    node.body = this.withTopicForbiddingContext(() => this.parseStatement("for"));
-    this.scope.exit();
-    this.state.labels.pop();
-    return this.finishNode(node, "ForStatement");
-  }
-
-  parseForIn(node, init, awaitAt) {
-    const isForIn = this.match(types._in);
-    this.next();
-
-    if (isForIn) {
-      if (awaitAt > -1) this.unexpected(awaitAt);
-    } else {
-      node.await = awaitAt > -1;
-    }
-
-    if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) {
-      this.raise(init.start, Errors.ForInOfLoopInitializer, isForIn ? "for-in" : "for-of");
-    } else if (init.type === "AssignmentPattern") {
-      this.raise(init.start, Errors.InvalidLhs, "for-loop");
-    }
-
-    node.left = init;
-    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
-    this.expect(types.parenR);
-    node.body = this.withTopicForbiddingContext(() => this.parseStatement("for"));
-    this.scope.exit();
-    this.state.labels.pop();
-    return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement");
-  }
-
-  parseVar(node, isFor, kind) {
-    const declarations = node.declarations = [];
-    const isTypescript = this.hasPlugin("typescript");
-    node.kind = kind;
-
-    for (;;) {
-      const decl = this.startNode();
-      this.parseVarId(decl, kind);
-
-      if (this.eat(types.eq)) {
-        decl.init = this.parseMaybeAssign(isFor);
-      } else {
-        if (kind === "const" && !(this.match(types._in) || this.isContextual("of"))) {
-          if (!isTypescript) {
-            this.unexpected();
-          }
-        } else if (decl.id.type !== "Identifier" && !(isFor && (this.match(types._in) || this.isContextual("of")))) {
-          this.raise(this.state.lastTokEnd, Errors.DeclarationMissingInitializer, "Complex binding patterns");
-        }
-
-        decl.init = null;
-      }
-
-      declarations.push(this.finishNode(decl, "VariableDeclarator"));
-      if (!this.eat(types.comma)) break;
-    }
-
-    return node;
-  }
-
-  parseVarId(decl, kind) {
-    decl.id = this.parseBindingAtom();
-    this.checkLVal(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, undefined, "variable declaration", kind !== "var");
-  }
-
-  parseFunction(node, statement = FUNC_NO_FLAGS, isAsync = false) {
-    const isStatement = statement & FUNC_STATEMENT;
-    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;
-    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);
-    this.initFunction(node, isAsync);
-
-    if (this.match(types.star) && isHangingStatement) {
-      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);
-    }
-
-    node.generator = this.eat(types.star);
-
-    if (isStatement) {
-      node.id = this.parseFunctionId(requireId);
-    }
-
-    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
-    const oldYieldPos = this.state.yieldPos;
-    const oldAwaitPos = this.state.awaitPos;
-    this.state.maybeInArrowParameters = false;
-    this.state.yieldPos = -1;
-    this.state.awaitPos = -1;
-    this.scope.enter(SCOPE_FUNCTION);
-    this.prodParam.enter(functionFlags(isAsync, node.generator));
-
-    if (!isStatement) {
-      node.id = this.parseFunctionId();
-    }
-
-    this.parseFunctionParams(node);
-    this.withTopicForbiddingContext(() => {
-      this.parseFunctionBodyAndFinish(node, isStatement ? "FunctionDeclaration" : "FunctionExpression");
-    });
-    this.prodParam.exit();
-    this.scope.exit();
-
-    if (isStatement && !isHangingStatement) {
-      this.registerFunctionStatementId(node);
-    }
-
-    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
-    this.state.yieldPos = oldYieldPos;
-    this.state.awaitPos = oldAwaitPos;
-    return node;
-  }
-
-  parseFunctionId(requireId) {
-    return requireId || this.match(types.name) ? this.parseIdentifier() : null;
-  }
-
-  parseFunctionParams(node, allowModifiers) {
-    const oldInParameters = this.state.inParameters;
-    this.state.inParameters = true;
-    this.expect(types.parenL);
-    node.params = this.parseBindingList(types.parenR, 41, false, allowModifiers);
-    this.state.inParameters = oldInParameters;
-    this.checkYieldAwaitInDefaultParams();
-  }
-
-  registerFunctionStatementId(node) {
-    if (!node.id) return;
-    this.scope.declareName(node.id.name, this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION, node.id.start);
-  }
-
-  parseClass(node, isStatement, optionalId) {
-    this.next();
-    this.takeDecorators(node);
-    const oldStrict = this.state.strict;
-    this.state.strict = true;
-    this.parseClassId(node, isStatement, optionalId);
-    this.parseClassSuper(node);
-    node.body = this.parseClassBody(!!node.superClass, oldStrict);
-    this.state.strict = oldStrict;
-    return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression");
-  }
-
-  isClassProperty() {
-    return this.match(types.eq) || this.match(types.semi) || this.match(types.braceR);
-  }
-
-  isClassMethod() {
-    return this.match(types.parenL);
-  }
-
-  isNonstaticConstructor(method) {
-    return !method.computed && !method.static && (method.key.name === "constructor" || method.key.value === "constructor");
-  }
-
-  parseClassBody(constructorAllowsSuper, oldStrict) {
-    this.classScope.enter();
-    const state = {
-      hadConstructor: false
-    };
-    let decorators = [];
-    const classBody = this.startNode();
-    classBody.body = [];
-    this.expect(types.braceL);
-    this.withTopicForbiddingContext(() => {
-      while (!this.match(types.braceR)) {
-        if (this.eat(types.semi)) {
-          if (decorators.length > 0) {
-            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);
-          }
-
-          continue;
-        }
-
-        if (this.match(types.at)) {
-          decorators.push(this.parseDecorator());
-          continue;
-        }
-
-        const member = this.startNode();
-
-        if (decorators.length) {
-          member.decorators = decorators;
-          this.resetStartLocationFromNode(member, decorators[0]);
-          decorators = [];
-        }
-
-        this.parseClassMember(classBody, member, state, constructorAllowsSuper);
-
-        if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) {
-          this.raise(member.start, Errors.DecoratorConstructor);
-        }
-      }
-    });
-
-    if (!oldStrict) {
-      this.state.strict = false;
-    }
-
-    this.next();
-
-    if (decorators.length) {
-      throw this.raise(this.state.start, Errors.TrailingDecorator);
-    }
-
-    this.classScope.exit();
-    return this.finishNode(classBody, "ClassBody");
-  }
-
-  parseClassMemberFromModifier(classBody, member) {
-    const containsEsc = this.state.containsEsc;
-    const key = this.parseIdentifier(true);
-
-    if (this.isClassMethod()) {
-      const method = member;
-      method.kind = "method";
-      method.computed = false;
-      method.key = key;
-      method.static = false;
-      this.pushClassMethod(classBody, method, false, false, false, false);
-      return true;
-    } else if (this.isClassProperty()) {
-      const prop = member;
-      prop.computed = false;
-      prop.key = key;
-      prop.static = false;
-      classBody.body.push(this.parseClassProperty(prop));
-      return true;
-    } else if (containsEsc) {
-      throw this.unexpected();
-    }
-
-    return false;
-  }
-
-  parseClassMember(classBody, member, state, constructorAllowsSuper) {
-    const isStatic = this.isContextual("static");
-
-    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {
-      return;
-    }
-
-    this.parseClassMemberWithIsStatic(classBody, member, state, isStatic, constructorAllowsSuper);
-  }
-
-  parseClassMemberWithIsStatic(classBody, member, state, isStatic, constructorAllowsSuper) {
-    const publicMethod = member;
-    const privateMethod = member;
-    const publicProp = member;
-    const privateProp = member;
-    const method = publicMethod;
-    const publicMember = publicMethod;
-    member.static = isStatic;
-
-    if (this.eat(types.star)) {
-      method.kind = "method";
-      this.parseClassPropertyName(method);
-
-      if (method.key.type === "PrivateName") {
-        this.pushClassPrivateMethod(classBody, privateMethod, true, false);
-        return;
-      }
-
-      if (this.isNonstaticConstructor(publicMethod)) {
-        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);
-      }
-
-      this.pushClassMethod(classBody, publicMethod, true, false, false, false);
-      return;
-    }
-
-    const containsEsc = this.state.containsEsc;
-    const key = this.parseClassPropertyName(member);
-    const isPrivate = key.type === "PrivateName";
-    const isSimple = key.type === "Identifier";
-    const maybeQuestionTokenStart = this.state.start;
-    this.parsePostMemberNameModifiers(publicMember);
-
-    if (this.isClassMethod()) {
-      method.kind = "method";
-
-      if (isPrivate) {
-        this.pushClassPrivateMethod(classBody, privateMethod, false, false);
-        return;
-      }
-
-      const isConstructor = this.isNonstaticConstructor(publicMethod);
-      let allowsDirectSuper = false;
-
-      if (isConstructor) {
-        publicMethod.kind = "constructor";
-
-        if (state.hadConstructor && !this.hasPlugin("typescript")) {
-          this.raise(key.start, Errors.DuplicateConstructor);
-        }
-
-        state.hadConstructor = true;
-        allowsDirectSuper = constructorAllowsSuper;
-      }
-
-      this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper);
-    } else if (this.isClassProperty()) {
-      if (isPrivate) {
-        this.pushClassPrivateProperty(classBody, privateProp);
-      } else {
-        this.pushClassProperty(classBody, publicProp);
-      }
-    } else if (isSimple && key.name === "async" && !containsEsc && !this.isLineTerminator()) {
-      const isGenerator = this.eat(types.star);
-
-      if (publicMember.optional) {
-        this.unexpected(maybeQuestionTokenStart);
-      }
-
-      method.kind = "method";
-      this.parseClassPropertyName(method);
-      this.parsePostMemberNameModifiers(publicMember);
-
-      if (method.key.type === "PrivateName") {
-        this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true);
-      } else {
-        if (this.isNonstaticConstructor(publicMethod)) {
-          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);
-        }
-
-        this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false);
-      }
-    } else if (isSimple && (key.name === "get" || key.name === "set") && !containsEsc && !(this.match(types.star) && this.isLineTerminator())) {
-      method.kind = key.name;
-      this.parseClassPropertyName(publicMethod);
-
-      if (method.key.type === "PrivateName") {
-        this.pushClassPrivateMethod(classBody, privateMethod, false, false);
-      } else {
-        if (this.isNonstaticConstructor(publicMethod)) {
-          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);
-        }
-
-        this.pushClassMethod(classBody, publicMethod, false, false, false, false);
-      }
-
-      this.checkGetterSetterParams(publicMethod);
-    } else if (this.isLineTerminator()) {
-      if (isPrivate) {
-        this.pushClassPrivateProperty(classBody, privateProp);
-      } else {
-        this.pushClassProperty(classBody, publicProp);
-      }
-    } else {
-      this.unexpected();
-    }
-  }
-
-  parseClassPropertyName(member) {
-    const key = this.parsePropertyName(member, true);
-
-    if (!member.computed && member.static && (key.name === "prototype" || key.value === "prototype")) {
-      this.raise(key.start, Errors.StaticPrototype);
-    }
-
-    if (key.type === "PrivateName" && key.id.name === "constructor") {
-      this.raise(key.start, Errors.ConstructorClassPrivateField);
-    }
-
-    return key;
-  }
-
-  pushClassProperty(classBody, prop) {
-    if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) {
-      this.raise(prop.key.start, Errors.ConstructorClassField);
-    }
-
-    classBody.body.push(this.parseClassProperty(prop));
-  }
-
-  pushClassPrivateProperty(classBody, prop) {
-    this.expectPlugin("classPrivateProperties", prop.key.start);
-    const node = this.parseClassPrivateProperty(prop);
-    classBody.body.push(node);
-    this.classScope.declarePrivateName(node.key.id.name, CLASS_ELEMENT_OTHER, node.key.start);
-  }
-
-  pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
-    classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true));
-  }
-
-  pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
-    this.expectPlugin("classPrivateMethods", method.key.start);
-    const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true);
-    classBody.body.push(node);
-    const kind = node.kind === "get" ? node.static ? CLASS_ELEMENT_STATIC_GETTER : CLASS_ELEMENT_INSTANCE_GETTER : node.kind === "set" ? node.static ? CLASS_ELEMENT_STATIC_SETTER : CLASS_ELEMENT_INSTANCE_SETTER : CLASS_ELEMENT_OTHER;
-    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);
-  }
-
-  parsePostMemberNameModifiers(methodOrProp) {}
-
-  parseAccessModifier() {
-    return undefined;
-  }
-
-  parseClassPrivateProperty(node) {
-    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);
-    this.prodParam.enter(PARAM);
-    node.value = this.eat(types.eq) ? this.parseMaybeAssign() : null;
-    this.semicolon();
-    this.prodParam.exit();
-    this.scope.exit();
-    return this.finishNode(node, "ClassPrivateProperty");
-  }
-
-  parseClassProperty(node) {
-    if (!node.typeAnnotation) {
-      this.expectPlugin("classProperties");
-    }
-
-    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);
-    this.prodParam.enter(PARAM);
-
-    if (this.match(types.eq)) {
-      this.expectPlugin("classProperties");
-      this.next();
-      node.value = this.parseMaybeAssign();
-    } else {
-      node.value = null;
-    }
-
-    this.semicolon();
-    this.prodParam.exit();
-    this.scope.exit();
-    return this.finishNode(node, "ClassProperty");
-  }
-
-  parseClassId(node, isStatement, optionalId, bindingType = BIND_CLASS) {
-    if (this.match(types.name)) {
-      node.id = this.parseIdentifier();
-
-      if (isStatement) {
-        this.checkLVal(node.id, bindingType, undefined, "class name");
-      }
-    } else {
-      if (optionalId || !isStatement) {
-        node.id = null;
-      } else {
-        this.unexpected(null, Errors.MissingClassName);
-      }
-    }
-  }
-
-  parseClassSuper(node) {
-    node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;
-  }
-
-  parseExport(node) {
-    const hasDefault = this.maybeParseExportDefaultSpecifier(node);
-    const parseAfterDefault = !hasDefault || this.eat(types.comma);
-    const hasStar = parseAfterDefault && this.eatExportStar(node);
-    const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node);
-    const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(types.comma));
-    const isFromRequired = hasDefault || hasStar;
-
-    if (hasStar && !hasNamespace) {
-      if (hasDefault) this.unexpected();
-      this.parseExportFrom(node, true);
-      return this.finishNode(node, "ExportAllDeclaration");
-    }
-
-    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);
-
-    if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers || hasNamespace && parseAfterNamespace && !hasSpecifiers) {
-      throw this.unexpected(null, types.braceL);
-    }
-
-    let hasDeclaration;
-
-    if (isFromRequired || hasSpecifiers) {
-      hasDeclaration = false;
-      this.parseExportFrom(node, isFromRequired);
-    } else {
-      hasDeclaration = this.maybeParseExportDeclaration(node);
-    }
-
-    if (isFromRequired || hasSpecifiers || hasDeclaration) {
-      this.checkExport(node, true, false, !!node.source);
-      return this.finishNode(node, "ExportNamedDeclaration");
-    }
-
-    if (this.eat(types._default)) {
-      node.declaration = this.parseExportDefaultExpression();
-      this.checkExport(node, true, true);
-      return this.finishNode(node, "ExportDefaultDeclaration");
-    }
-
-    throw this.unexpected(null, types.braceL);
-  }
-
-  eatExportStar(node) {
-    return this.eat(types.star);
-  }
-
-  maybeParseExportDefaultSpecifier(node) {
-    if (this.isExportDefaultSpecifier()) {
-      this.expectPlugin("exportDefaultFrom");
-      const specifier = this.startNode();
-      specifier.exported = this.parseIdentifier(true);
-      node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
-      return true;
-    }
-
-    return false;
-  }
-
-  maybeParseExportNamespaceSpecifier(node) {
-    if (this.isContextual("as")) {
-      if (!node.specifiers) node.specifiers = [];
-      const specifier = this.startNodeAt(this.state.lastTokStart, this.state.lastTokStartLoc);
-      this.next();
-      specifier.exported = this.parseIdentifier(true);
-      node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier"));
-      return true;
-    }
-
-    return false;
-  }
-
-  maybeParseExportNamedSpecifiers(node) {
-    if (this.match(types.braceL)) {
-      if (!node.specifiers) node.specifiers = [];
-      node.specifiers.push(...this.parseExportSpecifiers());
-      node.source = null;
-      node.declaration = null;
-      return true;
-    }
-
-    return false;
-  }
-
-  maybeParseExportDeclaration(node) {
-    if (this.shouldParseExportDeclaration()) {
-      if (this.isContextual("async")) {
-        const next = this.nextTokenStart();
-
-        if (!this.isUnparsedContextual(next, "function")) {
-          this.unexpected(next, types._function);
-        }
-      }
-
-      node.specifiers = [];
-      node.source = null;
-      node.declaration = this.parseExportDeclaration(node);
-      return true;
-    }
-
-    return false;
-  }
-
-  isAsyncFunction() {
-    if (!this.isContextual("async")) return false;
-    const next = this.nextTokenStart();
-    return !lineBreak.test(this.input.slice(this.state.pos, next)) && this.isUnparsedContextual(next, "function");
-  }
-
-  parseExportDefaultExpression() {
-    const expr = this.startNode();
-    const isAsync = this.isAsyncFunction();
-
-    if (this.match(types._function) || isAsync) {
-      this.next();
-
-      if (isAsync) {
-        this.next();
-      }
-
-      return this.parseFunction(expr, FUNC_STATEMENT | FUNC_NULLABLE_ID, isAsync);
-    } else if (this.match(types._class)) {
-      return this.parseClass(expr, true, true);
-    } else if (this.match(types.at)) {
-      if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport")) {
-        this.raise(this.state.start, Errors.DecoratorBeforeExport);
-      }
-
-      this.parseDecorators(false);
-      return this.parseClass(expr, true, true);
-    } else if (this.match(types._const) || this.match(types._var) || this.isLet()) {
-      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);
-    } else {
-      const res = this.parseMaybeAssign();
-      this.semicolon();
-      return res;
-    }
-  }
-
-  parseExportDeclaration(node) {
-    return this.parseStatement(null);
-  }
-
-  isExportDefaultSpecifier() {
-    if (this.match(types.name)) {
-      return this.state.value !== "async" && this.state.value !== "let";
-    }
-
-    if (!this.match(types._default)) {
-      return false;
-    }
-
-    const next = this.nextTokenStart();
-    return this.input.charCodeAt(next) === 44 || this.isUnparsedContextual(next, "from");
-  }
-
-  parseExportFrom(node, expect) {
-    if (this.eatContextual("from")) {
-      node.source = this.parseImportSource();
-      this.checkExport(node);
-    } else {
-      if (expect) {
-        this.unexpected();
-      } else {
-        node.source = null;
-      }
-    }
-
-    this.semicolon();
-  }
-
-  shouldParseExportDeclaration() {
-    if (this.match(types.at)) {
-      this.expectOnePlugin(["decorators", "decorators-legacy"]);
-
-      if (this.hasPlugin("decorators")) {
-        if (this.getPluginOption("decorators", "decoratorsBeforeExport")) {
-          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);
-        } else {
-          return true;
-        }
-      }
-    }
-
-    return this.state.type.keyword === "var" || this.state.type.keyword === "const" || this.state.type.keyword === "function" || this.state.type.keyword === "class" || this.isLet() || this.isAsyncFunction();
-  }
-
-  checkExport(node, checkNames, isDefault, isFrom) {
-    if (checkNames) {
-      if (isDefault) {
-        this.checkDuplicateExports(node, "default");
-      } else if (node.specifiers && node.specifiers.length) {
-        for (let _i4 = 0, _node$specifiers = node.specifiers; _i4 < _node$specifiers.length; _i4++) {
-          const specifier = _node$specifiers[_i4];
-          this.checkDuplicateExports(specifier, specifier.exported.name);
-
-          if (!isFrom && specifier.local) {
-            this.checkReservedWord(specifier.local.name, specifier.local.start, true, false);
-            this.scope.checkLocalExport(specifier.local);
-          }
-        }
-      } else if (node.declaration) {
-        if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") {
-          const id = node.declaration.id;
-          if (!id) throw new Error("Assertion failure");
-          this.checkDuplicateExports(node, id.name);
-        } else if (node.declaration.type === "VariableDeclaration") {
-          for (let _i5 = 0, _node$declaration$dec = node.declaration.declarations; _i5 < _node$declaration$dec.length; _i5++) {
-            const declaration = _node$declaration$dec[_i5];
-            this.checkDeclaration(declaration.id);
-          }
-        }
-      }
-    }
-
-    const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1];
-
-    if (currentContextDecorators.length) {
-      const isClass = node.declaration && (node.declaration.type === "ClassDeclaration" || node.declaration.type === "ClassExpression");
-
-      if (!node.declaration || !isClass) {
-        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);
-      }
-
-      this.takeDecorators(node.declaration);
-    }
-  }
-
-  checkDeclaration(node) {
-    if (node.type === "Identifier") {
-      this.checkDuplicateExports(node, node.name);
-    } else if (node.type === "ObjectPattern") {
-      for (let _i6 = 0, _node$properties = node.properties; _i6 < _node$properties.length; _i6++) {
-        const prop = _node$properties[_i6];
-        this.checkDeclaration(prop);
-      }
-    } else if (node.type === "ArrayPattern") {
-      for (let _i7 = 0, _node$elements = node.elements; _i7 < _node$elements.length; _i7++) {
-        const elem = _node$elements[_i7];
-
-        if (elem) {
-          this.checkDeclaration(elem);
-        }
-      }
-    } else if (node.type === "ObjectProperty") {
-      this.checkDeclaration(node.value);
-    } else if (node.type === "RestElement") {
-      this.checkDeclaration(node.argument);
-    } else if (node.type === "AssignmentPattern") {
-      this.checkDeclaration(node.left);
-    }
-  }
-
-  checkDuplicateExports(node, name) {
-    if (this.state.exportedIdentifiers.indexOf(name) > -1) {
-      this.raise(node.start, name === "default" ? Errors.DuplicateDefaultExport : Errors.DuplicateExport, name);
-    }
-
-    this.state.exportedIdentifiers.push(name);
-  }
-
-  parseExportSpecifiers() {
-    const nodes = [];
-    let first = true;
-    this.expect(types.braceL);
-
-    while (!this.eat(types.braceR)) {
-      if (first) {
-        first = false;
-      } else {
-        this.expect(types.comma);
-        if (this.eat(types.braceR)) break;
-      }
-
-      const node = this.startNode();
-      node.local = this.parseIdentifier(true);
-      node.exported = this.eatContextual("as") ? this.parseIdentifier(true) : node.local.__clone();
-      nodes.push(this.finishNode(node, "ExportSpecifier"));
-    }
-
-    return nodes;
-  }
-
-  parseImport(node) {
-    node.specifiers = [];
-
-    if (!this.match(types.string)) {
-      const hasDefault = this.maybeParseDefaultImportSpecifier(node);
-      const parseNext = !hasDefault || this.eat(types.comma);
-      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);
-      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);
-      this.expectContextual("from");
-    }
-
-    node.source = this.parseImportSource();
-    this.semicolon();
-    return this.finishNode(node, "ImportDeclaration");
-  }
-
-  parseImportSource() {
-    if (!this.match(types.string)) this.unexpected();
-    return this.parseExprAtom();
-  }
-
-  shouldParseDefaultImport(node) {
-    return this.match(types.name);
-  }
-
-  parseImportSpecifierLocal(node, specifier, type, contextDescription) {
-    specifier.local = this.parseIdentifier();
-    this.checkLVal(specifier.local, BIND_LEXICAL, undefined, contextDescription);
-    node.specifiers.push(this.finishNode(specifier, type));
-  }
-
-  maybeParseDefaultImportSpecifier(node) {
-    if (this.shouldParseDefaultImport(node)) {
-      this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier", "default import specifier");
-      return true;
-    }
-
-    return false;
-  }
-
-  maybeParseStarImportSpecifier(node) {
-    if (this.match(types.star)) {
-      const specifier = this.startNode();
-      this.next();
-      this.expectContextual("as");
-      this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier", "import namespace specifier");
-      return true;
-    }
-
-    return false;
-  }
-
-  parseNamedImportSpecifiers(node) {
-    let first = true;
-    this.expect(types.braceL);
-
-    while (!this.eat(types.braceR)) {
-      if (first) {
-        first = false;
-      } else {
-        if (this.eat(types.colon)) {
-          throw this.raise(this.state.start, Errors.DestructureNamedImport);
-        }
-
-        this.expect(types.comma);
-        if (this.eat(types.braceR)) break;
-      }
-
-      this.parseImportSpecifier(node);
-    }
-  }
-
-  parseImportSpecifier(node) {
-    const specifier = this.startNode();
-    specifier.imported = this.parseIdentifier(true);
-
-    if (this.eatContextual("as")) {
-      specifier.local = this.parseIdentifier();
-    } else {
-      this.checkReservedWord(specifier.imported.name, specifier.start, true, true);
-      specifier.local = specifier.imported.__clone();
-    }
-
-    this.checkLVal(specifier.local, BIND_LEXICAL, undefined, "import specifier");
-    node.specifiers.push(this.finishNode(specifier, "ImportSpecifier"));
-  }
-
-}
-
-class ClassScope {
-  constructor() {
-    this.privateNames = new Set();
-    this.loneAccessors = new Map();
-    this.undefinedPrivateNames = new Map();
-  }
-
-}
-class ClassScopeHandler {
-  constructor(raise) {
-    this.stack = [];
-    this.undefinedPrivateNames = new Map();
-    this.raise = raise;
-  }
-
-  current() {
-    return this.stack[this.stack.length - 1];
-  }
-
-  enter() {
-    this.stack.push(new ClassScope());
-  }
-
-  exit() {
-    const oldClassScope = this.stack.pop();
-    const current = this.current();
-
-    for (let _i = 0, _Array$from = Array.from(oldClassScope.undefinedPrivateNames); _i < _Array$from.length; _i++) {
-      const [name, pos] = _Array$from[_i];
-
-      if (current) {
-        if (!current.undefinedPrivateNames.has(name)) {
-          current.undefinedPrivateNames.set(name, pos);
-        }
-      } else {
-        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);
-      }
-    }
-  }
-
-  declarePrivateName(name, elementType, pos) {
-    const classScope = this.current();
-    let redefined = classScope.privateNames.has(name);
-
-    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {
-      const accessor = redefined && classScope.loneAccessors.get(name);
-
-      if (accessor) {
-        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;
-        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;
-        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;
-        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;
-        redefined = oldKind === newKind || oldStatic !== newStatic;
-        if (!redefined) classScope.loneAccessors.delete(name);
-      } else if (!redefined) {
-        classScope.loneAccessors.set(name, elementType);
-      }
-    }
-
-    if (redefined) {
-      this.raise(pos, Errors.PrivateNameRedeclaration, name);
-    }
-
-    classScope.privateNames.add(name);
-    classScope.undefinedPrivateNames.delete(name);
-  }
-
-  usePrivateName(name, pos) {
-    let classScope;
-
-    for (let _i2 = 0, _this$stack = this.stack; _i2 < _this$stack.length; _i2++) {
-      classScope = _this$stack[_i2];
-      if (classScope.privateNames.has(name)) return;
-    }
-
-    if (classScope) {
-      classScope.undefinedPrivateNames.set(name, pos);
-    } else {
-      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);
-    }
-  }
-
-}
-
-class Parser extends StatementParser {
-  constructor(options, input) {
-    options = getOptions(options);
-    super(options, input);
-    const ScopeHandler = this.getScopeHandler();
-    this.options = options;
-    this.inModule = this.options.sourceType === "module";
-    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);
-    this.prodParam = new ProductionParameterHandler();
-    this.classScope = new ClassScopeHandler(this.raise.bind(this));
-    this.plugins = pluginsMap(this.options.plugins);
-    this.filename = options.sourceFilename;
-  }
-
-  getScopeHandler() {
-    return ScopeHandler;
-  }
-
-  parse() {
-    let paramFlags = PARAM;
-
-    if (this.hasPlugin("topLevelAwait") && this.inModule) {
-      paramFlags |= PARAM_AWAIT;
-    }
-
-    this.scope.enter(SCOPE_PROGRAM);
-    this.prodParam.enter(paramFlags);
-    const file = this.startNode();
-    const program = this.startNode();
-    this.nextToken();
-    file.errors = null;
-    this.parseTopLevel(file, program);
-    file.errors = this.state.errors;
-    return file;
-  }
-
-}
-
-function pluginsMap(plugins) {
-  const pluginMap = new Map();
-
-  for (let _i = 0; _i < plugins.length; _i++) {
-    const plugin = plugins[_i];
-    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];
-    if (!pluginMap.has(name)) pluginMap.set(name, options || {});
-  }
-
-  return pluginMap;
-}
-
-function parse(input, options) {
-  if (options && options.sourceType === "unambiguous") {
-    options = Object.assign({}, options);
-
-    try {
-      options.sourceType = "module";
-      const parser = getParser(options, input);
-      const ast = parser.parse();
-
-      if (parser.sawUnambiguousESM) {
-        return ast;
-      }
-
-      if (parser.ambiguousScriptDifferentAst) {
-        try {
-          options.sourceType = "script";
-          return getParser(options, input).parse();
-        } catch (_unused) {}
-      } else {
-        ast.program.sourceType = "script";
-      }
-
-      return ast;
-    } catch (moduleError) {
-      try {
-        options.sourceType = "script";
-        return getParser(options, input).parse();
-      } catch (_unused2) {}
-
-      throw moduleError;
-    }
-  } else {
-    return getParser(options, input).parse();
-  }
-}
-function parseExpression(input, options) {
-  const parser = getParser(options, input);
-
-  if (parser.options.strictMode) {
-    parser.state.strict = true;
-  }
-
-  return parser.getExpression();
-}
-
-function getParser(options, input) {
-  let cls = Parser;
-
-  if (options && options.plugins) {
-    validatePlugins(options.plugins);
-    cls = getParserClass(options.plugins);
-  }
-
-  return new cls(options, input);
-}
-
-const parserClassCache = {};
-
-function getParserClass(pluginsFromOptions) {
-  const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name));
-  const key = pluginList.join("/");
-  let cls = parserClassCache[key];
-
-  if (!cls) {
-    cls = Parser;
-
-    for (let _i = 0; _i < pluginList.length; _i++) {
-      const plugin = pluginList[_i];
-      cls = mixinPlugins[plugin](cls);
-    }
-
-    parserClassCache[key] = cls;
-  }
-
-  return cls;
-}
-
-exports.parse = parse;
-exports.parseExpression = parseExpression;
-exports.tokTypes = types;
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js.map b/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js.map
deleted file mode 100644
index 2f331d3..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/lib/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/package.json b/node_modules/jest-circus/node_modules/@babel/parser/package.json
deleted file mode 100644
index 77078d3..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "name": "@babel/parser",
-  "version": "7.9.4",
-  "description": "A JavaScript parser",
-  "author": "Sebastian McKenzie <sebmck@gmail.com>",
-  "homepage": "https://babeljs.io/",
-  "license": "MIT",
-  "publishConfig": {
-    "access": "public"
-  },
-  "keywords": [
-    "babel",
-    "javascript",
-    "parser",
-    "tc39",
-    "ecmascript",
-    "@babel/parser"
-  ],
-  "repository": "https://github.com/babel/babel/tree/master/packages/babel-parser",
-  "main": "lib/index.js",
-  "types": "typings/babel-parser.d.ts",
-  "files": [
-    "bin",
-    "lib",
-    "typings"
-  ],
-  "engines": {
-    "node": ">=6.0.0"
-  },
-  "devDependencies": {
-    "@babel/code-frame": "^7.8.3",
-    "@babel/helper-fixtures": "^7.8.6",
-    "@babel/helper-validator-identifier": "^7.9.0",
-    "charcodes": "^0.2.0"
-  },
-  "bin": {
-    "parser": "./bin/babel-parser.js"
-  },
-  "gitHead": "d3cf5fb5f4b46a1f7e9e33f2d24a466e3ea1e50f"
-}
diff --git a/node_modules/jest-circus/node_modules/@babel/parser/typings/babel-parser.d.ts b/node_modules/jest-circus/node_modules/@babel/parser/typings/babel-parser.d.ts
deleted file mode 100644
index 4016108..0000000
--- a/node_modules/jest-circus/node_modules/@babel/parser/typings/babel-parser.d.ts
+++ /dev/null
@@ -1,146 +0,0 @@
-// Type definitions for @babel/parser
-// Project: https://github.com/babel/babel/tree/master/packages/babel-parser
-// Definitions by: Troy Gerwien <https://github.com/yortus>
-//                 Marvin Hagemeister <https://github.com/marvinhagemeister>
-//                 Avi Vahl <https://github.com/AviVahl>
-// TypeScript Version: 2.9
-
-/**
- * Parse the provided code as an entire ECMAScript program.
- */
-export function parse(input: string, options?: ParserOptions): import('@babel/types').File;
-
-/**
- * Parse the provided code as a single expression.
- */
-export function parseExpression(input: string, options?: ParserOptions): import('@babel/types').Expression;
-
-export interface ParserOptions {
-    /**
-     * By default, import and export declarations can only appear at a program's top level.
-     * Setting this option to true allows them anywhere where a statement is allowed.
-     */
-    allowImportExportEverywhere?: boolean;
-
-    /**
-     * By default, await use is not allowed outside of an async function.
-     * Set this to true to accept such code.
-     */
-    allowAwaitOutsideFunction?: boolean;
-
-    /**
-     * By default, a return statement at the top level raises an error.
-     * Set this to true to accept such code.
-     */
-    allowReturnOutsideFunction?: boolean;
-
-    allowSuperOutsideMethod?: boolean;
-
-    /**
-     * By default, exported identifiers must refer to a declared variable.
-     * Set this to true to allow export statements to reference undeclared variables.
-     */
-    allowUndeclaredExports?: boolean;
-
-    /**
-     * Indicate the mode the code should be parsed in.
-     * Can be one of "script", "module", or "unambiguous". Defaults to "script".
-     * "unambiguous" will make @babel/parser attempt to guess, based on the presence
-     * of ES6 import or export statements.
-     * Files with ES6 imports and exports are considered "module" and are otherwise "script".
-     */
-    sourceType?: 'script' | 'module' | 'unambiguous';
-
-    /**
-     * Correlate output AST nodes with their source filename.
-     * Useful when generating code and source maps from the ASTs of multiple input files.
-     */
-    sourceFilename?: string;
-
-    /**
-     * By default, the first line of code parsed is treated as line 1.
-     * You can provide a line number to alternatively start with.
-     * Useful for integration with other source tools.
-     */
-    startLine?: number;
-
-    /**
-     * Array containing the plugins that you want to enable.
-     */
-    plugins?: ParserPlugin[];
-
-    /**
-     * Should the parser work in strict mode.
-     * Defaults to true if sourceType === 'module'. Otherwise, false.
-     */
-    strictMode?: boolean;
-
-    /**
-     * Adds a ranges property to each node: [node.start, node.end]
-     */
-    ranges?: boolean;
-
-    /**
-     * Adds all parsed tokens to a tokens property on the File node.
-     */
-    tokens?: boolean;
-
-    /**
-     * By default, the parser adds information about parentheses by setting
-     * `extra.parenthesized` to `true` as needed.
-     * When this option is `true` the parser creates `ParenthesizedExpression`
-     * AST nodes instead of using the `extra` property.
-     */
-    createParenthesizedExpressions?: boolean;
-}
-
-export type ParserPlugin =
-    'asyncGenerators' |
-    'bigInt' |
-    'classPrivateMethods' |
-    'classPrivateProperties' |
-    'classProperties' |
-    'decorators' |
-    'decorators-legacy' |
-    'doExpressions' |
-    'dynamicImport' |
-    'estree' |
-    'exportDefaultFrom' |
-    'exportNamespaceFrom' | // deprecated
-    'flow' |
-    'flowComments' |
-    'functionBind' |
-    'functionSent' |
-    'importMeta' |
-    'jsx' |
-    'logicalAssignment' |
-    'nullishCoalescingOperator' |
-    'numericSeparator' |
-    'objectRestSpread' |
-    'optionalCatchBinding' |
-    'optionalChaining' |
-    'partialApplication' |
-    'pipelineOperator' |
-    'placeholders' |
-    'throwExpressions' |
-    'topLevelAwait' |
-    'typescript' |
-    'v8intrinsic' |
-    ParserPluginWithOptions;
-
-export type ParserPluginWithOptions =
-    ['decorators', DecoratorsPluginOptions] |
-    ['pipelineOperator', PipelineOperatorPluginOptions] |
-    ['flow', FlowPluginOptions];
-
-export interface DecoratorsPluginOptions {
-    decoratorsBeforeExport?: boolean;
-}
-
-export interface PipelineOperatorPluginOptions {
-    proposal: 'minimal' | 'smart';
-}
-
-export interface FlowPluginOptions {
-    all?: boolean;
-}
diff --git a/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.d.ts b/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.d.ts
index 6781fd0..2794762 100644
--- a/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.d.ts
@@ -4,6 +4,7 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+/// <reference types="node" />
 import { Console } from 'console';
 import type { ConsoleBuffer, LogMessage, LogType } from './types';
 export default class BufferedConsole extends Console {
@@ -11,6 +12,7 @@
     private _counters;
     private _timers;
     private _groupDepth;
+    Console: NodeJS.ConsoleConstructor;
     constructor();
     static write(buffer: ConsoleBuffer, type: LogType, message: LogMessage, level?: number | null): ConsoleBuffer;
     private _log;
diff --git a/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.js b/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.js
index dddb211..aa347e5 100644
--- a/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.js
+++ b/node_modules/jest-circus/node_modules/@jest/console/build/BufferedConsole.js
@@ -75,26 +75,22 @@
 
 class BufferedConsole extends _console().Console {
   constructor() {
-    const buffer = [];
     super({
       write: message => {
-        BufferedConsole.write(buffer, 'log', message, null);
+        BufferedConsole.write(this._buffer, 'log', message, null);
         return true;
       }
     });
 
-    _defineProperty(this, '_buffer', void 0);
+    _defineProperty(this, '_buffer', []);
 
-    _defineProperty(this, '_counters', void 0);
+    _defineProperty(this, '_counters', {});
 
-    _defineProperty(this, '_timers', void 0);
+    _defineProperty(this, '_timers', {});
 
-    _defineProperty(this, '_groupDepth', void 0);
+    _defineProperty(this, '_groupDepth', 0);
 
-    this._buffer = buffer;
-    this._counters = {};
-    this._timers = {};
-    this._groupDepth = 0;
+    _defineProperty(this, 'Console', _console().Console);
   }
 
   static write(buffer, type, message, level) {
diff --git a/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.d.ts b/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.d.ts
index ace2741..dbf1f98 100644
--- a/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.d.ts
@@ -15,6 +15,7 @@
     private _counters;
     private _timers;
     private _groupDepth;
+    Console: NodeJS.ConsoleConstructor;
     constructor(stdout: NodeJS.WriteStream, stderr: NodeJS.WriteStream, formatBuffer?: Formatter);
     private _log;
     private _logError;
diff --git a/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.js b/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.js
index 54a7a66..d2d5c03 100644
--- a/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.js
+++ b/node_modules/jest-circus/node_modules/@jest/console/build/CustomConsole.js
@@ -83,18 +83,17 @@
 
     _defineProperty(this, '_formatBuffer', void 0);
 
-    _defineProperty(this, '_counters', void 0);
+    _defineProperty(this, '_counters', {});
 
-    _defineProperty(this, '_timers', void 0);
+    _defineProperty(this, '_timers', {});
 
-    _defineProperty(this, '_groupDepth', void 0);
+    _defineProperty(this, '_groupDepth', 0);
+
+    _defineProperty(this, 'Console', _console().Console);
 
     this._stdout = stdout;
     this._stderr = stderr;
     this._formatBuffer = formatBuffer;
-    this._counters = {};
-    this._timers = {};
-    this._groupDepth = 0;
   }
 
   _log(type, message) {
diff --git a/node_modules/jest-circus/node_modules/@jest/console/package.json b/node_modules/jest-circus/node_modules/@jest/console/package.json
index c8cb597..d4d195f 100644
--- a/node_modules/jest-circus/node_modules/@jest/console/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/console/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/console",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,11 +10,11 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
-    "jest-message-util": "^26.3.0",
-    "jest-util": "^26.3.0",
+    "jest-message-util": "^26.5.2",
+    "jest-util": "^26.5.2",
     "slash": "^3.0.0"
   },
   "devDependencies": {
@@ -26,5 +26,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/globals/package.json b/node_modules/jest-circus/node_modules/@jest/globals/package.json
index a11c01d..c601634 100644
--- a/node_modules/jest-circus/node_modules/@jest/globals/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/globals/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/globals",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -13,12 +13,12 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/environment": "^26.3.0",
-    "@jest/types": "^26.3.0",
-    "expect": "^26.4.2"
+    "@jest/environment": "^26.5.2",
+    "@jest/types": "^26.5.2",
+    "expect": "^26.5.3"
   },
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/source-map/package.json b/node_modules/jest-circus/node_modules/@jest/source-map/package.json
index db74e88..bc212cf 100644
--- a/node_modules/jest-circus/node_modules/@jest/source-map/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/source-map/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/source-map",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -23,5 +23,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/test-result/build/index.d.ts b/node_modules/jest-circus/node_modules/@jest/test-result/build/index.d.ts
index 7df6eec..1d83f7b 100644
--- a/node_modules/jest-circus/node_modules/@jest/test-result/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/test-result/build/index.d.ts
@@ -6,4 +6,4 @@
  */
 export { default as formatTestResults } from './formatTestResults';
 export { addResult, buildFailureTestResult, createEmptyTestResult, makeEmptyAggregatedTestResult, } from './helpers';
-export type { AggregatedResult, AssertionLocation, AssertionResult, FailedAssertion, FormattedTestResults, Milliseconds, SerializableError, SnapshotSummary, Status, Suite, TestResult, TestCaseResult, V8CoverageResult, } from './types';
+export type { AggregatedResult, AssertionLocation, AssertionResult, FailedAssertion, FormattedTestResults, Milliseconds, RuntimeTransformResult, SerializableError, SnapshotSummary, Status, Suite, TestResult, TestCaseResult, V8CoverageResult, } from './types';
diff --git a/node_modules/jest-circus/node_modules/@jest/test-result/build/types.d.ts b/node_modules/jest-circus/node_modules/@jest/test-result/build/types.d.ts
index 198841a..07f713b 100644
--- a/node_modules/jest-circus/node_modules/@jest/test-result/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/test-result/build/types.d.ts
@@ -8,21 +8,24 @@
 import type { ConsoleBuffer } from '@jest/console';
 import type { Config, TestResult, TransformTypes } from '@jest/types';
 import type { V8Coverage } from 'collect-v8-coverage';
+export interface RuntimeTransformResult extends TransformTypes.TransformResult {
+    wrapperLength?: number;
+}
 export declare type V8CoverageResult = Array<{
-    codeTransformResult: TransformTypes.TransformResult | undefined;
+    codeTransformResult: RuntimeTransformResult | undefined;
     result: V8Coverage[number];
 }>;
 export declare type SerializableError = TestResult.SerializableError;
 export declare type FailedAssertion = {
     matcherName?: string;
     message?: string;
-    actual?: any;
+    actual?: unknown;
     pass?: boolean;
     passed?: boolean;
-    expected?: any;
+    expected?: unknown;
     isNot?: boolean;
     stack?: string;
-    error?: any;
+    error?: unknown;
 };
 export declare type AssertionLocation = {
     fullName: string;
@@ -105,7 +108,7 @@
     status: 'failed' | 'passed';
     startTime: number;
     endTime: number;
-    coverage: any;
+    coverage: unknown;
     assertionResults: Array<FormattedAssertionResult>;
 };
 export declare type FormattedTestResults = {
@@ -125,8 +128,8 @@
     testResults: Array<FormattedTestResult>;
     wasInterrupted: boolean;
 };
-export declare type CodeCoverageReporter = any;
-export declare type CodeCoverageFormatter = (coverage: CoverageMapData | null | undefined, reporter: CodeCoverageReporter) => Record<string, any> | null | undefined;
+export declare type CodeCoverageReporter = unknown;
+export declare type CodeCoverageFormatter = (coverage: CoverageMapData | null | undefined, reporter: CodeCoverageReporter) => Record<string, unknown> | null | undefined;
 export declare type UncheckedSnapshot = {
     filePath: string;
     keys: Array<string>;
diff --git a/node_modules/jest-circus/node_modules/@jest/test-result/package.json b/node_modules/jest-circus/node_modules/@jest/test-result/package.json
index 9a6f252..cceff82 100644
--- a/node_modules/jest-circus/node_modules/@jest/test-result/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/test-result/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/test-result",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,8 +10,8 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/console": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/console": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/istanbul-lib-coverage": "^2.0.0",
     "collect-v8-coverage": "^1.0.0"
   },
@@ -21,5 +21,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/test-sequencer/package.json b/node_modules/jest-circus/node_modules/@jest/test-sequencer/package.json
index 642d2c6..2d69b90 100644
--- a/node_modules/jest-circus/node_modules/@jest/test-sequencer/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/test-sequencer/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/test-sequencer",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,11 +10,11 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/test-result": "^26.3.0",
+    "@jest/test-result": "^26.5.2",
     "graceful-fs": "^4.2.4",
-    "jest-haste-map": "^26.3.0",
-    "jest-runner": "^26.4.2",
-    "jest-runtime": "^26.4.2"
+    "jest-haste-map": "^26.5.2",
+    "jest-runner": "^26.5.3",
+    "jest-runtime": "^26.5.3"
   },
   "devDependencies": {
     "@types/graceful-fs": "^4.1.3"
@@ -25,5 +25,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/transform/package.json b/node_modules/jest-circus/node_modules/@jest/transform/package.json
index 94e1a4c..3c01a57 100644
--- a/node_modules/jest-circus/node_modules/@jest/transform/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/transform/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/transform",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,15 +11,15 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/core": "^7.1.0",
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "babel-plugin-istanbul": "^6.0.0",
     "chalk": "^4.0.0",
     "convert-source-map": "^1.4.0",
     "fast-json-stable-stringify": "^2.0.0",
     "graceful-fs": "^4.2.4",
-    "jest-haste-map": "^26.3.0",
+    "jest-haste-map": "^26.5.2",
     "jest-regex-util": "^26.0.0",
-    "jest-util": "^26.3.0",
+    "jest-util": "^26.5.2",
     "micromatch": "^4.0.2",
     "pirates": "^4.0.1",
     "slash": "^3.0.0",
@@ -42,5 +42,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/@jest/types/build/Circus.d.ts b/node_modules/jest-circus/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/jest-circus/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/jest-circus/node_modules/@jest/types/build/Config.d.ts b/node_modules/jest-circus/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/jest-circus/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/jest-circus/node_modules/@jest/types/build/Global.d.ts b/node_modules/jest-circus/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/jest-circus/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/jest-circus/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/jest-circus/node_modules/@jest/types/package.json b/node_modules/jest-circus/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/jest-circus/node_modules/@jest/types/package.json
+++ b/node_modules/jest-circus/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/@types/stack-utils/LICENSE b/node_modules/jest-circus/node_modules/@types/stack-utils/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/@types/stack-utils/LICENSE
@@ -0,0 +1,21 @@
+    MIT License
+
+    Copyright (c) Microsoft Corporation.
+
+    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
diff --git a/node_modules/jest-circus/node_modules/@types/stack-utils/README.md b/node_modules/jest-circus/node_modules/@types/stack-utils/README.md
new file mode 100644
index 0000000..92a34de
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/@types/stack-utils/README.md
@@ -0,0 +1,16 @@
+# Installation

+> `npm install --save @types/stack-utils`

+

+# Summary

+This package contains type definitions for stack-utils (https://github.com/tapjs/stack-utils#readme).

+

+# Details

+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/stack-utils.

+

+### Additional Details

+ * Last updated: Tue, 22 Sep 2020 00:22:28 GMT

+ * Dependencies: none

+ * Global values: none

+

+# Credits

+These definitions were written by [BendingBender](https://github.com/BendingBender).

diff --git a/node_modules/jest-circus/node_modules/@types/stack-utils/index.d.ts b/node_modules/jest-circus/node_modules/@types/stack-utils/index.d.ts
new file mode 100644
index 0000000..3427e35
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/@types/stack-utils/index.d.ts
@@ -0,0 +1,65 @@
+// Type definitions for stack-utils 2.0
+// Project: https://github.com/tapjs/stack-utils#readme
+// Definitions by: BendingBender <https://github.com/BendingBender>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.2
+
+export = StackUtils;
+
+declare class StackUtils {
+    static nodeInternals(): RegExp[];
+    constructor(options?: StackUtils.Options);
+    clean(stack: string | string[]): string;
+    capture(limit?: number, startStackFunction?: Function): StackUtils.CallSite[];
+    capture(startStackFunction: Function): StackUtils.CallSite[];
+    captureString(limit?: number, startStackFunction?: Function): string;
+    captureString(startStackFunction: Function): string;
+    at(startStackFunction?: Function): StackUtils.CallSiteLike;
+    parseLine(line: string): StackUtils.StackLineData | null;
+}
+
+declare namespace StackUtils {
+    interface Options {
+        internals?: RegExp[];
+        ignoredPackages?: string[];
+        cwd?: string;
+        wrapCallSite?(callSite: CallSite): CallSite;
+    }
+
+    interface CallSite {
+        getThis(): object | undefined;
+        getTypeName(): string;
+        getFunction(): Function | undefined;
+        getFunctionName(): string;
+        getMethodName(): string | null;
+        getFileName(): string | undefined;
+        getLineNumber(): number;
+        getColumnNumber(): number;
+        getEvalOrigin(): CallSite | string;
+        isToplevel(): boolean;
+        isEval(): boolean;
+        isNative(): boolean;
+        isConstructor(): boolean;
+    }
+
+    interface CallSiteLike extends StackData {
+        type?: string;
+    }
+
+    interface StackLineData extends StackData {
+        evalLine?: number;
+        evalColumn?: number;
+        evalFile?: string;
+    }
+
+    interface StackData {
+        line?: number;
+        column?: number;
+        file?: string;
+        constructor?: boolean;
+        evalOrigin?: string;
+        native?: boolean;
+        function?: string;
+        method?: string;
+    }
+}
diff --git a/node_modules/jest-circus/node_modules/@types/stack-utils/package.json b/node_modules/jest-circus/node_modules/@types/stack-utils/package.json
new file mode 100644
index 0000000..1f9393a
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/@types/stack-utils/package.json
@@ -0,0 +1,24 @@
+{
+    "name": "@types/stack-utils",
+    "version": "2.0.0",
+    "description": "TypeScript definitions for stack-utils",
+    "license": "MIT",
+    "contributors": [
+        {
+            "name": "BendingBender",
+            "url": "https://github.com/BendingBender",
+            "githubUsername": "BendingBender"
+        }
+    ],
+    "main": "",
+    "types": "index.d.ts",
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+        "directory": "types/stack-utils"
+    },
+    "scripts": {},
+    "dependencies": {},
+    "typesPublisherContentHash": "53c84779043276d5e313653eabfc4fedae5b103c7dc645555065fdc3b4b0a982",
+    "typeScriptVersion": "3.2"
+}
\ No newline at end of file
diff --git a/node_modules/jest-circus/node_modules/babel-jest/package.json b/node_modules/jest-circus/node_modules/babel-jest/package.json
index fe6ced8..4c14c8e 100644
--- a/node_modules/jest-circus/node_modules/babel-jest/package.json
+++ b/node_modules/jest-circus/node_modules/babel-jest/package.json
@@ -1,7 +1,7 @@
 {
   "name": "babel-jest",
   "description": "Jest plugin to use babel for transformation.",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,11 +11,11 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/transform": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/transform": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/babel__core": "^7.1.7",
     "babel-plugin-istanbul": "^6.0.0",
-    "babel-preset-jest": "^26.3.0",
+    "babel-preset-jest": "^26.5.0",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
     "slash": "^3.0.0"
@@ -33,5 +33,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/build/index.js b/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/build/index.js
index a67a7bd..6128021 100644
--- a/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/build/index.js
+++ b/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/build/index.js
@@ -250,7 +250,7 @@
       : _FUNCTIONS$propertyNa.call(FUNCTIONS, args);
   return functionLooksHoistable ? jestObjExpr : null;
 };
-/* eslint-disable sort-keys,@typescript-eslint/explicit-module-boundary-types */
+/* eslint-disable sort-keys */
 
 var _default = () => ({
   pre({path: program}) {
@@ -309,18 +309,21 @@
               : _this$jestObjGetterId.name)
         ) {
           const mockStmt = callExpr.getStatementParent();
-          const mockStmtNode = mockStmt.node;
-          const mockStmtParent = mockStmt.parentPath;
 
-          if (mockStmtParent.isBlock()) {
-            mockStmt.remove();
-            mockStmtParent.unshiftContainer('body', [mockStmtNode]);
+          if (mockStmt) {
+            const mockStmtNode = mockStmt.node;
+            const mockStmtParent = mockStmt.parentPath;
+
+            if (mockStmtParent.isBlock()) {
+              mockStmt.remove();
+              mockStmtParent.unshiftContainer('body', [mockStmtNode]);
+            }
           }
         }
       }
     });
   }
 });
-/* eslint-enable sort-keys,@typescript-eslint/explicit-module-boundary-types */
+/* eslint-enable */
 
 exports.default = _default;
diff --git a/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/package.json b/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/package.json
index 0e51f83..2b397fa 100644
--- a/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/package.json
+++ b/node_modules/jest-circus/node_modules/babel-plugin-jest-hoist/package.json
@@ -1,6 +1,6 @@
 {
   "name": "babel-plugin-jest-hoist",
-  "version": "26.2.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -25,5 +25,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "4a716811a309dae135b780a87dc1647b285800eb"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/babel-preset-jest/package.json b/node_modules/jest-circus/node_modules/babel-preset-jest/package.json
index b9739b2..8158600 100644
--- a/node_modules/jest-circus/node_modules/babel-preset-jest/package.json
+++ b/node_modules/jest-circus/node_modules/babel-preset-jest/package.json
@@ -1,6 +1,6 @@
 {
   "name": "babel-preset-jest",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -9,7 +9,7 @@
   "license": "MIT",
   "main": "index.js",
   "dependencies": {
-    "babel-plugin-jest-hoist": "^26.2.0",
+    "babel-plugin-jest-hoist": "^26.5.0",
     "babel-preset-current-node-syntax": "^0.1.3"
   },
   "peerDependencies": {
@@ -21,5 +21,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/diff-sequences/build/index.js b/node_modules/jest-circus/node_modules/diff-sequences/build/index.js
index 445260b..5d565d9 100644
--- a/node_modules/jest-circus/node_modules/diff-sequences/build/index.js
+++ b/node_modules/jest-circus/node_modules/diff-sequences/build/index.js
@@ -688,10 +688,8 @@
 };
 
 const validateLength = (name, arg) => {
-  const type = typeof arg;
-
-  if (type !== 'number') {
-    throw new TypeError(`${pkg}: ${name} typeof ${type} is not a number`);
+  if (typeof arg !== 'number') {
+    throw new TypeError(`${pkg}: ${name} typeof ${typeof arg} is not a number`);
   }
 
   if (!Number.isSafeInteger(arg)) {
diff --git a/node_modules/jest-circus/node_modules/diff-sequences/package.json b/node_modules/jest-circus/node_modules/diff-sequences/package.json
index c56b179..808f36c 100644
--- a/node_modules/jest-circus/node_modules/diff-sequences/package.json
+++ b/node_modules/jest-circus/node_modules/diff-sequences/package.json
@@ -1,6 +1,6 @@
 {
   "name": "diff-sequences",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -31,5 +31,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/Defaults.js b/node_modules/jest-circus/node_modules/jest-config/build/Defaults.js
index 7a34589..c3751ed 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/Defaults.js
+++ b/node_modules/jest-circus/node_modules/jest-config/build/Defaults.js
@@ -61,6 +61,7 @@
     computeSha1: false,
     throwOnModuleCollision: false
   },
+  injectGlobals: true,
   maxConcurrency: 5,
   maxWorkers: '50%',
   moduleDirectories: ['node_modules'],
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.d.ts b/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.d.ts
index 58f67cc..4c05472 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.d.ts
@@ -4,5 +4,6 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-declare const _default: Record<string, Function>;
-export default _default;
+import type { DeprecatedOptions } from 'jest-validate';
+declare const deprecatedOptions: DeprecatedOptions;
+export default deprecatedOptions;
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.js b/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.js
index 45fb9f3..2cc5b97 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.js
+++ b/node_modules/jest-circus/node_modules/jest-config/build/Deprecated.js
@@ -40,7 +40,7 @@
     min: true
   });
 
-var _default = {
+const deprecatedOptions = {
   browser: () => `  Option ${_chalk().default.bold(
     '"browser"'
   )} has been deprecated. Please install "browser-resolve" and use the "resolver" option in Jest configuration as follows:
@@ -104,4 +104,5 @@
   Please update your configuration.
   `
 };
+var _default = deprecatedOptions;
 exports.default = _default;
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/ValidConfig.js b/node_modules/jest-circus/node_modules/jest-config/build/ValidConfig.js
index 78d1f9f..f6608f7 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/ValidConfig.js
+++ b/node_modules/jest-circus/node_modules/jest-config/build/ValidConfig.js
@@ -84,6 +84,7 @@
     platforms: ['ios', 'android'],
     throwOnModuleCollision: false
   },
+  injectGlobals: true,
   json: false,
   lastCommit: false,
   logHeapUsage: true,
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/index.js b/node_modules/jest-circus/node_modules/jest-config/build/index.js
index 1ad3336..86e04f0 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-config/build/index.js
@@ -313,6 +313,7 @@
     globalTeardown: options.globalTeardown,
     globals: options.globals,
     haste: options.haste,
+    injectGlobals: options.injectGlobals,
     moduleDirectories: options.moduleDirectories,
     moduleFileExtensions: options.moduleFileExtensions,
     moduleLoader: options.moduleLoader,
diff --git a/node_modules/jest-circus/node_modules/jest-config/build/normalize.js b/node_modules/jest-circus/node_modules/jest-config/build/normalize.js
index 05bca60..1509ccc 100644
--- a/node_modules/jest-circus/node_modules/jest-config/build/normalize.js
+++ b/node_modules/jest-circus/node_modules/jest-config/build/normalize.js
@@ -1038,6 +1038,7 @@
       case 'findRelatedTests':
       case 'forceCoverageMatch':
       case 'forceExit':
+      case 'injectGlobals':
       case 'lastCommit':
       case 'listTests':
       case 'logHeapUsage':
@@ -1152,7 +1153,7 @@
 
   if (!newOptions.watchAll) {
     newOptions.watchAll = false;
-  } // as any since it can happen. We really need to fix the types here
+  } // as unknown since it can happen. We really need to fix the types here
 
   if (newOptions.moduleNameMapper === _Defaults.default.moduleNameMapper) {
     newOptions.moduleNameMapper = [];
diff --git a/node_modules/jest-circus/node_modules/jest-config/package.json b/node_modules/jest-circus/node_modules/jest-config/package.json
index c6c9170..fb9aefd 100644
--- a/node_modules/jest-circus/node_modules/jest-config/package.json
+++ b/node_modules/jest-circus/node_modules/jest-config/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-config",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,23 +11,23 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/core": "^7.1.0",
-    "@jest/test-sequencer": "^26.4.2",
-    "@jest/types": "^26.3.0",
-    "babel-jest": "^26.3.0",
+    "@jest/test-sequencer": "^26.5.3",
+    "@jest/types": "^26.5.2",
+    "babel-jest": "^26.5.2",
     "chalk": "^4.0.0",
     "deepmerge": "^4.2.2",
     "glob": "^7.1.1",
     "graceful-fs": "^4.2.4",
-    "jest-environment-jsdom": "^26.3.0",
-    "jest-environment-node": "^26.3.0",
+    "jest-environment-jsdom": "^26.5.2",
+    "jest-environment-node": "^26.5.2",
     "jest-get-type": "^26.3.0",
-    "jest-jasmine2": "^26.4.2",
+    "jest-jasmine2": "^26.5.3",
     "jest-regex-util": "^26.0.0",
-    "jest-resolve": "^26.4.0",
-    "jest-util": "^26.3.0",
-    "jest-validate": "^26.4.2",
+    "jest-resolve": "^26.5.2",
+    "jest-util": "^26.5.2",
+    "jest-validate": "^26.5.3",
     "micromatch": "^4.0.2",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
     "@types/babel__core": "^7.0.4",
@@ -41,5 +41,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-diff/package.json b/node_modules/jest-circus/node_modules/jest-diff/package.json
index 91b1855..45eef6e 100644
--- a/node_modules/jest-circus/node_modules/jest-diff/package.json
+++ b/node_modules/jest-circus/node_modules/jest-diff/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-diff",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,12 +11,12 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "chalk": "^4.0.0",
-    "diff-sequences": "^26.3.0",
+    "diff-sequences": "^26.5.0",
     "jest-get-type": "^26.3.0",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "strip-ansi": "^6.0.0"
   },
   "engines": {
@@ -25,5 +25,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-environment-jsdom/package.json b/node_modules/jest-circus/node_modules/jest-environment-jsdom/package.json
index 0d9059a..4b2b0d2 100644
--- a/node_modules/jest-circus/node_modules/jest-environment-jsdom/package.json
+++ b/node_modules/jest-circus/node_modules/jest-environment-jsdom/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-environment-jsdom",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,16 +10,16 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/environment": "^26.3.0",
-    "@jest/fake-timers": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/environment": "^26.5.2",
+    "@jest/fake-timers": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
-    "jest-mock": "^26.3.0",
-    "jest-util": "^26.3.0",
-    "jsdom": "^16.2.2"
+    "jest-mock": "^26.5.2",
+    "jest-util": "^26.5.2",
+    "jsdom": "^16.4.0"
   },
   "devDependencies": {
-    "@types/jsdom": "^16.2.1"
+    "@types/jsdom": "^16.2.4"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -27,5 +27,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-environment-node/package.json b/node_modules/jest-circus/node_modules/jest-environment-node/package.json
index f410126..7860c26 100644
--- a/node_modules/jest-circus/node_modules/jest-environment-node/package.json
+++ b/node_modules/jest-circus/node_modules/jest-environment-node/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-environment-node",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,12 +10,12 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/environment": "^26.3.0",
-    "@jest/fake-timers": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/environment": "^26.5.2",
+    "@jest/fake-timers": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
-    "jest-mock": "^26.3.0",
-    "jest-util": "^26.3.0"
+    "jest-mock": "^26.5.2",
+    "jest-util": "^26.5.2"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -23,5 +23,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-haste-map/build/index.js b/node_modules/jest-circus/node_modules/jest-haste-map/build/index.js
index 7690735..4ff4a75 100644
--- a/node_modules/jest-circus/node_modules/jest-haste-map/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-haste-map/build/index.js
@@ -286,8 +286,6 @@
  *
  */
 
-/* eslint-disable-next-line no-redeclare */
-
 class HasteMap extends _events().EventEmitter {
   constructor(options) {
     super();
diff --git a/node_modules/jest-circus/node_modules/jest-haste-map/build/types.d.ts b/node_modules/jest-circus/node_modules/jest-haste-map/build/types.d.ts
index e1e7ab0..8c0fa71 100644
--- a/node_modules/jest-circus/node_modules/jest-haste-map/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-haste-map/build/types.d.ts
@@ -37,7 +37,14 @@
     getHasteName(filePath: Config.Path): string | undefined;
 };
 export declare type FileData = Map<Config.Path, FileMetaData>;
-export declare type FileMetaData = [string, number, number, 0 | 1, string, string | null | undefined];
+export declare type FileMetaData = [
+    string,
+    number,
+    number,
+    0 | 1,
+    string,
+    string | null | undefined
+];
 export declare type MockData = Map<string, Config.Path>;
 export declare type ModuleMapData = Map<string, ModuleMapItem>;
 export declare type WatchmanClocks = Map<Config.Path, string>;
diff --git a/node_modules/jest-circus/node_modules/jest-haste-map/package.json b/node_modules/jest-circus/node_modules/jest-haste-map/package.json
index 7caabbc..11be45c 100644
--- a/node_modules/jest-circus/node_modules/jest-haste-map/package.json
+++ b/node_modules/jest-circus/node_modules/jest-haste-map/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-haste-map",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,22 +10,22 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/graceful-fs": "^4.1.2",
     "@types/node": "*",
     "anymatch": "^3.0.3",
     "fb-watchman": "^2.0.0",
     "graceful-fs": "^4.2.4",
     "jest-regex-util": "^26.0.0",
-    "jest-serializer": "^26.3.0",
-    "jest-util": "^26.3.0",
-    "jest-worker": "^26.3.0",
+    "jest-serializer": "^26.5.0",
+    "jest-util": "^26.5.2",
+    "jest-worker": "^26.5.0",
     "micromatch": "^4.0.2",
     "sane": "^4.0.3",
     "walker": "^1.0.7"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "@types/anymatch": "^1.3.1",
     "@types/fb-watchman": "^2.0.0",
     "@types/micromatch": "^4.0.0",
@@ -41,5 +41,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/PCancelable.d.ts b/node_modules/jest-circus/node_modules/jest-jasmine2/build/PCancelable.d.ts
index 0791131..f245a6d 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/PCancelable.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/PCancelable.d.ts
@@ -11,7 +11,7 @@
     private _cancel?;
     private _reject;
     constructor(executor: (onCancel: (cancelHandler: () => void) => void, resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: unknown) => void) => void);
-    then<TResult1 = T, TResult2 = never>(onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
-    catch<TResult>(onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
+    then<TResult1 = T, TResult2 = never>(onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
+    catch<TResult>(onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
     cancel(): void;
 }
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/index.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/index.js
index 7aa8408..909688f 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/index.js
@@ -68,6 +68,8 @@
  */
 const JASMINE = require.resolve('./jasmine/jasmineLight');
 
+const jestEachBuildDir = path.dirname(require.resolve('jest-each'));
+
 async function jasmine2(globalConfig, config, environment, runtime, testPath) {
   var _runtime$unstable_sho2;
 
@@ -87,35 +89,33 @@
   // in a future version
 
   if (config.testLocationInResults === true) {
-    const originalIt = environment.global.it;
+    function wrapIt(original) {
+      const wrapped = (testName, fn, timeout) => {
+        var _stack$getFileName;
 
-    environment.global.it = (...args) => {
-      const stack = (0, _sourceMap.getCallsite)(1, runtime.getSourceMaps());
-      const it = originalIt(...args); // @ts-expect-error
+        const sourcemaps = runtime.getSourceMaps();
+        let stack = (0, _sourceMap.getCallsite)(1, sourcemaps);
+        const it = original(testName, fn, timeout);
 
-      it.result.__callsite = stack;
-      return it;
-    };
+        if (
+          (_stack$getFileName = stack.getFileName()) === null ||
+          _stack$getFileName === void 0
+            ? void 0
+            : _stack$getFileName.startsWith(jestEachBuildDir)
+        ) {
+          stack = (0, _sourceMap.getCallsite)(4, sourcemaps);
+        } // @ts-expect-error
 
-    const originalXit = environment.global.xit;
+        it.result.__callsite = stack;
+        return it;
+      };
 
-    environment.global.xit = (...args) => {
-      const stack = (0, _sourceMap.getCallsite)(1, runtime.getSourceMaps());
-      const xit = originalXit(...args); // @ts-expect-error
+      return wrapped;
+    }
 
-      xit.result.__callsite = stack;
-      return xit;
-    };
-
-    const originalFit = environment.global.fit;
-
-    environment.global.fit = (...args) => {
-      const stack = (0, _sourceMap.getCallsite)(1, runtime.getSourceMaps());
-      const fit = originalFit(...args); // @ts-expect-error
-
-      fit.result.__callsite = stack;
-      return fit;
-    };
+    environment.global.it = wrapIt(environment.global.it);
+    environment.global.xit = wrapIt(environment.global.xit);
+    environment.global.fit = wrapIt(environment.global.fit);
   }
 
   (0, _jasmineAsyncInstall.default)(globalConfig, environment.global);
@@ -260,6 +260,6 @@
 
   results.snapshot.uncheckedKeys = Array.from(uncheckedKeys);
   return results;
-}; // eslint-disable-next-line no-redeclare
+};
 
 module.exports = jasmine2;
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/isError.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/isError.js
index 7e79a29..d2a5487 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/isError.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/isError.js
@@ -17,8 +17,7 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-function isError(potentialError) {
+function isError(potentialError) { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
   // duck-type Error, see #2549
   const isError =
     potentialError !== null &&
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/ReportDispatcher.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/ReportDispatcher.js
index f038987..3acead9 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/ReportDispatcher.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/ReportDispatcher.js
@@ -50,6 +50,8 @@
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
+
+/* eslint-disable local/prefer-spread-eventually, local/prefer-rest-params-eventually */
 class ReportDispatcher {
   // @ts-expect-error
   // @ts-expect-error
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/SpyStrategy.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/SpyStrategy.js
index ce16794..fc7de39 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/SpyStrategy.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/SpyStrategy.js
@@ -50,6 +50,8 @@
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
+
+/* eslint-disable local/ban-types-eventually, local/prefer-rest-params-eventually */
 class SpyStrategy {
   constructor({
     name = 'unknown',
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.d.ts b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.d.ts
index 5f23ea9..f1d0173 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.d.ts
@@ -6,8 +6,8 @@
  *
  */
 import type { Spy } from '../types';
-interface Fn extends Record<string, any> {
-    (): any;
+interface Fn extends Record<string, unknown> {
+    (): unknown;
 }
 declare function createSpy(name: string, originalFn: Fn): Spy;
 export default createSpy;
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.js
index 44f487a..17a6728 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/createSpy.js
@@ -45,7 +45,7 @@
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
-/* eslint-disable sort-keys */
+/* eslint-disable sort-keys, local/prefer-rest-params-eventually */
 function createSpy(name, originalFn) {
   const spyStrategy = new _SpyStrategy.default({
     name,
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/jasmineLight.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/jasmineLight.js
index 2ea6a0c..6025db6 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/jasmineLight.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmine/jasmineLight.js
@@ -57,7 +57,7 @@
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
-/* eslint-disable sort-keys */
+/* eslint-disable sort-keys, local/prefer-spread-eventually, local/prefer-rest-params-eventually */
 const create = function (createOptions) {
   const j$ = {...createOptions};
   j$._DEFAULT_TIMEOUT_INTERVAL = createOptions.testTimeout || 5000;
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js
index 6865b95..c8c79d1 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js
@@ -163,7 +163,7 @@
     return spec;
   }; // each is binded after the function is made concurrent, so for now it is made noop
 
-  concurrentFn.each = () => {};
+  concurrentFn.each = () => () => {};
 
   return concurrentFn;
 }
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jestExpect.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jestExpect.js
index a95a53f..97e59ec 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/jestExpect.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/jestExpect.js
@@ -19,6 +19,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/prefer-spread-eventually */
 var _default = config => {
   global.expect = _expect.default;
 
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/queueRunner.d.ts b/node_modules/jest-circus/node_modules/jest-jasmine2/build/queueRunner.d.ts
index 8335666..5042614 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/queueRunner.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/queueRunner.d.ts
@@ -11,7 +11,7 @@
     onException: (error: Error) => void;
     queueableFns: Array<QueueableFn>;
     setTimeout: Global['setTimeout'];
-    userContext: any;
+    userContext: unknown;
 };
 export interface DoneFn {
     (error?: any): void;
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/setup_jest_globals.js b/node_modules/jest-circus/node_modules/jest-jasmine2/build/setup_jest_globals.js
index 875345b..0f09196 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/setup_jest_globals.js
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/setup_jest_globals.js
@@ -102,7 +102,8 @@
     getPrettier: () =>
       config.prettierPath ? require(config.prettierPath) : null,
     updateSnapshot
-  });
+  }); // @ts-expect-error: snapshotState is a jest extension of `expect`
+
   (0, _expect.setState)({
     snapshotState,
     testPath
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/treeProcessor.d.ts b/node_modules/jest-circus/node_modules/jest-jasmine2/build/treeProcessor.d.ts
index 725de8a..fdeee94 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/treeProcessor.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/treeProcessor.d.ts
@@ -13,13 +13,13 @@
     tree: TreeNode;
 };
 export declare type TreeNode = {
-    afterAllFns: Array<any>;
-    beforeAllFns: Array<any>;
+    afterAllFns: Array<unknown>;
+    beforeAllFns: Array<unknown>;
     disabled?: boolean;
     execute: (onComplete: () => void, enabled: boolean) => void;
     id: string;
     onException: (error: Error) => void;
-    sharedUserContext: () => any;
+    sharedUserContext: () => unknown;
     children?: Array<TreeNode>;
 } & Pick<Suite, 'getResult' | 'parentSuite' | 'result' | 'markedPending'>;
 export default function treeProcessor(options: Options): void;
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/build/types.d.ts b/node_modules/jest-circus/node_modules/jest-jasmine2/build/types.d.ts
index 89f1997..10edc07 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/build/types.d.ts
@@ -28,7 +28,7 @@
 };
 export declare type AsyncExpectationResult = Promise<SyncExpectationResult>;
 export declare type ExpectationResult = SyncExpectationResult | AsyncExpectationResult;
-export declare type RawMatcherFn = (expected: any, actual: any, options?: any) => ExpectationResult;
+export declare type RawMatcherFn = (expected: unknown, actual: unknown, options?: unknown) => ExpectationResult;
 export declare type RunDetails = {
     totalSpecsDefined?: number;
     failedExpectations?: SuiteResult['failedExpectations'];
diff --git a/node_modules/jest-circus/node_modules/jest-jasmine2/package.json b/node_modules/jest-circus/node_modules/jest-jasmine2/package.json
index 1c9f3b9..1041f22 100644
--- a/node_modules/jest-circus/node_modules/jest-jasmine2/package.json
+++ b/node_modules/jest-circus/node_modules/jest-jasmine2/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-jasmine2",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,22 +11,22 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/traverse": "^7.1.0",
-    "@jest/environment": "^26.3.0",
-    "@jest/source-map": "^26.3.0",
-    "@jest/test-result": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/environment": "^26.5.2",
+    "@jest/source-map": "^26.5.0",
+    "@jest/test-result": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "co": "^4.6.0",
-    "expect": "^26.4.2",
+    "expect": "^26.5.3",
     "is-generator-fn": "^2.0.0",
-    "jest-each": "^26.4.2",
-    "jest-matcher-utils": "^26.4.2",
-    "jest-message-util": "^26.3.0",
-    "jest-runtime": "^26.4.2",
-    "jest-snapshot": "^26.4.2",
-    "jest-util": "^26.3.0",
-    "pretty-format": "^26.4.2",
+    "jest-each": "^26.5.2",
+    "jest-matcher-utils": "^26.5.2",
+    "jest-message-util": "^26.5.2",
+    "jest-runtime": "^26.5.3",
+    "jest-snapshot": "^26.5.3",
+    "jest-util": "^26.5.2",
+    "pretty-format": "^26.5.2",
     "throat": "^5.0.0"
   },
   "devDependencies": {
@@ -39,5 +39,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-leak-detector/package.json b/node_modules/jest-circus/node_modules/jest-leak-detector/package.json
index d3aec9b..3a3ae55 100644
--- a/node_modules/jest-circus/node_modules/jest-leak-detector/package.json
+++ b/node_modules/jest-circus/node_modules/jest-leak-detector/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-leak-detector",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,7 +11,7 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "jest-get-type": "^26.3.0",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
     "@types/weak-napi": "^2.0.0",
@@ -23,5 +23,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-message-util/package.json b/node_modules/jest-circus/node_modules/jest-message-util/package.json
index 6f8b6c4..2bbf224 100644
--- a/node_modules/jest-circus/node_modules/jest-message-util/package.json
+++ b/node_modules/jest-circus/node_modules/jest-message-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-message-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -14,8 +14,8 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/code-frame": "^7.0.0",
-    "@jest/types": "^26.3.0",
-    "@types/stack-utils": "^1.0.1",
+    "@jest/types": "^26.5.2",
+    "@types/stack-utils": "^2.0.0",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
     "micromatch": "^4.0.2",
@@ -30,5 +30,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-mock/build/index.d.ts b/node_modules/jest-circus/node_modules/jest-mock/build/index.d.ts
index 4360cd5..ce7ba58 100644
--- a/node_modules/jest-circus/node_modules/jest-mock/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-mock/build/index.d.ts
@@ -42,12 +42,13 @@
         mockReturnThis(): this;
         mockReturnValue(value: T): this;
         mockReturnValueOnce(value: T): this;
-        mockResolvedValue(value: T): this;
-        mockResolvedValueOnce(value: T): this;
-        mockRejectedValue(value: T): this;
-        mockRejectedValueOnce(value: T): this;
+        mockResolvedValue(value: Unpromisify<T>): this;
+        mockResolvedValueOnce(value: Unpromisify<T>): this;
+        mockRejectedValue(value: unknown): this;
+        mockRejectedValueOnce(value: unknown): this;
     }
 }
+declare type Unpromisify<T> = T extends Promise<infer R> ? R : never;
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
diff --git a/node_modules/jest-circus/node_modules/jest-mock/build/index.js b/node_modules/jest-circus/node_modules/jest-mock/build/index.js
index 7c1e40d..2ebc513 100644
--- a/node_modules/jest-circus/node_modules/jest-mock/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-mock/build/index.js
@@ -21,6 +21,8 @@
  * LICENSE file in the root directory of this source tree.
  */
 
+/* eslint-disable local/ban-types-eventually, local/prefer-rest-params-eventually */
+
 /**
  * Possible types of a MockFunctionResult.
  * 'return': The call completed by returning normally.
@@ -909,7 +911,6 @@
     return value == null ? '' + value : typeof value;
   }
 }
-/* eslint-disable-next-line no-redeclare */
 
 const JestMock = new ModuleMockerClass(global);
 module.exports = JestMock;
diff --git a/node_modules/jest-circus/node_modules/jest-mock/package.json b/node_modules/jest-circus/node_modules/jest-mock/package.json
index 7478b55..7d60952 100644
--- a/node_modules/jest-circus/node_modules/jest-mock/package.json
+++ b/node_modules/jest-circus/node_modules/jest-mock/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-mock",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
     "node": ">= 10.14.2"
   },
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*"
   },
   "license": "MIT",
@@ -19,5 +19,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-resolve/build/index.js b/node_modules/jest-circus/node_modules/jest-resolve/build/index.js
index 1864578..2097b7f 100644
--- a/node_modules/jest-circus/node_modules/jest-resolve/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-resolve/build/index.js
@@ -121,7 +121,6 @@
       .filter(Boolean) // The resolver expects absolute paths.
       .map(p => path().resolve(resolvedCwd, p))
   : undefined;
-/* eslint-disable-next-line no-redeclare */
 
 class Resolver {
   constructor(moduleMap, options) {
diff --git a/node_modules/jest-circus/node_modules/jest-resolve/package.json b/node_modules/jest-circus/node_modules/jest-resolve/package.json
index ba8f507..c1b112f 100644
--- a/node_modules/jest-circus/node_modules/jest-resolve/package.json
+++ b/node_modules/jest-circus/node_modules/jest-resolve/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-resolve",
-  "version": "26.4.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,11 +10,11 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
     "jest-pnp-resolver": "^1.2.2",
-    "jest-util": "^26.3.0",
+    "jest-util": "^26.5.2",
     "read-pkg-up": "^7.0.1",
     "resolve": "^1.17.0",
     "slash": "^3.0.0"
@@ -22,7 +22,7 @@
   "devDependencies": {
     "@types/graceful-fs": "^4.1.3",
     "@types/resolve": "^1.17.0",
-    "jest-haste-map": "^26.3.0"
+    "jest-haste-map": "^26.5.2"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -30,5 +30,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "0b1e41d1d93ce4d15646f4a39fd5a7ffae5f43c3"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-runner/build/index.js b/node_modules/jest-circus/node_modules/jest-runner/build/index.js
index 06812c1..645a536 100644
--- a/node_modules/jest-circus/node_modules/jest-runner/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-runner/build/index.js
@@ -82,7 +82,6 @@
 
 const TEST_WORKER_PATH = require.resolve('./testWorker');
 
-/* eslint-disable-next-line no-redeclare */
 class TestRunner {
   constructor(globalConfig, context) {
     _defineProperty(this, '_globalConfig', void 0);
diff --git a/node_modules/jest-circus/node_modules/jest-runner/build/runTest.js b/node_modules/jest-circus/node_modules/jest-runner/build/runTest.js
index 61f8eac..ffb1b4c 100644
--- a/node_modules/jest-circus/node_modules/jest-runner/build/runTest.js
+++ b/node_modules/jest-circus/node_modules/jest-runner/build/runTest.js
@@ -222,13 +222,14 @@
   const TestEnvironment = (0, _jestUtil().interopRequireDefault)(
     require(testEnvironment)
   ).default;
-  const testFramework =
-    process.env.JEST_CIRCUS === '1'
-      ? require('jest-circus/runner') // eslint-disable-line import/no-extraneous-dependencies
-      : require(config.testRunner);
-  const Runtime = config.moduleLoader
-    ? require(config.moduleLoader)
-    : require('jest-runtime');
+  const testFramework = (0, _jestUtil().interopRequireDefault)(
+    process.env.JEST_CIRCUS === '1' // eslint-disable-next-line import/no-extraneous-dependencies
+      ? require('jest-circus/runner')
+      : require(config.testRunner)
+  ).default;
+  const Runtime = (0, _jestUtil().interopRequireDefault)(
+    config.moduleLoader ? require(config.moduleLoader) : require('jest-runtime')
+  ).default;
   const consoleOut = globalConfig.useStderr ? process.stderr : process.stdout;
 
   const consoleFormatter = (type, message) =>
@@ -270,18 +271,25 @@
     [path]: testSource
   };
   (0, _jestUtil().setGlobal)(environment.global, 'console', testConsole);
-  const runtime = new Runtime(config, environment, resolver, cacheFS, {
-    changedFiles:
-      context === null || context === void 0 ? void 0 : context.changedFiles,
-    collectCoverage: globalConfig.collectCoverage,
-    collectCoverageFrom: globalConfig.collectCoverageFrom,
-    collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom,
-    coverageProvider: globalConfig.coverageProvider,
-    sourcesRelatedToTestsInChangedFiles:
-      context === null || context === void 0
-        ? void 0
-        : context.sourcesRelatedToTestsInChangedFiles
-  });
+  const runtime = new Runtime(
+    config,
+    environment,
+    resolver,
+    cacheFS,
+    {
+      changedFiles:
+        context === null || context === void 0 ? void 0 : context.changedFiles,
+      collectCoverage: globalConfig.collectCoverage,
+      collectCoverageFrom: globalConfig.collectCoverageFrom,
+      collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom,
+      coverageProvider: globalConfig.coverageProvider,
+      sourcesRelatedToTestsInChangedFiles:
+        context === null || context === void 0
+          ? void 0
+          : context.sourcesRelatedToTestsInChangedFiles
+    },
+    path
+  );
   const start = Date.now();
 
   for (const path of config.setupFiles) {
diff --git a/node_modules/jest-circus/node_modules/jest-runner/package.json b/node_modules/jest-circus/node_modules/jest-runner/package.json
index f679d72..a179134 100644
--- a/node_modules/jest-circus/node_modules/jest-runner/package.json
+++ b/node_modules/jest-circus/node_modules/jest-runner/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-runner",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,24 +10,24 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/console": "^26.3.0",
-    "@jest/environment": "^26.3.0",
-    "@jest/test-result": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/console": "^26.5.2",
+    "@jest/environment": "^26.5.2",
+    "@jest/test-result": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "emittery": "^0.7.1",
     "exit": "^0.1.2",
     "graceful-fs": "^4.2.4",
-    "jest-config": "^26.4.2",
+    "jest-config": "^26.5.3",
     "jest-docblock": "^26.0.0",
-    "jest-haste-map": "^26.3.0",
-    "jest-leak-detector": "^26.4.2",
-    "jest-message-util": "^26.3.0",
-    "jest-resolve": "^26.4.0",
-    "jest-runtime": "^26.4.2",
-    "jest-util": "^26.3.0",
-    "jest-worker": "^26.3.0",
+    "jest-haste-map": "^26.5.2",
+    "jest-leak-detector": "^26.5.2",
+    "jest-message-util": "^26.5.2",
+    "jest-resolve": "^26.5.2",
+    "jest-runtime": "^26.5.3",
+    "jest-util": "^26.5.2",
+    "jest-worker": "^26.5.0",
     "source-map-support": "^0.5.6",
     "throat": "^5.0.0"
   },
@@ -35,7 +35,7 @@
     "@types/exit": "^0.1.30",
     "@types/graceful-fs": "^4.1.2",
     "@types/source-map-support": "^0.5.0",
-    "jest-circus": "^26.4.2"
+    "jest-circus": "^26.5.3"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -43,5 +43,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-runtime/build/cli/index.js b/node_modules/jest-circus/node_modules/jest-runtime/build/cli/index.js
index cffed68..fa509b7 100644
--- a/node_modules/jest-circus/node_modules/jest-runtime/build/cli/index.js
+++ b/node_modules/jest-circus/node_modules/jest-runtime/build/cli/index.js
@@ -195,7 +195,7 @@
   const options = await (0, _jestConfig().readConfig)(argv, root);
   const globalConfig = options.globalConfig; // Always disable automocking in scripts.
 
-  const config = {...options.projectConfig, automock: false}; // Break circular dependency
+  const config = {...options.projectConfig, automock: false};
 
   const Runtime = require('..');
 
@@ -221,7 +221,14 @@
       'jestGlobalConfig',
       globalConfig
     );
-    const runtime = new Runtime(config, environment, hasteMap.resolver);
+    const runtime = new Runtime(
+      config,
+      environment,
+      hasteMap.resolver,
+      undefined,
+      undefined,
+      filePath
+    );
 
     for (const path of config.setupFiles) {
       var _runtime$unstable_sho;
diff --git a/node_modules/jest-circus/node_modules/jest-runtime/build/index.d.ts b/node_modules/jest-circus/node_modules/jest-runtime/build/index.d.ts
index 3caec12..a01bba1 100644
--- a/node_modules/jest-circus/node_modules/jest-runtime/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-runtime/build/index.d.ts
@@ -4,8 +4,9 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-import type { Config } from '@jest/types';
+import type { Config, Global } from '@jest/types';
 import type { JestEnvironment } from '@jest/environment';
+import type * as JestGlobals from '@jest/globals';
 import type { SourceMapRegistry } from '@jest/source-map';
 import { ShouldInstrumentOptions, shouldInstrument } from '@jest/transform';
 import type { V8CoverageResult } from '@jest/test-result';
@@ -13,6 +14,9 @@
 import Resolver = require('jest-resolve');
 import type { Context as JestContext } from './types';
 import { options as cliOptions } from './cli/args';
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: typeof JestGlobals.expect;
+}
 declare type HasteMapOptions = {
     console?: Console;
     maxWorkers: number;
@@ -39,6 +43,7 @@
     private _fakeTimersImplementation;
     private _internalModuleRegistry;
     private _isCurrentlyExecutingManualMock;
+    private _mainModule;
     private _mockFactories;
     private _mockMetaDataCache;
     private _mockRegistry;
@@ -47,6 +52,7 @@
     private _isolatedModuleRegistry;
     private _moduleRegistry;
     private _esmoduleRegistry;
+    private _testPath;
     private _resolver;
     private _shouldAutoMock;
     private _shouldMockModuleCache;
@@ -61,7 +67,8 @@
     private _virtualMocks;
     private _moduleImplementation?;
     private jestObjectCaches;
-    constructor(config: Config.ProjectConfig, environment: JestEnvironment, resolver: Resolver, cacheFS?: Record<string, string>, coverageOptions?: ShouldInstrumentOptions);
+    private jestGlobals?;
+    constructor(config: Config.ProjectConfig, environment: JestEnvironment, resolver: Resolver, cacheFS?: Record<string, string>, coverageOptions?: ShouldInstrumentOptions, testPath?: Config.Path);
     static shouldInstrument: typeof shouldInstrument;
     static createContext(config: Config.ProjectConfig, options: {
         console?: Console;
@@ -115,11 +122,13 @@
     private _createJestObjectFor;
     private _logFormattedReferenceError;
     private wrapCodeInModuleWrapper;
+    private constructModuleWrapperStart;
     private constructInjectedModuleParameters;
     private handleExecutionError;
     private getGlobalsForCjs;
     private getGlobalsForEsm;
     private getGlobalsFromEnvironment;
     private readFile;
+    setGlobalsForRuntime(globals: JestGlobals): void;
 }
 export = Runtime;
diff --git a/node_modules/jest-circus/node_modules/jest-runtime/build/index.js b/node_modules/jest-circus/node_modules/jest-runtime/build/index.js
index 1d094a6..d3e3ada 100644
--- a/node_modules/jest-circus/node_modules/jest-runtime/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-runtime/build/index.js
@@ -267,10 +267,16 @@
 const unmockRegExpCache = new WeakMap();
 const EVAL_RESULT_VARIABLE = 'Object.<anonymous>';
 const runtimeSupportsVmModules = typeof _vm().SyntheticModule === 'function';
-/* eslint-disable-next-line no-redeclare */
 
 class Runtime {
-  constructor(config, environment, resolver, cacheFS = {}, coverageOptions) {
+  constructor(
+    config,
+    environment,
+    resolver,
+    cacheFS = {},
+    coverageOptions, // TODO: Make mandatory in Jest 27
+    testPath
+  ) {
     _defineProperty(this, '_cacheFS', void 0);
 
     _defineProperty(this, '_config', void 0);
@@ -289,6 +295,8 @@
 
     _defineProperty(this, '_isCurrentlyExecutingManualMock', void 0);
 
+    _defineProperty(this, '_mainModule', void 0);
+
     _defineProperty(this, '_mockFactories', void 0);
 
     _defineProperty(this, '_mockMetaDataCache', void 0);
@@ -305,6 +313,8 @@
 
     _defineProperty(this, '_esmoduleRegistry', void 0);
 
+    _defineProperty(this, '_testPath', void 0);
+
     _defineProperty(this, '_resolver', void 0);
 
     _defineProperty(this, '_shouldAutoMock', void 0);
@@ -333,6 +343,8 @@
 
     _defineProperty(this, 'jestObjectCaches', void 0);
 
+    _defineProperty(this, 'jestGlobals', void 0);
+
     _defineProperty(
       this,
       'unstable_shouldLoadAsEsm',
@@ -354,6 +366,7 @@
     this._explicitShouldMock = new Map();
     this._internalModuleRegistry = new Map();
     this._isCurrentlyExecutingManualMock = null;
+    this._mainModule = null;
     this._mockFactories = new Map();
     this._mockRegistry = new Map(); // during setup, this cannot be null (and it's fine to explode if it is)
 
@@ -362,6 +375,7 @@
     this._isolatedMockRegistry = null;
     this._moduleRegistry = new Map();
     this._esmoduleRegistry = new Map();
+    this._testPath = testPath;
     this._resolver = resolver;
     this._scriptTransformer = new (_transform().ScriptTransformer)(config);
     this._shouldAutoMock = config.automock;
@@ -510,7 +524,12 @@
       const module = new (_vm().SourceTextModule)(transformedCode, {
         context,
         identifier: modulePath,
-        importModuleDynamically: this.linkModules.bind(this),
+        importModuleDynamically: (specifier, referencingModule) =>
+          this.linkModules(
+            specifier,
+            referencingModule.identifier,
+            referencingModule.context
+          ),
 
         initializeImportMeta(meta) {
           meta.url = (0, _url().pathToFileURL)(modulePath).href;
@@ -522,7 +541,13 @@
         // parallel can all await it. We then await it synchronously below, so
         // we shouldn't get any unhandled rejections
         module
-          .link(this.linkModules.bind(this))
+          .link((specifier, referencingModule) =>
+            this.linkModules(
+              specifier,
+              referencingModule.identifier,
+              referencingModule.context
+            )
+          )
           .then(() => module.evaluate())
           .then(() => module)
       );
@@ -534,7 +559,7 @@
     return module;
   }
 
-  linkModules(specifier, referencingModule) {
+  linkModules(specifier, referencingIdentifier, context) {
     if (specifier === '@jest/globals') {
       const fromCache = this._esmoduleRegistry.get('@jest/globals');
 
@@ -542,10 +567,7 @@
         return fromCache;
       }
 
-      const globals = this.getGlobalsForEsm(
-        referencingModule.identifier,
-        referencingModule.context
-      );
+      const globals = this.getGlobalsForEsm(referencingIdentifier, context);
 
       this._esmoduleRegistry.set('@jest/globals', globals);
 
@@ -554,7 +576,7 @@
 
     const [path, query] = specifier.split('?');
 
-    const resolved = this._resolveModule(referencingModule.identifier, path);
+    const resolved = this._resolveModule(referencingIdentifier, path);
 
     if (
       this._resolver.isCoreModule(resolved) ||
@@ -563,11 +585,7 @@
       return this.loadEsmModule(resolved, query);
     }
 
-    return this.loadCjsAsEsm(
-      referencingModule.identifier,
-      resolved,
-      referencingModule.context
-    );
+    return this.loadCjsAsEsm(referencingIdentifier, resolved, context);
   }
 
   async unstable_importModule(from, moduleName) {
@@ -585,7 +603,7 @@
     return this.loadEsmModule(modulePath, query);
   }
 
-  async loadCjsAsEsm(from, modulePath, context) {
+  loadCjsAsEsm(from, modulePath, context) {
     // CJS loaded via `import` should share cache with other CJS: https://github.com/nodejs/modules/issues/503
     const cjs = this.requireModuleOrMock(from, modulePath);
     const module = new (_vm().SyntheticModule)(
@@ -599,11 +617,7 @@
         identifier: modulePath
       }
     );
-    await module.link(() => {
-      throw new Error('This should never happen');
-    });
-    await module.evaluate();
-    return module;
+    return evaluateSyntheticModule(module);
   }
 
   requireModule(from, moduleName, options, isRequireActual) {
@@ -672,7 +686,8 @@
       exports: {},
       filename: modulePath,
       id: modulePath,
-      loaded: false
+      loaded: false,
+      path: path().dirname(modulePath)
     };
     moduleRegistry.set(modulePath, localModule);
 
@@ -778,7 +793,8 @@
         exports: {},
         filename: modulePath,
         id: modulePath,
-        loaded: false
+        loaded: false,
+        path: path().dirname(modulePath)
       };
 
       this._loadModule(
@@ -994,7 +1010,7 @@
           result
         };
       });
-  } // TODO - remove in Jest 26
+  } // TODO - remove in Jest 27
 
   getSourceMapInfo(_coveredFiles) {
     return {};
@@ -1041,6 +1057,8 @@
 
     this._internalModuleRegistry.clear();
 
+    this._mainModule = null;
+
     this._mockFactories.clear();
 
     this._mockMetaDataCache.clear();
@@ -1149,14 +1167,14 @@
       return;
     }
 
-    const filename = localModule.filename;
+    const module = localModule;
+    const filename = module.filename;
     const lastExecutingModulePath = this._currentlyExecutingModulePath;
     this._currentlyExecutingModulePath = filename;
     const origCurrExecutingManualMock = this._isCurrentlyExecutingManualMock;
     this._isCurrentlyExecutingManualMock = filename;
-    const dirname = path().dirname(filename);
-    localModule.children = [];
-    Object.defineProperty(localModule, 'parent', {
+    module.children = [];
+    Object.defineProperty(module, 'parent', {
       enumerable: true,
 
       get() {
@@ -1164,40 +1182,29 @@
         return moduleRegistry.get(key) || null;
       }
     });
-    localModule.paths = this._resolver.getModulePaths(dirname);
-    Object.defineProperty(localModule, 'require', {
-      value: this._createRequireImplementation(localModule, options)
+    module.paths = this._resolver.getModulePaths(module.path);
+    Object.defineProperty(module, 'require', {
+      value: this._createRequireImplementation(module, options)
     });
     const transformedCode = this.transformFile(filename, options);
-    let compiledFunction = null; // Use this if available instead of deprecated `JestEnvironment.runScript`
+    let compiledFunction = null;
+    const script = this.createScriptFromCode(transformedCode, filename);
+    let runScript = null; // Use this if available instead of deprecated `JestEnvironment.runScript`
 
     if (typeof this._environment.getVmContext === 'function') {
       const vmContext = this._environment.getVmContext();
 
       if (vmContext) {
-        try {
-          compiledFunction = (0, _vm().compileFunction)(
-            transformedCode,
-            this.constructInjectedModuleParameters(),
-            {
-              filename,
-              parsingContext: vmContext
-            }
-          );
-        } catch (e) {
-          throw (0, _transform().handlePotentialSyntaxError)(e);
-        }
+        runScript = script.runInContext(vmContext, {
+          filename
+        });
       }
     } else {
-      const script = this.createScriptFromCode(transformedCode, filename);
+      runScript = this._environment.runScript(script);
+    }
 
-      const runScript = this._environment.runScript(script);
-
-      if (runScript === null) {
-        compiledFunction = null;
-      } else {
-        compiledFunction = runScript[EVAL_RESULT_VARIABLE];
-      }
+    if (runScript !== null) {
+      compiledFunction = runScript[EVAL_RESULT_VARIABLE];
     }
 
     if (compiledFunction === null) {
@@ -1212,29 +1219,41 @@
     const jestObject = this._createJestObjectFor(filename);
 
     this.jestObjectCaches.set(filename, jestObject);
+    const lastArgs = [
+      this._config.injectGlobals ? jestObject : undefined, // jest object
+      this._config.extraGlobals.map(globalVariable => {
+        if (this._environment.global[globalVariable]) {
+          return this._environment.global[globalVariable];
+        }
+
+        throw new Error(
+          `You have requested '${globalVariable}' as a global variable, but it was not present. Please check your config or your global environment.`
+        );
+      })
+    ];
+
+    if (!this._mainModule && filename === this._testPath) {
+      this._mainModule = module;
+    }
+
+    Object.defineProperty(module, 'main', {
+      enumerable: true,
+      value: this._mainModule
+    });
 
     try {
       compiledFunction.call(
-        localModule.exports,
-        localModule, // module object
-        localModule.exports, // module exports
-        localModule.require, // require implementation
-        dirname, // __dirname
-        filename, // __filename
+        module.exports,
+        module, // module object
+        module.exports, // module exports
+        module.require, // require implementation
+        module.path, // __dirname
+        module.filename, // __filename
         this._environment.global, // global object
-        jestObject, // jest object
-        ...this._config.extraGlobals.map(globalVariable => {
-          if (this._environment.global[globalVariable]) {
-            return this._environment.global[globalVariable];
-          }
-
-          throw new Error(
-            `You have requested '${globalVariable}' as a global variable, but it was not present. Please check your config or your global environment.`
-          );
-        })
+        ...lastArgs.filter(notEmpty)
       );
     } catch (error) {
-      this.handleExecutionError(error, localModule);
+      this.handleExecutionError(error, module);
     }
 
     this._isCurrentlyExecutingManualMock = origCurrExecutingManualMock;
@@ -1256,7 +1275,10 @@
       source
     );
 
-    this._fileTransforms.set(filename, transformedFile);
+    this._fileTransforms.set(filename, {
+      ...transformedFile,
+      wrapperLength: this.constructModuleWrapperStart().length
+    });
 
     if (transformedFile.sourceMapPath) {
       this._sourceMapRegistry.set(filename, transformedFile.sourceMapPath);
@@ -1267,11 +1289,24 @@
 
   createScriptFromCode(scriptSource, filename) {
     try {
+      const scriptFilename = this._resolver.isCoreModule(filename)
+        ? `jest-nodejs-core-${filename}`
+        : filename;
       return new (_vm().Script)(this.wrapCodeInModuleWrapper(scriptSource), {
         displayErrors: true,
-        filename: this._resolver.isCoreModule(filename)
-          ? `jest-nodejs-core-${filename}`
-          : filename
+        filename: scriptFilename,
+        // @ts-expect-error: Experimental ESM API
+        importModuleDynamically: specifier => {
+          var _this$_environment$ge, _this$_environment;
+
+          const context =
+            (_this$_environment$ge = (_this$_environment = this._environment)
+              .getVmContext) === null || _this$_environment$ge === void 0
+              ? void 0
+              : _this$_environment$ge.call(_this$_environment);
+          invariant(context);
+          return this.linkModules(specifier, scriptFilename, context);
+        }
       });
     } catch (e) {
       throw (0, _transform().handlePotentialSyntaxError)(e);
@@ -1293,7 +1328,7 @@
   _importCoreModule(moduleName, context) {
     const required = this._requireCoreModule(moduleName);
 
-    return new (_vm().SyntheticModule)(
+    const module = new (_vm().SyntheticModule)(
       ['default', ...Object.keys(required)],
       function () {
         // @ts-expect-error: TS doesn't know what `this` is
@@ -1308,6 +1343,7 @@
         identifier: moduleName
       }
     );
+    return evaluateSyntheticModule(module);
   }
 
   _getMockedNativeModule() {
@@ -1337,7 +1373,8 @@
         exports: {},
         filename,
         id: filename,
-        loaded: false
+        loaded: false,
+        path: path().dirname(filename)
       });
     }; // should we implement the class ourselves?
 
@@ -1557,20 +1594,7 @@
 
     Object.defineProperty(moduleRequire, 'main', {
       enumerable: true,
-
-      get() {
-        let mainModule = from.parent;
-
-        while (
-          mainModule &&
-          mainModule.parent &&
-          mainModule.id !== mainModule.parent.id
-        ) {
-          mainModule = mainModule.parent;
-        }
-
-        return mainModule;
-      }
+      value: this._testPath ? this._moduleRegistry.get(this._testPath) : null
     });
     return moduleRequire;
   }
@@ -1805,14 +1829,12 @@
   }
 
   wrapCodeInModuleWrapper(content) {
+    return this.constructModuleWrapperStart() + content + '\n}});';
+  }
+
+  constructModuleWrapperStart() {
     const args = this.constructInjectedModuleParameters();
-    return (
-      '({"' +
-      EVAL_RESULT_VARIABLE +
-      `":function(${args.join(',')}){` +
-      content +
-      '\n}});'
-    );
+    return '({"' + EVAL_RESULT_VARIABLE + `":function(${args.join(',')}){`;
   }
 
   constructInjectedModuleParameters() {
@@ -1823,9 +1845,9 @@
       '__dirname',
       '__filename',
       'global',
-      'jest',
+      this._config.injectGlobals ? 'jest' : undefined,
       ...this._config.extraGlobals
-    ];
+    ].filter(notEmpty);
   }
 
   handleExecutionError(e, module) {
@@ -1856,7 +1878,7 @@
     return {...this.getGlobalsFromEnvironment(), jest};
   }
 
-  async getGlobalsForEsm(from, context) {
+  getGlobalsForEsm(from, context) {
     let jest = this.jestObjectCaches.get(from);
 
     if (!jest) {
@@ -1878,14 +1900,14 @@
         identifier: '@jest/globals'
       }
     );
-    await module.link(() => {
-      throw new Error('This should never happen');
-    });
-    await module.evaluate();
-    return module;
+    return evaluateSyntheticModule(module);
   }
 
   getGlobalsFromEnvironment() {
+    if (this.jestGlobals) {
+      return {...this.jestGlobals};
+    }
+
     return {
       afterAll: this._environment.global.afterAll,
       afterEach: this._environment.global.afterEach,
@@ -1914,6 +1936,10 @@
 
     return source;
   }
+
+  setGlobalsForRuntime(globals) {
+    this.jestGlobals = globals;
+  }
 }
 
 _defineProperty(Runtime, 'shouldInstrument', _transform().shouldInstrument);
@@ -1924,4 +1950,16 @@
   }
 }
 
+function notEmpty(value) {
+  return value !== null && value !== undefined;
+}
+
+async function evaluateSyntheticModule(module) {
+  await module.link(() => {
+    throw new Error('This should never happen');
+  });
+  await module.evaluate();
+  return module;
+}
+
 module.exports = Runtime;
diff --git a/node_modules/jest-circus/node_modules/jest-runtime/package.json b/node_modules/jest-circus/node_modules/jest-runtime/package.json
index 1cbc65e..ac13f6b 100644
--- a/node_modules/jest-circus/node_modules/jest-runtime/package.json
+++ b/node_modules/jest-circus/node_modules/jest-runtime/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-runtime",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,41 +10,41 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/console": "^26.3.0",
-    "@jest/environment": "^26.3.0",
-    "@jest/fake-timers": "^26.3.0",
-    "@jest/globals": "^26.4.2",
-    "@jest/source-map": "^26.3.0",
-    "@jest/test-result": "^26.3.0",
-    "@jest/transform": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/console": "^26.5.2",
+    "@jest/environment": "^26.5.2",
+    "@jest/fake-timers": "^26.5.2",
+    "@jest/globals": "^26.5.3",
+    "@jest/source-map": "^26.5.0",
+    "@jest/test-result": "^26.5.2",
+    "@jest/transform": "^26.5.2",
+    "@jest/types": "^26.5.2",
     "@types/yargs": "^15.0.0",
     "chalk": "^4.0.0",
     "collect-v8-coverage": "^1.0.0",
     "exit": "^0.1.2",
     "glob": "^7.1.3",
     "graceful-fs": "^4.2.4",
-    "jest-config": "^26.4.2",
-    "jest-haste-map": "^26.3.0",
-    "jest-message-util": "^26.3.0",
-    "jest-mock": "^26.3.0",
+    "jest-config": "^26.5.3",
+    "jest-haste-map": "^26.5.2",
+    "jest-message-util": "^26.5.2",
+    "jest-mock": "^26.5.2",
     "jest-regex-util": "^26.0.0",
-    "jest-resolve": "^26.4.0",
-    "jest-snapshot": "^26.4.2",
-    "jest-util": "^26.3.0",
-    "jest-validate": "^26.4.2",
+    "jest-resolve": "^26.5.2",
+    "jest-snapshot": "^26.5.3",
+    "jest-util": "^26.5.2",
+    "jest-validate": "^26.5.3",
     "slash": "^3.0.0",
     "strip-bom": "^4.0.0",
-    "yargs": "^15.3.1"
+    "yargs": "^15.4.1"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "@types/exit": "^0.1.30",
     "@types/glob": "^7.1.1",
     "@types/graceful-fs": "^4.1.2",
     "@types/node": "^14.0.27",
     "execa": "^4.0.0",
-    "jest-environment-node": "^26.3.0",
+    "jest-environment-node": "^26.5.2",
     "jest-snapshot-serializer-raw": "^1.1.0"
   },
   "bin": "./bin/jest-runtime.js",
@@ -54,5 +54,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-serializer/build/index.d.ts b/node_modules/jest-circus/node_modules/jest-serializer/build/index.d.ts
index fe76bde..af6694e 100644
--- a/node_modules/jest-circus/node_modules/jest-serializer/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-serializer/build/index.d.ts
@@ -7,9 +7,9 @@
 /// <reference path="../v8.d.ts" />
 /// <reference types="node" />
 declare type Path = string;
-export declare function deserialize(buffer: Buffer): any;
+export declare function deserialize(buffer: Buffer): unknown;
 export declare function serialize(content: unknown): Buffer;
-export declare function readFileSync(filePath: Path): any;
+export declare function readFileSync(filePath: Path): unknown;
 export declare function writeFileSync(filePath: Path, content: unknown): void;
 declare const _default: {
     deserialize: typeof deserialize;
diff --git a/node_modules/jest-circus/node_modules/jest-serializer/package.json b/node_modules/jest-circus/node_modules/jest-serializer/package.json
index 08635bd..28df711 100644
--- a/node_modules/jest-circus/node_modules/jest-serializer/package.json
+++ b/node_modules/jest-circus/node_modules/jest-serializer/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-serializer",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/State.d.ts b/node_modules/jest-circus/node_modules/jest-snapshot/build/State.d.ts
index 6fb05fc..908ccf0 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/State.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/State.d.ts
@@ -5,10 +5,11 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { Config } from '@jest/types';
+import type { BabelTraverse, Prettier } from './types';
 export declare type SnapshotStateOptions = {
     updateSnapshot: Config.SnapshotUpdateState;
-    getPrettier: () => null | typeof import('prettier');
-    getBabelTraverse: () => Function;
+    getPrettier: () => null | Prettier;
+    getBabelTraverse: () => BabelTraverse;
     expand?: boolean;
 };
 export declare type SnapshotMatchOptions = {
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/index.d.ts b/node_modules/jest-circus/node_modules/jest-snapshot/build/index.d.ts
index 8542577..ce30682 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/index.d.ts
@@ -8,7 +8,7 @@
 import type { FS as HasteFS } from 'jest-haste-map';
 import { SnapshotResolver as JestSnapshotResolver } from './snapshot_resolver';
 import SnapshotState from './State';
-import type { Context } from './types';
+import type { Context, ExpectationResult } from './types';
 import * as utils from './utils';
 declare const JestSnapshot: {
     EXTENSION: string;
@@ -21,82 +21,10 @@
     };
     getSerializers: () => import("pretty-format/build/types").Plugins;
     isSnapshotPath: (path: string) => boolean;
-    toMatchInlineSnapshot: (this: Context, received: any, propertiesOrSnapshot?: string | object | undefined, inlineSnapshot?: string | undefined) => {
-        message: () => string;
-        name: string;
-        pass: boolean;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        message: () => string;
-        pass: boolean;
-        name?: undefined;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        actual: string;
-        expected: string | undefined;
-        message: () => string;
-        name: string;
-        pass: boolean;
-    };
-    toMatchSnapshot: (this: Context, received: any, propertiesOrHint?: string | object | undefined, hint?: string | undefined) => {
-        message: () => string;
-        name: string;
-        pass: boolean;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        message: () => string;
-        pass: boolean;
-        name?: undefined;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        actual: string;
-        expected: string | undefined;
-        message: () => string;
-        name: string;
-        pass: boolean;
-    };
-    toThrowErrorMatchingInlineSnapshot: (this: Context, received: any, inlineSnapshot?: string | undefined, fromPromise?: boolean | undefined) => {
-        message: () => string;
-        name: string;
-        pass: boolean;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        message: () => string;
-        pass: boolean;
-        name?: undefined;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        actual: string;
-        expected: string | undefined;
-        message: () => string;
-        name: string;
-        pass: boolean;
-    };
-    toThrowErrorMatchingSnapshot: (this: Context, received: any, hint: string | undefined, fromPromise: boolean) => {
-        message: () => string;
-        name: string;
-        pass: boolean;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        message: () => string;
-        pass: boolean;
-        name?: undefined;
-        actual?: undefined;
-        expected?: undefined;
-    } | {
-        actual: string;
-        expected: string | undefined;
-        message: () => string;
-        name: string;
-        pass: boolean;
-    };
+    toMatchInlineSnapshot: (this: Context, received: unknown, propertiesOrSnapshot?: string | object | undefined, inlineSnapshot?: string | undefined) => ExpectationResult;
+    toMatchSnapshot: (this: Context, received: unknown, propertiesOrHint?: string | object | undefined, hint?: string | undefined) => ExpectationResult;
+    toThrowErrorMatchingInlineSnapshot: (this: Context, received: unknown, inlineSnapshot?: string | undefined, fromPromise?: boolean | undefined) => ExpectationResult;
+    toThrowErrorMatchingSnapshot: (this: Context, received: unknown, hint: string | undefined, fromPromise: boolean) => ExpectationResult;
     utils: typeof utils;
 };
 declare namespace JestSnapshot {
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/index.js b/node_modules/jest-circus/node_modules/jest-snapshot/build/index.js
index db825d4..2eee218 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/index.js
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/index.js
@@ -609,6 +609,4 @@
   toThrowErrorMatchingSnapshot,
   utils
 };
-/* eslint-disable-next-line no-redeclare */
-
 module.exports = JestSnapshot;
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.d.ts b/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.d.ts
index d464200..5ddaa57 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.d.ts
@@ -5,8 +5,9 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { Frame } from 'jest-message-util';
+import type { BabelTraverse, Prettier } from './types';
 export declare type InlineSnapshot = {
     snapshot: string;
     frame: Frame;
 };
-export declare function saveInlineSnapshots(snapshots: Array<InlineSnapshot>, prettier: typeof import('prettier') | null, babelTraverse: Function): void;
+export declare function saveInlineSnapshots(snapshots: Array<InlineSnapshot>, prettier: Prettier | null, babelTraverse: BabelTraverse): void;
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.js b/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.js
index 823be44..f02a55b 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.js
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/inline_snapshots.js
@@ -111,6 +111,7 @@
       })
     : null; // Detect the parser for the test file.
   // For older versions of Prettier, fallback to a simple parser detection.
+  // @ts-expect-error
 
   const inferredParser = prettier.getFileInfo
     ? prettier.getFileInfo.sync(sourceFilePath).inferredParser
@@ -279,6 +280,8 @@
   const ast = getAst(parsers, inferredParser, text);
   babelTraverse(ast, {
     CallExpression({node: {arguments: args, callee}}) {
+      var _options$tabWidth, _options$tabWidth2;
+
       if (
         callee.type !== 'MemberExpression' ||
         callee.property.type !== 'Identifier' ||
@@ -310,10 +313,21 @@
         snapshot,
         Math.ceil(
           useSpaces
-            ? callee.loc.start.column / options.tabWidth
+            ? callee.loc.start.column /
+                ((_options$tabWidth = options.tabWidth) !== null &&
+                _options$tabWidth !== void 0
+                  ? _options$tabWidth
+                  : 1)
             : callee.loc.start.column / 2 // Each tab is 2 characters.
         ),
-        useSpaces ? ' '.repeat(options.tabWidth) : '\t'
+        useSpaces
+          ? ' '.repeat(
+              (_options$tabWidth2 = options.tabWidth) !== null &&
+                _options$tabWidth2 !== void 0
+                ? _options$tabWidth2
+                : 1
+            )
+          : '\t'
       );
       const replacementNode = (0, _types.templateLiteral)(
         [
@@ -336,5 +350,5 @@
     return 'typescript';
   }
 
-  return 'babylon';
+  return 'babel';
 };
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/printSnapshot.js b/node_modules/jest-circus/node_modules/jest-snapshot/build/printSnapshot.js
index c85c3c4..79da9ff 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/printSnapshot.js
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/printSnapshot.js
@@ -33,6 +33,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 // Temporary hack because getObjectSubset has known limitations,
 // is not in the public interface of the expect package,
 // and the long-term goal is to use a non-serialization diff.
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/build/types.d.ts b/node_modules/jest-circus/node_modules/jest-snapshot/build/types.d.ts
index 47c2c6a..e4f2283 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/build/types.d.ts
@@ -19,3 +19,9 @@
     received: any;
 };
 export declare type SnapshotData = Record<string, string>;
+export declare type ExpectationResult = {
+    pass: boolean;
+    message: () => string;
+};
+export declare type BabelTraverse = typeof import('@babel/traverse').default;
+export declare type Prettier = typeof import('prettier');
diff --git a/node_modules/jest-circus/node_modules/jest-snapshot/package.json b/node_modules/jest-circus/node_modules/jest-snapshot/package.json
index 4b701b5..334923e 100644
--- a/node_modules/jest-circus/node_modules/jest-snapshot/package.json
+++ b/node_modules/jest-circus/node_modules/jest-snapshot/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-snapshot",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,19 +11,20 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/types": "^7.0.0",
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
+    "@types/babel__traverse": "^7.0.4",
     "@types/prettier": "^2.0.0",
     "chalk": "^4.0.0",
-    "expect": "^26.4.2",
+    "expect": "^26.5.3",
     "graceful-fs": "^4.2.4",
-    "jest-diff": "^26.4.2",
+    "jest-diff": "^26.5.2",
     "jest-get-type": "^26.3.0",
-    "jest-haste-map": "^26.3.0",
-    "jest-matcher-utils": "^26.4.2",
-    "jest-message-util": "^26.3.0",
-    "jest-resolve": "^26.4.0",
+    "jest-haste-map": "^26.5.2",
+    "jest-matcher-utils": "^26.5.2",
+    "jest-message-util": "^26.5.2",
+    "jest-resolve": "^26.5.2",
     "natural-compare": "^1.4.0",
-    "pretty-format": "^26.4.2",
+    "pretty-format": "^26.5.2",
     "semver": "^7.3.2"
   },
   "devDependencies": {
@@ -41,5 +42,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-util/build/ErrorWithStack.d.ts b/node_modules/jest-circus/node_modules/jest-util/build/ErrorWithStack.d.ts
index 2698f36..79764bd 100644
--- a/node_modules/jest-circus/node_modules/jest-util/build/ErrorWithStack.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-util/build/ErrorWithStack.d.ts
@@ -5,5 +5,5 @@
  * LICENSE file in the root directory of this source tree.
  */
 export default class ErrorWithStack extends Error {
-    constructor(message: string | undefined, callsite: Function);
+    constructor(message: string | undefined, callsite: (...args: Array<any>) => unknown);
 }
diff --git a/node_modules/jest-circus/node_modules/jest-util/build/convertDescriptorToString.js b/node_modules/jest-circus/node_modules/jest-util/build/convertDescriptorToString.js
index 0cfab68..4b776af 100644
--- a/node_modules/jest-circus/node_modules/jest-util/build/convertDescriptorToString.js
+++ b/node_modules/jest-circus/node_modules/jest-util/build/convertDescriptorToString.js
@@ -11,6 +11,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 // See: https://github.com/facebook/jest/pull/5154
 function convertDescriptorToString(descriptor) {
   if (
diff --git a/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.d.ts b/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.d.ts
index 4e6cc5b..687684f 100644
--- a/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.d.ts
@@ -5,6 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { Config } from '@jest/types';
+declare type Matcher = (str: Config.Path) => boolean;
 /**
  * Converts a list of globs into a function that matches a path against the
  * globs.
@@ -22,4 +23,5 @@
  * isMatch('pizza.js'); // true
  * isMatch('pizza.test.js'); // false
  */
-export default function globsToMatcher(globs: Array<Config.Glob>): (path: Config.Path) => boolean;
+export default function globsToMatcher(globs: Array<Config.Glob>): Matcher;
+export {};
diff --git a/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.js b/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.js
index e517762..9e63c5c 100644
--- a/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.js
+++ b/node_modules/jest-circus/node_modules/jest-util/build/globsToMatcher.js
@@ -55,7 +55,7 @@
   if (globs.length === 0) {
     // Since there were no globs given, we can simply have a fast path here and
     // return with a very simple function.
-    return _ => false;
+    return () => false;
   }
 
   const matchers = globs.map(glob => {
diff --git a/node_modules/jest-circus/node_modules/jest-util/package.json b/node_modules/jest-circus/node_modules/jest-util/package.json
index 01d0850..b584b93 100644
--- a/node_modules/jest-circus/node_modules/jest-util/package.json
+++ b/node_modules/jest-circus/node_modules/jest-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
@@ -28,5 +28,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/condition.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/condition.d.ts
index 1cce38f..4411c91 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/condition.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/condition.d.ts
@@ -6,4 +6,4 @@
  */
 export declare function getValues<T = unknown>(validOption: T): Array<T>;
 export declare function validationCondition(option: unknown, validOption: unknown): boolean;
-export declare function multipleValidOptions<T extends Array<any>>(...args: T): T[number];
+export declare function multipleValidOptions<T extends Array<unknown>>(...args: T): T[number];
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/deprecated.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/deprecated.d.ts
index 7eb9b47..b8cf9e0 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/deprecated.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/deprecated.d.ts
@@ -5,4 +5,4 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { DeprecatedOptions, ValidationOptions } from './types';
-export declare const deprecationWarning: (config: Record<string, any>, option: string, deprecatedOptions: DeprecatedOptions, options: ValidationOptions) => boolean;
+export declare const deprecationWarning: (config: Record<string, unknown>, option: string, deprecatedOptions: DeprecatedOptions, options: ValidationOptions) => boolean;
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/exampleConfig.js b/node_modules/jest-circus/node_modules/jest-validate/build/exampleConfig.js
index c4eda4d..555ea05 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/exampleConfig.js
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/exampleConfig.js
@@ -16,7 +16,7 @@
   condition: () => true,
   deprecate: () => false,
   deprecatedConfig: {
-    key: () => {}
+    key: () => 'Deprecation message'
   },
   error: () => {},
   exampleConfig: {
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/index.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/index.d.ts
index 586ceeb..86ae3ad 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/index.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/index.d.ts
@@ -5,6 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 export { ValidationError, createDidYouMeanMessage, format, logValidationWarning, } from './utils';
+export type { DeprecatedOptions } from './types';
 export { default as validate } from './validate';
 export { default as validateCLIOptions } from './validateCLIOptions';
 export { multipleValidOptions } from './condition';
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/types.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/types.d.ts
index 0a7424b..29af3a8 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/types.d.ts
@@ -9,17 +9,18 @@
     error?: string;
     warning?: string;
 };
-export declare type DeprecatedOptions = Record<string, Function>;
+export declare type DeprecatedOptionFunc = (arg: Record<string, unknown>) => string;
+export declare type DeprecatedOptions = Record<string, DeprecatedOptionFunc>;
 export declare type ValidationOptions = {
     comment?: string;
-    condition?: (option: any, validOption: any) => boolean;
-    deprecate?: (config: Record<string, any>, option: string, deprecatedOptions: DeprecatedOptions, options: ValidationOptions) => boolean;
+    condition?: (option: unknown, validOption: unknown) => boolean;
+    deprecate?: (config: Record<string, unknown>, option: string, deprecatedOptions: DeprecatedOptions, options: ValidationOptions) => boolean;
     deprecatedConfig?: DeprecatedOptions;
-    error?: (option: string, received: any, defaultValue: any, options: ValidationOptions, path?: Array<string>) => void;
-    exampleConfig: Record<string, any>;
+    error?: (option: string, received: unknown, defaultValue: unknown, options: ValidationOptions, path?: Array<string>) => void;
+    exampleConfig: Record<string, unknown>;
     recursive?: boolean;
     recursiveBlacklist?: Array<string>;
     title?: Title;
-    unknown?: (config: Record<string, any>, exampleConfig: Record<string, any>, option: string, options: ValidationOptions, path?: Array<string>) => void;
+    unknown?: (config: Record<string, unknown>, exampleConfig: Record<string, unknown>, option: string, options: ValidationOptions, path?: Array<string>) => void;
 };
 export {};
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/validate.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/validate.d.ts
index f8cff6f..24a49af 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/validate.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/validate.d.ts
@@ -6,7 +6,7 @@
  */
 import type { ValidationOptions } from './types';
 declare let hasDeprecationWarnings: boolean;
-declare const validate: (config: Record<string, any>, options: ValidationOptions) => {
+declare const validate: (config: Record<string, unknown>, options: ValidationOptions) => {
     hasDeprecationWarnings: boolean;
     isValid: boolean;
 };
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/validateCLIOptions.js b/node_modules/jest-circus/node_modules/jest-validate/build/validateCLIOptions.js
index 955304e..f33a189 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/validateCLIOptions.js
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/validateCLIOptions.js
@@ -60,10 +60,13 @@
 
   if (unrecognizedOptions.length === 1) {
     const unrecognized = unrecognizedOptions[0];
-    const didYouMeanMessage = (0, _utils.createDidYouMeanMessage)(
-      unrecognized,
-      Array.from(allowedOptions)
-    );
+    const didYouMeanMessage =
+      unrecognized.length > 1
+        ? (0, _utils.createDidYouMeanMessage)(
+            unrecognized,
+            Array.from(allowedOptions)
+          )
+        : '';
     message =
       `  Unrecognized option ${_chalk().default.bold(
         (0, _utils.format)(unrecognized)
@@ -97,6 +100,7 @@
   const unrecognizedOptions = Object.keys(argv).filter(
     arg =>
       !allowedOptions.has((0, _camelcase().default)(arg)) &&
+      !allowedOptions.has(arg) &&
       (!rawArgv.length || rawArgv.includes(arg)),
     []
   );
diff --git a/node_modules/jest-circus/node_modules/jest-validate/build/warnings.d.ts b/node_modules/jest-circus/node_modules/jest-validate/build/warnings.d.ts
index 421ec17..70ff76c 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/build/warnings.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-validate/build/warnings.d.ts
@@ -5,4 +5,4 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { ValidationOptions } from './types';
-export declare const unknownOptionWarning: (config: Record<string, any>, exampleConfig: Record<string, any>, option: string, options: ValidationOptions, path?: string[] | undefined) => void;
+export declare const unknownOptionWarning: (config: Record<string, unknown>, exampleConfig: Record<string, unknown>, option: string, options: ValidationOptions, path?: string[] | undefined) => void;
diff --git a/node_modules/jest-circus/node_modules/jest-validate/package.json b/node_modules/jest-circus/node_modules/jest-validate/package.json
index 40fd3d6..0b477da 100644
--- a/node_modules/jest-circus/node_modules/jest-validate/package.json
+++ b/node_modules/jest-circus/node_modules/jest-validate/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-validate",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,12 +10,12 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "camelcase": "^6.0.0",
     "chalk": "^4.0.0",
     "jest-get-type": "^26.3.0",
     "leven": "^3.1.0",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
     "@types/yargs": "^15.0.3"
@@ -26,5 +26,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-circus/node_modules/jest-worker/README.md b/node_modules/jest-circus/node_modules/jest-worker/README.md
index efc91bb..d0523c9 100644
--- a/node_modules/jest-circus/node_modules/jest-worker/README.md
+++ b/node_modules/jest-circus/node_modules/jest-worker/README.md
@@ -87,8 +87,6 @@
 
 Provide a custom worker pool to be used for spawning child processes. By default, Jest will use a node thread pool if available and fall back to child process threads.
 
-The arguments that will be passed to the `setup` method during initialization.
-
 #### `enableWorkerThreads: boolean` (optional)
 
 `jest-worker` will automatically detect if `worker_threads` are available, but will not use them unless passed `enableWorkerThreads: true`.
diff --git a/node_modules/jest-circus/node_modules/jest-worker/build/types.d.ts b/node_modules/jest-circus/node_modules/jest-worker/build/types.d.ts
index a42d7f1..81e109e 100644
--- a/node_modules/jest-circus/node_modules/jest-worker/build/types.d.ts
+++ b/node_modules/jest-circus/node_modules/jest-worker/build/types.d.ts
@@ -77,29 +77,41 @@
     port1: MessagePort;
     port2: MessagePort;
 };
-export declare type ChildMessageInitialize = [typeof CHILD_MESSAGE_INITIALIZE, // type
-boolean, // processed
-string, // file
-// file
-Array<unknown> | undefined, // setupArgs
-// setupArgs
-MessagePort | undefined];
-export declare type ChildMessageCall = [typeof CHILD_MESSAGE_CALL, // type
-boolean, // processed
-string, // method
-Array<unknown>];
-export declare type ChildMessageEnd = [typeof CHILD_MESSAGE_END, // type
-boolean];
+export declare type ChildMessageInitialize = [
+    typeof CHILD_MESSAGE_INITIALIZE,
+    boolean,
+    string,
+    // file
+    Array<unknown> | undefined,
+    // setupArgs
+    MessagePort | undefined
+];
+export declare type ChildMessageCall = [
+    typeof CHILD_MESSAGE_CALL,
+    boolean,
+    string,
+    Array<unknown>
+];
+export declare type ChildMessageEnd = [
+    typeof CHILD_MESSAGE_END,
+    boolean
+];
 export declare type ChildMessage = ChildMessageInitialize | ChildMessageCall | ChildMessageEnd;
-export declare type ParentMessageCustom = [typeof PARENT_MESSAGE_CUSTOM, // type
-unknown];
-export declare type ParentMessageOk = [typeof PARENT_MESSAGE_OK, // type
-unknown];
-export declare type ParentMessageError = [PARENT_MESSAGE_ERROR, // type
-string, // constructor
-string, // message
-string, // stack
-unknown];
+export declare type ParentMessageCustom = [
+    typeof PARENT_MESSAGE_CUSTOM,
+    unknown
+];
+export declare type ParentMessageOk = [
+    typeof PARENT_MESSAGE_OK,
+    unknown
+];
+export declare type ParentMessageError = [
+    PARENT_MESSAGE_ERROR,
+    string,
+    string,
+    string,
+    unknown
+];
 export declare type ParentMessage = ParentMessageOk | ParentMessageError | ParentMessageCustom;
 export declare type OnStart = (worker: WorkerInterface) => void;
 export declare type OnEnd = (err: Error | null, result: unknown) => void;
diff --git a/node_modules/jest-circus/node_modules/jest-worker/build/workers/processChild.js b/node_modules/jest-circus/node_modules/jest-worker/build/workers/processChild.js
index 75cc9bb..a4f5acb 100644
--- a/node_modules/jest-circus/node_modules/jest-worker/build/workers/processChild.js
+++ b/node_modules/jest-circus/node_modules/jest-worker/build/workers/processChild.js
@@ -133,6 +133,11 @@
   execFunction(main.setup, main, setupArgs, execHelper, reportInitializeError);
 }
 
+const isPromise = obj =>
+  !!obj &&
+  (typeof obj === 'object' || typeof obj === 'function') &&
+  typeof obj.then === 'function';
+
 function execFunction(fn, ctx, args, onResult, onError) {
   let result;
 
@@ -143,7 +148,7 @@
     return;
   }
 
-  if (result && typeof result.then === 'function') {
+  if (isPromise(result)) {
     result.then(onResult, onError);
   } else {
     onResult(result);
diff --git a/node_modules/jest-circus/node_modules/jest-worker/build/workers/threadChild.js b/node_modules/jest-circus/node_modules/jest-worker/build/workers/threadChild.js
index 6a696c5..ef32c5b 100644
--- a/node_modules/jest-circus/node_modules/jest-worker/build/workers/threadChild.js
+++ b/node_modules/jest-circus/node_modules/jest-worker/build/workers/threadChild.js
@@ -146,6 +146,11 @@
   execFunction(main.setup, main, setupArgs, execHelper, reportInitializeError);
 }
 
+const isPromise = obj =>
+  !!obj &&
+  (typeof obj === 'object' || typeof obj === 'function') &&
+  typeof obj.then === 'function';
+
 function execFunction(fn, ctx, args, onResult, onError) {
   let result;
 
@@ -156,7 +161,7 @@
     return;
   }
 
-  if (result && typeof result.then === 'function') {
+  if (isPromise(result)) {
     result.then(onResult, onError);
   } else {
     onResult(result);
diff --git a/node_modules/jest-circus/node_modules/jest-worker/package.json b/node_modules/jest-circus/node_modules/jest-worker/package.json
index f40a627..5029e52 100644
--- a/node_modules/jest-circus/node_modules/jest-worker/package.json
+++ b/node_modules/jest-circus/node_modules/jest-worker/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-worker",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -17,7 +17,7 @@
   "devDependencies": {
     "@types/merge-stream": "^1.1.2",
     "@types/supports-color": "^5.3.0",
-    "get-stream": "^5.1.0",
+    "get-stream": "^6.0.0",
     "worker-farm": "^1.6.0"
   },
   "engines": {
@@ -26,5 +26,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-circus/node_modules/jsdom/Changelog.md b/node_modules/jest-circus/node_modules/jsdom/Changelog.md
index a162287..a05cde7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/Changelog.md
+++ b/node_modules/jest-circus/node_modules/jsdom/Changelog.md
@@ -1,3 +1,5 @@
+# jsdom Changelog
+
 <!-- Style guide:
 
 * Use past tense verbs to start the sentence, e.g. "Fixed", "Added", "Removed", ...
@@ -24,6 +26,29 @@
 * Roughly order changes within those groupings by impact.
 -->
 
+## 16.4.0
+
+* Added a not-implemented warning if you try to use the second pseudo-element argument to `getComputedStyle()`, unless you pass a `::part` or `::slotted` pseudo-element, in which case we throw an error per the spec. (ExE-Boss)
+* Improved the performance of repeated access to `el.tagName`, which also indirectly improves performance of selector matching and style computation. (eps1lon)
+* Fixed `form.elements` to respect the `form=""` attribute, so that it can contain non-descendant form controls. (ccwebdesign)
+* Fixed `el.focus()` to do nothing on disconnected elements. (eps1lon)
+* Fixed `el.focus()` to work on SVG elements. (zjffun)
+* Fixed removing the currently-focused element to move focus to the `<body>` element. (eps1lon)
+* Fixed `imgEl.complete` to return true for `<img>` elements with empty or unset `src=""` attributes. (strager)
+* Fixed `imgEl.complete` to return true if an error occurs loading the `<img>`, when canvas is enabled. (strager)
+* Fixed `imgEl.complete` to return false if the `<img>` element's `src=""` attribute is reset. (strager)
+* Fixed the `valueMissing` validation check for `<input type="radio">`. (zjffun)
+* Fixed `translate=""` and `draggable=""` attribute processing to use ASCII case-insensitivity, instead of Unicode case-insensitivity. (zjffun)
+
+## 16.3.0
+
+* Added firing of `focusin` and `focusout` when using `el.focus()` and `el.blur()`. (trueadm)
+* Fixed elements with the `contenteditable=""` attribute to be considered as focusable. (jamieliu386)
+* Fixed `window.NodeFilter` to be per-`Window`, instead of shared across all `Window`s. (ExE-Boss)
+* Fixed edge-case behavior involving use of objects with `handleEvent` properties as event listeners. (ExE-Boss)
+* Fixed a second failing image load sometimes firing a `load` event instead of an `error` event, when the `canvas` package is installed. (strager)
+* Fixed drawing an empty canvas into another canvas. (zjffun)
+
 ## 16.2.2
 
 * Updated `StyleSheetList` for better spec compliance; notably it no longer inherits from `Array.prototype`. (ExE-Boss)
diff --git a/node_modules/jest-circus/node_modules/jsdom/README.md b/node_modules/jest-circus/node_modules/jsdom/README.md
index dc4f270..d3047e4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/README.md
+++ b/node_modules/jest-circus/node_modules/jsdom/README.md
@@ -85,7 +85,7 @@
 
 Again we emphasize to only use this when feeding jsdom code you know is safe. If you use it on arbitrary user-supplied code, or code from the Internet, you are effectively running untrusted Node.js code, and your machine could be compromised.
 
-If you want to execute _external_ scripts, included via `<script src="">`, you'll also need to ensure that they load them. To do this, add the option `resources: "usable"` [as described below](#loading-subresources).
+If you want to execute _external_ scripts, included via `<script src="">`, you'll also need to ensure that they load them. To do this, add the option `resources: "usable"` [as described below](#loading-subresources). (You'll likely also want to set the `url` option, for the reasons discussed there.)
 
 Event handler attributes, like `<div onclick="">`, are also governed by this setting; they will not function unless `runScripts` is set to `"dangerously"`. (However, event handler _properties_, like `div.onclick = ...`, will function regardless of `runScripts`.)
 
@@ -137,6 +137,8 @@
 * Scripts, via `<script>`, but only if `runScripts: "dangerously"` is also set
 * Images, via `<img>`, but only if the `canvas` npm package is also installed (see "[Canvas Support](#canvas-support)" below)
 
+When attempting to load resources, recall that the default value for the `url` option is `"about:blank"`, which means that any resources included via relative URLs will fail to load. (The result of trying to parse the URL `/something` against the URL `about:blank` is an error.) So, you'll likely want to set a non-default value for the `url` option in those cases, or use one of the [convenience APIs](#convenience-apis) that do so automatically.
+
 #### Advanced configuration
 
 _This resource loader system is new as of jsdom v12.0.0, and we'd love your feedback on whether it meets your needs and how easy it is to use. Please file an issue to discuss!_
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/browser/Window.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/browser/Window.js
index 5a4c40b..0f11836 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/browser/Window.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/browser/Window.js
@@ -26,8 +26,8 @@
 const reportException = require("../living/helpers/runtime-script-errors");
 const { fireAnEvent } = require("../living/helpers/events");
 const SessionHistory = require("../living/window/SessionHistory");
-const { forEachMatchingSheetRuleOfElement, getResolvedValue, propertiesWithResolvedValueImplemented } =
-  require("../living/helpers/style-rules");
+const { forEachMatchingSheetRuleOfElement, getResolvedValue, propertiesWithResolvedValueImplemented,
+  SHADOW_DOM_PSEUDO_REGEXP } = require("../living/helpers/style-rules.js");
 const CustomElementRegistry = require("../living/generated/CustomElementRegistry");
 const jsGlobals = require("./js-globals.json");
 
@@ -60,7 +60,7 @@
     }
   }
 
-  installInterfaces(windowInstance);
+  installInterfaces(windowInstance, ["Window"]);
 
   const EventTargetConstructor = windowInstance.EventTarget;
 
@@ -642,6 +642,20 @@
 
   this.getComputedStyle = function (elt) {
     elt = Element.convert(elt);
+    let pseudoElt = arguments[1];
+    if (pseudoElt !== undefined && pseudoElt !== null) {
+      pseudoElt = webIDLConversions.DOMString(pseudoElt);
+    }
+
+    if (pseudoElt !== undefined && pseudoElt !== null && pseudoElt !== "") {
+      // TODO: Parse pseudoElt
+
+      if (SHADOW_DOM_PSEUDO_REGEXP.test(pseudoElt)) {
+        throw new TypeError("Tried to get the computed style of a Shadow DOM pseudo-element.");
+      }
+
+      notImplemented("window.computedStyle(elt, pseudoElt)", this);
+    }
 
     const declaration = new CSSStyleDeclaration();
     const { forEach } = Array.prototype;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
index 642e510..f5dfe6a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js
@@ -25,13 +25,6 @@
   }
 
   addEventListener(type, callback, options) {
-    // webidl2js currently can't handle neither optional arguments nor callback interfaces
-    if (callback === undefined || callback === null) {
-      callback = null;
-    } else if (typeof callback !== "object" && typeof callback !== "function") {
-      throw new TypeError("Only undefined, null, an object, or a function are allowed for the callback parameter");
-    }
-
     options = normalizeEventHandlerOptions(options, ["capture", "once", "passive"]);
 
     if (callback === null) {
@@ -44,7 +37,10 @@
 
     for (let i = 0; i < this._eventListeners[type].length; ++i) {
       const listener = this._eventListeners[type][i];
-      if (listener.options.capture === options.capture && listener.callback === callback) {
+      if (
+        listener.callback.objectReference === callback.objectReference &&
+        listener.options.capture === options.capture
+      ) {
         return;
       }
     }
@@ -56,12 +52,6 @@
   }
 
   removeEventListener(type, callback, options) {
-    if (callback === undefined || callback === null) {
-      callback = null;
-    } else if (typeof callback !== "object" && typeof callback !== "function") {
-      throw new TypeError("Only undefined, null, an object, or a function are allowed for the callback parameter");
-    }
-
     options = normalizeEventHandlerOptions(options, ["capture"]);
 
     if (callback === null) {
@@ -75,7 +65,10 @@
 
     for (let i = 0; i < this._eventListeners[type].length; ++i) {
       const listener = this._eventListeners[type][i];
-      if (listener.callback === callback && listener.options.capture === options.capture) {
+      if (
+        listener.callback.objectReference === callback.objectReference &&
+        listener.options.capture === options.capture
+      ) {
         this._eventListeners[type].splice(i, 1);
         break;
       }
@@ -322,13 +315,7 @@
     }
 
     try {
-      if (typeof listener.callback === "object") {
-        if (typeof listener.callback.handleEvent === "function") {
-          listener.callback.handleEvent(idlUtils.wrapperForImpl(eventImpl));
-        }
-      } else {
-        listener.callback.call(eventImpl.currentTarget, idlUtils.wrapperForImpl(eventImpl));
-      }
+      listener.callback.call(eventImpl.currentTarget, eventImpl);
     } catch (e) {
       let window = null;
       if (wrapper && wrapper._document) {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
index d7d81ef..e931d5d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "AbortController";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'AbortController'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor AbortController is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class AbortController {
     constructor() {
       return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
index 38844b5..a85ca31 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "AbortSignal";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'AbortSignal'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor AbortSignal is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate AbortSignal before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
index 58963fe..ff48048 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "AbstractRange";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'AbstractRange'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor AbstractRange is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class AbstractRange {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
index fb552cc..adea232 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js
@@ -12,7 +12,7 @@
     const key = "once";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member once that" });
+      value = conversions["boolean"](value, { context: context + " has member 'once' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "passive";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member passive that" });
+      value = conversions["boolean"](value, { context: context + " has member 'passive' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
index 0dba079..42eae77 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js
@@ -8,7 +8,7 @@
     const key = "flatten";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member flatten that" });
+      value = conversions["boolean"](value, { context: context + " has member 'flatten' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Attr.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
index e6d5ed9..19149db 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Attr.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "Attr";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Attr'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor Attr is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate Attr before Node");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
index 65a8e3e..9353194 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "BarProp";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'BarProp'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor BarProp is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class BarProp {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
index b0a05e6..1e3e7fc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for BinaryType`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for BinaryType`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Blob.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
index 9de45e9..5198e0e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Blob.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "Blob";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Blob'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,32 +32,59 @@
     throw new Error("Internal error: constructor Blob is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Blob {
     constructor() {
       const args = [];
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
index 5008b52..6117142 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js
@@ -10,7 +10,7 @@
     const key = "endings";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = EndingType.convert(value, { context: context + " has member endings that" });
+      value = EndingType.convert(value, { context: context + " has member 'endings' that" });
 
       ret[key] = value;
     } else {
@@ -22,7 +22,7 @@
     const key = "type";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member type that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'type' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
index ca7ca1f..d85da50 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "CDATASection";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CDATASection'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor CDATASection is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Text._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Text._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Text === undefined) {
     throw new Error("Internal error: attempting to evaluate CDATASection before Text");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js
index afe5692..48dc3be 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for CanPlayTypeResult`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for CanPlayTypeResult`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
index 5aedd20..bc7be95 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "CharacterData";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CharacterData'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor CharacterData is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate CharacterData before Node");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
index fa3d0c6..6c3e58d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "CloseEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CloseEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor CloseEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate CloseEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
index 1540401..e62f74d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js
@@ -12,7 +12,7 @@
     const key = "code";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned short"](value, { context: context + " has member code that" });
+      value = conversions["unsigned short"](value, { context: context + " has member 'code' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "reason";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member reason that" });
+      value = conversions["USVString"](value, { context: context + " has member 'reason' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "wasClean";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member wasClean that" });
+      value = conversions["boolean"](value, { context: context + " has member 'wasClean' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Comment.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
index 2fde671..d60ee03 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Comment.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "Comment";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Comment'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor Comment is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  CharacterData._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  CharacterData._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.CharacterData === undefined) {
     throw new Error("Internal error: attempting to evaluate Comment before CharacterData");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
index 690d847..572d140 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "CompositionEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CompositionEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor CompositionEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate CompositionEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
index e2cba0c..f3b8242 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js
@@ -12,7 +12,7 @@
     const key = "data";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member data that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'data' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
index d155acc..4c17bb1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "CustomElementRegistry";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CustomElementRegistry'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,32 +35,59 @@
     throw new Error("Internal error: constructor CustomElementRegistry is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class CustomElementRegistry {
     constructor() {
       throw new TypeError("Illegal constructor");
@@ -132,27 +159,31 @@
     }
 
     whenDefined(name) {
-      const esValue = this !== null && this !== undefined ? this : globalObject;
-      if (!exports.is(esValue)) {
-        throw new TypeError("Illegal invocation");
-      }
+      try {
+        const esValue = this !== null && this !== undefined ? this : globalObject;
+        if (!exports.is(esValue)) {
+          throw new TypeError("Illegal invocation");
+        }
 
-      if (arguments.length < 1) {
-        throw new TypeError(
-          "Failed to execute 'whenDefined' on 'CustomElementRegistry': 1 argument required, but only " +
-            arguments.length +
-            " present."
-        );
+        if (arguments.length < 1) {
+          throw new TypeError(
+            "Failed to execute 'whenDefined' on 'CustomElementRegistry': 1 argument required, but only " +
+              arguments.length +
+              " present."
+          );
+        }
+        const args = [];
+        {
+          let curArg = arguments[0];
+          curArg = conversions["DOMString"](curArg, {
+            context: "Failed to execute 'whenDefined' on 'CustomElementRegistry': parameter 1"
+          });
+          args.push(curArg);
+        }
+        return utils.tryWrapperForImpl(esValue[implSymbol].whenDefined(...args));
+      } catch (e) {
+        return Promise.reject(e);
       }
-      const args = [];
-      {
-        let curArg = arguments[0];
-        curArg = conversions["DOMString"](curArg, {
-          context: "Failed to execute 'whenDefined' on 'CustomElementRegistry': parameter 1"
-        });
-        args.push(curArg);
-      }
-      return utils.tryWrapperForImpl(esValue[implSymbol].whenDefined(...args));
     }
 
     upgrade(root) {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
index 2070862..004f694 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "CustomEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'CustomEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor CustomEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate CustomEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
index e89c69b..c241770 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js
@@ -12,7 +12,7 @@
     const key = "detail";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["any"](value, { context: context + " has member detail that" });
+      value = conversions["any"](value, { context: context + " has member 'detail' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
index e28842c..d64a16c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "DOMImplementation";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DOMImplementation'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,32 +32,59 @@
     throw new Error("Internal error: constructor DOMImplementation is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class DOMImplementation {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
index 269bb80..8b3f869 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "DOMParser";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DOMParser'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,32 +32,59 @@
     throw new Error("Internal error: constructor DOMParser is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class DOMParser {
     constructor() {
       return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
index 6a03c6c..8914cf3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "DOMStringMap";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DOMStringMap'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,41 +33,72 @@
     throw new Error("Internal error: constructor DOMStringMap is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+function makeProxy(wrapper, globalObject) {
+  let proxyHandler = proxyHandlerCache.get(globalObject);
+  if (proxyHandler === undefined) {
+    proxyHandler = new ProxyHandler(globalObject);
+    proxyHandlerCache.set(globalObject, proxyHandler);
+  }
+  return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  {
-    let proxyHandler = proxyHandlerCache.get(globalObject);
-    if (proxyHandler === undefined) {
-      proxyHandler = new ProxyHandler(globalObject);
-      proxyHandlerCache.set(globalObject, proxyHandler);
-    }
-    obj = new Proxy(obj, proxyHandler);
-  }
+  wrapper = makeProxy(wrapper, globalObject);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = makeProxy(wrapper, globalObject);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class DOMStringMap {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
index c8850ac..3bad047 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "DOMTokenList";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DOMTokenList'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,63 @@
     throw new Error("Internal error: constructor DOMTokenList is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class DOMTokenList {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Document.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Document.js
index 1298d99..e235fa3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Document.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Document.js
@@ -7,26 +7,27 @@
 const ceReactionsPreSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPreSteps;
 const ceReactionsPostSteps_helpers_custom_elements = require("../helpers/custom-elements.js").ceReactionsPostSteps;
 const Node = require("./Node.js");
+const NodeFilter = require("./NodeFilter.js");
 const HTMLElement = require("./HTMLElement.js");
 const implSymbol = utils.implSymbol;
 const ctorRegistrySymbol = utils.ctorRegistrySymbol;
 
 const interfaceName = "Document";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Document'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,19 +37,24 @@
     throw new Error("Internal error: constructor Document is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
+  return Object.create(ctor.prototype);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
 };
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
 };
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
 
   Object.defineProperties(
-    obj,
+    wrapper,
     Object.getOwnPropertyDescriptors({
       get location() {
         const esValue = this !== null && this !== undefined ? this : globalObject;
@@ -66,30 +72,57 @@
           throw new TypeError("Illegal invocation");
         }
 
-        this.location.href = V;
+        const Q = esValue["location"];
+        if (!utils.isObject(Q)) {
+          throw new TypeError("Property 'location' is not an object");
+        }
+        Reflect.set(Q, "href", V);
       }
     })
   );
 
-  Object.defineProperties(obj, { location: { configurable: false } });
+  Object.defineProperties(wrapper, { location: { configurable: false } });
 };
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate Document before Node");
   }
@@ -591,7 +624,9 @@
           if (curArg === null || curArg === undefined) {
             curArg = null;
           } else {
-            curArg = utils.tryImplForWrapper(curArg);
+            curArg = NodeFilter.convert(curArg, {
+              context: "Failed to execute 'createNodeIterator' on 'Document': parameter 3"
+            });
           }
         } else {
           curArg = null;
@@ -637,7 +672,9 @@
           if (curArg === null || curArg === undefined) {
             curArg = null;
           } else {
-            curArg = utils.tryImplForWrapper(curArg);
+            curArg = NodeFilter.convert(curArg, {
+              context: "Failed to execute 'createTreeWalker' on 'Document': parameter 3"
+            });
           }
         } else {
           curArg = null;
@@ -1291,12 +1328,20 @@
     get onreadystatechange() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onreadystatechange"]);
     }
 
     set onreadystatechange(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onreadystatechange"] = V;
@@ -2175,12 +2220,20 @@
     get onmouseenter() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
     }
 
     set onmouseenter(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseenter"] = V;
@@ -2189,12 +2242,20 @@
     get onmouseleave() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
     }
 
     set onmouseleave(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseleave"] = V;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
index 3e57c60..e36f0a2 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "DocumentFragment";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DocumentFragment'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor DocumentFragment is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate DocumentFragment before Node");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js
index 13daec2..da0f75c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for DocumentReadyState`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for DocumentReadyState`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
index 0ac0453..3ff41e2 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "DocumentType";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'DocumentType'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor DocumentType is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate DocumentType before Node");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Element.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Element.js
index 9246d3a..3e3a58b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Element.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Element.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "Element";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Element'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor Element is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Node._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Node._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Node === undefined) {
     throw new Error("Internal error: attempting to evaluate Element before Node");
   }
@@ -1144,7 +1172,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.classList.value = V;
+      const Q = esValue["classList"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'classList' is not an object");
+      }
+      Reflect.set(Q, "value", V);
     }
 
     get slot() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
index 45a2baa..991bab0 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js
@@ -8,7 +8,7 @@
     const key = "is";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member is that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'is' that" });
 
       ret[key] = value;
     }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
index 5161d07..ff14767 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js
@@ -8,7 +8,7 @@
     const key = "extends";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member extends that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'extends' that" });
 
       ret[key] = value;
     }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
index 503863a..940ed76 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for EndingType`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for EndingType`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
index b3a6e56..143a8b4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "ErrorEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'ErrorEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor ErrorEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate ErrorEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
index 4c9dbc7..389a384 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js
@@ -12,7 +12,7 @@
     const key = "colno";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member colno that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'colno' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "error";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["any"](value, { context: context + " has member error that" });
+      value = conversions["any"](value, { context: context + " has member 'error' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "filename";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member filename that" });
+      value = conversions["USVString"](value, { context: context + " has member 'filename' that" });
 
       ret[key] = value;
     } else {
@@ -48,7 +48,7 @@
     const key = "lineno";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member lineno that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'lineno' that" });
 
       ret[key] = value;
     } else {
@@ -60,7 +60,7 @@
     const key = "message";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member message that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'message' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Event.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Event.js
index c5d3aeb..32e843a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Event.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Event.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "Event";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Event'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,17 +32,22 @@
     throw new Error("Internal error: constructor Event is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
+  return Object.create(ctor.prototype);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
 };
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
 };
-exports._internalSetup = function _internalSetup(obj, globalObject) {
+
+exports._internalSetup = (wrapper, globalObject) => {
   Object.defineProperties(
-    obj,
+    wrapper,
     Object.getOwnPropertyDescriptors({
       get isTrusted() {
         const esValue = this !== null && this !== undefined ? this : globalObject;
@@ -56,25 +61,47 @@
     })
   );
 
-  Object.defineProperties(obj, { isTrusted: { configurable: false } });
+  Object.defineProperties(wrapper, { isTrusted: { configurable: false } });
 };
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Event {
     constructor(type) {
       if (arguments.length < 1) {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
index bc0461e..6bc3e0a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js
@@ -8,7 +8,7 @@
     const key = "bubbles";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member bubbles that" });
+      value = conversions["boolean"](value, { context: context + " has member 'bubbles' that" });
 
       ret[key] = value;
     } else {
@@ -20,7 +20,7 @@
     const key = "cancelable";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member cancelable that" });
+      value = conversions["boolean"](value, { context: context + " has member 'cancelable' that" });
 
       ret[key] = value;
     } else {
@@ -32,7 +32,7 @@
     const key = "composed";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member composed that" });
+      value = conversions["boolean"](value, { context: context + " has member 'composed' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js
new file mode 100644
index 0000000..e8b6099
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js
@@ -0,0 +1,35 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = function convert(value, { context = "The provided value" } = {}) {
+  if (!utils.isObject(value)) {
+    throw new TypeError(`${context} is not an object.`);
+  }
+
+  function callTheUserObjectsOperation(event) {
+    let thisArg = utils.tryWrapperForImpl(this);
+    let O = value;
+    let X = O;
+
+    if (typeof O !== "function") {
+      X = O["handleEvent"];
+      if (typeof X !== "function") {
+        throw new TypeError(`${context} does not correctly implement EventListener.`);
+      }
+      thisArg = O;
+    }
+
+    event = utils.tryWrapperForImpl(event);
+
+    let callResult = Reflect.apply(X, thisArg, [event]);
+  }
+
+  callTheUserObjectsOperation[utils.wrapperSymbol] = value;
+  callTheUserObjectsOperation.objectReference = value;
+
+  return callTheUserObjectsOperation;
+};
+
+exports.install = (globalObject, globalNames) => {};
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
index 19f167e..f7c5d8b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js
@@ -8,7 +8,7 @@
     const key = "capture";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member capture that" });
+      value = conversions["boolean"](value, { context: context + " has member 'capture' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
index 0c64fd2..beba571 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js
@@ -12,7 +12,7 @@
     const key = "altKey";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member altKey that" });
+      value = conversions["boolean"](value, { context: context + " has member 'altKey' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "ctrlKey";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member ctrlKey that" });
+      value = conversions["boolean"](value, { context: context + " has member 'ctrlKey' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "metaKey";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member metaKey that" });
+      value = conversions["boolean"](value, { context: context + " has member 'metaKey' that" });
 
       ret[key] = value;
     } else {
@@ -48,7 +48,7 @@
     const key = "modifierAltGraph";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierAltGraph that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierAltGraph' that" });
 
       ret[key] = value;
     } else {
@@ -60,7 +60,7 @@
     const key = "modifierCapsLock";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierCapsLock that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierCapsLock' that" });
 
       ret[key] = value;
     } else {
@@ -72,7 +72,7 @@
     const key = "modifierFn";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierFn that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierFn' that" });
 
       ret[key] = value;
     } else {
@@ -84,7 +84,7 @@
     const key = "modifierFnLock";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierFnLock that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierFnLock' that" });
 
       ret[key] = value;
     } else {
@@ -96,7 +96,7 @@
     const key = "modifierHyper";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierHyper that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierHyper' that" });
 
       ret[key] = value;
     } else {
@@ -108,7 +108,7 @@
     const key = "modifierNumLock";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierNumLock that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierNumLock' that" });
 
       ret[key] = value;
     } else {
@@ -120,7 +120,7 @@
     const key = "modifierScrollLock";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierScrollLock that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierScrollLock' that" });
 
       ret[key] = value;
     } else {
@@ -132,7 +132,7 @@
     const key = "modifierSuper";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierSuper that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierSuper' that" });
 
       ret[key] = value;
     } else {
@@ -144,7 +144,7 @@
     const key = "modifierSymbol";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierSymbol that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierSymbol' that" });
 
       ret[key] = value;
     } else {
@@ -156,7 +156,7 @@
     const key = "modifierSymbolLock";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member modifierSymbolLock that" });
+      value = conversions["boolean"](value, { context: context + " has member 'modifierSymbolLock' that" });
 
       ret[key] = value;
     } else {
@@ -168,7 +168,7 @@
     const key = "shiftKey";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member shiftKey that" });
+      value = conversions["boolean"](value, { context: context + " has member 'shiftKey' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
index cee4a46..13632b3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js
@@ -3,6 +3,7 @@
 const conversions = require("webidl-conversions");
 const utils = require("./utils.js");
 
+const EventListener = require("./EventListener.js");
 const AddEventListenerOptions = require("./AddEventListenerOptions.js");
 const EventListenerOptions = require("./EventListenerOptions.js");
 const Event = require("./Event.js");
@@ -11,20 +12,20 @@
 
 const interfaceName = "EventTarget";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'EventTarget'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,32 +35,59 @@
     throw new Error("Internal error: constructor EventTarget is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class EventTarget {
     constructor() {
       return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
@@ -91,11 +119,9 @@
         if (curArg === null || curArg === undefined) {
           curArg = null;
         } else {
-          if (!utils.isObject(curArg)) {
-            throw new TypeError(
-              "Failed to execute 'addEventListener' on 'EventTarget': parameter 2" + " is not an object"
-            );
-          }
+          curArg = EventListener.convert(curArg, {
+            context: "Failed to execute 'addEventListener' on 'EventTarget': parameter 2"
+          });
         }
         args.push(curArg);
       }
@@ -151,11 +177,9 @@
         if (curArg === null || curArg === undefined) {
           curArg = null;
         } else {
-          if (!utils.isObject(curArg)) {
-            throw new TypeError(
-              "Failed to execute 'removeEventListener' on 'EventTarget': parameter 2" + " is not an object"
-            );
-          }
+          curArg = EventListener.convert(curArg, {
+            context: "Failed to execute 'removeEventListener' on 'EventTarget': parameter 2"
+          });
         }
         args.push(curArg);
       }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/External.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/External.js
index cc2c032..f275096 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/External.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/External.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "External";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'External'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor External is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class External {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/File.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/File.js
index 33f3549..cf880b0 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/File.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/File.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "File";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'File'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor File is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Blob._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Blob._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Blob === undefined) {
     throw new Error("Internal error: attempting to evaluate File before Blob");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileList.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
index 599e142..0a53157 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileList.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "FileList";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'FileList'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor FileList is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class FileList {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
index 803d2e3..3227752 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js
@@ -12,7 +12,7 @@
     const key = "lastModified";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long long"](value, { context: context + " has member lastModified that" });
+      value = conversions["long long"](value, { context: context + " has member 'lastModified' that" });
 
       ret[key] = value;
     }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
index a9a5e3e..88828d1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "FileReader";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'FileReader'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor FileReader is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate FileReader before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
index 1efd3de..8d3c256 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "FocusEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'FocusEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor FocusEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate FocusEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
index e0d6802..7f226e3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js
@@ -16,7 +16,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = EventTarget.convert(value, { context: context + " has member relatedTarget that" });
+        value = EventTarget.convert(value, { context: context + " has member 'relatedTarget' that" });
       }
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FormData.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
index 8499e72..7f1942a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/FormData.js
@@ -49,20 +49,20 @@
   }
 });
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'FormData'.`);
 };
 
-exports.createDefaultIterator = function createDefaultIterator(target, kind) {
+exports.createDefaultIterator = (target, kind) => {
   const iterator = Object.create(IteratorPrototype);
   Object.defineProperty(iterator, utils.iterInternalSymbol, {
     value: { target, kind, index: 0 },
@@ -71,7 +71,7 @@
   return iterator;
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -81,32 +81,59 @@
     throw new Error("Internal error: constructor FormData is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class FormData {
     constructor() {
       const args = [];
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
index 4d5e89f..4d60bd5 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js
@@ -8,7 +8,7 @@
     const key = "composed";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member composed that" });
+      value = conversions["boolean"](value, { context: context + " has member 'composed' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
index 424296f..1592f73 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLAnchorElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLAnchorElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLAnchorElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLAnchorElement before HTMLElement");
   }
@@ -195,7 +223,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.relList.value = V;
+      const Q = esValue["relList"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'relList' is not an object");
+      }
+      Reflect.set(Q, "value", V);
     }
 
     get hreflang() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
index c754069..e77b8bc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLAreaElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLAreaElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLAreaElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLAreaElement before HTMLElement");
   }
@@ -265,7 +293,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.relList.value = V;
+      const Q = esValue["relList"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'relList' is not an object");
+      }
+      Reflect.set(Q, "value", V);
     }
 
     get noHref() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
index 20dc676..7d80742 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLAudioElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLAudioElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLAudioElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLMediaElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLMediaElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLMediaElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLAudioElement before HTMLMediaElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
index b1093a0..d7cc282 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLBRElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLBRElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLBRElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLBRElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
index a53e47b..2d83400 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLBaseElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLBaseElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLBaseElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLBaseElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
index 5e35a27..97e72c0 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLBodyElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLBodyElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLBodyElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLBodyElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
index c907688..8e0a563 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLButtonElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLButtonElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLButtonElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLButtonElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
index 0f1fb00..45e90a7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLCanvasElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLCanvasElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLCanvasElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLCanvasElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
index e238327..88b5e6c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "HTMLCollection";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLCollection'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor HTMLCollection is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class HTMLCollection {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
index f6de89e..ec47bfc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDListElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDListElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDListElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDListElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
index fc232d5..b04c446 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDataElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDataElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDataElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDataElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
index 9d4fb0b..22ee6ff 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLDataListElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDataListElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLDataListElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDataListElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
index d41a1ea..2f42e88 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDetailsElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDetailsElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDetailsElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDetailsElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
index acd3c0d..bd270f3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDialogElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDialogElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDialogElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDialogElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
index e9d3e85..14c5462 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDirectoryElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDirectoryElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDirectoryElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDirectoryElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
index ade37e7..ab89da5 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLDivElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLDivElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLDivElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLDivElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
index 450a23f..1d76609 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Element._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Element._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Element === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLElement before Element");
   }
@@ -412,7 +440,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.style.cssText = V;
+      const Q = esValue["style"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'style' is not an object");
+      }
+      Reflect.set(Q, "cssText", V);
     }
 
     get onabort() {
@@ -1210,12 +1242,20 @@
     get onmouseenter() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
     }
 
     set onmouseenter(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseenter"] = V;
@@ -1224,12 +1264,20 @@
     get onmouseleave() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
     }
 
     set onmouseleave(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseleave"] = V;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
index 4bb8622..900af9b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLEmbedElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLEmbedElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLEmbedElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLEmbedElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
index a9ec197..2cf5acb 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLFieldSetElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLFieldSetElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLFieldSetElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLFieldSetElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
index 3611fc5..28d479c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLFontElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLFontElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLFontElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLFontElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
index d75b49d..7e9fae4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLFormElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLFormElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLFormElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLFormElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
index 15c103f..897a601 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLFrameElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLFrameElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLFrameElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLFrameElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
index 2c75a1a..5f58e5e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLFrameSetElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLFrameSetElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLFrameSetElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLFrameSetElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
index 8463472..904a2b4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLHRElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLHRElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLHRElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLHRElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
index 8ac2132..1bc6646 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLHeadElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLHeadElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLHeadElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLHeadElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
index 386380f..709cb46 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLHeadingElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLHeadingElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLHeadingElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLHeadingElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
index c9946c8..c1f4f5b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLHtmlElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLHtmlElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLHtmlElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLHtmlElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
index 28daaaf..171d6b1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLIFrameElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLIFrameElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLIFrameElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLIFrameElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
index 88df021..5247cc2 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js
@@ -16,20 +16,20 @@
 
 const interfaceName = "HTMLImageElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLImageElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -39,34 +39,62 @@
     throw new Error("Internal error: constructor HTMLImageElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLImageElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
index 36ff6b2..807ede4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js
@@ -17,20 +17,20 @@
 
 const interfaceName = "HTMLInputElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLInputElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -40,34 +40,62 @@
     throw new Error("Internal error: constructor HTMLInputElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLInputElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
index 6b08641..221ae38 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "HTMLLIElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLLIElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor HTMLLIElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLLIElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
index 1d621d7..33c6948 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLLabelElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLLabelElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLLabelElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLLabelElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
index 1d9cd35..4bd6ced 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLLegendElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLLegendElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLLegendElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLLegendElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
index 874aeed..b59179b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLLinkElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLLinkElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLLinkElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLLinkElement before HTMLElement");
   }
@@ -212,7 +240,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.relList.value = V;
+      const Q = esValue["relList"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'relList' is not an object");
+      }
+      Reflect.set(Q, "value", V);
     }
 
     get media() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
index 90b8819..16abce7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLMapElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMapElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLMapElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMapElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
index 0cc8e20..7175895 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "HTMLMarqueeElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMarqueeElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor HTMLMarqueeElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMarqueeElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
index 3ef27f3..60292a1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLMediaElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMediaElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLMediaElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMediaElement before HTMLElement");
   }
@@ -108,12 +136,16 @@
     }
 
     play() {
-      const esValue = this !== null && this !== undefined ? this : globalObject;
-      if (!exports.is(esValue)) {
-        throw new TypeError("Illegal invocation");
-      }
+      try {
+        const esValue = this !== null && this !== undefined ? this : globalObject;
+        if (!exports.is(esValue)) {
+          throw new TypeError("Illegal invocation");
+        }
 
-      return utils.tryWrapperForImpl(esValue[implSymbol].play());
+        return utils.tryWrapperForImpl(esValue[implSymbol].play());
+      } catch (e) {
+        return Promise.reject(e);
+      }
     }
 
     pause() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
index 09bf4c0..7d4cdcf 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLMenuElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMenuElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLMenuElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMenuElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
index e2aa3ad..ea05532 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLMetaElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMetaElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLMetaElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMetaElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
index 3bbf1d5..55a5de2 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLMeterElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLMeterElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLMeterElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLMeterElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
index d98f71a..3ce80ec 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLModElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLModElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLModElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLModElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
index 00e5348..04f8621 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLOListElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLOListElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLOListElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLOListElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
index aaa271d..af9817d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js
@@ -16,20 +16,20 @@
 
 const interfaceName = "HTMLObjectElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLObjectElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -39,34 +39,62 @@
     throw new Error("Internal error: constructor HTMLObjectElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLObjectElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
index 565f49d..5dd112b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLOptGroupElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLOptGroupElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLOptGroupElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLOptGroupElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
index c045182..d91cbf7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLOptionElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLOptionElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLOptionElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLOptionElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
index 799ee2f..71346ea 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js
@@ -14,20 +14,20 @@
 
 const interfaceName = "HTMLOptionsCollection";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLOptionsCollection'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -37,43 +37,75 @@
     throw new Error("Internal error: constructor HTMLOptionsCollection is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLCollection._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+function makeProxy(wrapper, globalObject) {
+  let proxyHandler = proxyHandlerCache.get(globalObject);
+  if (proxyHandler === undefined) {
+    proxyHandler = new ProxyHandler(globalObject);
+    proxyHandlerCache.set(globalObject, proxyHandler);
+  }
+  return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLCollection._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  {
-    let proxyHandler = proxyHandlerCache.get(globalObject);
-    if (proxyHandler === undefined) {
-      proxyHandler = new ProxyHandler(globalObject);
-      proxyHandlerCache.set(globalObject, proxyHandler);
-    }
-    obj = new Proxy(obj, proxyHandler);
-  }
+  wrapper = makeProxy(wrapper, globalObject);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = makeProxy(wrapper, globalObject);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLCollection === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLOptionsCollection before HTMLCollection");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
index c5a64dc..0c9415a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLOutputElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLOutputElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLOutputElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLOutputElement before HTMLElement");
   }
@@ -132,7 +160,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.htmlFor.value = V;
+      const Q = esValue["htmlFor"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'htmlFor' is not an object");
+      }
+      Reflect.set(Q, "value", V);
     }
 
     get form() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
index f64ce90..d343b42 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLParagraphElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLParagraphElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLParagraphElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLParagraphElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
index 2bfece1..123034e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLParamElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLParamElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLParamElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLParamElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
index df6dad8..9834a44 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLPictureElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLPictureElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLPictureElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLPictureElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
index 3010716..4bfd6a9 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "HTMLPreElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLPreElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor HTMLPreElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLPreElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
index 1c4c779..c7264f8 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLProgressElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLProgressElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLProgressElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLProgressElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
index 2154f78..e9d2205 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLQuoteElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLQuoteElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLQuoteElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLQuoteElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
index a404ef6..eb34510 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLScriptElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLScriptElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLScriptElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLScriptElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
index 3bda04b..aa88382 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLSelectElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLSelectElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,43 +38,75 @@
     throw new Error("Internal error: constructor HTMLSelectElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+function makeProxy(wrapper, globalObject) {
+  let proxyHandler = proxyHandlerCache.get(globalObject);
+  if (proxyHandler === undefined) {
+    proxyHandler = new ProxyHandler(globalObject);
+    proxyHandlerCache.set(globalObject, proxyHandler);
+  }
+  return new Proxy(wrapper, proxyHandler);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  {
-    let proxyHandler = proxyHandlerCache.get(globalObject);
-    if (proxyHandler === undefined) {
-      proxyHandler = new ProxyHandler(globalObject);
-      proxyHandlerCache.set(globalObject, proxyHandler);
-    }
-    obj = new Proxy(obj, proxyHandler);
-  }
+  wrapper = makeProxy(wrapper, globalObject);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = makeProxy(wrapper, globalObject);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLSelectElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
index cb5ea1b..870d763 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "HTMLSlotElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLSlotElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor HTMLSlotElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLSlotElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
index 301bbd7..48f397b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLSourceElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLSourceElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLSourceElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLSourceElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
index 8478a7f..fd8028d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLSpanElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLSpanElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLSpanElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLSpanElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
index cfbabec..13f5375 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLStyleElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLStyleElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLStyleElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLStyleElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
index 24fafb0..e286de5 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTableCaptionElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableCaptionElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTableCaptionElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableCaptionElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
index df5437b..cb056d5 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTableCellElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableCellElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTableCellElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableCellElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
index 899f1c4..29e6629 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "HTMLTableColElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableColElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor HTMLTableColElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableColElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
index 41b7d8f..2c6ef4e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js
@@ -14,20 +14,20 @@
 
 const interfaceName = "HTMLTableElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -37,34 +37,62 @@
     throw new Error("Internal error: constructor HTMLTableElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
index b8017fb..805cfa4 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTableRowElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableRowElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTableRowElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableRowElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
index 9c0e1a8..9a4350e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTableSectionElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTableSectionElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTableSectionElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTableSectionElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
index a5a3b3d..dc30c57 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HTMLTemplateElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTemplateElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HTMLTemplateElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTemplateElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
index 6b8cb97..69f3b3b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js
@@ -14,20 +14,20 @@
 
 const interfaceName = "HTMLTextAreaElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTextAreaElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -37,34 +37,62 @@
     throw new Error("Internal error: constructor HTMLTextAreaElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTextAreaElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
index ddf6bcc..5584e73 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTimeElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTimeElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTimeElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTimeElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
index 47ab07d..b1ea12d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLTitleElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTitleElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLTitleElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTitleElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
index 9f9b5eb..b28d3c8 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js
@@ -15,20 +15,20 @@
 
 const interfaceName = "HTMLTrackElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLTrackElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -38,34 +38,62 @@
     throw new Error("Internal error: constructor HTMLTrackElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLTrackElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
index a909478..88f8831 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "HTMLUListElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLUListElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor HTMLUListElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLUListElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
index 84ca0cd..9e5fea3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "HTMLUnknownElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLUnknownElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor HTMLUnknownElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLUnknownElement before HTMLElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
index 5759ad4..200fa02 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js
@@ -16,20 +16,20 @@
 
 const interfaceName = "HTMLVideoElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HTMLVideoElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -39,34 +39,62 @@
     throw new Error("Internal error: constructor HTMLVideoElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  HTMLMediaElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  HTMLMediaElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.HTMLMediaElement === undefined) {
     throw new Error("Internal error: attempting to evaluate HTMLVideoElement before HTMLMediaElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
index beeac89..5827ecc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "HashChangeEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'HashChangeEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor HashChangeEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate HashChangeEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
index 2ecb9cc..af8bf80 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js
@@ -12,7 +12,7 @@
     const key = "newURL";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member newURL that" });
+      value = conversions["USVString"](value, { context: context + " has member 'newURL' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "oldURL";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member oldURL that" });
+      value = conversions["USVString"](value, { context: context + " has member 'oldURL' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Headers.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
index 10026e4..e9ffb86 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Headers.js
@@ -47,20 +47,20 @@
   }
 });
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Headers'.`);
 };
 
-exports.createDefaultIterator = function createDefaultIterator(target, kind) {
+exports.createDefaultIterator = (target, kind) => {
   const iterator = Object.create(IteratorPrototype);
   Object.defineProperty(iterator, utils.iterInternalSymbol, {
     value: { target, kind, index: 0 },
@@ -69,7 +69,7 @@
   return iterator;
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -79,32 +79,59 @@
     throw new Error("Internal error: constructor Headers is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Headers {
     constructor() {
       const args = [];
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/History.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/History.js
index e55cd63..67a8e95 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/History.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/History.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "History";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'History'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor History is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class History {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
index 794413c..00bf20b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "InputEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'InputEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor InputEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate InputEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
index 9cb4bdd..b84141e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js
@@ -15,7 +15,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = conversions["DOMString"](value, { context: context + " has member data that" });
+        value = conversions["DOMString"](value, { context: context + " has member 'data' that" });
       }
       ret[key] = value;
     } else {
@@ -27,7 +27,7 @@
     const key = "isComposing";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member isComposing that" });
+      value = conversions["boolean"](value, { context: context + " has member 'isComposing' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
index 7305329..59b95bc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "KeyboardEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'KeyboardEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor KeyboardEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate KeyboardEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
index 39eb568..b6b38aa 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js
@@ -12,7 +12,7 @@
     const key = "charCode";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member charCode that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'charCode' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "code";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member code that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'code' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "isComposing";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member isComposing that" });
+      value = conversions["boolean"](value, { context: context + " has member 'isComposing' that" });
 
       ret[key] = value;
     } else {
@@ -48,7 +48,7 @@
     const key = "key";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member key that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'key' that" });
 
       ret[key] = value;
     } else {
@@ -60,7 +60,7 @@
     const key = "keyCode";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member keyCode that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'keyCode' that" });
 
       ret[key] = value;
     } else {
@@ -72,7 +72,7 @@
     const key = "location";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member location that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'location' that" });
 
       ret[key] = value;
     } else {
@@ -84,7 +84,7 @@
     const key = "repeat";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member repeat that" });
+      value = conversions["boolean"](value, { context: context + " has member 'repeat' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Location.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Location.js
index 2ae764b..a402e81 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Location.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Location.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "Location";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Location'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,17 +31,22 @@
     throw new Error("Internal error: constructor Location is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
+  return Object.create(ctor.prototype);
+}
+
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
 };
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
 };
-exports._internalSetup = function _internalSetup(obj, globalObject) {
+
+exports._internalSetup = (wrapper, globalObject) => {
   Object.defineProperties(
-    obj,
+    wrapper,
     Object.getOwnPropertyDescriptors({
       assign(url) {
         const esValue = this !== null && this !== undefined ? this : globalObject;
@@ -289,7 +294,7 @@
     })
   );
 
-  Object.defineProperties(obj, {
+  Object.defineProperties(wrapper, {
     assign: { configurable: false, writable: false },
     replace: { configurable: false, writable: false },
     reload: { configurable: false, writable: false },
@@ -305,23 +310,45 @@
     hash: { configurable: false }
   });
 };
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Location {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
index 6e78996..2197ef9 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "MessageEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MessageEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor MessageEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker", "AudioWorklet"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate MessageEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
index a381e26..d3837fe 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js
@@ -12,7 +12,7 @@
     const key = "data";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["any"](value, { context: context + " has member data that" });
+      value = conversions["any"](value, { context: context + " has member 'data' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "lastEventId";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["DOMString"](value, { context: context + " has member lastEventId that" });
+      value = conversions["DOMString"](value, { context: context + " has member 'lastEventId' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "origin";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member origin that" });
+      value = conversions["USVString"](value, { context: context + " has member 'origin' that" });
 
       ret[key] = value;
     } else {
@@ -49,7 +49,7 @@
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
       if (!utils.isObject(value)) {
-        throw new TypeError(context + " has member ports that" + " is not an iterable object.");
+        throw new TypeError(context + " has member 'ports' that" + " is not an iterable object.");
       } else {
         const V = [];
         const tmp = value;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
index 8d54c9b..802b03e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "MimeType";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MimeType'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor MimeType is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class MimeType {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
index f2bcbd0..483f0c2 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "MimeTypeArray";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MimeTypeArray'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor MimeTypeArray is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class MimeTypeArray {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
index 4636618..7d652fc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "MouseEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MouseEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor MouseEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate MouseEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
index 7ee6887..f49c8a6 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js
@@ -13,7 +13,7 @@
     const key = "button";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["short"](value, { context: context + " has member button that" });
+      value = conversions["short"](value, { context: context + " has member 'button' that" });
 
       ret[key] = value;
     } else {
@@ -25,7 +25,7 @@
     const key = "buttons";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned short"](value, { context: context + " has member buttons that" });
+      value = conversions["unsigned short"](value, { context: context + " has member 'buttons' that" });
 
       ret[key] = value;
     } else {
@@ -37,7 +37,7 @@
     const key = "clientX";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long"](value, { context: context + " has member clientX that" });
+      value = conversions["long"](value, { context: context + " has member 'clientX' that" });
 
       ret[key] = value;
     } else {
@@ -49,7 +49,7 @@
     const key = "clientY";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long"](value, { context: context + " has member clientY that" });
+      value = conversions["long"](value, { context: context + " has member 'clientY' that" });
 
       ret[key] = value;
     } else {
@@ -64,7 +64,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = EventTarget.convert(value, { context: context + " has member relatedTarget that" });
+        value = EventTarget.convert(value, { context: context + " has member 'relatedTarget' that" });
       }
       ret[key] = value;
     } else {
@@ -76,7 +76,7 @@
     const key = "screenX";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long"](value, { context: context + " has member screenX that" });
+      value = conversions["long"](value, { context: context + " has member 'screenX' that" });
 
       ret[key] = value;
     } else {
@@ -88,7 +88,7 @@
     const key = "screenY";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long"](value, { context: context + " has member screenY that" });
+      value = conversions["long"](value, { context: context + " has member 'screenY' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
index cd6ca04..09689fd 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "MutationObserver";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MutationObserver'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,32 +33,59 @@
     throw new Error("Internal error: constructor MutationObserver is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class MutationObserver {
     constructor(callback) {
       if (arguments.length < 1) {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
index 327f2c3..424c8e0 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js
@@ -9,13 +9,13 @@
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
       if (!utils.isObject(value)) {
-        throw new TypeError(context + " has member attributeFilter that" + " is not an iterable object.");
+        throw new TypeError(context + " has member 'attributeFilter' that" + " is not an iterable object.");
       } else {
         const V = [];
         const tmp = value;
         for (let nextItem of tmp) {
           nextItem = conversions["DOMString"](nextItem, {
-            context: context + " has member attributeFilter that" + "'s element"
+            context: context + " has member 'attributeFilter' that" + "'s element"
           });
 
           V.push(nextItem);
@@ -31,7 +31,7 @@
     const key = "attributeOldValue";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member attributeOldValue that" });
+      value = conversions["boolean"](value, { context: context + " has member 'attributeOldValue' that" });
 
       ret[key] = value;
     }
@@ -41,7 +41,7 @@
     const key = "attributes";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member attributes that" });
+      value = conversions["boolean"](value, { context: context + " has member 'attributes' that" });
 
       ret[key] = value;
     }
@@ -51,7 +51,7 @@
     const key = "characterData";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member characterData that" });
+      value = conversions["boolean"](value, { context: context + " has member 'characterData' that" });
 
       ret[key] = value;
     }
@@ -61,7 +61,7 @@
     const key = "characterDataOldValue";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member characterDataOldValue that" });
+      value = conversions["boolean"](value, { context: context + " has member 'characterDataOldValue' that" });
 
       ret[key] = value;
     }
@@ -71,7 +71,7 @@
     const key = "childList";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member childList that" });
+      value = conversions["boolean"](value, { context: context + " has member 'childList' that" });
 
       ret[key] = value;
     } else {
@@ -83,7 +83,7 @@
     const key = "subtree";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member subtree that" });
+      value = conversions["boolean"](value, { context: context + " has member 'subtree' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
index 3d0bcab..afc2a47 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "MutationRecord";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'MutationRecord'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor MutationRecord is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class MutationRecord {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
index f80998c..f75d4c1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "NamedNodeMap";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'NamedNodeMap'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,63 @@
     throw new Error("Internal error: constructor NamedNodeMap is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class NamedNodeMap {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
index 774a6ab..b1baa6d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "Navigator";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Navigator'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor Navigator is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Navigator {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Node.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Node.js
index e5c96f5..0649dea 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Node.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Node.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "Node";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Node'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor Node is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate Node before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js
new file mode 100644
index 0000000..7c53d33
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js
@@ -0,0 +1,74 @@
+"use strict";
+
+const conversions = require("webidl-conversions");
+const utils = require("./utils.js");
+
+exports.convert = function convert(value, { context = "The provided value" } = {}) {
+  if (!utils.isObject(value)) {
+    throw new TypeError(`${context} is not an object.`);
+  }
+
+  function callTheUserObjectsOperation(node) {
+    let thisArg = utils.tryWrapperForImpl(this);
+    let O = value;
+    let X = O;
+
+    if (typeof O !== "function") {
+      X = O["acceptNode"];
+      if (typeof X !== "function") {
+        throw new TypeError(`${context} does not correctly implement NodeFilter.`);
+      }
+      thisArg = O;
+    }
+
+    node = utils.tryWrapperForImpl(node);
+
+    let callResult = Reflect.apply(X, thisArg, [node]);
+
+    callResult = conversions["unsigned short"](callResult, { context: context });
+
+    return callResult;
+  }
+
+  callTheUserObjectsOperation[utils.wrapperSymbol] = value;
+  callTheUserObjectsOperation.objectReference = value;
+
+  return callTheUserObjectsOperation;
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
+  const NodeFilter = () => {
+    throw new TypeError("Illegal invocation");
+  };
+
+  Object.defineProperties(NodeFilter, {
+    FILTER_ACCEPT: { value: 1, enumerable: true },
+    FILTER_REJECT: { value: 2, enumerable: true },
+    FILTER_SKIP: { value: 3, enumerable: true },
+    SHOW_ALL: { value: 0xffffffff, enumerable: true },
+    SHOW_ELEMENT: { value: 0x1, enumerable: true },
+    SHOW_ATTRIBUTE: { value: 0x2, enumerable: true },
+    SHOW_TEXT: { value: 0x4, enumerable: true },
+    SHOW_CDATA_SECTION: { value: 0x8, enumerable: true },
+    SHOW_ENTITY_REFERENCE: { value: 0x10, enumerable: true },
+    SHOW_ENTITY: { value: 0x20, enumerable: true },
+    SHOW_PROCESSING_INSTRUCTION: { value: 0x40, enumerable: true },
+    SHOW_COMMENT: { value: 0x80, enumerable: true },
+    SHOW_DOCUMENT: { value: 0x100, enumerable: true },
+    SHOW_DOCUMENT_TYPE: { value: 0x200, enumerable: true },
+    SHOW_DOCUMENT_FRAGMENT: { value: 0x400, enumerable: true },
+    SHOW_NOTATION: { value: 0x800, enumerable: true }
+  });
+
+  Object.defineProperty(globalObject, "NodeFilter", {
+    configurable: true,
+    writable: true,
+    value: NodeFilter
+  });
+};
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
index 92e3c33..2676b20 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "NodeIterator";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'NodeIterator'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor NodeIterator is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class NodeIterator {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
index 225351f..bffa3fb 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "NodeList";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'NodeList'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor NodeList is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class NodeList {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js
index 63f74ed..ebf7066 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "PageTransitionEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'PageTransitionEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor PageTransitionEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate PageTransitionEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js
index 27d9024..1eeffb8 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js
@@ -12,7 +12,7 @@
     const key = "persisted";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member persisted that" });
+      value = conversions["boolean"](value, { context: context + " has member 'persisted' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Performance.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Performance.js
index 823d3fe..52b199d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Performance.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Performance.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "Performance";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Performance'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor Performance is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate Performance before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js
index c3b5602..a8c2702 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "Plugin";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Plugin'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor Plugin is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Plugin {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js
index 25ea20a..fce79bc 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "PluginArray";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'PluginArray'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor PluginArray is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class PluginArray {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js
index 8f576a8..9b091b1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "PopStateEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'PopStateEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor PopStateEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate PopStateEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js
index ce9bcbb..6f9c674 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js
@@ -12,7 +12,7 @@
     const key = "state";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["any"](value, { context: context + " has member state that" });
+      value = conversions["any"](value, { context: context + " has member 'state' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js
index 6a63c77..f743520 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "ProcessingInstruction";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'ProcessingInstruction'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor ProcessingInstruction is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  CharacterData._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  CharacterData._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.CharacterData === undefined) {
     throw new Error("Internal error: attempting to evaluate ProcessingInstruction before CharacterData");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js
index 4efd9fb..8d62213 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "ProgressEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'ProgressEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor ProgressEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "DedicatedWorker", "SharedWorker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate ProgressEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js
index 1acbccc..7dd3dee 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js
@@ -12,7 +12,7 @@
     const key = "lengthComputable";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member lengthComputable that" });
+      value = conversions["boolean"](value, { context: context + " has member 'lengthComputable' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "loaded";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long long"](value, { context: context + " has member loaded that" });
+      value = conversions["unsigned long long"](value, { context: context + " has member 'loaded' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "total";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long long"](value, { context: context + " has member total that" });
+      value = conversions["unsigned long long"](value, { context: context + " has member 'total' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Range.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Range.js
index 9031401..542602c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Range.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Range.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "Range";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Range'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,34 +35,62 @@
     throw new Error("Internal error: constructor Range is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  AbstractRange._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  AbstractRange._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.AbstractRange === undefined) {
     throw new Error("Internal error: attempting to evaluate Range before AbstractRange");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js
index 11145d5..c945ec1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "SVGAnimatedString";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGAnimatedString'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor SVGAnimatedString is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class SVGAnimatedString {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js
index 4cfd34e..67fa2fb 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js
@@ -8,7 +8,7 @@
     const key = "clipped";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member clipped that" });
+      value = conversions["boolean"](value, { context: context + " has member 'clipped' that" });
 
       ret[key] = value;
     } else {
@@ -20,7 +20,7 @@
     const key = "fill";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member fill that" });
+      value = conversions["boolean"](value, { context: context + " has member 'fill' that" });
 
       ret[key] = value;
     } else {
@@ -32,7 +32,7 @@
     const key = "markers";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member markers that" });
+      value = conversions["boolean"](value, { context: context + " has member 'markers' that" });
 
       ret[key] = value;
     } else {
@@ -44,7 +44,7 @@
     const key = "stroke";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["boolean"](value, { context: context + " has member stroke that" });
+      value = conversions["boolean"](value, { context: context + " has member 'stroke' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js
index a5dd9fc..1bd39aa 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "SVGElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor SVGElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Element._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Element._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Element === undefined) {
     throw new Error("Internal error: attempting to evaluate SVGElement before Element");
   }
@@ -139,7 +167,11 @@
         throw new TypeError("Illegal invocation");
       }
 
-      this.style.cssText = V;
+      const Q = esValue["style"];
+      if (!utils.isObject(Q)) {
+        throw new TypeError("Property 'style' is not an object");
+      }
+      Reflect.set(Q, "cssText", V);
     }
 
     get onabort() {
@@ -937,12 +969,20 @@
     get onmouseenter() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseenter"]);
     }
 
     set onmouseenter(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseenter"] = V;
@@ -951,12 +991,20 @@
     get onmouseleave() {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       return utils.tryWrapperForImpl(esValue[implSymbol]["onmouseleave"]);
     }
 
     set onmouseleave(V) {
       const esValue = this !== null && this !== undefined ? this : globalObject;
 
+      if (!exports.is(esValue)) {
+        return;
+      }
+
       V = utils.tryImplForWrapper(V);
 
       esValue[implSymbol]["onmouseleave"] = V;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js
index 94140ea..3c8415e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "SVGGraphicsElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGGraphicsElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor SVGGraphicsElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  SVGElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  SVGElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.SVGElement === undefined) {
     throw new Error("Internal error: attempting to evaluate SVGGraphicsElement before SVGElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js
index b5a05c4..afd6bba 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "SVGNumber";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGNumber'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor SVGNumber is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class SVGNumber {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js
index c7fa509..c4c4dd0 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "SVGSVGElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGSVGElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor SVGSVGElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  SVGGraphicsElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  SVGGraphicsElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.SVGGraphicsElement === undefined) {
     throw new Error("Internal error: attempting to evaluate SVGSVGElement before SVGGraphicsElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js
index e9fba61..d430f9b 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "SVGStringList";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGStringList'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor SVGStringList is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class SVGStringList {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js
index f89bba3..be60fb6 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "SVGTitleElement";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'SVGTitleElement'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor SVGTitleElement is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  SVGElement._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  SVGElement._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.SVGElement === undefined) {
     throw new Error("Internal error: attempting to evaluate SVGTitleElement before SVGElement");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Screen.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Screen.js
index c004a43..92346cf 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Screen.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Screen.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "Screen";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Screen'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor Screen is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Screen {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js
index a1df43e..40ff17c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for ScrollBehavior`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for ScrollBehavior`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js
index 4cba066..6294eaf 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js
@@ -13,7 +13,7 @@
     const key = "block";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = ScrollLogicalPosition.convert(value, { context: context + " has member block that" });
+      value = ScrollLogicalPosition.convert(value, { context: context + " has member 'block' that" });
 
       ret[key] = value;
     } else {
@@ -25,7 +25,7 @@
     const key = "inline";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = ScrollLogicalPosition.convert(value, { context: context + " has member inline that" });
+      value = ScrollLogicalPosition.convert(value, { context: context + " has member 'inline' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js
index 7a6ef4d..4cd4a69 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for ScrollLogicalPosition`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for ScrollLogicalPosition`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js
index 1195c53..fc5a346 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js
@@ -10,7 +10,7 @@
     const key = "behavior";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = ScrollBehavior.convert(value, { context: context + " has member behavior that" });
+      value = ScrollBehavior.convert(value, { context: context + " has member 'behavior' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js
index 49d1d98..9c55989 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for ScrollRestoration`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for ScrollRestoration`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Selection.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Selection.js
index 2d331d9..f3a3cc6 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Selection.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Selection.js
@@ -12,20 +12,20 @@
 
 const interfaceName = "Selection";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Selection'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -35,32 +35,59 @@
     throw new Error("Internal error: constructor Selection is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Selection {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js
index d000f90..3ee6afb 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for SelectionMode`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for SelectionMode`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js
index 4363d14..c2660f5 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "ShadowRoot";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'ShadowRoot'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor ShadowRoot is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  DocumentFragment._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  DocumentFragment._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.DocumentFragment === undefined) {
     throw new Error("Internal error: attempting to evaluate ShadowRoot before DocumentFragment");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js
index 9e1db96..3023fdb 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js
@@ -10,7 +10,7 @@
     const key = "mode";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = ShadowRootMode.convert(value, { context: context + " has member mode that" });
+      value = ShadowRootMode.convert(value, { context: context + " has member 'mode' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js
index 7b7cdb9..3a15717 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for ShadowRootMode`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for ShadowRootMode`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js
index 5fe1315..bbd1639 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "StaticRange";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'StaticRange'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor StaticRange is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  AbstractRange._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  AbstractRange._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.AbstractRange === undefined) {
     throw new Error("Internal error: attempting to evaluate StaticRange before AbstractRange");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js
index bee1483..3df4339 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js
@@ -10,7 +10,7 @@
     const key = "endContainer";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = Node.convert(value, { context: context + " has member endContainer that" });
+      value = Node.convert(value, { context: context + " has member 'endContainer' that" });
 
       ret[key] = value;
     } else {
@@ -22,7 +22,7 @@
     const key = "endOffset";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member endOffset that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'endOffset' that" });
 
       ret[key] = value;
     } else {
@@ -34,7 +34,7 @@
     const key = "startContainer";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = Node.convert(value, { context: context + " has member startContainer that" });
+      value = Node.convert(value, { context: context + " has member 'startContainer' that" });
 
       ret[key] = value;
     } else {
@@ -46,7 +46,7 @@
     const key = "startOffset";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member startOffset that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'startOffset' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Storage.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Storage.js
index 97fda42..f17bfaf 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Storage.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Storage.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "Storage";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Storage'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor Storage is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class Storage {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js
index 47241d9..eff4e79 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "StorageEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'StorageEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor StorageEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate StorageEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js
index 64c303b..9c28e14 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js
@@ -16,7 +16,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = conversions["DOMString"](value, { context: context + " has member key that" });
+        value = conversions["DOMString"](value, { context: context + " has member 'key' that" });
       }
       ret[key] = value;
     } else {
@@ -31,7 +31,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = conversions["DOMString"](value, { context: context + " has member newValue that" });
+        value = conversions["DOMString"](value, { context: context + " has member 'newValue' that" });
       }
       ret[key] = value;
     } else {
@@ -46,7 +46,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = conversions["DOMString"](value, { context: context + " has member oldValue that" });
+        value = conversions["DOMString"](value, { context: context + " has member 'oldValue' that" });
       }
       ret[key] = value;
     } else {
@@ -61,7 +61,7 @@
       if (value === null || value === undefined) {
         value = null;
       } else {
-        value = Storage.convert(value, { context: context + " has member storageArea that" });
+        value = Storage.convert(value, { context: context + " has member 'storageArea' that" });
       }
       ret[key] = value;
     } else {
@@ -73,7 +73,7 @@
     const key = "url";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["USVString"](value, { context: context + " has member url that" });
+      value = conversions["USVString"](value, { context: context + " has member 'url' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js
index 9c1bc35..17ddd31 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "StyleSheetList";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'StyleSheetList'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,34 +31,63 @@
     throw new Error("Internal error: constructor StyleSheetList is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj = new Proxy(obj, proxyHandler);
+  wrapper = new Proxy(wrapper, proxyHandler);
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  let wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper = new Proxy(wrapper, proxyHandler);
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class StyleSheetList {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js
index 668ee55..3260bac 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js
@@ -11,8 +11,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for SupportedType`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for SupportedType`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Text.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Text.js
index d811440..4beef39 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Text.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/Text.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "Text";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'Text'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor Text is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  CharacterData._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  CharacterData._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.CharacterData === undefined) {
     throw new Error("Internal error: attempting to evaluate Text before CharacterData");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js
index b3b01c0..977b607 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for TextTrackKind`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for TextTrackKind`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js
index b03e185..c3a026f 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "TouchEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'TouchEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor TouchEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  UIEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  UIEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.UIEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate TouchEvent before UIEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js
index ae6a9e8..670568e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js
@@ -13,7 +13,7 @@
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
       if (!utils.isObject(value)) {
-        throw new TypeError(context + " has member changedTouches that" + " is not an iterable object.");
+        throw new TypeError(context + " has member 'changedTouches' that" + " is not an iterable object.");
       } else {
         const V = [];
         const tmp = value;
@@ -36,7 +36,7 @@
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
       if (!utils.isObject(value)) {
-        throw new TypeError(context + " has member targetTouches that" + " is not an iterable object.");
+        throw new TypeError(context + " has member 'targetTouches' that" + " is not an iterable object.");
       } else {
         const V = [];
         const tmp = value;
@@ -59,7 +59,7 @@
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
       if (!utils.isObject(value)) {
-        throw new TypeError(context + " has member touches that" + " is not an iterable object.");
+        throw new TypeError(context + " has member 'touches' that" + " is not an iterable object.");
       } else {
         const V = [];
         const tmp = value;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js
index 9edfcf6..b02f5ad 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "TreeWalker";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'TreeWalker'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,32 +32,59 @@
     throw new Error("Internal error: constructor TreeWalker is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class TreeWalker {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js
index 59473a1..6565942 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "UIEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'UIEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor UIEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Event._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Event._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Event === undefined) {
     throw new Error("Internal error: attempting to evaluate UIEvent before Event");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js
index 99e68ad..9f4ceba 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js
@@ -12,7 +12,7 @@
     const key = "detail";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["long"](value, { context: context + " has member detail that" });
+      value = conversions["long"](value, { context: context + " has member 'detail' that" });
 
       ret[key] = value;
     } else {
@@ -39,7 +39,7 @@
     const key = "which";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member which that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'which' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js
index 2f44b5b..a976979 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js
@@ -8,20 +8,20 @@
 
 const interfaceName = "ValidityState";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'ValidityState'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -31,32 +31,59 @@
     throw new Error("Internal error: constructor ValidityState is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class ValidityState {
     constructor() {
       throw new TypeError("Illegal constructor");
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js
index 3a68b07..bc198c1 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for VisibilityState`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for VisibilityState`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js
index 2912b58..4490187 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js
@@ -11,20 +11,20 @@
 
 const interfaceName = "WebSocket";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'WebSocket'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     throw new Error("Internal error: constructor WebSocket is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "Worker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate WebSocket before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js
index 9ae8d86..85b19a7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js
@@ -10,20 +10,20 @@
 
 const interfaceName = "WheelEvent";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'WheelEvent'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -33,34 +33,62 @@
     throw new Error("Internal error: constructor WheelEvent is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  MouseEvent._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  MouseEvent._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.MouseEvent === undefined) {
     throw new Error("Internal error: attempting to evaluate WheelEvent before MouseEvent");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js
index debac79..f5bc1d3 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js
@@ -12,7 +12,7 @@
     const key = "deltaMode";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["unsigned long"](value, { context: context + " has member deltaMode that" });
+      value = conversions["unsigned long"](value, { context: context + " has member 'deltaMode' that" });
 
       ret[key] = value;
     } else {
@@ -24,7 +24,7 @@
     const key = "deltaX";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["double"](value, { context: context + " has member deltaX that" });
+      value = conversions["double"](value, { context: context + " has member 'deltaX' that" });
 
       ret[key] = value;
     } else {
@@ -36,7 +36,7 @@
     const key = "deltaY";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["double"](value, { context: context + " has member deltaY that" });
+      value = conversions["double"](value, { context: context + " has member 'deltaY' that" });
 
       ret[key] = value;
     } else {
@@ -48,7 +48,7 @@
     const key = "deltaZ";
     let value = obj === undefined || obj === null ? undefined : obj[key];
     if (value !== undefined) {
-      value = conversions["double"](value, { context: context + " has member deltaZ that" });
+      value = conversions["double"](value, { context: context + " has member 'deltaZ' that" });
 
       ret[key] = value;
     } else {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js
index 77ddd45..3f76007 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "XMLDocument";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'XMLDocument'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor XMLDocument is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  Document._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  Document._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.Document === undefined) {
     throw new Error("Internal error: attempting to evaluate XMLDocument before Document");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js
index 233fc2d..de304f7 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js
@@ -13,20 +13,20 @@
 
 const interfaceName = "XMLHttpRequest";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'XMLHttpRequest'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -36,34 +36,62 @@
     throw new Error("Internal error: constructor XMLHttpRequest is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  XMLHttpRequestEventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  XMLHttpRequestEventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "DedicatedWorker", "SharedWorker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.XMLHttpRequestEventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate XMLHttpRequest before XMLHttpRequestEventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js
index 868c6d7..4426aca 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "XMLHttpRequestEventTarget";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'XMLHttpRequestEventTarget'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -34,34 +34,62 @@
     );
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  EventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  EventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "DedicatedWorker", "SharedWorker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.EventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate XMLHttpRequestEventTarget before EventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js
index 98e92bb..56696c8 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js
@@ -5,8 +5,8 @@
 
 exports.convert = function convert(value, { context = "The provided value" } = {}) {
   const string = `${value}`;
-  if (!enumerationValues.has(value)) {
-    throw new TypeError(`${context} '${value}' is not a valid enumeration value for XMLHttpRequestResponseType`);
+  if (!enumerationValues.has(string)) {
+    throw new TypeError(`${context} '${string}' is not a valid enumeration value for XMLHttpRequestResponseType`);
   }
   return string;
 };
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js
index bee946d..3e34ade 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "XMLHttpRequestUpload";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'XMLHttpRequestUpload'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,34 +32,62 @@
     throw new Error("Internal error: constructor XMLHttpRequestUpload is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {
-  XMLHttpRequestEventTarget._internalSetup(obj, globalObject);
-};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {
+  XMLHttpRequestEventTarget._internalSetup(wrapper, globalObject);
+};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window", "DedicatedWorker", "SharedWorker"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
+
   if (globalObject.XMLHttpRequestEventTarget === undefined) {
     throw new Error("Internal error: attempting to evaluate XMLHttpRequestUpload before XMLHttpRequestEventTarget");
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js
index 32c003a..606bb23 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js
@@ -9,20 +9,20 @@
 
 const interfaceName = "XMLSerializer";
 
-exports.is = function is(obj) {
-  return utils.isObject(obj) && utils.hasOwn(obj, implSymbol) && obj[implSymbol] instanceof Impl.implementation;
+exports.is = value => {
+  return utils.isObject(value) && utils.hasOwn(value, implSymbol) && value[implSymbol] instanceof Impl.implementation;
 };
-exports.isImpl = function isImpl(obj) {
-  return utils.isObject(obj) && obj instanceof Impl.implementation;
+exports.isImpl = value => {
+  return utils.isObject(value) && value instanceof Impl.implementation;
 };
-exports.convert = function convert(obj, { context = "The provided value" } = {}) {
-  if (exports.is(obj)) {
-    return utils.implForWrapper(obj);
+exports.convert = (value, { context = "The provided value" } = {}) => {
+  if (exports.is(value)) {
+    return utils.implForWrapper(value);
   }
   throw new TypeError(`${context} is not of type 'XMLSerializer'.`);
 };
 
-exports.create = function create(globalObject, constructorArgs, privateData) {
+function makeWrapper(globalObject) {
   if (globalObject[ctorRegistrySymbol] === undefined) {
     throw new Error("Internal error: invalid global object");
   }
@@ -32,32 +32,59 @@
     throw new Error("Internal error: constructor XMLSerializer is not installed on the passed global object");
   }
 
-  let obj = Object.create(ctor.prototype);
-  obj = exports.setup(obj, globalObject, constructorArgs, privateData);
-  return obj;
-};
-exports.createImpl = function createImpl(globalObject, constructorArgs, privateData) {
-  const obj = exports.create(globalObject, constructorArgs, privateData);
-  return utils.implForWrapper(obj);
-};
-exports._internalSetup = function _internalSetup(obj, globalObject) {};
-exports.setup = function setup(obj, globalObject, constructorArgs = [], privateData = {}) {
-  privateData.wrapper = obj;
+  return Object.create(ctor.prototype);
+}
 
-  exports._internalSetup(obj, globalObject);
-  Object.defineProperty(obj, implSymbol, {
+exports.create = (globalObject, constructorArgs, privateData) => {
+  const wrapper = makeWrapper(globalObject);
+  return exports.setup(wrapper, globalObject, constructorArgs, privateData);
+};
+
+exports.createImpl = (globalObject, constructorArgs, privateData) => {
+  const wrapper = exports.create(globalObject, constructorArgs, privateData);
+  return utils.implForWrapper(wrapper);
+};
+
+exports._internalSetup = (wrapper, globalObject) => {};
+
+exports.setup = (wrapper, globalObject, constructorArgs = [], privateData = {}) => {
+  privateData.wrapper = wrapper;
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
     value: new Impl.implementation(globalObject, constructorArgs, privateData),
     configurable: true
   });
 
-  obj[implSymbol][utils.wrapperSymbol] = obj;
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
   if (Impl.init) {
-    Impl.init(obj[implSymbol], privateData);
+    Impl.init(wrapper[implSymbol]);
   }
-  return obj;
+  return wrapper;
 };
 
-exports.install = function install(globalObject) {
+exports.new = globalObject => {
+  const wrapper = makeWrapper(globalObject);
+
+  exports._internalSetup(wrapper, globalObject);
+  Object.defineProperty(wrapper, implSymbol, {
+    value: Object.create(Impl.implementation.prototype),
+    configurable: true
+  });
+
+  wrapper[implSymbol][utils.wrapperSymbol] = wrapper;
+  if (Impl.init) {
+    Impl.init(wrapper[implSymbol]);
+  }
+  return wrapper[implSymbol];
+};
+
+const exposed = new Set(["Window"]);
+
+exports.install = (globalObject, globalNames) => {
+  if (!globalNames.some(globalName => exposed.has(globalName))) {
+    return;
+  }
   class XMLSerializer {
     constructor() {
       return exports.setup(Object.create(new.target.prototype), globalObject, undefined);
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js
index 4890b80..cfcb89e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js
@@ -6,10 +6,9 @@
 const reportException = require("./runtime-script-errors");
 
 exports.appendHandler = function appendHandler(el, eventName) {
-  el.addEventListener(eventName, event => {
+  // tryImplForWrapper() is currently required due to use in Window.js
+  idlUtils.tryImplForWrapper(el).addEventListener(eventName, event => {
     // https://html.spec.whatwg.org/#the-event-handler-processing-algorithm
-    event = idlUtils.implForWrapper(event);
-
     const callback = el["on" + eventName];
     if (callback === null) {
       return;
@@ -28,6 +27,7 @@
           event.filename, event.lineno, event.colno, event.error
         );
       } else {
+        // This will no longer be necessary once EventHandler and Window are implemented in IDL:
         const eventWrapper = idlUtils.wrapperForImpl(event);
         returnValue = callback.call(thisValue, eventWrapper);
       }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js
index 7ca184b..7d1a38c 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js
@@ -1,32 +1,35 @@
 "use strict";
-const nodeType = require("../node-type.js");
 const FocusEvent = require("../generated/FocusEvent.js");
 const idlUtils = require("../generated/utils.js");
 const { isDisabled } = require("./form-controls.js");
 const { firstChildWithLocalName } = require("./traversal");
 const { createAnEvent } = require("./events");
-const { HTML_NS } = require("./namespaces");
+const { HTML_NS, SVG_NS } = require("./namespaces");
+const { isRenderedElement } = require("./svg/render");
 
 const focusableFormElements = new Set(["input", "select", "textarea", "button"]);
 
 // https://html.spec.whatwg.org/multipage/interaction.html#focusable-area, but also some of
-// https://html.spec.whatwg.org/multipage/interaction.html#focusing-steps: e.g., Documents are not actually focusable
-// areas, but their viewports are, and the first step of the latter algorithm translates Documents to their viewports.
-// And also https://html.spec.whatwg.org/multipage/interaction.html#specially-focusable!
+// https://html.spec.whatwg.org/multipage/interaction.html#focusing-steps and some of
+// https://svgwg.org/svg2-draft/interact.html#TermFocusable
 exports.isFocusableAreaElement = elImpl => {
-  if (!elImpl._ownerDocument._defaultView && !elImpl._defaultView) {
-    return false;
-  }
-
-  if (elImpl._nodeType === nodeType.DOCUMENT_NODE) {
-    return true;
-  }
-
-  if (!Number.isNaN(parseInt(elImpl.getAttributeNS(null, "tabindex")))) {
-    return true;
-  }
-
+  // We implemented most of the suggested focusable elements found here:
+  // https://html.spec.whatwg.org/multipage/interaction.html#tabindex-value
+  // However, some suggested elements are not focusable in web browsers, as detailed here:
+  // https://github.com/whatwg/html/issues/5490
   if (elImpl._namespaceURI === HTML_NS) {
+    if (!elImpl._ownerDocument._defaultView) {
+      return false;
+    }
+
+    if (!elImpl.isConnected) {
+      return false;
+    }
+
+    if (!Number.isNaN(parseInt(elImpl.getAttributeNS(null, "tabindex")))) {
+      return true;
+    }
+
     if (elImpl._localName === "iframe") {
       return true;
     }
@@ -48,6 +51,28 @@
 
       return true;
     }
+
+    if (elImpl.hasAttributeNS(null, "contenteditable")) {
+      return true;
+    }
+
+    return false;
+
+    // This does not check for a designMode Document as specified in
+    // https://html.spec.whatwg.org/multipage/interaction.html#editing-host because the designMode
+    // attribute is not implemented.
+  }
+
+  if (elImpl._namespaceURI === SVG_NS) {
+    if (!Number.isNaN(parseInt(elImpl.getAttributeNS(null, "tabindex"))) && isRenderedElement(elImpl)) {
+      return true;
+    }
+
+    if (elImpl._localName === "a" && elImpl.hasAttributeNS(null, "href")) {
+      return true;
+    }
+
+    return false;
   }
 
   return false;
@@ -55,13 +80,16 @@
 
 // https://html.spec.whatwg.org/multipage/interaction.html#fire-a-focus-event plus the steps of
 // https://html.spec.whatwg.org/multipage/interaction.html#focus-update-steps that adjust Documents to Windows
-exports.fireFocusEventWithTargetAdjustment = (name, target, relatedTarget) => {
+// It's extended with the bubbles option to also handle focusin/focusout, which are "defined" in
+// https://w3c.github.io/uievents/#event-type-focusin. See https://github.com/whatwg/html/issues/3514.
+exports.fireFocusEventWithTargetAdjustment = (name, target, relatedTarget, { bubbles = false } = {}) => {
   if (target === null) {
     // E.g. firing blur with nothing previously focused.
     return;
   }
 
   const event = createAnEvent(name, target._globalObject, FocusEvent, {
+    bubbles,
     composed: true,
     relatedTarget,
     view: target._ownerDocument._defaultView,
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js
index 303155b..e03da9e 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js
@@ -106,3 +106,5 @@
   // So we skip to "any other property: The resolved value is the computed value."
   return getComputedValue(element, property);
 };
+
+exports.SHADOW_DOM_PSEUDO_REGEXP = /^::(?:part|slotted)\(/i;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js
new file mode 100644
index 0000000..651568d
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js
@@ -0,0 +1,46 @@
+"use strict";
+const { SVG_NS } = require("../namespaces");
+
+// https://svgwg.org/svg2-draft/render.html#TermNeverRenderedElement
+const neverRenderedElements = new Set([
+  "clipPath",
+  "defs",
+  "desc",
+  "linearGradient",
+  "marker",
+  "mask",
+  "metadata",
+  "pattern",
+  "radialGradient",
+  "script",
+  "style",
+  "title",
+  "symbol"
+]);
+
+// https://svgwg.org/svg2-draft/render.html#Rendered-vs-NonRendered
+exports.isRenderedElement = elImpl => {
+  if (neverRenderedElements.has(elImpl._localName)) {
+    return false;
+  }
+
+  // This does not check for elements excluded because of conditional processing attributes or ‘switch’ structures,
+  // because conditional processing is not implemented.
+  // https://svgwg.org/svg2-draft/struct.html#ConditionalProcessing
+
+  // This does not check for computed style of display being none, since that is not yet implemented for HTML
+  // focusability either (and there are no tests yet).
+
+  if (!elImpl.isConnected) {
+    return false;
+  }
+
+  // The spec is unclear about how to deal with non-SVG parents, so we only perform this check for SVG-namespace
+  // parents.
+  if (elImpl.parentElement && elImpl.parentElement._namespaceURI === SVG_NS &&
+                              !exports.isRenderedElement(elImpl.parentNode)) {
+    return false;
+  }
+
+  return true;
+};
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/interfaces.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/interfaces.js
index 90538fc..53f4023 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/interfaces.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/interfaces.js
@@ -3,7 +3,6 @@
 
 const style = require("../level2/style");
 const xpath = require("../level3/xpath");
-const nodeFilter = require("./node-filter");
 
 // This object defines the mapping between the interface name and the generated interface wrapper code.
 // Note: The mapping needs to stay as-is in order due to interface evaluation.
@@ -167,6 +166,7 @@
   XMLHttpRequest: require("./generated/XMLHttpRequest"),
   WebSocket: require("./generated/WebSocket"),
 
+  NodeFilter: require("./generated/NodeFilter"),
   NodeIterator: require("./generated/NodeIterator"),
   TreeWalker: require("./generated/TreeWalker"),
 
@@ -196,10 +196,10 @@
   });
 }
 
-exports.installInterfaces = window => {
+exports.installInterfaces = (window, globalNames) => {
   // Install generated interface.
   for (const generatedInterface of Object.values(generatedInterfaces)) {
-    generatedInterface.install(window);
+    generatedInterface.install(window, globalNames);
   }
 
   // Install legacy HTMLDocument interface
@@ -209,9 +209,6 @@
   // These need to be cleaned up...
   style.addToCore(window);
   xpath(window);
-
-  // This one is OK but needs migration to webidl2js eventually.
-  nodeFilter(window);
 };
 
 // Returns an interface webidl2js wrapper given its an interface name.
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/node-filter.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/node-filter.js
deleted file mode 100644
index 1522850..0000000
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/node-filter.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-const { addConstants } = require("../utils");
-
-module.exports = function (core) {
-  // https://dom.spec.whatwg.org/#interface-nodefilter
-  core.NodeFilter = function () {
-    throw new TypeError("Illegal constructor");
-  };
-
-  /**
-   * Returns an unsigned short that will be used to tell if a given Node must
-   * be accepted or not by the NodeIterator or TreeWalker iteration
-   * algorithm. This method is expected to be written by the user of a
-   * NodeFilter.
-   *
-   * @see https://developer.mozilla.org/en-US/docs/Web/API/NodeFilter
-   * @interface
-   *
-   * @param  {Node} node DOM Node
-   * @return {FILTER_ACCEPT|FILTER_REJECT|FILTER_SKIP}
-   */
-  core.NodeFilter.acceptNode = function (/* node */) {
-    throw new Error("This method is expected to be written by the user of a NodeFilter.");
-  };
-
-  addConstants(core.NodeFilter, {
-    // Constants for whatToShow
-    SHOW_ALL: 0xFFFFFFFF,
-    SHOW_ELEMENT: 0x00000001,
-    SHOW_ATTRIBUTE: 0x00000002,
-    SHOW_TEXT: 0x00000004,
-    SHOW_CDATA_SECTION: 0x00000008,
-    SHOW_ENTITY_REFERENCE: 0x00000010,
-    SHOW_ENTITY: 0x00000020,
-    SHOW_PROCESSING_INSTRUCTION: 0x00000040,
-    SHOW_COMMENT: 0x00000080,
-    SHOW_DOCUMENT: 0x00000100,
-    SHOW_DOCUMENT_TYPE: 0x00000200,
-    SHOW_DOCUMENT_FRAGMENT: 0x00000400,
-    SHOW_NOTATION: 0x00000800,
-
-    // Constants returned by acceptNode
-    FILTER_ACCEPT: 1,
-    FILTER_REJECT: 2,
-    FILTER_SKIP: 3
-  });
-};
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js
index 94f8d48..5a77546 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js
@@ -614,6 +614,10 @@
   }
 
   _runPreRemovingSteps(oldNode) {
+    // https://html.spec.whatwg.org/#focus-fixup-rule
+    if (oldNode === this.activeElement) {
+      this._lastFocusedElement = this.body;
+    }
     for (const activeNodeIterator of this._workingNodeIterators) {
       activeNodeIterator._preRemovingSteps(oldNode);
     }
@@ -763,7 +767,6 @@
     });
   }
 
-  // TODO: Add callback interface support to `webidl2js`
   createTreeWalker(root, whatToShow, filter) {
     return TreeWalker.createImpl(this._globalObject, [], { root, whatToShow, filter });
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js
index 4b07e12..9e8daa6 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js
@@ -78,6 +78,8 @@
     this._attributes = NamedNodeMap.createImpl(this._globalObject, [], {
       element: this
     });
+
+    this._cachedTagName = null;
   }
 
   _attach() {
@@ -133,11 +135,17 @@
     return this._prefix !== null ? this._prefix + ":" + this._localName : this._localName;
   }
   get tagName() {
-    let qualifiedName = this._qualifiedName;
-    if (this.namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
-      qualifiedName = asciiUppercase(qualifiedName);
+    // This getter can be a hotpath in getComputedStyle.
+    // All these are invariants during the instance lifetime so we can safely cache the computed tagName.
+    // We could create it during construction but since we already identified this as potentially slow we do it lazily.
+    if (this._cachedTagName === null) {
+      if (this.namespaceURI === HTML_NS && this._ownerDocument._parsingMode === "html") {
+        this._cachedTagName = asciiUppercase(this._qualifiedName);
+      } else {
+        this._cachedTagName = this._qualifiedName;
+      }
     }
-    return qualifiedName;
+    return this._cachedTagName;
   }
 
   get attributes() {
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js
index ba5a0cb..783a608 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js
@@ -1,10 +1,10 @@
 "use strict";
 const HTMLElementImpl = require("./HTMLElement-impl").implementation;
-const { isDisabled, formOwner } = require("../helpers/form-controls");
 const DefaultConstraintValidationImpl =
   require("../constraint-validation/DefaultConstraintValidation-impl").implementation;
 const { mixin } = require("../../utils");
-const { getLabelsForLabelable } = require("../helpers/form-controls");
+const { isDisabled, formOwner, getLabelsForLabelable } = require("../helpers/form-controls");
+const { asciiLowercase } = require("../helpers/strings");
 
 class HTMLButtonElementImpl extends HTMLElementImpl {
   constructor(globalObject, args, privateData) {
@@ -42,7 +42,7 @@
   }
 
   get type() {
-    const typeAttr = (this.getAttributeNS(null, "type") || "").toLowerCase();
+    const typeAttr = asciiLowercase(this.getAttributeNS(null, "type") || "");
     switch (typeAttr) {
       case "submit":
       case "reset":
@@ -54,7 +54,7 @@
   }
 
   set type(v) {
-    v = String(v).toLowerCase();
+    v = asciiLowercase(String(v));
     switch (v) {
       case "submit":
       case "reset":
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
index 2435aab..7c7bf97 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
@@ -116,6 +116,9 @@
   ctx[name] = function (image) {
     const impl = idlUtils.implForWrapper(image);
     if (impl) {
+      if (impl instanceof HTMLCanvasElementImpl && !impl._canvas) {
+        impl._getCanvas();
+      }
       arguments[0] = impl._image || impl._canvas;
     }
     return prev.apply(ctx, arguments);
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js
index 89d5531..4e6987d 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js
@@ -8,6 +8,7 @@
 const { firstChildWithLocalName } = require("../helpers/traversal");
 const { isDisabled } = require("../helpers/form-controls");
 const { fireAnEvent } = require("../helpers/events");
+const { asciiLowercase } = require("../helpers/strings");
 
 class HTMLElementImpl extends ElementImpl {
   constructor(globalObject, args, privateData) {
@@ -37,10 +38,11 @@
   // https://html.spec.whatwg.org/multipage/dom.html#the-translate-attribute
   get translate() {
     const translateAttr = this.getAttributeNS(null, "translate");
+    const translateAttrString = asciiLowercase(translateAttr || "");
 
-    if (translateAttr === "yes" || translateAttr === "") {
+    if (translateAttrString === "yes" || (translateAttr && translateAttrString === "")) {
       return true;
-    } else if (translateAttr === "no") {
+    } else if (translateAttrString === "no") {
       return false;
     }
 
@@ -86,7 +88,7 @@
   }
 
   get draggable() {
-    const attributeValue = this.getAttributeNS(null, "draggable");
+    const attributeValue = asciiLowercase(this.getAttributeNS(null, "draggable") || "");
 
     if (attributeValue === "true") {
       return true;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js
index b7ccf61..24d7b9a 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js
@@ -5,7 +5,7 @@
 const HTMLElementImpl = require("./HTMLElement-impl").implementation;
 const { domSymbolTree } = require("../helpers/internal-constants");
 const { fireAnEvent } = require("../helpers/events");
-const { isListed, isSubmittable, isSubmitButton } = require("../helpers/form-controls");
+const { formOwner, isListed, isSubmittable, isSubmitButton } = require("../helpers/form-controls");
 const HTMLCollection = require("../generated/HTMLCollection");
 const notImplemented = require("../../browser/not-implemented");
 const { parseURLToResultingURLRecord } = require("../helpers/document-base-url");
@@ -47,14 +47,24 @@
     super._descendantRemoved.apply(this, arguments);
   }
 
+  _getElementNodes() {
+    return domSymbolTree.treeToArray(this.getRootNode({}), {
+      filter: node => {
+        if (!isListed(node) || (node._localName === "input" && node.type === "image")) {
+          return false;
+        }
+
+        return formOwner(node) === this;
+      }
+    });
+  }
+
   // https://html.spec.whatwg.org/multipage/forms.html#dom-form-elements
   get elements() {
     // TODO: Return a HTMLFormControlsCollection
     return HTMLCollection.createImpl(this._globalObject, [], {
-      element: this,
-      query: () => domSymbolTree.treeToArray(this, {
-        filter: node => isListed(node) && (node._localName !== "input" || node.type !== "image")
-      })
+      element: this.getRootNode({}),
+      query: () => this._getElementNodes()
     });
   }
 
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js
index 4f2318b..43267a9 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js
@@ -6,6 +6,11 @@
 const { parseURLToResultingURLRecord } = require("../helpers/document-base-url");
 
 class HTMLImageElementImpl extends HTMLElementImpl {
+  constructor(...args) {
+    super(...args);
+    this._currentRequestState = "unavailable";
+  }
+
   _attrModified(name, value, oldVal) {
     // TODO: handle crossorigin
     if (name === "src" || ((name === "srcset" || name === "width" || name === "sizes") && value !== oldVal)) {
@@ -50,7 +55,11 @@
   }
 
   get complete() {
-    return Boolean(this._image && this._image.complete);
+    const srcAttributeValue = this.getAttributeNS(null, "src");
+    return srcAttributeValue === null ||
+      srcAttributeValue === "" ||
+      this._currentRequestState === "broken" ||
+      this._currentRequestState === "completely available";
   }
 
   get currentSrc() {
@@ -69,16 +78,11 @@
       return;
     }
 
-    let error;
     if (!this._image) {
       this._image = new Canvas.Image();
-      // Install an error handler that just remembers the error. It is then
-      // thrown in the callback of resourceLoader.fetch() below.
-      this._image.onerror = function (err) {
-        error = err;
-      };
     }
     this._currentSrc = null;
+    this._currentRequestState = "unavailable";
     const srcAttributeValue = this.getAttributeNS(null, "src");
     let urlString = null;
     if (srcAttributeValue !== null && srcAttributeValue !== "") {
@@ -98,17 +102,24 @@
         if (response && response.statusCode !== undefined && response.statusCode !== 200) {
           throw new Error("Status code: " + response.statusCode);
         }
-        error = null;
+        let error = null;
+        this._image.onerror = function (err) {
+          error = err;
+        };
         this._image.src = data;
         if (error) {
           throw new Error(error);
         }
         this._currentSrc = srcAttributeValue;
+        this._currentRequestState = "completely available";
       };
 
       request = resourceLoader.fetch(urlString, {
         element: this,
-        onLoad: onLoadImage
+        onLoad: onLoadImage,
+        onError: () => {
+          this._currentRequestState = "broken";
+        }
       });
     } else {
       this._image.src = "";
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js
index c13d119..386e0a6 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js
@@ -332,11 +332,11 @@
     return null;
   }
 
-  _isRadioGroupChecked() {
-    if (this.checked) {
+  _someInRadioGroup(name) {
+    if (this[name]) {
       return true;
     }
-    return this._otherRadioGroupElements.some(radioGroupElement => radioGroupElement.checked);
+    return this._otherRadioGroupElements.some(radioGroupElement => radioGroupElement[name]);
   }
 
   get _mutable() {
@@ -976,7 +976,7 @@
             // and all of the input elements in the radio button group have a checkedness
             // that is false, then the element is suffering from being missing.
             case "radio":
-              if (this._required && !this._isRadioGroupChecked()) {
+              if (this._someInRadioGroup("_required") && !this._someInRadioGroup("checked")) {
                 return true;
               }
               break;
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js
index 8640bae..1097c82 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js
@@ -42,20 +42,31 @@
     if (!focusing.isFocusableAreaElement(this)) {
       return;
     }
-
-    const previous = this._ownerDocument._lastFocusedElement;
+    const ownerDocument = this._ownerDocument;
+    const previous = ownerDocument._lastFocusedElement;
 
     if (previous === this) {
       return;
     }
 
-    focusing.fireFocusEventWithTargetAdjustment("blur", previous, this);
-    this._ownerDocument._lastFocusedElement = this;
-    focusing.fireFocusEventWithTargetAdjustment("focus", this, previous);
-
-    if (this._ownerDocument._defaultView._frameElement) {
-      this._ownerDocument._defaultView._frameElement.focus();
+    ownerDocument._lastFocusedElement = null;
+    if (previous) {
+      focusing.fireFocusEventWithTargetAdjustment("blur", previous, this);
+      focusing.fireFocusEventWithTargetAdjustment("focusout", previous, this, { bubbles: true });
+    } else {
+      const frameElement = ownerDocument._defaultView._frameElement;
+      if (frameElement) {
+        const frameLastFocusedElement = frameElement.ownerDocument._lastFocusedElement;
+        frameElement.ownerDocument._lastFocusedElement = null;
+        focusing.fireFocusEventWithTargetAdjustment("blur", frameLastFocusedElement, null);
+        focusing.fireFocusEventWithTargetAdjustment("focusout", frameLastFocusedElement, null, { bubbles: true });
+        frameElement.ownerDocument._lastFocusedElement = frameElement;
+      }
     }
+
+    ownerDocument._lastFocusedElement = this;
+    focusing.fireFocusEventWithTargetAdjustment("focus", this, previous);
+    focusing.fireFocusEventWithTargetAdjustment("focusin", this, previous, { bubbles: true });
   }
 
   blur() {
@@ -63,9 +74,11 @@
       return;
     }
 
-    focusing.fireFocusEventWithTargetAdjustment("blur", this, this._ownerDocument);
     this._ownerDocument._lastFocusedElement = null;
+    focusing.fireFocusEventWithTargetAdjustment("blur", this, this._ownerDocument);
+    focusing.fireFocusEventWithTargetAdjustment("focusout", this, this._ownerDocument, { bubbles: true });
     focusing.fireFocusEventWithTargetAdjustment("focus", this._ownerDocument, this);
+    focusing.fireFocusEventWithTargetAdjustment("focusin", this._ownerDocument, this, { bubbles: true });
   }
 }
 
diff --git a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js
index c2a5ea3..1057cc9 100644
--- a/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js
+++ b/node_modules/jest-circus/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js
@@ -1,9 +1,7 @@
 "use strict";
 const DOMException = require("domexception/webidl2js-wrapper");
-const idlUtils = require("../generated/utils");
 const conversions = require("webidl-conversions");
 
-// TODO: Once NodeFilter is ported to IDL method, use those instead.
 exports.FILTER_ACCEPT = 1; // NodeFilter.FILTER_ACCEPT
 exports.FILTER_REJECT = 2; // NodeFilter.FILTER_REJECT
 exports.FILTER_SKIP = 3; // NodeFilter.FILTER_SKIP
@@ -35,11 +33,7 @@
 
   // https://github.com/whatwg/dom/issues/494
   try {
-    if (typeof filter === "function") {
-      result = filter(idlUtils.wrapperForImpl(nodeImpl));
-    } else {
-      result = filter.acceptNode(idlUtils.wrapperForImpl(nodeImpl));
-    }
+    result = filter(nodeImpl);
   } finally {
     nodeIteratorOrTreeWalkerImpl._active = false;
   }
diff --git a/node_modules/jest-circus/node_modules/jsdom/package.json b/node_modules/jest-circus/node_modules/jsdom/package.json
index 18b8109..ecb5ce9 100644
--- a/node_modules/jest-circus/node_modules/jsdom/package.json
+++ b/node_modules/jest-circus/node_modules/jsdom/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jsdom",
-  "version": "16.2.2",
+  "version": "16.4.0",
   "description": "A JavaScript implementation of many web standards",
   "keywords": [
     "dom",
@@ -40,7 +40,7 @@
     "tough-cookie": "^3.0.1",
     "w3c-hr-time": "^1.0.2",
     "w3c-xmlserializer": "^2.0.0",
-    "webidl-conversions": "^6.0.0",
+    "webidl-conversions": "^6.1.0",
     "whatwg-encoding": "^1.0.5",
     "whatwg-mimetype": "^2.3.0",
     "whatwg-url": "^8.0.0",
@@ -82,7 +82,7 @@
     "st": "^2.0.0",
     "watchify": "^3.11.1",
     "wd": "^1.12.1",
-    "webidl2js": "^15.1.0"
+    "webidl2js": "^16.0.0"
   },
   "browser": {
     "canvas": false,
diff --git a/node_modules/jest-circus/node_modules/pretty-format/build/index.js b/node_modules/jest-circus/node_modules/pretty-format/build/index.js
index 9519847..6e10cb1 100644
--- a/node_modules/jest-circus/node_modules/pretty-format/build/index.js
+++ b/node_modules/jest-circus/node_modules/pretty-format/build/index.js
@@ -32,6 +32,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const toString = Object.prototype.toString;
 const toISOString = Date.prototype.toISOString;
 const errorToString = Error.prototype.toString;
@@ -554,6 +556,5 @@
   Immutable: _Immutable.default,
   ReactElement: _ReactElement.default,
   ReactTestComponent: _ReactTestComponent.default
-}; // eslint-disable-next-line no-redeclare
-
+};
 module.exports = prettyFormat;
diff --git a/node_modules/jest-circus/node_modules/pretty-format/build/plugins/DOMCollection.js b/node_modules/jest-circus/node_modules/pretty-format/build/plugins/DOMCollection.js
index f256551..1ae3750 100644
--- a/node_modules/jest-circus/node_modules/pretty-format/build/plugins/DOMCollection.js
+++ b/node_modules/jest-circus/node_modules/pretty-format/build/plugins/DOMCollection.js
@@ -13,6 +13,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const SPACE = ' ';
 const OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap'];
 const ARRAY_REGEXP = /^(HTML\w*Collection|NodeList)$/;
diff --git a/node_modules/jest-circus/node_modules/pretty-format/build/plugins/lib/markup.d.ts b/node_modules/jest-circus/node_modules/pretty-format/build/plugins/lib/markup.d.ts
index 6155219..60d99ab 100644
--- a/node_modules/jest-circus/node_modules/pretty-format/build/plugins/lib/markup.d.ts
+++ b/node_modules/jest-circus/node_modules/pretty-format/build/plugins/lib/markup.d.ts
@@ -6,7 +6,7 @@
  */
 import type { Config, Printer, Refs } from '../../types';
 export declare const printProps: (keys: Array<string>, props: Record<string, unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
-export declare const printChildren: (children: Array<any>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
+export declare const printChildren: (children: Array<unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
 export declare const printText: (text: string, config: Config) => string;
 export declare const printComment: (comment: string, config: Config) => string;
 export declare const printElement: (type: string, printedProps: string, printedChildren: string, config: Config, indentation: string) => string;
diff --git a/node_modules/jest-circus/node_modules/pretty-format/package.json b/node_modules/jest-circus/node_modules/pretty-format/package.json
index 7f0c77b..093ddc7 100644
--- a/node_modules/jest-circus/node_modules/pretty-format/package.json
+++ b/node_modules/jest-circus/node_modules/pretty-format/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pretty-format",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -12,7 +12,7 @@
   "types": "build/index.d.ts",
   "author": "James Kyle <me@thejameskyle.com>",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "ansi-regex": "^5.0.0",
     "ansi-styles": "^4.0.0",
     "react-is": "^16.12.0"
@@ -22,7 +22,7 @@
     "@types/react-is": "^16.7.1",
     "@types/react-test-renderer": "*",
     "immutable": "4.0.0-rc.9",
-    "jest-util": "^26.3.0",
+    "jest-util": "^26.5.2",
     "react": "*",
     "react-dom": "*",
     "react-test-renderer": "*"
@@ -33,5 +33,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/strip-bom/index.d.ts b/node_modules/jest-circus/node_modules/strip-bom/index.d.ts
similarity index 100%
rename from node_modules/strip-bom/index.d.ts
rename to node_modules/jest-circus/node_modules/strip-bom/index.d.ts
diff --git a/node_modules/jest-circus/node_modules/strip-bom/index.js b/node_modules/jest-circus/node_modules/strip-bom/index.js
new file mode 100644
index 0000000..82f9175
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/strip-bom/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = string => {
+	if (typeof string !== 'string') {
+		throw new TypeError(`Expected a string, got ${typeof string}`);
+	}
+
+	// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
+	// conversion translates it to FEFF (UTF-16 BOM)
+	if (string.charCodeAt(0) === 0xFEFF) {
+		return string.slice(1);
+	}
+
+	return string;
+};
diff --git a/node_modules/cli-cursor/license b/node_modules/jest-circus/node_modules/strip-bom/license
similarity index 100%
rename from node_modules/cli-cursor/license
rename to node_modules/jest-circus/node_modules/strip-bom/license
diff --git a/node_modules/jest-circus/node_modules/strip-bom/package.json b/node_modules/jest-circus/node_modules/strip-bom/package.json
new file mode 100644
index 0000000..f96ba34
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/strip-bom/package.json
@@ -0,0 +1,42 @@
+{
+	"name": "strip-bom",
+	"version": "4.0.0",
+	"description": "Strip UTF-8 byte order mark (BOM) from a string",
+	"license": "MIT",
+	"repository": "sindresorhus/strip-bom",
+	"author": {
+		"name": "Sindre Sorhus",
+		"email": "sindresorhus@gmail.com",
+		"url": "sindresorhus.com"
+	},
+	"engines": {
+		"node": ">=8"
+	},
+	"scripts": {
+		"test": "xo && ava && tsd"
+	},
+	"files": [
+		"index.js",
+		"index.d.ts"
+	],
+	"keywords": [
+		"strip",
+		"bom",
+		"byte",
+		"order",
+		"mark",
+		"unicode",
+		"utf8",
+		"utf-8",
+		"remove",
+		"delete",
+		"trim",
+		"text",
+		"string"
+	],
+	"devDependencies": {
+		"ava": "^1.4.1",
+		"tsd": "^0.7.2",
+		"xo": "^0.24.0"
+	}
+}
diff --git a/node_modules/jest-circus/node_modules/strip-bom/readme.md b/node_modules/jest-circus/node_modules/strip-bom/readme.md
new file mode 100644
index 0000000..e826851
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/strip-bom/readme.md
@@ -0,0 +1,54 @@
+# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
+
+> Strip UTF-8 [byte order mark](https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
+
+From Wikipedia:
+
+> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
+
+---
+
+<div align="center">
+	<b>
+		<a href="https://tidelift.com/subscription/pkg/npm-strip-bom?utm_source=npm-strip-bom&utm_medium=referral&utm_campaign=readme">Get professional support for 'strip-bom' with a Tidelift subscription</a>
+	</b>
+	<br>
+	<sub>
+		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
+	</sub>
+</div>
+
+---
+
+## Install
+
+```
+$ npm install strip-bom
+```
+
+
+## Usage
+
+```js
+const stripBom = require('strip-bom');
+
+stripBom('\uFEFFunicorn');
+//=> 'unicorn'
+```
+
+
+## Security
+
+To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
+
+
+## Related
+
+- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
+- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module
+- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/CHANGELOG.md b/node_modules/jest-circus/node_modules/yargs-parser/CHANGELOG.md
new file mode 100644
index 0000000..d91dc51
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/CHANGELOG.md
@@ -0,0 +1,601 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [18.1.3](https://www.github.com/yargs/yargs-parser/compare/v18.1.2...v18.1.3) (2020-04-16)
+
+
+### Bug Fixes
+
+* **setArg:** options using camel-case and dot-notation populated twice ([#268](https://www.github.com/yargs/yargs-parser/issues/268)) ([f7e15b9](https://www.github.com/yargs/yargs-parser/commit/f7e15b9800900b9856acac1a830a5f35847be73e))
+
+### [18.1.2](https://www.github.com/yargs/yargs-parser/compare/v18.1.1...v18.1.2) (2020-03-26)
+
+
+### Bug Fixes
+
+* **array, nargs:** support -o=--value and --option=--value format ([#262](https://www.github.com/yargs/yargs-parser/issues/262)) ([41d3f81](https://www.github.com/yargs/yargs-parser/commit/41d3f8139e116706b28de9b0de3433feb08d2f13))
+
+### [18.1.1](https://www.github.com/yargs/yargs-parser/compare/v18.1.0...v18.1.1) (2020-03-16)
+
+
+### Bug Fixes
+
+* \_\_proto\_\_ will now be replaced with \_\_\_proto\_\_\_ in parse ([#258](https://www.github.com/yargs/yargs-parser/issues/258)), patching a potential 
+prototype pollution vulnerability. This was reported by the Snyk Security Research Team.([63810ca](https://www.github.com/yargs/yargs-parser/commit/63810ca1ae1a24b08293a4d971e70e058c7a41e2))
+
+## [18.1.0](https://www.github.com/yargs/yargs-parser/compare/v18.0.0...v18.1.0) (2020-03-07)
+
+
+### Features
+
+* introduce single-digit boolean aliases ([#255](https://www.github.com/yargs/yargs-parser/issues/255)) ([9c60265](https://www.github.com/yargs/yargs-parser/commit/9c60265fd7a03cb98e6df3e32c8c5e7508d9f56f))
+
+## [18.0.0](https://www.github.com/yargs/yargs-parser/compare/v17.1.0...v18.0.0) (2020-03-02)
+
+
+### ⚠ BREAKING CHANGES
+
+* the narg count is now enforced when parsing arrays.
+
+### Features
+
+* NaN can now be provided as a value for nargs, indicating "at least" one value is expected for array ([#251](https://www.github.com/yargs/yargs-parser/issues/251)) ([9db4be8](https://www.github.com/yargs/yargs-parser/commit/9db4be81417a2c7097128db34d86fe70ef4af70c))
+
+## [17.1.0](https://www.github.com/yargs/yargs-parser/compare/v17.0.1...v17.1.0) (2020-03-01)
+
+
+### Features
+
+* introduce greedy-arrays config, for specifying whether arrays consume multiple positionals ([#249](https://www.github.com/yargs/yargs-parser/issues/249)) ([60e880a](https://www.github.com/yargs/yargs-parser/commit/60e880a837046314d89fa4725f923837fd33a9eb))
+
+### [17.0.1](https://www.github.com/yargs/yargs-parser/compare/v17.0.0...v17.0.1) (2020-02-29)
+
+
+### Bug Fixes
+
+* normalized keys were not enumerable ([#247](https://www.github.com/yargs/yargs-parser/issues/247)) ([57119f9](https://www.github.com/yargs/yargs-parser/commit/57119f9f17cf27499bd95e61c2f72d18314f11ba))
+
+## [17.0.0](https://www.github.com/yargs/yargs-parser/compare/v16.1.0...v17.0.0) (2020-02-10)
+
+
+### ⚠ BREAKING CHANGES
+
+* this reverts parsing behavior of booleans to that of yargs@14
+* objects used during parsing are now created with a null
+prototype. There may be some scenarios where this change in behavior
+leaks externally.
+
+### Features
+
+* boolean arguments will not be collected into an implicit array ([#236](https://www.github.com/yargs/yargs-parser/issues/236)) ([34c4e19](https://www.github.com/yargs/yargs-parser/commit/34c4e19bae4e7af63e3cb6fa654a97ed476e5eb5))
+* introduce nargs-eats-options config option ([#246](https://www.github.com/yargs/yargs-parser/issues/246)) ([d50822a](https://www.github.com/yargs/yargs-parser/commit/d50822ac10e1b05f2e9643671ca131ac251b6732))
+
+
+### Bug Fixes
+
+* address bugs with "uknown-options-as-args" ([bc023e3](https://www.github.com/yargs/yargs-parser/commit/bc023e3b13e20a118353f9507d1c999bf388a346))
+* array should take precedence over nargs, but enforce nargs ([#243](https://www.github.com/yargs/yargs-parser/issues/243)) ([4cbc188](https://www.github.com/yargs/yargs-parser/commit/4cbc188b7abb2249529a19c090338debdad2fe6c))
+* support keys that collide with object prototypes ([#234](https://www.github.com/yargs/yargs-parser/issues/234)) ([1587b6d](https://www.github.com/yargs/yargs-parser/commit/1587b6d91db853a9109f1be6b209077993fee4de))
+* unknown options terminated with digits now handled by unknown-options-as-args ([#238](https://www.github.com/yargs/yargs-parser/issues/238)) ([d36cdfa](https://www.github.com/yargs/yargs-parser/commit/d36cdfa854254d7c7e0fe1d583818332ac46c2a5))
+
+## [16.1.0](https://www.github.com/yargs/yargs-parser/compare/v16.0.0...v16.1.0) (2019-11-01)
+
+
+### ⚠ BREAKING CHANGES
+
+* populate error if incompatible narg/count or array/count options are used (#191)
+
+### Features
+
+* options that have had their default value used are now tracked ([#211](https://www.github.com/yargs/yargs-parser/issues/211)) ([a525234](https://www.github.com/yargs/yargs-parser/commit/a525234558c847deedd73f8792e0a3b77b26e2c0))
+* populate error if incompatible narg/count or array/count options are used ([#191](https://www.github.com/yargs/yargs-parser/issues/191)) ([84a401f](https://www.github.com/yargs/yargs-parser/commit/84a401f0fa3095e0a19661670d1570d0c3b9d3c9))
+
+
+### Reverts
+
+* revert 16.0.0 CHANGELOG entry ([920320a](https://www.github.com/yargs/yargs-parser/commit/920320ad9861bbfd58eda39221ae211540fc1daf))
+
+## [15.0.0](https://github.com/yargs/yargs-parser/compare/v14.0.0...v15.0.0) (2019-10-07)
+
+
+### Features
+
+* rework `collect-unknown-options` into `unknown-options-as-args`, providing more comprehensive functionality ([ef771ca](https://github.com/yargs/yargs-parser/commit/ef771ca))
+
+
+### BREAKING CHANGES
+
+* rework `collect-unknown-options` into `unknown-options-as-args`, providing more comprehensive functionality
+
+
+
+## [14.0.0](https://github.com/yargs/yargs-parser/compare/v13.1.1...v14.0.0) (2019-09-06)
+
+
+### Bug Fixes
+
+* boolean arrays with default values ([#185](https://github.com/yargs/yargs-parser/issues/185)) ([7d42572](https://github.com/yargs/yargs-parser/commit/7d42572))
+* boolean now behaves the same as other array types ([#184](https://github.com/yargs/yargs-parser/issues/184)) ([17ca3bd](https://github.com/yargs/yargs-parser/commit/17ca3bd))
+* eatNargs() for 'opt.narg === 0' and boolean typed options ([#188](https://github.com/yargs/yargs-parser/issues/188)) ([c5a1db0](https://github.com/yargs/yargs-parser/commit/c5a1db0))
+* maybeCoerceNumber now takes precedence over coerce return value ([#182](https://github.com/yargs/yargs-parser/issues/182)) ([2f26436](https://github.com/yargs/yargs-parser/commit/2f26436))
+* take into account aliases when appending arrays from config object ([#199](https://github.com/yargs/yargs-parser/issues/199)) ([f8a2d3f](https://github.com/yargs/yargs-parser/commit/f8a2d3f))
+
+
+### Features
+
+* add configuration option to "collect-unknown-options" ([#181](https://github.com/yargs/yargs-parser/issues/181)) ([7909cc4](https://github.com/yargs/yargs-parser/commit/7909cc4))
+* maybeCoerceNumber() now takes into account arrays ([#187](https://github.com/yargs/yargs-parser/issues/187)) ([31c204b](https://github.com/yargs/yargs-parser/commit/31c204b))
+
+
+### BREAKING CHANGES
+
+* unless "parse-numbers" is set to "false", arrays of numeric strings are now parsed as numbers, rather than strings.
+* we have dropped the broken "defaulted" functionality; we would like to revisit adding this in the future.
+* maybeCoerceNumber now takes precedence over coerce return value (#182)
+
+
+
+### [13.1.1](https://www.github.com/yargs/yargs-parser/compare/v13.1.0...v13.1.1) (2019-06-10)
+
+
+### Bug Fixes
+
+* convert values to strings when tokenizing ([#167](https://www.github.com/yargs/yargs-parser/issues/167)) ([57b7883](https://www.github.com/yargs/yargs-parser/commit/57b7883))
+* nargs should allow duplicates when duplicate-arguments-array=false ([#164](https://www.github.com/yargs/yargs-parser/issues/164)) ([47ccb0b](https://www.github.com/yargs/yargs-parser/commit/47ccb0b))
+* should populate "_" when given config with "short-option-groups" false ([#179](https://www.github.com/yargs/yargs-parser/issues/179)) ([6055974](https://www.github.com/yargs/yargs-parser/commit/6055974))
+
+## [13.1.0](https://github.com/yargs/yargs-parser/compare/v13.0.0...v13.1.0) (2019-05-05)
+
+
+### Features
+
+* add `strip-aliased` and `strip-dashed` configuration options. ([#172](https://github.com/yargs/yargs-parser/issues/172)) ([a3936aa](https://github.com/yargs/yargs-parser/commit/a3936aa))
+* support boolean which do not consume next argument. ([#171](https://github.com/yargs/yargs-parser/issues/171)) ([0ae7fcb](https://github.com/yargs/yargs-parser/commit/0ae7fcb))
+
+
+
+<a name="13.0.0"></a>
+# [13.0.0](https://github.com/yargs/yargs-parser/compare/v12.0.0...v13.0.0) (2019-02-02)
+
+
+### Features
+
+* don't coerce number from string with leading '0' or '+' ([#158](https://github.com/yargs/yargs-parser/issues/158)) ([18d0fd5](https://github.com/yargs/yargs-parser/commit/18d0fd5))
+
+
+### BREAKING CHANGES
+
+* options with leading '+' or '0' now parse as strings
+
+
+
+<a name="12.0.0"></a>
+# [12.0.0](https://github.com/yargs/yargs-parser/compare/v11.1.1...v12.0.0) (2019-01-29)
+
+
+### Bug Fixes
+
+* better handling of quoted strings ([#153](https://github.com/yargs/yargs-parser/issues/153)) ([2fb71b2](https://github.com/yargs/yargs-parser/commit/2fb71b2))
+
+
+### Features
+
+* default value is now used if no right-hand value provided for numbers/strings ([#156](https://github.com/yargs/yargs-parser/issues/156)) ([5a7c46a](https://github.com/yargs/yargs-parser/commit/5a7c46a))
+
+
+### BREAKING CHANGES
+
+* a flag with no right-hand value no longer populates defaulted options with `undefined`.
+* quotes at beginning and endings of strings are not removed during parsing.
+
+
+
+<a name="11.1.1"></a>
+## [11.1.1](https://github.com/yargs/yargs-parser/compare/v11.1.0...v11.1.1) (2018-11-19)
+
+
+### Bug Fixes
+
+* ensure empty string is added into argv._ ([#140](https://github.com/yargs/yargs-parser/issues/140)) ([79cda98](https://github.com/yargs/yargs-parser/commit/79cda98))
+
+
+### Reverts
+
+* make requiresArg work in conjunction with arrays ([#136](https://github.com/yargs/yargs-parser/issues/136)) ([f4a3063](https://github.com/yargs/yargs-parser/commit/f4a3063))
+
+
+
+<a name="11.1.0"></a>
+# [11.1.0](https://github.com/yargs/yargs-parser/compare/v11.0.0...v11.1.0) (2018-11-10)
+
+
+### Bug Fixes
+
+* handling of one char alias ([#139](https://github.com/yargs/yargs-parser/issues/139)) ([ee56e31](https://github.com/yargs/yargs-parser/commit/ee56e31))
+
+
+### Features
+
+* add halt-at-non-option configuration option ([#130](https://github.com/yargs/yargs-parser/issues/130)) ([a849fce](https://github.com/yargs/yargs-parser/commit/a849fce))
+
+
+
+<a name="11.0.0"></a>
+# [11.0.0](https://github.com/yargs/yargs-parser/compare/v10.1.0...v11.0.0) (2018-10-06)
+
+
+### Bug Fixes
+
+* flatten-duplicate-arrays:false for more than 2 arrays ([#128](https://github.com/yargs/yargs-parser/issues/128)) ([2bc395f](https://github.com/yargs/yargs-parser/commit/2bc395f))
+* hyphenated flags combined with dot notation broke parsing ([#131](https://github.com/yargs/yargs-parser/issues/131)) ([dc788da](https://github.com/yargs/yargs-parser/commit/dc788da))
+* make requiresArg work in conjunction with arrays ([#136](https://github.com/yargs/yargs-parser/issues/136)) ([77ae1d4](https://github.com/yargs/yargs-parser/commit/77ae1d4))
+
+
+### Chores
+
+* update dependencies ([6dc42a1](https://github.com/yargs/yargs-parser/commit/6dc42a1))
+
+
+### Features
+
+* also add camelCase array options ([#125](https://github.com/yargs/yargs-parser/issues/125)) ([08c0117](https://github.com/yargs/yargs-parser/commit/08c0117))
+* array.type can now be provided, supporting coercion ([#132](https://github.com/yargs/yargs-parser/issues/132)) ([4b8cfce](https://github.com/yargs/yargs-parser/commit/4b8cfce))
+
+
+### BREAKING CHANGES
+
+* drops Node 4 support
+* the argv object is now populated differently (correctly) when hyphens and dot notation are used in conjunction.
+
+
+
+<a name="10.1.0"></a>
+# [10.1.0](https://github.com/yargs/yargs-parser/compare/v10.0.0...v10.1.0) (2018-06-29)
+
+
+### Features
+
+* add `set-placeholder-key` configuration ([#123](https://github.com/yargs/yargs-parser/issues/123)) ([19386ee](https://github.com/yargs/yargs-parser/commit/19386ee))
+
+
+
+<a name="10.0.0"></a>
+# [10.0.0](https://github.com/yargs/yargs-parser/compare/v9.0.2...v10.0.0) (2018-04-04)
+
+
+### Bug Fixes
+
+* do not set boolean flags if not defined in `argv` ([#119](https://github.com/yargs/yargs-parser/issues/119)) ([f6e6599](https://github.com/yargs/yargs-parser/commit/f6e6599))
+
+
+### BREAKING CHANGES
+
+* `boolean` flags defined without a `default` value will now behave like other option type and won't be set in the parsed results when the user doesn't set the corresponding CLI arg.
+
+Previous behavior:
+```js
+var parse = require('yargs-parser');
+
+parse('--flag', {boolean: ['flag']});
+// => { _: [], flag: true }
+
+parse('--no-flag', {boolean: ['flag']});
+// => { _: [], flag: false }
+
+parse('', {boolean: ['flag']});
+// => { _: [], flag: false }
+```
+
+New behavior:
+```js
+var parse = require('yargs-parser');
+
+parse('--flag', {boolean: ['flag']});
+// => { _: [], flag: true }
+
+parse('--no-flag', {boolean: ['flag']});
+// => { _: [], flag: false }
+
+parse('', {boolean: ['flag']});
+// => { _: [] } => flag not set similarly to other option type
+```
+
+
+
+<a name="9.0.2"></a>
+## [9.0.2](https://github.com/yargs/yargs-parser/compare/v9.0.1...v9.0.2) (2018-01-20)
+
+
+### Bug Fixes
+
+* nargs was still aggressively consuming too many arguments ([9b28aad](https://github.com/yargs/yargs-parser/commit/9b28aad))
+
+
+
+<a name="9.0.1"></a>
+## [9.0.1](https://github.com/yargs/yargs-parser/compare/v9.0.0...v9.0.1) (2018-01-20)
+
+
+### Bug Fixes
+
+* nargs was consuming too many arguments ([4fef206](https://github.com/yargs/yargs-parser/commit/4fef206))
+
+
+
+<a name="9.0.0"></a>
+# [9.0.0](https://github.com/yargs/yargs-parser/compare/v8.1.0...v9.0.0) (2018-01-20)
+
+
+### Features
+
+* narg arguments no longer consume flag arguments ([#114](https://github.com/yargs/yargs-parser/issues/114)) ([60bb9b3](https://github.com/yargs/yargs-parser/commit/60bb9b3))
+
+
+### BREAKING CHANGES
+
+* arguments of form --foo, -abc, will no longer be consumed by nargs
+
+
+
+<a name="8.1.0"></a>
+# [8.1.0](https://github.com/yargs/yargs-parser/compare/v8.0.0...v8.1.0) (2017-12-20)
+
+
+### Bug Fixes
+
+* allow null config values ([#108](https://github.com/yargs/yargs-parser/issues/108)) ([d8b14f9](https://github.com/yargs/yargs-parser/commit/d8b14f9))
+* ensure consistent parsing of dot-notation arguments ([#102](https://github.com/yargs/yargs-parser/issues/102)) ([c9bd79c](https://github.com/yargs/yargs-parser/commit/c9bd79c))
+* implement [@antoniom](https://github.com/antoniom)'s fix for camel-case expansion ([3087e1d](https://github.com/yargs/yargs-parser/commit/3087e1d))
+* only run coercion functions once, despite aliases. ([#76](https://github.com/yargs/yargs-parser/issues/76)) ([#103](https://github.com/yargs/yargs-parser/issues/103)) ([507aaef](https://github.com/yargs/yargs-parser/commit/507aaef))
+* scientific notation circumvented bounds check ([#110](https://github.com/yargs/yargs-parser/issues/110)) ([3571f57](https://github.com/yargs/yargs-parser/commit/3571f57))
+* tokenizer should ignore spaces at the beginning of the argString ([#106](https://github.com/yargs/yargs-parser/issues/106)) ([f34ead9](https://github.com/yargs/yargs-parser/commit/f34ead9))
+
+
+### Features
+
+* make combining arrays a configurable option ([#111](https://github.com/yargs/yargs-parser/issues/111)) ([c8bf536](https://github.com/yargs/yargs-parser/commit/c8bf536))
+* merge array from arguments with array from config ([#83](https://github.com/yargs/yargs-parser/issues/83)) ([806ddd6](https://github.com/yargs/yargs-parser/commit/806ddd6))
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/yargs/yargs-parser/compare/v7.0.0...v8.0.0) (2017-10-05)
+
+
+### Bug Fixes
+
+* Ignore multiple spaces between arguments. ([#100](https://github.com/yargs/yargs-parser/issues/100)) ([d137227](https://github.com/yargs/yargs-parser/commit/d137227))
+
+
+### Features
+
+* allow configuration of prefix for boolean negation ([#94](https://github.com/yargs/yargs-parser/issues/94)) ([00bde7d](https://github.com/yargs/yargs-parser/commit/00bde7d))
+* reworking how numbers are parsed ([#104](https://github.com/yargs/yargs-parser/issues/104)) ([fba00eb](https://github.com/yargs/yargs-parser/commit/fba00eb))
+
+
+### BREAKING CHANGES
+
+* strings that fail `Number.isSafeInteger()` are no longer coerced into numbers. 
+
+
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/yargs/yargs-parser/compare/v6.0.1...v7.0.0) (2017-05-02)
+
+
+### Chores
+
+* revert populate-- logic ([#91](https://github.com/yargs/yargs-parser/issues/91)) ([6003e6d](https://github.com/yargs/yargs-parser/commit/6003e6d))
+
+
+### BREAKING CHANGES
+
+* populate-- now defaults to false.
+
+
+
+<a name="6.0.1"></a>
+## [6.0.1](https://github.com/yargs/yargs-parser/compare/v6.0.0...v6.0.1) (2017-05-01)
+
+
+### Bug Fixes
+
+* default '--' to undefined when not provided; this is closer to the array API ([#90](https://github.com/yargs/yargs-parser/issues/90)) ([4e739cc](https://github.com/yargs/yargs-parser/commit/4e739cc))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v6.0.0) (2017-05-01)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+* parsing hints should apply for dot notation keys ([#86](https://github.com/yargs/yargs-parser/issues/86)) ([3e47d62](https://github.com/yargs/yargs-parser/commit/3e47d62))
+
+
+### Chores
+
+* upgrade to newest version of camelcase ([#87](https://github.com/yargs/yargs-parser/issues/87)) ([f1903aa](https://github.com/yargs/yargs-parser/commit/f1903aa))
+
+
+### Features
+
+* add -- option which allows arguments after the -- flag to be returned separated from positional arguments ([#84](https://github.com/yargs/yargs-parser/issues/84)) ([2572ca8](https://github.com/yargs/yargs-parser/commit/2572ca8))
+* when parsing stops, we now populate "--" by default ([#88](https://github.com/yargs/yargs-parser/issues/88)) ([cd666db](https://github.com/yargs/yargs-parser/commit/cd666db))
+
+
+### BREAKING CHANGES
+
+* rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
+* camelcase now requires Node 4+.
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+
+
+### BREAKING CHANGES
+
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="4.2.1"></a>
+## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
+
+
+### Bug Fixes
+
+* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0))
+
+
+
+<a name="4.2.0"></a>
+# [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01)
+
+
+### Bug Fixes
+
+* inner objects in configs had their keys appended to top-level key when dot-notation was disabled ([#72](https://github.com/yargs/yargs-parser/issues/72)) ([0b1b5f9](https://github.com/yargs/yargs-parser/commit/0b1b5f9))
+
+
+### Features
+
+* allow multiple arrays to be provided, rather than always combining ([#71](https://github.com/yargs/yargs-parser/issues/71)) ([0f0fb2d](https://github.com/yargs/yargs-parser/commit/0f0fb2d))
+
+
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/yargs/yargs-parser/compare/v4.0.2...v4.1.0) (2016-11-07)
+
+
+### Features
+
+* apply coercions to default options ([#65](https://github.com/yargs/yargs-parser/issues/65)) ([c79052b](https://github.com/yargs/yargs-parser/commit/c79052b))
+* handle dot notation boolean options ([#63](https://github.com/yargs/yargs-parser/issues/63)) ([02c3545](https://github.com/yargs/yargs-parser/commit/02c3545))
+
+
+
+<a name="4.0.2"></a>
+## [4.0.2](https://github.com/yargs/yargs-parser/compare/v4.0.1...v4.0.2) (2016-09-30)
+
+
+### Bug Fixes
+
+* whoops, let's make the assign not change the Object key order ([29d069a](https://github.com/yargs/yargs-parser/commit/29d069a))
+
+
+
+<a name="4.0.1"></a>
+## [4.0.1](https://github.com/yargs/yargs-parser/compare/v4.0.0...v4.0.1) (2016-09-30)
+
+
+### Bug Fixes
+
+* lodash.assign was deprecated ([#59](https://github.com/yargs/yargs-parser/issues/59)) ([5e7eb11](https://github.com/yargs/yargs-parser/commit/5e7eb11))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/yargs-parser/compare/v3.2.0...v4.0.0) (2016-09-26)
+
+
+### Bug Fixes
+
+* coerce should be applied to the final objects and arrays created ([#57](https://github.com/yargs/yargs-parser/issues/57)) ([4ca69da](https://github.com/yargs/yargs-parser/commit/4ca69da))
+
+
+### BREAKING CHANGES
+
+* coerce is no longer applied to individual arguments in an implicit array.
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/yargs/yargs-parser/compare/v3.1.0...v3.2.0) (2016-08-13)
+
+
+### Features
+
+* coerce full array instead of each element ([#51](https://github.com/yargs/yargs-parser/issues/51)) ([cc4dc56](https://github.com/yargs/yargs-parser/commit/cc4dc56))
+
+
+
+<a name="3.1.0"></a>
+# [3.1.0](https://github.com/yargs/yargs-parser/compare/v3.0.0...v3.1.0) (2016-08-09)
+
+
+### Bug Fixes
+
+* address pkgConf parsing bug outlined in [#37](https://github.com/yargs/yargs-parser/issues/37) ([#45](https://github.com/yargs/yargs-parser/issues/45)) ([be76ee6](https://github.com/yargs/yargs-parser/commit/be76ee6))
+* better parsing of negative values ([#44](https://github.com/yargs/yargs-parser/issues/44)) ([2e43692](https://github.com/yargs/yargs-parser/commit/2e43692))
+* check aliases when guessing defaults for arguments fixes [#41](https://github.com/yargs/yargs-parser/issues/41) ([#43](https://github.com/yargs/yargs-parser/issues/43)) ([f3e4616](https://github.com/yargs/yargs-parser/commit/f3e4616))
+
+
+### Features
+
+* added coerce option, for providing specialized argument parsing ([#42](https://github.com/yargs/yargs-parser/issues/42)) ([7b49cd2](https://github.com/yargs/yargs-parser/commit/7b49cd2))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/yargs/yargs-parser/compare/v2.4.1...v3.0.0) (2016-08-07)
+
+
+### Bug Fixes
+
+* parsing issue with numeric character in group of options ([#19](https://github.com/yargs/yargs-parser/issues/19)) ([f743236](https://github.com/yargs/yargs-parser/commit/f743236))
+* upgraded lodash.assign ([5d7fdf4](https://github.com/yargs/yargs-parser/commit/5d7fdf4))
+
+### BREAKING CHANGES
+
+* subtle change to how values are parsed in a group of single-character arguments.
+* _first released in 3.1.0, better handling of negative values should be considered a breaking change._
+
+
+
+<a name="2.4.1"></a>
+## [2.4.1](https://github.com/yargs/yargs-parser/compare/v2.4.0...v2.4.1) (2016-07-16)
+
+
+### Bug Fixes
+
+* **count:** do not increment a default value ([#39](https://github.com/yargs/yargs-parser/issues/39)) ([b04a189](https://github.com/yargs/yargs-parser/commit/b04a189))
+
+
+
+<a name="2.4.0"></a>
+# [2.4.0](https://github.com/yargs/yargs-parser/compare/v2.3.0...v2.4.0) (2016-04-11)
+
+
+### Features
+
+* **environment:** Support nested options in environment variables ([#26](https://github.com/yargs/yargs-parser/issues/26)) thanks [@elas7](https://github.com/elas7) \o/ ([020778b](https://github.com/yargs/yargs-parser/commit/020778b))
+
+
+
+<a name="2.3.0"></a>
+# [2.3.0](https://github.com/yargs/yargs-parser/compare/v2.2.0...v2.3.0) (2016-04-09)
+
+
+### Bug Fixes
+
+* **boolean:** fix for boolean options with non boolean defaults (#20) ([2dbe86b](https://github.com/yargs/yargs-parser/commit/2dbe86b)), closes [(#20](https://github.com/(/issues/20)
+* **package:** remove tests from tarball ([0353c0d](https://github.com/yargs/yargs-parser/commit/0353c0d))
+* **parsing:** handle calling short option with an empty string as the next value. ([a867165](https://github.com/yargs/yargs-parser/commit/a867165))
+* boolean flag when next value contains the strings 'true' or 'false'. ([69941a6](https://github.com/yargs/yargs-parser/commit/69941a6))
+* update dependencies; add standard-version bin for next release (#24) ([822d9d5](https://github.com/yargs/yargs-parser/commit/822d9d5))
+
+### Features
+
+* **configuration:** Allow to pass configuration objects to yargs-parser ([0780900](https://github.com/yargs/yargs-parser/commit/0780900))
+* **normalize:** allow normalize to work with arrays ([e0eaa1a](https://github.com/yargs/yargs-parser/commit/e0eaa1a))
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/LICENSE.txt b/node_modules/jest-circus/node_modules/yargs-parser/LICENSE.txt
new file mode 100644
index 0000000..836440b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/LICENSE.txt
@@ -0,0 +1,14 @@
+Copyright (c) 2016, Contributors
+
+Permission to use, copy, modify, and/or distribute this software
+for any purpose with or without fee is hereby granted, provided
+that the above copyright notice and this permission notice
+appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
+LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/README.md b/node_modules/jest-circus/node_modules/yargs-parser/README.md
new file mode 100644
index 0000000..bae61c2
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/README.md
@@ -0,0 +1,449 @@
+# yargs-parser
+
+[![Build Status](https://travis-ci.org/yargs/yargs-parser.svg)](https://travis-ci.org/yargs/yargs-parser)
+[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
+
+
+The mighty option parser used by [yargs](https://github.com/yargs/yargs).
+
+visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.
+
+<img width="250" src="https://raw.githubusercontent.com/yargs/yargs-parser/master/yargs-logo.png">
+
+## Example
+
+```sh
+npm i yargs-parser --save
+```
+
+```js
+var argv = require('yargs-parser')(process.argv.slice(2))
+console.log(argv)
+```
+
+```sh
+node example.js --foo=33 --bar hello
+{ _: [], foo: 33, bar: 'hello' }
+```
+
+_or parse a string!_
+
+```js
+var argv = require('yargs-parser')('--foo=99 --bar=33')
+console.log(argv)
+```
+
+```sh
+{ _: [], foo: 99, bar: 33 }
+```
+
+Convert an array of mixed types before passing to `yargs-parser`:
+
+```js
+var parse = require('yargs-parser')
+parse(['-f', 11, '--zoom', 55].join(' '))   // <-- array to string
+parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings
+```
+
+## API
+
+### require('yargs-parser')(args, opts={})
+
+Parses command line arguments returning a simple mapping of keys and values.
+
+**expects:**
+
+* `args`: a string or array of strings representing the options to parse.
+* `opts`: provide a set of hints indicating how `args` should be parsed:
+  * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`.
+  * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.<br>
+    Indicate that keys should be parsed as an array and coerced to booleans / numbers:<br>
+    `{array: [{ key: 'foo', boolean: true }, {key: 'bar', number: true}]}`.
+  * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`.
+  * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided
+    (or throws an error). For arrays the function is called only once for the entire array:<br>
+    `{coerce: {foo: function (arg) {return modifiedArg}}}`.
+  * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).
+  * `opts.configObjects`: configuration objects to parse, their properties will be set as arguments:<br>
+    `{configObjects: [{'x': 5, 'y': 33}, {'z': 44}]}`.
+  * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)).
+  * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`.
+  * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`.
+  * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed.
+  * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`.
+  * `opts.normalize`: `path.normalize()` will be applied to values set to this key.
+  * `opts.number`: keys should be treated as numbers.
+  * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`).
+
+**returns:**
+
+* `obj`: an object representing the parsed value of `args`
+  * `key/value`: key value pairs for each argument and their aliases.
+  * `_`: an array representing the positional arguments.
+  * [optional] `--`:  an array with arguments after the end-of-options flag `--`.
+
+### require('yargs-parser').detailed(args, opts={})
+
+Parses a command line string, returning detailed information required by the
+yargs engine.
+
+**expects:**
+
+* `args`: a string or array of strings representing options to parse.
+* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`.
+
+**returns:**
+
+* `argv`: an object representing the parsed value of `args`
+  * `key/value`: key value pairs for each argument and their aliases.
+  * `_`: an array representing the positional arguments.
+  * [optional] `--`:  an array with arguments after the end-of-options flag `--`.
+* `error`: populated with an error object if an exception occurred during parsing.
+* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`.
+* `newAliases`: any new aliases added via camel-case expansion:
+  * `boolean`: `{ fooBar: true }`
+* `defaulted`: any new argument created by `opts.default`, no aliases included.
+  * `boolean`: `{ foo: true }`
+* `configuration`: given by default settings and `opts.configuration`.
+
+<a name="configuration"></a>
+
+### Configuration
+
+The yargs-parser applies several automated transformations on the keys provided
+in `args`. These features can be turned on and off using the `configuration` field
+of `opts`.
+
+```js
+var parsed = parser(['--no-dice'], {
+  configuration: {
+    'boolean-negation': false
+  }
+})
+```
+
+### short option groups
+
+* default: `true`.
+* key: `short-option-groups`.
+
+Should a group of short-options be treated as boolean flags?
+
+```sh
+node example.js -abc
+{ _: [], a: true, b: true, c: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js -abc
+{ _: [], abc: true }
+```
+
+### camel-case expansion
+
+* default: `true`.
+* key: `camel-case-expansion`.
+
+Should hyphenated arguments be expanded into camel-case aliases?
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true, fooBar: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true }
+```
+
+### dot-notation
+
+* default: `true`
+* key: `dot-notation`
+
+Should keys that contain `.` be treated as objects?
+
+```sh
+node example.js --foo.bar
+{ _: [], foo: { bar: true } }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo.bar
+{ _: [], "foo.bar": true }
+```
+
+### parse numbers
+
+* default: `true`
+* key: `parse-numbers`
+
+Should keys that look like numbers be treated as such?
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: 99.3 }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: "99.3" }
+```
+
+### boolean negation
+
+* default: `true`
+* key: `boolean-negation`
+
+Should variables prefixed with `--no` be treated as negations?
+
+```sh
+node example.js --no-foo
+{ _: [], foo: false }
+```
+
+_if disabled:_
+
+```sh
+node example.js --no-foo
+{ _: [], "no-foo": true }
+```
+
+### combine arrays
+
+* default: `false`
+* key: `combine-arrays`
+
+Should arrays be combined when provided by both command line arguments and
+a configuration file.
+
+### duplicate arguments array
+
+* default: `true`
+* key: `duplicate-arguments-array`
+
+Should arguments be coerced into an array when duplicated:
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: [1, 2] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: 2 }
+```
+
+### flatten duplicate arrays
+
+* default: `true`
+* key: `flatten-duplicate-arrays`
+
+Should array arguments be coerced into a single array when duplicated:
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [1, 2, 3, 4] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [[1, 2], [3, 4]] }
+```
+
+### greedy arrays
+
+* default: `true`
+* key: `greedy-arrays`
+
+Should arrays consume more than one positional argument following their flag.
+
+```sh
+node example --arr 1 2
+{ _[], arr: [1, 2] }
+```
+
+_if disabled:_
+
+```sh
+node example --arr 1 2
+{ _[2], arr: [1] }
+```
+
+**Note: in `v18.0.0` we are considering defaulting greedy arrays to `false`.**
+
+### nargs eats options
+
+* default: `false`
+* key: `nargs-eats-options`
+
+Should nargs consume dash options as well as positional arguments.
+
+### negation prefix
+
+* default: `no-`
+* key: `negation-prefix`
+
+The prefix to use for negated boolean variables.
+
+```sh
+node example.js --no-foo
+{ _: [], foo: false }
+```
+
+_if set to `quux`:_
+
+```sh
+node example.js --quuxfoo
+{ _: [], foo: false }
+```
+
+### populate --
+
+* default: `false`.
+* key: `populate--`
+
+Should unparsed flags be stored in `--` or `_`.
+
+_If disabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a', 'x', 'y' ], b: true }
+```
+
+_If enabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true }
+```
+
+### set placeholder key
+
+* default: `false`.
+* key: `set-placeholder-key`.
+
+Should a placeholder be added for keys not set via the corresponding CLI argument?
+
+_If disabled:_
+
+```sh
+node example.js -a 1 -c 2
+{ _: [], a: 1, c: 2 }
+```
+
+_If enabled:_
+
+```sh
+node example.js -a 1 -c 2
+{ _: [], a: 1, b: undefined, c: 2 }
+```
+
+### halt at non-option
+
+* default: `false`.
+* key: `halt-at-non-option`.
+
+Should parsing stop at the first positional argument? This is similar to how e.g. `ssh` parses its command line.
+
+_If disabled:_
+
+```sh
+node example.js -a run b -x y
+{ _: [ 'b' ], a: 'run', x: 'y' }
+```
+
+_If enabled:_
+
+```sh
+node example.js -a run b -x y
+{ _: [ 'b', '-x', 'y' ], a: 'run' }
+```
+
+### strip aliased
+
+* default: `false`
+* key: `strip-aliased`
+
+Should aliases be removed before returning results?
+
+_If disabled:_
+
+```sh
+node example.js --test-field 1
+{ _: [], 'test-field': 1, testField: 1, 'test-alias': 1, testAlias: 1 }
+```
+
+_If enabled:_
+
+```sh
+node example.js --test-field 1
+{ _: [], 'test-field': 1, testField: 1 }
+```
+
+### strip dashed
+
+* default: `false`
+* key: `strip-dashed`
+
+Should dashed keys be removed before returning results?  This option has no effect if
+`camel-case-expansion` is disabled.
+
+_If disabled:_
+
+```sh
+node example.js --test-field 1
+{ _: [], 'test-field': 1, testField: 1 }
+```
+
+_If enabled:_
+
+```sh
+node example.js --test-field 1
+{ _: [], testField: 1 }
+```
+
+### unknown options as args
+
+* default: `false`
+* key: `unknown-options-as-args`
+
+Should unknown options be treated like regular arguments?  An unknown option is one that is not
+configured in `opts`.
+
+_If disabled_
+
+```sh
+node example.js --unknown-option --known-option 2 --string-option --unknown-option2
+{ _: [], unknownOption: true, knownOption: 2, stringOption: '', unknownOption2: true }
+```
+
+_If enabled_
+
+```sh
+node example.js --unknown-option --known-option 2 --string-option --unknown-option2
+{ _: ['--unknown-option'], knownOption: 2, stringOption: '--unknown-option2' }
+```
+
+## Special Thanks
+
+The yargs project evolves from optimist and minimist. It owes its
+existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/
+
+## License
+
+ISC
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/index.js b/node_modules/jest-circus/node_modules/yargs-parser/index.js
new file mode 100644
index 0000000..c14c1fc
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/index.js
@@ -0,0 +1,1032 @@
+const camelCase = require('camelcase')
+const decamelize = require('decamelize')
+const path = require('path')
+const tokenizeArgString = require('./lib/tokenize-arg-string')
+const util = require('util')
+
+function parse (args, opts) {
+  opts = Object.assign(Object.create(null), opts)
+  // allow a string argument to be passed in rather
+  // than an argv array.
+  args = tokenizeArgString(args)
+
+  // aliases might have transitive relationships, normalize this.
+  const aliases = combineAliases(Object.assign(Object.create(null), opts.alias))
+  const configuration = Object.assign({
+    'boolean-negation': true,
+    'camel-case-expansion': true,
+    'combine-arrays': false,
+    'dot-notation': true,
+    'duplicate-arguments-array': true,
+    'flatten-duplicate-arrays': true,
+    'greedy-arrays': true,
+    'halt-at-non-option': false,
+    'nargs-eats-options': false,
+    'negation-prefix': 'no-',
+    'parse-numbers': true,
+    'populate--': false,
+    'set-placeholder-key': false,
+    'short-option-groups': true,
+    'strip-aliased': false,
+    'strip-dashed': false,
+    'unknown-options-as-args': false
+  }, opts.configuration)
+  const defaults = Object.assign(Object.create(null), opts.default)
+  const configObjects = opts.configObjects || []
+  const envPrefix = opts.envPrefix
+  const notFlagsOption = configuration['populate--']
+  const notFlagsArgv = notFlagsOption ? '--' : '_'
+  const newAliases = Object.create(null)
+  const defaulted = Object.create(null)
+  // allow a i18n handler to be passed in, default to a fake one (util.format).
+  const __ = opts.__ || util.format
+  const flags = {
+    aliases: Object.create(null),
+    arrays: Object.create(null),
+    bools: Object.create(null),
+    strings: Object.create(null),
+    numbers: Object.create(null),
+    counts: Object.create(null),
+    normalize: Object.create(null),
+    configs: Object.create(null),
+    nargs: Object.create(null),
+    coercions: Object.create(null),
+    keys: []
+  }
+  const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/
+  const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)')
+
+  ;[].concat(opts.array).filter(Boolean).forEach(function (opt) {
+    const key = opt.key || opt
+
+    // assign to flags[bools|strings|numbers]
+    const assignment = Object.keys(opt).map(function (key) {
+      return ({
+        boolean: 'bools',
+        string: 'strings',
+        number: 'numbers'
+      })[key]
+    }).filter(Boolean).pop()
+
+    // assign key to be coerced
+    if (assignment) {
+      flags[assignment][key] = true
+    }
+
+    flags.arrays[key] = true
+    flags.keys.push(key)
+  })
+
+  ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
+    flags.bools[key] = true
+    flags.keys.push(key)
+  })
+
+  ;[].concat(opts.string).filter(Boolean).forEach(function (key) {
+    flags.strings[key] = true
+    flags.keys.push(key)
+  })
+
+  ;[].concat(opts.number).filter(Boolean).forEach(function (key) {
+    flags.numbers[key] = true
+    flags.keys.push(key)
+  })
+
+  ;[].concat(opts.count).filter(Boolean).forEach(function (key) {
+    flags.counts[key] = true
+    flags.keys.push(key)
+  })
+
+  ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) {
+    flags.normalize[key] = true
+    flags.keys.push(key)
+  })
+
+  Object.keys(opts.narg || {}).forEach(function (k) {
+    flags.nargs[k] = opts.narg[k]
+    flags.keys.push(k)
+  })
+
+  Object.keys(opts.coerce || {}).forEach(function (k) {
+    flags.coercions[k] = opts.coerce[k]
+    flags.keys.push(k)
+  })
+
+  if (Array.isArray(opts.config) || typeof opts.config === 'string') {
+    ;[].concat(opts.config).filter(Boolean).forEach(function (key) {
+      flags.configs[key] = true
+    })
+  } else {
+    Object.keys(opts.config || {}).forEach(function (k) {
+      flags.configs[k] = opts.config[k]
+    })
+  }
+
+  // create a lookup table that takes into account all
+  // combinations of aliases: {f: ['foo'], foo: ['f']}
+  extendAliases(opts.key, aliases, opts.default, flags.arrays)
+
+  // apply default values to all aliases.
+  Object.keys(defaults).forEach(function (key) {
+    (flags.aliases[key] || []).forEach(function (alias) {
+      defaults[alias] = defaults[key]
+    })
+  })
+
+  let error = null
+  checkConfiguration()
+
+  let notFlags = []
+
+  const argv = Object.assign(Object.create(null), { _: [] })
+  // TODO(bcoe): for the first pass at removing object prototype  we didn't
+  // remove all prototypes from objects returned by this API, we might want
+  // to gradually move towards doing so.
+  const argvReturn = {}
+
+  for (let i = 0; i < args.length; i++) {
+    const arg = args[i]
+    let broken
+    let key
+    let letters
+    let m
+    let next
+    let value
+
+    // any unknown option (except for end-of-options, "--")
+    if (arg !== '--' && isUnknownOptionAsArg(arg)) {
+      argv._.push(arg)
+    // -- separated by =
+    } else if (arg.match(/^--.+=/) || (
+      !configuration['short-option-groups'] && arg.match(/^-.+=/)
+    )) {
+      // Using [\s\S] instead of . because js doesn't support the
+      // 'dotall' regex modifier. See:
+      // http://stackoverflow.com/a/1068308/13216
+      m = arg.match(/^--?([^=]+)=([\s\S]*)$/)
+
+      // arrays format = '--f=a b c'
+      if (checkAllAliases(m[1], flags.arrays)) {
+        i = eatArray(i, m[1], args, m[2])
+      } else if (checkAllAliases(m[1], flags.nargs) !== false) {
+        // nargs format = '--f=monkey washing cat'
+        i = eatNargs(i, m[1], args, m[2])
+      } else {
+        setArg(m[1], m[2])
+      }
+    } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {
+      key = arg.match(negatedBoolean)[1]
+      setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false)
+
+    // -- separated by space.
+    } else if (arg.match(/^--.+/) || (
+      !configuration['short-option-groups'] && arg.match(/^-[^-]+/)
+    )) {
+      key = arg.match(/^--?(.+)/)[1]
+
+      if (checkAllAliases(key, flags.arrays)) {
+        // array format = '--foo a b c'
+        i = eatArray(i, key, args)
+      } else if (checkAllAliases(key, flags.nargs) !== false) {
+        // nargs format = '--foo a b c'
+        // should be truthy even if: flags.nargs[key] === 0
+        i = eatNargs(i, key, args)
+      } else {
+        next = args[i + 1]
+
+        if (next !== undefined && (!next.match(/^-/) ||
+          next.match(negative)) &&
+          !checkAllAliases(key, flags.bools) &&
+          !checkAllAliases(key, flags.counts)) {
+          setArg(key, next)
+          i++
+        } else if (/^(true|false)$/.test(next)) {
+          setArg(key, next)
+          i++
+        } else {
+          setArg(key, defaultValue(key))
+        }
+      }
+
+    // dot-notation flag separated by '='.
+    } else if (arg.match(/^-.\..+=/)) {
+      m = arg.match(/^-([^=]+)=([\s\S]*)$/)
+      setArg(m[1], m[2])
+
+    // dot-notation flag separated by space.
+    } else if (arg.match(/^-.\..+/) && !arg.match(negative)) {
+      next = args[i + 1]
+      key = arg.match(/^-(.\..+)/)[1]
+
+      if (next !== undefined && !next.match(/^-/) &&
+        !checkAllAliases(key, flags.bools) &&
+        !checkAllAliases(key, flags.counts)) {
+        setArg(key, next)
+        i++
+      } else {
+        setArg(key, defaultValue(key))
+      }
+    } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
+      letters = arg.slice(1, -1).split('')
+      broken = false
+
+      for (let j = 0; j < letters.length; j++) {
+        next = arg.slice(j + 2)
+
+        if (letters[j + 1] && letters[j + 1] === '=') {
+          value = arg.slice(j + 3)
+          key = letters[j]
+
+          if (checkAllAliases(key, flags.arrays)) {
+            // array format = '-f=a b c'
+            i = eatArray(i, key, args, value)
+          } else if (checkAllAliases(key, flags.nargs) !== false) {
+            // nargs format = '-f=monkey washing cat'
+            i = eatNargs(i, key, args, value)
+          } else {
+            setArg(key, value)
+          }
+
+          broken = true
+          break
+        }
+
+        if (next === '-') {
+          setArg(letters[j], next)
+          continue
+        }
+
+        // current letter is an alphabetic character and next value is a number
+        if (/[A-Za-z]/.test(letters[j]) &&
+          /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
+          setArg(letters[j], next)
+          broken = true
+          break
+        }
+
+        if (letters[j + 1] && letters[j + 1].match(/\W/)) {
+          setArg(letters[j], next)
+          broken = true
+          break
+        } else {
+          setArg(letters[j], defaultValue(letters[j]))
+        }
+      }
+
+      key = arg.slice(-1)[0]
+
+      if (!broken && key !== '-') {
+        if (checkAllAliases(key, flags.arrays)) {
+          // array format = '-f a b c'
+          i = eatArray(i, key, args)
+        } else if (checkAllAliases(key, flags.nargs) !== false) {
+          // nargs format = '-f a b c'
+          // should be truthy even if: flags.nargs[key] === 0
+          i = eatNargs(i, key, args)
+        } else {
+          next = args[i + 1]
+
+          if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
+            next.match(negative)) &&
+            !checkAllAliases(key, flags.bools) &&
+            !checkAllAliases(key, flags.counts)) {
+            setArg(key, next)
+            i++
+          } else if (/^(true|false)$/.test(next)) {
+            setArg(key, next)
+            i++
+          } else {
+            setArg(key, defaultValue(key))
+          }
+        }
+      }
+    } else if (arg.match(/^-[0-9]$/) &&
+      arg.match(negative) &&
+      checkAllAliases(arg.slice(1), flags.bools)) {
+      // single-digit boolean alias, e.g: xargs -0
+      key = arg.slice(1)
+      setArg(key, defaultValue(key))
+    } else if (arg === '--') {
+      notFlags = args.slice(i + 1)
+      break
+    } else if (configuration['halt-at-non-option']) {
+      notFlags = args.slice(i)
+      break
+    } else {
+      argv._.push(maybeCoerceNumber('_', arg))
+    }
+  }
+
+  // order of precedence:
+  // 1. command line arg
+  // 2. value from env var
+  // 3. value from config file
+  // 4. value from config objects
+  // 5. configured default value
+  applyEnvVars(argv, true) // special case: check env vars that point to config file
+  applyEnvVars(argv, false)
+  setConfig(argv)
+  setConfigObjects()
+  applyDefaultsAndAliases(argv, flags.aliases, defaults, true)
+  applyCoercions(argv)
+  if (configuration['set-placeholder-key']) setPlaceholderKeys(argv)
+
+  // for any counts either not in args or without an explicit default, set to 0
+  Object.keys(flags.counts).forEach(function (key) {
+    if (!hasKey(argv, key.split('.'))) setArg(key, 0)
+  })
+
+  // '--' defaults to undefined.
+  if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []
+  notFlags.forEach(function (key) {
+    argv[notFlagsArgv].push(key)
+  })
+
+  if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {
+    Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {
+      delete argv[key]
+    })
+  }
+
+  if (configuration['strip-aliased']) {
+    ;[].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {
+      if (configuration['camel-case-expansion']) {
+        delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]
+      }
+
+      delete argv[alias]
+    })
+  }
+
+  // how many arguments should we consume, based
+  // on the nargs option?
+  function eatNargs (i, key, args, argAfterEqualSign) {
+    let ii
+    let toEat = checkAllAliases(key, flags.nargs)
+    // NaN has a special meaning for the array type, indicating that one or
+    // more values are expected.
+    toEat = isNaN(toEat) ? 1 : toEat
+
+    if (toEat === 0) {
+      if (!isUndefined(argAfterEqualSign)) {
+        error = Error(__('Argument unexpected for: %s', key))
+      }
+      setArg(key, defaultValue(key))
+      return i
+    }
+
+    let available = isUndefined(argAfterEqualSign) ? 0 : 1
+    if (configuration['nargs-eats-options']) {
+      // classic behavior, yargs eats positional and dash arguments.
+      if (args.length - (i + 1) + available < toEat) {
+        error = Error(__('Not enough arguments following: %s', key))
+      }
+      available = toEat
+    } else {
+      // nargs will not consume flag arguments, e.g., -abc, --foo,
+      // and terminates when one is observed.
+      for (ii = i + 1; ii < args.length; ii++) {
+        if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) available++
+        else break
+      }
+      if (available < toEat) error = Error(__('Not enough arguments following: %s', key))
+    }
+
+    let consumed = Math.min(available, toEat)
+    if (!isUndefined(argAfterEqualSign) && consumed > 0) {
+      setArg(key, argAfterEqualSign)
+      consumed--
+    }
+    for (ii = i + 1; ii < (consumed + i + 1); ii++) {
+      setArg(key, args[ii])
+    }
+
+    return (i + consumed)
+  }
+
+  // if an option is an array, eat all non-hyphenated arguments
+  // following it... YUM!
+  // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"]
+  function eatArray (i, key, args, argAfterEqualSign) {
+    let argsToSet = []
+    let next = argAfterEqualSign || args[i + 1]
+    // If both array and nargs are configured, enforce the nargs count:
+    const nargsCount = checkAllAliases(key, flags.nargs)
+
+    if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {
+      argsToSet.push(true)
+    } else if (isUndefined(next) ||
+        (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {
+      // for keys without value ==> argsToSet remains an empty []
+      // set user default value, if available
+      if (defaults[key] !== undefined) {
+        const defVal = defaults[key]
+        argsToSet = Array.isArray(defVal) ? defVal : [defVal]
+      }
+    } else {
+      // value in --option=value is eaten as is
+      if (!isUndefined(argAfterEqualSign)) {
+        argsToSet.push(processValue(key, argAfterEqualSign))
+      }
+      for (let ii = i + 1; ii < args.length; ii++) {
+        if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||
+          (nargsCount && argsToSet.length >= nargsCount)) break
+        next = args[ii]
+        if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) break
+        i = ii
+        argsToSet.push(processValue(key, next))
+      }
+    }
+
+    // If both array and nargs are configured, create an error if less than
+    // nargs positionals were found. NaN has special meaning, indicating
+    // that at least one value is required (more are okay).
+    if ((nargsCount && argsToSet.length < nargsCount) ||
+        (isNaN(nargsCount) && argsToSet.length === 0)) {
+      error = Error(__('Not enough arguments following: %s', key))
+    }
+
+    setArg(key, argsToSet)
+    return i
+  }
+
+  function setArg (key, val) {
+    if (/-/.test(key) && configuration['camel-case-expansion']) {
+      const alias = key.split('.').map(function (prop) {
+        return camelCase(prop)
+      }).join('.')
+      addNewAlias(key, alias)
+    }
+
+    const value = processValue(key, val)
+    const splitKey = key.split('.')
+    setKey(argv, splitKey, value)
+
+    // handle populating aliases of the full key
+    if (flags.aliases[key]) {
+      flags.aliases[key].forEach(function (x) {
+        x = x.split('.')
+        setKey(argv, x, value)
+      })
+    }
+
+    // handle populating aliases of the first element of the dot-notation key
+    if (splitKey.length > 1 && configuration['dot-notation']) {
+      ;(flags.aliases[splitKey[0]] || []).forEach(function (x) {
+        x = x.split('.')
+
+        // expand alias with nested objects in key
+        const a = [].concat(splitKey)
+        a.shift() // nuke the old key.
+        x = x.concat(a)
+
+        // populate alias only if is not already an alias of the full key
+        // (already populated above)
+        if (!(flags.aliases[key] || []).includes(x.join('.'))) {
+          setKey(argv, x, value)
+        }
+      })
+    }
+
+    // Set normalize getter and setter when key is in 'normalize' but isn't an array
+    if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
+      const keys = [key].concat(flags.aliases[key] || [])
+      keys.forEach(function (key) {
+        Object.defineProperty(argvReturn, key, {
+          enumerable: true,
+          get () {
+            return val
+          },
+          set (value) {
+            val = typeof value === 'string' ? path.normalize(value) : value
+          }
+        })
+      })
+    }
+  }
+
+  function addNewAlias (key, alias) {
+    if (!(flags.aliases[key] && flags.aliases[key].length)) {
+      flags.aliases[key] = [alias]
+      newAliases[alias] = true
+    }
+    if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
+      addNewAlias(alias, key)
+    }
+  }
+
+  function processValue (key, val) {
+    // strings may be quoted, clean this up as we assign values.
+    if (typeof val === 'string' &&
+      (val[0] === "'" || val[0] === '"') &&
+      val[val.length - 1] === val[0]
+    ) {
+      val = val.substring(1, val.length - 1)
+    }
+
+    // handle parsing boolean arguments --foo=true --bar false.
+    if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
+      if (typeof val === 'string') val = val === 'true'
+    }
+
+    let value = Array.isArray(val)
+      ? val.map(function (v) { return maybeCoerceNumber(key, v) })
+      : maybeCoerceNumber(key, val)
+
+    // increment a count given as arg (either no value or value parsed as boolean)
+    if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
+      value = increment
+    }
+
+    // Set normalized value when key is in 'normalize' and in 'arrays'
+    if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
+      if (Array.isArray(val)) value = val.map(path.normalize)
+      else value = path.normalize(val)
+    }
+    return value
+  }
+
+  function maybeCoerceNumber (key, value) {
+    if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {
+      const shouldCoerceNumber = isNumber(value) && configuration['parse-numbers'] && (
+        Number.isSafeInteger(Math.floor(value))
+      )
+      if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) value = Number(value)
+    }
+    return value
+  }
+
+  // set args from config.json file, this should be
+  // applied last so that defaults can be applied.
+  function setConfig (argv) {
+    const configLookup = Object.create(null)
+
+    // expand defaults/aliases, in-case any happen to reference
+    // the config.json file.
+    applyDefaultsAndAliases(configLookup, flags.aliases, defaults)
+
+    Object.keys(flags.configs).forEach(function (configKey) {
+      const configPath = argv[configKey] || configLookup[configKey]
+      if (configPath) {
+        try {
+          let config = null
+          const resolvedConfigPath = path.resolve(process.cwd(), configPath)
+
+          if (typeof flags.configs[configKey] === 'function') {
+            try {
+              config = flags.configs[configKey](resolvedConfigPath)
+            } catch (e) {
+              config = e
+            }
+            if (config instanceof Error) {
+              error = config
+              return
+            }
+          } else {
+            config = require(resolvedConfigPath)
+          }
+
+          setConfigObject(config)
+        } catch (ex) {
+          if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath))
+        }
+      }
+    })
+  }
+
+  // set args from config object.
+  // it recursively checks nested objects.
+  function setConfigObject (config, prev) {
+    Object.keys(config).forEach(function (key) {
+      const value = config[key]
+      const fullKey = prev ? prev + '.' + key : key
+
+      // if the value is an inner object and we have dot-notation
+      // enabled, treat inner objects in config the same as
+      // heavily nested dot notations (foo.bar.apple).
+      if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {
+        // if the value is an object but not an array, check nested object
+        setConfigObject(value, fullKey)
+      } else {
+        // setting arguments via CLI takes precedence over
+        // values within the config file.
+        if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {
+          setArg(fullKey, value)
+        }
+      }
+    })
+  }
+
+  // set all config objects passed in opts
+  function setConfigObjects () {
+    if (typeof configObjects === 'undefined') return
+    configObjects.forEach(function (configObject) {
+      setConfigObject(configObject)
+    })
+  }
+
+  function applyEnvVars (argv, configOnly) {
+    if (typeof envPrefix === 'undefined') return
+
+    const prefix = typeof envPrefix === 'string' ? envPrefix : ''
+    Object.keys(process.env).forEach(function (envVar) {
+      if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
+        // get array of nested keys and convert them to camel case
+        const keys = envVar.split('__').map(function (key, i) {
+          if (i === 0) {
+            key = key.substring(prefix.length)
+          }
+          return camelCase(key)
+        })
+
+        if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {
+          setArg(keys.join('.'), process.env[envVar])
+        }
+      }
+    })
+  }
+
+  function applyCoercions (argv) {
+    let coerce
+    const applied = new Set()
+    Object.keys(argv).forEach(function (key) {
+      if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases
+        coerce = checkAllAliases(key, flags.coercions)
+        if (typeof coerce === 'function') {
+          try {
+            const value = maybeCoerceNumber(key, coerce(argv[key]))
+            ;([].concat(flags.aliases[key] || [], key)).forEach(ali => {
+              applied.add(ali)
+              argv[ali] = value
+            })
+          } catch (err) {
+            error = err
+          }
+        }
+      }
+    })
+  }
+
+  function setPlaceholderKeys (argv) {
+    flags.keys.forEach((key) => {
+      // don't set placeholder keys for dot notation options 'foo.bar'.
+      if (~key.indexOf('.')) return
+      if (typeof argv[key] === 'undefined') argv[key] = undefined
+    })
+    return argv
+  }
+
+  function applyDefaultsAndAliases (obj, aliases, defaults, canLog = false) {
+    Object.keys(defaults).forEach(function (key) {
+      if (!hasKey(obj, key.split('.'))) {
+        setKey(obj, key.split('.'), defaults[key])
+        if (canLog) defaulted[key] = true
+
+        ;(aliases[key] || []).forEach(function (x) {
+          if (hasKey(obj, x.split('.'))) return
+          setKey(obj, x.split('.'), defaults[key])
+        })
+      }
+    })
+  }
+
+  function hasKey (obj, keys) {
+    let o = obj
+
+    if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+    keys.slice(0, -1).forEach(function (key) {
+      o = (o[key] || {})
+    })
+
+    const key = keys[keys.length - 1]
+
+    if (typeof o !== 'object') return false
+    else return key in o
+  }
+
+  function setKey (obj, keys, value) {
+    let o = obj
+
+    if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+    keys.slice(0, -1).forEach(function (key, index) {
+      // TODO(bcoe): in the next major version of yargs, switch to
+      // Object.create(null) for dot notation:
+      key = sanitizeKey(key)
+
+      if (typeof o === 'object' && o[key] === undefined) {
+        o[key] = {}
+      }
+
+      if (typeof o[key] !== 'object' || Array.isArray(o[key])) {
+        // ensure that o[key] is an array, and that the last item is an empty object.
+        if (Array.isArray(o[key])) {
+          o[key].push({})
+        } else {
+          o[key] = [o[key], {}]
+        }
+
+        // we want to update the empty object at the end of the o[key] array, so set o to that object
+        o = o[key][o[key].length - 1]
+      } else {
+        o = o[key]
+      }
+    })
+
+    // TODO(bcoe): in the next major version of yargs, switch to
+    // Object.create(null) for dot notation:
+    const key = sanitizeKey(keys[keys.length - 1])
+
+    const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays)
+    const isValueArray = Array.isArray(value)
+    let duplicate = configuration['duplicate-arguments-array']
+
+    // nargs has higher priority than duplicate
+    if (!duplicate && checkAllAliases(key, flags.nargs)) {
+      duplicate = true
+      if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {
+        o[key] = undefined
+      }
+    }
+
+    if (value === increment) {
+      o[key] = increment(o[key])
+    } else if (Array.isArray(o[key])) {
+      if (duplicate && isTypeArray && isValueArray) {
+        o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value])
+      } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
+        o[key] = value
+      } else {
+        o[key] = o[key].concat([value])
+      }
+    } else if (o[key] === undefined && isTypeArray) {
+      o[key] = isValueArray ? value : [value]
+    } else if (duplicate && !(
+      o[key] === undefined ||
+        checkAllAliases(key, flags.counts) ||
+        checkAllAliases(key, flags.bools)
+    )) {
+      o[key] = [o[key], value]
+    } else {
+      o[key] = value
+    }
+  }
+
+  // extend the aliases list with inferred aliases.
+  function extendAliases (...args) {
+    args.forEach(function (obj) {
+      Object.keys(obj || {}).forEach(function (key) {
+        // short-circuit if we've already added a key
+        // to the aliases array, for example it might
+        // exist in both 'opts.default' and 'opts.key'.
+        if (flags.aliases[key]) return
+
+        flags.aliases[key] = [].concat(aliases[key] || [])
+        // For "--option-name", also set argv.optionName
+        flags.aliases[key].concat(key).forEach(function (x) {
+          if (/-/.test(x) && configuration['camel-case-expansion']) {
+            const c = camelCase(x)
+            if (c !== key && flags.aliases[key].indexOf(c) === -1) {
+              flags.aliases[key].push(c)
+              newAliases[c] = true
+            }
+          }
+        })
+        // For "--optionName", also set argv['option-name']
+        flags.aliases[key].concat(key).forEach(function (x) {
+          if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {
+            const c = decamelize(x, '-')
+            if (c !== key && flags.aliases[key].indexOf(c) === -1) {
+              flags.aliases[key].push(c)
+              newAliases[c] = true
+            }
+          }
+        })
+        flags.aliases[key].forEach(function (x) {
+          flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
+            return x !== y
+          }))
+        })
+      })
+    })
+  }
+
+  // return the 1st set flag for any of a key's aliases (or false if no flag set)
+  function checkAllAliases (key, flag) {
+    const toCheck = [].concat(flags.aliases[key] || [], key)
+    const keys = Object.keys(flag)
+    const setAlias = toCheck.find(key => keys.includes(key))
+    return setAlias ? flag[setAlias] : false
+  }
+
+  function hasAnyFlag (key) {
+    const toCheck = [].concat(Object.keys(flags).map(k => flags[k]))
+    return toCheck.some(function (flag) {
+      return Array.isArray(flag) ? flag.includes(key) : flag[key]
+    })
+  }
+
+  function hasFlagsMatching (arg, ...patterns) {
+    const toCheck = [].concat(...patterns)
+    return toCheck.some(function (pattern) {
+      const match = arg.match(pattern)
+      return match && hasAnyFlag(match[1])
+    })
+  }
+
+  // based on a simplified version of the short flag group parsing logic
+  function hasAllShortFlags (arg) {
+    // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group
+    if (arg.match(negative) || !arg.match(/^-[^-]+/)) { return false }
+    let hasAllFlags = true
+    let next
+    const letters = arg.slice(1).split('')
+    for (let j = 0; j < letters.length; j++) {
+      next = arg.slice(j + 2)
+
+      if (!hasAnyFlag(letters[j])) {
+        hasAllFlags = false
+        break
+      }
+
+      if ((letters[j + 1] && letters[j + 1] === '=') ||
+        next === '-' ||
+        (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) ||
+        (letters[j + 1] && letters[j + 1].match(/\W/))) {
+        break
+      }
+    }
+    return hasAllFlags
+  }
+
+  function isUnknownOptionAsArg (arg) {
+    return configuration['unknown-options-as-args'] && isUnknownOption(arg)
+  }
+
+  function isUnknownOption (arg) {
+    // ignore negative numbers
+    if (arg.match(negative)) { return false }
+    // if this is a short option group and all of them are configured, it isn't unknown
+    if (hasAllShortFlags(arg)) { return false }
+    // e.g. '--count=2'
+    const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/
+    // e.g. '-a' or '--arg'
+    const normalFlag = /^-+([^=]+?)$/
+    // e.g. '-a-'
+    const flagEndingInHyphen = /^-+([^=]+?)-$/
+    // e.g. '-abc123'
+    const flagEndingInDigits = /^-+([^=]+?\d+)$/
+    // e.g. '-a/usr/local'
+    const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/
+    // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method
+    return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters)
+  }
+
+  // make a best effor to pick a default value
+  // for an option based on name and type.
+  function defaultValue (key) {
+    if (!checkAllAliases(key, flags.bools) &&
+        !checkAllAliases(key, flags.counts) &&
+        `${key}` in defaults) {
+      return defaults[key]
+    } else {
+      return defaultForType(guessType(key))
+    }
+  }
+
+  // return a default value, given the type of a flag.,
+  // e.g., key of type 'string' will default to '', rather than 'true'.
+  function defaultForType (type) {
+    const def = {
+      boolean: true,
+      string: '',
+      number: undefined,
+      array: []
+    }
+
+    return def[type]
+  }
+
+  // given a flag, enforce a default type.
+  function guessType (key) {
+    let type = 'boolean'
+    if (checkAllAliases(key, flags.strings)) type = 'string'
+    else if (checkAllAliases(key, flags.numbers)) type = 'number'
+    else if (checkAllAliases(key, flags.bools)) type = 'boolean'
+    else if (checkAllAliases(key, flags.arrays)) type = 'array'
+    return type
+  }
+
+  function isNumber (x) {
+    if (x === null || x === undefined) return false
+    // if loaded from config, may already be a number.
+    if (typeof x === 'number') return true
+    // hexadecimal.
+    if (/^0x[0-9a-f]+$/i.test(x)) return true
+    // don't treat 0123 as a number; as it drops the leading '0'.
+    if (x.length > 1 && x[0] === '0') return false
+    return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x)
+  }
+
+  function isUndefined (num) {
+    return num === undefined
+  }
+
+  // check user configuration settings for inconsistencies
+  function checkConfiguration () {
+    // count keys should not be set as array/narg
+    Object.keys(flags.counts).find(key => {
+      if (checkAllAliases(key, flags.arrays)) {
+        error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key))
+        return true
+      } else if (checkAllAliases(key, flags.nargs)) {
+        error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key))
+        return true
+      }
+    })
+  }
+
+  return {
+    argv: Object.assign(argvReturn, argv),
+    error: error,
+    aliases: Object.assign({}, flags.aliases),
+    newAliases: Object.assign({}, newAliases),
+    defaulted: Object.assign({}, defaulted),
+    configuration: configuration
+  }
+}
+
+// if any aliases reference each other, we should
+// merge them together.
+function combineAliases (aliases) {
+  const aliasArrays = []
+  const combined = Object.create(null)
+  let change = true
+
+  // turn alias lookup hash {key: ['alias1', 'alias2']} into
+  // a simple array ['key', 'alias1', 'alias2']
+  Object.keys(aliases).forEach(function (key) {
+    aliasArrays.push(
+      [].concat(aliases[key], key)
+    )
+  })
+
+  // combine arrays until zero changes are
+  // made in an iteration.
+  while (change) {
+    change = false
+    for (let i = 0; i < aliasArrays.length; i++) {
+      for (let ii = i + 1; ii < aliasArrays.length; ii++) {
+        const intersect = aliasArrays[i].filter(function (v) {
+          return aliasArrays[ii].indexOf(v) !== -1
+        })
+
+        if (intersect.length) {
+          aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii])
+          aliasArrays.splice(ii, 1)
+          change = true
+          break
+        }
+      }
+    }
+  }
+
+  // map arrays back to the hash-lookup (de-dupe while
+  // we're at it).
+  aliasArrays.forEach(function (aliasArray) {
+    aliasArray = aliasArray.filter(function (v, i, self) {
+      return self.indexOf(v) === i
+    })
+    combined[aliasArray.pop()] = aliasArray
+  })
+
+  return combined
+}
+
+// this function should only be called when a count is given as an arg
+// it is NOT called to set a default value
+// thus we can start the count at 1 instead of 0
+function increment (orig) {
+  return orig !== undefined ? orig + 1 : 1
+}
+
+function Parser (args, opts) {
+  const result = parse(args.slice(), opts)
+  return result.argv
+}
+
+// parse arguments and return detailed
+// meta information, aliases, etc.
+Parser.detailed = function (args, opts) {
+  return parse(args.slice(), opts)
+}
+
+// TODO(bcoe): in the next major version of yargs, switch to
+// Object.create(null) for dot notation:
+function sanitizeKey (key) {
+  if (key === '__proto__') return '___proto___'
+  return key
+}
+
+module.exports = Parser
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/lib/tokenize-arg-string.js b/node_modules/jest-circus/node_modules/yargs-parser/lib/tokenize-arg-string.js
new file mode 100644
index 0000000..260c67c
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/lib/tokenize-arg-string.js
@@ -0,0 +1,40 @@
+// take an un-split argv string and tokenize it.
+module.exports = function (argString) {
+  if (Array.isArray(argString)) {
+    return argString.map(e => typeof e !== 'string' ? e + '' : e)
+  }
+
+  argString = argString.trim()
+
+  let i = 0
+  let prevC = null
+  let c = null
+  let opening = null
+  const args = []
+
+  for (let ii = 0; ii < argString.length; ii++) {
+    prevC = c
+    c = argString.charAt(ii)
+
+    // split on spaces unless we're in quotes.
+    if (c === ' ' && !opening) {
+      if (!(prevC === ' ')) {
+        i++
+      }
+      continue
+    }
+
+    // don't split the string if we're in matching
+    // opening or closing single and double quotes.
+    if (c === opening) {
+      opening = null
+    } else if ((c === "'" || c === '"') && !opening) {
+      opening = c
+    }
+
+    if (!args[i]) args[i] = ''
+    args[i] += c
+  }
+
+  return args
+}
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.d.ts b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.d.ts
new file mode 100644
index 0000000..58f2069
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.d.ts
@@ -0,0 +1,63 @@
+declare namespace camelcase {
+	interface Options {
+		/**
+		Uppercase the first character: `foo-bar` → `FooBar`.
+
+		@default false
+		*/
+		readonly pascalCase?: boolean;
+	}
+}
+
+declare const camelcase: {
+	/**
+	Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`.
+
+	@param input - String to convert to camel case.
+
+	@example
+	```
+	import camelCase = require('camelcase');
+
+	camelCase('foo-bar');
+	//=> 'fooBar'
+
+	camelCase('foo_bar');
+	//=> 'fooBar'
+
+	camelCase('Foo-Bar');
+	//=> 'fooBar'
+
+	camelCase('Foo-Bar', {pascalCase: true});
+	//=> 'FooBar'
+
+	camelCase('--foo.bar', {pascalCase: false});
+	//=> 'fooBar'
+
+	camelCase('foo bar');
+	//=> 'fooBar'
+
+	console.log(process.argv[3]);
+	//=> '--foo-bar'
+	camelCase(process.argv[3]);
+	//=> 'fooBar'
+
+	camelCase(['foo', 'bar']);
+	//=> 'fooBar'
+
+	camelCase(['__foo__', '--bar'], {pascalCase: true});
+	//=> 'FooBar'
+	```
+	*/
+	(input: string | ReadonlyArray<string>, options?: camelcase.Options): string;
+
+	// TODO: Remove this for the next major release, refactor the whole definition to:
+	// declare function camelcase(
+	// 	input: string | ReadonlyArray<string>,
+	// 	options?: camelcase.Options
+	// ): string;
+	// export = camelcase;
+	default: typeof camelcase;
+};
+
+export = camelcase;
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.js b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.js
new file mode 100644
index 0000000..579f99b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/index.js
@@ -0,0 +1,76 @@
+'use strict';
+
+const preserveCamelCase = string => {
+	let isLastCharLower = false;
+	let isLastCharUpper = false;
+	let isLastLastCharUpper = false;
+
+	for (let i = 0; i < string.length; i++) {
+		const character = string[i];
+
+		if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {
+			string = string.slice(0, i) + '-' + string.slice(i);
+			isLastCharLower = false;
+			isLastLastCharUpper = isLastCharUpper;
+			isLastCharUpper = true;
+			i++;
+		} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {
+			string = string.slice(0, i - 1) + '-' + string.slice(i - 1);
+			isLastLastCharUpper = isLastCharUpper;
+			isLastCharUpper = false;
+			isLastCharLower = true;
+		} else {
+			isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;
+			isLastLastCharUpper = isLastCharUpper;
+			isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;
+		}
+	}
+
+	return string;
+};
+
+const camelCase = (input, options) => {
+	if (!(typeof input === 'string' || Array.isArray(input))) {
+		throw new TypeError('Expected the input to be `string | string[]`');
+	}
+
+	options = Object.assign({
+		pascalCase: false
+	}, options);
+
+	const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;
+
+	if (Array.isArray(input)) {
+		input = input.map(x => x.trim())
+			.filter(x => x.length)
+			.join('-');
+	} else {
+		input = input.trim();
+	}
+
+	if (input.length === 0) {
+		return '';
+	}
+
+	if (input.length === 1) {
+		return options.pascalCase ? input.toUpperCase() : input.toLowerCase();
+	}
+
+	const hasUpperCase = input !== input.toLowerCase();
+
+	if (hasUpperCase) {
+		input = preserveCamelCase(input);
+	}
+
+	input = input
+		.replace(/^[_.\- ]+/, '')
+		.toLowerCase()
+		.replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase())
+		.replace(/\d+(\w|$)/g, m => m.toUpperCase());
+
+	return postProcess(input);
+};
+
+module.exports = camelCase;
+// TODO: Remove this for the next major release
+module.exports.default = camelCase;
diff --git a/node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/license b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/license
similarity index 100%
rename from node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from/license
rename to node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/license
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/package.json b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/package.json
new file mode 100644
index 0000000..fbdbaaa
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/package.json
@@ -0,0 +1,43 @@
+{
+	"name": "camelcase",
+	"version": "5.3.1",
+	"description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`",
+	"license": "MIT",
+	"repository": "sindresorhus/camelcase",
+	"author": {
+		"name": "Sindre Sorhus",
+		"email": "sindresorhus@gmail.com",
+		"url": "sindresorhus.com"
+	},
+	"engines": {
+		"node": ">=6"
+	},
+	"scripts": {
+		"test": "xo && ava && tsd"
+	},
+	"files": [
+		"index.js",
+		"index.d.ts"
+	],
+	"keywords": [
+		"camelcase",
+		"camel-case",
+		"camel",
+		"case",
+		"dash",
+		"hyphen",
+		"dot",
+		"underscore",
+		"separator",
+		"string",
+		"text",
+		"convert",
+		"pascalcase",
+		"pascal-case"
+	],
+	"devDependencies": {
+		"ava": "^1.4.1",
+		"tsd": "^0.7.1",
+		"xo": "^0.24.0"
+	}
+}
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/readme.md b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/readme.md
new file mode 100644
index 0000000..fde2726
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/node_modules/camelcase/readme.md
@@ -0,0 +1,99 @@
+# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)
+
+> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`
+
+---
+
+<div align="center">
+	<b>
+		<a href="https://tidelift.com/subscription/pkg/npm-camelcase?utm_source=npm-camelcase&utm_medium=referral&utm_campaign=readme">Get professional support for 'camelcase' with a Tidelift subscription</a>
+	</b>
+	<br>
+	<sub>
+		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
+	</sub>
+</div>
+
+---
+
+## Install
+
+```
+$ npm install camelcase
+```
+
+
+## Usage
+
+```js
+const camelCase = require('camelcase');
+
+camelCase('foo-bar');
+//=> 'fooBar'
+
+camelCase('foo_bar');
+//=> 'fooBar'
+
+camelCase('Foo-Bar');
+//=> 'fooBar'
+
+camelCase('Foo-Bar', {pascalCase: true});
+//=> 'FooBar'
+
+camelCase('--foo.bar', {pascalCase: false});
+//=> 'fooBar'
+
+camelCase('foo bar');
+//=> 'fooBar'
+
+console.log(process.argv[3]);
+//=> '--foo-bar'
+camelCase(process.argv[3]);
+//=> 'fooBar'
+
+camelCase(['foo', 'bar']);
+//=> 'fooBar'
+
+camelCase(['__foo__', '--bar'], {pascalCase: true});
+//=> 'FooBar'
+```
+
+
+## API
+
+### camelCase(input, [options])
+
+#### input
+
+Type: `string` `string[]`
+
+String to convert to camel case.
+
+#### options
+
+Type: `Object`
+
+##### pascalCase
+
+Type: `boolean`<br>
+Default: `false`
+
+Uppercase the first character: `foo-bar` → `FooBar`
+
+
+## Security
+
+To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
+
+
+## Related
+
+- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module
+- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase
+- [titleize](https://github.com/sindresorhus/titleize) - Capitalize every word in string
+- [humanize-string](https://github.com/sindresorhus/humanize-string) - Convert a camelized/dasherized/underscored string into a humanized one
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/jest-circus/node_modules/yargs-parser/package.json b/node_modules/jest-circus/node_modules/yargs-parser/package.json
new file mode 100644
index 0000000..636ff17
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs-parser/package.json
@@ -0,0 +1,46 @@
+{
+  "name": "yargs-parser",
+  "version": "18.1.3",
+  "description": "the mighty option parser used by yargs",
+  "main": "index.js",
+  "scripts": {
+    "fix": "standard --fix",
+    "test": "c8 --reporter=text --reporter=html  mocha test/*.js",
+    "posttest": "standard",
+    "coverage": "c8 report --check-coverage check-coverage --lines=100 --branches=97 --statements=100"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/yargs/yargs-parser.git"
+  },
+  "keywords": [
+    "argument",
+    "parser",
+    "yargs",
+    "command",
+    "cli",
+    "parsing",
+    "option",
+    "args",
+    "argument"
+  ],
+  "author": "Ben Coe <ben@npmjs.com>",
+  "license": "ISC",
+  "devDependencies": {
+    "c8": "^7.0.1",
+    "chai": "^4.2.0",
+    "mocha": "^7.0.0",
+    "standard": "^14.3.1"
+  },
+  "dependencies": {
+    "camelcase": "^5.0.0",
+    "decamelize": "^1.2.0"
+  },
+  "files": [
+    "lib",
+    "index.js"
+  ],
+  "engines": {
+    "node": ">=6"
+  }
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/CHANGELOG.md b/node_modules/jest-circus/node_modules/yargs/CHANGELOG.md
new file mode 100644
index 0000000..a010cf3
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/CHANGELOG.md
@@ -0,0 +1,420 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+## [15.4.0](https://www.github.com/yargs/yargs/compare/v15.3.1...v15.4.0) (2020-06-30)
+
+
+### Features
+
+* adds deprecation option for commands ([027a636](https://www.github.com/yargs/yargs/commit/027a6365b737e13116811a8ef43670196e1fa00a))
+* support array of examples ([#1682](https://www.github.com/yargs/yargs/issues/1682)) ([225ab82](https://www.github.com/yargs/yargs/commit/225ab8271938bed3a48d23175f3d580ce8cd1306))
+
+
+### Bug Fixes
+
+* **docs:** describe usage of `.check()` in more detail ([932cd11](https://www.github.com/yargs/yargs/commit/932cd1177e93f5cc99edfe57a4028e30717bf8fb))
+* **i18n:** Japanese translation phrasing ([#1619](https://www.github.com/yargs/yargs/issues/1619)) ([0894175](https://www.github.com/yargs/yargs/commit/089417550ef5a5b8ce3578dd2a989191300b64cd))
+* **strict mode:** report default command unknown arguments ([#1626](https://www.github.com/yargs/yargs/issues/1626)) ([69f29a9](https://www.github.com/yargs/yargs/commit/69f29a9cd429d4bb99481238305390107ac75b02))
+* **usage:** translate 'options' group only when displaying help ([#1600](https://www.github.com/yargs/yargs/issues/1600)) ([e60b39b](https://www.github.com/yargs/yargs/commit/e60b39b9d3a912c06db43f87c86ba894142b6c1c))
+
+
+### Reverts
+
+* Revert "chore(deps): update dependency eslint to v7 (#1656)" (#1673) ([34949f8](https://www.github.com/yargs/yargs/commit/34949f89ee7cdf88f7b315659df4b5f62f714842)), closes [#1656](https://www.github.com/yargs/yargs/issues/1656) [#1673](https://www.github.com/yargs/yargs/issues/1673)
+
+### [15.3.1](https://www.github.com/yargs/yargs/compare/v15.3.0...v15.3.1) (2020-03-16)
+
+
+### Bug Fixes
+
+* \_\_proto\_\_ will now be replaced with \_\_\_proto\_\_\_ in parse ([#258](https://www.github.com/yargs/yargs-parser/issues/258)), patching a potential 
+prototype pollution vulnerability. This was reported by the Snyk Security Research Team. ([63810ca](https://www.github.com/yargs/yargs-parser/commit/63810ca1ae1a24b08293a4d971e70e058c7a41e2))
+
+## [15.3.0](https://www.github.com/yargs/yargs/compare/v15.2.0...v15.3.0) (2020-03-08)
+
+
+### Features
+
+* **yargs-parser:** introduce single-digit boolean aliases ([#1576](https://www.github.com/yargs/yargs/issues/1576)) ([3af7f04](https://www.github.com/yargs/yargs/commit/3af7f04cdbfcbd4b3f432aca5144d43f21958c39))
+* add usage for single-digit boolean aliases ([#1580](https://www.github.com/yargs/yargs/issues/1580)) ([6014e39](https://www.github.com/yargs/yargs/commit/6014e39bca3a1e8445aa0fb2a435f6181e344c45))
+
+
+### Bug Fixes
+
+* address ambiguity between nargs of 1 and requiresArg ([#1572](https://www.github.com/yargs/yargs/issues/1572)) ([a5edc32](https://www.github.com/yargs/yargs/commit/a5edc328ecb3f90d1ba09cfe70a0040f68adf50a))
+
+## [15.2.0](https://www.github.com/yargs/yargs/compare/v15.1.0...v15.2.0) (2020-03-01)
+
+
+### ⚠ BREAKING CHANGES
+
+* **deps:** yargs-parser@17.0.0 no longer implicitly creates arrays out of boolean
+arguments when duplicates are provided
+
+### Features
+
+* **completion:** takes negated flags into account when boolean-negation is set ([#1509](https://www.github.com/yargs/yargs/issues/1509)) ([7293ad5](https://www.github.com/yargs/yargs/commit/7293ad50d20ea0fb7dd1ac9b925e90e1bd95dea8))
+* **deps:** pull in yargs-parser@17.0.0 ([#1553](https://www.github.com/yargs/yargs/issues/1553)) ([b9409da](https://www.github.com/yargs/yargs/commit/b9409da199ebca515a848489c206b807fab2e65d))
+* deprecateOption ([#1559](https://www.github.com/yargs/yargs/issues/1559)) ([8aae333](https://www.github.com/yargs/yargs/commit/8aae3332251d09fa136db17ef4a40d83fa052bc4))
+* display appropriate $0 for electron apps ([#1536](https://www.github.com/yargs/yargs/issues/1536)) ([d0e4379](https://www.github.com/yargs/yargs/commit/d0e437912917d6a66bb5128992fa2f566a5f830b))
+* introduces strictCommands() subset of strict mode ([#1540](https://www.github.com/yargs/yargs/issues/1540)) ([1d4cca3](https://www.github.com/yargs/yargs/commit/1d4cca395a98b395e6318f0505fc73bef8b01350))
+* **deps:** yargs-parser with 'greedy-array' configuration ([#1569](https://www.github.com/yargs/yargs/issues/1569)) ([a03a320](https://www.github.com/yargs/yargs/commit/a03a320dbf5c0ce33d829a857fc04a651c0bb53e))
+
+
+### Bug Fixes
+
+* help always displayed for the first command parsed having an async handler ([#1535](https://www.github.com/yargs/yargs/issues/1535)) ([d585b30](https://www.github.com/yargs/yargs/commit/d585b303a43746201b05c9c9fda94a444634df33))
+* **deps:** fix enumeration for normalized path arguments ([#1567](https://www.github.com/yargs/yargs/issues/1567)) ([0b5b1b0](https://www.github.com/yargs/yargs/commit/0b5b1b0e5f4f9baf393c48e9cc2bc85c1b67a47a))
+* **locales:** only translate default option group name ([acc16de](https://www.github.com/yargs/yargs/commit/acc16de6b846ea7332db753646a9cec76b589162))
+* **locales:** remove extra space in French for 'default' ([#1564](https://www.github.com/yargs/yargs/issues/1564)) ([ecfc2c4](https://www.github.com/yargs/yargs/commit/ecfc2c474575c6cdbc6d273c94c13181bd1dbaa6))
+* **translations:** add French translation for unknown command ([#1563](https://www.github.com/yargs/yargs/issues/1563)) ([18b0b75](https://www.github.com/yargs/yargs/commit/18b0b752424bf560271e670ff95a0f90c8386787))
+* **translations:** fix pluralization in error messages. ([#1557](https://www.github.com/yargs/yargs/issues/1557)) ([94fa38c](https://www.github.com/yargs/yargs/commit/94fa38cbab8d86943e87bf41d368ed56dffa6835))
+* **yargs:** correct support of bundled electron apps ([#1554](https://www.github.com/yargs/yargs/issues/1554)) ([a0b61ac](https://www.github.com/yargs/yargs/commit/a0b61ac21e2b554aa73dbf1a66d4a7af94047c2f))
+
+## [15.1.0](https://www.github.com/yargs/yargs/compare/v15.0.2...v15.1.0) (2020-01-02)
+
+
+### Features
+
+* **lang:** add Finnish localization (language code fi) ([222c8fe](https://www.github.com/yargs/yargs/commit/222c8fef2e2ad46e314c337dec96940f896bec35))
+* complete short options with a single dash ([#1507](https://www.github.com/yargs/yargs/issues/1507)) ([99011ab](https://www.github.com/yargs/yargs/commit/99011ab5ba90232506ece0a17e59e2001a1ab562))
+* onFinishCommand handler ([#1473](https://www.github.com/yargs/yargs/issues/1473)) ([fe380cd](https://www.github.com/yargs/yargs/commit/fe380cd356aa33aef0449facd59c22cab8930ac9))
+
+
+### Bug Fixes
+
+* getCompletion() was not working for options ([#1495](https://www.github.com/yargs/yargs/issues/1495)) ([463feb2](https://www.github.com/yargs/yargs/commit/463feb2870158eb9df670222b0f0a40a05cf18d0))
+* misspelling of package.json `engines` field ([0891d0e](https://www.github.com/yargs/yargs/commit/0891d0ed35b30c83a6d9e9f6a5c5f84d13c546a0))
+* populate positionals when unknown-options-as-args is set ([#1508](https://www.github.com/yargs/yargs/issues/1508)) ([bb0f2eb](https://www.github.com/yargs/yargs/commit/bb0f2eb996fa4e19d330b31a01c2036cafa99a7e)), closes [#1444](https://www.github.com/yargs/yargs/issues/1444)
+* show 2 dashes on help for single digit option key or alias ([#1493](https://www.github.com/yargs/yargs/issues/1493)) ([63b3dd3](https://www.github.com/yargs/yargs/commit/63b3dd31a455d428902220c1992ae930e18aff5c))
+* **docs:** use recommended cjs import syntax for ts examples ([#1513](https://www.github.com/yargs/yargs/issues/1513)) ([f9a18bf](https://www.github.com/yargs/yargs/commit/f9a18bfd624a5013108084f690cd8a1de794c430))
+
+### [15.0.2](https://www.github.com/yargs/yargs/compare/v15.0.1...v15.0.2) (2019-11-19)
+
+
+### Bug Fixes
+
+* temporary fix for libraries that call Object.freeze() ([#1483](https://www.github.com/yargs/yargs/issues/1483)) ([99c2dc8](https://www.github.com/yargs/yargs/commit/99c2dc850e67c606644f8b0c0bca1a59c87dcbcd))
+
+### [15.0.1](https://www.github.com/yargs/yargs/compare/v15.0.0...v15.0.1) (2019-11-16)
+
+
+### Bug Fixes
+
+* **deps:** cliui, find-up, and string-width, all drop Node 6 support ([#1479](https://www.github.com/yargs/yargs/issues/1479)) ([6a9ebe2](https://www.github.com/yargs/yargs/commit/6a9ebe2d955e3e979e76c07ffbb1c17fef64cb49))
+
+## [15.0.0](https://www.github.com/yargs/yargs/compare/v14.2.0...v15.0.0) (2019-11-10)
+
+
+### ⚠ BREAKING CHANGES
+
+* **deps:** yargs-parser now throws on invalid combinations of config (#1470)
+* yargs-parser@16.0.0 drops support for Node 6
+* drop Node 6 support (#1461)
+* remove package.json-based parserConfiguration (#1460)
+
+### Features
+
+* **deps:** yargs-parser now throws on invalid combinations of config ([#1470](https://www.github.com/yargs/yargs/issues/1470)) ([c10c38c](https://www.github.com/yargs/yargs/commit/c10c38cca04298f96b55a7e374a9a134abefffa7))
+* expose `Parser` from `require('yargs/yargs')` ([#1477](https://www.github.com/yargs/yargs/issues/1477)) ([1840ba2](https://www.github.com/yargs/yargs/commit/1840ba22f1a24c0ece8e32bbd31db4134a080aee))
+
+
+### Bug Fixes
+
+* **docs:** TypeScript import to prevent a future major release warning ([#1441](https://www.github.com/yargs/yargs/issues/1441)) ([b1b156a](https://www.github.com/yargs/yargs/commit/b1b156a3eb4ddd6803fbbd56c611a77919293000))
+* stop-parse was not being respected by commands ([#1459](https://www.github.com/yargs/yargs/issues/1459)) ([12c82e6](https://www.github.com/yargs/yargs/commit/12c82e62663e928148a7ee2f51629aa26a0f9bb2))
+* update to yargs-parser with fix for array default values ([#1463](https://www.github.com/yargs/yargs/issues/1463)) ([ebee59d](https://www.github.com/yargs/yargs/commit/ebee59d9022da538410e69a5c025019ed46d13d2))
+* **docs:** update boolean description and examples in docs ([#1474](https://www.github.com/yargs/yargs/issues/1474)) ([afd5b48](https://www.github.com/yargs/yargs/commit/afd5b4871bfeb90d58351ac56c5c44a83ef033e6))
+
+
+### Miscellaneous Chores
+
+* drop Node 6 support ([#1461](https://www.github.com/yargs/yargs/issues/1461)) ([2ba8ce0](https://www.github.com/yargs/yargs/commit/2ba8ce05e8fefbeffc6cb7488d9ebf6e86cceb1d))
+
+
+### Code Refactoring
+
+* remove package.json-based parserConfiguration ([#1460](https://www.github.com/yargs/yargs/issues/1460)) ([0d3642b](https://www.github.com/yargs/yargs/commit/0d3642b6f829b637938774c0c6ce5f6bfe1afa51))
+
+## [14.2.0](https://github.com/yargs/yargs/compare/v14.1.0...v14.2.0) (2019-10-07)
+
+
+### Bug Fixes
+
+* async middleware was called twice ([#1422](https://github.com/yargs/yargs/issues/1422)) ([9a42b63](https://github.com/yargs/yargs/commit/9a42b63))
+* fix promise check to accept any spec conform object ([#1424](https://github.com/yargs/yargs/issues/1424)) ([0be43d2](https://github.com/yargs/yargs/commit/0be43d2))
+* groups were not being maintained for nested commands ([#1430](https://github.com/yargs/yargs/issues/1430)) ([d38650e](https://github.com/yargs/yargs/commit/d38650e))
+* **docs:** broken markdown link ([#1426](https://github.com/yargs/yargs/issues/1426)) ([236e24e](https://github.com/yargs/yargs/commit/236e24e))
+* support merging deeply nested configuration ([#1423](https://github.com/yargs/yargs/issues/1423)) ([bae66fe](https://github.com/yargs/yargs/commit/bae66fe))
+
+
+### Features
+
+* **deps:** introduce yargs-parser with support for unknown-options-as-args ([#1440](https://github.com/yargs/yargs/issues/1440)) ([4d21520](https://github.com/yargs/yargs/commit/4d21520))
+
+## [14.1.0](https://github.com/yargs/yargs/compare/v14.0.0...v14.1.0) (2019-09-06)
+
+
+### Bug Fixes
+
+* **docs:** fix incorrect parserConfiguration documentation ([2a99124](https://github.com/yargs/yargs/commit/2a99124))
+* detect zsh when zsh isnt run as a login prompt ([#1395](https://github.com/yargs/yargs/issues/1395)) ([8792d13](https://github.com/yargs/yargs/commit/8792d13))
+* populate correct value on yargs.parsed and stop warning on access ([#1412](https://github.com/yargs/yargs/issues/1412)) ([bb0eb52](https://github.com/yargs/yargs/commit/bb0eb52))
+* showCompletionScript was logging script twice ([#1388](https://github.com/yargs/yargs/issues/1388)) ([07c8537](https://github.com/yargs/yargs/commit/07c8537))
+* strict() should not ignore hyphenated arguments ([#1414](https://github.com/yargs/yargs/issues/1414)) ([b774b5e](https://github.com/yargs/yargs/commit/b774b5e))
+* **docs:** formalize existing callback argument to showHelp ([#1386](https://github.com/yargs/yargs/issues/1386)) ([d217764](https://github.com/yargs/yargs/commit/d217764))
+
+
+### Features
+
+* make it possible to merge configurations when extending other config. ([#1411](https://github.com/yargs/yargs/issues/1411)) ([5d7ad98](https://github.com/yargs/yargs/commit/5d7ad98))
+
+## [14.0.0](https://github.com/yargs/yargs/compare/v13.3.0...v14.0.0) (2019-07-30)
+
+
+### ⚠ BREAKING CHANGES
+
+* we now only officially support yargs.$0 parameter and discourage direct access to yargs.parsed
+* previously to this fix methods like `yargs.getOptions()` contained the state of the last command to execute.
+* do not allow additional positionals in strict mode
+
+### Bug Fixes
+
+* calling parse multiple times now appropriately maintains state ([#1137](https://github.com/yargs/yargs/issues/1137)) ([#1369](https://github.com/yargs/yargs/issues/1369)) ([026b151](https://github.com/yargs/yargs/commit/026b151))
+* prefer user supplied script name in usage ([#1383](https://github.com/yargs/yargs/issues/1383)) ([28c74b9](https://github.com/yargs/yargs/commit/28c74b9))
+* **deps:** use decamelize from npm instead of vendored copy ([#1377](https://github.com/yargs/yargs/issues/1377)) ([015eeb9](https://github.com/yargs/yargs/commit/015eeb9))
+* **examples:** fix usage-options.js to reflect current API ([#1375](https://github.com/yargs/yargs/issues/1375)) ([6e5b76b](https://github.com/yargs/yargs/commit/6e5b76b))
+* do not allow additional positionals in strict mode ([35d777c](https://github.com/yargs/yargs/commit/35d777c))
+* properties accessed on singleton now reflect current state of instance ([#1366](https://github.com/yargs/yargs/issues/1366)) ([409d35b](https://github.com/yargs/yargs/commit/409d35b))
+* tolerate null prototype for config objects with `extends` ([#1376](https://github.com/yargs/yargs/issues/1376)) ([3d26d11](https://github.com/yargs/yargs/commit/3d26d11)), closes [#1372](https://github.com/yargs/yargs/issues/1372)
+* yargs.parsed now populated before returning, when yargs.parse() called with no args (#1382) ([e3981fd](https://github.com/yargs/yargs/commit/e3981fd)), closes [#1382](https://github.com/yargs/yargs/issues/1382)
+
+### Features
+
+* adds support for multiple epilog messages ([#1384](https://github.com/yargs/yargs/issues/1384)) ([07a5554](https://github.com/yargs/yargs/commit/07a5554))
+* allow completionCommand to be set via showCompletionScript ([#1385](https://github.com/yargs/yargs/issues/1385)) ([5562853](https://github.com/yargs/yargs/commit/5562853))
+
+## [13.3.0](https://www.github.com/yargs/yargs/compare/v13.2.4...v13.3.0) (2019-06-10)
+
+
+### Bug Fixes
+
+* **deps:** yargs-parser update addressing several parsing bugs ([#1357](https://www.github.com/yargs/yargs/issues/1357)) ([e230d5b](https://www.github.com/yargs/yargs/commit/e230d5b))
+
+
+### Features
+
+* **i18n:** swap out os-locale dependency for simple inline implementation ([#1356](https://www.github.com/yargs/yargs/issues/1356)) ([4dfa19b](https://www.github.com/yargs/yargs/commit/4dfa19b))
+* support defaultDescription for positional arguments ([812048c](https://www.github.com/yargs/yargs/commit/812048c))
+
+### [13.2.4](https://github.com/yargs/yargs/compare/v13.2.3...v13.2.4) (2019-05-13)
+
+
+### Bug Fixes
+
+* **i18n:** rename unclear 'implication failed' to 'missing dependent arguments' ([#1317](https://github.com/yargs/yargs/issues/1317)) ([bf46813](https://github.com/yargs/yargs/commit/bf46813))
+
+
+
+### [13.2.3](https://github.com/yargs/yargs/compare/v13.2.2...v13.2.3) (2019-05-05)
+
+
+### Bug Fixes
+
+* **deps:** upgrade cliui for compatibility with latest chalk. ([#1330](https://github.com/yargs/yargs/issues/1330)) ([b20db65](https://github.com/yargs/yargs/commit/b20db65))
+* address issues with dutch translation ([#1316](https://github.com/yargs/yargs/issues/1316)) ([0295132](https://github.com/yargs/yargs/commit/0295132))
+
+
+### Tests
+
+* accept differently formatted output ([#1327](https://github.com/yargs/yargs/issues/1327)) ([c294d1b](https://github.com/yargs/yargs/commit/c294d1b))
+
+
+
+## [13.2.2](https://github.com/yargs/yargs/compare/v13.2.1...v13.2.2) (2019-03-06)
+
+
+
+## [13.2.1](https://github.com/yargs/yargs/compare/v13.2.0...v13.2.1) (2019-02-18)
+
+
+### Bug Fixes
+
+* add zsh script to files array ([3180224](https://github.com/yargs/yargs/commit/3180224))
+* support options/sub-commands in zsh completion ([0a96394](https://github.com/yargs/yargs/commit/0a96394))
+
+
+# [13.2.0](https://github.com/yargs/yargs/compare/v13.1.0...v13.2.0) (2019-02-15)
+
+
+### Features
+
+* zsh auto completion ([#1292](https://github.com/yargs/yargs/issues/1292)) ([16c5d25](https://github.com/yargs/yargs/commit/16c5d25)), closes [#1156](https://github.com/yargs/yargs/issues/1156)
+
+
+<a name="13.1.0"></a>
+# [13.1.0](https://github.com/yargs/yargs/compare/v13.0.0...v13.1.0) (2019-02-12)
+
+
+### Features
+
+* add applyBeforeValidation, for applying sync middleware before validation ([5be206a](https://github.com/yargs/yargs/commit/5be206a))
+
+
+
+<a name="13.0.0"></a>
+# [13.0.0](https://github.com/yargs/yargs/compare/v12.0.5...v13.0.0) (2019-02-02)
+
+
+### Bug Fixes
+
+* **deps:** Update os-locale to avoid security vulnerability ([#1270](https://github.com/yargs/yargs/issues/1270)) ([27bf739](https://github.com/yargs/yargs/commit/27bf739))
+* **validation:** Use the error as a message when none exists otherwise ([#1268](https://github.com/yargs/yargs/issues/1268)) ([0510fe6](https://github.com/yargs/yargs/commit/0510fe6))
+* better bash path completion ([#1272](https://github.com/yargs/yargs/issues/1272)) ([da75ea2](https://github.com/yargs/yargs/commit/da75ea2))
+* middleware added multiple times due to reference bug ([#1282](https://github.com/yargs/yargs/issues/1282)) ([64af518](https://github.com/yargs/yargs/commit/64af518))
+
+
+### Chores
+
+* ~drop Node 6 from testing matrix ([#1287](https://github.com/yargs/yargs/issues/1287)) ([ef16792](https://github.com/yargs/yargs/commit/ef16792))~
+  * _opting to not drop Node 6 support until April, [see](https://github.com/nodejs/Release)._
+* update dependencies ([#1284](https://github.com/yargs/yargs/issues/1284)) ([f25de4f](https://github.com/yargs/yargs/commit/f25de4f))
+
+
+### Features
+
+* Add `.parserConfiguration()` method, deprecating package.json config ([#1262](https://github.com/yargs/yargs/issues/1262)) ([3c6869a](https://github.com/yargs/yargs/commit/3c6869a))
+* adds config option for sorting command output ([#1256](https://github.com/yargs/yargs/issues/1256)) ([6916ce9](https://github.com/yargs/yargs/commit/6916ce9))
+* options/positionals with leading '+' and '0' no longer parse as numbers ([#1286](https://github.com/yargs/yargs/issues/1286)) ([e9dc3aa](https://github.com/yargs/yargs/commit/e9dc3aa))
+* support promises in middleware ([f3a4e4f](https://github.com/yargs/yargs/commit/f3a4e4f))
+
+
+### BREAKING CHANGES
+
+* options with leading '+' or '0' now parse as strings
+* dropping Node 6 which hits end of life in April 2019
+* see [yargs-parser@12.0.0 CHANGELOG](https://github.com/yargs/yargs-parser/blob/master/CHANGELOG.md#breaking-changes)
+* we now warn if the yargs stanza package.json is used.
+
+
+
+<a name="12.0.5"></a>
+## [12.0.5](https://github.com/yargs/yargs/compare/v12.0.4...v12.0.5) (2018-11-19)
+
+
+### Bug Fixes
+
+* allows camel-case, variadic arguments, and strict mode to be combined ([#1247](https://github.com/yargs/yargs/issues/1247)) ([eacc035](https://github.com/yargs/yargs/commit/eacc035))
+
+
+
+<a name="12.0.4"></a>
+## [12.0.4](https://github.com/yargs/yargs/compare/v12.0.3...v12.0.4) (2018-11-10)
+
+
+### Bug Fixes
+
+* don't load config when processing positionals ([5d0dc92](https://github.com/yargs/yargs/commit/5d0dc92))
+
+
+
+<a name="12.0.3"></a>
+## [12.0.3](https://github.com/yargs/yargs/compare/v12.0.2...v12.0.3) (2018-10-06)
+
+
+### Bug Fixes
+
+* $0 contains first arg in bundled electron apps ([#1206](https://github.com/yargs/yargs/issues/1206)) ([567820b](https://github.com/yargs/yargs/commit/567820b))
+* accept single function for middleware ([66fd6f7](https://github.com/yargs/yargs/commit/66fd6f7)), closes [#1214](https://github.com/yargs/yargs/issues/1214) [#1214](https://github.com/yargs/yargs/issues/1214)
+* hide `hidden` options from help output even if they are in a group ([#1221](https://github.com/yargs/yargs/issues/1221)) ([da54028](https://github.com/yargs/yargs/commit/da54028))
+* improve Norwegian Bokmål translations ([#1208](https://github.com/yargs/yargs/issues/1208)) ([a458fa4](https://github.com/yargs/yargs/commit/a458fa4))
+* improve Norwegian Nynorsk translations ([#1207](https://github.com/yargs/yargs/issues/1207)) ([d422eb5](https://github.com/yargs/yargs/commit/d422eb5))
+
+
+
+<a name="12.0.2"></a>
+## [12.0.2](https://github.com/yargs/yargs/compare/v12.0.1...v12.0.2) (2018-09-04)
+
+
+### Bug Fixes
+
+* middleware should work regardless of when method is called  ([664b265](https://github.com/yargs/yargs/commit/664b265)), closes [#1178](https://github.com/yargs/yargs/issues/1178)
+* translation not working when using __ with a single parameter ([#1183](https://github.com/yargs/yargs/issues/1183)) ([f449aea](https://github.com/yargs/yargs/commit/f449aea))
+* upgrade os-locale to version that addresses license issue ([#1195](https://github.com/yargs/yargs/issues/1195)) ([efc0970](https://github.com/yargs/yargs/commit/efc0970))
+
+
+
+<a name="12.0.1"></a>
+## [12.0.1](https://github.com/yargs/yargs/compare/v12.0.0...v12.0.1) (2018-06-29)
+
+
+
+<a name="12.0.0"></a>
+# [12.0.0](https://github.com/yargs/yargs/compare/v11.1.0...v12.0.0) (2018-06-26)
+
+
+### Bug Fixes
+
+* .argv and .parse() now invoke identical code path ([#1126](https://github.com/yargs/yargs/issues/1126)) ([f13ebf4](https://github.com/yargs/yargs/commit/f13ebf4))
+* remove the trailing white spaces from the help output ([#1090](https://github.com/yargs/yargs/issues/1090)) ([3f0746c](https://github.com/yargs/yargs/commit/3f0746c))
+* **completion:** Avoid default command and recommendations during completion ([#1123](https://github.com/yargs/yargs/issues/1123)) ([036e7c5](https://github.com/yargs/yargs/commit/036e7c5))
+
+
+### Chores
+
+* test Node.js 6, 8 and 10 ([#1160](https://github.com/yargs/yargs/issues/1160)) ([84f9d2b](https://github.com/yargs/yargs/commit/84f9d2b))
+* upgrade to version of yargs-parser that does not populate value for unset boolean ([#1104](https://github.com/yargs/yargs/issues/1104)) ([d4705f4](https://github.com/yargs/yargs/commit/d4705f4))
+
+
+### Features
+
+* add support for global middleware, useful for shared tasks like metrics ([#1119](https://github.com/yargs/yargs/issues/1119)) ([9d71ac7](https://github.com/yargs/yargs/commit/9d71ac7))
+* allow setting scriptName $0 ([#1143](https://github.com/yargs/yargs/issues/1143)) ([a2f2eae](https://github.com/yargs/yargs/commit/a2f2eae))
+* remove `setPlaceholderKeys` ([#1105](https://github.com/yargs/yargs/issues/1105)) ([6ee2c82](https://github.com/yargs/yargs/commit/6ee2c82))
+
+
+### BREAKING CHANGES
+
+* Options absent from `argv` (not set via CLI argument) are now absent from the parsed result object rather than being set with `undefined`
+* drop Node 4 from testing matrix, such that we'll gradually start drifting away from supporting Node 4.
+* yargs-parser does not populate 'false' when boolean flag is not passed
+* tests that assert against help output will need to be updated
+
+
+
+<a name="11.1.0"></a>
+# [11.1.0](https://github.com/yargs/yargs/compare/v11.0.0...v11.1.0) (2018-03-04)
+
+
+### Bug Fixes
+
+* choose correct config directory when require.main does not exist ([#1056](https://github.com/yargs/yargs/issues/1056)) ([a04678c](https://github.com/yargs/yargs/commit/a04678c))
+
+
+### Features
+
+* allow hidden options to be displayed with --show-hidden ([#1061](https://github.com/yargs/yargs/issues/1061)) ([ea862ae](https://github.com/yargs/yargs/commit/ea862ae))
+* extend *.rc files in addition to json ([#1080](https://github.com/yargs/yargs/issues/1080)) ([11691a6](https://github.com/yargs/yargs/commit/11691a6))
+
+
+
+<a name="11.0.0"></a>
+# [11.0.0](https://github.com/yargs/yargs/compare/v10.1.2...v11.0.0) (2018-01-22)
+
+
+### Bug Fixes
+
+* Set implicit nargs=1 when type=number requiresArg=true ([#1050](https://github.com/yargs/yargs/issues/1050)) ([2b56812](https://github.com/yargs/yargs/commit/2b56812))
+
+
+### Features
+
+* requiresArg is now simply an alias for nargs(1) ([#1054](https://github.com/yargs/yargs/issues/1054)) ([a3ddacc](https://github.com/yargs/yargs/commit/a3ddacc))
+
+
+### BREAKING CHANGES
+
+* requiresArg now has significantly different error output, matching nargs.
+
+[Historical Versions](/docs/CHANGELOG-historical.md)
diff --git a/node_modules/jest-circus/node_modules/yargs/LICENSE b/node_modules/jest-circus/node_modules/yargs/LICENSE
new file mode 100644
index 0000000..b0145ca
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com)
+
+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.
diff --git a/node_modules/jest-circus/node_modules/yargs/README.md b/node_modules/jest-circus/node_modules/yargs/README.md
new file mode 100644
index 0000000..0db992b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/README.md
@@ -0,0 +1,140 @@
+<p align="center">
+  <img width="250" src="/yargs-logo.png">
+</p>
+<h1 align="center"> Yargs </h1>
+<p align="center">
+  <b >Yargs be a node.js library fer hearties tryin' ter parse optstrings</b>
+</p>
+
+<br>
+
+[![Build Status][travis-image]][travis-url]
+[![NPM version][npm-image]][npm-url]
+[![js-standard-style][standard-image]][standard-url]
+[![Coverage][coverage-image]][coverage-url]
+[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
+[![Slack][slack-image]][slack-url]
+
+## Description :
+Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface.
+
+It gives you:
+
+* commands and (grouped) options (`my-program.js serve --port=5000`).
+* a dynamically generated help menu based on your arguments.
+
+> <img width="400" src="/screen.png">
+
+* bash-completion shortcuts for commands and options.
+* and [tons more](/docs/api.md).
+
+## Installation
+
+Stable version:
+```bash
+npm i yargs
+```
+
+Bleeding edge version with the most recent features:
+```bash
+npm i yargs@next
+```
+
+## Usage :
+
+### Simple Example
+
+```javascript
+#!/usr/bin/env node
+const {argv} = require('yargs')
+
+if (argv.ships > 3 && argv.distance < 53.5) {
+  console.log('Plunder more riffiwobbles!')
+} else {
+  console.log('Retreat from the xupptumblers!')
+}
+```
+
+```bash
+$ ./plunder.js --ships=4 --distance=22
+Plunder more riffiwobbles!
+
+$ ./plunder.js --ships 12 --distance 98.7
+Retreat from the xupptumblers!
+```
+
+### Complex Example
+
+```javascript
+#!/usr/bin/env node
+require('yargs') // eslint-disable-line
+  .command('serve [port]', 'start the server', (yargs) => {
+    yargs
+      .positional('port', {
+        describe: 'port to bind on',
+        default: 5000
+      })
+  }, (argv) => {
+    if (argv.verbose) console.info(`start server on :${argv.port}`)
+    serve(argv.port)
+  })
+  .option('verbose', {
+    alias: 'v',
+    type: 'boolean',
+    description: 'Run with verbose logging'
+  })
+  .argv
+```
+
+Run the example above with `--help` to see the help for the application.
+
+## TypeScript
+
+yargs has type definitions at [@types/yargs][type-definitions].
+
+```
+npm i @types/yargs --save-dev
+```
+
+See usage examples in [docs](/docs/typescript.md).
+
+## Webpack
+
+See usage examples of yargs with webpack in [docs](/docs/webpack.md).
+
+## Community :
+
+Having problems? want to contribute? join our [community slack](http://devtoolscommunity.herokuapp.com).
+
+## Documentation :
+
+### Table of Contents
+
+* [Yargs' API](/docs/api.md)
+* [Examples](/docs/examples.md)
+* [Parsing Tricks](/docs/tricks.md)
+  * [Stop the Parser](/docs/tricks.md#stop)
+  * [Negating Boolean Arguments](/docs/tricks.md#negate)
+  * [Numbers](/docs/tricks.md#numbers)
+  * [Arrays](/docs/tricks.md#arrays)
+  * [Objects](/docs/tricks.md#objects)
+  * [Quotes](/docs/tricks.md#quotes)
+* [Advanced Topics](/docs/advanced.md)
+  * [Composing Your App Using Commands](/docs/advanced.md#commands)
+  * [Building Configurable CLI Apps](/docs/advanced.md#configuration)
+  * [Customizing Yargs' Parser](/docs/advanced.md#customizing)
+* [Contributing](/contributing.md)
+
+[travis-url]: https://travis-ci.org/yargs/yargs
+[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg
+[npm-url]: https://www.npmjs.com/package/yargs
+[npm-image]: https://img.shields.io/npm/v/yargs.svg
+[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
+[standard-url]: http://standardjs.com/
+[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg
+[conventional-commits-url]: https://conventionalcommits.org/
+[slack-image]: http://devtoolscommunity.herokuapp.com/badge.svg
+[slack-url]: http://devtoolscommunity.herokuapp.com
+[type-definitions]: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs
+[coverage-image]: https://img.shields.io/nycrc/yargs/yargs
+[coverage-url]: https://github.com/yargs/yargs/blob/master/.nycrc
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.d.ts
new file mode 100644
index 0000000..5a9aca7
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.d.ts
@@ -0,0 +1,2 @@
+import { Dictionary } from './common-types';
+export declare function applyExtends(config: Dictionary, cwd: string, mergeExtends?: boolean): Dictionary;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.js b/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.js
new file mode 100644
index 0000000..005734a
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/apply-extends.js
@@ -0,0 +1,65 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.applyExtends = void 0;
+const fs = require("fs");
+const path = require("path");
+const yerror_1 = require("./yerror");
+let previouslyVisitedConfigs = [];
+function checkForCircularExtends(cfgPath) {
+    if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
+        throw new yerror_1.YError(`Circular extended configurations: '${cfgPath}'.`);
+    }
+}
+function getPathToDefaultConfig(cwd, pathToExtend) {
+    return path.resolve(cwd, pathToExtend);
+}
+function mergeDeep(config1, config2) {
+    const target = {};
+    function isObject(obj) {
+        return obj && typeof obj === 'object' && !Array.isArray(obj);
+    }
+    Object.assign(target, config1);
+    for (const key of Object.keys(config2)) {
+        if (isObject(config2[key]) && isObject(target[key])) {
+            target[key] = mergeDeep(config1[key], config2[key]);
+        }
+        else {
+            target[key] = config2[key];
+        }
+    }
+    return target;
+}
+function applyExtends(config, cwd, mergeExtends = false) {
+    let defaultConfig = {};
+    if (Object.prototype.hasOwnProperty.call(config, 'extends')) {
+        if (typeof config.extends !== 'string')
+            return defaultConfig;
+        const isPath = /\.json|\..*rc$/.test(config.extends);
+        let pathToDefault = null;
+        if (!isPath) {
+            try {
+                pathToDefault = require.resolve(config.extends);
+            }
+            catch (err) {
+                // most likely this simply isn't a module.
+            }
+        }
+        else {
+            pathToDefault = getPathToDefaultConfig(cwd, config.extends);
+        }
+        // maybe the module uses key for some other reason,
+        // err on side of caution.
+        if (!pathToDefault && !isPath)
+            return config;
+        if (!pathToDefault)
+            throw new yerror_1.YError(`Unable to find extended config '${config.extends}' in '${cwd}'.`);
+        checkForCircularExtends(pathToDefault);
+        previouslyVisitedConfigs.push(pathToDefault);
+        defaultConfig = isPath ? JSON.parse(fs.readFileSync(pathToDefault, 'utf8')) : require(config.extends);
+        delete config.extends;
+        defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault), mergeExtends);
+    }
+    previouslyVisitedConfigs = [];
+    return mergeExtends ? mergeDeep(defaultConfig, config) : Object.assign({}, defaultConfig, config);
+}
+exports.applyExtends = applyExtends;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.d.ts
new file mode 100644
index 0000000..6f7a83f
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.d.ts
@@ -0,0 +1,2 @@
+export declare function argsert(callerArguments: any[], length?: number): void;
+export declare function argsert(expected: string, callerArguments: any[], length?: number): void;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.js b/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.js
new file mode 100644
index 0000000..40cb091
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/argsert.js
@@ -0,0 +1,65 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.argsert = void 0;
+const yerror_1 = require("./yerror");
+const parse_command_1 = require("./parse-command");
+const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];
+function argsert(arg1, arg2, arg3) {
+    function parseArgs() {
+        return typeof arg1 === 'object'
+            ? [{ demanded: [], optional: [] }, arg1, arg2]
+            : [parse_command_1.parseCommand(`cmd ${arg1}`), arg2, arg3];
+    }
+    // TODO: should this eventually raise an exception.
+    try {
+        // preface the argument description with "cmd", so
+        // that we can run it through yargs' command parser.
+        let position = 0;
+        let [parsed, callerArguments, length] = parseArgs();
+        const args = [].slice.call(callerArguments);
+        while (args.length && args[args.length - 1] === undefined)
+            args.pop();
+        length = length || args.length;
+        if (length < parsed.demanded.length) {
+            throw new yerror_1.YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);
+        }
+        const totalCommands = parsed.demanded.length + parsed.optional.length;
+        if (length > totalCommands) {
+            throw new yerror_1.YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);
+        }
+        parsed.demanded.forEach((demanded) => {
+            const arg = args.shift();
+            const observedType = guessType(arg);
+            const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');
+            if (matchingTypes.length === 0)
+                argumentTypeError(observedType, demanded.cmd, position);
+            position += 1;
+        });
+        parsed.optional.forEach((optional) => {
+            if (args.length === 0)
+                return;
+            const arg = args.shift();
+            const observedType = guessType(arg);
+            const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');
+            if (matchingTypes.length === 0)
+                argumentTypeError(observedType, optional.cmd, position);
+            position += 1;
+        });
+    }
+    catch (err) {
+        console.warn(err.stack);
+    }
+}
+exports.argsert = argsert;
+function guessType(arg) {
+    if (Array.isArray(arg)) {
+        return 'array';
+    }
+    else if (arg === null) {
+        return 'null';
+    }
+    return typeof arg;
+}
+function argumentTypeError(observedType, allowedTypes, position) {
+    throw new yerror_1.YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/command.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/command.d.ts
new file mode 100644
index 0000000..9db6ab5
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/command.d.ts
@@ -0,0 +1,64 @@
+/// <reference types="node" />
+import { Dictionary } from './common-types';
+import { Middleware } from './middleware';
+import { Positional } from './parse-command';
+import { RequireDirectoryOptions } from 'require-directory';
+import { UsageInstance } from './usage';
+import { ValidationInstance } from './validation';
+import { YargsInstance, Options, OptionDefinition, Context, Arguments, DetailedArguments } from './yargs';
+export declare function command(yargs: YargsInstance, usage: UsageInstance, validation: ValidationInstance, globalMiddleware?: Middleware[]): CommandInstance;
+/** Instance of the command module. */
+export interface CommandInstance {
+    addDirectory(dir: string, context: Context, req: NodeRequireFunction, callerFile: string, opts?: RequireDirectoryOptions<any>): void;
+    addHandler(handler: CommandHandlerDefinition): void;
+    addHandler(cmd: string | string[], description: CommandHandler['description'], builder?: CommandBuilderDefinition | CommandBuilder, handler?: CommandHandlerCallback, commandMiddleware?: Middleware[], deprecated?: boolean): void;
+    cmdToParseOptions(cmdString: string): Positionals;
+    freeze(): void;
+    getCommandHandlers(): Dictionary<CommandHandler>;
+    getCommands(): string[];
+    hasDefaultCommand(): boolean;
+    reset(): CommandInstance;
+    runCommand(command: string | null, yargs: YargsInstance, parsed: DetailedArguments, commandIndex?: number): Arguments | Promise<Arguments>;
+    runDefaultBuilderOn(yargs: YargsInstance): void;
+    unfreeze(): void;
+}
+export interface CommandHandlerDefinition extends Partial<Pick<CommandHandler, 'deprecated' | 'description' | 'handler' | 'middlewares'>> {
+    aliases?: string[];
+    builder?: CommandBuilder | CommandBuilderDefinition;
+    command?: string | string[];
+    desc?: CommandHandler['description'];
+    describe?: CommandHandler['description'];
+}
+export declare function isCommandHandlerDefinition(cmd: string | string[] | CommandHandlerDefinition): cmd is CommandHandlerDefinition;
+export interface CommandBuilderDefinition {
+    builder?: CommandBuilder;
+    deprecated?: boolean;
+    handler: CommandHandlerCallback;
+    middlewares?: Middleware[];
+}
+export declare function isCommandBuilderDefinition(builder?: CommandBuilder | CommandBuilderDefinition): builder is CommandBuilderDefinition;
+export interface CommandHandlerCallback {
+    (argv: Arguments): any;
+}
+export interface CommandHandler {
+    builder: CommandBuilder;
+    demanded: Positional[];
+    deprecated?: boolean;
+    description?: string | false;
+    handler: CommandHandlerCallback;
+    middlewares: Middleware[];
+    optional: Positional[];
+    original: string;
+}
+export declare type CommandBuilder = CommandBuilderCallback | Dictionary<OptionDefinition>;
+interface CommandBuilderCallback {
+    (y: YargsInstance): YargsInstance | void;
+}
+export declare function isCommandBuilderCallback(builder: CommandBuilder): builder is CommandBuilderCallback;
+interface Positionals extends Pick<Options, 'alias' | 'array' | 'default'> {
+    demand: Dictionary<boolean>;
+}
+export interface FinishCommandHandler {
+    (handlerResult: any): any;
+}
+export {};
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/command.js b/node_modules/jest-circus/node_modules/yargs/build/lib/command.js
new file mode 100644
index 0000000..d90c455
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/command.js
@@ -0,0 +1,416 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isCommandBuilderCallback = exports.isCommandBuilderDefinition = exports.isCommandHandlerDefinition = exports.command = void 0;
+const common_types_1 = require("./common-types");
+const is_promise_1 = require("./is-promise");
+const middleware_1 = require("./middleware");
+const parse_command_1 = require("./parse-command");
+const path = require("path");
+const util_1 = require("util");
+const yargs_1 = require("./yargs");
+const requireDirectory = require("require-directory");
+const whichModule = require("which-module");
+const Parser = require("yargs-parser");
+const DEFAULT_MARKER = /(^\*)|(^\$0)/;
+// handles parsing positional arguments,
+// and populating argv with said positional
+// arguments.
+function command(yargs, usage, validation, globalMiddleware = []) {
+    const self = {};
+    let handlers = {};
+    let aliasMap = {};
+    let defaultCommand;
+    self.addHandler = function addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {
+        let aliases = [];
+        const middlewares = middleware_1.commandMiddlewareFactory(commandMiddleware);
+        handler = handler || (() => { });
+        if (Array.isArray(cmd)) {
+            aliases = cmd.slice(1);
+            cmd = cmd[0];
+        }
+        else if (isCommandHandlerDefinition(cmd)) {
+            let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd);
+            if (cmd.aliases)
+                command = [].concat(command).concat(cmd.aliases);
+            self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);
+            return;
+        }
+        // allow a module to be provided instead of separate builder and handler
+        if (isCommandBuilderDefinition(builder)) {
+            self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);
+            return;
+        }
+        // parse positionals out of cmd string
+        const parsedCommand = parse_command_1.parseCommand(cmd);
+        // remove positional args from aliases only
+        aliases = aliases.map(alias => parse_command_1.parseCommand(alias).cmd);
+        // check for default and filter out '*''
+        let isDefault = false;
+        const parsedAliases = [parsedCommand.cmd].concat(aliases).filter((c) => {
+            if (DEFAULT_MARKER.test(c)) {
+                isDefault = true;
+                return false;
+            }
+            return true;
+        });
+        // standardize on $0 for default command.
+        if (parsedAliases.length === 0 && isDefault)
+            parsedAliases.push('$0');
+        // shift cmd and aliases after filtering out '*'
+        if (isDefault) {
+            parsedCommand.cmd = parsedAliases[0];
+            aliases = parsedAliases.slice(1);
+            cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);
+        }
+        // populate aliasMap
+        aliases.forEach((alias) => {
+            aliasMap[alias] = parsedCommand.cmd;
+        });
+        if (description !== false) {
+            usage.command(cmd, description, isDefault, aliases, deprecated);
+        }
+        handlers[parsedCommand.cmd] = {
+            original: cmd,
+            description,
+            handler,
+            builder: builder || {},
+            middlewares,
+            deprecated,
+            demanded: parsedCommand.demanded,
+            optional: parsedCommand.optional
+        };
+        if (isDefault)
+            defaultCommand = handlers[parsedCommand.cmd];
+    };
+    self.addDirectory = function addDirectory(dir, context, req, callerFile, opts) {
+        opts = opts || {};
+        // disable recursion to support nested directories of subcommands
+        if (typeof opts.recurse !== 'boolean')
+            opts.recurse = false;
+        // exclude 'json', 'coffee' from require-directory defaults
+        if (!Array.isArray(opts.extensions))
+            opts.extensions = ['js'];
+        // allow consumer to define their own visitor function
+        const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o;
+        // call addHandler via visitor function
+        opts.visit = function visit(obj, joined, filename) {
+            const visited = parentVisit(obj, joined, filename);
+            // allow consumer to skip modules with their own visitor
+            if (visited) {
+                // check for cyclic reference
+                // each command file path should only be seen once per execution
+                if (~context.files.indexOf(joined))
+                    return visited;
+                // keep track of visited files in context.files
+                context.files.push(joined);
+                self.addHandler(visited);
+            }
+            return visited;
+        };
+        requireDirectory({ require: req, filename: callerFile }, dir, opts);
+    };
+    // lookup module object from require()d command and derive name
+    // if module was not require()d and no name given, throw error
+    function moduleName(obj) {
+        const mod = whichModule(obj);
+        if (!mod)
+            throw new Error(`No command name given for module: ${util_1.inspect(obj)}`);
+        return commandFromFilename(mod.filename);
+    }
+    // derive command name from filename
+    function commandFromFilename(filename) {
+        return path.basename(filename, path.extname(filename));
+    }
+    function extractDesc({ describe, description, desc }) {
+        for (const test of [describe, description, desc]) {
+            if (typeof test === 'string' || test === false)
+                return test;
+            common_types_1.assertNotStrictEqual(test, true);
+        }
+        return false;
+    }
+    self.getCommands = () => Object.keys(handlers).concat(Object.keys(aliasMap));
+    self.getCommandHandlers = () => handlers;
+    self.hasDefaultCommand = () => !!defaultCommand;
+    self.runCommand = function runCommand(command, yargs, parsed, commandIndex) {
+        let aliases = parsed.aliases;
+        const commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand;
+        const currentContext = yargs.getContext();
+        let numFiles = currentContext.files.length;
+        const parentCommands = currentContext.commands.slice();
+        // what does yargs look like after the builder is run?
+        let innerArgv = parsed.argv;
+        let positionalMap = {};
+        if (command) {
+            currentContext.commands.push(command);
+            currentContext.fullCommands.push(commandHandler.original);
+        }
+        const builder = commandHandler.builder;
+        if (isCommandBuilderCallback(builder)) {
+            // a function can be provided, which builds
+            // up a yargs chain and possibly returns it.
+            const builderOutput = builder(yargs.reset(parsed.aliases));
+            const innerYargs = yargs_1.isYargsInstance(builderOutput) ? builderOutput : yargs;
+            if (shouldUpdateUsage(innerYargs)) {
+                innerYargs.getUsageInstance().usage(usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);
+            }
+            innerArgv = innerYargs._parseArgs(null, null, true, commandIndex);
+            aliases = innerYargs.parsed.aliases;
+        }
+        else if (isCommandBuilderOptionDefinitions(builder)) {
+            // as a short hand, an object can instead be provided, specifying
+            // the options that a command takes.
+            const innerYargs = yargs.reset(parsed.aliases);
+            if (shouldUpdateUsage(innerYargs)) {
+                innerYargs.getUsageInstance().usage(usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);
+            }
+            Object.keys(commandHandler.builder).forEach((key) => {
+                innerYargs.option(key, builder[key]);
+            });
+            innerArgv = innerYargs._parseArgs(null, null, true, commandIndex);
+            aliases = innerYargs.parsed.aliases;
+        }
+        if (!yargs._hasOutput()) {
+            positionalMap = populatePositionals(commandHandler, innerArgv, currentContext);
+        }
+        const middlewares = globalMiddleware.slice(0).concat(commandHandler.middlewares);
+        middleware_1.applyMiddleware(innerArgv, yargs, middlewares, true);
+        // we apply validation post-hoc, so that custom
+        // checks get passed populated positional arguments.
+        if (!yargs._hasOutput()) {
+            yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error, !command);
+        }
+        if (commandHandler.handler && !yargs._hasOutput()) {
+            yargs._setHasOutput();
+            // to simplify the parsing of positionals in commands,
+            // we temporarily populate '--' rather than _, with arguments
+            const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];
+            if (!populateDoubleDash)
+                yargs._copyDoubleDash(innerArgv);
+            innerArgv = middleware_1.applyMiddleware(innerArgv, yargs, middlewares, false);
+            let handlerResult;
+            if (is_promise_1.isPromise(innerArgv)) {
+                handlerResult = innerArgv.then(argv => commandHandler.handler(argv));
+            }
+            else {
+                handlerResult = commandHandler.handler(innerArgv);
+            }
+            const handlerFinishCommand = yargs.getHandlerFinishCommand();
+            if (is_promise_1.isPromise(handlerResult)) {
+                yargs.getUsageInstance().cacheHelpMessage();
+                handlerResult
+                    .then(value => {
+                    if (handlerFinishCommand) {
+                        handlerFinishCommand(value);
+                    }
+                })
+                    .catch(error => {
+                    try {
+                        yargs.getUsageInstance().fail(null, error);
+                    }
+                    catch (err) {
+                        // fail's throwing would cause an unhandled rejection.
+                    }
+                })
+                    .then(() => {
+                    yargs.getUsageInstance().clearCachedHelpMessage();
+                });
+            }
+            else {
+                if (handlerFinishCommand) {
+                    handlerFinishCommand(handlerResult);
+                }
+            }
+        }
+        if (command) {
+            currentContext.commands.pop();
+            currentContext.fullCommands.pop();
+        }
+        numFiles = currentContext.files.length - numFiles;
+        if (numFiles > 0)
+            currentContext.files.splice(numFiles * -1, numFiles);
+        return innerArgv;
+    };
+    function shouldUpdateUsage(yargs) {
+        return !yargs.getUsageInstance().getUsageDisabled() &&
+            yargs.getUsageInstance().getUsage().length === 0;
+    }
+    function usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {
+        const c = DEFAULT_MARKER.test(commandHandler.original) ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() : commandHandler.original;
+        const pc = parentCommands.filter((c) => { return !DEFAULT_MARKER.test(c); });
+        pc.push(c);
+        return `$0 ${pc.join(' ')}`;
+    }
+    self.runDefaultBuilderOn = function (yargs) {
+        common_types_1.assertNotStrictEqual(defaultCommand, undefined);
+        if (shouldUpdateUsage(yargs)) {
+            // build the root-level command string from the default string.
+            const commandString = DEFAULT_MARKER.test(defaultCommand.original)
+                ? defaultCommand.original : defaultCommand.original.replace(/^[^[\]<>]*/, '$0 ');
+            yargs.getUsageInstance().usage(commandString, defaultCommand.description);
+        }
+        const builder = defaultCommand.builder;
+        if (isCommandBuilderCallback(builder)) {
+            builder(yargs);
+        }
+        else {
+            Object.keys(builder).forEach((key) => {
+                yargs.option(key, builder[key]);
+            });
+        }
+    };
+    // transcribe all positional arguments "command <foo> <bar> [apple]"
+    // onto argv.
+    function populatePositionals(commandHandler, argv, context) {
+        argv._ = argv._.slice(context.commands.length); // nuke the current commands
+        const demanded = commandHandler.demanded.slice(0);
+        const optional = commandHandler.optional.slice(0);
+        const positionalMap = {};
+        validation.positionalCount(demanded.length, argv._.length);
+        while (demanded.length) {
+            const demand = demanded.shift();
+            populatePositional(demand, argv, positionalMap);
+        }
+        while (optional.length) {
+            const maybe = optional.shift();
+            populatePositional(maybe, argv, positionalMap);
+        }
+        argv._ = context.commands.concat(argv._);
+        postProcessPositionals(argv, positionalMap, self.cmdToParseOptions(commandHandler.original));
+        return positionalMap;
+    }
+    function populatePositional(positional, argv, positionalMap) {
+        const cmd = positional.cmd[0];
+        if (positional.variadic) {
+            positionalMap[cmd] = argv._.splice(0).map(String);
+        }
+        else {
+            if (argv._.length)
+                positionalMap[cmd] = [String(argv._.shift())];
+        }
+    }
+    // we run yargs-parser against the positional arguments
+    // applying the same parsing logic used for flags.
+    function postProcessPositionals(argv, positionalMap, parseOptions) {
+        // combine the parsing hints we've inferred from the command
+        // string with explicitly configured parsing hints.
+        const options = Object.assign({}, yargs.getOptions());
+        options.default = Object.assign(parseOptions.default, options.default);
+        for (const key of Object.keys(parseOptions.alias)) {
+            options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);
+        }
+        options.array = options.array.concat(parseOptions.array);
+        delete options.config; //  don't load config when processing positionals.
+        const unparsed = [];
+        Object.keys(positionalMap).forEach((key) => {
+            positionalMap[key].map((value) => {
+                if (options.configuration['unknown-options-as-args'])
+                    options.key[key] = true;
+                unparsed.push(`--${key}`);
+                unparsed.push(value);
+            });
+        });
+        // short-circuit parse.
+        if (!unparsed.length)
+            return;
+        const config = Object.assign({}, options.configuration, {
+            'populate--': true
+        });
+        const parsed = Parser.detailed(unparsed, Object.assign({}, options, {
+            configuration: config
+        }));
+        if (parsed.error) {
+            yargs.getUsageInstance().fail(parsed.error.message, parsed.error);
+        }
+        else {
+            // only copy over positional keys (don't overwrite
+            // flag arguments that were already parsed).
+            const positionalKeys = Object.keys(positionalMap);
+            Object.keys(positionalMap).forEach((key) => {
+                positionalKeys.push(...parsed.aliases[key]);
+            });
+            Object.keys(parsed.argv).forEach((key) => {
+                if (positionalKeys.indexOf(key) !== -1) {
+                    // any new aliases need to be placed in positionalMap, which
+                    // is used for validation.
+                    if (!positionalMap[key])
+                        positionalMap[key] = parsed.argv[key];
+                    argv[key] = parsed.argv[key];
+                }
+            });
+        }
+    }
+    self.cmdToParseOptions = function (cmdString) {
+        const parseOptions = {
+            array: [],
+            default: {},
+            alias: {},
+            demand: {}
+        };
+        const parsed = parse_command_1.parseCommand(cmdString);
+        parsed.demanded.forEach((d) => {
+            const [cmd, ...aliases] = d.cmd;
+            if (d.variadic) {
+                parseOptions.array.push(cmd);
+                parseOptions.default[cmd] = [];
+            }
+            parseOptions.alias[cmd] = aliases;
+            parseOptions.demand[cmd] = true;
+        });
+        parsed.optional.forEach((o) => {
+            const [cmd, ...aliases] = o.cmd;
+            if (o.variadic) {
+                parseOptions.array.push(cmd);
+                parseOptions.default[cmd] = [];
+            }
+            parseOptions.alias[cmd] = aliases;
+        });
+        return parseOptions;
+    };
+    self.reset = () => {
+        handlers = {};
+        aliasMap = {};
+        defaultCommand = undefined;
+        return self;
+    };
+    // used by yargs.parse() to freeze
+    // the state of commands such that
+    // we can apply .parse() multiple times
+    // with the same yargs instance.
+    const frozens = [];
+    self.freeze = () => {
+        frozens.push({
+            handlers,
+            aliasMap,
+            defaultCommand
+        });
+    };
+    self.unfreeze = () => {
+        const frozen = frozens.pop();
+        common_types_1.assertNotStrictEqual(frozen, undefined);
+        ({
+            handlers,
+            aliasMap,
+            defaultCommand
+        } = frozen);
+    };
+    return self;
+}
+exports.command = command;
+function isCommandHandlerDefinition(cmd) {
+    return typeof cmd === 'object';
+}
+exports.isCommandHandlerDefinition = isCommandHandlerDefinition;
+function isCommandBuilderDefinition(builder) {
+    return typeof builder === 'object' &&
+        !!builder.builder &&
+        typeof builder.handler === 'function';
+}
+exports.isCommandBuilderDefinition = isCommandBuilderDefinition;
+function isCommandBuilderCallback(builder) {
+    return typeof builder === 'function';
+}
+exports.isCommandBuilderCallback = isCommandBuilderCallback;
+function isCommandBuilderOptionDefinitions(builder) {
+    return typeof builder === 'object';
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.d.ts
new file mode 100644
index 0000000..f83c0dd
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.d.ts
@@ -0,0 +1,36 @@
+/**
+ * An object whose all properties have the same type.
+ */
+export declare type Dictionary<T = any> = {
+    [key: string]: T;
+};
+/**
+ * Returns the keys of T that match Dictionary<U> and are not arrays.
+ */
+export declare type DictionaryKeyof<T, U = any> = Exclude<KeyOf<T, Dictionary<U>>, KeyOf<T, any[]>>;
+/**
+ * Returns the keys of T that match U.
+ */
+export declare type KeyOf<T, U> = Exclude<{
+    [K in keyof T]: T[K] extends U ? K : never;
+}[keyof T], undefined>;
+/**
+ * An array whose first element is not undefined.
+ */
+export declare type NotEmptyArray<T = any> = [T, ...T[]];
+/**
+ * Returns the type of a Dictionary or array values.
+ */
+export declare type ValueOf<T> = T extends (infer U)[] ? U : T[keyof T];
+/**
+ * Typing wrapper around assert.notStrictEqual()
+ */
+export declare function assertNotStrictEqual<N, T>(actual: T | N, expected: N, message?: string | Error): asserts actual is Exclude<T, N>;
+/**
+ * Asserts actual is a single key, not a key array or a key map.
+ */
+export declare function assertSingleKey(actual: string | string[] | Dictionary): asserts actual is string;
+/**
+ * Typing wrapper around Object.keys()
+ */
+export declare function objectKeys<T>(object: T): (keyof T)[];
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.js b/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.js
new file mode 100644
index 0000000..3064cbf
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/common-types.js
@@ -0,0 +1,25 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.objectKeys = exports.assertSingleKey = exports.assertNotStrictEqual = void 0;
+const assert_1 = require("assert");
+/**
+ * Typing wrapper around assert.notStrictEqual()
+ */
+function assertNotStrictEqual(actual, expected, message) {
+    assert_1.notStrictEqual(actual, expected, message);
+}
+exports.assertNotStrictEqual = assertNotStrictEqual;
+/**
+ * Asserts actual is a single key, not a key array or a key map.
+ */
+function assertSingleKey(actual) {
+    assert_1.strictEqual(typeof actual, 'string');
+}
+exports.assertSingleKey = assertSingleKey;
+/**
+ * Typing wrapper around Object.keys()
+ */
+function objectKeys(object) {
+    return Object.keys(object);
+}
+exports.objectKeys = objectKeys;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.d.ts
new file mode 100644
index 0000000..67bcd30
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.d.ts
@@ -0,0 +1,2 @@
+export declare const completionShTemplate = "###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n#    or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_yargs_completions()\n{\n    local cur_word args type_list\n\n    cur_word=\"${COMP_WORDS[COMP_CWORD]}\"\n    args=(\"${COMP_WORDS[@]}\")\n\n    # ask yargs to generate completions.\n    type_list=$({{app_path}} --get-yargs-completions \"${args[@]}\")\n\n    COMPREPLY=( $(compgen -W \"${type_list}\" -- ${cur_word}) )\n\n    # if no match was found, fall back to filename completion\n    if [ ${#COMPREPLY[@]} -eq 0 ]; then\n      COMPREPLY=()\n    fi\n\n    return 0\n}\ncomplete -o default -F _yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n";
+export declare const completionZshTemplate = "###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n#    or {{app_path}} {{completion_command}} >> ~/.zsh_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n  local reply\n  local si=$IFS\n  IFS=$'\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"${words[@]}\"))\n  IFS=$si\n  _describe 'values' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n";
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.js b/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.js
new file mode 100644
index 0000000..3ee0e06
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/completion-templates.js
@@ -0,0 +1,50 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.completionZshTemplate = exports.completionShTemplate = void 0;
+exports.completionShTemplate = `###-begin-{{app_name}}-completions-###
+#
+# yargs command completion script
+#
+# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
+#    or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
+#
+_yargs_completions()
+{
+    local cur_word args type_list
+
+    cur_word="\${COMP_WORDS[COMP_CWORD]}"
+    args=("\${COMP_WORDS[@]}")
+
+    # ask yargs to generate completions.
+    type_list=$({{app_path}} --get-yargs-completions "\${args[@]}")
+
+    COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) )
+
+    # if no match was found, fall back to filename completion
+    if [ \${#COMPREPLY[@]} -eq 0 ]; then
+      COMPREPLY=()
+    fi
+
+    return 0
+}
+complete -o default -F _yargs_completions {{app_name}}
+###-end-{{app_name}}-completions-###
+`;
+exports.completionZshTemplate = `###-begin-{{app_name}}-completions-###
+#
+# yargs command completion script
+#
+# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
+#    or {{app_path}} {{completion_command}} >> ~/.zsh_profile on OSX.
+#
+_{{app_name}}_yargs_completions()
+{
+  local reply
+  local si=$IFS
+  IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}"))
+  IFS=$si
+  _describe 'values' reply
+}
+compdef _{{app_name}}_yargs_completions {{app_name}}
+###-end-{{app_name}}-completions-###
+`;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/completion.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/completion.d.ts
new file mode 100644
index 0000000..176a91b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/completion.d.ts
@@ -0,0 +1,21 @@
+import { CommandInstance } from './command';
+import { UsageInstance } from './usage';
+import { YargsInstance } from './yargs';
+import { Arguments, DetailedArguments } from 'yargs-parser';
+export declare function completion(yargs: YargsInstance, usage: UsageInstance, command: CommandInstance): CompletionInstance;
+/** Instance of the completion module. */
+export interface CompletionInstance {
+    completionKey: string;
+    generateCompletionScript($0: string, cmd: string): string;
+    getCompletion(args: string[], done: (completions: string[]) => any): any;
+    registerFunction(fn: CompletionFunction): void;
+    setParsed(parsed: DetailedArguments): void;
+}
+export declare type CompletionFunction = SyncCompletionFunction | AsyncCompletionFunction;
+interface SyncCompletionFunction {
+    (current: string, argv: Arguments): string[] | Promise<string[]>;
+}
+interface AsyncCompletionFunction {
+    (current: string, argv: Arguments, done: (completions: string[]) => any): any;
+}
+export {};
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/completion.js b/node_modules/jest-circus/node_modules/yargs/build/lib/completion.js
new file mode 100644
index 0000000..d65925a
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/completion.js
@@ -0,0 +1,135 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.completion = void 0;
+const command_1 = require("./command");
+const templates = require("./completion-templates");
+const is_promise_1 = require("./is-promise");
+const parse_command_1 = require("./parse-command");
+const path = require("path");
+const common_types_1 = require("./common-types");
+// add bash completions to your
+//  yargs-powered applications.
+function completion(yargs, usage, command) {
+    const self = {
+        completionKey: 'get-yargs-completions'
+    };
+    let aliases;
+    self.setParsed = function setParsed(parsed) {
+        aliases = parsed.aliases;
+    };
+    const zshShell = (process.env.SHELL && process.env.SHELL.indexOf('zsh') !== -1) ||
+        (process.env.ZSH_NAME && process.env.ZSH_NAME.indexOf('zsh') !== -1);
+    // get a list of completion commands.
+    // 'args' is the array of strings from the line to be completed
+    self.getCompletion = function getCompletion(args, done) {
+        const completions = [];
+        const current = args.length ? args[args.length - 1] : '';
+        const argv = yargs.parse(args, true);
+        const parentCommands = yargs.getContext().commands;
+        // a custom completion function can be provided
+        // to completion().
+        function runCompletionFunction(argv) {
+            common_types_1.assertNotStrictEqual(completionFunction, null);
+            if (isSyncCompletionFunction(completionFunction)) {
+                const result = completionFunction(current, argv);
+                // promise based completion function.
+                if (is_promise_1.isPromise(result)) {
+                    return result.then((list) => {
+                        process.nextTick(() => { done(list); });
+                    }).catch((err) => {
+                        process.nextTick(() => { throw err; });
+                    });
+                }
+                // synchronous completion function.
+                return done(result);
+            }
+            else {
+                // asynchronous completion function
+                return completionFunction(current, argv, (completions) => {
+                    done(completions);
+                });
+            }
+        }
+        if (completionFunction) {
+            return is_promise_1.isPromise(argv) ? argv.then(runCompletionFunction) : runCompletionFunction(argv);
+        }
+        const handlers = command.getCommandHandlers();
+        for (let i = 0, ii = args.length; i < ii; ++i) {
+            if (handlers[args[i]] && handlers[args[i]].builder) {
+                const builder = handlers[args[i]].builder;
+                if (command_1.isCommandBuilderCallback(builder)) {
+                    const y = yargs.reset();
+                    builder(y);
+                    return y.argv;
+                }
+            }
+        }
+        if (!current.match(/^-/) && parentCommands[parentCommands.length - 1] !== current) {
+            usage.getCommands().forEach((usageCommand) => {
+                const commandName = parse_command_1.parseCommand(usageCommand[0]).cmd;
+                if (args.indexOf(commandName) === -1) {
+                    if (!zshShell) {
+                        completions.push(commandName);
+                    }
+                    else {
+                        const desc = usageCommand[1] || '';
+                        completions.push(commandName.replace(/:/g, '\\:') + ':' + desc);
+                    }
+                }
+            });
+        }
+        if (current.match(/^-/) || (current === '' && completions.length === 0)) {
+            const descs = usage.getDescriptions();
+            const options = yargs.getOptions();
+            Object.keys(options.key).forEach((key) => {
+                const negable = !!options.configuration['boolean-negation'] && options.boolean.includes(key);
+                // If the key and its aliases aren't in 'args', add the key to 'completions'
+                let keyAndAliases = [key].concat(aliases[key] || []);
+                if (negable)
+                    keyAndAliases = keyAndAliases.concat(keyAndAliases.map(key => `no-${key}`));
+                function completeOptionKey(key) {
+                    const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1);
+                    if (notInArgs) {
+                        const startsByTwoDashes = (s) => /^--/.test(s);
+                        const isShortOption = (s) => /^[^0-9]$/.test(s);
+                        const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';
+                        if (!zshShell) {
+                            completions.push(dashes + key);
+                        }
+                        else {
+                            const desc = descs[key] || '';
+                            completions.push(dashes + `${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`);
+                        }
+                    }
+                }
+                completeOptionKey(key);
+                if (negable && !!options.default[key])
+                    completeOptionKey(`no-${key}`);
+            });
+        }
+        done(completions);
+    };
+    // generate the completion script to add to your .bashrc.
+    self.generateCompletionScript = function generateCompletionScript($0, cmd) {
+        let script = zshShell ? templates.completionZshTemplate : templates.completionShTemplate;
+        const name = path.basename($0);
+        // add ./to applications not yet installed as bin.
+        if ($0.match(/\.js$/))
+            $0 = `./${$0}`;
+        script = script.replace(/{{app_name}}/g, name);
+        script = script.replace(/{{completion_command}}/g, cmd);
+        return script.replace(/{{app_path}}/g, $0);
+    };
+    // register a function to perform your own custom
+    // completions., this function can be either
+    // synchrnous or asynchronous.
+    let completionFunction = null;
+    self.registerFunction = (fn) => {
+        completionFunction = fn;
+    };
+    return self;
+}
+exports.completion = completion;
+function isSyncCompletionFunction(completionFunction) {
+    return completionFunction.length < 3;
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.d.ts
new file mode 100644
index 0000000..19b5566
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.d.ts
@@ -0,0 +1 @@
+export declare function isPromise<T>(maybePromise: T | Promise<T>): maybePromise is Promise<T>;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.js b/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.js
new file mode 100644
index 0000000..c24f9a8
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/is-promise.js
@@ -0,0 +1,9 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isPromise = void 0;
+function isPromise(maybePromise) {
+    return !!maybePromise &&
+        !!maybePromise.then &&
+        (typeof maybePromise.then === 'function');
+}
+exports.isPromise = isPromise;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.d.ts
new file mode 100644
index 0000000..08b6b7f
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.d.ts
@@ -0,0 +1 @@
+export declare function levenshtein(a: string, b: string): number;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.js b/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.js
new file mode 100644
index 0000000..84c0831
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/levenshtein.js
@@ -0,0 +1,58 @@
+"use strict";
+/*
+Copyright (c) 2011 Andrei Mackenzie
+
+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.
+*/
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.levenshtein = void 0;
+// levenshtein distance algorithm, pulled from Andrei Mackenzie's MIT licensed.
+// gist, which can be found here: https://gist.github.com/andrei-m/982927
+// Compute the edit distance between the two given strings
+function levenshtein(a, b) {
+    if (a.length === 0)
+        return b.length;
+    if (b.length === 0)
+        return a.length;
+    const matrix = [];
+    // increment along the first column of each row
+    let i;
+    for (i = 0; i <= b.length; i++) {
+        matrix[i] = [i];
+    }
+    // increment each column in the first row
+    let j;
+    for (j = 0; j <= a.length; j++) {
+        matrix[0][j] = j;
+    }
+    // Fill in the rest of the matrix
+    for (i = 1; i <= b.length; i++) {
+        for (j = 1; j <= a.length; j++) {
+            if (b.charAt(i - 1) === a.charAt(j - 1)) {
+                matrix[i][j] = matrix[i - 1][j - 1];
+            }
+            else {
+                matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
+                Math.min(matrix[i][j - 1] + 1, // insertion
+                matrix[i - 1][j] + 1)); // deletion
+            }
+        }
+    }
+    return matrix[b.length][a.length];
+}
+exports.levenshtein = levenshtein;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.d.ts
new file mode 100644
index 0000000..8fa7c34
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.d.ts
@@ -0,0 +1,10 @@
+import { YargsInstance, Arguments } from './yargs';
+export declare function globalMiddlewareFactory<T>(globalMiddleware: Middleware[], context: T): (callback: MiddlewareCallback | MiddlewareCallback[], applyBeforeValidation?: boolean) => T;
+export declare function commandMiddlewareFactory(commandMiddleware?: MiddlewareCallback[]): Middleware[];
+export declare function applyMiddleware(argv: Arguments | Promise<Arguments>, yargs: YargsInstance, middlewares: Middleware[], beforeValidation: boolean): Arguments | Promise<Arguments>;
+export interface MiddlewareCallback {
+    (argv: Arguments, yargs: YargsInstance): Partial<Arguments> | Promise<Partial<Arguments>>;
+}
+export interface Middleware extends MiddlewareCallback {
+    applyBeforeValidation: boolean;
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.js b/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.js
new file mode 100644
index 0000000..e93b6d2
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/middleware.js
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.applyMiddleware = exports.commandMiddlewareFactory = exports.globalMiddlewareFactory = void 0;
+const argsert_1 = require("./argsert");
+const is_promise_1 = require("./is-promise");
+function globalMiddlewareFactory(globalMiddleware, context) {
+    return function (callback, applyBeforeValidation = false) {
+        argsert_1.argsert('<array|function> [boolean]', [callback, applyBeforeValidation], arguments.length);
+        if (Array.isArray(callback)) {
+            for (let i = 0; i < callback.length; i++) {
+                if (typeof callback[i] !== 'function') {
+                    throw Error('middleware must be a function');
+                }
+                callback[i].applyBeforeValidation = applyBeforeValidation;
+            }
+            Array.prototype.push.apply(globalMiddleware, callback);
+        }
+        else if (typeof callback === 'function') {
+            callback.applyBeforeValidation = applyBeforeValidation;
+            globalMiddleware.push(callback);
+        }
+        return context;
+    };
+}
+exports.globalMiddlewareFactory = globalMiddlewareFactory;
+function commandMiddlewareFactory(commandMiddleware) {
+    if (!commandMiddleware)
+        return [];
+    return commandMiddleware.map(middleware => {
+        middleware.applyBeforeValidation = false;
+        return middleware;
+    });
+}
+exports.commandMiddlewareFactory = commandMiddlewareFactory;
+function applyMiddleware(argv, yargs, middlewares, beforeValidation) {
+    const beforeValidationError = new Error('middleware cannot return a promise when applyBeforeValidation is true');
+    return middlewares
+        .reduce((acc, middleware) => {
+        if (middleware.applyBeforeValidation !== beforeValidation) {
+            return acc;
+        }
+        if (is_promise_1.isPromise(acc)) {
+            return acc
+                .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))
+                .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));
+        }
+        else {
+            const result = middleware(acc, yargs);
+            if (beforeValidation && is_promise_1.isPromise(result))
+                throw beforeValidationError;
+            return is_promise_1.isPromise(result)
+                ? result.then(middlewareObj => Object.assign(acc, middlewareObj))
+                : Object.assign(acc, result);
+        }
+    }, argv);
+}
+exports.applyMiddleware = applyMiddleware;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.d.ts
new file mode 100644
index 0000000..031ae28
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.d.ts
@@ -0,0 +1 @@
+export declare function objFilter<T extends object>(original?: T, filter?: (k: keyof T, v: T[keyof T]) => boolean): T;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.js b/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.js
new file mode 100644
index 0000000..790f947
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/obj-filter.js
@@ -0,0 +1,14 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.objFilter = void 0;
+const common_types_1 = require("./common-types");
+function objFilter(original = {}, filter = () => true) {
+    const obj = {};
+    common_types_1.objectKeys(original).forEach((key) => {
+        if (filter(key, original[key])) {
+            obj[key] = original[key];
+        }
+    });
+    return obj;
+}
+exports.objFilter = objFilter;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.d.ts
new file mode 100644
index 0000000..fc57836
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.d.ts
@@ -0,0 +1,11 @@
+import { NotEmptyArray } from './common-types';
+export declare function parseCommand(cmd: string): ParsedCommand;
+export interface ParsedCommand {
+    cmd: string;
+    demanded: Positional[];
+    optional: Positional[];
+}
+export interface Positional {
+    cmd: NotEmptyArray<string>;
+    variadic: boolean;
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.js b/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.js
new file mode 100644
index 0000000..aaf2327
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/parse-command.js
@@ -0,0 +1,36 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.parseCommand = void 0;
+function parseCommand(cmd) {
+    const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ');
+    const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/);
+    const bregex = /\.*[\][<>]/g;
+    const firstCommand = splitCommand.shift();
+    if (!firstCommand)
+        throw new Error(`No command found in: ${cmd}`);
+    const parsedCommand = {
+        cmd: firstCommand.replace(bregex, ''),
+        demanded: [],
+        optional: []
+    };
+    splitCommand.forEach((cmd, i) => {
+        let variadic = false;
+        cmd = cmd.replace(/\s/g, '');
+        if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1)
+            variadic = true;
+        if (/^\[/.test(cmd)) {
+            parsedCommand.optional.push({
+                cmd: cmd.replace(bregex, '').split('|'),
+                variadic
+            });
+        }
+        else {
+            parsedCommand.demanded.push({
+                cmd: cmd.replace(bregex, '').split('|'),
+                variadic
+            });
+        }
+    });
+    return parsedCommand;
+}
+exports.parseCommand = parseCommand;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.d.ts
new file mode 100644
index 0000000..18fd43b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.d.ts
@@ -0,0 +1,2 @@
+export declare function getProcessArgvWithoutBin(): string[];
+export declare function getProcessArgvBin(): string;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.js b/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.js
new file mode 100644
index 0000000..a9201dd
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/process-argv.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getProcessArgvBin = exports.getProcessArgvWithoutBin = void 0;
+function getProcessArgvBinIndex() {
+    // The binary name is the first command line argument for:
+    // - bundled Electron apps: bin argv1 argv2 ... argvn
+    if (isBundledElectronApp())
+        return 0;
+    // or the second one (default) for:
+    // - standard node apps: node bin.js argv1 argv2 ... argvn
+    // - unbundled Electron apps: electron bin.js argv1 arg2 ... argvn
+    return 1;
+}
+function isBundledElectronApp() {
+    // process.defaultApp is either set by electron in an electron unbundled app, or undefined
+    // see https://github.com/electron/electron/blob/master/docs/api/process.md#processdefaultapp-readonly
+    return isElectronApp() && !process.defaultApp;
+}
+function isElectronApp() {
+    // process.versions.electron is either set by electron, or undefined
+    // see https://github.com/electron/electron/blob/master/docs/api/process.md#processversionselectron-readonly
+    return !!process.versions.electron;
+}
+function getProcessArgvWithoutBin() {
+    return process.argv.slice(getProcessArgvBinIndex() + 1);
+}
+exports.getProcessArgvWithoutBin = getProcessArgvWithoutBin;
+function getProcessArgvBin() {
+    return process.argv[getProcessArgvBinIndex()];
+}
+exports.getProcessArgvBin = getProcessArgvBin;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/usage.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/usage.d.ts
new file mode 100644
index 0000000..d9dd1fa
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/usage.d.ts
@@ -0,0 +1,49 @@
+import { Dictionary } from './common-types';
+import { YargsInstance } from './yargs';
+import { YError } from './yerror';
+import { Y18N } from 'y18n';
+export declare function usage(yargs: YargsInstance, y18n: Y18N): UsageInstance;
+/** Instance of the usage module. */
+export interface UsageInstance {
+    cacheHelpMessage(): void;
+    clearCachedHelpMessage(): void;
+    command(cmd: string, description: string | undefined, isDefault: boolean, aliases: string[], deprecated?: boolean): void;
+    deferY18nLookup(str: string): string;
+    describe(keys: string | string[] | Dictionary<string>, desc?: string): void;
+    epilog(msg: string): void;
+    example(cmd: string, description?: string): void;
+    fail(msg?: string | null, err?: YError | string): void;
+    failFn(f: FailureFunction): void;
+    freeze(): void;
+    functionDescription(fn: {
+        name?: string;
+    }): string;
+    getCommands(): [string, string, boolean, string[], boolean][];
+    getDescriptions(): Dictionary<string | undefined>;
+    getPositionalGroupName(): string;
+    getUsage(): [string, string][];
+    getUsageDisabled(): boolean;
+    help(): string;
+    reset(localLookup: Dictionary<boolean>): UsageInstance;
+    showHelp(level: 'error' | 'log' | ((message: string) => void)): void;
+    showHelpOnFail(enabled?: boolean | string, message?: string): UsageInstance;
+    showVersion(): void;
+    stringifiedValues(values?: any[], separator?: string): string;
+    unfreeze(): void;
+    usage(msg: string | null, description?: string | false): UsageInstance;
+    version(ver: any): void;
+    wrap(cols: number | null | undefined): void;
+}
+export interface FailureFunction {
+    (msg: string | undefined | null, err: YError | string | undefined, usage: UsageInstance): void;
+}
+export interface FrozenUsageInstance {
+    failMessage: string | undefined | null;
+    failureOutput: boolean;
+    usages: [string, string][];
+    usageDisabled: boolean;
+    epilogs: string[];
+    examples: [string, string][];
+    commands: [string, string, boolean, string[], boolean][];
+    descriptions: Dictionary<string | undefined>;
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/usage.js b/node_modules/jest-circus/node_modules/yargs/build/lib/usage.js
new file mode 100644
index 0000000..73f7b24
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/usage.js
@@ -0,0 +1,540 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.usage = void 0;
+// this file handles outputting usage instructions,
+// failures, etc. keeps logging in one place.
+const common_types_1 = require("./common-types");
+const obj_filter_1 = require("./obj-filter");
+const path = require("path");
+const yerror_1 = require("./yerror");
+const decamelize = require("decamelize");
+const setBlocking = require("set-blocking");
+const stringWidth = require("string-width");
+function usage(yargs, y18n) {
+    const __ = y18n.__;
+    const self = {};
+    // methods for ouputting/building failure message.
+    const fails = [];
+    self.failFn = function failFn(f) {
+        fails.push(f);
+    };
+    let failMessage = null;
+    let showHelpOnFail = true;
+    self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {
+        function parseFunctionArgs() {
+            return typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];
+        }
+        const [enabled, message] = parseFunctionArgs();
+        failMessage = message;
+        showHelpOnFail = enabled;
+        return self;
+    };
+    let failureOutput = false;
+    self.fail = function fail(msg, err) {
+        const logger = yargs._getLoggerInstance();
+        if (fails.length) {
+            for (let i = fails.length - 1; i >= 0; --i) {
+                fails[i](msg, err, self);
+            }
+        }
+        else {
+            if (yargs.getExitProcess())
+                setBlocking(true);
+            // don't output failure message more than once
+            if (!failureOutput) {
+                failureOutput = true;
+                if (showHelpOnFail) {
+                    yargs.showHelp('error');
+                    logger.error();
+                }
+                if (msg || err)
+                    logger.error(msg || err);
+                if (failMessage) {
+                    if (msg || err)
+                        logger.error('');
+                    logger.error(failMessage);
+                }
+            }
+            err = err || new yerror_1.YError(msg);
+            if (yargs.getExitProcess()) {
+                return yargs.exit(1);
+            }
+            else if (yargs._hasParseCallback()) {
+                return yargs.exit(1, err);
+            }
+            else {
+                throw err;
+            }
+        }
+    };
+    // methods for ouputting/building help (usage) message.
+    let usages = [];
+    let usageDisabled = false;
+    self.usage = (msg, description) => {
+        if (msg === null) {
+            usageDisabled = true;
+            usages = [];
+            return self;
+        }
+        usageDisabled = false;
+        usages.push([msg, description || '']);
+        return self;
+    };
+    self.getUsage = () => {
+        return usages;
+    };
+    self.getUsageDisabled = () => {
+        return usageDisabled;
+    };
+    self.getPositionalGroupName = () => {
+        return __('Positionals:');
+    };
+    let examples = [];
+    self.example = (cmd, description) => {
+        examples.push([cmd, description || '']);
+    };
+    let commands = [];
+    self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {
+        // the last default wins, so cancel out any previously set default
+        if (isDefault) {
+            commands = commands.map((cmdArray) => {
+                cmdArray[2] = false;
+                return cmdArray;
+            });
+        }
+        commands.push([cmd, description || '', isDefault, aliases, deprecated]);
+    };
+    self.getCommands = () => commands;
+    let descriptions = {};
+    self.describe = function describe(keyOrKeys, desc) {
+        if (Array.isArray(keyOrKeys)) {
+            keyOrKeys.forEach((k) => {
+                self.describe(k, desc);
+            });
+        }
+        else if (typeof keyOrKeys === 'object') {
+            Object.keys(keyOrKeys).forEach((k) => {
+                self.describe(k, keyOrKeys[k]);
+            });
+        }
+        else {
+            descriptions[keyOrKeys] = desc;
+        }
+    };
+    self.getDescriptions = () => descriptions;
+    let epilogs = [];
+    self.epilog = (msg) => {
+        epilogs.push(msg);
+    };
+    let wrapSet = false;
+    let wrap;
+    self.wrap = (cols) => {
+        wrapSet = true;
+        wrap = cols;
+    };
+    function getWrap() {
+        if (!wrapSet) {
+            wrap = windowWidth();
+            wrapSet = true;
+        }
+        return wrap;
+    }
+    const deferY18nLookupPrefix = '__yargsString__:';
+    self.deferY18nLookup = str => deferY18nLookupPrefix + str;
+    self.help = function help() {
+        if (cachedHelpMessage)
+            return cachedHelpMessage;
+        normalizeAliases();
+        // handle old demanded API
+        const base$0 = yargs.customScriptName ? yargs.$0 : path.basename(yargs.$0);
+        const demandedOptions = yargs.getDemandedOptions();
+        const demandedCommands = yargs.getDemandedCommands();
+        const deprecatedOptions = yargs.getDeprecatedOptions();
+        const groups = yargs.getGroups();
+        const options = yargs.getOptions();
+        let keys = [];
+        keys = keys.concat(Object.keys(descriptions));
+        keys = keys.concat(Object.keys(demandedOptions));
+        keys = keys.concat(Object.keys(demandedCommands));
+        keys = keys.concat(Object.keys(options.default));
+        keys = keys.filter(filterHiddenOptions);
+        keys = Object.keys(keys.reduce((acc, key) => {
+            if (key !== '_')
+                acc[key] = true;
+            return acc;
+        }, {}));
+        const theWrap = getWrap();
+        const ui = require('cliui')({
+            width: theWrap,
+            wrap: !!theWrap
+        });
+        // the usage string.
+        if (!usageDisabled) {
+            if (usages.length) {
+                // user-defined usage.
+                usages.forEach((usage) => {
+                    ui.div(`${usage[0].replace(/\$0/g, base$0)}`);
+                    if (usage[1]) {
+                        ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });
+                    }
+                });
+                ui.div();
+            }
+            else if (commands.length) {
+                let u = null;
+                // demonstrate how commands are used.
+                if (demandedCommands._) {
+                    u = `${base$0} <${__('command')}>\n`;
+                }
+                else {
+                    u = `${base$0} [${__('command')}]\n`;
+                }
+                ui.div(`${u}`);
+            }
+        }
+        // your application's commands, i.e., non-option
+        // arguments populated in '_'.
+        if (commands.length) {
+            ui.div(__('Commands:'));
+            const context = yargs.getContext();
+            const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : '';
+            if (yargs.getParserConfiguration()['sort-commands'] === true) {
+                commands = commands.sort((a, b) => a[0].localeCompare(b[0]));
+            }
+            commands.forEach((command) => {
+                const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}`; // drop $0 from default commands.
+                ui.span({
+                    text: commandString,
+                    padding: [0, 2, 0, 2],
+                    width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
+                }, { text: command[1] });
+                const hints = [];
+                if (command[2])
+                    hints.push(`[${__('default')}]`);
+                if (command[3] && command[3].length) {
+                    hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);
+                }
+                if (command[4]) {
+                    if (typeof command[4] === 'string') {
+                        hints.push(`[${__('deprecated: %s', command[4])}]`);
+                    }
+                    else {
+                        hints.push(`[${__('deprecated')}]`);
+                    }
+                }
+                if (hints.length) {
+                    ui.div({ text: hints.join(' '), padding: [0, 0, 0, 2], align: 'right' });
+                }
+                else {
+                    ui.div();
+                }
+            });
+            ui.div();
+        }
+        // perform some cleanup on the keys array, making it
+        // only include top-level keys not their aliases.
+        const aliasKeys = (Object.keys(options.alias) || [])
+            .concat(Object.keys(yargs.parsed.newAliases) || []);
+        keys = keys.filter(key => !yargs.parsed.newAliases[key] && aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));
+        // populate 'Options:' group with any keys that have not
+        // explicitly had a group set.
+        const defaultGroup = __('Options:');
+        if (!groups[defaultGroup])
+            groups[defaultGroup] = [];
+        addUngroupedKeys(keys, options.alias, groups, defaultGroup);
+        // display 'Options:' table along with any custom tables:
+        Object.keys(groups).forEach((groupName) => {
+            if (!groups[groupName].length)
+                return;
+            // if we've grouped the key 'f', but 'f' aliases 'foobar',
+            // normalizedKeys should contain only 'foobar'.
+            const normalizedKeys = groups[groupName].filter(filterHiddenOptions).map((key) => {
+                if (~aliasKeys.indexOf(key))
+                    return key;
+                for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {
+                    if (~(options.alias[aliasKey] || []).indexOf(key))
+                        return aliasKey;
+                }
+                return key;
+            });
+            if (normalizedKeys.length < 1)
+                return;
+            ui.div(groupName);
+            // actually generate the switches string --foo, -f, --bar.
+            const switches = normalizedKeys.reduce((acc, key) => {
+                acc[key] = [key].concat(options.alias[key] || [])
+                    .map(sw => {
+                    // for the special positional group don't
+                    // add '--' or '-' prefix.
+                    if (groupName === self.getPositionalGroupName())
+                        return sw;
+                    else {
+                        return (
+                        // matches yargs-parser logic in which single-digits
+                        // aliases declared with a boolean type are now valid
+                        /^[0-9]$/.test(sw)
+                            ? ~options.boolean.indexOf(key) ? '-' : '--'
+                            : sw.length > 1 ? '--' : '-') + sw;
+                    }
+                })
+                    .join(', ');
+                return acc;
+            }, {});
+            normalizedKeys.forEach((key) => {
+                const kswitch = switches[key];
+                let desc = descriptions[key] || '';
+                let type = null;
+                if (~desc.lastIndexOf(deferY18nLookupPrefix))
+                    desc = __(desc.substring(deferY18nLookupPrefix.length));
+                if (~options.boolean.indexOf(key))
+                    type = `[${__('boolean')}]`;
+                if (~options.count.indexOf(key))
+                    type = `[${__('count')}]`;
+                if (~options.string.indexOf(key))
+                    type = `[${__('string')}]`;
+                if (~options.normalize.indexOf(key))
+                    type = `[${__('string')}]`;
+                if (~options.array.indexOf(key))
+                    type = `[${__('array')}]`;
+                if (~options.number.indexOf(key))
+                    type = `[${__('number')}]`;
+                const deprecatedExtra = (deprecated) => typeof deprecated === 'string'
+                    ? `[${__('deprecated: %s', deprecated)}]`
+                    : `[${__('deprecated')}]`;
+                const extra = [
+                    (key in deprecatedOptions) ? deprecatedExtra(deprecatedOptions[key]) : null,
+                    type,
+                    (key in demandedOptions) ? `[${__('required')}]` : null,
+                    options.choices && options.choices[key] ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]` : null,
+                    defaultString(options.default[key], options.defaultDescription[key])
+                ].filter(Boolean).join(' ');
+                ui.span({ text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4 }, desc);
+                if (extra)
+                    ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });
+                else
+                    ui.div();
+            });
+            ui.div();
+        });
+        // describe some common use-cases for your application.
+        if (examples.length) {
+            ui.div(__('Examples:'));
+            examples.forEach((example) => {
+                example[0] = example[0].replace(/\$0/g, base$0);
+            });
+            examples.forEach((example) => {
+                if (example[1] === '') {
+                    ui.div({
+                        text: example[0],
+                        padding: [0, 2, 0, 2]
+                    });
+                }
+                else {
+                    ui.div({
+                        text: example[0],
+                        padding: [0, 2, 0, 2],
+                        width: maxWidth(examples, theWrap) + 4
+                    }, {
+                        text: example[1]
+                    });
+                }
+            });
+            ui.div();
+        }
+        // the usage string.
+        if (epilogs.length > 0) {
+            const e = epilogs.map(epilog => epilog.replace(/\$0/g, base$0)).join('\n');
+            ui.div(`${e}\n`);
+        }
+        // Remove the trailing white spaces
+        return ui.toString().replace(/\s*$/, '');
+    };
+    // return the maximum width of a string
+    // in the left-hand column of a table.
+    function maxWidth(table, theWrap, modifier) {
+        let width = 0;
+        // table might be of the form [leftColumn],
+        // or {key: leftColumn}
+        if (!Array.isArray(table)) {
+            table = Object.values(table).map(v => [v]);
+        }
+        table.forEach((v) => {
+            width = Math.max(stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]), width);
+        });
+        // if we've enabled 'wrap' we should limit
+        // the max-width of the left-column.
+        if (theWrap)
+            width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));
+        return width;
+    }
+    // make sure any options set for aliases,
+    // are copied to the keys being aliased.
+    function normalizeAliases() {
+        // handle old demanded API
+        const demandedOptions = yargs.getDemandedOptions();
+        const options = yargs.getOptions();
+        (Object.keys(options.alias) || []).forEach((key) => {
+            options.alias[key].forEach((alias) => {
+                // copy descriptions.
+                if (descriptions[alias])
+                    self.describe(key, descriptions[alias]);
+                // copy demanded.
+                if (alias in demandedOptions)
+                    yargs.demandOption(key, demandedOptions[alias]);
+                // type messages.
+                if (~options.boolean.indexOf(alias))
+                    yargs.boolean(key);
+                if (~options.count.indexOf(alias))
+                    yargs.count(key);
+                if (~options.string.indexOf(alias))
+                    yargs.string(key);
+                if (~options.normalize.indexOf(alias))
+                    yargs.normalize(key);
+                if (~options.array.indexOf(alias))
+                    yargs.array(key);
+                if (~options.number.indexOf(alias))
+                    yargs.number(key);
+            });
+        });
+    }
+    // if yargs is executing an async handler, we take a snapshot of the
+    // help message to display on failure:
+    let cachedHelpMessage;
+    self.cacheHelpMessage = function () {
+        cachedHelpMessage = this.help();
+    };
+    // however this snapshot must be cleared afterwards
+    // not to be be used by next calls to parse
+    self.clearCachedHelpMessage = function () {
+        cachedHelpMessage = undefined;
+    };
+    // given a set of keys, place any keys that are
+    // ungrouped under the 'Options:' grouping.
+    function addUngroupedKeys(keys, aliases, groups, defaultGroup) {
+        let groupedKeys = [];
+        let toCheck = null;
+        Object.keys(groups).forEach((group) => {
+            groupedKeys = groupedKeys.concat(groups[group]);
+        });
+        keys.forEach((key) => {
+            toCheck = [key].concat(aliases[key]);
+            if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {
+                groups[defaultGroup].push(key);
+            }
+        });
+        return groupedKeys;
+    }
+    function filterHiddenOptions(key) {
+        return yargs.getOptions().hiddenOptions.indexOf(key) < 0 || yargs.parsed.argv[yargs.getOptions().showHiddenOpt];
+    }
+    self.showHelp = (level) => {
+        const logger = yargs._getLoggerInstance();
+        if (!level)
+            level = 'error';
+        const emit = typeof level === 'function' ? level : logger[level];
+        emit(self.help());
+    };
+    self.functionDescription = (fn) => {
+        const description = fn.name ? decamelize(fn.name, '-') : __('generated-value');
+        return ['(', description, ')'].join('');
+    };
+    self.stringifiedValues = function stringifiedValues(values, separator) {
+        let string = '';
+        const sep = separator || ', ';
+        const array = [].concat(values);
+        if (!values || !array.length)
+            return string;
+        array.forEach((value) => {
+            if (string.length)
+                string += sep;
+            string += JSON.stringify(value);
+        });
+        return string;
+    };
+    // format the default-value-string displayed in
+    // the right-hand column.
+    function defaultString(value, defaultDescription) {
+        let string = `[${__('default:')} `;
+        if (value === undefined && !defaultDescription)
+            return null;
+        if (defaultDescription) {
+            string += defaultDescription;
+        }
+        else {
+            switch (typeof value) {
+                case 'string':
+                    string += `"${value}"`;
+                    break;
+                case 'object':
+                    string += JSON.stringify(value);
+                    break;
+                default:
+                    string += value;
+            }
+        }
+        return `${string}]`;
+    }
+    // guess the width of the console window, max-width 80.
+    function windowWidth() {
+        const maxWidth = 80;
+        // CI is not a TTY
+        /* c8 ignore next 2 */
+        if (typeof process === 'object' && process.stdout && process.stdout.columns) {
+            return Math.min(maxWidth, process.stdout.columns);
+        }
+        else {
+            return maxWidth;
+        }
+    }
+    // logic for displaying application version.
+    let version = null;
+    self.version = (ver) => {
+        version = ver;
+    };
+    self.showVersion = () => {
+        const logger = yargs._getLoggerInstance();
+        logger.log(version);
+    };
+    self.reset = function reset(localLookup) {
+        // do not reset wrap here
+        // do not reset fails here
+        failMessage = null;
+        failureOutput = false;
+        usages = [];
+        usageDisabled = false;
+        epilogs = [];
+        examples = [];
+        commands = [];
+        descriptions = obj_filter_1.objFilter(descriptions, k => !localLookup[k]);
+        return self;
+    };
+    const frozens = [];
+    self.freeze = function freeze() {
+        frozens.push({
+            failMessage,
+            failureOutput,
+            usages,
+            usageDisabled,
+            epilogs,
+            examples,
+            commands,
+            descriptions
+        });
+    };
+    self.unfreeze = function unfreeze() {
+        const frozen = frozens.pop();
+        common_types_1.assertNotStrictEqual(frozen, undefined);
+        ({
+            failMessage,
+            failureOutput,
+            usages,
+            usageDisabled,
+            epilogs,
+            examples,
+            commands,
+            descriptions
+        } = frozen);
+    };
+    return self;
+}
+exports.usage = usage;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/validation.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/validation.d.ts
new file mode 100644
index 0000000..e2d7854
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/validation.d.ts
@@ -0,0 +1,34 @@
+import { Dictionary } from './common-types';
+import { UsageInstance } from './usage';
+import { YargsInstance, Arguments } from './yargs';
+import { DetailedArguments } from 'yargs-parser';
+import { Y18N } from 'y18n';
+export declare function validation(yargs: YargsInstance, usage: UsageInstance, y18n: Y18N): ValidationInstance;
+/** Instance of the validation module. */
+export interface ValidationInstance {
+    check(f: CustomCheck['func'], global: boolean): void;
+    conflicting(argv: Arguments): void;
+    conflicts(key: string | Dictionary<string | string[]>, value?: string | string[]): void;
+    customChecks(argv: Arguments, aliases: DetailedArguments['aliases']): void;
+    freeze(): void;
+    getConflicting(): Dictionary<(string | undefined)[]>;
+    getImplied(): Dictionary<KeyOrPos[]>;
+    implications(argv: Arguments): void;
+    implies(key: string | Dictionary<KeyOrPos | KeyOrPos[]>, value?: KeyOrPos | KeyOrPos[]): void;
+    isValidAndSomeAliasIsNotNew(key: string, aliases: DetailedArguments['aliases']): boolean;
+    limitedChoices(argv: Arguments): void;
+    nonOptionCount(argv: Arguments): void;
+    positionalCount(required: number, observed: number): void;
+    recommendCommands(cmd: string, potentialCommands: string[]): void;
+    requiredArguments(argv: Arguments): void;
+    reset(localLookup: Dictionary): ValidationInstance;
+    unfreeze(): void;
+    unknownArguments(argv: Arguments, aliases: DetailedArguments['aliases'], positionalMap: Dictionary, isDefaultCommand: boolean): void;
+    unknownCommands(argv: Arguments): boolean;
+}
+interface CustomCheck {
+    func: (argv: Arguments, aliases: DetailedArguments['aliases']) => any;
+    global: boolean;
+}
+export declare type KeyOrPos = string | number;
+export {};
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/validation.js b/node_modules/jest-circus/node_modules/yargs/build/lib/validation.js
new file mode 100644
index 0000000..60c5e43
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/validation.js
@@ -0,0 +1,330 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.validation = void 0;
+const argsert_1 = require("./argsert");
+const common_types_1 = require("./common-types");
+const levenshtein_1 = require("./levenshtein");
+const obj_filter_1 = require("./obj-filter");
+const specialKeys = ['$0', '--', '_'];
+// validation-type-stuff, missing params,
+// bad implications, custom checks.
+function validation(yargs, usage, y18n) {
+    const __ = y18n.__;
+    const __n = y18n.__n;
+    const self = {};
+    // validate appropriate # of non-option
+    // arguments were provided, i.e., '_'.
+    self.nonOptionCount = function nonOptionCount(argv) {
+        const demandedCommands = yargs.getDemandedCommands();
+        // don't count currently executing commands
+        const _s = argv._.length - yargs.getContext().commands.length;
+        if (demandedCommands._ && (_s < demandedCommands._.min || _s > demandedCommands._.max)) {
+            if (_s < demandedCommands._.min) {
+                if (demandedCommands._.minMsg !== undefined) {
+                    usage.fail(
+                    // replace $0 with observed, $1 with expected.
+                    demandedCommands._.minMsg
+                        ? demandedCommands._.minMsg.replace(/\$0/g, _s.toString()).replace(/\$1/, demandedCommands._.min.toString())
+                        : null);
+                }
+                else {
+                    usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s, demandedCommands._.min));
+                }
+            }
+            else if (_s > demandedCommands._.max) {
+                if (demandedCommands._.maxMsg !== undefined) {
+                    usage.fail(
+                    // replace $0 with observed, $1 with expected.
+                    demandedCommands._.maxMsg
+                        ? demandedCommands._.maxMsg.replace(/\$0/g, _s.toString()).replace(/\$1/, demandedCommands._.max.toString())
+                        : null);
+                }
+                else {
+                    usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s, demandedCommands._.max));
+                }
+            }
+        }
+    };
+    // validate the appropriate # of <required>
+    // positional arguments were provided:
+    self.positionalCount = function positionalCount(required, observed) {
+        if (observed < required) {
+            usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed, required));
+        }
+    };
+    // make sure all the required arguments are present.
+    self.requiredArguments = function requiredArguments(argv) {
+        const demandedOptions = yargs.getDemandedOptions();
+        let missing = null;
+        for (const key of Object.keys(demandedOptions)) {
+            if (!Object.prototype.hasOwnProperty.call(argv, key) || typeof argv[key] === 'undefined') {
+                missing = missing || {};
+                missing[key] = demandedOptions[key];
+            }
+        }
+        if (missing) {
+            const customMsgs = [];
+            for (const key of Object.keys(missing)) {
+                const msg = missing[key];
+                if (msg && customMsgs.indexOf(msg) < 0) {
+                    customMsgs.push(msg);
+                }
+            }
+            const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : '';
+            usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));
+        }
+    };
+    // check for unknown arguments (strict-mode).
+    self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand) {
+        const commandKeys = yargs.getCommandInstance().getCommands();
+        const unknown = [];
+        const currentContext = yargs.getContext();
+        Object.keys(argv).forEach((key) => {
+            if (specialKeys.indexOf(key) === -1 &&
+                !Object.prototype.hasOwnProperty.call(positionalMap, key) &&
+                !Object.prototype.hasOwnProperty.call(yargs._getParseContext(), key) &&
+                !self.isValidAndSomeAliasIsNotNew(key, aliases)) {
+                unknown.push(key);
+            }
+        });
+        if ((currentContext.commands.length > 0) || (commandKeys.length > 0) || isDefaultCommand) {
+            argv._.slice(currentContext.commands.length).forEach((key) => {
+                if (commandKeys.indexOf(key) === -1) {
+                    unknown.push(key);
+                }
+            });
+        }
+        if (unknown.length > 0) {
+            usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.join(', ')));
+        }
+    };
+    self.unknownCommands = function unknownCommands(argv) {
+        const commandKeys = yargs.getCommandInstance().getCommands();
+        const unknown = [];
+        const currentContext = yargs.getContext();
+        if ((currentContext.commands.length > 0) || (commandKeys.length > 0)) {
+            argv._.slice(currentContext.commands.length).forEach((key) => {
+                if (commandKeys.indexOf(key) === -1) {
+                    unknown.push(key);
+                }
+            });
+        }
+        if (unknown.length > 0) {
+            usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));
+            return true;
+        }
+        else {
+            return false;
+        }
+    };
+    // check for a key that is not an alias, or for which every alias is new,
+    // implying that it was invented by the parser, e.g., during camelization
+    self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {
+        if (!Object.prototype.hasOwnProperty.call(aliases, key)) {
+            return false;
+        }
+        const newAliases = yargs.parsed.newAliases;
+        for (const a of [key, ...aliases[key]]) {
+            if (!Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]) {
+                return true;
+            }
+        }
+        return false;
+    };
+    // validate arguments limited to enumerated choices
+    self.limitedChoices = function limitedChoices(argv) {
+        const options = yargs.getOptions();
+        const invalid = {};
+        if (!Object.keys(options.choices).length)
+            return;
+        Object.keys(argv).forEach((key) => {
+            if (specialKeys.indexOf(key) === -1 &&
+                Object.prototype.hasOwnProperty.call(options.choices, key)) {
+                [].concat(argv[key]).forEach((value) => {
+                    // TODO case-insensitive configurability
+                    if (options.choices[key].indexOf(value) === -1 &&
+                        value !== undefined) {
+                        invalid[key] = (invalid[key] || []).concat(value);
+                    }
+                });
+            }
+        });
+        const invalidKeys = Object.keys(invalid);
+        if (!invalidKeys.length)
+            return;
+        let msg = __('Invalid values:');
+        invalidKeys.forEach((key) => {
+            msg += `\n  ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;
+        });
+        usage.fail(msg);
+    };
+    // custom checks, added using the `check` option on yargs.
+    let checks = [];
+    self.check = function check(f, global) {
+        checks.push({
+            func: f,
+            global
+        });
+    };
+    self.customChecks = function customChecks(argv, aliases) {
+        for (let i = 0, f; (f = checks[i]) !== undefined; i++) {
+            const func = f.func;
+            let result = null;
+            try {
+                result = func(argv, aliases);
+            }
+            catch (err) {
+                usage.fail(err.message ? err.message : err, err);
+                continue;
+            }
+            if (!result) {
+                usage.fail(__('Argument check failed: %s', func.toString()));
+            }
+            else if (typeof result === 'string' || result instanceof Error) {
+                usage.fail(result.toString(), result);
+            }
+        }
+    };
+    // check implications, argument foo implies => argument bar.
+    let implied = {};
+    self.implies = function implies(key, value) {
+        argsert_1.argsert('<string|object> [array|number|string]', [key, value], arguments.length);
+        if (typeof key === 'object') {
+            Object.keys(key).forEach((k) => {
+                self.implies(k, key[k]);
+            });
+        }
+        else {
+            yargs.global(key);
+            if (!implied[key]) {
+                implied[key] = [];
+            }
+            if (Array.isArray(value)) {
+                value.forEach((i) => self.implies(key, i));
+            }
+            else {
+                common_types_1.assertNotStrictEqual(value, undefined);
+                implied[key].push(value);
+            }
+        }
+    };
+    self.getImplied = function getImplied() {
+        return implied;
+    };
+    function keyExists(argv, val) {
+        // convert string '1' to number 1
+        const num = Number(val);
+        val = isNaN(num) ? val : num;
+        if (typeof val === 'number') {
+            // check length of argv._
+            val = argv._.length >= val;
+        }
+        else if (val.match(/^--no-.+/)) {
+            // check if key/value doesn't exist
+            val = val.match(/^--no-(.+)/)[1];
+            val = !argv[val];
+        }
+        else {
+            // check if key/value exists
+            val = argv[val];
+        }
+        return val;
+    }
+    self.implications = function implications(argv) {
+        const implyFail = [];
+        Object.keys(implied).forEach((key) => {
+            const origKey = key;
+            (implied[key] || []).forEach((value) => {
+                let key = origKey;
+                const origValue = value;
+                key = keyExists(argv, key);
+                value = keyExists(argv, value);
+                if (key && !value) {
+                    implyFail.push(` ${origKey} -> ${origValue}`);
+                }
+            });
+        });
+        if (implyFail.length) {
+            let msg = `${__('Implications failed:')}\n`;
+            implyFail.forEach((value) => {
+                msg += (value);
+            });
+            usage.fail(msg);
+        }
+    };
+    let conflicting = {};
+    self.conflicts = function conflicts(key, value) {
+        argsert_1.argsert('<string|object> [array|string]', [key, value], arguments.length);
+        if (typeof key === 'object') {
+            Object.keys(key).forEach((k) => {
+                self.conflicts(k, key[k]);
+            });
+        }
+        else {
+            yargs.global(key);
+            if (!conflicting[key]) {
+                conflicting[key] = [];
+            }
+            if (Array.isArray(value)) {
+                value.forEach((i) => self.conflicts(key, i));
+            }
+            else {
+                conflicting[key].push(value);
+            }
+        }
+    };
+    self.getConflicting = () => conflicting;
+    self.conflicting = function conflictingFn(argv) {
+        Object.keys(argv).forEach((key) => {
+            if (conflicting[key]) {
+                conflicting[key].forEach((value) => {
+                    // we default keys to 'undefined' that have been configured, we should not
+                    // apply conflicting check unless they are a value other than 'undefined'.
+                    if (value && argv[key] !== undefined && argv[value] !== undefined) {
+                        usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));
+                    }
+                });
+            }
+        });
+    };
+    self.recommendCommands = function recommendCommands(cmd, potentialCommands) {
+        const threshold = 3; // if it takes more than three edits, let's move on.
+        potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);
+        let recommended = null;
+        let bestDistance = Infinity;
+        for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {
+            const d = levenshtein_1.levenshtein(cmd, candidate);
+            if (d <= threshold && d < bestDistance) {
+                bestDistance = d;
+                recommended = candidate;
+            }
+        }
+        if (recommended)
+            usage.fail(__('Did you mean %s?', recommended));
+    };
+    self.reset = function reset(localLookup) {
+        implied = obj_filter_1.objFilter(implied, k => !localLookup[k]);
+        conflicting = obj_filter_1.objFilter(conflicting, k => !localLookup[k]);
+        checks = checks.filter(c => c.global);
+        return self;
+    };
+    const frozens = [];
+    self.freeze = function freeze() {
+        frozens.push({
+            implied,
+            checks,
+            conflicting
+        });
+    };
+    self.unfreeze = function unfreeze() {
+        const frozen = frozens.pop();
+        common_types_1.assertNotStrictEqual(frozen, undefined);
+        ({
+            implied,
+            checks,
+            conflicting
+        } = frozen);
+    };
+    return self;
+}
+exports.validation = validation;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.d.ts
new file mode 100644
index 0000000..8e6e27c
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.d.ts
@@ -0,0 +1,274 @@
+/// <reference types="node" />
+import { CommandInstance, CommandHandler, CommandBuilderDefinition, CommandBuilder, CommandHandlerCallback, FinishCommandHandler } from './command';
+import { Dictionary } from './common-types';
+import { Arguments as ParserArguments, DetailedArguments as ParserDetailedArguments, Configuration as ParserConfiguration, Options as ParserOptions, ConfigCallback, CoerceCallback } from 'yargs-parser';
+import { YError } from './yerror';
+import { UsageInstance, FailureFunction } from './usage';
+import { CompletionFunction } from './completion';
+import { ValidationInstance, KeyOrPos } from './validation';
+import { Y18N } from 'y18n';
+import { MiddlewareCallback, Middleware } from './middleware';
+import { RequireDirectoryOptions } from 'require-directory';
+export declare function Yargs(processArgs?: string | string[], cwd?: string, parentRequire?: NodeRequire): YargsInstance;
+export declare function rebase(base: string, dir: string): string;
+/** Instance of the yargs module. */
+export interface YargsInstance {
+    $0: string;
+    argv: Arguments;
+    customScriptName: boolean;
+    parsed: DetailedArguments | false;
+    _copyDoubleDash<T extends Arguments | Promise<Arguments>>(argv: T): T;
+    _getLoggerInstance(): LoggerInstance;
+    _getParseContext(): Object;
+    _hasOutput(): boolean;
+    _hasParseCallback(): boolean;
+    _parseArgs: {
+        (args: null, shortCircuit: null, _calledFromCommand: boolean, commandIndex?: number): Arguments | Promise<Arguments>;
+        (args: string | string[], shortCircuit?: boolean): Arguments | Promise<Arguments>;
+    };
+    _runValidation(argv: Arguments, aliases: Dictionary<string[]>, positionalMap: Dictionary<string[]>, parseErrors: Error | null, isDefaultCommand?: boolean): void;
+    _setHasOutput(): void;
+    addHelpOpt: {
+        (opt?: string | false): YargsInstance;
+        (opt?: string, msg?: string): YargsInstance;
+    };
+    addShowHiddenOpt: {
+        (opt?: string | false): YargsInstance;
+        (opt?: string, msg?: string): YargsInstance;
+    };
+    alias: {
+        (keys: string | string[], aliases: string | string[]): YargsInstance;
+        (keyAliases: Dictionary<string | string[]>): YargsInstance;
+    };
+    array(keys: string | string[]): YargsInstance;
+    boolean(keys: string | string[]): YargsInstance;
+    check(f: (argv: Arguments, aliases: Dictionary<string[]>) => any, _global?: boolean): YargsInstance;
+    choices: {
+        (keys: string | string[], choices: string | string[]): YargsInstance;
+        (keyChoices: Dictionary<string | string[]>): YargsInstance;
+    };
+    coerce: {
+        (keys: string | string[], coerceCallback: CoerceCallback): YargsInstance;
+        (keyCoerceCallbacks: Dictionary<CoerceCallback>): YargsInstance;
+    };
+    command(cmd: string | string[], description: CommandHandler['description'], builder?: CommandBuilderDefinition | CommandBuilder, handler?: CommandHandlerCallback, commandMiddleware?: Middleware[], deprecated?: boolean): YargsInstance;
+    commandDir(dir: string, opts?: RequireDirectoryOptions<any>): YargsInstance;
+    completion: {
+        (cmd?: string, fn?: CompletionFunction): YargsInstance;
+        (cmd?: string, desc?: string | false, fn?: CompletionFunction): YargsInstance;
+    };
+    config: {
+        (config: Dictionary): YargsInstance;
+        (keys?: string | string[], configCallback?: ConfigCallback): YargsInstance;
+        (keys?: string | string[], msg?: string, configCallback?: ConfigCallback): YargsInstance;
+    };
+    conflicts: {
+        (key: string, conflictsWith: string | string[]): YargsInstance;
+        (keyConflicts: Dictionary<string | string[]>): YargsInstance;
+    };
+    count(keys: string | string[]): YargsInstance;
+    default: {
+        (key: string, value: any, defaultDescription?: string): YargsInstance;
+        (keys: string[], value: Exclude<any, Function>): YargsInstance;
+        (keys: Dictionary<any>): YargsInstance;
+    };
+    defaults: YargsInstance['default'];
+    demand: {
+        (min: number, max?: number | string, msg?: string): YargsInstance;
+        (keys: string | string[], msg?: string | true): YargsInstance;
+        (keys: string | string[], max: string[], msg?: string | true): YargsInstance;
+        (keyMsgs: Dictionary<string | undefined>): YargsInstance;
+        (keyMsgs: Dictionary<string | undefined>, max: string[], msg?: string): YargsInstance;
+    };
+    demandCommand(): YargsInstance;
+    demandCommand(min: number, minMsg?: string): YargsInstance;
+    demandCommand(min: number, max: number, minMsg?: string | null, maxMsg?: string | null): YargsInstance;
+    demandOption: {
+        (keys: string | string[], msg?: string): YargsInstance;
+        (keyMsgs: Dictionary<string | undefined>): YargsInstance;
+    };
+    deprecateOption(option: string, message?: string | boolean): YargsInstance;
+    describe: {
+        (keys: string | string[], description?: string): YargsInstance;
+        (keyDescriptions: Dictionary<string>): YargsInstance;
+    };
+    detectLocale(detect: boolean): YargsInstance;
+    env(prefix?: string | false): YargsInstance;
+    epilog: YargsInstance['epilogue'];
+    epilogue(msg: string): YargsInstance;
+    example(cmd: string | [string, string?][], description?: string): YargsInstance;
+    exit(code: number, err?: YError | string): void;
+    exitProcess(enabled: boolean): YargsInstance;
+    fail(f: FailureFunction): YargsInstance;
+    getCommandInstance(): CommandInstance;
+    getCompletion(args: string[], done: (completions: string[]) => any): void;
+    getContext(): Context;
+    getDemandedCommands(): Options['demandedCommands'];
+    getDemandedOptions(): Options['demandedOptions'];
+    getDeprecatedOptions(): Options['deprecatedOptions'];
+    getDetectLocale(): boolean;
+    getExitProcess(): boolean;
+    getGroups(): Dictionary<string[]>;
+    getHandlerFinishCommand(): FinishCommandHandler | null;
+    getOptions(): Options;
+    getParserConfiguration(): Configuration;
+    getStrict(): boolean;
+    getStrictCommands(): boolean;
+    getUsageInstance(): UsageInstance;
+    getValidationInstance(): ValidationInstance;
+    global(keys: string | string[], global?: boolean): YargsInstance;
+    group(keys: string | string[], groupName: string): YargsInstance;
+    help: YargsInstance['addHelpOpt'];
+    hide(key: string): YargsInstance;
+    implies: {
+        (key: string, implication: KeyOrPos | KeyOrPos[]): YargsInstance;
+        (keyImplications: Dictionary<KeyOrPos | KeyOrPos[]>): YargsInstance;
+    };
+    locale: {
+        (): string;
+        (locale: string): YargsInstance;
+    };
+    middleware(callback: MiddlewareCallback | MiddlewareCallback[], applyBeforeValidation?: boolean): YargsInstance;
+    nargs: {
+        (keys: string | string[], nargs: number): YargsInstance;
+        (keyNargs: Dictionary<number>): YargsInstance;
+    };
+    normalize(keys: string | string[]): YargsInstance;
+    number(keys: string | string[]): YargsInstance;
+    onFinishCommand(f: FinishCommandHandler): YargsInstance;
+    option: {
+        (key: string, optionDefinition: OptionDefinition): YargsInstance;
+        (keyOptionDefinitions: Dictionary<OptionDefinition>): YargsInstance;
+    };
+    options: YargsInstance['option'];
+    parse: {
+        (): Arguments | Promise<Arguments>;
+        (args: string | string[], context: object, parseCallback?: ParseCallback): Arguments | Promise<Arguments>;
+        (args: string | string[], parseCallback: ParseCallback): Arguments | Promise<Arguments>;
+        (args: string | string[], shortCircuit: boolean): Arguments | Promise<Arguments>;
+    };
+    parserConfiguration(config: Configuration): YargsInstance;
+    pkgConf(key: string, rootPath?: string): YargsInstance;
+    positional(key: string, positionalDefinition: PositionalDefinition): YargsInstance;
+    recommendCommands(recommend: boolean): YargsInstance;
+    require: YargsInstance['demand'];
+    required: YargsInstance['demand'];
+    requiresArg(keys: string | string[] | Dictionary): YargsInstance;
+    reset(aliases?: DetailedArguments['aliases']): YargsInstance;
+    resetOptions(aliases?: DetailedArguments['aliases']): YargsInstance;
+    scriptName(scriptName: string): YargsInstance;
+    showCompletionScript($0?: string, cmd?: string): YargsInstance;
+    showHelp(level: 'error' | 'log' | ((message: string) => void)): YargsInstance;
+    showHelpOnFail: {
+        (message?: string): YargsInstance;
+        (enabled: boolean, message: string): YargsInstance;
+    };
+    showHidden: YargsInstance['addShowHiddenOpt'];
+    skipValidation(keys: string | string[]): YargsInstance;
+    strict(enable?: boolean): YargsInstance;
+    strictCommands(enable?: boolean): YargsInstance;
+    string(key: string | string[]): YargsInstance;
+    terminalWidth(): number | null;
+    updateStrings(obj: Dictionary<string>): YargsInstance;
+    updateLocale: YargsInstance['updateStrings'];
+    usage: {
+        (msg: string | null): YargsInstance;
+        (msg: string, description: CommandHandler['description'], builder?: CommandBuilderDefinition | CommandBuilder, handler?: CommandHandlerCallback): YargsInstance;
+    };
+    version: {
+        (ver?: string | false): YargsInstance;
+        (key?: string, ver?: string): YargsInstance;
+        (key?: string, msg?: string, ver?: string): YargsInstance;
+    };
+    wrap(cols: number | null | undefined): YargsInstance;
+}
+export declare function isYargsInstance(y: YargsInstance | void): y is YargsInstance;
+/** Yargs' context. */
+export interface Context {
+    commands: string[];
+    files: string[];
+    fullCommands: string[];
+}
+declare type LoggerInstance = Pick<Console, 'error' | 'log'>;
+export interface Options extends ParserOptions {
+    __: Y18N['__'];
+    alias: Dictionary<string[]>;
+    array: string[];
+    boolean: string[];
+    choices: Dictionary<string[]>;
+    config: Dictionary<ConfigCallback | boolean>;
+    configObjects: Dictionary[];
+    configuration: Configuration;
+    count: string[];
+    defaultDescription: Dictionary<string | undefined>;
+    demandedCommands: Dictionary<{
+        min: number;
+        max: number;
+        minMsg?: string | null;
+        maxMsg?: string | null;
+    }>;
+    demandedOptions: Dictionary<string | undefined>;
+    deprecatedOptions: Dictionary<string | boolean | undefined>;
+    hiddenOptions: string[];
+    /** Manually set keys */
+    key: Dictionary<boolean | string>;
+    local: string[];
+    normalize: string[];
+    number: string[];
+    showHiddenOpt: string;
+    skipValidation: string[];
+    string: string[];
+}
+export interface Configuration extends Partial<ParserConfiguration> {
+    /** Should a config object be deep-merged with the object config it extends? */
+    'deep-merge-config'?: boolean;
+    /** Should commands be sorted in help? */
+    'sort-commands'?: boolean;
+}
+export interface OptionDefinition {
+    alias?: string | string[];
+    array?: boolean;
+    boolean?: boolean;
+    choices?: string | string[];
+    coerce?: CoerceCallback;
+    config?: boolean;
+    configParser?: ConfigCallback;
+    conflicts?: string | string[];
+    count?: boolean;
+    default?: any;
+    defaultDescription?: string;
+    deprecate?: string | boolean;
+    deprecated?: OptionDefinition['deprecate'];
+    desc?: string;
+    describe?: OptionDefinition['desc'];
+    description?: OptionDefinition['desc'];
+    demand?: string | true;
+    demandOption?: OptionDefinition['demand'];
+    global?: boolean;
+    group?: string;
+    hidden?: boolean;
+    implies?: string | number | KeyOrPos[];
+    nargs?: number;
+    normalize?: boolean;
+    number?: boolean;
+    require?: OptionDefinition['demand'];
+    required?: OptionDefinition['demand'];
+    requiresArg?: boolean;
+    skipValidation?: boolean;
+    string?: boolean;
+    type?: 'array' | 'boolean' | 'count' | 'number' | 'string';
+}
+interface PositionalDefinition extends Pick<OptionDefinition, 'alias' | 'array' | 'coerce' | 'choices' | 'conflicts' | 'default' | 'defaultDescription' | 'demand' | 'desc' | 'describe' | 'description' | 'implies' | 'normalize'> {
+    type?: 'boolean' | 'number' | 'string';
+}
+interface ParseCallback {
+    (err: YError | string | undefined | null, argv: Arguments | Promise<Arguments>, output: string): void;
+}
+export interface Arguments extends ParserArguments {
+    /** The script name or node command */
+    $0: string;
+}
+export interface DetailedArguments extends ParserDetailedArguments {
+    argv: Arguments;
+}
+export {};
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.js b/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.js
new file mode 100644
index 0000000..316f3d6
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/yargs.js
@@ -0,0 +1,1190 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isYargsInstance = exports.rebase = exports.Yargs = void 0;
+const command_1 = require("./command");
+const common_types_1 = require("./common-types");
+const yerror_1 = require("./yerror");
+const usage_1 = require("./usage");
+const argsert_1 = require("./argsert");
+const fs = require("fs");
+const completion_1 = require("./completion");
+const path = require("path");
+const validation_1 = require("./validation");
+const obj_filter_1 = require("./obj-filter");
+const apply_extends_1 = require("./apply-extends");
+const middleware_1 = require("./middleware");
+const processArgv = require("./process-argv");
+const is_promise_1 = require("./is-promise");
+const Parser = require("yargs-parser");
+const y18nFactory = require("y18n");
+const setBlocking = require("set-blocking");
+const findUp = require("find-up");
+const requireMainFilename = require("require-main-filename");
+function Yargs(processArgs = [], cwd = process.cwd(), parentRequire = require) {
+    const self = {};
+    let command;
+    let completion = null;
+    let groups = {};
+    const globalMiddleware = [];
+    let output = '';
+    const preservedGroups = {};
+    let usage;
+    let validation;
+    let handlerFinishCommand = null;
+    const y18n = y18nFactory({
+        directory: path.resolve(__dirname, '../../locales'),
+        updateFiles: false
+    });
+    self.middleware = middleware_1.globalMiddlewareFactory(globalMiddleware, self);
+    self.scriptName = function (scriptName) {
+        self.customScriptName = true;
+        self.$0 = scriptName;
+        return self;
+    };
+    // ignore the node bin, specify this in your
+    // bin file with #!/usr/bin/env node
+    let default$0;
+    if (/\b(node|iojs|electron)(\.exe)?$/.test(process.argv[0])) {
+        default$0 = process.argv.slice(1, 2);
+    }
+    else {
+        default$0 = process.argv.slice(0, 1);
+    }
+    self.$0 = default$0
+        .map(x => {
+        const b = rebase(cwd, x);
+        return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x;
+    })
+        .join(' ').trim();
+    if (process.env._ !== undefined && processArgv.getProcessArgvBin() === process.env._) {
+        self.$0 = process.env._.replace(`${path.dirname(process.execPath)}/`, '');
+    }
+    // use context object to keep track of resets, subcommand execution, etc
+    // submodules should modify and check the state of context as necessary
+    const context = { resets: -1, commands: [], fullCommands: [], files: [] };
+    self.getContext = () => context;
+    // puts yargs back into an initial state. any keys
+    // that have been set to "global" will not be reset
+    // by this action.
+    let options;
+    self.resetOptions = self.reset = function resetOptions(aliases = {}) {
+        context.resets++;
+        options = options || {};
+        // put yargs back into an initial state, this
+        // logic is used to build a nested command
+        // hierarchy.
+        const tmpOptions = {};
+        tmpOptions.local = options.local ? options.local : [];
+        tmpOptions.configObjects = options.configObjects ? options.configObjects : [];
+        // if a key has been explicitly set as local,
+        // we should reset it before passing options to command.
+        const localLookup = {};
+        tmpOptions.local.forEach((l) => {
+            localLookup[l] = true;
+            (aliases[l] || []).forEach((a) => {
+                localLookup[a] = true;
+            });
+        });
+        // add all groups not set to local to preserved groups
+        Object.assign(preservedGroups, Object.keys(groups).reduce((acc, groupName) => {
+            const keys = groups[groupName].filter(key => !(key in localLookup));
+            if (keys.length > 0) {
+                acc[groupName] = keys;
+            }
+            return acc;
+        }, {}));
+        // groups can now be reset
+        groups = {};
+        const arrayOptions = [
+            'array', 'boolean', 'string', 'skipValidation',
+            'count', 'normalize', 'number',
+            'hiddenOptions'
+        ];
+        const objectOptions = [
+            'narg', 'key', 'alias', 'default', 'defaultDescription',
+            'config', 'choices', 'demandedOptions', 'demandedCommands', 'coerce',
+            'deprecatedOptions'
+        ];
+        arrayOptions.forEach(k => {
+            tmpOptions[k] = (options[k] || []).filter(k => !localLookup[k]);
+        });
+        objectOptions.forEach((k) => {
+            tmpOptions[k] = obj_filter_1.objFilter(options[k], k => !localLookup[k]);
+        });
+        tmpOptions.envPrefix = options.envPrefix;
+        options = tmpOptions;
+        // if this is the first time being executed, create
+        // instances of all our helpers -- otherwise just reset.
+        usage = usage ? usage.reset(localLookup) : usage_1.usage(self, y18n);
+        validation = validation ? validation.reset(localLookup) : validation_1.validation(self, usage, y18n);
+        command = command ? command.reset() : command_1.command(self, usage, validation, globalMiddleware);
+        if (!completion)
+            completion = completion_1.completion(self, usage, command);
+        completionCommand = null;
+        output = '';
+        exitError = null;
+        hasOutput = false;
+        self.parsed = false;
+        return self;
+    };
+    self.resetOptions();
+    // temporary hack: allow "freezing" of reset-able state for parse(msg, cb)
+    const frozens = [];
+    function freeze() {
+        frozens.push({
+            options,
+            configObjects: options.configObjects.slice(0),
+            exitProcess,
+            groups,
+            strict,
+            strictCommands,
+            completionCommand,
+            output,
+            exitError,
+            hasOutput,
+            parsed: self.parsed,
+            parseFn,
+            parseContext,
+            handlerFinishCommand
+        });
+        usage.freeze();
+        validation.freeze();
+        command.freeze();
+    }
+    function unfreeze() {
+        const frozen = frozens.pop();
+        common_types_1.assertNotStrictEqual(frozen, undefined);
+        let configObjects;
+        ({
+            options,
+            configObjects,
+            exitProcess,
+            groups,
+            output,
+            exitError,
+            hasOutput,
+            parsed: self.parsed,
+            strict,
+            strictCommands,
+            completionCommand,
+            parseFn,
+            parseContext,
+            handlerFinishCommand
+        } = frozen);
+        options.configObjects = configObjects;
+        usage.unfreeze();
+        validation.unfreeze();
+        command.unfreeze();
+    }
+    self.boolean = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('boolean', keys);
+        return self;
+    };
+    self.array = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('array', keys);
+        return self;
+    };
+    self.number = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('number', keys);
+        return self;
+    };
+    self.normalize = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('normalize', keys);
+        return self;
+    };
+    self.count = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('count', keys);
+        return self;
+    };
+    self.string = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('string', keys);
+        return self;
+    };
+    self.requiresArg = function (keys) {
+        // the 2nd paramter [number] in the argsert the assertion is mandatory
+        // as populateParserHintSingleValueDictionary recursively calls requiresArg
+        // with Nan as a 2nd parameter, although we ignore it
+        argsert_1.argsert('<array|string|object> [number]', [keys], arguments.length);
+        // If someone configures nargs at the same time as requiresArg,
+        // nargs should take precedent,
+        // see: https://github.com/yargs/yargs/pull/1572
+        // TODO: make this work with aliases, using a check similar to
+        // checkAllAliases() in yargs-parser.
+        if (typeof keys === 'string' && options.narg[keys]) {
+            return self;
+        }
+        else {
+            populateParserHintSingleValueDictionary(self.requiresArg, 'narg', keys, NaN);
+        }
+        return self;
+    };
+    self.skipValidation = function (keys) {
+        argsert_1.argsert('<array|string>', [keys], arguments.length);
+        populateParserHintArray('skipValidation', keys);
+        return self;
+    };
+    function populateParserHintArray(type, keys) {
+        keys = [].concat(keys);
+        keys.forEach((key) => {
+            key = sanitizeKey(key);
+            options[type].push(key);
+        });
+    }
+    self.nargs = function (key, value) {
+        argsert_1.argsert('<string|object|array> [number]', [key, value], arguments.length);
+        populateParserHintSingleValueDictionary(self.nargs, 'narg', key, value);
+        return self;
+    };
+    self.choices = function (key, value) {
+        argsert_1.argsert('<object|string|array> [string|array]', [key, value], arguments.length);
+        populateParserHintArrayDictionary(self.choices, 'choices', key, value);
+        return self;
+    };
+    self.alias = function (key, value) {
+        argsert_1.argsert('<object|string|array> [string|array]', [key, value], arguments.length);
+        populateParserHintArrayDictionary(self.alias, 'alias', key, value);
+        return self;
+    };
+    // TODO: actually deprecate self.defaults.
+    self.default = self.defaults = function (key, value, defaultDescription) {
+        argsert_1.argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length);
+        if (defaultDescription) {
+            common_types_1.assertSingleKey(key);
+            options.defaultDescription[key] = defaultDescription;
+        }
+        if (typeof value === 'function') {
+            common_types_1.assertSingleKey(key);
+            if (!options.defaultDescription[key])
+                options.defaultDescription[key] = usage.functionDescription(value);
+            value = value.call();
+        }
+        populateParserHintSingleValueDictionary(self.default, 'default', key, value);
+        return self;
+    };
+    self.describe = function (key, desc) {
+        argsert_1.argsert('<object|string|array> [string]', [key, desc], arguments.length);
+        setKey(key, true);
+        usage.describe(key, desc);
+        return self;
+    };
+    function setKey(key, set) {
+        populateParserHintSingleValueDictionary(setKey, 'key', key, set);
+        return self;
+    }
+    function demandOption(keys, msg) {
+        argsert_1.argsert('<object|string|array> [string]', [keys, msg], arguments.length);
+        populateParserHintSingleValueDictionary(self.demandOption, 'demandedOptions', keys, msg);
+        return self;
+    }
+    self.demandOption = demandOption;
+    self.coerce = function (keys, value) {
+        argsert_1.argsert('<object|string|array> [function]', [keys, value], arguments.length);
+        populateParserHintSingleValueDictionary(self.coerce, 'coerce', keys, value);
+        return self;
+    };
+    function populateParserHintSingleValueDictionary(builder, type, key, value) {
+        populateParserHintDictionary(builder, type, key, value, (type, key, value) => {
+            options[type][key] = value;
+        });
+    }
+    function populateParserHintArrayDictionary(builder, type, key, value) {
+        populateParserHintDictionary(builder, type, key, value, (type, key, value) => {
+            options[type][key] = (options[type][key] || []).concat(value);
+        });
+    }
+    function populateParserHintDictionary(builder, type, key, value, singleKeyHandler) {
+        if (Array.isArray(key)) {
+            // an array of keys with one value ['x', 'y', 'z'], function parse () {}
+            key.forEach((k) => {
+                builder(k, value);
+            });
+        }
+        else if (((key) => typeof key === 'object')(key)) {
+            // an object of key value pairs: {'x': parse () {}, 'y': parse() {}}
+            for (const k of common_types_1.objectKeys(key)) {
+                builder(k, key[k]);
+            }
+        }
+        else {
+            singleKeyHandler(type, sanitizeKey(key), value);
+        }
+    }
+    function sanitizeKey(key) {
+        if (key === '__proto__')
+            return '___proto___';
+        return key;
+    }
+    function deleteFromParserHintObject(optionKey) {
+        // delete from all parsing hints:
+        // boolean, array, key, alias, etc.
+        common_types_1.objectKeys(options).forEach((hintKey) => {
+            // configObjects is not a parsing hint array
+            if (((key) => key === 'configObjects')(hintKey))
+                return;
+            const hint = options[hintKey];
+            if (Array.isArray(hint)) {
+                if (~hint.indexOf(optionKey))
+                    hint.splice(hint.indexOf(optionKey), 1);
+            }
+            else if (typeof hint === 'object') {
+                delete hint[optionKey];
+            }
+        });
+        // now delete the description from usage.js.
+        delete usage.getDescriptions()[optionKey];
+    }
+    self.config = function config(key = 'config', msg, parseFn) {
+        argsert_1.argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);
+        // allow a config object to be provided directly.
+        if ((typeof key === 'object') && !Array.isArray(key)) {
+            key = apply_extends_1.applyExtends(key, cwd, self.getParserConfiguration()['deep-merge-config']);
+            options.configObjects = (options.configObjects || []).concat(key);
+            return self;
+        }
+        // allow for a custom parsing function.
+        if (typeof msg === 'function') {
+            parseFn = msg;
+            msg = undefined;
+        }
+        self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file'));
+        (Array.isArray(key) ? key : [key]).forEach((k) => {
+            options.config[k] = parseFn || true;
+        });
+        return self;
+    };
+    self.example = function (cmd, description) {
+        argsert_1.argsert('<string|array> [string]', [cmd, description], arguments.length);
+        if (Array.isArray(cmd)) {
+            cmd.forEach((exampleParams) => self.example(...exampleParams));
+        }
+        else {
+            usage.example(cmd, description);
+        }
+        return self;
+    };
+    self.command = function (cmd, description, builder, handler, middlewares, deprecated) {
+        argsert_1.argsert('<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);
+        command.addHandler(cmd, description, builder, handler, middlewares, deprecated);
+        return self;
+    };
+    self.commandDir = function (dir, opts) {
+        argsert_1.argsert('<string> [object]', [dir, opts], arguments.length);
+        const req = parentRequire || require;
+        command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts);
+        return self;
+    };
+    // TODO: deprecate self.demand in favor of
+    // .demandCommand() .demandOption().
+    self.demand = self.required = self.require = function demand(keys, max, msg) {
+        // you can optionally provide a 'max' key,
+        // which will raise an exception if too many '_'
+        // options are provided.
+        if (Array.isArray(max)) {
+            max.forEach((key) => {
+                common_types_1.assertNotStrictEqual(msg, true);
+                demandOption(key, msg);
+            });
+            max = Infinity;
+        }
+        else if (typeof max !== 'number') {
+            msg = max;
+            max = Infinity;
+        }
+        if (typeof keys === 'number') {
+            common_types_1.assertNotStrictEqual(msg, true);
+            self.demandCommand(keys, max, msg, msg);
+        }
+        else if (Array.isArray(keys)) {
+            keys.forEach((key) => {
+                common_types_1.assertNotStrictEqual(msg, true);
+                demandOption(key, msg);
+            });
+        }
+        else {
+            if (typeof msg === 'string') {
+                demandOption(keys, msg);
+            }
+            else if (msg === true || typeof msg === 'undefined') {
+                demandOption(keys);
+            }
+        }
+        return self;
+    };
+    self.demandCommand = function demandCommand(min = 1, max, minMsg, maxMsg) {
+        argsert_1.argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);
+        if (typeof max !== 'number') {
+            minMsg = max;
+            max = Infinity;
+        }
+        self.global('_', false);
+        options.demandedCommands._ = {
+            min,
+            max,
+            minMsg,
+            maxMsg
+        };
+        return self;
+    };
+    self.getDemandedOptions = () => {
+        argsert_1.argsert([], 0);
+        return options.demandedOptions;
+    };
+    self.getDemandedCommands = () => {
+        argsert_1.argsert([], 0);
+        return options.demandedCommands;
+    };
+    self.deprecateOption = function deprecateOption(option, message) {
+        argsert_1.argsert('<string> [string|boolean]', [option, message], arguments.length);
+        options.deprecatedOptions[option] = message;
+        return self;
+    };
+    self.getDeprecatedOptions = () => {
+        argsert_1.argsert([], 0);
+        return options.deprecatedOptions;
+    };
+    self.implies = function (key, value) {
+        argsert_1.argsert('<string|object> [number|string|array]', [key, value], arguments.length);
+        validation.implies(key, value);
+        return self;
+    };
+    self.conflicts = function (key1, key2) {
+        argsert_1.argsert('<string|object> [string|array]', [key1, key2], arguments.length);
+        validation.conflicts(key1, key2);
+        return self;
+    };
+    self.usage = function (msg, description, builder, handler) {
+        argsert_1.argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);
+        if (description !== undefined) {
+            common_types_1.assertNotStrictEqual(msg, null);
+            // .usage() can be used as an alias for defining
+            // a default command.
+            if ((msg || '').match(/^\$0( |$)/)) {
+                return self.command(msg, description, builder, handler);
+            }
+            else {
+                throw new yerror_1.YError('.usage() description must start with $0 if being used as alias for .command()');
+            }
+        }
+        else {
+            usage.usage(msg);
+            return self;
+        }
+    };
+    self.epilogue = self.epilog = function (msg) {
+        argsert_1.argsert('<string>', [msg], arguments.length);
+        usage.epilog(msg);
+        return self;
+    };
+    self.fail = function (f) {
+        argsert_1.argsert('<function>', [f], arguments.length);
+        usage.failFn(f);
+        return self;
+    };
+    self.onFinishCommand = function (f) {
+        argsert_1.argsert('<function>', [f], arguments.length);
+        handlerFinishCommand = f;
+        return self;
+    };
+    self.getHandlerFinishCommand = () => handlerFinishCommand;
+    self.check = function (f, _global) {
+        argsert_1.argsert('<function> [boolean]', [f, _global], arguments.length);
+        validation.check(f, _global !== false);
+        return self;
+    };
+    self.global = function global(globals, global) {
+        argsert_1.argsert('<string|array> [boolean]', [globals, global], arguments.length);
+        globals = [].concat(globals);
+        if (global !== false) {
+            options.local = options.local.filter(l => globals.indexOf(l) === -1);
+        }
+        else {
+            globals.forEach((g) => {
+                if (options.local.indexOf(g) === -1)
+                    options.local.push(g);
+            });
+        }
+        return self;
+    };
+    self.pkgConf = function pkgConf(key, rootPath) {
+        argsert_1.argsert('<string> [string]', [key, rootPath], arguments.length);
+        let conf = null;
+        // prefer cwd to require-main-filename in this method
+        // since we're looking for e.g. "nyc" config in nyc consumer
+        // rather than "yargs" config in nyc (where nyc is the main filename)
+        const obj = pkgUp(rootPath || cwd);
+        // If an object exists in the key, add it to options.configObjects
+        if (obj[key] && typeof obj[key] === 'object') {
+            conf = apply_extends_1.applyExtends(obj[key], rootPath || cwd, self.getParserConfiguration()['deep-merge-config']);
+            options.configObjects = (options.configObjects || []).concat(conf);
+        }
+        return self;
+    };
+    const pkgs = {};
+    function pkgUp(rootPath) {
+        const npath = rootPath || '*';
+        if (pkgs[npath])
+            return pkgs[npath];
+        let obj = {};
+        try {
+            let startDir = rootPath || requireMainFilename(parentRequire);
+            // When called in an environment that lacks require.main.filename, such as a jest test runner,
+            // startDir is already process.cwd(), and should not be shortened.
+            // Whether or not it is _actually_ a directory (e.g., extensionless bin) is irrelevant, find-up handles it.
+            if (!rootPath && path.extname(startDir)) {
+                startDir = path.dirname(startDir);
+            }
+            const pkgJsonPath = findUp.sync('package.json', {
+                cwd: startDir
+            });
+            common_types_1.assertNotStrictEqual(pkgJsonPath, undefined);
+            obj = JSON.parse(fs.readFileSync(pkgJsonPath).toString());
+        }
+        catch (noop) { }
+        pkgs[npath] = obj || {};
+        return pkgs[npath];
+    }
+    let parseFn = null;
+    let parseContext = null;
+    self.parse = function parse(args, shortCircuit, _parseFn) {
+        argsert_1.argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);
+        freeze();
+        if (typeof args === 'undefined') {
+            const argv = self._parseArgs(processArgs);
+            const tmpParsed = self.parsed;
+            unfreeze();
+            // TODO: remove this compatibility hack when we release yargs@15.x:
+            self.parsed = tmpParsed;
+            return argv;
+        }
+        // a context object can optionally be provided, this allows
+        // additional information to be passed to a command handler.
+        if (typeof shortCircuit === 'object') {
+            parseContext = shortCircuit;
+            shortCircuit = _parseFn;
+        }
+        // by providing a function as a second argument to
+        // parse you can capture output that would otherwise
+        // default to printing to stdout/stderr.
+        if (typeof shortCircuit === 'function') {
+            parseFn = shortCircuit;
+            shortCircuit = false;
+        }
+        // completion short-circuits the parsing process,
+        // skipping validation, etc.
+        if (!shortCircuit)
+            processArgs = args;
+        if (parseFn)
+            exitProcess = false;
+        const parsed = self._parseArgs(args, !!shortCircuit);
+        completion.setParsed(self.parsed);
+        if (parseFn)
+            parseFn(exitError, parsed, output);
+        unfreeze();
+        return parsed;
+    };
+    self._getParseContext = () => parseContext || {};
+    self._hasParseCallback = () => !!parseFn;
+    self.option = self.options = function option(key, opt) {
+        argsert_1.argsert('<string|object> [object]', [key, opt], arguments.length);
+        if (typeof key === 'object') {
+            Object.keys(key).forEach((k) => {
+                self.options(k, key[k]);
+            });
+        }
+        else {
+            if (typeof opt !== 'object') {
+                opt = {};
+            }
+            options.key[key] = true; // track manually set keys.
+            if (opt.alias)
+                self.alias(key, opt.alias);
+            const deprecate = opt.deprecate || opt.deprecated;
+            if (deprecate) {
+                self.deprecateOption(key, deprecate);
+            }
+            const demand = opt.demand || opt.required || opt.require;
+            // A required option can be specified via "demand: true".
+            if (demand) {
+                self.demand(key, demand);
+            }
+            if (opt.demandOption) {
+                self.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);
+            }
+            if (opt.conflicts) {
+                self.conflicts(key, opt.conflicts);
+            }
+            if ('default' in opt) {
+                self.default(key, opt.default);
+            }
+            if (opt.implies !== undefined) {
+                self.implies(key, opt.implies);
+            }
+            if (opt.nargs !== undefined) {
+                self.nargs(key, opt.nargs);
+            }
+            if (opt.config) {
+                self.config(key, opt.configParser);
+            }
+            if (opt.normalize) {
+                self.normalize(key);
+            }
+            if (opt.choices) {
+                self.choices(key, opt.choices);
+            }
+            if (opt.coerce) {
+                self.coerce(key, opt.coerce);
+            }
+            if (opt.group) {
+                self.group(key, opt.group);
+            }
+            if (opt.boolean || opt.type === 'boolean') {
+                self.boolean(key);
+                if (opt.alias)
+                    self.boolean(opt.alias);
+            }
+            if (opt.array || opt.type === 'array') {
+                self.array(key);
+                if (opt.alias)
+                    self.array(opt.alias);
+            }
+            if (opt.number || opt.type === 'number') {
+                self.number(key);
+                if (opt.alias)
+                    self.number(opt.alias);
+            }
+            if (opt.string || opt.type === 'string') {
+                self.string(key);
+                if (opt.alias)
+                    self.string(opt.alias);
+            }
+            if (opt.count || opt.type === 'count') {
+                self.count(key);
+            }
+            if (typeof opt.global === 'boolean') {
+                self.global(key, opt.global);
+            }
+            if (opt.defaultDescription) {
+                options.defaultDescription[key] = opt.defaultDescription;
+            }
+            if (opt.skipValidation) {
+                self.skipValidation(key);
+            }
+            const desc = opt.describe || opt.description || opt.desc;
+            self.describe(key, desc);
+            if (opt.hidden) {
+                self.hide(key);
+            }
+            if (opt.requiresArg) {
+                self.requiresArg(key);
+            }
+        }
+        return self;
+    };
+    self.getOptions = () => options;
+    self.positional = function (key, opts) {
+        argsert_1.argsert('<string> <object>', [key, opts], arguments.length);
+        if (context.resets === 0) {
+            throw new yerror_1.YError(".positional() can only be called in a command's builder function");
+        }
+        // .positional() only supports a subset of the configuration
+        // options available to .option().
+        const supportedOpts = ['default', 'defaultDescription', 'implies', 'normalize',
+            'choices', 'conflicts', 'coerce', 'type', 'describe',
+            'desc', 'description', 'alias'];
+        opts = obj_filter_1.objFilter(opts, (k, v) => {
+            let accept = supportedOpts.indexOf(k) !== -1;
+            // type can be one of string|number|boolean.
+            if (k === 'type' && ['string', 'number', 'boolean'].indexOf(v) === -1)
+                accept = false;
+            return accept;
+        });
+        // copy over any settings that can be inferred from the command string.
+        const fullCommand = context.fullCommands[context.fullCommands.length - 1];
+        const parseOptions = fullCommand ? command.cmdToParseOptions(fullCommand) : {
+            array: [],
+            alias: {},
+            default: {},
+            demand: {}
+        };
+        common_types_1.objectKeys(parseOptions).forEach((pk) => {
+            const parseOption = parseOptions[pk];
+            if (Array.isArray(parseOption)) {
+                if (parseOption.indexOf(key) !== -1)
+                    opts[pk] = true;
+            }
+            else {
+                if (parseOption[key] && !(pk in opts))
+                    opts[pk] = parseOption[key];
+            }
+        });
+        self.group(key, usage.getPositionalGroupName());
+        return self.option(key, opts);
+    };
+    self.group = function group(opts, groupName) {
+        argsert_1.argsert('<string|array> <string>', [opts, groupName], arguments.length);
+        const existing = preservedGroups[groupName] || groups[groupName];
+        if (preservedGroups[groupName]) {
+            // we now only need to track this group name in groups.
+            delete preservedGroups[groupName];
+        }
+        const seen = {};
+        groups[groupName] = (existing || []).concat(opts).filter((key) => {
+            if (seen[key])
+                return false;
+            return (seen[key] = true);
+        });
+        return self;
+    };
+    // combine explicit and preserved groups. explicit groups should be first
+    self.getGroups = () => Object.assign({}, groups, preservedGroups);
+    // as long as options.envPrefix is not undefined,
+    // parser will apply env vars matching prefix to argv
+    self.env = function (prefix) {
+        argsert_1.argsert('[string|boolean]', [prefix], arguments.length);
+        if (prefix === false)
+            delete options.envPrefix;
+        else
+            options.envPrefix = prefix || '';
+        return self;
+    };
+    self.wrap = function (cols) {
+        argsert_1.argsert('<number|null|undefined>', [cols], arguments.length);
+        usage.wrap(cols);
+        return self;
+    };
+    let strict = false;
+    self.strict = function (enabled) {
+        argsert_1.argsert('[boolean]', [enabled], arguments.length);
+        strict = enabled !== false;
+        return self;
+    };
+    self.getStrict = () => strict;
+    let strictCommands = false;
+    self.strictCommands = function (enabled) {
+        argsert_1.argsert('[boolean]', [enabled], arguments.length);
+        strictCommands = enabled !== false;
+        return self;
+    };
+    self.getStrictCommands = () => strictCommands;
+    let parserConfig = {};
+    self.parserConfiguration = function parserConfiguration(config) {
+        argsert_1.argsert('<object>', [config], arguments.length);
+        parserConfig = config;
+        return self;
+    };
+    self.getParserConfiguration = () => parserConfig;
+    self.showHelp = function (level) {
+        argsert_1.argsert('[string|function]', [level], arguments.length);
+        if (!self.parsed)
+            self._parseArgs(processArgs); // run parser, if it has not already been executed.
+        if (command.hasDefaultCommand()) {
+            context.resets++; // override the restriction on top-level positoinals.
+            command.runDefaultBuilderOn(self);
+        }
+        usage.showHelp(level);
+        return self;
+    };
+    let versionOpt = null;
+    self.version = function version(opt, msg, ver) {
+        const defaultVersionOpt = 'version';
+        argsert_1.argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);
+        // nuke the key previously configured
+        // to return version #.
+        if (versionOpt) {
+            deleteFromParserHintObject(versionOpt);
+            usage.version(undefined);
+            versionOpt = null;
+        }
+        if (arguments.length === 0) {
+            ver = guessVersion();
+            opt = defaultVersionOpt;
+        }
+        else if (arguments.length === 1) {
+            if (opt === false) { // disable default 'version' key.
+                return self;
+            }
+            ver = opt;
+            opt = defaultVersionOpt;
+        }
+        else if (arguments.length === 2) {
+            ver = msg;
+            msg = undefined;
+        }
+        versionOpt = typeof opt === 'string' ? opt : defaultVersionOpt;
+        msg = msg || usage.deferY18nLookup('Show version number');
+        usage.version(ver || undefined);
+        self.boolean(versionOpt);
+        self.describe(versionOpt, msg);
+        return self;
+    };
+    function guessVersion() {
+        const obj = pkgUp();
+        return obj.version || 'unknown';
+    }
+    let helpOpt = null;
+    self.addHelpOpt = self.help = function addHelpOpt(opt, msg) {
+        const defaultHelpOpt = 'help';
+        argsert_1.argsert('[string|boolean] [string]', [opt, msg], arguments.length);
+        // nuke the key previously configured
+        // to return help.
+        if (helpOpt) {
+            deleteFromParserHintObject(helpOpt);
+            helpOpt = null;
+        }
+        if (arguments.length === 1) {
+            if (opt === false)
+                return self;
+        }
+        // use arguments, fallback to defaults for opt and msg
+        helpOpt = typeof opt === 'string' ? opt : defaultHelpOpt;
+        self.boolean(helpOpt);
+        self.describe(helpOpt, msg || usage.deferY18nLookup('Show help'));
+        return self;
+    };
+    const defaultShowHiddenOpt = 'show-hidden';
+    options.showHiddenOpt = defaultShowHiddenOpt;
+    self.addShowHiddenOpt = self.showHidden = function addShowHiddenOpt(opt, msg) {
+        argsert_1.argsert('[string|boolean] [string]', [opt, msg], arguments.length);
+        if (arguments.length === 1) {
+            if (opt === false)
+                return self;
+        }
+        const showHiddenOpt = typeof opt === 'string' ? opt : defaultShowHiddenOpt;
+        self.boolean(showHiddenOpt);
+        self.describe(showHiddenOpt, msg || usage.deferY18nLookup('Show hidden options'));
+        options.showHiddenOpt = showHiddenOpt;
+        return self;
+    };
+    self.hide = function hide(key) {
+        argsert_1.argsert('<string>', [key], arguments.length);
+        options.hiddenOptions.push(key);
+        return self;
+    };
+    self.showHelpOnFail = function showHelpOnFail(enabled, message) {
+        argsert_1.argsert('[boolean|string] [string]', [enabled, message], arguments.length);
+        usage.showHelpOnFail(enabled, message);
+        return self;
+    };
+    var exitProcess = true;
+    self.exitProcess = function (enabled = true) {
+        argsert_1.argsert('[boolean]', [enabled], arguments.length);
+        exitProcess = enabled;
+        return self;
+    };
+    self.getExitProcess = () => exitProcess;
+    var completionCommand = null;
+    self.completion = function (cmd, desc, fn) {
+        argsert_1.argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);
+        // a function to execute when generating
+        // completions can be provided as the second
+        // or third argument to completion.
+        if (typeof desc === 'function') {
+            fn = desc;
+            desc = undefined;
+        }
+        // register the completion command.
+        completionCommand = cmd || completionCommand || 'completion';
+        if (!desc && desc !== false) {
+            desc = 'generate completion script';
+        }
+        self.command(completionCommand, desc);
+        // a function can be provided
+        if (fn)
+            completion.registerFunction(fn);
+        return self;
+    };
+    self.showCompletionScript = function ($0, cmd) {
+        argsert_1.argsert('[string] [string]', [$0, cmd], arguments.length);
+        $0 = $0 || self.$0;
+        _logger.log(completion.generateCompletionScript($0, cmd || completionCommand || 'completion'));
+        return self;
+    };
+    self.getCompletion = function (args, done) {
+        argsert_1.argsert('<array> <function>', [args, done], arguments.length);
+        completion.getCompletion(args, done);
+    };
+    self.locale = function (locale) {
+        argsert_1.argsert('[string]', [locale], arguments.length);
+        if (!locale) {
+            guessLocale();
+            return y18n.getLocale();
+        }
+        detectLocale = false;
+        y18n.setLocale(locale);
+        return self;
+    };
+    self.updateStrings = self.updateLocale = function (obj) {
+        argsert_1.argsert('<object>', [obj], arguments.length);
+        detectLocale = false;
+        y18n.updateLocale(obj);
+        return self;
+    };
+    let detectLocale = true;
+    self.detectLocale = function (detect) {
+        argsert_1.argsert('<boolean>', [detect], arguments.length);
+        detectLocale = detect;
+        return self;
+    };
+    self.getDetectLocale = () => detectLocale;
+    var hasOutput = false;
+    var exitError = null;
+    // maybe exit, always capture
+    // context about why we wanted to exit.
+    self.exit = (code, err) => {
+        hasOutput = true;
+        exitError = err;
+        if (exitProcess)
+            process.exit(code);
+    };
+    // we use a custom logger that buffers output,
+    // so that we can print to non-CLIs, e.g., chat-bots.
+    const _logger = {
+        log(...args) {
+            if (!self._hasParseCallback())
+                console.log(...args);
+            hasOutput = true;
+            if (output.length)
+                output += '\n';
+            output += args.join(' ');
+        },
+        error(...args) {
+            if (!self._hasParseCallback())
+                console.error(...args);
+            hasOutput = true;
+            if (output.length)
+                output += '\n';
+            output += args.join(' ');
+        }
+    };
+    self._getLoggerInstance = () => _logger;
+    // has yargs output an error our help
+    // message in the current execution context.
+    self._hasOutput = () => hasOutput;
+    self._setHasOutput = () => {
+        hasOutput = true;
+    };
+    let recommendCommands;
+    self.recommendCommands = function (recommend = true) {
+        argsert_1.argsert('[boolean]', [recommend], arguments.length);
+        recommendCommands = recommend;
+        return self;
+    };
+    self.getUsageInstance = () => usage;
+    self.getValidationInstance = () => validation;
+    self.getCommandInstance = () => command;
+    self.terminalWidth = () => {
+        argsert_1.argsert([], 0);
+        return typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null;
+    };
+    Object.defineProperty(self, 'argv', {
+        get: () => self._parseArgs(processArgs),
+        enumerable: true
+    });
+    self._parseArgs = function parseArgs(args, shortCircuit, _calledFromCommand, commandIndex) {
+        let skipValidation = !!_calledFromCommand;
+        args = args || processArgs;
+        options.__ = y18n.__;
+        options.configuration = self.getParserConfiguration();
+        const populateDoubleDash = !!options.configuration['populate--'];
+        const config = Object.assign({}, options.configuration, {
+            'populate--': true
+        });
+        const parsed = Parser.detailed(args, Object.assign({}, options, {
+            configuration: config
+        }));
+        let argv = parsed.argv;
+        if (parseContext)
+            argv = Object.assign({}, argv, parseContext);
+        const aliases = parsed.aliases;
+        argv.$0 = self.$0;
+        self.parsed = parsed;
+        try {
+            guessLocale(); // guess locale lazily, so that it can be turned off in chain.
+            // while building up the argv object, there
+            // are two passes through the parser. If completion
+            // is being performed short-circuit on the first pass.
+            if (shortCircuit) {
+                return (populateDoubleDash || _calledFromCommand) ? argv : self._copyDoubleDash(argv);
+            }
+            // if there's a handler associated with a
+            // command defer processing to it.
+            if (helpOpt) {
+                // consider any multi-char helpOpt alias as a valid help command
+                // unless all helpOpt aliases are single-char
+                // note that parsed.aliases is a normalized bidirectional map :)
+                const helpCmds = [helpOpt]
+                    .concat(aliases[helpOpt] || [])
+                    .filter(k => k.length > 1);
+                // check if help should trigger and strip it from _.
+                if (~helpCmds.indexOf(argv._[argv._.length - 1])) {
+                    argv._.pop();
+                    argv[helpOpt] = true;
+                }
+            }
+            const handlerKeys = command.getCommands();
+            const requestCompletions = completion.completionKey in argv;
+            const skipRecommendation = argv[helpOpt] || requestCompletions;
+            const skipDefaultCommand = skipRecommendation && (handlerKeys.length > 1 || handlerKeys[0] !== '$0');
+            if (argv._.length) {
+                if (handlerKeys.length) {
+                    let firstUnknownCommand;
+                    for (let i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) {
+                        cmd = String(argv._[i]);
+                        if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) {
+                            // commands are executed using a recursive algorithm that executes
+                            // the deepest command first; we keep track of the position in the
+                            // argv._ array that is currently being executed.
+                            const innerArgv = command.runCommand(cmd, self, parsed, i + 1);
+                            return populateDoubleDash ? innerArgv : self._copyDoubleDash(innerArgv);
+                        }
+                        else if (!firstUnknownCommand && cmd !== completionCommand) {
+                            firstUnknownCommand = cmd;
+                            break;
+                        }
+                    }
+                    // run the default command, if defined
+                    if (command.hasDefaultCommand() && !skipDefaultCommand) {
+                        const innerArgv = command.runCommand(null, self, parsed);
+                        return populateDoubleDash ? innerArgv : self._copyDoubleDash(innerArgv);
+                    }
+                    // recommend a command if recommendCommands() has
+                    // been enabled, and no commands were found to execute
+                    if (recommendCommands && firstUnknownCommand && !skipRecommendation) {
+                        validation.recommendCommands(firstUnknownCommand, handlerKeys);
+                    }
+                }
+                // generate a completion script for adding to ~/.bashrc.
+                if (completionCommand && ~argv._.indexOf(completionCommand) && !requestCompletions) {
+                    if (exitProcess)
+                        setBlocking(true);
+                    self.showCompletionScript();
+                    self.exit(0);
+                }
+            }
+            else if (command.hasDefaultCommand() && !skipDefaultCommand) {
+                const innerArgv = command.runCommand(null, self, parsed);
+                return populateDoubleDash ? innerArgv : self._copyDoubleDash(innerArgv);
+            }
+            // we must run completions first, a user might
+            // want to complete the --help or --version option.
+            if (requestCompletions) {
+                if (exitProcess)
+                    setBlocking(true);
+                // we allow for asynchronous completions,
+                // e.g., loading in a list of commands from an API.
+                args = [].concat(args);
+                const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1);
+                completion.getCompletion(completionArgs, (completions) => {
+                    ;
+                    (completions || []).forEach((completion) => {
+                        _logger.log(completion);
+                    });
+                    self.exit(0);
+                });
+                return (populateDoubleDash || _calledFromCommand) ? argv : self._copyDoubleDash(argv);
+            }
+            // Handle 'help' and 'version' options
+            // if we haven't already output help!
+            if (!hasOutput) {
+                Object.keys(argv).forEach((key) => {
+                    if (key === helpOpt && argv[key]) {
+                        if (exitProcess)
+                            setBlocking(true);
+                        skipValidation = true;
+                        self.showHelp('log');
+                        self.exit(0);
+                    }
+                    else if (key === versionOpt && argv[key]) {
+                        if (exitProcess)
+                            setBlocking(true);
+                        skipValidation = true;
+                        usage.showVersion();
+                        self.exit(0);
+                    }
+                });
+            }
+            // Check if any of the options to skip validation were provided
+            if (!skipValidation && options.skipValidation.length > 0) {
+                skipValidation = Object.keys(argv).some(key => options.skipValidation.indexOf(key) >= 0 && argv[key] === true);
+            }
+            // If the help or version options where used and exitProcess is false,
+            // or if explicitly skipped, we won't run validations.
+            if (!skipValidation) {
+                if (parsed.error)
+                    throw new yerror_1.YError(parsed.error.message);
+                // if we're executed via bash completion, don't
+                // bother with validation.
+                if (!requestCompletions) {
+                    self._runValidation(argv, aliases, {}, parsed.error);
+                }
+            }
+        }
+        catch (err) {
+            if (err instanceof yerror_1.YError)
+                usage.fail(err.message, err);
+            else
+                throw err;
+        }
+        return (populateDoubleDash || _calledFromCommand) ? argv : self._copyDoubleDash(argv);
+    };
+    // to simplify the parsing of positionals in commands,
+    // we temporarily populate '--' rather than _, with arguments
+    // after the '--' directive. After the parse, we copy these back.
+    self._copyDoubleDash = function (argv) {
+        if (is_promise_1.isPromise(argv) || !argv._ || !argv['--'])
+            return argv;
+        argv._.push.apply(argv._, argv['--']);
+        // TODO(bcoe): refactor command parsing such that this delete is not
+        // necessary: https://github.com/yargs/yargs/issues/1482
+        try {
+            delete argv['--'];
+        }
+        catch (_err) { }
+        return argv;
+    };
+    self._runValidation = function runValidation(argv, aliases, positionalMap, parseErrors, isDefaultCommand = false) {
+        if (parseErrors)
+            throw new yerror_1.YError(parseErrors.message);
+        validation.nonOptionCount(argv);
+        validation.requiredArguments(argv);
+        let failedStrictCommands = false;
+        if (strictCommands) {
+            failedStrictCommands = validation.unknownCommands(argv);
+        }
+        if (strict && !failedStrictCommands) {
+            validation.unknownArguments(argv, aliases, positionalMap, isDefaultCommand);
+        }
+        validation.customChecks(argv, aliases);
+        validation.limitedChoices(argv);
+        validation.implications(argv);
+        validation.conflicting(argv);
+    };
+    function guessLocale() {
+        if (!detectLocale)
+            return;
+        const locale = process.env.LC_ALL || process.env.LC_MESSAGES || process.env.LANG || process.env.LANGUAGE || 'en_US';
+        self.locale(locale.replace(/[.:].*/, ''));
+    }
+    // an app should almost always have --version and --help,
+    // if you *really* want to disable this use .help(false)/.version(false).
+    self.help();
+    self.version();
+    return self;
+}
+exports.Yargs = Yargs;
+// rebase an absolute path to a relative one with respect to a base directory
+// exported for tests
+function rebase(base, dir) {
+    return path.relative(base, dir);
+}
+exports.rebase = rebase;
+function isYargsInstance(y) {
+    return !!y && (typeof y._parseArgs === 'function');
+}
+exports.isYargsInstance = isYargsInstance;
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.d.ts b/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.d.ts
new file mode 100644
index 0000000..024d0c7
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.d.ts
@@ -0,0 +1,4 @@
+export declare class YError extends Error {
+    name: string;
+    constructor(msg?: string | null);
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.js b/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.js
new file mode 100644
index 0000000..0fa146e
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/build/lib/yerror.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.YError = void 0;
+class YError extends Error {
+    constructor(msg) {
+        super(msg || 'yargs error');
+        this.name = 'YError';
+        Error.captureStackTrace(this, YError);
+    }
+}
+exports.YError = YError;
diff --git a/node_modules/jest-circus/node_modules/yargs/index.js b/node_modules/jest-circus/node_modules/yargs/index.js
new file mode 100644
index 0000000..7dc62de
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/index.js
@@ -0,0 +1,40 @@
+'use strict'
+// classic singleton yargs API, to use yargs
+// without running as a singleton do:
+// require('yargs/yargs')(process.argv.slice(2))
+const yargs = require('./yargs')
+const processArgv = require('./build/lib/process-argv')
+
+Argv(processArgv.getProcessArgvWithoutBin())
+
+module.exports = Argv
+
+function Argv (processArgs, cwd) {
+  const argv = yargs(processArgs, cwd, require)
+  singletonify(argv)
+  return argv
+}
+
+/*  Hack an instance of Argv with process.argv into Argv
+    so people can do
+    require('yargs')(['--beeble=1','-z','zizzle']).argv
+    to parse a list of args and
+    require('yargs').argv
+    to get a parsed version of process.argv.
+*/
+function singletonify (inst) {
+  Object.keys(inst).forEach((key) => {
+    if (key === 'argv') {
+      Argv.__defineGetter__(key, inst.__lookupGetter__(key))
+    } else if (typeof inst[key] === 'function') {
+      Argv[key] = inst[key].bind(inst)
+    } else {
+      Argv.__defineGetter__('$0', () => {
+        return inst.$0
+      })
+      Argv.__defineGetter__('parsed', () => {
+        return inst.parsed
+      })
+    }
+  })
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/be.json b/node_modules/jest-circus/node_modules/yargs/locales/be.json
new file mode 100644
index 0000000..e28fa30
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/be.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Каманды:",
+  "Options:": "Опцыі:",
+  "Examples:": "Прыклады:",
+  "boolean": "булевы тып",
+  "count": "падлік",
+  "string": "радковы тып",
+  "number": "лік",
+  "array": "масіў",
+  "required": "неабходна",
+  "default": "па змаўчанні",
+  "default:": "па змаўчанні:",
+  "choices:": "магчымасці:",
+  "aliases:": "аліасы:",
+  "generated-value": "згенераванае значэнне",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s",
+    "other": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s",
+    "other": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Не хапае значэння аргументу: %s",
+    "other": "Не хапае значэнняў аргументаў: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Не хапае неабходнага аргументу: %s",
+    "other": "Не хапае неабходных аргументаў: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Невядомы аргумент: %s",
+    "other": "Невядомыя аргументы: %s"
+  },
+  "Invalid values:": "Несапраўдныя значэння:",
+  "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s",
+  "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s",
+  "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:",
+  "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s",
+  "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s",
+  "Path to JSON config file": "Шлях да файла канфігурацыі JSON",
+  "Show help": "Паказаць дапамогу",
+  "Show version number": "Паказаць нумар версіі",
+  "Did you mean %s?": "Вы мелі на ўвазе %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/de.json b/node_modules/jest-circus/node_modules/yargs/locales/de.json
new file mode 100644
index 0000000..dc73ec3
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/de.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Kommandos:",
+  "Options:": "Optionen:",
+  "Examples:": "Beispiele:",
+  "boolean": "boolean",
+  "count": "Zähler",
+  "string": "string",
+  "number": "Zahl",
+  "array": "array",
+  "required": "erforderlich",
+  "default": "Standard",
+  "default:": "Standard:",
+  "choices:": "Möglichkeiten:",
+  "aliases:": "Aliase:",
+  "generated-value": "Generierter-Wert",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt",
+    "other": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt",
+    "other": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt"
+  },
+  "Missing argument value: %s": {
+    "one": "Fehlender Argumentwert: %s",
+    "other": "Fehlende Argumentwerte: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Fehlendes Argument: %s",
+    "other": "Fehlende Argumente: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Unbekanntes Argument: %s",
+    "other": "Unbekannte Argumente: %s"
+  },
+  "Invalid values:": "Unzulässige Werte:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s",
+  "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s",
+  "Implications failed:": "Fehlende abhängige Argumente:",
+  "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s",
+  "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s",
+  "Path to JSON config file": "Pfad zur JSON-Config Datei",
+  "Show help": "Hilfe anzeigen",
+  "Show version number": "Version anzeigen",
+  "Did you mean %s?": "Meintest du %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/en.json b/node_modules/jest-circus/node_modules/yargs/locales/en.json
new file mode 100644
index 0000000..d794947
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/en.json
@@ -0,0 +1,51 @@
+{
+  "Commands:": "Commands:",
+  "Options:": "Options:",
+  "Examples:": "Examples:",
+  "boolean": "boolean",
+  "count": "count",
+  "string": "string",
+  "number": "number",
+  "array": "array",
+  "required": "required",
+  "default": "default",
+  "default:": "default:",
+  "choices:": "choices:",
+  "aliases:": "aliases:",
+  "generated-value": "generated-value",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Not enough non-option arguments: got %s, need at least %s",
+    "other": "Not enough non-option arguments: got %s, need at least %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Too many non-option arguments: got %s, maximum of %s",
+    "other": "Too many non-option arguments: got %s, maximum of %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Missing argument value: %s",
+    "other": "Missing argument values: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Missing required argument: %s",
+    "other": "Missing required arguments: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Unknown argument: %s",
+    "other": "Unknown arguments: %s"
+  },
+  "Invalid values:": "Invalid values:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s",
+  "Argument check failed: %s": "Argument check failed: %s",
+  "Implications failed:": "Missing dependent arguments:",
+  "Not enough arguments following: %s": "Not enough arguments following: %s",
+  "Invalid JSON config file: %s": "Invalid JSON config file: %s",
+  "Path to JSON config file": "Path to JSON config file",
+  "Show help": "Show help",
+  "Show version number": "Show version number",
+  "Did you mean %s?": "Did you mean %s?",
+  "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive",
+  "Positionals:": "Positionals:",
+  "command": "command",
+  "deprecated": "deprecated",
+  "deprecated: %s": "deprecated: %s"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/es.json b/node_modules/jest-circus/node_modules/yargs/locales/es.json
new file mode 100644
index 0000000..d77b461
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/es.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Comandos:",
+  "Options:": "Opciones:",
+  "Examples:": "Ejemplos:",
+  "boolean": "booleano",
+  "count": "cuenta",
+  "string": "cadena de caracteres",
+  "number": "número",
+  "array": "tabla",
+  "required": "requerido",
+  "default": "defecto",
+  "default:": "defecto:",
+  "choices:": "selección:",
+  "aliases:": "alias:",
+  "generated-value": "valor-generado",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s",
+    "other": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s",
+    "other": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Falta argumento: %s",
+    "other": "Faltan argumentos: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Falta argumento requerido: %s",
+    "other": "Faltan argumentos requeridos: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argumento desconocido: %s",
+    "other": "Argumentos desconocidos: %s"
+  },
+  "Invalid values:": "Valores inválidos:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s",
+  "Argument check failed: %s": "Verificación de argumento ha fallado: %s",
+  "Implications failed:": "Implicaciones fallidas:",
+  "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s",
+  "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s",
+  "Path to JSON config file": "Ruta al archivo de configuración JSON",
+  "Show help": "Muestra ayuda",
+  "Show version number": "Muestra número de versión",
+  "Did you mean %s?": "Quisiste decir %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/fi.json b/node_modules/jest-circus/node_modules/yargs/locales/fi.json
new file mode 100644
index 0000000..0728c57
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/fi.json
@@ -0,0 +1,49 @@
+{
+  "Commands:": "Komennot:",
+  "Options:": "Valinnat:",
+  "Examples:": "Esimerkkejä:",
+  "boolean": "totuusarvo",
+  "count": "lukumäärä",
+  "string": "merkkijono",
+  "number": "numero",
+  "array": "taulukko",
+  "required": "pakollinen",
+  "default": "oletusarvo",
+  "default:": "oletusarvo:",
+  "choices:": "vaihtoehdot:",
+  "aliases:": "aliakset:",
+  "generated-value": "generoitu-arvo",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s",
+    "other": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s",
+    "other": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Argumentin arvo puuttuu: %s",
+    "other": "Argumentin arvot puuttuvat: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Pakollinen argumentti puuttuu: %s",
+    "other": "Pakollisia argumentteja puuttuu: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Tuntematon argumenttn: %s",
+    "other": "Tuntemattomia argumentteja: %s"
+  },
+  "Invalid values:": "Virheelliset arvot:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumentti: %s, Annettu: %s, Vaihtoehdot: %s",
+  "Argument check failed: %s": "Argumentin tarkistus epäonnistui: %s",
+  "Implications failed:": "Riippuvia argumentteja puuttuu:",
+  "Not enough arguments following: %s": "Argumentin perässä ei ole tarpeeksi argumentteja: %s",
+  "Invalid JSON config file: %s": "Epävalidi JSON-asetustiedosto: %s",
+  "Path to JSON config file": "JSON-asetustiedoston polku",
+  "Show help": "Näytä ohje",
+  "Show version number": "Näytä versionumero",
+  "Did you mean %s?": "Tarkoititko %s?",
+  "Arguments %s and %s are mutually exclusive" : "Argumentit %s ja %s eivät ole yhteensopivat",
+  "Positionals:": "Sijaintiparametrit:",
+  "command": "komento"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/fr.json b/node_modules/jest-circus/node_modules/yargs/locales/fr.json
new file mode 100644
index 0000000..edd743f
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/fr.json
@@ -0,0 +1,53 @@
+{
+  "Commands:": "Commandes :",
+  "Options:": "Options :",
+  "Examples:": "Exemples :",
+  "boolean": "booléen",
+  "count": "compteur",
+  "string": "chaîne de caractères",
+  "number": "nombre",
+  "array": "tableau",
+  "required": "requis",
+  "default": "défaut",
+  "default:": "défaut :",
+  "choices:": "choix :",
+  "aliases:": "alias :",
+  "generated-value": "valeur générée",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Pas assez d'arguments (hors options) : reçu %s, besoin d'au moins %s",
+    "other": "Pas assez d'arguments (hors options) : reçus %s, besoin d'au moins %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Trop d'arguments (hors options) : reçu %s, maximum de %s",
+    "other": "Trop d'arguments (hors options) : reçus %s, maximum de %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Argument manquant : %s",
+    "other": "Arguments manquants : %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Argument requis manquant : %s",
+    "other": "Arguments requis manquants : %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argument inconnu : %s",
+    "other": "Arguments inconnus : %s"
+  },
+  "Unknown command: %s": {
+    "one": "Commande inconnue : %s",
+    "other": "Commandes inconnues : %s"
+  },
+  "Invalid values:": "Valeurs invalides :",
+  "Argument: %s, Given: %s, Choices: %s": "Argument : %s, donné : %s, choix : %s",
+  "Argument check failed: %s": "Echec de la vérification de l'argument : %s",
+  "Implications failed:": "Arguments dépendants manquants :",
+  "Not enough arguments following: %s": "Pas assez d'arguments après : %s",
+  "Invalid JSON config file: %s": "Fichier de configuration JSON invalide : %s",
+  "Path to JSON config file": "Chemin du fichier de configuration JSON",
+  "Show help": "Affiche l'aide",
+  "Show version number": "Affiche le numéro de version",
+  "Did you mean %s?": "Vouliez-vous dire %s ?",
+  "Arguments %s and %s are mutually exclusive" : "Les arguments %s et %s sont mutuellement exclusifs",
+  "Positionals:": "Arguments positionnels :",
+  "command": "commande"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/hi.json b/node_modules/jest-circus/node_modules/yargs/locales/hi.json
new file mode 100644
index 0000000..a9de77c
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/hi.json
@@ -0,0 +1,49 @@
+{
+  "Commands:": "आदेश:",
+  "Options:": "विकल्प:",
+  "Examples:": "उदाहरण:",
+  "boolean": "सत्यता",
+  "count": "संख्या",
+  "string": "वर्णों का तार ",
+  "number": "अंक",
+  "array": "सरणी",
+  "required": "आवश्यक",
+  "default": "डिफॉल्ट",
+  "default:": "डिफॉल्ट:",
+  "choices:": "विकल्प:",
+  "aliases:": "उपनाम:",
+  "generated-value": "उत्पन्न-मूल्य",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है",
+    "other": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य",
+    "other": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य"
+  },
+  "Missing argument value: %s": {
+    "one": "कुछ तर्को के मूल्य गुम हैं: %s",
+    "other": "कुछ तर्को के मूल्य गुम हैं: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "आवश्यक तर्क गुम हैं: %s",
+    "other": "आवश्यक तर्क गुम हैं: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "अज्ञात तर्क प्राप्त: %s",
+    "other": "अज्ञात तर्क प्राप्त: %s"
+  },
+  "Invalid values:": "अमान्य मूल्य:",
+  "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s",
+  "Argument check failed: %s": "तर्क जांच विफल: %s",
+  "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:",
+  "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s",
+  "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s",
+  "Path to JSON config file": "JSON config फाइल का पथ",
+  "Show help": "सहायता दिखाएँ",
+  "Show version number": "Version संख्या दिखाएँ",
+  "Did you mean %s?": "क्या आपका मतलब है %s?",
+  "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं",
+  "Positionals:": "स्थानीय:",
+  "command": "आदेश"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/hu.json b/node_modules/jest-circus/node_modules/yargs/locales/hu.json
new file mode 100644
index 0000000..21492d0
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/hu.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Parancsok:",
+  "Options:": "Opciók:",
+  "Examples:": "Példák:",
+  "boolean": "boolean",
+  "count": "számláló",
+  "string": "szöveg",
+  "number": "szám",
+  "array": "tömb",
+  "required": "kötelező",
+  "default": "alapértelmezett",
+  "default:": "alapértelmezett:",
+  "choices:": "lehetőségek:",
+  "aliases:": "aliaszok:",
+  "generated-value": "generált-érték",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell",
+    "other": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet",
+    "other": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet"
+  },
+  "Missing argument value: %s": {
+    "one": "Hiányzó argumentum érték: %s",
+    "other": "Hiányzó argumentum értékek: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Hiányzó kötelező argumentum: %s",
+    "other": "Hiányzó kötelező argumentumok: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Ismeretlen argumentum: %s",
+    "other": "Ismeretlen argumentumok: %s"
+  },
+  "Invalid values:": "Érvénytelen érték:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s",
+  "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s",
+  "Implications failed:": "Implikációk sikertelenek:",
+  "Not enough arguments following: %s": "Nem elég argumentum követi: %s",
+  "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s",
+  "Path to JSON config file": "JSON konfigurációs file helye",
+  "Show help": "Súgo megjelenítése",
+  "Show version number": "Verziószám megjelenítése",
+  "Did you mean %s?": "Erre gondoltál %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/id.json b/node_modules/jest-circus/node_modules/yargs/locales/id.json
new file mode 100644
index 0000000..125867c
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/id.json
@@ -0,0 +1,50 @@
+
+{
+  "Commands:": "Perintah:",
+  "Options:": "Pilihan:",
+  "Examples:": "Contoh:",
+  "boolean": "boolean",
+  "count": "jumlah",
+  "number": "nomor",
+  "string": "string",
+  "array": "larik",
+  "required": "diperlukan",
+  "default": "bawaan",
+  "default:": "bawaan:",
+  "aliases:": "istilah lain:",
+  "choices:": "pilihan:",
+  "generated-value": "nilai-yang-dihasilkan",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Argumen wajib kurang: hanya %s, minimal %s",
+    "other": "Argumen wajib kurang: hanya %s, minimal %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Terlalu banyak argumen wajib: ada %s, maksimal %s",
+    "other": "Terlalu banyak argumen wajib: ada %s, maksimal %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Kurang argumen: %s",
+    "other": "Kurang argumen: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Kurang argumen wajib: %s",
+    "other": "Kurang argumen wajib: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argumen tak diketahui: %s",
+    "other": "Argumen tak diketahui: %s"
+  },
+  "Invalid values:": "Nilai-nilai tidak valid:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s",
+  "Argument check failed: %s": "Pemeriksaan argument gagal: %s",
+  "Implications failed:": "Implikasi gagal:",
+  "Not enough arguments following: %s": "Kurang argumen untuk: %s",
+  "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s",
+  "Path to JSON config file": "Alamat berkas konfigurasi JSON",
+  "Show help": "Lihat bantuan",
+  "Show version number": "Lihat nomor versi",
+  "Did you mean %s?": "Maksud Anda: %s?",
+  "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif",
+  "Positionals:": "Posisional-posisional:",
+  "command": "perintah"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/it.json b/node_modules/jest-circus/node_modules/yargs/locales/it.json
new file mode 100644
index 0000000..fde5756
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/it.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Comandi:",
+  "Options:": "Opzioni:",
+  "Examples:": "Esempi:",
+  "boolean": "booleano",
+  "count": "contatore",
+  "string": "stringa",
+  "number": "numero",
+  "array": "vettore",
+  "required": "richiesto",
+  "default": "predefinito",
+  "default:": "predefinito:",
+  "choices:": "scelte:",
+  "aliases:": "alias:",
+  "generated-value": "valore generato",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s",
+    "other": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s",
+    "other": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Argomento mancante: %s",
+    "other": "Argomenti mancanti: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Argomento richiesto mancante: %s",
+    "other": "Argomenti richiesti mancanti: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argomento sconosciuto: %s",
+    "other": "Argomenti sconosciuti: %s"
+  },
+  "Invalid values:": "Valori non validi:",
+  "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s",
+  "Argument check failed: %s": "Controllo dell'argomento fallito: %s",
+  "Implications failed:": "Argomenti dipendenti mancanti:",
+  "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s",
+  "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s",
+  "Path to JSON config file": "Percorso del file di configurazione JSON",
+  "Show help": "Mostra la schermata di aiuto",
+  "Show version number": "Mostra il numero di versione",
+  "Did you mean %s?": "Intendi forse %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/ja.json b/node_modules/jest-circus/node_modules/yargs/locales/ja.json
new file mode 100644
index 0000000..3954ae6
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/ja.json
@@ -0,0 +1,51 @@
+{
+  "Commands:": "コマンド:",
+  "Options:": "オプション:",
+  "Examples:": "例:",
+  "boolean": "真偽",
+  "count": "カウント",
+  "string": "文字列",
+  "number": "数値",
+  "array": "配列",
+  "required": "必須",
+  "default": "デフォルト",
+  "default:": "デフォルト:",
+  "choices:": "選択してください:",
+  "aliases:": "エイリアス:",
+  "generated-value": "生成された値",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:",
+    "other": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:",
+    "other": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:"
+  },
+  "Missing argument value: %s": {
+    "one": "引数の値が見つかりません: %s",
+    "other": "引数の値が見つかりません: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "必須の引数が見つかりません: %s",
+    "other": "必須の引数が見つかりません: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "未知の引数です: %s",
+    "other": "未知の引数です: %s"
+  },
+  "Invalid values:": "不正な値です:",
+  "Argument: %s, Given: %s, Choices: %s": "引数は %s です。与えられた値: %s, 選択してください: %s",
+  "Argument check failed: %s": "引数のチェックに失敗しました: %s",
+  "Implications failed:": "オプションの組み合わせで不正が生じました:",
+  "Not enough arguments following: %s": "次の引数が不足しています。: %s",
+  "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s",
+  "Path to JSON config file": "JSONの設定ファイルまでのpath",
+  "Show help": "ヘルプを表示",
+  "Show version number": "バージョンを表示",
+  "Did you mean %s?": "もしかして %s?",
+  "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません",
+  "Positionals:": "位置:",
+  "command": "コマンド",
+  "deprecated": "非推奨",
+  "deprecated: %s": "非推奨: %s"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/ko.json b/node_modules/jest-circus/node_modules/yargs/locales/ko.json
new file mode 100644
index 0000000..e3187ea
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/ko.json
@@ -0,0 +1,49 @@
+{
+  "Commands:": "명령:",
+  "Options:": "옵션:",
+  "Examples:": "예시:",
+  "boolean": "여부",
+  "count": "개수",
+  "string": "문자열",
+  "number": "숫자",
+  "array": "배열",
+  "required": "필수",
+  "default": "기본",
+  "default:": "기본:",
+  "choices:": "선택:",
+  "aliases:": "별칭:",
+  "generated-value": "생성된 값",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "옵션이 아닌 인자가 충분치 않습니다: %s개를 받았지만, 적어도 %s개는 필요합니다",
+    "other": "옵션이 아닌 인자가 충분치 않습니다: %s개를 받았지만, 적어도 %s개는 필요합니다"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "옵션이 아닌 인자가 너무 많습니다: %s개를 받았지만, %s개 이하여야 합니다",
+    "other": "옵션이 아닌 인자가 너무 많습니다: %s개를 받았지만, %s개 이하여야 합니다"
+  },
+  "Missing argument value: %s": {
+    "one": "인자값을 받지 못했습니다: %s",
+    "other": "인자값들을 받지 못했습니다: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "필수 인자를 받지 못했습니다: %s",
+    "other": "필수 인자들을 받지 못했습니다: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "알 수 없는 인자입니다: %s",
+    "other": "알 수 없는 인자들입니다: %s"
+  },
+  "Invalid values:": "잘못된 값입니다:",
+  "Argument: %s, Given: %s, Choices: %s": "인자: %s, 입력받은 값: %s, 선택지: %s",
+  "Argument check failed: %s": "유효하지 않은 인자입니다: %s",
+  "Implications failed:": "옵션의 조합이 잘못되었습니다:",
+  "Not enough arguments following: %s": "인자가 충분하게 주어지지 않았습니다: %s",
+  "Invalid JSON config file: %s": "유효하지 않은 JSON 설정파일입니다: %s",
+  "Path to JSON config file": "JSON 설정파일 경로",
+  "Show help": "도움말을 보여줍니다",
+  "Show version number": "버전 넘버를 보여줍니다",
+  "Did you mean %s?": "찾고계신게 %s입니까?",
+  "Arguments %s and %s are mutually exclusive" : "%s와 %s 인자는 같이 사용될 수 없습니다",
+  "Positionals:": "위치:",
+  "command": "명령"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/nb.json b/node_modules/jest-circus/node_modules/yargs/locales/nb.json
new file mode 100644
index 0000000..6f410ed
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/nb.json
@@ -0,0 +1,44 @@
+{
+  "Commands:": "Kommandoer:",
+  "Options:": "Alternativer:",
+  "Examples:": "Eksempler:",
+  "boolean": "boolsk",
+  "count": "antall",
+  "string": "streng",
+  "number": "nummer",
+  "array": "matrise",
+  "required": "obligatorisk",
+  "default": "standard",
+  "default:": "standard:",
+  "choices:": "valg:",
+  "generated-value": "generert-verdi",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s",
+    "other": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s",
+    "other": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Mangler argument verdi: %s",
+    "other": "Mangler argument verdier: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Mangler obligatorisk argument: %s",
+    "other": "Mangler obligatoriske argumenter: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Ukjent argument: %s",
+    "other": "Ukjente argumenter: %s"
+  },
+  "Invalid values:": "Ugyldige verdier:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s",
+  "Argument check failed: %s": "Argumentsjekk mislyktes: %s",
+  "Implications failed:": "Konsekvensene mislyktes:",
+  "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s",
+  "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s",
+  "Path to JSON config file": "Bane til JSON konfigurasjonsfil",
+  "Show help": "Vis hjelp",
+  "Show version number": "Vis versjonsnummer"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/nl.json b/node_modules/jest-circus/node_modules/yargs/locales/nl.json
new file mode 100644
index 0000000..9ff95c5
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/nl.json
@@ -0,0 +1,49 @@
+{
+  "Commands:": "Commando's:",
+  "Options:": "Opties:",
+  "Examples:": "Voorbeelden:",
+  "boolean": "booleaans",
+  "count": "aantal",
+  "string": "string",
+  "number": "getal",
+  "array": "lijst",
+  "required": "verplicht",
+  "default": "standaard",
+  "default:": "standaard:",
+  "choices:": "keuzes:",
+  "aliases:": "aliassen:",
+  "generated-value": "gegenereerde waarde",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig",
+    "other": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s",
+    "other": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Missende argumentwaarde: %s",
+    "other": "Missende argumentwaarden: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Missend verplicht argument: %s",
+    "other": "Missende verplichte argumenten: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Onbekend argument: %s",
+    "other": "Onbekende argumenten: %s"
+  },
+  "Invalid values:": "Ongeldige waarden:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s",
+  "Argument check failed: %s": "Argumentcontrole mislukt: %s",
+  "Implications failed:": "Ontbrekende afhankelijke argumenten:",
+  "Not enough arguments following: %s": "Niet genoeg argumenten na: %s",
+  "Invalid JSON config file: %s": "Ongeldig JSON-config-bestand: %s",
+  "Path to JSON config file": "Pad naar JSON-config-bestand",
+  "Show help": "Toon help",
+  "Show version number": "Toon versienummer",
+  "Did you mean %s?": "Bedoelde u misschien %s?",
+  "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s kunnen niet tegelijk gebruikt worden",
+  "Positionals:": "Positie-afhankelijke argumenten",
+  "command": "commando"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/nn.json b/node_modules/jest-circus/node_modules/yargs/locales/nn.json
new file mode 100644
index 0000000..24479ac
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/nn.json
@@ -0,0 +1,44 @@
+{
+  "Commands:": "Kommandoar:",
+  "Options:": "Alternativ:",
+  "Examples:": "Døme:",
+  "boolean": "boolsk",
+  "count": "mengd",
+  "string": "streng",
+  "number": "nummer",
+  "array": "matrise",
+  "required": "obligatorisk",
+  "default": "standard",
+  "default:": "standard:",
+  "choices:": "val:",
+  "generated-value": "generert-verdi",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s",
+    "other": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "For mange ikkje-alternativ argument: fekk %s, maksimum %s",
+    "other": "For mange ikkje-alternativ argument: fekk %s, maksimum %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Manglar argumentverdi: %s",
+    "other": "Manglar argumentverdiar: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Manglar obligatorisk argument: %s",
+    "other": "Manglar obligatoriske argument: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Ukjent argument: %s",
+    "other": "Ukjende argument: %s"
+  },
+  "Invalid values:": "Ugyldige verdiar:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s",
+  "Argument check failed: %s": "Argumentsjekk mislukkast: %s",
+  "Implications failed:": "Konsekvensane mislukkast:",
+  "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s",
+  "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s",
+  "Path to JSON config file": "Bane til JSON konfigurasjonsfil",
+  "Show help": "Vis hjelp",
+  "Show version number": "Vis versjonsnummer"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/pirate.json b/node_modules/jest-circus/node_modules/yargs/locales/pirate.json
new file mode 100644
index 0000000..dcb5cb7
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/pirate.json
@@ -0,0 +1,13 @@
+{
+  "Commands:": "Choose yer command:",
+  "Options:": "Options for me hearties!",
+  "Examples:": "Ex. marks the spot:",
+  "required": "requi-yar-ed",
+  "Missing required argument: %s": {
+    "one": "Ye be havin' to set the followin' argument land lubber: %s",
+    "other": "Ye be havin' to set the followin' arguments land lubber: %s"
+  },
+  "Show help": "Parlay this here code of conduct",
+  "Show version number": "'Tis the version ye be askin' fer",
+  "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/pl.json b/node_modules/jest-circus/node_modules/yargs/locales/pl.json
new file mode 100644
index 0000000..a41d4bd
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/pl.json
@@ -0,0 +1,49 @@
+{
+  "Commands:": "Polecenia:",
+  "Options:": "Opcje:",
+  "Examples:": "Przykłady:",
+  "boolean": "boolean",
+  "count": "ilość",
+  "string": "ciąg znaków",
+  "number": "liczba",
+  "array": "tablica",
+  "required": "wymagany",
+  "default": "domyślny",
+  "default:": "domyślny:",
+  "choices:": "dostępne:",
+  "aliases:": "aliasy:",
+  "generated-value": "wygenerowana-wartość",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s",
+    "other": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s",
+    "other": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Brak wartości dla argumentu: %s",
+    "other": "Brak wartości dla argumentów: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Brak wymaganego argumentu: %s",
+    "other": "Brak wymaganych argumentów: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Nieznany argument: %s",
+    "other": "Nieznane argumenty: %s"
+  },
+  "Invalid values:": "Nieprawidłowe wartości:",
+  "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s",
+  "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s",
+  "Implications failed:": "Założenia nie zostały spełnione:",
+  "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s",
+  "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s",
+  "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON",
+  "Show help": "Pokaż pomoc",
+  "Show version number": "Pokaż numer wersji",
+  "Did you mean %s?": "Czy chodziło Ci o %s?",
+  "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają",
+  "Positionals:": "Pozycyjne:",
+  "command": "polecenie"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/pt.json b/node_modules/jest-circus/node_modules/yargs/locales/pt.json
new file mode 100644
index 0000000..0c8ac99
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/pt.json
@@ -0,0 +1,45 @@
+{
+  "Commands:": "Comandos:",
+  "Options:": "Opções:",
+  "Examples:": "Exemplos:",
+  "boolean": "boolean",
+  "count": "contagem",
+  "string": "cadeia de caracteres",
+  "number": "número",
+  "array": "arranjo",
+  "required": "requerido",
+  "default": "padrão",
+  "default:": "padrão:",
+  "choices:": "escolhas:",
+  "generated-value": "valor-gerado",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s",
+    "other": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Excesso de argumentos não opcionais: recebido %s, máximo de %s",
+    "other": "Excesso de argumentos não opcionais: recebido %s, máximo de %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Falta valor de argumento: %s",
+    "other": "Falta valores de argumento: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Falta argumento obrigatório: %s",
+    "other": "Faltando argumentos obrigatórios: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argumento desconhecido: %s",
+    "other": "Argumentos desconhecidos: %s"
+  },
+  "Invalid values:": "Valores inválidos:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s",
+  "Argument check failed: %s": "Verificação de argumento falhou: %s",
+  "Implications failed:": "Implicações falharam:",
+  "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s",
+  "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s",
+  "Path to JSON config file": "Caminho para o arquivo de configuração em JSON",
+  "Show help": "Mostra ajuda",
+  "Show version number": "Mostra número de versão",
+  "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/pt_BR.json b/node_modules/jest-circus/node_modules/yargs/locales/pt_BR.json
new file mode 100644
index 0000000..eae1ec6
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/pt_BR.json
@@ -0,0 +1,48 @@
+{
+  "Commands:": "Comandos:",
+  "Options:": "Opções:",
+  "Examples:": "Exemplos:",
+  "boolean": "booleano",
+  "count": "contagem",
+  "string": "string",
+  "number": "número",
+  "array": "array",
+  "required": "obrigatório",
+  "default:": "padrão:",
+  "choices:": "opções:",
+  "aliases:": "sinônimos:",
+  "generated-value": "valor-gerado",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s",
+    "other": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Excesso de argumentos: recebido %s, máximo de %s",
+    "other": "Excesso de argumentos: recebido %s, máximo de %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Falta valor de argumento: %s",
+    "other": "Falta valores de argumento: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Falta argumento obrigatório: %s",
+    "other": "Faltando argumentos obrigatórios: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Argumento desconhecido: %s",
+    "other": "Argumentos desconhecidos: %s"
+  },
+  "Invalid values:": "Valores inválidos:",
+  "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s",
+  "Argument check failed: %s": "Verificação de argumento falhou: %s",
+  "Implications failed:": "Implicações falharam:",
+  "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s",
+  "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s",
+  "Path to JSON config file": "Caminho para o arquivo JSON de configuração",
+  "Show help": "Exibe ajuda",
+  "Show version number": "Exibe a versão",
+  "Did you mean %s?": "Você quis dizer %s?",
+  "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos",
+  "Positionals:": "Posicionais:",
+  "command": "comando"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/ru.json b/node_modules/jest-circus/node_modules/yargs/locales/ru.json
new file mode 100644
index 0000000..5f7f768
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/ru.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "Команды:",
+  "Options:": "Опции:",
+  "Examples:": "Примеры:",
+  "boolean": "булевый тип",
+  "count": "подсчет",
+  "string": "строковой тип",
+  "number": "число",
+  "array": "массив",
+  "required": "необходимо",
+  "default": "по умолчанию",
+  "default:": "по умолчанию:",
+  "choices:": "возможности:",
+  "aliases:": "алиасы:",
+  "generated-value": "генерированное значение",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s",
+    "other": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s",
+    "other": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Не хватает значения аргумента: %s",
+    "other": "Не хватает значений аргументов: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Не хватает необходимого аргумента: %s",
+    "other": "Не хватает необходимых аргументов: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Неизвестный аргумент: %s",
+    "other": "Неизвестные аргументы: %s"
+  },
+  "Invalid values:": "Недействительные значения:",
+  "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s",
+  "Argument check failed: %s": "Проверка аргументов не удалась: %s",
+  "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:",
+  "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s",
+  "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s",
+  "Path to JSON config file": "Путь к файлу конфигурации JSON",
+  "Show help": "Показать помощь",
+  "Show version number": "Показать номер версии",
+  "Did you mean %s?": "Вы имели в виду %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/th.json b/node_modules/jest-circus/node_modules/yargs/locales/th.json
new file mode 100644
index 0000000..33b048e
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/th.json
@@ -0,0 +1,46 @@
+{
+  "Commands:": "คอมมาน",
+  "Options:": "ออฟชั่น",
+  "Examples:": "ตัวอย่าง",
+  "boolean": "บูลีน",
+  "count": "นับ",
+  "string": "สตริง",
+  "number": "ตัวเลข",
+  "array": "อาเรย์",
+  "required": "จำเป็น",
+  "default": "ค่าเริ่มต้",
+  "default:": "ค่าเริ่มต้น",
+  "choices:": "ตัวเลือก",
+  "aliases:": "เอเลียส",
+  "generated-value": "ค่าที่ถูกสร้างขึ้น",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า",
+    "other": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า",
+    "other": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า"
+  },
+  "Missing argument value: %s": {
+    "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s",
+    "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s",
+    "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s",
+    "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s"
+  },
+  "Invalid values:": "ค่าไม่ถูกต้อง:",
+  "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s",
+  "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s",
+  "Implications failed:": "Implications ไม่สำเร็จ:",
+  "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s",
+  "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s",
+  "Path to JSON config file": "พาทไฟล์คอนฟิค JSON",
+  "Show help": "ขอความช่วยเหลือ",
+  "Show version number": "แสดงตัวเลขเวอร์ชั่น",
+  "Did you mean %s?": "คุณหมายถึง %s?"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/tr.json b/node_modules/jest-circus/node_modules/yargs/locales/tr.json
new file mode 100644
index 0000000..0d0d2cc
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/tr.json
@@ -0,0 +1,48 @@
+{
+  "Commands:": "Komutlar:",
+  "Options:": "Seçenekler:",
+  "Examples:": "Örnekler:",
+  "boolean": "boolean",
+  "count": "sayı",
+  "string": "string",
+  "number": "numara",
+  "array": "array",
+  "required": "zorunlu",
+  "default": "varsayılan",
+  "default:": "varsayılan:",
+  "choices:": "seçimler:",
+  "aliases:": "takma adlar:",
+  "generated-value": "oluşturulan-değer",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli",
+    "other": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s",
+    "other": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s"
+  },
+  "Missing argument value: %s": {
+    "one": "Eksik argüman değeri: %s",
+    "other": "Eksik argüman değerleri: %s"
+  },
+  "Missing required argument: %s": {
+    "one": "Eksik zorunlu argüman: %s",
+    "other": "Eksik zorunlu argümanlar: %s"
+  },
+  "Unknown argument: %s": {
+    "one": "Bilinmeyen argüman: %s",
+    "other": "Bilinmeyen argümanlar: %s"
+  },
+  "Invalid values:": "Geçersiz değerler:",
+  "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s",
+  "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s",
+  "Implications failed:": "Sonuçlar başarısız oldu:",
+  "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı",
+  "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s",
+  "Path to JSON config file": "JSON yapılandırma dosya konumu",
+  "Show help": "Yardım detaylarını göster",
+  "Show version number": "Versiyon detaylarını göster",
+  "Did you mean %s?": "Bunu mu demek istediniz: %s?",
+  "Positionals:": "Sıralılar:",
+  "command": "komut"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/zh_CN.json b/node_modules/jest-circus/node_modules/yargs/locales/zh_CN.json
new file mode 100644
index 0000000..257d26b
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/zh_CN.json
@@ -0,0 +1,48 @@
+{
+  "Commands:": "命令:",
+  "Options:": "选项:",
+  "Examples:": "示例:",
+  "boolean": "布尔",
+  "count": "计数",
+  "string": "字符串",
+  "number": "数字",
+  "array": "数组",
+  "required": "必需",
+  "default": "默认值",
+  "default:": "默认值:",
+  "choices:": "可选值:",
+  "generated-value": "生成的值",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个",
+    "other": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个",
+    "other": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个"
+  },
+  "Missing argument value: %s": {
+    "one": "没有给此选项指定值:%s",
+    "other": "没有给这些选项指定值:%s"
+  },
+  "Missing required argument: %s": {
+    "one": "缺少必须的选项:%s",
+    "other": "缺少这些必须的选项:%s"
+  },
+  "Unknown argument: %s": {
+    "one": "无法识别的选项:%s",
+    "other": "无法识别这些选项:%s"
+  },
+  "Invalid values:": "无效的选项值:",
+  "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s",
+  "Argument check failed: %s": "选项值验证失败:%s",
+  "Implications failed:": "缺少依赖的选项:",
+  "Not enough arguments following: %s": "没有提供足够的值给此选项:%s",
+  "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s",
+  "Path to JSON config file": "JSON 配置文件的路径",
+  "Show help": "显示帮助信息",
+  "Show version number": "显示版本号",
+  "Did you mean %s?": "是指 %s?",
+  "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的",
+  "Positionals:": "位置:",
+  "command": "命令"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/locales/zh_TW.json b/node_modules/jest-circus/node_modules/yargs/locales/zh_TW.json
new file mode 100644
index 0000000..e3c7bcf
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/locales/zh_TW.json
@@ -0,0 +1,47 @@
+{
+  "Commands:": "命令:",
+  "Options:": "選項:",
+  "Examples:": "例:",
+  "boolean": "布林",
+  "count": "次數",
+  "string": "字串",
+  "number": "數字",
+  "array": "陣列",
+  "required": "必須",
+  "default": "預設值",
+  "default:": "預設值:",
+  "choices:": "可選值:",
+  "aliases:": "別名:",
+  "generated-value": "生成的值",
+  "Not enough non-option arguments: got %s, need at least %s": {
+    "one": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個",
+    "other": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個"
+  },
+  "Too many non-option arguments: got %s, maximum of %s": {
+    "one": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個",
+    "other": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個"
+  },
+  "Missing argument value: %s": {
+    "one": "此引數無指定值:%s",
+    "other": "這些引數無指定值:%s"
+  },
+  "Missing required argument: %s": {
+    "one": "缺少必須的引數:%s",
+    "other": "缺少這些必須的引數:%s"
+  },
+  "Unknown argument: %s": {
+    "one": "未知的引數:%s",
+    "other": "未知的這些引數:%s"
+  },
+  "Invalid values:": "無效的選項值:",
+  "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s",
+  "Argument check failed: %s": "引數驗證失敗:%s",
+  "Implications failed:": "缺少依賴的選項:",
+  "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s",
+  "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s",
+  "Path to JSON config file": "JSON 設置文件的路徑",
+  "Show help": "顯示說明",
+  "Show version number": "顯示版本",
+  "Did you mean %s?": "是指 %s?",
+  "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 是互斥的"
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/package.json b/node_modules/jest-circus/node_modules/yargs/package.json
new file mode 100644
index 0000000..dc3018a
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/package.json
@@ -0,0 +1,92 @@
+{
+  "name": "yargs",
+  "version": "15.4.1",
+  "description": "yargs the modern, pirate-themed, successor to optimist.",
+  "main": "./index.js",
+  "contributors": [
+    {
+      "name": "Yargs Contributors",
+      "url": "https://github.com/yargs/yargs/graphs/contributors"
+    }
+  ],
+  "files": [
+    "index.js",
+    "yargs.js",
+    "build",
+    "locales",
+    "LICENSE"
+  ],
+  "dependencies": {
+    "cliui": "^6.0.0",
+    "decamelize": "^1.2.0",
+    "find-up": "^4.1.0",
+    "get-caller-file": "^2.0.1",
+    "require-directory": "^2.1.1",
+    "require-main-filename": "^2.0.0",
+    "set-blocking": "^2.0.0",
+    "string-width": "^4.2.0",
+    "which-module": "^2.0.0",
+    "y18n": "^4.0.0",
+    "yargs-parser": "^18.1.2"
+  },
+  "devDependencies": {
+    "@types/chai": "^4.2.11",
+    "@types/decamelize": "^1.2.0",
+    "@types/mocha": "^7.0.2",
+    "@types/node": "^10.0.3",
+    "@typescript-eslint/eslint-plugin": "^3.0.0",
+    "@typescript-eslint/parser": "^3.0.0",
+    "c8": "^7.0.0",
+    "chai": "^4.2.0",
+    "chalk": "^4.0.0",
+    "coveralls": "^3.0.9",
+    "cpr": "^3.0.1",
+    "cross-spawn": "^7.0.0",
+    "es6-promise": "^4.2.5",
+    "eslint": "^6.8.0",
+    "eslint-plugin-import": "^2.20.1",
+    "eslint-plugin-node": "^11.0.0",
+    "gts": "^2.0.0-alpha.4",
+    "hashish": "0.0.4",
+    "mocha": "^7.0.0",
+    "rimraf": "^3.0.2",
+    "standardx": "^5.0.0",
+    "typescript": "^3.7.0",
+    "which": "^2.0.0",
+    "yargs-test-extends": "^1.0.1"
+  },
+  "scripts": {
+    "fix": "standardx --fix  && standardx --fix **/*.ts",
+    "posttest": "npm run check",
+    "test": "c8 mocha --require ./test/before.js --timeout=12000 --check-leaks",
+    "coverage": "c8 report --check-coverage",
+    "check": "standardx && standardx **/*.ts",
+    "compile": "rimraf build && tsc",
+    "prepare": "npm run compile",
+    "pretest": "npm run compile -- -p tsconfig.test.json"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/yargs/yargs.git"
+  },
+  "homepage": "https://yargs.js.org/",
+  "standardx": {
+    "ignore": [
+      "build",
+      "**/example/**"
+    ]
+  },
+  "keywords": [
+    "argument",
+    "args",
+    "option",
+    "parser",
+    "parsing",
+    "cli",
+    "command"
+  ],
+  "license": "MIT",
+  "engines": {
+    "node": ">=8"
+  }
+}
diff --git a/node_modules/jest-circus/node_modules/yargs/yargs.js b/node_modules/jest-circus/node_modules/yargs/yargs.js
new file mode 100644
index 0000000..93e8059
--- /dev/null
+++ b/node_modules/jest-circus/node_modules/yargs/yargs.js
@@ -0,0 +1,14 @@
+'use strict'
+
+// an async function fails early in Node.js versions prior to 8.
+async function requiresNode8OrGreater () {}
+requiresNode8OrGreater()
+
+const { Yargs, rebase } = require('./build/lib/yargs')
+const Parser = require('yargs-parser')
+
+exports = module.exports = Yargs
+exports.rebase = rebase
+
+// allow consumers to directly use the version of yargs-parser used by yargs
+exports.Parser = Parser
diff --git a/node_modules/jest-circus/package.json b/node_modules/jest-circus/package.json
index 689ade4..1871eb3 100644
--- a/node_modules/jest-circus/package.json
+++ b/node_modules/jest-circus/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-circus",
-  "version": "26.4.2",
+  "version": "26.5.3",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,35 +11,36 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "@babel/traverse": "^7.1.0",
-    "@jest/environment": "^26.3.0",
-    "@jest/test-result": "^26.3.0",
-    "@jest/types": "^26.3.0",
+    "@jest/environment": "^26.5.2",
+    "@jest/test-result": "^26.5.2",
+    "@jest/types": "^26.5.2",
+    "@types/babel__traverse": "^7.0.4",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "co": "^4.6.0",
     "dedent": "^0.7.0",
-    "expect": "^26.4.2",
+    "expect": "^26.5.3",
     "is-generator-fn": "^2.0.0",
-    "jest-each": "^26.4.2",
-    "jest-matcher-utils": "^26.4.2",
-    "jest-message-util": "^26.3.0",
-    "jest-runner": "^26.4.2",
-    "jest-runtime": "^26.4.2",
-    "jest-snapshot": "^26.4.2",
-    "jest-util": "^26.3.0",
-    "pretty-format": "^26.4.2",
+    "jest-each": "^26.5.2",
+    "jest-matcher-utils": "^26.5.2",
+    "jest-message-util": "^26.5.2",
+    "jest-runner": "^26.5.3",
+    "jest-runtime": "^26.5.3",
+    "jest-snapshot": "^26.5.3",
+    "jest-util": "^26.5.2",
+    "pretty-format": "^26.5.2",
     "stack-utils": "^2.0.2",
     "throat": "^5.0.0"
   },
   "devDependencies": {
     "@babel/core": "^7.1.0",
     "@babel/register": "^7.0.0",
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "@types/babel__traverse": "^7.0.4",
     "@types/co": "^4.6.0",
     "@types/dedent": "^0.7.0",
     "@types/graceful-fs": "^4.1.3",
-    "@types/stack-utils": "^1.0.1",
+    "@types/stack-utils": "^2.0.0",
     "execa": "^4.0.0",
     "graceful-fs": "^4.2.4"
   },
@@ -49,5 +50,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "71152afbbda76fd09ddb2527b54c365d753f42aa"
 }
diff --git a/node_modules/jest-each/node_modules/@jest/types/build/Circus.d.ts b/node_modules/jest-each/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/jest-each/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/jest-each/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/jest-each/node_modules/@jest/types/build/Config.d.ts b/node_modules/jest-each/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/jest-each/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/jest-each/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/jest-each/node_modules/@jest/types/build/Global.d.ts b/node_modules/jest-each/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/jest-each/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/jest-each/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/jest-each/node_modules/@jest/types/package.json b/node_modules/jest-each/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/jest-each/node_modules/@jest/types/package.json
+++ b/node_modules/jest-each/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-each/node_modules/jest-util/build/ErrorWithStack.d.ts b/node_modules/jest-each/node_modules/jest-util/build/ErrorWithStack.d.ts
index 2698f36..79764bd 100644
--- a/node_modules/jest-each/node_modules/jest-util/build/ErrorWithStack.d.ts
+++ b/node_modules/jest-each/node_modules/jest-util/build/ErrorWithStack.d.ts
@@ -5,5 +5,5 @@
  * LICENSE file in the root directory of this source tree.
  */
 export default class ErrorWithStack extends Error {
-    constructor(message: string | undefined, callsite: Function);
+    constructor(message: string | undefined, callsite: (...args: Array<any>) => unknown);
 }
diff --git a/node_modules/jest-each/node_modules/jest-util/build/convertDescriptorToString.js b/node_modules/jest-each/node_modules/jest-util/build/convertDescriptorToString.js
index 0cfab68..4b776af 100644
--- a/node_modules/jest-each/node_modules/jest-util/build/convertDescriptorToString.js
+++ b/node_modules/jest-each/node_modules/jest-util/build/convertDescriptorToString.js
@@ -11,6 +11,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 // See: https://github.com/facebook/jest/pull/5154
 function convertDescriptorToString(descriptor) {
   if (
diff --git a/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.d.ts b/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.d.ts
index 4e6cc5b..687684f 100644
--- a/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.d.ts
+++ b/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.d.ts
@@ -5,6 +5,7 @@
  * LICENSE file in the root directory of this source tree.
  */
 import type { Config } from '@jest/types';
+declare type Matcher = (str: Config.Path) => boolean;
 /**
  * Converts a list of globs into a function that matches a path against the
  * globs.
@@ -22,4 +23,5 @@
  * isMatch('pizza.js'); // true
  * isMatch('pizza.test.js'); // false
  */
-export default function globsToMatcher(globs: Array<Config.Glob>): (path: Config.Path) => boolean;
+export default function globsToMatcher(globs: Array<Config.Glob>): Matcher;
+export {};
diff --git a/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.js b/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.js
index e517762..9e63c5c 100644
--- a/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.js
+++ b/node_modules/jest-each/node_modules/jest-util/build/globsToMatcher.js
@@ -55,7 +55,7 @@
   if (globs.length === 0) {
     // Since there were no globs given, we can simply have a fast path here and
     // return with a very simple function.
-    return _ => false;
+    return () => false;
   }
 
   const matchers = globs.map(glob => {
diff --git a/node_modules/jest-each/node_modules/jest-util/package.json b/node_modules/jest-each/node_modules/jest-util/package.json
index 01d0850..b584b93 100644
--- a/node_modules/jest-each/node_modules/jest-util/package.json
+++ b/node_modules/jest-each/node_modules/jest-util/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-util",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -10,7 +10,7 @@
   "main": "build/index.js",
   "types": "build/index.d.ts",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "@types/node": "*",
     "chalk": "^4.0.0",
     "graceful-fs": "^4.2.4",
@@ -28,5 +28,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-each/node_modules/pretty-format/build/index.js b/node_modules/jest-each/node_modules/pretty-format/build/index.js
index 9519847..6e10cb1 100644
--- a/node_modules/jest-each/node_modules/pretty-format/build/index.js
+++ b/node_modules/jest-each/node_modules/pretty-format/build/index.js
@@ -32,6 +32,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const toString = Object.prototype.toString;
 const toISOString = Date.prototype.toISOString;
 const errorToString = Error.prototype.toString;
@@ -554,6 +556,5 @@
   Immutable: _Immutable.default,
   ReactElement: _ReactElement.default,
   ReactTestComponent: _ReactTestComponent.default
-}; // eslint-disable-next-line no-redeclare
-
+};
 module.exports = prettyFormat;
diff --git a/node_modules/jest-each/node_modules/pretty-format/build/plugins/DOMCollection.js b/node_modules/jest-each/node_modules/pretty-format/build/plugins/DOMCollection.js
index f256551..1ae3750 100644
--- a/node_modules/jest-each/node_modules/pretty-format/build/plugins/DOMCollection.js
+++ b/node_modules/jest-each/node_modules/pretty-format/build/plugins/DOMCollection.js
@@ -13,6 +13,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const SPACE = ' ';
 const OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap'];
 const ARRAY_REGEXP = /^(HTML\w*Collection|NodeList)$/;
diff --git a/node_modules/jest-each/node_modules/pretty-format/build/plugins/lib/markup.d.ts b/node_modules/jest-each/node_modules/pretty-format/build/plugins/lib/markup.d.ts
index 6155219..60d99ab 100644
--- a/node_modules/jest-each/node_modules/pretty-format/build/plugins/lib/markup.d.ts
+++ b/node_modules/jest-each/node_modules/pretty-format/build/plugins/lib/markup.d.ts
@@ -6,7 +6,7 @@
  */
 import type { Config, Printer, Refs } from '../../types';
 export declare const printProps: (keys: Array<string>, props: Record<string, unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
-export declare const printChildren: (children: Array<any>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
+export declare const printChildren: (children: Array<unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
 export declare const printText: (text: string, config: Config) => string;
 export declare const printComment: (comment: string, config: Config) => string;
 export declare const printElement: (type: string, printedProps: string, printedChildren: string, config: Config, indentation: string) => string;
diff --git a/node_modules/jest-each/node_modules/pretty-format/package.json b/node_modules/jest-each/node_modules/pretty-format/package.json
index 7f0c77b..093ddc7 100644
--- a/node_modules/jest-each/node_modules/pretty-format/package.json
+++ b/node_modules/jest-each/node_modules/pretty-format/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pretty-format",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -12,7 +12,7 @@
   "types": "build/index.d.ts",
   "author": "James Kyle <me@thejameskyle.com>",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "ansi-regex": "^5.0.0",
     "ansi-styles": "^4.0.0",
     "react-is": "^16.12.0"
@@ -22,7 +22,7 @@
     "@types/react-is": "^16.7.1",
     "@types/react-test-renderer": "*",
     "immutable": "4.0.0-rc.9",
-    "jest-util": "^26.3.0",
+    "jest-util": "^26.5.2",
     "react": "*",
     "react-dom": "*",
     "react-test-renderer": "*"
@@ -33,5 +33,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-each/package.json b/node_modules/jest-each/package.json
index 8327ec9..eab069a 100644
--- a/node_modules/jest-each/package.json
+++ b/node_modules/jest-each/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-each",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "description": "Parameterised tests for Jest",
   "main": "build/index.js",
   "types": "build/index.d.ts",
@@ -18,11 +18,11 @@
   "author": "Matt Phillips (mattphillips)",
   "license": "MIT",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "chalk": "^4.0.0",
     "jest-get-type": "^26.3.0",
-    "jest-util": "^26.3.0",
-    "pretty-format": "^26.4.2"
+    "jest-util": "^26.5.2",
+    "pretty-format": "^26.5.2"
   },
   "engines": {
     "node": ">= 10.14.2"
@@ -30,5 +30,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-matcher-utils/build/Replaceable.d.ts b/node_modules/jest-matcher-utils/build/Replaceable.d.ts
index 2901cd4..c02db00 100644
--- a/node_modules/jest-matcher-utils/build/Replaceable.d.ts
+++ b/node_modules/jest-matcher-utils/build/Replaceable.d.ts
@@ -4,12 +4,12 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
-declare type ReplaceableForEachCallBack = (value: any, key: any, object: any) => void;
+declare type ReplaceableForEachCallBack = (value: unknown, key: unknown, object: unknown) => void;
 export default class Replaceable {
     object: any;
     type: string;
     constructor(object: any);
-    static isReplaceable(obj1: any, obj2: any): boolean;
+    static isReplaceable(obj1: unknown, obj2: unknown): boolean;
     forEach(cb: ReplaceableForEachCallBack): void;
     get(key: any): any;
     set(key: any, value: any): void;
diff --git a/node_modules/jest-matcher-utils/build/index.js b/node_modules/jest-matcher-utils/build/index.js
index a67ebcf..9e375cc 100644
--- a/node_modules/jest-matcher-utils/build/index.js
+++ b/node_modules/jest-matcher-utils/build/index.js
@@ -71,6 +71,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const {
   AsymmetricMatcher,
   DOMCollection,
diff --git a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Circus.d.ts b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Circus.d.ts
index e6ad88d..417a5fe 100644
--- a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Circus.d.ts
+++ b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Circus.d.ts
@@ -18,7 +18,7 @@
 export declare type AsyncFn = TestFn | HookFn;
 export declare type SharedHookType = 'afterAll' | 'beforeAll';
 export declare type HookType = SharedHookType | 'afterEach' | 'beforeEach';
-export declare type TestContext = Record<string, any>;
+export declare type TestContext = Record<string, unknown>;
 export declare type Exception = any;
 export declare type FormattedError = string;
 export declare type Hook = {
@@ -33,6 +33,9 @@
     (event: SyncEvent, state: State): void;
 }
 export declare type Event = SyncEvent | AsyncEvent;
+interface JestGlobals extends Global.TestFrameworkGlobals {
+    expect: unknown;
+}
 export declare type SyncEvent = {
     asyncError: Error;
     mode: BlockMode;
@@ -62,6 +65,7 @@
 export declare type AsyncEvent = {
     name: 'setup';
     testNamePattern?: string;
+    runtimeGlobals: JestGlobals;
     parentProcess: Process;
 } | {
     name: 'include_test_location_in_result';
@@ -143,7 +147,7 @@
 export declare type TestResults = Array<TestResult>;
 export declare type GlobalErrorHandlers = {
     uncaughtException: Array<(exception: Exception) => void>;
-    unhandledRejection: Array<(exception: Exception, promise: Promise<any>) => void>;
+    unhandledRejection: Array<(exception: Exception, promise: Promise<unknown>) => void>;
 };
 export declare type State = {
     currentDescribeBlock: DescribeBlock;
diff --git a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Config.d.ts b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Config.d.ts
index f280c29..5f94989 100644
--- a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Config.d.ts
+++ b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Config.d.ts
@@ -42,6 +42,7 @@
     forceCoverageMatch: Array<Glob>;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     maxConcurrency: number;
     maxWorkers: number | string;
     moduleDirectories: Array<string>;
@@ -64,7 +65,7 @@
     slowTestThreshold: number;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -122,6 +123,7 @@
     globalSetup: string | null | undefined;
     globalTeardown: string | null | undefined;
     haste: HasteConfig;
+    injectGlobals: boolean;
     reporters: Array<string | ReporterConfig>;
     logHeapUsage: boolean;
     lastCommit: boolean;
@@ -169,7 +171,7 @@
     snapshotSerializers: Array<Path>;
     errorOnDeprecated: boolean;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testFailureExitCode: string | number;
     testLocationInResults: boolean;
     testMatch: Array<Glob>;
@@ -195,7 +197,7 @@
     watch: boolean;
     watchAll: boolean;
     watchman: boolean;
-    watchPlugins: Array<string | [string, Record<string, any>]>;
+    watchPlugins: Array<string | [string, Record<string, unknown>]>;
 }>;
 export declare type SnapshotUpdateState = 'all' | 'new' | 'none';
 declare type NotifyMode = 'always' | 'failure' | 'success' | 'change' | 'success-change' | 'failure-change';
@@ -273,7 +275,7 @@
     watchman: boolean;
     watchPlugins?: Array<{
         path: string;
-        config: Record<string, any>;
+        config: Record<string, unknown>;
     }> | null;
 };
 export declare type ProjectConfig = {
@@ -295,6 +297,7 @@
     globalTeardown?: string;
     globals: ConfigGlobals;
     haste: HasteConfig;
+    injectGlobals: boolean;
     moduleDirectories: Array<string>;
     moduleFileExtensions: Array<string>;
     moduleLoader?: Path;
@@ -318,7 +321,7 @@
     snapshotResolver?: Path;
     snapshotSerializers: Array<Path>;
     testEnvironment: string;
-    testEnvironmentOptions: Record<string, any>;
+    testEnvironmentOptions: Record<string, unknown>;
     testMatch: Array<Glob>;
     testLocationInResults: boolean;
     testPathIgnorePatterns: Array<string>;
@@ -363,6 +366,7 @@
     globalTeardown: string | null | undefined;
     haste: string;
     init: boolean;
+    injectGlobals: boolean;
     json: boolean;
     lastCommit: boolean;
     logHeapUsage: boolean;
diff --git a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Global.d.ts b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Global.d.ts
index c1d541b..8670a49 100644
--- a/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Global.d.ts
+++ b/node_modules/jest-matcher-utils/node_modules/@jest/types/build/Global.d.ts
@@ -24,9 +24,12 @@
 export declare type EachTestFn<EachCallback extends TestCallback> = (...args: Array<any>) => ReturnType<EachCallback>;
 declare type Jasmine = {
     _DEFAULT_TIMEOUT_INTERVAL?: number;
-    addMatchers: Function;
+    addMatchers: (matchers: Record<string, unknown>) => void;
 };
-declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => void);
+declare type Each<EachCallback extends TestCallback> = ((table: EachTable, ...taggedTemplateData: Array<unknown>) => (title: string, test: EachTestFn<EachCallback>, timeout?: number) => void) | (() => () => void);
+export interface HookBase {
+    (fn: HookFn, timeout?: number): void;
+}
 export interface ItBase {
     (testName: TestName, fn: TestFn, timeout?: number): void;
     each: Each<TestFn>;
@@ -34,7 +37,7 @@
 export interface It extends ItBase {
     only: ItBase;
     skip: ItBase;
-    todo: (testName: TestName, ...rest: Array<any>) => void;
+    todo: (testName: TestName) => void;
 }
 export interface ItConcurrentBase {
     (testName: string, testFn: ConcurrentTestFn, timeout?: number): void;
@@ -66,10 +69,10 @@
     describe: Describe;
     xdescribe: DescribeBase;
     fdescribe: DescribeBase;
-    beforeAll: HookFn;
-    beforeEach: HookFn;
-    afterEach: HookFn;
-    afterAll: HookFn;
+    beforeAll: HookBase;
+    beforeEach: HookBase;
+    afterEach: HookBase;
+    afterAll: HookBase;
 }
 export interface GlobalAdditions extends TestFrameworkGlobals {
     __coverage__: CoverageMapData;
@@ -80,6 +83,6 @@
     spyOnProperty: () => void;
 }
 export interface Global extends GlobalAdditions, Omit<NodeJS.Global, keyof GlobalAdditions> {
-    [extras: string]: any;
+    [extras: string]: unknown;
 }
 export {};
diff --git a/node_modules/jest-matcher-utils/node_modules/@jest/types/package.json b/node_modules/jest-matcher-utils/node_modules/@jest/types/package.json
index 772dfac..c8aa07c 100644
--- a/node_modules/jest-matcher-utils/node_modules/@jest/types/package.json
+++ b/node_modules/jest-matcher-utils/node_modules/@jest/types/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@jest/types",
-  "version": "26.3.0",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -22,5 +22,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-matcher-utils/node_modules/diff-sequences/build/index.js b/node_modules/jest-matcher-utils/node_modules/diff-sequences/build/index.js
index 445260b..5d565d9 100644
--- a/node_modules/jest-matcher-utils/node_modules/diff-sequences/build/index.js
+++ b/node_modules/jest-matcher-utils/node_modules/diff-sequences/build/index.js
@@ -688,10 +688,8 @@
 };
 
 const validateLength = (name, arg) => {
-  const type = typeof arg;
-
-  if (type !== 'number') {
-    throw new TypeError(`${pkg}: ${name} typeof ${type} is not a number`);
+  if (typeof arg !== 'number') {
+    throw new TypeError(`${pkg}: ${name} typeof ${typeof arg} is not a number`);
   }
 
   if (!Number.isSafeInteger(arg)) {
diff --git a/node_modules/jest-matcher-utils/node_modules/diff-sequences/package.json b/node_modules/jest-matcher-utils/node_modules/diff-sequences/package.json
index c56b179..808f36c 100644
--- a/node_modules/jest-matcher-utils/node_modules/diff-sequences/package.json
+++ b/node_modules/jest-matcher-utils/node_modules/diff-sequences/package.json
@@ -1,6 +1,6 @@
 {
   "name": "diff-sequences",
-  "version": "26.3.0",
+  "version": "26.5.0",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -31,5 +31,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "3a7e06fe855515a848241bb06a6f6e117847443d"
+  "gitHead": "68d1b1b638bc7464c2794a957c1b894de7da2ee3"
 }
diff --git a/node_modules/jest-matcher-utils/node_modules/jest-diff/package.json b/node_modules/jest-matcher-utils/node_modules/jest-diff/package.json
index 91b1855..45eef6e 100644
--- a/node_modules/jest-matcher-utils/node_modules/jest-diff/package.json
+++ b/node_modules/jest-matcher-utils/node_modules/jest-diff/package.json
@@ -1,6 +1,6 @@
 {
   "name": "jest-diff",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -11,12 +11,12 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "chalk": "^4.0.0",
-    "diff-sequences": "^26.3.0",
+    "diff-sequences": "^26.5.0",
     "jest-get-type": "^26.3.0",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "strip-ansi": "^6.0.0"
   },
   "engines": {
@@ -25,5 +25,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/index.js b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/index.js
index 9519847..6e10cb1 100644
--- a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/index.js
+++ b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/index.js
@@ -32,6 +32,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const toString = Object.prototype.toString;
 const toISOString = Date.prototype.toISOString;
 const errorToString = Error.prototype.toString;
@@ -554,6 +556,5 @@
   Immutable: _Immutable.default,
   ReactElement: _ReactElement.default,
   ReactTestComponent: _ReactTestComponent.default
-}; // eslint-disable-next-line no-redeclare
-
+};
 module.exports = prettyFormat;
diff --git a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/DOMCollection.js b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/DOMCollection.js
index f256551..1ae3750 100644
--- a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/DOMCollection.js
+++ b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/DOMCollection.js
@@ -13,6 +13,8 @@
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  */
+
+/* eslint-disable local/ban-types-eventually */
 const SPACE = ' ';
 const OBJECT_NAMES = ['DOMStringMap', 'NamedNodeMap'];
 const ARRAY_REGEXP = /^(HTML\w*Collection|NodeList)$/;
diff --git a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/lib/markup.d.ts b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/lib/markup.d.ts
index 6155219..60d99ab 100644
--- a/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/lib/markup.d.ts
+++ b/node_modules/jest-matcher-utils/node_modules/pretty-format/build/plugins/lib/markup.d.ts
@@ -6,7 +6,7 @@
  */
 import type { Config, Printer, Refs } from '../../types';
 export declare const printProps: (keys: Array<string>, props: Record<string, unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
-export declare const printChildren: (children: Array<any>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
+export declare const printChildren: (children: Array<unknown>, config: Config, indentation: string, depth: number, refs: Refs, printer: Printer) => string;
 export declare const printText: (text: string, config: Config) => string;
 export declare const printComment: (comment: string, config: Config) => string;
 export declare const printElement: (type: string, printedProps: string, printedChildren: string, config: Config, indentation: string) => string;
diff --git a/node_modules/jest-matcher-utils/node_modules/pretty-format/package.json b/node_modules/jest-matcher-utils/node_modules/pretty-format/package.json
index 7f0c77b..093ddc7 100644
--- a/node_modules/jest-matcher-utils/node_modules/pretty-format/package.json
+++ b/node_modules/jest-matcher-utils/node_modules/pretty-format/package.json
@@ -1,6 +1,6 @@
 {
   "name": "pretty-format",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -12,7 +12,7 @@
   "types": "build/index.d.ts",
   "author": "James Kyle <me@thejameskyle.com>",
   "dependencies": {
-    "@jest/types": "^26.3.0",
+    "@jest/types": "^26.5.2",
     "ansi-regex": "^5.0.0",
     "ansi-styles": "^4.0.0",
     "react-is": "^16.12.0"
@@ -22,7 +22,7 @@
     "@types/react-is": "^16.7.1",
     "@types/react-test-renderer": "*",
     "immutable": "4.0.0-rc.9",
-    "jest-util": "^26.3.0",
+    "jest-util": "^26.5.2",
     "react": "*",
     "react-dom": "*",
     "react-test-renderer": "*"
@@ -33,5 +33,5 @@
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/jest-matcher-utils/package.json b/node_modules/jest-matcher-utils/package.json
index 75158d6..28f4024 100644
--- a/node_modules/jest-matcher-utils/package.json
+++ b/node_modules/jest-matcher-utils/package.json
@@ -1,7 +1,7 @@
 {
   "name": "jest-matcher-utils",
   "description": "A set of utility functions for expect and related packages",
-  "version": "26.4.2",
+  "version": "26.5.2",
   "repository": {
     "type": "git",
     "url": "https://github.com/facebook/jest.git",
@@ -15,16 +15,16 @@
   "types": "build/index.d.ts",
   "dependencies": {
     "chalk": "^4.0.0",
-    "jest-diff": "^26.4.2",
+    "jest-diff": "^26.5.2",
     "jest-get-type": "^26.3.0",
-    "pretty-format": "^26.4.2"
+    "pretty-format": "^26.5.2"
   },
   "devDependencies": {
-    "@jest/test-utils": "^26.3.0",
+    "@jest/test-utils": "^26.5.0",
     "@types/node": "*"
   },
   "publishConfig": {
     "access": "public"
   },
-  "gitHead": "2586a798260886c28b6d28256cdfe354e039d5d1"
+  "gitHead": "d2bacceb51e7f05c9cb6d764d5cd886a2fd71267"
 }
diff --git a/node_modules/strip-bom/index.d.ts b/node_modules/jest-runtime/node_modules/strip-bom/index.d.ts
similarity index 100%
copy from node_modules/strip-bom/index.d.ts
copy to node_modules/jest-runtime/node_modules/strip-bom/index.d.ts
diff --git a/node_modules/jest-runtime/node_modules/strip-bom/index.js b/node_modules/jest-runtime/node_modules/strip-bom/index.js
new file mode 100644
index 0000000..82f9175
--- /dev/null
+++ b/node_modules/jest-runtime/node_modules/strip-bom/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = string => {
+	if (typeof string !== 'string') {
+		throw new TypeError(`Expected a string, got ${typeof string}`);
+	}
+
+	// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
+	// conversion translates it to FEFF (UTF-16 BOM)
+	if (string.charCodeAt(0) === 0xFEFF) {
+		return string.slice(1);
+	}
+
+	return string;
+};
diff --git a/node_modules/cli-cursor/license b/node_modules/jest-runtime/node_modules/strip-bom/license
similarity index 100%
copy from node_modules/cli-cursor/license
copy to node_modules/jest-runtime/node_modules/strip-bom/license
diff --git a/node_modules/jest-runtime/node_modules/strip-bom/package.json b/node_modules/jest-runtime/node_modules/strip-bom/package.json
new file mode 100644
index 0000000..f96ba34
--- /dev/null
+++ b/node_modules/jest-runtime/node_modules/strip-bom/package.json
@@ -0,0 +1,42 @@
+{
+	"name": "strip-bom",
+	"version": "4.0.0",
+	"description": "Strip UTF-8 byte order mark (BOM) from a string",
+	"license": "MIT",
+	"repository": "sindresorhus/strip-bom",
+	"author": {
+		"name": "Sindre Sorhus",
+		"email": "sindresorhus@gmail.com",
+		"url": "sindresorhus.com"
+	},
+	"engines": {
+		"node": ">=8"
+	},
+	"scripts": {
+		"test": "xo && ava && tsd"
+	},
+	"files": [
+		"index.js",
+		"index.d.ts"
+	],
+	"keywords": [
+		"strip",
+		"bom",
+		"byte",
+		"order",
+		"mark",
+		"unicode",
+		"utf8",
+		"utf-8",
+		"remove",
+		"delete",
+		"trim",
+		"text",
+		"string"
+	],
+	"devDependencies": {
+		"ava": "^1.4.1",
+		"tsd": "^0.7.2",
+		"xo": "^0.24.0"
+	}
+}
diff --git a/node_modules/jest-runtime/node_modules/strip-bom/readme.md b/node_modules/jest-runtime/node_modules/strip-bom/readme.md
new file mode 100644
index 0000000..e826851
--- /dev/null
+++ b/node_modules/jest-runtime/node_modules/strip-bom/readme.md
@@ -0,0 +1,54 @@
+# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
+
+> Strip UTF-8 [byte order mark](https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
+
+From Wikipedia:
+
+> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
+
+---
+
+<div align="center">
+	<b>
+		<a href="https://tidelift.com/subscription/pkg/npm-strip-bom?utm_source=npm-strip-bom&utm_medium=referral&utm_campaign=readme">Get professional support for 'strip-bom' with a Tidelift subscription</a>
+	</b>
+	<br>
+	<sub>
+		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
+	</sub>
+</div>
+
+---
+
+## Install
+
+```
+$ npm install strip-bom
+```
+
+
+## Usage
+
+```js
+const stripBom = require('strip-bom');
+
+stripBom('\uFEFFunicorn');
+//=> 'unicorn'
+```
+
+
+## Security
+
+To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
+
+
+## Related
+
+- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
+- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module
+- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/jsdoctypeparser/.editorconfig b/node_modules/jsdoctypeparser/.editorconfig
deleted file mode 100644
index 0f17867..0000000
--- a/node_modules/jsdoctypeparser/.editorconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-indent_size = 2
-indent_style = space
-insert_final_newline = true
-trim_trailing_whitespace = true
diff --git a/node_modules/jsdoctypeparser/.eslintignore b/node_modules/jsdoctypeparser/.eslintignore
deleted file mode 100644
index 51f2096..0000000
--- a/node_modules/jsdoctypeparser/.eslintignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-peg_lib
diff --git a/node_modules/jsdoctypeparser/.eslintrc.json b/node_modules/jsdoctypeparser/.eslintrc.json
deleted file mode 100644
index 3eca35c..0000000
--- a/node_modules/jsdoctypeparser/.eslintrc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "extends": "eslint:recommended",
-  "env": {
-    "node": true,
-    "es6": true
-  },
-  "rules": {
-    "quotes": [2, "single", "avoid-escape"],
-    "no-use-before-define": [2, "nofunc"],
-    "space-infix-ops": [2, { "int32Hint": false }],
-    "curly": [2, "multi-line"],
-    "comma-dangle": [2, "always-multiline"],
-    "camelcase": 0,
-    "no-underscore-dangle": 0
-  }
-}
diff --git a/node_modules/jsdoctypeparser/LICENSE-MIT.txt b/node_modules/jsdoctypeparser/LICENSE-MIT.txt
deleted file mode 100644
index f3c8fa7..0000000
--- a/node_modules/jsdoctypeparser/LICENSE-MIT.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright © 2019 Kuniwak
-
-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.
diff --git a/node_modules/jsdoctypeparser/README.md b/node_modules/jsdoctypeparser/README.md
deleted file mode 100644
index 2936a73..0000000
--- a/node_modules/jsdoctypeparser/README.md
+++ /dev/null
@@ -1,637 +0,0 @@
-# jsdoctypeparser
-
-[![Build Status](https://travis-ci.org/jsdoctypeparser/jsdoctypeparser.svg?branch=master)](https://travis-ci.org/jsdoctypeparser/jsdoctypeparser)
-[![NPM version](https://badge.fury.io/js/jsdoctypeparser.svg)](http://badge.fury.io/js/jsdoctypeparser)
-
-The parser can parse:
-
-* [JSDoc type expressions](https://jsdoc.app/tags-type.html)
-  * `foo.bar`, `String[]`
-* [Closure Compiler type expressions](https://developers.google.com/closure/compiler/docs/js-for-compiler)
-  * `Array<string>`, `function(arg1, arg2): ret`
-* [JSDuck type definitions](https://github.com/senchalabs/jsduck/wiki/Type-Definitions)
-  * `Boolean/"top"/"bottom"`
-* [some Typescript types](https://github.com/Microsoft/TypeScript)
-  * `(x: number) => string`, `typeof x`, `import("./some-module")`
-* Complex type expressions
-  * `Array<Array<string>>`, `function(function(Function))`
-
-## Live demo
-
-The [live demo](https://jsdoctypeparser.github.io) is available.
-
-## Usage (Programmatic)
-
-### Parsing
-
-```javascript
-const {parse} = require('jsdoctypeparser');
-
-const ast = parse('Array<MyClass>');
-```
-
-The `ast` becomes:
-
-```json
-{
-  "type": "GENERIC",
-  "subject": {
-    "type": "NAME",
-    "name": "Array"
-  },
-  "objects": [
-    {
-      "type": "NAME",
-      "name": "MyClass"
-    }
-  ],
-  "meta": {
-    "syntax": "ANGLE_BRACKET"
-  }
-}
-```
-
-See the [AST specifications](https://github.com/Kuniwak/jsdoctypeparser/blob/update-readme/README.md#ast-specifications).
-
-### Publishing
-
-We can stringify the AST nodes by using `publish`.
-
-```javascript
-const {publish} = require('jsdoctypeparser');
-
-const ast = {
-  type: 'GENERIC',
-  subject: {
-    type: 'NAME',
-    name: 'Array'
-  },
-  objects: [
-    {
-      type: 'NAME',
-      name: 'MyClass'
-    }
-  ]
-};
-
-const string = publish(ast);
-```
-
-The `string` becomes:
-
-```json
-"Array<MyClass>"
-```
-
-#### Custom publishing
-
-We can change the stringification strategy by using the 2nd parameter of `publish(node, publisher)`.
-The `publisher` MUST have handlers for all node types (see `lib/NodeType.js`).
-
-And we can override default behavior by using `createDefaultPublisher`.
-
-```javascript
-const {publish, createDefaultPublisher} = require('jsdoctypeparser');
-
-const ast = {
-  type: 'NAME',
-  name: 'MyClass',
-};
-
-const customPublisher = createDefaultPublisher();
-customPublisher.NAME = (node, pub) =>
-  `<a href="./types/${node.name}.html">${node.name}</a>`;
-
-const string = publish(ast, customPublisher);
-```
-
-The `string` becomes:
-
-```html
-<a href="./types/MyClass.html">MyClass</a>
-```
-
-### Traversing
-
-We can traverse the AST by using `traverse`.
-This function takes 3 parameters (a node and an onEnter handler, an onLeave handler).
-The handlers take a visiting node.
-
-```javascript
-const {parse, traverse} = require('jsdoctypeparser');
-const ast = parse('Array<{ key1: function(), key2: A.B.C }>');
-
-function onEnter(node, parentName, parentNode) {
-  console.log('enter', node.type, parentName, parentNode.type);
-}
-
-function onLeave(node, parentName, parentNode) {
-  console.log('leave', node.type, parentName, parentNode.type);
-}
-
-traverse(ast, onEnter, onLeave);
-```
-
-The output will be:
-
-```
-enter GENERIC null null
-enter NAME subject GENERIC
-leave NAME subject GENERIC
-enter RECORD objects GENERIC
-enter RECORD_ENTRY entries RECORD
-enter FUNCTION value RECORD_ENTRY
-leave FUNCTION value RECORD_ENTRY
-leave RECORD_ENTRY entries RECORD
-enter RECORD_ENTRY entries RECORD
-enter MEMBER value RECORD_ENTRY
-enter MEMBER owner MEMBER
-enter NAME owner MEMBER
-leave NAME owner MEMBER
-leave MEMBER owner MEMBER
-leave MEMBER value RECORD_ENTRY
-leave RECORD_ENTRY entries RECORD
-leave RECORD objects GENERIC
-leave GENERIC null null
-```
-
-## AST Specifications
-
-### `NAME`
-
-Example:
-
-```javascript
-/**
- * @type {name}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "NAME",
-  "name": string
-}
-```
-
-### `MEMBER`
-
-Example:
-
-```javascript
-/**
- * @type {owner.name}
- * @type {superOwner.owner.name}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "MEMBER",
-  "name": string,
-  "quoteStyle": "none",
-  "owner": node,
-  "hasEventPrefix": boolean
-}
-```
-
-### `INNER_MEMBER`
-
-Example:
-
-```javascript
-/**
- * @type {owner~name}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "INNER_MEMBER",
-  "name": string,
-  "quoteStyle": "none",
-  "owner": node,
-  "hasEventPrefix": boolean
-}
-```
-
-### `INSTANCE_MEMBER`
-
-Example:
-
-```javascript
-/**
- * @type {owner#name}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "INSTANCE_MEMBER",
-  "name": string,
-  "quoteStyle": "none",
-  "owner": node,
-  "hasEventPrefix": boolean
-}
-```
-
-### `UNION`
-
-Example:
-
-```javascript
-/**
- * @type {left|right}
- * @type {(left|right)}
- * @type {left/right}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "UNION",
-  "left": node,
-  "right": node,
-  "meta": {
-    "syntax": ("PIPE" or "SLASH")
-  }
-}
-```
-
-### `RECORD`
-
-Example:
-
-```javascript
-/**
- * @type {{}}
- * @type {{ key: value }}
- * @type {{ key: value, anyKey }}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "RECORD",
-  "entries": [
-    recordEntryNode,
-    recordEntryNode,
-    ...
-  ]
-}
-```
-
-### `RECORD_ENTRY`
-
-Structure:
-
-```javascript
-{
-  "type": "RECORD_ENTRY",
-  "key": string,
-  "value": node (or null)
-}
-```
-
-### `GENERIC`
-
-Example:
-
-```javascript
-/**
- * @type {Subject<Object, Object>}
- * @type {Object[]}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "GENERIC",
-  "subject": node,
-  "objects": [
-    node,
-    node,
-    ...
-  ],
-  "meta": {
-    "syntax": ("ANGLE_BRACKET" or "ANGLE_BRACKET_WITH_DOT" or "SQUARE_BRACKET")
-  }
-}
-```
-
-### `FUNCTION`
-
-Example:
-
-```javascript
-/**
- * @type {function()}
- * @type {function(param, param): return}
- * @type {function(this: Context)}
- * @type {function(new: Class)}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "FUNCTION",
-  "params": [
-    node,
-    node,
-    ...
-  ],
-  "returns": node (or null),
-  "new": node (or null),
-  "this": node (or null)
-}
-```
-
-### `OPTIONAL`
-
-Example:
-
-```javascript
-/**
- * @type {Optional=}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "OPTIONAL",
-  "value": node,
-  "meta": {
-    "syntax": ("PREFIX_EQUALS_SIGN" or "SUFFIX_EQUALS_SIGN")
-  }
-}
-```
-
-### `NULLABLE`
-
-Example:
-
-```javascript
-/**
- * @type {?Nullable}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "NULLABLE",
-  "value": node,
-  "meta": {
-    "syntax": ("PREFIX_QUESTION_MARK" or "SUFFIX_QUESTION_MARK")
-  }
-}
-```
-
-### `NOT_NULLABLE`
-
-Example:
-
-```javascript
-/**
- * @type {!NotNullable}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "NOT_NULLABLE",
-  "value": node,
-  "meta": {
-    "syntax": ("PREFIX_BANG" or "SUFFIX_BANG")
-  }
-}
-```
-
-### `VARIADIC`
-
-Example:
-
-```javascript
-/**
- * @type {...Variadic}
- * @type {Variadic...}
- * @type {...}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "VARIADIC",
-  "value": node (or null),
-  "meta": {
-    "syntax": ("PREFIX_DOTS" or "SUFFIX_DOTS" or "ONLY_DOTS")
-  }
-}
-```
-
-### `MODULE`
-
-Example:
-
-```javascript
-/**
- * @type {module:path/to/file.Module}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "MODULE",
-  "value": node
-}
-```
-
-### `FILE_PATH`
-
-Example:
-
-```javascript
-/**
- * @type {module:path/to/file.Module}
- *               ^^^^^^^^^^^^
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "FILE_PATH",
-  "path": string
-}
-```
-
-### `EXTERNAL`
-
-Example:
-
-```javascript
-/**
- * @type {external:External}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "EXTERNAL",
-  "value": node
-}
-```
-
-### `STRING_VALUE`
-
-Example:
-
-```javascript
-/**
- * @type {"abc"}
- * @type {"can\"escape"}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "STRING_VALUE",
-  "quoteStyle": "double",
-  "string": string
-}
-```
-
-### `NUMBER_VALUE`
-
-Example:
-
-```javascript
-/**
- * @type {123}
- * @type {0b11}
- * @type {0o77}
- * @type {0xff}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "NUMBER_VALUE",
-  "number": string
-}
-```
-
-### `ANY`
-
-Example:
-
-```javascript
-/**
- * @type {*}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "ANY"
-}
-```
-
-### `UNKNOWN`
-
-Example:
-
-```javascript
-/**
- * @type {?}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "UNKNOWN"
-}
-```
-
-### `PARENTHESIS`
-
-Example:
-
-```javascript
-/**
- * @type {(Foo)}
- */
-```
-
-Structure:
-
-```javascript
-{
-  "type": "PARENTHESIS",
-  "value": node
-}
-```
-
-### Others
-
-We can use a parenthesis to change operator orders.
-
-```javascript
-/**
- * @type {(module:path/to/file.js).foo}
- */
-```
-
-## Usage (CLI)
-
-To parse a type into a JSON structure, you may pass a string argument
-containing the structure to parse (with the JSON results equivalent to the
-parsing example above):
-
-```
-jsdoctypeparser 'Array<MyClass>'
-```
-
-Note: There is no need to prefix the path to the `jsdoctypeparser` binary,
-e.g., with `./node_modules/.bin/` when you are running within one of the
-`package.json` `scripts` or if you have installed the package globally.
-
-## License
-
-[This script is licensed under the MIT](./LICENSE-MIT.txt).
diff --git a/node_modules/jsdoctypeparser/bin/jsdoctypeparser b/node_modules/jsdoctypeparser/bin/jsdoctypeparser
deleted file mode 100755
index 109157e..0000000
--- a/node_modules/jsdoctypeparser/bin/jsdoctypeparser
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /usr/bin/env node
-'use strict';
-
-const {parse} = require('../index.js');
-console.log(JSON.stringify(parse(process.argv[2]), null, 2));
diff --git a/node_modules/jsdoctypeparser/index.js b/node_modules/jsdoctypeparser/index.js
deleted file mode 100644
index 3aaf023..0000000
--- a/node_modules/jsdoctypeparser/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-/** @typedef {import('./lib/parsing').AstNode} AstNode */
-
-const {parse, JSDocTypeSyntaxError} = require('./lib/parsing.js');
-const {publish, createDefaultPublisher} = require('./lib/publishing.js');
-const {traverse} = require('./lib/traversing.js');
-const NodeType = require('./lib/NodeType.js');
-const SyntaxType = require('./lib/SyntaxType.js');
-
-
-/**
- * Namespace for jsdoctypeparser.
- * @namespace
- * @exports jsdoctypeparser
- */
-module.exports = {
-  parse,
-  JSDocTypeSyntaxError,
-  publish,
-  createDefaultPublisher,
-  traverse,
-  NodeType,
-  SyntaxType,
-};
diff --git a/node_modules/jsdoctypeparser/lib/NodeType.js b/node_modules/jsdoctypeparser/lib/NodeType.js
deleted file mode 100644
index 0dc788d..0000000
--- a/node_modules/jsdoctypeparser/lib/NodeType.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-const NodeType = {
-  NAME: 'NAME',
-  MEMBER: 'MEMBER',
-  UNION: 'UNION',
-  VARIADIC: 'VARIADIC',
-  RECORD: 'RECORD',
-  RECORD_ENTRY: 'RECORD_ENTRY',
-  TUPLE: 'TUPLE',
-  GENERIC: 'GENERIC',
-  MODULE: 'MODULE',
-  OPTIONAL: 'OPTIONAL',
-  NULLABLE: 'NULLABLE',
-  NOT_NULLABLE: 'NOT_NULLABLE',
-  FUNCTION: 'FUNCTION',
-  ARROW: 'ARROW',
-  NAMED_PARAMETER: 'NAMED_PARAMETER',
-  ANY: 'ANY',
-  UNKNOWN: 'UNKNOWN',
-  INNER_MEMBER: 'INNER_MEMBER',
-  INSTANCE_MEMBER: 'INSTANCE_MEMBER',
-  STRING_VALUE: 'STRING_VALUE',
-  NUMBER_VALUE: 'NUMBER_VALUE',
-  EXTERNAL: 'EXTERNAL',
-  FILE_PATH: 'FILE_PATH',
-  PARENTHESIS: 'PARENTHESIS',
-  TYPE_QUERY: 'TYPE_QUERY',
-  KEY_QUERY: 'KEY_QUERY',
-  IMPORT: 'IMPORT',
-};
-
-/** @typedef {keyof typeof NodeType} Type */
-
-module.exports = /** @type {{readonly [T in Type]: T}} */ (NodeType);
diff --git a/node_modules/jsdoctypeparser/lib/SyntaxType.js b/node_modules/jsdoctypeparser/lib/SyntaxType.js
deleted file mode 100644
index d3b4c4a..0000000
--- a/node_modules/jsdoctypeparser/lib/SyntaxType.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict';
-
-/**
- * Syntax types for generic types.
- * @enum {string}
- */
-const GenericTypeSyntax = {
-  /**
-   * From TypeScript and Closure Library.
-   * Example: {@code Array<string>}
-   */
-  ANGLE_BRACKET: 'ANGLE_BRACKET',
-
-  /**
-   * From JSDoc and Legacy Closure Library.
-   * Example: {@code Array.<string>}
-   */
-  ANGLE_BRACKET_WITH_DOT: 'ANGLE_BRACKET_WITH_DOT',
-
-  /**
-   * From JSDoc and JSDuck.
-   * Example: {@code String[]}
-   */
-  SQUARE_BRACKET: 'SQUARE_BRACKET',
-};
-
-/**
- * Syntax types for union types.
- * @enum {string}
- */
-const UnionTypeSyntax = {
-  /**
-   * From Closure Library.
-   * Example: {@code Left|Right}
-   */
-  PIPE: 'PIPE',
-
-  /**
-   * From JSDuck.
-   * Example: {@code Left/Right}
-   */
-  SLASH: 'SLASH',
-};
-
-
-const VariadicTypeSyntax = {
-  /**
-   * From Closure Library.
-   * Example: {@code ...Type}
-   */
-  PREFIX_DOTS: 'PREFIX_DOTS',
-
-  /**
-   * From JSDuck.
-   * Example: {@code Type...}
-   */
-  SUFFIX_DOTS: 'SUFFIX_DOTS',
-
-  /**
-   * From Closure Library.
-   * Example: {@code ...}
-   */
-  ONLY_DOTS: 'ONLY_DOTS',
-};
-
-const OptionalTypeSyntax = {
-  PREFIX_EQUALS_SIGN: 'PREFIX_EQUALS_SIGN',
-  SUFFIX_EQUALS_SIGN: 'SUFFIX_EQUALS_SIGN',
-  SUFFIX_KEY_QUESTION_MARK: 'SUFFIX_KEY_QUESTION_MARK',
-};
-
-const NullableTypeSyntax = {
-  PREFIX_QUESTION_MARK: 'PREFIX_QUESTION_MARK',
-  SUFFIX_QUESTION_MARK: 'SUFFIX_QUESTION_MARK',
-};
-
-const NotNullableTypeSyntax = {
-  PREFIX_BANG: 'PREFIX_BANG',
-  SUFFIX_BANG: 'SUFFIX_BANG',
-};
-
-module.exports = {
-  GenericTypeSyntax,
-  UnionTypeSyntax,
-  VariadicTypeSyntax,
-  OptionalTypeSyntax,
-  NullableTypeSyntax,
-  NotNullableTypeSyntax,
-};
diff --git a/node_modules/jsdoctypeparser/lib/parsing.js b/node_modules/jsdoctypeparser/lib/parsing.js
deleted file mode 100644
index fc580a9..0000000
--- a/node_modules/jsdoctypeparser/lib/parsing.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-/**
- * @typedef AstNode
- * @property {string} type
- * @property {'none'|'single'|'double'} [quoteStyle]
- * @property {string} [key]
- * @property {string} [name]
- * @property {string} [number]
- * @property {string} [path]
- * @property {string} [string]
- * @property {boolean} [hasEventPrefix]
- * @property {boolean} [typeName]
- * @property {Object<string,any>} [meta]
- * @property {AstNode} [returns]
- * @property {AstNode} [new]
- * @property {AstNode} [value]
- * @property {AstNode} [left]
- * @property {AstNode} [right]
- * @property {AstNode} [owner]
- * @property {AstNode} [subject]
- * @property {AstNode} [this]
- * @property {AstNode[]} [entries]
- * @property {AstNode[]} [objects]
- * @property {AstNode[]} [params]
- */
-
-const {SyntaxError: JSDocTypeSyntaxError, parse} = require('../peg_lib/jsdoctype.js');
-
-module.exports = {
-
-  /** * A class for JSDoc type expression syntax errors.
-   * @constructor
-   * @extends {Error}
-   */
-  JSDocTypeSyntaxError,
-
-
-  /**
-   * Parse the specified type expression string.
-   * @param {string} typeExprStr Type expression string.
-   * @return {AstNode} AST.
-   */
-  parse (typeExprStr) {
-    return parse(typeExprStr);
-  },
-};
diff --git a/node_modules/jsdoctypeparser/lib/publishing.js b/node_modules/jsdoctypeparser/lib/publishing.js
deleted file mode 100644
index 18f718b..0000000
--- a/node_modules/jsdoctypeparser/lib/publishing.js
+++ /dev/null
@@ -1,195 +0,0 @@
-'use strict';
-
-const {OPTIONAL} = require('./NodeType');
-const {OptionalTypeSyntax, VariadicTypeSyntax} = require('./SyntaxType');
-const {format} = require('util');
-
-/** @typedef {import('./parsing').AstNode} AstNode */
-/** @typedef {(node) => string} ConcretePublish */
-/** @typedef {{ [T in import('./NodeType').Type]: (node: AstNode, publish: ConcretePublish) => string }} Publisher */
-
-/**
- * @param {AstNode} node
- * @param {Publisher} [opt_publisher]
- * @return {string}
- */
-function publish(node, opt_publisher) {
-  const publisher = opt_publisher || createDefaultPublisher();
-  return publisher[node.type](node, function(childNode) {
-    return publish(childNode, publisher);
-  });
-}
-
-/**
- * @private
- * @param {string} str
- * @param {'none'|'single'|'double'|undefined} quoteStyle
- * @returns {string} Formatted string
- */
-function addQuotesForName (str, quoteStyle) {
-  // For `MemberName`, not strings
-  if (!quoteStyle || quoteStyle === 'none') {
-    return str;
-  }
-  const singleQuoteStyle = quoteStyle === 'single';
-
-  return format(
-    singleQuoteStyle
-      ? "'%s'"
-      : '"%s"',
-    str
-      .replace(/\\/g, '\\\\')
-      .replace(
-        singleQuoteStyle ? /'/gu : /"/gu,
-        '\\' + (singleQuoteStyle ? "'" : '"')
-      )
-  );
-}
-
-/** @return {Publisher} */
-function createDefaultPublisher() {
-  return {
-    NAME (nameNode) {
-      return nameNode.name;
-    },
-    MEMBER (memberNode, concretePublish) {
-      return format('%s.%s%s', concretePublish(memberNode.owner),
-                    memberNode.hasEventPrefix ? 'event:' : '',
-                    addQuotesForName(memberNode.name, memberNode.quoteStyle));
-    },
-    UNION (unionNode, concretePublish) {
-      return format('%s|%s', concretePublish(unionNode.left),
-                    concretePublish(unionNode.right));
-    },
-    VARIADIC (variadicNode, concretePublish) {
-      if (variadicNode.meta.syntax === VariadicTypeSyntax.ONLY_DOTS) {
-        return '...';
-      }
-      return format('...%s', concretePublish(variadicNode.value));
-    },
-    RECORD (recordNode, concretePublish) {
-      const concretePublishedEntries = recordNode.entries.map(concretePublish);
-      return format('{%s}', concretePublishedEntries.join(', '));
-    },
-    RECORD_ENTRY (entryNode, concretePublish) {
-      if (!entryNode.value) return addQuotesForName(entryNode.key, entryNode.quoteStyle);
-      const keySuffix = (
-        entryNode.value.type === OPTIONAL &&
-        entryNode.value.meta.syntax === OptionalTypeSyntax.SUFFIX_KEY_QUESTION_MARK
-      )
-        ? '?'
-        : '';
-      return format('%s%s: %s', addQuotesForName(entryNode.key, entryNode.quoteStyle), keySuffix, concretePublish(entryNode.value));
-    },
-    TUPLE (tupleNode, concretePublish) {
-      const concretePublishedEntries = tupleNode.entries.map(concretePublish);
-      return format('[%s]', concretePublishedEntries.join(', '));
-    },
-    GENERIC (genericNode, concretePublish) {
-      const concretePublishedObjects = genericNode.objects.map(concretePublish);
-      if (genericNode.meta) {
-        switch (genericNode.meta.syntax) {
-        case 'SQUARE_BRACKET':
-          if (genericNode.subject && genericNode.subject.name === 'Array') {
-            return format('%s[]', concretePublishedObjects.join(', '));
-          }
-          break;
-        case 'ANGLE_BRACKET_WITH_DOT':
-          return format('%s.<%s>', concretePublish(genericNode.subject),
-                        concretePublishedObjects.join(', '));
-        }
-      }
-      return format('%s<%s>', concretePublish(genericNode.subject),
-                    concretePublishedObjects.join(', '));
-    },
-    MODULE (moduleNode, concretePublish) {
-      return format('module:%s', concretePublish(moduleNode.value));
-    },
-    FILE_PATH (filePathNode) {
-      return addQuotesForName(filePathNode.path, filePathNode.quoteStyle);
-    },
-    OPTIONAL (optionalNode, concretePublish) {
-      if (optionalNode.meta.syntax === OptionalTypeSyntax.SUFFIX_KEY_QUESTION_MARK) {
-        return concretePublish(optionalNode.value);
-      }
-      return format('%s=', concretePublish(optionalNode.value));
-    },
-    NULLABLE (nullableNode, concretePublish) {
-      return format('?%s', concretePublish(nullableNode.value));
-    },
-    NOT_NULLABLE (notNullableNode, concretePublish) {
-      return format('!%s', concretePublish(notNullableNode.value));
-    },
-    FUNCTION (functionNode, concretePublish) {
-      const publidshedParams = functionNode.params.map(concretePublish);
-
-      if (functionNode.new) {
-        publidshedParams.unshift(format('new: %s',
-          concretePublish(functionNode.new)));
-      }
-
-      if (functionNode.this) {
-        publidshedParams.unshift(format('this: %s',
-          concretePublish(functionNode.this)));
-      }
-
-      if (functionNode.returns) {
-        return format('function(%s): %s', publidshedParams.join(', '),
-                           concretePublish(functionNode.returns));
-      }
-
-      return format('function(%s)', publidshedParams.join(', '));
-    },
-    ARROW (functionNode, concretePublish) {
-      const publishedParams = functionNode.params.map(concretePublish);
-      return (functionNode.new ? 'new ' : '') + format('(%s) => %s', publishedParams.join(', '), concretePublish(functionNode.returns));
-    },
-    NAMED_PARAMETER (parameterNode, concretePublish) {
-      return parameterNode.name + (parameterNode.typeName ? ': ' + concretePublish(parameterNode.typeName) : '');
-    },
-    ANY () {
-      return '*';
-    },
-    UNKNOWN () {
-      return '?';
-    },
-    INNER_MEMBER (memberNode, concretePublish) {
-      return concretePublish(memberNode.owner) + '~' +
-        (memberNode.hasEventPrefix ? 'event:' : '') +
-        addQuotesForName(memberNode.name, memberNode.quoteStyle);
-    },
-    INSTANCE_MEMBER (memberNode, concretePublish) {
-      return concretePublish(memberNode.owner) + '#' +
-        (memberNode.hasEventPrefix ? 'event:' : '') +
-        addQuotesForName(memberNode.name, memberNode.quoteStyle);
-    },
-    STRING_VALUE (stringValueNode) {
-      return addQuotesForName(stringValueNode.string, stringValueNode.quoteStyle)
-    },
-    NUMBER_VALUE (numberValueNode) {
-      return numberValueNode.number;
-    },
-    EXTERNAL (externalNode /* , concretePublish */) {
-      const {name, quoteStyle} = externalNode;
-      return format('external:%s', addQuotesForName(name, quoteStyle));
-    },
-    PARENTHESIS (parenthesizedNode, concretePublish) {
-      return format('(%s)', concretePublish(parenthesizedNode.value));
-    },
-    TYPE_QUERY (typeQueryNode, concretePublish) {
-      return format('typeof %s', concretePublish(typeQueryNode.name));
-    },
-    KEY_QUERY (keyQueryNode, concretePublish) {
-      return format('keyof %s', concretePublish(keyQueryNode.value));
-    },
-    IMPORT (importNode, concretePublish) {
-      return format('import(%s)', concretePublish(importNode.path));
-    },
-  };
-}
-
-
-module.exports = {
-  publish: publish,
-  createDefaultPublisher: createDefaultPublisher,
-};
diff --git a/node_modules/jsdoctypeparser/lib/traversing.js b/node_modules/jsdoctypeparser/lib/traversing.js
deleted file mode 100644
index add8dd2..0000000
--- a/node_modules/jsdoctypeparser/lib/traversing.js
+++ /dev/null
@@ -1,150 +0,0 @@
-'use strict';
-
-/** @typedef {import('./NodeType').Type} NodeType */
-/** @typedef {{ type: NodeType }} Node */
-/** @typedef {(node: Node, parentPropName: string | null, parentNode: Node | null) => void} TraversalCallback */
-
-/**
- * Traverse the specified AST.
- * @param {Node} node AST to traverse.
- * @param {TraversalCallback} [opt_onEnter] Callback for onEnter.
- * @param {TraversalCallback} [opt_onLeave] Callback for onLeave.
- */
-function traverse(node, opt_onEnter, opt_onLeave) {
-  if (opt_onEnter) opt_onEnter(node, null, null);
-
-  if (node) {
-    const childNodeInfo = _collectChildNodeInfo(node);
-    childNodeInfo.forEach(function([childNode, parentPropName, parentNode]) {
-      traverse(childNode, opt_onEnter ? (node, pn, pNode) => {
-        opt_onEnter(node, pn || parentPropName, pNode || parentNode);
-      } : null, opt_onLeave ? (node, pn, pNode) => {
-        opt_onLeave(node, pn || parentPropName, pNode || parentNode);
-      } : null);
-    });
-  }
-
-  if (opt_onLeave) opt_onLeave(node, null, null);
-}
-
-
-/**
- * @private
- */
-const _PropertyAccessor = {
-  NODE (fn, node, parentPropName, parentNode) {
-    fn(node, parentPropName, parentNode);
-  },
-  NODE_LIST (fn, nodes, parentPropName, parentNode) {
-    nodes.forEach(function(node) {
-      fn(node, parentPropName, parentNode);
-    });
-  },
-  NULLABLE_NODE (fn, opt_node, parentPropName, parentNode) {
-    if (opt_node) fn(opt_node, parentPropName, parentNode);
-  },
-};
-
-
-/**
- * @private
- * @type {{ [T in NodeType]: object }}
- */
-const _childNodesMap = {
-  NAME: {},
-  NAMED_PARAMETER: {
-    typeName: _PropertyAccessor.NULLABLE_NODE,
-  },
-  MEMBER: {
-    owner: _PropertyAccessor.NODE,
-  },
-  UNION: {
-    left: _PropertyAccessor.NODE,
-    right: _PropertyAccessor.NODE,
-  },
-  VARIADIC: {
-    value: _PropertyAccessor.NODE,
-  },
-  RECORD: {
-    entries: _PropertyAccessor.NODE_LIST,
-  },
-  RECORD_ENTRY: {
-    value: _PropertyAccessor.NULLABLE_NODE,
-  },
-  TUPLE: {
-    entries: _PropertyAccessor.NODE_LIST,
-  },
-  GENERIC: {
-    subject: _PropertyAccessor.NODE,
-    objects: _PropertyAccessor.NODE_LIST,
-  },
-  MODULE: {
-    value: _PropertyAccessor.NODE,
-  },
-  OPTIONAL: {
-    value: _PropertyAccessor.NODE,
-  },
-  NULLABLE: {
-    value: _PropertyAccessor.NODE,
-  },
-  NOT_NULLABLE: {
-    value: _PropertyAccessor.NODE,
-  },
-  FUNCTION: {
-    params: _PropertyAccessor.NODE_LIST,
-    returns: _PropertyAccessor.NULLABLE_NODE,
-    this: _PropertyAccessor.NULLABLE_NODE,
-    new: _PropertyAccessor.NULLABLE_NODE,
-  },
-  ARROW: {
-    params: _PropertyAccessor.NODE_LIST,
-    returns: _PropertyAccessor.NULLABLE_NODE,
-  },
-  ANY: {},
-  UNKNOWN: {},
-  INNER_MEMBER: {
-    owner: _PropertyAccessor.NODE,
-  },
-  INSTANCE_MEMBER: {
-    owner: _PropertyAccessor.NODE,
-  },
-  STRING_VALUE: {},
-  NUMBER_VALUE: {},
-  EXTERNAL: {},
-  FILE_PATH: {},
-  PARENTHESIS: {
-    value: _PropertyAccessor.NODE,
-  },
-  TYPE_QUERY: {
-    name: _PropertyAccessor.NODE,
-  },
-  KEY_QUERY: {
-    value: _PropertyAccessor.NODE,
-  },
-  IMPORT: {
-    path: _PropertyAccessor.NODE,
-  },
-};
-
-
-/**
- * @private
- * @param {Node} node
- */
-function _collectChildNodeInfo(node) {
-  const childNodeInfo = [];
-  const propAccessorMap = _childNodesMap[node.type];
-
-  Object.keys(propAccessorMap).forEach(function(propName) {
-    const propAccessor = propAccessorMap[propName];
-    propAccessor((node, propName, parentNode) => {
-      childNodeInfo.push([node, propName, parentNode]);
-    }, node[propName], propName, node);
-  });
-
-  return childNodeInfo;
-}
-
-module.exports = {
-  traverse,
-};
diff --git a/node_modules/jsdoctypeparser/package.json b/node_modules/jsdoctypeparser/package.json
deleted file mode 100644
index 9e57e41..0000000
--- a/node_modules/jsdoctypeparser/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-  "name": "jsdoctypeparser",
-  "description": "Strict JsDoc type expression parser.",
-  "version": "6.1.0",
-  "author": "Kuniwak <orga.chem.job@gmail.com>",
-  "contributors": [
-    "Brett Zamir",
-    "Nathan Shively-Sanders"
-  ],
-  "keywords": [
-    "jsdoc",
-    "type expression",
-    "parser"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jsdoctypeparser/jsdoctypeparser.git"
-  },
-  "engines": {
-    "node": ">=6"
-  },
-  "homepage": "https://jsdoctypeparser.github.io",
-  "bugs": {
-    "mail": "orga.chem.job@gmail.com",
-    "url": "https://github.com/jsdoctypeparser/jsdoctypeparser/issues"
-  },
-  "directories": {
-    "test": "test"
-  },
-  "main": "index.js",
-  "bin": "./bin/jsdoctypeparser",
-  "scripts": {
-    "prepare": "npm-run-all build",
-    "pretest": "npm-run-all lint build",
-    "test": "npm-run-all mocha typecheck",
-    "lint": "eslint .",
-    "mocha": "mocha tests/test_*",
-    "typecheck": "tsc",
-    "clean": "rimraf ./peg_lib",
-    "postclean": "mkdirp ./peg_lib",
-    "prebuild": "npm-run-all clean",
-    "build": "pegjs --cache -o ./peg_lib/jsdoctype.js ./peg_src/jsdoctype.pegjs"
-  },
-  "husky": {
-    "hooks": {
-      "pre-push": "npm test"
-    }
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "@types/node": "^12.12.14",
-    "chai": "^4.2.0",
-    "eslint": "^6.7.2",
-    "husky": "^3.1.0",
-    "mkdirp": "^0.5.1",
-    "mocha": "^6.2.2",
-    "npm-run-all": "^4.1.5",
-    "object.entries-ponyfill": "^1.0.1",
-    "pegjs": "^0.10.0",
-    "rimraf": "^3.0.0",
-    "typescript": "^3.7.2"
-  },
-  "license": "MIT"
-}
diff --git a/node_modules/jsdoctypeparser/peg_lib/jsdoctype.js b/node_modules/jsdoctypeparser/peg_lib/jsdoctype.js
deleted file mode 100644
index 6fdec36..0000000
--- a/node_modules/jsdoctypeparser/peg_lib/jsdoctype.js
+++ /dev/null
@@ -1,7496 +0,0 @@
-/*
- * Generated by PEG.js 0.10.0.
- *
- * http://pegjs.org/
- */
-
-"use strict";
-
-function peg$subclass(child, parent) {
-  function ctor() { this.constructor = child; }
-  ctor.prototype = parent.prototype;
-  child.prototype = new ctor();
-}
-
-function peg$SyntaxError(message, expected, found, location) {
-  this.message  = message;
-  this.expected = expected;
-  this.found    = found;
-  this.location = location;
-  this.name     = "SyntaxError";
-
-  if (typeof Error.captureStackTrace === "function") {
-    Error.captureStackTrace(this, peg$SyntaxError);
-  }
-}
-
-peg$subclass(peg$SyntaxError, Error);
-
-peg$SyntaxError.buildMessage = function(expected, found) {
-  var DESCRIBE_EXPECTATION_FNS = {
-        literal: function(expectation) {
-          return "\"" + literalEscape(expectation.text) + "\"";
-        },
-
-        "class": function(expectation) {
-          var escapedParts = "",
-              i;
-
-          for (i = 0; i < expectation.parts.length; i++) {
-            escapedParts += expectation.parts[i] instanceof Array
-              ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1])
-              : classEscape(expectation.parts[i]);
-          }
-
-          return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
-        },
-
-        any: function(expectation) {
-          return "any character";
-        },
-
-        end: function(expectation) {
-          return "end of input";
-        },
-
-        other: function(expectation) {
-          return expectation.description;
-        }
-      };
-
-  function hex(ch) {
-    return ch.charCodeAt(0).toString(16).toUpperCase();
-  }
-
-  function literalEscape(s) {
-    return s
-      .replace(/\\/g, '\\\\')
-      .replace(/"/g,  '\\"')
-      .replace(/\0/g, '\\0')
-      .replace(/\t/g, '\\t')
-      .replace(/\n/g, '\\n')
-      .replace(/\r/g, '\\r')
-      .replace(/[\x00-\x0F]/g,          function(ch) { return '\\x0' + hex(ch); })
-      .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x'  + hex(ch); });
-  }
-
-  function classEscape(s) {
-    return s
-      .replace(/\\/g, '\\\\')
-      .replace(/\]/g, '\\]')
-      .replace(/\^/g, '\\^')
-      .replace(/-/g,  '\\-')
-      .replace(/\0/g, '\\0')
-      .replace(/\t/g, '\\t')
-      .replace(/\n/g, '\\n')
-      .replace(/\r/g, '\\r')
-      .replace(/[\x00-\x0F]/g,          function(ch) { return '\\x0' + hex(ch); })
-      .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x'  + hex(ch); });
-  }
-
-  function describeExpectation(expectation) {
-    return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
-  }
-
-  function describeExpected(expected) {
-    var descriptions = new Array(expected.length),
-        i, j;
-
-    for (i = 0; i < expected.length; i++) {
-      descriptions[i] = describeExpectation(expected[i]);
-    }
-
-    descriptions.sort();
-
-    if (descriptions.length > 0) {
-      for (i = 1, j = 1; i < descriptions.length; i++) {
-        if (descriptions[i - 1] !== descriptions[i]) {
-          descriptions[j] = descriptions[i];
-          j++;
-        }
-      }
-      descriptions.length = j;
-    }
-
-    switch (descriptions.length) {
-      case 1:
-        return descriptions[0];
-
-      case 2:
-        return descriptions[0] + " or " + descriptions[1];
-
-      default:
-        return descriptions.slice(0, -1).join(", ")
-          + ", or "
-          + descriptions[descriptions.length - 1];
-    }
-  }
-
-  function describeFound(found) {
-    return found ? "\"" + literalEscape(found) + "\"" : "end of input";
-  }
-
-  return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
-};
-
-function peg$parse(input, options) {
-  options = options !== void 0 ? options : {};
-
-  var peg$FAILED = {},
-
-      peg$startRuleFunctions = { TopTypeExpr: peg$parseTopTypeExpr },
-      peg$startRuleFunction  = peg$parseTopTypeExpr,
-
-      peg$c0 = function(expr) {
-                 return expr;
-               },
-      peg$c1 = /^[ \t]/,
-      peg$c2 = peg$classExpectation([" ", "\t"], false, false),
-      peg$c3 = /^[\r]/,
-      peg$c4 = peg$classExpectation(["\r"], false, false),
-      peg$c5 = /^[\n]/,
-      peg$c6 = peg$classExpectation(["\n"], false, false),
-      peg$c7 = /^[a-zA-Z_$]/,
-      peg$c8 = peg$classExpectation([["a", "z"], ["A", "Z"], "_", "$"], false, false),
-      peg$c9 = /^[a-zA-Z0-9_$]/,
-      peg$c10 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "_", "$"], false, false),
-      peg$c11 = "event:",
-      peg$c12 = peg$literalExpectation("event:", false),
-      peg$c13 = function(rootOwner, memberPartWithOperators) {
-                     return memberPartWithOperators.reduce(function(owner, tokens) {
-                       const operatorType = tokens[1];
-                       const eventNamespace = tokens[3];
-                       const MemberName = tokens[5];
-                       const {quoteStyle, name: memberName} = MemberName;
-
-                       switch (operatorType) {
-                         case NamepathOperatorType.MEMBER:
-                           return {
-                             type: NodeType.MEMBER,
-                             owner,
-                             name: memberName,
-                             quoteStyle,
-                             hasEventPrefix: Boolean(eventNamespace),
-                           };
-                         case NamepathOperatorType.INSTANCE_MEMBER:
-                           return {
-                             type: NodeType.INSTANCE_MEMBER,
-                             owner,
-                             name: memberName,
-                             quoteStyle,
-                             hasEventPrefix: Boolean(eventNamespace),
-                           };
-                         case NamepathOperatorType.INNER_MEMBER:
-                           return {
-                             type: NodeType.INNER_MEMBER,
-                             owner,
-                             name: memberName,
-                             quoteStyle,
-                             hasEventPrefix: Boolean(eventNamespace),
-                           };
-                         default:
-                           throw new Error('Unexpected operator type: "' + operatorType + '"');
-                       }
-                     }, rootOwner);
-                   },
-      peg$c14 = function(name) {
-                           return {
-                             type: NodeType.NAME,
-                             name
-                           };
-                         },
-      peg$c15 = /^[a-zA-Z0-9_$\-]/,
-      peg$c16 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "_", "$", "-"], false, false),
-      peg$c17 = function(name) {
-                                  return {
-                                    type: NodeType.NAME,
-                                    name
-                                  };
-                                },
-      peg$c18 = "'",
-      peg$c19 = peg$literalExpectation("'", false),
-      peg$c20 = /^[^\\']/,
-      peg$c21 = peg$classExpectation(["\\", "'"], true, false),
-      peg$c22 = "\\",
-      peg$c23 = peg$literalExpectation("\\", false),
-      peg$c24 = peg$anyExpectation(),
-      peg$c25 = function(name) {
-                     return {
-                       quoteStyle: 'single',
-                       name: name.replace(/\\'/g, "'")
-                         .replace(/\\\\/gu, '\\')
-                     };
-                   },
-      peg$c26 = "\"",
-      peg$c27 = peg$literalExpectation("\"", false),
-      peg$c28 = /^[^\\"]/,
-      peg$c29 = peg$classExpectation(["\\", "\""], true, false),
-      peg$c30 = function(name) {
-                     return {
-                       quoteStyle: 'double',
-                       name: name.replace(/\\"/gu, '"')
-                        .replace(/\\\\/gu, '\\')
-                     };
-                   },
-      peg$c31 = function(name) {
-                   return {
-                     quoteStyle: 'none',
-                     name
-                   };
-                 },
-      peg$c32 = ".",
-      peg$c33 = peg$literalExpectation(".", false),
-      peg$c34 = function(rootOwner, memberPart) {
-                            return memberPart.reduce(function(owner, tokens) {
-                              return {
-                                type: NodeType.MEMBER,
-                                owner,
-                                name: tokens[3]
-                              }
-                            }, rootOwner);
-                          },
-      peg$c35 = function() {
-                           return NamepathOperatorType.MEMBER;
-                         },
-      peg$c36 = "~",
-      peg$c37 = peg$literalExpectation("~", false),
-      peg$c38 = function() {
-                                return NamepathOperatorType.INNER_MEMBER;
-                              },
-      peg$c39 = "#",
-      peg$c40 = peg$literalExpectation("#", false),
-      peg$c41 = function() {
-                                   return NamepathOperatorType.INSTANCE_MEMBER;
-                                 },
-      peg$c42 = "external",
-      peg$c43 = peg$literalExpectation("external", false),
-      peg$c44 = ":",
-      peg$c45 = peg$literalExpectation(":", false),
-      peg$c46 = function(external, memberPartWithOperators) {
-                return memberPartWithOperators.reduce(function(owner, tokens) {
-                  const operatorType = tokens[1];
-                  const eventNamespace = tokens[3];
-                  const MemberName = tokens[5];
-                  const {quoteStyle, name: memberName} = MemberName;
-
-                  switch (operatorType) {
-                    case NamepathOperatorType.MEMBER:
-                      return {
-                        type: NodeType.MEMBER,
-                        owner,
-                        name: memberName,
-                        quoteStyle,
-                        hasEventPrefix: Boolean(eventNamespace),
-                      };
-                    case NamepathOperatorType.INSTANCE_MEMBER:
-                      return {
-                        type: NodeType.INSTANCE_MEMBER,
-                        owner,
-                        name: memberName,
-                        quoteStyle,
-                        hasEventPrefix: Boolean(eventNamespace),
-                      };
-                    case NamepathOperatorType.INNER_MEMBER:
-                      return {
-                        type: NodeType.INNER_MEMBER,
-                        owner,
-                        name: memberName,
-                        quoteStyle,
-                        hasEventPrefix: Boolean(eventNamespace),
-                      };
-                    default:
-                      throw new Error('Unexpected operator type: "' + operatorType + '"');
-                  }
-                }, Object.assign({
-                  type: NodeType.EXTERNAL
-                }, external));
-              },
-      peg$c47 = "module",
-      peg$c48 = peg$literalExpectation("module", false),
-      peg$c49 = function(value) {
-                       return {
-                         type: NodeType.MODULE,
-                         value,
-                       };
-                     },
-      peg$c50 = function(rootOwner, memberPartWithOperators) {
-                       return memberPartWithOperators.reduce(function(owner, tokens) {
-                         const operatorType = tokens[1];
-                         const eventNamespace = tokens[3];
-                         const MemberName = tokens[5];
-                         const {quoteStyle, name: memberName} = MemberName;
-
-                         switch (operatorType) {
-                           case NamepathOperatorType.MEMBER:
-                             return {
-                               type: NodeType.MEMBER,
-                               owner,
-                               name: memberName,
-                               quoteStyle,
-                               hasEventPrefix: Boolean(eventNamespace),
-                             };
-                           case NamepathOperatorType.INSTANCE_MEMBER:
-                             return {
-                               type: NodeType.INSTANCE_MEMBER,
-                               owner,
-                               name: memberName,
-                               quoteStyle,
-                               hasEventPrefix: Boolean(eventNamespace),
-                             };
-                           case NamepathOperatorType.INNER_MEMBER:
-                             return {
-                               type: NodeType.INNER_MEMBER,
-                               owner,
-                               name: memberName,
-                               quoteStyle,
-                               hasEventPrefix: Boolean(eventNamespace),
-                             };
-                           default:
-                             throw new Error('Unexpected operator type: "' + operatorType + '"');
-                         }
-                       }, rootOwner);
-                     },
-      peg$c51 = function(path) {
-                      return {
-                        quoteStyle: 'single',
-                        type: NodeType.FILE_PATH,
-                        path: path.replace(/\\'/g, "'")
-                          .replace(/\\\\/gu, '\\')
-                      };
-                    },
-      peg$c52 = function(path) {
-                      return {
-                        quoteStyle: 'double',
-                        type: NodeType.FILE_PATH,
-                        path: path.replace(/\\"/gu, '"')
-                         .replace(/\\\\/gu, '\\')
-                      };
-                    },
-      peg$c53 = /^[a-zA-Z0-9_$\/\-]/,
-      peg$c54 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "_", "$", "/", "-"], false, false),
-      peg$c55 = function(path) {
-                     return {
-                       quoteStyle: 'none',
-                       type: NodeType.FILE_PATH,
-                       path,
-                     };
-                   },
-      peg$c56 = "*",
-      peg$c57 = peg$literalExpectation("*", false),
-      peg$c58 = function() {
-                    return { type: NodeType.ANY };
-                  },
-      peg$c59 = "?",
-      peg$c60 = peg$literalExpectation("?", false),
-      peg$c61 = function() {
-                        return { type: NodeType.UNKNOWN };
-                      },
-      peg$c62 = function(value) {
-                            return {
-                              type: NodeType.STRING_VALUE,
-                              quoteStyle: 'double',
-                              string: value.replace(/\\"/gu, '"')
-                                  .replace(/\\\\/gu, '\\')
-                            };
-                          },
-      peg$c63 = function(value) {
-                            return {
-                              type: NodeType.STRING_VALUE,
-                              quoteStyle: 'single',
-                              string: value.replace(/\\'/g, "'")
-                                  .replace(/\\\\/gu, '\\')
-                            };
-                          },
-      peg$c64 = function(value) {
-                          return {
-                            type: NodeType.NUMBER_VALUE,
-                            number: value
-                          };
-                        },
-      peg$c65 = "+",
-      peg$c66 = peg$literalExpectation("+", false),
-      peg$c67 = "-",
-      peg$c68 = peg$literalExpectation("-", false),
-      peg$c69 = /^[0-9]/,
-      peg$c70 = peg$classExpectation([["0", "9"]], false, false),
-      peg$c71 = "e",
-      peg$c72 = peg$literalExpectation("e", false),
-      peg$c73 = "0b",
-      peg$c74 = peg$literalExpectation("0b", false),
-      peg$c75 = /^[01]/,
-      peg$c76 = peg$classExpectation(["0", "1"], false, false),
-      peg$c77 = "0o",
-      peg$c78 = peg$literalExpectation("0o", false),
-      peg$c79 = /^[0-7]/,
-      peg$c80 = peg$classExpectation([["0", "7"]], false, false),
-      peg$c81 = "0x",
-      peg$c82 = peg$literalExpectation("0x", false),
-      peg$c83 = /^[0-9a-fA-F]/,
-      peg$c84 = peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false),
-      peg$c85 = function(left, syntax, right) {
-                      return {
-                          type: NodeType.UNION,
-                          left,
-                          right,
-                          meta: { syntax },
-                      };
-                    },
-      peg$c86 = "|",
-      peg$c87 = peg$literalExpectation("|", false),
-      peg$c88 = function() {
-                                                return UnionTypeSyntax.PIPE;
-                                              },
-      peg$c89 = "/",
-      peg$c90 = peg$literalExpectation("/", false),
-      peg$c91 = function() {
-                                        return UnionTypeSyntax.SLASH;
-                                      },
-      peg$c92 = "typeof",
-      peg$c93 = peg$literalExpectation("typeof", false),
-      peg$c94 = function(operator, name) {
-                      return {
-                          type: NodeType.TYPE_QUERY,
-                          name,
-                      };
-                    },
-      peg$c95 = "keyof",
-      peg$c96 = peg$literalExpectation("keyof", false),
-      peg$c97 = function(operator, operand) {
-        return {
-          type: NodeType.KEY_QUERY,
-          value: operand,
-        }
-      },
-      peg$c98 = "import",
-      peg$c99 = peg$literalExpectation("import", false),
-      peg$c100 = "(",
-      peg$c101 = peg$literalExpectation("(", false),
-      peg$c102 = ")",
-      peg$c103 = peg$literalExpectation(")", false),
-      peg$c104 = function(operator, path) {
-                       return { type: NodeType.IMPORT, path };
-                     },
-      peg$c105 = function(operator, operand) {
-                               return {
-                                 type: NodeType.NULLABLE,
-                                 value: operand,
-                                 meta: { syntax: NullableTypeSyntax.PREFIX_QUESTION_MARK },
-                               };
-                             },
-      peg$c106 = "!",
-      peg$c107 = peg$literalExpectation("!", false),
-      peg$c108 = function(operator, operand) {
-                                  return {
-                                    type: NodeType.NOT_NULLABLE,
-                                    value: operand,
-                                    meta: { syntax: NotNullableTypeSyntax.PREFIX_BANG },
-                                  };
-                                },
-      peg$c109 = "=",
-      peg$c110 = peg$literalExpectation("=", false),
-      peg$c111 = function(operator, operand) {
-                               return {
-                                 type: NodeType.OPTIONAL,
-                                 value: operand,
-                                 meta: { syntax: OptionalTypeSyntax.PREFIX_EQUALS_SIGN },
-                               };
-                             },
-      peg$c112 = function(operand, operator) {
-                               return {
-                                 type: NodeType.NULLABLE,
-                                 value: operand,
-                                 meta: { syntax: NullableTypeSyntax.SUFFIX_QUESTION_MARK },
-                               };
-                             },
-      peg$c113 = function(operand, operator) {
-                                  return {
-                                    type: NodeType.NOT_NULLABLE,
-                                    value: operand,
-                                    meta: { syntax: NotNullableTypeSyntax.SUFFIX_BANG },
-                                  };
-                                },
-      peg$c114 = function(operand, operator) {
-                               return {
-                                 type: NodeType.OPTIONAL,
-                                 value: operand,
-                                 meta: { syntax: OptionalTypeSyntax.SUFFIX_EQUALS_SIGN },
-                               };
-                             },
-      peg$c115 = function(operand, syntax, params) {
-                        return {
-                          type: NodeType.GENERIC,
-                          subject: operand,
-                          objects: params,
-                          meta: { syntax },
-                        };
-                      },
-      peg$c116 = ",",
-      peg$c117 = peg$literalExpectation(",", false),
-      peg$c118 = function(first, restsWithComma) {
-                                     return restsWithComma.reduce(function(params, tokens) {
-                                       return params.concat([tokens[3]]);
-                                     }, [first]);
-                                   },
-      peg$c119 = ".<",
-      peg$c120 = peg$literalExpectation(".<", false),
-      peg$c121 = function() {
-                                                return GenericTypeSyntax.ANGLE_BRACKET_WITH_DOT;
-                                              },
-      peg$c122 = "<",
-      peg$c123 = peg$literalExpectation("<", false),
-      peg$c124 = function() {
-                                                return GenericTypeSyntax.ANGLE_BRACKET;
-                                              },
-      peg$c125 = ">",
-      peg$c126 = peg$literalExpectation(">", false),
-      peg$c127 = "[",
-      peg$c128 = peg$literalExpectation("[", false),
-      peg$c129 = "]",
-      peg$c130 = peg$literalExpectation("]", false),
-      peg$c131 = function(operand, brackets) {
-                      return brackets.reduce(function(operand) {
-                        return {
-                          type: NodeType.GENERIC,
-                          subject: {
-                            type: NodeType.NAME,
-                            name: 'Array'
-                          },
-                          objects: [ operand ],
-                          meta: { syntax: GenericTypeSyntax.SQUARE_BRACKET },
-                        };
-                      }, operand);
-                    },
-      peg$c132 = "new",
-      peg$c133 = peg$literalExpectation("new", false),
-      peg$c134 = "=>",
-      peg$c135 = peg$literalExpectation("=>", false),
-      peg$c136 = function(newModifier, paramsPart, returnedTypeNode) {
-                         return {
-                           type: NodeType.ARROW,
-                           params: paramsPart,
-                           returns: returnedTypeNode,
-                           new: newModifier
-                         };
-      },
-      peg$c137 = function(params) {
-                                  return params;
-                                },
-      peg$c138 = function() {
-                                  return [];
-                                },
-      peg$c139 = function(paramsWithComma, lastParam) {
-        return paramsWithComma.reduceRight(function(params, tokens) {
-          const param = { type: NodeType.NAMED_PARAMETER, name: tokens[0], typeName: tokens[4] };
-          return [param].concat(params);
-        }, lastParam ? [lastParam] : []);
-      },
-      peg$c140 = "...",
-      peg$c141 = peg$literalExpectation("...", false),
-      peg$c142 = function(spread, id, type) {
-        const operand = { type: NodeType.NAMED_PARAMETER, name: id, typeName: type };
-        if (spread) {
-        return {
-          type: NodeType.VARIADIC,
-          value: operand,
-          meta: { syntax: VariadicTypeSyntax.PREFIX_DOTS },
-        };
-        }
-        else {
-          return operand;
-        }
-      },
-      peg$c143 = "function",
-      peg$c144 = peg$literalExpectation("function", false),
-      peg$c145 = function(paramsPart, returnedTypePart) {
-                         const returnedTypeNode = returnedTypePart ? returnedTypePart[2] : null;
-
-                         return {
-                           type: NodeType.FUNCTION,
-                           params: paramsPart.params,
-                           returns: returnedTypeNode,
-                           this: paramsPart.modifier.nodeThis,
-                           new: paramsPart.modifier.nodeNew,
-                         };
-                       },
-      peg$c146 = function(modifier, params) {
-                                     return { params, modifier };
-                                   },
-      peg$c147 = function(modifier) {
-                                     return { params: [], modifier };
-                                   },
-      peg$c148 = function(params) {
-                                     return { params, modifier: { nodeThis: null, nodeNew: null } };
-                                   },
-      peg$c149 = function() {
-                                     return { params: [], modifier: { nodeThis: null, nodeNew: null } };
-                                   },
-      peg$c150 = "this",
-      peg$c151 = peg$literalExpectation("this", false),
-      peg$c152 = function(modifierThis) {
-                                   return { nodeThis: modifierThis[4], nodeNew: null };
-                                 },
-      peg$c153 = function(modifierNew) {
-                                   return { nodeThis: null, nodeNew: modifierNew[4] };
-                                 },
-      peg$c154 = function(paramsWithComma, lastParam) {
-                               return paramsWithComma.reduceRight(function(params, tokens) {
-                                 const [param] = tokens;
-                                 return [param].concat(params);
-                               }, lastParam ? [lastParam] : []);
-                             },
-      peg$c155 = "{",
-      peg$c156 = peg$literalExpectation("{", false),
-      peg$c157 = "}",
-      peg$c158 = peg$literalExpectation("}", false),
-      peg$c159 = function(entries) {
-                       return {
-                         type: NodeType.RECORD,
-                         entries: entries || [],
-                       };
-                     },
-      peg$c160 = ";",
-      peg$c161 = peg$literalExpectation(";", false),
-      peg$c162 = function(first, restWithComma) {
-                              return restWithComma.reduce(function(entries, tokens) {
-                                const entry = tokens[2];
-                                return entries.concat([entry]);
-                              }, [first]);
-                            },
-      peg$c163 = function(keyInfo, optional, value) {
-                              const {quoteStyle, key} = keyInfo;
-                              return {
-                                type: NodeType.RECORD_ENTRY,
-                                key,
-                                quoteStyle,
-                                value: optional !== '?' ? value : {
-                                  type: NodeType.OPTIONAL,
-                                  value,
-                                  meta: { syntax: OptionalTypeSyntax.SUFFIX_KEY_QUESTION_MARK },
-                                }
-                              };
-                            },
-      peg$c164 = function(keyInfo) {
-                              const {quoteStyle, key} = keyInfo;
-                              return {
-                                type: NodeType.RECORD_ENTRY,
-                                key,
-                                value: null,
-                                quoteStyle
-                              };
-                            },
-      peg$c165 = function(key) {
-                                 return {
-                                   quoteStyle: 'double',
-                                   key: key.replace(/\\"/gu, '"')
-                                     .replace(/\\\\/gu, '\\')
-                                 };
-                             },
-      peg$c166 = function(key) {
-                                 return {
-                                   quoteStyle: 'single',
-                                   key: key.replace(/\\'/g, "'")
-                                     .replace(/\\\\/gu, '\\')
-                                 };
-                               },
-      peg$c167 = function(key) {
-                                 return {
-                                   quoteStyle: 'none',
-                                   key
-                                 };
-                             },
-      peg$c168 = function(entries) {
-        return {
-          type: NodeType.TUPLE,
-          entries: entries || [],
-        }
-      },
-      peg$c169 = function(restWithComma, last) {
-        return restWithComma.reduceRight((entries, tokens) => {
-          let [entry] = tokens;
-          return [entry].concat(entries);
-        }, last ? [last] : []);
-      },
-      peg$c170 = function(wrapped) {
-                          return {
-                            type: NodeType.PARENTHESIS,
-                            value: wrapped,
-                          };
-                        },
-      peg$c171 = function(operand) {
-                               return {
-                                 type: NodeType.VARIADIC,
-                                 value: operand,
-                                 meta: { syntax: VariadicTypeSyntax.PREFIX_DOTS },
-                               };
-                             },
-      peg$c172 = function(operand) {
-                               return {
-                                 type: NodeType.VARIADIC,
-                                 value: operand,
-                                 meta: { syntax: VariadicTypeSyntax.SUFFIX_DOTS },
-                               };
-                             },
-      peg$c173 = function() {
-                            return {
-                              type: NodeType.VARIADIC,
-                              value: { type: NodeType.ANY },
-                              meta: { syntax: VariadicTypeSyntax.ONLY_DOTS },
-                            };
-                          },
-
-      peg$currPos          = 0,
-      peg$savedPos         = 0,
-      peg$posDetailsCache  = [{ line: 1, column: 1 }],
-      peg$maxFailPos       = 0,
-      peg$maxFailExpected  = [],
-      peg$silentFails      = 0,
-
-      peg$resultsCache = {},
-
-      peg$result;
-
-  if ("startRule" in options) {
-    if (!(options.startRule in peg$startRuleFunctions)) {
-      throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
-    }
-
-    peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
-  }
-
-  function text() {
-    return input.substring(peg$savedPos, peg$currPos);
-  }
-
-  function location() {
-    return peg$computeLocation(peg$savedPos, peg$currPos);
-  }
-
-  function expected(description, location) {
-    location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
-
-    throw peg$buildStructuredError(
-      [peg$otherExpectation(description)],
-      input.substring(peg$savedPos, peg$currPos),
-      location
-    );
-  }
-
-  function error(message, location) {
-    location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
-
-    throw peg$buildSimpleError(message, location);
-  }
-
-  function peg$literalExpectation(text, ignoreCase) {
-    return { type: "literal", text: text, ignoreCase: ignoreCase };
-  }
-
-  function peg$classExpectation(parts, inverted, ignoreCase) {
-    return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
-  }
-
-  function peg$anyExpectation() {
-    return { type: "any" };
-  }
-
-  function peg$endExpectation() {
-    return { type: "end" };
-  }
-
-  function peg$otherExpectation(description) {
-    return { type: "other", description: description };
-  }
-
-  function peg$computePosDetails(pos) {
-    var details = peg$posDetailsCache[pos], p;
-
-    if (details) {
-      return details;
-    } else {
-      p = pos - 1;
-      while (!peg$posDetailsCache[p]) {
-        p--;
-      }
-
-      details = peg$posDetailsCache[p];
-      details = {
-        line:   details.line,
-        column: details.column
-      };
-
-      while (p < pos) {
-        if (input.charCodeAt(p) === 10) {
-          details.line++;
-          details.column = 1;
-        } else {
-          details.column++;
-        }
-
-        p++;
-      }
-
-      peg$posDetailsCache[pos] = details;
-      return details;
-    }
-  }
-
-  function peg$computeLocation(startPos, endPos) {
-    var startPosDetails = peg$computePosDetails(startPos),
-        endPosDetails   = peg$computePosDetails(endPos);
-
-    return {
-      start: {
-        offset: startPos,
-        line:   startPosDetails.line,
-        column: startPosDetails.column
-      },
-      end: {
-        offset: endPos,
-        line:   endPosDetails.line,
-        column: endPosDetails.column
-      }
-    };
-  }
-
-  function peg$fail(expected) {
-    if (peg$currPos < peg$maxFailPos) { return; }
-
-    if (peg$currPos > peg$maxFailPos) {
-      peg$maxFailPos = peg$currPos;
-      peg$maxFailExpected = [];
-    }
-
-    peg$maxFailExpected.push(expected);
-  }
-
-  function peg$buildSimpleError(message, location) {
-    return new peg$SyntaxError(message, null, null, location);
-  }
-
-  function peg$buildStructuredError(expected, found, location) {
-    return new peg$SyntaxError(
-      peg$SyntaxError.buildMessage(expected, found),
-      expected,
-      found,
-      location
-    );
-  }
-
-  function peg$parseTopTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 0,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parse_();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicTypeExpr();
-      if (s2 === peg$FAILED) {
-        s2 = peg$parseUnionTypeExpr();
-        if (s2 === peg$FAILED) {
-          s2 = peg$parseUnaryUnionTypeExpr();
-          if (s2 === peg$FAILED) {
-            s2 = peg$parseArrayTypeExpr();
-            if (s2 === peg$FAILED) {
-              s2 = peg$parseGenericTypeExpr();
-              if (s2 === peg$FAILED) {
-                s2 = peg$parseRecordTypeExpr();
-                if (s2 === peg$FAILED) {
-                  s2 = peg$parseTupleTypeExpr();
-                  if (s2 === peg$FAILED) {
-                    s2 = peg$parseArrowTypeExpr();
-                    if (s2 === peg$FAILED) {
-                      s2 = peg$parseFunctionTypeExpr();
-                      if (s2 === peg$FAILED) {
-                        s2 = peg$parseTypeQueryExpr();
-                        if (s2 === peg$FAILED) {
-                          s2 = peg$parseKeyQueryExpr();
-                          if (s2 === peg$FAILED) {
-                            s2 = peg$parseBroadNamepathExpr();
-                            if (s2 === peg$FAILED) {
-                              s2 = peg$parseParenthesizedExpr();
-                              if (s2 === peg$FAILED) {
-                                s2 = peg$parseValueExpr();
-                                if (s2 === peg$FAILED) {
-                                  s2 = peg$parseAnyTypeExpr();
-                                  if (s2 === peg$FAILED) {
-                                    s2 = peg$parseUnknownTypeExpr();
-                                  }
-                                }
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parse_();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c0(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTopLevel() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 1,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parse_();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicTypeExpr();
-      if (s2 === peg$FAILED) {
-        s2 = peg$parseUnionTypeExpr();
-        if (s2 === peg$FAILED) {
-          s2 = peg$parseUnaryUnionTypeExpr();
-          if (s2 === peg$FAILED) {
-            s2 = peg$parseArrayTypeExpr();
-            if (s2 === peg$FAILED) {
-              s2 = peg$parseGenericTypeExpr();
-              if (s2 === peg$FAILED) {
-                s2 = peg$parseRecordTypeExpr();
-                if (s2 === peg$FAILED) {
-                  s2 = peg$parseTupleTypeExpr();
-                  if (s2 === peg$FAILED) {
-                    s2 = peg$parseArrowTypeExpr();
-                    if (s2 === peg$FAILED) {
-                      s2 = peg$parseFunctionTypeExpr();
-                      if (s2 === peg$FAILED) {
-                        s2 = peg$parseTypeQueryExpr();
-                        if (s2 === peg$FAILED) {
-                          s2 = peg$parseKeyQueryExpr();
-                          if (s2 === peg$FAILED) {
-                            s2 = peg$parseBroadNamepathExpr();
-                            if (s2 === peg$FAILED) {
-                              s2 = peg$parseParenthesizedExpr();
-                              if (s2 === peg$FAILED) {
-                                s2 = peg$parseValueExpr();
-                                if (s2 === peg$FAILED) {
-                                  s2 = peg$parseAnyTypeExpr();
-                                  if (s2 === peg$FAILED) {
-                                    s2 = peg$parseUnknownTypeExpr();
-                                  }
-                                }
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parse_();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c0(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parse_() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 2,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = [];
-    if (peg$c1.test(input.charAt(peg$currPos))) {
-      s1 = input.charAt(peg$currPos);
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c2); }
-    }
-    if (s1 === peg$FAILED) {
-      s1 = peg$currPos;
-      if (peg$c3.test(input.charAt(peg$currPos))) {
-        s2 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s2 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c4); }
-      }
-      if (s2 === peg$FAILED) {
-        s2 = null;
-      }
-      if (s2 !== peg$FAILED) {
-        if (peg$c5.test(input.charAt(peg$currPos))) {
-          s3 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c6); }
-        }
-        if (s3 !== peg$FAILED) {
-          s2 = [s2, s3];
-          s1 = s2;
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    }
-    while (s1 !== peg$FAILED) {
-      s0.push(s1);
-      if (peg$c1.test(input.charAt(peg$currPos))) {
-        s1 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c2); }
-      }
-      if (s1 === peg$FAILED) {
-        s1 = peg$currPos;
-        if (peg$c3.test(input.charAt(peg$currPos))) {
-          s2 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s2 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c4); }
-        }
-        if (s2 === peg$FAILED) {
-          s2 = null;
-        }
-        if (s2 !== peg$FAILED) {
-          if (peg$c5.test(input.charAt(peg$currPos))) {
-            s3 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c6); }
-          }
-          if (s3 !== peg$FAILED) {
-            s2 = [s2, s3];
-            s1 = s2;
-          } else {
-            peg$currPos = s1;
-            s1 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseJsIdentifier() {
-    var s0, s1, s2, s3, s4;
-
-    var key    = peg$currPos * 84 + 3,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (peg$c7.test(input.charAt(peg$currPos))) {
-      s2 = input.charAt(peg$currPos);
-      peg$currPos++;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c8); }
-    }
-    if (s2 !== peg$FAILED) {
-      s3 = [];
-      if (peg$c9.test(input.charAt(peg$currPos))) {
-        s4 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c10); }
-      }
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c9.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c10); }
-        }
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = [s2, s3];
-        s1 = s2;
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseNamepathExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
-
-    var key    = peg$currPos * 84 + 4,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseParenthesizedExpr();
-    if (s1 === peg$FAILED) {
-      s1 = peg$parseImportTypeExpr();
-      if (s1 === peg$FAILED) {
-        s1 = peg$parseTypeNameExpr();
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        s5 = peg$parseInfixNamepathOperator();
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            if (input.substr(peg$currPos, 6) === peg$c11) {
-              s7 = peg$c11;
-              peg$currPos += 6;
-            } else {
-              s7 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c12); }
-            }
-            if (s7 === peg$FAILED) {
-              s7 = null;
-            }
-            if (s7 !== peg$FAILED) {
-              s8 = peg$parse_();
-              if (s8 !== peg$FAILED) {
-                s9 = peg$parseMemberName();
-                if (s9 !== peg$FAILED) {
-                  s4 = [s4, s5, s6, s7, s8, s9];
-                  s3 = s4;
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      while (s3 !== peg$FAILED) {
-        s2.push(s3);
-        s3 = peg$currPos;
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          s5 = peg$parseInfixNamepathOperator();
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              if (input.substr(peg$currPos, 6) === peg$c11) {
-                s7 = peg$c11;
-                peg$currPos += 6;
-              } else {
-                s7 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c12); }
-              }
-              if (s7 === peg$FAILED) {
-                s7 = null;
-              }
-              if (s7 !== peg$FAILED) {
-                s8 = peg$parse_();
-                if (s8 !== peg$FAILED) {
-                  s9 = peg$parseMemberName();
-                  if (s9 !== peg$FAILED) {
-                    s4 = [s4, s5, s6, s7, s8, s9];
-                    s3 = s4;
-                  } else {
-                    peg$currPos = s3;
-                    s3 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c13(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTypeNameExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 5,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseTypeNameExprJsDocFlavored();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseTypeNameExprStrict();
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTypeNameExprStrict() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 6,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseJsIdentifier();
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c14(s1);
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTypeNameExprJsDocFlavored() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 7,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    s2 = peg$currPos;
-    if (peg$c7.test(input.charAt(peg$currPos))) {
-      s3 = input.charAt(peg$currPos);
-      peg$currPos++;
-    } else {
-      s3 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c8); }
-    }
-    if (s3 !== peg$FAILED) {
-      s4 = [];
-      if (peg$c15.test(input.charAt(peg$currPos))) {
-        s5 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s5 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c16); }
-      }
-      while (s5 !== peg$FAILED) {
-        s4.push(s5);
-        if (peg$c15.test(input.charAt(peg$currPos))) {
-          s5 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c16); }
-        }
-      }
-      if (s4 !== peg$FAILED) {
-        s3 = [s3, s4];
-        s2 = s3;
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s2;
-      s2 = peg$FAILED;
-    }
-    if (s2 !== peg$FAILED) {
-      s1 = input.substring(s1, peg$currPos);
-    } else {
-      s1 = s2;
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c17(s1);
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseMemberName() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 8,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 39) {
-      s1 = peg$c18;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c19); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$currPos;
-      s3 = [];
-      if (peg$c20.test(input.charAt(peg$currPos))) {
-        s4 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c21); }
-      }
-      if (s4 === peg$FAILED) {
-        s4 = peg$currPos;
-        if (input.charCodeAt(peg$currPos) === 92) {
-          s5 = peg$c22;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c23); }
-        }
-        if (s5 !== peg$FAILED) {
-          if (input.length > peg$currPos) {
-            s6 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c24); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      }
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c20.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c21); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = input.substring(s2, peg$currPos);
-      } else {
-        s2 = s3;
-      }
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 39) {
-          s3 = peg$c18;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c19); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c25(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 34) {
-        s1 = peg$c26;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c27); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$currPos;
-        s3 = [];
-        if (peg$c28.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c29); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-        while (s4 !== peg$FAILED) {
-          s3.push(s4);
-          if (peg$c28.test(input.charAt(peg$currPos))) {
-            s4 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s4 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c29); }
-          }
-          if (s4 === peg$FAILED) {
-            s4 = peg$currPos;
-            if (input.charCodeAt(peg$currPos) === 92) {
-              s5 = peg$c22;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c23); }
-            }
-            if (s5 !== peg$FAILED) {
-              if (input.length > peg$currPos) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c24); }
-              }
-              if (s6 !== peg$FAILED) {
-                s5 = [s5, s6];
-                s4 = s5;
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          }
-        }
-        if (s3 !== peg$FAILED) {
-          s2 = input.substring(s2, peg$currPos);
-        } else {
-          s2 = s3;
-        }
-        if (s2 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 34) {
-            s3 = peg$c26;
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c27); }
-          }
-          if (s3 !== peg$FAILED) {
-            peg$savedPos = s0;
-            s1 = peg$c30(s2);
-            s0 = s1;
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-      if (s0 === peg$FAILED) {
-        s0 = peg$currPos;
-        s1 = peg$parseJsIdentifier();
-        if (s1 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c31(s1);
-        }
-        s0 = s1;
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseInfixNamepathOperator() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 9,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseMemberTypeOperator();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseInstanceMemberTypeOperator();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseInnerMemberTypeOperator();
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseQualifiedMemberName() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 10,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseTypeNameExpr();
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 46) {
-          s5 = peg$c32;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c33); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            s7 = peg$parseTypeNameExpr();
-            if (s7 !== peg$FAILED) {
-              s4 = [s4, s5, s6, s7];
-              s3 = s4;
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      while (s3 !== peg$FAILED) {
-        s2.push(s3);
-        s3 = peg$currPos;
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 46) {
-            s5 = peg$c32;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c33); }
-          }
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              s7 = peg$parseTypeNameExpr();
-              if (s7 !== peg$FAILED) {
-                s4 = [s4, s5, s6, s7];
-                s3 = s4;
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c34(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseMemberTypeOperator() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 11,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 46) {
-      s1 = peg$c32;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c33); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c35();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseInnerMemberTypeOperator() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 12,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 126) {
-      s1 = peg$c36;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c37); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c38();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseInstanceMemberTypeOperator() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 13,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 35) {
-      s1 = peg$c39;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c40); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c41();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseBroadNamepathExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 14,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseExternalNameExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseModuleNameExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseNamepathExpr();
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseExternalNameExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
-
-    var key    = peg$currPos * 84 + 15,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 8) === peg$c42) {
-      s1 = peg$c42;
-      peg$currPos += 8;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c43); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 58) {
-          s3 = peg$c44;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c45); }
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parseMemberName();
-            if (s5 !== peg$FAILED) {
-              s6 = [];
-              s7 = peg$currPos;
-              s8 = peg$parse_();
-              if (s8 !== peg$FAILED) {
-                s9 = peg$parseInfixNamepathOperator();
-                if (s9 !== peg$FAILED) {
-                  s10 = peg$parse_();
-                  if (s10 !== peg$FAILED) {
-                    if (input.substr(peg$currPos, 6) === peg$c11) {
-                      s11 = peg$c11;
-                      peg$currPos += 6;
-                    } else {
-                      s11 = peg$FAILED;
-                      if (peg$silentFails === 0) { peg$fail(peg$c12); }
-                    }
-                    if (s11 === peg$FAILED) {
-                      s11 = null;
-                    }
-                    if (s11 !== peg$FAILED) {
-                      s12 = peg$parse_();
-                      if (s12 !== peg$FAILED) {
-                        s13 = peg$parseMemberName();
-                        if (s13 !== peg$FAILED) {
-                          s8 = [s8, s9, s10, s11, s12, s13];
-                          s7 = s8;
-                        } else {
-                          peg$currPos = s7;
-                          s7 = peg$FAILED;
-                        }
-                      } else {
-                        peg$currPos = s7;
-                        s7 = peg$FAILED;
-                      }
-                    } else {
-                      peg$currPos = s7;
-                      s7 = peg$FAILED;
-                    }
-                  } else {
-                    peg$currPos = s7;
-                    s7 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s7;
-                  s7 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s7;
-                s7 = peg$FAILED;
-              }
-              while (s7 !== peg$FAILED) {
-                s6.push(s7);
-                s7 = peg$currPos;
-                s8 = peg$parse_();
-                if (s8 !== peg$FAILED) {
-                  s9 = peg$parseInfixNamepathOperator();
-                  if (s9 !== peg$FAILED) {
-                    s10 = peg$parse_();
-                    if (s10 !== peg$FAILED) {
-                      if (input.substr(peg$currPos, 6) === peg$c11) {
-                        s11 = peg$c11;
-                        peg$currPos += 6;
-                      } else {
-                        s11 = peg$FAILED;
-                        if (peg$silentFails === 0) { peg$fail(peg$c12); }
-                      }
-                      if (s11 === peg$FAILED) {
-                        s11 = null;
-                      }
-                      if (s11 !== peg$FAILED) {
-                        s12 = peg$parse_();
-                        if (s12 !== peg$FAILED) {
-                          s13 = peg$parseMemberName();
-                          if (s13 !== peg$FAILED) {
-                            s8 = [s8, s9, s10, s11, s12, s13];
-                            s7 = s8;
-                          } else {
-                            peg$currPos = s7;
-                            s7 = peg$FAILED;
-                          }
-                        } else {
-                          peg$currPos = s7;
-                          s7 = peg$FAILED;
-                        }
-                      } else {
-                        peg$currPos = s7;
-                        s7 = peg$FAILED;
-                      }
-                    } else {
-                      peg$currPos = s7;
-                      s7 = peg$FAILED;
-                    }
-                  } else {
-                    peg$currPos = s7;
-                    s7 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s7;
-                  s7 = peg$FAILED;
-                }
-              }
-              if (s6 !== peg$FAILED) {
-                peg$savedPos = s0;
-                s1 = peg$c46(s5, s6);
-                s0 = s1;
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseModuleNameExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 16,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 6) === peg$c47) {
-      s1 = peg$c47;
-      peg$currPos += 6;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c48); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 58) {
-          s3 = peg$c44;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c45); }
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parseModulePathExpr();
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c49(s5);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseModulePathExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
-
-    var key    = peg$currPos * 84 + 17,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseFilePathExpr();
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        s5 = peg$parseInfixNamepathOperator();
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            if (input.substr(peg$currPos, 6) === peg$c11) {
-              s7 = peg$c11;
-              peg$currPos += 6;
-            } else {
-              s7 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c12); }
-            }
-            if (s7 === peg$FAILED) {
-              s7 = null;
-            }
-            if (s7 !== peg$FAILED) {
-              s8 = peg$parse_();
-              if (s8 !== peg$FAILED) {
-                s9 = peg$parseMemberName();
-                if (s9 !== peg$FAILED) {
-                  s4 = [s4, s5, s6, s7, s8, s9];
-                  s3 = s4;
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      while (s3 !== peg$FAILED) {
-        s2.push(s3);
-        s3 = peg$currPos;
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          s5 = peg$parseInfixNamepathOperator();
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              if (input.substr(peg$currPos, 6) === peg$c11) {
-                s7 = peg$c11;
-                peg$currPos += 6;
-              } else {
-                s7 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c12); }
-              }
-              if (s7 === peg$FAILED) {
-                s7 = null;
-              }
-              if (s7 !== peg$FAILED) {
-                s8 = peg$parse_();
-                if (s8 !== peg$FAILED) {
-                  s9 = peg$parseMemberName();
-                  if (s9 !== peg$FAILED) {
-                    s4 = [s4, s5, s6, s7, s8, s9];
-                    s3 = s4;
-                  } else {
-                    peg$currPos = s3;
-                    s3 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c50(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFilePathExpr() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 18,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 39) {
-      s1 = peg$c18;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c19); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$currPos;
-      s3 = [];
-      if (peg$c20.test(input.charAt(peg$currPos))) {
-        s4 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c21); }
-      }
-      if (s4 === peg$FAILED) {
-        s4 = peg$currPos;
-        if (input.charCodeAt(peg$currPos) === 92) {
-          s5 = peg$c22;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c23); }
-        }
-        if (s5 !== peg$FAILED) {
-          if (input.length > peg$currPos) {
-            s6 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c24); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      }
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c20.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c21); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = input.substring(s2, peg$currPos);
-      } else {
-        s2 = s3;
-      }
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 39) {
-          s3 = peg$c18;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c19); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c51(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 34) {
-        s1 = peg$c26;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c27); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$currPos;
-        s3 = [];
-        if (peg$c28.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c29); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-        while (s4 !== peg$FAILED) {
-          s3.push(s4);
-          if (peg$c28.test(input.charAt(peg$currPos))) {
-            s4 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s4 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c29); }
-          }
-          if (s4 === peg$FAILED) {
-            s4 = peg$currPos;
-            if (input.charCodeAt(peg$currPos) === 92) {
-              s5 = peg$c22;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c23); }
-            }
-            if (s5 !== peg$FAILED) {
-              if (input.length > peg$currPos) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c24); }
-              }
-              if (s6 !== peg$FAILED) {
-                s5 = [s5, s6];
-                s4 = s5;
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          }
-        }
-        if (s3 !== peg$FAILED) {
-          s2 = input.substring(s2, peg$currPos);
-        } else {
-          s2 = s3;
-        }
-        if (s2 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 34) {
-            s3 = peg$c26;
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c27); }
-          }
-          if (s3 !== peg$FAILED) {
-            peg$savedPos = s0;
-            s1 = peg$c52(s2);
-            s0 = s1;
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-      if (s0 === peg$FAILED) {
-        s0 = peg$currPos;
-        s1 = peg$currPos;
-        s2 = [];
-        if (peg$c53.test(input.charAt(peg$currPos))) {
-          s3 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c54); }
-        }
-        if (s3 !== peg$FAILED) {
-          while (s3 !== peg$FAILED) {
-            s2.push(s3);
-            if (peg$c53.test(input.charAt(peg$currPos))) {
-              s3 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s3 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c54); }
-            }
-          }
-        } else {
-          s2 = peg$FAILED;
-        }
-        if (s2 !== peg$FAILED) {
-          s1 = input.substring(s1, peg$currPos);
-        } else {
-          s1 = s2;
-        }
-        if (s1 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c55(s1);
-        }
-        s0 = s1;
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseAnyTypeExpr() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 19,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 42) {
-      s1 = peg$c56;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c57); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c58();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnknownTypeExpr() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 20,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 63) {
-      s1 = peg$c59;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c60); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c61();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseValueExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 21,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseStringLiteralExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseNumberLiteralExpr();
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseStringLiteralExpr() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 22,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 34) {
-      s1 = peg$c26;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c27); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$currPos;
-      s3 = [];
-      if (peg$c28.test(input.charAt(peg$currPos))) {
-        s4 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c29); }
-      }
-      if (s4 === peg$FAILED) {
-        s4 = peg$currPos;
-        if (input.charCodeAt(peg$currPos) === 92) {
-          s5 = peg$c22;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c23); }
-        }
-        if (s5 !== peg$FAILED) {
-          if (input.length > peg$currPos) {
-            s6 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c24); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      }
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c28.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c29); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = input.substring(s2, peg$currPos);
-      } else {
-        s2 = s3;
-      }
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 34) {
-          s3 = peg$c26;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c27); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c62(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 39) {
-        s1 = peg$c18;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c19); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$currPos;
-        s3 = [];
-        if (peg$c20.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c21); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-        while (s4 !== peg$FAILED) {
-          s3.push(s4);
-          if (peg$c20.test(input.charAt(peg$currPos))) {
-            s4 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s4 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c21); }
-          }
-          if (s4 === peg$FAILED) {
-            s4 = peg$currPos;
-            if (input.charCodeAt(peg$currPos) === 92) {
-              s5 = peg$c22;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c23); }
-            }
-            if (s5 !== peg$FAILED) {
-              if (input.length > peg$currPos) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c24); }
-              }
-              if (s6 !== peg$FAILED) {
-                s5 = [s5, s6];
-                s4 = s5;
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          }
-        }
-        if (s3 !== peg$FAILED) {
-          s2 = input.substring(s2, peg$currPos);
-        } else {
-          s2 = s3;
-        }
-        if (s2 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 39) {
-            s3 = peg$c18;
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c19); }
-          }
-          if (s3 !== peg$FAILED) {
-            peg$savedPos = s0;
-            s1 = peg$c63(s2);
-            s0 = s1;
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseNumberLiteralExpr() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 23,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseBinNumberLiteralExpr();
-    if (s1 === peg$FAILED) {
-      s1 = peg$parseOctNumberLiteralExpr();
-      if (s1 === peg$FAILED) {
-        s1 = peg$parseHexNumberLiteralExpr();
-        if (s1 === peg$FAILED) {
-          s1 = peg$parseDecimalNumberLiteralExpr();
-        }
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c64(s1);
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseDecimalNumberLiteralExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 24,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 43) {
-      s2 = peg$c65;
-      peg$currPos++;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c66); }
-    }
-    if (s2 === peg$FAILED) {
-      if (input.charCodeAt(peg$currPos) === 45) {
-        s2 = peg$c67;
-        peg$currPos++;
-      } else {
-        s2 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c68); }
-      }
-    }
-    if (s2 === peg$FAILED) {
-      s2 = null;
-    }
-    if (s2 !== peg$FAILED) {
-      s3 = peg$parseUnsignedDecimalNumberLiteralExpr();
-      if (s3 !== peg$FAILED) {
-        s2 = [s2, s3];
-        s1 = s2;
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnsignedDecimalNumberLiteralExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 25,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    s2 = peg$currPos;
-    s3 = [];
-    if (peg$c69.test(input.charAt(peg$currPos))) {
-      s4 = input.charAt(peg$currPos);
-      peg$currPos++;
-    } else {
-      s4 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c70); }
-    }
-    if (s4 !== peg$FAILED) {
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c69.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c70); }
-        }
-      }
-    } else {
-      s3 = peg$FAILED;
-    }
-    if (s3 !== peg$FAILED) {
-      s4 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 46) {
-        s5 = peg$c32;
-        peg$currPos++;
-      } else {
-        s5 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c33); }
-      }
-      if (s5 !== peg$FAILED) {
-        s6 = [];
-        if (peg$c69.test(input.charAt(peg$currPos))) {
-          s7 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s7 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c70); }
-        }
-        if (s7 !== peg$FAILED) {
-          while (s7 !== peg$FAILED) {
-            s6.push(s7);
-            if (peg$c69.test(input.charAt(peg$currPos))) {
-              s7 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s7 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c70); }
-            }
-          }
-        } else {
-          s6 = peg$FAILED;
-        }
-        if (s6 !== peg$FAILED) {
-          s5 = [s5, s6];
-          s4 = s5;
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s4;
-        s4 = peg$FAILED;
-      }
-      if (s4 === peg$FAILED) {
-        s4 = null;
-      }
-      if (s4 !== peg$FAILED) {
-        s3 = [s3, s4];
-        s2 = s3;
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s2;
-      s2 = peg$FAILED;
-    }
-    if (s2 === peg$FAILED) {
-      s2 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 46) {
-        s3 = peg$c32;
-        peg$currPos++;
-      } else {
-        s3 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c33); }
-      }
-      if (s3 !== peg$FAILED) {
-        s4 = [];
-        if (peg$c69.test(input.charAt(peg$currPos))) {
-          s5 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c70); }
-        }
-        if (s5 !== peg$FAILED) {
-          while (s5 !== peg$FAILED) {
-            s4.push(s5);
-            if (peg$c69.test(input.charAt(peg$currPos))) {
-              s5 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c70); }
-            }
-          }
-        } else {
-          s4 = peg$FAILED;
-        }
-        if (s4 !== peg$FAILED) {
-          s3 = [s3, s4];
-          s2 = s3;
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    }
-    if (s2 !== peg$FAILED) {
-      s3 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 101) {
-        s4 = peg$c71;
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c72); }
-      }
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 43) {
-          s5 = peg$c65;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c66); }
-        }
-        if (s5 === peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 45) {
-            s5 = peg$c67;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c68); }
-          }
-        }
-        if (s5 === peg$FAILED) {
-          s5 = null;
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = [];
-          if (peg$c69.test(input.charAt(peg$currPos))) {
-            s7 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s7 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c70); }
-          }
-          if (s7 !== peg$FAILED) {
-            while (s7 !== peg$FAILED) {
-              s6.push(s7);
-              if (peg$c69.test(input.charAt(peg$currPos))) {
-                s7 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s7 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c70); }
-              }
-            }
-          } else {
-            s6 = peg$FAILED;
-          }
-          if (s6 !== peg$FAILED) {
-            s4 = [s4, s5, s6];
-            s3 = s4;
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      if (s3 === peg$FAILED) {
-        s3 = null;
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = [s2, s3];
-        s1 = s2;
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseBinNumberLiteralExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 26,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 45) {
-      s2 = peg$c67;
-      peg$currPos++;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c68); }
-    }
-    if (s2 === peg$FAILED) {
-      s2 = null;
-    }
-    if (s2 !== peg$FAILED) {
-      if (input.substr(peg$currPos, 2) === peg$c73) {
-        s3 = peg$c73;
-        peg$currPos += 2;
-      } else {
-        s3 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c74); }
-      }
-      if (s3 !== peg$FAILED) {
-        s4 = [];
-        if (peg$c75.test(input.charAt(peg$currPos))) {
-          s5 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c76); }
-        }
-        if (s5 !== peg$FAILED) {
-          while (s5 !== peg$FAILED) {
-            s4.push(s5);
-            if (peg$c75.test(input.charAt(peg$currPos))) {
-              s5 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c76); }
-            }
-          }
-        } else {
-          s4 = peg$FAILED;
-        }
-        if (s4 !== peg$FAILED) {
-          s2 = [s2, s3, s4];
-          s1 = s2;
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseOctNumberLiteralExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 27,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 45) {
-      s2 = peg$c67;
-      peg$currPos++;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c68); }
-    }
-    if (s2 === peg$FAILED) {
-      s2 = null;
-    }
-    if (s2 !== peg$FAILED) {
-      if (input.substr(peg$currPos, 2) === peg$c77) {
-        s3 = peg$c77;
-        peg$currPos += 2;
-      } else {
-        s3 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c78); }
-      }
-      if (s3 !== peg$FAILED) {
-        s4 = [];
-        if (peg$c79.test(input.charAt(peg$currPos))) {
-          s5 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c80); }
-        }
-        if (s5 !== peg$FAILED) {
-          while (s5 !== peg$FAILED) {
-            s4.push(s5);
-            if (peg$c79.test(input.charAt(peg$currPos))) {
-              s5 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c80); }
-            }
-          }
-        } else {
-          s4 = peg$FAILED;
-        }
-        if (s4 !== peg$FAILED) {
-          s2 = [s2, s3, s4];
-          s1 = s2;
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseHexNumberLiteralExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 28,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 45) {
-      s2 = peg$c67;
-      peg$currPos++;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c68); }
-    }
-    if (s2 === peg$FAILED) {
-      s2 = null;
-    }
-    if (s2 !== peg$FAILED) {
-      if (input.substr(peg$currPos, 2) === peg$c81) {
-        s3 = peg$c81;
-        peg$currPos += 2;
-      } else {
-        s3 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c82); }
-      }
-      if (s3 !== peg$FAILED) {
-        s4 = [];
-        if (peg$c83.test(input.charAt(peg$currPos))) {
-          s5 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c84); }
-        }
-        if (s5 !== peg$FAILED) {
-          while (s5 !== peg$FAILED) {
-            s4.push(s5);
-            if (peg$c83.test(input.charAt(peg$currPos))) {
-              s5 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c84); }
-            }
-          }
-        } else {
-          s4 = peg$FAILED;
-        }
-        if (s4 !== peg$FAILED) {
-          s2 = [s2, s3, s4];
-          s1 = s2;
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      s0 = input.substring(s0, peg$currPos);
-    } else {
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnionTypeExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 29,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseUnionTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseUnionTypeOperator();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parseUnionTypeExpr();
-            if (s5 === peg$FAILED) {
-              s5 = peg$parseUnionTypeExprOperand();
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c85(s1, s3, s5);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnionTypeOperator() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 30,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeOperatorClosureLibraryFlavored();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnionTypeOperatorJSDuckFlavored();
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnionTypeOperatorClosureLibraryFlavored() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 31,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 124) {
-      s1 = peg$c86;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c87); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c88();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnionTypeOperatorJSDuckFlavored() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 32,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 47) {
-      s1 = peg$c89;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c90); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c91();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnionTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 33,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnaryUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseRecordTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseTupleTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseArrowTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseFunctionTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseParenthesizedExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseTypeQueryExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseKeyQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseGenericTypeExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseArrayTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseBroadNamepathExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseValueExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseAnyTypeExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseUnknownTypeExpr();
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseUnaryUnionTypeExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 34,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseSuffixUnaryUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parsePrefixUnaryUnionTypeExpr();
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixUnaryUnionTypeExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 35,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parsePrefixOptionalTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parsePrefixNotNullableTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parsePrefixNullableTypeExpr();
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixUnaryUnionTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 36,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseGenericTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseRecordTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseTupleTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseArrowTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseFunctionTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseParenthesizedExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseBroadNamepathExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseValueExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseAnyTypeExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseUnknownTypeExpr();
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTypeQueryExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 37,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 6) === peg$c92) {
-      s1 = peg$c92;
-      peg$currPos += 6;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c93); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseQualifiedMemberName();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c94(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseKeyQueryExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 38,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 5) === peg$c95) {
-      s1 = peg$c95;
-      peg$currPos += 5;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c96); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseKeyQueryExprOperand();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c97(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseKeyQueryExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 39,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseFunctionTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseParenthesizedExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseTypeQueryExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseKeyQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseArrayTypeExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseGenericTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseBroadNamepathExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseValueExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseAnyTypeExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseUnknownTypeExpr();
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseImportTypeExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 40,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 6) === peg$c98) {
-      s1 = peg$c98;
-      peg$currPos += 6;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c99); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 40) {
-          s3 = peg$c100;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c101); }
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parseStringLiteralExpr();
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                if (input.charCodeAt(peg$currPos) === 41) {
-                  s7 = peg$c102;
-                  peg$currPos++;
-                } else {
-                  s7 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c103); }
-                }
-                if (s7 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c104(s1, s5);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixNullableTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 41,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 63) {
-      s1 = peg$c59;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c60); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parsePrefixUnaryUnionTypeExprOperand();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c105(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixNotNullableTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 42,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 33) {
-      s1 = peg$c106;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c107); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parsePrefixUnaryUnionTypeExprOperand();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c108(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixOptionalTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 43,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 61) {
-      s1 = peg$c109;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c110); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parsePrefixUnaryUnionTypeExprOperand();
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c111(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixUnaryUnionTypeExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 44,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseSuffixOptionalTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseSuffixNullableTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseSuffixNotNullableTypeExpr();
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixUnaryUnionTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 45,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parsePrefixUnaryUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseGenericTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseParenthesizedExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseBroadNamepathExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseValueExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseAnyTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseUnknownTypeExpr();
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixNullableTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 46,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseSuffixUnaryUnionTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 63) {
-          s3 = peg$c59;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c60); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c112(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixNotNullableTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 47,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseSuffixUnaryUnionTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 33) {
-          s3 = peg$c106;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c107); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c113(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixOptionalTypeExpr() {
-    var s0, s1, s2, s3;
-
-    var key    = peg$currPos * 84 + 48,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseSuffixNullableTypeExpr();
-    if (s1 === peg$FAILED) {
-      s1 = peg$parseSuffixNotNullableTypeExpr();
-      if (s1 === peg$FAILED) {
-        s1 = peg$parseSuffixUnaryUnionTypeExprOperand();
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 61) {
-          s3 = peg$c109;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c110); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c114(s1, s3);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 49,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseGenericTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseGenericTypeStartToken();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parseGenericTypeExprTypeParamList();
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                s7 = peg$parseGenericTypeEndToken();
-                if (s7 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c115(s1, s3, s5);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 50,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseParenthesizedExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseBroadNamepathExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseValueExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseAnyTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseUnknownTypeExpr();
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeExprTypeParamOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 51,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseParenthesizedExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseArrayTypeExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseGenericTypeExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseTypeQueryExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseKeyQueryExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseBroadNamepathExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseValueExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseAnyTypeExpr();
-                              if (s0 === peg$FAILED) {
-                                s0 = peg$parseUnknownTypeExpr();
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeExprTypeParamList() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 52,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseGenericTypeExprTypeParamOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 44) {
-          s5 = peg$c116;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c117); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            s7 = peg$parseGenericTypeExprTypeParamOperand();
-            if (s7 !== peg$FAILED) {
-              s4 = [s4, s5, s6, s7];
-              s3 = s4;
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      while (s3 !== peg$FAILED) {
-        s2.push(s3);
-        s3 = peg$currPos;
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 44) {
-            s5 = peg$c116;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c117); }
-          }
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              s7 = peg$parseGenericTypeExprTypeParamOperand();
-              if (s7 !== peg$FAILED) {
-                s4 = [s4, s5, s6, s7];
-                s3 = s4;
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c118(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeStartToken() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 53,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseGenericTypeEcmaScriptFlavoredStartToken();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseGenericTypeTypeScriptFlavoredStartToken();
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeEcmaScriptFlavoredStartToken() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 54,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 2) === peg$c119) {
-      s1 = peg$c119;
-      peg$currPos += 2;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c120); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c121();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeTypeScriptFlavoredStartToken() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 55,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 60) {
-      s1 = peg$c122;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c123); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c124();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseGenericTypeEndToken() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 56,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    if (input.charCodeAt(peg$currPos) === 62) {
-      s0 = peg$c125;
-      peg$currPos++;
-    } else {
-      s0 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c126); }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseArrayTypeExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 57,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseArrayTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 91) {
-          s5 = peg$c127;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c128); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 93) {
-              s7 = peg$c129;
-              peg$currPos++;
-            } else {
-              s7 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c130); }
-            }
-            if (s7 !== peg$FAILED) {
-              s4 = [s4, s5, s6, s7];
-              s3 = s4;
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      if (s3 !== peg$FAILED) {
-        while (s3 !== peg$FAILED) {
-          s2.push(s3);
-          s3 = peg$currPos;
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 91) {
-              s5 = peg$c127;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c128); }
-            }
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                if (input.charCodeAt(peg$currPos) === 93) {
-                  s7 = peg$c129;
-                  peg$currPos++;
-                } else {
-                  s7 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c130); }
-                }
-                if (s7 !== peg$FAILED) {
-                  s4 = [s4, s5, s6, s7];
-                  s3 = s4;
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        }
-      } else {
-        s2 = peg$FAILED;
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c131(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseArrayTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 58,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnaryUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseRecordTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseTupleTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseArrowTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseFunctionTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseParenthesizedExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseGenericTypeExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseTypeQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseKeyQueryExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseBroadNamepathExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseValueExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseAnyTypeExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseUnknownTypeExpr();
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseArrowTypeExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 59,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 3) === peg$c132) {
-      s1 = peg$c132;
-      peg$currPos += 3;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c133); }
-    }
-    if (s1 === peg$FAILED) {
-      s1 = null;
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseArrowTypeExprParamsList();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.substr(peg$currPos, 2) === peg$c134) {
-              s5 = peg$c134;
-              peg$currPos += 2;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c135); }
-            }
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                s7 = peg$parseFunctionTypeExprReturnableOperand();
-                if (s7 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c136(s1, s3, s7);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseArrowTypeExprParamsList() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 60,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 40) {
-      s1 = peg$c100;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c101); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseArrowTypeExprParams();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 41) {
-              s5 = peg$c102;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c103); }
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c137(s3);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 40) {
-        s1 = peg$c100;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c101); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$parse_();
-        if (s2 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 41) {
-            s3 = peg$c102;
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c103); }
-          }
-          if (s3 !== peg$FAILED) {
-            peg$savedPos = s0;
-            s1 = peg$c138();
-            s0 = s1;
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseArrowTypeExprParams() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
-
-    var key    = peg$currPos * 84 + 61,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = [];
-    s2 = peg$currPos;
-    s3 = peg$parseJsIdentifier();
-    if (s3 !== peg$FAILED) {
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 58) {
-          s5 = peg$c44;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c45); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            s7 = peg$parseFunctionTypeExprParamOperand();
-            if (s7 === peg$FAILED) {
-              s7 = null;
-            }
-            if (s7 !== peg$FAILED) {
-              s8 = peg$parse_();
-              if (s8 !== peg$FAILED) {
-                if (input.charCodeAt(peg$currPos) === 44) {
-                  s9 = peg$c116;
-                  peg$currPos++;
-                } else {
-                  s9 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c117); }
-                }
-                if (s9 !== peg$FAILED) {
-                  s10 = peg$parse_();
-                  if (s10 !== peg$FAILED) {
-                    s3 = [s3, s4, s5, s6, s7, s8, s9, s10];
-                    s2 = s3;
-                  } else {
-                    peg$currPos = s2;
-                    s2 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s2;
-                  s2 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s2;
-                s2 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s2;
-              s2 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s2;
-      s2 = peg$FAILED;
-    }
-    while (s2 !== peg$FAILED) {
-      s1.push(s2);
-      s2 = peg$currPos;
-      s3 = peg$parseJsIdentifier();
-      if (s3 !== peg$FAILED) {
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 58) {
-            s5 = peg$c44;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c45); }
-          }
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              s7 = peg$parseFunctionTypeExprParamOperand();
-              if (s7 === peg$FAILED) {
-                s7 = null;
-              }
-              if (s7 !== peg$FAILED) {
-                s8 = peg$parse_();
-                if (s8 !== peg$FAILED) {
-                  if (input.charCodeAt(peg$currPos) === 44) {
-                    s9 = peg$c116;
-                    peg$currPos++;
-                  } else {
-                    s9 = peg$FAILED;
-                    if (peg$silentFails === 0) { peg$fail(peg$c117); }
-                  }
-                  if (s9 !== peg$FAILED) {
-                    s10 = peg$parse_();
-                    if (s10 !== peg$FAILED) {
-                      s3 = [s3, s4, s5, s6, s7, s8, s9, s10];
-                      s2 = s3;
-                    } else {
-                      peg$currPos = s2;
-                      s2 = peg$FAILED;
-                    }
-                  } else {
-                    peg$currPos = s2;
-                    s2 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s2;
-                  s2 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s2;
-                s2 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s2;
-              s2 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicNameExpr();
-      if (s2 === peg$FAILED) {
-        s2 = null;
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c139(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseVariadicNameExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 62,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 3) === peg$c140) {
-      s1 = peg$c140;
-      peg$currPos += 3;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c141); }
-    }
-    if (s1 === peg$FAILED) {
-      s1 = null;
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseJsIdentifier();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 58) {
-              s5 = peg$c44;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c45); }
-            }
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                s7 = peg$parseFunctionTypeExprParamOperand();
-                if (s7 === peg$FAILED) {
-                  s7 = null;
-                }
-                if (s7 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c142(s1, s3, s7);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExpr() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8;
-
-    var key    = peg$currPos * 84 + 63,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 8) === peg$c143) {
-      s1 = peg$c143;
-      peg$currPos += 8;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c144); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseFunctionTypeExprParamsList();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            s5 = peg$currPos;
-            if (input.charCodeAt(peg$currPos) === 58) {
-              s6 = peg$c44;
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c45); }
-            }
-            if (s6 !== peg$FAILED) {
-              s7 = peg$parse_();
-              if (s7 !== peg$FAILED) {
-                s8 = peg$parseFunctionTypeExprReturnableOperand();
-                if (s8 !== peg$FAILED) {
-                  s6 = [s6, s7, s8];
-                  s5 = s6;
-                } else {
-                  peg$currPos = s5;
-                  s5 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s5;
-                s5 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s5;
-              s5 = peg$FAILED;
-            }
-            if (s5 === peg$FAILED) {
-              s5 = null;
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c145(s3, s5);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExprParamsList() {
-    var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
-
-    var key    = peg$currPos * 84 + 64,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 40) {
-      s1 = peg$c100;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c101); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseFunctionTypeExprModifier();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 44) {
-              s5 = peg$c116;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c117); }
-            }
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                s7 = peg$parseFunctionTypeExprParams();
-                if (s7 !== peg$FAILED) {
-                  s8 = peg$parse_();
-                  if (s8 !== peg$FAILED) {
-                    if (input.charCodeAt(peg$currPos) === 41) {
-                      s9 = peg$c102;
-                      peg$currPos++;
-                    } else {
-                      s9 = peg$FAILED;
-                      if (peg$silentFails === 0) { peg$fail(peg$c103); }
-                    }
-                    if (s9 !== peg$FAILED) {
-                      peg$savedPos = s0;
-                      s1 = peg$c146(s3, s7);
-                      s0 = s1;
-                    } else {
-                      peg$currPos = s0;
-                      s0 = peg$FAILED;
-                    }
-                  } else {
-                    peg$currPos = s0;
-                    s0 = peg$FAILED;
-                  }
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 40) {
-        s1 = peg$c100;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c101); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$parse_();
-        if (s2 !== peg$FAILED) {
-          s3 = peg$parseFunctionTypeExprModifier();
-          if (s3 !== peg$FAILED) {
-            s4 = peg$parse_();
-            if (s4 !== peg$FAILED) {
-              if (input.charCodeAt(peg$currPos) === 41) {
-                s5 = peg$c102;
-                peg$currPos++;
-              } else {
-                s5 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c103); }
-              }
-              if (s5 !== peg$FAILED) {
-                peg$savedPos = s0;
-                s1 = peg$c147(s3);
-                s0 = s1;
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-      if (s0 === peg$FAILED) {
-        s0 = peg$currPos;
-        if (input.charCodeAt(peg$currPos) === 40) {
-          s1 = peg$c100;
-          peg$currPos++;
-        } else {
-          s1 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c101); }
-        }
-        if (s1 !== peg$FAILED) {
-          s2 = peg$parse_();
-          if (s2 !== peg$FAILED) {
-            s3 = peg$parseFunctionTypeExprParams();
-            if (s3 !== peg$FAILED) {
-              s4 = peg$parse_();
-              if (s4 !== peg$FAILED) {
-                if (input.charCodeAt(peg$currPos) === 41) {
-                  s5 = peg$c102;
-                  peg$currPos++;
-                } else {
-                  s5 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c103); }
-                }
-                if (s5 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c148(s3);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-        if (s0 === peg$FAILED) {
-          s0 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 40) {
-            s1 = peg$c100;
-            peg$currPos++;
-          } else {
-            s1 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c101); }
-          }
-          if (s1 !== peg$FAILED) {
-            s2 = peg$parse_();
-            if (s2 !== peg$FAILED) {
-              if (input.charCodeAt(peg$currPos) === 41) {
-                s3 = peg$c102;
-                peg$currPos++;
-              } else {
-                s3 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c103); }
-              }
-              if (s3 !== peg$FAILED) {
-                peg$savedPos = s0;
-                s1 = peg$c149();
-                s0 = s1;
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExprModifier() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 65,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$currPos;
-    if (input.substr(peg$currPos, 4) === peg$c150) {
-      s2 = peg$c150;
-      peg$currPos += 4;
-    } else {
-      s2 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c151); }
-    }
-    if (s2 !== peg$FAILED) {
-      s3 = peg$parse_();
-      if (s3 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 58) {
-          s4 = peg$c44;
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c45); }
-        }
-        if (s4 !== peg$FAILED) {
-          s5 = peg$parse_();
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parseFunctionTypeExprParamOperand();
-            if (s6 !== peg$FAILED) {
-              s2 = [s2, s3, s4, s5, s6];
-              s1 = s2;
-            } else {
-              peg$currPos = s1;
-              s1 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s1;
-            s1 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s1;
-      s1 = peg$FAILED;
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c152(s1);
-    }
-    s0 = s1;
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      s1 = peg$currPos;
-      if (input.substr(peg$currPos, 3) === peg$c132) {
-        s2 = peg$c132;
-        peg$currPos += 3;
-      } else {
-        s2 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c133); }
-      }
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parse_();
-        if (s3 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 58) {
-            s4 = peg$c44;
-            peg$currPos++;
-          } else {
-            s4 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c45); }
-          }
-          if (s4 !== peg$FAILED) {
-            s5 = peg$parse_();
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parseFunctionTypeExprParamOperand();
-              if (s6 !== peg$FAILED) {
-                s2 = [s2, s3, s4, s5, s6];
-                s1 = s2;
-              } else {
-                peg$currPos = s1;
-                s1 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s1;
-              s1 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s1;
-            s1 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s1;
-          s1 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s1;
-        s1 = peg$FAILED;
-      }
-      if (s1 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c153(s1);
-      }
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExprParams() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 66,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = [];
-    s2 = peg$currPos;
-    s3 = peg$parseFunctionTypeExprParamOperand();
-    if (s3 !== peg$FAILED) {
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 44) {
-          s5 = peg$c116;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c117); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            s3 = [s3, s4, s5, s6];
-            s2 = s3;
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s2;
-      s2 = peg$FAILED;
-    }
-    while (s2 !== peg$FAILED) {
-      s1.push(s2);
-      s2 = peg$currPos;
-      s3 = peg$parseFunctionTypeExprParamOperand();
-      if (s3 !== peg$FAILED) {
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 44) {
-            s5 = peg$c116;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c117); }
-          }
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              s3 = [s3, s4, s5, s6];
-              s2 = s3;
-            } else {
-              peg$currPos = s2;
-              s2 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicTypeExpr();
-      if (s2 === peg$FAILED) {
-        s2 = peg$parseVariadicTypeExprOperand();
-      }
-      if (s2 === peg$FAILED) {
-        s2 = null;
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c154(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExprParamOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 67,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseTypeQueryExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseKeyQueryExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseUnaryUnionTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseRecordTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseTupleTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseArrowTypeExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseFunctionTypeExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseParenthesizedExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseArrayTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseGenericTypeExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseBroadNamepathExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseValueExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseAnyTypeExpr();
-                              if (s0 === peg$FAILED) {
-                                s0 = peg$parseUnknownTypeExpr();
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseFunctionTypeExprReturnableOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 68,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parsePrefixUnaryUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseRecordTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseTupleTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseArrowTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseFunctionTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseParenthesizedExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseArrayTypeExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseTypeQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseKeyQueryExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseGenericTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseBroadNamepathExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseValueExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseAnyTypeExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseUnknownTypeExpr();
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseRecordTypeExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 69,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 123) {
-      s1 = peg$c155;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c156); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseRecordTypeExprEntries();
-        if (s3 === peg$FAILED) {
-          s3 = null;
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 125) {
-              s5 = peg$c157;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c158); }
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c159(s3);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseRecordTypeExprEntries() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 70,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseRecordTypeExprEntry();
-    if (s1 !== peg$FAILED) {
-      s2 = [];
-      s3 = peg$currPos;
-      s4 = peg$currPos;
-      s5 = peg$parse_();
-      if (s5 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 44) {
-          s6 = peg$c116;
-          peg$currPos++;
-        } else {
-          s6 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c117); }
-        }
-        if (s6 !== peg$FAILED) {
-          s5 = [s5, s6];
-          s4 = s5;
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s4;
-        s4 = peg$FAILED;
-      }
-      if (s4 === peg$FAILED) {
-        s4 = peg$currPos;
-        s5 = peg$parse_();
-        if (s5 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 59) {
-            s6 = peg$c160;
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c161); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          s5 = [];
-          if (peg$c1.test(input.charAt(peg$currPos))) {
-            s6 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c2); }
-          }
-          while (s6 !== peg$FAILED) {
-            s5.push(s6);
-            if (peg$c1.test(input.charAt(peg$currPos))) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c2); }
-            }
-          }
-          if (s5 !== peg$FAILED) {
-            if (peg$c3.test(input.charAt(peg$currPos))) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c4); }
-            }
-            if (s6 === peg$FAILED) {
-              s6 = null;
-            }
-            if (s6 !== peg$FAILED) {
-              if (peg$c5.test(input.charAt(peg$currPos))) {
-                s7 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s7 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c6); }
-              }
-              if (s7 !== peg$FAILED) {
-                s5 = [s5, s6, s7];
-                s4 = s5;
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-      }
-      if (s4 !== peg$FAILED) {
-        s5 = peg$parse_();
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parseRecordTypeExprEntry();
-          if (s6 !== peg$FAILED) {
-            s4 = [s4, s5, s6];
-            s3 = s4;
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s3;
-        s3 = peg$FAILED;
-      }
-      while (s3 !== peg$FAILED) {
-        s2.push(s3);
-        s3 = peg$currPos;
-        s4 = peg$currPos;
-        s5 = peg$parse_();
-        if (s5 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 44) {
-            s6 = peg$c116;
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c117); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          s5 = peg$parse_();
-          if (s5 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 59) {
-              s6 = peg$c160;
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c161); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-          if (s4 === peg$FAILED) {
-            s4 = peg$currPos;
-            s5 = [];
-            if (peg$c1.test(input.charAt(peg$currPos))) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c2); }
-            }
-            while (s6 !== peg$FAILED) {
-              s5.push(s6);
-              if (peg$c1.test(input.charAt(peg$currPos))) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c2); }
-              }
-            }
-            if (s5 !== peg$FAILED) {
-              if (peg$c3.test(input.charAt(peg$currPos))) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c4); }
-              }
-              if (s6 === peg$FAILED) {
-                s6 = null;
-              }
-              if (s6 !== peg$FAILED) {
-                if (peg$c5.test(input.charAt(peg$currPos))) {
-                  s7 = input.charAt(peg$currPos);
-                  peg$currPos++;
-                } else {
-                  s7 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c6); }
-                }
-                if (s7 !== peg$FAILED) {
-                  s5 = [s5, s6, s7];
-                  s4 = s5;
-                } else {
-                  peg$currPos = s4;
-                  s4 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          }
-        }
-        if (s4 !== peg$FAILED) {
-          s5 = peg$parse_();
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parseRecordTypeExprEntry();
-            if (s6 !== peg$FAILED) {
-              s4 = [s4, s5, s6];
-              s3 = s4;
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-      }
-      if (s2 !== peg$FAILED) {
-        s3 = peg$currPos;
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 44) {
-            s5 = peg$c116;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c117); }
-          }
-          if (s5 !== peg$FAILED) {
-            s4 = [s4, s5];
-            s3 = s4;
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s3;
-          s3 = peg$FAILED;
-        }
-        if (s3 === peg$FAILED) {
-          s3 = peg$currPos;
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 59) {
-              s5 = peg$c160;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c161); }
-            }
-            if (s5 !== peg$FAILED) {
-              s4 = [s4, s5];
-              s3 = s4;
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s3;
-            s3 = peg$FAILED;
-          }
-          if (s3 === peg$FAILED) {
-            s3 = peg$currPos;
-            s4 = [];
-            if (peg$c1.test(input.charAt(peg$currPos))) {
-              s5 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c2); }
-            }
-            while (s5 !== peg$FAILED) {
-              s4.push(s5);
-              if (peg$c1.test(input.charAt(peg$currPos))) {
-                s5 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s5 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c2); }
-              }
-            }
-            if (s4 !== peg$FAILED) {
-              if (peg$c3.test(input.charAt(peg$currPos))) {
-                s5 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s5 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c4); }
-              }
-              if (s5 === peg$FAILED) {
-                s5 = null;
-              }
-              if (s5 !== peg$FAILED) {
-                if (peg$c5.test(input.charAt(peg$currPos))) {
-                  s6 = input.charAt(peg$currPos);
-                  peg$currPos++;
-                } else {
-                  s6 = peg$FAILED;
-                  if (peg$silentFails === 0) { peg$fail(peg$c6); }
-                }
-                if (s6 !== peg$FAILED) {
-                  s4 = [s4, s5, s6];
-                  s3 = s4;
-                } else {
-                  peg$currPos = s3;
-                  s3 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s3;
-                s3 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s3;
-              s3 = peg$FAILED;
-            }
-          }
-        }
-        if (s3 === peg$FAILED) {
-          s3 = null;
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c162(s1, s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseRecordTypeExprEntry() {
-    var s0, s1, s2, s3, s4, s5, s6, s7;
-
-    var key    = peg$currPos * 84 + 71,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseRecordTypeExprEntryKey();
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 63) {
-          s3 = peg$c59;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c60); }
-        }
-        if (s3 === peg$FAILED) {
-          s3 = null;
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 58) {
-              s5 = peg$c44;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c45); }
-            }
-            if (s5 !== peg$FAILED) {
-              s6 = peg$parse_();
-              if (s6 !== peg$FAILED) {
-                s7 = peg$parseRecordTypeExprEntryOperand();
-                if (s7 !== peg$FAILED) {
-                  peg$savedPos = s0;
-                  s1 = peg$c163(s1, s3, s7);
-                  s0 = s1;
-                } else {
-                  peg$currPos = s0;
-                  s0 = peg$FAILED;
-                }
-              } else {
-                peg$currPos = s0;
-                s0 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      s1 = peg$parseRecordTypeExprEntryKey();
-      if (s1 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c164(s1);
-      }
-      s0 = s1;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseRecordTypeExprEntryKey() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 72,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 34) {
-      s1 = peg$c26;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c27); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$currPos;
-      s3 = [];
-      if (peg$c28.test(input.charAt(peg$currPos))) {
-        s4 = input.charAt(peg$currPos);
-        peg$currPos++;
-      } else {
-        s4 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c29); }
-      }
-      if (s4 === peg$FAILED) {
-        s4 = peg$currPos;
-        if (input.charCodeAt(peg$currPos) === 92) {
-          s5 = peg$c22;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c23); }
-        }
-        if (s5 !== peg$FAILED) {
-          if (input.length > peg$currPos) {
-            s6 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s6 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c24); }
-          }
-          if (s6 !== peg$FAILED) {
-            s5 = [s5, s6];
-            s4 = s5;
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s4;
-          s4 = peg$FAILED;
-        }
-      }
-      while (s4 !== peg$FAILED) {
-        s3.push(s4);
-        if (peg$c28.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c29); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-      }
-      if (s3 !== peg$FAILED) {
-        s2 = input.substring(s2, peg$currPos);
-      } else {
-        s2 = s3;
-      }
-      if (s2 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 34) {
-          s3 = peg$c26;
-          peg$currPos++;
-        } else {
-          s3 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c27); }
-        }
-        if (s3 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c165(s2);
-          s0 = s1;
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-    if (s0 === peg$FAILED) {
-      s0 = peg$currPos;
-      if (input.charCodeAt(peg$currPos) === 39) {
-        s1 = peg$c18;
-        peg$currPos++;
-      } else {
-        s1 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c19); }
-      }
-      if (s1 !== peg$FAILED) {
-        s2 = peg$currPos;
-        s3 = [];
-        if (peg$c20.test(input.charAt(peg$currPos))) {
-          s4 = input.charAt(peg$currPos);
-          peg$currPos++;
-        } else {
-          s4 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c21); }
-        }
-        if (s4 === peg$FAILED) {
-          s4 = peg$currPos;
-          if (input.charCodeAt(peg$currPos) === 92) {
-            s5 = peg$c22;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c23); }
-          }
-          if (s5 !== peg$FAILED) {
-            if (input.length > peg$currPos) {
-              s6 = input.charAt(peg$currPos);
-              peg$currPos++;
-            } else {
-              s6 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c24); }
-            }
-            if (s6 !== peg$FAILED) {
-              s5 = [s5, s6];
-              s4 = s5;
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s4;
-            s4 = peg$FAILED;
-          }
-        }
-        while (s4 !== peg$FAILED) {
-          s3.push(s4);
-          if (peg$c20.test(input.charAt(peg$currPos))) {
-            s4 = input.charAt(peg$currPos);
-            peg$currPos++;
-          } else {
-            s4 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c21); }
-          }
-          if (s4 === peg$FAILED) {
-            s4 = peg$currPos;
-            if (input.charCodeAt(peg$currPos) === 92) {
-              s5 = peg$c22;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c23); }
-            }
-            if (s5 !== peg$FAILED) {
-              if (input.length > peg$currPos) {
-                s6 = input.charAt(peg$currPos);
-                peg$currPos++;
-              } else {
-                s6 = peg$FAILED;
-                if (peg$silentFails === 0) { peg$fail(peg$c24); }
-              }
-              if (s6 !== peg$FAILED) {
-                s5 = [s5, s6];
-                s4 = s5;
-              } else {
-                peg$currPos = s4;
-                s4 = peg$FAILED;
-              }
-            } else {
-              peg$currPos = s4;
-              s4 = peg$FAILED;
-            }
-          }
-        }
-        if (s3 !== peg$FAILED) {
-          s2 = input.substring(s2, peg$currPos);
-        } else {
-          s2 = s3;
-        }
-        if (s2 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 39) {
-            s3 = peg$c18;
-            peg$currPos++;
-          } else {
-            s3 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c19); }
-          }
-          if (s3 !== peg$FAILED) {
-            peg$savedPos = s0;
-            s1 = peg$c166(s2);
-            s0 = s1;
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-      if (s0 === peg$FAILED) {
-        s0 = peg$currPos;
-        s1 = peg$currPos;
-        s2 = peg$parseJsIdentifier();
-        if (s2 === peg$FAILED) {
-          s2 = peg$parseUnsignedDecimalNumberLiteralExpr();
-        }
-        if (s2 !== peg$FAILED) {
-          s1 = input.substring(s1, peg$currPos);
-        } else {
-          s1 = s2;
-        }
-        if (s1 !== peg$FAILED) {
-          peg$savedPos = s0;
-          s1 = peg$c167(s1);
-        }
-        s0 = s1;
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseRecordTypeExprEntryOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 73,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseParenthesizedExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseArrayTypeExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseGenericTypeExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseBroadNamepathExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseValueExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseAnyTypeExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseUnknownTypeExpr();
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTupleTypeExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 74,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 91) {
-      s1 = peg$c127;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c128); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseTupleTypeExprEntries();
-        if (s3 === peg$FAILED) {
-          s3 = null;
-        }
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 93) {
-              s5 = peg$c129;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c130); }
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c168(s3);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTupleTypeExprEntries() {
-    var s0, s1, s2, s3, s4, s5, s6;
-
-    var key    = peg$currPos * 84 + 75,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = [];
-    s2 = peg$currPos;
-    s3 = peg$parseTupleTypeExprOperand();
-    if (s3 !== peg$FAILED) {
-      s4 = peg$parse_();
-      if (s4 !== peg$FAILED) {
-        if (input.charCodeAt(peg$currPos) === 44) {
-          s5 = peg$c116;
-          peg$currPos++;
-        } else {
-          s5 = peg$FAILED;
-          if (peg$silentFails === 0) { peg$fail(peg$c117); }
-        }
-        if (s5 !== peg$FAILED) {
-          s6 = peg$parse_();
-          if (s6 !== peg$FAILED) {
-            s3 = [s3, s4, s5, s6];
-            s2 = s3;
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s2;
-      s2 = peg$FAILED;
-    }
-    while (s2 !== peg$FAILED) {
-      s1.push(s2);
-      s2 = peg$currPos;
-      s3 = peg$parseTupleTypeExprOperand();
-      if (s3 !== peg$FAILED) {
-        s4 = peg$parse_();
-        if (s4 !== peg$FAILED) {
-          if (input.charCodeAt(peg$currPos) === 44) {
-            s5 = peg$c116;
-            peg$currPos++;
-          } else {
-            s5 = peg$FAILED;
-            if (peg$silentFails === 0) { peg$fail(peg$c117); }
-          }
-          if (s5 !== peg$FAILED) {
-            s6 = peg$parse_();
-            if (s6 !== peg$FAILED) {
-              s3 = [s3, s4, s5, s6];
-              s2 = s3;
-            } else {
-              peg$currPos = s2;
-              s2 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s2;
-            s2 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s2;
-          s2 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s2;
-        s2 = peg$FAILED;
-      }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicTypeExpr();
-      if (s2 === peg$FAILED) {
-        s2 = peg$parseVariadicTypeExprOperand();
-      }
-      if (s2 === peg$FAILED) {
-        s2 = null;
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c169(s1, s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseTupleTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 76,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseParenthesizedExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseTypeQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseKeyQueryExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseArrayTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseGenericTypeExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseBroadNamepathExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseValueExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseAnyTypeExpr();
-                              if (s0 === peg$FAILED) {
-                                s0 = peg$parseUnknownTypeExpr();
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseParenthesizedExpr() {
-    var s0, s1, s2, s3, s4, s5;
-
-    var key    = peg$currPos * 84 + 77,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.charCodeAt(peg$currPos) === 40) {
-      s1 = peg$c100;
-      peg$currPos++;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c101); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parse_();
-      if (s2 !== peg$FAILED) {
-        s3 = peg$parseParenthesizedExprOperand();
-        if (s3 !== peg$FAILED) {
-          s4 = peg$parse_();
-          if (s4 !== peg$FAILED) {
-            if (input.charCodeAt(peg$currPos) === 41) {
-              s5 = peg$c102;
-              peg$currPos++;
-            } else {
-              s5 = peg$FAILED;
-              if (peg$silentFails === 0) { peg$fail(peg$c103); }
-            }
-            if (s5 !== peg$FAILED) {
-              peg$savedPos = s0;
-              s1 = peg$c170(s3);
-              s0 = s1;
-            } else {
-              peg$currPos = s0;
-              s0 = peg$FAILED;
-            }
-          } else {
-            peg$currPos = s0;
-            s0 = peg$FAILED;
-          }
-        } else {
-          peg$currPos = s0;
-          s0 = peg$FAILED;
-        }
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseParenthesizedExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 78,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseArrayTypeExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseTypeQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseKeyQueryExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseGenericTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseBroadNamepathExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseValueExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseAnyTypeExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseUnknownTypeExpr();
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseVariadicTypeExpr() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 79,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parsePrefixVariadicTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseSuffixVariadicTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseAnyVariadicTypeExpr();
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parsePrefixVariadicTypeExpr() {
-    var s0, s1, s2;
-
-    var key    = peg$currPos * 84 + 80,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 3) === peg$c140) {
-      s1 = peg$c140;
-      peg$currPos += 3;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c141); }
-    }
-    if (s1 !== peg$FAILED) {
-      s2 = peg$parseVariadicTypeExprOperand();
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c171(s2);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseSuffixVariadicTypeExpr() {
-    var s0, s1, s2;
-
-    var key    = peg$currPos * 84 + 81,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    s1 = peg$parseVariadicTypeExprOperand();
-    if (s1 !== peg$FAILED) {
-      if (input.substr(peg$currPos, 3) === peg$c140) {
-        s2 = peg$c140;
-        peg$currPos += 3;
-      } else {
-        s2 = peg$FAILED;
-        if (peg$silentFails === 0) { peg$fail(peg$c141); }
-      }
-      if (s2 !== peg$FAILED) {
-        peg$savedPos = s0;
-        s1 = peg$c172(s1);
-        s0 = s1;
-      } else {
-        peg$currPos = s0;
-        s0 = peg$FAILED;
-      }
-    } else {
-      peg$currPos = s0;
-      s0 = peg$FAILED;
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseAnyVariadicTypeExpr() {
-    var s0, s1;
-
-    var key    = peg$currPos * 84 + 82,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$currPos;
-    if (input.substr(peg$currPos, 3) === peg$c140) {
-      s1 = peg$c140;
-      peg$currPos += 3;
-    } else {
-      s1 = peg$FAILED;
-      if (peg$silentFails === 0) { peg$fail(peg$c141); }
-    }
-    if (s1 !== peg$FAILED) {
-      peg$savedPos = s0;
-      s1 = peg$c173();
-    }
-    s0 = s1;
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-  function peg$parseVariadicTypeExprOperand() {
-    var s0;
-
-    var key    = peg$currPos * 84 + 83,
-        cached = peg$resultsCache[key];
-
-    if (cached) {
-      peg$currPos = cached.nextPos;
-
-      return cached.result;
-    }
-
-    s0 = peg$parseUnionTypeExpr();
-    if (s0 === peg$FAILED) {
-      s0 = peg$parseUnaryUnionTypeExpr();
-      if (s0 === peg$FAILED) {
-        s0 = peg$parseRecordTypeExpr();
-        if (s0 === peg$FAILED) {
-          s0 = peg$parseTupleTypeExpr();
-          if (s0 === peg$FAILED) {
-            s0 = peg$parseArrowTypeExpr();
-            if (s0 === peg$FAILED) {
-              s0 = peg$parseFunctionTypeExpr();
-              if (s0 === peg$FAILED) {
-                s0 = peg$parseParenthesizedExpr();
-                if (s0 === peg$FAILED) {
-                  s0 = peg$parseTypeQueryExpr();
-                  if (s0 === peg$FAILED) {
-                    s0 = peg$parseKeyQueryExpr();
-                    if (s0 === peg$FAILED) {
-                      s0 = peg$parseArrayTypeExpr();
-                      if (s0 === peg$FAILED) {
-                        s0 = peg$parseGenericTypeExpr();
-                        if (s0 === peg$FAILED) {
-                          s0 = peg$parseBroadNamepathExpr();
-                          if (s0 === peg$FAILED) {
-                            s0 = peg$parseValueExpr();
-                            if (s0 === peg$FAILED) {
-                              s0 = peg$parseAnyTypeExpr();
-                              if (s0 === peg$FAILED) {
-                                s0 = peg$parseUnknownTypeExpr();
-                              }
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-
-    peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };
-
-    return s0;
-  }
-
-
-    const meta = require('../lib/SyntaxType.js');
-    const {
-      GenericTypeSyntax, UnionTypeSyntax,
-      VariadicTypeSyntax, OptionalTypeSyntax,
-      NullableTypeSyntax, NotNullableTypeSyntax,
-    } = meta;
-    const NodeType = require('../lib/NodeType.js');
-
-    const NamepathOperatorType = {
-      MEMBER: 'MEMBER',
-      INNER_MEMBER: 'INNER_MEMBER',
-      INSTANCE_MEMBER: 'INSTANCE_MEMBER',
-    };
-
-    function reverse(array) {
-      const reversed = [].concat(array);
-      reversed.reverse();
-      return reversed;
-    }
-
-
-  peg$result = peg$startRuleFunction();
-
-  if (peg$result !== peg$FAILED && peg$currPos === input.length) {
-    return peg$result;
-  } else {
-    if (peg$result !== peg$FAILED && peg$currPos < input.length) {
-      peg$fail(peg$endExpectation());
-    }
-
-    throw peg$buildStructuredError(
-      peg$maxFailExpected,
-      peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
-      peg$maxFailPos < input.length
-        ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
-        : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
-    );
-  }
-}
-
-module.exports = {
-  SyntaxError: peg$SyntaxError,
-  parse:       peg$parse
-};
diff --git a/node_modules/jsdoctypeparser/peg_src/jsdoctype.pegjs b/node_modules/jsdoctypeparser/peg_src/jsdoctype.pegjs
deleted file mode 100644
index 1920a3d..0000000
--- a/node_modules/jsdoctypeparser/peg_src/jsdoctype.pegjs
+++ /dev/null
@@ -1,1189 +0,0 @@
-{
-  const meta = require('../lib/SyntaxType.js');
-  const {
-    GenericTypeSyntax, UnionTypeSyntax,
-    VariadicTypeSyntax, OptionalTypeSyntax,
-    NullableTypeSyntax, NotNullableTypeSyntax,
-  } = meta;
-  const NodeType = require('../lib/NodeType.js');
-
-  const NamepathOperatorType = {
-    MEMBER: 'MEMBER',
-    INNER_MEMBER: 'INNER_MEMBER',
-    INSTANCE_MEMBER: 'INSTANCE_MEMBER',
-  };
-
-  function reverse(array) {
-    const reversed = [].concat(array);
-    reversed.reverse();
-    return reversed;
-  }
-}
-
-
-
-TopTypeExpr = _ expr:( VariadicTypeExpr
-                  / UnionTypeExpr
-                  / UnaryUnionTypeExpr
-                  / ArrayTypeExpr
-                  / GenericTypeExpr
-                  / RecordTypeExpr
-                  / TupleTypeExpr
-                  / ArrowTypeExpr
-                  / FunctionTypeExpr
-                  / TypeQueryExpr
-                  / KeyQueryExpr
-                  / BroadNamepathExpr
-                  / ParenthesizedExpr
-                  / ValueExpr
-                  / AnyTypeExpr
-                  / UnknownTypeExpr
-                  ) _ {
-           return expr;
-         }
-
-TopLevel = _ expr:( VariadicTypeExpr
-                  / UnionTypeExpr
-                  / UnaryUnionTypeExpr
-                  / ArrayTypeExpr
-                  / GenericTypeExpr
-                  / RecordTypeExpr
-                  / TupleTypeExpr
-                  / ArrowTypeExpr
-                  / FunctionTypeExpr
-                  / TypeQueryExpr
-                  / KeyQueryExpr
-                  / BroadNamepathExpr
-                  / ParenthesizedExpr
-                  / ValueExpr
-                  / AnyTypeExpr
-                  / UnknownTypeExpr
-                  ) _ {
-           return expr;
-         }
-
-
-/*
- * White spaces.
- */
-_  = ([ \t] / [\r]? [\n])*
-
-
-/*
- * JavaScript identifier names.
- *
- * NOTE: We do not support UnicodeIDStart and \UnicodeEscapeSequence yet.
- *
- * Spec:
- *   - http://www.ecma-international.org/ecma-262/6.0/index.html#sec-names-and-keywords
- *   - http://unicode.org/reports/tr31/#Table_Lexical_Classes_for_Identifiers
- */
-JsIdentifier = $([a-zA-Z_$][a-zA-Z0-9_$]*)
-
-
-// It is transformed to remove left recursion.
-// See https://en.wikipedia.org/wiki/Left_recursion#Removing_left_recursion
-NamepathExpr = rootOwner:(ParenthesizedExpr / ImportTypeExpr / TypeNameExpr) memberPartWithOperators:(_ InfixNamepathOperator _ "event:"? _ MemberName)* {
-               return memberPartWithOperators.reduce(function(owner, tokens) {
-                 const operatorType = tokens[1];
-                 const eventNamespace = tokens[3];
-                 const MemberName = tokens[5];
-                 const {quoteStyle, name: memberName} = MemberName;
-
-                 switch (operatorType) {
-                   case NamepathOperatorType.MEMBER:
-                     return {
-                       type: NodeType.MEMBER,
-                       owner,
-                       name: memberName,
-                       quoteStyle,
-                       hasEventPrefix: Boolean(eventNamespace),
-                     };
-                   case NamepathOperatorType.INSTANCE_MEMBER:
-                     return {
-                       type: NodeType.INSTANCE_MEMBER,
-                       owner,
-                       name: memberName,
-                       quoteStyle,
-                       hasEventPrefix: Boolean(eventNamespace),
-                     };
-                   case NamepathOperatorType.INNER_MEMBER:
-                     return {
-                       type: NodeType.INNER_MEMBER,
-                       owner,
-                       name: memberName,
-                       quoteStyle,
-                       hasEventPrefix: Boolean(eventNamespace),
-                     };
-                   default:
-                     throw new Error('Unexpected operator type: "' + operatorType + '"');
-                 }
-               }, rootOwner);
-             }
-
-
-/*
- * Type name expressions.
- *
- * Examples:
- *   - string
- *   - null
- *   - Error
- *   - $
- *   - _
- *   - custom-type (JSDoc compatible)
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-TypeNameExpr = TypeNameExprJsDocFlavored
-             / TypeNameExprStrict
-
-
-TypeNameExprStrict = name:JsIdentifier {
-                     return {
-                       type: NodeType.NAME,
-                       name
-                     };
-                   }
-
-
-// JSDoc allow to use hyphens in identifier contexts.
-// See https://github.com/jsdoctypeparser/jsdoctypeparser/issues/15
-TypeNameExprJsDocFlavored = name:$([a-zA-Z_$][a-zA-Z0-9_$-]*) {
-                            return {
-                              type: NodeType.NAME,
-                              name
-                            };
-                          }
-
-MemberName = "'" name:$([^\\'] / "\\".)* "'" {
-               return {
-                 quoteStyle: 'single',
-                 name: name.replace(/\\'/g, "'")
-                   .replace(/\\\\/gu, '\\')
-               };
-             }
-           / '"' name:$([^\\"] / "\\".)* '"' {
-               return {
-                 quoteStyle: 'double',
-                 name: name.replace(/\\"/gu, '"')
-                  .replace(/\\\\/gu, '\\')
-               };
-             }
-           / name:JsIdentifier {
-             return {
-               quoteStyle: 'none',
-               name
-             };
-           };
-
-
-InfixNamepathOperator = MemberTypeOperator
-                      / InstanceMemberTypeOperator
-                      / InnerMemberTypeOperator
-
-QualifiedMemberName = rootOwner:TypeNameExpr memberPart:(_ "." _ TypeNameExpr)* {
-                      return memberPart.reduce(function(owner, tokens) {
-                        return {
-                          type: NodeType.MEMBER,
-                          owner,
-                          name: tokens[3]
-                        }
-                      }, rootOwner);
-                    }
-
-
-/*
- * Member type expressions.
- *
- * Examples:
- *   - owner.member
- *   - superOwner.owner.member
- */
-MemberTypeOperator = "." {
-                     return NamepathOperatorType.MEMBER;
-                   }
-
-
-/*
- * Inner member type expressions.
- *
- * Examples:
- *   - owner~innerMember
- *   - superOwner~owner~innerMember
- */
-InnerMemberTypeOperator = "~" {
-                          return NamepathOperatorType.INNER_MEMBER;
-                        }
-
-
-/*
- * Instance member type expressions.
- *
- * Examples:
- *   - owner#instanceMember
- *   - superOwner#owner#instanceMember
- */
-InstanceMemberTypeOperator = "#" {
-                             return NamepathOperatorType.INSTANCE_MEMBER;
-                           }
-
-
-BroadNamepathExpr = ExternalNameExpr
-                  / ModuleNameExpr
-                  / NamepathExpr
-
-
-/*
- * External name expressions.
- *
- * Examples:
- *   - external:classNamespaceOrModuleName
- *   - external:path/to/file
- *   - external:path/to/file.js
- *
- * Spec:
- *   - https://jsdoc.app/tags-external.html
- */
-ExternalNameExpr = "external" _ ":" _ external:(MemberName) memberPartWithOperators:(_ InfixNamepathOperator _ "event:"? _ MemberName)* {
-          return memberPartWithOperators.reduce(function(owner, tokens) {
-            const operatorType = tokens[1];
-            const eventNamespace = tokens[3];
-            const MemberName = tokens[5];
-            const {quoteStyle, name: memberName} = MemberName;
-
-            switch (operatorType) {
-              case NamepathOperatorType.MEMBER:
-                return {
-                  type: NodeType.MEMBER,
-                  owner,
-                  name: memberName,
-                  quoteStyle,
-                  hasEventPrefix: Boolean(eventNamespace),
-                };
-              case NamepathOperatorType.INSTANCE_MEMBER:
-                return {
-                  type: NodeType.INSTANCE_MEMBER,
-                  owner,
-                  name: memberName,
-                  quoteStyle,
-                  hasEventPrefix: Boolean(eventNamespace),
-                };
-              case NamepathOperatorType.INNER_MEMBER:
-                return {
-                  type: NodeType.INNER_MEMBER,
-                  owner,
-                  name: memberName,
-                  quoteStyle,
-                  hasEventPrefix: Boolean(eventNamespace),
-                };
-              default:
-                throw new Error('Unexpected operator type: "' + operatorType + '"');
-            }
-          }, Object.assign({
-            type: NodeType.EXTERNAL
-          }, external));
-        }
-
-
-/*
- * Module name expressions.
- *
- * Examples:
- *   - module:path/to/file
- *   - module:path/to/file.MyModule~Foo
- *
- * Spec:
- *   - https://jsdoc.app/tags-module.html
- *   - https://jsdoc.app/howto-commonjs-modules.html
- */
-ModuleNameExpr = "module" _ ":" _ value:ModulePathExpr {
-                 return {
-                   type: NodeType.MODULE,
-                   value,
-                 };
-               }
-
-
-
-// It is transformed to remove left recursion
-ModulePathExpr = rootOwner:(FilePathExpr) memberPartWithOperators:(_ InfixNamepathOperator _ "event:"? _ MemberName)* {
-                 return memberPartWithOperators.reduce(function(owner, tokens) {
-                   const operatorType = tokens[1];
-                   const eventNamespace = tokens[3];
-                   const MemberName = tokens[5];
-                   const {quoteStyle, name: memberName} = MemberName;
-
-                   switch (operatorType) {
-                     case NamepathOperatorType.MEMBER:
-                       return {
-                         type: NodeType.MEMBER,
-                         owner,
-                         name: memberName,
-                         quoteStyle,
-                         hasEventPrefix: Boolean(eventNamespace),
-                       };
-                     case NamepathOperatorType.INSTANCE_MEMBER:
-                       return {
-                         type: NodeType.INSTANCE_MEMBER,
-                         owner,
-                         name: memberName,
-                         quoteStyle,
-                         hasEventPrefix: Boolean(eventNamespace),
-                       };
-                     case NamepathOperatorType.INNER_MEMBER:
-                       return {
-                         type: NodeType.INNER_MEMBER,
-                         owner,
-                         name: memberName,
-                         quoteStyle,
-                         hasEventPrefix: Boolean(eventNamespace),
-                       };
-                     default:
-                       throw new Error('Unexpected operator type: "' + operatorType + '"');
-                   }
-                 }, rootOwner);
-               }
-
-
-
-FilePathExpr = "'" path:$([^\\'] / "\\".)* "'" {
-                return {
-                  quoteStyle: 'single',
-                  type: NodeType.FILE_PATH,
-                  path: path.replace(/\\'/g, "'")
-                    .replace(/\\\\/gu, '\\')
-                };
-              }
-            / '"' path:$([^\\"] / "\\".)* '"' {
-                return {
-                  quoteStyle: 'double',
-                  type: NodeType.FILE_PATH,
-                  path: path.replace(/\\"/gu, '"')
-                   .replace(/\\\\/gu, '\\')
-                };
-              }
-            / path:$([a-zA-Z0-9_$/-]+) {
-               return {
-                 quoteStyle: 'none',
-                 type: NodeType.FILE_PATH,
-                 path,
-               };
-             }
-
-/*
- * Any type expressions.
- *
- * Examples:
- *   - *
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-AnyTypeExpr = "*" {
-              return { type: NodeType.ANY };
-            }
-
-
-
-/*
- * Unknown type expressions.
- *
- * Examples:
- *   - ?
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-UnknownTypeExpr = "?" {
-                  return { type: NodeType.UNKNOWN };
-                }
-
-
-
-/*
- * Value type expressions.
- *
- * Example:
- *   - 123
- *   - 0.0
- *   - -123
- *   - 0b11
- *   - 0o77
- *   - 0cff
- *   - "foo"
- *   - "foo\"bar\nbuz"
- *
- * Spec:
- *   - https://github.com/senchalabs/jsduck/wiki/Type-Definitions#type-names
- */
-ValueExpr = StringLiteralExpr / NumberLiteralExpr
-
-
-StringLiteralExpr = '"' value:$([^\\"] / "\\".)* '"' {
-                      return {
-                        type: NodeType.STRING_VALUE,
-                        quoteStyle: 'double',
-                        string: value.replace(/\\"/gu, '"')
-                            .replace(/\\\\/gu, '\\')
-                      };
-                    }
-                  / "'" value:$([^\\'] / "\\".)* "'" {
-                      return {
-                        type: NodeType.STRING_VALUE,
-                        quoteStyle: 'single',
-                        string: value.replace(/\\'/g, "'")
-                            .replace(/\\\\/gu, '\\')
-                      };
-                    }
-
-
-NumberLiteralExpr = value:(BinNumberLiteralExpr / OctNumberLiteralExpr / HexNumberLiteralExpr / DecimalNumberLiteralExpr) {
-                    return {
-                      type: NodeType.NUMBER_VALUE,
-                      number: value
-                    };
-                  }
-
-
-DecimalNumberLiteralExpr = $(("+" / "-")? UnsignedDecimalNumberLiteralExpr)
-
-UnsignedDecimalNumberLiteralExpr = $((([0-9]+ ("." [0-9]+)?) / ("." [0-9]+)) ("e" ("+" / "-")? [0-9]+)?)
-
-
-
-BinNumberLiteralExpr = $("-"? "0b"[01]+)
-
-
-OctNumberLiteralExpr = $("-"? "0o"[0-7]+)
-
-
-HexNumberLiteralExpr = $("-"? "0x"[0-9a-fA-F]+)
-
-
-
-/*
- * Union type expressions.
- *
- * Examples:
- *   - number|undefined
- *   - Foo|Bar|Baz
- */
-UnionTypeExpr = left:UnionTypeExprOperand _ syntax:UnionTypeOperator _ right:(UnionTypeExpr / UnionTypeExprOperand) {
-                return {
-                    type: NodeType.UNION,
-                    left,
-                    right,
-                    meta: { syntax },
-                };
-              }
-
-// https://github.com/senchalabs/jsduck/wiki/Type-Definitions#type-names
-UnionTypeOperator = UnionTypeOperatorClosureLibraryFlavored
-                  / UnionTypeOperatorJSDuckFlavored
-
-
-UnionTypeOperatorClosureLibraryFlavored = "|" {
-                                          return UnionTypeSyntax.PIPE;
-                                        }
-
-
-UnionTypeOperatorJSDuckFlavored = "/" {
-                                  return UnionTypeSyntax.SLASH;
-                                }
-
-
-UnionTypeExprOperand = UnaryUnionTypeExpr
-                     / RecordTypeExpr
-                     / TupleTypeExpr
-                     / ArrowTypeExpr
-                     / FunctionTypeExpr
-                     / ParenthesizedExpr
-                     / TypeQueryExpr
-                     / KeyQueryExpr
-                     / GenericTypeExpr
-                     / ArrayTypeExpr
-                     / BroadNamepathExpr
-                     / ValueExpr
-                     / AnyTypeExpr
-                     / UnknownTypeExpr
-
-
-UnaryUnionTypeExpr = SuffixUnaryUnionTypeExpr
-                   / PrefixUnaryUnionTypeExpr
-
-
-PrefixUnaryUnionTypeExpr = PrefixOptionalTypeExpr
-                         / PrefixNotNullableTypeExpr
-                         / PrefixNullableTypeExpr
-
-
-PrefixUnaryUnionTypeExprOperand = GenericTypeExpr
-                                / RecordTypeExpr
-                                / TupleTypeExpr
-                                / ArrowTypeExpr
-                                / FunctionTypeExpr
-                                / ParenthesizedExpr
-                                / BroadNamepathExpr
-                                / ValueExpr
-                                / AnyTypeExpr
-                                / UnknownTypeExpr
-
-TypeQueryExpr = operator:"typeof" _ name:QualifiedMemberName {
-                return {
-                    type: NodeType.TYPE_QUERY,
-                    name,
-                };
-              }
-
-KeyQueryExpr = operator:"keyof" _ operand:KeyQueryExprOperand {
-  return {
-    type: NodeType.KEY_QUERY,
-    value: operand,
-  }
-}
-
-KeyQueryExprOperand = UnionTypeExpr
-                    / UnaryUnionTypeExpr
-                    / RecordTypeExpr
-                    / TupleTypeExpr
-                    / FunctionTypeExpr
-                    / ParenthesizedExpr
-                    / TypeQueryExpr
-                    / KeyQueryExpr
-                    / ArrayTypeExpr
-                    / GenericTypeExpr
-                    / BroadNamepathExpr
-                    / ValueExpr
-                    / AnyTypeExpr
-                    / UnknownTypeExpr
-
-ImportTypeExpr = operator:"import" _ "(" _ path:StringLiteralExpr _ ")" {
-                 return { type: NodeType.IMPORT, path };
-               }
-
-/*
- * Prefix nullable type expressions.
- *
- * Examples:
- *   - ?string
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-PrefixNullableTypeExpr = operator:"?" _ operand:PrefixUnaryUnionTypeExprOperand {
-                         return {
-                           type: NodeType.NULLABLE,
-                           value: operand,
-                           meta: { syntax: NullableTypeSyntax.PREFIX_QUESTION_MARK },
-                         };
-                       }
-
-
-
-/*
- * Prefix not nullable type expressions.
- *
- * Examples:
- *   - !Object
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-PrefixNotNullableTypeExpr = operator:"!" _ operand:PrefixUnaryUnionTypeExprOperand {
-                            return {
-                              type: NodeType.NOT_NULLABLE,
-                              value: operand,
-                              meta: { syntax: NotNullableTypeSyntax.PREFIX_BANG },
-                            };
-                          }
-
-
-
-/*
- * Suffix optional type expressions.
- * This expression is deprecated.
- *
- * Examples:
- *   - =string (deprecated)
- */
-PrefixOptionalTypeExpr = operator:"=" _ operand:PrefixUnaryUnionTypeExprOperand {
-                         return {
-                           type: NodeType.OPTIONAL,
-                           value: operand,
-                           meta: { syntax: OptionalTypeSyntax.PREFIX_EQUALS_SIGN },
-                         };
-                       }
-
-
-
-SuffixUnaryUnionTypeExpr = SuffixOptionalTypeExpr
-                         / SuffixNullableTypeExpr
-                         / SuffixNotNullableTypeExpr
-
-
-SuffixUnaryUnionTypeExprOperand = PrefixUnaryUnionTypeExpr
-                                / GenericTypeExpr
-                                / RecordTypeExpr
-                                / TupleTypeExpr
-                                / ArrowTypeExpr
-                                / FunctionTypeExpr
-                                / ParenthesizedExpr
-                                / BroadNamepathExpr
-                                / ValueExpr
-                                / AnyTypeExpr
-                                / UnknownTypeExpr
-
-
-/*
- * Suffix nullable type expressions.
- * This expression is deprecated.
- *
- * Examples:
- *   - string? (deprecated)
- *
- * Note:
- *   Deprecated optional type operators can be placed before optional operators.
- *   See https://github.com/google/closure-library/blob/
- *     47f9c92bb4c7de9a3d46f9921a427402910073fb/closure/goog/net/tmpnetwork.js#L50
- */
-SuffixNullableTypeExpr = operand:SuffixUnaryUnionTypeExprOperand _ operator:"?" {
-                         return {
-                           type: NodeType.NULLABLE,
-                           value: operand,
-                           meta: { syntax: NullableTypeSyntax.SUFFIX_QUESTION_MARK },
-                         };
-                       }
-
-
-
-/*
- * Suffix not nullable type expressions.
- * This expression is deprecated.
- *
- * Examples:
- *   - Object! (deprecated)
- */
-SuffixNotNullableTypeExpr = operand:SuffixUnaryUnionTypeExprOperand _ operator:"!" {
-                            return {
-                              type: NodeType.NOT_NULLABLE,
-                              value: operand,
-                              meta: { syntax: NotNullableTypeSyntax.SUFFIX_BANG },
-                            };
-                          }
-
-
-
-/*
- * Suffix optional type expressions.
- *
- * Examples:
- *   - string=
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-SuffixOptionalTypeExpr = operand:( SuffixNullableTypeExpr
-                                 / SuffixNotNullableTypeExpr
-                                 / SuffixUnaryUnionTypeExprOperand
-                                 ) _ operator:"=" {
-                         return {
-                           type: NodeType.OPTIONAL,
-                           value: operand,
-                           meta: { syntax: OptionalTypeSyntax.SUFFIX_EQUALS_SIGN },
-                         };
-                       }
-
-
-
-/*
- * Generic type expressions.
- *
- * Examples:
- *   - Function<T>
- *   - Array.<string> (Legacy Closure Library style and JSDoc3 style)
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- *   - https://jsdoc.app/tags-type.html
- */
-GenericTypeExpr = operand:GenericTypeExprOperand _ syntax:GenericTypeStartToken _
-                  params:GenericTypeExprTypeParamList _ GenericTypeEndToken {
-                  return {
-                    type: NodeType.GENERIC,
-                    subject: operand,
-                    objects: params,
-                    meta: { syntax },
-                  };
-                }
-
-
-GenericTypeExprOperand = ParenthesizedExpr
-                       / BroadNamepathExpr
-                       / ValueExpr
-                       / AnyTypeExpr
-                       / UnknownTypeExpr
-
-
-GenericTypeExprTypeParamOperand = UnionTypeExpr
-                                / UnaryUnionTypeExpr
-                                / RecordTypeExpr
-                                / TupleTypeExpr
-                                / ArrowTypeExpr
-                                / FunctionTypeExpr
-                                / ParenthesizedExpr
-                                / ArrayTypeExpr
-                                / GenericTypeExpr
-                                / TypeQueryExpr
-                                / KeyQueryExpr
-                                / BroadNamepathExpr
-                                / ValueExpr
-                                / AnyTypeExpr
-                                / UnknownTypeExpr
-
-
-GenericTypeExprTypeParamList = first:GenericTypeExprTypeParamOperand
-                               restsWithComma:(_ "," _ GenericTypeExprTypeParamOperand)* {
-                               return restsWithComma.reduce(function(params, tokens) {
-                                 return params.concat([tokens[3]]);
-                               }, [first]);
-                             }
-
-
-GenericTypeStartToken = GenericTypeEcmaScriptFlavoredStartToken
-                      / GenericTypeTypeScriptFlavoredStartToken
-
-
-GenericTypeEcmaScriptFlavoredStartToken = ".<" {
-                                          return GenericTypeSyntax.ANGLE_BRACKET_WITH_DOT;
-                                        }
-
-
-GenericTypeTypeScriptFlavoredStartToken = "<" {
-                                          return GenericTypeSyntax.ANGLE_BRACKET;
-                                        }
-
-
-GenericTypeEndToken = ">"
-
-
-
-/*
- * JSDoc style array of generic type expressions.
- *
- * Examples:
- *   - string[]
- *   - number[][]
- *
- * Spec:
- *   - https://github.com/senchalabs/jsduck/wiki/Type-Definitions#the-basic-syntax
- */
-// TODO: We should care complex type expression like "Some[]![]"
-ArrayTypeExpr = operand:ArrayTypeExprOperand brackets:(_ "[" _ "]")+ {
-                return brackets.reduce(function(operand) {
-                  return {
-                    type: NodeType.GENERIC,
-                    subject: {
-                      type: NodeType.NAME,
-                      name: 'Array'
-                    },
-                    objects: [ operand ],
-                    meta: { syntax: GenericTypeSyntax.SQUARE_BRACKET },
-                  };
-                }, operand);
-              }
-
-
-ArrayTypeExprOperand = UnaryUnionTypeExpr
-                     / RecordTypeExpr
-                     / TupleTypeExpr
-                     / ArrowTypeExpr
-                     / FunctionTypeExpr
-                     / ParenthesizedExpr
-                     / GenericTypeExpr
-                     / TypeQueryExpr
-                     / KeyQueryExpr
-                     / BroadNamepathExpr
-                     / ValueExpr
-                     / AnyTypeExpr
-                     / UnknownTypeExpr
-
-ArrowTypeExpr = newModifier:"new"? _ paramsPart:ArrowTypeExprParamsList _ "=>" _ returnedTypeNode:FunctionTypeExprReturnableOperand {
-                   return {
-                     type: NodeType.ARROW,
-                     params: paramsPart,
-                     returns: returnedTypeNode,
-                     new: newModifier
-                   };
-}
-
-ArrowTypeExprParamsList = "(" _ params:ArrowTypeExprParams _ ")" {
-                            return params;
-                          }
-                        / "(" _ ")" {
-                            return [];
-                          }
-ArrowTypeExprParams = paramsWithComma:(JsIdentifier _ ":" _ FunctionTypeExprParamOperand? _ "," _)* lastParam:VariadicNameExpr? {
-  return paramsWithComma.reduceRight(function(params, tokens) {
-    const param = { type: NodeType.NAMED_PARAMETER, name: tokens[0], typeName: tokens[4] };
-    return [param].concat(params);
-  }, lastParam ? [lastParam] : []);
-}
-
-VariadicNameExpr = spread:"..."? _ id:JsIdentifier _ ":" _ type:FunctionTypeExprParamOperand? {
-  const operand = { type: NodeType.NAMED_PARAMETER, name: id, typeName: type };
-  if (spread) {
-  return {
-    type: NodeType.VARIADIC,
-    value: operand,
-    meta: { syntax: VariadicTypeSyntax.PREFIX_DOTS },
-  };
-  }
-  else {
-    return operand;
-  }
-}
-
-/*
- * Function type expressions.
- *
- * Examples:
- *   - function(string)
- *   - function(string, ...string)
- *   - function():number
- *   - function(this:jQuery):jQuery
- *   - function(new:Error)
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-FunctionTypeExpr = "function" _ paramsPart:FunctionTypeExprParamsList _
-                   returnedTypePart:(":" _ FunctionTypeExprReturnableOperand)? {
-                   const returnedTypeNode = returnedTypePart ? returnedTypePart[2] : null;
-
-                   return {
-                     type: NodeType.FUNCTION,
-                     params: paramsPart.params,
-                     returns: returnedTypeNode,
-                     this: paramsPart.modifier.nodeThis,
-                     new: paramsPart.modifier.nodeNew,
-                   };
-                 }
-
-
-FunctionTypeExprParamsList = "(" _ modifier:FunctionTypeExprModifier _ "," _ params: FunctionTypeExprParams _ ")" {
-                               return { params, modifier };
-                             }
-                           / "(" _ modifier:FunctionTypeExprModifier _ ")" {
-                               return { params: [], modifier };
-                             }
-                           / "(" _ params:FunctionTypeExprParams _ ")" {
-                               return { params, modifier: { nodeThis: null, nodeNew: null } };
-                             }
-                           / "(" _ ")" {
-                               return { params: [], modifier: { nodeThis: null, nodeNew: null } };
-                             }
-
-
-// We can specify either "this:" or "new:".
-// See https://github.com/google/closure-compiler/blob/
-//       91cf3603d5b0b0dc289ba73adcd0f2741aa90d89/src/
-//       com/google/javascript/jscomp/parsing/JsDocInfoParser.java#L2158-L2171
-FunctionTypeExprModifier = modifierThis:("this" _ ":" _ FunctionTypeExprParamOperand) {
-                             return { nodeThis: modifierThis[4], nodeNew: null };
-                           }
-                         / modifierNew:("new" _ ":" _ FunctionTypeExprParamOperand) {
-                             return { nodeThis: null, nodeNew: modifierNew[4] };
-                           }
-
-
-FunctionTypeExprParams = paramsWithComma:(FunctionTypeExprParamOperand _ "," _)*
-                         // Variadic type is only allowed on the last parameter.
-                         lastParam:(VariadicTypeExpr / VariadicTypeExprOperand)? {
-                         return paramsWithComma.reduceRight(function(params, tokens) {
-                           const [param] = tokens;
-                           return [param].concat(params);
-                         }, lastParam ? [lastParam] : []);
-                       }
-
-
-FunctionTypeExprParamOperand = UnionTypeExpr
-                             / TypeQueryExpr
-                             / KeyQueryExpr
-                             / UnaryUnionTypeExpr
-                             / RecordTypeExpr
-                             / TupleTypeExpr
-                             / ArrowTypeExpr
-                             / FunctionTypeExpr
-                             / ParenthesizedExpr
-                             / ArrayTypeExpr
-                             / GenericTypeExpr
-                             / BroadNamepathExpr
-                             / ValueExpr
-                             / AnyTypeExpr
-                             / UnknownTypeExpr
-
-
-FunctionTypeExprReturnableOperand = PrefixUnaryUnionTypeExpr
-                                  // Suffix unary union type operators should not be
-                                  // placed here to keep operator precedence. For example,
-                                  // "Foo|function():Returned=" should be parsed as
-                                  // "(Foo|function():Returned)=" instead of
-                                  // "Foo|(function():Returned=)". This result was expected
-                                  // by Closure Library.
-                                  //
-                                  // See https://github.com/google/closure-library/blob/
-                                  //   47f9c92bb4c7de9a3d46f9921a427402910073fb/
-                                  //   closure/goog/ui/zippy.js#L47
-                                  / RecordTypeExpr
-                                  / TupleTypeExpr
-                                  / ArrowTypeExpr
-                                  / FunctionTypeExpr
-                                  / ParenthesizedExpr
-                                  / ArrayTypeExpr
-                                  / TypeQueryExpr
-                                  / KeyQueryExpr
-                                  / GenericTypeExpr
-                                  / BroadNamepathExpr
-                                  / ValueExpr
-                                  / AnyTypeExpr
-                                  / UnknownTypeExpr
-
-
-/*
- * Record type expressions.
- *
- * Examples:
- *   - {}
- *   - {length}
- *   - {length:number}
- *   - {toString:Function,valueOf:Function}
- *   - {'foo':*}
- *   - {a:string,b?:number} // TypeScript syntax
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- *   - https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#patterns-that-are-known-not-to-be-supported
- */
-RecordTypeExpr = "{" _ entries:RecordTypeExprEntries? _ "}" {
-                 return {
-                   type: NodeType.RECORD,
-                   entries: entries || [],
-                 };
-               }
-
-
-RecordTypeExprEntries = first:RecordTypeExprEntry restWithComma:((_ "," /_ ";" / [ \t]* [\r]? [\n]) _ RecordTypeExprEntry)* (_ "," / _ ";" / [ \t]* [\r]? [\n])? {
-                        return restWithComma.reduce(function(entries, tokens) {
-                          const entry = tokens[2];
-                          return entries.concat([entry]);
-                        }, [first]);
-                      }
-
-RecordTypeExprEntry = keyInfo:RecordTypeExprEntryKey _ optional:"?"? _ ":" _ value:RecordTypeExprEntryOperand {
-                        const {quoteStyle, key} = keyInfo;
-                        return {
-                          type: NodeType.RECORD_ENTRY,
-                          key,
-                          quoteStyle,
-                          value: optional !== '?' ? value : {
-                            type: NodeType.OPTIONAL,
-                            value,
-                            meta: { syntax: OptionalTypeSyntax.SUFFIX_KEY_QUESTION_MARK },
-                          }
-                        };
-                      }
-                    / keyInfo:RecordTypeExprEntryKey {
-                        const {quoteStyle, key} = keyInfo;
-                        return {
-                          type: NodeType.RECORD_ENTRY,
-                          key,
-                          value: null,
-                          quoteStyle
-                        };
-                      }
-
-
-RecordTypeExprEntryKey = '"' key:$([^\\"] / "\\".)* '"' {
-                           return {
-                             quoteStyle: 'double',
-                             key: key.replace(/\\"/gu, '"')
-                               .replace(/\\\\/gu, '\\')
-                           };
-                       }
-                       / "'" key:$([^\\'] / "\\".)* "'" {
-                           return {
-                             quoteStyle: 'single',
-                             key: key.replace(/\\'/g, "'")
-                               .replace(/\\\\/gu, '\\')
-                           };
-                         }
-                       / key:$(JsIdentifier / UnsignedDecimalNumberLiteralExpr) {
-                           return {
-                             quoteStyle: 'none',
-                             key
-                           };
-                       }
-
-
-RecordTypeExprEntryOperand = UnionTypeExpr
-                           / UnaryUnionTypeExpr
-                           / RecordTypeExpr
-                           / TupleTypeExpr
-                           / ArrowTypeExpr
-                           / FunctionTypeExpr
-                           / ParenthesizedExpr
-                           / ArrayTypeExpr
-                           / GenericTypeExpr
-                           / BroadNamepathExpr
-                           / ValueExpr
-                           / AnyTypeExpr
-                           / UnknownTypeExpr
-
-
-/**
- * TypeScript style tuple type.
- *
- * Examples:
- *   - []
- *   - [string]
- *   - [number]
- *   - [string, number]
- *
- * Spec:
- *   - https://www.typescriptlang.org/docs/handbook/basic-types.html#tuple
- */
-TupleTypeExpr = "[" _ entries:TupleTypeExprEntries? _ "]" {
-  return {
-    type: NodeType.TUPLE,
-    entries: entries || [],
-  }
-}
-
-TupleTypeExprEntries = restWithComma:(TupleTypeExprOperand _ "," _)*
-                       // Variadic type is only allowed on the last entry.
-                       last:(VariadicTypeExpr / VariadicTypeExprOperand)? {
-  return restWithComma.reduceRight((entries, tokens) => {
-    let [entry] = tokens;
-    return [entry].concat(entries);
-  }, last ? [last] : []);
-}
-
-TupleTypeExprOperand = UnionTypeExpr
-                     / UnaryUnionTypeExpr
-                     / RecordTypeExpr
-                     / TupleTypeExpr
-                     / ArrowTypeExpr
-                     / FunctionTypeExpr
-                     / ParenthesizedExpr
-                     / TypeQueryExpr
-                     / KeyQueryExpr
-                     / ArrayTypeExpr
-                     / GenericTypeExpr
-                     / BroadNamepathExpr
-                     / ValueExpr
-                     / AnyTypeExpr
-                     / UnknownTypeExpr
-
-
-/*
- * Parenthesis expressions.
- *
- * Examples:
- *   - (Foo|Bar)
- *   - (module: path/to/file).Module
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- */
-ParenthesizedExpr = "(" _ wrapped:ParenthesizedExprOperand _ ")" {
-                    return {
-                      type: NodeType.PARENTHESIS,
-                      value: wrapped,
-                    };
-                  }
-
-
-ParenthesizedExprOperand = UnionTypeExpr
-                         / UnaryUnionTypeExpr
-                         / RecordTypeExpr
-                         / TupleTypeExpr
-                         / ArrowTypeExpr
-                         / FunctionTypeExpr
-                         / ArrayTypeExpr
-                         / TypeQueryExpr
-                         / KeyQueryExpr
-                         / GenericTypeExpr
-                         / BroadNamepathExpr
-                         / ValueExpr
-                         / AnyTypeExpr
-                         / UnknownTypeExpr
-
-
-
-/*
- * Variadic type expressions.
- *
- * Examples:
- *   - ...string (only allow on the top level or the last function parameter)
- *   - string... (only allow on the top level)
- *   - ...
- *
- * Note:
- *   It seems that we can omit the operand.
- *   See https://github.com/google/closure-library/blob/
- *       47f9c92bb4c7de9a3d46f9921a427402910073fb/
- *       closure/goog/base.js#L1847
- *
- * Spec:
- *   - https://developers.google.com/closure/compiler/docs/js-for-compiler#types
- *   - https://github.com/senchalabs/jsduck/wiki/Type-Definitions
- */
-VariadicTypeExpr = PrefixVariadicTypeExpr
-                 / SuffixVariadicTypeExpr
-                 / AnyVariadicTypeExpr
-
-
-PrefixVariadicTypeExpr = "..." operand:VariadicTypeExprOperand {
-                         return {
-                           type: NodeType.VARIADIC,
-                           value: operand,
-                           meta: { syntax: VariadicTypeSyntax.PREFIX_DOTS },
-                         };
-                       }
-
-
-SuffixVariadicTypeExpr = operand:VariadicTypeExprOperand "..." {
-                         return {
-                           type: NodeType.VARIADIC,
-                           value: operand,
-                           meta: { syntax: VariadicTypeSyntax.SUFFIX_DOTS },
-                         };
-                       }
-
-
-AnyVariadicTypeExpr = "..." {
-                      return {
-                        type: NodeType.VARIADIC,
-                        value: { type: NodeType.ANY },
-                        meta: { syntax: VariadicTypeSyntax.ONLY_DOTS },
-                      };
-                    }
-
-
-VariadicTypeExprOperand = UnionTypeExpr
-                        / UnaryUnionTypeExpr
-                        / RecordTypeExpr
-                        / TupleTypeExpr
-                        / ArrowTypeExpr
-                        / FunctionTypeExpr
-                        / ParenthesizedExpr
-                        / TypeQueryExpr
-                        / KeyQueryExpr
-                        / ArrayTypeExpr
-                        / GenericTypeExpr
-                        / BroadNamepathExpr
-                        / ValueExpr
-                        / AnyTypeExpr
-                        / UnknownTypeExpr
diff --git a/node_modules/jsdoctypeparser/schemas/AnyNode.json b/node_modules/jsdoctypeparser/schemas/AnyNode.json
deleted file mode 100644
index de545f1..0000000
--- a/node_modules/jsdoctypeparser/schemas/AnyNode.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" }
-  },
-  "required": [
-    "type"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/ExternalNode.json b/node_modules/jsdoctypeparser/schemas/ExternalNode.json
deleted file mode 100644
index 07ed6f5..0000000
--- a/node_modules/jsdoctypeparser/schemas/ExternalNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "value": { "$ref": "Node.json" }
-  },
-  "required": [
-    "type",
-    "value"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/FunctionNode.json b/node_modules/jsdoctypeparser/schemas/FunctionNode.json
deleted file mode 100644
index 8cf63e8..0000000
--- a/node_modules/jsdoctypeparser/schemas/FunctionNode.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "params": {
-      "type": "array",
-      "items": { "$ref": "Node.json" }
-    },
-    "returns": {
-      "oneOf": [
-        { "$ref": "Node.json" },
-        null
-      ]
-    },
-    "this": {
-      "oneOf": [
-        { "$ref": "Node.json" },
-        null
-      ]
-    },
-    "new": {
-      "oneOf": [
-        { "$ref": "Node.json" },
-        null
-      ]
-    }
-  },
-  "required": [
-    "type",
-    "params",
-    "returns",
-    "this",
-    "new"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/GenericNode.json b/node_modules/jsdoctypeparser/schemas/GenericNode.json
deleted file mode 100644
index e88422e..0000000
--- a/node_modules/jsdoctypeparser/schemas/GenericNode.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "subject": { "$ref": "Node.json" },
-    "objects": {
-      "type": "array",
-      "items": { "type": "Node.json" }
-    }
-  },
-  "required": [
-    "type",
-    "subject",
-    "objects"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/InnerMemberNode.json b/node_modules/jsdoctypeparser/schemas/InnerMemberNode.json
deleted file mode 100644
index 7c75bdd..0000000
--- a/node_modules/jsdoctypeparser/schemas/InnerMemberNode.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "owner": { "$ref": "Node.json" },
-    "name": { "type": "string" },
-    "hasEventPrefix": { "type": "boolean" },
-    "quoteStyle": {
-      "type": "string",
-      "enum": ["single", "double", "none"]
-    }
-  },
-  "required": [
-    "type",
-    "owner",
-    "name"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/InstanceMemberNode.json b/node_modules/jsdoctypeparser/schemas/InstanceMemberNode.json
deleted file mode 100644
index 7c75bdd..0000000
--- a/node_modules/jsdoctypeparser/schemas/InstanceMemberNode.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "owner": { "$ref": "Node.json" },
-    "name": { "type": "string" },
-    "hasEventPrefix": { "type": "boolean" },
-    "quoteStyle": {
-      "type": "string",
-      "enum": ["single", "double", "none"]
-    }
-  },
-  "required": [
-    "type",
-    "owner",
-    "name"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/MemberNode.json b/node_modules/jsdoctypeparser/schemas/MemberNode.json
deleted file mode 100644
index 7c75bdd..0000000
--- a/node_modules/jsdoctypeparser/schemas/MemberNode.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "owner": { "$ref": "Node.json" },
-    "name": { "type": "string" },
-    "hasEventPrefix": { "type": "boolean" },
-    "quoteStyle": {
-      "type": "string",
-      "enum": ["single", "double", "none"]
-    }
-  },
-  "required": [
-    "type",
-    "owner",
-    "name"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/ModuleNode.json b/node_modules/jsdoctypeparser/schemas/ModuleNode.json
deleted file mode 100644
index 16da8e4..0000000
--- a/node_modules/jsdoctypeparser/schemas/ModuleNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "path": { "type": "string" }
-  },
-  "required": [
-    "type",
-    "path"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/NameNode.json b/node_modules/jsdoctypeparser/schemas/NameNode.json
deleted file mode 100644
index 335849c..0000000
--- a/node_modules/jsdoctypeparser/schemas/NameNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "name": { "type": "string" }
-  },
-  "required": [
-    "type",
-    "name"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/Node.json b/node_modules/jsdoctypeparser/schemas/Node.json
deleted file mode 100644
index de545f1..0000000
--- a/node_modules/jsdoctypeparser/schemas/Node.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" }
-  },
-  "required": [
-    "type"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/NodeType.json b/node_modules/jsdoctypeparser/schemas/NodeType.json
deleted file mode 100644
index 58e51d7..0000000
--- a/node_modules/jsdoctypeparser/schemas/NodeType.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "type": "string",
-  "enum": [
-    "NAME",
-    "MEMBER",
-    "UNION",
-    "VARIADIC",
-    "RECORD",
-    "RECORD_ENTRY",
-    "TUPLE",
-    "GENERIC",
-    "MODULE",
-    "OPTIONAL",
-    "NULLABLE",
-    "NOT_NULLABLE",
-    "FUNCTION",
-    "ANY",
-    "UNKNOWN",
-    "INNER_MEMBER",
-    "INSTANCE_MEMBER"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/NotNullableNode.json b/node_modules/jsdoctypeparser/schemas/NotNullableNode.json
deleted file mode 100644
index 07ed6f5..0000000
--- a/node_modules/jsdoctypeparser/schemas/NotNullableNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "value": { "$ref": "Node.json" }
-  },
-  "required": [
-    "type",
-    "value"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/NullableNode.json b/node_modules/jsdoctypeparser/schemas/NullableNode.json
deleted file mode 100644
index 07ed6f5..0000000
--- a/node_modules/jsdoctypeparser/schemas/NullableNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "value": { "$ref": "Node.json" }
-  },
-  "required": [
-    "type",
-    "value"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/NumberValueNode.json b/node_modules/jsdoctypeparser/schemas/NumberValueNode.json
deleted file mode 100644
index f8a6a8d..0000000
--- a/node_modules/jsdoctypeparser/schemas/NumberValueNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "number": { "type": "number" }
-  },
-  "required": [
-    "type",
-    "number"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/OptionalNode.json b/node_modules/jsdoctypeparser/schemas/OptionalNode.json
deleted file mode 100644
index 07ed6f5..0000000
--- a/node_modules/jsdoctypeparser/schemas/OptionalNode.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "value": { "$ref": "Node.json" }
-  },
-  "required": [
-    "type",
-    "value"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/RecordEntryNode.json b/node_modules/jsdoctypeparser/schemas/RecordEntryNode.json
deleted file mode 100644
index 7e147c6..0000000
--- a/node_modules/jsdoctypeparser/schemas/RecordEntryNode.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "key": { "type": "string" },
-    "value": {
-      "oneOf": [
-        { "$ref": "Node.json" },
-        null
-      ]
-    }
-  },
-  "required": [
-    "type",
-    "key",
-    "value"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/RecordNode.json b/node_modules/jsdoctypeparser/schemas/RecordNode.json
deleted file mode 100644
index 5b8f650..0000000
--- a/node_modules/jsdoctypeparser/schemas/RecordNode.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "entries": {
-      "type": "array",
-      "items": { "$ref": "#/definitions/RecordEntryNode" }
-    }
-  },
-  "required": [
-    "type",
-    "entries"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/StringValueNode.json b/node_modules/jsdoctypeparser/schemas/StringValueNode.json
deleted file mode 100644
index d23e2da..0000000
--- a/node_modules/jsdoctypeparser/schemas/StringValueNode.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "string": { "type": "string" },
-    "quoteStyle": {
-      "type": "string",
-      "enum": ["single", "double", "none"]
-    }
-  },
-  "required": [
-    "type",
-    "string"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/TupleNode.json b/node_modules/jsdoctypeparser/schemas/TupleNode.json
deleted file mode 100644
index 6f0669d..0000000
--- a/node_modules/jsdoctypeparser/schemas/TupleNode.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "entries": {
-      "type": "array",
-      "items": { "$ref": "Node.json" }
-    }
-  },
-  "required": [
-    "type",
-    "entries"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/UnionNode.json b/node_modules/jsdoctypeparser/schemas/UnionNode.json
deleted file mode 100644
index 2257932..0000000
--- a/node_modules/jsdoctypeparser/schemas/UnionNode.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "right": { "$ref": "Node" },
-    "left": { "$ref": "Node.json" }
-  },
-  "required": [
-    "type",
-    "right",
-    "left"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/UnknownNode.json b/node_modules/jsdoctypeparser/schemas/UnknownNode.json
deleted file mode 100644
index de545f1..0000000
--- a/node_modules/jsdoctypeparser/schemas/UnknownNode.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" }
-  },
-  "required": [
-    "type"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/schemas/VariadicNode.json b/node_modules/jsdoctypeparser/schemas/VariadicNode.json
deleted file mode 100644
index d8964c8..0000000
--- a/node_modules/jsdoctypeparser/schemas/VariadicNode.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "type": { "$ref": "NodeType.json" },
-    "value": { "$ref": "Node.json" },
-    "meta": {
-      "type": "object",
-      "properties": {
-        "syntax": {
-          "type": "string",
-          "enum": ["PREFIX_DOTS", "SUFFIX_DOTS"]
-        }
-      }
-    }
-  },
-  "required": [
-    "type",
-    "value",
-    "meta"
-  ]
-}
diff --git a/node_modules/jsdoctypeparser/tsconfig.json b/node_modules/jsdoctypeparser/tsconfig.json
deleted file mode 100644
index e1553bf..0000000
--- a/node_modules/jsdoctypeparser/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-    "compilerOptions": {
-        "allowJs": true,
-        "checkJs": true,
-        "noEmit": true,
-        "target": "esnext",
-        "lib": ["es2015"],
-        "module": "commonjs",
-        "resolveJsonModule": true,
-        "strict": false
-    },
-    "include": [
-        "lib"
-    ],
-}
diff --git a/node_modules/jsx-ast-utils/.babelrc b/node_modules/jsx-ast-utils/.babelrc
deleted file mode 100644
index 4517434..0000000
--- a/node_modules/jsx-ast-utils/.babelrc
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "presets": ["env"],
-  "plugins": [
-    ["transform-replace-object-assign", { "moduleSpecifier": "object.assign" }],
-    "transform-object-rest-spread",
-  ],
-}
diff --git a/node_modules/jsx-ast-utils/.eslintignore b/node_modules/jsx-ast-utils/.eslintignore
deleted file mode 100644
index 869feff..0000000
--- a/node_modules/jsx-ast-utils/.eslintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules/
-reports/
-lib/
diff --git a/node_modules/jsx-ast-utils/.eslintrc b/node_modules/jsx-ast-utils/.eslintrc
deleted file mode 100644
index e725eb7..0000000
--- a/node_modules/jsx-ast-utils/.eslintrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  extends: "airbnb-base",
-  rules: {
-    no-use-before-define: ["error", { functions: false }]
-  }
-}
diff --git a/node_modules/jsx-ast-utils/.github/FUNDING.yml b/node_modules/jsx-ast-utils/.github/FUNDING.yml
deleted file mode 100644
index 24cba01..0000000
--- a/node_modules/jsx-ast-utils/.github/FUNDING.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-tidelift: "npm/jsx-ast-utils"
diff --git a/node_modules/jsx-ast-utils/.travis.yml b/node_modules/jsx-ast-utils/.travis.yml
deleted file mode 100644
index 0177af9..0000000
--- a/node_modules/jsx-ast-utils/.travis.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
-  - "12"
-  - "10"
-  - "8"
-  - "6"
-  - "4"
-  - "0.12"
-  - "0.10"
-cache:
-  directories:
-    - node_modules
-after_success:
-  - npm run coveralls
-before_install:
-  - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
-  - 'nvm install-latest-npm'
-install:
-  - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
-  - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
-  - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-branches:
-  only:
-    - master
-env:
-  - TEST=true
-matrix:
-  fast_finish: true
-  include:
-    - node_js: "lts/*"
-      env: PRETEST=true
-  allow_failures:
-    - os: osx
-    - node_js: "0.12"
-    - node_js: "0.10"
diff --git a/node_modules/jsx-ast-utils/CHANGELOG.md b/node_modules/jsx-ast-utils/CHANGELOG.md
deleted file mode 100644
index b27d5e7..0000000
--- a/node_modules/jsx-ast-utils/CHANGELOG.md
+++ /dev/null
@@ -1,107 +0,0 @@
-2.2.3 / 2019-10-24
-==================
-- (fix) Fix crash on spread (#94)
-
-2.2.2 / 2019-10-24
-==================
-- (improvement) Add support for retrieving props from a spread with object expression (#93)
-
-2.2.1 / 2019-06-30
-==================
-- (improvement) Account for TypeCastExpression in the utils
-
-2.2.0 / 2019-06-25
-==================
-- (fix) Fix getLiteralPropValue for TS-specific node types.
-- (chore) upgrade dependencies.
-- (improvement) Stop throwing errors when unknown AST nodes are encountered.
-- (dev) CI changes.
-
-2.1.0 / 2018-04-19
-==================
-- Fix undefined bug for template strings. #45
-- Adding support for `objectRestSpread` within props #60
-- Accommodate ExperimentalSpreadProperty in prop values #75
-- Account for SpreadElement AST Nodes #76
-- Support OptionalMemberExpression AST nodes #77
-- Add support to Typescript's node types #72
-
-2.0.1 / 2017-08-31
-==================
-- [fix] Add support for BindExpression
-
-
-2.0.0 / 2017-07-07
-==================
-- [breaking] Remove undefined return from `propName` so it always returns a value.
-
-
-1.4.1 / 2017-04-19
-==================
-- [fix] - Fixing fatal throw in `getPropValue` for `ArrowFunctionExpression`
-
-
-1.4.0 / 2017-02-02
-==================
-- [new] Add eventHandlers and eventHandlersByType to API. These are the event names for DOM elements on JSX-using libraries such as React, inferno, and preact.
-
-
-1.3.5 / 2016-12-14
-==================
-- [fix] Normalize literals "true" and "false" before converting to boolean in Literal prop value extractor.
-
-
-1.3.4 / 2016-11-15
-==================
-- [fix] Recursively resolve JSXMemberExpression names for elementType. (i.e. `<Component.Render.Me />`). Fixes [#9](https://github.com/evcohen/jsx-ast-utils/issues/9)
-
-
-1.3.3 / 2016-10-28
-==================
-- [fix] Add support for `ArrayExpression`.
-
-
-1.3.2 / 2016-10-11
-==================
-- [fix] Add support for `UpdateExpression`.
-
-
-1.3.1 / 2016-07-13
-==================
-- [fix] Add `JSXElement` to expression types to handle recursively extracting prop value.
-
-
-1.3.0 / 2016-07-12
-==================
-- [new] Add support for `TaggedTemplateExpression`.
-
-
-1.2.1 / 2016-06-15
-==================
-- [fix] Point to `lib` instead of `src` for root exports.
-
-
-1.2.0 / 2016-06-15
-==================
-- [new] Export functions from root so they can be imported like the following: `require('jsx-ast-utils/{function}')`.
-
-
-1.1.1 / 2016-06-12
-==================
-- [fix] Better support for expressions in `TemplateLiteral` extraction.
-
-
-1.1.0 / 2016-06-10
-==================
-- [new] Support for namespaced element names.
-- [new] Add `propName` to API to get correct name for prop.
-
-
-1.0.1 / 2016-06-10
-==================
-- [fix] Return actual reserved words instead of string representations of them.
-
-
-1.0.0 / 2016-06-09
-==================
-- Initial stable release
diff --git a/node_modules/jsx-ast-utils/LICENSE.md b/node_modules/jsx-ast-utils/LICENSE.md
deleted file mode 100644
index a66c74b..0000000
--- a/node_modules/jsx-ast-utils/LICENSE.md
+++ /dev/null
@@ -1,8 +0,0 @@
-The MIT License (MIT)
-Copyright (c) 2016 Ethan Cohen
-
-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.
diff --git a/node_modules/jsx-ast-utils/README.md b/node_modules/jsx-ast-utils/README.md
deleted file mode 100644
index 1f14b43..0000000
--- a/node_modules/jsx-ast-utils/README.md
+++ /dev/null
@@ -1,294 +0,0 @@
-<p align="center">
-  <a href="https://travis-ci.org/evcohen/jsx-ast-utils">
-    <img src="https://api.travis-ci.org/evcohen/jsx-ast-utils.svg?branch=master"
-         alt="build status">
-  </a>
-  <a href="https://npmjs.org/package/jsx-ast-utils">
-    <img src="https://img.shields.io/npm/v/jsx-ast-utils.svg"
-         alt="npm version">
-  </a>
-  <a href="https://github.com/evcohen/jsx-ast-utils/blob/master/LICENSE.md">
-    <img src="https://img.shields.io/npm/l/jsx-ast-utils.svg"
-         alt="license">
-  </a>
-  <a href='https://coveralls.io/github/evcohen/jsx-ast-utils?branch=master'>
-    <img src='https://coveralls.io/repos/github/evcohen/jsx-ast-utils/badge.svg?branch=master' alt='Coverage Status' />
-  </a>
-  <a href='https://npmjs.org/package/jsx-ast-utils'>
-    <img src='https://img.shields.io/npm/dt/jsx-ast-utils.svg'
-    alt='Total npm downloads' />
-  </a>
-</p>
-
-# jsx-ast-utils
-
-AST utility module for statically analyzing JSX.
-
-## Installation
-```sh
-$ npm i jsx-ast-utils --save
-```
-
-## Usage
-This is a utility module to evaluate AST objects for JSX syntax. This can be super useful when writing linting rules for JSX code. It was originally in the code for [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y), however I thought it could be useful to be extracted and maintained separately so **you** could write new interesting rules to statically analyze JSX.
-
-### ESLint example
-```js
-import { hasProp } from 'jsx-ast-utils';
-// OR: var hasProp = require('jsx-ast-utils').hasProp;
-// OR: const hasProp = require('jsx-ast-utils/hasProp');
-// OR: import hasProp from 'jsx-ast-utils/hasProp';
-
-module.exports = context => ({
-  JSXOpeningElement: node => {
-    const onChange = hasProp(node.attributes, 'onChange');
-
-    if (onChange) {
-      context.report({
-        node,
-        message: `No onChange!`
-      });
-    }
-  }
-});
-```
-
-## API
-### AST Resources
-1. [JSX spec](https://github.com/facebook/jsx/blob/master/AST.md)
-2. [JS spec](https://github.com/estree/estree/blob/master/spec.md)
-
-### hasProp
-```js
-hasProp(props, prop, options);
-```
-Returns boolean indicating whether an prop exists as an attribute on a JSX element node.
-
-#### Props
-Object - The attributes on the visited node. (Usually `node.attributes`).
-#### Prop
-String - A string representation of the prop you want to check for existence.
-#### Options
-Object - An object representing options for existence checking
-  1. `ignoreCase` - automatically set to `true`.
-  2. `spreadStrict` - automatically set to `true`. This means if spread operator exists in
-     props, it will assume the prop you are looking for is not in the spread.
-     Example: `<div {...props} />` looking for specific prop here will return false if `spreadStrict` is `true`.
-
-<hr />
-
-### hasAnyProp
-
-```js
-hasAnyProp(props, prop, options);
-```
-Returns a boolean indicating if **any** of props in `prop` argument exist on the node.
-
-#### Props
-Object - The attributes on the visited node. (Usually `node.attributes`).
-#### Prop
-Array<String> - An array of strings representing the props you want to check for existence.
-#### Options
-Object - An object representing options for existence checking
-  1. `ignoreCase` - automatically set to `true`.
-  2. `spreadStrict` - automatically set to `true`. This means if spread operator exists in
-     props, it will assume the prop you are looking for is not in the spread.
-     Example: `<div {...props} />` looking for specific prop here will return false if `spreadStrict` is `true`.
-
-<hr />
-
-### hasEveryProp
-
-```js
-hasEveryProp(props, prop, options);
-```
-Returns a boolean indicating if **all** of props in `prop` argument exist on the node.
-
-#### Props
-Object - The attributes on the visited node. (Usually `node.attributes`).
-#### Prop
-Array<String> - An array of strings representing the props you want to check for existence.
-#### Options
-Object - An object representing options for existence checking
- 1. `ignoreCase` - automatically set to `true`.
- 2. `spreadStrict` - automatically set to `true`. This means if spread operator exists in
-    props, it will assume the prop you are looking for is not in the spread.
-    Example: `<div {...props} />` looking for specific prop here will return false if `spreadStrict` is `true`.
-
-<hr />
-
-### getProp
-
-```js
-getProp(props, prop, options);
-```
-Returns the JSXAttribute itself or undefined, indicating the prop is not present on the JSXOpeningElement.
-
-#### Props
-Object - The attributes on the visited node. (Usually `node.attributes`).
-#### Prop
-String - A string representation of the prop you want to check for existence.
-#### Options
-Object - An object representing options for existence checking
-  1. `ignoreCase` - automatically set to `true`.
-
-<hr />
-
-### elementType
-```js
-elementType(node)
-```
-Returns the tagName associated with a JSXElement.
-
-#### Node
-Object - The visited JSXElement node object.
-
-<hr />
-
-### getPropValue
-
-```js
-getPropValue(prop);
-```
-Returns the value of a given attribute. Different types of attributes have their associated values in different properties on the object.
-
-This function should return the most *closely* associated value with the intention of the JSX.
-
-#### Prop
-Object - The JSXAttribute collected by AST parser.
-
-<hr />
-
-### getLiteralPropValue
-
-```js
-getLiteralPropValue(prop);
-```
-Returns the value of a given attribute. Different types of attributes have their associated values in different properties on the object.
-
-This function should return a value only if we can extract a literal value from its attribute (i.e. values that have generic types in JavaScript - strings, numbers, booleans, etc.)
-
-#### Prop
-Object - The JSXAttribute collected by AST parser.
-
-<hr />
-
-### propName
-
-```js
-propName(prop);
-```
-Returns the name associated with a JSXAttribute. For example, given `<div foo="bar" />` and the JSXAttribute for `foo`, this will return the string `"foo"`.
-
-#### Prop
-Object - The JSXAttribute collected by AST parser.
-
-<hr />
-
-### eventHandlers
-
-```js
-console.log(eventHandlers);
-/*
-[
-  'onCopy',
-  'onCut',
-  'onPaste',
-  'onCompositionEnd',
-  'onCompositionStart',
-  'onCompositionUpdate',
-  'onKeyDown',
-  'onKeyPress',
-  'onKeyUp',
-  'onFocus',
-  'onBlur',
-  'onChange',
-  'onInput',
-  'onSubmit',
-  'onClick',
-  'onContextMenu',
-  'onDblClick',
-  'onDoubleClick',
-  'onDrag',
-  'onDragEnd',
-  'onDragEnter',
-  'onDragExit',
-  'onDragLeave',
-  'onDragOver',
-  'onDragStart',
-  'onDrop',
-  'onMouseDown',
-  'onMouseEnter',
-  'onMouseLeave',
-  'onMouseMove',
-  'onMouseOut',
-  'onMouseOver',
-  'onMouseUp',
-  'onSelect',
-  'onTouchCancel',
-  'onTouchEnd',
-  'onTouchMove',
-  'onTouchStart',
-  'onScroll',
-  'onWheel',
-  'onAbort',
-  'onCanPlay',
-  'onCanPlayThrough',
-  'onDurationChange',
-  'onEmptied',
-  'onEncrypted',
-  'onEnded',
-  'onError',
-  'onLoadedData',
-  'onLoadedMetadata',
-  'onLoadStart',
-  'onPause',
-  'onPlay',
-  'onPlaying',
-  'onProgress',
-  'onRateChange',
-  'onSeeked',
-  'onSeeking',
-  'onStalled',
-  'onSuspend',
-  'onTimeUpdate',
-  'onVolumeChange',
-  'onWaiting',
-  'onLoad',
-  'onError',
-  'onAnimationStart',
-  'onAnimationEnd',
-  'onAnimationIteration',
-  'onTransitionEnd',
-]
-*/
-```
-
-Contains a flat list of common event handler props used in JSX to attach behaviors
-to DOM events.
-
-#### eventHandlersByType
-
-The same list as `eventHandlers`, grouped into types.
-
-```js
-console.log(eventHandlersByType);
-/*
-{
-  clipboard: [ 'onCopy', 'onCut', 'onPaste' ],
-  composition: [ 'onCompositionEnd', 'onCompositionStart', 'onCompositionUpdate' ],
-  keyboard: [ 'onKeyDown', 'onKeyPress', 'onKeyUp' ],
-  focus: [ 'onFocus', 'onBlur' ],
-  form: [ 'onChange', 'onInput', 'onSubmit' ],
-  mouse: [ 'onClick', 'onContextMenu', 'onDblClick', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp' ],
-  selection: [ 'onSelect' ],
-  touch: [ 'onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart' ],
-  ui: [ 'onScroll' ],
-  wheel: [ 'onWheel' ],
-  media: [ 'onAbort', 'onCanPlay', 'onCanPlayThrough', 'onDurationChange', 'onEmptied', 'onEncrypted', 'onEnded', 'onError', 'onLoadedData', 'onLoadedMetadata', 'onLoadStart', 'onPause', 'onPlay', 'onPlaying', 'onProgress', 'onRateChange', 'onSeeked', 'onSeeking', 'onStalled', 'onSuspend', 'onTimeUpdate', 'onVolumeChange', 'onWaiting' ],
-  image: [ 'onLoad', 'onError' ],
-  animation: [ 'onAnimationStart', 'onAnimationEnd', 'onAnimationIteration' ],
-  transition: [ 'onTransitionEnd' ],
-}
-*/
-```
diff --git a/node_modules/jsx-ast-utils/__tests__/helper.js b/node_modules/jsx-ast-utils/__tests__/helper.js
deleted file mode 100644
index dd00aa5..0000000
--- a/node_modules/jsx-ast-utils/__tests__/helper.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/* eslint-env jest */
-import getProp from '../src/getProp';
-
-const nodeVersion = parseInt(process.version.match(/^v(\d+)\./)[1], 10);
-
-export const fallbackToBabylon = nodeVersion < 6;
-
-let parserName;
-const babelParser = fallbackToBabylon ? require('babylon') : require('@babel/parser');
-const flowParser = require('flow-parser');
-
-const defaultPlugins = ['jsx', 'functionBind', 'estree', 'objectRestSpread', 'optionalChaining'];
-let plugins = [...defaultPlugins];
-
-export function setParserName(name) {
-  parserName = name;
-}
-
-export function changePlugins(pluginOrFn) {
-  if (Array.isArray(pluginOrFn)) {
-    plugins = pluginOrFn;
-  } else if (typeof pluginOrFn === 'function') {
-    plugins = pluginOrFn(plugins);
-  } else {
-    throw new Error('changePlugins argument should be either an array or a function');
-  }
-}
-
-beforeEach(() => {
-  plugins = [...defaultPlugins];
-});
-
-function parse(code) {
-  if (parserName === undefined) {
-    throw new Error('No parser specified');
-  }
-  if (parserName === 'babel') {
-    try {
-      return babelParser.parse(code, { plugins, sourceFilename: 'test.js' });
-    } catch (_) {
-      // eslint-disable-next-line no-console
-      console.warn(`Failed to parse with ${fallbackToBabylon ? 'babylon' : 'Babel'} parser.`);
-    }
-  }
-  if (parserName === 'flow') {
-    try {
-      return flowParser.parse(code, { plugins });
-    } catch (_) {
-      // eslint-disable-next-line no-console
-      console.warn('Failed to parse with the Flow parser');
-    }
-  }
-  throw new Error(`The parser ${parserName} is not yet supported for testing.`);
-}
-
-export function getOpeningElement(code) {
-  const parsedCode = parse(code);
-  let body;
-  if (parsedCode.program) {
-    // eslint-disable-next-line prefer-destructuring
-    body = parsedCode.program.body;
-  } else {
-    // eslint-disable-next-line prefer-destructuring
-    body = parsedCode.body;
-  }
-  if (Array.isArray(body) && body[0] != null) {
-    return body[0].expression.openingElement;
-  }
-
-  return null;
-}
-
-export function extractProp(code, prop = 'foo') {
-  const node = getOpeningElement(code);
-  const { attributes: props } = node;
-  return getProp(props, prop);
-}
-
-export const describeIfNotBabylon = fallbackToBabylon ? describe.skip : describe;
diff --git a/node_modules/jsx-ast-utils/__tests__/src/elementType-test.js b/node_modules/jsx-ast-utils/__tests__/src/elementType-test.js
deleted file mode 100644
index 6310805..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/elementType-test.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import { getOpeningElement, setParserName } from '../helper';
-import elementType from '../../src/elementType';
-
-describe('elementType tests', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof elementType;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should throw an error if the argument is missing', () => {
-    assert.throws(() => { elementType(); }, Error);
-  });
-
-  it('should throw an error if the argument not a JSX node', () => {
-    assert.throws(() => { elementType({ a: 'foo' }); }, Error);
-  });
-
-  it('should return the correct type of the DOM element given its node object', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-
-    const expected = 'div';
-    const actual = elementType(node);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct type of the custom element given its node object', () => {
-    const code = '<Slider />';
-    const node = getOpeningElement(code);
-
-    const expected = 'Slider';
-    const actual = elementType(node);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct type of the custom object element given its node object', () => {
-    const code = '<UX.Slider />';
-    const node = getOpeningElement(code);
-
-    const expected = 'UX.Slider';
-    const actual = elementType(node);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct type of the namespaced element given its node object', () => {
-    const code = '<UX:Slider />';
-    const node = getOpeningElement(code);
-
-    const expected = 'UX:Slider';
-    const actual = elementType(node);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct type of the multiple custom object element given its node object',
-    () => {
-      const code = '<UX.Slider.Blue.Light />';
-      const node = getOpeningElement(code);
-
-      const expected = 'UX.Slider.Blue.Light';
-      const actual = elementType(node);
-
-      assert.equal(expected, actual);
-    });
-
-  it('should return this.Component when given its node object', () => {
-    const code = '<this.Component />';
-    const node = getOpeningElement(code);
-
-    const expected = 'this.Component';
-    const actual = elementType(node);
-
-    assert.equal(expected, actual);
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/eventHandlers-test.js b/node_modules/jsx-ast-utils/__tests__/src/eventHandlers-test.js
deleted file mode 100644
index b678cde..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/eventHandlers-test.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import includes from 'array-includes';
-import eventHandlers, { eventHandlersByType } from '../../src/eventHandlers';
-
-describe('eventHandlers', () => {
-  it('should contain a list of common JSX event handlers', () => {
-    assert([
-      'onCopy',
-      'onCut',
-      'onPaste',
-      'onCompositionEnd',
-      'onCompositionStart',
-      'onCompositionUpdate',
-      'onKeyDown',
-      'onKeyPress',
-      'onKeyUp',
-      'onFocus',
-      'onBlur',
-      'onChange',
-      'onInput',
-      'onSubmit',
-      'onClick',
-      'onContextMenu',
-      'onDblClick',
-      'onDoubleClick',
-      'onDrag',
-      'onDragEnd',
-      'onDragEnter',
-      'onDragExit',
-      'onDragLeave',
-      'onDragOver',
-      'onDragStart',
-      'onDrop',
-      'onMouseDown',
-      'onMouseEnter',
-      'onMouseLeave',
-      'onMouseMove',
-      'onMouseOut',
-      'onMouseOver',
-      'onMouseUp',
-      'onSelect',
-      'onTouchCancel',
-      'onTouchEnd',
-      'onTouchMove',
-      'onTouchStart',
-      'onScroll',
-      'onWheel',
-      'onAbort',
-      'onCanPlay',
-      'onCanPlayThrough',
-      'onDurationChange',
-      'onEmptied',
-      'onEncrypted',
-      'onEnded',
-      'onError',
-      'onLoadedData',
-      'onLoadedMetadata',
-      'onLoadStart',
-      'onPause',
-      'onPlay',
-      'onPlaying',
-      'onProgress',
-      'onRateChange',
-      'onSeeked',
-      'onSeeking',
-      'onStalled',
-      'onSuspend',
-      'onTimeUpdate',
-      'onVolumeChange',
-      'onWaiting',
-      'onLoad',
-      'onError',
-      'onAnimationStart',
-      'onAnimationEnd',
-      'onAnimationIteration',
-      'onTransitionEnd',
-    ].every(handlerName => includes(eventHandlers, handlerName)));
-  });
-});
-
-describe('eventHandlersByType', () => {
-  it('should be keyed by type', () => {
-    assert([
-      'clipboard',
-      'composition',
-      'keyboard',
-      'focus',
-      'form',
-      'mouse',
-      'selection',
-      'touch',
-      'ui',
-      'wheel',
-      'media',
-      'image',
-      'animation',
-      'transition',
-    ].every(type => !!eventHandlersByType[type]));
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getProp-parser-test.js b/node_modules/jsx-ast-utils/__tests__/src/getProp-parser-test.js
deleted file mode 100644
index 9ffb50e..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getProp-parser-test.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import entries from 'object.entries';
-import fromEntries from 'object.fromentries';
-import { getOpeningElement, setParserName, fallbackToBabylon } from '../helper';
-import getProp from '../../src/getProp';
-
-const literal = {
-  source: '<div {...{ id: "foo" }} />',
-  target: '<div id="foo" />',
-  offset: { keyOffset: -6, valueOffset: -7 },
-};
-
-const expression1 = {
-  source: '<div {...{ id }} />',
-  target: '<div id={id} />',
-  offset: { keyOffset: -6, valueOffset: -2 },
-};
-
-const expression2 = {
-  source: '<div {...{ id: `foo${bar}baz` }} />', // eslint-disable-line no-template-curly-in-string
-  target: '<div id={`foo${bar}baz`} />', // eslint-disable-line no-template-curly-in-string
-  offset: { keyOffset: -6, valueOffset: -6 },
-};
-
-describe('getProp', () => {
-  it('should create the correct AST for literal with flow parser', () => {
-    actualTest('flow', literal);
-  });
-  it('should create the correct AST for literal with babel parser', () => {
-    actualTest('babel', literal);
-  });
-  it('should create the correct AST for expression with flow parser (1)', () => {
-    actualTest('flow', expression1);
-  });
-  it('should create the correct AST for expression with babel parser (1)', () => {
-    actualTest('babel', expression1);
-  });
-  it('should create the correct AST for expression with flow parser (2)', () => {
-    actualTest('flow', expression2);
-  });
-  it('should create the correct AST for expression with babel parser (2)', () => {
-    actualTest('babel', expression2);
-  });
-});
-
-function actualTest(parserName, test) {
-  setParserName(parserName);
-  const { source, target, offset } = test;
-  const sourceProps = stripConstructors(getOpeningElement(source).attributes);
-  const targetProps = stripConstructors(getOpeningElement(target).attributes);
-  const prop = 'id';
-  const sourceResult = getProp(sourceProps, prop);
-  const targetResult = getProp(targetProps, prop);
-
-  if (fallbackToBabylon && parserName === 'babel' && test === literal) {
-    // Babylon (node < 6) adds an `extra: null` prop to a literal if it is parsed from a
-    // JSXAttribute, other literals don't get this.
-    sourceResult.value.extra = null;
-  }
-
-  assert.deepStrictEqual(
-    adjustLocations(sourceResult, offset),
-    targetResult,
-  );
-}
-
-function stripConstructors(value) {
-  return JSON.parse(JSON.stringify(value));
-}
-
-function adjustLocations(node, { keyOffset, valueOffset }) {
-  const hasExpression = !!node.value.expression;
-  return {
-    ...adjustNodeLocations(node, {
-      startOffset: keyOffset,
-      endOffset: valueOffset + (hasExpression ? 1 : 0),
-    }),
-    name: adjustNodeLocations(node.name, { startOffset: keyOffset, endOffset: keyOffset }),
-    value: {
-      ...adjustNodeLocations(node.value, {
-        startOffset: valueOffset - (hasExpression ? 1 : 0),
-        endOffset: valueOffset + (hasExpression ? 1 : 0),
-      }),
-      ...(hasExpression
-        ? {
-          expression: adjustLocationsRecursively(
-            node.value.expression,
-            { startOffset: valueOffset, endOffset: valueOffset },
-          ),
-        }
-        : {}
-      ),
-    },
-  };
-}
-
-function adjustNodeLocations(node, { startOffset, endOffset }) {
-  if (!node.loc) return node;
-  const [start, end] = node.range || [];
-  return {
-    ...node,
-    ...(node.start !== undefined ? { start: node.start + startOffset } : {}),
-    ...(node.end !== undefined ? { end: node.end + endOffset } : {}),
-    loc: {
-      ...node.loc,
-      start: {
-        ...node.loc.start,
-        column: node.loc.start.column + startOffset,
-      },
-      end: {
-        ...node.loc.end,
-        column: node.loc.end.column + endOffset,
-      },
-    },
-    ...(node.range !== undefined ? { range: [start + startOffset, end + endOffset] } : {}),
-  };
-}
-
-function adjustLocationsRecursively(node, { startOffset, endOffset }) {
-  if (Array.isArray(node)) {
-    return node.map(x => adjustLocationsRecursively(x, { startOffset, endOffset }));
-  }
-  if (node && typeof node === 'object') {
-    return adjustNodeLocations(
-      mapValues(node, x => adjustLocationsRecursively(x, { startOffset, endOffset })),
-      { startOffset, endOffset },
-    );
-  }
-
-  return node;
-}
-
-function mapValues(o, f) {
-  return fromEntries(entries(o).map(([k, v]) => [k, f(v)]));
-}
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getProp-test.js b/node_modules/jsx-ast-utils/__tests__/src/getProp-test.js
deleted file mode 100644
index 8ba253d..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getProp-test.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import { getOpeningElement, setParserName } from '../helper';
-import getProp from '../../src/getProp';
-
-describe('getProp', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof getProp;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined if no arguments are provided', () => {
-    const expected = undefined;
-    const actual = getProp();
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined if the attribute is absent', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = undefined;
-    const actual = getProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct attribute if the attribute exists', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = 'id';
-    const actual = getProp(props, prop).name.name;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct attribute if the attribute exists in spread', () => {
-    const code = '<div {...{ id: "foo" }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'ID';
-
-    const expected = 'id';
-    const actual = getProp(props, prop).name.name;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return the correct attribute if the attribute exists in spread as an expression', () => {
-    const code = '<div {...{ id }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = 'id';
-    const actual = getProp(props, prop);
-    const actualName = actual.name.name;
-    const actualValue = actual.value.expression.name;
-
-    assert.equal(expected, actualName);
-    assert.equal(expected, actualValue);
-  });
-
-  it('should return the correct attribute if the attribute exists in spread (case sensitive)', () => {
-    const code = '<div {...{ id: "foo" }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = { ignoreCase: false };
-
-    const expected = 'id';
-    const actual = getProp(props, prop, options).name.name;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined if the attribute does not exist in spread (case sensitive)', () => {
-    const code = '<div {...{ id: "foo" }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'ID';
-    const options = { ignoreCase: false };
-
-    const expected = undefined;
-    const actual = getProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined for key in spread', () => {
-    // https://github.com/reactjs/rfcs/pull/107
-    const code = '<div {...{ key }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'key';
-
-    const expected = undefined;
-    const actual = getProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined if the attribute may exist in spread', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = undefined;
-    const actual = getProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should not crash if the spread contains a spread', () => {
-    const code = '<div {...{ ...props }} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    getProp(props, prop);
-  });
-
-  it('should return undefined if the attribute is considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = undefined;
-    const actual = getProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-babelparser-test.js b/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-babelparser-test.js
deleted file mode 100644
index 68abf41..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-babelparser-test.js
+++ /dev/null
@@ -1,522 +0,0 @@
-/* eslint-env mocha */
-/* eslint no-template-curly-in-string: 0 */
-import assert from 'assert';
-import {
-  extractProp,
-  describeIfNotBabylon,
-  changePlugins,
-  setParserName,
-} from '../helper';
-import { getLiteralPropValue } from '../../src/getPropValue';
-
-describe('getLiteralPropValue', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof getLiteralPropValue;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined when not provided with a JSXAttribute', () => {
-    const expected = undefined;
-    const actual = getLiteralPropValue(1);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should not throw error when trying to get value from unknown node type', () => {
-    const prop = {
-      type: 'JSXAttribute',
-      value: {
-        type: 'JSXExpressionContainer',
-      },
-    };
-    let counter = 0;
-    // eslint-disable-next-line no-console
-    const errorOrig = console.error;
-    // eslint-disable-next-line no-console
-    console.error = () => {
-      counter += 1;
-    };
-    let value;
-    assert.doesNotThrow(() => {
-      value = getLiteralPropValue(prop);
-    }, Error);
-
-    assert.equal(null, value);
-    assert.equal(counter, 1);
-    // eslint-disable-next-line no-console
-    console.error = errorOrig;
-  });
-
-  describe('Null', () => {
-    it('should return true when no value is given', () => {
-      const prop = extractProp('<div foo />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Literal', () => {
-    it('should return correct string if value is a string', () => {
-      const prop = extractProp('<div foo="bar" />');
-
-      const expected = 'bar';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct string if value is a string expression', () => {
-      const prop = extractProp('<div foo={"bar"} />');
-
-      const expected = 'bar';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct integer if value is a integer expression', () => {
-      const prop = extractProp('<div foo={1} />');
-
-      const expected = 1;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "true" to boolean type', () => {
-      const prop = extractProp('<div foo="true" />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "TrUE" to boolean type', () => {
-      const prop = extractProp('<div foo="TrUE" />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "false" to boolean type', () => {
-      const prop = extractProp('<div foo="false" />');
-
-      const expected = false;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "FaLsE" to boolean type', () => {
-      const prop = extractProp('<div foo="FaLsE" />');
-
-      const expected = false;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return String null when value is null', () => {
-      const prop = extractProp('<div foo={null} />');
-
-      const expected = 'null';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('JSXElement', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={<bar />} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Identifier', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when identifier is literally `undefined`', () => {
-      const prop = extractProp('<div foo={undefined} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Tagged Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={noop`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Arrow function expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ () => { return "bar"; }} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Function expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ function() { return "bar"; } } />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Logical expression', () => {
-    it('should return null for && operator', () => {
-      const prop = extractProp('<div foo={bar && baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return null for || operator', () => {
-      const prop = extractProp('<div foo={bar || baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Member expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar.baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Call expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar()} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Unary expression', () => {
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-bar} />');
-
-      // -"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-42} />');
-
-      const expected = -42;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+bar} />');
-
-      // +"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+42} />');
-
-      const expected = 42;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with !', () => {
-      const prop = extractProp('<div foo={!bar} />');
-
-      const expected = false; // !"bar" === false
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with ~', () => {
-      const prop = extractProp('<div foo={~bar} />');
-
-      const expected = -1; // ~"bar" === -1
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return true when evaluating `delete foo`', () => {
-      const prop = extractProp('<div foo={delete x} />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `void foo`', () => {
-      const prop = extractProp('<div foo={void x} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    // TODO: We should fix this to check to see if we can evaluate it.
-    it('should return undefined when evaluating `typeof foo`', () => {
-      const prop = extractProp('<div foo={typeof x} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Update expression', () => {
-    it('should correctly evaluate an expression that prefixes with ++', () => {
-      const prop = extractProp('<div foo={++bar} />');
-
-      // ++"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with --', () => {
-      const prop = extractProp('<div foo={--bar} />');
-
-      // --"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with ++', () => {
-      const prop = extractProp('<div foo={bar++} />');
-
-      // "bar"++ => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with --', () => {
-      const prop = extractProp('<div foo={bar--} />');
-
-      // "bar"-- => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('This expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={this} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Conditional expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar ? baz : bam} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Binary expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={1 == "1"} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Object expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ { bar: "baz" } } />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('New expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={new Bar()} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('Array expression', () => {
-    it('should evaluate to correct representation of the the array in props', () => {
-      const prop = extractProp('<div foo={["bar", 42, null]} />');
-
-      const expected = ['bar', 42];
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  it('should return an empty array provided an empty array in props', () => {
-    const prop = extractProp('<div foo={[]} />');
-
-    const expected = [];
-    const actual = getLiteralPropValue(prop);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  describe('Bind expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={::this.handleClick} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describeIfNotBabylon('Typescript', () => {
-    beforeEach(() => {
-      changePlugins(pls => [...pls, 'typescript']);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={bar!} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a deep Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={(bar!)!} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript type coercion', () => {
-      changePlugins(pls => [...pls, 'typescript']);
-      const prop = extractProp('<div foo={bar as any} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-flowparser-test.js b/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-flowparser-test.js
deleted file mode 100644
index ad614e6..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getPropLiteralValue-flowparser-test.js
+++ /dev/null
@@ -1,522 +0,0 @@
-/* eslint-env mocha */
-/* eslint no-template-curly-in-string: 0 */
-import assert from 'assert';
-import {
-  extractProp,
-  describeIfNotBabylon,
-  changePlugins,
-  setParserName,
-} from '../helper';
-import { getLiteralPropValue } from '../../src/getPropValue';
-
-describe('getLiteralPropValue', () => {
-  beforeEach(() => {
-    setParserName('flow');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof getLiteralPropValue;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined when not provided with a JSXAttribute', () => {
-    const expected = undefined;
-    const actual = getLiteralPropValue(1);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should not throw error when trying to get value from unknown node type', () => {
-    const prop = {
-      type: 'JSXAttribute',
-      value: {
-        type: 'JSXExpressionContainer',
-      },
-    };
-    let counter = 0;
-    // eslint-disable-next-line no-console
-    const errorOrig = console.error;
-    // eslint-disable-next-line no-console
-    console.error = () => {
-      counter += 1;
-    };
-    let value;
-    assert.doesNotThrow(() => {
-      value = getLiteralPropValue(prop);
-    }, Error);
-
-    assert.equal(null, value);
-    assert.equal(counter, 1);
-    // eslint-disable-next-line no-console
-    console.error = errorOrig;
-  });
-
-  describe('Null', () => {
-    it('should return true when no value is given', () => {
-      const prop = extractProp('<div foo />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Literal', () => {
-    it('should return correct string if value is a string', () => {
-      const prop = extractProp('<div foo="bar" />');
-
-      const expected = 'bar';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct string if value is a string expression', () => {
-      const prop = extractProp('<div foo={"bar"} />');
-
-      const expected = 'bar';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct integer if value is a integer expression', () => {
-      const prop = extractProp('<div foo={1} />');
-
-      const expected = 1;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "true" to boolean type', () => {
-      const prop = extractProp('<div foo="true" />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "TrUE" to boolean type', () => {
-      const prop = extractProp('<div foo="TrUE" />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "false" to boolean type', () => {
-      const prop = extractProp('<div foo="false" />');
-
-      const expected = false;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "FaLsE" to boolean type', () => {
-      const prop = extractProp('<div foo="FaLsE" />');
-
-      const expected = false;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return String null when value is null', () => {
-      const prop = extractProp('<div foo={null} />');
-
-      const expected = 'null';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('JSXElement', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={<bar />} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Identifier', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when identifier is literally `undefined`', () => {
-      const prop = extractProp('<div foo={undefined} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Tagged Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={noop`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Arrow function expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ () => { return "bar"; }} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Function expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ function() { return "bar"; } } />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Logical expression', () => {
-    it('should return null for && operator', () => {
-      const prop = extractProp('<div foo={bar && baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return null for || operator', () => {
-      const prop = extractProp('<div foo={bar || baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Member expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar.baz} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Call expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar()} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Unary expression', () => {
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-bar} />');
-
-      // -"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-42} />');
-
-      const expected = -42;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+bar} />');
-
-      // +"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+42} />');
-
-      const expected = 42;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with !', () => {
-      const prop = extractProp('<div foo={!bar} />');
-
-      const expected = false; // !"bar" === false
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with ~', () => {
-      const prop = extractProp('<div foo={~bar} />');
-
-      const expected = -1; // ~"bar" === -1
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return true when evaluating `delete foo`', () => {
-      const prop = extractProp('<div foo={delete x} />');
-
-      const expected = true;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `void foo`', () => {
-      const prop = extractProp('<div foo={void x} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    // TODO: We should fix this to check to see if we can evaluate it.
-    it('should return undefined when evaluating `typeof foo`', () => {
-      const prop = extractProp('<div foo={typeof x} />');
-
-      const expected = undefined;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Update expression', () => {
-    it('should correctly evaluate an expression that prefixes with ++', () => {
-      const prop = extractProp('<div foo={++bar} />');
-
-      // ++"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with --', () => {
-      const prop = extractProp('<div foo={--bar} />');
-
-      // --"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with ++', () => {
-      const prop = extractProp('<div foo={bar++} />');
-
-      // "bar"++ => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with --', () => {
-      const prop = extractProp('<div foo={bar--} />');
-
-      // "bar"-- => NaN
-      const expected = true;
-      const actual = Number.isNaN(getLiteralPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('This expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={this} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Conditional expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={bar ? baz : bam} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Binary expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={1 == "1"} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Object expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={ { bar: "baz" } } />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('New expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={new Bar()} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('Array expression', () => {
-    it('should evaluate to correct representation of the the array in props', () => {
-      const prop = extractProp('<div foo={["bar", 42, null]} />');
-
-      const expected = ['bar', 42];
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  it('should return an empty array provided an empty array in props', () => {
-    const prop = extractProp('<div foo={[]} />');
-
-    const expected = [];
-    const actual = getLiteralPropValue(prop);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  describe('Bind expression', () => {
-    it('should return null', () => {
-      const prop = extractProp('<div foo={::this.handleClick} />');
-
-      const expected = 'null';
-      const actual = getLiteralPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describeIfNotBabylon('Typescript', () => {
-    beforeEach(() => {
-      changePlugins(pls => [...pls, 'typescript']);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={bar!} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a deep Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={(bar!)!} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript type coercion', () => {
-      changePlugins(pls => [...pls, 'typescript']);
-      const prop = extractProp('<div foo={bar as any} />');
-
-      const expected = null;
-      const actual = getLiteralPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getPropValue-babelparser-test.js b/node_modules/jsx-ast-utils/__tests__/src/getPropValue-babelparser-test.js
deleted file mode 100644
index 09d3d77..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getPropValue-babelparser-test.js
+++ /dev/null
@@ -1,956 +0,0 @@
-/* eslint-env mocha */
-/* eslint no-template-curly-in-string: 0 */
-import assert from 'assert';
-import {
-  extractProp,
-  changePlugins,
-  fallbackToBabylon,
-  describeIfNotBabylon,
-  setParserName,
-} from '../helper';
-import getPropValue from '../../src/getPropValue';
-
-describe('getPropValue', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof getPropValue;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined when not provided with a JSXAttribute', () => {
-    const expected = undefined;
-    const actual = getPropValue(1);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should not throw error when trying to get value from unknown node type', () => {
-    const prop = {
-      type: 'JSXAttribute',
-      value: {
-        type: 'JSXExpressionContainer',
-      },
-    };
-    let counter = 0;
-    // eslint-disable-next-line no-console
-    const errorOrig = console.error;
-    // eslint-disable-next-line no-console
-    console.error = () => {
-      counter += 1;
-    };
-    let value;
-    assert.doesNotThrow(() => {
-      value = getPropValue(prop);
-    }, Error);
-
-    assert.equal(null, value);
-    assert.equal(counter, 1);
-    // eslint-disable-next-line no-console
-    console.error = errorOrig;
-  });
-
-  describe('Null', () => {
-    it('should return true when no value is given', () => {
-      const prop = extractProp('<div foo />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Literal', () => {
-    it('should return correct string if value is a string', () => {
-      const prop = extractProp('<div foo="bar" />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct string if value is a string expression', () => {
-      const prop = extractProp('<div foo={"bar"} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct integer if value is a integer expression', () => {
-      const prop = extractProp('<div foo={1} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "true" to boolean type', () => {
-      const prop = extractProp('<div foo="true" />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "false" to boolean type', () => {
-      const prop = extractProp('<div foo="false" />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('JSXElement', () => {
-    it('should return correct representation of JSX element as a string', () => {
-      const prop = extractProp('<div foo={<bar />} />');
-
-      const expected = '<bar />';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Identifier', () => {
-    it('should return string representation of variable identifier', () => {
-      const prop = extractProp('<div foo={bar} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when identifier is literally `undefined`', () => {
-      const prop = extractProp('<div foo={undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return String object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={String} />');
-
-      const expected = String;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Array object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Array} />');
-
-      const expected = Array;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Date object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Date} />');
-
-      const expected = Date;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Infinity object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Infinity} />');
-
-      const expected = Infinity;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Math object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Math} />');
-
-      const expected = Math;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Number object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Number} />');
-
-      const expected = Number;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Object object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Object} />');
-
-      const expected = Object;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return template literal with expression type wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz()}`} />');
-
-      const expected = 'bar {CallExpression}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should ignore non-expressions in the template literal', () => {
-      const prop = extractProp('<div foo={`bar ${<baz />}`} />');
-
-      const expected = 'bar ';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Tagged Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={noop`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return template literal with expression type wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz()}`} />');
-
-      const expected = 'bar {CallExpression}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should ignore non-expressions in the template literal', () => {
-      const prop = extractProp('<div foo={noop`bar ${<baz />}`} />');
-
-      const expected = 'bar ';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Arrow function expression', () => {
-    it('should return a function', () => {
-      const prop = extractProp('<div foo={ () => { return "bar"; }} />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-    it('should handle ArrowFunctionExpression as conditional consequent', () => {
-      const prop = extractProp('<div foo={ (true) ? () => null : () => ({})} />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-  });
-
-  describe('Function expression', () => {
-    it('should return a function', () => {
-      const prop = extractProp('<div foo={ function() { return "bar"; } } />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-  });
-
-  describe('Logical expression', () => {
-    it('should correctly infer result of && logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={bar && baz} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `undefined && undefined` ', () => {
-      const prop = extractProp('<div foo={undefined && undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly infer result of || logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={bar || baz} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly infer result of || logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={undefined || baz} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `undefined || undefined` ', () => {
-      const prop = extractProp('<div foo={undefined || undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Member expression', () => {
-    it('should return string representation of form `object.property`', () => {
-      const prop = extractProp('<div foo={bar.baz} />');
-
-      const expected = 'bar.baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of member expression with a nullable member', () => {
-      const runTest = () => {
-        const prop = extractProp('<div foo={bar?.baz} />');
-
-        const expected = 'bar?.baz';
-        const actual = getPropValue(prop);
-
-        assert.equal(expected, actual);
-      };
-
-      if (fallbackToBabylon) {
-        // eslint-disable-next-line no-undef
-        expect(runTest).toThrow();
-      } else {
-        runTest();
-      }
-    });
-  });
-
-  describe('Call expression', () => {
-    it('should return string representation of callee', () => {
-      const prop = extractProp('<div foo={bar()} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of callee', () => {
-      const prop = extractProp('<div foo={bar.call()} />');
-
-      const expected = 'bar.call';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Unary expression', () => {
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-bar} />');
-
-      // -"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-42} />');
-
-      const expected = -42;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+bar} />');
-
-      // +"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+42} />');
-
-      const expected = 42;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with !', () => {
-      const prop = extractProp('<div foo={!bar} />');
-
-      const expected = false; // !"bar" === false
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with ~', () => {
-      const prop = extractProp('<div foo={~bar} />');
-
-      const expected = -1; // ~"bar" === -1
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return true when evaluating `delete foo`', () => {
-      const prop = extractProp('<div foo={delete x} />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `void foo`', () => {
-      const prop = extractProp('<div foo={void x} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    // TODO: We should fix this to check to see if we can evaluate it.
-    it('should return undefined when evaluating `typeof foo`', () => {
-      const prop = extractProp('<div foo={typeof x} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Update expression', () => {
-    it('should correctly evaluate an expression that prefixes with ++', () => {
-      const prop = extractProp('<div foo={++bar} />');
-
-      // ++"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with --', () => {
-      const prop = extractProp('<div foo={--bar} />');
-
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with ++', () => {
-      const prop = extractProp('<div foo={bar++} />');
-
-      // "bar"++ => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with --', () => {
-      const prop = extractProp('<div foo={bar--} />');
-
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('This expression', () => {
-    it('should return string value `this`', () => {
-      const prop = extractProp('<div foo={this} />');
-
-      const expected = 'this';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Conditional expression', () => {
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={bar ? baz : bam} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={undefined ? baz : bam} />');
-
-      const expected = 'bam';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={(1 > 2) ? baz : bam} />');
-
-      const expected = 'bam';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Binary expression', () => {
-    it('should evaluate the `==` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 == "1"} />');
-      const falseProp = extractProp('<div foo={1 == bar} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `!=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 != "2"} />');
-      const falseProp = extractProp('<div foo={1 != "1"} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `===` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 === 1} />');
-      const falseProp = extractProp('<div foo={1 === "1"} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `!==` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 !== "1"} />');
-      const falseProp = extractProp('<div foo={1 !== 1} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 < 2} />');
-      const falseProp = extractProp('<div foo={1 < 0} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `>` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 > 0} />');
-      const falseProp = extractProp('<div foo={1 > 2} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 <= 1} />');
-      const falseProp = extractProp('<div foo={1 <= 0} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `>=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 >= 1} />');
-      const falseProp = extractProp('<div foo={1 >= 2} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<<` operator correctly', () => {
-      const prop = extractProp('<div foo={1 << 2} />');
-
-      const expected = 4;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `>>` operator correctly', () => {
-      const prop = extractProp('<div foo={1 >> 2} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `>>>` operator correctly', () => {
-      const prop = extractProp('<div foo={2 >>> 1} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `+` operator correctly', () => {
-      const prop = extractProp('<div foo={1 + 1} />');
-
-      const expected = 2;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `-` operator correctly', () => {
-      const prop = extractProp('<div foo={1 - 1} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `*` operator correctly', () => {
-      const prop = extractProp('<div foo={10 * 10} />');
-
-      const expected = 100;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `/` operator correctly', () => {
-      const prop = extractProp('<div foo={10 / 2} />');
-
-      const expected = 5;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `%` operator correctly', () => {
-      const prop = extractProp('<div foo={10 % 3} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `|` operator correctly', () => {
-      const prop = extractProp('<div foo={10 | 1} />');
-
-      const expected = 11;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `^` operator correctly', () => {
-      const prop = extractProp('<div foo={10 ^ 1} />');
-
-      const expected = 11;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `&` operator correctly', () => {
-      const prop = extractProp('<div foo={10 & 1} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `in` operator correctly', () => {
-      const prop = extractProp('<div foo={foo in bar} />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `instanceof` operator correctly', () => {
-      const prop = extractProp('<div foo={{} instanceof Object} />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `instanceof` operator when right side is not a function', () => {
-      const prop = extractProp('<div foo={"bar" instanceof Baz} />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Object expression', () => {
-    it('should evaluate to a correct representation of the object in props', () => {
-      const prop = extractProp('<div foo={ { bar: "baz" } } />');
-
-      const expected = { bar: 'baz' };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of the object, ignore spread properties', () => {
-      const prop = extractProp('<div foo={{bar: "baz", ...{baz: "bar", foo: {...{bar: "meh"}}}}} />');
-
-      const expected = { bar: 'baz', baz: 'bar', foo: { bar: 'meh' } };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of the object, ignore spread properties', () => {
-      const prop = extractProp('<div foo={{ pathname: manageRoute, state: {...data}}} />');
-
-      const expected = { pathname: 'manageRoute', state: {} };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('New expression', () => {
-    it('should return a new empty object', () => {
-      const prop = extractProp('<div foo={new Bar()} />');
-
-      const expected = {};
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('Array expression', () => {
-    it('should evaluate to correct representation of the the array in props', () => {
-      const prop = extractProp('<div foo={["bar", 42, null]} />');
-
-      const expected = ['bar', 42, null];
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of an array with spread elements', () => {
-      const prop = extractProp('<div foo={[...this.props.params, bar]} />');
-
-      const expected = [undefined, 'bar'];
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  it('should return an empty array provided an empty array in props', () => {
-    const prop = extractProp('<div foo={[]} />');
-
-    const expected = [];
-    const actual = getPropValue(prop);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  describe('Bind expression', () => {
-    it('should return string representation of bind function call when object is null', () => {
-      const prop = extractProp('<div foo={::this.handleClick} />');
-
-      const expected = 'this.handleClick.bind(this)';
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should return string representation of bind function call when object is not null', () => {
-      const prop = extractProp('<div foo={foo::bar} />');
-
-      const expected = 'bar.bind(foo)';
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should return string representation of bind function call when binding to object properties', () => {
-      const prop = extractProp('<div foo={a.b::c} />');
-      const otherProp = extractProp('<div foo={::a.b.c} />');
-
-      const expected = 'a.b.c.bind(a.b)';
-      const actual = getPropValue(prop);
-
-      const otherExpected = 'a.b.c.bind(a.b)';
-      const otherActual = getPropValue(otherProp);
-
-      assert.deepEqual(expected, actual);
-      assert.deepEqual(otherExpected, otherActual);
-    });
-  });
-
-  describe('Type Cast Expression', () => {
-    it('should throw a parsing error', () => {
-      let counter = 0;
-      // eslint-disable-next-line no-console
-      const warnOrig = console.warn;
-      // eslint-disable-next-line no-console
-      console.warn = () => {
-        counter += 1;
-      };
-      // eslint-disable-next-line no-undef
-      expect(() => {
-        extractProp('<div foo={(this.handleClick: (event: MouseEvent) => void))} />');
-      }).toThrow();
-      assert.equal(counter, 1);
-      // eslint-disable-next-line no-console
-      console.warn = warnOrig;
-    });
-  });
-
-  describeIfNotBabylon('Typescript', () => {
-    beforeEach(() => {
-      changePlugins(pls => [...pls, 'typescript']);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={bar!} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a deep Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={(bar!)!} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript type coercion', () => {
-      changePlugins(pls => [...pls, 'typescript']);
-      const prop = extractProp('<div foo={bar as any} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/getPropValue-flowparser-test.js b/node_modules/jsx-ast-utils/__tests__/src/getPropValue-flowparser-test.js
deleted file mode 100644
index 1bad965..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/getPropValue-flowparser-test.js
+++ /dev/null
@@ -1,938 +0,0 @@
-/* eslint-env mocha */
-/* eslint no-template-curly-in-string: 0 */
-import assert from 'assert';
-import {
-  extractProp,
-  changePlugins,
-  describeIfNotBabylon,
-  setParserName,
-} from '../helper';
-import getPropValue from '../../src/getPropValue';
-
-describe('getPropValue', () => {
-  beforeEach(() => {
-    setParserName('flow');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof getPropValue;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return undefined when not provided with a JSXAttribute', () => {
-    const expected = undefined;
-    const actual = getPropValue(1);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should throw not error when trying to get value from unknown node type', () => {
-    const prop = {
-      type: 'JSXAttribute',
-      value: {
-        type: 'JSXExpressionContainer',
-      },
-    };
-    let counter = 0;
-    // eslint-disable-next-line no-console
-    const errorOrig = console.error;
-    // eslint-disable-next-line no-console
-    console.error = () => {
-      counter += 1;
-    };
-    let value;
-    assert.doesNotThrow(() => {
-      value = getPropValue(prop);
-    }, Error);
-
-    assert.equal(null, value);
-    assert.equal(counter, 1);
-    // eslint-disable-next-line no-console
-    console.error = errorOrig;
-  });
-
-  describe('Null', () => {
-    it('should return true when no value is given', () => {
-      const prop = extractProp('<div foo />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Literal', () => {
-    it('should return correct string if value is a string', () => {
-      const prop = extractProp('<div foo="bar" />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct string if value is a string expression', () => {
-      const prop = extractProp('<div foo={"bar"} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return correct integer if value is a integer expression', () => {
-      const prop = extractProp('<div foo={1} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "true" to boolean type', () => {
-      const prop = extractProp('<div foo="true" />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should convert "false" to boolean type', () => {
-      const prop = extractProp('<div foo="false" />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('JSXElement', () => {
-    it('should return correct representation of JSX element as a string', () => {
-      const prop = extractProp('<div foo={<bar />} />');
-
-      const expected = '<bar />';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Identifier', () => {
-    it('should return string representation of variable identifier', () => {
-      const prop = extractProp('<div foo={bar} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when identifier is literally `undefined`', () => {
-      const prop = extractProp('<div foo={undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return String object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={String} />');
-
-      const expected = String;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Array object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Array} />');
-
-      const expected = Array;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Date object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Date} />');
-
-      const expected = Date;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Infinity object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Infinity} />');
-
-      const expected = Infinity;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Math object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Math} />');
-
-      const expected = Math;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Number object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Number} />');
-
-      const expected = Number;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return Object object when using a reserved JavaScript object', () => {
-      const prop = extractProp('<div foo={Object} />');
-
-      const expected = Object;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return template literal with expression type wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={`bar ${baz()}`} />');
-
-      const expected = 'bar {CallExpression}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should ignore non-expressions in the template literal', () => {
-      const prop = extractProp('<div foo={`bar ${<baz />}`} />');
-
-      const expected = 'bar ';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Tagged Template literal', () => {
-    it('should return template literal with vars wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz}`} />');
-
-      const expected = 'bar {baz}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string "undefined" for expressions that evaluate to undefined', () => {
-      const prop = extractProp('<div foo={noop`bar ${undefined}`} />');
-
-      const expected = 'bar undefined';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return template literal with expression type wrapped in curly braces', () => {
-      const prop = extractProp('<div foo={noop`bar ${baz()}`} />');
-
-      const expected = 'bar {CallExpression}';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should ignore non-expressions in the template literal', () => {
-      const prop = extractProp('<div foo={noop`bar ${<baz />}`} />');
-
-      const expected = 'bar ';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Arrow function expression', () => {
-    it('should return a function', () => {
-      const prop = extractProp('<div foo={ () => { return "bar"; }} />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-    it('should handle ArrowFunctionExpression as conditional consequent', () => {
-      const prop = extractProp('<div foo={ (true) ? () => null : () => ({})} />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-  });
-
-  describe('Function expression', () => {
-    it('should return a function', () => {
-      const prop = extractProp('<div foo={ function() { return "bar"; } } />');
-
-      const expected = 'function';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, typeof actual);
-
-      // For code coverage ¯\_(ツ)_/¯
-      actual();
-    });
-  });
-
-  describe('Logical expression', () => {
-    it('should correctly infer result of && logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={bar && baz} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `undefined && undefined` ', () => {
-      const prop = extractProp('<div foo={undefined && undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly infer result of || logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={bar || baz} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly infer result of || logical expression based on derived values', () => {
-      const prop = extractProp('<div foo={undefined || baz} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `undefined || undefined` ', () => {
-      const prop = extractProp('<div foo={undefined || undefined} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Member expression', () => {
-    it('should return string representation of form `object.property`', () => {
-      const prop = extractProp('<div foo={bar.baz} />');
-
-      const expected = 'bar.baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of member expression with a nullable member', () => {
-      const prop = extractProp('<div foo={bar?.baz} />');
-
-      const expected = 'bar?.baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Call expression', () => {
-    it('should return string representation of callee', () => {
-      const prop = extractProp('<div foo={bar()} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of callee', () => {
-      const prop = extractProp('<div foo={bar.call()} />');
-
-      const expected = 'bar.call';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Unary expression', () => {
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-bar} />');
-
-      // -"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with -', () => {
-      const prop = extractProp('<div foo={-42} />');
-
-      const expected = -42;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+bar} />');
-
-      // +"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with +', () => {
-      const prop = extractProp('<div foo={+42} />');
-
-      const expected = 42;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with !', () => {
-      const prop = extractProp('<div foo={!bar} />');
-
-      const expected = false; // !"bar" === false
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with ~', () => {
-      const prop = extractProp('<div foo={~bar} />');
-
-      const expected = -1; // ~"bar" === -1
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return true when evaluating `delete foo`', () => {
-      const prop = extractProp('<div foo={delete x} />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return undefined when evaluating `void foo`', () => {
-      const prop = extractProp('<div foo={void x} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    // TODO: We should fix this to check to see if we can evaluate it.
-    it('should return undefined when evaluating `typeof foo`', () => {
-      const prop = extractProp('<div foo={typeof x} />');
-
-      const expected = undefined;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Update expression', () => {
-    it('should correctly evaluate an expression that prefixes with ++', () => {
-      const prop = extractProp('<div foo={++bar} />');
-
-      // ++"bar" => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that prefixes with --', () => {
-      const prop = extractProp('<div foo={--bar} />');
-
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with ++', () => {
-      const prop = extractProp('<div foo={bar++} />');
-
-      // "bar"++ => NaN
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-
-    it('should correctly evaluate an expression that suffixes with --', () => {
-      const prop = extractProp('<div foo={bar--} />');
-
-      const expected = true;
-      const actual = Number.isNaN(getPropValue(prop));
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('This expression', () => {
-    it('should return string value `this`', () => {
-      const prop = extractProp('<div foo={this} />');
-
-      const expected = 'this';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Conditional expression', () => {
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={bar ? baz : bam} />');
-
-      const expected = 'baz';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={undefined ? baz : bam} />');
-
-      const expected = 'bam';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the conditional based on the derived values correctly', () => {
-      const prop = extractProp('<div foo={(1 > 2) ? baz : bam} />');
-
-      const expected = 'bam';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Binary expression', () => {
-    it('should evaluate the `==` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 == "1"} />');
-      const falseProp = extractProp('<div foo={1 == bar} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `!=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 != "2"} />');
-      const falseProp = extractProp('<div foo={1 != "1"} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `===` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 === 1} />');
-      const falseProp = extractProp('<div foo={1 === "1"} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `!==` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 !== "1"} />');
-      const falseProp = extractProp('<div foo={1 !== 1} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 < 2} />');
-      const falseProp = extractProp('<div foo={1 < 0} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `>` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 > 0} />');
-      const falseProp = extractProp('<div foo={1 > 2} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 <= 1} />');
-      const falseProp = extractProp('<div foo={1 <= 0} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `>=` operator correctly', () => {
-      const trueProp = extractProp('<div foo={1 >= 1} />');
-      const falseProp = extractProp('<div foo={1 >= 2} />');
-
-      const trueVal = getPropValue(trueProp);
-      const falseVal = getPropValue(falseProp);
-
-      assert.equal(true, trueVal);
-      assert.equal(false, falseVal);
-    });
-
-    it('should evaluate the `<<` operator correctly', () => {
-      const prop = extractProp('<div foo={1 << 2} />');
-
-      const expected = 4;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `>>` operator correctly', () => {
-      const prop = extractProp('<div foo={1 >> 2} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `>>>` operator correctly', () => {
-      const prop = extractProp('<div foo={2 >>> 1} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `+` operator correctly', () => {
-      const prop = extractProp('<div foo={1 + 1} />');
-
-      const expected = 2;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `-` operator correctly', () => {
-      const prop = extractProp('<div foo={1 - 1} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `*` operator correctly', () => {
-      const prop = extractProp('<div foo={10 * 10} />');
-
-      const expected = 100;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `/` operator correctly', () => {
-      const prop = extractProp('<div foo={10 / 2} />');
-
-      const expected = 5;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `%` operator correctly', () => {
-      const prop = extractProp('<div foo={10 % 3} />');
-
-      const expected = 1;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `|` operator correctly', () => {
-      const prop = extractProp('<div foo={10 | 1} />');
-
-      const expected = 11;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `^` operator correctly', () => {
-      const prop = extractProp('<div foo={10 ^ 1} />');
-
-      const expected = 11;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `&` operator correctly', () => {
-      const prop = extractProp('<div foo={10 & 1} />');
-
-      const expected = 0;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `in` operator correctly', () => {
-      const prop = extractProp('<div foo={foo in bar} />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `instanceof` operator correctly', () => {
-      const prop = extractProp('<div foo={{} instanceof Object} />');
-
-      const expected = true;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should evaluate the `instanceof` operator when right side is not a function', () => {
-      const prop = extractProp('<div foo={"bar" instanceof Baz} />');
-
-      const expected = false;
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-
-  describe('Object expression', () => {
-    it('should evaluate to a correct representation of the object in props', () => {
-      const prop = extractProp('<div foo={ { bar: "baz" } } />');
-
-      const expected = { bar: 'baz' };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of the object, ignore spread properties', () => {
-      const prop = extractProp('<div foo={{bar: "baz", ...{baz: "bar", foo: {...{bar: "meh"}}}}} />');
-
-      const expected = { bar: 'baz', baz: 'bar', foo: { bar: 'meh' } };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of the object, ignore spread properties', () => {
-      const prop = extractProp('<div foo={{ pathname: manageRoute, state: {...data}}} />');
-
-      const expected = { pathname: 'manageRoute', state: {} };
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('New expression', () => {
-    it('should return a new empty object', () => {
-      const prop = extractProp('<div foo={new Bar()} />');
-
-      const expected = {};
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describe('Array expression', () => {
-    it('should evaluate to correct representation of the the array in props', () => {
-      const prop = extractProp('<div foo={["bar", 42, null]} />');
-
-      const expected = ['bar', 42, null];
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-
-    it('should evaluate to a correct representation of an array with spread elements', () => {
-      const prop = extractProp('<div foo={[...this.props.params, bar]} />');
-
-      const expected = [undefined, 'bar'];
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  it('should return an empty array provided an empty array in props', () => {
-    const prop = extractProp('<div foo={[]} />');
-
-    const expected = [];
-    const actual = getPropValue(prop);
-
-    assert.deepEqual(expected, actual);
-  });
-
-  describe('Bind expression', () => {
-    it('should return string representation of bind function call when object is null', () => {
-      const prop = extractProp('<div foo={::this.handleClick} />');
-
-      const expected = null;
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(actual, expected);
-    });
-
-    it('should return string representation of bind function call when object is not null', () => {
-      const prop = extractProp('<div foo={foo::bar} />');
-
-      const expected = 'foo';
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(actual, expected);
-    });
-
-    it('should return string representation of bind function call when binding to object properties', () => {
-      const prop = extractProp('<div foo={a.b::c} />');
-      const otherProp = extractProp('<div foo={::a.b.c} />');
-
-      const expected = 'a.b';
-      const actual = getPropValue(prop);
-
-      const otherExpected = null;
-      const otherActual = getPropValue(otherProp);
-
-      assert.deepEqual(actual, expected);
-      assert.deepEqual(otherActual, otherExpected);
-    });
-  });
-
-  describe('Type Cast Expression', () => {
-    it('should return the expression from a type cast', () => {
-      const prop = extractProp('<div foo={(this.handleClick: (event: MouseEvent) => void))} />');
-
-      const expected = 'this.handleClick';
-      const actual = getPropValue(prop);
-
-      assert.deepEqual(expected, actual);
-    });
-  });
-
-  describeIfNotBabylon('Typescript', () => {
-    beforeEach(() => {
-      changePlugins(pls => [...pls, 'typescript']);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={bar!} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a deep Typescript non-null assertion', () => {
-      const prop = extractProp('<div foo={(bar!)!} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-
-    it('should return string representation of variable identifier wrapped in a Typescript type coercion', () => {
-      changePlugins(pls => [...pls, 'typescript']);
-      const prop = extractProp('<div foo={bar as any} />');
-
-      const expected = 'bar';
-      const actual = getPropValue(prop);
-
-      assert.equal(expected, actual);
-    });
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/hasProp-test.js b/node_modules/jsx-ast-utils/__tests__/src/hasProp-test.js
deleted file mode 100644
index e759322..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/hasProp-test.js
+++ /dev/null
@@ -1,412 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import { getOpeningElement, setParserName } from '../helper';
-import hasProp, { hasAnyProp, hasEveryProp } from '../../src/hasProp';
-
-describe('hasProp', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof hasProp;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if no arguments are provided', () => {
-    const expected = false;
-    const actual = hasProp();
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is absent', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = false;
-    const actual = hasProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the prop exists', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = true;
-    const actual = hasProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the prop may exist in spread loose mode', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      spreadStrict: false,
-    };
-
-    const expected = true;
-    const actual = hasProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = false;
-    const actual = hasProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-});
-
-describe('hasAnyProp tests', () => {
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof hasAnyProp;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if no arguments are provided', () => {
-    const expected = false;
-    const actual = hasAnyProp();
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is absent', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = false;
-    const actual = hasAnyProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are absent in array', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = ['id', 'className'];
-
-    const expected = false;
-    const actual = hasAnyProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are absent in space delimited string', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = 'id className';
-
-    const expected = false;
-    const actual = hasAnyProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the prop exists', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = true;
-    const actual = hasAnyProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if any prop exists in array', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['className', 'id'];
-
-    const expected = true;
-    const actual = hasAnyProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if any prop exists in space delimited string', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'className id';
-
-    const expected = true;
-    const actual = hasAnyProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the prop may exist in spread loose mode', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      spreadStrict: false,
-    };
-
-    const expected = true;
-    const actual = hasAnyProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if any prop may exist in spread loose mode', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['id', 'className'];
-    const options = {
-      spreadStrict: false,
-    };
-
-    const expected = true;
-    const actual = hasAnyProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = false;
-    const actual = hasAnyProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['id', 'iD', 'className'];
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = false;
-    const actual = hasAnyProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-});
-
-describe('hasEveryProp tests', () => {
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof hasEveryProp;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if no arguments are provided', () => {
-    const expected = true;
-    const actual = hasEveryProp();
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is absent', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = false;
-    const actual = hasEveryProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if any props are absent in array', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = ['id', 'className'];
-
-    const expected = false;
-    const actual = hasEveryProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are absent in array', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = ['id', 'className'];
-
-    const expected = false;
-    const actual = hasEveryProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if any props are absent in space delimited string', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = 'id className';
-
-    const expected = false;
-    const actual = hasEveryProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are absent in space delimited string', () => {
-    const code = '<div />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const propsToCheck = 'id className';
-
-    const expected = false;
-    const actual = hasEveryProp(props, propsToCheck);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the prop exists', () => {
-    const code = '<div id="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if all props exist in array', () => {
-    const code = '<div id="foo" className="box" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['className', 'id'];
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if all props exist in space delimited string', () => {
-    const code = '<div id="foo" className="box" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'className id';
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if the props may exist in spread loose mode', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      spreadStrict: false,
-    };
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if all props may exist in spread loose mode', () => {
-    const code = '<div {...props} />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['id', 'className'];
-    const options = {
-      spreadStrict: false,
-    };
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if the prop is considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = 'id';
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = false;
-    const actual = hasEveryProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return false if all props are considered absent in case-sensitive mode', () => {
-    const code = '<div ID="foo" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['id', 'iD', 'className'];
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = false;
-    const actual = hasEveryProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return true if all props are considered present in case-sensitive mode', () => {
-    const code = '<div ID="foo" className="box" />';
-    const node = getOpeningElement(code);
-    const { attributes: props } = node;
-    const prop = ['ID', 'className'];
-    const options = {
-      ignoreCase: false,
-    };
-
-    const expected = true;
-    const actual = hasEveryProp(props, prop, options);
-
-    assert.equal(expected, actual);
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/index-test.js b/node_modules/jsx-ast-utils/__tests__/src/index-test.js
deleted file mode 100644
index a9b7417..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/index-test.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/* eslint-env mocha */
-import fs from 'fs';
-import path from 'path';
-import assert from 'assert';
-import core from '../../src/index';
-
-const src = fs.readdirSync(path.resolve(__dirname, '../../src'))
-  .filter(f => f.indexOf('.js') >= 0)
-  .map(f => path.basename(f, '.js'));
-
-describe('main export', () => {
-  it('should export an object', () => {
-    const expected = 'object';
-    const actual = typeof core;
-
-    assert.equal(expected, actual);
-  });
-
-  src.filter(f => f !== 'index').forEach((f) => {
-    it(`should export ${f}`, () => {
-      assert.equal(
-        core[f],
-        require(path.join('../../src/', f)).default // eslint-disable-line
-      );
-    });
-
-    it(`should export ${f} from root`, () => {
-      const file = `${f}.js`;
-      const expected = true;
-      const actual = fs.statSync(path.join(path.resolve('.'), file)).isFile();
-
-      assert.equal(expected, actual);
-    });
-  });
-});
diff --git a/node_modules/jsx-ast-utils/__tests__/src/propName-test.js b/node_modules/jsx-ast-utils/__tests__/src/propName-test.js
deleted file mode 100644
index f90856c..0000000
--- a/node_modules/jsx-ast-utils/__tests__/src/propName-test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* eslint-env mocha */
-import assert from 'assert';
-import { extractProp, setParserName } from '../helper';
-import propName from '../../src/propName';
-
-describe('propName', () => {
-  beforeEach(() => {
-    setParserName('babel');
-  });
-  it('should export a function', () => {
-    const expected = 'function';
-    const actual = typeof propName;
-
-    assert.equal(expected, actual);
-  });
-
-  it('should throw an error if the argument is missing', () => {
-    assert.throws(() => { propName(); }, Error);
-  });
-
-  it('should throw an error if the argument not a JSX node', () => {
-    assert.throws(() => { propName({ a: 'foo' }); }, Error);
-  });
-
-  it('should return correct name for normal prop', () => {
-    const prop = extractProp('<div foo="bar" />');
-
-    const expected = 'foo';
-    const actual = propName(prop);
-
-    assert.equal(expected, actual);
-  });
-
-  it('should return correct name for namespaced prop', () => {
-    const prop = extractProp('<div foo:bar="baz" />', 'foo:bar');
-
-    const expected = 'foo:bar';
-    const actual = propName(prop);
-
-    assert.equal(expected, actual);
-  });
-});
diff --git a/node_modules/jsx-ast-utils/elementType.js b/node_modules/jsx-ast-utils/elementType.js
deleted file mode 100644
index 96873ac..0000000
--- a/node_modules/jsx-ast-utils/elementType.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').elementType; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/eventHandlers.js b/node_modules/jsx-ast-utils/eventHandlers.js
deleted file mode 100644
index b5d7f62..0000000
--- a/node_modules/jsx-ast-utils/eventHandlers.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').eventHandlers; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/eventHandlersByType.js b/node_modules/jsx-ast-utils/eventHandlersByType.js
deleted file mode 100644
index b7a0c42..0000000
--- a/node_modules/jsx-ast-utils/eventHandlersByType.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').eventHandlersByType; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/getLiteralPropValue.js b/node_modules/jsx-ast-utils/getLiteralPropValue.js
deleted file mode 100644
index efc5c8d..0000000
--- a/node_modules/jsx-ast-utils/getLiteralPropValue.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').getLiteralPropValue; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/getProp.js b/node_modules/jsx-ast-utils/getProp.js
deleted file mode 100644
index e523c2c..0000000
--- a/node_modules/jsx-ast-utils/getProp.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').getProp; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/getPropValue.js b/node_modules/jsx-ast-utils/getPropValue.js
deleted file mode 100644
index 883a37c..0000000
--- a/node_modules/jsx-ast-utils/getPropValue.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').getPropValue; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/hasAnyProp.js b/node_modules/jsx-ast-utils/hasAnyProp.js
deleted file mode 100644
index 2a88420..0000000
--- a/node_modules/jsx-ast-utils/hasAnyProp.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').hasAnyProp; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/hasEveryProp.js b/node_modules/jsx-ast-utils/hasEveryProp.js
deleted file mode 100644
index 338f569..0000000
--- a/node_modules/jsx-ast-utils/hasEveryProp.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').hasEveryProp; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/hasProp.js b/node_modules/jsx-ast-utils/hasProp.js
deleted file mode 100644
index 0f1cd04..0000000
--- a/node_modules/jsx-ast-utils/hasProp.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').hasProp; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/lib/elementType.js b/node_modules/jsx-ast-utils/lib/elementType.js
deleted file mode 100644
index c346e7e..0000000
--- a/node_modules/jsx-ast-utils/lib/elementType.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = elementType;
-function resolveMemberExpressions() {
-  var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-  if (object.type === 'JSXMemberExpression') {
-    return resolveMemberExpressions(object.object, object.property) + '.' + property.name;
-  }
-
-  return object.name + '.' + property.name;
-}
-
-/**
- * Returns the tagName associated with a JSXElement.
- */
-function elementType() {
-  var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-  var name = node.name;
-
-
-  if (!name) {
-    throw new Error('The argument provided is not a JSXElement node.');
-  }
-
-  if (name.type === 'JSXMemberExpression') {
-    var _name$object = name.object,
-        object = _name$object === undefined ? {} : _name$object,
-        _name$property = name.property,
-        property = _name$property === undefined ? {} : _name$property;
-
-    return resolveMemberExpressions(object, property);
-  }
-
-  if (name.type === 'JSXNamespacedName') {
-    return name.namespace.name + ':' + name.name.name;
-  }
-
-  return node.name.name;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/eventHandlers.js b/node_modules/jsx-ast-utils/lib/eventHandlers.js
deleted file mode 100644
index 7c5c205..0000000
--- a/node_modules/jsx-ast-utils/lib/eventHandlers.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-/**
- * Common event handlers for JSX element event binding.
- */
-
-var eventHandlersByType = {
-  clipboard: ['onCopy', 'onCut', 'onPaste'],
-  composition: ['onCompositionEnd', 'onCompositionStart', 'onCompositionUpdate'],
-  keyboard: ['onKeyDown', 'onKeyPress', 'onKeyUp'],
-  focus: ['onFocus', 'onBlur'],
-  form: ['onChange', 'onInput', 'onSubmit'],
-  mouse: ['onClick', 'onContextMenu', 'onDblClick', 'onDoubleClick', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp'],
-  selection: ['onSelect'],
-  touch: ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'],
-  ui: ['onScroll'],
-  wheel: ['onWheel'],
-  media: ['onAbort', 'onCanPlay', 'onCanPlayThrough', 'onDurationChange', 'onEmptied', 'onEncrypted', 'onEnded', 'onError', 'onLoadedData', 'onLoadedMetadata', 'onLoadStart', 'onPause', 'onPlay', 'onPlaying', 'onProgress', 'onRateChange', 'onSeeked', 'onSeeking', 'onStalled', 'onSuspend', 'onTimeUpdate', 'onVolumeChange', 'onWaiting'],
-  image: ['onLoad', 'onError'],
-  animation: ['onAnimationStart', 'onAnimationEnd', 'onAnimationIteration'],
-  transition: ['onTransitionEnd']
-};
-
-var eventHandlers = Object.keys(eventHandlersByType).reduce(function (accumulator, type) {
-  return accumulator.concat(eventHandlersByType[type]);
-}, []);
-
-exports.default = eventHandlers;
-exports.eventHandlersByType = eventHandlersByType;
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/getProp.js b/node_modules/jsx-ast-utils/lib/getProp.js
deleted file mode 100644
index a5e9d1e..0000000
--- a/node_modules/jsx-ast-utils/lib/getProp.js
+++ /dev/null
@@ -1,88 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
-
-exports.default = getProp;
-
-var _propName = require('./propName');
-
-var _propName2 = _interopRequireDefault(_propName);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var DEFAULT_OPTIONS = {
-  ignoreCase: true
-};
-
-/**
- * Returns the JSXAttribute itself or undefined, indicating the prop
- * is not present on the JSXOpeningElement.
- *
- */
-function getProp() {
-  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_OPTIONS;
-
-  function getName(name) {
-    return options.ignoreCase ? name.toUpperCase() : name;
-  }
-  var propToFind = getName(prop);
-  function isPropToFind(property) {
-    return property.type === 'Property' && property.key.type === 'Identifier' && propToFind === getName(property.key.name);
-  }
-
-  var foundAttribute = props.find(function (attribute) {
-    // If the props contain a spread prop, try to find the property in the object expression.
-    if (attribute.type === 'JSXSpreadAttribute') {
-      return attribute.argument.type === 'ObjectExpression' && propToFind !== getName('key') // https://github.com/reactjs/rfcs/pull/107
-      && attribute.argument.properties.some(isPropToFind);
-    }
-
-    return propToFind === getName((0, _propName2.default)(attribute));
-  });
-
-  if (foundAttribute && foundAttribute.type === 'JSXSpreadAttribute') {
-    return propertyToJSXAttribute(foundAttribute.argument.properties.find(isPropToFind));
-  }
-
-  return foundAttribute;
-}
-
-function propertyToJSXAttribute(node) {
-  var key = node.key,
-      value = node.value;
-
-  return _extends({
-    type: 'JSXAttribute',
-    name: _extends({ type: 'JSXIdentifier', name: key.name }, getBaseProps(key)),
-    value: value.type === 'Literal' ? value : _extends({ type: 'JSXExpressionContainer', expression: value }, getBaseProps(value))
-  }, getBaseProps(node));
-}
-
-function getBaseProps(_ref) {
-  var start = _ref.start,
-      end = _ref.end,
-      loc = _ref.loc,
-      range = _ref.range;
-
-  return _extends({
-    loc: getBaseLocation(loc)
-  }, start !== undefined ? { start: start } : {}, end !== undefined ? { end: end } : {}, range !== undefined ? { range: range } : {});
-}
-
-function getBaseLocation(_ref2) {
-  var start = _ref2.start,
-      end = _ref2.end,
-      source = _ref2.source,
-      filename = _ref2.filename;
-
-  return _extends({
-    start: start,
-    end: end
-  }, source !== undefined ? { source: source } : {}, filename !== undefined ? { filename: filename } : {});
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/getPropValue.js b/node_modules/jsx-ast-utils/lib/getPropValue.js
deleted file mode 100644
index de4062f..0000000
--- a/node_modules/jsx-ast-utils/lib/getPropValue.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = getPropValue;
-exports.getLiteralPropValue = getLiteralPropValue;
-
-var _values = require('./values');
-
-var _values2 = _interopRequireDefault(_values);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var extractValue = function extractValue(attribute, extractor) {
-  if (attribute && attribute.type === 'JSXAttribute') {
-    if (attribute.value === null) {
-      // Null valued attributes imply truthiness.
-      // For example: <div aria-hidden />
-      // See: https://facebook.github.io/react/docs/jsx-in-depth.html#boolean-attributes
-      return true;
-    }
-
-    return extractor(attribute.value);
-  }
-
-  return undefined;
-};
-
-/**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return the most *closely* associated
- * value with the intention of the JSX.
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
-function getPropValue(attribute) {
-  return extractValue(attribute, _values2.default);
-}
-
-/**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return a value only if we can extract
- * a literal value from its attribute (i.e. values that have generic
- * types in JavaScript - strings, numbers, booleans, etc.)
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
-function getLiteralPropValue(attribute) {
-  return extractValue(attribute, _values.getLiteralValue);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/hasProp.js b/node_modules/jsx-ast-utils/lib/hasProp.js
deleted file mode 100644
index b54326b..0000000
--- a/node_modules/jsx-ast-utils/lib/hasProp.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = hasProp;
-exports.hasAnyProp = hasAnyProp;
-exports.hasEveryProp = hasEveryProp;
-
-var _propName = require('./propName');
-
-var _propName2 = _interopRequireDefault(_propName);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var DEFAULT_OPTIONS = {
-  spreadStrict: true,
-  ignoreCase: true
-};
-
-/**
- * Returns boolean indicating whether an prop exists on the props
- * property of a JSX element node.
- */
-function hasProp() {
-  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_OPTIONS;
-
-  var propToCheck = options.ignoreCase ? prop.toUpperCase() : prop;
-
-  return props.some(function (attribute) {
-    // If the props contain a spread prop, then refer to strict param.
-    if (attribute.type === 'JSXSpreadAttribute') {
-      return !options.spreadStrict;
-    }
-
-    var currentProp = options.ignoreCase ? (0, _propName2.default)(attribute).toUpperCase() : (0, _propName2.default)(attribute);
-
-    return propToCheck === currentProp;
-  });
-}
-
-/**
- * Given the props on a node and a list of props to check, this returns a boolean
- * indicating if any of them exist on the node.
- */
-function hasAnyProp() {
-  var nodeProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
-  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_OPTIONS;
-
-  var propsToCheck = typeof props === 'string' ? props.split(' ') : props;
-
-  return propsToCheck.some(function (prop) {
-    return hasProp(nodeProps, prop, options);
-  });
-}
-
-/**
- * Given the props on a node and a list of props to check, this returns a boolean
- * indicating if all of them exist on the node
- */
-function hasEveryProp() {
-  var nodeProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
-  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_OPTIONS;
-
-  var propsToCheck = typeof props === 'string' ? props.split(' ') : props;
-
-  return propsToCheck.every(function (prop) {
-    return hasProp(nodeProps, prop, options);
-  });
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/index.js b/node_modules/jsx-ast-utils/lib/index.js
deleted file mode 100644
index 2fe1119..0000000
--- a/node_modules/jsx-ast-utils/lib/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-var _hasProp = require('./hasProp');
-
-var _hasProp2 = _interopRequireDefault(_hasProp);
-
-var _elementType = require('./elementType');
-
-var _elementType2 = _interopRequireDefault(_elementType);
-
-var _eventHandlers = require('./eventHandlers');
-
-var _eventHandlers2 = _interopRequireDefault(_eventHandlers);
-
-var _getProp = require('./getProp');
-
-var _getProp2 = _interopRequireDefault(_getProp);
-
-var _getPropValue = require('./getPropValue');
-
-var _getPropValue2 = _interopRequireDefault(_getPropValue);
-
-var _propName = require('./propName');
-
-var _propName2 = _interopRequireDefault(_propName);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-module.exports = {
-  hasProp: _hasProp2.default,
-  hasAnyProp: _hasProp.hasAnyProp,
-  hasEveryProp: _hasProp.hasEveryProp,
-  elementType: _elementType2.default,
-  eventHandlers: _eventHandlers2.default,
-  eventHandlersByType: _eventHandlers.eventHandlersByType,
-  getProp: _getProp2.default,
-  getPropValue: _getPropValue2.default,
-  getLiteralPropValue: _getPropValue.getLiteralPropValue,
-  propName: _propName2.default
-};
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/propName.js b/node_modules/jsx-ast-utils/lib/propName.js
deleted file mode 100644
index 5057886..0000000
--- a/node_modules/jsx-ast-utils/lib/propName.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = propName;
-/**
- * Returns the name of the prop given the JSXAttribute object.
- */
-function propName() {
-  var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
-  if (!prop.type || prop.type !== 'JSXAttribute') {
-    throw new Error('The prop must be a JSXAttribute collected by the AST parser.');
-  }
-
-  if (prop.name.type === 'JSXNamespacedName') {
-    return prop.name.namespace.name + ':' + prop.name.name.name;
-  }
-
-  return prop.name.name;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/JSXElement.js b/node_modules/jsx-ast-utils/lib/values/JSXElement.js
deleted file mode 100644
index 4fa044a..0000000
--- a/node_modules/jsx-ast-utils/lib/values/JSXElement.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromJSXElement;
-/**
- * Extractor function for a JSXElement type value node.
- *
- * Returns self-closing element with correct name.
- */
-function extractValueFromJSXElement(value) {
-  return "<" + value.openingElement.name.name + " />";
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/Literal.js b/node_modules/jsx-ast-utils/lib/values/Literal.js
deleted file mode 100644
index 4233c82..0000000
--- a/node_modules/jsx-ast-utils/lib/values/Literal.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromLiteral;
-/**
- * Extractor function for a Literal type value node.
- *
- * @param - value - AST Value object with type `Literal`
- * @returns { String|Boolean } - The extracted value converted to correct type.
- */
-function extractValueFromLiteral(value) {
-  var extractedValue = value.value;
-
-
-  var normalizedStringValue = typeof extractedValue === 'string' && extractedValue.toLowerCase();
-  if (normalizedStringValue === 'true') {
-    return true;
-  }
-
-  if (normalizedStringValue === 'false') {
-    return false;
-  }
-
-  return extractedValue;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/ArrayExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/ArrayExpression.js
deleted file mode 100644
index 4e89af4..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/ArrayExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromArrayExpression;
-/**
- * Extractor function for an ArrayExpression type value node.
- * An array expression is an expression with [] syntax.
- *
- * @returns - An array of the extracted elements.
- */
-function extractValueFromArrayExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return value.elements.map(function (element) {
-    return getValue(element);
-  });
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/BinaryExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/BinaryExpression.js
deleted file mode 100644
index a58ea54..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/BinaryExpression.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromBinaryExpression;
-/**
- * Extractor function for a BinaryExpression type value node.
- * A binary expression has a left and right side separated by an operator
- * such as `a + b`.
- *
- * @param - value - AST Value object with type `BinaryExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromBinaryExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var operator = value.operator,
-      left = value.left,
-      right = value.right;
-
-  var leftVal = getValue(left);
-  var rightVal = getValue(right);
-
-  switch (operator) {
-    case '==':
-      return leftVal == rightVal; // eslint-disable-line
-    case '!=':
-      return leftVal != rightVal; // eslint-disable-line
-    case '===':
-      return leftVal === rightVal;
-    case '!==':
-      return leftVal !== rightVal;
-    case '<':
-      return leftVal < rightVal;
-    case '<=':
-      return leftVal <= rightVal;
-    case '>':
-      return leftVal > rightVal;
-    case '>=':
-      return leftVal >= rightVal;
-    case '<<':
-      return leftVal << rightVal; // eslint-disable-line no-bitwise
-    case '>>':
-      return leftVal >> rightVal; // eslint-disable-line no-bitwise
-    case '>>>':
-      return leftVal >>> rightVal; // eslint-disable-line no-bitwise
-    case '+':
-      return leftVal + rightVal;
-    case '-':
-      return leftVal - rightVal;
-    case '*':
-      return leftVal * rightVal;
-    case '/':
-      return leftVal / rightVal;
-    case '%':
-      return leftVal % rightVal;
-    case '|':
-      return leftVal | rightVal; // eslint-disable-line no-bitwise
-    case '^':
-      return leftVal ^ rightVal; // eslint-disable-line no-bitwise
-    case '&':
-      return leftVal & rightVal; // eslint-disable-line no-bitwise
-    case 'in':
-      try {
-        return leftVal in rightVal;
-      } catch (err) {
-        return false;
-      }
-    case 'instanceof':
-      if (typeof rightVal !== 'function') {
-        return false;
-      }
-      return leftVal instanceof rightVal;
-    default:
-      return undefined;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/BindExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/BindExpression.js
deleted file mode 100644
index ab27192..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/BindExpression.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromBindExpression;
-/**
- * Extractor function for a BindExpression type value node.
- * A bind expression looks like `::this.foo`
- * This will return `this.foo.bind(this)` as the value to indicate its existence,
- * since we can not execute the function this.foo.bind(this) in a static environment.
- *
- * @param - value - AST Value object with type `BindExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromBindExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var callee = getValue(value.callee);
-
-  // If value.object === null, the callee must be a MemberExpression.
-  // https://github.com/babel/babylon/blob/master/ast/spec.md#bindexpression
-  var object = value.object === null ? getValue(value.callee.object) : getValue(value.object);
-
-  if (value.object && value.object.property) {
-    return object + '.' + callee + '.bind(' + object + ')';
-  }
-
-  return callee + '.bind(' + object + ')';
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/CallExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/CallExpression.js
deleted file mode 100644
index 5ff172b..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/CallExpression.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromCallExpression;
-/**
- * Extractor function for a CallExpression type value node.
- * A call expression looks like `bar()`
- * This will return `bar` as the value to indicate its existence,
- * since we can not execute the function bar in a static environment.
- *
- * @param - value - AST Value object with type `CallExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromCallExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return getValue(value.callee);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/ConditionalExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/ConditionalExpression.js
deleted file mode 100644
index 04d67ae..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/ConditionalExpression.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromConditionalExpression;
-/**
- * Extractor function for a ConditionalExpression type value node.
- *
- * @param - value - AST Value object with type `ConditionalExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromConditionalExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var test = value.test,
-      alternate = value.alternate,
-      consequent = value.consequent;
-
-
-  return getValue(test) ? getValue(consequent) : getValue(alternate);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/FunctionExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/FunctionExpression.js
deleted file mode 100644
index 15db995..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/FunctionExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromFunctionExpression;
-/**
- * Extractor function for a FunctionExpression type value node.
- * Statically, we can't execute the given function, so just return a function
- * to indicate that the value is present.
- *
- * @param - value - AST Value object with type `FunctionExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromFunctionExpression(value) {
-  return function () {
-    return value;
-  };
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/Identifier.js b/node_modules/jsx-ast-utils/lib/values/expressions/Identifier.js
deleted file mode 100644
index bea6c94..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/Identifier.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromIdentifier;
-var JS_RESERVED = {
-  Array: Array,
-  Date: Date,
-  Infinity: Infinity,
-  Math: Math,
-  Number: Number,
-  Object: Object,
-  String: String,
-  undefined: undefined
-};
-
-/**
- * Extractor function for a Identifier type value node.
- * An Identifier is usually a reference to a variable.
- * Just return variable name to determine its existence.
- *
- * @param - value - AST Value object with type `Identifier`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromIdentifier(value) {
-  var name = value.name;
-
-
-  if (Object.hasOwnProperty.call(JS_RESERVED, name)) {
-    return JS_RESERVED[name];
-  }
-
-  return name;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/LogicalExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/LogicalExpression.js
deleted file mode 100644
index 8456287..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/LogicalExpression.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromLogicalExpression;
-/**
- * Extractor function for a LogicalExpression type value node.
- * A logical expression is `a && b` or `a || b`, so we evaluate both sides
- * and return the extracted value of the expression.
- *
- * @param - value - AST Value object with type `LogicalExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromLogicalExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var operator = value.operator,
-      left = value.left,
-      right = value.right;
-
-  var leftVal = getValue(left);
-  var rightVal = getValue(right);
-
-  return operator === '&&' ? leftVal && rightVal : leftVal || rightVal;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/MemberExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/MemberExpression.js
deleted file mode 100644
index e16618a..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/MemberExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromMemberExpression;
-/**
- * Extractor function for a MemberExpression type value node.
- * A member expression is accessing a property on an object `obj.property`.
- *
- * @param - value - AST Value object with type `MemberExpression`
- * @returns - The extracted value converted to correct type
- *  and maintaing `obj.property` convention.
- */
-function extractValueFromMemberExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return getValue(value.object) + '.' + getValue(value.property);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/NewExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/NewExpression.js
deleted file mode 100644
index 3accd6f..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/NewExpression.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromNewExpression;
-/**
- * Extractor function for a NewExpression type value node.
- * A new expression instantiates an object with `new` keyword.
- *
- * @returns - an empty object.
- */
-function extractValueFromNewExpression() {
-  return new Object(); // eslint-disable-line
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js
deleted file mode 100644
index eb0904e..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/ObjectExpression.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromObjectExpression;
-
-var _object = require('object.assign');
-
-var _object2 = _interopRequireDefault(_object);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Extractor function for an ObjectExpression type value node.
- * An object expression is using {}.
- *
- * @returns - a representation of the object
- */
-function extractValueFromObjectExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return value.properties.reduce(function (obj, property) {
-    var object = (0, _object2.default)({}, obj);
-    // Support types: SpreadProperty and ExperimentalSpreadProperty
-    if (/^(?:Experimental)?Spread(?:Property|Element)$/.test(property.type)) {
-      if (property.argument.type === 'ObjectExpression') {
-        return (0, _object2.default)(object, extractValueFromObjectExpression(property.argument));
-      }
-    } else {
-      object[getValue(property.key)] = getValue(property.value);
-    }
-    return object;
-  }, {});
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/OptionalMemberExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/OptionalMemberExpression.js
deleted file mode 100644
index 4fd1e82..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/OptionalMemberExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromOptionalMemberExpression;
-/**
- * Extractor function for a OptionalMemberExpression type value node.
- * A member expression is accessing a property on an object `obj.property`.
- *
- * @param - value - AST Value object with type `OptionalMemberExpression`
- * @returns - The extracted value converted to correct type
- *  and maintaing `obj?.property` convention.
- */
-function extractValueFromOptionalMemberExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return getValue(value.object) + '?.' + getValue(value.property);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/SpreadElement.js b/node_modules/jsx-ast-utils/lib/values/expressions/SpreadElement.js
deleted file mode 100644
index cee0d48..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/SpreadElement.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromSpreadElement;
-/**
- * Extractor function for a SpreadElement type value node.
- * We can't statically evaluate an array spread, so just return
- * undefined.
- *
- * @param - value - AST Value object with type `SpreadElement`
- * @returns - An prototypeless object.
- */
-function extractValueFromSpreadElement() {
-  return undefined;
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/TaggedTemplateExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/TaggedTemplateExpression.js
deleted file mode 100644
index 9402746..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/TaggedTemplateExpression.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromTaggedTemplateExpression;
-
-var _TemplateLiteral = require('./TemplateLiteral');
-
-var _TemplateLiteral2 = _interopRequireDefault(_TemplateLiteral);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Returns the string value of a tagged template literal object.
- * Redirects the bulk of the work to `TemplateLiteral`.
- */
-function extractValueFromTaggedTemplateExpression(value) {
-  return (0, _TemplateLiteral2.default)(value.quasi);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/TemplateLiteral.js b/node_modules/jsx-ast-utils/lib/values/expressions/TemplateLiteral.js
deleted file mode 100644
index 4314ea0..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/TemplateLiteral.js
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromTemplateLiteral;
-/**
- * Returns the string value of a template literal object.
- * Tries to build it as best as it can based on the passed
- * prop. For instance `This is a ${prop}` will return 'This is a {prop}'.
- *
- * If the template literal builds to undefined (`${undefined}`), then
- * this should return "undefined".
- */
-function extractValueFromTemplateLiteral(value) {
-  var quasis = value.quasis,
-      expressions = value.expressions;
-
-  var partitions = quasis.concat(expressions);
-
-  return partitions.sort(function (a, b) {
-    return a.start - b.start;
-  }).reduce(function (raw, part) {
-    var type = part.type;
-
-    if (type === 'TemplateElement') {
-      return raw + part.value.raw;
-    }
-
-    if (type === 'Identifier') {
-      return part.name === 'undefined' ? '' + raw + part.name : raw + '{' + part.name + '}';
-    }
-
-    if (type.indexOf('Expression') > -1) {
-      return raw + '{' + type + '}';
-    }
-
-    return raw;
-  }, '');
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/ThisExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/ThisExpression.js
deleted file mode 100644
index 185de46..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/ThisExpression.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromThisExpression;
-/**
- * Extractor function for a ThisExpression type value node.
- * A this expression is using `this` as an identifier.
- *
- * @returns - 'this' as a string.
- */
-function extractValueFromThisExpression() {
-  return 'this';
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/TypeCastExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/TypeCastExpression.js
deleted file mode 100644
index b1a19f8..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/TypeCastExpression.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromTypeCastExpression;
-/**
- * Extractor function for a TypeCastExpression type value node.
- * A type cast expression looks like `(this.handleClick: (event: MouseEvent) => void))`
- * This will return the expression `this.handleClick`.
- *
- * @param - value - AST Value object with type `TypeCastExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromTypeCastExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  return getValue(value.expression);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/UnaryExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/UnaryExpression.js
deleted file mode 100644
index 318ec8c..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/UnaryExpression.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromUnaryExpression;
-/**
- * Extractor function for a UnaryExpression type value node.
- * A unary expression is an expression with a unary operator.
- * For example, !"foobar" will evaluate to false, so this will return false.
- *
- * @param - value - AST Value object with type `UnaryExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromUnaryExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var operator = value.operator,
-      argument = value.argument;
-
-
-  switch (operator) {
-    case '-':
-      return -getValue(argument);
-    case '+':
-      return +getValue(argument); // eslint-disable-line no-implicit-coercion
-    case '!':
-      return !getValue(argument);
-    case '~':
-      return ~getValue(argument); // eslint-disable-line no-bitwise
-    case 'delete':
-      // I believe delete statements evaluate to true.
-      return true;
-    case 'typeof':
-    case 'void':
-    default:
-      return undefined;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/UpdateExpression.js b/node_modules/jsx-ast-utils/lib/values/expressions/UpdateExpression.js
deleted file mode 100644
index a3a9c72..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/UpdateExpression.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extractValueFromUpdateExpression;
-/**
- * Extractor function for an UpdateExpression type value node.
- * An update expression is an expression with an update operator.
- * For example, foo++ will evaluate to foo + 1.
- *
- * @param - value - AST Value object with type `UpdateExpression`
- * @returns - The extracted value converted to correct type.
- */
-function extractValueFromUpdateExpression(value) {
-  // eslint-disable-next-line global-require
-  var getValue = require('./index.js').default;
-  var operator = value.operator,
-      argument = value.argument,
-      prefix = value.prefix;
-
-
-  var val = getValue(argument);
-
-  switch (operator) {
-    case '++':
-      return prefix ? ++val : val++; // eslint-disable-line no-plusplus
-    case '--':
-      return prefix ? --val : val--; // eslint-disable-line no-plusplus
-    default:
-      return undefined;
-  }
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/expressions/index.js b/node_modules/jsx-ast-utils/lib/values/expressions/index.js
deleted file mode 100644
index b70ea24..0000000
--- a/node_modules/jsx-ast-utils/lib/values/expressions/index.js
+++ /dev/null
@@ -1,244 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = extract;
-exports.extractLiteral = extractLiteral;
-
-var _object = require('object.assign');
-
-var _object2 = _interopRequireDefault(_object);
-
-var _Literal = require('../Literal');
-
-var _Literal2 = _interopRequireDefault(_Literal);
-
-var _JSXElement = require('../JSXElement');
-
-var _JSXElement2 = _interopRequireDefault(_JSXElement);
-
-var _Identifier = require('./Identifier');
-
-var _Identifier2 = _interopRequireDefault(_Identifier);
-
-var _TaggedTemplateExpression = require('./TaggedTemplateExpression');
-
-var _TaggedTemplateExpression2 = _interopRequireDefault(_TaggedTemplateExpression);
-
-var _TemplateLiteral = require('./TemplateLiteral');
-
-var _TemplateLiteral2 = _interopRequireDefault(_TemplateLiteral);
-
-var _FunctionExpression = require('./FunctionExpression');
-
-var _FunctionExpression2 = _interopRequireDefault(_FunctionExpression);
-
-var _LogicalExpression = require('./LogicalExpression');
-
-var _LogicalExpression2 = _interopRequireDefault(_LogicalExpression);
-
-var _MemberExpression = require('./MemberExpression');
-
-var _MemberExpression2 = _interopRequireDefault(_MemberExpression);
-
-var _OptionalMemberExpression = require('./OptionalMemberExpression');
-
-var _OptionalMemberExpression2 = _interopRequireDefault(_OptionalMemberExpression);
-
-var _CallExpression = require('./CallExpression');
-
-var _CallExpression2 = _interopRequireDefault(_CallExpression);
-
-var _UnaryExpression = require('./UnaryExpression');
-
-var _UnaryExpression2 = _interopRequireDefault(_UnaryExpression);
-
-var _ThisExpression = require('./ThisExpression');
-
-var _ThisExpression2 = _interopRequireDefault(_ThisExpression);
-
-var _ConditionalExpression = require('./ConditionalExpression');
-
-var _ConditionalExpression2 = _interopRequireDefault(_ConditionalExpression);
-
-var _BinaryExpression = require('./BinaryExpression');
-
-var _BinaryExpression2 = _interopRequireDefault(_BinaryExpression);
-
-var _ObjectExpression = require('./ObjectExpression');
-
-var _ObjectExpression2 = _interopRequireDefault(_ObjectExpression);
-
-var _NewExpression = require('./NewExpression');
-
-var _NewExpression2 = _interopRequireDefault(_NewExpression);
-
-var _UpdateExpression = require('./UpdateExpression');
-
-var _UpdateExpression2 = _interopRequireDefault(_UpdateExpression);
-
-var _ArrayExpression = require('./ArrayExpression');
-
-var _ArrayExpression2 = _interopRequireDefault(_ArrayExpression);
-
-var _BindExpression = require('./BindExpression');
-
-var _BindExpression2 = _interopRequireDefault(_BindExpression);
-
-var _SpreadElement = require('./SpreadElement');
-
-var _SpreadElement2 = _interopRequireDefault(_SpreadElement);
-
-var _TypeCastExpression = require('./TypeCastExpression');
-
-var _TypeCastExpression2 = _interopRequireDefault(_TypeCastExpression);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// Composition map of types to their extractor functions.
-var TYPES = {
-  Identifier: _Identifier2.default,
-  Literal: _Literal2.default,
-  JSXElement: _JSXElement2.default,
-  TaggedTemplateExpression: _TaggedTemplateExpression2.default,
-  TemplateLiteral: _TemplateLiteral2.default,
-  ArrowFunctionExpression: _FunctionExpression2.default,
-  FunctionExpression: _FunctionExpression2.default,
-  LogicalExpression: _LogicalExpression2.default,
-  MemberExpression: _MemberExpression2.default,
-  OptionalMemberExpression: _OptionalMemberExpression2.default,
-  CallExpression: _CallExpression2.default,
-  UnaryExpression: _UnaryExpression2.default,
-  ThisExpression: _ThisExpression2.default,
-  ConditionalExpression: _ConditionalExpression2.default,
-  BinaryExpression: _BinaryExpression2.default,
-  ObjectExpression: _ObjectExpression2.default,
-  NewExpression: _NewExpression2.default,
-  UpdateExpression: _UpdateExpression2.default,
-  ArrayExpression: _ArrayExpression2.default,
-  BindExpression: _BindExpression2.default,
-  SpreadElement: _SpreadElement2.default,
-  TypeCastExpression: _TypeCastExpression2.default
-};
-
-var noop = function noop() {
-  return null;
-};
-
-var errorMessage = function errorMessage(expression) {
-  return 'The prop value with an expression type of ' + expression + ' could not be resolved. Please file issue to get this fixed immediately.';
-};
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *all* possible expression types.
- *
- * @param - value - AST Value object with type `JSXExpressionContainer`
- * @returns The extracted value.
- */
-function extract(value) {
-  // Value will not have the expression property when we recurse.
-  // The type for expression on ArrowFunctionExpression is a boolean.
-  var expression = void 0;
-  if (typeof value.expression !== 'boolean' && value.expression) {
-    expression = value.expression; // eslint-disable-line prefer-destructuring
-  } else {
-    expression = value;
-  }
-  var _expression = expression,
-      type = _expression.type;
-
-
-  while (type === 'TSNonNullExpression' || type === 'TSAsExpression') {
-    var _expression2 = expression;
-    type = _expression2.type;
-
-    if (expression.expression) {
-      var _expression3 = expression;
-      expression = _expression3.expression;
-    }
-  }
-
-  if (TYPES[type] === undefined) {
-    // eslint-disable-next-line no-console
-    console.error(errorMessage(type));
-    return null;
-  }
-
-  return TYPES[type](expression);
-}
-
-// Composition map of types to their extractor functions to handle literals.
-var LITERAL_TYPES = (0, _object2.default)({}, TYPES, {
-  Literal: function Literal(value) {
-    var extractedVal = TYPES.Literal.call(undefined, value);
-    var isNull = extractedVal === null;
-    // This will be convention for attributes that have null
-    // value explicitly defined (<div prop={null} /> maps to 'null').
-    return isNull ? 'null' : extractedVal;
-  },
-  Identifier: function Identifier(value) {
-    var isUndefined = TYPES.Identifier.call(undefined, value) === undefined;
-    return isUndefined ? undefined : null;
-  },
-  JSXElement: noop,
-  ArrowFunctionExpression: noop,
-  FunctionExpression: noop,
-  LogicalExpression: noop,
-  MemberExpression: noop,
-  OptionalMemberExpression: noop,
-  CallExpression: noop,
-  UnaryExpression: function UnaryExpression(value) {
-    var extractedVal = TYPES.UnaryExpression.call(undefined, value);
-    return extractedVal === undefined ? null : extractedVal;
-  },
-  UpdateExpression: function UpdateExpression(value) {
-    var extractedVal = TYPES.UpdateExpression.call(undefined, value);
-    return extractedVal === undefined ? null : extractedVal;
-  },
-  ThisExpression: noop,
-  ConditionalExpression: noop,
-  BinaryExpression: noop,
-  ObjectExpression: noop,
-  NewExpression: noop,
-  ArrayExpression: function ArrayExpression(value) {
-    var extractedVal = TYPES.ArrayExpression.call(undefined, value);
-    return extractedVal.filter(function (val) {
-      return val !== null;
-    });
-  },
-  BindExpression: noop,
-  SpreadElement: noop,
-  TSNonNullExpression: noop,
-  TSAsExpression: noop,
-  TypeCastExpression: noop
-});
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *some* possible types that map to literals.
- *
- * @param - value - AST Value object with type `JSXExpressionContainer`
- * @returns The extracted value.
- */
-function extractLiteral(value) {
-  // Value will not have the expression property when we recurse.
-  var expression = value.expression || value;
-  var type = expression.type;
-
-
-  if (LITERAL_TYPES[type] === undefined) {
-    // eslint-disable-next-line no-console
-    console.error(errorMessage(type));
-    return null;
-  }
-
-  return LITERAL_TYPES[type](expression);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/lib/values/index.js b/node_modules/jsx-ast-utils/lib/values/index.js
deleted file mode 100644
index c675771..0000000
--- a/node_modules/jsx-ast-utils/lib/values/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = getValue;
-exports.getLiteralValue = getLiteralValue;
-
-var _object = require('object.assign');
-
-var _object2 = _interopRequireDefault(_object);
-
-var _Literal = require('./Literal');
-
-var _Literal2 = _interopRequireDefault(_Literal);
-
-var _JSXElement = require('./JSXElement');
-
-var _JSXElement2 = _interopRequireDefault(_JSXElement);
-
-var _expressions = require('./expressions');
-
-var _expressions2 = _interopRequireDefault(_expressions);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-// Composition map of types to their extractor functions.
-var TYPES = {
-  Literal: _Literal2.default,
-  JSXElement: _JSXElement2.default,
-  JSXExpressionContainer: _expressions2.default
-};
-
-// Composition map of types to their extractor functions to handle literals.
-var LITERAL_TYPES = (0, _object2.default)({}, TYPES, {
-  JSXElement: function JSXElement() {
-    return null;
-  },
-  JSXExpressionContainer: _expressions.extractLiteral
-});
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *all* possible types.
- *
- * @param value - AST Value object on a JSX Attribute.
- */
-function getValue(value) {
-  return TYPES[value.type](value);
-}
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *some* possible types that map to literals.
- *
- * @param value - AST Value object on a JSX Attribute.
- */
-function getLiteralValue(value) {
-  return LITERAL_TYPES[value.type](value);
-}
\ No newline at end of file
diff --git a/node_modules/jsx-ast-utils/package.json b/node_modules/jsx-ast-utils/package.json
deleted file mode 100644
index 94d282a..0000000
--- a/node_modules/jsx-ast-utils/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
-  "name": "jsx-ast-utils",
-  "version": "2.2.3",
-  "description": "AST utility module for statically analyzing JSX",
-  "main": "lib/index.js",
-  "scripts": {
-    "prebuild": "rimraf lib",
-    "build": "babel src --out-dir lib",
-    "prepublish": "not-in-publish || (npm test && npm run build)",
-    "coveralls": "cat ./reports/lcov.info | coveralls",
-    "lint": "eslint .",
-    "pretest": "npm run lint",
-    "test": "npm run tests-only --",
-    "tests-only": "jest --coverage",
-    "test:watch": "npm test -- --watch"
-  },
-  "devDependencies": {
-    "@babel/parser": "^7.4.4",
-    "babel-cli": "^6.26.0",
-    "babel-core": "^6.26.3",
-    "babel-eslint": "^10.0.2",
-    "babel-jest": "^20.0.3",
-    "babel-plugin-transform-object-rest-spread": "^6.26.0",
-    "babel-plugin-transform-replace-object-assign": "^1.0.0",
-    "babel-polyfill": "^6.26.0",
-    "babel-preset-env": "^1.7.0",
-    "babylon": "^6.18.0",
-    "coveralls": "^3.0.4",
-    "eslint": "^6.0.0",
-    "eslint-config-airbnb-base": "^13.1.0",
-    "eslint-plugin-import": "^2.17.2",
-    "flow-parser": "^0.102.0",
-    "in-publish": "^2.0.0",
-    "jest": "^20.0.4",
-    "jest-cli": "^20.0.4",
-    "object.entries": "^1.1.0",
-    "object.fromentries": "^2.0.1",
-    "rimraf": "^2.6.3"
-  },
-  "engines": {
-    "node": ">=4.0"
-  },
-  "keywords": [
-    "jsx",
-    "ast",
-    "lint",
-    "eslint"
-  ],
-  "author": "Ethan Cohen",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/evcohen/jsx-ast-utils"
-  },
-  "license": "MIT",
-  "jest": {
-    "coverageReporters": [
-      "lcov"
-    ],
-    "coverageDirectory": "reports",
-    "testPathIgnorePatterns": [
-      "/node_modules/",
-      "helper.js"
-    ]
-  },
-  "dependencies": {
-    "array-includes": "^3.0.3",
-    "object.assign": "^4.1.0"
-  }
-}
diff --git a/node_modules/jsx-ast-utils/propName.js b/node_modules/jsx-ast-utils/propName.js
deleted file mode 100644
index 361a52b..0000000
--- a/node_modules/jsx-ast-utils/propName.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib').propName; // eslint-disable-line import/no-unresolved
diff --git a/node_modules/jsx-ast-utils/src/elementType.js b/node_modules/jsx-ast-utils/src/elementType.js
deleted file mode 100644
index 2f87a19..0000000
--- a/node_modules/jsx-ast-utils/src/elementType.js
+++ /dev/null
@@ -1,29 +0,0 @@
-function resolveMemberExpressions(object = {}, property = {}) {
-  if (object.type === 'JSXMemberExpression') {
-    return `${resolveMemberExpressions(object.object, object.property)}.${property.name}`;
-  }
-
-  return `${object.name}.${property.name}`;
-}
-
-/**
- * Returns the tagName associated with a JSXElement.
- */
-export default function elementType(node = {}) {
-  const { name } = node;
-
-  if (!name) {
-    throw new Error('The argument provided is not a JSXElement node.');
-  }
-
-  if (name.type === 'JSXMemberExpression') {
-    const { object = {}, property = {} } = name;
-    return resolveMemberExpressions(object, property);
-  }
-
-  if (name.type === 'JSXNamespacedName') {
-    return `${name.namespace.name}:${name.name.name}`;
-  }
-
-  return node.name.name;
-}
diff --git a/node_modules/jsx-ast-utils/src/eventHandlers.js b/node_modules/jsx-ast-utils/src/eventHandlers.js
deleted file mode 100644
index 45baf36..0000000
--- a/node_modules/jsx-ast-utils/src/eventHandlers.js
+++ /dev/null
@@ -1,113 +0,0 @@
-
-/**
- * Common event handlers for JSX element event binding.
- */
-
-const eventHandlersByType = {
-  clipboard: [
-    'onCopy',
-    'onCut',
-    'onPaste',
-  ],
-  composition: [
-    'onCompositionEnd',
-    'onCompositionStart',
-    'onCompositionUpdate',
-  ],
-  keyboard: [
-    'onKeyDown',
-    'onKeyPress',
-    'onKeyUp',
-  ],
-  focus: [
-    'onFocus',
-    'onBlur',
-  ],
-  form: [
-    'onChange',
-    'onInput',
-    'onSubmit',
-  ],
-  mouse: [
-    'onClick',
-    'onContextMenu',
-    'onDblClick',
-    'onDoubleClick',
-    'onDrag',
-    'onDragEnd',
-    'onDragEnter',
-    'onDragExit',
-    'onDragLeave',
-    'onDragOver',
-    'onDragStart',
-    'onDrop',
-    'onMouseDown',
-    'onMouseEnter',
-    'onMouseLeave',
-    'onMouseMove',
-    'onMouseOut',
-    'onMouseOver',
-    'onMouseUp',
-  ],
-  selection: [
-    'onSelect',
-  ],
-  touch: [
-    'onTouchCancel',
-    'onTouchEnd',
-    'onTouchMove',
-    'onTouchStart',
-  ],
-  ui: [
-    'onScroll',
-  ],
-  wheel: [
-    'onWheel',
-  ],
-  media: [
-    'onAbort',
-    'onCanPlay',
-    'onCanPlayThrough',
-    'onDurationChange',
-    'onEmptied',
-    'onEncrypted',
-    'onEnded',
-    'onError',
-    'onLoadedData',
-    'onLoadedMetadata',
-    'onLoadStart',
-    'onPause',
-    'onPlay',
-    'onPlaying',
-    'onProgress',
-    'onRateChange',
-    'onSeeked',
-    'onSeeking',
-    'onStalled',
-    'onSuspend',
-    'onTimeUpdate',
-    'onVolumeChange',
-    'onWaiting',
-  ],
-  image: [
-    'onLoad',
-    'onError',
-  ],
-  animation: [
-    'onAnimationStart',
-    'onAnimationEnd',
-    'onAnimationIteration',
-  ],
-  transition: [
-    'onTransitionEnd',
-  ],
-};
-
-const eventHandlers = Object.keys(eventHandlersByType).reduce(
-  (accumulator, type) => accumulator.concat(eventHandlersByType[type]),
-  [],
-);
-
-export default eventHandlers;
-
-export { eventHandlersByType };
diff --git a/node_modules/jsx-ast-utils/src/getProp.js b/node_modules/jsx-ast-utils/src/getProp.js
deleted file mode 100644
index b34f635..0000000
--- a/node_modules/jsx-ast-utils/src/getProp.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import propName from './propName';
-
-const DEFAULT_OPTIONS = {
-  ignoreCase: true,
-};
-
-/**
- * Returns the JSXAttribute itself or undefined, indicating the prop
- * is not present on the JSXOpeningElement.
- *
- */
-export default function getProp(props = [], prop = '', options = DEFAULT_OPTIONS) {
-  function getName(name) { return options.ignoreCase ? name.toUpperCase() : name; }
-  const propToFind = getName(prop);
-  function isPropToFind(property) {
-    return property.type === 'Property'
-      && property.key.type === 'Identifier'
-      && propToFind === getName(property.key.name);
-  }
-
-  const foundAttribute = props.find((attribute) => {
-    // If the props contain a spread prop, try to find the property in the object expression.
-    if (attribute.type === 'JSXSpreadAttribute') {
-      return attribute.argument.type === 'ObjectExpression'
-        && propToFind !== getName('key') // https://github.com/reactjs/rfcs/pull/107
-        && attribute.argument.properties.some(isPropToFind);
-    }
-
-    return propToFind === getName(propName(attribute));
-  });
-
-  if (foundAttribute && foundAttribute.type === 'JSXSpreadAttribute') {
-    return propertyToJSXAttribute(foundAttribute.argument.properties.find(isPropToFind));
-  }
-
-  return foundAttribute;
-}
-
-function propertyToJSXAttribute(node) {
-  const { key, value } = node;
-  return {
-    type: 'JSXAttribute',
-    name: { type: 'JSXIdentifier', name: key.name, ...getBaseProps(key) },
-    value: value.type === 'Literal'
-      ? value
-      : { type: 'JSXExpressionContainer', expression: value, ...getBaseProps(value) },
-    ...getBaseProps(node),
-  };
-}
-
-function getBaseProps({
-  start,
-  end,
-  loc,
-  range,
-}) {
-  return {
-    loc: getBaseLocation(loc),
-    ...(start !== undefined ? { start } : {}),
-    ...(end !== undefined ? { end } : {}),
-    ...(range !== undefined ? { range } : {}),
-  };
-}
-
-function getBaseLocation({
-  start,
-  end,
-  source,
-  filename,
-}) {
-  return {
-    start,
-    end,
-    ...(source !== undefined ? { source } : {}),
-    ...(filename !== undefined ? { filename } : {}),
-  };
-}
diff --git a/node_modules/jsx-ast-utils/src/getPropValue.js b/node_modules/jsx-ast-utils/src/getPropValue.js
deleted file mode 100644
index 80b35ad..0000000
--- a/node_modules/jsx-ast-utils/src/getPropValue.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import getValue, { getLiteralValue } from './values';
-
-const extractValue = (attribute, extractor) => {
-  if (attribute && attribute.type === 'JSXAttribute') {
-    if (attribute.value === null) {
-      // Null valued attributes imply truthiness.
-      // For example: <div aria-hidden />
-      // See: https://facebook.github.io/react/docs/jsx-in-depth.html#boolean-attributes
-      return true;
-    }
-
-    return extractor(attribute.value);
-  }
-
-  return undefined;
-};
-
-/**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return the most *closely* associated
- * value with the intention of the JSX.
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
-export default function getPropValue(attribute) {
-  return extractValue(attribute, getValue);
-}
-
-/**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return a value only if we can extract
- * a literal value from its attribute (i.e. values that have generic
- * types in JavaScript - strings, numbers, booleans, etc.)
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
-export function getLiteralPropValue(attribute) {
-  return extractValue(attribute, getLiteralValue);
-}
diff --git a/node_modules/jsx-ast-utils/src/hasProp.js b/node_modules/jsx-ast-utils/src/hasProp.js
deleted file mode 100644
index e9e4058..0000000
--- a/node_modules/jsx-ast-utils/src/hasProp.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import propName from './propName';
-
-const DEFAULT_OPTIONS = {
-  spreadStrict: true,
-  ignoreCase: true,
-};
-
-/**
- * Returns boolean indicating whether an prop exists on the props
- * property of a JSX element node.
- */
-export default function hasProp(props = [], prop = '', options = DEFAULT_OPTIONS) {
-  const propToCheck = options.ignoreCase ? prop.toUpperCase() : prop;
-
-  return props.some((attribute) => {
-    // If the props contain a spread prop, then refer to strict param.
-    if (attribute.type === 'JSXSpreadAttribute') {
-      return !options.spreadStrict;
-    }
-
-    const currentProp = options.ignoreCase
-      ? propName(attribute).toUpperCase()
-      : propName(attribute);
-
-    return propToCheck === currentProp;
-  });
-}
-
-/**
- * Given the props on a node and a list of props to check, this returns a boolean
- * indicating if any of them exist on the node.
- */
-export function hasAnyProp(nodeProps = [], props = [], options = DEFAULT_OPTIONS) {
-  const propsToCheck = typeof props === 'string' ? props.split(' ') : props;
-
-  return propsToCheck.some(prop => hasProp(nodeProps, prop, options));
-}
-
-/**
- * Given the props on a node and a list of props to check, this returns a boolean
- * indicating if all of them exist on the node
- */
-export function hasEveryProp(nodeProps = [], props = [], options = DEFAULT_OPTIONS) {
-  const propsToCheck = typeof props === 'string' ? props.split(' ') : props;
-
-  return propsToCheck.every(prop => hasProp(nodeProps, prop, options));
-}
diff --git a/node_modules/jsx-ast-utils/src/index.js b/node_modules/jsx-ast-utils/src/index.js
deleted file mode 100644
index 6814764..0000000
--- a/node_modules/jsx-ast-utils/src/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import hasProp, { hasAnyProp, hasEveryProp } from './hasProp';
-import elementType from './elementType';
-import eventHandlers, { eventHandlersByType } from './eventHandlers';
-import getProp from './getProp';
-import getPropValue, { getLiteralPropValue } from './getPropValue';
-import propName from './propName';
-
-module.exports = {
-  hasProp,
-  hasAnyProp,
-  hasEveryProp,
-  elementType,
-  eventHandlers,
-  eventHandlersByType,
-  getProp,
-  getPropValue,
-  getLiteralPropValue,
-  propName,
-};
diff --git a/node_modules/jsx-ast-utils/src/propName.js b/node_modules/jsx-ast-utils/src/propName.js
deleted file mode 100644
index 0fc61e7..0000000
--- a/node_modules/jsx-ast-utils/src/propName.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Returns the name of the prop given the JSXAttribute object.
- */
-export default function propName(prop = {}) {
-  if (!prop.type || prop.type !== 'JSXAttribute') {
-    throw new Error('The prop must be a JSXAttribute collected by the AST parser.');
-  }
-
-  if (prop.name.type === 'JSXNamespacedName') {
-    return `${prop.name.namespace.name}:${prop.name.name.name}`;
-  }
-
-  return prop.name.name;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/JSXElement.js b/node_modules/jsx-ast-utils/src/values/JSXElement.js
deleted file mode 100644
index 20cc455..0000000
--- a/node_modules/jsx-ast-utils/src/values/JSXElement.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Extractor function for a JSXElement type value node.
- *
- * Returns self-closing element with correct name.
- */
-export default function extractValueFromJSXElement(value) {
-  return `<${value.openingElement.name.name} />`;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/Literal.js b/node_modules/jsx-ast-utils/src/values/Literal.js
deleted file mode 100644
index a860657..0000000
--- a/node_modules/jsx-ast-utils/src/values/Literal.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Extractor function for a Literal type value node.
- *
- * @param - value - AST Value object with type `Literal`
- * @returns { String|Boolean } - The extracted value converted to correct type.
- */
-export default function extractValueFromLiteral(value) {
-  const { value: extractedValue } = value;
-
-  const normalizedStringValue = typeof extractedValue === 'string' && extractedValue.toLowerCase();
-  if (normalizedStringValue === 'true') {
-    return true;
-  }
-
-  if (normalizedStringValue === 'false') {
-    return false;
-  }
-
-  return extractedValue;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/ArrayExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/ArrayExpression.js
deleted file mode 100644
index c5230a5..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/ArrayExpression.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Extractor function for an ArrayExpression type value node.
- * An array expression is an expression with [] syntax.
- *
- * @returns - An array of the extracted elements.
- */
-export default function extractValueFromArrayExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return value.elements.map(element => getValue(element));
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/BinaryExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/BinaryExpression.js
deleted file mode 100644
index cab0cbb..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/BinaryExpression.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Extractor function for a BinaryExpression type value node.
- * A binary expression has a left and right side separated by an operator
- * such as `a + b`.
- *
- * @param - value - AST Value object with type `BinaryExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromBinaryExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const { operator, left, right } = value;
-  const leftVal = getValue(left);
-  const rightVal = getValue(right);
-
-  switch (operator) {
-    case '==':
-      return leftVal == rightVal; // eslint-disable-line
-    case '!=':
-      return leftVal != rightVal; // eslint-disable-line
-    case '===':
-      return leftVal === rightVal;
-    case '!==':
-      return leftVal !== rightVal;
-    case '<':
-      return leftVal < rightVal;
-    case '<=':
-      return leftVal <= rightVal;
-    case '>':
-      return leftVal > rightVal;
-    case '>=':
-      return leftVal >= rightVal;
-    case '<<':
-      return leftVal << rightVal; // eslint-disable-line no-bitwise
-    case '>>':
-      return leftVal >> rightVal; // eslint-disable-line no-bitwise
-    case '>>>':
-      return leftVal >>> rightVal; // eslint-disable-line no-bitwise
-    case '+':
-      return leftVal + rightVal;
-    case '-':
-      return leftVal - rightVal;
-    case '*':
-      return leftVal * rightVal;
-    case '/':
-      return leftVal / rightVal;
-    case '%':
-      return leftVal % rightVal;
-    case '|':
-      return leftVal | rightVal; // eslint-disable-line no-bitwise
-    case '^':
-      return leftVal ^ rightVal; // eslint-disable-line no-bitwise
-    case '&':
-      return leftVal & rightVal; // eslint-disable-line no-bitwise
-    case 'in':
-      try {
-        return leftVal in rightVal;
-      } catch (err) {
-        return false;
-      }
-    case 'instanceof':
-      if (typeof rightVal !== 'function') {
-        return false;
-      }
-      return leftVal instanceof rightVal;
-    default:
-      return undefined;
-  }
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/BindExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/BindExpression.js
deleted file mode 100644
index 811ee42..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/BindExpression.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Extractor function for a BindExpression type value node.
- * A bind expression looks like `::this.foo`
- * This will return `this.foo.bind(this)` as the value to indicate its existence,
- * since we can not execute the function this.foo.bind(this) in a static environment.
- *
- * @param - value - AST Value object with type `BindExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromBindExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const callee = getValue(value.callee);
-
-  // If value.object === null, the callee must be a MemberExpression.
-  // https://github.com/babel/babylon/blob/master/ast/spec.md#bindexpression
-  const object = value.object === null ? getValue(value.callee.object) : getValue(value.object);
-
-  if (value.object && value.object.property) {
-    return `${object}.${callee}.bind(${object})`;
-  }
-
-  return `${callee}.bind(${object})`;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/CallExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/CallExpression.js
deleted file mode 100644
index 6cdeba9..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/CallExpression.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Extractor function for a CallExpression type value node.
- * A call expression looks like `bar()`
- * This will return `bar` as the value to indicate its existence,
- * since we can not execute the function bar in a static environment.
- *
- * @param - value - AST Value object with type `CallExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromCallExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return getValue(value.callee);
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/ConditionalExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/ConditionalExpression.js
deleted file mode 100644
index 4a854e5..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/ConditionalExpression.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * Extractor function for a ConditionalExpression type value node.
- *
- * @param - value - AST Value object with type `ConditionalExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromConditionalExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const {
-    test,
-    alternate,
-    consequent,
-  } = value;
-
-  return getValue(test) ? getValue(consequent) : getValue(alternate);
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/FunctionExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/FunctionExpression.js
deleted file mode 100644
index 5f0c6c5..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/FunctionExpression.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Extractor function for a FunctionExpression type value node.
- * Statically, we can't execute the given function, so just return a function
- * to indicate that the value is present.
- *
- * @param - value - AST Value object with type `FunctionExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromFunctionExpression(value) {
-  return () => value;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/Identifier.js b/node_modules/jsx-ast-utils/src/values/expressions/Identifier.js
deleted file mode 100644
index c421575..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/Identifier.js
+++ /dev/null
@@ -1,28 +0,0 @@
-const JS_RESERVED = {
-  Array,
-  Date,
-  Infinity,
-  Math,
-  Number,
-  Object,
-  String,
-  undefined,
-};
-
-/**
- * Extractor function for a Identifier type value node.
- * An Identifier is usually a reference to a variable.
- * Just return variable name to determine its existence.
- *
- * @param - value - AST Value object with type `Identifier`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromIdentifier(value) {
-  const { name } = value;
-
-  if (Object.hasOwnProperty.call(JS_RESERVED, name)) {
-    return JS_RESERVED[name];
-  }
-
-  return name;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/LogicalExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/LogicalExpression.js
deleted file mode 100644
index 5b06cd0..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/LogicalExpression.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * Extractor function for a LogicalExpression type value node.
- * A logical expression is `a && b` or `a || b`, so we evaluate both sides
- * and return the extracted value of the expression.
- *
- * @param - value - AST Value object with type `LogicalExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromLogicalExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const { operator, left, right } = value;
-  const leftVal = getValue(left);
-  const rightVal = getValue(right);
-
-  return operator === '&&' ? leftVal && rightVal : leftVal || rightVal;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/MemberExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/MemberExpression.js
deleted file mode 100644
index 38e31fe..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/MemberExpression.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Extractor function for a MemberExpression type value node.
- * A member expression is accessing a property on an object `obj.property`.
- *
- * @param - value - AST Value object with type `MemberExpression`
- * @returns - The extracted value converted to correct type
- *  and maintaing `obj.property` convention.
- */
-export default function extractValueFromMemberExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return `${getValue(value.object)}.${getValue(value.property)}`;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/NewExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/NewExpression.js
deleted file mode 100644
index 5926a57..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/NewExpression.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Extractor function for a NewExpression type value node.
- * A new expression instantiates an object with `new` keyword.
- *
- * @returns - an empty object.
- */
-export default function extractValueFromNewExpression() {
-  return new Object(); // eslint-disable-line
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/ObjectExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/ObjectExpression.js
deleted file mode 100644
index a52e807..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/ObjectExpression.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import assign from 'object.assign';
-
-/**
- * Extractor function for an ObjectExpression type value node.
- * An object expression is using {}.
- *
- * @returns - a representation of the object
- */
-export default function extractValueFromObjectExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return value.properties.reduce((obj, property) => {
-    const object = Object.assign({}, obj);
-    // Support types: SpreadProperty and ExperimentalSpreadProperty
-    if (/^(?:Experimental)?Spread(?:Property|Element)$/.test(property.type)) {
-      if (property.argument.type === 'ObjectExpression') {
-        return assign(object, extractValueFromObjectExpression(property.argument));
-      }
-    } else {
-      object[getValue(property.key)] = getValue(property.value);
-    }
-    return object;
-  }, {});
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/OptionalMemberExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/OptionalMemberExpression.js
deleted file mode 100644
index 174c99b..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/OptionalMemberExpression.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Extractor function for a OptionalMemberExpression type value node.
- * A member expression is accessing a property on an object `obj.property`.
- *
- * @param - value - AST Value object with type `OptionalMemberExpression`
- * @returns - The extracted value converted to correct type
- *  and maintaing `obj?.property` convention.
- */
-export default function extractValueFromOptionalMemberExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return `${getValue(value.object)}?.${getValue(value.property)}`;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/SpreadElement.js b/node_modules/jsx-ast-utils/src/values/expressions/SpreadElement.js
deleted file mode 100644
index 6caef8a..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/SpreadElement.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Extractor function for a SpreadElement type value node.
- * We can't statically evaluate an array spread, so just return
- * undefined.
- *
- * @param - value - AST Value object with type `SpreadElement`
- * @returns - An prototypeless object.
- */
-export default function extractValueFromSpreadElement() {
-  return undefined;
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/TaggedTemplateExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/TaggedTemplateExpression.js
deleted file mode 100644
index 8a64ec3..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/TaggedTemplateExpression.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import extractValueFromTemplateLiteral from './TemplateLiteral';
-
-/**
- * Returns the string value of a tagged template literal object.
- * Redirects the bulk of the work to `TemplateLiteral`.
- */
-export default function extractValueFromTaggedTemplateExpression(value) {
-  return extractValueFromTemplateLiteral(value.quasi);
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/TemplateLiteral.js b/node_modules/jsx-ast-utils/src/values/expressions/TemplateLiteral.js
deleted file mode 100644
index 58744c5..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/TemplateLiteral.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Returns the string value of a template literal object.
- * Tries to build it as best as it can based on the passed
- * prop. For instance `This is a ${prop}` will return 'This is a {prop}'.
- *
- * If the template literal builds to undefined (`${undefined}`), then
- * this should return "undefined".
- */
-export default function extractValueFromTemplateLiteral(value) {
-  const {
-    quasis,
-    expressions,
-  } = value;
-  const partitions = quasis.concat(expressions);
-
-  return partitions.sort((a, b) => a.start - b.start).reduce((raw, part) => {
-    const {
-      type,
-    } = part;
-    if (type === 'TemplateElement') {
-      return raw + part.value.raw;
-    }
-
-    if (type === 'Identifier') {
-      return part.name === 'undefined' ? `${raw}${part.name}` : `${raw}{${part.name}}`;
-    }
-
-    if (type.indexOf('Expression') > -1) {
-      return `${raw}{${type}}`;
-    }
-
-    return raw;
-  }, '');
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/ThisExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/ThisExpression.js
deleted file mode 100644
index 1b2b71b..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/ThisExpression.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Extractor function for a ThisExpression type value node.
- * A this expression is using `this` as an identifier.
- *
- * @returns - 'this' as a string.
- */
-export default function extractValueFromThisExpression() {
-  return 'this';
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/TypeCastExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/TypeCastExpression.js
deleted file mode 100644
index 005d9dd..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/TypeCastExpression.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Extractor function for a TypeCastExpression type value node.
- * A type cast expression looks like `(this.handleClick: (event: MouseEvent) => void))`
- * This will return the expression `this.handleClick`.
- *
- * @param - value - AST Value object with type `TypeCastExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromTypeCastExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  return getValue(value.expression);
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/UnaryExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/UnaryExpression.js
deleted file mode 100644
index 7190ff4..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/UnaryExpression.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Extractor function for a UnaryExpression type value node.
- * A unary expression is an expression with a unary operator.
- * For example, !"foobar" will evaluate to false, so this will return false.
- *
- * @param - value - AST Value object with type `UnaryExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromUnaryExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const { operator, argument } = value;
-
-  switch (operator) {
-    case '-':
-      return -getValue(argument);
-    case '+':
-      return +getValue(argument); // eslint-disable-line no-implicit-coercion
-    case '!':
-      return !getValue(argument);
-    case '~':
-      return ~getValue(argument); // eslint-disable-line no-bitwise
-    case 'delete':
-      // I believe delete statements evaluate to true.
-      return true;
-    case 'typeof':
-    case 'void':
-    default:
-      return undefined;
-  }
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/UpdateExpression.js b/node_modules/jsx-ast-utils/src/values/expressions/UpdateExpression.js
deleted file mode 100644
index 8d9277a..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/UpdateExpression.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Extractor function for an UpdateExpression type value node.
- * An update expression is an expression with an update operator.
- * For example, foo++ will evaluate to foo + 1.
- *
- * @param - value - AST Value object with type `UpdateExpression`
- * @returns - The extracted value converted to correct type.
- */
-export default function extractValueFromUpdateExpression(value) {
-  // eslint-disable-next-line global-require
-  const getValue = require('./index.js').default;
-  const { operator, argument, prefix } = value;
-
-  let val = getValue(argument);
-
-  switch (operator) {
-    case '++':
-      return prefix ? ++val : val++; // eslint-disable-line no-plusplus
-    case '--':
-      return prefix ? --val : val--; // eslint-disable-line no-plusplus
-    default:
-      return undefined;
-  }
-}
diff --git a/node_modules/jsx-ast-utils/src/values/expressions/index.js b/node_modules/jsx-ast-utils/src/values/expressions/index.js
deleted file mode 100644
index fae7600..0000000
--- a/node_modules/jsx-ast-utils/src/values/expressions/index.js
+++ /dev/null
@@ -1,159 +0,0 @@
-import Literal from '../Literal';
-import JSXElement from '../JSXElement';
-import Identifier from './Identifier';
-import TaggedTemplateExpression from './TaggedTemplateExpression';
-import TemplateLiteral from './TemplateLiteral';
-import FunctionExpression from './FunctionExpression';
-import LogicalExpression from './LogicalExpression';
-import MemberExpression from './MemberExpression';
-import OptionalMemberExpression from './OptionalMemberExpression';
-import CallExpression from './CallExpression';
-import UnaryExpression from './UnaryExpression';
-import ThisExpression from './ThisExpression';
-import ConditionalExpression from './ConditionalExpression';
-import BinaryExpression from './BinaryExpression';
-import ObjectExpression from './ObjectExpression';
-import NewExpression from './NewExpression';
-import UpdateExpression from './UpdateExpression';
-import ArrayExpression from './ArrayExpression';
-import BindExpression from './BindExpression';
-import SpreadElement from './SpreadElement';
-import TypeCastExpression from './TypeCastExpression';
-
-// Composition map of types to their extractor functions.
-const TYPES = {
-  Identifier,
-  Literal,
-  JSXElement,
-  TaggedTemplateExpression,
-  TemplateLiteral,
-  ArrowFunctionExpression: FunctionExpression,
-  FunctionExpression,
-  LogicalExpression,
-  MemberExpression,
-  OptionalMemberExpression,
-  CallExpression,
-  UnaryExpression,
-  ThisExpression,
-  ConditionalExpression,
-  BinaryExpression,
-  ObjectExpression,
-  NewExpression,
-  UpdateExpression,
-  ArrayExpression,
-  BindExpression,
-  SpreadElement,
-  TypeCastExpression,
-};
-
-const noop = () => null;
-
-const errorMessage = expression => `The prop value with an expression type of ${expression} could not be resolved. Please file issue to get this fixed immediately.`;
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *all* possible expression types.
- *
- * @param - value - AST Value object with type `JSXExpressionContainer`
- * @returns The extracted value.
- */
-export default function extract(value) {
-  // Value will not have the expression property when we recurse.
-  // The type for expression on ArrowFunctionExpression is a boolean.
-  let expression;
-  if (
-    typeof value.expression !== 'boolean'
-    && value.expression
-  ) {
-    expression = value.expression; // eslint-disable-line prefer-destructuring
-  } else {
-    expression = value;
-  }
-  let { type } = expression;
-
-  while (type === 'TSNonNullExpression' || type === 'TSAsExpression') {
-    ({ type } = expression);
-    if (expression.expression) {
-      ({ expression } = expression);
-    }
-  }
-
-  if (TYPES[type] === undefined) {
-    // eslint-disable-next-line no-console
-    console.error(errorMessage(type));
-    return null;
-  }
-
-  return TYPES[type](expression);
-}
-
-// Composition map of types to their extractor functions to handle literals.
-const LITERAL_TYPES = Object.assign({}, TYPES, {
-  Literal: (value) => {
-    const extractedVal = TYPES.Literal.call(undefined, value);
-    const isNull = extractedVal === null;
-    // This will be convention for attributes that have null
-    // value explicitly defined (<div prop={null} /> maps to 'null').
-    return isNull ? 'null' : extractedVal;
-  },
-  Identifier: (value) => {
-    const isUndefined = TYPES.Identifier.call(undefined, value) === undefined;
-    return isUndefined ? undefined : null;
-  },
-  JSXElement: noop,
-  ArrowFunctionExpression: noop,
-  FunctionExpression: noop,
-  LogicalExpression: noop,
-  MemberExpression: noop,
-  OptionalMemberExpression: noop,
-  CallExpression: noop,
-  UnaryExpression: (value) => {
-    const extractedVal = TYPES.UnaryExpression.call(undefined, value);
-    return extractedVal === undefined ? null : extractedVal;
-  },
-  UpdateExpression: (value) => {
-    const extractedVal = TYPES.UpdateExpression.call(undefined, value);
-    return extractedVal === undefined ? null : extractedVal;
-  },
-  ThisExpression: noop,
-  ConditionalExpression: noop,
-  BinaryExpression: noop,
-  ObjectExpression: noop,
-  NewExpression: noop,
-  ArrayExpression: (value) => {
-    const extractedVal = TYPES.ArrayExpression.call(undefined, value);
-    return extractedVal.filter(val => val !== null);
-  },
-  BindExpression: noop,
-  SpreadElement: noop,
-  TSNonNullExpression: noop,
-  TSAsExpression: noop,
-  TypeCastExpression: noop,
-});
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *some* possible types that map to literals.
- *
- * @param - value - AST Value object with type `JSXExpressionContainer`
- * @returns The extracted value.
- */
-export function extractLiteral(value) {
-  // Value will not have the expression property when we recurse.
-  const expression = value.expression || value;
-  const { type } = expression;
-
-  if (LITERAL_TYPES[type] === undefined) {
-    // eslint-disable-next-line no-console
-    console.error(errorMessage(type));
-    return null;
-  }
-
-  return LITERAL_TYPES[type](expression);
-}
diff --git a/node_modules/jsx-ast-utils/src/values/index.js b/node_modules/jsx-ast-utils/src/values/index.js
deleted file mode 100644
index 630750d..0000000
--- a/node_modules/jsx-ast-utils/src/values/index.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import Literal from './Literal';
-import JSXElement from './JSXElement';
-import JSXExpressionContainer, { extractLiteral } from './expressions';
-
-// Composition map of types to their extractor functions.
-const TYPES = {
-  Literal,
-  JSXElement,
-  JSXExpressionContainer,
-};
-
-// Composition map of types to their extractor functions to handle literals.
-const LITERAL_TYPES = Object.assign({}, TYPES, {
-  JSXElement: () => null,
-  JSXExpressionContainer: extractLiteral,
-});
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *all* possible types.
- *
- * @param value - AST Value object on a JSX Attribute.
- */
-export default function getValue(value) {
-  return TYPES[value.type](value);
-}
-
-/**
- * This function maps an AST value node
- * to its correct extractor function for its
- * given type.
- *
- * This will map correctly for *some* possible types that map to literals.
- *
- * @param value - AST Value object on a JSX Attribute.
- */
-export function getLiteralValue(value) {
-  return LITERAL_TYPES[value.type](value);
-}
diff --git a/node_modules/load-json-file/node_modules/strip-bom/index.js b/node_modules/load-json-file/node_modules/strip-bom/index.js
deleted file mode 100644
index b00feb9..0000000
--- a/node_modules/load-json-file/node_modules/strip-bom/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-module.exports = x => {
-	if (typeof x !== 'string') {
-		throw new TypeError('Expected a string, got ' + typeof x);
-	}
-
-	// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
-	// conversion translates it to FEFF (UTF-16 BOM)
-	if (x.charCodeAt(0) === 0xFEFF) {
-		return x.slice(1);
-	}
-
-	return x;
-};
diff --git a/node_modules/load-json-file/node_modules/strip-bom/license b/node_modules/load-json-file/node_modules/strip-bom/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/load-json-file/node_modules/strip-bom/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-
-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.
diff --git a/node_modules/load-json-file/node_modules/strip-bom/package.json b/node_modules/load-json-file/node_modules/strip-bom/package.json
deleted file mode 100644
index 10f8fdd..0000000
--- a/node_modules/load-json-file/node_modules/strip-bom/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "name": "strip-bom",
-  "version": "3.0.0",
-  "description": "Strip UTF-8 byte order mark (BOM) from a string",
-  "license": "MIT",
-  "repository": "sindresorhus/strip-bom",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "engines": {
-    "node": ">=4"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "files": [
-    "index.js"
-  ],
-  "keywords": [
-    "strip",
-    "bom",
-    "byte",
-    "order",
-    "mark",
-    "unicode",
-    "utf8",
-    "utf-8",
-    "remove",
-    "delete",
-    "trim",
-    "text",
-    "string"
-  ],
-  "devDependencies": {
-    "ava": "*",
-    "xo": "*"
-  }
-}
diff --git a/node_modules/load-json-file/node_modules/strip-bom/readme.md b/node_modules/load-json-file/node_modules/strip-bom/readme.md
deleted file mode 100644
index 812a980..0000000
--- a/node_modules/load-json-file/node_modules/strip-bom/readme.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
-
-> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
-
-From Wikipedia:
-
-> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
-
-
-## Install
-
-```
-$ npm install --save strip-bom
-```
-
-
-## Usage
-
-```js
-const stripBom = require('strip-bom');
-
-stripBom('\uFEFFunicorn');
-//=> 'unicorn'
-```
-
-
-## Related
-
-- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
-- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module
-- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/loose-envify/LICENSE b/node_modules/loose-envify/LICENSE
deleted file mode 100644
index fbafb48..0000000
--- a/node_modules/loose-envify/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Andres Suarez <zertosh@gmail.com>
-
-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.
diff --git a/node_modules/loose-envify/README.md b/node_modules/loose-envify/README.md
deleted file mode 100644
index 7f4e07b..0000000
--- a/node_modules/loose-envify/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# loose-envify
-
-[![Build Status](https://travis-ci.org/zertosh/loose-envify.svg?branch=master)](https://travis-ci.org/zertosh/loose-envify)
-
-Fast (and loose) selective `process.env` replacer using [js-tokens](https://github.com/lydell/js-tokens) instead of an AST. Works just like [envify](https://github.com/hughsk/envify) but much faster.
-
-## Gotchas
-
-* Doesn't handle broken syntax.
-* Doesn't look inside embedded expressions in template strings.
-  - **this won't work:**
-  ```js
-  console.log(`the current env is ${process.env.NODE_ENV}`);
-  ```
-* Doesn't replace oddly-spaced or oddly-commented expressions.
-  - **this won't work:**
-  ```js
-  console.log(process./*won't*/env./*work*/NODE_ENV);
-  ```
-
-## Usage/Options
-
-loose-envify has the exact same interface as [envify](https://github.com/hughsk/envify), including the CLI.
-
-## Benchmark
-
-```
-envify:
-
-  $ for i in {1..5}; do node bench/bench.js 'envify'; done
-  708ms
-  727ms
-  791ms
-  719ms
-  720ms
-
-loose-envify:
-
-  $ for i in {1..5}; do node bench/bench.js '../'; done
-  51ms
-  52ms
-  52ms
-  52ms
-  52ms
-```
diff --git a/node_modules/loose-envify/cli.js b/node_modules/loose-envify/cli.js
deleted file mode 100755
index c0b63cb..0000000
--- a/node_modules/loose-envify/cli.js
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-var looseEnvify = require('./');
-var fs = require('fs');
-
-if (process.argv[2]) {
-  fs.createReadStream(process.argv[2], {encoding: 'utf8'})
-    .pipe(looseEnvify(process.argv[2]))
-    .pipe(process.stdout);
-} else {
-  process.stdin.resume()
-  process.stdin
-    .pipe(looseEnvify(__filename))
-    .pipe(process.stdout);
-}
diff --git a/node_modules/loose-envify/custom.js b/node_modules/loose-envify/custom.js
deleted file mode 100644
index 6389bfa..0000000
--- a/node_modules/loose-envify/custom.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// envify compatibility
-'use strict';
-
-module.exports = require('./loose-envify');
diff --git a/node_modules/loose-envify/index.js b/node_modules/loose-envify/index.js
deleted file mode 100644
index 8cd8305..0000000
--- a/node_modules/loose-envify/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = require('./loose-envify')(process.env);
diff --git a/node_modules/loose-envify/loose-envify.js b/node_modules/loose-envify/loose-envify.js
deleted file mode 100644
index b5a5be2..0000000
--- a/node_modules/loose-envify/loose-envify.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-var stream = require('stream');
-var util = require('util');
-var replace = require('./replace');
-
-var jsonExtRe = /\.json$/;
-
-module.exports = function(rootEnv) {
-  rootEnv = rootEnv || process.env;
-  return function (file, trOpts) {
-    if (jsonExtRe.test(file)) {
-      return stream.PassThrough();
-    }
-    var envs = trOpts ? [rootEnv, trOpts] : [rootEnv];
-    return new LooseEnvify(envs);
-  };
-};
-
-function LooseEnvify(envs) {
-  stream.Transform.call(this);
-  this._data = '';
-  this._envs = envs;
-}
-util.inherits(LooseEnvify, stream.Transform);
-
-LooseEnvify.prototype._transform = function(buf, enc, cb) {
-  this._data += buf;
-  cb();
-};
-
-LooseEnvify.prototype._flush = function(cb) {
-  var replaced = replace(this._data, this._envs);
-  this.push(replaced);
-  cb();
-};
diff --git a/node_modules/loose-envify/package.json b/node_modules/loose-envify/package.json
deleted file mode 100644
index 5e3d0e2..0000000
--- a/node_modules/loose-envify/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "loose-envify",
-  "version": "1.4.0",
-  "description": "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST",
-  "keywords": [
-    "environment",
-    "variables",
-    "browserify",
-    "browserify-transform",
-    "transform",
-    "source",
-    "configuration"
-  ],
-  "homepage": "https://github.com/zertosh/loose-envify",
-  "license": "MIT",
-  "author": "Andres Suarez <zertosh@gmail.com>",
-  "main": "index.js",
-  "bin": {
-    "loose-envify": "cli.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/zertosh/loose-envify.git"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "dependencies": {
-    "js-tokens": "^3.0.0 || ^4.0.0"
-  },
-  "devDependencies": {
-    "browserify": "^13.1.1",
-    "envify": "^3.4.0",
-    "tap": "^8.0.0"
-  }
-}
diff --git a/node_modules/loose-envify/replace.js b/node_modules/loose-envify/replace.js
deleted file mode 100644
index ec15e81..0000000
--- a/node_modules/loose-envify/replace.js
+++ /dev/null
@@ -1,65 +0,0 @@
-'use strict';
-
-var jsTokens = require('js-tokens').default;
-
-var processEnvRe = /\bprocess\.env\.[_$a-zA-Z][$\w]+\b/;
-var spaceOrCommentRe = /^(?:\s|\/[/*])/;
-
-function replace(src, envs) {
-  if (!processEnvRe.test(src)) {
-    return src;
-  }
-
-  var out = [];
-  var purge = envs.some(function(env) {
-    return env._ && env._.indexOf('purge') !== -1;
-  });
-
-  jsTokens.lastIndex = 0
-  var parts = src.match(jsTokens);
-
-  for (var i = 0; i < parts.length; i++) {
-    if (parts[i    ] === 'process' &&
-        parts[i + 1] === '.' &&
-        parts[i + 2] === 'env' &&
-        parts[i + 3] === '.') {
-      var prevCodeToken = getAdjacentCodeToken(-1, parts, i);
-      var nextCodeToken = getAdjacentCodeToken(1, parts, i + 4);
-      var replacement = getReplacementString(envs, parts[i + 4], purge);
-      if (prevCodeToken !== '.' &&
-          nextCodeToken !== '.' &&
-          nextCodeToken !== '=' &&
-          typeof replacement === 'string') {
-        out.push(replacement);
-        i += 4;
-        continue;
-      }
-    }
-    out.push(parts[i]);
-  }
-
-  return out.join('');
-}
-
-function getAdjacentCodeToken(dir, parts, i) {
-  while (true) {
-    var part = parts[i += dir];
-    if (!spaceOrCommentRe.test(part)) {
-      return part;
-    }
-  }
-}
-
-function getReplacementString(envs, name, purge) {
-  for (var j = 0; j < envs.length; j++) {
-    var env = envs[j];
-    if (typeof env[name] !== 'undefined') {
-      return JSON.stringify(env[name]);
-    }
-  }
-  if (purge) {
-    return 'undefined';
-  }
-}
-
-module.exports = replace;
diff --git a/node_modules/mute-stream/README.md b/node_modules/mute-stream/README.md
deleted file mode 100644
index 8ab1238..0000000
--- a/node_modules/mute-stream/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# mute-stream
-
-Bytes go in, but they don't come out (when muted).
-
-This is a basic pass-through stream, but when muted, the bytes are
-silently dropped, rather than being passed through.
-
-## Usage
-
-```javascript
-var MuteStream = require('mute-stream')
-
-var ms = new MuteStream(options)
-
-ms.pipe(process.stdout)
-ms.write('foo') // writes 'foo' to stdout
-ms.mute()
-ms.write('bar') // does not write 'bar'
-ms.unmute()
-ms.write('baz') // writes 'baz' to stdout
-
-// can also be used to mute incoming data
-var ms = new MuteStream
-input.pipe(ms)
-
-ms.on('data', function (c) {
-  console.log('data: ' + c)
-})
-
-input.emit('data', 'foo') // logs 'foo'
-ms.mute()
-input.emit('data', 'bar') // does not log 'bar'
-ms.unmute()
-input.emit('data', 'baz') // logs 'baz'
-```
-
-## Options
-
-All options are optional.
-
-* `replace` Set to a string to replace each character with the
-  specified string when muted.  (So you can show `****` instead of the
-  password, for example.)
-
-* `prompt` If you are using a replacement char, and also using a
-  prompt with a readline stream (as for a `Password: *****` input),
-  then specify what the prompt is so that backspace will work
-  properly.  Otherwise, pressing backspace will overwrite the prompt
-  with the replacement character, which is weird.
-
-## ms.mute()
-
-Set `muted` to `true`.  Turns `.write()` into a no-op.
-
-## ms.unmute()
-
-Set `muted` to `false`
-
-## ms.isTTY
-
-True if the pipe destination is a TTY, or if the incoming pipe source is
-a TTY.
-
-## Other stream methods...
-
-The other standard readable and writable stream methods are all
-available.  The MuteStream object acts as a facade to its pipe source
-and destination.
diff --git a/node_modules/mute-stream/mute.js b/node_modules/mute-stream/mute.js
deleted file mode 100644
index a24fc09..0000000
--- a/node_modules/mute-stream/mute.js
+++ /dev/null
@@ -1,145 +0,0 @@
-var Stream = require('stream')
-
-module.exports = MuteStream
-
-// var out = new MuteStream(process.stdout)
-// argument auto-pipes
-function MuteStream (opts) {
-  Stream.apply(this)
-  opts = opts || {}
-  this.writable = this.readable = true
-  this.muted = false
-  this.on('pipe', this._onpipe)
-  this.replace = opts.replace
-
-  // For readline-type situations
-  // This much at the start of a line being redrawn after a ctrl char
-  // is seen (such as backspace) won't be redrawn as the replacement
-  this._prompt = opts.prompt || null
-  this._hadControl = false
-}
-
-MuteStream.prototype = Object.create(Stream.prototype)
-
-Object.defineProperty(MuteStream.prototype, 'constructor', {
-  value: MuteStream,
-  enumerable: false
-})
-
-MuteStream.prototype.mute = function () {
-  this.muted = true
-}
-
-MuteStream.prototype.unmute = function () {
-  this.muted = false
-}
-
-Object.defineProperty(MuteStream.prototype, '_onpipe', {
-  value: onPipe,
-  enumerable: false,
-  writable: true,
-  configurable: true
-})
-
-function onPipe (src) {
-  this._src = src
-}
-
-Object.defineProperty(MuteStream.prototype, 'isTTY', {
-  get: getIsTTY,
-  set: setIsTTY,
-  enumerable: true,
-  configurable: true
-})
-
-function getIsTTY () {
-  return( (this._dest) ? this._dest.isTTY
-        : (this._src) ? this._src.isTTY
-        : false
-        )
-}
-
-// basically just get replace the getter/setter with a regular value
-function setIsTTY (isTTY) {
-  Object.defineProperty(this, 'isTTY', {
-    value: isTTY,
-    enumerable: true,
-    writable: true,
-    configurable: true
-  })
-}
-
-Object.defineProperty(MuteStream.prototype, 'rows', {
-  get: function () {
-    return( this._dest ? this._dest.rows
-          : this._src ? this._src.rows
-          : undefined )
-  }, enumerable: true, configurable: true })
-
-Object.defineProperty(MuteStream.prototype, 'columns', {
-  get: function () {
-    return( this._dest ? this._dest.columns
-          : this._src ? this._src.columns
-          : undefined )
-  }, enumerable: true, configurable: true })
-
-
-MuteStream.prototype.pipe = function (dest, options) {
-  this._dest = dest
-  return Stream.prototype.pipe.call(this, dest, options)
-}
-
-MuteStream.prototype.pause = function () {
-  if (this._src) return this._src.pause()
-}
-
-MuteStream.prototype.resume = function () {
-  if (this._src) return this._src.resume()
-}
-
-MuteStream.prototype.write = function (c) {
-  if (this.muted) {
-    if (!this.replace) return true
-    if (c.match(/^\u001b/)) {
-      if(c.indexOf(this._prompt) === 0) {
-        c = c.substr(this._prompt.length);
-        c = c.replace(/./g, this.replace);
-        c = this._prompt + c;
-      }
-      this._hadControl = true
-      return this.emit('data', c)
-    } else {
-      if (this._prompt && this._hadControl &&
-          c.indexOf(this._prompt) === 0) {
-        this._hadControl = false
-        this.emit('data', this._prompt)
-        c = c.substr(this._prompt.length)
-      }
-      c = c.toString().replace(/./g, this.replace)
-    }
-  }
-  this.emit('data', c)
-}
-
-MuteStream.prototype.end = function (c) {
-  if (this.muted) {
-    if (c && this.replace) {
-      c = c.toString().replace(/./g, this.replace)
-    } else {
-      c = null
-    }
-  }
-  if (c) this.emit('data', c)
-  this.emit('end')
-}
-
-function proxy (fn) { return function () {
-  var d = this._dest
-  var s = this._src
-  if (d && d[fn]) d[fn].apply(d, arguments)
-  if (s && s[fn]) s[fn].apply(s, arguments)
-}}
-
-MuteStream.prototype.destroy = proxy('destroy')
-MuteStream.prototype.destroySoon = proxy('destroySoon')
-MuteStream.prototype.close = proxy('close')
diff --git a/node_modules/mute-stream/package.json b/node_modules/mute-stream/package.json
deleted file mode 100644
index 56ebb36..0000000
--- a/node_modules/mute-stream/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name": "mute-stream",
-  "version": "0.0.8",
-  "main": "mute.js",
-  "directories": {
-    "test": "test"
-  },
-  "devDependencies": {
-    "tap": "^12.1.1"
-  },
-  "scripts": {
-    "test": "tap test/*.js --cov"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/mute-stream"
-  },
-  "keywords": [
-    "mute",
-    "stream",
-    "pipe"
-  ],
-  "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
-  "license": "ISC",
-  "description": "Bytes go in, but they don't come out (when muted).",
-  "files": [
-    "mute.js"
-  ]
-}
diff --git a/node_modules/node-fetch/CHANGELOG.md b/node_modules/node-fetch/CHANGELOG.md
index 188fcd3..543d3d9 100644
--- a/node_modules/node-fetch/CHANGELOG.md
+++ b/node_modules/node-fetch/CHANGELOG.md
@@ -5,6 +5,12 @@
 
 # 2.x release
 
+## v2.6.1
+
+**This is an important security release. It is strongly recommended to update as soon as possible.**
+
+- Fix: honor the `size` option after following a redirect.
+
 ## v2.6.0
 
 - Enhance: `options.agent`, it now accepts a function that returns custom http(s).Agent instance based on current URL, see readme for more information.
diff --git a/node_modules/node-fetch/README.md b/node_modules/node-fetch/README.md
index cb19901..2dde742 100644
--- a/node_modules/node-fetch/README.md
+++ b/node_modules/node-fetch/README.md
@@ -5,11 +5,14 @@
 [![build status][travis-image]][travis-url]
 [![coverage status][codecov-image]][codecov-url]
 [![install size][install-size-image]][install-size-url]
+[![Discord][discord-image]][discord-url]
 
 A light-weight module that brings `window.fetch` to Node.js
 
 (We are looking for [v2 maintainers and collaborators](https://github.com/bitinn/node-fetch/issues/567))
 
+[![Backers][opencollective-image]][opencollective-url]
+
 <!-- TOC -->
 
 - [Motivation](#motivation)
@@ -48,7 +51,7 @@
 
 ## Motivation
 
-Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime.
+Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence, `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime.
 
 See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side).
 
@@ -56,9 +59,9 @@
 
 - Stay consistent with `window.fetch` API.
 - Make conscious trade-off when following [WHATWG fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known differences.
-- Use native promise, but allow substituting it with [insert your favorite promise library].
-- Use native Node streams for body, on both request and response.
-- Decode content encoding (gzip/deflate) properly, and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically.
+- Use native promise but allow substituting it with [insert your favorite promise library].
+- Use native Node streams for body on both request and response.
+- Decode content encoding (gzip/deflate) properly and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically.
 - Useful extensions such as timeout, redirect limit, response size limit, [explicit errors](ERROR-HANDLING.md) for troubleshooting.
 
 ## Difference from client-side fetch
@@ -72,16 +75,16 @@
 Current stable release (`2.x`)
 
 ```sh
-$ npm install node-fetch --save
+$ npm install node-fetch
 ```
 
 ## Loading and configuring the module
-We suggest you load the module via `require`, pending the stabalizing of es modules in node:
+We suggest you load the module via `require` until the stabilization of ES modules in node:
 ```js
 const fetch = require('node-fetch');
 ```
 
-If you are using a Promise library other than native, set it through fetch.Promise:
+If you are using a Promise library other than native, set it through `fetch.Promise`:
 ```js
 const Bluebird = require('bluebird');
 
@@ -90,7 +93,7 @@
 
 ## Common Usage
 
-NOTE: The documentation below is up-to-date with `2.x` releases, [see `1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences.
+NOTE: The documentation below is up-to-date with `2.x` releases; see the [`1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences.
 
 #### Plain text or HTML
 ```js
@@ -146,9 +149,9 @@
 ```
 
 #### Handling exceptions
-NOTE: 3xx-5xx responses are *NOT* exceptions, and should be handled in `then()`, see the next section.
+NOTE: 3xx-5xx responses are *NOT* exceptions and should be handled in `then()`; see the next section for more information.
 
-Adding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, like network errors, and operational errors which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md)  for more details.
+Adding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, network errors and operational errors, which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md)  for more details.
 
 ```js
 fetch('https://domain.invalid/')
@@ -186,7 +189,7 @@
 ```
 
 #### Buffer
-If you prefer to cache binary data in full, use buffer(). (NOTE: buffer() is a `node-fetch` only API)
+If you prefer to cache binary data in full, use buffer(). (NOTE: `buffer()` is a `node-fetch`-only API)
 
 ```js
 const fileType = require('file-type');
@@ -211,7 +214,7 @@
 
 #### Extract Set-Cookie Header
 
-Unlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`, this is a `node-fetch` only API.
+Unlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`. This is a `node-fetch` only API.
 
 ```js
 fetch(url).then(res => {
@@ -263,11 +266,11 @@
 
 #### Request cancellation with AbortSignal
 
-> NOTE: You may only cancel streamed requests on Node >= v8.0.0
+> NOTE: You may cancel streamed requests only on Node >= v8.0.0
 
 You may cancel requests with `AbortController`. A suggested implementation is [`abort-controller`](https://www.npmjs.com/package/abort-controller).
 
-An example of timing out a request after 150ms could be achieved as follows:
+An example of timing out a request after 150ms could be achieved as the following:
 
 ```js
 import AbortController from 'abort-controller';
@@ -308,7 +311,7 @@
 
 Perform an HTTP(S) fetch.
 
-`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected promise.
+`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected `Promise`.
 
 <a id="fetch-options"></a>
 ### Options
@@ -350,7 +353,7 @@
 
 ##### Custom Agent
 
-The `agent` option allows you to specify networking related options that's out of the scope of Fetch. Including and not limit to:
+The `agent` option allows you to specify networking related options which are out of the scope of Fetch, including and not limited to the following:
 
 - Support self-signed certificate
 - Use only IPv4 or IPv6
@@ -358,7 +361,7 @@
 
 See [`http.Agent`](https://nodejs.org/api/http.html#http_new_agent_options) for more information.
 
-In addition, `agent` option accepts a function that returns http(s).Agent instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol.
+In addition, the `agent` option accepts a function that returns `http`(s)`.Agent` instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol.
 
 ```js
 const httpAgent = new http.Agent({
@@ -432,7 +435,7 @@
 
 <small>*(spec-compliant)*</small>
 
-- `body` A string or [Readable stream][node-readable]
+- `body` A `String` or [`Readable` stream][node-readable]
 - `options` A [`ResponseInit`][response-init] options dictionary
 
 Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response).
@@ -462,7 +465,7 @@
 
 - `init` Optional argument to pre-fill the `Headers` object
 
-Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object, or any iterable object.
+Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object or any iterable object.
 
 ```js
 // Example adapted from https://fetch.spec.whatwg.org/#example-headers-class
@@ -503,7 +506,7 @@
 
 * Node.js [`Readable` stream][node-readable]
 
-The data encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable].
+Data are encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable].
 
 #### body.bodyUsed
 
@@ -511,7 +514,7 @@
 
 * `Boolean`
 
-A boolean property for if this body has been consumed. Per spec, a consumed body cannot be used again.
+A boolean property for if this body has been consumed. Per the specs, a consumed body cannot be used again.
 
 #### body.arrayBuffer()
 #### body.blob()
@@ -538,9 +541,9 @@
 
 * Returns: <code>Promise&lt;String&gt;</code>
 
-Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8, if possible.
+Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8 if possible.
 
-(This API requires an optional dependency on npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.)
+(This API requires an optional dependency of the npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.)
 
 <a id="class-fetcherror"></a>
 ### Class: FetchError
@@ -574,6 +577,10 @@
 [codecov-url]: https://codecov.io/gh/bitinn/node-fetch
 [install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch
 [install-size-url]: https://packagephobia.now.sh/result?p=node-fetch
+[discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square
+[discord-url]: https://discord.gg/Zxbndcm
+[opencollective-image]: https://opencollective.com/node-fetch/backers.svg
+[opencollective-url]: https://opencollective.com/node-fetch
 [whatwg-fetch]: https://fetch.spec.whatwg.org/
 [response-init]: https://fetch.spec.whatwg.org/#responseinit
 [node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams
diff --git a/node_modules/node-fetch/browser.js b/node_modules/node-fetch/browser.js
index 0ad5de0..83c54c5 100644
--- a/node_modules/node-fetch/browser.js
+++ b/node_modules/node-fetch/browser.js
@@ -16,7 +16,9 @@
 module.exports = exports = global.fetch;
 
 // Needed for TypeScript and Webpack.
-exports.default = global.fetch.bind(global);
+if (global.fetch) {
+	exports.default = global.fetch.bind(global);
+}
 
 exports.Headers = global.Headers;
 exports.Request = global.Request;
diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js
index 37d022c..61906c9 100644
--- a/node_modules/node-fetch/lib/index.es.js
+++ b/node_modules/node-fetch/lib/index.es.js
@@ -461,6 +461,12 @@
 	// html4
 	if (!res && str) {
 		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
+		if (!res) {
+			res = /<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(str);
+			if (res) {
+				res.pop(); // drop last quote
+			}
+		}
 
 		if (res) {
 			res = /charset=(.*)/i.exec(res.pop());
@@ -1468,7 +1474,7 @@
 				// HTTP fetch step 5.5
 				switch (request.redirect) {
 					case 'error':
-						reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
+						reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));
 						finalize();
 						return;
 					case 'manual':
@@ -1507,7 +1513,8 @@
 							method: request.method,
 							body: request.body,
 							signal: request.signal,
-							timeout: request.timeout
+							timeout: request.timeout,
+							size: request.size
 						};
 
 						// HTTP-redirect fetch step 9
diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js
index daa44bc..4b241bf 100644
--- a/node_modules/node-fetch/lib/index.js
+++ b/node_modules/node-fetch/lib/index.js
@@ -465,6 +465,12 @@
 	// html4
 	if (!res && str) {
 		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
+		if (!res) {
+			res = /<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(str);
+			if (res) {
+				res.pop(); // drop last quote
+			}
+		}
 
 		if (res) {
 			res = /charset=(.*)/i.exec(res.pop());
@@ -1472,7 +1478,7 @@
 				// HTTP fetch step 5.5
 				switch (request.redirect) {
 					case 'error':
-						reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
+						reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));
 						finalize();
 						return;
 					case 'manual':
@@ -1511,7 +1517,8 @@
 							method: request.method,
 							body: request.body,
 							signal: request.signal,
-							timeout: request.timeout
+							timeout: request.timeout,
+							size: request.size
 						};
 
 						// HTTP-redirect fetch step 9
diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs
index e571ea6..ecf59af 100644
--- a/node_modules/node-fetch/lib/index.mjs
+++ b/node_modules/node-fetch/lib/index.mjs
@@ -459,6 +459,12 @@
 	// html4
 	if (!res && str) {
 		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
+		if (!res) {
+			res = /<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(str);
+			if (res) {
+				res.pop(); // drop last quote
+			}
+		}
 
 		if (res) {
 			res = /charset=(.*)/i.exec(res.pop());
@@ -1466,7 +1472,7 @@
 				// HTTP fetch step 5.5
 				switch (request.redirect) {
 					case 'error':
-						reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
+						reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));
 						finalize();
 						return;
 					case 'manual':
@@ -1505,7 +1511,8 @@
 							method: request.method,
 							body: request.body,
 							signal: request.signal,
-							timeout: request.timeout
+							timeout: request.timeout,
+							size: request.size
 						};
 
 						// HTTP-redirect fetch step 9
diff --git a/node_modules/node-fetch/package.json b/node_modules/node-fetch/package.json
index 8e5c883..2160469 100644
--- a/node_modules/node-fetch/package.json
+++ b/node_modules/node-fetch/package.json
@@ -1,66 +1,66 @@
 {
-  "name": "node-fetch",
-  "version": "2.6.0",
-  "description": "A light-weight module that brings window.fetch to node.js",
-  "main": "lib/index",
-  "browser": "./browser.js",
-  "module": "lib/index.mjs",
-  "files": [
-    "lib/index.js",
-    "lib/index.mjs",
-    "lib/index.es.js",
-    "browser.js"
-  ],
-  "engines": {
-    "node": "4.x || >=6.0.0"
-  },
-  "scripts": {
-    "build": "cross-env BABEL_ENV=rollup rollup -c",
-    "prepare": "npm run build",
-    "test": "cross-env BABEL_ENV=test mocha --require babel-register --throw-deprecation test/test.js",
-    "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js",
-    "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/bitinn/node-fetch.git"
-  },
-  "keywords": [
-    "fetch",
-    "http",
-    "promise"
-  ],
-  "author": "David Frank",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/bitinn/node-fetch/issues"
-  },
-  "homepage": "https://github.com/bitinn/node-fetch",
-  "devDependencies": {
-    "@ungap/url-search-params": "^0.1.2",
-    "abort-controller": "^1.1.0",
-    "abortcontroller-polyfill": "^1.3.0",
-    "babel-core": "^6.26.3",
-    "babel-plugin-istanbul": "^4.1.6",
-    "babel-preset-env": "^1.6.1",
-    "babel-register": "^6.16.3",
-    "chai": "^3.5.0",
-    "chai-as-promised": "^7.1.1",
-    "chai-iterator": "^1.1.1",
-    "chai-string": "~1.3.0",
-    "codecov": "^3.3.0",
-    "cross-env": "^5.2.0",
-    "form-data": "^2.3.3",
-    "is-builtin-module": "^1.0.0",
-    "mocha": "^5.0.0",
-    "nyc": "11.9.0",
-    "parted": "^0.1.1",
-    "promise": "^8.0.3",
-    "resumer": "0.0.0",
-    "rollup": "^0.63.4",
-    "rollup-plugin-babel": "^3.0.7",
-    "string-to-arraybuffer": "^1.0.2",
-    "whatwg-url": "^5.0.0"
-  },
-  "dependencies": {}
+    "name": "node-fetch",
+    "version": "2.6.1",
+    "description": "A light-weight module that brings window.fetch to node.js",
+    "main": "lib/index",
+    "browser": "./browser.js",
+    "module": "lib/index.mjs",
+    "files": [
+        "lib/index.js",
+        "lib/index.mjs",
+        "lib/index.es.js",
+        "browser.js"
+    ],
+    "engines": {
+        "node": "4.x || >=6.0.0"
+    },
+    "scripts": {
+        "build": "cross-env BABEL_ENV=rollup rollup -c",
+        "prepare": "npm run build",
+        "test": "cross-env BABEL_ENV=test mocha --require babel-register --throw-deprecation test/test.js",
+        "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js",
+        "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json"
+    },
+    "repository": {
+        "type": "git",
+        "url": "https://github.com/bitinn/node-fetch.git"
+    },
+    "keywords": [
+        "fetch",
+        "http",
+        "promise"
+    ],
+    "author": "David Frank",
+    "license": "MIT",
+    "bugs": {
+        "url": "https://github.com/bitinn/node-fetch/issues"
+    },
+    "homepage": "https://github.com/bitinn/node-fetch",
+    "devDependencies": {
+        "@ungap/url-search-params": "^0.1.2",
+        "abort-controller": "^1.1.0",
+        "abortcontroller-polyfill": "^1.3.0",
+        "babel-core": "^6.26.3",
+        "babel-plugin-istanbul": "^4.1.6",
+        "babel-preset-env": "^1.6.1",
+        "babel-register": "^6.16.3",
+        "chai": "^3.5.0",
+        "chai-as-promised": "^7.1.1",
+        "chai-iterator": "^1.1.1",
+        "chai-string": "~1.3.0",
+        "codecov": "^3.3.0",
+        "cross-env": "^5.2.0",
+        "form-data": "^2.3.3",
+        "is-builtin-module": "^1.0.0",
+        "mocha": "^5.0.0",
+        "nyc": "11.9.0",
+        "parted": "^0.1.1",
+        "promise": "^8.0.3",
+        "resumer": "0.0.0",
+        "rollup": "^0.63.4",
+        "rollup-plugin-babel": "^3.0.7",
+        "string-to-arraybuffer": "^1.0.2",
+        "whatwg-url": "^5.0.0"
+    },
+    "dependencies": {}
 }
diff --git a/node_modules/object-assign/index.js b/node_modules/object-assign/index.js
deleted file mode 100644
index 0930cf8..0000000
--- a/node_modules/object-assign/index.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-'use strict';
-/* eslint-disable no-unused-vars */
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-function toObject(val) {
-	if (val === null || val === undefined) {
-		throw new TypeError('Object.assign cannot be called with null or undefined');
-	}
-
-	return Object(val);
-}
-
-function shouldUseNative() {
-	try {
-		if (!Object.assign) {
-			return false;
-		}
-
-		// Detect buggy property enumeration order in older V8 versions.
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
-		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
-		test1[5] = 'de';
-		if (Object.getOwnPropertyNames(test1)[0] === '5') {
-			return false;
-		}
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
-		var test2 = {};
-		for (var i = 0; i < 10; i++) {
-			test2['_' + String.fromCharCode(i)] = i;
-		}
-		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
-			return test2[n];
-		});
-		if (order2.join('') !== '0123456789') {
-			return false;
-		}
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
-		var test3 = {};
-		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
-			test3[letter] = letter;
-		});
-		if (Object.keys(Object.assign({}, test3)).join('') !==
-				'abcdefghijklmnopqrst') {
-			return false;
-		}
-
-		return true;
-	} catch (err) {
-		// We don't expect any of the above to throw, but better to be safe.
-		return false;
-	}
-}
-
-module.exports = shouldUseNative() ? Object.assign : function (target, source) {
-	var from;
-	var to = toObject(target);
-	var symbols;
-
-	for (var s = 1; s < arguments.length; s++) {
-		from = Object(arguments[s]);
-
-		for (var key in from) {
-			if (hasOwnProperty.call(from, key)) {
-				to[key] = from[key];
-			}
-		}
-
-		if (getOwnPropertySymbols) {
-			symbols = getOwnPropertySymbols(from);
-			for (var i = 0; i < symbols.length; i++) {
-				if (propIsEnumerable.call(from, symbols[i])) {
-					to[symbols[i]] = from[symbols[i]];
-				}
-			}
-		}
-	}
-
-	return to;
-};
diff --git a/node_modules/object-assign/license b/node_modules/object-assign/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/object-assign/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-
-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.
diff --git a/node_modules/object-assign/package.json b/node_modules/object-assign/package.json
deleted file mode 100644
index 503eb1e..0000000
--- a/node_modules/object-assign/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "name": "object-assign",
-  "version": "4.1.1",
-  "description": "ES2015 `Object.assign()` ponyfill",
-  "license": "MIT",
-  "repository": "sindresorhus/object-assign",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "scripts": {
-    "test": "xo && ava",
-    "bench": "matcha bench.js"
-  },
-  "files": [
-    "index.js"
-  ],
-  "keywords": [
-    "object",
-    "assign",
-    "extend",
-    "properties",
-    "es2015",
-    "ecmascript",
-    "harmony",
-    "ponyfill",
-    "prollyfill",
-    "polyfill",
-    "shim",
-    "browser"
-  ],
-  "devDependencies": {
-    "ava": "^0.16.0",
-    "lodash": "^4.16.4",
-    "matcha": "^0.7.0",
-    "xo": "^0.16.0"
-  }
-}
diff --git a/node_modules/object-assign/readme.md b/node_modules/object-assign/readme.md
deleted file mode 100644
index 1be09d3..0000000
--- a/node_modules/object-assign/readme.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign)
-
-> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com)
-
-
-## Use the built-in
-
-Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari),
-support `Object.assign()` :tada:. If you target only those environments, then by all
-means, use `Object.assign()` instead of this package.
-
-
-## Install
-
-```
-$ npm install --save object-assign
-```
-
-
-## Usage
-
-```js
-const objectAssign = require('object-assign');
-
-objectAssign({foo: 0}, {bar: 1});
-//=> {foo: 0, bar: 1}
-
-// multiple sources
-objectAssign({foo: 0}, {bar: 1}, {baz: 2});
-//=> {foo: 0, bar: 1, baz: 2}
-
-// overwrites equal keys
-objectAssign({foo: 0}, {foo: 1}, {foo: 2});
-//=> {foo: 2}
-
-// ignores null and undefined sources
-objectAssign({foo: 0}, null, {bar: 1}, undefined);
-//=> {foo: 0, bar: 1}
-```
-
-
-## API
-
-### objectAssign(target, [source, ...])
-
-Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones.
-
-
-## Resources
-
-- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign)
-
-
-## Related
-
-- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()`
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/object.entries/.eslintrc b/node_modules/object.entries/.eslintrc
deleted file mode 100644
index 15c95c1..0000000
--- a/node_modules/object.entries/.eslintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"id-length": 0,
-		"new-cap": [2, { "capIsNewExceptions": ["RequireObjectCoercible"] }],
-		"no-magic-numbers": [0],
-		"no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"]
-	}
-}
diff --git a/node_modules/object.entries/.github/workflows/rebase.yml b/node_modules/object.entries/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/object.entries/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/object.entries/CHANGELOG.md b/node_modules/object.entries/CHANGELOG.md
deleted file mode 100644
index 28cafb3..0000000
--- a/node_modules/object.entries/CHANGELOG.md
+++ /dev/null
@@ -1,44 +0,0 @@
-1.1.1 / 2019-12-12
-=================
-  * [Refactor] use split-up `es-abstract` (85% bundle size decrease)
-  * [Deps] update `es-abstract`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `tape`
-  * [Tests] use shared travis-ci configs
-  * [Tests] use `functions-have-names`
-  * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
-  * [actions] add automatic rebasing / merge commit blocking
-  * [meta] clean up scripts
-
-1.1.0 / 2019-01-01
-=================
-  * [New] add `auto` entry point`
-  * [meta] exclude test.html from the npm package
-  * [Deps] update `define-properties`, `es-abstract`, `function-bind`, `has`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape`
-  * [Tests] up to `node` `v11.6`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.16`, `v4.9`; use `nvm install-latest-npm`
-  * [Tests] use `npm audit` instead of `nsp`
-  * [Tests] remove `jscs`
-
-1.0.4 / 2016-12-04
-=================
-  * [Deps] update `es-abstract`, `function-bind`, `define-properties`
-  * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`
-  * [Tests] up to `node` `v7.2`, `v6.9`, `v4.6`; improve test matrix.
-
-1.0.3 / 2015-10-06
-=================
-  * [Fix] Not-yet-visited keys made non-enumerable on a `[[Get]]` must not show up in the output (https://github.com/ljharb/proposal-object-values-entries/issues/5)
-
-1.0.2 / 2015-09-25
-=================
-  * [Fix] Not-yet-visited keys deleted on a `[[Get]]` must not show up in the output (#1)
-
-1.0.1 / 2015-09-21
-=================
-  * [Docs] update version badge URL
-  * [Tests] on `io.js` `v3.3`, up to `node` `v4.1`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`
-
-1.0.0 / 2015-09-02
-=================
-  * v1.0.0
diff --git a/node_modules/object.entries/LICENSE b/node_modules/object.entries/LICENSE
deleted file mode 100644
index b43df44..0000000
--- a/node_modules/object.entries/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Jordan Harband
-
-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.
-
diff --git a/node_modules/object.entries/README.md b/node_modules/object.entries/README.md
deleted file mode 100644
index f0cdbfd..0000000
--- a/node_modules/object.entries/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# object.entries <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-An ES2017 spec-compliant `Object.entries` shim. Invoke its "shim" method to shim `Object.entries` if it is unavailable or noncompliant.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://tc39.github.io/ecma262/#sec-object.entries).
-
-Most common usage:
-```js
-var assert = require('assert');
-var entries = require('object.entries');
-
-var obj = { a: 1, b: 2, c: 3 };
-var expected = [['a', 1], ['b', 2], ['c', 3]];
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
-	// for environments with Symbol support
-	var sym = Symbol();
-	obj[sym] = 4;
-	obj.d = sym;
-	expected.push(['d', sym]);
-}
-
-assert.deepEqual(entries(obj), expected);
-
-if (!Object.entries) {
-	entries.shim();
-}
-
-assert.deepEqual(Object.entries(obj), expected);
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.com/package/object.entries
-[npm-version-svg]: http://versionbadg.es/es-shims/Object.entries.svg
-[travis-svg]: https://travis-ci.org/es-shims/Object.entries.svg
-[travis-url]: https://travis-ci.org/es-shims/Object.entries
-[deps-svg]: https://david-dm.org/es-shims/Object.entries.svg
-[deps-url]: https://david-dm.org/es-shims/Object.entries
-[dev-deps-svg]: https://david-dm.org/es-shims/Object.entries/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Object.entries#info=devDependencies
-[testling-svg]: https://ci.testling.com/es-shims/Object.entries.png
-[testling-url]: https://ci.testling.com/es-shims/Object.entries
-[npm-badge-png]: https://nodei.co/npm/object.entries.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/object.entries.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/object.entries.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=object.entries
diff --git a/node_modules/object.entries/auto.js b/node_modules/object.entries/auto.js
deleted file mode 100644
index 8ebf606..0000000
--- a/node_modules/object.entries/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/node_modules/object.entries/implementation.js b/node_modules/object.entries/implementation.js
deleted file mode 100644
index 9842bc4..0000000
--- a/node_modules/object.entries/implementation.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible');
-var has = require('has');
-var bind = require('function-bind');
-var isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);
-
-module.exports = function entries(O) {
-	var obj = RequireObjectCoercible(O);
-	var entrys = [];
-	for (var key in obj) {
-		if (has(obj, key) && isEnumerable(obj, key)) {
-			entrys.push([key, obj[key]]);
-		}
-	}
-	return entrys;
-};
diff --git a/node_modules/object.entries/index.js b/node_modules/object.entries/index.js
deleted file mode 100644
index b8ba091..0000000
--- a/node_modules/object.entries/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var polyfill = getPolyfill();
-
-define(polyfill, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = polyfill;
diff --git a/node_modules/object.entries/package.json b/node_modules/object.entries/package.json
deleted file mode 100644
index e257cf2..0000000
--- a/node_modules/object.entries/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-	"name": "object.entries",
-	"version": "1.1.1",
-	"author": "Jordan Harband",
-	"description": "ES2017 spec-compliant Object.entries shim.",
-	"license": "MIT",
-	"main": "index.js",
-	"scripts": {
-		"pretest": "npm run --silent lint",
-		"test": "npm run --silent tests-only",
-		"posttest": "npx aud",
-		"tests-only": "es-shim-api && npm run --silent test:shimmed && npm run --silent test:module",
-		"test:shimmed": "node test/shimmed",
-		"test:module": "node test/index",
-		"coverage": "covert test/*.js",
-		"lint": "eslint ."
-	},
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/es-shims/Object.entries.git"
-	},
-	"keywords": [
-		"Object.entries",
-		"Object.values",
-		"Object.keys",
-		"entries",
-		"values",
-		"ES7",
-		"ES8",
-		"ES2017",
-		"shim",
-		"object",
-		"keys",
-		"polyfill",
-		"es-shim API"
-	],
-	"dependencies": {
-		"define-properties": "^1.1.3",
-		"es-abstract": "^1.17.0-next.1",
-		"function-bind": "^1.1.1",
-		"has": "^1.0.3"
-	},
-	"devDependencies": {
-		"@es-shims/api": "^2.1.2",
-		"@ljharb/eslint-config": "^15.0.2",
-		"array-map": "^0.0.0",
-		"covert": "^1.1.1",
-		"eslint": "^6.7.2",
-		"functions-have-names": "^1.2.0",
-		"tape": "^4.11.0"
-	},
-	"testling": {
-		"files": "test/index.js",
-		"browsers": [
-			"iexplore/9.0..latest",
-			"firefox/4.0..6.0",
-			"firefox/15.0..latest",
-			"firefox/nightly",
-			"chrome/4.0..10.0",
-			"chrome/20.0..latest",
-			"chrome/canary",
-			"opera/11.6..latest",
-			"opera/next",
-			"safari/5.0..latest",
-			"ipad/6.0..latest",
-			"iphone/6.0..latest",
-			"android-browser/4.2"
-		]
-	},
-	"engines": {
-		"node": ">= 0.4"
-	}
-}
diff --git a/node_modules/object.entries/polyfill.js b/node_modules/object.entries/polyfill.js
deleted file mode 100644
index 32e3238..0000000
--- a/node_modules/object.entries/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
-	return typeof Object.entries === 'function' ? Object.entries : implementation;
-};
diff --git a/node_modules/object.entries/shim.js b/node_modules/object.entries/shim.js
deleted file mode 100644
index 135defe..0000000
--- a/node_modules/object.entries/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var getPolyfill = require('./polyfill');
-var define = require('define-properties');
-
-module.exports = function shimEntries() {
-	var polyfill = getPolyfill();
-	define(Object, { entries: polyfill }, {
-		entries: function testEntries() {
-			return Object.entries !== polyfill;
-		}
-	});
-	return polyfill;
-};
diff --git a/node_modules/object.entries/test/.eslintrc b/node_modules/object.entries/test/.eslintrc
deleted file mode 100644
index 5bddce7..0000000
--- a/node_modules/object.entries/test/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-	"rules": {
-		"array-bracket-newline": 0,
-		"max-lines-per-function": 0,
-		"max-nested-callbacks": [2, 3],
-		"max-statements": [2, 12],
-		"max-statements-per-line": [2, { "max": 3 }],
-		"no-invalid-this": [1],
-		"object-curly-newline": 0,
-	}
-}
diff --git a/node_modules/object.entries/test/index.js b/node_modules/object.entries/test/index.js
deleted file mode 100644
index 1859a3f..0000000
--- a/node_modules/object.entries/test/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var entries = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
-	t.test('bad array/this value', function (st) {
-		st['throws'](function () { entries(undefined); }, TypeError, 'undefined is not an object');
-		st['throws'](function () { entries(null); }, TypeError, 'null is not an object');
-		st.end();
-	});
-
-	runTests(entries, t);
-
-	t.end();
-});
diff --git a/node_modules/object.entries/test/shimmed.js b/node_modules/object.entries/test/shimmed.js
deleted file mode 100644
index 29bd7f0..0000000
--- a/node_modules/object.entries/test/shimmed.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-var entries = require('../');
-entries.shim();
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names');
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
-	t.equal(Object.entries.length, 1, 'Object.entries has a length of 1');
-	t.test('Function name', { skip: !functionsHaveNames }, function (st) {
-		st.equal(Object.entries.name, 'entries', 'Object.entries has name "entries"');
-		st.end();
-	});
-
-	t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
-		et.equal(false, isEnumerable.call(Object, 'entries'), 'Object.entries is not enumerable');
-		et.end();
-	});
-
-	var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
-	t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
-		st['throws'](function () { return Object.entries(undefined); }, TypeError, 'undefined is not an object');
-		st['throws'](function () { return Object.entries(null); }, TypeError, 'null is not an object');
-		st.end();
-	});
-
-	runTests(Object.entries, t);
-
-	t.end();
-});
diff --git a/node_modules/object.entries/test/tests.js b/node_modules/object.entries/test/tests.js
deleted file mode 100644
index 7925e47..0000000
--- a/node_modules/object.entries/test/tests.js
+++ /dev/null
@@ -1,82 +0,0 @@
-'use strict';
-
-var keys = require('object-keys');
-var map = require('array-map');
-var define = require('define-properties');
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-module.exports = function (entries, t) {
-	var a = {};
-	var b = {};
-	var c = {};
-	var obj = { a: a, b: b, c: c };
-
-	t.deepEqual(entries(obj), [['a', a], ['b', b], ['c', c]], 'basic support');
-	t.deepEqual(entries({ a: a, b: a, c: c }), [['a', a], ['b', a], ['c', c]], 'duplicate entries are included');
-
-	t.test('entries are in the same order as keys', function (st) {
-		var object = { a: a, b: b };
-		object[0] = 3;
-		object.c = c;
-		object[1] = 4;
-		delete object[0];
-		var objKeys = keys(object);
-		var objEntries = map(objKeys, function (key) {
-			return [key, object[key]];
-		});
-		st.deepEqual(entries(object), objEntries, 'entries match key order');
-		st.end();
-	});
-
-	t.test('non-enumerable properties are omitted', { skip: !Object.defineProperty }, function (st) {
-		var object = { a: a, b: b };
-		Object.defineProperty(object, 'c', { enumerable: false, value: c });
-		st.deepEqual(entries(object), [['a', a], ['b', b]], 'non-enumerable property‘s value is omitted');
-		st.end();
-	});
-
-	t.test('inherited properties are omitted', function (st) {
-		var F = function G() {};
-		F.prototype.a = a;
-		var f = new F();
-		f.b = b;
-		st.deepEqual(entries(f), [['b', b]], 'only own properties are included');
-		st.end();
-	});
-
-	t.test('Symbol properties are omitted', { skip: !hasSymbols }, function (st) {
-		var object = { a: a, b: b, c: c };
-		var enumSym = Symbol('enum');
-		var nonEnumSym = Symbol('non enum');
-		object[enumSym] = enumSym;
-		object.d = enumSym;
-		Object.defineProperty(object, nonEnumSym, { enumerable: false, value: nonEnumSym });
-		st.deepEqual(entries(object), [['a', a], ['b', b], ['c', c], ['d', enumSym]], 'symbol properties are omitted');
-		st.end();
-	});
-
-	t.test('not-yet-visited keys deleted on [[Get]] must not show up in output', { skip: !define.supportsDescriptors }, function (st) {
-		var o = { a: 1, b: 2, c: 3 };
-		Object.defineProperty(o, 'a', {
-			get: function () {
-				delete this.b;
-				return 1;
-			}
-		});
-		st.deepEqual(entries(o), [['a', 1], ['c', 3]], 'when "b" is deleted prior to being visited, it should not show up');
-		st.end();
-	});
-
-	t.test('not-yet-visited keys made non-enumerable on [[Get]] must not show up in output', { skip: !define.supportsDescriptors }, function (st) {
-		var o = { a: 'A', b: 'B' };
-		Object.defineProperty(o, 'a', {
-			get: function () {
-				Object.defineProperty(o, 'b', { enumerable: false });
-				return 'A';
-			}
-		});
-		st.deepEqual(entries(o), [['a', 'A']], 'when "b" is made non-enumerable prior to being visited, it should not show up');
-		st.end();
-	});
-};
diff --git a/node_modules/object.fromentries/.eslintrc b/node_modules/object.fromentries/.eslintrc
deleted file mode 100644
index d6d9fd3..0000000
--- a/node_modules/object.fromentries/.eslintrc
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"id-length": 0,
-		"max-statements-per-line": [2, { "max": 2 }],
-		"max-statements": [2, 22],
-		"multiline-comment-style": 1,
-		"new-cap": [2, {
-			"capIsNewExceptions": [
-				"AddEntriesFromIterable",
-				"CreateDataPropertyOrThrow",
-				"Get",
-				"GetIterator",
-				"IsArray",
-				"IteratorStep",
-				"IteratorClose",
-				"IteratorValue",
-				"ThrowCompletion",
-				"ToPropertyKey",
-				"Type",
-				"RequireObjectCoercible",
-			],
-		}],
-	},
-
-	"overrides": [
-		{
-			"files": "test/**",
-			"rules": {
-				"no-invalid-this": 1,
-			},
-		},
-	],
-}
diff --git a/node_modules/object.fromentries/.github/workflows/rebase.yml b/node_modules/object.fromentries/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/object.fromentries/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/object.fromentries/.travis.yml b/node_modules/object.fromentries/.travis.yml
deleted file mode 100644
index 2d1c1d2..0000000
--- a/node_modules/object.fromentries/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
-  allow_failures:
-    - env: COVERAGE=true
diff --git a/node_modules/object.fromentries/CHANGELOG.md b/node_modules/object.fromentries/CHANGELOG.md
deleted file mode 100644
index 78f70e1..0000000
--- a/node_modules/object.fromentries/CHANGELOG.md
+++ /dev/null
@@ -1,25 +0,0 @@
-2.0.2 / 2019-12-12
-=================
-  * [Refactor] use split-up `es-abstract` (63% bundle size decrease)
-  * [readme] remove testling
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`
-  * [meta] add `funding` field
-  * [Tests] use shared travis-ci configs
-  * [actions] add automatic rebasing / merge commit blocking
-
-2.0.1 / 2019-10-03
-=================
-  * [Fix] do not mutate `Object.fromEntries` when already present
-  * [Deps] update `define-properties`, `es-abstract`, `has`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape`
-  * [Tests] up to `node` `v12.9`, `v11.15`, `v10.16`, `v9.11`, `v8.16`, `v6.17`, `v4.9`
-  * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
-
-2.0.0 / 2018-08-09
-=================
-  * [Breaking] throw when `iterable` is nullish
-  * [Docs] Fix link to proposed spec
-
-1.0.0 / 2018-03-21
-=================
-  * v1.0.0
diff --git a/node_modules/object.fromentries/LICENSE b/node_modules/object.fromentries/LICENSE
deleted file mode 100644
index 9dd868f..0000000
--- a/node_modules/object.fromentries/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Jordan Harband
-
-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.
diff --git a/node_modules/object.fromentries/README.md b/node_modules/object.fromentries/README.md
deleted file mode 100644
index fa5b18b..0000000
--- a/node_modules/object.fromentries/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# object.fromentries <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ES spec-proposal-compliant `Object.fromEntries` shim. Invoke its "shim" method to shim `Object.fromEntries` if it is unavailable or noncompliant.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [proposed spec](https://tc39.github.io/proposal-object-from-entries/).
-
-Most common usage:
-```js
-var assert = require('assert');
-var fromEntries = require('object.fromentries');
-
-var obj = { a: 1, b: 2, c: 3 };
-var actual = fromEntries(Object.entries(obj));
-
-assert.deepEqual(obj, actual);
-
-if (!Object.fromEntries) {
-	fromEntries.shim();
-}
-
-assert.deepEqual(Object.fromEntries(Object.entries(obj)), obj);
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.com/package/object.fromentries
-[npm-version-svg]: http://versionbadg.es/es-shims/Object.fromEntries.svg
-[travis-svg]: https://travis-ci.org/es-shims/Object.fromEntries.svg
-[travis-url]: https://travis-ci.org/es-shims/Object.fromEntries
-[deps-svg]: https://david-dm.org/es-shims/Object.fromEntries.svg
-[deps-url]: https://david-dm.org/es-shims/Object.fromEntries
-[dev-deps-svg]: https://david-dm.org/es-shims/Object.fromEntries/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Object.fromEntries#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/object.fromentries.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/object.fromentries.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/object.fromentries.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=object.fromentries
diff --git a/node_modules/object.fromentries/auto.js b/node_modules/object.fromentries/auto.js
deleted file mode 100644
index 8ebf606..0000000
--- a/node_modules/object.fromentries/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/node_modules/object.fromentries/implementation.js b/node_modules/object.fromentries/implementation.js
deleted file mode 100644
index 3c85703..0000000
--- a/node_modules/object.fromentries/implementation.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-var AddEntriesFromIterable = require('es-abstract/2019/AddEntriesFromIterable');
-var CreateDataPropertyOrThrow = require('es-abstract/2019/CreateDataPropertyOrThrow');
-var Get = require('es-abstract/2019/Get');
-var IsArray = require('es-abstract/2019/IsArray');
-var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible');
-var ToPropertyKey = require('es-abstract/2019/ToPropertyKey');
-var Type = require('es-abstract/2019/Type');
-
-var adder = function addDataProperty(key, value) {
-	var O = this; // eslint-disable-line no-invalid-this
-	var propertyKey = ToPropertyKey(key);
-	CreateDataPropertyOrThrow(O, propertyKey, value);
-};
-
-var legacyAssign = function assign(obj, entries) {
-	for (var i = 0; i < entries.length; ++i) {
-		var entry = entries[i];
-		if (Type(entry) !== 'Object') {
-			throw new TypeError('iterator returned a non-object; entry expected');
-		}
-
-		var key = Get(entry, '0');
-		var value = Get(entry, '1');
-		var propertyKey = ToPropertyKey(key);
-		CreateDataPropertyOrThrow(obj, propertyKey, value);
-	}
-};
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-module.exports = function fromEntries(iterable) {
-	RequireObjectCoercible(iterable);
-
-	var obj = {};
-
-	// this part isn't in the spec, it's for a reasonable fallback for pre-ES6 environments
-	if (!hasSymbols) {
-		if (!IsArray(iterable)) {
-			throw new TypeError('this environment lacks native Symbols, and can not support non-Array iterables');
-		}
-		legacyAssign(obj, iterable);
-		return obj;
-	}
-
-	return AddEntriesFromIterable(obj, iterable, adder);
-};
diff --git a/node_modules/object.fromentries/index.js b/node_modules/object.fromentries/index.js
deleted file mode 100644
index a6b0aec..0000000
--- a/node_modules/object.fromentries/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var bind = require('function-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var polyfill = bind.call(getPolyfill());
-
-define(polyfill, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = polyfill;
diff --git a/node_modules/object.fromentries/package.json b/node_modules/object.fromentries/package.json
deleted file mode 100644
index 58befed..0000000
--- a/node_modules/object.fromentries/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-	"name": "object.fromentries",
-	"version": "2.0.2",
-	"author": "Jordan Harband <ljharb@gmail.com>",
-	"funding": {
-		"url": "https://github.com/sponsors/ljharb"
-	},
-	"description": "ES proposal-spec-compliant Object.fromEntries shim.",
-	"license": "MIT",
-	"main": "index.js",
-	"scripts": {
-		"pretest": "npm run --silent lint",
-		"test": "npm run --silent tests-only",
-		"posttest": "npx aud",
-		"tests-only": "es-shim-api --bound && npm run --silent test:shimmed && npm run --silent test:module",
-		"test:shimmed": "node test/shimmed.js",
-		"test:module": "node test/index.js",
-		"coverage": "covert test/*.js",
-		"coverage-quiet": "covert test/*.js --quiet",
-		"lint": "eslint test/*.js *.js"
-	},
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/es-shims/Object.fromEntries.git"
-	},
-	"keywords": [
-		"Object.fromEntries",
-		"Object.entries",
-		"Object.values",
-		"Object.keys",
-		"entries",
-		"values",
-		"ES7",
-		"ES8",
-		"ES2017",
-		"shim",
-		"object",
-		"keys",
-		"polyfill",
-		"es-shim API"
-	],
-	"dependencies": {
-		"define-properties": "^1.1.3",
-		"es-abstract": "^1.17.0-next.1",
-		"function-bind": "^1.1.1",
-		"has": "^1.0.3"
-	},
-	"devDependencies": {
-		"@es-shims/api": "^2.1.2",
-		"@ljharb/eslint-config": "^15.0.2",
-		"array-map": "^0.0.0",
-		"covert": "^1.1.1",
-		"eslint": "^6.7.2",
-		"tape": "^4.11.0"
-	},
-	"testling": {
-		"files": "test/index.js",
-		"browsers": [
-			"iexplore/9.0..latest",
-			"firefox/4.0..6.0",
-			"firefox/15.0..latest",
-			"firefox/nightly",
-			"chrome/4.0..10.0",
-			"chrome/20.0..latest",
-			"chrome/canary",
-			"opera/11.6..latest",
-			"opera/next",
-			"safari/5.0..latest",
-			"ipad/6.0..latest",
-			"iphone/6.0..latest",
-			"android-browser/4.2"
-		]
-	},
-	"engines": {
-		"node": ">= 0.4"
-	}
-}
diff --git a/node_modules/object.fromentries/polyfill.js b/node_modules/object.fromentries/polyfill.js
deleted file mode 100644
index 1c0c611..0000000
--- a/node_modules/object.fromentries/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
-	return typeof Object.fromEntries === 'function' ? Object.fromEntries : implementation;
-};
diff --git a/node_modules/object.fromentries/shim.js b/node_modules/object.fromentries/shim.js
deleted file mode 100644
index adaa6a2..0000000
--- a/node_modules/object.fromentries/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var getPolyfill = require('./polyfill');
-var define = require('define-properties');
-
-module.exports = function shimEntries() {
-	var polyfill = getPolyfill();
-	define(Object, { fromEntries: polyfill }, {
-		fromEntries: function testEntries() {
-			return Object.fromEntries !== polyfill;
-		}
-	});
-	return polyfill;
-};
diff --git a/node_modules/object.fromentries/test/index.js b/node_modules/object.fromentries/test/index.js
deleted file mode 100644
index e6d5af6..0000000
--- a/node_modules/object.fromentries/test/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var fromEntries = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
-	t.test('bad array/this value', function (st) {
-		st['throws'](function () { fromEntries(undefined); }, TypeError, 'undefined is not an object');
-		st['throws'](function () { fromEntries(null); }, TypeError, 'null is not an object');
-		st.end();
-	});
-
-	runTests(fromEntries, t);
-
-	t.end();
-});
diff --git a/node_modules/object.fromentries/test/shimmed.js b/node_modules/object.fromentries/test/shimmed.js
deleted file mode 100644
index ed7a671..0000000
--- a/node_modules/object.fromentries/test/shimmed.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-var fromEntries = require('../');
-fromEntries.shim();
-
-var test = require('tape');
-var keys = require('object-keys');
-var defineProperties = require('define-properties');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = function f() {}.name === 'f';
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
-	t.equal(Object.fromEntries.length, 1, 'Object.fromEntries has a length of 1');
-	t.test('Function name', { skip: !functionsHaveNames }, function (st) {
-		st.equal(Object.fromEntries.name, 'fromEntries', 'Object.fromEntries has name "fromEntries"');
-		st.end();
-	});
-
-	t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
-		et.equal(false, isEnumerable.call(Object, 'fromEntries'), 'Object.fromEntries is not enumerable');
-		et.end();
-	});
-
-	var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
-	t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
-		st['throws'](function () { return Object.fromEntries(undefined); }, TypeError, 'undefined is not an object');
-		st['throws'](function () { return Object.fromEntries(null); }, TypeError, 'null is not an object');
-		st.end();
-	});
-
-	t.test('does not mutate global method', function (st) {
-		st.deepEqual(keys(Object.fromEntries), [], 'no enumerable keys');
-		st.equal('shim' in Object.fromEntries, false, '"shim" is not present');
-		st.equal('getPolyfill' in Object.fromEntries, false, '"getPolyfill" is not present');
-		st.equal('implementation' in Object.fromEntries, false, '"implementation" is not present');
-		st.end();
-	});
-
-	runTests(Object.fromEntries, t);
-
-	t.end();
-});
diff --git a/node_modules/object.fromentries/test/tests.js b/node_modules/object.fromentries/test/tests.js
deleted file mode 100644
index 9ae8707..0000000
--- a/node_modules/object.fromentries/test/tests.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-module.exports = function (fromEntries, t) {
-	var a = {};
-	var b = {};
-	var c = {};
-	var entries = [['a', a], ['b', b], ['c', c]];
-	var obj = { a: a, b: b, c: c };
-
-	t.deepEqual(fromEntries(entries), obj, 'entries -> obj');
-
-	t['throws'](function () { fromEntries(); }, 'entries throws on absent iterable');
-	t['throws'](function () { fromEntries(undefined); }, 'entries throws on undefined');
-	t['throws'](function () { fromEntries(null); }, 'entries throws on null');
-};
diff --git a/node_modules/os-tmpdir/index.js b/node_modules/os-tmpdir/index.js
deleted file mode 100644
index 2077b1c..0000000
--- a/node_modules/os-tmpdir/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-var isWindows = process.platform === 'win32';
-var trailingSlashRe = isWindows ? /[^:]\\$/ : /.\/$/;
-
-// https://github.com/nodejs/node/blob/3e7a14381497a3b73dda68d05b5130563cdab420/lib/os.js#L25-L43
-module.exports = function () {
-	var path;
-
-	if (isWindows) {
-		path = process.env.TEMP ||
-			process.env.TMP ||
-			(process.env.SystemRoot || process.env.windir) + '\\temp';
-	} else {
-		path = process.env.TMPDIR ||
-			process.env.TMP ||
-			process.env.TEMP ||
-			'/tmp';
-	}
-
-	if (trailingSlashRe.test(path)) {
-		path = path.slice(0, -1);
-	}
-
-	return path;
-};
diff --git a/node_modules/os-tmpdir/license b/node_modules/os-tmpdir/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/os-tmpdir/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-
-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.
diff --git a/node_modules/os-tmpdir/package.json b/node_modules/os-tmpdir/package.json
deleted file mode 100644
index 180a317..0000000
--- a/node_modules/os-tmpdir/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "os-tmpdir",
-  "version": "1.0.2",
-  "description": "Node.js os.tmpdir() ponyfill",
-  "license": "MIT",
-  "repository": "sindresorhus/os-tmpdir",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "files": [
-    "index.js"
-  ],
-  "keywords": [
-    "built-in",
-    "core",
-    "ponyfill",
-    "polyfill",
-    "shim",
-    "os",
-    "tmpdir",
-    "tempdir",
-    "tmp",
-    "temp",
-    "dir",
-    "directory",
-    "env",
-    "environment"
-  ],
-  "devDependencies": {
-    "ava": "*",
-    "xo": "^0.16.0"
-  }
-}
diff --git a/node_modules/os-tmpdir/readme.md b/node_modules/os-tmpdir/readme.md
deleted file mode 100644
index c09f7ed..0000000
--- a/node_modules/os-tmpdir/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# os-tmpdir [![Build Status](https://travis-ci.org/sindresorhus/os-tmpdir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-tmpdir)
-
-> Node.js [`os.tmpdir()`](https://nodejs.org/api/os.html#os_os_tmpdir) [ponyfill](https://ponyfill.com)
-
-Use this instead of `require('os').tmpdir()` to get a consistent behavior on different Node.js versions (even 0.8).
-
-
-## Install
-
-```
-$ npm install --save os-tmpdir
-```
-
-
-## Usage
-
-```js
-const osTmpdir = require('os-tmpdir');
-
-osTmpdir();
-//=> '/var/folders/m3/5574nnhn0yj488ccryqr7tc80000gn/T'
-```
-
-
-## API
-
-See the [`os.tmpdir()` docs](https://nodejs.org/api/os.html#os_os_tmpdir).
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/prop-types/CHANGELOG.md b/node_modules/prop-types/CHANGELOG.md
deleted file mode 100644
index 025d2f4..0000000
--- a/node_modules/prop-types/CHANGELOG.md
+++ /dev/null
@@ -1,92 +0,0 @@
-## 15.7.2
-* [Fix] ensure nullish values in `oneOf` do not crash ([#256](https://github.com/facebook/prop-types/issues/256))
-* [Fix] move `loose-envify` back to production deps, for browerify usage ([#203](https://github.com/facebook/prop-types/issues/203))
-
-## 15.7.1
-* [Fix] avoid template literal syntax ([#255](https://github.com/facebook/prop-types/issues/255), [#254](https://github.com/facebook/prop-types/issues/254))
-
-## 15.7.0
-* [New] Add `.elementType` ([#211](https://github.com/facebook/prop-types/pull/211))
-* [New] add `PropTypes.resetWarningCache` ([#178](https://github.com/facebook/prop-types/pull/178))
-* `oneOf`: improve warning when multiple arguments are supplied ([#244](https://github.com/facebook/prop-types/pull/244))
-* Fix `oneOf` when used with Symbols ([#224](https://github.com/facebook/prop-types/pull/224))
-* Avoid relying on `hasOwnProperty` being present on values' prototypes ([#112](https://github.com/facebook/prop-types/pull/112), [#187](https://github.com/facebook/prop-types/pull/187))
-* Improve readme ([#248](https://github.com/facebook/prop-types/pull/248), [#233](https://github.com/facebook/prop-types/pull/233))
-* Clean up mistaken runtime dep, swap envify for loose-envify ([#204](https://github.com/facebook/prop-types/pull/204))
-
-## 15.6.2
-* Remove the `fbjs` dependency by inlining some helpers from it ([#194](https://github.com/facebook/prop-types/pull/194)))
-
-## 15.6.1
-* Fix an issue where outdated BSD license headers were still present in the published bundle [#162](https://github.com/facebook/prop-types/issues/162)
-
-## 15.6.0
-
-* Switch from BSD + Patents to MIT license
-* Add PropTypes.exact, like PropTypes.shape but warns on extra object keys. ([@thejameskyle](https://github.com/thejameskyle) and [@aweary](https://github.com/aweary) in [#41](https://github.com/facebook/prop-types/pull/41) and [#87](https://github.com/facebook/prop-types/pull/87))
-
-## 15.5.10
-
-* Fix a false positive warning when using a production UMD build of a third-party library with a DEV version of React. ([@gaearon](https://github.com/gaearon) in [#50](https://github.com/facebook/prop-types/pull/50))
-
-## 15.5.9
-
-* Add `loose-envify` Browserify transform for users who don't envify globally. ([@mridgway](https://github.com/mridgway) in [#45](https://github.com/facebook/prop-types/pull/45))
-
-## 15.5.8
-
-* Limit the manual PropTypes call warning count because it has false positives with React versions earlier than 15.2.0 in the 15.x branch and 0.14.9 in the 0.14.x branch. ([@gaearon](https://github.com/gaearon) in [#26](https://github.com/facebook/prop-types/pull/26))
-
-## 15.5.7
-
-* **Critical Bugfix:** Fix an accidental breaking change that caused errors in production when used through `React.PropTypes`.  ([@gaearon](https://github.com/gaearon) in [#20](https://github.com/facebook/prop-types/pull/20))
-* Improve the size of production UMD build.  ([@aweary](https://github.com/aweary) in [38ba18](https://github.com/facebook/prop-types/commit/38ba18a4a8f705f4b2b33c88204573ddd604f2d6) and [7882a7](https://github.com/facebook/prop-types/commit/7882a7285293db5f284bcf559b869fd2cd4c44d4))
-
-## 15.5.6
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Fix a markdown issue in README. ([@bvaughn](https://github.com/bvaughn) in [174f77](https://github.com/facebook/prop-types/commit/174f77a50484fa628593e84b871fb40eed78b69a))
-
-## 15.5.5
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Add missing documentation and license files.  ([@bvaughn](https://github.com/bvaughn) in [0a53d3](https://github.com/facebook/prop-types/commit/0a53d3a34283ae1e2d3aa396632b6dc2a2061e6a))
-
-## 15.5.4
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Reduce the size of the UMD Build. ([@acdlite](https://github.com/acdlite) in [31e9344](https://github.com/facebook/prop-types/commit/31e9344ca3233159928da66295da17dad82db1a8))
-* Remove bad package url. ([@ljharb](https://github.com/ljharb) in [158198f](https://github.com/facebook/prop-types/commit/158198fd6c468a3f6f742e0e355e622b3914048a))
-* Remove the accidentally included typechecking code from the production build.
-
-## 15.5.3
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Remove the accidentally included React package code from the UMD bundle. ([@acdlite](https://github.com/acdlite) in [df318bb](https://github.com/facebook/prop-types/commit/df318bba8a89bc5aadbb0292822cf4ed71d27ace))
-
-## 15.5.2
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Remove dependency on React for CommonJS entry point. ([@acdlite](https://github.com/acdlite) in [cae72bb](https://github.com/facebook/prop-types/commit/cae72bb281a3766c765e3624f6088c3713567e6d))
-
-
-## 15.5.1
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Remove accidental uncompiled ES6 syntax in the published package. ([@acdlite](https://github.com/acdlite) in [e191963](https://github.com/facebook/react/commit/e1919638b39dd65eedd250a8bb649773ca61b6f1))
-
-## 15.5.0
-
-**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.**
-
-* Initial release.
-
-## Before 15.5.0
-
-PropTypes was previously included in React, but is now a separate package. For earlier history of PropTypes [see the React change log.](https://github.com/facebook/react/blob/master/CHANGELOG.md)
diff --git a/node_modules/prop-types/LICENSE b/node_modules/prop-types/LICENSE
deleted file mode 100644
index 188fb2b..0000000
--- a/node_modules/prop-types/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2013-present, Facebook, Inc.
-
-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.
diff --git a/node_modules/prop-types/README.md b/node_modules/prop-types/README.md
deleted file mode 100644
index 1a23c9d..0000000
--- a/node_modules/prop-types/README.md
+++ /dev/null
@@ -1,296 +0,0 @@
-# prop-types [![Build Status](https://travis-ci.com/facebook/prop-types.svg?branch=master)](https://travis-ci.org/facebook/prop-types)
-
-Runtime type checking for React props and similar objects.
-
-You can use prop-types to document the intended types of properties passed to
-components. React (and potentially other libraries—see the checkPropTypes()
-reference below) will check props passed to your components against those
-definitions, and warn in development if they don’t match.
-
-## Installation
-
-```shell
-npm install --save prop-types
-```
-
-## Importing
-
-```js
-import PropTypes from 'prop-types'; // ES6
-var PropTypes = require('prop-types'); // ES5 with npm
-```
-
-### CDN
-
-If you prefer to exclude `prop-types` from your application and use it
-globally via `window.PropTypes`, the `prop-types` package provides
-single-file distributions, which are hosted on the following CDNs:
-
-* [**unpkg**](https://unpkg.com/prop-types/)
-```html
-<!-- development version -->
-<script src="https://unpkg.com/prop-types@15.6/prop-types.js"></script>
-
-<!-- production version -->
-<script src="https://unpkg.com/prop-types@15.6/prop-types.min.js"></script>
-```
-
-* [**cdnjs**](https://cdnjs.com/libraries/prop-types)
-```html
-<!-- development version -->
-<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.0/prop-types.js"></script>
-
-<!-- production version -->
-<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.0/prop-types.min.js"></script>
-```
-
-To load a specific version of `prop-types` replace `15.6.0` with the version number.
-
-## Usage
-
-PropTypes was originally exposed as part of the React core module, and is
-commonly used with React components.
-Here is an example of using PropTypes with a React component, which also
-documents the different validators provided:
-
-```js
-import React from 'react';
-import PropTypes from 'prop-types';
-
-class MyComponent extends React.Component {
-  render() {
-    // ... do things with the props
-  }
-}
-
-MyComponent.propTypes = {
-  // You can declare that a prop is a specific JS primitive. By default, these
-  // are all optional.
-  optionalArray: PropTypes.array,
-  optionalBool: PropTypes.bool,
-  optionalFunc: PropTypes.func,
-  optionalNumber: PropTypes.number,
-  optionalObject: PropTypes.object,
-  optionalString: PropTypes.string,
-  optionalSymbol: PropTypes.symbol,
-
-  // Anything that can be rendered: numbers, strings, elements or an array
-  // (or fragment) containing these types.
-  optionalNode: PropTypes.node,
-
-  // A React element (ie. <MyComponent />).
-  optionalElement: PropTypes.element,
-
-  // A React element type (ie. MyComponent).
-  optionalElementType: PropTypes.elementType,
-
-  // You can also declare that a prop is an instance of a class. This uses
-  // JS's instanceof operator.
-  optionalMessage: PropTypes.instanceOf(Message),
-
-  // You can ensure that your prop is limited to specific values by treating
-  // it as an enum.
-  optionalEnum: PropTypes.oneOf(['News', 'Photos']),
-
-  // An object that could be one of many types
-  optionalUnion: PropTypes.oneOfType([
-    PropTypes.string,
-    PropTypes.number,
-    PropTypes.instanceOf(Message)
-  ]),
-
-  // An array of a certain type
-  optionalArrayOf: PropTypes.arrayOf(PropTypes.number),
-
-  // An object with property values of a certain type
-  optionalObjectOf: PropTypes.objectOf(PropTypes.number),
-
-  // You can chain any of the above with `isRequired` to make sure a warning
-  // is shown if the prop isn't provided.
-
-  // An object taking on a particular shape
-  optionalObjectWithShape: PropTypes.shape({
-    optionalProperty: PropTypes.string,
-    requiredProperty: PropTypes.number.isRequired
-  }),
-
-  // An object with warnings on extra properties
-  optionalObjectWithStrictShape: PropTypes.exact({
-    optionalProperty: PropTypes.string,
-    requiredProperty: PropTypes.number.isRequired
-  }),
-
-  requiredFunc: PropTypes.func.isRequired,
-
-  // A value of any data type
-  requiredAny: PropTypes.any.isRequired,
-
-  // You can also specify a custom validator. It should return an Error
-  // object if the validation fails. Don't `console.warn` or throw, as this
-  // won't work inside `oneOfType`.
-  customProp: function(props, propName, componentName) {
-    if (!/matchme/.test(props[propName])) {
-      return new Error(
-        'Invalid prop `' + propName + '` supplied to' +
-        ' `' + componentName + '`. Validation failed.'
-      );
-    }
-  },
-
-  // You can also supply a custom validator to `arrayOf` and `objectOf`.
-  // It should return an Error object if the validation fails. The validator
-  // will be called for each key in the array or object. The first two
-  // arguments of the validator are the array or object itself, and the
-  // current item's key.
-  customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {
-    if (!/matchme/.test(propValue[key])) {
-      return new Error(
-        'Invalid prop `' + propFullName + '` supplied to' +
-        ' `' + componentName + '`. Validation failed.'
-      );
-    }
-  })
-};
-```
-
-Refer to the [React documentation](https://facebook.github.io/react/docs/typechecking-with-proptypes.html) for more information.
-
-## Migrating from React.PropTypes
-
-Check out [Migrating from React.PropTypes](https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes) for details on how to migrate to `prop-types` from `React.PropTypes`.
-
-Note that this blog posts **mentions a codemod script that performs the conversion automatically**.
-
-There are also important notes below.
-
-## How to Depend on This Package?
-
-For apps, we recommend putting it in `dependencies` with a caret range.
-For example:
-
-```js
-  "dependencies": {
-    "prop-types": "^15.5.7"
-  }
-```
-
-For libraries, we *also* recommend leaving it in `dependencies`:
-
-```js
-  "dependencies": {
-    "prop-types": "^15.5.7"
-  },
-  "peerDependencies": {
-    "react": "^15.5.0"
-  }
-```
-
-**Note:** there are known issues in versions before 15.5.7 so we recommend using it as the minimal version.
-
-Make sure that the version range uses a caret (`^`) and thus is broad enough for npm to efficiently deduplicate packages.
-
-For UMD bundles of your components, make sure you **don’t** include `PropTypes` in the build. Usually this is done by marking it as an external (the specifics depend on your bundler), just like you do with React.
-
-## Compatibility
-
-### React 0.14
-
-This package is compatible with **React 0.14.9**. Compared to 0.14.8 (which was released in March of 2016), there are no other changes in 0.14.9, so it should be a painless upgrade.
-
-```shell
-# ATTENTION: Only run this if you still use React 0.14!
-npm install --save react@^0.14.9 react-dom@^0.14.9
-```
-
-### React 15+
-
-This package is compatible with **React 15.3.0** and higher.
-
-```
-npm install --save react@^15.3.0 react-dom@^15.3.0
-```
-
-### What happens on other React versions?
-
-It outputs warnings with the message below even though the developer doesn’t do anything wrong. Unfortunately there is no solution for this other than updating React to either 15.3.0 or higher, or 0.14.9 if you’re using React 0.14.
-
-## Difference from `React.PropTypes`: Don’t Call Validator Functions
-
-First of all, **which version of React are you using**? You might be seeing this message because a component library has updated to use `prop-types` package, but your version of React is incompatible with it. See the [above section](#compatibility) for more details.
-
-Are you using either React 0.14.9 or a version higher than React 15.3.0? Read on.
-
-When you migrate components to use the standalone `prop-types`, **all validator functions will start throwing an error if you call them directly**. This makes sure that nobody relies on them in production code, and it is safe to strip their implementations to optimize the bundle size.
-
-Code like this is still fine:
-
-```js
-MyComponent.propTypes = {
-  myProp: PropTypes.bool
-};
-```
-
-However, code like this will not work with the `prop-types` package:
-
-```js
-// Will not work with `prop-types` package!
-var errorOrNull = PropTypes.bool(42, 'myProp', 'MyComponent', 'prop');
-```
-
-It will throw an error:
-
-```
-Calling PropTypes validators directly is not supported by the `prop-types` package.
-Use PropTypes.checkPropTypes() to call them.
-```
-
-(If you see **a warning** rather than an error with this message, please check the [above section about compatibility](#compatibility).)
-
-This is new behavior, and you will only encounter it when you migrate from `React.PropTypes` to the `prop-types` package. For the vast majority of components, this doesn’t matter, and if you didn’t see [this warning](https://facebook.github.io/react/warnings/dont-call-proptypes.html) in your components, your code is safe to migrate. This is not a breaking change in React because you are only opting into this change for a component by explicitly changing your imports to use `prop-types`. If you temporarily need the old behavior, you can keep using `React.PropTypes` until React 16.
-
-**If you absolutely need to trigger the validation manually**, call `PropTypes.checkPropTypes()`. Unlike the validators themselves, this function is safe to call in production, as it will be replaced by an empty function:
-
-```js
-// Works with standalone PropTypes
-PropTypes.checkPropTypes(MyComponent.propTypes, props, 'prop', 'MyComponent');
-```
-See below for more info.
-
-**You might also see this error** if you’re calling a `PropTypes` validator from your own custom `PropTypes` validator. In this case, the fix is to make sure that you are passing *all* of the arguments to the inner function. There is a more in-depth explanation of how to fix it [on this page](https://facebook.github.io/react/warnings/dont-call-proptypes.html#fixing-the-false-positive-in-third-party-proptypes). Alternatively, you can temporarily keep using `React.PropTypes` until React 16, as it would still only warn in this case.
-
-If you use a bundler like Browserify or Webpack, don’t forget to [follow these instructions](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) to correctly bundle your application in development or production mode. Otherwise you’ll ship unnecessary code to your users.
-
-## PropTypes.checkPropTypes
-
-React will automatically check the propTypes you set on the component, but if
-you are using PropTypes without React then you may want to manually call
-`PropTypes.checkPropTypes`, like so:
-
-```js
-const myPropTypes = {
-  name: PropTypes.string,
-  age: PropTypes.number,
-  // ... define your prop validations
-};
-
-const props = {
-  name: 'hello', // is valid
-  age: 'world', // not valid
-};
-
-// Let's say your component is called 'MyComponent'
-
-// Works with standalone PropTypes
-PropTypes.checkPropTypes(myPropTypes, props, 'age', 'MyComponent');
-// This will warn as follows:
-// Warning: Failed prop type: Invalid prop `age` of type `string` supplied to
-// `MyComponent`, expected `number`.
-```
-
-## PropTypes.resetWarningCache()
-
-`PropTypes.checkPropTypes(...)` only `console.error.log(...)`s a given message once.  To reset the cache while testing call `PropTypes.resetWarningCache()`
-
-### License
-
-prop-types is [MIT licensed](./LICENSE).
diff --git a/node_modules/prop-types/checkPropTypes.js b/node_modules/prop-types/checkPropTypes.js
deleted file mode 100644
index 49111df..0000000
--- a/node_modules/prop-types/checkPropTypes.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var printWarning = function() {};
-
-if (process.env.NODE_ENV !== 'production') {
-  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-  var loggedTypeFailures = {};
-  var has = Function.call.bind(Object.prototype.hasOwnProperty);
-
-  printWarning = function(text) {
-    var message = 'Warning: ' + text;
-    if (typeof console !== 'undefined') {
-      console.error(message);
-    }
-    try {
-      // --- Welcome to debugging React ---
-      // This error was thrown as a convenience so that you can use this stack
-      // to find the callsite that caused this warning to fire.
-      throw new Error(message);
-    } catch (x) {}
-  };
-}
-
-/**
- * Assert that the values match with the type specs.
- * Error messages are memorized and will only be shown once.
- *
- * @param {object} typeSpecs Map of name to a ReactPropType
- * @param {object} values Runtime values that need to be type-checked
- * @param {string} location e.g. "prop", "context", "child context"
- * @param {string} componentName Name of the component for error messages.
- * @param {?Function} getStack Returns the component stack.
- * @private
- */
-function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
-  if (process.env.NODE_ENV !== 'production') {
-    for (var typeSpecName in typeSpecs) {
-      if (has(typeSpecs, typeSpecName)) {
-        var error;
-        // Prop type validation may throw. In case they do, we don't want to
-        // fail the render phase where it didn't fail before. So we log it.
-        // After these have been cleaned up, we'll let them throw.
-        try {
-          // This is intentionally an invariant that gets caught. It's the same
-          // behavior as without this statement except with a better message.
-          if (typeof typeSpecs[typeSpecName] !== 'function') {
-            var err = Error(
-              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
-              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
-            );
-            err.name = 'Invariant Violation';
-            throw err;
-          }
-          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
-        } catch (ex) {
-          error = ex;
-        }
-        if (error && !(error instanceof Error)) {
-          printWarning(
-            (componentName || 'React class') + ': type specification of ' +
-            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
-            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
-            'You may have forgotten to pass an argument to the type checker ' +
-            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
-            'shape all require an argument).'
-          );
-        }
-        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
-          // Only monitor this failure once because there tends to be a lot of the
-          // same error.
-          loggedTypeFailures[error.message] = true;
-
-          var stack = getStack ? getStack() : '';
-
-          printWarning(
-            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
-          );
-        }
-      }
-    }
-  }
-}
-
-/**
- * Resets warning cache when testing.
- *
- * @private
- */
-checkPropTypes.resetWarningCache = function() {
-  if (process.env.NODE_ENV !== 'production') {
-    loggedTypeFailures = {};
-  }
-}
-
-module.exports = checkPropTypes;
diff --git a/node_modules/prop-types/factory.js b/node_modules/prop-types/factory.js
deleted file mode 100644
index abdf8e6..0000000
--- a/node_modules/prop-types/factory.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-// React 15.5 references this module, and assumes PropTypes are still callable in production.
-// Therefore we re-export development-only version with all the PropTypes checks here.
-// However if one is migrating to the `prop-types` npm library, they will go through the
-// `index.js` entry point, and it will branch depending on the environment.
-var factory = require('./factoryWithTypeCheckers');
-module.exports = function(isValidElement) {
-  // It is still allowed in 15.5.
-  var throwOnDirectAccess = false;
-  return factory(isValidElement, throwOnDirectAccess);
-};
diff --git a/node_modules/prop-types/factoryWithThrowingShims.js b/node_modules/prop-types/factoryWithThrowingShims.js
deleted file mode 100644
index e5b2f9c..0000000
--- a/node_modules/prop-types/factoryWithThrowingShims.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-
-function emptyFunction() {}
-function emptyFunctionWithReset() {}
-emptyFunctionWithReset.resetWarningCache = emptyFunction;
-
-module.exports = function() {
-  function shim(props, propName, componentName, location, propFullName, secret) {
-    if (secret === ReactPropTypesSecret) {
-      // It is still safe when called from React.
-      return;
-    }
-    var err = new Error(
-      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-      'Use PropTypes.checkPropTypes() to call them. ' +
-      'Read more at http://fb.me/use-check-prop-types'
-    );
-    err.name = 'Invariant Violation';
-    throw err;
-  };
-  shim.isRequired = shim;
-  function getShim() {
-    return shim;
-  };
-  // Important!
-  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-  var ReactPropTypes = {
-    array: shim,
-    bool: shim,
-    func: shim,
-    number: shim,
-    object: shim,
-    string: shim,
-    symbol: shim,
-
-    any: shim,
-    arrayOf: getShim,
-    element: shim,
-    elementType: shim,
-    instanceOf: getShim,
-    node: shim,
-    objectOf: getShim,
-    oneOf: getShim,
-    oneOfType: getShim,
-    shape: getShim,
-    exact: getShim,
-
-    checkPropTypes: emptyFunctionWithReset,
-    resetWarningCache: emptyFunction
-  };
-
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
diff --git a/node_modules/prop-types/factoryWithTypeCheckers.js b/node_modules/prop-types/factoryWithTypeCheckers.js
deleted file mode 100644
index 3711f0b..0000000
--- a/node_modules/prop-types/factoryWithTypeCheckers.js
+++ /dev/null
@@ -1,591 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactIs = require('react-is');
-var assign = require('object-assign');
-
-var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-var checkPropTypes = require('./checkPropTypes');
-
-var has = Function.call.bind(Object.prototype.hasOwnProperty);
-var printWarning = function() {};
-
-if (process.env.NODE_ENV !== 'production') {
-  printWarning = function(text) {
-    var message = 'Warning: ' + text;
-    if (typeof console !== 'undefined') {
-      console.error(message);
-    }
-    try {
-      // --- Welcome to debugging React ---
-      // This error was thrown as a convenience so that you can use this stack
-      // to find the callsite that caused this warning to fire.
-      throw new Error(message);
-    } catch (x) {}
-  };
-}
-
-function emptyFunctionThatReturnsNull() {
-  return null;
-}
-
-module.exports = function(isValidElement, throwOnDirectAccess) {
-  /* global Symbol */
-  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
-  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
-
-  /**
-   * Returns the iterator method function contained on the iterable object.
-   *
-   * Be sure to invoke the function with the iterable as context:
-   *
-   *     var iteratorFn = getIteratorFn(myIterable);
-   *     if (iteratorFn) {
-   *       var iterator = iteratorFn.call(myIterable);
-   *       ...
-   *     }
-   *
-   * @param {?object} maybeIterable
-   * @return {?function}
-   */
-  function getIteratorFn(maybeIterable) {
-    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
-    if (typeof iteratorFn === 'function') {
-      return iteratorFn;
-    }
-  }
-
-  /**
-   * Collection of methods that allow declaration and validation of props that are
-   * supplied to React components. Example usage:
-   *
-   *   var Props = require('ReactPropTypes');
-   *   var MyArticle = React.createClass({
-   *     propTypes: {
-   *       // An optional string prop named "description".
-   *       description: Props.string,
-   *
-   *       // A required enum prop named "category".
-   *       category: Props.oneOf(['News','Photos']).isRequired,
-   *
-   *       // A prop named "dialog" that requires an instance of Dialog.
-   *       dialog: Props.instanceOf(Dialog).isRequired
-   *     },
-   *     render: function() { ... }
-   *   });
-   *
-   * A more formal specification of how these methods are used:
-   *
-   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
-   *   decl := ReactPropTypes.{type}(.isRequired)?
-   *
-   * Each and every declaration produces a function with the same signature. This
-   * allows the creation of custom validation functions. For example:
-   *
-   *  var MyLink = React.createClass({
-   *    propTypes: {
-   *      // An optional string or URI prop named "href".
-   *      href: function(props, propName, componentName) {
-   *        var propValue = props[propName];
-   *        if (propValue != null && typeof propValue !== 'string' &&
-   *            !(propValue instanceof URI)) {
-   *          return new Error(
-   *            'Expected a string or an URI for ' + propName + ' in ' +
-   *            componentName
-   *          );
-   *        }
-   *      }
-   *    },
-   *    render: function() {...}
-   *  });
-   *
-   * @internal
-   */
-
-  var ANONYMOUS = '<<anonymous>>';
-
-  // Important!
-  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
-  var ReactPropTypes = {
-    array: createPrimitiveTypeChecker('array'),
-    bool: createPrimitiveTypeChecker('boolean'),
-    func: createPrimitiveTypeChecker('function'),
-    number: createPrimitiveTypeChecker('number'),
-    object: createPrimitiveTypeChecker('object'),
-    string: createPrimitiveTypeChecker('string'),
-    symbol: createPrimitiveTypeChecker('symbol'),
-
-    any: createAnyTypeChecker(),
-    arrayOf: createArrayOfTypeChecker,
-    element: createElementTypeChecker(),
-    elementType: createElementTypeTypeChecker(),
-    instanceOf: createInstanceTypeChecker,
-    node: createNodeChecker(),
-    objectOf: createObjectOfTypeChecker,
-    oneOf: createEnumTypeChecker,
-    oneOfType: createUnionTypeChecker,
-    shape: createShapeTypeChecker,
-    exact: createStrictShapeTypeChecker,
-  };
-
-  /**
-   * inlined Object.is polyfill to avoid requiring consumers ship their own
-   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
-   */
-  /*eslint-disable no-self-compare*/
-  function is(x, y) {
-    // SameValue algorithm
-    if (x === y) {
-      // Steps 1-5, 7-10
-      // Steps 6.b-6.e: +0 != -0
-      return x !== 0 || 1 / x === 1 / y;
-    } else {
-      // Step 6.a: NaN == NaN
-      return x !== x && y !== y;
-    }
-  }
-  /*eslint-enable no-self-compare*/
-
-  /**
-   * We use an Error-like object for backward compatibility as people may call
-   * PropTypes directly and inspect their output. However, we don't use real
-   * Errors anymore. We don't inspect their stack anyway, and creating them
-   * is prohibitively expensive if they are created too often, such as what
-   * happens in oneOfType() for any type before the one that matched.
-   */
-  function PropTypeError(message) {
-    this.message = message;
-    this.stack = '';
-  }
-  // Make `instanceof Error` still work for returned errors.
-  PropTypeError.prototype = Error.prototype;
-
-  function createChainableTypeChecker(validate) {
-    if (process.env.NODE_ENV !== 'production') {
-      var manualPropTypeCallCache = {};
-      var manualPropTypeWarningCount = 0;
-    }
-    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
-      componentName = componentName || ANONYMOUS;
-      propFullName = propFullName || propName;
-
-      if (secret !== ReactPropTypesSecret) {
-        if (throwOnDirectAccess) {
-          // New behavior only for users of `prop-types` package
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-            'Use `PropTypes.checkPropTypes()` to call them. ' +
-            'Read more at http://fb.me/use-check-prop-types'
-          );
-          err.name = 'Invariant Violation';
-          throw err;
-        } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
-          // Old behavior for people using React.PropTypes
-          var cacheKey = componentName + ':' + propName;
-          if (
-            !manualPropTypeCallCache[cacheKey] &&
-            // Avoid spamming the console because they are often not actionable except for lib authors
-            manualPropTypeWarningCount < 3
-          ) {
-            printWarning(
-              'You are manually calling a React.PropTypes validation ' +
-              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
-              'and will throw in the standalone `prop-types` package. ' +
-              'You may be seeing this warning due to a third-party PropTypes ' +
-              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
-            );
-            manualPropTypeCallCache[cacheKey] = true;
-            manualPropTypeWarningCount++;
-          }
-        }
-      }
-      if (props[propName] == null) {
-        if (isRequired) {
-          if (props[propName] === null) {
-            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
-          }
-          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
-        }
-        return null;
-      } else {
-        return validate(props, propName, componentName, location, propFullName);
-      }
-    }
-
-    var chainedCheckType = checkType.bind(null, false);
-    chainedCheckType.isRequired = checkType.bind(null, true);
-
-    return chainedCheckType;
-  }
-
-  function createPrimitiveTypeChecker(expectedType) {
-    function validate(props, propName, componentName, location, propFullName, secret) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== expectedType) {
-        // `propValue` being instance of, say, date/regexp, pass the 'object'
-        // check, but we can offer a more precise error message here rather than
-        // 'of type `object`'.
-        var preciseType = getPreciseType(propValue);
-
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createAnyTypeChecker() {
-    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
-  }
-
-  function createArrayOfTypeChecker(typeChecker) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (typeof typeChecker !== 'function') {
-        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
-      }
-      var propValue = props[propName];
-      if (!Array.isArray(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
-      }
-      for (var i = 0; i < propValue.length; i++) {
-        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
-        if (error instanceof Error) {
-          return error;
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createElementTypeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      if (!isValidElement(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createElementTypeTypeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      if (!ReactIs.isValidElementType(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createInstanceTypeChecker(expectedClass) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (!(props[propName] instanceof expectedClass)) {
-        var expectedClassName = expectedClass.name || ANONYMOUS;
-        var actualClassName = getClassName(props[propName]);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createEnumTypeChecker(expectedValues) {
-    if (!Array.isArray(expectedValues)) {
-      if (process.env.NODE_ENV !== 'production') {
-        if (arguments.length > 1) {
-          printWarning(
-            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
-            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
-          );
-        } else {
-          printWarning('Invalid argument supplied to oneOf, expected an array.');
-        }
-      }
-      return emptyFunctionThatReturnsNull;
-    }
-
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      for (var i = 0; i < expectedValues.length; i++) {
-        if (is(propValue, expectedValues[i])) {
-          return null;
-        }
-      }
-
-      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
-        var type = getPreciseType(value);
-        if (type === 'symbol') {
-          return String(value);
-        }
-        return value;
-      });
-      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createObjectOfTypeChecker(typeChecker) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (typeof typeChecker !== 'function') {
-        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
-      }
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
-      }
-      for (var key in propValue) {
-        if (has(propValue, key)) {
-          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-          if (error instanceof Error) {
-            return error;
-          }
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createUnionTypeChecker(arrayOfTypeCheckers) {
-    if (!Array.isArray(arrayOfTypeCheckers)) {
-      process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
-      return emptyFunctionThatReturnsNull;
-    }
-
-    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
-      var checker = arrayOfTypeCheckers[i];
-      if (typeof checker !== 'function') {
-        printWarning(
-          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
-          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
-        );
-        return emptyFunctionThatReturnsNull;
-      }
-    }
-
-    function validate(props, propName, componentName, location, propFullName) {
-      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
-        var checker = arrayOfTypeCheckers[i];
-        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
-          return null;
-        }
-      }
-
-      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createNodeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (!isNode(props[propName])) {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createShapeTypeChecker(shapeTypes) {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
-      }
-      for (var key in shapeTypes) {
-        var checker = shapeTypes[key];
-        if (!checker) {
-          continue;
-        }
-        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-        if (error) {
-          return error;
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createStrictShapeTypeChecker(shapeTypes) {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
-      }
-      // We need to check all keys in case some are required but missing from
-      // props.
-      var allKeys = assign({}, props[propName], shapeTypes);
-      for (var key in allKeys) {
-        var checker = shapeTypes[key];
-        if (!checker) {
-          return new PropTypeError(
-            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
-            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
-            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
-          );
-        }
-        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-        if (error) {
-          return error;
-        }
-      }
-      return null;
-    }
-
-    return createChainableTypeChecker(validate);
-  }
-
-  function isNode(propValue) {
-    switch (typeof propValue) {
-      case 'number':
-      case 'string':
-      case 'undefined':
-        return true;
-      case 'boolean':
-        return !propValue;
-      case 'object':
-        if (Array.isArray(propValue)) {
-          return propValue.every(isNode);
-        }
-        if (propValue === null || isValidElement(propValue)) {
-          return true;
-        }
-
-        var iteratorFn = getIteratorFn(propValue);
-        if (iteratorFn) {
-          var iterator = iteratorFn.call(propValue);
-          var step;
-          if (iteratorFn !== propValue.entries) {
-            while (!(step = iterator.next()).done) {
-              if (!isNode(step.value)) {
-                return false;
-              }
-            }
-          } else {
-            // Iterator will provide entry [k,v] tuples rather than values.
-            while (!(step = iterator.next()).done) {
-              var entry = step.value;
-              if (entry) {
-                if (!isNode(entry[1])) {
-                  return false;
-                }
-              }
-            }
-          }
-        } else {
-          return false;
-        }
-
-        return true;
-      default:
-        return false;
-    }
-  }
-
-  function isSymbol(propType, propValue) {
-    // Native Symbol.
-    if (propType === 'symbol') {
-      return true;
-    }
-
-    // falsy value can't be a Symbol
-    if (!propValue) {
-      return false;
-    }
-
-    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
-    if (propValue['@@toStringTag'] === 'Symbol') {
-      return true;
-    }
-
-    // Fallback for non-spec compliant Symbols which are polyfilled.
-    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
-      return true;
-    }
-
-    return false;
-  }
-
-  // Equivalent of `typeof` but with special handling for array and regexp.
-  function getPropType(propValue) {
-    var propType = typeof propValue;
-    if (Array.isArray(propValue)) {
-      return 'array';
-    }
-    if (propValue instanceof RegExp) {
-      // Old webkits (at least until Android 4.0) return 'function' rather than
-      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
-      // passes PropTypes.object.
-      return 'object';
-    }
-    if (isSymbol(propType, propValue)) {
-      return 'symbol';
-    }
-    return propType;
-  }
-
-  // This handles more types than `getPropType`. Only used for error messages.
-  // See `createPrimitiveTypeChecker`.
-  function getPreciseType(propValue) {
-    if (typeof propValue === 'undefined' || propValue === null) {
-      return '' + propValue;
-    }
-    var propType = getPropType(propValue);
-    if (propType === 'object') {
-      if (propValue instanceof Date) {
-        return 'date';
-      } else if (propValue instanceof RegExp) {
-        return 'regexp';
-      }
-    }
-    return propType;
-  }
-
-  // Returns a string that is postfixed to a warning about an invalid type.
-  // For example, "undefined" or "of type array"
-  function getPostfixForTypeWarning(value) {
-    var type = getPreciseType(value);
-    switch (type) {
-      case 'array':
-      case 'object':
-        return 'an ' + type;
-      case 'boolean':
-      case 'date':
-      case 'regexp':
-        return 'a ' + type;
-      default:
-        return type;
-    }
-  }
-
-  // Returns class name of the object, if any.
-  function getClassName(propValue) {
-    if (!propValue.constructor || !propValue.constructor.name) {
-      return ANONYMOUS;
-    }
-    return propValue.constructor.name;
-  }
-
-  ReactPropTypes.checkPropTypes = checkPropTypes;
-  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
diff --git a/node_modules/prop-types/index.js b/node_modules/prop-types/index.js
deleted file mode 100644
index e9ef51d..0000000
--- a/node_modules/prop-types/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-if (process.env.NODE_ENV !== 'production') {
-  var ReactIs = require('react-is');
-
-  // By explicitly using `prop-types` you are opting into new development behavior.
-  // http://fb.me/prop-types-in-prod
-  var throwOnDirectAccess = true;
-  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);
-} else {
-  // By explicitly using `prop-types` you are opting into new production behavior.
-  // http://fb.me/prop-types-in-prod
-  module.exports = require('./factoryWithThrowingShims')();
-}
diff --git a/node_modules/prop-types/lib/ReactPropTypesSecret.js b/node_modules/prop-types/lib/ReactPropTypesSecret.js
deleted file mode 100644
index f54525e..0000000
--- a/node_modules/prop-types/lib/ReactPropTypesSecret.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
-
-module.exports = ReactPropTypesSecret;
diff --git a/node_modules/prop-types/node_modules/.bin/loose-envify b/node_modules/prop-types/node_modules/.bin/loose-envify
deleted file mode 120000
index 2a6b8df..0000000
--- a/node_modules/prop-types/node_modules/.bin/loose-envify
+++ /dev/null
@@ -1 +0,0 @@
-../../../loose-envify/cli.js
\ No newline at end of file
diff --git a/node_modules/prop-types/node_modules/react-is/LICENSE b/node_modules/prop-types/node_modules/react-is/LICENSE
deleted file mode 100644
index b96dcb0..0000000
--- a/node_modules/prop-types/node_modules/react-is/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Facebook, Inc. and its affiliates.
-
-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.
diff --git a/node_modules/prop-types/node_modules/react-is/README.md b/node_modules/prop-types/node_modules/react-is/README.md
deleted file mode 100644
index d255977..0000000
--- a/node_modules/prop-types/node_modules/react-is/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# `react-is`
-
-This package allows you to test arbitrary values and see if they're a particular React element type.
-
-## Installation
-
-```sh
-# Yarn
-yarn add react-is
-
-# NPM
-npm install react-is
-```
-
-## Usage
-
-### Determining if a Component is Valid
-
-```js
-import React from "react";
-import * as ReactIs from "react-is";
-
-class ClassComponent extends React.Component {
-  render() {
-    return React.createElement("div");
-  }
-}
-
-const FunctionComponent = () => React.createElement("div");
-
-const ForwardRefComponent = React.forwardRef((props, ref) =>
-  React.createElement(Component, { forwardedRef: ref, ...props })
-);
-
-const Context = React.createContext(false);
-
-ReactIs.isValidElementType("div"); // true
-ReactIs.isValidElementType(ClassComponent); // true
-ReactIs.isValidElementType(FunctionComponent); // true
-ReactIs.isValidElementType(ForwardRefComponent); // true
-ReactIs.isValidElementType(Context.Provider); // true
-ReactIs.isValidElementType(Context.Consumer); // true
-ReactIs.isValidElementType(React.createFactory("div")); // true
-```
-
-### Determining an Element's Type
-
-#### Context
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-const ThemeContext = React.createContext("blue");
-
-ReactIs.isContextConsumer(<ThemeContext.Consumer />); // true
-ReactIs.isContextProvider(<ThemeContext.Provider />); // true
-ReactIs.typeOf(<ThemeContext.Provider />) === ReactIs.ContextProvider; // true
-ReactIs.typeOf(<ThemeContext.Consumer />) === ReactIs.ContextConsumer; // true
-```
-
-#### Element
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isElement(<div />); // true
-ReactIs.typeOf(<div />) === ReactIs.Element; // true
-```
-
-#### Fragment
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isFragment(<></>); // true
-ReactIs.typeOf(<></>) === ReactIs.Fragment; // true
-```
-
-#### Portal
-
-```js
-import React from "react";
-import ReactDOM from "react-dom";
-import * as ReactIs from 'react-is';
-
-const div = document.createElement("div");
-const portal = ReactDOM.createPortal(<div />, div);
-
-ReactIs.isPortal(portal); // true
-ReactIs.typeOf(portal) === ReactIs.Portal; // true
-```
-
-#### StrictMode
-
-```js
-import React from "react";
-import * as ReactIs from 'react-is';
-
-ReactIs.isStrictMode(<React.StrictMode />); // true
-ReactIs.typeOf(<React.StrictMode />) === ReactIs.StrictMode; // true
-```
diff --git a/node_modules/prop-types/node_modules/react-is/build-info.json b/node_modules/prop-types/node_modules/react-is/build-info.json
deleted file mode 100644
index 9bde9e6..0000000
--- a/node_modules/prop-types/node_modules/react-is/build-info.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "branch": "master",
-  "buildNumber": "91354",
-  "checksum": "b0ed8f5",
-  "commit": "d28bd2994",
-  "environment": "ci",
-  "reactVersion": "16.12.0-d28bd2994"
-}
diff --git a/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js b/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js
deleted file mode 100644
index 6e1f2f5..0000000
--- a/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/** @license React v16.13.0
- * react-is.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-
-
-if (process.env.NODE_ENV !== "production") {
-  (function() {
-'use strict';
-
-// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
-// nor polyfill, then a plain number is used for performance.
-var hasSymbol = typeof Symbol === 'function' && Symbol.for;
-var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
-var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
-var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
-var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
-var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
-var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
-var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
-// (unstable) APIs that have been removed. Can we remove the symbols?
-
-var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
-var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
-var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
-var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
-var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
-var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
-var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
-var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
-var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
-var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
-var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
-
-function isValidElementType(type) {
-  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
-  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
-}
-
-function typeOf(object) {
-  if (typeof object === 'object' && object !== null) {
-    var $$typeof = object.$$typeof;
-
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        var type = object.type;
-
-        switch (type) {
-          case REACT_ASYNC_MODE_TYPE:
-          case REACT_CONCURRENT_MODE_TYPE:
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-            return type;
-
-          default:
-            var $$typeofType = type && type.$$typeof;
-
-            switch ($$typeofType) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_LAZY_TYPE:
-              case REACT_MEMO_TYPE:
-              case REACT_PROVIDER_TYPE:
-                return $$typeofType;
-
-              default:
-                return $$typeof;
-            }
-
-        }
-
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-
-  return undefined;
-} // AsyncMode is deprecated along with isAsyncMode
-
-var AsyncMode = REACT_ASYNC_MODE_TYPE;
-var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
-var ContextConsumer = REACT_CONTEXT_TYPE;
-var ContextProvider = REACT_PROVIDER_TYPE;
-var Element = REACT_ELEMENT_TYPE;
-var ForwardRef = REACT_FORWARD_REF_TYPE;
-var Fragment = REACT_FRAGMENT_TYPE;
-var Lazy = REACT_LAZY_TYPE;
-var Memo = REACT_MEMO_TYPE;
-var Portal = REACT_PORTAL_TYPE;
-var Profiler = REACT_PROFILER_TYPE;
-var StrictMode = REACT_STRICT_MODE_TYPE;
-var Suspense = REACT_SUSPENSE_TYPE;
-var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
-
-function isAsyncMode(object) {
-  {
-    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
-      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
-
-      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
-    }
-  }
-
-  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
-}
-function isConcurrentMode(object) {
-  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
-}
-function isContextConsumer(object) {
-  return typeOf(object) === REACT_CONTEXT_TYPE;
-}
-function isContextProvider(object) {
-  return typeOf(object) === REACT_PROVIDER_TYPE;
-}
-function isElement(object) {
-  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
-}
-function isForwardRef(object) {
-  return typeOf(object) === REACT_FORWARD_REF_TYPE;
-}
-function isFragment(object) {
-  return typeOf(object) === REACT_FRAGMENT_TYPE;
-}
-function isLazy(object) {
-  return typeOf(object) === REACT_LAZY_TYPE;
-}
-function isMemo(object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-}
-function isPortal(object) {
-  return typeOf(object) === REACT_PORTAL_TYPE;
-}
-function isProfiler(object) {
-  return typeOf(object) === REACT_PROFILER_TYPE;
-}
-function isStrictMode(object) {
-  return typeOf(object) === REACT_STRICT_MODE_TYPE;
-}
-function isSuspense(object) {
-  return typeOf(object) === REACT_SUSPENSE_TYPE;
-}
-
-exports.AsyncMode = AsyncMode;
-exports.ConcurrentMode = ConcurrentMode;
-exports.ContextConsumer = ContextConsumer;
-exports.ContextProvider = ContextProvider;
-exports.Element = Element;
-exports.ForwardRef = ForwardRef;
-exports.Fragment = Fragment;
-exports.Lazy = Lazy;
-exports.Memo = Memo;
-exports.Portal = Portal;
-exports.Profiler = Profiler;
-exports.StrictMode = StrictMode;
-exports.Suspense = Suspense;
-exports.isAsyncMode = isAsyncMode;
-exports.isConcurrentMode = isConcurrentMode;
-exports.isContextConsumer = isContextConsumer;
-exports.isContextProvider = isContextProvider;
-exports.isElement = isElement;
-exports.isForwardRef = isForwardRef;
-exports.isFragment = isFragment;
-exports.isLazy = isLazy;
-exports.isMemo = isMemo;
-exports.isPortal = isPortal;
-exports.isProfiler = isProfiler;
-exports.isStrictMode = isStrictMode;
-exports.isSuspense = isSuspense;
-exports.isValidElementType = isValidElementType;
-exports.typeOf = typeOf;
-  })();
-}
diff --git a/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js
deleted file mode 100644
index a9c03f1..0000000
--- a/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** @license React v16.13.0
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
-Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
-function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
-exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
-exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
-exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
diff --git a/node_modules/prop-types/node_modules/react-is/index.js b/node_modules/prop-types/node_modules/react-is/index.js
deleted file mode 100644
index 3ae098d..0000000
--- a/node_modules/prop-types/node_modules/react-is/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-is.production.min.js');
-} else {
-  module.exports = require('./cjs/react-is.development.js');
-}
diff --git a/node_modules/prop-types/node_modules/react-is/package.json b/node_modules/prop-types/node_modules/react-is/package.json
deleted file mode 100644
index 0936162..0000000
--- a/node_modules/prop-types/node_modules/react-is/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "name": "react-is",
-  "version": "16.13.0",
-  "description": "Brand checking of React Elements.",
-  "main": "index.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/react.git",
-    "directory": "packages/react-is"
-  },
-  "keywords": [
-    "react"
-  ],
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/facebook/react/issues"
-  },
-  "homepage": "https://reactjs.org/",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "build-info.json",
-    "index.js",
-    "cjs/",
-    "umd/"
-  ]
-}
diff --git a/node_modules/prop-types/node_modules/react-is/umd/react-is.development.js b/node_modules/prop-types/node_modules/react-is/umd/react-is.development.js
deleted file mode 100644
index 1b57de1..0000000
--- a/node_modules/prop-types/node_modules/react-is/umd/react-is.development.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/** @license React v16.13.0
- * react-is.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-(function (global, factory) {
-  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-  typeof define === 'function' && define.amd ? define(['exports'], factory) :
-  (global = global || self, factory(global.ReactIs = {}));
-}(this, (function (exports) { 'use strict';
-
-  // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
-  // nor polyfill, then a plain number is used for performance.
-  var hasSymbol = typeof Symbol === 'function' && Symbol.for;
-  var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
-  var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
-  var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
-  var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
-  var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
-  var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
-  var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
-  // (unstable) APIs that have been removed. Can we remove the symbols?
-
-  var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
-  var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
-  var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
-  var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
-  var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
-  var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
-  var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
-  var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
-  var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
-  var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
-  var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
-
-  function isValidElementType(type) {
-    return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
-    type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
-  }
-
-  function typeOf(object) {
-    if (typeof object === 'object' && object !== null) {
-      var $$typeof = object.$$typeof;
-
-      switch ($$typeof) {
-        case REACT_ELEMENT_TYPE:
-          var type = object.type;
-
-          switch (type) {
-            case REACT_ASYNC_MODE_TYPE:
-            case REACT_CONCURRENT_MODE_TYPE:
-            case REACT_FRAGMENT_TYPE:
-            case REACT_PROFILER_TYPE:
-            case REACT_STRICT_MODE_TYPE:
-            case REACT_SUSPENSE_TYPE:
-              return type;
-
-            default:
-              var $$typeofType = type && type.$$typeof;
-
-              switch ($$typeofType) {
-                case REACT_CONTEXT_TYPE:
-                case REACT_FORWARD_REF_TYPE:
-                case REACT_LAZY_TYPE:
-                case REACT_MEMO_TYPE:
-                case REACT_PROVIDER_TYPE:
-                  return $$typeofType;
-
-                default:
-                  return $$typeof;
-              }
-
-          }
-
-        case REACT_PORTAL_TYPE:
-          return $$typeof;
-      }
-    }
-
-    return undefined;
-  } // AsyncMode is deprecated along with isAsyncMode
-
-  var AsyncMode = REACT_ASYNC_MODE_TYPE;
-  var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
-  var ContextConsumer = REACT_CONTEXT_TYPE;
-  var ContextProvider = REACT_PROVIDER_TYPE;
-  var Element = REACT_ELEMENT_TYPE;
-  var ForwardRef = REACT_FORWARD_REF_TYPE;
-  var Fragment = REACT_FRAGMENT_TYPE;
-  var Lazy = REACT_LAZY_TYPE;
-  var Memo = REACT_MEMO_TYPE;
-  var Portal = REACT_PORTAL_TYPE;
-  var Profiler = REACT_PROFILER_TYPE;
-  var StrictMode = REACT_STRICT_MODE_TYPE;
-  var Suspense = REACT_SUSPENSE_TYPE;
-  var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
-
-  function isAsyncMode(object) {
-    {
-      if (!hasWarnedAboutDeprecatedIsAsyncMode) {
-        hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
-
-        console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
-      }
-    }
-
-    return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
-  }
-  function isConcurrentMode(object) {
-    return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
-  }
-  function isContextConsumer(object) {
-    return typeOf(object) === REACT_CONTEXT_TYPE;
-  }
-  function isContextProvider(object) {
-    return typeOf(object) === REACT_PROVIDER_TYPE;
-  }
-  function isElement(object) {
-    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
-  }
-  function isForwardRef(object) {
-    return typeOf(object) === REACT_FORWARD_REF_TYPE;
-  }
-  function isFragment(object) {
-    return typeOf(object) === REACT_FRAGMENT_TYPE;
-  }
-  function isLazy(object) {
-    return typeOf(object) === REACT_LAZY_TYPE;
-  }
-  function isMemo(object) {
-    return typeOf(object) === REACT_MEMO_TYPE;
-  }
-  function isPortal(object) {
-    return typeOf(object) === REACT_PORTAL_TYPE;
-  }
-  function isProfiler(object) {
-    return typeOf(object) === REACT_PROFILER_TYPE;
-  }
-  function isStrictMode(object) {
-    return typeOf(object) === REACT_STRICT_MODE_TYPE;
-  }
-  function isSuspense(object) {
-    return typeOf(object) === REACT_SUSPENSE_TYPE;
-  }
-
-  exports.AsyncMode = AsyncMode;
-  exports.ConcurrentMode = ConcurrentMode;
-  exports.ContextConsumer = ContextConsumer;
-  exports.ContextProvider = ContextProvider;
-  exports.Element = Element;
-  exports.ForwardRef = ForwardRef;
-  exports.Fragment = Fragment;
-  exports.Lazy = Lazy;
-  exports.Memo = Memo;
-  exports.Portal = Portal;
-  exports.Profiler = Profiler;
-  exports.StrictMode = StrictMode;
-  exports.Suspense = Suspense;
-  exports.isAsyncMode = isAsyncMode;
-  exports.isConcurrentMode = isConcurrentMode;
-  exports.isContextConsumer = isContextConsumer;
-  exports.isContextProvider = isContextProvider;
-  exports.isElement = isElement;
-  exports.isForwardRef = isForwardRef;
-  exports.isFragment = isFragment;
-  exports.isLazy = isLazy;
-  exports.isMemo = isMemo;
-  exports.isPortal = isPortal;
-  exports.isProfiler = isProfiler;
-  exports.isStrictMode = isStrictMode;
-  exports.isSuspense = isSuspense;
-  exports.isValidElementType = isValidElementType;
-  exports.typeOf = typeOf;
-
-})));
diff --git a/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js b/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js
deleted file mode 100644
index c1e2c60..0000000
--- a/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** @license React v16.13.0
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case r:switch(a=a.type,a){case t:case e:case f:case g:case h:case k:return a;default:switch(a=a&&a.$$typeof,a){case l:case m:case n:case p:case q:return a;default:return b}}case u:return b}}}function v(a){return d(a)===e}var c=
-"function"===typeof Symbol&&Symbol.for,r=c?Symbol.for("react.element"):60103,u=c?Symbol.for("react.portal"):60106,f=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,g=c?Symbol.for("react.profiler"):60114,q=c?Symbol.for("react.provider"):60109,l=c?Symbol.for("react.context"):60110,t=c?Symbol.for("react.async_mode"):60111,e=c?Symbol.for("react.concurrent_mode"):60111,m=c?Symbol.for("react.forward_ref"):60112,k=c?Symbol.for("react.suspense"):60113,w=c?Symbol.for("react.suspense_list"):
-60120,p=c?Symbol.for("react.memo"):60115,n=c?Symbol.for("react.lazy"):60116,x=c?Symbol.for("react.block"):60121,y=c?Symbol.for("react.fundamental"):60117,z=c?Symbol.for("react.responder"):60118,A=c?Symbol.for("react.scope"):60119;b.AsyncMode=t;b.ConcurrentMode=e;b.ContextConsumer=l;b.ContextProvider=q;b.Element=r;b.ForwardRef=m;b.Fragment=f;b.Lazy=n;b.Memo=p;b.Portal=u;b.Profiler=g;b.StrictMode=h;b.Suspense=k;b.isAsyncMode=function(a){return v(a)||d(a)===t};b.isConcurrentMode=v;b.isContextConsumer=
-function(a){return d(a)===l};b.isContextProvider=function(a){return d(a)===q};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===r};b.isForwardRef=function(a){return d(a)===m};b.isFragment=function(a){return d(a)===f};b.isLazy=function(a){return d(a)===n};b.isMemo=function(a){return d(a)===p};b.isPortal=function(a){return d(a)===u};b.isProfiler=function(a){return d(a)===g};b.isStrictMode=function(a){return d(a)===h};b.isSuspense=function(a){return d(a)===k};b.isValidElementType=
-function(a){return"string"===typeof a||"function"===typeof a||a===f||a===e||a===g||a===h||a===k||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===n||a.$$typeof===p||a.$$typeof===q||a.$$typeof===l||a.$$typeof===m||a.$$typeof===y||a.$$typeof===z||a.$$typeof===A||a.$$typeof===x)};b.typeOf=d});
diff --git a/node_modules/prop-types/package.json b/node_modules/prop-types/package.json
deleted file mode 100644
index 2675a42..0000000
--- a/node_modules/prop-types/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-  "name": "prop-types",
-  "version": "15.7.2",
-  "description": "Runtime type checking for React props and similar objects.",
-  "main": "index.js",
-  "license": "MIT",
-  "files": [
-    "LICENSE",
-    "README.md",
-    "checkPropTypes.js",
-    "factory.js",
-    "factoryWithThrowingShims.js",
-    "factoryWithTypeCheckers.js",
-    "index.js",
-    "prop-types.js",
-    "prop-types.min.js",
-    "lib"
-  ],
-  "repository": "facebook/prop-types",
-  "keywords": [
-    "react"
-  ],
-  "bugs": {
-    "url": "https://github.com/facebook/prop-types/issues"
-  },
-  "homepage": "https://facebook.github.io/react/",
-  "dependencies": {
-    "loose-envify": "^1.4.0",
-    "object-assign": "^4.1.1",
-    "react-is": "^16.8.1"
-  },
-  "scripts": {
-    "pretest": "npm run lint",
-    "lint": "eslint .",
-    "test": "npm run tests-only",
-    "tests-only": "jest",
-    "umd": "NODE_ENV=development browserify index.js -t loose-envify --standalone PropTypes -o prop-types.js",
-    "umd-min": "NODE_ENV=production browserify index.js -t loose-envify -t uglifyify --standalone PropTypes  -p bundle-collapser/plugin -o | uglifyjs --compress unused,dead_code -o prop-types.min.js",
-    "build": "yarn umd && yarn umd-min",
-    "prepublish": "yarn build"
-  },
-  "devDependencies": {
-    "babel-jest": "^19.0.0",
-    "babel-preset-react": "^6.24.1",
-    "browserify": "^16.2.3",
-    "bundle-collapser": "^1.2.1",
-    "eslint": "^5.13.0",
-    "jest": "^19.0.2",
-    "react": "^15.5.1",
-    "uglifyify": "^3.0.4",
-    "uglifyjs": "^2.4.10"
-  },
-  "browserify": {
-    "transform": [
-      "loose-envify"
-    ]
-  }
-}
diff --git a/node_modules/prop-types/prop-types.js b/node_modules/prop-types/prop-types.js
deleted file mode 100644
index 867d699..0000000
--- a/node_modules/prop-types/prop-types.js
+++ /dev/null
@@ -1,1337 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PropTypes = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var printWarning = function() {};
-
-if ("development" !== 'production') {
-  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-  var loggedTypeFailures = {};
-  var has = Function.call.bind(Object.prototype.hasOwnProperty);
-
-  printWarning = function(text) {
-    var message = 'Warning: ' + text;
-    if (typeof console !== 'undefined') {
-      console.error(message);
-    }
-    try {
-      // --- Welcome to debugging React ---
-      // This error was thrown as a convenience so that you can use this stack
-      // to find the callsite that caused this warning to fire.
-      throw new Error(message);
-    } catch (x) {}
-  };
-}
-
-/**
- * Assert that the values match with the type specs.
- * Error messages are memorized and will only be shown once.
- *
- * @param {object} typeSpecs Map of name to a ReactPropType
- * @param {object} values Runtime values that need to be type-checked
- * @param {string} location e.g. "prop", "context", "child context"
- * @param {string} componentName Name of the component for error messages.
- * @param {?Function} getStack Returns the component stack.
- * @private
- */
-function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
-  if ("development" !== 'production') {
-    for (var typeSpecName in typeSpecs) {
-      if (has(typeSpecs, typeSpecName)) {
-        var error;
-        // Prop type validation may throw. In case they do, we don't want to
-        // fail the render phase where it didn't fail before. So we log it.
-        // After these have been cleaned up, we'll let them throw.
-        try {
-          // This is intentionally an invariant that gets caught. It's the same
-          // behavior as without this statement except with a better message.
-          if (typeof typeSpecs[typeSpecName] !== 'function') {
-            var err = Error(
-              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
-              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
-            );
-            err.name = 'Invariant Violation';
-            throw err;
-          }
-          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
-        } catch (ex) {
-          error = ex;
-        }
-        if (error && !(error instanceof Error)) {
-          printWarning(
-            (componentName || 'React class') + ': type specification of ' +
-            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
-            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
-            'You may have forgotten to pass an argument to the type checker ' +
-            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
-            'shape all require an argument).'
-          );
-        }
-        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
-          // Only monitor this failure once because there tends to be a lot of the
-          // same error.
-          loggedTypeFailures[error.message] = true;
-
-          var stack = getStack ? getStack() : '';
-
-          printWarning(
-            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
-          );
-        }
-      }
-    }
-  }
-}
-
-/**
- * Resets warning cache when testing.
- *
- * @private
- */
-checkPropTypes.resetWarningCache = function() {
-  if ("development" !== 'production') {
-    loggedTypeFailures = {};
-  }
-}
-
-module.exports = checkPropTypes;
-
-},{"./lib/ReactPropTypesSecret":5}],2:[function(require,module,exports){
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-
-function emptyFunction() {}
-function emptyFunctionWithReset() {}
-emptyFunctionWithReset.resetWarningCache = emptyFunction;
-
-module.exports = function() {
-  function shim(props, propName, componentName, location, propFullName, secret) {
-    if (secret === ReactPropTypesSecret) {
-      // It is still safe when called from React.
-      return;
-    }
-    var err = new Error(
-      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-      'Use PropTypes.checkPropTypes() to call them. ' +
-      'Read more at http://fb.me/use-check-prop-types'
-    );
-    err.name = 'Invariant Violation';
-    throw err;
-  };
-  shim.isRequired = shim;
-  function getShim() {
-    return shim;
-  };
-  // Important!
-  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-  var ReactPropTypes = {
-    array: shim,
-    bool: shim,
-    func: shim,
-    number: shim,
-    object: shim,
-    string: shim,
-    symbol: shim,
-
-    any: shim,
-    arrayOf: getShim,
-    element: shim,
-    elementType: shim,
-    instanceOf: getShim,
-    node: shim,
-    objectOf: getShim,
-    oneOf: getShim,
-    oneOfType: getShim,
-    shape: getShim,
-    exact: getShim,
-
-    checkPropTypes: emptyFunctionWithReset,
-    resetWarningCache: emptyFunction
-  };
-
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
-
-},{"./lib/ReactPropTypesSecret":5}],3:[function(require,module,exports){
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactIs = require('react-is');
-var assign = require('object-assign');
-
-var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
-var checkPropTypes = require('./checkPropTypes');
-
-var has = Function.call.bind(Object.prototype.hasOwnProperty);
-var printWarning = function() {};
-
-if ("development" !== 'production') {
-  printWarning = function(text) {
-    var message = 'Warning: ' + text;
-    if (typeof console !== 'undefined') {
-      console.error(message);
-    }
-    try {
-      // --- Welcome to debugging React ---
-      // This error was thrown as a convenience so that you can use this stack
-      // to find the callsite that caused this warning to fire.
-      throw new Error(message);
-    } catch (x) {}
-  };
-}
-
-function emptyFunctionThatReturnsNull() {
-  return null;
-}
-
-module.exports = function(isValidElement, throwOnDirectAccess) {
-  /* global Symbol */
-  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
-  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
-
-  /**
-   * Returns the iterator method function contained on the iterable object.
-   *
-   * Be sure to invoke the function with the iterable as context:
-   *
-   *     var iteratorFn = getIteratorFn(myIterable);
-   *     if (iteratorFn) {
-   *       var iterator = iteratorFn.call(myIterable);
-   *       ...
-   *     }
-   *
-   * @param {?object} maybeIterable
-   * @return {?function}
-   */
-  function getIteratorFn(maybeIterable) {
-    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
-    if (typeof iteratorFn === 'function') {
-      return iteratorFn;
-    }
-  }
-
-  /**
-   * Collection of methods that allow declaration and validation of props that are
-   * supplied to React components. Example usage:
-   *
-   *   var Props = require('ReactPropTypes');
-   *   var MyArticle = React.createClass({
-   *     propTypes: {
-   *       // An optional string prop named "description".
-   *       description: Props.string,
-   *
-   *       // A required enum prop named "category".
-   *       category: Props.oneOf(['News','Photos']).isRequired,
-   *
-   *       // A prop named "dialog" that requires an instance of Dialog.
-   *       dialog: Props.instanceOf(Dialog).isRequired
-   *     },
-   *     render: function() { ... }
-   *   });
-   *
-   * A more formal specification of how these methods are used:
-   *
-   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
-   *   decl := ReactPropTypes.{type}(.isRequired)?
-   *
-   * Each and every declaration produces a function with the same signature. This
-   * allows the creation of custom validation functions. For example:
-   *
-   *  var MyLink = React.createClass({
-   *    propTypes: {
-   *      // An optional string or URI prop named "href".
-   *      href: function(props, propName, componentName) {
-   *        var propValue = props[propName];
-   *        if (propValue != null && typeof propValue !== 'string' &&
-   *            !(propValue instanceof URI)) {
-   *          return new Error(
-   *            'Expected a string or an URI for ' + propName + ' in ' +
-   *            componentName
-   *          );
-   *        }
-   *      }
-   *    },
-   *    render: function() {...}
-   *  });
-   *
-   * @internal
-   */
-
-  var ANONYMOUS = '<<anonymous>>';
-
-  // Important!
-  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
-  var ReactPropTypes = {
-    array: createPrimitiveTypeChecker('array'),
-    bool: createPrimitiveTypeChecker('boolean'),
-    func: createPrimitiveTypeChecker('function'),
-    number: createPrimitiveTypeChecker('number'),
-    object: createPrimitiveTypeChecker('object'),
-    string: createPrimitiveTypeChecker('string'),
-    symbol: createPrimitiveTypeChecker('symbol'),
-
-    any: createAnyTypeChecker(),
-    arrayOf: createArrayOfTypeChecker,
-    element: createElementTypeChecker(),
-    elementType: createElementTypeTypeChecker(),
-    instanceOf: createInstanceTypeChecker,
-    node: createNodeChecker(),
-    objectOf: createObjectOfTypeChecker,
-    oneOf: createEnumTypeChecker,
-    oneOfType: createUnionTypeChecker,
-    shape: createShapeTypeChecker,
-    exact: createStrictShapeTypeChecker,
-  };
-
-  /**
-   * inlined Object.is polyfill to avoid requiring consumers ship their own
-   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
-   */
-  /*eslint-disable no-self-compare*/
-  function is(x, y) {
-    // SameValue algorithm
-    if (x === y) {
-      // Steps 1-5, 7-10
-      // Steps 6.b-6.e: +0 != -0
-      return x !== 0 || 1 / x === 1 / y;
-    } else {
-      // Step 6.a: NaN == NaN
-      return x !== x && y !== y;
-    }
-  }
-  /*eslint-enable no-self-compare*/
-
-  /**
-   * We use an Error-like object for backward compatibility as people may call
-   * PropTypes directly and inspect their output. However, we don't use real
-   * Errors anymore. We don't inspect their stack anyway, and creating them
-   * is prohibitively expensive if they are created too often, such as what
-   * happens in oneOfType() for any type before the one that matched.
-   */
-  function PropTypeError(message) {
-    this.message = message;
-    this.stack = '';
-  }
-  // Make `instanceof Error` still work for returned errors.
-  PropTypeError.prototype = Error.prototype;
-
-  function createChainableTypeChecker(validate) {
-    if ("development" !== 'production') {
-      var manualPropTypeCallCache = {};
-      var manualPropTypeWarningCount = 0;
-    }
-    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
-      componentName = componentName || ANONYMOUS;
-      propFullName = propFullName || propName;
-
-      if (secret !== ReactPropTypesSecret) {
-        if (throwOnDirectAccess) {
-          // New behavior only for users of `prop-types` package
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-            'Use `PropTypes.checkPropTypes()` to call them. ' +
-            'Read more at http://fb.me/use-check-prop-types'
-          );
-          err.name = 'Invariant Violation';
-          throw err;
-        } else if ("development" !== 'production' && typeof console !== 'undefined') {
-          // Old behavior for people using React.PropTypes
-          var cacheKey = componentName + ':' + propName;
-          if (
-            !manualPropTypeCallCache[cacheKey] &&
-            // Avoid spamming the console because they are often not actionable except for lib authors
-            manualPropTypeWarningCount < 3
-          ) {
-            printWarning(
-              'You are manually calling a React.PropTypes validation ' +
-              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
-              'and will throw in the standalone `prop-types` package. ' +
-              'You may be seeing this warning due to a third-party PropTypes ' +
-              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
-            );
-            manualPropTypeCallCache[cacheKey] = true;
-            manualPropTypeWarningCount++;
-          }
-        }
-      }
-      if (props[propName] == null) {
-        if (isRequired) {
-          if (props[propName] === null) {
-            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
-          }
-          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
-        }
-        return null;
-      } else {
-        return validate(props, propName, componentName, location, propFullName);
-      }
-    }
-
-    var chainedCheckType = checkType.bind(null, false);
-    chainedCheckType.isRequired = checkType.bind(null, true);
-
-    return chainedCheckType;
-  }
-
-  function createPrimitiveTypeChecker(expectedType) {
-    function validate(props, propName, componentName, location, propFullName, secret) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== expectedType) {
-        // `propValue` being instance of, say, date/regexp, pass the 'object'
-        // check, but we can offer a more precise error message here rather than
-        // 'of type `object`'.
-        var preciseType = getPreciseType(propValue);
-
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createAnyTypeChecker() {
-    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
-  }
-
-  function createArrayOfTypeChecker(typeChecker) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (typeof typeChecker !== 'function') {
-        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
-      }
-      var propValue = props[propName];
-      if (!Array.isArray(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
-      }
-      for (var i = 0; i < propValue.length; i++) {
-        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
-        if (error instanceof Error) {
-          return error;
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createElementTypeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      if (!isValidElement(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createElementTypeTypeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      if (!ReactIs.isValidElementType(propValue)) {
-        var propType = getPropType(propValue);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createInstanceTypeChecker(expectedClass) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (!(props[propName] instanceof expectedClass)) {
-        var expectedClassName = expectedClass.name || ANONYMOUS;
-        var actualClassName = getClassName(props[propName]);
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createEnumTypeChecker(expectedValues) {
-    if (!Array.isArray(expectedValues)) {
-      if ("development" !== 'production') {
-        if (arguments.length > 1) {
-          printWarning(
-            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
-            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
-          );
-        } else {
-          printWarning('Invalid argument supplied to oneOf, expected an array.');
-        }
-      }
-      return emptyFunctionThatReturnsNull;
-    }
-
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      for (var i = 0; i < expectedValues.length; i++) {
-        if (is(propValue, expectedValues[i])) {
-          return null;
-        }
-      }
-
-      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
-        var type = getPreciseType(value);
-        if (type === 'symbol') {
-          return String(value);
-        }
-        return value;
-      });
-      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createObjectOfTypeChecker(typeChecker) {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (typeof typeChecker !== 'function') {
-        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
-      }
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
-      }
-      for (var key in propValue) {
-        if (has(propValue, key)) {
-          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-          if (error instanceof Error) {
-            return error;
-          }
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createUnionTypeChecker(arrayOfTypeCheckers) {
-    if (!Array.isArray(arrayOfTypeCheckers)) {
-      "development" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
-      return emptyFunctionThatReturnsNull;
-    }
-
-    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
-      var checker = arrayOfTypeCheckers[i];
-      if (typeof checker !== 'function') {
-        printWarning(
-          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
-          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
-        );
-        return emptyFunctionThatReturnsNull;
-      }
-    }
-
-    function validate(props, propName, componentName, location, propFullName) {
-      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
-        var checker = arrayOfTypeCheckers[i];
-        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
-          return null;
-        }
-      }
-
-      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createNodeChecker() {
-    function validate(props, propName, componentName, location, propFullName) {
-      if (!isNode(props[propName])) {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createShapeTypeChecker(shapeTypes) {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
-      }
-      for (var key in shapeTypes) {
-        var checker = shapeTypes[key];
-        if (!checker) {
-          continue;
-        }
-        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-        if (error) {
-          return error;
-        }
-      }
-      return null;
-    }
-    return createChainableTypeChecker(validate);
-  }
-
-  function createStrictShapeTypeChecker(shapeTypes) {
-    function validate(props, propName, componentName, location, propFullName) {
-      var propValue = props[propName];
-      var propType = getPropType(propValue);
-      if (propType !== 'object') {
-        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
-      }
-      // We need to check all keys in case some are required but missing from
-      // props.
-      var allKeys = assign({}, props[propName], shapeTypes);
-      for (var key in allKeys) {
-        var checker = shapeTypes[key];
-        if (!checker) {
-          return new PropTypeError(
-            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
-            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
-            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
-          );
-        }
-        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
-        if (error) {
-          return error;
-        }
-      }
-      return null;
-    }
-
-    return createChainableTypeChecker(validate);
-  }
-
-  function isNode(propValue) {
-    switch (typeof propValue) {
-      case 'number':
-      case 'string':
-      case 'undefined':
-        return true;
-      case 'boolean':
-        return !propValue;
-      case 'object':
-        if (Array.isArray(propValue)) {
-          return propValue.every(isNode);
-        }
-        if (propValue === null || isValidElement(propValue)) {
-          return true;
-        }
-
-        var iteratorFn = getIteratorFn(propValue);
-        if (iteratorFn) {
-          var iterator = iteratorFn.call(propValue);
-          var step;
-          if (iteratorFn !== propValue.entries) {
-            while (!(step = iterator.next()).done) {
-              if (!isNode(step.value)) {
-                return false;
-              }
-            }
-          } else {
-            // Iterator will provide entry [k,v] tuples rather than values.
-            while (!(step = iterator.next()).done) {
-              var entry = step.value;
-              if (entry) {
-                if (!isNode(entry[1])) {
-                  return false;
-                }
-              }
-            }
-          }
-        } else {
-          return false;
-        }
-
-        return true;
-      default:
-        return false;
-    }
-  }
-
-  function isSymbol(propType, propValue) {
-    // Native Symbol.
-    if (propType === 'symbol') {
-      return true;
-    }
-
-    // falsy value can't be a Symbol
-    if (!propValue) {
-      return false;
-    }
-
-    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
-    if (propValue['@@toStringTag'] === 'Symbol') {
-      return true;
-    }
-
-    // Fallback for non-spec compliant Symbols which are polyfilled.
-    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
-      return true;
-    }
-
-    return false;
-  }
-
-  // Equivalent of `typeof` but with special handling for array and regexp.
-  function getPropType(propValue) {
-    var propType = typeof propValue;
-    if (Array.isArray(propValue)) {
-      return 'array';
-    }
-    if (propValue instanceof RegExp) {
-      // Old webkits (at least until Android 4.0) return 'function' rather than
-      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
-      // passes PropTypes.object.
-      return 'object';
-    }
-    if (isSymbol(propType, propValue)) {
-      return 'symbol';
-    }
-    return propType;
-  }
-
-  // This handles more types than `getPropType`. Only used for error messages.
-  // See `createPrimitiveTypeChecker`.
-  function getPreciseType(propValue) {
-    if (typeof propValue === 'undefined' || propValue === null) {
-      return '' + propValue;
-    }
-    var propType = getPropType(propValue);
-    if (propType === 'object') {
-      if (propValue instanceof Date) {
-        return 'date';
-      } else if (propValue instanceof RegExp) {
-        return 'regexp';
-      }
-    }
-    return propType;
-  }
-
-  // Returns a string that is postfixed to a warning about an invalid type.
-  // For example, "undefined" or "of type array"
-  function getPostfixForTypeWarning(value) {
-    var type = getPreciseType(value);
-    switch (type) {
-      case 'array':
-      case 'object':
-        return 'an ' + type;
-      case 'boolean':
-      case 'date':
-      case 'regexp':
-        return 'a ' + type;
-      default:
-        return type;
-    }
-  }
-
-  // Returns class name of the object, if any.
-  function getClassName(propValue) {
-    if (!propValue.constructor || !propValue.constructor.name) {
-      return ANONYMOUS;
-    }
-    return propValue.constructor.name;
-  }
-
-  ReactPropTypes.checkPropTypes = checkPropTypes;
-  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
-  ReactPropTypes.PropTypes = ReactPropTypes;
-
-  return ReactPropTypes;
-};
-
-},{"./checkPropTypes":1,"./lib/ReactPropTypesSecret":5,"object-assign":6,"react-is":10}],4:[function(require,module,exports){
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-if ("development" !== 'production') {
-  var ReactIs = require('react-is');
-
-  // By explicitly using `prop-types` you are opting into new development behavior.
-  // http://fb.me/prop-types-in-prod
-  var throwOnDirectAccess = true;
-  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);
-} else {
-  // By explicitly using `prop-types` you are opting into new production behavior.
-  // http://fb.me/prop-types-in-prod
-  module.exports = require('./factoryWithThrowingShims')();
-}
-
-},{"./factoryWithThrowingShims":2,"./factoryWithTypeCheckers":3,"react-is":10}],5:[function(require,module,exports){
-/**
- * Copyright (c) 2013-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
-
-module.exports = ReactPropTypesSecret;
-
-},{}],6:[function(require,module,exports){
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-'use strict';
-/* eslint-disable no-unused-vars */
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-function toObject(val) {
-	if (val === null || val === undefined) {
-		throw new TypeError('Object.assign cannot be called with null or undefined');
-	}
-
-	return Object(val);
-}
-
-function shouldUseNative() {
-	try {
-		if (!Object.assign) {
-			return false;
-		}
-
-		// Detect buggy property enumeration order in older V8 versions.
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
-		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
-		test1[5] = 'de';
-		if (Object.getOwnPropertyNames(test1)[0] === '5') {
-			return false;
-		}
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
-		var test2 = {};
-		for (var i = 0; i < 10; i++) {
-			test2['_' + String.fromCharCode(i)] = i;
-		}
-		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
-			return test2[n];
-		});
-		if (order2.join('') !== '0123456789') {
-			return false;
-		}
-
-		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
-		var test3 = {};
-		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
-			test3[letter] = letter;
-		});
-		if (Object.keys(Object.assign({}, test3)).join('') !==
-				'abcdefghijklmnopqrst') {
-			return false;
-		}
-
-		return true;
-	} catch (err) {
-		// We don't expect any of the above to throw, but better to be safe.
-		return false;
-	}
-}
-
-module.exports = shouldUseNative() ? Object.assign : function (target, source) {
-	var from;
-	var to = toObject(target);
-	var symbols;
-
-	for (var s = 1; s < arguments.length; s++) {
-		from = Object(arguments[s]);
-
-		for (var key in from) {
-			if (hasOwnProperty.call(from, key)) {
-				to[key] = from[key];
-			}
-		}
-
-		if (getOwnPropertySymbols) {
-			symbols = getOwnPropertySymbols(from);
-			for (var i = 0; i < symbols.length; i++) {
-				if (propIsEnumerable.call(from, symbols[i])) {
-					to[symbols[i]] = from[symbols[i]];
-				}
-			}
-		}
-	}
-
-	return to;
-};
-
-},{}],7:[function(require,module,exports){
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things.  But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals.  It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
-    throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
-    throw new Error('clearTimeout has not been defined');
-}
-(function () {
-    try {
-        if (typeof setTimeout === 'function') {
-            cachedSetTimeout = setTimeout;
-        } else {
-            cachedSetTimeout = defaultSetTimout;
-        }
-    } catch (e) {
-        cachedSetTimeout = defaultSetTimout;
-    }
-    try {
-        if (typeof clearTimeout === 'function') {
-            cachedClearTimeout = clearTimeout;
-        } else {
-            cachedClearTimeout = defaultClearTimeout;
-        }
-    } catch (e) {
-        cachedClearTimeout = defaultClearTimeout;
-    }
-} ())
-function runTimeout(fun) {
-    if (cachedSetTimeout === setTimeout) {
-        //normal enviroments in sane situations
-        return setTimeout(fun, 0);
-    }
-    // if setTimeout wasn't available but was latter defined
-    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
-        cachedSetTimeout = setTimeout;
-        return setTimeout(fun, 0);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedSetTimeout(fun, 0);
-    } catch(e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
-            return cachedSetTimeout.call(null, fun, 0);
-        } catch(e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
-            return cachedSetTimeout.call(this, fun, 0);
-        }
-    }
-
-
-}
-function runClearTimeout(marker) {
-    if (cachedClearTimeout === clearTimeout) {
-        //normal enviroments in sane situations
-        return clearTimeout(marker);
-    }
-    // if clearTimeout wasn't available but was latter defined
-    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
-        cachedClearTimeout = clearTimeout;
-        return clearTimeout(marker);
-    }
-    try {
-        // when when somebody has screwed with setTimeout but no I.E. maddness
-        return cachedClearTimeout(marker);
-    } catch (e){
-        try {
-            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
-            return cachedClearTimeout.call(null, marker);
-        } catch (e){
-            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
-            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
-            return cachedClearTimeout.call(this, marker);
-        }
-    }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
-    if (!draining || !currentQueue) {
-        return;
-    }
-    draining = false;
-    if (currentQueue.length) {
-        queue = currentQueue.concat(queue);
-    } else {
-        queueIndex = -1;
-    }
-    if (queue.length) {
-        drainQueue();
-    }
-}
-
-function drainQueue() {
-    if (draining) {
-        return;
-    }
-    var timeout = runTimeout(cleanUpNextTick);
-    draining = true;
-
-    var len = queue.length;
-    while(len) {
-        currentQueue = queue;
-        queue = [];
-        while (++queueIndex < len) {
-            if (currentQueue) {
-                currentQueue[queueIndex].run();
-            }
-        }
-        queueIndex = -1;
-        len = queue.length;
-    }
-    currentQueue = null;
-    draining = false;
-    runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
-    var args = new Array(arguments.length - 1);
-    if (arguments.length > 1) {
-        for (var i = 1; i < arguments.length; i++) {
-            args[i - 1] = arguments[i];
-        }
-    }
-    queue.push(new Item(fun, args));
-    if (queue.length === 1 && !draining) {
-        runTimeout(drainQueue);
-    }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
-    this.fun = fun;
-    this.array = array;
-}
-Item.prototype.run = function () {
-    this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) { return [] }
-
-process.binding = function (name) {
-    throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
-    throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-},{}],8:[function(require,module,exports){
-(function (process){
-/** @license React v16.8.1
- * react-is.development.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';
-
-
-
-if (process.env.NODE_ENV !== "production") {
-  (function() {
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
-// nor polyfill, then a plain number is used for performance.
-var hasSymbol = typeof Symbol === 'function' && Symbol.for;
-
-var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
-var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
-var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
-var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
-var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
-var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
-var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;
-var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
-var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
-var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
-var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
-var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
-var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
-
-function isValidElementType(type) {
-  return typeof type === 'string' || typeof type === 'function' ||
-  // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
-  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);
-}
-
-/**
- * Forked from fbjs/warning:
- * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
- *
- * Only change is we use console.warn instead of console.error,
- * and do nothing when 'console' is not supported.
- * This really simplifies the code.
- * ---
- * Similar to invariant but only logs a warning if the condition is not met.
- * This can be used to log issues in development environments in critical
- * paths. Removing the logging code for production environments will keep the
- * same logic and follow the same code paths.
- */
-
-var lowPriorityWarning = function () {};
-
-{
-  var printWarning = function (format) {
-    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-      args[_key - 1] = arguments[_key];
-    }
-
-    var argIndex = 0;
-    var message = 'Warning: ' + format.replace(/%s/g, function () {
-      return args[argIndex++];
-    });
-    if (typeof console !== 'undefined') {
-      console.warn(message);
-    }
-    try {
-      // --- Welcome to debugging React ---
-      // This error was thrown as a convenience so that you can use this stack
-      // to find the callsite that caused this warning to fire.
-      throw new Error(message);
-    } catch (x) {}
-  };
-
-  lowPriorityWarning = function (condition, format) {
-    if (format === undefined) {
-      throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');
-    }
-    if (!condition) {
-      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
-        args[_key2 - 2] = arguments[_key2];
-      }
-
-      printWarning.apply(undefined, [format].concat(args));
-    }
-  };
-}
-
-var lowPriorityWarning$1 = lowPriorityWarning;
-
-function typeOf(object) {
-  if (typeof object === 'object' && object !== null) {
-    var $$typeof = object.$$typeof;
-    switch ($$typeof) {
-      case REACT_ELEMENT_TYPE:
-        var type = object.type;
-
-        switch (type) {
-          case REACT_ASYNC_MODE_TYPE:
-          case REACT_CONCURRENT_MODE_TYPE:
-          case REACT_FRAGMENT_TYPE:
-          case REACT_PROFILER_TYPE:
-          case REACT_STRICT_MODE_TYPE:
-          case REACT_SUSPENSE_TYPE:
-            return type;
-          default:
-            var $$typeofType = type && type.$$typeof;
-
-            switch ($$typeofType) {
-              case REACT_CONTEXT_TYPE:
-              case REACT_FORWARD_REF_TYPE:
-              case REACT_PROVIDER_TYPE:
-                return $$typeofType;
-              default:
-                return $$typeof;
-            }
-        }
-      case REACT_LAZY_TYPE:
-      case REACT_MEMO_TYPE:
-      case REACT_PORTAL_TYPE:
-        return $$typeof;
-    }
-  }
-
-  return undefined;
-}
-
-// AsyncMode is deprecated along with isAsyncMode
-var AsyncMode = REACT_ASYNC_MODE_TYPE;
-var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
-var ContextConsumer = REACT_CONTEXT_TYPE;
-var ContextProvider = REACT_PROVIDER_TYPE;
-var Element = REACT_ELEMENT_TYPE;
-var ForwardRef = REACT_FORWARD_REF_TYPE;
-var Fragment = REACT_FRAGMENT_TYPE;
-var Lazy = REACT_LAZY_TYPE;
-var Memo = REACT_MEMO_TYPE;
-var Portal = REACT_PORTAL_TYPE;
-var Profiler = REACT_PROFILER_TYPE;
-var StrictMode = REACT_STRICT_MODE_TYPE;
-var Suspense = REACT_SUSPENSE_TYPE;
-
-var hasWarnedAboutDeprecatedIsAsyncMode = false;
-
-// AsyncMode should be deprecated
-function isAsyncMode(object) {
-  {
-    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
-      hasWarnedAboutDeprecatedIsAsyncMode = true;
-      lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
-    }
-  }
-  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
-}
-function isConcurrentMode(object) {
-  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
-}
-function isContextConsumer(object) {
-  return typeOf(object) === REACT_CONTEXT_TYPE;
-}
-function isContextProvider(object) {
-  return typeOf(object) === REACT_PROVIDER_TYPE;
-}
-function isElement(object) {
-  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
-}
-function isForwardRef(object) {
-  return typeOf(object) === REACT_FORWARD_REF_TYPE;
-}
-function isFragment(object) {
-  return typeOf(object) === REACT_FRAGMENT_TYPE;
-}
-function isLazy(object) {
-  return typeOf(object) === REACT_LAZY_TYPE;
-}
-function isMemo(object) {
-  return typeOf(object) === REACT_MEMO_TYPE;
-}
-function isPortal(object) {
-  return typeOf(object) === REACT_PORTAL_TYPE;
-}
-function isProfiler(object) {
-  return typeOf(object) === REACT_PROFILER_TYPE;
-}
-function isStrictMode(object) {
-  return typeOf(object) === REACT_STRICT_MODE_TYPE;
-}
-function isSuspense(object) {
-  return typeOf(object) === REACT_SUSPENSE_TYPE;
-}
-
-exports.typeOf = typeOf;
-exports.AsyncMode = AsyncMode;
-exports.ConcurrentMode = ConcurrentMode;
-exports.ContextConsumer = ContextConsumer;
-exports.ContextProvider = ContextProvider;
-exports.Element = Element;
-exports.ForwardRef = ForwardRef;
-exports.Fragment = Fragment;
-exports.Lazy = Lazy;
-exports.Memo = Memo;
-exports.Portal = Portal;
-exports.Profiler = Profiler;
-exports.StrictMode = StrictMode;
-exports.Suspense = Suspense;
-exports.isValidElementType = isValidElementType;
-exports.isAsyncMode = isAsyncMode;
-exports.isConcurrentMode = isConcurrentMode;
-exports.isContextConsumer = isContextConsumer;
-exports.isContextProvider = isContextProvider;
-exports.isElement = isElement;
-exports.isForwardRef = isForwardRef;
-exports.isFragment = isFragment;
-exports.isLazy = isLazy;
-exports.isMemo = isMemo;
-exports.isPortal = isPortal;
-exports.isProfiler = isProfiler;
-exports.isStrictMode = isStrictMode;
-exports.isSuspense = isSuspense;
-  })();
-}
-
-}).call(this,require('_process'))
-},{"_process":7}],9:[function(require,module,exports){
-/** @license React v16.8.1
- * react-is.production.min.js
- *
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-'use strict';Object.defineProperty(exports,"__esModule",{value:!0});
-var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"):
-60115,r=b?Symbol.for("react.lazy"):60116;function t(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;
-exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};
-exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};
-exports.isSuspense=function(a){return t(a)===p};
-
-},{}],10:[function(require,module,exports){
-(function (process){
-'use strict';
-
-if (process.env.NODE_ENV === 'production') {
-  module.exports = require('./cjs/react-is.production.min.js');
-} else {
-  module.exports = require('./cjs/react-is.development.js');
-}
-
-}).call(this,require('_process'))
-},{"./cjs/react-is.development.js":8,"./cjs/react-is.production.min.js":9,"_process":7}]},{},[4])(4)
-});
\ No newline at end of file
diff --git a/node_modules/prop-types/prop-types.min.js b/node_modules/prop-types/prop-types.min.js
deleted file mode 100644
index c902433..0000000
--- a/node_modules/prop-types/prop-types.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.PropTypes=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function emptyFunction(){}function emptyFunctionWithReset(){}var ReactPropTypesSecret=require(3);emptyFunctionWithReset.resetWarningCache=emptyFunction,module.exports=function(){function e(e,t,n,r,o,p){if(p!==ReactPropTypesSecret){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return n.PropTypes=n,n}},{3:3}],2:[function(require,module,exports){module.exports=require(1)()},{1:1}],3:[function(require,module,exports){"use strict";module.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}]},{},[2])(2)});
\ No newline at end of file
diff --git a/node_modules/regenerator-runtime/LICENSE b/node_modules/regenerator-runtime/LICENSE
deleted file mode 100644
index cde61b6..0000000
--- a/node_modules/regenerator-runtime/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2014-present, Facebook, Inc.
-
-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.
diff --git a/node_modules/regenerator-runtime/README.md b/node_modules/regenerator-runtime/README.md
deleted file mode 100644
index d93386a..0000000
--- a/node_modules/regenerator-runtime/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# regenerator-runtime
-
-Standalone runtime for
-[Regenerator](https://github.com/facebook/regenerator)-compiled generator
-and `async` functions.
-
-To import the runtime as a module (recommended), either of the following
-import styles will work:
-```js
-// CommonJS
-const regeneratorRuntime = require("regenerator-runtime");
-
-// ECMAScript 2015
-import regeneratorRuntime from "regenerator-runtime";
-```
-
-To ensure that `regeneratorRuntime` is defined globally, either of the
-following styles will work:
-```js
-// CommonJS
-require("regenerator-runtime/runtime");
-
-// ECMAScript 2015
-import "regenerator-runtime/runtime";
-```
-
-To get the absolute file system path of `runtime.js`, evaluate the
-following expression:
-```js
-require("regenerator-runtime/path").path
-```
diff --git a/node_modules/regenerator-runtime/package.json b/node_modules/regenerator-runtime/package.json
deleted file mode 100644
index ebfd49a..0000000
--- a/node_modules/regenerator-runtime/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "name": "regenerator-runtime",
-  "author": "Ben Newman <bn@cs.stanford.edu>",
-  "description": "Runtime for Regenerator-compiled generator and async functions.",
-  "version": "0.13.4",
-  "main": "runtime.js",
-  "keywords": [
-    "regenerator",
-    "runtime",
-    "generator",
-    "async"
-  ],
-  "sideEffects": true,
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime"
-  },
-  "license": "MIT"
-}
diff --git a/node_modules/regenerator-runtime/path.js b/node_modules/regenerator-runtime/path.js
deleted file mode 100644
index ced878b..0000000
--- a/node_modules/regenerator-runtime/path.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Copyright (c) 2014-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-exports.path = require("path").join(
-  __dirname,
-  "runtime.js"
-);
diff --git a/node_modules/regenerator-runtime/runtime.js b/node_modules/regenerator-runtime/runtime.js
deleted file mode 100644
index 224bf70..0000000
--- a/node_modules/regenerator-runtime/runtime.js
+++ /dev/null
@@ -1,729 +0,0 @@
-/**
- * Copyright (c) 2014-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-var runtime = (function (exports) {
-  "use strict";
-
-  var Op = Object.prototype;
-  var hasOwn = Op.hasOwnProperty;
-  var undefined; // More compressible than void 0.
-  var $Symbol = typeof Symbol === "function" ? Symbol : {};
-  var iteratorSymbol = $Symbol.iterator || "@@iterator";
-  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
-  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
-
-  function wrap(innerFn, outerFn, self, tryLocsList) {
-    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
-    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
-    var generator = Object.create(protoGenerator.prototype);
-    var context = new Context(tryLocsList || []);
-
-    // The ._invoke method unifies the implementations of the .next,
-    // .throw, and .return methods.
-    generator._invoke = makeInvokeMethod(innerFn, self, context);
-
-    return generator;
-  }
-  exports.wrap = wrap;
-
-  // Try/catch helper to minimize deoptimizations. Returns a completion
-  // record like context.tryEntries[i].completion. This interface could
-  // have been (and was previously) designed to take a closure to be
-  // invoked without arguments, but in all the cases we care about we
-  // already have an existing method we want to call, so there's no need
-  // to create a new function object. We can even get away with assuming
-  // the method takes exactly one argument, since that happens to be true
-  // in every case, so we don't have to touch the arguments object. The
-  // only additional allocation required is the completion record, which
-  // has a stable shape and so hopefully should be cheap to allocate.
-  function tryCatch(fn, obj, arg) {
-    try {
-      return { type: "normal", arg: fn.call(obj, arg) };
-    } catch (err) {
-      return { type: "throw", arg: err };
-    }
-  }
-
-  var GenStateSuspendedStart = "suspendedStart";
-  var GenStateSuspendedYield = "suspendedYield";
-  var GenStateExecuting = "executing";
-  var GenStateCompleted = "completed";
-
-  // Returning this object from the innerFn has the same effect as
-  // breaking out of the dispatch switch statement.
-  var ContinueSentinel = {};
-
-  // Dummy constructor functions that we use as the .constructor and
-  // .constructor.prototype properties for functions that return Generator
-  // objects. For full spec compliance, you may wish to configure your
-  // minifier not to mangle the names of these two functions.
-  function Generator() {}
-  function GeneratorFunction() {}
-  function GeneratorFunctionPrototype() {}
-
-  // This is a polyfill for %IteratorPrototype% for environments that
-  // don't natively support it.
-  var IteratorPrototype = {};
-  IteratorPrototype[iteratorSymbol] = function () {
-    return this;
-  };
-
-  var getProto = Object.getPrototypeOf;
-  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
-  if (NativeIteratorPrototype &&
-      NativeIteratorPrototype !== Op &&
-      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
-    // This environment has a native %IteratorPrototype%; use it instead
-    // of the polyfill.
-    IteratorPrototype = NativeIteratorPrototype;
-  }
-
-  var Gp = GeneratorFunctionPrototype.prototype =
-    Generator.prototype = Object.create(IteratorPrototype);
-  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
-  GeneratorFunctionPrototype.constructor = GeneratorFunction;
-  GeneratorFunctionPrototype[toStringTagSymbol] =
-    GeneratorFunction.displayName = "GeneratorFunction";
-
-  // Helper for defining the .next, .throw, and .return methods of the
-  // Iterator interface in terms of a single ._invoke method.
-  function defineIteratorMethods(prototype) {
-    ["next", "throw", "return"].forEach(function(method) {
-      prototype[method] = function(arg) {
-        return this._invoke(method, arg);
-      };
-    });
-  }
-
-  exports.isGeneratorFunction = function(genFun) {
-    var ctor = typeof genFun === "function" && genFun.constructor;
-    return ctor
-      ? ctor === GeneratorFunction ||
-        // For the native GeneratorFunction constructor, the best we can
-        // do is to check its .name property.
-        (ctor.displayName || ctor.name) === "GeneratorFunction"
-      : false;
-  };
-
-  exports.mark = function(genFun) {
-    if (Object.setPrototypeOf) {
-      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
-    } else {
-      genFun.__proto__ = GeneratorFunctionPrototype;
-      if (!(toStringTagSymbol in genFun)) {
-        genFun[toStringTagSymbol] = "GeneratorFunction";
-      }
-    }
-    genFun.prototype = Object.create(Gp);
-    return genFun;
-  };
-
-  // Within the body of any async function, `await x` is transformed to
-  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
-  // `hasOwn.call(value, "__await")` to determine if the yielded value is
-  // meant to be awaited.
-  exports.awrap = function(arg) {
-    return { __await: arg };
-  };
-
-  function AsyncIterator(generator, PromiseImpl) {
-    function invoke(method, arg, resolve, reject) {
-      var record = tryCatch(generator[method], generator, arg);
-      if (record.type === "throw") {
-        reject(record.arg);
-      } else {
-        var result = record.arg;
-        var value = result.value;
-        if (value &&
-            typeof value === "object" &&
-            hasOwn.call(value, "__await")) {
-          return PromiseImpl.resolve(value.__await).then(function(value) {
-            invoke("next", value, resolve, reject);
-          }, function(err) {
-            invoke("throw", err, resolve, reject);
-          });
-        }
-
-        return PromiseImpl.resolve(value).then(function(unwrapped) {
-          // When a yielded Promise is resolved, its final value becomes
-          // the .value of the Promise<{value,done}> result for the
-          // current iteration.
-          result.value = unwrapped;
-          resolve(result);
-        }, function(error) {
-          // If a rejected Promise was yielded, throw the rejection back
-          // into the async generator function so it can be handled there.
-          return invoke("throw", error, resolve, reject);
-        });
-      }
-    }
-
-    var previousPromise;
-
-    function enqueue(method, arg) {
-      function callInvokeWithMethodAndArg() {
-        return new PromiseImpl(function(resolve, reject) {
-          invoke(method, arg, resolve, reject);
-        });
-      }
-
-      return previousPromise =
-        // If enqueue has been called before, then we want to wait until
-        // all previous Promises have been resolved before calling invoke,
-        // so that results are always delivered in the correct order. If
-        // enqueue has not been called before, then it is important to
-        // call invoke immediately, without waiting on a callback to fire,
-        // so that the async generator function has the opportunity to do
-        // any necessary setup in a predictable way. This predictability
-        // is why the Promise constructor synchronously invokes its
-        // executor callback, and why async functions synchronously
-        // execute code before the first await. Since we implement simple
-        // async functions in terms of async generators, it is especially
-        // important to get this right, even though it requires care.
-        previousPromise ? previousPromise.then(
-          callInvokeWithMethodAndArg,
-          // Avoid propagating failures to Promises returned by later
-          // invocations of the iterator.
-          callInvokeWithMethodAndArg
-        ) : callInvokeWithMethodAndArg();
-    }
-
-    // Define the unified helper method that is used to implement .next,
-    // .throw, and .return (see defineIteratorMethods).
-    this._invoke = enqueue;
-  }
-
-  defineIteratorMethods(AsyncIterator.prototype);
-  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
-    return this;
-  };
-  exports.AsyncIterator = AsyncIterator;
-
-  // Note that simple async functions are implemented on top of
-  // AsyncIterator objects; they just return a Promise for the value of
-  // the final result produced by the iterator.
-  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
-    if (PromiseImpl === void 0) PromiseImpl = Promise;
-
-    var iter = new AsyncIterator(
-      wrap(innerFn, outerFn, self, tryLocsList),
-      PromiseImpl
-    );
-
-    return exports.isGeneratorFunction(outerFn)
-      ? iter // If outerFn is a generator, return the full iterator.
-      : iter.next().then(function(result) {
-          return result.done ? result.value : iter.next();
-        });
-  };
-
-  function makeInvokeMethod(innerFn, self, context) {
-    var state = GenStateSuspendedStart;
-
-    return function invoke(method, arg) {
-      if (state === GenStateExecuting) {
-        throw new Error("Generator is already running");
-      }
-
-      if (state === GenStateCompleted) {
-        if (method === "throw") {
-          throw arg;
-        }
-
-        // Be forgiving, per 25.3.3.3.3 of the spec:
-        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
-        return doneResult();
-      }
-
-      context.method = method;
-      context.arg = arg;
-
-      while (true) {
-        var delegate = context.delegate;
-        if (delegate) {
-          var delegateResult = maybeInvokeDelegate(delegate, context);
-          if (delegateResult) {
-            if (delegateResult === ContinueSentinel) continue;
-            return delegateResult;
-          }
-        }
-
-        if (context.method === "next") {
-          // Setting context._sent for legacy support of Babel's
-          // function.sent implementation.
-          context.sent = context._sent = context.arg;
-
-        } else if (context.method === "throw") {
-          if (state === GenStateSuspendedStart) {
-            state = GenStateCompleted;
-            throw context.arg;
-          }
-
-          context.dispatchException(context.arg);
-
-        } else if (context.method === "return") {
-          context.abrupt("return", context.arg);
-        }
-
-        state = GenStateExecuting;
-
-        var record = tryCatch(innerFn, self, context);
-        if (record.type === "normal") {
-          // If an exception is thrown from innerFn, we leave state ===
-          // GenStateExecuting and loop back for another invocation.
-          state = context.done
-            ? GenStateCompleted
-            : GenStateSuspendedYield;
-
-          if (record.arg === ContinueSentinel) {
-            continue;
-          }
-
-          return {
-            value: record.arg,
-            done: context.done
-          };
-
-        } else if (record.type === "throw") {
-          state = GenStateCompleted;
-          // Dispatch the exception by looping back around to the
-          // context.dispatchException(context.arg) call above.
-          context.method = "throw";
-          context.arg = record.arg;
-        }
-      }
-    };
-  }
-
-  // Call delegate.iterator[context.method](context.arg) and handle the
-  // result, either by returning a { value, done } result from the
-  // delegate iterator, or by modifying context.method and context.arg,
-  // setting context.delegate to null, and returning the ContinueSentinel.
-  function maybeInvokeDelegate(delegate, context) {
-    var method = delegate.iterator[context.method];
-    if (method === undefined) {
-      // A .throw or .return when the delegate iterator has no .throw
-      // method always terminates the yield* loop.
-      context.delegate = null;
-
-      if (context.method === "throw") {
-        // Note: ["return"] must be used for ES3 parsing compatibility.
-        if (delegate.iterator["return"]) {
-          // If the delegate iterator has a return method, give it a
-          // chance to clean up.
-          context.method = "return";
-          context.arg = undefined;
-          maybeInvokeDelegate(delegate, context);
-
-          if (context.method === "throw") {
-            // If maybeInvokeDelegate(context) changed context.method from
-            // "return" to "throw", let that override the TypeError below.
-            return ContinueSentinel;
-          }
-        }
-
-        context.method = "throw";
-        context.arg = new TypeError(
-          "The iterator does not provide a 'throw' method");
-      }
-
-      return ContinueSentinel;
-    }
-
-    var record = tryCatch(method, delegate.iterator, context.arg);
-
-    if (record.type === "throw") {
-      context.method = "throw";
-      context.arg = record.arg;
-      context.delegate = null;
-      return ContinueSentinel;
-    }
-
-    var info = record.arg;
-
-    if (! info) {
-      context.method = "throw";
-      context.arg = new TypeError("iterator result is not an object");
-      context.delegate = null;
-      return ContinueSentinel;
-    }
-
-    if (info.done) {
-      // Assign the result of the finished delegate to the temporary
-      // variable specified by delegate.resultName (see delegateYield).
-      context[delegate.resultName] = info.value;
-
-      // Resume execution at the desired location (see delegateYield).
-      context.next = delegate.nextLoc;
-
-      // If context.method was "throw" but the delegate handled the
-      // exception, let the outer generator proceed normally. If
-      // context.method was "next", forget context.arg since it has been
-      // "consumed" by the delegate iterator. If context.method was
-      // "return", allow the original .return call to continue in the
-      // outer generator.
-      if (context.method !== "return") {
-        context.method = "next";
-        context.arg = undefined;
-      }
-
-    } else {
-      // Re-yield the result returned by the delegate method.
-      return info;
-    }
-
-    // The delegate iterator is finished, so forget it and continue with
-    // the outer generator.
-    context.delegate = null;
-    return ContinueSentinel;
-  }
-
-  // Define Generator.prototype.{next,throw,return} in terms of the
-  // unified ._invoke helper method.
-  defineIteratorMethods(Gp);
-
-  Gp[toStringTagSymbol] = "Generator";
-
-  // A Generator should always return itself as the iterator object when the
-  // @@iterator function is called on it. Some browsers' implementations of the
-  // iterator prototype chain incorrectly implement this, causing the Generator
-  // object to not be returned from this call. This ensures that doesn't happen.
-  // See https://github.com/facebook/regenerator/issues/274 for more details.
-  Gp[iteratorSymbol] = function() {
-    return this;
-  };
-
-  Gp.toString = function() {
-    return "[object Generator]";
-  };
-
-  function pushTryEntry(locs) {
-    var entry = { tryLoc: locs[0] };
-
-    if (1 in locs) {
-      entry.catchLoc = locs[1];
-    }
-
-    if (2 in locs) {
-      entry.finallyLoc = locs[2];
-      entry.afterLoc = locs[3];
-    }
-
-    this.tryEntries.push(entry);
-  }
-
-  function resetTryEntry(entry) {
-    var record = entry.completion || {};
-    record.type = "normal";
-    delete record.arg;
-    entry.completion = record;
-  }
-
-  function Context(tryLocsList) {
-    // The root entry object (effectively a try statement without a catch
-    // or a finally block) gives us a place to store values thrown from
-    // locations where there is no enclosing try statement.
-    this.tryEntries = [{ tryLoc: "root" }];
-    tryLocsList.forEach(pushTryEntry, this);
-    this.reset(true);
-  }
-
-  exports.keys = function(object) {
-    var keys = [];
-    for (var key in object) {
-      keys.push(key);
-    }
-    keys.reverse();
-
-    // Rather than returning an object with a next method, we keep
-    // things simple and return the next function itself.
-    return function next() {
-      while (keys.length) {
-        var key = keys.pop();
-        if (key in object) {
-          next.value = key;
-          next.done = false;
-          return next;
-        }
-      }
-
-      // To avoid creating an additional object, we just hang the .value
-      // and .done properties off the next function object itself. This
-      // also ensures that the minifier will not anonymize the function.
-      next.done = true;
-      return next;
-    };
-  };
-
-  function values(iterable) {
-    if (iterable) {
-      var iteratorMethod = iterable[iteratorSymbol];
-      if (iteratorMethod) {
-        return iteratorMethod.call(iterable);
-      }
-
-      if (typeof iterable.next === "function") {
-        return iterable;
-      }
-
-      if (!isNaN(iterable.length)) {
-        var i = -1, next = function next() {
-          while (++i < iterable.length) {
-            if (hasOwn.call(iterable, i)) {
-              next.value = iterable[i];
-              next.done = false;
-              return next;
-            }
-          }
-
-          next.value = undefined;
-          next.done = true;
-
-          return next;
-        };
-
-        return next.next = next;
-      }
-    }
-
-    // Return an iterator with no values.
-    return { next: doneResult };
-  }
-  exports.values = values;
-
-  function doneResult() {
-    return { value: undefined, done: true };
-  }
-
-  Context.prototype = {
-    constructor: Context,
-
-    reset: function(skipTempReset) {
-      this.prev = 0;
-      this.next = 0;
-      // Resetting context._sent for legacy support of Babel's
-      // function.sent implementation.
-      this.sent = this._sent = undefined;
-      this.done = false;
-      this.delegate = null;
-
-      this.method = "next";
-      this.arg = undefined;
-
-      this.tryEntries.forEach(resetTryEntry);
-
-      if (!skipTempReset) {
-        for (var name in this) {
-          // Not sure about the optimal order of these conditions:
-          if (name.charAt(0) === "t" &&
-              hasOwn.call(this, name) &&
-              !isNaN(+name.slice(1))) {
-            this[name] = undefined;
-          }
-        }
-      }
-    },
-
-    stop: function() {
-      this.done = true;
-
-      var rootEntry = this.tryEntries[0];
-      var rootRecord = rootEntry.completion;
-      if (rootRecord.type === "throw") {
-        throw rootRecord.arg;
-      }
-
-      return this.rval;
-    },
-
-    dispatchException: function(exception) {
-      if (this.done) {
-        throw exception;
-      }
-
-      var context = this;
-      function handle(loc, caught) {
-        record.type = "throw";
-        record.arg = exception;
-        context.next = loc;
-
-        if (caught) {
-          // If the dispatched exception was caught by a catch block,
-          // then let that catch block handle the exception normally.
-          context.method = "next";
-          context.arg = undefined;
-        }
-
-        return !! caught;
-      }
-
-      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
-        var entry = this.tryEntries[i];
-        var record = entry.completion;
-
-        if (entry.tryLoc === "root") {
-          // Exception thrown outside of any try block that could handle
-          // it, so set the completion value of the entire function to
-          // throw the exception.
-          return handle("end");
-        }
-
-        if (entry.tryLoc <= this.prev) {
-          var hasCatch = hasOwn.call(entry, "catchLoc");
-          var hasFinally = hasOwn.call(entry, "finallyLoc");
-
-          if (hasCatch && hasFinally) {
-            if (this.prev < entry.catchLoc) {
-              return handle(entry.catchLoc, true);
-            } else if (this.prev < entry.finallyLoc) {
-              return handle(entry.finallyLoc);
-            }
-
-          } else if (hasCatch) {
-            if (this.prev < entry.catchLoc) {
-              return handle(entry.catchLoc, true);
-            }
-
-          } else if (hasFinally) {
-            if (this.prev < entry.finallyLoc) {
-              return handle(entry.finallyLoc);
-            }
-
-          } else {
-            throw new Error("try statement without catch or finally");
-          }
-        }
-      }
-    },
-
-    abrupt: function(type, arg) {
-      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
-        var entry = this.tryEntries[i];
-        if (entry.tryLoc <= this.prev &&
-            hasOwn.call(entry, "finallyLoc") &&
-            this.prev < entry.finallyLoc) {
-          var finallyEntry = entry;
-          break;
-        }
-      }
-
-      if (finallyEntry &&
-          (type === "break" ||
-           type === "continue") &&
-          finallyEntry.tryLoc <= arg &&
-          arg <= finallyEntry.finallyLoc) {
-        // Ignore the finally entry if control is not jumping to a
-        // location outside the try/catch block.
-        finallyEntry = null;
-      }
-
-      var record = finallyEntry ? finallyEntry.completion : {};
-      record.type = type;
-      record.arg = arg;
-
-      if (finallyEntry) {
-        this.method = "next";
-        this.next = finallyEntry.finallyLoc;
-        return ContinueSentinel;
-      }
-
-      return this.complete(record);
-    },
-
-    complete: function(record, afterLoc) {
-      if (record.type === "throw") {
-        throw record.arg;
-      }
-
-      if (record.type === "break" ||
-          record.type === "continue") {
-        this.next = record.arg;
-      } else if (record.type === "return") {
-        this.rval = this.arg = record.arg;
-        this.method = "return";
-        this.next = "end";
-      } else if (record.type === "normal" && afterLoc) {
-        this.next = afterLoc;
-      }
-
-      return ContinueSentinel;
-    },
-
-    finish: function(finallyLoc) {
-      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
-        var entry = this.tryEntries[i];
-        if (entry.finallyLoc === finallyLoc) {
-          this.complete(entry.completion, entry.afterLoc);
-          resetTryEntry(entry);
-          return ContinueSentinel;
-        }
-      }
-    },
-
-    "catch": function(tryLoc) {
-      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
-        var entry = this.tryEntries[i];
-        if (entry.tryLoc === tryLoc) {
-          var record = entry.completion;
-          if (record.type === "throw") {
-            var thrown = record.arg;
-            resetTryEntry(entry);
-          }
-          return thrown;
-        }
-      }
-
-      // The context.catch method must only be called with a location
-      // argument that corresponds to a known catch block.
-      throw new Error("illegal catch attempt");
-    },
-
-    delegateYield: function(iterable, resultName, nextLoc) {
-      this.delegate = {
-        iterator: values(iterable),
-        resultName: resultName,
-        nextLoc: nextLoc
-      };
-
-      if (this.method === "next") {
-        // Deliberately forget the last sent value so that we don't
-        // accidentally pass it on to the delegate.
-        this.arg = undefined;
-      }
-
-      return ContinueSentinel;
-    }
-  };
-
-  // Regardless of whether this script is executing as a CommonJS module
-  // or not, return the runtime object so that we can declare the variable
-  // regeneratorRuntime in the outer scope, which allows this module to be
-  // injected easily by `bin/regenerator --include-runtime script.js`.
-  return exports;
-
-}(
-  // If this script is executing as a CommonJS module, use module.exports
-  // as the regeneratorRuntime namespace. Otherwise create a new empty
-  // object. Either way, the resulting object will be used to initialize
-  // the regeneratorRuntime variable at the top of this file.
-  typeof module === "object" ? module.exports : {}
-));
-
-try {
-  regeneratorRuntime = runtime;
-} catch (accidentalStrictMode) {
-  // This module should not be running in strict mode, so the above
-  // assignment should always work unless something is misconfigured. Just
-  // in case runtime.js accidentally runs in strict mode, we can escape
-  // strict mode using a global Function call. This could conceivably fail
-  // if a Content Security Policy forbids using Function, but in that case
-  // the proper solution is to fix the accidental strict mode problem. If
-  // you've misconfigured your bundler to force strict mode and applied a
-  // CSP to forbid Function, and you're not willing to fix either of those
-  // problems, please detail your unique predicament in a GitHub issue.
-  Function("r", "regeneratorRuntime = r")(runtime);
-}
diff --git a/node_modules/regexp.prototype.flags/.editorconfig b/node_modules/regexp.prototype.flags/.editorconfig
deleted file mode 100644
index eaa2141..0000000
--- a/node_modules/regexp.prototype.flags/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-root = true
-
-[*]
-indent_style = tab;
-insert_final_newline = true;
-quote_type = auto;
-space_after_anonymous_functions = true;
-space_after_control_statements = true;
-spaces_around_operators = true;
-trim_trailing_whitespace = true;
-spaces_in_brackets = false;
-end_of_line = lf;
-
diff --git a/node_modules/regexp.prototype.flags/.eslintrc b/node_modules/regexp.prototype.flags/.eslintrc
deleted file mode 100644
index 71e3771..0000000
--- a/node_modules/regexp.prototype.flags/.eslintrc
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"eqeqeq": [2, "allow-null"],
-		"max-statements": 0,
-		"no-extend-native": [2, { "exceptions": ["RegExp"] }],
-		"no-invalid-regexp": [2, { "allowConstructorFlags": ["s", "u", "y"] }],
-		"no-invalid-this": 0
-	},
-
-	"overrides": [
-		{
-			"files": "test/**",
-			"rules": {
-				"max-lines-per-function": 0,
-			},
-		},
-	],
-}
diff --git a/node_modules/regexp.prototype.flags/.github/workflows/rebase.yml b/node_modules/regexp.prototype.flags/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/regexp.prototype.flags/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/regexp.prototype.flags/.travis.yml b/node_modules/regexp.prototype.flags/.travis.yml
deleted file mode 100644
index 2d1c1d2..0000000
--- a/node_modules/regexp.prototype.flags/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
-  allow_failures:
-    - env: COVERAGE=true
diff --git a/node_modules/regexp.prototype.flags/CHANGELOG.md b/node_modules/regexp.prototype.flags/CHANGELOG.md
deleted file mode 100644
index fba446d..0000000
--- a/node_modules/regexp.prototype.flags/CHANGELOG.md
+++ /dev/null
@@ -1,44 +0,0 @@
-1.3.0 / 2019-12-14
-=================
-  * [New] add `auto` entry point
-  * [Refactor] use `callBind` helper from `es-abstract`
-  * [Deps] update `define-properties`
-  * [meta] add `funding` field
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `has`, `tape`
-  * [Tests] use shared travis-ci configs
-  * [Tests] use `eclint` instead of `editorconfig-tools`
-  * [Tests] remove `jscs`
-  * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
-  * [actions] add automatic rebasing / merge commit blocking
-
-1.2.0 / 2017-10-24
-=================
-  * [New] add support for `dotAll` regex flag.
-  * [Deps] update `define-properties`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `jscs`, `nsp`, `@es-shims/api`
-  * [Tests] use pretest/posttest for better organization
-  * [Tests] up to `node` `v8.8`, `v7.10`, `v6.11`, `v4.8`; improve matrix; use `nvm install-latest-npm` so new npm doesn’t break old node
-
-1.1.1 / 2015-08-16
-=================
-  * [Fix] cover the case where there is no descriptor on the prototype
-
-1.1.0 / 2015-08-16
-=================
-  * [Robustness] Make some things a bit more robust against later modification of the environment
-  * [New] Implement the [es-shim API](es-shims/api)
-  * [Refactor] Move implementation to `implementation.js`
-  * [Dev Deps] update `eslint`, `jscs`, `tape`, `nsp`, `covert`
-  * [Tests] up to `io.js` `v3.0`
-  * [Tests] use my personal shared `eslint` config
-  * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
-
-1.0.1 / 2014-12-13
-=================
-  * Ensure that non-object values throw, per spec (#3)
-  * Properly match spec steps, so that the flags getter is generic (#3)
-
-1.0.0 / 2014-12-10
-=================
-  * v1.0.0
-
diff --git a/node_modules/regexp.prototype.flags/LICENSE b/node_modules/regexp.prototype.flags/LICENSE
deleted file mode 100644
index 9a8e1e0..0000000
--- a/node_modules/regexp.prototype.flags/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2014 Jordan Harband
-
-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/node_modules/regexp.prototype.flags/README.md b/node_modules/regexp.prototype.flags/README.md
deleted file mode 100644
index 77e151e..0000000
--- a/node_modules/regexp.prototype.flags/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-RegExp.prototype.flags <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-An ES6 spec-compliant `RegExp.prototype.flags` shim. Invoke its "shim" method to shim RegExp.prototype.flags if it is unavailable.
-*Note*: `RegExp#flags` requires a true ES5 environment - specifically, one with ES5 getters.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES5-supported environment and complies with the [spec](http://www.ecma-international.org/ecma-262/6.0/#sec-get-regexp.prototype.flags).
-
-Most common usage:
-```js
-var flags = require('regexp.prototype.flags');
-
-assert(flags(/a/) === '');
-assert(flags(new RegExp('a') === '');
-assert(flags(/a/mig) === 'gim');
-assert(flags(new RegExp('a', 'mig')) === 'gim');
-
-if (!RegExp.prototype.flags) {
-	flags.shim();
-}
-
-assert(flags(/a/) === /a/.flags);
-assert(flags(new RegExp('a') === new RegExp('a').flags);
-assert(flags(/a/mig) === /a/mig.flags);
-assert(flags(new RegExp('a', 'mig')) === new RegExp('a', 'mig').flags);
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.com/package/regexp.prototype.flags
-[npm-version-svg]: http://versionbadg.es/es-shims/RegExp.prototype.flags.svg
-[travis-svg]: https://travis-ci.org/es-shims/RegExp.prototype.flags.svg
-[travis-url]: https://travis-ci.org/es-shims/RegExp.prototype.flags
-[deps-svg]: https://david-dm.org/es-shims/RegExp.prototype.flags.svg
-[deps-url]: https://david-dm.org/es-shims/RegExp.prototype.flags
-[dev-deps-svg]: https://david-dm.org/es-shims/RegExp.prototype.flags/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/RegExp.prototype.flags#info=devDependencies
-[testling-svg]: https://ci.testling.com/es-shims/RegExp.prototype.flags.png
-[testling-url]: https://ci.testling.com/es-shims/RegExp.prototype.flags
-[npm-badge-png]: https://nodei.co/npm/regexp.prototype.flags.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/regexp.prototype.flags.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/regexp.prototype.flags.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=regexp.prototype.flags
diff --git a/node_modules/regexp.prototype.flags/auto.js b/node_modules/regexp.prototype.flags/auto.js
deleted file mode 100644
index 8ebf606..0000000
--- a/node_modules/regexp.prototype.flags/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/node_modules/regexp.prototype.flags/implementation.js b/node_modules/regexp.prototype.flags/implementation.js
deleted file mode 100644
index e327dd8..0000000
--- a/node_modules/regexp.prototype.flags/implementation.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var $Object = Object;
-var $TypeError = TypeError;
-
-module.exports = function flags() {
-	if (this != null && this !== $Object(this)) {
-		throw new $TypeError('RegExp.prototype.flags getter called on non-object');
-	}
-	var result = '';
-	if (this.global) {
-		result += 'g';
-	}
-	if (this.ignoreCase) {
-		result += 'i';
-	}
-	if (this.multiline) {
-		result += 'm';
-	}
-	if (this.dotAll) {
-		result += 's';
-	}
-	if (this.unicode) {
-		result += 'u';
-	}
-	if (this.sticky) {
-		result += 'y';
-	}
-	return result;
-};
diff --git a/node_modules/regexp.prototype.flags/index.js b/node_modules/regexp.prototype.flags/index.js
deleted file mode 100644
index e375536..0000000
--- a/node_modules/regexp.prototype.flags/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('es-abstract/helpers/callBind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var flagsBound = callBind(implementation);
-
-define(flagsBound, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = flagsBound;
diff --git a/node_modules/regexp.prototype.flags/package.json b/node_modules/regexp.prototype.flags/package.json
deleted file mode 100644
index fd4cc74..0000000
--- a/node_modules/regexp.prototype.flags/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-	"name": "regexp.prototype.flags",
-	"version": "1.3.0",
-	"author": "Jordan Harband <ljharb@gmail.com>",
-	"funding": {
-		"url": "https://github.com/sponsors/ljharb"
-	},
-	"description": "ES6 spec-compliant RegExp.prototype.flags shim.",
-	"license": "MIT",
-	"main": "index.js",
-	"scripts": {
-		"pretest": "npm run lint",
-		"test": "npm run tests-only",
-		"posttest": "npx aud",
-		"tests-only": "es-shim-api --bound && node --harmony --es-staging test/index.js",
-		"coverage": "covert test/*.js",
-		"coverage-quiet": "covert test/*.js --quiet",
-		"lint": "eslint .",
-		"eccheck": "eclint check *.js **/*.js > /dev/null"
-	},
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/es-shims/RegExp.prototype.flags.git"
-	},
-	"keywords": [
-		"RegExp.prototype.flags",
-		"regex",
-		"regular expression",
-		"ES6",
-		"shim",
-		"flag",
-		"flags",
-		"regexp",
-		"RegExp#flags",
-		"polyfill",
-		"es-shim API"
-	],
-	"dependencies": {
-		"define-properties": "^1.1.3",
-		"es-abstract": "^1.17.0-next.1"
-	},
-	"devDependencies": {
-		"@es-shims/api": "^2.1.2",
-		"@ljharb/eslint-config": "^15.0.2",
-		"covert": "^1.1.1",
-		"eclint": "^2.8.1",
-		"eslint": "^6.7.2",
-		"has": "^1.0.3",
-		"tape": "^4.11.0"
-	},
-	"testling": {
-		"files": "test/index.js",
-		"browsers": [
-			"iexplore/9.0..latest",
-			"firefox/4.0..6.0",
-			"firefox/15.0..latest",
-			"firefox/nightly",
-			"chrome/4.0..10.0",
-			"chrome/20.0..latest",
-			"chrome/canary",
-			"opera/11.6..latest",
-			"opera/next",
-			"safari/5.0..latest",
-			"ipad/6.0..latest",
-			"iphone/6.0..latest",
-			"android-browser/4.2"
-		]
-	},
-	"engines": {
-		"node": ">= 0.4"
-	}
-}
diff --git a/node_modules/regexp.prototype.flags/polyfill.js b/node_modules/regexp.prototype.flags/polyfill.js
deleted file mode 100644
index 903479b..0000000
--- a/node_modules/regexp.prototype.flags/polyfill.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-var supportsDescriptors = require('define-properties').supportsDescriptors;
-var $gOPD = Object.getOwnPropertyDescriptor;
-var $TypeError = TypeError;
-
-module.exports = function getPolyfill() {
-	if (!supportsDescriptors) {
-		throw new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
-	}
-	if ((/a/mig).flags === 'gim') {
-		var descriptor = $gOPD(RegExp.prototype, 'flags');
-		if (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {
-			return descriptor.get;
-		}
-	}
-	return implementation;
-};
diff --git a/node_modules/regexp.prototype.flags/shim.js b/node_modules/regexp.prototype.flags/shim.js
deleted file mode 100644
index 3ec77c1..0000000
--- a/node_modules/regexp.prototype.flags/shim.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-var supportsDescriptors = require('define-properties').supportsDescriptors;
-var getPolyfill = require('./polyfill');
-var gOPD = Object.getOwnPropertyDescriptor;
-var defineProperty = Object.defineProperty;
-var TypeErr = TypeError;
-var getProto = Object.getPrototypeOf;
-var regex = /a/;
-
-module.exports = function shimFlags() {
-	if (!supportsDescriptors || !getProto) {
-		throw new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');
-	}
-	var polyfill = getPolyfill();
-	var proto = getProto(regex);
-	var descriptor = gOPD(proto, 'flags');
-	if (!descriptor || descriptor.get !== polyfill) {
-		defineProperty(proto, 'flags', {
-			configurable: true,
-			enumerable: false,
-			get: polyfill
-		});
-	}
-	return polyfill;
-};
diff --git a/node_modules/regexp.prototype.flags/test/index.js b/node_modules/regexp.prototype.flags/test/index.js
deleted file mode 100644
index 2d40c8a..0000000
--- a/node_modules/regexp.prototype.flags/test/index.js
+++ /dev/null
@@ -1,146 +0,0 @@
-'use strict';
-
-var flags = require('../');
-var test = require('tape');
-var has = require('has');
-
-var getRegexLiteral = function (stringRegex) {
-	try {
-		/* jshint evil: true */
-		/* eslint-disable no-new-func */
-		return Function('return ' + stringRegex + ';')();
-		/* eslint-enable no-new-func */
-		/* jshint evil: false */
-	} catch (e) { /**/ }
-	return null;
-};
-
-flags.shim();
-var descriptor = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags');
-var testGenericFlags = function (object) {
-	return descriptor.get.call(object);
-};
-
-test('works as a function', function (t) {
-	t.equal(flags(/a/g), 'g', 'flags(/a/g) !== "g"');
-	t.equal(flags(/a/gmi), 'gim', 'flags(/a/gmi) !== "gim"');
-	t.equal(flags(new RegExp('a', 'gmi')), 'gim', 'flags(new RegExp("a", "gmi")) !== "gim"');
-	t.equal(flags(/a/), '', 'flags(/a/) !== ""');
-	t.equal(flags(new RegExp('a')), '', 'flags(new RegExp("a")) !== ""');
-
-	t.test('sticky flag', { skip: !has(RegExp.prototype, 'sticky') }, function (st) {
-		st.equal(flags(getRegexLiteral('/a/y')), 'y', 'flags(/a/y) !== "y"');
-		st.equal(flags(new RegExp('a', 'y')), 'y', 'flags(new RegExp("a", "y")) !== "y"');
-		st.end();
-	});
-
-	t.test('unicode flag', { skip: !has(RegExp.prototype, 'unicode') }, function (st) {
-		st.equal(flags(getRegexLiteral('/a/u')), 'u', 'flags(/a/u) !== "u"');
-		st.equal(flags(new RegExp('a', 'u')), 'u', 'flags(new RegExp("a", "u")) !== "u"');
-		st.end();
-	});
-
-	t.test('dotAll flag', { skip: !has(RegExp.prototype, 'dotAll') }, function (st) {
-		st.equal(flags(getRegexLiteral('/a/s')), 's', 'flags(/a/s) !== "s"');
-		st.equal(flags(new RegExp('a', 's')), 's', 'flags(new RegExp("a", "s")) !== "s"');
-		st.end();
-	});
-
-	t.test('sorting', function (st) {
-		st.equal(flags(/a/gim), 'gim', 'flags(/a/gim) !== "gim"');
-		st.equal(flags(/a/mig), 'gim', 'flags(/a/mig) !== "gim"');
-		st.equal(flags(/a/mgi), 'gim', 'flags(/a/mgi) !== "gim"');
-		if (has(RegExp.prototype, 'sticky')) {
-			st.equal(flags(getRegexLiteral('/a/gyim')), 'gimy', 'flags(/a/gyim) !== "gimy"');
-		}
-		if (has(RegExp.prototype, 'unicode')) {
-			st.equal(flags(getRegexLiteral('/a/ugmi')), 'gimu', 'flags(/a/ugmi) !== "gimu"');
-		}
-		if (has(RegExp.prototype, 'dotAll')) {
-			st.equal(flags(getRegexLiteral('/a/sgmi')), 'gims', 'flags(/a/sgmi) !== "gims"');
-		}
-		st.end();
-	});
-
-	t.test('throws properly', function (st) {
-		var nonObjects = ['', false, true, 42, NaN, null, undefined];
-		st.plan(nonObjects.length);
-		var throwsOnNonObject = function (nonObject) {
-			st['throws'](Function.call.bind(nonObject), TypeError);
-		};
-		nonObjects.forEach(throwsOnNonObject);
-	});
-	t.end();
-});
-
-test('shims properly', function (t) {
-	t.test('basic examples', function (st) {
-		st.equal((/a/g).flags, 'g', '(/a/g).flags !== "g"');
-		st.equal((/a/gmi).flags, 'gim', '(/a/gmi).flags !== "gim"');
-		st.equal(new RegExp('a', 'gmi').flags, 'gim', 'new RegExp("a", "gmi").flags !== "gim"');
-		st.equal((/a/).flags, '', '(/a/).flags !== ""');
-		st.equal(new RegExp('a').flags, '', 'new RegExp("a").flags !== ""');
-		st.end();
-	});
-
-	t.test('sticky flag', { skip: !has(RegExp.prototype, 'sticky') }, function (st) {
-		st.equal(getRegexLiteral('/a/y').flags, 'y', '(/a/y).flags !== "y"');
-		st.equal(new RegExp('a', 'y').flags, 'y', 'new RegExp("a", "y").flags !== "y"');
-		st.end();
-	});
-
-	t.test('unicode flag', { skip: !has(RegExp.prototype, 'unicode') }, function (st) {
-		st.equal(getRegexLiteral('/a/u').flags, 'u', '(/a/u).flags !== "u"');
-		st.equal(new RegExp('a', 'u').flags, 'u', 'new RegExp("a", "u").flags !== "u"');
-		st.end();
-	});
-
-	t.test('dotAll flag', { skip: !has(RegExp.prototype, 'dotAll') }, function (st) {
-		st.equal(getRegexLiteral('/a/s').flags, 's', '(/a/s).flags !== "s"');
-		st.equal(new RegExp('a', 's').flags, 's', 'new RegExp("a", "s").flags !== "s"');
-		st.end();
-	});
-
-	t.test('sorting', function (st) {
-		st.equal((/a/gim).flags, 'gim', '(/a/gim).flags !== "gim"');
-		st.equal((/a/mig).flags, 'gim', '(/a/mig).flags !== "gim"');
-		st.equal((/a/mgi).flags, 'gim', '(/a/mgi).flags !== "gim"');
-		if (has(RegExp.prototype, 'sticky')) {
-			st.equal(getRegexLiteral('/a/gyim').flags, 'gimy', '(/a/gyim).flags !== "gimy"');
-		}
-		if (has(RegExp.prototype, 'unicode')) {
-			st.equal(getRegexLiteral('/a/ugmi').flags, 'gimu', '(/a/ugmi).flags !== "gimu"');
-		}
-		if (has(RegExp.prototype, 'dotAll')) {
-			st.equal(getRegexLiteral('/a/sgmi').flags, 'gims', '(/a/sgmi).flags !== "gims"');
-		}
-		st.end();
-	});
-
-	t.test('has the correct descriptor', function (st) {
-		st.equal(descriptor.configurable, true);
-		st.equal(descriptor.enumerable, false);
-		st.equal(typeof descriptor.get, 'function');
-		st.equal(descriptor.set, undefined);
-		st.end();
-	});
-
-	t.test('throws properly', function (st) {
-		var nonObjects = ['', false, true, 42, NaN, null, undefined];
-		st.plan(nonObjects.length);
-		var throwsOnNonObject = function (nonObject) {
-			st['throws'](testGenericFlags.bind(null, nonObject), TypeError);
-		};
-		nonObjects.forEach(throwsOnNonObject);
-	});
-
-	t.test('generic flags', function (st) {
-		st.equal(testGenericFlags({}), '');
-		st.equal(testGenericFlags({ ignoreCase: true }), 'i');
-		st.equal(testGenericFlags({ dotAll: 1, global: 0, sticky: 1, unicode: 1 }), 'suy');
-		st.equal(testGenericFlags({ __proto__: { multiline: true } }), 'm');
-		st.end();
-	});
-
-	t.end();
-});
diff --git a/node_modules/regextras/.babelrc b/node_modules/regextras/.babelrc
deleted file mode 100644
index ece1d87..0000000
--- a/node_modules/regextras/.babelrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "presets": [
-    ["@babel/preset-env"]
-  ]
-}
diff --git a/node_modules/regextras/.editorconfig b/node_modules/regextras/.editorconfig
deleted file mode 100644
index c6812c1..0000000
--- a/node_modules/regextras/.editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-; EditorConfig file: https://EditorConfig.org
-; Install the "EditorConfig" plugin into your editor to use
-
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-indent_style = space
-indent_size = 2
-trim_trailing_whitespace = true
diff --git a/node_modules/regextras/.eslintignore b/node_modules/regextras/.eslintignore
deleted file mode 100644
index 0e75fe5..0000000
--- a/node_modules/regextras/.eslintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-dist
-coverage
diff --git a/node_modules/regextras/.eslintrc.js b/node_modules/regextras/.eslintrc.js
deleted file mode 100644
index ab10e77..0000000
--- a/node_modules/regextras/.eslintrc.js
+++ /dev/null
@@ -1,57 +0,0 @@
-module.exports = {
-  extends: 'ash-nazg/sauron-node',
-  settings: {
-    polyfills: [
-      'console',
-      'document.body'
-    ]
-  },
-  overrides: [{
-    files: 'test/**.js',
-    extends: [
-      'plugin:chai-friendly/recommended',
-      'plugin:chai-expect/recommended'
-    ],
-    env: {
-      mocha: true
-    },
-    globals: {
-      expect: true,
-      assert: true
-    },
-    rules: {
-      'node/no-unsupported-features/es-syntax': 0
-    }
-  }, {
-    files: 'tests/**.js',
-    rules: {
-      'no-console': 0
-    }
-  }, {
-    files: '*.md',
-    globals: {
-      require: false,
-      RegExtras: false,
-      condition: false,
-      regex: false,
-      str: false
-    },
-    rules: {
-      'node/no-unsupported-features/es-syntax': 0,
-      'node/no-extraneous-require': ['error', {allowModules: ['regextras']}],
-      'import/unambiguous': 0,
-      'import/no-commonjs': 0,
-      'import/no-extraneous-dependencies': 0,
-      'no-shadow': ['error', {allow: ['RegExtras']}],
-      'no-unused-vars': ['error', {
-        varsIgnorePattern: 'matches|RegExtras|piglatinArray',
-        argsIgnorePattern: 'matches'
-      }]
-    }
-  }],
-  rules: {
-    // Disable for now
-    'prefer-named-capture-group': 0,
-    'require-unicode-regexp': 0
-  }
-};
diff --git a/node_modules/regextras/.remarkrc b/node_modules/regextras/.remarkrc
deleted file mode 100644
index a3a7b10..0000000
--- a/node_modules/regextras/.remarkrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "plugins": {
-    "lint": {
-        "no-multiple-toplevel-headings": false,
-        "ordered-list-marker-value": "one",
-        "no-missing-blank-lines": false,
-        "list-item-spacing": false,
-        "list-item-indent": false
-    }
-  }
-}
diff --git a/node_modules/regextras/CHANGES.md b/node_modules/regextras/CHANGES.md
deleted file mode 100644
index a14ae96..0000000
--- a/node_modules/regextras/CHANGES.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# CHANGES for regextras
-
-## 0.7.0
-
-- Linting (ESLint): Update per latest ash-nazg; switch to 2sp.
-  indent; lint HTML, Markdown
-- Maintenance: Add `.editorconfig`
-- Fix: Properly add any extra u (unicode) flag
-- Enhancement: Add any extra s (dotAll) flag
-- Testing: Use ESM
-- Testing: Add nyc for coverage
-- Testing: Begin use of BDD style
-- Testing: Add tests for mixinRegex and plain prototype.js
-- Testing: Add HTML reporter
-- npm: Update devDeps
-
-## 0.6.1
-
-- npm: Drop `peerDependencies` (though still required)
-
-## 0.6.0
-
-- Enhancement: Add `main` ES and UMD builds (without generators)
-- Linting (ESLint): Apply ash-nazg; use js file format
-- Linting: Add `lgtm.yml`
-- Testing: Avoid missing `regenerator-runtime` and `core-js-bundle`;
-    favicon no-ops; use strict; put `write` in own module
-- npm: Update devDeps, peerDep; add ash-nazg and its peerDeps; ignore rollup
-
-## 0.5.0
-
-- Babel: Add `.babelrc`, preset-env
-- Linting: Switch to .json file; update to avoid new standard rule
-- Testing: Switch from end-of-lifed nodeunit to Mocha
-- npm: Update devDeps; use terser and @babel/core; opn-cli -> open-cli
-- npm: Add regenerator-runtime and core-js-bundle peerDeps and devDeps
-
-## 0.4.0
-
-- Breaking change: Stop exporting default
-- npm: Update devDep
-- npm: Separate nodeunit script from linting/rollup
-
-## 0.3.0
-
-- Breaking change: Move now ES6 source files from `lib` to `src`
-- Enhancement: ES6 Modules export (incomplete)
-- Refactoring: Swap main with index
-- Linting: Add ESLint, `.remarkrc`
-- License: Remove mistakenly copied portion from my other repo
-- License: Rename to reflect type (MIT)
-- npm: Add `packge-lock.json`
-- npm: Update devDeps
-
-## 0.1.1
-
-- Fix README
-
-## 0.1.0
-
-- Initial release
diff --git a/node_modules/regextras/LICENSE-MIT.txt b/node_modules/regextras/LICENSE-MIT.txt
deleted file mode 100644
index 2f25801..0000000
--- a/node_modules/regextras/LICENSE-MIT.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (C) 2012 Brett Zamir
-
-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.
diff --git a/node_modules/regextras/README.md b/node_modules/regextras/README.md
deleted file mode 100644
index fbb3a6e..0000000
--- a/node_modules/regextras/README.md
+++ /dev/null
@@ -1,177 +0,0 @@
-# regextras
-
-Array extras for regular expressions.
-
-Also provides optional `String` and `RegExp` prototype extensions.
-
-No more writing the implementation-detail-leaking, non-semantic, and
-otherwise ugly:
-
-```js
-let matches;
-while ((matches = regex.exec(str)) !== null) {
-  // Do something
-  if (condition) {
-    break;
-  }
-}
-```
-
-While all of the array extras could be useful, `some`, might be the most
-general purpose as it (as with `every`) allows short-circuiting (breaking).
-
-The following is equivalent to that above (though with `matches` as local):
-
-```js
-RegExtras(regex).some(str, (matches) => {
-  // Do something
-  if (condition) {
-    return true;
-  }
-  return false;
-});
-```
-
-And if the condition is at the end of the loop, just this:
-
-```js
-RegExtras(regex).some(str, (matches) => {
-  // Do something
-  return condition;
-});
-```
-
-## Installation
-
-Node:
-
-```js
-const RegExtras = require('regextras');
-```
-
-Modern browsers:
-
-```js
-import {RegExtras} from './node_modules/regextras/dist/index-es.js';
-```
-
-Older browsers:
-
-```html
-<script src="regextras/dist/index-umd.js"></script>
-```
-
-The prototype versions must be required or included separately.
-
-If you need the generator methods, you should also add the following:
-
-```html
-<script src="regextras/dist/index-generators-umd.js"></script>
-```
-
-## API
-
-### Constructor
-
-`new RegExtras(regex, flags, newLastIndex)`
-
-Example:
-
-```js
-const piglatinArray = RegExtras(/\w*w?ay/).reduce('ouyay areway illysay', function (arr, i, word) {
-  if (word.endsWith('way')) { arr.push(word.replace(/way$/, '')); } else { arr.push(word.slice(-3, -2) + word.slice(0, -3)); }
-  return arr;
-}, []);
-```
-
-All arguments but the first are optional, and the first argument can be
-expressed as a string.
-
-The `new` keywords is not required.
-
-### Instance methods
-
-These methods (and their callbacks) behave like the [array extra](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Iteration_methods)
-to which they correspond with exceptions detailed below.
-
--   ***forEach(str, callback, thisObject)*** - Unlike the other extras, this
-    method returns the RegExtras object (to enable chaining).
-
--   ***some(str, callback, thisObject)***
-
--   ***every(str, callback, thisObject)***
-
--   ***map(str, callback, thisObject)***
-
--   ***filter(str, callback, thisObject)***
-
--   ***reduce(str, cb, prev, thisObj)*** - Unlike the array extras, allows a
-    fourth argument to set an alternative value for `this` within the callback.
-
--   ***reduceRight(str, cb, prev, thisObj)*** - Unlike the array extras,
-    allows a fourth argument to set an alternative value for `this` within
-    the callback.
-
--   ***find(str, cb, thisObj)***
-
--   ***findIndex(str, cb, thisObj)***
-
-Also adds the following methods:
-
--   ***findExec(str, cb, thisObj)*** - Operates like `find()` except that it
-    returns the `exec` result array (with `index` and `input` as well as
-    numeric properties as returned by [RegExp.prototype.exec](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec)).
-
--   ***filterExec(str, cb, thisObj)*** - Operates like `filter()` except that
-    the resulting array will contain the full `exec` results.
-
-If you are using the Node version (or if, for the browser, you add the
-`index-generators.js` file and you are only supporting modern browsers), one
-can use the following generator methods:
-
--   ***values(str)*** - Returns an iterator with the array of matches (for each
-    `RegExp.prototype.exec` result)
-
--   ***keys(str)*** - Returns an iterator with 0-based indexes (from
-    `RegExp.prototype.exec` result)
-
--   ***entries(str)*** - Returns an iterator with an array containing the
-    key and the array of matches (for each `RegExp.prototype.exec` result)
-
-### Class methods
-
--   ***mixinRegex(regex, newFlags='', newLastIndex=regex.lastIndex)*** -
-    Makes a copy of a regular expression.
-
-### Callbacks
-
-All callbacks follow the signature:
-
-`cb(n1, n2..., i, n0);`
-
-...except for the `reduce` and `reduceRight` callbacks which follow:
-
-`cb(prev, n1, n2..., i, n0);`
-
-### Prototype versions
-
-`String` and `RegExp` versions of the above methods are also available.
-
-The `RegExp` prototype version acts in the same way as `RegExtra` just
-without the need for a separate constructor call.
-
-The `String` prototype version differs in that instead of the first argument
-being a string, it is the regular expression.
-
-## Todos
-
-1.  Could add [Array accessor methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Accessor_methods)
-    like `slice()`, with an additional supplied regular expression to gather
-    the `exec` results into an array.
-
-2.  Utilize `nodeunit` browser testing (and add `mixinRegex` tests)
-
-    1. Convert nodeunit tests to ES6 modules running through babel-register?;
-        streamline as sole set of tests, reconciling `test` with `tests` folder
-
-3.  Add generators for prototype versions
diff --git a/node_modules/regextras/dist/index-es.js b/node_modules/regextras/dist/index-es.js
deleted file mode 100644
index 20f3a42..0000000
--- a/node_modules/regextras/dist/index-es.js
+++ /dev/null
@@ -1,450 +0,0 @@
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-function _setPrototypeOf(o, p) {
-  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-  if (Reflect.construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    _construct = Reflect.construct;
-  } else {
-    _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-      var Constructor = Function.bind.apply(Parent, a);
-      var instance = new Constructor();
-      if (Class) _setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
-
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-function mixinRegex(regex, newFlags) {
-  var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-  newFlags = newFlags || '';
-  regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
-
-var RegExtras =
-/*#__PURE__*/
-function () {
-  function RegExtras(regex, flags, newLastIndex) {
-    _classCallCheck(this, RegExtras);
-
-    this.regex = mixinRegex(typeof regex === 'string' ? new RegExp(regex) : mixinRegex(regex), flags || '', newLastIndex);
-  }
-
-  _createClass(RegExtras, [{
-    key: "forEach",
-    value: function forEach(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        cb.apply(thisObj, matches.concat(i++, n0));
-      }
-
-      return this;
-    }
-  }, {
-    key: "some",
-    value: function some(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          ret,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return true;
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "every",
-    value: function every(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          ret,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (!ret) {
-          return false;
-        }
-      }
-
-      return true;
-    }
-  }, {
-    key: "map",
-    value: function map(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var ret = [];
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-      }
-
-      return ret;
-    }
-  }, {
-    key: "filter",
-    value: function filter(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          n0,
-          i = 0;
-      var ret = [],
-          regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        matches = matches.concat(i++, n0);
-
-        if (cb.apply(thisObj, matches)) {
-          ret.push(n0[0]);
-        }
-      }
-
-      return ret;
-    }
-  }, {
-    key: "reduce",
-    value: function reduce(str, cb, prev) {
-      var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-      var matches,
-          n0,
-          i = 0;
-      var regex = mixinRegex(this.regex, 'g');
-
-      if (!prev) {
-        if ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-        }
-      }
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-      }
-
-      return prev;
-    }
-  }, {
-    key: "reduceRight",
-    value: function reduceRight(str, cb, prevOrig, thisObjOrig) {
-      var matches,
-          n0,
-          i,
-          thisObj = thisObjOrig,
-          prev = prevOrig;
-      var matchesContainer = [],
-          regex = mixinRegex(this.regex, 'g');
-      thisObj = thisObj || null;
-
-      while ((matches = regex.exec(str)) !== null) {
-        matchesContainer.push(matches);
-      }
-
-      i = matchesContainer.length;
-
-      if (!i) {
-        if (arguments.length < 3) {
-          throw new TypeError('reduce of empty matches array with no initial value');
-        }
-
-        return prev;
-      }
-
-      if (!prev) {
-        matches = matchesContainer.splice(-1)[0];
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-      }
-
-      matchesContainer.reduceRight(function (container, mtches) {
-        n0 = mtches.splice(0, 1);
-        prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-        return container;
-      }, matchesContainer);
-      return prev;
-    }
-  }, {
-    key: "find",
-    value: function find(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          ret,
-          n0,
-          i = 0;
-      var regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return n0[0];
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "findIndex",
-    value: function findIndex(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        var n0 = matches.splice(0, 1);
-        var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return i - 1;
-        }
-      }
-
-      return -1;
-    }
-  }, {
-    key: "findExec",
-    value: function findExec(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        var n0 = matches.splice(0, 1);
-        var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return matches;
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "filterExec",
-    value: function filterExec(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          n0,
-          i = 0;
-      var ret = [],
-          regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        matches.push(i++, n0[0]);
-
-        if (cb.apply(thisObj, matches)) {
-          ret.push(matches);
-        }
-      }
-
-      return ret;
-    }
-  }]);
-
-  return RegExtras;
-}();
-
-var _RegExtras = RegExtras;
-
-RegExtras = function RegExtras() {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-
-  // eslint-disable-line no-class-assign
-  return _construct(_RegExtras, args);
-};
-
-RegExtras.prototype = _RegExtras.prototype;
-RegExtras.mixinRegex = mixinRegex;
-
-/* eslint-disable node/no-unsupported-features/es-syntax */
-// We copy the regular expression so as to be able to always
-// ensure the exec expression is a global one (and thereby prevent recursion)
-
-/**
- *
- * @param {RegExtras} RegExtras
- * @returns {void}
- */
-function addPrototypeMethods(RegExtras) {
-  RegExtras.prototype.entries =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee(str) {
-    var matches, i, regex;
-    return regeneratorRuntime.wrap(function _callee$(_context) {
-      while (1) {
-        switch (_context.prev = _context.next) {
-          case 0:
-            i = 0;
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 2:
-            if (!((matches = regex.exec(str)) !== null)) {
-              _context.next = 7;
-              break;
-            }
-
-            _context.next = 5;
-            return [i++, matches];
-
-          case 5:
-            _context.next = 2;
-            break;
-
-          case 7:
-          case "end":
-            return _context.stop();
-        }
-      }
-    }, _callee, this);
-  });
-  RegExtras.prototype.values =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee2(str) {
-    var matches, regex;
-    return regeneratorRuntime.wrap(function _callee2$(_context2) {
-      while (1) {
-        switch (_context2.prev = _context2.next) {
-          case 0:
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 1:
-            if (!((matches = regex.exec(str)) !== null)) {
-              _context2.next = 6;
-              break;
-            }
-
-            _context2.next = 4;
-            return matches;
-
-          case 4:
-            _context2.next = 1;
-            break;
-
-          case 6:
-          case "end":
-            return _context2.stop();
-        }
-      }
-    }, _callee2, this);
-  });
-  RegExtras.prototype.keys =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee3(str) {
-    var i, regex;
-    return regeneratorRuntime.wrap(function _callee3$(_context3) {
-      while (1) {
-        switch (_context3.prev = _context3.next) {
-          case 0:
-            i = 0;
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 2:
-            if (!(regex.exec(str) !== null)) {
-              _context3.next = 7;
-              break;
-            }
-
-            _context3.next = 5;
-            return i++;
-
-          case 5:
-            _context3.next = 2;
-            break;
-
-          case 7:
-          case "end":
-            return _context3.stop();
-        }
-      }
-    }, _callee3, this);
-  });
-}
-
-addPrototypeMethods(RegExtras);
-
-export { RegExtras, mixinRegex };
diff --git a/node_modules/regextras/dist/index-es.min.js b/node_modules/regextras/dist/index-es.min.js
deleted file mode 100644
index 30149bf..0000000
--- a/node_modules/regextras/dist/index-es.min.js
+++ /dev/null
@@ -1 +0,0 @@
-function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function n(e,t){return(n=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,t)}function t(e,r,c){return(t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,r){var c=[null];c.push.apply(c,t);var u=new(Function.bind.apply(e,c));return r&&n(u,r.prototype),u}).apply(null,arguments)}function r(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.lastIndex;return n=n||"",(e=new RegExp(e.source,(n.includes("g")?"g":e.global?"g":"")+(n.includes("i")?"i":e.ignoreCase?"i":"")+(n.includes("m")?"m":e.multiline?"m":"")+(n.includes("u")?"u":e.sticky?"u":"")+(n.includes("y")?"y":e.sticky?"y":""))).lastIndex=t,e}var c=function(){function n(e,t,c){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n),this.regex=r("string"==typeof e?new RegExp(e):r(e),t||"",c)}var t,c,u;return t=n,(c=[{key:"forEach",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=r(this.regex,"g"),l=0;null!==(t=i.exec(e));)c=t.splice(0,1),n.apply(u,t.concat(l++,c));return this}},{key:"some",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=r(this.regex,"g"),l=0;null!==(t=i.exec(e));)if(c=t.splice(0,1),n.apply(u,t.concat(l++,c)))return!0;return!1}},{key:"every",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=r(this.regex,"g"),l=0;null!==(t=i.exec(e));)if(c=t.splice(0,1),!n.apply(u,t.concat(l++,c)))return!1;return!0}},{key:"map",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=[],l=r(this.regex,"g"),o=0;null!==(t=l.exec(e));)c=t.splice(0,1),i.push(n.apply(u,t.concat(o++,c)));return i}},{key:"filter",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=[],o=r(this.regex,"g");null!==(t=o.exec(e));)c=t.splice(0,1),t=t.concat(i++,c),n.apply(u,t)&&l.push(c[0]);return l}},{key:"reduce",value:function(e,n,t){var c,u,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,l=0,o=r(this.regex,"g");for(t||null!==(c=o.exec(e))&&(u=c.splice(0,1),t=n.apply(i,[""].concat(c.concat(l++,u))));null!==(c=o.exec(e));)u=c.splice(0,1),t=n.apply(i,[t].concat(c.concat(l++,u)));return t}},{key:"reduceRight",value:function(e,n,t,c){var u,i,l,o=c,a=t,p=[],s=r(this.regex,"g");for(o=o||null;null!==(u=s.exec(e));)p.push(u);if(!(l=p.length)){if(arguments.length<3)throw new TypeError("reduce of empty matches array with no initial value");return a}return a||(u=p.splice(-1)[0],i=u.splice(0,1),a=n.apply(o,[""].concat(u.concat(l--,i)))),p.reduceRight((function(e,t){return i=t.splice(0,1),a=n.apply(o,[a].concat(t.concat(l--,i))),e}),p),a}},{key:"find",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=r(this.regex,"g");null!==(t=l.exec(e));)if(c=t.splice(0,1),n.apply(u,t.concat(i++,c)))return c[0];return!1}},{key:"findIndex",value:function(e,n){for(var t,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,u=r(this.regex,"g"),i=0;null!==(t=u.exec(e));){var l=t.splice(0,1),o=n.apply(c,t.concat(i++,l));if(o)return i-1}return-1}},{key:"findExec",value:function(e,n){for(var t,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,u=r(this.regex,"g"),i=0;null!==(t=u.exec(e));){var l=t.splice(0,1),o=n.apply(c,t.concat(i++,l));if(o)return t}return!1}},{key:"filterExec",value:function(e,n){for(var t,c,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=[],o=r(this.regex,"g");null!==(t=o.exec(e));)c=t.splice(0,1),t.push(i++,c[0]),n.apply(u,t)&&l.push(t);return l}}])&&e(t.prototype,c),u&&e(t,u),n}(),u=c;(c=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t(u,n)}).prototype=u.prototype,c.mixinRegex=r,function(e){e.prototype.entries=regeneratorRuntime.mark((function n(t){var r,c,u;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:c=0,u=e.mixinRegex(this.regex,"g");case 2:if(null===(r=u.exec(t))){n.next=7;break}return n.next=5,[c++,r];case 5:n.next=2;break;case 7:case"end":return n.stop()}}),n,this)})),e.prototype.values=regeneratorRuntime.mark((function n(t){var r,c;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:c=e.mixinRegex(this.regex,"g");case 1:if(null===(r=c.exec(t))){n.next=6;break}return n.next=4,r;case 4:n.next=1;break;case 6:case"end":return n.stop()}}),n,this)})),e.prototype.keys=regeneratorRuntime.mark((function n(t){var r,c;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=0,c=e.mixinRegex(this.regex,"g");case 2:if(null===c.exec(t)){n.next=7;break}return n.next=5,r++;case 5:n.next=2;break;case 7:case"end":return n.stop()}}),n,this)}))}(c);export{c as RegExtras,r as mixinRegex};
diff --git a/node_modules/regextras/dist/index-generators-es.js b/node_modules/regextras/dist/index-generators-es.js
deleted file mode 100644
index 1ee4b5e..0000000
--- a/node_modules/regextras/dist/index-generators-es.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-// We copy the regular expression so as to be able to always
-// ensure the exec expression is a global one (and thereby prevent recursion)
-
-/**
- *
- * @param {RegExtras} RegExtras
- * @returns {void}
- */
-function addPrototypeMethods(RegExtras) {
-  RegExtras.prototype.entries =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee(str) {
-    var matches, i, regex;
-    return regeneratorRuntime.wrap(function _callee$(_context) {
-      while (1) {
-        switch (_context.prev = _context.next) {
-          case 0:
-            i = 0;
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 2:
-            if (!((matches = regex.exec(str)) !== null)) {
-              _context.next = 7;
-              break;
-            }
-
-            _context.next = 5;
-            return [i++, matches];
-
-          case 5:
-            _context.next = 2;
-            break;
-
-          case 7:
-          case "end":
-            return _context.stop();
-        }
-      }
-    }, _callee, this);
-  });
-  RegExtras.prototype.values =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee2(str) {
-    var matches, regex;
-    return regeneratorRuntime.wrap(function _callee2$(_context2) {
-      while (1) {
-        switch (_context2.prev = _context2.next) {
-          case 0:
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 1:
-            if (!((matches = regex.exec(str)) !== null)) {
-              _context2.next = 6;
-              break;
-            }
-
-            _context2.next = 4;
-            return matches;
-
-          case 4:
-            _context2.next = 1;
-            break;
-
-          case 6:
-          case "end":
-            return _context2.stop();
-        }
-      }
-    }, _callee2, this);
-  });
-  RegExtras.prototype.keys =
-  /*#__PURE__*/
-  regeneratorRuntime.mark(function _callee3(str) {
-    var i, regex;
-    return regeneratorRuntime.wrap(function _callee3$(_context3) {
-      while (1) {
-        switch (_context3.prev = _context3.next) {
-          case 0:
-            i = 0;
-            regex = RegExtras.mixinRegex(this.regex, 'g');
-
-          case 2:
-            if (!(regex.exec(str) !== null)) {
-              _context3.next = 7;
-              break;
-            }
-
-            _context3.next = 5;
-            return i++;
-
-          case 5:
-            _context3.next = 2;
-            break;
-
-          case 7:
-          case "end":
-            return _context3.stop();
-        }
-      }
-    }, _callee3, this);
-  });
-}
-
-export default addPrototypeMethods;
diff --git a/node_modules/regextras/dist/index-generators-umd.js b/node_modules/regextras/dist/index-generators-umd.js
deleted file mode 100644
index d06a853..0000000
--- a/node_modules/regextras/dist/index-generators-umd.js
+++ /dev/null
@@ -1,115 +0,0 @@
-(function (global, factory) {
-  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-  typeof define === 'function' && define.amd ? define(['exports'], factory) :
-  (global = global || self, factory(global.RegExtras = {}));
-}(this, (function (exports) { 'use strict';
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-  // We copy the regular expression so as to be able to always
-  // ensure the exec expression is a global one (and thereby prevent recursion)
-
-  /**
-   *
-   * @param {RegExtras} RegExtras
-   * @returns {void}
-   */
-  function addPrototypeMethods(RegExtras) {
-    RegExtras.prototype.entries =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee(str) {
-      var matches, i, regex;
-      return regeneratorRuntime.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              i = 0;
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 2:
-              if (!((matches = regex.exec(str)) !== null)) {
-                _context.next = 7;
-                break;
-              }
-
-              _context.next = 5;
-              return [i++, matches];
-
-            case 5:
-              _context.next = 2;
-              break;
-
-            case 7:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee, this);
-    });
-    RegExtras.prototype.values =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee2(str) {
-      var matches, regex;
-      return regeneratorRuntime.wrap(function _callee2$(_context2) {
-        while (1) {
-          switch (_context2.prev = _context2.next) {
-            case 0:
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 1:
-              if (!((matches = regex.exec(str)) !== null)) {
-                _context2.next = 6;
-                break;
-              }
-
-              _context2.next = 4;
-              return matches;
-
-            case 4:
-              _context2.next = 1;
-              break;
-
-            case 6:
-            case "end":
-              return _context2.stop();
-          }
-        }
-      }, _callee2, this);
-    });
-    RegExtras.prototype.keys =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee3(str) {
-      var i, regex;
-      return regeneratorRuntime.wrap(function _callee3$(_context3) {
-        while (1) {
-          switch (_context3.prev = _context3.next) {
-            case 0:
-              i = 0;
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 2:
-              if (!(regex.exec(str) !== null)) {
-                _context3.next = 7;
-                break;
-              }
-
-              _context3.next = 5;
-              return i++;
-
-            case 5:
-              _context3.next = 2;
-              break;
-
-            case 7:
-            case "end":
-              return _context3.stop();
-          }
-        }
-      }, _callee3, this);
-    });
-  }
-
-  exports.default = addPrototypeMethods;
-
-  Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
diff --git a/node_modules/regextras/dist/index-umd.js b/node_modules/regextras/dist/index-umd.js
deleted file mode 100644
index cd1770c..0000000
--- a/node_modules/regextras/dist/index-umd.js
+++ /dev/null
@@ -1,460 +0,0 @@
-(function (global, factory) {
-  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-  typeof define === 'function' && define.amd ? define(['exports'], factory) :
-  (global = global || self, factory(global.RegExtras = {}));
-}(this, (function (exports) { 'use strict';
-
-  function _classCallCheck(instance, Constructor) {
-    if (!(instance instanceof Constructor)) {
-      throw new TypeError("Cannot call a class as a function");
-    }
-  }
-
-  function _defineProperties(target, props) {
-    for (var i = 0; i < props.length; i++) {
-      var descriptor = props[i];
-      descriptor.enumerable = descriptor.enumerable || false;
-      descriptor.configurable = true;
-      if ("value" in descriptor) descriptor.writable = true;
-      Object.defineProperty(target, descriptor.key, descriptor);
-    }
-  }
-
-  function _createClass(Constructor, protoProps, staticProps) {
-    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-    if (staticProps) _defineProperties(Constructor, staticProps);
-    return Constructor;
-  }
-
-  function _setPrototypeOf(o, p) {
-    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-      o.__proto__ = p;
-      return o;
-    };
-
-    return _setPrototypeOf(o, p);
-  }
-
-  function isNativeReflectConstruct() {
-    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-    if (Reflect.construct.sham) return false;
-    if (typeof Proxy === "function") return true;
-
-    try {
-      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-      return true;
-    } catch (e) {
-      return false;
-    }
-  }
-
-  function _construct(Parent, args, Class) {
-    if (isNativeReflectConstruct()) {
-      _construct = Reflect.construct;
-    } else {
-      _construct = function _construct(Parent, args, Class) {
-        var a = [null];
-        a.push.apply(a, args);
-        var Constructor = Function.bind.apply(Parent, a);
-        var instance = new Constructor();
-        if (Class) _setPrototypeOf(instance, Class.prototype);
-        return instance;
-      };
-    }
-
-    return _construct.apply(null, arguments);
-  }
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-
-  /**
-   * @param {RegExp} regex
-   * @param {string} newFlags
-   * @param {Integer} [newLastIndex=regex.lastIndex]
-   * @returns {RegExp}
-   */
-  function mixinRegex(regex, newFlags) {
-    var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-    newFlags = newFlags || '';
-    regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-    regex.lastIndex = newLastIndex;
-    return regex;
-  }
-
-  exports.RegExtras =
-  /*#__PURE__*/
-  function () {
-    function RegExtras(regex, flags, newLastIndex) {
-      _classCallCheck(this, RegExtras);
-
-      this.regex = mixinRegex(typeof regex === 'string' ? new RegExp(regex) : mixinRegex(regex), flags || '', newLastIndex);
-    }
-
-    _createClass(RegExtras, [{
-      key: "forEach",
-      value: function forEach(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          cb.apply(thisObj, matches.concat(i++, n0));
-        }
-
-        return this;
-      }
-    }, {
-      key: "some",
-      value: function some(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            ret,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return true;
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "every",
-      value: function every(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            ret,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (!ret) {
-            return false;
-          }
-        }
-
-        return true;
-      }
-    }, {
-      key: "map",
-      value: function map(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var ret = [];
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-        }
-
-        return ret;
-      }
-    }, {
-      key: "filter",
-      value: function filter(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            n0,
-            i = 0;
-        var ret = [],
-            regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          matches = matches.concat(i++, n0);
-
-          if (cb.apply(thisObj, matches)) {
-            ret.push(n0[0]);
-          }
-        }
-
-        return ret;
-      }
-    }, {
-      key: "reduce",
-      value: function reduce(str, cb, prev) {
-        var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-        var matches,
-            n0,
-            i = 0;
-        var regex = mixinRegex(this.regex, 'g');
-
-        if (!prev) {
-          if ((matches = regex.exec(str)) !== null) {
-            n0 = matches.splice(0, 1);
-            prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-          }
-        }
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-        }
-
-        return prev;
-      }
-    }, {
-      key: "reduceRight",
-      value: function reduceRight(str, cb, prevOrig, thisObjOrig) {
-        var matches,
-            n0,
-            i,
-            thisObj = thisObjOrig,
-            prev = prevOrig;
-        var matchesContainer = [],
-            regex = mixinRegex(this.regex, 'g');
-        thisObj = thisObj || null;
-
-        while ((matches = regex.exec(str)) !== null) {
-          matchesContainer.push(matches);
-        }
-
-        i = matchesContainer.length;
-
-        if (!i) {
-          if (arguments.length < 3) {
-            throw new TypeError('reduce of empty matches array with no initial value');
-          }
-
-          return prev;
-        }
-
-        if (!prev) {
-          matches = matchesContainer.splice(-1)[0];
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-        }
-
-        matchesContainer.reduceRight(function (container, mtches) {
-          n0 = mtches.splice(0, 1);
-          prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-          return container;
-        }, matchesContainer);
-        return prev;
-      }
-    }, {
-      key: "find",
-      value: function find(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            ret,
-            n0,
-            i = 0;
-        var regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return n0[0];
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "findIndex",
-      value: function findIndex(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          var n0 = matches.splice(0, 1);
-          var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return i - 1;
-          }
-        }
-
-        return -1;
-      }
-    }, {
-      key: "findExec",
-      value: function findExec(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          var n0 = matches.splice(0, 1);
-          var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return matches;
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "filterExec",
-      value: function filterExec(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            n0,
-            i = 0;
-        var ret = [],
-            regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          matches.push(i++, n0[0]);
-
-          if (cb.apply(thisObj, matches)) {
-            ret.push(matches);
-          }
-        }
-
-        return ret;
-      }
-    }]);
-
-    return RegExtras;
-  }();
-
-  var _RegExtras = exports.RegExtras;
-
-  exports.RegExtras = function RegExtras() {
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    // eslint-disable-line no-class-assign
-    return _construct(_RegExtras, args);
-  };
-
-  exports.RegExtras.prototype = _RegExtras.prototype;
-  exports.RegExtras.mixinRegex = mixinRegex;
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-  // We copy the regular expression so as to be able to always
-  // ensure the exec expression is a global one (and thereby prevent recursion)
-
-  /**
-   *
-   * @param {RegExtras} RegExtras
-   * @returns {void}
-   */
-  function addPrototypeMethods(RegExtras) {
-    RegExtras.prototype.entries =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee(str) {
-      var matches, i, regex;
-      return regeneratorRuntime.wrap(function _callee$(_context) {
-        while (1) {
-          switch (_context.prev = _context.next) {
-            case 0:
-              i = 0;
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 2:
-              if (!((matches = regex.exec(str)) !== null)) {
-                _context.next = 7;
-                break;
-              }
-
-              _context.next = 5;
-              return [i++, matches];
-
-            case 5:
-              _context.next = 2;
-              break;
-
-            case 7:
-            case "end":
-              return _context.stop();
-          }
-        }
-      }, _callee, this);
-    });
-    RegExtras.prototype.values =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee2(str) {
-      var matches, regex;
-      return regeneratorRuntime.wrap(function _callee2$(_context2) {
-        while (1) {
-          switch (_context2.prev = _context2.next) {
-            case 0:
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 1:
-              if (!((matches = regex.exec(str)) !== null)) {
-                _context2.next = 6;
-                break;
-              }
-
-              _context2.next = 4;
-              return matches;
-
-            case 4:
-              _context2.next = 1;
-              break;
-
-            case 6:
-            case "end":
-              return _context2.stop();
-          }
-        }
-      }, _callee2, this);
-    });
-    RegExtras.prototype.keys =
-    /*#__PURE__*/
-    regeneratorRuntime.mark(function _callee3(str) {
-      var i, regex;
-      return regeneratorRuntime.wrap(function _callee3$(_context3) {
-        while (1) {
-          switch (_context3.prev = _context3.next) {
-            case 0:
-              i = 0;
-              regex = RegExtras.mixinRegex(this.regex, 'g');
-
-            case 2:
-              if (!(regex.exec(str) !== null)) {
-                _context3.next = 7;
-                break;
-              }
-
-              _context3.next = 5;
-              return i++;
-
-            case 5:
-              _context3.next = 2;
-              break;
-
-            case 7:
-            case "end":
-              return _context3.stop();
-          }
-        }
-      }, _callee3, this);
-    });
-  }
-
-  addPrototypeMethods(exports.RegExtras);
-
-  exports.mixinRegex = mixinRegex;
-
-  Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
diff --git a/node_modules/regextras/dist/index-umd.min.js b/node_modules/regextras/dist/index-umd.min.js
deleted file mode 100644
index 8660f22..0000000
--- a/node_modules/regextras/dist/index-umd.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).RegExtras={})}(this,(function(e){"use strict";function n(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(e,n){return(t=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function r(e,n,c){return(r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,n,r){var c=[null];c.push.apply(c,n);var u=new(Function.bind.apply(e,c));return r&&t(u,r.prototype),u}).apply(null,arguments)}function c(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.lastIndex;return n=n||"",(e=new RegExp(e.source,(n.includes("g")?"g":e.global?"g":"")+(n.includes("i")?"i":e.ignoreCase?"i":"")+(n.includes("m")?"m":e.multiline?"m":"")+(n.includes("u")?"u":e.sticky?"u":"")+(n.includes("y")?"y":e.sticky?"y":""))).lastIndex=t,e}e.RegExtras=function(){function e(n,t,r){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.regex=c("string"==typeof n?new RegExp(n):c(n),t||"",r)}var t,r,u;return t=e,(r=[{key:"forEach",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c(this.regex,"g"),l=0;null!==(t=i.exec(e));)r=t.splice(0,1),n.apply(u,t.concat(l++,r));return this}},{key:"some",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c(this.regex,"g"),l=0;null!==(t=i.exec(e));)if(r=t.splice(0,1),n.apply(u,t.concat(l++,r)))return!0;return!1}},{key:"every",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c(this.regex,"g"),l=0;null!==(t=i.exec(e));)if(r=t.splice(0,1),!n.apply(u,t.concat(l++,r)))return!1;return!0}},{key:"map",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=[],l=c(this.regex,"g"),o=0;null!==(t=l.exec(e));)r=t.splice(0,1),i.push(n.apply(u,t.concat(o++,r)));return i}},{key:"filter",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=[],o=c(this.regex,"g");null!==(t=o.exec(e));)r=t.splice(0,1),t=t.concat(i++,r),n.apply(u,t)&&l.push(r[0]);return l}},{key:"reduce",value:function(e,n,t){var r,u,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,l=0,o=c(this.regex,"g");for(t||null!==(r=o.exec(e))&&(u=r.splice(0,1),t=n.apply(i,[""].concat(r.concat(l++,u))));null!==(r=o.exec(e));)u=r.splice(0,1),t=n.apply(i,[t].concat(r.concat(l++,u)));return t}},{key:"reduceRight",value:function(e,n,t,r){var u,i,l,o=r,a=t,s=[],p=c(this.regex,"g");for(o=o||null;null!==(u=p.exec(e));)s.push(u);if(!(l=s.length)){if(arguments.length<3)throw new TypeError("reduce of empty matches array with no initial value");return a}return a||(u=s.splice(-1)[0],i=u.splice(0,1),a=n.apply(o,[""].concat(u.concat(l--,i)))),s.reduceRight((function(e,t){return i=t.splice(0,1),a=n.apply(o,[a].concat(t.concat(l--,i))),e}),s),a}},{key:"find",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=c(this.regex,"g");null!==(t=l.exec(e));)if(r=t.splice(0,1),n.apply(u,t.concat(i++,r)))return r[0];return!1}},{key:"findIndex",value:function(e,n){for(var t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,u=c(this.regex,"g"),i=0;null!==(t=u.exec(e));){var l=t.splice(0,1),o=n.apply(r,t.concat(i++,l));if(o)return i-1}return-1}},{key:"findExec",value:function(e,n){for(var t,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,u=c(this.regex,"g"),i=0;null!==(t=u.exec(e));){var l=t.splice(0,1),o=n.apply(r,t.concat(i++,l));if(o)return t}return!1}},{key:"filterExec",value:function(e,n){for(var t,r,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=0,l=[],o=c(this.regex,"g");null!==(t=o.exec(e));)r=t.splice(0,1),t.push(i++,r[0]),n.apply(u,t)&&l.push(t);return l}}])&&n(t.prototype,r),u&&n(t,u),e}();var u,i=e.RegExtras;e.RegExtras=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return r(i,n)},e.RegExtras.prototype=i.prototype,e.RegExtras.mixinRegex=c,(u=e.RegExtras).prototype.entries=regeneratorRuntime.mark((function e(n){var t,r,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=0,c=u.mixinRegex(this.regex,"g");case 2:if(null===(t=c.exec(n))){e.next=7;break}return e.next=5,[r++,t];case 5:e.next=2;break;case 7:case"end":return e.stop()}}),e,this)})),u.prototype.values=regeneratorRuntime.mark((function e(n){var t,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=u.mixinRegex(this.regex,"g");case 1:if(null===(t=r.exec(n))){e.next=6;break}return e.next=4,t;case 4:e.next=1;break;case 6:case"end":return e.stop()}}),e,this)})),u.prototype.keys=regeneratorRuntime.mark((function e(n){var t,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=0,r=u.mixinRegex(this.regex,"g");case 2:if(null===r.exec(n)){e.next=7;break}return e.next=5,t++;case 5:e.next=2;break;case 7:case"end":return e.stop()}}),e,this)})),e.mixinRegex=c,Object.defineProperty(e,"__esModule",{value:!0})}));
diff --git a/node_modules/regextras/dist/main-es.js b/node_modules/regextras/dist/main-es.js
deleted file mode 100644
index c2c05ad..0000000
--- a/node_modules/regextras/dist/main-es.js
+++ /dev/null
@@ -1,344 +0,0 @@
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-function _setPrototypeOf(o, p) {
-  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-function isNativeReflectConstruct() {
-  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-  if (Reflect.construct.sham) return false;
-  if (typeof Proxy === "function") return true;
-
-  try {
-    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-    return true;
-  } catch (e) {
-    return false;
-  }
-}
-
-function _construct(Parent, args, Class) {
-  if (isNativeReflectConstruct()) {
-    _construct = Reflect.construct;
-  } else {
-    _construct = function _construct(Parent, args, Class) {
-      var a = [null];
-      a.push.apply(a, args);
-      var Constructor = Function.bind.apply(Parent, a);
-      var instance = new Constructor();
-      if (Class) _setPrototypeOf(instance, Class.prototype);
-      return instance;
-    };
-  }
-
-  return _construct.apply(null, arguments);
-}
-
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-function mixinRegex(regex, newFlags) {
-  var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-  newFlags = newFlags || '';
-  regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
-
-var RegExtras =
-/*#__PURE__*/
-function () {
-  function RegExtras(regex, flags, newLastIndex) {
-    _classCallCheck(this, RegExtras);
-
-    this.regex = mixinRegex(typeof regex === 'string' ? new RegExp(regex) : mixinRegex(regex), flags || '', newLastIndex);
-  }
-
-  _createClass(RegExtras, [{
-    key: "forEach",
-    value: function forEach(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        cb.apply(thisObj, matches.concat(i++, n0));
-      }
-
-      return this;
-    }
-  }, {
-    key: "some",
-    value: function some(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          ret,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return true;
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "every",
-    value: function every(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          ret,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (!ret) {
-          return false;
-        }
-      }
-
-      return true;
-    }
-  }, {
-    key: "map",
-    value: function map(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var ret = [];
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          n0,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-      }
-
-      return ret;
-    }
-  }, {
-    key: "filter",
-    value: function filter(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          n0,
-          i = 0;
-      var ret = [],
-          regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        matches = matches.concat(i++, n0);
-
-        if (cb.apply(thisObj, matches)) {
-          ret.push(n0[0]);
-        }
-      }
-
-      return ret;
-    }
-  }, {
-    key: "reduce",
-    value: function reduce(str, cb, prev) {
-      var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-      var matches,
-          n0,
-          i = 0;
-      var regex = mixinRegex(this.regex, 'g');
-
-      if (!prev) {
-        if ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-        }
-      }
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-      }
-
-      return prev;
-    }
-  }, {
-    key: "reduceRight",
-    value: function reduceRight(str, cb, prevOrig, thisObjOrig) {
-      var matches,
-          n0,
-          i,
-          thisObj = thisObjOrig,
-          prev = prevOrig;
-      var matchesContainer = [],
-          regex = mixinRegex(this.regex, 'g');
-      thisObj = thisObj || null;
-
-      while ((matches = regex.exec(str)) !== null) {
-        matchesContainer.push(matches);
-      }
-
-      i = matchesContainer.length;
-
-      if (!i) {
-        if (arguments.length < 3) {
-          throw new TypeError('reduce of empty matches array with no initial value');
-        }
-
-        return prev;
-      }
-
-      if (!prev) {
-        matches = matchesContainer.splice(-1)[0];
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-      }
-
-      matchesContainer.reduceRight(function (container, mtches) {
-        n0 = mtches.splice(0, 1);
-        prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-        return container;
-      }, matchesContainer);
-      return prev;
-    }
-  }, {
-    key: "find",
-    value: function find(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          ret,
-          n0,
-          i = 0;
-      var regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return n0[0];
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "findIndex",
-    value: function findIndex(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        var n0 = matches.splice(0, 1);
-        var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return i - 1;
-        }
-      }
-
-      return -1;
-    }
-  }, {
-    key: "findExec",
-    value: function findExec(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var regex = mixinRegex(this.regex, 'g');
-      var matches,
-          i = 0;
-
-      while ((matches = regex.exec(str)) !== null) {
-        var n0 = matches.splice(0, 1);
-        var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-        if (ret) {
-          return matches;
-        }
-      }
-
-      return false;
-    }
-  }, {
-    key: "filterExec",
-    value: function filterExec(str, cb) {
-      var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-      var matches,
-          n0,
-          i = 0;
-      var ret = [],
-          regex = mixinRegex(this.regex, 'g');
-
-      while ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        matches.push(i++, n0[0]);
-
-        if (cb.apply(thisObj, matches)) {
-          ret.push(matches);
-        }
-      }
-
-      return ret;
-    }
-  }]);
-
-  return RegExtras;
-}();
-
-var _RegExtras = RegExtras;
-
-RegExtras = function RegExtras() {
-  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-    args[_key] = arguments[_key];
-  }
-
-  // eslint-disable-line no-class-assign
-  return _construct(_RegExtras, args);
-};
-
-RegExtras.prototype = _RegExtras.prototype;
-RegExtras.mixinRegex = mixinRegex;
-
-export { RegExtras, mixinRegex };
diff --git a/node_modules/regextras/dist/main-umd.js b/node_modules/regextras/dist/main-umd.js
deleted file mode 100644
index b2962e3..0000000
--- a/node_modules/regextras/dist/main-umd.js
+++ /dev/null
@@ -1,354 +0,0 @@
-(function (global, factory) {
-  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-  typeof define === 'function' && define.amd ? define(['exports'], factory) :
-  (global = global || self, factory(global.RegExtras = {}));
-}(this, (function (exports) { 'use strict';
-
-  function _classCallCheck(instance, Constructor) {
-    if (!(instance instanceof Constructor)) {
-      throw new TypeError("Cannot call a class as a function");
-    }
-  }
-
-  function _defineProperties(target, props) {
-    for (var i = 0; i < props.length; i++) {
-      var descriptor = props[i];
-      descriptor.enumerable = descriptor.enumerable || false;
-      descriptor.configurable = true;
-      if ("value" in descriptor) descriptor.writable = true;
-      Object.defineProperty(target, descriptor.key, descriptor);
-    }
-  }
-
-  function _createClass(Constructor, protoProps, staticProps) {
-    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-    if (staticProps) _defineProperties(Constructor, staticProps);
-    return Constructor;
-  }
-
-  function _setPrototypeOf(o, p) {
-    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-      o.__proto__ = p;
-      return o;
-    };
-
-    return _setPrototypeOf(o, p);
-  }
-
-  function isNativeReflectConstruct() {
-    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-    if (Reflect.construct.sham) return false;
-    if (typeof Proxy === "function") return true;
-
-    try {
-      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
-      return true;
-    } catch (e) {
-      return false;
-    }
-  }
-
-  function _construct(Parent, args, Class) {
-    if (isNativeReflectConstruct()) {
-      _construct = Reflect.construct;
-    } else {
-      _construct = function _construct(Parent, args, Class) {
-        var a = [null];
-        a.push.apply(a, args);
-        var Constructor = Function.bind.apply(Parent, a);
-        var instance = new Constructor();
-        if (Class) _setPrototypeOf(instance, Class.prototype);
-        return instance;
-      };
-    }
-
-    return _construct.apply(null, arguments);
-  }
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-
-  /**
-   * @param {RegExp} regex
-   * @param {string} newFlags
-   * @param {Integer} [newLastIndex=regex.lastIndex]
-   * @returns {RegExp}
-   */
-  function mixinRegex(regex, newFlags) {
-    var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-    newFlags = newFlags || '';
-    regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-    regex.lastIndex = newLastIndex;
-    return regex;
-  }
-
-  exports.RegExtras =
-  /*#__PURE__*/
-  function () {
-    function RegExtras(regex, flags, newLastIndex) {
-      _classCallCheck(this, RegExtras);
-
-      this.regex = mixinRegex(typeof regex === 'string' ? new RegExp(regex) : mixinRegex(regex), flags || '', newLastIndex);
-    }
-
-    _createClass(RegExtras, [{
-      key: "forEach",
-      value: function forEach(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          cb.apply(thisObj, matches.concat(i++, n0));
-        }
-
-        return this;
-      }
-    }, {
-      key: "some",
-      value: function some(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            ret,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return true;
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "every",
-      value: function every(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            ret,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (!ret) {
-            return false;
-          }
-        }
-
-        return true;
-      }
-    }, {
-      key: "map",
-      value: function map(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var ret = [];
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            n0,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-        }
-
-        return ret;
-      }
-    }, {
-      key: "filter",
-      value: function filter(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            n0,
-            i = 0;
-        var ret = [],
-            regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          matches = matches.concat(i++, n0);
-
-          if (cb.apply(thisObj, matches)) {
-            ret.push(n0[0]);
-          }
-        }
-
-        return ret;
-      }
-    }, {
-      key: "reduce",
-      value: function reduce(str, cb, prev) {
-        var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-        var matches,
-            n0,
-            i = 0;
-        var regex = mixinRegex(this.regex, 'g');
-
-        if (!prev) {
-          if ((matches = regex.exec(str)) !== null) {
-            n0 = matches.splice(0, 1);
-            prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-          }
-        }
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-        }
-
-        return prev;
-      }
-    }, {
-      key: "reduceRight",
-      value: function reduceRight(str, cb, prevOrig, thisObjOrig) {
-        var matches,
-            n0,
-            i,
-            thisObj = thisObjOrig,
-            prev = prevOrig;
-        var matchesContainer = [],
-            regex = mixinRegex(this.regex, 'g');
-        thisObj = thisObj || null;
-
-        while ((matches = regex.exec(str)) !== null) {
-          matchesContainer.push(matches);
-        }
-
-        i = matchesContainer.length;
-
-        if (!i) {
-          if (arguments.length < 3) {
-            throw new TypeError('reduce of empty matches array with no initial value');
-          }
-
-          return prev;
-        }
-
-        if (!prev) {
-          matches = matchesContainer.splice(-1)[0];
-          n0 = matches.splice(0, 1);
-          prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-        }
-
-        matchesContainer.reduceRight(function (container, mtches) {
-          n0 = mtches.splice(0, 1);
-          prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-          return container;
-        }, matchesContainer);
-        return prev;
-      }
-    }, {
-      key: "find",
-      value: function find(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            ret,
-            n0,
-            i = 0;
-        var regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return n0[0];
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "findIndex",
-      value: function findIndex(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          var n0 = matches.splice(0, 1);
-          var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return i - 1;
-          }
-        }
-
-        return -1;
-      }
-    }, {
-      key: "findExec",
-      value: function findExec(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var regex = mixinRegex(this.regex, 'g');
-        var matches,
-            i = 0;
-
-        while ((matches = regex.exec(str)) !== null) {
-          var n0 = matches.splice(0, 1);
-          var ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-          if (ret) {
-            return matches;
-          }
-        }
-
-        return false;
-      }
-    }, {
-      key: "filterExec",
-      value: function filterExec(str, cb) {
-        var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-        var matches,
-            n0,
-            i = 0;
-        var ret = [],
-            regex = mixinRegex(this.regex, 'g');
-
-        while ((matches = regex.exec(str)) !== null) {
-          n0 = matches.splice(0, 1);
-          matches.push(i++, n0[0]);
-
-          if (cb.apply(thisObj, matches)) {
-            ret.push(matches);
-          }
-        }
-
-        return ret;
-      }
-    }]);
-
-    return RegExtras;
-  }();
-
-  var _RegExtras = exports.RegExtras;
-
-  exports.RegExtras = function RegExtras() {
-    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-      args[_key] = arguments[_key];
-    }
-
-    // eslint-disable-line no-class-assign
-    return _construct(_RegExtras, args);
-  };
-
-  exports.RegExtras.prototype = _RegExtras.prototype;
-  exports.RegExtras.mixinRegex = mixinRegex;
-
-  exports.mixinRegex = mixinRegex;
-
-  Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
diff --git a/node_modules/regextras/dist/prototype-es.js b/node_modules/regextras/dist/prototype-es.js
deleted file mode 100644
index f3b3c7d..0000000
--- a/node_modules/regextras/dist/prototype-es.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-function mixinRegex(regex, newFlags) {
-  var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-  newFlags = newFlags || '';
-  regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
-
-/* eslint-disable no-extend-native,
-    no-use-extend-native/no-use-extend-native,
-    node/no-unsupported-features/es-syntax
-*/
-
-RegExp.prototype.forEach = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-
-  return this;
-};
-
-RegExp.prototype.some = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-RegExp.prototype.every = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (!ret) {
-      return false;
-    }
-  }
-
-  return true;
-};
-
-RegExp.prototype.map = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [];
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-
-  return ret;
-};
-
-RegExp.prototype.filter = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [];
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches[0]);
-    }
-  }
-
-  return ret;
-};
-
-RegExp.prototype.reduce = function (str, cb, prev) {
-  var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-  var matches,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  if (!prev) {
-    if ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i++)));
-    }
-  }
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(n0, i++)));
-  }
-
-  return prev;
-};
-
-RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-  var matches,
-      n0,
-      i,
-      prev = prevOrig,
-      thisObj = thisObjOrig;
-  var regex = mixinRegex(this, 'g');
-  var matchesContainer = [];
-  thisObj = thisObj || null;
-
-  while ((matches = regex.exec(str)) !== null) {
-    matchesContainer.push(matches);
-  }
-
-  i = matchesContainer.length;
-
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError('reduce of empty matches array with no initial value');
-    }
-
-    return prev;
-  }
-
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i--)));
-  }
-
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(n0, i--)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
diff --git a/node_modules/regextras/dist/prototype-umd.js b/node_modules/regextras/dist/prototype-umd.js
deleted file mode 100644
index cb3f721..0000000
--- a/node_modules/regextras/dist/prototype-umd.js
+++ /dev/null
@@ -1,178 +0,0 @@
-(function (factory) {
-  typeof define === 'function' && define.amd ? define(factory) :
-  factory();
-}((function () { 'use strict';
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-
-  /**
-   * @param {RegExp} regex
-   * @param {string} newFlags
-   * @param {Integer} [newLastIndex=regex.lastIndex]
-   * @returns {RegExp}
-   */
-  function mixinRegex(regex, newFlags) {
-    var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-    newFlags = newFlags || '';
-    regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-    regex.lastIndex = newLastIndex;
-    return regex;
-  }
-
-  /* eslint-disable no-extend-native,
-      no-use-extend-native/no-use-extend-native,
-      node/no-unsupported-features/es-syntax
-  */
-
-  RegExp.prototype.forEach = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      cb.apply(thisObj, matches.concat(i++, n0));
-    }
-
-    return this;
-  };
-
-  RegExp.prototype.some = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return true;
-      }
-    }
-
-    return false;
-  };
-
-  RegExp.prototype.every = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (!ret) {
-        return false;
-      }
-    }
-
-    return true;
-  };
-
-  RegExp.prototype.map = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [];
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-    }
-
-    return ret;
-  };
-
-  RegExp.prototype.filter = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [];
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches = matches.concat(i++, n0);
-
-      if (cb.apply(thisObj, matches)) {
-        ret.push(matches[0]);
-      }
-    }
-
-    return ret;
-  };
-
-  RegExp.prototype.reduce = function (str, cb, prev) {
-    var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-    var matches,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    if (!prev) {
-      if ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i++)));
-      }
-    }
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(matches.concat(n0, i++)));
-    }
-
-    return prev;
-  };
-
-  RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-    var matches,
-        n0,
-        i,
-        prev = prevOrig,
-        thisObj = thisObjOrig;
-    var regex = mixinRegex(this, 'g');
-    var matchesContainer = [];
-    thisObj = thisObj || null;
-
-    while ((matches = regex.exec(str)) !== null) {
-      matchesContainer.push(matches);
-    }
-
-    i = matchesContainer.length;
-
-    if (!i) {
-      if (arguments.length < 3) {
-        throw new TypeError('reduce of empty matches array with no initial value');
-      }
-
-      return prev;
-    }
-
-    if (!prev) {
-      matches = matchesContainer.splice(-1)[0];
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i--)));
-    }
-
-    matchesContainer.reduceRight(function (container, mtches) {
-      n0 = mtches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(mtches.concat(n0, i--)));
-      return container;
-    }, matchesContainer);
-    return prev;
-  };
-
-})));
diff --git a/node_modules/regextras/dist/regexp-prototype-es.js b/node_modules/regextras/dist/regexp-prototype-es.js
deleted file mode 100644
index 0c95002..0000000
--- a/node_modules/regextras/dist/regexp-prototype-es.js
+++ /dev/null
@@ -1,250 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-function mixinRegex(regex, newFlags) {
-  var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-  newFlags = newFlags || '';
-  regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
-
-/* eslint-disable no-extend-native,
-    no-use-extend-native/no-use-extend-native,
-    node/no-unsupported-features/es-syntax */
-
-RegExp.prototype.forEach = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-
-  return this;
-};
-
-RegExp.prototype.some = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-RegExp.prototype.every = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (!ret) {
-      return false;
-    }
-  }
-
-  return true;
-};
-
-RegExp.prototype.map = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [],
-      regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-
-  return ret;
-};
-
-RegExp.prototype.filter = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [],
-      regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-
-    if (cb.apply(thisObj, matches)) {
-      ret.push(n0[0]);
-    }
-  }
-
-  return ret;
-};
-
-RegExp.prototype.reduce = function (str, cb, prev) {
-  var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-  var matches,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  if (!prev) {
-    if ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-    }
-  }
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-  }
-
-  return prev;
-};
-
-RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-  var matches,
-      n0,
-      i,
-      prev = prevOrig,
-      thisObj = thisObjOrig;
-  var matchesContainer = [],
-      regex = mixinRegex(this, 'g');
-  thisObj = thisObj || null;
-
-  while ((matches = regex.exec(str)) !== null) {
-    matchesContainer.push(matches);
-  }
-
-  i = matchesContainer.length;
-
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError('reduce of empty matches array with no initial value');
-    }
-
-    return prev;
-  }
-
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-  }
-
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
-
-RegExp.prototype.find = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return n0[0];
-    }
-  }
-
-  return false;
-};
-
-RegExp.prototype.findIndex = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return i - 1;
-    }
-  }
-
-  return -1;
-};
-
-RegExp.prototype.findExec = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  var regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return matches;
-    }
-  }
-
-  return false;
-};
-
-RegExp.prototype.filterExec = function (str, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [],
-      regex = mixinRegex(this, 'g');
-
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches.push(i++, n0[0]);
-
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches);
-    }
-  }
-
-  return ret;
-};
diff --git a/node_modules/regextras/dist/regexp-prototype-umd.js b/node_modules/regextras/dist/regexp-prototype-umd.js
deleted file mode 100644
index 6e6ace9..0000000
--- a/node_modules/regextras/dist/regexp-prototype-umd.js
+++ /dev/null
@@ -1,257 +0,0 @@
-(function (factory) {
-  typeof define === 'function' && define.amd ? define(factory) :
-  factory();
-}((function () { 'use strict';
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-
-  /**
-   * @param {RegExp} regex
-   * @param {string} newFlags
-   * @param {Integer} [newLastIndex=regex.lastIndex]
-   * @returns {RegExp}
-   */
-  function mixinRegex(regex, newFlags) {
-    var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-    newFlags = newFlags || '';
-    regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-    regex.lastIndex = newLastIndex;
-    return regex;
-  }
-
-  /* eslint-disable no-extend-native,
-      no-use-extend-native/no-use-extend-native,
-      node/no-unsupported-features/es-syntax */
-
-  RegExp.prototype.forEach = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      cb.apply(thisObj, matches.concat(i++, n0));
-    }
-
-    return this;
-  };
-
-  RegExp.prototype.some = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return true;
-      }
-    }
-
-    return false;
-  };
-
-  RegExp.prototype.every = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (!ret) {
-        return false;
-      }
-    }
-
-    return true;
-  };
-
-  RegExp.prototype.map = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [],
-        regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-    }
-
-    return ret;
-  };
-
-  RegExp.prototype.filter = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [],
-        regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches = matches.concat(i++, n0);
-
-      if (cb.apply(thisObj, matches)) {
-        ret.push(n0[0]);
-      }
-    }
-
-    return ret;
-  };
-
-  RegExp.prototype.reduce = function (str, cb, prev) {
-    var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-    var matches,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    if (!prev) {
-      if ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-      }
-    }
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-    }
-
-    return prev;
-  };
-
-  RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-    var matches,
-        n0,
-        i,
-        prev = prevOrig,
-        thisObj = thisObjOrig;
-    var matchesContainer = [],
-        regex = mixinRegex(this, 'g');
-    thisObj = thisObj || null;
-
-    while ((matches = regex.exec(str)) !== null) {
-      matchesContainer.push(matches);
-    }
-
-    i = matchesContainer.length;
-
-    if (!i) {
-      if (arguments.length < 3) {
-        throw new TypeError('reduce of empty matches array with no initial value');
-      }
-
-      return prev;
-    }
-
-    if (!prev) {
-      matches = matchesContainer.splice(-1)[0];
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-    }
-
-    matchesContainer.reduceRight(function (container, mtches) {
-      n0 = mtches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-      return container;
-    }, matchesContainer);
-    return prev;
-  };
-
-  RegExp.prototype.find = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return n0[0];
-      }
-    }
-
-    return false;
-  };
-
-  RegExp.prototype.findIndex = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return i - 1;
-      }
-    }
-
-    return -1;
-  };
-
-  RegExp.prototype.findExec = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    var regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return matches;
-      }
-    }
-
-    return false;
-  };
-
-  RegExp.prototype.filterExec = function (str, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [],
-        regex = mixinRegex(this, 'g');
-
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches.push(i++, n0[0]);
-
-      if (cb.apply(thisObj, matches)) {
-        ret.push(matches);
-      }
-    }
-
-    return ret;
-  };
-
-})));
diff --git a/node_modules/regextras/dist/string-prototype-es.js b/node_modules/regextras/dist/string-prototype-es.js
deleted file mode 100644
index 778420c..0000000
--- a/node_modules/regextras/dist/string-prototype-es.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-function mixinRegex(regex, newFlags) {
-  var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-  newFlags = newFlags || '';
-  regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
-
-// We copy the regular expression so as to be able to always ensure the exec
-
-String.prototype.forEach = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-
-  return this;
-};
-
-String.prototype.some = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-String.prototype.every = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (!ret) {
-      return false;
-    }
-  }
-
-  return true;
-};
-
-String.prototype.map = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [];
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-
-  return ret;
-};
-
-String.prototype.filter = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [];
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-
-    if (cb.apply(thisObj, matches)) {
-      ret.push(n0[0]);
-    }
-  }
-
-  return ret;
-};
-
-String.prototype.reduce = function (regex, cb, prev) {
-  var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-  var matches,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  if (!prev) {
-    if ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-    }
-  }
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-  }
-
-  return prev;
-};
-
-String.prototype.reduceRight = function (regex, cb, prevOrig, thisObjOrig) {
-  var matches,
-      n0,
-      i,
-      prev = prevOrig,
-      thisObj = thisObjOrig;
-  var matchesContainer = [];
-  regex = mixinRegex(regex, 'g');
-  thisObj = thisObj || null;
-
-  while ((matches = regex.exec(this)) !== null) {
-    matchesContainer.push(matches);
-  }
-
-  i = matchesContainer.length;
-
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError('reduce of empty matches array with no initial value');
-    }
-
-    return prev;
-  }
-
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-  }
-
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
-
-String.prototype.find = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return n0[0];
-    }
-  }
-
-  return false;
-};
-
-String.prototype.findIndex = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return i - 1;
-    }
-  }
-
-  return -1;
-};
-
-String.prototype.findExec = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      ret,
-      n0,
-      i = 0;
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-    if (ret) {
-      return matches;
-    }
-  }
-
-  return false;
-};
-
-String.prototype.filterExec = function (regex, cb) {
-  var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-  var matches,
-      n0,
-      i = 0;
-  var ret = [];
-  regex = mixinRegex(regex, 'g');
-
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches.push(i++, n0[0]);
-
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches);
-    }
-  }
-
-  return ret;
-};
diff --git a/node_modules/regextras/dist/string-prototype-umd.js b/node_modules/regextras/dist/string-prototype-umd.js
deleted file mode 100644
index 8845c2d..0000000
--- a/node_modules/regextras/dist/string-prototype-umd.js
+++ /dev/null
@@ -1,255 +0,0 @@
-(function (factory) {
-  typeof define === 'function' && define.amd ? define(factory) :
-  factory();
-}((function () { 'use strict';
-
-  /* eslint-disable node/no-unsupported-features/es-syntax */
-
-  /**
-   * @param {RegExp} regex
-   * @param {string} newFlags
-   * @param {Integer} [newLastIndex=regex.lastIndex]
-   * @returns {RegExp}
-   */
-  function mixinRegex(regex, newFlags) {
-    var newLastIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : regex.lastIndex;
-    newFlags = newFlags || '';
-    regex = new RegExp(regex.source, (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') + (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') + (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') + (newFlags.includes('u') ? 'u' : regex.sticky ? 'u' : '') + (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : ''));
-    regex.lastIndex = newLastIndex;
-    return regex;
-  }
-
-  // We copy the regular expression so as to be able to always ensure the exec
-
-  String.prototype.forEach = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      cb.apply(thisObj, matches.concat(i++, n0));
-    }
-
-    return this;
-  };
-
-  String.prototype.some = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return true;
-      }
-    }
-
-    return false;
-  };
-
-  String.prototype.every = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (!ret) {
-        return false;
-      }
-    }
-
-    return true;
-  };
-
-  String.prototype.map = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [];
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-    }
-
-    return ret;
-  };
-
-  String.prototype.filter = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [];
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches = matches.concat(i++, n0);
-
-      if (cb.apply(thisObj, matches)) {
-        ret.push(n0[0]);
-      }
-    }
-
-    return ret;
-  };
-
-  String.prototype.reduce = function (regex, cb, prev) {
-    var thisObj = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
-    var matches,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    if (!prev) {
-      if ((matches = regex.exec(this)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-      }
-    }
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-    }
-
-    return prev;
-  };
-
-  String.prototype.reduceRight = function (regex, cb, prevOrig, thisObjOrig) {
-    var matches,
-        n0,
-        i,
-        prev = prevOrig,
-        thisObj = thisObjOrig;
-    var matchesContainer = [];
-    regex = mixinRegex(regex, 'g');
-    thisObj = thisObj || null;
-
-    while ((matches = regex.exec(this)) !== null) {
-      matchesContainer.push(matches);
-    }
-
-    i = matchesContainer.length;
-
-    if (!i) {
-      if (arguments.length < 3) {
-        throw new TypeError('reduce of empty matches array with no initial value');
-      }
-
-      return prev;
-    }
-
-    if (!prev) {
-      matches = matchesContainer.splice(-1)[0];
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-    }
-
-    matchesContainer.reduceRight(function (container, mtches) {
-      n0 = mtches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-      return container;
-    }, matchesContainer);
-    return prev;
-  };
-
-  String.prototype.find = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return n0[0];
-      }
-    }
-
-    return false;
-  };
-
-  String.prototype.findIndex = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return i - 1;
-      }
-    }
-
-    return -1;
-  };
-
-  String.prototype.findExec = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        ret,
-        n0,
-        i = 0;
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-
-      if (ret) {
-        return matches;
-      }
-    }
-
-    return false;
-  };
-
-  String.prototype.filterExec = function (regex, cb) {
-    var thisObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
-    var matches,
-        n0,
-        i = 0;
-    var ret = [];
-    regex = mixinRegex(regex, 'g');
-
-    while ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches.push(i++, n0[0]);
-
-      if (cb.apply(thisObj, matches)) {
-        ret.push(matches);
-      }
-    }
-
-    return ret;
-  };
-
-})));
diff --git a/node_modules/regextras/lgtm.yml b/node_modules/regextras/lgtm.yml
deleted file mode 100644
index bb188ba..0000000
--- a/node_modules/regextras/lgtm.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-extraction:
-  javascript:
-    index:
-      filters:
-        - exclude: "dist"
diff --git a/node_modules/regextras/package.json b/node_modules/regextras/package.json
deleted file mode 100644
index 1a76f27..0000000
--- a/node_modules/regextras/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-  "name": "regextras",
-  "version": "0.7.0",
-  "license": "MIT",
-  "author": "Brett Zamir",
-  "contributors": [],
-  "repository": "https://github.com/brettz9/regextras",
-  "homepage": "https://github.com/brettz9/regextras",
-  "bugs": "https://github.com/brettz9/regextras/issues",
-  "scripts": {
-    "eslint": "eslint --ext=js,md,html .",
-    "rollup": "rollup -c",
-    "start": "static -p 8081",
-    "coverage": "open-cli http://localhost:8081/coverage && npm start",
-    "mocha": "mocha --require esm --require test/node-env.js test/test.*.js --exit",
-    "mocha-cov": "nyc npm run mocha",
-    "test-cov": "npm run eslint && npm run rollup && npm run mocha-cov",
-    "test": "npm run eslint && npm run rollup && npm run mocha",
-    "test-browser": "npm run eslint && npm run rollup && open-cli http://127.0.0.1:8081/tests/regextras.html && npm start"
-  },
-  "nyc": {
-    "reporter": [
-      "html",
-      "text"
-    ],
-    "exclude": [
-      ".eslintrc.js",
-      "rollup.config.js",
-      "dist",
-      "node_modules",
-      "test",
-      "tests"
-    ]
-  },
-  "browserslist": [
-    "cover 100%"
-  ],
-  "main": "dist/index-umd.js",
-  "module": "dist/index-es.js",
-  "keywords": [
-    "regex",
-    "regexp",
-    "regular expression"
-  ],
-  "description": "Array extras for regular expressions",
-  "engines": {
-    "node": ">=0.1.14"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "@babel/core": "^7.7.5",
-    "@babel/preset-env": "^7.7.6",
-    "@mysticatea/eslint-plugin": "^13.0.0",
-    "chai": "^4.2.0",
-    "core-js-bundle": "^3.5.0",
-    "eslint": "^6.7.2",
-    "eslint-config-ash-nazg": "^13.1.0",
-    "eslint-config-standard": "^14.1.0",
-    "eslint-plugin-array-func": "^3.1.3",
-    "eslint-plugin-chai-expect": "^2.1.0",
-    "eslint-plugin-chai-friendly": "^0.5.0",
-    "eslint-plugin-compat": "^3.3.0",
-    "eslint-plugin-eslint-comments": "^3.1.2",
-    "eslint-plugin-html": "^6.0.0",
-    "eslint-plugin-import": "^2.19.1",
-    "eslint-plugin-jsdoc": "^18.4.3",
-    "eslint-plugin-markdown": "^1.0.1",
-    "eslint-plugin-no-use-extend-native": "^0.4.1",
-    "eslint-plugin-node": "^10.0.0",
-    "eslint-plugin-promise": "^4.2.1",
-    "eslint-plugin-sonarjs": "^0.5.0",
-    "eslint-plugin-standard": "^4.0.1",
-    "eslint-plugin-unicorn": "^14.0.1",
-    "esm": "^3.2.25",
-    "mocha": "^6.2.2",
-    "node-static": "^0.7.11",
-    "nyc": "^14.1.1",
-    "open-cli": "^5.0.0",
-    "regenerator-runtime": "^0.13.3",
-    "remark-lint": "6.0.5",
-    "rollup": "1.27.13",
-    "rollup-plugin-babel": "^4.3.3",
-    "rollup-plugin-terser": "^5.1.3",
-    "typescript": "^3.7.3"
-  }
-}
diff --git a/node_modules/regextras/src/index-generators.js b/node_modules/regextras/src/index-generators.js
deleted file mode 100644
index 3dbf164..0000000
--- a/node_modules/regextras/src/index-generators.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-// We copy the regular expression so as to be able to always
-// ensure the exec expression is a global one (and thereby prevent recursion)
-
-/**
- *
- * @param {RegExtras} RegExtras
- * @returns {void}
- */
-function addPrototypeMethods (RegExtras) {
-  RegExtras.prototype.entries = function * (str) {
-    let matches, i = 0;
-    const regex = RegExtras.mixinRegex(this.regex, 'g');
-    while ((matches = regex.exec(str)) !== null) {
-      yield [i++, matches];
-    }
-  };
-
-  RegExtras.prototype.values = function * (str) {
-    let matches;
-    const regex = RegExtras.mixinRegex(this.regex, 'g');
-    while ((matches = regex.exec(str)) !== null) {
-      yield matches;
-    }
-  };
-
-  RegExtras.prototype.keys = function * (str) {
-    let i = 0;
-    const regex = RegExtras.mixinRegex(this.regex, 'g');
-    while (regex.exec(str) !== null) {
-      yield i++;
-    }
-  };
-}
-
-export default addPrototypeMethods;
diff --git a/node_modules/regextras/src/index.js b/node_modules/regextras/src/index.js
deleted file mode 100644
index d5fd294..0000000
--- a/node_modules/regextras/src/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import {mixinRegex, RegExtras} from './main.js';
-import addGenerators from './index-generators.js';
-
-addGenerators(RegExtras);
-
-export {mixinRegex, RegExtras};
diff --git a/node_modules/regextras/src/main.js b/node_modules/regextras/src/main.js
deleted file mode 100644
index 1c1c966..0000000
--- a/node_modules/regextras/src/main.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-// We copy the regular expression so as to be able to always ensure the
-//   exec expression is a global one (and thereby prevent recursion)
-
-import mixinRegex from './mixinRegex.js';
-
-class RegExtras {
-  constructor (regex, flags, newLastIndex) {
-    this.regex = mixinRegex(
-      (typeof regex === 'string' ? new RegExp(regex) : mixinRegex(regex)),
-      flags || '',
-      newLastIndex
-    );
-  }
-
-  forEach (str, cb, thisObj = null) {
-    const regex = mixinRegex(this.regex, 'g');
-
-    let matches, n0, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      cb.apply(thisObj, matches.concat(i++, n0));
-    }
-    return this;
-  }
-
-  some (str, cb, thisObj = null) {
-    const regex = mixinRegex(this.regex, 'g');
-    let matches, ret, n0, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-      if (ret) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  every (str, cb, thisObj = null) {
-    const regex = mixinRegex(this.regex, 'g');
-    let matches, ret, n0, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-      if (!ret) {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  map (str, cb, thisObj = null) {
-    const ret = [];
-    const regex = mixinRegex(this.regex, 'g');
-    let matches, n0, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-    }
-    return ret;
-  }
-
-  filter (str, cb, thisObj = null) {
-    let matches, n0, i = 0;
-    const ret = [], regex = mixinRegex(this.regex, 'g');
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches = matches.concat(i++, n0);
-      if (cb.apply(thisObj, matches)) {
-        ret.push(n0[0]);
-      }
-    }
-    return ret;
-  }
-
-  reduce (str, cb, prev, thisObj = null) {
-    let matches, n0, i = 0;
-    const regex = mixinRegex(this.regex, 'g');
-    if (!prev) {
-      if ((matches = regex.exec(str)) !== null) {
-        n0 = matches.splice(0, 1);
-        prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-      }
-    }
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-    }
-    return prev;
-  }
-
-  reduceRight (str, cb, prevOrig, thisObjOrig) {
-    let matches, n0, i, thisObj = thisObjOrig, prev = prevOrig;
-    const matchesContainer = [],
-      regex = mixinRegex(this.regex, 'g');
-    thisObj = thisObj || null;
-    while ((matches = regex.exec(str)) !== null) {
-      matchesContainer.push(matches);
-    }
-    i = matchesContainer.length;
-    if (!i) {
-      if (arguments.length < 3) {
-        throw new TypeError(
-          'reduce of empty matches array with no initial value'
-        );
-      }
-      return prev;
-    }
-    if (!prev) {
-      matches = matchesContainer.splice(-1)[0];
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-    }
-    matchesContainer.reduceRight((container, mtches) => {
-      n0 = mtches.splice(0, 1);
-      prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-      return container;
-    }, matchesContainer);
-    return prev;
-  }
-
-  find (str, cb, thisObj = null) {
-    let matches, ret, n0, i = 0;
-    const regex = mixinRegex(this.regex, 'g');
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      ret = cb.apply(thisObj, matches.concat(i++, n0));
-      if (ret) {
-        return n0[0];
-      }
-    }
-    return false;
-  }
-
-  findIndex (str, cb, thisObj = null) {
-    const regex = mixinRegex(this.regex, 'g');
-    let matches, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      const n0 = matches.splice(0, 1);
-      const ret = cb.apply(thisObj, matches.concat(i++, n0));
-      if (ret) {
-        return i - 1;
-      }
-    }
-    return -1;
-  }
-
-  findExec (str, cb, thisObj = null) {
-    const regex = mixinRegex(this.regex, 'g');
-    let matches, i = 0;
-    while ((matches = regex.exec(str)) !== null) {
-      const n0 = matches.splice(0, 1);
-      const ret = cb.apply(thisObj, matches.concat(i++, n0));
-      if (ret) {
-        return matches;
-      }
-    }
-    return false;
-  }
-
-  filterExec (str, cb, thisObj = null) {
-    let matches, n0, i = 0;
-    const ret = [], regex = mixinRegex(this.regex, 'g');
-    while ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      matches.push(i++, n0[0]);
-      if (cb.apply(thisObj, matches)) {
-        ret.push(matches);
-      }
-    }
-    return ret;
-  }
-}
-
-const _RegExtras = RegExtras;
-RegExtras = function (...args) { // eslint-disable-line no-class-assign
-  return new _RegExtras(...args);
-};
-RegExtras.prototype = _RegExtras.prototype;
-
-RegExtras.mixinRegex = mixinRegex;
-
-export {mixinRegex, RegExtras};
diff --git a/node_modules/regextras/src/mixinRegex.js b/node_modules/regextras/src/mixinRegex.js
deleted file mode 100644
index 9618b0d..0000000
--- a/node_modules/regextras/src/mixinRegex.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* eslint-disable node/no-unsupported-features/es-syntax */
-
-/**
- * @param {RegExp} regex
- * @param {string} newFlags
- * @param {Integer} [newLastIndex=regex.lastIndex]
- * @returns {RegExp}
- */
-export default function mixinRegex (
-  regex, newFlags, newLastIndex = regex.lastIndex
-) {
-  newFlags = newFlags || '';
-  regex = new RegExp(
-    regex.source,
-    (newFlags.includes('g') ? 'g' : regex.global ? 'g' : '') +
-            (newFlags.includes('i') ? 'i' : regex.ignoreCase ? 'i' : '') +
-            (newFlags.includes('m') ? 'm' : regex.multiline ? 'm' : '') +
-            (newFlags.includes('u') ? 'u' : regex.unicode ? 'u' : '') +
-            (newFlags.includes('y') ? 'y' : regex.sticky ? 'y' : '') +
-            (newFlags.includes('s') ? 's' : regex.dotAll ? 's' : '')
-  );
-  regex.lastIndex = newLastIndex;
-  return regex;
-}
diff --git a/node_modules/regextras/src/prototype.js b/node_modules/regextras/src/prototype.js
deleted file mode 100644
index 617d995..0000000
--- a/node_modules/regextras/src/prototype.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/* eslint-disable no-extend-native,
-    no-use-extend-native/no-use-extend-native,
-    node/no-unsupported-features/es-syntax */
-
-// We copy the regular expression so as to be able to always ensure the
-//   exec expression is a global one (and thereby prevent recursion)
-
-import mixinRegex from './mixinRegex.js';
-
-RegExp.prototype.forEach = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-  return this;
-};
-
-RegExp.prototype.some = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return true;
-    }
-  }
-  return false;
-};
-
-RegExp.prototype.every = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (!ret) {
-      return false;
-    }
-  }
-  return true;
-};
-
-RegExp.prototype.map = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-  return ret;
-};
-
-RegExp.prototype.filter = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches[0]);
-    }
-  }
-  return ret;
-};
-
-RegExp.prototype.reduce = function (str, cb, prev, thisObj = null) {
-  let matches, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  if (!prev) {
-    if ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i++)));
-    }
-  }
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(n0, i++)));
-  }
-  return prev;
-};
-
-RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-  let matches, n0, i,
-    prev = prevOrig, thisObj = thisObjOrig;
-  const regex = mixinRegex(this, 'g');
-  const matchesContainer = [];
-  thisObj = thisObj || null;
-  while ((matches = regex.exec(str)) !== null) {
-    matchesContainer.push(matches);
-  }
-  i = matchesContainer.length;
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError(
-        'reduce of empty matches array with no initial value'
-      );
-    }
-    return prev;
-  }
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(n0, i--)));
-  }
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(n0, i--)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
diff --git a/node_modules/regextras/src/regexp-prototype.js b/node_modules/regextras/src/regexp-prototype.js
deleted file mode 100644
index 764bb67..0000000
--- a/node_modules/regextras/src/regexp-prototype.js
+++ /dev/null
@@ -1,168 +0,0 @@
-/* eslint-disable no-extend-native,
-    no-use-extend-native/no-use-extend-native,
-    node/no-unsupported-features/es-syntax */
-
-// We copy the regular expression so as to be able to always ensure the
-//   exec expression is a global one (and thereby prevent recursion)
-
-import mixinRegex from './mixinRegex.js';
-
-RegExp.prototype.forEach = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-  return this;
-};
-
-RegExp.prototype.some = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return true;
-    }
-  }
-  return false;
-};
-
-RegExp.prototype.every = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (!ret) {
-      return false;
-    }
-  }
-  return true;
-};
-
-RegExp.prototype.map = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-  return ret;
-};
-
-RegExp.prototype.filter = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-    if (cb.apply(thisObj, matches)) {
-      ret.push(n0[0]);
-    }
-  }
-  return ret;
-};
-
-RegExp.prototype.reduce = function (str, cb, prev, thisObj = null) {
-  let matches, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  if (!prev) {
-    if ((matches = regex.exec(str)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-    }
-  }
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-  }
-  return prev;
-};
-
-RegExp.prototype.reduceRight = function (str, cb, prevOrig, thisObjOrig) {
-  let matches, n0, i,
-    prev = prevOrig, thisObj = thisObjOrig;
-  const regex = mixinRegex(this, 'g');
-  const matchesContainer = [];
-  thisObj = thisObj || null;
-  while ((matches = regex.exec(str)) !== null) {
-    matchesContainer.push(matches);
-  }
-  i = matchesContainer.length;
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError(
-        'reduce of empty matches array with no initial value'
-      );
-    }
-    return prev;
-  }
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-  }
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
-
-RegExp.prototype.find = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return n0[0];
-    }
-  }
-  return false;
-};
-
-RegExp.prototype.findIndex = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return i - 1;
-    }
-  }
-  return -1;
-};
-
-RegExp.prototype.findExec = function (str, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  const regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return matches;
-    }
-  }
-  return false;
-};
-
-RegExp.prototype.filterExec = function (str, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [], regex = mixinRegex(this, 'g');
-  while ((matches = regex.exec(str)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches.push(i++, n0[0]);
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches);
-    }
-  }
-  return ret;
-};
diff --git a/node_modules/regextras/src/string-prototype.js b/node_modules/regextras/src/string-prototype.js
deleted file mode 100644
index ce26abf..0000000
--- a/node_modules/regextras/src/string-prototype.js
+++ /dev/null
@@ -1,169 +0,0 @@
-// We copy the regular expression so as to be able to always ensure the exec
-//   expression is a global one (and thereby prevent recursion)
-
-/* eslint-disable no-extend-native,
-    no-use-extend-native/no-use-extend-native,
-    node/no-unsupported-features/es-syntax */
-
-import mixinRegex from './mixinRegex.js';
-
-String.prototype.forEach = function (regex, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    cb.apply(thisObj, matches.concat(i++, n0));
-  }
-  return this;
-};
-
-String.prototype.some = function (regex, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return true;
-    }
-  }
-  return false;
-};
-
-String.prototype.every = function (regex, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (!ret) {
-      return false;
-    }
-  }
-  return true;
-};
-
-String.prototype.map = function (regex, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret.push(cb.apply(thisObj, matches.concat(i++, n0)));
-  }
-  return ret;
-};
-
-String.prototype.filter = function (regex, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches = matches.concat(i++, n0);
-    if (cb.apply(thisObj, matches)) {
-      ret.push(n0[0]);
-    }
-  }
-  return ret;
-};
-
-String.prototype.reduce = function (regex, cb, prev, thisObj = null) {
-  let matches, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  if (!prev) {
-    if ((matches = regex.exec(this)) !== null) {
-      n0 = matches.splice(0, 1);
-      prev = cb.apply(thisObj, [''].concat(matches.concat(i++, n0)));
-    }
-  }
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(matches.concat(i++, n0)));
-  }
-  return prev;
-};
-
-String.prototype.reduceRight = function (regex, cb, prevOrig, thisObjOrig) {
-  let matches, n0, i,
-    prev = prevOrig, thisObj = thisObjOrig;
-  const matchesContainer = [];
-  regex = mixinRegex(regex, 'g');
-  thisObj = thisObj || null;
-  while ((matches = regex.exec(this)) !== null) {
-    matchesContainer.push(matches);
-  }
-  i = matchesContainer.length;
-  if (!i) {
-    if (arguments.length < 3) {
-      throw new TypeError(
-        'reduce of empty matches array with no initial value'
-      );
-    }
-    return prev;
-  }
-  if (!prev) {
-    matches = matchesContainer.splice(-1)[0];
-    n0 = matches.splice(0, 1);
-    prev = cb.apply(thisObj, [''].concat(matches.concat(i--, n0)));
-  }
-  matchesContainer.reduceRight(function (container, mtches) {
-    n0 = mtches.splice(0, 1);
-    prev = cb.apply(thisObj, [prev].concat(mtches.concat(i--, n0)));
-    return container;
-  }, matchesContainer);
-  return prev;
-};
-
-String.prototype.find = function (regex, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return n0[0];
-    }
-  }
-  return false;
-};
-
-String.prototype.findIndex = function (regex, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return i - 1;
-    }
-  }
-  return -1;
-};
-
-String.prototype.findExec = function (regex, cb, thisObj = null) {
-  let matches, ret, n0, i = 0;
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    ret = cb.apply(thisObj, matches.concat(i++, n0));
-    if (ret) {
-      return matches;
-    }
-  }
-  return false;
-};
-
-String.prototype.filterExec = function (regex, cb, thisObj = null) {
-  let matches, n0, i = 0;
-  const ret = [];
-  regex = mixinRegex(regex, 'g');
-  while ((matches = regex.exec(this)) !== null) {
-    n0 = matches.splice(0, 1);
-    matches.push(i++, n0[0]);
-    if (cb.apply(thisObj, matches)) {
-      ret.push(matches);
-    }
-  }
-  return ret;
-};
diff --git a/node_modules/resolve-cwd/node_modules/resolve-from/index.js b/node_modules/resolve-cwd/node_modules/resolve-from/index.js
deleted file mode 100644
index 44f291c..0000000
--- a/node_modules/resolve-cwd/node_modules/resolve-from/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-const path = require('path');
-const Module = require('module');
-const fs = require('fs');
-
-const resolveFrom = (fromDirectory, moduleId, silent) => {
-	if (typeof fromDirectory !== 'string') {
-		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``);
-	}
-
-	if (typeof moduleId !== 'string') {
-		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
-	}
-
-	try {
-		fromDirectory = fs.realpathSync(fromDirectory);
-	} catch (error) {
-		if (error.code === 'ENOENT') {
-			fromDirectory = path.resolve(fromDirectory);
-		} else if (silent) {
-			return;
-		} else {
-			throw error;
-		}
-	}
-
-	const fromFile = path.join(fromDirectory, 'noop.js');
-
-	const resolveFileName = () => Module._resolveFilename(moduleId, {
-		id: fromFile,
-		filename: fromFile,
-		paths: Module._nodeModulePaths(fromDirectory)
-	});
-
-	if (silent) {
-		try {
-			return resolveFileName();
-		} catch (error) {
-			return;
-		}
-	}
-
-	return resolveFileName();
-};
-
-module.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId);
-module.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true);
diff --git a/node_modules/resolve-cwd/node_modules/resolve-from/package.json b/node_modules/resolve-cwd/node_modules/resolve-from/package.json
deleted file mode 100644
index 733df16..0000000
--- a/node_modules/resolve-cwd/node_modules/resolve-from/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-	"name": "resolve-from",
-	"version": "5.0.0",
-	"description": "Resolve the path of a module like `require.resolve()` but from a given path",
-	"license": "MIT",
-	"repository": "sindresorhus/resolve-from",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && ava && tsd"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"require",
-		"resolve",
-		"path",
-		"module",
-		"from",
-		"like",
-		"import"
-	],
-	"devDependencies": {
-		"ava": "^1.4.1",
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
-}
diff --git a/node_modules/resolve-cwd/node_modules/resolve-from/readme.md b/node_modules/resolve-cwd/node_modules/resolve-from/readme.md
deleted file mode 100644
index fd4f46f..0000000
--- a/node_modules/resolve-cwd/node_modules/resolve-from/readme.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from)
-
-> Resolve the path of a module like [`require.resolve()`](https://nodejs.org/api/globals.html#globals_require_resolve) but from a given path
-
-
-## Install
-
-```
-$ npm install resolve-from
-```
-
-
-## Usage
-
-```js
-const resolveFrom = require('resolve-from');
-
-// There is a file at `./foo/bar.js`
-
-resolveFrom('foo', './bar');
-//=> '/Users/sindresorhus/dev/test/foo/bar.js'
-```
-
-
-## API
-
-### resolveFrom(fromDirectory, moduleId)
-
-Like `require()`, throws when the module can't be found.
-
-### resolveFrom.silent(fromDirectory, moduleId)
-
-Returns `undefined` instead of throwing when the module can't be found.
-
-#### fromDirectory
-
-Type: `string`
-
-Directory to resolve from.
-
-#### moduleId
-
-Type: `string`
-
-What you would use in `require()`.
-
-
-## Tip
-
-Create a partial using a bound function if you want to resolve from the same `fromDirectory` multiple times:
-
-```js
-const resolveFromFoo = resolveFrom.bind(null, 'foo');
-
-resolveFromFoo('./bar');
-resolveFromFoo('./baz');
-```
-
-
-## Related
-
-- [resolve-cwd](https://github.com/sindresorhus/resolve-cwd) - Resolve the path of a module from the current working directory
-- [import-from](https://github.com/sindresorhus/import-from) - Import a module from a given path
-- [import-cwd](https://github.com/sindresorhus/import-cwd) - Import a module from the current working directory
-- [resolve-pkg](https://github.com/sindresorhus/resolve-pkg) - Resolve the path of a package regardless of it having an entry point
-- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily
-- [resolve-global](https://github.com/sindresorhus/resolve-global) - Resolve the path of a globally installed module
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/resolve-cwd/node_modules/resolve-from/index.d.ts b/node_modules/resolve-from/index.d.ts
similarity index 100%
rename from node_modules/resolve-cwd/node_modules/resolve-from/index.d.ts
rename to node_modules/resolve-from/index.d.ts
diff --git a/node_modules/resolve-from/index.js b/node_modules/resolve-from/index.js
index d092447..44f291c 100644
--- a/node_modules/resolve-from/index.js
+++ b/node_modules/resolve-from/index.js
@@ -3,9 +3,9 @@
 const Module = require('module');
 const fs = require('fs');
 
-const resolveFrom = (fromDir, moduleId, silent) => {
-	if (typeof fromDir !== 'string') {
-		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
+const resolveFrom = (fromDirectory, moduleId, silent) => {
+	if (typeof fromDirectory !== 'string') {
+		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``);
 	}
 
 	if (typeof moduleId !== 'string') {
@@ -13,35 +13,35 @@
 	}
 
 	try {
-		fromDir = fs.realpathSync(fromDir);
-	} catch (err) {
-		if (err.code === 'ENOENT') {
-			fromDir = path.resolve(fromDir);
+		fromDirectory = fs.realpathSync(fromDirectory);
+	} catch (error) {
+		if (error.code === 'ENOENT') {
+			fromDirectory = path.resolve(fromDirectory);
 		} else if (silent) {
-			return null;
+			return;
 		} else {
-			throw err;
+			throw error;
 		}
 	}
 
-	const fromFile = path.join(fromDir, 'noop.js');
+	const fromFile = path.join(fromDirectory, 'noop.js');
 
 	const resolveFileName = () => Module._resolveFilename(moduleId, {
 		id: fromFile,
 		filename: fromFile,
-		paths: Module._nodeModulePaths(fromDir)
+		paths: Module._nodeModulePaths(fromDirectory)
 	});
 
 	if (silent) {
 		try {
 			return resolveFileName();
-		} catch (err) {
-			return null;
+		} catch (error) {
+			return;
 		}
 	}
 
 	return resolveFileName();
 };
 
-module.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId);
-module.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true);
+module.exports = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId);
+module.exports.silent = (fromDirectory, moduleId) => resolveFrom(fromDirectory, moduleId, true);
diff --git a/node_modules/resolve-from/package.json b/node_modules/resolve-from/package.json
index 96bade5..733df16 100644
--- a/node_modules/resolve-from/package.json
+++ b/node_modules/resolve-from/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "resolve-from",
-	"version": "4.0.0",
+	"version": "5.0.0",
 	"description": "Resolve the path of a module like `require.resolve()` but from a given path",
 	"license": "MIT",
 	"repository": "sindresorhus/resolve-from",
@@ -10,13 +10,14 @@
 		"url": "sindresorhus.com"
 	},
 	"engines": {
-		"node": ">=4"
+		"node": ">=8"
 	},
 	"scripts": {
-		"test": "xo && ava"
+		"test": "xo && ava && tsd"
 	},
 	"files": [
-		"index.js"
+		"index.js",
+		"index.d.ts"
 	],
 	"keywords": [
 		"require",
@@ -28,7 +29,8 @@
 		"import"
 	],
 	"devDependencies": {
-		"ava": "*",
-		"xo": "*"
+		"ava": "^1.4.1",
+		"tsd": "^0.7.2",
+		"xo": "^0.24.0"
 	}
 }
diff --git a/node_modules/resolve-from/readme.md b/node_modules/resolve-from/readme.md
index e539f85..fd4f46f 100644
--- a/node_modules/resolve-from/readme.md
+++ b/node_modules/resolve-from/readme.md
@@ -24,15 +24,15 @@
 
 ## API
 
-### resolveFrom(fromDir, moduleId)
+### resolveFrom(fromDirectory, moduleId)
 
 Like `require()`, throws when the module can't be found.
 
-### resolveFrom.silent(fromDir, moduleId)
+### resolveFrom.silent(fromDirectory, moduleId)
 
-Returns `null` instead of throwing when the module can't be found.
+Returns `undefined` instead of throwing when the module can't be found.
 
-#### fromDir
+#### fromDirectory
 
 Type: `string`
 
@@ -47,7 +47,7 @@
 
 ## Tip
 
-Create a partial using a bound function if you want to resolve from the same `fromDir` multiple times:
+Create a partial using a bound function if you want to resolve from the same `fromDirectory` multiple times:
 
 ```js
 const resolveFromFoo = resolveFrom.bind(null, 'foo');
diff --git a/node_modules/restore-cursor/index.d.ts b/node_modules/restore-cursor/index.d.ts
deleted file mode 100644
index 83ff2f4..0000000
--- a/node_modules/restore-cursor/index.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
-Gracefully restore the CLI cursor on exit.
-
-@example
-```
-import restoreCursor = require('restore-cursor');
-
-restoreCursor();
-```
-*/
-declare function restoreCursor(): void;
-
-export = restoreCursor;
diff --git a/node_modules/restore-cursor/index.js b/node_modules/restore-cursor/index.js
deleted file mode 100644
index 3e8dd07..0000000
--- a/node_modules/restore-cursor/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-const onetime = require('onetime');
-const signalExit = require('signal-exit');
-
-module.exports = onetime(() => {
-	signalExit(() => {
-		process.stderr.write('\u001B[?25h');
-	}, {alwaysLast: true});
-});
diff --git a/node_modules/restore-cursor/license b/node_modules/restore-cursor/license
deleted file mode 100644
index e7af2f7..0000000
--- a/node_modules/restore-cursor/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-
-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.
diff --git a/node_modules/restore-cursor/package.json b/node_modules/restore-cursor/package.json
deleted file mode 100644
index e8680f6..0000000
--- a/node_modules/restore-cursor/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-	"name": "restore-cursor",
-	"version": "3.1.0",
-	"description": "Gracefully restore the CLI cursor on exit",
-	"license": "MIT",
-	"repository": "sindresorhus/restore-cursor",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && tsd"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"exit",
-		"quit",
-		"process",
-		"graceful",
-		"shutdown",
-		"sigterm",
-		"sigint",
-		"terminate",
-		"kill",
-		"stop",
-		"cli",
-		"cursor",
-		"ansi",
-		"show",
-		"term",
-		"terminal",
-		"console",
-		"tty",
-		"shell",
-		"command-line"
-	],
-	"dependencies": {
-		"onetime": "^5.1.0",
-		"signal-exit": "^3.0.2"
-	},
-	"devDependencies": {
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
-}
diff --git a/node_modules/restore-cursor/readme.md b/node_modules/restore-cursor/readme.md
deleted file mode 100644
index c224a29..0000000
--- a/node_modules/restore-cursor/readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# restore-cursor [![Build Status](https://travis-ci.org/sindresorhus/restore-cursor.svg?branch=master)](https://travis-ci.org/sindresorhus/restore-cursor)
-
-> Gracefully restore the CLI cursor on exit
-
-Prevent the cursor you've hidden interactively from remaining hidden if the process crashes.
-
-
-## Install
-
-```
-$ npm install restore-cursor
-```
-
-
-## Usage
-
-```js
-const restoreCursor = require('restore-cursor');
-
-restoreCursor();
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/rimraf/CHANGELOG.md b/node_modules/rimraf/CHANGELOG.md
new file mode 100644
index 0000000..f116f14
--- /dev/null
+++ b/node_modules/rimraf/CHANGELOG.md
@@ -0,0 +1,65 @@
+# v3.0
+
+- Add `--preserve-root` option to executable (default true)
+- Drop support for Node.js below version 6
+
+# v2.7
+
+- Make `glob` an optional dependency
+
+# 2.6
+
+- Retry on EBUSY on non-windows platforms as well
+- Make `rimraf.sync` 10000% more reliable on Windows
+
+# 2.5
+
+- Handle Windows EPERM when lstat-ing read-only dirs
+- Add glob option to pass options to glob
+
+# 2.4
+
+- Add EPERM to delay/retry loop
+- Add `disableGlob` option
+
+# 2.3
+
+- Make maxBusyTries and emfileWait configurable
+- Handle weird SunOS unlink-dir issue
+- Glob the CLI arg for better Windows support
+
+# 2.2
+
+- Handle ENOENT properly on Windows
+- Allow overriding fs methods
+- Treat EPERM as indicative of non-empty dir
+- Remove optional graceful-fs dep
+- Consistently return null error instead of undefined on success
+- win32: Treat ENOTEMPTY the same as EBUSY
+- Add `rimraf` binary
+
+# 2.1
+
+- Fix SunOS error code for a non-empty directory
+- Try rmdir before readdir
+- Treat EISDIR like EPERM
+- Remove chmod
+- Remove lstat polyfill, node 0.7 is not supported
+
+# 2.0
+
+- Fix myGid call to check process.getgid
+- Simplify the EBUSY backoff logic.
+- Use fs.lstat in node >= 0.7.9
+- Remove gently option
+- remove fiber implementation
+- Delete files that are marked read-only
+
+# 1.0
+
+- Allow ENOENT in sync method
+- Throw when no callback is provided
+- Make opts.gently an absolute path
+- use 'stat' if 'lstat' is not available
+- Consistent error naming, and rethrow non-ENOENT stat errors
+- add fiber implementation
diff --git a/node_modules/rimraf/package.json b/node_modules/rimraf/package.json
index 68c98f9..1bf8d5e 100644
--- a/node_modules/rimraf/package.json
+++ b/node_modules/rimraf/package.json
@@ -1,6 +1,6 @@
 {
   "name": "rimraf",
-  "version": "3.0.0",
+  "version": "3.0.2",
   "main": "rimraf.js",
   "description": "A deep deletion module for node (like `rm -rf`)",
   "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
@@ -25,5 +25,8 @@
   "devDependencies": {
     "mkdirp": "^0.5.1",
     "tap": "^12.1.1"
+  },
+  "funding": {
+    "url": "https://github.com/sponsors/isaacs"
   }
 }
diff --git a/node_modules/rimraf/rimraf.js b/node_modules/rimraf/rimraf.js
index 309b8ca..34da417 100644
--- a/node_modules/rimraf/rimraf.js
+++ b/node_modules/rimraf/rimraf.js
@@ -164,8 +164,6 @@
   assert(p)
   assert(options)
   assert(typeof cb === 'function')
-  if (er)
-    assert(er instanceof Error)
 
   options.chmod(p, 0o666, er2 => {
     if (er2)
@@ -185,8 +183,6 @@
 const fixWinEPERMSync = (p, options, er) => {
   assert(p)
   assert(options)
-  if (er)
-    assert(er instanceof Error)
 
   try {
     options.chmodSync(p, 0o666)
@@ -216,8 +212,6 @@
 const rmdir = (p, options, originalEr, cb) => {
   assert(p)
   assert(options)
-  if (originalEr)
-    assert(originalEr instanceof Error)
   assert(typeof cb === 'function')
 
   // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
@@ -323,8 +317,6 @@
 const rmdirSync = (p, options, originalEr) => {
   assert(p)
   assert(options)
-  if (originalEr)
-    assert(originalEr instanceof Error)
 
   try {
     options.rmdirSync(p)
diff --git a/node_modules/run-async/LICENSE b/node_modules/run-async/LICENSE
deleted file mode 100644
index e895e99..0000000
--- a/node_modules/run-async/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Simon Boudrias
-
-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.
diff --git a/node_modules/run-async/README.md b/node_modules/run-async/README.md
deleted file mode 100644
index 8eb62c2..0000000
--- a/node_modules/run-async/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-Run Async
-=========
-
-[![npm](https://badge.fury.io/js/run-async.svg)](http://badge.fury.io/js/run-async) [![tests](https://travis-ci.org/SBoudrias/run-async.svg?branch=master)](http://travis-ci.org/SBoudrias/run-async) [![dependencies](https://david-dm.org/SBoudrias/run-async.svg?theme=shields.io)](https://david-dm.org/SBoudrias/run-async)
-
-Utility method to run a function either synchronously or asynchronously using a series of common patterns. This is useful for library author accepting sync or async functions as parameter. `runAsync` will always run them as an async method, and normalize the multiple signature.
-
-Installation
-=========
-
-```bash
-npm install --save run-async
-```
-
-Usage
-=========
-
-Here's a simple example print the function results and three options a user can provide a function.
-
-```js
-var runAsync = require('run-async');
-
-var printAfter = function (func) {
-  var cb = function (err, returnValue) {
-    console.log(returnValue);
-  };
-  runAsync(func, cb)(/* arguments for func */);
-};
-```
-
-#### Using `this.async`
-```js
-printAfter(function () {
-  var done = this.async();
-
-  setTimeout(function () {
-    done(null, 'done running with callback');
-  }, 10);
-});
-```
-
-#### Returning a promise
-```js
-printAfter(function () {
-  return new Promise(function (resolve, reject) {
-    resolve('done running with promises');
-  });
-});
-```
-
-#### Synchronous function
-```js
-printAfter(function () {
-  return 'done running sync function';
-});
-```
-
-### runAsync.cb
-
-`runAsync.cb` supports all the function types that `runAsync` does and additionally a traditional **callback as the last argument** signature:
-
-```js
-var runAsync = require('run-async');
-
-// IMPORTANT: The wrapped function must have a fixed number of parameters.
-runAsync.cb(function(a, b, cb) {
-  cb(null, a + b);
-}, function(err, result) {
-  console.log(result)
-})(1, 2)
-```
-
-If your version of node support Promises natively (node >= 0.12), `runAsync` will return a promise. Example: `runAsync(func)(arg1, arg2).then(cb)`
-
-Licence
-========
-
-Copyright (c) 2014 Simon Boudrias (twitter: @vaxilart)  
-Licensed under the MIT license.
diff --git a/node_modules/run-async/index.js b/node_modules/run-async/index.js
deleted file mode 100644
index 41d6fcf..0000000
--- a/node_modules/run-async/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-
-var isPromise = require('is-promise');
-
-/**
- * Return a function that will run a function asynchronously or synchronously
- *
- * example:
- * runAsync(wrappedFunction, callback)(...args);
- *
- * @param   {Function} func  Function to run
- * @param   {Function} cb    Callback function passed the `func` returned value
- * @return  {Function(arguments)} Arguments to pass to `func`. This function will in turn
- *                                return a Promise (Node >= 0.12) or call the callbacks.
- */
-
-var runAsync = module.exports = function (func, cb) {
-  cb = cb || function () {};
-
-  return function () {
-
-    var args = arguments;
-
-    var promise = new Promise(function (resolve, reject) {
-      var resolved = false;
-      const wrappedResolve = function (value) {
-        if (resolved) {
-          console.warn('Run-async promise already resolved.')
-        }
-        resolved = true;
-        resolve(value);
-      }
-
-      var rejected = false;
-      const wrappedReject = function (value) {
-        if (rejected) {
-          console.warn('Run-async promise already rejected.')
-        }
-        rejected = true;
-        reject(value);
-      }
-
-      var usingCallback = false;
-      var callbackConflict = false;
-      var contextEnded = false;
-
-      var answer = func.apply({
-        async: function () {
-          if (contextEnded) {
-            console.warn('Run-async async() called outside a valid run-async context, callback will be ignored.');
-            return function() {};
-          }
-          if (callbackConflict) {
-            console.warn('Run-async wrapped function (async) returned a promise.\nCalls to async() callback can have unexpected results.');
-          }
-          usingCallback = true;
-          return function (err, value) {
-            if (err) {
-              wrappedReject(err);
-            } else {
-              wrappedResolve(value);
-            }
-          };
-        }
-      }, Array.prototype.slice.call(args));
-
-      if (usingCallback) {
-        if (isPromise(answer)) {
-          console.warn('Run-async wrapped function (sync) returned a promise but async() callback must be executed to resolve.');
-        }
-      } else {
-        if (isPromise(answer)) {
-          callbackConflict = true;
-          answer.then(wrappedResolve, wrappedReject);
-        } else {
-          wrappedResolve(answer);
-        }
-      }
-      contextEnded = true;
-    });
-
-    promise.then(cb.bind(null, null), cb);
-
-    return promise;
-  }
-};
-
-runAsync.cb = function (func, cb) {
-  return runAsync(function () {
-    var args = Array.prototype.slice.call(arguments);
-    if (args.length === func.length - 1) {
-      args.push(this.async());
-    }
-    return func.apply(this, args);
-  }, cb);
-};
diff --git a/node_modules/run-async/package.json b/node_modules/run-async/package.json
deleted file mode 100644
index 4fb27ae..0000000
--- a/node_modules/run-async/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "name": "run-async",
-  "version": "2.4.0",
-  "description": "Utility method to run function either synchronously or asynchronously using the common `this.async()` style.",
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha -R spec"
-  },
-  "engines": {
-    "node": ">=0.12.0"
-  },
-  "repository": "SBoudrias/run-async",
-  "keywords": [
-    "flow",
-    "flow-control",
-    "async"
-  ],
-  "files": [
-    "index.js"
-  ],
-  "author": "Simon Boudrias <admin@simonboudrias.com>",
-  "license": "MIT",
-  "dependencies": {
-    "is-promise": "^2.1.0"
-  },
-  "devDependencies": {
-    "mocha": "^7.1.0"
-  }
-}
diff --git a/node_modules/rxjs/AsyncSubject.d.ts b/node_modules/rxjs/AsyncSubject.d.ts
deleted file mode 100644
index 2c4d977..0000000
--- a/node_modules/rxjs/AsyncSubject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/AsyncSubject';
diff --git a/node_modules/rxjs/AsyncSubject.js b/node_modules/rxjs/AsyncSubject.js
deleted file mode 100644
index d32cac1..0000000
--- a/node_modules/rxjs/AsyncSubject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/AsyncSubject"));
-//# sourceMappingURL=AsyncSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/AsyncSubject.js.map b/node_modules/rxjs/AsyncSubject.js.map
deleted file mode 100644
index 704e953..0000000
--- a/node_modules/rxjs/AsyncSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncSubject.js","sources":["src/AsyncSubject.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/BehaviorSubject.d.ts b/node_modules/rxjs/BehaviorSubject.d.ts
deleted file mode 100644
index f8b4f44..0000000
--- a/node_modules/rxjs/BehaviorSubject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/BehaviorSubject';
diff --git a/node_modules/rxjs/BehaviorSubject.js b/node_modules/rxjs/BehaviorSubject.js
deleted file mode 100644
index f31d4bf..0000000
--- a/node_modules/rxjs/BehaviorSubject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/BehaviorSubject"));
-//# sourceMappingURL=BehaviorSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/BehaviorSubject.js.map b/node_modules/rxjs/BehaviorSubject.js.map
deleted file mode 100644
index 825e04b..0000000
--- a/node_modules/rxjs/BehaviorSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BehaviorSubject.js","sources":["src/BehaviorSubject.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/InnerSubscriber.d.ts b/node_modules/rxjs/InnerSubscriber.d.ts
deleted file mode 100644
index 79e3b4a..0000000
--- a/node_modules/rxjs/InnerSubscriber.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/InnerSubscriber';
diff --git a/node_modules/rxjs/InnerSubscriber.js b/node_modules/rxjs/InnerSubscriber.js
deleted file mode 100644
index 5c4153a..0000000
--- a/node_modules/rxjs/InnerSubscriber.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/InnerSubscriber"));
-//# sourceMappingURL=InnerSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/InnerSubscriber.js.map b/node_modules/rxjs/InnerSubscriber.js.map
deleted file mode 100644
index a4825ae..0000000
--- a/node_modules/rxjs/InnerSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"InnerSubscriber.js","sources":["src/InnerSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/LICENSE.txt b/node_modules/rxjs/LICENSE.txt
deleted file mode 100644
index 031ce38..0000000
--- a/node_modules/rxjs/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                               Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
diff --git a/node_modules/rxjs/Notification.d.ts b/node_modules/rxjs/Notification.d.ts
deleted file mode 100644
index 5d9956d..0000000
--- a/node_modules/rxjs/Notification.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Notification';
diff --git a/node_modules/rxjs/Notification.js b/node_modules/rxjs/Notification.js
deleted file mode 100644
index 8a53935..0000000
--- a/node_modules/rxjs/Notification.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Notification"));
-//# sourceMappingURL=Notification.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Notification.js.map b/node_modules/rxjs/Notification.js.map
deleted file mode 100644
index 890b860..0000000
--- a/node_modules/rxjs/Notification.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Notification.js","sources":["src/Notification.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/Observable.d.ts b/node_modules/rxjs/Observable.d.ts
deleted file mode 100644
index cc1e68d..0000000
--- a/node_modules/rxjs/Observable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Observable';
diff --git a/node_modules/rxjs/Observable.js b/node_modules/rxjs/Observable.js
deleted file mode 100644
index 231f7df..0000000
--- a/node_modules/rxjs/Observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Observable"));
-//# sourceMappingURL=Observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Observable.js.map b/node_modules/rxjs/Observable.js.map
deleted file mode 100644
index 5fecdc6..0000000
--- a/node_modules/rxjs/Observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observable.js","sources":["src/Observable.ts"],"names":[],"mappings":";;;;;AAAA,4CAAuC"}
diff --git a/node_modules/rxjs/Observer.d.ts b/node_modules/rxjs/Observer.d.ts
deleted file mode 100644
index 867ce2f..0000000
--- a/node_modules/rxjs/Observer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Observer';
diff --git a/node_modules/rxjs/Observer.js b/node_modules/rxjs/Observer.js
deleted file mode 100644
index c4d5488..0000000
--- a/node_modules/rxjs/Observer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=Observer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Observer.js.map b/node_modules/rxjs/Observer.js.map
deleted file mode 100644
index 0272f21..0000000
--- a/node_modules/rxjs/Observer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observer.js","sources":["src/Observer.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/Operator.d.ts b/node_modules/rxjs/Operator.d.ts
deleted file mode 100644
index fb9a9f9..0000000
--- a/node_modules/rxjs/Operator.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Operator';
diff --git a/node_modules/rxjs/Operator.js b/node_modules/rxjs/Operator.js
deleted file mode 100644
index 3c44713..0000000
--- a/node_modules/rxjs/Operator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=Operator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Operator.js.map b/node_modules/rxjs/Operator.js.map
deleted file mode 100644
index 3ca1e3b..0000000
--- a/node_modules/rxjs/Operator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Operator.js","sources":["src/Operator.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/OuterSubscriber.d.ts b/node_modules/rxjs/OuterSubscriber.d.ts
deleted file mode 100644
index 9060ae7..0000000
--- a/node_modules/rxjs/OuterSubscriber.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/OuterSubscriber';
diff --git a/node_modules/rxjs/OuterSubscriber.js b/node_modules/rxjs/OuterSubscriber.js
deleted file mode 100644
index 4715481..0000000
--- a/node_modules/rxjs/OuterSubscriber.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/OuterSubscriber"));
-//# sourceMappingURL=OuterSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/OuterSubscriber.js.map b/node_modules/rxjs/OuterSubscriber.js.map
deleted file mode 100644
index 8476f04..0000000
--- a/node_modules/rxjs/OuterSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"OuterSubscriber.js","sources":["src/OuterSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/README.md b/node_modules/rxjs/README.md
deleted file mode 100644
index e9204f0..0000000
--- a/node_modules/rxjs/README.md
+++ /dev/null
@@ -1,145 +0,0 @@
-<img src="doc/asset/Rx_Logo_S.png" alt="RxJS Logo" width="86" height="86"> RxJS: Reactive Extensions For JavaScript
-======================================
-
-
-[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x)
-[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs)
-[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-# RxJS 6 Stable
-
-### MIGRATION AND RELEASE INFORMATION:
-
-Find out how to update to v6, **automatically update your TypeScript code**, and more!
-
-- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md)
-
-### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x)
-
-Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
-
-[Apache 2.0 License](LICENSE.txt)
-
-- [Code of Conduct](CODE_OF_CONDUCT.md)
-- [Contribution Guidelines](CONTRIBUTING.md)
-- [Maintainer Guidelines](doc/maintainer-guidelines.md)
-- [Creating Operators](doc/operator-creation.md)
-- [API Documentation (WIP)](https://rxjs.dev/)
-
-## Versions In This Repository
-
-- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now
-- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs`
-
-## Important
-
-By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity.
-
-## Installation and Usage
-
-### ES6 via npm
-
-```sh
-npm install rxjs
-```
-
-It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`.
-
-```js
-import { range } from 'rxjs';
-import { map, filter } from 'rxjs/operators';
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information.
-
-### CommonJS via npm
-
-To install this library for CommonJS (CJS) usage, use the following command:
-
-```sh
-npm install rxjs
-```
-
-(Note: destructuring available in Node 8+)
-
-```js
-const { range } = require('rxjs');
-const { map, filter } = require('rxjs/operators');
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-### CDN
-
-For CDN, you can use [unpkg](https://unpkg.com/):
-
-https://unpkg.com/rxjs/bundles/rxjs.umd.min.js
-
-The global namespace for rxjs is `rxjs`:
-
-```js
-const { range } = rxjs;
-const { map, filter } = rxjs.operators;
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-## Goals
-
-- Smaller overall bundles sizes
-- Provide better performance than preceding versions of RxJS
-- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable
-- Provide more modular file structure in a variety of formats
-- Provide more debuggable call stacks than preceding versions of RxJS
-
-## Building/Testing
-
-- `npm run build_all` - builds everything
-- `npm test` - runs tests
-- `npm run test_no_cache` - run test with `ts-node` set to false
-
-## Performance Tests
-
-Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`.
-
-Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator.
-
-## Adding documentation
-We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app).
-
-## Generating PNG marble diagrams
-
-The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`.
-
-For Mac OS X with [Homebrew](http://brew.sh/):
-
-- `brew install imagemagick`
-- `brew install graphicsmagick`
-- `brew install ghostscript`
-- You may need to install the Ghostscript fonts manually:
-  - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts)
-  - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript`
-
-For Debian Linux:
-
-- `sudo add-apt-repository ppa:dhor/myway`
-- `apt-get install imagemagick`
-- `apt-get install graphicsmagick`
-- `apt-get install ghostscript`
-
-For Windows and other Operating Systems, check the download instructions here:
-
-- http://imagemagick.org
-- http://www.graphicsmagick.org
-- http://www.ghostscript.com/
diff --git a/node_modules/rxjs/ReplaySubject.d.ts b/node_modules/rxjs/ReplaySubject.d.ts
deleted file mode 100644
index b66aea9..0000000
--- a/node_modules/rxjs/ReplaySubject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/ReplaySubject';
diff --git a/node_modules/rxjs/ReplaySubject.js b/node_modules/rxjs/ReplaySubject.js
deleted file mode 100644
index 4c2bcf5..0000000
--- a/node_modules/rxjs/ReplaySubject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/ReplaySubject"));
-//# sourceMappingURL=ReplaySubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/ReplaySubject.js.map b/node_modules/rxjs/ReplaySubject.js.map
deleted file mode 100644
index f6e866e..0000000
--- a/node_modules/rxjs/ReplaySubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ReplaySubject.js","sources":["src/ReplaySubject.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/Rx.d.ts b/node_modules/rxjs/Rx.d.ts
deleted file mode 100644
index 5796fc6..0000000
--- a/node_modules/rxjs/Rx.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat';
diff --git a/node_modules/rxjs/Rx.js b/node_modules/rxjs/Rx.js
deleted file mode 100644
index 112c071..0000000
--- a/node_modules/rxjs/Rx.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat"));
-//# sourceMappingURL=Rx.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Rx.js.map b/node_modules/rxjs/Rx.js.map
deleted file mode 100644
index 917f45e..0000000
--- a/node_modules/rxjs/Rx.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rx.js","sources":["src/Rx.ts"],"names":[],"mappings":";;;;;AACA,iCAA4B"}
diff --git a/node_modules/rxjs/Scheduler.d.ts b/node_modules/rxjs/Scheduler.d.ts
deleted file mode 100644
index c21eb1f..0000000
--- a/node_modules/rxjs/Scheduler.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Scheduler';
diff --git a/node_modules/rxjs/Scheduler.js b/node_modules/rxjs/Scheduler.js
deleted file mode 100644
index c12359e..0000000
--- a/node_modules/rxjs/Scheduler.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Scheduler"));
-//# sourceMappingURL=Scheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Scheduler.js.map b/node_modules/rxjs/Scheduler.js.map
deleted file mode 100644
index 172522c..0000000
--- a/node_modules/rxjs/Scheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scheduler.js","sources":["src/Scheduler.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"}
diff --git a/node_modules/rxjs/Subject.d.ts b/node_modules/rxjs/Subject.d.ts
deleted file mode 100644
index 7448233..0000000
--- a/node_modules/rxjs/Subject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subject';
diff --git a/node_modules/rxjs/Subject.js b/node_modules/rxjs/Subject.js
deleted file mode 100644
index c57058f..0000000
--- a/node_modules/rxjs/Subject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Subject"));
-//# sourceMappingURL=Subject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Subject.js.map b/node_modules/rxjs/Subject.js.map
deleted file mode 100644
index f587544..0000000
--- a/node_modules/rxjs/Subject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subject.js","sources":["src/Subject.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC"}
diff --git a/node_modules/rxjs/SubjectSubscription.d.ts b/node_modules/rxjs/SubjectSubscription.d.ts
deleted file mode 100644
index 4f481ce..0000000
--- a/node_modules/rxjs/SubjectSubscription.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/SubjectSubscription';
diff --git a/node_modules/rxjs/SubjectSubscription.js b/node_modules/rxjs/SubjectSubscription.js
deleted file mode 100644
index e82afb1..0000000
--- a/node_modules/rxjs/SubjectSubscription.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/SubjectSubscription"));
-//# sourceMappingURL=SubjectSubscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/SubjectSubscription.js.map b/node_modules/rxjs/SubjectSubscription.js.map
deleted file mode 100644
index 15fa5b4..0000000
--- a/node_modules/rxjs/SubjectSubscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubjectSubscription.js","sources":["src/SubjectSubscription.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/Subscriber.d.ts b/node_modules/rxjs/Subscriber.d.ts
deleted file mode 100644
index 15356d5..0000000
--- a/node_modules/rxjs/Subscriber.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subscriber';
diff --git a/node_modules/rxjs/Subscriber.js b/node_modules/rxjs/Subscriber.js
deleted file mode 100644
index 79cfe91..0000000
--- a/node_modules/rxjs/Subscriber.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Subscriber"));
-//# sourceMappingURL=Subscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Subscriber.js.map b/node_modules/rxjs/Subscriber.js.map
deleted file mode 100644
index c566f0d..0000000
--- a/node_modules/rxjs/Subscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscriber.js","sources":["src/Subscriber.ts"],"names":[],"mappings":";;;;;AAAA,4CAAuC"}
diff --git a/node_modules/rxjs/Subscription.d.ts b/node_modules/rxjs/Subscription.d.ts
deleted file mode 100644
index 028cf4c..0000000
--- a/node_modules/rxjs/Subscription.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subscription';
diff --git a/node_modules/rxjs/Subscription.js b/node_modules/rxjs/Subscription.js
deleted file mode 100644
index 0431872..0000000
--- a/node_modules/rxjs/Subscription.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/Subscription"));
-//# sourceMappingURL=Subscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/Subscription.js.map b/node_modules/rxjs/Subscription.js.map
deleted file mode 100644
index 948a0d9..0000000
--- a/node_modules/rxjs/Subscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscription.js","sources":["src/Subscription.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/_esm2015/LICENSE.txt b/node_modules/rxjs/_esm2015/LICENSE.txt
deleted file mode 100644
index 031ce38..0000000
--- a/node_modules/rxjs/_esm2015/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                               Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
diff --git a/node_modules/rxjs/_esm2015/README.md b/node_modules/rxjs/_esm2015/README.md
deleted file mode 100644
index e9204f0..0000000
--- a/node_modules/rxjs/_esm2015/README.md
+++ /dev/null
@@ -1,145 +0,0 @@
-<img src="doc/asset/Rx_Logo_S.png" alt="RxJS Logo" width="86" height="86"> RxJS: Reactive Extensions For JavaScript
-======================================
-
-
-[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x)
-[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs)
-[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-# RxJS 6 Stable
-
-### MIGRATION AND RELEASE INFORMATION:
-
-Find out how to update to v6, **automatically update your TypeScript code**, and more!
-
-- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md)
-
-### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x)
-
-Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
-
-[Apache 2.0 License](LICENSE.txt)
-
-- [Code of Conduct](CODE_OF_CONDUCT.md)
-- [Contribution Guidelines](CONTRIBUTING.md)
-- [Maintainer Guidelines](doc/maintainer-guidelines.md)
-- [Creating Operators](doc/operator-creation.md)
-- [API Documentation (WIP)](https://rxjs.dev/)
-
-## Versions In This Repository
-
-- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now
-- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs`
-
-## Important
-
-By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity.
-
-## Installation and Usage
-
-### ES6 via npm
-
-```sh
-npm install rxjs
-```
-
-It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`.
-
-```js
-import { range } from 'rxjs';
-import { map, filter } from 'rxjs/operators';
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information.
-
-### CommonJS via npm
-
-To install this library for CommonJS (CJS) usage, use the following command:
-
-```sh
-npm install rxjs
-```
-
-(Note: destructuring available in Node 8+)
-
-```js
-const { range } = require('rxjs');
-const { map, filter } = require('rxjs/operators');
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-### CDN
-
-For CDN, you can use [unpkg](https://unpkg.com/):
-
-https://unpkg.com/rxjs/bundles/rxjs.umd.min.js
-
-The global namespace for rxjs is `rxjs`:
-
-```js
-const { range } = rxjs;
-const { map, filter } = rxjs.operators;
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-## Goals
-
-- Smaller overall bundles sizes
-- Provide better performance than preceding versions of RxJS
-- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable
-- Provide more modular file structure in a variety of formats
-- Provide more debuggable call stacks than preceding versions of RxJS
-
-## Building/Testing
-
-- `npm run build_all` - builds everything
-- `npm test` - runs tests
-- `npm run test_no_cache` - run test with `ts-node` set to false
-
-## Performance Tests
-
-Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`.
-
-Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator.
-
-## Adding documentation
-We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app).
-
-## Generating PNG marble diagrams
-
-The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`.
-
-For Mac OS X with [Homebrew](http://brew.sh/):
-
-- `brew install imagemagick`
-- `brew install graphicsmagick`
-- `brew install ghostscript`
-- You may need to install the Ghostscript fonts manually:
-  - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts)
-  - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript`
-
-For Debian Linux:
-
-- `sudo add-apt-repository ppa:dhor/myway`
-- `apt-get install imagemagick`
-- `apt-get install graphicsmagick`
-- `apt-get install ghostscript`
-
-For Windows and other Operating Systems, check the download instructions here:
-
-- http://imagemagick.org
-- http://www.graphicsmagick.org
-- http://www.ghostscript.com/
diff --git a/node_modules/rxjs/_esm2015/ajax/index.js b/node_modules/rxjs/_esm2015/ajax/index.js
deleted file mode 100644
index 6d17439..0000000
--- a/node_modules/rxjs/_esm2015/ajax/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export { ajax } from '../internal/observable/dom/ajax';
-export { AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/ajax/index.js.map b/node_modules/rxjs/_esm2015/ajax/index.js.map
deleted file mode 100644
index 038e2b1..0000000
--- a/node_modules/rxjs/_esm2015/ajax/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/ajax/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/fetch/index.js b/node_modules/rxjs/_esm2015/fetch/index.js
deleted file mode 100644
index e851987..0000000
--- a/node_modules/rxjs/_esm2015/fetch/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export { fromFetch } from '../internal/observable/dom/fetch';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/fetch/index.js.map b/node_modules/rxjs/_esm2015/fetch/index.js.map
deleted file mode 100644
index 8bf783b..0000000
--- a/node_modules/rxjs/_esm2015/fetch/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/index.js b/node_modules/rxjs/_esm2015/index.js
deleted file mode 100644
index a8a925e..0000000
--- a/node_modules/rxjs/_esm2015/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-export { Observable } from './internal/Observable';
-export { ConnectableObservable } from './internal/observable/ConnectableObservable';
-export { GroupedObservable } from './internal/operators/groupBy';
-export { observable } from './internal/symbol/observable';
-export { Subject } from './internal/Subject';
-export { BehaviorSubject } from './internal/BehaviorSubject';
-export { ReplaySubject } from './internal/ReplaySubject';
-export { AsyncSubject } from './internal/AsyncSubject';
-export { asap as asapScheduler } from './internal/scheduler/asap';
-export { async as asyncScheduler } from './internal/scheduler/async';
-export { queue as queueScheduler } from './internal/scheduler/queue';
-export { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';
-export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';
-export { Scheduler } from './internal/Scheduler';
-export { Subscription } from './internal/Subscription';
-export { Subscriber } from './internal/Subscriber';
-export { Notification, NotificationKind } from './internal/Notification';
-export { pipe } from './internal/util/pipe';
-export { noop } from './internal/util/noop';
-export { identity } from './internal/util/identity';
-export { isObservable } from './internal/util/isObservable';
-export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from './internal/util/EmptyError';
-export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';
-export { UnsubscriptionError } from './internal/util/UnsubscriptionError';
-export { TimeoutError } from './internal/util/TimeoutError';
-export { bindCallback } from './internal/observable/bindCallback';
-export { bindNodeCallback } from './internal/observable/bindNodeCallback';
-export { combineLatest } from './internal/observable/combineLatest';
-export { concat } from './internal/observable/concat';
-export { defer } from './internal/observable/defer';
-export { empty } from './internal/observable/empty';
-export { forkJoin } from './internal/observable/forkJoin';
-export { from } from './internal/observable/from';
-export { fromEvent } from './internal/observable/fromEvent';
-export { fromEventPattern } from './internal/observable/fromEventPattern';
-export { generate } from './internal/observable/generate';
-export { iif } from './internal/observable/iif';
-export { interval } from './internal/observable/interval';
-export { merge } from './internal/observable/merge';
-export { never } from './internal/observable/never';
-export { of } from './internal/observable/of';
-export { onErrorResumeNext } from './internal/observable/onErrorResumeNext';
-export { pairs } from './internal/observable/pairs';
-export { partition } from './internal/observable/partition';
-export { race } from './internal/observable/race';
-export { range } from './internal/observable/range';
-export { throwError } from './internal/observable/throwError';
-export { timer } from './internal/observable/timer';
-export { using } from './internal/observable/using';
-export { zip } from './internal/observable/zip';
-export { scheduled } from './internal/scheduled/scheduled';
-export { EMPTY } from './internal/observable/empty';
-export { NEVER } from './internal/observable/never';
-export { config } from './internal/config';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/index.js.map b/node_modules/rxjs/_esm2015/index.js.map
deleted file mode 100644
index 35faa43..0000000
--- a/node_modules/rxjs/_esm2015/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal-compatibility/index.js b/node_modules/rxjs/_esm2015/internal-compatibility/index.js
deleted file mode 100644
index 0461e19..0000000
--- a/node_modules/rxjs/_esm2015/internal-compatibility/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-export { config } from '../internal/config';
-export { InnerSubscriber } from '../internal/InnerSubscriber';
-export { OuterSubscriber } from '../internal/OuterSubscriber';
-export { Scheduler } from '../internal/Scheduler';
-export { AnonymousSubject } from '../internal/Subject';
-export { SubjectSubscription } from '../internal/SubjectSubscription';
-export { Subscriber } from '../internal/Subscriber';
-export { fromPromise } from '../internal/observable/fromPromise';
-export { fromIterable } from '../internal/observable/fromIterable';
-export { ajax } from '../internal/observable/dom/ajax';
-export { webSocket } from '../internal/observable/dom/webSocket';
-export { ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-export { CombineLatestOperator } from '../internal/observable/combineLatest';
-export { dispatch } from '../internal/observable/range';
-export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';
-export { Timestamp } from '../internal/operators/timestamp';
-export { TimeInterval } from '../internal/operators/timeInterval';
-export { GroupedObservable } from '../internal/operators/groupBy';
-export { defaultThrottleConfig } from '../internal/operators/throttle';
-export { rxSubscriber } from '../internal/symbol/rxSubscriber';
-export { iterator } from '../internal/symbol/iterator';
-export { observable } from '../internal/symbol/observable';
-export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from '../internal/util/EmptyError';
-export { Immediate } from '../internal/util/Immediate';
-export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError';
-export { TimeoutError } from '../internal/util/TimeoutError';
-export { UnsubscriptionError } from '../internal/util/UnsubscriptionError';
-export { applyMixins } from '../internal/util/applyMixins';
-export { errorObject } from '../internal/util/errorObject';
-export { hostReportError } from '../internal/util/hostReportError';
-export { identity } from '../internal/util/identity';
-export { isArray } from '../internal/util/isArray';
-export { isArrayLike } from '../internal/util/isArrayLike';
-export { isDate } from '../internal/util/isDate';
-export { isFunction } from '../internal/util/isFunction';
-export { isIterable } from '../internal/util/isIterable';
-export { isNumeric } from '../internal/util/isNumeric';
-export { isObject } from '../internal/util/isObject';
-export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable';
-export { isPromise } from '../internal/util/isPromise';
-export { isScheduler } from '../internal/util/isScheduler';
-export { noop } from '../internal/util/noop';
-export { not } from '../internal/util/not';
-export { pipe } from '../internal/util/pipe';
-export { root } from '../internal/util/root';
-export { subscribeTo } from '../internal/util/subscribeTo';
-export { subscribeToArray } from '../internal/util/subscribeToArray';
-export { subscribeToIterable } from '../internal/util/subscribeToIterable';
-export { subscribeToObservable } from '../internal/util/subscribeToObservable';
-export { subscribeToPromise } from '../internal/util/subscribeToPromise';
-export { subscribeToResult } from '../internal/util/subscribeToResult';
-export { toSubscriber } from '../internal/util/toSubscriber';
-export { tryCatch } from '../internal/util/tryCatch';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map b/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map
deleted file mode 100644
index 9de2eb9..0000000
--- a/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/internal-compatibility/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js
deleted file mode 100644
index 5365f5a..0000000
--- a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Subject } from './Subject';
-import { Subscription } from './Subscription';
-export class AsyncSubject extends Subject {
-    constructor() {
-        super(...arguments);
-        this.value = null;
-        this.hasNext = false;
-        this.hasCompleted = false;
-    }
-    _subscribe(subscriber) {
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription.EMPTY;
-        }
-        else if (this.hasCompleted && this.hasNext) {
-            subscriber.next(this.value);
-            subscriber.complete();
-            return Subscription.EMPTY;
-        }
-        return super._subscribe(subscriber);
-    }
-    next(value) {
-        if (!this.hasCompleted) {
-            this.value = value;
-            this.hasNext = true;
-        }
-    }
-    error(error) {
-        if (!this.hasCompleted) {
-            super.error(error);
-        }
-    }
-    complete() {
-        this.hasCompleted = true;
-        if (this.hasNext) {
-            super.next(this.value);
-        }
-        super.complete();
-    }
-}
-//# sourceMappingURL=AsyncSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map
deleted file mode 100644
index a99b981..0000000
--- a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,OAAO,YAAgB,SAAQ,OAAU;IAA/C;;QACU,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAmCxC,CAAC;IAhCC,UAAU,CAAC,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js
deleted file mode 100644
index c7d77aa..0000000
--- a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Subject } from './Subject';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-export class BehaviorSubject extends Subject {
-    constructor(_value) {
-        super();
-        this._value = _value;
-    }
-    get value() {
-        return this.getValue();
-    }
-    _subscribe(subscriber) {
-        const subscription = super._subscribe(subscriber);
-        if (subscription && !subscription.closed) {
-            subscriber.next(this._value);
-        }
-        return subscription;
-    }
-    getValue() {
-        if (this.hasError) {
-            throw this.thrownError;
-        }
-        else if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else {
-            return this._value;
-        }
-    }
-    next(value) {
-        super.next(this._value = value);
-    }
-}
-//# sourceMappingURL=BehaviorSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map
deleted file mode 100644
index d8d3d5e..0000000
--- a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE,MAAM,OAAO,eAAmB,SAAQ,OAAU;IAEhD,YAAoB,MAAS;QAC3B,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js
deleted file mode 100644
index 1c7b4c7..0000000
--- a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Subscriber } from './Subscriber';
-export class InnerSubscriber extends Subscriber {
-    constructor(parent, outerValue, outerIndex) {
-        super();
-        this.parent = parent;
-        this.outerValue = outerValue;
-        this.outerIndex = outerIndex;
-        this.index = 0;
-    }
-    _next(value) {
-        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
-    }
-    _error(error) {
-        this.parent.notifyError(error, this);
-        this.unsubscribe();
-    }
-    _complete() {
-        this.parent.notifyComplete(this);
-        this.unsubscribe();
-    }
-}
-//# sourceMappingURL=InnerSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map
deleted file mode 100644
index 2c4a906..0000000
--- a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"InnerSubscriber.js","sources":["../../src/internal/InnerSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,eAAsB,SAAQ,UAAa;IAGtD,YAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAChG,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAuB;QAAS,eAAU,GAAV,UAAU,CAAG;QAAS,eAAU,GAAV,UAAU,CAAQ;QAF1F,UAAK,GAAG,CAAC,CAAC;IAIlB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,MAAM,CAAC,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/Notification.js b/node_modules/rxjs/_esm2015/internal/Notification.js
deleted file mode 100644
index 29713d0..0000000
--- a/node_modules/rxjs/_esm2015/internal/Notification.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import { empty } from './observable/empty';
-import { of } from './observable/of';
-import { throwError } from './observable/throwError';
-export var NotificationKind;
-(function (NotificationKind) {
-    NotificationKind["NEXT"] = "N";
-    NotificationKind["ERROR"] = "E";
-    NotificationKind["COMPLETE"] = "C";
-})(NotificationKind || (NotificationKind = {}));
-export class Notification {
-    constructor(kind, value, error) {
-        this.kind = kind;
-        this.value = value;
-        this.error = error;
-        this.hasValue = kind === 'N';
-    }
-    observe(observer) {
-        switch (this.kind) {
-            case 'N':
-                return observer.next && observer.next(this.value);
-            case 'E':
-                return observer.error && observer.error(this.error);
-            case 'C':
-                return observer.complete && observer.complete();
-        }
-    }
-    do(next, error, complete) {
-        const kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return next && next(this.value);
-            case 'E':
-                return error && error(this.error);
-            case 'C':
-                return complete && complete();
-        }
-    }
-    accept(nextOrObserver, error, complete) {
-        if (nextOrObserver && typeof nextOrObserver.next === 'function') {
-            return this.observe(nextOrObserver);
-        }
-        else {
-            return this.do(nextOrObserver, error, complete);
-        }
-    }
-    toObservable() {
-        const kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return of(this.value);
-            case 'E':
-                return throwError(this.error);
-            case 'C':
-                return empty();
-        }
-        throw new Error('unexpected notification kind value');
-    }
-    static createNext(value) {
-        if (typeof value !== 'undefined') {
-            return new Notification('N', value);
-        }
-        return Notification.undefinedValueNotification;
-    }
-    static createError(err) {
-        return new Notification('E', undefined, err);
-    }
-    static createComplete() {
-        return Notification.completeNotification;
-    }
-}
-Notification.completeNotification = new Notification('C');
-Notification.undefinedValueNotification = new Notification('N', undefined);
-//# sourceMappingURL=Notification.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Notification.js.map b/node_modules/rxjs/_esm2015/internal/Notification.js.map
deleted file mode 100644
index eb38dbf..0000000
--- a/node_modules/rxjs/_esm2015/internal/Notification.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Notification.js","sources":["../../src/internal/Notification.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/Observable.js b/node_modules/rxjs/_esm2015/internal/Observable.js
deleted file mode 100644
index 4904b3f..0000000
--- a/node_modules/rxjs/_esm2015/internal/Observable.js
+++ /dev/null
@@ -1,107 +0,0 @@
-import { canReportError } from './util/canReportError';
-import { toSubscriber } from './util/toSubscriber';
-import { observable as Symbol_observable } from './symbol/observable';
-import { pipeFromArray } from './util/pipe';
-import { config } from './config';
-export class Observable {
-    constructor(subscribe) {
-        this._isScalar = false;
-        if (subscribe) {
-            this._subscribe = subscribe;
-        }
-    }
-    lift(operator) {
-        const observable = new Observable();
-        observable.source = this;
-        observable.operator = operator;
-        return observable;
-    }
-    subscribe(observerOrNext, error, complete) {
-        const { operator } = this;
-        const sink = toSubscriber(observerOrNext, error, complete);
-        if (operator) {
-            sink.add(operator.call(sink, this.source));
-        }
-        else {
-            sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
-                this._subscribe(sink) :
-                this._trySubscribe(sink));
-        }
-        if (config.useDeprecatedSynchronousErrorHandling) {
-            if (sink.syncErrorThrowable) {
-                sink.syncErrorThrowable = false;
-                if (sink.syncErrorThrown) {
-                    throw sink.syncErrorValue;
-                }
-            }
-        }
-        return sink;
-    }
-    _trySubscribe(sink) {
-        try {
-            return this._subscribe(sink);
-        }
-        catch (err) {
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                sink.syncErrorThrown = true;
-                sink.syncErrorValue = err;
-            }
-            if (canReportError(sink)) {
-                sink.error(err);
-            }
-            else {
-                console.warn(err);
-            }
-        }
-    }
-    forEach(next, promiseCtor) {
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor((resolve, reject) => {
-            let subscription;
-            subscription = this.subscribe((value) => {
-                try {
-                    next(value);
-                }
-                catch (err) {
-                    reject(err);
-                    if (subscription) {
-                        subscription.unsubscribe();
-                    }
-                }
-            }, reject, resolve);
-        });
-    }
-    _subscribe(subscriber) {
-        const { source } = this;
-        return source && source.subscribe(subscriber);
-    }
-    [Symbol_observable]() {
-        return this;
-    }
-    pipe(...operations) {
-        if (operations.length === 0) {
-            return this;
-        }
-        return pipeFromArray(operations)(this);
-    }
-    toPromise(promiseCtor) {
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor((resolve, reject) => {
-            let value;
-            this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));
-        });
-    }
-}
-Observable.create = (subscribe) => {
-    return new Observable(subscribe);
-};
-function getPromiseCtor(promiseCtor) {
-    if (!promiseCtor) {
-        promiseCtor = config.Promise || Promise;
-    }
-    if (!promiseCtor) {
-        throw new Error('no Promise impl found');
-    }
-    return promiseCtor;
-}
-//# sourceMappingURL=Observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Observable.js.map b/node_modules/rxjs/_esm2015/internal/Observable.js.map
deleted file mode 100644
index 32197d0..0000000
--- a/node_modules/rxjs/_esm2015/internal/Observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/Observer.js b/node_modules/rxjs/_esm2015/internal/Observer.js
deleted file mode 100644
index 22a6aca..0000000
--- a/node_modules/rxjs/_esm2015/internal/Observer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-export const empty = {
-    closed: true,
-    next(value) { },
-    error(err) {
-        if (config.useDeprecatedSynchronousErrorHandling) {
-            throw err;
-        }
-        else {
-            hostReportError(err);
-        }
-    },
-    complete() { }
-};
-//# sourceMappingURL=Observer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Observer.js.map b/node_modules/rxjs/_esm2015/internal/Observer.js.map
deleted file mode 100644
index cf2a2d3..0000000
--- a/node_modules/rxjs/_esm2015/internal/Observer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observer.js","sources":["../../src/internal/Observer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,CAAC,KAAU,IAAoB,CAAC;IACpC,KAAK,CAAC,GAAQ;QACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,KAAoB,CAAC;CAC9B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/Operator.js b/node_modules/rxjs/_esm2015/internal/Operator.js
deleted file mode 100644
index 463a42e..0000000
--- a/node_modules/rxjs/_esm2015/internal/Operator.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=Operator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Operator.js.map b/node_modules/rxjs/_esm2015/internal/Operator.js.map
deleted file mode 100644
index f45f5ad..0000000
--- a/node_modules/rxjs/_esm2015/internal/Operator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Operator.js","sources":["../../src/internal/Operator.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js
deleted file mode 100644
index fa93e84..0000000
--- a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Subscriber } from './Subscriber';
-export class OuterSubscriber extends Subscriber {
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    }
-    notifyError(error, innerSub) {
-        this.destination.error(error);
-    }
-    notifyComplete(innerSub) {
-        this.destination.complete();
-    }
-}
-//# sourceMappingURL=OuterSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map
deleted file mode 100644
index 41b6683..0000000
--- a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"OuterSubscriber.js","sources":["../../src/internal/OuterSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,eAAsB,SAAQ,UAAa;IACtD,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js
deleted file mode 100644
index 2acf607..0000000
--- a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Subject } from './Subject';
-import { queue } from './scheduler/queue';
-import { Subscription } from './Subscription';
-import { ObserveOnSubscriber } from './operators/observeOn';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-export class ReplaySubject extends Subject {
-    constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) {
-        super();
-        this.scheduler = scheduler;
-        this._events = [];
-        this._infiniteTimeWindow = false;
-        this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
-        this._windowTime = windowTime < 1 ? 1 : windowTime;
-        if (windowTime === Number.POSITIVE_INFINITY) {
-            this._infiniteTimeWindow = true;
-            this.next = this.nextInfiniteTimeWindow;
-        }
-        else {
-            this.next = this.nextTimeWindow;
-        }
-    }
-    nextInfiniteTimeWindow(value) {
-        const _events = this._events;
-        _events.push(value);
-        if (_events.length > this._bufferSize) {
-            _events.shift();
-        }
-        super.next(value);
-    }
-    nextTimeWindow(value) {
-        this._events.push(new ReplayEvent(this._getNow(), value));
-        this._trimBufferThenGetEvents();
-        super.next(value);
-    }
-    _subscribe(subscriber) {
-        const _infiniteTimeWindow = this._infiniteTimeWindow;
-        const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
-        const scheduler = this.scheduler;
-        const len = _events.length;
-        let subscription;
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else if (this.isStopped || this.hasError) {
-            subscription = Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            subscription = new SubjectSubscription(this, subscriber);
-        }
-        if (scheduler) {
-            subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));
-        }
-        if (_infiniteTimeWindow) {
-            for (let i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i]);
-            }
-        }
-        else {
-            for (let i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i].value);
-            }
-        }
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-        }
-        return subscription;
-    }
-    _getNow() {
-        return (this.scheduler || queue).now();
-    }
-    _trimBufferThenGetEvents() {
-        const now = this._getNow();
-        const _bufferSize = this._bufferSize;
-        const _windowTime = this._windowTime;
-        const _events = this._events;
-        const eventsCount = _events.length;
-        let spliceCount = 0;
-        while (spliceCount < eventsCount) {
-            if ((now - _events[spliceCount].time) < _windowTime) {
-                break;
-            }
-            spliceCount++;
-        }
-        if (eventsCount > _bufferSize) {
-            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
-        }
-        if (spliceCount > 0) {
-            _events.splice(0, spliceCount);
-        }
-        return _events;
-    }
-}
-class ReplayEvent {
-    constructor(time, value) {
-        this.time = time;
-        this.value = value;
-    }
-}
-//# sourceMappingURL=ReplaySubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map
deleted file mode 100644
index 24c5cc3..0000000
--- a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/Rx.js b/node_modules/rxjs/_esm2015/internal/Rx.js
deleted file mode 100644
index 1bbe29c..0000000
--- a/node_modules/rxjs/_esm2015/internal/Rx.js
+++ /dev/null
@@ -1,172 +0,0 @@
-export { Subject, AnonymousSubject } from './Subject';
-export { Observable } from './Observable';
-export { config } from './config';
-import 'rxjs-compat/add/observable/bindCallback';
-import 'rxjs-compat/add/observable/bindNodeCallback';
-import 'rxjs-compat/add/observable/combineLatest';
-import 'rxjs-compat/add/observable/concat';
-import 'rxjs-compat/add/observable/defer';
-import 'rxjs-compat/add/observable/empty';
-import 'rxjs-compat/add/observable/forkJoin';
-import 'rxjs-compat/add/observable/from';
-import 'rxjs-compat/add/observable/fromEvent';
-import 'rxjs-compat/add/observable/fromEventPattern';
-import 'rxjs-compat/add/observable/fromPromise';
-import 'rxjs-compat/add/observable/generate';
-import 'rxjs-compat/add/observable/if';
-import 'rxjs-compat/add/observable/interval';
-import 'rxjs-compat/add/observable/merge';
-import 'rxjs-compat/add/observable/race';
-import 'rxjs-compat/add/observable/never';
-import 'rxjs-compat/add/observable/of';
-import 'rxjs-compat/add/observable/onErrorResumeNext';
-import 'rxjs-compat/add/observable/pairs';
-import 'rxjs-compat/add/observable/range';
-import 'rxjs-compat/add/observable/using';
-import 'rxjs-compat/add/observable/throw';
-import 'rxjs-compat/add/observable/timer';
-import 'rxjs-compat/add/observable/zip';
-import 'rxjs-compat/add/observable/dom/ajax';
-import 'rxjs-compat/add/observable/dom/webSocket';
-import 'rxjs-compat/add/operator/buffer';
-import 'rxjs-compat/add/operator/bufferCount';
-import 'rxjs-compat/add/operator/bufferTime';
-import 'rxjs-compat/add/operator/bufferToggle';
-import 'rxjs-compat/add/operator/bufferWhen';
-import 'rxjs-compat/add/operator/catch';
-import 'rxjs-compat/add/operator/combineAll';
-import 'rxjs-compat/add/operator/combineLatest';
-import 'rxjs-compat/add/operator/concat';
-import 'rxjs-compat/add/operator/concatAll';
-import 'rxjs-compat/add/operator/concatMap';
-import 'rxjs-compat/add/operator/concatMapTo';
-import 'rxjs-compat/add/operator/count';
-import 'rxjs-compat/add/operator/dematerialize';
-import 'rxjs-compat/add/operator/debounce';
-import 'rxjs-compat/add/operator/debounceTime';
-import 'rxjs-compat/add/operator/defaultIfEmpty';
-import 'rxjs-compat/add/operator/delay';
-import 'rxjs-compat/add/operator/delayWhen';
-import 'rxjs-compat/add/operator/distinct';
-import 'rxjs-compat/add/operator/distinctUntilChanged';
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
-import 'rxjs-compat/add/operator/do';
-import 'rxjs-compat/add/operator/exhaust';
-import 'rxjs-compat/add/operator/exhaustMap';
-import 'rxjs-compat/add/operator/expand';
-import 'rxjs-compat/add/operator/elementAt';
-import 'rxjs-compat/add/operator/filter';
-import 'rxjs-compat/add/operator/finally';
-import 'rxjs-compat/add/operator/find';
-import 'rxjs-compat/add/operator/findIndex';
-import 'rxjs-compat/add/operator/first';
-import 'rxjs-compat/add/operator/groupBy';
-import 'rxjs-compat/add/operator/ignoreElements';
-import 'rxjs-compat/add/operator/isEmpty';
-import 'rxjs-compat/add/operator/audit';
-import 'rxjs-compat/add/operator/auditTime';
-import 'rxjs-compat/add/operator/last';
-import 'rxjs-compat/add/operator/let';
-import 'rxjs-compat/add/operator/every';
-import 'rxjs-compat/add/operator/map';
-import 'rxjs-compat/add/operator/mapTo';
-import 'rxjs-compat/add/operator/materialize';
-import 'rxjs-compat/add/operator/max';
-import 'rxjs-compat/add/operator/merge';
-import 'rxjs-compat/add/operator/mergeAll';
-import 'rxjs-compat/add/operator/mergeMap';
-import 'rxjs-compat/add/operator/mergeMapTo';
-import 'rxjs-compat/add/operator/mergeScan';
-import 'rxjs-compat/add/operator/min';
-import 'rxjs-compat/add/operator/multicast';
-import 'rxjs-compat/add/operator/observeOn';
-import 'rxjs-compat/add/operator/onErrorResumeNext';
-import 'rxjs-compat/add/operator/pairwise';
-import 'rxjs-compat/add/operator/partition';
-import 'rxjs-compat/add/operator/pluck';
-import 'rxjs-compat/add/operator/publish';
-import 'rxjs-compat/add/operator/publishBehavior';
-import 'rxjs-compat/add/operator/publishReplay';
-import 'rxjs-compat/add/operator/publishLast';
-import 'rxjs-compat/add/operator/race';
-import 'rxjs-compat/add/operator/reduce';
-import 'rxjs-compat/add/operator/repeat';
-import 'rxjs-compat/add/operator/repeatWhen';
-import 'rxjs-compat/add/operator/retry';
-import 'rxjs-compat/add/operator/retryWhen';
-import 'rxjs-compat/add/operator/sample';
-import 'rxjs-compat/add/operator/sampleTime';
-import 'rxjs-compat/add/operator/scan';
-import 'rxjs-compat/add/operator/sequenceEqual';
-import 'rxjs-compat/add/operator/share';
-import 'rxjs-compat/add/operator/shareReplay';
-import 'rxjs-compat/add/operator/single';
-import 'rxjs-compat/add/operator/skip';
-import 'rxjs-compat/add/operator/skipLast';
-import 'rxjs-compat/add/operator/skipUntil';
-import 'rxjs-compat/add/operator/skipWhile';
-import 'rxjs-compat/add/operator/startWith';
-import 'rxjs-compat/add/operator/subscribeOn';
-import 'rxjs-compat/add/operator/switch';
-import 'rxjs-compat/add/operator/switchMap';
-import 'rxjs-compat/add/operator/switchMapTo';
-import 'rxjs-compat/add/operator/take';
-import 'rxjs-compat/add/operator/takeLast';
-import 'rxjs-compat/add/operator/takeUntil';
-import 'rxjs-compat/add/operator/takeWhile';
-import 'rxjs-compat/add/operator/throttle';
-import 'rxjs-compat/add/operator/throttleTime';
-import 'rxjs-compat/add/operator/timeInterval';
-import 'rxjs-compat/add/operator/timeout';
-import 'rxjs-compat/add/operator/timeoutWith';
-import 'rxjs-compat/add/operator/timestamp';
-import 'rxjs-compat/add/operator/toArray';
-import 'rxjs-compat/add/operator/toPromise';
-import 'rxjs-compat/add/operator/window';
-import 'rxjs-compat/add/operator/windowCount';
-import 'rxjs-compat/add/operator/windowTime';
-import 'rxjs-compat/add/operator/windowToggle';
-import 'rxjs-compat/add/operator/windowWhen';
-import 'rxjs-compat/add/operator/withLatestFrom';
-import 'rxjs-compat/add/operator/zip';
-import 'rxjs-compat/add/operator/zipAll';
-export { Subscription } from './Subscription';
-export { Subscriber } from './Subscriber';
-export { AsyncSubject } from './AsyncSubject';
-export { ReplaySubject } from './ReplaySubject';
-export { BehaviorSubject } from './BehaviorSubject';
-export { ConnectableObservable } from './observable/ConnectableObservable';
-export { Notification, NotificationKind } from './Notification';
-export { EmptyError } from './util/EmptyError';
-export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError';
-export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-export { TimeoutError } from './util/TimeoutError';
-export { UnsubscriptionError } from './util/UnsubscriptionError';
-export { TimeInterval } from './operators/timeInterval';
-export { Timestamp } from './operators/timestamp';
-export { TestScheduler } from './testing/TestScheduler';
-export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler';
-export { AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable';
-export { pipe } from './util/pipe';
-import { asap } from './scheduler/asap';
-import { async } from './scheduler/async';
-import { queue } from './scheduler/queue';
-import { animationFrame } from './scheduler/animationFrame';
-import { rxSubscriber } from './symbol/rxSubscriber';
-import { iterator } from './symbol/iterator';
-import { observable } from './symbol/observable';
-import * as _operators from './operators/index';
-export const operators = _operators;
-let Scheduler = {
-    asap,
-    queue,
-    animationFrame,
-    async
-};
-let Symbol = {
-    rxSubscriber,
-    observable,
-    iterator
-};
-export { Scheduler, Symbol };
-//# sourceMappingURL=Rx.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Rx.js.map b/node_modules/rxjs/_esm2015/internal/Rx.js.map
deleted file mode 100644
index 059580f..0000000
--- a/node_modules/rxjs/_esm2015/internal/Rx.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rx.js","sources":["../../src/internal/Rx.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/Scheduler.js b/node_modules/rxjs/_esm2015/internal/Scheduler.js
deleted file mode 100644
index 9c0ab99..0000000
--- a/node_modules/rxjs/_esm2015/internal/Scheduler.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export class Scheduler {
-    constructor(SchedulerAction, now = Scheduler.now) {
-        this.SchedulerAction = SchedulerAction;
-        this.now = now;
-    }
-    schedule(work, delay = 0, state) {
-        return new this.SchedulerAction(this, work).schedule(state, delay);
-    }
-}
-Scheduler.now = () => Date.now();
-//# sourceMappingURL=Scheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Scheduler.js.map b/node_modules/rxjs/_esm2015/internal/Scheduler.js.map
deleted file mode 100644
index 4bc5f39..0000000
--- a/node_modules/rxjs/_esm2015/internal/Scheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scheduler.js","sources":["../../src/internal/Scheduler.ts"],"names":[],"mappings":"AAuBA,MAAM,OAAO,SAAS;IASpB,YAAoB,eAA8B,EACtC,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,QAAQ,CAAI,IAAmD,EAAE,QAAgB,CAAC,EAAE,KAAS;QAClG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;;AApCa,aAAG,GAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/Subject.js b/node_modules/rxjs/_esm2015/internal/Subject.js
deleted file mode 100644
index 7bdf815..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subject.js
+++ /dev/null
@@ -1,144 +0,0 @@
-import { Observable } from './Observable';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-export class SubjectSubscriber extends Subscriber {
-    constructor(destination) {
-        super(destination);
-        this.destination = destination;
-    }
-}
-export class Subject extends Observable {
-    constructor() {
-        super();
-        this.observers = [];
-        this.closed = false;
-        this.isStopped = false;
-        this.hasError = false;
-        this.thrownError = null;
-    }
-    [rxSubscriberSymbol]() {
-        return new SubjectSubscriber(this);
-    }
-    lift(operator) {
-        const subject = new AnonymousSubject(this, this);
-        subject.operator = operator;
-        return subject;
-    }
-    next(value) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        if (!this.isStopped) {
-            const { observers } = this;
-            const len = observers.length;
-            const copy = observers.slice();
-            for (let i = 0; i < len; i++) {
-                copy[i].next(value);
-            }
-        }
-    }
-    error(err) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        this.hasError = true;
-        this.thrownError = err;
-        this.isStopped = true;
-        const { observers } = this;
-        const len = observers.length;
-        const copy = observers.slice();
-        for (let i = 0; i < len; i++) {
-            copy[i].error(err);
-        }
-        this.observers.length = 0;
-    }
-    complete() {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        this.isStopped = true;
-        const { observers } = this;
-        const len = observers.length;
-        const copy = observers.slice();
-        for (let i = 0; i < len; i++) {
-            copy[i].complete();
-        }
-        this.observers.length = 0;
-    }
-    unsubscribe() {
-        this.isStopped = true;
-        this.closed = true;
-        this.observers = null;
-    }
-    _trySubscribe(subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else {
-            return super._trySubscribe(subscriber);
-        }
-    }
-    _subscribe(subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription.EMPTY;
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-            return Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            return new SubjectSubscription(this, subscriber);
-        }
-    }
-    asObservable() {
-        const observable = new Observable();
-        observable.source = this;
-        return observable;
-    }
-}
-Subject.create = (destination, source) => {
-    return new AnonymousSubject(destination, source);
-};
-export class AnonymousSubject extends Subject {
-    constructor(destination, source) {
-        super();
-        this.destination = destination;
-        this.source = source;
-    }
-    next(value) {
-        const { destination } = this;
-        if (destination && destination.next) {
-            destination.next(value);
-        }
-    }
-    error(err) {
-        const { destination } = this;
-        if (destination && destination.error) {
-            this.destination.error(err);
-        }
-    }
-    complete() {
-        const { destination } = this;
-        if (destination && destination.complete) {
-            this.destination.complete();
-        }
-    }
-    _subscribe(subscriber) {
-        const { source } = this;
-        if (source) {
-            return this.source.subscribe(subscriber);
-        }
-        else {
-            return Subscription.EMPTY;
-        }
-    }
-}
-//# sourceMappingURL=Subject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Subject.js.map b/node_modules/rxjs/_esm2015/internal/Subject.js.map
deleted file mode 100644
index a826b0f..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js
deleted file mode 100644
index 0f1c5df..0000000
--- a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Subscription } from './Subscription';
-export class SubjectSubscription extends Subscription {
-    constructor(subject, subscriber) {
-        super();
-        this.subject = subject;
-        this.subscriber = subscriber;
-        this.closed = false;
-    }
-    unsubscribe() {
-        if (this.closed) {
-            return;
-        }
-        this.closed = true;
-        const subject = this.subject;
-        const observers = subject.observers;
-        this.subject = null;
-        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
-            return;
-        }
-        const subscriberIndex = observers.indexOf(this.subscriber);
-        if (subscriberIndex !== -1) {
-            observers.splice(subscriberIndex, 1);
-        }
-    }
-}
-//# sourceMappingURL=SubjectSubscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map
deleted file mode 100644
index ef477fb..0000000
--- a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubjectSubscription.js","sources":["../../src/internal/SubjectSubscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,MAAM,OAAO,mBAAuB,SAAQ,YAAY;IAGtD,YAAmB,OAAmB,EAAS,UAAuB;QACpE,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QAAS,eAAU,GAAV,UAAU,CAAa;QAFtE,WAAM,GAAY,KAAK,CAAC;IAIxB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/Subscriber.js b/node_modules/rxjs/_esm2015/internal/Subscriber.js
deleted file mode 100644
index 7dfed3c..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subscriber.js
+++ /dev/null
@@ -1,222 +0,0 @@
-import { isFunction } from './util/isFunction';
-import { empty as emptyObserver } from './Observer';
-import { Subscription } from './Subscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-export class Subscriber extends Subscription {
-    constructor(destinationOrNext, error, complete) {
-        super();
-        this.syncErrorValue = null;
-        this.syncErrorThrown = false;
-        this.syncErrorThrowable = false;
-        this.isStopped = false;
-        switch (arguments.length) {
-            case 0:
-                this.destination = emptyObserver;
-                break;
-            case 1:
-                if (!destinationOrNext) {
-                    this.destination = emptyObserver;
-                    break;
-                }
-                if (typeof destinationOrNext === 'object') {
-                    if (destinationOrNext instanceof Subscriber) {
-                        this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
-                        this.destination = destinationOrNext;
-                        destinationOrNext.add(this);
-                    }
-                    else {
-                        this.syncErrorThrowable = true;
-                        this.destination = new SafeSubscriber(this, destinationOrNext);
-                    }
-                    break;
-                }
-            default:
-                this.syncErrorThrowable = true;
-                this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);
-                break;
-        }
-    }
-    [rxSubscriberSymbol]() { return this; }
-    static create(next, error, complete) {
-        const subscriber = new Subscriber(next, error, complete);
-        subscriber.syncErrorThrowable = false;
-        return subscriber;
-    }
-    next(value) {
-        if (!this.isStopped) {
-            this._next(value);
-        }
-    }
-    error(err) {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._error(err);
-        }
-    }
-    complete() {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._complete();
-        }
-    }
-    unsubscribe() {
-        if (this.closed) {
-            return;
-        }
-        this.isStopped = true;
-        super.unsubscribe();
-    }
-    _next(value) {
-        this.destination.next(value);
-    }
-    _error(err) {
-        this.destination.error(err);
-        this.unsubscribe();
-    }
-    _complete() {
-        this.destination.complete();
-        this.unsubscribe();
-    }
-    _unsubscribeAndRecycle() {
-        const { _parentOrParents } = this;
-        this._parentOrParents = null;
-        this.unsubscribe();
-        this.closed = false;
-        this.isStopped = false;
-        this._parentOrParents = _parentOrParents;
-        return this;
-    }
-}
-export class SafeSubscriber extends Subscriber {
-    constructor(_parentSubscriber, observerOrNext, error, complete) {
-        super();
-        this._parentSubscriber = _parentSubscriber;
-        let next;
-        let context = this;
-        if (isFunction(observerOrNext)) {
-            next = observerOrNext;
-        }
-        else if (observerOrNext) {
-            next = observerOrNext.next;
-            error = observerOrNext.error;
-            complete = observerOrNext.complete;
-            if (observerOrNext !== emptyObserver) {
-                context = Object.create(observerOrNext);
-                if (isFunction(context.unsubscribe)) {
-                    this.add(context.unsubscribe.bind(context));
-                }
-                context.unsubscribe = this.unsubscribe.bind(this);
-            }
-        }
-        this._context = context;
-        this._next = next;
-        this._error = error;
-        this._complete = complete;
-    }
-    next(value) {
-        if (!this.isStopped && this._next) {
-            const { _parentSubscriber } = this;
-            if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                this.__tryOrUnsub(this._next, value);
-            }
-            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
-                this.unsubscribe();
-            }
-        }
-    }
-    error(err) {
-        if (!this.isStopped) {
-            const { _parentSubscriber } = this;
-            const { useDeprecatedSynchronousErrorHandling } = config;
-            if (this._error) {
-                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(this._error, err);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, this._error, err);
-                    this.unsubscribe();
-                }
-            }
-            else if (!_parentSubscriber.syncErrorThrowable) {
-                this.unsubscribe();
-                if (useDeprecatedSynchronousErrorHandling) {
-                    throw err;
-                }
-                hostReportError(err);
-            }
-            else {
-                if (useDeprecatedSynchronousErrorHandling) {
-                    _parentSubscriber.syncErrorValue = err;
-                    _parentSubscriber.syncErrorThrown = true;
-                }
-                else {
-                    hostReportError(err);
-                }
-                this.unsubscribe();
-            }
-        }
-    }
-    complete() {
-        if (!this.isStopped) {
-            const { _parentSubscriber } = this;
-            if (this._complete) {
-                const wrappedComplete = () => this._complete.call(this._context);
-                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(wrappedComplete);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);
-                    this.unsubscribe();
-                }
-            }
-            else {
-                this.unsubscribe();
-            }
-        }
-    }
-    __tryOrUnsub(fn, value) {
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            this.unsubscribe();
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                throw err;
-            }
-            else {
-                hostReportError(err);
-            }
-        }
-    }
-    __tryOrSetError(parent, fn, value) {
-        if (!config.useDeprecatedSynchronousErrorHandling) {
-            throw new Error('bad call');
-        }
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                parent.syncErrorValue = err;
-                parent.syncErrorThrown = true;
-                return true;
-            }
-            else {
-                hostReportError(err);
-                return true;
-            }
-        }
-        return false;
-    }
-    _unsubscribe() {
-        const { _parentSubscriber } = this;
-        this._context = null;
-        this._parentSubscriber = null;
-        _parentSubscriber.unsubscribe();
-    }
-}
-//# sourceMappingURL=Subscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Subscriber.js.map b/node_modules/rxjs/_esm2015/internal/Subscriber.js.map
deleted file mode 100644
index 174aa15..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAYzD,MAAM,OAAO,UAAc,SAAQ,YAAY;IAuC7C,YAAY,iBAA+D,EAC/D,KAAyB,EACzB,QAAqB;QAC/B,KAAK,EAAE,CAAC;QAlBO,mBAAc,GAAQ,IAAI,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QACjC,uBAAkB,GAAY,KAAK,CAAC;QAE3C,cAAS,GAAY,KAAK,CAAC;QAgBnC,QAAQ,SAAS,CAAC,MAAM,EAAE;YACxB,KAAK,CAAC;gBACJ,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;gBACjC,MAAM;YACR,KAAK,CAAC;gBACJ,IAAI,CAAC,iBAAiB,EAAE;oBACtB,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;oBACjC,MAAM;iBACP;gBACD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;oBACzC,IAAI,iBAAiB,YAAY,UAAU,EAAE;wBAC3C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;wBAC/D,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBACrC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC7B;yBAAM;wBACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAI,IAAI,EAAyB,iBAAiB,CAAC,CAAC;qBAC1F;oBACD,MAAM;iBACP;YACH;gBACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAI,IAAI,EAAyB,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC1G,MAAM;SACT;IACH,CAAC;IAnED,CAAC,kBAAkB,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAcvC,MAAM,CAAC,MAAM,CAAI,IAAsB,EACtB,KAAyB,EACzB,QAAqB;QACpC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACtC,OAAO,UAAU,CAAC;IACpB,CAAC;IAwDD,IAAI,CAAC,KAAS;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACnB;IACH,CAAC;IASD,KAAK,CAAC,GAAS;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;IAQD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAGD,sBAAsB;QACpB,MAAM,EAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAOD,MAAM,OAAO,cAAkB,SAAQ,UAAa;IAIlD,YAAoB,iBAAgC,EACxC,cAA0D,EAC1D,KAAyB,EACzB,QAAqB;QAC/B,KAAK,EAAE,CAAC;QAJU,sBAAiB,GAAjB,iBAAiB,CAAe;QAMlD,IAAI,IAA0B,CAAC;QAC/B,IAAI,OAAO,GAAQ,IAAI,CAAC;QAExB,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE;YAC9B,IAAI,GAA2B,cAAe,CAAC;SAChD;aAAM,IAAI,cAAc,EAAE;YACzB,IAAI,GAAyB,cAAe,CAAC,IAAI,CAAC;YAClD,KAAK,GAAyB,cAAe,CAAC,KAAK,CAAC;YACpD,QAAQ,GAAyB,cAAe,CAAC,QAAQ,CAAC;YAC1D,IAAI,cAAc,KAAK,aAAa,EAAE;gBACpC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACxC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACnC,IAAI,CAAC,GAAG,CAAc,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC1D;gBACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnD;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,KAAS;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;gBAC1F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACtC;iBAAM,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBACrE,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAED,KAAK,CAAC,GAAS;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,MAAM,EAAE,qCAAqC,EAAE,GAAG,MAAM,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;oBACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;iBAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;gBAChD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,qCAAqC,EAAE;oBACzC,MAAM,GAAG,CAAC;iBACX;gBACD,eAAe,CAAC,GAAG,CAAC,CAAC;aACtB;iBAAM;gBACL,IAAI,qCAAqC,EAAE;oBACzC,iBAAiB,CAAC,cAAc,GAAG,GAAG,CAAC;oBACvC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC1C;qBAAM;oBACL,eAAe,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;YACnC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEjE,IAAI,CAAC,MAAM,CAAC,qCAAqC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;oBAC1F,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBACnC,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;oBACzD,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;aACF;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAEO,YAAY,CAAC,EAAY,EAAE,KAAW;QAC5C,IAAI;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,qCAAqC,EAAE;gBAChD,MAAM,GAAG,CAAC;aACX;iBAAM;gBACL,eAAe,CAAC,GAAG,CAAC,CAAC;aACtB;SACF;IACH,CAAC;IAEO,eAAe,CAAC,MAAqB,EAAE,EAAY,EAAE,KAAW;QACtE,IAAI,CAAC,MAAM,CAAC,qCAAqC,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;SAC7B;QACD,IAAI;YACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;gBAChD,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;gBAC5B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC9B,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,eAAe,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,YAAY;QACV,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/Subscription.js b/node_modules/rxjs/_esm2015/internal/Subscription.js
deleted file mode 100644
index 78301c6..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subscription.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import { isArray } from './util/isArray';
-import { isObject } from './util/isObject';
-import { isFunction } from './util/isFunction';
-import { UnsubscriptionError } from './util/UnsubscriptionError';
-export class Subscription {
-    constructor(unsubscribe) {
-        this.closed = false;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (unsubscribe) {
-            this._unsubscribe = unsubscribe;
-        }
-    }
-    unsubscribe() {
-        let errors;
-        if (this.closed) {
-            return;
-        }
-        let { _parentOrParents, _unsubscribe, _subscriptions } = this;
-        this.closed = true;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (_parentOrParents instanceof Subscription) {
-            _parentOrParents.remove(this);
-        }
-        else if (_parentOrParents !== null) {
-            for (let index = 0; index < _parentOrParents.length; ++index) {
-                const parent = _parentOrParents[index];
-                parent.remove(this);
-            }
-        }
-        if (isFunction(_unsubscribe)) {
-            try {
-                _unsubscribe.call(this);
-            }
-            catch (e) {
-                errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
-            }
-        }
-        if (isArray(_subscriptions)) {
-            let index = -1;
-            let len = _subscriptions.length;
-            while (++index < len) {
-                const sub = _subscriptions[index];
-                if (isObject(sub)) {
-                    try {
-                        sub.unsubscribe();
-                    }
-                    catch (e) {
-                        errors = errors || [];
-                        if (e instanceof UnsubscriptionError) {
-                            errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
-                        }
-                        else {
-                            errors.push(e);
-                        }
-                    }
-                }
-            }
-        }
-        if (errors) {
-            throw new UnsubscriptionError(errors);
-        }
-    }
-    add(teardown) {
-        let subscription = teardown;
-        if (!teardown) {
-            return Subscription.EMPTY;
-        }
-        switch (typeof teardown) {
-            case 'function':
-                subscription = new Subscription(teardown);
-            case 'object':
-                if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
-                    return subscription;
-                }
-                else if (this.closed) {
-                    subscription.unsubscribe();
-                    return subscription;
-                }
-                else if (!(subscription instanceof Subscription)) {
-                    const tmp = subscription;
-                    subscription = new Subscription();
-                    subscription._subscriptions = [tmp];
-                }
-                break;
-            default: {
-                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
-            }
-        }
-        let { _parentOrParents } = subscription;
-        if (_parentOrParents === null) {
-            subscription._parentOrParents = this;
-        }
-        else if (_parentOrParents instanceof Subscription) {
-            if (_parentOrParents === this) {
-                return subscription;
-            }
-            subscription._parentOrParents = [_parentOrParents, this];
-        }
-        else if (_parentOrParents.indexOf(this) === -1) {
-            _parentOrParents.push(this);
-        }
-        else {
-            return subscription;
-        }
-        const subscriptions = this._subscriptions;
-        if (subscriptions === null) {
-            this._subscriptions = [subscription];
-        }
-        else {
-            subscriptions.push(subscription);
-        }
-        return subscription;
-    }
-    remove(subscription) {
-        const subscriptions = this._subscriptions;
-        if (subscriptions) {
-            const subscriptionIndex = subscriptions.indexOf(subscription);
-            if (subscriptionIndex !== -1) {
-                subscriptions.splice(subscriptionIndex, 1);
-            }
-        }
-    }
-}
-Subscription.EMPTY = (function (empty) {
-    empty.closed = true;
-    return empty;
-}(new Subscription()));
-function flattenUnsubscriptionErrors(errors) {
-    return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);
-}
-//# sourceMappingURL=Subscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/Subscription.js.map b/node_modules/rxjs/_esm2015/internal/Subscription.js.map
deleted file mode 100644
index f2f8ef1..0000000
--- a/node_modules/rxjs/_esm2015/internal/Subscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/config.js b/node_modules/rxjs/_esm2015/internal/config.js
deleted file mode 100644
index d237f15..0000000
--- a/node_modules/rxjs/_esm2015/internal/config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-let _enable_super_gross_mode_that_will_cause_bad_things = false;
-export const config = {
-    Promise: undefined,
-    set useDeprecatedSynchronousErrorHandling(value) {
-        if (value) {
-            const error = new Error();
-            console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
-        }
-        else if (_enable_super_gross_mode_that_will_cause_bad_things) {
-            console.log('RxJS: Back to a better error behavior. Thank you. <3');
-        }
-        _enable_super_gross_mode_that_will_cause_bad_things = value;
-    },
-    get useDeprecatedSynchronousErrorHandling() {
-        return _enable_super_gross_mode_that_will_cause_bad_things;
-    },
-};
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/config.js.map b/node_modules/rxjs/_esm2015/internal/config.js.map
deleted file mode 100644
index 1b8c5be..0000000
--- a/node_modules/rxjs/_esm2015/internal/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMhE,MAAM,CAAC,MAAM,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js
deleted file mode 100644
index d9e6d47..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js
+++ /dev/null
@@ -1,129 +0,0 @@
-import { SubjectSubscriber } from '../Subject';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { refCount as higherOrderRefCount } from '../operators/refCount';
-export class ConnectableObservable extends Observable {
-    constructor(source, subjectFactory) {
-        super();
-        this.source = source;
-        this.subjectFactory = subjectFactory;
-        this._refCount = 0;
-        this._isComplete = false;
-    }
-    _subscribe(subscriber) {
-        return this.getSubject().subscribe(subscriber);
-    }
-    getSubject() {
-        const subject = this._subject;
-        if (!subject || subject.isStopped) {
-            this._subject = this.subjectFactory();
-        }
-        return this._subject;
-    }
-    connect() {
-        let connection = this._connection;
-        if (!connection) {
-            this._isComplete = false;
-            connection = this._connection = new Subscription();
-            connection.add(this.source
-                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
-            if (connection.closed) {
-                this._connection = null;
-                connection = Subscription.EMPTY;
-            }
-        }
-        return connection;
-    }
-    refCount() {
-        return higherOrderRefCount()(this);
-    }
-}
-export const connectableObservableDescriptor = (() => {
-    const connectableProto = ConnectableObservable.prototype;
-    return {
-        operator: { value: null },
-        _refCount: { value: 0, writable: true },
-        _subject: { value: null, writable: true },
-        _connection: { value: null, writable: true },
-        _subscribe: { value: connectableProto._subscribe },
-        _isComplete: { value: connectableProto._isComplete, writable: true },
-        getSubject: { value: connectableProto.getSubject },
-        connect: { value: connectableProto.connect },
-        refCount: { value: connectableProto.refCount }
-    };
-})();
-class ConnectableSubscriber extends SubjectSubscriber {
-    constructor(destination, connectable) {
-        super(destination);
-        this.connectable = connectable;
-    }
-    _error(err) {
-        this._unsubscribe();
-        super._error(err);
-    }
-    _complete() {
-        this.connectable._isComplete = true;
-        this._unsubscribe();
-        super._complete();
-    }
-    _unsubscribe() {
-        const connectable = this.connectable;
-        if (connectable) {
-            this.connectable = null;
-            const connection = connectable._connection;
-            connectable._refCount = 0;
-            connectable._subject = null;
-            connectable._connection = null;
-            if (connection) {
-                connection.unsubscribe();
-            }
-        }
-    }
-}
-class RefCountOperator {
-    constructor(connectable) {
-        this.connectable = connectable;
-    }
-    call(subscriber, source) {
-        const { connectable } = this;
-        connectable._refCount++;
-        const refCounter = new RefCountSubscriber(subscriber, connectable);
-        const subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    }
-}
-class RefCountSubscriber extends Subscriber {
-    constructor(destination, connectable) {
-        super(destination);
-        this.connectable = connectable;
-    }
-    _unsubscribe() {
-        const { connectable } = this;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        const refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        const { connection } = this;
-        const sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    }
-}
-//# sourceMappingURL=ConnectableObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map
deleted file mode 100644
index b4d080d..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ConnectableObservable.js","sources":["../../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js
deleted file mode 100644
index ebdaceb..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Observable } from '../Observable';
-import { asap } from '../scheduler/asap';
-import { isNumeric } from '../util/isNumeric';
-export class SubscribeOnObservable extends Observable {
-    constructor(source, delayTime = 0, scheduler = asap) {
-        super();
-        this.source = source;
-        this.delayTime = delayTime;
-        this.scheduler = scheduler;
-        if (!isNumeric(delayTime) || delayTime < 0) {
-            this.delayTime = 0;
-        }
-        if (!scheduler || typeof scheduler.schedule !== 'function') {
-            this.scheduler = asap;
-        }
-    }
-    static create(source, delay = 0, scheduler = asap) {
-        return new SubscribeOnObservable(source, delay, scheduler);
-    }
-    static dispatch(arg) {
-        const { source, subscriber } = arg;
-        return this.add(source.subscribe(subscriber));
-    }
-    _subscribe(subscriber) {
-        const delay = this.delayTime;
-        const source = this.source;
-        const scheduler = this.scheduler;
-        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {
-            source, subscriber
-        });
-    }
-}
-//# sourceMappingURL=SubscribeOnObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map
deleted file mode 100644
index f369182..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscribeOnObservable.js","sources":["../../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C,MAAM,OAAO,qBAAyB,SAAQ,UAAa;IAYzD,YAAmB,MAAqB,EACpB,YAAoB,CAAC,EACrB,YAA2B,IAAI;QACjD,KAAK,EAAE,CAAC;QAHS,WAAM,GAAN,MAAM,CAAe;QACpB,cAAS,GAAT,SAAS,CAAY;QACrB,cAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IApBD,MAAM,CAAC,MAAM,CAAI,MAAqB,EAAE,QAAgB,CAAC,EAAE,YAA2B,IAAI;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGD,MAAM,CAAC,QAAQ,CAA8B,GAAmB;QAC9D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,UAAU,CAAC,UAAyB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
deleted file mode 100644
index 6d74773..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isArray } from '../util/isArray';
-import { isScheduler } from '../util/isScheduler';
-export function bindCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return (...args) => bindCallback(callbackFunc, scheduler)(...args).pipe(map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)));
-        }
-    }
-    return function (...args) {
-        const context = this;
-        let subject;
-        const params = {
-            context,
-            subject,
-            callbackFunc,
-            scheduler,
-        };
-        return new Observable(subscriber => {
-            if (!scheduler) {
-                if (!subject) {
-                    subject = new AsyncSubject();
-                    const handler = (...innerArgs) => {
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, [...args, handler]);
-                    }
-                    catch (err) {
-                        if (canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                const state = {
-                    args, subscriber, params,
-                };
-                return scheduler.schedule(dispatch, 0, state);
-            }
-        });
-    };
-}
-function dispatch(state) {
-    const self = this;
-    const { args, subscriber, params } = state;
-    const { callbackFunc, context, scheduler } = params;
-    let { subject } = params;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject();
-        const handler = (...innerArgs) => {
-            const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-            this.add(scheduler.schedule(dispatchNext, 0, { value, subject }));
-        };
-        try {
-            callbackFunc.apply(context, [...args, handler]);
-        }
-        catch (err) {
-            subject.error(err);
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(state) {
-    const { value, subject } = state;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(state) {
-    const { err, subject } = state;
-    subject.error(err);
-}
-//# sourceMappingURL=bindCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map
deleted file mode 100644
index 205826b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4KlD,MAAM,UAAU,YAAY,CAC1B,YAAsB,EACtB,cAAuC,EACvC,SAAyB;IAEzB,IAAI,cAAc,EAAE;QAClB,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE;YAC/B,SAAS,GAAG,cAAc,CAAC;SAC5B;aAAM;YAEL,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAC5E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;SACH;KACF;IAED,OAAO,UAAqB,GAAG,IAAW;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,OAAwB,CAAC;QAC7B,MAAM,MAAM,GAAG;YACb,OAAO;YACP,OAAO;YACP,YAAY;YACZ,SAAS;SACV,CAAC;QACF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,GAAG,IAAI,YAAY,EAAK,CAAC;oBAChC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAgB,EAAE,EAAE;wBACtC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC/D,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,CAAC,CAAC;oBAEF,IAAI;wBACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;qBACjD;oBAAC,OAAO,GAAG,EAAE;wBACZ,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;4BAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACpB;6BAAM;4BACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACnB;qBACF;iBACF;gBACD,OAAO,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;aACtC;iBAAM;gBACL,MAAM,KAAK,GAAqB;oBAC9B,IAAI,EAAE,UAAU,EAAE,MAAM;iBACzB,CAAC;gBACF,OAAO,SAAS,CAAC,QAAQ,CAAmB,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;aACjE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAeD,SAAS,QAAQ,CAA6C,KAAuB;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACpD,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,YAAY,EAAK,CAAC;QAEjD,MAAM,OAAO,GAAG,CAAC,GAAG,SAAgB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAe,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,IAAI;YACF,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SACjD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;KACF;IAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC;AAOD,SAAS,YAAY,CAAyC,KAAmB;IAC/E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAOD,SAAS,aAAa,CAA0C,KAAoB;IAClF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js
deleted file mode 100644
index 81ca5a6..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js
+++ /dev/null
@@ -1,93 +0,0 @@
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isScheduler } from '../util/isScheduler';
-import { isArray } from '../util/isArray';
-export function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return (...args) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));
-        }
-    }
-    return function (...args) {
-        const params = {
-            subject: undefined,
-            args,
-            callbackFunc,
-            scheduler,
-            context: this,
-        };
-        return new Observable(subscriber => {
-            const { context } = params;
-            let { subject } = params;
-            if (!scheduler) {
-                if (!subject) {
-                    subject = params.subject = new AsyncSubject();
-                    const handler = (...innerArgs) => {
-                        const err = innerArgs.shift();
-                        if (err) {
-                            subject.error(err);
-                            return;
-                        }
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, [...args, handler]);
-                    }
-                    catch (err) {
-                        if (canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                return scheduler.schedule(dispatch, 0, { params, subscriber, context });
-            }
-        });
-    };
-}
-function dispatch(state) {
-    const { params, subscriber, context } = state;
-    const { callbackFunc, args, scheduler } = params;
-    let subject = params.subject;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject();
-        const handler = (...innerArgs) => {
-            const err = innerArgs.shift();
-            if (err) {
-                this.add(scheduler.schedule(dispatchError, 0, { err, subject }));
-            }
-            else {
-                const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-                this.add(scheduler.schedule(dispatchNext, 0, { value, subject }));
-            }
-        };
-        try {
-            callbackFunc.apply(context, [...args, handler]);
-        }
-        catch (err) {
-            this.add(scheduler.schedule(dispatchError, 0, { err, subject }));
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(arg) {
-    const { value, subject } = arg;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(arg) {
-    const { err, subject } = arg;
-    subject.error(err);
-}
-//# sourceMappingURL=bindNodeCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map
deleted file mode 100644
index 6382afd..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js
deleted file mode 100644
index 975f03e..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import { isScheduler } from '../util/isScheduler';
-import { isArray } from '../util/isArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { fromArray } from './fromArray';
-const NONE = {};
-export function combineLatest(...observables) {
-    let resultSelector = null;
-    let scheduler = null;
-    if (isScheduler(observables[observables.length - 1])) {
-        scheduler = observables.pop();
-    }
-    if (typeof observables[observables.length - 1] === 'function') {
-        resultSelector = observables.pop();
-    }
-    if (observables.length === 1 && isArray(observables[0])) {
-        observables = observables[0];
-    }
-    return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
-}
-export class CombineLatestOperator {
-    constructor(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
-    }
-}
-export class CombineLatestSubscriber extends OuterSubscriber {
-    constructor(destination, resultSelector) {
-        super(destination);
-        this.resultSelector = resultSelector;
-        this.active = 0;
-        this.values = [];
-        this.observables = [];
-    }
-    _next(observable) {
-        this.values.push(NONE);
-        this.observables.push(observable);
-    }
-    _complete() {
-        const observables = this.observables;
-        const len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            this.active = len;
-            this.toRespond = len;
-            for (let i = 0; i < len; i++) {
-                const observable = observables[i];
-                this.add(subscribeToResult(this, observable, observable, i));
-            }
-        }
-    }
-    notifyComplete(unused) {
-        if ((this.active -= 1) === 0) {
-            this.destination.complete();
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        const values = this.values;
-        const oldVal = values[outerIndex];
-        const toRespond = !this.toRespond
-            ? 0
-            : oldVal === NONE ? --this.toRespond : this.toRespond;
-        values[outerIndex] = innerValue;
-        if (toRespond === 0) {
-            if (this.resultSelector) {
-                this._tryResultSelector(values);
-            }
-            else {
-                this.destination.next(values.slice());
-            }
-        }
-    }
-    _tryResultSelector(values) {
-        let result;
-        try {
-            result = this.resultSelector.apply(this, values);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    }
-}
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map
deleted file mode 100644
index cf8569b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/concat.js b/node_modules/rxjs/_esm2015/internal/observable/concat.js
deleted file mode 100644
index f4c0fef..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/concat.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { of } from './of';
-import { concatAll } from '../operators/concatAll';
-export function concat(...observables) {
-    return concatAll()(of(...observables));
-}
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/concat.js.map b/node_modules/rxjs/_esm2015/internal/observable/concat.js.map
deleted file mode 100644
index da4d8f8..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../../src/internal/observable/concat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA2InD,MAAM,UAAU,MAAM,CAAoC,GAAG,WAAqC;IAChG,OAAO,SAAS,EAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AAC5C,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/defer.js b/node_modules/rxjs/_esm2015/internal/observable/defer.js
deleted file mode 100644
index c730f4c..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/defer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Observable } from '../Observable';
-import { from } from './from';
-import { empty } from './empty';
-export function defer(observableFactory) {
-    return new Observable(subscriber => {
-        let input;
-        try {
-            input = observableFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        const source = input ? from(input) : empty();
-        return source.subscribe(subscriber);
-    });
-}
-//# sourceMappingURL=defer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/defer.js.map b/node_modules/rxjs/_esm2015/internal/observable/defer.js.map
deleted file mode 100644
index 2f60654..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/defer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defer.js","sources":["../../../src/internal/observable/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAmDhC,MAAM,UAAU,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,UAAU,CAAqB,UAAU,CAAC,EAAE;QACrD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js
deleted file mode 100644
index ceb15ff..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js
+++ /dev/null
@@ -1,359 +0,0 @@
-import { root } from '../../util/root';
-import { Observable } from '../../Observable';
-import { Subscriber } from '../../Subscriber';
-import { map } from '../../operators/map';
-function getCORSRequest() {
-    if (root.XMLHttpRequest) {
-        return new root.XMLHttpRequest();
-    }
-    else if (!!root.XDomainRequest) {
-        return new root.XDomainRequest();
-    }
-    else {
-        throw new Error('CORS is not supported by your browser');
-    }
-}
-function getXMLHttpRequest() {
-    if (root.XMLHttpRequest) {
-        return new root.XMLHttpRequest();
-    }
-    else {
-        let progId;
-        try {
-            const progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-            for (let i = 0; i < 3; i++) {
-                try {
-                    progId = progIds[i];
-                    if (new root.ActiveXObject(progId)) {
-                        break;
-                    }
-                }
-                catch (e) {
-                }
-            }
-            return new root.ActiveXObject(progId);
-        }
-        catch (e) {
-            throw new Error('XMLHttpRequest is not supported by your browser');
-        }
-    }
-}
-export function ajaxGet(url, headers = null) {
-    return new AjaxObservable({ method: 'GET', url, headers });
-}
-export function ajaxPost(url, body, headers) {
-    return new AjaxObservable({ method: 'POST', url, body, headers });
-}
-export function ajaxDelete(url, headers) {
-    return new AjaxObservable({ method: 'DELETE', url, headers });
-}
-export function ajaxPut(url, body, headers) {
-    return new AjaxObservable({ method: 'PUT', url, body, headers });
-}
-export function ajaxPatch(url, body, headers) {
-    return new AjaxObservable({ method: 'PATCH', url, body, headers });
-}
-const mapResponse = map((x, index) => x.response);
-export function ajaxGetJSON(url, headers) {
-    return mapResponse(new AjaxObservable({
-        method: 'GET',
-        url,
-        responseType: 'json',
-        headers
-    }));
-}
-export class AjaxObservable extends Observable {
-    constructor(urlOrRequest) {
-        super();
-        const request = {
-            async: true,
-            createXHR: function () {
-                return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();
-            },
-            crossDomain: true,
-            withCredentials: false,
-            headers: {},
-            method: 'GET',
-            responseType: 'json',
-            timeout: 0
-        };
-        if (typeof urlOrRequest === 'string') {
-            request.url = urlOrRequest;
-        }
-        else {
-            for (const prop in urlOrRequest) {
-                if (urlOrRequest.hasOwnProperty(prop)) {
-                    request[prop] = urlOrRequest[prop];
-                }
-            }
-        }
-        this.request = request;
-    }
-    _subscribe(subscriber) {
-        return new AjaxSubscriber(subscriber, this.request);
-    }
-}
-AjaxObservable.create = (() => {
-    const create = (urlOrRequest) => {
-        return new AjaxObservable(urlOrRequest);
-    };
-    create.get = ajaxGet;
-    create.post = ajaxPost;
-    create.delete = ajaxDelete;
-    create.put = ajaxPut;
-    create.patch = ajaxPatch;
-    create.getJSON = ajaxGetJSON;
-    return create;
-})();
-export class AjaxSubscriber extends Subscriber {
-    constructor(destination, request) {
-        super(destination);
-        this.request = request;
-        this.done = false;
-        const headers = request.headers = request.headers || {};
-        if (!request.crossDomain && !this.getHeader(headers, 'X-Requested-With')) {
-            headers['X-Requested-With'] = 'XMLHttpRequest';
-        }
-        let contentTypeHeader = this.getHeader(headers, 'Content-Type');
-        if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {
-            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
-        }
-        request.body = this.serializeBody(request.body, this.getHeader(request.headers, 'Content-Type'));
-        this.send();
-    }
-    next(e) {
-        this.done = true;
-        const { xhr, request, destination } = this;
-        let result;
-        try {
-            result = new AjaxResponse(e, xhr, request);
-        }
-        catch (err) {
-            return destination.error(err);
-        }
-        destination.next(result);
-    }
-    send() {
-        const { request, request: { user, method, url, async, password, headers, body } } = this;
-        try {
-            const xhr = this.xhr = request.createXHR();
-            this.setupEvents(xhr, request);
-            if (user) {
-                xhr.open(method, url, async, user, password);
-            }
-            else {
-                xhr.open(method, url, async);
-            }
-            if (async) {
-                xhr.timeout = request.timeout;
-                xhr.responseType = request.responseType;
-            }
-            if ('withCredentials' in xhr) {
-                xhr.withCredentials = !!request.withCredentials;
-            }
-            this.setHeaders(xhr, headers);
-            if (body) {
-                xhr.send(body);
-            }
-            else {
-                xhr.send();
-            }
-        }
-        catch (err) {
-            this.error(err);
-        }
-    }
-    serializeBody(body, contentType) {
-        if (!body || typeof body === 'string') {
-            return body;
-        }
-        else if (root.FormData && body instanceof root.FormData) {
-            return body;
-        }
-        if (contentType) {
-            const splitIndex = contentType.indexOf(';');
-            if (splitIndex !== -1) {
-                contentType = contentType.substring(0, splitIndex);
-            }
-        }
-        switch (contentType) {
-            case 'application/x-www-form-urlencoded':
-                return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&');
-            case 'application/json':
-                return JSON.stringify(body);
-            default:
-                return body;
-        }
-    }
-    setHeaders(xhr, headers) {
-        for (let key in headers) {
-            if (headers.hasOwnProperty(key)) {
-                xhr.setRequestHeader(key, headers[key]);
-            }
-        }
-    }
-    getHeader(headers, headerName) {
-        for (let key in headers) {
-            if (key.toLowerCase() === headerName.toLowerCase()) {
-                return headers[key];
-            }
-        }
-        return undefined;
-    }
-    setupEvents(xhr, request) {
-        const progressSubscriber = request.progressSubscriber;
-        function xhrTimeout(e) {
-            const { subscriber, progressSubscriber, request } = xhrTimeout;
-            if (progressSubscriber) {
-                progressSubscriber.error(e);
-            }
-            let error;
-            try {
-                error = new AjaxTimeoutError(this, request);
-            }
-            catch (err) {
-                error = err;
-            }
-            subscriber.error(error);
-        }
-        xhr.ontimeout = xhrTimeout;
-        xhrTimeout.request = request;
-        xhrTimeout.subscriber = this;
-        xhrTimeout.progressSubscriber = progressSubscriber;
-        if (xhr.upload && 'withCredentials' in xhr) {
-            if (progressSubscriber) {
-                let xhrProgress;
-                xhrProgress = function (e) {
-                    const { progressSubscriber } = xhrProgress;
-                    progressSubscriber.next(e);
-                };
-                if (root.XDomainRequest) {
-                    xhr.onprogress = xhrProgress;
-                }
-                else {
-                    xhr.upload.onprogress = xhrProgress;
-                }
-                xhrProgress.progressSubscriber = progressSubscriber;
-            }
-            let xhrError;
-            xhrError = function (e) {
-                const { progressSubscriber, subscriber, request } = xhrError;
-                if (progressSubscriber) {
-                    progressSubscriber.error(e);
-                }
-                let error;
-                try {
-                    error = new AjaxError('ajax error', this, request);
-                }
-                catch (err) {
-                    error = err;
-                }
-                subscriber.error(error);
-            };
-            xhr.onerror = xhrError;
-            xhrError.request = request;
-            xhrError.subscriber = this;
-            xhrError.progressSubscriber = progressSubscriber;
-        }
-        function xhrReadyStateChange(e) {
-            return;
-        }
-        xhr.onreadystatechange = xhrReadyStateChange;
-        xhrReadyStateChange.subscriber = this;
-        xhrReadyStateChange.progressSubscriber = progressSubscriber;
-        xhrReadyStateChange.request = request;
-        function xhrLoad(e) {
-            const { subscriber, progressSubscriber, request } = xhrLoad;
-            if (this.readyState === 4) {
-                let status = this.status === 1223 ? 204 : this.status;
-                let response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);
-                if (status === 0) {
-                    status = response ? 200 : 0;
-                }
-                if (status < 400) {
-                    if (progressSubscriber) {
-                        progressSubscriber.complete();
-                    }
-                    subscriber.next(e);
-                    subscriber.complete();
-                }
-                else {
-                    if (progressSubscriber) {
-                        progressSubscriber.error(e);
-                    }
-                    let error;
-                    try {
-                        error = new AjaxError('ajax error ' + status, this, request);
-                    }
-                    catch (err) {
-                        error = err;
-                    }
-                    subscriber.error(error);
-                }
-            }
-        }
-        xhr.onload = xhrLoad;
-        xhrLoad.subscriber = this;
-        xhrLoad.progressSubscriber = progressSubscriber;
-        xhrLoad.request = request;
-    }
-    unsubscribe() {
-        const { done, xhr } = this;
-        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {
-            xhr.abort();
-        }
-        super.unsubscribe();
-    }
-}
-export class AjaxResponse {
-    constructor(originalEvent, xhr, request) {
-        this.originalEvent = originalEvent;
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-    }
-}
-const AjaxErrorImpl = (() => {
-    function AjaxErrorImpl(message, xhr, request) {
-        Error.call(this);
-        this.message = message;
-        this.name = 'AjaxError';
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-        return this;
-    }
-    AjaxErrorImpl.prototype = Object.create(Error.prototype);
-    return AjaxErrorImpl;
-})();
-export const AjaxError = AjaxErrorImpl;
-function parseJson(xhr) {
-    if ('response' in xhr) {
-        return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');
-    }
-    else {
-        return JSON.parse(xhr.responseText || 'null');
-    }
-}
-function parseXhrResponse(responseType, xhr) {
-    switch (responseType) {
-        case 'json':
-            return parseJson(xhr);
-        case 'xml':
-            return xhr.responseXML;
-        case 'text':
-        default:
-            return ('response' in xhr) ? xhr.response : xhr.responseText;
-    }
-}
-function AjaxTimeoutErrorImpl(xhr, request) {
-    AjaxError.call(this, 'ajax timeout', xhr, request);
-    this.name = 'AjaxTimeoutError';
-    return this;
-}
-export const AjaxTimeoutError = AjaxTimeoutErrorImpl;
-//# sourceMappingURL=AjaxObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map
deleted file mode 100644
index 2f20380..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AjaxObservable.js","sources":["../../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAmB1C,SAAS,cAAc;IACrB,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;KAClC;SAAM,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;QAChC,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;KAClC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;KAClC;SAAM;QACL,IAAI,MAAc,CAAC;QACnB,IAAI;YACF,MAAM,OAAO,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;YAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,IAAI;oBACF,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;wBAClC,MAAM;qBACP;iBACF;gBAAC,OAAO,CAAC,EAAE;iBAEX;aACF;YACD,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;SACpE;KACF;AACH,CAAC;AAYD,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,UAAkB,IAAI;IACzD,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAU,EAAE,OAAgB;IAChE,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAgB;IACtD,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,IAAU,EAAE,OAAgB;IAC/D,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,IAAU,EAAE,OAAgB;IACjE,OAAO,IAAI,cAAc,CAAe,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAe,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAExE,MAAM,UAAU,WAAW,CAAI,GAAW,EAAE,OAAgB;IAC1D,OAAO,WAAW,CAChB,IAAI,cAAc,CAAe;QAC/B,MAAM,EAAE,KAAK;QACb,GAAG;QACH,YAAY,EAAE,MAAM;QACpB,OAAO;KACR,CAAC,CACH,CAAC;AACJ,CAAC;AAOD,MAAM,OAAO,cAAkB,SAAQ,UAAa;IAiDlD,YAAY,YAAkC;QAC5C,KAAK,EAAE,CAAC;QAER,MAAM,OAAO,GAAgB;YAC3B,KAAK,EAAE,IAAI;YACX,SAAS,EAAE;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACnE,CAAC;YACD,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC;SAC5B;aAAM;YACL,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;gBAC/B,IAAI,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBACrC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;iBACpC;aACF;SACF;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;;AAjDM,qBAAM,GAAuB,CAAC,GAAG,EAAE;IACxC,MAAM,MAAM,GAAQ,CAAC,YAAkC,EAAE,EAAE;QACzD,OAAO,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC;IACrB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC;IACrB,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;IAE7B,OAA2B,MAAM,CAAC;AACpC,CAAC,CAAC,EAAE,CAAC;AA4CP,MAAM,OAAO,cAAkB,SAAQ,UAAiB;IAItD,YAAY,WAA0B,EAAS,OAAoB;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD0B,YAAO,GAAP,OAAO,CAAa;QAF3D,SAAI,GAAY,KAAK,CAAC;QAK5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAGxD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE;YACxE,OAAO,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;SAChD;QAGD,IAAI,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAChE,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;YAC1H,OAAO,CAAC,cAAc,CAAC,GAAG,kDAAkD,CAAC;SAC9E;QAGD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAEjG,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,CAAQ;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,MAAM,CAAC;QACX,IAAI;YACF,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEO,IAAI;QACV,MAAM,EACJ,OAAO,EACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAC/D,GAAG,IAAI,CAAC;QACT,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAM3C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE/B,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC9C;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aAC9B;YAGD,IAAI,KAAK,EAAE;gBACT,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC9B,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,YAAmB,CAAC;aAChD;YAED,IAAI,iBAAiB,IAAI,GAAG,EAAE;gBAC5B,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;aACjD;YAGD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAG9B,IAAI,IAAI,EAAE;gBACR,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChB;iBAAM;gBACL,GAAG,CAAC,IAAI,EAAE,CAAC;aACZ;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACjB;IACH,CAAC;IAEO,aAAa,CAAC,IAAS,EAAE,WAAoB;QACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,YAAY,IAAI,CAAC,QAAQ,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;QAED,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;gBACrB,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;aACpD;SACF;QAED,QAAQ,WAAW,EAAE;YACnB,KAAK,mCAAmC;gBACtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/G,KAAK,kBAAkB;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;IAEO,UAAU,CAAC,GAAmB,EAAE,OAAe;QACrD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC/B,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAEO,SAAS,CAAC,OAAW,EAAE,UAAkB;QAC/C,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;gBAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;aACrB;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,WAAW,CAAC,GAAmB,EAAE,OAAoB;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAEtD,SAAS,UAAU,CAAuB,CAAgB;YACxD,MAAM,EAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAS,UAAW,CAAC;YACrE,IAAI,kBAAkB,EAAE;gBACtB,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC7B;YACD,IAAI,KAAK,CAAC;YACV,IAAI;gBACF,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aAC7C;YAAC,OAAO,GAAG,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACb;YACD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC;QACrB,UAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,UAAW,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,UAAW,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC1D,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB,IAAI,GAAG,EAAE;YAC1C,IAAI,kBAAkB,EAAE;gBACtB,IAAI,WAAuC,CAAC;gBAC5C,WAAW,GAAG,UAAS,CAAgB;oBACrC,MAAM,EAAE,kBAAkB,EAAE,GAAS,WAAY,CAAC;oBAClD,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC,CAAC;gBACF,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC;iBAC9B;qBAAM;oBACL,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC;iBACrC;gBACK,WAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;aAC5D;YACD,IAAI,QAA0B,CAAC;YAC/B,QAAQ,GAAG,UAA+B,CAAa;gBACrD,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,GAAS,QAAS,CAAC;gBACpE,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC7B;gBACD,IAAI,KAAK,CAAC;gBACV,IAAI;oBACF,KAAK,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;iBACpD;gBAAC,OAAO,GAAG,EAAE;oBACZ,KAAK,GAAG,GAAG,CAAC;iBACb;gBACD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC;YACF,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;YACjB,QAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAC5B,QAAS,CAAC,UAAU,GAAG,IAAI,CAAC;YAC5B,QAAS,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SACzD;QAED,SAAS,mBAAmB,CAAuB,CAAQ;YACzD,OAAO;QACT,CAAC;QACD,GAAG,CAAC,kBAAkB,GAAG,mBAAmB,CAAC;QACvC,mBAAoB,CAAC,UAAU,GAAG,IAAI,CAAC;QACvC,mBAAoB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7D,mBAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;QAE7C,SAAS,OAAO,CAAuB,CAAQ;YAC7C,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAS,OAAQ,CAAC;YACnE,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;gBAEzB,IAAI,MAAM,GAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC9D,IAAI,QAAQ,GAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAE,CACnD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAKvD,IAAI,MAAM,KAAK,CAAC,EAAE;oBAChB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7B;gBAGD,IAAI,MAAM,GAAG,GAAG,EAAE;oBAChB,IAAI,kBAAkB,EAAE;wBACtB,kBAAkB,CAAC,QAAQ,EAAE,CAAC;qBAC/B;oBACD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,IAAI,kBAAkB,EAAE;wBACtB,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC7B;oBACD,IAAI,KAAK,CAAC;oBACV,IAAI;wBACF,KAAK,GAAG,IAAI,SAAS,CAAC,aAAa,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBAC9D;oBAAC,OAAO,GAAG,EAAE;wBACZ,KAAK,GAAG,GAAG,CAAC;qBACb;oBACD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACzB;aACF;QACH,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;QACf,OAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,OAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACjD,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,WAAW;QACT,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE;YAC3E,GAAG,CAAC,KAAK,EAAE,CAAC;SACb;QACD,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;CACF;AASD,MAAM,OAAO,YAAY;IAavB,YAAmB,aAAoB,EAAS,GAAmB,EAAS,OAAoB;QAA7E,kBAAa,GAAb,aAAa,CAAO;QAAS,QAAG,GAAH,GAAG,CAAgB;QAAS,YAAO,GAAP,OAAO,CAAa;QAC9F,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;CACF;AAgCD,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IAC1B,SAAS,aAAa,CAAY,OAAe,EAAE,GAAmB,EAAE,OAAoB;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,CAAC,MAAM,SAAS,GAAkB,aAAoB,CAAC;AAE7D,SAAS,SAAS,CAAC,GAAmB;IAGpC,IAAI,UAAU,IAAK,GAAW,EAAE;QAE9B,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;KACjG;SAAM;QACL,OAAO,IAAI,CAAC,KAAK,CAAE,GAAW,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;KACxD;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB,EAAE,GAAmB;IACjE,QAAQ,YAAY,EAAE;QACpB,KAAK,MAAM;YACP,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,WAAW,CAAC;QACzB,KAAK,MAAM,CAAC;QACZ;YAGI,OAAQ,CAAC,UAAU,IAAK,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;KAC9E;AACH,CAAC;AASD,SAAS,oBAAoB,CAAY,GAAmB,EAAE,OAAoB;IAChF,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,CAAC,MAAM,gBAAgB,GAAyB,oBAA2B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js
deleted file mode 100644
index 357d29b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js
+++ /dev/null
@@ -1,209 +0,0 @@
-import { Subject, AnonymousSubject } from '../../Subject';
-import { Subscriber } from '../../Subscriber';
-import { Observable } from '../../Observable';
-import { Subscription } from '../../Subscription';
-import { ReplaySubject } from '../../ReplaySubject';
-const DEFAULT_WEBSOCKET_CONFIG = {
-    url: '',
-    deserializer: (e) => JSON.parse(e.data),
-    serializer: (value) => JSON.stringify(value),
-};
-const WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
-export class WebSocketSubject extends AnonymousSubject {
-    constructor(urlConfigOrSource, destination) {
-        super();
-        if (urlConfigOrSource instanceof Observable) {
-            this.destination = destination;
-            this.source = urlConfigOrSource;
-        }
-        else {
-            const config = this._config = Object.assign({}, DEFAULT_WEBSOCKET_CONFIG);
-            this._output = new Subject();
-            if (typeof urlConfigOrSource === 'string') {
-                config.url = urlConfigOrSource;
-            }
-            else {
-                for (let key in urlConfigOrSource) {
-                    if (urlConfigOrSource.hasOwnProperty(key)) {
-                        config[key] = urlConfigOrSource[key];
-                    }
-                }
-            }
-            if (!config.WebSocketCtor && WebSocket) {
-                config.WebSocketCtor = WebSocket;
-            }
-            else if (!config.WebSocketCtor) {
-                throw new Error('no WebSocket constructor can be found');
-            }
-            this.destination = new ReplaySubject();
-        }
-    }
-    lift(operator) {
-        const sock = new WebSocketSubject(this._config, this.destination);
-        sock.operator = operator;
-        sock.source = this;
-        return sock;
-    }
-    _resetState() {
-        this._socket = null;
-        if (!this.source) {
-            this.destination = new ReplaySubject();
-        }
-        this._output = new Subject();
-    }
-    multiplex(subMsg, unsubMsg, messageFilter) {
-        const self = this;
-        return new Observable((observer) => {
-            try {
-                self.next(subMsg());
-            }
-            catch (err) {
-                observer.error(err);
-            }
-            const subscription = self.subscribe(x => {
-                try {
-                    if (messageFilter(x)) {
-                        observer.next(x);
-                    }
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-            }, err => observer.error(err), () => observer.complete());
-            return () => {
-                try {
-                    self.next(unsubMsg());
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-                subscription.unsubscribe();
-            };
-        });
-    }
-    _connectSocket() {
-        const { WebSocketCtor, protocol, url, binaryType } = this._config;
-        const observer = this._output;
-        let socket = null;
-        try {
-            socket = protocol ?
-                new WebSocketCtor(url, protocol) :
-                new WebSocketCtor(url);
-            this._socket = socket;
-            if (binaryType) {
-                this._socket.binaryType = binaryType;
-            }
-        }
-        catch (e) {
-            observer.error(e);
-            return;
-        }
-        const subscription = new Subscription(() => {
-            this._socket = null;
-            if (socket && socket.readyState === 1) {
-                socket.close();
-            }
-        });
-        socket.onopen = (e) => {
-            const { _socket } = this;
-            if (!_socket) {
-                socket.close();
-                this._resetState();
-                return;
-            }
-            const { openObserver } = this._config;
-            if (openObserver) {
-                openObserver.next(e);
-            }
-            const queue = this.destination;
-            this.destination = Subscriber.create((x) => {
-                if (socket.readyState === 1) {
-                    try {
-                        const { serializer } = this._config;
-                        socket.send(serializer(x));
-                    }
-                    catch (e) {
-                        this.destination.error(e);
-                    }
-                }
-            }, (e) => {
-                const { closingObserver } = this._config;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                if (e && e.code) {
-                    socket.close(e.code, e.reason);
-                }
-                else {
-                    observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
-                }
-                this._resetState();
-            }, () => {
-                const { closingObserver } = this._config;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                socket.close();
-                this._resetState();
-            });
-            if (queue && queue instanceof ReplaySubject) {
-                subscription.add(queue.subscribe(this.destination));
-            }
-        };
-        socket.onerror = (e) => {
-            this._resetState();
-            observer.error(e);
-        };
-        socket.onclose = (e) => {
-            this._resetState();
-            const { closeObserver } = this._config;
-            if (closeObserver) {
-                closeObserver.next(e);
-            }
-            if (e.wasClean) {
-                observer.complete();
-            }
-            else {
-                observer.error(e);
-            }
-        };
-        socket.onmessage = (e) => {
-            try {
-                const { deserializer } = this._config;
-                observer.next(deserializer(e));
-            }
-            catch (err) {
-                observer.error(err);
-            }
-        };
-    }
-    _subscribe(subscriber) {
-        const { source } = this;
-        if (source) {
-            return source.subscribe(subscriber);
-        }
-        if (!this._socket) {
-            this._connectSocket();
-        }
-        this._output.subscribe(subscriber);
-        subscriber.add(() => {
-            const { _socket } = this;
-            if (this._output.observers.length === 0) {
-                if (_socket && _socket.readyState === 1) {
-                    _socket.close();
-                }
-                this._resetState();
-            }
-        });
-        return subscriber;
-    }
-    unsubscribe() {
-        const { _socket } = this;
-        if (_socket && _socket.readyState === 1) {
-            _socket.close();
-        }
-        this._resetState();
-        super.unsubscribe();
-    }
-}
-//# sourceMappingURL=WebSocketSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map
deleted file mode 100644
index 46e5ddd..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WebSocketSubject.js","sources":["../../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAsIpD,MAAM,wBAAwB,GAAgC;IAC5D,GAAG,EAAE,EAAE;IACP,YAAY,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;CAClD,CAAC;AAEF,MAAM,qCAAqC,GACzC,mIAAmI,CAAC;AAItI,MAAM,OAAO,gBAAoB,SAAQ,gBAAmB;IAS1D,YAAY,iBAAqE,EAAE,WAAyB;QAC1G,KAAK,EAAE,CAAC;QACR,IAAI,iBAAiB,YAAY,UAAU,EAAE;YAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,iBAAkC,CAAC;SAClD;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,qBAAQ,wBAAwB,CAAE,CAAC;YAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAK,CAAC;YAChC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,MAAM,CAAC,GAAG,GAAG,iBAAiB,CAAC;aAChC;iBAAM;gBACL,KAAK,IAAI,GAAG,IAAI,iBAAiB,EAAE;oBACjC,IAAI,iBAAiB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;wBACzC,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;qBACtC;iBACF;aACF;YAED,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,EAAE;gBACtC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;aAClC;iBAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,EAAE,CAAC;SACxC;IACH,CAAC;IAED,IAAI,CAAI,QAAwB;QAC9B,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAI,IAAI,CAAC,OAAsC,EAAQ,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1G,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,EAAE,CAAC;SACxC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAK,CAAC;IAClC,CAAC;IAoBD,SAAS,CAAC,MAAiB,EAAE,QAAmB,EAAE,aAAoC;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,UAAU,CAAC,CAAC,QAAuB,EAAE,EAAE;YAChD,IAAI;gBACF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;aACrB;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrB;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACtC,IAAI;oBACF,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;wBACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAClB;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrB;YACH,CAAC,EACC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAC1B,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE7B,OAAO,GAAG,EAAE;gBACV,IAAI;oBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACvB;gBAAC,OAAO,GAAG,EAAE;oBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACrB;gBACD,YAAY,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9B,IAAI,MAAM,GAAc,IAAI,CAAC;QAC7B,IAAI;YACF,MAAM,GAAG,QAAQ,CAAC,CAAC;gBACjB,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAClC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;aACtC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;SACR;QAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;gBACrC,MAAM,CAAC,KAAK,EAAE,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,GAAG,CAAC,CAAQ,EAAE,EAAE;YAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO;aACR;YACD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACtC,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACtB;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAE/B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE;gBACJ,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;oBAC3B,IAAI;wBACF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;wBACpC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1B;oBAAC,OAAO,CAAC,EAAE;wBACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC3B;iBACF;YACH,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;gBACJ,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBACzC,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;iBAChC;qBAAM;oBACL,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC,CAAC;iBACtE;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EACD,GAAG,EAAE;gBACH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBACzC,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;gBACD,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CACiB,CAAC;YAErB,IAAI,KAAK,IAAI,KAAK,YAAY,aAAa,EAAE;gBAC3C,YAAY,CAAC,GAAG,CAAoB,KAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aACzE;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAQ,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAa,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACvC,IAAI,aAAa,EAAE;gBACjB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB;YACD,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;iBAAM;gBACL,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YACrC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;YAAC,OAAO,GAAG,EAAE;gBACZ,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;IACJ,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACnC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;oBACvC,OAAO,CAAC,KAAK,EAAE,CAAC;iBACjB;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,WAAW;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;YACvC,OAAO,CAAC,KAAK,EAAE,CAAC;SACjB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js
deleted file mode 100644
index 3ac14f2..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { AjaxObservable } from './AjaxObservable';
-export const ajax = (() => AjaxObservable.create)();
-//# sourceMappingURL=ajax.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map
deleted file mode 100644
index 4803b49..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajax.js","sources":["../../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAiFxE,MAAM,CAAC,MAAM,IAAI,GAAuB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js
deleted file mode 100644
index a999d8b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Observable } from '../../Observable';
-export function fromFetch(input, init) {
-    return new Observable(subscriber => {
-        const controller = new AbortController();
-        const signal = controller.signal;
-        let outerSignalHandler;
-        let abortable = true;
-        let unsubscribed = false;
-        if (init) {
-            if (init.signal) {
-                if (init.signal.aborted) {
-                    controller.abort();
-                }
-                else {
-                    outerSignalHandler = () => {
-                        if (!signal.aborted) {
-                            controller.abort();
-                        }
-                    };
-                    init.signal.addEventListener('abort', outerSignalHandler);
-                }
-            }
-            init = Object.assign({}, init, { signal });
-        }
-        else {
-            init = { signal };
-        }
-        fetch(input, init).then(response => {
-            abortable = false;
-            subscriber.next(response);
-            subscriber.complete();
-        }).catch(err => {
-            abortable = false;
-            if (!unsubscribed) {
-                subscriber.error(err);
-            }
-        });
-        return () => {
-            unsubscribed = true;
-            if (abortable) {
-                controller.abort();
-            }
-        };
-    });
-}
-//# sourceMappingURL=fetch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map
deleted file mode 100644
index ef2034c..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fetch.js","sources":["../../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoD9C,MAAM,UAAU,SAAS,CAAC,KAAuB,EAAE,IAAkB;IACnE,OAAO,IAAI,UAAU,CAAW,UAAU,CAAC,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,kBAA8B,CAAC;QACnC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,kBAAkB,GAAG,GAAG,EAAE;wBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;iBAC3D;aACF;YACD,IAAI,qBAAQ,IAAI,IAAE,MAAM,GAAE,CAAC;SAC5B;aAAM;YACL,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;SACnB;QAED,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACjC,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACb,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js
deleted file mode 100644
index 73a51ab..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { WebSocketSubject } from './WebSocketSubject';
-export function webSocket(urlConfigOrSource) {
-    return new WebSocketSubject(urlConfigOrSource);
-}
-//# sourceMappingURL=webSocket.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map
deleted file mode 100644
index 821e4e6..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"webSocket.js","sources":["../../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAyJ9E,MAAM,UAAU,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,gBAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/empty.js b/node_modules/rxjs/_esm2015/internal/observable/empty.js
deleted file mode 100644
index 6cbbbdc..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/empty.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Observable } from '../Observable';
-export const EMPTY = new Observable(subscriber => subscriber.complete());
-export function empty(scheduler) {
-    return scheduler ? emptyScheduled(scheduler) : EMPTY;
-}
-function emptyScheduled(scheduler) {
-    return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));
-}
-//# sourceMappingURL=empty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/empty.js.map b/node_modules/rxjs/_esm2015/internal/observable/empty.js.map
deleted file mode 100644
index 34f52c9..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/empty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"empty.js","sources":["../../../src/internal/observable/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAsDhF,MAAM,UAAU,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,UAAU,CAAQ,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js
deleted file mode 100644
index ca915a1..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { map } from '../operators/map';
-import { isObject } from '../util/isObject';
-import { from } from './from';
-export function forkJoin(...sources) {
-    if (sources.length === 1) {
-        const first = sources[0];
-        if (isArray(first)) {
-            return forkJoinInternal(first, null);
-        }
-        if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {
-            const keys = Object.keys(first);
-            return forkJoinInternal(keys.map(key => first[key]), keys);
-        }
-    }
-    if (typeof sources[sources.length - 1] === 'function') {
-        const resultSelector = sources.pop();
-        sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;
-        return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));
-    }
-    return forkJoinInternal(sources, null);
-}
-function forkJoinInternal(sources, keys) {
-    return new Observable(subscriber => {
-        const len = sources.length;
-        if (len === 0) {
-            subscriber.complete();
-            return;
-        }
-        const values = new Array(len);
-        let completed = 0;
-        let emitted = 0;
-        for (let i = 0; i < len; i++) {
-            const source = from(sources[i]);
-            let hasValue = false;
-            subscriber.add(source.subscribe({
-                next: value => {
-                    if (!hasValue) {
-                        hasValue = true;
-                        emitted++;
-                    }
-                    values[i] = value;
-                },
-                error: err => subscriber.error(err),
-                complete: () => {
-                    completed++;
-                    if (completed === len || !hasValue) {
-                        if (emitted === len) {
-                            subscriber.next(keys ?
-                                keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :
-                                values);
-                        }
-                        subscriber.complete();
-                    }
-                }
-            }));
-        }
-    });
-}
-//# sourceMappingURL=forkJoin.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map
deleted file mode 100644
index f853804..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forkJoin.js","sources":["../../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/from.js b/node_modules/rxjs/_esm2015/internal/observable/from.js
deleted file mode 100644
index 8dfff4e..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/from.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeTo } from '../util/subscribeTo';
-import { scheduled } from '../scheduled/scheduled';
-export function from(input, scheduler) {
-    if (!scheduler) {
-        if (input instanceof Observable) {
-            return input;
-        }
-        return new Observable(subscribeTo(input));
-    }
-    else {
-        return scheduled(input, scheduler);
-    }
-}
-//# sourceMappingURL=from.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/from.js.map b/node_modules/rxjs/_esm2015/internal/observable/from.js.map
deleted file mode 100644
index d0b7a0a..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/from.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"from.js","sources":["../../../src/internal/observable/from.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAyGnD,MAAM,UAAU,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,UAAU,CAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js
deleted file mode 100644
index b738433..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeToArray } from '../util/subscribeToArray';
-import { scheduleArray } from '../scheduled/scheduleArray';
-export function fromArray(input, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscribeToArray(input));
-    }
-    else {
-        return scheduleArray(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map
deleted file mode 100644
index 55af2ba..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromArray.js","sources":["../../../src/internal/observable/fromArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
deleted file mode 100644
index 141acce..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { map } from '../operators/map';
-const toString = (() => Object.prototype.toString)();
-export function fromEvent(target, eventName, options, resultSelector) {
-    if (isFunction(options)) {
-        resultSelector = options;
-        options = undefined;
-    }
-    if (resultSelector) {
-        return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));
-    }
-    return new Observable(subscriber => {
-        function handler(e) {
-            if (arguments.length > 1) {
-                subscriber.next(Array.prototype.slice.call(arguments));
-            }
-            else {
-                subscriber.next(e);
-            }
-        }
-        setupSubscription(target, eventName, handler, subscriber, options);
-    });
-}
-function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
-    let unsubscribe;
-    if (isEventTarget(sourceObj)) {
-        const source = sourceObj;
-        sourceObj.addEventListener(eventName, handler, options);
-        unsubscribe = () => source.removeEventListener(eventName, handler, options);
-    }
-    else if (isJQueryStyleEventEmitter(sourceObj)) {
-        const source = sourceObj;
-        sourceObj.on(eventName, handler);
-        unsubscribe = () => source.off(eventName, handler);
-    }
-    else if (isNodeStyleEventEmitter(sourceObj)) {
-        const source = sourceObj;
-        sourceObj.addListener(eventName, handler);
-        unsubscribe = () => source.removeListener(eventName, handler);
-    }
-    else if (sourceObj && sourceObj.length) {
-        for (let i = 0, len = sourceObj.length; i < len; i++) {
-            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
-        }
-    }
-    else {
-        throw new TypeError('Invalid event target');
-    }
-    subscriber.add(unsubscribe);
-}
-function isNodeStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
-}
-function isJQueryStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
-}
-function isEventTarget(sourceObj) {
-    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
-}
-//# sourceMappingURL=fromEvent.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map
deleted file mode 100644
index 41428ba..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEvent.js","sources":["../../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js
deleted file mode 100644
index e9e5935..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { map } from '../operators/map';
-export function fromEventPattern(addHandler, removeHandler, resultSelector) {
-    if (resultSelector) {
-        return fromEventPattern(addHandler, removeHandler).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));
-    }
-    return new Observable(subscriber => {
-        const handler = (...e) => subscriber.next(e.length === 1 ? e[0] : e);
-        let retValue;
-        try {
-            retValue = addHandler(handler);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!isFunction(removeHandler)) {
-            return undefined;
-        }
-        return () => removeHandler(handler, retValue);
-    });
-}
-//# sourceMappingURL=fromEventPattern.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map
deleted file mode 100644
index 976454a..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEventPattern.js","sources":["../../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAwIvC,MAAM,UAAU,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,UAAU,CAAU,UAAU,CAAC,EAAE;QAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js
deleted file mode 100644
index 4788d58..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeToIterable } from '../util/subscribeToIterable';
-import { scheduleIterable } from '../scheduled/scheduleIterable';
-export function fromIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    if (!scheduler) {
-        return new Observable(subscribeToIterable(input));
-    }
-    else {
-        return scheduleIterable(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map
deleted file mode 100644
index f150bb3..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromIterable.js","sources":["../../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js
deleted file mode 100644
index 127086c..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeToPromise } from '../util/subscribeToPromise';
-import { schedulePromise } from '../scheduled/schedulePromise';
-export function fromPromise(input, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscribeToPromise(input));
-    }
-    else {
-        return schedulePromise(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map
deleted file mode 100644
index d695e5b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromPromise.js","sources":["../../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/generate.js b/node_modules/rxjs/_esm2015/internal/observable/generate.js
deleted file mode 100644
index 6f07fa1..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/generate.js
+++ /dev/null
@@ -1,124 +0,0 @@
-import { Observable } from '../Observable';
-import { identity } from '../util/identity';
-import { isScheduler } from '../util/isScheduler';
-export function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
-    let resultSelector;
-    let initialState;
-    if (arguments.length == 1) {
-        const options = initialStateOrOptions;
-        initialState = options.initialState;
-        condition = options.condition;
-        iterate = options.iterate;
-        resultSelector = options.resultSelector || identity;
-        scheduler = options.scheduler;
-    }
-    else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {
-        initialState = initialStateOrOptions;
-        resultSelector = identity;
-        scheduler = resultSelectorOrObservable;
-    }
-    else {
-        initialState = initialStateOrOptions;
-        resultSelector = resultSelectorOrObservable;
-    }
-    return new Observable(subscriber => {
-        let state = initialState;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                subscriber,
-                iterate,
-                condition,
-                resultSelector,
-                state
-            });
-        }
-        do {
-            if (condition) {
-                let conditionResult;
-                try {
-                    conditionResult = condition(state);
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return undefined;
-                }
-                if (!conditionResult) {
-                    subscriber.complete();
-                    break;
-                }
-            }
-            let value;
-            try {
-                value = resultSelector(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            subscriber.next(value);
-            if (subscriber.closed) {
-                break;
-            }
-            try {
-                state = iterate(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-        } while (true);
-        return undefined;
-    });
-}
-function dispatch(state) {
-    const { subscriber, condition } = state;
-    if (subscriber.closed) {
-        return undefined;
-    }
-    if (state.needIterate) {
-        try {
-            state.state = state.iterate(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-    }
-    else {
-        state.needIterate = true;
-    }
-    if (condition) {
-        let conditionResult;
-        try {
-            conditionResult = condition(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!conditionResult) {
-            subscriber.complete();
-            return undefined;
-        }
-        if (subscriber.closed) {
-            return undefined;
-        }
-    }
-    let value;
-    try {
-        value = state.resultSelector(state.state);
-    }
-    catch (err) {
-        subscriber.error(err);
-        return undefined;
-    }
-    if (subscriber.closed) {
-        return undefined;
-    }
-    subscriber.next(value);
-    if (subscriber.closed) {
-        return undefined;
-    }
-    return this.schedule(state);
-}
-//# sourceMappingURL=generate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/generate.js.map b/node_modules/rxjs/_esm2015/internal/observable/generate.js.map
deleted file mode 100644
index 81273db..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/generate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generate.js","sources":["../../../src/internal/observable/generate.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/iif.js b/node_modules/rxjs/_esm2015/internal/observable/iif.js
deleted file mode 100644
index 91a626f..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/iif.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { defer } from './defer';
-import { EMPTY } from './empty';
-export function iif(condition, trueResult = EMPTY, falseResult = EMPTY) {
-    return defer(() => condition() ? trueResult : falseResult);
-}
-//# sourceMappingURL=iif.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/iif.js.map b/node_modules/rxjs/_esm2015/internal/observable/iif.js.map
deleted file mode 100644
index fe69e79..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/iif.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iif.js","sources":["../../../src/internal/observable/iif.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA2FhC,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,aAAuC,KAAK,EAC5C,cAAwC,KAAK;IAE7C,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/interval.js b/node_modules/rxjs/_esm2015/internal/observable/interval.js
deleted file mode 100644
index 4dbe4a0..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/interval.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { isNumeric } from '../util/isNumeric';
-export function interval(period = 0, scheduler = async) {
-    if (!isNumeric(period) || period < 0) {
-        period = 0;
-    }
-    if (!scheduler || typeof scheduler.schedule !== 'function') {
-        scheduler = async;
-    }
-    return new Observable(subscriber => {
-        subscriber.add(scheduler.schedule(dispatch, period, { subscriber, counter: 0, period }));
-        return subscriber;
-    });
-}
-function dispatch(state) {
-    const { subscriber, counter, period } = state;
-    subscriber.next(counter);
-    this.schedule({ subscriber, counter: counter + 1, period }, period);
-}
-//# sourceMappingURL=interval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/interval.js.map b/node_modules/rxjs/_esm2015/internal/observable/interval.js.map
deleted file mode 100644
index 67f6681..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/interval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interval.js","sources":["../../../src/internal/observable/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmD9C,MAAM,UAAU,QAAQ,CAAC,MAAM,GAAG,CAAC,EACV,YAA2B,KAAK;IACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAS,UAAU,CAAC,EAAE;QACzC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAC1E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/merge.js b/node_modules/rxjs/_esm2015/internal/observable/merge.js
deleted file mode 100644
index c62e364..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/merge.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Observable } from '../Observable';
-import { isScheduler } from '../util/isScheduler';
-import { mergeAll } from '../operators/mergeAll';
-import { fromArray } from './fromArray';
-export function merge(...observables) {
-    let concurrent = Number.POSITIVE_INFINITY;
-    let scheduler = null;
-    let last = observables[observables.length - 1];
-    if (isScheduler(last)) {
-        scheduler = observables.pop();
-        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
-            concurrent = observables.pop();
-        }
-    }
-    else if (typeof last === 'number') {
-        concurrent = observables.pop();
-    }
-    if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {
-        return observables[0];
-    }
-    return mergeAll(concurrent)(fromArray(observables, scheduler));
-}
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/merge.js.map b/node_modules/rxjs/_esm2015/internal/observable/merge.js.map
deleted file mode 100644
index 8327b24..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../../src/internal/observable/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAqHxC,MAAM,UAAU,KAAK,CAAO,GAAG,WAAiE;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,QAAQ,CAAI,UAAU,CAAC,CAAC,SAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/never.js b/node_modules/rxjs/_esm2015/internal/observable/never.js
deleted file mode 100644
index ca45f75..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/never.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Observable } from '../Observable';
-import { noop } from '../util/noop';
-export const NEVER = new Observable(noop);
-export function never() {
-    return NEVER;
-}
-//# sourceMappingURL=never.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/never.js.map b/node_modules/rxjs/_esm2015/internal/observable/never.js.map
deleted file mode 100644
index aa51b97..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/never.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"never.js","sources":["../../../src/internal/observable/never.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgCpC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,IAAI,CAAC,CAAC;AAKjD,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/of.js b/node_modules/rxjs/_esm2015/internal/observable/of.js
deleted file mode 100644
index fdfd611..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/of.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { isScheduler } from '../util/isScheduler';
-import { fromArray } from './fromArray';
-import { scheduleArray } from '../scheduled/scheduleArray';
-export function of(...args) {
-    let scheduler = args[args.length - 1];
-    if (isScheduler(scheduler)) {
-        args.pop();
-        return scheduleArray(args, scheduler);
-    }
-    else {
-        return fromArray(args);
-    }
-}
-//# sourceMappingURL=of.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/of.js.map b/node_modules/rxjs/_esm2015/internal/observable/of.js.map
deleted file mode 100644
index 4347b59..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/of.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"of.js","sources":["../../../src/internal/observable/of.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAiG3D,MAAM,UAAU,EAAE,CAAI,GAAG,IAA8B;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js
deleted file mode 100644
index ac1fdee..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Observable } from '../Observable';
-import { from } from './from';
-import { isArray } from '../util/isArray';
-import { EMPTY } from './empty';
-export function onErrorResumeNext(...sources) {
-    if (sources.length === 0) {
-        return EMPTY;
-    }
-    const [first, ...remainder] = sources;
-    if (sources.length === 1 && isArray(first)) {
-        return onErrorResumeNext(...first);
-    }
-    return new Observable(subscriber => {
-        const subNext = () => subscriber.add(onErrorResumeNext(...remainder).subscribe(subscriber));
-        return from(first).subscribe({
-            next(value) { subscriber.next(value); },
-            error: subNext,
-            complete: subNext,
-        });
-    });
-}
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map
deleted file mode 100644
index 44bd5d3..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwEhC,MAAM,UAAU,iBAAiB,CAAO,GAAG,OAEkD;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,CAAE,KAAK,EAAE,GAAG,SAAS,CAAE,GAAG,OAAO,CAAC;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAClC,iBAAiB,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CACtD,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/pairs.js b/node_modules/rxjs/_esm2015/internal/observable/pairs.js
deleted file mode 100644
index 573ef30..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/pairs.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function pairs(obj, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscriber => {
-            const keys = Object.keys(obj);
-            for (let i = 0; i < keys.length && !subscriber.closed; i++) {
-                const key = keys[i];
-                if (obj.hasOwnProperty(key)) {
-                    subscriber.next([key, obj[key]]);
-                }
-            }
-            subscriber.complete();
-        });
-    }
-    else {
-        return new Observable(subscriber => {
-            const keys = Object.keys(obj);
-            const subscription = new Subscription();
-            subscription.add(scheduler.schedule(dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));
-            return subscription;
-        });
-    }
-}
-export function dispatch(state) {
-    const { keys, index, subscriber, subscription, obj } = state;
-    if (!subscriber.closed) {
-        if (index < keys.length) {
-            const key = keys[index];
-            subscriber.next([key, obj[key]]);
-            subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));
-        }
-        else {
-            subscriber.complete();
-        }
-    }
-}
-//# sourceMappingURL=pairs.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map b/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map
deleted file mode 100644
index e14867e..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairs.js","sources":["../../../src/internal/observable/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkD/C,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAc,UAAU,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,UAAU,CAAc,UAAU,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAGD,MAAM,UAAU,QAAQ,CACI,KAAsH;IAChJ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/partition.js b/node_modules/rxjs/_esm2015/internal/observable/partition.js
deleted file mode 100644
index a34a734..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/partition.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { not } from '../util/not';
-import { subscribeTo } from '../util/subscribeTo';
-import { filter } from '../operators/filter';
-import { Observable } from '../Observable';
-export function partition(source, predicate, thisArg) {
-    return [
-        filter(predicate, thisArg)(new Observable(subscribeTo(source))),
-        filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))
-    ];
-}
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/partition.js.map b/node_modules/rxjs/_esm2015/internal/observable/partition.js.map
deleted file mode 100644
index 6c8ed22..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../../src/internal/observable/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqD3C,MAAM,UAAU,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/race.js b/node_modules/rxjs/_esm2015/internal/observable/race.js
deleted file mode 100644
index 10b093e..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/race.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import { isArray } from '../util/isArray';
-import { fromArray } from './fromArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function race(...observables) {
-    if (observables.length === 1) {
-        if (isArray(observables[0])) {
-            observables = observables[0];
-        }
-        else {
-            return observables[0];
-        }
-    }
-    return fromArray(observables, undefined).lift(new RaceOperator());
-}
-export class RaceOperator {
-    call(subscriber, source) {
-        return source.subscribe(new RaceSubscriber(subscriber));
-    }
-}
-export class RaceSubscriber extends OuterSubscriber {
-    constructor(destination) {
-        super(destination);
-        this.hasFirst = false;
-        this.observables = [];
-        this.subscriptions = [];
-    }
-    _next(observable) {
-        this.observables.push(observable);
-    }
-    _complete() {
-        const observables = this.observables;
-        const len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            for (let i = 0; i < len && !this.hasFirst; i++) {
-                let observable = observables[i];
-                let subscription = subscribeToResult(this, observable, observable, i);
-                if (this.subscriptions) {
-                    this.subscriptions.push(subscription);
-                }
-                this.add(subscription);
-            }
-            this.observables = null;
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (!this.hasFirst) {
-            this.hasFirst = true;
-            for (let i = 0; i < this.subscriptions.length; i++) {
-                if (i !== outerIndex) {
-                    let subscription = this.subscriptions[i];
-                    subscription.unsubscribe();
-                    this.remove(subscription);
-                }
-            }
-            this.subscriptions = null;
-        }
-        this.destination.next(innerValue);
-    }
-}
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/race.js.map b/node_modules/rxjs/_esm2015/internal/observable/race.js.map
deleted file mode 100644
index 018e811..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../../src/internal/observable/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoD9D,MAAM,UAAU,IAAI,CAAI,GAAG,WAAmC;IAG5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAsB,CAAC;SACnD;aAAM;YACL,OAAO,WAAW,CAAC,CAAC,CAAkB,CAAC;SACxC;KACF;IAED,OAAO,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAOD,MAAM,OAAO,cAAkB,SAAQ,eAAqB;IAK1D,YAAY,WAA0B;QACpC,KAAK,CAAC,WAAW,CAAC,CAAC;QALb,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAsB,EAAE,CAAC;QACpC,kBAAa,GAAmB,EAAE,CAAC;IAI3C,CAAC;IAES,KAAK,CAAC,UAAe;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;gBAE7E,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACxB;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,KAAK,UAAU,EAAE;oBACpB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAEzC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/range.js b/node_modules/rxjs/_esm2015/internal/observable/range.js
deleted file mode 100644
index ca93912..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/range.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Observable } from '../Observable';
-export function range(start = 0, count, scheduler) {
-    return new Observable(subscriber => {
-        if (count === undefined) {
-            count = start;
-            start = 0;
-        }
-        let index = 0;
-        let current = start;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                index, count, start, subscriber
-            });
-        }
-        else {
-            do {
-                if (index++ >= count) {
-                    subscriber.complete();
-                    break;
-                }
-                subscriber.next(current++);
-                if (subscriber.closed) {
-                    break;
-                }
-            } while (true);
-        }
-        return undefined;
-    });
-}
-export function dispatch(state) {
-    const { start, index, count, subscriber } = state;
-    if (index >= count) {
-        subscriber.complete();
-        return;
-    }
-    subscriber.next(start);
-    if (subscriber.closed) {
-        return;
-    }
-    state.index = index + 1;
-    state.start = start + 1;
-    this.schedule(state);
-}
-//# sourceMappingURL=range.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/range.js.map b/node_modules/rxjs/_esm2015/internal/observable/range.js.map
deleted file mode 100644
index 8e88801..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/range.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"range.js","sources":["../../../src/internal/observable/range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAC,QAAgB,CAAC,EACjB,KAAc,EACd,SAAyB;IAC7C,OAAO,IAAI,UAAU,CAAS,UAAU,CAAC,EAAE;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,QAAQ,CAA6B,KAAU;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/throwError.js b/node_modules/rxjs/_esm2015/internal/observable/throwError.js
deleted file mode 100644
index 981c0af..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/throwError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Observable } from '../Observable';
-export function throwError(error, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscriber => subscriber.error(error));
-    }
-    else {
-        return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));
-    }
-}
-function dispatch({ error, subscriber }) {
-    subscriber.error(error);
-}
-//# sourceMappingURL=throwError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map b/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map
deleted file mode 100644
index 744583b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwError.js","sources":["../../../src/internal/observable/throwError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoE3C,MAAM,UAAU,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;KAC7F;AACH,CAAC;AAOD,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAe;IAClD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/timer.js b/node_modules/rxjs/_esm2015/internal/observable/timer.js
deleted file mode 100644
index 7476984..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/timer.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-export function timer(dueTime = 0, periodOrScheduler, scheduler) {
-    let period = -1;
-    if (isNumeric(periodOrScheduler)) {
-        period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
-    }
-    else if (isScheduler(periodOrScheduler)) {
-        scheduler = periodOrScheduler;
-    }
-    if (!isScheduler(scheduler)) {
-        scheduler = async;
-    }
-    return new Observable(subscriber => {
-        const due = isNumeric(dueTime)
-            ? dueTime
-            : (+dueTime - scheduler.now());
-        return scheduler.schedule(dispatch, due, {
-            index: 0, period, subscriber
-        });
-    });
-}
-function dispatch(state) {
-    const { index, period, subscriber } = state;
-    subscriber.next(index);
-    if (subscriber.closed) {
-        return;
-    }
-    else if (period === -1) {
-        return subscriber.complete();
-    }
-    state.index = index + 1;
-    this.schedule(state, period);
-}
-//# sourceMappingURL=timer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/timer.js.map b/node_modules/rxjs/_esm2015/internal/observable/timer.js.map
deleted file mode 100644
index b943182..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/timer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timer.js","sources":["../../../src/internal/observable/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqDlD,MAAM,UAAU,KAAK,CAAC,UAAyB,CAAC,EAC1B,iBAA0C,EAC1C,SAAyB;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/using.js b/node_modules/rxjs/_esm2015/internal/observable/using.js
deleted file mode 100644
index 86af89f..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/using.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Observable } from '../Observable';
-import { from } from './from';
-import { EMPTY } from './empty';
-export function using(resourceFactory, observableFactory) {
-    return new Observable(subscriber => {
-        let resource;
-        try {
-            resource = resourceFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        let result;
-        try {
-            result = observableFactory(resource);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        const source = result ? from(result) : EMPTY;
-        const subscription = source.subscribe(subscriber);
-        return () => {
-            subscription.unsubscribe();
-            if (resource) {
-                resource.unsubscribe();
-            }
-        };
-    });
-}
-//# sourceMappingURL=using.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/using.js.map b/node_modules/rxjs/_esm2015/internal/observable/using.js.map
deleted file mode 100644
index 74ab3bd..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/using.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"using.js","sources":["../../../src/internal/observable/using.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA8BhC,MAAM,UAAU,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/observable/zip.js b/node_modules/rxjs/_esm2015/internal/observable/zip.js
deleted file mode 100644
index 076ef5b..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/zip.js
+++ /dev/null
@@ -1,198 +0,0 @@
-import { fromArray } from './fromArray';
-import { isArray } from '../util/isArray';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { iterator as Symbol_iterator } from '../../internal/symbol/iterator';
-export function zip(...observables) {
-    const resultSelector = observables[observables.length - 1];
-    if (typeof resultSelector === 'function') {
-        observables.pop();
-    }
-    return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
-}
-export class ZipOperator {
-    constructor(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
-    }
-}
-export class ZipSubscriber extends Subscriber {
-    constructor(destination, resultSelector, values = Object.create(null)) {
-        super(destination);
-        this.iterators = [];
-        this.active = 0;
-        this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
-        this.values = values;
-    }
-    _next(value) {
-        const iterators = this.iterators;
-        if (isArray(value)) {
-            iterators.push(new StaticArrayIterator(value));
-        }
-        else if (typeof value[Symbol_iterator] === 'function') {
-            iterators.push(new StaticIterator(value[Symbol_iterator]()));
-        }
-        else {
-            iterators.push(new ZipBufferIterator(this.destination, this, value));
-        }
-    }
-    _complete() {
-        const iterators = this.iterators;
-        const len = iterators.length;
-        this.unsubscribe();
-        if (len === 0) {
-            this.destination.complete();
-            return;
-        }
-        this.active = len;
-        for (let i = 0; i < len; i++) {
-            let iterator = iterators[i];
-            if (iterator.stillUnsubscribed) {
-                const destination = this.destination;
-                destination.add(iterator.subscribe(iterator, i));
-            }
-            else {
-                this.active--;
-            }
-        }
-    }
-    notifyInactive() {
-        this.active--;
-        if (this.active === 0) {
-            this.destination.complete();
-        }
-    }
-    checkIterators() {
-        const iterators = this.iterators;
-        const len = iterators.length;
-        const destination = this.destination;
-        for (let i = 0; i < len; i++) {
-            let iterator = iterators[i];
-            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
-                return;
-            }
-        }
-        let shouldComplete = false;
-        const args = [];
-        for (let i = 0; i < len; i++) {
-            let iterator = iterators[i];
-            let result = iterator.next();
-            if (iterator.hasCompleted()) {
-                shouldComplete = true;
-            }
-            if (result.done) {
-                destination.complete();
-                return;
-            }
-            args.push(result.value);
-        }
-        if (this.resultSelector) {
-            this._tryresultSelector(args);
-        }
-        else {
-            destination.next(args);
-        }
-        if (shouldComplete) {
-            destination.complete();
-        }
-    }
-    _tryresultSelector(args) {
-        let result;
-        try {
-            result = this.resultSelector.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    }
-}
-class StaticIterator {
-    constructor(iterator) {
-        this.iterator = iterator;
-        this.nextResult = iterator.next();
-    }
-    hasValue() {
-        return true;
-    }
-    next() {
-        const result = this.nextResult;
-        this.nextResult = this.iterator.next();
-        return result;
-    }
-    hasCompleted() {
-        const nextResult = this.nextResult;
-        return nextResult && nextResult.done;
-    }
-}
-class StaticArrayIterator {
-    constructor(array) {
-        this.array = array;
-        this.index = 0;
-        this.length = 0;
-        this.length = array.length;
-    }
-    [Symbol_iterator]() {
-        return this;
-    }
-    next(value) {
-        const i = this.index++;
-        const array = this.array;
-        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
-    }
-    hasValue() {
-        return this.array.length > this.index;
-    }
-    hasCompleted() {
-        return this.array.length === this.index;
-    }
-}
-class ZipBufferIterator extends OuterSubscriber {
-    constructor(destination, parent, observable) {
-        super(destination);
-        this.parent = parent;
-        this.observable = observable;
-        this.stillUnsubscribed = true;
-        this.buffer = [];
-        this.isComplete = false;
-    }
-    [Symbol_iterator]() {
-        return this;
-    }
-    next() {
-        const buffer = this.buffer;
-        if (buffer.length === 0 && this.isComplete) {
-            return { value: null, done: true };
-        }
-        else {
-            return { value: buffer.shift(), done: false };
-        }
-    }
-    hasValue() {
-        return this.buffer.length > 0;
-    }
-    hasCompleted() {
-        return this.buffer.length === 0 && this.isComplete;
-    }
-    notifyComplete() {
-        if (this.buffer.length > 0) {
-            this.isComplete = true;
-            this.parent.notifyInactive();
-        }
-        else {
-            this.destination.complete();
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.buffer.push(innerValue);
-        this.parent.checkIterators();
-    }
-    subscribe(value, index) {
-        return subscribeToResult(this, this.observable, this, index);
-    }
-}
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/observable/zip.js.map b/node_modules/rxjs/_esm2015/internal/observable/zip.js.map
deleted file mode 100644
index 90bfb02..0000000
--- a/node_modules/rxjs/_esm2015/internal/observable/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/audit.js b/node_modules/rxjs/_esm2015/internal/operators/audit.js
deleted file mode 100644
index 80618bf..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/audit.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function audit(durationSelector) {
-    return function auditOperatorFunction(source) {
-        return source.lift(new AuditOperator(durationSelector));
-    };
-}
-class AuditOperator {
-    constructor(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
-    }
-}
-class AuditSubscriber extends OuterSubscriber {
-    constructor(destination, durationSelector) {
-        super(destination);
-        this.durationSelector = durationSelector;
-        this.hasValue = false;
-    }
-    _next(value) {
-        this.value = value;
-        this.hasValue = true;
-        if (!this.throttled) {
-            let duration;
-            try {
-                const { durationSelector } = this;
-                duration = durationSelector(value);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-            const innerSubscription = subscribeToResult(this, duration);
-            if (!innerSubscription || innerSubscription.closed) {
-                this.clearThrottle();
-            }
-            else {
-                this.add(this.throttled = innerSubscription);
-            }
-        }
-    }
-    clearThrottle() {
-        const { value, hasValue, throttled } = this;
-        if (throttled) {
-            this.remove(throttled);
-            this.throttled = null;
-            throttled.unsubscribe();
-        }
-        if (hasValue) {
-            this.value = null;
-            this.hasValue = false;
-            this.destination.next(value);
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex) {
-        this.clearThrottle();
-    }
-    notifyComplete() {
-        this.clearThrottle();
-    }
-}
-//# sourceMappingURL=audit.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/audit.js.map b/node_modules/rxjs/_esm2015/internal/operators/audit.js.map
deleted file mode 100644
index 794f279..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../../../src/internal/operators/audit.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgD9D,MAAM,UAAU,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,eAAqB;IAMvD,YAAY,WAA0B,EAClB,gBAA0D;QAC5E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,aAAQ,GAAY,KAAK,CAAC;IAMlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,CAAC;YACb,IAAI;gBACF,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;YACD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,aAAa;QACX,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAAE,UAAkB,EAAE,UAAkB;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js
deleted file mode 100644
index e94a8b6..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { async } from '../scheduler/async';
-import { audit } from './audit';
-import { timer } from '../observable/timer';
-export function auditTime(duration, scheduler = async) {
-    return audit(() => timer(duration, scheduler));
-}
-//# sourceMappingURL=auditTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map
deleted file mode 100644
index 1d3d923..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../../../src/internal/operators/auditTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoD5C,MAAM,UAAU,SAAS,CAAI,QAAgB,EAAE,YAA2B,KAAK;IAC7E,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/buffer.js b/node_modules/rxjs/_esm2015/internal/operators/buffer.js
deleted file mode 100644
index db793d0..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/buffer.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function buffer(closingNotifier) {
-    return function bufferOperatorFunction(source) {
-        return source.lift(new BufferOperator(closingNotifier));
-    };
-}
-class BufferOperator {
-    constructor(closingNotifier) {
-        this.closingNotifier = closingNotifier;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
-    }
-}
-class BufferSubscriber extends OuterSubscriber {
-    constructor(destination, closingNotifier) {
-        super(destination);
-        this.buffer = [];
-        this.add(subscribeToResult(this, closingNotifier));
-    }
-    _next(value) {
-        this.buffer.push(value);
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        const buffer = this.buffer;
-        this.buffer = [];
-        this.destination.next(buffer);
-    }
-}
-//# sourceMappingURL=buffer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map b/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map
deleted file mode 100644
index c20545b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../../../src/internal/operators/buffer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,MAAM,UAAU,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAElB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,eAAuB;IAGvD,YAAY,WAA4B,EAAE,eAAgC;QACxE,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,WAAM,GAAQ,EAAE,CAAC;QAIvB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IACrD,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js
deleted file mode 100644
index 0f119e7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function bufferCount(bufferSize, startBufferEvery = null) {
-    return function bufferCountOperatorFunction(source) {
-        return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));
-    };
-}
-class BufferCountOperator {
-    constructor(bufferSize, startBufferEvery) {
-        this.bufferSize = bufferSize;
-        this.startBufferEvery = startBufferEvery;
-        if (!startBufferEvery || bufferSize === startBufferEvery) {
-            this.subscriberClass = BufferCountSubscriber;
-        }
-        else {
-            this.subscriberClass = BufferSkipCountSubscriber;
-        }
-    }
-    call(subscriber, source) {
-        return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
-    }
-}
-class BufferCountSubscriber extends Subscriber {
-    constructor(destination, bufferSize) {
-        super(destination);
-        this.bufferSize = bufferSize;
-        this.buffer = [];
-    }
-    _next(value) {
-        const buffer = this.buffer;
-        buffer.push(value);
-        if (buffer.length == this.bufferSize) {
-            this.destination.next(buffer);
-            this.buffer = [];
-        }
-    }
-    _complete() {
-        const buffer = this.buffer;
-        if (buffer.length > 0) {
-            this.destination.next(buffer);
-        }
-        super._complete();
-    }
-}
-class BufferSkipCountSubscriber extends Subscriber {
-    constructor(destination, bufferSize, startBufferEvery) {
-        super(destination);
-        this.bufferSize = bufferSize;
-        this.startBufferEvery = startBufferEvery;
-        this.buffers = [];
-        this.count = 0;
-    }
-    _next(value) {
-        const { bufferSize, startBufferEvery, buffers, count } = this;
-        this.count++;
-        if (count % startBufferEvery === 0) {
-            buffers.push([]);
-        }
-        for (let i = buffers.length; i--;) {
-            const buffer = buffers[i];
-            buffer.push(value);
-            if (buffer.length === bufferSize) {
-                buffers.splice(i, 1);
-                this.destination.next(buffer);
-            }
-        }
-    }
-    _complete() {
-        const { buffers, destination } = this;
-        while (buffers.length > 0) {
-            let buffer = buffers.shift();
-            if (buffer.length > 0) {
-                destination.next(buffer);
-            }
-        }
-        super._complete();
-    }
-}
-//# sourceMappingURL=bufferCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map
deleted file mode 100644
index 13d96ce..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js
deleted file mode 100644
index aac9ea5..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import { async } from '../scheduler/async';
-import { Subscriber } from '../Subscriber';
-import { isScheduler } from '../util/isScheduler';
-export function bufferTime(bufferTimeSpan) {
-    let length = arguments.length;
-    let scheduler = async;
-    if (isScheduler(arguments[arguments.length - 1])) {
-        scheduler = arguments[arguments.length - 1];
-        length--;
-    }
-    let bufferCreationInterval = null;
-    if (length >= 2) {
-        bufferCreationInterval = arguments[1];
-    }
-    let maxBufferSize = Number.POSITIVE_INFINITY;
-    if (length >= 3) {
-        maxBufferSize = arguments[2];
-    }
-    return function bufferTimeOperatorFunction(source) {
-        return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
-    };
-}
-class BufferTimeOperator {
-    constructor(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        this.bufferTimeSpan = bufferTimeSpan;
-        this.bufferCreationInterval = bufferCreationInterval;
-        this.maxBufferSize = maxBufferSize;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));
-    }
-}
-class Context {
-    constructor() {
-        this.buffer = [];
-    }
-}
-class BufferTimeSubscriber extends Subscriber {
-    constructor(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        super(destination);
-        this.bufferTimeSpan = bufferTimeSpan;
-        this.bufferCreationInterval = bufferCreationInterval;
-        this.maxBufferSize = maxBufferSize;
-        this.scheduler = scheduler;
-        this.contexts = [];
-        const context = this.openContext();
-        this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
-        if (this.timespanOnly) {
-            const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };
-            this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-        else {
-            const closeState = { subscriber: this, context };
-            const creationState = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };
-            this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));
-            this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));
-        }
-    }
-    _next(value) {
-        const contexts = this.contexts;
-        const len = contexts.length;
-        let filledBufferContext;
-        for (let i = 0; i < len; i++) {
-            const context = contexts[i];
-            const buffer = context.buffer;
-            buffer.push(value);
-            if (buffer.length == this.maxBufferSize) {
-                filledBufferContext = context;
-            }
-        }
-        if (filledBufferContext) {
-            this.onBufferFull(filledBufferContext);
-        }
-    }
-    _error(err) {
-        this.contexts.length = 0;
-        super._error(err);
-    }
-    _complete() {
-        const { contexts, destination } = this;
-        while (contexts.length > 0) {
-            const context = contexts.shift();
-            destination.next(context.buffer);
-        }
-        super._complete();
-    }
-    _unsubscribe() {
-        this.contexts = null;
-    }
-    onBufferFull(context) {
-        this.closeContext(context);
-        const closeAction = context.closeAction;
-        closeAction.unsubscribe();
-        this.remove(closeAction);
-        if (!this.closed && this.timespanOnly) {
-            context = this.openContext();
-            const bufferTimeSpan = this.bufferTimeSpan;
-            const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };
-            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-    }
-    openContext() {
-        const context = new Context();
-        this.contexts.push(context);
-        return context;
-    }
-    closeContext(context) {
-        this.destination.next(context.buffer);
-        const contexts = this.contexts;
-        const spliceIndex = contexts ? contexts.indexOf(context) : -1;
-        if (spliceIndex >= 0) {
-            contexts.splice(contexts.indexOf(context), 1);
-        }
-    }
-}
-function dispatchBufferTimeSpanOnly(state) {
-    const subscriber = state.subscriber;
-    const prevContext = state.context;
-    if (prevContext) {
-        subscriber.closeContext(prevContext);
-    }
-    if (!subscriber.closed) {
-        state.context = subscriber.openContext();
-        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
-    }
-}
-function dispatchBufferCreation(state) {
-    const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;
-    const context = subscriber.openContext();
-    const action = this;
-    if (!subscriber.closed) {
-        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));
-        action.schedule(state, bufferCreationInterval);
-    }
-}
-function dispatchBufferClose(arg) {
-    const { subscriber, context } = arg;
-    subscriber.closeContext(context);
-}
-//# sourceMappingURL=bufferTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map
deleted file mode 100644
index 471696a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js
deleted file mode 100644
index 86aae17..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import { Subscription } from '../Subscription';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-export function bufferToggle(openings, closingSelector) {
-    return function bufferToggleOperatorFunction(source) {
-        return source.lift(new BufferToggleOperator(openings, closingSelector));
-    };
-}
-class BufferToggleOperator {
-    constructor(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    }
-}
-class BufferToggleSubscriber extends OuterSubscriber {
-    constructor(destination, openings, closingSelector) {
-        super(destination);
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-        this.contexts = [];
-        this.add(subscribeToResult(this, openings));
-    }
-    _next(value) {
-        const contexts = this.contexts;
-        const len = contexts.length;
-        for (let i = 0; i < len; i++) {
-            contexts[i].buffer.push(value);
-        }
-    }
-    _error(err) {
-        const contexts = this.contexts;
-        while (contexts.length > 0) {
-            const context = contexts.shift();
-            context.subscription.unsubscribe();
-            context.buffer = null;
-            context.subscription = null;
-        }
-        this.contexts = null;
-        super._error(err);
-    }
-    _complete() {
-        const contexts = this.contexts;
-        while (contexts.length > 0) {
-            const context = contexts.shift();
-            this.destination.next(context.buffer);
-            context.subscription.unsubscribe();
-            context.buffer = null;
-            context.subscription = null;
-        }
-        this.contexts = null;
-        super._complete();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
-    }
-    notifyComplete(innerSub) {
-        this.closeBuffer(innerSub.context);
-    }
-    openBuffer(value) {
-        try {
-            const closingSelector = this.closingSelector;
-            const closingNotifier = closingSelector.call(this, value);
-            if (closingNotifier) {
-                this.trySubscribe(closingNotifier);
-            }
-        }
-        catch (err) {
-            this._error(err);
-        }
-    }
-    closeBuffer(context) {
-        const contexts = this.contexts;
-        if (contexts && context) {
-            const { buffer, subscription } = context;
-            this.destination.next(buffer);
-            contexts.splice(contexts.indexOf(context), 1);
-            this.remove(subscription);
-            subscription.unsubscribe();
-        }
-    }
-    trySubscribe(closingNotifier) {
-        const contexts = this.contexts;
-        const buffer = [];
-        const subscription = new Subscription();
-        const context = { buffer, subscription };
-        contexts.push(context);
-        const innerSubscription = subscribeToResult(this, closingNotifier, context);
-        if (!innerSubscription || innerSubscription.closed) {
-            this.closeBuffer(context);
-        }
-        else {
-            innerSubscription.context = context;
-            this.add(innerSubscription);
-            subscription.add(innerSubscription);
-        }
-    }
-}
-//# sourceMappingURL=bufferToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map
deleted file mode 100644
index efec280..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js
deleted file mode 100644
index a2dca4f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function bufferWhen(closingSelector) {
-    return function (source) {
-        return source.lift(new BufferWhenOperator(closingSelector));
-    };
-}
-class BufferWhenOperator {
-    constructor(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
-    }
-}
-class BufferWhenSubscriber extends OuterSubscriber {
-    constructor(destination, closingSelector) {
-        super(destination);
-        this.closingSelector = closingSelector;
-        this.subscribing = false;
-        this.openBuffer();
-    }
-    _next(value) {
-        this.buffer.push(value);
-    }
-    _complete() {
-        const buffer = this.buffer;
-        if (buffer) {
-            this.destination.next(buffer);
-        }
-        super._complete();
-    }
-    _unsubscribe() {
-        this.buffer = null;
-        this.subscribing = false;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openBuffer();
-    }
-    notifyComplete() {
-        if (this.subscribing) {
-            this.complete();
-        }
-        else {
-            this.openBuffer();
-        }
-    }
-    openBuffer() {
-        let { closingSubscription } = this;
-        if (closingSubscription) {
-            this.remove(closingSubscription);
-            closingSubscription.unsubscribe();
-        }
-        const buffer = this.buffer;
-        if (this.buffer) {
-            this.destination.next(buffer);
-        }
-        this.buffer = [];
-        let closingNotifier;
-        try {
-            const { closingSelector } = this;
-            closingNotifier = closingSelector();
-        }
-        catch (err) {
-            return this.error(err);
-        }
-        closingSubscription = new Subscription();
-        this.closingSubscription = closingSubscription;
-        this.add(closingSubscription);
-        this.subscribing = true;
-        closingSubscription.add(subscribeToResult(this, closingNotifier));
-        this.subscribing = false;
-    }
-}
-//# sourceMappingURL=bufferWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map
deleted file mode 100644
index 89abd16..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/catchError.js b/node_modules/rxjs/_esm2015/internal/operators/catchError.js
deleted file mode 100644
index 8c2a62f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/catchError.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function catchError(selector) {
-    return function catchErrorOperatorFunction(source) {
-        const operator = new CatchOperator(selector);
-        const caught = source.lift(operator);
-        return (operator.caught = caught);
-    };
-}
-class CatchOperator {
-    constructor(selector) {
-        this.selector = selector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
-    }
-}
-class CatchSubscriber extends OuterSubscriber {
-    constructor(destination, selector, caught) {
-        super(destination);
-        this.selector = selector;
-        this.caught = caught;
-    }
-    error(err) {
-        if (!this.isStopped) {
-            let result;
-            try {
-                result = this.selector(err, this.caught);
-            }
-            catch (err2) {
-                super.error(err2);
-                return;
-            }
-            this._unsubscribeAndRecycle();
-            const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-            this.add(innerSubscriber);
-            const innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                this.add(innerSubscription);
-            }
-        }
-    }
-}
-//# sourceMappingURL=catchError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map b/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map
deleted file mode 100644
index 32aa423..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catchError.js","sources":["../../../src/internal/operators/catchError.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAmF9D,MAAM,UAAU,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,aAAa;IAGjB,YAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,eAAyB;IAC3D,YAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAA6D;QACrE,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IAOD,KAAK,CAAC,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAW,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAIjG,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js
deleted file mode 100644
index 8b8fe36..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { CombineLatestOperator } from '../observable/combineLatest';
-export function combineAll(project) {
-    return (source) => source.lift(new CombineLatestOperator(project));
-}
-//# sourceMappingURL=combineAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map
deleted file mode 100644
index 698b5a6..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../../../src/internal/operators/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAsDpE,MAAM,UAAU,UAAU,CAAO,OAAsC;IACrE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js
deleted file mode 100644
index 21d392d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { isArray } from '../util/isArray';
-import { CombineLatestOperator } from '../observable/combineLatest';
-import { from } from '../observable/from';
-const none = {};
-export function combineLatest(...observables) {
-    let project = null;
-    if (typeof observables[observables.length - 1] === 'function') {
-        project = observables.pop();
-    }
-    if (observables.length === 1 && isArray(observables[0])) {
-        observables = observables[0].slice();
-    }
-    return (source) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project));
-}
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map
deleted file mode 100644
index 9724120..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,MAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,MAAM,UAAU,aAAa,CAAO,GAAG,WAE4C;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACzH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concat.js b/node_modules/rxjs/_esm2015/internal/operators/concat.js
deleted file mode 100644
index 1f4daf1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { concat as concatStatic } from '../observable/concat';
-export function concat(...observables) {
-    return (source) => source.lift.call(concatStatic(source, ...observables));
-}
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concat.js.map b/node_modules/rxjs/_esm2015/internal/operators/concat.js.map
deleted file mode 100644
index 292d9fd..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../../src/internal/operators/concat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA0B/D,MAAM,UAAU,MAAM,CAAO,GAAG,WAAwD;IACtF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AAC3F,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js
deleted file mode 100644
index 9ef0022..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { mergeAll } from './mergeAll';
-export function concatAll() {
-    return mergeAll(1);
-}
-//# sourceMappingURL=concatAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map
deleted file mode 100644
index 9c92ccc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../../../src/internal/operators/concatAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgEtC,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js
deleted file mode 100644
index 165b4d5..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { mergeMap } from './mergeMap';
-export function concatMap(project, resultSelector) {
-    return mergeMap(project, resultSelector, 1);
-}
-//# sourceMappingURL=concatMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map
deleted file mode 100644
index 63a35fa..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../../../src/internal/operators/concatMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEtC,MAAM,UAAU,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js
deleted file mode 100644
index 270a4a2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { concatMap } from './concatMap';
-export function concatMapTo(innerObservable, resultSelector) {
-    return concatMap(() => innerObservable, resultSelector);
-}
-//# sourceMappingURL=concatMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map
deleted file mode 100644
index 10a313a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmExC,MAAM,UAAU,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/count.js b/node_modules/rxjs/_esm2015/internal/operators/count.js
deleted file mode 100644
index fb4f746..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/count.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function count(predicate) {
-    return (source) => source.lift(new CountOperator(predicate, source));
-}
-class CountOperator {
-    constructor(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
-    }
-}
-class CountSubscriber extends Subscriber {
-    constructor(destination, predicate, source) {
-        super(destination);
-        this.predicate = predicate;
-        this.source = source;
-        this.count = 0;
-        this.index = 0;
-    }
-    _next(value) {
-        if (this.predicate) {
-            this._tryPredicate(value);
-        }
-        else {
-            this.count++;
-        }
-    }
-    _tryPredicate(value) {
-        let result;
-        try {
-            result = this.predicate(value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.count++;
-        }
-    }
-    _complete() {
-        this.destination.next(this.count);
-        this.destination.complete();
-    }
-}
-//# sourceMappingURL=count.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/count.js.map b/node_modules/rxjs/_esm2015/internal/operators/count.js.map
deleted file mode 100644
index b634bab..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../../../src/internal/operators/count.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6D3C,MAAM,UAAU,KAAK,CAAI,SAAuE;IAC9F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAI5C,YAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;QALlC,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;IAM1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,aAAa,CAAC,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounce.js b/node_modules/rxjs/_esm2015/internal/operators/debounce.js
deleted file mode 100644
index e95c94e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/debounce.js
+++ /dev/null
@@ -1,70 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function debounce(durationSelector) {
-    return (source) => source.lift(new DebounceOperator(durationSelector));
-}
-class DebounceOperator {
-    constructor(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
-    }
-}
-class DebounceSubscriber extends OuterSubscriber {
-    constructor(destination, durationSelector) {
-        super(destination);
-        this.durationSelector = durationSelector;
-        this.hasValue = false;
-        this.durationSubscription = null;
-    }
-    _next(value) {
-        try {
-            const result = this.durationSelector.call(this, value);
-            if (result) {
-                this._tryNext(value, result);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    }
-    _complete() {
-        this.emitValue();
-        this.destination.complete();
-    }
-    _tryNext(value, duration) {
-        let subscription = this.durationSubscription;
-        this.value = value;
-        this.hasValue = true;
-        if (subscription) {
-            subscription.unsubscribe();
-            this.remove(subscription);
-        }
-        subscription = subscribeToResult(this, duration);
-        if (subscription && !subscription.closed) {
-            this.add(this.durationSubscription = subscription);
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    }
-    notifyComplete() {
-        this.emitValue();
-    }
-    emitValue() {
-        if (this.hasValue) {
-            const value = this.value;
-            const subscription = this.durationSubscription;
-            if (subscription) {
-                this.durationSubscription = null;
-                subscription.unsubscribe();
-                this.remove(subscription);
-            }
-            this.value = null;
-            this.hasValue = false;
-            super._next(value);
-        }
-    }
-}
-//# sourceMappingURL=debounce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map b/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map
deleted file mode 100644
index 07dc515..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../../../src/internal/operators/debounce.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAkD9D,MAAM,UAAU,QAAQ,CAAI,gBAA0D;IACpF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,kBAAyB,SAAQ,eAAqB;IAK1D,YAAY,WAA0B,EAClB,gBAA0D;QAC5E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,aAAQ,GAAY,KAAK,CAAC;QAC1B,yBAAoB,GAAiB,IAAI,CAAC;IAKlD,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,QAAQ,CAAC,KAAQ,EAAE,QAAoC;QAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC/C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAC3B;YAMD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js
deleted file mode 100644
index 891abcc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-export function debounceTime(dueTime, scheduler = async) {
-    return (source) => source.lift(new DebounceTimeOperator(dueTime, scheduler));
-}
-class DebounceTimeOperator {
-    constructor(dueTime, scheduler) {
-        this.dueTime = dueTime;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
-    }
-}
-class DebounceTimeSubscriber extends Subscriber {
-    constructor(destination, dueTime, scheduler) {
-        super(destination);
-        this.dueTime = dueTime;
-        this.scheduler = scheduler;
-        this.debouncedSubscription = null;
-        this.lastValue = null;
-        this.hasValue = false;
-    }
-    _next(value) {
-        this.clearDebounce();
-        this.lastValue = value;
-        this.hasValue = true;
-        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));
-    }
-    _complete() {
-        this.debouncedNext();
-        this.destination.complete();
-    }
-    debouncedNext() {
-        this.clearDebounce();
-        if (this.hasValue) {
-            const { lastValue } = this;
-            this.lastValue = null;
-            this.hasValue = false;
-            this.destination.next(lastValue);
-        }
-    }
-    clearDebounce() {
-        const debouncedSubscription = this.debouncedSubscription;
-        if (debouncedSubscription !== null) {
-            this.remove(debouncedSubscription);
-            debouncedSubscription.unsubscribe();
-            this.debouncedSubscription = null;
-        }
-    }
-}
-function dispatchNext(subscriber) {
-    subscriber.debouncedNext();
-}
-//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map
deleted file mode 100644
index e8d3112..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAuD3C,MAAM,UAAU,YAAY,CAAI,OAAe,EAAE,YAA2B,KAAK;IAC/E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,oBAAoB;IACxB,YAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AAOD,MAAM,sBAA0B,SAAQ,UAAa;IAKnD,YAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAe;QANpC,0BAAqB,GAAiB,IAAI,CAAC;QAC3C,cAAS,GAAM,IAAI,CAAC;QACpB,aAAQ,GAAY,KAAK,CAAC;IAMlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js
deleted file mode 100644
index fbb5802..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function defaultIfEmpty(defaultValue = null) {
-    return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));
-}
-class DefaultIfEmptyOperator {
-    constructor(defaultValue) {
-        this.defaultValue = defaultValue;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
-    }
-}
-class DefaultIfEmptySubscriber extends Subscriber {
-    constructor(destination, defaultValue) {
-        super(destination);
-        this.defaultValue = defaultValue;
-        this.isEmpty = true;
-    }
-    _next(value) {
-        this.isEmpty = false;
-        this.destination.next(value);
-    }
-    _complete() {
-        if (this.isEmpty) {
-            this.destination.next(this.defaultValue);
-        }
-        this.destination.complete();
-    }
-}
-//# sourceMappingURL=defaultIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map
deleted file mode 100644
index c25fbda..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4C3C,MAAM,UAAU,cAAc,CAAO,eAAkB,IAAI;IACzD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,CAAC;AAC/G,CAAC;AAED,MAAM,sBAAsB;IAE1B,YAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,IAAI,CAAC,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAOD,MAAM,wBAA+B,SAAQ,UAAa;IAGxD,YAAY,WAA8B,EAAU,YAAe;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD+B,iBAAY,GAAZ,YAAY,CAAG;QAF3D,YAAO,GAAY,IAAI,CAAC;IAIhC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/delay.js b/node_modules/rxjs/_esm2015/internal/operators/delay.js
deleted file mode 100644
index de834ba..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/delay.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function delay(delay, scheduler = async) {
-    const absoluteDelay = isDate(delay);
-    const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);
-    return (source) => source.lift(new DelayOperator(delayFor, scheduler));
-}
-class DelayOperator {
-    constructor(delay, scheduler) {
-        this.delay = delay;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
-    }
-}
-class DelaySubscriber extends Subscriber {
-    constructor(destination, delay, scheduler) {
-        super(destination);
-        this.delay = delay;
-        this.scheduler = scheduler;
-        this.queue = [];
-        this.active = false;
-        this.errored = false;
-    }
-    static dispatch(state) {
-        const source = state.source;
-        const queue = source.queue;
-        const scheduler = state.scheduler;
-        const destination = state.destination;
-        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
-            queue.shift().notification.observe(destination);
-        }
-        if (queue.length > 0) {
-            const delay = Math.max(0, queue[0].time - scheduler.now());
-            this.schedule(state, delay);
-        }
-        else {
-            this.unsubscribe();
-            source.active = false;
-        }
-    }
-    _schedule(scheduler) {
-        this.active = true;
-        const destination = this.destination;
-        destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {
-            source: this, destination: this.destination, scheduler: scheduler
-        }));
-    }
-    scheduleNotification(notification) {
-        if (this.errored === true) {
-            return;
-        }
-        const scheduler = this.scheduler;
-        const message = new DelayMessage(scheduler.now() + this.delay, notification);
-        this.queue.push(message);
-        if (this.active === false) {
-            this._schedule(scheduler);
-        }
-    }
-    _next(value) {
-        this.scheduleNotification(Notification.createNext(value));
-    }
-    _error(err) {
-        this.errored = true;
-        this.queue = [];
-        this.destination.error(err);
-        this.unsubscribe();
-    }
-    _complete() {
-        this.scheduleNotification(Notification.createComplete());
-        this.unsubscribe();
-    }
-}
-class DelayMessage {
-    constructor(time, notification) {
-        this.time = time;
-        this.notification = notification;
-    }
-}
-//# sourceMappingURL=delay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/delay.js.map b/node_modules/rxjs/_esm2015/internal/operators/delay.js.map
deleted file mode 100644
index 02dfa54..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
deleted file mode 100644
index 3b8d6c0..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
+++ /dev/null
@@ -1,118 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function delayWhen(delayDurationSelector, subscriptionDelay) {
-    if (subscriptionDelay) {
-        return (source) => new SubscriptionDelayObservable(source, subscriptionDelay)
-            .lift(new DelayWhenOperator(delayDurationSelector));
-    }
-    return (source) => source.lift(new DelayWhenOperator(delayDurationSelector));
-}
-class DelayWhenOperator {
-    constructor(delayDurationSelector) {
-        this.delayDurationSelector = delayDurationSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
-    }
-}
-class DelayWhenSubscriber extends OuterSubscriber {
-    constructor(destination, delayDurationSelector) {
-        super(destination);
-        this.delayDurationSelector = delayDurationSelector;
-        this.completed = false;
-        this.delayNotifierSubscriptions = [];
-        this.index = 0;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(outerValue);
-        this.removeSubscription(innerSub);
-        this.tryComplete();
-    }
-    notifyError(error, innerSub) {
-        this._error(error);
-    }
-    notifyComplete(innerSub) {
-        const value = this.removeSubscription(innerSub);
-        if (value) {
-            this.destination.next(value);
-        }
-        this.tryComplete();
-    }
-    _next(value) {
-        const index = this.index++;
-        try {
-            const delayNotifier = this.delayDurationSelector(value, index);
-            if (delayNotifier) {
-                this.tryDelay(delayNotifier, value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    }
-    _complete() {
-        this.completed = true;
-        this.tryComplete();
-        this.unsubscribe();
-    }
-    removeSubscription(subscription) {
-        subscription.unsubscribe();
-        const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
-        if (subscriptionIdx !== -1) {
-            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
-        }
-        return subscription.outerValue;
-    }
-    tryDelay(delayNotifier, value) {
-        const notifierSubscription = subscribeToResult(this, delayNotifier, value);
-        if (notifierSubscription && !notifierSubscription.closed) {
-            const destination = this.destination;
-            destination.add(notifierSubscription);
-            this.delayNotifierSubscriptions.push(notifierSubscription);
-        }
-    }
-    tryComplete() {
-        if (this.completed && this.delayNotifierSubscriptions.length === 0) {
-            this.destination.complete();
-        }
-    }
-}
-class SubscriptionDelayObservable extends Observable {
-    constructor(source, subscriptionDelay) {
-        super();
-        this.source = source;
-        this.subscriptionDelay = subscriptionDelay;
-    }
-    _subscribe(subscriber) {
-        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
-    }
-}
-class SubscriptionDelaySubscriber extends Subscriber {
-    constructor(parent, source) {
-        super();
-        this.parent = parent;
-        this.source = source;
-        this.sourceSubscribed = false;
-    }
-    _next(unused) {
-        this.subscribeToSource();
-    }
-    _error(err) {
-        this.unsubscribe();
-        this.parent.error(err);
-    }
-    _complete() {
-        this.unsubscribe();
-        this.subscribeToSource();
-    }
-    subscribeToSource() {
-        if (!this.sourceSubscribed) {
-            this.sourceSubscribed = true;
-            this.unsubscribe();
-            this.source.subscribe(this.parent);
-        }
-    }
-}
-//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map
deleted file mode 100644
index 6daa687..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js
deleted file mode 100644
index 2e227f1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function dematerialize() {
-    return function dematerializeOperatorFunction(source) {
-        return source.lift(new DeMaterializeOperator());
-    };
-}
-class DeMaterializeOperator {
-    call(subscriber, source) {
-        return source.subscribe(new DeMaterializeSubscriber(subscriber));
-    }
-}
-class DeMaterializeSubscriber extends Subscriber {
-    constructor(destination) {
-        super(destination);
-    }
-    _next(value) {
-        value.observe(this.destination);
-    }
-}
-//# sourceMappingURL=dematerialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map
deleted file mode 100644
index 7410893..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkD3C,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB;IACzB,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAOD,MAAM,uBAAqD,SAAQ,UAAa;IAC9E,YAAY,WAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinct.js b/node_modules/rxjs/_esm2015/internal/operators/distinct.js
deleted file mode 100644
index cda297f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinct.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function distinct(keySelector, flushes) {
-    return (source) => source.lift(new DistinctOperator(keySelector, flushes));
-}
-class DistinctOperator {
-    constructor(keySelector, flushes) {
-        this.keySelector = keySelector;
-        this.flushes = flushes;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
-    }
-}
-export class DistinctSubscriber extends OuterSubscriber {
-    constructor(destination, keySelector, flushes) {
-        super(destination);
-        this.keySelector = keySelector;
-        this.values = new Set();
-        if (flushes) {
-            this.add(subscribeToResult(this, flushes));
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values.clear();
-    }
-    notifyError(error, innerSub) {
-        this._error(error);
-    }
-    _next(value) {
-        if (this.keySelector) {
-            this._useKeySelector(value);
-        }
-        else {
-            this._finalizeNext(value, value);
-        }
-    }
-    _useKeySelector(value) {
-        let key;
-        const { destination } = this;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this._finalizeNext(key, value);
-    }
-    _finalizeNext(key, value) {
-        const { values } = this;
-        if (!values.has(key)) {
-            values.add(key);
-            this.destination.next(value);
-        }
-    }
-}
-//# sourceMappingURL=distinct.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map
deleted file mode 100644
index 7efaa65..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../../../src/internal/operators/distinct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA6D9D,MAAM,UAAU,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,WAA4B,EAAU,OAAwB;QAA9D,gBAAW,GAAX,WAAW,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAOD,MAAM,OAAO,kBAAyB,SAAQ,eAAqB;IAGjE,YAAY,WAA0B,EAAU,WAA4B,EAAE,OAAwB;QACpG,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAAiB;QAFpE,WAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,eAAe,CAAC,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACX,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,aAAa,CAAC,GAAQ,EAAE,KAAQ;QACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CAEF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js
deleted file mode 100644
index 3b8903b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function distinctUntilChanged(compare, keySelector) {
-    return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));
-}
-class DistinctUntilChangedOperator {
-    constructor(compare, keySelector) {
-        this.compare = compare;
-        this.keySelector = keySelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
-    }
-}
-class DistinctUntilChangedSubscriber extends Subscriber {
-    constructor(destination, compare, keySelector) {
-        super(destination);
-        this.keySelector = keySelector;
-        this.hasKey = false;
-        if (typeof compare === 'function') {
-            this.compare = compare;
-        }
-    }
-    compare(x, y) {
-        return x === y;
-    }
-    _next(value) {
-        let key;
-        try {
-            const { keySelector } = this;
-            key = keySelector ? keySelector(value) : value;
-        }
-        catch (err) {
-            return this.destination.error(err);
-        }
-        let result = false;
-        if (this.hasKey) {
-            try {
-                const { compare } = this;
-                result = compare(this.key, key);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-        }
-        else {
-            this.hasKey = true;
-        }
-        if (!result) {
-            this.key = key;
-            this.destination.next(value);
-        }
-    }
-}
-//# sourceMappingURL=distinctUntilChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map
deleted file mode 100644
index bec6d8c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8D3C,MAAM,UAAU,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,4BAA4B;IAChC,YAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;CACF;AAOD,MAAM,8BAAqC,SAAQ,UAAa;IAI9D,YAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAAa;QAJpC,WAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;IACH,CAAC;IAEO,OAAO,CAAC,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js
deleted file mode 100644
index 240fd1a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { distinctUntilChanged } from './distinctUntilChanged';
-export function distinctUntilKeyChanged(key, compare) {
-    return distinctUntilChanged((x, y) => compare ? compare(x[key], y[key]) : x[key] === y[key]);
-}
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map
deleted file mode 100644
index b32d8b3..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8E9D,MAAM,UAAU,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,oBAAoB,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrG,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js
deleted file mode 100644
index b95376f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { filter } from './filter';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { take } from './take';
-export function elementAt(index, defaultValue) {
-    if (index < 0) {
-        throw new ArgumentOutOfRangeError();
-    }
-    const hasDefaultValue = arguments.length >= 2;
-    return (source) => source.pipe(filter((v, i) => i === index), take(1), hasDefaultValue
-        ? defaultIfEmpty(defaultValue)
-        : throwIfEmpty(() => new ArgumentOutOfRangeError()));
-}
-//# sourceMappingURL=elementAt.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map
deleted file mode 100644
index e7cf7f7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../../../src/internal/operators/elementAt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkD9B,MAAM,UAAU,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;KAAE;IACvD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/endWith.js b/node_modules/rxjs/_esm2015/internal/operators/endWith.js
deleted file mode 100644
index cf52a35..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/endWith.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { concat } from '../observable/concat';
-import { of } from '../observable/of';
-export function endWith(...array) {
-    return (source) => concat(source, of(...array));
-}
-//# sourceMappingURL=endWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map
deleted file mode 100644
index 827ba1a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"endWith.js","sources":["../../../src/internal/operators/endWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AA8DtC,MAAM,UAAU,OAAO,CAAI,GAAG,KAA+B;IAC3D,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAkB,CAAC;AAClF,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/every.js b/node_modules/rxjs/_esm2015/internal/operators/every.js
deleted file mode 100644
index 7d4a048..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/every.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function every(predicate, thisArg) {
-    return (source) => source.lift(new EveryOperator(predicate, thisArg, source));
-}
-class EveryOperator {
-    constructor(predicate, thisArg, source) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-        this.source = source;
-    }
-    call(observer, source) {
-        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
-    }
-}
-class EverySubscriber extends Subscriber {
-    constructor(destination, predicate, thisArg, source) {
-        super(destination);
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-        this.source = source;
-        this.index = 0;
-        this.thisArg = thisArg || this;
-    }
-    notifyComplete(everyValueMatch) {
-        this.destination.next(everyValueMatch);
-        this.destination.complete();
-    }
-    _next(value) {
-        let result = false;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (!result) {
-            this.notifyComplete(false);
-        }
-    }
-    _complete() {
-        this.notifyComplete(true);
-    }
-}
-//# sourceMappingURL=every.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/every.js.map b/node_modules/rxjs/_esm2015/internal/operators/every.js.map
deleted file mode 100644
index 2d15164..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../../../src/internal/operators/every.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwB3C,MAAM,UAAU,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAG5C,YAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHD,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAK;QACZ,WAAM,GAAN,MAAM,CAAgB;QALlC,UAAK,GAAW,CAAC,CAAC;QAOxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAEO,cAAc,CAAC,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js
deleted file mode 100644
index ae4a72c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function exhaust() {
-    return (source) => source.lift(new SwitchFirstOperator());
-}
-class SwitchFirstOperator {
-    call(subscriber, source) {
-        return source.subscribe(new SwitchFirstSubscriber(subscriber));
-    }
-}
-class SwitchFirstSubscriber extends OuterSubscriber {
-    constructor(destination) {
-        super(destination);
-        this.hasCompleted = false;
-        this.hasSubscription = false;
-    }
-    _next(value) {
-        if (!this.hasSubscription) {
-            this.hasSubscription = true;
-            this.add(subscribeToResult(this, value));
-        }
-    }
-    _complete() {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-    }
-    notifyComplete(innerSub) {
-        this.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=exhaust.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map
deleted file mode 100644
index a9a2c6a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../../../src/internal/operators/exhaust.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAkD9D,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,mBAAmB;IACvB,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAOD,MAAM,qBAAyB,SAAQ,eAAqB;IAI1D,YAAY,WAA0B;QACpC,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;IAIzC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,cAAc,CAAC,QAAsB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js
deleted file mode 100644
index 89ac718..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { map } from './map';
-import { from } from '../observable/from';
-export function exhaustMap(project, resultSelector) {
-    if (resultSelector) {
-        return (source) => source.pipe(exhaustMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));
-    }
-    return (source) => source.lift(new ExhaustMapOperator(project));
-}
-class ExhaustMapOperator {
-    constructor(project) {
-        this.project = project;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
-    }
-}
-class ExhaustMapSubscriber extends OuterSubscriber {
-    constructor(destination, project) {
-        super(destination);
-        this.project = project;
-        this.hasSubscription = false;
-        this.hasCompleted = false;
-        this.index = 0;
-    }
-    _next(value) {
-        if (!this.hasSubscription) {
-            this.tryNext(value);
-        }
-    }
-    tryNext(value) {
-        let result;
-        const index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.hasSubscription = true;
-        this._innerSub(result, value, index);
-    }
-    _innerSub(result, value, index) {
-        const innerSubscriber = new InnerSubscriber(this, value, index);
-        const destination = this.destination;
-        destination.add(innerSubscriber);
-        const innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    }
-    _complete() {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    }
-    notifyError(err) {
-        this.destination.error(err);
-    }
-    notifyComplete(innerSub) {
-        const destination = this.destination;
-        destination.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=exhaustMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map
deleted file mode 100644
index fbb1faf..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/expand.js b/node_modules/rxjs/_esm2015/internal/operators/expand.js
deleted file mode 100644
index b999780..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/expand.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function expand(project, concurrent = Number.POSITIVE_INFINITY, scheduler = undefined) {
-    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
-    return (source) => source.lift(new ExpandOperator(project, concurrent, scheduler));
-}
-export class ExpandOperator {
-    constructor(project, concurrent, scheduler) {
-        this.project = project;
-        this.concurrent = concurrent;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
-    }
-}
-export class ExpandSubscriber extends OuterSubscriber {
-    constructor(destination, project, concurrent, scheduler) {
-        super(destination);
-        this.project = project;
-        this.concurrent = concurrent;
-        this.scheduler = scheduler;
-        this.index = 0;
-        this.active = 0;
-        this.hasCompleted = false;
-        if (concurrent < Number.POSITIVE_INFINITY) {
-            this.buffer = [];
-        }
-    }
-    static dispatch(arg) {
-        const { subscriber, result, value, index } = arg;
-        subscriber.subscribeToProjection(result, value, index);
-    }
-    _next(value) {
-        const destination = this.destination;
-        if (destination.closed) {
-            this._complete();
-            return;
-        }
-        const index = this.index++;
-        if (this.active < this.concurrent) {
-            destination.next(value);
-            try {
-                const { project } = this;
-                const result = project(value, index);
-                if (!this.scheduler) {
-                    this.subscribeToProjection(result, value, index);
-                }
-                else {
-                    const state = { subscriber: this, result, value, index };
-                    const destination = this.destination;
-                    destination.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));
-                }
-            }
-            catch (e) {
-                destination.error(e);
-            }
-        }
-        else {
-            this.buffer.push(value);
-        }
-    }
-    subscribeToProjection(result, value, index) {
-        this.active++;
-        const destination = this.destination;
-        destination.add(subscribeToResult(this, result, value, index));
-    }
-    _complete() {
-        this.hasCompleted = true;
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this._next(innerValue);
-    }
-    notifyComplete(innerSub) {
-        const buffer = this.buffer;
-        const destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer && buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=expand.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/expand.js.map b/node_modules/rxjs/_esm2015/internal/operators/expand.js.map
deleted file mode 100644
index 3e86451..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/filter.js b/node_modules/rxjs/_esm2015/internal/operators/filter.js
deleted file mode 100644
index 3c94a97..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/filter.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function filter(predicate, thisArg) {
-    return function filterOperatorFunction(source) {
-        return source.lift(new FilterOperator(predicate, thisArg));
-    };
-}
-class FilterOperator {
-    constructor(predicate, thisArg) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
-    }
-}
-class FilterSubscriber extends Subscriber {
-    constructor(destination, predicate, thisArg) {
-        super(destination);
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-        this.count = 0;
-    }
-    _next(value) {
-        let result;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.destination.next(value);
-        }
-    }
-}
-//# sourceMappingURL=filter.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/filter.js.map b/node_modules/rxjs/_esm2015/internal/operators/filter.js.map
deleted file mode 100644
index d0341d0..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../../../src/internal/operators/filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwD3C,MAAM,UAAU,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAI7C,YAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAC9B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAK;QAJhC,UAAK,GAAW,CAAC,CAAC;IAMlB,CAAC;IAIS,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/finalize.js b/node_modules/rxjs/_esm2015/internal/operators/finalize.js
deleted file mode 100644
index 0e4b481..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/finalize.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-export function finalize(callback) {
-    return (source) => source.lift(new FinallyOperator(callback));
-}
-class FinallyOperator {
-    constructor(callback) {
-        this.callback = callback;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new FinallySubscriber(subscriber, this.callback));
-    }
-}
-class FinallySubscriber extends Subscriber {
-    constructor(destination, callback) {
-        super(destination);
-        this.add(new Subscription(callback));
-    }
-}
-//# sourceMappingURL=finalize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map b/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map
deleted file mode 100644
index 41375be..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finalize.js","sources":["../../../src/internal/operators/finalize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAI,QAAoB;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,eAAe;IACnB,YAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF;AAOD,MAAM,iBAAqB,SAAQ,UAAa;IAC9C,YAAY,WAA0B,EAAE,QAAoB;QAC1D,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/find.js b/node_modules/rxjs/_esm2015/internal/operators/find.js
deleted file mode 100644
index 37d80e1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/find.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function find(predicate, thisArg) {
-    if (typeof predicate !== 'function') {
-        throw new TypeError('predicate is not a function');
-    }
-    return (source) => source.lift(new FindValueOperator(predicate, source, false, thisArg));
-}
-export class FindValueOperator {
-    constructor(predicate, source, yieldIndex, thisArg) {
-        this.predicate = predicate;
-        this.source = source;
-        this.yieldIndex = yieldIndex;
-        this.thisArg = thisArg;
-    }
-    call(observer, source) {
-        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
-    }
-}
-export class FindValueSubscriber extends Subscriber {
-    constructor(destination, predicate, source, yieldIndex, thisArg) {
-        super(destination);
-        this.predicate = predicate;
-        this.source = source;
-        this.yieldIndex = yieldIndex;
-        this.thisArg = thisArg;
-        this.index = 0;
-    }
-    notifyComplete(value) {
-        const destination = this.destination;
-        destination.next(value);
-        destination.complete();
-        this.unsubscribe();
-    }
-    _next(value) {
-        const { predicate, thisArg } = this;
-        const index = this.index++;
-        try {
-            const result = predicate.call(thisArg || this, value, index, this.source);
-            if (result) {
-                this.notifyComplete(this.yieldIndex ? index : value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    }
-    _complete() {
-        this.notifyComplete(this.yieldIndex ? -1 : undefined);
-    }
-}
-//# sourceMappingURL=find.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/find.js.map b/node_modules/rxjs/_esm2015/internal/operators/find.js.map
deleted file mode 100644
index 5b684be..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../../../src/internal/operators/find.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA8CzC,MAAM,UAAU,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,CAAC;AACvI,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,IAAI,CAAC,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAGvD,YAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAC/B,KAAK,CAAC,WAAW,CAAC,CAAC;QAJD,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;QANzB,UAAK,GAAW,CAAC,CAAC;IAQ1B,CAAC;IAEO,cAAc,CAAC,KAAU;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,EAAC,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js
deleted file mode 100644
index 6472721..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { FindValueOperator } from '../operators/find';
-export function findIndex(predicate, thisArg) {
-    return (source) => source.lift(new FindValueOperator(predicate, source, true, thisArg));
-}
-//# sourceMappingURL=findIndex.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map
deleted file mode 100644
index 29d8dbf..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../../../src/internal/operators/findIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0CtD,MAAM,UAAU,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,CAAC;AAC5H,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/first.js b/node_modules/rxjs/_esm2015/internal/operators/first.js
deleted file mode 100644
index 406bba0..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/first.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { EmptyError } from '../util/EmptyError';
-import { filter } from './filter';
-import { take } from './take';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { throwIfEmpty } from './throwIfEmpty';
-import { identity } from '../util/identity';
-export function first(predicate, defaultValue) {
-    const hasDefaultValue = arguments.length >= 2;
-    return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));
-}
-//# sourceMappingURL=first.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/first.js.map b/node_modules/rxjs/_esm2015/internal/operators/first.js.map
deleted file mode 100644
index 44ff5c9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../../../src/internal/operators/first.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuE5C,MAAM,UAAU,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,IAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAC7F,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js
deleted file mode 100644
index c60d49d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js
+++ /dev/null
@@ -1,164 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-export function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
-    return (source) => source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
-}
-class GroupByOperator {
-    constructor(keySelector, elementSelector, durationSelector, subjectSelector) {
-        this.keySelector = keySelector;
-        this.elementSelector = elementSelector;
-        this.durationSelector = durationSelector;
-        this.subjectSelector = subjectSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
-    }
-}
-class GroupBySubscriber extends Subscriber {
-    constructor(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
-        super(destination);
-        this.keySelector = keySelector;
-        this.elementSelector = elementSelector;
-        this.durationSelector = durationSelector;
-        this.subjectSelector = subjectSelector;
-        this.groups = null;
-        this.attemptedToUnsubscribe = false;
-        this.count = 0;
-    }
-    _next(value) {
-        let key;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            this.error(err);
-            return;
-        }
-        this._group(value, key);
-    }
-    _group(value, key) {
-        let groups = this.groups;
-        if (!groups) {
-            groups = this.groups = new Map();
-        }
-        let group = groups.get(key);
-        let element;
-        if (this.elementSelector) {
-            try {
-                element = this.elementSelector(value);
-            }
-            catch (err) {
-                this.error(err);
-            }
-        }
-        else {
-            element = value;
-        }
-        if (!group) {
-            group = (this.subjectSelector ? this.subjectSelector() : new Subject());
-            groups.set(key, group);
-            const groupedObservable = new GroupedObservable(key, group, this);
-            this.destination.next(groupedObservable);
-            if (this.durationSelector) {
-                let duration;
-                try {
-                    duration = this.durationSelector(new GroupedObservable(key, group));
-                }
-                catch (err) {
-                    this.error(err);
-                    return;
-                }
-                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
-            }
-        }
-        if (!group.closed) {
-            group.next(element);
-        }
-    }
-    _error(err) {
-        const groups = this.groups;
-        if (groups) {
-            groups.forEach((group, key) => {
-                group.error(err);
-            });
-            groups.clear();
-        }
-        this.destination.error(err);
-    }
-    _complete() {
-        const groups = this.groups;
-        if (groups) {
-            groups.forEach((group, key) => {
-                group.complete();
-            });
-            groups.clear();
-        }
-        this.destination.complete();
-    }
-    removeGroup(key) {
-        this.groups.delete(key);
-    }
-    unsubscribe() {
-        if (!this.closed) {
-            this.attemptedToUnsubscribe = true;
-            if (this.count === 0) {
-                super.unsubscribe();
-            }
-        }
-    }
-}
-class GroupDurationSubscriber extends Subscriber {
-    constructor(key, group, parent) {
-        super(group);
-        this.key = key;
-        this.group = group;
-        this.parent = parent;
-    }
-    _next(value) {
-        this.complete();
-    }
-    _unsubscribe() {
-        const { parent, key } = this;
-        this.key = this.parent = null;
-        if (parent) {
-            parent.removeGroup(key);
-        }
-    }
-}
-export class GroupedObservable extends Observable {
-    constructor(key, groupSubject, refCountSubscription) {
-        super();
-        this.key = key;
-        this.groupSubject = groupSubject;
-        this.refCountSubscription = refCountSubscription;
-    }
-    _subscribe(subscriber) {
-        const subscription = new Subscription();
-        const { refCountSubscription, groupSubject } = this;
-        if (refCountSubscription && !refCountSubscription.closed) {
-            subscription.add(new InnerRefCountSubscription(refCountSubscription));
-        }
-        subscription.add(groupSubject.subscribe(subscriber));
-        return subscription;
-    }
-}
-class InnerRefCountSubscription extends Subscription {
-    constructor(parent) {
-        super();
-        this.parent = parent;
-        parent.count++;
-    }
-    unsubscribe() {
-        const parent = this.parent;
-        if (!parent.closed && !this.closed) {
-            super.unsubscribe();
-            parent.count -= 1;
-            if (parent.count === 0 && parent.attemptedToUnsubscribe) {
-                parent.unsubscribe();
-            }
-        }
-    }
-}
-//# sourceMappingURL=groupBy.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map
deleted file mode 100644
index 7725828..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../../../src/internal/operators/groupBy.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js
deleted file mode 100644
index 9b4d214..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function ignoreElements() {
-    return function ignoreElementsOperatorFunction(source) {
-        return source.lift(new IgnoreElementsOperator());
-    };
-}
-class IgnoreElementsOperator {
-    call(subscriber, source) {
-        return source.subscribe(new IgnoreElementsSubscriber(subscriber));
-    }
-}
-class IgnoreElementsSubscriber extends Subscriber {
-    _next(unused) {
-    }
-}
-//# sourceMappingURL=ignoreElements.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map
deleted file mode 100644
index 9ac771c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8B3C,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB;IAC1B,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAOD,MAAM,wBAA4B,SAAQ,UAAa;IAC3C,KAAK,CAAC,MAAS;IAEzB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/index.js b/node_modules/rxjs/_esm2015/internal/operators/index.js
deleted file mode 100644
index 52a926c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/index.js
+++ /dev/null
@@ -1,103 +0,0 @@
-export { audit } from './audit';
-export { auditTime } from './auditTime';
-export { buffer } from './buffer';
-export { bufferCount } from './bufferCount';
-export { bufferTime } from './bufferTime';
-export { bufferToggle } from './bufferToggle';
-export { bufferWhen } from './bufferWhen';
-export { catchError } from './catchError';
-export { combineAll } from './combineAll';
-export { combineLatest } from './combineLatest';
-export { concat } from './concat';
-export { concatAll } from './concatAll';
-export { concatMap } from './concatMap';
-export { concatMapTo } from './concatMapTo';
-export { count } from './count';
-export { debounce } from './debounce';
-export { debounceTime } from './debounceTime';
-export { defaultIfEmpty } from './defaultIfEmpty';
-export { delay } from './delay';
-export { delayWhen } from './delayWhen';
-export { dematerialize } from './dematerialize';
-export { distinct } from './distinct';
-export { distinctUntilChanged } from './distinctUntilChanged';
-export { distinctUntilKeyChanged } from './distinctUntilKeyChanged';
-export { elementAt } from './elementAt';
-export { every } from './every';
-export { exhaust } from './exhaust';
-export { exhaustMap } from './exhaustMap';
-export { expand } from './expand';
-export { filter } from './filter';
-export { finalize } from './finalize';
-export { find } from './find';
-export { findIndex } from './findIndex';
-export { first } from './first';
-export { groupBy } from './groupBy';
-export { ignoreElements } from './ignoreElements';
-export { isEmpty } from './isEmpty';
-export { last } from './last';
-export { map } from './map';
-export { mapTo } from './mapTo';
-export { materialize } from './materialize';
-export { max } from './max';
-export { merge } from './merge';
-export { mergeAll } from './mergeAll';
-export { mergeMap } from './mergeMap';
-export { mergeMap as flatMap } from './mergeMap';
-export { mergeMapTo } from './mergeMapTo';
-export { mergeScan } from './mergeScan';
-export { min } from './min';
-export { multicast } from './multicast';
-export { observeOn } from './observeOn';
-export { onErrorResumeNext } from './onErrorResumeNext';
-export { pairwise } from './pairwise';
-export { partition } from './partition';
-export { pluck } from './pluck';
-export { publish } from './publish';
-export { publishBehavior } from './publishBehavior';
-export { publishLast } from './publishLast';
-export { publishReplay } from './publishReplay';
-export { race } from './race';
-export { reduce } from './reduce';
-export { repeat } from './repeat';
-export { repeatWhen } from './repeatWhen';
-export { retry } from './retry';
-export { retryWhen } from './retryWhen';
-export { refCount } from './refCount';
-export { sample } from './sample';
-export { sampleTime } from './sampleTime';
-export { scan } from './scan';
-export { sequenceEqual } from './sequenceEqual';
-export { share } from './share';
-export { shareReplay } from './shareReplay';
-export { single } from './single';
-export { skip } from './skip';
-export { skipLast } from './skipLast';
-export { skipUntil } from './skipUntil';
-export { skipWhile } from './skipWhile';
-export { startWith } from './startWith';
-export { subscribeOn } from './subscribeOn';
-export { switchAll } from './switchAll';
-export { switchMap } from './switchMap';
-export { switchMapTo } from './switchMapTo';
-export { take } from './take';
-export { takeLast } from './takeLast';
-export { takeUntil } from './takeUntil';
-export { takeWhile } from './takeWhile';
-export { tap } from './tap';
-export { throttle } from './throttle';
-export { throttleTime } from './throttleTime';
-export { timeInterval } from './timeInterval';
-export { timeout } from './timeout';
-export { timeoutWith } from './timeoutWith';
-export { timestamp } from './timestamp';
-export { toArray } from './toArray';
-export { window } from './window';
-export { windowCount } from './windowCount';
-export { windowTime } from './windowTime';
-export { windowToggle } from './windowToggle';
-export { windowWhen } from './windowWhen';
-export { withLatestFrom } from './withLatestFrom';
-export { zip } from './zip';
-export { zipAll } from './zipAll';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/index.js.map b/node_modules/rxjs/_esm2015/internal/operators/index.js.map
deleted file mode 100644
index 9ba5647..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../../src/internal/operators/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js
deleted file mode 100644
index a1b8b5a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function isEmpty() {
-    return (source) => source.lift(new IsEmptyOperator());
-}
-class IsEmptyOperator {
-    call(observer, source) {
-        return source.subscribe(new IsEmptySubscriber(observer));
-    }
-}
-class IsEmptySubscriber extends Subscriber {
-    constructor(destination) {
-        super(destination);
-    }
-    notifyComplete(isEmpty) {
-        const destination = this.destination;
-        destination.next(isEmpty);
-        destination.complete();
-    }
-    _next(value) {
-        this.notifyComplete(false);
-    }
-    _complete() {
-        this.notifyComplete(true);
-    }
-}
-//# sourceMappingURL=isEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map
deleted file mode 100644
index c0f8e63..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgE3C,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,eAAe;IACnB,IAAI,CAAE,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AAOD,MAAM,iBAAkB,SAAQ,UAAe;IAC7C,YAAY,WAAgC;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/last.js b/node_modules/rxjs/_esm2015/internal/operators/last.js
deleted file mode 100644
index ff65d75..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/last.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { EmptyError } from '../util/EmptyError';
-import { filter } from './filter';
-import { takeLast } from './takeLast';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { identity } from '../util/identity';
-export function last(predicate, defaultValue) {
-    const hasDefaultValue = arguments.length >= 2;
-    return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));
-}
-//# sourceMappingURL=last.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/last.js.map b/node_modules/rxjs/_esm2015/internal/operators/last.js.map
deleted file mode 100644
index 95eb25f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../../../src/internal/operators/last.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAkC5C,MAAM,UAAU,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,QAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAC7F,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/map.js b/node_modules/rxjs/_esm2015/internal/operators/map.js
deleted file mode 100644
index 3be1e76..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/map.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function map(project, thisArg) {
-    return function mapOperation(source) {
-        if (typeof project !== 'function') {
-            throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
-        }
-        return source.lift(new MapOperator(project, thisArg));
-    };
-}
-export class MapOperator {
-    constructor(project, thisArg) {
-        this.project = project;
-        this.thisArg = thisArg;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
-    }
-}
-class MapSubscriber extends Subscriber {
-    constructor(destination, project, thisArg) {
-        super(destination);
-        this.project = project;
-        this.count = 0;
-        this.thisArg = thisArg || this;
-    }
-    _next(value) {
-        let result;
-        try {
-            result = this.project.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    }
-}
-//# sourceMappingURL=map.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/map.js.map b/node_modules/rxjs/_esm2015/internal/operators/map.js.map
deleted file mode 100644
index b396f64..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../../../src/internal/operators/map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2C3C,MAAM,UAAU,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,WAAW;IACtB,YAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,aAAoB,SAAQ,UAAa;IAI7C,YAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QACtB,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAgC;QAJ3D,UAAK,GAAW,CAAC,CAAC;QAOhB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAIS,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js
deleted file mode 100644
index 160be16..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function mapTo(value) {
-    return (source) => source.lift(new MapToOperator(value));
-}
-class MapToOperator {
-    constructor(value) {
-        this.value = value;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new MapToSubscriber(subscriber, this.value));
-    }
-}
-class MapToSubscriber extends Subscriber {
-    constructor(destination, value) {
-        super(destination);
-        this.value = value;
-    }
-    _next(x) {
-        this.destination.next(this.value);
-    }
-}
-//# sourceMappingURL=mapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map
deleted file mode 100644
index d572ed8..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../../../src/internal/operators/mapTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAO,KAAQ;IAClC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,aAAa;IAIjB,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAE,KAAQ;QAC9C,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/materialize.js b/node_modules/rxjs/_esm2015/internal/operators/materialize.js
deleted file mode 100644
index 66eac6c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/materialize.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function materialize() {
-    return function materializeOperatorFunction(source) {
-        return source.lift(new MaterializeOperator());
-    };
-}
-class MaterializeOperator {
-    call(subscriber, source) {
-        return source.subscribe(new MaterializeSubscriber(subscriber));
-    }
-}
-class MaterializeSubscriber extends Subscriber {
-    constructor(destination) {
-        super(destination);
-    }
-    _next(value) {
-        this.destination.next(Notification.createNext(value));
-    }
-    _error(err) {
-        const destination = this.destination;
-        destination.next(Notification.createError(err));
-        destination.complete();
-    }
-    _complete() {
-        const destination = this.destination;
-        destination.next(Notification.createComplete());
-        destination.complete();
-    }
-}
-//# sourceMappingURL=materialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map b/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map
deleted file mode 100644
index cd635a6..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../../../src/internal/operators/materialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqD/C,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB;IACvB,IAAI,CAAC,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAOD,MAAM,qBAAyB,SAAQ,UAAa;IAClD,YAAY,WAAwC;QAClD,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/max.js b/node_modules/rxjs/_esm2015/internal/operators/max.js
deleted file mode 100644
index 6d2083e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/max.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { reduce } from './reduce';
-export function max(comparer) {
-    const max = (typeof comparer === 'function')
-        ? (x, y) => comparer(x, y) > 0 ? x : y
-        : (x, y) => x > y ? x : y;
-    return reduce(max);
-}
-//# sourceMappingURL=max.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/max.js.map b/node_modules/rxjs/_esm2015/internal/operators/max.js.map
deleted file mode 100644
index 0009e69..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../../../src/internal/operators/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgDlC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/merge.js b/node_modules/rxjs/_esm2015/internal/operators/merge.js
deleted file mode 100644
index 691be8b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/merge.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { merge as mergeStatic } from '../observable/merge';
-export function merge(...observables) {
-    return (source) => source.lift.call(mergeStatic(source, ...observables));
-}
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/merge.js.map b/node_modules/rxjs/_esm2015/internal/operators/merge.js.map
deleted file mode 100644
index 52e603c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../../src/internal/operators/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsC3D,MAAM,UAAU,KAAK,CAAO,GAAG,WAAiE;IAC9F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AAC1F,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js
deleted file mode 100644
index 05d63a6..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { mergeMap } from './mergeMap';
-import { identity } from '../util/identity';
-export function mergeAll(concurrent = Number.POSITIVE_INFINITY) {
-    return mergeMap(identity, concurrent);
-}
-//# sourceMappingURL=mergeAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map
deleted file mode 100644
index 69da147..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6D5C,MAAM,UAAU,QAAQ,CAAI,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js
deleted file mode 100644
index 09a50ce..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js
+++ /dev/null
@@ -1,86 +0,0 @@
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { map } from './map';
-import { from } from '../observable/from';
-export function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {
-    if (typeof resultSelector === 'function') {
-        return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));
-    }
-    else if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return (source) => source.lift(new MergeMapOperator(project, concurrent));
-}
-export class MergeMapOperator {
-    constructor(project, concurrent = Number.POSITIVE_INFINITY) {
-        this.project = project;
-        this.concurrent = concurrent;
-    }
-    call(observer, source) {
-        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
-    }
-}
-export class MergeMapSubscriber extends OuterSubscriber {
-    constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {
-        super(destination);
-        this.project = project;
-        this.concurrent = concurrent;
-        this.hasCompleted = false;
-        this.buffer = [];
-        this.active = 0;
-        this.index = 0;
-    }
-    _next(value) {
-        if (this.active < this.concurrent) {
-            this._tryNext(value);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    }
-    _tryNext(value) {
-        let result;
-        const index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.active++;
-        this._innerSub(result, value, index);
-    }
-    _innerSub(ish, value, index) {
-        const innerSubscriber = new InnerSubscriber(this, value, index);
-        const destination = this.destination;
-        destination.add(innerSubscriber);
-        const innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    }
-    _complete() {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    }
-    notifyComplete(innerSub) {
-        const buffer = this.buffer;
-        this.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=mergeMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map
deleted file mode 100644
index d452ec8..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js
deleted file mode 100644
index d4184ba..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { mergeMap } from './mergeMap';
-export function mergeMapTo(innerObservable, resultSelector, concurrent = Number.POSITIVE_INFINITY) {
-    if (typeof resultSelector === 'function') {
-        return mergeMap(() => innerObservable, resultSelector, concurrent);
-    }
-    if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return mergeMap(() => innerObservable, concurrent);
-}
-//# sourceMappingURL=mergeMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map
deleted file mode 100644
index c7db281..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiDtC,MAAM,UAAU,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js
deleted file mode 100644
index db27069..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-export function mergeScan(accumulator, seed, concurrent = Number.POSITIVE_INFINITY) {
-    return (source) => source.lift(new MergeScanOperator(accumulator, seed, concurrent));
-}
-export class MergeScanOperator {
-    constructor(accumulator, seed, concurrent) {
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.concurrent = concurrent;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));
-    }
-}
-export class MergeScanSubscriber extends OuterSubscriber {
-    constructor(destination, accumulator, acc, concurrent) {
-        super(destination);
-        this.accumulator = accumulator;
-        this.acc = acc;
-        this.concurrent = concurrent;
-        this.hasValue = false;
-        this.hasCompleted = false;
-        this.buffer = [];
-        this.active = 0;
-        this.index = 0;
-    }
-    _next(value) {
-        if (this.active < this.concurrent) {
-            const index = this.index++;
-            const destination = this.destination;
-            let ish;
-            try {
-                const { accumulator } = this;
-                ish = accumulator(this.acc, value, index);
-            }
-            catch (e) {
-                return destination.error(e);
-            }
-            this.active++;
-            this._innerSub(ish, value, index);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    }
-    _innerSub(ish, value, index) {
-        const innerSubscriber = new InnerSubscriber(this, value, index);
-        const destination = this.destination;
-        destination.add(innerSubscriber);
-        const innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    }
-    _complete() {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        const { destination } = this;
-        this.acc = innerValue;
-        this.hasValue = true;
-        destination.next(innerValue);
-    }
-    notifyComplete(innerSub) {
-        const buffer = this.buffer;
-        const destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=mergeScan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map
deleted file mode 100644
index 37a2788..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/min.js b/node_modules/rxjs/_esm2015/internal/operators/min.js
deleted file mode 100644
index 1f7fc8c..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { reduce } from './reduce';
-export function min(comparer) {
-    const min = (typeof comparer === 'function')
-        ? (x, y) => comparer(x, y) < 0 ? x : y
-        : (x, y) => x < y ? x : y;
-    return reduce(min);
-}
-//# sourceMappingURL=min.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/min.js.map b/node_modules/rxjs/_esm2015/internal/operators/min.js.map
deleted file mode 100644
index 1793b06..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../../../src/internal/operators/min.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA+ClC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/multicast.js b/node_modules/rxjs/_esm2015/internal/operators/multicast.js
deleted file mode 100644
index 6e154c8..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/multicast.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import { connectableObservableDescriptor } from '../observable/ConnectableObservable';
-export function multicast(subjectOrSubjectFactory, selector) {
-    return function multicastOperatorFunction(source) {
-        let subjectFactory;
-        if (typeof subjectOrSubjectFactory === 'function') {
-            subjectFactory = subjectOrSubjectFactory;
-        }
-        else {
-            subjectFactory = function subjectFactory() {
-                return subjectOrSubjectFactory;
-            };
-        }
-        if (typeof selector === 'function') {
-            return source.lift(new MulticastOperator(subjectFactory, selector));
-        }
-        const connectable = Object.create(source, connectableObservableDescriptor);
-        connectable.source = source;
-        connectable.subjectFactory = subjectFactory;
-        return connectable;
-    };
-}
-export class MulticastOperator {
-    constructor(subjectFactory, selector) {
-        this.subjectFactory = subjectFactory;
-        this.selector = selector;
-    }
-    call(subscriber, source) {
-        const { selector } = this;
-        const subject = this.subjectFactory();
-        const subscription = selector(subject).subscribe(subscriber);
-        subscription.add(source.subscribe(subject));
-        return subscription;
-    }
-}
-//# sourceMappingURL=multicast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map b/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map
deleted file mode 100644
index 254c784..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../../../src/internal/operators/multicast.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AA6B7G,MAAM,UAAU,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js
deleted file mode 100644
index 1efe6d4..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function observeOn(scheduler, delay = 0) {
-    return function observeOnOperatorFunction(source) {
-        return source.lift(new ObserveOnOperator(scheduler, delay));
-    };
-}
-export class ObserveOnOperator {
-    constructor(scheduler, delay = 0) {
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
-    }
-}
-export class ObserveOnSubscriber extends Subscriber {
-    constructor(destination, scheduler, delay = 0) {
-        super(destination);
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    static dispatch(arg) {
-        const { notification, destination } = arg;
-        notification.observe(destination);
-        this.unsubscribe();
-    }
-    scheduleMessage(notification) {
-        const destination = this.destination;
-        destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
-    }
-    _next(value) {
-        this.scheduleMessage(Notification.createNext(value));
-    }
-    _error(err) {
-        this.scheduleMessage(Notification.createError(err));
-        this.unsubscribe();
-    }
-    _complete() {
-        this.scheduleMessage(Notification.createComplete());
-        this.unsubscribe();
-    }
-}
-export class ObserveOnMessage {
-    constructor(notification, destination) {
-        this.notification = notification;
-        this.destination = destination;
-    }
-}
-//# sourceMappingURL=observeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map
deleted file mode 100644
index 65e6cdc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAwB,EAAU,QAAgB,CAAC;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAQvD,YAAY,WAA0B,EAClB,SAAwB,EACxB,QAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAY;IAErC,CAAC;IAVD,MAAM,CAAC,QAAQ,CAA0C,GAAqB;QAC5E,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,eAAe,CAAC,YAA+B;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,YAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js
deleted file mode 100644
index 67a64f7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import { from } from '../observable/from';
-import { isArray } from '../util/isArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function onErrorResumeNext(...nextSources) {
-    if (nextSources.length === 1 && isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    return (source) => source.lift(new OnErrorResumeNextOperator(nextSources));
-}
-export function onErrorResumeNextStatic(...nextSources) {
-    let source = null;
-    if (nextSources.length === 1 && isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    source = nextSources.shift();
-    return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));
-}
-class OnErrorResumeNextOperator {
-    constructor(nextSources) {
-        this.nextSources = nextSources;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
-    }
-}
-class OnErrorResumeNextSubscriber extends OuterSubscriber {
-    constructor(destination, nextSources) {
-        super(destination);
-        this.destination = destination;
-        this.nextSources = nextSources;
-    }
-    notifyError(error, innerSub) {
-        this.subscribeToNextSource();
-    }
-    notifyComplete(innerSub) {
-        this.subscribeToNextSource();
-    }
-    _error(err) {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    }
-    _complete() {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    }
-    subscribeToNextSource() {
-        const next = this.nextSources.shift();
-        if (!!next) {
-            const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-            const destination = this.destination;
-            destination.add(innerSubscriber);
-            const innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        }
-        else {
-            this.destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map
deleted file mode 100644
index fe3cf7a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js
deleted file mode 100644
index 0013672..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function pairwise() {
-    return (source) => source.lift(new PairwiseOperator());
-}
-class PairwiseOperator {
-    call(subscriber, source) {
-        return source.subscribe(new PairwiseSubscriber(subscriber));
-    }
-}
-class PairwiseSubscriber extends Subscriber {
-    constructor(destination) {
-        super(destination);
-        this.hasPrev = false;
-    }
-    _next(value) {
-        let pair;
-        if (this.hasPrev) {
-            pair = [this.prev, value];
-        }
-        else {
-            this.hasPrev = true;
-        }
-        this.prev = value;
-        if (pair) {
-            this.destination.next(pair);
-        }
-    }
-}
-//# sourceMappingURL=pairwise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map
deleted file mode 100644
index f587741..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../../../src/internal/operators/pairwise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8C3C,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,gBAAgB;IACpB,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA+B;QACzC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,YAAO,GAAY,KAAK,CAAC;IAIjC,CAAC;IAED,KAAK,CAAC,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/partition.js b/node_modules/rxjs/_esm2015/internal/operators/partition.js
deleted file mode 100644
index 6ef7d98..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/partition.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { not } from '../util/not';
-import { filter } from './filter';
-export function partition(predicate, thisArg) {
-    return (source) => [
-        filter(predicate, thisArg)(source),
-        filter(not(predicate, thisArg))(source)
-    ];
-}
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/partition.js.map b/node_modules/rxjs/_esm2015/internal/operators/partition.js.map
deleted file mode 100644
index aa945f5..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../../src/internal/operators/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoDlC,MAAM,UAAU,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/pluck.js b/node_modules/rxjs/_esm2015/internal/operators/pluck.js
deleted file mode 100644
index 4fa3bb1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/pluck.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { map } from './map';
-export function pluck(...properties) {
-    const length = properties.length;
-    if (length === 0) {
-        throw new Error('list of properties cannot be empty.');
-    }
-    return (source) => map(plucker(properties, length))(source);
-}
-function plucker(props, length) {
-    const mapper = (x) => {
-        let currentProp = x;
-        for (let i = 0; i < length; i++) {
-            const p = currentProp[props[i]];
-            if (typeof p !== 'undefined') {
-                currentProp = p;
-            }
-            else {
-                return undefined;
-            }
-        }
-        return currentProp;
-    };
-    return mapper;
-}
-//# sourceMappingURL=pluck.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map b/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map
deleted file mode 100644
index 9c47b49..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../../../src/internal/operators/pluck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA6C5B,MAAM,UAAU,KAAK,CAAO,GAAG,UAAoB;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publish.js b/node_modules/rxjs/_esm2015/internal/operators/publish.js
deleted file mode 100644
index 416d7fb..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publish.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Subject } from '../Subject';
-import { multicast } from './multicast';
-export function publish(selector) {
-    return selector ?
-        multicast(() => new Subject(), selector) :
-        multicast(new Subject());
-}
-//# sourceMappingURL=publish.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publish.js.map b/node_modules/rxjs/_esm2015/internal/operators/publish.js.map
deleted file mode 100644
index 89d79b2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../../../src/internal/operators/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA4DxC,MAAM,UAAU,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,EAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js
deleted file mode 100644
index 090d696..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BehaviorSubject } from '../BehaviorSubject';
-import { multicast } from './multicast';
-export function publishBehavior(value) {
-    return (source) => multicast(new BehaviorSubject(value))(source);
-}
-//# sourceMappingURL=publishBehavior.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map
deleted file mode 100644
index 04805f1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,MAAM,UAAU,eAAe,CAAI,KAAQ;IACzC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,CAAC;AACjH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js
deleted file mode 100644
index 5d4ea44..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { AsyncSubject } from '../AsyncSubject';
-import { multicast } from './multicast';
-export function publishLast() {
-    return (source) => multicast(new AsyncSubject())(source);
-}
-//# sourceMappingURL=publishLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map
deleted file mode 100644
index 120a3fd..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../../../src/internal/operators/publishLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8DxC,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js
deleted file mode 100644
index 9aca27f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { ReplaySubject } from '../ReplaySubject';
-import { multicast } from './multicast';
-export function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {
-    if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
-        scheduler = selectorOrScheduler;
-    }
-    const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
-    const subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-    return (source) => multicast(() => subject, selector)(source);
-}
-//# sourceMappingURL=publishReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map
deleted file mode 100644
index d8a7ac7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,UAAU,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,MAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,CAAC;AAC3G,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/race.js b/node_modules/rxjs/_esm2015/internal/operators/race.js
deleted file mode 100644
index faea6b1..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/race.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { isArray } from '../util/isArray';
-import { race as raceStatic } from '../observable/race';
-export function race(...observables) {
-    return function raceOperatorFunction(source) {
-        if (observables.length === 1 && isArray(observables[0])) {
-            observables = observables[0];
-        }
-        return source.lift.call(raceStatic(source, ...observables));
-    };
-}
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/race.js.map b/node_modules/rxjs/_esm2015/internal/operators/race.js.map
deleted file mode 100644
index ae477b9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../../src/internal/operators/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,MAAM,UAAU,IAAI,CAAI,GAAG,WAAgD;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAI,WAA+B,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/reduce.js b/node_modules/rxjs/_esm2015/internal/operators/reduce.js
deleted file mode 100644
index ca12987..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/reduce.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { scan } from './scan';
-import { takeLast } from './takeLast';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { pipe } from '../util/pipe';
-export function reduce(accumulator, seed) {
-    if (arguments.length >= 2) {
-        return function reduceOperatorFunctionWithSeed(source) {
-            return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);
-        };
-    }
-    return function reduceOperatorFunction(source) {
-        return pipe(scan((acc, value, index) => accumulator(acc, value, index + 1)), takeLast(1))(source);
-    };
-}
-//# sourceMappingURL=reduce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map b/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map
deleted file mode 100644
index 1382053..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA2DpC,MAAM,UAAU,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EACzE,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/refCount.js b/node_modules/rxjs/_esm2015/internal/operators/refCount.js
deleted file mode 100644
index 3de8d1e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/refCount.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function refCount() {
-    return function refCountOperatorFunction(source) {
-        return source.lift(new RefCountOperator(source));
-    };
-}
-class RefCountOperator {
-    constructor(connectable) {
-        this.connectable = connectable;
-    }
-    call(subscriber, source) {
-        const { connectable } = this;
-        connectable._refCount++;
-        const refCounter = new RefCountSubscriber(subscriber, connectable);
-        const subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    }
-}
-class RefCountSubscriber extends Subscriber {
-    constructor(destination, connectable) {
-        super(destination);
-        this.connectable = connectable;
-    }
-    _unsubscribe() {
-        const { connectable } = this;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        const refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        const { connection } = this;
-        const sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    }
-}
-//# sourceMappingURL=refCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map
deleted file mode 100644
index 2bbfde9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"refCount.js","sources":["../../../src/internal/operators/refCount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2D3C,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QAEzC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAClB,WAAqC;QACvD,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAA0B;IAEzD,CAAC;IAES,YAAY;QAEpB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeat.js b/node_modules/rxjs/_esm2015/internal/operators/repeat.js
deleted file mode 100644
index 8d4788f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/repeat.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { empty } from '../observable/empty';
-export function repeat(count = -1) {
-    return (source) => {
-        if (count === 0) {
-            return empty();
-        }
-        else if (count < 0) {
-            return source.lift(new RepeatOperator(-1, source));
-        }
-        else {
-            return source.lift(new RepeatOperator(count - 1, source));
-        }
-    };
-}
-class RepeatOperator {
-    constructor(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
-    }
-}
-class RepeatSubscriber extends Subscriber {
-    constructor(destination, count, source) {
-        super(destination);
-        this.count = count;
-        this.source = source;
-    }
-    complete() {
-        if (!this.isStopped) {
-            const { source, count } = this;
-            if (count === 0) {
-                return super.complete();
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    }
-}
-//# sourceMappingURL=repeat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map b/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map
deleted file mode 100644
index 10d378a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../../../src/internal/operators/repeat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA2D5C,MAAM,UAAU,MAAM,CAAI,QAAgB,CAAC,CAAC;IAC1C,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAC7C,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js
deleted file mode 100644
index fea24e2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function repeatWhen(notifier) {
-    return (source) => source.lift(new RepeatWhenOperator(notifier));
-}
-class RepeatWhenOperator {
-    constructor(notifier) {
-        this.notifier = notifier;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
-    }
-}
-class RepeatWhenSubscriber extends OuterSubscriber {
-    constructor(destination, notifier, source) {
-        super(destination);
-        this.notifier = notifier;
-        this.source = source;
-        this.sourceIsBeingSubscribedTo = true;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.sourceIsBeingSubscribedTo = true;
-        this.source.subscribe(this);
-    }
-    notifyComplete(innerSub) {
-        if (this.sourceIsBeingSubscribedTo === false) {
-            return super.complete();
-        }
-    }
-    complete() {
-        this.sourceIsBeingSubscribedTo = false;
-        if (!this.isStopped) {
-            if (!this.retries) {
-                this.subscribeToRetries();
-            }
-            if (!this.retriesSubscription || this.retriesSubscription.closed) {
-                return super.complete();
-            }
-            this._unsubscribeAndRecycle();
-            this.notifications.next();
-        }
-    }
-    _unsubscribe() {
-        const { notifications, retriesSubscription } = this;
-        if (notifications) {
-            notifications.unsubscribe();
-            this.notifications = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    }
-    _unsubscribeAndRecycle() {
-        const { _unsubscribe } = this;
-        this._unsubscribe = null;
-        super._unsubscribeAndRecycle();
-        this._unsubscribe = _unsubscribe;
-        return this;
-    }
-    subscribeToRetries() {
-        this.notifications = new Subject();
-        let retries;
-        try {
-            const { notifier } = this;
-            retries = notifier(this.notifications);
-        }
-        catch (e) {
-            return super.complete();
-        }
-        this.retries = retries;
-        this.retriesSubscription = subscribeToResult(this, retries);
-    }
-}
-//# sourceMappingURL=repeatWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map
deleted file mode 100644
index a474619..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAkC9D,MAAM,UAAU,UAAU,CAAI,QAA6D;IACzF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,kBAAkB;IACtB,YAAsB,QAA6D;QAA7D,aAAQ,GAAR,QAAQ,CAAqD;IACnF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAOD,MAAM,oBAA2B,SAAQ,eAAqB;IAO5D,YAAY,WAA0B,EAClB,QAA6D,EAC7D,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAAqD;QAC7D,WAAM,GAAN,MAAM,CAAe;QAJjC,8BAAyB,GAAY,IAAI,CAAC;IAMlD,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,QAA+B;QAC5C,IAAI,IAAI,CAAC,yBAAyB,KAAK,KAAK,EAAE;YAC5C,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;YACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;gBAChE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;aACzB;YAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3B;IACH,CAAC;IAGD,YAAY;QACV,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;QACpD,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAGD,sBAAsB;QACpB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAE9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC;QACZ,IAAI;YACF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAC1B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/retry.js b/node_modules/rxjs/_esm2015/internal/operators/retry.js
deleted file mode 100644
index e3036c2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/retry.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function retry(count = -1) {
-    return (source) => source.lift(new RetryOperator(count, source));
-}
-class RetryOperator {
-    constructor(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
-    }
-}
-class RetrySubscriber extends Subscriber {
-    constructor(destination, count, source) {
-        super(destination);
-        this.count = count;
-        this.source = source;
-    }
-    error(err) {
-        if (!this.isStopped) {
-            const { source, count } = this;
-            if (count === 0) {
-                return super.error(err);
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    }
-}
-//# sourceMappingURL=retry.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/retry.js.map b/node_modules/rxjs/_esm2015/internal/operators/retry.js.map
deleted file mode 100644
index e681649..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../../../src/internal/operators/retry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,KAAK,CAAI,QAAgB,CAAC,CAAC;IACzC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAC5C,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,KAAK,CAAC,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js
deleted file mode 100644
index 87fef62..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function retryWhen(notifier) {
-    return (source) => source.lift(new RetryWhenOperator(notifier, source));
-}
-class RetryWhenOperator {
-    constructor(notifier, source) {
-        this.notifier = notifier;
-        this.source = source;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
-    }
-}
-class RetryWhenSubscriber extends OuterSubscriber {
-    constructor(destination, notifier, source) {
-        super(destination);
-        this.notifier = notifier;
-        this.source = source;
-    }
-    error(err) {
-        if (!this.isStopped) {
-            let errors = this.errors;
-            let retries = this.retries;
-            let retriesSubscription = this.retriesSubscription;
-            if (!retries) {
-                errors = new Subject();
-                try {
-                    const { notifier } = this;
-                    retries = notifier(errors);
-                }
-                catch (e) {
-                    return super.error(e);
-                }
-                retriesSubscription = subscribeToResult(this, retries);
-            }
-            else {
-                this.errors = null;
-                this.retriesSubscription = null;
-            }
-            this._unsubscribeAndRecycle();
-            this.errors = errors;
-            this.retries = retries;
-            this.retriesSubscription = retriesSubscription;
-            errors.next(err);
-        }
-    }
-    _unsubscribe() {
-        const { errors, retriesSubscription } = this;
-        if (errors) {
-            errors.unsubscribe();
-            this.errors = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        const { _unsubscribe } = this;
-        this._unsubscribe = null;
-        this._unsubscribeAndRecycle();
-        this._unsubscribe = _unsubscribe;
-        this.source.subscribe(this);
-    }
-}
-//# sourceMappingURL=retryWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map
deleted file mode 100644
index 7756cf7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sample.js b/node_modules/rxjs/_esm2015/internal/operators/sample.js
deleted file mode 100644
index 6c2d33b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sample.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function sample(notifier) {
-    return (source) => source.lift(new SampleOperator(notifier));
-}
-class SampleOperator {
-    constructor(notifier) {
-        this.notifier = notifier;
-    }
-    call(subscriber, source) {
-        const sampleSubscriber = new SampleSubscriber(subscriber);
-        const subscription = source.subscribe(sampleSubscriber);
-        subscription.add(subscribeToResult(sampleSubscriber, this.notifier));
-        return subscription;
-    }
-}
-class SampleSubscriber extends OuterSubscriber {
-    constructor() {
-        super(...arguments);
-        this.hasValue = false;
-    }
-    _next(value) {
-        this.value = value;
-        this.hasValue = true;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    }
-    notifyComplete() {
-        this.emitValue();
-    }
-    emitValue() {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.value);
-        }
-    }
-}
-//# sourceMappingURL=sample.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sample.js.map b/node_modules/rxjs/_esm2015/internal/operators/sample.js.map
deleted file mode 100644
index 43bdf88..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../../../src/internal/operators/sample.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA4C9D,MAAM,UAAU,MAAM,CAAI,QAAyB;IACjD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAOD,MAAM,gBAAuB,SAAQ,eAAqB;IAA1D;;QAEU,aAAQ,GAAY,KAAK,CAAC;IAuBpC,CAAC;IArBW,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js
deleted file mode 100644
index a3b08c2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-export function sampleTime(period, scheduler = async) {
-    return (source) => source.lift(new SampleTimeOperator(period, scheduler));
-}
-class SampleTimeOperator {
-    constructor(period, scheduler) {
-        this.period = period;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
-    }
-}
-class SampleTimeSubscriber extends Subscriber {
-    constructor(destination, period, scheduler) {
-        super(destination);
-        this.period = period;
-        this.scheduler = scheduler;
-        this.hasValue = false;
-        this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));
-    }
-    _next(value) {
-        this.lastValue = value;
-        this.hasValue = true;
-    }
-    notifyNext() {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.lastValue);
-        }
-    }
-}
-function dispatchNotification(state) {
-    let { subscriber, period } = state;
-    subscriber.notifyNext();
-    this.schedule(state, period);
-}
-//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map
deleted file mode 100644
index 4b202a3..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA6C3C,MAAM,UAAU,UAAU,CAAI,MAAc,EAAE,YAA2B,KAAK;IAC5E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,kBAAkB;IACtB,YAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;CACF;AAOD,MAAM,oBAAwB,SAAQ,UAAa;IAIjD,YAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;QAJ5C,aAAQ,GAAY,KAAK,CAAC;QAMxB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;CACF;AAED,SAAS,oBAAoB,CAAgC,KAAU;IACrE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/scan.js b/node_modules/rxjs/_esm2015/internal/operators/scan.js
deleted file mode 100644
index 44cfc17..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/scan.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function scan(accumulator, seed) {
-    let hasSeed = false;
-    if (arguments.length >= 2) {
-        hasSeed = true;
-    }
-    return function scanOperatorFunction(source) {
-        return source.lift(new ScanOperator(accumulator, seed, hasSeed));
-    };
-}
-class ScanOperator {
-    constructor(accumulator, seed, hasSeed = false) {
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.hasSeed = hasSeed;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
-    }
-}
-class ScanSubscriber extends Subscriber {
-    constructor(destination, accumulator, _seed, hasSeed) {
-        super(destination);
-        this.accumulator = accumulator;
-        this._seed = _seed;
-        this.hasSeed = hasSeed;
-        this.index = 0;
-    }
-    get seed() {
-        return this._seed;
-    }
-    set seed(value) {
-        this.hasSeed = true;
-        this._seed = value;
-    }
-    _next(value) {
-        if (!this.hasSeed) {
-            this.seed = value;
-            this.destination.next(value);
-        }
-        else {
-            return this._tryNext(value);
-        }
-    }
-    _tryNext(value) {
-        const index = this.index++;
-        let result;
-        try {
-            result = this.accumulator(this.seed, value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-        this.seed = result;
-        this.destination.next(result);
-    }
-}
-//# sourceMappingURL=scan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/scan.js.map b/node_modules/rxjs/_esm2015/internal/operators/scan.js.map
deleted file mode 100644
index b93b4db..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../../../src/internal/operators/scan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoD3C,MAAM,UAAU,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,WAAmD,EAAU,IAAY,EAAU,UAAmB,KAAK;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;CACF;AAOD,MAAM,cAAqB,SAAQ,UAAa;IAY9C,YAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QAClC,KAAK,CAAC,WAAW,CAAC,CAAC;QAF2B,gBAAW,GAAX,WAAW,CAAwC;QAAU,UAAK,GAAL,KAAK,CAAO;QACrG,YAAO,GAAP,OAAO,CAAS;QAZ5B,UAAK,GAAW,CAAC,CAAC;IAc1B,CAAC;IAZD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAY;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAOS,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,QAAQ,CAAC,KAAQ;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js
deleted file mode 100644
index a2a5e6a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function sequenceEqual(compareTo, comparator) {
-    return (source) => source.lift(new SequenceEqualOperator(compareTo, comparator));
-}
-export class SequenceEqualOperator {
-    constructor(compareTo, comparator) {
-        this.compareTo = compareTo;
-        this.comparator = comparator;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));
-    }
-}
-export class SequenceEqualSubscriber extends Subscriber {
-    constructor(destination, compareTo, comparator) {
-        super(destination);
-        this.compareTo = compareTo;
-        this.comparator = comparator;
-        this._a = [];
-        this._b = [];
-        this._oneComplete = false;
-        this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));
-    }
-    _next(value) {
-        if (this._oneComplete && this._b.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._a.push(value);
-            this.checkValues();
-        }
-    }
-    _complete() {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-        this.unsubscribe();
-    }
-    checkValues() {
-        const { _a, _b, comparator } = this;
-        while (_a.length > 0 && _b.length > 0) {
-            let a = _a.shift();
-            let b = _b.shift();
-            let areEqual = false;
-            try {
-                areEqual = comparator ? comparator(a, b) : a === b;
-            }
-            catch (e) {
-                this.destination.error(e);
-            }
-            if (!areEqual) {
-                this.emit(false);
-            }
-        }
-    }
-    emit(value) {
-        const { destination } = this;
-        destination.next(value);
-        destination.complete();
-    }
-    nextB(value) {
-        if (this._oneComplete && this._a.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._b.push(value);
-            this.checkValues();
-        }
-    }
-    completeB() {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-    }
-}
-class SequenceEqualCompareToSubscriber extends Subscriber {
-    constructor(destination, parent) {
-        super(destination);
-        this.parent = parent;
-    }
-    _next(value) {
-        this.parent.nextB(value);
-    }
-    _error(err) {
-        this.parent.error(err);
-        this.unsubscribe();
-    }
-    _complete() {
-        this.parent.completeB();
-        this.unsubscribe();
-    }
-}
-//# sourceMappingURL=sequenceEqual.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map
deleted file mode 100644
index 2122eb4..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/share.js b/node_modules/rxjs/_esm2015/internal/operators/share.js
deleted file mode 100644
index bc2c953..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/share.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { multicast } from './multicast';
-import { refCount } from './refCount';
-import { Subject } from '../Subject';
-function shareSubjectFactory() {
-    return new Subject();
-}
-export function share() {
-    return (source) => refCount()(multicast(shareSubjectFactory)(source));
-}
-//# sourceMappingURL=share.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/share.js.map b/node_modules/rxjs/_esm2015/internal/operators/share.js.map
deleted file mode 100644
index 904fa87..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../../../src/internal/operators/share.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAcD,MAAM,UAAU,KAAK;IACnB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,CAAC;AACxG,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js
deleted file mode 100644
index c532954..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import { ReplaySubject } from '../ReplaySubject';
-export function shareReplay(configOrBufferSize, windowTime, scheduler) {
-    let config;
-    if (configOrBufferSize && typeof configOrBufferSize === 'object') {
-        config = configOrBufferSize;
-    }
-    else {
-        config = {
-            bufferSize: configOrBufferSize,
-            windowTime,
-            refCount: false,
-            scheduler
-        };
-    }
-    return (source) => source.lift(shareReplayOperator(config));
-}
-function shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler }) {
-    let subject;
-    let refCount = 0;
-    let subscription;
-    let hasError = false;
-    let isComplete = false;
-    return function shareReplayOperation(source) {
-        refCount++;
-        if (!subject || hasError) {
-            hasError = false;
-            subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-            subscription = source.subscribe({
-                next(value) { subject.next(value); },
-                error(err) {
-                    hasError = true;
-                    subject.error(err);
-                },
-                complete() {
-                    isComplete = true;
-                    subscription = undefined;
-                    subject.complete();
-                },
-            });
-        }
-        const innerSub = subject.subscribe(this);
-        this.add(() => {
-            refCount--;
-            innerSub.unsubscribe();
-            if (subscription && !isComplete && useRefCount && refCount === 0) {
-                subscription.unsubscribe();
-                subscription = undefined;
-                subject = undefined;
-            }
-        });
-    };
-}
-//# sourceMappingURL=shareReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map
deleted file mode 100644
index 251caa9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2DjD,MAAM,UAAU,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU;YACV,QAAQ,EAAE,KAAK;YACf,SAAS;SACV,CAAC;KACH;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAI,EAC9B,UAAU,GAAG,MAAM,CAAC,iBAAiB,EACrC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EACrC,QAAQ,EAAE,WAAW,EACrB,SAAS,EACS;IAClB,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,CAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/single.js b/node_modules/rxjs/_esm2015/internal/operators/single.js
deleted file mode 100644
index 5839ba6..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/single.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { EmptyError } from '../util/EmptyError';
-export function single(predicate) {
-    return (source) => source.lift(new SingleOperator(predicate, source));
-}
-class SingleOperator {
-    constructor(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
-    }
-}
-class SingleSubscriber extends Subscriber {
-    constructor(destination, predicate, source) {
-        super(destination);
-        this.predicate = predicate;
-        this.source = source;
-        this.seenValue = false;
-        this.index = 0;
-    }
-    applySingleValue(value) {
-        if (this.seenValue) {
-            this.destination.error('Sequence contains more than one element');
-        }
-        else {
-            this.seenValue = true;
-            this.singleValue = value;
-        }
-    }
-    _next(value) {
-        const index = this.index++;
-        if (this.predicate) {
-            this.tryNext(value, index);
-        }
-        else {
-            this.applySingleValue(value);
-        }
-    }
-    tryNext(value, index) {
-        try {
-            if (this.predicate(value, index, this.source)) {
-                this.applySingleValue(value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    }
-    _complete() {
-        const destination = this.destination;
-        if (this.index > 0) {
-            destination.next(this.seenValue ? this.singleValue : undefined);
-            destination.complete();
-        }
-        else {
-            destination.error(new EmptyError);
-        }
-    }
-}
-//# sourceMappingURL=single.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/single.js.map b/node_modules/rxjs/_esm2015/internal/operators/single.js.map
deleted file mode 100644
index b7db2d9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../../../src/internal/operators/single.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkDhD,MAAM,UAAU,MAAM,CAAI,SAAuE;IAC/F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAK7C,YAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;QANlC,cAAS,GAAY,KAAK,CAAC;QAE3B,UAAK,GAAW,CAAC,CAAC;IAM1B,CAAC;IAEO,gBAAgB,CAAC,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,OAAO,CAAC,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skip.js b/node_modules/rxjs/_esm2015/internal/operators/skip.js
deleted file mode 100644
index 5fa27cd..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skip.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function skip(count) {
-    return (source) => source.lift(new SkipOperator(count));
-}
-class SkipOperator {
-    constructor(total) {
-        this.total = total;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SkipSubscriber(subscriber, this.total));
-    }
-}
-class SkipSubscriber extends Subscriber {
-    constructor(destination, total) {
-        super(destination);
-        this.total = total;
-        this.count = 0;
-    }
-    _next(x) {
-        if (++this.count > this.total) {
-            this.destination.next(x);
-        }
-    }
-}
-//# sourceMappingURL=skip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skip.js.map b/node_modules/rxjs/_esm2015/internal/operators/skip.js.map
deleted file mode 100644
index 82e71ec..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../../../src/internal/operators/skip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAOD,MAAM,cAAkB,SAAQ,UAAa;IAG3C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAF7D,UAAK,GAAW,CAAC,CAAC;IAIlB,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js
deleted file mode 100644
index f6de47e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-export function skipLast(count) {
-    return (source) => source.lift(new SkipLastOperator(count));
-}
-class SkipLastOperator {
-    constructor(_skipCount) {
-        this._skipCount = _skipCount;
-        if (this._skipCount < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    call(subscriber, source) {
-        if (this._skipCount === 0) {
-            return source.subscribe(new Subscriber(subscriber));
-        }
-        else {
-            return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
-        }
-    }
-}
-class SkipLastSubscriber extends Subscriber {
-    constructor(destination, _skipCount) {
-        super(destination);
-        this._skipCount = _skipCount;
-        this._count = 0;
-        this._ring = new Array(_skipCount);
-    }
-    _next(value) {
-        const skipCount = this._skipCount;
-        const count = this._count++;
-        if (count < skipCount) {
-            this._ring[count] = value;
-        }
-        else {
-            const currentIndex = count % skipCount;
-            const ring = this._ring;
-            const oldValue = ring[currentIndex];
-            ring[currentIndex] = value;
-            this.destination.next(oldValue);
-        }
-    }
-}
-//# sourceMappingURL=skipLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map
deleted file mode 100644
index 7654c0f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../../../src/internal/operators/skipLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AA0C1E,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAU,UAAkB;QAChE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,eAAU,GAAV,UAAU,CAAQ;QAF1D,WAAM,GAAW,CAAC,CAAC;QAIzB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js
deleted file mode 100644
index 4909c5d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function skipUntil(notifier) {
-    return (source) => source.lift(new SkipUntilOperator(notifier));
-}
-class SkipUntilOperator {
-    constructor(notifier) {
-        this.notifier = notifier;
-    }
-    call(destination, source) {
-        return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
-    }
-}
-class SkipUntilSubscriber extends OuterSubscriber {
-    constructor(destination, notifier) {
-        super(destination);
-        this.hasValue = false;
-        const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-        this.add(innerSubscriber);
-        this.innerSubscription = innerSubscriber;
-        const innerSubscription = subscribeToResult(this, notifier, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            this.add(innerSubscription);
-            this.innerSubscription = innerSubscription;
-        }
-    }
-    _next(value) {
-        if (this.hasValue) {
-            super._next(value);
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.hasValue = true;
-        if (this.innerSubscription) {
-            this.innerSubscription.unsubscribe();
-        }
-    }
-    notifyComplete() {
-    }
-}
-//# sourceMappingURL=skipUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map
deleted file mode 100644
index d8ce3ce..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,eAAqB;IAK3D,YAAY,WAA0B,EAAE,QAA8B;QACpE,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,aAAQ,GAAY,KAAK,CAAC;QAKhC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAInG,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,cAAc;IAEd,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js
deleted file mode 100644
index a1212bc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function skipWhile(predicate) {
-    return (source) => source.lift(new SkipWhileOperator(predicate));
-}
-class SkipWhileOperator {
-    constructor(predicate) {
-        this.predicate = predicate;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
-    }
-}
-class SkipWhileSubscriber extends Subscriber {
-    constructor(destination, predicate) {
-        super(destination);
-        this.predicate = predicate;
-        this.skipping = true;
-        this.index = 0;
-    }
-    _next(value) {
-        const destination = this.destination;
-        if (this.skipping) {
-            this.tryCallPredicate(value);
-        }
-        if (!this.skipping) {
-            destination.next(value);
-        }
-    }
-    tryCallPredicate(value) {
-        try {
-            const result = this.predicate(value, this.index++);
-            this.skipping = Boolean(result);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    }
-}
-//# sourceMappingURL=skipWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map
deleted file mode 100644
index c409a55..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAIhD,YAAY,WAA0B,EAClB,SAA+C;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,cAAS,GAAT,SAAS,CAAsC;QAJ3D,aAAQ,GAAY,IAAI,CAAC;QACzB,UAAK,GAAW,CAAC,CAAC;IAK1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAQ;QAC/B,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/startWith.js b/node_modules/rxjs/_esm2015/internal/operators/startWith.js
deleted file mode 100644
index a9a7c27..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/startWith.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { concat } from '../observable/concat';
-import { isScheduler } from '../util/isScheduler';
-export function startWith(...array) {
-    const scheduler = array[array.length - 1];
-    if (isScheduler(scheduler)) {
-        array.pop();
-        return (source) => concat(array, source, scheduler);
-    }
-    else {
-        return (source) => concat(array, source);
-    }
-}
-//# sourceMappingURL=startWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map
deleted file mode 100644
index 4ba6b89..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../../../src/internal/operators/startWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiElD,MAAM,UAAU,SAAS,CAAO,GAAG,KAA+B;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KAC3E;SAAM;QACL,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAY,EAAE,MAAM,CAAC,CAAC;KAChE;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js
deleted file mode 100644
index 2ca5795..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';
-export function subscribeOn(scheduler, delay = 0) {
-    return function subscribeOnOperatorFunction(source) {
-        return source.lift(new SubscribeOnOperator(scheduler, delay));
-    };
-}
-class SubscribeOnOperator {
-    constructor(scheduler, delay) {
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    call(subscriber, source) {
-        return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);
-    }
-}
-//# sourceMappingURL=subscribeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map
deleted file mode 100644
index dd285b4..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA6C5E,MAAM,UAAU,WAAW,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB;IACvB,YAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,qBAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js
deleted file mode 100644
index f0db599..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { switchMap } from './switchMap';
-import { identity } from '../util/identity';
-export function switchAll() {
-    return switchMap(identity);
-}
-//# sourceMappingURL=switchAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map
deleted file mode 100644
index 643e89d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchAll.js","sources":["../../../src/internal/operators/switchAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA4D5C,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js
deleted file mode 100644
index 8d1894f..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { map } from './map';
-import { from } from '../observable/from';
-export function switchMap(project, resultSelector) {
-    if (typeof resultSelector === 'function') {
-        return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));
-    }
-    return (source) => source.lift(new SwitchMapOperator(project));
-}
-class SwitchMapOperator {
-    constructor(project) {
-        this.project = project;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
-    }
-}
-class SwitchMapSubscriber extends OuterSubscriber {
-    constructor(destination, project) {
-        super(destination);
-        this.project = project;
-        this.index = 0;
-    }
-    _next(value) {
-        let result;
-        const index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (error) {
-            this.destination.error(error);
-            return;
-        }
-        this._innerSub(result, value, index);
-    }
-    _innerSub(result, value, index) {
-        const innerSubscription = this.innerSubscription;
-        if (innerSubscription) {
-            innerSubscription.unsubscribe();
-        }
-        const innerSubscriber = new InnerSubscriber(this, value, index);
-        const destination = this.destination;
-        destination.add(innerSubscriber);
-        this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (this.innerSubscription !== innerSubscriber) {
-            destination.add(this.innerSubscription);
-        }
-    }
-    _complete() {
-        const { innerSubscription } = this;
-        if (!innerSubscription || innerSubscription.closed) {
-            super._complete();
-        }
-        this.unsubscribe();
-    }
-    _unsubscribe() {
-        this.innerSubscription = null;
-    }
-    notifyComplete(innerSub) {
-        const destination = this.destination;
-        destination.remove(innerSub);
-        this.innerSubscription = null;
-        if (this.isStopped) {
-            super._complete();
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    }
-}
-//# sourceMappingURL=switchMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map
deleted file mode 100644
index 82febc0..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js
deleted file mode 100644
index be8a83d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { switchMap } from './switchMap';
-export function switchMapTo(innerObservable, resultSelector) {
-    return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);
-}
-//# sourceMappingURL=switchMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map
deleted file mode 100644
index e8cf9dc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkDxC,MAAM,UAAU,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;AAC9G,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/take.js b/node_modules/rxjs/_esm2015/internal/operators/take.js
deleted file mode 100644
index bd45f03..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/take.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-export function take(count) {
-    return (source) => {
-        if (count === 0) {
-            return empty();
-        }
-        else {
-            return source.lift(new TakeOperator(count));
-        }
-    };
-}
-class TakeOperator {
-    constructor(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    call(subscriber, source) {
-        return source.subscribe(new TakeSubscriber(subscriber, this.total));
-    }
-}
-class TakeSubscriber extends Subscriber {
-    constructor(destination, total) {
-        super(destination);
-        this.total = total;
-        this.count = 0;
-    }
-    _next(value) {
-        const total = this.total;
-        const count = ++this.count;
-        if (count <= total) {
-            this.destination.next(value);
-            if (count === total) {
-                this.destination.complete();
-                this.unsubscribe();
-            }
-        }
-    }
-}
-//# sourceMappingURL=take.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/take.js.map b/node_modules/rxjs/_esm2015/internal/operators/take.js.map
deleted file mode 100644
index dcf2e84..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../../../src/internal/operators/take.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAkD5C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAOD,MAAM,cAAkB,SAAQ,UAAa;IAG3C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAFrD,UAAK,GAAW,CAAC,CAAC;IAI1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js
deleted file mode 100644
index 98fe686..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-export function takeLast(count) {
-    return function takeLastOperatorFunction(source) {
-        if (count === 0) {
-            return empty();
-        }
-        else {
-            return source.lift(new TakeLastOperator(count));
-        }
-    };
-}
-class TakeLastOperator {
-    constructor(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    call(subscriber, source) {
-        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
-    }
-}
-class TakeLastSubscriber extends Subscriber {
-    constructor(destination, total) {
-        super(destination);
-        this.total = total;
-        this.ring = new Array();
-        this.count = 0;
-    }
-    _next(value) {
-        const ring = this.ring;
-        const total = this.total;
-        const count = this.count++;
-        if (ring.length < total) {
-            ring.push(value);
-        }
-        else {
-            const index = count % total;
-            ring[index] = value;
-        }
-    }
-    _complete() {
-        const destination = this.destination;
-        let count = this.count;
-        if (count > 0) {
-            const total = this.count >= this.total ? this.total : this.count;
-            const ring = this.ring;
-            for (let i = 0; i < total; i++) {
-                const idx = (count++) % total;
-                destination.next(ring[idx]);
-            }
-        }
-        destination.complete();
-    }
-}
-//# sourceMappingURL=takeLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map
deleted file mode 100644
index f1d87a7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../../../src/internal/operators/takeLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA8C5C,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAHrD,SAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,UAAK,GAAW,CAAC,CAAC;IAI1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js
deleted file mode 100644
index 87778e2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function takeUntil(notifier) {
-    return (source) => source.lift(new TakeUntilOperator(notifier));
-}
-class TakeUntilOperator {
-    constructor(notifier) {
-        this.notifier = notifier;
-    }
-    call(subscriber, source) {
-        const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
-        const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);
-        if (notifierSubscription && !takeUntilSubscriber.seenValue) {
-            takeUntilSubscriber.add(notifierSubscription);
-            return source.subscribe(takeUntilSubscriber);
-        }
-        return takeUntilSubscriber;
-    }
-}
-class TakeUntilSubscriber extends OuterSubscriber {
-    constructor(destination) {
-        super(destination);
-        this.seenValue = false;
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.seenValue = true;
-        this.complete();
-    }
-    notifyComplete() {
-    }
-}
-//# sourceMappingURL=takeUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map
deleted file mode 100644
index fbefd7d..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA4C9D,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,eAAqB;IAG3D,YAAY,WAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHrB,cAAS,GAAG,KAAK,CAAC;IAIlB,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,cAAc;IAEd,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js
deleted file mode 100644
index fa75968..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function takeWhile(predicate, inclusive = false) {
-    return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));
-}
-class TakeWhileOperator {
-    constructor(predicate, inclusive) {
-        this.predicate = predicate;
-        this.inclusive = inclusive;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
-    }
-}
-class TakeWhileSubscriber extends Subscriber {
-    constructor(destination, predicate, inclusive) {
-        super(destination);
-        this.predicate = predicate;
-        this.inclusive = inclusive;
-        this.index = 0;
-    }
-    _next(value) {
-        const destination = this.destination;
-        let result;
-        try {
-            result = this.predicate(value, this.index++);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this.nextOrComplete(value, result);
-    }
-    nextOrComplete(value, predicateResult) {
-        const destination = this.destination;
-        if (Boolean(predicateResult)) {
-            destination.next(value);
-        }
-        else {
-            if (this.inclusive) {
-                destination.next(value);
-            }
-            destination.complete();
-        }
-    }
-}
-//# sourceMappingURL=takeWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map
deleted file mode 100644
index 9450a9e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,SAAS,CACrB,SAA+C,EAC/C,SAAS,GAAG,KAAK;IACnB,OAAO,CAAC,MAAqB,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,iBAAiB;IACrB,YACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAGhD,YACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAC5B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFT,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;QALtB,UAAK,GAAW,CAAC,CAAC;IAO1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,KAAQ,EAAE,eAAwB;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/tap.js b/node_modules/rxjs/_esm2015/internal/operators/tap.js
deleted file mode 100644
index 344c7f3..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/tap.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { noop } from '../util/noop';
-import { isFunction } from '../util/isFunction';
-export function tap(nextOrObserver, error, complete) {
-    return function tapOperatorFunction(source) {
-        return source.lift(new DoOperator(nextOrObserver, error, complete));
-    };
-}
-class DoOperator {
-    constructor(nextOrObserver, error, complete) {
-        this.nextOrObserver = nextOrObserver;
-        this.error = error;
-        this.complete = complete;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
-    }
-}
-class TapSubscriber extends Subscriber {
-    constructor(destination, observerOrNext, error, complete) {
-        super(destination);
-        this._tapNext = noop;
-        this._tapError = noop;
-        this._tapComplete = noop;
-        this._tapError = error || noop;
-        this._tapComplete = complete || noop;
-        if (isFunction(observerOrNext)) {
-            this._context = this;
-            this._tapNext = observerOrNext;
-        }
-        else if (observerOrNext) {
-            this._context = observerOrNext;
-            this._tapNext = observerOrNext.next || noop;
-            this._tapError = observerOrNext.error || noop;
-            this._tapComplete = observerOrNext.complete || noop;
-        }
-    }
-    _next(value) {
-        try {
-            this._tapNext.call(this._context, value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(value);
-    }
-    _error(err) {
-        try {
-            this._tapError.call(this._context, err);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.error(err);
-    }
-    _complete() {
-        try {
-            this._tapComplete.call(this._context);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        return this.destination.complete();
-    }
-}
-//# sourceMappingURL=tap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/tap.js.map b/node_modules/rxjs/_esm2015/internal/operators/tap.js.map
deleted file mode 100644
index 07364d3..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/tap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tap.js","sources":["../../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttle.js b/node_modules/rxjs/_esm2015/internal/operators/throttle.js
deleted file mode 100644
index fc07317..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throttle.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export const defaultThrottleConfig = {
-    leading: true,
-    trailing: false
-};
-export function throttle(durationSelector, config = defaultThrottleConfig) {
-    return (source) => source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing));
-}
-class ThrottleOperator {
-    constructor(durationSelector, leading, trailing) {
-        this.durationSelector = durationSelector;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));
-    }
-}
-class ThrottleSubscriber extends OuterSubscriber {
-    constructor(destination, durationSelector, _leading, _trailing) {
-        super(destination);
-        this.destination = destination;
-        this.durationSelector = durationSelector;
-        this._leading = _leading;
-        this._trailing = _trailing;
-        this._hasValue = false;
-    }
-    _next(value) {
-        this._hasValue = true;
-        this._sendValue = value;
-        if (!this._throttled) {
-            if (this._leading) {
-                this.send();
-            }
-            else {
-                this.throttle(value);
-            }
-        }
-    }
-    send() {
-        const { _hasValue, _sendValue } = this;
-        if (_hasValue) {
-            this.destination.next(_sendValue);
-            this.throttle(_sendValue);
-        }
-        this._hasValue = false;
-        this._sendValue = null;
-    }
-    throttle(value) {
-        const duration = this.tryDurationSelector(value);
-        if (!!duration) {
-            this.add(this._throttled = subscribeToResult(this, duration));
-        }
-    }
-    tryDurationSelector(value) {
-        try {
-            return this.durationSelector(value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return null;
-        }
-    }
-    throttlingDone() {
-        const { _throttled, _trailing } = this;
-        if (_throttled) {
-            _throttled.unsubscribe();
-        }
-        this._throttled = null;
-        if (_trailing) {
-            this.send();
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.throttlingDone();
-    }
-    notifyComplete() {
-        this.throttlingDone();
-    }
-}
-//# sourceMappingURL=throttle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map b/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map
deleted file mode 100644
index 58b6c9a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js
deleted file mode 100644
index 3a1a9c5..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-import { defaultThrottleConfig } from './throttle';
-export function throttleTime(duration, scheduler = async, config = defaultThrottleConfig) {
-    return (source) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));
-}
-class ThrottleTimeOperator {
-    constructor(duration, scheduler, leading, trailing) {
-        this.duration = duration;
-        this.scheduler = scheduler;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));
-    }
-}
-class ThrottleTimeSubscriber extends Subscriber {
-    constructor(destination, duration, scheduler, leading, trailing) {
-        super(destination);
-        this.duration = duration;
-        this.scheduler = scheduler;
-        this.leading = leading;
-        this.trailing = trailing;
-        this._hasTrailingValue = false;
-        this._trailingValue = null;
-    }
-    _next(value) {
-        if (this.throttled) {
-            if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-        else {
-            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));
-            if (this.leading) {
-                this.destination.next(value);
-            }
-            else if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-    }
-    _complete() {
-        if (this._hasTrailingValue) {
-            this.destination.next(this._trailingValue);
-            this.destination.complete();
-        }
-        else {
-            this.destination.complete();
-        }
-    }
-    clearThrottle() {
-        const throttled = this.throttled;
-        if (throttled) {
-            if (this.trailing && this._hasTrailingValue) {
-                this.destination.next(this._trailingValue);
-                this._trailingValue = null;
-                this._hasTrailingValue = false;
-            }
-            throttled.unsubscribe();
-            this.remove(throttled);
-            this.throttled = null;
-        }
-    }
-}
-function dispatchNext(arg) {
-    const { subscriber } = arg;
-    subscriber.clearThrottle();
-}
-//# sourceMappingURL=throttleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map
deleted file mode 100644
index 63ecb28..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js
deleted file mode 100644
index 9a42206..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { EmptyError } from '../util/EmptyError';
-import { Subscriber } from '../Subscriber';
-export function throwIfEmpty(errorFactory = defaultErrorFactory) {
-    return (source) => {
-        return source.lift(new ThrowIfEmptyOperator(errorFactory));
-    };
-}
-class ThrowIfEmptyOperator {
-    constructor(errorFactory) {
-        this.errorFactory = errorFactory;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
-    }
-}
-class ThrowIfEmptySubscriber extends Subscriber {
-    constructor(destination, errorFactory) {
-        super(destination);
-        this.errorFactory = errorFactory;
-        this.hasValue = false;
-    }
-    _next(value) {
-        this.hasValue = true;
-        this.destination.next(value);
-    }
-    _complete() {
-        if (!this.hasValue) {
-            let err;
-            try {
-                err = this.errorFactory();
-            }
-            catch (e) {
-                err = e;
-            }
-            this.destination.error(err);
-        }
-        else {
-            return this.destination.complete();
-        }
-    }
-}
-function defaultErrorFactory() {
-    return new EmptyError();
-}
-//# sourceMappingURL=throwIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map
deleted file mode 100644
index 71ed774..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwIfEmpty.js","sources":["../../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiC3C,MAAM,UAAU,YAAY,CAAK,eAA4B,mBAAmB;IAC9E,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB;IACxB,YAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAED,MAAM,sBAA0B,SAAQ,UAAa;IAGnD,YAAY,WAA0B,EAAU,YAAuB;QACrE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,iBAAY,GAAZ,YAAY,CAAW;QAF/D,aAAQ,GAAY,KAAK,CAAC;IAIlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAQ,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js
deleted file mode 100644
index 1e67b89..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { async } from '../scheduler/async';
-import { scan } from './scan';
-import { defer } from '../observable/defer';
-import { map } from './map';
-export function timeInterval(scheduler = async) {
-    return (source) => defer(() => {
-        return source.pipe(scan(({ current }, value) => ({ value, current: scheduler.now(), last: current }), { current: scheduler.now(), value: undefined, last: undefined }), map(({ current, last, value }) => new TimeInterval(value, current - last)));
-    });
-}
-export class TimeInterval {
-    constructor(value, interval) {
-        this.value = value;
-        this.interval = interval;
-    }
-}
-//# sourceMappingURL=timeInterval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map
deleted file mode 100644
index fa9048b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA+C5B,MAAM,UAAU,YAAY,CAAI,YAA2B,KAAK;IAC9D,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAEhB,IAAI,CACF,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,GAAG,CAAuB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,OAAO,YAAY;IACvB,YAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;CACzD"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeout.js b/node_modules/rxjs/_esm2015/internal/operators/timeout.js
deleted file mode 100644
index 37589e2..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeout.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { async } from '../scheduler/async';
-import { TimeoutError } from '../util/TimeoutError';
-import { timeoutWith } from './timeoutWith';
-import { throwError } from '../observable/throwError';
-export function timeout(due, scheduler = async) {
-    return timeoutWith(due, throwError(new TimeoutError()), scheduler);
-}
-//# sourceMappingURL=timeout.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map
deleted file mode 100644
index c0ce3e4..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../../../src/internal/operators/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgFtD,MAAM,UAAU,OAAO,CAAI,GAAkB,EAClB,YAA2B,KAAK;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
deleted file mode 100644
index 0526cc7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function timeoutWith(due, withObservable, scheduler = async) {
-    return (source) => {
-        let absoluteTimeout = isDate(due);
-        let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
-        return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
-    };
-}
-class TimeoutWithOperator {
-    constructor(waitFor, absoluteTimeout, withObservable, scheduler) {
-        this.waitFor = waitFor;
-        this.absoluteTimeout = absoluteTimeout;
-        this.withObservable = withObservable;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
-    }
-}
-class TimeoutWithSubscriber extends OuterSubscriber {
-    constructor(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
-        super(destination);
-        this.absoluteTimeout = absoluteTimeout;
-        this.waitFor = waitFor;
-        this.withObservable = withObservable;
-        this.scheduler = scheduler;
-        this.action = null;
-        this.scheduleTimeout();
-    }
-    static dispatchTimeout(subscriber) {
-        const { withObservable } = subscriber;
-        subscriber._unsubscribeAndRecycle();
-        subscriber.add(subscribeToResult(subscriber, withObservable));
-    }
-    scheduleTimeout() {
-        const { action } = this;
-        if (action) {
-            this.action = action.schedule(this, this.waitFor);
-        }
-        else {
-            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
-        }
-    }
-    _next(value) {
-        if (!this.absoluteTimeout) {
-            this.scheduleTimeout();
-        }
-        super._next(value);
-    }
-    _unsubscribe() {
-        this.action = null;
-        this.scheduler = null;
-        this.withObservable = null;
-    }
-}
-//# sourceMappingURL=timeoutWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map
deleted file mode 100644
index b4c8f52..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js
deleted file mode 100644
index 9cb0281..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { async } from '../scheduler/async';
-import { map } from './map';
-export function timestamp(scheduler = async) {
-    return map((value) => new Timestamp(value, scheduler.now()));
-}
-export class Timestamp {
-    constructor(value, timestamp) {
-        this.value = value;
-        this.timestamp = timestamp;
-    }
-}
-//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map
deleted file mode 100644
index 31a1fb9..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../../../src/internal/operators/timestamp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAoC5B,MAAM,UAAU,SAAS,CAAI,YAA2B,KAAK;IAC3D,OAAO,GAAG,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAElE,CAAC;AAED,MAAM,OAAO,SAAS;IACpB,YAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/toArray.js b/node_modules/rxjs/_esm2015/internal/operators/toArray.js
deleted file mode 100644
index 98effe7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/toArray.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { reduce } from './reduce';
-function toArrayReducer(arr, item, index) {
-    if (index === 0) {
-        return [item];
-    }
-    arr.push(item);
-    return arr;
-}
-export function toArray() {
-    return reduce(toArrayReducer, []);
-}
-//# sourceMappingURL=toArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map b/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map
deleted file mode 100644
index c129b66..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../../../src/internal/operators/toArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,MAAM,UAAU,OAAO;IACrB,OAAO,MAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/window.js b/node_modules/rxjs/_esm2015/internal/operators/window.js
deleted file mode 100644
index 79f0c18..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/window.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function window(windowBoundaries) {
-    return function windowOperatorFunction(source) {
-        return source.lift(new WindowOperator(windowBoundaries));
-    };
-}
-class WindowOperator {
-    constructor(windowBoundaries) {
-        this.windowBoundaries = windowBoundaries;
-    }
-    call(subscriber, source) {
-        const windowSubscriber = new WindowSubscriber(subscriber);
-        const sourceSubscription = source.subscribe(windowSubscriber);
-        if (!sourceSubscription.closed) {
-            windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));
-        }
-        return sourceSubscription;
-    }
-}
-class WindowSubscriber extends OuterSubscriber {
-    constructor(destination) {
-        super(destination);
-        this.window = new Subject();
-        destination.next(this.window);
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow();
-    }
-    notifyError(error, innerSub) {
-        this._error(error);
-    }
-    notifyComplete(innerSub) {
-        this._complete();
-    }
-    _next(value) {
-        this.window.next(value);
-    }
-    _error(err) {
-        this.window.error(err);
-        this.destination.error(err);
-    }
-    _complete() {
-        this.window.complete();
-        this.destination.complete();
-    }
-    _unsubscribe() {
-        this.window = null;
-    }
-    openWindow() {
-        const prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        const destination = this.destination;
-        const newWindow = this.window = new Subject();
-        destination.next(newWindow);
-    }
-}
-//# sourceMappingURL=window.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/window.js.map b/node_modules/rxjs/_esm2015/internal/operators/window.js.map
deleted file mode 100644
index ec96fcd..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../../../src/internal/operators/window.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA8C9D,MAAM,UAAU,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAElB,YAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,IAAI,CAAC,UAAqC,EAAE,MAAW;QACrD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAClF;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,eAAuB;IAIvD,YAAY,WAAsC;QAChD,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,WAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js
deleted file mode 100644
index a1b1551..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subject } from '../Subject';
-export function windowCount(windowSize, startWindowEvery = 0) {
-    return function windowCountOperatorFunction(source) {
-        return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
-    };
-}
-class WindowCountOperator {
-    constructor(windowSize, startWindowEvery) {
-        this.windowSize = windowSize;
-        this.startWindowEvery = startWindowEvery;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
-    }
-}
-class WindowCountSubscriber extends Subscriber {
-    constructor(destination, windowSize, startWindowEvery) {
-        super(destination);
-        this.destination = destination;
-        this.windowSize = windowSize;
-        this.startWindowEvery = startWindowEvery;
-        this.windows = [new Subject()];
-        this.count = 0;
-        destination.next(this.windows[0]);
-    }
-    _next(value) {
-        const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
-        const destination = this.destination;
-        const windowSize = this.windowSize;
-        const windows = this.windows;
-        const len = windows.length;
-        for (let i = 0; i < len && !this.closed; i++) {
-            windows[i].next(value);
-        }
-        const c = this.count - windowSize + 1;
-        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
-            windows.shift().complete();
-        }
-        if (++this.count % startWindowEvery === 0 && !this.closed) {
-            const window = new Subject();
-            windows.push(window);
-            destination.next(window);
-        }
-    }
-    _error(err) {
-        const windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().error(err);
-            }
-        }
-        this.destination.error(err);
-    }
-    _complete() {
-        const windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().complete();
-            }
-        }
-        this.destination.complete();
-    }
-    _unsubscribe() {
-        this.count = 0;
-        this.windows = null;
-    }
-}
-//# sourceMappingURL=windowCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map
deleted file mode 100644
index 70d7936..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkErC,MAAM,UAAU,WAAW,CAAI,UAAkB,EAClB,mBAA2B,CAAC;IACzD,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB;IAEvB,YAAoB,UAAkB,EAClB,gBAAwB;QADxB,eAAU,GAAV,UAAU,CAAQ;QAClB,qBAAgB,GAAhB,gBAAgB,CAAQ;IAC5C,CAAC;IAED,IAAI,CAAC,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACzG,CAAC;CACF;AAOD,MAAM,qBAAyB,SAAQ,UAAa;IAIlD,YAAsB,WAAsC,EACxC,UAAkB,EAClB,gBAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAA2B;QACxC,eAAU,GAAV,UAAU,CAAQ;QAClB,qBAAgB,GAAhB,gBAAgB,CAAQ;QALpC,YAAO,GAAiB,CAAE,IAAI,OAAO,EAAK,CAAE,CAAC;QAC7C,UAAK,GAAW,CAAC,CAAC;QAMxB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/F,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxD,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;IACH,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,SAAS;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;aAC5B;SACF;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js
deleted file mode 100644
index 901f80e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js
+++ /dev/null
@@ -1,142 +0,0 @@
-import { Subject } from '../Subject';
-import { async } from '../scheduler/async';
-import { Subscriber } from '../Subscriber';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-export function windowTime(windowTimeSpan) {
-    let scheduler = async;
-    let windowCreationInterval = null;
-    let maxWindowSize = Number.POSITIVE_INFINITY;
-    if (isScheduler(arguments[3])) {
-        scheduler = arguments[3];
-    }
-    if (isScheduler(arguments[2])) {
-        scheduler = arguments[2];
-    }
-    else if (isNumeric(arguments[2])) {
-        maxWindowSize = arguments[2];
-    }
-    if (isScheduler(arguments[1])) {
-        scheduler = arguments[1];
-    }
-    else if (isNumeric(arguments[1])) {
-        windowCreationInterval = arguments[1];
-    }
-    return function windowTimeOperatorFunction(source) {
-        return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
-    };
-}
-class WindowTimeOperator {
-    constructor(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        this.windowTimeSpan = windowTimeSpan;
-        this.windowCreationInterval = windowCreationInterval;
-        this.maxWindowSize = maxWindowSize;
-        this.scheduler = scheduler;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));
-    }
-}
-class CountedSubject extends Subject {
-    constructor() {
-        super(...arguments);
-        this._numberOfNextedValues = 0;
-    }
-    next(value) {
-        this._numberOfNextedValues++;
-        super.next(value);
-    }
-    get numberOfNextedValues() {
-        return this._numberOfNextedValues;
-    }
-}
-class WindowTimeSubscriber extends Subscriber {
-    constructor(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        super(destination);
-        this.destination = destination;
-        this.windowTimeSpan = windowTimeSpan;
-        this.windowCreationInterval = windowCreationInterval;
-        this.maxWindowSize = maxWindowSize;
-        this.scheduler = scheduler;
-        this.windows = [];
-        const window = this.openWindow();
-        if (windowCreationInterval !== null && windowCreationInterval >= 0) {
-            const closeState = { subscriber: this, window, context: null };
-            const creationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler };
-            this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));
-            this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));
-        }
-        else {
-            const timeSpanOnlyState = { subscriber: this, window, windowTimeSpan };
-            this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
-        }
-    }
-    _next(value) {
-        const windows = this.windows;
-        const len = windows.length;
-        for (let i = 0; i < len; i++) {
-            const window = windows[i];
-            if (!window.closed) {
-                window.next(value);
-                if (window.numberOfNextedValues >= this.maxWindowSize) {
-                    this.closeWindow(window);
-                }
-            }
-        }
-    }
-    _error(err) {
-        const windows = this.windows;
-        while (windows.length > 0) {
-            windows.shift().error(err);
-        }
-        this.destination.error(err);
-    }
-    _complete() {
-        const windows = this.windows;
-        while (windows.length > 0) {
-            const window = windows.shift();
-            if (!window.closed) {
-                window.complete();
-            }
-        }
-        this.destination.complete();
-    }
-    openWindow() {
-        const window = new CountedSubject();
-        this.windows.push(window);
-        const destination = this.destination;
-        destination.next(window);
-        return window;
-    }
-    closeWindow(window) {
-        window.complete();
-        const windows = this.windows;
-        windows.splice(windows.indexOf(window), 1);
-    }
-}
-function dispatchWindowTimeSpanOnly(state) {
-    const { subscriber, windowTimeSpan, window } = state;
-    if (window) {
-        subscriber.closeWindow(window);
-    }
-    state.window = subscriber.openWindow();
-    this.schedule(state, windowTimeSpan);
-}
-function dispatchWindowCreation(state) {
-    const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state;
-    const window = subscriber.openWindow();
-    const action = this;
-    let context = { action, subscription: null };
-    const timeSpanState = { subscriber, window, context };
-    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);
-    action.add(context.subscription);
-    action.schedule(state, windowCreationInterval);
-}
-function dispatchWindowClose(state) {
-    const { subscriber, window, context } = state;
-    if (context && context.action && context.subscription) {
-        context.action.remove(context.subscription);
-    }
-    subscriber.closeWindow(window);
-}
-//# sourceMappingURL=windowTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map
deleted file mode 100644
index 2a47017..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../../../src/internal/operators/windowTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA+FlD,MAAM,UAAU,UAAU,CAAI,cAAsB;IAClD,IAAI,SAAS,GAAkB,KAAK,CAAC;IACrC,IAAI,sBAAsB,GAAW,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAW,MAAM,CAAC,iBAAiB,CAAC;IAErD,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,sBAAsB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KACvC;IAED,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAI,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAClH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB;IAEtB,YAAoB,cAAsB,EACtB,sBAAqC,EACrC,aAAqB,EACrB,SAAwB;QAHxB,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,sBAAsB,CAAe;QACrC,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,IAAI,CAAC,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAC9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CACjG,CAAC,CAAC;IACL,CAAC;CACF;AA0BD,MAAM,cAAkB,SAAQ,OAAU;IAA1C;;QACU,0BAAqB,GAAW,CAAC,CAAC;IAU5C,CAAC;IARC,IAAI,CAAC,KAAS;QACZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;CACF;AAOD,MAAM,oBAAwB,SAAQ,UAAa;IAGjD,YAAsB,WAAsC,EACxC,cAAsB,EACtB,sBAAqC,EACrC,aAAqB,EACrB,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QALC,gBAAW,GAAX,WAAW,CAA2B;QACxC,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,sBAAsB,CAAe;QACrC,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;QANpC,YAAO,GAAwB,EAAE,CAAC;QASxC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,IAAI,CAAC,EAAE;YAClE,MAAM,UAAU,GAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAO,IAAI,EAAE,CAAC;YACnF,MAAM,aAAa,GAAqB,EAAE,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAChH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAmB,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;SAC/G;aAAM;YACL,MAAM,iBAAiB,GAAyB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;YAC7F,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAuB,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;SACnH;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,EAAE;oBACrD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iBAC1B;aACF;SACF;IACH,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,SAAS;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,CAAC,QAAQ,EAAE,CAAC;aACnB;SACF;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEM,UAAU;QACf,MAAM,MAAM,GAAG,IAAI,cAAc,EAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,MAAyB;QAC1C,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,0BAA0B,CAAiD,KAA2B;IAC7G,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACrD,IAAI,MAAM,EAAE;QACV,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAChC;IACD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAA6C,KAAuB;IACjG,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC;IAChF,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,GAA0B,EAAE,MAAM,EAAE,YAAY,EAAO,IAAI,EAAE,CAAC;IACzE,MAAM,aAAa,GAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrE,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7G,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAAI,KAAoB;IAClD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC7C;IACD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js
deleted file mode 100644
index 1631e02..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js
+++ /dev/null
@@ -1,123 +0,0 @@
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function windowToggle(openings, closingSelector) {
-    return (source) => source.lift(new WindowToggleOperator(openings, closingSelector));
-}
-class WindowToggleOperator {
-    constructor(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    }
-}
-class WindowToggleSubscriber extends OuterSubscriber {
-    constructor(destination, openings, closingSelector) {
-        super(destination);
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-        this.contexts = [];
-        this.add(this.openSubscription = subscribeToResult(this, openings, openings));
-    }
-    _next(value) {
-        const { contexts } = this;
-        if (contexts) {
-            const len = contexts.length;
-            for (let i = 0; i < len; i++) {
-                contexts[i].window.next(value);
-            }
-        }
-    }
-    _error(err) {
-        const { contexts } = this;
-        this.contexts = null;
-        if (contexts) {
-            const len = contexts.length;
-            let index = -1;
-            while (++index < len) {
-                const context = contexts[index];
-                context.window.error(err);
-                context.subscription.unsubscribe();
-            }
-        }
-        super._error(err);
-    }
-    _complete() {
-        const { contexts } = this;
-        this.contexts = null;
-        if (contexts) {
-            const len = contexts.length;
-            let index = -1;
-            while (++index < len) {
-                const context = contexts[index];
-                context.window.complete();
-                context.subscription.unsubscribe();
-            }
-        }
-        super._complete();
-    }
-    _unsubscribe() {
-        const { contexts } = this;
-        this.contexts = null;
-        if (contexts) {
-            const len = contexts.length;
-            let index = -1;
-            while (++index < len) {
-                const context = contexts[index];
-                context.window.unsubscribe();
-                context.subscription.unsubscribe();
-            }
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (outerValue === this.openings) {
-            let closingNotifier;
-            try {
-                const { closingSelector } = this;
-                closingNotifier = closingSelector(innerValue);
-            }
-            catch (e) {
-                return this.error(e);
-            }
-            const window = new Subject();
-            const subscription = new Subscription();
-            const context = { window, subscription };
-            this.contexts.push(context);
-            const innerSubscription = subscribeToResult(this, closingNotifier, context);
-            if (innerSubscription.closed) {
-                this.closeWindow(this.contexts.length - 1);
-            }
-            else {
-                innerSubscription.context = context;
-                subscription.add(innerSubscription);
-            }
-            this.destination.next(window);
-        }
-        else {
-            this.closeWindow(this.contexts.indexOf(outerValue));
-        }
-    }
-    notifyError(err) {
-        this.error(err);
-    }
-    notifyComplete(inner) {
-        if (inner !== this.openSubscription) {
-            this.closeWindow(this.contexts.indexOf(inner.context));
-        }
-    }
-    closeWindow(index) {
-        if (index === -1) {
-            return;
-        }
-        const { contexts } = this;
-        const context = contexts[index];
-        const { window, subscription } = context;
-        contexts.splice(index, 1);
-        window.complete();
-        subscription.unsubscribe();
-    }
-}
-//# sourceMappingURL=windowToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map
deleted file mode 100644
index 7df7808..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js
deleted file mode 100644
index 6b30dcc..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function windowWhen(closingSelector) {
-    return function windowWhenOperatorFunction(source) {
-        return source.lift(new WindowOperator(closingSelector));
-    };
-}
-class WindowOperator {
-    constructor(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));
-    }
-}
-class WindowSubscriber extends OuterSubscriber {
-    constructor(destination, closingSelector) {
-        super(destination);
-        this.destination = destination;
-        this.closingSelector = closingSelector;
-        this.openWindow();
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow(innerSub);
-    }
-    notifyError(error, innerSub) {
-        this._error(error);
-    }
-    notifyComplete(innerSub) {
-        this.openWindow(innerSub);
-    }
-    _next(value) {
-        this.window.next(value);
-    }
-    _error(err) {
-        this.window.error(err);
-        this.destination.error(err);
-        this.unsubscribeClosingNotification();
-    }
-    _complete() {
-        this.window.complete();
-        this.destination.complete();
-        this.unsubscribeClosingNotification();
-    }
-    unsubscribeClosingNotification() {
-        if (this.closingNotification) {
-            this.closingNotification.unsubscribe();
-        }
-    }
-    openWindow(innerSub = null) {
-        if (innerSub) {
-            this.remove(innerSub);
-            innerSub.unsubscribe();
-        }
-        const prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        const window = this.window = new Subject();
-        this.destination.next(window);
-        let closingNotifier;
-        try {
-            const { closingSelector } = this;
-            closingNotifier = closingSelector();
-        }
-        catch (e) {
-            this.destination.error(e);
-            this.window.error(e);
-            return;
-        }
-        this.add(this.closingNotification = subscribeToResult(this, closingNotifier));
-    }
-}
-//# sourceMappingURL=windowWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map
deleted file mode 100644
index d674ad3..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgD9D,MAAM,UAAU,UAAU,CAAI,eAAsC;IAClE,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAe,CAAuB;IAC1D,CAAC;IAED,IAAI,CAAC,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,eAAuB;IAIvD,YAAsB,WAAsC,EACxC,eAAsC;QACxD,KAAK,CAAC,WAAW,CAAC,CAAC;QAFC,gBAAW,GAAX,WAAW,CAA2B;QACxC,oBAAe,GAAf,eAAe,CAAuB;QAExD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,UAAU,CAAC,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,QAAiC;QAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACxC,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACxC,CAAC;IAEO,8BAA8B;QACpC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SACxC;IACH,CAAC;IAEO,UAAU,CAAC,WAAoC,IAAI;QACzD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,QAAQ,CAAC,WAAW,EAAE,CAAC;SACxB;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;YACjC,eAAe,GAAG,eAAe,EAAE,CAAC;SACrC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO;SACR;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAChF,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js
deleted file mode 100644
index fe47ae7..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function withLatestFrom(...args) {
-    return (source) => {
-        let project;
-        if (typeof args[args.length - 1] === 'function') {
-            project = args.pop();
-        }
-        const observables = args;
-        return source.lift(new WithLatestFromOperator(observables, project));
-    };
-}
-class WithLatestFromOperator {
-    constructor(observables, project) {
-        this.observables = observables;
-        this.project = project;
-    }
-    call(subscriber, source) {
-        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
-    }
-}
-class WithLatestFromSubscriber extends OuterSubscriber {
-    constructor(destination, observables, project) {
-        super(destination);
-        this.observables = observables;
-        this.project = project;
-        this.toRespond = [];
-        const len = observables.length;
-        this.values = new Array(len);
-        for (let i = 0; i < len; i++) {
-            this.toRespond.push(i);
-        }
-        for (let i = 0; i < len; i++) {
-            let observable = observables[i];
-            this.add(subscribeToResult(this, observable, observable, i));
-        }
-    }
-    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values[outerIndex] = innerValue;
-        const toRespond = this.toRespond;
-        if (toRespond.length > 0) {
-            const found = toRespond.indexOf(outerIndex);
-            if (found !== -1) {
-                toRespond.splice(found, 1);
-            }
-        }
-    }
-    notifyComplete() {
-    }
-    _next(value) {
-        if (this.toRespond.length === 0) {
-            const args = [value, ...this.values];
-            if (this.project) {
-                this._tryProject(args);
-            }
-            else {
-                this.destination.next(args);
-            }
-        }
-    }
-    _tryProject(args) {
-        let result;
-        try {
-            result = this.project.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    }
-}
-//# sourceMappingURL=withLatestFrom.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map
deleted file mode 100644
index 821c236..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/zip.js b/node_modules/rxjs/_esm2015/internal/operators/zip.js
deleted file mode 100644
index 1c6997e..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/zip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { zip as zipStatic } from '../observable/zip';
-export function zip(...observables) {
-    return function zipOperatorFunction(source) {
-        return source.lift.call(zipStatic(source, ...observables));
-    };
-}
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/zip.js.map b/node_modules/rxjs/_esm2015/internal/operators/zip.js.map
deleted file mode 100644
index 5c9e47b..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../../src/internal/operators/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsCrD,MAAM,UAAU,GAAG,CAAO,GAAG,WAAyE;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAI,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js
deleted file mode 100644
index b3a0c7a..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { ZipOperator } from '../observable/zip';
-export function zipAll(project) {
-    return (source) => source.lift(new ZipOperator(project));
-}
-//# sourceMappingURL=zipAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map
deleted file mode 100644
index a9cb659..0000000
--- a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../../../src/internal/operators/zipAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,UAAU,MAAM,CAAO,OAAsC;IACjE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js
deleted file mode 100644
index 4604543..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function scheduleArray(input, scheduler) {
-    return new Observable(subscriber => {
-        const sub = new Subscription();
-        let i = 0;
-        sub.add(scheduler.schedule(function () {
-            if (i === input.length) {
-                subscriber.complete();
-                return;
-            }
-            subscriber.next(input[i++]);
-            if (!subscriber.closed) {
-                sub.add(this.schedule());
-            }
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map
deleted file mode 100644
index 661fe67..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleArray.js","sources":["../../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js
deleted file mode 100644
index 452d40d..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export function scheduleIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    return new Observable(subscriber => {
-        const sub = new Subscription();
-        let iterator;
-        sub.add(() => {
-            if (iterator && typeof iterator.return === 'function') {
-                iterator.return();
-            }
-        });
-        sub.add(scheduler.schedule(() => {
-            iterator = input[Symbol_iterator]();
-            sub.add(scheduler.schedule(function () {
-                if (subscriber.closed) {
-                    return;
-                }
-                let value;
-                let done;
-                try {
-                    const result = iterator.next();
-                    value = result.value;
-                    done = result.done;
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return;
-                }
-                if (done) {
-                    subscriber.complete();
-                }
-                else {
-                    subscriber.next(value);
-                    this.schedule();
-                }
-            }));
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map
deleted file mode 100644
index a9b24f6..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleIterable.js","sources":["../../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;YAEX,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC9B,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js
deleted file mode 100644
index 96ae599..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { observable as Symbol_observable } from '../symbol/observable';
-export function scheduleObservable(input, scheduler) {
-    return new Observable(subscriber => {
-        const sub = new Subscription();
-        sub.add(scheduler.schedule(() => {
-            const observable = input[Symbol_observable]();
-            sub.add(observable.subscribe({
-                next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },
-                error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },
-                complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },
-            }));
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map
deleted file mode 100644
index adddb70..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleObservable.js","sources":["../../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC9B,MAAM,UAAU,GAAoB,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js
deleted file mode 100644
index 68d4938..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function schedulePromise(input, scheduler) {
-    return new Observable(subscriber => {
-        const sub = new Subscription();
-        sub.add(scheduler.schedule(() => input.then(value => {
-            sub.add(scheduler.schedule(() => {
-                subscriber.next(value);
-                sub.add(scheduler.schedule(() => subscriber.complete()));
-            }));
-        }, err => {
-            sub.add(scheduler.schedule(() => subscriber.error(err)));
-        })));
-        return sub;
-    });
-}
-//# sourceMappingURL=schedulePromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map
deleted file mode 100644
index 2ddd8a2..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"schedulePromise.js","sources":["../../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CACzC,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,GAAG,CAAC,EAAE;YACJ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js
deleted file mode 100644
index 554d1a2..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { scheduleObservable } from './scheduleObservable';
-import { schedulePromise } from './schedulePromise';
-import { scheduleArray } from './scheduleArray';
-import { scheduleIterable } from './scheduleIterable';
-import { isInteropObservable } from '../util/isInteropObservable';
-import { isPromise } from '../util/isPromise';
-import { isArrayLike } from '../util/isArrayLike';
-import { isIterable } from '../util/isIterable';
-export function scheduled(input, scheduler) {
-    if (input != null) {
-        if (isInteropObservable(input)) {
-            return scheduleObservable(input, scheduler);
-        }
-        else if (isPromise(input)) {
-            return schedulePromise(input, scheduler);
-        }
-        else if (isArrayLike(input)) {
-            return scheduleArray(input, scheduler);
-        }
-        else if (isIterable(input) || typeof input === 'string') {
-            return scheduleIterable(input, scheduler);
-        }
-    }
-    throw new TypeError((input !== null && typeof input || input) + ' is not observable');
-}
-//# sourceMappingURL=scheduled.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map
deleted file mode 100644
index d4e76f8..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduled.js","sources":["../../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAahD,MAAM,UAAU,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js
deleted file mode 100644
index 4ded474..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Subscription } from '../Subscription';
-export class Action extends Subscription {
-    constructor(scheduler, work) {
-        super();
-    }
-    schedule(state, delay = 0) {
-        return this;
-    }
-}
-//# sourceMappingURL=Action.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map
deleted file mode 100644
index c542852..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Action.js","sources":["../../../src/internal/scheduler/Action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiB/C,MAAM,OAAO,MAAU,SAAQ,YAAY;IACzC,YAAY,SAAoB,EAAE,IAAmD;QACnF,KAAK,EAAE,CAAC;IACV,CAAC;IAWM,QAAQ,CAAC,KAAS,EAAE,QAAgB,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js
deleted file mode 100644
index e0b7ffa..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-export class AnimationFrameAction extends AsyncAction {
-    constructor(scheduler, work) {
-        super(scheduler, work);
-        this.scheduler = scheduler;
-        this.work = work;
-    }
-    requestAsyncId(scheduler, id, delay = 0) {
-        if (delay !== null && delay > 0) {
-            return super.requestAsyncId(scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(() => scheduler.flush(null)));
-    }
-    recycleAsyncId(scheduler, id, delay = 0) {
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return super.recycleAsyncId(scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            cancelAnimationFrame(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    }
-}
-//# sourceMappingURL=AnimationFrameAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map
deleted file mode 100644
index c9dabf4..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameAction.js","sources":["../../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,MAAM,OAAO,oBAAwB,SAAQ,WAAc;IAEzD,YAAsB,SAAkC,EAClC,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAyB;QAClC,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAES,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js
deleted file mode 100644
index cb658cb..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-export class AnimationFrameScheduler extends AsyncScheduler {
-    flush(action) {
-        this.active = true;
-        this.scheduled = undefined;
-        const { actions } = this;
-        let error;
-        let index = -1;
-        let count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    }
-}
-//# sourceMappingURL=AnimationFrameScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map
deleted file mode 100644
index 88d43ad..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,uBAAwB,SAAQ,cAAc;IAClD,KAAK,CAAC,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js
deleted file mode 100644
index 1d6a677..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Immediate } from '../util/Immediate';
-import { AsyncAction } from './AsyncAction';
-export class AsapAction extends AsyncAction {
-    constructor(scheduler, work) {
-        super(scheduler, work);
-        this.scheduler = scheduler;
-        this.work = work;
-    }
-    requestAsyncId(scheduler, id, delay = 0) {
-        if (delay !== null && delay > 0) {
-            return super.requestAsyncId(scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));
-    }
-    recycleAsyncId(scheduler, id, delay = 0) {
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return super.recycleAsyncId(scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            Immediate.clearImmediate(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    }
-}
-//# sourceMappingURL=AsapAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map
deleted file mode 100644
index a74d5d7..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapAction.js","sources":["../../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,OAAO,UAAc,SAAQ,WAAc;IAE/C,YAAsB,SAAwB,EACxB,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAe;QACxB,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAES,cAAc,CAAC,SAAwB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,cAAc,CAAC,SAAwB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js
deleted file mode 100644
index d4f637d..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-export class AsapScheduler extends AsyncScheduler {
-    flush(action) {
-        this.active = true;
-        this.scheduled = undefined;
-        const { actions } = this;
-        let error;
-        let index = -1;
-        let count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    }
-}
-//# sourceMappingURL=AsapScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map
deleted file mode 100644
index c8727d8..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapScheduler.js","sources":["../../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,aAAc,SAAQ,cAAc;IACxC,KAAK,CAAC,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js
deleted file mode 100644
index 66c2936..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js
+++ /dev/null
@@ -1,80 +0,0 @@
-import { Action } from './Action';
-export class AsyncAction extends Action {
-    constructor(scheduler, work) {
-        super(scheduler, work);
-        this.scheduler = scheduler;
-        this.work = work;
-        this.pending = false;
-    }
-    schedule(state, delay = 0) {
-        if (this.closed) {
-            return this;
-        }
-        this.state = state;
-        const id = this.id;
-        const scheduler = this.scheduler;
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, delay);
-        }
-        this.pending = true;
-        this.delay = delay;
-        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
-        return this;
-    }
-    requestAsyncId(scheduler, id, delay = 0) {
-        return setInterval(scheduler.flush.bind(scheduler, this), delay);
-    }
-    recycleAsyncId(scheduler, id, delay = 0) {
-        if (delay !== null && this.delay === delay && this.pending === false) {
-            return id;
-        }
-        clearInterval(id);
-        return undefined;
-    }
-    execute(state, delay) {
-        if (this.closed) {
-            return new Error('executing a cancelled action');
-        }
-        this.pending = false;
-        const error = this._execute(state, delay);
-        if (error) {
-            return error;
-        }
-        else if (this.pending === false && this.id != null) {
-            this.id = this.recycleAsyncId(this.scheduler, this.id, null);
-        }
-    }
-    _execute(state, delay) {
-        let errored = false;
-        let errorValue = undefined;
-        try {
-            this.work(state);
-        }
-        catch (e) {
-            errored = true;
-            errorValue = !!e && e || new Error(e);
-        }
-        if (errored) {
-            this.unsubscribe();
-            return errorValue;
-        }
-    }
-    _unsubscribe() {
-        const id = this.id;
-        const scheduler = this.scheduler;
-        const actions = scheduler.actions;
-        const index = actions.indexOf(this);
-        this.work = null;
-        this.state = null;
-        this.pending = false;
-        this.scheduler = null;
-        if (index !== -1) {
-            actions.splice(index, 1);
-        }
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, null);
-        }
-        this.delay = null;
-    }
-}
-//# sourceMappingURL=AsyncAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map
deleted file mode 100644
index 081998e..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncAction.js","sources":["../../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js
deleted file mode 100644
index 828192f..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Scheduler } from '../Scheduler';
-export class AsyncScheduler extends Scheduler {
-    constructor(SchedulerAction, now = Scheduler.now) {
-        super(SchedulerAction, () => {
-            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-                return AsyncScheduler.delegate.now();
-            }
-            else {
-                return now();
-            }
-        });
-        this.actions = [];
-        this.active = false;
-        this.scheduled = undefined;
-    }
-    schedule(work, delay = 0, state) {
-        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-            return AsyncScheduler.delegate.schedule(work, delay, state);
-        }
-        else {
-            return super.schedule(work, delay, state);
-        }
-    }
-    flush(action) {
-        const { actions } = this;
-        if (this.active) {
-            actions.push(action);
-            return;
-        }
-        let error;
-        this.active = true;
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (action = actions.shift());
-        this.active = false;
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    }
-}
-//# sourceMappingURL=AsyncScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map
deleted file mode 100644
index 2fd6cd5..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncScheduler.js","sources":["../../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,OAAO,cAAe,SAAQ,SAAS;IAmB3C,YAAY,eAA8B,EAC9B,MAAoB,SAAS,CAAC,GAAG;QAC3C,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE;YAC1B,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAzBE,YAAO,GAA4B,EAAE,CAAC;QAOtC,WAAM,GAAY,KAAK,CAAC;QAQxB,cAAS,GAAQ,SAAS,CAAC;IAWlC,CAAC;IAEM,QAAQ,CAAI,IAAmD,EAAE,QAAgB,CAAC,EAAE,KAAS;QAClG,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,KAAK,CAAC,MAAwB;QAEnC,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js
deleted file mode 100644
index 3b3177a..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-export class QueueAction extends AsyncAction {
-    constructor(scheduler, work) {
-        super(scheduler, work);
-        this.scheduler = scheduler;
-        this.work = work;
-    }
-    schedule(state, delay = 0) {
-        if (delay > 0) {
-            return super.schedule(state, delay);
-        }
-        this.delay = delay;
-        this.state = state;
-        this.scheduler.flush(this);
-        return this;
-    }
-    execute(state, delay) {
-        return (delay > 0 || this.closed) ?
-            super.execute(state, delay) :
-            this._execute(state, delay);
-    }
-    requestAsyncId(scheduler, id, delay = 0) {
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return super.requestAsyncId(scheduler, id, delay);
-        }
-        return scheduler.flush(this);
-    }
-}
-//# sourceMappingURL=QueueAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map
deleted file mode 100644
index af07a1e..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueAction.js","sources":["../../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,MAAM,OAAO,WAAe,SAAQ,WAAc;IAEhD,YAAsB,SAAyB,EACzB,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAgB;QACzB,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAEM,QAAQ,CAAC,KAAS,EAAE,QAAgB,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,cAAc,CAAC,SAAyB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js
deleted file mode 100644
index cc1fb4d..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-export class QueueScheduler extends AsyncScheduler {
-}
-//# sourceMappingURL=QueueScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map
deleted file mode 100644
index c32c0b1..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueScheduler.js","sources":["../../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,cAAe,SAAQ,cAAc;CACjD"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js
deleted file mode 100644
index ebce6db..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-export class VirtualTimeScheduler extends AsyncScheduler {
-    constructor(SchedulerAction = VirtualAction, maxFrames = Number.POSITIVE_INFINITY) {
-        super(SchedulerAction, () => this.frame);
-        this.maxFrames = maxFrames;
-        this.frame = 0;
-        this.index = -1;
-    }
-    flush() {
-        const { actions, maxFrames } = this;
-        let error, action;
-        while ((action = actions[0]) && action.delay <= maxFrames) {
-            actions.shift();
-            this.frame = action.delay;
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        }
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    }
-}
-VirtualTimeScheduler.frameTimeFactor = 10;
-export class VirtualAction extends AsyncAction {
-    constructor(scheduler, work, index = scheduler.index += 1) {
-        super(scheduler, work);
-        this.scheduler = scheduler;
-        this.work = work;
-        this.index = index;
-        this.active = true;
-        this.index = scheduler.index = index;
-    }
-    schedule(state, delay = 0) {
-        if (!this.id) {
-            return super.schedule(state, delay);
-        }
-        this.active = false;
-        const action = new VirtualAction(this.scheduler, this.work);
-        this.add(action);
-        return action.schedule(state, delay);
-    }
-    requestAsyncId(scheduler, id, delay = 0) {
-        this.delay = scheduler.frame + delay;
-        const { actions } = scheduler;
-        actions.push(this);
-        actions.sort(VirtualAction.sortActions);
-        return true;
-    }
-    recycleAsyncId(scheduler, id, delay = 0) {
-        return undefined;
-    }
-    _execute(state, delay) {
-        if (this.active === true) {
-            return super._execute(state, delay);
-        }
-    }
-    static sortActions(a, b) {
-        if (a.delay === b.delay) {
-            if (a.index === b.index) {
-                return 0;
-            }
-            else if (a.index > b.index) {
-                return 1;
-            }
-            else {
-                return -1;
-            }
-        }
-        else if (a.delay > b.delay) {
-            return 1;
-        }
-        else {
-            return -1;
-        }
-    }
-}
-//# sourceMappingURL=VirtualTimeScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map
deleted file mode 100644
index 9b56e6e..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js
deleted file mode 100644
index 76f7c88..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { AnimationFrameAction } from './AnimationFrameAction';
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-export const animationFrame = new AnimationFrameScheduler(AnimationFrameAction);
-//# sourceMappingURL=animationFrame.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map
deleted file mode 100644
index 79ee601..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"animationFrame.js","sources":["../../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAsCpE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js
deleted file mode 100644
index 348d17e..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { AsapAction } from './AsapAction';
-import { AsapScheduler } from './AsapScheduler';
-export const asap = new AsapScheduler(AsapAction);
-//# sourceMappingURL=asap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map
deleted file mode 100644
index bb649f6..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"asap.js","sources":["../../../src/internal/scheduler/asap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAwChD,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/async.js b/node_modules/rxjs/_esm2015/internal/scheduler/async.js
deleted file mode 100644
index 2fa6636..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/async.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-export const async = new AsyncScheduler(AsyncAction);
-//# sourceMappingURL=async.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map
deleted file mode 100644
index c74d389..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"async.js","sources":["../../../src/internal/scheduler/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqDlD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js
deleted file mode 100644
index 1a7edea..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { QueueAction } from './QueueAction';
-import { QueueScheduler } from './QueueScheduler';
-export const queue = new QueueScheduler(QueueAction);
-//# sourceMappingURL=queue.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map
deleted file mode 100644
index 28e8897..0000000
--- a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"queue.js","sources":["../../../src/internal/scheduler/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqElD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js
deleted file mode 100644
index 33fadd2..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export function getSymbolIterator() {
-    if (typeof Symbol !== 'function' || !Symbol.iterator) {
-        return '@@iterator';
-    }
-    return Symbol.iterator;
-}
-export const iterator = getSymbolIterator();
-export const $$iterator = iterator;
-//# sourceMappingURL=iterator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map
deleted file mode 100644
index 9670bee..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iterator.js","sources":["../../../src/internal/symbol/iterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK5C,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/observable.js b/node_modules/rxjs/_esm2015/internal/symbol/observable.js
deleted file mode 100644
index 0075890..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/observable.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();
-//# sourceMappingURL=observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map b/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map
deleted file mode 100644
index 08d4eef..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observable.js","sources":["../../../src/internal/symbol/observable.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js
deleted file mode 100644
index 64d5dc6..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export const rxSubscriber = (() => typeof Symbol === 'function'
-    ? Symbol('rxSubscriber')
-    : '@@rxSubscriber_' + Math.random())();
-export const $$rxSubscriber = rxSubscriber;
-//# sourceMappingURL=rxSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map
deleted file mode 100644
index 615f022..0000000
--- a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,CAChC,OAAO,MAAM,KAAK,UAAU;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAK3C,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js
deleted file mode 100644
index 4bb5173..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-export class ColdObservable extends Observable {
-    constructor(messages, scheduler) {
-        super(function (subscriber) {
-            const observable = this;
-            const index = observable.logSubscribedFrame();
-            const subscription = new Subscription();
-            subscription.add(new Subscription(() => {
-                observable.logUnsubscribedFrame(index);
-            }));
-            observable.scheduleMessages(subscriber);
-            return subscription;
-        });
-        this.messages = messages;
-        this.subscriptions = [];
-        this.scheduler = scheduler;
-    }
-    scheduleMessages(subscriber) {
-        const messagesLength = this.messages.length;
-        for (let i = 0; i < messagesLength; i++) {
-            const message = this.messages[i];
-            subscriber.add(this.scheduler.schedule(({ message, subscriber }) => { message.notification.observe(subscriber); }, message.frame, { message, subscriber }));
-        }
-    }
-}
-applyMixins(ColdObservable, [SubscriptionLoggable]);
-//# sourceMappingURL=ColdObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map
deleted file mode 100644
index a6f9c6d..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ColdObservable.js","sources":["../../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,MAAM,OAAO,cAAkB,SAAQ,UAAa;IAMlD,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,KAAK,CAAC,UAA+B,UAA2B;YAC9D,MAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE;gBACrC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAXc,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAiB3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,UAA2B;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;CACF;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js
deleted file mode 100644
index e2ac763..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-export class HotObservable extends Subject {
-    constructor(messages, scheduler) {
-        super();
-        this.messages = messages;
-        this.subscriptions = [];
-        this.scheduler = scheduler;
-    }
-    _subscribe(subscriber) {
-        const subject = this;
-        const index = subject.logSubscribedFrame();
-        const subscription = new Subscription();
-        subscription.add(new Subscription(() => {
-            subject.logUnsubscribedFrame(index);
-        }));
-        subscription.add(super._subscribe(subscriber));
-        return subscription;
-    }
-    setup() {
-        const subject = this;
-        const messagesLength = subject.messages.length;
-        for (var i = 0; i < messagesLength; i++) {
-            (() => {
-                var message = subject.messages[i];
-                subject.scheduler.schedule(() => { message.notification.observe(subject); }, message.frame);
-            })();
-        }
-    }
-}
-applyMixins(HotObservable, [SubscriptionLoggable]);
-//# sourceMappingURL=HotObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map
deleted file mode 100644
index ac44f2a..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"HotObservable.js","sources":["../../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOlD,MAAM,OAAO,aAAiB,SAAQ,OAAU;IAM9C,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,KAAK,EAAE,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAQ3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAGD,UAAU,CAAC,UAA2B;QACpC,MAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE;YACrC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC,GAAG,EAAE;gBACJ,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;CACF;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js
deleted file mode 100644
index c421751..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export class SubscriptionLog {
-    constructor(subscribedFrame, unsubscribedFrame = Number.POSITIVE_INFINITY) {
-        this.subscribedFrame = subscribedFrame;
-        this.unsubscribedFrame = unsubscribedFrame;
-    }
-}
-//# sourceMappingURL=SubscriptionLog.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map
deleted file mode 100644
index 8903b16..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLog.js","sources":["../../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAC1B,YAAmB,eAAuB,EACvB,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js
deleted file mode 100644
index 08a00d7..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { SubscriptionLog } from './SubscriptionLog';
-export class SubscriptionLoggable {
-    constructor() {
-        this.subscriptions = [];
-    }
-    logSubscribedFrame() {
-        this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));
-        return this.subscriptions.length - 1;
-    }
-    logUnsubscribedFrame(index) {
-        const subscriptionLogs = this.subscriptions;
-        const oldSubscriptionLog = subscriptionLogs[index];
-        subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());
-    }
-}
-//# sourceMappingURL=SubscriptionLoggable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map
deleted file mode 100644
index 37f16be..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLoggable.js","sources":["../../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,oBAAoB;IAAjC;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,eAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;CACF"}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js
deleted file mode 100644
index 908175c..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=TestMessage.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map
deleted file mode 100644
index b19facd..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestMessage.js","sources":["../../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js
deleted file mode 100644
index 3b8a55f..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js
+++ /dev/null
@@ -1,322 +0,0 @@
-import { Observable } from '../Observable';
-import { Notification } from '../Notification';
-import { ColdObservable } from './ColdObservable';
-import { HotObservable } from './HotObservable';
-import { SubscriptionLog } from './SubscriptionLog';
-import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';
-import { AsyncScheduler } from '../scheduler/AsyncScheduler';
-const defaultMaxFrame = 750;
-export class TestScheduler extends VirtualTimeScheduler {
-    constructor(assertDeepEqual) {
-        super(VirtualAction, defaultMaxFrame);
-        this.assertDeepEqual = assertDeepEqual;
-        this.hotObservables = [];
-        this.coldObservables = [];
-        this.flushTests = [];
-        this.runMode = false;
-    }
-    createTime(marbles) {
-        const indexOf = marbles.indexOf('|');
-        if (indexOf === -1) {
-            throw new Error('marble diagram for time should have a completion marker "|"');
-        }
-        return indexOf * TestScheduler.frameTimeFactor;
-    }
-    createColdObservable(marbles, values, error) {
-        if (marbles.indexOf('^') !== -1) {
-            throw new Error('cold observable cannot have subscription offset "^"');
-        }
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('cold observable cannot have unsubscription marker "!"');
-        }
-        const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        const cold = new ColdObservable(messages, this);
-        this.coldObservables.push(cold);
-        return cold;
-    }
-    createHotObservable(marbles, values, error) {
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('hot observable cannot have unsubscription marker "!"');
-        }
-        const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        const subject = new HotObservable(messages, this);
-        this.hotObservables.push(subject);
-        return subject;
-    }
-    materializeInnerObservable(observable, outerFrame) {
-        const messages = [];
-        observable.subscribe((value) => {
-            messages.push({ frame: this.frame - outerFrame, notification: Notification.createNext(value) });
-        }, (err) => {
-            messages.push({ frame: this.frame - outerFrame, notification: Notification.createError(err) });
-        }, () => {
-            messages.push({ frame: this.frame - outerFrame, notification: Notification.createComplete() });
-        });
-        return messages;
-    }
-    expectObservable(observable, subscriptionMarbles = null) {
-        const actual = [];
-        const flushTest = { actual, ready: false };
-        const subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
-        const subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?
-            0 : subscriptionParsed.subscribedFrame;
-        const unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
-        let subscription;
-        this.schedule(() => {
-            subscription = observable.subscribe(x => {
-                let value = x;
-                if (x instanceof Observable) {
-                    value = this.materializeInnerObservable(value, this.frame);
-                }
-                actual.push({ frame: this.frame, notification: Notification.createNext(value) });
-            }, (err) => {
-                actual.push({ frame: this.frame, notification: Notification.createError(err) });
-            }, () => {
-                actual.push({ frame: this.frame, notification: Notification.createComplete() });
-            });
-        }, subscriptionFrame);
-        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-            this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame);
-        }
-        this.flushTests.push(flushTest);
-        const { runMode } = this;
-        return {
-            toBe(marbles, values, errorValue) {
-                flushTest.ready = true;
-                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
-            }
-        };
-    }
-    expectSubscriptions(actualSubscriptionLogs) {
-        const flushTest = { actual: actualSubscriptionLogs, ready: false };
-        this.flushTests.push(flushTest);
-        const { runMode } = this;
-        return {
-            toBe(marbles) {
-                const marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;
-                flushTest.ready = true;
-                flushTest.expected = marblesArray.map(marbles => TestScheduler.parseMarblesAsSubscriptions(marbles, runMode));
-            }
-        };
-    }
-    flush() {
-        const hotObservables = this.hotObservables;
-        while (hotObservables.length > 0) {
-            hotObservables.shift().setup();
-        }
-        super.flush();
-        this.flushTests = this.flushTests.filter(test => {
-            if (test.ready) {
-                this.assertDeepEqual(test.actual, test.expected);
-                return false;
-            }
-            return true;
-        });
-    }
-    static parseMarblesAsSubscriptions(marbles, runMode = false) {
-        if (typeof marbles !== 'string') {
-            return new SubscriptionLog(Number.POSITIVE_INFINITY);
-        }
-        const len = marbles.length;
-        let groupStart = -1;
-        let subscriptionFrame = Number.POSITIVE_INFINITY;
-        let unsubscriptionFrame = Number.POSITIVE_INFINITY;
-        let frame = 0;
-        for (let i = 0; i < len; i++) {
-            let nextFrame = frame;
-            const advanceFrameBy = (count) => {
-                nextFrame += count * this.frameTimeFactor;
-            };
-            const c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    subscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    advanceFrameBy(1);
-                    break;
-                case '!':
-                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            const buffer = marbles.slice(i);
-                            const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                const duration = parseFloat(match[1]);
-                                const unit = match[2];
-                                let durationInMs;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    throw new Error('there can only be \'^\' and \'!\' markers in a ' +
-                        'subscription marble diagram. Found instead \'' + c + '\'.');
-            }
-            frame = nextFrame;
-        }
-        if (unsubscriptionFrame < 0) {
-            return new SubscriptionLog(subscriptionFrame);
-        }
-        else {
-            return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
-        }
-    }
-    static parseMarbles(marbles, values, errorValue, materializeInnerObservables = false, runMode = false) {
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('conventional marble diagrams cannot have the ' +
-                'unsubscription marker "!"');
-        }
-        const len = marbles.length;
-        const testMessages = [];
-        const subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
-        let frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);
-        const getValue = typeof values !== 'object' ?
-            (x) => x :
-            (x) => {
-                if (materializeInnerObservables && values[x] instanceof ColdObservable) {
-                    return values[x].messages;
-                }
-                return values[x];
-            };
-        let groupStart = -1;
-        for (let i = 0; i < len; i++) {
-            let nextFrame = frame;
-            const advanceFrameBy = (count) => {
-                nextFrame += count * this.frameTimeFactor;
-            };
-            let notification;
-            const c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '|':
-                    notification = Notification.createComplete();
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    advanceFrameBy(1);
-                    break;
-                case '#':
-                    notification = Notification.createError(errorValue || 'error');
-                    advanceFrameBy(1);
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            const buffer = marbles.slice(i);
-                            const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                const duration = parseFloat(match[1]);
-                                const unit = match[2];
-                                let durationInMs;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    notification = Notification.createNext(getValue(c));
-                    advanceFrameBy(1);
-                    break;
-            }
-            if (notification) {
-                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification });
-            }
-            frame = nextFrame;
-        }
-        return testMessages;
-    }
-    run(callback) {
-        const prevFrameTimeFactor = TestScheduler.frameTimeFactor;
-        const prevMaxFrames = this.maxFrames;
-        TestScheduler.frameTimeFactor = 1;
-        this.maxFrames = Number.POSITIVE_INFINITY;
-        this.runMode = true;
-        AsyncScheduler.delegate = this;
-        const helpers = {
-            cold: this.createColdObservable.bind(this),
-            hot: this.createHotObservable.bind(this),
-            flush: this.flush.bind(this),
-            expectObservable: this.expectObservable.bind(this),
-            expectSubscriptions: this.expectSubscriptions.bind(this),
-        };
-        try {
-            const ret = callback(helpers);
-            this.flush();
-            return ret;
-        }
-        finally {
-            TestScheduler.frameTimeFactor = prevFrameTimeFactor;
-            this.maxFrames = prevMaxFrames;
-            this.runMode = false;
-            AsyncScheduler.delegate = undefined;
-        }
-    }
-}
-//# sourceMappingURL=TestScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map
deleted file mode 100644
index b2c5bdc..0000000
--- a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestScheduler.js","sources":["../../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/internal/types.js b/node_modules/rxjs/_esm2015/internal/types.js
deleted file mode 100644
index 5b2306a..0000000
--- a/node_modules/rxjs/_esm2015/internal/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/types.js.map b/node_modules/rxjs/_esm2015/internal/types.js.map
deleted file mode 100644
index 607b992..0000000
--- a/node_modules/rxjs/_esm2015/internal/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sources":["../../src/internal/types.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js
deleted file mode 100644
index 73baa86..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const ArgumentOutOfRangeErrorImpl = (() => {
-    function ArgumentOutOfRangeErrorImpl() {
-        Error.call(this);
-        this.message = 'argument out of range';
-        this.name = 'ArgumentOutOfRangeError';
-        return this;
-    }
-    ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);
-    return ArgumentOutOfRangeErrorImpl;
-})();
-export const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
-//# sourceMappingURL=ArgumentOutOfRangeError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map
deleted file mode 100644
index d57ac07..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":"AAOA,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE;IACxC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,MAAM,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js
deleted file mode 100644
index 6f0cbcc..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const EmptyErrorImpl = (() => {
-    function EmptyErrorImpl() {
-        Error.call(this);
-        this.message = 'no elements in sequence';
-        this.name = 'EmptyError';
-        return this;
-    }
-    EmptyErrorImpl.prototype = Object.create(Error.prototype);
-    return EmptyErrorImpl;
-})();
-export const EmptyError = EmptyErrorImpl;
-//# sourceMappingURL=EmptyError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map
deleted file mode 100644
index a8e85a3..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"EmptyError.js","sources":["../../../src/internal/util/EmptyError.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;IAC3B,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,MAAM,UAAU,GAAmB,cAAqB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/Immediate.js b/node_modules/rxjs/_esm2015/internal/util/Immediate.js
deleted file mode 100644
index 318097b..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/Immediate.js
+++ /dev/null
@@ -1,27 +0,0 @@
-let nextHandle = 1;
-const RESOLVED = (() => Promise.resolve())();
-const activeHandles = {};
-function findAndClearHandle(handle) {
-    if (handle in activeHandles) {
-        delete activeHandles[handle];
-        return true;
-    }
-    return false;
-}
-export const Immediate = {
-    setImmediate(cb) {
-        const handle = nextHandle++;
-        activeHandles[handle] = true;
-        RESOLVED.then(() => findAndClearHandle(handle) && cb());
-        return handle;
-    },
-    clearImmediate(handle) {
-        findAndClearHandle(handle);
-    },
-};
-export const TestTools = {
-    pending() {
-        return Object.keys(activeHandles).length;
-    }
-};
-//# sourceMappingURL=Immediate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map b/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map
deleted file mode 100644
index 402f32e..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Immediate.js","sources":["../../../src/internal/util/Immediate.ts"],"names":[],"mappings":"AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,MAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,CAAC,EAAc;QACzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js
deleted file mode 100644
index 19587e6..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const ObjectUnsubscribedErrorImpl = (() => {
-    function ObjectUnsubscribedErrorImpl() {
-        Error.call(this);
-        this.message = 'object unsubscribed';
-        this.name = 'ObjectUnsubscribedError';
-        return this;
-    }
-    ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);
-    return ObjectUnsubscribedErrorImpl;
-})();
-export const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
-//# sourceMappingURL=ObjectUnsubscribedError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map
deleted file mode 100644
index 0567cdb..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":"AAOA,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE;IACxC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWL,MAAM,CAAC,MAAM,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js
deleted file mode 100644
index 90b79ca..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const TimeoutErrorImpl = (() => {
-    function TimeoutErrorImpl() {
-        Error.call(this);
-        this.message = 'Timeout has occurred';
-        this.name = 'TimeoutError';
-        return this;
-    }
-    TimeoutErrorImpl.prototype = Object.create(Error.prototype);
-    return TimeoutErrorImpl;
-})();
-export const TimeoutError = TimeoutErrorImpl;
-//# sourceMappingURL=TimeoutError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map
deleted file mode 100644
index 08a99ad..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TimeoutError.js","sources":["../../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":"AAOA,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;IAC7B,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASL,MAAM,CAAC,MAAM,YAAY,GAAqB,gBAAuB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js
deleted file mode 100644
index 41b16f6..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const UnsubscriptionErrorImpl = (() => {
-    function UnsubscriptionErrorImpl(errors) {
-        Error.call(this);
-        this.message = errors ?
-            `${errors.length} errors occurred during unsubscription:
-${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n  ')}` : '';
-        this.name = 'UnsubscriptionError';
-        this.errors = errors;
-        return this;
-    }
-    UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
-    return UnsubscriptionErrorImpl;
-})();
-export const UnsubscriptionError = UnsubscriptionErrorImpl;
-//# sourceMappingURL=UnsubscriptionError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map
deleted file mode 100644
index 573d18b..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UnsubscriptionError.js","sources":["../../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":"AAQA,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE;IACpC,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YACrB,GAAG,MAAM,CAAC,MAAM;EACpB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAML,MAAM,CAAC,MAAM,mBAAmB,GAA4B,uBAA8B,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js
deleted file mode 100644
index dfbeb91..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export function applyMixins(derivedCtor, baseCtors) {
-    for (let i = 0, len = baseCtors.length; i < len; i++) {
-        const baseCtor = baseCtors[i];
-        const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
-        for (let j = 0, len2 = propertyKeys.length; j < len2; j++) {
-            const name = propertyKeys[j];
-            derivedCtor.prototype[name] = baseCtor.prototype[name];
-        }
-    }
-}
-//# sourceMappingURL=applyMixins.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map
deleted file mode 100644
index 11e203d..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyMixins.js","sources":["../../../src/internal/util/applyMixins.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/canReportError.js b/node_modules/rxjs/_esm2015/internal/util/canReportError.js
deleted file mode 100644
index 08819b5..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/canReportError.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export function canReportError(observer) {
-    while (observer) {
-        const { closed, destination, isStopped } = observer;
-        if (closed || isStopped) {
-            return false;
-        }
-        else if (destination && destination instanceof Subscriber) {
-            observer = destination;
-        }
-        else {
-            observer = null;
-        }
-    }
-    return true;
-}
-//# sourceMappingURL=canReportError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map b/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map
deleted file mode 100644
index bed1e3b..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACf,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,QAAe,CAAC;QAC3D,IAAI,MAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/errorObject.js b/node_modules/rxjs/_esm2015/internal/util/errorObject.js
deleted file mode 100644
index 26ab7ff..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/errorObject.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const errorObject = { e: {} };
-//# sourceMappingURL=errorObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map b/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map
deleted file mode 100644
index dafb8c3..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"errorObject.js","sources":["../../../src/internal/util/errorObject.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js
deleted file mode 100644
index 3851a36..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function hostReportError(err) {
-    setTimeout(() => { throw err; }, 0);
-}
-//# sourceMappingURL=hostReportError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map
deleted file mode 100644
index 202c752..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hostReportError.js","sources":["../../../src/internal/util/hostReportError.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/identity.js b/node_modules/rxjs/_esm2015/internal/util/identity.js
deleted file mode 100644
index 1084d77..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/identity.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function identity(x) {
-    return x;
-}
-//# sourceMappingURL=identity.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/identity.js.map b/node_modules/rxjs/_esm2015/internal/util/identity.js.map
deleted file mode 100644
index 3173922..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/identity.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"identity.js","sources":["../../../src/internal/util/identity.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isArray.js b/node_modules/rxjs/_esm2015/internal/util/isArray.js
deleted file mode 100644
index 98ae429..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isArray.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();
-//# sourceMappingURL=isArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isArray.js.map b/node_modules/rxjs/_esm2015/internal/util/isArray.js.map
deleted file mode 100644
index bdff915..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArray.js","sources":["../../../src/internal/util/isArray.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAI,CAAM,EAAY,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js
deleted file mode 100644
index 393c8b8..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');
-//# sourceMappingURL=isArrayLike.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map
deleted file mode 100644
index 5f70120..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArrayLike.js","sources":["../../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAI,CAAM,EAAqB,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isDate.js b/node_modules/rxjs/_esm2015/internal/util/isDate.js
deleted file mode 100644
index 842d77f..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isDate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isDate(value) {
-    return value instanceof Date && !isNaN(+value);
-}
-//# sourceMappingURL=isDate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isDate.js.map b/node_modules/rxjs/_esm2015/internal/util/isDate.js.map
deleted file mode 100644
index 6958919..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isDate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isDate.js","sources":["../../../src/internal/util/isDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isFunction.js b/node_modules/rxjs/_esm2015/internal/util/isFunction.js
deleted file mode 100644
index c569835..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isFunction.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isFunction(x) {
-    return typeof x === 'function';
-}
-//# sourceMappingURL=isFunction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map b/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map
deleted file mode 100644
index 3774b95..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isFunction.js","sources":["../../../src/internal/util/isFunction.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js
deleted file mode 100644
index 00ab1c7..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { observable as Symbol_observable } from '../symbol/observable';
-export function isInteropObservable(input) {
-    return input && typeof input[Symbol_observable] === 'function';
-}
-//# sourceMappingURL=isInteropObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map
deleted file mode 100644
index 8826421..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isInteropObservable.js","sources":["../../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isIterable.js b/node_modules/rxjs/_esm2015/internal/util/isIterable.js
deleted file mode 100644
index 484e8ed..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isIterable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export function isIterable(input) {
-    return input && typeof input[Symbol_iterator] === 'function';
-}
-//# sourceMappingURL=isIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map b/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map
deleted file mode 100644
index 3ff5f6e..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isIterable.js","sources":["../../../src/internal/util/isIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js
deleted file mode 100644
index a7a70d8..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { isArray } from './isArray';
-export function isNumeric(val) {
-    return !isArray(val) && (val - parseFloat(val) + 1) >= 0;
-}
-//# sourceMappingURL=isNumeric.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map
deleted file mode 100644
index b5954be..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isNumeric.js","sources":["../../../src/internal/util/isNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isObject.js b/node_modules/rxjs/_esm2015/internal/util/isObject.js
deleted file mode 100644
index e67f6e8..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isObject.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isObject(x) {
-    return x !== null && typeof x === 'object';
-}
-//# sourceMappingURL=isObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isObject.js.map b/node_modules/rxjs/_esm2015/internal/util/isObject.js.map
deleted file mode 100644
index f942bed..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObject.js","sources":["../../../src/internal/util/isObject.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isObservable.js b/node_modules/rxjs/_esm2015/internal/util/isObservable.js
deleted file mode 100644
index d1c95f5..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isObservable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-export function isObservable(obj) {
-    return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
-}
-//# sourceMappingURL=isObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map
deleted file mode 100644
index fa08bc7..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObservable.js","sources":["../../../src/internal/util/isObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isPromise.js b/node_modules/rxjs/_esm2015/internal/util/isPromise.js
deleted file mode 100644
index 7ffe206..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isPromise.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isPromise(value) {
-    return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
-}
-//# sourceMappingURL=isPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map b/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map
deleted file mode 100644
index dcd975c..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isPromise.js","sources":["../../../src/internal/util/isPromise.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js
deleted file mode 100644
index 51a2ba4..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export function isScheduler(value) {
-    return value && typeof value.schedule === 'function';
-}
-//# sourceMappingURL=isScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map
deleted file mode 100644
index 75c4eca..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isScheduler.js","sources":["../../../src/internal/util/isScheduler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/noop.js b/node_modules/rxjs/_esm2015/internal/util/noop.js
deleted file mode 100644
index 1a78a54..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/noop.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export function noop() { }
-//# sourceMappingURL=noop.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/noop.js.map b/node_modules/rxjs/_esm2015/internal/util/noop.js.map
deleted file mode 100644
index 5d245d8..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/noop.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"noop.js","sources":["../../../src/internal/util/noop.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,IAAI,KAAK,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/not.js b/node_modules/rxjs/_esm2015/internal/util/not.js
deleted file mode 100644
index f430f55..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/not.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export function not(pred, thisArg) {
-    function notPred() {
-        return !(notPred.pred.apply(notPred.thisArg, arguments));
-    }
-    notPred.pred = pred;
-    notPred.thisArg = thisArg;
-    return notPred;
-}
-//# sourceMappingURL=not.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/not.js.map b/node_modules/rxjs/_esm2015/internal/util/not.js.map
deleted file mode 100644
index c74adc5..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/not.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"not.js","sources":["../../../src/internal/util/not.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/pipe.js b/node_modules/rxjs/_esm2015/internal/util/pipe.js
deleted file mode 100644
index 3bda15e..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/pipe.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { noop } from './noop';
-export function pipe(...fns) {
-    return pipeFromArray(fns);
-}
-export function pipeFromArray(fns) {
-    if (!fns) {
-        return noop;
-    }
-    if (fns.length === 1) {
-        return fns[0];
-    }
-    return function piped(input) {
-        return fns.reduce((prev, fn) => fn(prev), input);
-    };
-}
-//# sourceMappingURL=pipe.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/pipe.js.map b/node_modules/rxjs/_esm2015/internal/util/pipe.js.map
deleted file mode 100644
index f82b8e1..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/pipe.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB9B,MAAM,UAAU,IAAI,CAAC,GAAG,GAAmC;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAuB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/root.js b/node_modules/rxjs/_esm2015/internal/util/root.js
deleted file mode 100644
index e12f2e2..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/root.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const __window = typeof window !== 'undefined' && window;
-const __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
-    self instanceof WorkerGlobalScope && self;
-const __global = typeof global !== 'undefined' && global;
-const _root = __window || __global || __self;
-(function () {
-    if (!_root) {
-        throw new Error('RxJS could not find any global context (window, self, global)');
-    }
-})();
-export { _root as root };
-//# sourceMappingURL=root.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/root.js.map b/node_modules/rxjs/_esm2015/internal/util/root.js.map
deleted file mode 100644
index db51d96..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/root.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"root.js","sources":["../../../src/internal/util/root.ts"],"names":[],"mappings":"AAeA,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,MAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAKlD,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js
deleted file mode 100644
index 71a569b..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import { subscribeToArray } from './subscribeToArray';
-import { subscribeToPromise } from './subscribeToPromise';
-import { subscribeToIterable } from './subscribeToIterable';
-import { subscribeToObservable } from './subscribeToObservable';
-import { isArrayLike } from './isArrayLike';
-import { isPromise } from './isPromise';
-import { isObject } from './isObject';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-import { observable as Symbol_observable } from '../symbol/observable';
-export const subscribeTo = (result) => {
-    if (!!result && typeof result[Symbol_observable] === 'function') {
-        return subscribeToObservable(result);
-    }
-    else if (isArrayLike(result)) {
-        return subscribeToArray(result);
-    }
-    else if (isPromise(result)) {
-        return subscribeToPromise(result);
-    }
-    else if (!!result && typeof result[Symbol_iterator] === 'function') {
-        return subscribeToIterable(result);
-    }
-    else {
-        const value = isObject(result) ? 'an invalid object' : `'${result}'`;
-        const msg = `You provided ${value} where a stream was expected.`
-            + ' You can provide an Observable, Promise, Array, or Iterable.';
-        throw new TypeError(msg);
-    }
-};
-//# sourceMappingURL=subscribeTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map
deleted file mode 100644
index 22f4c1e..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeTo.js","sources":["../../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,MAA0B,EAAsD,EAAE;IAC/G,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,qBAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,kBAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,mBAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC;QACrE,MAAM,GAAG,GAAG,gBAAgB,KAAK,+BAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js
deleted file mode 100644
index 2693661..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export const subscribeToArray = (array) => (subscriber) => {
-    for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {
-        subscriber.next(array[i]);
-    }
-    subscriber.complete();
-};
-//# sourceMappingURL=subscribeToArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map
deleted file mode 100644
index ebf89a1..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToArray.js","sources":["../../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,KAAmB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js
deleted file mode 100644
index cd64b04..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export const subscribeToIterable = (iterable) => (subscriber) => {
-    const iterator = iterable[Symbol_iterator]();
-    do {
-        const item = iterator.next();
-        if (item.done) {
-            subscriber.complete();
-            break;
-        }
-        subscriber.next(item.value);
-        if (subscriber.closed) {
-            break;
-        }
-    } while (true);
-    if (typeof iterator.return === 'function') {
-        subscriber.add(() => {
-            if (iterator.return) {
-                iterator.return();
-            }
-        });
-    }
-    return subscriber;
-};
-//# sourceMappingURL=subscribeToIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map
deleted file mode 100644
index e06662c..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToIterable.js","sources":["../../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,QAAqB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAC7F,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7C,GAAG;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js
deleted file mode 100644
index 8a28421..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { observable as Symbol_observable } from '../symbol/observable';
-export const subscribeToObservable = (obj) => (subscriber) => {
-    const obs = obj[Symbol_observable]();
-    if (typeof obs.subscribe !== 'function') {
-        throw new TypeError('Provided object does not correctly implement Symbol.observable');
-    }
-    else {
-        return obs.subscribe(subscriber);
-    }
-};
-//# sourceMappingURL=subscribeToObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map
deleted file mode 100644
index 85cce8d..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToObservable.js","sources":["../../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAI,GAAQ,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAClF,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js
deleted file mode 100644
index 0f919ba..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { hostReportError } from './hostReportError';
-export const subscribeToPromise = (promise) => (subscriber) => {
-    promise.then((value) => {
-        if (!subscriber.closed) {
-            subscriber.next(value);
-            subscriber.complete();
-        }
-    }, (err) => subscriber.error(err))
-        .then(null, hostReportError);
-    return subscriber;
-};
-//# sourceMappingURL=subscribeToPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map
deleted file mode 100644
index f8af52c..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToPromise.js","sources":["../../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAI,OAAuB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAC9F,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,CAAC,GAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js
deleted file mode 100644
index be8d01f..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeTo } from './subscribeTo';
-import { Observable } from '../Observable';
-export function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {
-    if (innerSubscriber.closed) {
-        return undefined;
-    }
-    if (result instanceof Observable) {
-        return result.subscribe(innerSubscriber);
-    }
-    return subscribeTo(result)(innerSubscriber);
-}
-//# sourceMappingURL=subscribeToResult.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map
deleted file mode 100644
index c1751b6..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToResult.js","sources":["../../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiB3C,MAAM,UAAU,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,kBAAiC,IAAI,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js
deleted file mode 100644
index 1d61183..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';
-import { empty as emptyObserver } from '../Observer';
-export function toSubscriber(nextOrObserver, error, complete) {
-    if (nextOrObserver) {
-        if (nextOrObserver instanceof Subscriber) {
-            return nextOrObserver;
-        }
-        if (nextOrObserver[rxSubscriberSymbol]) {
-            return nextOrObserver[rxSubscriberSymbol]();
-        }
-    }
-    if (!nextOrObserver && !error && !complete) {
-        return new Subscriber(emptyObserver);
-    }
-    return new Subscriber(nextOrObserver, error, complete);
-}
-//# sourceMappingURL=toSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map
deleted file mode 100644
index 5f6c7a9..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toSubscriber.js","sources":["../../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,UAAU,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,UAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js
deleted file mode 100644
index 503fcee..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { errorObject } from './errorObject';
-let tryCatchTarget;
-function tryCatcher() {
-    errorObject.e = undefined;
-    try {
-        return tryCatchTarget.apply(this, arguments);
-    }
-    catch (e) {
-        errorObject.e = e;
-        return errorObject;
-    }
-    finally {
-        tryCatchTarget = undefined;
-    }
-}
-export function tryCatch(fn) {
-    tryCatchTarget = fn;
-    return tryCatcher;
-}
-//# sourceMappingURL=tryCatch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map
deleted file mode 100644
index f685299..0000000
--- a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tryCatch.js","sources":["../../../src/internal/util/tryCatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/operators/index.js b/node_modules/rxjs/_esm2015/operators/index.js
deleted file mode 100644
index 9531fe8..0000000
--- a/node_modules/rxjs/_esm2015/operators/index.js
+++ /dev/null
@@ -1,105 +0,0 @@
-export { audit } from '../internal/operators/audit';
-export { auditTime } from '../internal/operators/auditTime';
-export { buffer } from '../internal/operators/buffer';
-export { bufferCount } from '../internal/operators/bufferCount';
-export { bufferTime } from '../internal/operators/bufferTime';
-export { bufferToggle } from '../internal/operators/bufferToggle';
-export { bufferWhen } from '../internal/operators/bufferWhen';
-export { catchError } from '../internal/operators/catchError';
-export { combineAll } from '../internal/operators/combineAll';
-export { combineLatest } from '../internal/operators/combineLatest';
-export { concat } from '../internal/operators/concat';
-export { concatAll } from '../internal/operators/concatAll';
-export { concatMap } from '../internal/operators/concatMap';
-export { concatMapTo } from '../internal/operators/concatMapTo';
-export { count } from '../internal/operators/count';
-export { debounce } from '../internal/operators/debounce';
-export { debounceTime } from '../internal/operators/debounceTime';
-export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';
-export { delay } from '../internal/operators/delay';
-export { delayWhen } from '../internal/operators/delayWhen';
-export { dematerialize } from '../internal/operators/dematerialize';
-export { distinct } from '../internal/operators/distinct';
-export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';
-export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';
-export { elementAt } from '../internal/operators/elementAt';
-export { endWith } from '../internal/operators/endWith';
-export { every } from '../internal/operators/every';
-export { exhaust } from '../internal/operators/exhaust';
-export { exhaustMap } from '../internal/operators/exhaustMap';
-export { expand } from '../internal/operators/expand';
-export { filter } from '../internal/operators/filter';
-export { finalize } from '../internal/operators/finalize';
-export { find } from '../internal/operators/find';
-export { findIndex } from '../internal/operators/findIndex';
-export { first } from '../internal/operators/first';
-export { groupBy } from '../internal/operators/groupBy';
-export { ignoreElements } from '../internal/operators/ignoreElements';
-export { isEmpty } from '../internal/operators/isEmpty';
-export { last } from '../internal/operators/last';
-export { map } from '../internal/operators/map';
-export { mapTo } from '../internal/operators/mapTo';
-export { materialize } from '../internal/operators/materialize';
-export { max } from '../internal/operators/max';
-export { merge } from '../internal/operators/merge';
-export { mergeAll } from '../internal/operators/mergeAll';
-export { mergeMap } from '../internal/operators/mergeMap';
-export { mergeMap as flatMap } from '../internal/operators/mergeMap';
-export { mergeMapTo } from '../internal/operators/mergeMapTo';
-export { mergeScan } from '../internal/operators/mergeScan';
-export { min } from '../internal/operators/min';
-export { multicast } from '../internal/operators/multicast';
-export { observeOn } from '../internal/operators/observeOn';
-export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';
-export { pairwise } from '../internal/operators/pairwise';
-export { partition } from '../internal/operators/partition';
-export { pluck } from '../internal/operators/pluck';
-export { publish } from '../internal/operators/publish';
-export { publishBehavior } from '../internal/operators/publishBehavior';
-export { publishLast } from '../internal/operators/publishLast';
-export { publishReplay } from '../internal/operators/publishReplay';
-export { race } from '../internal/operators/race';
-export { reduce } from '../internal/operators/reduce';
-export { repeat } from '../internal/operators/repeat';
-export { repeatWhen } from '../internal/operators/repeatWhen';
-export { retry } from '../internal/operators/retry';
-export { retryWhen } from '../internal/operators/retryWhen';
-export { refCount } from '../internal/operators/refCount';
-export { sample } from '../internal/operators/sample';
-export { sampleTime } from '../internal/operators/sampleTime';
-export { scan } from '../internal/operators/scan';
-export { sequenceEqual } from '../internal/operators/sequenceEqual';
-export { share } from '../internal/operators/share';
-export { shareReplay } from '../internal/operators/shareReplay';
-export { single } from '../internal/operators/single';
-export { skip } from '../internal/operators/skip';
-export { skipLast } from '../internal/operators/skipLast';
-export { skipUntil } from '../internal/operators/skipUntil';
-export { skipWhile } from '../internal/operators/skipWhile';
-export { startWith } from '../internal/operators/startWith';
-export { subscribeOn } from '../internal/operators/subscribeOn';
-export { switchAll } from '../internal/operators/switchAll';
-export { switchMap } from '../internal/operators/switchMap';
-export { switchMapTo } from '../internal/operators/switchMapTo';
-export { take } from '../internal/operators/take';
-export { takeLast } from '../internal/operators/takeLast';
-export { takeUntil } from '../internal/operators/takeUntil';
-export { takeWhile } from '../internal/operators/takeWhile';
-export { tap } from '../internal/operators/tap';
-export { throttle } from '../internal/operators/throttle';
-export { throttleTime } from '../internal/operators/throttleTime';
-export { throwIfEmpty } from '../internal/operators/throwIfEmpty';
-export { timeInterval } from '../internal/operators/timeInterval';
-export { timeout } from '../internal/operators/timeout';
-export { timeoutWith } from '../internal/operators/timeoutWith';
-export { timestamp } from '../internal/operators/timestamp';
-export { toArray } from '../internal/operators/toArray';
-export { window } from '../internal/operators/window';
-export { windowCount } from '../internal/operators/windowCount';
-export { windowTime } from '../internal/operators/windowTime';
-export { windowToggle } from '../internal/operators/windowToggle';
-export { windowWhen } from '../internal/operators/windowWhen';
-export { withLatestFrom } from '../internal/operators/withLatestFrom';
-export { zip } from '../internal/operators/zip';
-export { zipAll } from '../internal/operators/zipAll';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/operators/index.js.map b/node_modules/rxjs/_esm2015/operators/index.js.map
deleted file mode 100644
index 3d3ab93..0000000
--- a/node_modules/rxjs/_esm2015/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/operators/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm2015/path-mapping.js b/node_modules/rxjs/_esm2015/path-mapping.js
deleted file mode 100644
index 31003f1..0000000
--- a/node_modules/rxjs/_esm2015/path-mapping.js
+++ /dev/null
@@ -1,453 +0,0 @@
-
-"use strict"
-
-var path = require('path');
-var dir = path.resolve(__dirname);
-
-module.exports = function() {
-  return {
-    "rxjs/util/tryCatch": "rxjs-compat/_esm2015/util/tryCatch",
-    "rxjs/util/toSubscriber": "rxjs-compat/_esm2015/util/toSubscriber",
-    "rxjs/util/subscribeToResult": "rxjs-compat/_esm2015/util/subscribeToResult",
-    "rxjs/util/subscribeToPromise": "rxjs-compat/_esm2015/util/subscribeToPromise",
-    "rxjs/util/subscribeToObservable": "rxjs-compat/_esm2015/util/subscribeToObservable",
-    "rxjs/util/subscribeToIterable": "rxjs-compat/_esm2015/util/subscribeToIterable",
-    "rxjs/util/subscribeToArray": "rxjs-compat/_esm2015/util/subscribeToArray",
-    "rxjs/util/subscribeTo": "rxjs-compat/_esm2015/util/subscribeTo",
-    "rxjs/util/root": "rxjs-compat/_esm2015/util/root",
-    "rxjs/util/pipe": "rxjs-compat/_esm2015/util/pipe",
-    "rxjs/util/not": "rxjs-compat/_esm2015/util/not",
-    "rxjs/util/noop": "rxjs-compat/_esm2015/util/noop",
-    "rxjs/util/isScheduler": "rxjs-compat/_esm2015/util/isScheduler",
-    "rxjs/util/isPromise": "rxjs-compat/_esm2015/util/isPromise",
-    "rxjs/util/isObservable": "rxjs-compat/_esm2015/util/isObservable",
-    "rxjs/util/isObject": "rxjs-compat/_esm2015/util/isObject",
-    "rxjs/util/isNumeric": "rxjs-compat/_esm2015/util/isNumeric",
-    "rxjs/util/isIterable": "rxjs-compat/_esm2015/util/isIterable",
-    "rxjs/util/isFunction": "rxjs-compat/_esm2015/util/isFunction",
-    "rxjs/util/isDate": "rxjs-compat/_esm2015/util/isDate",
-    "rxjs/util/isArrayLike": "rxjs-compat/_esm2015/util/isArrayLike",
-    "rxjs/util/isArray": "rxjs-compat/_esm2015/util/isArray",
-    "rxjs/util/identity": "rxjs-compat/_esm2015/util/identity",
-    "rxjs/util/hostReportError": "rxjs-compat/_esm2015/util/hostReportError",
-    "rxjs/util/errorObject": "rxjs-compat/_esm2015/util/errorObject",
-    "rxjs/util/applyMixins": "rxjs-compat/_esm2015/util/applyMixins",
-    "rxjs/util/UnsubscriptionError": "rxjs-compat/_esm2015/util/UnsubscriptionError",
-    "rxjs/util/TimeoutError": "rxjs-compat/_esm2015/util/TimeoutError",
-    "rxjs/util/ObjectUnsubscribedError": "rxjs-compat/_esm2015/util/ObjectUnsubscribedError",
-    "rxjs/util/Immediate": "rxjs-compat/_esm2015/util/Immediate",
-    "rxjs/util/EmptyError": "rxjs-compat/_esm2015/util/EmptyError",
-    "rxjs/util/ArgumentOutOfRangeError": "rxjs-compat/_esm2015/util/ArgumentOutOfRangeError",
-    "rxjs/symbol/rxSubscriber": "rxjs-compat/_esm2015/symbol/rxSubscriber",
-    "rxjs/symbol/observable": "rxjs-compat/_esm2015/symbol/observable",
-    "rxjs/symbol/iterator": "rxjs-compat/_esm2015/symbol/iterator",
-    "rxjs/scheduler/queue": "rxjs-compat/_esm2015/scheduler/queue",
-    "rxjs/scheduler/async": "rxjs-compat/_esm2015/scheduler/async",
-    "rxjs/scheduler/asap": "rxjs-compat/_esm2015/scheduler/asap",
-    "rxjs/scheduler/animationFrame": "rxjs-compat/_esm2015/scheduler/animationFrame",
-    "rxjs/operators/zipAll": "rxjs-compat/_esm2015/operators/zipAll",
-    "rxjs/operators/zip": "rxjs-compat/_esm2015/operators/zip",
-    "rxjs/operators/withLatestFrom": "rxjs-compat/_esm2015/operators/withLatestFrom",
-    "rxjs/operators/windowWhen": "rxjs-compat/_esm2015/operators/windowWhen",
-    "rxjs/operators/windowToggle": "rxjs-compat/_esm2015/operators/windowToggle",
-    "rxjs/operators/windowTime": "rxjs-compat/_esm2015/operators/windowTime",
-    "rxjs/operators/windowCount": "rxjs-compat/_esm2015/operators/windowCount",
-    "rxjs/operators/window": "rxjs-compat/_esm2015/operators/window",
-    "rxjs/operators/toArray": "rxjs-compat/_esm2015/operators/toArray",
-    "rxjs/operators/timestamp": "rxjs-compat/_esm2015/operators/timestamp",
-    "rxjs/operators/timeoutWith": "rxjs-compat/_esm2015/operators/timeoutWith",
-    "rxjs/operators/timeout": "rxjs-compat/_esm2015/operators/timeout",
-    "rxjs/operators/timeInterval": "rxjs-compat/_esm2015/operators/timeInterval",
-    "rxjs/operators/throwIfEmpty": "rxjs-compat/_esm2015/operators/throwIfEmpty",
-    "rxjs/operators/throttleTime": "rxjs-compat/_esm2015/operators/throttleTime",
-    "rxjs/operators/throttle": "rxjs-compat/_esm2015/operators/throttle",
-    "rxjs/operators/tap": "rxjs-compat/_esm2015/operators/tap",
-    "rxjs/operators/takeWhile": "rxjs-compat/_esm2015/operators/takeWhile",
-    "rxjs/operators/takeUntil": "rxjs-compat/_esm2015/operators/takeUntil",
-    "rxjs/operators/takeLast": "rxjs-compat/_esm2015/operators/takeLast",
-    "rxjs/operators/take": "rxjs-compat/_esm2015/operators/take",
-    "rxjs/operators/switchMapTo": "rxjs-compat/_esm2015/operators/switchMapTo",
-    "rxjs/operators/switchMap": "rxjs-compat/_esm2015/operators/switchMap",
-    "rxjs/operators/switchAll": "rxjs-compat/_esm2015/operators/switchAll",
-    "rxjs/operators/subscribeOn": "rxjs-compat/_esm2015/operators/subscribeOn",
-    "rxjs/operators/startWith": "rxjs-compat/_esm2015/operators/startWith",
-    "rxjs/operators/skipWhile": "rxjs-compat/_esm2015/operators/skipWhile",
-    "rxjs/operators/skipUntil": "rxjs-compat/_esm2015/operators/skipUntil",
-    "rxjs/operators/skipLast": "rxjs-compat/_esm2015/operators/skipLast",
-    "rxjs/operators/skip": "rxjs-compat/_esm2015/operators/skip",
-    "rxjs/operators/single": "rxjs-compat/_esm2015/operators/single",
-    "rxjs/operators/shareReplay": "rxjs-compat/_esm2015/operators/shareReplay",
-    "rxjs/operators/share": "rxjs-compat/_esm2015/operators/share",
-    "rxjs/operators/sequenceEqual": "rxjs-compat/_esm2015/operators/sequenceEqual",
-    "rxjs/operators/scan": "rxjs-compat/_esm2015/operators/scan",
-    "rxjs/operators/sampleTime": "rxjs-compat/_esm2015/operators/sampleTime",
-    "rxjs/operators/sample": "rxjs-compat/_esm2015/operators/sample",
-    "rxjs/operators/retryWhen": "rxjs-compat/_esm2015/operators/retryWhen",
-    "rxjs/operators/retry": "rxjs-compat/_esm2015/operators/retry",
-    "rxjs/operators/repeatWhen": "rxjs-compat/_esm2015/operators/repeatWhen",
-    "rxjs/operators/repeat": "rxjs-compat/_esm2015/operators/repeat",
-    "rxjs/operators/refCount": "rxjs-compat/_esm2015/operators/refCount",
-    "rxjs/operators/reduce": "rxjs-compat/_esm2015/operators/reduce",
-    "rxjs/operators/race": "rxjs-compat/_esm2015/operators/race",
-    "rxjs/operators/publishReplay": "rxjs-compat/_esm2015/operators/publishReplay",
-    "rxjs/operators/publishLast": "rxjs-compat/_esm2015/operators/publishLast",
-    "rxjs/operators/publishBehavior": "rxjs-compat/_esm2015/operators/publishBehavior",
-    "rxjs/operators/publish": "rxjs-compat/_esm2015/operators/publish",
-    "rxjs/operators/pluck": "rxjs-compat/_esm2015/operators/pluck",
-    "rxjs/operators/partition": "rxjs-compat/_esm2015/operators/partition",
-    "rxjs/operators/pairwise": "rxjs-compat/_esm2015/operators/pairwise",
-    "rxjs/operators/onErrorResumeNext": "rxjs-compat/_esm2015/operators/onErrorResumeNext",
-    "rxjs/operators/observeOn": "rxjs-compat/_esm2015/operators/observeOn",
-    "rxjs/operators/multicast": "rxjs-compat/_esm2015/operators/multicast",
-    "rxjs/operators/min": "rxjs-compat/_esm2015/operators/min",
-    "rxjs/operators/mergeScan": "rxjs-compat/_esm2015/operators/mergeScan",
-    "rxjs/operators/mergeMapTo": "rxjs-compat/_esm2015/operators/mergeMapTo",
-    "rxjs/operators/mergeMap": "rxjs-compat/_esm2015/operators/mergeMap",
-    "rxjs/operators/mergeAll": "rxjs-compat/_esm2015/operators/mergeAll",
-    "rxjs/operators/merge": "rxjs-compat/_esm2015/operators/merge",
-    "rxjs/operators/max": "rxjs-compat/_esm2015/operators/max",
-    "rxjs/operators/materialize": "rxjs-compat/_esm2015/operators/materialize",
-    "rxjs/operators/mapTo": "rxjs-compat/_esm2015/operators/mapTo",
-    "rxjs/operators/map": "rxjs-compat/_esm2015/operators/map",
-    "rxjs/operators/last": "rxjs-compat/_esm2015/operators/last",
-    "rxjs/operators/isEmpty": "rxjs-compat/_esm2015/operators/isEmpty",
-    "rxjs/operators/ignoreElements": "rxjs-compat/_esm2015/operators/ignoreElements",
-    "rxjs/operators/groupBy": "rxjs-compat/_esm2015/operators/groupBy",
-    "rxjs/operators/first": "rxjs-compat/_esm2015/operators/first",
-    "rxjs/operators/findIndex": "rxjs-compat/_esm2015/operators/findIndex",
-    "rxjs/operators/find": "rxjs-compat/_esm2015/operators/find",
-    "rxjs/operators/finalize": "rxjs-compat/_esm2015/operators/finalize",
-    "rxjs/operators/filter": "rxjs-compat/_esm2015/operators/filter",
-    "rxjs/operators/expand": "rxjs-compat/_esm2015/operators/expand",
-    "rxjs/operators/exhaustMap": "rxjs-compat/_esm2015/operators/exhaustMap",
-    "rxjs/operators/exhaust": "rxjs-compat/_esm2015/operators/exhaust",
-    "rxjs/operators/every": "rxjs-compat/_esm2015/operators/every",
-    "rxjs/operators/elementAt": "rxjs-compat/_esm2015/operators/elementAt",
-    "rxjs/operators/distinctUntilKeyChanged": "rxjs-compat/_esm2015/operators/distinctUntilKeyChanged",
-    "rxjs/operators/distinctUntilChanged": "rxjs-compat/_esm2015/operators/distinctUntilChanged",
-    "rxjs/operators/distinct": "rxjs-compat/_esm2015/operators/distinct",
-    "rxjs/operators/dematerialize": "rxjs-compat/_esm2015/operators/dematerialize",
-    "rxjs/operators/delayWhen": "rxjs-compat/_esm2015/operators/delayWhen",
-    "rxjs/operators/delay": "rxjs-compat/_esm2015/operators/delay",
-    "rxjs/operators/defaultIfEmpty": "rxjs-compat/_esm2015/operators/defaultIfEmpty",
-    "rxjs/operators/debounceTime": "rxjs-compat/_esm2015/operators/debounceTime",
-    "rxjs/operators/debounce": "rxjs-compat/_esm2015/operators/debounce",
-    "rxjs/operators/count": "rxjs-compat/_esm2015/operators/count",
-    "rxjs/operators/concatMapTo": "rxjs-compat/_esm2015/operators/concatMapTo",
-    "rxjs/operators/concatMap": "rxjs-compat/_esm2015/operators/concatMap",
-    "rxjs/operators/concatAll": "rxjs-compat/_esm2015/operators/concatAll",
-    "rxjs/operators/concat": "rxjs-compat/_esm2015/operators/concat",
-    "rxjs/operators/combineLatest": "rxjs-compat/_esm2015/operators/combineLatest",
-    "rxjs/operators/combineAll": "rxjs-compat/_esm2015/operators/combineAll",
-    "rxjs/operators/catchError": "rxjs-compat/_esm2015/operators/catchError",
-    "rxjs/operators/bufferWhen": "rxjs-compat/_esm2015/operators/bufferWhen",
-    "rxjs/operators/bufferToggle": "rxjs-compat/_esm2015/operators/bufferToggle",
-    "rxjs/operators/bufferTime": "rxjs-compat/_esm2015/operators/bufferTime",
-    "rxjs/operators/bufferCount": "rxjs-compat/_esm2015/operators/bufferCount",
-    "rxjs/operators/buffer": "rxjs-compat/_esm2015/operators/buffer",
-    "rxjs/operators/auditTime": "rxjs-compat/_esm2015/operators/auditTime",
-    "rxjs/operators/audit": "rxjs-compat/_esm2015/operators/audit",
-    "rxjs/operator/zipAll": "rxjs-compat/_esm2015/operator/zipAll",
-    "rxjs/operator/zip": "rxjs-compat/_esm2015/operator/zip",
-    "rxjs/operator/withLatestFrom": "rxjs-compat/_esm2015/operator/withLatestFrom",
-    "rxjs/operator/windowWhen": "rxjs-compat/_esm2015/operator/windowWhen",
-    "rxjs/operator/windowToggle": "rxjs-compat/_esm2015/operator/windowToggle",
-    "rxjs/operator/windowTime": "rxjs-compat/_esm2015/operator/windowTime",
-    "rxjs/operator/windowCount": "rxjs-compat/_esm2015/operator/windowCount",
-    "rxjs/operator/window": "rxjs-compat/_esm2015/operator/window",
-    "rxjs/operator/toPromise": "rxjs-compat/_esm2015/operator/toPromise",
-    "rxjs/operator/toArray": "rxjs-compat/_esm2015/operator/toArray",
-    "rxjs/operator/timestamp": "rxjs-compat/_esm2015/operator/timestamp",
-    "rxjs/operator/timeoutWith": "rxjs-compat/_esm2015/operator/timeoutWith",
-    "rxjs/operator/timeout": "rxjs-compat/_esm2015/operator/timeout",
-    "rxjs/operator/timeInterval": "rxjs-compat/_esm2015/operator/timeInterval",
-    "rxjs/operator/throttleTime": "rxjs-compat/_esm2015/operator/throttleTime",
-    "rxjs/operator/throttle": "rxjs-compat/_esm2015/operator/throttle",
-    "rxjs/operator/takeWhile": "rxjs-compat/_esm2015/operator/takeWhile",
-    "rxjs/operator/takeUntil": "rxjs-compat/_esm2015/operator/takeUntil",
-    "rxjs/operator/takeLast": "rxjs-compat/_esm2015/operator/takeLast",
-    "rxjs/operator/take": "rxjs-compat/_esm2015/operator/take",
-    "rxjs/operator/switchMapTo": "rxjs-compat/_esm2015/operator/switchMapTo",
-    "rxjs/operator/switchMap": "rxjs-compat/_esm2015/operator/switchMap",
-    "rxjs/operator/switch": "rxjs-compat/_esm2015/operator/switch",
-    "rxjs/operator/subscribeOn": "rxjs-compat/_esm2015/operator/subscribeOn",
-    "rxjs/operator/startWith": "rxjs-compat/_esm2015/operator/startWith",
-    "rxjs/operator/skipWhile": "rxjs-compat/_esm2015/operator/skipWhile",
-    "rxjs/operator/skipUntil": "rxjs-compat/_esm2015/operator/skipUntil",
-    "rxjs/operator/skipLast": "rxjs-compat/_esm2015/operator/skipLast",
-    "rxjs/operator/skip": "rxjs-compat/_esm2015/operator/skip",
-    "rxjs/operator/single": "rxjs-compat/_esm2015/operator/single",
-    "rxjs/operator/shareReplay": "rxjs-compat/_esm2015/operator/shareReplay",
-    "rxjs/operator/share": "rxjs-compat/_esm2015/operator/share",
-    "rxjs/operator/sequenceEqual": "rxjs-compat/_esm2015/operator/sequenceEqual",
-    "rxjs/operator/scan": "rxjs-compat/_esm2015/operator/scan",
-    "rxjs/operator/sampleTime": "rxjs-compat/_esm2015/operator/sampleTime",
-    "rxjs/operator/sample": "rxjs-compat/_esm2015/operator/sample",
-    "rxjs/operator/retryWhen": "rxjs-compat/_esm2015/operator/retryWhen",
-    "rxjs/operator/retry": "rxjs-compat/_esm2015/operator/retry",
-    "rxjs/operator/repeatWhen": "rxjs-compat/_esm2015/operator/repeatWhen",
-    "rxjs/operator/repeat": "rxjs-compat/_esm2015/operator/repeat",
-    "rxjs/operator/reduce": "rxjs-compat/_esm2015/operator/reduce",
-    "rxjs/operator/race": "rxjs-compat/_esm2015/operator/race",
-    "rxjs/operator/publishReplay": "rxjs-compat/_esm2015/operator/publishReplay",
-    "rxjs/operator/publishLast": "rxjs-compat/_esm2015/operator/publishLast",
-    "rxjs/operator/publishBehavior": "rxjs-compat/_esm2015/operator/publishBehavior",
-    "rxjs/operator/publish": "rxjs-compat/_esm2015/operator/publish",
-    "rxjs/operator/pluck": "rxjs-compat/_esm2015/operator/pluck",
-    "rxjs/operator/partition": "rxjs-compat/_esm2015/operator/partition",
-    "rxjs/operator/pairwise": "rxjs-compat/_esm2015/operator/pairwise",
-    "rxjs/operator/onErrorResumeNext": "rxjs-compat/_esm2015/operator/onErrorResumeNext",
-    "rxjs/operator/observeOn": "rxjs-compat/_esm2015/operator/observeOn",
-    "rxjs/operator/multicast": "rxjs-compat/_esm2015/operator/multicast",
-    "rxjs/operator/min": "rxjs-compat/_esm2015/operator/min",
-    "rxjs/operator/mergeScan": "rxjs-compat/_esm2015/operator/mergeScan",
-    "rxjs/operator/mergeMapTo": "rxjs-compat/_esm2015/operator/mergeMapTo",
-    "rxjs/operator/mergeMap": "rxjs-compat/_esm2015/operator/mergeMap",
-    "rxjs/operator/mergeAll": "rxjs-compat/_esm2015/operator/mergeAll",
-    "rxjs/operator/merge": "rxjs-compat/_esm2015/operator/merge",
-    "rxjs/operator/max": "rxjs-compat/_esm2015/operator/max",
-    "rxjs/operator/materialize": "rxjs-compat/_esm2015/operator/materialize",
-    "rxjs/operator/mapTo": "rxjs-compat/_esm2015/operator/mapTo",
-    "rxjs/operator/map": "rxjs-compat/_esm2015/operator/map",
-    "rxjs/operator/let": "rxjs-compat/_esm2015/operator/let",
-    "rxjs/operator/last": "rxjs-compat/_esm2015/operator/last",
-    "rxjs/operator/isEmpty": "rxjs-compat/_esm2015/operator/isEmpty",
-    "rxjs/operator/ignoreElements": "rxjs-compat/_esm2015/operator/ignoreElements",
-    "rxjs/operator/groupBy": "rxjs-compat/_esm2015/operator/groupBy",
-    "rxjs/operator/first": "rxjs-compat/_esm2015/operator/first",
-    "rxjs/operator/findIndex": "rxjs-compat/_esm2015/operator/findIndex",
-    "rxjs/operator/find": "rxjs-compat/_esm2015/operator/find",
-    "rxjs/operator/finally": "rxjs-compat/_esm2015/operator/finally",
-    "rxjs/operator/filter": "rxjs-compat/_esm2015/operator/filter",
-    "rxjs/operator/expand": "rxjs-compat/_esm2015/operator/expand",
-    "rxjs/operator/exhaustMap": "rxjs-compat/_esm2015/operator/exhaustMap",
-    "rxjs/operator/exhaust": "rxjs-compat/_esm2015/operator/exhaust",
-    "rxjs/operator/every": "rxjs-compat/_esm2015/operator/every",
-    "rxjs/operator/elementAt": "rxjs-compat/_esm2015/operator/elementAt",
-    "rxjs/operator/do": "rxjs-compat/_esm2015/operator/do",
-    "rxjs/operator/distinctUntilKeyChanged": "rxjs-compat/_esm2015/operator/distinctUntilKeyChanged",
-    "rxjs/operator/distinctUntilChanged": "rxjs-compat/_esm2015/operator/distinctUntilChanged",
-    "rxjs/operator/distinct": "rxjs-compat/_esm2015/operator/distinct",
-    "rxjs/operator/dematerialize": "rxjs-compat/_esm2015/operator/dematerialize",
-    "rxjs/operator/delayWhen": "rxjs-compat/_esm2015/operator/delayWhen",
-    "rxjs/operator/delay": "rxjs-compat/_esm2015/operator/delay",
-    "rxjs/operator/defaultIfEmpty": "rxjs-compat/_esm2015/operator/defaultIfEmpty",
-    "rxjs/operator/debounceTime": "rxjs-compat/_esm2015/operator/debounceTime",
-    "rxjs/operator/debounce": "rxjs-compat/_esm2015/operator/debounce",
-    "rxjs/operator/count": "rxjs-compat/_esm2015/operator/count",
-    "rxjs/operator/concatMapTo": "rxjs-compat/_esm2015/operator/concatMapTo",
-    "rxjs/operator/concatMap": "rxjs-compat/_esm2015/operator/concatMap",
-    "rxjs/operator/concatAll": "rxjs-compat/_esm2015/operator/concatAll",
-    "rxjs/operator/concat": "rxjs-compat/_esm2015/operator/concat",
-    "rxjs/operator/combineLatest": "rxjs-compat/_esm2015/operator/combineLatest",
-    "rxjs/operator/combineAll": "rxjs-compat/_esm2015/operator/combineAll",
-    "rxjs/operator/catch": "rxjs-compat/_esm2015/operator/catch",
-    "rxjs/operator/bufferWhen": "rxjs-compat/_esm2015/operator/bufferWhen",
-    "rxjs/operator/bufferToggle": "rxjs-compat/_esm2015/operator/bufferToggle",
-    "rxjs/operator/bufferTime": "rxjs-compat/_esm2015/operator/bufferTime",
-    "rxjs/operator/bufferCount": "rxjs-compat/_esm2015/operator/bufferCount",
-    "rxjs/operator/buffer": "rxjs-compat/_esm2015/operator/buffer",
-    "rxjs/operator/auditTime": "rxjs-compat/_esm2015/operator/auditTime",
-    "rxjs/operator/audit": "rxjs-compat/_esm2015/operator/audit",
-    "rxjs/observable/zip": "rxjs-compat/_esm2015/observable/zip",
-    "rxjs/observable/using": "rxjs-compat/_esm2015/observable/using",
-    "rxjs/observable/timer": "rxjs-compat/_esm2015/observable/timer",
-    "rxjs/observable/throw": "rxjs-compat/_esm2015/observable/throw",
-    "rxjs/observable/range": "rxjs-compat/_esm2015/observable/range",
-    "rxjs/observable/race": "rxjs-compat/_esm2015/observable/race",
-    "rxjs/observable/pairs": "rxjs-compat/_esm2015/observable/pairs",
-    "rxjs/observable/onErrorResumeNext": "rxjs-compat/_esm2015/observable/onErrorResumeNext",
-    "rxjs/observable/of": "rxjs-compat/_esm2015/observable/of",
-    "rxjs/observable/never": "rxjs-compat/_esm2015/observable/never",
-    "rxjs/observable/merge": "rxjs-compat/_esm2015/observable/merge",
-    "rxjs/observable/interval": "rxjs-compat/_esm2015/observable/interval",
-    "rxjs/observable/if": "rxjs-compat/_esm2015/observable/if",
-    "rxjs/observable/generate": "rxjs-compat/_esm2015/observable/generate",
-    "rxjs/observable/fromPromise": "rxjs-compat/_esm2015/observable/fromPromise",
-    "rxjs/observable/fromIterable": "rxjs-compat/_esm2015/observable/fromIterable",
-    "rxjs/observable/fromEventPattern": "rxjs-compat/_esm2015/observable/fromEventPattern",
-    "rxjs/observable/fromEvent": "rxjs-compat/_esm2015/observable/fromEvent",
-    "rxjs/observable/fromArray": "rxjs-compat/_esm2015/observable/fromArray",
-    "rxjs/observable/from": "rxjs-compat/_esm2015/observable/from",
-    "rxjs/observable/forkJoin": "rxjs-compat/_esm2015/observable/forkJoin",
-    "rxjs/observable/empty": "rxjs-compat/_esm2015/observable/empty",
-    "rxjs/observable/dom/webSocket": "rxjs-compat/_esm2015/observable/dom/webSocket",
-    "rxjs/observable/dom/ajax": "rxjs-compat/_esm2015/observable/dom/ajax",
-    "rxjs/observable/dom/WebSocketSubject": "rxjs-compat/_esm2015/observable/dom/WebSocketSubject",
-    "rxjs/observable/dom/AjaxObservable": "rxjs-compat/_esm2015/observable/dom/AjaxObservable",
-    "rxjs/observable/defer": "rxjs-compat/_esm2015/observable/defer",
-    "rxjs/observable/concat": "rxjs-compat/_esm2015/observable/concat",
-    "rxjs/observable/combineLatest": "rxjs-compat/_esm2015/observable/combineLatest",
-    "rxjs/observable/bindNodeCallback": "rxjs-compat/_esm2015/observable/bindNodeCallback",
-    "rxjs/observable/bindCallback": "rxjs-compat/_esm2015/observable/bindCallback",
-    "rxjs/observable/UsingObservable": "rxjs-compat/_esm2015/observable/UsingObservable",
-    "rxjs/observable/TimerObservable": "rxjs-compat/_esm2015/observable/TimerObservable",
-    "rxjs/observable/SubscribeOnObservable": "rxjs-compat/_esm2015/observable/SubscribeOnObservable",
-    "rxjs/observable/ScalarObservable": "rxjs-compat/_esm2015/observable/ScalarObservable",
-    "rxjs/observable/RangeObservable": "rxjs-compat/_esm2015/observable/RangeObservable",
-    "rxjs/observable/PromiseObservable": "rxjs-compat/_esm2015/observable/PromiseObservable",
-    "rxjs/observable/PairsObservable": "rxjs-compat/_esm2015/observable/PairsObservable",
-    "rxjs/observable/NeverObservable": "rxjs-compat/_esm2015/observable/NeverObservable",
-    "rxjs/observable/IteratorObservable": "rxjs-compat/_esm2015/observable/IteratorObservable",
-    "rxjs/observable/IntervalObservable": "rxjs-compat/_esm2015/observable/IntervalObservable",
-    "rxjs/observable/IfObservable": "rxjs-compat/_esm2015/observable/IfObservable",
-    "rxjs/observable/GenerateObservable": "rxjs-compat/_esm2015/observable/GenerateObservable",
-    "rxjs/observable/FromObservable": "rxjs-compat/_esm2015/observable/FromObservable",
-    "rxjs/observable/FromEventPatternObservable": "rxjs-compat/_esm2015/observable/FromEventPatternObservable",
-    "rxjs/observable/FromEventObservable": "rxjs-compat/_esm2015/observable/FromEventObservable",
-    "rxjs/observable/ForkJoinObservable": "rxjs-compat/_esm2015/observable/ForkJoinObservable",
-    "rxjs/observable/ErrorObservable": "rxjs-compat/_esm2015/observable/ErrorObservable",
-    "rxjs/observable/EmptyObservable": "rxjs-compat/_esm2015/observable/EmptyObservable",
-    "rxjs/observable/DeferObservable": "rxjs-compat/_esm2015/observable/DeferObservable",
-    "rxjs/observable/ConnectableObservable": "rxjs-compat/_esm2015/observable/ConnectableObservable",
-    "rxjs/observable/BoundNodeCallbackObservable": "rxjs-compat/_esm2015/observable/BoundNodeCallbackObservable",
-    "rxjs/observable/BoundCallbackObservable": "rxjs-compat/_esm2015/observable/BoundCallbackObservable",
-    "rxjs/observable/ArrayObservable": "rxjs-compat/_esm2015/observable/ArrayObservable",
-    "rxjs/observable/ArrayLikeObservable": "rxjs-compat/_esm2015/observable/ArrayLikeObservable",
-    "rxjs/interfaces": "rxjs-compat/_esm2015/interfaces",
-    "rxjs/add/operator/zipAll": "rxjs-compat/_esm2015/add/operator/zipAll",
-    "rxjs/add/operator/zip": "rxjs-compat/_esm2015/add/operator/zip",
-    "rxjs/add/operator/withLatestFrom": "rxjs-compat/_esm2015/add/operator/withLatestFrom",
-    "rxjs/add/operator/windowWhen": "rxjs-compat/_esm2015/add/operator/windowWhen",
-    "rxjs/add/operator/windowToggle": "rxjs-compat/_esm2015/add/operator/windowToggle",
-    "rxjs/add/operator/windowTime": "rxjs-compat/_esm2015/add/operator/windowTime",
-    "rxjs/add/operator/windowCount": "rxjs-compat/_esm2015/add/operator/windowCount",
-    "rxjs/add/operator/window": "rxjs-compat/_esm2015/add/operator/window",
-    "rxjs/add/operator/toPromise": "rxjs-compat/_esm2015/add/operator/toPromise",
-    "rxjs/add/operator/toArray": "rxjs-compat/_esm2015/add/operator/toArray",
-    "rxjs/add/operator/timestamp": "rxjs-compat/_esm2015/add/operator/timestamp",
-    "rxjs/add/operator/timeoutWith": "rxjs-compat/_esm2015/add/operator/timeoutWith",
-    "rxjs/add/operator/timeout": "rxjs-compat/_esm2015/add/operator/timeout",
-    "rxjs/add/operator/timeInterval": "rxjs-compat/_esm2015/add/operator/timeInterval",
-    "rxjs/add/operator/throttleTime": "rxjs-compat/_esm2015/add/operator/throttleTime",
-    "rxjs/add/operator/throttle": "rxjs-compat/_esm2015/add/operator/throttle",
-    "rxjs/add/operator/takeWhile": "rxjs-compat/_esm2015/add/operator/takeWhile",
-    "rxjs/add/operator/takeUntil": "rxjs-compat/_esm2015/add/operator/takeUntil",
-    "rxjs/add/operator/takeLast": "rxjs-compat/_esm2015/add/operator/takeLast",
-    "rxjs/add/operator/take": "rxjs-compat/_esm2015/add/operator/take",
-    "rxjs/add/operator/switchMapTo": "rxjs-compat/_esm2015/add/operator/switchMapTo",
-    "rxjs/add/operator/switchMap": "rxjs-compat/_esm2015/add/operator/switchMap",
-    "rxjs/add/operator/switch": "rxjs-compat/_esm2015/add/operator/switch",
-    "rxjs/add/operator/subscribeOn": "rxjs-compat/_esm2015/add/operator/subscribeOn",
-    "rxjs/add/operator/startWith": "rxjs-compat/_esm2015/add/operator/startWith",
-    "rxjs/add/operator/skipWhile": "rxjs-compat/_esm2015/add/operator/skipWhile",
-    "rxjs/add/operator/skipUntil": "rxjs-compat/_esm2015/add/operator/skipUntil",
-    "rxjs/add/operator/skipLast": "rxjs-compat/_esm2015/add/operator/skipLast",
-    "rxjs/add/operator/skip": "rxjs-compat/_esm2015/add/operator/skip",
-    "rxjs/add/operator/single": "rxjs-compat/_esm2015/add/operator/single",
-    "rxjs/add/operator/shareReplay": "rxjs-compat/_esm2015/add/operator/shareReplay",
-    "rxjs/add/operator/share": "rxjs-compat/_esm2015/add/operator/share",
-    "rxjs/add/operator/sequenceEqual": "rxjs-compat/_esm2015/add/operator/sequenceEqual",
-    "rxjs/add/operator/scan": "rxjs-compat/_esm2015/add/operator/scan",
-    "rxjs/add/operator/sampleTime": "rxjs-compat/_esm2015/add/operator/sampleTime",
-    "rxjs/add/operator/sample": "rxjs-compat/_esm2015/add/operator/sample",
-    "rxjs/add/operator/retryWhen": "rxjs-compat/_esm2015/add/operator/retryWhen",
-    "rxjs/add/operator/retry": "rxjs-compat/_esm2015/add/operator/retry",
-    "rxjs/add/operator/repeatWhen": "rxjs-compat/_esm2015/add/operator/repeatWhen",
-    "rxjs/add/operator/repeat": "rxjs-compat/_esm2015/add/operator/repeat",
-    "rxjs/add/operator/reduce": "rxjs-compat/_esm2015/add/operator/reduce",
-    "rxjs/add/operator/race": "rxjs-compat/_esm2015/add/operator/race",
-    "rxjs/add/operator/publishReplay": "rxjs-compat/_esm2015/add/operator/publishReplay",
-    "rxjs/add/operator/publishLast": "rxjs-compat/_esm2015/add/operator/publishLast",
-    "rxjs/add/operator/publishBehavior": "rxjs-compat/_esm2015/add/operator/publishBehavior",
-    "rxjs/add/operator/publish": "rxjs-compat/_esm2015/add/operator/publish",
-    "rxjs/add/operator/pluck": "rxjs-compat/_esm2015/add/operator/pluck",
-    "rxjs/add/operator/partition": "rxjs-compat/_esm2015/add/operator/partition",
-    "rxjs/add/operator/pairwise": "rxjs-compat/_esm2015/add/operator/pairwise",
-    "rxjs/add/operator/onErrorResumeNext": "rxjs-compat/_esm2015/add/operator/onErrorResumeNext",
-    "rxjs/add/operator/observeOn": "rxjs-compat/_esm2015/add/operator/observeOn",
-    "rxjs/add/operator/multicast": "rxjs-compat/_esm2015/add/operator/multicast",
-    "rxjs/add/operator/min": "rxjs-compat/_esm2015/add/operator/min",
-    "rxjs/add/operator/mergeScan": "rxjs-compat/_esm2015/add/operator/mergeScan",
-    "rxjs/add/operator/mergeMapTo": "rxjs-compat/_esm2015/add/operator/mergeMapTo",
-    "rxjs/add/operator/mergeMap": "rxjs-compat/_esm2015/add/operator/mergeMap",
-    "rxjs/add/operator/mergeAll": "rxjs-compat/_esm2015/add/operator/mergeAll",
-    "rxjs/add/operator/merge": "rxjs-compat/_esm2015/add/operator/merge",
-    "rxjs/add/operator/max": "rxjs-compat/_esm2015/add/operator/max",
-    "rxjs/add/operator/materialize": "rxjs-compat/_esm2015/add/operator/materialize",
-    "rxjs/add/operator/mapTo": "rxjs-compat/_esm2015/add/operator/mapTo",
-    "rxjs/add/operator/map": "rxjs-compat/_esm2015/add/operator/map",
-    "rxjs/add/operator/let": "rxjs-compat/_esm2015/add/operator/let",
-    "rxjs/add/operator/last": "rxjs-compat/_esm2015/add/operator/last",
-    "rxjs/add/operator/isEmpty": "rxjs-compat/_esm2015/add/operator/isEmpty",
-    "rxjs/add/operator/ignoreElements": "rxjs-compat/_esm2015/add/operator/ignoreElements",
-    "rxjs/add/operator/groupBy": "rxjs-compat/_esm2015/add/operator/groupBy",
-    "rxjs/add/operator/first": "rxjs-compat/_esm2015/add/operator/first",
-    "rxjs/add/operator/findIndex": "rxjs-compat/_esm2015/add/operator/findIndex",
-    "rxjs/add/operator/find": "rxjs-compat/_esm2015/add/operator/find",
-    "rxjs/add/operator/finally": "rxjs-compat/_esm2015/add/operator/finally",
-    "rxjs/add/operator/filter": "rxjs-compat/_esm2015/add/operator/filter",
-    "rxjs/add/operator/expand": "rxjs-compat/_esm2015/add/operator/expand",
-    "rxjs/add/operator/exhaustMap": "rxjs-compat/_esm2015/add/operator/exhaustMap",
-    "rxjs/add/operator/exhaust": "rxjs-compat/_esm2015/add/operator/exhaust",
-    "rxjs/add/operator/every": "rxjs-compat/_esm2015/add/operator/every",
-    "rxjs/add/operator/elementAt": "rxjs-compat/_esm2015/add/operator/elementAt",
-    "rxjs/add/operator/do": "rxjs-compat/_esm2015/add/operator/do",
-    "rxjs/add/operator/distinctUntilKeyChanged": "rxjs-compat/_esm2015/add/operator/distinctUntilKeyChanged",
-    "rxjs/add/operator/distinctUntilChanged": "rxjs-compat/_esm2015/add/operator/distinctUntilChanged",
-    "rxjs/add/operator/distinct": "rxjs-compat/_esm2015/add/operator/distinct",
-    "rxjs/add/operator/dematerialize": "rxjs-compat/_esm2015/add/operator/dematerialize",
-    "rxjs/add/operator/delayWhen": "rxjs-compat/_esm2015/add/operator/delayWhen",
-    "rxjs/add/operator/delay": "rxjs-compat/_esm2015/add/operator/delay",
-    "rxjs/add/operator/defaultIfEmpty": "rxjs-compat/_esm2015/add/operator/defaultIfEmpty",
-    "rxjs/add/operator/debounceTime": "rxjs-compat/_esm2015/add/operator/debounceTime",
-    "rxjs/add/operator/debounce": "rxjs-compat/_esm2015/add/operator/debounce",
-    "rxjs/add/operator/count": "rxjs-compat/_esm2015/add/operator/count",
-    "rxjs/add/operator/concatMapTo": "rxjs-compat/_esm2015/add/operator/concatMapTo",
-    "rxjs/add/operator/concatMap": "rxjs-compat/_esm2015/add/operator/concatMap",
-    "rxjs/add/operator/concatAll": "rxjs-compat/_esm2015/add/operator/concatAll",
-    "rxjs/add/operator/concat": "rxjs-compat/_esm2015/add/operator/concat",
-    "rxjs/add/operator/combineLatest": "rxjs-compat/_esm2015/add/operator/combineLatest",
-    "rxjs/add/operator/combineAll": "rxjs-compat/_esm2015/add/operator/combineAll",
-    "rxjs/add/operator/catch": "rxjs-compat/_esm2015/add/operator/catch",
-    "rxjs/add/operator/bufferWhen": "rxjs-compat/_esm2015/add/operator/bufferWhen",
-    "rxjs/add/operator/bufferToggle": "rxjs-compat/_esm2015/add/operator/bufferToggle",
-    "rxjs/add/operator/bufferTime": "rxjs-compat/_esm2015/add/operator/bufferTime",
-    "rxjs/add/operator/bufferCount": "rxjs-compat/_esm2015/add/operator/bufferCount",
-    "rxjs/add/operator/buffer": "rxjs-compat/_esm2015/add/operator/buffer",
-    "rxjs/add/operator/auditTime": "rxjs-compat/_esm2015/add/operator/auditTime",
-    "rxjs/add/operator/audit": "rxjs-compat/_esm2015/add/operator/audit",
-    "rxjs/add/observable/zip": "rxjs-compat/_esm2015/add/observable/zip",
-    "rxjs/add/observable/using": "rxjs-compat/_esm2015/add/observable/using",
-    "rxjs/add/observable/timer": "rxjs-compat/_esm2015/add/observable/timer",
-    "rxjs/add/observable/throw": "rxjs-compat/_esm2015/add/observable/throw",
-    "rxjs/add/observable/range": "rxjs-compat/_esm2015/add/observable/range",
-    "rxjs/add/observable/race": "rxjs-compat/_esm2015/add/observable/race",
-    "rxjs/add/observable/pairs": "rxjs-compat/_esm2015/add/observable/pairs",
-    "rxjs/add/observable/onErrorResumeNext": "rxjs-compat/_esm2015/add/observable/onErrorResumeNext",
-    "rxjs/add/observable/of": "rxjs-compat/_esm2015/add/observable/of",
-    "rxjs/add/observable/never": "rxjs-compat/_esm2015/add/observable/never",
-    "rxjs/add/observable/merge": "rxjs-compat/_esm2015/add/observable/merge",
-    "rxjs/add/observable/interval": "rxjs-compat/_esm2015/add/observable/interval",
-    "rxjs/add/observable/if": "rxjs-compat/_esm2015/add/observable/if",
-    "rxjs/add/observable/generate": "rxjs-compat/_esm2015/add/observable/generate",
-    "rxjs/add/observable/fromPromise": "rxjs-compat/_esm2015/add/observable/fromPromise",
-    "rxjs/add/observable/fromEventPattern": "rxjs-compat/_esm2015/add/observable/fromEventPattern",
-    "rxjs/add/observable/fromEvent": "rxjs-compat/_esm2015/add/observable/fromEvent",
-    "rxjs/add/observable/from": "rxjs-compat/_esm2015/add/observable/from",
-    "rxjs/add/observable/forkJoin": "rxjs-compat/_esm2015/add/observable/forkJoin",
-    "rxjs/add/observable/empty": "rxjs-compat/_esm2015/add/observable/empty",
-    "rxjs/add/observable/dom/webSocket": "rxjs-compat/_esm2015/add/observable/dom/webSocket",
-    "rxjs/add/observable/dom/ajax": "rxjs-compat/_esm2015/add/observable/dom/ajax",
-    "rxjs/add/observable/defer": "rxjs-compat/_esm2015/add/observable/defer",
-    "rxjs/add/observable/concat": "rxjs-compat/_esm2015/add/observable/concat",
-    "rxjs/add/observable/combineLatest": "rxjs-compat/_esm2015/add/observable/combineLatest",
-    "rxjs/add/observable/bindNodeCallback": "rxjs-compat/_esm2015/add/observable/bindNodeCallback",
-    "rxjs/add/observable/bindCallback": "rxjs-compat/_esm2015/add/observable/bindCallback",
-    "rxjs/Subscription": "rxjs-compat/_esm2015/Subscription",
-    "rxjs/Subscriber": "rxjs-compat/_esm2015/Subscriber",
-    "rxjs/SubjectSubscription": "rxjs-compat/_esm2015/SubjectSubscription",
-    "rxjs/Subject": "rxjs-compat/_esm2015/Subject",
-    "rxjs/Scheduler": "rxjs-compat/_esm2015/Scheduler",
-    "rxjs/Rx": "rxjs-compat/_esm2015/Rx",
-    "rxjs/ReplaySubject": "rxjs-compat/_esm2015/ReplaySubject",
-    "rxjs/OuterSubscriber": "rxjs-compat/_esm2015/OuterSubscriber",
-    "rxjs/Operator": "rxjs-compat/_esm2015/Operator",
-    "rxjs/Observer": "rxjs-compat/_esm2015/Observer",
-    "rxjs/Observable": "rxjs-compat/_esm2015/Observable",
-    "rxjs/Notification": "rxjs-compat/_esm2015/Notification",
-    "rxjs/InnerSubscriber": "rxjs-compat/_esm2015/InnerSubscriber",
-    "rxjs/BehaviorSubject": "rxjs-compat/_esm2015/BehaviorSubject",
-    "rxjs/AsyncSubject": "rxjs-compat/_esm2015/AsyncSubject"
-};
-}
diff --git a/node_modules/rxjs/_esm2015/testing/index.js b/node_modules/rxjs/_esm2015/testing/index.js
deleted file mode 100644
index f0f7b53..0000000
--- a/node_modules/rxjs/_esm2015/testing/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export { TestScheduler } from '../internal/testing/TestScheduler';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/testing/index.js.map b/node_modules/rxjs/_esm2015/testing/index.js.map
deleted file mode 100644
index 6882405..0000000
--- a/node_modules/rxjs/_esm2015/testing/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
diff --git a/node_modules/rxjs/_esm2015/webSocket/index.js b/node_modules/rxjs/_esm2015/webSocket/index.js
deleted file mode 100644
index a4bb4ea..0000000
--- a/node_modules/rxjs/_esm2015/webSocket/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export { webSocket as webSocket } from '../internal/observable/dom/webSocket';
-export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/_esm2015/webSocket/index.js.map b/node_modules/rxjs/_esm2015/webSocket/index.js.map
deleted file mode 100644
index 599e9a7..0000000
--- a/node_modules/rxjs/_esm2015/webSocket/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/webSocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA0B,MAAM,6CAA6C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/LICENSE.txt b/node_modules/rxjs/_esm5/LICENSE.txt
deleted file mode 100644
index 031ce38..0000000
--- a/node_modules/rxjs/_esm5/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                               Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
diff --git a/node_modules/rxjs/_esm5/README.md b/node_modules/rxjs/_esm5/README.md
deleted file mode 100644
index e9204f0..0000000
--- a/node_modules/rxjs/_esm5/README.md
+++ /dev/null
@@ -1,145 +0,0 @@
-<img src="doc/asset/Rx_Logo_S.png" alt="RxJS Logo" width="86" height="86"> RxJS: Reactive Extensions For JavaScript
-======================================
-
-
-[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x)
-[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs)
-[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-# RxJS 6 Stable
-
-### MIGRATION AND RELEASE INFORMATION:
-
-Find out how to update to v6, **automatically update your TypeScript code**, and more!
-
-- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md)
-
-### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x)
-
-Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
-
-[Apache 2.0 License](LICENSE.txt)
-
-- [Code of Conduct](CODE_OF_CONDUCT.md)
-- [Contribution Guidelines](CONTRIBUTING.md)
-- [Maintainer Guidelines](doc/maintainer-guidelines.md)
-- [Creating Operators](doc/operator-creation.md)
-- [API Documentation (WIP)](https://rxjs.dev/)
-
-## Versions In This Repository
-
-- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now
-- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs`
-
-## Important
-
-By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity.
-
-## Installation and Usage
-
-### ES6 via npm
-
-```sh
-npm install rxjs
-```
-
-It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`.
-
-```js
-import { range } from 'rxjs';
-import { map, filter } from 'rxjs/operators';
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information.
-
-### CommonJS via npm
-
-To install this library for CommonJS (CJS) usage, use the following command:
-
-```sh
-npm install rxjs
-```
-
-(Note: destructuring available in Node 8+)
-
-```js
-const { range } = require('rxjs');
-const { map, filter } = require('rxjs/operators');
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-### CDN
-
-For CDN, you can use [unpkg](https://unpkg.com/):
-
-https://unpkg.com/rxjs/bundles/rxjs.umd.min.js
-
-The global namespace for rxjs is `rxjs`:
-
-```js
-const { range } = rxjs;
-const { map, filter } = rxjs.operators;
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-## Goals
-
-- Smaller overall bundles sizes
-- Provide better performance than preceding versions of RxJS
-- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable
-- Provide more modular file structure in a variety of formats
-- Provide more debuggable call stacks than preceding versions of RxJS
-
-## Building/Testing
-
-- `npm run build_all` - builds everything
-- `npm test` - runs tests
-- `npm run test_no_cache` - run test with `ts-node` set to false
-
-## Performance Tests
-
-Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`.
-
-Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator.
-
-## Adding documentation
-We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app).
-
-## Generating PNG marble diagrams
-
-The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`.
-
-For Mac OS X with [Homebrew](http://brew.sh/):
-
-- `brew install imagemagick`
-- `brew install graphicsmagick`
-- `brew install ghostscript`
-- You may need to install the Ghostscript fonts manually:
-  - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts)
-  - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript`
-
-For Debian Linux:
-
-- `sudo add-apt-repository ppa:dhor/myway`
-- `apt-get install imagemagick`
-- `apt-get install graphicsmagick`
-- `apt-get install ghostscript`
-
-For Windows and other Operating Systems, check the download instructions here:
-
-- http://imagemagick.org
-- http://www.graphicsmagick.org
-- http://www.ghostscript.com/
diff --git a/node_modules/rxjs/_esm5/ajax/index.js b/node_modules/rxjs/_esm5/ajax/index.js
deleted file mode 100644
index 0f1bf03..0000000
--- a/node_modules/rxjs/_esm5/ajax/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { ajax } from '../internal/observable/dom/ajax';
-export { AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/ajax/index.js.map b/node_modules/rxjs/_esm5/ajax/index.js.map
deleted file mode 100644
index 038e2b1..0000000
--- a/node_modules/rxjs/_esm5/ajax/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/ajax/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/fetch/index.js b/node_modules/rxjs/_esm5/fetch/index.js
deleted file mode 100644
index d6c825b..0000000
--- a/node_modules/rxjs/_esm5/fetch/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { fromFetch } from '../internal/observable/dom/fetch';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/fetch/index.js.map b/node_modules/rxjs/_esm5/fetch/index.js.map
deleted file mode 100644
index 8bf783b..0000000
--- a/node_modules/rxjs/_esm5/fetch/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/index.js b/node_modules/rxjs/_esm5/index.js
deleted file mode 100644
index c260ad0..0000000
--- a/node_modules/rxjs/_esm5/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { Observable } from './internal/Observable';
-export { ConnectableObservable } from './internal/observable/ConnectableObservable';
-export { GroupedObservable } from './internal/operators/groupBy';
-export { observable } from './internal/symbol/observable';
-export { Subject } from './internal/Subject';
-export { BehaviorSubject } from './internal/BehaviorSubject';
-export { ReplaySubject } from './internal/ReplaySubject';
-export { AsyncSubject } from './internal/AsyncSubject';
-export { asap as asapScheduler } from './internal/scheduler/asap';
-export { async as asyncScheduler } from './internal/scheduler/async';
-export { queue as queueScheduler } from './internal/scheduler/queue';
-export { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';
-export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';
-export { Scheduler } from './internal/Scheduler';
-export { Subscription } from './internal/Subscription';
-export { Subscriber } from './internal/Subscriber';
-export { Notification, NotificationKind } from './internal/Notification';
-export { pipe } from './internal/util/pipe';
-export { noop } from './internal/util/noop';
-export { identity } from './internal/util/identity';
-export { isObservable } from './internal/util/isObservable';
-export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from './internal/util/EmptyError';
-export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';
-export { UnsubscriptionError } from './internal/util/UnsubscriptionError';
-export { TimeoutError } from './internal/util/TimeoutError';
-export { bindCallback } from './internal/observable/bindCallback';
-export { bindNodeCallback } from './internal/observable/bindNodeCallback';
-export { combineLatest } from './internal/observable/combineLatest';
-export { concat } from './internal/observable/concat';
-export { defer } from './internal/observable/defer';
-export { empty } from './internal/observable/empty';
-export { forkJoin } from './internal/observable/forkJoin';
-export { from } from './internal/observable/from';
-export { fromEvent } from './internal/observable/fromEvent';
-export { fromEventPattern } from './internal/observable/fromEventPattern';
-export { generate } from './internal/observable/generate';
-export { iif } from './internal/observable/iif';
-export { interval } from './internal/observable/interval';
-export { merge } from './internal/observable/merge';
-export { never } from './internal/observable/never';
-export { of } from './internal/observable/of';
-export { onErrorResumeNext } from './internal/observable/onErrorResumeNext';
-export { pairs } from './internal/observable/pairs';
-export { partition } from './internal/observable/partition';
-export { race } from './internal/observable/race';
-export { range } from './internal/observable/range';
-export { throwError } from './internal/observable/throwError';
-export { timer } from './internal/observable/timer';
-export { using } from './internal/observable/using';
-export { zip } from './internal/observable/zip';
-export { scheduled } from './internal/scheduled/scheduled';
-export { EMPTY } from './internal/observable/empty';
-export { NEVER } from './internal/observable/never';
-export { config } from './internal/config';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/index.js.map b/node_modules/rxjs/_esm5/index.js.map
deleted file mode 100644
index 35faa43..0000000
--- a/node_modules/rxjs/_esm5/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal-compatibility/index.js b/node_modules/rxjs/_esm5/internal-compatibility/index.js
deleted file mode 100644
index 2164bc8..0000000
--- a/node_modules/rxjs/_esm5/internal-compatibility/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { config } from '../internal/config';
-export { InnerSubscriber } from '../internal/InnerSubscriber';
-export { OuterSubscriber } from '../internal/OuterSubscriber';
-export { Scheduler } from '../internal/Scheduler';
-export { AnonymousSubject } from '../internal/Subject';
-export { SubjectSubscription } from '../internal/SubjectSubscription';
-export { Subscriber } from '../internal/Subscriber';
-export { fromPromise } from '../internal/observable/fromPromise';
-export { fromIterable } from '../internal/observable/fromIterable';
-export { ajax } from '../internal/observable/dom/ajax';
-export { webSocket } from '../internal/observable/dom/webSocket';
-export { ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-export { CombineLatestOperator } from '../internal/observable/combineLatest';
-export { dispatch } from '../internal/observable/range';
-export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';
-export { Timestamp } from '../internal/operators/timestamp';
-export { TimeInterval } from '../internal/operators/timeInterval';
-export { GroupedObservable } from '../internal/operators/groupBy';
-export { defaultThrottleConfig } from '../internal/operators/throttle';
-export { rxSubscriber } from '../internal/symbol/rxSubscriber';
-export { iterator } from '../internal/symbol/iterator';
-export { observable } from '../internal/symbol/observable';
-export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from '../internal/util/EmptyError';
-export { Immediate } from '../internal/util/Immediate';
-export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError';
-export { TimeoutError } from '../internal/util/TimeoutError';
-export { UnsubscriptionError } from '../internal/util/UnsubscriptionError';
-export { applyMixins } from '../internal/util/applyMixins';
-export { errorObject } from '../internal/util/errorObject';
-export { hostReportError } from '../internal/util/hostReportError';
-export { identity } from '../internal/util/identity';
-export { isArray } from '../internal/util/isArray';
-export { isArrayLike } from '../internal/util/isArrayLike';
-export { isDate } from '../internal/util/isDate';
-export { isFunction } from '../internal/util/isFunction';
-export { isIterable } from '../internal/util/isIterable';
-export { isNumeric } from '../internal/util/isNumeric';
-export { isObject } from '../internal/util/isObject';
-export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable';
-export { isPromise } from '../internal/util/isPromise';
-export { isScheduler } from '../internal/util/isScheduler';
-export { noop } from '../internal/util/noop';
-export { not } from '../internal/util/not';
-export { pipe } from '../internal/util/pipe';
-export { root } from '../internal/util/root';
-export { subscribeTo } from '../internal/util/subscribeTo';
-export { subscribeToArray } from '../internal/util/subscribeToArray';
-export { subscribeToIterable } from '../internal/util/subscribeToIterable';
-export { subscribeToObservable } from '../internal/util/subscribeToObservable';
-export { subscribeToPromise } from '../internal/util/subscribeToPromise';
-export { subscribeToResult } from '../internal/util/subscribeToResult';
-export { toSubscriber } from '../internal/util/toSubscriber';
-export { tryCatch } from '../internal/util/tryCatch';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/internal-compatibility/index.js.map b/node_modules/rxjs/_esm5/internal-compatibility/index.js.map
deleted file mode 100644
index 9de2eb9..0000000
--- a/node_modules/rxjs/_esm5/internal-compatibility/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/internal-compatibility/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAmC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EACtG,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC/H,OAAO,EAA0B,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAErF,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAkB,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/AsyncSubject.js b/node_modules/rxjs/_esm5/internal/AsyncSubject.js
deleted file mode 100644
index 8c92fbb..0000000
--- a/node_modules/rxjs/_esm5/internal/AsyncSubject.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from './Subject';
-import { Subscription } from './Subscription';
-var AsyncSubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AsyncSubject, _super);
-    function AsyncSubject() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.value = null;
-        _this.hasNext = false;
-        _this.hasCompleted = false;
-        return _this;
-    }
-    AsyncSubject.prototype._subscribe = function (subscriber) {
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription.EMPTY;
-        }
-        else if (this.hasCompleted && this.hasNext) {
-            subscriber.next(this.value);
-            subscriber.complete();
-            return Subscription.EMPTY;
-        }
-        return _super.prototype._subscribe.call(this, subscriber);
-    };
-    AsyncSubject.prototype.next = function (value) {
-        if (!this.hasCompleted) {
-            this.value = value;
-            this.hasNext = true;
-        }
-    };
-    AsyncSubject.prototype.error = function (error) {
-        if (!this.hasCompleted) {
-            _super.prototype.error.call(this, error);
-        }
-    };
-    AsyncSubject.prototype.complete = function () {
-        this.hasCompleted = true;
-        if (this.hasNext) {
-            _super.prototype.next.call(this, this.value);
-        }
-        _super.prototype.complete.call(this);
-    };
-    return AsyncSubject;
-}(Subject));
-export { AsyncSubject };
-//# sourceMappingURL=AsyncSubject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map b/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map
deleted file mode 100644
index cdf243a..0000000
--- a/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C;IAAqC,wCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,OAAO,GAsC3C"}
diff --git a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js
deleted file mode 100644
index c7ddbd6..0000000
--- a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from './Subject';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-var BehaviorSubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BehaviorSubject, _super);
-    function BehaviorSubject(_value) {
-        var _this = _super.call(this) || this;
-        _this._value = _value;
-        return _this;
-    }
-    Object.defineProperty(BehaviorSubject.prototype, "value", {
-        get: function () {
-            return this.getValue();
-        },
-        enumerable: true,
-        configurable: true
-    });
-    BehaviorSubject.prototype._subscribe = function (subscriber) {
-        var subscription = _super.prototype._subscribe.call(this, subscriber);
-        if (subscription && !subscription.closed) {
-            subscriber.next(this._value);
-        }
-        return subscription;
-    };
-    BehaviorSubject.prototype.getValue = function () {
-        if (this.hasError) {
-            throw this.thrownError;
-        }
-        else if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else {
-            return this._value;
-        }
-    };
-    BehaviorSubject.prototype.next = function (value) {
-        _super.prototype.next.call(this, this._value = value);
-    };
-    return BehaviorSubject;
-}(Subject));
-export { BehaviorSubject };
-//# sourceMappingURL=BehaviorSubject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map
deleted file mode 100644
index cc33132..0000000
--- a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE;IAAwC,2CAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,OAAO,GAgC9C"}
diff --git a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js
deleted file mode 100644
index d92fa72..0000000
--- a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from './Subscriber';
-var InnerSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(InnerSubscriber, _super);
-    function InnerSubscriber(parent, outerValue, outerIndex) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        _this.outerValue = outerValue;
-        _this.outerIndex = outerIndex;
-        _this.index = 0;
-        return _this;
-    }
-    InnerSubscriber.prototype._next = function (value) {
-        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
-    };
-    InnerSubscriber.prototype._error = function (error) {
-        this.parent.notifyError(error, this);
-        this.unsubscribe();
-    };
-    InnerSubscriber.prototype._complete = function () {
-        this.parent.notifyComplete(this);
-        this.unsubscribe();
-    };
-    return InnerSubscriber;
-}(Subscriber));
-export { InnerSubscriber };
-//# sourceMappingURL=InnerSubscriber.js.map
diff --git a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map
deleted file mode 100644
index 4522441..0000000
--- a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"InnerSubscriber.js","sources":["../../src/internal/InnerSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;IAA2C,2CAAa;IAGtD,yBAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAAlG,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAuB;QAAS,gBAAU,GAAV,UAAU,CAAG;QAAS,gBAAU,GAAV,UAAU,CAAQ;QAF1F,WAAK,GAAG,CAAC,CAAC;;IAIlB,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,gCAAM,GAAhB,UAAiB,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AApBD,CAA2C,UAAU,GAoBpD"}
diff --git a/node_modules/rxjs/_esm5/internal/Notification.js b/node_modules/rxjs/_esm5/internal/Notification.js
deleted file mode 100644
index 3f7dcd7..0000000
--- a/node_modules/rxjs/_esm5/internal/Notification.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */
-import { empty } from './observable/empty';
-import { of } from './observable/of';
-import { throwError } from './observable/throwError';
-export var NotificationKind;
-/*@__PURE__*/ (function (NotificationKind) {
-    NotificationKind["NEXT"] = "N";
-    NotificationKind["ERROR"] = "E";
-    NotificationKind["COMPLETE"] = "C";
-})(NotificationKind || (NotificationKind = {}));
-var Notification = /*@__PURE__*/ (function () {
-    function Notification(kind, value, error) {
-        this.kind = kind;
-        this.value = value;
-        this.error = error;
-        this.hasValue = kind === 'N';
-    }
-    Notification.prototype.observe = function (observer) {
-        switch (this.kind) {
-            case 'N':
-                return observer.next && observer.next(this.value);
-            case 'E':
-                return observer.error && observer.error(this.error);
-            case 'C':
-                return observer.complete && observer.complete();
-        }
-    };
-    Notification.prototype.do = function (next, error, complete) {
-        var kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return next && next(this.value);
-            case 'E':
-                return error && error(this.error);
-            case 'C':
-                return complete && complete();
-        }
-    };
-    Notification.prototype.accept = function (nextOrObserver, error, complete) {
-        if (nextOrObserver && typeof nextOrObserver.next === 'function') {
-            return this.observe(nextOrObserver);
-        }
-        else {
-            return this.do(nextOrObserver, error, complete);
-        }
-    };
-    Notification.prototype.toObservable = function () {
-        var kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return of(this.value);
-            case 'E':
-                return throwError(this.error);
-            case 'C':
-                return empty();
-        }
-        throw new Error('unexpected notification kind value');
-    };
-    Notification.createNext = function (value) {
-        if (typeof value !== 'undefined') {
-            return new Notification('N', value);
-        }
-        return Notification.undefinedValueNotification;
-    };
-    Notification.createError = function (err) {
-        return new Notification('E', undefined, err);
-    };
-    Notification.createComplete = function () {
-        return Notification.completeNotification;
-    };
-    Notification.completeNotification = new Notification('C');
-    Notification.undefinedValueNotification = new Notification('N', undefined);
-    return Notification;
-}());
-export { Notification };
-//# sourceMappingURL=Notification.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Notification.js.map b/node_modules/rxjs/_esm5/internal/Notification.js.map
deleted file mode 100644
index 9c15255..0000000
--- a/node_modules/rxjs/_esm5/internal/Notification.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Notification.js","sources":["../../src/internal/Notification.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/Observable.js b/node_modules/rxjs/_esm5/internal/Observable.js
deleted file mode 100644
index 8f2ef30..0000000
--- a/node_modules/rxjs/_esm5/internal/Observable.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */
-import { canReportError } from './util/canReportError';
-import { toSubscriber } from './util/toSubscriber';
-import { observable as Symbol_observable } from './symbol/observable';
-import { pipeFromArray } from './util/pipe';
-import { config } from './config';
-var Observable = /*@__PURE__*/ (function () {
-    function Observable(subscribe) {
-        this._isScalar = false;
-        if (subscribe) {
-            this._subscribe = subscribe;
-        }
-    }
-    Observable.prototype.lift = function (operator) {
-        var observable = new Observable();
-        observable.source = this;
-        observable.operator = operator;
-        return observable;
-    };
-    Observable.prototype.subscribe = function (observerOrNext, error, complete) {
-        var operator = this.operator;
-        var sink = toSubscriber(observerOrNext, error, complete);
-        if (operator) {
-            sink.add(operator.call(sink, this.source));
-        }
-        else {
-            sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
-                this._subscribe(sink) :
-                this._trySubscribe(sink));
-        }
-        if (config.useDeprecatedSynchronousErrorHandling) {
-            if (sink.syncErrorThrowable) {
-                sink.syncErrorThrowable = false;
-                if (sink.syncErrorThrown) {
-                    throw sink.syncErrorValue;
-                }
-            }
-        }
-        return sink;
-    };
-    Observable.prototype._trySubscribe = function (sink) {
-        try {
-            return this._subscribe(sink);
-        }
-        catch (err) {
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                sink.syncErrorThrown = true;
-                sink.syncErrorValue = err;
-            }
-            if (canReportError(sink)) {
-                sink.error(err);
-            }
-            else {
-                console.warn(err);
-            }
-        }
-    };
-    Observable.prototype.forEach = function (next, promiseCtor) {
-        var _this = this;
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor(function (resolve, reject) {
-            var subscription;
-            subscription = _this.subscribe(function (value) {
-                try {
-                    next(value);
-                }
-                catch (err) {
-                    reject(err);
-                    if (subscription) {
-                        subscription.unsubscribe();
-                    }
-                }
-            }, reject, resolve);
-        });
-    };
-    Observable.prototype._subscribe = function (subscriber) {
-        var source = this.source;
-        return source && source.subscribe(subscriber);
-    };
-    Observable.prototype[Symbol_observable] = function () {
-        return this;
-    };
-    Observable.prototype.pipe = function () {
-        var operations = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            operations[_i] = arguments[_i];
-        }
-        if (operations.length === 0) {
-            return this;
-        }
-        return pipeFromArray(operations)(this);
-    };
-    Observable.prototype.toPromise = function (promiseCtor) {
-        var _this = this;
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor(function (resolve, reject) {
-            var value;
-            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
-        });
-    };
-    Observable.create = function (subscribe) {
-        return new Observable(subscribe);
-    };
-    return Observable;
-}());
-export { Observable };
-function getPromiseCtor(promiseCtor) {
-    if (!promiseCtor) {
-        promiseCtor = config.Promise || Promise;
-    }
-    if (!promiseCtor) {
-        throw new Error('no Promise impl found');
-    }
-    return promiseCtor;
-}
-//# sourceMappingURL=Observable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Observable.js.map b/node_modules/rxjs/_esm5/internal/Observable.js.map
deleted file mode 100644
index 1cd9695..0000000
--- a/node_modules/rxjs/_esm5/internal/Observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/Observer.js b/node_modules/rxjs/_esm5/internal/Observer.js
deleted file mode 100644
index b066ea2..0000000
--- a/node_modules/rxjs/_esm5/internal/Observer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-export var empty = {
-    closed: true,
-    next: function (value) { },
-    error: function (err) {
-        if (config.useDeprecatedSynchronousErrorHandling) {
-            throw err;
-        }
-        else {
-            hostReportError(err);
-        }
-    },
-    complete: function () { }
-};
-//# sourceMappingURL=Observer.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Observer.js.map b/node_modules/rxjs/_esm5/internal/Observer.js.map
deleted file mode 100644
index 1db7633..0000000
--- a/node_modules/rxjs/_esm5/internal/Observer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observer.js","sources":["../../src/internal/Observer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,IAAM,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,EAAJ,UAAK,KAAU,IAAoB,CAAC;IACpC,KAAK,EAAL,UAAM,GAAQ;QACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,EAAR,cAA4B,CAAC;CAC9B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/Operator.js b/node_modules/rxjs/_esm5/internal/Operator.js
deleted file mode 100644
index 09d2cfc..0000000
--- a/node_modules/rxjs/_esm5/internal/Operator.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=Operator.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Operator.js.map b/node_modules/rxjs/_esm5/internal/Operator.js.map
deleted file mode 100644
index f45f5ad..0000000
--- a/node_modules/rxjs/_esm5/internal/Operator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Operator.js","sources":["../../src/internal/Operator.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js
deleted file mode 100644
index de6dbfe..0000000
--- a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from './Subscriber';
-var OuterSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(OuterSubscriber, _super);
-    function OuterSubscriber() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    OuterSubscriber.prototype.notifyError = function (error, innerSub) {
-        this.destination.error(error);
-    };
-    OuterSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.destination.complete();
-    };
-    return OuterSubscriber;
-}(Subscriber));
-export { OuterSubscriber };
-//# sourceMappingURL=OuterSubscriber.js.map
diff --git a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map
deleted file mode 100644
index df6aee2..0000000
--- a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"OuterSubscriber.js","sources":["../../src/internal/OuterSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;IAA2C,2CAAa;IAAxD;;IAcA,CAAC;IAbC,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wCAAc,GAAd,UAAe,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AAdD,CAA2C,UAAU,GAcpD"}
diff --git a/node_modules/rxjs/_esm5/internal/ReplaySubject.js b/node_modules/rxjs/_esm5/internal/ReplaySubject.js
deleted file mode 100644
index 7cd229a..0000000
--- a/node_modules/rxjs/_esm5/internal/ReplaySubject.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from './Subject';
-import { queue } from './scheduler/queue';
-import { Subscription } from './Subscription';
-import { ObserveOnSubscriber } from './operators/observeOn';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-var ReplaySubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ReplaySubject, _super);
-    function ReplaySubject(bufferSize, windowTime, scheduler) {
-        if (bufferSize === void 0) {
-            bufferSize = Number.POSITIVE_INFINITY;
-        }
-        if (windowTime === void 0) {
-            windowTime = Number.POSITIVE_INFINITY;
-        }
-        var _this = _super.call(this) || this;
-        _this.scheduler = scheduler;
-        _this._events = [];
-        _this._infiniteTimeWindow = false;
-        _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
-        _this._windowTime = windowTime < 1 ? 1 : windowTime;
-        if (windowTime === Number.POSITIVE_INFINITY) {
-            _this._infiniteTimeWindow = true;
-            _this.next = _this.nextInfiniteTimeWindow;
-        }
-        else {
-            _this.next = _this.nextTimeWindow;
-        }
-        return _this;
-    }
-    ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {
-        var _events = this._events;
-        _events.push(value);
-        if (_events.length > this._bufferSize) {
-            _events.shift();
-        }
-        _super.prototype.next.call(this, value);
-    };
-    ReplaySubject.prototype.nextTimeWindow = function (value) {
-        this._events.push(new ReplayEvent(this._getNow(), value));
-        this._trimBufferThenGetEvents();
-        _super.prototype.next.call(this, value);
-    };
-    ReplaySubject.prototype._subscribe = function (subscriber) {
-        var _infiniteTimeWindow = this._infiniteTimeWindow;
-        var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
-        var scheduler = this.scheduler;
-        var len = _events.length;
-        var subscription;
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else if (this.isStopped || this.hasError) {
-            subscription = Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            subscription = new SubjectSubscription(this, subscriber);
-        }
-        if (scheduler) {
-            subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));
-        }
-        if (_infiniteTimeWindow) {
-            for (var i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i]);
-            }
-        }
-        else {
-            for (var i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i].value);
-            }
-        }
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-        }
-        return subscription;
-    };
-    ReplaySubject.prototype._getNow = function () {
-        return (this.scheduler || queue).now();
-    };
-    ReplaySubject.prototype._trimBufferThenGetEvents = function () {
-        var now = this._getNow();
-        var _bufferSize = this._bufferSize;
-        var _windowTime = this._windowTime;
-        var _events = this._events;
-        var eventsCount = _events.length;
-        var spliceCount = 0;
-        while (spliceCount < eventsCount) {
-            if ((now - _events[spliceCount].time) < _windowTime) {
-                break;
-            }
-            spliceCount++;
-        }
-        if (eventsCount > _bufferSize) {
-            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
-        }
-        if (spliceCount > 0) {
-            _events.splice(0, spliceCount);
-        }
-        return _events;
-    };
-    return ReplaySubject;
-}(Subject));
-export { ReplaySubject };
-var ReplayEvent = /*@__PURE__*/ (function () {
-    function ReplayEvent(time, value) {
-        this.time = time;
-        this.value = value;
-    }
-    return ReplayEvent;
-}());
-//# sourceMappingURL=ReplaySubject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map b/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map
deleted file mode 100644
index a881321..0000000
--- a/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/Rx.js b/node_modules/rxjs/_esm5/internal/Rx.js
deleted file mode 100644
index de82a39..0000000
--- a/node_modules/rxjs/_esm5/internal/Rx.js
+++ /dev/null
@@ -1,173 +0,0 @@
-/** PURE_IMPORTS_START _scheduler_asap,_scheduler_async,_scheduler_queue,_scheduler_animationFrame,_symbol_rxSubscriber,_symbol_iterator,_symbol_observable,_operators_index PURE_IMPORTS_END */
-export { Subject, AnonymousSubject } from './Subject';
-export { Observable } from './Observable';
-export { config } from './config';
-import 'rxjs-compat/add/observable/bindCallback';
-import 'rxjs-compat/add/observable/bindNodeCallback';
-import 'rxjs-compat/add/observable/combineLatest';
-import 'rxjs-compat/add/observable/concat';
-import 'rxjs-compat/add/observable/defer';
-import 'rxjs-compat/add/observable/empty';
-import 'rxjs-compat/add/observable/forkJoin';
-import 'rxjs-compat/add/observable/from';
-import 'rxjs-compat/add/observable/fromEvent';
-import 'rxjs-compat/add/observable/fromEventPattern';
-import 'rxjs-compat/add/observable/fromPromise';
-import 'rxjs-compat/add/observable/generate';
-import 'rxjs-compat/add/observable/if';
-import 'rxjs-compat/add/observable/interval';
-import 'rxjs-compat/add/observable/merge';
-import 'rxjs-compat/add/observable/race';
-import 'rxjs-compat/add/observable/never';
-import 'rxjs-compat/add/observable/of';
-import 'rxjs-compat/add/observable/onErrorResumeNext';
-import 'rxjs-compat/add/observable/pairs';
-import 'rxjs-compat/add/observable/range';
-import 'rxjs-compat/add/observable/using';
-import 'rxjs-compat/add/observable/throw';
-import 'rxjs-compat/add/observable/timer';
-import 'rxjs-compat/add/observable/zip';
-import 'rxjs-compat/add/observable/dom/ajax';
-import 'rxjs-compat/add/observable/dom/webSocket';
-import 'rxjs-compat/add/operator/buffer';
-import 'rxjs-compat/add/operator/bufferCount';
-import 'rxjs-compat/add/operator/bufferTime';
-import 'rxjs-compat/add/operator/bufferToggle';
-import 'rxjs-compat/add/operator/bufferWhen';
-import 'rxjs-compat/add/operator/catch';
-import 'rxjs-compat/add/operator/combineAll';
-import 'rxjs-compat/add/operator/combineLatest';
-import 'rxjs-compat/add/operator/concat';
-import 'rxjs-compat/add/operator/concatAll';
-import 'rxjs-compat/add/operator/concatMap';
-import 'rxjs-compat/add/operator/concatMapTo';
-import 'rxjs-compat/add/operator/count';
-import 'rxjs-compat/add/operator/dematerialize';
-import 'rxjs-compat/add/operator/debounce';
-import 'rxjs-compat/add/operator/debounceTime';
-import 'rxjs-compat/add/operator/defaultIfEmpty';
-import 'rxjs-compat/add/operator/delay';
-import 'rxjs-compat/add/operator/delayWhen';
-import 'rxjs-compat/add/operator/distinct';
-import 'rxjs-compat/add/operator/distinctUntilChanged';
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
-import 'rxjs-compat/add/operator/do';
-import 'rxjs-compat/add/operator/exhaust';
-import 'rxjs-compat/add/operator/exhaustMap';
-import 'rxjs-compat/add/operator/expand';
-import 'rxjs-compat/add/operator/elementAt';
-import 'rxjs-compat/add/operator/filter';
-import 'rxjs-compat/add/operator/finally';
-import 'rxjs-compat/add/operator/find';
-import 'rxjs-compat/add/operator/findIndex';
-import 'rxjs-compat/add/operator/first';
-import 'rxjs-compat/add/operator/groupBy';
-import 'rxjs-compat/add/operator/ignoreElements';
-import 'rxjs-compat/add/operator/isEmpty';
-import 'rxjs-compat/add/operator/audit';
-import 'rxjs-compat/add/operator/auditTime';
-import 'rxjs-compat/add/operator/last';
-import 'rxjs-compat/add/operator/let';
-import 'rxjs-compat/add/operator/every';
-import 'rxjs-compat/add/operator/map';
-import 'rxjs-compat/add/operator/mapTo';
-import 'rxjs-compat/add/operator/materialize';
-import 'rxjs-compat/add/operator/max';
-import 'rxjs-compat/add/operator/merge';
-import 'rxjs-compat/add/operator/mergeAll';
-import 'rxjs-compat/add/operator/mergeMap';
-import 'rxjs-compat/add/operator/mergeMapTo';
-import 'rxjs-compat/add/operator/mergeScan';
-import 'rxjs-compat/add/operator/min';
-import 'rxjs-compat/add/operator/multicast';
-import 'rxjs-compat/add/operator/observeOn';
-import 'rxjs-compat/add/operator/onErrorResumeNext';
-import 'rxjs-compat/add/operator/pairwise';
-import 'rxjs-compat/add/operator/partition';
-import 'rxjs-compat/add/operator/pluck';
-import 'rxjs-compat/add/operator/publish';
-import 'rxjs-compat/add/operator/publishBehavior';
-import 'rxjs-compat/add/operator/publishReplay';
-import 'rxjs-compat/add/operator/publishLast';
-import 'rxjs-compat/add/operator/race';
-import 'rxjs-compat/add/operator/reduce';
-import 'rxjs-compat/add/operator/repeat';
-import 'rxjs-compat/add/operator/repeatWhen';
-import 'rxjs-compat/add/operator/retry';
-import 'rxjs-compat/add/operator/retryWhen';
-import 'rxjs-compat/add/operator/sample';
-import 'rxjs-compat/add/operator/sampleTime';
-import 'rxjs-compat/add/operator/scan';
-import 'rxjs-compat/add/operator/sequenceEqual';
-import 'rxjs-compat/add/operator/share';
-import 'rxjs-compat/add/operator/shareReplay';
-import 'rxjs-compat/add/operator/single';
-import 'rxjs-compat/add/operator/skip';
-import 'rxjs-compat/add/operator/skipLast';
-import 'rxjs-compat/add/operator/skipUntil';
-import 'rxjs-compat/add/operator/skipWhile';
-import 'rxjs-compat/add/operator/startWith';
-import 'rxjs-compat/add/operator/subscribeOn';
-import 'rxjs-compat/add/operator/switch';
-import 'rxjs-compat/add/operator/switchMap';
-import 'rxjs-compat/add/operator/switchMapTo';
-import 'rxjs-compat/add/operator/take';
-import 'rxjs-compat/add/operator/takeLast';
-import 'rxjs-compat/add/operator/takeUntil';
-import 'rxjs-compat/add/operator/takeWhile';
-import 'rxjs-compat/add/operator/throttle';
-import 'rxjs-compat/add/operator/throttleTime';
-import 'rxjs-compat/add/operator/timeInterval';
-import 'rxjs-compat/add/operator/timeout';
-import 'rxjs-compat/add/operator/timeoutWith';
-import 'rxjs-compat/add/operator/timestamp';
-import 'rxjs-compat/add/operator/toArray';
-import 'rxjs-compat/add/operator/toPromise';
-import 'rxjs-compat/add/operator/window';
-import 'rxjs-compat/add/operator/windowCount';
-import 'rxjs-compat/add/operator/windowTime';
-import 'rxjs-compat/add/operator/windowToggle';
-import 'rxjs-compat/add/operator/windowWhen';
-import 'rxjs-compat/add/operator/withLatestFrom';
-import 'rxjs-compat/add/operator/zip';
-import 'rxjs-compat/add/operator/zipAll';
-export { Subscription } from './Subscription';
-export { Subscriber } from './Subscriber';
-export { AsyncSubject } from './AsyncSubject';
-export { ReplaySubject } from './ReplaySubject';
-export { BehaviorSubject } from './BehaviorSubject';
-export { ConnectableObservable } from './observable/ConnectableObservable';
-export { Notification, NotificationKind } from './Notification';
-export { EmptyError } from './util/EmptyError';
-export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError';
-export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-export { TimeoutError } from './util/TimeoutError';
-export { UnsubscriptionError } from './util/UnsubscriptionError';
-export { TimeInterval } from './operators/timeInterval';
-export { Timestamp } from './operators/timestamp';
-export { TestScheduler } from './testing/TestScheduler';
-export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler';
-export { AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable';
-export { pipe } from './util/pipe';
-import { asap } from './scheduler/asap';
-import { async } from './scheduler/async';
-import { queue } from './scheduler/queue';
-import { animationFrame } from './scheduler/animationFrame';
-import { rxSubscriber } from './symbol/rxSubscriber';
-import { iterator } from './symbol/iterator';
-import { observable } from './symbol/observable';
-import * as _operators from './operators/index';
-export var operators = _operators;
-var Scheduler = {
-    asap: asap,
-    queue: queue,
-    animationFrame: animationFrame,
-    async: async
-};
-var Symbol = {
-    rxSubscriber: rxSubscriber,
-    observable: observable,
-    iterator: iterator
-};
-export { Scheduler, Symbol };
-//# sourceMappingURL=Rx.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Rx.js.map b/node_modules/rxjs/_esm5/internal/Rx.js.map
deleted file mode 100644
index ca18900..0000000
--- a/node_modules/rxjs/_esm5/internal/Rx.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rx.js","sources":["../../src/internal/Rx.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/Scheduler.js b/node_modules/rxjs/_esm5/internal/Scheduler.js
deleted file mode 100644
index 3312a44..0000000
--- a/node_modules/rxjs/_esm5/internal/Scheduler.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Scheduler = /*@__PURE__*/ (function () {
-    function Scheduler(SchedulerAction, now) {
-        if (now === void 0) {
-            now = Scheduler.now;
-        }
-        this.SchedulerAction = SchedulerAction;
-        this.now = now;
-    }
-    Scheduler.prototype.schedule = function (work, delay, state) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        return new this.SchedulerAction(this, work).schedule(state, delay);
-    };
-    Scheduler.now = function () { return Date.now(); };
-    return Scheduler;
-}());
-export { Scheduler };
-//# sourceMappingURL=Scheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Scheduler.js.map b/node_modules/rxjs/_esm5/internal/Scheduler.js.map
deleted file mode 100644
index 79dfb85..0000000
--- a/node_modules/rxjs/_esm5/internal/Scheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scheduler.js","sources":["../../src/internal/Scheduler.ts"],"names":[],"mappings":"AAuBA;IASE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,4BAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IApCa,aAAG,GAAiB,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAC;IAqCrD,gBAAC;CAAA,AA5CD,IA4CC;SA5CY,SAAS"}
diff --git a/node_modules/rxjs/_esm5/internal/Subject.js b/node_modules/rxjs/_esm5/internal/Subject.js
deleted file mode 100644
index 84c3c50..0000000
--- a/node_modules/rxjs/_esm5/internal/Subject.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Observable } from './Observable';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-var SubjectSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SubjectSubscriber, _super);
-    function SubjectSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        return _this;
-    }
-    return SubjectSubscriber;
-}(Subscriber));
-export { SubjectSubscriber };
-var Subject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(Subject, _super);
-    function Subject() {
-        var _this = _super.call(this) || this;
-        _this.observers = [];
-        _this.closed = false;
-        _this.isStopped = false;
-        _this.hasError = false;
-        _this.thrownError = null;
-        return _this;
-    }
-    Subject.prototype[rxSubscriberSymbol] = function () {
-        return new SubjectSubscriber(this);
-    };
-    Subject.prototype.lift = function (operator) {
-        var subject = new AnonymousSubject(this, this);
-        subject.operator = operator;
-        return subject;
-    };
-    Subject.prototype.next = function (value) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        if (!this.isStopped) {
-            var observers = this.observers;
-            var len = observers.length;
-            var copy = observers.slice();
-            for (var i = 0; i < len; i++) {
-                copy[i].next(value);
-            }
-        }
-    };
-    Subject.prototype.error = function (err) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        this.hasError = true;
-        this.thrownError = err;
-        this.isStopped = true;
-        var observers = this.observers;
-        var len = observers.length;
-        var copy = observers.slice();
-        for (var i = 0; i < len; i++) {
-            copy[i].error(err);
-        }
-        this.observers.length = 0;
-    };
-    Subject.prototype.complete = function () {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        this.isStopped = true;
-        var observers = this.observers;
-        var len = observers.length;
-        var copy = observers.slice();
-        for (var i = 0; i < len; i++) {
-            copy[i].complete();
-        }
-        this.observers.length = 0;
-    };
-    Subject.prototype.unsubscribe = function () {
-        this.isStopped = true;
-        this.closed = true;
-        this.observers = null;
-    };
-    Subject.prototype._trySubscribe = function (subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else {
-            return _super.prototype._trySubscribe.call(this, subscriber);
-        }
-    };
-    Subject.prototype._subscribe = function (subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError();
-        }
-        else if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription.EMPTY;
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-            return Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            return new SubjectSubscription(this, subscriber);
-        }
-    };
-    Subject.prototype.asObservable = function () {
-        var observable = new Observable();
-        observable.source = this;
-        return observable;
-    };
-    Subject.create = function (destination, source) {
-        return new AnonymousSubject(destination, source);
-    };
-    return Subject;
-}(Observable));
-export { Subject };
-var AnonymousSubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AnonymousSubject, _super);
-    function AnonymousSubject(destination, source) {
-        var _this = _super.call(this) || this;
-        _this.destination = destination;
-        _this.source = source;
-        return _this;
-    }
-    AnonymousSubject.prototype.next = function (value) {
-        var destination = this.destination;
-        if (destination && destination.next) {
-            destination.next(value);
-        }
-    };
-    AnonymousSubject.prototype.error = function (err) {
-        var destination = this.destination;
-        if (destination && destination.error) {
-            this.destination.error(err);
-        }
-    };
-    AnonymousSubject.prototype.complete = function () {
-        var destination = this.destination;
-        if (destination && destination.complete) {
-            this.destination.complete();
-        }
-    };
-    AnonymousSubject.prototype._subscribe = function (subscriber) {
-        var source = this.source;
-        if (source) {
-            return this.source.subscribe(subscriber);
-        }
-        else {
-            return Subscription.EMPTY;
-        }
-    };
-    return AnonymousSubject;
-}(Subject));
-export { AnonymousSubject };
-//# sourceMappingURL=Subject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Subject.js.map b/node_modules/rxjs/_esm5/internal/Subject.js.map
deleted file mode 100644
index 881b06e..0000000
--- a/node_modules/rxjs/_esm5/internal/Subject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js
deleted file mode 100644
index f09a2a2..0000000
--- a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscription } from './Subscription';
-var SubjectSubscription = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SubjectSubscription, _super);
-    function SubjectSubscription(subject, subscriber) {
-        var _this = _super.call(this) || this;
-        _this.subject = subject;
-        _this.subscriber = subscriber;
-        _this.closed = false;
-        return _this;
-    }
-    SubjectSubscription.prototype.unsubscribe = function () {
-        if (this.closed) {
-            return;
-        }
-        this.closed = true;
-        var subject = this.subject;
-        var observers = subject.observers;
-        this.subject = null;
-        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
-            return;
-        }
-        var subscriberIndex = observers.indexOf(this.subscriber);
-        if (subscriberIndex !== -1) {
-            observers.splice(subscriberIndex, 1);
-        }
-    };
-    return SubjectSubscription;
-}(Subscription));
-export { SubjectSubscription };
-//# sourceMappingURL=SubjectSubscription.js.map
diff --git a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map
deleted file mode 100644
index 3698894..0000000
--- a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubjectSubscription.js","sources":["../../src/internal/SubjectSubscription.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;IAA4C,+CAAY;IAGtD,6BAAmB,OAAmB,EAAS,UAAuB;QAAtE,YACE,iBAAO,SACR;QAFkB,aAAO,GAAP,OAAO,CAAY;QAAS,gBAAU,GAAV,UAAU,CAAa;QAFtE,YAAM,GAAY,KAAK,CAAC;;IAIxB,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA7BD,CAA4C,YAAY,GA6BvD"}
diff --git a/node_modules/rxjs/_esm5/internal/Subscriber.js b/node_modules/rxjs/_esm5/internal/Subscriber.js
deleted file mode 100644
index 8610093..0000000
--- a/node_modules/rxjs/_esm5/internal/Subscriber.js
+++ /dev/null
@@ -1,233 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { isFunction } from './util/isFunction';
-import { empty as emptyObserver } from './Observer';
-import { Subscription } from './Subscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-var Subscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(Subscriber, _super);
-    function Subscriber(destinationOrNext, error, complete) {
-        var _this = _super.call(this) || this;
-        _this.syncErrorValue = null;
-        _this.syncErrorThrown = false;
-        _this.syncErrorThrowable = false;
-        _this.isStopped = false;
-        switch (arguments.length) {
-            case 0:
-                _this.destination = emptyObserver;
-                break;
-            case 1:
-                if (!destinationOrNext) {
-                    _this.destination = emptyObserver;
-                    break;
-                }
-                if (typeof destinationOrNext === 'object') {
-                    if (destinationOrNext instanceof Subscriber) {
-                        _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
-                        _this.destination = destinationOrNext;
-                        destinationOrNext.add(_this);
-                    }
-                    else {
-                        _this.syncErrorThrowable = true;
-                        _this.destination = new SafeSubscriber(_this, destinationOrNext);
-                    }
-                    break;
-                }
-            default:
-                _this.syncErrorThrowable = true;
-                _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
-                break;
-        }
-        return _this;
-    }
-    Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };
-    Subscriber.create = function (next, error, complete) {
-        var subscriber = new Subscriber(next, error, complete);
-        subscriber.syncErrorThrowable = false;
-        return subscriber;
-    };
-    Subscriber.prototype.next = function (value) {
-        if (!this.isStopped) {
-            this._next(value);
-        }
-    };
-    Subscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._error(err);
-        }
-    };
-    Subscriber.prototype.complete = function () {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._complete();
-        }
-    };
-    Subscriber.prototype.unsubscribe = function () {
-        if (this.closed) {
-            return;
-        }
-        this.isStopped = true;
-        _super.prototype.unsubscribe.call(this);
-    };
-    Subscriber.prototype._next = function (value) {
-        this.destination.next(value);
-    };
-    Subscriber.prototype._error = function (err) {
-        this.destination.error(err);
-        this.unsubscribe();
-    };
-    Subscriber.prototype._complete = function () {
-        this.destination.complete();
-        this.unsubscribe();
-    };
-    Subscriber.prototype._unsubscribeAndRecycle = function () {
-        var _parentOrParents = this._parentOrParents;
-        this._parentOrParents = null;
-        this.unsubscribe();
-        this.closed = false;
-        this.isStopped = false;
-        this._parentOrParents = _parentOrParents;
-        return this;
-    };
-    return Subscriber;
-}(Subscription));
-export { Subscriber };
-var SafeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SafeSubscriber, _super);
-    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
-        var _this = _super.call(this) || this;
-        _this._parentSubscriber = _parentSubscriber;
-        var next;
-        var context = _this;
-        if (isFunction(observerOrNext)) {
-            next = observerOrNext;
-        }
-        else if (observerOrNext) {
-            next = observerOrNext.next;
-            error = observerOrNext.error;
-            complete = observerOrNext.complete;
-            if (observerOrNext !== emptyObserver) {
-                context = Object.create(observerOrNext);
-                if (isFunction(context.unsubscribe)) {
-                    _this.add(context.unsubscribe.bind(context));
-                }
-                context.unsubscribe = _this.unsubscribe.bind(_this);
-            }
-        }
-        _this._context = context;
-        _this._next = next;
-        _this._error = error;
-        _this._complete = complete;
-        return _this;
-    }
-    SafeSubscriber.prototype.next = function (value) {
-        if (!this.isStopped && this._next) {
-            var _parentSubscriber = this._parentSubscriber;
-            if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                this.__tryOrUnsub(this._next, value);
-            }
-            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var _parentSubscriber = this._parentSubscriber;
-            var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;
-            if (this._error) {
-                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(this._error, err);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, this._error, err);
-                    this.unsubscribe();
-                }
-            }
-            else if (!_parentSubscriber.syncErrorThrowable) {
-                this.unsubscribe();
-                if (useDeprecatedSynchronousErrorHandling) {
-                    throw err;
-                }
-                hostReportError(err);
-            }
-            else {
-                if (useDeprecatedSynchronousErrorHandling) {
-                    _parentSubscriber.syncErrorValue = err;
-                    _parentSubscriber.syncErrorThrown = true;
-                }
-                else {
-                    hostReportError(err);
-                }
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.complete = function () {
-        var _this = this;
-        if (!this.isStopped) {
-            var _parentSubscriber = this._parentSubscriber;
-            if (this._complete) {
-                var wrappedComplete = function () { return _this._complete.call(_this._context); };
-                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(wrappedComplete);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);
-                    this.unsubscribe();
-                }
-            }
-            else {
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            this.unsubscribe();
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                throw err;
-            }
-            else {
-                hostReportError(err);
-            }
-        }
-    };
-    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
-        if (!config.useDeprecatedSynchronousErrorHandling) {
-            throw new Error('bad call');
-        }
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                parent.syncErrorValue = err;
-                parent.syncErrorThrown = true;
-                return true;
-            }
-            else {
-                hostReportError(err);
-                return true;
-            }
-        }
-        return false;
-    };
-    SafeSubscriber.prototype._unsubscribe = function () {
-        var _parentSubscriber = this._parentSubscriber;
-        this._context = null;
-        this._parentSubscriber = null;
-        _parentSubscriber.unsubscribe();
-    };
-    return SafeSubscriber;
-}(Subscriber));
-export { SafeSubscriber };
-//# sourceMappingURL=Subscriber.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Subscriber.js.map b/node_modules/rxjs/_esm5/internal/Subscriber.js.map
deleted file mode 100644
index c2b7024..0000000
--- a/node_modules/rxjs/_esm5/internal/Subscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/Subscription.js b/node_modules/rxjs/_esm5/internal/Subscription.js
deleted file mode 100644
index a0b8e62..0000000
--- a/node_modules/rxjs/_esm5/internal/Subscription.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */
-import { isArray } from './util/isArray';
-import { isObject } from './util/isObject';
-import { isFunction } from './util/isFunction';
-import { UnsubscriptionError } from './util/UnsubscriptionError';
-var Subscription = /*@__PURE__*/ (function () {
-    function Subscription(unsubscribe) {
-        this.closed = false;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (unsubscribe) {
-            this._unsubscribe = unsubscribe;
-        }
-    }
-    Subscription.prototype.unsubscribe = function () {
-        var errors;
-        if (this.closed) {
-            return;
-        }
-        var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
-        this.closed = true;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (_parentOrParents instanceof Subscription) {
-            _parentOrParents.remove(this);
-        }
-        else if (_parentOrParents !== null) {
-            for (var index = 0; index < _parentOrParents.length; ++index) {
-                var parent_1 = _parentOrParents[index];
-                parent_1.remove(this);
-            }
-        }
-        if (isFunction(_unsubscribe)) {
-            try {
-                _unsubscribe.call(this);
-            }
-            catch (e) {
-                errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
-            }
-        }
-        if (isArray(_subscriptions)) {
-            var index = -1;
-            var len = _subscriptions.length;
-            while (++index < len) {
-                var sub = _subscriptions[index];
-                if (isObject(sub)) {
-                    try {
-                        sub.unsubscribe();
-                    }
-                    catch (e) {
-                        errors = errors || [];
-                        if (e instanceof UnsubscriptionError) {
-                            errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
-                        }
-                        else {
-                            errors.push(e);
-                        }
-                    }
-                }
-            }
-        }
-        if (errors) {
-            throw new UnsubscriptionError(errors);
-        }
-    };
-    Subscription.prototype.add = function (teardown) {
-        var subscription = teardown;
-        if (!teardown) {
-            return Subscription.EMPTY;
-        }
-        switch (typeof teardown) {
-            case 'function':
-                subscription = new Subscription(teardown);
-            case 'object':
-                if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
-                    return subscription;
-                }
-                else if (this.closed) {
-                    subscription.unsubscribe();
-                    return subscription;
-                }
-                else if (!(subscription instanceof Subscription)) {
-                    var tmp = subscription;
-                    subscription = new Subscription();
-                    subscription._subscriptions = [tmp];
-                }
-                break;
-            default: {
-                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
-            }
-        }
-        var _parentOrParents = subscription._parentOrParents;
-        if (_parentOrParents === null) {
-            subscription._parentOrParents = this;
-        }
-        else if (_parentOrParents instanceof Subscription) {
-            if (_parentOrParents === this) {
-                return subscription;
-            }
-            subscription._parentOrParents = [_parentOrParents, this];
-        }
-        else if (_parentOrParents.indexOf(this) === -1) {
-            _parentOrParents.push(this);
-        }
-        else {
-            return subscription;
-        }
-        var subscriptions = this._subscriptions;
-        if (subscriptions === null) {
-            this._subscriptions = [subscription];
-        }
-        else {
-            subscriptions.push(subscription);
-        }
-        return subscription;
-    };
-    Subscription.prototype.remove = function (subscription) {
-        var subscriptions = this._subscriptions;
-        if (subscriptions) {
-            var subscriptionIndex = subscriptions.indexOf(subscription);
-            if (subscriptionIndex !== -1) {
-                subscriptions.splice(subscriptionIndex, 1);
-            }
-        }
-    };
-    Subscription.EMPTY = (function (empty) {
-        empty.closed = true;
-        return empty;
-    }(new Subscription()));
-    return Subscription;
-}());
-export { Subscription };
-function flattenUnsubscriptionErrors(errors) {
-    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);
-}
-//# sourceMappingURL=Subscription.js.map
diff --git a/node_modules/rxjs/_esm5/internal/Subscription.js.map b/node_modules/rxjs/_esm5/internal/Subscription.js.map
deleted file mode 100644
index 9ff4261..0000000
--- a/node_modules/rxjs/_esm5/internal/Subscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/config.js b/node_modules/rxjs/_esm5/internal/config.js
deleted file mode 100644
index e998229..0000000
--- a/node_modules/rxjs/_esm5/internal/config.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var _enable_super_gross_mode_that_will_cause_bad_things = false;
-export var config = {
-    Promise: undefined,
-    set useDeprecatedSynchronousErrorHandling(value) {
-        if (value) {
-            var error = /*@__PURE__*/ new Error();
-            /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
-        }
-        else if (_enable_super_gross_mode_that_will_cause_bad_things) {
-            /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');
-        }
-        _enable_super_gross_mode_that_will_cause_bad_things = value;
-    },
-    get useDeprecatedSynchronousErrorHandling() {
-        return _enable_super_gross_mode_that_will_cause_bad_things;
-    },
-};
-//# sourceMappingURL=config.js.map
diff --git a/node_modules/rxjs/_esm5/internal/config.js.map b/node_modules/rxjs/_esm5/internal/config.js.map
deleted file mode 100644
index 21e6def..0000000
--- a/node_modules/rxjs/_esm5/internal/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMhE,MAAM,CAAC,IAAM,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js
deleted file mode 100644
index ed31911..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { SubjectSubscriber } from '../Subject';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { refCount as higherOrderRefCount } from '../operators/refCount';
-var ConnectableObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ConnectableObservable, _super);
-    function ConnectableObservable(source, subjectFactory) {
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.subjectFactory = subjectFactory;
-        _this._refCount = 0;
-        _this._isComplete = false;
-        return _this;
-    }
-    ConnectableObservable.prototype._subscribe = function (subscriber) {
-        return this.getSubject().subscribe(subscriber);
-    };
-    ConnectableObservable.prototype.getSubject = function () {
-        var subject = this._subject;
-        if (!subject || subject.isStopped) {
-            this._subject = this.subjectFactory();
-        }
-        return this._subject;
-    };
-    ConnectableObservable.prototype.connect = function () {
-        var connection = this._connection;
-        if (!connection) {
-            this._isComplete = false;
-            connection = this._connection = new Subscription();
-            connection.add(this.source
-                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
-            if (connection.closed) {
-                this._connection = null;
-                connection = Subscription.EMPTY;
-            }
-        }
-        return connection;
-    };
-    ConnectableObservable.prototype.refCount = function () {
-        return higherOrderRefCount()(this);
-    };
-    return ConnectableObservable;
-}(Observable));
-export { ConnectableObservable };
-export var connectableObservableDescriptor = /*@__PURE__*/ (function () {
-    var connectableProto = ConnectableObservable.prototype;
-    return {
-        operator: { value: null },
-        _refCount: { value: 0, writable: true },
-        _subject: { value: null, writable: true },
-        _connection: { value: null, writable: true },
-        _subscribe: { value: connectableProto._subscribe },
-        _isComplete: { value: connectableProto._isComplete, writable: true },
-        getSubject: { value: connectableProto.getSubject },
-        connect: { value: connectableProto.connect },
-        refCount: { value: connectableProto.refCount }
-    };
-})();
-var ConnectableSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ConnectableSubscriber, _super);
-    function ConnectableSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    ConnectableSubscriber.prototype._error = function (err) {
-        this._unsubscribe();
-        _super.prototype._error.call(this, err);
-    };
-    ConnectableSubscriber.prototype._complete = function () {
-        this.connectable._isComplete = true;
-        this._unsubscribe();
-        _super.prototype._complete.call(this);
-    };
-    ConnectableSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (connectable) {
-            this.connectable = null;
-            var connection = connectable._connection;
-            connectable._refCount = 0;
-            connectable._subject = null;
-            connectable._connection = null;
-            if (connection) {
-                connection.unsubscribe();
-            }
-        }
-    };
-    return ConnectableSubscriber;
-}(SubjectSubscriber));
-var RefCountOperator = /*@__PURE__*/ (function () {
-    function RefCountOperator(connectable) {
-        this.connectable = connectable;
-    }
-    RefCountOperator.prototype.call = function (subscriber, source) {
-        var connectable = this.connectable;
-        connectable._refCount++;
-        var refCounter = new RefCountSubscriber(subscriber, connectable);
-        var subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    };
-    return RefCountOperator;
-}());
-var RefCountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RefCountSubscriber, _super);
-    function RefCountSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    RefCountSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        var refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        var connection = this.connection;
-        var sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    };
-    return RefCountSubscriber;
-}(Subscriber));
-//# sourceMappingURL=ConnectableObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map
deleted file mode 100644
index 44b1ecc..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ConnectableObservable.js","sources":["../../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js
deleted file mode 100644
index c4ef848..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Observable } from '../Observable';
-import { asap } from '../scheduler/asap';
-import { isNumeric } from '../util/isNumeric';
-var SubscribeOnObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SubscribeOnObservable, _super);
-    function SubscribeOnObservable(source, delayTime, scheduler) {
-        if (delayTime === void 0) {
-            delayTime = 0;
-        }
-        if (scheduler === void 0) {
-            scheduler = asap;
-        }
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.delayTime = delayTime;
-        _this.scheduler = scheduler;
-        if (!isNumeric(delayTime) || delayTime < 0) {
-            _this.delayTime = 0;
-        }
-        if (!scheduler || typeof scheduler.schedule !== 'function') {
-            _this.scheduler = asap;
-        }
-        return _this;
-    }
-    SubscribeOnObservable.create = function (source, delay, scheduler) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (scheduler === void 0) {
-            scheduler = asap;
-        }
-        return new SubscribeOnObservable(source, delay, scheduler);
-    };
-    SubscribeOnObservable.dispatch = function (arg) {
-        var source = arg.source, subscriber = arg.subscriber;
-        return this.add(source.subscribe(subscriber));
-    };
-    SubscribeOnObservable.prototype._subscribe = function (subscriber) {
-        var delay = this.delayTime;
-        var source = this.source;
-        var scheduler = this.scheduler;
-        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {
-            source: source, subscriber: subscriber
-        });
-    };
-    return SubscribeOnObservable;
-}(Observable));
-export { SubscribeOnObservable };
-//# sourceMappingURL=SubscribeOnObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map
deleted file mode 100644
index 6092bee..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscribeOnObservable.js","sources":["../../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C;IAA8C,iDAAa;IAYzD,+BAAmB,MAAqB,EACpB,SAAqB,EACrB,SAA+B;QAD/B,0BAAA,EAAA,aAAqB;QACrB,0BAAA,EAAA,gBAA+B;QAFnD,YAGE,iBAAO,SAOR;QAVkB,YAAM,GAAN,MAAM,CAAe;QACpB,eAAS,GAAT,SAAS,CAAY;QACrB,eAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;;IACH,CAAC;IApBM,4BAAM,GAAb,UAAiB,MAAqB,EAAE,KAAiB,EAAE,SAA+B;QAAlD,sBAAA,EAAA,SAAiB;QAAE,0BAAA,EAAA,gBAA+B;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGM,8BAAQ,GAAf,UAA6C,GAAmB;QACtD,IAAA,mBAAM,EAAE,2BAAU,CAAS;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,0CAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,QAAA,EAAE,UAAU,YAAA;SACnB,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAlCD,CAA8C,UAAU,GAkCvD"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js
deleted file mode 100644
index ee5e68a..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isArray } from '../util/isArray';
-import { isScheduler } from '../util/isScheduler';
-export function bindCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return function () {
-                var args = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    args[_i] = arguments[_i];
-                }
-                return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-            };
-        }
-    }
-    return function () {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        var context = this;
-        var subject;
-        var params = {
-            context: context,
-            subject: subject,
-            callbackFunc: callbackFunc,
-            scheduler: scheduler,
-        };
-        return new Observable(function (subscriber) {
-            if (!scheduler) {
-                if (!subject) {
-                    subject = new AsyncSubject();
-                    var handler = function () {
-                        var innerArgs = [];
-                        for (var _i = 0; _i < arguments.length; _i++) {
-                            innerArgs[_i] = arguments[_i];
-                        }
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, args.concat([handler]));
-                    }
-                    catch (err) {
-                        if (canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                var state = {
-                    args: args, subscriber: subscriber, params: params,
-                };
-                return scheduler.schedule(dispatch, 0, state);
-            }
-        });
-    };
-}
-function dispatch(state) {
-    var _this = this;
-    var self = this;
-    var args = state.args, subscriber = state.subscriber, params = state.params;
-    var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;
-    var subject = params.subject;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject();
-        var handler = function () {
-            var innerArgs = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                innerArgs[_i] = arguments[_i];
-            }
-            var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-            _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
-        };
-        try {
-            callbackFunc.apply(context, args.concat([handler]));
-        }
-        catch (err) {
-            subject.error(err);
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(state) {
-    var value = state.value, subject = state.subject;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(state) {
-    var err = state.err, subject = state.subject;
-    subject.error(err);
-}
-//# sourceMappingURL=bindCallback.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map
deleted file mode 100644
index f516e14..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js
deleted file mode 100644
index 5d8c4ca..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isScheduler } from '../util/isScheduler';
-import { isArray } from '../util/isArray';
-export function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return function () {
-                var args = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    args[_i] = arguments[_i];
-                }
-                return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-            };
-        }
-    }
-    return function () {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        var params = {
-            subject: undefined,
-            args: args,
-            callbackFunc: callbackFunc,
-            scheduler: scheduler,
-            context: this,
-        };
-        return new Observable(function (subscriber) {
-            var context = params.context;
-            var subject = params.subject;
-            if (!scheduler) {
-                if (!subject) {
-                    subject = params.subject = new AsyncSubject();
-                    var handler = function () {
-                        var innerArgs = [];
-                        for (var _i = 0; _i < arguments.length; _i++) {
-                            innerArgs[_i] = arguments[_i];
-                        }
-                        var err = innerArgs.shift();
-                        if (err) {
-                            subject.error(err);
-                            return;
-                        }
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, args.concat([handler]));
-                    }
-                    catch (err) {
-                        if (canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });
-            }
-        });
-    };
-}
-function dispatch(state) {
-    var _this = this;
-    var params = state.params, subscriber = state.subscriber, context = state.context;
-    var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
-    var subject = params.subject;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject();
-        var handler = function () {
-            var innerArgs = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                innerArgs[_i] = arguments[_i];
-            }
-            var err = innerArgs.shift();
-            if (err) {
-                _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
-            }
-            else {
-                var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-                _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
-            }
-        };
-        try {
-            callbackFunc.apply(context, args.concat([handler]));
-        }
-        catch (err) {
-            this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(arg) {
-    var value = arg.value, subject = arg.subject;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(arg) {
-    var err = arg.err, subject = arg.subject;
-    subject.error(err);
-}
-//# sourceMappingURL=bindNodeCallback.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map
deleted file mode 100644
index ffa674c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js
deleted file mode 100644
index 8cdbe27..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { isScheduler } from '../util/isScheduler';
-import { isArray } from '../util/isArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { fromArray } from './fromArray';
-var NONE = {};
-export function combineLatest() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var resultSelector = null;
-    var scheduler = null;
-    if (isScheduler(observables[observables.length - 1])) {
-        scheduler = observables.pop();
-    }
-    if (typeof observables[observables.length - 1] === 'function') {
-        resultSelector = observables.pop();
-    }
-    if (observables.length === 1 && isArray(observables[0])) {
-        observables = observables[0];
-    }
-    return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
-}
-var CombineLatestOperator = /*@__PURE__*/ (function () {
-    function CombineLatestOperator(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    CombineLatestOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
-    };
-    return CombineLatestOperator;
-}());
-export { CombineLatestOperator };
-var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(CombineLatestSubscriber, _super);
-    function CombineLatestSubscriber(destination, resultSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.resultSelector = resultSelector;
-        _this.active = 0;
-        _this.values = [];
-        _this.observables = [];
-        return _this;
-    }
-    CombineLatestSubscriber.prototype._next = function (observable) {
-        this.values.push(NONE);
-        this.observables.push(observable);
-    };
-    CombineLatestSubscriber.prototype._complete = function () {
-        var observables = this.observables;
-        var len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            this.active = len;
-            this.toRespond = len;
-            for (var i = 0; i < len; i++) {
-                var observable = observables[i];
-                this.add(subscribeToResult(this, observable, observable, i));
-            }
-        }
-    };
-    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {
-        if ((this.active -= 1) === 0) {
-            this.destination.complete();
-        }
-    };
-    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var values = this.values;
-        var oldVal = values[outerIndex];
-        var toRespond = !this.toRespond
-            ? 0
-            : oldVal === NONE ? --this.toRespond : this.toRespond;
-        values[outerIndex] = innerValue;
-        if (toRespond === 0) {
-            if (this.resultSelector) {
-                this._tryResultSelector(values);
-            }
-            else {
-                this.destination.next(values.slice());
-            }
-        }
-    };
-    CombineLatestSubscriber.prototype._tryResultSelector = function (values) {
-        var result;
-        try {
-            result = this.resultSelector.apply(this, values);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return CombineLatestSubscriber;
-}(OuterSubscriber));
-export { CombineLatestSubscriber };
-//# sourceMappingURL=combineLatest.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map
deleted file mode 100644
index 4c2e2de..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/concat.js b/node_modules/rxjs/_esm5/internal/observable/concat.js
deleted file mode 100644
index 4c08930..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/concat.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */
-import { of } from './of';
-import { concatAll } from '../operators/concatAll';
-export function concat() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return concatAll()(of.apply(void 0, observables));
-}
-//# sourceMappingURL=concat.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/concat.js.map b/node_modules/rxjs/_esm5/internal/observable/concat.js.map
deleted file mode 100644
index f963a9a..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../../src/internal/observable/concat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA2InD,MAAM,UAAU,MAAM;IAAoC,qBAAwC;SAAxC,UAAwC,EAAxC,qBAAwC,EAAxC,IAAwC;QAAxC,gCAAwC;;IAChG,OAAO,SAAS,EAAK,CAAC,EAAE,eAAI,WAAW,EAAE,CAAC;AAC5C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/defer.js b/node_modules/rxjs/_esm5/internal/observable/defer.js
deleted file mode 100644
index d4cc24a..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/defer.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { from } from './from';
-import { empty } from './empty';
-export function defer(observableFactory) {
-    return new Observable(function (subscriber) {
-        var input;
-        try {
-            input = observableFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var source = input ? from(input) : empty();
-        return source.subscribe(subscriber);
-    });
-}
-//# sourceMappingURL=defer.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/defer.js.map b/node_modules/rxjs/_esm5/internal/observable/defer.js.map
deleted file mode 100644
index 07ea88c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/defer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defer.js","sources":["../../../src/internal/observable/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAmDhC,MAAM,UAAU,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,UAAU,CAAqB,UAAA,UAAU;QAClD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js
deleted file mode 100644
index 6cc88b5..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js
+++ /dev/null
@@ -1,374 +0,0 @@
-/** PURE_IMPORTS_START tslib,_.._util_root,_.._Observable,_.._Subscriber,_.._operators_map PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { root } from '../../util/root';
-import { Observable } from '../../Observable';
-import { Subscriber } from '../../Subscriber';
-import { map } from '../../operators/map';
-function getCORSRequest() {
-    if (root.XMLHttpRequest) {
-        return new root.XMLHttpRequest();
-    }
-    else if (!!root.XDomainRequest) {
-        return new root.XDomainRequest();
-    }
-    else {
-        throw new Error('CORS is not supported by your browser');
-    }
-}
-function getXMLHttpRequest() {
-    if (root.XMLHttpRequest) {
-        return new root.XMLHttpRequest();
-    }
-    else {
-        var progId = void 0;
-        try {
-            var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-            for (var i = 0; i < 3; i++) {
-                try {
-                    progId = progIds[i];
-                    if (new root.ActiveXObject(progId)) {
-                        break;
-                    }
-                }
-                catch (e) {
-                }
-            }
-            return new root.ActiveXObject(progId);
-        }
-        catch (e) {
-            throw new Error('XMLHttpRequest is not supported by your browser');
-        }
-    }
-}
-export function ajaxGet(url, headers) {
-    if (headers === void 0) {
-        headers = null;
-    }
-    return new AjaxObservable({ method: 'GET', url: url, headers: headers });
-}
-export function ajaxPost(url, body, headers) {
-    return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });
-}
-export function ajaxDelete(url, headers) {
-    return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });
-}
-export function ajaxPut(url, body, headers) {
-    return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });
-}
-export function ajaxPatch(url, body, headers) {
-    return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });
-}
-var mapResponse = /*@__PURE__*/ map(function (x, index) { return x.response; });
-export function ajaxGetJSON(url, headers) {
-    return mapResponse(new AjaxObservable({
-        method: 'GET',
-        url: url,
-        responseType: 'json',
-        headers: headers
-    }));
-}
-var AjaxObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AjaxObservable, _super);
-    function AjaxObservable(urlOrRequest) {
-        var _this = _super.call(this) || this;
-        var request = {
-            async: true,
-            createXHR: function () {
-                return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();
-            },
-            crossDomain: true,
-            withCredentials: false,
-            headers: {},
-            method: 'GET',
-            responseType: 'json',
-            timeout: 0
-        };
-        if (typeof urlOrRequest === 'string') {
-            request.url = urlOrRequest;
-        }
-        else {
-            for (var prop in urlOrRequest) {
-                if (urlOrRequest.hasOwnProperty(prop)) {
-                    request[prop] = urlOrRequest[prop];
-                }
-            }
-        }
-        _this.request = request;
-        return _this;
-    }
-    AjaxObservable.prototype._subscribe = function (subscriber) {
-        return new AjaxSubscriber(subscriber, this.request);
-    };
-    AjaxObservable.create = (function () {
-        var create = function (urlOrRequest) {
-            return new AjaxObservable(urlOrRequest);
-        };
-        create.get = ajaxGet;
-        create.post = ajaxPost;
-        create.delete = ajaxDelete;
-        create.put = ajaxPut;
-        create.patch = ajaxPatch;
-        create.getJSON = ajaxGetJSON;
-        return create;
-    })();
-    return AjaxObservable;
-}(Observable));
-export { AjaxObservable };
-var AjaxSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AjaxSubscriber, _super);
-    function AjaxSubscriber(destination, request) {
-        var _this = _super.call(this, destination) || this;
-        _this.request = request;
-        _this.done = false;
-        var headers = request.headers = request.headers || {};
-        if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {
-            headers['X-Requested-With'] = 'XMLHttpRequest';
-        }
-        var contentTypeHeader = _this.getHeader(headers, 'Content-Type');
-        if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {
-            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
-        }
-        request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));
-        _this.send();
-        return _this;
-    }
-    AjaxSubscriber.prototype.next = function (e) {
-        this.done = true;
-        var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;
-        var result;
-        try {
-            result = new AjaxResponse(e, xhr, request);
-        }
-        catch (err) {
-            return destination.error(err);
-        }
-        destination.next(result);
-    };
-    AjaxSubscriber.prototype.send = function () {
-        var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;
-        try {
-            var xhr = this.xhr = request.createXHR();
-            this.setupEvents(xhr, request);
-            if (user) {
-                xhr.open(method, url, async, user, password);
-            }
-            else {
-                xhr.open(method, url, async);
-            }
-            if (async) {
-                xhr.timeout = request.timeout;
-                xhr.responseType = request.responseType;
-            }
-            if ('withCredentials' in xhr) {
-                xhr.withCredentials = !!request.withCredentials;
-            }
-            this.setHeaders(xhr, headers);
-            if (body) {
-                xhr.send(body);
-            }
-            else {
-                xhr.send();
-            }
-        }
-        catch (err) {
-            this.error(err);
-        }
-    };
-    AjaxSubscriber.prototype.serializeBody = function (body, contentType) {
-        if (!body || typeof body === 'string') {
-            return body;
-        }
-        else if (root.FormData && body instanceof root.FormData) {
-            return body;
-        }
-        if (contentType) {
-            var splitIndex = contentType.indexOf(';');
-            if (splitIndex !== -1) {
-                contentType = contentType.substring(0, splitIndex);
-            }
-        }
-        switch (contentType) {
-            case 'application/x-www-form-urlencoded':
-                return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&');
-            case 'application/json':
-                return JSON.stringify(body);
-            default:
-                return body;
-        }
-    };
-    AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {
-        for (var key in headers) {
-            if (headers.hasOwnProperty(key)) {
-                xhr.setRequestHeader(key, headers[key]);
-            }
-        }
-    };
-    AjaxSubscriber.prototype.getHeader = function (headers, headerName) {
-        for (var key in headers) {
-            if (key.toLowerCase() === headerName.toLowerCase()) {
-                return headers[key];
-            }
-        }
-        return undefined;
-    };
-    AjaxSubscriber.prototype.setupEvents = function (xhr, request) {
-        var progressSubscriber = request.progressSubscriber;
-        function xhrTimeout(e) {
-            var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-            if (progressSubscriber) {
-                progressSubscriber.error(e);
-            }
-            var error;
-            try {
-                error = new AjaxTimeoutError(this, request);
-            }
-            catch (err) {
-                error = err;
-            }
-            subscriber.error(error);
-        }
-        xhr.ontimeout = xhrTimeout;
-        xhrTimeout.request = request;
-        xhrTimeout.subscriber = this;
-        xhrTimeout.progressSubscriber = progressSubscriber;
-        if (xhr.upload && 'withCredentials' in xhr) {
-            if (progressSubscriber) {
-                var xhrProgress_1;
-                xhrProgress_1 = function (e) {
-                    var progressSubscriber = xhrProgress_1.progressSubscriber;
-                    progressSubscriber.next(e);
-                };
-                if (root.XDomainRequest) {
-                    xhr.onprogress = xhrProgress_1;
-                }
-                else {
-                    xhr.upload.onprogress = xhrProgress_1;
-                }
-                xhrProgress_1.progressSubscriber = progressSubscriber;
-            }
-            var xhrError_1;
-            xhrError_1 = function (e) {
-                var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;
-                if (progressSubscriber) {
-                    progressSubscriber.error(e);
-                }
-                var error;
-                try {
-                    error = new AjaxError('ajax error', this, request);
-                }
-                catch (err) {
-                    error = err;
-                }
-                subscriber.error(error);
-            };
-            xhr.onerror = xhrError_1;
-            xhrError_1.request = request;
-            xhrError_1.subscriber = this;
-            xhrError_1.progressSubscriber = progressSubscriber;
-        }
-        function xhrReadyStateChange(e) {
-            return;
-        }
-        xhr.onreadystatechange = xhrReadyStateChange;
-        xhrReadyStateChange.subscriber = this;
-        xhrReadyStateChange.progressSubscriber = progressSubscriber;
-        xhrReadyStateChange.request = request;
-        function xhrLoad(e) {
-            var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-            if (this.readyState === 4) {
-                var status_1 = this.status === 1223 ? 204 : this.status;
-                var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);
-                if (status_1 === 0) {
-                    status_1 = response ? 200 : 0;
-                }
-                if (status_1 < 400) {
-                    if (progressSubscriber) {
-                        progressSubscriber.complete();
-                    }
-                    subscriber.next(e);
-                    subscriber.complete();
-                }
-                else {
-                    if (progressSubscriber) {
-                        progressSubscriber.error(e);
-                    }
-                    var error = void 0;
-                    try {
-                        error = new AjaxError('ajax error ' + status_1, this, request);
-                    }
-                    catch (err) {
-                        error = err;
-                    }
-                    subscriber.error(error);
-                }
-            }
-        }
-        xhr.onload = xhrLoad;
-        xhrLoad.subscriber = this;
-        xhrLoad.progressSubscriber = progressSubscriber;
-        xhrLoad.request = request;
-    };
-    AjaxSubscriber.prototype.unsubscribe = function () {
-        var _a = this, done = _a.done, xhr = _a.xhr;
-        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {
-            xhr.abort();
-        }
-        _super.prototype.unsubscribe.call(this);
-    };
-    return AjaxSubscriber;
-}(Subscriber));
-export { AjaxSubscriber };
-var AjaxResponse = /*@__PURE__*/ (function () {
-    function AjaxResponse(originalEvent, xhr, request) {
-        this.originalEvent = originalEvent;
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-    }
-    return AjaxResponse;
-}());
-export { AjaxResponse };
-var AjaxErrorImpl = /*@__PURE__*/ (function () {
-    function AjaxErrorImpl(message, xhr, request) {
-        Error.call(this);
-        this.message = message;
-        this.name = 'AjaxError';
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-        return this;
-    }
-    AjaxErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return AjaxErrorImpl;
-})();
-export var AjaxError = AjaxErrorImpl;
-function parseJson(xhr) {
-    if ('response' in xhr) {
-        return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');
-    }
-    else {
-        return JSON.parse(xhr.responseText || 'null');
-    }
-}
-function parseXhrResponse(responseType, xhr) {
-    switch (responseType) {
-        case 'json':
-            return parseJson(xhr);
-        case 'xml':
-            return xhr.responseXML;
-        case 'text':
-        default:
-            return ('response' in xhr) ? xhr.response : xhr.responseText;
-    }
-}
-function AjaxTimeoutErrorImpl(xhr, request) {
-    AjaxError.call(this, 'ajax timeout', xhr, request);
-    this.name = 'AjaxTimeoutError';
-    return this;
-}
-export var AjaxTimeoutError = AjaxTimeoutErrorImpl;
-//# sourceMappingURL=AjaxObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map
deleted file mode 100644
index a5517c6..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AjaxObservable.js","sources":["../../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js
deleted file mode 100644
index 136c863..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/** PURE_IMPORTS_START tslib,_.._Subject,_.._Subscriber,_.._Observable,_.._Subscription,_.._ReplaySubject PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject, AnonymousSubject } from '../../Subject';
-import { Subscriber } from '../../Subscriber';
-import { Observable } from '../../Observable';
-import { Subscription } from '../../Subscription';
-import { ReplaySubject } from '../../ReplaySubject';
-var DEFAULT_WEBSOCKET_CONFIG = {
-    url: '',
-    deserializer: function (e) { return JSON.parse(e.data); },
-    serializer: function (value) { return JSON.stringify(value); },
-};
-var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
-var WebSocketSubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WebSocketSubject, _super);
-    function WebSocketSubject(urlConfigOrSource, destination) {
-        var _this = _super.call(this) || this;
-        if (urlConfigOrSource instanceof Observable) {
-            _this.destination = destination;
-            _this.source = urlConfigOrSource;
-        }
-        else {
-            var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);
-            _this._output = new Subject();
-            if (typeof urlConfigOrSource === 'string') {
-                config.url = urlConfigOrSource;
-            }
-            else {
-                for (var key in urlConfigOrSource) {
-                    if (urlConfigOrSource.hasOwnProperty(key)) {
-                        config[key] = urlConfigOrSource[key];
-                    }
-                }
-            }
-            if (!config.WebSocketCtor && WebSocket) {
-                config.WebSocketCtor = WebSocket;
-            }
-            else if (!config.WebSocketCtor) {
-                throw new Error('no WebSocket constructor can be found');
-            }
-            _this.destination = new ReplaySubject();
-        }
-        return _this;
-    }
-    WebSocketSubject.prototype.lift = function (operator) {
-        var sock = new WebSocketSubject(this._config, this.destination);
-        sock.operator = operator;
-        sock.source = this;
-        return sock;
-    };
-    WebSocketSubject.prototype._resetState = function () {
-        this._socket = null;
-        if (!this.source) {
-            this.destination = new ReplaySubject();
-        }
-        this._output = new Subject();
-    };
-    WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {
-        var self = this;
-        return new Observable(function (observer) {
-            try {
-                self.next(subMsg());
-            }
-            catch (err) {
-                observer.error(err);
-            }
-            var subscription = self.subscribe(function (x) {
-                try {
-                    if (messageFilter(x)) {
-                        observer.next(x);
-                    }
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-            }, function (err) { return observer.error(err); }, function () { return observer.complete(); });
-            return function () {
-                try {
-                    self.next(unsubMsg());
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-                subscription.unsubscribe();
-            };
-        });
-    };
-    WebSocketSubject.prototype._connectSocket = function () {
-        var _this = this;
-        var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;
-        var observer = this._output;
-        var socket = null;
-        try {
-            socket = protocol ?
-                new WebSocketCtor(url, protocol) :
-                new WebSocketCtor(url);
-            this._socket = socket;
-            if (binaryType) {
-                this._socket.binaryType = binaryType;
-            }
-        }
-        catch (e) {
-            observer.error(e);
-            return;
-        }
-        var subscription = new Subscription(function () {
-            _this._socket = null;
-            if (socket && socket.readyState === 1) {
-                socket.close();
-            }
-        });
-        socket.onopen = function (e) {
-            var _socket = _this._socket;
-            if (!_socket) {
-                socket.close();
-                _this._resetState();
-                return;
-            }
-            var openObserver = _this._config.openObserver;
-            if (openObserver) {
-                openObserver.next(e);
-            }
-            var queue = _this.destination;
-            _this.destination = Subscriber.create(function (x) {
-                if (socket.readyState === 1) {
-                    try {
-                        var serializer = _this._config.serializer;
-                        socket.send(serializer(x));
-                    }
-                    catch (e) {
-                        _this.destination.error(e);
-                    }
-                }
-            }, function (e) {
-                var closingObserver = _this._config.closingObserver;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                if (e && e.code) {
-                    socket.close(e.code, e.reason);
-                }
-                else {
-                    observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
-                }
-                _this._resetState();
-            }, function () {
-                var closingObserver = _this._config.closingObserver;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                socket.close();
-                _this._resetState();
-            });
-            if (queue && queue instanceof ReplaySubject) {
-                subscription.add(queue.subscribe(_this.destination));
-            }
-        };
-        socket.onerror = function (e) {
-            _this._resetState();
-            observer.error(e);
-        };
-        socket.onclose = function (e) {
-            _this._resetState();
-            var closeObserver = _this._config.closeObserver;
-            if (closeObserver) {
-                closeObserver.next(e);
-            }
-            if (e.wasClean) {
-                observer.complete();
-            }
-            else {
-                observer.error(e);
-            }
-        };
-        socket.onmessage = function (e) {
-            try {
-                var deserializer = _this._config.deserializer;
-                observer.next(deserializer(e));
-            }
-            catch (err) {
-                observer.error(err);
-            }
-        };
-    };
-    WebSocketSubject.prototype._subscribe = function (subscriber) {
-        var _this = this;
-        var source = this.source;
-        if (source) {
-            return source.subscribe(subscriber);
-        }
-        if (!this._socket) {
-            this._connectSocket();
-        }
-        this._output.subscribe(subscriber);
-        subscriber.add(function () {
-            var _socket = _this._socket;
-            if (_this._output.observers.length === 0) {
-                if (_socket && _socket.readyState === 1) {
-                    _socket.close();
-                }
-                _this._resetState();
-            }
-        });
-        return subscriber;
-    };
-    WebSocketSubject.prototype.unsubscribe = function () {
-        var _socket = this._socket;
-        if (_socket && _socket.readyState === 1) {
-            _socket.close();
-        }
-        this._resetState();
-        _super.prototype.unsubscribe.call(this);
-    };
-    return WebSocketSubject;
-}(AnonymousSubject));
-export { WebSocketSubject };
-//# sourceMappingURL=WebSocketSubject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map
deleted file mode 100644
index 6c1c1d5..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WebSocketSubject.js","sources":["../../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js
deleted file mode 100644
index 86ee518..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** PURE_IMPORTS_START _AjaxObservable PURE_IMPORTS_END */
-import { AjaxObservable } from './AjaxObservable';
-export var ajax = /*@__PURE__*/ (function () { return AjaxObservable.create; })();
-//# sourceMappingURL=ajax.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map
deleted file mode 100644
index d2ee88d..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajax.js","sources":["../../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAiFxE,MAAM,CAAC,IAAM,IAAI,GAAuB,CAAC,cAAM,OAAA,cAAc,CAAC,MAAM,EAArB,CAAqB,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js
deleted file mode 100644
index 6decb81..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/** PURE_IMPORTS_START tslib,_.._Observable PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Observable } from '../../Observable';
-export function fromFetch(input, init) {
-    return new Observable(function (subscriber) {
-        var controller = new AbortController();
-        var signal = controller.signal;
-        var outerSignalHandler;
-        var abortable = true;
-        var unsubscribed = false;
-        if (init) {
-            if (init.signal) {
-                if (init.signal.aborted) {
-                    controller.abort();
-                }
-                else {
-                    outerSignalHandler = function () {
-                        if (!signal.aborted) {
-                            controller.abort();
-                        }
-                    };
-                    init.signal.addEventListener('abort', outerSignalHandler);
-                }
-            }
-            init = tslib_1.__assign({}, init, { signal: signal });
-        }
-        else {
-            init = { signal: signal };
-        }
-        fetch(input, init).then(function (response) {
-            abortable = false;
-            subscriber.next(response);
-            subscriber.complete();
-        }).catch(function (err) {
-            abortable = false;
-            if (!unsubscribed) {
-                subscriber.error(err);
-            }
-        });
-        return function () {
-            unsubscribed = true;
-            if (abortable) {
-                controller.abort();
-            }
-        };
-    });
-}
-//# sourceMappingURL=fetch.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map
deleted file mode 100644
index ca00fae..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fetch.js","sources":["../../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoD9C,MAAM,UAAU,SAAS,CAAC,KAAuB,EAAE,IAAkB;IACnE,OAAO,IAAI,UAAU,CAAW,UAAA,UAAU;QACxC,IAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,kBAA8B,CAAC;QACnC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,kBAAkB,GAAG;wBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;iBAC3D;aACF;YACD,IAAI,wBAAQ,IAAI,IAAE,MAAM,QAAA,GAAE,CAAC;SAC5B;aAAM;YACL,IAAI,GAAG,EAAE,MAAM,QAAA,EAAE,CAAC;SACnB;QAED,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ;YAC9B,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG;YACV,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js
deleted file mode 100644
index f5dbcaa..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _WebSocketSubject PURE_IMPORTS_END */
-import { WebSocketSubject } from './WebSocketSubject';
-export function webSocket(urlConfigOrSource) {
-    return new WebSocketSubject(urlConfigOrSource);
-}
-//# sourceMappingURL=webSocket.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map
deleted file mode 100644
index 821e4e6..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"webSocket.js","sources":["../../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAyJ9E,MAAM,UAAU,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,gBAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/empty.js b/node_modules/rxjs/_esm5/internal/observable/empty.js
deleted file mode 100644
index 1c4b0c7..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/empty.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-export var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });
-export function empty(scheduler) {
-    return scheduler ? emptyScheduled(scheduler) : EMPTY;
-}
-function emptyScheduled(scheduler) {
-    return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
-}
-//# sourceMappingURL=empty.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/empty.js.map b/node_modules/rxjs/_esm5/internal/observable/empty.js.map
deleted file mode 100644
index 567e87c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/empty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"empty.js","sources":["../../../src/internal/observable/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC;AAsDhF,MAAM,UAAU,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,UAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,EAA/C,CAA+C,CAAC,CAAC;AAC9F,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js
deleted file mode 100644
index 5c38fe7..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { map } from '../operators/map';
-import { isObject } from '../util/isObject';
-import { from } from './from';
-export function forkJoin() {
-    var sources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        sources[_i] = arguments[_i];
-    }
-    if (sources.length === 1) {
-        var first_1 = sources[0];
-        if (isArray(first_1)) {
-            return forkJoinInternal(first_1, null);
-        }
-        if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {
-            var keys = Object.keys(first_1);
-            return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);
-        }
-    }
-    if (typeof sources[sources.length - 1] === 'function') {
-        var resultSelector_1 = sources.pop();
-        sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;
-        return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));
-    }
-    return forkJoinInternal(sources, null);
-}
-function forkJoinInternal(sources, keys) {
-    return new Observable(function (subscriber) {
-        var len = sources.length;
-        if (len === 0) {
-            subscriber.complete();
-            return;
-        }
-        var values = new Array(len);
-        var completed = 0;
-        var emitted = 0;
-        var _loop_1 = function (i) {
-            var source = from(sources[i]);
-            var hasValue = false;
-            subscriber.add(source.subscribe({
-                next: function (value) {
-                    if (!hasValue) {
-                        hasValue = true;
-                        emitted++;
-                    }
-                    values[i] = value;
-                },
-                error: function (err) { return subscriber.error(err); },
-                complete: function () {
-                    completed++;
-                    if (completed === len || !hasValue) {
-                        if (emitted === len) {
-                            subscriber.next(keys ?
-                                keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :
-                                values);
-                        }
-                        subscriber.complete();
-                    }
-                }
-            }));
-        };
-        for (var i = 0; i < len; i++) {
-            _loop_1(i);
-        }
-    });
-}
-//# sourceMappingURL=forkJoin.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map
deleted file mode 100644
index e175ee5..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forkJoin.js","sources":["../../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/from.js b/node_modules/rxjs/_esm5/internal/observable/from.js
deleted file mode 100644
index 453c25e..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/from.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { subscribeTo } from '../util/subscribeTo';
-import { scheduled } from '../scheduled/scheduled';
-export function from(input, scheduler) {
-    if (!scheduler) {
-        if (input instanceof Observable) {
-            return input;
-        }
-        return new Observable(subscribeTo(input));
-    }
-    else {
-        return scheduled(input, scheduler);
-    }
-}
-//# sourceMappingURL=from.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/from.js.map b/node_modules/rxjs/_esm5/internal/observable/from.js.map
deleted file mode 100644
index d0b7a0a..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/from.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"from.js","sources":["../../../src/internal/observable/from.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAyGnD,MAAM,UAAU,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,UAAU,CAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromArray.js b/node_modules/rxjs/_esm5/internal/observable/fromArray.js
deleted file mode 100644
index 587cb72..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromArray.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { subscribeToArray } from '../util/subscribeToArray';
-import { scheduleArray } from '../scheduled/scheduleArray';
-export function fromArray(input, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscribeToArray(input));
-    }
-    else {
-        return scheduleArray(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromArray.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map b/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map
deleted file mode 100644
index 55af2ba..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromArray.js","sources":["../../../src/internal/observable/fromArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js
deleted file mode 100644
index 0c52458..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { map } from '../operators/map';
-var toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })();
-export function fromEvent(target, eventName, options, resultSelector) {
-    if (isFunction(options)) {
-        resultSelector = options;
-        options = undefined;
-    }
-    if (resultSelector) {
-        return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-    }
-    return new Observable(function (subscriber) {
-        function handler(e) {
-            if (arguments.length > 1) {
-                subscriber.next(Array.prototype.slice.call(arguments));
-            }
-            else {
-                subscriber.next(e);
-            }
-        }
-        setupSubscription(target, eventName, handler, subscriber, options);
-    });
-}
-function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
-    var unsubscribe;
-    if (isEventTarget(sourceObj)) {
-        var source_1 = sourceObj;
-        sourceObj.addEventListener(eventName, handler, options);
-        unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };
-    }
-    else if (isJQueryStyleEventEmitter(sourceObj)) {
-        var source_2 = sourceObj;
-        sourceObj.on(eventName, handler);
-        unsubscribe = function () { return source_2.off(eventName, handler); };
-    }
-    else if (isNodeStyleEventEmitter(sourceObj)) {
-        var source_3 = sourceObj;
-        sourceObj.addListener(eventName, handler);
-        unsubscribe = function () { return source_3.removeListener(eventName, handler); };
-    }
-    else if (sourceObj && sourceObj.length) {
-        for (var i = 0, len = sourceObj.length; i < len; i++) {
-            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
-        }
-    }
-    else {
-        throw new TypeError('Invalid event target');
-    }
-    subscriber.add(unsubscribe);
-}
-function isNodeStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
-}
-function isJQueryStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
-}
-function isEventTarget(sourceObj) {
-    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
-}
-//# sourceMappingURL=fromEvent.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map
deleted file mode 100644
index 55aa18e..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEvent.js","sources":["../../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js
deleted file mode 100644
index 9c40ae6..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { map } from '../operators/map';
-export function fromEventPattern(addHandler, removeHandler, resultSelector) {
-    if (resultSelector) {
-        return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-    }
-    return new Observable(function (subscriber) {
-        var handler = function () {
-            var e = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                e[_i] = arguments[_i];
-            }
-            return subscriber.next(e.length === 1 ? e[0] : e);
-        };
-        var retValue;
-        try {
-            retValue = addHandler(handler);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!isFunction(removeHandler)) {
-            return undefined;
-        }
-        return function () { return removeHandler(handler, retValue); };
-    });
-}
-//# sourceMappingURL=fromEventPattern.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map
deleted file mode 100644
index fc758c1..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEventPattern.js","sources":["../../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAwIvC,MAAM,UAAU,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,eAAI,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAA9D,CAA8D,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,UAAU,CAAU,UAAA,UAAU;QACvC,IAAM,OAAO,GAAG;YAAC,WAAS;iBAAT,UAAS,EAAT,qBAAS,EAAT,IAAS;gBAAT,sBAAS;;YAAK,OAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAA1C,CAA0C,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,cAAM,OAAA,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAhC,CAAgC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js
deleted file mode 100644
index c37371f..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_subscribeToIterable,_scheduled_scheduleIterable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { subscribeToIterable } from '../util/subscribeToIterable';
-import { scheduleIterable } from '../scheduled/scheduleIterable';
-export function fromIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    if (!scheduler) {
-        return new Observable(subscribeToIterable(input));
-    }
-    else {
-        return scheduleIterable(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromIterable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map
deleted file mode 100644
index f150bb3..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromIterable.js","sources":["../../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js
deleted file mode 100644
index a826216..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_subscribeToPromise,_scheduled_schedulePromise PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { subscribeToPromise } from '../util/subscribeToPromise';
-import { schedulePromise } from '../scheduled/schedulePromise';
-export function fromPromise(input, scheduler) {
-    if (!scheduler) {
-        return new Observable(subscribeToPromise(input));
-    }
-    else {
-        return schedulePromise(input, scheduler);
-    }
-}
-//# sourceMappingURL=fromPromise.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map
deleted file mode 100644
index d695e5b..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromPromise.js","sources":["../../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/generate.js b/node_modules/rxjs/_esm5/internal/observable/generate.js
deleted file mode 100644
index 0e8ecb3..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/generate.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { identity } from '../util/identity';
-import { isScheduler } from '../util/isScheduler';
-export function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
-    var resultSelector;
-    var initialState;
-    if (arguments.length == 1) {
-        var options = initialStateOrOptions;
-        initialState = options.initialState;
-        condition = options.condition;
-        iterate = options.iterate;
-        resultSelector = options.resultSelector || identity;
-        scheduler = options.scheduler;
-    }
-    else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {
-        initialState = initialStateOrOptions;
-        resultSelector = identity;
-        scheduler = resultSelectorOrObservable;
-    }
-    else {
-        initialState = initialStateOrOptions;
-        resultSelector = resultSelectorOrObservable;
-    }
-    return new Observable(function (subscriber) {
-        var state = initialState;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                subscriber: subscriber,
-                iterate: iterate,
-                condition: condition,
-                resultSelector: resultSelector,
-                state: state
-            });
-        }
-        do {
-            if (condition) {
-                var conditionResult = void 0;
-                try {
-                    conditionResult = condition(state);
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return undefined;
-                }
-                if (!conditionResult) {
-                    subscriber.complete();
-                    break;
-                }
-            }
-            var value = void 0;
-            try {
-                value = resultSelector(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            subscriber.next(value);
-            if (subscriber.closed) {
-                break;
-            }
-            try {
-                state = iterate(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-        } while (true);
-        return undefined;
-    });
-}
-function dispatch(state) {
-    var subscriber = state.subscriber, condition = state.condition;
-    if (subscriber.closed) {
-        return undefined;
-    }
-    if (state.needIterate) {
-        try {
-            state.state = state.iterate(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-    }
-    else {
-        state.needIterate = true;
-    }
-    if (condition) {
-        var conditionResult = void 0;
-        try {
-            conditionResult = condition(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!conditionResult) {
-            subscriber.complete();
-            return undefined;
-        }
-        if (subscriber.closed) {
-            return undefined;
-        }
-    }
-    var value;
-    try {
-        value = state.resultSelector(state.state);
-    }
-    catch (err) {
-        subscriber.error(err);
-        return undefined;
-    }
-    if (subscriber.closed) {
-        return undefined;
-    }
-    subscriber.next(value);
-    if (subscriber.closed) {
-        return undefined;
-    }
-    return this.schedule(state);
-}
-//# sourceMappingURL=generate.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/generate.js.map b/node_modules/rxjs/_esm5/internal/observable/generate.js.map
deleted file mode 100644
index 05c10df..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/generate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generate.js","sources":["../../../src/internal/observable/generate.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/iif.js b/node_modules/rxjs/_esm5/internal/observable/iif.js
deleted file mode 100644
index 67a4bd9..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/iif.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */
-import { defer } from './defer';
-import { EMPTY } from './empty';
-export function iif(condition, trueResult, falseResult) {
-    if (trueResult === void 0) {
-        trueResult = EMPTY;
-    }
-    if (falseResult === void 0) {
-        falseResult = EMPTY;
-    }
-    return defer(function () { return condition() ? trueResult : falseResult; });
-}
-//# sourceMappingURL=iif.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/iif.js.map b/node_modules/rxjs/_esm5/internal/observable/iif.js.map
deleted file mode 100644
index bafa2e2..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/iif.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iif.js","sources":["../../../src/internal/observable/iif.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA2FhC,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,UAA4C,EAC5C,WAA6C;IAD7C,2BAAA,EAAA,kBAA4C;IAC5C,4BAAA,EAAA,mBAA6C;IAE7C,OAAO,KAAK,CAAC,cAAM,OAAA,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAtC,CAAsC,CAAC,CAAC;AAC7D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/interval.js b/node_modules/rxjs/_esm5/internal/observable/interval.js
deleted file mode 100644
index c530a02..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/interval.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { isNumeric } from '../util/isNumeric';
-export function interval(period, scheduler) {
-    if (period === void 0) {
-        period = 0;
-    }
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    if (!isNumeric(period) || period < 0) {
-        period = 0;
-    }
-    if (!scheduler || typeof scheduler.schedule !== 'function') {
-        scheduler = async;
-    }
-    return new Observable(function (subscriber) {
-        subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));
-        return subscriber;
-    });
-}
-function dispatch(state) {
-    var subscriber = state.subscriber, counter = state.counter, period = state.period;
-    subscriber.next(counter);
-    this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);
-}
-//# sourceMappingURL=interval.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/interval.js.map b/node_modules/rxjs/_esm5/internal/observable/interval.js.map
deleted file mode 100644
index 8fd0b0c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/interval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interval.js","sources":["../../../src/internal/observable/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmD9C,MAAM,UAAU,QAAQ,CAAC,MAAU,EACV,SAAgC;IADhC,uBAAA,EAAA,UAAU;IACV,0BAAA,EAAA,iBAAgC;IACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAS,UAAA,UAAU;QACtC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAClE,IAAA,6BAAU,EAAE,uBAAO,EAAE,qBAAM,CAAW;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,QAAA,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/merge.js b/node_modules/rxjs/_esm5/internal/observable/merge.js
deleted file mode 100644
index baa8fd3..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/merge.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { isScheduler } from '../util/isScheduler';
-import { mergeAll } from '../operators/mergeAll';
-import { fromArray } from './fromArray';
-export function merge() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var concurrent = Number.POSITIVE_INFINITY;
-    var scheduler = null;
-    var last = observables[observables.length - 1];
-    if (isScheduler(last)) {
-        scheduler = observables.pop();
-        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
-            concurrent = observables.pop();
-        }
-    }
-    else if (typeof last === 'number') {
-        concurrent = observables.pop();
-    }
-    if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {
-        return observables[0];
-    }
-    return mergeAll(concurrent)(fromArray(observables, scheduler));
-}
-//# sourceMappingURL=merge.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/merge.js.map b/node_modules/rxjs/_esm5/internal/observable/merge.js.map
deleted file mode 100644
index e65dd6e..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../../src/internal/observable/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAqHxC,MAAM,UAAU,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,QAAQ,CAAI,UAAU,CAAC,CAAC,SAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/never.js b/node_modules/rxjs/_esm5/internal/observable/never.js
deleted file mode 100644
index 09f7cd0..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/never.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { noop } from '../util/noop';
-export var NEVER = /*@__PURE__*/ new Observable(noop);
-export function never() {
-    return NEVER;
-}
-//# sourceMappingURL=never.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/never.js.map b/node_modules/rxjs/_esm5/internal/observable/never.js.map
deleted file mode 100644
index a32cf25..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/never.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"never.js","sources":["../../../src/internal/observable/never.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgCpC,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,IAAI,CAAC,CAAC;AAKjD,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/of.js b/node_modules/rxjs/_esm5/internal/observable/of.js
deleted file mode 100644
index 9078744..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/of.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */
-import { isScheduler } from '../util/isScheduler';
-import { fromArray } from './fromArray';
-import { scheduleArray } from '../scheduled/scheduleArray';
-export function of() {
-    var args = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        args[_i] = arguments[_i];
-    }
-    var scheduler = args[args.length - 1];
-    if (isScheduler(scheduler)) {
-        args.pop();
-        return scheduleArray(args, scheduler);
-    }
-    else {
-        return fromArray(args);
-    }
-}
-//# sourceMappingURL=of.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/of.js.map b/node_modules/rxjs/_esm5/internal/observable/of.js.map
deleted file mode 100644
index e0b0338..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/of.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"of.js","sources":["../../../src/internal/observable/of.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAiG3D,MAAM,UAAU,EAAE;IAAI,cAAiC;SAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;QAAjC,yBAAiC;;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js
deleted file mode 100644
index efa034e..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { from } from './from';
-import { isArray } from '../util/isArray';
-import { EMPTY } from './empty';
-export function onErrorResumeNext() {
-    var sources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        sources[_i] = arguments[_i];
-    }
-    if (sources.length === 0) {
-        return EMPTY;
-    }
-    var first = sources[0], remainder = sources.slice(1);
-    if (sources.length === 1 && isArray(first)) {
-        return onErrorResumeNext.apply(void 0, first);
-    }
-    return new Observable(function (subscriber) {
-        var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };
-        return from(first).subscribe({
-            next: function (value) { subscriber.next(value); },
-            error: subNext,
-            complete: subNext,
-        });
-    });
-}
-//# sourceMappingURL=onErrorResumeNext.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map
deleted file mode 100644
index 357a8a7..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwEhC,MAAM,UAAU,iBAAiB;IAAO,iBAEqD;SAFrD,UAEqD,EAFrD,qBAEqD,EAFrD,IAEqD;QAFrD,4BAEqD;;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAEO,IAAA,kBAAK,EAAE,4BAAY,CAAa;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,eAAI,KAAK,EAAE;KACpC;IAED,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,OAAO,GAAG,cAAM,OAAA,UAAU,CAAC,GAAG,CAClC,iBAAiB,eAAI,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CACtD,EAFqB,CAErB,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,YAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/pairs.js b/node_modules/rxjs/_esm5/internal/observable/pairs.js
deleted file mode 100644
index 85d799b..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/pairs.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function pairs(obj, scheduler) {
-    if (!scheduler) {
-        return new Observable(function (subscriber) {
-            var keys = Object.keys(obj);
-            for (var i = 0; i < keys.length && !subscriber.closed; i++) {
-                var key = keys[i];
-                if (obj.hasOwnProperty(key)) {
-                    subscriber.next([key, obj[key]]);
-                }
-            }
-            subscriber.complete();
-        });
-    }
-    else {
-        return new Observable(function (subscriber) {
-            var keys = Object.keys(obj);
-            var subscription = new Subscription();
-            subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));
-            return subscription;
-        });
-    }
-}
-export function dispatch(state) {
-    var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;
-    if (!subscriber.closed) {
-        if (index < keys.length) {
-            var key = keys[index];
-            subscriber.next([key, obj[key]]);
-            subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));
-        }
-        else {
-            subscriber.complete();
-        }
-    }
-}
-//# sourceMappingURL=pairs.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/pairs.js.map b/node_modules/rxjs/_esm5/internal/observable/pairs.js.map
deleted file mode 100644
index d2f93bd..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/pairs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairs.js","sources":["../../../src/internal/observable/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkD/C,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,UAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAGD,MAAM,UAAU,QAAQ,CACI,KAAsH;IACxI,IAAA,iBAAI,EAAE,mBAAK,EAAE,6BAAU,EAAE,iCAAY,EAAE,eAAG,CAAW;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/partition.js b/node_modules/rxjs/_esm5/internal/observable/partition.js
deleted file mode 100644
index 7b46b04..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/partition.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */
-import { not } from '../util/not';
-import { subscribeTo } from '../util/subscribeTo';
-import { filter } from '../operators/filter';
-import { Observable } from '../Observable';
-export function partition(source, predicate, thisArg) {
-    return [
-        filter(predicate, thisArg)(new Observable(subscribeTo(source))),
-        filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))
-    ];
-}
-//# sourceMappingURL=partition.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/partition.js.map b/node_modules/rxjs/_esm5/internal/observable/partition.js.map
deleted file mode 100644
index 6c8ed22..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../../src/internal/observable/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqD3C,MAAM,UAAU,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/race.js b/node_modules/rxjs/_esm5/internal/observable/race.js
deleted file mode 100644
index 88a47a4..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/race.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { isArray } from '../util/isArray';
-import { fromArray } from './fromArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function race() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    if (observables.length === 1) {
-        if (isArray(observables[0])) {
-            observables = observables[0];
-        }
-        else {
-            return observables[0];
-        }
-    }
-    return fromArray(observables, undefined).lift(new RaceOperator());
-}
-var RaceOperator = /*@__PURE__*/ (function () {
-    function RaceOperator() {
-    }
-    RaceOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RaceSubscriber(subscriber));
-    };
-    return RaceOperator;
-}());
-export { RaceOperator };
-var RaceSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RaceSubscriber, _super);
-    function RaceSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasFirst = false;
-        _this.observables = [];
-        _this.subscriptions = [];
-        return _this;
-    }
-    RaceSubscriber.prototype._next = function (observable) {
-        this.observables.push(observable);
-    };
-    RaceSubscriber.prototype._complete = function () {
-        var observables = this.observables;
-        var len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            for (var i = 0; i < len && !this.hasFirst; i++) {
-                var observable = observables[i];
-                var subscription = subscribeToResult(this, observable, observable, i);
-                if (this.subscriptions) {
-                    this.subscriptions.push(subscription);
-                }
-                this.add(subscription);
-            }
-            this.observables = null;
-        }
-    };
-    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (!this.hasFirst) {
-            this.hasFirst = true;
-            for (var i = 0; i < this.subscriptions.length; i++) {
-                if (i !== outerIndex) {
-                    var subscription = this.subscriptions[i];
-                    subscription.unsubscribe();
-                    this.remove(subscription);
-                }
-            }
-            this.subscriptions = null;
-        }
-        this.destination.next(innerValue);
-    };
-    return RaceSubscriber;
-}(OuterSubscriber));
-export { RaceSubscriber };
-//# sourceMappingURL=race.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/race.js.map b/node_modules/rxjs/_esm5/internal/observable/race.js.map
deleted file mode 100644
index 75ad4d5..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../../src/internal/observable/race.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoD9D,MAAM,UAAU,IAAI;IAAI,qBAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,gCAAsC;;IAG5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAsB,CAAC;SACnD;aAAM;YACL,OAAO,WAAW,CAAC,CAAC,CAAkB,CAAC;SACxC;KACF;IAED,OAAO,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,IAIC;;AAOD;IAAuC,0CAAqB;IAK1D,wBAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QANO,cAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAW,GAAsB,EAAE,CAAC;QACpC,mBAAa,GAAmB,EAAE,CAAC;;IAI3C,CAAC;IAES,8BAAK,GAAf,UAAgB,UAAe;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,kCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAiB,EAAE,CAAC,CAAC,CAAC;gBAE7E,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACxB;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,mCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,KAAK,UAAU,EAAE;oBACpB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAEzC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACH,qBAAC;AAAD,CAAC,AArDD,CAAuC,eAAe,GAqDrD"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/range.js b/node_modules/rxjs/_esm5/internal/observable/range.js
deleted file mode 100644
index 3e0184c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/range.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-export function range(start, count, scheduler) {
-    if (start === void 0) {
-        start = 0;
-    }
-    return new Observable(function (subscriber) {
-        if (count === undefined) {
-            count = start;
-            start = 0;
-        }
-        var index = 0;
-        var current = start;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                index: index, count: count, start: start, subscriber: subscriber
-            });
-        }
-        else {
-            do {
-                if (index++ >= count) {
-                    subscriber.complete();
-                    break;
-                }
-                subscriber.next(current++);
-                if (subscriber.closed) {
-                    break;
-                }
-            } while (true);
-        }
-        return undefined;
-    });
-}
-export function dispatch(state) {
-    var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;
-    if (index >= count) {
-        subscriber.complete();
-        return;
-    }
-    subscriber.next(start);
-    if (subscriber.closed) {
-        return;
-    }
-    state.index = index + 1;
-    state.start = start + 1;
-    this.schedule(state);
-}
-//# sourceMappingURL=range.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/range.js.map b/node_modules/rxjs/_esm5/internal/observable/range.js.map
deleted file mode 100644
index d36149e..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/range.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"range.js","sources":["../../../src/internal/observable/range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAC,KAAiB,EACjB,KAAc,EACd,SAAyB;IAFzB,sBAAA,EAAA,SAAiB;IAGrC,OAAO,IAAI,UAAU,CAAS,UAAA,UAAU;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,QAAQ,CAA6B,KAAU;IACrD,IAAA,mBAAK,EAAE,mBAAK,EAAE,mBAAK,EAAE,6BAAU,CAAW;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/throwError.js b/node_modules/rxjs/_esm5/internal/observable/throwError.js
deleted file mode 100644
index aa4196a..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/throwError.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-export function throwError(error, scheduler) {
-    if (!scheduler) {
-        return new Observable(function (subscriber) { return subscriber.error(error); });
-    }
-    else {
-        return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });
-    }
-}
-function dispatch(_a) {
-    var error = _a.error, subscriber = _a.subscriber;
-    subscriber.error(error);
-}
-//# sourceMappingURL=throwError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/throwError.js.map b/node_modules/rxjs/_esm5/internal/observable/throwError.js.map
deleted file mode 100644
index ec48b6f..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/throwError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwError.js","sources":["../../../src/internal/observable/throwError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoE3C,MAAM,UAAU,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;KAC7F;AACH,CAAC;AAOD,SAAS,QAAQ,CAAC,EAAkC;QAAhC,gBAAK,EAAE,0BAAU;IACnC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/timer.js b/node_modules/rxjs/_esm5/internal/observable/timer.js
deleted file mode 100644
index 73b8540..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/timer.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-export function timer(dueTime, periodOrScheduler, scheduler) {
-    if (dueTime === void 0) {
-        dueTime = 0;
-    }
-    var period = -1;
-    if (isNumeric(periodOrScheduler)) {
-        period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
-    }
-    else if (isScheduler(periodOrScheduler)) {
-        scheduler = periodOrScheduler;
-    }
-    if (!isScheduler(scheduler)) {
-        scheduler = async;
-    }
-    return new Observable(function (subscriber) {
-        var due = isNumeric(dueTime)
-            ? dueTime
-            : (+dueTime - scheduler.now());
-        return scheduler.schedule(dispatch, due, {
-            index: 0, period: period, subscriber: subscriber
-        });
-    });
-}
-function dispatch(state) {
-    var index = state.index, period = state.period, subscriber = state.subscriber;
-    subscriber.next(index);
-    if (subscriber.closed) {
-        return;
-    }
-    else if (period === -1) {
-        return subscriber.complete();
-    }
-    state.index = index + 1;
-    this.schedule(state, period);
-}
-//# sourceMappingURL=timer.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/timer.js.map b/node_modules/rxjs/_esm5/internal/observable/timer.js.map
deleted file mode 100644
index ef5924f..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/timer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timer.js","sources":["../../../src/internal/observable/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqDlD,MAAM,UAAU,KAAK,CAAC,OAA0B,EAC1B,iBAA0C,EAC1C,SAAyB;IAFzB,wBAAA,EAAA,WAA0B;IAG9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IAC5D,IAAA,mBAAK,EAAE,qBAAM,EAAE,6BAAU,CAAW;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/using.js b/node_modules/rxjs/_esm5/internal/observable/using.js
deleted file mode 100644
index d65743c..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/using.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { from } from './from';
-import { EMPTY } from './empty';
-export function using(resourceFactory, observableFactory) {
-    return new Observable(function (subscriber) {
-        var resource;
-        try {
-            resource = resourceFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var result;
-        try {
-            result = observableFactory(resource);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var source = result ? from(result) : EMPTY;
-        var subscription = source.subscribe(subscriber);
-        return function () {
-            subscription.unsubscribe();
-            if (resource) {
-                resource.unsubscribe();
-            }
-        };
-    });
-}
-//# sourceMappingURL=using.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/using.js.map b/node_modules/rxjs/_esm5/internal/observable/using.js.map
deleted file mode 100644
index e227847..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/using.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"using.js","sources":["../../../src/internal/observable/using.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA8BhC,MAAM,UAAU,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/observable/zip.js b/node_modules/rxjs/_esm5/internal/observable/zip.js
deleted file mode 100644
index e15b320..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/zip.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { fromArray } from './fromArray';
-import { isArray } from '../util/isArray';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { iterator as Symbol_iterator } from '../../internal/symbol/iterator';
-export function zip() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var resultSelector = observables[observables.length - 1];
-    if (typeof resultSelector === 'function') {
-        observables.pop();
-    }
-    return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
-}
-var ZipOperator = /*@__PURE__*/ (function () {
-    function ZipOperator(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    ZipOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
-    };
-    return ZipOperator;
-}());
-export { ZipOperator };
-var ZipSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ZipSubscriber, _super);
-    function ZipSubscriber(destination, resultSelector, values) {
-        if (values === void 0) {
-            values = Object.create(null);
-        }
-        var _this = _super.call(this, destination) || this;
-        _this.iterators = [];
-        _this.active = 0;
-        _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
-        _this.values = values;
-        return _this;
-    }
-    ZipSubscriber.prototype._next = function (value) {
-        var iterators = this.iterators;
-        if (isArray(value)) {
-            iterators.push(new StaticArrayIterator(value));
-        }
-        else if (typeof value[Symbol_iterator] === 'function') {
-            iterators.push(new StaticIterator(value[Symbol_iterator]()));
-        }
-        else {
-            iterators.push(new ZipBufferIterator(this.destination, this, value));
-        }
-    };
-    ZipSubscriber.prototype._complete = function () {
-        var iterators = this.iterators;
-        var len = iterators.length;
-        this.unsubscribe();
-        if (len === 0) {
-            this.destination.complete();
-            return;
-        }
-        this.active = len;
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            if (iterator.stillUnsubscribed) {
-                var destination = this.destination;
-                destination.add(iterator.subscribe(iterator, i));
-            }
-            else {
-                this.active--;
-            }
-        }
-    };
-    ZipSubscriber.prototype.notifyInactive = function () {
-        this.active--;
-        if (this.active === 0) {
-            this.destination.complete();
-        }
-    };
-    ZipSubscriber.prototype.checkIterators = function () {
-        var iterators = this.iterators;
-        var len = iterators.length;
-        var destination = this.destination;
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
-                return;
-            }
-        }
-        var shouldComplete = false;
-        var args = [];
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            var result = iterator.next();
-            if (iterator.hasCompleted()) {
-                shouldComplete = true;
-            }
-            if (result.done) {
-                destination.complete();
-                return;
-            }
-            args.push(result.value);
-        }
-        if (this.resultSelector) {
-            this._tryresultSelector(args);
-        }
-        else {
-            destination.next(args);
-        }
-        if (shouldComplete) {
-            destination.complete();
-        }
-    };
-    ZipSubscriber.prototype._tryresultSelector = function (args) {
-        var result;
-        try {
-            result = this.resultSelector.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return ZipSubscriber;
-}(Subscriber));
-export { ZipSubscriber };
-var StaticIterator = /*@__PURE__*/ (function () {
-    function StaticIterator(iterator) {
-        this.iterator = iterator;
-        this.nextResult = iterator.next();
-    }
-    StaticIterator.prototype.hasValue = function () {
-        return true;
-    };
-    StaticIterator.prototype.next = function () {
-        var result = this.nextResult;
-        this.nextResult = this.iterator.next();
-        return result;
-    };
-    StaticIterator.prototype.hasCompleted = function () {
-        var nextResult = this.nextResult;
-        return nextResult && nextResult.done;
-    };
-    return StaticIterator;
-}());
-var StaticArrayIterator = /*@__PURE__*/ (function () {
-    function StaticArrayIterator(array) {
-        this.array = array;
-        this.index = 0;
-        this.length = 0;
-        this.length = array.length;
-    }
-    StaticArrayIterator.prototype[Symbol_iterator] = function () {
-        return this;
-    };
-    StaticArrayIterator.prototype.next = function (value) {
-        var i = this.index++;
-        var array = this.array;
-        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
-    };
-    StaticArrayIterator.prototype.hasValue = function () {
-        return this.array.length > this.index;
-    };
-    StaticArrayIterator.prototype.hasCompleted = function () {
-        return this.array.length === this.index;
-    };
-    return StaticArrayIterator;
-}());
-var ZipBufferIterator = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ZipBufferIterator, _super);
-    function ZipBufferIterator(destination, parent, observable) {
-        var _this = _super.call(this, destination) || this;
-        _this.parent = parent;
-        _this.observable = observable;
-        _this.stillUnsubscribed = true;
-        _this.buffer = [];
-        _this.isComplete = false;
-        return _this;
-    }
-    ZipBufferIterator.prototype[Symbol_iterator] = function () {
-        return this;
-    };
-    ZipBufferIterator.prototype.next = function () {
-        var buffer = this.buffer;
-        if (buffer.length === 0 && this.isComplete) {
-            return { value: null, done: true };
-        }
-        else {
-            return { value: buffer.shift(), done: false };
-        }
-    };
-    ZipBufferIterator.prototype.hasValue = function () {
-        return this.buffer.length > 0;
-    };
-    ZipBufferIterator.prototype.hasCompleted = function () {
-        return this.buffer.length === 0 && this.isComplete;
-    };
-    ZipBufferIterator.prototype.notifyComplete = function () {
-        if (this.buffer.length > 0) {
-            this.isComplete = true;
-            this.parent.notifyInactive();
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.buffer.push(innerValue);
-        this.parent.checkIterators();
-    };
-    ZipBufferIterator.prototype.subscribe = function (value, index) {
-        return subscribeToResult(this, this.observable, this, index);
-    };
-    return ZipBufferIterator;
-}(OuterSubscriber));
-//# sourceMappingURL=zip.js.map
diff --git a/node_modules/rxjs/_esm5/internal/observable/zip.js.map b/node_modules/rxjs/_esm5/internal/observable/zip.js.map
deleted file mode 100644
index a0eca11..0000000
--- a/node_modules/rxjs/_esm5/internal/observable/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/audit.js b/node_modules/rxjs/_esm5/internal/operators/audit.js
deleted file mode 100644
index 4c8fc94..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/audit.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function audit(durationSelector) {
-    return function auditOperatorFunction(source) {
-        return source.lift(new AuditOperator(durationSelector));
-    };
-}
-var AuditOperator = /*@__PURE__*/ (function () {
-    function AuditOperator(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    AuditOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
-    };
-    return AuditOperator;
-}());
-var AuditSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AuditSubscriber, _super);
-    function AuditSubscriber(destination, durationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.durationSelector = durationSelector;
-        _this.hasValue = false;
-        return _this;
-    }
-    AuditSubscriber.prototype._next = function (value) {
-        this.value = value;
-        this.hasValue = true;
-        if (!this.throttled) {
-            var duration = void 0;
-            try {
-                var durationSelector = this.durationSelector;
-                duration = durationSelector(value);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-            var innerSubscription = subscribeToResult(this, duration);
-            if (!innerSubscription || innerSubscription.closed) {
-                this.clearThrottle();
-            }
-            else {
-                this.add(this.throttled = innerSubscription);
-            }
-        }
-    };
-    AuditSubscriber.prototype.clearThrottle = function () {
-        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;
-        if (throttled) {
-            this.remove(throttled);
-            this.throttled = null;
-            throttled.unsubscribe();
-        }
-        if (hasValue) {
-            this.value = null;
-            this.hasValue = false;
-            this.destination.next(value);
-        }
-    };
-    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {
-        this.clearThrottle();
-    };
-    AuditSubscriber.prototype.notifyComplete = function () {
-        this.clearThrottle();
-    };
-    return AuditSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=audit.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/audit.js.map b/node_modules/rxjs/_esm5/internal/operators/audit.js.map
deleted file mode 100644
index 4ad5797..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../../../src/internal/operators/audit.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgD9D,MAAM,UAAU,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,uBAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAoC,2CAAqB;IAMvD,yBAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,SAAA,CAAC;YACb,IAAI;gBACM,IAAA,wCAAgB,CAAU;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;YACD,IAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,uCAAa,GAAb;QACQ,IAAA,SAAqC,EAAnC,gBAAK,EAAE,sBAAQ,EAAE,wBAAS,CAAU;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAAE,UAAkB,EAAE,UAAkB;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,wCAAc,GAAd;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApDD,CAAoC,eAAe,GAoDlD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/auditTime.js b/node_modules/rxjs/_esm5/internal/operators/auditTime.js
deleted file mode 100644
index e862206..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/auditTime.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */
-import { async } from '../scheduler/async';
-import { audit } from './audit';
-import { timer } from '../observable/timer';
-export function auditTime(duration, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return audit(function () { return timer(duration, scheduler); });
-}
-//# sourceMappingURL=auditTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map b/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map
deleted file mode 100644
index 318084a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../../../src/internal/operators/auditTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoD5C,MAAM,UAAU,SAAS,CAAI,QAAgB,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC7E,OAAO,KAAK,CAAC,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA1B,CAA0B,CAAC,CAAC;AACjD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/buffer.js b/node_modules/rxjs/_esm5/internal/operators/buffer.js
deleted file mode 100644
index 6ab63ae..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/buffer.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function buffer(closingNotifier) {
-    return function bufferOperatorFunction(source) {
-        return source.lift(new BufferOperator(closingNotifier));
-    };
-}
-var BufferOperator = /*@__PURE__*/ (function () {
-    function BufferOperator(closingNotifier) {
-        this.closingNotifier = closingNotifier;
-    }
-    BufferOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
-    };
-    return BufferOperator;
-}());
-var BufferSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferSubscriber, _super);
-    function BufferSubscriber(destination, closingNotifier) {
-        var _this = _super.call(this, destination) || this;
-        _this.buffer = [];
-        _this.add(subscribeToResult(_this, closingNotifier));
-        return _this;
-    }
-    BufferSubscriber.prototype._next = function (value) {
-        this.buffer.push(value);
-    };
-    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var buffer = this.buffer;
-        this.buffer = [];
-        this.destination.next(buffer);
-    };
-    return BufferSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=buffer.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/buffer.js.map b/node_modules/rxjs/_esm5/internal/operators/buffer.js.map
deleted file mode 100644
index b43c12b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../../../src/internal/operators/buffer.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,MAAM,UAAU,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,wBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAAuB;IAGvD,0BAAY,WAA4B,EAAE,eAAgC;QAA1E,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAQ,EAAE,CAAC;QAIvB,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAI,EAAE,eAAe,CAAC,CAAC,CAAC;;IACrD,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,uBAAC;AAAD,CAAC,AAnBD,CAAkC,eAAe,GAmBhD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js
deleted file mode 100644
index b882b6e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function bufferCount(bufferSize, startBufferEvery) {
-    if (startBufferEvery === void 0) {
-        startBufferEvery = null;
-    }
-    return function bufferCountOperatorFunction(source) {
-        return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));
-    };
-}
-var BufferCountOperator = /*@__PURE__*/ (function () {
-    function BufferCountOperator(bufferSize, startBufferEvery) {
-        this.bufferSize = bufferSize;
-        this.startBufferEvery = startBufferEvery;
-        if (!startBufferEvery || bufferSize === startBufferEvery) {
-            this.subscriberClass = BufferCountSubscriber;
-        }
-        else {
-            this.subscriberClass = BufferSkipCountSubscriber;
-        }
-    }
-    BufferCountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
-    };
-    return BufferCountOperator;
-}());
-var BufferCountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferCountSubscriber, _super);
-    function BufferCountSubscriber(destination, bufferSize) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferSize = bufferSize;
-        _this.buffer = [];
-        return _this;
-    }
-    BufferCountSubscriber.prototype._next = function (value) {
-        var buffer = this.buffer;
-        buffer.push(value);
-        if (buffer.length == this.bufferSize) {
-            this.destination.next(buffer);
-            this.buffer = [];
-        }
-    };
-    BufferCountSubscriber.prototype._complete = function () {
-        var buffer = this.buffer;
-        if (buffer.length > 0) {
-            this.destination.next(buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    return BufferCountSubscriber;
-}(Subscriber));
-var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferSkipCountSubscriber, _super);
-    function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferSize = bufferSize;
-        _this.startBufferEvery = startBufferEvery;
-        _this.buffers = [];
-        _this.count = 0;
-        return _this;
-    }
-    BufferSkipCountSubscriber.prototype._next = function (value) {
-        var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;
-        this.count++;
-        if (count % startBufferEvery === 0) {
-            buffers.push([]);
-        }
-        for (var i = buffers.length; i--;) {
-            var buffer = buffers[i];
-            buffer.push(value);
-            if (buffer.length === bufferSize) {
-                buffers.splice(i, 1);
-                this.destination.next(buffer);
-            }
-        }
-    };
-    BufferSkipCountSubscriber.prototype._complete = function () {
-        var _a = this, buffers = _a.buffers, destination = _a.destination;
-        while (buffers.length > 0) {
-            var buffer = buffers.shift();
-            if (buffer.length > 0) {
-                destination.next(buffer);
-            }
-        }
-        _super.prototype._complete.call(this);
-    };
-    return BufferSkipCountSubscriber;
-}(Subscriber));
-//# sourceMappingURL=bufferCount.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map
deleted file mode 100644
index 0beead0..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js
deleted file mode 100644
index 723d954..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { async } from '../scheduler/async';
-import { Subscriber } from '../Subscriber';
-import { isScheduler } from '../util/isScheduler';
-export function bufferTime(bufferTimeSpan) {
-    var length = arguments.length;
-    var scheduler = async;
-    if (isScheduler(arguments[arguments.length - 1])) {
-        scheduler = arguments[arguments.length - 1];
-        length--;
-    }
-    var bufferCreationInterval = null;
-    if (length >= 2) {
-        bufferCreationInterval = arguments[1];
-    }
-    var maxBufferSize = Number.POSITIVE_INFINITY;
-    if (length >= 3) {
-        maxBufferSize = arguments[2];
-    }
-    return function bufferTimeOperatorFunction(source) {
-        return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
-    };
-}
-var BufferTimeOperator = /*@__PURE__*/ (function () {
-    function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        this.bufferTimeSpan = bufferTimeSpan;
-        this.bufferCreationInterval = bufferCreationInterval;
-        this.maxBufferSize = maxBufferSize;
-        this.scheduler = scheduler;
-    }
-    BufferTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));
-    };
-    return BufferTimeOperator;
-}());
-var Context = /*@__PURE__*/ (function () {
-    function Context() {
-        this.buffer = [];
-    }
-    return Context;
-}());
-var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferTimeSubscriber, _super);
-    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferTimeSpan = bufferTimeSpan;
-        _this.bufferCreationInterval = bufferCreationInterval;
-        _this.maxBufferSize = maxBufferSize;
-        _this.scheduler = scheduler;
-        _this.contexts = [];
-        var context = _this.openContext();
-        _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
-        if (_this.timespanOnly) {
-            var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };
-            _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-        else {
-            var closeState = { subscriber: _this, context: context };
-            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };
-            _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));
-            _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));
-        }
-        return _this;
-    }
-    BufferTimeSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        var len = contexts.length;
-        var filledBufferContext;
-        for (var i = 0; i < len; i++) {
-            var context_1 = contexts[i];
-            var buffer = context_1.buffer;
-            buffer.push(value);
-            if (buffer.length == this.maxBufferSize) {
-                filledBufferContext = context_1;
-            }
-        }
-        if (filledBufferContext) {
-            this.onBufferFull(filledBufferContext);
-        }
-    };
-    BufferTimeSubscriber.prototype._error = function (err) {
-        this.contexts.length = 0;
-        _super.prototype._error.call(this, err);
-    };
-    BufferTimeSubscriber.prototype._complete = function () {
-        var _a = this, contexts = _a.contexts, destination = _a.destination;
-        while (contexts.length > 0) {
-            var context_2 = contexts.shift();
-            destination.next(context_2.buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    BufferTimeSubscriber.prototype._unsubscribe = function () {
-        this.contexts = null;
-    };
-    BufferTimeSubscriber.prototype.onBufferFull = function (context) {
-        this.closeContext(context);
-        var closeAction = context.closeAction;
-        closeAction.unsubscribe();
-        this.remove(closeAction);
-        if (!this.closed && this.timespanOnly) {
-            context = this.openContext();
-            var bufferTimeSpan = this.bufferTimeSpan;
-            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };
-            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-    };
-    BufferTimeSubscriber.prototype.openContext = function () {
-        var context = new Context();
-        this.contexts.push(context);
-        return context;
-    };
-    BufferTimeSubscriber.prototype.closeContext = function (context) {
-        this.destination.next(context.buffer);
-        var contexts = this.contexts;
-        var spliceIndex = contexts ? contexts.indexOf(context) : -1;
-        if (spliceIndex >= 0) {
-            contexts.splice(contexts.indexOf(context), 1);
-        }
-    };
-    return BufferTimeSubscriber;
-}(Subscriber));
-function dispatchBufferTimeSpanOnly(state) {
-    var subscriber = state.subscriber;
-    var prevContext = state.context;
-    if (prevContext) {
-        subscriber.closeContext(prevContext);
-    }
-    if (!subscriber.closed) {
-        state.context = subscriber.openContext();
-        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
-    }
-}
-function dispatchBufferCreation(state) {
-    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;
-    var context = subscriber.openContext();
-    var action = this;
-    if (!subscriber.closed) {
-        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));
-        action.schedule(state, bufferCreationInterval);
-    }
-}
-function dispatchBufferClose(arg) {
-    var subscriber = arg.subscriber, context = arg.context;
-    subscriber.closeContext(context);
-}
-//# sourceMappingURL=bufferTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map
deleted file mode 100644
index 1591543..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js
deleted file mode 100644
index 005988b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscription } from '../Subscription';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-export function bufferToggle(openings, closingSelector) {
-    return function bufferToggleOperatorFunction(source) {
-        return source.lift(new BufferToggleOperator(openings, closingSelector));
-    };
-}
-var BufferToggleOperator = /*@__PURE__*/ (function () {
-    function BufferToggleOperator(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    BufferToggleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    };
-    return BufferToggleOperator;
-}());
-var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferToggleSubscriber, _super);
-    function BufferToggleSubscriber(destination, openings, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.openings = openings;
-        _this.closingSelector = closingSelector;
-        _this.contexts = [];
-        _this.add(subscribeToResult(_this, openings));
-        return _this;
-    }
-    BufferToggleSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        var len = contexts.length;
-        for (var i = 0; i < len; i++) {
-            contexts[i].buffer.push(value);
-        }
-    };
-    BufferToggleSubscriber.prototype._error = function (err) {
-        var contexts = this.contexts;
-        while (contexts.length > 0) {
-            var context_1 = contexts.shift();
-            context_1.subscription.unsubscribe();
-            context_1.buffer = null;
-            context_1.subscription = null;
-        }
-        this.contexts = null;
-        _super.prototype._error.call(this, err);
-    };
-    BufferToggleSubscriber.prototype._complete = function () {
-        var contexts = this.contexts;
-        while (contexts.length > 0) {
-            var context_2 = contexts.shift();
-            this.destination.next(context_2.buffer);
-            context_2.subscription.unsubscribe();
-            context_2.buffer = null;
-            context_2.subscription = null;
-        }
-        this.contexts = null;
-        _super.prototype._complete.call(this);
-    };
-    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
-    };
-    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.closeBuffer(innerSub.context);
-    };
-    BufferToggleSubscriber.prototype.openBuffer = function (value) {
-        try {
-            var closingSelector = this.closingSelector;
-            var closingNotifier = closingSelector.call(this, value);
-            if (closingNotifier) {
-                this.trySubscribe(closingNotifier);
-            }
-        }
-        catch (err) {
-            this._error(err);
-        }
-    };
-    BufferToggleSubscriber.prototype.closeBuffer = function (context) {
-        var contexts = this.contexts;
-        if (contexts && context) {
-            var buffer = context.buffer, subscription = context.subscription;
-            this.destination.next(buffer);
-            contexts.splice(contexts.indexOf(context), 1);
-            this.remove(subscription);
-            subscription.unsubscribe();
-        }
-    };
-    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {
-        var contexts = this.contexts;
-        var buffer = [];
-        var subscription = new Subscription();
-        var context = { buffer: buffer, subscription: subscription };
-        contexts.push(context);
-        var innerSubscription = subscribeToResult(this, closingNotifier, context);
-        if (!innerSubscription || innerSubscription.closed) {
-            this.closeBuffer(context);
-        }
-        else {
-            innerSubscription.context = context;
-            this.add(innerSubscription);
-            subscription.add(innerSubscription);
-        }
-    };
-    return BufferToggleSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=bufferToggle.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map
deleted file mode 100644
index 1c59cf4..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js
deleted file mode 100644
index 7a0872a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function bufferWhen(closingSelector) {
-    return function (source) {
-        return source.lift(new BufferWhenOperator(closingSelector));
-    };
-}
-var BufferWhenOperator = /*@__PURE__*/ (function () {
-    function BufferWhenOperator(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    BufferWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
-    };
-    return BufferWhenOperator;
-}());
-var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(BufferWhenSubscriber, _super);
-    function BufferWhenSubscriber(destination, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.closingSelector = closingSelector;
-        _this.subscribing = false;
-        _this.openBuffer();
-        return _this;
-    }
-    BufferWhenSubscriber.prototype._next = function (value) {
-        this.buffer.push(value);
-    };
-    BufferWhenSubscriber.prototype._complete = function () {
-        var buffer = this.buffer;
-        if (buffer) {
-            this.destination.next(buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    BufferWhenSubscriber.prototype._unsubscribe = function () {
-        this.buffer = null;
-        this.subscribing = false;
-    };
-    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openBuffer();
-    };
-    BufferWhenSubscriber.prototype.notifyComplete = function () {
-        if (this.subscribing) {
-            this.complete();
-        }
-        else {
-            this.openBuffer();
-        }
-    };
-    BufferWhenSubscriber.prototype.openBuffer = function () {
-        var closingSubscription = this.closingSubscription;
-        if (closingSubscription) {
-            this.remove(closingSubscription);
-            closingSubscription.unsubscribe();
-        }
-        var buffer = this.buffer;
-        if (this.buffer) {
-            this.destination.next(buffer);
-        }
-        this.buffer = [];
-        var closingNotifier;
-        try {
-            var closingSelector = this.closingSelector;
-            closingNotifier = closingSelector();
-        }
-        catch (err) {
-            return this.error(err);
-        }
-        closingSubscription = new Subscription();
-        this.closingSubscription = closingSubscription;
-        this.add(closingSubscription);
-        this.subscribing = true;
-        closingSubscription.add(subscribeToResult(this, closingNotifier));
-        this.subscribing = false;
-    };
-    return BufferWhenSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=bufferWhen.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map
deleted file mode 100644
index 0e01d96..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/catchError.js b/node_modules/rxjs/_esm5/internal/operators/catchError.js
deleted file mode 100644
index 7a1e402..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/catchError.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function catchError(selector) {
-    return function catchErrorOperatorFunction(source) {
-        var operator = new CatchOperator(selector);
-        var caught = source.lift(operator);
-        return (operator.caught = caught);
-    };
-}
-var CatchOperator = /*@__PURE__*/ (function () {
-    function CatchOperator(selector) {
-        this.selector = selector;
-    }
-    CatchOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
-    };
-    return CatchOperator;
-}());
-var CatchSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(CatchSubscriber, _super);
-    function CatchSubscriber(destination, selector, caught) {
-        var _this = _super.call(this, destination) || this;
-        _this.selector = selector;
-        _this.caught = caught;
-        return _this;
-    }
-    CatchSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var result = void 0;
-            try {
-                result = this.selector(err, this.caught);
-            }
-            catch (err2) {
-                _super.prototype.error.call(this, err2);
-                return;
-            }
-            this._unsubscribeAndRecycle();
-            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-            this.add(innerSubscriber);
-            var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                this.add(innerSubscription);
-            }
-        }
-    };
-    return CatchSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=catchError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/catchError.js.map b/node_modules/rxjs/_esm5/internal/operators/catchError.js.map
deleted file mode 100644
index 7f03160..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/catchError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catchError.js","sources":["../../../src/internal/operators/catchError.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAmF9D,MAAM,UAAU,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,IAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;IAGE,uBAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAoC,2CAAyB;IAC3D,yBAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA6D;QACrE,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAOD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAM,SAAK,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,iBAAM,KAAK,YAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,IAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAIjG,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAoC,eAAe,GAiClD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/combineAll.js b/node_modules/rxjs/_esm5/internal/operators/combineAll.js
deleted file mode 100644
index 2be83a4..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/combineAll.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */
-import { CombineLatestOperator } from '../observable/combineLatest';
-export function combineAll(project) {
-    return function (source) { return source.lift(new CombineLatestOperator(project)); };
-}
-//# sourceMappingURL=combineAll.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map b/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map
deleted file mode 100644
index 1105b52..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../../../src/internal/operators/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAsDpE,MAAM,UAAU,UAAU,CAAO,OAAsC;IACrE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js
deleted file mode 100644
index 9718499..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */
-import { isArray } from '../util/isArray';
-import { CombineLatestOperator } from '../observable/combineLatest';
-import { from } from '../observable/from';
-var none = {};
-export function combineLatest() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var project = null;
-    if (typeof observables[observables.length - 1] === 'function') {
-        project = observables.pop();
-    }
-    if (observables.length === 1 && isArray(observables[0])) {
-        observables = observables[0].slice();
-    }
-    return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };
-}
-//# sourceMappingURL=combineLatest.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map
deleted file mode 100644
index 911b122..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,IAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,MAAM,UAAU,aAAa;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,SAAK,WAAW,EAAE,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAApF,CAAoF,CAAC;AACzH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/concat.js b/node_modules/rxjs/_esm5/internal/operators/concat.js
deleted file mode 100644
index 2827f39..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concat.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */
-import { concat as concatStatic } from '../observable/concat';
-export function concat() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };
-}
-//# sourceMappingURL=concat.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/concat.js.map b/node_modules/rxjs/_esm5/internal/operators/concat.js.map
deleted file mode 100644
index 3294279..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../../src/internal/operators/concat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA0B/D,MAAM,UAAU,MAAM;IAAO,qBAA2D;SAA3D,UAA2D,EAA3D,qBAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,gBAAC,MAAM,SAAK,WAAW,GAAE,EAAtD,CAAsD,CAAC;AAC3F,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatAll.js b/node_modules/rxjs/_esm5/internal/operators/concatAll.js
deleted file mode 100644
index bc3a803..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatAll.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */
-import { mergeAll } from './mergeAll';
-export function concatAll() {
-    return mergeAll(1);
-}
-//# sourceMappingURL=concatAll.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map b/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map
deleted file mode 100644
index 9c92ccc..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../../../src/internal/operators/concatAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgEtC,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMap.js b/node_modules/rxjs/_esm5/internal/operators/concatMap.js
deleted file mode 100644
index 16b9e95..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatMap.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */
-import { mergeMap } from './mergeMap';
-export function concatMap(project, resultSelector) {
-    return mergeMap(project, resultSelector, 1);
-}
-//# sourceMappingURL=concatMap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map b/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map
deleted file mode 100644
index 63a35fa..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../../../src/internal/operators/concatMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEtC,MAAM,UAAU,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js
deleted file mode 100644
index 616264d..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */
-import { concatMap } from './concatMap';
-export function concatMapTo(innerObservable, resultSelector) {
-    return concatMap(function () { return innerObservable; }, resultSelector);
-}
-//# sourceMappingURL=concatMapTo.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map
deleted file mode 100644
index fb2e722..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmExC,MAAM,UAAU,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/count.js b/node_modules/rxjs/_esm5/internal/operators/count.js
deleted file mode 100644
index 122cb3e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/count.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function count(predicate) {
-    return function (source) { return source.lift(new CountOperator(predicate, source)); };
-}
-var CountOperator = /*@__PURE__*/ (function () {
-    function CountOperator(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    CountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
-    };
-    return CountOperator;
-}());
-var CountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(CountSubscriber, _super);
-    function CountSubscriber(destination, predicate, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.count = 0;
-        _this.index = 0;
-        return _this;
-    }
-    CountSubscriber.prototype._next = function (value) {
-        if (this.predicate) {
-            this._tryPredicate(value);
-        }
-        else {
-            this.count++;
-        }
-    };
-    CountSubscriber.prototype._tryPredicate = function (value) {
-        var result;
-        try {
-            result = this.predicate(value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.count++;
-        }
-    };
-    CountSubscriber.prototype._complete = function () {
-        this.destination.next(this.count);
-        this.destination.complete();
-    };
-    return CountSubscriber;
-}(Subscriber));
-//# sourceMappingURL=count.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/count.js.map b/node_modules/rxjs/_esm5/internal/operators/count.js.map
deleted file mode 100644
index 0ddc924..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../../../src/internal/operators/count.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6D3C,MAAM,UAAU,KAAK,CAAI,SAAuE;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAjD,CAAiD,CAAC;AACtF,CAAC;AAED;IACE,uBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,2CAAa;IAI5C,yBAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,uCAAa,GAArB,UAAsB,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AArCD,CAAiC,UAAU,GAqC1C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/debounce.js b/node_modules/rxjs/_esm5/internal/operators/debounce.js
deleted file mode 100644
index 998e139..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/debounce.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function debounce(durationSelector) {
-    return function (source) { return source.lift(new DebounceOperator(durationSelector)); };
-}
-var DebounceOperator = /*@__PURE__*/ (function () {
-    function DebounceOperator(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    DebounceOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
-    };
-    return DebounceOperator;
-}());
-var DebounceSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DebounceSubscriber, _super);
-    function DebounceSubscriber(destination, durationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.durationSelector = durationSelector;
-        _this.hasValue = false;
-        _this.durationSubscription = null;
-        return _this;
-    }
-    DebounceSubscriber.prototype._next = function (value) {
-        try {
-            var result = this.durationSelector.call(this, value);
-            if (result) {
-                this._tryNext(value, result);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    DebounceSubscriber.prototype._complete = function () {
-        this.emitValue();
-        this.destination.complete();
-    };
-    DebounceSubscriber.prototype._tryNext = function (value, duration) {
-        var subscription = this.durationSubscription;
-        this.value = value;
-        this.hasValue = true;
-        if (subscription) {
-            subscription.unsubscribe();
-            this.remove(subscription);
-        }
-        subscription = subscribeToResult(this, duration);
-        if (subscription && !subscription.closed) {
-            this.add(this.durationSubscription = subscription);
-        }
-    };
-    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    };
-    DebounceSubscriber.prototype.notifyComplete = function () {
-        this.emitValue();
-    };
-    DebounceSubscriber.prototype.emitValue = function () {
-        if (this.hasValue) {
-            var value = this.value;
-            var subscription = this.durationSubscription;
-            if (subscription) {
-                this.durationSubscription = null;
-                subscription.unsubscribe();
-                this.remove(subscription);
-            }
-            this.value = null;
-            this.hasValue = false;
-            _super.prototype._next.call(this, value);
-        }
-    };
-    return DebounceSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=debounce.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/debounce.js.map b/node_modules/rxjs/_esm5/internal/operators/debounce.js.map
deleted file mode 100644
index 35981cb..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../../../src/internal/operators/debounce.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js
deleted file mode 100644
index ce18492..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-export function debounceTime(dueTime, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };
-}
-var DebounceTimeOperator = /*@__PURE__*/ (function () {
-    function DebounceTimeOperator(dueTime, scheduler) {
-        this.dueTime = dueTime;
-        this.scheduler = scheduler;
-    }
-    DebounceTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
-    };
-    return DebounceTimeOperator;
-}());
-var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DebounceTimeSubscriber, _super);
-    function DebounceTimeSubscriber(destination, dueTime, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.dueTime = dueTime;
-        _this.scheduler = scheduler;
-        _this.debouncedSubscription = null;
-        _this.lastValue = null;
-        _this.hasValue = false;
-        return _this;
-    }
-    DebounceTimeSubscriber.prototype._next = function (value) {
-        this.clearDebounce();
-        this.lastValue = value;
-        this.hasValue = true;
-        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));
-    };
-    DebounceTimeSubscriber.prototype._complete = function () {
-        this.debouncedNext();
-        this.destination.complete();
-    };
-    DebounceTimeSubscriber.prototype.debouncedNext = function () {
-        this.clearDebounce();
-        if (this.hasValue) {
-            var lastValue = this.lastValue;
-            this.lastValue = null;
-            this.hasValue = false;
-            this.destination.next(lastValue);
-        }
-    };
-    DebounceTimeSubscriber.prototype.clearDebounce = function () {
-        var debouncedSubscription = this.debouncedSubscription;
-        if (debouncedSubscription !== null) {
-            this.remove(debouncedSubscription);
-            debouncedSubscription.unsubscribe();
-            this.debouncedSubscription = null;
-        }
-    };
-    return DebounceTimeSubscriber;
-}(Subscriber));
-function dispatchNext(subscriber) {
-    subscriber.debouncedNext();
-}
-//# sourceMappingURL=debounceTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map
deleted file mode 100644
index b0f304e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAuD3C,MAAM,UAAU,YAAY,CAAI,OAAe,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC/E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAAC;AAC9F,CAAC;AAED;IACE,8BAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,kDAAa;IAKnD,gCAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAQ;QACf,eAAS,GAAT,SAAS,CAAe;QANpC,2BAAqB,GAAiB,IAAI,CAAC;QAC3C,eAAS,GAAM,IAAI,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,8CAAa,GAAb;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACT,IAAA,0BAAS,CAAU;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,8CAAa,GAArB;QACE,IAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,CAAwC,UAAU,GAgDjD;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js
deleted file mode 100644
index 3fa86ca..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function defaultIfEmpty(defaultValue) {
-    if (defaultValue === void 0) {
-        defaultValue = null;
-    }
-    return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };
-}
-var DefaultIfEmptyOperator = /*@__PURE__*/ (function () {
-    function DefaultIfEmptyOperator(defaultValue) {
-        this.defaultValue = defaultValue;
-    }
-    DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
-    };
-    return DefaultIfEmptyOperator;
-}());
-var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DefaultIfEmptySubscriber, _super);
-    function DefaultIfEmptySubscriber(destination, defaultValue) {
-        var _this = _super.call(this, destination) || this;
-        _this.defaultValue = defaultValue;
-        _this.isEmpty = true;
-        return _this;
-    }
-    DefaultIfEmptySubscriber.prototype._next = function (value) {
-        this.isEmpty = false;
-        this.destination.next(value);
-    };
-    DefaultIfEmptySubscriber.prototype._complete = function () {
-        if (this.isEmpty) {
-            this.destination.next(this.defaultValue);
-        }
-        this.destination.complete();
-    };
-    return DefaultIfEmptySubscriber;
-}(Subscriber));
-//# sourceMappingURL=defaultIfEmpty.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map
deleted file mode 100644
index 7cddd3f..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4C3C,MAAM,UAAU,cAAc,CAAO,YAAsB;IAAtB,6BAAA,EAAA,mBAAsB;IACzD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,EAA1E,CAA0E,CAAC;AAC/G,CAAC;AAED;IAEE,gCAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,qCAAI,GAAJ,UAAK,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAA6C,oDAAa;IAGxD,kCAAY,WAA8B,EAAU,YAAe;QAAnE,YACE,kBAAM,WAAW,CAAC,SACnB;QAFmD,kBAAY,GAAZ,YAAY,CAAG;QAF3D,aAAO,GAAY,IAAI,CAAC;;IAIhC,CAAC;IAES,wCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,4CAAS,GAAnB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,+BAAC;AAAD,CAAC,AAlBD,CAA6C,UAAU,GAkBtD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/delay.js b/node_modules/rxjs/_esm5/internal/operators/delay.js
deleted file mode 100644
index c54ee75..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/delay.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function delay(delay, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    var absoluteDelay = isDate(delay);
-    var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);
-    return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };
-}
-var DelayOperator = /*@__PURE__*/ (function () {
-    function DelayOperator(delay, scheduler) {
-        this.delay = delay;
-        this.scheduler = scheduler;
-    }
-    DelayOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
-    };
-    return DelayOperator;
-}());
-var DelaySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DelaySubscriber, _super);
-    function DelaySubscriber(destination, delay, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.delay = delay;
-        _this.scheduler = scheduler;
-        _this.queue = [];
-        _this.active = false;
-        _this.errored = false;
-        return _this;
-    }
-    DelaySubscriber.dispatch = function (state) {
-        var source = state.source;
-        var queue = source.queue;
-        var scheduler = state.scheduler;
-        var destination = state.destination;
-        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
-            queue.shift().notification.observe(destination);
-        }
-        if (queue.length > 0) {
-            var delay_1 = Math.max(0, queue[0].time - scheduler.now());
-            this.schedule(state, delay_1);
-        }
-        else {
-            this.unsubscribe();
-            source.active = false;
-        }
-    };
-    DelaySubscriber.prototype._schedule = function (scheduler) {
-        this.active = true;
-        var destination = this.destination;
-        destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {
-            source: this, destination: this.destination, scheduler: scheduler
-        }));
-    };
-    DelaySubscriber.prototype.scheduleNotification = function (notification) {
-        if (this.errored === true) {
-            return;
-        }
-        var scheduler = this.scheduler;
-        var message = new DelayMessage(scheduler.now() + this.delay, notification);
-        this.queue.push(message);
-        if (this.active === false) {
-            this._schedule(scheduler);
-        }
-    };
-    DelaySubscriber.prototype._next = function (value) {
-        this.scheduleNotification(Notification.createNext(value));
-    };
-    DelaySubscriber.prototype._error = function (err) {
-        this.errored = true;
-        this.queue = [];
-        this.destination.error(err);
-        this.unsubscribe();
-    };
-    DelaySubscriber.prototype._complete = function () {
-        this.scheduleNotification(Notification.createComplete());
-        this.unsubscribe();
-    };
-    return DelaySubscriber;
-}(Subscriber));
-var DelayMessage = /*@__PURE__*/ (function () {
-    function DelayMessage(time, notification) {
-        this.time = time;
-        this.notification = notification;
-    }
-    return DelayMessage;
-}());
-//# sourceMappingURL=delay.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/delay.js.map b/node_modules/rxjs/_esm5/internal/operators/delay.js.map
deleted file mode 100644
index 1e955da..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js
deleted file mode 100644
index cda6c7e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function delayWhen(delayDurationSelector, subscriptionDelay) {
-    if (subscriptionDelay) {
-        return function (source) {
-            return new SubscriptionDelayObservable(source, subscriptionDelay)
-                .lift(new DelayWhenOperator(delayDurationSelector));
-        };
-    }
-    return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };
-}
-var DelayWhenOperator = /*@__PURE__*/ (function () {
-    function DelayWhenOperator(delayDurationSelector) {
-        this.delayDurationSelector = delayDurationSelector;
-    }
-    DelayWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
-    };
-    return DelayWhenOperator;
-}());
-var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DelayWhenSubscriber, _super);
-    function DelayWhenSubscriber(destination, delayDurationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.delayDurationSelector = delayDurationSelector;
-        _this.completed = false;
-        _this.delayNotifierSubscriptions = [];
-        _this.index = 0;
-        return _this;
-    }
-    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(outerValue);
-        this.removeSubscription(innerSub);
-        this.tryComplete();
-    };
-    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-        var value = this.removeSubscription(innerSub);
-        if (value) {
-            this.destination.next(value);
-        }
-        this.tryComplete();
-    };
-    DelayWhenSubscriber.prototype._next = function (value) {
-        var index = this.index++;
-        try {
-            var delayNotifier = this.delayDurationSelector(value, index);
-            if (delayNotifier) {
-                this.tryDelay(delayNotifier, value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    DelayWhenSubscriber.prototype._complete = function () {
-        this.completed = true;
-        this.tryComplete();
-        this.unsubscribe();
-    };
-    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {
-        subscription.unsubscribe();
-        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
-        if (subscriptionIdx !== -1) {
-            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
-        }
-        return subscription.outerValue;
-    };
-    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {
-        var notifierSubscription = subscribeToResult(this, delayNotifier, value);
-        if (notifierSubscription && !notifierSubscription.closed) {
-            var destination = this.destination;
-            destination.add(notifierSubscription);
-            this.delayNotifierSubscriptions.push(notifierSubscription);
-        }
-    };
-    DelayWhenSubscriber.prototype.tryComplete = function () {
-        if (this.completed && this.delayNotifierSubscriptions.length === 0) {
-            this.destination.complete();
-        }
-    };
-    return DelayWhenSubscriber;
-}(OuterSubscriber));
-var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SubscriptionDelayObservable, _super);
-    function SubscriptionDelayObservable(source, subscriptionDelay) {
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.subscriptionDelay = subscriptionDelay;
-        return _this;
-    }
-    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {
-        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
-    };
-    return SubscriptionDelayObservable;
-}(Observable));
-var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SubscriptionDelaySubscriber, _super);
-    function SubscriptionDelaySubscriber(parent, source) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        _this.source = source;
-        _this.sourceSubscribed = false;
-        return _this;
-    }
-    SubscriptionDelaySubscriber.prototype._next = function (unused) {
-        this.subscribeToSource();
-    };
-    SubscriptionDelaySubscriber.prototype._error = function (err) {
-        this.unsubscribe();
-        this.parent.error(err);
-    };
-    SubscriptionDelaySubscriber.prototype._complete = function () {
-        this.unsubscribe();
-        this.subscribeToSource();
-    };
-    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {
-        if (!this.sourceSubscribed) {
-            this.sourceSubscribed = true;
-            this.unsubscribe();
-            this.source.subscribe(this.parent);
-        }
-    };
-    return SubscriptionDelaySubscriber;
-}(Subscriber));
-//# sourceMappingURL=delayWhen.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map
deleted file mode 100644
index f3b5557..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js
deleted file mode 100644
index 1de64c2..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function dematerialize() {
-    return function dematerializeOperatorFunction(source) {
-        return source.lift(new DeMaterializeOperator());
-    };
-}
-var DeMaterializeOperator = /*@__PURE__*/ (function () {
-    function DeMaterializeOperator() {
-    }
-    DeMaterializeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DeMaterializeSubscriber(subscriber));
-    };
-    return DeMaterializeOperator;
-}());
-var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DeMaterializeSubscriber, _super);
-    function DeMaterializeSubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    DeMaterializeSubscriber.prototype._next = function (value) {
-        value.observe(this.destination);
-    };
-    return DeMaterializeSubscriber;
-}(Subscriber));
-//# sourceMappingURL=dematerialize.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map
deleted file mode 100644
index ec9080a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkD3C,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,oCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACH,4BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAmE,mDAAa;IAC9E,iCAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,uCAAK,GAAf,UAAgB,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAAmE,UAAU,GAQ5E"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinct.js b/node_modules/rxjs/_esm5/internal/operators/distinct.js
deleted file mode 100644
index 482c905..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinct.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function distinct(keySelector, flushes) {
-    return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };
-}
-var DistinctOperator = /*@__PURE__*/ (function () {
-    function DistinctOperator(keySelector, flushes) {
-        this.keySelector = keySelector;
-        this.flushes = flushes;
-    }
-    DistinctOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
-    };
-    return DistinctOperator;
-}());
-var DistinctSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DistinctSubscriber, _super);
-    function DistinctSubscriber(destination, keySelector, flushes) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.values = new Set();
-        if (flushes) {
-            _this.add(subscribeToResult(_this, flushes));
-        }
-        return _this;
-    }
-    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values.clear();
-    };
-    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    DistinctSubscriber.prototype._next = function (value) {
-        if (this.keySelector) {
-            this._useKeySelector(value);
-        }
-        else {
-            this._finalizeNext(value, value);
-        }
-    };
-    DistinctSubscriber.prototype._useKeySelector = function (value) {
-        var key;
-        var destination = this.destination;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this._finalizeNext(key, value);
-    };
-    DistinctSubscriber.prototype._finalizeNext = function (key, value) {
-        var values = this.values;
-        if (!values.has(key)) {
-            values.add(key);
-            this.destination.next(value);
-        }
-    };
-    return DistinctSubscriber;
-}(OuterSubscriber));
-export { DistinctSubscriber };
-//# sourceMappingURL=distinct.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinct.js.map b/node_modules/rxjs/_esm5/internal/operators/distinct.js.map
deleted file mode 100644
index a4d9552..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../../../src/internal/operators/distinct.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA6D9D,MAAM,UAAU,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAvD,CAAuD,CAAC;AAC5F,CAAC;AAED;IACE,0BAAoB,WAA4B,EAAU,OAAwB;QAA9D,gBAAW,GAAX,WAAW,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAA8C,8CAAqB;IAGjE,4BAAY,WAA0B,EAAU,WAA4B,EAAE,OAAwB;QAAtG,YACE,kBAAM,WAAW,CAAC,SAKnB;QAN+C,iBAAW,GAAX,WAAW,CAAiB;QAFpE,YAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAC5C;;IACH,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,wCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,4CAAe,GAAvB,UAAwB,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,0CAAa,GAArB,UAAsB,GAAQ,EAAE,KAAQ;QAC9B,IAAA,oBAAM,CAAU;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEH,yBAAC;AAAD,CAAC,AAjDD,CAA8C,eAAe,GAiD5D"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js
deleted file mode 100644
index 7f1fd98..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function distinctUntilChanged(compare, keySelector) {
-    return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };
-}
-var DistinctUntilChangedOperator = /*@__PURE__*/ (function () {
-    function DistinctUntilChangedOperator(compare, keySelector) {
-        this.compare = compare;
-        this.keySelector = keySelector;
-    }
-    DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
-    };
-    return DistinctUntilChangedOperator;
-}());
-var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(DistinctUntilChangedSubscriber, _super);
-    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.hasKey = false;
-        if (typeof compare === 'function') {
-            _this.compare = compare;
-        }
-        return _this;
-    }
-    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {
-        return x === y;
-    };
-    DistinctUntilChangedSubscriber.prototype._next = function (value) {
-        var key;
-        try {
-            var keySelector = this.keySelector;
-            key = keySelector ? keySelector(value) : value;
-        }
-        catch (err) {
-            return this.destination.error(err);
-        }
-        var result = false;
-        if (this.hasKey) {
-            try {
-                var compare = this.compare;
-                result = compare(this.key, key);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-        }
-        else {
-            this.hasKey = true;
-        }
-        if (!result) {
-            this.key = key;
-            this.destination.next(value);
-        }
-    };
-    return DistinctUntilChangedSubscriber;
-}(Subscriber));
-//# sourceMappingURL=distinctUntilChanged.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map
deleted file mode 100644
index 7825477..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8D3C,MAAM,UAAU,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,EAAzE,CAAyE,CAAC;AAC9G,CAAC;AAED;IACE,sCAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,2CAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;IACH,mCAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAmD,0DAAa;IAI9D,wCAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAInB;QALmB,iBAAW,GAAX,WAAW,CAAa;QAJpC,YAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;;IACH,CAAC;IAEO,gDAAO,GAAf,UAAgB,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,8CAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACM,IAAA,8BAAW,CAAU;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,qCAAC;AAAD,CAAC,AAzCD,CAAmD,UAAU,GAyC5D"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js
deleted file mode 100644
index fbb0131..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */
-import { distinctUntilChanged } from './distinctUntilChanged';
-export function distinctUntilKeyChanged(key, compare) {
-    return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
-}
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map
deleted file mode 100644
index f5dff6e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8E9D,MAAM,UAAU,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,oBAAoB,CAAC,UAAC,CAAI,EAAE,CAAI,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC;AACrG,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/elementAt.js b/node_modules/rxjs/_esm5/internal/operators/elementAt.js
deleted file mode 100644
index edc4594..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/elementAt.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { filter } from './filter';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { take } from './take';
-export function elementAt(index, defaultValue) {
-    if (index < 0) {
-        throw new ArgumentOutOfRangeError();
-    }
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) {
-        return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue
-            ? defaultIfEmpty(defaultValue)
-            : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));
-    };
-}
-//# sourceMappingURL=elementAt.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map b/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map
deleted file mode 100644
index d9f04a7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../../../src/internal/operators/elementAt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkD9B,MAAM,UAAU,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;KAAE;IACvD,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,uBAAuB,EAAE,EAA7B,CAA6B,CAAC,CACtD,EANiC,CAMjC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/endWith.js b/node_modules/rxjs/_esm5/internal/operators/endWith.js
deleted file mode 100644
index 081f55a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/endWith.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */
-import { concat } from '../observable/concat';
-import { of } from '../observable/of';
-export function endWith() {
-    var array = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        array[_i] = arguments[_i];
-    }
-    return function (source) { return concat(source, of.apply(void 0, array)); };
-}
-//# sourceMappingURL=endWith.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/endWith.js.map b/node_modules/rxjs/_esm5/internal/operators/endWith.js.map
deleted file mode 100644
index 8b9f150..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/endWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"endWith.js","sources":["../../../src/internal/operators/endWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AA8DtC,MAAM,UAAU,OAAO;IAAI,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAC3D,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,MAAM,EAAE,EAAE,eAAI,KAAK,EAAmB,EAA7C,CAA6C,CAAC;AAClF,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/every.js b/node_modules/rxjs/_esm5/internal/operators/every.js
deleted file mode 100644
index 71f04b6..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/every.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function every(predicate, thisArg) {
-    return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };
-}
-var EveryOperator = /*@__PURE__*/ (function () {
-    function EveryOperator(predicate, thisArg, source) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-        this.source = source;
-    }
-    EveryOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
-    };
-    return EveryOperator;
-}());
-var EverySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(EverySubscriber, _super);
-    function EverySubscriber(destination, predicate, thisArg, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.thisArg = thisArg;
-        _this.source = source;
-        _this.index = 0;
-        _this.thisArg = thisArg || _this;
-        return _this;
-    }
-    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {
-        this.destination.next(everyValueMatch);
-        this.destination.complete();
-    };
-    EverySubscriber.prototype._next = function (value) {
-        var result = false;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (!result) {
-            this.notifyComplete(false);
-        }
-    };
-    EverySubscriber.prototype._complete = function () {
-        this.notifyComplete(true);
-    };
-    return EverySubscriber;
-}(Subscriber));
-//# sourceMappingURL=every.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/every.js.map b/node_modules/rxjs/_esm5/internal/operators/every.js.map
deleted file mode 100644
index 8e4b3d5..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../../../src/internal/operators/every.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwB3C,MAAM,UAAU,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAA1D,CAA0D,CAAC;AAC/F,CAAC;AAED;IACE,uBAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAiC,2CAAa;IAG5C,yBAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QAH1C,YAIE,kBAAM,WAAW,CAAC,SAEnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,aAAO,GAAP,OAAO,CAAK;QACZ,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAOxB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAEO,wCAAc,GAAtB,UAAuB,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAiC,UAAU,GAiC1C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaust.js b/node_modules/rxjs/_esm5/internal/operators/exhaust.js
deleted file mode 100644
index 143a778..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/exhaust.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function exhaust() {
-    return function (source) { return source.lift(new SwitchFirstOperator()); };
-}
-var SwitchFirstOperator = /*@__PURE__*/ (function () {
-    function SwitchFirstOperator() {
-    }
-    SwitchFirstOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SwitchFirstSubscriber(subscriber));
-    };
-    return SwitchFirstOperator;
-}());
-var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SwitchFirstSubscriber, _super);
-    function SwitchFirstSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasCompleted = false;
-        _this.hasSubscription = false;
-        return _this;
-    }
-    SwitchFirstSubscriber.prototype._next = function (value) {
-        if (!this.hasSubscription) {
-            this.hasSubscription = true;
-            this.add(subscribeToResult(this, value));
-        }
-    };
-    SwitchFirstSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-    };
-    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return SwitchFirstSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=exhaust.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map b/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map
deleted file mode 100644
index 745e22e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../../../src/internal/operators/exhaust.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAkD9D,MAAM,UAAU,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,iDAAqB;IAI1D,+BAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QALO,kBAAY,GAAY,KAAK,CAAC;QAC9B,qBAAe,GAAY,KAAK,CAAC;;IAIzC,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,yCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,8CAAc,GAAd,UAAe,QAAsB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AA7BD,CAAuC,eAAe,GA6BrD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js
deleted file mode 100644
index 883d2f9..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { map } from './map';
-import { from } from '../observable/from';
-export function exhaustMap(project, resultSelector) {
-    if (resultSelector) {
-        return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-    }
-    return function (source) {
-        return source.lift(new ExhaustMapOperator(project));
-    };
-}
-var ExhaustMapOperator = /*@__PURE__*/ (function () {
-    function ExhaustMapOperator(project) {
-        this.project = project;
-    }
-    ExhaustMapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
-    };
-    return ExhaustMapOperator;
-}());
-var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ExhaustMapSubscriber, _super);
-    function ExhaustMapSubscriber(destination, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.hasSubscription = false;
-        _this.hasCompleted = false;
-        _this.index = 0;
-        return _this;
-    }
-    ExhaustMapSubscriber.prototype._next = function (value) {
-        if (!this.hasSubscription) {
-            this.tryNext(value);
-        }
-    };
-    ExhaustMapSubscriber.prototype.tryNext = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.hasSubscription = true;
-        this._innerSub(result, value, index);
-    };
-    ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {
-        var innerSubscriber = new InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    ExhaustMapSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    ExhaustMapSubscriber.prototype.notifyError = function (err) {
-        this.destination.error(err);
-    };
-    ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return ExhaustMapSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=exhaustMap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map
deleted file mode 100644
index 660c513..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/expand.js b/node_modules/rxjs/_esm5/internal/operators/expand.js
deleted file mode 100644
index 43a3e2b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/expand.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function expand(project, concurrent, scheduler) {
-    if (concurrent === void 0) {
-        concurrent = Number.POSITIVE_INFINITY;
-    }
-    if (scheduler === void 0) {
-        scheduler = undefined;
-    }
-    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
-    return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };
-}
-var ExpandOperator = /*@__PURE__*/ (function () {
-    function ExpandOperator(project, concurrent, scheduler) {
-        this.project = project;
-        this.concurrent = concurrent;
-        this.scheduler = scheduler;
-    }
-    ExpandOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
-    };
-    return ExpandOperator;
-}());
-export { ExpandOperator };
-var ExpandSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ExpandSubscriber, _super);
-    function ExpandSubscriber(destination, project, concurrent, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.concurrent = concurrent;
-        _this.scheduler = scheduler;
-        _this.index = 0;
-        _this.active = 0;
-        _this.hasCompleted = false;
-        if (concurrent < Number.POSITIVE_INFINITY) {
-            _this.buffer = [];
-        }
-        return _this;
-    }
-    ExpandSubscriber.dispatch = function (arg) {
-        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;
-        subscriber.subscribeToProjection(result, value, index);
-    };
-    ExpandSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        if (destination.closed) {
-            this._complete();
-            return;
-        }
-        var index = this.index++;
-        if (this.active < this.concurrent) {
-            destination.next(value);
-            try {
-                var project = this.project;
-                var result = project(value, index);
-                if (!this.scheduler) {
-                    this.subscribeToProjection(result, value, index);
-                }
-                else {
-                    var state = { subscriber: this, result: result, value: value, index: index };
-                    var destination_1 = this.destination;
-                    destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));
-                }
-            }
-            catch (e) {
-                destination.error(e);
-            }
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {
-        this.active++;
-        var destination = this.destination;
-        destination.add(subscribeToResult(this, result, value, index));
-    };
-    ExpandSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this._next(innerValue);
-    };
-    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer && buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-    };
-    return ExpandSubscriber;
-}(OuterSubscriber));
-export { ExpandSubscriber };
-//# sourceMappingURL=expand.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/expand.js.map b/node_modules/rxjs/_esm5/internal/operators/expand.js.map
deleted file mode 100644
index 6db2258..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/filter.js b/node_modules/rxjs/_esm5/internal/operators/filter.js
deleted file mode 100644
index b442c00..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/filter.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function filter(predicate, thisArg) {
-    return function filterOperatorFunction(source) {
-        return source.lift(new FilterOperator(predicate, thisArg));
-    };
-}
-var FilterOperator = /*@__PURE__*/ (function () {
-    function FilterOperator(predicate, thisArg) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-    }
-    FilterOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
-    };
-    return FilterOperator;
-}());
-var FilterSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(FilterSubscriber, _super);
-    function FilterSubscriber(destination, predicate, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.thisArg = thisArg;
-        _this.count = 0;
-        return _this;
-    }
-    FilterSubscriber.prototype._next = function (value) {
-        var result;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.destination.next(value);
-        }
-    };
-    return FilterSubscriber;
-}(Subscriber));
-//# sourceMappingURL=filter.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/filter.js.map b/node_modules/rxjs/_esm5/internal/operators/filter.js.map
deleted file mode 100644
index 5f368bc..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../../../src/internal/operators/filter.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwD3C,MAAM,UAAU,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAAa;IAI7C,0BAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAFhC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAsC;QAC/C,aAAO,GAAP,OAAO,CAAK;QAJhC,WAAK,GAAW,CAAC,CAAC;;IAMlB,CAAC;IAIS,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,CAAkC,UAAU,GAwB3C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/finalize.js b/node_modules/rxjs/_esm5/internal/operators/finalize.js
deleted file mode 100644
index e863d39..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/finalize.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-export function finalize(callback) {
-    return function (source) { return source.lift(new FinallyOperator(callback)); };
-}
-var FinallyOperator = /*@__PURE__*/ (function () {
-    function FinallyOperator(callback) {
-        this.callback = callback;
-    }
-    FinallyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new FinallySubscriber(subscriber, this.callback));
-    };
-    return FinallyOperator;
-}());
-var FinallySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(FinallySubscriber, _super);
-    function FinallySubscriber(destination, callback) {
-        var _this = _super.call(this, destination) || this;
-        _this.add(new Subscription(callback));
-        return _this;
-    }
-    return FinallySubscriber;
-}(Subscriber));
-//# sourceMappingURL=finalize.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/finalize.js.map b/node_modules/rxjs/_esm5/internal/operators/finalize.js.map
deleted file mode 100644
index 7e4b0b8..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/finalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finalize.js","sources":["../../../src/internal/operators/finalize.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAI,QAAoB;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAA1C,CAA0C,CAAC;AAC/E,CAAC;AAED;IACE,yBAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,8BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IACH,sBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAmC,6CAAa;IAC9C,2BAAY,WAA0B,EAAE,QAAoB;QAA5D,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC,AALD,CAAmC,UAAU,GAK5C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/find.js b/node_modules/rxjs/_esm5/internal/operators/find.js
deleted file mode 100644
index 366e91d..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/find.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function find(predicate, thisArg) {
-    if (typeof predicate !== 'function') {
-        throw new TypeError('predicate is not a function');
-    }
-    return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };
-}
-var FindValueOperator = /*@__PURE__*/ (function () {
-    function FindValueOperator(predicate, source, yieldIndex, thisArg) {
-        this.predicate = predicate;
-        this.source = source;
-        this.yieldIndex = yieldIndex;
-        this.thisArg = thisArg;
-    }
-    FindValueOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
-    };
-    return FindValueOperator;
-}());
-export { FindValueOperator };
-var FindValueSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(FindValueSubscriber, _super);
-    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.yieldIndex = yieldIndex;
-        _this.thisArg = thisArg;
-        _this.index = 0;
-        return _this;
-    }
-    FindValueSubscriber.prototype.notifyComplete = function (value) {
-        var destination = this.destination;
-        destination.next(value);
-        destination.complete();
-        this.unsubscribe();
-    };
-    FindValueSubscriber.prototype._next = function (value) {
-        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;
-        var index = this.index++;
-        try {
-            var result = predicate.call(thisArg || this, value, index, this.source);
-            if (result) {
-                this.notifyComplete(this.yieldIndex ? index : value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    FindValueSubscriber.prototype._complete = function () {
-        this.notifyComplete(this.yieldIndex ? -1 : undefined);
-    };
-    return FindValueSubscriber;
-}(Subscriber));
-export { FindValueSubscriber };
-//# sourceMappingURL=find.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/find.js.map b/node_modules/rxjs/_esm5/internal/operators/find.js.map
deleted file mode 100644
index 7328095..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../../../src/internal/operators/find.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA8CzC,MAAM,UAAU,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,EAAlG,CAAkG,CAAC;AACvI,CAAC;AAED;IACE,2BAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,gCAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IACH,wBAAC;AAAD,CAAC,AAVD,IAUC;;AAOD;IAA4C,+CAAa;IAGvD,6BAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAJjC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,YAAM,GAAN,MAAM,CAAe;QACrB,gBAAU,GAAV,UAAU,CAAS;QACnB,aAAO,GAAP,OAAO,CAAM;QANzB,WAAK,GAAW,CAAC,CAAC;;IAQ1B,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAU;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QAChB,IAAA,SAA2B,EAA1B,wBAAS,EAAE,oBAAO,CAAS;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,IAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IACH,0BAAC;AAAD,CAAC,AAnCD,CAA4C,UAAU,GAmCrD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/findIndex.js b/node_modules/rxjs/_esm5/internal/operators/findIndex.js
deleted file mode 100644
index 536c949..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/findIndex.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */
-import { FindValueOperator } from '../operators/find';
-export function findIndex(predicate, thisArg) {
-    return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };
-}
-//# sourceMappingURL=findIndex.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map b/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map
deleted file mode 100644
index 41500ac..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../../../src/internal/operators/findIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0CtD,MAAM,UAAU,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,EAAvF,CAAuF,CAAC;AAC5H,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/first.js b/node_modules/rxjs/_esm5/internal/operators/first.js
deleted file mode 100644
index 4305b8d..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/first.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */
-import { EmptyError } from '../util/EmptyError';
-import { filter } from './filter';
-import { take } from './take';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { throwIfEmpty } from './throwIfEmpty';
-import { identity } from '../util/identity';
-export function first(predicate, defaultValue) {
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };
-}
-//# sourceMappingURL=first.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/first.js.map b/node_modules/rxjs/_esm5/internal/operators/first.js.map
deleted file mode 100644
index d43d396..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../../../src/internal/operators/first.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuE5C,MAAM,UAAU,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,IAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/groupBy.js b/node_modules/rxjs/_esm5/internal/operators/groupBy.js
deleted file mode 100644
index dba2ede..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/groupBy.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-export function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
-    return function (source) {
-        return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
-    };
-}
-var GroupByOperator = /*@__PURE__*/ (function () {
-    function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
-        this.keySelector = keySelector;
-        this.elementSelector = elementSelector;
-        this.durationSelector = durationSelector;
-        this.subjectSelector = subjectSelector;
-    }
-    GroupByOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
-    };
-    return GroupByOperator;
-}());
-var GroupBySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(GroupBySubscriber, _super);
-    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.elementSelector = elementSelector;
-        _this.durationSelector = durationSelector;
-        _this.subjectSelector = subjectSelector;
-        _this.groups = null;
-        _this.attemptedToUnsubscribe = false;
-        _this.count = 0;
-        return _this;
-    }
-    GroupBySubscriber.prototype._next = function (value) {
-        var key;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            this.error(err);
-            return;
-        }
-        this._group(value, key);
-    };
-    GroupBySubscriber.prototype._group = function (value, key) {
-        var groups = this.groups;
-        if (!groups) {
-            groups = this.groups = new Map();
-        }
-        var group = groups.get(key);
-        var element;
-        if (this.elementSelector) {
-            try {
-                element = this.elementSelector(value);
-            }
-            catch (err) {
-                this.error(err);
-            }
-        }
-        else {
-            element = value;
-        }
-        if (!group) {
-            group = (this.subjectSelector ? this.subjectSelector() : new Subject());
-            groups.set(key, group);
-            var groupedObservable = new GroupedObservable(key, group, this);
-            this.destination.next(groupedObservable);
-            if (this.durationSelector) {
-                var duration = void 0;
-                try {
-                    duration = this.durationSelector(new GroupedObservable(key, group));
-                }
-                catch (err) {
-                    this.error(err);
-                    return;
-                }
-                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
-            }
-        }
-        if (!group.closed) {
-            group.next(element);
-        }
-    };
-    GroupBySubscriber.prototype._error = function (err) {
-        var groups = this.groups;
-        if (groups) {
-            groups.forEach(function (group, key) {
-                group.error(err);
-            });
-            groups.clear();
-        }
-        this.destination.error(err);
-    };
-    GroupBySubscriber.prototype._complete = function () {
-        var groups = this.groups;
-        if (groups) {
-            groups.forEach(function (group, key) {
-                group.complete();
-            });
-            groups.clear();
-        }
-        this.destination.complete();
-    };
-    GroupBySubscriber.prototype.removeGroup = function (key) {
-        this.groups.delete(key);
-    };
-    GroupBySubscriber.prototype.unsubscribe = function () {
-        if (!this.closed) {
-            this.attemptedToUnsubscribe = true;
-            if (this.count === 0) {
-                _super.prototype.unsubscribe.call(this);
-            }
-        }
-    };
-    return GroupBySubscriber;
-}(Subscriber));
-var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(GroupDurationSubscriber, _super);
-    function GroupDurationSubscriber(key, group, parent) {
-        var _this = _super.call(this, group) || this;
-        _this.key = key;
-        _this.group = group;
-        _this.parent = parent;
-        return _this;
-    }
-    GroupDurationSubscriber.prototype._next = function (value) {
-        this.complete();
-    };
-    GroupDurationSubscriber.prototype._unsubscribe = function () {
-        var _a = this, parent = _a.parent, key = _a.key;
-        this.key = this.parent = null;
-        if (parent) {
-            parent.removeGroup(key);
-        }
-    };
-    return GroupDurationSubscriber;
-}(Subscriber));
-var GroupedObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(GroupedObservable, _super);
-    function GroupedObservable(key, groupSubject, refCountSubscription) {
-        var _this = _super.call(this) || this;
-        _this.key = key;
-        _this.groupSubject = groupSubject;
-        _this.refCountSubscription = refCountSubscription;
-        return _this;
-    }
-    GroupedObservable.prototype._subscribe = function (subscriber) {
-        var subscription = new Subscription();
-        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
-        if (refCountSubscription && !refCountSubscription.closed) {
-            subscription.add(new InnerRefCountSubscription(refCountSubscription));
-        }
-        subscription.add(groupSubject.subscribe(subscriber));
-        return subscription;
-    };
-    return GroupedObservable;
-}(Observable));
-export { GroupedObservable };
-var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(InnerRefCountSubscription, _super);
-    function InnerRefCountSubscription(parent) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        parent.count++;
-        return _this;
-    }
-    InnerRefCountSubscription.prototype.unsubscribe = function () {
-        var parent = this.parent;
-        if (!parent.closed && !this.closed) {
-            _super.prototype.unsubscribe.call(this);
-            parent.count -= 1;
-            if (parent.count === 0 && parent.attemptedToUnsubscribe) {
-                parent.unsubscribe();
-            }
-        }
-    };
-    return InnerRefCountSubscription;
-}(Subscription));
-//# sourceMappingURL=groupBy.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map b/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map
deleted file mode 100644
index d726fca..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../../../src/internal/operators/groupBy.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js
deleted file mode 100644
index 978266c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function ignoreElements() {
-    return function ignoreElementsOperatorFunction(source) {
-        return source.lift(new IgnoreElementsOperator());
-    };
-}
-var IgnoreElementsOperator = /*@__PURE__*/ (function () {
-    function IgnoreElementsOperator() {
-    }
-    IgnoreElementsOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new IgnoreElementsSubscriber(subscriber));
-    };
-    return IgnoreElementsOperator;
-}());
-var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(IgnoreElementsSubscriber, _super);
-    function IgnoreElementsSubscriber() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    IgnoreElementsSubscriber.prototype._next = function (unused) {
-    };
-    return IgnoreElementsSubscriber;
-}(Subscriber));
-//# sourceMappingURL=ignoreElements.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map
deleted file mode 100644
index f81484a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8B3C,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,qCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAA0C,oDAAa;IAAvD;;IAIA,CAAC;IAHW,wCAAK,GAAf,UAAgB,MAAS;IAEzB,CAAC;IACH,+BAAC;AAAD,CAAC,AAJD,CAA0C,UAAU,GAInD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/index.js b/node_modules/rxjs/_esm5/internal/operators/index.js
deleted file mode 100644
index 4c082a1..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/index.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { audit } from './audit';
-export { auditTime } from './auditTime';
-export { buffer } from './buffer';
-export { bufferCount } from './bufferCount';
-export { bufferTime } from './bufferTime';
-export { bufferToggle } from './bufferToggle';
-export { bufferWhen } from './bufferWhen';
-export { catchError } from './catchError';
-export { combineAll } from './combineAll';
-export { combineLatest } from './combineLatest';
-export { concat } from './concat';
-export { concatAll } from './concatAll';
-export { concatMap } from './concatMap';
-export { concatMapTo } from './concatMapTo';
-export { count } from './count';
-export { debounce } from './debounce';
-export { debounceTime } from './debounceTime';
-export { defaultIfEmpty } from './defaultIfEmpty';
-export { delay } from './delay';
-export { delayWhen } from './delayWhen';
-export { dematerialize } from './dematerialize';
-export { distinct } from './distinct';
-export { distinctUntilChanged } from './distinctUntilChanged';
-export { distinctUntilKeyChanged } from './distinctUntilKeyChanged';
-export { elementAt } from './elementAt';
-export { every } from './every';
-export { exhaust } from './exhaust';
-export { exhaustMap } from './exhaustMap';
-export { expand } from './expand';
-export { filter } from './filter';
-export { finalize } from './finalize';
-export { find } from './find';
-export { findIndex } from './findIndex';
-export { first } from './first';
-export { groupBy } from './groupBy';
-export { ignoreElements } from './ignoreElements';
-export { isEmpty } from './isEmpty';
-export { last } from './last';
-export { map } from './map';
-export { mapTo } from './mapTo';
-export { materialize } from './materialize';
-export { max } from './max';
-export { merge } from './merge';
-export { mergeAll } from './mergeAll';
-export { mergeMap } from './mergeMap';
-export { mergeMap as flatMap } from './mergeMap';
-export { mergeMapTo } from './mergeMapTo';
-export { mergeScan } from './mergeScan';
-export { min } from './min';
-export { multicast } from './multicast';
-export { observeOn } from './observeOn';
-export { onErrorResumeNext } from './onErrorResumeNext';
-export { pairwise } from './pairwise';
-export { partition } from './partition';
-export { pluck } from './pluck';
-export { publish } from './publish';
-export { publishBehavior } from './publishBehavior';
-export { publishLast } from './publishLast';
-export { publishReplay } from './publishReplay';
-export { race } from './race';
-export { reduce } from './reduce';
-export { repeat } from './repeat';
-export { repeatWhen } from './repeatWhen';
-export { retry } from './retry';
-export { retryWhen } from './retryWhen';
-export { refCount } from './refCount';
-export { sample } from './sample';
-export { sampleTime } from './sampleTime';
-export { scan } from './scan';
-export { sequenceEqual } from './sequenceEqual';
-export { share } from './share';
-export { shareReplay } from './shareReplay';
-export { single } from './single';
-export { skip } from './skip';
-export { skipLast } from './skipLast';
-export { skipUntil } from './skipUntil';
-export { skipWhile } from './skipWhile';
-export { startWith } from './startWith';
-export { subscribeOn } from './subscribeOn';
-export { switchAll } from './switchAll';
-export { switchMap } from './switchMap';
-export { switchMapTo } from './switchMapTo';
-export { take } from './take';
-export { takeLast } from './takeLast';
-export { takeUntil } from './takeUntil';
-export { takeWhile } from './takeWhile';
-export { tap } from './tap';
-export { throttle } from './throttle';
-export { throttleTime } from './throttleTime';
-export { timeInterval } from './timeInterval';
-export { timeout } from './timeout';
-export { timeoutWith } from './timeoutWith';
-export { timestamp } from './timestamp';
-export { toArray } from './toArray';
-export { window } from './window';
-export { windowCount } from './windowCount';
-export { windowTime } from './windowTime';
-export { windowToggle } from './windowToggle';
-export { windowWhen } from './windowWhen';
-export { withLatestFrom } from './withLatestFrom';
-export { zip } from './zip';
-export { zipAll } from './zipAll';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/index.js.map b/node_modules/rxjs/_esm5/internal/operators/index.js.map
deleted file mode 100644
index 9ba5647..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../../src/internal/operators/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js
deleted file mode 100644
index 320dfe7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function isEmpty() {
-    return function (source) { return source.lift(new IsEmptyOperator()); };
-}
-var IsEmptyOperator = /*@__PURE__*/ (function () {
-    function IsEmptyOperator() {
-    }
-    IsEmptyOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new IsEmptySubscriber(observer));
-    };
-    return IsEmptyOperator;
-}());
-var IsEmptySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(IsEmptySubscriber, _super);
-    function IsEmptySubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {
-        var destination = this.destination;
-        destination.next(isEmpty);
-        destination.complete();
-    };
-    IsEmptySubscriber.prototype._next = function (value) {
-        this.notifyComplete(false);
-    };
-    IsEmptySubscriber.prototype._complete = function () {
-        this.notifyComplete(true);
-    };
-    return IsEmptySubscriber;
-}(Subscriber));
-//# sourceMappingURL=isEmpty.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map
deleted file mode 100644
index 4cd3a66..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgE3C,MAAM,UAAU,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,EAAlC,CAAkC,CAAC;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,8BAAI,GAAJ,UAAM,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAgC,6CAAe;IAC7C,2BAAY,WAAgC;eAC1C,kBAAM,WAAW,CAAC;IACpB,CAAC;IAEO,0CAAc,GAAtB,UAAuB,OAAgB;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,qCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,wBAAC;AAAD,CAAC,AAnBD,CAAgC,UAAU,GAmBzC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/last.js b/node_modules/rxjs/_esm5/internal/operators/last.js
deleted file mode 100644
index 2d5d851..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/last.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */
-import { EmptyError } from '../util/EmptyError';
-import { filter } from './filter';
-import { takeLast } from './takeLast';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { identity } from '../util/identity';
-export function last(predicate, defaultValue) {
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };
-}
-//# sourceMappingURL=last.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/last.js.map b/node_modules/rxjs/_esm5/internal/operators/last.js.map
deleted file mode 100644
index c4fa2b8..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../../../src/internal/operators/last.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAkC5C,MAAM,UAAU,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,QAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/map.js b/node_modules/rxjs/_esm5/internal/operators/map.js
deleted file mode 100644
index 803b6b5..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/map.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function map(project, thisArg) {
-    return function mapOperation(source) {
-        if (typeof project !== 'function') {
-            throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
-        }
-        return source.lift(new MapOperator(project, thisArg));
-    };
-}
-var MapOperator = /*@__PURE__*/ (function () {
-    function MapOperator(project, thisArg) {
-        this.project = project;
-        this.thisArg = thisArg;
-    }
-    MapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
-    };
-    return MapOperator;
-}());
-export { MapOperator };
-var MapSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(MapSubscriber, _super);
-    function MapSubscriber(destination, project, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.count = 0;
-        _this.thisArg = thisArg || _this;
-        return _this;
-    }
-    MapSubscriber.prototype._next = function (value) {
-        var result;
-        try {
-            result = this.project.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return MapSubscriber;
-}(Subscriber));
-//# sourceMappingURL=map.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/map.js.map b/node_modules/rxjs/_esm5/internal/operators/map.js.map
deleted file mode 100644
index 7b59f9a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../../../src/internal/operators/map.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2C3C,MAAM,UAAU,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,qBAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,0BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,kBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAAkC,yCAAa;IAI7C,uBAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QAFxB,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,aAAO,GAAP,OAAO,CAAgC;QAJ3D,WAAK,GAAW,CAAC,CAAC;QAOhB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAIS,6BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AAvBD,CAAkC,UAAU,GAuB3C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/mapTo.js b/node_modules/rxjs/_esm5/internal/operators/mapTo.js
deleted file mode 100644
index 3a92b45..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mapTo.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function mapTo(value) {
-    return function (source) { return source.lift(new MapToOperator(value)); };
-}
-var MapToOperator = /*@__PURE__*/ (function () {
-    function MapToOperator(value) {
-        this.value = value;
-    }
-    MapToOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MapToSubscriber(subscriber, this.value));
-    };
-    return MapToOperator;
-}());
-var MapToSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(MapToSubscriber, _super);
-    function MapToSubscriber(destination, value) {
-        var _this = _super.call(this, destination) || this;
-        _this.value = value;
-        return _this;
-    }
-    MapToSubscriber.prototype._next = function (x) {
-        this.destination.next(this.value);
-    };
-    return MapToSubscriber;
-}(Subscriber));
-//# sourceMappingURL=mapTo.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map
deleted file mode 100644
index 8818dbc..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../../../src/internal/operators/mapTo.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAO,KAAQ;IAClC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAED;IAIE,uBAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACH,oBAAC;AAAD,CAAC,AAXD,IAWC;AAOD;IAAoC,2CAAa;IAI/C,yBAAY,WAA0B,EAAE,KAAQ;QAAhD,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IAES,+BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,sBAAC;AAAD,CAAC,AAZD,CAAoC,UAAU,GAY7C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/materialize.js b/node_modules/rxjs/_esm5/internal/operators/materialize.js
deleted file mode 100644
index 6371b5c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/materialize.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function materialize() {
-    return function materializeOperatorFunction(source) {
-        return source.lift(new MaterializeOperator());
-    };
-}
-var MaterializeOperator = /*@__PURE__*/ (function () {
-    function MaterializeOperator() {
-    }
-    MaterializeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MaterializeSubscriber(subscriber));
-    };
-    return MaterializeOperator;
-}());
-var MaterializeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(MaterializeSubscriber, _super);
-    function MaterializeSubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    MaterializeSubscriber.prototype._next = function (value) {
-        this.destination.next(Notification.createNext(value));
-    };
-    MaterializeSubscriber.prototype._error = function (err) {
-        var destination = this.destination;
-        destination.next(Notification.createError(err));
-        destination.complete();
-    };
-    MaterializeSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        destination.next(Notification.createComplete());
-        destination.complete();
-    };
-    return MaterializeSubscriber;
-}(Subscriber));
-//# sourceMappingURL=materialize.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/materialize.js.map b/node_modules/rxjs/_esm5/internal/operators/materialize.js.map
deleted file mode 100644
index 9c6c16c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../../../src/internal/operators/materialize.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqD/C,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,iDAAa;IAClD,+BAAY,WAAwC;eAClD,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,yCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AApBD,CAAuC,UAAU,GAoBhD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/max.js b/node_modules/rxjs/_esm5/internal/operators/max.js
deleted file mode 100644
index f9bac9d..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/max.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
-import { reduce } from './reduce';
-export function max(comparer) {
-    var max = (typeof comparer === 'function')
-        ? function (x, y) { return comparer(x, y) > 0 ? x : y; }
-        : function (x, y) { return x > y ? x : y; };
-    return reduce(max);
-}
-//# sourceMappingURL=max.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/max.js.map b/node_modules/rxjs/_esm5/internal/operators/max.js.map
deleted file mode 100644
index 77e7d72..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../../../src/internal/operators/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgDlC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/merge.js b/node_modules/rxjs/_esm5/internal/operators/merge.js
deleted file mode 100644
index 1db8d08..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/merge.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */
-import { merge as mergeStatic } from '../observable/merge';
-export function merge() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };
-}
-//# sourceMappingURL=merge.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/merge.js.map b/node_modules/rxjs/_esm5/internal/operators/merge.js.map
deleted file mode 100644
index 5df9381..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../../src/internal/operators/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsC3D,MAAM,UAAU,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,gBAAC,MAAM,SAAK,WAAW,GAAE,EAArD,CAAqD,CAAC;AAC1F,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js
deleted file mode 100644
index da69579..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */
-import { mergeMap } from './mergeMap';
-import { identity } from '../util/identity';
-export function mergeAll(concurrent) {
-    if (concurrent === void 0) {
-        concurrent = Number.POSITIVE_INFINITY;
-    }
-    return mergeMap(identity, concurrent);
-}
-//# sourceMappingURL=mergeAll.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map
deleted file mode 100644
index 43e5690..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6D5C,MAAM,UAAU,QAAQ,CAAI,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js
deleted file mode 100644
index fbd037f..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { map } from './map';
-import { from } from '../observable/from';
-export function mergeMap(project, resultSelector, concurrent) {
-    if (concurrent === void 0) {
-        concurrent = Number.POSITIVE_INFINITY;
-    }
-    if (typeof resultSelector === 'function') {
-        return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };
-    }
-    else if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };
-}
-var MergeMapOperator = /*@__PURE__*/ (function () {
-    function MergeMapOperator(project, concurrent) {
-        if (concurrent === void 0) {
-            concurrent = Number.POSITIVE_INFINITY;
-        }
-        this.project = project;
-        this.concurrent = concurrent;
-    }
-    MergeMapOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
-    };
-    return MergeMapOperator;
-}());
-export { MergeMapOperator };
-var MergeMapSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(MergeMapSubscriber, _super);
-    function MergeMapSubscriber(destination, project, concurrent) {
-        if (concurrent === void 0) {
-            concurrent = Number.POSITIVE_INFINITY;
-        }
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.concurrent = concurrent;
-        _this.hasCompleted = false;
-        _this.buffer = [];
-        _this.active = 0;
-        _this.index = 0;
-        return _this;
-    }
-    MergeMapSubscriber.prototype._next = function (value) {
-        if (this.active < this.concurrent) {
-            this._tryNext(value);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    MergeMapSubscriber.prototype._tryNext = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.active++;
-        this._innerSub(result, value, index);
-    };
-    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {
-        var innerSubscriber = new InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    MergeMapSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        this.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return MergeMapSubscriber;
-}(OuterSubscriber));
-export { MergeMapSubscriber };
-//# sourceMappingURL=mergeMap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map
deleted file mode 100644
index 24302fa..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js
deleted file mode 100644
index 9c898d5..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */
-import { mergeMap } from './mergeMap';
-export function mergeMapTo(innerObservable, resultSelector, concurrent) {
-    if (concurrent === void 0) {
-        concurrent = Number.POSITIVE_INFINITY;
-    }
-    if (typeof resultSelector === 'function') {
-        return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);
-    }
-    if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return mergeMap(function () { return innerObservable; }, concurrent);
-}
-//# sourceMappingURL=mergeMapTo.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map
deleted file mode 100644
index 5041d0c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiDtC,MAAM,UAAU,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,QAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,QAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js
deleted file mode 100644
index a474e2e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-export function mergeScan(accumulator, seed, concurrent) {
-    if (concurrent === void 0) {
-        concurrent = Number.POSITIVE_INFINITY;
-    }
-    return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };
-}
-var MergeScanOperator = /*@__PURE__*/ (function () {
-    function MergeScanOperator(accumulator, seed, concurrent) {
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.concurrent = concurrent;
-    }
-    MergeScanOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));
-    };
-    return MergeScanOperator;
-}());
-export { MergeScanOperator };
-var MergeScanSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(MergeScanSubscriber, _super);
-    function MergeScanSubscriber(destination, accumulator, acc, concurrent) {
-        var _this = _super.call(this, destination) || this;
-        _this.accumulator = accumulator;
-        _this.acc = acc;
-        _this.concurrent = concurrent;
-        _this.hasValue = false;
-        _this.hasCompleted = false;
-        _this.buffer = [];
-        _this.active = 0;
-        _this.index = 0;
-        return _this;
-    }
-    MergeScanSubscriber.prototype._next = function (value) {
-        if (this.active < this.concurrent) {
-            var index = this.index++;
-            var destination = this.destination;
-            var ish = void 0;
-            try {
-                var accumulator = this.accumulator;
-                ish = accumulator(this.acc, value, index);
-            }
-            catch (e) {
-                return destination.error(e);
-            }
-            this.active++;
-            this._innerSub(ish, value, index);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {
-        var innerSubscriber = new InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    MergeScanSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var destination = this.destination;
-        this.acc = innerValue;
-        this.hasValue = true;
-        destination.next(innerValue);
-    };
-    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-    };
-    return MergeScanSubscriber;
-}(OuterSubscriber));
-export { MergeScanSubscriber };
-//# sourceMappingURL=mergeScan.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map
deleted file mode 100644
index 2c70b25..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/min.js b/node_modules/rxjs/_esm5/internal/operators/min.js
deleted file mode 100644
index cbd3c6a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
-import { reduce } from './reduce';
-export function min(comparer) {
-    var min = (typeof comparer === 'function')
-        ? function (x, y) { return comparer(x, y) < 0 ? x : y; }
-        : function (x, y) { return x < y ? x : y; };
-    return reduce(min);
-}
-//# sourceMappingURL=min.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/min.js.map b/node_modules/rxjs/_esm5/internal/operators/min.js.map
deleted file mode 100644
index c62a934..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../../../src/internal/operators/min.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA+ClC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/multicast.js b/node_modules/rxjs/_esm5/internal/operators/multicast.js
deleted file mode 100644
index 531728b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/multicast.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */
-import { connectableObservableDescriptor } from '../observable/ConnectableObservable';
-export function multicast(subjectOrSubjectFactory, selector) {
-    return function multicastOperatorFunction(source) {
-        var subjectFactory;
-        if (typeof subjectOrSubjectFactory === 'function') {
-            subjectFactory = subjectOrSubjectFactory;
-        }
-        else {
-            subjectFactory = function subjectFactory() {
-                return subjectOrSubjectFactory;
-            };
-        }
-        if (typeof selector === 'function') {
-            return source.lift(new MulticastOperator(subjectFactory, selector));
-        }
-        var connectable = Object.create(source, connectableObservableDescriptor);
-        connectable.source = source;
-        connectable.subjectFactory = subjectFactory;
-        return connectable;
-    };
-}
-var MulticastOperator = /*@__PURE__*/ (function () {
-    function MulticastOperator(subjectFactory, selector) {
-        this.subjectFactory = subjectFactory;
-        this.selector = selector;
-    }
-    MulticastOperator.prototype.call = function (subscriber, source) {
-        var selector = this.selector;
-        var subject = this.subjectFactory();
-        var subscription = selector(subject).subscribe(subscriber);
-        subscription.add(source.subscribe(subject));
-        return subscription;
-    };
-    return MulticastOperator;
-}());
-export { MulticastOperator };
-//# sourceMappingURL=multicast.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/multicast.js.map b/node_modules/rxjs/_esm5/internal/operators/multicast.js.map
deleted file mode 100644
index 27e4bc9..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../../../src/internal/operators/multicast.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AA6B7G,MAAM,UAAU,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,IAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACjC,IAAA,wBAAQ,CAAU;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,wBAAC;AAAD,CAAC,AAXD,IAWC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/observeOn.js b/node_modules/rxjs/_esm5/internal/operators/observeOn.js
deleted file mode 100644
index a5ad11f..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/observeOn.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-export function observeOn(scheduler, delay) {
-    if (delay === void 0) {
-        delay = 0;
-    }
-    return function observeOnOperatorFunction(source) {
-        return source.lift(new ObserveOnOperator(scheduler, delay));
-    };
-}
-var ObserveOnOperator = /*@__PURE__*/ (function () {
-    function ObserveOnOperator(scheduler, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    ObserveOnOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
-    };
-    return ObserveOnOperator;
-}());
-export { ObserveOnOperator };
-var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ObserveOnSubscriber, _super);
-    function ObserveOnSubscriber(destination, scheduler, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        var _this = _super.call(this, destination) || this;
-        _this.scheduler = scheduler;
-        _this.delay = delay;
-        return _this;
-    }
-    ObserveOnSubscriber.dispatch = function (arg) {
-        var notification = arg.notification, destination = arg.destination;
-        notification.observe(destination);
-        this.unsubscribe();
-    };
-    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {
-        var destination = this.destination;
-        destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
-    };
-    ObserveOnSubscriber.prototype._next = function (value) {
-        this.scheduleMessage(Notification.createNext(value));
-    };
-    ObserveOnSubscriber.prototype._error = function (err) {
-        this.scheduleMessage(Notification.createError(err));
-        this.unsubscribe();
-    };
-    ObserveOnSubscriber.prototype._complete = function () {
-        this.scheduleMessage(Notification.createComplete());
-        this.unsubscribe();
-    };
-    return ObserveOnSubscriber;
-}(Subscriber));
-export { ObserveOnSubscriber };
-var ObserveOnMessage = /*@__PURE__*/ (function () {
-    function ObserveOnMessage(notification, destination) {
-        this.notification = notification;
-        this.destination = destination;
-    }
-    return ObserveOnMessage;
-}());
-export { ObserveOnMessage };
-//# sourceMappingURL=observeOn.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map b/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map
deleted file mode 100644
index c41d515..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAA4C,+CAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,UAAU,GAoCrD;;AAED;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js
deleted file mode 100644
index acf1628..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { from } from '../observable/from';
-import { isArray } from '../util/isArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function onErrorResumeNext() {
-    var nextSources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        nextSources[_i] = arguments[_i];
-    }
-    if (nextSources.length === 1 && isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };
-}
-export function onErrorResumeNextStatic() {
-    var nextSources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        nextSources[_i] = arguments[_i];
-    }
-    var source = null;
-    if (nextSources.length === 1 && isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    source = nextSources.shift();
-    return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));
-}
-var OnErrorResumeNextOperator = /*@__PURE__*/ (function () {
-    function OnErrorResumeNextOperator(nextSources) {
-        this.nextSources = nextSources;
-    }
-    OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
-    };
-    return OnErrorResumeNextOperator;
-}());
-var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(OnErrorResumeNextSubscriber, _super);
-    function OnErrorResumeNextSubscriber(destination, nextSources) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.nextSources = nextSources;
-        return _this;
-    }
-    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {
-        this.subscribeToNextSource();
-    };
-    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.subscribeToNextSource();
-    };
-    OnErrorResumeNextSubscriber.prototype._error = function (err) {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    };
-    OnErrorResumeNextSubscriber.prototype._complete = function () {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    };
-    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {
-        var next = this.nextSources.shift();
-        if (!!next) {
-            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            var innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    return OnErrorResumeNextSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=onErrorResumeNext.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map
deleted file mode 100644
index e4a6512..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/pairwise.js b/node_modules/rxjs/_esm5/internal/operators/pairwise.js
deleted file mode 100644
index 50b742b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/pairwise.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function pairwise() {
-    return function (source) { return source.lift(new PairwiseOperator()); };
-}
-var PairwiseOperator = /*@__PURE__*/ (function () {
-    function PairwiseOperator() {
-    }
-    PairwiseOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new PairwiseSubscriber(subscriber));
-    };
-    return PairwiseOperator;
-}());
-var PairwiseSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(PairwiseSubscriber, _super);
-    function PairwiseSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasPrev = false;
-        return _this;
-    }
-    PairwiseSubscriber.prototype._next = function (value) {
-        var pair;
-        if (this.hasPrev) {
-            pair = [this.prev, value];
-        }
-        else {
-            this.hasPrev = true;
-        }
-        this.prev = value;
-        if (pair) {
-            this.destination.next(pair);
-        }
-    };
-    return PairwiseSubscriber;
-}(Subscriber));
-//# sourceMappingURL=pairwise.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map b/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map
deleted file mode 100644
index b22c563..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../../../src/internal/operators/pairwise.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8C3C,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAnC,CAAmC,CAAC;AACxE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,+BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA+B;QAA3C,YACE,kBAAM,WAAW,CAAC,SACnB;QAJO,aAAO,GAAY,KAAK,CAAC;;IAIjC,CAAC;IAED,kCAAK,GAAL,UAAM,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAvBD,CAAoC,UAAU,GAuB7C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/partition.js b/node_modules/rxjs/_esm5/internal/operators/partition.js
deleted file mode 100644
index 5dce311..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/partition.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */
-import { not } from '../util/not';
-import { filter } from './filter';
-export function partition(predicate, thisArg) {
-    return function (source) {
-        return [
-            filter(predicate, thisArg)(source),
-            filter(not(predicate, thisArg))(source)
-        ];
-    };
-}
-//# sourceMappingURL=partition.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/partition.js.map b/node_modules/rxjs/_esm5/internal/operators/partition.js.map
deleted file mode 100644
index 510790b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../../src/internal/operators/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoDlC,MAAM,UAAU,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA;QAChC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,EAHD,CAGC,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/pluck.js b/node_modules/rxjs/_esm5/internal/operators/pluck.js
deleted file mode 100644
index aa1f4da..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/pluck.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/** PURE_IMPORTS_START _map PURE_IMPORTS_END */
-import { map } from './map';
-export function pluck() {
-    var properties = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        properties[_i] = arguments[_i];
-    }
-    var length = properties.length;
-    if (length === 0) {
-        throw new Error('list of properties cannot be empty.');
-    }
-    return function (source) { return map(plucker(properties, length))(source); };
-}
-function plucker(props, length) {
-    var mapper = function (x) {
-        var currentProp = x;
-        for (var i = 0; i < length; i++) {
-            var p = currentProp[props[i]];
-            if (typeof p !== 'undefined') {
-                currentProp = p;
-            }
-            else {
-                return undefined;
-            }
-        }
-        return currentProp;
-    };
-    return mapper;
-}
-//# sourceMappingURL=pluck.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/pluck.js.map b/node_modules/rxjs/_esm5/internal/operators/pluck.js.map
deleted file mode 100644
index d1661b4..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../../../src/internal/operators/pluck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA6C5B,MAAM,UAAU,KAAK;IAAO,oBAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,+BAAuB;;IACjD,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,IAAM,MAAM,GAAG,UAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/publish.js b/node_modules/rxjs/_esm5/internal/operators/publish.js
deleted file mode 100644
index 34e283c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publish.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */
-import { Subject } from '../Subject';
-import { multicast } from './multicast';
-export function publish(selector) {
-    return selector ?
-        multicast(function () { return new Subject(); }, selector) :
-        multicast(new Subject());
-}
-//# sourceMappingURL=publish.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/publish.js.map b/node_modules/rxjs/_esm5/internal/operators/publish.js.map
deleted file mode 100644
index 7a5f094..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../../../src/internal/operators/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA4DxC,MAAM,UAAU,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,SAAS,CAAC,cAAM,OAAA,IAAI,OAAO,EAAK,EAAhB,CAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js
deleted file mode 100644
index ce55a7f..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */
-import { BehaviorSubject } from '../BehaviorSubject';
-import { multicast } from './multicast';
-export function publishBehavior(value) {
-    return function (source) { return multicast(new BehaviorSubject(value))(source); };
-}
-//# sourceMappingURL=publishBehavior.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map
deleted file mode 100644
index 00aedd1..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,MAAM,UAAU,eAAe,CAAI,KAAQ;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,EAA5E,CAA4E,CAAC;AACjH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishLast.js b/node_modules/rxjs/_esm5/internal/operators/publishLast.js
deleted file mode 100644
index 93ec13e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */
-import { AsyncSubject } from '../AsyncSubject';
-import { multicast } from './multicast';
-export function publishLast() {
-    return function (source) { return multicast(new AsyncSubject())(source); };
-}
-//# sourceMappingURL=publishLast.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map b/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map
deleted file mode 100644
index 4b63d00..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../../../src/internal/operators/publishLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8DxC,MAAM,UAAU,WAAW;IACzB,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js
deleted file mode 100644
index 9dfb138..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */
-import { ReplaySubject } from '../ReplaySubject';
-import { multicast } from './multicast';
-export function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {
-    if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
-        scheduler = selectorOrScheduler;
-    }
-    var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
-    var subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-    return function (source) { return multicast(function () { return subject; }, selector)(source); };
-}
-//# sourceMappingURL=publishReplay.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map
deleted file mode 100644
index 74f7dcd..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,UAAU,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,IAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,IAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,cAAM,OAAA,OAAO,EAAP,CAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,EAAtE,CAAsE,CAAC;AAC3G,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/race.js b/node_modules/rxjs/_esm5/internal/operators/race.js
deleted file mode 100644
index 5168c21..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/race.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */
-import { isArray } from '../util/isArray';
-import { race as raceStatic } from '../observable/race';
-export function race() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function raceOperatorFunction(source) {
-        if (observables.length === 1 && isArray(observables[0])) {
-            observables = observables[0];
-        }
-        return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));
-    };
-}
-//# sourceMappingURL=race.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/race.js.map b/node_modules/rxjs/_esm5/internal/operators/race.js.map
deleted file mode 100644
index 27b66a6..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../../src/internal/operators/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,MAAM,UAAU,IAAI;IAAI,qBAAmD;SAAnD,UAAmD,EAAnD,qBAAmD,EAAnD,IAAmD;QAAnD,gCAAmD;;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,gBAAC,MAAM,SAAM,WAA+B,GAAE,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/reduce.js b/node_modules/rxjs/_esm5/internal/operators/reduce.js
deleted file mode 100644
index ffd0e00..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/reduce.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */
-import { scan } from './scan';
-import { takeLast } from './takeLast';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { pipe } from '../util/pipe';
-export function reduce(accumulator, seed) {
-    if (arguments.length >= 2) {
-        return function reduceOperatorFunctionWithSeed(source) {
-            return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);
-        };
-    }
-    return function reduceOperatorFunction(source) {
-        return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);
-    };
-}
-//# sourceMappingURL=reduce.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/reduce.js.map b/node_modules/rxjs/_esm5/internal/operators/reduce.js.map
deleted file mode 100644
index b8e0bc5..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA2DpC,MAAM,UAAU,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAK,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EACzE,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/refCount.js b/node_modules/rxjs/_esm5/internal/operators/refCount.js
deleted file mode 100644
index f4c6b6a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/refCount.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function refCount() {
-    return function refCountOperatorFunction(source) {
-        return source.lift(new RefCountOperator(source));
-    };
-}
-var RefCountOperator = /*@__PURE__*/ (function () {
-    function RefCountOperator(connectable) {
-        this.connectable = connectable;
-    }
-    RefCountOperator.prototype.call = function (subscriber, source) {
-        var connectable = this.connectable;
-        connectable._refCount++;
-        var refCounter = new RefCountSubscriber(subscriber, connectable);
-        var subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    };
-    return RefCountOperator;
-}());
-var RefCountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RefCountSubscriber, _super);
-    function RefCountSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    RefCountSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        var refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        var connection = this.connection;
-        var sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    };
-    return RefCountSubscriber;
-}(Subscriber));
-//# sourceMappingURL=refCount.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/refCount.js.map b/node_modules/rxjs/_esm5/internal/operators/refCount.js.map
deleted file mode 100644
index bd534ca..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/refCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"refCount.js","sources":["../../../src/internal/operators/refCount.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2D3C,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QAEjC,IAAA,8BAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,IAiBC;AAED;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAClB,WAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,yCAAY,GAAtB;QAEU,IAAA,8BAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BO,IAAA,4BAAU,CAAU;QAC5B,IAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA9DD,CAAoC,UAAU,GA8D7C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/repeat.js b/node_modules/rxjs/_esm5/internal/operators/repeat.js
deleted file mode 100644
index 7b21c64..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/repeat.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { empty } from '../observable/empty';
-export function repeat(count) {
-    if (count === void 0) {
-        count = -1;
-    }
-    return function (source) {
-        if (count === 0) {
-            return empty();
-        }
-        else if (count < 0) {
-            return source.lift(new RepeatOperator(-1, source));
-        }
-        else {
-            return source.lift(new RepeatOperator(count - 1, source));
-        }
-    };
-}
-var RepeatOperator = /*@__PURE__*/ (function () {
-    function RepeatOperator(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    RepeatOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
-    };
-    return RepeatOperator;
-}());
-var RepeatSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RepeatSubscriber, _super);
-    function RepeatSubscriber(destination, count, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.count = count;
-        _this.source = source;
-        return _this;
-    }
-    RepeatSubscriber.prototype.complete = function () {
-        if (!this.isStopped) {
-            var _a = this, source = _a.source, count = _a.count;
-            if (count === 0) {
-                return _super.prototype.complete.call(this);
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    };
-    return RepeatSubscriber;
-}(Subscriber));
-//# sourceMappingURL=repeat.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/repeat.js.map b/node_modules/rxjs/_esm5/internal/operators/repeat.js.map
deleted file mode 100644
index f3efd03..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../../../src/internal/operators/repeat.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA2D5C,MAAM,UAAU,MAAM,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IAC1C,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,qBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAkC,4CAAa;IAC7C,0BAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,mCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,QAAQ,WAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,UAAU,GAiB3C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js
deleted file mode 100644
index c074534..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function repeatWhen(notifier) {
-    return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };
-}
-var RepeatWhenOperator = /*@__PURE__*/ (function () {
-    function RepeatWhenOperator(notifier) {
-        this.notifier = notifier;
-    }
-    RepeatWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
-    };
-    return RepeatWhenOperator;
-}());
-var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RepeatWhenSubscriber, _super);
-    function RepeatWhenSubscriber(destination, notifier, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.notifier = notifier;
-        _this.source = source;
-        _this.sourceIsBeingSubscribedTo = true;
-        return _this;
-    }
-    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.sourceIsBeingSubscribedTo = true;
-        this.source.subscribe(this);
-    };
-    RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-        if (this.sourceIsBeingSubscribedTo === false) {
-            return _super.prototype.complete.call(this);
-        }
-    };
-    RepeatWhenSubscriber.prototype.complete = function () {
-        this.sourceIsBeingSubscribedTo = false;
-        if (!this.isStopped) {
-            if (!this.retries) {
-                this.subscribeToRetries();
-            }
-            if (!this.retriesSubscription || this.retriesSubscription.closed) {
-                return _super.prototype.complete.call(this);
-            }
-            this._unsubscribeAndRecycle();
-            this.notifications.next();
-        }
-    };
-    RepeatWhenSubscriber.prototype._unsubscribe = function () {
-        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;
-        if (notifications) {
-            notifications.unsubscribe();
-            this.notifications = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    };
-    RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {
-        var _unsubscribe = this._unsubscribe;
-        this._unsubscribe = null;
-        _super.prototype._unsubscribeAndRecycle.call(this);
-        this._unsubscribe = _unsubscribe;
-        return this;
-    };
-    RepeatWhenSubscriber.prototype.subscribeToRetries = function () {
-        this.notifications = new Subject();
-        var retries;
-        try {
-            var notifier = this.notifier;
-            retries = notifier(this.notifications);
-        }
-        catch (e) {
-            return _super.prototype.complete.call(this);
-        }
-        this.retries = retries;
-        this.retriesSubscription = subscribeToResult(this, retries);
-    };
-    return RepeatWhenSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=repeatWhen.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map
deleted file mode 100644
index 39f1dd7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/retry.js b/node_modules/rxjs/_esm5/internal/operators/retry.js
deleted file mode 100644
index 854f94c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/retry.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function retry(count) {
-    if (count === void 0) {
-        count = -1;
-    }
-    return function (source) { return source.lift(new RetryOperator(count, source)); };
-}
-var RetryOperator = /*@__PURE__*/ (function () {
-    function RetryOperator(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    RetryOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
-    };
-    return RetryOperator;
-}());
-var RetrySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RetrySubscriber, _super);
-    function RetrySubscriber(destination, count, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.count = count;
-        _this.source = source;
-        return _this;
-    }
-    RetrySubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var _a = this, source = _a.source, count = _a.count;
-            if (count === 0) {
-                return _super.prototype.error.call(this, err);
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    };
-    return RetrySubscriber;
-}(Subscriber));
-//# sourceMappingURL=retry.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/retry.js.map b/node_modules/rxjs/_esm5/internal/operators/retry.js.map
deleted file mode 100644
index 0c6331c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../../../src/internal/operators/retry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,KAAK,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,uBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,2CAAa;IAC5C,yBAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,KAAK,YAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjBD,CAAiC,UAAU,GAiB1C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js
deleted file mode 100644
index 4cf8853..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function retryWhen(notifier) {
-    return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };
-}
-var RetryWhenOperator = /*@__PURE__*/ (function () {
-    function RetryWhenOperator(notifier, source) {
-        this.notifier = notifier;
-        this.source = source;
-    }
-    RetryWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
-    };
-    return RetryWhenOperator;
-}());
-var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(RetryWhenSubscriber, _super);
-    function RetryWhenSubscriber(destination, notifier, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.notifier = notifier;
-        _this.source = source;
-        return _this;
-    }
-    RetryWhenSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var errors = this.errors;
-            var retries = this.retries;
-            var retriesSubscription = this.retriesSubscription;
-            if (!retries) {
-                errors = new Subject();
-                try {
-                    var notifier = this.notifier;
-                    retries = notifier(errors);
-                }
-                catch (e) {
-                    return _super.prototype.error.call(this, e);
-                }
-                retriesSubscription = subscribeToResult(this, retries);
-            }
-            else {
-                this.errors = null;
-                this.retriesSubscription = null;
-            }
-            this._unsubscribeAndRecycle();
-            this.errors = errors;
-            this.retries = retries;
-            this.retriesSubscription = retriesSubscription;
-            errors.next(err);
-        }
-    };
-    RetryWhenSubscriber.prototype._unsubscribe = function () {
-        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;
-        if (errors) {
-            errors.unsubscribe();
-            this.errors = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    };
-    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var _unsubscribe = this._unsubscribe;
-        this._unsubscribe = null;
-        this._unsubscribeAndRecycle();
-        this._unsubscribe = _unsubscribe;
-        this.source.subscribe(this);
-    };
-    return RetryWhenSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=retryWhen.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map
deleted file mode 100644
index 5d602b7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/sample.js b/node_modules/rxjs/_esm5/internal/operators/sample.js
deleted file mode 100644
index 47f23ee..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sample.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function sample(notifier) {
-    return function (source) { return source.lift(new SampleOperator(notifier)); };
-}
-var SampleOperator = /*@__PURE__*/ (function () {
-    function SampleOperator(notifier) {
-        this.notifier = notifier;
-    }
-    SampleOperator.prototype.call = function (subscriber, source) {
-        var sampleSubscriber = new SampleSubscriber(subscriber);
-        var subscription = source.subscribe(sampleSubscriber);
-        subscription.add(subscribeToResult(sampleSubscriber, this.notifier));
-        return subscription;
-    };
-    return SampleOperator;
-}());
-var SampleSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SampleSubscriber, _super);
-    function SampleSubscriber() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.hasValue = false;
-        return _this;
-    }
-    SampleSubscriber.prototype._next = function (value) {
-        this.value = value;
-        this.hasValue = true;
-    };
-    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    };
-    SampleSubscriber.prototype.notifyComplete = function () {
-        this.emitValue();
-    };
-    SampleSubscriber.prototype.emitValue = function () {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.value);
-        }
-    };
-    return SampleSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=sample.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/sample.js.map b/node_modules/rxjs/_esm5/internal/operators/sample.js.map
deleted file mode 100644
index be04902..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../../../src/internal/operators/sample.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA4C9D,MAAM,UAAU,MAAM,CAAI,QAAyB;IACjD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAED;IACE,wBAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAqC,4CAAqB;IAA1D;QAAA,qEAyBC;QAvBS,cAAQ,GAAY,KAAK,CAAC;;IAuBpC,CAAC;IArBW,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,oCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAzBD,CAAqC,eAAe,GAyBnD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js
deleted file mode 100644
index 06bef93..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-export function sampleTime(period, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };
-}
-var SampleTimeOperator = /*@__PURE__*/ (function () {
-    function SampleTimeOperator(period, scheduler) {
-        this.period = period;
-        this.scheduler = scheduler;
-    }
-    SampleTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
-    };
-    return SampleTimeOperator;
-}());
-var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SampleTimeSubscriber, _super);
-    function SampleTimeSubscriber(destination, period, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.period = period;
-        _this.scheduler = scheduler;
-        _this.hasValue = false;
-        _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));
-        return _this;
-    }
-    SampleTimeSubscriber.prototype._next = function (value) {
-        this.lastValue = value;
-        this.hasValue = true;
-    };
-    SampleTimeSubscriber.prototype.notifyNext = function () {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.lastValue);
-        }
-    };
-    return SampleTimeSubscriber;
-}(Subscriber));
-function dispatchNotification(state) {
-    var subscriber = state.subscriber, period = state.period;
-    subscriber.notifyNext();
-    this.schedule(state, period);
-}
-//# sourceMappingURL=sampleTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map
deleted file mode 100644
index bcdb4eb..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA6C3C,MAAM,UAAU,UAAU,CAAI,MAAc,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC5E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAED;IACE,4BAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAsC,gDAAa;IAIjD,8BAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,YAAM,GAAN,MAAM,CAAQ;QACd,eAAS,GAAT,SAAS,CAAe;QAJ5C,cAAQ,GAAY,KAAK,CAAC;QAMxB,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC;;IAC3F,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,yCAAU,GAAV;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAtBD,CAAsC,UAAU,GAsB/C;AAED,SAAS,oBAAoB,CAAgC,KAAU;IAC/D,IAAA,6BAAU,EAAE,qBAAM,CAAW;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/scan.js b/node_modules/rxjs/_esm5/internal/operators/scan.js
deleted file mode 100644
index be7e768..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/scan.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function scan(accumulator, seed) {
-    var hasSeed = false;
-    if (arguments.length >= 2) {
-        hasSeed = true;
-    }
-    return function scanOperatorFunction(source) {
-        return source.lift(new ScanOperator(accumulator, seed, hasSeed));
-    };
-}
-var ScanOperator = /*@__PURE__*/ (function () {
-    function ScanOperator(accumulator, seed, hasSeed) {
-        if (hasSeed === void 0) {
-            hasSeed = false;
-        }
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.hasSeed = hasSeed;
-    }
-    ScanOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
-    };
-    return ScanOperator;
-}());
-var ScanSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ScanSubscriber, _super);
-    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {
-        var _this = _super.call(this, destination) || this;
-        _this.accumulator = accumulator;
-        _this._seed = _seed;
-        _this.hasSeed = hasSeed;
-        _this.index = 0;
-        return _this;
-    }
-    Object.defineProperty(ScanSubscriber.prototype, "seed", {
-        get: function () {
-            return this._seed;
-        },
-        set: function (value) {
-            this.hasSeed = true;
-            this._seed = value;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    ScanSubscriber.prototype._next = function (value) {
-        if (!this.hasSeed) {
-            this.seed = value;
-            this.destination.next(value);
-        }
-        else {
-            return this._tryNext(value);
-        }
-    };
-    ScanSubscriber.prototype._tryNext = function (value) {
-        var index = this.index++;
-        var result;
-        try {
-            result = this.accumulator(this.seed, value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-        this.seed = result;
-        this.destination.next(result);
-    };
-    return ScanSubscriber;
-}(Subscriber));
-//# sourceMappingURL=scan.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/scan.js.map b/node_modules/rxjs/_esm5/internal/operators/scan.js.map
deleted file mode 100644
index f3543ea..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../../../src/internal/operators/scan.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoD3C,MAAM,UAAU,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,sBAAoB,WAAmD,EAAU,IAAY,EAAU,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;IACH,mBAAC;AAAD,CAAC,AAND,IAMC;AAOD;IAAmC,0CAAa;IAY9C,wBAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QADpC,YAEE,kBAAM,WAAW,CAAC,SACnB;QAH+C,iBAAW,GAAX,WAAW,CAAwC;QAAU,WAAK,GAAL,KAAK,CAAO;QACrG,aAAO,GAAP,OAAO,CAAS;QAZ5B,WAAK,GAAW,CAAC,CAAC;;IAc1B,CAAC;IAZD,sBAAI,gCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAY;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OALA;IAYS,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,iCAAQ,GAAhB,UAAiB,KAAQ;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,qBAAC;AAAD,CAAC,AArCD,CAAmC,UAAU,GAqC5C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js
deleted file mode 100644
index f22b97c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function sequenceEqual(compareTo, comparator) {
-    return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };
-}
-var SequenceEqualOperator = /*@__PURE__*/ (function () {
-    function SequenceEqualOperator(compareTo, comparator) {
-        this.compareTo = compareTo;
-        this.comparator = comparator;
-    }
-    SequenceEqualOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));
-    };
-    return SequenceEqualOperator;
-}());
-export { SequenceEqualOperator };
-var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SequenceEqualSubscriber, _super);
-    function SequenceEqualSubscriber(destination, compareTo, comparator) {
-        var _this = _super.call(this, destination) || this;
-        _this.compareTo = compareTo;
-        _this.comparator = comparator;
-        _this._a = [];
-        _this._b = [];
-        _this._oneComplete = false;
-        _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));
-        return _this;
-    }
-    SequenceEqualSubscriber.prototype._next = function (value) {
-        if (this._oneComplete && this._b.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._a.push(value);
-            this.checkValues();
-        }
-    };
-    SequenceEqualSubscriber.prototype._complete = function () {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-        this.unsubscribe();
-    };
-    SequenceEqualSubscriber.prototype.checkValues = function () {
-        var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;
-        while (_a.length > 0 && _b.length > 0) {
-            var a = _a.shift();
-            var b = _b.shift();
-            var areEqual = false;
-            try {
-                areEqual = comparator ? comparator(a, b) : a === b;
-            }
-            catch (e) {
-                this.destination.error(e);
-            }
-            if (!areEqual) {
-                this.emit(false);
-            }
-        }
-    };
-    SequenceEqualSubscriber.prototype.emit = function (value) {
-        var destination = this.destination;
-        destination.next(value);
-        destination.complete();
-    };
-    SequenceEqualSubscriber.prototype.nextB = function (value) {
-        if (this._oneComplete && this._a.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._b.push(value);
-            this.checkValues();
-        }
-    };
-    SequenceEqualSubscriber.prototype.completeB = function () {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-    };
-    return SequenceEqualSubscriber;
-}(Subscriber));
-export { SequenceEqualSubscriber };
-var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);
-    function SequenceEqualCompareToSubscriber(destination, parent) {
-        var _this = _super.call(this, destination) || this;
-        _this.parent = parent;
-        return _this;
-    }
-    SequenceEqualCompareToSubscriber.prototype._next = function (value) {
-        this.parent.nextB(value);
-    };
-    SequenceEqualCompareToSubscriber.prototype._error = function (err) {
-        this.parent.error(err);
-        this.unsubscribe();
-    };
-    SequenceEqualCompareToSubscriber.prototype._complete = function () {
-        this.parent.completeB();
-        this.unsubscribe();
-    };
-    return SequenceEqualCompareToSubscriber;
-}(Subscriber));
-//# sourceMappingURL=sequenceEqual.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map
deleted file mode 100644
index e0edce7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/share.js b/node_modules/rxjs/_esm5/internal/operators/share.js
deleted file mode 100644
index 45863eb..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/share.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */
-import { multicast } from './multicast';
-import { refCount } from './refCount';
-import { Subject } from '../Subject';
-function shareSubjectFactory() {
-    return new Subject();
-}
-export function share() {
-    return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };
-}
-//# sourceMappingURL=share.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/share.js.map b/node_modules/rxjs/_esm5/internal/operators/share.js.map
deleted file mode 100644
index 8946dd6..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../../../src/internal/operators/share.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAcD,MAAM,UAAU,KAAK;IACnB,OAAO,UAAC,MAAqB,IAAK,OAAA,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,EAAnE,CAAmE,CAAC;AACxG,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js
deleted file mode 100644
index 8ced16b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */
-import { ReplaySubject } from '../ReplaySubject';
-export function shareReplay(configOrBufferSize, windowTime, scheduler) {
-    var config;
-    if (configOrBufferSize && typeof configOrBufferSize === 'object') {
-        config = configOrBufferSize;
-    }
-    else {
-        config = {
-            bufferSize: configOrBufferSize,
-            windowTime: windowTime,
-            refCount: false,
-            scheduler: scheduler
-        };
-    }
-    return function (source) { return source.lift(shareReplayOperator(config)); };
-}
-function shareReplayOperator(_a) {
-    var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;
-    var subject;
-    var refCount = 0;
-    var subscription;
-    var hasError = false;
-    var isComplete = false;
-    return function shareReplayOperation(source) {
-        refCount++;
-        if (!subject || hasError) {
-            hasError = false;
-            subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-            subscription = source.subscribe({
-                next: function (value) { subject.next(value); },
-                error: function (err) {
-                    hasError = true;
-                    subject.error(err);
-                },
-                complete: function () {
-                    isComplete = true;
-                    subscription = undefined;
-                    subject.complete();
-                },
-            });
-        }
-        var innerSub = subject.subscribe(this);
-        this.add(function () {
-            refCount--;
-            innerSub.unsubscribe();
-            if (subscription && !isComplete && useRefCount && refCount === 0) {
-                subscription.unsubscribe();
-                subscription = undefined;
-                subject = undefined;
-            }
-        });
-    };
-}
-//# sourceMappingURL=shareReplay.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map
deleted file mode 100644
index 9ff3b84..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2DjD,MAAM,UAAU,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU,YAAA;YACV,QAAQ,EAAE,KAAK;YACf,SAAS,WAAA;SACV,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAI,EAKZ;QAJlB,kBAAqC,EAArC,0DAAqC,EACrC,kBAAqC,EAArC,0DAAqC,EACrC,yBAAqB,EACrB,wBAAS;IAET,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/single.js b/node_modules/rxjs/_esm5/internal/operators/single.js
deleted file mode 100644
index 35de127..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/single.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { EmptyError } from '../util/EmptyError';
-export function single(predicate) {
-    return function (source) { return source.lift(new SingleOperator(predicate, source)); };
-}
-var SingleOperator = /*@__PURE__*/ (function () {
-    function SingleOperator(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    SingleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
-    };
-    return SingleOperator;
-}());
-var SingleSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SingleSubscriber, _super);
-    function SingleSubscriber(destination, predicate, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.seenValue = false;
-        _this.index = 0;
-        return _this;
-    }
-    SingleSubscriber.prototype.applySingleValue = function (value) {
-        if (this.seenValue) {
-            this.destination.error('Sequence contains more than one element');
-        }
-        else {
-            this.seenValue = true;
-            this.singleValue = value;
-        }
-    };
-    SingleSubscriber.prototype._next = function (value) {
-        var index = this.index++;
-        if (this.predicate) {
-            this.tryNext(value, index);
-        }
-        else {
-            this.applySingleValue(value);
-        }
-    };
-    SingleSubscriber.prototype.tryNext = function (value, index) {
-        try {
-            if (this.predicate(value, index, this.source)) {
-                this.applySingleValue(value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    SingleSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        if (this.index > 0) {
-            destination.next(this.seenValue ? this.singleValue : undefined);
-            destination.complete();
-        }
-        else {
-            destination.error(new EmptyError);
-        }
-    };
-    return SingleSubscriber;
-}(Subscriber));
-//# sourceMappingURL=single.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/single.js.map b/node_modules/rxjs/_esm5/internal/operators/single.js.map
deleted file mode 100644
index 3d87a32..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../../../src/internal/operators/single.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkDhD,MAAM,UAAU,MAAM,CAAI,SAAuE;IAC/F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAlD,CAAkD,CAAC;AACvF,CAAC;AAED;IACE,wBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAAa;IAK7C,0BAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QANlC,eAAS,GAAY,KAAK,CAAC;QAE3B,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAEO,2CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,kCAAO,GAAf,UAAgB,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,oCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAlDD,CAAkC,UAAU,GAkD3C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/skip.js b/node_modules/rxjs/_esm5/internal/operators/skip.js
deleted file mode 100644
index 9fe4263..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skip.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function skip(count) {
-    return function (source) { return source.lift(new SkipOperator(count)); };
-}
-var SkipOperator = /*@__PURE__*/ (function () {
-    function SkipOperator(total) {
-        this.total = total;
-    }
-    SkipOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SkipSubscriber(subscriber, this.total));
-    };
-    return SkipOperator;
-}());
-var SkipSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SkipSubscriber, _super);
-    function SkipSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.count = 0;
-        return _this;
-    }
-    SkipSubscriber.prototype._next = function (x) {
-        if (++this.count > this.total) {
-            this.destination.next(x);
-        }
-    };
-    return SkipSubscriber;
-}(Subscriber));
-//# sourceMappingURL=skip.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/skip.js.map b/node_modules/rxjs/_esm5/internal/operators/skip.js.map
deleted file mode 100644
index 812cbea..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../../../src/internal/operators/skip.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,CAAC;AACzE,CAAC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAgC,0CAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAF7D,WAAK,GAAW,CAAC,CAAC;;IAIlB,CAAC;IAES,8BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,CAAgC,UAAU,GAYzC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipLast.js b/node_modules/rxjs/_esm5/internal/operators/skipLast.js
deleted file mode 100644
index ab9f142..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipLast.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-export function skipLast(count) {
-    return function (source) { return source.lift(new SkipLastOperator(count)); };
-}
-var SkipLastOperator = /*@__PURE__*/ (function () {
-    function SkipLastOperator(_skipCount) {
-        this._skipCount = _skipCount;
-        if (this._skipCount < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    SkipLastOperator.prototype.call = function (subscriber, source) {
-        if (this._skipCount === 0) {
-            return source.subscribe(new Subscriber(subscriber));
-        }
-        else {
-            return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
-        }
-    };
-    return SkipLastOperator;
-}());
-var SkipLastSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SkipLastSubscriber, _super);
-    function SkipLastSubscriber(destination, _skipCount) {
-        var _this = _super.call(this, destination) || this;
-        _this._skipCount = _skipCount;
-        _this._count = 0;
-        _this._ring = new Array(_skipCount);
-        return _this;
-    }
-    SkipLastSubscriber.prototype._next = function (value) {
-        var skipCount = this._skipCount;
-        var count = this._count++;
-        if (count < skipCount) {
-            this._ring[count] = value;
-        }
-        else {
-            var currentIndex = count % skipCount;
-            var ring = this._ring;
-            var oldValue = ring[currentIndex];
-            ring[currentIndex] = value;
-            this.destination.next(oldValue);
-        }
-    };
-    return SkipLastSubscriber;
-}(Subscriber));
-//# sourceMappingURL=skipLast.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map b/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map
deleted file mode 100644
index bf337d3..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../../../src/internal/operators/skipLast.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AA0C1E,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAED;IACE,0BAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAhBD,IAgBC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAAU,UAAkB;QAAlE,YACE,kBAAM,WAAW,CAAC,SAEnB;QAH+C,gBAAU,GAAV,UAAU,CAAQ;QAF1D,YAAM,GAAW,CAAC,CAAC;QAIzB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;;IACxC,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,IAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAxBD,CAAoC,UAAU,GAwB7C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js
deleted file mode 100644
index 09327ff..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function skipUntil(notifier) {
-    return function (source) { return source.lift(new SkipUntilOperator(notifier)); };
-}
-var SkipUntilOperator = /*@__PURE__*/ (function () {
-    function SkipUntilOperator(notifier) {
-        this.notifier = notifier;
-    }
-    SkipUntilOperator.prototype.call = function (destination, source) {
-        return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
-    };
-    return SkipUntilOperator;
-}());
-var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SkipUntilSubscriber, _super);
-    function SkipUntilSubscriber(destination, notifier) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasValue = false;
-        var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);
-        _this.add(innerSubscriber);
-        _this.innerSubscription = innerSubscriber;
-        var innerSubscription = subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            _this.add(innerSubscription);
-            _this.innerSubscription = innerSubscription;
-        }
-        return _this;
-    }
-    SkipUntilSubscriber.prototype._next = function (value) {
-        if (this.hasValue) {
-            _super.prototype._next.call(this, value);
-        }
-    };
-    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.hasValue = true;
-        if (this.innerSubscription) {
-            this.innerSubscription.unsubscribe();
-        }
-    };
-    SkipUntilSubscriber.prototype.notifyComplete = function () {
-    };
-    return SkipUntilSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=skipUntil.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map
deleted file mode 100644
index 50e9113..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,+CAAqB;IAK3D,6BAAY,WAA0B,EAAE,QAA8B;QAAtE,YACE,kBAAM,WAAW,CAAC,SAYnB;QAhBO,cAAQ,GAAY,KAAK,CAAC;QAKhC,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,KAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,KAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,KAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,IAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAInG,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;;IACH,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAtCD,CAAwC,eAAe,GAsCtD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js
deleted file mode 100644
index ab0ee01..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function skipWhile(predicate) {
-    return function (source) { return source.lift(new SkipWhileOperator(predicate)); };
-}
-var SkipWhileOperator = /*@__PURE__*/ (function () {
-    function SkipWhileOperator(predicate) {
-        this.predicate = predicate;
-    }
-    SkipWhileOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
-    };
-    return SkipWhileOperator;
-}());
-var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SkipWhileSubscriber, _super);
-    function SkipWhileSubscriber(destination, predicate) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.skipping = true;
-        _this.index = 0;
-        return _this;
-    }
-    SkipWhileSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        if (this.skipping) {
-            this.tryCallPredicate(value);
-        }
-        if (!this.skipping) {
-            destination.next(value);
-        }
-    };
-    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {
-        try {
-            var result = this.predicate(value, this.index++);
-            this.skipping = Boolean(result);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    return SkipWhileSubscriber;
-}(Subscriber));
-//# sourceMappingURL=skipWhile.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map
deleted file mode 100644
index 90f3f04..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,+CAAa;IAIhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAJ3D,cAAQ,GAAY,IAAI,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,UAAU,GA4B9C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/startWith.js b/node_modules/rxjs/_esm5/internal/operators/startWith.js
deleted file mode 100644
index fd531b8..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/startWith.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */
-import { concat } from '../observable/concat';
-import { isScheduler } from '../util/isScheduler';
-export function startWith() {
-    var array = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        array[_i] = arguments[_i];
-    }
-    var scheduler = array[array.length - 1];
-    if (isScheduler(scheduler)) {
-        array.pop();
-        return function (source) { return concat(array, source, scheduler); };
-    }
-    else {
-        return function (source) { return concat(array, source); };
-    }
-}
-//# sourceMappingURL=startWith.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/startWith.js.map b/node_modules/rxjs/_esm5/internal/operators/startWith.js.map
deleted file mode 100644
index f8afec0..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../../../src/internal/operators/startWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiElD,MAAM,UAAU,SAAS;IAAO,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAvC,CAAuC,CAAC;KAC3E;SAAM;QACL,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,KAAY,EAAE,MAAM,CAAC,EAA5B,CAA4B,CAAC;KAChE;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js
deleted file mode 100644
index 891ab16..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */
-import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';
-export function subscribeOn(scheduler, delay) {
-    if (delay === void 0) {
-        delay = 0;
-    }
-    return function subscribeOnOperatorFunction(source) {
-        return source.lift(new SubscribeOnOperator(scheduler, delay));
-    };
-}
-var SubscribeOnOperator = /*@__PURE__*/ (function () {
-    function SubscribeOnOperator(scheduler, delay) {
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    SubscribeOnOperator.prototype.call = function (subscriber, source) {
-        return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);
-    };
-    return SubscribeOnOperator;
-}());
-//# sourceMappingURL=subscribeOn.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map
deleted file mode 100644
index 7f7ed37..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA6C5E,MAAM,UAAU,WAAW,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,6BAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,qBAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACH,0BAAC;AAAD,CAAC,AATD,IASC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchAll.js b/node_modules/rxjs/_esm5/internal/operators/switchAll.js
deleted file mode 100644
index ae104cf..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */
-import { switchMap } from './switchMap';
-import { identity } from '../util/identity';
-export function switchAll() {
-    return switchMap(identity);
-}
-//# sourceMappingURL=switchAll.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map b/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map
deleted file mode 100644
index 643e89d..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchAll.js","sources":["../../../src/internal/operators/switchAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA4D5C,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMap.js b/node_modules/rxjs/_esm5/internal/operators/switchMap.js
deleted file mode 100644
index c0086eb..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchMap.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { map } from './map';
-import { from } from '../observable/from';
-export function switchMap(project, resultSelector) {
-    if (typeof resultSelector === 'function') {
-        return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-    }
-    return function (source) { return source.lift(new SwitchMapOperator(project)); };
-}
-var SwitchMapOperator = /*@__PURE__*/ (function () {
-    function SwitchMapOperator(project) {
-        this.project = project;
-    }
-    SwitchMapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
-    };
-    return SwitchMapOperator;
-}());
-var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(SwitchMapSubscriber, _super);
-    function SwitchMapSubscriber(destination, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.index = 0;
-        return _this;
-    }
-    SwitchMapSubscriber.prototype._next = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (error) {
-            this.destination.error(error);
-            return;
-        }
-        this._innerSub(result, value, index);
-    };
-    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {
-        var innerSubscription = this.innerSubscription;
-        if (innerSubscription) {
-            innerSubscription.unsubscribe();
-        }
-        var innerSubscriber = new InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (this.innerSubscription !== innerSubscriber) {
-            destination.add(this.innerSubscription);
-        }
-    };
-    SwitchMapSubscriber.prototype._complete = function () {
-        var innerSubscription = this.innerSubscription;
-        if (!innerSubscription || innerSubscription.closed) {
-            _super.prototype._complete.call(this);
-        }
-        this.unsubscribe();
-    };
-    SwitchMapSubscriber.prototype._unsubscribe = function () {
-        this.innerSubscription = null;
-    };
-    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.innerSubscription = null;
-        if (this.isStopped) {
-            _super.prototype._complete.call(this);
-        }
-    };
-    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    return SwitchMapSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=switchMap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map b/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map
deleted file mode 100644
index 51aa8f2..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAwE1C,MAAM,UAAU,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1C,GAAG,CAAC,UAAC,CAAC,EAAE,EAAE,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CAC5C,EAFmB,CAEnB,CAAC,CACH,EAJiC,CAIjC,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAA3C,CAA2C,CAAC;AAChF,CAAC;AAED;IACE,2BAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,+CAAqB;IAI3D,6BAAY,WAA0B,EAClB,OAAwD;QAD5E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,aAAO,GAAP,OAAO,CAAiD;QAJpE,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,uCAAS,GAAjB,UAAkB,MAA0B,EAAE,KAAQ,EAAE,KAAa;QACnE,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACjC;QACD,IAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAIhG,IAAI,IAAI,CAAC,iBAAiB,KAAK,eAAe,EAAE;YAC9C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACzC;IACH,CAAC;IAES,uCAAS,GAAnB;QACS,IAAA,0CAAiB,CAAS;QACjC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAClD,iBAAM,SAAS,WAAE,CAAC;SACnB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,0CAAY,GAAtB;QACE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,4CAAc,GAAd,UAAe,QAAsB;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,iBAAM,SAAS,WAAE,CAAC;SACnB;IACH,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACH,0BAAC;AAAD,CAAC,AAhED,CAAwC,eAAe,GAgEtD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js
deleted file mode 100644
index 19e1251..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */
-import { switchMap } from './switchMap';
-export function switchMapTo(innerObservable, resultSelector) {
-    return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });
-}
-//# sourceMappingURL=switchMapTo.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map
deleted file mode 100644
index e2a777b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkDxC,MAAM,UAAU,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,CAAC,CAAC;AAC9G,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/take.js b/node_modules/rxjs/_esm5/internal/operators/take.js
deleted file mode 100644
index 879122b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/take.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-export function take(count) {
-    return function (source) {
-        if (count === 0) {
-            return empty();
-        }
-        else {
-            return source.lift(new TakeOperator(count));
-        }
-    };
-}
-var TakeOperator = /*@__PURE__*/ (function () {
-    function TakeOperator(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    TakeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeSubscriber(subscriber, this.total));
-    };
-    return TakeOperator;
-}());
-var TakeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TakeSubscriber, _super);
-    function TakeSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.count = 0;
-        return _this;
-    }
-    TakeSubscriber.prototype._next = function (value) {
-        var total = this.total;
-        var count = ++this.count;
-        if (count <= total) {
-            this.destination.next(value);
-            if (count === total) {
-                this.destination.complete();
-                this.unsubscribe();
-            }
-        }
-    };
-    return TakeSubscriber;
-}(Subscriber));
-//# sourceMappingURL=take.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/take.js.map b/node_modules/rxjs/_esm5/internal/operators/take.js.map
deleted file mode 100644
index ea5a2ed..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../../../src/internal/operators/take.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAkD5C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAgC,0CAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAFrD,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAlBD,CAAgC,UAAU,GAkBzC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeLast.js b/node_modules/rxjs/_esm5/internal/operators/takeLast.js
deleted file mode 100644
index d5d2658..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeLast.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-export function takeLast(count) {
-    return function takeLastOperatorFunction(source) {
-        if (count === 0) {
-            return empty();
-        }
-        else {
-            return source.lift(new TakeLastOperator(count));
-        }
-    };
-}
-var TakeLastOperator = /*@__PURE__*/ (function () {
-    function TakeLastOperator(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError;
-        }
-    }
-    TakeLastOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
-    };
-    return TakeLastOperator;
-}());
-var TakeLastSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TakeLastSubscriber, _super);
-    function TakeLastSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.ring = new Array();
-        _this.count = 0;
-        return _this;
-    }
-    TakeLastSubscriber.prototype._next = function (value) {
-        var ring = this.ring;
-        var total = this.total;
-        var count = this.count++;
-        if (ring.length < total) {
-            ring.push(value);
-        }
-        else {
-            var index = count % total;
-            ring[index] = value;
-        }
-    };
-    TakeLastSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        var count = this.count;
-        if (count > 0) {
-            var total = this.count >= this.total ? this.total : this.count;
-            var ring = this.ring;
-            for (var i = 0; i < total; i++) {
-                var idx = (count++) % total;
-                destination.next(ring[idx]);
-            }
-        }
-        destination.complete();
-    };
-    return TakeLastSubscriber;
-}(Subscriber));
-//# sourceMappingURL=takeLast.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map b/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map
deleted file mode 100644
index d3a5486..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../../../src/internal/operators/takeLast.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA8C5C,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,0BAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAHrD,UAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,IAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,IAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,yBAAC;AAAD,CAAC,AArCD,CAAoC,UAAU,GAqC7C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js
deleted file mode 100644
index 72ea18e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function takeUntil(notifier) {
-    return function (source) { return source.lift(new TakeUntilOperator(notifier)); };
-}
-var TakeUntilOperator = /*@__PURE__*/ (function () {
-    function TakeUntilOperator(notifier) {
-        this.notifier = notifier;
-    }
-    TakeUntilOperator.prototype.call = function (subscriber, source) {
-        var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
-        var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);
-        if (notifierSubscription && !takeUntilSubscriber.seenValue) {
-            takeUntilSubscriber.add(notifierSubscription);
-            return source.subscribe(takeUntilSubscriber);
-        }
-        return takeUntilSubscriber;
-    };
-    return TakeUntilOperator;
-}());
-var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TakeUntilSubscriber, _super);
-    function TakeUntilSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.seenValue = false;
-        return _this;
-    }
-    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.seenValue = true;
-        this.complete();
-    };
-    TakeUntilSubscriber.prototype.notifyComplete = function () {
-    };
-    return TakeUntilSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=takeUntil.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map
deleted file mode 100644
index d9411bd..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA4C9D,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAM,oBAAoB,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,wBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAwC,+CAAqB;IAG3D,6BAAY,WAA4B;QAAxC,YACE,kBAAM,WAAW,CAAC,SACnB;QAJD,eAAS,GAAG,KAAK,CAAC;;IAIlB,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAjBD,CAAwC,eAAe,GAiBtD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js
deleted file mode 100644
index 0d7ed52..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-export function takeWhile(predicate, inclusive) {
-    if (inclusive === void 0) {
-        inclusive = false;
-    }
-    return function (source) {
-        return source.lift(new TakeWhileOperator(predicate, inclusive));
-    };
-}
-var TakeWhileOperator = /*@__PURE__*/ (function () {
-    function TakeWhileOperator(predicate, inclusive) {
-        this.predicate = predicate;
-        this.inclusive = inclusive;
-    }
-    TakeWhileOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
-    };
-    return TakeWhileOperator;
-}());
-var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TakeWhileSubscriber, _super);
-    function TakeWhileSubscriber(destination, predicate, inclusive) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.inclusive = inclusive;
-        _this.index = 0;
-        return _this;
-    }
-    TakeWhileSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        var result;
-        try {
-            result = this.predicate(value, this.index++);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this.nextOrComplete(value, result);
-    };
-    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {
-        var destination = this.destination;
-        if (Boolean(predicateResult)) {
-            destination.next(value);
-        }
-        else {
-            if (this.inclusive) {
-                destination.next(value);
-            }
-            destination.complete();
-        }
-    };
-    return TakeWhileSubscriber;
-}(Subscriber));
-//# sourceMappingURL=takeWhile.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map
deleted file mode 100644
index e9085ff..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,SAAS,CACrB,SAA+C,EAC/C,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IACnB,OAAO,UAAC,MAAqB;QAClB,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAAxD,CAAwD,CAAC;AACtE,CAAC;AAED;IACE,2BACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACH,wBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAqC,+CAAa;IAGhD,6BACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAH9B,YAIE,kBAAM,WAAW,CAAC,SACnB;QAHW,eAAS,GAAT,SAAS,CAAsC;QAC/C,eAAS,GAAT,SAAS,CAAS;QALtB,WAAK,GAAW,CAAC,CAAC;;IAO1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAAqC,UAAU,GAiC9C"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/tap.js b/node_modules/rxjs/_esm5/internal/operators/tap.js
deleted file mode 100644
index 19ab564..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/tap.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { noop } from '../util/noop';
-import { isFunction } from '../util/isFunction';
-export function tap(nextOrObserver, error, complete) {
-    return function tapOperatorFunction(source) {
-        return source.lift(new DoOperator(nextOrObserver, error, complete));
-    };
-}
-var DoOperator = /*@__PURE__*/ (function () {
-    function DoOperator(nextOrObserver, error, complete) {
-        this.nextOrObserver = nextOrObserver;
-        this.error = error;
-        this.complete = complete;
-    }
-    DoOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
-    };
-    return DoOperator;
-}());
-var TapSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TapSubscriber, _super);
-    function TapSubscriber(destination, observerOrNext, error, complete) {
-        var _this = _super.call(this, destination) || this;
-        _this._tapNext = noop;
-        _this._tapError = noop;
-        _this._tapComplete = noop;
-        _this._tapError = error || noop;
-        _this._tapComplete = complete || noop;
-        if (isFunction(observerOrNext)) {
-            _this._context = _this;
-            _this._tapNext = observerOrNext;
-        }
-        else if (observerOrNext) {
-            _this._context = observerOrNext;
-            _this._tapNext = observerOrNext.next || noop;
-            _this._tapError = observerOrNext.error || noop;
-            _this._tapComplete = observerOrNext.complete || noop;
-        }
-        return _this;
-    }
-    TapSubscriber.prototype._next = function (value) {
-        try {
-            this._tapNext.call(this._context, value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(value);
-    };
-    TapSubscriber.prototype._error = function (err) {
-        try {
-            this._tapError.call(this._context, err);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.error(err);
-    };
-    TapSubscriber.prototype._complete = function () {
-        try {
-            this._tapComplete.call(this._context);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        return this.destination.complete();
-    };
-    return TapSubscriber;
-}(Subscriber));
-//# sourceMappingURL=tap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/tap.js.map b/node_modules/rxjs/_esm5/internal/operators/tap.js.map
deleted file mode 100644
index 499d6da..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/tap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tap.js","sources":["../../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/throttle.js b/node_modules/rxjs/_esm5/internal/operators/throttle.js
deleted file mode 100644
index 8996213..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throttle.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export var defaultThrottleConfig = {
-    leading: true,
-    trailing: false
-};
-export function throttle(durationSelector, config) {
-    if (config === void 0) {
-        config = defaultThrottleConfig;
-    }
-    return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };
-}
-var ThrottleOperator = /*@__PURE__*/ (function () {
-    function ThrottleOperator(durationSelector, leading, trailing) {
-        this.durationSelector = durationSelector;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    ThrottleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));
-    };
-    return ThrottleOperator;
-}());
-var ThrottleSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ThrottleSubscriber, _super);
-    function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.durationSelector = durationSelector;
-        _this._leading = _leading;
-        _this._trailing = _trailing;
-        _this._hasValue = false;
-        return _this;
-    }
-    ThrottleSubscriber.prototype._next = function (value) {
-        this._hasValue = true;
-        this._sendValue = value;
-        if (!this._throttled) {
-            if (this._leading) {
-                this.send();
-            }
-            else {
-                this.throttle(value);
-            }
-        }
-    };
-    ThrottleSubscriber.prototype.send = function () {
-        var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;
-        if (_hasValue) {
-            this.destination.next(_sendValue);
-            this.throttle(_sendValue);
-        }
-        this._hasValue = false;
-        this._sendValue = null;
-    };
-    ThrottleSubscriber.prototype.throttle = function (value) {
-        var duration = this.tryDurationSelector(value);
-        if (!!duration) {
-            this.add(this._throttled = subscribeToResult(this, duration));
-        }
-    };
-    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {
-        try {
-            return this.durationSelector(value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return null;
-        }
-    };
-    ThrottleSubscriber.prototype.throttlingDone = function () {
-        var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;
-        if (_throttled) {
-            _throttled.unsubscribe();
-        }
-        this._throttled = null;
-        if (_trailing) {
-            this.send();
-        }
-    };
-    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.throttlingDone();
-    };
-    ThrottleSubscriber.prototype.notifyComplete = function () {
-        this.throttlingDone();
-    };
-    return ThrottleSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=throttle.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/throttle.js.map b/node_modules/rxjs/_esm5/internal/operators/throttle.js.map
deleted file mode 100644
index b204d74..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js
deleted file mode 100644
index 78a228a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-import { defaultThrottleConfig } from './throttle';
-export function throttleTime(duration, scheduler, config) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    if (config === void 0) {
-        config = defaultThrottleConfig;
-    }
-    return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };
-}
-var ThrottleTimeOperator = /*@__PURE__*/ (function () {
-    function ThrottleTimeOperator(duration, scheduler, leading, trailing) {
-        this.duration = duration;
-        this.scheduler = scheduler;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    ThrottleTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));
-    };
-    return ThrottleTimeOperator;
-}());
-var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ThrottleTimeSubscriber, _super);
-    function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {
-        var _this = _super.call(this, destination) || this;
-        _this.duration = duration;
-        _this.scheduler = scheduler;
-        _this.leading = leading;
-        _this.trailing = trailing;
-        _this._hasTrailingValue = false;
-        _this._trailingValue = null;
-        return _this;
-    }
-    ThrottleTimeSubscriber.prototype._next = function (value) {
-        if (this.throttled) {
-            if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-        else {
-            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));
-            if (this.leading) {
-                this.destination.next(value);
-            }
-            else if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-    };
-    ThrottleTimeSubscriber.prototype._complete = function () {
-        if (this._hasTrailingValue) {
-            this.destination.next(this._trailingValue);
-            this.destination.complete();
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    ThrottleTimeSubscriber.prototype.clearThrottle = function () {
-        var throttled = this.throttled;
-        if (throttled) {
-            if (this.trailing && this._hasTrailingValue) {
-                this.destination.next(this._trailingValue);
-                this._trailingValue = null;
-                this._hasTrailingValue = false;
-            }
-            throttled.unsubscribe();
-            this.remove(throttled);
-            this.throttled = null;
-        }
-    };
-    return ThrottleTimeSubscriber;
-}(Subscriber));
-function dispatchNext(arg) {
-    var subscriber = arg.subscriber;
-    subscriber.clearThrottle();
-}
-//# sourceMappingURL=throttleTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map
deleted file mode 100644
index bf5a868..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js
deleted file mode 100644
index 61e9716..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { EmptyError } from '../util/EmptyError';
-import { Subscriber } from '../Subscriber';
-export function throwIfEmpty(errorFactory) {
-    if (errorFactory === void 0) {
-        errorFactory = defaultErrorFactory;
-    }
-    return function (source) {
-        return source.lift(new ThrowIfEmptyOperator(errorFactory));
-    };
-}
-var ThrowIfEmptyOperator = /*@__PURE__*/ (function () {
-    function ThrowIfEmptyOperator(errorFactory) {
-        this.errorFactory = errorFactory;
-    }
-    ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
-    };
-    return ThrowIfEmptyOperator;
-}());
-var ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ThrowIfEmptySubscriber, _super);
-    function ThrowIfEmptySubscriber(destination, errorFactory) {
-        var _this = _super.call(this, destination) || this;
-        _this.errorFactory = errorFactory;
-        _this.hasValue = false;
-        return _this;
-    }
-    ThrowIfEmptySubscriber.prototype._next = function (value) {
-        this.hasValue = true;
-        this.destination.next(value);
-    };
-    ThrowIfEmptySubscriber.prototype._complete = function () {
-        if (!this.hasValue) {
-            var err = void 0;
-            try {
-                err = this.errorFactory();
-            }
-            catch (e) {
-                err = e;
-            }
-            this.destination.error(err);
-        }
-        else {
-            return this.destination.complete();
-        }
-    };
-    return ThrowIfEmptySubscriber;
-}(Subscriber));
-function defaultErrorFactory() {
-    return new EmptyError();
-}
-//# sourceMappingURL=throwIfEmpty.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map
deleted file mode 100644
index 9e6c83c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwIfEmpty.js","sources":["../../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiC3C,MAAM,UAAU,YAAY,CAAK,YAA+C;IAA/C,6BAAA,EAAA,kCAA+C;IAC9E,OAAO,UAAC,MAAqB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,8BAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAwC,kDAAa;IAGnD,gCAAY,WAA0B,EAAU,YAAuB;QAAvE,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,kBAAY,GAAZ,YAAY,CAAW;QAF/D,cAAQ,GAAY,KAAK,CAAC;;IAIlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAG,SAAK,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,CAAwC,UAAU,GAyBjD;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js
deleted file mode 100644
index f2190b6..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */
-import { async } from '../scheduler/async';
-import { scan } from './scan';
-import { defer } from '../observable/defer';
-import { map } from './map';
-export function timeInterval(scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return function (source) {
-        return defer(function () {
-            return source.pipe(scan(function (_a, value) {
-                var current = _a.current;
-                return ({ value: value, current: scheduler.now(), last: current });
-            }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {
-                var current = _a.current, last = _a.last, value = _a.value;
-                return new TimeInterval(value, current - last);
-            }));
-        });
-    };
-}
-var TimeInterval = /*@__PURE__*/ (function () {
-    function TimeInterval(value, interval) {
-        this.value = value;
-        this.interval = interval;
-    }
-    return TimeInterval;
-}());
-export { TimeInterval };
-//# sourceMappingURL=timeInterval.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map
deleted file mode 100644
index 08d9db8..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA+C5B,MAAM,UAAU,YAAY,CAAI,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC9D,OAAO,UAAC,MAAqB,IAAK,OAAA,KAAK,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAEhB,IAAI,CACF,UAAC,EAAW,EAAE,KAAK;gBAAhB,oBAAO;YAAc,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAApD,CAAoD,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,GAAG,CAAuB,UAAC,EAAwB;gBAAtB,oBAAO,EAAE,cAAI,EAAE,gBAAK;YAAO,OAAA,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAAvC,CAAuC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,EATgC,CAShC,CAAC;AACL,CAAC;AAQD;IACE,sBAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAC1D,mBAAC;AAAD,CAAC,AAFD,IAEC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeout.js b/node_modules/rxjs/_esm5/internal/operators/timeout.js
deleted file mode 100644
index 47bbebc..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeout.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */
-import { async } from '../scheduler/async';
-import { TimeoutError } from '../util/TimeoutError';
-import { timeoutWith } from './timeoutWith';
-import { throwError } from '../observable/throwError';
-export function timeout(due, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return timeoutWith(due, throwError(new TimeoutError()), scheduler);
-}
-//# sourceMappingURL=timeout.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeout.js.map b/node_modules/rxjs/_esm5/internal/operators/timeout.js.map
deleted file mode 100644
index a67d267..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../../../src/internal/operators/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgFtD,MAAM,UAAU,OAAO,CAAI,GAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js
deleted file mode 100644
index 47cd28c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function timeoutWith(due, withObservable, scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return function (source) {
-        var absoluteTimeout = isDate(due);
-        var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
-        return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
-    };
-}
-var TimeoutWithOperator = /*@__PURE__*/ (function () {
-    function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {
-        this.waitFor = waitFor;
-        this.absoluteTimeout = absoluteTimeout;
-        this.withObservable = withObservable;
-        this.scheduler = scheduler;
-    }
-    TimeoutWithOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
-    };
-    return TimeoutWithOperator;
-}());
-var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TimeoutWithSubscriber, _super);
-    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.absoluteTimeout = absoluteTimeout;
-        _this.waitFor = waitFor;
-        _this.withObservable = withObservable;
-        _this.scheduler = scheduler;
-        _this.action = null;
-        _this.scheduleTimeout();
-        return _this;
-    }
-    TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {
-        var withObservable = subscriber.withObservable;
-        subscriber._unsubscribeAndRecycle();
-        subscriber.add(subscribeToResult(subscriber, withObservable));
-    };
-    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {
-        var action = this.action;
-        if (action) {
-            this.action = action.schedule(this, this.waitFor);
-        }
-        else {
-            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
-        }
-    };
-    TimeoutWithSubscriber.prototype._next = function (value) {
-        if (!this.absoluteTimeout) {
-            this.scheduleTimeout();
-        }
-        _super.prototype._next.call(this, value);
-    };
-    TimeoutWithSubscriber.prototype._unsubscribe = function () {
-        this.action = null;
-        this.scheduler = null;
-        this.withObservable = null;
-    };
-    return TimeoutWithSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=timeoutWith.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map
deleted file mode 100644
index 8bb331a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/timestamp.js b/node_modules/rxjs/_esm5/internal/operators/timestamp.js
deleted file mode 100644
index 693f891..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timestamp.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */
-import { async } from '../scheduler/async';
-import { map } from './map';
-export function timestamp(scheduler) {
-    if (scheduler === void 0) {
-        scheduler = async;
-    }
-    return map(function (value) { return new Timestamp(value, scheduler.now()); });
-}
-var Timestamp = /*@__PURE__*/ (function () {
-    function Timestamp(value, timestamp) {
-        this.value = value;
-        this.timestamp = timestamp;
-    }
-    return Timestamp;
-}());
-export { Timestamp };
-//# sourceMappingURL=timestamp.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map b/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map
deleted file mode 100644
index c09bcac..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../../../src/internal/operators/timestamp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAoC5B,MAAM,UAAU,SAAS,CAAI,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC3D,OAAO,GAAG,CAAC,UAAC,KAAQ,IAAK,OAAA,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;AAElE,CAAC;AAED;IACE,mBAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;IACH,gBAAC;AAAD,CAAC,AAHD,IAGC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/toArray.js b/node_modules/rxjs/_esm5/internal/operators/toArray.js
deleted file mode 100644
index 7e10933..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/toArray.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
-import { reduce } from './reduce';
-function toArrayReducer(arr, item, index) {
-    if (index === 0) {
-        return [item];
-    }
-    arr.push(item);
-    return arr;
-}
-export function toArray() {
-    return reduce(toArrayReducer, []);
-}
-//# sourceMappingURL=toArray.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/toArray.js.map b/node_modules/rxjs/_esm5/internal/operators/toArray.js.map
deleted file mode 100644
index c129b66..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../../../src/internal/operators/toArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,MAAM,UAAU,OAAO;IACrB,OAAO,MAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/window.js b/node_modules/rxjs/_esm5/internal/operators/window.js
deleted file mode 100644
index 0b1f46a..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/window.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function window(windowBoundaries) {
-    return function windowOperatorFunction(source) {
-        return source.lift(new WindowOperator(windowBoundaries));
-    };
-}
-var WindowOperator = /*@__PURE__*/ (function () {
-    function WindowOperator(windowBoundaries) {
-        this.windowBoundaries = windowBoundaries;
-    }
-    WindowOperator.prototype.call = function (subscriber, source) {
-        var windowSubscriber = new WindowSubscriber(subscriber);
-        var sourceSubscription = source.subscribe(windowSubscriber);
-        if (!sourceSubscription.closed) {
-            windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));
-        }
-        return sourceSubscription;
-    };
-    return WindowOperator;
-}());
-var WindowSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WindowSubscriber, _super);
-    function WindowSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.window = new Subject();
-        destination.next(_this.window);
-        return _this;
-    }
-    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow();
-    };
-    WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-        this._complete();
-    };
-    WindowSubscriber.prototype._next = function (value) {
-        this.window.next(value);
-    };
-    WindowSubscriber.prototype._error = function (err) {
-        this.window.error(err);
-        this.destination.error(err);
-    };
-    WindowSubscriber.prototype._complete = function () {
-        this.window.complete();
-        this.destination.complete();
-    };
-    WindowSubscriber.prototype._unsubscribe = function () {
-        this.window = null;
-    };
-    WindowSubscriber.prototype.openWindow = function () {
-        var prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        var destination = this.destination;
-        var newWindow = this.window = new Subject();
-        destination.next(newWindow);
-    };
-    return WindowSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=window.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/window.js.map b/node_modules/rxjs/_esm5/internal/operators/window.js.map
deleted file mode 100644
index 8c9abeb..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../../../src/internal/operators/window.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA8C9D,MAAM,UAAU,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,wBAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAClF;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACH,qBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAkC,4CAAuB;IAIvD,0BAAY,WAAsC;QAAlD,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;;IAChC,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,sCAAW,GAAX,UAAY,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,yCAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,iCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAGD,uCAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,qCAAU,GAAlB;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IACH,uBAAC;AAAD,CAAC,AAnDD,CAAkC,eAAe,GAmDhD"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowCount.js b/node_modules/rxjs/_esm5/internal/operators/windowCount.js
deleted file mode 100644
index c8b0068..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowCount.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscriber } from '../Subscriber';
-import { Subject } from '../Subject';
-export function windowCount(windowSize, startWindowEvery) {
-    if (startWindowEvery === void 0) {
-        startWindowEvery = 0;
-    }
-    return function windowCountOperatorFunction(source) {
-        return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
-    };
-}
-var WindowCountOperator = /*@__PURE__*/ (function () {
-    function WindowCountOperator(windowSize, startWindowEvery) {
-        this.windowSize = windowSize;
-        this.startWindowEvery = startWindowEvery;
-    }
-    WindowCountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
-    };
-    return WindowCountOperator;
-}());
-var WindowCountSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WindowCountSubscriber, _super);
-    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.windowSize = windowSize;
-        _this.startWindowEvery = startWindowEvery;
-        _this.windows = [new Subject()];
-        _this.count = 0;
-        destination.next(_this.windows[0]);
-        return _this;
-    }
-    WindowCountSubscriber.prototype._next = function (value) {
-        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
-        var destination = this.destination;
-        var windowSize = this.windowSize;
-        var windows = this.windows;
-        var len = windows.length;
-        for (var i = 0; i < len && !this.closed; i++) {
-            windows[i].next(value);
-        }
-        var c = this.count - windowSize + 1;
-        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
-            windows.shift().complete();
-        }
-        if (++this.count % startWindowEvery === 0 && !this.closed) {
-            var window_1 = new Subject();
-            windows.push(window_1);
-            destination.next(window_1);
-        }
-    };
-    WindowCountSubscriber.prototype._error = function (err) {
-        var windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().error(err);
-            }
-        }
-        this.destination.error(err);
-    };
-    WindowCountSubscriber.prototype._complete = function () {
-        var windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().complete();
-            }
-        }
-        this.destination.complete();
-    };
-    WindowCountSubscriber.prototype._unsubscribe = function () {
-        this.count = 0;
-        this.windows = null;
-    };
-    return WindowCountSubscriber;
-}(Subscriber));
-//# sourceMappingURL=windowCount.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map b/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map
deleted file mode 100644
index 918887c..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowTime.js b/node_modules/rxjs/_esm5/internal/operators/windowTime.js
deleted file mode 100644
index f5482e9..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowTime.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { async } from '../scheduler/async';
-import { Subscriber } from '../Subscriber';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-export function windowTime(windowTimeSpan) {
-    var scheduler = async;
-    var windowCreationInterval = null;
-    var maxWindowSize = Number.POSITIVE_INFINITY;
-    if (isScheduler(arguments[3])) {
-        scheduler = arguments[3];
-    }
-    if (isScheduler(arguments[2])) {
-        scheduler = arguments[2];
-    }
-    else if (isNumeric(arguments[2])) {
-        maxWindowSize = arguments[2];
-    }
-    if (isScheduler(arguments[1])) {
-        scheduler = arguments[1];
-    }
-    else if (isNumeric(arguments[1])) {
-        windowCreationInterval = arguments[1];
-    }
-    return function windowTimeOperatorFunction(source) {
-        return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
-    };
-}
-var WindowTimeOperator = /*@__PURE__*/ (function () {
-    function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        this.windowTimeSpan = windowTimeSpan;
-        this.windowCreationInterval = windowCreationInterval;
-        this.maxWindowSize = maxWindowSize;
-        this.scheduler = scheduler;
-    }
-    WindowTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));
-    };
-    return WindowTimeOperator;
-}());
-var CountedSubject = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(CountedSubject, _super);
-    function CountedSubject() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this._numberOfNextedValues = 0;
-        return _this;
-    }
-    CountedSubject.prototype.next = function (value) {
-        this._numberOfNextedValues++;
-        _super.prototype.next.call(this, value);
-    };
-    Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", {
-        get: function () {
-            return this._numberOfNextedValues;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    return CountedSubject;
-}(Subject));
-var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WindowTimeSubscriber, _super);
-    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.windowTimeSpan = windowTimeSpan;
-        _this.windowCreationInterval = windowCreationInterval;
-        _this.maxWindowSize = maxWindowSize;
-        _this.scheduler = scheduler;
-        _this.windows = [];
-        var window = _this.openWindow();
-        if (windowCreationInterval !== null && windowCreationInterval >= 0) {
-            var closeState = { subscriber: _this, window: window, context: null };
-            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };
-            _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));
-            _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));
-        }
-        else {
-            var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };
-            _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
-        }
-        return _this;
-    }
-    WindowTimeSubscriber.prototype._next = function (value) {
-        var windows = this.windows;
-        var len = windows.length;
-        for (var i = 0; i < len; i++) {
-            var window_1 = windows[i];
-            if (!window_1.closed) {
-                window_1.next(value);
-                if (window_1.numberOfNextedValues >= this.maxWindowSize) {
-                    this.closeWindow(window_1);
-                }
-            }
-        }
-    };
-    WindowTimeSubscriber.prototype._error = function (err) {
-        var windows = this.windows;
-        while (windows.length > 0) {
-            windows.shift().error(err);
-        }
-        this.destination.error(err);
-    };
-    WindowTimeSubscriber.prototype._complete = function () {
-        var windows = this.windows;
-        while (windows.length > 0) {
-            var window_2 = windows.shift();
-            if (!window_2.closed) {
-                window_2.complete();
-            }
-        }
-        this.destination.complete();
-    };
-    WindowTimeSubscriber.prototype.openWindow = function () {
-        var window = new CountedSubject();
-        this.windows.push(window);
-        var destination = this.destination;
-        destination.next(window);
-        return window;
-    };
-    WindowTimeSubscriber.prototype.closeWindow = function (window) {
-        window.complete();
-        var windows = this.windows;
-        windows.splice(windows.indexOf(window), 1);
-    };
-    return WindowTimeSubscriber;
-}(Subscriber));
-function dispatchWindowTimeSpanOnly(state) {
-    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;
-    if (window) {
-        subscriber.closeWindow(window);
-    }
-    state.window = subscriber.openWindow();
-    this.schedule(state, windowTimeSpan);
-}
-function dispatchWindowCreation(state) {
-    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;
-    var window = subscriber.openWindow();
-    var action = this;
-    var context = { action: action, subscription: null };
-    var timeSpanState = { subscriber: subscriber, window: window, context: context };
-    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);
-    action.add(context.subscription);
-    action.schedule(state, windowCreationInterval);
-}
-function dispatchWindowClose(state) {
-    var subscriber = state.subscriber, window = state.window, context = state.context;
-    if (context && context.action && context.subscription) {
-        context.action.remove(context.subscription);
-    }
-    subscriber.closeWindow(window);
-}
-//# sourceMappingURL=windowTime.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map b/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map
deleted file mode 100644
index 365bd56..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../../../src/internal/operators/windowTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js
deleted file mode 100644
index 0387d97..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function windowToggle(openings, closingSelector) {
-    return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };
-}
-var WindowToggleOperator = /*@__PURE__*/ (function () {
-    function WindowToggleOperator(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    WindowToggleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    };
-    return WindowToggleOperator;
-}());
-var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WindowToggleSubscriber, _super);
-    function WindowToggleSubscriber(destination, openings, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.openings = openings;
-        _this.closingSelector = closingSelector;
-        _this.contexts = [];
-        _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));
-        return _this;
-    }
-    WindowToggleSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        if (contexts) {
-            var len = contexts.length;
-            for (var i = 0; i < len; i++) {
-                contexts[i].window.next(value);
-            }
-        }
-    };
-    WindowToggleSubscriber.prototype._error = function (err) {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_1 = contexts[index];
-                context_1.window.error(err);
-                context_1.subscription.unsubscribe();
-            }
-        }
-        _super.prototype._error.call(this, err);
-    };
-    WindowToggleSubscriber.prototype._complete = function () {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_2 = contexts[index];
-                context_2.window.complete();
-                context_2.subscription.unsubscribe();
-            }
-        }
-        _super.prototype._complete.call(this);
-    };
-    WindowToggleSubscriber.prototype._unsubscribe = function () {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_3 = contexts[index];
-                context_3.window.unsubscribe();
-                context_3.subscription.unsubscribe();
-            }
-        }
-    };
-    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (outerValue === this.openings) {
-            var closingNotifier = void 0;
-            try {
-                var closingSelector = this.closingSelector;
-                closingNotifier = closingSelector(innerValue);
-            }
-            catch (e) {
-                return this.error(e);
-            }
-            var window_1 = new Subject();
-            var subscription = new Subscription();
-            var context_4 = { window: window_1, subscription: subscription };
-            this.contexts.push(context_4);
-            var innerSubscription = subscribeToResult(this, closingNotifier, context_4);
-            if (innerSubscription.closed) {
-                this.closeWindow(this.contexts.length - 1);
-            }
-            else {
-                innerSubscription.context = context_4;
-                subscription.add(innerSubscription);
-            }
-            this.destination.next(window_1);
-        }
-        else {
-            this.closeWindow(this.contexts.indexOf(outerValue));
-        }
-    };
-    WindowToggleSubscriber.prototype.notifyError = function (err) {
-        this.error(err);
-    };
-    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {
-        if (inner !== this.openSubscription) {
-            this.closeWindow(this.contexts.indexOf(inner.context));
-        }
-    };
-    WindowToggleSubscriber.prototype.closeWindow = function (index) {
-        if (index === -1) {
-            return;
-        }
-        var contexts = this.contexts;
-        var context = contexts[index];
-        var window = context.window, subscription = context.subscription;
-        contexts.splice(index, 1);
-        window.complete();
-        subscription.unsubscribe();
-    };
-    return WindowToggleSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=windowToggle.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map
deleted file mode 100644
index b0a3b6e..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js
deleted file mode 100644
index ead5fc8..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function windowWhen(closingSelector) {
-    return function windowWhenOperatorFunction(source) {
-        return source.lift(new WindowOperator(closingSelector));
-    };
-}
-var WindowOperator = /*@__PURE__*/ (function () {
-    function WindowOperator(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    WindowOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));
-    };
-    return WindowOperator;
-}());
-var WindowSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WindowSubscriber, _super);
-    function WindowSubscriber(destination, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.closingSelector = closingSelector;
-        _this.openWindow();
-        return _this;
-    }
-    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow(innerSub);
-    };
-    WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.openWindow(innerSub);
-    };
-    WindowSubscriber.prototype._next = function (value) {
-        this.window.next(value);
-    };
-    WindowSubscriber.prototype._error = function (err) {
-        this.window.error(err);
-        this.destination.error(err);
-        this.unsubscribeClosingNotification();
-    };
-    WindowSubscriber.prototype._complete = function () {
-        this.window.complete();
-        this.destination.complete();
-        this.unsubscribeClosingNotification();
-    };
-    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {
-        if (this.closingNotification) {
-            this.closingNotification.unsubscribe();
-        }
-    };
-    WindowSubscriber.prototype.openWindow = function (innerSub) {
-        if (innerSub === void 0) {
-            innerSub = null;
-        }
-        if (innerSub) {
-            this.remove(innerSub);
-            innerSub.unsubscribe();
-        }
-        var prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        var window = this.window = new Subject();
-        this.destination.next(window);
-        var closingNotifier;
-        try {
-            var closingSelector = this.closingSelector;
-            closingNotifier = closingSelector();
-        }
-        catch (e) {
-            this.destination.error(e);
-            this.window.error(e);
-            return;
-        }
-        this.add(this.closingNotification = subscribeToResult(this, closingNotifier));
-    };
-    return WindowSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=windowWhen.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map
deleted file mode 100644
index 2916af7..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js
deleted file mode 100644
index 3bd163b..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-export function withLatestFrom() {
-    var args = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        args[_i] = arguments[_i];
-    }
-    return function (source) {
-        var project;
-        if (typeof args[args.length - 1] === 'function') {
-            project = args.pop();
-        }
-        var observables = args;
-        return source.lift(new WithLatestFromOperator(observables, project));
-    };
-}
-var WithLatestFromOperator = /*@__PURE__*/ (function () {
-    function WithLatestFromOperator(observables, project) {
-        this.observables = observables;
-        this.project = project;
-    }
-    WithLatestFromOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
-    };
-    return WithLatestFromOperator;
-}());
-var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(WithLatestFromSubscriber, _super);
-    function WithLatestFromSubscriber(destination, observables, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.observables = observables;
-        _this.project = project;
-        _this.toRespond = [];
-        var len = observables.length;
-        _this.values = new Array(len);
-        for (var i = 0; i < len; i++) {
-            _this.toRespond.push(i);
-        }
-        for (var i = 0; i < len; i++) {
-            var observable = observables[i];
-            _this.add(subscribeToResult(_this, observable, observable, i));
-        }
-        return _this;
-    }
-    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values[outerIndex] = innerValue;
-        var toRespond = this.toRespond;
-        if (toRespond.length > 0) {
-            var found = toRespond.indexOf(outerIndex);
-            if (found !== -1) {
-                toRespond.splice(found, 1);
-            }
-        }
-    };
-    WithLatestFromSubscriber.prototype.notifyComplete = function () {
-    };
-    WithLatestFromSubscriber.prototype._next = function (value) {
-        if (this.toRespond.length === 0) {
-            var args = [value].concat(this.values);
-            if (this.project) {
-                this._tryProject(args);
-            }
-            else {
-                this.destination.next(args);
-            }
-        }
-    };
-    WithLatestFromSubscriber.prototype._tryProject = function (args) {
-        var result;
-        try {
-            result = this.project.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return WithLatestFromSubscriber;
-}(OuterSubscriber));
-//# sourceMappingURL=withLatestFrom.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map
deleted file mode 100644
index 4e8e72f..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/zip.js b/node_modules/rxjs/_esm5/internal/operators/zip.js
deleted file mode 100644
index 9d79bce..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/zip.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */
-import { zip as zipStatic } from '../observable/zip';
-export function zip() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function zipOperatorFunction(source) {
-        return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));
-    };
-}
-//# sourceMappingURL=zip.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/zip.js.map b/node_modules/rxjs/_esm5/internal/operators/zip.js.map
deleted file mode 100644
index baa09ef..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../../src/internal/operators/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsCrD,MAAM,UAAU,GAAG;IAAO,qBAA4E;SAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,gBAAI,MAAM,SAAK,WAAW,GAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/operators/zipAll.js b/node_modules/rxjs/_esm5/internal/operators/zipAll.js
deleted file mode 100644
index cc58dd2..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/zipAll.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */
-import { ZipOperator } from '../observable/zip';
-export function zipAll(project) {
-    return function (source) { return source.lift(new ZipOperator(project)); };
-}
-//# sourceMappingURL=zipAll.js.map
diff --git a/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map b/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map
deleted file mode 100644
index e0919fd..0000000
--- a/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../../../src/internal/operators/zipAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,UAAU,MAAM,CAAO,OAAsC;IACjE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js
deleted file mode 100644
index b980756..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function scheduleArray(input, scheduler) {
-    return new Observable(function (subscriber) {
-        var sub = new Subscription();
-        var i = 0;
-        sub.add(scheduler.schedule(function () {
-            if (i === input.length) {
-                subscriber.complete();
-                return;
-            }
-            subscriber.next(input[i++]);
-            if (!subscriber.closed) {
-                sub.add(this.schedule());
-            }
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleArray.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map
deleted file mode 100644
index 2a01c6c..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleArray.js","sources":["../../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js
deleted file mode 100644
index c199cc9..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export function scheduleIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    return new Observable(function (subscriber) {
-        var sub = new Subscription();
-        var iterator;
-        sub.add(function () {
-            if (iterator && typeof iterator.return === 'function') {
-                iterator.return();
-            }
-        });
-        sub.add(scheduler.schedule(function () {
-            iterator = input[Symbol_iterator]();
-            sub.add(scheduler.schedule(function () {
-                if (subscriber.closed) {
-                    return;
-                }
-                var value;
-                var done;
-                try {
-                    var result = iterator.next();
-                    value = result.value;
-                    done = result.done;
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return;
-                }
-                if (done) {
-                    subscriber.complete();
-                }
-                else {
-                    subscriber.next(value);
-                    this.schedule();
-                }
-            }));
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleIterable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map
deleted file mode 100644
index 1c1d88b..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleIterable.js","sources":["../../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC;YAEN,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js
deleted file mode 100644
index 226f596..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { observable as Symbol_observable } from '../symbol/observable';
-export function scheduleObservable(input, scheduler) {
-    return new Observable(function (subscriber) {
-        var sub = new Subscription();
-        sub.add(scheduler.schedule(function () {
-            var observable = input[Symbol_observable]();
-            sub.add(observable.subscribe({
-                next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },
-                error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },
-                complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },
-            }));
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=scheduleObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map
deleted file mode 100644
index 0fd99fb..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleObservable.js","sources":["../../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAM,UAAU,GAAoB,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,YAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,YAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,gBAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js
deleted file mode 100644
index e2f79e3..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-export function schedulePromise(input, scheduler) {
-    return new Observable(function (subscriber) {
-        var sub = new Subscription();
-        sub.add(scheduler.schedule(function () {
-            return input.then(function (value) {
-                sub.add(scheduler.schedule(function () {
-                    subscriber.next(value);
-                    sub.add(scheduler.schedule(function () { return subscriber.complete(); }));
-                }));
-            }, function (err) {
-                sub.add(scheduler.schedule(function () { return subscriber.error(err); }));
-            });
-        }));
-        return sub;
-    });
-}
-//# sourceMappingURL=schedulePromise.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map
deleted file mode 100644
index 98fc42f..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"schedulePromise.js","sources":["../../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CACzC,UAAA,KAAK;YACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,UAAA,GAAG;YACD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,EAVgC,CAUhC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js
deleted file mode 100644
index 5284575..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */
-import { scheduleObservable } from './scheduleObservable';
-import { schedulePromise } from './schedulePromise';
-import { scheduleArray } from './scheduleArray';
-import { scheduleIterable } from './scheduleIterable';
-import { isInteropObservable } from '../util/isInteropObservable';
-import { isPromise } from '../util/isPromise';
-import { isArrayLike } from '../util/isArrayLike';
-import { isIterable } from '../util/isIterable';
-export function scheduled(input, scheduler) {
-    if (input != null) {
-        if (isInteropObservable(input)) {
-            return scheduleObservable(input, scheduler);
-        }
-        else if (isPromise(input)) {
-            return schedulePromise(input, scheduler);
-        }
-        else if (isArrayLike(input)) {
-            return scheduleArray(input, scheduler);
-        }
-        else if (isIterable(input) || typeof input === 'string') {
-            return scheduleIterable(input, scheduler);
-        }
-    }
-    throw new TypeError((input !== null && typeof input || input) + ' is not observable');
-}
-//# sourceMappingURL=scheduled.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map
deleted file mode 100644
index d4e76f8..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduled.js","sources":["../../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAahD,MAAM,UAAU,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/Action.js b/node_modules/rxjs/_esm5/internal/scheduler/Action.js
deleted file mode 100644
index 5b40fd5..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/Action.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subscription } from '../Subscription';
-var Action = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(Action, _super);
-    function Action(scheduler, work) {
-        return _super.call(this) || this;
-    }
-    Action.prototype.schedule = function (state, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        return this;
-    };
-    return Action;
-}(Subscription));
-export { Action };
-//# sourceMappingURL=Action.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map b/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map
deleted file mode 100644
index 92fdd5c..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Action.js","sources":["../../../src/internal/scheduler/Action.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiB/C;IAA+B,kCAAY;IACzC,gBAAY,SAAoB,EAAE,IAAmD;eACnF,iBAAO;IACT,CAAC;IAWM,yBAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,CAA+B,YAAY,GAiB1C"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js
deleted file mode 100644
index 09f436d..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncAction } from './AsyncAction';
-var AnimationFrameAction = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AnimationFrameAction, _super);
-    function AnimationFrameAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (delay !== null && delay > 0) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));
-    };
-    AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            cancelAnimationFrame(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    };
-    return AnimationFrameAction;
-}(AsyncAction));
-export { AnimationFrameAction };
-//# sourceMappingURL=AnimationFrameAction.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map
deleted file mode 100644
index 98fa65a..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameAction.js","sources":["../../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C;IAA6C,gDAAc;IAEzD,8BAAsB,SAAkC,EAClC,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAyB;QAClC,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AArCD,CAA6C,WAAW,GAqCvD"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js
deleted file mode 100644
index 3aed085..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncScheduler } from './AsyncScheduler';
-var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AnimationFrameScheduler, _super);
-    function AnimationFrameScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    AnimationFrameScheduler.prototype.flush = function (action) {
-        this.active = true;
-        this.scheduled = undefined;
-        var actions = this.actions;
-        var error;
-        var index = -1;
-        var count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AnimationFrameScheduler;
-}(AsyncScheduler));
-export { AnimationFrameScheduler };
-//# sourceMappingURL=AnimationFrameScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map
deleted file mode 100644
index 06f7b0f..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAA6C,mDAAc;IAA3D;;IA2BA,CAAC;IA1BQ,uCAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,AA3BD,CAA6C,cAAc,GA2B1D"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js
deleted file mode 100644
index 3e49e0b..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Immediate } from '../util/Immediate';
-import { AsyncAction } from './AsyncAction';
-var AsapAction = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AsapAction, _super);
-    function AsapAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (delay !== null && delay > 0) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));
-    };
-    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            Immediate.clearImmediate(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    };
-    return AsapAction;
-}(AsyncAction));
-export { AsapAction };
-//# sourceMappingURL=AsapAction.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map
deleted file mode 100644
index 74b829a..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapAction.js","sources":["../../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C;IAAmC,sCAAc;IAE/C,oBAAsB,SAAwB,EACxB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAe;QACxB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,iBAAC;AAAD,CAAC,AAtCD,CAAmC,WAAW,GAsC7C"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js
deleted file mode 100644
index f13565c..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncScheduler } from './AsyncScheduler';
-var AsapScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AsapScheduler, _super);
-    function AsapScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    AsapScheduler.prototype.flush = function (action) {
-        this.active = true;
-        this.scheduled = undefined;
-        var actions = this.actions;
-        var error;
-        var index = -1;
-        var count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AsapScheduler;
-}(AsyncScheduler));
-export { AsapScheduler };
-//# sourceMappingURL=AsapScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map
deleted file mode 100644
index f2c9159..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapScheduler.js","sources":["../../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAAmC,yCAAc;IAAjD;;IA2BA,CAAC;IA1BQ,6BAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA3BD,CAAmC,cAAc,GA2BhD"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js
deleted file mode 100644
index 035fcaa..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Action } from './Action';
-var AsyncAction = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AsyncAction, _super);
-    function AsyncAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        _this.pending = false;
-        return _this;
-    }
-    AsyncAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (this.closed) {
-            return this;
-        }
-        this.state = state;
-        var id = this.id;
-        var scheduler = this.scheduler;
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, delay);
-        }
-        this.pending = true;
-        this.delay = delay;
-        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
-        return this;
-    };
-    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        return setInterval(scheduler.flush.bind(scheduler, this), delay);
-    };
-    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (delay !== null && this.delay === delay && this.pending === false) {
-            return id;
-        }
-        clearInterval(id);
-        return undefined;
-    };
-    AsyncAction.prototype.execute = function (state, delay) {
-        if (this.closed) {
-            return new Error('executing a cancelled action');
-        }
-        this.pending = false;
-        var error = this._execute(state, delay);
-        if (error) {
-            return error;
-        }
-        else if (this.pending === false && this.id != null) {
-            this.id = this.recycleAsyncId(this.scheduler, this.id, null);
-        }
-    };
-    AsyncAction.prototype._execute = function (state, delay) {
-        var errored = false;
-        var errorValue = undefined;
-        try {
-            this.work(state);
-        }
-        catch (e) {
-            errored = true;
-            errorValue = !!e && e || new Error(e);
-        }
-        if (errored) {
-            this.unsubscribe();
-            return errorValue;
-        }
-    };
-    AsyncAction.prototype._unsubscribe = function () {
-        var id = this.id;
-        var scheduler = this.scheduler;
-        var actions = scheduler.actions;
-        var index = actions.indexOf(this);
-        this.work = null;
-        this.state = null;
-        this.pending = false;
-        this.scheduler = null;
-        if (index !== -1) {
-            actions.splice(index, 1);
-        }
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, null);
-        }
-        this.delay = null;
-    };
-    return AsyncAction;
-}(Action));
-export { AsyncAction };
-//# sourceMappingURL=AsyncAction.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map
deleted file mode 100644
index 2adefe5..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncAction.js","sources":["../../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js
deleted file mode 100644
index e4a372c..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Scheduler } from '../Scheduler';
-var AsyncScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(AsyncScheduler, _super);
-    function AsyncScheduler(SchedulerAction, now) {
-        if (now === void 0) {
-            now = Scheduler.now;
-        }
-        var _this = _super.call(this, SchedulerAction, function () {
-            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {
-                return AsyncScheduler.delegate.now();
-            }
-            else {
-                return now();
-            }
-        }) || this;
-        _this.actions = [];
-        _this.active = false;
-        _this.scheduled = undefined;
-        return _this;
-    }
-    AsyncScheduler.prototype.schedule = function (work, delay, state) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-            return AsyncScheduler.delegate.schedule(work, delay, state);
-        }
-        else {
-            return _super.prototype.schedule.call(this, work, delay, state);
-        }
-    };
-    AsyncScheduler.prototype.flush = function (action) {
-        var actions = this.actions;
-        if (this.active) {
-            actions.push(action);
-            return;
-        }
-        var error;
-        this.active = true;
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (action = actions.shift());
-        this.active = false;
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AsyncScheduler;
-}(Scheduler));
-export { AsyncScheduler };
-//# sourceMappingURL=AsyncScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map
deleted file mode 100644
index f314809..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncScheduler.js","sources":["../../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC;IAAoC,0CAAS;IAmB3C,wBAAY,eAA8B,EAC9B,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QAD7C,YAEE,kBAAM,eAAe,EAAE;YACrB,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,KAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,SACH;QA1BM,aAAO,GAA4B,EAAE,CAAC;QAOtC,YAAM,GAAY,KAAK,CAAC;QAQxB,eAAS,GAAQ,SAAS,CAAC;;IAWlC,CAAC;IAEM,iCAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,iBAAM,QAAQ,YAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,8BAAK,GAAZ,UAAa,MAAwB;QAE5B,IAAA,sBAAO,CAAS;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjED,CAAoC,SAAS,GAiE5C"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js
deleted file mode 100644
index e18406d..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncAction } from './AsyncAction';
-var QueueAction = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(QueueAction, _super);
-    function QueueAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    QueueAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (delay > 0) {
-            return _super.prototype.schedule.call(this, state, delay);
-        }
-        this.delay = delay;
-        this.state = state;
-        this.scheduler.flush(this);
-        return this;
-    };
-    QueueAction.prototype.execute = function (state, delay) {
-        return (delay > 0 || this.closed) ?
-            _super.prototype.execute.call(this, state, delay) :
-            this._execute(state, delay);
-    };
-    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        return scheduler.flush(this);
-    };
-    return QueueAction;
-}(AsyncAction));
-export { QueueAction };
-//# sourceMappingURL=QueueAction.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map
deleted file mode 100644
index 541a53d..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueAction.js","sources":["../../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C;IAAoC,uCAAc;IAEhD,qBAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAEM,8BAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,iBAAM,QAAQ,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAO,GAAd,UAAe,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,iBAAM,OAAO,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,kBAAC;AAAD,CAAC,AAjCD,CAAoC,WAAW,GAiC9C"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js
deleted file mode 100644
index 6dca70f..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncScheduler } from './AsyncScheduler';
-var QueueScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(QueueScheduler, _super);
-    function QueueScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return QueueScheduler;
-}(AsyncScheduler));
-export { QueueScheduler };
-//# sourceMappingURL=QueueScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map
deleted file mode 100644
index ff548cd..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueScheduler.js","sources":["../../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAAoC,0CAAc;IAAlD;;IACA,CAAC;IAAD,qBAAC;AAAD,CAAC,AADD,CAAoC,cAAc,GACjD"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js
deleted file mode 100644
index 37ee7f3..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js
+++ /dev/null
@@ -1,110 +0,0 @@
-/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(VirtualTimeScheduler, _super);
-    function VirtualTimeScheduler(SchedulerAction, maxFrames) {
-        if (SchedulerAction === void 0) {
-            SchedulerAction = VirtualAction;
-        }
-        if (maxFrames === void 0) {
-            maxFrames = Number.POSITIVE_INFINITY;
-        }
-        var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;
-        _this.maxFrames = maxFrames;
-        _this.frame = 0;
-        _this.index = -1;
-        return _this;
-    }
-    VirtualTimeScheduler.prototype.flush = function () {
-        var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
-        var error, action;
-        while ((action = actions[0]) && action.delay <= maxFrames) {
-            actions.shift();
-            this.frame = action.delay;
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        }
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    VirtualTimeScheduler.frameTimeFactor = 10;
-    return VirtualTimeScheduler;
-}(AsyncScheduler));
-export { VirtualTimeScheduler };
-var VirtualAction = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(VirtualAction, _super);
-    function VirtualAction(scheduler, work, index) {
-        if (index === void 0) {
-            index = scheduler.index += 1;
-        }
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        _this.index = index;
-        _this.active = true;
-        _this.index = scheduler.index = index;
-        return _this;
-    }
-    VirtualAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        if (!this.id) {
-            return _super.prototype.schedule.call(this, state, delay);
-        }
-        this.active = false;
-        var action = new VirtualAction(this.scheduler, this.work);
-        this.add(action);
-        return action.schedule(state, delay);
-    };
-    VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        this.delay = scheduler.frame + delay;
-        var actions = scheduler.actions;
-        actions.push(this);
-        actions.sort(VirtualAction.sortActions);
-        return true;
-    };
-    VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) {
-            delay = 0;
-        }
-        return undefined;
-    };
-    VirtualAction.prototype._execute = function (state, delay) {
-        if (this.active === true) {
-            return _super.prototype._execute.call(this, state, delay);
-        }
-    };
-    VirtualAction.sortActions = function (a, b) {
-        if (a.delay === b.delay) {
-            if (a.index === b.index) {
-                return 0;
-            }
-            else if (a.index > b.index) {
-                return 1;
-            }
-            else {
-                return -1;
-            }
-        }
-        else if (a.delay > b.delay) {
-            return 1;
-        }
-        else {
-            return -1;
-        }
-    };
-    return VirtualAction;
-}(AsyncAction));
-export { VirtualAction };
-//# sourceMappingURL=VirtualTimeScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map
deleted file mode 100644
index 9e30824..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js
deleted file mode 100644
index a4b3977..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */
-import { AnimationFrameAction } from './AnimationFrameAction';
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-export var animationFrame = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction);
-//# sourceMappingURL=animationFrame.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map
deleted file mode 100644
index 8f2924e..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"animationFrame.js","sources":["../../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAsCpE,MAAM,CAAC,IAAM,cAAc,GAAG,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/asap.js b/node_modules/rxjs/_esm5/internal/scheduler/asap.js
deleted file mode 100644
index bfe4f16..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/asap.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */
-import { AsapAction } from './AsapAction';
-import { AsapScheduler } from './AsapScheduler';
-export var asap = /*@__PURE__*/ new AsapScheduler(AsapAction);
-//# sourceMappingURL=asap.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map b/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map
deleted file mode 100644
index 82a07fa..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"asap.js","sources":["../../../src/internal/scheduler/asap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAwChD,MAAM,CAAC,IAAM,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/async.js b/node_modules/rxjs/_esm5/internal/scheduler/async.js
deleted file mode 100644
index 4b29a48..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/async.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-export var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);
-//# sourceMappingURL=async.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/async.js.map b/node_modules/rxjs/_esm5/internal/scheduler/async.js.map
deleted file mode 100644
index e3297c1..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/async.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"async.js","sources":["../../../src/internal/scheduler/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqDlD,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/queue.js b/node_modules/rxjs/_esm5/internal/scheduler/queue.js
deleted file mode 100644
index c0446e8..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/queue.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */
-import { QueueAction } from './QueueAction';
-import { QueueScheduler } from './QueueScheduler';
-export var queue = /*@__PURE__*/ new QueueScheduler(QueueAction);
-//# sourceMappingURL=queue.js.map
diff --git a/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map b/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map
deleted file mode 100644
index fe11c39..0000000
--- a/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"queue.js","sources":["../../../src/internal/scheduler/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAqElD,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/symbol/iterator.js b/node_modules/rxjs/_esm5/internal/symbol/iterator.js
deleted file mode 100644
index 30341cd..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/iterator.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function getSymbolIterator() {
-    if (typeof Symbol !== 'function' || !Symbol.iterator) {
-        return '@@iterator';
-    }
-    return Symbol.iterator;
-}
-export var iterator = /*@__PURE__*/ getSymbolIterator();
-export var $$iterator = iterator;
-//# sourceMappingURL=iterator.js.map
diff --git a/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map b/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map
deleted file mode 100644
index 8231331..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iterator.js","sources":["../../../src/internal/symbol/iterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,IAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK5C,MAAM,CAAC,IAAM,UAAU,GAAG,QAAQ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/symbol/observable.js b/node_modules/rxjs/_esm5/internal/symbol/observable.js
deleted file mode 100644
index 6eb96a3..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/observable.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();
-//# sourceMappingURL=observable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/symbol/observable.js.map b/node_modules/rxjs/_esm5/internal/symbol/observable.js.map
deleted file mode 100644
index 863bc62..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observable.js","sources":["../../../src/internal/symbol/observable.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,IAAM,UAAU,GAAG,CAAC,cAAM,OAAA,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,EAAnE,CAAmE,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js
deleted file mode 100644
index dcf762f..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var rxSubscriber = /*@__PURE__*/ (function () {
-    return typeof Symbol === 'function'
-        ? /*@__PURE__*/ Symbol('rxSubscriber')
-        : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();
-})();
-export var $$rxSubscriber = rxSubscriber;
-//# sourceMappingURL=rxSubscriber.js.map
diff --git a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map
deleted file mode 100644
index a68fff5..0000000
--- a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,YAAY,GAAG,CAAC;IAC3B,OAAA,OAAO,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE;AAFrC,CAEqC,CAAC,EAAE,CAAC;AAK3C,MAAM,CAAC,IAAM,cAAc,GAAG,YAAY,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js
deleted file mode 100644
index 9ff1ef6..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Observable,_Subscription,_SubscriptionLoggable,_util_applyMixins PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-var ColdObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(ColdObservable, _super);
-    function ColdObservable(messages, scheduler) {
-        var _this = _super.call(this, function (subscriber) {
-            var observable = this;
-            var index = observable.logSubscribedFrame();
-            var subscription = new Subscription();
-            subscription.add(new Subscription(function () {
-                observable.logUnsubscribedFrame(index);
-            }));
-            observable.scheduleMessages(subscriber);
-            return subscription;
-        }) || this;
-        _this.messages = messages;
-        _this.subscriptions = [];
-        _this.scheduler = scheduler;
-        return _this;
-    }
-    ColdObservable.prototype.scheduleMessages = function (subscriber) {
-        var messagesLength = this.messages.length;
-        for (var i = 0; i < messagesLength; i++) {
-            var message = this.messages[i];
-            subscriber.add(this.scheduler.schedule(function (_a) {
-                var message = _a.message, subscriber = _a.subscriber;
-                message.notification.observe(subscriber);
-            }, message.frame, { message: message, subscriber: subscriber }));
-        }
-    };
-    return ColdObservable;
-}(Observable));
-export { ColdObservable };
-/*@__PURE__*/ applyMixins(ColdObservable, [SubscriptionLoggable]);
-//# sourceMappingURL=ColdObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map
deleted file mode 100644
index d02429e..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ColdObservable.js","sources":["../../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD;IAAuC,0CAAa;IAMlD,wBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,kBAAM,UAA+B,UAA2B;YAC9D,IAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAChC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,SAEH;QAbkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAiB3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAC,EAAuB;oBAArB,oBAAO,EAAE,0BAAU;gBAAS,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAhCD,CAAuC,UAAU,GAgChD;;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js
deleted file mode 100644
index 1e4aac5..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_SubscriptionLoggable,_util_applyMixins PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-var HotObservable = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(HotObservable, _super);
-    function HotObservable(messages, scheduler) {
-        var _this = _super.call(this) || this;
-        _this.messages = messages;
-        _this.subscriptions = [];
-        _this.scheduler = scheduler;
-        return _this;
-    }
-    HotObservable.prototype._subscribe = function (subscriber) {
-        var subject = this;
-        var index = subject.logSubscribedFrame();
-        var subscription = new Subscription();
-        subscription.add(new Subscription(function () {
-            subject.logUnsubscribedFrame(index);
-        }));
-        subscription.add(_super.prototype._subscribe.call(this, subscriber));
-        return subscription;
-    };
-    HotObservable.prototype.setup = function () {
-        var subject = this;
-        var messagesLength = subject.messages.length;
-        for (var i = 0; i < messagesLength; i++) {
-            (function () {
-                var message = subject.messages[i];
-                subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);
-            })();
-        }
-    };
-    return HotObservable;
-}(Subject));
-export { HotObservable };
-/*@__PURE__*/ applyMixins(HotObservable, [SubscriptionLoggable]);
-//# sourceMappingURL=HotObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map
deleted file mode 100644
index e0f3293..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"HotObservable.js","sources":["../../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOlD;IAAsC,yCAAU;IAM9C,uBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,iBAAO,SAER;QAJkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAQ3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAGD,kCAAU,GAAV,UAAW,UAA2B;QACpC,IAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,IAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAChC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC;gBACC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,cAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAvCD,CAAsC,OAAO,GAuC5C;;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js
deleted file mode 100644
index 2d5ea3b..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var SubscriptionLog = /*@__PURE__*/ (function () {
-    function SubscriptionLog(subscribedFrame, unsubscribedFrame) {
-        if (unsubscribedFrame === void 0) {
-            unsubscribedFrame = Number.POSITIVE_INFINITY;
-        }
-        this.subscribedFrame = subscribedFrame;
-        this.unsubscribedFrame = unsubscribedFrame;
-    }
-    return SubscriptionLog;
-}());
-export { SubscriptionLog };
-//# sourceMappingURL=SubscriptionLog.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map
deleted file mode 100644
index 0eb029d..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLog.js","sources":["../../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA;IACE,yBAAmB,eAAuB,EACvB,iBAAoD;QAApD,kCAAA,EAAA,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC"}
diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js
deleted file mode 100644
index 41bdb9e..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START _SubscriptionLog PURE_IMPORTS_END */
-import { SubscriptionLog } from './SubscriptionLog';
-var SubscriptionLoggable = /*@__PURE__*/ (function () {
-    function SubscriptionLoggable() {
-        this.subscriptions = [];
-    }
-    SubscriptionLoggable.prototype.logSubscribedFrame = function () {
-        this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));
-        return this.subscriptions.length - 1;
-    };
-    SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {
-        var subscriptionLogs = this.subscriptions;
-        var oldSubscriptionLog = subscriptionLogs[index];
-        subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());
-    };
-    return SubscriptionLoggable;
-}());
-export { SubscriptionLoggable };
-//# sourceMappingURL=SubscriptionLoggable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map
deleted file mode 100644
index d41652d..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLoggable.js","sources":["../../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;IAAA;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,iDAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mDAAoB,GAApB,UAAqB,KAAa;QAChC,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,eAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAjBD,IAiBC"}
diff --git a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js
deleted file mode 100644
index 711064f..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=TestMessage.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map
deleted file mode 100644
index b19facd..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestMessage.js","sources":["../../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js
deleted file mode 100644
index 04c6975..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js
+++ /dev/null
@@ -1,359 +0,0 @@
-/** PURE_IMPORTS_START tslib,_Observable,_Notification,_ColdObservable,_HotObservable,_SubscriptionLog,_scheduler_VirtualTimeScheduler,_scheduler_AsyncScheduler PURE_IMPORTS_END */
-import * as tslib_1 from "tslib";
-import { Observable } from '../Observable';
-import { Notification } from '../Notification';
-import { ColdObservable } from './ColdObservable';
-import { HotObservable } from './HotObservable';
-import { SubscriptionLog } from './SubscriptionLog';
-import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';
-import { AsyncScheduler } from '../scheduler/AsyncScheduler';
-var defaultMaxFrame = 750;
-var TestScheduler = /*@__PURE__*/ (function (_super) {
-    tslib_1.__extends(TestScheduler, _super);
-    function TestScheduler(assertDeepEqual) {
-        var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;
-        _this.assertDeepEqual = assertDeepEqual;
-        _this.hotObservables = [];
-        _this.coldObservables = [];
-        _this.flushTests = [];
-        _this.runMode = false;
-        return _this;
-    }
-    TestScheduler.prototype.createTime = function (marbles) {
-        var indexOf = marbles.indexOf('|');
-        if (indexOf === -1) {
-            throw new Error('marble diagram for time should have a completion marker "|"');
-        }
-        return indexOf * TestScheduler.frameTimeFactor;
-    };
-    TestScheduler.prototype.createColdObservable = function (marbles, values, error) {
-        if (marbles.indexOf('^') !== -1) {
-            throw new Error('cold observable cannot have subscription offset "^"');
-        }
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('cold observable cannot have unsubscription marker "!"');
-        }
-        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        var cold = new ColdObservable(messages, this);
-        this.coldObservables.push(cold);
-        return cold;
-    };
-    TestScheduler.prototype.createHotObservable = function (marbles, values, error) {
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('hot observable cannot have unsubscription marker "!"');
-        }
-        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        var subject = new HotObservable(messages, this);
-        this.hotObservables.push(subject);
-        return subject;
-    };
-    TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {
-        var _this = this;
-        var messages = [];
-        observable.subscribe(function (value) {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });
-        }, function (err) {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });
-        }, function () {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });
-        });
-        return messages;
-    };
-    TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {
-        var _this = this;
-        if (subscriptionMarbles === void 0) {
-            subscriptionMarbles = null;
-        }
-        var actual = [];
-        var flushTest = { actual: actual, ready: false };
-        var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
-        var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?
-            0 : subscriptionParsed.subscribedFrame;
-        var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
-        var subscription;
-        this.schedule(function () {
-            subscription = observable.subscribe(function (x) {
-                var value = x;
-                if (x instanceof Observable) {
-                    value = _this.materializeInnerObservable(value, _this.frame);
-                }
-                actual.push({ frame: _this.frame, notification: Notification.createNext(value) });
-            }, function (err) {
-                actual.push({ frame: _this.frame, notification: Notification.createError(err) });
-            }, function () {
-                actual.push({ frame: _this.frame, notification: Notification.createComplete() });
-            });
-        }, subscriptionFrame);
-        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-            this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);
-        }
-        this.flushTests.push(flushTest);
-        var runMode = this.runMode;
-        return {
-            toBe: function (marbles, values, errorValue) {
-                flushTest.ready = true;
-                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
-            }
-        };
-    };
-    TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {
-        var flushTest = { actual: actualSubscriptionLogs, ready: false };
-        this.flushTests.push(flushTest);
-        var runMode = this.runMode;
-        return {
-            toBe: function (marbles) {
-                var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;
-                flushTest.ready = true;
-                flushTest.expected = marblesArray.map(function (marbles) {
-                    return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);
-                });
-            }
-        };
-    };
-    TestScheduler.prototype.flush = function () {
-        var _this = this;
-        var hotObservables = this.hotObservables;
-        while (hotObservables.length > 0) {
-            hotObservables.shift().setup();
-        }
-        _super.prototype.flush.call(this);
-        this.flushTests = this.flushTests.filter(function (test) {
-            if (test.ready) {
-                _this.assertDeepEqual(test.actual, test.expected);
-                return false;
-            }
-            return true;
-        });
-    };
-    TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {
-        var _this = this;
-        if (runMode === void 0) {
-            runMode = false;
-        }
-        if (typeof marbles !== 'string') {
-            return new SubscriptionLog(Number.POSITIVE_INFINITY);
-        }
-        var len = marbles.length;
-        var groupStart = -1;
-        var subscriptionFrame = Number.POSITIVE_INFINITY;
-        var unsubscriptionFrame = Number.POSITIVE_INFINITY;
-        var frame = 0;
-        var _loop_1 = function (i) {
-            var nextFrame = frame;
-            var advanceFrameBy = function (count) {
-                nextFrame += count * _this.frameTimeFactor;
-            };
-            var c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    subscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    advanceFrameBy(1);
-                    break;
-                case '!':
-                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            var buffer = marbles.slice(i);
-                            var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                var duration = parseFloat(match[1]);
-                                var unit = match[2];
-                                var durationInMs = void 0;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this_1.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    throw new Error('there can only be \'^\' and \'!\' markers in a ' +
-                        'subscription marble diagram. Found instead \'' + c + '\'.');
-            }
-            frame = nextFrame;
-            out_i_1 = i;
-        };
-        var this_1 = this, out_i_1;
-        for (var i = 0; i < len; i++) {
-            _loop_1(i);
-            i = out_i_1;
-        }
-        if (unsubscriptionFrame < 0) {
-            return new SubscriptionLog(subscriptionFrame);
-        }
-        else {
-            return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
-        }
-    };
-    TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {
-        var _this = this;
-        if (materializeInnerObservables === void 0) {
-            materializeInnerObservables = false;
-        }
-        if (runMode === void 0) {
-            runMode = false;
-        }
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('conventional marble diagrams cannot have the ' +
-                'unsubscription marker "!"');
-        }
-        var len = marbles.length;
-        var testMessages = [];
-        var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
-        var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);
-        var getValue = typeof values !== 'object' ?
-            function (x) { return x; } :
-            function (x) {
-                if (materializeInnerObservables && values[x] instanceof ColdObservable) {
-                    return values[x].messages;
-                }
-                return values[x];
-            };
-        var groupStart = -1;
-        var _loop_2 = function (i) {
-            var nextFrame = frame;
-            var advanceFrameBy = function (count) {
-                nextFrame += count * _this.frameTimeFactor;
-            };
-            var notification = void 0;
-            var c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '|':
-                    notification = Notification.createComplete();
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    advanceFrameBy(1);
-                    break;
-                case '#':
-                    notification = Notification.createError(errorValue || 'error');
-                    advanceFrameBy(1);
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            var buffer = marbles.slice(i);
-                            var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                var duration = parseFloat(match[1]);
-                                var unit = match[2];
-                                var durationInMs = void 0;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this_2.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    notification = Notification.createNext(getValue(c));
-                    advanceFrameBy(1);
-                    break;
-            }
-            if (notification) {
-                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });
-            }
-            frame = nextFrame;
-            out_i_2 = i;
-        };
-        var this_2 = this, out_i_2;
-        for (var i = 0; i < len; i++) {
-            _loop_2(i);
-            i = out_i_2;
-        }
-        return testMessages;
-    };
-    TestScheduler.prototype.run = function (callback) {
-        var prevFrameTimeFactor = TestScheduler.frameTimeFactor;
-        var prevMaxFrames = this.maxFrames;
-        TestScheduler.frameTimeFactor = 1;
-        this.maxFrames = Number.POSITIVE_INFINITY;
-        this.runMode = true;
-        AsyncScheduler.delegate = this;
-        var helpers = {
-            cold: this.createColdObservable.bind(this),
-            hot: this.createHotObservable.bind(this),
-            flush: this.flush.bind(this),
-            expectObservable: this.expectObservable.bind(this),
-            expectSubscriptions: this.expectSubscriptions.bind(this),
-        };
-        try {
-            var ret = callback(helpers);
-            this.flush();
-            return ret;
-        }
-        finally {
-            TestScheduler.frameTimeFactor = prevFrameTimeFactor;
-            this.maxFrames = prevMaxFrames;
-            this.runMode = false;
-            AsyncScheduler.delegate = undefined;
-        }
-    };
-    return TestScheduler;
-}(VirtualTimeScheduler));
-export { TestScheduler };
-//# sourceMappingURL=TestScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map
deleted file mode 100644
index 2ef5201..0000000
--- a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestScheduler.js","sources":["../../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/_esm5/internal/types.js b/node_modules/rxjs/_esm5/internal/types.js
deleted file mode 100644
index c62542c..0000000
--- a/node_modules/rxjs/_esm5/internal/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
diff --git a/node_modules/rxjs/_esm5/internal/types.js.map b/node_modules/rxjs/_esm5/internal/types.js.map
deleted file mode 100644
index 607b992..0000000
--- a/node_modules/rxjs/_esm5/internal/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sources":["../../src/internal/types.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js
deleted file mode 100644
index 401828b..0000000
--- a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () {
-    function ArgumentOutOfRangeErrorImpl() {
-        Error.call(this);
-        this.message = 'argument out of range';
-        this.name = 'ArgumentOutOfRangeError';
-        return this;
-    }
-    ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return ArgumentOutOfRangeErrorImpl;
-})();
-export var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
-//# sourceMappingURL=ArgumentOutOfRangeError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map
deleted file mode 100644
index bc3c755..0000000
--- a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":"AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,IAAM,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/EmptyError.js b/node_modules/rxjs/_esm5/internal/util/EmptyError.js
deleted file mode 100644
index cca489d..0000000
--- a/node_modules/rxjs/_esm5/internal/util/EmptyError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var EmptyErrorImpl = /*@__PURE__*/ (function () {
-    function EmptyErrorImpl() {
-        Error.call(this);
-        this.message = 'no elements in sequence';
-        this.name = 'EmptyError';
-        return this;
-    }
-    EmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return EmptyErrorImpl;
-})();
-export var EmptyError = EmptyErrorImpl;
-//# sourceMappingURL=EmptyError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map b/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map
deleted file mode 100644
index 70117cf..0000000
--- a/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"EmptyError.js","sources":["../../../src/internal/util/EmptyError.ts"],"names":[],"mappings":"AAOA,IAAM,cAAc,GAAG,CAAC;IACtB,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,IAAM,UAAU,GAAmB,cAAqB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/Immediate.js b/node_modules/rxjs/_esm5/internal/util/Immediate.js
deleted file mode 100644
index 9d79b64..0000000
--- a/node_modules/rxjs/_esm5/internal/util/Immediate.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var nextHandle = 1;
-var RESOLVED = /*@__PURE__*/ (function () { return /*@__PURE__*/ Promise.resolve(); })();
-var activeHandles = {};
-function findAndClearHandle(handle) {
-    if (handle in activeHandles) {
-        delete activeHandles[handle];
-        return true;
-    }
-    return false;
-}
-export var Immediate = {
-    setImmediate: function (cb) {
-        var handle = nextHandle++;
-        activeHandles[handle] = true;
-        RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });
-        return handle;
-    },
-    clearImmediate: function (handle) {
-        findAndClearHandle(handle);
-    },
-};
-export var TestTools = {
-    pending: function () {
-        return Object.keys(activeHandles).length;
-    }
-};
-//# sourceMappingURL=Immediate.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/Immediate.js.map b/node_modules/rxjs/_esm5/internal/util/Immediate.js.map
deleted file mode 100644
index dee1d43..0000000
--- a/node_modules/rxjs/_esm5/internal/util/Immediate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Immediate.js","sources":["../../../src/internal/util/Immediate.ts"],"names":[],"mappings":"AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAM,QAAQ,GAAG,CAAC,cAAM,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC,EAAE,CAAC;AAC7C,IAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,MAAM,CAAC,IAAM,SAAS,GAAG;IACvB,YAAY,EAAZ,UAAa,EAAc;QACzB,IAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,cAAM,OAAA,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAlC,CAAkC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,EAAd,UAAe,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKF,MAAM,CAAC,IAAM,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js
deleted file mode 100644
index 3b33398..0000000
--- a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () {
-    function ObjectUnsubscribedErrorImpl() {
-        Error.call(this);
-        this.message = 'object unsubscribed';
-        this.name = 'ObjectUnsubscribedError';
-        return this;
-    }
-    ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return ObjectUnsubscribedErrorImpl;
-})();
-export var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
-//# sourceMappingURL=ObjectUnsubscribedError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map
deleted file mode 100644
index 0e7d3af..0000000
--- a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":"AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWL,MAAM,CAAC,IAAM,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js
deleted file mode 100644
index 3740348..0000000
--- a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var TimeoutErrorImpl = /*@__PURE__*/ (function () {
-    function TimeoutErrorImpl() {
-        Error.call(this);
-        this.message = 'Timeout has occurred';
-        this.name = 'TimeoutError';
-        return this;
-    }
-    TimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return TimeoutErrorImpl;
-})();
-export var TimeoutError = TimeoutErrorImpl;
-//# sourceMappingURL=TimeoutError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map
deleted file mode 100644
index 4dafca3..0000000
--- a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TimeoutError.js","sources":["../../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":"AAOA,IAAM,gBAAgB,GAAG,CAAC;IACxB,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASL,MAAM,CAAC,IAAM,YAAY,GAAqB,gBAAuB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js
deleted file mode 100644
index 76345fe..0000000
--- a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {
-    function UnsubscriptionErrorImpl(errors) {
-        Error.call(this);
-        this.message = errors ?
-            errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n  ') : '';
-        this.name = 'UnsubscriptionError';
-        this.errors = errors;
-        return this;
-    }
-    UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
-    return UnsubscriptionErrorImpl;
-})();
-export var UnsubscriptionError = UnsubscriptionErrorImpl;
-//# sourceMappingURL=UnsubscriptionError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map
deleted file mode 100644
index 02a0b74..0000000
--- a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UnsubscriptionError.js","sources":["../../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":"AAQA,IAAM,uBAAuB,GAAG,CAAC;IAC/B,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,iDACpB,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAG,CAAC,GAAG,CAAC,UAAK,GAAG,CAAC,QAAQ,EAAI,EAA7B,CAA6B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAML,MAAM,CAAC,IAAM,mBAAmB,GAA4B,uBAA8B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/applyMixins.js b/node_modules/rxjs/_esm5/internal/util/applyMixins.js
deleted file mode 100644
index 69cfe79..0000000
--- a/node_modules/rxjs/_esm5/internal/util/applyMixins.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function applyMixins(derivedCtor, baseCtors) {
-    for (var i = 0, len = baseCtors.length; i < len; i++) {
-        var baseCtor = baseCtors[i];
-        var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
-        for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {
-            var name_1 = propertyKeys[j];
-            derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];
-        }
-    }
-}
-//# sourceMappingURL=applyMixins.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map b/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map
deleted file mode 100644
index f4dde03..0000000
--- a/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyMixins.js","sources":["../../../src/internal/util/applyMixins.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,IAAM,MAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/canReportError.js b/node_modules/rxjs/_esm5/internal/util/canReportError.js
deleted file mode 100644
index 954fc15..0000000
--- a/node_modules/rxjs/_esm5/internal/util/canReportError.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */
-import { Subscriber } from '../Subscriber';
-export function canReportError(observer) {
-    while (observer) {
-        var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;
-        if (closed_1 || isStopped) {
-            return false;
-        }
-        else if (destination && destination instanceof Subscriber) {
-            observer = destination;
-        }
-        else {
-            observer = null;
-        }
-    }
-    return true;
-}
-//# sourceMappingURL=canReportError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/canReportError.js.map b/node_modules/rxjs/_esm5/internal/util/canReportError.js.map
deleted file mode 100644
index 62742ce..0000000
--- a/node_modules/rxjs/_esm5/internal/util/canReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/errorObject.js b/node_modules/rxjs/_esm5/internal/util/errorObject.js
deleted file mode 100644
index b6dc75b..0000000
--- a/node_modules/rxjs/_esm5/internal/util/errorObject.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var errorObject = { e: {} };
-//# sourceMappingURL=errorObject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/errorObject.js.map b/node_modules/rxjs/_esm5/internal/util/errorObject.js.map
deleted file mode 100644
index 58aacd1..0000000
--- a/node_modules/rxjs/_esm5/internal/util/errorObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"errorObject.js","sources":["../../../src/internal/util/errorObject.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/hostReportError.js b/node_modules/rxjs/_esm5/internal/util/hostReportError.js
deleted file mode 100644
index 6b1d722..0000000
--- a/node_modules/rxjs/_esm5/internal/util/hostReportError.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function hostReportError(err) {
-    setTimeout(function () { throw err; }, 0);
-}
-//# sourceMappingURL=hostReportError.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map b/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map
deleted file mode 100644
index 6e705e9..0000000
--- a/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hostReportError.js","sources":["../../../src/internal/util/hostReportError.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,cAAQ,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/identity.js b/node_modules/rxjs/_esm5/internal/util/identity.js
deleted file mode 100644
index e40f423..0000000
--- a/node_modules/rxjs/_esm5/internal/util/identity.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function identity(x) {
-    return x;
-}
-//# sourceMappingURL=identity.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/identity.js.map b/node_modules/rxjs/_esm5/internal/util/identity.js.map
deleted file mode 100644
index 3173922..0000000
--- a/node_modules/rxjs/_esm5/internal/util/identity.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"identity.js","sources":["../../../src/internal/util/identity.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isArray.js b/node_modules/rxjs/_esm5/internal/util/isArray.js
deleted file mode 100644
index 52ce6a3..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isArray.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();
-//# sourceMappingURL=isArray.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isArray.js.map b/node_modules/rxjs/_esm5/internal/util/isArray.js.map
deleted file mode 100644
index 39e072f..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArray.js","sources":["../../../src/internal/util/isArray.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,CAAC,cAAM,OAAA,KAAK,CAAC,OAAO,IAAI,CAAC,UAAI,CAAM,IAAe,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAjC,CAAiC,CAAC,EAA7E,CAA6E,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js
deleted file mode 100644
index 770234e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
-//# sourceMappingURL=isArrayLike.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map
deleted file mode 100644
index 72e46a4..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArrayLike.js","sources":["../../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,UAAI,CAAM,IAAwB,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAA5D,CAA4D,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isDate.js b/node_modules/rxjs/_esm5/internal/util/isDate.js
deleted file mode 100644
index d9ef2a3..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isDate.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function isDate(value) {
-    return value instanceof Date && !isNaN(+value);
-}
-//# sourceMappingURL=isDate.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isDate.js.map b/node_modules/rxjs/_esm5/internal/util/isDate.js.map
deleted file mode 100644
index 6958919..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isDate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isDate.js","sources":["../../../src/internal/util/isDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isFunction.js b/node_modules/rxjs/_esm5/internal/util/isFunction.js
deleted file mode 100644
index 09c5a25..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isFunction.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function isFunction(x) {
-    return typeof x === 'function';
-}
-//# sourceMappingURL=isFunction.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isFunction.js.map b/node_modules/rxjs/_esm5/internal/util/isFunction.js.map
deleted file mode 100644
index 3774b95..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isFunction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isFunction.js","sources":["../../../src/internal/util/isFunction.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js
deleted file mode 100644
index ed0dab0..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */
-import { observable as Symbol_observable } from '../symbol/observable';
-export function isInteropObservable(input) {
-    return input && typeof input[Symbol_observable] === 'function';
-}
-//# sourceMappingURL=isInteropObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map
deleted file mode 100644
index 8826421..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isInteropObservable.js","sources":["../../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isIterable.js b/node_modules/rxjs/_esm5/internal/util/isIterable.js
deleted file mode 100644
index d1b7c1e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isIterable.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export function isIterable(input) {
-    return input && typeof input[Symbol_iterator] === 'function';
-}
-//# sourceMappingURL=isIterable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isIterable.js.map b/node_modules/rxjs/_esm5/internal/util/isIterable.js.map
deleted file mode 100644
index 3ff5f6e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isIterable.js","sources":["../../../src/internal/util/isIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isNumeric.js b/node_modules/rxjs/_esm5/internal/util/isNumeric.js
deleted file mode 100644
index eb21f1f..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isNumeric.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */
-import { isArray } from './isArray';
-export function isNumeric(val) {
-    return !isArray(val) && (val - parseFloat(val) + 1) >= 0;
-}
-//# sourceMappingURL=isNumeric.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map b/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map
deleted file mode 100644
index b5954be..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isNumeric.js","sources":["../../../src/internal/util/isNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isObject.js b/node_modules/rxjs/_esm5/internal/util/isObject.js
deleted file mode 100644
index 709a8a7..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isObject.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function isObject(x) {
-    return x !== null && typeof x === 'object';
-}
-//# sourceMappingURL=isObject.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isObject.js.map b/node_modules/rxjs/_esm5/internal/util/isObject.js.map
deleted file mode 100644
index f942bed..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObject.js","sources":["../../../src/internal/util/isObject.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isObservable.js b/node_modules/rxjs/_esm5/internal/util/isObservable.js
deleted file mode 100644
index af8b987..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isObservable.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
-import { Observable } from '../Observable';
-export function isObservable(obj) {
-    return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
-}
-//# sourceMappingURL=isObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isObservable.js.map b/node_modules/rxjs/_esm5/internal/util/isObservable.js.map
deleted file mode 100644
index fa08bc7..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObservable.js","sources":["../../../src/internal/util/isObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isPromise.js b/node_modules/rxjs/_esm5/internal/util/isPromise.js
deleted file mode 100644
index d5c579b..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isPromise.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function isPromise(value) {
-    return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
-}
-//# sourceMappingURL=isPromise.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isPromise.js.map b/node_modules/rxjs/_esm5/internal/util/isPromise.js.map
deleted file mode 100644
index dcd975c..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isPromise.js","sources":["../../../src/internal/util/isPromise.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/isScheduler.js b/node_modules/rxjs/_esm5/internal/util/isScheduler.js
deleted file mode 100644
index f5218be..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isScheduler.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function isScheduler(value) {
-    return value && typeof value.schedule === 'function';
-}
-//# sourceMappingURL=isScheduler.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map b/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map
deleted file mode 100644
index 75c4eca..0000000
--- a/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isScheduler.js","sources":["../../../src/internal/util/isScheduler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/noop.js b/node_modules/rxjs/_esm5/internal/util/noop.js
deleted file mode 100644
index 65de19c..0000000
--- a/node_modules/rxjs/_esm5/internal/util/noop.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function noop() { }
-//# sourceMappingURL=noop.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/noop.js.map b/node_modules/rxjs/_esm5/internal/util/noop.js.map
deleted file mode 100644
index 5d245d8..0000000
--- a/node_modules/rxjs/_esm5/internal/util/noop.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"noop.js","sources":["../../../src/internal/util/noop.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,IAAI,KAAK,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/not.js b/node_modules/rxjs/_esm5/internal/util/not.js
deleted file mode 100644
index a77962e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/not.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export function not(pred, thisArg) {
-    function notPred() {
-        return !(notPred.pred.apply(notPred.thisArg, arguments));
-    }
-    notPred.pred = pred;
-    notPred.thisArg = thisArg;
-    return notPred;
-}
-//# sourceMappingURL=not.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/not.js.map b/node_modules/rxjs/_esm5/internal/util/not.js.map
deleted file mode 100644
index c74adc5..0000000
--- a/node_modules/rxjs/_esm5/internal/util/not.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"not.js","sources":["../../../src/internal/util/not.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/pipe.js b/node_modules/rxjs/_esm5/internal/util/pipe.js
deleted file mode 100644
index f02d398..0000000
--- a/node_modules/rxjs/_esm5/internal/util/pipe.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */
-import { noop } from './noop';
-export function pipe() {
-    var fns = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        fns[_i] = arguments[_i];
-    }
-    return pipeFromArray(fns);
-}
-export function pipeFromArray(fns) {
-    if (!fns) {
-        return noop;
-    }
-    if (fns.length === 1) {
-        return fns[0];
-    }
-    return function piped(input) {
-        return fns.reduce(function (prev, fn) { return fn(prev); }, input);
-    };
-}
-//# sourceMappingURL=pipe.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/pipe.js.map b/node_modules/rxjs/_esm5/internal/util/pipe.js.map
deleted file mode 100644
index 7fb0dd0..0000000
--- a/node_modules/rxjs/_esm5/internal/util/pipe.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB9B,MAAM,UAAU,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/root.js b/node_modules/rxjs/_esm5/internal/util/root.js
deleted file mode 100644
index 48b2a87..0000000
--- a/node_modules/rxjs/_esm5/internal/util/root.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-var __window = typeof window !== 'undefined' && window;
-var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
-    self instanceof WorkerGlobalScope && self;
-var __global = typeof global !== 'undefined' && global;
-var _root = __window || __global || __self;
-/*@__PURE__*/ (function () {
-    if (!_root) {
-        throw /*@__PURE__*/ new Error('RxJS could not find any global context (window, self, global)');
-    }
-})();
-export { _root as root };
-//# sourceMappingURL=root.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/root.js.map b/node_modules/rxjs/_esm5/internal/util/root.js.map
deleted file mode 100644
index 29b8a5f..0000000
--- a/node_modules/rxjs/_esm5/internal/util/root.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"root.js","sources":["../../../src/internal/util/root.ts"],"names":[],"mappings":"AAeA,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAKlD,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js
deleted file mode 100644
index f18d25e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */
-import { subscribeToArray } from './subscribeToArray';
-import { subscribeToPromise } from './subscribeToPromise';
-import { subscribeToIterable } from './subscribeToIterable';
-import { subscribeToObservable } from './subscribeToObservable';
-import { isArrayLike } from './isArrayLike';
-import { isPromise } from './isPromise';
-import { isObject } from './isObject';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-import { observable as Symbol_observable } from '../symbol/observable';
-export var subscribeTo = function (result) {
-    if (!!result && typeof result[Symbol_observable] === 'function') {
-        return subscribeToObservable(result);
-    }
-    else if (isArrayLike(result)) {
-        return subscribeToArray(result);
-    }
-    else if (isPromise(result)) {
-        return subscribeToPromise(result);
-    }
-    else if (!!result && typeof result[Symbol_iterator] === 'function') {
-        return subscribeToIterable(result);
-    }
-    else {
-        var value = isObject(result) ? 'an invalid object' : "'" + result + "'";
-        var msg = "You provided " + value + " where a stream was expected."
-            + ' You can provide an Observable, Promise, Array, or Iterable.';
-        throw new TypeError(msg);
-    }
-};
-//# sourceMappingURL=subscribeTo.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map
deleted file mode 100644
index d4ceec1..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeTo.js","sources":["../../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,MAAM,CAAC,IAAM,WAAW,GAAG,UAAI,MAA0B;IACvD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,qBAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,kBAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,mBAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAI,MAAM,MAAG,CAAC;QACrE,IAAM,GAAG,GAAG,kBAAgB,KAAK,kCAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js
deleted file mode 100644
index 1c45718..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export var subscribeToArray = function (array) {
-    return function (subscriber) {
-        for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {
-            subscriber.next(array[i]);
-        }
-        subscriber.complete();
-    };
-};
-//# sourceMappingURL=subscribeToArray.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map
deleted file mode 100644
index 72d912b..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToArray.js","sources":["../../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAI,KAAmB,IAAK,OAAA,UAAC,UAAyB;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,EAL2D,CAK3D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js
deleted file mode 100644
index 39dcb2d..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-export var subscribeToIterable = function (iterable) {
-    return function (subscriber) {
-        var iterator = iterable[Symbol_iterator]();
-        do {
-            var item = iterator.next();
-            if (item.done) {
-                subscriber.complete();
-                break;
-            }
-            subscriber.next(item.value);
-            if (subscriber.closed) {
-                break;
-            }
-        } while (true);
-        if (typeof iterator.return === 'function') {
-            subscriber.add(function () {
-                if (iterator.return) {
-                    iterator.return();
-                }
-            });
-        }
-        return subscriber;
-    };
-};
-//# sourceMappingURL=subscribeToIterable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map
deleted file mode 100644
index 9fd0ca4..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToIterable.js","sources":["../../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAI,QAAqB,IAAK,OAAA,UAAC,UAAyB;IACzF,IAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7C,GAAG;QACD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC;YACb,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,EAxBgE,CAwBhE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js
deleted file mode 100644
index 1a04dfc..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */
-import { observable as Symbol_observable } from '../symbol/observable';
-export var subscribeToObservable = function (obj) {
-    return function (subscriber) {
-        var obs = obj[Symbol_observable]();
-        if (typeof obs.subscribe !== 'function') {
-            throw new TypeError('Provided object does not correctly implement Symbol.observable');
-        }
-        else {
-            return obs.subscribe(subscriber);
-        }
-    };
-};
-//# sourceMappingURL=subscribeToObservable.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map
deleted file mode 100644
index 13f8849..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToObservable.js","sources":["../../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOvE,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAI,GAAQ,IAAK,OAAA,UAAC,UAAyB;IAC9E,IAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,EARqD,CAQrD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js
deleted file mode 100644
index 1a01bbe..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */
-import { hostReportError } from './hostReportError';
-export var subscribeToPromise = function (promise) {
-    return function (subscriber) {
-        promise.then(function (value) {
-            if (!subscriber.closed) {
-                subscriber.next(value);
-                subscriber.complete();
-            }
-        }, function (err) { return subscriber.error(err); })
-            .then(null, hostReportError);
-        return subscriber;
-    };
-};
-//# sourceMappingURL=subscribeToPromise.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map
deleted file mode 100644
index 8271a7e..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToPromise.js","sources":["../../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAI,OAAuB,IAAK,OAAA,UAAC,UAAyB;IAC1F,OAAO,CAAC,IAAI,CACV,UAAC,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,UAAC,GAAQ,IAAK,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,EAZiE,CAYjE,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js
deleted file mode 100644
index 73b36eb..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeTo } from './subscribeTo';
-import { Observable } from '../Observable';
-export function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {
-    if (innerSubscriber === void 0) {
-        innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);
-    }
-    if (innerSubscriber.closed) {
-        return undefined;
-    }
-    if (result instanceof Observable) {
-        return result.subscribe(innerSubscriber);
-    }
-    return subscribeTo(result)(innerSubscriber);
-}
-//# sourceMappingURL=subscribeToResult.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map
deleted file mode 100644
index 5a5239c..0000000
--- a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToResult.js","sources":["../../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiB3C,MAAM,UAAU,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,eAA6F;IAA7F,gCAAA,EAAA,sBAAqC,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js
deleted file mode 100644
index b61db35..0000000
--- a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */
-import { Subscriber } from '../Subscriber';
-import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';
-import { empty as emptyObserver } from '../Observer';
-export function toSubscriber(nextOrObserver, error, complete) {
-    if (nextOrObserver) {
-        if (nextOrObserver instanceof Subscriber) {
-            return nextOrObserver;
-        }
-        if (nextOrObserver[rxSubscriberSymbol]) {
-            return nextOrObserver[rxSubscriberSymbol]();
-        }
-    }
-    if (!nextOrObserver && !error && !complete) {
-        return new Subscriber(emptyObserver);
-    }
-    return new Subscriber(nextOrObserver, error, complete);
-}
-//# sourceMappingURL=toSubscriber.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map
deleted file mode 100644
index 5f6c7a9..0000000
--- a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toSubscriber.js","sources":["../../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,UAAU,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,UAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"}
diff --git a/node_modules/rxjs/_esm5/internal/util/tryCatch.js b/node_modules/rxjs/_esm5/internal/util/tryCatch.js
deleted file mode 100644
index d49095d..0000000
--- a/node_modules/rxjs/_esm5/internal/util/tryCatch.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */
-import { errorObject } from './errorObject';
-var tryCatchTarget;
-function tryCatcher() {
-    errorObject.e = undefined;
-    try {
-        return tryCatchTarget.apply(this, arguments);
-    }
-    catch (e) {
-        errorObject.e = e;
-        return errorObject;
-    }
-    finally {
-        tryCatchTarget = undefined;
-    }
-}
-export function tryCatch(fn) {
-    tryCatchTarget = fn;
-    return tryCatcher;
-}
-//# sourceMappingURL=tryCatch.js.map
diff --git a/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map b/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map
deleted file mode 100644
index f685299..0000000
--- a/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tryCatch.js","sources":["../../../src/internal/util/tryCatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC"}
diff --git a/node_modules/rxjs/_esm5/operators/index.js b/node_modules/rxjs/_esm5/operators/index.js
deleted file mode 100644
index 808bb1d..0000000
--- a/node_modules/rxjs/_esm5/operators/index.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { audit } from '../internal/operators/audit';
-export { auditTime } from '../internal/operators/auditTime';
-export { buffer } from '../internal/operators/buffer';
-export { bufferCount } from '../internal/operators/bufferCount';
-export { bufferTime } from '../internal/operators/bufferTime';
-export { bufferToggle } from '../internal/operators/bufferToggle';
-export { bufferWhen } from '../internal/operators/bufferWhen';
-export { catchError } from '../internal/operators/catchError';
-export { combineAll } from '../internal/operators/combineAll';
-export { combineLatest } from '../internal/operators/combineLatest';
-export { concat } from '../internal/operators/concat';
-export { concatAll } from '../internal/operators/concatAll';
-export { concatMap } from '../internal/operators/concatMap';
-export { concatMapTo } from '../internal/operators/concatMapTo';
-export { count } from '../internal/operators/count';
-export { debounce } from '../internal/operators/debounce';
-export { debounceTime } from '../internal/operators/debounceTime';
-export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';
-export { delay } from '../internal/operators/delay';
-export { delayWhen } from '../internal/operators/delayWhen';
-export { dematerialize } from '../internal/operators/dematerialize';
-export { distinct } from '../internal/operators/distinct';
-export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';
-export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';
-export { elementAt } from '../internal/operators/elementAt';
-export { endWith } from '../internal/operators/endWith';
-export { every } from '../internal/operators/every';
-export { exhaust } from '../internal/operators/exhaust';
-export { exhaustMap } from '../internal/operators/exhaustMap';
-export { expand } from '../internal/operators/expand';
-export { filter } from '../internal/operators/filter';
-export { finalize } from '../internal/operators/finalize';
-export { find } from '../internal/operators/find';
-export { findIndex } from '../internal/operators/findIndex';
-export { first } from '../internal/operators/first';
-export { groupBy } from '../internal/operators/groupBy';
-export { ignoreElements } from '../internal/operators/ignoreElements';
-export { isEmpty } from '../internal/operators/isEmpty';
-export { last } from '../internal/operators/last';
-export { map } from '../internal/operators/map';
-export { mapTo } from '../internal/operators/mapTo';
-export { materialize } from '../internal/operators/materialize';
-export { max } from '../internal/operators/max';
-export { merge } from '../internal/operators/merge';
-export { mergeAll } from '../internal/operators/mergeAll';
-export { mergeMap } from '../internal/operators/mergeMap';
-export { mergeMap as flatMap } from '../internal/operators/mergeMap';
-export { mergeMapTo } from '../internal/operators/mergeMapTo';
-export { mergeScan } from '../internal/operators/mergeScan';
-export { min } from '../internal/operators/min';
-export { multicast } from '../internal/operators/multicast';
-export { observeOn } from '../internal/operators/observeOn';
-export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';
-export { pairwise } from '../internal/operators/pairwise';
-export { partition } from '../internal/operators/partition';
-export { pluck } from '../internal/operators/pluck';
-export { publish } from '../internal/operators/publish';
-export { publishBehavior } from '../internal/operators/publishBehavior';
-export { publishLast } from '../internal/operators/publishLast';
-export { publishReplay } from '../internal/operators/publishReplay';
-export { race } from '../internal/operators/race';
-export { reduce } from '../internal/operators/reduce';
-export { repeat } from '../internal/operators/repeat';
-export { repeatWhen } from '../internal/operators/repeatWhen';
-export { retry } from '../internal/operators/retry';
-export { retryWhen } from '../internal/operators/retryWhen';
-export { refCount } from '../internal/operators/refCount';
-export { sample } from '../internal/operators/sample';
-export { sampleTime } from '../internal/operators/sampleTime';
-export { scan } from '../internal/operators/scan';
-export { sequenceEqual } from '../internal/operators/sequenceEqual';
-export { share } from '../internal/operators/share';
-export { shareReplay } from '../internal/operators/shareReplay';
-export { single } from '../internal/operators/single';
-export { skip } from '../internal/operators/skip';
-export { skipLast } from '../internal/operators/skipLast';
-export { skipUntil } from '../internal/operators/skipUntil';
-export { skipWhile } from '../internal/operators/skipWhile';
-export { startWith } from '../internal/operators/startWith';
-export { subscribeOn } from '../internal/operators/subscribeOn';
-export { switchAll } from '../internal/operators/switchAll';
-export { switchMap } from '../internal/operators/switchMap';
-export { switchMapTo } from '../internal/operators/switchMapTo';
-export { take } from '../internal/operators/take';
-export { takeLast } from '../internal/operators/takeLast';
-export { takeUntil } from '../internal/operators/takeUntil';
-export { takeWhile } from '../internal/operators/takeWhile';
-export { tap } from '../internal/operators/tap';
-export { throttle } from '../internal/operators/throttle';
-export { throttleTime } from '../internal/operators/throttleTime';
-export { throwIfEmpty } from '../internal/operators/throwIfEmpty';
-export { timeInterval } from '../internal/operators/timeInterval';
-export { timeout } from '../internal/operators/timeout';
-export { timeoutWith } from '../internal/operators/timeoutWith';
-export { timestamp } from '../internal/operators/timestamp';
-export { toArray } from '../internal/operators/toArray';
-export { window } from '../internal/operators/window';
-export { windowCount } from '../internal/operators/windowCount';
-export { windowTime } from '../internal/operators/windowTime';
-export { windowToggle } from '../internal/operators/windowToggle';
-export { windowWhen } from '../internal/operators/windowWhen';
-export { withLatestFrom } from '../internal/operators/withLatestFrom';
-export { zip } from '../internal/operators/zip';
-export { zipAll } from '../internal/operators/zipAll';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/operators/index.js.map b/node_modules/rxjs/_esm5/operators/index.js.map
deleted file mode 100644
index 3d3ab93..0000000
--- a/node_modules/rxjs/_esm5/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/operators/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC"}
diff --git a/node_modules/rxjs/_esm5/path-mapping.js b/node_modules/rxjs/_esm5/path-mapping.js
deleted file mode 100644
index 2fc15a1..0000000
--- a/node_modules/rxjs/_esm5/path-mapping.js
+++ /dev/null
@@ -1,453 +0,0 @@
-
-"use strict"
-
-var path = require('path');
-var dir = path.resolve(__dirname);
-
-module.exports = function() {
-  return {
-    "rxjs/util/tryCatch": "rxjs-compat/_esm5/util/tryCatch",
-    "rxjs/util/toSubscriber": "rxjs-compat/_esm5/util/toSubscriber",
-    "rxjs/util/subscribeToResult": "rxjs-compat/_esm5/util/subscribeToResult",
-    "rxjs/util/subscribeToPromise": "rxjs-compat/_esm5/util/subscribeToPromise",
-    "rxjs/util/subscribeToObservable": "rxjs-compat/_esm5/util/subscribeToObservable",
-    "rxjs/util/subscribeToIterable": "rxjs-compat/_esm5/util/subscribeToIterable",
-    "rxjs/util/subscribeToArray": "rxjs-compat/_esm5/util/subscribeToArray",
-    "rxjs/util/subscribeTo": "rxjs-compat/_esm5/util/subscribeTo",
-    "rxjs/util/root": "rxjs-compat/_esm5/util/root",
-    "rxjs/util/pipe": "rxjs-compat/_esm5/util/pipe",
-    "rxjs/util/not": "rxjs-compat/_esm5/util/not",
-    "rxjs/util/noop": "rxjs-compat/_esm5/util/noop",
-    "rxjs/util/isScheduler": "rxjs-compat/_esm5/util/isScheduler",
-    "rxjs/util/isPromise": "rxjs-compat/_esm5/util/isPromise",
-    "rxjs/util/isObservable": "rxjs-compat/_esm5/util/isObservable",
-    "rxjs/util/isObject": "rxjs-compat/_esm5/util/isObject",
-    "rxjs/util/isNumeric": "rxjs-compat/_esm5/util/isNumeric",
-    "rxjs/util/isIterable": "rxjs-compat/_esm5/util/isIterable",
-    "rxjs/util/isFunction": "rxjs-compat/_esm5/util/isFunction",
-    "rxjs/util/isDate": "rxjs-compat/_esm5/util/isDate",
-    "rxjs/util/isArrayLike": "rxjs-compat/_esm5/util/isArrayLike",
-    "rxjs/util/isArray": "rxjs-compat/_esm5/util/isArray",
-    "rxjs/util/identity": "rxjs-compat/_esm5/util/identity",
-    "rxjs/util/hostReportError": "rxjs-compat/_esm5/util/hostReportError",
-    "rxjs/util/errorObject": "rxjs-compat/_esm5/util/errorObject",
-    "rxjs/util/applyMixins": "rxjs-compat/_esm5/util/applyMixins",
-    "rxjs/util/UnsubscriptionError": "rxjs-compat/_esm5/util/UnsubscriptionError",
-    "rxjs/util/TimeoutError": "rxjs-compat/_esm5/util/TimeoutError",
-    "rxjs/util/ObjectUnsubscribedError": "rxjs-compat/_esm5/util/ObjectUnsubscribedError",
-    "rxjs/util/Immediate": "rxjs-compat/_esm5/util/Immediate",
-    "rxjs/util/EmptyError": "rxjs-compat/_esm5/util/EmptyError",
-    "rxjs/util/ArgumentOutOfRangeError": "rxjs-compat/_esm5/util/ArgumentOutOfRangeError",
-    "rxjs/symbol/rxSubscriber": "rxjs-compat/_esm5/symbol/rxSubscriber",
-    "rxjs/symbol/observable": "rxjs-compat/_esm5/symbol/observable",
-    "rxjs/symbol/iterator": "rxjs-compat/_esm5/symbol/iterator",
-    "rxjs/scheduler/queue": "rxjs-compat/_esm5/scheduler/queue",
-    "rxjs/scheduler/async": "rxjs-compat/_esm5/scheduler/async",
-    "rxjs/scheduler/asap": "rxjs-compat/_esm5/scheduler/asap",
-    "rxjs/scheduler/animationFrame": "rxjs-compat/_esm5/scheduler/animationFrame",
-    "rxjs/operators/zipAll": "rxjs-compat/_esm5/operators/zipAll",
-    "rxjs/operators/zip": "rxjs-compat/_esm5/operators/zip",
-    "rxjs/operators/withLatestFrom": "rxjs-compat/_esm5/operators/withLatestFrom",
-    "rxjs/operators/windowWhen": "rxjs-compat/_esm5/operators/windowWhen",
-    "rxjs/operators/windowToggle": "rxjs-compat/_esm5/operators/windowToggle",
-    "rxjs/operators/windowTime": "rxjs-compat/_esm5/operators/windowTime",
-    "rxjs/operators/windowCount": "rxjs-compat/_esm5/operators/windowCount",
-    "rxjs/operators/window": "rxjs-compat/_esm5/operators/window",
-    "rxjs/operators/toArray": "rxjs-compat/_esm5/operators/toArray",
-    "rxjs/operators/timestamp": "rxjs-compat/_esm5/operators/timestamp",
-    "rxjs/operators/timeoutWith": "rxjs-compat/_esm5/operators/timeoutWith",
-    "rxjs/operators/timeout": "rxjs-compat/_esm5/operators/timeout",
-    "rxjs/operators/timeInterval": "rxjs-compat/_esm5/operators/timeInterval",
-    "rxjs/operators/throwIfEmpty": "rxjs-compat/_esm5/operators/throwIfEmpty",
-    "rxjs/operators/throttleTime": "rxjs-compat/_esm5/operators/throttleTime",
-    "rxjs/operators/throttle": "rxjs-compat/_esm5/operators/throttle",
-    "rxjs/operators/tap": "rxjs-compat/_esm5/operators/tap",
-    "rxjs/operators/takeWhile": "rxjs-compat/_esm5/operators/takeWhile",
-    "rxjs/operators/takeUntil": "rxjs-compat/_esm5/operators/takeUntil",
-    "rxjs/operators/takeLast": "rxjs-compat/_esm5/operators/takeLast",
-    "rxjs/operators/take": "rxjs-compat/_esm5/operators/take",
-    "rxjs/operators/switchMapTo": "rxjs-compat/_esm5/operators/switchMapTo",
-    "rxjs/operators/switchMap": "rxjs-compat/_esm5/operators/switchMap",
-    "rxjs/operators/switchAll": "rxjs-compat/_esm5/operators/switchAll",
-    "rxjs/operators/subscribeOn": "rxjs-compat/_esm5/operators/subscribeOn",
-    "rxjs/operators/startWith": "rxjs-compat/_esm5/operators/startWith",
-    "rxjs/operators/skipWhile": "rxjs-compat/_esm5/operators/skipWhile",
-    "rxjs/operators/skipUntil": "rxjs-compat/_esm5/operators/skipUntil",
-    "rxjs/operators/skipLast": "rxjs-compat/_esm5/operators/skipLast",
-    "rxjs/operators/skip": "rxjs-compat/_esm5/operators/skip",
-    "rxjs/operators/single": "rxjs-compat/_esm5/operators/single",
-    "rxjs/operators/shareReplay": "rxjs-compat/_esm5/operators/shareReplay",
-    "rxjs/operators/share": "rxjs-compat/_esm5/operators/share",
-    "rxjs/operators/sequenceEqual": "rxjs-compat/_esm5/operators/sequenceEqual",
-    "rxjs/operators/scan": "rxjs-compat/_esm5/operators/scan",
-    "rxjs/operators/sampleTime": "rxjs-compat/_esm5/operators/sampleTime",
-    "rxjs/operators/sample": "rxjs-compat/_esm5/operators/sample",
-    "rxjs/operators/retryWhen": "rxjs-compat/_esm5/operators/retryWhen",
-    "rxjs/operators/retry": "rxjs-compat/_esm5/operators/retry",
-    "rxjs/operators/repeatWhen": "rxjs-compat/_esm5/operators/repeatWhen",
-    "rxjs/operators/repeat": "rxjs-compat/_esm5/operators/repeat",
-    "rxjs/operators/refCount": "rxjs-compat/_esm5/operators/refCount",
-    "rxjs/operators/reduce": "rxjs-compat/_esm5/operators/reduce",
-    "rxjs/operators/race": "rxjs-compat/_esm5/operators/race",
-    "rxjs/operators/publishReplay": "rxjs-compat/_esm5/operators/publishReplay",
-    "rxjs/operators/publishLast": "rxjs-compat/_esm5/operators/publishLast",
-    "rxjs/operators/publishBehavior": "rxjs-compat/_esm5/operators/publishBehavior",
-    "rxjs/operators/publish": "rxjs-compat/_esm5/operators/publish",
-    "rxjs/operators/pluck": "rxjs-compat/_esm5/operators/pluck",
-    "rxjs/operators/partition": "rxjs-compat/_esm5/operators/partition",
-    "rxjs/operators/pairwise": "rxjs-compat/_esm5/operators/pairwise",
-    "rxjs/operators/onErrorResumeNext": "rxjs-compat/_esm5/operators/onErrorResumeNext",
-    "rxjs/operators/observeOn": "rxjs-compat/_esm5/operators/observeOn",
-    "rxjs/operators/multicast": "rxjs-compat/_esm5/operators/multicast",
-    "rxjs/operators/min": "rxjs-compat/_esm5/operators/min",
-    "rxjs/operators/mergeScan": "rxjs-compat/_esm5/operators/mergeScan",
-    "rxjs/operators/mergeMapTo": "rxjs-compat/_esm5/operators/mergeMapTo",
-    "rxjs/operators/mergeMap": "rxjs-compat/_esm5/operators/mergeMap",
-    "rxjs/operators/mergeAll": "rxjs-compat/_esm5/operators/mergeAll",
-    "rxjs/operators/merge": "rxjs-compat/_esm5/operators/merge",
-    "rxjs/operators/max": "rxjs-compat/_esm5/operators/max",
-    "rxjs/operators/materialize": "rxjs-compat/_esm5/operators/materialize",
-    "rxjs/operators/mapTo": "rxjs-compat/_esm5/operators/mapTo",
-    "rxjs/operators/map": "rxjs-compat/_esm5/operators/map",
-    "rxjs/operators/last": "rxjs-compat/_esm5/operators/last",
-    "rxjs/operators/isEmpty": "rxjs-compat/_esm5/operators/isEmpty",
-    "rxjs/operators/ignoreElements": "rxjs-compat/_esm5/operators/ignoreElements",
-    "rxjs/operators/groupBy": "rxjs-compat/_esm5/operators/groupBy",
-    "rxjs/operators/first": "rxjs-compat/_esm5/operators/first",
-    "rxjs/operators/findIndex": "rxjs-compat/_esm5/operators/findIndex",
-    "rxjs/operators/find": "rxjs-compat/_esm5/operators/find",
-    "rxjs/operators/finalize": "rxjs-compat/_esm5/operators/finalize",
-    "rxjs/operators/filter": "rxjs-compat/_esm5/operators/filter",
-    "rxjs/operators/expand": "rxjs-compat/_esm5/operators/expand",
-    "rxjs/operators/exhaustMap": "rxjs-compat/_esm5/operators/exhaustMap",
-    "rxjs/operators/exhaust": "rxjs-compat/_esm5/operators/exhaust",
-    "rxjs/operators/every": "rxjs-compat/_esm5/operators/every",
-    "rxjs/operators/elementAt": "rxjs-compat/_esm5/operators/elementAt",
-    "rxjs/operators/distinctUntilKeyChanged": "rxjs-compat/_esm5/operators/distinctUntilKeyChanged",
-    "rxjs/operators/distinctUntilChanged": "rxjs-compat/_esm5/operators/distinctUntilChanged",
-    "rxjs/operators/distinct": "rxjs-compat/_esm5/operators/distinct",
-    "rxjs/operators/dematerialize": "rxjs-compat/_esm5/operators/dematerialize",
-    "rxjs/operators/delayWhen": "rxjs-compat/_esm5/operators/delayWhen",
-    "rxjs/operators/delay": "rxjs-compat/_esm5/operators/delay",
-    "rxjs/operators/defaultIfEmpty": "rxjs-compat/_esm5/operators/defaultIfEmpty",
-    "rxjs/operators/debounceTime": "rxjs-compat/_esm5/operators/debounceTime",
-    "rxjs/operators/debounce": "rxjs-compat/_esm5/operators/debounce",
-    "rxjs/operators/count": "rxjs-compat/_esm5/operators/count",
-    "rxjs/operators/concatMapTo": "rxjs-compat/_esm5/operators/concatMapTo",
-    "rxjs/operators/concatMap": "rxjs-compat/_esm5/operators/concatMap",
-    "rxjs/operators/concatAll": "rxjs-compat/_esm5/operators/concatAll",
-    "rxjs/operators/concat": "rxjs-compat/_esm5/operators/concat",
-    "rxjs/operators/combineLatest": "rxjs-compat/_esm5/operators/combineLatest",
-    "rxjs/operators/combineAll": "rxjs-compat/_esm5/operators/combineAll",
-    "rxjs/operators/catchError": "rxjs-compat/_esm5/operators/catchError",
-    "rxjs/operators/bufferWhen": "rxjs-compat/_esm5/operators/bufferWhen",
-    "rxjs/operators/bufferToggle": "rxjs-compat/_esm5/operators/bufferToggle",
-    "rxjs/operators/bufferTime": "rxjs-compat/_esm5/operators/bufferTime",
-    "rxjs/operators/bufferCount": "rxjs-compat/_esm5/operators/bufferCount",
-    "rxjs/operators/buffer": "rxjs-compat/_esm5/operators/buffer",
-    "rxjs/operators/auditTime": "rxjs-compat/_esm5/operators/auditTime",
-    "rxjs/operators/audit": "rxjs-compat/_esm5/operators/audit",
-    "rxjs/operator/zipAll": "rxjs-compat/_esm5/operator/zipAll",
-    "rxjs/operator/zip": "rxjs-compat/_esm5/operator/zip",
-    "rxjs/operator/withLatestFrom": "rxjs-compat/_esm5/operator/withLatestFrom",
-    "rxjs/operator/windowWhen": "rxjs-compat/_esm5/operator/windowWhen",
-    "rxjs/operator/windowToggle": "rxjs-compat/_esm5/operator/windowToggle",
-    "rxjs/operator/windowTime": "rxjs-compat/_esm5/operator/windowTime",
-    "rxjs/operator/windowCount": "rxjs-compat/_esm5/operator/windowCount",
-    "rxjs/operator/window": "rxjs-compat/_esm5/operator/window",
-    "rxjs/operator/toPromise": "rxjs-compat/_esm5/operator/toPromise",
-    "rxjs/operator/toArray": "rxjs-compat/_esm5/operator/toArray",
-    "rxjs/operator/timestamp": "rxjs-compat/_esm5/operator/timestamp",
-    "rxjs/operator/timeoutWith": "rxjs-compat/_esm5/operator/timeoutWith",
-    "rxjs/operator/timeout": "rxjs-compat/_esm5/operator/timeout",
-    "rxjs/operator/timeInterval": "rxjs-compat/_esm5/operator/timeInterval",
-    "rxjs/operator/throttleTime": "rxjs-compat/_esm5/operator/throttleTime",
-    "rxjs/operator/throttle": "rxjs-compat/_esm5/operator/throttle",
-    "rxjs/operator/takeWhile": "rxjs-compat/_esm5/operator/takeWhile",
-    "rxjs/operator/takeUntil": "rxjs-compat/_esm5/operator/takeUntil",
-    "rxjs/operator/takeLast": "rxjs-compat/_esm5/operator/takeLast",
-    "rxjs/operator/take": "rxjs-compat/_esm5/operator/take",
-    "rxjs/operator/switchMapTo": "rxjs-compat/_esm5/operator/switchMapTo",
-    "rxjs/operator/switchMap": "rxjs-compat/_esm5/operator/switchMap",
-    "rxjs/operator/switch": "rxjs-compat/_esm5/operator/switch",
-    "rxjs/operator/subscribeOn": "rxjs-compat/_esm5/operator/subscribeOn",
-    "rxjs/operator/startWith": "rxjs-compat/_esm5/operator/startWith",
-    "rxjs/operator/skipWhile": "rxjs-compat/_esm5/operator/skipWhile",
-    "rxjs/operator/skipUntil": "rxjs-compat/_esm5/operator/skipUntil",
-    "rxjs/operator/skipLast": "rxjs-compat/_esm5/operator/skipLast",
-    "rxjs/operator/skip": "rxjs-compat/_esm5/operator/skip",
-    "rxjs/operator/single": "rxjs-compat/_esm5/operator/single",
-    "rxjs/operator/shareReplay": "rxjs-compat/_esm5/operator/shareReplay",
-    "rxjs/operator/share": "rxjs-compat/_esm5/operator/share",
-    "rxjs/operator/sequenceEqual": "rxjs-compat/_esm5/operator/sequenceEqual",
-    "rxjs/operator/scan": "rxjs-compat/_esm5/operator/scan",
-    "rxjs/operator/sampleTime": "rxjs-compat/_esm5/operator/sampleTime",
-    "rxjs/operator/sample": "rxjs-compat/_esm5/operator/sample",
-    "rxjs/operator/retryWhen": "rxjs-compat/_esm5/operator/retryWhen",
-    "rxjs/operator/retry": "rxjs-compat/_esm5/operator/retry",
-    "rxjs/operator/repeatWhen": "rxjs-compat/_esm5/operator/repeatWhen",
-    "rxjs/operator/repeat": "rxjs-compat/_esm5/operator/repeat",
-    "rxjs/operator/reduce": "rxjs-compat/_esm5/operator/reduce",
-    "rxjs/operator/race": "rxjs-compat/_esm5/operator/race",
-    "rxjs/operator/publishReplay": "rxjs-compat/_esm5/operator/publishReplay",
-    "rxjs/operator/publishLast": "rxjs-compat/_esm5/operator/publishLast",
-    "rxjs/operator/publishBehavior": "rxjs-compat/_esm5/operator/publishBehavior",
-    "rxjs/operator/publish": "rxjs-compat/_esm5/operator/publish",
-    "rxjs/operator/pluck": "rxjs-compat/_esm5/operator/pluck",
-    "rxjs/operator/partition": "rxjs-compat/_esm5/operator/partition",
-    "rxjs/operator/pairwise": "rxjs-compat/_esm5/operator/pairwise",
-    "rxjs/operator/onErrorResumeNext": "rxjs-compat/_esm5/operator/onErrorResumeNext",
-    "rxjs/operator/observeOn": "rxjs-compat/_esm5/operator/observeOn",
-    "rxjs/operator/multicast": "rxjs-compat/_esm5/operator/multicast",
-    "rxjs/operator/min": "rxjs-compat/_esm5/operator/min",
-    "rxjs/operator/mergeScan": "rxjs-compat/_esm5/operator/mergeScan",
-    "rxjs/operator/mergeMapTo": "rxjs-compat/_esm5/operator/mergeMapTo",
-    "rxjs/operator/mergeMap": "rxjs-compat/_esm5/operator/mergeMap",
-    "rxjs/operator/mergeAll": "rxjs-compat/_esm5/operator/mergeAll",
-    "rxjs/operator/merge": "rxjs-compat/_esm5/operator/merge",
-    "rxjs/operator/max": "rxjs-compat/_esm5/operator/max",
-    "rxjs/operator/materialize": "rxjs-compat/_esm5/operator/materialize",
-    "rxjs/operator/mapTo": "rxjs-compat/_esm5/operator/mapTo",
-    "rxjs/operator/map": "rxjs-compat/_esm5/operator/map",
-    "rxjs/operator/let": "rxjs-compat/_esm5/operator/let",
-    "rxjs/operator/last": "rxjs-compat/_esm5/operator/last",
-    "rxjs/operator/isEmpty": "rxjs-compat/_esm5/operator/isEmpty",
-    "rxjs/operator/ignoreElements": "rxjs-compat/_esm5/operator/ignoreElements",
-    "rxjs/operator/groupBy": "rxjs-compat/_esm5/operator/groupBy",
-    "rxjs/operator/first": "rxjs-compat/_esm5/operator/first",
-    "rxjs/operator/findIndex": "rxjs-compat/_esm5/operator/findIndex",
-    "rxjs/operator/find": "rxjs-compat/_esm5/operator/find",
-    "rxjs/operator/finally": "rxjs-compat/_esm5/operator/finally",
-    "rxjs/operator/filter": "rxjs-compat/_esm5/operator/filter",
-    "rxjs/operator/expand": "rxjs-compat/_esm5/operator/expand",
-    "rxjs/operator/exhaustMap": "rxjs-compat/_esm5/operator/exhaustMap",
-    "rxjs/operator/exhaust": "rxjs-compat/_esm5/operator/exhaust",
-    "rxjs/operator/every": "rxjs-compat/_esm5/operator/every",
-    "rxjs/operator/elementAt": "rxjs-compat/_esm5/operator/elementAt",
-    "rxjs/operator/do": "rxjs-compat/_esm5/operator/do",
-    "rxjs/operator/distinctUntilKeyChanged": "rxjs-compat/_esm5/operator/distinctUntilKeyChanged",
-    "rxjs/operator/distinctUntilChanged": "rxjs-compat/_esm5/operator/distinctUntilChanged",
-    "rxjs/operator/distinct": "rxjs-compat/_esm5/operator/distinct",
-    "rxjs/operator/dematerialize": "rxjs-compat/_esm5/operator/dematerialize",
-    "rxjs/operator/delayWhen": "rxjs-compat/_esm5/operator/delayWhen",
-    "rxjs/operator/delay": "rxjs-compat/_esm5/operator/delay",
-    "rxjs/operator/defaultIfEmpty": "rxjs-compat/_esm5/operator/defaultIfEmpty",
-    "rxjs/operator/debounceTime": "rxjs-compat/_esm5/operator/debounceTime",
-    "rxjs/operator/debounce": "rxjs-compat/_esm5/operator/debounce",
-    "rxjs/operator/count": "rxjs-compat/_esm5/operator/count",
-    "rxjs/operator/concatMapTo": "rxjs-compat/_esm5/operator/concatMapTo",
-    "rxjs/operator/concatMap": "rxjs-compat/_esm5/operator/concatMap",
-    "rxjs/operator/concatAll": "rxjs-compat/_esm5/operator/concatAll",
-    "rxjs/operator/concat": "rxjs-compat/_esm5/operator/concat",
-    "rxjs/operator/combineLatest": "rxjs-compat/_esm5/operator/combineLatest",
-    "rxjs/operator/combineAll": "rxjs-compat/_esm5/operator/combineAll",
-    "rxjs/operator/catch": "rxjs-compat/_esm5/operator/catch",
-    "rxjs/operator/bufferWhen": "rxjs-compat/_esm5/operator/bufferWhen",
-    "rxjs/operator/bufferToggle": "rxjs-compat/_esm5/operator/bufferToggle",
-    "rxjs/operator/bufferTime": "rxjs-compat/_esm5/operator/bufferTime",
-    "rxjs/operator/bufferCount": "rxjs-compat/_esm5/operator/bufferCount",
-    "rxjs/operator/buffer": "rxjs-compat/_esm5/operator/buffer",
-    "rxjs/operator/auditTime": "rxjs-compat/_esm5/operator/auditTime",
-    "rxjs/operator/audit": "rxjs-compat/_esm5/operator/audit",
-    "rxjs/observable/zip": "rxjs-compat/_esm5/observable/zip",
-    "rxjs/observable/using": "rxjs-compat/_esm5/observable/using",
-    "rxjs/observable/timer": "rxjs-compat/_esm5/observable/timer",
-    "rxjs/observable/throw": "rxjs-compat/_esm5/observable/throw",
-    "rxjs/observable/range": "rxjs-compat/_esm5/observable/range",
-    "rxjs/observable/race": "rxjs-compat/_esm5/observable/race",
-    "rxjs/observable/pairs": "rxjs-compat/_esm5/observable/pairs",
-    "rxjs/observable/onErrorResumeNext": "rxjs-compat/_esm5/observable/onErrorResumeNext",
-    "rxjs/observable/of": "rxjs-compat/_esm5/observable/of",
-    "rxjs/observable/never": "rxjs-compat/_esm5/observable/never",
-    "rxjs/observable/merge": "rxjs-compat/_esm5/observable/merge",
-    "rxjs/observable/interval": "rxjs-compat/_esm5/observable/interval",
-    "rxjs/observable/if": "rxjs-compat/_esm5/observable/if",
-    "rxjs/observable/generate": "rxjs-compat/_esm5/observable/generate",
-    "rxjs/observable/fromPromise": "rxjs-compat/_esm5/observable/fromPromise",
-    "rxjs/observable/fromIterable": "rxjs-compat/_esm5/observable/fromIterable",
-    "rxjs/observable/fromEventPattern": "rxjs-compat/_esm5/observable/fromEventPattern",
-    "rxjs/observable/fromEvent": "rxjs-compat/_esm5/observable/fromEvent",
-    "rxjs/observable/fromArray": "rxjs-compat/_esm5/observable/fromArray",
-    "rxjs/observable/from": "rxjs-compat/_esm5/observable/from",
-    "rxjs/observable/forkJoin": "rxjs-compat/_esm5/observable/forkJoin",
-    "rxjs/observable/empty": "rxjs-compat/_esm5/observable/empty",
-    "rxjs/observable/dom/webSocket": "rxjs-compat/_esm5/observable/dom/webSocket",
-    "rxjs/observable/dom/ajax": "rxjs-compat/_esm5/observable/dom/ajax",
-    "rxjs/observable/dom/WebSocketSubject": "rxjs-compat/_esm5/observable/dom/WebSocketSubject",
-    "rxjs/observable/dom/AjaxObservable": "rxjs-compat/_esm5/observable/dom/AjaxObservable",
-    "rxjs/observable/defer": "rxjs-compat/_esm5/observable/defer",
-    "rxjs/observable/concat": "rxjs-compat/_esm5/observable/concat",
-    "rxjs/observable/combineLatest": "rxjs-compat/_esm5/observable/combineLatest",
-    "rxjs/observable/bindNodeCallback": "rxjs-compat/_esm5/observable/bindNodeCallback",
-    "rxjs/observable/bindCallback": "rxjs-compat/_esm5/observable/bindCallback",
-    "rxjs/observable/UsingObservable": "rxjs-compat/_esm5/observable/UsingObservable",
-    "rxjs/observable/TimerObservable": "rxjs-compat/_esm5/observable/TimerObservable",
-    "rxjs/observable/SubscribeOnObservable": "rxjs-compat/_esm5/observable/SubscribeOnObservable",
-    "rxjs/observable/ScalarObservable": "rxjs-compat/_esm5/observable/ScalarObservable",
-    "rxjs/observable/RangeObservable": "rxjs-compat/_esm5/observable/RangeObservable",
-    "rxjs/observable/PromiseObservable": "rxjs-compat/_esm5/observable/PromiseObservable",
-    "rxjs/observable/PairsObservable": "rxjs-compat/_esm5/observable/PairsObservable",
-    "rxjs/observable/NeverObservable": "rxjs-compat/_esm5/observable/NeverObservable",
-    "rxjs/observable/IteratorObservable": "rxjs-compat/_esm5/observable/IteratorObservable",
-    "rxjs/observable/IntervalObservable": "rxjs-compat/_esm5/observable/IntervalObservable",
-    "rxjs/observable/IfObservable": "rxjs-compat/_esm5/observable/IfObservable",
-    "rxjs/observable/GenerateObservable": "rxjs-compat/_esm5/observable/GenerateObservable",
-    "rxjs/observable/FromObservable": "rxjs-compat/_esm5/observable/FromObservable",
-    "rxjs/observable/FromEventPatternObservable": "rxjs-compat/_esm5/observable/FromEventPatternObservable",
-    "rxjs/observable/FromEventObservable": "rxjs-compat/_esm5/observable/FromEventObservable",
-    "rxjs/observable/ForkJoinObservable": "rxjs-compat/_esm5/observable/ForkJoinObservable",
-    "rxjs/observable/ErrorObservable": "rxjs-compat/_esm5/observable/ErrorObservable",
-    "rxjs/observable/EmptyObservable": "rxjs-compat/_esm5/observable/EmptyObservable",
-    "rxjs/observable/DeferObservable": "rxjs-compat/_esm5/observable/DeferObservable",
-    "rxjs/observable/ConnectableObservable": "rxjs-compat/_esm5/observable/ConnectableObservable",
-    "rxjs/observable/BoundNodeCallbackObservable": "rxjs-compat/_esm5/observable/BoundNodeCallbackObservable",
-    "rxjs/observable/BoundCallbackObservable": "rxjs-compat/_esm5/observable/BoundCallbackObservable",
-    "rxjs/observable/ArrayObservable": "rxjs-compat/_esm5/observable/ArrayObservable",
-    "rxjs/observable/ArrayLikeObservable": "rxjs-compat/_esm5/observable/ArrayLikeObservable",
-    "rxjs/interfaces": "rxjs-compat/_esm5/interfaces",
-    "rxjs/add/operator/zipAll": "rxjs-compat/_esm5/add/operator/zipAll",
-    "rxjs/add/operator/zip": "rxjs-compat/_esm5/add/operator/zip",
-    "rxjs/add/operator/withLatestFrom": "rxjs-compat/_esm5/add/operator/withLatestFrom",
-    "rxjs/add/operator/windowWhen": "rxjs-compat/_esm5/add/operator/windowWhen",
-    "rxjs/add/operator/windowToggle": "rxjs-compat/_esm5/add/operator/windowToggle",
-    "rxjs/add/operator/windowTime": "rxjs-compat/_esm5/add/operator/windowTime",
-    "rxjs/add/operator/windowCount": "rxjs-compat/_esm5/add/operator/windowCount",
-    "rxjs/add/operator/window": "rxjs-compat/_esm5/add/operator/window",
-    "rxjs/add/operator/toPromise": "rxjs-compat/_esm5/add/operator/toPromise",
-    "rxjs/add/operator/toArray": "rxjs-compat/_esm5/add/operator/toArray",
-    "rxjs/add/operator/timestamp": "rxjs-compat/_esm5/add/operator/timestamp",
-    "rxjs/add/operator/timeoutWith": "rxjs-compat/_esm5/add/operator/timeoutWith",
-    "rxjs/add/operator/timeout": "rxjs-compat/_esm5/add/operator/timeout",
-    "rxjs/add/operator/timeInterval": "rxjs-compat/_esm5/add/operator/timeInterval",
-    "rxjs/add/operator/throttleTime": "rxjs-compat/_esm5/add/operator/throttleTime",
-    "rxjs/add/operator/throttle": "rxjs-compat/_esm5/add/operator/throttle",
-    "rxjs/add/operator/takeWhile": "rxjs-compat/_esm5/add/operator/takeWhile",
-    "rxjs/add/operator/takeUntil": "rxjs-compat/_esm5/add/operator/takeUntil",
-    "rxjs/add/operator/takeLast": "rxjs-compat/_esm5/add/operator/takeLast",
-    "rxjs/add/operator/take": "rxjs-compat/_esm5/add/operator/take",
-    "rxjs/add/operator/switchMapTo": "rxjs-compat/_esm5/add/operator/switchMapTo",
-    "rxjs/add/operator/switchMap": "rxjs-compat/_esm5/add/operator/switchMap",
-    "rxjs/add/operator/switch": "rxjs-compat/_esm5/add/operator/switch",
-    "rxjs/add/operator/subscribeOn": "rxjs-compat/_esm5/add/operator/subscribeOn",
-    "rxjs/add/operator/startWith": "rxjs-compat/_esm5/add/operator/startWith",
-    "rxjs/add/operator/skipWhile": "rxjs-compat/_esm5/add/operator/skipWhile",
-    "rxjs/add/operator/skipUntil": "rxjs-compat/_esm5/add/operator/skipUntil",
-    "rxjs/add/operator/skipLast": "rxjs-compat/_esm5/add/operator/skipLast",
-    "rxjs/add/operator/skip": "rxjs-compat/_esm5/add/operator/skip",
-    "rxjs/add/operator/single": "rxjs-compat/_esm5/add/operator/single",
-    "rxjs/add/operator/shareReplay": "rxjs-compat/_esm5/add/operator/shareReplay",
-    "rxjs/add/operator/share": "rxjs-compat/_esm5/add/operator/share",
-    "rxjs/add/operator/sequenceEqual": "rxjs-compat/_esm5/add/operator/sequenceEqual",
-    "rxjs/add/operator/scan": "rxjs-compat/_esm5/add/operator/scan",
-    "rxjs/add/operator/sampleTime": "rxjs-compat/_esm5/add/operator/sampleTime",
-    "rxjs/add/operator/sample": "rxjs-compat/_esm5/add/operator/sample",
-    "rxjs/add/operator/retryWhen": "rxjs-compat/_esm5/add/operator/retryWhen",
-    "rxjs/add/operator/retry": "rxjs-compat/_esm5/add/operator/retry",
-    "rxjs/add/operator/repeatWhen": "rxjs-compat/_esm5/add/operator/repeatWhen",
-    "rxjs/add/operator/repeat": "rxjs-compat/_esm5/add/operator/repeat",
-    "rxjs/add/operator/reduce": "rxjs-compat/_esm5/add/operator/reduce",
-    "rxjs/add/operator/race": "rxjs-compat/_esm5/add/operator/race",
-    "rxjs/add/operator/publishReplay": "rxjs-compat/_esm5/add/operator/publishReplay",
-    "rxjs/add/operator/publishLast": "rxjs-compat/_esm5/add/operator/publishLast",
-    "rxjs/add/operator/publishBehavior": "rxjs-compat/_esm5/add/operator/publishBehavior",
-    "rxjs/add/operator/publish": "rxjs-compat/_esm5/add/operator/publish",
-    "rxjs/add/operator/pluck": "rxjs-compat/_esm5/add/operator/pluck",
-    "rxjs/add/operator/partition": "rxjs-compat/_esm5/add/operator/partition",
-    "rxjs/add/operator/pairwise": "rxjs-compat/_esm5/add/operator/pairwise",
-    "rxjs/add/operator/onErrorResumeNext": "rxjs-compat/_esm5/add/operator/onErrorResumeNext",
-    "rxjs/add/operator/observeOn": "rxjs-compat/_esm5/add/operator/observeOn",
-    "rxjs/add/operator/multicast": "rxjs-compat/_esm5/add/operator/multicast",
-    "rxjs/add/operator/min": "rxjs-compat/_esm5/add/operator/min",
-    "rxjs/add/operator/mergeScan": "rxjs-compat/_esm5/add/operator/mergeScan",
-    "rxjs/add/operator/mergeMapTo": "rxjs-compat/_esm5/add/operator/mergeMapTo",
-    "rxjs/add/operator/mergeMap": "rxjs-compat/_esm5/add/operator/mergeMap",
-    "rxjs/add/operator/mergeAll": "rxjs-compat/_esm5/add/operator/mergeAll",
-    "rxjs/add/operator/merge": "rxjs-compat/_esm5/add/operator/merge",
-    "rxjs/add/operator/max": "rxjs-compat/_esm5/add/operator/max",
-    "rxjs/add/operator/materialize": "rxjs-compat/_esm5/add/operator/materialize",
-    "rxjs/add/operator/mapTo": "rxjs-compat/_esm5/add/operator/mapTo",
-    "rxjs/add/operator/map": "rxjs-compat/_esm5/add/operator/map",
-    "rxjs/add/operator/let": "rxjs-compat/_esm5/add/operator/let",
-    "rxjs/add/operator/last": "rxjs-compat/_esm5/add/operator/last",
-    "rxjs/add/operator/isEmpty": "rxjs-compat/_esm5/add/operator/isEmpty",
-    "rxjs/add/operator/ignoreElements": "rxjs-compat/_esm5/add/operator/ignoreElements",
-    "rxjs/add/operator/groupBy": "rxjs-compat/_esm5/add/operator/groupBy",
-    "rxjs/add/operator/first": "rxjs-compat/_esm5/add/operator/first",
-    "rxjs/add/operator/findIndex": "rxjs-compat/_esm5/add/operator/findIndex",
-    "rxjs/add/operator/find": "rxjs-compat/_esm5/add/operator/find",
-    "rxjs/add/operator/finally": "rxjs-compat/_esm5/add/operator/finally",
-    "rxjs/add/operator/filter": "rxjs-compat/_esm5/add/operator/filter",
-    "rxjs/add/operator/expand": "rxjs-compat/_esm5/add/operator/expand",
-    "rxjs/add/operator/exhaustMap": "rxjs-compat/_esm5/add/operator/exhaustMap",
-    "rxjs/add/operator/exhaust": "rxjs-compat/_esm5/add/operator/exhaust",
-    "rxjs/add/operator/every": "rxjs-compat/_esm5/add/operator/every",
-    "rxjs/add/operator/elementAt": "rxjs-compat/_esm5/add/operator/elementAt",
-    "rxjs/add/operator/do": "rxjs-compat/_esm5/add/operator/do",
-    "rxjs/add/operator/distinctUntilKeyChanged": "rxjs-compat/_esm5/add/operator/distinctUntilKeyChanged",
-    "rxjs/add/operator/distinctUntilChanged": "rxjs-compat/_esm5/add/operator/distinctUntilChanged",
-    "rxjs/add/operator/distinct": "rxjs-compat/_esm5/add/operator/distinct",
-    "rxjs/add/operator/dematerialize": "rxjs-compat/_esm5/add/operator/dematerialize",
-    "rxjs/add/operator/delayWhen": "rxjs-compat/_esm5/add/operator/delayWhen",
-    "rxjs/add/operator/delay": "rxjs-compat/_esm5/add/operator/delay",
-    "rxjs/add/operator/defaultIfEmpty": "rxjs-compat/_esm5/add/operator/defaultIfEmpty",
-    "rxjs/add/operator/debounceTime": "rxjs-compat/_esm5/add/operator/debounceTime",
-    "rxjs/add/operator/debounce": "rxjs-compat/_esm5/add/operator/debounce",
-    "rxjs/add/operator/count": "rxjs-compat/_esm5/add/operator/count",
-    "rxjs/add/operator/concatMapTo": "rxjs-compat/_esm5/add/operator/concatMapTo",
-    "rxjs/add/operator/concatMap": "rxjs-compat/_esm5/add/operator/concatMap",
-    "rxjs/add/operator/concatAll": "rxjs-compat/_esm5/add/operator/concatAll",
-    "rxjs/add/operator/concat": "rxjs-compat/_esm5/add/operator/concat",
-    "rxjs/add/operator/combineLatest": "rxjs-compat/_esm5/add/operator/combineLatest",
-    "rxjs/add/operator/combineAll": "rxjs-compat/_esm5/add/operator/combineAll",
-    "rxjs/add/operator/catch": "rxjs-compat/_esm5/add/operator/catch",
-    "rxjs/add/operator/bufferWhen": "rxjs-compat/_esm5/add/operator/bufferWhen",
-    "rxjs/add/operator/bufferToggle": "rxjs-compat/_esm5/add/operator/bufferToggle",
-    "rxjs/add/operator/bufferTime": "rxjs-compat/_esm5/add/operator/bufferTime",
-    "rxjs/add/operator/bufferCount": "rxjs-compat/_esm5/add/operator/bufferCount",
-    "rxjs/add/operator/buffer": "rxjs-compat/_esm5/add/operator/buffer",
-    "rxjs/add/operator/auditTime": "rxjs-compat/_esm5/add/operator/auditTime",
-    "rxjs/add/operator/audit": "rxjs-compat/_esm5/add/operator/audit",
-    "rxjs/add/observable/zip": "rxjs-compat/_esm5/add/observable/zip",
-    "rxjs/add/observable/using": "rxjs-compat/_esm5/add/observable/using",
-    "rxjs/add/observable/timer": "rxjs-compat/_esm5/add/observable/timer",
-    "rxjs/add/observable/throw": "rxjs-compat/_esm5/add/observable/throw",
-    "rxjs/add/observable/range": "rxjs-compat/_esm5/add/observable/range",
-    "rxjs/add/observable/race": "rxjs-compat/_esm5/add/observable/race",
-    "rxjs/add/observable/pairs": "rxjs-compat/_esm5/add/observable/pairs",
-    "rxjs/add/observable/onErrorResumeNext": "rxjs-compat/_esm5/add/observable/onErrorResumeNext",
-    "rxjs/add/observable/of": "rxjs-compat/_esm5/add/observable/of",
-    "rxjs/add/observable/never": "rxjs-compat/_esm5/add/observable/never",
-    "rxjs/add/observable/merge": "rxjs-compat/_esm5/add/observable/merge",
-    "rxjs/add/observable/interval": "rxjs-compat/_esm5/add/observable/interval",
-    "rxjs/add/observable/if": "rxjs-compat/_esm5/add/observable/if",
-    "rxjs/add/observable/generate": "rxjs-compat/_esm5/add/observable/generate",
-    "rxjs/add/observable/fromPromise": "rxjs-compat/_esm5/add/observable/fromPromise",
-    "rxjs/add/observable/fromEventPattern": "rxjs-compat/_esm5/add/observable/fromEventPattern",
-    "rxjs/add/observable/fromEvent": "rxjs-compat/_esm5/add/observable/fromEvent",
-    "rxjs/add/observable/from": "rxjs-compat/_esm5/add/observable/from",
-    "rxjs/add/observable/forkJoin": "rxjs-compat/_esm5/add/observable/forkJoin",
-    "rxjs/add/observable/empty": "rxjs-compat/_esm5/add/observable/empty",
-    "rxjs/add/observable/dom/webSocket": "rxjs-compat/_esm5/add/observable/dom/webSocket",
-    "rxjs/add/observable/dom/ajax": "rxjs-compat/_esm5/add/observable/dom/ajax",
-    "rxjs/add/observable/defer": "rxjs-compat/_esm5/add/observable/defer",
-    "rxjs/add/observable/concat": "rxjs-compat/_esm5/add/observable/concat",
-    "rxjs/add/observable/combineLatest": "rxjs-compat/_esm5/add/observable/combineLatest",
-    "rxjs/add/observable/bindNodeCallback": "rxjs-compat/_esm5/add/observable/bindNodeCallback",
-    "rxjs/add/observable/bindCallback": "rxjs-compat/_esm5/add/observable/bindCallback",
-    "rxjs/Subscription": "rxjs-compat/_esm5/Subscription",
-    "rxjs/Subscriber": "rxjs-compat/_esm5/Subscriber",
-    "rxjs/SubjectSubscription": "rxjs-compat/_esm5/SubjectSubscription",
-    "rxjs/Subject": "rxjs-compat/_esm5/Subject",
-    "rxjs/Scheduler": "rxjs-compat/_esm5/Scheduler",
-    "rxjs/Rx": "rxjs-compat/_esm5/Rx",
-    "rxjs/ReplaySubject": "rxjs-compat/_esm5/ReplaySubject",
-    "rxjs/OuterSubscriber": "rxjs-compat/_esm5/OuterSubscriber",
-    "rxjs/Operator": "rxjs-compat/_esm5/Operator",
-    "rxjs/Observer": "rxjs-compat/_esm5/Observer",
-    "rxjs/Observable": "rxjs-compat/_esm5/Observable",
-    "rxjs/Notification": "rxjs-compat/_esm5/Notification",
-    "rxjs/InnerSubscriber": "rxjs-compat/_esm5/InnerSubscriber",
-    "rxjs/BehaviorSubject": "rxjs-compat/_esm5/BehaviorSubject",
-    "rxjs/AsyncSubject": "rxjs-compat/_esm5/AsyncSubject"
-};
-}
diff --git a/node_modules/rxjs/_esm5/testing/index.js b/node_modules/rxjs/_esm5/testing/index.js
deleted file mode 100644
index 856db3b..0000000
--- a/node_modules/rxjs/_esm5/testing/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { TestScheduler } from '../internal/testing/TestScheduler';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/testing/index.js.map b/node_modules/rxjs/_esm5/testing/index.js.map
deleted file mode 100644
index 6882405..0000000
--- a/node_modules/rxjs/_esm5/testing/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
diff --git a/node_modules/rxjs/_esm5/webSocket/index.js b/node_modules/rxjs/_esm5/webSocket/index.js
deleted file mode 100644
index edf0104..0000000
--- a/node_modules/rxjs/_esm5/webSocket/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** PURE_IMPORTS_START  PURE_IMPORTS_END */
-export { webSocket as webSocket } from '../internal/observable/dom/webSocket';
-export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-//# sourceMappingURL=index.js.map
diff --git a/node_modules/rxjs/_esm5/webSocket/index.js.map b/node_modules/rxjs/_esm5/webSocket/index.js.map
deleted file mode 100644
index 599e9a7..0000000
--- a/node_modules/rxjs/_esm5/webSocket/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/webSocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA0B,MAAM,6CAA6C,CAAC"}
diff --git a/node_modules/rxjs/add/observable/bindCallback.d.ts b/node_modules/rxjs/add/observable/bindCallback.d.ts
deleted file mode 100644
index 7926a09..0000000
--- a/node_modules/rxjs/add/observable/bindCallback.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/bindCallback';
diff --git a/node_modules/rxjs/add/observable/bindCallback.js b/node_modules/rxjs/add/observable/bindCallback.js
deleted file mode 100644
index c76db00..0000000
--- a/node_modules/rxjs/add/observable/bindCallback.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/bindCallback");
-//# sourceMappingURL=bindCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/bindCallback.js.map b/node_modules/rxjs/add/observable/bindCallback.js.map
deleted file mode 100644
index 5d43370..0000000
--- a/node_modules/rxjs/add/observable/bindCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindCallback.js","sources":["../../src/add/observable/bindCallback.ts"],"names":[],"mappings":";;AAAA,mDAAiD"}
diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.d.ts b/node_modules/rxjs/add/observable/bindNodeCallback.d.ts
deleted file mode 100644
index 049f9a7..0000000
--- a/node_modules/rxjs/add/observable/bindNodeCallback.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/bindNodeCallback';
diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.js b/node_modules/rxjs/add/observable/bindNodeCallback.js
deleted file mode 100644
index b3e2a75..0000000
--- a/node_modules/rxjs/add/observable/bindNodeCallback.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/bindNodeCallback");
-//# sourceMappingURL=bindNodeCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.js.map b/node_modules/rxjs/add/observable/bindNodeCallback.js.map
deleted file mode 100644
index a0ee559..0000000
--- a/node_modules/rxjs/add/observable/bindNodeCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindNodeCallback.js","sources":["../../src/add/observable/bindNodeCallback.ts"],"names":[],"mappings":";;AAAA,uDAAqD"}
diff --git a/node_modules/rxjs/add/observable/combineLatest.d.ts b/node_modules/rxjs/add/observable/combineLatest.d.ts
deleted file mode 100644
index 7163d7a..0000000
--- a/node_modules/rxjs/add/observable/combineLatest.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/combineLatest';
diff --git a/node_modules/rxjs/add/observable/combineLatest.js b/node_modules/rxjs/add/observable/combineLatest.js
deleted file mode 100644
index db16f57..0000000
--- a/node_modules/rxjs/add/observable/combineLatest.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/combineLatest");
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/combineLatest.js.map b/node_modules/rxjs/add/observable/combineLatest.js.map
deleted file mode 100644
index 302f4ff..0000000
--- a/node_modules/rxjs/add/observable/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../src/add/observable/combineLatest.ts"],"names":[],"mappings":";;AAAA,oDAAkD"}
diff --git a/node_modules/rxjs/add/observable/concat.d.ts b/node_modules/rxjs/add/observable/concat.d.ts
deleted file mode 100644
index b392cb2..0000000
--- a/node_modules/rxjs/add/observable/concat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/concat';
diff --git a/node_modules/rxjs/add/observable/concat.js b/node_modules/rxjs/add/observable/concat.js
deleted file mode 100644
index aeca6ca..0000000
--- a/node_modules/rxjs/add/observable/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/concat");
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/concat.js.map b/node_modules/rxjs/add/observable/concat.js.map
deleted file mode 100644
index ad0e211..0000000
--- a/node_modules/rxjs/add/observable/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../src/add/observable/concat.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/observable/defer.d.ts b/node_modules/rxjs/add/observable/defer.d.ts
deleted file mode 100644
index b4e2966..0000000
--- a/node_modules/rxjs/add/observable/defer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/defer';
diff --git a/node_modules/rxjs/add/observable/defer.js b/node_modules/rxjs/add/observable/defer.js
deleted file mode 100644
index 11b55d9..0000000
--- a/node_modules/rxjs/add/observable/defer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/defer");
-//# sourceMappingURL=defer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/defer.js.map b/node_modules/rxjs/add/observable/defer.js.map
deleted file mode 100644
index 60c6edc..0000000
--- a/node_modules/rxjs/add/observable/defer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defer.js","sources":["../../src/add/observable/defer.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/dom/ajax.d.ts b/node_modules/rxjs/add/observable/dom/ajax.d.ts
deleted file mode 100644
index 2b32efe..0000000
--- a/node_modules/rxjs/add/observable/dom/ajax.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/dom/ajax';
diff --git a/node_modules/rxjs/add/observable/dom/ajax.js b/node_modules/rxjs/add/observable/dom/ajax.js
deleted file mode 100644
index 744ffd2..0000000
--- a/node_modules/rxjs/add/observable/dom/ajax.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/dom/ajax");
-//# sourceMappingURL=ajax.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/dom/ajax.js.map b/node_modules/rxjs/add/observable/dom/ajax.js.map
deleted file mode 100644
index 969c299..0000000
--- a/node_modules/rxjs/add/observable/dom/ajax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajax.js","sources":["../../../src/add/observable/dom/ajax.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/observable/dom/webSocket.d.ts b/node_modules/rxjs/add/observable/dom/webSocket.d.ts
deleted file mode 100644
index bc5d3f3..0000000
--- a/node_modules/rxjs/add/observable/dom/webSocket.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/dom/webSocket';
diff --git a/node_modules/rxjs/add/observable/dom/webSocket.js b/node_modules/rxjs/add/observable/dom/webSocket.js
deleted file mode 100644
index 29eb2c0..0000000
--- a/node_modules/rxjs/add/observable/dom/webSocket.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/dom/webSocket");
-//# sourceMappingURL=webSocket.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/dom/webSocket.js.map b/node_modules/rxjs/add/observable/dom/webSocket.js.map
deleted file mode 100644
index c31b8fe..0000000
--- a/node_modules/rxjs/add/observable/dom/webSocket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"webSocket.js","sources":["../../../src/add/observable/dom/webSocket.ts"],"names":[],"mappings":";;AAAA,oDAAkD"}
diff --git a/node_modules/rxjs/add/observable/empty.d.ts b/node_modules/rxjs/add/observable/empty.d.ts
deleted file mode 100644
index d261ad7..0000000
--- a/node_modules/rxjs/add/observable/empty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/empty';
diff --git a/node_modules/rxjs/add/observable/empty.js b/node_modules/rxjs/add/observable/empty.js
deleted file mode 100644
index 582d5b7..0000000
--- a/node_modules/rxjs/add/observable/empty.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/empty");
-//# sourceMappingURL=empty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/empty.js.map b/node_modules/rxjs/add/observable/empty.js.map
deleted file mode 100644
index 68623e4..0000000
--- a/node_modules/rxjs/add/observable/empty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"empty.js","sources":["../../src/add/observable/empty.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/forkJoin.d.ts b/node_modules/rxjs/add/observable/forkJoin.d.ts
deleted file mode 100644
index 2a581e2..0000000
--- a/node_modules/rxjs/add/observable/forkJoin.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/forkJoin';
diff --git a/node_modules/rxjs/add/observable/forkJoin.js b/node_modules/rxjs/add/observable/forkJoin.js
deleted file mode 100644
index 053a095..0000000
--- a/node_modules/rxjs/add/observable/forkJoin.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/forkJoin");
-//# sourceMappingURL=forkJoin.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/forkJoin.js.map b/node_modules/rxjs/add/observable/forkJoin.js.map
deleted file mode 100644
index f6e1d87..0000000
--- a/node_modules/rxjs/add/observable/forkJoin.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forkJoin.js","sources":["../../src/add/observable/forkJoin.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/observable/from.d.ts b/node_modules/rxjs/add/observable/from.d.ts
deleted file mode 100644
index 06572d8..0000000
--- a/node_modules/rxjs/add/observable/from.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/from';
diff --git a/node_modules/rxjs/add/observable/from.js b/node_modules/rxjs/add/observable/from.js
deleted file mode 100644
index 6505176..0000000
--- a/node_modules/rxjs/add/observable/from.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/from");
-//# sourceMappingURL=from.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/from.js.map b/node_modules/rxjs/add/observable/from.js.map
deleted file mode 100644
index 369039a..0000000
--- a/node_modules/rxjs/add/observable/from.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"from.js","sources":["../../src/add/observable/from.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/observable/fromEvent.d.ts b/node_modules/rxjs/add/observable/fromEvent.d.ts
deleted file mode 100644
index 0d6e05b..0000000
--- a/node_modules/rxjs/add/observable/fromEvent.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromEvent';
diff --git a/node_modules/rxjs/add/observable/fromEvent.js b/node_modules/rxjs/add/observable/fromEvent.js
deleted file mode 100644
index 75321cb..0000000
--- a/node_modules/rxjs/add/observable/fromEvent.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/fromEvent");
-//# sourceMappingURL=fromEvent.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/fromEvent.js.map b/node_modules/rxjs/add/observable/fromEvent.js.map
deleted file mode 100644
index f931c43..0000000
--- a/node_modules/rxjs/add/observable/fromEvent.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEvent.js","sources":["../../src/add/observable/fromEvent.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/observable/fromEventPattern.d.ts b/node_modules/rxjs/add/observable/fromEventPattern.d.ts
deleted file mode 100644
index c7241f8..0000000
--- a/node_modules/rxjs/add/observable/fromEventPattern.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromEventPattern';
diff --git a/node_modules/rxjs/add/observable/fromEventPattern.js b/node_modules/rxjs/add/observable/fromEventPattern.js
deleted file mode 100644
index 58fbfa5..0000000
--- a/node_modules/rxjs/add/observable/fromEventPattern.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/fromEventPattern");
-//# sourceMappingURL=fromEventPattern.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/fromEventPattern.js.map b/node_modules/rxjs/add/observable/fromEventPattern.js.map
deleted file mode 100644
index ad181b9..0000000
--- a/node_modules/rxjs/add/observable/fromEventPattern.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEventPattern.js","sources":["../../src/add/observable/fromEventPattern.ts"],"names":[],"mappings":";;AAAA,uDAAqD"}
diff --git a/node_modules/rxjs/add/observable/fromPromise.d.ts b/node_modules/rxjs/add/observable/fromPromise.d.ts
deleted file mode 100644
index c262242..0000000
--- a/node_modules/rxjs/add/observable/fromPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromPromise';
diff --git a/node_modules/rxjs/add/observable/fromPromise.js b/node_modules/rxjs/add/observable/fromPromise.js
deleted file mode 100644
index 418055c..0000000
--- a/node_modules/rxjs/add/observable/fromPromise.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/fromPromise");
-//# sourceMappingURL=fromPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/fromPromise.js.map b/node_modules/rxjs/add/observable/fromPromise.js.map
deleted file mode 100644
index 91ea320..0000000
--- a/node_modules/rxjs/add/observable/fromPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromPromise.js","sources":["../../src/add/observable/fromPromise.ts"],"names":[],"mappings":";;AAAA,kDAAgD"}
diff --git a/node_modules/rxjs/add/observable/generate.d.ts b/node_modules/rxjs/add/observable/generate.d.ts
deleted file mode 100644
index 3203a9b..0000000
--- a/node_modules/rxjs/add/observable/generate.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/generate';
diff --git a/node_modules/rxjs/add/observable/generate.js b/node_modules/rxjs/add/observable/generate.js
deleted file mode 100644
index 65bb024..0000000
--- a/node_modules/rxjs/add/observable/generate.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/generate");
-//# sourceMappingURL=generate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/generate.js.map b/node_modules/rxjs/add/observable/generate.js.map
deleted file mode 100644
index 9c228e4..0000000
--- a/node_modules/rxjs/add/observable/generate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generate.js","sources":["../../src/add/observable/generate.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/observable/if.d.ts b/node_modules/rxjs/add/observable/if.d.ts
deleted file mode 100644
index 5767d74..0000000
--- a/node_modules/rxjs/add/observable/if.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/if';
diff --git a/node_modules/rxjs/add/observable/if.js b/node_modules/rxjs/add/observable/if.js
deleted file mode 100644
index 3942d95..0000000
--- a/node_modules/rxjs/add/observable/if.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/if");
-//# sourceMappingURL=if.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/if.js.map b/node_modules/rxjs/add/observable/if.js.map
deleted file mode 100644
index 583456e..0000000
--- a/node_modules/rxjs/add/observable/if.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"if.js","sources":["../../src/add/observable/if.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/observable/interval.d.ts b/node_modules/rxjs/add/observable/interval.d.ts
deleted file mode 100644
index 6cd2b31..0000000
--- a/node_modules/rxjs/add/observable/interval.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/interval';
diff --git a/node_modules/rxjs/add/observable/interval.js b/node_modules/rxjs/add/observable/interval.js
deleted file mode 100644
index 522be15..0000000
--- a/node_modules/rxjs/add/observable/interval.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/interval");
-//# sourceMappingURL=interval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/interval.js.map b/node_modules/rxjs/add/observable/interval.js.map
deleted file mode 100644
index 6bfd345..0000000
--- a/node_modules/rxjs/add/observable/interval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interval.js","sources":["../../src/add/observable/interval.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/observable/merge.d.ts b/node_modules/rxjs/add/observable/merge.d.ts
deleted file mode 100644
index 7a111a5..0000000
--- a/node_modules/rxjs/add/observable/merge.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/merge';
diff --git a/node_modules/rxjs/add/observable/merge.js b/node_modules/rxjs/add/observable/merge.js
deleted file mode 100644
index bbc2ca9..0000000
--- a/node_modules/rxjs/add/observable/merge.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/merge");
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/merge.js.map b/node_modules/rxjs/add/observable/merge.js.map
deleted file mode 100644
index ca95870..0000000
--- a/node_modules/rxjs/add/observable/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../src/add/observable/merge.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/never.d.ts b/node_modules/rxjs/add/observable/never.d.ts
deleted file mode 100644
index 4c464d0..0000000
--- a/node_modules/rxjs/add/observable/never.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/never';
diff --git a/node_modules/rxjs/add/observable/never.js b/node_modules/rxjs/add/observable/never.js
deleted file mode 100644
index 955e5ba..0000000
--- a/node_modules/rxjs/add/observable/never.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/never");
-//# sourceMappingURL=never.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/never.js.map b/node_modules/rxjs/add/observable/never.js.map
deleted file mode 100644
index fc70b64..0000000
--- a/node_modules/rxjs/add/observable/never.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"never.js","sources":["../../src/add/observable/never.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/of.d.ts b/node_modules/rxjs/add/observable/of.d.ts
deleted file mode 100644
index c0720f6..0000000
--- a/node_modules/rxjs/add/observable/of.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/of';
diff --git a/node_modules/rxjs/add/observable/of.js b/node_modules/rxjs/add/observable/of.js
deleted file mode 100644
index bcb264c..0000000
--- a/node_modules/rxjs/add/observable/of.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/of");
-//# sourceMappingURL=of.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/of.js.map b/node_modules/rxjs/add/observable/of.js.map
deleted file mode 100644
index c018612..0000000
--- a/node_modules/rxjs/add/observable/of.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"of.js","sources":["../../src/add/observable/of.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts
deleted file mode 100644
index 80a4d91..0000000
--- a/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/onErrorResumeNext';
diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.js b/node_modules/rxjs/add/observable/onErrorResumeNext.js
deleted file mode 100644
index fb765a9..0000000
--- a/node_modules/rxjs/add/observable/onErrorResumeNext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/onErrorResumeNext");
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.js.map b/node_modules/rxjs/add/observable/onErrorResumeNext.js.map
deleted file mode 100644
index 13a90e7..0000000
--- a/node_modules/rxjs/add/observable/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/add/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,wDAAsD"}
diff --git a/node_modules/rxjs/add/observable/pairs.d.ts b/node_modules/rxjs/add/observable/pairs.d.ts
deleted file mode 100644
index 3af25b6..0000000
--- a/node_modules/rxjs/add/observable/pairs.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/pairs';
diff --git a/node_modules/rxjs/add/observable/pairs.js b/node_modules/rxjs/add/observable/pairs.js
deleted file mode 100644
index ba16ba4..0000000
--- a/node_modules/rxjs/add/observable/pairs.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/pairs");
-//# sourceMappingURL=pairs.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/pairs.js.map b/node_modules/rxjs/add/observable/pairs.js.map
deleted file mode 100644
index d7e0150..0000000
--- a/node_modules/rxjs/add/observable/pairs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairs.js","sources":["../../src/add/observable/pairs.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/race.d.ts b/node_modules/rxjs/add/observable/race.d.ts
deleted file mode 100644
index 9b45c4e..0000000
--- a/node_modules/rxjs/add/observable/race.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/race';
diff --git a/node_modules/rxjs/add/observable/race.js b/node_modules/rxjs/add/observable/race.js
deleted file mode 100644
index 691cbe4..0000000
--- a/node_modules/rxjs/add/observable/race.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/race");
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/race.js.map b/node_modules/rxjs/add/observable/race.js.map
deleted file mode 100644
index 8a185cb..0000000
--- a/node_modules/rxjs/add/observable/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../src/add/observable/race.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/observable/range.d.ts b/node_modules/rxjs/add/observable/range.d.ts
deleted file mode 100644
index 2ae274e..0000000
--- a/node_modules/rxjs/add/observable/range.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/range';
diff --git a/node_modules/rxjs/add/observable/range.js b/node_modules/rxjs/add/observable/range.js
deleted file mode 100644
index 39d2f57..0000000
--- a/node_modules/rxjs/add/observable/range.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/range");
-//# sourceMappingURL=range.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/range.js.map b/node_modules/rxjs/add/observable/range.js.map
deleted file mode 100644
index c4c1e3b..0000000
--- a/node_modules/rxjs/add/observable/range.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"range.js","sources":["../../src/add/observable/range.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/throw.d.ts b/node_modules/rxjs/add/observable/throw.d.ts
deleted file mode 100644
index 7405653..0000000
--- a/node_modules/rxjs/add/observable/throw.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/throw';
diff --git a/node_modules/rxjs/add/observable/throw.js b/node_modules/rxjs/add/observable/throw.js
deleted file mode 100644
index 21b4885..0000000
--- a/node_modules/rxjs/add/observable/throw.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/throw");
-//# sourceMappingURL=throw.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/throw.js.map b/node_modules/rxjs/add/observable/throw.js.map
deleted file mode 100644
index af86d3f..0000000
--- a/node_modules/rxjs/add/observable/throw.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throw.js","sources":["../../src/add/observable/throw.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/timer.d.ts b/node_modules/rxjs/add/observable/timer.d.ts
deleted file mode 100644
index 60e2f9b..0000000
--- a/node_modules/rxjs/add/observable/timer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/timer';
diff --git a/node_modules/rxjs/add/observable/timer.js b/node_modules/rxjs/add/observable/timer.js
deleted file mode 100644
index 39403e4..0000000
--- a/node_modules/rxjs/add/observable/timer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/timer");
-//# sourceMappingURL=timer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/timer.js.map b/node_modules/rxjs/add/observable/timer.js.map
deleted file mode 100644
index 4f6a8e7..0000000
--- a/node_modules/rxjs/add/observable/timer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timer.js","sources":["../../src/add/observable/timer.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/using.d.ts b/node_modules/rxjs/add/observable/using.d.ts
deleted file mode 100644
index c7ac49a..0000000
--- a/node_modules/rxjs/add/observable/using.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/using';
diff --git a/node_modules/rxjs/add/observable/using.js b/node_modules/rxjs/add/observable/using.js
deleted file mode 100644
index d387fef..0000000
--- a/node_modules/rxjs/add/observable/using.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/using");
-//# sourceMappingURL=using.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/using.js.map b/node_modules/rxjs/add/observable/using.js.map
deleted file mode 100644
index 23b5fb6..0000000
--- a/node_modules/rxjs/add/observable/using.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"using.js","sources":["../../src/add/observable/using.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/observable/zip.d.ts b/node_modules/rxjs/add/observable/zip.d.ts
deleted file mode 100644
index 5c72041..0000000
--- a/node_modules/rxjs/add/observable/zip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/zip';
diff --git a/node_modules/rxjs/add/observable/zip.js b/node_modules/rxjs/add/observable/zip.js
deleted file mode 100644
index 8d9ceee..0000000
--- a/node_modules/rxjs/add/observable/zip.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/observable/zip");
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/observable/zip.js.map b/node_modules/rxjs/add/observable/zip.js.map
deleted file mode 100644
index 979d4b8..0000000
--- a/node_modules/rxjs/add/observable/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../src/add/observable/zip.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/audit.d.ts b/node_modules/rxjs/add/operator/audit.d.ts
deleted file mode 100644
index a3eb5a4..0000000
--- a/node_modules/rxjs/add/operator/audit.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/audit';
diff --git a/node_modules/rxjs/add/operator/audit.js b/node_modules/rxjs/add/operator/audit.js
deleted file mode 100644
index c76b382..0000000
--- a/node_modules/rxjs/add/operator/audit.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/audit");
-//# sourceMappingURL=audit.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/audit.js.map b/node_modules/rxjs/add/operator/audit.js.map
deleted file mode 100644
index 16b4fd0..0000000
--- a/node_modules/rxjs/add/operator/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../../src/add/operator/audit.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/auditTime.d.ts b/node_modules/rxjs/add/operator/auditTime.d.ts
deleted file mode 100644
index 41f68da..0000000
--- a/node_modules/rxjs/add/operator/auditTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/auditTime';
diff --git a/node_modules/rxjs/add/operator/auditTime.js b/node_modules/rxjs/add/operator/auditTime.js
deleted file mode 100644
index 480f95c..0000000
--- a/node_modules/rxjs/add/operator/auditTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/auditTime");
-//# sourceMappingURL=auditTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/auditTime.js.map b/node_modules/rxjs/add/operator/auditTime.js.map
deleted file mode 100644
index aa604d7..0000000
--- a/node_modules/rxjs/add/operator/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../../src/add/operator/auditTime.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/buffer.d.ts b/node_modules/rxjs/add/operator/buffer.d.ts
deleted file mode 100644
index b501cae..0000000
--- a/node_modules/rxjs/add/operator/buffer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/buffer';
diff --git a/node_modules/rxjs/add/operator/buffer.js b/node_modules/rxjs/add/operator/buffer.js
deleted file mode 100644
index 68872bb..0000000
--- a/node_modules/rxjs/add/operator/buffer.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/buffer");
-//# sourceMappingURL=buffer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/buffer.js.map b/node_modules/rxjs/add/operator/buffer.js.map
deleted file mode 100644
index 76dbd49..0000000
--- a/node_modules/rxjs/add/operator/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../../src/add/operator/buffer.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/bufferCount.d.ts b/node_modules/rxjs/add/operator/bufferCount.d.ts
deleted file mode 100644
index 96237e5..0000000
--- a/node_modules/rxjs/add/operator/bufferCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferCount';
diff --git a/node_modules/rxjs/add/operator/bufferCount.js b/node_modules/rxjs/add/operator/bufferCount.js
deleted file mode 100644
index 9c7c5d7..0000000
--- a/node_modules/rxjs/add/operator/bufferCount.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/bufferCount");
-//# sourceMappingURL=bufferCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/bufferCount.js.map b/node_modules/rxjs/add/operator/bufferCount.js.map
deleted file mode 100644
index c9a5c6f..0000000
--- a/node_modules/rxjs/add/operator/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../../src/add/operator/bufferCount.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/bufferTime.d.ts b/node_modules/rxjs/add/operator/bufferTime.d.ts
deleted file mode 100644
index abd78ab..0000000
--- a/node_modules/rxjs/add/operator/bufferTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferTime';
diff --git a/node_modules/rxjs/add/operator/bufferTime.js b/node_modules/rxjs/add/operator/bufferTime.js
deleted file mode 100644
index 7ed332a..0000000
--- a/node_modules/rxjs/add/operator/bufferTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/bufferTime");
-//# sourceMappingURL=bufferTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/bufferTime.js.map b/node_modules/rxjs/add/operator/bufferTime.js.map
deleted file mode 100644
index 4d6990c..0000000
--- a/node_modules/rxjs/add/operator/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../../src/add/operator/bufferTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/bufferToggle.d.ts b/node_modules/rxjs/add/operator/bufferToggle.d.ts
deleted file mode 100644
index 2dbdf86..0000000
--- a/node_modules/rxjs/add/operator/bufferToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferToggle';
diff --git a/node_modules/rxjs/add/operator/bufferToggle.js b/node_modules/rxjs/add/operator/bufferToggle.js
deleted file mode 100644
index d6d5a24..0000000
--- a/node_modules/rxjs/add/operator/bufferToggle.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/bufferToggle");
-//# sourceMappingURL=bufferToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/bufferToggle.js.map b/node_modules/rxjs/add/operator/bufferToggle.js.map
deleted file mode 100644
index 20cd73b..0000000
--- a/node_modules/rxjs/add/operator/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../../src/add/operator/bufferToggle.ts"],"names":[],"mappings":";;AAAA,iDAA+C"}
diff --git a/node_modules/rxjs/add/operator/bufferWhen.d.ts b/node_modules/rxjs/add/operator/bufferWhen.d.ts
deleted file mode 100644
index 4ad636f..0000000
--- a/node_modules/rxjs/add/operator/bufferWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferWhen';
diff --git a/node_modules/rxjs/add/operator/bufferWhen.js b/node_modules/rxjs/add/operator/bufferWhen.js
deleted file mode 100644
index 0c53f4e..0000000
--- a/node_modules/rxjs/add/operator/bufferWhen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/bufferWhen");
-//# sourceMappingURL=bufferWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/bufferWhen.js.map b/node_modules/rxjs/add/operator/bufferWhen.js.map
deleted file mode 100644
index 8c8ee88..0000000
--- a/node_modules/rxjs/add/operator/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../../src/add/operator/bufferWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/catch.d.ts b/node_modules/rxjs/add/operator/catch.d.ts
deleted file mode 100644
index 316a29e..0000000
--- a/node_modules/rxjs/add/operator/catch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/catch';
diff --git a/node_modules/rxjs/add/operator/catch.js b/node_modules/rxjs/add/operator/catch.js
deleted file mode 100644
index 9220291..0000000
--- a/node_modules/rxjs/add/operator/catch.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/catch");
-//# sourceMappingURL=catch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/catch.js.map b/node_modules/rxjs/add/operator/catch.js.map
deleted file mode 100644
index 09d0bd9..0000000
--- a/node_modules/rxjs/add/operator/catch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catch.js","sources":["../../src/add/operator/catch.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/combineAll.d.ts b/node_modules/rxjs/add/operator/combineAll.d.ts
deleted file mode 100644
index 0cf4be8..0000000
--- a/node_modules/rxjs/add/operator/combineAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/combineAll';
diff --git a/node_modules/rxjs/add/operator/combineAll.js b/node_modules/rxjs/add/operator/combineAll.js
deleted file mode 100644
index 5b5317d..0000000
--- a/node_modules/rxjs/add/operator/combineAll.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/combineAll");
-//# sourceMappingURL=combineAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/combineAll.js.map b/node_modules/rxjs/add/operator/combineAll.js.map
deleted file mode 100644
index 0721014..0000000
--- a/node_modules/rxjs/add/operator/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../../src/add/operator/combineAll.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/combineLatest.d.ts b/node_modules/rxjs/add/operator/combineLatest.d.ts
deleted file mode 100644
index 88333e7..0000000
--- a/node_modules/rxjs/add/operator/combineLatest.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/combineLatest';
diff --git a/node_modules/rxjs/add/operator/combineLatest.js b/node_modules/rxjs/add/operator/combineLatest.js
deleted file mode 100644
index bbdfce8..0000000
--- a/node_modules/rxjs/add/operator/combineLatest.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/combineLatest");
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/combineLatest.js.map b/node_modules/rxjs/add/operator/combineLatest.js.map
deleted file mode 100644
index d6f48f8..0000000
--- a/node_modules/rxjs/add/operator/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../src/add/operator/combineLatest.ts"],"names":[],"mappings":";;AAAA,kDAAgD"}
diff --git a/node_modules/rxjs/add/operator/concat.d.ts b/node_modules/rxjs/add/operator/concat.d.ts
deleted file mode 100644
index c743a6b..0000000
--- a/node_modules/rxjs/add/operator/concat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concat';
diff --git a/node_modules/rxjs/add/operator/concat.js b/node_modules/rxjs/add/operator/concat.js
deleted file mode 100644
index e65246e..0000000
--- a/node_modules/rxjs/add/operator/concat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/concat");
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/concat.js.map b/node_modules/rxjs/add/operator/concat.js.map
deleted file mode 100644
index 7ccae34..0000000
--- a/node_modules/rxjs/add/operator/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../src/add/operator/concat.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/concatAll.d.ts b/node_modules/rxjs/add/operator/concatAll.d.ts
deleted file mode 100644
index cf9157f..0000000
--- a/node_modules/rxjs/add/operator/concatAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatAll';
diff --git a/node_modules/rxjs/add/operator/concatAll.js b/node_modules/rxjs/add/operator/concatAll.js
deleted file mode 100644
index da7ee18..0000000
--- a/node_modules/rxjs/add/operator/concatAll.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/concatAll");
-//# sourceMappingURL=concatAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/concatAll.js.map b/node_modules/rxjs/add/operator/concatAll.js.map
deleted file mode 100644
index 8eaafd8..0000000
--- a/node_modules/rxjs/add/operator/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../../src/add/operator/concatAll.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/concatMap.d.ts b/node_modules/rxjs/add/operator/concatMap.d.ts
deleted file mode 100644
index dadc722..0000000
--- a/node_modules/rxjs/add/operator/concatMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatMap';
diff --git a/node_modules/rxjs/add/operator/concatMap.js b/node_modules/rxjs/add/operator/concatMap.js
deleted file mode 100644
index 9d98af9..0000000
--- a/node_modules/rxjs/add/operator/concatMap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/concatMap");
-//# sourceMappingURL=concatMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/concatMap.js.map b/node_modules/rxjs/add/operator/concatMap.js.map
deleted file mode 100644
index 752de44..0000000
--- a/node_modules/rxjs/add/operator/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../../src/add/operator/concatMap.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/concatMapTo.d.ts b/node_modules/rxjs/add/operator/concatMapTo.d.ts
deleted file mode 100644
index 9a843a6..0000000
--- a/node_modules/rxjs/add/operator/concatMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatMapTo';
diff --git a/node_modules/rxjs/add/operator/concatMapTo.js b/node_modules/rxjs/add/operator/concatMapTo.js
deleted file mode 100644
index 6698aef..0000000
--- a/node_modules/rxjs/add/operator/concatMapTo.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/concatMapTo");
-//# sourceMappingURL=concatMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/concatMapTo.js.map b/node_modules/rxjs/add/operator/concatMapTo.js.map
deleted file mode 100644
index fb73ad6..0000000
--- a/node_modules/rxjs/add/operator/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../../src/add/operator/concatMapTo.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/count.d.ts b/node_modules/rxjs/add/operator/count.d.ts
deleted file mode 100644
index 85c6832..0000000
--- a/node_modules/rxjs/add/operator/count.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/count';
diff --git a/node_modules/rxjs/add/operator/count.js b/node_modules/rxjs/add/operator/count.js
deleted file mode 100644
index 6957cf5..0000000
--- a/node_modules/rxjs/add/operator/count.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/count");
-//# sourceMappingURL=count.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/count.js.map b/node_modules/rxjs/add/operator/count.js.map
deleted file mode 100644
index ace114c..0000000
--- a/node_modules/rxjs/add/operator/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../../src/add/operator/count.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/debounce.d.ts b/node_modules/rxjs/add/operator/debounce.d.ts
deleted file mode 100644
index e5ff5db..0000000
--- a/node_modules/rxjs/add/operator/debounce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/debounce';
diff --git a/node_modules/rxjs/add/operator/debounce.js b/node_modules/rxjs/add/operator/debounce.js
deleted file mode 100644
index a1d7f17..0000000
--- a/node_modules/rxjs/add/operator/debounce.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/debounce");
-//# sourceMappingURL=debounce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/debounce.js.map b/node_modules/rxjs/add/operator/debounce.js.map
deleted file mode 100644
index 89ad4eb..0000000
--- a/node_modules/rxjs/add/operator/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../../src/add/operator/debounce.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/debounceTime.d.ts b/node_modules/rxjs/add/operator/debounceTime.d.ts
deleted file mode 100644
index 8ffedf9..0000000
--- a/node_modules/rxjs/add/operator/debounceTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/debounceTime';
diff --git a/node_modules/rxjs/add/operator/debounceTime.js b/node_modules/rxjs/add/operator/debounceTime.js
deleted file mode 100644
index 9a66c53..0000000
--- a/node_modules/rxjs/add/operator/debounceTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/debounceTime");
-//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/debounceTime.js.map b/node_modules/rxjs/add/operator/debounceTime.js.map
deleted file mode 100644
index cdbad98..0000000
--- a/node_modules/rxjs/add/operator/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../../src/add/operator/debounceTime.ts"],"names":[],"mappings":";;AAAA,iDAA+C"}
diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts b/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts
deleted file mode 100644
index d8e0070..0000000
--- a/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/defaultIfEmpty';
diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.js b/node_modules/rxjs/add/operator/defaultIfEmpty.js
deleted file mode 100644
index 8f79694..0000000
--- a/node_modules/rxjs/add/operator/defaultIfEmpty.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/defaultIfEmpty");
-//# sourceMappingURL=defaultIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.js.map b/node_modules/rxjs/add/operator/defaultIfEmpty.js.map
deleted file mode 100644
index 3a5147e..0000000
--- a/node_modules/rxjs/add/operator/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../../src/add/operator/defaultIfEmpty.ts"],"names":[],"mappings":";;AAAA,mDAAiD"}
diff --git a/node_modules/rxjs/add/operator/delay.d.ts b/node_modules/rxjs/add/operator/delay.d.ts
deleted file mode 100644
index 96d2017..0000000
--- a/node_modules/rxjs/add/operator/delay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/delay';
diff --git a/node_modules/rxjs/add/operator/delay.js b/node_modules/rxjs/add/operator/delay.js
deleted file mode 100644
index 5828c65..0000000
--- a/node_modules/rxjs/add/operator/delay.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/delay");
-//# sourceMappingURL=delay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/delay.js.map b/node_modules/rxjs/add/operator/delay.js.map
deleted file mode 100644
index cd27763..0000000
--- a/node_modules/rxjs/add/operator/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../../src/add/operator/delay.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/delayWhen.d.ts b/node_modules/rxjs/add/operator/delayWhen.d.ts
deleted file mode 100644
index a50cebb..0000000
--- a/node_modules/rxjs/add/operator/delayWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/delayWhen';
diff --git a/node_modules/rxjs/add/operator/delayWhen.js b/node_modules/rxjs/add/operator/delayWhen.js
deleted file mode 100644
index 9e5b758..0000000
--- a/node_modules/rxjs/add/operator/delayWhen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/delayWhen");
-//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/delayWhen.js.map b/node_modules/rxjs/add/operator/delayWhen.js.map
deleted file mode 100644
index 0ab069a..0000000
--- a/node_modules/rxjs/add/operator/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../../src/add/operator/delayWhen.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/dematerialize.d.ts b/node_modules/rxjs/add/operator/dematerialize.d.ts
deleted file mode 100644
index 18f368b..0000000
--- a/node_modules/rxjs/add/operator/dematerialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/dematerialize';
diff --git a/node_modules/rxjs/add/operator/dematerialize.js b/node_modules/rxjs/add/operator/dematerialize.js
deleted file mode 100644
index 933d925..0000000
--- a/node_modules/rxjs/add/operator/dematerialize.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/dematerialize");
-//# sourceMappingURL=dematerialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/dematerialize.js.map b/node_modules/rxjs/add/operator/dematerialize.js.map
deleted file mode 100644
index 5ba22f8..0000000
--- a/node_modules/rxjs/add/operator/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../../src/add/operator/dematerialize.ts"],"names":[],"mappings":";;AAAA,kDAAgD"}
diff --git a/node_modules/rxjs/add/operator/distinct.d.ts b/node_modules/rxjs/add/operator/distinct.d.ts
deleted file mode 100644
index 330f8f9..0000000
--- a/node_modules/rxjs/add/operator/distinct.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinct';
diff --git a/node_modules/rxjs/add/operator/distinct.js b/node_modules/rxjs/add/operator/distinct.js
deleted file mode 100644
index 0ba3bac..0000000
--- a/node_modules/rxjs/add/operator/distinct.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/distinct");
-//# sourceMappingURL=distinct.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/distinct.js.map b/node_modules/rxjs/add/operator/distinct.js.map
deleted file mode 100644
index d4196d0..0000000
--- a/node_modules/rxjs/add/operator/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../../src/add/operator/distinct.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts b/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts
deleted file mode 100644
index 8273e9e..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinctUntilChanged';
diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.js b/node_modules/rxjs/add/operator/distinctUntilChanged.js
deleted file mode 100644
index a08c77a..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilChanged.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/distinctUntilChanged");
-//# sourceMappingURL=distinctUntilChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.js.map b/node_modules/rxjs/add/operator/distinctUntilChanged.js.map
deleted file mode 100644
index 7c0cc23..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../../src/add/operator/distinctUntilChanged.ts"],"names":[],"mappings":";;AAAA,yDAAuD"}
diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts
deleted file mode 100644
index f556b82..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js
deleted file mode 100644
index f48243a..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/distinctUntilKeyChanged");
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map
deleted file mode 100644
index 10931c8..0000000
--- a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../src/add/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;AAAA,4DAA0D"}
diff --git a/node_modules/rxjs/add/operator/do.d.ts b/node_modules/rxjs/add/operator/do.d.ts
deleted file mode 100644
index 9eee7cd..0000000
--- a/node_modules/rxjs/add/operator/do.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/do';
diff --git a/node_modules/rxjs/add/operator/do.js b/node_modules/rxjs/add/operator/do.js
deleted file mode 100644
index caf5174..0000000
--- a/node_modules/rxjs/add/operator/do.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/do");
-//# sourceMappingURL=do.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/do.js.map b/node_modules/rxjs/add/operator/do.js.map
deleted file mode 100644
index 0e0eda0..0000000
--- a/node_modules/rxjs/add/operator/do.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"do.js","sources":["../../src/add/operator/do.ts"],"names":[],"mappings":";;AAAA,uCAAqC"}
diff --git a/node_modules/rxjs/add/operator/elementAt.d.ts b/node_modules/rxjs/add/operator/elementAt.d.ts
deleted file mode 100644
index 8fe8f29..0000000
--- a/node_modules/rxjs/add/operator/elementAt.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/elementAt';
diff --git a/node_modules/rxjs/add/operator/elementAt.js b/node_modules/rxjs/add/operator/elementAt.js
deleted file mode 100644
index 49f837d..0000000
--- a/node_modules/rxjs/add/operator/elementAt.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/elementAt");
-//# sourceMappingURL=elementAt.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/elementAt.js.map b/node_modules/rxjs/add/operator/elementAt.js.map
deleted file mode 100644
index 5075eb5..0000000
--- a/node_modules/rxjs/add/operator/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../../src/add/operator/elementAt.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/every.d.ts b/node_modules/rxjs/add/operator/every.d.ts
deleted file mode 100644
index 789d3c1..0000000
--- a/node_modules/rxjs/add/operator/every.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/every';
diff --git a/node_modules/rxjs/add/operator/every.js b/node_modules/rxjs/add/operator/every.js
deleted file mode 100644
index 5726e81..0000000
--- a/node_modules/rxjs/add/operator/every.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/every");
-//# sourceMappingURL=every.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/every.js.map b/node_modules/rxjs/add/operator/every.js.map
deleted file mode 100644
index 4aecfac..0000000
--- a/node_modules/rxjs/add/operator/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../../src/add/operator/every.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/exhaust.d.ts b/node_modules/rxjs/add/operator/exhaust.d.ts
deleted file mode 100644
index d0cae89..0000000
--- a/node_modules/rxjs/add/operator/exhaust.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/exhaust';
diff --git a/node_modules/rxjs/add/operator/exhaust.js b/node_modules/rxjs/add/operator/exhaust.js
deleted file mode 100644
index 961de7c..0000000
--- a/node_modules/rxjs/add/operator/exhaust.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/exhaust");
-//# sourceMappingURL=exhaust.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/exhaust.js.map b/node_modules/rxjs/add/operator/exhaust.js.map
deleted file mode 100644
index c639877..0000000
--- a/node_modules/rxjs/add/operator/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../../src/add/operator/exhaust.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/exhaustMap.d.ts b/node_modules/rxjs/add/operator/exhaustMap.d.ts
deleted file mode 100644
index 6e231be..0000000
--- a/node_modules/rxjs/add/operator/exhaustMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/exhaustMap';
diff --git a/node_modules/rxjs/add/operator/exhaustMap.js b/node_modules/rxjs/add/operator/exhaustMap.js
deleted file mode 100644
index c00bae3..0000000
--- a/node_modules/rxjs/add/operator/exhaustMap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/exhaustMap");
-//# sourceMappingURL=exhaustMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/exhaustMap.js.map b/node_modules/rxjs/add/operator/exhaustMap.js.map
deleted file mode 100644
index ee84018..0000000
--- a/node_modules/rxjs/add/operator/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../../src/add/operator/exhaustMap.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/expand.d.ts b/node_modules/rxjs/add/operator/expand.d.ts
deleted file mode 100644
index 035ea49..0000000
--- a/node_modules/rxjs/add/operator/expand.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/expand';
diff --git a/node_modules/rxjs/add/operator/expand.js b/node_modules/rxjs/add/operator/expand.js
deleted file mode 100644
index 1a5e5f1..0000000
--- a/node_modules/rxjs/add/operator/expand.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/expand");
-//# sourceMappingURL=expand.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/expand.js.map b/node_modules/rxjs/add/operator/expand.js.map
deleted file mode 100644
index 6ffe1cf..0000000
--- a/node_modules/rxjs/add/operator/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../../src/add/operator/expand.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/filter.d.ts b/node_modules/rxjs/add/operator/filter.d.ts
deleted file mode 100644
index 1cfe74a..0000000
--- a/node_modules/rxjs/add/operator/filter.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/filter';
diff --git a/node_modules/rxjs/add/operator/filter.js b/node_modules/rxjs/add/operator/filter.js
deleted file mode 100644
index fdceab3..0000000
--- a/node_modules/rxjs/add/operator/filter.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/filter");
-//# sourceMappingURL=filter.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/filter.js.map b/node_modules/rxjs/add/operator/filter.js.map
deleted file mode 100644
index d1576dc..0000000
--- a/node_modules/rxjs/add/operator/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../../src/add/operator/filter.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/finally.d.ts b/node_modules/rxjs/add/operator/finally.d.ts
deleted file mode 100644
index 7db9d99..0000000
--- a/node_modules/rxjs/add/operator/finally.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/finally';
diff --git a/node_modules/rxjs/add/operator/finally.js b/node_modules/rxjs/add/operator/finally.js
deleted file mode 100644
index 6e921a7..0000000
--- a/node_modules/rxjs/add/operator/finally.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/finally");
-//# sourceMappingURL=finally.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/finally.js.map b/node_modules/rxjs/add/operator/finally.js.map
deleted file mode 100644
index a864c86..0000000
--- a/node_modules/rxjs/add/operator/finally.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finally.js","sources":["../../src/add/operator/finally.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/find.d.ts b/node_modules/rxjs/add/operator/find.d.ts
deleted file mode 100644
index 2255ba4..0000000
--- a/node_modules/rxjs/add/operator/find.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/find';
diff --git a/node_modules/rxjs/add/operator/find.js b/node_modules/rxjs/add/operator/find.js
deleted file mode 100644
index 91d31ba..0000000
--- a/node_modules/rxjs/add/operator/find.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/find");
-//# sourceMappingURL=find.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/find.js.map b/node_modules/rxjs/add/operator/find.js.map
deleted file mode 100644
index c23f16b..0000000
--- a/node_modules/rxjs/add/operator/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../../src/add/operator/find.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/findIndex.d.ts b/node_modules/rxjs/add/operator/findIndex.d.ts
deleted file mode 100644
index 8d98469..0000000
--- a/node_modules/rxjs/add/operator/findIndex.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/findIndex';
diff --git a/node_modules/rxjs/add/operator/findIndex.js b/node_modules/rxjs/add/operator/findIndex.js
deleted file mode 100644
index a3982d8..0000000
--- a/node_modules/rxjs/add/operator/findIndex.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/findIndex");
-//# sourceMappingURL=findIndex.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/findIndex.js.map b/node_modules/rxjs/add/operator/findIndex.js.map
deleted file mode 100644
index fce0f58..0000000
--- a/node_modules/rxjs/add/operator/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../../src/add/operator/findIndex.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/first.d.ts b/node_modules/rxjs/add/operator/first.d.ts
deleted file mode 100644
index b12264f..0000000
--- a/node_modules/rxjs/add/operator/first.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/first';
diff --git a/node_modules/rxjs/add/operator/first.js b/node_modules/rxjs/add/operator/first.js
deleted file mode 100644
index 14e9c80..0000000
--- a/node_modules/rxjs/add/operator/first.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/first");
-//# sourceMappingURL=first.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/first.js.map b/node_modules/rxjs/add/operator/first.js.map
deleted file mode 100644
index 0a63f44..0000000
--- a/node_modules/rxjs/add/operator/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../../src/add/operator/first.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/groupBy.d.ts b/node_modules/rxjs/add/operator/groupBy.d.ts
deleted file mode 100644
index 932d1f4..0000000
--- a/node_modules/rxjs/add/operator/groupBy.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/groupBy';
diff --git a/node_modules/rxjs/add/operator/groupBy.js b/node_modules/rxjs/add/operator/groupBy.js
deleted file mode 100644
index 4c79ff1..0000000
--- a/node_modules/rxjs/add/operator/groupBy.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/groupBy");
-//# sourceMappingURL=groupBy.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/groupBy.js.map b/node_modules/rxjs/add/operator/groupBy.js.map
deleted file mode 100644
index 9701dab..0000000
--- a/node_modules/rxjs/add/operator/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../../src/add/operator/groupBy.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/ignoreElements.d.ts b/node_modules/rxjs/add/operator/ignoreElements.d.ts
deleted file mode 100644
index 28b04ba..0000000
--- a/node_modules/rxjs/add/operator/ignoreElements.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/ignoreElements';
diff --git a/node_modules/rxjs/add/operator/ignoreElements.js b/node_modules/rxjs/add/operator/ignoreElements.js
deleted file mode 100644
index 08cf515..0000000
--- a/node_modules/rxjs/add/operator/ignoreElements.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/ignoreElements");
-//# sourceMappingURL=ignoreElements.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/ignoreElements.js.map b/node_modules/rxjs/add/operator/ignoreElements.js.map
deleted file mode 100644
index 2acf913..0000000
--- a/node_modules/rxjs/add/operator/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../../src/add/operator/ignoreElements.ts"],"names":[],"mappings":";;AAAA,mDAAiD"}
diff --git a/node_modules/rxjs/add/operator/isEmpty.d.ts b/node_modules/rxjs/add/operator/isEmpty.d.ts
deleted file mode 100644
index b84aaa9..0000000
--- a/node_modules/rxjs/add/operator/isEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/isEmpty';
diff --git a/node_modules/rxjs/add/operator/isEmpty.js b/node_modules/rxjs/add/operator/isEmpty.js
deleted file mode 100644
index 730a52f..0000000
--- a/node_modules/rxjs/add/operator/isEmpty.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/isEmpty");
-//# sourceMappingURL=isEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/isEmpty.js.map b/node_modules/rxjs/add/operator/isEmpty.js.map
deleted file mode 100644
index 27ce72a..0000000
--- a/node_modules/rxjs/add/operator/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../../src/add/operator/isEmpty.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/last.d.ts b/node_modules/rxjs/add/operator/last.d.ts
deleted file mode 100644
index 0b222df..0000000
--- a/node_modules/rxjs/add/operator/last.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/last';
diff --git a/node_modules/rxjs/add/operator/last.js b/node_modules/rxjs/add/operator/last.js
deleted file mode 100644
index b1d158c..0000000
--- a/node_modules/rxjs/add/operator/last.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/last");
-//# sourceMappingURL=last.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/last.js.map b/node_modules/rxjs/add/operator/last.js.map
deleted file mode 100644
index 70f3e2e..0000000
--- a/node_modules/rxjs/add/operator/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../../src/add/operator/last.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/let.d.ts b/node_modules/rxjs/add/operator/let.d.ts
deleted file mode 100644
index 5b92015..0000000
--- a/node_modules/rxjs/add/operator/let.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/let';
diff --git a/node_modules/rxjs/add/operator/let.js b/node_modules/rxjs/add/operator/let.js
deleted file mode 100644
index 2a289f2..0000000
--- a/node_modules/rxjs/add/operator/let.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/let");
-//# sourceMappingURL=let.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/let.js.map b/node_modules/rxjs/add/operator/let.js.map
deleted file mode 100644
index f43757b..0000000
--- a/node_modules/rxjs/add/operator/let.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"let.js","sources":["../../src/add/operator/let.ts"],"names":[],"mappings":";;AAAA,wCAAsC"}
diff --git a/node_modules/rxjs/add/operator/map.d.ts b/node_modules/rxjs/add/operator/map.d.ts
deleted file mode 100644
index e9f2a7f..0000000
--- a/node_modules/rxjs/add/operator/map.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/map';
diff --git a/node_modules/rxjs/add/operator/map.js b/node_modules/rxjs/add/operator/map.js
deleted file mode 100644
index 91060b4..0000000
--- a/node_modules/rxjs/add/operator/map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/map");
-//# sourceMappingURL=map.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/map.js.map b/node_modules/rxjs/add/operator/map.js.map
deleted file mode 100644
index 945bd41..0000000
--- a/node_modules/rxjs/add/operator/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../../src/add/operator/map.ts"],"names":[],"mappings":";;AAAA,wCAAsC"}
diff --git a/node_modules/rxjs/add/operator/mapTo.d.ts b/node_modules/rxjs/add/operator/mapTo.d.ts
deleted file mode 100644
index a49f787..0000000
--- a/node_modules/rxjs/add/operator/mapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mapTo';
diff --git a/node_modules/rxjs/add/operator/mapTo.js b/node_modules/rxjs/add/operator/mapTo.js
deleted file mode 100644
index 5d24be4..0000000
--- a/node_modules/rxjs/add/operator/mapTo.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/mapTo");
-//# sourceMappingURL=mapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/mapTo.js.map b/node_modules/rxjs/add/operator/mapTo.js.map
deleted file mode 100644
index e0b6b77..0000000
--- a/node_modules/rxjs/add/operator/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../../src/add/operator/mapTo.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/materialize.d.ts b/node_modules/rxjs/add/operator/materialize.d.ts
deleted file mode 100644
index e773199..0000000
--- a/node_modules/rxjs/add/operator/materialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/materialize';
diff --git a/node_modules/rxjs/add/operator/materialize.js b/node_modules/rxjs/add/operator/materialize.js
deleted file mode 100644
index 8e14b7e..0000000
--- a/node_modules/rxjs/add/operator/materialize.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/materialize");
-//# sourceMappingURL=materialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/materialize.js.map b/node_modules/rxjs/add/operator/materialize.js.map
deleted file mode 100644
index 0efd701..0000000
--- a/node_modules/rxjs/add/operator/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../../src/add/operator/materialize.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/max.d.ts b/node_modules/rxjs/add/operator/max.d.ts
deleted file mode 100644
index c66f7ae..0000000
--- a/node_modules/rxjs/add/operator/max.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/max';
diff --git a/node_modules/rxjs/add/operator/max.js b/node_modules/rxjs/add/operator/max.js
deleted file mode 100644
index 56b5824..0000000
--- a/node_modules/rxjs/add/operator/max.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/max");
-//# sourceMappingURL=max.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/max.js.map b/node_modules/rxjs/add/operator/max.js.map
deleted file mode 100644
index 7b0277e..0000000
--- a/node_modules/rxjs/add/operator/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../../src/add/operator/max.ts"],"names":[],"mappings":";;AAAA,wCAAsC"}
diff --git a/node_modules/rxjs/add/operator/merge.d.ts b/node_modules/rxjs/add/operator/merge.d.ts
deleted file mode 100644
index dfa5c46..0000000
--- a/node_modules/rxjs/add/operator/merge.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/merge';
diff --git a/node_modules/rxjs/add/operator/merge.js b/node_modules/rxjs/add/operator/merge.js
deleted file mode 100644
index 10f11d5..0000000
--- a/node_modules/rxjs/add/operator/merge.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/merge");
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/merge.js.map b/node_modules/rxjs/add/operator/merge.js.map
deleted file mode 100644
index ceb8603..0000000
--- a/node_modules/rxjs/add/operator/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../src/add/operator/merge.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/mergeAll.d.ts b/node_modules/rxjs/add/operator/mergeAll.d.ts
deleted file mode 100644
index 06cdc4f..0000000
--- a/node_modules/rxjs/add/operator/mergeAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeAll';
diff --git a/node_modules/rxjs/add/operator/mergeAll.js b/node_modules/rxjs/add/operator/mergeAll.js
deleted file mode 100644
index 02b8b75..0000000
--- a/node_modules/rxjs/add/operator/mergeAll.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/mergeAll");
-//# sourceMappingURL=mergeAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/mergeAll.js.map b/node_modules/rxjs/add/operator/mergeAll.js.map
deleted file mode 100644
index 9ec784a..0000000
--- a/node_modules/rxjs/add/operator/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../../src/add/operator/mergeAll.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/mergeMap.d.ts b/node_modules/rxjs/add/operator/mergeMap.d.ts
deleted file mode 100644
index d8ec3cc..0000000
--- a/node_modules/rxjs/add/operator/mergeMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeMap';
diff --git a/node_modules/rxjs/add/operator/mergeMap.js b/node_modules/rxjs/add/operator/mergeMap.js
deleted file mode 100644
index e550a31..0000000
--- a/node_modules/rxjs/add/operator/mergeMap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/mergeMap");
-//# sourceMappingURL=mergeMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/mergeMap.js.map b/node_modules/rxjs/add/operator/mergeMap.js.map
deleted file mode 100644
index bdefc21..0000000
--- a/node_modules/rxjs/add/operator/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../../src/add/operator/mergeMap.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/mergeMapTo.d.ts b/node_modules/rxjs/add/operator/mergeMapTo.d.ts
deleted file mode 100644
index 0d8e15f..0000000
--- a/node_modules/rxjs/add/operator/mergeMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeMapTo';
diff --git a/node_modules/rxjs/add/operator/mergeMapTo.js b/node_modules/rxjs/add/operator/mergeMapTo.js
deleted file mode 100644
index 30f39e2..0000000
--- a/node_modules/rxjs/add/operator/mergeMapTo.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/mergeMapTo");
-//# sourceMappingURL=mergeMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/mergeMapTo.js.map b/node_modules/rxjs/add/operator/mergeMapTo.js.map
deleted file mode 100644
index c741663..0000000
--- a/node_modules/rxjs/add/operator/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../../src/add/operator/mergeMapTo.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/mergeScan.d.ts b/node_modules/rxjs/add/operator/mergeScan.d.ts
deleted file mode 100644
index 17c5fcc..0000000
--- a/node_modules/rxjs/add/operator/mergeScan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeScan';
diff --git a/node_modules/rxjs/add/operator/mergeScan.js b/node_modules/rxjs/add/operator/mergeScan.js
deleted file mode 100644
index 9be36cd..0000000
--- a/node_modules/rxjs/add/operator/mergeScan.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/mergeScan");
-//# sourceMappingURL=mergeScan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/mergeScan.js.map b/node_modules/rxjs/add/operator/mergeScan.js.map
deleted file mode 100644
index b6e3a2f..0000000
--- a/node_modules/rxjs/add/operator/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../../src/add/operator/mergeScan.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/min.d.ts b/node_modules/rxjs/add/operator/min.d.ts
deleted file mode 100644
index 5fa91d5..0000000
--- a/node_modules/rxjs/add/operator/min.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/min';
diff --git a/node_modules/rxjs/add/operator/min.js b/node_modules/rxjs/add/operator/min.js
deleted file mode 100644
index d23db81..0000000
--- a/node_modules/rxjs/add/operator/min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/min");
-//# sourceMappingURL=min.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/min.js.map b/node_modules/rxjs/add/operator/min.js.map
deleted file mode 100644
index 88fbc15..0000000
--- a/node_modules/rxjs/add/operator/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../../src/add/operator/min.ts"],"names":[],"mappings":";;AAAA,wCAAsC"}
diff --git a/node_modules/rxjs/add/operator/multicast.d.ts b/node_modules/rxjs/add/operator/multicast.d.ts
deleted file mode 100644
index 03b0670..0000000
--- a/node_modules/rxjs/add/operator/multicast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/multicast';
diff --git a/node_modules/rxjs/add/operator/multicast.js b/node_modules/rxjs/add/operator/multicast.js
deleted file mode 100644
index 2f7c199..0000000
--- a/node_modules/rxjs/add/operator/multicast.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/multicast");
-//# sourceMappingURL=multicast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/multicast.js.map b/node_modules/rxjs/add/operator/multicast.js.map
deleted file mode 100644
index accd0a8..0000000
--- a/node_modules/rxjs/add/operator/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../../src/add/operator/multicast.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/observeOn.d.ts b/node_modules/rxjs/add/operator/observeOn.d.ts
deleted file mode 100644
index 4ade085..0000000
--- a/node_modules/rxjs/add/operator/observeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/observeOn';
diff --git a/node_modules/rxjs/add/operator/observeOn.js b/node_modules/rxjs/add/operator/observeOn.js
deleted file mode 100644
index 1eb8c75..0000000
--- a/node_modules/rxjs/add/operator/observeOn.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/observeOn");
-//# sourceMappingURL=observeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/observeOn.js.map b/node_modules/rxjs/add/operator/observeOn.js.map
deleted file mode 100644
index 82b9528..0000000
--- a/node_modules/rxjs/add/operator/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../../src/add/operator/observeOn.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts b/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts
deleted file mode 100644
index 0d2aa97..0000000
--- a/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/onErrorResumeNext';
diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.js b/node_modules/rxjs/add/operator/onErrorResumeNext.js
deleted file mode 100644
index 1cdca28..0000000
--- a/node_modules/rxjs/add/operator/onErrorResumeNext.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/onErrorResumeNext");
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.js.map b/node_modules/rxjs/add/operator/onErrorResumeNext.js.map
deleted file mode 100644
index 9f4c34c..0000000
--- a/node_modules/rxjs/add/operator/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/add/operator/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,sDAAoD"}
diff --git a/node_modules/rxjs/add/operator/pairwise.d.ts b/node_modules/rxjs/add/operator/pairwise.d.ts
deleted file mode 100644
index 2930fd3..0000000
--- a/node_modules/rxjs/add/operator/pairwise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/pairwise';
diff --git a/node_modules/rxjs/add/operator/pairwise.js b/node_modules/rxjs/add/operator/pairwise.js
deleted file mode 100644
index a458db3..0000000
--- a/node_modules/rxjs/add/operator/pairwise.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/pairwise");
-//# sourceMappingURL=pairwise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/pairwise.js.map b/node_modules/rxjs/add/operator/pairwise.js.map
deleted file mode 100644
index f52406e..0000000
--- a/node_modules/rxjs/add/operator/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../../src/add/operator/pairwise.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/partition.d.ts b/node_modules/rxjs/add/operator/partition.d.ts
deleted file mode 100644
index 7b8c869..0000000
--- a/node_modules/rxjs/add/operator/partition.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/partition';
diff --git a/node_modules/rxjs/add/operator/partition.js b/node_modules/rxjs/add/operator/partition.js
deleted file mode 100644
index a85b37a..0000000
--- a/node_modules/rxjs/add/operator/partition.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/partition");
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/partition.js.map b/node_modules/rxjs/add/operator/partition.js.map
deleted file mode 100644
index cdd4dcb..0000000
--- a/node_modules/rxjs/add/operator/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../src/add/operator/partition.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/pluck.d.ts b/node_modules/rxjs/add/operator/pluck.d.ts
deleted file mode 100644
index 0af0f3b..0000000
--- a/node_modules/rxjs/add/operator/pluck.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/pluck';
diff --git a/node_modules/rxjs/add/operator/pluck.js b/node_modules/rxjs/add/operator/pluck.js
deleted file mode 100644
index 87e2b9d..0000000
--- a/node_modules/rxjs/add/operator/pluck.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/pluck");
-//# sourceMappingURL=pluck.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/pluck.js.map b/node_modules/rxjs/add/operator/pluck.js.map
deleted file mode 100644
index 4f8da48..0000000
--- a/node_modules/rxjs/add/operator/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../../src/add/operator/pluck.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/publish.d.ts b/node_modules/rxjs/add/operator/publish.d.ts
deleted file mode 100644
index b7198cc..0000000
--- a/node_modules/rxjs/add/operator/publish.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publish';
diff --git a/node_modules/rxjs/add/operator/publish.js b/node_modules/rxjs/add/operator/publish.js
deleted file mode 100644
index 68a62eb..0000000
--- a/node_modules/rxjs/add/operator/publish.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/publish");
-//# sourceMappingURL=publish.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/publish.js.map b/node_modules/rxjs/add/operator/publish.js.map
deleted file mode 100644
index 1ebb5a3..0000000
--- a/node_modules/rxjs/add/operator/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../../src/add/operator/publish.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/publishBehavior.d.ts b/node_modules/rxjs/add/operator/publishBehavior.d.ts
deleted file mode 100644
index 3bc5e01..0000000
--- a/node_modules/rxjs/add/operator/publishBehavior.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishBehavior';
diff --git a/node_modules/rxjs/add/operator/publishBehavior.js b/node_modules/rxjs/add/operator/publishBehavior.js
deleted file mode 100644
index 3667cb7..0000000
--- a/node_modules/rxjs/add/operator/publishBehavior.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/publishBehavior");
-//# sourceMappingURL=publishBehavior.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/publishBehavior.js.map b/node_modules/rxjs/add/operator/publishBehavior.js.map
deleted file mode 100644
index ac4949b..0000000
--- a/node_modules/rxjs/add/operator/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../../src/add/operator/publishBehavior.ts"],"names":[],"mappings":";;AAAA,oDAAkD"}
diff --git a/node_modules/rxjs/add/operator/publishLast.d.ts b/node_modules/rxjs/add/operator/publishLast.d.ts
deleted file mode 100644
index 243d07c..0000000
--- a/node_modules/rxjs/add/operator/publishLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishLast';
diff --git a/node_modules/rxjs/add/operator/publishLast.js b/node_modules/rxjs/add/operator/publishLast.js
deleted file mode 100644
index 6f85bbd..0000000
--- a/node_modules/rxjs/add/operator/publishLast.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/publishLast");
-//# sourceMappingURL=publishLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/publishLast.js.map b/node_modules/rxjs/add/operator/publishLast.js.map
deleted file mode 100644
index a1e6ec7..0000000
--- a/node_modules/rxjs/add/operator/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../../src/add/operator/publishLast.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/publishReplay.d.ts b/node_modules/rxjs/add/operator/publishReplay.d.ts
deleted file mode 100644
index 06bc922..0000000
--- a/node_modules/rxjs/add/operator/publishReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishReplay';
diff --git a/node_modules/rxjs/add/operator/publishReplay.js b/node_modules/rxjs/add/operator/publishReplay.js
deleted file mode 100644
index 8577776..0000000
--- a/node_modules/rxjs/add/operator/publishReplay.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/publishReplay");
-//# sourceMappingURL=publishReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/publishReplay.js.map b/node_modules/rxjs/add/operator/publishReplay.js.map
deleted file mode 100644
index eb44e12..0000000
--- a/node_modules/rxjs/add/operator/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../../src/add/operator/publishReplay.ts"],"names":[],"mappings":";;AAAA,kDAAgD"}
diff --git a/node_modules/rxjs/add/operator/race.d.ts b/node_modules/rxjs/add/operator/race.d.ts
deleted file mode 100644
index b113466..0000000
--- a/node_modules/rxjs/add/operator/race.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/race';
diff --git a/node_modules/rxjs/add/operator/race.js b/node_modules/rxjs/add/operator/race.js
deleted file mode 100644
index f139329..0000000
--- a/node_modules/rxjs/add/operator/race.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/race");
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/race.js.map b/node_modules/rxjs/add/operator/race.js.map
deleted file mode 100644
index bb48aad..0000000
--- a/node_modules/rxjs/add/operator/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../src/add/operator/race.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/reduce.d.ts b/node_modules/rxjs/add/operator/reduce.d.ts
deleted file mode 100644
index c8db530..0000000
--- a/node_modules/rxjs/add/operator/reduce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/reduce';
diff --git a/node_modules/rxjs/add/operator/reduce.js b/node_modules/rxjs/add/operator/reduce.js
deleted file mode 100644
index d278e1d..0000000
--- a/node_modules/rxjs/add/operator/reduce.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/reduce");
-//# sourceMappingURL=reduce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/reduce.js.map b/node_modules/rxjs/add/operator/reduce.js.map
deleted file mode 100644
index 6f63204..0000000
--- a/node_modules/rxjs/add/operator/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../../src/add/operator/reduce.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/repeat.d.ts b/node_modules/rxjs/add/operator/repeat.d.ts
deleted file mode 100644
index 4290613..0000000
--- a/node_modules/rxjs/add/operator/repeat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/repeat';
diff --git a/node_modules/rxjs/add/operator/repeat.js b/node_modules/rxjs/add/operator/repeat.js
deleted file mode 100644
index 7376df4..0000000
--- a/node_modules/rxjs/add/operator/repeat.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/repeat");
-//# sourceMappingURL=repeat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/repeat.js.map b/node_modules/rxjs/add/operator/repeat.js.map
deleted file mode 100644
index 8efab1f..0000000
--- a/node_modules/rxjs/add/operator/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../../src/add/operator/repeat.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/repeatWhen.d.ts b/node_modules/rxjs/add/operator/repeatWhen.d.ts
deleted file mode 100644
index ca5471a..0000000
--- a/node_modules/rxjs/add/operator/repeatWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/repeatWhen';
diff --git a/node_modules/rxjs/add/operator/repeatWhen.js b/node_modules/rxjs/add/operator/repeatWhen.js
deleted file mode 100644
index 4a23d60..0000000
--- a/node_modules/rxjs/add/operator/repeatWhen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/repeatWhen");
-//# sourceMappingURL=repeatWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/repeatWhen.js.map b/node_modules/rxjs/add/operator/repeatWhen.js.map
deleted file mode 100644
index 53b67c3..0000000
--- a/node_modules/rxjs/add/operator/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../../src/add/operator/repeatWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/retry.d.ts b/node_modules/rxjs/add/operator/retry.d.ts
deleted file mode 100644
index fb9316b..0000000
--- a/node_modules/rxjs/add/operator/retry.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/retry';
diff --git a/node_modules/rxjs/add/operator/retry.js b/node_modules/rxjs/add/operator/retry.js
deleted file mode 100644
index c00fa98..0000000
--- a/node_modules/rxjs/add/operator/retry.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/retry");
-//# sourceMappingURL=retry.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/retry.js.map b/node_modules/rxjs/add/operator/retry.js.map
deleted file mode 100644
index bde602f..0000000
--- a/node_modules/rxjs/add/operator/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../../src/add/operator/retry.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/retryWhen.d.ts b/node_modules/rxjs/add/operator/retryWhen.d.ts
deleted file mode 100644
index c455337..0000000
--- a/node_modules/rxjs/add/operator/retryWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/retryWhen';
diff --git a/node_modules/rxjs/add/operator/retryWhen.js b/node_modules/rxjs/add/operator/retryWhen.js
deleted file mode 100644
index 689a957..0000000
--- a/node_modules/rxjs/add/operator/retryWhen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/retryWhen");
-//# sourceMappingURL=retryWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/retryWhen.js.map b/node_modules/rxjs/add/operator/retryWhen.js.map
deleted file mode 100644
index 3340634..0000000
--- a/node_modules/rxjs/add/operator/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../../src/add/operator/retryWhen.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/sample.d.ts b/node_modules/rxjs/add/operator/sample.d.ts
deleted file mode 100644
index 441255f..0000000
--- a/node_modules/rxjs/add/operator/sample.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sample';
diff --git a/node_modules/rxjs/add/operator/sample.js b/node_modules/rxjs/add/operator/sample.js
deleted file mode 100644
index 1318150..0000000
--- a/node_modules/rxjs/add/operator/sample.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/sample");
-//# sourceMappingURL=sample.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/sample.js.map b/node_modules/rxjs/add/operator/sample.js.map
deleted file mode 100644
index 48d52ee..0000000
--- a/node_modules/rxjs/add/operator/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../../src/add/operator/sample.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/sampleTime.d.ts b/node_modules/rxjs/add/operator/sampleTime.d.ts
deleted file mode 100644
index 153d8b0..0000000
--- a/node_modules/rxjs/add/operator/sampleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sampleTime';
diff --git a/node_modules/rxjs/add/operator/sampleTime.js b/node_modules/rxjs/add/operator/sampleTime.js
deleted file mode 100644
index 3296e68..0000000
--- a/node_modules/rxjs/add/operator/sampleTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/sampleTime");
-//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/sampleTime.js.map b/node_modules/rxjs/add/operator/sampleTime.js.map
deleted file mode 100644
index 9774074..0000000
--- a/node_modules/rxjs/add/operator/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../../src/add/operator/sampleTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/scan.d.ts b/node_modules/rxjs/add/operator/scan.d.ts
deleted file mode 100644
index baf8162..0000000
--- a/node_modules/rxjs/add/operator/scan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/scan';
diff --git a/node_modules/rxjs/add/operator/scan.js b/node_modules/rxjs/add/operator/scan.js
deleted file mode 100644
index e2186c0..0000000
--- a/node_modules/rxjs/add/operator/scan.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/scan");
-//# sourceMappingURL=scan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/scan.js.map b/node_modules/rxjs/add/operator/scan.js.map
deleted file mode 100644
index 75fbc7a..0000000
--- a/node_modules/rxjs/add/operator/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../../src/add/operator/scan.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/sequenceEqual.d.ts b/node_modules/rxjs/add/operator/sequenceEqual.d.ts
deleted file mode 100644
index f47a31d..0000000
--- a/node_modules/rxjs/add/operator/sequenceEqual.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sequenceEqual';
diff --git a/node_modules/rxjs/add/operator/sequenceEqual.js b/node_modules/rxjs/add/operator/sequenceEqual.js
deleted file mode 100644
index 009d8bd..0000000
--- a/node_modules/rxjs/add/operator/sequenceEqual.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/sequenceEqual");
-//# sourceMappingURL=sequenceEqual.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/sequenceEqual.js.map b/node_modules/rxjs/add/operator/sequenceEqual.js.map
deleted file mode 100644
index 5f0a05c..0000000
--- a/node_modules/rxjs/add/operator/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../../src/add/operator/sequenceEqual.ts"],"names":[],"mappings":";;AAAA,kDAAgD"}
diff --git a/node_modules/rxjs/add/operator/share.d.ts b/node_modules/rxjs/add/operator/share.d.ts
deleted file mode 100644
index 6db65af..0000000
--- a/node_modules/rxjs/add/operator/share.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/share';
diff --git a/node_modules/rxjs/add/operator/share.js b/node_modules/rxjs/add/operator/share.js
deleted file mode 100644
index a77a301..0000000
--- a/node_modules/rxjs/add/operator/share.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/share");
-//# sourceMappingURL=share.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/share.js.map b/node_modules/rxjs/add/operator/share.js.map
deleted file mode 100644
index d3612c2..0000000
--- a/node_modules/rxjs/add/operator/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../../src/add/operator/share.ts"],"names":[],"mappings":";;AAAA,0CAAwC"}
diff --git a/node_modules/rxjs/add/operator/shareReplay.d.ts b/node_modules/rxjs/add/operator/shareReplay.d.ts
deleted file mode 100644
index 7f31ff4..0000000
--- a/node_modules/rxjs/add/operator/shareReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/shareReplay';
diff --git a/node_modules/rxjs/add/operator/shareReplay.js b/node_modules/rxjs/add/operator/shareReplay.js
deleted file mode 100644
index a5492b9..0000000
--- a/node_modules/rxjs/add/operator/shareReplay.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/shareReplay");
-//# sourceMappingURL=shareReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/shareReplay.js.map b/node_modules/rxjs/add/operator/shareReplay.js.map
deleted file mode 100644
index a0ccd1a..0000000
--- a/node_modules/rxjs/add/operator/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../../src/add/operator/shareReplay.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/single.d.ts b/node_modules/rxjs/add/operator/single.d.ts
deleted file mode 100644
index d35b3cd..0000000
--- a/node_modules/rxjs/add/operator/single.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/single';
diff --git a/node_modules/rxjs/add/operator/single.js b/node_modules/rxjs/add/operator/single.js
deleted file mode 100644
index e8c6eda..0000000
--- a/node_modules/rxjs/add/operator/single.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/single");
-//# sourceMappingURL=single.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/single.js.map b/node_modules/rxjs/add/operator/single.js.map
deleted file mode 100644
index 8bac037..0000000
--- a/node_modules/rxjs/add/operator/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../../src/add/operator/single.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/skip.d.ts b/node_modules/rxjs/add/operator/skip.d.ts
deleted file mode 100644
index 1456f1e..0000000
--- a/node_modules/rxjs/add/operator/skip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skip';
diff --git a/node_modules/rxjs/add/operator/skip.js b/node_modules/rxjs/add/operator/skip.js
deleted file mode 100644
index 6fe5c69..0000000
--- a/node_modules/rxjs/add/operator/skip.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/skip");
-//# sourceMappingURL=skip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/skip.js.map b/node_modules/rxjs/add/operator/skip.js.map
deleted file mode 100644
index 02ae65d..0000000
--- a/node_modules/rxjs/add/operator/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../../src/add/operator/skip.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/skipLast.d.ts b/node_modules/rxjs/add/operator/skipLast.d.ts
deleted file mode 100644
index 0c432c9..0000000
--- a/node_modules/rxjs/add/operator/skipLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipLast';
diff --git a/node_modules/rxjs/add/operator/skipLast.js b/node_modules/rxjs/add/operator/skipLast.js
deleted file mode 100644
index f27a585..0000000
--- a/node_modules/rxjs/add/operator/skipLast.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/skipLast");
-//# sourceMappingURL=skipLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/skipLast.js.map b/node_modules/rxjs/add/operator/skipLast.js.map
deleted file mode 100644
index 02475f1..0000000
--- a/node_modules/rxjs/add/operator/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../../src/add/operator/skipLast.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/skipUntil.d.ts b/node_modules/rxjs/add/operator/skipUntil.d.ts
deleted file mode 100644
index 21ea6b2..0000000
--- a/node_modules/rxjs/add/operator/skipUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipUntil';
diff --git a/node_modules/rxjs/add/operator/skipUntil.js b/node_modules/rxjs/add/operator/skipUntil.js
deleted file mode 100644
index 69c0389..0000000
--- a/node_modules/rxjs/add/operator/skipUntil.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/skipUntil");
-//# sourceMappingURL=skipUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/skipUntil.js.map b/node_modules/rxjs/add/operator/skipUntil.js.map
deleted file mode 100644
index f0a19cc..0000000
--- a/node_modules/rxjs/add/operator/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../../src/add/operator/skipUntil.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/skipWhile.d.ts b/node_modules/rxjs/add/operator/skipWhile.d.ts
deleted file mode 100644
index 496218b..0000000
--- a/node_modules/rxjs/add/operator/skipWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipWhile';
diff --git a/node_modules/rxjs/add/operator/skipWhile.js b/node_modules/rxjs/add/operator/skipWhile.js
deleted file mode 100644
index 093c352..0000000
--- a/node_modules/rxjs/add/operator/skipWhile.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/skipWhile");
-//# sourceMappingURL=skipWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/skipWhile.js.map b/node_modules/rxjs/add/operator/skipWhile.js.map
deleted file mode 100644
index 5e076c9..0000000
--- a/node_modules/rxjs/add/operator/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../../src/add/operator/skipWhile.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/startWith.d.ts b/node_modules/rxjs/add/operator/startWith.d.ts
deleted file mode 100644
index 9c9e670..0000000
--- a/node_modules/rxjs/add/operator/startWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/startWith';
diff --git a/node_modules/rxjs/add/operator/startWith.js b/node_modules/rxjs/add/operator/startWith.js
deleted file mode 100644
index cce240d..0000000
--- a/node_modules/rxjs/add/operator/startWith.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/startWith");
-//# sourceMappingURL=startWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/startWith.js.map b/node_modules/rxjs/add/operator/startWith.js.map
deleted file mode 100644
index db9e74e..0000000
--- a/node_modules/rxjs/add/operator/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../../src/add/operator/startWith.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/subscribeOn.d.ts b/node_modules/rxjs/add/operator/subscribeOn.d.ts
deleted file mode 100644
index a1b5d6d..0000000
--- a/node_modules/rxjs/add/operator/subscribeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/subscribeOn';
diff --git a/node_modules/rxjs/add/operator/subscribeOn.js b/node_modules/rxjs/add/operator/subscribeOn.js
deleted file mode 100644
index 003a9ea..0000000
--- a/node_modules/rxjs/add/operator/subscribeOn.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/subscribeOn");
-//# sourceMappingURL=subscribeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/subscribeOn.js.map b/node_modules/rxjs/add/operator/subscribeOn.js.map
deleted file mode 100644
index 546ffb8..0000000
--- a/node_modules/rxjs/add/operator/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../../src/add/operator/subscribeOn.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/switch.d.ts b/node_modules/rxjs/add/operator/switch.d.ts
deleted file mode 100644
index d2d3f48..0000000
--- a/node_modules/rxjs/add/operator/switch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switch';
diff --git a/node_modules/rxjs/add/operator/switch.js b/node_modules/rxjs/add/operator/switch.js
deleted file mode 100644
index 8da50a1..0000000
--- a/node_modules/rxjs/add/operator/switch.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/switch");
-//# sourceMappingURL=switch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/switch.js.map b/node_modules/rxjs/add/operator/switch.js.map
deleted file mode 100644
index e291bac..0000000
--- a/node_modules/rxjs/add/operator/switch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switch.js","sources":["../../src/add/operator/switch.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/switchMap.d.ts b/node_modules/rxjs/add/operator/switchMap.d.ts
deleted file mode 100644
index b1dfdfa..0000000
--- a/node_modules/rxjs/add/operator/switchMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switchMap';
diff --git a/node_modules/rxjs/add/operator/switchMap.js b/node_modules/rxjs/add/operator/switchMap.js
deleted file mode 100644
index f9ac611..0000000
--- a/node_modules/rxjs/add/operator/switchMap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/switchMap");
-//# sourceMappingURL=switchMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/switchMap.js.map b/node_modules/rxjs/add/operator/switchMap.js.map
deleted file mode 100644
index 1d9bb0b..0000000
--- a/node_modules/rxjs/add/operator/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../../src/add/operator/switchMap.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/switchMapTo.d.ts b/node_modules/rxjs/add/operator/switchMapTo.d.ts
deleted file mode 100644
index 320b844..0000000
--- a/node_modules/rxjs/add/operator/switchMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switchMapTo';
diff --git a/node_modules/rxjs/add/operator/switchMapTo.js b/node_modules/rxjs/add/operator/switchMapTo.js
deleted file mode 100644
index cc5cb93..0000000
--- a/node_modules/rxjs/add/operator/switchMapTo.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/switchMapTo");
-//# sourceMappingURL=switchMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/switchMapTo.js.map b/node_modules/rxjs/add/operator/switchMapTo.js.map
deleted file mode 100644
index 62d7c10..0000000
--- a/node_modules/rxjs/add/operator/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../../src/add/operator/switchMapTo.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/take.d.ts b/node_modules/rxjs/add/operator/take.d.ts
deleted file mode 100644
index 08c3bcb..0000000
--- a/node_modules/rxjs/add/operator/take.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/take';
diff --git a/node_modules/rxjs/add/operator/take.js b/node_modules/rxjs/add/operator/take.js
deleted file mode 100644
index aac062c..0000000
--- a/node_modules/rxjs/add/operator/take.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/take");
-//# sourceMappingURL=take.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/take.js.map b/node_modules/rxjs/add/operator/take.js.map
deleted file mode 100644
index 2716631..0000000
--- a/node_modules/rxjs/add/operator/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../../src/add/operator/take.ts"],"names":[],"mappings":";;AAAA,yCAAuC"}
diff --git a/node_modules/rxjs/add/operator/takeLast.d.ts b/node_modules/rxjs/add/operator/takeLast.d.ts
deleted file mode 100644
index 13d0816..0000000
--- a/node_modules/rxjs/add/operator/takeLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeLast';
diff --git a/node_modules/rxjs/add/operator/takeLast.js b/node_modules/rxjs/add/operator/takeLast.js
deleted file mode 100644
index 9da93fc..0000000
--- a/node_modules/rxjs/add/operator/takeLast.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/takeLast");
-//# sourceMappingURL=takeLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/takeLast.js.map b/node_modules/rxjs/add/operator/takeLast.js.map
deleted file mode 100644
index b3c0b7f..0000000
--- a/node_modules/rxjs/add/operator/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../../src/add/operator/takeLast.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/takeUntil.d.ts b/node_modules/rxjs/add/operator/takeUntil.d.ts
deleted file mode 100644
index 78c8e55..0000000
--- a/node_modules/rxjs/add/operator/takeUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeUntil';
diff --git a/node_modules/rxjs/add/operator/takeUntil.js b/node_modules/rxjs/add/operator/takeUntil.js
deleted file mode 100644
index f69102c..0000000
--- a/node_modules/rxjs/add/operator/takeUntil.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/takeUntil");
-//# sourceMappingURL=takeUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/takeUntil.js.map b/node_modules/rxjs/add/operator/takeUntil.js.map
deleted file mode 100644
index a9ab1f1..0000000
--- a/node_modules/rxjs/add/operator/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../../src/add/operator/takeUntil.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/takeWhile.d.ts b/node_modules/rxjs/add/operator/takeWhile.d.ts
deleted file mode 100644
index 06ff174..0000000
--- a/node_modules/rxjs/add/operator/takeWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeWhile';
diff --git a/node_modules/rxjs/add/operator/takeWhile.js b/node_modules/rxjs/add/operator/takeWhile.js
deleted file mode 100644
index 84d37ea..0000000
--- a/node_modules/rxjs/add/operator/takeWhile.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/takeWhile");
-//# sourceMappingURL=takeWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/takeWhile.js.map b/node_modules/rxjs/add/operator/takeWhile.js.map
deleted file mode 100644
index 291ca39..0000000
--- a/node_modules/rxjs/add/operator/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../../src/add/operator/takeWhile.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/throttle.d.ts b/node_modules/rxjs/add/operator/throttle.d.ts
deleted file mode 100644
index 825457b..0000000
--- a/node_modules/rxjs/add/operator/throttle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/throttle';
diff --git a/node_modules/rxjs/add/operator/throttle.js b/node_modules/rxjs/add/operator/throttle.js
deleted file mode 100644
index 4ff4d7f..0000000
--- a/node_modules/rxjs/add/operator/throttle.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/throttle");
-//# sourceMappingURL=throttle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/throttle.js.map b/node_modules/rxjs/add/operator/throttle.js.map
deleted file mode 100644
index fb643ca..0000000
--- a/node_modules/rxjs/add/operator/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../../src/add/operator/throttle.ts"],"names":[],"mappings":";;AAAA,6CAA2C"}
diff --git a/node_modules/rxjs/add/operator/throttleTime.d.ts b/node_modules/rxjs/add/operator/throttleTime.d.ts
deleted file mode 100644
index c683297..0000000
--- a/node_modules/rxjs/add/operator/throttleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/throttleTime';
diff --git a/node_modules/rxjs/add/operator/throttleTime.js b/node_modules/rxjs/add/operator/throttleTime.js
deleted file mode 100644
index 4cb8a2b..0000000
--- a/node_modules/rxjs/add/operator/throttleTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/throttleTime");
-//# sourceMappingURL=throttleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/throttleTime.js.map b/node_modules/rxjs/add/operator/throttleTime.js.map
deleted file mode 100644
index e6a434e..0000000
--- a/node_modules/rxjs/add/operator/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../../src/add/operator/throttleTime.ts"],"names":[],"mappings":";;AAAA,iDAA+C"}
diff --git a/node_modules/rxjs/add/operator/timeInterval.d.ts b/node_modules/rxjs/add/operator/timeInterval.d.ts
deleted file mode 100644
index 198a616..0000000
--- a/node_modules/rxjs/add/operator/timeInterval.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeInterval';
diff --git a/node_modules/rxjs/add/operator/timeInterval.js b/node_modules/rxjs/add/operator/timeInterval.js
deleted file mode 100644
index fae6799..0000000
--- a/node_modules/rxjs/add/operator/timeInterval.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/timeInterval");
-//# sourceMappingURL=timeInterval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/timeInterval.js.map b/node_modules/rxjs/add/operator/timeInterval.js.map
deleted file mode 100644
index 39a6077..0000000
--- a/node_modules/rxjs/add/operator/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../../src/add/operator/timeInterval.ts"],"names":[],"mappings":";;AAAA,iDAA+C"}
diff --git a/node_modules/rxjs/add/operator/timeout.d.ts b/node_modules/rxjs/add/operator/timeout.d.ts
deleted file mode 100644
index 2a69ffd..0000000
--- a/node_modules/rxjs/add/operator/timeout.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeout';
diff --git a/node_modules/rxjs/add/operator/timeout.js b/node_modules/rxjs/add/operator/timeout.js
deleted file mode 100644
index 5263dcc..0000000
--- a/node_modules/rxjs/add/operator/timeout.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/timeout");
-//# sourceMappingURL=timeout.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/timeout.js.map b/node_modules/rxjs/add/operator/timeout.js.map
deleted file mode 100644
index b9cd549..0000000
--- a/node_modules/rxjs/add/operator/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../../src/add/operator/timeout.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/timeoutWith.d.ts b/node_modules/rxjs/add/operator/timeoutWith.d.ts
deleted file mode 100644
index cd4ec44..0000000
--- a/node_modules/rxjs/add/operator/timeoutWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeoutWith';
diff --git a/node_modules/rxjs/add/operator/timeoutWith.js b/node_modules/rxjs/add/operator/timeoutWith.js
deleted file mode 100644
index d68cb34..0000000
--- a/node_modules/rxjs/add/operator/timeoutWith.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/timeoutWith");
-//# sourceMappingURL=timeoutWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/timeoutWith.js.map b/node_modules/rxjs/add/operator/timeoutWith.js.map
deleted file mode 100644
index c4f7107..0000000
--- a/node_modules/rxjs/add/operator/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../../src/add/operator/timeoutWith.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/timestamp.d.ts b/node_modules/rxjs/add/operator/timestamp.d.ts
deleted file mode 100644
index 16402c8..0000000
--- a/node_modules/rxjs/add/operator/timestamp.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timestamp';
diff --git a/node_modules/rxjs/add/operator/timestamp.js b/node_modules/rxjs/add/operator/timestamp.js
deleted file mode 100644
index 7cda577..0000000
--- a/node_modules/rxjs/add/operator/timestamp.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/timestamp");
-//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/timestamp.js.map b/node_modules/rxjs/add/operator/timestamp.js.map
deleted file mode 100644
index add6759..0000000
--- a/node_modules/rxjs/add/operator/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../../src/add/operator/timestamp.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/toArray.d.ts b/node_modules/rxjs/add/operator/toArray.d.ts
deleted file mode 100644
index a0f1a4f..0000000
--- a/node_modules/rxjs/add/operator/toArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/toArray';
diff --git a/node_modules/rxjs/add/operator/toArray.js b/node_modules/rxjs/add/operator/toArray.js
deleted file mode 100644
index e7c8107..0000000
--- a/node_modules/rxjs/add/operator/toArray.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/toArray");
-//# sourceMappingURL=toArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/toArray.js.map b/node_modules/rxjs/add/operator/toArray.js.map
deleted file mode 100644
index 0377690..0000000
--- a/node_modules/rxjs/add/operator/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../../src/add/operator/toArray.ts"],"names":[],"mappings":";;AAAA,4CAA0C"}
diff --git a/node_modules/rxjs/add/operator/toPromise.d.ts b/node_modules/rxjs/add/operator/toPromise.d.ts
deleted file mode 100644
index cc7b16e..0000000
--- a/node_modules/rxjs/add/operator/toPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/toPromise';
diff --git a/node_modules/rxjs/add/operator/toPromise.js b/node_modules/rxjs/add/operator/toPromise.js
deleted file mode 100644
index c7cb12b..0000000
--- a/node_modules/rxjs/add/operator/toPromise.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/toPromise");
-//# sourceMappingURL=toPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/toPromise.js.map b/node_modules/rxjs/add/operator/toPromise.js.map
deleted file mode 100644
index cfa4eb4..0000000
--- a/node_modules/rxjs/add/operator/toPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toPromise.js","sources":["../../src/add/operator/toPromise.ts"],"names":[],"mappings":";;AAAA,8CAA4C"}
diff --git a/node_modules/rxjs/add/operator/window.d.ts b/node_modules/rxjs/add/operator/window.d.ts
deleted file mode 100644
index 450c41f..0000000
--- a/node_modules/rxjs/add/operator/window.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/window';
diff --git a/node_modules/rxjs/add/operator/window.js b/node_modules/rxjs/add/operator/window.js
deleted file mode 100644
index 656fce3..0000000
--- a/node_modules/rxjs/add/operator/window.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/window");
-//# sourceMappingURL=window.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/window.js.map b/node_modules/rxjs/add/operator/window.js.map
deleted file mode 100644
index 1bf33da..0000000
--- a/node_modules/rxjs/add/operator/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../../src/add/operator/window.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/add/operator/windowCount.d.ts b/node_modules/rxjs/add/operator/windowCount.d.ts
deleted file mode 100644
index da7eccf..0000000
--- a/node_modules/rxjs/add/operator/windowCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowCount';
diff --git a/node_modules/rxjs/add/operator/windowCount.js b/node_modules/rxjs/add/operator/windowCount.js
deleted file mode 100644
index 1018e22..0000000
--- a/node_modules/rxjs/add/operator/windowCount.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/windowCount");
-//# sourceMappingURL=windowCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/windowCount.js.map b/node_modules/rxjs/add/operator/windowCount.js.map
deleted file mode 100644
index 5e80c7a..0000000
--- a/node_modules/rxjs/add/operator/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../../src/add/operator/windowCount.ts"],"names":[],"mappings":";;AAAA,gDAA8C"}
diff --git a/node_modules/rxjs/add/operator/windowTime.d.ts b/node_modules/rxjs/add/operator/windowTime.d.ts
deleted file mode 100644
index 1d82ec6..0000000
--- a/node_modules/rxjs/add/operator/windowTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowTime';
diff --git a/node_modules/rxjs/add/operator/windowTime.js b/node_modules/rxjs/add/operator/windowTime.js
deleted file mode 100644
index 091a9ae..0000000
--- a/node_modules/rxjs/add/operator/windowTime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/windowTime");
-//# sourceMappingURL=windowTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/windowTime.js.map b/node_modules/rxjs/add/operator/windowTime.js.map
deleted file mode 100644
index 067b878..0000000
--- a/node_modules/rxjs/add/operator/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../../src/add/operator/windowTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/windowToggle.d.ts b/node_modules/rxjs/add/operator/windowToggle.d.ts
deleted file mode 100644
index 9ed25df..0000000
--- a/node_modules/rxjs/add/operator/windowToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowToggle';
diff --git a/node_modules/rxjs/add/operator/windowToggle.js b/node_modules/rxjs/add/operator/windowToggle.js
deleted file mode 100644
index d84082f..0000000
--- a/node_modules/rxjs/add/operator/windowToggle.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/windowToggle");
-//# sourceMappingURL=windowToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/windowToggle.js.map b/node_modules/rxjs/add/operator/windowToggle.js.map
deleted file mode 100644
index a2197f2..0000000
--- a/node_modules/rxjs/add/operator/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../../src/add/operator/windowToggle.ts"],"names":[],"mappings":";;AAAA,iDAA+C"}
diff --git a/node_modules/rxjs/add/operator/windowWhen.d.ts b/node_modules/rxjs/add/operator/windowWhen.d.ts
deleted file mode 100644
index f5d8564..0000000
--- a/node_modules/rxjs/add/operator/windowWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowWhen';
diff --git a/node_modules/rxjs/add/operator/windowWhen.js b/node_modules/rxjs/add/operator/windowWhen.js
deleted file mode 100644
index f647f9b..0000000
--- a/node_modules/rxjs/add/operator/windowWhen.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/windowWhen");
-//# sourceMappingURL=windowWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/windowWhen.js.map b/node_modules/rxjs/add/operator/windowWhen.js.map
deleted file mode 100644
index 419601b..0000000
--- a/node_modules/rxjs/add/operator/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../../src/add/operator/windowWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"}
diff --git a/node_modules/rxjs/add/operator/withLatestFrom.d.ts b/node_modules/rxjs/add/operator/withLatestFrom.d.ts
deleted file mode 100644
index 9f71574..0000000
--- a/node_modules/rxjs/add/operator/withLatestFrom.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/withLatestFrom';
diff --git a/node_modules/rxjs/add/operator/withLatestFrom.js b/node_modules/rxjs/add/operator/withLatestFrom.js
deleted file mode 100644
index 548babd..0000000
--- a/node_modules/rxjs/add/operator/withLatestFrom.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/withLatestFrom");
-//# sourceMappingURL=withLatestFrom.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/withLatestFrom.js.map b/node_modules/rxjs/add/operator/withLatestFrom.js.map
deleted file mode 100644
index af5df33..0000000
--- a/node_modules/rxjs/add/operator/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../../src/add/operator/withLatestFrom.ts"],"names":[],"mappings":";;AAAA,mDAAiD"}
diff --git a/node_modules/rxjs/add/operator/zip.d.ts b/node_modules/rxjs/add/operator/zip.d.ts
deleted file mode 100644
index 414202a..0000000
--- a/node_modules/rxjs/add/operator/zip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/zip';
diff --git a/node_modules/rxjs/add/operator/zip.js b/node_modules/rxjs/add/operator/zip.js
deleted file mode 100644
index 368d4fa..0000000
--- a/node_modules/rxjs/add/operator/zip.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/zip");
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/zip.js.map b/node_modules/rxjs/add/operator/zip.js.map
deleted file mode 100644
index c2472f9..0000000
--- a/node_modules/rxjs/add/operator/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../src/add/operator/zip.ts"],"names":[],"mappings":";;AAAA,wCAAsC"}
diff --git a/node_modules/rxjs/add/operator/zipAll.d.ts b/node_modules/rxjs/add/operator/zipAll.d.ts
deleted file mode 100644
index cf8877f..0000000
--- a/node_modules/rxjs/add/operator/zipAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/zipAll';
diff --git a/node_modules/rxjs/add/operator/zipAll.js b/node_modules/rxjs/add/operator/zipAll.js
deleted file mode 100644
index 70cdb3e..0000000
--- a/node_modules/rxjs/add/operator/zipAll.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("rxjs-compat/add/operator/zipAll");
-//# sourceMappingURL=zipAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/add/operator/zipAll.js.map b/node_modules/rxjs/add/operator/zipAll.js.map
deleted file mode 100644
index dcd81ab..0000000
--- a/node_modules/rxjs/add/operator/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../../src/add/operator/zipAll.ts"],"names":[],"mappings":";;AAAA,2CAAyC"}
diff --git a/node_modules/rxjs/ajax/index.d.ts b/node_modules/rxjs/ajax/index.d.ts
deleted file mode 100644
index 73cb0cc..0000000
--- a/node_modules/rxjs/ajax/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { ajax } from '../internal/observable/dom/ajax';
-export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
diff --git a/node_modules/rxjs/ajax/index.js b/node_modules/rxjs/ajax/index.js
deleted file mode 100644
index 93c809f..0000000
--- a/node_modules/rxjs/ajax/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ajax_1 = require("../internal/observable/dom/ajax");
-exports.ajax = ajax_1.ajax;
-var AjaxObservable_1 = require("../internal/observable/dom/AjaxObservable");
-exports.AjaxResponse = AjaxObservable_1.AjaxResponse;
-exports.AjaxError = AjaxObservable_1.AjaxError;
-exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/ajax/index.js.map b/node_modules/rxjs/ajax/index.js.map
deleted file mode 100644
index e3636d1..0000000
--- a/node_modules/rxjs/ajax/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/ajax/index.ts"],"names":[],"mappings":";;AAAA,wDAAuD;AAA9C,sBAAA,IAAI,CAAA;AACb,4EAAmH;AAA7F,wCAAA,YAAY,CAAA;AAAE,qCAAA,SAAS,CAAA;AAAE,4CAAA,gBAAgB,CAAA"}
diff --git a/node_modules/rxjs/ajax/package.json b/node_modules/rxjs/ajax/package.json
deleted file mode 100644
index 898cd05..0000000
--- a/node_modules/rxjs/ajax/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/ajax",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/ajax/index.js",
-  "es2015": "../_esm2015/ajax/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/bundles/rxjs.umd.js b/node_modules/rxjs/bundles/rxjs.umd.js
deleted file mode 100644
index ada2f49..0000000
--- a/node_modules/rxjs/bundles/rxjs.umd.js
+++ /dev/null
@@ -1,9293 +0,0 @@
-/**
-  @license
-                                 Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
-
- **/
-/**
-  @license
-                                 Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
-
- **/
-(function (global, factory) {
-    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-    typeof define === 'function' && define.amd ? define('rxjs', ['exports'], factory) :
-    (factory((global.rxjs = {})));
-}(this, (function (exports) { 'use strict';
-
-    /*! *****************************************************************************

-    Copyright (c) Microsoft Corporation. All rights reserved.

-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use

-    this file except in compliance with the License. You may obtain a copy of the

-    License at http://www.apache.org/licenses/LICENSE-2.0

-

-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-    MERCHANTABLITY OR NON-INFRINGEMENT.

-

-    See the Apache Version 2.0 License for specific language governing permissions

-    and limitations under the License.

-    ***************************************************************************** */

-    /* global Reflect, Promise */

-

-    var extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-

-    function __extends(d, b) {

-        extendStatics(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    }

-

-    var __assign = Object.assign || function __assign(t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

-    };
-
-    function isFunction(x) {
-        return typeof x === 'function';
-    }
-
-    var _enable_super_gross_mode_that_will_cause_bad_things = false;
-    var config = {
-        Promise: undefined,
-        set useDeprecatedSynchronousErrorHandling(value) {
-            if (value) {
-                var error = new Error();
-                console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
-            }
-            else if (_enable_super_gross_mode_that_will_cause_bad_things) {
-                console.log('RxJS: Back to a better error behavior. Thank you. <3');
-            }
-            _enable_super_gross_mode_that_will_cause_bad_things = value;
-        },
-        get useDeprecatedSynchronousErrorHandling() {
-            return _enable_super_gross_mode_that_will_cause_bad_things;
-        },
-    };
-
-    function hostReportError(err) {
-        setTimeout(function () { throw err; }, 0);
-    }
-
-    var empty = {
-        closed: true,
-        next: function (value) { },
-        error: function (err) {
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                throw err;
-            }
-            else {
-                hostReportError(err);
-            }
-        },
-        complete: function () { }
-    };
-
-    var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();
-
-    function isObject(x) {
-        return x !== null && typeof x === 'object';
-    }
-
-    var UnsubscriptionErrorImpl = (function () {
-        function UnsubscriptionErrorImpl(errors) {
-            Error.call(this);
-            this.message = errors ?
-                errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n  ') : '';
-            this.name = 'UnsubscriptionError';
-            this.errors = errors;
-            return this;
-        }
-        UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
-        return UnsubscriptionErrorImpl;
-    })();
-    var UnsubscriptionError = UnsubscriptionErrorImpl;
-
-    var Subscription = (function () {
-        function Subscription(unsubscribe) {
-            this.closed = false;
-            this._parentOrParents = null;
-            this._subscriptions = null;
-            if (unsubscribe) {
-                this._unsubscribe = unsubscribe;
-            }
-        }
-        Subscription.prototype.unsubscribe = function () {
-            var errors;
-            if (this.closed) {
-                return;
-            }
-            var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
-            this.closed = true;
-            this._parentOrParents = null;
-            this._subscriptions = null;
-            if (_parentOrParents instanceof Subscription) {
-                _parentOrParents.remove(this);
-            }
-            else if (_parentOrParents !== null) {
-                for (var index = 0; index < _parentOrParents.length; ++index) {
-                    var parent_1 = _parentOrParents[index];
-                    parent_1.remove(this);
-                }
-            }
-            if (isFunction(_unsubscribe)) {
-                try {
-                    _unsubscribe.call(this);
-                }
-                catch (e) {
-                    errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
-                }
-            }
-            if (isArray(_subscriptions)) {
-                var index = -1;
-                var len = _subscriptions.length;
-                while (++index < len) {
-                    var sub = _subscriptions[index];
-                    if (isObject(sub)) {
-                        try {
-                            sub.unsubscribe();
-                        }
-                        catch (e) {
-                            errors = errors || [];
-                            if (e instanceof UnsubscriptionError) {
-                                errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
-                            }
-                            else {
-                                errors.push(e);
-                            }
-                        }
-                    }
-                }
-            }
-            if (errors) {
-                throw new UnsubscriptionError(errors);
-            }
-        };
-        Subscription.prototype.add = function (teardown) {
-            var subscription = teardown;
-            if (!teardown) {
-                return Subscription.EMPTY;
-            }
-            switch (typeof teardown) {
-                case 'function':
-                    subscription = new Subscription(teardown);
-                case 'object':
-                    if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
-                        return subscription;
-                    }
-                    else if (this.closed) {
-                        subscription.unsubscribe();
-                        return subscription;
-                    }
-                    else if (!(subscription instanceof Subscription)) {
-                        var tmp = subscription;
-                        subscription = new Subscription();
-                        subscription._subscriptions = [tmp];
-                    }
-                    break;
-                default: {
-                    throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
-                }
-            }
-            var _parentOrParents = subscription._parentOrParents;
-            if (_parentOrParents === null) {
-                subscription._parentOrParents = this;
-            }
-            else if (_parentOrParents instanceof Subscription) {
-                if (_parentOrParents === this) {
-                    return subscription;
-                }
-                subscription._parentOrParents = [_parentOrParents, this];
-            }
-            else if (_parentOrParents.indexOf(this) === -1) {
-                _parentOrParents.push(this);
-            }
-            else {
-                return subscription;
-            }
-            var subscriptions = this._subscriptions;
-            if (subscriptions === null) {
-                this._subscriptions = [subscription];
-            }
-            else {
-                subscriptions.push(subscription);
-            }
-            return subscription;
-        };
-        Subscription.prototype.remove = function (subscription) {
-            var subscriptions = this._subscriptions;
-            if (subscriptions) {
-                var subscriptionIndex = subscriptions.indexOf(subscription);
-                if (subscriptionIndex !== -1) {
-                    subscriptions.splice(subscriptionIndex, 1);
-                }
-            }
-        };
-        Subscription.EMPTY = (function (empty) {
-            empty.closed = true;
-            return empty;
-        }(new Subscription()));
-        return Subscription;
-    }());
-    function flattenUnsubscriptionErrors(errors) {
-        return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);
-    }
-
-    var rxSubscriber = (function () {
-        return typeof Symbol === 'function'
-            ? Symbol('rxSubscriber')
-            : '@@rxSubscriber_' + Math.random();
-    })();
-
-    var Subscriber = (function (_super) {
-        __extends(Subscriber, _super);
-        function Subscriber(destinationOrNext, error, complete) {
-            var _this = _super.call(this) || this;
-            _this.syncErrorValue = null;
-            _this.syncErrorThrown = false;
-            _this.syncErrorThrowable = false;
-            _this.isStopped = false;
-            switch (arguments.length) {
-                case 0:
-                    _this.destination = empty;
-                    break;
-                case 1:
-                    if (!destinationOrNext) {
-                        _this.destination = empty;
-                        break;
-                    }
-                    if (typeof destinationOrNext === 'object') {
-                        if (destinationOrNext instanceof Subscriber) {
-                            _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
-                            _this.destination = destinationOrNext;
-                            destinationOrNext.add(_this);
-                        }
-                        else {
-                            _this.syncErrorThrowable = true;
-                            _this.destination = new SafeSubscriber(_this, destinationOrNext);
-                        }
-                        break;
-                    }
-                default:
-                    _this.syncErrorThrowable = true;
-                    _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
-                    break;
-            }
-            return _this;
-        }
-        Subscriber.prototype[rxSubscriber] = function () { return this; };
-        Subscriber.create = function (next, error, complete) {
-            var subscriber = new Subscriber(next, error, complete);
-            subscriber.syncErrorThrowable = false;
-            return subscriber;
-        };
-        Subscriber.prototype.next = function (value) {
-            if (!this.isStopped) {
-                this._next(value);
-            }
-        };
-        Subscriber.prototype.error = function (err) {
-            if (!this.isStopped) {
-                this.isStopped = true;
-                this._error(err);
-            }
-        };
-        Subscriber.prototype.complete = function () {
-            if (!this.isStopped) {
-                this.isStopped = true;
-                this._complete();
-            }
-        };
-        Subscriber.prototype.unsubscribe = function () {
-            if (this.closed) {
-                return;
-            }
-            this.isStopped = true;
-            _super.prototype.unsubscribe.call(this);
-        };
-        Subscriber.prototype._next = function (value) {
-            this.destination.next(value);
-        };
-        Subscriber.prototype._error = function (err) {
-            this.destination.error(err);
-            this.unsubscribe();
-        };
-        Subscriber.prototype._complete = function () {
-            this.destination.complete();
-            this.unsubscribe();
-        };
-        Subscriber.prototype._unsubscribeAndRecycle = function () {
-            var _parentOrParents = this._parentOrParents;
-            this._parentOrParents = null;
-            this.unsubscribe();
-            this.closed = false;
-            this.isStopped = false;
-            this._parentOrParents = _parentOrParents;
-            return this;
-        };
-        return Subscriber;
-    }(Subscription));
-    var SafeSubscriber = (function (_super) {
-        __extends(SafeSubscriber, _super);
-        function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
-            var _this = _super.call(this) || this;
-            _this._parentSubscriber = _parentSubscriber;
-            var next;
-            var context = _this;
-            if (isFunction(observerOrNext)) {
-                next = observerOrNext;
-            }
-            else if (observerOrNext) {
-                next = observerOrNext.next;
-                error = observerOrNext.error;
-                complete = observerOrNext.complete;
-                if (observerOrNext !== empty) {
-                    context = Object.create(observerOrNext);
-                    if (isFunction(context.unsubscribe)) {
-                        _this.add(context.unsubscribe.bind(context));
-                    }
-                    context.unsubscribe = _this.unsubscribe.bind(_this);
-                }
-            }
-            _this._context = context;
-            _this._next = next;
-            _this._error = error;
-            _this._complete = complete;
-            return _this;
-        }
-        SafeSubscriber.prototype.next = function (value) {
-            if (!this.isStopped && this._next) {
-                var _parentSubscriber = this._parentSubscriber;
-                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(this._next, value);
-                }
-                else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
-                    this.unsubscribe();
-                }
-            }
-        };
-        SafeSubscriber.prototype.error = function (err) {
-            if (!this.isStopped) {
-                var _parentSubscriber = this._parentSubscriber;
-                var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;
-                if (this._error) {
-                    if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                        this.__tryOrUnsub(this._error, err);
-                        this.unsubscribe();
-                    }
-                    else {
-                        this.__tryOrSetError(_parentSubscriber, this._error, err);
-                        this.unsubscribe();
-                    }
-                }
-                else if (!_parentSubscriber.syncErrorThrowable) {
-                    this.unsubscribe();
-                    if (useDeprecatedSynchronousErrorHandling) {
-                        throw err;
-                    }
-                    hostReportError(err);
-                }
-                else {
-                    if (useDeprecatedSynchronousErrorHandling) {
-                        _parentSubscriber.syncErrorValue = err;
-                        _parentSubscriber.syncErrorThrown = true;
-                    }
-                    else {
-                        hostReportError(err);
-                    }
-                    this.unsubscribe();
-                }
-            }
-        };
-        SafeSubscriber.prototype.complete = function () {
-            var _this = this;
-            if (!this.isStopped) {
-                var _parentSubscriber = this._parentSubscriber;
-                if (this._complete) {
-                    var wrappedComplete = function () { return _this._complete.call(_this._context); };
-                    if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                        this.__tryOrUnsub(wrappedComplete);
-                        this.unsubscribe();
-                    }
-                    else {
-                        this.__tryOrSetError(_parentSubscriber, wrappedComplete);
-                        this.unsubscribe();
-                    }
-                }
-                else {
-                    this.unsubscribe();
-                }
-            }
-        };
-        SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
-            try {
-                fn.call(this._context, value);
-            }
-            catch (err) {
-                this.unsubscribe();
-                if (config.useDeprecatedSynchronousErrorHandling) {
-                    throw err;
-                }
-                else {
-                    hostReportError(err);
-                }
-            }
-        };
-        SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
-            if (!config.useDeprecatedSynchronousErrorHandling) {
-                throw new Error('bad call');
-            }
-            try {
-                fn.call(this._context, value);
-            }
-            catch (err) {
-                if (config.useDeprecatedSynchronousErrorHandling) {
-                    parent.syncErrorValue = err;
-                    parent.syncErrorThrown = true;
-                    return true;
-                }
-                else {
-                    hostReportError(err);
-                    return true;
-                }
-            }
-            return false;
-        };
-        SafeSubscriber.prototype._unsubscribe = function () {
-            var _parentSubscriber = this._parentSubscriber;
-            this._context = null;
-            this._parentSubscriber = null;
-            _parentSubscriber.unsubscribe();
-        };
-        return SafeSubscriber;
-    }(Subscriber));
-
-    function canReportError(observer) {
-        while (observer) {
-            var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;
-            if (closed_1 || isStopped) {
-                return false;
-            }
-            else if (destination && destination instanceof Subscriber) {
-                observer = destination;
-            }
-            else {
-                observer = null;
-            }
-        }
-        return true;
-    }
-
-    function toSubscriber(nextOrObserver, error, complete) {
-        if (nextOrObserver) {
-            if (nextOrObserver instanceof Subscriber) {
-                return nextOrObserver;
-            }
-            if (nextOrObserver[rxSubscriber]) {
-                return nextOrObserver[rxSubscriber]();
-            }
-        }
-        if (!nextOrObserver && !error && !complete) {
-            return new Subscriber(empty);
-        }
-        return new Subscriber(nextOrObserver, error, complete);
-    }
-
-    var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();
-
-    function noop() { }
-
-    function pipe() {
-        var fns = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            fns[_i] = arguments[_i];
-        }
-        return pipeFromArray(fns);
-    }
-    function pipeFromArray(fns) {
-        if (!fns) {
-            return noop;
-        }
-        if (fns.length === 1) {
-            return fns[0];
-        }
-        return function piped(input) {
-            return fns.reduce(function (prev, fn) { return fn(prev); }, input);
-        };
-    }
-
-    var Observable = (function () {
-        function Observable(subscribe) {
-            this._isScalar = false;
-            if (subscribe) {
-                this._subscribe = subscribe;
-            }
-        }
-        Observable.prototype.lift = function (operator) {
-            var observable$$1 = new Observable();
-            observable$$1.source = this;
-            observable$$1.operator = operator;
-            return observable$$1;
-        };
-        Observable.prototype.subscribe = function (observerOrNext, error, complete) {
-            var operator = this.operator;
-            var sink = toSubscriber(observerOrNext, error, complete);
-            if (operator) {
-                sink.add(operator.call(sink, this.source));
-            }
-            else {
-                sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
-                    this._subscribe(sink) :
-                    this._trySubscribe(sink));
-            }
-            if (config.useDeprecatedSynchronousErrorHandling) {
-                if (sink.syncErrorThrowable) {
-                    sink.syncErrorThrowable = false;
-                    if (sink.syncErrorThrown) {
-                        throw sink.syncErrorValue;
-                    }
-                }
-            }
-            return sink;
-        };
-        Observable.prototype._trySubscribe = function (sink) {
-            try {
-                return this._subscribe(sink);
-            }
-            catch (err) {
-                if (config.useDeprecatedSynchronousErrorHandling) {
-                    sink.syncErrorThrown = true;
-                    sink.syncErrorValue = err;
-                }
-                if (canReportError(sink)) {
-                    sink.error(err);
-                }
-                else {
-                    console.warn(err);
-                }
-            }
-        };
-        Observable.prototype.forEach = function (next, promiseCtor) {
-            var _this = this;
-            promiseCtor = getPromiseCtor(promiseCtor);
-            return new promiseCtor(function (resolve, reject) {
-                var subscription;
-                subscription = _this.subscribe(function (value) {
-                    try {
-                        next(value);
-                    }
-                    catch (err) {
-                        reject(err);
-                        if (subscription) {
-                            subscription.unsubscribe();
-                        }
-                    }
-                }, reject, resolve);
-            });
-        };
-        Observable.prototype._subscribe = function (subscriber) {
-            var source = this.source;
-            return source && source.subscribe(subscriber);
-        };
-        Observable.prototype[observable] = function () {
-            return this;
-        };
-        Observable.prototype.pipe = function () {
-            var operations = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                operations[_i] = arguments[_i];
-            }
-            if (operations.length === 0) {
-                return this;
-            }
-            return pipeFromArray(operations)(this);
-        };
-        Observable.prototype.toPromise = function (promiseCtor) {
-            var _this = this;
-            promiseCtor = getPromiseCtor(promiseCtor);
-            return new promiseCtor(function (resolve, reject) {
-                var value;
-                _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
-            });
-        };
-        Observable.create = function (subscribe) {
-            return new Observable(subscribe);
-        };
-        return Observable;
-    }());
-    function getPromiseCtor(promiseCtor) {
-        if (!promiseCtor) {
-            promiseCtor = config.Promise || Promise;
-        }
-        if (!promiseCtor) {
-            throw new Error('no Promise impl found');
-        }
-        return promiseCtor;
-    }
-
-    var ObjectUnsubscribedErrorImpl = (function () {
-        function ObjectUnsubscribedErrorImpl() {
-            Error.call(this);
-            this.message = 'object unsubscribed';
-            this.name = 'ObjectUnsubscribedError';
-            return this;
-        }
-        ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);
-        return ObjectUnsubscribedErrorImpl;
-    })();
-    var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
-
-    var SubjectSubscription = (function (_super) {
-        __extends(SubjectSubscription, _super);
-        function SubjectSubscription(subject, subscriber) {
-            var _this = _super.call(this) || this;
-            _this.subject = subject;
-            _this.subscriber = subscriber;
-            _this.closed = false;
-            return _this;
-        }
-        SubjectSubscription.prototype.unsubscribe = function () {
-            if (this.closed) {
-                return;
-            }
-            this.closed = true;
-            var subject = this.subject;
-            var observers = subject.observers;
-            this.subject = null;
-            if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
-                return;
-            }
-            var subscriberIndex = observers.indexOf(this.subscriber);
-            if (subscriberIndex !== -1) {
-                observers.splice(subscriberIndex, 1);
-            }
-        };
-        return SubjectSubscription;
-    }(Subscription));
-
-    var SubjectSubscriber = (function (_super) {
-        __extends(SubjectSubscriber, _super);
-        function SubjectSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            return _this;
-        }
-        return SubjectSubscriber;
-    }(Subscriber));
-    var Subject = (function (_super) {
-        __extends(Subject, _super);
-        function Subject() {
-            var _this = _super.call(this) || this;
-            _this.observers = [];
-            _this.closed = false;
-            _this.isStopped = false;
-            _this.hasError = false;
-            _this.thrownError = null;
-            return _this;
-        }
-        Subject.prototype[rxSubscriber] = function () {
-            return new SubjectSubscriber(this);
-        };
-        Subject.prototype.lift = function (operator) {
-            var subject = new AnonymousSubject(this, this);
-            subject.operator = operator;
-            return subject;
-        };
-        Subject.prototype.next = function (value) {
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            if (!this.isStopped) {
-                var observers = this.observers;
-                var len = observers.length;
-                var copy = observers.slice();
-                for (var i = 0; i < len; i++) {
-                    copy[i].next(value);
-                }
-            }
-        };
-        Subject.prototype.error = function (err) {
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            this.hasError = true;
-            this.thrownError = err;
-            this.isStopped = true;
-            var observers = this.observers;
-            var len = observers.length;
-            var copy = observers.slice();
-            for (var i = 0; i < len; i++) {
-                copy[i].error(err);
-            }
-            this.observers.length = 0;
-        };
-        Subject.prototype.complete = function () {
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            this.isStopped = true;
-            var observers = this.observers;
-            var len = observers.length;
-            var copy = observers.slice();
-            for (var i = 0; i < len; i++) {
-                copy[i].complete();
-            }
-            this.observers.length = 0;
-        };
-        Subject.prototype.unsubscribe = function () {
-            this.isStopped = true;
-            this.closed = true;
-            this.observers = null;
-        };
-        Subject.prototype._trySubscribe = function (subscriber) {
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            else {
-                return _super.prototype._trySubscribe.call(this, subscriber);
-            }
-        };
-        Subject.prototype._subscribe = function (subscriber) {
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            else if (this.hasError) {
-                subscriber.error(this.thrownError);
-                return Subscription.EMPTY;
-            }
-            else if (this.isStopped) {
-                subscriber.complete();
-                return Subscription.EMPTY;
-            }
-            else {
-                this.observers.push(subscriber);
-                return new SubjectSubscription(this, subscriber);
-            }
-        };
-        Subject.prototype.asObservable = function () {
-            var observable = new Observable();
-            observable.source = this;
-            return observable;
-        };
-        Subject.create = function (destination, source) {
-            return new AnonymousSubject(destination, source);
-        };
-        return Subject;
-    }(Observable));
-    var AnonymousSubject = (function (_super) {
-        __extends(AnonymousSubject, _super);
-        function AnonymousSubject(destination, source) {
-            var _this = _super.call(this) || this;
-            _this.destination = destination;
-            _this.source = source;
-            return _this;
-        }
-        AnonymousSubject.prototype.next = function (value) {
-            var destination = this.destination;
-            if (destination && destination.next) {
-                destination.next(value);
-            }
-        };
-        AnonymousSubject.prototype.error = function (err) {
-            var destination = this.destination;
-            if (destination && destination.error) {
-                this.destination.error(err);
-            }
-        };
-        AnonymousSubject.prototype.complete = function () {
-            var destination = this.destination;
-            if (destination && destination.complete) {
-                this.destination.complete();
-            }
-        };
-        AnonymousSubject.prototype._subscribe = function (subscriber) {
-            var source = this.source;
-            if (source) {
-                return this.source.subscribe(subscriber);
-            }
-            else {
-                return Subscription.EMPTY;
-            }
-        };
-        return AnonymousSubject;
-    }(Subject));
-
-    function refCount() {
-        return function refCountOperatorFunction(source) {
-            return source.lift(new RefCountOperator(source));
-        };
-    }
-    var RefCountOperator = (function () {
-        function RefCountOperator(connectable) {
-            this.connectable = connectable;
-        }
-        RefCountOperator.prototype.call = function (subscriber, source) {
-            var connectable = this.connectable;
-            connectable._refCount++;
-            var refCounter = new RefCountSubscriber(subscriber, connectable);
-            var subscription = source.subscribe(refCounter);
-            if (!refCounter.closed) {
-                refCounter.connection = connectable.connect();
-            }
-            return subscription;
-        };
-        return RefCountOperator;
-    }());
-    var RefCountSubscriber = (function (_super) {
-        __extends(RefCountSubscriber, _super);
-        function RefCountSubscriber(destination, connectable) {
-            var _this = _super.call(this, destination) || this;
-            _this.connectable = connectable;
-            return _this;
-        }
-        RefCountSubscriber.prototype._unsubscribe = function () {
-            var connectable = this.connectable;
-            if (!connectable) {
-                this.connection = null;
-                return;
-            }
-            this.connectable = null;
-            var refCount = connectable._refCount;
-            if (refCount <= 0) {
-                this.connection = null;
-                return;
-            }
-            connectable._refCount = refCount - 1;
-            if (refCount > 1) {
-                this.connection = null;
-                return;
-            }
-            var connection = this.connection;
-            var sharedConnection = connectable._connection;
-            this.connection = null;
-            if (sharedConnection && (!connection || sharedConnection === connection)) {
-                sharedConnection.unsubscribe();
-            }
-        };
-        return RefCountSubscriber;
-    }(Subscriber));
-
-    var ConnectableObservable = (function (_super) {
-        __extends(ConnectableObservable, _super);
-        function ConnectableObservable(source, subjectFactory) {
-            var _this = _super.call(this) || this;
-            _this.source = source;
-            _this.subjectFactory = subjectFactory;
-            _this._refCount = 0;
-            _this._isComplete = false;
-            return _this;
-        }
-        ConnectableObservable.prototype._subscribe = function (subscriber) {
-            return this.getSubject().subscribe(subscriber);
-        };
-        ConnectableObservable.prototype.getSubject = function () {
-            var subject = this._subject;
-            if (!subject || subject.isStopped) {
-                this._subject = this.subjectFactory();
-            }
-            return this._subject;
-        };
-        ConnectableObservable.prototype.connect = function () {
-            var connection = this._connection;
-            if (!connection) {
-                this._isComplete = false;
-                connection = this._connection = new Subscription();
-                connection.add(this.source
-                    .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
-                if (connection.closed) {
-                    this._connection = null;
-                    connection = Subscription.EMPTY;
-                }
-            }
-            return connection;
-        };
-        ConnectableObservable.prototype.refCount = function () {
-            return refCount()(this);
-        };
-        return ConnectableObservable;
-    }(Observable));
-    var connectableObservableDescriptor = (function () {
-        var connectableProto = ConnectableObservable.prototype;
-        return {
-            operator: { value: null },
-            _refCount: { value: 0, writable: true },
-            _subject: { value: null, writable: true },
-            _connection: { value: null, writable: true },
-            _subscribe: { value: connectableProto._subscribe },
-            _isComplete: { value: connectableProto._isComplete, writable: true },
-            getSubject: { value: connectableProto.getSubject },
-            connect: { value: connectableProto.connect },
-            refCount: { value: connectableProto.refCount }
-        };
-    })();
-    var ConnectableSubscriber = (function (_super) {
-        __extends(ConnectableSubscriber, _super);
-        function ConnectableSubscriber(destination, connectable) {
-            var _this = _super.call(this, destination) || this;
-            _this.connectable = connectable;
-            return _this;
-        }
-        ConnectableSubscriber.prototype._error = function (err) {
-            this._unsubscribe();
-            _super.prototype._error.call(this, err);
-        };
-        ConnectableSubscriber.prototype._complete = function () {
-            this.connectable._isComplete = true;
-            this._unsubscribe();
-            _super.prototype._complete.call(this);
-        };
-        ConnectableSubscriber.prototype._unsubscribe = function () {
-            var connectable = this.connectable;
-            if (connectable) {
-                this.connectable = null;
-                var connection = connectable._connection;
-                connectable._refCount = 0;
-                connectable._subject = null;
-                connectable._connection = null;
-                if (connection) {
-                    connection.unsubscribe();
-                }
-            }
-        };
-        return ConnectableSubscriber;
-    }(SubjectSubscriber));
-    var RefCountSubscriber$1 = (function (_super) {
-        __extends(RefCountSubscriber, _super);
-        function RefCountSubscriber(destination, connectable) {
-            var _this = _super.call(this, destination) || this;
-            _this.connectable = connectable;
-            return _this;
-        }
-        RefCountSubscriber.prototype._unsubscribe = function () {
-            var connectable = this.connectable;
-            if (!connectable) {
-                this.connection = null;
-                return;
-            }
-            this.connectable = null;
-            var refCount$$1 = connectable._refCount;
-            if (refCount$$1 <= 0) {
-                this.connection = null;
-                return;
-            }
-            connectable._refCount = refCount$$1 - 1;
-            if (refCount$$1 > 1) {
-                this.connection = null;
-                return;
-            }
-            var connection = this.connection;
-            var sharedConnection = connectable._connection;
-            this.connection = null;
-            if (sharedConnection && (!connection || sharedConnection === connection)) {
-                sharedConnection.unsubscribe();
-            }
-        };
-        return RefCountSubscriber;
-    }(Subscriber));
-
-    function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
-        return function (source) {
-            return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
-        };
-    }
-    var GroupByOperator = (function () {
-        function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
-            this.keySelector = keySelector;
-            this.elementSelector = elementSelector;
-            this.durationSelector = durationSelector;
-            this.subjectSelector = subjectSelector;
-        }
-        GroupByOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
-        };
-        return GroupByOperator;
-    }());
-    var GroupBySubscriber = (function (_super) {
-        __extends(GroupBySubscriber, _super);
-        function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.keySelector = keySelector;
-            _this.elementSelector = elementSelector;
-            _this.durationSelector = durationSelector;
-            _this.subjectSelector = subjectSelector;
-            _this.groups = null;
-            _this.attemptedToUnsubscribe = false;
-            _this.count = 0;
-            return _this;
-        }
-        GroupBySubscriber.prototype._next = function (value) {
-            var key;
-            try {
-                key = this.keySelector(value);
-            }
-            catch (err) {
-                this.error(err);
-                return;
-            }
-            this._group(value, key);
-        };
-        GroupBySubscriber.prototype._group = function (value, key) {
-            var groups = this.groups;
-            if (!groups) {
-                groups = this.groups = new Map();
-            }
-            var group = groups.get(key);
-            var element;
-            if (this.elementSelector) {
-                try {
-                    element = this.elementSelector(value);
-                }
-                catch (err) {
-                    this.error(err);
-                }
-            }
-            else {
-                element = value;
-            }
-            if (!group) {
-                group = (this.subjectSelector ? this.subjectSelector() : new Subject());
-                groups.set(key, group);
-                var groupedObservable = new GroupedObservable(key, group, this);
-                this.destination.next(groupedObservable);
-                if (this.durationSelector) {
-                    var duration = void 0;
-                    try {
-                        duration = this.durationSelector(new GroupedObservable(key, group));
-                    }
-                    catch (err) {
-                        this.error(err);
-                        return;
-                    }
-                    this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
-                }
-            }
-            if (!group.closed) {
-                group.next(element);
-            }
-        };
-        GroupBySubscriber.prototype._error = function (err) {
-            var groups = this.groups;
-            if (groups) {
-                groups.forEach(function (group, key) {
-                    group.error(err);
-                });
-                groups.clear();
-            }
-            this.destination.error(err);
-        };
-        GroupBySubscriber.prototype._complete = function () {
-            var groups = this.groups;
-            if (groups) {
-                groups.forEach(function (group, key) {
-                    group.complete();
-                });
-                groups.clear();
-            }
-            this.destination.complete();
-        };
-        GroupBySubscriber.prototype.removeGroup = function (key) {
-            this.groups.delete(key);
-        };
-        GroupBySubscriber.prototype.unsubscribe = function () {
-            if (!this.closed) {
-                this.attemptedToUnsubscribe = true;
-                if (this.count === 0) {
-                    _super.prototype.unsubscribe.call(this);
-                }
-            }
-        };
-        return GroupBySubscriber;
-    }(Subscriber));
-    var GroupDurationSubscriber = (function (_super) {
-        __extends(GroupDurationSubscriber, _super);
-        function GroupDurationSubscriber(key, group, parent) {
-            var _this = _super.call(this, group) || this;
-            _this.key = key;
-            _this.group = group;
-            _this.parent = parent;
-            return _this;
-        }
-        GroupDurationSubscriber.prototype._next = function (value) {
-            this.complete();
-        };
-        GroupDurationSubscriber.prototype._unsubscribe = function () {
-            var _a = this, parent = _a.parent, key = _a.key;
-            this.key = this.parent = null;
-            if (parent) {
-                parent.removeGroup(key);
-            }
-        };
-        return GroupDurationSubscriber;
-    }(Subscriber));
-    var GroupedObservable = (function (_super) {
-        __extends(GroupedObservable, _super);
-        function GroupedObservable(key, groupSubject, refCountSubscription) {
-            var _this = _super.call(this) || this;
-            _this.key = key;
-            _this.groupSubject = groupSubject;
-            _this.refCountSubscription = refCountSubscription;
-            return _this;
-        }
-        GroupedObservable.prototype._subscribe = function (subscriber) {
-            var subscription = new Subscription();
-            var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
-            if (refCountSubscription && !refCountSubscription.closed) {
-                subscription.add(new InnerRefCountSubscription(refCountSubscription));
-            }
-            subscription.add(groupSubject.subscribe(subscriber));
-            return subscription;
-        };
-        return GroupedObservable;
-    }(Observable));
-    var InnerRefCountSubscription = (function (_super) {
-        __extends(InnerRefCountSubscription, _super);
-        function InnerRefCountSubscription(parent) {
-            var _this = _super.call(this) || this;
-            _this.parent = parent;
-            parent.count++;
-            return _this;
-        }
-        InnerRefCountSubscription.prototype.unsubscribe = function () {
-            var parent = this.parent;
-            if (!parent.closed && !this.closed) {
-                _super.prototype.unsubscribe.call(this);
-                parent.count -= 1;
-                if (parent.count === 0 && parent.attemptedToUnsubscribe) {
-                    parent.unsubscribe();
-                }
-            }
-        };
-        return InnerRefCountSubscription;
-    }(Subscription));
-
-    var BehaviorSubject = (function (_super) {
-        __extends(BehaviorSubject, _super);
-        function BehaviorSubject(_value) {
-            var _this = _super.call(this) || this;
-            _this._value = _value;
-            return _this;
-        }
-        Object.defineProperty(BehaviorSubject.prototype, "value", {
-            get: function () {
-                return this.getValue();
-            },
-            enumerable: true,
-            configurable: true
-        });
-        BehaviorSubject.prototype._subscribe = function (subscriber) {
-            var subscription = _super.prototype._subscribe.call(this, subscriber);
-            if (subscription && !subscription.closed) {
-                subscriber.next(this._value);
-            }
-            return subscription;
-        };
-        BehaviorSubject.prototype.getValue = function () {
-            if (this.hasError) {
-                throw this.thrownError;
-            }
-            else if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            else {
-                return this._value;
-            }
-        };
-        BehaviorSubject.prototype.next = function (value) {
-            _super.prototype.next.call(this, this._value = value);
-        };
-        return BehaviorSubject;
-    }(Subject));
-
-    var Action = (function (_super) {
-        __extends(Action, _super);
-        function Action(scheduler, work) {
-            return _super.call(this) || this;
-        }
-        Action.prototype.schedule = function (state, delay) {
-            if (delay === void 0) { delay = 0; }
-            return this;
-        };
-        return Action;
-    }(Subscription));
-
-    var AsyncAction = (function (_super) {
-        __extends(AsyncAction, _super);
-        function AsyncAction(scheduler, work) {
-            var _this = _super.call(this, scheduler, work) || this;
-            _this.scheduler = scheduler;
-            _this.work = work;
-            _this.pending = false;
-            return _this;
-        }
-        AsyncAction.prototype.schedule = function (state, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (this.closed) {
-                return this;
-            }
-            this.state = state;
-            var id = this.id;
-            var scheduler = this.scheduler;
-            if (id != null) {
-                this.id = this.recycleAsyncId(scheduler, id, delay);
-            }
-            this.pending = true;
-            this.delay = delay;
-            this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
-            return this;
-        };
-        AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            return setInterval(scheduler.flush.bind(scheduler, this), delay);
-        };
-        AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (delay !== null && this.delay === delay && this.pending === false) {
-                return id;
-            }
-            clearInterval(id);
-            return undefined;
-        };
-        AsyncAction.prototype.execute = function (state, delay) {
-            if (this.closed) {
-                return new Error('executing a cancelled action');
-            }
-            this.pending = false;
-            var error = this._execute(state, delay);
-            if (error) {
-                return error;
-            }
-            else if (this.pending === false && this.id != null) {
-                this.id = this.recycleAsyncId(this.scheduler, this.id, null);
-            }
-        };
-        AsyncAction.prototype._execute = function (state, delay) {
-            var errored = false;
-            var errorValue = undefined;
-            try {
-                this.work(state);
-            }
-            catch (e) {
-                errored = true;
-                errorValue = !!e && e || new Error(e);
-            }
-            if (errored) {
-                this.unsubscribe();
-                return errorValue;
-            }
-        };
-        AsyncAction.prototype._unsubscribe = function () {
-            var id = this.id;
-            var scheduler = this.scheduler;
-            var actions = scheduler.actions;
-            var index = actions.indexOf(this);
-            this.work = null;
-            this.state = null;
-            this.pending = false;
-            this.scheduler = null;
-            if (index !== -1) {
-                actions.splice(index, 1);
-            }
-            if (id != null) {
-                this.id = this.recycleAsyncId(scheduler, id, null);
-            }
-            this.delay = null;
-        };
-        return AsyncAction;
-    }(Action));
-
-    var QueueAction = (function (_super) {
-        __extends(QueueAction, _super);
-        function QueueAction(scheduler, work) {
-            var _this = _super.call(this, scheduler, work) || this;
-            _this.scheduler = scheduler;
-            _this.work = work;
-            return _this;
-        }
-        QueueAction.prototype.schedule = function (state, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (delay > 0) {
-                return _super.prototype.schedule.call(this, state, delay);
-            }
-            this.delay = delay;
-            this.state = state;
-            this.scheduler.flush(this);
-            return this;
-        };
-        QueueAction.prototype.execute = function (state, delay) {
-            return (delay > 0 || this.closed) ?
-                _super.prototype.execute.call(this, state, delay) :
-                this._execute(state, delay);
-        };
-        QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-                return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-            }
-            return scheduler.flush(this);
-        };
-        return QueueAction;
-    }(AsyncAction));
-
-    var Scheduler = (function () {
-        function Scheduler(SchedulerAction, now) {
-            if (now === void 0) { now = Scheduler.now; }
-            this.SchedulerAction = SchedulerAction;
-            this.now = now;
-        }
-        Scheduler.prototype.schedule = function (work, delay, state) {
-            if (delay === void 0) { delay = 0; }
-            return new this.SchedulerAction(this, work).schedule(state, delay);
-        };
-        Scheduler.now = function () { return Date.now(); };
-        return Scheduler;
-    }());
-
-    var AsyncScheduler = (function (_super) {
-        __extends(AsyncScheduler, _super);
-        function AsyncScheduler(SchedulerAction, now) {
-            if (now === void 0) { now = Scheduler.now; }
-            var _this = _super.call(this, SchedulerAction, function () {
-                if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {
-                    return AsyncScheduler.delegate.now();
-                }
-                else {
-                    return now();
-                }
-            }) || this;
-            _this.actions = [];
-            _this.active = false;
-            _this.scheduled = undefined;
-            return _this;
-        }
-        AsyncScheduler.prototype.schedule = function (work, delay, state) {
-            if (delay === void 0) { delay = 0; }
-            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-                return AsyncScheduler.delegate.schedule(work, delay, state);
-            }
-            else {
-                return _super.prototype.schedule.call(this, work, delay, state);
-            }
-        };
-        AsyncScheduler.prototype.flush = function (action) {
-            var actions = this.actions;
-            if (this.active) {
-                actions.push(action);
-                return;
-            }
-            var error;
-            this.active = true;
-            do {
-                if (error = action.execute(action.state, action.delay)) {
-                    break;
-                }
-            } while (action = actions.shift());
-            this.active = false;
-            if (error) {
-                while (action = actions.shift()) {
-                    action.unsubscribe();
-                }
-                throw error;
-            }
-        };
-        return AsyncScheduler;
-    }(Scheduler));
-
-    var QueueScheduler = (function (_super) {
-        __extends(QueueScheduler, _super);
-        function QueueScheduler() {
-            return _super !== null && _super.apply(this, arguments) || this;
-        }
-        return QueueScheduler;
-    }(AsyncScheduler));
-
-    var queue = new QueueScheduler(QueueAction);
-
-    var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });
-    function empty$1(scheduler) {
-        return scheduler ? emptyScheduled(scheduler) : EMPTY;
-    }
-    function emptyScheduled(scheduler) {
-        return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
-    }
-
-    function isScheduler(value) {
-        return value && typeof value.schedule === 'function';
-    }
-
-    var subscribeToArray = function (array) { return function (subscriber) {
-        for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {
-            subscriber.next(array[i]);
-        }
-        subscriber.complete();
-    }; };
-
-    function scheduleArray(input, scheduler) {
-        return new Observable(function (subscriber) {
-            var sub = new Subscription();
-            var i = 0;
-            sub.add(scheduler.schedule(function () {
-                if (i === input.length) {
-                    subscriber.complete();
-                    return;
-                }
-                subscriber.next(input[i++]);
-                if (!subscriber.closed) {
-                    sub.add(this.schedule());
-                }
-            }));
-            return sub;
-        });
-    }
-
-    function fromArray(input, scheduler) {
-        if (!scheduler) {
-            return new Observable(subscribeToArray(input));
-        }
-        else {
-            return scheduleArray(input, scheduler);
-        }
-    }
-
-    function of() {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        var scheduler = args[args.length - 1];
-        if (isScheduler(scheduler)) {
-            args.pop();
-            return scheduleArray(args, scheduler);
-        }
-        else {
-            return fromArray(args);
-        }
-    }
-
-    function throwError(error, scheduler) {
-        if (!scheduler) {
-            return new Observable(function (subscriber) { return subscriber.error(error); });
-        }
-        else {
-            return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });
-        }
-    }
-    function dispatch(_a) {
-        var error = _a.error, subscriber = _a.subscriber;
-        subscriber.error(error);
-    }
-
-    (function (NotificationKind) {
-        NotificationKind["NEXT"] = "N";
-        NotificationKind["ERROR"] = "E";
-        NotificationKind["COMPLETE"] = "C";
-    })(exports.NotificationKind || (exports.NotificationKind = {}));
-    var Notification = (function () {
-        function Notification(kind, value, error) {
-            this.kind = kind;
-            this.value = value;
-            this.error = error;
-            this.hasValue = kind === 'N';
-        }
-        Notification.prototype.observe = function (observer) {
-            switch (this.kind) {
-                case 'N':
-                    return observer.next && observer.next(this.value);
-                case 'E':
-                    return observer.error && observer.error(this.error);
-                case 'C':
-                    return observer.complete && observer.complete();
-            }
-        };
-        Notification.prototype.do = function (next, error, complete) {
-            var kind = this.kind;
-            switch (kind) {
-                case 'N':
-                    return next && next(this.value);
-                case 'E':
-                    return error && error(this.error);
-                case 'C':
-                    return complete && complete();
-            }
-        };
-        Notification.prototype.accept = function (nextOrObserver, error, complete) {
-            if (nextOrObserver && typeof nextOrObserver.next === 'function') {
-                return this.observe(nextOrObserver);
-            }
-            else {
-                return this.do(nextOrObserver, error, complete);
-            }
-        };
-        Notification.prototype.toObservable = function () {
-            var kind = this.kind;
-            switch (kind) {
-                case 'N':
-                    return of(this.value);
-                case 'E':
-                    return throwError(this.error);
-                case 'C':
-                    return empty$1();
-            }
-            throw new Error('unexpected notification kind value');
-        };
-        Notification.createNext = function (value) {
-            if (typeof value !== 'undefined') {
-                return new Notification('N', value);
-            }
-            return Notification.undefinedValueNotification;
-        };
-        Notification.createError = function (err) {
-            return new Notification('E', undefined, err);
-        };
-        Notification.createComplete = function () {
-            return Notification.completeNotification;
-        };
-        Notification.completeNotification = new Notification('C');
-        Notification.undefinedValueNotification = new Notification('N', undefined);
-        return Notification;
-    }());
-
-    function observeOn(scheduler, delay) {
-        if (delay === void 0) { delay = 0; }
-        return function observeOnOperatorFunction(source) {
-            return source.lift(new ObserveOnOperator(scheduler, delay));
-        };
-    }
-    var ObserveOnOperator = (function () {
-        function ObserveOnOperator(scheduler, delay) {
-            if (delay === void 0) { delay = 0; }
-            this.scheduler = scheduler;
-            this.delay = delay;
-        }
-        ObserveOnOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
-        };
-        return ObserveOnOperator;
-    }());
-    var ObserveOnSubscriber = (function (_super) {
-        __extends(ObserveOnSubscriber, _super);
-        function ObserveOnSubscriber(destination, scheduler, delay) {
-            if (delay === void 0) { delay = 0; }
-            var _this = _super.call(this, destination) || this;
-            _this.scheduler = scheduler;
-            _this.delay = delay;
-            return _this;
-        }
-        ObserveOnSubscriber.dispatch = function (arg) {
-            var notification = arg.notification, destination = arg.destination;
-            notification.observe(destination);
-            this.unsubscribe();
-        };
-        ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {
-            var destination = this.destination;
-            destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
-        };
-        ObserveOnSubscriber.prototype._next = function (value) {
-            this.scheduleMessage(Notification.createNext(value));
-        };
-        ObserveOnSubscriber.prototype._error = function (err) {
-            this.scheduleMessage(Notification.createError(err));
-            this.unsubscribe();
-        };
-        ObserveOnSubscriber.prototype._complete = function () {
-            this.scheduleMessage(Notification.createComplete());
-            this.unsubscribe();
-        };
-        return ObserveOnSubscriber;
-    }(Subscriber));
-    var ObserveOnMessage = (function () {
-        function ObserveOnMessage(notification, destination) {
-            this.notification = notification;
-            this.destination = destination;
-        }
-        return ObserveOnMessage;
-    }());
-
-    var ReplaySubject = (function (_super) {
-        __extends(ReplaySubject, _super);
-        function ReplaySubject(bufferSize, windowTime, scheduler) {
-            if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }
-            if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }
-            var _this = _super.call(this) || this;
-            _this.scheduler = scheduler;
-            _this._events = [];
-            _this._infiniteTimeWindow = false;
-            _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
-            _this._windowTime = windowTime < 1 ? 1 : windowTime;
-            if (windowTime === Number.POSITIVE_INFINITY) {
-                _this._infiniteTimeWindow = true;
-                _this.next = _this.nextInfiniteTimeWindow;
-            }
-            else {
-                _this.next = _this.nextTimeWindow;
-            }
-            return _this;
-        }
-        ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {
-            var _events = this._events;
-            _events.push(value);
-            if (_events.length > this._bufferSize) {
-                _events.shift();
-            }
-            _super.prototype.next.call(this, value);
-        };
-        ReplaySubject.prototype.nextTimeWindow = function (value) {
-            this._events.push(new ReplayEvent(this._getNow(), value));
-            this._trimBufferThenGetEvents();
-            _super.prototype.next.call(this, value);
-        };
-        ReplaySubject.prototype._subscribe = function (subscriber) {
-            var _infiniteTimeWindow = this._infiniteTimeWindow;
-            var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
-            var scheduler = this.scheduler;
-            var len = _events.length;
-            var subscription;
-            if (this.closed) {
-                throw new ObjectUnsubscribedError();
-            }
-            else if (this.isStopped || this.hasError) {
-                subscription = Subscription.EMPTY;
-            }
-            else {
-                this.observers.push(subscriber);
-                subscription = new SubjectSubscription(this, subscriber);
-            }
-            if (scheduler) {
-                subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));
-            }
-            if (_infiniteTimeWindow) {
-                for (var i = 0; i < len && !subscriber.closed; i++) {
-                    subscriber.next(_events[i]);
-                }
-            }
-            else {
-                for (var i = 0; i < len && !subscriber.closed; i++) {
-                    subscriber.next(_events[i].value);
-                }
-            }
-            if (this.hasError) {
-                subscriber.error(this.thrownError);
-            }
-            else if (this.isStopped) {
-                subscriber.complete();
-            }
-            return subscription;
-        };
-        ReplaySubject.prototype._getNow = function () {
-            return (this.scheduler || queue).now();
-        };
-        ReplaySubject.prototype._trimBufferThenGetEvents = function () {
-            var now = this._getNow();
-            var _bufferSize = this._bufferSize;
-            var _windowTime = this._windowTime;
-            var _events = this._events;
-            var eventsCount = _events.length;
-            var spliceCount = 0;
-            while (spliceCount < eventsCount) {
-                if ((now - _events[spliceCount].time) < _windowTime) {
-                    break;
-                }
-                spliceCount++;
-            }
-            if (eventsCount > _bufferSize) {
-                spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
-            }
-            if (spliceCount > 0) {
-                _events.splice(0, spliceCount);
-            }
-            return _events;
-        };
-        return ReplaySubject;
-    }(Subject));
-    var ReplayEvent = (function () {
-        function ReplayEvent(time, value) {
-            this.time = time;
-            this.value = value;
-        }
-        return ReplayEvent;
-    }());
-
-    var AsyncSubject = (function (_super) {
-        __extends(AsyncSubject, _super);
-        function AsyncSubject() {
-            var _this = _super !== null && _super.apply(this, arguments) || this;
-            _this.value = null;
-            _this.hasNext = false;
-            _this.hasCompleted = false;
-            return _this;
-        }
-        AsyncSubject.prototype._subscribe = function (subscriber) {
-            if (this.hasError) {
-                subscriber.error(this.thrownError);
-                return Subscription.EMPTY;
-            }
-            else if (this.hasCompleted && this.hasNext) {
-                subscriber.next(this.value);
-                subscriber.complete();
-                return Subscription.EMPTY;
-            }
-            return _super.prototype._subscribe.call(this, subscriber);
-        };
-        AsyncSubject.prototype.next = function (value) {
-            if (!this.hasCompleted) {
-                this.value = value;
-                this.hasNext = true;
-            }
-        };
-        AsyncSubject.prototype.error = function (error) {
-            if (!this.hasCompleted) {
-                _super.prototype.error.call(this, error);
-            }
-        };
-        AsyncSubject.prototype.complete = function () {
-            this.hasCompleted = true;
-            if (this.hasNext) {
-                _super.prototype.next.call(this, this.value);
-            }
-            _super.prototype.complete.call(this);
-        };
-        return AsyncSubject;
-    }(Subject));
-
-    var nextHandle = 1;
-    var RESOLVED = (function () { return Promise.resolve(); })();
-    var activeHandles = {};
-    function findAndClearHandle(handle) {
-        if (handle in activeHandles) {
-            delete activeHandles[handle];
-            return true;
-        }
-        return false;
-    }
-    var Immediate = {
-        setImmediate: function (cb) {
-            var handle = nextHandle++;
-            activeHandles[handle] = true;
-            RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });
-            return handle;
-        },
-        clearImmediate: function (handle) {
-            findAndClearHandle(handle);
-        },
-    };
-
-    var AsapAction = (function (_super) {
-        __extends(AsapAction, _super);
-        function AsapAction(scheduler, work) {
-            var _this = _super.call(this, scheduler, work) || this;
-            _this.scheduler = scheduler;
-            _this.work = work;
-            return _this;
-        }
-        AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (delay !== null && delay > 0) {
-                return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-            }
-            scheduler.actions.push(this);
-            return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));
-        };
-        AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-                return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-            }
-            if (scheduler.actions.length === 0) {
-                Immediate.clearImmediate(id);
-                scheduler.scheduled = undefined;
-            }
-            return undefined;
-        };
-        return AsapAction;
-    }(AsyncAction));
-
-    var AsapScheduler = (function (_super) {
-        __extends(AsapScheduler, _super);
-        function AsapScheduler() {
-            return _super !== null && _super.apply(this, arguments) || this;
-        }
-        AsapScheduler.prototype.flush = function (action) {
-            this.active = true;
-            this.scheduled = undefined;
-            var actions = this.actions;
-            var error;
-            var index = -1;
-            var count = actions.length;
-            action = action || actions.shift();
-            do {
-                if (error = action.execute(action.state, action.delay)) {
-                    break;
-                }
-            } while (++index < count && (action = actions.shift()));
-            this.active = false;
-            if (error) {
-                while (++index < count && (action = actions.shift())) {
-                    action.unsubscribe();
-                }
-                throw error;
-            }
-        };
-        return AsapScheduler;
-    }(AsyncScheduler));
-
-    var asap = new AsapScheduler(AsapAction);
-
-    var async = new AsyncScheduler(AsyncAction);
-
-    var AnimationFrameAction = (function (_super) {
-        __extends(AnimationFrameAction, _super);
-        function AnimationFrameAction(scheduler, work) {
-            var _this = _super.call(this, scheduler, work) || this;
-            _this.scheduler = scheduler;
-            _this.work = work;
-            return _this;
-        }
-        AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (delay !== null && delay > 0) {
-                return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-            }
-            scheduler.actions.push(this);
-            return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));
-        };
-        AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-                return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-            }
-            if (scheduler.actions.length === 0) {
-                cancelAnimationFrame(id);
-                scheduler.scheduled = undefined;
-            }
-            return undefined;
-        };
-        return AnimationFrameAction;
-    }(AsyncAction));
-
-    var AnimationFrameScheduler = (function (_super) {
-        __extends(AnimationFrameScheduler, _super);
-        function AnimationFrameScheduler() {
-            return _super !== null && _super.apply(this, arguments) || this;
-        }
-        AnimationFrameScheduler.prototype.flush = function (action) {
-            this.active = true;
-            this.scheduled = undefined;
-            var actions = this.actions;
-            var error;
-            var index = -1;
-            var count = actions.length;
-            action = action || actions.shift();
-            do {
-                if (error = action.execute(action.state, action.delay)) {
-                    break;
-                }
-            } while (++index < count && (action = actions.shift()));
-            this.active = false;
-            if (error) {
-                while (++index < count && (action = actions.shift())) {
-                    action.unsubscribe();
-                }
-                throw error;
-            }
-        };
-        return AnimationFrameScheduler;
-    }(AsyncScheduler));
-
-    var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);
-
-    var VirtualTimeScheduler = (function (_super) {
-        __extends(VirtualTimeScheduler, _super);
-        function VirtualTimeScheduler(SchedulerAction, maxFrames) {
-            if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }
-            if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }
-            var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;
-            _this.maxFrames = maxFrames;
-            _this.frame = 0;
-            _this.index = -1;
-            return _this;
-        }
-        VirtualTimeScheduler.prototype.flush = function () {
-            var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
-            var error, action;
-            while ((action = actions[0]) && action.delay <= maxFrames) {
-                actions.shift();
-                this.frame = action.delay;
-                if (error = action.execute(action.state, action.delay)) {
-                    break;
-                }
-            }
-            if (error) {
-                while (action = actions.shift()) {
-                    action.unsubscribe();
-                }
-                throw error;
-            }
-        };
-        VirtualTimeScheduler.frameTimeFactor = 10;
-        return VirtualTimeScheduler;
-    }(AsyncScheduler));
-    var VirtualAction = (function (_super) {
-        __extends(VirtualAction, _super);
-        function VirtualAction(scheduler, work, index) {
-            if (index === void 0) { index = scheduler.index += 1; }
-            var _this = _super.call(this, scheduler, work) || this;
-            _this.scheduler = scheduler;
-            _this.work = work;
-            _this.index = index;
-            _this.active = true;
-            _this.index = scheduler.index = index;
-            return _this;
-        }
-        VirtualAction.prototype.schedule = function (state, delay) {
-            if (delay === void 0) { delay = 0; }
-            if (!this.id) {
-                return _super.prototype.schedule.call(this, state, delay);
-            }
-            this.active = false;
-            var action = new VirtualAction(this.scheduler, this.work);
-            this.add(action);
-            return action.schedule(state, delay);
-        };
-        VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            this.delay = scheduler.frame + delay;
-            var actions = scheduler.actions;
-            actions.push(this);
-            actions.sort(VirtualAction.sortActions);
-            return true;
-        };
-        VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-            if (delay === void 0) { delay = 0; }
-            return undefined;
-        };
-        VirtualAction.prototype._execute = function (state, delay) {
-            if (this.active === true) {
-                return _super.prototype._execute.call(this, state, delay);
-            }
-        };
-        VirtualAction.sortActions = function (a, b) {
-            if (a.delay === b.delay) {
-                if (a.index === b.index) {
-                    return 0;
-                }
-                else if (a.index > b.index) {
-                    return 1;
-                }
-                else {
-                    return -1;
-                }
-            }
-            else if (a.delay > b.delay) {
-                return 1;
-            }
-            else {
-                return -1;
-            }
-        };
-        return VirtualAction;
-    }(AsyncAction));
-
-    function identity(x) {
-        return x;
-    }
-
-    function isObservable(obj) {
-        return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
-    }
-
-    var ArgumentOutOfRangeErrorImpl = (function () {
-        function ArgumentOutOfRangeErrorImpl() {
-            Error.call(this);
-            this.message = 'argument out of range';
-            this.name = 'ArgumentOutOfRangeError';
-            return this;
-        }
-        ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);
-        return ArgumentOutOfRangeErrorImpl;
-    })();
-    var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
-
-    var EmptyErrorImpl = (function () {
-        function EmptyErrorImpl() {
-            Error.call(this);
-            this.message = 'no elements in sequence';
-            this.name = 'EmptyError';
-            return this;
-        }
-        EmptyErrorImpl.prototype = Object.create(Error.prototype);
-        return EmptyErrorImpl;
-    })();
-    var EmptyError = EmptyErrorImpl;
-
-    var TimeoutErrorImpl = (function () {
-        function TimeoutErrorImpl() {
-            Error.call(this);
-            this.message = 'Timeout has occurred';
-            this.name = 'TimeoutError';
-            return this;
-        }
-        TimeoutErrorImpl.prototype = Object.create(Error.prototype);
-        return TimeoutErrorImpl;
-    })();
-    var TimeoutError = TimeoutErrorImpl;
-
-    function map(project, thisArg) {
-        return function mapOperation(source) {
-            if (typeof project !== 'function') {
-                throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
-            }
-            return source.lift(new MapOperator(project, thisArg));
-        };
-    }
-    var MapOperator = (function () {
-        function MapOperator(project, thisArg) {
-            this.project = project;
-            this.thisArg = thisArg;
-        }
-        MapOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
-        };
-        return MapOperator;
-    }());
-    var MapSubscriber = (function (_super) {
-        __extends(MapSubscriber, _super);
-        function MapSubscriber(destination, project, thisArg) {
-            var _this = _super.call(this, destination) || this;
-            _this.project = project;
-            _this.count = 0;
-            _this.thisArg = thisArg || _this;
-            return _this;
-        }
-        MapSubscriber.prototype._next = function (value) {
-            var result;
-            try {
-                result = this.project.call(this.thisArg, value, this.count++);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.next(result);
-        };
-        return MapSubscriber;
-    }(Subscriber));
-
-    function bindCallback(callbackFunc, resultSelector, scheduler) {
-        if (resultSelector) {
-            if (isScheduler(resultSelector)) {
-                scheduler = resultSelector;
-            }
-            else {
-                return function () {
-                    var args = [];
-                    for (var _i = 0; _i < arguments.length; _i++) {
-                        args[_i] = arguments[_i];
-                    }
-                    return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-                };
-            }
-        }
-        return function () {
-            var args = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                args[_i] = arguments[_i];
-            }
-            var context = this;
-            var subject;
-            var params = {
-                context: context,
-                subject: subject,
-                callbackFunc: callbackFunc,
-                scheduler: scheduler,
-            };
-            return new Observable(function (subscriber) {
-                if (!scheduler) {
-                    if (!subject) {
-                        subject = new AsyncSubject();
-                        var handler = function () {
-                            var innerArgs = [];
-                            for (var _i = 0; _i < arguments.length; _i++) {
-                                innerArgs[_i] = arguments[_i];
-                            }
-                            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                            subject.complete();
-                        };
-                        try {
-                            callbackFunc.apply(context, args.concat([handler]));
-                        }
-                        catch (err) {
-                            if (canReportError(subject)) {
-                                subject.error(err);
-                            }
-                            else {
-                                console.warn(err);
-                            }
-                        }
-                    }
-                    return subject.subscribe(subscriber);
-                }
-                else {
-                    var state = {
-                        args: args, subscriber: subscriber, params: params,
-                    };
-                    return scheduler.schedule(dispatch$1, 0, state);
-                }
-            });
-        };
-    }
-    function dispatch$1(state) {
-        var _this = this;
-        var args = state.args, subscriber = state.subscriber, params = state.params;
-        var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;
-        var subject = params.subject;
-        if (!subject) {
-            subject = params.subject = new AsyncSubject();
-            var handler = function () {
-                var innerArgs = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    innerArgs[_i] = arguments[_i];
-                }
-                var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-                _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
-            };
-            try {
-                callbackFunc.apply(context, args.concat([handler]));
-            }
-            catch (err) {
-                subject.error(err);
-            }
-        }
-        this.add(subject.subscribe(subscriber));
-    }
-    function dispatchNext(state) {
-        var value = state.value, subject = state.subject;
-        subject.next(value);
-        subject.complete();
-    }
-
-    function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
-        if (resultSelector) {
-            if (isScheduler(resultSelector)) {
-                scheduler = resultSelector;
-            }
-            else {
-                return function () {
-                    var args = [];
-                    for (var _i = 0; _i < arguments.length; _i++) {
-                        args[_i] = arguments[_i];
-                    }
-                    return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-                };
-            }
-        }
-        return function () {
-            var args = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                args[_i] = arguments[_i];
-            }
-            var params = {
-                subject: undefined,
-                args: args,
-                callbackFunc: callbackFunc,
-                scheduler: scheduler,
-                context: this,
-            };
-            return new Observable(function (subscriber) {
-                var context = params.context;
-                var subject = params.subject;
-                if (!scheduler) {
-                    if (!subject) {
-                        subject = params.subject = new AsyncSubject();
-                        var handler = function () {
-                            var innerArgs = [];
-                            for (var _i = 0; _i < arguments.length; _i++) {
-                                innerArgs[_i] = arguments[_i];
-                            }
-                            var err = innerArgs.shift();
-                            if (err) {
-                                subject.error(err);
-                                return;
-                            }
-                            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                            subject.complete();
-                        };
-                        try {
-                            callbackFunc.apply(context, args.concat([handler]));
-                        }
-                        catch (err) {
-                            if (canReportError(subject)) {
-                                subject.error(err);
-                            }
-                            else {
-                                console.warn(err);
-                            }
-                        }
-                    }
-                    return subject.subscribe(subscriber);
-                }
-                else {
-                    return scheduler.schedule(dispatch$2, 0, { params: params, subscriber: subscriber, context: context });
-                }
-            });
-        };
-    }
-    function dispatch$2(state) {
-        var _this = this;
-        var params = state.params, subscriber = state.subscriber, context = state.context;
-        var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
-        var subject = params.subject;
-        if (!subject) {
-            subject = params.subject = new AsyncSubject();
-            var handler = function () {
-                var innerArgs = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    innerArgs[_i] = arguments[_i];
-                }
-                var err = innerArgs.shift();
-                if (err) {
-                    _this.add(scheduler.schedule(dispatchError$1, 0, { err: err, subject: subject }));
-                }
-                else {
-                    var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-                    _this.add(scheduler.schedule(dispatchNext$1, 0, { value: value, subject: subject }));
-                }
-            };
-            try {
-                callbackFunc.apply(context, args.concat([handler]));
-            }
-            catch (err) {
-                this.add(scheduler.schedule(dispatchError$1, 0, { err: err, subject: subject }));
-            }
-        }
-        this.add(subject.subscribe(subscriber));
-    }
-    function dispatchNext$1(arg) {
-        var value = arg.value, subject = arg.subject;
-        subject.next(value);
-        subject.complete();
-    }
-    function dispatchError$1(arg) {
-        var err = arg.err, subject = arg.subject;
-        subject.error(err);
-    }
-
-    var OuterSubscriber = (function (_super) {
-        __extends(OuterSubscriber, _super);
-        function OuterSubscriber() {
-            return _super !== null && _super.apply(this, arguments) || this;
-        }
-        OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.destination.next(innerValue);
-        };
-        OuterSubscriber.prototype.notifyError = function (error, innerSub) {
-            this.destination.error(error);
-        };
-        OuterSubscriber.prototype.notifyComplete = function (innerSub) {
-            this.destination.complete();
-        };
-        return OuterSubscriber;
-    }(Subscriber));
-
-    var InnerSubscriber = (function (_super) {
-        __extends(InnerSubscriber, _super);
-        function InnerSubscriber(parent, outerValue, outerIndex) {
-            var _this = _super.call(this) || this;
-            _this.parent = parent;
-            _this.outerValue = outerValue;
-            _this.outerIndex = outerIndex;
-            _this.index = 0;
-            return _this;
-        }
-        InnerSubscriber.prototype._next = function (value) {
-            this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
-        };
-        InnerSubscriber.prototype._error = function (error) {
-            this.parent.notifyError(error, this);
-            this.unsubscribe();
-        };
-        InnerSubscriber.prototype._complete = function () {
-            this.parent.notifyComplete(this);
-            this.unsubscribe();
-        };
-        return InnerSubscriber;
-    }(Subscriber));
-
-    var subscribeToPromise = function (promise) { return function (subscriber) {
-        promise.then(function (value) {
-            if (!subscriber.closed) {
-                subscriber.next(value);
-                subscriber.complete();
-            }
-        }, function (err) { return subscriber.error(err); })
-            .then(null, hostReportError);
-        return subscriber;
-    }; };
-
-    function getSymbolIterator() {
-        if (typeof Symbol !== 'function' || !Symbol.iterator) {
-            return '@@iterator';
-        }
-        return Symbol.iterator;
-    }
-    var iterator = getSymbolIterator();
-
-    var subscribeToIterable = function (iterable) { return function (subscriber) {
-        var iterator$$1 = iterable[iterator]();
-        do {
-            var item = iterator$$1.next();
-            if (item.done) {
-                subscriber.complete();
-                break;
-            }
-            subscriber.next(item.value);
-            if (subscriber.closed) {
-                break;
-            }
-        } while (true);
-        if (typeof iterator$$1.return === 'function') {
-            subscriber.add(function () {
-                if (iterator$$1.return) {
-                    iterator$$1.return();
-                }
-            });
-        }
-        return subscriber;
-    }; };
-
-    var subscribeToObservable = function (obj) { return function (subscriber) {
-        var obs = obj[observable]();
-        if (typeof obs.subscribe !== 'function') {
-            throw new TypeError('Provided object does not correctly implement Symbol.observable');
-        }
-        else {
-            return obs.subscribe(subscriber);
-        }
-    }; };
-
-    var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
-
-    function isPromise(value) {
-        return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
-    }
-
-    var subscribeTo = function (result) {
-        if (!!result && typeof result[observable] === 'function') {
-            return subscribeToObservable(result);
-        }
-        else if (isArrayLike(result)) {
-            return subscribeToArray(result);
-        }
-        else if (isPromise(result)) {
-            return subscribeToPromise(result);
-        }
-        else if (!!result && typeof result[iterator] === 'function') {
-            return subscribeToIterable(result);
-        }
-        else {
-            var value = isObject(result) ? 'an invalid object' : "'" + result + "'";
-            var msg = "You provided " + value + " where a stream was expected."
-                + ' You can provide an Observable, Promise, Array, or Iterable.';
-            throw new TypeError(msg);
-        }
-    };
-
-    function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {
-        if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }
-        if (innerSubscriber.closed) {
-            return undefined;
-        }
-        if (result instanceof Observable) {
-            return result.subscribe(innerSubscriber);
-        }
-        return subscribeTo(result)(innerSubscriber);
-    }
-
-    var NONE = {};
-    function combineLatest() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        var resultSelector = null;
-        var scheduler = null;
-        if (isScheduler(observables[observables.length - 1])) {
-            scheduler = observables.pop();
-        }
-        if (typeof observables[observables.length - 1] === 'function') {
-            resultSelector = observables.pop();
-        }
-        if (observables.length === 1 && isArray(observables[0])) {
-            observables = observables[0];
-        }
-        return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
-    }
-    var CombineLatestOperator = (function () {
-        function CombineLatestOperator(resultSelector) {
-            this.resultSelector = resultSelector;
-        }
-        CombineLatestOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
-        };
-        return CombineLatestOperator;
-    }());
-    var CombineLatestSubscriber = (function (_super) {
-        __extends(CombineLatestSubscriber, _super);
-        function CombineLatestSubscriber(destination, resultSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.resultSelector = resultSelector;
-            _this.active = 0;
-            _this.values = [];
-            _this.observables = [];
-            return _this;
-        }
-        CombineLatestSubscriber.prototype._next = function (observable) {
-            this.values.push(NONE);
-            this.observables.push(observable);
-        };
-        CombineLatestSubscriber.prototype._complete = function () {
-            var observables = this.observables;
-            var len = observables.length;
-            if (len === 0) {
-                this.destination.complete();
-            }
-            else {
-                this.active = len;
-                this.toRespond = len;
-                for (var i = 0; i < len; i++) {
-                    var observable = observables[i];
-                    this.add(subscribeToResult(this, observable, observable, i));
-                }
-            }
-        };
-        CombineLatestSubscriber.prototype.notifyComplete = function (unused) {
-            if ((this.active -= 1) === 0) {
-                this.destination.complete();
-            }
-        };
-        CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            var values = this.values;
-            var oldVal = values[outerIndex];
-            var toRespond = !this.toRespond
-                ? 0
-                : oldVal === NONE ? --this.toRespond : this.toRespond;
-            values[outerIndex] = innerValue;
-            if (toRespond === 0) {
-                if (this.resultSelector) {
-                    this._tryResultSelector(values);
-                }
-                else {
-                    this.destination.next(values.slice());
-                }
-            }
-        };
-        CombineLatestSubscriber.prototype._tryResultSelector = function (values) {
-            var result;
-            try {
-                result = this.resultSelector.apply(this, values);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.next(result);
-        };
-        return CombineLatestSubscriber;
-    }(OuterSubscriber));
-
-    function scheduleObservable(input, scheduler) {
-        return new Observable(function (subscriber) {
-            var sub = new Subscription();
-            sub.add(scheduler.schedule(function () {
-                var observable$$1 = input[observable]();
-                sub.add(observable$$1.subscribe({
-                    next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },
-                    error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },
-                    complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },
-                }));
-            }));
-            return sub;
-        });
-    }
-
-    function schedulePromise(input, scheduler) {
-        return new Observable(function (subscriber) {
-            var sub = new Subscription();
-            sub.add(scheduler.schedule(function () { return input.then(function (value) {
-                sub.add(scheduler.schedule(function () {
-                    subscriber.next(value);
-                    sub.add(scheduler.schedule(function () { return subscriber.complete(); }));
-                }));
-            }, function (err) {
-                sub.add(scheduler.schedule(function () { return subscriber.error(err); }));
-            }); }));
-            return sub;
-        });
-    }
-
-    function scheduleIterable(input, scheduler) {
-        if (!input) {
-            throw new Error('Iterable cannot be null');
-        }
-        return new Observable(function (subscriber) {
-            var sub = new Subscription();
-            var iterator$$1;
-            sub.add(function () {
-                if (iterator$$1 && typeof iterator$$1.return === 'function') {
-                    iterator$$1.return();
-                }
-            });
-            sub.add(scheduler.schedule(function () {
-                iterator$$1 = input[iterator]();
-                sub.add(scheduler.schedule(function () {
-                    if (subscriber.closed) {
-                        return;
-                    }
-                    var value;
-                    var done;
-                    try {
-                        var result = iterator$$1.next();
-                        value = result.value;
-                        done = result.done;
-                    }
-                    catch (err) {
-                        subscriber.error(err);
-                        return;
-                    }
-                    if (done) {
-                        subscriber.complete();
-                    }
-                    else {
-                        subscriber.next(value);
-                        this.schedule();
-                    }
-                }));
-            }));
-            return sub;
-        });
-    }
-
-    function isInteropObservable(input) {
-        return input && typeof input[observable] === 'function';
-    }
-
-    function isIterable(input) {
-        return input && typeof input[iterator] === 'function';
-    }
-
-    function scheduled(input, scheduler) {
-        if (input != null) {
-            if (isInteropObservable(input)) {
-                return scheduleObservable(input, scheduler);
-            }
-            else if (isPromise(input)) {
-                return schedulePromise(input, scheduler);
-            }
-            else if (isArrayLike(input)) {
-                return scheduleArray(input, scheduler);
-            }
-            else if (isIterable(input) || typeof input === 'string') {
-                return scheduleIterable(input, scheduler);
-            }
-        }
-        throw new TypeError((input !== null && typeof input || input) + ' is not observable');
-    }
-
-    function from(input, scheduler) {
-        if (!scheduler) {
-            if (input instanceof Observable) {
-                return input;
-            }
-            return new Observable(subscribeTo(input));
-        }
-        else {
-            return scheduled(input, scheduler);
-        }
-    }
-
-    function mergeMap(project, resultSelector, concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        if (typeof resultSelector === 'function') {
-            return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };
-        }
-        else if (typeof resultSelector === 'number') {
-            concurrent = resultSelector;
-        }
-        return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };
-    }
-    var MergeMapOperator = (function () {
-        function MergeMapOperator(project, concurrent) {
-            if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-            this.project = project;
-            this.concurrent = concurrent;
-        }
-        MergeMapOperator.prototype.call = function (observer, source) {
-            return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
-        };
-        return MergeMapOperator;
-    }());
-    var MergeMapSubscriber = (function (_super) {
-        __extends(MergeMapSubscriber, _super);
-        function MergeMapSubscriber(destination, project, concurrent) {
-            if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-            var _this = _super.call(this, destination) || this;
-            _this.project = project;
-            _this.concurrent = concurrent;
-            _this.hasCompleted = false;
-            _this.buffer = [];
-            _this.active = 0;
-            _this.index = 0;
-            return _this;
-        }
-        MergeMapSubscriber.prototype._next = function (value) {
-            if (this.active < this.concurrent) {
-                this._tryNext(value);
-            }
-            else {
-                this.buffer.push(value);
-            }
-        };
-        MergeMapSubscriber.prototype._tryNext = function (value) {
-            var result;
-            var index = this.index++;
-            try {
-                result = this.project(value, index);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.active++;
-            this._innerSub(result, value, index);
-        };
-        MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {
-            var innerSubscriber = new InnerSubscriber(this, value, index);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        };
-        MergeMapSubscriber.prototype._complete = function () {
-            this.hasCompleted = true;
-            if (this.active === 0 && this.buffer.length === 0) {
-                this.destination.complete();
-            }
-            this.unsubscribe();
-        };
-        MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.destination.next(innerValue);
-        };
-        MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {
-            var buffer = this.buffer;
-            this.remove(innerSub);
-            this.active--;
-            if (buffer.length > 0) {
-                this._next(buffer.shift());
-            }
-            else if (this.active === 0 && this.hasCompleted) {
-                this.destination.complete();
-            }
-        };
-        return MergeMapSubscriber;
-    }(OuterSubscriber));
-
-    function mergeAll(concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        return mergeMap(identity, concurrent);
-    }
-
-    function concatAll() {
-        return mergeAll(1);
-    }
-
-    function concat() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        return concatAll()(of.apply(void 0, observables));
-    }
-
-    function defer(observableFactory) {
-        return new Observable(function (subscriber) {
-            var input;
-            try {
-                input = observableFactory();
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            var source = input ? from(input) : empty$1();
-            return source.subscribe(subscriber);
-        });
-    }
-
-    function forkJoin() {
-        var sources = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            sources[_i] = arguments[_i];
-        }
-        if (sources.length === 1) {
-            var first_1 = sources[0];
-            if (isArray(first_1)) {
-                return forkJoinInternal(first_1, null);
-            }
-            if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {
-                var keys = Object.keys(first_1);
-                return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);
-            }
-        }
-        if (typeof sources[sources.length - 1] === 'function') {
-            var resultSelector_1 = sources.pop();
-            sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;
-            return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));
-        }
-        return forkJoinInternal(sources, null);
-    }
-    function forkJoinInternal(sources, keys) {
-        return new Observable(function (subscriber) {
-            var len = sources.length;
-            if (len === 0) {
-                subscriber.complete();
-                return;
-            }
-            var values = new Array(len);
-            var completed = 0;
-            var emitted = 0;
-            var _loop_1 = function (i) {
-                var source = from(sources[i]);
-                var hasValue = false;
-                subscriber.add(source.subscribe({
-                    next: function (value) {
-                        if (!hasValue) {
-                            hasValue = true;
-                            emitted++;
-                        }
-                        values[i] = value;
-                    },
-                    error: function (err) { return subscriber.error(err); },
-                    complete: function () {
-                        completed++;
-                        if (completed === len || !hasValue) {
-                            if (emitted === len) {
-                                subscriber.next(keys ?
-                                    keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :
-                                    values);
-                            }
-                            subscriber.complete();
-                        }
-                    }
-                }));
-            };
-            for (var i = 0; i < len; i++) {
-                _loop_1(i);
-            }
-        });
-    }
-
-    function fromEvent(target, eventName, options, resultSelector) {
-        if (isFunction(options)) {
-            resultSelector = options;
-            options = undefined;
-        }
-        if (resultSelector) {
-            return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-        }
-        return new Observable(function (subscriber) {
-            function handler(e) {
-                if (arguments.length > 1) {
-                    subscriber.next(Array.prototype.slice.call(arguments));
-                }
-                else {
-                    subscriber.next(e);
-                }
-            }
-            setupSubscription(target, eventName, handler, subscriber, options);
-        });
-    }
-    function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
-        var unsubscribe;
-        if (isEventTarget(sourceObj)) {
-            var source_1 = sourceObj;
-            sourceObj.addEventListener(eventName, handler, options);
-            unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };
-        }
-        else if (isJQueryStyleEventEmitter(sourceObj)) {
-            var source_2 = sourceObj;
-            sourceObj.on(eventName, handler);
-            unsubscribe = function () { return source_2.off(eventName, handler); };
-        }
-        else if (isNodeStyleEventEmitter(sourceObj)) {
-            var source_3 = sourceObj;
-            sourceObj.addListener(eventName, handler);
-            unsubscribe = function () { return source_3.removeListener(eventName, handler); };
-        }
-        else if (sourceObj && sourceObj.length) {
-            for (var i = 0, len = sourceObj.length; i < len; i++) {
-                setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
-            }
-        }
-        else {
-            throw new TypeError('Invalid event target');
-        }
-        subscriber.add(unsubscribe);
-    }
-    function isNodeStyleEventEmitter(sourceObj) {
-        return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
-    }
-    function isJQueryStyleEventEmitter(sourceObj) {
-        return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
-    }
-    function isEventTarget(sourceObj) {
-        return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
-    }
-
-    function fromEventPattern(addHandler, removeHandler, resultSelector) {
-        if (resultSelector) {
-            return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-        }
-        return new Observable(function (subscriber) {
-            var handler = function () {
-                var e = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    e[_i] = arguments[_i];
-                }
-                return subscriber.next(e.length === 1 ? e[0] : e);
-            };
-            var retValue;
-            try {
-                retValue = addHandler(handler);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            if (!isFunction(removeHandler)) {
-                return undefined;
-            }
-            return function () { return removeHandler(handler, retValue); };
-        });
-    }
-
-    function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
-        var resultSelector;
-        var initialState;
-        if (arguments.length == 1) {
-            var options = initialStateOrOptions;
-            initialState = options.initialState;
-            condition = options.condition;
-            iterate = options.iterate;
-            resultSelector = options.resultSelector || identity;
-            scheduler = options.scheduler;
-        }
-        else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {
-            initialState = initialStateOrOptions;
-            resultSelector = identity;
-            scheduler = resultSelectorOrObservable;
-        }
-        else {
-            initialState = initialStateOrOptions;
-            resultSelector = resultSelectorOrObservable;
-        }
-        return new Observable(function (subscriber) {
-            var state = initialState;
-            if (scheduler) {
-                return scheduler.schedule(dispatch$3, 0, {
-                    subscriber: subscriber,
-                    iterate: iterate,
-                    condition: condition,
-                    resultSelector: resultSelector,
-                    state: state
-                });
-            }
-            do {
-                if (condition) {
-                    var conditionResult = void 0;
-                    try {
-                        conditionResult = condition(state);
-                    }
-                    catch (err) {
-                        subscriber.error(err);
-                        return undefined;
-                    }
-                    if (!conditionResult) {
-                        subscriber.complete();
-                        break;
-                    }
-                }
-                var value = void 0;
-                try {
-                    value = resultSelector(state);
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return undefined;
-                }
-                subscriber.next(value);
-                if (subscriber.closed) {
-                    break;
-                }
-                try {
-                    state = iterate(state);
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return undefined;
-                }
-            } while (true);
-            return undefined;
-        });
-    }
-    function dispatch$3(state) {
-        var subscriber = state.subscriber, condition = state.condition;
-        if (subscriber.closed) {
-            return undefined;
-        }
-        if (state.needIterate) {
-            try {
-                state.state = state.iterate(state.state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-        }
-        else {
-            state.needIterate = true;
-        }
-        if (condition) {
-            var conditionResult = void 0;
-            try {
-                conditionResult = condition(state.state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            if (!conditionResult) {
-                subscriber.complete();
-                return undefined;
-            }
-            if (subscriber.closed) {
-                return undefined;
-            }
-        }
-        var value;
-        try {
-            value = state.resultSelector(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (subscriber.closed) {
-            return undefined;
-        }
-        subscriber.next(value);
-        if (subscriber.closed) {
-            return undefined;
-        }
-        return this.schedule(state);
-    }
-
-    function iif(condition, trueResult, falseResult) {
-        if (trueResult === void 0) { trueResult = EMPTY; }
-        if (falseResult === void 0) { falseResult = EMPTY; }
-        return defer(function () { return condition() ? trueResult : falseResult; });
-    }
-
-    function isNumeric(val) {
-        return !isArray(val) && (val - parseFloat(val) + 1) >= 0;
-    }
-
-    function interval(period, scheduler) {
-        if (period === void 0) { period = 0; }
-        if (scheduler === void 0) { scheduler = async; }
-        if (!isNumeric(period) || period < 0) {
-            period = 0;
-        }
-        if (!scheduler || typeof scheduler.schedule !== 'function') {
-            scheduler = async;
-        }
-        return new Observable(function (subscriber) {
-            subscriber.add(scheduler.schedule(dispatch$4, period, { subscriber: subscriber, counter: 0, period: period }));
-            return subscriber;
-        });
-    }
-    function dispatch$4(state) {
-        var subscriber = state.subscriber, counter = state.counter, period = state.period;
-        subscriber.next(counter);
-        this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);
-    }
-
-    function merge() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        var concurrent = Number.POSITIVE_INFINITY;
-        var scheduler = null;
-        var last = observables[observables.length - 1];
-        if (isScheduler(last)) {
-            scheduler = observables.pop();
-            if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
-                concurrent = observables.pop();
-            }
-        }
-        else if (typeof last === 'number') {
-            concurrent = observables.pop();
-        }
-        if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {
-            return observables[0];
-        }
-        return mergeAll(concurrent)(fromArray(observables, scheduler));
-    }
-
-    var NEVER = new Observable(noop);
-    function never() {
-        return NEVER;
-    }
-
-    function onErrorResumeNext() {
-        var sources = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            sources[_i] = arguments[_i];
-        }
-        if (sources.length === 0) {
-            return EMPTY;
-        }
-        var first = sources[0], remainder = sources.slice(1);
-        if (sources.length === 1 && isArray(first)) {
-            return onErrorResumeNext.apply(void 0, first);
-        }
-        return new Observable(function (subscriber) {
-            var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };
-            return from(first).subscribe({
-                next: function (value) { subscriber.next(value); },
-                error: subNext,
-                complete: subNext,
-            });
-        });
-    }
-
-    function pairs(obj, scheduler) {
-        if (!scheduler) {
-            return new Observable(function (subscriber) {
-                var keys = Object.keys(obj);
-                for (var i = 0; i < keys.length && !subscriber.closed; i++) {
-                    var key = keys[i];
-                    if (obj.hasOwnProperty(key)) {
-                        subscriber.next([key, obj[key]]);
-                    }
-                }
-                subscriber.complete();
-            });
-        }
-        else {
-            return new Observable(function (subscriber) {
-                var keys = Object.keys(obj);
-                var subscription = new Subscription();
-                subscription.add(scheduler.schedule(dispatch$5, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));
-                return subscription;
-            });
-        }
-    }
-    function dispatch$5(state) {
-        var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;
-        if (!subscriber.closed) {
-            if (index < keys.length) {
-                var key = keys[index];
-                subscriber.next([key, obj[key]]);
-                subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));
-            }
-            else {
-                subscriber.complete();
-            }
-        }
-    }
-
-    function not(pred, thisArg) {
-        function notPred() {
-            return !(notPred.pred.apply(notPred.thisArg, arguments));
-        }
-        notPred.pred = pred;
-        notPred.thisArg = thisArg;
-        return notPred;
-    }
-
-    function filter(predicate, thisArg) {
-        return function filterOperatorFunction(source) {
-            return source.lift(new FilterOperator(predicate, thisArg));
-        };
-    }
-    var FilterOperator = (function () {
-        function FilterOperator(predicate, thisArg) {
-            this.predicate = predicate;
-            this.thisArg = thisArg;
-        }
-        FilterOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
-        };
-        return FilterOperator;
-    }());
-    var FilterSubscriber = (function (_super) {
-        __extends(FilterSubscriber, _super);
-        function FilterSubscriber(destination, predicate, thisArg) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.thisArg = thisArg;
-            _this.count = 0;
-            return _this;
-        }
-        FilterSubscriber.prototype._next = function (value) {
-            var result;
-            try {
-                result = this.predicate.call(this.thisArg, value, this.count++);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            if (result) {
-                this.destination.next(value);
-            }
-        };
-        return FilterSubscriber;
-    }(Subscriber));
-
-    function partition(source, predicate, thisArg) {
-        return [
-            filter(predicate, thisArg)(new Observable(subscribeTo(source))),
-            filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))
-        ];
-    }
-
-    function race() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        if (observables.length === 1) {
-            if (isArray(observables[0])) {
-                observables = observables[0];
-            }
-            else {
-                return observables[0];
-            }
-        }
-        return fromArray(observables, undefined).lift(new RaceOperator());
-    }
-    var RaceOperator = (function () {
-        function RaceOperator() {
-        }
-        RaceOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new RaceSubscriber(subscriber));
-        };
-        return RaceOperator;
-    }());
-    var RaceSubscriber = (function (_super) {
-        __extends(RaceSubscriber, _super);
-        function RaceSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.hasFirst = false;
-            _this.observables = [];
-            _this.subscriptions = [];
-            return _this;
-        }
-        RaceSubscriber.prototype._next = function (observable) {
-            this.observables.push(observable);
-        };
-        RaceSubscriber.prototype._complete = function () {
-            var observables = this.observables;
-            var len = observables.length;
-            if (len === 0) {
-                this.destination.complete();
-            }
-            else {
-                for (var i = 0; i < len && !this.hasFirst; i++) {
-                    var observable = observables[i];
-                    var subscription = subscribeToResult(this, observable, observable, i);
-                    if (this.subscriptions) {
-                        this.subscriptions.push(subscription);
-                    }
-                    this.add(subscription);
-                }
-                this.observables = null;
-            }
-        };
-        RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            if (!this.hasFirst) {
-                this.hasFirst = true;
-                for (var i = 0; i < this.subscriptions.length; i++) {
-                    if (i !== outerIndex) {
-                        var subscription = this.subscriptions[i];
-                        subscription.unsubscribe();
-                        this.remove(subscription);
-                    }
-                }
-                this.subscriptions = null;
-            }
-            this.destination.next(innerValue);
-        };
-        return RaceSubscriber;
-    }(OuterSubscriber));
-
-    function range(start, count, scheduler) {
-        if (start === void 0) { start = 0; }
-        return new Observable(function (subscriber) {
-            if (count === undefined) {
-                count = start;
-                start = 0;
-            }
-            var index = 0;
-            var current = start;
-            if (scheduler) {
-                return scheduler.schedule(dispatch$6, 0, {
-                    index: index, count: count, start: start, subscriber: subscriber
-                });
-            }
-            else {
-                do {
-                    if (index++ >= count) {
-                        subscriber.complete();
-                        break;
-                    }
-                    subscriber.next(current++);
-                    if (subscriber.closed) {
-                        break;
-                    }
-                } while (true);
-            }
-            return undefined;
-        });
-    }
-    function dispatch$6(state) {
-        var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;
-        if (index >= count) {
-            subscriber.complete();
-            return;
-        }
-        subscriber.next(start);
-        if (subscriber.closed) {
-            return;
-        }
-        state.index = index + 1;
-        state.start = start + 1;
-        this.schedule(state);
-    }
-
-    function timer(dueTime, periodOrScheduler, scheduler) {
-        if (dueTime === void 0) { dueTime = 0; }
-        var period = -1;
-        if (isNumeric(periodOrScheduler)) {
-            period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
-        }
-        else if (isScheduler(periodOrScheduler)) {
-            scheduler = periodOrScheduler;
-        }
-        if (!isScheduler(scheduler)) {
-            scheduler = async;
-        }
-        return new Observable(function (subscriber) {
-            var due = isNumeric(dueTime)
-                ? dueTime
-                : (+dueTime - scheduler.now());
-            return scheduler.schedule(dispatch$7, due, {
-                index: 0, period: period, subscriber: subscriber
-            });
-        });
-    }
-    function dispatch$7(state) {
-        var index = state.index, period = state.period, subscriber = state.subscriber;
-        subscriber.next(index);
-        if (subscriber.closed) {
-            return;
-        }
-        else if (period === -1) {
-            return subscriber.complete();
-        }
-        state.index = index + 1;
-        this.schedule(state, period);
-    }
-
-    function using(resourceFactory, observableFactory) {
-        return new Observable(function (subscriber) {
-            var resource;
-            try {
-                resource = resourceFactory();
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            var result;
-            try {
-                result = observableFactory(resource);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            var source = result ? from(result) : EMPTY;
-            var subscription = source.subscribe(subscriber);
-            return function () {
-                subscription.unsubscribe();
-                if (resource) {
-                    resource.unsubscribe();
-                }
-            };
-        });
-    }
-
-    function zip() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        var resultSelector = observables[observables.length - 1];
-        if (typeof resultSelector === 'function') {
-            observables.pop();
-        }
-        return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
-    }
-    var ZipOperator = (function () {
-        function ZipOperator(resultSelector) {
-            this.resultSelector = resultSelector;
-        }
-        ZipOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
-        };
-        return ZipOperator;
-    }());
-    var ZipSubscriber = (function (_super) {
-        __extends(ZipSubscriber, _super);
-        function ZipSubscriber(destination, resultSelector, values) {
-            if (values === void 0) { values = Object.create(null); }
-            var _this = _super.call(this, destination) || this;
-            _this.iterators = [];
-            _this.active = 0;
-            _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
-            _this.values = values;
-            return _this;
-        }
-        ZipSubscriber.prototype._next = function (value) {
-            var iterators = this.iterators;
-            if (isArray(value)) {
-                iterators.push(new StaticArrayIterator(value));
-            }
-            else if (typeof value[iterator] === 'function') {
-                iterators.push(new StaticIterator(value[iterator]()));
-            }
-            else {
-                iterators.push(new ZipBufferIterator(this.destination, this, value));
-            }
-        };
-        ZipSubscriber.prototype._complete = function () {
-            var iterators = this.iterators;
-            var len = iterators.length;
-            this.unsubscribe();
-            if (len === 0) {
-                this.destination.complete();
-                return;
-            }
-            this.active = len;
-            for (var i = 0; i < len; i++) {
-                var iterator$$1 = iterators[i];
-                if (iterator$$1.stillUnsubscribed) {
-                    var destination = this.destination;
-                    destination.add(iterator$$1.subscribe(iterator$$1, i));
-                }
-                else {
-                    this.active--;
-                }
-            }
-        };
-        ZipSubscriber.prototype.notifyInactive = function () {
-            this.active--;
-            if (this.active === 0) {
-                this.destination.complete();
-            }
-        };
-        ZipSubscriber.prototype.checkIterators = function () {
-            var iterators = this.iterators;
-            var len = iterators.length;
-            var destination = this.destination;
-            for (var i = 0; i < len; i++) {
-                var iterator$$1 = iterators[i];
-                if (typeof iterator$$1.hasValue === 'function' && !iterator$$1.hasValue()) {
-                    return;
-                }
-            }
-            var shouldComplete = false;
-            var args = [];
-            for (var i = 0; i < len; i++) {
-                var iterator$$1 = iterators[i];
-                var result = iterator$$1.next();
-                if (iterator$$1.hasCompleted()) {
-                    shouldComplete = true;
-                }
-                if (result.done) {
-                    destination.complete();
-                    return;
-                }
-                args.push(result.value);
-            }
-            if (this.resultSelector) {
-                this._tryresultSelector(args);
-            }
-            else {
-                destination.next(args);
-            }
-            if (shouldComplete) {
-                destination.complete();
-            }
-        };
-        ZipSubscriber.prototype._tryresultSelector = function (args) {
-            var result;
-            try {
-                result = this.resultSelector.apply(this, args);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.next(result);
-        };
-        return ZipSubscriber;
-    }(Subscriber));
-    var StaticIterator = (function () {
-        function StaticIterator(iterator$$1) {
-            this.iterator = iterator$$1;
-            this.nextResult = iterator$$1.next();
-        }
-        StaticIterator.prototype.hasValue = function () {
-            return true;
-        };
-        StaticIterator.prototype.next = function () {
-            var result = this.nextResult;
-            this.nextResult = this.iterator.next();
-            return result;
-        };
-        StaticIterator.prototype.hasCompleted = function () {
-            var nextResult = this.nextResult;
-            return nextResult && nextResult.done;
-        };
-        return StaticIterator;
-    }());
-    var StaticArrayIterator = (function () {
-        function StaticArrayIterator(array) {
-            this.array = array;
-            this.index = 0;
-            this.length = 0;
-            this.length = array.length;
-        }
-        StaticArrayIterator.prototype[iterator] = function () {
-            return this;
-        };
-        StaticArrayIterator.prototype.next = function (value) {
-            var i = this.index++;
-            var array = this.array;
-            return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
-        };
-        StaticArrayIterator.prototype.hasValue = function () {
-            return this.array.length > this.index;
-        };
-        StaticArrayIterator.prototype.hasCompleted = function () {
-            return this.array.length === this.index;
-        };
-        return StaticArrayIterator;
-    }());
-    var ZipBufferIterator = (function (_super) {
-        __extends(ZipBufferIterator, _super);
-        function ZipBufferIterator(destination, parent, observable) {
-            var _this = _super.call(this, destination) || this;
-            _this.parent = parent;
-            _this.observable = observable;
-            _this.stillUnsubscribed = true;
-            _this.buffer = [];
-            _this.isComplete = false;
-            return _this;
-        }
-        ZipBufferIterator.prototype[iterator] = function () {
-            return this;
-        };
-        ZipBufferIterator.prototype.next = function () {
-            var buffer = this.buffer;
-            if (buffer.length === 0 && this.isComplete) {
-                return { value: null, done: true };
-            }
-            else {
-                return { value: buffer.shift(), done: false };
-            }
-        };
-        ZipBufferIterator.prototype.hasValue = function () {
-            return this.buffer.length > 0;
-        };
-        ZipBufferIterator.prototype.hasCompleted = function () {
-            return this.buffer.length === 0 && this.isComplete;
-        };
-        ZipBufferIterator.prototype.notifyComplete = function () {
-            if (this.buffer.length > 0) {
-                this.isComplete = true;
-                this.parent.notifyInactive();
-            }
-            else {
-                this.destination.complete();
-            }
-        };
-        ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.buffer.push(innerValue);
-            this.parent.checkIterators();
-        };
-        ZipBufferIterator.prototype.subscribe = function (value, index) {
-            return subscribeToResult(this, this.observable, this, index);
-        };
-        return ZipBufferIterator;
-    }(OuterSubscriber));
-
-    function audit(durationSelector) {
-        return function auditOperatorFunction(source) {
-            return source.lift(new AuditOperator(durationSelector));
-        };
-    }
-    var AuditOperator = (function () {
-        function AuditOperator(durationSelector) {
-            this.durationSelector = durationSelector;
-        }
-        AuditOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
-        };
-        return AuditOperator;
-    }());
-    var AuditSubscriber = (function (_super) {
-        __extends(AuditSubscriber, _super);
-        function AuditSubscriber(destination, durationSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.durationSelector = durationSelector;
-            _this.hasValue = false;
-            return _this;
-        }
-        AuditSubscriber.prototype._next = function (value) {
-            this.value = value;
-            this.hasValue = true;
-            if (!this.throttled) {
-                var duration = void 0;
-                try {
-                    var durationSelector = this.durationSelector;
-                    duration = durationSelector(value);
-                }
-                catch (err) {
-                    return this.destination.error(err);
-                }
-                var innerSubscription = subscribeToResult(this, duration);
-                if (!innerSubscription || innerSubscription.closed) {
-                    this.clearThrottle();
-                }
-                else {
-                    this.add(this.throttled = innerSubscription);
-                }
-            }
-        };
-        AuditSubscriber.prototype.clearThrottle = function () {
-            var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;
-            if (throttled) {
-                this.remove(throttled);
-                this.throttled = null;
-                throttled.unsubscribe();
-            }
-            if (hasValue) {
-                this.value = null;
-                this.hasValue = false;
-                this.destination.next(value);
-            }
-        };
-        AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {
-            this.clearThrottle();
-        };
-        AuditSubscriber.prototype.notifyComplete = function () {
-            this.clearThrottle();
-        };
-        return AuditSubscriber;
-    }(OuterSubscriber));
-
-    function auditTime(duration, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return audit(function () { return timer(duration, scheduler); });
-    }
-
-    function buffer(closingNotifier) {
-        return function bufferOperatorFunction(source) {
-            return source.lift(new BufferOperator(closingNotifier));
-        };
-    }
-    var BufferOperator = (function () {
-        function BufferOperator(closingNotifier) {
-            this.closingNotifier = closingNotifier;
-        }
-        BufferOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
-        };
-        return BufferOperator;
-    }());
-    var BufferSubscriber = (function (_super) {
-        __extends(BufferSubscriber, _super);
-        function BufferSubscriber(destination, closingNotifier) {
-            var _this = _super.call(this, destination) || this;
-            _this.buffer = [];
-            _this.add(subscribeToResult(_this, closingNotifier));
-            return _this;
-        }
-        BufferSubscriber.prototype._next = function (value) {
-            this.buffer.push(value);
-        };
-        BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            var buffer = this.buffer;
-            this.buffer = [];
-            this.destination.next(buffer);
-        };
-        return BufferSubscriber;
-    }(OuterSubscriber));
-
-    function bufferCount(bufferSize, startBufferEvery) {
-        if (startBufferEvery === void 0) { startBufferEvery = null; }
-        return function bufferCountOperatorFunction(source) {
-            return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));
-        };
-    }
-    var BufferCountOperator = (function () {
-        function BufferCountOperator(bufferSize, startBufferEvery) {
-            this.bufferSize = bufferSize;
-            this.startBufferEvery = startBufferEvery;
-            if (!startBufferEvery || bufferSize === startBufferEvery) {
-                this.subscriberClass = BufferCountSubscriber;
-            }
-            else {
-                this.subscriberClass = BufferSkipCountSubscriber;
-            }
-        }
-        BufferCountOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
-        };
-        return BufferCountOperator;
-    }());
-    var BufferCountSubscriber = (function (_super) {
-        __extends(BufferCountSubscriber, _super);
-        function BufferCountSubscriber(destination, bufferSize) {
-            var _this = _super.call(this, destination) || this;
-            _this.bufferSize = bufferSize;
-            _this.buffer = [];
-            return _this;
-        }
-        BufferCountSubscriber.prototype._next = function (value) {
-            var buffer = this.buffer;
-            buffer.push(value);
-            if (buffer.length == this.bufferSize) {
-                this.destination.next(buffer);
-                this.buffer = [];
-            }
-        };
-        BufferCountSubscriber.prototype._complete = function () {
-            var buffer = this.buffer;
-            if (buffer.length > 0) {
-                this.destination.next(buffer);
-            }
-            _super.prototype._complete.call(this);
-        };
-        return BufferCountSubscriber;
-    }(Subscriber));
-    var BufferSkipCountSubscriber = (function (_super) {
-        __extends(BufferSkipCountSubscriber, _super);
-        function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {
-            var _this = _super.call(this, destination) || this;
-            _this.bufferSize = bufferSize;
-            _this.startBufferEvery = startBufferEvery;
-            _this.buffers = [];
-            _this.count = 0;
-            return _this;
-        }
-        BufferSkipCountSubscriber.prototype._next = function (value) {
-            var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;
-            this.count++;
-            if (count % startBufferEvery === 0) {
-                buffers.push([]);
-            }
-            for (var i = buffers.length; i--;) {
-                var buffer = buffers[i];
-                buffer.push(value);
-                if (buffer.length === bufferSize) {
-                    buffers.splice(i, 1);
-                    this.destination.next(buffer);
-                }
-            }
-        };
-        BufferSkipCountSubscriber.prototype._complete = function () {
-            var _a = this, buffers = _a.buffers, destination = _a.destination;
-            while (buffers.length > 0) {
-                var buffer = buffers.shift();
-                if (buffer.length > 0) {
-                    destination.next(buffer);
-                }
-            }
-            _super.prototype._complete.call(this);
-        };
-        return BufferSkipCountSubscriber;
-    }(Subscriber));
-
-    function bufferTime(bufferTimeSpan) {
-        var length = arguments.length;
-        var scheduler = async;
-        if (isScheduler(arguments[arguments.length - 1])) {
-            scheduler = arguments[arguments.length - 1];
-            length--;
-        }
-        var bufferCreationInterval = null;
-        if (length >= 2) {
-            bufferCreationInterval = arguments[1];
-        }
-        var maxBufferSize = Number.POSITIVE_INFINITY;
-        if (length >= 3) {
-            maxBufferSize = arguments[2];
-        }
-        return function bufferTimeOperatorFunction(source) {
-            return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
-        };
-    }
-    var BufferTimeOperator = (function () {
-        function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-            this.bufferTimeSpan = bufferTimeSpan;
-            this.bufferCreationInterval = bufferCreationInterval;
-            this.maxBufferSize = maxBufferSize;
-            this.scheduler = scheduler;
-        }
-        BufferTimeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));
-        };
-        return BufferTimeOperator;
-    }());
-    var Context = (function () {
-        function Context() {
-            this.buffer = [];
-        }
-        return Context;
-    }());
-    var BufferTimeSubscriber = (function (_super) {
-        __extends(BufferTimeSubscriber, _super);
-        function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.bufferTimeSpan = bufferTimeSpan;
-            _this.bufferCreationInterval = bufferCreationInterval;
-            _this.maxBufferSize = maxBufferSize;
-            _this.scheduler = scheduler;
-            _this.contexts = [];
-            var context = _this.openContext();
-            _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
-            if (_this.timespanOnly) {
-                var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };
-                _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-            }
-            else {
-                var closeState = { subscriber: _this, context: context };
-                var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };
-                _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));
-                _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));
-            }
-            return _this;
-        }
-        BufferTimeSubscriber.prototype._next = function (value) {
-            var contexts = this.contexts;
-            var len = contexts.length;
-            var filledBufferContext;
-            for (var i = 0; i < len; i++) {
-                var context_1 = contexts[i];
-                var buffer = context_1.buffer;
-                buffer.push(value);
-                if (buffer.length == this.maxBufferSize) {
-                    filledBufferContext = context_1;
-                }
-            }
-            if (filledBufferContext) {
-                this.onBufferFull(filledBufferContext);
-            }
-        };
-        BufferTimeSubscriber.prototype._error = function (err) {
-            this.contexts.length = 0;
-            _super.prototype._error.call(this, err);
-        };
-        BufferTimeSubscriber.prototype._complete = function () {
-            var _a = this, contexts = _a.contexts, destination = _a.destination;
-            while (contexts.length > 0) {
-                var context_2 = contexts.shift();
-                destination.next(context_2.buffer);
-            }
-            _super.prototype._complete.call(this);
-        };
-        BufferTimeSubscriber.prototype._unsubscribe = function () {
-            this.contexts = null;
-        };
-        BufferTimeSubscriber.prototype.onBufferFull = function (context) {
-            this.closeContext(context);
-            var closeAction = context.closeAction;
-            closeAction.unsubscribe();
-            this.remove(closeAction);
-            if (!this.closed && this.timespanOnly) {
-                context = this.openContext();
-                var bufferTimeSpan = this.bufferTimeSpan;
-                var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };
-                this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-            }
-        };
-        BufferTimeSubscriber.prototype.openContext = function () {
-            var context = new Context();
-            this.contexts.push(context);
-            return context;
-        };
-        BufferTimeSubscriber.prototype.closeContext = function (context) {
-            this.destination.next(context.buffer);
-            var contexts = this.contexts;
-            var spliceIndex = contexts ? contexts.indexOf(context) : -1;
-            if (spliceIndex >= 0) {
-                contexts.splice(contexts.indexOf(context), 1);
-            }
-        };
-        return BufferTimeSubscriber;
-    }(Subscriber));
-    function dispatchBufferTimeSpanOnly(state) {
-        var subscriber = state.subscriber;
-        var prevContext = state.context;
-        if (prevContext) {
-            subscriber.closeContext(prevContext);
-        }
-        if (!subscriber.closed) {
-            state.context = subscriber.openContext();
-            state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
-        }
-    }
-    function dispatchBufferCreation(state) {
-        var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;
-        var context = subscriber.openContext();
-        var action = this;
-        if (!subscriber.closed) {
-            subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));
-            action.schedule(state, bufferCreationInterval);
-        }
-    }
-    function dispatchBufferClose(arg) {
-        var subscriber = arg.subscriber, context = arg.context;
-        subscriber.closeContext(context);
-    }
-
-    function bufferToggle(openings, closingSelector) {
-        return function bufferToggleOperatorFunction(source) {
-            return source.lift(new BufferToggleOperator(openings, closingSelector));
-        };
-    }
-    var BufferToggleOperator = (function () {
-        function BufferToggleOperator(openings, closingSelector) {
-            this.openings = openings;
-            this.closingSelector = closingSelector;
-        }
-        BufferToggleOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
-        };
-        return BufferToggleOperator;
-    }());
-    var BufferToggleSubscriber = (function (_super) {
-        __extends(BufferToggleSubscriber, _super);
-        function BufferToggleSubscriber(destination, openings, closingSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.openings = openings;
-            _this.closingSelector = closingSelector;
-            _this.contexts = [];
-            _this.add(subscribeToResult(_this, openings));
-            return _this;
-        }
-        BufferToggleSubscriber.prototype._next = function (value) {
-            var contexts = this.contexts;
-            var len = contexts.length;
-            for (var i = 0; i < len; i++) {
-                contexts[i].buffer.push(value);
-            }
-        };
-        BufferToggleSubscriber.prototype._error = function (err) {
-            var contexts = this.contexts;
-            while (contexts.length > 0) {
-                var context_1 = contexts.shift();
-                context_1.subscription.unsubscribe();
-                context_1.buffer = null;
-                context_1.subscription = null;
-            }
-            this.contexts = null;
-            _super.prototype._error.call(this, err);
-        };
-        BufferToggleSubscriber.prototype._complete = function () {
-            var contexts = this.contexts;
-            while (contexts.length > 0) {
-                var context_2 = contexts.shift();
-                this.destination.next(context_2.buffer);
-                context_2.subscription.unsubscribe();
-                context_2.buffer = null;
-                context_2.subscription = null;
-            }
-            this.contexts = null;
-            _super.prototype._complete.call(this);
-        };
-        BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
-        };
-        BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {
-            this.closeBuffer(innerSub.context);
-        };
-        BufferToggleSubscriber.prototype.openBuffer = function (value) {
-            try {
-                var closingSelector = this.closingSelector;
-                var closingNotifier = closingSelector.call(this, value);
-                if (closingNotifier) {
-                    this.trySubscribe(closingNotifier);
-                }
-            }
-            catch (err) {
-                this._error(err);
-            }
-        };
-        BufferToggleSubscriber.prototype.closeBuffer = function (context) {
-            var contexts = this.contexts;
-            if (contexts && context) {
-                var buffer = context.buffer, subscription = context.subscription;
-                this.destination.next(buffer);
-                contexts.splice(contexts.indexOf(context), 1);
-                this.remove(subscription);
-                subscription.unsubscribe();
-            }
-        };
-        BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {
-            var contexts = this.contexts;
-            var buffer = [];
-            var subscription = new Subscription();
-            var context = { buffer: buffer, subscription: subscription };
-            contexts.push(context);
-            var innerSubscription = subscribeToResult(this, closingNotifier, context);
-            if (!innerSubscription || innerSubscription.closed) {
-                this.closeBuffer(context);
-            }
-            else {
-                innerSubscription.context = context;
-                this.add(innerSubscription);
-                subscription.add(innerSubscription);
-            }
-        };
-        return BufferToggleSubscriber;
-    }(OuterSubscriber));
-
-    function bufferWhen(closingSelector) {
-        return function (source) {
-            return source.lift(new BufferWhenOperator(closingSelector));
-        };
-    }
-    var BufferWhenOperator = (function () {
-        function BufferWhenOperator(closingSelector) {
-            this.closingSelector = closingSelector;
-        }
-        BufferWhenOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
-        };
-        return BufferWhenOperator;
-    }());
-    var BufferWhenSubscriber = (function (_super) {
-        __extends(BufferWhenSubscriber, _super);
-        function BufferWhenSubscriber(destination, closingSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.closingSelector = closingSelector;
-            _this.subscribing = false;
-            _this.openBuffer();
-            return _this;
-        }
-        BufferWhenSubscriber.prototype._next = function (value) {
-            this.buffer.push(value);
-        };
-        BufferWhenSubscriber.prototype._complete = function () {
-            var buffer = this.buffer;
-            if (buffer) {
-                this.destination.next(buffer);
-            }
-            _super.prototype._complete.call(this);
-        };
-        BufferWhenSubscriber.prototype._unsubscribe = function () {
-            this.buffer = null;
-            this.subscribing = false;
-        };
-        BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.openBuffer();
-        };
-        BufferWhenSubscriber.prototype.notifyComplete = function () {
-            if (this.subscribing) {
-                this.complete();
-            }
-            else {
-                this.openBuffer();
-            }
-        };
-        BufferWhenSubscriber.prototype.openBuffer = function () {
-            var closingSubscription = this.closingSubscription;
-            if (closingSubscription) {
-                this.remove(closingSubscription);
-                closingSubscription.unsubscribe();
-            }
-            var buffer = this.buffer;
-            if (this.buffer) {
-                this.destination.next(buffer);
-            }
-            this.buffer = [];
-            var closingNotifier;
-            try {
-                var closingSelector = this.closingSelector;
-                closingNotifier = closingSelector();
-            }
-            catch (err) {
-                return this.error(err);
-            }
-            closingSubscription = new Subscription();
-            this.closingSubscription = closingSubscription;
-            this.add(closingSubscription);
-            this.subscribing = true;
-            closingSubscription.add(subscribeToResult(this, closingNotifier));
-            this.subscribing = false;
-        };
-        return BufferWhenSubscriber;
-    }(OuterSubscriber));
-
-    function catchError(selector) {
-        return function catchErrorOperatorFunction(source) {
-            var operator = new CatchOperator(selector);
-            var caught = source.lift(operator);
-            return (operator.caught = caught);
-        };
-    }
-    var CatchOperator = (function () {
-        function CatchOperator(selector) {
-            this.selector = selector;
-        }
-        CatchOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
-        };
-        return CatchOperator;
-    }());
-    var CatchSubscriber = (function (_super) {
-        __extends(CatchSubscriber, _super);
-        function CatchSubscriber(destination, selector, caught) {
-            var _this = _super.call(this, destination) || this;
-            _this.selector = selector;
-            _this.caught = caught;
-            return _this;
-        }
-        CatchSubscriber.prototype.error = function (err) {
-            if (!this.isStopped) {
-                var result = void 0;
-                try {
-                    result = this.selector(err, this.caught);
-                }
-                catch (err2) {
-                    _super.prototype.error.call(this, err2);
-                    return;
-                }
-                this._unsubscribeAndRecycle();
-                var innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-                this.add(innerSubscriber);
-                var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-                if (innerSubscription !== innerSubscriber) {
-                    this.add(innerSubscription);
-                }
-            }
-        };
-        return CatchSubscriber;
-    }(OuterSubscriber));
-
-    function combineAll(project) {
-        return function (source) { return source.lift(new CombineLatestOperator(project)); };
-    }
-
-    function combineLatest$1() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        var project = null;
-        if (typeof observables[observables.length - 1] === 'function') {
-            project = observables.pop();
-        }
-        if (observables.length === 1 && isArray(observables[0])) {
-            observables = observables[0].slice();
-        }
-        return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };
-    }
-
-    function concat$1() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        return function (source) { return source.lift.call(concat.apply(void 0, [source].concat(observables))); };
-    }
-
-    function concatMap(project, resultSelector) {
-        return mergeMap(project, resultSelector, 1);
-    }
-
-    function concatMapTo(innerObservable, resultSelector) {
-        return concatMap(function () { return innerObservable; }, resultSelector);
-    }
-
-    function count(predicate) {
-        return function (source) { return source.lift(new CountOperator(predicate, source)); };
-    }
-    var CountOperator = (function () {
-        function CountOperator(predicate, source) {
-            this.predicate = predicate;
-            this.source = source;
-        }
-        CountOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
-        };
-        return CountOperator;
-    }());
-    var CountSubscriber = (function (_super) {
-        __extends(CountSubscriber, _super);
-        function CountSubscriber(destination, predicate, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.source = source;
-            _this.count = 0;
-            _this.index = 0;
-            return _this;
-        }
-        CountSubscriber.prototype._next = function (value) {
-            if (this.predicate) {
-                this._tryPredicate(value);
-            }
-            else {
-                this.count++;
-            }
-        };
-        CountSubscriber.prototype._tryPredicate = function (value) {
-            var result;
-            try {
-                result = this.predicate(value, this.index++, this.source);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            if (result) {
-                this.count++;
-            }
-        };
-        CountSubscriber.prototype._complete = function () {
-            this.destination.next(this.count);
-            this.destination.complete();
-        };
-        return CountSubscriber;
-    }(Subscriber));
-
-    function debounce(durationSelector) {
-        return function (source) { return source.lift(new DebounceOperator(durationSelector)); };
-    }
-    var DebounceOperator = (function () {
-        function DebounceOperator(durationSelector) {
-            this.durationSelector = durationSelector;
-        }
-        DebounceOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
-        };
-        return DebounceOperator;
-    }());
-    var DebounceSubscriber = (function (_super) {
-        __extends(DebounceSubscriber, _super);
-        function DebounceSubscriber(destination, durationSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.durationSelector = durationSelector;
-            _this.hasValue = false;
-            _this.durationSubscription = null;
-            return _this;
-        }
-        DebounceSubscriber.prototype._next = function (value) {
-            try {
-                var result = this.durationSelector.call(this, value);
-                if (result) {
-                    this._tryNext(value, result);
-                }
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-        };
-        DebounceSubscriber.prototype._complete = function () {
-            this.emitValue();
-            this.destination.complete();
-        };
-        DebounceSubscriber.prototype._tryNext = function (value, duration) {
-            var subscription = this.durationSubscription;
-            this.value = value;
-            this.hasValue = true;
-            if (subscription) {
-                subscription.unsubscribe();
-                this.remove(subscription);
-            }
-            subscription = subscribeToResult(this, duration);
-            if (subscription && !subscription.closed) {
-                this.add(this.durationSubscription = subscription);
-            }
-        };
-        DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.emitValue();
-        };
-        DebounceSubscriber.prototype.notifyComplete = function () {
-            this.emitValue();
-        };
-        DebounceSubscriber.prototype.emitValue = function () {
-            if (this.hasValue) {
-                var value = this.value;
-                var subscription = this.durationSubscription;
-                if (subscription) {
-                    this.durationSubscription = null;
-                    subscription.unsubscribe();
-                    this.remove(subscription);
-                }
-                this.value = null;
-                this.hasValue = false;
-                _super.prototype._next.call(this, value);
-            }
-        };
-        return DebounceSubscriber;
-    }(OuterSubscriber));
-
-    function debounceTime(dueTime, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };
-    }
-    var DebounceTimeOperator = (function () {
-        function DebounceTimeOperator(dueTime, scheduler) {
-            this.dueTime = dueTime;
-            this.scheduler = scheduler;
-        }
-        DebounceTimeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
-        };
-        return DebounceTimeOperator;
-    }());
-    var DebounceTimeSubscriber = (function (_super) {
-        __extends(DebounceTimeSubscriber, _super);
-        function DebounceTimeSubscriber(destination, dueTime, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.dueTime = dueTime;
-            _this.scheduler = scheduler;
-            _this.debouncedSubscription = null;
-            _this.lastValue = null;
-            _this.hasValue = false;
-            return _this;
-        }
-        DebounceTimeSubscriber.prototype._next = function (value) {
-            this.clearDebounce();
-            this.lastValue = value;
-            this.hasValue = true;
-            this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext$2, this.dueTime, this));
-        };
-        DebounceTimeSubscriber.prototype._complete = function () {
-            this.debouncedNext();
-            this.destination.complete();
-        };
-        DebounceTimeSubscriber.prototype.debouncedNext = function () {
-            this.clearDebounce();
-            if (this.hasValue) {
-                var lastValue = this.lastValue;
-                this.lastValue = null;
-                this.hasValue = false;
-                this.destination.next(lastValue);
-            }
-        };
-        DebounceTimeSubscriber.prototype.clearDebounce = function () {
-            var debouncedSubscription = this.debouncedSubscription;
-            if (debouncedSubscription !== null) {
-                this.remove(debouncedSubscription);
-                debouncedSubscription.unsubscribe();
-                this.debouncedSubscription = null;
-            }
-        };
-        return DebounceTimeSubscriber;
-    }(Subscriber));
-    function dispatchNext$2(subscriber) {
-        subscriber.debouncedNext();
-    }
-
-    function defaultIfEmpty(defaultValue) {
-        if (defaultValue === void 0) { defaultValue = null; }
-        return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };
-    }
-    var DefaultIfEmptyOperator = (function () {
-        function DefaultIfEmptyOperator(defaultValue) {
-            this.defaultValue = defaultValue;
-        }
-        DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
-        };
-        return DefaultIfEmptyOperator;
-    }());
-    var DefaultIfEmptySubscriber = (function (_super) {
-        __extends(DefaultIfEmptySubscriber, _super);
-        function DefaultIfEmptySubscriber(destination, defaultValue) {
-            var _this = _super.call(this, destination) || this;
-            _this.defaultValue = defaultValue;
-            _this.isEmpty = true;
-            return _this;
-        }
-        DefaultIfEmptySubscriber.prototype._next = function (value) {
-            this.isEmpty = false;
-            this.destination.next(value);
-        };
-        DefaultIfEmptySubscriber.prototype._complete = function () {
-            if (this.isEmpty) {
-                this.destination.next(this.defaultValue);
-            }
-            this.destination.complete();
-        };
-        return DefaultIfEmptySubscriber;
-    }(Subscriber));
-
-    function isDate(value) {
-        return value instanceof Date && !isNaN(+value);
-    }
-
-    function delay(delay, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        var absoluteDelay = isDate(delay);
-        var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);
-        return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };
-    }
-    var DelayOperator = (function () {
-        function DelayOperator(delay, scheduler) {
-            this.delay = delay;
-            this.scheduler = scheduler;
-        }
-        DelayOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
-        };
-        return DelayOperator;
-    }());
-    var DelaySubscriber = (function (_super) {
-        __extends(DelaySubscriber, _super);
-        function DelaySubscriber(destination, delay, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.delay = delay;
-            _this.scheduler = scheduler;
-            _this.queue = [];
-            _this.active = false;
-            _this.errored = false;
-            return _this;
-        }
-        DelaySubscriber.dispatch = function (state) {
-            var source = state.source;
-            var queue = source.queue;
-            var scheduler = state.scheduler;
-            var destination = state.destination;
-            while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
-                queue.shift().notification.observe(destination);
-            }
-            if (queue.length > 0) {
-                var delay_1 = Math.max(0, queue[0].time - scheduler.now());
-                this.schedule(state, delay_1);
-            }
-            else {
-                this.unsubscribe();
-                source.active = false;
-            }
-        };
-        DelaySubscriber.prototype._schedule = function (scheduler) {
-            this.active = true;
-            var destination = this.destination;
-            destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {
-                source: this, destination: this.destination, scheduler: scheduler
-            }));
-        };
-        DelaySubscriber.prototype.scheduleNotification = function (notification) {
-            if (this.errored === true) {
-                return;
-            }
-            var scheduler = this.scheduler;
-            var message = new DelayMessage(scheduler.now() + this.delay, notification);
-            this.queue.push(message);
-            if (this.active === false) {
-                this._schedule(scheduler);
-            }
-        };
-        DelaySubscriber.prototype._next = function (value) {
-            this.scheduleNotification(Notification.createNext(value));
-        };
-        DelaySubscriber.prototype._error = function (err) {
-            this.errored = true;
-            this.queue = [];
-            this.destination.error(err);
-            this.unsubscribe();
-        };
-        DelaySubscriber.prototype._complete = function () {
-            this.scheduleNotification(Notification.createComplete());
-            this.unsubscribe();
-        };
-        return DelaySubscriber;
-    }(Subscriber));
-    var DelayMessage = (function () {
-        function DelayMessage(time, notification) {
-            this.time = time;
-            this.notification = notification;
-        }
-        return DelayMessage;
-    }());
-
-    function delayWhen(delayDurationSelector, subscriptionDelay) {
-        if (subscriptionDelay) {
-            return function (source) {
-                return new SubscriptionDelayObservable(source, subscriptionDelay)
-                    .lift(new DelayWhenOperator(delayDurationSelector));
-            };
-        }
-        return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };
-    }
-    var DelayWhenOperator = (function () {
-        function DelayWhenOperator(delayDurationSelector) {
-            this.delayDurationSelector = delayDurationSelector;
-        }
-        DelayWhenOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
-        };
-        return DelayWhenOperator;
-    }());
-    var DelayWhenSubscriber = (function (_super) {
-        __extends(DelayWhenSubscriber, _super);
-        function DelayWhenSubscriber(destination, delayDurationSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.delayDurationSelector = delayDurationSelector;
-            _this.completed = false;
-            _this.delayNotifierSubscriptions = [];
-            _this.index = 0;
-            return _this;
-        }
-        DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.destination.next(outerValue);
-            this.removeSubscription(innerSub);
-            this.tryComplete();
-        };
-        DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {
-            this._error(error);
-        };
-        DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-            var value = this.removeSubscription(innerSub);
-            if (value) {
-                this.destination.next(value);
-            }
-            this.tryComplete();
-        };
-        DelayWhenSubscriber.prototype._next = function (value) {
-            var index = this.index++;
-            try {
-                var delayNotifier = this.delayDurationSelector(value, index);
-                if (delayNotifier) {
-                    this.tryDelay(delayNotifier, value);
-                }
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-        };
-        DelayWhenSubscriber.prototype._complete = function () {
-            this.completed = true;
-            this.tryComplete();
-            this.unsubscribe();
-        };
-        DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {
-            subscription.unsubscribe();
-            var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
-            if (subscriptionIdx !== -1) {
-                this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
-            }
-            return subscription.outerValue;
-        };
-        DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {
-            var notifierSubscription = subscribeToResult(this, delayNotifier, value);
-            if (notifierSubscription && !notifierSubscription.closed) {
-                var destination = this.destination;
-                destination.add(notifierSubscription);
-                this.delayNotifierSubscriptions.push(notifierSubscription);
-            }
-        };
-        DelayWhenSubscriber.prototype.tryComplete = function () {
-            if (this.completed && this.delayNotifierSubscriptions.length === 0) {
-                this.destination.complete();
-            }
-        };
-        return DelayWhenSubscriber;
-    }(OuterSubscriber));
-    var SubscriptionDelayObservable = (function (_super) {
-        __extends(SubscriptionDelayObservable, _super);
-        function SubscriptionDelayObservable(source, subscriptionDelay) {
-            var _this = _super.call(this) || this;
-            _this.source = source;
-            _this.subscriptionDelay = subscriptionDelay;
-            return _this;
-        }
-        SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {
-            this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
-        };
-        return SubscriptionDelayObservable;
-    }(Observable));
-    var SubscriptionDelaySubscriber = (function (_super) {
-        __extends(SubscriptionDelaySubscriber, _super);
-        function SubscriptionDelaySubscriber(parent, source) {
-            var _this = _super.call(this) || this;
-            _this.parent = parent;
-            _this.source = source;
-            _this.sourceSubscribed = false;
-            return _this;
-        }
-        SubscriptionDelaySubscriber.prototype._next = function (unused) {
-            this.subscribeToSource();
-        };
-        SubscriptionDelaySubscriber.prototype._error = function (err) {
-            this.unsubscribe();
-            this.parent.error(err);
-        };
-        SubscriptionDelaySubscriber.prototype._complete = function () {
-            this.unsubscribe();
-            this.subscribeToSource();
-        };
-        SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {
-            if (!this.sourceSubscribed) {
-                this.sourceSubscribed = true;
-                this.unsubscribe();
-                this.source.subscribe(this.parent);
-            }
-        };
-        return SubscriptionDelaySubscriber;
-    }(Subscriber));
-
-    function dematerialize() {
-        return function dematerializeOperatorFunction(source) {
-            return source.lift(new DeMaterializeOperator());
-        };
-    }
-    var DeMaterializeOperator = (function () {
-        function DeMaterializeOperator() {
-        }
-        DeMaterializeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DeMaterializeSubscriber(subscriber));
-        };
-        return DeMaterializeOperator;
-    }());
-    var DeMaterializeSubscriber = (function (_super) {
-        __extends(DeMaterializeSubscriber, _super);
-        function DeMaterializeSubscriber(destination) {
-            return _super.call(this, destination) || this;
-        }
-        DeMaterializeSubscriber.prototype._next = function (value) {
-            value.observe(this.destination);
-        };
-        return DeMaterializeSubscriber;
-    }(Subscriber));
-
-    function distinct(keySelector, flushes) {
-        return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };
-    }
-    var DistinctOperator = (function () {
-        function DistinctOperator(keySelector, flushes) {
-            this.keySelector = keySelector;
-            this.flushes = flushes;
-        }
-        DistinctOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
-        };
-        return DistinctOperator;
-    }());
-    var DistinctSubscriber = (function (_super) {
-        __extends(DistinctSubscriber, _super);
-        function DistinctSubscriber(destination, keySelector, flushes) {
-            var _this = _super.call(this, destination) || this;
-            _this.keySelector = keySelector;
-            _this.values = new Set();
-            if (flushes) {
-                _this.add(subscribeToResult(_this, flushes));
-            }
-            return _this;
-        }
-        DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.values.clear();
-        };
-        DistinctSubscriber.prototype.notifyError = function (error, innerSub) {
-            this._error(error);
-        };
-        DistinctSubscriber.prototype._next = function (value) {
-            if (this.keySelector) {
-                this._useKeySelector(value);
-            }
-            else {
-                this._finalizeNext(value, value);
-            }
-        };
-        DistinctSubscriber.prototype._useKeySelector = function (value) {
-            var key;
-            var destination = this.destination;
-            try {
-                key = this.keySelector(value);
-            }
-            catch (err) {
-                destination.error(err);
-                return;
-            }
-            this._finalizeNext(key, value);
-        };
-        DistinctSubscriber.prototype._finalizeNext = function (key, value) {
-            var values = this.values;
-            if (!values.has(key)) {
-                values.add(key);
-                this.destination.next(value);
-            }
-        };
-        return DistinctSubscriber;
-    }(OuterSubscriber));
-
-    function distinctUntilChanged(compare, keySelector) {
-        return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };
-    }
-    var DistinctUntilChangedOperator = (function () {
-        function DistinctUntilChangedOperator(compare, keySelector) {
-            this.compare = compare;
-            this.keySelector = keySelector;
-        }
-        DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
-        };
-        return DistinctUntilChangedOperator;
-    }());
-    var DistinctUntilChangedSubscriber = (function (_super) {
-        __extends(DistinctUntilChangedSubscriber, _super);
-        function DistinctUntilChangedSubscriber(destination, compare, keySelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.keySelector = keySelector;
-            _this.hasKey = false;
-            if (typeof compare === 'function') {
-                _this.compare = compare;
-            }
-            return _this;
-        }
-        DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {
-            return x === y;
-        };
-        DistinctUntilChangedSubscriber.prototype._next = function (value) {
-            var key;
-            try {
-                var keySelector = this.keySelector;
-                key = keySelector ? keySelector(value) : value;
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-            var result = false;
-            if (this.hasKey) {
-                try {
-                    var compare = this.compare;
-                    result = compare(this.key, key);
-                }
-                catch (err) {
-                    return this.destination.error(err);
-                }
-            }
-            else {
-                this.hasKey = true;
-            }
-            if (!result) {
-                this.key = key;
-                this.destination.next(value);
-            }
-        };
-        return DistinctUntilChangedSubscriber;
-    }(Subscriber));
-
-    function distinctUntilKeyChanged(key, compare) {
-        return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
-    }
-
-    function throwIfEmpty(errorFactory) {
-        if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }
-        return function (source) {
-            return source.lift(new ThrowIfEmptyOperator(errorFactory));
-        };
-    }
-    var ThrowIfEmptyOperator = (function () {
-        function ThrowIfEmptyOperator(errorFactory) {
-            this.errorFactory = errorFactory;
-        }
-        ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
-        };
-        return ThrowIfEmptyOperator;
-    }());
-    var ThrowIfEmptySubscriber = (function (_super) {
-        __extends(ThrowIfEmptySubscriber, _super);
-        function ThrowIfEmptySubscriber(destination, errorFactory) {
-            var _this = _super.call(this, destination) || this;
-            _this.errorFactory = errorFactory;
-            _this.hasValue = false;
-            return _this;
-        }
-        ThrowIfEmptySubscriber.prototype._next = function (value) {
-            this.hasValue = true;
-            this.destination.next(value);
-        };
-        ThrowIfEmptySubscriber.prototype._complete = function () {
-            if (!this.hasValue) {
-                var err = void 0;
-                try {
-                    err = this.errorFactory();
-                }
-                catch (e) {
-                    err = e;
-                }
-                this.destination.error(err);
-            }
-            else {
-                return this.destination.complete();
-            }
-        };
-        return ThrowIfEmptySubscriber;
-    }(Subscriber));
-    function defaultErrorFactory() {
-        return new EmptyError();
-    }
-
-    function take(count) {
-        return function (source) {
-            if (count === 0) {
-                return empty$1();
-            }
-            else {
-                return source.lift(new TakeOperator(count));
-            }
-        };
-    }
-    var TakeOperator = (function () {
-        function TakeOperator(total) {
-            this.total = total;
-            if (this.total < 0) {
-                throw new ArgumentOutOfRangeError;
-            }
-        }
-        TakeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new TakeSubscriber(subscriber, this.total));
-        };
-        return TakeOperator;
-    }());
-    var TakeSubscriber = (function (_super) {
-        __extends(TakeSubscriber, _super);
-        function TakeSubscriber(destination, total) {
-            var _this = _super.call(this, destination) || this;
-            _this.total = total;
-            _this.count = 0;
-            return _this;
-        }
-        TakeSubscriber.prototype._next = function (value) {
-            var total = this.total;
-            var count = ++this.count;
-            if (count <= total) {
-                this.destination.next(value);
-                if (count === total) {
-                    this.destination.complete();
-                    this.unsubscribe();
-                }
-            }
-        };
-        return TakeSubscriber;
-    }(Subscriber));
-
-    function elementAt(index, defaultValue) {
-        if (index < 0) {
-            throw new ArgumentOutOfRangeError();
-        }
-        var hasDefaultValue = arguments.length >= 2;
-        return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue
-            ? defaultIfEmpty(defaultValue)
-            : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };
-    }
-
-    function endWith() {
-        var array = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            array[_i] = arguments[_i];
-        }
-        return function (source) { return concat(source, of.apply(void 0, array)); };
-    }
-
-    function every(predicate, thisArg) {
-        return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };
-    }
-    var EveryOperator = (function () {
-        function EveryOperator(predicate, thisArg, source) {
-            this.predicate = predicate;
-            this.thisArg = thisArg;
-            this.source = source;
-        }
-        EveryOperator.prototype.call = function (observer, source) {
-            return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
-        };
-        return EveryOperator;
-    }());
-    var EverySubscriber = (function (_super) {
-        __extends(EverySubscriber, _super);
-        function EverySubscriber(destination, predicate, thisArg, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.thisArg = thisArg;
-            _this.source = source;
-            _this.index = 0;
-            _this.thisArg = thisArg || _this;
-            return _this;
-        }
-        EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {
-            this.destination.next(everyValueMatch);
-            this.destination.complete();
-        };
-        EverySubscriber.prototype._next = function (value) {
-            var result = false;
-            try {
-                result = this.predicate.call(this.thisArg, value, this.index++, this.source);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            if (!result) {
-                this.notifyComplete(false);
-            }
-        };
-        EverySubscriber.prototype._complete = function () {
-            this.notifyComplete(true);
-        };
-        return EverySubscriber;
-    }(Subscriber));
-
-    function exhaust() {
-        return function (source) { return source.lift(new SwitchFirstOperator()); };
-    }
-    var SwitchFirstOperator = (function () {
-        function SwitchFirstOperator() {
-        }
-        SwitchFirstOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SwitchFirstSubscriber(subscriber));
-        };
-        return SwitchFirstOperator;
-    }());
-    var SwitchFirstSubscriber = (function (_super) {
-        __extends(SwitchFirstSubscriber, _super);
-        function SwitchFirstSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.hasCompleted = false;
-            _this.hasSubscription = false;
-            return _this;
-        }
-        SwitchFirstSubscriber.prototype._next = function (value) {
-            if (!this.hasSubscription) {
-                this.hasSubscription = true;
-                this.add(subscribeToResult(this, value));
-            }
-        };
-        SwitchFirstSubscriber.prototype._complete = function () {
-            this.hasCompleted = true;
-            if (!this.hasSubscription) {
-                this.destination.complete();
-            }
-        };
-        SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {
-            this.remove(innerSub);
-            this.hasSubscription = false;
-            if (this.hasCompleted) {
-                this.destination.complete();
-            }
-        };
-        return SwitchFirstSubscriber;
-    }(OuterSubscriber));
-
-    function exhaustMap(project, resultSelector) {
-        if (resultSelector) {
-            return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-        }
-        return function (source) {
-            return source.lift(new ExhaustMapOperator(project));
-        };
-    }
-    var ExhaustMapOperator = (function () {
-        function ExhaustMapOperator(project) {
-            this.project = project;
-        }
-        ExhaustMapOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
-        };
-        return ExhaustMapOperator;
-    }());
-    var ExhaustMapSubscriber = (function (_super) {
-        __extends(ExhaustMapSubscriber, _super);
-        function ExhaustMapSubscriber(destination, project) {
-            var _this = _super.call(this, destination) || this;
-            _this.project = project;
-            _this.hasSubscription = false;
-            _this.hasCompleted = false;
-            _this.index = 0;
-            return _this;
-        }
-        ExhaustMapSubscriber.prototype._next = function (value) {
-            if (!this.hasSubscription) {
-                this.tryNext(value);
-            }
-        };
-        ExhaustMapSubscriber.prototype.tryNext = function (value) {
-            var result;
-            var index = this.index++;
-            try {
-                result = this.project(value, index);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.hasSubscription = true;
-            this._innerSub(result, value, index);
-        };
-        ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {
-            var innerSubscriber = new InnerSubscriber(this, value, index);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        };
-        ExhaustMapSubscriber.prototype._complete = function () {
-            this.hasCompleted = true;
-            if (!this.hasSubscription) {
-                this.destination.complete();
-            }
-            this.unsubscribe();
-        };
-        ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.destination.next(innerValue);
-        };
-        ExhaustMapSubscriber.prototype.notifyError = function (err) {
-            this.destination.error(err);
-        };
-        ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {
-            var destination = this.destination;
-            destination.remove(innerSub);
-            this.hasSubscription = false;
-            if (this.hasCompleted) {
-                this.destination.complete();
-            }
-        };
-        return ExhaustMapSubscriber;
-    }(OuterSubscriber));
-
-    function expand(project, concurrent, scheduler) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        if (scheduler === void 0) { scheduler = undefined; }
-        concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
-        return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };
-    }
-    var ExpandOperator = (function () {
-        function ExpandOperator(project, concurrent, scheduler) {
-            this.project = project;
-            this.concurrent = concurrent;
-            this.scheduler = scheduler;
-        }
-        ExpandOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
-        };
-        return ExpandOperator;
-    }());
-    var ExpandSubscriber = (function (_super) {
-        __extends(ExpandSubscriber, _super);
-        function ExpandSubscriber(destination, project, concurrent, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.project = project;
-            _this.concurrent = concurrent;
-            _this.scheduler = scheduler;
-            _this.index = 0;
-            _this.active = 0;
-            _this.hasCompleted = false;
-            if (concurrent < Number.POSITIVE_INFINITY) {
-                _this.buffer = [];
-            }
-            return _this;
-        }
-        ExpandSubscriber.dispatch = function (arg) {
-            var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;
-            subscriber.subscribeToProjection(result, value, index);
-        };
-        ExpandSubscriber.prototype._next = function (value) {
-            var destination = this.destination;
-            if (destination.closed) {
-                this._complete();
-                return;
-            }
-            var index = this.index++;
-            if (this.active < this.concurrent) {
-                destination.next(value);
-                try {
-                    var project = this.project;
-                    var result = project(value, index);
-                    if (!this.scheduler) {
-                        this.subscribeToProjection(result, value, index);
-                    }
-                    else {
-                        var state = { subscriber: this, result: result, value: value, index: index };
-                        var destination_1 = this.destination;
-                        destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));
-                    }
-                }
-                catch (e) {
-                    destination.error(e);
-                }
-            }
-            else {
-                this.buffer.push(value);
-            }
-        };
-        ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {
-            this.active++;
-            var destination = this.destination;
-            destination.add(subscribeToResult(this, result, value, index));
-        };
-        ExpandSubscriber.prototype._complete = function () {
-            this.hasCompleted = true;
-            if (this.hasCompleted && this.active === 0) {
-                this.destination.complete();
-            }
-            this.unsubscribe();
-        };
-        ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this._next(innerValue);
-        };
-        ExpandSubscriber.prototype.notifyComplete = function (innerSub) {
-            var buffer = this.buffer;
-            var destination = this.destination;
-            destination.remove(innerSub);
-            this.active--;
-            if (buffer && buffer.length > 0) {
-                this._next(buffer.shift());
-            }
-            if (this.hasCompleted && this.active === 0) {
-                this.destination.complete();
-            }
-        };
-        return ExpandSubscriber;
-    }(OuterSubscriber));
-
-    function finalize(callback) {
-        return function (source) { return source.lift(new FinallyOperator(callback)); };
-    }
-    var FinallyOperator = (function () {
-        function FinallyOperator(callback) {
-            this.callback = callback;
-        }
-        FinallyOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new FinallySubscriber(subscriber, this.callback));
-        };
-        return FinallyOperator;
-    }());
-    var FinallySubscriber = (function (_super) {
-        __extends(FinallySubscriber, _super);
-        function FinallySubscriber(destination, callback) {
-            var _this = _super.call(this, destination) || this;
-            _this.add(new Subscription(callback));
-            return _this;
-        }
-        return FinallySubscriber;
-    }(Subscriber));
-
-    function find(predicate, thisArg) {
-        if (typeof predicate !== 'function') {
-            throw new TypeError('predicate is not a function');
-        }
-        return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };
-    }
-    var FindValueOperator = (function () {
-        function FindValueOperator(predicate, source, yieldIndex, thisArg) {
-            this.predicate = predicate;
-            this.source = source;
-            this.yieldIndex = yieldIndex;
-            this.thisArg = thisArg;
-        }
-        FindValueOperator.prototype.call = function (observer, source) {
-            return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
-        };
-        return FindValueOperator;
-    }());
-    var FindValueSubscriber = (function (_super) {
-        __extends(FindValueSubscriber, _super);
-        function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.source = source;
-            _this.yieldIndex = yieldIndex;
-            _this.thisArg = thisArg;
-            _this.index = 0;
-            return _this;
-        }
-        FindValueSubscriber.prototype.notifyComplete = function (value) {
-            var destination = this.destination;
-            destination.next(value);
-            destination.complete();
-            this.unsubscribe();
-        };
-        FindValueSubscriber.prototype._next = function (value) {
-            var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;
-            var index = this.index++;
-            try {
-                var result = predicate.call(thisArg || this, value, index, this.source);
-                if (result) {
-                    this.notifyComplete(this.yieldIndex ? index : value);
-                }
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-        };
-        FindValueSubscriber.prototype._complete = function () {
-            this.notifyComplete(this.yieldIndex ? -1 : undefined);
-        };
-        return FindValueSubscriber;
-    }(Subscriber));
-
-    function findIndex(predicate, thisArg) {
-        return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };
-    }
-
-    function first(predicate, defaultValue) {
-        var hasDefaultValue = arguments.length >= 2;
-        return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };
-    }
-
-    function ignoreElements() {
-        return function ignoreElementsOperatorFunction(source) {
-            return source.lift(new IgnoreElementsOperator());
-        };
-    }
-    var IgnoreElementsOperator = (function () {
-        function IgnoreElementsOperator() {
-        }
-        IgnoreElementsOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new IgnoreElementsSubscriber(subscriber));
-        };
-        return IgnoreElementsOperator;
-    }());
-    var IgnoreElementsSubscriber = (function (_super) {
-        __extends(IgnoreElementsSubscriber, _super);
-        function IgnoreElementsSubscriber() {
-            return _super !== null && _super.apply(this, arguments) || this;
-        }
-        IgnoreElementsSubscriber.prototype._next = function (unused) {
-        };
-        return IgnoreElementsSubscriber;
-    }(Subscriber));
-
-    function isEmpty() {
-        return function (source) { return source.lift(new IsEmptyOperator()); };
-    }
-    var IsEmptyOperator = (function () {
-        function IsEmptyOperator() {
-        }
-        IsEmptyOperator.prototype.call = function (observer, source) {
-            return source.subscribe(new IsEmptySubscriber(observer));
-        };
-        return IsEmptyOperator;
-    }());
-    var IsEmptySubscriber = (function (_super) {
-        __extends(IsEmptySubscriber, _super);
-        function IsEmptySubscriber(destination) {
-            return _super.call(this, destination) || this;
-        }
-        IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {
-            var destination = this.destination;
-            destination.next(isEmpty);
-            destination.complete();
-        };
-        IsEmptySubscriber.prototype._next = function (value) {
-            this.notifyComplete(false);
-        };
-        IsEmptySubscriber.prototype._complete = function () {
-            this.notifyComplete(true);
-        };
-        return IsEmptySubscriber;
-    }(Subscriber));
-
-    function takeLast(count) {
-        return function takeLastOperatorFunction(source) {
-            if (count === 0) {
-                return empty$1();
-            }
-            else {
-                return source.lift(new TakeLastOperator(count));
-            }
-        };
-    }
-    var TakeLastOperator = (function () {
-        function TakeLastOperator(total) {
-            this.total = total;
-            if (this.total < 0) {
-                throw new ArgumentOutOfRangeError;
-            }
-        }
-        TakeLastOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
-        };
-        return TakeLastOperator;
-    }());
-    var TakeLastSubscriber = (function (_super) {
-        __extends(TakeLastSubscriber, _super);
-        function TakeLastSubscriber(destination, total) {
-            var _this = _super.call(this, destination) || this;
-            _this.total = total;
-            _this.ring = new Array();
-            _this.count = 0;
-            return _this;
-        }
-        TakeLastSubscriber.prototype._next = function (value) {
-            var ring = this.ring;
-            var total = this.total;
-            var count = this.count++;
-            if (ring.length < total) {
-                ring.push(value);
-            }
-            else {
-                var index = count % total;
-                ring[index] = value;
-            }
-        };
-        TakeLastSubscriber.prototype._complete = function () {
-            var destination = this.destination;
-            var count = this.count;
-            if (count > 0) {
-                var total = this.count >= this.total ? this.total : this.count;
-                var ring = this.ring;
-                for (var i = 0; i < total; i++) {
-                    var idx = (count++) % total;
-                    destination.next(ring[idx]);
-                }
-            }
-            destination.complete();
-        };
-        return TakeLastSubscriber;
-    }(Subscriber));
-
-    function last(predicate, defaultValue) {
-        var hasDefaultValue = arguments.length >= 2;
-        return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };
-    }
-
-    function mapTo(value) {
-        return function (source) { return source.lift(new MapToOperator(value)); };
-    }
-    var MapToOperator = (function () {
-        function MapToOperator(value) {
-            this.value = value;
-        }
-        MapToOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new MapToSubscriber(subscriber, this.value));
-        };
-        return MapToOperator;
-    }());
-    var MapToSubscriber = (function (_super) {
-        __extends(MapToSubscriber, _super);
-        function MapToSubscriber(destination, value) {
-            var _this = _super.call(this, destination) || this;
-            _this.value = value;
-            return _this;
-        }
-        MapToSubscriber.prototype._next = function (x) {
-            this.destination.next(this.value);
-        };
-        return MapToSubscriber;
-    }(Subscriber));
-
-    function materialize() {
-        return function materializeOperatorFunction(source) {
-            return source.lift(new MaterializeOperator());
-        };
-    }
-    var MaterializeOperator = (function () {
-        function MaterializeOperator() {
-        }
-        MaterializeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new MaterializeSubscriber(subscriber));
-        };
-        return MaterializeOperator;
-    }());
-    var MaterializeSubscriber = (function (_super) {
-        __extends(MaterializeSubscriber, _super);
-        function MaterializeSubscriber(destination) {
-            return _super.call(this, destination) || this;
-        }
-        MaterializeSubscriber.prototype._next = function (value) {
-            this.destination.next(Notification.createNext(value));
-        };
-        MaterializeSubscriber.prototype._error = function (err) {
-            var destination = this.destination;
-            destination.next(Notification.createError(err));
-            destination.complete();
-        };
-        MaterializeSubscriber.prototype._complete = function () {
-            var destination = this.destination;
-            destination.next(Notification.createComplete());
-            destination.complete();
-        };
-        return MaterializeSubscriber;
-    }(Subscriber));
-
-    function scan(accumulator, seed) {
-        var hasSeed = false;
-        if (arguments.length >= 2) {
-            hasSeed = true;
-        }
-        return function scanOperatorFunction(source) {
-            return source.lift(new ScanOperator(accumulator, seed, hasSeed));
-        };
-    }
-    var ScanOperator = (function () {
-        function ScanOperator(accumulator, seed, hasSeed) {
-            if (hasSeed === void 0) { hasSeed = false; }
-            this.accumulator = accumulator;
-            this.seed = seed;
-            this.hasSeed = hasSeed;
-        }
-        ScanOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
-        };
-        return ScanOperator;
-    }());
-    var ScanSubscriber = (function (_super) {
-        __extends(ScanSubscriber, _super);
-        function ScanSubscriber(destination, accumulator, _seed, hasSeed) {
-            var _this = _super.call(this, destination) || this;
-            _this.accumulator = accumulator;
-            _this._seed = _seed;
-            _this.hasSeed = hasSeed;
-            _this.index = 0;
-            return _this;
-        }
-        Object.defineProperty(ScanSubscriber.prototype, "seed", {
-            get: function () {
-                return this._seed;
-            },
-            set: function (value) {
-                this.hasSeed = true;
-                this._seed = value;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        ScanSubscriber.prototype._next = function (value) {
-            if (!this.hasSeed) {
-                this.seed = value;
-                this.destination.next(value);
-            }
-            else {
-                return this._tryNext(value);
-            }
-        };
-        ScanSubscriber.prototype._tryNext = function (value) {
-            var index = this.index++;
-            var result;
-            try {
-                result = this.accumulator(this.seed, value, index);
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-            this.seed = result;
-            this.destination.next(result);
-        };
-        return ScanSubscriber;
-    }(Subscriber));
-
-    function reduce(accumulator, seed) {
-        if (arguments.length >= 2) {
-            return function reduceOperatorFunctionWithSeed(source) {
-                return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);
-            };
-        }
-        return function reduceOperatorFunction(source) {
-            return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);
-        };
-    }
-
-    function max(comparer) {
-        var max = (typeof comparer === 'function')
-            ? function (x, y) { return comparer(x, y) > 0 ? x : y; }
-            : function (x, y) { return x > y ? x : y; };
-        return reduce(max);
-    }
-
-    function merge$1() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        return function (source) { return source.lift.call(merge.apply(void 0, [source].concat(observables))); };
-    }
-
-    function mergeMapTo(innerObservable, resultSelector, concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        if (typeof resultSelector === 'function') {
-            return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);
-        }
-        if (typeof resultSelector === 'number') {
-            concurrent = resultSelector;
-        }
-        return mergeMap(function () { return innerObservable; }, concurrent);
-    }
-
-    function mergeScan(accumulator, seed, concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };
-    }
-    var MergeScanOperator = (function () {
-        function MergeScanOperator(accumulator, seed, concurrent) {
-            this.accumulator = accumulator;
-            this.seed = seed;
-            this.concurrent = concurrent;
-        }
-        MergeScanOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));
-        };
-        return MergeScanOperator;
-    }());
-    var MergeScanSubscriber = (function (_super) {
-        __extends(MergeScanSubscriber, _super);
-        function MergeScanSubscriber(destination, accumulator, acc, concurrent) {
-            var _this = _super.call(this, destination) || this;
-            _this.accumulator = accumulator;
-            _this.acc = acc;
-            _this.concurrent = concurrent;
-            _this.hasValue = false;
-            _this.hasCompleted = false;
-            _this.buffer = [];
-            _this.active = 0;
-            _this.index = 0;
-            return _this;
-        }
-        MergeScanSubscriber.prototype._next = function (value) {
-            if (this.active < this.concurrent) {
-                var index = this.index++;
-                var destination = this.destination;
-                var ish = void 0;
-                try {
-                    var accumulator = this.accumulator;
-                    ish = accumulator(this.acc, value, index);
-                }
-                catch (e) {
-                    return destination.error(e);
-                }
-                this.active++;
-                this._innerSub(ish, value, index);
-            }
-            else {
-                this.buffer.push(value);
-            }
-        };
-        MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {
-            var innerSubscriber = new InnerSubscriber(this, value, index);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        };
-        MergeScanSubscriber.prototype._complete = function () {
-            this.hasCompleted = true;
-            if (this.active === 0 && this.buffer.length === 0) {
-                if (this.hasValue === false) {
-                    this.destination.next(this.acc);
-                }
-                this.destination.complete();
-            }
-            this.unsubscribe();
-        };
-        MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            var destination = this.destination;
-            this.acc = innerValue;
-            this.hasValue = true;
-            destination.next(innerValue);
-        };
-        MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {
-            var buffer = this.buffer;
-            var destination = this.destination;
-            destination.remove(innerSub);
-            this.active--;
-            if (buffer.length > 0) {
-                this._next(buffer.shift());
-            }
-            else if (this.active === 0 && this.hasCompleted) {
-                if (this.hasValue === false) {
-                    this.destination.next(this.acc);
-                }
-                this.destination.complete();
-            }
-        };
-        return MergeScanSubscriber;
-    }(OuterSubscriber));
-
-    function min(comparer) {
-        var min = (typeof comparer === 'function')
-            ? function (x, y) { return comparer(x, y) < 0 ? x : y; }
-            : function (x, y) { return x < y ? x : y; };
-        return reduce(min);
-    }
-
-    function multicast(subjectOrSubjectFactory, selector) {
-        return function multicastOperatorFunction(source) {
-            var subjectFactory;
-            if (typeof subjectOrSubjectFactory === 'function') {
-                subjectFactory = subjectOrSubjectFactory;
-            }
-            else {
-                subjectFactory = function subjectFactory() {
-                    return subjectOrSubjectFactory;
-                };
-            }
-            if (typeof selector === 'function') {
-                return source.lift(new MulticastOperator(subjectFactory, selector));
-            }
-            var connectable = Object.create(source, connectableObservableDescriptor);
-            connectable.source = source;
-            connectable.subjectFactory = subjectFactory;
-            return connectable;
-        };
-    }
-    var MulticastOperator = (function () {
-        function MulticastOperator(subjectFactory, selector) {
-            this.subjectFactory = subjectFactory;
-            this.selector = selector;
-        }
-        MulticastOperator.prototype.call = function (subscriber, source) {
-            var selector = this.selector;
-            var subject = this.subjectFactory();
-            var subscription = selector(subject).subscribe(subscriber);
-            subscription.add(source.subscribe(subject));
-            return subscription;
-        };
-        return MulticastOperator;
-    }());
-
-    function onErrorResumeNext$1() {
-        var nextSources = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            nextSources[_i] = arguments[_i];
-        }
-        if (nextSources.length === 1 && isArray(nextSources[0])) {
-            nextSources = nextSources[0];
-        }
-        return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };
-    }
-    var OnErrorResumeNextOperator = (function () {
-        function OnErrorResumeNextOperator(nextSources) {
-            this.nextSources = nextSources;
-        }
-        OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
-        };
-        return OnErrorResumeNextOperator;
-    }());
-    var OnErrorResumeNextSubscriber = (function (_super) {
-        __extends(OnErrorResumeNextSubscriber, _super);
-        function OnErrorResumeNextSubscriber(destination, nextSources) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            _this.nextSources = nextSources;
-            return _this;
-        }
-        OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {
-            this.subscribeToNextSource();
-        };
-        OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {
-            this.subscribeToNextSource();
-        };
-        OnErrorResumeNextSubscriber.prototype._error = function (err) {
-            this.subscribeToNextSource();
-            this.unsubscribe();
-        };
-        OnErrorResumeNextSubscriber.prototype._complete = function () {
-            this.subscribeToNextSource();
-            this.unsubscribe();
-        };
-        OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {
-            var next = this.nextSources.shift();
-            if (!!next) {
-                var innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-                var destination = this.destination;
-                destination.add(innerSubscriber);
-                var innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);
-                if (innerSubscription !== innerSubscriber) {
-                    destination.add(innerSubscription);
-                }
-            }
-            else {
-                this.destination.complete();
-            }
-        };
-        return OnErrorResumeNextSubscriber;
-    }(OuterSubscriber));
-
-    function pairwise() {
-        return function (source) { return source.lift(new PairwiseOperator()); };
-    }
-    var PairwiseOperator = (function () {
-        function PairwiseOperator() {
-        }
-        PairwiseOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new PairwiseSubscriber(subscriber));
-        };
-        return PairwiseOperator;
-    }());
-    var PairwiseSubscriber = (function (_super) {
-        __extends(PairwiseSubscriber, _super);
-        function PairwiseSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.hasPrev = false;
-            return _this;
-        }
-        PairwiseSubscriber.prototype._next = function (value) {
-            var pair;
-            if (this.hasPrev) {
-                pair = [this.prev, value];
-            }
-            else {
-                this.hasPrev = true;
-            }
-            this.prev = value;
-            if (pair) {
-                this.destination.next(pair);
-            }
-        };
-        return PairwiseSubscriber;
-    }(Subscriber));
-
-    function partition$1(predicate, thisArg) {
-        return function (source) { return [
-            filter(predicate, thisArg)(source),
-            filter(not(predicate, thisArg))(source)
-        ]; };
-    }
-
-    function pluck() {
-        var properties = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            properties[_i] = arguments[_i];
-        }
-        var length = properties.length;
-        if (length === 0) {
-            throw new Error('list of properties cannot be empty.');
-        }
-        return function (source) { return map(plucker(properties, length))(source); };
-    }
-    function plucker(props, length) {
-        var mapper = function (x) {
-            var currentProp = x;
-            for (var i = 0; i < length; i++) {
-                var p = currentProp[props[i]];
-                if (typeof p !== 'undefined') {
-                    currentProp = p;
-                }
-                else {
-                    return undefined;
-                }
-            }
-            return currentProp;
-        };
-        return mapper;
-    }
-
-    function publish(selector) {
-        return selector ?
-            multicast(function () { return new Subject(); }, selector) :
-            multicast(new Subject());
-    }
-
-    function publishBehavior(value) {
-        return function (source) { return multicast(new BehaviorSubject(value))(source); };
-    }
-
-    function publishLast() {
-        return function (source) { return multicast(new AsyncSubject())(source); };
-    }
-
-    function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {
-        if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
-            scheduler = selectorOrScheduler;
-        }
-        var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
-        var subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-        return function (source) { return multicast(function () { return subject; }, selector)(source); };
-    }
-
-    function race$1() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        return function raceOperatorFunction(source) {
-            if (observables.length === 1 && isArray(observables[0])) {
-                observables = observables[0];
-            }
-            return source.lift.call(race.apply(void 0, [source].concat(observables)));
-        };
-    }
-
-    function repeat(count) {
-        if (count === void 0) { count = -1; }
-        return function (source) {
-            if (count === 0) {
-                return empty$1();
-            }
-            else if (count < 0) {
-                return source.lift(new RepeatOperator(-1, source));
-            }
-            else {
-                return source.lift(new RepeatOperator(count - 1, source));
-            }
-        };
-    }
-    var RepeatOperator = (function () {
-        function RepeatOperator(count, source) {
-            this.count = count;
-            this.source = source;
-        }
-        RepeatOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
-        };
-        return RepeatOperator;
-    }());
-    var RepeatSubscriber = (function (_super) {
-        __extends(RepeatSubscriber, _super);
-        function RepeatSubscriber(destination, count, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.count = count;
-            _this.source = source;
-            return _this;
-        }
-        RepeatSubscriber.prototype.complete = function () {
-            if (!this.isStopped) {
-                var _a = this, source = _a.source, count = _a.count;
-                if (count === 0) {
-                    return _super.prototype.complete.call(this);
-                }
-                else if (count > -1) {
-                    this.count = count - 1;
-                }
-                source.subscribe(this._unsubscribeAndRecycle());
-            }
-        };
-        return RepeatSubscriber;
-    }(Subscriber));
-
-    function repeatWhen(notifier) {
-        return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };
-    }
-    var RepeatWhenOperator = (function () {
-        function RepeatWhenOperator(notifier) {
-            this.notifier = notifier;
-        }
-        RepeatWhenOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
-        };
-        return RepeatWhenOperator;
-    }());
-    var RepeatWhenSubscriber = (function (_super) {
-        __extends(RepeatWhenSubscriber, _super);
-        function RepeatWhenSubscriber(destination, notifier, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.notifier = notifier;
-            _this.source = source;
-            _this.sourceIsBeingSubscribedTo = true;
-            return _this;
-        }
-        RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.sourceIsBeingSubscribedTo = true;
-            this.source.subscribe(this);
-        };
-        RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-            if (this.sourceIsBeingSubscribedTo === false) {
-                return _super.prototype.complete.call(this);
-            }
-        };
-        RepeatWhenSubscriber.prototype.complete = function () {
-            this.sourceIsBeingSubscribedTo = false;
-            if (!this.isStopped) {
-                if (!this.retries) {
-                    this.subscribeToRetries();
-                }
-                if (!this.retriesSubscription || this.retriesSubscription.closed) {
-                    return _super.prototype.complete.call(this);
-                }
-                this._unsubscribeAndRecycle();
-                this.notifications.next();
-            }
-        };
-        RepeatWhenSubscriber.prototype._unsubscribe = function () {
-            var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;
-            if (notifications) {
-                notifications.unsubscribe();
-                this.notifications = null;
-            }
-            if (retriesSubscription) {
-                retriesSubscription.unsubscribe();
-                this.retriesSubscription = null;
-            }
-            this.retries = null;
-        };
-        RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {
-            var _unsubscribe = this._unsubscribe;
-            this._unsubscribe = null;
-            _super.prototype._unsubscribeAndRecycle.call(this);
-            this._unsubscribe = _unsubscribe;
-            return this;
-        };
-        RepeatWhenSubscriber.prototype.subscribeToRetries = function () {
-            this.notifications = new Subject();
-            var retries;
-            try {
-                var notifier = this.notifier;
-                retries = notifier(this.notifications);
-            }
-            catch (e) {
-                return _super.prototype.complete.call(this);
-            }
-            this.retries = retries;
-            this.retriesSubscription = subscribeToResult(this, retries);
-        };
-        return RepeatWhenSubscriber;
-    }(OuterSubscriber));
-
-    function retry(count) {
-        if (count === void 0) { count = -1; }
-        return function (source) { return source.lift(new RetryOperator(count, source)); };
-    }
-    var RetryOperator = (function () {
-        function RetryOperator(count, source) {
-            this.count = count;
-            this.source = source;
-        }
-        RetryOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
-        };
-        return RetryOperator;
-    }());
-    var RetrySubscriber = (function (_super) {
-        __extends(RetrySubscriber, _super);
-        function RetrySubscriber(destination, count, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.count = count;
-            _this.source = source;
-            return _this;
-        }
-        RetrySubscriber.prototype.error = function (err) {
-            if (!this.isStopped) {
-                var _a = this, source = _a.source, count = _a.count;
-                if (count === 0) {
-                    return _super.prototype.error.call(this, err);
-                }
-                else if (count > -1) {
-                    this.count = count - 1;
-                }
-                source.subscribe(this._unsubscribeAndRecycle());
-            }
-        };
-        return RetrySubscriber;
-    }(Subscriber));
-
-    function retryWhen(notifier) {
-        return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };
-    }
-    var RetryWhenOperator = (function () {
-        function RetryWhenOperator(notifier, source) {
-            this.notifier = notifier;
-            this.source = source;
-        }
-        RetryWhenOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
-        };
-        return RetryWhenOperator;
-    }());
-    var RetryWhenSubscriber = (function (_super) {
-        __extends(RetryWhenSubscriber, _super);
-        function RetryWhenSubscriber(destination, notifier, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.notifier = notifier;
-            _this.source = source;
-            return _this;
-        }
-        RetryWhenSubscriber.prototype.error = function (err) {
-            if (!this.isStopped) {
-                var errors = this.errors;
-                var retries = this.retries;
-                var retriesSubscription = this.retriesSubscription;
-                if (!retries) {
-                    errors = new Subject();
-                    try {
-                        var notifier = this.notifier;
-                        retries = notifier(errors);
-                    }
-                    catch (e) {
-                        return _super.prototype.error.call(this, e);
-                    }
-                    retriesSubscription = subscribeToResult(this, retries);
-                }
-                else {
-                    this.errors = null;
-                    this.retriesSubscription = null;
-                }
-                this._unsubscribeAndRecycle();
-                this.errors = errors;
-                this.retries = retries;
-                this.retriesSubscription = retriesSubscription;
-                errors.next(err);
-            }
-        };
-        RetryWhenSubscriber.prototype._unsubscribe = function () {
-            var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;
-            if (errors) {
-                errors.unsubscribe();
-                this.errors = null;
-            }
-            if (retriesSubscription) {
-                retriesSubscription.unsubscribe();
-                this.retriesSubscription = null;
-            }
-            this.retries = null;
-        };
-        RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            var _unsubscribe = this._unsubscribe;
-            this._unsubscribe = null;
-            this._unsubscribeAndRecycle();
-            this._unsubscribe = _unsubscribe;
-            this.source.subscribe(this);
-        };
-        return RetryWhenSubscriber;
-    }(OuterSubscriber));
-
-    function sample(notifier) {
-        return function (source) { return source.lift(new SampleOperator(notifier)); };
-    }
-    var SampleOperator = (function () {
-        function SampleOperator(notifier) {
-            this.notifier = notifier;
-        }
-        SampleOperator.prototype.call = function (subscriber, source) {
-            var sampleSubscriber = new SampleSubscriber(subscriber);
-            var subscription = source.subscribe(sampleSubscriber);
-            subscription.add(subscribeToResult(sampleSubscriber, this.notifier));
-            return subscription;
-        };
-        return SampleOperator;
-    }());
-    var SampleSubscriber = (function (_super) {
-        __extends(SampleSubscriber, _super);
-        function SampleSubscriber() {
-            var _this = _super !== null && _super.apply(this, arguments) || this;
-            _this.hasValue = false;
-            return _this;
-        }
-        SampleSubscriber.prototype._next = function (value) {
-            this.value = value;
-            this.hasValue = true;
-        };
-        SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.emitValue();
-        };
-        SampleSubscriber.prototype.notifyComplete = function () {
-            this.emitValue();
-        };
-        SampleSubscriber.prototype.emitValue = function () {
-            if (this.hasValue) {
-                this.hasValue = false;
-                this.destination.next(this.value);
-            }
-        };
-        return SampleSubscriber;
-    }(OuterSubscriber));
-
-    function sampleTime(period, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };
-    }
-    var SampleTimeOperator = (function () {
-        function SampleTimeOperator(period, scheduler) {
-            this.period = period;
-            this.scheduler = scheduler;
-        }
-        SampleTimeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
-        };
-        return SampleTimeOperator;
-    }());
-    var SampleTimeSubscriber = (function (_super) {
-        __extends(SampleTimeSubscriber, _super);
-        function SampleTimeSubscriber(destination, period, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.period = period;
-            _this.scheduler = scheduler;
-            _this.hasValue = false;
-            _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));
-            return _this;
-        }
-        SampleTimeSubscriber.prototype._next = function (value) {
-            this.lastValue = value;
-            this.hasValue = true;
-        };
-        SampleTimeSubscriber.prototype.notifyNext = function () {
-            if (this.hasValue) {
-                this.hasValue = false;
-                this.destination.next(this.lastValue);
-            }
-        };
-        return SampleTimeSubscriber;
-    }(Subscriber));
-    function dispatchNotification(state) {
-        var subscriber = state.subscriber, period = state.period;
-        subscriber.notifyNext();
-        this.schedule(state, period);
-    }
-
-    function sequenceEqual(compareTo, comparator) {
-        return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };
-    }
-    var SequenceEqualOperator = (function () {
-        function SequenceEqualOperator(compareTo, comparator) {
-            this.compareTo = compareTo;
-            this.comparator = comparator;
-        }
-        SequenceEqualOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));
-        };
-        return SequenceEqualOperator;
-    }());
-    var SequenceEqualSubscriber = (function (_super) {
-        __extends(SequenceEqualSubscriber, _super);
-        function SequenceEqualSubscriber(destination, compareTo, comparator) {
-            var _this = _super.call(this, destination) || this;
-            _this.compareTo = compareTo;
-            _this.comparator = comparator;
-            _this._a = [];
-            _this._b = [];
-            _this._oneComplete = false;
-            _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));
-            return _this;
-        }
-        SequenceEqualSubscriber.prototype._next = function (value) {
-            if (this._oneComplete && this._b.length === 0) {
-                this.emit(false);
-            }
-            else {
-                this._a.push(value);
-                this.checkValues();
-            }
-        };
-        SequenceEqualSubscriber.prototype._complete = function () {
-            if (this._oneComplete) {
-                this.emit(this._a.length === 0 && this._b.length === 0);
-            }
-            else {
-                this._oneComplete = true;
-            }
-            this.unsubscribe();
-        };
-        SequenceEqualSubscriber.prototype.checkValues = function () {
-            var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;
-            while (_a.length > 0 && _b.length > 0) {
-                var a = _a.shift();
-                var b = _b.shift();
-                var areEqual = false;
-                try {
-                    areEqual = comparator ? comparator(a, b) : a === b;
-                }
-                catch (e) {
-                    this.destination.error(e);
-                }
-                if (!areEqual) {
-                    this.emit(false);
-                }
-            }
-        };
-        SequenceEqualSubscriber.prototype.emit = function (value) {
-            var destination = this.destination;
-            destination.next(value);
-            destination.complete();
-        };
-        SequenceEqualSubscriber.prototype.nextB = function (value) {
-            if (this._oneComplete && this._a.length === 0) {
-                this.emit(false);
-            }
-            else {
-                this._b.push(value);
-                this.checkValues();
-            }
-        };
-        SequenceEqualSubscriber.prototype.completeB = function () {
-            if (this._oneComplete) {
-                this.emit(this._a.length === 0 && this._b.length === 0);
-            }
-            else {
-                this._oneComplete = true;
-            }
-        };
-        return SequenceEqualSubscriber;
-    }(Subscriber));
-    var SequenceEqualCompareToSubscriber = (function (_super) {
-        __extends(SequenceEqualCompareToSubscriber, _super);
-        function SequenceEqualCompareToSubscriber(destination, parent) {
-            var _this = _super.call(this, destination) || this;
-            _this.parent = parent;
-            return _this;
-        }
-        SequenceEqualCompareToSubscriber.prototype._next = function (value) {
-            this.parent.nextB(value);
-        };
-        SequenceEqualCompareToSubscriber.prototype._error = function (err) {
-            this.parent.error(err);
-            this.unsubscribe();
-        };
-        SequenceEqualCompareToSubscriber.prototype._complete = function () {
-            this.parent.completeB();
-            this.unsubscribe();
-        };
-        return SequenceEqualCompareToSubscriber;
-    }(Subscriber));
-
-    function shareSubjectFactory() {
-        return new Subject();
-    }
-    function share() {
-        return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };
-    }
-
-    function shareReplay(configOrBufferSize, windowTime, scheduler) {
-        var config;
-        if (configOrBufferSize && typeof configOrBufferSize === 'object') {
-            config = configOrBufferSize;
-        }
-        else {
-            config = {
-                bufferSize: configOrBufferSize,
-                windowTime: windowTime,
-                refCount: false,
-                scheduler: scheduler
-            };
-        }
-        return function (source) { return source.lift(shareReplayOperator(config)); };
-    }
-    function shareReplayOperator(_a) {
-        var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;
-        var subject;
-        var refCount = 0;
-        var subscription;
-        var hasError = false;
-        var isComplete = false;
-        return function shareReplayOperation(source) {
-            refCount++;
-            if (!subject || hasError) {
-                hasError = false;
-                subject = new ReplaySubject(bufferSize, windowTime, scheduler);
-                subscription = source.subscribe({
-                    next: function (value) { subject.next(value); },
-                    error: function (err) {
-                        hasError = true;
-                        subject.error(err);
-                    },
-                    complete: function () {
-                        isComplete = true;
-                        subscription = undefined;
-                        subject.complete();
-                    },
-                });
-            }
-            var innerSub = subject.subscribe(this);
-            this.add(function () {
-                refCount--;
-                innerSub.unsubscribe();
-                if (subscription && !isComplete && useRefCount && refCount === 0) {
-                    subscription.unsubscribe();
-                    subscription = undefined;
-                    subject = undefined;
-                }
-            });
-        };
-    }
-
-    function single(predicate) {
-        return function (source) { return source.lift(new SingleOperator(predicate, source)); };
-    }
-    var SingleOperator = (function () {
-        function SingleOperator(predicate, source) {
-            this.predicate = predicate;
-            this.source = source;
-        }
-        SingleOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
-        };
-        return SingleOperator;
-    }());
-    var SingleSubscriber = (function (_super) {
-        __extends(SingleSubscriber, _super);
-        function SingleSubscriber(destination, predicate, source) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.source = source;
-            _this.seenValue = false;
-            _this.index = 0;
-            return _this;
-        }
-        SingleSubscriber.prototype.applySingleValue = function (value) {
-            if (this.seenValue) {
-                this.destination.error('Sequence contains more than one element');
-            }
-            else {
-                this.seenValue = true;
-                this.singleValue = value;
-            }
-        };
-        SingleSubscriber.prototype._next = function (value) {
-            var index = this.index++;
-            if (this.predicate) {
-                this.tryNext(value, index);
-            }
-            else {
-                this.applySingleValue(value);
-            }
-        };
-        SingleSubscriber.prototype.tryNext = function (value, index) {
-            try {
-                if (this.predicate(value, index, this.source)) {
-                    this.applySingleValue(value);
-                }
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-        };
-        SingleSubscriber.prototype._complete = function () {
-            var destination = this.destination;
-            if (this.index > 0) {
-                destination.next(this.seenValue ? this.singleValue : undefined);
-                destination.complete();
-            }
-            else {
-                destination.error(new EmptyError);
-            }
-        };
-        return SingleSubscriber;
-    }(Subscriber));
-
-    function skip(count) {
-        return function (source) { return source.lift(new SkipOperator(count)); };
-    }
-    var SkipOperator = (function () {
-        function SkipOperator(total) {
-            this.total = total;
-        }
-        SkipOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SkipSubscriber(subscriber, this.total));
-        };
-        return SkipOperator;
-    }());
-    var SkipSubscriber = (function (_super) {
-        __extends(SkipSubscriber, _super);
-        function SkipSubscriber(destination, total) {
-            var _this = _super.call(this, destination) || this;
-            _this.total = total;
-            _this.count = 0;
-            return _this;
-        }
-        SkipSubscriber.prototype._next = function (x) {
-            if (++this.count > this.total) {
-                this.destination.next(x);
-            }
-        };
-        return SkipSubscriber;
-    }(Subscriber));
-
-    function skipLast(count) {
-        return function (source) { return source.lift(new SkipLastOperator(count)); };
-    }
-    var SkipLastOperator = (function () {
-        function SkipLastOperator(_skipCount) {
-            this._skipCount = _skipCount;
-            if (this._skipCount < 0) {
-                throw new ArgumentOutOfRangeError;
-            }
-        }
-        SkipLastOperator.prototype.call = function (subscriber, source) {
-            if (this._skipCount === 0) {
-                return source.subscribe(new Subscriber(subscriber));
-            }
-            else {
-                return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
-            }
-        };
-        return SkipLastOperator;
-    }());
-    var SkipLastSubscriber = (function (_super) {
-        __extends(SkipLastSubscriber, _super);
-        function SkipLastSubscriber(destination, _skipCount) {
-            var _this = _super.call(this, destination) || this;
-            _this._skipCount = _skipCount;
-            _this._count = 0;
-            _this._ring = new Array(_skipCount);
-            return _this;
-        }
-        SkipLastSubscriber.prototype._next = function (value) {
-            var skipCount = this._skipCount;
-            var count = this._count++;
-            if (count < skipCount) {
-                this._ring[count] = value;
-            }
-            else {
-                var currentIndex = count % skipCount;
-                var ring = this._ring;
-                var oldValue = ring[currentIndex];
-                ring[currentIndex] = value;
-                this.destination.next(oldValue);
-            }
-        };
-        return SkipLastSubscriber;
-    }(Subscriber));
-
-    function skipUntil(notifier) {
-        return function (source) { return source.lift(new SkipUntilOperator(notifier)); };
-    }
-    var SkipUntilOperator = (function () {
-        function SkipUntilOperator(notifier) {
-            this.notifier = notifier;
-        }
-        SkipUntilOperator.prototype.call = function (destination, source) {
-            return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
-        };
-        return SkipUntilOperator;
-    }());
-    var SkipUntilSubscriber = (function (_super) {
-        __extends(SkipUntilSubscriber, _super);
-        function SkipUntilSubscriber(destination, notifier) {
-            var _this = _super.call(this, destination) || this;
-            _this.hasValue = false;
-            var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);
-            _this.add(innerSubscriber);
-            _this.innerSubscription = innerSubscriber;
-            var innerSubscription = subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                _this.add(innerSubscription);
-                _this.innerSubscription = innerSubscription;
-            }
-            return _this;
-        }
-        SkipUntilSubscriber.prototype._next = function (value) {
-            if (this.hasValue) {
-                _super.prototype._next.call(this, value);
-            }
-        };
-        SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.hasValue = true;
-            if (this.innerSubscription) {
-                this.innerSubscription.unsubscribe();
-            }
-        };
-        SkipUntilSubscriber.prototype.notifyComplete = function () {
-        };
-        return SkipUntilSubscriber;
-    }(OuterSubscriber));
-
-    function skipWhile(predicate) {
-        return function (source) { return source.lift(new SkipWhileOperator(predicate)); };
-    }
-    var SkipWhileOperator = (function () {
-        function SkipWhileOperator(predicate) {
-            this.predicate = predicate;
-        }
-        SkipWhileOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
-        };
-        return SkipWhileOperator;
-    }());
-    var SkipWhileSubscriber = (function (_super) {
-        __extends(SkipWhileSubscriber, _super);
-        function SkipWhileSubscriber(destination, predicate) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.skipping = true;
-            _this.index = 0;
-            return _this;
-        }
-        SkipWhileSubscriber.prototype._next = function (value) {
-            var destination = this.destination;
-            if (this.skipping) {
-                this.tryCallPredicate(value);
-            }
-            if (!this.skipping) {
-                destination.next(value);
-            }
-        };
-        SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {
-            try {
-                var result = this.predicate(value, this.index++);
-                this.skipping = Boolean(result);
-            }
-            catch (err) {
-                this.destination.error(err);
-            }
-        };
-        return SkipWhileSubscriber;
-    }(Subscriber));
-
-    function startWith() {
-        var array = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            array[_i] = arguments[_i];
-        }
-        var scheduler = array[array.length - 1];
-        if (isScheduler(scheduler)) {
-            array.pop();
-            return function (source) { return concat(array, source, scheduler); };
-        }
-        else {
-            return function (source) { return concat(array, source); };
-        }
-    }
-
-    var SubscribeOnObservable = (function (_super) {
-        __extends(SubscribeOnObservable, _super);
-        function SubscribeOnObservable(source, delayTime, scheduler) {
-            if (delayTime === void 0) { delayTime = 0; }
-            if (scheduler === void 0) { scheduler = asap; }
-            var _this = _super.call(this) || this;
-            _this.source = source;
-            _this.delayTime = delayTime;
-            _this.scheduler = scheduler;
-            if (!isNumeric(delayTime) || delayTime < 0) {
-                _this.delayTime = 0;
-            }
-            if (!scheduler || typeof scheduler.schedule !== 'function') {
-                _this.scheduler = asap;
-            }
-            return _this;
-        }
-        SubscribeOnObservable.create = function (source, delay, scheduler) {
-            if (delay === void 0) { delay = 0; }
-            if (scheduler === void 0) { scheduler = asap; }
-            return new SubscribeOnObservable(source, delay, scheduler);
-        };
-        SubscribeOnObservable.dispatch = function (arg) {
-            var source = arg.source, subscriber = arg.subscriber;
-            return this.add(source.subscribe(subscriber));
-        };
-        SubscribeOnObservable.prototype._subscribe = function (subscriber) {
-            var delay = this.delayTime;
-            var source = this.source;
-            var scheduler = this.scheduler;
-            return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {
-                source: source, subscriber: subscriber
-            });
-        };
-        return SubscribeOnObservable;
-    }(Observable));
-
-    function subscribeOn(scheduler, delay) {
-        if (delay === void 0) { delay = 0; }
-        return function subscribeOnOperatorFunction(source) {
-            return source.lift(new SubscribeOnOperator(scheduler, delay));
-        };
-    }
-    var SubscribeOnOperator = (function () {
-        function SubscribeOnOperator(scheduler, delay) {
-            this.scheduler = scheduler;
-            this.delay = delay;
-        }
-        SubscribeOnOperator.prototype.call = function (subscriber, source) {
-            return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);
-        };
-        return SubscribeOnOperator;
-    }());
-
-    function switchMap(project, resultSelector) {
-        if (typeof resultSelector === 'function') {
-            return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-        }
-        return function (source) { return source.lift(new SwitchMapOperator(project)); };
-    }
-    var SwitchMapOperator = (function () {
-        function SwitchMapOperator(project) {
-            this.project = project;
-        }
-        SwitchMapOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
-        };
-        return SwitchMapOperator;
-    }());
-    var SwitchMapSubscriber = (function (_super) {
-        __extends(SwitchMapSubscriber, _super);
-        function SwitchMapSubscriber(destination, project) {
-            var _this = _super.call(this, destination) || this;
-            _this.project = project;
-            _this.index = 0;
-            return _this;
-        }
-        SwitchMapSubscriber.prototype._next = function (value) {
-            var result;
-            var index = this.index++;
-            try {
-                result = this.project(value, index);
-            }
-            catch (error) {
-                this.destination.error(error);
-                return;
-            }
-            this._innerSub(result, value, index);
-        };
-        SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {
-            var innerSubscription = this.innerSubscription;
-            if (innerSubscription) {
-                innerSubscription.unsubscribe();
-            }
-            var innerSubscriber = new InnerSubscriber(this, value, index);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-            if (this.innerSubscription !== innerSubscriber) {
-                destination.add(this.innerSubscription);
-            }
-        };
-        SwitchMapSubscriber.prototype._complete = function () {
-            var innerSubscription = this.innerSubscription;
-            if (!innerSubscription || innerSubscription.closed) {
-                _super.prototype._complete.call(this);
-            }
-            this.unsubscribe();
-        };
-        SwitchMapSubscriber.prototype._unsubscribe = function () {
-            this.innerSubscription = null;
-        };
-        SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {
-            var destination = this.destination;
-            destination.remove(innerSub);
-            this.innerSubscription = null;
-            if (this.isStopped) {
-                _super.prototype._complete.call(this);
-            }
-        };
-        SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.destination.next(innerValue);
-        };
-        return SwitchMapSubscriber;
-    }(OuterSubscriber));
-
-    function switchAll() {
-        return switchMap(identity);
-    }
-
-    function switchMapTo(innerObservable, resultSelector) {
-        return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });
-    }
-
-    function takeUntil(notifier) {
-        return function (source) { return source.lift(new TakeUntilOperator(notifier)); };
-    }
-    var TakeUntilOperator = (function () {
-        function TakeUntilOperator(notifier) {
-            this.notifier = notifier;
-        }
-        TakeUntilOperator.prototype.call = function (subscriber, source) {
-            var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
-            var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);
-            if (notifierSubscription && !takeUntilSubscriber.seenValue) {
-                takeUntilSubscriber.add(notifierSubscription);
-                return source.subscribe(takeUntilSubscriber);
-            }
-            return takeUntilSubscriber;
-        };
-        return TakeUntilOperator;
-    }());
-    var TakeUntilSubscriber = (function (_super) {
-        __extends(TakeUntilSubscriber, _super);
-        function TakeUntilSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.seenValue = false;
-            return _this;
-        }
-        TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.seenValue = true;
-            this.complete();
-        };
-        TakeUntilSubscriber.prototype.notifyComplete = function () {
-        };
-        return TakeUntilSubscriber;
-    }(OuterSubscriber));
-
-    function takeWhile(predicate, inclusive) {
-        if (inclusive === void 0) { inclusive = false; }
-        return function (source) {
-            return source.lift(new TakeWhileOperator(predicate, inclusive));
-        };
-    }
-    var TakeWhileOperator = (function () {
-        function TakeWhileOperator(predicate, inclusive) {
-            this.predicate = predicate;
-            this.inclusive = inclusive;
-        }
-        TakeWhileOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
-        };
-        return TakeWhileOperator;
-    }());
-    var TakeWhileSubscriber = (function (_super) {
-        __extends(TakeWhileSubscriber, _super);
-        function TakeWhileSubscriber(destination, predicate, inclusive) {
-            var _this = _super.call(this, destination) || this;
-            _this.predicate = predicate;
-            _this.inclusive = inclusive;
-            _this.index = 0;
-            return _this;
-        }
-        TakeWhileSubscriber.prototype._next = function (value) {
-            var destination = this.destination;
-            var result;
-            try {
-                result = this.predicate(value, this.index++);
-            }
-            catch (err) {
-                destination.error(err);
-                return;
-            }
-            this.nextOrComplete(value, result);
-        };
-        TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {
-            var destination = this.destination;
-            if (Boolean(predicateResult)) {
-                destination.next(value);
-            }
-            else {
-                if (this.inclusive) {
-                    destination.next(value);
-                }
-                destination.complete();
-            }
-        };
-        return TakeWhileSubscriber;
-    }(Subscriber));
-
-    function tap(nextOrObserver, error, complete) {
-        return function tapOperatorFunction(source) {
-            return source.lift(new DoOperator(nextOrObserver, error, complete));
-        };
-    }
-    var DoOperator = (function () {
-        function DoOperator(nextOrObserver, error, complete) {
-            this.nextOrObserver = nextOrObserver;
-            this.error = error;
-            this.complete = complete;
-        }
-        DoOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
-        };
-        return DoOperator;
-    }());
-    var TapSubscriber = (function (_super) {
-        __extends(TapSubscriber, _super);
-        function TapSubscriber(destination, observerOrNext, error, complete) {
-            var _this = _super.call(this, destination) || this;
-            _this._tapNext = noop;
-            _this._tapError = noop;
-            _this._tapComplete = noop;
-            _this._tapError = error || noop;
-            _this._tapComplete = complete || noop;
-            if (isFunction(observerOrNext)) {
-                _this._context = _this;
-                _this._tapNext = observerOrNext;
-            }
-            else if (observerOrNext) {
-                _this._context = observerOrNext;
-                _this._tapNext = observerOrNext.next || noop;
-                _this._tapError = observerOrNext.error || noop;
-                _this._tapComplete = observerOrNext.complete || noop;
-            }
-            return _this;
-        }
-        TapSubscriber.prototype._next = function (value) {
-            try {
-                this._tapNext.call(this._context, value);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.next(value);
-        };
-        TapSubscriber.prototype._error = function (err) {
-            try {
-                this._tapError.call(this._context, err);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.error(err);
-        };
-        TapSubscriber.prototype._complete = function () {
-            try {
-                this._tapComplete.call(this._context);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            return this.destination.complete();
-        };
-        return TapSubscriber;
-    }(Subscriber));
-
-    var defaultThrottleConfig = {
-        leading: true,
-        trailing: false
-    };
-    function throttle(durationSelector, config) {
-        if (config === void 0) { config = defaultThrottleConfig; }
-        return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };
-    }
-    var ThrottleOperator = (function () {
-        function ThrottleOperator(durationSelector, leading, trailing) {
-            this.durationSelector = durationSelector;
-            this.leading = leading;
-            this.trailing = trailing;
-        }
-        ThrottleOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));
-        };
-        return ThrottleOperator;
-    }());
-    var ThrottleSubscriber = (function (_super) {
-        __extends(ThrottleSubscriber, _super);
-        function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            _this.durationSelector = durationSelector;
-            _this._leading = _leading;
-            _this._trailing = _trailing;
-            _this._hasValue = false;
-            return _this;
-        }
-        ThrottleSubscriber.prototype._next = function (value) {
-            this._hasValue = true;
-            this._sendValue = value;
-            if (!this._throttled) {
-                if (this._leading) {
-                    this.send();
-                }
-                else {
-                    this.throttle(value);
-                }
-            }
-        };
-        ThrottleSubscriber.prototype.send = function () {
-            var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;
-            if (_hasValue) {
-                this.destination.next(_sendValue);
-                this.throttle(_sendValue);
-            }
-            this._hasValue = false;
-            this._sendValue = null;
-        };
-        ThrottleSubscriber.prototype.throttle = function (value) {
-            var duration = this.tryDurationSelector(value);
-            if (!!duration) {
-                this.add(this._throttled = subscribeToResult(this, duration));
-            }
-        };
-        ThrottleSubscriber.prototype.tryDurationSelector = function (value) {
-            try {
-                return this.durationSelector(value);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return null;
-            }
-        };
-        ThrottleSubscriber.prototype.throttlingDone = function () {
-            var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;
-            if (_throttled) {
-                _throttled.unsubscribe();
-            }
-            this._throttled = null;
-            if (_trailing) {
-                this.send();
-            }
-        };
-        ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.throttlingDone();
-        };
-        ThrottleSubscriber.prototype.notifyComplete = function () {
-            this.throttlingDone();
-        };
-        return ThrottleSubscriber;
-    }(OuterSubscriber));
-
-    function throttleTime(duration, scheduler, config) {
-        if (scheduler === void 0) { scheduler = async; }
-        if (config === void 0) { config = defaultThrottleConfig; }
-        return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };
-    }
-    var ThrottleTimeOperator = (function () {
-        function ThrottleTimeOperator(duration, scheduler, leading, trailing) {
-            this.duration = duration;
-            this.scheduler = scheduler;
-            this.leading = leading;
-            this.trailing = trailing;
-        }
-        ThrottleTimeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));
-        };
-        return ThrottleTimeOperator;
-    }());
-    var ThrottleTimeSubscriber = (function (_super) {
-        __extends(ThrottleTimeSubscriber, _super);
-        function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {
-            var _this = _super.call(this, destination) || this;
-            _this.duration = duration;
-            _this.scheduler = scheduler;
-            _this.leading = leading;
-            _this.trailing = trailing;
-            _this._hasTrailingValue = false;
-            _this._trailingValue = null;
-            return _this;
-        }
-        ThrottleTimeSubscriber.prototype._next = function (value) {
-            if (this.throttled) {
-                if (this.trailing) {
-                    this._trailingValue = value;
-                    this._hasTrailingValue = true;
-                }
-            }
-            else {
-                this.add(this.throttled = this.scheduler.schedule(dispatchNext$3, this.duration, { subscriber: this }));
-                if (this.leading) {
-                    this.destination.next(value);
-                }
-                else if (this.trailing) {
-                    this._trailingValue = value;
-                    this._hasTrailingValue = true;
-                }
-            }
-        };
-        ThrottleTimeSubscriber.prototype._complete = function () {
-            if (this._hasTrailingValue) {
-                this.destination.next(this._trailingValue);
-                this.destination.complete();
-            }
-            else {
-                this.destination.complete();
-            }
-        };
-        ThrottleTimeSubscriber.prototype.clearThrottle = function () {
-            var throttled = this.throttled;
-            if (throttled) {
-                if (this.trailing && this._hasTrailingValue) {
-                    this.destination.next(this._trailingValue);
-                    this._trailingValue = null;
-                    this._hasTrailingValue = false;
-                }
-                throttled.unsubscribe();
-                this.remove(throttled);
-                this.throttled = null;
-            }
-        };
-        return ThrottleTimeSubscriber;
-    }(Subscriber));
-    function dispatchNext$3(arg) {
-        var subscriber = arg.subscriber;
-        subscriber.clearThrottle();
-    }
-
-    function timeInterval(scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return function (source) { return defer(function () {
-            return source.pipe(scan(function (_a, value) {
-                var current = _a.current;
-                return ({ value: value, current: scheduler.now(), last: current });
-            }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {
-                var current = _a.current, last = _a.last, value = _a.value;
-                return new TimeInterval(value, current - last);
-            }));
-        }); };
-    }
-    var TimeInterval = (function () {
-        function TimeInterval(value, interval) {
-            this.value = value;
-            this.interval = interval;
-        }
-        return TimeInterval;
-    }());
-
-    function timeoutWith(due, withObservable, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return function (source) {
-            var absoluteTimeout = isDate(due);
-            var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
-            return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
-        };
-    }
-    var TimeoutWithOperator = (function () {
-        function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {
-            this.waitFor = waitFor;
-            this.absoluteTimeout = absoluteTimeout;
-            this.withObservable = withObservable;
-            this.scheduler = scheduler;
-        }
-        TimeoutWithOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
-        };
-        return TimeoutWithOperator;
-    }());
-    var TimeoutWithSubscriber = (function (_super) {
-        __extends(TimeoutWithSubscriber, _super);
-        function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.absoluteTimeout = absoluteTimeout;
-            _this.waitFor = waitFor;
-            _this.withObservable = withObservable;
-            _this.scheduler = scheduler;
-            _this.action = null;
-            _this.scheduleTimeout();
-            return _this;
-        }
-        TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {
-            var withObservable = subscriber.withObservable;
-            subscriber._unsubscribeAndRecycle();
-            subscriber.add(subscribeToResult(subscriber, withObservable));
-        };
-        TimeoutWithSubscriber.prototype.scheduleTimeout = function () {
-            var action = this.action;
-            if (action) {
-                this.action = action.schedule(this, this.waitFor);
-            }
-            else {
-                this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
-            }
-        };
-        TimeoutWithSubscriber.prototype._next = function (value) {
-            if (!this.absoluteTimeout) {
-                this.scheduleTimeout();
-            }
-            _super.prototype._next.call(this, value);
-        };
-        TimeoutWithSubscriber.prototype._unsubscribe = function () {
-            this.action = null;
-            this.scheduler = null;
-            this.withObservable = null;
-        };
-        return TimeoutWithSubscriber;
-    }(OuterSubscriber));
-
-    function timeout(due, scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return timeoutWith(due, throwError(new TimeoutError()), scheduler);
-    }
-
-    function timestamp(scheduler) {
-        if (scheduler === void 0) { scheduler = async; }
-        return map(function (value) { return new Timestamp(value, scheduler.now()); });
-    }
-    var Timestamp = (function () {
-        function Timestamp(value, timestamp) {
-            this.value = value;
-            this.timestamp = timestamp;
-        }
-        return Timestamp;
-    }());
-
-    function toArrayReducer(arr, item, index) {
-        if (index === 0) {
-            return [item];
-        }
-        arr.push(item);
-        return arr;
-    }
-    function toArray() {
-        return reduce(toArrayReducer, []);
-    }
-
-    function window$1(windowBoundaries) {
-        return function windowOperatorFunction(source) {
-            return source.lift(new WindowOperator(windowBoundaries));
-        };
-    }
-    var WindowOperator = (function () {
-        function WindowOperator(windowBoundaries) {
-            this.windowBoundaries = windowBoundaries;
-        }
-        WindowOperator.prototype.call = function (subscriber, source) {
-            var windowSubscriber = new WindowSubscriber(subscriber);
-            var sourceSubscription = source.subscribe(windowSubscriber);
-            if (!sourceSubscription.closed) {
-                windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));
-            }
-            return sourceSubscription;
-        };
-        return WindowOperator;
-    }());
-    var WindowSubscriber = (function (_super) {
-        __extends(WindowSubscriber, _super);
-        function WindowSubscriber(destination) {
-            var _this = _super.call(this, destination) || this;
-            _this.window = new Subject();
-            destination.next(_this.window);
-            return _this;
-        }
-        WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.openWindow();
-        };
-        WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-            this._error(error);
-        };
-        WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-            this._complete();
-        };
-        WindowSubscriber.prototype._next = function (value) {
-            this.window.next(value);
-        };
-        WindowSubscriber.prototype._error = function (err) {
-            this.window.error(err);
-            this.destination.error(err);
-        };
-        WindowSubscriber.prototype._complete = function () {
-            this.window.complete();
-            this.destination.complete();
-        };
-        WindowSubscriber.prototype._unsubscribe = function () {
-            this.window = null;
-        };
-        WindowSubscriber.prototype.openWindow = function () {
-            var prevWindow = this.window;
-            if (prevWindow) {
-                prevWindow.complete();
-            }
-            var destination = this.destination;
-            var newWindow = this.window = new Subject();
-            destination.next(newWindow);
-        };
-        return WindowSubscriber;
-    }(OuterSubscriber));
-
-    function windowCount(windowSize, startWindowEvery) {
-        if (startWindowEvery === void 0) { startWindowEvery = 0; }
-        return function windowCountOperatorFunction(source) {
-            return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
-        };
-    }
-    var WindowCountOperator = (function () {
-        function WindowCountOperator(windowSize, startWindowEvery) {
-            this.windowSize = windowSize;
-            this.startWindowEvery = startWindowEvery;
-        }
-        WindowCountOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
-        };
-        return WindowCountOperator;
-    }());
-    var WindowCountSubscriber = (function (_super) {
-        __extends(WindowCountSubscriber, _super);
-        function WindowCountSubscriber(destination, windowSize, startWindowEvery) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            _this.windowSize = windowSize;
-            _this.startWindowEvery = startWindowEvery;
-            _this.windows = [new Subject()];
-            _this.count = 0;
-            destination.next(_this.windows[0]);
-            return _this;
-        }
-        WindowCountSubscriber.prototype._next = function (value) {
-            var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
-            var destination = this.destination;
-            var windowSize = this.windowSize;
-            var windows = this.windows;
-            var len = windows.length;
-            for (var i = 0; i < len && !this.closed; i++) {
-                windows[i].next(value);
-            }
-            var c = this.count - windowSize + 1;
-            if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
-                windows.shift().complete();
-            }
-            if (++this.count % startWindowEvery === 0 && !this.closed) {
-                var window_1 = new Subject();
-                windows.push(window_1);
-                destination.next(window_1);
-            }
-        };
-        WindowCountSubscriber.prototype._error = function (err) {
-            var windows = this.windows;
-            if (windows) {
-                while (windows.length > 0 && !this.closed) {
-                    windows.shift().error(err);
-                }
-            }
-            this.destination.error(err);
-        };
-        WindowCountSubscriber.prototype._complete = function () {
-            var windows = this.windows;
-            if (windows) {
-                while (windows.length > 0 && !this.closed) {
-                    windows.shift().complete();
-                }
-            }
-            this.destination.complete();
-        };
-        WindowCountSubscriber.prototype._unsubscribe = function () {
-            this.count = 0;
-            this.windows = null;
-        };
-        return WindowCountSubscriber;
-    }(Subscriber));
-
-    function windowTime(windowTimeSpan) {
-        var scheduler = async;
-        var windowCreationInterval = null;
-        var maxWindowSize = Number.POSITIVE_INFINITY;
-        if (isScheduler(arguments[3])) {
-            scheduler = arguments[3];
-        }
-        if (isScheduler(arguments[2])) {
-            scheduler = arguments[2];
-        }
-        else if (isNumeric(arguments[2])) {
-            maxWindowSize = arguments[2];
-        }
-        if (isScheduler(arguments[1])) {
-            scheduler = arguments[1];
-        }
-        else if (isNumeric(arguments[1])) {
-            windowCreationInterval = arguments[1];
-        }
-        return function windowTimeOperatorFunction(source) {
-            return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
-        };
-    }
-    var WindowTimeOperator = (function () {
-        function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-            this.windowTimeSpan = windowTimeSpan;
-            this.windowCreationInterval = windowCreationInterval;
-            this.maxWindowSize = maxWindowSize;
-            this.scheduler = scheduler;
-        }
-        WindowTimeOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));
-        };
-        return WindowTimeOperator;
-    }());
-    var CountedSubject = (function (_super) {
-        __extends(CountedSubject, _super);
-        function CountedSubject() {
-            var _this = _super !== null && _super.apply(this, arguments) || this;
-            _this._numberOfNextedValues = 0;
-            return _this;
-        }
-        CountedSubject.prototype.next = function (value) {
-            this._numberOfNextedValues++;
-            _super.prototype.next.call(this, value);
-        };
-        Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", {
-            get: function () {
-                return this._numberOfNextedValues;
-            },
-            enumerable: true,
-            configurable: true
-        });
-        return CountedSubject;
-    }(Subject));
-    var WindowTimeSubscriber = (function (_super) {
-        __extends(WindowTimeSubscriber, _super);
-        function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            _this.windowTimeSpan = windowTimeSpan;
-            _this.windowCreationInterval = windowCreationInterval;
-            _this.maxWindowSize = maxWindowSize;
-            _this.scheduler = scheduler;
-            _this.windows = [];
-            var window = _this.openWindow();
-            if (windowCreationInterval !== null && windowCreationInterval >= 0) {
-                var closeState = { subscriber: _this, window: window, context: null };
-                var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };
-                _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));
-                _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));
-            }
-            else {
-                var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };
-                _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
-            }
-            return _this;
-        }
-        WindowTimeSubscriber.prototype._next = function (value) {
-            var windows = this.windows;
-            var len = windows.length;
-            for (var i = 0; i < len; i++) {
-                var window_1 = windows[i];
-                if (!window_1.closed) {
-                    window_1.next(value);
-                    if (window_1.numberOfNextedValues >= this.maxWindowSize) {
-                        this.closeWindow(window_1);
-                    }
-                }
-            }
-        };
-        WindowTimeSubscriber.prototype._error = function (err) {
-            var windows = this.windows;
-            while (windows.length > 0) {
-                windows.shift().error(err);
-            }
-            this.destination.error(err);
-        };
-        WindowTimeSubscriber.prototype._complete = function () {
-            var windows = this.windows;
-            while (windows.length > 0) {
-                var window_2 = windows.shift();
-                if (!window_2.closed) {
-                    window_2.complete();
-                }
-            }
-            this.destination.complete();
-        };
-        WindowTimeSubscriber.prototype.openWindow = function () {
-            var window = new CountedSubject();
-            this.windows.push(window);
-            var destination = this.destination;
-            destination.next(window);
-            return window;
-        };
-        WindowTimeSubscriber.prototype.closeWindow = function (window) {
-            window.complete();
-            var windows = this.windows;
-            windows.splice(windows.indexOf(window), 1);
-        };
-        return WindowTimeSubscriber;
-    }(Subscriber));
-    function dispatchWindowTimeSpanOnly(state) {
-        var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;
-        if (window) {
-            subscriber.closeWindow(window);
-        }
-        state.window = subscriber.openWindow();
-        this.schedule(state, windowTimeSpan);
-    }
-    function dispatchWindowCreation(state) {
-        var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;
-        var window = subscriber.openWindow();
-        var action = this;
-        var context = { action: action, subscription: null };
-        var timeSpanState = { subscriber: subscriber, window: window, context: context };
-        context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);
-        action.add(context.subscription);
-        action.schedule(state, windowCreationInterval);
-    }
-    function dispatchWindowClose(state) {
-        var subscriber = state.subscriber, window = state.window, context = state.context;
-        if (context && context.action && context.subscription) {
-            context.action.remove(context.subscription);
-        }
-        subscriber.closeWindow(window);
-    }
-
-    function windowToggle(openings, closingSelector) {
-        return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };
-    }
-    var WindowToggleOperator = (function () {
-        function WindowToggleOperator(openings, closingSelector) {
-            this.openings = openings;
-            this.closingSelector = closingSelector;
-        }
-        WindowToggleOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));
-        };
-        return WindowToggleOperator;
-    }());
-    var WindowToggleSubscriber = (function (_super) {
-        __extends(WindowToggleSubscriber, _super);
-        function WindowToggleSubscriber(destination, openings, closingSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.openings = openings;
-            _this.closingSelector = closingSelector;
-            _this.contexts = [];
-            _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));
-            return _this;
-        }
-        WindowToggleSubscriber.prototype._next = function (value) {
-            var contexts = this.contexts;
-            if (contexts) {
-                var len = contexts.length;
-                for (var i = 0; i < len; i++) {
-                    contexts[i].window.next(value);
-                }
-            }
-        };
-        WindowToggleSubscriber.prototype._error = function (err) {
-            var contexts = this.contexts;
-            this.contexts = null;
-            if (contexts) {
-                var len = contexts.length;
-                var index = -1;
-                while (++index < len) {
-                    var context_1 = contexts[index];
-                    context_1.window.error(err);
-                    context_1.subscription.unsubscribe();
-                }
-            }
-            _super.prototype._error.call(this, err);
-        };
-        WindowToggleSubscriber.prototype._complete = function () {
-            var contexts = this.contexts;
-            this.contexts = null;
-            if (contexts) {
-                var len = contexts.length;
-                var index = -1;
-                while (++index < len) {
-                    var context_2 = contexts[index];
-                    context_2.window.complete();
-                    context_2.subscription.unsubscribe();
-                }
-            }
-            _super.prototype._complete.call(this);
-        };
-        WindowToggleSubscriber.prototype._unsubscribe = function () {
-            var contexts = this.contexts;
-            this.contexts = null;
-            if (contexts) {
-                var len = contexts.length;
-                var index = -1;
-                while (++index < len) {
-                    var context_3 = contexts[index];
-                    context_3.window.unsubscribe();
-                    context_3.subscription.unsubscribe();
-                }
-            }
-        };
-        WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            if (outerValue === this.openings) {
-                var closingNotifier = void 0;
-                try {
-                    var closingSelector = this.closingSelector;
-                    closingNotifier = closingSelector(innerValue);
-                }
-                catch (e) {
-                    return this.error(e);
-                }
-                var window_1 = new Subject();
-                var subscription = new Subscription();
-                var context_4 = { window: window_1, subscription: subscription };
-                this.contexts.push(context_4);
-                var innerSubscription = subscribeToResult(this, closingNotifier, context_4);
-                if (innerSubscription.closed) {
-                    this.closeWindow(this.contexts.length - 1);
-                }
-                else {
-                    innerSubscription.context = context_4;
-                    subscription.add(innerSubscription);
-                }
-                this.destination.next(window_1);
-            }
-            else {
-                this.closeWindow(this.contexts.indexOf(outerValue));
-            }
-        };
-        WindowToggleSubscriber.prototype.notifyError = function (err) {
-            this.error(err);
-        };
-        WindowToggleSubscriber.prototype.notifyComplete = function (inner) {
-            if (inner !== this.openSubscription) {
-                this.closeWindow(this.contexts.indexOf(inner.context));
-            }
-        };
-        WindowToggleSubscriber.prototype.closeWindow = function (index) {
-            if (index === -1) {
-                return;
-            }
-            var contexts = this.contexts;
-            var context = contexts[index];
-            var window = context.window, subscription = context.subscription;
-            contexts.splice(index, 1);
-            window.complete();
-            subscription.unsubscribe();
-        };
-        return WindowToggleSubscriber;
-    }(OuterSubscriber));
-
-    function windowWhen(closingSelector) {
-        return function windowWhenOperatorFunction(source) {
-            return source.lift(new WindowOperator$1(closingSelector));
-        };
-    }
-    var WindowOperator$1 = (function () {
-        function WindowOperator(closingSelector) {
-            this.closingSelector = closingSelector;
-        }
-        WindowOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new WindowSubscriber$1(subscriber, this.closingSelector));
-        };
-        return WindowOperator;
-    }());
-    var WindowSubscriber$1 = (function (_super) {
-        __extends(WindowSubscriber, _super);
-        function WindowSubscriber(destination, closingSelector) {
-            var _this = _super.call(this, destination) || this;
-            _this.destination = destination;
-            _this.closingSelector = closingSelector;
-            _this.openWindow();
-            return _this;
-        }
-        WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.openWindow(innerSub);
-        };
-        WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-            this._error(error);
-        };
-        WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-            this.openWindow(innerSub);
-        };
-        WindowSubscriber.prototype._next = function (value) {
-            this.window.next(value);
-        };
-        WindowSubscriber.prototype._error = function (err) {
-            this.window.error(err);
-            this.destination.error(err);
-            this.unsubscribeClosingNotification();
-        };
-        WindowSubscriber.prototype._complete = function () {
-            this.window.complete();
-            this.destination.complete();
-            this.unsubscribeClosingNotification();
-        };
-        WindowSubscriber.prototype.unsubscribeClosingNotification = function () {
-            if (this.closingNotification) {
-                this.closingNotification.unsubscribe();
-            }
-        };
-        WindowSubscriber.prototype.openWindow = function (innerSub) {
-            if (innerSub === void 0) { innerSub = null; }
-            if (innerSub) {
-                this.remove(innerSub);
-                innerSub.unsubscribe();
-            }
-            var prevWindow = this.window;
-            if (prevWindow) {
-                prevWindow.complete();
-            }
-            var window = this.window = new Subject();
-            this.destination.next(window);
-            var closingNotifier;
-            try {
-                var closingSelector = this.closingSelector;
-                closingNotifier = closingSelector();
-            }
-            catch (e) {
-                this.destination.error(e);
-                this.window.error(e);
-                return;
-            }
-            this.add(this.closingNotification = subscribeToResult(this, closingNotifier));
-        };
-        return WindowSubscriber;
-    }(OuterSubscriber));
-
-    function withLatestFrom() {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        return function (source) {
-            var project;
-            if (typeof args[args.length - 1] === 'function') {
-                project = args.pop();
-            }
-            var observables = args;
-            return source.lift(new WithLatestFromOperator(observables, project));
-        };
-    }
-    var WithLatestFromOperator = (function () {
-        function WithLatestFromOperator(observables, project) {
-            this.observables = observables;
-            this.project = project;
-        }
-        WithLatestFromOperator.prototype.call = function (subscriber, source) {
-            return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
-        };
-        return WithLatestFromOperator;
-    }());
-    var WithLatestFromSubscriber = (function (_super) {
-        __extends(WithLatestFromSubscriber, _super);
-        function WithLatestFromSubscriber(destination, observables, project) {
-            var _this = _super.call(this, destination) || this;
-            _this.observables = observables;
-            _this.project = project;
-            _this.toRespond = [];
-            var len = observables.length;
-            _this.values = new Array(len);
-            for (var i = 0; i < len; i++) {
-                _this.toRespond.push(i);
-            }
-            for (var i = 0; i < len; i++) {
-                var observable = observables[i];
-                _this.add(subscribeToResult(_this, observable, observable, i));
-            }
-            return _this;
-        }
-        WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-            this.values[outerIndex] = innerValue;
-            var toRespond = this.toRespond;
-            if (toRespond.length > 0) {
-                var found = toRespond.indexOf(outerIndex);
-                if (found !== -1) {
-                    toRespond.splice(found, 1);
-                }
-            }
-        };
-        WithLatestFromSubscriber.prototype.notifyComplete = function () {
-        };
-        WithLatestFromSubscriber.prototype._next = function (value) {
-            if (this.toRespond.length === 0) {
-                var args = [value].concat(this.values);
-                if (this.project) {
-                    this._tryProject(args);
-                }
-                else {
-                    this.destination.next(args);
-                }
-            }
-        };
-        WithLatestFromSubscriber.prototype._tryProject = function (args) {
-            var result;
-            try {
-                result = this.project.apply(this, args);
-            }
-            catch (err) {
-                this.destination.error(err);
-                return;
-            }
-            this.destination.next(result);
-        };
-        return WithLatestFromSubscriber;
-    }(OuterSubscriber));
-
-    function zip$1() {
-        var observables = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            observables[_i] = arguments[_i];
-        }
-        return function zipOperatorFunction(source) {
-            return source.lift.call(zip.apply(void 0, [source].concat(observables)));
-        };
-    }
-
-    function zipAll(project) {
-        return function (source) { return source.lift(new ZipOperator(project)); };
-    }
-
-
-
-    var _operators = /*#__PURE__*/Object.freeze({
-        audit: audit,
-        auditTime: auditTime,
-        buffer: buffer,
-        bufferCount: bufferCount,
-        bufferTime: bufferTime,
-        bufferToggle: bufferToggle,
-        bufferWhen: bufferWhen,
-        catchError: catchError,
-        combineAll: combineAll,
-        combineLatest: combineLatest$1,
-        concat: concat$1,
-        concatAll: concatAll,
-        concatMap: concatMap,
-        concatMapTo: concatMapTo,
-        count: count,
-        debounce: debounce,
-        debounceTime: debounceTime,
-        defaultIfEmpty: defaultIfEmpty,
-        delay: delay,
-        delayWhen: delayWhen,
-        dematerialize: dematerialize,
-        distinct: distinct,
-        distinctUntilChanged: distinctUntilChanged,
-        distinctUntilKeyChanged: distinctUntilKeyChanged,
-        elementAt: elementAt,
-        endWith: endWith,
-        every: every,
-        exhaust: exhaust,
-        exhaustMap: exhaustMap,
-        expand: expand,
-        filter: filter,
-        finalize: finalize,
-        find: find,
-        findIndex: findIndex,
-        first: first,
-        groupBy: groupBy,
-        ignoreElements: ignoreElements,
-        isEmpty: isEmpty,
-        last: last,
-        map: map,
-        mapTo: mapTo,
-        materialize: materialize,
-        max: max,
-        merge: merge$1,
-        mergeAll: mergeAll,
-        mergeMap: mergeMap,
-        flatMap: mergeMap,
-        mergeMapTo: mergeMapTo,
-        mergeScan: mergeScan,
-        min: min,
-        multicast: multicast,
-        observeOn: observeOn,
-        onErrorResumeNext: onErrorResumeNext$1,
-        pairwise: pairwise,
-        partition: partition$1,
-        pluck: pluck,
-        publish: publish,
-        publishBehavior: publishBehavior,
-        publishLast: publishLast,
-        publishReplay: publishReplay,
-        race: race$1,
-        reduce: reduce,
-        repeat: repeat,
-        repeatWhen: repeatWhen,
-        retry: retry,
-        retryWhen: retryWhen,
-        refCount: refCount,
-        sample: sample,
-        sampleTime: sampleTime,
-        scan: scan,
-        sequenceEqual: sequenceEqual,
-        share: share,
-        shareReplay: shareReplay,
-        single: single,
-        skip: skip,
-        skipLast: skipLast,
-        skipUntil: skipUntil,
-        skipWhile: skipWhile,
-        startWith: startWith,
-        subscribeOn: subscribeOn,
-        switchAll: switchAll,
-        switchMap: switchMap,
-        switchMapTo: switchMapTo,
-        take: take,
-        takeLast: takeLast,
-        takeUntil: takeUntil,
-        takeWhile: takeWhile,
-        tap: tap,
-        throttle: throttle,
-        throttleTime: throttleTime,
-        throwIfEmpty: throwIfEmpty,
-        timeInterval: timeInterval,
-        timeout: timeout,
-        timeoutWith: timeoutWith,
-        timestamp: timestamp,
-        toArray: toArray,
-        window: window$1,
-        windowCount: windowCount,
-        windowTime: windowTime,
-        windowToggle: windowToggle,
-        windowWhen: windowWhen,
-        withLatestFrom: withLatestFrom,
-        zip: zip$1,
-        zipAll: zipAll
-    });
-
-    var SubscriptionLog = (function () {
-        function SubscriptionLog(subscribedFrame, unsubscribedFrame) {
-            if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }
-            this.subscribedFrame = subscribedFrame;
-            this.unsubscribedFrame = unsubscribedFrame;
-        }
-        return SubscriptionLog;
-    }());
-
-    var SubscriptionLoggable = (function () {
-        function SubscriptionLoggable() {
-            this.subscriptions = [];
-        }
-        SubscriptionLoggable.prototype.logSubscribedFrame = function () {
-            this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));
-            return this.subscriptions.length - 1;
-        };
-        SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {
-            var subscriptionLogs = this.subscriptions;
-            var oldSubscriptionLog = subscriptionLogs[index];
-            subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());
-        };
-        return SubscriptionLoggable;
-    }());
-
-    function applyMixins(derivedCtor, baseCtors) {
-        for (var i = 0, len = baseCtors.length; i < len; i++) {
-            var baseCtor = baseCtors[i];
-            var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
-            for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {
-                var name_1 = propertyKeys[j];
-                derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];
-            }
-        }
-    }
-
-    var ColdObservable = (function (_super) {
-        __extends(ColdObservable, _super);
-        function ColdObservable(messages, scheduler) {
-            var _this = _super.call(this, function (subscriber) {
-                var observable = this;
-                var index = observable.logSubscribedFrame();
-                var subscription = new Subscription();
-                subscription.add(new Subscription(function () {
-                    observable.logUnsubscribedFrame(index);
-                }));
-                observable.scheduleMessages(subscriber);
-                return subscription;
-            }) || this;
-            _this.messages = messages;
-            _this.subscriptions = [];
-            _this.scheduler = scheduler;
-            return _this;
-        }
-        ColdObservable.prototype.scheduleMessages = function (subscriber) {
-            var messagesLength = this.messages.length;
-            for (var i = 0; i < messagesLength; i++) {
-                var message = this.messages[i];
-                subscriber.add(this.scheduler.schedule(function (_a) {
-                    var message = _a.message, subscriber = _a.subscriber;
-                    message.notification.observe(subscriber);
-                }, message.frame, { message: message, subscriber: subscriber }));
-            }
-        };
-        return ColdObservable;
-    }(Observable));
-    applyMixins(ColdObservable, [SubscriptionLoggable]);
-
-    var HotObservable = (function (_super) {
-        __extends(HotObservable, _super);
-        function HotObservable(messages, scheduler) {
-            var _this = _super.call(this) || this;
-            _this.messages = messages;
-            _this.subscriptions = [];
-            _this.scheduler = scheduler;
-            return _this;
-        }
-        HotObservable.prototype._subscribe = function (subscriber) {
-            var subject = this;
-            var index = subject.logSubscribedFrame();
-            var subscription = new Subscription();
-            subscription.add(new Subscription(function () {
-                subject.logUnsubscribedFrame(index);
-            }));
-            subscription.add(_super.prototype._subscribe.call(this, subscriber));
-            return subscription;
-        };
-        HotObservable.prototype.setup = function () {
-            var subject = this;
-            var messagesLength = subject.messages.length;
-            for (var i = 0; i < messagesLength; i++) {
-                (function () {
-                    var message = subject.messages[i];
-                    subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);
-                })();
-            }
-        };
-        return HotObservable;
-    }(Subject));
-    applyMixins(HotObservable, [SubscriptionLoggable]);
-
-    var defaultMaxFrame = 750;
-    var TestScheduler = (function (_super) {
-        __extends(TestScheduler, _super);
-        function TestScheduler(assertDeepEqual) {
-            var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;
-            _this.assertDeepEqual = assertDeepEqual;
-            _this.hotObservables = [];
-            _this.coldObservables = [];
-            _this.flushTests = [];
-            _this.runMode = false;
-            return _this;
-        }
-        TestScheduler.prototype.createTime = function (marbles) {
-            var indexOf = marbles.indexOf('|');
-            if (indexOf === -1) {
-                throw new Error('marble diagram for time should have a completion marker "|"');
-            }
-            return indexOf * TestScheduler.frameTimeFactor;
-        };
-        TestScheduler.prototype.createColdObservable = function (marbles, values, error) {
-            if (marbles.indexOf('^') !== -1) {
-                throw new Error('cold observable cannot have subscription offset "^"');
-            }
-            if (marbles.indexOf('!') !== -1) {
-                throw new Error('cold observable cannot have unsubscription marker "!"');
-            }
-            var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-            var cold = new ColdObservable(messages, this);
-            this.coldObservables.push(cold);
-            return cold;
-        };
-        TestScheduler.prototype.createHotObservable = function (marbles, values, error) {
-            if (marbles.indexOf('!') !== -1) {
-                throw new Error('hot observable cannot have unsubscription marker "!"');
-            }
-            var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-            var subject = new HotObservable(messages, this);
-            this.hotObservables.push(subject);
-            return subject;
-        };
-        TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {
-            var _this = this;
-            var messages = [];
-            observable.subscribe(function (value) {
-                messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });
-            }, function (err) {
-                messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });
-            }, function () {
-                messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });
-            });
-            return messages;
-        };
-        TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {
-            var _this = this;
-            if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }
-            var actual = [];
-            var flushTest = { actual: actual, ready: false };
-            var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
-            var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?
-                0 : subscriptionParsed.subscribedFrame;
-            var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
-            var subscription;
-            this.schedule(function () {
-                subscription = observable.subscribe(function (x) {
-                    var value = x;
-                    if (x instanceof Observable) {
-                        value = _this.materializeInnerObservable(value, _this.frame);
-                    }
-                    actual.push({ frame: _this.frame, notification: Notification.createNext(value) });
-                }, function (err) {
-                    actual.push({ frame: _this.frame, notification: Notification.createError(err) });
-                }, function () {
-                    actual.push({ frame: _this.frame, notification: Notification.createComplete() });
-                });
-            }, subscriptionFrame);
-            if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-                this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);
-            }
-            this.flushTests.push(flushTest);
-            var runMode = this.runMode;
-            return {
-                toBe: function (marbles, values, errorValue) {
-                    flushTest.ready = true;
-                    flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
-                }
-            };
-        };
-        TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {
-            var flushTest = { actual: actualSubscriptionLogs, ready: false };
-            this.flushTests.push(flushTest);
-            var runMode = this.runMode;
-            return {
-                toBe: function (marbles) {
-                    var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;
-                    flushTest.ready = true;
-                    flushTest.expected = marblesArray.map(function (marbles) {
-                        return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);
-                    });
-                }
-            };
-        };
-        TestScheduler.prototype.flush = function () {
-            var _this = this;
-            var hotObservables = this.hotObservables;
-            while (hotObservables.length > 0) {
-                hotObservables.shift().setup();
-            }
-            _super.prototype.flush.call(this);
-            this.flushTests = this.flushTests.filter(function (test) {
-                if (test.ready) {
-                    _this.assertDeepEqual(test.actual, test.expected);
-                    return false;
-                }
-                return true;
-            });
-        };
-        TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {
-            var _this = this;
-            if (runMode === void 0) { runMode = false; }
-            if (typeof marbles !== 'string') {
-                return new SubscriptionLog(Number.POSITIVE_INFINITY);
-            }
-            var len = marbles.length;
-            var groupStart = -1;
-            var subscriptionFrame = Number.POSITIVE_INFINITY;
-            var unsubscriptionFrame = Number.POSITIVE_INFINITY;
-            var frame = 0;
-            var _loop_1 = function (i) {
-                var nextFrame = frame;
-                var advanceFrameBy = function (count) {
-                    nextFrame += count * _this.frameTimeFactor;
-                };
-                var c = marbles[i];
-                switch (c) {
-                    case ' ':
-                        if (!runMode) {
-                            advanceFrameBy(1);
-                        }
-                        break;
-                    case '-':
-                        advanceFrameBy(1);
-                        break;
-                    case '(':
-                        groupStart = frame;
-                        advanceFrameBy(1);
-                        break;
-                    case ')':
-                        groupStart = -1;
-                        advanceFrameBy(1);
-                        break;
-                    case '^':
-                        if (subscriptionFrame !== Number.POSITIVE_INFINITY) {
-                            throw new Error('found a second subscription point \'^\' in a ' +
-                                'subscription marble diagram. There can only be one.');
-                        }
-                        subscriptionFrame = groupStart > -1 ? groupStart : frame;
-                        advanceFrameBy(1);
-                        break;
-                    case '!':
-                        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-                            throw new Error('found a second subscription point \'^\' in a ' +
-                                'subscription marble diagram. There can only be one.');
-                        }
-                        unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
-                        break;
-                    default:
-                        if (runMode && c.match(/^[0-9]$/)) {
-                            if (i === 0 || marbles[i - 1] === ' ') {
-                                var buffer = marbles.slice(i);
-                                var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                                if (match) {
-                                    i += match[0].length - 1;
-                                    var duration = parseFloat(match[1]);
-                                    var unit = match[2];
-                                    var durationInMs = void 0;
-                                    switch (unit) {
-                                        case 'ms':
-                                            durationInMs = duration;
-                                            break;
-                                        case 's':
-                                            durationInMs = duration * 1000;
-                                            break;
-                                        case 'm':
-                                            durationInMs = duration * 1000 * 60;
-                                            break;
-                                        default:
-                                            break;
-                                    }
-                                    advanceFrameBy(durationInMs / this_1.frameTimeFactor);
-                                    break;
-                                }
-                            }
-                        }
-                        throw new Error('there can only be \'^\' and \'!\' markers in a ' +
-                            'subscription marble diagram. Found instead \'' + c + '\'.');
-                }
-                frame = nextFrame;
-                out_i_1 = i;
-            };
-            var this_1 = this, out_i_1;
-            for (var i = 0; i < len; i++) {
-                _loop_1(i);
-                i = out_i_1;
-            }
-            if (unsubscriptionFrame < 0) {
-                return new SubscriptionLog(subscriptionFrame);
-            }
-            else {
-                return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
-            }
-        };
-        TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {
-            var _this = this;
-            if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }
-            if (runMode === void 0) { runMode = false; }
-            if (marbles.indexOf('!') !== -1) {
-                throw new Error('conventional marble diagrams cannot have the ' +
-                    'unsubscription marker "!"');
-            }
-            var len = marbles.length;
-            var testMessages = [];
-            var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
-            var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);
-            var getValue = typeof values !== 'object' ?
-                function (x) { return x; } :
-                function (x) {
-                    if (materializeInnerObservables && values[x] instanceof ColdObservable) {
-                        return values[x].messages;
-                    }
-                    return values[x];
-                };
-            var groupStart = -1;
-            var _loop_2 = function (i) {
-                var nextFrame = frame;
-                var advanceFrameBy = function (count) {
-                    nextFrame += count * _this.frameTimeFactor;
-                };
-                var notification = void 0;
-                var c = marbles[i];
-                switch (c) {
-                    case ' ':
-                        if (!runMode) {
-                            advanceFrameBy(1);
-                        }
-                        break;
-                    case '-':
-                        advanceFrameBy(1);
-                        break;
-                    case '(':
-                        groupStart = frame;
-                        advanceFrameBy(1);
-                        break;
-                    case ')':
-                        groupStart = -1;
-                        advanceFrameBy(1);
-                        break;
-                    case '|':
-                        notification = Notification.createComplete();
-                        advanceFrameBy(1);
-                        break;
-                    case '^':
-                        advanceFrameBy(1);
-                        break;
-                    case '#':
-                        notification = Notification.createError(errorValue || 'error');
-                        advanceFrameBy(1);
-                        break;
-                    default:
-                        if (runMode && c.match(/^[0-9]$/)) {
-                            if (i === 0 || marbles[i - 1] === ' ') {
-                                var buffer = marbles.slice(i);
-                                var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                                if (match) {
-                                    i += match[0].length - 1;
-                                    var duration = parseFloat(match[1]);
-                                    var unit = match[2];
-                                    var durationInMs = void 0;
-                                    switch (unit) {
-                                        case 'ms':
-                                            durationInMs = duration;
-                                            break;
-                                        case 's':
-                                            durationInMs = duration * 1000;
-                                            break;
-                                        case 'm':
-                                            durationInMs = duration * 1000 * 60;
-                                            break;
-                                        default:
-                                            break;
-                                    }
-                                    advanceFrameBy(durationInMs / this_2.frameTimeFactor);
-                                    break;
-                                }
-                            }
-                        }
-                        notification = Notification.createNext(getValue(c));
-                        advanceFrameBy(1);
-                        break;
-                }
-                if (notification) {
-                    testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });
-                }
-                frame = nextFrame;
-                out_i_2 = i;
-            };
-            var this_2 = this, out_i_2;
-            for (var i = 0; i < len; i++) {
-                _loop_2(i);
-                i = out_i_2;
-            }
-            return testMessages;
-        };
-        TestScheduler.prototype.run = function (callback) {
-            var prevFrameTimeFactor = TestScheduler.frameTimeFactor;
-            var prevMaxFrames = this.maxFrames;
-            TestScheduler.frameTimeFactor = 1;
-            this.maxFrames = Number.POSITIVE_INFINITY;
-            this.runMode = true;
-            AsyncScheduler.delegate = this;
-            var helpers = {
-                cold: this.createColdObservable.bind(this),
-                hot: this.createHotObservable.bind(this),
-                flush: this.flush.bind(this),
-                expectObservable: this.expectObservable.bind(this),
-                expectSubscriptions: this.expectSubscriptions.bind(this),
-            };
-            try {
-                var ret = callback(helpers);
-                this.flush();
-                return ret;
-            }
-            finally {
-                TestScheduler.frameTimeFactor = prevFrameTimeFactor;
-                this.maxFrames = prevMaxFrames;
-                this.runMode = false;
-                AsyncScheduler.delegate = undefined;
-            }
-        };
-        return TestScheduler;
-    }(VirtualTimeScheduler));
-
-
-
-    var _testing = /*#__PURE__*/Object.freeze({
-        TestScheduler: TestScheduler
-    });
-
-    var __window = typeof window !== 'undefined' && window;
-    var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
-        self instanceof WorkerGlobalScope && self;
-    var __global = typeof global !== 'undefined' && global;
-    var _root = __window || __global || __self;
-    (function () {
-        if (!_root) {
-            throw new Error('RxJS could not find any global context (window, self, global)');
-        }
-    })();
-
-    function getCORSRequest() {
-        if (_root.XMLHttpRequest) {
-            return new _root.XMLHttpRequest();
-        }
-        else if (!!_root.XDomainRequest) {
-            return new _root.XDomainRequest();
-        }
-        else {
-            throw new Error('CORS is not supported by your browser');
-        }
-    }
-    function getXMLHttpRequest() {
-        if (_root.XMLHttpRequest) {
-            return new _root.XMLHttpRequest();
-        }
-        else {
-            var progId = void 0;
-            try {
-                var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-                for (var i = 0; i < 3; i++) {
-                    try {
-                        progId = progIds[i];
-                        if (new _root.ActiveXObject(progId)) {
-                            break;
-                        }
-                    }
-                    catch (e) {
-                    }
-                }
-                return new _root.ActiveXObject(progId);
-            }
-            catch (e) {
-                throw new Error('XMLHttpRequest is not supported by your browser');
-            }
-        }
-    }
-    function ajaxGet(url, headers) {
-        if (headers === void 0) { headers = null; }
-        return new AjaxObservable({ method: 'GET', url: url, headers: headers });
-    }
-    function ajaxPost(url, body, headers) {
-        return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });
-    }
-    function ajaxDelete(url, headers) {
-        return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });
-    }
-    function ajaxPut(url, body, headers) {
-        return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });
-    }
-    function ajaxPatch(url, body, headers) {
-        return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });
-    }
-    var mapResponse = map(function (x, index) { return x.response; });
-    function ajaxGetJSON(url, headers) {
-        return mapResponse(new AjaxObservable({
-            method: 'GET',
-            url: url,
-            responseType: 'json',
-            headers: headers
-        }));
-    }
-    var AjaxObservable = (function (_super) {
-        __extends(AjaxObservable, _super);
-        function AjaxObservable(urlOrRequest) {
-            var _this = _super.call(this) || this;
-            var request = {
-                async: true,
-                createXHR: function () {
-                    return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();
-                },
-                crossDomain: true,
-                withCredentials: false,
-                headers: {},
-                method: 'GET',
-                responseType: 'json',
-                timeout: 0
-            };
-            if (typeof urlOrRequest === 'string') {
-                request.url = urlOrRequest;
-            }
-            else {
-                for (var prop in urlOrRequest) {
-                    if (urlOrRequest.hasOwnProperty(prop)) {
-                        request[prop] = urlOrRequest[prop];
-                    }
-                }
-            }
-            _this.request = request;
-            return _this;
-        }
-        AjaxObservable.prototype._subscribe = function (subscriber) {
-            return new AjaxSubscriber(subscriber, this.request);
-        };
-        AjaxObservable.create = (function () {
-            var create = function (urlOrRequest) {
-                return new AjaxObservable(urlOrRequest);
-            };
-            create.get = ajaxGet;
-            create.post = ajaxPost;
-            create.delete = ajaxDelete;
-            create.put = ajaxPut;
-            create.patch = ajaxPatch;
-            create.getJSON = ajaxGetJSON;
-            return create;
-        })();
-        return AjaxObservable;
-    }(Observable));
-    var AjaxSubscriber = (function (_super) {
-        __extends(AjaxSubscriber, _super);
-        function AjaxSubscriber(destination, request) {
-            var _this = _super.call(this, destination) || this;
-            _this.request = request;
-            _this.done = false;
-            var headers = request.headers = request.headers || {};
-            if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {
-                headers['X-Requested-With'] = 'XMLHttpRequest';
-            }
-            var contentTypeHeader = _this.getHeader(headers, 'Content-Type');
-            if (!contentTypeHeader && !(_root.FormData && request.body instanceof _root.FormData) && typeof request.body !== 'undefined') {
-                headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
-            }
-            request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));
-            _this.send();
-            return _this;
-        }
-        AjaxSubscriber.prototype.next = function (e) {
-            this.done = true;
-            var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;
-            var result;
-            try {
-                result = new AjaxResponse(e, xhr, request);
-            }
-            catch (err) {
-                return destination.error(err);
-            }
-            destination.next(result);
-        };
-        AjaxSubscriber.prototype.send = function () {
-            var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;
-            try {
-                var xhr = this.xhr = request.createXHR();
-                this.setupEvents(xhr, request);
-                if (user) {
-                    xhr.open(method, url, async, user, password);
-                }
-                else {
-                    xhr.open(method, url, async);
-                }
-                if (async) {
-                    xhr.timeout = request.timeout;
-                    xhr.responseType = request.responseType;
-                }
-                if ('withCredentials' in xhr) {
-                    xhr.withCredentials = !!request.withCredentials;
-                }
-                this.setHeaders(xhr, headers);
-                if (body) {
-                    xhr.send(body);
-                }
-                else {
-                    xhr.send();
-                }
-            }
-            catch (err) {
-                this.error(err);
-            }
-        };
-        AjaxSubscriber.prototype.serializeBody = function (body, contentType) {
-            if (!body || typeof body === 'string') {
-                return body;
-            }
-            else if (_root.FormData && body instanceof _root.FormData) {
-                return body;
-            }
-            if (contentType) {
-                var splitIndex = contentType.indexOf(';');
-                if (splitIndex !== -1) {
-                    contentType = contentType.substring(0, splitIndex);
-                }
-            }
-            switch (contentType) {
-                case 'application/x-www-form-urlencoded':
-                    return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&');
-                case 'application/json':
-                    return JSON.stringify(body);
-                default:
-                    return body;
-            }
-        };
-        AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {
-            for (var key in headers) {
-                if (headers.hasOwnProperty(key)) {
-                    xhr.setRequestHeader(key, headers[key]);
-                }
-            }
-        };
-        AjaxSubscriber.prototype.getHeader = function (headers, headerName) {
-            for (var key in headers) {
-                if (key.toLowerCase() === headerName.toLowerCase()) {
-                    return headers[key];
-                }
-            }
-            return undefined;
-        };
-        AjaxSubscriber.prototype.setupEvents = function (xhr, request) {
-            var progressSubscriber = request.progressSubscriber;
-            function xhrTimeout(e) {
-                var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-                if (progressSubscriber) {
-                    progressSubscriber.error(e);
-                }
-                var error;
-                try {
-                    error = new AjaxTimeoutError(this, request);
-                }
-                catch (err) {
-                    error = err;
-                }
-                subscriber.error(error);
-            }
-            xhr.ontimeout = xhrTimeout;
-            xhrTimeout.request = request;
-            xhrTimeout.subscriber = this;
-            xhrTimeout.progressSubscriber = progressSubscriber;
-            if (xhr.upload && 'withCredentials' in xhr) {
-                if (progressSubscriber) {
-                    var xhrProgress_1;
-                    xhrProgress_1 = function (e) {
-                        var progressSubscriber = xhrProgress_1.progressSubscriber;
-                        progressSubscriber.next(e);
-                    };
-                    if (_root.XDomainRequest) {
-                        xhr.onprogress = xhrProgress_1;
-                    }
-                    else {
-                        xhr.upload.onprogress = xhrProgress_1;
-                    }
-                    xhrProgress_1.progressSubscriber = progressSubscriber;
-                }
-                var xhrError_1;
-                xhrError_1 = function (e) {
-                    var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;
-                    if (progressSubscriber) {
-                        progressSubscriber.error(e);
-                    }
-                    var error;
-                    try {
-                        error = new AjaxError('ajax error', this, request);
-                    }
-                    catch (err) {
-                        error = err;
-                    }
-                    subscriber.error(error);
-                };
-                xhr.onerror = xhrError_1;
-                xhrError_1.request = request;
-                xhrError_1.subscriber = this;
-                xhrError_1.progressSubscriber = progressSubscriber;
-            }
-            function xhrReadyStateChange(e) {
-                return;
-            }
-            xhr.onreadystatechange = xhrReadyStateChange;
-            xhrReadyStateChange.subscriber = this;
-            xhrReadyStateChange.progressSubscriber = progressSubscriber;
-            xhrReadyStateChange.request = request;
-            function xhrLoad(e) {
-                var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-                if (this.readyState === 4) {
-                    var status_1 = this.status === 1223 ? 204 : this.status;
-                    var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);
-                    if (status_1 === 0) {
-                        status_1 = response ? 200 : 0;
-                    }
-                    if (status_1 < 400) {
-                        if (progressSubscriber) {
-                            progressSubscriber.complete();
-                        }
-                        subscriber.next(e);
-                        subscriber.complete();
-                    }
-                    else {
-                        if (progressSubscriber) {
-                            progressSubscriber.error(e);
-                        }
-                        var error = void 0;
-                        try {
-                            error = new AjaxError('ajax error ' + status_1, this, request);
-                        }
-                        catch (err) {
-                            error = err;
-                        }
-                        subscriber.error(error);
-                    }
-                }
-            }
-            xhr.onload = xhrLoad;
-            xhrLoad.subscriber = this;
-            xhrLoad.progressSubscriber = progressSubscriber;
-            xhrLoad.request = request;
-        };
-        AjaxSubscriber.prototype.unsubscribe = function () {
-            var _a = this, done = _a.done, xhr = _a.xhr;
-            if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {
-                xhr.abort();
-            }
-            _super.prototype.unsubscribe.call(this);
-        };
-        return AjaxSubscriber;
-    }(Subscriber));
-    var AjaxResponse = (function () {
-        function AjaxResponse(originalEvent, xhr, request) {
-            this.originalEvent = originalEvent;
-            this.xhr = xhr;
-            this.request = request;
-            this.status = xhr.status;
-            this.responseType = xhr.responseType || request.responseType;
-            this.response = parseXhrResponse(this.responseType, xhr);
-        }
-        return AjaxResponse;
-    }());
-    var AjaxErrorImpl = (function () {
-        function AjaxErrorImpl(message, xhr, request) {
-            Error.call(this);
-            this.message = message;
-            this.name = 'AjaxError';
-            this.xhr = xhr;
-            this.request = request;
-            this.status = xhr.status;
-            this.responseType = xhr.responseType || request.responseType;
-            this.response = parseXhrResponse(this.responseType, xhr);
-            return this;
-        }
-        AjaxErrorImpl.prototype = Object.create(Error.prototype);
-        return AjaxErrorImpl;
-    })();
-    var AjaxError = AjaxErrorImpl;
-    function parseJson(xhr) {
-        if ('response' in xhr) {
-            return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');
-        }
-        else {
-            return JSON.parse(xhr.responseText || 'null');
-        }
-    }
-    function parseXhrResponse(responseType, xhr) {
-        switch (responseType) {
-            case 'json':
-                return parseJson(xhr);
-            case 'xml':
-                return xhr.responseXML;
-            case 'text':
-            default:
-                return ('response' in xhr) ? xhr.response : xhr.responseText;
-        }
-    }
-    function AjaxTimeoutErrorImpl(xhr, request) {
-        AjaxError.call(this, 'ajax timeout', xhr, request);
-        this.name = 'AjaxTimeoutError';
-        return this;
-    }
-    var AjaxTimeoutError = AjaxTimeoutErrorImpl;
-
-    var ajax = (function () { return AjaxObservable.create; })();
-
-
-
-    var _ajax = /*#__PURE__*/Object.freeze({
-        ajax: ajax,
-        AjaxResponse: AjaxResponse,
-        AjaxError: AjaxError,
-        AjaxTimeoutError: AjaxTimeoutError
-    });
-
-    var DEFAULT_WEBSOCKET_CONFIG = {
-        url: '',
-        deserializer: function (e) { return JSON.parse(e.data); },
-        serializer: function (value) { return JSON.stringify(value); },
-    };
-    var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
-    var WebSocketSubject = (function (_super) {
-        __extends(WebSocketSubject, _super);
-        function WebSocketSubject(urlConfigOrSource, destination) {
-            var _this = _super.call(this) || this;
-            if (urlConfigOrSource instanceof Observable) {
-                _this.destination = destination;
-                _this.source = urlConfigOrSource;
-            }
-            else {
-                var config = _this._config = __assign({}, DEFAULT_WEBSOCKET_CONFIG);
-                _this._output = new Subject();
-                if (typeof urlConfigOrSource === 'string') {
-                    config.url = urlConfigOrSource;
-                }
-                else {
-                    for (var key in urlConfigOrSource) {
-                        if (urlConfigOrSource.hasOwnProperty(key)) {
-                            config[key] = urlConfigOrSource[key];
-                        }
-                    }
-                }
-                if (!config.WebSocketCtor && WebSocket) {
-                    config.WebSocketCtor = WebSocket;
-                }
-                else if (!config.WebSocketCtor) {
-                    throw new Error('no WebSocket constructor can be found');
-                }
-                _this.destination = new ReplaySubject();
-            }
-            return _this;
-        }
-        WebSocketSubject.prototype.lift = function (operator) {
-            var sock = new WebSocketSubject(this._config, this.destination);
-            sock.operator = operator;
-            sock.source = this;
-            return sock;
-        };
-        WebSocketSubject.prototype._resetState = function () {
-            this._socket = null;
-            if (!this.source) {
-                this.destination = new ReplaySubject();
-            }
-            this._output = new Subject();
-        };
-        WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {
-            var self = this;
-            return new Observable(function (observer) {
-                try {
-                    self.next(subMsg());
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-                var subscription = self.subscribe(function (x) {
-                    try {
-                        if (messageFilter(x)) {
-                            observer.next(x);
-                        }
-                    }
-                    catch (err) {
-                        observer.error(err);
-                    }
-                }, function (err) { return observer.error(err); }, function () { return observer.complete(); });
-                return function () {
-                    try {
-                        self.next(unsubMsg());
-                    }
-                    catch (err) {
-                        observer.error(err);
-                    }
-                    subscription.unsubscribe();
-                };
-            });
-        };
-        WebSocketSubject.prototype._connectSocket = function () {
-            var _this = this;
-            var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;
-            var observer = this._output;
-            var socket = null;
-            try {
-                socket = protocol ?
-                    new WebSocketCtor(url, protocol) :
-                    new WebSocketCtor(url);
-                this._socket = socket;
-                if (binaryType) {
-                    this._socket.binaryType = binaryType;
-                }
-            }
-            catch (e) {
-                observer.error(e);
-                return;
-            }
-            var subscription = new Subscription(function () {
-                _this._socket = null;
-                if (socket && socket.readyState === 1) {
-                    socket.close();
-                }
-            });
-            socket.onopen = function (e) {
-                var _socket = _this._socket;
-                if (!_socket) {
-                    socket.close();
-                    _this._resetState();
-                    return;
-                }
-                var openObserver = _this._config.openObserver;
-                if (openObserver) {
-                    openObserver.next(e);
-                }
-                var queue = _this.destination;
-                _this.destination = Subscriber.create(function (x) {
-                    if (socket.readyState === 1) {
-                        try {
-                            var serializer = _this._config.serializer;
-                            socket.send(serializer(x));
-                        }
-                        catch (e) {
-                            _this.destination.error(e);
-                        }
-                    }
-                }, function (e) {
-                    var closingObserver = _this._config.closingObserver;
-                    if (closingObserver) {
-                        closingObserver.next(undefined);
-                    }
-                    if (e && e.code) {
-                        socket.close(e.code, e.reason);
-                    }
-                    else {
-                        observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
-                    }
-                    _this._resetState();
-                }, function () {
-                    var closingObserver = _this._config.closingObserver;
-                    if (closingObserver) {
-                        closingObserver.next(undefined);
-                    }
-                    socket.close();
-                    _this._resetState();
-                });
-                if (queue && queue instanceof ReplaySubject) {
-                    subscription.add(queue.subscribe(_this.destination));
-                }
-            };
-            socket.onerror = function (e) {
-                _this._resetState();
-                observer.error(e);
-            };
-            socket.onclose = function (e) {
-                _this._resetState();
-                var closeObserver = _this._config.closeObserver;
-                if (closeObserver) {
-                    closeObserver.next(e);
-                }
-                if (e.wasClean) {
-                    observer.complete();
-                }
-                else {
-                    observer.error(e);
-                }
-            };
-            socket.onmessage = function (e) {
-                try {
-                    var deserializer = _this._config.deserializer;
-                    observer.next(deserializer(e));
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-            };
-        };
-        WebSocketSubject.prototype._subscribe = function (subscriber) {
-            var _this = this;
-            var source = this.source;
-            if (source) {
-                return source.subscribe(subscriber);
-            }
-            if (!this._socket) {
-                this._connectSocket();
-            }
-            this._output.subscribe(subscriber);
-            subscriber.add(function () {
-                var _socket = _this._socket;
-                if (_this._output.observers.length === 0) {
-                    if (_socket && _socket.readyState === 1) {
-                        _socket.close();
-                    }
-                    _this._resetState();
-                }
-            });
-            return subscriber;
-        };
-        WebSocketSubject.prototype.unsubscribe = function () {
-            var _socket = this._socket;
-            if (_socket && _socket.readyState === 1) {
-                _socket.close();
-            }
-            this._resetState();
-            _super.prototype.unsubscribe.call(this);
-        };
-        return WebSocketSubject;
-    }(AnonymousSubject));
-
-    function webSocket(urlConfigOrSource) {
-        return new WebSocketSubject(urlConfigOrSource);
-    }
-
-
-
-    var _webSocket = /*#__PURE__*/Object.freeze({
-        webSocket: webSocket,
-        WebSocketSubject: WebSocketSubject
-    });
-
-    function fromFetch(input, init) {
-        return new Observable(function (subscriber) {
-            var controller = new AbortController();
-            var signal = controller.signal;
-            var outerSignalHandler;
-            var abortable = true;
-            var unsubscribed = false;
-            if (init) {
-                if (init.signal) {
-                    if (init.signal.aborted) {
-                        controller.abort();
-                    }
-                    else {
-                        outerSignalHandler = function () {
-                            if (!signal.aborted) {
-                                controller.abort();
-                            }
-                        };
-                        init.signal.addEventListener('abort', outerSignalHandler);
-                    }
-                }
-                init = __assign({}, init, { signal: signal });
-            }
-            else {
-                init = { signal: signal };
-            }
-            fetch(input, init).then(function (response) {
-                abortable = false;
-                subscriber.next(response);
-                subscriber.complete();
-            }).catch(function (err) {
-                abortable = false;
-                if (!unsubscribed) {
-                    subscriber.error(err);
-                }
-            });
-            return function () {
-                unsubscribed = true;
-                if (abortable) {
-                    controller.abort();
-                }
-            };
-        });
-    }
-
-
-
-    var _fetch = /*#__PURE__*/Object.freeze({
-        fromFetch: fromFetch
-    });
-
-    var operators = _operators;
-    var testing = _testing;
-    var ajax$1 = _ajax;
-    var webSocket$1 = _webSocket;
-    var fetch$1 = _fetch;
-
-    exports.operators = operators;
-    exports.testing = testing;
-    exports.ajax = ajax$1;
-    exports.webSocket = webSocket$1;
-    exports.fetch = fetch$1;
-    exports.Observable = Observable;
-    exports.ConnectableObservable = ConnectableObservable;
-    exports.GroupedObservable = GroupedObservable;
-    exports.observable = observable;
-    exports.Subject = Subject;
-    exports.BehaviorSubject = BehaviorSubject;
-    exports.ReplaySubject = ReplaySubject;
-    exports.AsyncSubject = AsyncSubject;
-    exports.asapScheduler = asap;
-    exports.asyncScheduler = async;
-    exports.queueScheduler = queue;
-    exports.animationFrameScheduler = animationFrame;
-    exports.VirtualTimeScheduler = VirtualTimeScheduler;
-    exports.VirtualAction = VirtualAction;
-    exports.Scheduler = Scheduler;
-    exports.Subscription = Subscription;
-    exports.Subscriber = Subscriber;
-    exports.Notification = Notification;
-    exports.pipe = pipe;
-    exports.noop = noop;
-    exports.identity = identity;
-    exports.isObservable = isObservable;
-    exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;
-    exports.EmptyError = EmptyError;
-    exports.ObjectUnsubscribedError = ObjectUnsubscribedError;
-    exports.UnsubscriptionError = UnsubscriptionError;
-    exports.TimeoutError = TimeoutError;
-    exports.bindCallback = bindCallback;
-    exports.bindNodeCallback = bindNodeCallback;
-    exports.combineLatest = combineLatest;
-    exports.concat = concat;
-    exports.defer = defer;
-    exports.empty = empty$1;
-    exports.forkJoin = forkJoin;
-    exports.from = from;
-    exports.fromEvent = fromEvent;
-    exports.fromEventPattern = fromEventPattern;
-    exports.generate = generate;
-    exports.iif = iif;
-    exports.interval = interval;
-    exports.merge = merge;
-    exports.never = never;
-    exports.of = of;
-    exports.onErrorResumeNext = onErrorResumeNext;
-    exports.pairs = pairs;
-    exports.partition = partition;
-    exports.race = race;
-    exports.range = range;
-    exports.throwError = throwError;
-    exports.timer = timer;
-    exports.using = using;
-    exports.zip = zip;
-    exports.scheduled = scheduled;
-    exports.EMPTY = EMPTY;
-    exports.NEVER = NEVER;
-    exports.config = config;
-
-    Object.defineProperty(exports, '__esModule', { value: true });
-
-})));
-
-//# sourceMappingURL=rxjs.umd.js.map
-
diff --git a/node_modules/rxjs/bundles/rxjs.umd.js.map b/node_modules/rxjs/bundles/rxjs.umd.js.map
deleted file mode 100644
index 1e229ab..0000000
--- a/node_modules/rxjs/bundles/rxjs.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"umd.js","sources":["../tslib/tslib.es6.js","../dist/esm5_for_rollup/internal/util/isFunction.js","../dist/esm5_for_rollup/internal/config.js","../dist/esm5_for_rollup/internal/util/hostReportError.js","../dist/esm5_for_rollup/internal/Observer.js","../dist/esm5_for_rollup/internal/util/isArray.js","../dist/esm5_for_rollup/internal/util/isObject.js","../dist/esm5_for_rollup/internal/util/UnsubscriptionError.js","../dist/esm5_for_rollup/internal/Subscription.js","../dist/esm5_for_rollup/internal/symbol/rxSubscriber.js","../dist/esm5_for_rollup/internal/Subscriber.js","../dist/esm5_for_rollup/internal/util/canReportError.js","../dist/esm5_for_rollup/internal/util/toSubscriber.js","../dist/esm5_for_rollup/internal/symbol/observable.js","../dist/esm5_for_rollup/internal/util/noop.js","../dist/esm5_for_rollup/internal/util/pipe.js","../dist/esm5_for_rollup/internal/Observable.js","../dist/esm5_for_rollup/internal/util/ObjectUnsubscribedError.js","../dist/esm5_for_rollup/internal/SubjectSubscription.js","../dist/esm5_for_rollup/internal/Subject.js","../dist/esm5_for_rollup/internal/operators/refCount.js","../dist/esm5_for_rollup/internal/observable/ConnectableObservable.js","../dist/esm5_for_rollup/internal/operators/groupBy.js","../dist/esm5_for_rollup/internal/BehaviorSubject.js","../dist/esm5_for_rollup/internal/scheduler/Action.js","../dist/esm5_for_rollup/internal/scheduler/AsyncAction.js","../dist/esm5_for_rollup/internal/scheduler/QueueAction.js","../dist/esm5_for_rollup/internal/Scheduler.js","../dist/esm5_for_rollup/internal/scheduler/AsyncScheduler.js","../dist/esm5_for_rollup/internal/scheduler/QueueScheduler.js","../dist/esm5_for_rollup/internal/scheduler/queue.js","../dist/esm5_for_rollup/internal/observable/empty.js","../dist/esm5_for_rollup/internal/util/isScheduler.js","../dist/esm5_for_rollup/internal/util/subscribeToArray.js","../dist/esm5_for_rollup/internal/scheduled/scheduleArray.js","../dist/esm5_for_rollup/internal/observable/fromArray.js","../dist/esm5_for_rollup/internal/observable/of.js","../dist/esm5_for_rollup/internal/observable/throwError.js","../dist/esm5_for_rollup/internal/Notification.js","../dist/esm5_for_rollup/internal/operators/observeOn.js","../dist/esm5_for_rollup/internal/ReplaySubject.js","../dist/esm5_for_rollup/internal/AsyncSubject.js","../dist/esm5_for_rollup/internal/util/Immediate.js","../dist/esm5_for_rollup/internal/scheduler/AsapAction.js","../dist/esm5_for_rollup/internal/scheduler/AsapScheduler.js","../dist/esm5_for_rollup/internal/scheduler/asap.js","../dist/esm5_for_rollup/internal/scheduler/async.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameAction.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameScheduler.js","../dist/esm5_for_rollup/internal/scheduler/animationFrame.js","../dist/esm5_for_rollup/internal/scheduler/VirtualTimeScheduler.js","../dist/esm5_for_rollup/internal/util/identity.js","../dist/esm5_for_rollup/internal/util/isObservable.js","../dist/esm5_for_rollup/internal/util/ArgumentOutOfRangeError.js","../dist/esm5_for_rollup/internal/util/EmptyError.js","../dist/esm5_for_rollup/internal/util/TimeoutError.js","../dist/esm5_for_rollup/internal/operators/map.js","../dist/esm5_for_rollup/internal/observable/bindCallback.js","../dist/esm5_for_rollup/internal/observable/bindNodeCallback.js","../dist/esm5_for_rollup/internal/OuterSubscriber.js","../dist/esm5_for_rollup/internal/InnerSubscriber.js","../dist/esm5_for_rollup/internal/util/subscribeToPromise.js","../dist/esm5_for_rollup/internal/symbol/iterator.js","../dist/esm5_for_rollup/internal/util/subscribeToIterable.js","../dist/esm5_for_rollup/internal/util/subscribeToObservable.js","../dist/esm5_for_rollup/internal/util/isArrayLike.js","../dist/esm5_for_rollup/internal/util/isPromise.js","../dist/esm5_for_rollup/internal/util/subscribeTo.js","../dist/esm5_for_rollup/internal/util/subscribeToResult.js","../dist/esm5_for_rollup/internal/observable/combineLatest.js","../dist/esm5_for_rollup/internal/scheduled/scheduleObservable.js","../dist/esm5_for_rollup/internal/scheduled/schedulePromise.js","../dist/esm5_for_rollup/internal/scheduled/scheduleIterable.js","../dist/esm5_for_rollup/internal/util/isInteropObservable.js","../dist/esm5_for_rollup/internal/util/isIterable.js","../dist/esm5_for_rollup/internal/scheduled/scheduled.js","../dist/esm5_for_rollup/internal/observable/from.js","../dist/esm5_for_rollup/internal/operators/mergeMap.js","../dist/esm5_for_rollup/internal/operators/mergeAll.js","../dist/esm5_for_rollup/internal/operators/concatAll.js","../dist/esm5_for_rollup/internal/observable/concat.js","../dist/esm5_for_rollup/internal/observable/defer.js","../dist/esm5_for_rollup/internal/observable/forkJoin.js","../dist/esm5_for_rollup/internal/observable/fromEvent.js","../dist/esm5_for_rollup/internal/observable/fromEventPattern.js","../dist/esm5_for_rollup/internal/observable/generate.js","../dist/esm5_for_rollup/internal/observable/iif.js","../dist/esm5_for_rollup/internal/util/isNumeric.js","../dist/esm5_for_rollup/internal/observable/interval.js","../dist/esm5_for_rollup/internal/observable/merge.js","../dist/esm5_for_rollup/internal/observable/never.js","../dist/esm5_for_rollup/internal/observable/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/observable/pairs.js","../dist/esm5_for_rollup/internal/util/not.js","../dist/esm5_for_rollup/internal/operators/filter.js","../dist/esm5_for_rollup/internal/observable/partition.js","../dist/esm5_for_rollup/internal/observable/race.js","../dist/esm5_for_rollup/internal/observable/range.js","../dist/esm5_for_rollup/internal/observable/timer.js","../dist/esm5_for_rollup/internal/observable/using.js","../dist/esm5_for_rollup/internal/observable/zip.js","../dist/esm5_for_rollup/internal/operators/audit.js","../dist/esm5_for_rollup/internal/operators/auditTime.js","../dist/esm5_for_rollup/internal/operators/buffer.js","../dist/esm5_for_rollup/internal/operators/bufferCount.js","../dist/esm5_for_rollup/internal/operators/bufferTime.js","../dist/esm5_for_rollup/internal/operators/bufferToggle.js","../dist/esm5_for_rollup/internal/operators/bufferWhen.js","../dist/esm5_for_rollup/internal/operators/catchError.js","../dist/esm5_for_rollup/internal/operators/combineAll.js","../dist/esm5_for_rollup/internal/operators/combineLatest.js","../dist/esm5_for_rollup/internal/operators/concat.js","../dist/esm5_for_rollup/internal/operators/concatMap.js","../dist/esm5_for_rollup/internal/operators/concatMapTo.js","../dist/esm5_for_rollup/internal/operators/count.js","../dist/esm5_for_rollup/internal/operators/debounce.js","../dist/esm5_for_rollup/internal/operators/debounceTime.js","../dist/esm5_for_rollup/internal/operators/defaultIfEmpty.js","../dist/esm5_for_rollup/internal/util/isDate.js","../dist/esm5_for_rollup/internal/operators/delay.js","../dist/esm5_for_rollup/internal/operators/delayWhen.js","../dist/esm5_for_rollup/internal/operators/dematerialize.js","../dist/esm5_for_rollup/internal/operators/distinct.js","../dist/esm5_for_rollup/internal/operators/distinctUntilChanged.js","../dist/esm5_for_rollup/internal/operators/distinctUntilKeyChanged.js","../dist/esm5_for_rollup/internal/operators/throwIfEmpty.js","../dist/esm5_for_rollup/internal/operators/take.js","../dist/esm5_for_rollup/internal/operators/elementAt.js","../dist/esm5_for_rollup/internal/operators/endWith.js","../dist/esm5_for_rollup/internal/operators/every.js","../dist/esm5_for_rollup/internal/operators/exhaust.js","../dist/esm5_for_rollup/internal/operators/exhaustMap.js","../dist/esm5_for_rollup/internal/operators/expand.js","../dist/esm5_for_rollup/internal/operators/finalize.js","../dist/esm5_for_rollup/internal/operators/find.js","../dist/esm5_for_rollup/internal/operators/findIndex.js","../dist/esm5_for_rollup/internal/operators/first.js","../dist/esm5_for_rollup/internal/operators/ignoreElements.js","../dist/esm5_for_rollup/internal/operators/isEmpty.js","../dist/esm5_for_rollup/internal/operators/takeLast.js","../dist/esm5_for_rollup/internal/operators/last.js","../dist/esm5_for_rollup/internal/operators/mapTo.js","../dist/esm5_for_rollup/internal/operators/materialize.js","../dist/esm5_for_rollup/internal/operators/scan.js","../dist/esm5_for_rollup/internal/operators/reduce.js","../dist/esm5_for_rollup/internal/operators/max.js","../dist/esm5_for_rollup/internal/operators/merge.js","../dist/esm5_for_rollup/internal/operators/mergeMapTo.js","../dist/esm5_for_rollup/internal/operators/mergeScan.js","../dist/esm5_for_rollup/internal/operators/min.js","../dist/esm5_for_rollup/internal/operators/multicast.js","../dist/esm5_for_rollup/internal/operators/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/operators/pairwise.js","../dist/esm5_for_rollup/internal/operators/partition.js","../dist/esm5_for_rollup/internal/operators/pluck.js","../dist/esm5_for_rollup/internal/operators/publish.js","../dist/esm5_for_rollup/internal/operators/publishBehavior.js","../dist/esm5_for_rollup/internal/operators/publishLast.js","../dist/esm5_for_rollup/internal/operators/publishReplay.js","../dist/esm5_for_rollup/internal/operators/race.js","../dist/esm5_for_rollup/internal/operators/repeat.js","../dist/esm5_for_rollup/internal/operators/repeatWhen.js","../dist/esm5_for_rollup/internal/operators/retry.js","../dist/esm5_for_rollup/internal/operators/retryWhen.js","../dist/esm5_for_rollup/internal/operators/sample.js","../dist/esm5_for_rollup/internal/operators/sampleTime.js","../dist/esm5_for_rollup/internal/operators/sequenceEqual.js","../dist/esm5_for_rollup/internal/operators/share.js","../dist/esm5_for_rollup/internal/operators/shareReplay.js","../dist/esm5_for_rollup/internal/operators/single.js","../dist/esm5_for_rollup/internal/operators/skip.js","../dist/esm5_for_rollup/internal/operators/skipLast.js","../dist/esm5_for_rollup/internal/operators/skipUntil.js","../dist/esm5_for_rollup/internal/operators/skipWhile.js","../dist/esm5_for_rollup/internal/operators/startWith.js","../dist/esm5_for_rollup/internal/observable/SubscribeOnObservable.js","../dist/esm5_for_rollup/internal/operators/subscribeOn.js","../dist/esm5_for_rollup/internal/operators/switchMap.js","../dist/esm5_for_rollup/internal/operators/switchAll.js","../dist/esm5_for_rollup/internal/operators/switchMapTo.js","../dist/esm5_for_rollup/internal/operators/takeUntil.js","../dist/esm5_for_rollup/internal/operators/takeWhile.js","../dist/esm5_for_rollup/internal/operators/tap.js","../dist/esm5_for_rollup/internal/operators/throttle.js","../dist/esm5_for_rollup/internal/operators/throttleTime.js","../dist/esm5_for_rollup/internal/operators/timeInterval.js","../dist/esm5_for_rollup/internal/operators/timeoutWith.js","../dist/esm5_for_rollup/internal/operators/timeout.js","../dist/esm5_for_rollup/internal/operators/timestamp.js","../dist/esm5_for_rollup/internal/operators/toArray.js","../dist/esm5_for_rollup/internal/operators/window.js","../dist/esm5_for_rollup/internal/operators/windowCount.js","../dist/esm5_for_rollup/internal/operators/windowTime.js","../dist/esm5_for_rollup/internal/operators/windowToggle.js","../dist/esm5_for_rollup/internal/operators/windowWhen.js","../dist/esm5_for_rollup/internal/operators/withLatestFrom.js","../dist/esm5_for_rollup/internal/operators/zip.js","../dist/esm5_for_rollup/internal/operators/zipAll.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLog.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLoggable.js","../dist/esm5_for_rollup/internal/util/applyMixins.js","../dist/esm5_for_rollup/internal/testing/ColdObservable.js","../dist/esm5_for_rollup/internal/testing/HotObservable.js","../dist/esm5_for_rollup/internal/testing/TestScheduler.js","../dist/esm5_for_rollup/internal/util/root.js","../dist/esm5_for_rollup/internal/observable/dom/AjaxObservable.js","../dist/esm5_for_rollup/internal/observable/dom/ajax.js","../dist/esm5_for_rollup/internal/observable/dom/WebSocketSubject.js","../dist/esm5_for_rollup/internal/observable/dom/webSocket.js","../dist/esm5_for_rollup/internal/observable/dom/fetch.js","../dist/esm5_for_rollup/internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n    return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n    Promise: undefined,\n    set useDeprecatedSynchronousErrorHandling(value) {\n        if (value) {\n            var error = new Error();\n            console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n        }\n        else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n            console.log('RxJS: Back to a better error behavior. Thank you. <3');\n        }\n        _enable_super_gross_mode_that_will_cause_bad_things = value;\n    },\n    get useDeprecatedSynchronousErrorHandling() {\n        return _enable_super_gross_mode_that_will_cause_bad_things;\n    },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n    setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n    closed: true,\n    next: function (value) { },\n    error: function (err) {\n        if (config.useDeprecatedSynchronousErrorHandling) {\n            throw err;\n        }\n        else {\n            hostReportError(err);\n        }\n    },\n    complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n    return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","var UnsubscriptionErrorImpl = (function () {\n    function UnsubscriptionErrorImpl(errors) {\n        Error.call(this);\n        this.message = errors ?\n            errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n  ') : '';\n        this.name = 'UnsubscriptionError';\n        this.errors = errors;\n        return this;\n    }\n    UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n    return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n    function Subscription(unsubscribe) {\n        this.closed = false;\n        this._parentOrParents = null;\n        this._subscriptions = null;\n        if (unsubscribe) {\n            this._unsubscribe = unsubscribe;\n        }\n    }\n    Subscription.prototype.unsubscribe = function () {\n        var errors;\n        if (this.closed) {\n            return;\n        }\n        var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n        this.closed = true;\n        this._parentOrParents = null;\n        this._subscriptions = null;\n        if (_parentOrParents instanceof Subscription) {\n            _parentOrParents.remove(this);\n        }\n        else if (_parentOrParents !== null) {\n            for (var index = 0; index < _parentOrParents.length; ++index) {\n                var parent_1 = _parentOrParents[index];\n                parent_1.remove(this);\n            }\n        }\n        if (isFunction(_unsubscribe)) {\n            try {\n                _unsubscribe.call(this);\n            }\n            catch (e) {\n                errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n            }\n        }\n        if (isArray(_subscriptions)) {\n            var index = -1;\n            var len = _subscriptions.length;\n            while (++index < len) {\n                var sub = _subscriptions[index];\n                if (isObject(sub)) {\n                    try {\n                        sub.unsubscribe();\n                    }\n                    catch (e) {\n                        errors = errors || [];\n                        if (e instanceof UnsubscriptionError) {\n                            errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n                        }\n                        else {\n                            errors.push(e);\n                        }\n                    }\n                }\n            }\n        }\n        if (errors) {\n            throw new UnsubscriptionError(errors);\n        }\n    };\n    Subscription.prototype.add = function (teardown) {\n        var subscription = teardown;\n        if (!teardown) {\n            return Subscription.EMPTY;\n        }\n        switch (typeof teardown) {\n            case 'function':\n                subscription = new Subscription(teardown);\n            case 'object':\n                if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n                    return subscription;\n                }\n                else if (this.closed) {\n                    subscription.unsubscribe();\n                    return subscription;\n                }\n                else if (!(subscription instanceof Subscription)) {\n                    var tmp = subscription;\n                    subscription = new Subscription();\n                    subscription._subscriptions = [tmp];\n                }\n                break;\n            default: {\n                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n            }\n        }\n        var _parentOrParents = subscription._parentOrParents;\n        if (_parentOrParents === null) {\n            subscription._parentOrParents = this;\n        }\n        else if (_parentOrParents instanceof Subscription) {\n            if (_parentOrParents === this) {\n                return subscription;\n            }\n            subscription._parentOrParents = [_parentOrParents, this];\n        }\n        else if (_parentOrParents.indexOf(this) === -1) {\n            _parentOrParents.push(this);\n        }\n        else {\n            return subscription;\n        }\n        var subscriptions = this._subscriptions;\n        if (subscriptions === null) {\n            this._subscriptions = [subscription];\n        }\n        else {\n            subscriptions.push(subscription);\n        }\n        return subscription;\n    };\n    Subscription.prototype.remove = function (subscription) {\n        var subscriptions = this._subscriptions;\n        if (subscriptions) {\n            var subscriptionIndex = subscriptions.indexOf(subscription);\n            if (subscriptionIndex !== -1) {\n                subscriptions.splice(subscriptionIndex, 1);\n            }\n        }\n    };\n    Subscription.EMPTY = (function (empty) {\n        empty.closed = true;\n        return empty;\n    }(new Subscription()));\n    return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = (function () {\n    return typeof Symbol === 'function'\n        ? Symbol('rxSubscriber')\n        : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n    tslib_1.__extends(Subscriber, _super);\n    function Subscriber(destinationOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this.syncErrorValue = null;\n        _this.syncErrorThrown = false;\n        _this.syncErrorThrowable = false;\n        _this.isStopped = false;\n        switch (arguments.length) {\n            case 0:\n                _this.destination = emptyObserver;\n                break;\n            case 1:\n                if (!destinationOrNext) {\n                    _this.destination = emptyObserver;\n                    break;\n                }\n                if (typeof destinationOrNext === 'object') {\n                    if (destinationOrNext instanceof Subscriber) {\n                        _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n                        _this.destination = destinationOrNext;\n                        destinationOrNext.add(_this);\n                    }\n                    else {\n                        _this.syncErrorThrowable = true;\n                        _this.destination = new SafeSubscriber(_this, destinationOrNext);\n                    }\n                    break;\n                }\n            default:\n                _this.syncErrorThrowable = true;\n                _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n                break;\n        }\n        return _this;\n    }\n    Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n    Subscriber.create = function (next, error, complete) {\n        var subscriber = new Subscriber(next, error, complete);\n        subscriber.syncErrorThrowable = false;\n        return subscriber;\n    };\n    Subscriber.prototype.next = function (value) {\n        if (!this.isStopped) {\n            this._next(value);\n        }\n    };\n    Subscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._error(err);\n        }\n    };\n    Subscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._complete();\n        }\n    };\n    Subscriber.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.isStopped = true;\n        _super.prototype.unsubscribe.call(this);\n    };\n    Subscriber.prototype._next = function (value) {\n        this.destination.next(value);\n    };\n    Subscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    Subscriber.prototype._complete = function () {\n        this.destination.complete();\n        this.unsubscribe();\n    };\n    Subscriber.prototype._unsubscribeAndRecycle = function () {\n        var _parentOrParents = this._parentOrParents;\n        this._parentOrParents = null;\n        this.unsubscribe();\n        this.closed = false;\n        this.isStopped = false;\n        this._parentOrParents = _parentOrParents;\n        return this;\n    };\n    return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n    tslib_1.__extends(SafeSubscriber, _super);\n    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this._parentSubscriber = _parentSubscriber;\n        var next;\n        var context = _this;\n        if (isFunction(observerOrNext)) {\n            next = observerOrNext;\n        }\n        else if (observerOrNext) {\n            next = observerOrNext.next;\n            error = observerOrNext.error;\n            complete = observerOrNext.complete;\n            if (observerOrNext !== emptyObserver) {\n                context = Object.create(observerOrNext);\n                if (isFunction(context.unsubscribe)) {\n                    _this.add(context.unsubscribe.bind(context));\n                }\n                context.unsubscribe = _this.unsubscribe.bind(_this);\n            }\n        }\n        _this._context = context;\n        _this._next = next;\n        _this._error = error;\n        _this._complete = complete;\n        return _this;\n    }\n    SafeSubscriber.prototype.next = function (value) {\n        if (!this.isStopped && this._next) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                this.__tryOrUnsub(this._next, value);\n            }\n            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n            if (this._error) {\n                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(this._error, err);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, this._error, err);\n                    this.unsubscribe();\n                }\n            }\n            else if (!_parentSubscriber.syncErrorThrowable) {\n                this.unsubscribe();\n                if (useDeprecatedSynchronousErrorHandling) {\n                    throw err;\n                }\n                hostReportError(err);\n            }\n            else {\n                if (useDeprecatedSynchronousErrorHandling) {\n                    _parentSubscriber.syncErrorValue = err;\n                    _parentSubscriber.syncErrorThrown = true;\n                }\n                else {\n                    hostReportError(err);\n                }\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.complete = function () {\n        var _this = this;\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (this._complete) {\n                var wrappedComplete = function () { return _this._complete.call(_this._context); };\n                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(wrappedComplete);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n                    this.unsubscribe();\n                }\n            }\n            else {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            this.unsubscribe();\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                throw err;\n            }\n            else {\n                hostReportError(err);\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n        if (!config.useDeprecatedSynchronousErrorHandling) {\n            throw new Error('bad call');\n        }\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                parent.syncErrorValue = err;\n                parent.syncErrorThrown = true;\n                return true;\n            }\n            else {\n                hostReportError(err);\n                return true;\n            }\n        }\n        return false;\n    };\n    SafeSubscriber.prototype._unsubscribe = function () {\n        var _parentSubscriber = this._parentSubscriber;\n        this._context = null;\n        this._parentSubscriber = null;\n        _parentSubscriber.unsubscribe();\n    };\n    return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n    while (observer) {\n        var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n        if (closed_1 || isStopped) {\n            return false;\n        }\n        else if (destination && destination instanceof Subscriber) {\n            observer = destination;\n        }\n        else {\n            observer = null;\n        }\n    }\n    return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n    if (nextOrObserver) {\n        if (nextOrObserver instanceof Subscriber) {\n            return nextOrObserver;\n        }\n        if (nextOrObserver[rxSubscriberSymbol]) {\n            return nextOrObserver[rxSubscriberSymbol]();\n        }\n    }\n    if (!nextOrObserver && !error && !complete) {\n        return new Subscriber(emptyObserver);\n    }\n    return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from './noop';\nexport function pipe() {\n    var fns = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        fns[_i] = arguments[_i];\n    }\n    return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n    if (!fns) {\n        return noop;\n    }\n    if (fns.length === 1) {\n        return fns[0];\n    }\n    return function piped(input) {\n        return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n    };\n}\n//# sourceMappingURL=pipe.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n    function Observable(subscribe) {\n        this._isScalar = false;\n        if (subscribe) {\n            this._subscribe = subscribe;\n        }\n    }\n    Observable.prototype.lift = function (operator) {\n        var observable = new Observable();\n        observable.source = this;\n        observable.operator = operator;\n        return observable;\n    };\n    Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n        var operator = this.operator;\n        var sink = toSubscriber(observerOrNext, error, complete);\n        if (operator) {\n            sink.add(operator.call(sink, this.source));\n        }\n        else {\n            sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n                this._subscribe(sink) :\n                this._trySubscribe(sink));\n        }\n        if (config.useDeprecatedSynchronousErrorHandling) {\n            if (sink.syncErrorThrowable) {\n                sink.syncErrorThrowable = false;\n                if (sink.syncErrorThrown) {\n                    throw sink.syncErrorValue;\n                }\n            }\n        }\n        return sink;\n    };\n    Observable.prototype._trySubscribe = function (sink) {\n        try {\n            return this._subscribe(sink);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                sink.syncErrorThrown = true;\n                sink.syncErrorValue = err;\n            }\n            if (canReportError(sink)) {\n                sink.error(err);\n            }\n            else {\n                console.warn(err);\n            }\n        }\n    };\n    Observable.prototype.forEach = function (next, promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var subscription;\n            subscription = _this.subscribe(function (value) {\n                try {\n                    next(value);\n                }\n                catch (err) {\n                    reject(err);\n                    if (subscription) {\n                        subscription.unsubscribe();\n                    }\n                }\n            }, reject, resolve);\n        });\n    };\n    Observable.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        return source && source.subscribe(subscriber);\n    };\n    Observable.prototype[Symbol_observable] = function () {\n        return this;\n    };\n    Observable.prototype.pipe = function () {\n        var operations = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            operations[_i] = arguments[_i];\n        }\n        if (operations.length === 0) {\n            return this;\n        }\n        return pipeFromArray(operations)(this);\n    };\n    Observable.prototype.toPromise = function (promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var value;\n            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n        });\n    };\n    Observable.create = function (subscribe) {\n        return new Observable(subscribe);\n    };\n    return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n    if (!promiseCtor) {\n        promiseCtor = config.Promise || Promise;\n    }\n    if (!promiseCtor) {\n        throw new Error('no Promise impl found');\n    }\n    return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n    function ObjectUnsubscribedErrorImpl() {\n        Error.call(this);\n        this.message = 'object unsubscribed';\n        this.name = 'ObjectUnsubscribedError';\n        return this;\n    }\n    ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n    return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n    tslib_1.__extends(SubjectSubscription, _super);\n    function SubjectSubscription(subject, subscriber) {\n        var _this = _super.call(this) || this;\n        _this.subject = subject;\n        _this.subscriber = subscriber;\n        _this.closed = false;\n        return _this;\n    }\n    SubjectSubscription.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.closed = true;\n        var subject = this.subject;\n        var observers = subject.observers;\n        this.subject = null;\n        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n            return;\n        }\n        var subscriberIndex = observers.indexOf(this.subscriber);\n        if (subscriberIndex !== -1) {\n            observers.splice(subscriberIndex, 1);\n        }\n    };\n    return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n    tslib_1.__extends(SubjectSubscriber, _super);\n    function SubjectSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        return _this;\n    }\n    return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n    tslib_1.__extends(Subject, _super);\n    function Subject() {\n        var _this = _super.call(this) || this;\n        _this.observers = [];\n        _this.closed = false;\n        _this.isStopped = false;\n        _this.hasError = false;\n        _this.thrownError = null;\n        return _this;\n    }\n    Subject.prototype[rxSubscriberSymbol] = function () {\n        return new SubjectSubscriber(this);\n    };\n    Subject.prototype.lift = function (operator) {\n        var subject = new AnonymousSubject(this, this);\n        subject.operator = operator;\n        return subject;\n    };\n    Subject.prototype.next = function (value) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        if (!this.isStopped) {\n            var observers = this.observers;\n            var len = observers.length;\n            var copy = observers.slice();\n            for (var i = 0; i < len; i++) {\n                copy[i].next(value);\n            }\n        }\n    };\n    Subject.prototype.error = function (err) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.hasError = true;\n        this.thrownError = err;\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].error(err);\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.complete = function () {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].complete();\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.unsubscribe = function () {\n        this.isStopped = true;\n        this.closed = true;\n        this.observers = null;\n    };\n    Subject.prototype._trySubscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return _super.prototype._trySubscribe.call(this, subscriber);\n        }\n    };\n    Subject.prototype._subscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            return new SubjectSubscription(this, subscriber);\n        }\n    };\n    Subject.prototype.asObservable = function () {\n        var observable = new Observable();\n        observable.source = this;\n        return observable;\n    };\n    Subject.create = function (destination, source) {\n        return new AnonymousSubject(destination, source);\n    };\n    return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n    tslib_1.__extends(AnonymousSubject, _super);\n    function AnonymousSubject(destination, source) {\n        var _this = _super.call(this) || this;\n        _this.destination = destination;\n        _this.source = source;\n        return _this;\n    }\n    AnonymousSubject.prototype.next = function (value) {\n        var destination = this.destination;\n        if (destination && destination.next) {\n            destination.next(value);\n        }\n    };\n    AnonymousSubject.prototype.error = function (err) {\n        var destination = this.destination;\n        if (destination && destination.error) {\n            this.destination.error(err);\n        }\n    };\n    AnonymousSubject.prototype.complete = function () {\n        var destination = this.destination;\n        if (destination && destination.complete) {\n            this.destination.complete();\n        }\n    };\n    AnonymousSubject.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        if (source) {\n            return this.source.subscribe(subscriber);\n        }\n        else {\n            return Subscription.EMPTY;\n        }\n    };\n    return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n    return function refCountOperatorFunction(source) {\n        return source.lift(new RefCountOperator(source));\n    };\n}\nvar RefCountOperator = (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n    tslib_1.__extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n    tslib_1.__extends(ConnectableObservable, _super);\n    function ConnectableObservable(source, subjectFactory) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subjectFactory = subjectFactory;\n        _this._refCount = 0;\n        _this._isComplete = false;\n        return _this;\n    }\n    ConnectableObservable.prototype._subscribe = function (subscriber) {\n        return this.getSubject().subscribe(subscriber);\n    };\n    ConnectableObservable.prototype.getSubject = function () {\n        var subject = this._subject;\n        if (!subject || subject.isStopped) {\n            this._subject = this.subjectFactory();\n        }\n        return this._subject;\n    };\n    ConnectableObservable.prototype.connect = function () {\n        var connection = this._connection;\n        if (!connection) {\n            this._isComplete = false;\n            connection = this._connection = new Subscription();\n            connection.add(this.source\n                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n            if (connection.closed) {\n                this._connection = null;\n                connection = Subscription.EMPTY;\n            }\n        }\n        return connection;\n    };\n    ConnectableObservable.prototype.refCount = function () {\n        return higherOrderRefCount()(this);\n    };\n    return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n    var connectableProto = ConnectableObservable.prototype;\n    return {\n        operator: { value: null },\n        _refCount: { value: 0, writable: true },\n        _subject: { value: null, writable: true },\n        _connection: { value: null, writable: true },\n        _subscribe: { value: connectableProto._subscribe },\n        _isComplete: { value: connectableProto._isComplete, writable: true },\n        getSubject: { value: connectableProto.getSubject },\n        connect: { value: connectableProto.connect },\n        refCount: { value: connectableProto.refCount }\n    };\n})();\nvar ConnectableSubscriber = (function (_super) {\n    tslib_1.__extends(ConnectableSubscriber, _super);\n    function ConnectableSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    ConnectableSubscriber.prototype._error = function (err) {\n        this._unsubscribe();\n        _super.prototype._error.call(this, err);\n    };\n    ConnectableSubscriber.prototype._complete = function () {\n        this.connectable._isComplete = true;\n        this._unsubscribe();\n        _super.prototype._complete.call(this);\n    };\n    ConnectableSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (connectable) {\n            this.connectable = null;\n            var connection = connectable._connection;\n            connectable._refCount = 0;\n            connectable._subject = null;\n            connectable._connection = null;\n            if (connection) {\n                connection.unsubscribe();\n            }\n        }\n    };\n    return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n    tslib_1.__extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n    return function (source) {\n        return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n    };\n}\nvar GroupByOperator = (function () {\n    function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n        this.keySelector = keySelector;\n        this.elementSelector = elementSelector;\n        this.durationSelector = durationSelector;\n        this.subjectSelector = subjectSelector;\n    }\n    GroupByOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n    };\n    return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n    tslib_1.__extends(GroupBySubscriber, _super);\n    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.elementSelector = elementSelector;\n        _this.durationSelector = durationSelector;\n        _this.subjectSelector = subjectSelector;\n        _this.groups = null;\n        _this.attemptedToUnsubscribe = false;\n        _this.count = 0;\n        return _this;\n    }\n    GroupBySubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            this.error(err);\n            return;\n        }\n        this._group(value, key);\n    };\n    GroupBySubscriber.prototype._group = function (value, key) {\n        var groups = this.groups;\n        if (!groups) {\n            groups = this.groups = new Map();\n        }\n        var group = groups.get(key);\n        var element;\n        if (this.elementSelector) {\n            try {\n                element = this.elementSelector(value);\n            }\n            catch (err) {\n                this.error(err);\n            }\n        }\n        else {\n            element = value;\n        }\n        if (!group) {\n            group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n            groups.set(key, group);\n            var groupedObservable = new GroupedObservable(key, group, this);\n            this.destination.next(groupedObservable);\n            if (this.durationSelector) {\n                var duration = void 0;\n                try {\n                    duration = this.durationSelector(new GroupedObservable(key, group));\n                }\n                catch (err) {\n                    this.error(err);\n                    return;\n                }\n                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n            }\n        }\n        if (!group.closed) {\n            group.next(element);\n        }\n    };\n    GroupBySubscriber.prototype._error = function (err) {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.error(err);\n            });\n            groups.clear();\n        }\n        this.destination.error(err);\n    };\n    GroupBySubscriber.prototype._complete = function () {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.complete();\n            });\n            groups.clear();\n        }\n        this.destination.complete();\n    };\n    GroupBySubscriber.prototype.removeGroup = function (key) {\n        this.groups.delete(key);\n    };\n    GroupBySubscriber.prototype.unsubscribe = function () {\n        if (!this.closed) {\n            this.attemptedToUnsubscribe = true;\n            if (this.count === 0) {\n                _super.prototype.unsubscribe.call(this);\n            }\n        }\n    };\n    return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n    tslib_1.__extends(GroupDurationSubscriber, _super);\n    function GroupDurationSubscriber(key, group, parent) {\n        var _this = _super.call(this, group) || this;\n        _this.key = key;\n        _this.group = group;\n        _this.parent = parent;\n        return _this;\n    }\n    GroupDurationSubscriber.prototype._next = function (value) {\n        this.complete();\n    };\n    GroupDurationSubscriber.prototype._unsubscribe = function () {\n        var _a = this, parent = _a.parent, key = _a.key;\n        this.key = this.parent = null;\n        if (parent) {\n            parent.removeGroup(key);\n        }\n    };\n    return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n    tslib_1.__extends(GroupedObservable, _super);\n    function GroupedObservable(key, groupSubject, refCountSubscription) {\n        var _this = _super.call(this) || this;\n        _this.key = key;\n        _this.groupSubject = groupSubject;\n        _this.refCountSubscription = refCountSubscription;\n        return _this;\n    }\n    GroupedObservable.prototype._subscribe = function (subscriber) {\n        var subscription = new Subscription();\n        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n        if (refCountSubscription && !refCountSubscription.closed) {\n            subscription.add(new InnerRefCountSubscription(refCountSubscription));\n        }\n        subscription.add(groupSubject.subscribe(subscriber));\n        return subscription;\n    };\n    return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n    tslib_1.__extends(InnerRefCountSubscription, _super);\n    function InnerRefCountSubscription(parent) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        parent.count++;\n        return _this;\n    }\n    InnerRefCountSubscription.prototype.unsubscribe = function () {\n        var parent = this.parent;\n        if (!parent.closed && !this.closed) {\n            _super.prototype.unsubscribe.call(this);\n            parent.count -= 1;\n            if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n                parent.unsubscribe();\n            }\n        }\n    };\n    return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n    tslib_1.__extends(BehaviorSubject, _super);\n    function BehaviorSubject(_value) {\n        var _this = _super.call(this) || this;\n        _this._value = _value;\n        return _this;\n    }\n    Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n        get: function () {\n            return this.getValue();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    BehaviorSubject.prototype._subscribe = function (subscriber) {\n        var subscription = _super.prototype._subscribe.call(this, subscriber);\n        if (subscription && !subscription.closed) {\n            subscriber.next(this._value);\n        }\n        return subscription;\n    };\n    BehaviorSubject.prototype.getValue = function () {\n        if (this.hasError) {\n            throw this.thrownError;\n        }\n        else if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return this._value;\n        }\n    };\n    BehaviorSubject.prototype.next = function (value) {\n        _super.prototype.next.call(this, this._value = value);\n    };\n    return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n    tslib_1.__extends(Action, _super);\n    function Action(scheduler, work) {\n        return _super.call(this) || this;\n    }\n    Action.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        return this;\n    };\n    return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n    tslib_1.__extends(AsyncAction, _super);\n    function AsyncAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        _this.pending = false;\n        return _this;\n    }\n    AsyncAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (this.closed) {\n            return this;\n        }\n        this.state = state;\n        var id = this.id;\n        var scheduler = this.scheduler;\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, delay);\n        }\n        this.pending = true;\n        this.delay = delay;\n        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n        return this;\n    };\n    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return setInterval(scheduler.flush.bind(scheduler, this), delay);\n    };\n    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && this.delay === delay && this.pending === false) {\n            return id;\n        }\n        clearInterval(id);\n        return undefined;\n    };\n    AsyncAction.prototype.execute = function (state, delay) {\n        if (this.closed) {\n            return new Error('executing a cancelled action');\n        }\n        this.pending = false;\n        var error = this._execute(state, delay);\n        if (error) {\n            return error;\n        }\n        else if (this.pending === false && this.id != null) {\n            this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n        }\n    };\n    AsyncAction.prototype._execute = function (state, delay) {\n        var errored = false;\n        var errorValue = undefined;\n        try {\n            this.work(state);\n        }\n        catch (e) {\n            errored = true;\n            errorValue = !!e && e || new Error(e);\n        }\n        if (errored) {\n            this.unsubscribe();\n            return errorValue;\n        }\n    };\n    AsyncAction.prototype._unsubscribe = function () {\n        var id = this.id;\n        var scheduler = this.scheduler;\n        var actions = scheduler.actions;\n        var index = actions.indexOf(this);\n        this.work = null;\n        this.state = null;\n        this.pending = false;\n        this.scheduler = null;\n        if (index !== -1) {\n            actions.splice(index, 1);\n        }\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, null);\n        }\n        this.delay = null;\n    };\n    return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n    tslib_1.__extends(QueueAction, _super);\n    function QueueAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    QueueAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay > 0) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.delay = delay;\n        this.state = state;\n        this.scheduler.flush(this);\n        return this;\n    };\n    QueueAction.prototype.execute = function (state, delay) {\n        return (delay > 0 || this.closed) ?\n            _super.prototype.execute.call(this, state, delay) :\n            this._execute(state, delay);\n    };\n    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        return scheduler.flush(this);\n    };\n    return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n    function Scheduler(SchedulerAction, now) {\n        if (now === void 0) { now = Scheduler.now; }\n        this.SchedulerAction = SchedulerAction;\n        this.now = now;\n    }\n    Scheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) { delay = 0; }\n        return new this.SchedulerAction(this, work).schedule(state, delay);\n    };\n    Scheduler.now = function () { return Date.now(); };\n    return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n    tslib_1.__extends(AsyncScheduler, _super);\n    function AsyncScheduler(SchedulerAction, now) {\n        if (now === void 0) { now = Scheduler.now; }\n        var _this = _super.call(this, SchedulerAction, function () {\n            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n                return AsyncScheduler.delegate.now();\n            }\n            else {\n                return now();\n            }\n        }) || this;\n        _this.actions = [];\n        _this.active = false;\n        _this.scheduled = undefined;\n        return _this;\n    }\n    AsyncScheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) { delay = 0; }\n        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n            return AsyncScheduler.delegate.schedule(work, delay, state);\n        }\n        else {\n            return _super.prototype.schedule.call(this, work, delay, state);\n        }\n    };\n    AsyncScheduler.prototype.flush = function (action) {\n        var actions = this.actions;\n        if (this.active) {\n            actions.push(action);\n            return;\n        }\n        var error;\n        this.active = true;\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (action = actions.shift());\n        this.active = false;\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n    tslib_1.__extends(QueueScheduler, _super);\n    function QueueScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n    return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n    return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n    return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n    for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n        subscriber.next(array[i]);\n    }\n    subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        var i = 0;\n        sub.add(scheduler.schedule(function () {\n            if (i === input.length) {\n                subscriber.complete();\n                return;\n            }\n            subscriber.next(input[i++]);\n            if (!subscriber.closed) {\n                sub.add(this.schedule());\n            }\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n    if (!scheduler) {\n        return new Observable(subscribeToArray(input));\n    }\n    else {\n        return scheduleArray(input, scheduler);\n    }\n}\n//# sourceMappingURL=fromArray.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var scheduler = args[args.length - 1];\n    if (isScheduler(scheduler)) {\n        args.pop();\n        return scheduleArray(args, scheduler);\n    }\n    else {\n        return fromArray(args);\n    }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n    if (!scheduler) {\n        return new Observable(function (subscriber) { return subscriber.error(error); });\n    }\n    else {\n        return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n    }\n}\nfunction dispatch(_a) {\n    var error = _a.error, subscriber = _a.subscriber;\n    subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n    NotificationKind[\"NEXT\"] = \"N\";\n    NotificationKind[\"ERROR\"] = \"E\";\n    NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n    function Notification(kind, value, error) {\n        this.kind = kind;\n        this.value = value;\n        this.error = error;\n        this.hasValue = kind === 'N';\n    }\n    Notification.prototype.observe = function (observer) {\n        switch (this.kind) {\n            case 'N':\n                return observer.next && observer.next(this.value);\n            case 'E':\n                return observer.error && observer.error(this.error);\n            case 'C':\n                return observer.complete && observer.complete();\n        }\n    };\n    Notification.prototype.do = function (next, error, complete) {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return next && next(this.value);\n            case 'E':\n                return error && error(this.error);\n            case 'C':\n                return complete && complete();\n        }\n    };\n    Notification.prototype.accept = function (nextOrObserver, error, complete) {\n        if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n            return this.observe(nextOrObserver);\n        }\n        else {\n            return this.do(nextOrObserver, error, complete);\n        }\n    };\n    Notification.prototype.toObservable = function () {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return of(this.value);\n            case 'E':\n                return throwError(this.error);\n            case 'C':\n                return empty();\n        }\n        throw new Error('unexpected notification kind value');\n    };\n    Notification.createNext = function (value) {\n        if (typeof value !== 'undefined') {\n            return new Notification('N', value);\n        }\n        return Notification.undefinedValueNotification;\n    };\n    Notification.createError = function (err) {\n        return new Notification('E', undefined, err);\n    };\n    Notification.createComplete = function () {\n        return Notification.completeNotification;\n    };\n    Notification.completeNotification = new Notification('C');\n    Notification.undefinedValueNotification = new Notification('N', undefined);\n    return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return function observeOnOperatorFunction(source) {\n        return source.lift(new ObserveOnOperator(scheduler, delay));\n    };\n}\nvar ObserveOnOperator = (function () {\n    function ObserveOnOperator(scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    ObserveOnOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n    };\n    return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n    tslib_1.__extends(ObserveOnSubscriber, _super);\n    function ObserveOnSubscriber(destination, scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        var _this = _super.call(this, destination) || this;\n        _this.scheduler = scheduler;\n        _this.delay = delay;\n        return _this;\n    }\n    ObserveOnSubscriber.dispatch = function (arg) {\n        var notification = arg.notification, destination = arg.destination;\n        notification.observe(destination);\n        this.unsubscribe();\n    };\n    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n        var destination = this.destination;\n        destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n    };\n    ObserveOnSubscriber.prototype._next = function (value) {\n        this.scheduleMessage(Notification.createNext(value));\n    };\n    ObserveOnSubscriber.prototype._error = function (err) {\n        this.scheduleMessage(Notification.createError(err));\n        this.unsubscribe();\n    };\n    ObserveOnSubscriber.prototype._complete = function () {\n        this.scheduleMessage(Notification.createComplete());\n        this.unsubscribe();\n    };\n    return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n    function ObserveOnMessage(notification, destination) {\n        this.notification = notification;\n        this.destination = destination;\n    }\n    return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n    tslib_1.__extends(ReplaySubject, _super);\n    function ReplaySubject(bufferSize, windowTime, scheduler) {\n        if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n        if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this) || this;\n        _this.scheduler = scheduler;\n        _this._events = [];\n        _this._infiniteTimeWindow = false;\n        _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n        _this._windowTime = windowTime < 1 ? 1 : windowTime;\n        if (windowTime === Number.POSITIVE_INFINITY) {\n            _this._infiniteTimeWindow = true;\n            _this.next = _this.nextInfiniteTimeWindow;\n        }\n        else {\n            _this.next = _this.nextTimeWindow;\n        }\n        return _this;\n    }\n    ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n        var _events = this._events;\n        _events.push(value);\n        if (_events.length > this._bufferSize) {\n            _events.shift();\n        }\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype.nextTimeWindow = function (value) {\n        this._events.push(new ReplayEvent(this._getNow(), value));\n        this._trimBufferThenGetEvents();\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype._subscribe = function (subscriber) {\n        var _infiniteTimeWindow = this._infiniteTimeWindow;\n        var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n        var scheduler = this.scheduler;\n        var len = _events.length;\n        var subscription;\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.isStopped || this.hasError) {\n            subscription = Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            subscription = new SubjectSubscription(this, subscriber);\n        }\n        if (scheduler) {\n            subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n        }\n        if (_infiniteTimeWindow) {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i]);\n            }\n        }\n        else {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i].value);\n            }\n        }\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n        }\n        return subscription;\n    };\n    ReplaySubject.prototype._getNow = function () {\n        return (this.scheduler || queue).now();\n    };\n    ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n        var now = this._getNow();\n        var _bufferSize = this._bufferSize;\n        var _windowTime = this._windowTime;\n        var _events = this._events;\n        var eventsCount = _events.length;\n        var spliceCount = 0;\n        while (spliceCount < eventsCount) {\n            if ((now - _events[spliceCount].time) < _windowTime) {\n                break;\n            }\n            spliceCount++;\n        }\n        if (eventsCount > _bufferSize) {\n            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n        }\n        if (spliceCount > 0) {\n            _events.splice(0, spliceCount);\n        }\n        return _events;\n    };\n    return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n    tslib_1.__extends(AsyncSubject, _super);\n    function AsyncSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.value = null;\n        _this.hasNext = false;\n        _this.hasCompleted = false;\n        return _this;\n    }\n    AsyncSubject.prototype._subscribe = function (subscriber) {\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.hasCompleted && this.hasNext) {\n            subscriber.next(this.value);\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        return _super.prototype._subscribe.call(this, subscriber);\n    };\n    AsyncSubject.prototype.next = function (value) {\n        if (!this.hasCompleted) {\n            this.value = value;\n            this.hasNext = true;\n        }\n    };\n    AsyncSubject.prototype.error = function (error) {\n        if (!this.hasCompleted) {\n            _super.prototype.error.call(this, error);\n        }\n    };\n    AsyncSubject.prototype.complete = function () {\n        this.hasCompleted = true;\n        if (this.hasNext) {\n            _super.prototype.next.call(this, this.value);\n        }\n        _super.prototype.complete.call(this);\n    };\n    return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar RESOLVED = (function () { return Promise.resolve(); })();\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n    if (handle in activeHandles) {\n        delete activeHandles[handle];\n        return true;\n    }\n    return false;\n}\nexport var Immediate = {\n    setImmediate: function (cb) {\n        var handle = nextHandle++;\n        activeHandles[handle] = true;\n        RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });\n        return handle;\n    },\n    clearImmediate: function (handle) {\n        findAndClearHandle(handle);\n    },\n};\nexport var TestTools = {\n    pending: function () {\n        return Object.keys(activeHandles).length;\n    }\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n    tslib_1.__extends(AsapAction, _super);\n    function AsapAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        scheduler.actions.push(this);\n        return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n    };\n    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        if (scheduler.actions.length === 0) {\n            Immediate.clearImmediate(id);\n            scheduler.scheduled = undefined;\n        }\n        return undefined;\n    };\n    return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n    tslib_1.__extends(AsapScheduler, _super);\n    function AsapScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AsapScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n    tslib_1.__extends(AnimationFrameAction, _super);\n    function AnimationFrameAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        scheduler.actions.push(this);\n        return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n    };\n    AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        if (scheduler.actions.length === 0) {\n            cancelAnimationFrame(id);\n            scheduler.scheduled = undefined;\n        }\n        return undefined;\n    };\n    return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n    tslib_1.__extends(AnimationFrameScheduler, _super);\n    function AnimationFrameScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AnimationFrameScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n    tslib_1.__extends(VirtualTimeScheduler, _super);\n    function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n        if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n        if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n        _this.maxFrames = maxFrames;\n        _this.frame = 0;\n        _this.index = -1;\n        return _this;\n    }\n    VirtualTimeScheduler.prototype.flush = function () {\n        var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n        var error, action;\n        while ((action = actions[0]) && action.delay <= maxFrames) {\n            actions.shift();\n            this.frame = action.delay;\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        }\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    VirtualTimeScheduler.frameTimeFactor = 10;\n    return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n    tslib_1.__extends(VirtualAction, _super);\n    function VirtualAction(scheduler, work, index) {\n        if (index === void 0) { index = scheduler.index += 1; }\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        _this.index = index;\n        _this.active = true;\n        _this.index = scheduler.index = index;\n        return _this;\n    }\n    VirtualAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (!this.id) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.active = false;\n        var action = new VirtualAction(this.scheduler, this.work);\n        this.add(action);\n        return action.schedule(state, delay);\n    };\n    VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.delay = scheduler.frame + delay;\n        var actions = scheduler.actions;\n        actions.push(this);\n        actions.sort(VirtualAction.sortActions);\n        return true;\n    };\n    VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return undefined;\n    };\n    VirtualAction.prototype._execute = function (state, delay) {\n        if (this.active === true) {\n            return _super.prototype._execute.call(this, state, delay);\n        }\n    };\n    VirtualAction.sortActions = function (a, b) {\n        if (a.delay === b.delay) {\n            if (a.index === b.index) {\n                return 0;\n            }\n            else if (a.index > b.index) {\n                return 1;\n            }\n            else {\n                return -1;\n            }\n        }\n        else if (a.delay > b.delay) {\n            return 1;\n        }\n        else {\n            return -1;\n        }\n    };\n    return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function identity(x) {\n    return x;\n}\n//# sourceMappingURL=identity.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n    return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n    function ArgumentOutOfRangeErrorImpl() {\n        Error.call(this);\n        this.message = 'argument out of range';\n        this.name = 'ArgumentOutOfRangeError';\n        return this;\n    }\n    ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n    return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","var EmptyErrorImpl = (function () {\n    function EmptyErrorImpl() {\n        Error.call(this);\n        this.message = 'no elements in sequence';\n        this.name = 'EmptyError';\n        return this;\n    }\n    EmptyErrorImpl.prototype = Object.create(Error.prototype);\n    return EmptyErrorImpl;\n})();\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","var TimeoutErrorImpl = (function () {\n    function TimeoutErrorImpl() {\n        Error.call(this);\n        this.message = 'Timeout has occurred';\n        this.name = 'TimeoutError';\n        return this;\n    }\n    TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n    return TimeoutErrorImpl;\n})();\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n    return function mapOperation(source) {\n        if (typeof project !== 'function') {\n            throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n        }\n        return source.lift(new MapOperator(project, thisArg));\n    };\n}\nvar MapOperator = (function () {\n    function MapOperator(project, thisArg) {\n        this.project = project;\n        this.thisArg = thisArg;\n    }\n    MapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n    };\n    return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n    tslib_1.__extends(MapSubscriber, _super);\n    function MapSubscriber(destination, project, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.count = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    MapSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.project.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n    if (resultSelector) {\n        if (isScheduler(resultSelector)) {\n            scheduler = resultSelector;\n        }\n        else {\n            return function () {\n                var args = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    args[_i] = arguments[_i];\n                }\n                return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n            };\n        }\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var context = this;\n        var subject;\n        var params = {\n            context: context,\n            subject: subject,\n            callbackFunc: callbackFunc,\n            scheduler: scheduler,\n        };\n        return new Observable(function (subscriber) {\n            if (!scheduler) {\n                if (!subject) {\n                    subject = new AsyncSubject();\n                    var handler = function () {\n                        var innerArgs = [];\n                        for (var _i = 0; _i < arguments.length; _i++) {\n                            innerArgs[_i] = arguments[_i];\n                        }\n                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    };\n                    try {\n                        callbackFunc.apply(context, args.concat([handler]));\n                    }\n                    catch (err) {\n                        if (canReportError(subject)) {\n                            subject.error(err);\n                        }\n                        else {\n                            console.warn(err);\n                        }\n                    }\n                }\n                return subject.subscribe(subscriber);\n            }\n            else {\n                var state = {\n                    args: args, subscriber: subscriber, params: params,\n                };\n                return scheduler.schedule(dispatch, 0, state);\n            }\n        });\n    };\n}\nfunction dispatch(state) {\n    var _this = this;\n    var self = this;\n    var args = state.args, subscriber = state.subscriber, params = state.params;\n    var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n    var subject = params.subject;\n    if (!subject) {\n        subject = params.subject = new AsyncSubject();\n        var handler = function () {\n            var innerArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                innerArgs[_i] = arguments[_i];\n            }\n            var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n            _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n        };\n        try {\n            callbackFunc.apply(context, args.concat([handler]));\n        }\n        catch (err) {\n            subject.error(err);\n        }\n    }\n    this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n    var value = state.value, subject = state.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(state) {\n    var err = state.err, subject = state.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n    if (resultSelector) {\n        if (isScheduler(resultSelector)) {\n            scheduler = resultSelector;\n        }\n        else {\n            return function () {\n                var args = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    args[_i] = arguments[_i];\n                }\n                return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n            };\n        }\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var params = {\n            subject: undefined,\n            args: args,\n            callbackFunc: callbackFunc,\n            scheduler: scheduler,\n            context: this,\n        };\n        return new Observable(function (subscriber) {\n            var context = params.context;\n            var subject = params.subject;\n            if (!scheduler) {\n                if (!subject) {\n                    subject = params.subject = new AsyncSubject();\n                    var handler = function () {\n                        var innerArgs = [];\n                        for (var _i = 0; _i < arguments.length; _i++) {\n                            innerArgs[_i] = arguments[_i];\n                        }\n                        var err = innerArgs.shift();\n                        if (err) {\n                            subject.error(err);\n                            return;\n                        }\n                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    };\n                    try {\n                        callbackFunc.apply(context, args.concat([handler]));\n                    }\n                    catch (err) {\n                        if (canReportError(subject)) {\n                            subject.error(err);\n                        }\n                        else {\n                            console.warn(err);\n                        }\n                    }\n                }\n                return subject.subscribe(subscriber);\n            }\n            else {\n                return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n            }\n        });\n    };\n}\nfunction dispatch(state) {\n    var _this = this;\n    var params = state.params, subscriber = state.subscriber, context = state.context;\n    var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n    var subject = params.subject;\n    if (!subject) {\n        subject = params.subject = new AsyncSubject();\n        var handler = function () {\n            var innerArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                innerArgs[_i] = arguments[_i];\n            }\n            var err = innerArgs.shift();\n            if (err) {\n                _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n            }\n            else {\n                var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n                _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n            }\n        };\n        try {\n            callbackFunc.apply(context, args.concat([handler]));\n        }\n        catch (err) {\n            this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n        }\n    }\n    this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n    var value = arg.value, subject = arg.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(arg) {\n    var err = arg.err, subject = arg.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n    tslib_1.__extends(OuterSubscriber, _super);\n    function OuterSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.destination.error(error);\n    };\n    OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.destination.complete();\n    };\n    return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n    tslib_1.__extends(InnerSubscriber, _super);\n    function InnerSubscriber(parent, outerValue, outerIndex) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.outerValue = outerValue;\n        _this.outerIndex = outerIndex;\n        _this.index = 0;\n        return _this;\n    }\n    InnerSubscriber.prototype._next = function (value) {\n        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n    };\n    InnerSubscriber.prototype._error = function (error) {\n        this.parent.notifyError(error, this);\n        this.unsubscribe();\n    };\n    InnerSubscriber.prototype._complete = function () {\n        this.parent.notifyComplete(this);\n        this.unsubscribe();\n    };\n    return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n    promise.then(function (value) {\n        if (!subscriber.closed) {\n            subscriber.next(value);\n            subscriber.complete();\n        }\n    }, function (err) { return subscriber.error(err); })\n        .then(null, hostReportError);\n    return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n    if (typeof Symbol !== 'function' || !Symbol.iterator) {\n        return '@@iterator';\n    }\n    return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n    var iterator = iterable[Symbol_iterator]();\n    do {\n        var item = iterator.next();\n        if (item.done) {\n            subscriber.complete();\n            break;\n        }\n        subscriber.next(item.value);\n        if (subscriber.closed) {\n            break;\n        }\n    } while (true);\n    if (typeof iterator.return === 'function') {\n        subscriber.add(function () {\n            if (iterator.return) {\n                iterator.return();\n            }\n        });\n    }\n    return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n    var obs = obj[Symbol_observable]();\n    if (typeof obs.subscribe !== 'function') {\n        throw new TypeError('Provided object does not correctly implement Symbol.observable');\n    }\n    else {\n        return obs.subscribe(subscriber);\n    }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n    return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n    if (!!result && typeof result[Symbol_observable] === 'function') {\n        return subscribeToObservable(result);\n    }\n    else if (isArrayLike(result)) {\n        return subscribeToArray(result);\n    }\n    else if (isPromise(result)) {\n        return subscribeToPromise(result);\n    }\n    else if (!!result && typeof result[Symbol_iterator] === 'function') {\n        return subscribeToIterable(result);\n    }\n    else {\n        var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n        var msg = \"You provided \" + value + \" where a stream was expected.\"\n            + ' You can provide an Observable, Promise, Array, or Iterable.';\n        throw new TypeError(msg);\n    }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n    if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n    if (innerSubscriber.closed) {\n        return undefined;\n    }\n    if (result instanceof Observable) {\n        return result.subscribe(innerSubscriber);\n    }\n    return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var resultSelector = null;\n    var scheduler = null;\n    if (isScheduler(observables[observables.length - 1])) {\n        scheduler = observables.pop();\n    }\n    if (typeof observables[observables.length - 1] === 'function') {\n        resultSelector = observables.pop();\n    }\n    if (observables.length === 1 && isArray(observables[0])) {\n        observables = observables[0];\n    }\n    return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n    function CombineLatestOperator(resultSelector) {\n        this.resultSelector = resultSelector;\n    }\n    CombineLatestOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n    };\n    return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n    tslib_1.__extends(CombineLatestSubscriber, _super);\n    function CombineLatestSubscriber(destination, resultSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.resultSelector = resultSelector;\n        _this.active = 0;\n        _this.values = [];\n        _this.observables = [];\n        return _this;\n    }\n    CombineLatestSubscriber.prototype._next = function (observable) {\n        this.values.push(NONE);\n        this.observables.push(observable);\n    };\n    CombineLatestSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            this.active = len;\n            this.toRespond = len;\n            for (var i = 0; i < len; i++) {\n                var observable = observables[i];\n                this.add(subscribeToResult(this, observable, observable, i));\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n        if ((this.active -= 1) === 0) {\n            this.destination.complete();\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var values = this.values;\n        var oldVal = values[outerIndex];\n        var toRespond = !this.toRespond\n            ? 0\n            : oldVal === NONE ? --this.toRespond : this.toRespond;\n        values[outerIndex] = innerValue;\n        if (toRespond === 0) {\n            if (this.resultSelector) {\n                this._tryResultSelector(values);\n            }\n            else {\n                this.destination.next(values.slice());\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, values);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        sub.add(scheduler.schedule(function () {\n            var observable = input[Symbol_observable]();\n            sub.add(observable.subscribe({\n                next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n                error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n                complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n            }));\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        sub.add(scheduler.schedule(function () { return input.then(function (value) {\n            sub.add(scheduler.schedule(function () {\n                subscriber.next(value);\n                sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n            }));\n        }, function (err) {\n            sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n        }); }));\n        return sub;\n    });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n    if (!input) {\n        throw new Error('Iterable cannot be null');\n    }\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        var iterator;\n        sub.add(function () {\n            if (iterator && typeof iterator.return === 'function') {\n                iterator.return();\n            }\n        });\n        sub.add(scheduler.schedule(function () {\n            iterator = input[Symbol_iterator]();\n            sub.add(scheduler.schedule(function () {\n                if (subscriber.closed) {\n                    return;\n                }\n                var value;\n                var done;\n                try {\n                    var result = iterator.next();\n                    value = result.value;\n                    done = result.done;\n                }\n                catch (err) {\n                    subscriber.error(err);\n                    return;\n                }\n                if (done) {\n                    subscriber.complete();\n                }\n                else {\n                    subscriber.next(value);\n                    this.schedule();\n                }\n            }));\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n    return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n    return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n    if (input != null) {\n        if (isInteropObservable(input)) {\n            return scheduleObservable(input, scheduler);\n        }\n        else if (isPromise(input)) {\n            return schedulePromise(input, scheduler);\n        }\n        else if (isArrayLike(input)) {\n            return scheduleArray(input, scheduler);\n        }\n        else if (isIterable(input) || typeof input === 'string') {\n            return scheduleIterable(input, scheduler);\n        }\n    }\n    throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n    if (!scheduler) {\n        if (input instanceof Observable) {\n            return input;\n        }\n        return new Observable(subscribeTo(input));\n    }\n    else {\n        return scheduled(input, scheduler);\n    }\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'function') {\n        return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n    }\n    else if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n    }\n    return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n    function MergeMapOperator(project, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        this.project = project;\n        this.concurrent = concurrent;\n    }\n    MergeMapOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n    };\n    return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n    tslib_1.__extends(MergeMapSubscriber, _super);\n    function MergeMapSubscriber(destination, project, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeMapSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            this._tryNext(value);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeMapSubscriber.prototype._tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.active++;\n        this._innerSub(result, value, index);\n    };\n    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    MergeMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n    return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n    return new Observable(function (subscriber) {\n        var input;\n        try {\n            input = observableFactory();\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var source = input ? from(input) : empty();\n        return source.subscribe(subscriber);\n    });\n}\n//# sourceMappingURL=defer.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n    var sources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        sources[_i] = arguments[_i];\n    }\n    if (sources.length === 1) {\n        var first_1 = sources[0];\n        if (isArray(first_1)) {\n            return forkJoinInternal(first_1, null);\n        }\n        if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n            var keys = Object.keys(first_1);\n            return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n        }\n    }\n    if (typeof sources[sources.length - 1] === 'function') {\n        var resultSelector_1 = sources.pop();\n        sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n        return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n    }\n    return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n    return new Observable(function (subscriber) {\n        var len = sources.length;\n        if (len === 0) {\n            subscriber.complete();\n            return;\n        }\n        var values = new Array(len);\n        var completed = 0;\n        var emitted = 0;\n        var _loop_1 = function (i) {\n            var source = from(sources[i]);\n            var hasValue = false;\n            subscriber.add(source.subscribe({\n                next: function (value) {\n                    if (!hasValue) {\n                        hasValue = true;\n                        emitted++;\n                    }\n                    values[i] = value;\n                },\n                error: function (err) { return subscriber.error(err); },\n                complete: function () {\n                    completed++;\n                    if (completed === len || !hasValue) {\n                        if (emitted === len) {\n                            subscriber.next(keys ?\n                                keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n                                values);\n                        }\n                        subscriber.complete();\n                    }\n                }\n            }));\n        };\n        for (var i = 0; i < len; i++) {\n            _loop_1(i);\n        }\n    });\n}\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n    if (isFunction(options)) {\n        resultSelector = options;\n        options = undefined;\n    }\n    if (resultSelector) {\n        return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n    }\n    return new Observable(function (subscriber) {\n        function handler(e) {\n            if (arguments.length > 1) {\n                subscriber.next(Array.prototype.slice.call(arguments));\n            }\n            else {\n                subscriber.next(e);\n            }\n        }\n        setupSubscription(target, eventName, handler, subscriber, options);\n    });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n    var unsubscribe;\n    if (isEventTarget(sourceObj)) {\n        var source_1 = sourceObj;\n        sourceObj.addEventListener(eventName, handler, options);\n        unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n    }\n    else if (isJQueryStyleEventEmitter(sourceObj)) {\n        var source_2 = sourceObj;\n        sourceObj.on(eventName, handler);\n        unsubscribe = function () { return source_2.off(eventName, handler); };\n    }\n    else if (isNodeStyleEventEmitter(sourceObj)) {\n        var source_3 = sourceObj;\n        sourceObj.addListener(eventName, handler);\n        unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n    }\n    else if (sourceObj && sourceObj.length) {\n        for (var i = 0, len = sourceObj.length; i < len; i++) {\n            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n        }\n    }\n    else {\n        throw new TypeError('Invalid event target');\n    }\n    subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n    if (resultSelector) {\n        return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n    }\n    return new Observable(function (subscriber) {\n        var handler = function () {\n            var e = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                e[_i] = arguments[_i];\n            }\n            return subscriber.next(e.length === 1 ? e[0] : e);\n        };\n        var retValue;\n        try {\n            retValue = addHandler(handler);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        if (!isFunction(removeHandler)) {\n            return undefined;\n        }\n        return function () { return removeHandler(handler, retValue); };\n    });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n    var resultSelector;\n    var initialState;\n    if (arguments.length == 1) {\n        var options = initialStateOrOptions;\n        initialState = options.initialState;\n        condition = options.condition;\n        iterate = options.iterate;\n        resultSelector = options.resultSelector || identity;\n        scheduler = options.scheduler;\n    }\n    else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n        initialState = initialStateOrOptions;\n        resultSelector = identity;\n        scheduler = resultSelectorOrObservable;\n    }\n    else {\n        initialState = initialStateOrOptions;\n        resultSelector = resultSelectorOrObservable;\n    }\n    return new Observable(function (subscriber) {\n        var state = initialState;\n        if (scheduler) {\n            return scheduler.schedule(dispatch, 0, {\n                subscriber: subscriber,\n                iterate: iterate,\n                condition: condition,\n                resultSelector: resultSelector,\n                state: state\n            });\n        }\n        do {\n            if (condition) {\n                var conditionResult = void 0;\n                try {\n                    conditionResult = condition(state);\n                }\n                catch (err) {\n                    subscriber.error(err);\n                    return undefined;\n                }\n                if (!conditionResult) {\n                    subscriber.complete();\n                    break;\n                }\n            }\n            var value = void 0;\n            try {\n                value = resultSelector(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return undefined;\n            }\n            subscriber.next(value);\n            if (subscriber.closed) {\n                break;\n            }\n            try {\n                state = iterate(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return undefined;\n            }\n        } while (true);\n        return undefined;\n    });\n}\nfunction dispatch(state) {\n    var subscriber = state.subscriber, condition = state.condition;\n    if (subscriber.closed) {\n        return undefined;\n    }\n    if (state.needIterate) {\n        try {\n            state.state = state.iterate(state.state);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n    }\n    else {\n        state.needIterate = true;\n    }\n    if (condition) {\n        var conditionResult = void 0;\n        try {\n            conditionResult = condition(state.state);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        if (!conditionResult) {\n            subscriber.complete();\n            return undefined;\n        }\n        if (subscriber.closed) {\n            return undefined;\n        }\n    }\n    var value;\n    try {\n        value = state.resultSelector(state.state);\n    }\n    catch (err) {\n        subscriber.error(err);\n        return undefined;\n    }\n    if (subscriber.closed) {\n        return undefined;\n    }\n    subscriber.next(value);\n    if (subscriber.closed) {\n        return undefined;\n    }\n    return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n    if (trueResult === void 0) { trueResult = EMPTY; }\n    if (falseResult === void 0) { falseResult = EMPTY; }\n    return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n    return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n    if (period === void 0) { period = 0; }\n    if (scheduler === void 0) { scheduler = async; }\n    if (!isNumeric(period) || period < 0) {\n        period = 0;\n    }\n    if (!scheduler || typeof scheduler.schedule !== 'function') {\n        scheduler = async;\n    }\n    return new Observable(function (subscriber) {\n        subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n        return subscriber;\n    });\n}\nfunction dispatch(state) {\n    var subscriber = state.subscriber, counter = state.counter, period = state.period;\n    subscriber.next(counter);\n    this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var concurrent = Number.POSITIVE_INFINITY;\n    var scheduler = null;\n    var last = observables[observables.length - 1];\n    if (isScheduler(last)) {\n        scheduler = observables.pop();\n        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n            concurrent = observables.pop();\n        }\n    }\n    else if (typeof last === 'number') {\n        concurrent = observables.pop();\n    }\n    if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n        return observables[0];\n    }\n    return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n    return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n    var sources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        sources[_i] = arguments[_i];\n    }\n    if (sources.length === 0) {\n        return EMPTY;\n    }\n    var first = sources[0], remainder = sources.slice(1);\n    if (sources.length === 1 && isArray(first)) {\n        return onErrorResumeNext.apply(void 0, first);\n    }\n    return new Observable(function (subscriber) {\n        var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n        return from(first).subscribe({\n            next: function (value) { subscriber.next(value); },\n            error: subNext,\n            complete: subNext,\n        });\n    });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n    if (!scheduler) {\n        return new Observable(function (subscriber) {\n            var keys = Object.keys(obj);\n            for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n                var key = keys[i];\n                if (obj.hasOwnProperty(key)) {\n                    subscriber.next([key, obj[key]]);\n                }\n            }\n            subscriber.complete();\n        });\n    }\n    else {\n        return new Observable(function (subscriber) {\n            var keys = Object.keys(obj);\n            var subscription = new Subscription();\n            subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n            return subscription;\n        });\n    }\n}\nexport function dispatch(state) {\n    var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n    if (!subscriber.closed) {\n        if (index < keys.length) {\n            var key = keys[index];\n            subscriber.next([key, obj[key]]);\n            subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n        }\n        else {\n            subscriber.complete();\n        }\n    }\n}\n//# sourceMappingURL=pairs.js.map","export function not(pred, thisArg) {\n    function notPred() {\n        return !(notPred.pred.apply(notPred.thisArg, arguments));\n    }\n    notPred.pred = pred;\n    notPred.thisArg = thisArg;\n    return notPred;\n}\n//# sourceMappingURL=not.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n    return function filterOperatorFunction(source) {\n        return source.lift(new FilterOperator(predicate, thisArg));\n    };\n}\nvar FilterOperator = (function () {\n    function FilterOperator(predicate, thisArg) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n    }\n    FilterOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n    };\n    return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n    tslib_1.__extends(FilterSubscriber, _super);\n    function FilterSubscriber(destination, predicate, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.count = 0;\n        return _this;\n    }\n    FilterSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.destination.next(value);\n        }\n    };\n    return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n    return [\n        filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n        filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))\n    ];\n}\n//# sourceMappingURL=partition.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    if (observables.length === 1) {\n        if (isArray(observables[0])) {\n            observables = observables[0];\n        }\n        else {\n            return observables[0];\n        }\n    }\n    return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n    function RaceOperator() {\n    }\n    RaceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RaceSubscriber(subscriber));\n    };\n    return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n    tslib_1.__extends(RaceSubscriber, _super);\n    function RaceSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasFirst = false;\n        _this.observables = [];\n        _this.subscriptions = [];\n        return _this;\n    }\n    RaceSubscriber.prototype._next = function (observable) {\n        this.observables.push(observable);\n    };\n    RaceSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            for (var i = 0; i < len && !this.hasFirst; i++) {\n                var observable = observables[i];\n                var subscription = subscribeToResult(this, observable, observable, i);\n                if (this.subscriptions) {\n                    this.subscriptions.push(subscription);\n                }\n                this.add(subscription);\n            }\n            this.observables = null;\n        }\n    };\n    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (!this.hasFirst) {\n            this.hasFirst = true;\n            for (var i = 0; i < this.subscriptions.length; i++) {\n                if (i !== outerIndex) {\n                    var subscription = this.subscriptions[i];\n                    subscription.unsubscribe();\n                    this.remove(subscription);\n                }\n            }\n            this.subscriptions = null;\n        }\n        this.destination.next(innerValue);\n    };\n    return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n    if (start === void 0) { start = 0; }\n    return new Observable(function (subscriber) {\n        if (count === undefined) {\n            count = start;\n            start = 0;\n        }\n        var index = 0;\n        var current = start;\n        if (scheduler) {\n            return scheduler.schedule(dispatch, 0, {\n                index: index, count: count, start: start, subscriber: subscriber\n            });\n        }\n        else {\n            do {\n                if (index++ >= count) {\n                    subscriber.complete();\n                    break;\n                }\n                subscriber.next(current++);\n                if (subscriber.closed) {\n                    break;\n                }\n            } while (true);\n        }\n        return undefined;\n    });\n}\nexport function dispatch(state) {\n    var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n    if (index >= count) {\n        subscriber.complete();\n        return;\n    }\n    subscriber.next(start);\n    if (subscriber.closed) {\n        return;\n    }\n    state.index = index + 1;\n    state.start = start + 1;\n    this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n    if (dueTime === void 0) { dueTime = 0; }\n    var period = -1;\n    if (isNumeric(periodOrScheduler)) {\n        period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n    }\n    else if (isScheduler(periodOrScheduler)) {\n        scheduler = periodOrScheduler;\n    }\n    if (!isScheduler(scheduler)) {\n        scheduler = async;\n    }\n    return new Observable(function (subscriber) {\n        var due = isNumeric(dueTime)\n            ? dueTime\n            : (+dueTime - scheduler.now());\n        return scheduler.schedule(dispatch, due, {\n            index: 0, period: period, subscriber: subscriber\n        });\n    });\n}\nfunction dispatch(state) {\n    var index = state.index, period = state.period, subscriber = state.subscriber;\n    subscriber.next(index);\n    if (subscriber.closed) {\n        return;\n    }\n    else if (period === -1) {\n        return subscriber.complete();\n    }\n    state.index = index + 1;\n    this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n    return new Observable(function (subscriber) {\n        var resource;\n        try {\n            resource = resourceFactory();\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var result;\n        try {\n            result = observableFactory(resource);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var source = result ? from(result) : EMPTY;\n        var subscription = source.subscribe(subscriber);\n        return function () {\n            subscription.unsubscribe();\n            if (resource) {\n                resource.unsubscribe();\n            }\n        };\n    });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var resultSelector = observables[observables.length - 1];\n    if (typeof resultSelector === 'function') {\n        observables.pop();\n    }\n    return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n    function ZipOperator(resultSelector) {\n        this.resultSelector = resultSelector;\n    }\n    ZipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n    };\n    return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n    tslib_1.__extends(ZipSubscriber, _super);\n    function ZipSubscriber(destination, resultSelector, values) {\n        if (values === void 0) { values = Object.create(null); }\n        var _this = _super.call(this, destination) || this;\n        _this.iterators = [];\n        _this.active = 0;\n        _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n        _this.values = values;\n        return _this;\n    }\n    ZipSubscriber.prototype._next = function (value) {\n        var iterators = this.iterators;\n        if (isArray(value)) {\n            iterators.push(new StaticArrayIterator(value));\n        }\n        else if (typeof value[Symbol_iterator] === 'function') {\n            iterators.push(new StaticIterator(value[Symbol_iterator]()));\n        }\n        else {\n            iterators.push(new ZipBufferIterator(this.destination, this, value));\n        }\n    };\n    ZipSubscriber.prototype._complete = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        this.unsubscribe();\n        if (len === 0) {\n            this.destination.complete();\n            return;\n        }\n        this.active = len;\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (iterator.stillUnsubscribed) {\n                var destination = this.destination;\n                destination.add(iterator.subscribe(iterator, i));\n            }\n            else {\n                this.active--;\n            }\n        }\n    };\n    ZipSubscriber.prototype.notifyInactive = function () {\n        this.active--;\n        if (this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ZipSubscriber.prototype.checkIterators = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        var destination = this.destination;\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n                return;\n            }\n        }\n        var shouldComplete = false;\n        var args = [];\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            var result = iterator.next();\n            if (iterator.hasCompleted()) {\n                shouldComplete = true;\n            }\n            if (result.done) {\n                destination.complete();\n                return;\n            }\n            args.push(result.value);\n        }\n        if (this.resultSelector) {\n            this._tryresultSelector(args);\n        }\n        else {\n            destination.next(args);\n        }\n        if (shouldComplete) {\n            destination.complete();\n        }\n    };\n    ZipSubscriber.prototype._tryresultSelector = function (args) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n    function StaticIterator(iterator) {\n        this.iterator = iterator;\n        this.nextResult = iterator.next();\n    }\n    StaticIterator.prototype.hasValue = function () {\n        return true;\n    };\n    StaticIterator.prototype.next = function () {\n        var result = this.nextResult;\n        this.nextResult = this.iterator.next();\n        return result;\n    };\n    StaticIterator.prototype.hasCompleted = function () {\n        var nextResult = this.nextResult;\n        return nextResult && nextResult.done;\n    };\n    return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n    function StaticArrayIterator(array) {\n        this.array = array;\n        this.index = 0;\n        this.length = 0;\n        this.length = array.length;\n    }\n    StaticArrayIterator.prototype[Symbol_iterator] = function () {\n        return this;\n    };\n    StaticArrayIterator.prototype.next = function (value) {\n        var i = this.index++;\n        var array = this.array;\n        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n    };\n    StaticArrayIterator.prototype.hasValue = function () {\n        return this.array.length > this.index;\n    };\n    StaticArrayIterator.prototype.hasCompleted = function () {\n        return this.array.length === this.index;\n    };\n    return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n    tslib_1.__extends(ZipBufferIterator, _super);\n    function ZipBufferIterator(destination, parent, observable) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        _this.observable = observable;\n        _this.stillUnsubscribed = true;\n        _this.buffer = [];\n        _this.isComplete = false;\n        return _this;\n    }\n    ZipBufferIterator.prototype[Symbol_iterator] = function () {\n        return this;\n    };\n    ZipBufferIterator.prototype.next = function () {\n        var buffer = this.buffer;\n        if (buffer.length === 0 && this.isComplete) {\n            return { value: null, done: true };\n        }\n        else {\n            return { value: buffer.shift(), done: false };\n        }\n    };\n    ZipBufferIterator.prototype.hasValue = function () {\n        return this.buffer.length > 0;\n    };\n    ZipBufferIterator.prototype.hasCompleted = function () {\n        return this.buffer.length === 0 && this.isComplete;\n    };\n    ZipBufferIterator.prototype.notifyComplete = function () {\n        if (this.buffer.length > 0) {\n            this.isComplete = true;\n            this.parent.notifyInactive();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.buffer.push(innerValue);\n        this.parent.checkIterators();\n    };\n    ZipBufferIterator.prototype.subscribe = function (value, index) {\n        return subscribeToResult(this, this.observable, this, index);\n    };\n    return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n    return function auditOperatorFunction(source) {\n        return source.lift(new AuditOperator(durationSelector));\n    };\n}\nvar AuditOperator = (function () {\n    function AuditOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    AuditOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n    };\n    return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n    tslib_1.__extends(AuditSubscriber, _super);\n    function AuditSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        return _this;\n    }\n    AuditSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n        if (!this.throttled) {\n            var duration = void 0;\n            try {\n                var durationSelector = this.durationSelector;\n                duration = durationSelector(value);\n            }\n            catch (err) {\n                return this.destination.error(err);\n            }\n            var innerSubscription = subscribeToResult(this, duration);\n            if (!innerSubscription || innerSubscription.closed) {\n                this.clearThrottle();\n            }\n            else {\n                this.add(this.throttled = innerSubscription);\n            }\n        }\n    };\n    AuditSubscriber.prototype.clearThrottle = function () {\n        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n        if (throttled) {\n            this.remove(throttled);\n            this.throttled = null;\n            throttled.unsubscribe();\n        }\n        if (hasValue) {\n            this.value = null;\n            this.hasValue = false;\n            this.destination.next(value);\n        }\n    };\n    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n        this.clearThrottle();\n    };\n    AuditSubscriber.prototype.notifyComplete = function () {\n        this.clearThrottle();\n    };\n    return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n    return function bufferOperatorFunction(source) {\n        return source.lift(new BufferOperator(closingNotifier));\n    };\n}\nvar BufferOperator = (function () {\n    function BufferOperator(closingNotifier) {\n        this.closingNotifier = closingNotifier;\n    }\n    BufferOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n    };\n    return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n    tslib_1.__extends(BufferSubscriber, _super);\n    function BufferSubscriber(destination, closingNotifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.buffer = [];\n        _this.add(subscribeToResult(_this, closingNotifier));\n        return _this;\n    }\n    BufferSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var buffer = this.buffer;\n        this.buffer = [];\n        this.destination.next(buffer);\n    };\n    return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n    if (startBufferEvery === void 0) { startBufferEvery = null; }\n    return function bufferCountOperatorFunction(source) {\n        return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n    };\n}\nvar BufferCountOperator = (function () {\n    function BufferCountOperator(bufferSize, startBufferEvery) {\n        this.bufferSize = bufferSize;\n        this.startBufferEvery = startBufferEvery;\n        if (!startBufferEvery || bufferSize === startBufferEvery) {\n            this.subscriberClass = BufferCountSubscriber;\n        }\n        else {\n            this.subscriberClass = BufferSkipCountSubscriber;\n        }\n    }\n    BufferCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n    };\n    return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n    tslib_1.__extends(BufferCountSubscriber, _super);\n    function BufferCountSubscriber(destination, bufferSize) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.buffer = [];\n        return _this;\n    }\n    BufferCountSubscriber.prototype._next = function (value) {\n        var buffer = this.buffer;\n        buffer.push(value);\n        if (buffer.length == this.bufferSize) {\n            this.destination.next(buffer);\n            this.buffer = [];\n        }\n    };\n    BufferCountSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer.length > 0) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n    tslib_1.__extends(BufferSkipCountSubscriber, _super);\n    function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.startBufferEvery = startBufferEvery;\n        _this.buffers = [];\n        _this.count = 0;\n        return _this;\n    }\n    BufferSkipCountSubscriber.prototype._next = function (value) {\n        var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n        this.count++;\n        if (count % startBufferEvery === 0) {\n            buffers.push([]);\n        }\n        for (var i = buffers.length; i--;) {\n            var buffer = buffers[i];\n            buffer.push(value);\n            if (buffer.length === bufferSize) {\n                buffers.splice(i, 1);\n                this.destination.next(buffer);\n            }\n        }\n    };\n    BufferSkipCountSubscriber.prototype._complete = function () {\n        var _a = this, buffers = _a.buffers, destination = _a.destination;\n        while (buffers.length > 0) {\n            var buffer = buffers.shift();\n            if (buffer.length > 0) {\n                destination.next(buffer);\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n    var length = arguments.length;\n    var scheduler = async;\n    if (isScheduler(arguments[arguments.length - 1])) {\n        scheduler = arguments[arguments.length - 1];\n        length--;\n    }\n    var bufferCreationInterval = null;\n    if (length >= 2) {\n        bufferCreationInterval = arguments[1];\n    }\n    var maxBufferSize = Number.POSITIVE_INFINITY;\n    if (length >= 3) {\n        maxBufferSize = arguments[2];\n    }\n    return function bufferTimeOperatorFunction(source) {\n        return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n    };\n}\nvar BufferTimeOperator = (function () {\n    function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        this.bufferTimeSpan = bufferTimeSpan;\n        this.bufferCreationInterval = bufferCreationInterval;\n        this.maxBufferSize = maxBufferSize;\n        this.scheduler = scheduler;\n    }\n    BufferTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n    };\n    return BufferTimeOperator;\n}());\nvar Context = (function () {\n    function Context() {\n        this.buffer = [];\n    }\n    return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n    tslib_1.__extends(BufferTimeSubscriber, _super);\n    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferTimeSpan = bufferTimeSpan;\n        _this.bufferCreationInterval = bufferCreationInterval;\n        _this.maxBufferSize = maxBufferSize;\n        _this.scheduler = scheduler;\n        _this.contexts = [];\n        var context = _this.openContext();\n        _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n        if (_this.timespanOnly) {\n            var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n        else {\n            var closeState = { subscriber: _this, context: context };\n            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n        }\n        return _this;\n    }\n    BufferTimeSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        var filledBufferContext;\n        for (var i = 0; i < len; i++) {\n            var context_1 = contexts[i];\n            var buffer = context_1.buffer;\n            buffer.push(value);\n            if (buffer.length == this.maxBufferSize) {\n                filledBufferContext = context_1;\n            }\n        }\n        if (filledBufferContext) {\n            this.onBufferFull(filledBufferContext);\n        }\n    };\n    BufferTimeSubscriber.prototype._error = function (err) {\n        this.contexts.length = 0;\n        _super.prototype._error.call(this, err);\n    };\n    BufferTimeSubscriber.prototype._complete = function () {\n        var _a = this, contexts = _a.contexts, destination = _a.destination;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            destination.next(context_2.buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferTimeSubscriber.prototype._unsubscribe = function () {\n        this.contexts = null;\n    };\n    BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n        this.closeContext(context);\n        var closeAction = context.closeAction;\n        closeAction.unsubscribe();\n        this.remove(closeAction);\n        if (!this.closed && this.timespanOnly) {\n            context = this.openContext();\n            var bufferTimeSpan = this.bufferTimeSpan;\n            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n    };\n    BufferTimeSubscriber.prototype.openContext = function () {\n        var context = new Context();\n        this.contexts.push(context);\n        return context;\n    };\n    BufferTimeSubscriber.prototype.closeContext = function (context) {\n        this.destination.next(context.buffer);\n        var contexts = this.contexts;\n        var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n        if (spliceIndex >= 0) {\n            contexts.splice(contexts.indexOf(context), 1);\n        }\n    };\n    return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n    var subscriber = state.subscriber;\n    var prevContext = state.context;\n    if (prevContext) {\n        subscriber.closeContext(prevContext);\n    }\n    if (!subscriber.closed) {\n        state.context = subscriber.openContext();\n        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n    }\n}\nfunction dispatchBufferCreation(state) {\n    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n    var context = subscriber.openContext();\n    var action = this;\n    if (!subscriber.closed) {\n        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n        action.schedule(state, bufferCreationInterval);\n    }\n}\nfunction dispatchBufferClose(arg) {\n    var subscriber = arg.subscriber, context = arg.context;\n    subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n    return function bufferToggleOperatorFunction(source) {\n        return source.lift(new BufferToggleOperator(openings, closingSelector));\n    };\n}\nvar BufferToggleOperator = (function () {\n    function BufferToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    BufferToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n    tslib_1.__extends(BufferToggleSubscriber, _super);\n    function BufferToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(subscribeToResult(_this, openings));\n        return _this;\n    }\n    BufferToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        for (var i = 0; i < len; i++) {\n            contexts[i].buffer.push(value);\n        }\n    };\n    BufferToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_1 = contexts.shift();\n            context_1.subscription.unsubscribe();\n            context_1.buffer = null;\n            context_1.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._error.call(this, err);\n    };\n    BufferToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            this.destination.next(context_2.buffer);\n            context_2.subscription.unsubscribe();\n            context_2.buffer = null;\n            context_2.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._complete.call(this);\n    };\n    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n    };\n    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.closeBuffer(innerSub.context);\n    };\n    BufferToggleSubscriber.prototype.openBuffer = function (value) {\n        try {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = closingSelector.call(this, value);\n            if (closingNotifier) {\n                this.trySubscribe(closingNotifier);\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n        var contexts = this.contexts;\n        if (contexts && context) {\n            var buffer = context.buffer, subscription = context.subscription;\n            this.destination.next(buffer);\n            contexts.splice(contexts.indexOf(context), 1);\n            this.remove(subscription);\n            subscription.unsubscribe();\n        }\n    };\n    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n        var contexts = this.contexts;\n        var buffer = [];\n        var subscription = new Subscription();\n        var context = { buffer: buffer, subscription: subscription };\n        contexts.push(context);\n        var innerSubscription = subscribeToResult(this, closingNotifier, context);\n        if (!innerSubscription || innerSubscription.closed) {\n            this.closeBuffer(context);\n        }\n        else {\n            innerSubscription.context = context;\n            this.add(innerSubscription);\n            subscription.add(innerSubscription);\n        }\n    };\n    return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n    return function (source) {\n        return source.lift(new BufferWhenOperator(closingSelector));\n    };\n}\nvar BufferWhenOperator = (function () {\n    function BufferWhenOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    BufferWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n    };\n    return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n    tslib_1.__extends(BufferWhenSubscriber, _super);\n    function BufferWhenSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.closingSelector = closingSelector;\n        _this.subscribing = false;\n        _this.openBuffer();\n        return _this;\n    }\n    BufferWhenSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferWhenSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferWhenSubscriber.prototype._unsubscribe = function () {\n        this.buffer = null;\n        this.subscribing = false;\n    };\n    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openBuffer();\n    };\n    BufferWhenSubscriber.prototype.notifyComplete = function () {\n        if (this.subscribing) {\n            this.complete();\n        }\n        else {\n            this.openBuffer();\n        }\n    };\n    BufferWhenSubscriber.prototype.openBuffer = function () {\n        var closingSubscription = this.closingSubscription;\n        if (closingSubscription) {\n            this.remove(closingSubscription);\n            closingSubscription.unsubscribe();\n        }\n        var buffer = this.buffer;\n        if (this.buffer) {\n            this.destination.next(buffer);\n        }\n        this.buffer = [];\n        var closingNotifier;\n        try {\n            var closingSelector = this.closingSelector;\n            closingNotifier = closingSelector();\n        }\n        catch (err) {\n            return this.error(err);\n        }\n        closingSubscription = new Subscription();\n        this.closingSubscription = closingSubscription;\n        this.add(closingSubscription);\n        this.subscribing = true;\n        closingSubscription.add(subscribeToResult(this, closingNotifier));\n        this.subscribing = false;\n    };\n    return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n    return function catchErrorOperatorFunction(source) {\n        var operator = new CatchOperator(selector);\n        var caught = source.lift(operator);\n        return (operator.caught = caught);\n    };\n}\nvar CatchOperator = (function () {\n    function CatchOperator(selector) {\n        this.selector = selector;\n    }\n    CatchOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n    };\n    return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n    tslib_1.__extends(CatchSubscriber, _super);\n    function CatchSubscriber(destination, selector, caught) {\n        var _this = _super.call(this, destination) || this;\n        _this.selector = selector;\n        _this.caught = caught;\n        return _this;\n    }\n    CatchSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var result = void 0;\n            try {\n                result = this.selector(err, this.caught);\n            }\n            catch (err2) {\n                _super.prototype.error.call(this, err2);\n                return;\n            }\n            this._unsubscribeAndRecycle();\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            this.add(innerSubscriber);\n            var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n            if (innerSubscription !== innerSubscriber) {\n                this.add(innerSubscription);\n            }\n        }\n    };\n    return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n    return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var project = null;\n    if (typeof observables[observables.length - 1] === 'function') {\n        project = observables.pop();\n    }\n    if (observables.length === 1 && isArray(observables[0])) {\n        observables = observables[0].slice();\n    }\n    return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n    return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n    return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n    return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n    function CountOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    CountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n    };\n    return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n    tslib_1.__extends(CountSubscriber, _super);\n    function CountSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.count = 0;\n        _this.index = 0;\n        return _this;\n    }\n    CountSubscriber.prototype._next = function (value) {\n        if (this.predicate) {\n            this._tryPredicate(value);\n        }\n        else {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._tryPredicate = function (value) {\n        var result;\n        try {\n            result = this.predicate(value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._complete = function () {\n        this.destination.next(this.count);\n        this.destination.complete();\n    };\n    return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n    return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n    function DebounceOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    DebounceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n    };\n    return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n    tslib_1.__extends(DebounceSubscriber, _super);\n    function DebounceSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        _this.durationSubscription = null;\n        return _this;\n    }\n    DebounceSubscriber.prototype._next = function (value) {\n        try {\n            var result = this.durationSelector.call(this, value);\n            if (result) {\n                this._tryNext(value, result);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DebounceSubscriber.prototype._complete = function () {\n        this.emitValue();\n        this.destination.complete();\n    };\n    DebounceSubscriber.prototype._tryNext = function (value, duration) {\n        var subscription = this.durationSubscription;\n        this.value = value;\n        this.hasValue = true;\n        if (subscription) {\n            subscription.unsubscribe();\n            this.remove(subscription);\n        }\n        subscription = subscribeToResult(this, duration);\n        if (subscription && !subscription.closed) {\n            this.add(this.durationSubscription = subscription);\n        }\n    };\n    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            var value = this.value;\n            var subscription = this.durationSubscription;\n            if (subscription) {\n                this.durationSubscription = null;\n                subscription.unsubscribe();\n                this.remove(subscription);\n            }\n            this.value = null;\n            this.hasValue = false;\n            _super.prototype._next.call(this, value);\n        }\n    };\n    return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n    function DebounceTimeOperator(dueTime, scheduler) {\n        this.dueTime = dueTime;\n        this.scheduler = scheduler;\n    }\n    DebounceTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n    };\n    return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n    tslib_1.__extends(DebounceTimeSubscriber, _super);\n    function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.dueTime = dueTime;\n        _this.scheduler = scheduler;\n        _this.debouncedSubscription = null;\n        _this.lastValue = null;\n        _this.hasValue = false;\n        return _this;\n    }\n    DebounceTimeSubscriber.prototype._next = function (value) {\n        this.clearDebounce();\n        this.lastValue = value;\n        this.hasValue = true;\n        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n    };\n    DebounceTimeSubscriber.prototype._complete = function () {\n        this.debouncedNext();\n        this.destination.complete();\n    };\n    DebounceTimeSubscriber.prototype.debouncedNext = function () {\n        this.clearDebounce();\n        if (this.hasValue) {\n            var lastValue = this.lastValue;\n            this.lastValue = null;\n            this.hasValue = false;\n            this.destination.next(lastValue);\n        }\n    };\n    DebounceTimeSubscriber.prototype.clearDebounce = function () {\n        var debouncedSubscription = this.debouncedSubscription;\n        if (debouncedSubscription !== null) {\n            this.remove(debouncedSubscription);\n            debouncedSubscription.unsubscribe();\n            this.debouncedSubscription = null;\n        }\n    };\n    return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n    subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n    if (defaultValue === void 0) { defaultValue = null; }\n    return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n    function DefaultIfEmptyOperator(defaultValue) {\n        this.defaultValue = defaultValue;\n    }\n    DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n    };\n    return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n    tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n    function DefaultIfEmptySubscriber(destination, defaultValue) {\n        var _this = _super.call(this, destination) || this;\n        _this.defaultValue = defaultValue;\n        _this.isEmpty = true;\n        return _this;\n    }\n    DefaultIfEmptySubscriber.prototype._next = function (value) {\n        this.isEmpty = false;\n        this.destination.next(value);\n    };\n    DefaultIfEmptySubscriber.prototype._complete = function () {\n        if (this.isEmpty) {\n            this.destination.next(this.defaultValue);\n        }\n        this.destination.complete();\n    };\n    return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n    return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    var absoluteDelay = isDate(delay);\n    var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n    return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n    function DelayOperator(delay, scheduler) {\n        this.delay = delay;\n        this.scheduler = scheduler;\n    }\n    DelayOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n    };\n    return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n    tslib_1.__extends(DelaySubscriber, _super);\n    function DelaySubscriber(destination, delay, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.delay = delay;\n        _this.scheduler = scheduler;\n        _this.queue = [];\n        _this.active = false;\n        _this.errored = false;\n        return _this;\n    }\n    DelaySubscriber.dispatch = function (state) {\n        var source = state.source;\n        var queue = source.queue;\n        var scheduler = state.scheduler;\n        var destination = state.destination;\n        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n            queue.shift().notification.observe(destination);\n        }\n        if (queue.length > 0) {\n            var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n            this.schedule(state, delay_1);\n        }\n        else {\n            this.unsubscribe();\n            source.active = false;\n        }\n    };\n    DelaySubscriber.prototype._schedule = function (scheduler) {\n        this.active = true;\n        var destination = this.destination;\n        destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n            source: this, destination: this.destination, scheduler: scheduler\n        }));\n    };\n    DelaySubscriber.prototype.scheduleNotification = function (notification) {\n        if (this.errored === true) {\n            return;\n        }\n        var scheduler = this.scheduler;\n        var message = new DelayMessage(scheduler.now() + this.delay, notification);\n        this.queue.push(message);\n        if (this.active === false) {\n            this._schedule(scheduler);\n        }\n    };\n    DelaySubscriber.prototype._next = function (value) {\n        this.scheduleNotification(Notification.createNext(value));\n    };\n    DelaySubscriber.prototype._error = function (err) {\n        this.errored = true;\n        this.queue = [];\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    DelaySubscriber.prototype._complete = function () {\n        this.scheduleNotification(Notification.createComplete());\n        this.unsubscribe();\n    };\n    return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n    function DelayMessage(time, notification) {\n        this.time = time;\n        this.notification = notification;\n    }\n    return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n    if (subscriptionDelay) {\n        return function (source) {\n            return new SubscriptionDelayObservable(source, subscriptionDelay)\n                .lift(new DelayWhenOperator(delayDurationSelector));\n        };\n    }\n    return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n    function DelayWhenOperator(delayDurationSelector) {\n        this.delayDurationSelector = delayDurationSelector;\n    }\n    DelayWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n    };\n    return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n    tslib_1.__extends(DelayWhenSubscriber, _super);\n    function DelayWhenSubscriber(destination, delayDurationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.delayDurationSelector = delayDurationSelector;\n        _this.completed = false;\n        _this.delayNotifierSubscriptions = [];\n        _this.index = 0;\n        return _this;\n    }\n    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(outerValue);\n        this.removeSubscription(innerSub);\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        var value = this.removeSubscription(innerSub);\n        if (value) {\n            this.destination.next(value);\n        }\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        try {\n            var delayNotifier = this.delayDurationSelector(value, index);\n            if (delayNotifier) {\n                this.tryDelay(delayNotifier, value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DelayWhenSubscriber.prototype._complete = function () {\n        this.completed = true;\n        this.tryComplete();\n        this.unsubscribe();\n    };\n    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n        subscription.unsubscribe();\n        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n        if (subscriptionIdx !== -1) {\n            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n        }\n        return subscription.outerValue;\n    };\n    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n        var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n        if (notifierSubscription && !notifierSubscription.closed) {\n            var destination = this.destination;\n            destination.add(notifierSubscription);\n            this.delayNotifierSubscriptions.push(notifierSubscription);\n        }\n    };\n    DelayWhenSubscriber.prototype.tryComplete = function () {\n        if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n            this.destination.complete();\n        }\n    };\n    return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n    tslib_1.__extends(SubscriptionDelayObservable, _super);\n    function SubscriptionDelayObservable(source, subscriptionDelay) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subscriptionDelay = subscriptionDelay;\n        return _this;\n    }\n    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n    };\n    return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n    tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n    function SubscriptionDelaySubscriber(parent, source) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.source = source;\n        _this.sourceSubscribed = false;\n        return _this;\n    }\n    SubscriptionDelaySubscriber.prototype._next = function (unused) {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype._error = function (err) {\n        this.unsubscribe();\n        this.parent.error(err);\n    };\n    SubscriptionDelaySubscriber.prototype._complete = function () {\n        this.unsubscribe();\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n        if (!this.sourceSubscribed) {\n            this.sourceSubscribed = true;\n            this.unsubscribe();\n            this.source.subscribe(this.parent);\n        }\n    };\n    return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n    return function dematerializeOperatorFunction(source) {\n        return source.lift(new DeMaterializeOperator());\n    };\n}\nvar DeMaterializeOperator = (function () {\n    function DeMaterializeOperator() {\n    }\n    DeMaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DeMaterializeSubscriber(subscriber));\n    };\n    return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n    tslib_1.__extends(DeMaterializeSubscriber, _super);\n    function DeMaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    DeMaterializeSubscriber.prototype._next = function (value) {\n        value.observe(this.destination);\n    };\n    return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n    return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n    function DistinctOperator(keySelector, flushes) {\n        this.keySelector = keySelector;\n        this.flushes = flushes;\n    }\n    DistinctOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n    };\n    return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n    tslib_1.__extends(DistinctSubscriber, _super);\n    function DistinctSubscriber(destination, keySelector, flushes) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.values = new Set();\n        if (flushes) {\n            _this.add(subscribeToResult(_this, flushes));\n        }\n        return _this;\n    }\n    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values.clear();\n    };\n    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DistinctSubscriber.prototype._next = function (value) {\n        if (this.keySelector) {\n            this._useKeySelector(value);\n        }\n        else {\n            this._finalizeNext(value, value);\n        }\n    };\n    DistinctSubscriber.prototype._useKeySelector = function (value) {\n        var key;\n        var destination = this.destination;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this._finalizeNext(key, value);\n    };\n    DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n        var values = this.values;\n        if (!values.has(key)) {\n            values.add(key);\n            this.destination.next(value);\n        }\n    };\n    return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n    return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n    function DistinctUntilChangedOperator(compare, keySelector) {\n        this.compare = compare;\n        this.keySelector = keySelector;\n    }\n    DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n    };\n    return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n    tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.hasKey = false;\n        if (typeof compare === 'function') {\n            _this.compare = compare;\n        }\n        return _this;\n    }\n    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n        return x === y;\n    };\n    DistinctUntilChangedSubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            var keySelector = this.keySelector;\n            key = keySelector ? keySelector(value) : value;\n        }\n        catch (err) {\n            return this.destination.error(err);\n        }\n        var result = false;\n        if (this.hasKey) {\n            try {\n                var compare = this.compare;\n                result = compare(this.key, key);\n            }\n            catch (err) {\n                return this.destination.error(err);\n            }\n        }\n        else {\n            this.hasKey = true;\n        }\n        if (!result) {\n            this.key = key;\n            this.destination.next(value);\n        }\n    };\n    return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n    return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n    if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n    return function (source) {\n        return source.lift(new ThrowIfEmptyOperator(errorFactory));\n    };\n}\nvar ThrowIfEmptyOperator = (function () {\n    function ThrowIfEmptyOperator(errorFactory) {\n        this.errorFactory = errorFactory;\n    }\n    ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n    };\n    return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n    tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n    function ThrowIfEmptySubscriber(destination, errorFactory) {\n        var _this = _super.call(this, destination) || this;\n        _this.errorFactory = errorFactory;\n        _this.hasValue = false;\n        return _this;\n    }\n    ThrowIfEmptySubscriber.prototype._next = function (value) {\n        this.hasValue = true;\n        this.destination.next(value);\n    };\n    ThrowIfEmptySubscriber.prototype._complete = function () {\n        if (!this.hasValue) {\n            var err = void 0;\n            try {\n                err = this.errorFactory();\n            }\n            catch (e) {\n                err = e;\n            }\n            this.destination.error(err);\n        }\n        else {\n            return this.destination.complete();\n        }\n    };\n    return ThrowIfEmptySubscriber;\n}(Subscriber));\nfunction defaultErrorFactory() {\n    return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n    return function (source) {\n        if (count === 0) {\n            return empty();\n        }\n        else {\n            return source.lift(new TakeOperator(count));\n        }\n    };\n}\nvar TakeOperator = (function () {\n    function TakeOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    TakeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeSubscriber(subscriber, this.total));\n    };\n    return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n    tslib_1.__extends(TakeSubscriber, _super);\n    function TakeSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    TakeSubscriber.prototype._next = function (value) {\n        var total = this.total;\n        var count = ++this.count;\n        if (count <= total) {\n            this.destination.next(value);\n            if (count === total) {\n                this.destination.complete();\n                this.unsubscribe();\n            }\n        }\n    };\n    return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n    if (index < 0) {\n        throw new ArgumentOutOfRangeError();\n    }\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n        ? defaultIfEmpty(defaultValue)\n        : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n    var array = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        array[_i] = arguments[_i];\n    }\n    return function (source) { return concat(source, of.apply(void 0, array)); };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n    return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n    function EveryOperator(predicate, thisArg, source) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n        this.source = source;\n    }\n    EveryOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n    };\n    return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n    tslib_1.__extends(EverySubscriber, _super);\n    function EverySubscriber(destination, predicate, thisArg, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.source = source;\n        _this.index = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n        this.destination.next(everyValueMatch);\n        this.destination.complete();\n    };\n    EverySubscriber.prototype._next = function (value) {\n        var result = false;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (!result) {\n            this.notifyComplete(false);\n        }\n    };\n    EverySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n    return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n    function SwitchFirstOperator() {\n    }\n    SwitchFirstOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchFirstSubscriber(subscriber));\n    };\n    return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n    tslib_1.__extends(SwitchFirstSubscriber, _super);\n    function SwitchFirstSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasCompleted = false;\n        _this.hasSubscription = false;\n        return _this;\n    }\n    SwitchFirstSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.hasSubscription = true;\n            this.add(subscribeToResult(this, value));\n        }\n    };\n    SwitchFirstSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n    if (resultSelector) {\n        return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n    }\n    return function (source) {\n        return source.lift(new ExhaustMapOperator(project));\n    };\n}\nvar ExhaustMapOperator = (function () {\n    function ExhaustMapOperator(project) {\n        this.project = project;\n    }\n    ExhaustMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n    };\n    return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n    tslib_1.__extends(ExhaustMapSubscriber, _super);\n    function ExhaustMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.hasSubscription = false;\n        _this.hasCompleted = false;\n        _this.index = 0;\n        return _this;\n    }\n    ExhaustMapSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.tryNext(value);\n        }\n    };\n    ExhaustMapSubscriber.prototype.tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.hasSubscription = true;\n        this._innerSub(result, value, index);\n    };\n    ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    ExhaustMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    ExhaustMapSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (scheduler === void 0) { scheduler = undefined; }\n    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n    return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n    function ExpandOperator(project, concurrent, scheduler) {\n        this.project = project;\n        this.concurrent = concurrent;\n        this.scheduler = scheduler;\n    }\n    ExpandOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n    };\n    return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n    tslib_1.__extends(ExpandSubscriber, _super);\n    function ExpandSubscriber(destination, project, concurrent, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.scheduler = scheduler;\n        _this.index = 0;\n        _this.active = 0;\n        _this.hasCompleted = false;\n        if (concurrent < Number.POSITIVE_INFINITY) {\n            _this.buffer = [];\n        }\n        return _this;\n    }\n    ExpandSubscriber.dispatch = function (arg) {\n        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n        subscriber.subscribeToProjection(result, value, index);\n    };\n    ExpandSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (destination.closed) {\n            this._complete();\n            return;\n        }\n        var index = this.index++;\n        if (this.active < this.concurrent) {\n            destination.next(value);\n            try {\n                var project = this.project;\n                var result = project(value, index);\n                if (!this.scheduler) {\n                    this.subscribeToProjection(result, value, index);\n                }\n                else {\n                    var state = { subscriber: this, result: result, value: value, index: index };\n                    var destination_1 = this.destination;\n                    destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n                }\n            }\n            catch (e) {\n                destination.error(e);\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n        this.active++;\n        var destination = this.destination;\n        destination.add(subscribeToResult(this, result, value, index));\n    };\n    ExpandSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this._next(innerValue);\n    };\n    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.active--;\n        if (buffer && buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n    return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n    function FinallyOperator(callback) {\n        this.callback = callback;\n    }\n    FinallyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n    };\n    return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n    tslib_1.__extends(FinallySubscriber, _super);\n    function FinallySubscriber(destination, callback) {\n        var _this = _super.call(this, destination) || this;\n        _this.add(new Subscription(callback));\n        return _this;\n    }\n    return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n    if (typeof predicate !== 'function') {\n        throw new TypeError('predicate is not a function');\n    }\n    return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n    function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n        this.predicate = predicate;\n        this.source = source;\n        this.yieldIndex = yieldIndex;\n        this.thisArg = thisArg;\n    }\n    FindValueOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n    };\n    return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n    tslib_1.__extends(FindValueSubscriber, _super);\n    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.yieldIndex = yieldIndex;\n        _this.thisArg = thisArg;\n        _this.index = 0;\n        return _this;\n    }\n    FindValueSubscriber.prototype.notifyComplete = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n        this.unsubscribe();\n    };\n    FindValueSubscriber.prototype._next = function (value) {\n        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n        var index = this.index++;\n        try {\n            var result = predicate.call(thisArg || this, value, index, this.source);\n            if (result) {\n                this.notifyComplete(this.yieldIndex ? index : value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    FindValueSubscriber.prototype._complete = function () {\n        this.notifyComplete(this.yieldIndex ? -1 : undefined);\n    };\n    return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n    return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n    return function ignoreElementsOperatorFunction(source) {\n        return source.lift(new IgnoreElementsOperator());\n    };\n}\nvar IgnoreElementsOperator = (function () {\n    function IgnoreElementsOperator() {\n    }\n    IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n    };\n    return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n    tslib_1.__extends(IgnoreElementsSubscriber, _super);\n    function IgnoreElementsSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IgnoreElementsSubscriber.prototype._next = function (unused) {\n    };\n    return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n    return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n    function IsEmptyOperator() {\n    }\n    IsEmptyOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new IsEmptySubscriber(observer));\n    };\n    return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n    tslib_1.__extends(IsEmptySubscriber, _super);\n    function IsEmptySubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n        var destination = this.destination;\n        destination.next(isEmpty);\n        destination.complete();\n    };\n    IsEmptySubscriber.prototype._next = function (value) {\n        this.notifyComplete(false);\n    };\n    IsEmptySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n    return function takeLastOperatorFunction(source) {\n        if (count === 0) {\n            return empty();\n        }\n        else {\n            return source.lift(new TakeLastOperator(count));\n        }\n    };\n}\nvar TakeLastOperator = (function () {\n    function TakeLastOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    TakeLastOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n    };\n    return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n    tslib_1.__extends(TakeLastSubscriber, _super);\n    function TakeLastSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.ring = new Array();\n        _this.count = 0;\n        return _this;\n    }\n    TakeLastSubscriber.prototype._next = function (value) {\n        var ring = this.ring;\n        var total = this.total;\n        var count = this.count++;\n        if (ring.length < total) {\n            ring.push(value);\n        }\n        else {\n            var index = count % total;\n            ring[index] = value;\n        }\n    };\n    TakeLastSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        var count = this.count;\n        if (count > 0) {\n            var total = this.count >= this.total ? this.total : this.count;\n            var ring = this.ring;\n            for (var i = 0; i < total; i++) {\n                var idx = (count++) % total;\n                destination.next(ring[idx]);\n            }\n        }\n        destination.complete();\n    };\n    return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n    return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n    function MapToOperator(value) {\n        this.value = value;\n    }\n    MapToOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapToSubscriber(subscriber, this.value));\n    };\n    return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n    tslib_1.__extends(MapToSubscriber, _super);\n    function MapToSubscriber(destination, value) {\n        var _this = _super.call(this, destination) || this;\n        _this.value = value;\n        return _this;\n    }\n    MapToSubscriber.prototype._next = function (x) {\n        this.destination.next(this.value);\n    };\n    return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n    return function materializeOperatorFunction(source) {\n        return source.lift(new MaterializeOperator());\n    };\n}\nvar MaterializeOperator = (function () {\n    function MaterializeOperator() {\n    }\n    MaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MaterializeSubscriber(subscriber));\n    };\n    return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n    tslib_1.__extends(MaterializeSubscriber, _super);\n    function MaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    MaterializeSubscriber.prototype._next = function (value) {\n        this.destination.next(Notification.createNext(value));\n    };\n    MaterializeSubscriber.prototype._error = function (err) {\n        var destination = this.destination;\n        destination.next(Notification.createError(err));\n        destination.complete();\n    };\n    MaterializeSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        destination.next(Notification.createComplete());\n        destination.complete();\n    };\n    return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n    var hasSeed = false;\n    if (arguments.length >= 2) {\n        hasSeed = true;\n    }\n    return function scanOperatorFunction(source) {\n        return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n    };\n}\nvar ScanOperator = (function () {\n    function ScanOperator(accumulator, seed, hasSeed) {\n        if (hasSeed === void 0) { hasSeed = false; }\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.hasSeed = hasSeed;\n    }\n    ScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n    };\n    return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n    tslib_1.__extends(ScanSubscriber, _super);\n    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this._seed = _seed;\n        _this.hasSeed = hasSeed;\n        _this.index = 0;\n        return _this;\n    }\n    Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n        get: function () {\n            return this._seed;\n        },\n        set: function (value) {\n            this.hasSeed = true;\n            this._seed = value;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ScanSubscriber.prototype._next = function (value) {\n        if (!this.hasSeed) {\n            this.seed = value;\n            this.destination.next(value);\n        }\n        else {\n            return this._tryNext(value);\n        }\n    };\n    ScanSubscriber.prototype._tryNext = function (value) {\n        var index = this.index++;\n        var result;\n        try {\n            result = this.accumulator(this.seed, value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n        this.seed = result;\n        this.destination.next(result);\n    };\n    return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n    if (arguments.length >= 2) {\n        return function reduceOperatorFunctionWithSeed(source) {\n            return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n        };\n    }\n    return function reduceOperatorFunction(source) {\n        return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n    };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n    var max = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n        : function (x, y) { return x > y ? x : y; };\n    return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'function') {\n        return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n    }\n    if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n    }\n    return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n    function MergeScanOperator(accumulator, seed, concurrent) {\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.concurrent = concurrent;\n    }\n    MergeScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n    };\n    return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n    tslib_1.__extends(MergeScanSubscriber, _super);\n    function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this.acc = acc;\n        _this.concurrent = concurrent;\n        _this.hasValue = false;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeScanSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            var index = this.index++;\n            var destination = this.destination;\n            var ish = void 0;\n            try {\n                var accumulator = this.accumulator;\n                ish = accumulator(this.acc, value, index);\n            }\n            catch (e) {\n                return destination.error(e);\n            }\n            this.active++;\n            this._innerSub(ish, value, index);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    MergeScanSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var destination = this.destination;\n        this.acc = innerValue;\n        this.hasValue = true;\n        destination.next(innerValue);\n    };\n    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n    };\n    return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n    var min = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n        : function (x, y) { return x < y ? x : y; };\n    return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n    return function multicastOperatorFunction(source) {\n        var subjectFactory;\n        if (typeof subjectOrSubjectFactory === 'function') {\n            subjectFactory = subjectOrSubjectFactory;\n        }\n        else {\n            subjectFactory = function subjectFactory() {\n                return subjectOrSubjectFactory;\n            };\n        }\n        if (typeof selector === 'function') {\n            return source.lift(new MulticastOperator(subjectFactory, selector));\n        }\n        var connectable = Object.create(source, connectableObservableDescriptor);\n        connectable.source = source;\n        connectable.subjectFactory = subjectFactory;\n        return connectable;\n    };\n}\nvar MulticastOperator = (function () {\n    function MulticastOperator(subjectFactory, selector) {\n        this.subjectFactory = subjectFactory;\n        this.selector = selector;\n    }\n    MulticastOperator.prototype.call = function (subscriber, source) {\n        var selector = this.selector;\n        var subject = this.subjectFactory();\n        var subscription = selector(subject).subscribe(subscriber);\n        subscription.add(source.subscribe(subject));\n        return subscription;\n    };\n    return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i] = arguments[_i];\n    }\n    if (nextSources.length === 1 && isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i] = arguments[_i];\n    }\n    var source = null;\n    if (nextSources.length === 1 && isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    source = nextSources.shift();\n    return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n    function OnErrorResumeNextOperator(nextSources) {\n        this.nextSources = nextSources;\n    }\n    OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n    };\n    return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n    tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n    function OnErrorResumeNextSubscriber(destination, nextSources) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.nextSources = nextSources;\n        return _this;\n    }\n    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._error = function (err) {\n        this.subscribeToNextSource();\n        this.unsubscribe();\n    };\n    OnErrorResumeNextSubscriber.prototype._complete = function () {\n        this.subscribeToNextSource();\n        this.unsubscribe();\n    };\n    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n        var next = this.nextSources.shift();\n        if (!!next) {\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            var destination = this.destination;\n            destination.add(innerSubscriber);\n            var innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n            if (innerSubscription !== innerSubscriber) {\n                destination.add(innerSubscription);\n            }\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n    return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n    function PairwiseOperator() {\n    }\n    PairwiseOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new PairwiseSubscriber(subscriber));\n    };\n    return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n    tslib_1.__extends(PairwiseSubscriber, _super);\n    function PairwiseSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasPrev = false;\n        return _this;\n    }\n    PairwiseSubscriber.prototype._next = function (value) {\n        var pair;\n        if (this.hasPrev) {\n            pair = [this.prev, value];\n        }\n        else {\n            this.hasPrev = true;\n        }\n        this.prev = value;\n        if (pair) {\n            this.destination.next(pair);\n        }\n    };\n    return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n    return function (source) { return [\n        filter(predicate, thisArg)(source),\n        filter(not(predicate, thisArg))(source)\n    ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n    var properties = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        properties[_i] = arguments[_i];\n    }\n    var length = properties.length;\n    if (length === 0) {\n        throw new Error('list of properties cannot be empty.');\n    }\n    return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n    var mapper = function (x) {\n        var currentProp = x;\n        for (var i = 0; i < length; i++) {\n            var p = currentProp[props[i]];\n            if (typeof p !== 'undefined') {\n                currentProp = p;\n            }\n            else {\n                return undefined;\n            }\n        }\n        return currentProp;\n    };\n    return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n    return selector ?\n        multicast(function () { return new Subject(); }, selector) :\n        multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n    return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n    return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n    if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n        scheduler = selectorOrScheduler;\n    }\n    var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n    var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n    return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function raceOperatorFunction(source) {\n        if (observables.length === 1 && isArray(observables[0])) {\n            observables = observables[0];\n        }\n        return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n    };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n    if (count === void 0) { count = -1; }\n    return function (source) {\n        if (count === 0) {\n            return empty();\n        }\n        else if (count < 0) {\n            return source.lift(new RepeatOperator(-1, source));\n        }\n        else {\n            return source.lift(new RepeatOperator(count - 1, source));\n        }\n    };\n}\nvar RepeatOperator = (function () {\n    function RepeatOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RepeatOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n    };\n    return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n    tslib_1.__extends(RepeatSubscriber, _super);\n    function RepeatSubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RepeatSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.complete.call(this);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n    return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n    function RepeatWhenOperator(notifier) {\n        this.notifier = notifier;\n    }\n    RepeatWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n    };\n    return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n    tslib_1.__extends(RepeatWhenSubscriber, _super);\n    function RepeatWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        _this.sourceIsBeingSubscribedTo = true;\n        return _this;\n    }\n    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.sourceIsBeingSubscribedTo = true;\n        this.source.subscribe(this);\n    };\n    RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        if (this.sourceIsBeingSubscribedTo === false) {\n            return _super.prototype.complete.call(this);\n        }\n    };\n    RepeatWhenSubscriber.prototype.complete = function () {\n        this.sourceIsBeingSubscribedTo = false;\n        if (!this.isStopped) {\n            if (!this.retries) {\n                this.subscribeToRetries();\n            }\n            if (!this.retriesSubscription || this.retriesSubscription.closed) {\n                return _super.prototype.complete.call(this);\n            }\n            this._unsubscribeAndRecycle();\n            this.notifications.next();\n        }\n    };\n    RepeatWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n        if (notifications) {\n            notifications.unsubscribe();\n            this.notifications = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        _super.prototype._unsubscribeAndRecycle.call(this);\n        this._unsubscribe = _unsubscribe;\n        return this;\n    };\n    RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n        this.notifications = new Subject();\n        var retries;\n        try {\n            var notifier = this.notifier;\n            retries = notifier(this.notifications);\n        }\n        catch (e) {\n            return _super.prototype.complete.call(this);\n        }\n        this.retries = retries;\n        this.retriesSubscription = subscribeToResult(this, retries);\n    };\n    return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n    if (count === void 0) { count = -1; }\n    return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n    function RetryOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RetryOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n    };\n    return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n    tslib_1.__extends(RetrySubscriber, _super);\n    function RetrySubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RetrySubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.error.call(this, err);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n    return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n    function RetryWhenOperator(notifier, source) {\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RetryWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n    };\n    return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n    tslib_1.__extends(RetryWhenSubscriber, _super);\n    function RetryWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        return _this;\n    }\n    RetryWhenSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var errors = this.errors;\n            var retries = this.retries;\n            var retriesSubscription = this.retriesSubscription;\n            if (!retries) {\n                errors = new Subject();\n                try {\n                    var notifier = this.notifier;\n                    retries = notifier(errors);\n                }\n                catch (e) {\n                    return _super.prototype.error.call(this, e);\n                }\n                retriesSubscription = subscribeToResult(this, retries);\n            }\n            else {\n                this.errors = null;\n                this.retriesSubscription = null;\n            }\n            this._unsubscribeAndRecycle();\n            this.errors = errors;\n            this.retries = retries;\n            this.retriesSubscription = retriesSubscription;\n            errors.next(err);\n        }\n    };\n    RetryWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n        if (errors) {\n            errors.unsubscribe();\n            this.errors = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        this._unsubscribeAndRecycle();\n        this._unsubscribe = _unsubscribe;\n        this.source.subscribe(this);\n    };\n    return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n    return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n    function SampleOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SampleOperator.prototype.call = function (subscriber, source) {\n        var sampleSubscriber = new SampleSubscriber(subscriber);\n        var subscription = source.subscribe(sampleSubscriber);\n        subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n        return subscription;\n    };\n    return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n    tslib_1.__extends(SampleSubscriber, _super);\n    function SampleSubscriber() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hasValue = false;\n        return _this;\n    }\n    SampleSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n    };\n    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.value);\n        }\n    };\n    return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n    function SampleTimeOperator(period, scheduler) {\n        this.period = period;\n        this.scheduler = scheduler;\n    }\n    SampleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n    };\n    return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n    tslib_1.__extends(SampleTimeSubscriber, _super);\n    function SampleTimeSubscriber(destination, period, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.period = period;\n        _this.scheduler = scheduler;\n        _this.hasValue = false;\n        _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n        return _this;\n    }\n    SampleTimeSubscriber.prototype._next = function (value) {\n        this.lastValue = value;\n        this.hasValue = true;\n    };\n    SampleTimeSubscriber.prototype.notifyNext = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.lastValue);\n        }\n    };\n    return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n    var subscriber = state.subscriber, period = state.period;\n    subscriber.notifyNext();\n    this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n    return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n    function SequenceEqualOperator(compareTo, comparator) {\n        this.compareTo = compareTo;\n        this.comparator = comparator;\n    }\n    SequenceEqualOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n    };\n    return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n    tslib_1.__extends(SequenceEqualSubscriber, _super);\n    function SequenceEqualSubscriber(destination, compareTo, comparator) {\n        var _this = _super.call(this, destination) || this;\n        _this.compareTo = compareTo;\n        _this.comparator = comparator;\n        _this._a = [];\n        _this._b = [];\n        _this._oneComplete = false;\n        _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n        return _this;\n    }\n    SequenceEqualSubscriber.prototype._next = function (value) {\n        if (this._oneComplete && this._b.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._a.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype._complete = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n        this.unsubscribe();\n    };\n    SequenceEqualSubscriber.prototype.checkValues = function () {\n        var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n        while (_a.length > 0 && _b.length > 0) {\n            var a = _a.shift();\n            var b = _b.shift();\n            var areEqual = false;\n            try {\n                areEqual = comparator ? comparator(a, b) : a === b;\n            }\n            catch (e) {\n                this.destination.error(e);\n            }\n            if (!areEqual) {\n                this.emit(false);\n            }\n        }\n    };\n    SequenceEqualSubscriber.prototype.emit = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n    };\n    SequenceEqualSubscriber.prototype.nextB = function (value) {\n        if (this._oneComplete && this._a.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._b.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype.completeB = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n    };\n    return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n    tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n    function SequenceEqualCompareToSubscriber(destination, parent) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        return _this;\n    }\n    SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n        this.parent.nextB(value);\n    };\n    SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n        this.parent.error(err);\n        this.unsubscribe();\n    };\n    SequenceEqualCompareToSubscriber.prototype._complete = function () {\n        this.parent.completeB();\n        this.unsubscribe();\n    };\n    return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n    return new Subject();\n}\nexport function share() {\n    return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n    var config;\n    if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n        config = configOrBufferSize;\n    }\n    else {\n        config = {\n            bufferSize: configOrBufferSize,\n            windowTime: windowTime,\n            refCount: false,\n            scheduler: scheduler\n        };\n    }\n    return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n    var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n    var subject;\n    var refCount = 0;\n    var subscription;\n    var hasError = false;\n    var isComplete = false;\n    return function shareReplayOperation(source) {\n        refCount++;\n        if (!subject || hasError) {\n            hasError = false;\n            subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n            subscription = source.subscribe({\n                next: function (value) { subject.next(value); },\n                error: function (err) {\n                    hasError = true;\n                    subject.error(err);\n                },\n                complete: function () {\n                    isComplete = true;\n                    subscription = undefined;\n                    subject.complete();\n                },\n            });\n        }\n        var innerSub = subject.subscribe(this);\n        this.add(function () {\n            refCount--;\n            innerSub.unsubscribe();\n            if (subscription && !isComplete && useRefCount && refCount === 0) {\n                subscription.unsubscribe();\n                subscription = undefined;\n                subject = undefined;\n            }\n        });\n    };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n    return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n    function SingleOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    SingleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n    };\n    return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n    tslib_1.__extends(SingleSubscriber, _super);\n    function SingleSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.seenValue = false;\n        _this.index = 0;\n        return _this;\n    }\n    SingleSubscriber.prototype.applySingleValue = function (value) {\n        if (this.seenValue) {\n            this.destination.error('Sequence contains more than one element');\n        }\n        else {\n            this.seenValue = true;\n            this.singleValue = value;\n        }\n    };\n    SingleSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        if (this.predicate) {\n            this.tryNext(value, index);\n        }\n        else {\n            this.applySingleValue(value);\n        }\n    };\n    SingleSubscriber.prototype.tryNext = function (value, index) {\n        try {\n            if (this.predicate(value, index, this.source)) {\n                this.applySingleValue(value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    SingleSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.index > 0) {\n            destination.next(this.seenValue ? this.singleValue : undefined);\n            destination.complete();\n        }\n        else {\n            destination.error(new EmptyError);\n        }\n    };\n    return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n    return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n    function SkipOperator(total) {\n        this.total = total;\n    }\n    SkipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipSubscriber(subscriber, this.total));\n    };\n    return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n    tslib_1.__extends(SkipSubscriber, _super);\n    function SkipSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    SkipSubscriber.prototype._next = function (x) {\n        if (++this.count > this.total) {\n            this.destination.next(x);\n        }\n    };\n    return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n    return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n    function SkipLastOperator(_skipCount) {\n        this._skipCount = _skipCount;\n        if (this._skipCount < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    SkipLastOperator.prototype.call = function (subscriber, source) {\n        if (this._skipCount === 0) {\n            return source.subscribe(new Subscriber(subscriber));\n        }\n        else {\n            return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n        }\n    };\n    return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n    tslib_1.__extends(SkipLastSubscriber, _super);\n    function SkipLastSubscriber(destination, _skipCount) {\n        var _this = _super.call(this, destination) || this;\n        _this._skipCount = _skipCount;\n        _this._count = 0;\n        _this._ring = new Array(_skipCount);\n        return _this;\n    }\n    SkipLastSubscriber.prototype._next = function (value) {\n        var skipCount = this._skipCount;\n        var count = this._count++;\n        if (count < skipCount) {\n            this._ring[count] = value;\n        }\n        else {\n            var currentIndex = count % skipCount;\n            var ring = this._ring;\n            var oldValue = ring[currentIndex];\n            ring[currentIndex] = value;\n            this.destination.next(oldValue);\n        }\n    };\n    return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n    return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n    function SkipUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SkipUntilOperator.prototype.call = function (destination, source) {\n        return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n    };\n    return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n    tslib_1.__extends(SkipUntilSubscriber, _super);\n    function SkipUntilSubscriber(destination, notifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasValue = false;\n        var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n        _this.add(innerSubscriber);\n        _this.innerSubscription = innerSubscriber;\n        var innerSubscription = subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            _this.add(innerSubscription);\n            _this.innerSubscription = innerSubscription;\n        }\n        return _this;\n    }\n    SkipUntilSubscriber.prototype._next = function (value) {\n        if (this.hasValue) {\n            _super.prototype._next.call(this, value);\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.hasValue = true;\n        if (this.innerSubscription) {\n            this.innerSubscription.unsubscribe();\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n    return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n    function SkipWhileOperator(predicate) {\n        this.predicate = predicate;\n    }\n    SkipWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n    };\n    return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n    tslib_1.__extends(SkipWhileSubscriber, _super);\n    function SkipWhileSubscriber(destination, predicate) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.skipping = true;\n        _this.index = 0;\n        return _this;\n    }\n    SkipWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (this.skipping) {\n            this.tryCallPredicate(value);\n        }\n        if (!this.skipping) {\n            destination.next(value);\n        }\n    };\n    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n        try {\n            var result = this.predicate(value, this.index++);\n            this.skipping = Boolean(result);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n    var array = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        array[_i] = arguments[_i];\n    }\n    var scheduler = array[array.length - 1];\n    if (isScheduler(scheduler)) {\n        array.pop();\n        return function (source) { return concat(array, source, scheduler); };\n    }\n    else {\n        return function (source) { return concat(array, source); };\n    }\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n    tslib_1.__extends(SubscribeOnObservable, _super);\n    function SubscribeOnObservable(source, delayTime, scheduler) {\n        if (delayTime === void 0) { delayTime = 0; }\n        if (scheduler === void 0) { scheduler = asap; }\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.delayTime = delayTime;\n        _this.scheduler = scheduler;\n        if (!isNumeric(delayTime) || delayTime < 0) {\n            _this.delayTime = 0;\n        }\n        if (!scheduler || typeof scheduler.schedule !== 'function') {\n            _this.scheduler = asap;\n        }\n        return _this;\n    }\n    SubscribeOnObservable.create = function (source, delay, scheduler) {\n        if (delay === void 0) { delay = 0; }\n        if (scheduler === void 0) { scheduler = asap; }\n        return new SubscribeOnObservable(source, delay, scheduler);\n    };\n    SubscribeOnObservable.dispatch = function (arg) {\n        var source = arg.source, subscriber = arg.subscriber;\n        return this.add(source.subscribe(subscriber));\n    };\n    SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n        var delay = this.delayTime;\n        var source = this.source;\n        var scheduler = this.scheduler;\n        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n            source: source, subscriber: subscriber\n        });\n    };\n    return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return function subscribeOnOperatorFunction(source) {\n        return source.lift(new SubscribeOnOperator(scheduler, delay));\n    };\n}\nvar SubscribeOnOperator = (function () {\n    function SubscribeOnOperator(scheduler, delay) {\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    SubscribeOnOperator.prototype.call = function (subscriber, source) {\n        return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n    };\n    return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n    if (typeof resultSelector === 'function') {\n        return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n    }\n    return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n    function SwitchMapOperator(project) {\n        this.project = project;\n    }\n    SwitchMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n    };\n    return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n    tslib_1.__extends(SwitchMapSubscriber, _super);\n    function SwitchMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.index = 0;\n        return _this;\n    }\n    SwitchMapSubscriber.prototype._next = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (error) {\n            this.destination.error(error);\n            return;\n        }\n        this._innerSub(result, value, index);\n    };\n    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n        }\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n        if (this.innerSubscription !== innerSubscriber) {\n            destination.add(this.innerSubscription);\n        }\n    };\n    SwitchMapSubscriber.prototype._complete = function () {\n        var innerSubscription = this.innerSubscription;\n        if (!innerSubscription || innerSubscription.closed) {\n            _super.prototype._complete.call(this);\n        }\n        this.unsubscribe();\n    };\n    SwitchMapSubscriber.prototype._unsubscribe = function () {\n        this.innerSubscription = null;\n    };\n    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.innerSubscription = null;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n    return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n    return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n    return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n    function TakeUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    TakeUntilOperator.prototype.call = function (subscriber, source) {\n        var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n        var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n        if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n            takeUntilSubscriber.add(notifierSubscription);\n            return source.subscribe(takeUntilSubscriber);\n        }\n        return takeUntilSubscriber;\n    };\n    return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n    tslib_1.__extends(TakeUntilSubscriber, _super);\n    function TakeUntilSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.seenValue = false;\n        return _this;\n    }\n    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.seenValue = true;\n        this.complete();\n    };\n    TakeUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n    if (inclusive === void 0) { inclusive = false; }\n    return function (source) {\n        return source.lift(new TakeWhileOperator(predicate, inclusive));\n    };\n}\nvar TakeWhileOperator = (function () {\n    function TakeWhileOperator(predicate, inclusive) {\n        this.predicate = predicate;\n        this.inclusive = inclusive;\n    }\n    TakeWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n    };\n    return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n    tslib_1.__extends(TakeWhileSubscriber, _super);\n    function TakeWhileSubscriber(destination, predicate, inclusive) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.inclusive = inclusive;\n        _this.index = 0;\n        return _this;\n    }\n    TakeWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        var result;\n        try {\n            result = this.predicate(value, this.index++);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this.nextOrComplete(value, result);\n    };\n    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n        var destination = this.destination;\n        if (Boolean(predicateResult)) {\n            destination.next(value);\n        }\n        else {\n            if (this.inclusive) {\n                destination.next(value);\n            }\n            destination.complete();\n        }\n    };\n    return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n    return function tapOperatorFunction(source) {\n        return source.lift(new DoOperator(nextOrObserver, error, complete));\n    };\n}\nvar DoOperator = (function () {\n    function DoOperator(nextOrObserver, error, complete) {\n        this.nextOrObserver = nextOrObserver;\n        this.error = error;\n        this.complete = complete;\n    }\n    DoOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n    };\n    return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n    tslib_1.__extends(TapSubscriber, _super);\n    function TapSubscriber(destination, observerOrNext, error, complete) {\n        var _this = _super.call(this, destination) || this;\n        _this._tapNext = noop;\n        _this._tapError = noop;\n        _this._tapComplete = noop;\n        _this._tapError = error || noop;\n        _this._tapComplete = complete || noop;\n        if (isFunction(observerOrNext)) {\n            _this._context = _this;\n            _this._tapNext = observerOrNext;\n        }\n        else if (observerOrNext) {\n            _this._context = observerOrNext;\n            _this._tapNext = observerOrNext.next || noop;\n            _this._tapError = observerOrNext.error || noop;\n            _this._tapComplete = observerOrNext.complete || noop;\n        }\n        return _this;\n    }\n    TapSubscriber.prototype._next = function (value) {\n        try {\n            this._tapNext.call(this._context, value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(value);\n    };\n    TapSubscriber.prototype._error = function (err) {\n        try {\n            this._tapError.call(this._context, err);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.error(err);\n    };\n    TapSubscriber.prototype._complete = function () {\n        try {\n            this._tapComplete.call(this._context);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        return this.destination.complete();\n    };\n    return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n    leading: true,\n    trailing: false\n};\nexport function throttle(durationSelector, config) {\n    if (config === void 0) { config = defaultThrottleConfig; }\n    return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n    function ThrottleOperator(durationSelector, leading, trailing) {\n        this.durationSelector = durationSelector;\n        this.leading = leading;\n        this.trailing = trailing;\n    }\n    ThrottleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n    };\n    return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n    tslib_1.__extends(ThrottleSubscriber, _super);\n    function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.durationSelector = durationSelector;\n        _this._leading = _leading;\n        _this._trailing = _trailing;\n        _this._hasValue = false;\n        return _this;\n    }\n    ThrottleSubscriber.prototype._next = function (value) {\n        this._hasValue = true;\n        this._sendValue = value;\n        if (!this._throttled) {\n            if (this._leading) {\n                this.send();\n            }\n            else {\n                this.throttle(value);\n            }\n        }\n    };\n    ThrottleSubscriber.prototype.send = function () {\n        var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n        if (_hasValue) {\n            this.destination.next(_sendValue);\n            this.throttle(_sendValue);\n        }\n        this._hasValue = false;\n        this._sendValue = null;\n    };\n    ThrottleSubscriber.prototype.throttle = function (value) {\n        var duration = this.tryDurationSelector(value);\n        if (!!duration) {\n            this.add(this._throttled = subscribeToResult(this, duration));\n        }\n    };\n    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n        try {\n            return this.durationSelector(value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return null;\n        }\n    };\n    ThrottleSubscriber.prototype.throttlingDone = function () {\n        var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n        if (_throttled) {\n            _throttled.unsubscribe();\n        }\n        this._throttled = null;\n        if (_trailing) {\n            this.send();\n        }\n    };\n    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.throttlingDone();\n    };\n    ThrottleSubscriber.prototype.notifyComplete = function () {\n        this.throttlingDone();\n    };\n    return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n    if (scheduler === void 0) { scheduler = async; }\n    if (config === void 0) { config = defaultThrottleConfig; }\n    return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n    function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n        this.duration = duration;\n        this.scheduler = scheduler;\n        this.leading = leading;\n        this.trailing = trailing;\n    }\n    ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n    };\n    return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n    tslib_1.__extends(ThrottleTimeSubscriber, _super);\n    function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.duration = duration;\n        _this.scheduler = scheduler;\n        _this.leading = leading;\n        _this.trailing = trailing;\n        _this._hasTrailingValue = false;\n        _this._trailingValue = null;\n        return _this;\n    }\n    ThrottleTimeSubscriber.prototype._next = function (value) {\n        if (this.throttled) {\n            if (this.trailing) {\n                this._trailingValue = value;\n                this._hasTrailingValue = true;\n            }\n        }\n        else {\n            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n            if (this.leading) {\n                this.destination.next(value);\n            }\n            else if (this.trailing) {\n                this._trailingValue = value;\n                this._hasTrailingValue = true;\n            }\n        }\n    };\n    ThrottleTimeSubscriber.prototype._complete = function () {\n        if (this._hasTrailingValue) {\n            this.destination.next(this._trailingValue);\n            this.destination.complete();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n        var throttled = this.throttled;\n        if (throttled) {\n            if (this.trailing && this._hasTrailingValue) {\n                this.destination.next(this._trailingValue);\n                this._trailingValue = null;\n                this._hasTrailingValue = false;\n            }\n            throttled.unsubscribe();\n            this.remove(throttled);\n            this.throttled = null;\n        }\n    };\n    return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n    var subscriber = arg.subscriber;\n    subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return defer(function () {\n        return source.pipe(scan(function (_a, value) {\n            var current = _a.current;\n            return ({ value: value, current: scheduler.now(), last: current });\n        }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n            var current = _a.current, last = _a.last, value = _a.value;\n            return new TimeInterval(value, current - last);\n        }));\n    }); };\n}\nvar TimeInterval = (function () {\n    function TimeInterval(value, interval) {\n        this.value = value;\n        this.interval = interval;\n    }\n    return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) {\n        var absoluteTimeout = isDate(due);\n        var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n        return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n    };\n}\nvar TimeoutWithOperator = (function () {\n    function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n        this.waitFor = waitFor;\n        this.absoluteTimeout = absoluteTimeout;\n        this.withObservable = withObservable;\n        this.scheduler = scheduler;\n    }\n    TimeoutWithOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n    };\n    return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n    tslib_1.__extends(TimeoutWithSubscriber, _super);\n    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.absoluteTimeout = absoluteTimeout;\n        _this.waitFor = waitFor;\n        _this.withObservable = withObservable;\n        _this.scheduler = scheduler;\n        _this.action = null;\n        _this.scheduleTimeout();\n        return _this;\n    }\n    TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n        var withObservable = subscriber.withObservable;\n        subscriber._unsubscribeAndRecycle();\n        subscriber.add(subscribeToResult(subscriber, withObservable));\n    };\n    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n        var action = this.action;\n        if (action) {\n            this.action = action.schedule(this, this.waitFor);\n        }\n        else {\n            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n        }\n    };\n    TimeoutWithSubscriber.prototype._next = function (value) {\n        if (!this.absoluteTimeout) {\n            this.scheduleTimeout();\n        }\n        _super.prototype._next.call(this, value);\n    };\n    TimeoutWithSubscriber.prototype._unsubscribe = function () {\n        this.action = null;\n        this.scheduler = null;\n        this.withObservable = null;\n    };\n    return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n    function Timestamp(value, timestamp) {\n        this.value = value;\n        this.timestamp = timestamp;\n    }\n    return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n    if (index === 0) {\n        return [item];\n    }\n    arr.push(item);\n    return arr;\n}\nexport function toArray() {\n    return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n    return function windowOperatorFunction(source) {\n        return source.lift(new WindowOperator(windowBoundaries));\n    };\n}\nvar WindowOperator = (function () {\n    function WindowOperator(windowBoundaries) {\n        this.windowBoundaries = windowBoundaries;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        var windowSubscriber = new WindowSubscriber(subscriber);\n        var sourceSubscription = source.subscribe(windowSubscriber);\n        if (!sourceSubscription.closed) {\n            windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n        }\n        return sourceSubscription;\n    };\n    return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n    tslib_1.__extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.window = new Subject();\n        destination.next(_this.window);\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow();\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this._complete();\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n    };\n    WindowSubscriber.prototype._unsubscribe = function () {\n        this.window = null;\n    };\n    WindowSubscriber.prototype.openWindow = function () {\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var destination = this.destination;\n        var newWindow = this.window = new Subject();\n        destination.next(newWindow);\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n    if (startWindowEvery === void 0) { startWindowEvery = 0; }\n    return function windowCountOperatorFunction(source) {\n        return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n    };\n}\nvar WindowCountOperator = (function () {\n    function WindowCountOperator(windowSize, startWindowEvery) {\n        this.windowSize = windowSize;\n        this.startWindowEvery = startWindowEvery;\n    }\n    WindowCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n    };\n    return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n    tslib_1.__extends(WindowCountSubscriber, _super);\n    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowSize = windowSize;\n        _this.startWindowEvery = startWindowEvery;\n        _this.windows = [new Subject()];\n        _this.count = 0;\n        destination.next(_this.windows[0]);\n        return _this;\n    }\n    WindowCountSubscriber.prototype._next = function (value) {\n        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n        var destination = this.destination;\n        var windowSize = this.windowSize;\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len && !this.closed; i++) {\n            windows[i].next(value);\n        }\n        var c = this.count - windowSize + 1;\n        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n            windows.shift().complete();\n        }\n        if (++this.count % startWindowEvery === 0 && !this.closed) {\n            var window_1 = new Subject();\n            windows.push(window_1);\n            destination.next(window_1);\n        }\n    };\n    WindowCountSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().error(err);\n            }\n        }\n        this.destination.error(err);\n    };\n    WindowCountSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowCountSubscriber.prototype._unsubscribe = function () {\n        this.count = 0;\n        this.windows = null;\n    };\n    return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n    var scheduler = async;\n    var windowCreationInterval = null;\n    var maxWindowSize = Number.POSITIVE_INFINITY;\n    if (isScheduler(arguments[3])) {\n        scheduler = arguments[3];\n    }\n    if (isScheduler(arguments[2])) {\n        scheduler = arguments[2];\n    }\n    else if (isNumeric(arguments[2])) {\n        maxWindowSize = arguments[2];\n    }\n    if (isScheduler(arguments[1])) {\n        scheduler = arguments[1];\n    }\n    else if (isNumeric(arguments[1])) {\n        windowCreationInterval = arguments[1];\n    }\n    return function windowTimeOperatorFunction(source) {\n        return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n    };\n}\nvar WindowTimeOperator = (function () {\n    function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n        this.windowTimeSpan = windowTimeSpan;\n        this.windowCreationInterval = windowCreationInterval;\n        this.maxWindowSize = maxWindowSize;\n        this.scheduler = scheduler;\n    }\n    WindowTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n    };\n    return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n    tslib_1.__extends(CountedSubject, _super);\n    function CountedSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._numberOfNextedValues = 0;\n        return _this;\n    }\n    CountedSubject.prototype.next = function (value) {\n        this._numberOfNextedValues++;\n        _super.prototype.next.call(this, value);\n    };\n    Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n        get: function () {\n            return this._numberOfNextedValues;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n    tslib_1.__extends(WindowTimeSubscriber, _super);\n    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowTimeSpan = windowTimeSpan;\n        _this.windowCreationInterval = windowCreationInterval;\n        _this.maxWindowSize = maxWindowSize;\n        _this.scheduler = scheduler;\n        _this.windows = [];\n        var window = _this.openWindow();\n        if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n            var closeState = { subscriber: _this, window: window, context: null };\n            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n        }\n        else {\n            var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n            _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n        }\n        return _this;\n    }\n    WindowTimeSubscriber.prototype._next = function (value) {\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len; i++) {\n            var window_1 = windows[i];\n            if (!window_1.closed) {\n                window_1.next(value);\n                if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n                    this.closeWindow(window_1);\n                }\n            }\n        }\n    };\n    WindowTimeSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            windows.shift().error(err);\n        }\n        this.destination.error(err);\n    };\n    WindowTimeSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            var window_2 = windows.shift();\n            if (!window_2.closed) {\n                window_2.complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowTimeSubscriber.prototype.openWindow = function () {\n        var window = new CountedSubject();\n        this.windows.push(window);\n        var destination = this.destination;\n        destination.next(window);\n        return window;\n    };\n    WindowTimeSubscriber.prototype.closeWindow = function (window) {\n        window.complete();\n        var windows = this.windows;\n        windows.splice(windows.indexOf(window), 1);\n    };\n    return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n    if (window) {\n        subscriber.closeWindow(window);\n    }\n    state.window = subscriber.openWindow();\n    this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n    var window = subscriber.openWindow();\n    var action = this;\n    var context = { action: action, subscription: null };\n    var timeSpanState = { subscriber: subscriber, window: window, context: context };\n    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n    action.add(context.subscription);\n    action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n    var subscriber = state.subscriber, window = state.window, context = state.context;\n    if (context && context.action && context.subscription) {\n        context.action.remove(context.subscription);\n    }\n    subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n    return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n    function WindowToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    WindowToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n    tslib_1.__extends(WindowToggleSubscriber, _super);\n    function WindowToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n        return _this;\n    }\n    WindowToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        if (contexts) {\n            var len = contexts.length;\n            for (var i = 0; i < len; i++) {\n                contexts[i].window.next(value);\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_1 = contexts[index];\n                context_1.window.error(err);\n                context_1.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._error.call(this, err);\n    };\n    WindowToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_2 = contexts[index];\n                context_2.window.complete();\n                context_2.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    WindowToggleSubscriber.prototype._unsubscribe = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_3 = contexts[index];\n                context_3.window.unsubscribe();\n                context_3.subscription.unsubscribe();\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (outerValue === this.openings) {\n            var closingNotifier = void 0;\n            try {\n                var closingSelector = this.closingSelector;\n                closingNotifier = closingSelector(innerValue);\n            }\n            catch (e) {\n                return this.error(e);\n            }\n            var window_1 = new Subject();\n            var subscription = new Subscription();\n            var context_4 = { window: window_1, subscription: subscription };\n            this.contexts.push(context_4);\n            var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n            if (innerSubscription.closed) {\n                this.closeWindow(this.contexts.length - 1);\n            }\n            else {\n                innerSubscription.context = context_4;\n                subscription.add(innerSubscription);\n            }\n            this.destination.next(window_1);\n        }\n        else {\n            this.closeWindow(this.contexts.indexOf(outerValue));\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyError = function (err) {\n        this.error(err);\n    };\n    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n        if (inner !== this.openSubscription) {\n            this.closeWindow(this.contexts.indexOf(inner.context));\n        }\n    };\n    WindowToggleSubscriber.prototype.closeWindow = function (index) {\n        if (index === -1) {\n            return;\n        }\n        var contexts = this.contexts;\n        var context = contexts[index];\n        var window = context.window, subscription = context.subscription;\n        contexts.splice(index, 1);\n        window.complete();\n        subscription.unsubscribe();\n    };\n    return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n    return function windowWhenOperatorFunction(source) {\n        return source.lift(new WindowOperator(closingSelector));\n    };\n}\nvar WindowOperator = (function () {\n    function WindowOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n    };\n    return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n    tslib_1.__extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.closingSelector = closingSelector;\n        _this.openWindow();\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n        if (this.closingNotification) {\n            this.closingNotification.unsubscribe();\n        }\n    };\n    WindowSubscriber.prototype.openWindow = function (innerSub) {\n        if (innerSub === void 0) { innerSub = null; }\n        if (innerSub) {\n            this.remove(innerSub);\n            innerSub.unsubscribe();\n        }\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var window = this.window = new Subject();\n        this.destination.next(window);\n        var closingNotifier;\n        try {\n            var closingSelector = this.closingSelector;\n            closingNotifier = closingSelector();\n        }\n        catch (e) {\n            this.destination.error(e);\n            this.window.error(e);\n            return;\n        }\n        this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    return function (source) {\n        var project;\n        if (typeof args[args.length - 1] === 'function') {\n            project = args.pop();\n        }\n        var observables = args;\n        return source.lift(new WithLatestFromOperator(observables, project));\n    };\n}\nvar WithLatestFromOperator = (function () {\n    function WithLatestFromOperator(observables, project) {\n        this.observables = observables;\n        this.project = project;\n    }\n    WithLatestFromOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n    };\n    return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n    tslib_1.__extends(WithLatestFromSubscriber, _super);\n    function WithLatestFromSubscriber(destination, observables, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.observables = observables;\n        _this.project = project;\n        _this.toRespond = [];\n        var len = observables.length;\n        _this.values = new Array(len);\n        for (var i = 0; i < len; i++) {\n            _this.toRespond.push(i);\n        }\n        for (var i = 0; i < len; i++) {\n            var observable = observables[i];\n            _this.add(subscribeToResult(_this, observable, observable, i));\n        }\n        return _this;\n    }\n    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values[outerIndex] = innerValue;\n        var toRespond = this.toRespond;\n        if (toRespond.length > 0) {\n            var found = toRespond.indexOf(outerIndex);\n            if (found !== -1) {\n                toRespond.splice(found, 1);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype.notifyComplete = function () {\n    };\n    WithLatestFromSubscriber.prototype._next = function (value) {\n        if (this.toRespond.length === 0) {\n            var args = [value].concat(this.values);\n            if (this.project) {\n                this._tryProject(args);\n            }\n            else {\n                this.destination.next(args);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype._tryProject = function (args) {\n        var result;\n        try {\n            result = this.project.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function zipOperatorFunction(source) {\n        return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n    };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n    return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n    function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n        if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n        this.subscribedFrame = subscribedFrame;\n        this.unsubscribedFrame = unsubscribedFrame;\n    }\n    return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n    function SubscriptionLoggable() {\n        this.subscriptions = [];\n    }\n    SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n        this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n        return this.subscriptions.length - 1;\n    };\n    SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n        var subscriptionLogs = this.subscriptions;\n        var oldSubscriptionLog = subscriptionLogs[index];\n        subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n    };\n    return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n    for (var i = 0, len = baseCtors.length; i < len; i++) {\n        var baseCtor = baseCtors[i];\n        var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n        for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n            var name_1 = propertyKeys[j];\n            derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n        }\n    }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n    tslib_1.__extends(ColdObservable, _super);\n    function ColdObservable(messages, scheduler) {\n        var _this = _super.call(this, function (subscriber) {\n            var observable = this;\n            var index = observable.logSubscribedFrame();\n            var subscription = new Subscription();\n            subscription.add(new Subscription(function () {\n                observable.logUnsubscribedFrame(index);\n            }));\n            observable.scheduleMessages(subscriber);\n            return subscription;\n        }) || this;\n        _this.messages = messages;\n        _this.subscriptions = [];\n        _this.scheduler = scheduler;\n        return _this;\n    }\n    ColdObservable.prototype.scheduleMessages = function (subscriber) {\n        var messagesLength = this.messages.length;\n        for (var i = 0; i < messagesLength; i++) {\n            var message = this.messages[i];\n            subscriber.add(this.scheduler.schedule(function (_a) {\n                var message = _a.message, subscriber = _a.subscriber;\n                message.notification.observe(subscriber);\n            }, message.frame, { message: message, subscriber: subscriber }));\n        }\n    };\n    return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n    tslib_1.__extends(HotObservable, _super);\n    function HotObservable(messages, scheduler) {\n        var _this = _super.call(this) || this;\n        _this.messages = messages;\n        _this.subscriptions = [];\n        _this.scheduler = scheduler;\n        return _this;\n    }\n    HotObservable.prototype._subscribe = function (subscriber) {\n        var subject = this;\n        var index = subject.logSubscribedFrame();\n        var subscription = new Subscription();\n        subscription.add(new Subscription(function () {\n            subject.logUnsubscribedFrame(index);\n        }));\n        subscription.add(_super.prototype._subscribe.call(this, subscriber));\n        return subscription;\n    };\n    HotObservable.prototype.setup = function () {\n        var subject = this;\n        var messagesLength = subject.messages.length;\n        for (var i = 0; i < messagesLength; i++) {\n            (function () {\n                var message = subject.messages[i];\n                subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n            })();\n        }\n    };\n    return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n    tslib_1.__extends(TestScheduler, _super);\n    function TestScheduler(assertDeepEqual) {\n        var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n        _this.assertDeepEqual = assertDeepEqual;\n        _this.hotObservables = [];\n        _this.coldObservables = [];\n        _this.flushTests = [];\n        _this.runMode = false;\n        return _this;\n    }\n    TestScheduler.prototype.createTime = function (marbles) {\n        var indexOf = marbles.indexOf('|');\n        if (indexOf === -1) {\n            throw new Error('marble diagram for time should have a completion marker \"|\"');\n        }\n        return indexOf * TestScheduler.frameTimeFactor;\n    };\n    TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n        if (marbles.indexOf('^') !== -1) {\n            throw new Error('cold observable cannot have subscription offset \"^\"');\n        }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('cold observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n        var cold = new ColdObservable(messages, this);\n        this.coldObservables.push(cold);\n        return cold;\n    };\n    TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('hot observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n        var subject = new HotObservable(messages, this);\n        this.hotObservables.push(subject);\n        return subject;\n    };\n    TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n        var _this = this;\n        var messages = [];\n        observable.subscribe(function (value) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n        }, function (err) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n        }, function () {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n        });\n        return messages;\n    };\n    TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n        var _this = this;\n        if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n        var actual = [];\n        var flushTest = { actual: actual, ready: false };\n        var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n        var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n            0 : subscriptionParsed.subscribedFrame;\n        var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n        var subscription;\n        this.schedule(function () {\n            subscription = observable.subscribe(function (x) {\n                var value = x;\n                if (x instanceof Observable) {\n                    value = _this.materializeInnerObservable(value, _this.frame);\n                }\n                actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n            }, function (err) {\n                actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n            }, function () {\n                actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n            });\n        }, subscriptionFrame);\n        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n            this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n        }\n        this.flushTests.push(flushTest);\n        var runMode = this.runMode;\n        return {\n            toBe: function (marbles, values, errorValue) {\n                flushTest.ready = true;\n                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n            }\n        };\n    };\n    TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n        var flushTest = { actual: actualSubscriptionLogs, ready: false };\n        this.flushTests.push(flushTest);\n        var runMode = this.runMode;\n        return {\n            toBe: function (marbles) {\n                var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n                flushTest.ready = true;\n                flushTest.expected = marblesArray.map(function (marbles) {\n                    return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n                });\n            }\n        };\n    };\n    TestScheduler.prototype.flush = function () {\n        var _this = this;\n        var hotObservables = this.hotObservables;\n        while (hotObservables.length > 0) {\n            hotObservables.shift().setup();\n        }\n        _super.prototype.flush.call(this);\n        this.flushTests = this.flushTests.filter(function (test) {\n            if (test.ready) {\n                _this.assertDeepEqual(test.actual, test.expected);\n                return false;\n            }\n            return true;\n        });\n    };\n    TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n        var _this = this;\n        if (runMode === void 0) { runMode = false; }\n        if (typeof marbles !== 'string') {\n            return new SubscriptionLog(Number.POSITIVE_INFINITY);\n        }\n        var len = marbles.length;\n        var groupStart = -1;\n        var subscriptionFrame = Number.POSITIVE_INFINITY;\n        var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n        var frame = 0;\n        var _loop_1 = function (i) {\n            var nextFrame = frame;\n            var advanceFrameBy = function (count) {\n                nextFrame += count * _this.frameTimeFactor;\n            };\n            var c = marbles[i];\n            switch (c) {\n                case ' ':\n                    if (!runMode) {\n                        advanceFrameBy(1);\n                    }\n                    break;\n                case '-':\n                    advanceFrameBy(1);\n                    break;\n                case '(':\n                    groupStart = frame;\n                    advanceFrameBy(1);\n                    break;\n                case ')':\n                    groupStart = -1;\n                    advanceFrameBy(1);\n                    break;\n                case '^':\n                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    subscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    advanceFrameBy(1);\n                    break;\n                case '!':\n                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    break;\n                default:\n                    if (runMode && c.match(/^[0-9]$/)) {\n                        if (i === 0 || marbles[i - 1] === ' ') {\n                            var buffer = marbles.slice(i);\n                            var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n                            if (match) {\n                                i += match[0].length - 1;\n                                var duration = parseFloat(match[1]);\n                                var unit = match[2];\n                                var durationInMs = void 0;\n                                switch (unit) {\n                                    case 'ms':\n                                        durationInMs = duration;\n                                        break;\n                                    case 's':\n                                        durationInMs = duration * 1000;\n                                        break;\n                                    case 'm':\n                                        durationInMs = duration * 1000 * 60;\n                                        break;\n                                    default:\n                                        break;\n                                }\n                                advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n                                break;\n                            }\n                        }\n                    }\n                    throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n                        'subscription marble diagram. Found instead \\'' + c + '\\'.');\n            }\n            frame = nextFrame;\n            out_i_1 = i;\n        };\n        var this_1 = this, out_i_1;\n        for (var i = 0; i < len; i++) {\n            _loop_1(i);\n            i = out_i_1;\n        }\n        if (unsubscriptionFrame < 0) {\n            return new SubscriptionLog(subscriptionFrame);\n        }\n        else {\n            return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n        }\n    };\n    TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n        var _this = this;\n        if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n        if (runMode === void 0) { runMode = false; }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('conventional marble diagrams cannot have the ' +\n                'unsubscription marker \"!\"');\n        }\n        var len = marbles.length;\n        var testMessages = [];\n        var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n        var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n        var getValue = typeof values !== 'object' ?\n            function (x) { return x; } :\n            function (x) {\n                if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n                    return values[x].messages;\n                }\n                return values[x];\n            };\n        var groupStart = -1;\n        var _loop_2 = function (i) {\n            var nextFrame = frame;\n            var advanceFrameBy = function (count) {\n                nextFrame += count * _this.frameTimeFactor;\n            };\n            var notification = void 0;\n            var c = marbles[i];\n            switch (c) {\n                case ' ':\n                    if (!runMode) {\n                        advanceFrameBy(1);\n                    }\n                    break;\n                case '-':\n                    advanceFrameBy(1);\n                    break;\n                case '(':\n                    groupStart = frame;\n                    advanceFrameBy(1);\n                    break;\n                case ')':\n                    groupStart = -1;\n                    advanceFrameBy(1);\n                    break;\n                case '|':\n                    notification = Notification.createComplete();\n                    advanceFrameBy(1);\n                    break;\n                case '^':\n                    advanceFrameBy(1);\n                    break;\n                case '#':\n                    notification = Notification.createError(errorValue || 'error');\n                    advanceFrameBy(1);\n                    break;\n                default:\n                    if (runMode && c.match(/^[0-9]$/)) {\n                        if (i === 0 || marbles[i - 1] === ' ') {\n                            var buffer = marbles.slice(i);\n                            var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n                            if (match) {\n                                i += match[0].length - 1;\n                                var duration = parseFloat(match[1]);\n                                var unit = match[2];\n                                var durationInMs = void 0;\n                                switch (unit) {\n                                    case 'ms':\n                                        durationInMs = duration;\n                                        break;\n                                    case 's':\n                                        durationInMs = duration * 1000;\n                                        break;\n                                    case 'm':\n                                        durationInMs = duration * 1000 * 60;\n                                        break;\n                                    default:\n                                        break;\n                                }\n                                advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n                                break;\n                            }\n                        }\n                    }\n                    notification = Notification.createNext(getValue(c));\n                    advanceFrameBy(1);\n                    break;\n            }\n            if (notification) {\n                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n            }\n            frame = nextFrame;\n            out_i_2 = i;\n        };\n        var this_2 = this, out_i_2;\n        for (var i = 0; i < len; i++) {\n            _loop_2(i);\n            i = out_i_2;\n        }\n        return testMessages;\n    };\n    TestScheduler.prototype.run = function (callback) {\n        var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n        var prevMaxFrames = this.maxFrames;\n        TestScheduler.frameTimeFactor = 1;\n        this.maxFrames = Number.POSITIVE_INFINITY;\n        this.runMode = true;\n        AsyncScheduler.delegate = this;\n        var helpers = {\n            cold: this.createColdObservable.bind(this),\n            hot: this.createHotObservable.bind(this),\n            flush: this.flush.bind(this),\n            expectObservable: this.expectObservable.bind(this),\n            expectSubscriptions: this.expectSubscriptions.bind(this),\n        };\n        try {\n            var ret = callback(helpers);\n            this.flush();\n            return ret;\n        }\n        finally {\n            TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n            this.maxFrames = prevMaxFrames;\n            this.runMode = false;\n            AsyncScheduler.delegate = undefined;\n        }\n    };\n    return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n    self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n    if (!_root) {\n        throw new Error('RxJS could not find any global context (window, self, global)');\n    }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n    if (root.XMLHttpRequest) {\n        return new root.XMLHttpRequest();\n    }\n    else if (!!root.XDomainRequest) {\n        return new root.XDomainRequest();\n    }\n    else {\n        throw new Error('CORS is not supported by your browser');\n    }\n}\nfunction getXMLHttpRequest() {\n    if (root.XMLHttpRequest) {\n        return new root.XMLHttpRequest();\n    }\n    else {\n        var progId = void 0;\n        try {\n            var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n            for (var i = 0; i < 3; i++) {\n                try {\n                    progId = progIds[i];\n                    if (new root.ActiveXObject(progId)) {\n                        break;\n                    }\n                }\n                catch (e) {\n                }\n            }\n            return new root.ActiveXObject(progId);\n        }\n        catch (e) {\n            throw new Error('XMLHttpRequest is not supported by your browser');\n        }\n    }\n}\nexport function ajaxGet(url, headers) {\n    if (headers === void 0) { headers = null; }\n    return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n    return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n    return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n    return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n    return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n    return mapResponse(new AjaxObservable({\n        method: 'GET',\n        url: url,\n        responseType: 'json',\n        headers: headers\n    }));\n}\nvar AjaxObservable = (function (_super) {\n    tslib_1.__extends(AjaxObservable, _super);\n    function AjaxObservable(urlOrRequest) {\n        var _this = _super.call(this) || this;\n        var request = {\n            async: true,\n            createXHR: function () {\n                return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n            },\n            crossDomain: true,\n            withCredentials: false,\n            headers: {},\n            method: 'GET',\n            responseType: 'json',\n            timeout: 0\n        };\n        if (typeof urlOrRequest === 'string') {\n            request.url = urlOrRequest;\n        }\n        else {\n            for (var prop in urlOrRequest) {\n                if (urlOrRequest.hasOwnProperty(prop)) {\n                    request[prop] = urlOrRequest[prop];\n                }\n            }\n        }\n        _this.request = request;\n        return _this;\n    }\n    AjaxObservable.prototype._subscribe = function (subscriber) {\n        return new AjaxSubscriber(subscriber, this.request);\n    };\n    AjaxObservable.create = (function () {\n        var create = function (urlOrRequest) {\n            return new AjaxObservable(urlOrRequest);\n        };\n        create.get = ajaxGet;\n        create.post = ajaxPost;\n        create.delete = ajaxDelete;\n        create.put = ajaxPut;\n        create.patch = ajaxPatch;\n        create.getJSON = ajaxGetJSON;\n        return create;\n    })();\n    return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n    tslib_1.__extends(AjaxSubscriber, _super);\n    function AjaxSubscriber(destination, request) {\n        var _this = _super.call(this, destination) || this;\n        _this.request = request;\n        _this.done = false;\n        var headers = request.headers = request.headers || {};\n        if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n            headers['X-Requested-With'] = 'XMLHttpRequest';\n        }\n        var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n        if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n        }\n        request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n        _this.send();\n        return _this;\n    }\n    AjaxSubscriber.prototype.next = function (e) {\n        this.done = true;\n        var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n        var result;\n        try {\n            result = new AjaxResponse(e, xhr, request);\n        }\n        catch (err) {\n            return destination.error(err);\n        }\n        destination.next(result);\n    };\n    AjaxSubscriber.prototype.send = function () {\n        var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n        try {\n            var xhr = this.xhr = request.createXHR();\n            this.setupEvents(xhr, request);\n            if (user) {\n                xhr.open(method, url, async, user, password);\n            }\n            else {\n                xhr.open(method, url, async);\n            }\n            if (async) {\n                xhr.timeout = request.timeout;\n                xhr.responseType = request.responseType;\n            }\n            if ('withCredentials' in xhr) {\n                xhr.withCredentials = !!request.withCredentials;\n            }\n            this.setHeaders(xhr, headers);\n            if (body) {\n                xhr.send(body);\n            }\n            else {\n                xhr.send();\n            }\n        }\n        catch (err) {\n            this.error(err);\n        }\n    };\n    AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n        if (!body || typeof body === 'string') {\n            return body;\n        }\n        else if (root.FormData && body instanceof root.FormData) {\n            return body;\n        }\n        if (contentType) {\n            var splitIndex = contentType.indexOf(';');\n            if (splitIndex !== -1) {\n                contentType = contentType.substring(0, splitIndex);\n            }\n        }\n        switch (contentType) {\n            case 'application/x-www-form-urlencoded':\n                return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n            case 'application/json':\n                return JSON.stringify(body);\n            default:\n                return body;\n        }\n    };\n    AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n        for (var key in headers) {\n            if (headers.hasOwnProperty(key)) {\n                xhr.setRequestHeader(key, headers[key]);\n            }\n        }\n    };\n    AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n        for (var key in headers) {\n            if (key.toLowerCase() === headerName.toLowerCase()) {\n                return headers[key];\n            }\n        }\n        return undefined;\n    };\n    AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n        var progressSubscriber = request.progressSubscriber;\n        function xhrTimeout(e) {\n            var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (progressSubscriber) {\n                progressSubscriber.error(e);\n            }\n            var error;\n            try {\n                error = new AjaxTimeoutError(this, request);\n            }\n            catch (err) {\n                error = err;\n            }\n            subscriber.error(error);\n        }\n        xhr.ontimeout = xhrTimeout;\n        xhrTimeout.request = request;\n        xhrTimeout.subscriber = this;\n        xhrTimeout.progressSubscriber = progressSubscriber;\n        if (xhr.upload && 'withCredentials' in xhr) {\n            if (progressSubscriber) {\n                var xhrProgress_1;\n                xhrProgress_1 = function (e) {\n                    var progressSubscriber = xhrProgress_1.progressSubscriber;\n                    progressSubscriber.next(e);\n                };\n                if (root.XDomainRequest) {\n                    xhr.onprogress = xhrProgress_1;\n                }\n                else {\n                    xhr.upload.onprogress = xhrProgress_1;\n                }\n                xhrProgress_1.progressSubscriber = progressSubscriber;\n            }\n            var xhrError_1;\n            xhrError_1 = function (e) {\n                var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n                if (progressSubscriber) {\n                    progressSubscriber.error(e);\n                }\n                var error;\n                try {\n                    error = new AjaxError('ajax error', this, request);\n                }\n                catch (err) {\n                    error = err;\n                }\n                subscriber.error(error);\n            };\n            xhr.onerror = xhrError_1;\n            xhrError_1.request = request;\n            xhrError_1.subscriber = this;\n            xhrError_1.progressSubscriber = progressSubscriber;\n        }\n        function xhrReadyStateChange(e) {\n            return;\n        }\n        xhr.onreadystatechange = xhrReadyStateChange;\n        xhrReadyStateChange.subscriber = this;\n        xhrReadyStateChange.progressSubscriber = progressSubscriber;\n        xhrReadyStateChange.request = request;\n        function xhrLoad(e) {\n            var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (this.readyState === 4) {\n                var status_1 = this.status === 1223 ? 204 : this.status;\n                var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n                if (status_1 === 0) {\n                    status_1 = response ? 200 : 0;\n                }\n                if (status_1 < 400) {\n                    if (progressSubscriber) {\n                        progressSubscriber.complete();\n                    }\n                    subscriber.next(e);\n                    subscriber.complete();\n                }\n                else {\n                    if (progressSubscriber) {\n                        progressSubscriber.error(e);\n                    }\n                    var error = void 0;\n                    try {\n                        error = new AjaxError('ajax error ' + status_1, this, request);\n                    }\n                    catch (err) {\n                        error = err;\n                    }\n                    subscriber.error(error);\n                }\n            }\n        }\n        xhr.onload = xhrLoad;\n        xhrLoad.subscriber = this;\n        xhrLoad.progressSubscriber = progressSubscriber;\n        xhrLoad.request = request;\n    };\n    AjaxSubscriber.prototype.unsubscribe = function () {\n        var _a = this, done = _a.done, xhr = _a.xhr;\n        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n            xhr.abort();\n        }\n        _super.prototype.unsubscribe.call(this);\n    };\n    return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n    function AjaxResponse(originalEvent, xhr, request) {\n        this.originalEvent = originalEvent;\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n        this.responseType = xhr.responseType || request.responseType;\n        this.response = parseXhrResponse(this.responseType, xhr);\n    }\n    return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n    function AjaxErrorImpl(message, xhr, request) {\n        Error.call(this);\n        this.message = message;\n        this.name = 'AjaxError';\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n        this.responseType = xhr.responseType || request.responseType;\n        this.response = parseXhrResponse(this.responseType, xhr);\n        return this;\n    }\n    AjaxErrorImpl.prototype = Object.create(Error.prototype);\n    return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n    if ('response' in xhr) {\n        return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n    }\n    else {\n        return JSON.parse(xhr.responseText || 'null');\n    }\n}\nfunction parseXhrResponse(responseType, xhr) {\n    switch (responseType) {\n        case 'json':\n            return parseJson(xhr);\n        case 'xml':\n            return xhr.responseXML;\n        case 'text':\n        default:\n            return ('response' in xhr) ? xhr.response : xhr.responseText;\n    }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n    AjaxError.call(this, 'ajax timeout', xhr, request);\n    this.name = 'AjaxTimeoutError';\n    return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n    url: '',\n    deserializer: function (e) { return JSON.parse(e.data); },\n    serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n    tslib_1.__extends(WebSocketSubject, _super);\n    function WebSocketSubject(urlConfigOrSource, destination) {\n        var _this = _super.call(this) || this;\n        if (urlConfigOrSource instanceof Observable) {\n            _this.destination = destination;\n            _this.source = urlConfigOrSource;\n        }\n        else {\n            var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n            _this._output = new Subject();\n            if (typeof urlConfigOrSource === 'string') {\n                config.url = urlConfigOrSource;\n            }\n            else {\n                for (var key in urlConfigOrSource) {\n                    if (urlConfigOrSource.hasOwnProperty(key)) {\n                        config[key] = urlConfigOrSource[key];\n                    }\n                }\n            }\n            if (!config.WebSocketCtor && WebSocket) {\n                config.WebSocketCtor = WebSocket;\n            }\n            else if (!config.WebSocketCtor) {\n                throw new Error('no WebSocket constructor can be found');\n            }\n            _this.destination = new ReplaySubject();\n        }\n        return _this;\n    }\n    WebSocketSubject.prototype.lift = function (operator) {\n        var sock = new WebSocketSubject(this._config, this.destination);\n        sock.operator = operator;\n        sock.source = this;\n        return sock;\n    };\n    WebSocketSubject.prototype._resetState = function () {\n        this._socket = null;\n        if (!this.source) {\n            this.destination = new ReplaySubject();\n        }\n        this._output = new Subject();\n    };\n    WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n        var self = this;\n        return new Observable(function (observer) {\n            try {\n                self.next(subMsg());\n            }\n            catch (err) {\n                observer.error(err);\n            }\n            var subscription = self.subscribe(function (x) {\n                try {\n                    if (messageFilter(x)) {\n                        observer.next(x);\n                    }\n                }\n                catch (err) {\n                    observer.error(err);\n                }\n            }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n            return function () {\n                try {\n                    self.next(unsubMsg());\n                }\n                catch (err) {\n                    observer.error(err);\n                }\n                subscription.unsubscribe();\n            };\n        });\n    };\n    WebSocketSubject.prototype._connectSocket = function () {\n        var _this = this;\n        var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n        var observer = this._output;\n        var socket = null;\n        try {\n            socket = protocol ?\n                new WebSocketCtor(url, protocol) :\n                new WebSocketCtor(url);\n            this._socket = socket;\n            if (binaryType) {\n                this._socket.binaryType = binaryType;\n            }\n        }\n        catch (e) {\n            observer.error(e);\n            return;\n        }\n        var subscription = new Subscription(function () {\n            _this._socket = null;\n            if (socket && socket.readyState === 1) {\n                socket.close();\n            }\n        });\n        socket.onopen = function (e) {\n            var _socket = _this._socket;\n            if (!_socket) {\n                socket.close();\n                _this._resetState();\n                return;\n            }\n            var openObserver = _this._config.openObserver;\n            if (openObserver) {\n                openObserver.next(e);\n            }\n            var queue = _this.destination;\n            _this.destination = Subscriber.create(function (x) {\n                if (socket.readyState === 1) {\n                    try {\n                        var serializer = _this._config.serializer;\n                        socket.send(serializer(x));\n                    }\n                    catch (e) {\n                        _this.destination.error(e);\n                    }\n                }\n            }, function (e) {\n                var closingObserver = _this._config.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                if (e && e.code) {\n                    socket.close(e.code, e.reason);\n                }\n                else {\n                    observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n                }\n                _this._resetState();\n            }, function () {\n                var closingObserver = _this._config.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                socket.close();\n                _this._resetState();\n            });\n            if (queue && queue instanceof ReplaySubject) {\n                subscription.add(queue.subscribe(_this.destination));\n            }\n        };\n        socket.onerror = function (e) {\n            _this._resetState();\n            observer.error(e);\n        };\n        socket.onclose = function (e) {\n            _this._resetState();\n            var closeObserver = _this._config.closeObserver;\n            if (closeObserver) {\n                closeObserver.next(e);\n            }\n            if (e.wasClean) {\n                observer.complete();\n            }\n            else {\n                observer.error(e);\n            }\n        };\n        socket.onmessage = function (e) {\n            try {\n                var deserializer = _this._config.deserializer;\n                observer.next(deserializer(e));\n            }\n            catch (err) {\n                observer.error(err);\n            }\n        };\n    };\n    WebSocketSubject.prototype._subscribe = function (subscriber) {\n        var _this = this;\n        var source = this.source;\n        if (source) {\n            return source.subscribe(subscriber);\n        }\n        if (!this._socket) {\n            this._connectSocket();\n        }\n        this._output.subscribe(subscriber);\n        subscriber.add(function () {\n            var _socket = _this._socket;\n            if (_this._output.observers.length === 0) {\n                if (_socket && _socket.readyState === 1) {\n                    _socket.close();\n                }\n                _this._resetState();\n            }\n        });\n        return subscriber;\n    };\n    WebSocketSubject.prototype.unsubscribe = function () {\n        var _socket = this._socket;\n        if (_socket && _socket.readyState === 1) {\n            _socket.close();\n        }\n        this._resetState();\n        _super.prototype.unsubscribe.call(this);\n    };\n    return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n    return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../../Observable';\nexport function fromFetch(input, init) {\n    return new Observable(function (subscriber) {\n        var controller = new AbortController();\n        var signal = controller.signal;\n        var outerSignalHandler;\n        var abortable = true;\n        var unsubscribed = false;\n        if (init) {\n            if (init.signal) {\n                if (init.signal.aborted) {\n                    controller.abort();\n                }\n                else {\n                    outerSignalHandler = function () {\n                        if (!signal.aborted) {\n                            controller.abort();\n                        }\n                    };\n                    init.signal.addEventListener('abort', outerSignalHandler);\n                }\n            }\n            init = tslib_1.__assign({}, init, { signal: signal });\n        }\n        else {\n            init = { signal: signal };\n        }\n        fetch(input, init).then(function (response) {\n            abortable = false;\n            subscriber.next(response);\n            subscriber.complete();\n        }).catch(function (err) {\n            abortable = false;\n            if (!unsubscribed) {\n                subscriber.error(err);\n            }\n        });\n        return function () {\n            unsubscribed = true;\n            if (abortable) {\n                controller.abort();\n            }\n        };\n    });\n}\n//# sourceMappingURL=fetch.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\nimport * as _fetch from '../fetch/index';\nexport var fetch = _fetch;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","higherOrderRefCount","RefCountSubscriber","refCount","empty","NotificationKind","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","partition","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","tslib_1.__assign","ajax","webSocket","fetch"],"mappings":"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"}
diff --git a/node_modules/rxjs/bundles/rxjs.umd.min.js b/node_modules/rxjs/bundles/rxjs.umd.min.js
deleted file mode 100644
index 9fbb69e..0000000
--- a/node_modules/rxjs/bundles/rxjs.umd.min.js
+++ /dev/null
@@ -1,268 +0,0 @@
-/**
-  @license
-  Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt
- **/
-/**
-  @license
-  Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt
- **/
-/*
- *****************************************************************************
-    Copyright (c) Microsoft Corporation. All rights reserved.
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-    this file except in compliance with the License. You may obtain a copy of the
-    License at http://www.apache.org/licenses/LICENSE-2.0
-
-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-    MERCHANTABLITY OR NON-INFRINGEMENT.
-
-    See the Apache Version 2.0 License for specific language governing permissions
-    and limitations under the License.
-*****************************************************************************/
-(function(k,h){"object"===typeof exports&&"undefined"!==typeof module?h(exports):"function"===typeof define&&define.amd?define("rxjs",["exports"],h):h(k.rxjs={})})(this,function(k){function h(c,a){function b(){this.constructor=c}Kb(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function P(c){return"function"===typeof c}function Q(c){setTimeout(function(){throw c;},0)}function ra(c){return null!==c&&"object"===typeof c}function Ka(c){return c.reduce(function(a,b){return a.concat(b instanceof
-Y?b.errors:b)},[])}function sa(c){for(;c;){var a=c.destination,b=c.isStopped;if(c.closed||b)return!1;c=a&&a instanceof m?a:null}return!0}function D(){}function ta(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return La(c)}function La(c){return c?1===c.length?c[0]:function(a){return c.reduce(function(b,a){return a(b)},a)}:D}function Ma(c){c||(c=C.Promise||Promise);if(!c)throw Error("no Promise impl found");return c}function ua(){return function(c){return c.lift(new Lb(c))}}function R(c){return c?
-Mb(c):S}function Mb(c){return new n(function(a){return c.schedule(function(){return a.complete()})})}function A(c){return c&&"function"===typeof c.schedule}function va(c,a){return new n(function(b){var d=new t,e=0;d.add(a.schedule(function(){e===c.length?b.complete():(b.next(c[e++]),b.closed||d.add(this.schedule()))}));return d})}function Z(c,a){return a?va(c,a):new n(Na(c))}function ga(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];a=c[c.length-1];return A(a)?(c.pop(),va(c,a)):Z(c)}
-function wa(c,a){return a?new n(function(b){return a.schedule(Nb,0,{error:c,subscriber:b})}):new n(function(b){return b.error(c)})}function Nb(c){c.subscriber.error(c.error)}function Oa(c){return c in xa?(delete xa[c],!0):!1}function J(c){return c}function B(c,a){return function(b){if("function"!==typeof c)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return b.lift(new Ob(c,a))}}function Pa(c,a,b){if(a)if(A(a))b=a;else return function(){for(var d=[],e=0;e<arguments.length;e++)d[e]=
-arguments[e];return Pa(c,b).apply(void 0,d).pipe(B(function(b){return x(b)?a.apply(void 0,b):a(b)}))};return function(){for(var a=[],e=0;e<arguments.length;e++)a[e]=arguments[e];var f=this,g,l={context:f,subject:g,callbackFunc:c,scheduler:b};return new n(function(d){if(b)return b.schedule(Pb,0,{args:a,subscriber:d,params:l});if(!g){g=new T;try{c.apply(f,a.concat([function(){for(var b=[],a=0;a<arguments.length;a++)b[a]=arguments[a];g.next(1>=b.length?b[0]:b);g.complete()}]))}catch(K){sa(g)?g.error(K):
-console.warn(K)}}return g.subscribe(d)})}}function Pb(c){var a=this,b=c.args,d=c.subscriber;c=c.params;var e=c.callbackFunc,f=c.context,g=c.scheduler,l=c.subject;if(!l){l=c.subject=new T;try{e.apply(f,b.concat([function(){for(var b=[],c=0;c<arguments.length;c++)b[c]=arguments[c];a.add(g.schedule(Qb,0,{value:1>=b.length?b[0]:b,subject:l}))}]))}catch(u){l.error(u)}}this.add(l.subscribe(d))}function Qb(c){var a=c.subject;a.next(c.value);a.complete()}function Qa(c,a,b){if(a)if(A(a))b=a;else return function(){for(var d=
-[],e=0;e<arguments.length;e++)d[e]=arguments[e];return Qa(c,b).apply(void 0,d).pipe(B(function(b){return x(b)?a.apply(void 0,b):a(b)}))};return function(){for(var a=[],e=0;e<arguments.length;e++)a[e]=arguments[e];var f={subject:void 0,args:a,callbackFunc:c,scheduler:b,context:this};return new n(function(d){var e=f.context,g=f.subject;if(b)return b.schedule(Rb,0,{params:f,subscriber:d,context:e});if(!g){g=f.subject=new T;try{c.apply(e,a.concat([function(){for(var b=[],a=0;a<arguments.length;a++)b[a]=
-arguments[a];(a=b.shift())?g.error(a):(g.next(1>=b.length?b[0]:b),g.complete())}]))}catch(K){sa(g)?g.error(K):console.warn(K)}}return g.subscribe(d)})}}function Rb(c){var a=this,b=c.params,d=c.subscriber;c=c.context;var e=b.callbackFunc,f=b.args,g=b.scheduler,l=b.subject;if(!l){l=b.subject=new T;try{e.apply(c,f.concat([function(){for(var b=[],c=0;c<arguments.length;c++)b[c]=arguments[c];(c=b.shift())?a.add(g.schedule(Ra,0,{err:c,subject:l})):a.add(g.schedule(Sb,0,{value:1>=b.length?b[0]:b,subject:l}))}]))}catch(u){this.add(g.schedule(Ra,
-0,{err:u,subject:l}))}}this.add(l.subscribe(d))}function Sb(c){var a=c.subject;a.next(c.value);a.complete()}function Ra(c){c.subject.error(c.err)}function Sa(c){return!!c&&"function"!==typeof c.subscribe&&"function"===typeof c.then}function p(c,a,b,d,e){void 0===e&&(e=new G(c,b,d));if(!e.closed)return a instanceof n?a.subscribe(e):ha(a)(e)}function Tb(c,a){return new n(function(b){var d=new t;d.add(a.schedule(function(){var e=c[U]();d.add(e.subscribe({next:function(c){d.add(a.schedule(function(){return b.next(c)}))},
-error:function(c){d.add(a.schedule(function(){return b.error(c)}))},complete:function(){d.add(a.schedule(function(){return b.complete()}))}}))}));return d})}function Ub(c,a){return new n(function(b){var d=new t;d.add(a.schedule(function(){return c.then(function(c){d.add(a.schedule(function(){b.next(c);d.add(a.schedule(function(){return b.complete()}))}))},function(c){d.add(a.schedule(function(){return b.error(c)}))})}));return d})}function Vb(c,a){if(!c)throw Error("Iterable cannot be null");return new n(function(b){var d=
-new t,e;d.add(function(){e&&"function"===typeof e.return&&e.return()});d.add(a.schedule(function(){e=c[E]();d.add(a.schedule(function(){if(!b.closed){var a,c;try{var d=e.next();a=d.value;c=d.done}catch(u){b.error(u);return}c?b.complete():(b.next(a),this.schedule())}}))}));return d})}function Ta(c,a){if(null!=c){if(c&&"function"===typeof c[U])return Tb(c,a);if(Sa(c))return Ub(c,a);if(Ua(c))return va(c,a);if(c&&"function"===typeof c[E]||"string"===typeof c)return Vb(c,a)}throw new TypeError((null!==
-c&&typeof c||c)+" is not observable");}function F(c,a){return a?Ta(c,a):c instanceof n?c:new n(ha(c))}function L(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return function(d){return d.pipe(L(function(b,d){return F(c(b,d)).pipe(B(function(c,e){return a(b,c,d,e)}))},b))};"number"===typeof a&&(b=a);return function(a){return a.lift(new Wb(c,b))}}function ya(c){void 0===c&&(c=Number.POSITIVE_INFINITY);return L(J,c)}function Va(){return ya(1)}function aa(){for(var c=[],a=0;a<
-arguments.length;a++)c[a]=arguments[a];return Va()(ga.apply(void 0,c))}function za(c){return new n(function(a){var b;try{b=c()}catch(d){a.error(d);return}return(b?F(b):R()).subscribe(a)})}function ia(c,a){return new n(function(b){var d=c.length;if(0===d)b.complete();else for(var e=Array(d),f=0,g=0,l=function(l){var h=F(c[l]),u=!1;b.add(h.subscribe({next:function(b){u||(u=!0,g++);e[l]=b},error:function(a){return b.error(a)},complete:function(){f++;f!==d&&u||(g===d&&b.next(a?a.reduce(function(b,a,c){return b[a]=
-e[c],b},{}):e),b.complete())}}))},h=0;h<d;h++)l(h)})}function Wa(c,a,b,d){P(b)&&(d=b,b=void 0);return d?Wa(c,a,b).pipe(B(function(b){return x(b)?d.apply(void 0,b):d(b)})):new n(function(d){Xa(c,a,function(b){1<arguments.length?d.next(Array.prototype.slice.call(arguments)):d.next(b)},d,b)})}function Xa(c,a,b,d,e){var f;if(c&&"function"===typeof c.addEventListener&&"function"===typeof c.removeEventListener)c.addEventListener(a,b,e),f=function(){return c.removeEventListener(a,b,e)};else if(c&&"function"===
-typeof c.on&&"function"===typeof c.off)c.on(a,b),f=function(){return c.off(a,b)};else if(c&&"function"===typeof c.addListener&&"function"===typeof c.removeListener)c.addListener(a,b),f=function(){return c.removeListener(a,b)};else if(c&&c.length)for(var g=0,l=c.length;g<l;g++)Xa(c[g],a,b,d,e);else throw new TypeError("Invalid event target");d.add(f)}function Ya(c,a,b){return b?Ya(c,a).pipe(B(function(a){return x(a)?b.apply(void 0,a):b(a)})):new n(function(b){var d=function(){for(var a=[],c=0;c<arguments.length;c++)a[c]=
-arguments[c];return b.next(1===a.length?a[0]:a)},f;try{f=c(d)}catch(g){b.error(g);return}if(P(a))return function(){return a(d,f)}})}function $b(c){var a=c.subscriber,b=c.condition;if(!a.closed){if(c.needIterate)try{c.state=c.iterate(c.state)}catch(f){a.error(f);return}else c.needIterate=!0;if(b){var d=void 0;try{d=b(c.state)}catch(f){a.error(f);return}if(!d){a.complete();return}if(a.closed)return}var e;try{e=c.resultSelector(c.state)}catch(f){a.error(f);return}if(!a.closed&&(a.next(e),!a.closed))return this.schedule(c)}}
-function V(c){return!x(c)&&0<=c-parseFloat(c)+1}function ac(c){var a=c.subscriber,b=c.counter;c=c.period;a.next(b);this.schedule({subscriber:a,counter:b+1,period:c},c)}function Za(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];var a=Number.POSITIVE_INFINITY,b=null,d=c[c.length-1];A(d)?(b=c.pop(),1<c.length&&"number"===typeof c[c.length-1]&&(a=c.pop())):"number"===typeof d&&(a=c.pop());return null===b&&1===c.length&&c[0]instanceof n?c[0]:ya(a)(Z(c,b))}function Aa(){for(var c=[],a=0;a<
-arguments.length;a++)c[a]=arguments[a];if(0===c.length)return S;var b=c[0],d=c.slice(1);return 1===c.length&&x(b)?Aa.apply(void 0,b):new n(function(a){var c=function(){return a.add(Aa.apply(void 0,d).subscribe(a))};return F(b).subscribe({next:function(b){a.next(b)},error:c,complete:c})})}function bc(c){var a=c.keys,b=c.index,d=c.subscriber,e=c.subscription;c=c.obj;if(!d.closed)if(b<a.length){var f=a[b];d.next([f,c[f]]);e.add(this.schedule({keys:a,index:b+1,subscriber:d,subscription:e,obj:c}))}else d.complete()}
-function $a(c,a){function b(){return!b.pred.apply(b.thisArg,arguments)}b.pred=c;b.thisArg=a;return b}function H(c,a){return function(b){return b.lift(new cc(c,a))}}function ab(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];if(1===c.length)if(x(c[0]))c=c[0];else return c[0];return Z(c,void 0).lift(new dc)}function ec(c){var a=c.start,b=c.index,d=c.subscriber;b>=c.count?d.complete():(d.next(a),d.closed||(c.index=b+1,c.start=a+1,this.schedule(c)))}function bb(c,a,b){void 0===c&&(c=0);var d=
--1;V(a)?d=1>Number(a)&&1||Number(a):A(a)&&(b=a);A(b)||(b=y);return new n(function(a){var e=V(c)?c:+c-b.now();return b.schedule(fc,e,{index:0,period:d,subscriber:a})})}function fc(c){var a=c.index,b=c.period,d=c.subscriber;d.next(a);if(!d.closed){if(-1===b)return d.complete();c.index=a+1;this.schedule(c,b)}}function cb(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];a=c[c.length-1];"function"===typeof a&&c.pop();return Z(c,void 0).lift(new db(a))}function eb(c){return function(a){return a.lift(new gc(c))}}
-function fb(c){var a=c.subscriber,b=c.context;b&&a.closeContext(b);a.closed||(c.context=a.openContext(),c.context.closeAction=this.schedule(c,c.bufferTimeSpan))}function hc(c){var a=c.bufferCreationInterval,b=c.bufferTimeSpan,d=c.subscriber,e=c.scheduler,f=d.openContext();d.closed||(d.add(f.closeAction=e.schedule(gb,b,{subscriber:d,context:f})),this.schedule(c,a))}function gb(c){c.subscriber.closeContext(c.context)}function hb(c,a){return L(c,a,1)}function ic(c){c.debouncedNext()}function ba(c){void 0===
-c&&(c=null);return function(a){return a.lift(new jc(c))}}function ib(c,a){return function(b){return b.lift(new kc(c,a))}}function ja(c){void 0===c&&(c=lc);return function(a){return a.lift(new mc(c))}}function lc(){return new ca}function Ba(c){return function(a){return 0===c?R():a.lift(new nc(c))}}function jb(c,a){return a?function(b){return b.pipe(jb(function(b,e){return F(c(b,e)).pipe(B(function(c,d){return a(b,c,e,d)}))}))}:function(b){return b.lift(new oc(c))}}function ka(c){return function(a){return 0===
-c?R():a.lift(new pc(c))}}function la(c,a){var b=!1;2<=arguments.length&&(b=!0);return function(d){return d.lift(new qc(c,a,b))}}function ma(c,a){return 2<=arguments.length?function(b){return ta(la(c,a),ka(1),ba(a))(b)}:function(b){return ta(la(function(b,a,f){return c(b,a,f+1)}),ka(1))(b)}}function M(c,a){return function(b){var d;d="function"===typeof c?c:function(){return c};if("function"===typeof a)return b.lift(new rc(d,a));var e=Object.create(b,sc);e.source=b;e.subjectFactory=d;return e}}function tc(c,
-a){return function(b){var d=b;for(b=0;b<a;b++)if(d=d[c[b]],"undefined"===typeof d)return;return d}}function uc(c){var a=c.period;c.subscriber.notifyNext();this.schedule(c,a)}function vc(){return new v}function wc(c){var a=c.bufferSize,b=void 0===a?Number.POSITIVE_INFINITY:a,a=c.windowTime,d=void 0===a?Number.POSITIVE_INFINITY:a,e=c.refCount,f=c.scheduler,g,l=0,h,k=!1,r=!1;return function(a){l++;if(!g||k)k=!1,g=new W(b,d,f),h=a.subscribe({next:function(b){g.next(b)},error:function(b){k=!0;g.error(b)},
-complete:function(){r=!0;h=void 0;g.complete()}});var c=g.subscribe(this);this.add(function(){l--;c.unsubscribe();h&&!r&&e&&0===l&&(h.unsubscribe(),g=h=void 0)})}}function da(c,a){return"function"===typeof a?function(b){return b.pipe(da(function(b,e){return F(c(b,e)).pipe(B(function(c,d){return a(b,c,e,d)}))}))}:function(b){return b.lift(new xc(c))}}function yc(c){c.subscriber.clearThrottle()}function kb(c,a,b){void 0===b&&(b=y);return function(d){var e=c instanceof Date&&!isNaN(+c),f=e?+c-b.now():
-Math.abs(c);return d.lift(new zc(f,e,a,b))}}function Ac(c,a,b){if(0===b)return[a];c.push(a);return c}function Bc(c){var a=c.subscriber,b=c.windowTimeSpan,d=c.window;d&&a.closeWindow(d);c.window=a.openWindow();this.schedule(c,b)}function Cc(c){var a=c.windowTimeSpan,b=c.subscriber,d=c.scheduler,e=c.windowCreationInterval,f=b.openWindow(),g={action:this,subscription:null};g.subscription=d.schedule(lb,a,{subscriber:b,window:f,context:g});this.add(g.subscription);this.schedule(c,e)}function lb(c){var a=
-c.subscriber,b=c.window;(c=c.context)&&c.action&&c.subscription&&c.action.remove(c.subscription);a.closeWindow(b)}function mb(c,a){for(var b=0,d=a.length;b<d;b++)for(var e=a[b],f=Object.getOwnPropertyNames(e.prototype),g=0,l=f.length;g<l;g++){var h=f[g];c.prototype[h]=e.prototype[h]}}function Dc(c,a){void 0===a&&(a=null);return new N({method:"GET",url:c,headers:a})}function Ec(c,a,b){return new N({method:"POST",url:c,body:a,headers:b})}function Fc(c,a){return new N({method:"DELETE",url:c,headers:a})}
-function Gc(c,a,b){return new N({method:"PUT",url:c,body:a,headers:b})}function Hc(c,a,b){return new N({method:"PATCH",url:c,body:a,headers:b})}function Ic(c,a){return Jc(new N({method:"GET",url:c,responseType:"json",headers:a}))}function nb(c,a){switch(c){case "json":return c="response"in a?a.responseType?a.response:JSON.parse(a.response||a.responseText||"null"):JSON.parse(a.responseText||"null"),c;case "xml":return a.responseXML;default:return"response"in a?a.response:a.responseText}}var Kb=Object.setPrototypeOf||
-{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=a[b])},ob=Object.assign||function(c){for(var a,b=1,d=arguments.length;b<d;b++){a=arguments[b];for(var e in a)Object.prototype.hasOwnProperty.call(a,e)&&(c[e]=a[e])}return c},Ca=!1,C={Promise:void 0,set useDeprecatedSynchronousErrorHandling(c){c?console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+Error().stack):Ca&&console.log("RxJS: Back to a better error behavior. Thank you. \x3c3");
-Ca=c},get useDeprecatedSynchronousErrorHandling(){return Ca}},na={closed:!0,next:function(c){},error:function(c){if(C.useDeprecatedSynchronousErrorHandling)throw c;Q(c)},complete:function(){}},x=function(){return Array.isArray||function(c){return c&&"number"===typeof c.length}}(),Y=function(){function c(a){Error.call(this);this.message=a?a.length+" errors occurred during unsubscription:\n"+a.map(function(b,a){return a+1+") "+b.toString()}).join("\n  "):"";this.name="UnsubscriptionError";this.errors=
-a;return this}c.prototype=Object.create(Error.prototype);return c}(),t=function(){function c(a){this.closed=!1;this._subscriptions=this._parentOrParents=null;a&&(this._unsubscribe=a)}c.prototype.unsubscribe=function(){var a;if(!this.closed){var b=this._parentOrParents,d=this._unsubscribe,e=this._subscriptions;this.closed=!0;this._subscriptions=this._parentOrParents=null;if(b instanceof c)b.remove(this);else if(null!==b)for(var f=0;f<b.length;++f)b[f].remove(this);if(P(d))try{d.call(this)}catch(g){a=
-g instanceof Y?Ka(g.errors):[g]}if(x(e))for(f=-1,b=e.length;++f<b;)if(d=e[f],ra(d))try{d.unsubscribe()}catch(g){a=a||[],g instanceof Y?a=a.concat(Ka(g.errors)):a.push(g)}if(a)throw new Y(a);}};c.prototype.add=function(a){var b=a;if(!a)return c.EMPTY;switch(typeof a){case "function":b=new c(a);case "object":if(b===this||b.closed||"function"!==typeof b.unsubscribe)return b;if(this.closed)return b.unsubscribe(),b;b instanceof c||(a=b,b=new c,b._subscriptions=[a]);break;default:throw Error("unrecognized teardown "+
-a+" added to Subscription.");}a=b._parentOrParents;if(null===a)b._parentOrParents=this;else if(a instanceof c){if(a===this)return b;b._parentOrParents=[a,this]}else if(-1===a.indexOf(this))a.push(this);else return b;a=this._subscriptions;null===a?this._subscriptions=[b]:a.push(b);return b};c.prototype.remove=function(a){var b=this._subscriptions;b&&(a=b.indexOf(a),-1!==a&&b.splice(a,1))};c.EMPTY=function(a){a.closed=!0;return a}(new c);return c}(),oa="function"===typeof Symbol?Symbol("rxSubscriber"):
-"@@rxSubscriber_"+Math.random(),m=function(c){function a(b,d,e){var f=c.call(this)||this;f.syncErrorValue=null;f.syncErrorThrown=!1;f.syncErrorThrowable=!1;f.isStopped=!1;switch(arguments.length){case 0:f.destination=na;break;case 1:if(!b){f.destination=na;break}if("object"===typeof b){b instanceof a?(f.syncErrorThrowable=b.syncErrorThrowable,f.destination=b,b.add(f)):(f.syncErrorThrowable=!0,f.destination=new pb(f,b));break}default:f.syncErrorThrowable=!0,f.destination=new pb(f,b,d,e)}return f}h(a,
-c);a.prototype[oa]=function(){return this};a.create=function(b,c,e){b=new a(b,c,e);b.syncErrorThrowable=!1;return b};a.prototype.next=function(b){this.isStopped||this._next(b)};a.prototype.error=function(b){this.isStopped||(this.isStopped=!0,this._error(b))};a.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())};a.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,c.prototype.unsubscribe.call(this))};a.prototype._next=function(b){this.destination.next(b)};
-a.prototype._error=function(b){this.destination.error(b);this.unsubscribe()};a.prototype._complete=function(){this.destination.complete();this.unsubscribe()};a.prototype._unsubscribeAndRecycle=function(){var b=this._parentOrParents;this._parentOrParents=null;this.unsubscribe();this.isStopped=this.closed=!1;this._parentOrParents=b;return this};return a}(t),pb=function(c){function a(b,a,e,f){var d=c.call(this)||this;d._parentSubscriber=b;var l;b=d;P(a)?l=a:a&&(l=a.next,e=a.error,f=a.complete,a!==na&&
-(b=Object.create(a),P(b.unsubscribe)&&d.add(b.unsubscribe.bind(b)),b.unsubscribe=d.unsubscribe.bind(d)));d._context=b;d._next=l;d._error=e;d._complete=f;return d}h(a,c);a.prototype.next=function(b){if(!this.isStopped&&this._next){var a=this._parentSubscriber;C.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable?this.__tryOrSetError(a,this._next,b)&&this.unsubscribe():this.__tryOrUnsub(this._next,b)}};a.prototype.error=function(b){if(!this.isStopped){var a=this._parentSubscriber,c=C.useDeprecatedSynchronousErrorHandling;
-if(this._error)c&&a.syncErrorThrowable?this.__tryOrSetError(a,this._error,b):this.__tryOrUnsub(this._error,b),this.unsubscribe();else if(a.syncErrorThrowable)c?(a.syncErrorValue=b,a.syncErrorThrown=!0):Q(b),this.unsubscribe();else{this.unsubscribe();if(c)throw b;Q(b)}}};a.prototype.complete=function(){var b=this;if(!this.isStopped){var a=this._parentSubscriber;if(this._complete){var c=function(){return b._complete.call(b._context)};C.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable?this.__tryOrSetError(a,
-c):this.__tryOrUnsub(c)}this.unsubscribe()}};a.prototype.__tryOrUnsub=function(b,a){try{b.call(this._context,a)}catch(e){this.unsubscribe();if(C.useDeprecatedSynchronousErrorHandling)throw e;Q(e)}};a.prototype.__tryOrSetError=function(b,a,c){if(!C.useDeprecatedSynchronousErrorHandling)throw Error("bad call");try{a.call(this._context,c)}catch(f){return C.useDeprecatedSynchronousErrorHandling?(b.syncErrorValue=f,b.syncErrorThrown=!0):Q(f),!0}return!1};a.prototype._unsubscribe=function(){var b=this._parentSubscriber;
-this._parentSubscriber=this._context=null;b.unsubscribe()};return a}(m),U="function"===typeof Symbol&&Symbol.observable||"@@observable",n=function(){function c(a){this._isScalar=!1;a&&(this._subscribe=a)}c.prototype.lift=function(a){var b=new c;b.source=this;b.operator=a;return b};c.prototype.subscribe=function(a,b,c){var d=this.operator;a:{if(a){if(a instanceof m)break a;if(a[oa]){a=a[oa]();break a}}a=a||b||c?new m(a,b,c):new m(na)}d?a.add(d.call(a,this.source)):a.add(this.source||C.useDeprecatedSynchronousErrorHandling&&
-!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a));if(C.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a};c.prototype._trySubscribe=function(a){try{return this._subscribe(a)}catch(b){C.useDeprecatedSynchronousErrorHandling&&(a.syncErrorThrown=!0,a.syncErrorValue=b),sa(a)?a.error(b):console.warn(b)}};c.prototype.forEach=function(a,b){var c=this;b=Ma(b);return new b(function(b,d){var e;e=c.subscribe(function(b){try{a(b)}catch(u){d(u),
-e&&e.unsubscribe()}},d,b)})};c.prototype._subscribe=function(a){var b=this.source;return b&&b.subscribe(a)};c.prototype[U]=function(){return this};c.prototype.pipe=function(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];return 0===a.length?this:La(a)(this)};c.prototype.toPromise=function(a){var b=this;a=Ma(a);return new a(function(a,c){var d;b.subscribe(function(b){return d=b},function(b){return c(b)},function(){return a(d)})})};c.create=function(a){return new c(a)};return c}(),I=function(){function c(){Error.call(this);
-this.message="object unsubscribed";this.name="ObjectUnsubscribedError";return this}c.prototype=Object.create(Error.prototype);return c}(),qb=function(c){function a(b,a){var d=c.call(this)||this;d.subject=b;d.subscriber=a;d.closed=!1;return d}h(a,c);a.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var b=this.subject,a=b.observers;this.subject=null;!a||0===a.length||b.isStopped||b.closed||(b=a.indexOf(this.subscriber),-1!==b&&a.splice(b,1))}};return a}(t),rb=function(c){function a(b){var a=
-c.call(this,b)||this;a.destination=b;return a}h(a,c);return a}(m),v=function(c){function a(){var b=c.call(this)||this;b.observers=[];b.closed=!1;b.isStopped=!1;b.hasError=!1;b.thrownError=null;return b}h(a,c);a.prototype[oa]=function(){return new rb(this)};a.prototype.lift=function(b){var a=new Da(this,this);a.operator=b;return a};a.prototype.next=function(b){if(this.closed)throw new I;if(!this.isStopped)for(var a=this.observers,c=a.length,a=a.slice(),f=0;f<c;f++)a[f].next(b)};a.prototype.error=function(b){if(this.closed)throw new I;
-this.hasError=!0;this.thrownError=b;this.isStopped=!0;for(var a=this.observers,c=a.length,a=a.slice(),f=0;f<c;f++)a[f].error(b);this.observers.length=0};a.prototype.complete=function(){if(this.closed)throw new I;this.isStopped=!0;for(var b=this.observers,a=b.length,b=b.slice(),c=0;c<a;c++)b[c].complete();this.observers.length=0};a.prototype.unsubscribe=function(){this.closed=this.isStopped=!0;this.observers=null};a.prototype._trySubscribe=function(b){if(this.closed)throw new I;return c.prototype._trySubscribe.call(this,
-b)};a.prototype._subscribe=function(b){if(this.closed)throw new I;if(this.hasError)return b.error(this.thrownError),t.EMPTY;if(this.isStopped)return b.complete(),t.EMPTY;this.observers.push(b);return new qb(this,b)};a.prototype.asObservable=function(){var b=new n;b.source=this;return b};a.create=function(b,a){return new Da(b,a)};return a}(n),Da=function(c){function a(b,a){var d=c.call(this)||this;d.destination=b;d.source=a;return d}h(a,c);a.prototype.next=function(b){var a=this.destination;a&&a.next&&
-a.next(b)};a.prototype.error=function(b){var a=this.destination;a&&a.error&&this.destination.error(b)};a.prototype.complete=function(){var b=this.destination;b&&b.complete&&this.destination.complete()};a.prototype._subscribe=function(b){return this.source?this.source.subscribe(b):t.EMPTY};return a}(v),Lb=function(){function c(a){this.connectable=a}c.prototype.call=function(a,b){var c=this.connectable;c._refCount++;a=new Kc(a,c);b=b.subscribe(a);a.closed||(a.connection=c.connect());return b};return c}(),
-Kc=function(c){function a(b,a){b=c.call(this,b)||this;b.connectable=a;return b}h(a,c);a.prototype._unsubscribe=function(){var b=this.connectable;if(b){this.connectable=null;var a=b._refCount;0>=a?this.connection=null:(b._refCount=a-1,1<a?this.connection=null:(a=this.connection,b=b._connection,this.connection=null,!b||a&&b!==a||b.unsubscribe()))}else this.connection=null};return a}(m),sb=function(c){function a(b,a){var d=c.call(this)||this;d.source=b;d.subjectFactory=a;d._refCount=0;d._isComplete=
-!1;return d}h(a,c);a.prototype._subscribe=function(b){return this.getSubject().subscribe(b)};a.prototype.getSubject=function(){var b=this._subject;if(!b||b.isStopped)this._subject=this.subjectFactory();return this._subject};a.prototype.connect=function(){var b=this._connection;b||(this._isComplete=!1,b=this._connection=new t,b.add(this.source.subscribe(new Lc(this.getSubject(),this))),b.closed&&(this._connection=null,b=t.EMPTY));return b};a.prototype.refCount=function(){return ua()(this)};return a}(n),
-sc=function(){var c=sb.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:c._subscribe},_isComplete:{value:c._isComplete,writable:!0},getSubject:{value:c.getSubject},connect:{value:c.connect},refCount:{value:c.refCount}}}(),Lc=function(c){function a(b,a){b=c.call(this,b)||this;b.connectable=a;return b}h(a,c);a.prototype._error=function(b){this._unsubscribe();c.prototype._error.call(this,b)};
-a.prototype._complete=function(){this.connectable._isComplete=!0;this._unsubscribe();c.prototype._complete.call(this)};a.prototype._unsubscribe=function(){var b=this.connectable;if(b){this.connectable=null;var a=b._connection;b._refCount=0;b._subject=null;b._connection=null;a&&a.unsubscribe()}};return a}(rb);(function(c){function a(b,a){b=c.call(this,b)||this;b.connectable=a;return b}h(a,c);a.prototype._unsubscribe=function(){var b=this.connectable;if(b){this.connectable=null;var a=b._refCount;0>=
-a?this.connection=null:(b._refCount=a-1,1<a?this.connection=null:(a=this.connection,b=b._connection,this.connection=null,!b||a&&b!==a||b.unsubscribe()))}else this.connection=null};return a})(m);var Nc=function(){function c(a,b,c,e){this.keySelector=a;this.elementSelector=b;this.durationSelector=c;this.subjectSelector=e}c.prototype.call=function(a,b){return b.subscribe(new Mc(a,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))};return c}(),Mc=function(c){function a(b,
-a,e,f,g){b=c.call(this,b)||this;b.keySelector=a;b.elementSelector=e;b.durationSelector=f;b.subjectSelector=g;b.groups=null;b.attemptedToUnsubscribe=!1;b.count=0;return b}h(a,c);a.prototype._next=function(b){var a;try{a=this.keySelector(b)}catch(e){this.error(e);return}this._group(b,a)};a.prototype._group=function(b,a){var c=this.groups;c||(c=this.groups=new Map);var d=c.get(a),g;if(this.elementSelector)try{g=this.elementSelector(b)}catch(l){this.error(l)}else g=b;if(!d&&(d=this.subjectSelector?this.subjectSelector():
-new v,c.set(a,d),b=new Ea(a,d,this),this.destination.next(b),this.durationSelector)){b=void 0;try{b=this.durationSelector(new Ea(a,d))}catch(l){this.error(l);return}this.add(b.subscribe(new Oc(a,d,this)))}d.closed||d.next(g)};a.prototype._error=function(b){var a=this.groups;a&&(a.forEach(function(a,c){a.error(b)}),a.clear());this.destination.error(b)};a.prototype._complete=function(){var b=this.groups;b&&(b.forEach(function(b,a){b.complete()}),b.clear());this.destination.complete()};a.prototype.removeGroup=
-function(b){this.groups.delete(b)};a.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&c.prototype.unsubscribe.call(this))};return a}(m),Oc=function(c){function a(b,a,e){var d=c.call(this,a)||this;d.key=b;d.group=a;d.parent=e;return d}h(a,c);a.prototype._next=function(b){this.complete()};a.prototype._unsubscribe=function(){var b=this.parent,a=this.key;this.key=this.parent=null;b&&b.removeGroup(a)};return a}(m),Ea=function(c){function a(b,a,e){var d=c.call(this)||
-this;d.key=b;d.groupSubject=a;d.refCountSubscription=e;return d}h(a,c);a.prototype._subscribe=function(b){var a=new t,c=this.refCountSubscription,f=this.groupSubject;c&&!c.closed&&a.add(new Pc(c));a.add(f.subscribe(b));return a};return a}(n),Pc=function(c){function a(b){var a=c.call(this)||this;a.parent=b;b.count++;return a}h(a,c);a.prototype.unsubscribe=function(){var b=this.parent;b.closed||this.closed||(c.prototype.unsubscribe.call(this),--b.count,0===b.count&&b.attemptedToUnsubscribe&&b.unsubscribe())};
-return a}(t),tb=function(c){function a(b){var a=c.call(this)||this;a._value=b;return a}h(a,c);Object.defineProperty(a.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0});a.prototype._subscribe=function(b){var a=c.prototype._subscribe.call(this,b);a&&!a.closed&&b.next(this._value);return a};a.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new I;return this._value};a.prototype.next=function(b){c.prototype.next.call(this,
-this._value=b)};return a}(v),ea=function(c){function a(b,a){var d=c.call(this,b,a)||this;d.scheduler=b;d.work=a;d.pending=!1;return d}h(a,c);a.prototype.schedule=function(b,a){void 0===a&&(a=0);if(this.closed)return this;this.state=b;b=this.id;var c=this.scheduler;null!=b&&(this.id=this.recycleAsyncId(c,b,a));this.pending=!0;this.delay=a;this.id=this.id||this.requestAsyncId(c,this.id,a);return this};a.prototype.requestAsyncId=function(b,a,c){void 0===c&&(c=0);return setInterval(b.flush.bind(b,this),
-c)};a.prototype.recycleAsyncId=function(b,a,c){void 0===c&&(c=0);if(null!==c&&this.delay===c&&!1===this.pending)return a;clearInterval(a)};a.prototype.execute=function(b,a){if(this.closed)return Error("executing a cancelled action");this.pending=!1;if(b=this._execute(b,a))return b;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))};a.prototype._execute=function(b,a){a=!1;var c=void 0;try{this.work(b)}catch(f){a=!0,c=!!f&&f||Error(f)}if(a)return this.unsubscribe(),
-c};a.prototype._unsubscribe=function(){var b=this.id,a=this.scheduler,c=a.actions,f=c.indexOf(this);this.state=this.work=null;this.pending=!1;this.scheduler=null;-1!==f&&c.splice(f,1);null!=b&&(this.id=this.recycleAsyncId(a,b,null));this.delay=null};return a}(function(c){function a(b,a){return c.call(this)||this}h(a,c);a.prototype.schedule=function(b,a){return this};return a}(t)),Qc=function(c){function a(b,a){var d=c.call(this,b,a)||this;d.scheduler=b;d.work=a;return d}h(a,c);a.prototype.schedule=
-function(b,a){void 0===a&&(a=0);if(0<a)return c.prototype.schedule.call(this,b,a);this.delay=a;this.state=b;this.scheduler.flush(this);return this};a.prototype.execute=function(b,a){return 0<a||this.closed?c.prototype.execute.call(this,b,a):this._execute(b,a)};a.prototype.requestAsyncId=function(b,a,e){void 0===e&&(e=0);return null!==e&&0<e||null===e&&0<this.delay?c.prototype.requestAsyncId.call(this,b,a,e):b.flush(this)};return a}(ea),Fa=function(){function c(a,b){void 0===b&&(b=c.now);this.SchedulerAction=
-a;this.now=b}c.prototype.schedule=function(a,b,c){void 0===b&&(b=0);return(new this.SchedulerAction(this,a)).schedule(c,b)};c.now=function(){return Date.now()};return c}(),O=function(c){function a(b,d){void 0===d&&(d=Fa.now);var e=c.call(this,b,function(){return a.delegate&&a.delegate!==e?a.delegate.now():d()})||this;e.actions=[];e.active=!1;e.scheduled=void 0;return e}h(a,c);a.prototype.schedule=function(b,d,e){void 0===d&&(d=0);return a.delegate&&a.delegate!==this?a.delegate.schedule(b,d,e):c.prototype.schedule.call(this,
-b,d,e)};a.prototype.flush=function(b){var a=this.actions;if(this.active)a.push(b);else{var c;this.active=!0;do if(c=b.execute(b.state,b.delay))break;while(b=a.shift());this.active=!1;if(c){for(;b=a.shift();)b.unsubscribe();throw c;}}};return a}(Fa),ub=new (function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);return a}(O))(Qc),S=new n(function(c){return c.complete()}),Na=function(c){return function(a){for(var b=0,d=c.length;b<d&&!a.closed;b++)a.next(c[b]);a.complete()}};(function(c){c.NEXT=
-"N";c.ERROR="E";c.COMPLETE="C"})(k.NotificationKind||(k.NotificationKind={}));var w=function(){function c(a,b,c){this.kind=a;this.value=b;this.error=c;this.hasValue="N"===a}c.prototype.observe=function(a){switch(this.kind){case "N":return a.next&&a.next(this.value);case "E":return a.error&&a.error(this.error);case "C":return a.complete&&a.complete()}};c.prototype.do=function(a,b,c){switch(this.kind){case "N":return a&&a(this.value);case "E":return b&&b(this.error);case "C":return c&&c()}};c.prototype.accept=
-function(a,b,c){return a&&"function"===typeof a.next?this.observe(a):this.do(a,b,c)};c.prototype.toObservable=function(){switch(this.kind){case "N":return ga(this.value);case "E":return wa(this.error);case "C":return R()}throw Error("unexpected notification kind value");};c.createNext=function(a){return"undefined"!==typeof a?new c("N",a):c.undefinedValueNotification};c.createError=function(a){return new c("E",void 0,a)};c.createComplete=function(){return c.completeNotification};c.completeNotification=
-new c("C");c.undefinedValueNotification=new c("N",void 0);return c}(),Rc=function(){function c(a,b){void 0===b&&(b=0);this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return b.subscribe(new vb(a,this.scheduler,this.delay))};return c}(),vb=function(c){function a(b,a,e){void 0===e&&(e=0);b=c.call(this,b)||this;b.scheduler=a;b.delay=e;return b}h(a,c);a.dispatch=function(b){b.notification.observe(b.destination);this.unsubscribe()};a.prototype.scheduleMessage=function(b){this.destination.add(this.scheduler.schedule(a.dispatch,
-this.delay,new Sc(b,this.destination)))};a.prototype._next=function(b){this.scheduleMessage(w.createNext(b))};a.prototype._error=function(b){this.scheduleMessage(w.createError(b));this.unsubscribe()};a.prototype._complete=function(){this.scheduleMessage(w.createComplete());this.unsubscribe()};return a}(m),Sc=function(){return function(c,a){this.notification=c;this.destination=a}}(),W=function(c){function a(b,a,e){void 0===b&&(b=Number.POSITIVE_INFINITY);void 0===a&&(a=Number.POSITIVE_INFINITY);var d=
-c.call(this)||this;d.scheduler=e;d._events=[];d._infiniteTimeWindow=!1;d._bufferSize=1>b?1:b;d._windowTime=1>a?1:a;a===Number.POSITIVE_INFINITY?(d._infiniteTimeWindow=!0,d.next=d.nextInfiniteTimeWindow):d.next=d.nextTimeWindow;return d}h(a,c);a.prototype.nextInfiniteTimeWindow=function(b){var a=this._events;a.push(b);a.length>this._bufferSize&&a.shift();c.prototype.next.call(this,b)};a.prototype.nextTimeWindow=function(b){this._events.push(new Tc(this._getNow(),b));this._trimBufferThenGetEvents();
-c.prototype.next.call(this,b)};a.prototype._subscribe=function(b){var a=this._infiniteTimeWindow,c=a?this._events:this._trimBufferThenGetEvents(),f=this.scheduler,g=c.length,l;if(this.closed)throw new I;this.isStopped||this.hasError?l=t.EMPTY:(this.observers.push(b),l=new qb(this,b));f&&b.add(b=new vb(b,f));if(a)for(a=0;a<g&&!b.closed;a++)b.next(c[a]);else for(a=0;a<g&&!b.closed;a++)b.next(c[a].value);this.hasError?b.error(this.thrownError):this.isStopped&&b.complete();return l};a.prototype._getNow=
-function(){return(this.scheduler||ub).now()};a.prototype._trimBufferThenGetEvents=function(){for(var b=this._getNow(),a=this._bufferSize,c=this._windowTime,f=this._events,g=f.length,l=0;l<g&&!(b-f[l].time<c);)l++;g>a&&(l=Math.max(l,g-a));0<l&&f.splice(0,l);return f};return a}(v),Tc=function(){return function(c,a){this.time=c;this.value=a}}(),T=function(c){function a(){var b=null!==c&&c.apply(this,arguments)||this;b.value=null;b.hasNext=!1;b.hasCompleted=!1;return b}h(a,c);a.prototype._subscribe=function(b){return this.hasError?
-(b.error(this.thrownError),t.EMPTY):this.hasCompleted&&this.hasNext?(b.next(this.value),b.complete(),t.EMPTY):c.prototype._subscribe.call(this,b)};a.prototype.next=function(b){this.hasCompleted||(this.value=b,this.hasNext=!0)};a.prototype.error=function(b){this.hasCompleted||c.prototype.error.call(this,b)};a.prototype.complete=function(){this.hasCompleted=!0;this.hasNext&&c.prototype.next.call(this,this.value);c.prototype.complete.call(this)};return a}(v),Uc=1,Vc=Promise.resolve(),xa={},wb={setImmediate:function(c){var a=
-Uc++;xa[a]=!0;Vc.then(function(){return Oa(a)&&c()});return a},clearImmediate:function(c){Oa(c)}},Wc=function(c){function a(b,a){var d=c.call(this,b,a)||this;d.scheduler=b;d.work=a;return d}h(a,c);a.prototype.requestAsyncId=function(b,a,e){void 0===e&&(e=0);if(null!==e&&0<e)return c.prototype.requestAsyncId.call(this,b,a,e);b.actions.push(this);return b.scheduled||(b.scheduled=wb.setImmediate(b.flush.bind(b,null)))};a.prototype.recycleAsyncId=function(b,a,e){void 0===e&&(e=0);if(null!==e&&0<e||null===
-e&&0<this.delay)return c.prototype.recycleAsyncId.call(this,b,a,e);0===b.actions.length&&(wb.clearImmediate(a),b.scheduled=void 0)};return a}(ea),pa=new (function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype.flush=function(b){this.active=!0;this.scheduled=void 0;var a=this.actions,c,f=-1,g=a.length;b=b||a.shift();do if(c=b.execute(b.state,b.delay))break;while(++f<g&&(b=a.shift()));this.active=!1;if(c){for(;++f<g&&(b=a.shift());)b.unsubscribe();throw c;}};return a}(O))(Wc),
-y=new O(ea),Xc=function(c){function a(b,a){var d=c.call(this,b,a)||this;d.scheduler=b;d.work=a;return d}h(a,c);a.prototype.requestAsyncId=function(b,a,e){void 0===e&&(e=0);if(null!==e&&0<e)return c.prototype.requestAsyncId.call(this,b,a,e);b.actions.push(this);return b.scheduled||(b.scheduled=requestAnimationFrame(function(){return b.flush(null)}))};a.prototype.recycleAsyncId=function(b,a,e){void 0===e&&(e=0);if(null!==e&&0<e||null===e&&0<this.delay)return c.prototype.recycleAsyncId.call(this,b,a,
-e);0===b.actions.length&&(cancelAnimationFrame(a),b.scheduled=void 0)};return a}(ea),Yc=new (function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype.flush=function(b){this.active=!0;this.scheduled=void 0;var a=this.actions,c,f=-1,g=a.length;b=b||a.shift();do if(c=b.execute(b.state,b.delay))break;while(++f<g&&(b=a.shift()));this.active=!1;if(c){for(;++f<g&&(b=a.shift());)b.unsubscribe();throw c;}};return a}(O))(Xc),xb=function(c){function a(b,a){void 0===b&&(b=Ga);
-void 0===a&&(a=Number.POSITIVE_INFINITY);var d=c.call(this,b,function(){return d.frame})||this;d.maxFrames=a;d.frame=0;d.index=-1;return d}h(a,c);a.prototype.flush=function(){for(var b=this.actions,a=this.maxFrames,c,f;(f=b[0])&&f.delay<=a&&!(b.shift(),this.frame=f.delay,c=f.execute(f.state,f.delay)););if(c){for(;f=b.shift();)f.unsubscribe();throw c;}};a.frameTimeFactor=10;return a}(O),Ga=function(c){function a(b,a,e){void 0===e&&(e=b.index+=1);var d=c.call(this,b,a)||this;d.scheduler=b;d.work=a;
-d.index=e;d.active=!0;d.index=b.index=e;return d}h(a,c);a.prototype.schedule=function(b,d){void 0===d&&(d=0);if(!this.id)return c.prototype.schedule.call(this,b,d);this.active=!1;var e=new a(this.scheduler,this.work);this.add(e);return e.schedule(b,d)};a.prototype.requestAsyncId=function(b,c,e){void 0===e&&(e=0);this.delay=b.frame+e;b=b.actions;b.push(this);b.sort(a.sortActions);return!0};a.prototype.recycleAsyncId=function(b,a,c){};a.prototype._execute=function(b,a){if(!0===this.active)return c.prototype._execute.call(this,
-b,a)};a.sortActions=function(b,a){return b.delay===a.delay?b.index===a.index?0:b.index>a.index?1:-1:b.delay>a.delay?1:-1};return a}(ea),X=function(){function c(){Error.call(this);this.message="argument out of range";this.name="ArgumentOutOfRangeError";return this}c.prototype=Object.create(Error.prototype);return c}(),ca=function(){function c(){Error.call(this);this.message="no elements in sequence";this.name="EmptyError";return this}c.prototype=Object.create(Error.prototype);return c}(),yb=function(){function c(){Error.call(this);
-this.message="Timeout has occurred";this.name="TimeoutError";return this}c.prototype=Object.create(Error.prototype);return c}(),Ob=function(){function c(a,b){this.project=a;this.thisArg=b}c.prototype.call=function(a,b){return b.subscribe(new Zc(a,this.project,this.thisArg))};return c}(),Zc=function(c){function a(b,a,e){b=c.call(this,b)||this;b.project=a;b.count=0;b.thisArg=e||b;return b}h(a,c);a.prototype._next=function(b){var a;try{a=this.project.call(this.thisArg,b,this.count++)}catch(e){this.destination.error(e);
-return}this.destination.next(a)};return a}(m),q=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)};a.prototype.notifyError=function(b,a){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.complete()};return a}(m),G=function(c){function a(b,a,e){var d=c.call(this)||this;d.parent=b;d.outerValue=a;d.outerIndex=e;d.index=0;return d}h(a,c);a.prototype._next=function(b){this.parent.notifyNext(this.outerValue,
-b,this.outerIndex,this.index++,this)};a.prototype._error=function(b){this.parent.notifyError(b,this);this.unsubscribe()};a.prototype._complete=function(){this.parent.notifyComplete(this);this.unsubscribe()};return a}(m),$c=function(c){return function(a){c.then(function(b){a.closed||(a.next(b),a.complete())},function(b){return a.error(b)}).then(null,Q);return a}},E;E="function"===typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";var ad=function(c){return function(a){var b=c[E]();do{var d=
-b.next();if(d.done){a.complete();break}a.next(d.value);if(a.closed)break}while(1);"function"===typeof b.return&&a.add(function(){b.return&&b.return()});return a}},bd=function(c){return function(a){var b=c[U]();if("function"!==typeof b.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return b.subscribe(a)}},Ua=function(c){return c&&"number"===typeof c.length&&"function"!==typeof c},ha=function(c){if(c&&"function"===typeof c[U])return bd(c);if(Ua(c))return Na(c);
-if(Sa(c))return $c(c);if(c&&"function"===typeof c[E])return ad(c);c=ra(c)?"an invalid object":"'"+c+"'";throw new TypeError("You provided "+c+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.");},zb={},Ha=function(){function c(a){this.resultSelector=a}c.prototype.call=function(a,b){return b.subscribe(new cd(a,this.resultSelector))};return c}(),cd=function(c){function a(b,a){b=c.call(this,b)||this;b.resultSelector=a;b.active=0;b.values=[];b.observables=[];return b}
-h(a,c);a.prototype._next=function(b){this.values.push(zb);this.observables.push(b)};a.prototype._complete=function(){var b=this.observables,a=b.length;if(0===a)this.destination.complete();else{this.toRespond=this.active=a;for(var c=0;c<a;c++){var f=b[c];this.add(p(this,f,f,c))}}};a.prototype.notifyComplete=function(b){0===--this.active&&this.destination.complete()};a.prototype.notifyNext=function(b,a,c,f,g){b=this.values;f=b[c];f=this.toRespond?f===zb?--this.toRespond:this.toRespond:0;b[c]=a;0===
-f&&(this.resultSelector?this._tryResultSelector(b):this.destination.next(b.slice()))};a.prototype._tryResultSelector=function(b){var a;try{a=this.resultSelector.apply(this,b)}catch(e){this.destination.error(e);return}this.destination.next(a)};return a}(q),Wb=function(){function c(a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);this.project=a;this.concurrent=b}c.prototype.call=function(a,b){return b.subscribe(new dd(a,this.project,this.concurrent))};return c}(),dd=function(c){function a(b,a,e){void 0===
-e&&(e=Number.POSITIVE_INFINITY);b=c.call(this,b)||this;b.project=a;b.concurrent=e;b.hasCompleted=!1;b.buffer=[];b.active=0;b.index=0;return b}h(a,c);a.prototype._next=function(b){this.active<this.concurrent?this._tryNext(b):this.buffer.push(b)};a.prototype._tryNext=function(b){var a,c=this.index++;try{a=this.project(b,c)}catch(f){this.destination.error(f);return}this.active++;this._innerSub(a,b,c)};a.prototype._innerSub=function(b,a,c){a=new G(this,a,c);c=this.destination;c.add(a);b=p(this,b,void 0,
-void 0,a);b!==a&&c.add(b)};a.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&this.destination.complete();this.unsubscribe()};a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)};a.prototype.notifyComplete=function(b){var a=this.buffer;this.remove(b);this.active--;0<a.length?this._next(a.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()};return a}(q),Ab=new n(D),cc=function(){function c(a,b){this.predicate=a;this.thisArg=
-b}c.prototype.call=function(a,b){return b.subscribe(new ed(a,this.predicate,this.thisArg))};return c}(),ed=function(c){function a(b,a,e){b=c.call(this,b)||this;b.predicate=a;b.thisArg=e;b.count=0;return b}h(a,c);a.prototype._next=function(b){var a;try{a=this.predicate.call(this.thisArg,b,this.count++)}catch(e){this.destination.error(e);return}a&&this.destination.next(b)};return a}(m),dc=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new fd(a))};return c}(),fd=function(c){function a(b){b=
-c.call(this,b)||this;b.hasFirst=!1;b.observables=[];b.subscriptions=[];return b}h(a,c);a.prototype._next=function(b){this.observables.push(b)};a.prototype._complete=function(){var b=this.observables,a=b.length;if(0===a)this.destination.complete();else{for(var c=0;c<a&&!this.hasFirst;c++){var f=b[c],f=p(this,f,f,c);this.subscriptions&&this.subscriptions.push(f);this.add(f)}this.observables=null}};a.prototype.notifyNext=function(b,a,c,f,g){if(!this.hasFirst){this.hasFirst=!0;for(b=0;b<this.subscriptions.length;b++)b!==
-c&&(f=this.subscriptions[b],f.unsubscribe(),this.remove(f));this.subscriptions=null}this.destination.next(a)};return a}(q),db=function(){function c(a){this.resultSelector=a}c.prototype.call=function(a,b){return b.subscribe(new gd(a,this.resultSelector))};return c}(),gd=function(c){function a(b,a,e){void 0===e&&(e=Object.create(null));b=c.call(this,b)||this;b.iterators=[];b.active=0;b.resultSelector="function"===typeof a?a:null;b.values=e;return b}h(a,c);a.prototype._next=function(b){var a=this.iterators;
-x(b)?a.push(new hd(b)):"function"===typeof b[E]?a.push(new id(b[E]())):a.push(new jd(this.destination,this,b))};a.prototype._complete=function(){var b=this.iterators,a=b.length;this.unsubscribe();if(0===a)this.destination.complete();else{this.active=a;for(var c=0;c<a;c++){var f=b[c];f.stillUnsubscribed?this.destination.add(f.subscribe(f,c)):this.active--}}};a.prototype.notifyInactive=function(){this.active--;0===this.active&&this.destination.complete()};a.prototype.checkIterators=function(){for(var b=
-this.iterators,a=b.length,c=this.destination,f=0;f<a;f++){var g=b[f];if("function"===typeof g.hasValue&&!g.hasValue())return}for(var l=!1,h=[],f=0;f<a;f++){var g=b[f],k=g.next();g.hasCompleted()&&(l=!0);if(k.done){c.complete();return}h.push(k.value)}this.resultSelector?this._tryresultSelector(h):c.next(h);l&&c.complete()};a.prototype._tryresultSelector=function(b){var a;try{a=this.resultSelector.apply(this,b)}catch(e){this.destination.error(e);return}this.destination.next(a)};return a}(m),id=function(){function c(a){this.iterator=
-a;this.nextResult=a.next()}c.prototype.hasValue=function(){return!0};c.prototype.next=function(){var a=this.nextResult;this.nextResult=this.iterator.next();return a};c.prototype.hasCompleted=function(){var a=this.nextResult;return a&&a.done};return c}(),hd=function(){function c(a){this.array=a;this.length=this.index=0;this.length=a.length}c.prototype[E]=function(){return this};c.prototype.next=function(a){a=this.index++;var b=this.array;return a<this.length?{value:b[a],done:!1}:{value:null,done:!0}};
-c.prototype.hasValue=function(){return this.array.length>this.index};c.prototype.hasCompleted=function(){return this.array.length===this.index};return c}(),jd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.parent=a;b.observable=e;b.stillUnsubscribed=!0;b.buffer=[];b.isComplete=!1;return b}h(a,c);a.prototype[E]=function(){return this};a.prototype.next=function(){var b=this.buffer;return 0===b.length&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}};a.prototype.hasValue=function(){return 0<
-this.buffer.length};a.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete};a.prototype.notifyComplete=function(){0<this.buffer.length?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()};a.prototype.notifyNext=function(b,a,c,f,g){this.buffer.push(a);this.parent.checkIterators()};a.prototype.subscribe=function(b,a){return p(this,this.observable,this,a)};return a}(q),gc=function(){function c(a){this.durationSelector=a}c.prototype.call=function(a,
-b){return b.subscribe(new kd(a,this.durationSelector))};return c}(),kd=function(c){function a(b,a){b=c.call(this,b)||this;b.durationSelector=a;b.hasValue=!1;return b}h(a,c);a.prototype._next=function(b){this.value=b;this.hasValue=!0;if(!this.throttled){var a=void 0;try{var c=this.durationSelector,a=c(b)}catch(f){return this.destination.error(f)}b=p(this,a);!b||b.closed?this.clearThrottle():this.add(this.throttled=b)}};a.prototype.clearThrottle=function(){var b=this.value,a=this.hasValue,c=this.throttled;
-c&&(this.remove(c),this.throttled=null,c.unsubscribe());a&&(this.value=null,this.hasValue=!1,this.destination.next(b))};a.prototype.notifyNext=function(b,a,c,f){this.clearThrottle()};a.prototype.notifyComplete=function(){this.clearThrottle()};return a}(q),md=function(){function c(a){this.closingNotifier=a}c.prototype.call=function(a,b){return b.subscribe(new ld(a,this.closingNotifier))};return c}(),ld=function(c){function a(b,a){b=c.call(this,b)||this;b.buffer=[];b.add(p(b,a));return b}h(a,c);a.prototype._next=
-function(b){this.buffer.push(b)};a.prototype.notifyNext=function(b,a,c,f,g){b=this.buffer;this.buffer=[];this.destination.next(b)};return a}(q),pd=function(){function c(a,b){this.bufferSize=a;this.subscriberClass=(this.startBufferEvery=b)&&a!==b?nd:od}c.prototype.call=function(a,b){return b.subscribe(new this.subscriberClass(a,this.bufferSize,this.startBufferEvery))};return c}(),od=function(c){function a(b,a){b=c.call(this,b)||this;b.bufferSize=a;b.buffer=[];return b}h(a,c);a.prototype._next=function(b){var a=
-this.buffer;a.push(b);a.length==this.bufferSize&&(this.destination.next(a),this.buffer=[])};a.prototype._complete=function(){var b=this.buffer;0<b.length&&this.destination.next(b);c.prototype._complete.call(this)};return a}(m),nd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.bufferSize=a;b.startBufferEvery=e;b.buffers=[];b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=this.bufferSize,c=this.startBufferEvery,f=this.buffers,g=this.count;this.count++;0===g%c&&f.push([]);for(c=
-f.length;c--;)g=f[c],g.push(b),g.length===a&&(f.splice(c,1),this.destination.next(g))};a.prototype._complete=function(){for(var b=this.buffers,a=this.destination;0<b.length;){var e=b.shift();0<e.length&&a.next(e)}c.prototype._complete.call(this)};return a}(m),rd=function(){function c(a,b,c,e){this.bufferTimeSpan=a;this.bufferCreationInterval=b;this.maxBufferSize=c;this.scheduler=e}c.prototype.call=function(a,b){return b.subscribe(new qd(a,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,
-this.scheduler))};return c}(),sd=function(){return function(){this.buffer=[]}}(),qd=function(c){function a(b,a,e,f,g){b=c.call(this,b)||this;b.bufferTimeSpan=a;b.bufferCreationInterval=e;b.maxBufferSize=f;b.scheduler=g;b.contexts=[];f=b.openContext();b.timespanOnly=null==e||0>e;if(b.timespanOnly)b.add(f.closeAction=g.schedule(fb,a,{subscriber:b,context:f,bufferTimeSpan:a}));else{var d={bufferTimeSpan:a,bufferCreationInterval:e,subscriber:b,scheduler:g};b.add(f.closeAction=g.schedule(gb,a,{subscriber:b,
-context:f}));b.add(g.schedule(hc,e,d))}return b}h(a,c);a.prototype._next=function(b){for(var a=this.contexts,c=a.length,f,g=0;g<c;g++){var l=a[g],h=l.buffer;h.push(b);h.length==this.maxBufferSize&&(f=l)}if(f)this.onBufferFull(f)};a.prototype._error=function(b){this.contexts.length=0;c.prototype._error.call(this,b)};a.prototype._complete=function(){for(var b=this.contexts,a=this.destination;0<b.length;){var e=b.shift();a.next(e.buffer)}c.prototype._complete.call(this)};a.prototype._unsubscribe=function(){this.contexts=
-null};a.prototype.onBufferFull=function(b){this.closeContext(b);b=b.closeAction;b.unsubscribe();this.remove(b);if(!this.closed&&this.timespanOnly){b=this.openContext();var a=this.bufferTimeSpan;this.add(b.closeAction=this.scheduler.schedule(fb,a,{subscriber:this,context:b,bufferTimeSpan:a}))}};a.prototype.openContext=function(){var b=new sd;this.contexts.push(b);return b};a.prototype.closeContext=function(b){this.destination.next(b.buffer);var a=this.contexts;0<=(a?a.indexOf(b):-1)&&a.splice(a.indexOf(b),
-1)};return a}(m),ud=function(){function c(a,b){this.openings=a;this.closingSelector=b}c.prototype.call=function(a,b){return b.subscribe(new td(a,this.openings,this.closingSelector))};return c}(),td=function(c){function a(b,a,e){b=c.call(this,b)||this;b.openings=a;b.closingSelector=e;b.contexts=[];b.add(p(b,a));return b}h(a,c);a.prototype._next=function(b){for(var a=this.contexts,c=a.length,f=0;f<c;f++)a[f].buffer.push(b)};a.prototype._error=function(b){for(var a=this.contexts;0<a.length;){var e=a.shift();
-e.subscription.unsubscribe();e.buffer=null;e.subscription=null}this.contexts=null;c.prototype._error.call(this,b)};a.prototype._complete=function(){for(var b=this.contexts;0<b.length;){var a=b.shift();this.destination.next(a.buffer);a.subscription.unsubscribe();a.buffer=null;a.subscription=null}this.contexts=null;c.prototype._complete.call(this)};a.prototype.notifyNext=function(b,a,c,f,g){b?this.closeBuffer(b):this.openBuffer(a)};a.prototype.notifyComplete=function(b){this.closeBuffer(b.context)};
-a.prototype.openBuffer=function(b){try{var a=this.closingSelector.call(this,b);a&&this.trySubscribe(a)}catch(e){this._error(e)}};a.prototype.closeBuffer=function(b){var a=this.contexts;if(a&&b){var c=b.subscription;this.destination.next(b.buffer);a.splice(a.indexOf(b),1);this.remove(c);c.unsubscribe()}};a.prototype.trySubscribe=function(b){var a=this.contexts,c=new t,f={buffer:[],subscription:c};a.push(f);b=p(this,b,f);!b||b.closed?this.closeBuffer(f):(b.context=f,this.add(b),c.add(b))};return a}(q),
-wd=function(){function c(a){this.closingSelector=a}c.prototype.call=function(a,b){return b.subscribe(new vd(a,this.closingSelector))};return c}(),vd=function(c){function a(b,a){b=c.call(this,b)||this;b.closingSelector=a;b.subscribing=!1;b.openBuffer();return b}h(a,c);a.prototype._next=function(b){this.buffer.push(b)};a.prototype._complete=function(){var b=this.buffer;b&&this.destination.next(b);c.prototype._complete.call(this)};a.prototype._unsubscribe=function(){this.buffer=null;this.subscribing=
-!1};a.prototype.notifyNext=function(b,a,c,f,g){this.openBuffer()};a.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()};a.prototype.openBuffer=function(){var b=this.closingSubscription;b&&(this.remove(b),b.unsubscribe());(b=this.buffer)&&this.destination.next(b);this.buffer=[];var a;try{var c=this.closingSelector;a=c()}catch(f){return this.error(f)}this.closingSubscription=b=new t;this.add(b);this.subscribing=!0;b.add(p(this,a));this.subscribing=!1};return a}(q),
-yd=function(){function c(a){this.selector=a}c.prototype.call=function(a,b){return b.subscribe(new xd(a,this.selector,this.caught))};return c}(),xd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.selector=a;b.caught=e;return b}h(a,c);a.prototype.error=function(b){if(!this.isStopped){var a=void 0;try{a=this.selector(b,this.caught)}catch(e){c.prototype.error.call(this,e);return}this._unsubscribeAndRecycle();b=new G(this,void 0,void 0);this.add(b);a=p(this,a,void 0,void 0,b);a!==b&&this.add(a)}};
-return a}(q),Ad=function(){function c(a,b){this.predicate=a;this.source=b}c.prototype.call=function(a,b){return b.subscribe(new zd(a,this.predicate,this.source))};return c}(),zd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.predicate=a;b.source=e;b.count=0;b.index=0;return b}h(a,c);a.prototype._next=function(b){this.predicate?this._tryPredicate(b):this.count++};a.prototype._tryPredicate=function(b){var a;try{a=this.predicate(b,this.index++,this.source)}catch(e){this.destination.error(e);
-return}a&&this.count++};a.prototype._complete=function(){this.destination.next(this.count);this.destination.complete()};return a}(m),Cd=function(){function c(a){this.durationSelector=a}c.prototype.call=function(a,b){return b.subscribe(new Bd(a,this.durationSelector))};return c}(),Bd=function(c){function a(b,a){b=c.call(this,b)||this;b.durationSelector=a;b.hasValue=!1;b.durationSubscription=null;return b}h(a,c);a.prototype._next=function(b){try{var a=this.durationSelector.call(this,b);a&&this._tryNext(b,
-a)}catch(e){this.destination.error(e)}};a.prototype._complete=function(){this.emitValue();this.destination.complete()};a.prototype._tryNext=function(b,a){var c=this.durationSubscription;this.value=b;this.hasValue=!0;c&&(c.unsubscribe(),this.remove(c));(c=p(this,a))&&!c.closed&&this.add(this.durationSubscription=c)};a.prototype.notifyNext=function(b,a,c,f,g){this.emitValue()};a.prototype.notifyComplete=function(){this.emitValue()};a.prototype.emitValue=function(){if(this.hasValue){var b=this.value,
-a=this.durationSubscription;a&&(this.durationSubscription=null,a.unsubscribe(),this.remove(a));this.value=null;this.hasValue=!1;c.prototype._next.call(this,b)}};return a}(q),Ed=function(){function c(a,b){this.dueTime=a;this.scheduler=b}c.prototype.call=function(a,b){return b.subscribe(new Dd(a,this.dueTime,this.scheduler))};return c}(),Dd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.dueTime=a;b.scheduler=e;b.debouncedSubscription=null;b.lastValue=null;b.hasValue=!1;return b}h(a,c);a.prototype._next=
-function(b){this.clearDebounce();this.lastValue=b;this.hasValue=!0;this.add(this.debouncedSubscription=this.scheduler.schedule(ic,this.dueTime,this))};a.prototype._complete=function(){this.debouncedNext();this.destination.complete()};a.prototype.debouncedNext=function(){this.clearDebounce();if(this.hasValue){var b=this.lastValue;this.lastValue=null;this.hasValue=!1;this.destination.next(b)}};a.prototype.clearDebounce=function(){var b=this.debouncedSubscription;null!==b&&(this.remove(b),b.unsubscribe(),
-this.debouncedSubscription=null)};return a}(m),jc=function(){function c(a){this.defaultValue=a}c.prototype.call=function(a,b){return b.subscribe(new Fd(a,this.defaultValue))};return c}(),Fd=function(c){function a(b,a){b=c.call(this,b)||this;b.defaultValue=a;b.isEmpty=!0;return b}h(a,c);a.prototype._next=function(b){this.isEmpty=!1;this.destination.next(b)};a.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue);this.destination.complete()};return a}(m),Hd=function(){function c(a,
-b){this.delay=a;this.scheduler=b}c.prototype.call=function(a,b){return b.subscribe(new Gd(a,this.delay,this.scheduler))};return c}(),Gd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.delay=a;b.scheduler=e;b.queue=[];b.active=!1;b.errored=!1;return b}h(a,c);a.dispatch=function(b){for(var a=b.source,c=a.queue,f=b.scheduler,g=b.destination;0<c.length&&0>=c[0].time-f.now();)c.shift().notification.observe(g);0<c.length?(a=Math.max(0,c[0].time-f.now()),this.schedule(b,a)):(this.unsubscribe(),a.active=
-!1)};a.prototype._schedule=function(b){this.active=!0;this.destination.add(b.schedule(a.dispatch,this.delay,{source:this,destination:this.destination,scheduler:b}))};a.prototype.scheduleNotification=function(b){if(!0!==this.errored){var a=this.scheduler;b=new Id(a.now()+this.delay,b);this.queue.push(b);!1===this.active&&this._schedule(a)}};a.prototype._next=function(b){this.scheduleNotification(w.createNext(b))};a.prototype._error=function(b){this.errored=!0;this.queue=[];this.destination.error(b);
-this.unsubscribe()};a.prototype._complete=function(){this.scheduleNotification(w.createComplete());this.unsubscribe()};return a}(m),Id=function(){return function(c,a){this.time=c;this.notification=a}}(),Bb=function(){function c(a){this.delayDurationSelector=a}c.prototype.call=function(a,b){return b.subscribe(new Jd(a,this.delayDurationSelector))};return c}(),Jd=function(c){function a(b,a){b=c.call(this,b)||this;b.delayDurationSelector=a;b.completed=!1;b.delayNotifierSubscriptions=[];b.index=0;return b}
-h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(b);this.removeSubscription(g);this.tryComplete()};a.prototype.notifyError=function(b,a){this._error(b)};a.prototype.notifyComplete=function(b){(b=this.removeSubscription(b))&&this.destination.next(b);this.tryComplete()};a.prototype._next=function(b){var a=this.index++;try{var c=this.delayDurationSelector(b,a);c&&this.tryDelay(c,b)}catch(f){this.destination.error(f)}};a.prototype._complete=function(){this.completed=!0;this.tryComplete();
-this.unsubscribe()};a.prototype.removeSubscription=function(b){b.unsubscribe();var a=this.delayNotifierSubscriptions.indexOf(b);-1!==a&&this.delayNotifierSubscriptions.splice(a,1);return b.outerValue};a.prototype.tryDelay=function(b,a){(b=p(this,b,a))&&!b.closed&&(this.destination.add(b),this.delayNotifierSubscriptions.push(b))};a.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()};return a}(q),Ld=function(c){function a(b,a){var d=
-c.call(this)||this;d.source=b;d.subscriptionDelay=a;return d}h(a,c);a.prototype._subscribe=function(b){this.subscriptionDelay.subscribe(new Kd(b,this.source))};return a}(n),Kd=function(c){function a(b,a){var d=c.call(this)||this;d.parent=b;d.source=a;d.sourceSubscribed=!1;return d}h(a,c);a.prototype._next=function(b){this.subscribeToSource()};a.prototype._error=function(b){this.unsubscribe();this.parent.error(b)};a.prototype._complete=function(){this.unsubscribe();this.subscribeToSource()};a.prototype.subscribeToSource=
-function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))};return a}(m),Nd=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new Md(a))};return c}(),Md=function(c){function a(b){return c.call(this,b)||this}h(a,c);a.prototype._next=function(b){b.observe(this.destination)};return a}(m),Pd=function(){function c(a,b){this.keySelector=a;this.flushes=b}c.prototype.call=function(a,b){return b.subscribe(new Od(a,this.keySelector,
-this.flushes))};return c}(),Od=function(c){function a(b,a,e){b=c.call(this,b)||this;b.keySelector=a;b.values=new Set;e&&b.add(p(b,e));return b}h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.values.clear()};a.prototype.notifyError=function(b,a){this._error(b)};a.prototype._next=function(b){this.keySelector?this._useKeySelector(b):this._finalizeNext(b,b)};a.prototype._useKeySelector=function(b){var a,c=this.destination;try{a=this.keySelector(b)}catch(f){c.error(f);return}this._finalizeNext(a,
-b)};a.prototype._finalizeNext=function(b,a){var c=this.values;c.has(b)||(c.add(b),this.destination.next(a))};return a}(q),kc=function(){function c(a,b){this.compare=a;this.keySelector=b}c.prototype.call=function(a,b){return b.subscribe(new Qd(a,this.compare,this.keySelector))};return c}(),Qd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.keySelector=e;b.hasKey=!1;"function"===typeof a&&(b.compare=a);return b}h(a,c);a.prototype.compare=function(b,a){return b===a};a.prototype._next=function(b){var a;
-try{var c=this.keySelector;a=c?c(b):b}catch(g){return this.destination.error(g)}c=!1;if(this.hasKey)try{var f=this.compare,c=f(this.key,a)}catch(g){return this.destination.error(g)}else this.hasKey=!0;c||(this.key=a,this.destination.next(b))};return a}(m),mc=function(){function c(a){this.errorFactory=a}c.prototype.call=function(a,b){return b.subscribe(new Rd(a,this.errorFactory))};return c}(),Rd=function(c){function a(b,a){b=c.call(this,b)||this;b.errorFactory=a;b.hasValue=!1;return b}h(a,c);a.prototype._next=
-function(b){this.hasValue=!0;this.destination.next(b)};a.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var b=void 0;try{b=this.errorFactory()}catch(d){b=d}this.destination.error(b)};return a}(m),nc=function(){function c(a){this.total=a;if(0>this.total)throw new X;}c.prototype.call=function(a,b){return b.subscribe(new Sd(a,this.total))};return c}(),Sd=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=
-this.total,c=++this.count;c<=a&&(this.destination.next(b),c===a&&(this.destination.complete(),this.unsubscribe()))};return a}(m),Ud=function(){function c(a,b,c){this.predicate=a;this.thisArg=b;this.source=c}c.prototype.call=function(a,b){return b.subscribe(new Td(a,this.predicate,this.thisArg,this.source))};return c}(),Td=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.predicate=a;b.thisArg=e;b.source=f;b.index=0;b.thisArg=e||b;return b}h(a,c);a.prototype.notifyComplete=function(b){this.destination.next(b);
-this.destination.complete()};a.prototype._next=function(b){var a=!1;try{a=this.predicate.call(this.thisArg,b,this.index++,this.source)}catch(e){this.destination.error(e);return}a||this.notifyComplete(!1)};a.prototype._complete=function(){this.notifyComplete(!0)};return a}(m),Wd=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new Vd(a))};return c}(),Vd=function(c){function a(b){b=c.call(this,b)||this;b.hasCompleted=!1;b.hasSubscription=!1;return b}h(a,c);a.prototype._next=
-function(b){this.hasSubscription||(this.hasSubscription=!0,this.add(p(this,b)))};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyComplete=function(b){this.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(q),oc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Xd(a,this.project))};return c}(),Xd=function(c){function a(b,a){b=c.call(this,b)||
-this;b.project=a;b.hasSubscription=!1;b.hasCompleted=!1;b.index=0;return b}h(a,c);a.prototype._next=function(b){this.hasSubscription||this.tryNext(b)};a.prototype.tryNext=function(b){var a,c=this.index++;try{a=this.project(b,c)}catch(f){this.destination.error(f);return}this.hasSubscription=!0;this._innerSub(a,b,c)};a.prototype._innerSub=function(b,a,c){a=new G(this,a,c);c=this.destination;c.add(a);b=p(this,b,void 0,void 0,a);b!==a&&c.add(b)};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||
-this.destination.complete();this.unsubscribe()};a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)};a.prototype.notifyError=function(b){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(q),Zd=function(){function c(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c}c.prototype.call=function(a,b){return b.subscribe(new Yd(a,this.project,this.concurrent,
-this.scheduler))};return c}(),Yd=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.project=a;b.concurrent=e;b.scheduler=f;b.index=0;b.active=0;b.hasCompleted=!1;e<Number.POSITIVE_INFINITY&&(b.buffer=[]);return b}h(a,c);a.dispatch=function(b){b.subscriber.subscribeToProjection(b.result,b.value,b.index)};a.prototype._next=function(b){var c=this.destination;if(c.closed)this._complete();else{var e=this.index++;if(this.active<this.concurrent){c.next(b);try{var f=this.project,g=f(b,e);this.scheduler?
-this.destination.add(this.scheduler.schedule(a.dispatch,0,{subscriber:this,result:g,value:b,index:e})):this.subscribeToProjection(g,b,e)}catch(l){c.error(l)}}else this.buffer.push(b)}};a.prototype.subscribeToProjection=function(b,a,c){this.active++;this.destination.add(p(this,b,a,c))};a.prototype._complete=function(){(this.hasCompleted=!0,0===this.active)&&this.destination.complete();this.unsubscribe()};a.prototype.notifyNext=function(b,a,c,f,g){this._next(a)};a.prototype.notifyComplete=function(b){var a=
-this.buffer;this.destination.remove(b);this.active--;a&&0<a.length&&this._next(a.shift());this.hasCompleted&&0===this.active&&this.destination.complete()};return a}(q),ae=function(){function c(a){this.callback=a}c.prototype.call=function(a,b){return b.subscribe(new $d(a,this.callback))};return c}(),$d=function(c){function a(b,a){b=c.call(this,b)||this;b.add(new t(a));return b}h(a,c);return a}(m),Cb=function(){function c(a,b,c,e){this.predicate=a;this.source=b;this.yieldIndex=c;this.thisArg=e}c.prototype.call=
-function(a,b){return b.subscribe(new be(a,this.predicate,this.source,this.yieldIndex,this.thisArg))};return c}(),be=function(c){function a(b,a,e,f,g){b=c.call(this,b)||this;b.predicate=a;b.source=e;b.yieldIndex=f;b.thisArg=g;b.index=0;return b}h(a,c);a.prototype.notifyComplete=function(b){var a=this.destination;a.next(b);a.complete();this.unsubscribe()};a.prototype._next=function(b){var a=this.predicate,c=this.thisArg,f=this.index++;try{a.call(c||this,b,f,this.source)&&this.notifyComplete(this.yieldIndex?
-f:b)}catch(g){this.destination.error(g)}};a.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)};return a}(m),de=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new ce(a))};return c}(),ce=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype._next=function(b){};return a}(m),fe=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new ee(a))};return c}(),ee=function(c){function a(b){return c.call(this,
-b)||this}h(a,c);a.prototype.notifyComplete=function(b){var a=this.destination;a.next(b);a.complete()};a.prototype._next=function(b){this.notifyComplete(!1)};a.prototype._complete=function(){this.notifyComplete(!0)};return a}(m),pc=function(){function c(a){this.total=a;if(0>this.total)throw new X;}c.prototype.call=function(a,b){return b.subscribe(new ge(a,this.total))};return c}(),ge=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.ring=[];b.count=0;return b}h(a,c);a.prototype._next=
-function(b){var a=this.ring,c=this.total,f=this.count++;a.length<c?a.push(b):a[f%c]=b};a.prototype._complete=function(){var b=this.destination,a=this.count;if(0<a)for(var c=this.count>=this.total?this.total:this.count,f=this.ring,g=0;g<c;g++){var l=a++%c;b.next(f[l])}b.complete()};return a}(m),ie=function(){function c(a){this.value=a}c.prototype.call=function(a,b){return b.subscribe(new he(a,this.value))};return c}(),he=function(c){function a(b,a){b=c.call(this,b)||this;b.value=a;return b}h(a,c);
-a.prototype._next=function(b){this.destination.next(this.value)};return a}(m),ke=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new je(a))};return c}(),je=function(c){function a(b){return c.call(this,b)||this}h(a,c);a.prototype._next=function(b){this.destination.next(w.createNext(b))};a.prototype._error=function(b){var a=this.destination;a.next(w.createError(b));a.complete()};a.prototype._complete=function(){var b=this.destination;b.next(w.createComplete());b.complete()};
-return a}(m),qc=function(){function c(a,b,c){void 0===c&&(c=!1);this.accumulator=a;this.seed=b;this.hasSeed=c}c.prototype.call=function(a,b){return b.subscribe(new le(a,this.accumulator,this.seed,this.hasSeed))};return c}(),le=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.accumulator=a;b._seed=e;b.hasSeed=f;b.index=0;return b}h(a,c);Object.defineProperty(a.prototype,"seed",{get:function(){return this._seed},set:function(b){this.hasSeed=!0;this._seed=b},enumerable:!0,configurable:!0});a.prototype._next=
-function(b){if(this.hasSeed)return this._tryNext(b);this.seed=b;this.destination.next(b)};a.prototype._tryNext=function(b){var a=this.index++,c;try{c=this.accumulator(this.seed,b,a)}catch(f){this.destination.error(f)}this.seed=c;this.destination.next(c)};return a}(m),ne=function(){function c(a,b,c){this.accumulator=a;this.seed=b;this.concurrent=c}c.prototype.call=function(a,b){return b.subscribe(new me(a,this.accumulator,this.seed,this.concurrent))};return c}(),me=function(c){function a(b,a,e,f){b=
-c.call(this,b)||this;b.accumulator=a;b.acc=e;b.concurrent=f;b.hasValue=!1;b.hasCompleted=!1;b.buffer=[];b.active=0;b.index=0;return b}h(a,c);a.prototype._next=function(b){if(this.active<this.concurrent){var a=this.index++,c=this.destination,f=void 0;try{var g=this.accumulator,f=g(this.acc,b,a)}catch(l){return c.error(l)}this.active++;this._innerSub(f,b,a)}else this.buffer.push(b)};a.prototype._innerSub=function(b,a,c){a=new G(this,a,c);c=this.destination;c.add(a);b=p(this,b,void 0,void 0,a);b!==a&&
-c.add(b)};a.prototype._complete=function(){this.hasCompleted=!0;0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete());this.unsubscribe()};a.prototype.notifyNext=function(b,a,c,f,g){b=this.destination;this.acc=a;this.hasValue=!0;b.next(a)};a.prototype.notifyComplete=function(b){var a=this.buffer;this.destination.remove(b);this.active--;0<a.length?this._next(a.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),
-this.destination.complete())};return a}(q),rc=function(){function c(a,b){this.subjectFactory=a;this.selector=b}c.prototype.call=function(a,b){var c=this.selector,e=this.subjectFactory();a=c(e).subscribe(a);a.add(b.subscribe(e));return a};return c}(),pe=function(){function c(a){this.nextSources=a}c.prototype.call=function(a,b){return b.subscribe(new oe(a,this.nextSources))};return c}(),oe=function(c){function a(b,a){var d=c.call(this,b)||this;d.destination=b;d.nextSources=a;return d}h(a,c);a.prototype.notifyError=
-function(b,a){this.subscribeToNextSource()};a.prototype.notifyComplete=function(b){this.subscribeToNextSource()};a.prototype._error=function(b){this.subscribeToNextSource();this.unsubscribe()};a.prototype._complete=function(){this.subscribeToNextSource();this.unsubscribe()};a.prototype.subscribeToNextSource=function(){var b=this.nextSources.shift();if(b){var a=new G(this,void 0,void 0),c=this.destination;c.add(a);b=p(this,b,void 0,void 0,a);b!==a&&c.add(b)}else this.destination.complete()};return a}(q),
-re=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new qe(a))};return c}(),qe=function(c){function a(b){b=c.call(this,b)||this;b.hasPrev=!1;return b}h(a,c);a.prototype._next=function(b){var a;this.hasPrev?a=[this.prev,b]:this.hasPrev=!0;this.prev=b;a&&this.destination.next(a)};return a}(m),Db=function(){function c(a,b){this.count=a;this.source=b}c.prototype.call=function(a,b){return b.subscribe(new se(a,this.count,this.source))};return c}(),se=function(c){function a(b,a,
-e){b=c.call(this,b)||this;b.count=a;b.source=e;return b}h(a,c);a.prototype.complete=function(){if(!this.isStopped){var b=this.source,a=this.count;if(0===a)return c.prototype.complete.call(this);-1<a&&(this.count=a-1);b.subscribe(this._unsubscribeAndRecycle())}};return a}(m),ue=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){return b.subscribe(new te(a,this.notifier,b))};return c}(),te=function(c){function a(b,a,e){b=c.call(this,b)||this;b.notifier=a;b.source=e;b.sourceIsBeingSubscribedTo=
-!0;return b}h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.sourceIsBeingSubscribedTo=!0;this.source.subscribe(this)};a.prototype.notifyComplete=function(b){if(!1===this.sourceIsBeingSubscribedTo)return c.prototype.complete.call(this)};a.prototype.complete=function(){this.sourceIsBeingSubscribedTo=!1;if(!this.isStopped){this.retries||this.subscribeToRetries();if(!this.retriesSubscription||this.retriesSubscription.closed)return c.prototype.complete.call(this);this._unsubscribeAndRecycle();this.notifications.next()}};
-a.prototype._unsubscribe=function(){var b=this.notifications,a=this.retriesSubscription;b&&(b.unsubscribe(),this.notifications=null);a&&(a.unsubscribe(),this.retriesSubscription=null);this.retries=null};a.prototype._unsubscribeAndRecycle=function(){var b=this._unsubscribe;this._unsubscribe=null;c.prototype._unsubscribeAndRecycle.call(this);this._unsubscribe=b;return this};a.prototype.subscribeToRetries=function(){this.notifications=new v;var b;try{var a=this.notifier;b=a(this.notifications)}catch(e){return c.prototype.complete.call(this)}this.retries=
-b;this.retriesSubscription=p(this,b)};return a}(q),we=function(){function c(a,b){this.count=a;this.source=b}c.prototype.call=function(a,b){return b.subscribe(new ve(a,this.count,this.source))};return c}(),ve=function(c){function a(b,a,e){b=c.call(this,b)||this;b.count=a;b.source=e;return b}h(a,c);a.prototype.error=function(b){if(!this.isStopped){var a=this.source,e=this.count;if(0===e)return c.prototype.error.call(this,b);-1<e&&(this.count=e-1);a.subscribe(this._unsubscribeAndRecycle())}};return a}(m),
-ye=function(){function c(a,b){this.notifier=a;this.source=b}c.prototype.call=function(a,b){return b.subscribe(new xe(a,this.notifier,this.source))};return c}(),xe=function(c){function a(b,a,e){b=c.call(this,b)||this;b.notifier=a;b.source=e;return b}h(a,c);a.prototype.error=function(b){if(!this.isStopped){var a=this.errors,e=this.retries,f=this.retriesSubscription;if(e)this.retriesSubscription=this.errors=null;else{a=new v;try{var g=this.notifier,e=g(a)}catch(l){return c.prototype.error.call(this,
-l)}f=p(this,e)}this._unsubscribeAndRecycle();this.errors=a;this.retries=e;this.retriesSubscription=f;a.next(b)}};a.prototype._unsubscribe=function(){var b=this.errors,a=this.retriesSubscription;b&&(b.unsubscribe(),this.errors=null);a&&(a.unsubscribe(),this.retriesSubscription=null);this.retries=null};a.prototype.notifyNext=function(b,a,c,f,g){b=this._unsubscribe;this._unsubscribe=null;this._unsubscribeAndRecycle();this._unsubscribe=b;this.source.subscribe(this)};return a}(q),Ae=function(){function c(a){this.notifier=
-a}c.prototype.call=function(a,b){a=new ze(a);b=b.subscribe(a);b.add(p(a,this.notifier));return b};return c}(),ze=function(c){function a(){var b=null!==c&&c.apply(this,arguments)||this;b.hasValue=!1;return b}h(a,c);a.prototype._next=function(b){this.value=b;this.hasValue=!0};a.prototype.notifyNext=function(b,a,c,f,g){this.emitValue()};a.prototype.notifyComplete=function(){this.emitValue()};a.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))};return a}(q),
-Ce=function(){function c(a,b){this.period=a;this.scheduler=b}c.prototype.call=function(a,b){return b.subscribe(new Be(a,this.period,this.scheduler))};return c}(),Be=function(c){function a(b,a,e){b=c.call(this,b)||this;b.period=a;b.scheduler=e;b.hasValue=!1;b.add(e.schedule(uc,a,{subscriber:b,period:a}));return b}h(a,c);a.prototype._next=function(b){this.lastValue=b;this.hasValue=!0};a.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))};return a}(m),
-Ee=function(){function c(a,b){this.compareTo=a;this.comparator=b}c.prototype.call=function(a,b){return b.subscribe(new De(a,this.compareTo,this.comparator))};return c}(),De=function(c){function a(b,a,e){var d=c.call(this,b)||this;d.compareTo=a;d.comparator=e;d._a=[];d._b=[];d._oneComplete=!1;d.destination.add(a.subscribe(new Fe(b,d)));return d}h(a,c);a.prototype._next=function(b){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(b),this.checkValues())};a.prototype._complete=function(){this._oneComplete?
-this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0;this.unsubscribe()};a.prototype.checkValues=function(){for(var b=this._a,a=this._b,c=this.comparator;0<b.length&&0<a.length;){var f=b.shift(),g=a.shift(),l=!1;try{l=c?c(f,g):f===g}catch(u){this.destination.error(u)}l||this.emit(!1)}};a.prototype.emit=function(b){var a=this.destination;a.next(b);a.complete()};a.prototype.nextB=function(b){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(b),this.checkValues())};
-a.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0};return a}(m),Fe=function(c){function a(b,a){b=c.call(this,b)||this;b.parent=a;return b}h(a,c);a.prototype._next=function(b){this.parent.nextB(b)};a.prototype._error=function(b){this.parent.error(b);this.unsubscribe()};a.prototype._complete=function(){this.parent.completeB();this.unsubscribe()};return a}(m),He=function(){function c(a,b){this.predicate=a;this.source=b}c.prototype.call=
-function(a,b){return b.subscribe(new Ge(a,this.predicate,this.source))};return c}(),Ge=function(c){function a(b,a,e){b=c.call(this,b)||this;b.predicate=a;b.source=e;b.seenValue=!1;b.index=0;return b}h(a,c);a.prototype.applySingleValue=function(b){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=b)};a.prototype._next=function(b){var a=this.index++;this.predicate?this.tryNext(b,a):this.applySingleValue(b)};a.prototype.tryNext=function(b,
-a){try{this.predicate(b,a,this.source)&&this.applySingleValue(b)}catch(e){this.destination.error(e)}};a.prototype._complete=function(){var b=this.destination;0<this.index?(b.next(this.seenValue?this.singleValue:void 0),b.complete()):b.error(new ca)};return a}(m),Je=function(){function c(a){this.total=a}c.prototype.call=function(a,b){return b.subscribe(new Ie(a,this.total))};return c}(),Ie=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}h(a,c);a.prototype._next=function(b){++this.count>
-this.total&&this.destination.next(b)};return a}(m),Le=function(){function c(a){this._skipCount=a;if(0>this._skipCount)throw new X;}c.prototype.call=function(a,b){return 0===this._skipCount?b.subscribe(new m(a)):b.subscribe(new Ke(a,this._skipCount))};return c}(),Ke=function(c){function a(b,a){b=c.call(this,b)||this;b._skipCount=a;b._count=0;b._ring=Array(a);return b}h(a,c);a.prototype._next=function(b){var a=this._skipCount,c=this._count++;if(c<a)this._ring[c]=b;else{var a=c%a,c=this._ring,f=c[a];
-c[a]=b;this.destination.next(f)}};return a}(m),Ne=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){return b.subscribe(new Me(a,this.notifier))};return c}(),Me=function(c){function a(a,d){a=c.call(this,a)||this;a.hasValue=!1;var b=new G(a,void 0,void 0);a.add(b);a.innerSubscription=b;d=p(a,d,void 0,void 0,b);d!==b&&(a.add(d),a.innerSubscription=d);return a}h(a,c);a.prototype._next=function(a){this.hasValue&&c.prototype._next.call(this,a)};a.prototype.notifyNext=function(a,c,
-e,f,g){this.hasValue=!0;this.innerSubscription&&this.innerSubscription.unsubscribe()};a.prototype.notifyComplete=function(){};return a}(q),Pe=function(){function c(a){this.predicate=a}c.prototype.call=function(a,b){return b.subscribe(new Oe(a,this.predicate))};return c}(),Oe=function(c){function a(a,d){a=c.call(this,a)||this;a.predicate=d;a.skipping=!0;a.index=0;return a}h(a,c);a.prototype._next=function(a){var b=this.destination;this.skipping&&this.tryCallPredicate(a);this.skipping||b.next(a)};a.prototype.tryCallPredicate=
-function(a){try{this.skipping=!!this.predicate(a,this.index++)}catch(d){this.destination.error(d)}};return a}(m),Qe=function(c){function a(a,d,e){void 0===d&&(d=0);void 0===e&&(e=pa);var b=c.call(this)||this;b.source=a;b.delayTime=d;b.scheduler=e;if(!V(d)||0>d)b.delayTime=0;e&&"function"===typeof e.schedule||(b.scheduler=pa);return b}h(a,c);a.create=function(b,c,e){void 0===c&&(c=0);void 0===e&&(e=pa);return new a(b,c,e)};a.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))};a.prototype._subscribe=
-function(b){return this.scheduler.schedule(a.dispatch,this.delayTime,{source:this.source,subscriber:b})};return a}(n),Re=function(){function c(a,b){this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return(new Qe(b,this.delay,this.scheduler)).subscribe(a)};return c}(),xc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Se(a,this.project))};return c}(),Se=function(c){function a(a,d){a=c.call(this,a)||this;a.project=d;a.index=0;return a}h(a,c);
-a.prototype._next=function(a){var b,c=this.index++;try{b=this.project(a,c)}catch(f){this.destination.error(f);return}this._innerSub(b,a,c)};a.prototype._innerSub=function(a,c,e){var b=this.innerSubscription;b&&b.unsubscribe();c=new G(this,c,e);e=this.destination;e.add(c);this.innerSubscription=p(this,a,void 0,void 0,c);this.innerSubscription!==c&&e.add(this.innerSubscription)};a.prototype._complete=function(){var a=this.innerSubscription;a&&!a.closed||c.prototype._complete.call(this);this.unsubscribe()};
-a.prototype._unsubscribe=function(){this.innerSubscription=null};a.prototype.notifyComplete=function(a){this.destination.remove(a);this.innerSubscription=null;this.isStopped&&c.prototype._complete.call(this)};a.prototype.notifyNext=function(a,c,e,f,g){this.destination.next(c)};return a}(q),Ue=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){a=new Te(a);var c=p(a,this.notifier);return c&&!a.seenValue?(a.add(c),b.subscribe(a)):a};return c}(),Te=function(c){function a(a){a=c.call(this,
-a)||this;a.seenValue=!1;return a}h(a,c);a.prototype.notifyNext=function(a,c,e,f,g){this.seenValue=!0;this.complete()};a.prototype.notifyComplete=function(){};return a}(q),We=function(){function c(a,b){this.predicate=a;this.inclusive=b}c.prototype.call=function(a,b){return b.subscribe(new Ve(a,this.predicate,this.inclusive))};return c}(),Ve=function(c){function a(a,d,e){a=c.call(this,a)||this;a.predicate=d;a.inclusive=e;a.index=0;return a}h(a,c);a.prototype._next=function(a){var b=this.destination,
-c;try{c=this.predicate(a,this.index++)}catch(f){b.error(f);return}this.nextOrComplete(a,c)};a.prototype.nextOrComplete=function(a,c){var b=this.destination;c?b.next(a):(this.inclusive&&b.next(a),b.complete())};return a}(m),Ye=function(){function c(a,b,c){this.nextOrObserver=a;this.error=b;this.complete=c}c.prototype.call=function(a,b){return b.subscribe(new Xe(a,this.nextOrObserver,this.error,this.complete))};return c}(),Xe=function(c){function a(a,d,e,f){a=c.call(this,a)||this;a._tapNext=D;a._tapError=
-D;a._tapComplete=D;a._tapError=e||D;a._tapComplete=f||D;P(d)?(a._context=a,a._tapNext=d):d&&(a._context=d,a._tapNext=d.next||D,a._tapError=d.error||D,a._tapComplete=d.complete||D);return a}h(a,c);a.prototype._next=function(a){try{this._tapNext.call(this._context,a)}catch(d){this.destination.error(d);return}this.destination.next(a)};a.prototype._error=function(a){try{this._tapError.call(this._context,a)}catch(d){this.destination.error(d);return}this.destination.error(a)};a.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(b){this.destination.error(b);
-return}return this.destination.complete()};return a}(m),Eb={leading:!0,trailing:!1},$e=function(){function c(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}c.prototype.call=function(a,b){return b.subscribe(new Ze(a,this.durationSelector,this.leading,this.trailing))};return c}(),Ze=function(c){function a(a,d,e,f){var b=c.call(this,a)||this;b.destination=a;b.durationSelector=d;b._leading=e;b._trailing=f;b._hasValue=!1;return b}h(a,c);a.prototype._next=function(a){this._hasValue=!0;this._sendValue=
-a;this._throttled||(this._leading?this.send():this.throttle(a))};a.prototype.send=function(){var a=this._sendValue;this._hasValue&&(this.destination.next(a),this.throttle(a));this._hasValue=!1;this._sendValue=null};a.prototype.throttle=function(a){(a=this.tryDurationSelector(a))&&this.add(this._throttled=p(this,a))};a.prototype.tryDurationSelector=function(a){try{return this.durationSelector(a)}catch(d){return this.destination.error(d),null}};a.prototype.throttlingDone=function(){var a=this._throttled,
-c=this._trailing;a&&a.unsubscribe();this._throttled=null;c&&this.send()};a.prototype.notifyNext=function(a,c,e,f,g){this.throttlingDone()};a.prototype.notifyComplete=function(){this.throttlingDone()};return a}(q),bf=function(){function c(a,b,c,e){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=e}c.prototype.call=function(a,b){return b.subscribe(new af(a,this.duration,this.scheduler,this.leading,this.trailing))};return c}(),af=function(c){function a(a,d,e,f,g){a=c.call(this,a)||this;
-a.duration=d;a.scheduler=e;a.leading=f;a.trailing=g;a._hasTrailingValue=!1;a._trailingValue=null;return a}h(a,c);a.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(yc,this.duration,{subscriber:this})),this.leading?this.destination.next(a):this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0))};a.prototype._complete=function(){this._hasTrailingValue&&this.destination.next(this._trailingValue);
-this.destination.complete()};a.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return a}(m),cf=function(){return function(c,a){this.value=c;this.interval=a}}(),zc=function(){function c(a,b,c,e){this.waitFor=a;this.absoluteTimeout=b;this.withObservable=c;this.scheduler=e}c.prototype.call=function(a,b){return b.subscribe(new df(a,
-this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))};return c}(),df=function(c){function a(a,d,e,f,g){a=c.call(this,a)||this;a.absoluteTimeout=d;a.waitFor=e;a.withObservable=f;a.scheduler=g;a.action=null;a.scheduleTimeout();return a}h(a,c);a.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(p(a,b))};a.prototype.scheduleTimeout=function(){var b=this.action;b?this.action=b.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(a.dispatchTimeout,
-this.waitFor,this))};a.prototype._next=function(a){this.absoluteTimeout||this.scheduleTimeout();c.prototype._next.call(this,a)};a.prototype._unsubscribe=function(){this.withObservable=this.scheduler=this.action=null};return a}(q),ef=function(){return function(c,a){this.value=c;this.timestamp=a}}(),gf=function(){function c(a){this.windowBoundaries=a}c.prototype.call=function(a,b){a=new ff(a);b=b.subscribe(a);b.closed||a.add(p(a,this.windowBoundaries));return b};return c}(),ff=function(c){function a(a){var b=
-c.call(this,a)||this;b.window=new v;a.next(b.window);return b}h(a,c);a.prototype.notifyNext=function(a,c,e,f,g){this.openWindow()};a.prototype.notifyError=function(a,c){this._error(a)};a.prototype.notifyComplete=function(a){this._complete()};a.prototype._next=function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a)};a.prototype._complete=function(){this.window.complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.window=
-null};a.prototype.openWindow=function(){var a=this.window;a&&a.complete();var a=this.destination,c=this.window=new v;a.next(c)};return a}(q),jf=function(){function c(a,b){this.windowSize=a;this.startWindowEvery=b}c.prototype.call=function(a,b){return b.subscribe(new hf(a,this.windowSize,this.startWindowEvery))};return c}(),hf=function(c){function a(a,d,e){var b=c.call(this,a)||this;b.destination=a;b.windowSize=d;b.startWindowEvery=e;b.windows=[new v];b.count=0;a.next(b.windows[0]);return b}h(a,c);
-a.prototype._next=function(a){for(var b=0<this.startWindowEvery?this.startWindowEvery:this.windowSize,c=this.destination,f=this.windowSize,g=this.windows,l=g.length,h=0;h<l&&!this.closed;h++)g[h].next(a);a=this.count-f+1;0<=a&&0===a%b&&!this.closed&&g.shift().complete();0!==++this.count%b||this.closed||(b=new v,g.push(b),c.next(b))};a.prototype._error=function(a){var b=this.windows;if(b)for(;0<b.length&&!this.closed;)b.shift().error(a);this.destination.error(a)};a.prototype._complete=function(){var a=
-this.windows;if(a)for(;0<a.length&&!this.closed;)a.shift().complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.count=0;this.windows=null};return a}(m),lf=function(){function c(a,b,c,e){this.windowTimeSpan=a;this.windowCreationInterval=b;this.maxWindowSize=c;this.scheduler=e}c.prototype.call=function(a,b){return b.subscribe(new kf(a,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))};return c}(),mf=function(c){function a(){var a=null!==
-c&&c.apply(this,arguments)||this;a._numberOfNextedValues=0;return a}h(a,c);a.prototype.next=function(a){this._numberOfNextedValues++;c.prototype.next.call(this,a)};Object.defineProperty(a.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0});return a}(v),kf=function(c){function a(a,d,e,f,g){var b=c.call(this,a)||this;b.destination=a;b.windowTimeSpan=d;b.windowCreationInterval=e;b.maxWindowSize=f;b.scheduler=g;b.windows=[];a=b.openWindow();
-null!==e&&0<=e?(f={windowTimeSpan:d,windowCreationInterval:e,subscriber:b,scheduler:g},b.add(g.schedule(lb,d,{subscriber:b,window:a,context:null})),b.add(g.schedule(Cc,e,f))):b.add(g.schedule(Bc,d,{subscriber:b,window:a,windowTimeSpan:d}));return b}h(a,c);a.prototype._next=function(a){for(var b=this.windows,c=b.length,f=0;f<c;f++){var g=b[f];g.closed||(g.next(a),g.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(g))}};a.prototype._error=function(a){for(var b=this.windows;0<b.length;)b.shift().error(a);
-this.destination.error(a)};a.prototype._complete=function(){for(var a=this.windows;0<a.length;){var c=a.shift();c.closed||c.complete()}this.destination.complete()};a.prototype.openWindow=function(){var a=new mf;this.windows.push(a);this.destination.next(a);return a};a.prototype.closeWindow=function(a){a.complete();var b=this.windows;b.splice(b.indexOf(a),1)};return a}(m),of=function(){function c(a,b){this.openings=a;this.closingSelector=b}c.prototype.call=function(a,b){return b.subscribe(new nf(a,
-this.openings,this.closingSelector))};return c}(),nf=function(c){function a(a,d,e){a=c.call(this,a)||this;a.openings=d;a.closingSelector=e;a.contexts=[];a.add(a.openSubscription=p(a,d,d));return a}h(a,c);a.prototype._next=function(a){var b=this.contexts;if(b)for(var c=b.length,f=0;f<c;f++)b[f].window.next(a)};a.prototype._error=function(a){var b=this.contexts;this.contexts=null;if(b)for(var e=b.length,f=-1;++f<e;){var g=b[f];g.window.error(a);g.subscription.unsubscribe()}c.prototype._error.call(this,
-a)};a.prototype._complete=function(){var a=this.contexts;this.contexts=null;if(a)for(var d=a.length,e=-1;++e<d;){var f=a[e];f.window.complete();f.subscription.unsubscribe()}c.prototype._complete.call(this)};a.prototype._unsubscribe=function(){var a=this.contexts;this.contexts=null;if(a)for(var c=a.length,e=-1;++e<c;){var f=a[e];f.window.unsubscribe();f.subscription.unsubscribe()}};a.prototype.notifyNext=function(a,c,e,f,g){if(a===this.openings){a=void 0;try{var b=this.closingSelector;a=b(c)}catch(u){return this.error(u)}c=
-new v;b=new t;e={window:c,subscription:b};this.contexts.push(e);a=p(this,a,e);a.closed?this.closeWindow(this.contexts.length-1):(a.context=e,b.add(a));this.destination.next(c)}else this.closeWindow(this.contexts.indexOf(a))};a.prototype.notifyError=function(a){this.error(a)};a.prototype.notifyComplete=function(a){a!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(a.context))};a.prototype.closeWindow=function(a){if(-1!==a){var b=this.contexts,c=b[a],f=c.window,c=c.subscription;b.splice(a,
-1);f.complete();c.unsubscribe()}};return a}(q),qf=function(){function c(a){this.closingSelector=a}c.prototype.call=function(a,b){return b.subscribe(new pf(a,this.closingSelector))};return c}(),pf=function(c){function a(a,d){var b=c.call(this,a)||this;b.destination=a;b.closingSelector=d;b.openWindow();return b}h(a,c);a.prototype.notifyNext=function(a,c,e,f,g){this.openWindow(g)};a.prototype.notifyError=function(a,c){this._error(a)};a.prototype.notifyComplete=function(a){this.openWindow(a)};a.prototype._next=
-function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a);this.unsubscribeClosingNotification()};a.prototype._complete=function(){this.window.complete();this.destination.complete();this.unsubscribeClosingNotification()};a.prototype.unsubscribeClosingNotification=function(){this.closingNotification&&this.closingNotification.unsubscribe()};a.prototype.openWindow=function(a){void 0===a&&(a=null);a&&(this.remove(a),a.unsubscribe());(a=this.window)&&
-a.complete();a=this.window=new v;this.destination.next(a);var b;try{var c=this.closingSelector;b=c()}catch(f){this.destination.error(f);this.window.error(f);return}this.add(this.closingNotification=p(this,b))};return a}(q),sf=function(){function c(a,b){this.observables=a;this.project=b}c.prototype.call=function(a,b){return b.subscribe(new rf(a,this.observables,this.project))};return c}(),rf=function(c){function a(a,d,e){a=c.call(this,a)||this;a.observables=d;a.project=e;a.toRespond=[];e=d.length;
-a.values=Array(e);for(var b=0;b<e;b++)a.toRespond.push(b);for(b=0;b<e;b++){var g=d[b];a.add(p(a,g,g,b))}return a}h(a,c);a.prototype.notifyNext=function(a,c,e,f,g){this.values[e]=c;a=this.toRespond;0<a.length&&(e=a.indexOf(e),-1!==e&&a.splice(e,1))};a.prototype.notifyComplete=function(){};a.prototype._next=function(a){0===this.toRespond.length&&(a=[a].concat(this.values),this.project?this._tryProject(a):this.destination.next(a))};a.prototype._tryProject=function(a){var b;try{b=this.project.apply(this,
-a)}catch(e){this.destination.error(e);return}this.destination.next(b)};return a}(q),tf=Object.freeze({audit:eb,auditTime:function(c,a){void 0===a&&(a=y);return eb(function(){return bb(c,a)})},buffer:function(c){return function(a){return a.lift(new md(c))}},bufferCount:function(c,a){void 0===a&&(a=null);return function(b){return b.lift(new pd(c,a))}},bufferTime:function(c){var a=arguments.length,b=y;A(arguments[arguments.length-1])&&(b=arguments[arguments.length-1],a--);var d=null;2<=a&&(d=arguments[1]);
-var e=Number.POSITIVE_INFINITY;3<=a&&(e=arguments[2]);return function(a){return a.lift(new rd(c,d,e,b))}},bufferToggle:function(c,a){return function(b){return b.lift(new ud(c,a))}},bufferWhen:function(c){return function(a){return a.lift(new wd(c))}},catchError:function(c){return function(a){var b=new yd(c);a=a.lift(b);return b.caught=a}},combineAll:function(c){return function(a){return a.lift(new Ha(c))}},combineLatest:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];var b=null;
-"function"===typeof c[c.length-1]&&(b=c.pop());1===c.length&&x(c[0])&&(c=c[0].slice());return function(a){return a.lift.call(F([a].concat(c)),new Ha(b))}},concat:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){return a.lift.call(aa.apply(void 0,[a].concat(c)))}},concatAll:Va,concatMap:hb,concatMapTo:function(c,a){return hb(function(){return c},a)},count:function(c){return function(a){return a.lift(new Ad(c,a))}},debounce:function(c){return function(a){return a.lift(new Cd(c))}},
-debounceTime:function(c,a){void 0===a&&(a=y);return function(b){return b.lift(new Ed(c,a))}},defaultIfEmpty:ba,delay:function(c,a){void 0===a&&(a=y);var b=c instanceof Date&&!isNaN(+c)?+c-a.now():Math.abs(c);return function(c){return c.lift(new Hd(b,a))}},delayWhen:function(c,a){return a?function(b){return(new Ld(b,a)).lift(new Bb(c))}:function(a){return a.lift(new Bb(c))}},dematerialize:function(){return function(c){return c.lift(new Nd)}},distinct:function(c,a){return function(b){return b.lift(new Pd(c,
-a))}},distinctUntilChanged:ib,distinctUntilKeyChanged:function(c,a){return ib(function(b,d){return a?a(b[c],d[c]):b[c]===d[c]})},elementAt:function(c,a){if(0>c)throw new X;var b=2<=arguments.length;return function(d){return d.pipe(H(function(a,b){return b===c}),Ba(1),b?ba(a):ja(function(){return new X}))}},endWith:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){return aa(a,ga.apply(void 0,c))}},every:function(c,a){return function(b){return b.lift(new Ud(c,a,
-b))}},exhaust:function(){return function(c){return c.lift(new Wd)}},exhaustMap:jb,expand:function(c,a,b){void 0===a&&(a=Number.POSITIVE_INFINITY);void 0===b&&(b=void 0);a=1>(a||0)?Number.POSITIVE_INFINITY:a;return function(d){return d.lift(new Zd(c,a,b))}},filter:H,finalize:function(c){return function(a){return a.lift(new ae(c))}},find:function(c,a){if("function"!==typeof c)throw new TypeError("predicate is not a function");return function(b){return b.lift(new Cb(c,b,!1,a))}},findIndex:function(c,
-a){return function(b){return b.lift(new Cb(c,b,!0,a))}},first:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?H(function(a,b){return c(a,b,d)}):J,Ba(1),b?ba(a):ja(function(){return new ca}))}},groupBy:function(c,a,b,d){return function(e){return e.lift(new Nc(c,a,b,d))}},ignoreElements:function(){return function(c){return c.lift(new de)}},isEmpty:function(){return function(c){return c.lift(new fe)}},last:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?
-H(function(a,b){return c(a,b,d)}):J,ka(1),b?ba(a):ja(function(){return new ca}))}},map:B,mapTo:function(c){return function(a){return a.lift(new ie(c))}},materialize:function(){return function(c){return c.lift(new ke)}},max:function(c){return ma("function"===typeof c?function(a,b){return 0<c(a,b)?a:b}:function(a,b){return a>b?a:b})},merge:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){return a.lift.call(Za.apply(void 0,[a].concat(c)))}},mergeAll:ya,mergeMap:L,
-flatMap:L,mergeMapTo:function(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return L(function(){return c},a,b);"number"===typeof a&&(b=a);return L(function(){return c},b)},mergeScan:function(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);return function(d){return d.lift(new ne(c,a,b))}},min:function(c){return ma("function"===typeof c?function(a,b){return 0>c(a,b)?a:b}:function(a,b){return a<b?a:b})},multicast:M,observeOn:function(c,a){void 0===a&&(a=0);return function(b){return b.lift(new Rc(c,
-a))}},onErrorResumeNext:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];1===c.length&&x(c[0])&&(c=c[0]);return function(a){return a.lift(new pe(c))}},pairwise:function(){return function(c){return c.lift(new re)}},partition:function(c,a){return function(b){return[H(c,a)(b),H($a(c,a))(b)]}},pluck:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];var b=c.length;if(0===b)throw Error("list of properties cannot be empty.");return function(a){return B(tc(c,b))(a)}},
-publish:function(c){return c?M(function(){return new v},c):M(new v)},publishBehavior:function(c){return function(a){return M(new tb(c))(a)}},publishLast:function(){return function(c){return M(new T)(c)}},publishReplay:function(c,a,b,d){b&&"function"!==typeof b&&(d=b);var e="function"===typeof b?b:void 0,f=new W(c,a,d);return function(a){return M(function(){return f},e)(a)}},race:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){1===c.length&&x(c[0])&&(c=c[0]);
-return a.lift.call(ab.apply(void 0,[a].concat(c)))}},reduce:ma,repeat:function(c){void 0===c&&(c=-1);return function(a){return 0===c?R():0>c?a.lift(new Db(-1,a)):a.lift(new Db(c-1,a))}},repeatWhen:function(c){return function(a){return a.lift(new ue(c))}},retry:function(c){void 0===c&&(c=-1);return function(a){return a.lift(new we(c,a))}},retryWhen:function(c){return function(a){return a.lift(new ye(c,a))}},refCount:ua,sample:function(c){return function(a){return a.lift(new Ae(c))}},sampleTime:function(c,
-a){void 0===a&&(a=y);return function(b){return b.lift(new Ce(c,a))}},scan:la,sequenceEqual:function(c,a){return function(b){return b.lift(new Ee(c,a))}},share:function(){return function(c){return ua()(M(vc)(c))}},shareReplay:function(c,a,b){var d;d=c&&"object"===typeof c?c:{bufferSize:c,windowTime:a,refCount:!1,scheduler:b};return function(a){return a.lift(wc(d))}},single:function(c){return function(a){return a.lift(new He(c,a))}},skip:function(c){return function(a){return a.lift(new Je(c))}},skipLast:function(c){return function(a){return a.lift(new Le(c))}},
-skipUntil:function(c){return function(a){return a.lift(new Ne(c))}},skipWhile:function(c){return function(a){return a.lift(new Pe(c))}},startWith:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];var b=c[c.length-1];return A(b)?(c.pop(),function(a){return aa(c,a,b)}):function(a){return aa(c,a)}},subscribeOn:function(c,a){void 0===a&&(a=0);return function(b){return b.lift(new Re(c,a))}},switchAll:function(){return da(J)},switchMap:da,switchMapTo:function(c,a){return a?da(function(){return c},
-a):da(function(){return c})},take:Ba,takeLast:ka,takeUntil:function(c){return function(a){return a.lift(new Ue(c))}},takeWhile:function(c,a){void 0===a&&(a=!1);return function(b){return b.lift(new We(c,a))}},tap:function(c,a,b){return function(d){return d.lift(new Ye(c,a,b))}},throttle:function(c,a){void 0===a&&(a=Eb);return function(b){return b.lift(new $e(c,a.leading,a.trailing))}},throttleTime:function(c,a,b){void 0===a&&(a=y);void 0===b&&(b=Eb);return function(d){return d.lift(new bf(c,a,b.leading,
-b.trailing))}},throwIfEmpty:ja,timeInterval:function(c){void 0===c&&(c=y);return function(a){return za(function(){return a.pipe(la(function(a,d){a=a.current;return{value:d,current:c.now(),last:a}},{current:c.now(),value:void 0,last:void 0}),B(function(a){return new cf(a.value,a.current-a.last)}))})}},timeout:function(c,a){void 0===a&&(a=y);return kb(c,wa(new yb),a)},timeoutWith:kb,timestamp:function(c){void 0===c&&(c=y);return B(function(a){return new ef(a,c.now())})},toArray:function(){return ma(Ac,
-[])},window:function(c){return function(a){return a.lift(new gf(c))}},windowCount:function(c,a){void 0===a&&(a=0);return function(b){return b.lift(new jf(c,a))}},windowTime:function(c,a,b,d){var e=y,f=null,g=Number.POSITIVE_INFINITY;A(d)&&(e=d);A(b)?e=b:V(b)&&(g=b);A(a)?e=a:V(a)&&(f=a);return function(a){return a.lift(new lf(c,f,g,e))}},windowToggle:function(c,a){return function(b){return b.lift(new of(c,a))}},windowWhen:function(c){return function(a){return a.lift(new qf(c))}},withLatestFrom:function(){for(var c=
-[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){var b;"function"===typeof c[c.length-1]&&(b=c.pop());return a.lift(new sf(c,b))}},zip:function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];return function(a){return a.lift.call(cb.apply(void 0,[a].concat(c)))}},zipAll:function(c){return function(a){return a.lift(new db(c))}}}),fa=function(){return function(c,a){void 0===a&&(a=Number.POSITIVE_INFINITY);this.subscribedFrame=c;this.unsubscribedFrame=a}}(),Fb=function(){function c(){this.subscriptions=
-[]}c.prototype.logSubscribedFrame=function(){this.subscriptions.push(new fa(this.scheduler.now()));return this.subscriptions.length-1};c.prototype.logUnsubscribedFrame=function(a){var b=this.subscriptions;b[a]=new fa(b[a].subscribedFrame,this.scheduler.now())};return c}(),Ia=function(c){function a(a,d){var b=c.call(this,function(a){var b=this,c=b.logSubscribedFrame(),d=new t;d.add(new t(function(){b.logUnsubscribedFrame(c)}));b.scheduleMessages(a);return d})||this;b.messages=a;b.subscriptions=[];
-b.scheduler=d;return b}h(a,c);a.prototype.scheduleMessages=function(a){for(var b=this.messages.length,c=0;c<b;c++){var f=this.messages[c];a.add(this.scheduler.schedule(function(a){a.message.notification.observe(a.subscriber)},f.frame,{message:f,subscriber:a}))}};return a}(n);mb(Ia,[Fb]);var Gb=function(c){function a(a,d){var b=c.call(this)||this;b.messages=a;b.subscriptions=[];b.scheduler=d;return b}h(a,c);a.prototype._subscribe=function(a){var b=this,e=b.logSubscribedFrame(),f=new t;f.add(new t(function(){b.logUnsubscribedFrame(e)}));
-f.add(c.prototype._subscribe.call(this,a));return f};a.prototype.setup=function(){for(var a=this,c=a.messages.length,e=0;e<c;e++)(function(){var b=a.messages[e];a.scheduler.schedule(function(){b.notification.observe(a)},b.frame)})()};return a}(v);mb(Gb,[Fb]);var vf=function(c){function a(a){var b=c.call(this,Ga,750)||this;b.assertDeepEqual=a;b.hotObservables=[];b.coldObservables=[];b.flushTests=[];b.runMode=!1;return b}h(a,c);a.prototype.createTime=function(b){b=b.indexOf("|");if(-1===b)throw Error('marble diagram for time should have a completion marker "|"');
-return b*a.frameTimeFactor};a.prototype.createColdObservable=function(b,c,e){if(-1!==b.indexOf("^"))throw Error('cold observable cannot have subscription offset "^"');if(-1!==b.indexOf("!"))throw Error('cold observable cannot have unsubscription marker "!"');b=a.parseMarbles(b,c,e,void 0,this.runMode);b=new Ia(b,this);this.coldObservables.push(b);return b};a.prototype.createHotObservable=function(b,c,e){if(-1!==b.indexOf("!"))throw Error('hot observable cannot have unsubscription marker "!"');b=a.parseMarbles(b,
-c,e,void 0,this.runMode);b=new Gb(b,this);this.hotObservables.push(b);return b};a.prototype.materializeInnerObservable=function(a,c){var b=this,d=[];a.subscribe(function(a){d.push({frame:b.frame-c,notification:w.createNext(a)})},function(a){d.push({frame:b.frame-c,notification:w.createError(a)})},function(){d.push({frame:b.frame-c,notification:w.createComplete()})});return d};a.prototype.expectObservable=function(b,c){var d=this;void 0===c&&(c=null);var f=[],g={actual:f,ready:!1};c=a.parseMarblesAsSubscriptions(c,
-this.runMode);var h=c.unsubscribedFrame,k;this.schedule(function(){k=b.subscribe(function(a){var b=a;a instanceof n&&(b=d.materializeInnerObservable(b,d.frame));f.push({frame:d.frame,notification:w.createNext(b)})},function(a){f.push({frame:d.frame,notification:w.createError(a)})},function(){f.push({frame:d.frame,notification:w.createComplete()})})},c.subscribedFrame===Number.POSITIVE_INFINITY?0:c.subscribedFrame);h!==Number.POSITIVE_INFINITY&&this.schedule(function(){return k.unsubscribe()},h);this.flushTests.push(g);
-var m=this.runMode;return{toBe:function(b,c,d){g.ready=!0;g.expected=a.parseMarbles(b,c,d,!0,m)}}};a.prototype.expectSubscriptions=function(b){var c={actual:b,ready:!1};this.flushTests.push(c);var e=this.runMode;return{toBe:function(b){b="string"===typeof b?[b]:b;c.ready=!0;c.expected=b.map(function(b){return a.parseMarblesAsSubscriptions(b,e)})}}};a.prototype.flush=function(){for(var a=this,d=this.hotObservables;0<d.length;)d.shift().setup();c.prototype.flush.call(this);this.flushTests=this.flushTests.filter(function(b){return b.ready?
-(a.assertDeepEqual(b.actual,b.expected),!1):!0})};a.parseMarblesAsSubscriptions=function(a,c){var b=this;void 0===c&&(c=!1);if("string"!==typeof a)return new fa(Number.POSITIVE_INFINITY);for(var d=a.length,g=-1,h=Number.POSITIVE_INFINITY,k=Number.POSITIVE_INFINITY,m=0,r=function(d){var e=m,f=function(a){e+=a*b.frameTimeFactor},l=a[d];switch(l){case " ":c||f(1);break;case "-":f(1);break;case "(":g=m;f(1);break;case ")":g=-1;f(1);break;case "^":if(h!==Number.POSITIVE_INFINITY)throw Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");
-h=-1<g?g:m;f(1);break;case "!":if(k!==Number.POSITIVE_INFINITY)throw Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");k=-1<g?g:m;break;default:if(c&&l.match(/^[0-9]$/)&&(0===d||" "===a[d-1])){var r=a.slice(d).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(r){d+=r[0].length-1;var l=parseFloat(r[1]),u=void 0;switch(r[2]){case "ms":u=l;break;case "s":u=1E3*l;break;case "m":u=6E4*l}f(u/n.frameTimeFactor);break}}throw Error("there can only be '^' and '!' markers in a subscription marble diagram. Found instead '"+
-l+"'.");}m=e;p=d},n=this,p,q=0;q<d;q++)r(q),q=p;return 0>k?new fa(h):new fa(h,k)};a.parseMarbles=function(a,c,e,f,g){var b=this;void 0===f&&(f=!1);void 0===g&&(g=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var d=a.length,h=[],k=g?a.replace(/^[ ]+/,"").indexOf("^"):a.indexOf("^"),m=-1===k?0:k*-this.frameTimeFactor,n="object"!==typeof c?function(a){return a}:function(a){return f&&c[a]instanceof Ia?c[a].messages:c[a]},p=-1,k=function(c){var d=
-m,f=function(a){d+=a*b.frameTimeFactor},l=void 0,k=a[c];switch(k){case " ":g||f(1);break;case "-":f(1);break;case "(":p=m;f(1);break;case ")":p=-1;f(1);break;case "|":l=w.createComplete();f(1);break;case "^":f(1);break;case "#":l=w.createError(e||"error");f(1);break;default:if(g&&k.match(/^[0-9]$/)&&(0===c||" "===a[c-1])){var u=a.slice(c).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(u){c+=u[0].length-1;var k=parseFloat(u[1]),r=void 0;switch(u[2]){case "ms":r=k;break;case "s":r=1E3*k;break;case "m":r=
-6E4*k}f(r/q.frameTimeFactor);break}}l=w.createNext(n(k));f(1)}l&&h.push({frame:-1<p?p:m,notification:l});m=d;t=c},q=this,t,v=0;v<d;v++)k(v),v=t;return h};a.prototype.run=function(b){var c=a.frameTimeFactor,e=this.maxFrames;a.frameTimeFactor=1;this.maxFrames=Number.POSITIVE_INFINITY;this.runMode=!0;O.delegate=this;var f={cold:this.createColdObservable.bind(this),hot:this.createHotObservable.bind(this),flush:this.flush.bind(this),expectObservable:this.expectObservable.bind(this),expectSubscriptions:this.expectSubscriptions.bind(this)};
-try{var g=b(f);this.flush();return g}finally{a.frameTimeFactor=c,this.maxFrames=e,this.runMode=!1,O.delegate=void 0}};return a}(xb),wf=Object.freeze({TestScheduler:vf}),xf="undefined"!==typeof self&&"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,yf="undefined"!==typeof global&&global,z="undefined"!==typeof window&&window||yf||xf;if(!z)throw Error("RxJS could not find any global context (window, self, global)");var Jc=B(function(c,a){return c.response}),N=function(c){function a(a){var b=
-c.call(this)||this,e={async:!0,createXHR:function(){var a;if(this.crossDomain)if(z.XMLHttpRequest)a=new z.XMLHttpRequest;else if(z.XDomainRequest)a=new z.XDomainRequest;else throw Error("CORS is not supported by your browser");else if(z.XMLHttpRequest)a=new z.XMLHttpRequest;else{var b=void 0;try{for(var c=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],d=0;3>d;d++)try{b=c[d];new z.ActiveXObject(b);break}catch(r){}a=new z.ActiveXObject(b)}catch(r){throw Error("XMLHttpRequest is not supported by your browser");
-}}return a},crossDomain:!0,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof a)e.url=a;else for(var f in a)a.hasOwnProperty(f)&&(e[f]=a[f]);b.request=e;return b}h(a,c);a.prototype._subscribe=function(a){return new zf(a,this.request)};a.create=function(){var b=function(b){return new a(b)};b.get=Dc;b.post=Ec;b.delete=Fc;b.put=Gc;b.patch=Hc;b.getJSON=Ic;return b}();return a}(n),zf=function(c){function a(a,d){a=c.call(this,a)||this;a.request=d;a.done=!1;var b=
-d.headers=d.headers||{};d.crossDomain||a.getHeader(b,"X-Requested-With")||(b["X-Requested-With"]="XMLHttpRequest");a.getHeader(b,"Content-Type")||z.FormData&&d.body instanceof z.FormData||"undefined"===typeof d.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset\x3dUTF-8");d.body=a.serializeBody(d.body,a.getHeader(d.headers,"Content-Type"));a.send();return a}h(a,c);a.prototype.next=function(a){this.done=!0;var b=this.xhr,c=this.request,f=this.destination,g;try{g=new Hb(a,b,c)}catch(l){return f.error(l)}f.next(g)};
-a.prototype.send=function(){var a=this.request,c=this.request,e=c.user,f=c.method,g=c.url,h=c.async,k=c.password,m=c.headers,c=c.body;try{var r=this.xhr=a.createXHR();this.setupEvents(r,a);e?r.open(f,g,h,e,k):r.open(f,g,h);h&&(r.timeout=a.timeout,r.responseType=a.responseType);"withCredentials"in r&&(r.withCredentials=!!a.withCredentials);this.setHeaders(r,m);c?r.send(c):r.send()}catch(Xb){this.error(Xb)}};a.prototype.serializeBody=function(a,c){if(!a||"string"===typeof a||z.FormData&&a instanceof
-z.FormData)return a;if(c){var b=c.indexOf(";");-1!==b&&(c=c.substring(0,b))}switch(c){case "application/x-www-form-urlencoded":return Object.keys(a).map(function(b){return encodeURIComponent(b)+"\x3d"+encodeURIComponent(a[b])}).join("\x26");case "application/json":return JSON.stringify(a);default:return a}};a.prototype.setHeaders=function(a,c){for(var b in c)c.hasOwnProperty(b)&&a.setRequestHeader(b,c[b])};a.prototype.getHeader=function(a,c){for(var b in a)if(b.toLowerCase()===c.toLowerCase())return a[b]};
-a.prototype.setupEvents=function(a,c){function b(a){var c=b.subscriber,d=b.progressSubscriber,e=b.request;d&&d.error(a);var f;try{f=new Ib(this,e)}catch(Ja){f=Ja}c.error(f)}function d(a){}function g(a){var b=g.subscriber,c=g.progressSubscriber,d=g.request;if(4===this.readyState){var e=1223===this.status?204:this.status,f="text"===this.responseType?this.response||this.responseText:this.response;0===e&&(e=f?200:0);if(400>e)c&&c.complete(),b.next(a),b.complete();else{c&&c.error(a);a=void 0;try{a=new qa("ajax error "+
-e,this,d)}catch(uf){a=uf}b.error(a)}}}var h=c.progressSubscriber;a.ontimeout=b;b.request=c;b.subscriber=this;b.progressSubscriber=h;if(a.upload&&"withCredentials"in a){if(h){var k;k=function(a){k.progressSubscriber.next(a)};z.XDomainRequest?a.onprogress=k:a.upload.onprogress=k;k.progressSubscriber=h}var m;m=function(a){var b=m.progressSubscriber,c=m.subscriber,d=m.request;b&&b.error(a);var e;try{e=new qa("ajax error",this,d)}catch(Ja){e=Ja}c.error(e)};a.onerror=m;m.request=c;m.subscriber=this;m.progressSubscriber=
-h}a.onreadystatechange=d;d.subscriber=this;d.progressSubscriber=h;d.request=c;a.onload=g;g.subscriber=this;g.progressSubscriber=h;g.request=c};a.prototype.unsubscribe=function(){var a=this.xhr;!this.done&&a&&4!==a.readyState&&"function"===typeof a.abort&&a.abort();c.prototype.unsubscribe.call(this)};return a}(m),Hb=function(){return function(c,a,b){this.originalEvent=c;this.xhr=a;this.request=b;this.status=a.status;this.responseType=a.responseType||b.responseType;this.response=nb(this.responseType,
-a)}}(),qa=function(){function c(a,b,c){Error.call(this);this.message=a;this.name="AjaxError";this.xhr=b;this.request=c;this.status=b.status;this.responseType=b.responseType||c.responseType;this.response=nb(this.responseType,b);return this}c.prototype=Object.create(Error.prototype);return c}(),Ib=function(c,a){qa.call(this,"ajax timeout",c,a);this.name="AjaxTimeoutError";return this},Af=Object.freeze({ajax:N.create,AjaxResponse:Hb,AjaxError:qa,AjaxTimeoutError:Ib}),Bf={url:"",deserializer:function(c){return JSON.parse(c.data)},
-serializer:function(c){return JSON.stringify(c)}},Jb=function(c){function a(a,d){var b=c.call(this)||this;if(a instanceof n)b.destination=d,b.source=a;else{d=b._config=ob({},Bf);b._output=new v;if("string"===typeof a)d.url=a;else for(var f in a)a.hasOwnProperty(f)&&(d[f]=a[f]);if(!d.WebSocketCtor&&WebSocket)d.WebSocketCtor=WebSocket;else if(!d.WebSocketCtor)throw Error("no WebSocket constructor can be found");b.destination=new W}return b}h(a,c);a.prototype.lift=function(b){var c=new a(this._config,
-this.destination);c.operator=b;c.source=this;return c};a.prototype._resetState=function(){this._socket=null;this.source||(this.destination=new W);this._output=new v};a.prototype.multiplex=function(a,c,e){var b=this;return new n(function(d){try{b.next(a())}catch(u){d.error(u)}var f=b.subscribe(function(a){try{e(a)&&d.next(a)}catch(K){d.error(K)}},function(a){return d.error(a)},function(){return d.complete()});return function(){try{b.next(c())}catch(u){d.error(u)}f.unsubscribe()}})};a.prototype._connectSocket=
-function(){var a=this,c=this._config,e=c.WebSocketCtor,f=c.protocol,g=c.url,c=c.binaryType,h=this._output,k=null;try{this._socket=k=f?new e(g,f):new e(g),c&&(this._socket.binaryType=c)}catch(r){h.error(r);return}var n=new t(function(){a._socket=null;k&&1===k.readyState&&k.close()});k.onopen=function(b){if(a._socket){var c=a._config.openObserver;c&&c.next(b);b=a.destination;a.destination=m.create(function(b){if(1===k.readyState)try{var c=a._config.serializer;k.send(c(b))}catch(Zb){a.destination.error(Zb)}},
-function(b){var c=a._config.closingObserver;c&&c.next(void 0);b&&b.code?k.close(b.code,b.reason):h.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }"));a._resetState()},function(){var b=a._config.closingObserver;b&&b.next(void 0);k.close();a._resetState()});b&&b instanceof W&&n.add(b.subscribe(a.destination))}else k.close(),a._resetState()};k.onerror=function(b){a._resetState();h.error(b)};k.onclose=
-function(b){a._resetState();var c=a._config.closeObserver;c&&c.next(b);b.wasClean?h.complete():h.error(b)};k.onmessage=function(b){try{var c=a._config.deserializer;h.next(c(b))}catch(Yb){h.error(Yb)}}};a.prototype._subscribe=function(a){var b=this,c=this.source;if(c)return c.subscribe(a);this._socket||this._connectSocket();this._output.subscribe(a);a.add(function(){var a=b._socket;0===b._output.observers.length&&(a&&1===a.readyState&&a.close(),b._resetState())});return a};a.prototype.unsubscribe=
-function(){var a=this._socket;a&&1===a.readyState&&a.close();this._resetState();c.prototype.unsubscribe.call(this)};return a}(Da),Cf=Object.freeze({webSocket:function(c){return new Jb(c)},WebSocketSubject:Jb}),Df=Object.freeze({fromFetch:function(c,a){return new n(function(b){var d=new AbortController,e=d.signal,f=!0,g=!1;a?(a.signal&&(a.signal.aborted?d.abort():a.signal.addEventListener("abort",function(){e.aborted||d.abort()})),a=ob({},a,{signal:e})):a={signal:e};fetch(c,a).then(function(a){f=!1;
-b.next(a);b.complete()}).catch(function(a){f=!1;g||b.error(a)});return function(){g=!0;f&&d.abort()}})}});k.operators=tf;k.testing=wf;k.ajax=Af;k.webSocket=Cf;k.fetch=Df;k.Observable=n;k.ConnectableObservable=sb;k.GroupedObservable=Ea;k.observable=U;k.Subject=v;k.BehaviorSubject=tb;k.ReplaySubject=W;k.AsyncSubject=T;k.asapScheduler=pa;k.asyncScheduler=y;k.queueScheduler=ub;k.animationFrameScheduler=Yc;k.VirtualTimeScheduler=xb;k.VirtualAction=Ga;k.Scheduler=Fa;k.Subscription=t;k.Subscriber=m;k.Notification=
-w;k.pipe=ta;k.noop=D;k.identity=J;k.isObservable=function(c){return!!c&&(c instanceof n||"function"===typeof c.lift&&"function"===typeof c.subscribe)};k.ArgumentOutOfRangeError=X;k.EmptyError=ca;k.ObjectUnsubscribedError=I;k.UnsubscriptionError=Y;k.TimeoutError=yb;k.bindCallback=Pa;k.bindNodeCallback=Qa;k.combineLatest=function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];var b=a=null;A(c[c.length-1])&&(b=c.pop());"function"===typeof c[c.length-1]&&(a=c.pop());1===c.length&&x(c[0])&&
-(c=c[0]);return Z(c,b).lift(new Ha(a))};k.concat=aa;k.defer=za;k.empty=R;k.forkJoin=function(){for(var c=[],a=0;a<arguments.length;a++)c[a]=arguments[a];if(1===c.length){var b=c[0];if(x(b))return ia(b,null);if(ra(b)&&Object.getPrototypeOf(b)===Object.prototype)return c=Object.keys(b),ia(c.map(function(a){return b[a]}),c)}if("function"===typeof c[c.length-1]){var d=c.pop(),c=1===c.length&&x(c[0])?c[0]:c;return ia(c,null).pipe(B(function(a){return d.apply(void 0,a)}))}return ia(c,null)};k.from=F;k.fromEvent=
-Wa;k.fromEventPattern=Ya;k.generate=function(c,a,b,d,e){var f,g;1==arguments.length?(g=c.initialState,a=c.condition,b=c.iterate,f=c.resultSelector||J,e=c.scheduler):void 0===d||A(d)?(g=c,f=J,e=d):(g=c,f=d);return new n(function(c){var d=g;if(e)return e.schedule($b,0,{subscriber:c,iterate:b,condition:a,resultSelector:f,state:d});do{if(a){var h=void 0;try{h=a(d)}catch(r){c.error(r);break}if(!h){c.complete();break}}h=void 0;try{h=f(d)}catch(r){c.error(r);break}c.next(h);if(c.closed)break;try{d=b(d)}catch(r){c.error(r);
-break}}while(1)})};k.iif=function(c,a,b){void 0===a&&(a=S);void 0===b&&(b=S);return za(function(){return c()?a:b})};k.interval=function(c,a){void 0===c&&(c=0);void 0===a&&(a=y);if(!V(c)||0>c)c=0;a&&"function"===typeof a.schedule||(a=y);return new n(function(b){b.add(a.schedule(ac,c,{subscriber:b,counter:0,period:c}));return b})};k.merge=Za;k.never=function(){return Ab};k.of=ga;k.onErrorResumeNext=Aa;k.pairs=function(c,a){return a?new n(function(b){var d=Object.keys(c),e=new t;e.add(a.schedule(bc,
-0,{keys:d,index:0,subscriber:b,subscription:e,obj:c}));return e}):new n(function(a){for(var b=Object.keys(c),e=0;e<b.length&&!a.closed;e++){var f=b[e];c.hasOwnProperty(f)&&a.next([f,c[f]])}a.complete()})};k.partition=function(c,a,b){return[H(a,b)(new n(ha(c))),H($a(a,b))(new n(ha(c)))]};k.race=ab;k.range=function(c,a,b){void 0===c&&(c=0);return new n(function(d){void 0===a&&(a=c,c=0);var e=0,f=c;if(b)return b.schedule(ec,0,{index:e,count:a,start:c,subscriber:d});do{if(e++>=a){d.complete();break}d.next(f++);
-if(d.closed)break}while(1)})};k.throwError=wa;k.timer=bb;k.using=function(c,a){return new n(function(b){var d;try{d=c()}catch(g){b.error(g);return}var e;try{e=a(d)}catch(g){b.error(g);return}var f=(e?F(e):S).subscribe(b);return function(){f.unsubscribe();d&&d.unsubscribe()}})};k.zip=cb;k.scheduled=Ta;k.EMPTY=S;k.NEVER=Ab;k.config=C;Object.defineProperty(k,"__esModule",{value:!0})});
-//# sourceMappingURL=rxjs.umd.min.js.map
-
diff --git a/node_modules/rxjs/bundles/rxjs.umd.min.js.map b/node_modules/rxjs/bundles/rxjs.umd.min.js.map
deleted file mode 100644
index 5835f5e..0000000
--- a/node_modules/rxjs/bundles/rxjs.umd.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"","lineCount":258,"mappings":"A;;;;;;;;;;;;;;;AAAC,SAAS,CAACA,CAAD,CAASC,CAAT,CAAkB,CACL,QAAnB,GAAA,MAAOC,QAAP,EAAiD,WAAjD,GAA+B,MAAOC,OAAtC,CAA+DF,CAAA,CAAQC,OAAR,CAA/D,CACkB,UAAlB,GAAA,MAAOE,OAAP,EAAgCA,MAAAC,IAAhC,CAA6CD,MAAA,CAAO,MAAP,CAAe,CAAC,SAAD,CAAf,CAA4BH,CAA5B,CAA7C,CACCA,CAAA,CAASD,CAAAM,KAAT,CAAuB,EAAvB,CAHuB,CAA3B,CAAA,CAIC,IAJD,CAIQ,QAAS,CAACJ,CAAD,CAAU,CAsBxBK,QAASA,EAAS,CAACC,CAAD,CAAIC,CAAJ,CAAO,CAErBC,QAASA,EAAE,EAAG,CAAE,IAAAC,YAAA,CAAmBH,CAArB,CADdI,EAAA,CAAcJ,CAAd,CAAiBC,CAAjB,CAEAD,EAAAK,UAAA,CAAoB,IAAN,GAAAJ,CAAA,CAAaK,MAAAC,OAAA,CAAcN,CAAd,CAAb,EAAiCC,CAAAG,UAAA,CAAeJ,CAAAI,UAAf,CAA4B,IAAIH,CAAjE,CAHO,CAczBM,QAASA,EAAU,CAACC,CAAD,CAAI,CACnB,MAAoB,UAApB,GAAO,MAAOA,EADK,CAsBvBC,QAASA,EAAe,CAACC,CAAD,CAAM,CAC1BC,UAAA,CAAW,QAAS,EAAG,CAAE,KAAMD,EAAN,CAAF,CAAvB,CAAuC,CAAvC,CAD0B,CAoB9BE,QAASA,GAAQ,CAACJ,CAAD,CAAI,CACjB,MAAa,KAAb,GAAOA,CAAP,EAAkC,QAAlC,GAAqB,MAAOA,EADX,CAgJrBK,QAASA,GAA2B,CAACC,CAAD,CAAS,CACzC,MAAOA,EAAAC,OAAA,CAAc,QAAS,CAACC,CAAD,CAAON,CAAP,CAAY,CAAE,MAAOM,EAAAC,OAAA,CAAaP,CAAD;AAAgBQ,CAAhB,CAAuCR,CAAAI,OAAvC,CAAoDJ,CAAhE,CAAT,CAAnC,CAAqH,EAArH,CADkC,CAyO7CS,QAASA,GAAc,CAACC,CAAD,CAAW,CAC9B,IAAA,CAAOA,CAAP,CAAA,CAAiB,CAAA,IAC4BC,EAAcC,CAAAD,YAD1C,CAC0DE,EAAYD,CAAAC,UACnF,IAD8BD,CAAAE,OAC9B,EAAgBD,CAAhB,CACI,MAAO,CAAA,CAGPH,EAAA,CADKC,CAAJ,EAAmBA,CAAnB,WAA0CI,EAA1C,CACUJ,CADV,CAIU,IATF,CAYjB,MAAO,CAAA,CAbuB,CAiClCK,QAASA,EAAI,EAAG,EAEhBC,QAASA,GAAI,EAAG,CAEZ,IADA,IAAIC,EAAM,EAAV,CACSC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACID,CAAA,CAAIC,CAAJ,CAAA,CAAUC,SAAA,CAAUD,CAAV,CAEd,OAAOG,GAAA,CAAcJ,CAAd,CALK,CAOhBI,QAASA,GAAa,CAACJ,CAAD,CAAM,CACxB,MAAKA,EAAL,CAGmB,CAAnB,GAAIA,CAAAG,OAAJ,CACWH,CAAA,CAAI,CAAJ,CADX,CAGOK,QAAc,CAACC,CAAD,CAAQ,CACzB,MAAON,EAAAb,OAAA,CAAW,QAAS,CAACoB,CAAD,CAAOC,CAAP,CAAW,CAAE,MAAOA,EAAA,CAAGD,CAAH,CAAT,CAA/B,CAAqDD,CAArD,CADkB,CAN7B,CACWR,CAFa,CA+G5BW,QAASA,GAAc,CAACC,CAAD,CAAc,CAC5BA,CAAL,GACIA,CADJ,CACkBC,CAAAC,QADlB,EACoCA,OADpC,CAGA,IAAKF,CAAAA,CAAL,CACI,KAAUG,MAAJ,CAAU,uBAAV,CAAN,CAEJ,MAAOH,EAP0B,CAqMrCI,QAASA,GAAQ,EAAG,CAChB,MAAOC,SAAiC,CAACC,CAAD,CAAS,CAC7C,MAAOA,EAAAC,KAAA,CAAY,IAAIC,EAAJ,CAAqBF,CAArB,CAAZ,CADsC,CADjC,CA+kBpBG,QAASA,EAAO,CAACC,CAAD,CAAY,CACxB,MAAOA,EAAA;AAAYC,EAAA,CAAeD,CAAf,CAAZ,CAAwCE,CADvB,CAG5BD,QAASA,GAAc,CAACD,CAAD,CAAY,CAC/B,MAAO,KAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAAE,MAAOJ,EAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAE,SAAA,EAAT,CAA/B,CAAT,CAArC,CADwB,CAInCC,QAASA,EAAW,CAACC,CAAD,CAAQ,CACxB,MAAOA,EAAP,EAA0C,UAA1C,GAAgB,MAAOA,EAAAH,SADC,CAW5BI,QAASA,GAAa,CAACvB,CAAD,CAAQc,CAAR,CAAmB,CACrC,MAAO,KAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIM,EAAM,IAAIC,CAAd,CACIC,EAAI,CACRF,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAC/BO,CAAJ,GAAU1B,CAAAH,OAAV,CACIqB,CAAAE,SAAA,EADJ,EAIAF,CAAAU,KAAA,CAAgB5B,CAAA,CAAM0B,CAAA,EAAN,CAAhB,CACA,CAAKR,CAAA5B,OAAL,EACIkC,CAAAG,IAAA,CAAQ,IAAAR,SAAA,EAAR,CANJ,CADmC,CAA/B,CAAR,CAUA,OAAOK,EAbiC,CAArC,CAD8B,CAkBzCK,QAASA,EAAS,CAAC7B,CAAD,CAAQc,CAAR,CAAmB,CACjC,MAAKA,EAAL,CAIWS,EAAA,CAAcvB,CAAd,CAAqBc,CAArB,CAJX,CACW,IAAIG,CAAJ,CAAea,EAAA,CAAiB9B,CAAjB,CAAf,CAFsB,CASrC+B,QAASA,GAAE,EAAG,CAEV,IADA,IAAIC,EAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA,CAAWC,SAAA,CAAUD,CAAV,CAEXmB,EAAAA,CAAYkB,CAAA,CAAKA,CAAAnC,OAAL,CAAmB,CAAnB,CAChB,OAAIwB,EAAA,CAAYP,CAAZ,CAAJ,EACIkB,CAAAC,IAAA,EACO,CAAAV,EAAA,CAAcS,CAAd,CAAoBlB,CAApB,CAFX,EAKWe,CAAA,CAAUG,CAAV,CAXD;AAedE,QAASA,GAAU,CAACC,CAAD,CAAQrB,CAAR,CAAmB,CAClC,MAAKA,EAAL,CAIW,IAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAAE,MAAOJ,EAAAK,SAAA,CAAmBiB,EAAnB,CAA6B,CAA7B,CAAgC,CAAED,MAAOA,CAAT,CAAgBjB,WAAYA,CAA5B,CAAhC,CAAT,CAArC,CAJX,CACW,IAAID,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAAE,MAAOA,EAAAiB,MAAA,CAAiBA,CAAjB,CAAT,CAArC,CAFuB,CAQtCC,QAASA,GAAQ,CAAChD,CAAD,CAAK,CACiBA,CAAA8B,WACnCiB,MAAA,CADY/C,CAAA+C,MACZ,CAFkB,CAwRtBE,QAASA,GAAkB,CAACC,CAAD,CAAS,CAChC,MAAIA,EAAJ,GAAcC,GAAd,EACI,OAAOA,EAAA,CAAcD,CAAd,CACA,CAAA,CAAA,CAFX,EAIO,CAAA,CALyB,CA2OpCE,QAASA,EAAQ,CAAClE,CAAD,CAAI,CACjB,MAAOA,EADU,CA4CrBmE,QAASA,EAAG,CAACC,CAAD,CAAUC,CAAV,CAAmB,CAC3B,MAAOC,SAAqB,CAAClC,CAAD,CAAS,CACjC,GAAuB,UAAvB,GAAI,MAAOgC,EAAX,CACI,KAAM,KAAIG,SAAJ,CAAc,4DAAd,CAAN,CAEJ,MAAOnC,EAAAC,KAAA,CAAY,IAAImC,EAAJ,CAAgBJ,CAAhB,CAAyBC,CAAzB,CAAZ,CAJ0B,CADV,CAyC/BI,QAASA,GAAY,CAACC,CAAD,CAAeC,CAAf,CAA+BnC,CAA/B,CAA0C,CAC3D,GAAImC,CAAJ,CACI,GAAI5B,CAAA,CAAY4B,CAAZ,CAAJ,CACInC,CAAA,CAAYmC,CADhB,KAII,OAAO,SAAS,EAAG,CAEf,IADA,IAAIjB,EAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA;AAAWC,SAAA,CAAUD,CAAV,CAEf,OAAOoD,GAAA,CAAaC,CAAb,CAA2BlC,CAA3B,CAAAoC,MAAA,CAA4C,IAAK,EAAjD,CAAoDlB,CAApD,CAAAvC,KAAA,CAA+DgD,CAAA,CAAI,QAAS,CAACT,CAAD,CAAO,CAAE,MAAOmB,EAAA,CAAQnB,CAAR,CAAA,CAAgBiB,CAAAC,MAAA,CAAqB,IAAK,EAA1B,CAA6BlB,CAA7B,CAAhB,CAAqDiB,CAAA,CAAejB,CAAf,CAA9D,CAApB,CAA/D,CALQ,CAS3B,OAAO,SAAS,EAAG,CAEf,IADA,IAAIA,EAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA,CAAWC,SAAA,CAAUD,CAAV,CAEf,KAAIyD,EAAU,IAAd,CACIC,CADJ,CAEIC,EAAS,CACTF,QAASA,CADA,CAETC,QAASA,CAFA,CAGTL,aAAcA,CAHL,CAITlC,UAAWA,CAJF,CAMb,OAAO,KAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,GAAKJ,CAAL,CA6BI,MAAOA,EAAAK,SAAA,CAAmBoC,EAAnB,CAA+B,CAA/B,CAHKC,CACRxB,KAAMA,CADEwB,CACItC,WAAYA,CADhBsC,CAC4BF,OAAQA,CADpCE,CAGL,CA5BP,IAAKH,CAAAA,CAAL,CAAc,CACVA,CAAA,CAAU,IAAII,CASd,IAAI,CACAT,CAAAE,MAAA,CAAmBE,CAAnB,CAA4BpB,CAAAjD,OAAA,CAAY,CAT9B2E,QAAS,EAAG,CAEtB,IADA,IAAIC,EAAY,EAAhB,CACShE,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgE,CAAA,CAAUhE,CAAV,CAAA,CAAgBC,SAAA,CAAUD,CAAV,CAEpB0D,EAAAzB,KAAA,CAAiC,CAApB,EAAA+B,CAAA9D,OAAA,CAAwB8D,CAAA,CAAU,CAAV,CAAxB,CAAuCA,CAApD,CACAN,EAAAjC,SAAA,EANsB,CASkB,CAAZ,CAA5B,CADA,CAGJ,MAAO5C,CAAP,CAAY,CACJS,EAAA,CAAeoE,CAAf,CAAJ,CACIA,CAAAlB,MAAA,CAAc3D,CAAd,CADJ;AAIIoF,OAAAC,KAAA,CAAarF,CAAb,CALI,CAbF,CAsBd,MAAO6E,EAAAS,UAAA,CAAkB5C,CAAlB,CAxB6B,CAArC,CAbQ,CAfwC,CA+D/DqC,QAASA,GAAU,CAACC,CAAD,CAAQ,CACvB,IAAIO,EAAQ,IAAZ,CACI/B,EAAOwB,CAAAxB,KADX,CACuBd,EAAasC,CAAAtC,WAAkBoC,EAAAA,CAASE,CAAAF,OAFxC,KAGnBN,EAAeM,CAAAN,aAHI,CAGiBI,EAAUE,CAAAF,QAH3B,CAG2CtC,EAAYwC,CAAAxC,UAHvD,CAInBuC,EAAUC,CAAAD,QACd,IAAKA,CAAAA,CAAL,CAAc,CACVA,CAAA,CAAUC,CAAAD,QAAV,CAA2B,IAAII,CAS/B,IAAI,CACAT,CAAAE,MAAA,CAAmBE,CAAnB,CAA4BpB,CAAAjD,OAAA,CAAY,CAT9B2E,QAAS,EAAG,CAEtB,IADA,IAAIC,EAAY,EAAhB,CACShE,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgE,CAAA,CAAUhE,CAAV,CAAA,CAAgBC,SAAA,CAAUD,CAAV,CAGpBoE,EAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmB6C,EAAnB,CAAiC,CAAjC,CAAoC,CAAE1C,MADhB,CAApBA,EAAAqC,CAAA9D,OAAAyB,CAAwBqC,CAAA,CAAU,CAAV,CAAxBrC,CAAuCqC,CACL,CAAgBN,QAASA,CAAzB,CAApC,CAAV,CANsB,CASkB,CAAZ,CAA5B,CADA,CAGJ,MAAO7E,CAAP,CAAY,CACR6E,CAAAlB,MAAA,CAAc3D,CAAd,CADQ,CAbF,CAiBd,IAAAmD,IAAA,CAAS0B,CAAAS,UAAA,CAAkB5C,CAAlB,CAAT,CAtBuB,CAwB3B8C,QAASA,GAAY,CAACR,CAAD,CAAQ,CACzB,IAAyBH,EAAUG,CAAAH,QACnCA,EAAAzB,KAAA,CADY4B,CAAAlC,MACZ,CACA+B,EAAAjC,SAAA,EAHyB,CAM7B6C,QAASA,GAAgB,CAACjB,CAAD,CAAeC,CAAf,CAA+BnC,CAA/B,CAA0C,CAC/D,GAAImC,CAAJ,CACI,GAAI5B,CAAA,CAAY4B,CAAZ,CAAJ,CACInC,CAAA,CAAYmC,CADhB,KAII,OAAO,SAAS,EAAG,CAEf,IADA,IAAIjB;AAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA,CAAWC,SAAA,CAAUD,CAAV,CAEf,OAAOsE,GAAA,CAAiBjB,CAAjB,CAA+BlC,CAA/B,CAAAoC,MAAA,CAAgD,IAAK,EAArD,CAAwDlB,CAAxD,CAAAvC,KAAA,CAAmEgD,CAAA,CAAI,QAAS,CAACT,CAAD,CAAO,CAAE,MAAOmB,EAAA,CAAQnB,CAAR,CAAA,CAAgBiB,CAAAC,MAAA,CAAqB,IAAK,EAA1B,CAA6BlB,CAA7B,CAAhB,CAAqDiB,CAAA,CAAejB,CAAf,CAA9D,CAApB,CAAnE,CALQ,CAS3B,OAAO,SAAS,EAAG,CAEf,IADA,IAAIA,EAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA,CAAWC,SAAA,CAAUD,CAAV,CAEf,KAAI2D,EAAS,CACTD,QAASa,IAAAA,EADA,CAETlC,KAAMA,CAFG,CAGTgB,aAAcA,CAHL,CAITlC,UAAWA,CAJF,CAKTsC,QAAS,IALA,CAOb,OAAO,KAAInC,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIkC,EAAUE,CAAAF,QAAd,CACIC,EAAUC,CAAAD,QACd,IAAKvC,CAAL,CA+BI,MAAOA,EAAAK,SAAA,CAAmBgD,EAAnB,CAA+B,CAA/B,CAAkC,CAAEb,OAAQA,CAAV,CAAkBpC,WAAYA,CAA9B,CAA0CkC,QAASA,CAAnD,CAAlC,CA9BP,IAAKC,CAAAA,CAAL,CAAc,CACVA,CAAA,CAAUC,CAAAD,QAAV,CAA2B,IAAII,CAc/B,IAAI,CACAT,CAAAE,MAAA,CAAmBE,CAAnB,CAA4BpB,CAAAjD,OAAA,CAAY,CAd9B2E,QAAS,EAAG,CAEtB,IADA,IAAIC,EAAY,EAAhB,CACShE,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgE,CAAA,CAAUhE,CAAV,CAAA;AAAgBC,SAAA,CAAUD,CAAV,CAGpB,EADInB,CACJ,CADUmF,CAAAS,MAAA,EACV,EACIf,CAAAlB,MAAA,CAAc3D,CAAd,CADJ,EAIA6E,CAAAzB,KAAA,CAAiC,CAApB,EAAA+B,CAAA9D,OAAA,CAAwB8D,CAAA,CAAU,CAAV,CAAxB,CAAuCA,CAApD,CACA,CAAAN,CAAAjC,SAAA,EALA,CANsB,CAckB,CAAZ,CAA5B,CADA,CAGJ,MAAO5C,CAAP,CAAY,CACJS,EAAA,CAAeoE,CAAf,CAAJ,CACIA,CAAAlB,MAAA,CAAc3D,CAAd,CADJ,CAIIoF,OAAAC,KAAA,CAAarF,CAAb,CALI,CAlBF,CA2Bd,MAAO6E,EAAAS,UAAA,CAAkB5C,CAAlB,CA/B6B,CAArC,CAZQ,CAf4C,CAkEnEiD,QAASA,GAAU,CAACX,CAAD,CAAQ,CACvB,IAAIO,EAAQ,IAAZ,CACIT,EAASE,CAAAF,OADb,CAC2BpC,EAAasC,CAAAtC,WAAkBkC,EAAAA,CAAUI,CAAAJ,QAF7C,KAGnBJ,EAAeM,CAAAN,aAHI,CAGiBhB,EAAOsB,CAAAtB,KAHxB,CAGqClB,EAAYwC,CAAAxC,UAHjD,CAInBuC,EAAUC,CAAAD,QACd,IAAKA,CAAAA,CAAL,CAAc,CACVA,CAAA,CAAUC,CAAAD,QAAV,CAA2B,IAAII,CAe/B,IAAI,CACAT,CAAAE,MAAA,CAAmBE,CAAnB,CAA4BpB,CAAAjD,OAAA,CAAY,CAf9B2E,QAAS,EAAG,CAEtB,IADA,IAAIC,EAAY,EAAhB,CACShE,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgE,CAAA,CAAUhE,CAAV,CAAA,CAAgBC,SAAA,CAAUD,CAAV,CAGpB,EADInB,CACJ,CADUmF,CAAAS,MAAA,EACV,EACIL,CAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmBkD,EAAnB,CAAoC,CAApC,CAAuC,CAAE7F,IAAKA,CAAP,CAAY6E,QAASA,CAArB,CAAvC,CAAV,CADJ,CAKIU,CAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmBmD,EAAnB,CAAmC,CAAnC,CAAsC,CAAEhD,MADlB,CAApBA,EAAAqC,CAAA9D,OAAAyB,CAAwBqC,CAAA,CAAU,CAAV,CAAxBrC,CAAuCqC,CACH,CAAgBN,QAASA,CAAzB,CAAtC,CAAV,CAXkB,CAekB,CAAZ,CAA5B,CADA,CAGJ,MAAO7E,CAAP,CAAY,CACR,IAAAmD,IAAA,CAASb,CAAAK,SAAA,CAAmBkD,EAAnB;AAAoC,CAApC,CAAuC,CAAE7F,IAAKA,CAAP,CAAY6E,QAASA,CAArB,CAAvC,CAAT,CADQ,CAnBF,CAuBd,IAAA1B,IAAA,CAAS0B,CAAAS,UAAA,CAAkB5C,CAAlB,CAAT,CA5BuB,CA8B3BoD,QAASA,GAAc,CAACC,CAAD,CAAM,CACzB,IAAuBlB,EAAUkB,CAAAlB,QACjCA,EAAAzB,KAAA,CADY2C,CAAAjD,MACZ,CACA+B,EAAAjC,SAAA,EAHyB,CAK7BiD,QAASA,GAAe,CAACE,CAAD,CAAM,CACGA,CAAAlB,QAC7BlB,MAAA,CADUoC,CAAA/F,IACV,CAF0B,CAoG9BgG,QAASA,GAAS,CAAClD,CAAD,CAAQ,CACtB,MAAO,CAAEA,CAAAA,CAAT,EAA6C,UAA7C,GAAkB,MAAOA,EAAAwC,UAAzB,EAAiF,UAAjF,GAA2D,MAAOxC,EAAAmD,KAD5C,CAyB1BC,QAASA,EAAiB,CAACC,CAAD,CAAkBC,CAAlB,CAA0BC,CAA1B,CAAsCC,CAAtC,CAAkDC,CAAlD,CAAmE,CACjE,IAAK,EAA7B,GAAIA,CAAJ,GAAkCA,CAAlC,CAAoD,IAAIC,CAAJ,CAAoBL,CAApB,CAAqCE,CAArC,CAAiDC,CAAjD,CAApD,CACA,IAAIxF,CAAAyF,CAAAzF,OAAJ,CAGA,MAAIsF,EAAJ,WAAsB3D,EAAtB,CACW2D,CAAAd,UAAA,CAAiBiB,CAAjB,CADX,CAGOE,EAAA,CAAYL,CAAZ,CAAA,CAAoBG,CAApB,CARkF,CAuG7FG,QAASA,GAAkB,CAAClF,CAAD,CAAQc,CAAR,CAAmB,CAC1C,MAAO,KAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIM,EAAM,IAAIC,CACdD,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CACnC,IAAIgE,EAAgBnF,CAAA,CAAMoF,CAAN,CAAA,EACpB5D,EAAAG,IAAA,CAAQwD,CAAArB,UAAA,CAAwB,CAC5BlC,KAAMA,QAAS,CAACN,CAAD,CAAQ,CAAEE,CAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAU,KAAA,CAAgBN,CAAhB,CAAT,CAA/B,CAAR,CAAF,CADK;AAE5Ba,MAAOA,QAAS,CAAC3D,CAAD,CAAM,CAAEgD,CAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAiB,MAAA,CAAiB3D,CAAjB,CAAT,CAA/B,CAAR,CAAF,CAFM,CAG5B4C,SAAUA,QAAS,EAAG,CAAEI,CAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAE,SAAA,EAAT,CAA/B,CAAR,CAAF,CAHM,CAAxB,CAAR,CAFmC,CAA/B,CAAR,CAQA,OAAOI,EAViC,CAArC,CADmC,CAe9C6D,QAASA,GAAe,CAACrF,CAAD,CAAQc,CAAR,CAAmB,CACvC,MAAO,KAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIM,EAAM,IAAIC,CACdD,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOnB,EAAAyE,KAAA,CAAW,QAAS,CAACnD,CAAD,CAAQ,CACxEE,CAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CACnCD,CAAAU,KAAA,CAAgBN,CAAhB,CACAE,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAE,SAAA,EAAT,CAA/B,CAAR,CAFmC,CAA/B,CAAR,CADwE,CAA5B,CAK7C,QAAS,CAAC5C,CAAD,CAAM,CACdgD,CAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CAAE,MAAOD,EAAAiB,MAAA,CAAiB3D,CAAjB,CAAT,CAA/B,CAAR,CADc,CAL8B,CAAT,CAA/B,CAAR,CAQA,OAAOgD,EAViC,CAArC,CADgC,CAe3C8D,QAASA,GAAgB,CAACtF,CAAD,CAAQc,CAAR,CAAmB,CACxC,GAAKd,CAAAA,CAAL,CACI,KAAUO,MAAJ,CAAU,yBAAV,CAAN,CAEJ,MAAO,KAAIU,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIM;AAAM,IAAIC,CAAd,CACI8D,CACJ/D,EAAAG,IAAA,CAAQ,QAAS,EAAG,CACZ4D,CAAJ,EAAiD,UAAjD,GAAmB,MAAOA,EAAAC,OAA1B,EACID,CAAAC,OAAA,EAFY,CAApB,CAKAhE,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CACnCoE,CAAA,CAAcvF,CAAA,CAAMyF,CAAN,CAAA,EACdjE,EAAAG,IAAA,CAAQb,CAAAK,SAAA,CAAmB,QAAS,EAAG,CACnC,GAAI7B,CAAA4B,CAAA5B,OAAJ,CAAA,CAGA,IAAIgC,CAAJ,CACIoE,CACJ,IAAI,CACA,IAAId,EAASW,CAAA3D,KAAA,EACbN,EAAA,CAAQsD,CAAAtD,MACRoE,EAAA,CAAOd,CAAAc,KAHP,CAKJ,MAAOlH,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAIRkH,CAAJ,CACIxE,CAAAE,SAAA,EADJ,EAIIF,CAAAU,KAAA,CAAgBN,CAAhB,CACA,CAAA,IAAAH,SAAA,EALJ,CAdA,CADmC,CAA/B,CAAR,CAFmC,CAA/B,CAAR,CA0BA,OAAOK,EAlCiC,CAArC,CAJiC,CAkD5CmE,QAASA,GAAS,CAAC3F,CAAD,CAAQc,CAAR,CAAmB,CACjC,GAAa,IAAb,EAAId,CAAJ,CAAmB,CACf,GAAwBA,CAAxB,EATyC,UASzC,GATY,MASYA,EATL,CAAMoF,CAAN,CASnB,CACI,MAAOF,GAAA,CAAmBlF,CAAnB,CAA0Bc,CAA1B,CAEN,IAAI0D,EAAA,CAAUxE,CAAV,CAAJ,CACD,MAAOqF,GAAA,CAAgBrF,CAAhB,CAAuBc,CAAvB,CAEN,IAAI8E,EAAA,CAAY5F,CAAZ,CAAJ,CACD,MAAOuB,GAAA,CAAcvB,CAAd,CAAqBc,CAArB,CAEN,IAAed,CAAf,EAdkC,UAclC,GAdO,MAcQA,EAdD,CAAMyF,CAAN,CAcd,EAA0C,QAA1C,GAAyB,MAAOzF,EAAhC,CACD,MAAOsF,GAAA,CAAiBtF,CAAjB,CAAwBc,CAAxB,CAXI,CAcnB,KAAM,KAAI+B,SAAJ,EAAyB,IAAzB;AAAe7C,CAAf,EAAiC,MAAOA,EAAxC,EAAiDA,CAAjD,EAA0D,oBAA1D,CAAN,CAfiC,CAkBrC6F,QAASA,EAAI,CAAC7F,CAAD,CAAQc,CAAR,CAAmB,CAC5B,MAAKA,EAAL,CAOW6E,EAAA,CAAU3F,CAAV,CAAiBc,CAAjB,CAPX,CACQd,CAAJ,WAAqBiB,EAArB,CACWjB,CADX,CAGO,IAAIiB,CAAJ,CAAegE,EAAA,CAAYjF,CAAZ,CAAf,CALiB,CAYhC8F,QAASA,EAAQ,CAACpD,CAAD,CAAUO,CAAV,CAA0B8C,CAA1B,CAAsC,CAChC,IAAK,EAAxB,GAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACA,IAA8B,UAA9B,GAAI,MAAOhD,EAAX,CACI,MAAO,SAAS,CAACvC,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYqG,CAAA,CAAS,QAAS,CAACI,CAAD,CAAIxE,CAAJ,CAAO,CAAE,MAAOmE,EAAA,CAAKnD,CAAA,CAAQwD,CAAR,CAAWxE,CAAX,CAAL,CAAAjC,KAAA,CAAyBgD,CAAA,CAAI,QAAS,CAAC3E,CAAD,CAAIqI,CAAJ,CAAQ,CAAE,MAAOlD,EAAA,CAAeiD,CAAf,CAAkBpI,CAAlB,CAAqB4D,CAArB,CAAwByE,CAAxB,CAAT,CAArB,CAAzB,CAAT,CAAzB,CAA8HJ,CAA9H,CAAZ,CAAT,CAEM,SAA9B,GAAI,MAAO9C,EAAX,GACD8C,CADC,CACY9C,CADZ,CAGL,OAAO,SAAS,CAACvC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIyF,EAAJ,CAAqB1D,CAArB,CAA8BqD,CAA9B,CAAZ,CAAT,CAR0B,CAwFvDM,QAASA,GAAQ,CAACN,CAAD,CAAa,CACP,IAAK,EAAxB,GAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACA,OAAOH,EAAA,CAAStD,CAAT,CAAmBuD,CAAnB,CAFmB,CAK9BO,QAASA,GAAS,EAAG,CACjB,MAAOD,GAAA,CAAS,CAAT,CADU,CAIrBtH,QAASA,GAAM,EAAG,CAEd,IADA,IAAIwH,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB;AAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,OAAO2G,GAAA,EAAA,CAAYvE,EAAAmB,MAAA,CAAS,IAAK,EAAd,CAAiBqD,CAAjB,CAAZ,CALO,CAQlBC,QAASA,GAAK,CAACC,CAAD,CAAoB,CAC9B,MAAO,KAAIxF,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIlB,CACJ,IAAI,CACAA,CAAA,CAAQyG,CAAA,EADR,CAGJ,MAAOjI,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAKZ,MAAOsF,CADM9D,CAAAU,CAAQmF,CAAA,CAAK7F,CAAL,CAARU,CAAsBG,CAAA,EAC5BiD,WAAA,CAAiB5C,CAAjB,CAViC,CAArC,CADuB,CAqClCwF,QAASA,GAAgB,CAACC,CAAD,CAAUC,CAAV,CAAgB,CACrC,MAAO,KAAI3F,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAI2F,EAAMF,CAAA9G,OACV,IAAY,CAAZ,GAAIgH,CAAJ,CACI3F,CAAAE,SAAA,EADJ,KAgCA,KA5BA,IAAI0F,EAAaC,KAAJ,CAAUF,CAAV,CAAb,CACIG,EAAY,CADhB,CAEIC,EAAU,CAFd,CAGIC,EAAUA,QAAS,CAACxF,CAAD,CAAI,CACvB,IAAIhB,EAASmF,CAAA,CAAKc,CAAA,CAAQjF,CAAR,CAAL,CAAb,CACIyF,EAAW,CAAA,CACfjG,EAAAS,IAAA,CAAejB,CAAAoD,UAAA,CAAiB,CAC5BlC,KAAMA,QAAS,CAACN,CAAD,CAAQ,CACd6F,CAAL,GACIA,CACA,CADW,CAAA,CACX,CAAAF,CAAA,EAFJ,CAIAH,EAAA,CAAOpF,CAAP,CAAA,CAAYJ,CALO,CADK,CAQ5Ba,MAAOA,QAAS,CAAC3D,CAAD,CAAM,CAAE,MAAO0C,EAAAiB,MAAA,CAAiB3D,CAAjB,CAAT,CARM,CAS5B4C,SAAUA,QAAS,EAAG,CAClB4F,CAAA,EACIA,EAAJ,GAAkBH,CAAlB,EAA0BM,CAA1B,GACQF,CAKJ,GALgBJ,CAKhB,EAJI3F,CAAAU,KAAA,CAAgBgF,CAAA,CACZA,CAAA/H,OAAA,CAAY,QAAS,CAAC+F,CAAD,CAASwC,CAAT,CAAc1F,CAAd,CAAiB,CAAE,MAAQkD,EAAA,CAAOwC,CAAP,CAAA;AAAcN,CAAA,CAAOpF,CAAP,CAAd,CAAyBkD,CAAnC,CAAtC,CAAqF,EAArF,CADY,CAEZkC,CAFJ,CAIJ,CAAA5F,CAAAE,SAAA,EANJ,CAFkB,CATM,CAAjB,CAAf,CAHuB,CAH3B,CA4BSM,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACIwF,CAAA,CAAQxF,CAAR,CAnCoC,CAArC,CAD8B,CAyCzC2F,QAASA,GAAS,CAACC,CAAD,CAASC,CAAT,CAAoBC,CAApB,CAA6BvE,CAA7B,CAA6C,CACvD5E,CAAA,CAAWmJ,CAAX,CAAJ,GACIvE,CACA,CADiBuE,CACjB,CAAAA,CAAA,CAAUtD,IAAAA,EAFd,CAIA,OAAIjB,EAAJ,CACWoE,EAAA,CAAUC,CAAV,CAAkBC,CAAlB,CAA6BC,CAA7B,CAAA/H,KAAA,CAA2CgD,CAAA,CAAI,QAAS,CAACT,CAAD,CAAO,CAAE,MAAOmB,EAAA,CAAQnB,CAAR,CAAA,CAAgBiB,CAAAC,MAAA,CAAqB,IAAK,EAA1B,CAA6BlB,CAA7B,CAAhB,CAAqDiB,CAAA,CAAejB,CAAf,CAA9D,CAApB,CAA3C,CADX,CAGO,IAAIf,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CASxCuG,EAAA,CAAkBH,CAAlB,CAA0BC,CAA1B,CARA7D,QAAgB,CAACgE,CAAD,CAAI,CACO,CAAvB,CAAI9H,SAAAC,OAAJ,CACIqB,CAAAU,KAAA,CAAgBmF,KAAA7I,UAAAyJ,MAAAC,KAAA,CAA2BhI,SAA3B,CAAhB,CADJ,CAIIsB,CAAAU,KAAA,CAAgB8F,CAAhB,CALY,CAQpB,CAA8CxG,CAA9C,CAA0DsG,CAA1D,CATwC,CAArC,CARoD,CAoB/DC,QAASA,GAAiB,CAACI,CAAD,CAAYN,CAAZ,CAAuB7D,CAAvB,CAAgCxC,CAAhC,CAA4CsG,CAA5C,CAAqD,CAC3E,IAAIM,CACJ,IAAkBD,CAAlB,EAgC0D,UAhC1D,GAgCoB,MAhCFA,EAgCSE,iBAhC3B,EAgCiH,UAhCjH,GAgCwE,MAhCtDF,EAgC6DG,oBAhC/E,CAEIH,CAAAE,iBAAA,CAA2BR,CAA3B,CAAsC7D,CAAtC,CAA+C8D,CAA/C,CACA,CAAAM,CAAA,CAAcA,QAAS,EAAG,CAAE,MAFbD,EAEoBG,oBAAA,CAA6BT,CAA7B,CAAwC7D,CAAxC,CAAiD8D,CAAjD,CAAT,CAH9B,KAKK,IAA8BK,CAA9B,EAwBuC,UAxBvC;AAwBe,MAxBeA,EAwBRI,GAxBtB,EAwB8E,UAxB9E,GAwBqD,MAxBvBJ,EAwB8BK,IAxB5D,CAEDL,CAAAI,GAAA,CAAaV,CAAb,CAAwB7D,CAAxB,CACA,CAAAoE,CAAA,CAAcA,QAAS,EAAG,CAAE,MAFbD,EAEoBK,IAAA,CAAaX,CAAb,CAAwB7D,CAAxB,CAAT,CAHzB,KAKA,IAA4BmE,CAA5B,EAgBgD,UAhBhD,GAgBe,MAhBaA,EAgBNM,YAhBtB,EAgBkG,UAhBlG,GAgB8D,MAhBlCN,EAgByCO,eAhBrE,CAEDP,CAAAM,YAAA,CAAsBZ,CAAtB,CAAiC7D,CAAjC,CACA,CAAAoE,CAAA,CAAcA,QAAS,EAAG,CAAE,MAFbD,EAEoBO,eAAA,CAAwBb,CAAxB,CAAmC7D,CAAnC,CAAT,CAHzB,KAKA,IAAImE,CAAJ,EAAiBA,CAAAhI,OAAjB,CACD,IADoC,IAC3B6B,EAAI,CADuB,CACpBmF,EAAMgB,CAAAhI,OAAtB,CAAwC6B,CAAxC,CAA4CmF,CAA5C,CAAiDnF,CAAA,EAAjD,CACI+F,EAAA,CAAkBI,CAAA,CAAUnG,CAAV,CAAlB,CAAgC6F,CAAhC,CAA2C7D,CAA3C,CAAoDxC,CAApD,CAAgEsG,CAAhE,CAFH,KAMD,MAAM,KAAI3E,SAAJ,CAAc,sBAAd,CAAN,CAEJ3B,CAAAS,IAAA,CAAemG,CAAf,CAzB2E,CAqC/EO,QAASA,GAAgB,CAACC,CAAD,CAAaC,CAAb,CAA4BtF,CAA5B,CAA4C,CACjE,MAAIA,EAAJ,CACWoF,EAAA,CAAiBC,CAAjB,CAA6BC,CAA7B,CAAA9I,KAAA,CAAiDgD,CAAA,CAAI,QAAS,CAACT,CAAD,CAAO,CAAE,MAAOmB,EAAA,CAAQnB,CAAR,CAAA,CAAgBiB,CAAAC,MAAA,CAAqB,IAAK,EAA1B,CAA6BlB,CAA7B,CAAhB,CAAqDiB,CAAA,CAAejB,CAAf,CAA9D,CAApB,CAAjD,CADX,CAGO,IAAIf,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIwC,EAAUA,QAAS,EAAG,CAEtB,IADA,IAAIgE,EAAI,EAAR,CACS/H,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI+H,CAAA,CAAE/H,CAAF,CAAA;AAAQC,SAAA,CAAUD,CAAV,CAEZ,OAAOuB,EAAAU,KAAA,CAA6B,CAAb,GAAA8F,CAAA7H,OAAA,CAAiB6H,CAAA,CAAE,CAAF,CAAjB,CAAwBA,CAAxC,CALe,CAA1B,CAOIc,CACJ,IAAI,CACAA,CAAA,CAAWF,CAAA,CAAW5E,CAAX,CADX,CAGJ,MAAOlF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAIZ,GAAKH,CAAA,CAAWkK,CAAX,CAAL,CAGA,MAAO,SAAS,EAAG,CAAE,MAAOA,EAAA,CAAc7E,CAAd,CAAuB8E,CAAvB,CAAT,CAnBqB,CAArC,CAJ0D,CAgGrEC,QAASA,GAAU,CAACjF,CAAD,CAAQ,CAAA,IACnBtC,EAAasC,CAAAtC,WADM,CACYwH,EAAYlF,CAAAkF,UAC/C,IAAIpJ,CAAA4B,CAAA5B,OAAJ,CAAA,CAGA,GAAIkE,CAAAmF,YAAJ,CACI,GAAI,CACAnF,CAAAA,MAAA,CAAcA,CAAAoF,QAAA,CAAcpF,CAAAA,MAAd,CADd,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAJhB,IAUIgF,EAAAmF,YAAA,CAAoB,CAAA,CAExB,IAAID,CAAJ,CAAe,CACX,IAAIG,EAAkB,IAAK,EAC3B,IAAI,CACAA,CAAA,CAAkBH,CAAA,CAAUlF,CAAAA,MAAV,CADlB,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAIZ,GAAKqK,CAAAA,CAAL,CAAsB,CAClB3H,CAAAE,SAAA,EACA,OAFkB,CAItB,GAAIF,CAAA5B,OAAJ,CACI,MAdO,CAiBf,IAAIgC,CACJ,IAAI,CACAA,CAAA,CAAQkC,CAAAP,eAAA,CAAqBO,CAAAA,MAArB,CADR,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAIZ,GAAIc,CAAA4B,CAAA5B,OAAJ,GAGA4B,CAAAU,KAAA,CAAgBN,CAAhB,CACIhC,CAAAA,CAAA4B,CAAA5B,OAJJ,EAOA,MAAO,KAAA6B,SAAA,CAAcqC,CAAd,CA/CP,CAFuB;AA0D3BsF,QAASA,EAAS,CAACC,CAAD,CAAM,CACpB,MAAO,CAAC5F,CAAA,CAAQ4F,CAAR,CAAR,EAAuD,CAAvD,EAAyBA,CAAzB,CAA+BC,UAAA,CAAWD,CAAX,CAA/B,CAAiD,CAD7B,CAkBxBE,QAASA,GAAU,CAACzF,CAAD,CAAQ,CAAA,IACnBtC,EAAasC,CAAAtC,WADM,CACYgI,EAAU1F,CAAA0F,QAAeC,EAAAA,CAAS3F,CAAA2F,OACrEjI,EAAAU,KAAA,CAAgBsH,CAAhB,CACA,KAAA/H,SAAA,CAAc,CAAED,WAAYA,CAAd,CAA0BgI,QAASA,CAATA,CAAmB,CAA7C,CAAgDC,OAAQA,CAAxD,CAAd,CAAgFA,CAAhF,CAHuB,CAM3BC,QAASA,GAAK,EAAG,CAEb,IADA,IAAI7C,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAElBoG,KAAAA,EAAaC,MAAAC,kBAAbF,CACAjF,EAAY,IADZiF,CAEAsD,EAAO9C,CAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CACPwB,EAAA,CAAYgI,CAAZ,CAAJ,EACIvI,CACA,CADYyF,CAAAtE,IAAA,EACZ,CAAyB,CAAzB,CAAIsE,CAAA1G,OAAJ,EAA6E,QAA7E,GAA8B,MAAO0G,EAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CAArC,GACIkG,CADJ,CACiBQ,CAAAtE,IAAA,EADjB,CAFJ,EAMyB,QANzB,GAMS,MAAOoH,EANhB,GAOItD,CAPJ,CAOiBQ,CAAAtE,IAAA,EAPjB,CASA,OAAkB,KAAlB,GAAInB,CAAJ,EAAiD,CAAjD,GAA0ByF,CAAA1G,OAA1B,EAAsD0G,CAAA,CAAY,CAAZ,CAAtD,UAAgFtF,EAAhF,CACWsF,CAAA,CAAY,CAAZ,CADX,CAGOF,EAAA,CAASN,CAAT,CAAA,CAAqBlE,CAAA,CAAU0E,CAAV,CAAuBzF,CAAvB,CAArB,CApBM,CA4BjBwI,QAASA,GAAiB,EAAG,CAEzB,IADA,IAAI3C,EAAU,EAAd,CACShH,EAAK,CAAd,CAAiBA,CAAjB;AAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgH,CAAA,CAAQhH,CAAR,CAAA,CAAcC,SAAA,CAAUD,CAAV,CAElB,IAAuB,CAAvB,GAAIgH,CAAA9G,OAAJ,CACI,MAAOmB,EANc,KAQrBuI,EAAQ5C,CAAA,CAAQ,CAAR,CARa,CAQD6C,EAAY7C,CAAAgB,MAAA,CAAc,CAAd,CACpC,OAAuB,EAAvB,GAAIhB,CAAA9G,OAAJ,EAA4BsD,CAAA,CAAQoG,CAAR,CAA5B,CACWD,EAAApG,MAAA,CAAwB,IAAK,EAA7B,CAAgCqG,CAAhC,CADX,CAGO,IAAItI,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIuI,EAAUA,QAAS,EAAG,CAAE,MAAOvI,EAAAS,IAAA,CAAe2H,EAAApG,MAAA,CAAwB,IAAK,EAA7B,CAAgCsG,CAAhC,CAAA1F,UAAA,CAAqD5C,CAArD,CAAf,CAAT,CAC1B,OAAO2E,EAAA,CAAK0D,CAAL,CAAAzF,UAAA,CAAsB,CACzBlC,KAAMA,QAAS,CAACN,CAAD,CAAQ,CAAEJ,CAAAU,KAAA,CAAgBN,CAAhB,CAAF,CADE,CAEzBa,MAAOsH,CAFkB,CAGzBrI,SAAUqI,CAHe,CAAtB,CAFiC,CAArC,CAZkB,CA4C7BC,QAASA,GAAU,CAAClG,CAAD,CAAQ,CAAA,IACnBoD,EAAOpD,CAAAoD,KADY,CACA+C,EAAQnG,CAAAmG,MADR,CACqBzI,EAAasC,CAAAtC,WADlC,CACoD0I,EAAepG,CAAAoG,aAAoBC,EAAAA,CAAMrG,CAAAqG,IACpH,IAAKvK,CAAA4B,CAAA5B,OAAL,CACI,GAAIqK,CAAJ,CAAY/C,CAAA/G,OAAZ,CAAyB,CACrB,IAAIuH,EAAMR,CAAA,CAAK+C,CAAL,CACVzI,EAAAU,KAAA,CAAgB,CAACwF,CAAD,CAAMyC,CAAA,CAAIzC,CAAJ,CAAN,CAAhB,CACAwC,EAAAjI,IAAA,CAAiB,IAAAR,SAAA,CAAc,CAAEyF,KAAMA,CAAR,CAAc+C,MAAOA,CAAPA,CAAe,CAA7B,CAAgCzI,WAAYA,CAA5C,CAAwD0I,aAAcA,CAAtE,CAAoFC,IAAKA,CAAzF,CAAd,CAAjB,CAHqB,CAAzB,IAMI3I,EAAAE,SAAA,EATe;AAc3B0I,QAASA,GAAG,CAACC,CAAD,CAAOpH,CAAP,CAAgB,CACxBqH,QAASA,EAAO,EAAG,CACf,MAAO,CAAEA,CAAAD,KAAA7G,MAAA,CAAmB8G,CAAArH,QAAnB,CAAoC/C,SAApC,CADM,CAGnBoK,CAAAD,KAAA,CAAeA,CACfC,EAAArH,QAAA,CAAkBA,CAClB,OAAOqH,EANiB,CAS5BC,QAASA,EAAM,CAACC,CAAD,CAAYvH,CAAZ,CAAqB,CAChC,MAAOwH,SAA+B,CAACzJ,CAAD,CAAS,CAC3C,MAAOA,EAAAC,KAAA,CAAY,IAAIyJ,EAAJ,CAAmBF,CAAnB,CAA8BvH,CAA9B,CAAZ,CADoC,CADf,CA+CpC0H,QAASA,GAAI,EAAG,CAEZ,IADA,IAAI9D,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,IAA2B,CAA3B,GAAI4G,CAAA1G,OAAJ,CACI,GAAIsD,CAAA,CAAQoD,CAAA,CAAY,CAAZ,CAAR,CAAJ,CACIA,CAAA,CAAcA,CAAA,CAAY,CAAZ,CADlB,KAII,OAAOA,EAAA,CAAY,CAAZ,CAGf,OAAO1E,EAAA,CAAU0E,CAAV,CAAuBrC,IAAAA,EAAvB,CAAAvD,KAAA,CAAuC,IAAI2J,EAA3C,CAbK,CAmGhBC,QAASA,GAAU,CAAC/G,CAAD,CAAQ,CAAA,IACnBgH,EAAQhH,CAAAgH,MADW,CACEb,EAAQnG,CAAAmG,MADV,CAC4CzI,EAAasC,CAAAtC,WAC5EyI,EAAJ,EADsDnG,CAAAiH,MACtD,CACIvJ,CAAAE,SAAA,EADJ,EAIAF,CAAAU,KAAA,CAAgB4I,CAAhB,CACA,CAAItJ,CAAA5B,OAAJ,GAGAkE,CAAAmG,MAEA,CAFcA,CAEd,CAFsB,CAEtB,CADAnG,CAAAgH,MACA,CADcA,CACd,CADsB,CACtB,CAAA,IAAArJ,SAAA,CAAcqC,CAAd,CALA,CALA,CAFuB,CAe3BkH,QAASA,GAAK,CAACC,CAAD,CAAUC,CAAV,CAA6B9J,CAA7B,CAAwC,CAClC,IAAK,EAArB,GAAI6J,CAAJ,GAA0BA,CAA1B,CAAoC,CAApC,CACA,KAAIxB;AAAU,EACVL,EAAA,CAAU8B,CAAV,CAAJ,CACIzB,CADJ,CACyC,CADzC,CACanD,MAAA,CAAO4E,CAAP,CADb,EAC8C,CAD9C,EACmD5E,MAAA,CAAO4E,CAAP,CADnD,CAGSvJ,CAAA,CAAYuJ,CAAZ,CAHT,GAII9J,CAJJ,CAIgB8J,CAJhB,CAMKvJ,EAAA,CAAYP,CAAZ,CAAL,GACIA,CADJ,CACgB+J,CADhB,CAGA,OAAO,KAAI5J,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAI4J,EAAMhC,CAAA,CAAU6B,CAAV,CAAA,CACJA,CADI,CAEH,CAACA,CAFE,CAEQ7J,CAAAiK,IAAA,EAClB,OAAOjK,EAAAK,SAAA,CAAmB6J,EAAnB,CAA+BF,CAA/B,CAAoC,CACvCnB,MAAO,CADgC,CAC7BR,OAAQA,CADqB,CACbjI,WAAYA,CADC,CAApC,CAJiC,CAArC,CAZ2C,CAqBtD8J,QAASA,GAAU,CAACxH,CAAD,CAAQ,CAAA,IACnBmG,EAAQnG,CAAAmG,MADW,CACER,EAAS3F,CAAA2F,OADX,CACyBjI,EAAasC,CAAAtC,WAC7DA,EAAAU,KAAA,CAAgB+H,CAAhB,CACA,IAAIrK,CAAA4B,CAAA5B,OAAJ,CAGK,CAAA,GAAgB,EAAhB,GAAI6J,CAAJ,CACD,MAAOjI,EAAAE,SAAA,EAEXoC,EAAAmG,MAAA,CAAcA,CAAd,CAAsB,CACtB,KAAAxI,SAAA,CAAcqC,CAAd,CAAqB2F,CAArB,CAJK,CANkB,CA0C3B8B,QAASA,GAAG,EAAG,CAEX,IADA,IAAI1E,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAElBsD,EAAAA,CAAiBsD,CAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CACS,WAA9B,GAAI,MAAOoD,EAAX,EACIsD,CAAAtE,IAAA,EAEJ,OAAOJ,EAAA,CAAU0E,CAAV,CAAuBrC,IAAAA,EAAvB,CAAAvD,KAAA,CAAuC,IAAIuK,EAAJ,CAAgBjI,CAAhB,CAAvC,CATI,CA8MfkI,QAASA,GAAK,CAACC,CAAD,CAAmB,CAC7B,MAAOC,SAA8B,CAAC3K,CAAD,CAAS,CAC1C,MAAOA,EAAAC,KAAA,CAAY,IAAI2K,EAAJ,CAAkBF,CAAlB,CAAZ,CADmC,CADjB;AAkTjCG,QAASA,GAA0B,CAAC/H,CAAD,CAAQ,CACvC,IAAItC,EAAasC,CAAAtC,WAAjB,CACIsK,EAAchI,CAAAJ,QACdoI,EAAJ,EACItK,CAAAuK,aAAA,CAAwBD,CAAxB,CAECtK,EAAA5B,OAAL,GACIkE,CAAAJ,QACA,CADgBlC,CAAAwK,YAAA,EAChB,CAAAlI,CAAAJ,QAAAuI,YAAA,CAA4B,IAAAxK,SAAA,CAAcqC,CAAd,CAAqBA,CAAAoI,eAArB,CAFhC,CANuC,CAW3CC,QAASA,GAAsB,CAACrI,CAAD,CAAQ,CAAA,IAC/BsI,EAAyBtI,CAAAsI,uBADM,CACwBF,EAAiBpI,CAAAoI,eADzC,CAC+D1K,EAAasC,CAAAtC,WAD5E,CAC8FJ,EAAY0C,CAAA1C,UAD1G,CAE/BsC,EAAUlC,CAAAwK,YAAA,EAETxK,EAAA5B,OAAL,GACI4B,CAAAS,IAAA,CAAeyB,CAAAuI,YAAf,CAAqC7K,CAAAK,SAAA,CAAmB4K,EAAnB,CAAwCH,CAAxC,CAAwD,CAAE1K,WAAYA,CAAd,CAA0BkC,QAASA,CAAnC,CAAxD,CAArC,CACA,CAHS4I,IAGT7K,SAAA,CAAgBqC,CAAhB,CAAuBsI,CAAvB,CAFJ,CAJmC,CASvCC,QAASA,GAAmB,CAACxH,CAAD,CAAM,CACbA,CAAArD,WACjBuK,aAAA,CAD2ClH,CAAAnB,QAC3C,CAF8B,CAiQlC6I,QAASA,GAAS,CAACvJ,CAAD,CAAUO,CAAV,CAA0B,CACxC,MAAO6C,EAAA,CAASpD,CAAT,CAAkBO,CAAlB,CAAkC,CAAlC,CADiC,CAyL5CiJ,QAASA,GAAc,CAAChL,CAAD,CAAa,CAChCA,CAAAiL,cAAA,EADgC,CAIpCC,QAASA,GAAc,CAACC,CAAD,CAAe,CACb,IAAK,EAA1B;AAAIA,CAAJ,GAA+BA,CAA/B,CAA8C,IAA9C,CACA,OAAO,SAAS,CAAC3L,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI2L,EAAJ,CAA2BD,CAA3B,CAAZ,CAAT,CAFS,CA6UtCE,QAASA,GAAoB,CAACC,CAAD,CAAUC,CAAV,CAAuB,CAChD,MAAO,SAAS,CAAC/L,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI+L,EAAJ,CAAiCF,CAAjC,CAA0CC,CAA1C,CAAZ,CAAT,CADuB,CA6DpDE,QAASA,GAAY,CAACC,CAAD,CAAe,CACX,IAAK,EAA1B,GAAIA,CAAJ,GAA+BA,CAA/B,CAA8CC,EAA9C,CACA,OAAO,SAAS,CAACnM,CAAD,CAAS,CACrB,MAAOA,EAAAC,KAAA,CAAY,IAAImM,EAAJ,CAAyBF,CAAzB,CAAZ,CADc,CAFO,CA4CpCC,QAASA,GAAmB,EAAG,CAC3B,MAAO,KAAIE,EADgB,CAI/BC,QAASA,GAAI,CAACvC,CAAD,CAAQ,CACjB,MAAO,SAAS,CAAC/J,CAAD,CAAS,CACrB,MAAc,EAAd,GAAI+J,CAAJ,CACW5J,CAAA,EADX,CAIWH,CAAAC,KAAA,CAAY,IAAIsM,EAAJ,CAAiBxC,CAAjB,CAAZ,CALU,CADR,CAuJrByC,QAASA,GAAU,CAACxK,CAAD,CAAUO,CAAV,CAA0B,CACzC,MAAIA,EAAJ,CACW,QAAS,CAACvC,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYyN,EAAA,CAAW,QAAS,CAAChH,CAAD,CAAIxE,CAAJ,CAAO,CAAE,MAAOmE,EAAA,CAAKnD,CAAA,CAAQwD,CAAR,CAAWxE,CAAX,CAAL,CAAAjC,KAAA,CAAyBgD,CAAA,CAAI,QAAS,CAAC3E,CAAD,CAAIqI,CAAJ,CAAQ,CAAE,MAAOlD,EAAA,CAAeiD,CAAf,CAAkBpI,CAAlB,CAAqB4D,CAArB,CAAwByE,CAAxB,CAAT,CAArB,CAAzB,CAAT,CAA3B,CAAZ,CAAT,CAD7B,CAGO,QAAS,CAACzF,CAAD,CAAS,CACrB,MAAOA,EAAAC,KAAA,CAAY,IAAIwM,EAAJ,CAAuBzK,CAAvB,CAAZ,CADc,CAJgB,CAuT7C0K,QAASA,GAAQ,CAAC3C,CAAD,CAAQ,CACrB,MAAO4C,SAAiC,CAAC3M,CAAD,CAAS,CAC7C,MAAc,EAAd;AAAI+J,CAAJ,CACW5J,CAAA,EADX,CAIWH,CAAAC,KAAA,CAAY,IAAI2M,EAAJ,CAAqB7C,CAArB,CAAZ,CALkC,CAD5B,CA2HzB8C,QAASA,GAAI,CAACC,CAAD,CAAcC,CAAd,CAAoB,CAC7B,IAAIC,EAAU,CAAA,CACU,EAAxB,EAAI9N,SAAAC,OAAJ,GACI6N,CADJ,CACc,CAAA,CADd,CAGA,OAAOC,SAA6B,CAACjN,CAAD,CAAS,CACzC,MAAOA,EAAAC,KAAA,CAAY,IAAIiN,EAAJ,CAAiBJ,CAAjB,CAA8BC,CAA9B,CAAoCC,CAApC,CAAZ,CADkC,CALhB,CAkEjC7O,QAASA,GAAM,CAAC2O,CAAD,CAAcC,CAAd,CAAoB,CAC/B,MAAwB,EAAxB,EAAI7N,SAAAC,OAAJ,CACWgO,QAAuC,CAACnN,CAAD,CAAS,CACnD,MAAOjB,GAAA,CAAK8N,EAAA,CAAKC,CAAL,CAAkBC,CAAlB,CAAL,CAA8BL,EAAA,CAAS,CAAT,CAA9B,CAA2ChB,EAAA,CAAeqB,CAAf,CAA3C,CAAA,CAAiE/M,CAAjE,CAD4C,CAD3D,CAKOoN,QAA+B,CAACpN,CAAD,CAAS,CAC3C,MAAOjB,GAAA,CAAK8N,EAAA,CAAK,QAAS,CAACQ,CAAD,CAAMzM,CAAN,CAAaqI,CAAb,CAAoB,CAAE,MAAO6D,EAAA,CAAYO,CAAZ,CAAiBzM,CAAjB,CAAwBqI,CAAxB,CAAgC,CAAhC,CAAT,CAAlC,CAAL,CAAwFyD,EAAA,CAAS,CAAT,CAAxF,CAAA,CAAqG1M,CAArG,CADoC,CANhB,CAuInCsN,QAASA,EAAS,CAACC,CAAD,CAA0BC,CAA1B,CAAoC,CAClD,MAAOC,SAAkC,CAACzN,CAAD,CAAS,CAC9C,IAAI0N,CAEAA,EAAA,CADmC,UAAvC,GAAI,MAAOH,EAAX,CACqBA,CADrB,CAIqBG,QAAuB,EAAG,CACvC,MAAOH,EADgC,CAI/C,IAAwB,UAAxB,GAAI,MAAOC,EAAX,CACI,MAAOxN,EAAAC,KAAA,CAAY,IAAI0N,EAAJ,CAAsBD,CAAtB,CAAsCF,CAAtC,CAAZ,CAEX,KAAII,EAAcnQ,MAAAC,OAAA,CAAcsC,CAAd,CAAsB6N,EAAtB,CAClBD,EAAA5N,OAAA,CAAqBA,CACrB4N,EAAAF,eAAA,CAA6BA,CAC7B,OAAOE,EAhBuC,CADA,CAkJtDE,QAASA,GAAO,CAACC,CAAD;AAAQ5O,CAAR,CAAgB,CAc5B,MAba6O,SAAS,CAACpQ,CAAD,CAAI,CACtB,IAAIqQ,EAAcrQ,CAClB,KAASoD,CAAT,CAAa,CAAb,CAAgBA,CAAhB,CAAoB7B,CAApB,CAA4B6B,CAAA,EAA5B,CAEI,GADIkN,CACA,CADID,CAAA,CAAYF,CAAA,CAAM/M,CAAN,CAAZ,CACJ,CAAa,WAAb,GAAA,MAAOkN,EAAX,CAII,MAGR,OAAOD,EAXe,CADE,CA0WhCE,QAASA,GAAoB,CAACrL,CAAD,CAAQ,CACjC,IAAmC2F,EAAS3F,CAAA2F,OAA3B3F,EAAAtC,WACjB4N,WAAA,EACA,KAAA3N,SAAA,CAAcqC,CAAd,CAAqB2F,CAArB,CAHiC,CA+GrC4F,QAASA,GAAmB,EAAG,CAC3B,MAAO,KAAIC,CADgB,CAsB/BC,QAASA,GAAmB,CAAC7P,CAAD,CAAK,CAAA,IACzB8P,EAAK9P,CAAA+P,WADoB,CACLA,EAAoB,IAAK,EAAZ,GAAAD,CAAA,CAAgBlJ,MAAAC,kBAAhB,CAA2CiJ,CADnD,CACuDE,EAAKhQ,CAAAiQ,WAD5D,CAC2EA,EAAoB,IAAK,EAAZ,GAAAD,CAAA,CAAgBpJ,MAAAC,kBAAhB,CAA2CmJ,CADnI,CACuIE,EAAclQ,CAAAoB,SADrJ,CACkKM,EAAY1B,CAAA0B,UAD9K,CAEzBuC,CAFyB,CAGzB7C,EAAW,CAHc,CAIzBoJ,CAJyB,CAKzB2F,EAAW,CAAA,CALc,CAMzBC,EAAa,CAAA,CACjB,OAAOC,SAA6B,CAAC/O,CAAD,CAAS,CACzCF,CAAA,EACA,IAAK6C,CAAAA,CAAL,EAAgBkM,CAAhB,CACIA,CAEA,CAFW,CAAA,CAEX,CADAlM,CACA,CADU,IAAIqM,CAAJ,CAAkBP,CAAlB,CAA8BE,CAA9B,CAA0CvO,CAA1C,CACV,CAAA8I,CAAA,CAAelJ,CAAAoD,UAAA,CAAiB,CAC5BlC,KAAMA,QAAS,CAACN,CAAD,CAAQ,CAAE+B,CAAAzB,KAAA,CAAaN,CAAb,CAAF,CADK,CAE5Ba,MAAOA,QAAS,CAAC3D,CAAD,CAAM,CAClB+Q,CAAA,CAAW,CAAA,CACXlM,EAAAlB,MAAA,CAAc3D,CAAd,CAFkB,CAFM;AAM5B4C,SAAUA,QAAS,EAAG,CAClBoO,CAAA,CAAa,CAAA,CACb5F,EAAA,CAAe1F,IAAAA,EACfb,EAAAjC,SAAA,EAHkB,CANM,CAAjB,CAanB,KAAIuO,EAAWtM,CAAAS,UAAA,CAAkB,IAAlB,CACf,KAAAnC,IAAA,CAAS,QAAS,EAAG,CACjBnB,CAAA,EACAmP,EAAA7H,YAAA,EACI8B,EAAJ,EAAqB4F,CAAAA,CAArB,EAAmCF,CAAnC,EAA+D,CAA/D,GAAkD9O,CAAlD,GACIoJ,CAAA9B,YAAA,EAEA,CAAAzE,CAAA,CADAuG,CACA,CADe1F,IAAAA,EAFnB,CAHiB,CAArB,CAnByC,CAPhB,CA0UjC0L,QAASA,GAAS,CAAClN,CAAD,CAAUO,CAAV,CAA0B,CACxC,MAA8B,UAA9B,GAAI,MAAOA,EAAX,CACW,QAAS,CAACvC,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYmQ,EAAA,CAAU,QAAS,CAAC1J,CAAD,CAAIxE,CAAJ,CAAO,CAAE,MAAOmE,EAAA,CAAKnD,CAAA,CAAQwD,CAAR,CAAWxE,CAAX,CAAL,CAAAjC,KAAA,CAAyBgD,CAAA,CAAI,QAAS,CAAC3E,CAAD,CAAIqI,CAAJ,CAAQ,CAAE,MAAOlD,EAAA,CAAeiD,CAAf,CAAkBpI,CAAlB,CAAqB4D,CAArB,CAAwByE,CAAxB,CAAT,CAArB,CAAzB,CAAT,CAA1B,CAAZ,CAAT,CAD7B,CAGO,QAAS,CAACzF,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIkP,EAAJ,CAAsBnN,CAAtB,CAAZ,CAAT,CAJe,CAwY5CoN,QAASA,GAAc,CAACvL,CAAD,CAAM,CACRA,CAAArD,WACjB6O,cAAA,EAFyB,CAyB7BC,QAASA,GAAW,CAAClF,CAAD,CAAMmF,CAAN,CAAsBnP,CAAtB,CAAiC,CAC/B,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAO,SAAS,CAACnK,CAAD,CAAS,CACrB,IAAIwP,EAAyBpF,CAAzBoF,WAxhFgBC,KAwhFhBD,EAxhFwB,CAACE,KAAA,CAAM,CAwhFNtF,CAxhFA,CAwhF7B,CACIuF,EAAUH,CAAA,CAAmB,CAACpF,CAApB,CAA0BhK,CAAAiK,IAAA,EAA1B;AAA6CuF,IAAAC,IAAA,CAASzF,CAAT,CAC3D,OAAOpK,EAAAC,KAAA,CAAY,IAAI6P,EAAJ,CAAwBH,CAAxB,CAAiCH,CAAjC,CAAkDD,CAAlD,CAAkEnP,CAAlE,CAAZ,CAHc,CAFwB,CA6ErD2P,QAASA,GAAc,CAACC,CAAD,CAAMC,CAAN,CAAYhH,CAAZ,CAAmB,CACtC,GAAc,CAAd,GAAIA,CAAJ,CACI,MAAO,CAACgH,CAAD,CAEXD,EAAAE,KAAA,CAASD,CAAT,CACA,OAAOD,EAL+B,CA2Q1CG,QAASA,GAA0B,CAACrN,CAAD,CAAQ,CAAA,IACnCtC,EAAasC,CAAAtC,WADsB,CACJ4P,EAAiBtN,CAAAsN,eADb,CACmCC,EAASvN,CAAAuN,OAC/EA,EAAJ,EACI7P,CAAA8P,YAAA,CAAuBD,CAAvB,CAEJvN,EAAAuN,OAAA,CAAe7P,CAAA+P,WAAA,EACf,KAAA9P,SAAA,CAAcqC,CAAd,CAAqBsN,CAArB,CANuC,CAQ3CI,QAASA,GAAsB,CAAC1N,CAAD,CAAQ,CAAA,IAC/BsN,EAAiBtN,CAAAsN,eADc,CACQ5P,EAAasC,CAAAtC,WADrB,CACuCJ,EAAY0C,CAAA1C,UADnD,CACoEqQ,EAAyB3N,CAAA2N,uBAD7F,CAE/BJ,EAAS7P,CAAA+P,WAAA,EAFsB,CAI/B7N,EAAU,CAAE4I,OADHA,IACC,CAAkBpC,aAAc,IAAhC,CAEdxG,EAAAwG,aAAA,CAAuB9I,CAAAK,SAAA,CAAmBiQ,EAAnB,CAAwCN,CAAxC,CADHO,CAAEnQ,WAAYA,CAAdmQ,CAA0BN,OAAQA,CAAlCM,CAA0CjO,QAASA,CAAnDiO,CACG,CAHVrF,KAIbrK,IAAA,CAAWyB,CAAAwG,aAAX,CAJaoC,KAKb7K,SAAA,CAAgBqC,CAAhB,CAAuB2N,CAAvB,CARmC,CAUvCC,QAASA,GAAmB,CAAC5N,CAAD,CAAQ,CAAA,IAC5BtC;AAAasC,CAAAtC,WADe,CACG6P,EAASvN,CAAAuN,OAC5C,EAD0D3N,CAC1D,CADoEI,CAAAJ,QACpE,GAAeA,CAAA4I,OAAf,EAAiC5I,CAAAwG,aAAjC,EACIxG,CAAA4I,OAAAsF,OAAA,CAAsBlO,CAAAwG,aAAtB,CAEJ1I,EAAA8P,YAAA,CAAuBD,CAAvB,CALgC,CAmbpCQ,QAASA,GAAW,CAACC,CAAD,CAAcC,CAAd,CAAyB,CACzC,IADyC,IAChC/P,EAAI,CAD4B,CACzBmF,EAAM4K,CAAA5R,OAAtB,CAAwC6B,CAAxC,CAA4CmF,CAA5C,CAAiDnF,CAAA,EAAjD,CAGI,IAFA,IAAIgQ,EAAWD,CAAA,CAAU/P,CAAV,CAAf,CACIiQ,EAAexT,MAAAyT,oBAAA,CAA2BF,CAAAxT,UAA3B,CADnB,CAES2T,EAAI,CAFb,CAEgBC,EAAOH,CAAA9R,OAAvB,CAA4CgS,CAA5C,CAAgDC,CAAhD,CAAsDD,CAAA,EAAtD,CAA2D,CACvD,IAAIE,EAASJ,CAAA,CAAaE,CAAb,CACbL,EAAAtT,UAAA,CAAsB6T,CAAtB,CAAA,CAAgCL,CAAAxT,UAAA,CAAmB6T,CAAnB,CAFuB,CAJtB,CAsd7CC,QAASA,GAAO,CAACC,CAAD,CAAMC,CAAN,CAAe,CACX,IAAK,EAArB,GAAIA,CAAJ,GAA0BA,CAA1B,CAAoC,IAApC,CACA,OAAO,KAAIC,CAAJ,CAAmB,CAAEC,OAAQ,KAAV,CAAiBH,IAAKA,CAAtB,CAA2BC,QAASA,CAApC,CAAnB,CAFoB,CAI/BG,QAASA,GAAQ,CAACJ,CAAD,CAAMK,CAAN,CAAYJ,CAAZ,CAAqB,CAClC,MAAO,KAAIC,CAAJ,CAAmB,CAAEC,OAAQ,MAAV,CAAkBH,IAAKA,CAAvB,CAA4BK,KAAMA,CAAlC,CAAwCJ,QAASA,CAAjD,CAAnB,CAD2B,CAGtCK,QAASA,GAAU,CAACN,CAAD,CAAMC,CAAN,CAAe,CAC9B,MAAO,KAAIC,CAAJ,CAAmB,CAAEC,OAAQ,QAAV,CAAoBH,IAAKA,CAAzB,CAA8BC,QAASA,CAAvC,CAAnB,CADuB;AAGlCM,QAASA,GAAO,CAACP,CAAD,CAAMK,CAAN,CAAYJ,CAAZ,CAAqB,CACjC,MAAO,KAAIC,CAAJ,CAAmB,CAAEC,OAAQ,KAAV,CAAiBH,IAAKA,CAAtB,CAA2BK,KAAMA,CAAjC,CAAuCJ,QAASA,CAAhD,CAAnB,CAD0B,CAGrCO,QAASA,GAAS,CAACR,CAAD,CAAMK,CAAN,CAAYJ,CAAZ,CAAqB,CACnC,MAAO,KAAIC,CAAJ,CAAmB,CAAEC,OAAQ,OAAV,CAAmBH,IAAKA,CAAxB,CAA6BK,KAAMA,CAAnC,CAAyCJ,QAASA,CAAlD,CAAnB,CAD4B,CAIvCQ,QAASA,GAAW,CAACT,CAAD,CAAMC,CAAN,CAAe,CAC/B,MAAOS,GAAA,CAAY,IAAIR,CAAJ,CAAmB,CAClCC,OAAQ,KAD0B,CAElCH,IAAKA,CAF6B,CAGlCW,aAAc,MAHoB,CAIlCV,QAASA,CAJyB,CAAnB,CAAZ,CADwB,CAoSnCW,QAASA,GAAgB,CAACD,CAAD,CAAeE,CAAf,CAAoB,CACzC,OAAQF,CAAR,EACI,KAAK,MAAL,CACI,MATJ,EASW,CAVX,UAAJ,EAUyBE,EAVzB,CAUyBA,CATdF,aAAA,CAScE,CATKC,SAAnB,CAAkCC,IAAAC,MAAA,CASpBH,CAT+BC,SAAX,EASpBD,CAT+CI,aAA3B,EAA+C,MAA/C,CAD7C,CAIWF,IAAAC,MAAA,CAMcH,CANHI,aAAX,EAA+B,MAA/B,CAMI,CAAA,CACX,MAAK,KAAL,CACI,MAAOJ,EAAAK,YAEX,SACI,MAAQ,UAAD,EAAeL,EAAf,CAAsBA,CAAAC,SAAtB,CAAqCD,CAAAI,aAPpD,CADyC,CAryQ7C,IAAIjV,GAAgBE,MAAAiV,eAAhBnV;AACC,CAAEoV,UAAW,EAAb,CADDpV,UAC8B8I,MAD9B9I,EACuC,QAAS,CAACJ,CAAD,CAAIC,CAAJ,CAAO,CAAED,CAAAwV,UAAA,CAAcvV,CAAhB,CADvDG,EAEA,QAAS,CAACJ,CAAD,CAAIC,CAAJ,CAAO,CAAE,IAAK8Q,IAAIA,CAAT,GAAc9Q,EAAd,CAAqBA,CAAAwV,eAAA,CAAiB1E,CAAjB,CAAJ,GAAyB/Q,CAAA,CAAE+Q,CAAF,CAAzB,CAAgC9Q,CAAA,CAAE8Q,CAAF,CAAhC,CAAnB,CAFpB,CAUI2E,GAAWpV,MAAAqV,OAAXD,EAA4BA,QAAiB,CAACE,CAAD,CAAI,CACjD,IADiD,IACxCC,CADwC,CACrChS,EAAI,CADiC,CAC9BiS,EAAI/T,SAAAC,OAAvB,CAAyC6B,CAAzC,CAA6CiS,CAA7C,CAAgDjS,CAAA,EAAhD,CAAqD,CACjDgS,CAAA,CAAI9T,SAAA,CAAU8B,CAAV,CACJ,KAAKkN,IAAIA,CAAT,GAAc8E,EAAd,CAAqBvV,MAAAD,UAAAoV,eAAA1L,KAAA,CAAqC8L,CAArC,CAAwC9E,CAAxC,CAAJ,GAAgD6E,CAAA,CAAE7E,CAAF,CAAhD,CAAuD8E,CAAA,CAAE9E,CAAF,CAAvD,CAFgC,CAIrD,MAAO6E,EAL0C,CAVrD,CAsBIG,GAAsD,CAAA,CAtB1D,CAuBIvT,EAAS,CACTC,QAAS4D,IAAAA,EADA,CAEL2P,0CAAsCvS,CAAtCuS,CAA6C,CACzCvS,CAAJ,CAEIsC,OAAAC,KAAA,CAAa,+FAAb,CADgBtD,KAAJ4B,EACmG2R,MAA/G,CAFJ,CAISF,EAJT,EAKIhQ,OAAAmQ,IAAA,CAAY,yDAAZ,CAEJH;EAAA,CAAsDtS,CART,CAFxC,CAYLuS,2CAAwC,CACxC,MAAOD,GADiC,CAZnC,CAvBb,CA4CII,GAAQ,CACR1U,OAAQ,CAAA,CADA,CAERsC,KAAMA,QAAS,CAACN,CAAD,CAAQ,EAFf,CAGRa,MAAOA,QAAS,CAAC3D,CAAD,CAAM,CAClB,GAAI6B,CAAAwT,sCAAJ,CACI,KAAMrV,EAAN,CAGAD,CAAA,CAAgBC,CAAhB,CALc,CAHd,CAWR4C,SAAUA,QAAS,EAAG,EAXd,CA5CZ,CA0DI+B,EAAW,QAAS,EAAG,CAAE,MAAO4D,MAAA5D,QAAP,EAAyB,QAAS,CAAC7E,CAAD,CAAI,CAAE,MAAOA,EAAP,EAAgC,QAAhC,GAAY,MAAOA,EAAAuB,OAArB,CAAxC,CAAb,EA1Dd,CA4EIb,EAZ2B,QAAS,EAAG,CACvCiV,QAASA,EAAuB,CAACrV,CAAD,CAAS,CACrC2B,KAAAqH,KAAA,CAAW,IAAX,CACA,KAAAsM,QAAA,CAAetV,CAAA,CACXA,CAAAiB,OADW,CACK,2CADL,CACmDjB,CAAA6D,IAAA,CAAW,QAAS,CAACjE,CAAD,CAAMkD,CAAN,CAAS,CAAE,MAAOA,EAAP,CAAW,CAAX,CAAe,IAAf,CAAsBlD,CAAA2V,SAAA,EAAxB,CAA7B,CAAAC,KAAA,CAA6E,MAA7E,CADnD,CAC0I,EACzJ,KAAAC,KAAA,CAAY,qBACZ,KAAAzV,OAAA;AAAcA,CACd,OAAO,KAN8B,CAQzCqV,CAAA/V,UAAA,CAAoCC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CACpC,OAAO+V,EAVgC,CAAbA,EAhE9B,CA8EIxS,EAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,CAACqG,CAAD,CAAc,CAC/B,IAAAxI,OAAA,CAAc,CAAA,CAEd,KAAAgV,eAAA,CADA,IAAAC,iBACA,CADwB,IAEpBzM,EAAJ,GACI,IAAA0M,aADJ,CACwB1M,CADxB,CAJ+B,CAQnCrG,CAAAvD,UAAA4J,YAAA,CAAqC2M,QAAS,EAAG,CAC7C,IAAI7V,CACJ,IAAIU,CAAA,IAAAA,OAAJ,CAAA,CAF6C,IAK9BiV,EAANnV,IAAyBmV,iBALW,CAKUC,EAA9CpV,IAA6DoV,aALzB,CAK0CF,EAA9ElV,IAA+FkV,eACxG,KAAAhV,OAAA,CAAc,CAAA,CAEd,KAAAgV,eAAA,CADA,IAAAC,iBACA,CADwB,IAExB,IAAIA,CAAJ,WAAgC9S,EAAhC,CACI8S,CAAAjD,OAAA,CAAwB,IAAxB,CADJ,KAGK,IAAyB,IAAzB,GAAIiD,CAAJ,CACD,IAAK,IAAI5K,EAAQ,CAAjB,CAAoBA,CAApB,CAA4B4K,CAAA1U,OAA5B,CAAqD,EAAE8J,CAAvD,CACmB4K,CAAAG,CAAiB/K,CAAjB+K,CACfpD,OAAA,CAAgB,IAAhB,CAGR,IAAIjT,CAAA,CAAWmW,CAAX,CAAJ,CACI,GAAI,CACAA,CAAA5M,KAAA,CAAkB,IAAlB,CADA,CAGJ,MAAOF,CAAP,CAAU,CACN9I,CAAA;AAAS8I,CAAA,WAAa1I,EAAb,CAAmCL,EAAA,CAA4B+I,CAAA9I,OAA5B,CAAnC,CAA2E,CAAC8I,CAAD,CAD9E,CAId,GAAIvE,CAAA,CAAQmR,CAAR,CAAJ,CAGI,IAFI3K,CACA9C,CADS,EACTA,CAAAA,CAAAA,CAAMyN,CAAAzU,OACV,CAAO,EAAE8J,CAAT,CAAiB9C,CAAjB,CAAA,CAEI,GADIrF,CACA,CADM8S,CAAA,CAAe3K,CAAf,CACN,CAAAjL,EAAA,CAAS8C,CAAT,CAAJ,CACI,GAAI,CACAA,CAAAsG,YAAA,EADA,CAGJ,MAAOJ,CAAP,CAAU,CACN9I,CACA,CADSA,CACT,EADmB,EACnB,CAAI8I,CAAJ,WAAiB1I,EAAjB,CACIJ,CADJ,CACaA,CAAAG,OAAA,CAAcJ,EAAA,CAA4B+I,CAAA9I,OAA5B,CAAd,CADb,CAIIA,CAAAgS,KAAA,CAAYlJ,CAAZ,CANE,CAYtB,GAAI9I,CAAJ,CACI,KAAM,KAAII,CAAJ,CAAwBJ,CAAxB,CAAN,CA9CJ,CAF6C,CAmDjD6C,EAAAvD,UAAAyD,IAAA,CAA6BgT,QAAS,CAACC,CAAD,CAAW,CAC7C,IAAIhL,EAAegL,CACnB,IAAKA,CAAAA,CAAL,CACI,MAAOnT,EAAAT,MAEX,QAAQ,MAAO4T,EAAf,EACI,KAAK,UAAL,CACIhL,CAAA,CAAe,IAAInI,CAAJ,CAAiBmT,CAAjB,CACnB,MAAK,QAAL,CACI,GAAIhL,CAAJ,GAAqB,IAArB,EAA6BA,CAAAtK,OAA7B,EAAwF,UAAxF,GAAoD,MAAOsK,EAAA9B,YAA3D,CACI,MAAO8B,EAEN,IAAI,IAAAtK,OAAJ,CAED,MADAsK,EAAA9B,YAAA,EACO8B,CAAAA,CAEAA,EAAN,WAA8BnI,EAA9B,GACGoT,CAEJ,CAFUjL,CAEV,CADAA,CACA,CADe,IAAInI,CACnB,CAAAmI,CAAA0K,eAAA,CAA8B,CAACO,CAAD,CAH7B,CAKL,MACJ,SACI,KAAUtU,MAAJ,CAAU,wBAAV;AAAqCqU,CAArC,CAAgD,yBAAhD,CAAN,CAlBR,CAqBIL,CAAAA,CAAmB3K,CAAA2K,iBACvB,IAAyB,IAAzB,GAAIA,CAAJ,CACI3K,CAAA2K,iBAAA,CAAgC,IADpC,KAGK,IAAIA,CAAJ,WAAgC9S,EAAhC,CAA8C,CAC/C,GAAI8S,CAAJ,GAAyB,IAAzB,CACI,MAAO3K,EAEXA,EAAA2K,iBAAA,CAAgC,CAACA,CAAD,CAAmB,IAAnB,CAJe,CAA9C,IAMA,IAAwC,EAAxC,GAAIA,CAAAO,QAAA,CAAyB,IAAzB,CAAJ,CACDP,CAAA3D,KAAA,CAAsB,IAAtB,CADC,KAID,OAAOhH,EAEPmL,EAAAA,CAAgB,IAAAT,eACE,KAAtB,GAAIS,CAAJ,CACI,IAAAT,eADJ,CAC0B,CAAC1K,CAAD,CAD1B,CAIImL,CAAAnE,KAAA,CAAmBhH,CAAnB,CAEJ,OAAOA,EAjDsC,CAmDjDnI,EAAAvD,UAAAoT,OAAA,CAAgC0D,QAAS,CAACpL,CAAD,CAAe,CACpD,IAAImL,EAAgB,IAAAT,eAChBS,EAAJ,GACQE,CACJ,CADwBF,CAAAD,QAAA,CAAsBlL,CAAtB,CACxB,CAA2B,EAA3B,GAAIqL,CAAJ,EACIF,CAAAG,OAAA,CAAqBD,CAArB,CAAwC,CAAxC,CAHR,CAFoD,CASxDxT,EAAAT,MAAA,CAAsB,QAAS,CAACgT,CAAD,CAAQ,CACnCA,CAAA1U,OAAA,CAAe,CAAA,CACf,OAAO0U,EAF4B,CAAjB,CAGpB,IAAIvS,CAHgB,CAItB,OAAOA,EA5HqB,CAAZ,EA9EpB,CAgNI0T,GACyB,UAAlB,GAAA,MAAOC,OAAP,CACDA,MAAA,CAAO,cAAP,CADC;AAED,iBAFC,CAEmB9E,IAAA+E,OAAA,EAnN9B,CAsNI9V,EAAc,QAAS,CAAC+V,CAAD,CAAS,CAEhC/V,QAASA,EAAU,CAACgW,CAAD,CAAoBpT,CAApB,CAA2Bf,CAA3B,CAAqC,CACpD,IAAI2C,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAyR,eAAA,CAAuB,IACvBzR,EAAA0R,gBAAA,CAAwB,CAAA,CACxB1R,EAAA2R,mBAAA,CAA2B,CAAA,CAC3B3R,EAAA1E,UAAA,CAAkB,CAAA,CAClB,QAAQO,SAAAC,OAAR,EACI,KAAK,CAAL,CACIkE,CAAA5E,YAAA,CAAoB6U,EACpB,MACJ,MAAK,CAAL,CACI,GAAKuB,CAAAA,CAAL,CAAwB,CACpBxR,CAAA5E,YAAA,CAAoB6U,EACpB,MAFoB,CAIxB,GAAiC,QAAjC,GAAI,MAAOuB,EAAX,CAA2C,CACnCA,CAAJ,WAAiChW,EAAjC,EACIwE,CAAA2R,mBAEA,CAF2BH,CAAAG,mBAE3B,CADA3R,CAAA5E,YACA,CADoBoW,CACpB,CAAAA,CAAA5T,IAAA,CAAsBoC,CAAtB,CAHJ,GAMIA,CAAA2R,mBACA,CAD2B,CAAA,CAC3B,CAAA3R,CAAA5E,YAAA,CAAoB,IAAIwW,EAAJ,CAAmB5R,CAAnB,CAA0BwR,CAA1B,CAPxB,CASA,MAVuC,CAY/C,QACIxR,CAAA2R,mBACA,CAD2B,CAAA,CAC3B,CAAA3R,CAAA5E,YAAA,CAAoB,IAAIwW,EAAJ,CAAmB5R,CAAnB,CAA0BwR,CAA1B,CAA6CpT,CAA7C,CAAoDf,CAApD,CAvB5B,CA0BA,MAAO2C,EAhC6C,CADxDnG,CAAA,CAAU2B,CAAV;AAAsB+V,CAAtB,CAmCA/V,EAAArB,UAAA,CAAqBiX,EAArB,CAAA,CAAqC,QAAS,EAAG,CAAE,MAAO,KAAT,CACjD5V,EAAAnB,OAAA,CAAoBwX,QAAS,CAAChU,CAAD,CAAOO,CAAP,CAAcf,CAAd,CAAwB,CAC7CF,CAAAA,CAAa,IAAI3B,CAAJ,CAAeqC,CAAf,CAAqBO,CAArB,CAA4Bf,CAA5B,CACjBF,EAAAwU,mBAAA,CAAgC,CAAA,CAChC,OAAOxU,EAH0C,CAKrD3B,EAAArB,UAAA0D,KAAA,CAA4BiU,QAAS,CAACvU,CAAD,CAAQ,CACpC,IAAAjC,UAAL,EACI,IAAAyW,MAAA,CAAWxU,CAAX,CAFqC,CAK7C/B,EAAArB,UAAAiE,MAAA,CAA6B4T,QAAS,CAACvX,CAAD,CAAM,CACnC,IAAAa,UAAL,GACI,IAAAA,UACA,CADiB,CAAA,CACjB,CAAA,IAAA2W,OAAA,CAAYxX,CAAZ,CAFJ,CADwC,CAM5Ce,EAAArB,UAAAkD,SAAA,CAAgC6U,QAAS,EAAG,CACnC,IAAA5W,UAAL,GACI,IAAAA,UACA,CADiB,CAAA,CACjB,CAAA,IAAA6W,UAAA,EAFJ,CADwC,CAM5C3W,EAAArB,UAAA4J,YAAA,CAAmCqO,QAAS,EAAG,CACvC,IAAA7W,OAAJ,GAGA,IAAAD,UACA,CADiB,CAAA,CACjB,CAAAiW,CAAApX,UAAA4J,YAAAF,KAAA,CAAkC,IAAlC,CAJA,CAD2C,CAO/CrI,EAAArB,UAAA4X,MAAA,CAA6BM,QAAS,CAAC9U,CAAD,CAAQ,CAC1C,IAAAnC,YAAAyC,KAAA,CAAsBN,CAAtB,CAD0C,CAG9C/B;CAAArB,UAAA8X,OAAA,CAA8BK,QAAS,CAAC7X,CAAD,CAAM,CACzC,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,KAAAsJ,YAAA,EAFyC,CAI7CvI,EAAArB,UAAAgY,UAAA,CAAiCI,QAAS,EAAG,CACzC,IAAAnX,YAAAiC,SAAA,EACA,KAAA0G,YAAA,EAFyC,CAI7CvI,EAAArB,UAAAqY,uBAAA,CAA8CC,QAAS,EAAG,CACtD,IAAIjC,EAAmB,IAAAA,iBACvB,KAAAA,iBAAA,CAAwB,IACxB,KAAAzM,YAAA,EAEA,KAAAzI,UAAA,CADA,IAAAC,OACA,CADc,CAAA,CAEd,KAAAiV,iBAAA,CAAwBA,CACxB,OAAO,KAP+C,CAS1D,OAAOhV,EAtFyB,CAAlB,CAuFhBkC,CAvFgB,CAtNlB,CA8SIkU,GAAkB,QAAS,CAACL,CAAD,CAAS,CAEpCK,QAASA,EAAc,CAACc,CAAD,CAAoBC,CAApB,CAAoCvU,CAApC,CAA2Cf,CAA3C,CAAqD,CACxE,IAAI2C,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAA0S,kBAAA,CAA0BA,CAC1B,KAAI7U,CACAwB,EAAAA,CAAUW,CACV1F,EAAA,CAAWqY,CAAX,CAAJ,CACI9U,CADJ,CACW8U,CADX,CAGSA,CAHT,GAII9U,CAGA,CAHO8U,CAAA9U,KAGP,CAFAO,CAEA,CAFQuU,CAAAvU,MAER,CADAf,CACA,CADWsV,CAAAtV,SACX,CAAIsV,CAAJ,GAAuB1C,EAAvB;CACI5Q,CAIA,CAJUjF,MAAAC,OAAA,CAAcsY,CAAd,CAIV,CAHIrY,CAAA,CAAW+E,CAAA0E,YAAX,CAGJ,EAFI/D,CAAApC,IAAA,CAAUyB,CAAA0E,YAAA6O,KAAA,CAAyBvT,CAAzB,CAAV,CAEJ,CAAAA,CAAA0E,YAAA,CAAsB/D,CAAA+D,YAAA6O,KAAA,CAAuB5S,CAAvB,CAL1B,CAPJ,CAeAA,EAAA6S,SAAA,CAAiBxT,CACjBW,EAAA+R,MAAA,CAAclU,CACdmC,EAAAiS,OAAA,CAAe7T,CACf4B,EAAAmS,UAAA,CAAkB9U,CAClB,OAAO2C,EAxBiE,CAD5EnG,CAAA,CAAU+X,CAAV,CAA0BL,CAA1B,CA2BAK,EAAAzX,UAAA0D,KAAA,CAAgCiV,QAAS,CAACvV,CAAD,CAAQ,CAC7C,GAAKjC,CAAA,IAAAA,UAAL,EAAuB,IAAAyW,MAAvB,CAAmC,CAC/B,IAAIW,EAAoB,IAAAA,kBACnBpW,EAAAwT,sCAAL,EAAsD4C,CAAAf,mBAAtD,CAGS,IAAAoB,gBAAA,CAAqBL,CAArB,CAAwC,IAAAX,MAAxC,CAAoDxU,CAApD,CAHT,EAII,IAAAwG,YAAA,EAJJ,CACI,IAAAiP,aAAA,CAAkB,IAAAjB,MAAlB,CAA8BxU,CAA9B,CAH2B,CADU,CAWjDqU,EAAAzX,UAAAiE,MAAA,CAAiC6U,QAAS,CAACxY,CAAD,CAAM,CAC5C,GAAKa,CAAA,IAAAA,UAAL,CAAqB,CACjB,IAAIoX,EAAoB,IAAAA,kBAAxB,CACI5C,EAAwCxT,CAAAwT,sCAC5C;GAAI,IAAAmC,OAAJ,CACSnC,CAAL,EAA+C4C,CAAAf,mBAA/C,CAKI,IAAAoB,gBAAA,CAAqBL,CAArB,CAAwC,IAAAT,OAAxC,CAAqDxX,CAArD,CALJ,CACI,IAAAuY,aAAA,CAAkB,IAAAf,OAAlB,CAA+BxX,CAA/B,CACA,CAAA,IAAAsJ,YAAA,EAHR,KAUK,IAAK2O,CAAAf,mBAAL,CAQG7B,CAAJ,EACI4C,CAAAjB,eACA,CADmChX,CACnC,CAAAiY,CAAAhB,gBAAA,CAAoC,CAAA,CAFxC,EAKIlX,CAAA,CAAgBC,CAAhB,CAEJ,CAAA,IAAAsJ,YAAA,EAfC,KAA2C,CAC5C,IAAAA,YAAA,EACA,IAAI+L,CAAJ,CACI,KAAMrV,EAAN,CAEJD,CAAA,CAAgBC,CAAhB,CAL4C,CAb/B,CADuB,CAiChDmX,EAAAzX,UAAAkD,SAAA,CAAoC6V,QAAS,EAAG,CAC5C,IAAIlT,EAAQ,IACZ,IAAK1E,CAAA,IAAAA,UAAL,CAAqB,CACjB,IAAIoX,EAAoB,IAAAA,kBACxB,IAAI,IAAAP,UAAJ,CAAoB,CAChB,IAAIgB,EAAkBA,QAAS,EAAG,CAAE,MAAOnT,EAAAmS,UAAAtO,KAAA,CAAqB7D,CAAA6S,SAArB,CAAT,CAC7BvW,EAAAwT,sCAAL,EAAsD4C,CAAAf,mBAAtD,CAKI,IAAAoB,gBAAA,CAAqBL,CAArB;AAAwCS,CAAxC,CALJ,CACI,IAAAH,aAAA,CAAkBG,CAAlB,CAHY,CAIZ,IAAApP,YAAA,EANS,CAFuB,CAoBhD6N,EAAAzX,UAAA6Y,aAAA,CAAwCI,QAAS,CAACjX,CAAD,CAAKoB,CAAL,CAAY,CACzD,GAAI,CACApB,CAAA0H,KAAA,CAAQ,IAAAgP,SAAR,CAAuBtV,CAAvB,CADA,CAGJ,MAAO9C,CAAP,CAAY,CACR,IAAAsJ,YAAA,EACA,IAAIzH,CAAAwT,sCAAJ,CACI,KAAMrV,EAAN,CAGAD,CAAA,CAAgBC,CAAhB,CANI,CAJ6C,CAc7DmX,EAAAzX,UAAA4Y,gBAAA,CAA2CM,QAAS,CAACC,CAAD,CAASnX,CAAT,CAAaoB,CAAb,CAAoB,CACpE,GAAKuS,CAAAxT,CAAAwT,sCAAL,CACI,KAAUtT,MAAJ,CAAU,UAAV,CAAN,CAEJ,GAAI,CACAL,CAAA0H,KAAA,CAAQ,IAAAgP,SAAR,CAAuBtV,CAAvB,CADA,CAGJ,MAAO9C,CAAP,CAAY,CAIJ,MAHA6B,EAAAwT,sCAAJ,EACIwD,CAAA7B,eACA,CADwBhX,CACxB,CAAA6Y,CAAA5B,gBAAA,CAAyB,CAAA,CAF7B,EAMIlX,CAAA,CAAgBC,CAAhB,CAHO,CAAA,CAAA,CAJH,CAWZ,MAAO,CAAA,CAlB6D,CAoBxEmX,EAAAzX,UAAAsW,aAAA,CAAwC8C,QAAS,EAAG,CAChD,IAAIb,EAAoB,IAAAA,kBAExB;IAAAA,kBAAA,CADA,IAAAG,SACA,CADgB,IAEhBH,EAAA3O,YAAA,EAJgD,CAMpD,OAAO6N,EApI6B,CAAlB,CAqIpBpW,CArIoB,CA9StB,CAodI6F,EAAqD,UAArDA,GAAmC,MAAOgQ,OAA1ChQ,EAAmEgQ,MAAAhQ,WAAnEA,EAAwF,cApd5F,CA2eInE,EAAc,QAAS,EAAG,CAC1BA,QAASA,EAAU,CAAC6C,CAAD,CAAY,CAC3B,IAAAyT,UAAA,CAAiB,CAAA,CACbzT,EAAJ,GACI,IAAA0T,WADJ,CACsB1T,CADtB,CAF2B,CAM/B7C,CAAA/C,UAAAyC,KAAA,CAA4B8W,QAAS,CAACC,CAAD,CAAW,CAC5C,IAAIvS,EAAgB,IAAIlE,CACxBkE,EAAAzE,OAAA,CAAuB,IACvByE,EAAAuS,SAAA,CAAyBA,CACzB,OAAOvS,EAJqC,CAMhDlE,EAAA/C,UAAA4F,UAAA,CAAiC6T,QAAS,CAACjB,CAAD,CAAiBvU,CAAjB,CAAwBf,CAAxB,CAAkC,CACxE,IAAIsW,EAAW,IAAAA,SApDgC,EAAA,CAAA,CACnD,GAoD4BhB,CApD5B,CAAoB,CAChB,GAmDwBA,CAnDxB,WAA8BnX,EAA9B,CACI,MAAA,CAEJ,IAgDwBmX,CAhDpB,CAAevB,EAAf,CAAJ,CAAkC,CAC9B,CAAA,CA+CoBuB,CA/Cb,CAAevB,EAAf,CAAA,EAAP,OAAA,CAD8B,CAJlB,CAWpB,CAAA,CAyC4BuB,CA5C5B,EA4C4CvU,CA5C5C,EA4CmDf,CA5CnD,CAGO,IAAI7B,CAAJ,CAyCqBmX,CAzCrB,CAyCqCvU,CAzCrC,CAyC4Cf,CAzC5C,CAHP,CACW,IAAI7B,CAAJ,CAAeyU,EAAf,CAVwC,CAsD3C0D,CAAJ,CACIE,CAAAjW,IAAA,CAAS+V,CAAA9P,KAAA,CAAcgQ,CAAd,CAAoB,IAAAlX,OAApB,CAAT,CADJ,CAIIkX,CAAAjW,IAAA,CAAS,IAAAjB,OAAA,EAAgBL,CAAAwT,sCAAhB;AAAiE6B,CAAAkC,CAAAlC,mBAAjE,CACL,IAAA8B,WAAA,CAAgBI,CAAhB,CADK,CAEL,IAAAC,cAAA,CAAmBD,CAAnB,CAFJ,CAIJ,IAAIvX,CAAAwT,sCAAJ,EACQ+D,CAAAlC,mBADR,GAEQkC,CAAAlC,mBACID,CADsB,CAAA,CACtBA,CAAAmC,CAAAnC,gBAHZ,EAIY,KAAMmC,EAAApC,eAAN,CAIZ,MAAOoC,EAnBiE,CAqB5E3W,EAAA/C,UAAA2Z,cAAA,CAAqCC,QAAS,CAACF,CAAD,CAAO,CACjD,GAAI,CACA,MAAO,KAAAJ,WAAA,CAAgBI,CAAhB,CADP,CAGJ,MAAOpZ,CAAP,CAAY,CACJ6B,CAAAwT,sCAIJ,GAHI+D,CAAAnC,gBACA,CADuB,CAAA,CACvB,CAAAmC,CAAApC,eAAA,CAAsBhX,CAE1B,EAAIS,EAAA,CAAe2Y,CAAf,CAAJ,CACIA,CAAAzV,MAAA,CAAW3D,CAAX,CADJ,CAIIoF,OAAAC,KAAA,CAAarF,CAAb,CATI,CAJqC,CAiBrDyC,EAAA/C,UAAA6Z,QAAA,CAA+BC,QAAS,CAACpW,CAAD,CAAOxB,CAAP,CAAoB,CACxD,IAAI2D,EAAQ,IACZ3D,EAAA,CAAcD,EAAA,CAAeC,CAAf,CACd,OAAO,KAAIA,CAAJ,CAAgB,QAAS,CAAC6X,CAAD,CAAUC,CAAV,CAAkB,CAC9C,IAAItO,CACJA,EAAA,CAAe7F,CAAAD,UAAA,CAAgB,QAAS,CAACxC,CAAD,CAAQ,CAC5C,GAAI,CACAM,CAAA,CAAKN,CAAL,CADA,CAGJ,MAAO9C,CAAP,CAAY,CACR0Z,CAAA,CAAO1Z,CAAP,CACA;AAAIoL,CAAJ,EACIA,CAAA9B,YAAA,EAHI,CAJgC,CAAjC,CAUZoQ,CAVY,CAUJD,CAVI,CAF+B,CAA3C,CAHiD,CAkB5DhX,EAAA/C,UAAAsZ,WAAA,CAAkCW,QAAS,CAACjX,CAAD,CAAa,CACpD,IAAIR,EAAS,IAAAA,OACb,OAAOA,EAAP,EAAiBA,CAAAoD,UAAA,CAAiB5C,CAAjB,CAFmC,CAIxDD,EAAA/C,UAAA,CAAqBkH,CAArB,CAAA,CAAmC,QAAS,EAAG,CAC3C,MAAO,KADoC,CAG/CnE,EAAA/C,UAAAuB,KAAA,CAA4B2Y,QAAS,EAAG,CAEpC,IADA,IAAIC,EAAa,EAAjB,CACS1Y,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI0Y,CAAA,CAAW1Y,CAAX,CAAA,CAAiBC,SAAA,CAAUD,CAAV,CAErB,OAA0B,EAA1B,GAAI0Y,CAAAxY,OAAJ,CACW,IADX,CAGOC,EAAA,CAAcuY,CAAd,CAAA,CAA0B,IAA1B,CAR6B,CAUxCpX,EAAA/C,UAAAoa,UAAA,CAAiCC,QAAS,CAACnY,CAAD,CAAc,CACpD,IAAI2D,EAAQ,IACZ3D,EAAA,CAAcD,EAAA,CAAeC,CAAf,CACd,OAAO,KAAIA,CAAJ,CAAgB,QAAS,CAAC6X,CAAD,CAAUC,CAAV,CAAkB,CAC9C,IAAI5W,CACJyC,EAAAD,UAAA,CAAgB,QAAS,CAACxF,CAAD,CAAI,CAAE,MAAOgD,EAAP,CAAehD,CAAjB,CAA7B,CAAoD,QAAS,CAACE,CAAD,CAAM,CAAE,MAAO0Z,EAAA,CAAO1Z,CAAP,CAAT,CAAnE,CAA4F,QAAS,EAAG,CAAE,MAAOyZ,EAAA,CAAQ3W,CAAR,CAAT,CAAxG,CAF8C,CAA3C,CAH6C,CAQxDL,EAAA7C,OAAA,CAAoBoa,QAAS,CAAC1U,CAAD,CAAY,CACrC,MAAO,KAAI7C,CAAJ,CAAe6C,CAAf,CAD8B,CAGzC,OAAO7C,EAjGmB,CAAZ,EA3elB,CAkmBIwX,EAV+B,QAAS,EAAG,CAC3CC,QAASA,EAA2B,EAAG,CACnCnY,KAAAqH,KAAA,CAAW,IAAX,CACA;IAAAsM,QAAA,CAAe,qBACf,KAAAG,KAAA,CAAY,yBACZ,OAAO,KAJ4B,CAMvCqE,CAAAxa,UAAA,CAAwCC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CACxC,OAAOwa,EARoC,CAAbA,EAxlBlC,CAomBIC,GAAuB,QAAS,CAACrD,CAAD,CAAS,CAEzCqD,QAASA,EAAmB,CAACtV,CAAD,CAAUnC,CAAV,CAAsB,CAC9C,IAAI6C,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAV,QAAA,CAAgBA,CAChBU,EAAA7C,WAAA,CAAmBA,CACnB6C,EAAAzE,OAAA,CAAe,CAAA,CACf,OAAOyE,EALuC,CADlDnG,CAAA,CAAU+a,CAAV,CAA+BrD,CAA/B,CAQAqD,EAAAza,UAAA4J,YAAA,CAA4C8Q,QAAS,EAAG,CACpD,GAAItZ,CAAA,IAAAA,OAAJ,CAAA,CAGA,IAAAA,OAAA,CAAc,CAAA,CACd,KAAI+D,EAAU,IAAAA,QAAd,CACIwV,EAAYxV,CAAAwV,UAChB,KAAAxV,QAAA,CAAe,IACVwV,EAAAA,CAAL,EAAuC,CAAvC,GAAkBA,CAAAhZ,OAAlB,EAA4CwD,CAAAhE,UAA5C,EAAiEgE,CAAA/D,OAAjE,GAGIwZ,CACJ,CADsBD,CAAA/D,QAAA,CAAkB,IAAA5T,WAAlB,CACtB,CAAyB,EAAzB,GAAI4X,CAAJ,EACID,CAAA3D,OAAA,CAAiB4D,CAAjB,CAAkC,CAAlC,CALJ,CAPA,CADoD,CAgBxD,OAAOH,EAzBkC,CAAlB,CA0BzBlX,CA1ByB,CApmB3B,CAgoBIsX,GAAqB,QAAS,CAACzD,CAAD,CAAS,CAEvCyD,QAASA,EAAiB,CAAC5Z,CAAD,CAAc,CACpC,IAAI4E;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB,OAAO4E,EAH6B,CADxCnG,CAAA,CAAUmb,CAAV,CAA6BzD,CAA7B,CAMA,OAAOyD,EAPgC,CAAlB,CAQvBxZ,CARuB,CAhoBzB,CAyoBIyP,EAAW,QAAS,CAACsG,CAAD,CAAS,CAE7BtG,QAASA,EAAO,EAAG,CACf,IAAIjL,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAA8U,UAAA,CAAkB,EAClB9U,EAAAzE,OAAA,CAAe,CAAA,CACfyE,EAAA1E,UAAA,CAAkB,CAAA,CAClB0E,EAAAwL,SAAA,CAAiB,CAAA,CACjBxL,EAAAiV,YAAA,CAAoB,IACpB,OAAOjV,EAPQ,CADnBnG,CAAA,CAAUoR,CAAV,CAAmBsG,CAAnB,CAUAtG,EAAA9Q,UAAA,CAAkBiX,EAAlB,CAAA,CAAkC,QAAS,EAAG,CAC1C,MAAO,KAAI4D,EAAJ,CAAsB,IAAtB,CADmC,CAG9C/J,EAAA9Q,UAAAyC,KAAA,CAAyBsY,QAAS,CAACvB,CAAD,CAAW,CACzC,IAAIrU,EAAU,IAAI6V,EAAJ,CAAqB,IAArB,CAA2B,IAA3B,CACd7V,EAAAqU,SAAA,CAAmBA,CACnB,OAAOrU,EAHkC,CAK7C2L,EAAA9Q,UAAA0D,KAAA,CAAyBuX,QAAS,CAAC7X,CAAD,CAAQ,CACtC,GAAI,IAAAhC,OAAJ,CACI,KAAM,KAAImZ,CAAV,CAEJ,GAAKpZ,CAAA,IAAAA,UAAL,CAII,IAHA,IAAIwZ,EAAY,IAAAA,UAAhB,CACIhS,EAAMgS,CAAAhZ,OADV,CAEIuZ,EAAOP,CAAAlR,MAAA,EAFX,CAGSjG,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI0X,CAAA,CAAK1X,CAAL,CAAAE,KAAA,CAAaN,CAAb,CAT8B,CAa1C0N,EAAA9Q,UAAAiE,MAAA,CAA0BkX,QAAS,CAAC7a,CAAD,CAAM,CACrC,GAAI,IAAAc,OAAJ,CACI,KAAM,KAAImZ,CAAV;AAEJ,IAAAlJ,SAAA,CAAgB,CAAA,CAChB,KAAAyJ,YAAA,CAAmBxa,CACnB,KAAAa,UAAA,CAAiB,CAAA,CAIjB,KAHA,IAAIwZ,EAAY,IAAAA,UAAhB,CACIhS,EAAMgS,CAAAhZ,OADV,CAEIuZ,EAAOP,CAAAlR,MAAA,EAFX,CAGSjG,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI0X,CAAA,CAAK1X,CAAL,CAAAS,MAAA,CAAc3D,CAAd,CAEJ,KAAAqa,UAAAhZ,OAAA,CAAwB,CAba,CAezCmP,EAAA9Q,UAAAkD,SAAA,CAA6BkY,QAAS,EAAG,CACrC,GAAI,IAAAha,OAAJ,CACI,KAAM,KAAImZ,CAAV,CAEJ,IAAApZ,UAAA,CAAiB,CAAA,CAIjB,KAHA,IAAIwZ,EAAY,IAAAA,UAAhB,CACIhS,EAAMgS,CAAAhZ,OADV,CAEIuZ,EAAOP,CAAAlR,MAAA,EAFX,CAGSjG,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI0X,CAAA,CAAK1X,CAAL,CAAAN,SAAA,EAEJ,KAAAyX,UAAAhZ,OAAA,CAAwB,CAXa,CAazCmP,EAAA9Q,UAAA4J,YAAA,CAAgCyR,QAAS,EAAG,CAExC,IAAAja,OAAA,CADA,IAAAD,UACA,CADiB,CAAA,CAEjB,KAAAwZ,UAAA,CAAiB,IAHuB,CAK5C7J,EAAA9Q,UAAA2Z,cAAA,CAAkC2B,QAAS,CAACtY,CAAD,CAAa,CACpD,GAAI,IAAA5B,OAAJ,CACI,KAAM,KAAImZ,CAAV,CAGA,MAAOnD,EAAApX,UAAA2Z,cAAAjQ,KAAA,CAAoC,IAApC;AAA0C1G,CAA1C,CALyC,CAQxD8N,EAAA9Q,UAAAsZ,WAAA,CAA+BiC,QAAS,CAACvY,CAAD,CAAa,CACjD,GAAI,IAAA5B,OAAJ,CACI,KAAM,KAAImZ,CAAV,CAEC,GAAI,IAAAlJ,SAAJ,CAED,MADArO,EAAAiB,MAAA,CAAiB,IAAA6W,YAAjB,CACOhY,CAAAS,CAAAT,MAEN,IAAI,IAAA3B,UAAJ,CAED,MADA6B,EAAAE,SAAA,EACOJ,CAAAS,CAAAT,MAGP,KAAA6X,UAAAjI,KAAA,CAAoB1P,CAApB,CACA,OAAO,KAAIyX,EAAJ,CAAwB,IAAxB,CAA8BzX,CAA9B,CAdsC,CAiBrD8N,EAAA9Q,UAAAwb,aAAA,CAAiCC,QAAS,EAAG,CACzC,IAAIvU,EAAa,IAAInE,CACrBmE,EAAA1E,OAAA,CAAoB,IACpB,OAAO0E,EAHkC,CAK7C4J,EAAA5Q,OAAA,CAAiBwb,QAAS,CAACza,CAAD,CAAcuB,CAAd,CAAsB,CAC5C,MAAO,KAAIwY,EAAJ,CAAqB/Z,CAArB,CAAkCuB,CAAlC,CADqC,CAGhD,OAAOsO,EAlGsB,CAAlB,CAmGb/N,CAnGa,CAzoBf,CA6uBIiY,GAAoB,QAAS,CAAC5D,CAAD,CAAS,CAEtC4D,QAASA,EAAgB,CAAC/Z,CAAD,CAAcuB,CAAd,CAAsB,CAC3C,IAAIqD,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAArD,OAAA,CAAeA,CACf,OAAOqD,EAJoC,CAD/CnG,CAAA,CAAUsb,CAAV,CAA4B5D,CAA5B,CAOA4D,EAAAhb,UAAA0D,KAAA,CAAkCiY,QAAS,CAACvY,CAAD,CAAQ,CAC/C,IAAInC,EAAc,IAAAA,YACdA,EAAJ,EAAmBA,CAAAyC,KAAnB;AACIzC,CAAAyC,KAAA,CAAiBN,CAAjB,CAH2C,CAMnD4X,EAAAhb,UAAAiE,MAAA,CAAmC2X,QAAS,CAACtb,CAAD,CAAM,CAC9C,IAAIW,EAAc,IAAAA,YACdA,EAAJ,EAAmBA,CAAAgD,MAAnB,EACI,IAAAhD,YAAAgD,MAAA,CAAuB3D,CAAvB,CAH0C,CAMlD0a,EAAAhb,UAAAkD,SAAA,CAAsC2Y,QAAS,EAAG,CAC9C,IAAI5a,EAAc,IAAAA,YACdA,EAAJ,EAAmBA,CAAAiC,SAAnB,EACI,IAAAjC,YAAAiC,SAAA,EAH0C,CAMlD8X,EAAAhb,UAAAsZ,WAAA,CAAwCwC,QAAS,CAAC9Y,CAAD,CAAa,CAE1D,MADa,KAAAR,OACb,CACW,IAAAA,OAAAoD,UAAA,CAAsB5C,CAAtB,CADX,CAIWO,CAAAT,MAN+C,CAS9D,OAAOkY,EAnC+B,CAAlB,CAoCtBlK,CApCsB,CA7uBxB,CAwxBIpO,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAAC0N,CAAD,CAAc,CACnC,IAAAA,YAAA,CAAmBA,CADgB,CAGvC1N,CAAA1C,UAAA0J,KAAA,CAAkCqS,QAAS,CAAC/Y,CAAD,CAAaR,CAAb,CAAqB,CAC5D,IAAI4N,EAAc,IAAAA,YAClBA,EAAA4L,UAAA,EACIC,EAAAA,CAAa,IAAIC,EAAJ,CAAuBlZ,CAAvB,CAAmCoN,CAAnC,CACb1E,EAAAA,CAAelJ,CAAAoD,UAAA,CAAiBqW,CAAjB,CACdA,EAAA7a,OAAL,GACI6a,CAAAE,WADJ,CAC4B/L,CAAAgM,QAAA,EAD5B,CAGA,OAAO1Q,EARqD,CAUhE,OAAOhJ,EAdyB,CAAZ,EAxxBxB;AAwyBIwZ,GAAsB,QAAS,CAAC9E,CAAD,CAAS,CAExC8E,QAASA,EAAkB,CAACjb,CAAD,CAAcmP,CAAd,CAA2B,CAC9CvK,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAuK,YAAA,CAAoBA,CACpB,OAAOvK,EAH2C,CADtDnG,CAAA,CAAUwc,CAAV,CAA8B9E,CAA9B,CAMA8E,EAAAlc,UAAAsW,aAAA,CAA4C+F,QAAS,EAAG,CACpD,IAAIjM,EAAc,IAAAA,YAClB,IAAKA,CAAL,CAAA,CAIA,IAAAA,YAAA,CAAmB,IACnB,KAAI9N,EAAW8N,CAAA4L,UACC,EAAhB,EAAI1Z,CAAJ,CACI,IAAA6Z,WADJ,CACsB,IADtB,EAIA/L,CAAA4L,UACA,CADwB1Z,CACxB,CADmC,CACnC,CAAe,CAAf,CAAIA,CAAJ,CACI,IAAA6Z,WADJ,CACsB,IADtB,EAIIA,CAGJ,CAHiB,IAAAA,WAGjB,CAFIG,CAEJ,CAFuBlM,CAAAmM,YAEvB,CADA,IAAAJ,WACA,CADkB,IAClB,CAAIG,CAAAA,CAAJ,EAA0BH,CAA1B,EAAwCG,CAAxC,GAA6DH,CAA7D,EACIG,CAAA1S,YAAA,EARJ,CALA,CANA,CAAA,IACI,KAAAuS,WAAA,CAAkB,IAH8B,CAwBxD,OAAOD,EA/BiC,CAAlB,CAgCxB7a,CAhCwB,CAxyB1B,CA00BImb,GAAyB,QAAS,CAACpF,CAAD,CAAS,CAE3CoF,QAASA,EAAqB,CAACha,CAAD,CAAS0N,CAAT,CAAyB,CACnD,IAAIrK,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAArD,OAAA,CAAeA,CACfqD,EAAAqK,eAAA,CAAuBA,CACvBrK,EAAAmW,UAAA,CAAkB,CAClBnW,EAAA4W,YAAA;AAAoB,CAAA,CACpB,OAAO5W,EAN4C,CADvDnG,CAAA,CAAU8c,CAAV,CAAiCpF,CAAjC,CASAoF,EAAAxc,UAAAsZ,WAAA,CAA6CoD,QAAS,CAAC1Z,CAAD,CAAa,CAC/D,MAAO,KAAA2Z,WAAA,EAAA/W,UAAA,CAA4B5C,CAA5B,CADwD,CAGnEwZ,EAAAxc,UAAA2c,WAAA,CAA6CC,QAAS,EAAG,CACrD,IAAIzX,EAAU,IAAA0X,SACd,IAAK1X,CAAAA,CAAL,EAAgBA,CAAAhE,UAAhB,CACI,IAAA0b,SAAA,CAAgB,IAAA3M,eAAA,EAEpB,OAAO,KAAA2M,SAL8C,CAOzDL,EAAAxc,UAAAoc,QAAA,CAA0CU,QAAS,EAAG,CAClD,IAAIX,EAAa,IAAAI,YACZJ,EAAL,GACI,IAAAM,YAIA,CAJmB,CAAA,CAInB,CAHAN,CAGA,CAHa,IAAAI,YAGb,CAHgC,IAAIhZ,CAGpC,CAFA4Y,CAAA1Y,IAAA,CAAe,IAAAjB,OAAAoD,UAAA,CACA,IAAImX,EAAJ,CAA0B,IAAAJ,WAAA,EAA1B,CAA6C,IAA7C,CADA,CAAf,CAEA,CAAIR,CAAA/a,OAAJ,GACI,IAAAmb,YACA,CADmB,IACnB,CAAAJ,CAAA,CAAa5Y,CAAAT,MAFjB,CALJ,CAUA,OAAOqZ,EAZ2C,CActDK,EAAAxc,UAAAsC,SAAA,CAA2C0a,QAAS,EAAG,CACnD,MAAO1a,GAAA,EAAA,CAAW,IAAX,CAD4C,CAGvD,OAAOka,EArCoC,CAAlB,CAsC3BzZ,CAtC2B,CA10B7B;AAi3BIsN,GAAmC,QAAS,EAAG,CAC/C,IAAI4M,EAAmBT,EAAAxc,UACvB,OAAO,CACHwZ,SAAU,CAAEpW,MAAO,IAAT,CADP,CAEH4Y,UAAW,CAAE5Y,MAAO,CAAT,CAAY8Z,SAAU,CAAA,CAAtB,CAFR,CAGHL,SAAU,CAAEzZ,MAAO,IAAT,CAAe8Z,SAAU,CAAA,CAAzB,CAHP,CAIHX,YAAa,CAAEnZ,MAAO,IAAT,CAAe8Z,SAAU,CAAA,CAAzB,CAJV,CAKH5D,WAAY,CAAElW,MAAO6Z,CAAA3D,WAAT,CALT,CAMHmD,YAAa,CAAErZ,MAAO6Z,CAAAR,YAAT,CAAuCS,SAAU,CAAA,CAAjD,CANV,CAOHP,WAAY,CAAEvZ,MAAO6Z,CAAAN,WAAT,CAPT,CAQHP,QAAS,CAAEhZ,MAAO6Z,CAAAb,QAAT,CARN,CASH9Z,SAAU,CAAEc,MAAO6Z,CAAA3a,SAAT,CATP,CAFwC,CAAb,EAj3BtC,CA+3BIya,GAAyB,QAAS,CAAC3F,CAAD,CAAS,CAE3C2F,QAASA,EAAqB,CAAC9b,CAAD,CAAcmP,CAAd,CAA2B,CACjDvK,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAuK,YAAA,CAAoBA,CACpB,OAAOvK,EAH8C,CADzDnG,CAAA,CAAUqd,CAAV,CAAiC3F,CAAjC,CAMA2F,EAAA/c,UAAA8X,OAAA,CAAyCqF,QAAS,CAAC7c,CAAD,CAAM,CACpD,IAAAgW,aAAA,EACAc,EAAApX,UAAA8X,OAAApO,KAAA,CAA6B,IAA7B,CAAmCpJ,CAAnC,CAFoD,CAIxDyc;CAAA/c,UAAAgY,UAAA,CAA4CoF,QAAS,EAAG,CACpD,IAAAhN,YAAAqM,YAAA,CAA+B,CAAA,CAC/B,KAAAnG,aAAA,EACAc,EAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CAHoD,CAKxDqT,EAAA/c,UAAAsW,aAAA,CAA+C+G,QAAS,EAAG,CACvD,IAAIjN,EAAc,IAAAA,YAClB,IAAIA,CAAJ,CAAiB,CACb,IAAAA,YAAA,CAAmB,IACnB,KAAI+L,EAAa/L,CAAAmM,YACjBnM,EAAA4L,UAAA,CAAwB,CACxB5L,EAAAyM,SAAA,CAAuB,IACvBzM,EAAAmM,YAAA,CAA0B,IACtBJ,EAAJ,EACIA,CAAAvS,YAAA,EAPS,CAFsC,CAa3D,OAAOmT,EA7BoC,CAAlB,CA8B3BlC,EA9B2B,CA+BD,UAAS,CAACzD,CAAD,CAAS,CAE1C8E,QAASA,EAAkB,CAACjb,CAAD,CAAcmP,CAAd,CAA2B,CAC9CvK,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAuK,YAAA,CAAoBA,CACpB,OAAOvK,EAH2C,CADtDnG,CAAA,CAAUwc,CAAV,CAA8B9E,CAA9B,CAMA8E,EAAAlc,UAAAsW,aAAA,CAA4C+F,QAAS,EAAG,CACpD,IAAIjM,EAAc,IAAAA,YAClB,IAAKA,CAAL,CAAA,CAIA,IAAAA,YAAA,CAAmB,IACnB,KAAIkN,EAAclN,CAAA4L,UACC,EAAnB;AAAIsB,CAAJ,CACI,IAAAnB,WADJ,CACsB,IADtB,EAIA/L,CAAA4L,UACA,CADwBsB,CACxB,CADsC,CACtC,CAAkB,CAAlB,CAAIA,CAAJ,CACI,IAAAnB,WADJ,CACsB,IADtB,EAIIA,CAGJ,CAHiB,IAAAA,WAGjB,CAFIG,CAEJ,CAFuBlM,CAAAmM,YAEvB,CADA,IAAAJ,WACA,CADkB,IAClB,CAAIG,CAAAA,CAAJ,EAA0BH,CAA1B,EAAwCG,CAAxC,GAA6DH,CAA7D,EACIG,CAAA1S,YAAA,EARJ,CALA,CANA,CAAA,IACI,KAAAuS,WAAA,CAAkB,IAH8B,CAwBxD,OAAOD,EA/BmC,CAAlB,CAAA,CAgC1B7a,CAhC0B,CAuC5B,KAAIkc,GAAmB,QAAS,EAAG,CAC/BA,QAASA,EAAe,CAAChP,CAAD,CAAciP,CAAd,CAA+BtQ,CAA/B,CAAiDuQ,CAAjD,CAAkE,CACtF,IAAAlP,YAAA,CAAmBA,CACnB,KAAAiP,gBAAA,CAAuBA,CACvB,KAAAtQ,iBAAA,CAAwBA,CACxB,KAAAuQ,gBAAA,CAAuBA,CAJ+D,CAM1FF,CAAAvd,UAAA0J,KAAA,CAAiCgU,QAAS,CAAC1a,CAAD,CAAaR,CAAb,CAAqB,CAC3D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+X,EAAJ,CAAsB3a,CAAtB,CAAkC,IAAAuL,YAAlC,CAAoD,IAAAiP,gBAApD,CAA0E,IAAAtQ,iBAA1E,CAAiG,IAAAuQ,gBAAjG,CAAjB,CADoD,CAG/D,OAAOF,EAVwB,CAAZ,EAAvB,CAYII,GAAqB,QAAS,CAACvG,CAAD,CAAS,CAEvCuG,QAASA,EAAiB,CAAC1c,CAAD;AAAcsN,CAAd,CAA2BiP,CAA3B,CAA4CtQ,CAA5C,CAA8DuQ,CAA9D,CAA+E,CACjG5X,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA0I,YAAA,CAAoBA,CACpB1I,EAAA2X,gBAAA,CAAwBA,CACxB3X,EAAAqH,iBAAA,CAAyBA,CACzBrH,EAAA4X,gBAAA,CAAwBA,CACxB5X,EAAA+X,OAAA,CAAe,IACf/X,EAAAgY,uBAAA,CAA+B,CAAA,CAC/BhY,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EAT8F,CADzGnG,CAAA,CAAUie,CAAV,CAA6BvG,CAA7B,CAYAuG,EAAA3d,UAAA4X,MAAA,CAAoCkG,QAAS,CAAC1a,CAAD,CAAQ,CACjD,IAAI8F,CACJ,IAAI,CACAA,CAAA,CAAM,IAAAqF,YAAA,CAAiBnL,CAAjB,CADN,CAGJ,MAAO9C,CAAP,CAAY,CACR,IAAA2D,MAAA,CAAW3D,CAAX,CACA,OAFQ,CAIZ,IAAAyd,OAAA,CAAY3a,CAAZ,CAAmB8F,CAAnB,CATiD,CAWrDyU,EAAA3d,UAAA+d,OAAA,CAAqCC,QAAS,CAAC5a,CAAD,CAAQ8F,CAAR,CAAa,CACvD,IAAI0U,EAAS,IAAAA,OACRA,EAAL,GACIA,CADJ,CACa,IAAAA,OADb,CAC2B,IAAIK,GAD/B,CAGA,KAAIC,EAAQN,CAAAO,IAAA,CAAWjV,CAAX,CAAZ,CACIkV,CACJ,IAAI,IAAAZ,gBAAJ,CACI,GAAI,CACAY,CAAA,CAAU,IAAAZ,gBAAA,CAAqBpa,CAArB,CADV,CAGJ,MAAO9C,CAAP,CAAY,CACR,IAAA2D,MAAA,CAAW3D,CAAX,CADQ,CAJhB,IASI8d,EAAA,CAAUhb,CAEd,IAAK8a,CAAAA,CAAL,GACIA,CAIIhR,CAJK,IAAAuQ,gBAAA,CAAuB,IAAAA,gBAAA,EAAvB;AAAgD,IAAI3M,CAIzD5D,CAHJ0Q,CAAAS,IAAA,CAAWnV,CAAX,CAAgBgV,CAAhB,CAGIhR,CAFAoR,CAEApR,CAFoB,IAAIqR,EAAJ,CAAsBrV,CAAtB,CAA2BgV,CAA3B,CAAkC,IAAlC,CAEpBhR,CADJ,IAAAjM,YAAAyC,KAAA,CAAsB4a,CAAtB,CACIpR,CAAA,IAAAA,iBALR,EAK+B,CACnBsR,CAAAA,CAAW,IAAK,EACpB,IAAI,CACAA,CAAA,CAAW,IAAAtR,iBAAA,CAAsB,IAAIqR,EAAJ,CAAsBrV,CAAtB,CAA2BgV,CAA3B,CAAtB,CADX,CAGJ,MAAO5d,CAAP,CAAY,CACR,IAAA2D,MAAA,CAAW3D,CAAX,CACA,OAFQ,CAIZ,IAAAmD,IAAA,CAAS+a,CAAA5Y,UAAA,CAAmB,IAAI6Y,EAAJ,CAA4BvV,CAA5B,CAAiCgV,CAAjC,CAAwC,IAAxC,CAAnB,CAAT,CATuB,CAY1BA,CAAA9c,OAAL,EACI8c,CAAAxa,KAAA,CAAW0a,CAAX,CApCmD,CAuC3DT,EAAA3d,UAAA8X,OAAA,CAAqC4G,QAAS,CAACpe,CAAD,CAAM,CAChD,IAAIsd,EAAS,IAAAA,OACTA,EAAJ,GACIA,CAAA/D,QAAA,CAAe,QAAS,CAACqE,CAAD,CAAQhV,CAAR,CAAa,CACjCgV,CAAAja,MAAA,CAAY3D,CAAZ,CADiC,CAArC,CAGA,CAAAsd,CAAAe,MAAA,EAJJ,CAMA,KAAA1d,YAAAgD,MAAA,CAAuB3D,CAAvB,CARgD,CAUpDqd,EAAA3d,UAAAgY,UAAA,CAAwC4G,QAAS,EAAG,CAChD,IAAIhB,EAAS,IAAAA,OACTA,EAAJ,GACIA,CAAA/D,QAAA,CAAe,QAAS,CAACqE,CAAD,CAAQhV,CAAR,CAAa,CACjCgV,CAAAhb,SAAA,EADiC,CAArC,CAGA,CAAA0a,CAAAe,MAAA,EAJJ,CAMA,KAAA1d,YAAAiC,SAAA,EARgD,CAUpDya,EAAA3d,UAAA6e,YAAA;AAA0CC,QAAS,CAAC5V,CAAD,CAAM,CACrD,IAAA0U,OAAAmB,OAAA,CAAmB7V,CAAnB,CADqD,CAGzDyU,EAAA3d,UAAA4J,YAAA,CAA0CoV,QAAS,EAAG,CAC7C,IAAA5d,OAAL,GACI,IAAAyc,uBACA,CAD8B,CAAA,CAC9B,CAAmB,CAAnB,GAAI,IAAAtR,MAAJ,EACI6K,CAAApX,UAAA4J,YAAAF,KAAA,CAAkC,IAAlC,CAHR,CADkD,CAQtD,OAAOiU,EA9FgC,CAAlB,CA+FvBtc,CA/FuB,CAZzB,CA4GIod,GAA2B,QAAS,CAACrH,CAAD,CAAS,CAE7CqH,QAASA,EAAuB,CAACvV,CAAD,CAAMgV,CAAN,CAAa/E,CAAb,CAAqB,CACjD,IAAItT,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBwU,CAAlB,CAARrY,EAAoC,IACxCA,EAAAqD,IAAA,CAAYA,CACZrD,EAAAqY,MAAA,CAAcA,CACdrY,EAAAsT,OAAA,CAAeA,CACf,OAAOtT,EAL0C,CADrDnG,CAAA,CAAU+e,CAAV,CAAmCrH,CAAnC,CAQAqH,EAAAze,UAAA4X,MAAA,CAA0CqH,QAAS,CAAC7b,CAAD,CAAQ,CACvD,IAAAF,SAAA,EADuD,CAG3Dub,EAAAze,UAAAsW,aAAA,CAAiD4I,QAAS,EAAG,CAAA,IAC1C/F,EAANjY,IAAeiY,OADiC,CACtBjQ,EAA1BhI,IAAgCgI,IACzC,KAAAA,IAAA,CAAW,IAAAiQ,OAAX,CAAyB,IACrBA,EAAJ,EACIA,CAAA0F,YAAA,CAAmB3V,CAAnB,CAJqD,CAO7D,OAAOuV,EAnBsC,CAAlB,CAoB7Bpd,CApB6B,CA5G/B,CAiIIkd,GAAqB,QAAS,CAACnH,CAAD,CAAS,CAEvCmH,QAASA,EAAiB,CAACrV,CAAD,CAAMiW,CAAN,CAAoBC,CAApB,CAA0C,CAChE,IAAIvZ,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D;AAA6B,IACjCA,EAAAqD,IAAA,CAAYA,CACZrD,EAAAsZ,aAAA,CAAqBA,CACrBtZ,EAAAuZ,qBAAA,CAA6BA,CAC7B,OAAOvZ,EALyD,CADpEnG,CAAA,CAAU6e,CAAV,CAA6BnH,CAA7B,CAQAmH,EAAAve,UAAAsZ,WAAA,CAAyC+F,QAAS,CAACrc,CAAD,CAAa,CAC3D,IAAI0I,EAAe,IAAInI,CAAvB,CACe6b,EAANle,IAA6Bke,qBADtC,CAC+DD,EAAtDje,IAAqEie,aAC1EC,EAAJ,EAA6Bhe,CAAAge,CAAAhe,OAA7B,EACIsK,CAAAjI,IAAA,CAAiB,IAAI6b,EAAJ,CAA8BF,CAA9B,CAAjB,CAEJ1T,EAAAjI,IAAA,CAAiB0b,CAAAvZ,UAAA,CAAuB5C,CAAvB,CAAjB,CACA,OAAO0I,EAPoD,CAS/D,OAAO6S,EAlBgC,CAAlB,CAmBvBxb,CAnBuB,CAjIzB,CAqJIuc,GAA6B,QAAS,CAAClI,CAAD,CAAS,CAE/CkI,QAASA,EAAyB,CAACnG,CAAD,CAAS,CACvC,IAAItT,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAsT,OAAA,CAAeA,CACfA,EAAA5M,MAAA,EACA,OAAO1G,EAJgC,CAD3CnG,CAAA,CAAU4f,CAAV,CAAqClI,CAArC,CAOAkI,EAAAtf,UAAA4J,YAAA,CAAkD2V,QAAS,EAAG,CAC1D,IAAIpG,EAAS,IAAAA,OACRA,EAAA/X,OAAL,EAAuB,IAAAA,OAAvB,GACIgW,CAAApX,UAAA4J,YAAAF,KAAA,CAAkC,IAAlC,CAEA,CADA,EAAAyP,CAAA5M,MACA,CAAqB,CAArB,GAAI4M,CAAA5M,MAAJ,EAA0B4M,CAAA0E,uBAA1B,EACI1E,CAAAvP,YAAA,EAJR,CAF0D,CAU9D;MAAO0V,EAlBwC,CAAlB,CAmB/B/b,CAnB+B,CArJjC,CA0KIic,GAAmB,QAAS,CAACpI,CAAD,CAAS,CAErCoI,QAASA,EAAe,CAACC,CAAD,CAAS,CAC7B,IAAI5Z,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAA4Z,OAAA,CAAeA,CACf,OAAO5Z,EAHsB,CADjCnG,CAAA,CAAU8f,CAAV,CAA2BpI,CAA3B,CAMAnX,OAAAyf,eAAA,CAAsBF,CAAAxf,UAAtB,CAAiD,OAAjD,CAA0D,CACtDme,IAAKA,QAAS,EAAG,CACb,MAAO,KAAAwB,SAAA,EADM,CADqC,CAItDC,WAAY,CAAA,CAJ0C,CAKtDC,aAAc,CAAA,CALwC,CAA1D,CAOAL,EAAAxf,UAAAsZ,WAAA,CAAuCwG,QAAS,CAAC9c,CAAD,CAAa,CACzD,IAAI0I,EAAe0L,CAAApX,UAAAsZ,WAAA5P,KAAA,CAAiC,IAAjC,CAAuC1G,CAAvC,CACf0I,EAAJ,EAAqBtK,CAAAsK,CAAAtK,OAArB,EACI4B,CAAAU,KAAA,CAAgB,IAAA+b,OAAhB,CAEJ,OAAO/T,EALkD,CAO7D8T,EAAAxf,UAAA2f,SAAA,CAAqCI,QAAS,EAAG,CAC7C,GAAI,IAAA1O,SAAJ,CACI,KAAM,KAAAyJ,YAAN,CAEC,GAAI,IAAA1Z,OAAJ,CACD,KAAM,KAAImZ,CAAV,CAGA,MAAO,KAAAkF,OARkC,CAWjDD,EAAAxf,UAAA0D,KAAA,CAAiCsc,QAAS,CAAC5c,CAAD,CAAQ,CAC9CgU,CAAApX,UAAA0D,KAAAgG,KAAA,CAA2B,IAA3B;AAAiC,IAAA+V,OAAjC,CAA+Crc,CAA/C,CAD8C,CAGlD,OAAOoc,EAnC8B,CAAlB,CAoCrB1O,CApCqB,CA1KvB,CA4NImP,GAAe,QAAS,CAAC7I,CAAD,CAAS,CAEjC6I,QAASA,EAAW,CAACrd,CAAD,CAAYsd,CAAZ,CAAkB,CAClC,IAAIra,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB9G,CAAlB,CAA6Bsd,CAA7B,CAARra,EAA8C,IAClDA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAqa,KAAA,CAAaA,CACbra,EAAAsa,QAAA,CAAgB,CAAA,CAChB,OAAOta,EAL2B,CADtCnG,CAAA,CAAUugB,CAAV,CAAuB7I,CAAvB,CAQA6I,EAAAjgB,UAAAiD,SAAA,CAAiCmd,QAAS,CAAC9a,CAAD,CAAQ+a,CAAR,CAAe,CACvC,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAI,IAAAjf,OAAJ,CACI,MAAO,KAEX,KAAAkE,MAAA,CAAaA,CACTgb,EAAAA,CAAK,IAAAA,GACT,KAAI1d,EAAY,IAAAA,UACN,KAAV,EAAI0d,CAAJ,GACI,IAAAA,GADJ,CACc,IAAAC,eAAA,CAAoB3d,CAApB,CAA+B0d,CAA/B,CAAmCD,CAAnC,CADd,CAGA,KAAAF,QAAA,CAAe,CAAA,CACf,KAAAE,MAAA,CAAaA,CACb,KAAAC,GAAA,CAAU,IAAAA,GAAV,EAAqB,IAAAE,eAAA,CAAoB5d,CAApB,CAA+B,IAAA0d,GAA/B,CAAwCD,CAAxC,CACrB,OAAO,KAd8C,CAgBzDJ,EAAAjgB,UAAAwgB,eAAA,CAAuCC,QAAS,CAAC7d,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACrD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAOK,YAAA,CAAY9d,CAAA+d,MAAAlI,KAAA,CAAqB7V,CAArB,CAAgC,IAAhC,CAAZ;AAAmDyd,CAAnD,CAF4D,CAIvEJ,EAAAjgB,UAAAugB,eAAA,CAAuCK,QAAS,CAAChe,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACrD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAc,IAAd,GAAIA,CAAJ,EAAsB,IAAAA,MAAtB,GAAqCA,CAArC,EAA+D,CAAA,CAA/D,GAA8C,IAAAF,QAA9C,CACI,MAAOG,EAEXO,cAAA,CAAcP,CAAd,CALmE,CAQvEL,EAAAjgB,UAAA8gB,QAAA,CAAgCC,QAAS,CAACzb,CAAD,CAAQ+a,CAAR,CAAe,CACpD,GAAI,IAAAjf,OAAJ,CACI,MAAWiB,MAAJ,CAAU,8BAAV,CAEX,KAAA8d,QAAA,CAAe,CAAA,CAEf,IADIlc,CACJ,CADY,IAAA+c,SAAA,CAAc1b,CAAd,CAAqB+a,CAArB,CACZ,CACI,MAAOpc,EAEe,EAAA,CAArB,GAAI,IAAAkc,QAAJ,EAAyC,IAAzC,EAA8B,IAAAG,GAA9B,GACD,IAAAA,GADC,CACS,IAAAC,eAAA,CAAoB,IAAA3d,UAApB,CAAoC,IAAA0d,GAApC,CAA6C,IAA7C,CADT,CAT+C,CAaxDL,EAAAjgB,UAAAghB,SAAA,CAAiCC,QAAS,CAAC3b,CAAD,CAAQ+a,CAAR,CAAe,CACjDa,CAAAA,CAAU,CAAA,CACd,KAAIC,EAAanb,IAAAA,EACjB,IAAI,CACA,IAAAka,KAAA,CAAU5a,CAAV,CADA,CAGJ,MAAOkE,CAAP,CAAU,CACN0X,CACA,CADU,CAAA,CACV,CAAAC,CAAA,CAAa,CAAE3X,CAAAA,CAAf,EAAoBA,CAApB,EAA6BnH,KAAJ,CAAUmH,CAAV,CAFnB,CAIV,GAAI0X,CAAJ,CAEI,MADA,KAAAtX,YAAA,EACOuX;AAAAA,CAZ0C,CAezDlB,EAAAjgB,UAAAsW,aAAA,CAAqC8K,QAAS,EAAG,CAC7C,IAAId,EAAK,IAAAA,GAAT,CACI1d,EAAY,IAAAA,UADhB,CAEIye,EAAUze,CAAAye,QAFd,CAGI5V,EAAQ4V,CAAAzK,QAAA,CAAgB,IAAhB,CAEZ,KAAAtR,MAAA,CADA,IAAA4a,KACA,CADY,IAEZ,KAAAC,QAAA,CAAe,CAAA,CACf,KAAAvd,UAAA,CAAiB,IACF,GAAf,GAAI6I,CAAJ,EACI4V,CAAArK,OAAA,CAAevL,CAAf,CAAsB,CAAtB,CAEM,KAAV,EAAI6U,CAAJ,GACI,IAAAA,GADJ,CACc,IAAAC,eAAA,CAAoB3d,CAApB,CAA+B0d,CAA/B,CAAmC,IAAnC,CADd,CAGA,KAAAD,MAAA,CAAa,IAfgC,CAiBjD,OAAOJ,EAlF0B,CAAlB,CAZL,QAAS,CAAC7I,CAAD,CAAS,CAE5BkK,QAASA,EAAM,CAAC1e,CAAD,CAAYsd,CAAZ,CAAkB,CAC7B,MAAO9I,EAAA1N,KAAA,CAAY,IAAZ,CAAP,EAA4B,IADC,CADjChK,CAAA,CAAU4hB,CAAV,CAAkBlK,CAAlB,CAIAkK,EAAAthB,UAAAiD,SAAA,CAA4Bse,QAAS,CAACjc,CAAD,CAAQ+a,CAAR,CAAe,CAEhD,MAAO,KAFyC,CAIpD,OAAOiB,EATqB,CAAlBA,CAUZ/d,CAVY+d,CAYK,CA5NnB,CAiTIE,GAAe,QAAS,CAACpK,CAAD,CAAS,CAEjCoK,QAASA,EAAW,CAAC5e,CAAD,CAAYsd,CAAZ,CAAkB,CAClC,IAAIra,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB9G,CAAlB,CAA6Bsd,CAA7B,CAARra,EAA8C,IAClDA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAqa,KAAA,CAAaA,CACb,OAAOra,EAJ2B,CADtCnG,CAAA,CAAU8hB,CAAV,CAAuBpK,CAAvB,CAOAoK,EAAAxhB,UAAAiD,SAAA;AAAiCwe,QAAS,CAACnc,CAAD,CAAQ+a,CAAR,CAAe,CACvC,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAY,CAAZ,CAAIA,CAAJ,CACI,MAAOjJ,EAAApX,UAAAiD,SAAAyG,KAAA,CAA+B,IAA/B,CAAqCpE,CAArC,CAA4C+a,CAA5C,CAEX,KAAAA,MAAA,CAAaA,CACb,KAAA/a,MAAA,CAAaA,CACb,KAAA1C,UAAA+d,MAAA,CAAqB,IAArB,CACA,OAAO,KAR8C,CAUzDa,EAAAxhB,UAAA8gB,QAAA,CAAgCY,QAAS,CAACpc,CAAD,CAAQ+a,CAAR,CAAe,CACpD,MAAgB,EAAT,CAACA,CAAD,EAAc,IAAAjf,OAAd,CACHgW,CAAApX,UAAA8gB,QAAApX,KAAA,CAA8B,IAA9B,CAAoCpE,CAApC,CAA2C+a,CAA3C,CADG,CAEH,IAAAW,SAAA,CAAc1b,CAAd,CAAqB+a,CAArB,CAHgD,CAKxDmB,EAAAxhB,UAAAwgB,eAAA,CAAuCmB,QAAS,CAAC/e,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACrD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAe,KAAf,GAAKA,CAAL,EAA+B,CAA/B,CAAuBA,CAAvB,EAAgD,IAAhD,GAAsCA,CAAtC,EAAqE,CAArE,CAAwD,IAAAA,MAAxD,CACWjJ,CAAApX,UAAAwgB,eAAA9W,KAAA,CAAqC,IAArC,CAA2C9G,CAA3C,CAAsD0d,CAAtD,CAA0DD,CAA1D,CADX,CAGOzd,CAAA+d,MAAA,CAAgB,IAAhB,CAL4D,CAOvE,OAAOa,EA9B0B,CAAlB,CA+BjBvB,EA/BiB,CAjTnB,CAkVI2B,GAAa,QAAS,EAAG,CACzBA,QAASA,EAAS,CAACC,CAAD,CAAkBhV,CAAlB,CAAuB,CACzB,IAAK,EAAjB,GAAIA,CAAJ,GAAsBA,CAAtB,CAA4B+U,CAAA/U,IAA5B,CACA,KAAAgV,gBAAA;AAAuBA,CACvB,KAAAhV,IAAA,CAAWA,CAH0B,CAKzC+U,CAAA5hB,UAAAiD,SAAA,CAA+B6e,QAAS,CAAC5B,CAAD,CAAOG,CAAP,CAAc/a,CAAd,CAAqB,CAC3C,IAAK,EAAnB,GAAI+a,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAOpd,CAAA,IAAI,IAAA4e,gBAAJ,CAAyB,IAAzB,CAA+B3B,CAA/B,CAAAjd,UAAA,CAA8CqC,CAA9C,CAAqD+a,CAArD,CAFkD,CAI7DuB,EAAA/U,IAAA,CAAgBkV,QAAS,EAAG,CAAE,MAAO9P,KAAApF,IAAA,EAAT,CAC5B,OAAO+U,EAXkB,CAAZ,EAlVjB,CAgWII,EAAkB,QAAS,CAAC5K,CAAD,CAAS,CAEpC4K,QAASA,EAAc,CAACH,CAAD,CAAkBhV,CAAlB,CAAuB,CAC9B,IAAK,EAAjB,GAAIA,CAAJ,GAAsBA,CAAtB,CAA4B+U,EAAA/U,IAA5B,CACA,KAAIhH,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBmY,CAAlB,CAAmC,QAAS,EAAG,CACvD,MAAIG,EAAAC,SAAJ,EAA+BD,CAAAC,SAA/B,GAA2Dpc,CAA3D,CACWmc,CAAAC,SAAApV,IAAA,EADX,CAIWA,CAAA,EAL4C,CAA/C,CAARhH,EAOE,IACNA,EAAAwb,QAAA,CAAgB,EAChBxb,EAAAqc,OAAA,CAAe,CAAA,CACfrc,EAAA4B,UAAA,CAAkBzB,IAAAA,EAClB,OAAOH,EAbmC,CAD9CnG,CAAA,CAAUsiB,CAAV,CAA0B5K,CAA1B,CAgBA4K,EAAAhiB,UAAAiD,SAAA,CAAoCkf,QAAS,CAACjC,CAAD,CAAOG,CAAP,CAAc/a,CAAd,CAAqB,CAChD,IAAK,EAAnB,GAAI+a,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAI2B,EAAAC,SAAJ,EAA+BD,CAAAC,SAA/B,GAA2D,IAA3D,CACWD,CAAAC,SAAAhf,SAAA,CAAiCid,CAAjC,CAAuCG,CAAvC,CAA8C/a,CAA9C,CADX,CAIW8R,CAAApX,UAAAiD,SAAAyG,KAAA,CAA+B,IAA/B;AAAqCwW,CAArC,CAA2CG,CAA3C,CAAkD/a,CAAlD,CANmD,CASlE0c,EAAAhiB,UAAA2gB,MAAA,CAAiCyB,QAAS,CAACtU,CAAD,CAAS,CAC/C,IAAIuT,EAAU,IAAAA,QACd,IAAI,IAAAa,OAAJ,CACIb,CAAA3O,KAAA,CAAa5E,CAAb,CADJ,KAAA,CAIA,IAAI7J,CACJ,KAAAie,OAAA,CAAc,CAAA,CACd,GACI,IAAIje,CAAJ,CAAY6J,CAAAgT,QAAA,CAAehT,CAAAxI,MAAf,CAA6BwI,CAAAuS,MAA7B,CAAZ,CACI,KAFR,OAISvS,CAJT,CAIkBuT,CAAAnb,MAAA,EAJlB,CAKA,KAAAgc,OAAA,CAAc,CAAA,CACd,IAAIje,CAAJ,CAAW,CACP,IAAA,CAAO6J,CAAP,CAAgBuT,CAAAnb,MAAA,EAAhB,CAAA,CACI4H,CAAAlE,YAAA,EAEJ,MAAM3F,EAAN,CAJO,CAZX,CAF+C,CAqBnD,OAAO+d,EA/C6B,CAAlB,CAgDpBJ,EAhDoB,CAhWtB,CA0ZIS,GAAQ,KARU,QAAS,CAACjL,CAAD,CAAS,CAEpCkL,QAASA,EAAc,EAAG,CACtB,MAAkB,KAAlB,GAAOlL,CAAP,EAA0BA,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA1B,EAA2D,IADrC,CAD1BhC,CAAA,CAAU4iB,CAAV,CAA0BlL,CAA1B,CAIA,OAAOkL,EAL6B,CAAlBA,CAMpBN,CANoBM,CAQV,EAAmBd,EAAnB,CA1ZZ,CA4ZI1e,EAAQ,IAAIC,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAAE,MAAOA,EAAAE,SAAA,EAAT,CAArC,CA5ZZ,CAwaIU,GAAmBA,QAAS,CAAC2e,CAAD,CAAQ,CAAE,MAAO,SAAS,CAACvf,CAAD,CAAa,CACnE,IADmE,IAC1DQ,EAAI,CADsD,CACnDmF,EAAM4Z,CAAA5gB,OAAtB,CAAoC6B,CAApC,CAAwCmF,CAAxC,EAAgDvH,CAAA4B,CAAA5B,OAAhD,CAAmEoC,CAAA,EAAnE,CACIR,CAAAU,KAAA,CAAgB6e,CAAA,CAAM/e,CAAN,CAAhB,CAEJR,EAAAE,SAAA,EAJmE,CAA/B,CA8DvC,UAAS,CAACsf,CAAD,CAAmB,CACzBA,CAAA,KAAA;AAA2B,GAC3BA,EAAA,MAAA,CAA4B,GAC5BA,EAAA,SAAA,CAA+B,GAHN,CAA5B,CAAD,CAIGnjB,CAAAmjB,iBAJH,GAIgCnjB,CAAAmjB,iBAJhC,CAI2D,EAJ3D,EAKA,KAAIC,EAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,CAACC,CAAD,CAAOtf,CAAP,CAAca,CAAd,CAAqB,CACtC,IAAAye,KAAA,CAAYA,CACZ,KAAAtf,MAAA,CAAaA,CACb,KAAAa,MAAA,CAAaA,CACb,KAAAgF,SAAA,CAAyB,GAAzB,GAAgByZ,CAJsB,CAM1CD,CAAAziB,UAAA2iB,QAAA,CAAiCC,QAAS,CAAC5hB,CAAD,CAAW,CACjD,OAAQ,IAAA0hB,KAAR,EACI,KAAK,GAAL,CACI,MAAO1hB,EAAA0C,KAAP,EAAwB1C,CAAA0C,KAAA,CAAc,IAAAN,MAAd,CAC5B,MAAK,GAAL,CACI,MAAOpC,EAAAiD,MAAP,EAAyBjD,CAAAiD,MAAA,CAAe,IAAAA,MAAf,CAC7B,MAAK,GAAL,CACI,MAAOjD,EAAAkC,SAAP,EAA4BlC,CAAAkC,SAAA,EANpC,CADiD,CAUrDuf,EAAAziB,UAAA6iB,GAAA,CAA4BC,QAAS,CAACpf,CAAD,CAAOO,CAAP,CAAcf,CAAd,CAAwB,CAEzD,OADW,IAAAwf,KACX,EACI,KAAK,GAAL,CACI,MAAOhf,EAAP,EAAeA,CAAA,CAAK,IAAAN,MAAL,CACnB,MAAK,GAAL,CACI,MAAOa,EAAP,EAAgBA,CAAA,CAAM,IAAAA,MAAN,CACpB,MAAK,GAAL,CACI,MAAOf,EAAP,EAAmBA,CAAA,EAN3B,CAFyD,CAW7Duf,EAAAziB,UAAA+iB,OAAA;AAAgCC,QAAS,CAACC,CAAD,CAAiBhf,CAAjB,CAAwBf,CAAxB,CAAkC,CACvE,MAAI+f,EAAJ,EAAqD,UAArD,GAAsB,MAAOA,EAAAvf,KAA7B,CACW,IAAAif,QAAA,CAAaM,CAAb,CADX,CAIW,IAAAJ,GAAA,CAAQI,CAAR,CAAwBhf,CAAxB,CAA+Bf,CAA/B,CAL4D,CAQ3Euf,EAAAziB,UAAAkjB,aAAA,CAAsCC,QAAS,EAAG,CAE9C,OADW,IAAAT,KACX,EACI,KAAK,GAAL,CACI,MAAO7e,GAAA,CAAG,IAAAT,MAAH,CACX,MAAK,GAAL,CACI,MAAOY,GAAA,CAAW,IAAAC,MAAX,CACX,MAAK,GAAL,CACI,MAAOtB,EAAA,EANf,CAQA,KAAUN,MAAJ,CAAU,oCAAV,CAAN,CAV8C,CAYlDogB,EAAAW,WAAA,CAA0BC,QAAS,CAACjgB,CAAD,CAAQ,CACvC,MAAqB,WAArB,GAAI,MAAOA,EAAX,CACW,IAAIqf,CAAJ,CAAiB,GAAjB,CAAsBrf,CAAtB,CADX,CAGOqf,CAAAa,2BAJgC,CAM3Cb,EAAAc,YAAA,CAA2BC,QAAS,CAACljB,CAAD,CAAM,CACtC,MAAO,KAAImiB,CAAJ,CAAiB,GAAjB,CAAsBzc,IAAAA,EAAtB,CAAiC1F,CAAjC,CAD+B,CAG1CmiB,EAAAgB,eAAA,CAA8BC,QAAS,EAAG,CACtC,MAAOjB,EAAAkB,qBAD+B,CAG1ClB,EAAAkB,qBAAA;AAAoC,IAAIlB,CAAJ,CAAiB,GAAjB,CACpCA,EAAAa,2BAAA,CAA0C,IAAIb,CAAJ,CAAiB,GAAjB,CAAsBzc,IAAAA,EAAtB,CAC1C,OAAOyc,EA9DqB,CAAZ,EAApB,CAuEImB,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAAChhB,CAAD,CAAYyd,CAAZ,CAAmB,CAC3B,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,KAAAzd,UAAA,CAAiBA,CACjB,KAAAyd,MAAA,CAAaA,CAH4B,CAK7CuD,CAAA5jB,UAAA0J,KAAA,CAAmCma,QAAS,CAAC7gB,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIke,EAAJ,CAAwB9gB,CAAxB,CAAoC,IAAAJ,UAApC,CAAoD,IAAAyd,MAApD,CAAjB,CADsD,CAGjE,OAAOuD,EAT0B,CAAZ,EAvEzB,CAkFIE,GAAuB,QAAS,CAAC1M,CAAD,CAAS,CAEzC0M,QAASA,EAAmB,CAAC7iB,CAAD,CAAc2B,CAAd,CAAyByd,CAAzB,CAAgC,CAC1C,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACIxa,EAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAwa,MAAA,CAAcA,CACd,OAAOxa,EALiD,CAD5DnG,CAAA,CAAUokB,CAAV,CAA+B1M,CAA/B,CAQA0M,EAAA5f,SAAA,CAA+B6f,QAAS,CAAC1d,CAAD,CAAM,CACvBA,CAAA2d,aACnBrB,QAAA,CADmDtc,CAAApF,YACnD,CACA,KAAA2I,YAAA,EAH0C,CAK9Cka,EAAA9jB,UAAAikB,gBAAA,CAAgDC,QAAS,CAACF,CAAD,CAAe,CAClD,IAAA/iB,YAClBwC,IAAA,CAAgB,IAAAb,UAAAK,SAAA,CAAwB6gB,CAAA5f,SAAxB;AAAsD,IAAAmc,MAAtD,CAAkE,IAAI8D,EAAJ,CAAqBH,CAArB,CAAmC,IAAA/iB,YAAnC,CAAlE,CAAhB,CAFoE,CAIxE6iB,EAAA9jB,UAAA4X,MAAA,CAAsCwM,QAAS,CAAChhB,CAAD,CAAQ,CACnD,IAAA6gB,gBAAA,CAAqBxB,CAAAW,WAAA,CAAwBhgB,CAAxB,CAArB,CADmD,CAGvD0gB,EAAA9jB,UAAA8X,OAAA,CAAuCuM,QAAS,CAAC/jB,CAAD,CAAM,CAClD,IAAA2jB,gBAAA,CAAqBxB,CAAAc,YAAA,CAAyBjjB,CAAzB,CAArB,CACA,KAAAsJ,YAAA,EAFkD,CAItDka,EAAA9jB,UAAAgY,UAAA,CAA0CsM,QAAS,EAAG,CAClD,IAAAL,gBAAA,CAAqBxB,CAAAgB,eAAA,EAArB,CACA,KAAA7Z,YAAA,EAFkD,CAItD,OAAOka,EA7BkC,CAAlB,CA8BzBziB,CA9ByB,CAlF3B,CAiHI8iB,GAAoB,QAAS,EAAG,CAKhC,MAJAA,SAAyB,CAACH,CAAD,CAAe/iB,CAAf,CAA4B,CACjD,IAAA+iB,aAAA,CAAoBA,CACpB,KAAA/iB,YAAA,CAAmBA,CAF8B,CADrB,CAAZ,EAjHxB,CAyHIuQ,EAAiB,QAAS,CAAC4F,CAAD,CAAS,CAEnC5F,QAASA,EAAa,CAACP,CAAD,CAAaE,CAAb,CAAyBvO,CAAzB,CAAoC,CACnC,IAAK,EAAxB,GAAIqO,CAAJ,GAA6BA,CAA7B,CAA0CnJ,MAAAC,kBAA1C,CACmB,KAAK,EAAxB,GAAIoJ,CAAJ,GAA6BA,CAA7B,CAA0CrJ,MAAAC,kBAA1C,CACA,KAAIlC;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAA0e,QAAA,CAAgB,EAChB1e,EAAA2e,oBAAA,CAA4B,CAAA,CAC5B3e,EAAA4e,YAAA,CAAiC,CAAb,CAAAxT,CAAA,CAAiB,CAAjB,CAAqBA,CACzCpL,EAAA6e,YAAA,CAAiC,CAAb,CAAAvT,CAAA,CAAiB,CAAjB,CAAqBA,CACrCA,EAAJ,GAAmBrJ,MAAAC,kBAAnB,EACIlC,CAAA2e,oBACA,CAD4B,CAAA,CAC5B,CAAA3e,CAAAnC,KAAA,CAAamC,CAAA8e,uBAFjB,EAKI9e,CAAAnC,KALJ,CAKiBmC,CAAA+e,eAEjB,OAAO/e,EAhB+C,CAD1DnG,CAAA,CAAU8R,CAAV,CAAyB4F,CAAzB,CAmBA5F,EAAAxR,UAAA2kB,uBAAA,CAAiDE,QAAS,CAACzhB,CAAD,CAAQ,CAC9D,IAAImhB,EAAU,IAAAA,QACdA,EAAA7R,KAAA,CAAatP,CAAb,CACImhB,EAAA5iB,OAAJ,CAAqB,IAAA8iB,YAArB,EACIF,CAAAre,MAAA,EAEJkR,EAAApX,UAAA0D,KAAAgG,KAAA,CAA2B,IAA3B,CAAiCtG,CAAjC,CAN8D,CAQlEoO,EAAAxR,UAAA4kB,eAAA,CAAyCE,QAAS,CAAC1hB,CAAD,CAAQ,CACtD,IAAAmhB,QAAA7R,KAAA,CAAkB,IAAIqS,EAAJ,CAAgB,IAAAC,QAAA,EAAhB,CAAgC5hB,CAAhC,CAAlB,CACA,KAAA6hB,yBAAA,EACA7N;CAAApX,UAAA0D,KAAAgG,KAAA,CAA2B,IAA3B,CAAiCtG,CAAjC,CAHsD,CAK1DoO,EAAAxR,UAAAsZ,WAAA,CAAqC4L,QAAS,CAACliB,CAAD,CAAa,CACvD,IAAIwhB,EAAsB,IAAAA,oBAA1B,CACID,EAAUC,CAAA,CAAsB,IAAAD,QAAtB,CAAqC,IAAAU,yBAAA,EADnD,CAEIriB,EAAY,IAAAA,UAFhB,CAGI+F,EAAM4b,CAAA5iB,OAHV,CAII+J,CACJ,IAAI,IAAAtK,OAAJ,CACI,KAAM,KAAImZ,CAAV,CAEK,IAAApZ,UAAJ,EAAsB,IAAAkQ,SAAtB,CACD3F,CADC,CACcnI,CAAAT,MADd,EAID,IAAA6X,UAAAjI,KAAA,CAAoB1P,CAApB,CACA,CAAA0I,CAAA,CAAe,IAAI+O,EAAJ,CAAwB,IAAxB,CAA8BzX,CAA9B,CALd,CAODJ,EAAJ,EACII,CAAAS,IAAA,CAAeT,CAAf,CAA4B,IAAI8gB,EAAJ,CAAwB9gB,CAAxB,CAAoCJ,CAApC,CAA5B,CAEJ,IAAI4hB,CAAJ,CACI,IAAShhB,CAAT,CAAa,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,EAA4BvH,CAAA4B,CAAA5B,OAA5B,CAA+CoC,CAAA,EAA/C,CACIR,CAAAU,KAAA,CAAgB6gB,CAAA,CAAQ/gB,CAAR,CAAhB,CAFR,KAMI,KAASA,CAAT,CAAa,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,EAA4BvH,CAAA4B,CAAA5B,OAA5B,CAA+CoC,CAAA,EAA/C,CACIR,CAAAU,KAAA,CAAgB6gB,CAAA,CAAQ/gB,CAAR,CAAAJ,MAAhB,CAGJ,KAAAiO,SAAJ,CACIrO,CAAAiB,MAAA,CAAiB,IAAA6W,YAAjB,CADJ,CAGS,IAAA3Z,UAHT,EAII6B,CAAAE,SAAA,EAEJ,OAAOwI,EAnCgD,CAqC3D8F,EAAAxR,UAAAglB,QAAA;AAAkCG,QAAS,EAAG,CAC1C,MAAOtY,CAAC,IAAAjK,UAADiK,EAAmBwV,EAAnBxV,KAAA,EADmC,CAG9C2E,EAAAxR,UAAAilB,yBAAA,CAAmDG,QAAS,EAAG,CAO3D,IANA,IAAIvY,EAAM,IAAAmY,QAAA,EAAV,CACIP,EAAc,IAAAA,YADlB,CAEIC,EAAc,IAAAA,YAFlB,CAGIH,EAAU,IAAAA,QAHd,CAIIc,EAAcd,CAAA5iB,OAJlB,CAKI2jB,EAAc,CAClB,CAAOA,CAAP,CAAqBD,CAArB,EACQ,EAACxY,CAAD,CAAO0X,CAAA,CAAQe,CAAR,CAAAC,KAAP,CAAoCb,CAApC,CADR,CAAA,CAIIY,CAAA,EAEAD,EAAJ,CAAkBZ,CAAlB,GACIa,CADJ,CACkBlT,IAAAoT,IAAA,CAASF,CAAT,CAAsBD,CAAtB,CAAoCZ,CAApC,CADlB,CAGkB,EAAlB,CAAIa,CAAJ,EACIf,CAAAvN,OAAA,CAAe,CAAf,CAAkBsO,CAAlB,CAEJ,OAAOf,EAnBoD,CAqB/D,OAAO/S,EA9F4B,CAAlB,CA+FnBV,CA/FmB,CAzHrB,CAyNIiU,GAAe,QAAS,EAAG,CAK3B,MAJAA,SAAoB,CAACQ,CAAD,CAAOniB,CAAP,CAAc,CAC9B,IAAAmiB,KAAA,CAAYA,CACZ,KAAAniB,MAAA,CAAaA,CAFiB,CADP,CAAZ,EAzNnB,CAiOImC,EAAgB,QAAS,CAAC6R,CAAD,CAAS,CAElC7R,QAASA,EAAY,EAAG,CACpB,IAAIM,EAAmB,IAAnBA,GAAQuR,CAARvR,EAA2BuR,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA3BmE,EAA4D,IAChEA,EAAAzC,MAAA,CAAc,IACdyC,EAAA4f,QAAA,CAAgB,CAAA,CAChB5f,EAAA6f,aAAA,CAAqB,CAAA,CACrB,OAAO7f,EALa,CADxBnG,CAAA,CAAU6F,CAAV,CAAwB6R,CAAxB,CAQA7R,EAAAvF,UAAAsZ,WAAA,CAAoCqM,QAAS,CAAC3iB,CAAD,CAAa,CACtD,MAAI,KAAAqO,SAAJ;CACIrO,CAAAiB,MAAA,CAAiB,IAAA6W,YAAjB,CACOhY,CAAAS,CAAAT,MAFX,EAIS,IAAA4iB,aAAJ,EAAyB,IAAAD,QAAzB,EACDziB,CAAAU,KAAA,CAAgB,IAAAN,MAAhB,CAEON,CADPE,CAAAE,SAAA,EACOJ,CAAAS,CAAAT,MAHN,EAKEsU,CAAApX,UAAAsZ,WAAA5P,KAAA,CAAiC,IAAjC,CAAuC1G,CAAvC,CAV+C,CAY1DuC,EAAAvF,UAAA0D,KAAA,CAA8BkiB,QAAS,CAACxiB,CAAD,CAAQ,CACtC,IAAAsiB,aAAL,GACI,IAAAtiB,MACA,CADaA,CACb,CAAA,IAAAqiB,QAAA,CAAe,CAAA,CAFnB,CAD2C,CAM/ClgB,EAAAvF,UAAAiE,MAAA,CAA+B4hB,QAAS,CAAC5hB,CAAD,CAAQ,CACvC,IAAAyhB,aAAL,EACItO,CAAApX,UAAAiE,MAAAyF,KAAA,CAA4B,IAA5B,CAAkCzF,CAAlC,CAFwC,CAKhDsB,EAAAvF,UAAAkD,SAAA,CAAkC4iB,QAAS,EAAG,CAC1C,IAAAJ,aAAA,CAAoB,CAAA,CAChB,KAAAD,QAAJ,EACIrO,CAAApX,UAAA0D,KAAAgG,KAAA,CAA2B,IAA3B,CAAiC,IAAAtG,MAAjC,CAEJgU,EAAApX,UAAAkD,SAAAwG,KAAA,CAA+B,IAA/B,CAL0C,CAO9C,OAAOnE,EAvC2B,CAAlB,CAwClBuL,CAxCkB,CAjOpB,CA2QIiV,GAAa,CA3QjB,CA4QIC,GAAiC5jB,OAAA2X,QAAA,EA5QrC,CA6QI1V,GAAgB,EA7QpB,CAqRI4hB,GAAY,CACZC,aAAcA,QAAS,CAACC,CAAD,CAAK,CACxB,IAAI/hB;AAAS2hB,EAAA,EACb1hB,GAAA,CAAcD,CAAd,CAAA,CAAwB,CAAA,CACxB4hB,GAAAzf,KAAA,CAAc,QAAS,EAAG,CAAE,MAAOpC,GAAA,CAAmBC,CAAnB,CAAP,EAAqC+hB,CAAA,EAAvC,CAA1B,CACA,OAAO/hB,EAJiB,CADhB,CAOZgiB,eAAgBA,QAAS,CAAChiB,CAAD,CAAS,CAC9BD,EAAA,CAAmBC,CAAnB,CAD8B,CAPtB,CArRhB,CAiSIiiB,GAAc,QAAS,CAACjP,CAAD,CAAS,CAEhCiP,QAASA,EAAU,CAACzjB,CAAD,CAAYsd,CAAZ,CAAkB,CACjC,IAAIra,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB9G,CAAlB,CAA6Bsd,CAA7B,CAARra,EAA8C,IAClDA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAqa,KAAA,CAAaA,CACb,OAAOra,EAJ0B,CADrCnG,CAAA,CAAU2mB,CAAV,CAAsBjP,CAAtB,CAOAiP,EAAArmB,UAAAwgB,eAAA,CAAsC8F,QAAS,CAAC1jB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACpD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAc,IAAd,GAAIA,CAAJ,EAA8B,CAA9B,CAAsBA,CAAtB,CACI,MAAOjJ,EAAApX,UAAAwgB,eAAA9W,KAAA,CAAqC,IAArC,CAA2C9G,CAA3C,CAAsD0d,CAAtD,CAA0DD,CAA1D,CAEXzd,EAAAye,QAAA3O,KAAA,CAAuB,IAAvB,CACA,OAAO9P,EAAA6E,UAAP,GAA+B7E,CAAA6E,UAA/B,CAAqDwe,EAAAC,aAAA,CAAuBtjB,CAAA+d,MAAAlI,KAAA,CAAqB7V,CAArB,CAAgC,IAAhC,CAAvB,CAArD,CANkE,CAQtEyjB,EAAArmB,UAAAugB,eAAA,CAAsCgG,QAAS,CAAC3jB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACpD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAe,IAAf,GAAKA,CAAL,EAA+B,CAA/B,CAAuBA,CAAvB,EAAgD,IAAhD;AAAsCA,CAAtC,EAAqE,CAArE,CAAwD,IAAAA,MAAxD,CACI,MAAOjJ,EAAApX,UAAAugB,eAAA7W,KAAA,CAAqC,IAArC,CAA2C9G,CAA3C,CAAsD0d,CAAtD,CAA0DD,CAA1D,CAEsB,EAAjC,GAAIzd,CAAAye,QAAA1f,OAAJ,GACIskB,EAAAG,eAAA,CAAyB9F,CAAzB,CACA,CAAA1d,CAAA6E,UAAA,CAAsBzB,IAAAA,EAF1B,CALkE,CAWtE,OAAOqgB,EA3ByB,CAAlB,CA4BhBpG,EA5BgB,CAjSlB,CA4VIuG,GAAO,KA7BU,QAAS,CAACpP,CAAD,CAAS,CAEnCqP,QAASA,EAAa,EAAG,CACrB,MAAkB,KAAlB,GAAOrP,CAAP,EAA0BA,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA1B,EAA2D,IADtC,CADzBhC,CAAA,CAAU+mB,CAAV,CAAyBrP,CAAzB,CAIAqP,EAAAzmB,UAAA2gB,MAAA,CAAgC+F,QAAS,CAAC5Y,CAAD,CAAS,CAC9C,IAAAoU,OAAA,CAAc,CAAA,CACd,KAAAza,UAAA,CAAiBzB,IAAAA,EACjB,KAAIqb,EAAU,IAAAA,QAAd,CACIpd,CADJ,CAEIwH,EAAS,EAFb,CAGIc,EAAQ8U,CAAA1f,OACZmM,EAAA,CAASA,CAAT,EAAmBuT,CAAAnb,MAAA,EACnB,GACI,IAAIjC,CAAJ,CAAY6J,CAAAgT,QAAA,CAAehT,CAAAxI,MAAf,CAA6BwI,CAAAuS,MAA7B,CAAZ,CACI,KAFR,OAIS,EAAE5U,CAJX,CAImBc,CAJnB,GAI6BuB,CAJ7B,CAIsCuT,CAAAnb,MAAA,EAJtC,EAKA,KAAAgc,OAAA,CAAc,CAAA,CACd,IAAIje,CAAJ,CAAW,CACP,IAAA,CAAO,EAAEwH,CAAT,CAAiBc,CAAjB,GAA2BuB,CAA3B,CAAoCuT,CAAAnb,MAAA,EAApC,EAAA,CACI4H,CAAAlE,YAAA,EAEJ,MAAM3F,EAAN,CAJO,CAdmC,CAqBlD,OAAOwiB,EA1B4B,CAAlBA,CA2BnBzE,CA3BmByE,CA6BV,EAAkBJ,EAAlB,CA5VX;AA8VI1Z,EAAQ,IAAIqV,CAAJ,CAAmB/B,EAAnB,CA9VZ,CAgWI0G,GAAwB,QAAS,CAACvP,CAAD,CAAS,CAE1CuP,QAASA,EAAoB,CAAC/jB,CAAD,CAAYsd,CAAZ,CAAkB,CAC3C,IAAIra,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB9G,CAAlB,CAA6Bsd,CAA7B,CAARra,EAA8C,IAClDA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAqa,KAAA,CAAaA,CACb,OAAOra,EAJoC,CAD/CnG,CAAA,CAAUinB,CAAV,CAAgCvP,CAAhC,CAOAuP,EAAA3mB,UAAAwgB,eAAA,CAAgDoG,QAAS,CAAChkB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CAC9D,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAc,IAAd,GAAIA,CAAJ,EAA8B,CAA9B,CAAsBA,CAAtB,CACI,MAAOjJ,EAAApX,UAAAwgB,eAAA9W,KAAA,CAAqC,IAArC,CAA2C9G,CAA3C,CAAsD0d,CAAtD,CAA0DD,CAA1D,CAEXzd,EAAAye,QAAA3O,KAAA,CAAuB,IAAvB,CACA,OAAO9P,EAAA6E,UAAP,GAA+B7E,CAAA6E,UAA/B,CAAqDof,qBAAA,CAAsB,QAAS,EAAG,CAAE,MAAOjkB,EAAA+d,MAAA,CAAgB,IAAhB,CAAT,CAAlC,CAArD,CAN4E,CAQhFgG,EAAA3mB,UAAAugB,eAAA,CAAgDuG,QAAS,CAAClkB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CAC9D,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAe,IAAf,GAAKA,CAAL,EAA+B,CAA/B,CAAuBA,CAAvB,EAAgD,IAAhD,GAAsCA,CAAtC,EAAqE,CAArE,CAAwD,IAAAA,MAAxD,CACI,MAAOjJ,EAAApX,UAAAugB,eAAA7W,KAAA,CAAqC,IAArC,CAA2C9G,CAA3C,CAAsD0d,CAAtD;AAA0DD,CAA1D,CAEsB,EAAjC,GAAIzd,CAAAye,QAAA1f,OAAJ,GACIolB,oBAAA,CAAqBzG,CAArB,CACA,CAAA1d,CAAA6E,UAAA,CAAsBzB,IAAAA,EAF1B,CAL4E,CAWhF,OAAO2gB,EA3BmC,CAAlB,CA4B1B1G,EA5B0B,CAhW5B,CA2ZI+G,GAAiB,KA7BU,QAAS,CAAC5P,CAAD,CAAS,CAE7C6P,QAASA,EAAuB,EAAG,CAC/B,MAAkB,KAAlB,GAAO7P,CAAP,EAA0BA,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA1B,EAA2D,IAD5B,CADnChC,CAAA,CAAUunB,CAAV,CAAmC7P,CAAnC,CAIA6P,EAAAjnB,UAAA2gB,MAAA,CAA0CuG,QAAS,CAACpZ,CAAD,CAAS,CACxD,IAAAoU,OAAA,CAAc,CAAA,CACd,KAAAza,UAAA,CAAiBzB,IAAAA,EACjB,KAAIqb,EAAU,IAAAA,QAAd,CACIpd,CADJ,CAEIwH,EAAS,EAFb,CAGIc,EAAQ8U,CAAA1f,OACZmM,EAAA,CAASA,CAAT,EAAmBuT,CAAAnb,MAAA,EACnB,GACI,IAAIjC,CAAJ,CAAY6J,CAAAgT,QAAA,CAAehT,CAAAxI,MAAf,CAA6BwI,CAAAuS,MAA7B,CAAZ,CACI,KAFR,OAIS,EAAE5U,CAJX,CAImBc,CAJnB,GAI6BuB,CAJ7B,CAIsCuT,CAAAnb,MAAA,EAJtC,EAKA,KAAAgc,OAAA,CAAc,CAAA,CACd,IAAIje,CAAJ,CAAW,CACP,IAAA,CAAO,EAAEwH,CAAT,CAAiBc,CAAjB,GAA2BuB,CAA3B,CAAoCuT,CAAAnb,MAAA,EAApC,EAAA,CACI4H,CAAAlE,YAAA,EAEJ,MAAM3F,EAAN,CAJO,CAd6C,CAqB5D,OAAOgjB,EA1BsC,CAAlBA,CA2B7BjF,CA3B6BiF,CA6BV,EAA4BN,EAA5B,CA3ZrB,CA6ZIQ,GAAwB,QAAS,CAAC/P,CAAD,CAAS,CAE1C+P,QAASA,EAAoB,CAACtF,CAAD,CAAkBuF,CAAlB,CAA6B,CAC9B,IAAK,EAA7B,GAAIvF,CAAJ,GAAkCA,CAAlC,CAAoDwF,EAApD,CACkB;IAAK,EAAvB,GAAID,CAAJ,GAA4BA,CAA5B,CAAwCtf,MAAAC,kBAAxC,CACA,KAAIlC,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBmY,CAAlB,CAAmC,QAAS,EAAG,CAAE,MAAOhc,EAAAyhB,MAAT,CAA/C,CAARzhB,EAAmF,IACvFA,EAAAuhB,UAAA,CAAkBA,CAClBvhB,EAAAyhB,MAAA,CAAc,CACdzhB,EAAA4F,MAAA,CAAe,EACf,OAAO5F,EAP+C,CAD1DnG,CAAA,CAAUynB,CAAV,CAAgC/P,CAAhC,CAUA+P,EAAAnnB,UAAA2gB,MAAA,CAAuC4G,QAAS,EAAG,CAG/C,IAH+C,IAChClG,EAANngB,IAAgBmgB,QADsB,CACV+F,EAA5BlmB,IAAwCkmB,UADF,CAE3CnjB,CAF2C,CAEpC6J,CACX,EAAQA,CAAR,CAAiBuT,CAAA,CAAQ,CAAR,CAAjB,GAAgCvT,CAAAuS,MAAhC,EAAgD+G,CAAhD,EAGQ,EAFJ/F,CAAAnb,MAAA,EAEI,CADJ,IAAAohB,MACI,CADSxZ,CAAAuS,MACT,CAAApc,CAAA,CAAQ6J,CAAAgT,QAAA,CAAehT,CAAAxI,MAAf,CAA6BwI,CAAAuS,MAA7B,CAAR,CAHR,CAAA,EAOA,GAAIpc,CAAJ,CAAW,CACP,IAAA,CAAO6J,CAAP,CAAgBuT,CAAAnb,MAAA,EAAhB,CAAA,CACI4H,CAAAlE,YAAA,EAEJ,MAAM3F,EAAN,CAJO,CAVoC,CAiBnDkjB,EAAAK,gBAAA,CAAuC,EACvC,OAAOL,EA7BmC,CAAlB,CA8B1BnF,CA9B0B,CA7Z5B,CA4bIqF,GAAiB,QAAS,CAACjQ,CAAD,CAAS,CAEnCiQ,QAASA,EAAa,CAACzkB,CAAD,CAAYsd,CAAZ,CAAkBzU,CAAlB,CAAyB,CAC7B,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC7I,CAAA6I,MAAhC,EAAmD,CAAnD,CACA,KAAI5F,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB9G,CAAlB,CAA6Bsd,CAA7B,CAARra,EAA8C,IAClDA,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAqa,KAAA,CAAaA,CACbra;CAAA4F,MAAA,CAAcA,CACd5F,EAAAqc,OAAA,CAAe,CAAA,CACfrc,EAAA4F,MAAA,CAAc7I,CAAA6I,MAAd,CAAgCA,CAChC,OAAO5F,EARoC,CAD/CnG,CAAA,CAAU2nB,CAAV,CAAyBjQ,CAAzB,CAWAiQ,EAAArnB,UAAAiD,SAAA,CAAmCwkB,QAAS,CAACniB,CAAD,CAAQ+a,CAAR,CAAe,CACzC,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,IAAKC,CAAA,IAAAA,GAAL,CACI,MAAOlJ,EAAApX,UAAAiD,SAAAyG,KAAA,CAA+B,IAA/B,CAAqCpE,CAArC,CAA4C+a,CAA5C,CAEX,KAAA6B,OAAA,CAAc,CAAA,CACd,KAAIpU,EAAS,IAAIuZ,CAAJ,CAAkB,IAAAzkB,UAAlB,CAAkC,IAAAsd,KAAlC,CACb,KAAAzc,IAAA,CAASqK,CAAT,CACA,OAAOA,EAAA7K,SAAA,CAAgBqC,CAAhB,CAAuB+a,CAAvB,CARgD,CAU3DgH,EAAArnB,UAAAwgB,eAAA,CAAyCkH,QAAS,CAAC9kB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,CACvD,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,KAAAA,MAAA,CAAazd,CAAA0kB,MAAb,CAA+BjH,CAC3BgB,EAAAA,CAAUze,CAAAye,QACdA,EAAA3O,KAAA,CAAa,IAAb,CACA2O,EAAAsG,KAAA,CAAaN,CAAAO,YAAb,CACA,OAAO,CAAA,CAN8D,CAQzEP,EAAArnB,UAAAugB,eAAA,CAAyCsH,QAAS,CAACjlB,CAAD,CAAY0d,CAAZ,CAAgBD,CAAhB,CAAuB,EAIzEgH,EAAArnB,UAAAghB,SAAA,CAAmC8G,QAAS,CAACxiB,CAAD,CAAQ+a,CAAR,CAAe,CACvD,GAAoB,CAAA,CAApB,GAAI,IAAA6B,OAAJ,CACI,MAAO9K,EAAApX,UAAAghB,SAAAtX,KAAA,CAA+B,IAA/B;AAAqCpE,CAArC,CAA4C+a,CAA5C,CAF4C,CAK3DgH,EAAAO,YAAA,CAA4BG,QAAS,CAAC/f,CAAD,CAAIpI,CAAJ,CAAO,CACxC,MAAIoI,EAAAqY,MAAJ,GAAgBzgB,CAAAygB,MAAhB,CACQrY,CAAAyD,MAAJ,GAAgB7L,CAAA6L,MAAhB,CACW,CADX,CAGSzD,CAAAyD,MAAJ,CAAc7L,CAAA6L,MAAd,CACM,CADN,CAIO,EARhB,CAWSzD,CAAAqY,MAAJ,CAAczgB,CAAAygB,MAAd,CACM,CADN,CAIO,EAhB4B,CAmB5C,OAAOgH,EA1D4B,CAAlB,CA2DnBpH,EA3DmB,CA5brB,CA2gBI+H,EAV+B,QAAS,EAAG,CAC3CC,QAASA,EAA2B,EAAG,CACnC5lB,KAAAqH,KAAA,CAAW,IAAX,CACA,KAAAsM,QAAA,CAAe,uBACf,KAAAG,KAAA,CAAY,yBACZ,OAAO,KAJ4B,CAMvC8R,CAAAjoB,UAAA,CAAwCC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CACxC,OAAOioB,EARoC,CAAbA,EAjgBlC,CAuhBIpZ,GAVkB,QAAS,EAAG,CAC9BqZ,QAASA,EAAc,EAAG,CACtB7lB,KAAAqH,KAAA,CAAW,IAAX,CACA,KAAAsM,QAAA,CAAe,yBACf,KAAAG,KAAA,CAAY,YACZ,OAAO,KAJe,CAM1B+R,CAAAloB,UAAA,CAA2BC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CAC3B,OAAOkoB,EARuB,CAAbA,EA7gBrB,CAmiBIC,GAVoB,QAAS,EAAG,CAChCC,QAASA,EAAgB,EAAG,CACxB/lB,KAAAqH,KAAA,CAAW,IAAX,CACA;IAAAsM,QAAA,CAAe,sBACf,KAAAG,KAAA,CAAY,cACZ,OAAO,KAJiB,CAM5BiS,CAAApoB,UAAA,CAA6BC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CAC7B,OAAOooB,EARyB,CAAbA,EAzhBvB,CA6iBIxjB,GAAe,QAAS,EAAG,CAC3BA,QAASA,EAAW,CAACJ,CAAD,CAAUC,CAAV,CAAmB,CACnC,IAAAD,QAAA,CAAeA,CACf,KAAAC,QAAA,CAAeA,CAFoB,CAIvCG,CAAA5E,UAAA0J,KAAA,CAA6B2e,QAAS,CAACrlB,CAAD,CAAaR,CAAb,CAAqB,CACvD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI0iB,EAAJ,CAAkBtlB,CAAlB,CAA8B,IAAAwB,QAA9B,CAA4C,IAAAC,QAA5C,CAAjB,CADgD,CAG3D,OAAOG,EARoB,CAAZ,EA7iBnB,CAujBI0jB,GAAiB,QAAS,CAAClR,CAAD,CAAS,CAEnCkR,QAASA,EAAa,CAACrnB,CAAD,CAAcuD,CAAd,CAAuBC,CAAvB,CAAgC,CAC9CoB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAArB,QAAA,CAAgBA,CAChBqB,EAAA0G,MAAA,CAAc,CACd1G,EAAApB,QAAA,CAAgBA,CAAhB,EAA2BoB,CAC3B,OAAOA,EAL2C,CADtDnG,CAAA,CAAU4oB,CAAV,CAAyBlR,CAAzB,CAQAkR,EAAAtoB,UAAA4X,MAAA,CAAgC2Q,QAAS,CAACnlB,CAAD,CAAQ,CAC7C,IAAIsD,CACJ,IAAI,CACAA,CAAA,CAAS,IAAAlC,QAAAkF,KAAA,CAAkB,IAAAjF,QAAlB,CAAgCrB,CAAhC,CAAuC,IAAAmJ,MAAA,EAAvC,CADT,CAGJ,MAAOjM,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA;MAFQ,CAIZ,IAAAW,YAAAyC,KAAA,CAAsBgD,CAAtB,CAT6C,CAWjD,OAAO4hB,EApB4B,CAAlB,CAqBnBjnB,CArBmB,CAvjBrB,CAqxBImnB,EAAmB,QAAS,CAACpR,CAAD,CAAS,CAErCoR,QAASA,EAAe,EAAG,CACvB,MAAkB,KAAlB,GAAOpR,CAAP,EAA0BA,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA1B,EAA2D,IADpC,CAD3BhC,CAAA,CAAU8oB,CAAV,CAA2BpR,CAA3B,CAIAoR,EAAAxoB,UAAA4Q,WAAA,CAAuC6X,QAAS,CAAC9hB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACvG,IAAAxQ,YAAAyC,KAAA,CAAsBglB,CAAtB,CADuG,CAG3GF,EAAAxoB,UAAA4oB,YAAA,CAAwCC,QAAS,CAAC5kB,CAAD,CAAQwN,CAAR,CAAkB,CAC/D,IAAAxQ,YAAAgD,MAAA,CAAuBA,CAAvB,CAD+D,CAGnEukB,EAAAxoB,UAAA8oB,eAAA,CAA2CC,QAAS,CAACtX,CAAD,CAAW,CAC3D,IAAAxQ,YAAAiC,SAAA,EAD2D,CAG/D,OAAOslB,EAd8B,CAAlB,CAerBnnB,CAfqB,CArxBvB,CAsyBIyF,EAAmB,QAAS,CAACsQ,CAAD,CAAS,CAErCtQ,QAASA,EAAe,CAACqS,CAAD,CAASxS,CAAT,CAAqBC,CAArB,CAAiC,CACrD,IAAIf,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAsT,OAAA,CAAeA,CACftT,EAAAc,WAAA,CAAmBA,CACnBd,EAAAe,WAAA,CAAmBA,CACnBf,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAN8C,CADzDnG,CAAA,CAAUoH,CAAV,CAA2BsQ,CAA3B,CASAtQ,EAAA9G,UAAA4X,MAAA,CAAkCoR,QAAS,CAAC5lB,CAAD,CAAQ,CAC/C,IAAA+V,OAAAvI,WAAA,CAAuB,IAAAjK,WAAvB;AAAwCvD,CAAxC,CAA+C,IAAAwD,WAA/C,CAAgE,IAAA6E,MAAA,EAAhE,CAA8E,IAA9E,CAD+C,CAGnD3E,EAAA9G,UAAA8X,OAAA,CAAmCmR,QAAS,CAAChlB,CAAD,CAAQ,CAChD,IAAAkV,OAAAyP,YAAA,CAAwB3kB,CAAxB,CAA+B,IAA/B,CACA,KAAA2F,YAAA,EAFgD,CAIpD9C,EAAA9G,UAAAgY,UAAA,CAAsCkR,QAAS,EAAG,CAC9C,IAAA/P,OAAA2P,eAAA,CAA2B,IAA3B,CACA,KAAAlf,YAAA,EAF8C,CAIlD,OAAO9C,EArB8B,CAAlB,CAsBrBzF,CAtBqB,CAtyBvB,CA8zBI8nB,GAAqBA,QAAS,CAACC,CAAD,CAAU,CAAE,MAAO,SAAS,CAACpmB,CAAD,CAAa,CACvEomB,CAAA7iB,KAAA,CAAa,QAAS,CAACnD,CAAD,CAAQ,CACrBJ,CAAA5B,OAAL,GACI4B,CAAAU,KAAA,CAAgBN,CAAhB,CACA,CAAAJ,CAAAE,SAAA,EAFJ,CAD0B,CAA9B,CAKG,QAAS,CAAC5C,CAAD,CAAM,CAAE,MAAO0C,EAAAiB,MAAA,CAAiB3D,CAAjB,CAAT,CALlB,CAAAiG,KAAA,CAMU,IANV,CAMgBlG,CANhB,CAOA,OAAO2C,EARgE,CAA/B,CA9zB5C,CA+0BIuE,CAFA,EAAA,CAHsB,UAAtB,GAAI,MAAO2P,OAAX,EAAqCA,MAAA3P,SAArC,CAGO2P,MAAA3P,SAHP,CACW,YAMf,KAAI8hB,GAAsBA,QAAS,CAACC,CAAD,CAAW,CAAE,MAAO,SAAS,CAACtmB,CAAD,CAAa,CACzE,IAAIqE,EAAciiB,CAAA,CAAS/hB,CAAT,CAAA,EAClB,GAAG,CACC,IAAIkL;AAAOpL,CAAA3D,KAAA,EACX,IAAI+O,CAAAjL,KAAJ,CAAe,CACXxE,CAAAE,SAAA,EACA,MAFW,CAIfF,CAAAU,KAAA,CAAgB+O,CAAArP,MAAhB,CACA,IAAIJ,CAAA5B,OAAJ,CACI,KARL,CAAH,MAUS,CAVT,CAWkC,WAAlC,GAAI,MAAOiG,EAAAC,OAAX,EACItE,CAAAS,IAAA,CAAe,QAAS,EAAG,CACnB4D,CAAAC,OAAJ,EACID,CAAAC,OAAA,EAFmB,CAA3B,CAMJ,OAAOtE,EApBkE,CAA/B,CAA9C,CAuBIumB,GAAwBA,QAAS,CAAC5d,CAAD,CAAM,CAAE,MAAO,SAAS,CAAC3I,CAAD,CAAa,CACtE,IAAIwmB,EAAM7d,CAAA,CAAIzE,CAAJ,CAAA,EACV,IAA6B,UAA7B,GAAI,MAAOsiB,EAAA5jB,UAAX,CACI,KAAM,KAAIjB,SAAJ,CAAc,gEAAd,CAAN,CAGA,MAAO6kB,EAAA5jB,UAAA,CAAc5C,CAAd,CAN2D,CAA/B,CAvB3C,CAiCI0E,GAAeA,QAAS,CAACtH,CAAD,CAAI,CAAE,MAAOA,EAAP,EAAgC,QAAhC,GAAY,MAAOA,EAAAuB,OAAnB,EAAyD,UAAzD,GAA4C,MAAOvB,EAArD,CAjChC,CAuCI2G,GAAcA,QAAS,CAACL,CAAD,CAAS,CAChC,GAAMA,CAAN,EAA8C,UAA9C,GAAgB,MAAOA,EAAA,CAAOQ,CAAP,CAAvB,CACI,MAAOqiB,GAAA,CAAsB7iB,CAAtB,CAEN,IAAIgB,EAAA,CAAYhB,CAAZ,CAAJ,CACD,MAAO9C,GAAA,CAAiB8C,CAAjB,CAEN;GAAIJ,EAAA,CAAUI,CAAV,CAAJ,CACD,MAAOyiB,GAAA,CAAmBziB,CAAnB,CAEN,IAAMA,CAAN,EAA4C,UAA5C,GAAgB,MAAOA,EAAA,CAAOa,CAAP,CAAvB,CACD,MAAO8hB,GAAA,CAAoB3iB,CAApB,CAGHtD,EAAAA,CAAQ5C,EAAA,CAASkG,CAAT,CAAA,CAAmB,mBAAnB,CAAyC,GAAzC,CAA+CA,CAA/C,CAAwD,GAGpE,MAAM,KAAI/B,SAAJ,CAFI,eAEJ,CAFsBvB,CAEtB,CADA,2FACA,CAAN,CAjB4B,CAvCpC,CAuEIqmB,GAAO,EAvEX,CA0FIC,GAAyB,QAAS,EAAG,CACrCA,QAASA,EAAqB,CAAC3kB,CAAD,CAAiB,CAC3C,IAAAA,eAAA,CAAsBA,CADqB,CAG/C2kB,CAAA1pB,UAAA0J,KAAA,CAAuCigB,QAAS,CAAC3mB,CAAD,CAAaR,CAAb,CAAqB,CACjE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIgkB,EAAJ,CAA4B5mB,CAA5B,CAAwC,IAAA+B,eAAxC,CAAjB,CAD0D,CAGrE,OAAO2kB,EAP8B,CAAZ,EA1F7B,CAmGIE,GAA2B,QAAS,CAACxS,CAAD,CAAS,CAE7CwS,QAASA,EAAuB,CAAC3oB,CAAD,CAAc8D,CAAd,CAA8B,CACtDc,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAd,eAAA,CAAuBA,CACvBc,EAAAqc,OAAA,CAAe,CACfrc,EAAA+C,OAAA,CAAe,EACf/C,EAAAwC,YAAA,CAAoB,EACpB,OAAOxC,EANmD;AAD9DnG,CAAA,CAAUkqB,CAAV,CAAmCxS,CAAnC,CASAwS,EAAA5pB,UAAA4X,MAAA,CAA0CiS,QAAS,CAAC3iB,CAAD,CAAa,CAC5D,IAAA0B,OAAA8J,KAAA,CAAiB+W,EAAjB,CACA,KAAAphB,YAAAqK,KAAA,CAAsBxL,CAAtB,CAF4D,CAIhE0iB,EAAA5pB,UAAAgY,UAAA,CAA8C8R,QAAS,EAAG,CACtD,IAAIzhB,EAAc,IAAAA,YAAlB,CACIM,EAAMN,CAAA1G,OACV,IAAY,CAAZ,GAAIgH,CAAJ,CACI,IAAA1H,YAAAiC,SAAA,EADJ,KAGK,CAED,IAAA6mB,UAAA,CADA,IAAA7H,OACA,CADcvZ,CAEd,KAAK,IAAInF,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI0D,EAAamB,CAAA,CAAY7E,CAAZ,CACjB,KAAAC,IAAA,CAAS+C,CAAA,CAAkB,IAAlB,CAAwBU,CAAxB,CAAoCA,CAApC,CAAgD1D,CAAhD,CAAT,CAF0B,CAH7B,CANiD,CAe1DomB,EAAA5pB,UAAA8oB,eAAA,CAAmDkB,QAAS,CAACC,CAAD,CAAS,CACtC,CAA3B,GAAK,EAAA,IAAA/H,OAAL,EACI,IAAAjhB,YAAAiC,SAAA,EAF6D,CAKrE0mB,EAAA5pB,UAAA4Q,WAAA,CAA+CsZ,QAAS,CAACvjB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC3G7I,CAAAA,CAAS,IAAAA,OACTuhB,EAAAA,CAASvhB,CAAA,CAAOhC,CAAP,CACTmjB,EAAAA,CAAa,IAAAA,UAAD,CAEVI,CAAA,GAAWV,EAAX,CAAkB,EAAE,IAAAM,UAApB,CAAqC,IAAAA,UAF3B,CACV,CAENnhB,EAAA,CAAOhC,CAAP,CAAA,CAAqB8hB,CACH,EAAlB;AAAIqB,CAAJ,GACQ,IAAAhlB,eAAJ,CACI,IAAAqlB,mBAAA,CAAwBxhB,CAAxB,CADJ,CAII,IAAA3H,YAAAyC,KAAA,CAAsBkF,CAAAa,MAAA,EAAtB,CALR,CAP+G,CAgBnHmgB,EAAA5pB,UAAAoqB,mBAAA,CAAuDC,QAAS,CAACzhB,CAAD,CAAS,CACrE,IAAIlC,CACJ,IAAI,CACAA,CAAA,CAAS,IAAA3B,eAAAC,MAAA,CAA0B,IAA1B,CAAgC4D,CAAhC,CADT,CAGJ,MAAOtI,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAW,YAAAyC,KAAA,CAAsBgD,CAAtB,CATqE,CAWzE,OAAOkjB,EA7DsC,CAAlB,CA8D7BpB,CA9D6B,CAnG/B,CA2RItgB,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAAC1D,CAAD,CAAUqD,CAAV,CAAsB,CACxB,IAAK,EAAxB,GAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACA,KAAAvD,QAAA,CAAeA,CACf,KAAAqD,WAAA,CAAkBA,CAHyB,CAK/CK,CAAAlI,UAAA0J,KAAA,CAAkC4gB,QAAS,CAACtpB,CAAD,CAAWwB,CAAX,CAAmB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI2kB,EAAJ,CAAuBvpB,CAAvB,CAAiC,IAAAwD,QAAjC,CAA+C,IAAAqD,WAA/C,CAAjB,CADmD,CAG9D,OAAOK,EATyB,CAAZ,EA3RxB,CAsSIqiB,GAAsB,QAAS,CAACnT,CAAD,CAAS,CAExCmT,QAASA,EAAkB,CAACtpB,CAAD,CAAcuD,CAAd,CAAuBqD,CAAvB,CAAmC,CACvC,IAAK,EAAxB;AAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACIlC,EAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAArB,QAAA,CAAgBA,CAChBqB,EAAAgC,WAAA,CAAmBA,CACnBhC,EAAA6f,aAAA,CAAqB,CAAA,CACrB7f,EAAA2kB,OAAA,CAAe,EACf3kB,EAAAqc,OAAA,CAAe,CACfrc,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EATmD,CAD9DnG,CAAA,CAAU6qB,CAAV,CAA8BnT,CAA9B,CAYAmT,EAAAvqB,UAAA4X,MAAA,CAAqC6S,QAAS,CAACrnB,CAAD,CAAQ,CAC9C,IAAA8e,OAAJ,CAAkB,IAAAra,WAAlB,CACI,IAAA6iB,SAAA,CAActnB,CAAd,CADJ,CAII,IAAAonB,OAAA9X,KAAA,CAAiBtP,CAAjB,CAL8C,CAQtDmnB,EAAAvqB,UAAA0qB,SAAA,CAAwCC,QAAS,CAACvnB,CAAD,CAAQ,CACrD,IAAIsD,CAAJ,CACI+E,EAAQ,IAAAA,MAAA,EACZ,IAAI,CACA/E,CAAA,CAAS,IAAAlC,QAAA,CAAapB,CAAb,CAAoBqI,CAApB,CADT,CAGJ,MAAOnL,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAA4hB,OAAA,EACA,KAAA0I,UAAA,CAAelkB,CAAf,CAAuBtD,CAAvB,CAA8BqI,CAA9B,CAXqD,CAazD8e,EAAAvqB,UAAA4qB,UAAA,CAAyCC,QAAS,CAACC,CAAD,CAAM1nB,CAAN,CAAaqI,CAAb,CAAoB,CAC9D5E,CAAAA,CAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0B1D,CAA1B,CAAiCqI,CAAjC,CAClBxK,EAAAA,CAAc,IAAAA,YAClBA,EAAAwC,IAAA,CAAgBoD,CAAhB,CACIkkB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwBskB,CAAxB,CAA6B9kB,IAAAA,EAA7B;AAAwCA,IAAAA,EAAxC,CAAmDa,CAAnD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B,EACI5F,CAAAwC,IAAA,CAAgBsnB,CAAhB,CAN8D,CAStER,EAAAvqB,UAAAgY,UAAA,CAAyCgT,QAAS,EAAG,CACjD,IAAAtF,aAAA,CAAoB,CAAA,CACA,EAApB,GAAI,IAAAxD,OAAJ,EAAgD,CAAhD,GAAyB,IAAAsI,OAAA7oB,OAAzB,EACI,IAAAV,YAAAiC,SAAA,EAEJ,KAAA0G,YAAA,EALiD,CAOrD2gB,EAAAvqB,UAAA4Q,WAAA,CAA0Cqa,QAAS,CAACtkB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC1G,IAAAxQ,YAAAyC,KAAA,CAAsBglB,CAAtB,CAD0G,CAG9G6B,EAAAvqB,UAAA8oB,eAAA,CAA8CoC,QAAS,CAACzZ,CAAD,CAAW,CAC9D,IAAI+Y,EAAS,IAAAA,OACb,KAAApX,OAAA,CAAY3B,CAAZ,CACA,KAAAyQ,OAAA,EACoB,EAApB,CAAIsI,CAAA7oB,OAAJ,CACI,IAAAiW,MAAA,CAAW4S,CAAAtkB,MAAA,EAAX,CADJ,CAGyB,CAHzB,GAGS,IAAAgc,OAHT,EAG8B,IAAAwD,aAH9B,EAII,IAAAzkB,YAAAiC,SAAA,EAR0D,CAWlE,OAAOqnB,EAhEiC,CAAlB,CAiExB/B,CAjEwB,CAtS1B,CA0sBI2C,GAAQ,IAAIpoB,CAAJ,CAAezB,CAAf,CA1sBZ,CAuxBI4K,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACF,CAAD,CAAYvH,CAAZ,CAAqB,CACxC,IAAAuH,UAAA,CAAiBA,CACjB,KAAAvH,QAAA;AAAeA,CAFyB,CAI5CyH,CAAAlM,UAAA0J,KAAA,CAAgC0hB,QAAS,CAACpoB,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIylB,EAAJ,CAAqBroB,CAArB,CAAiC,IAAAgJ,UAAjC,CAAiD,IAAAvH,QAAjD,CAAjB,CADmD,CAG9D,OAAOyH,EARuB,CAAZ,EAvxBtB,CAiyBImf,GAAoB,QAAS,CAACjU,CAAD,CAAS,CAEtCiU,QAASA,EAAgB,CAACpqB,CAAD,CAAc+K,CAAd,CAAyBvH,CAAzB,CAAkC,CACnDoB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAApB,QAAA,CAAgBA,CAChBoB,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EALgD,CAD3DnG,CAAA,CAAU2rB,CAAV,CAA4BjU,CAA5B,CAQAiU,EAAArrB,UAAA4X,MAAA,CAAmC0T,QAAS,CAACloB,CAAD,CAAQ,CAChD,IAAIsD,CACJ,IAAI,CACAA,CAAA,CAAS,IAAAsF,UAAAtC,KAAA,CAAoB,IAAAjF,QAApB,CAAkCrB,CAAlC,CAAyC,IAAAmJ,MAAA,EAAzC,CADT,CAGJ,MAAOjM,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIRoG,CAAJ,EACI,IAAAzF,YAAAyC,KAAA,CAAsBN,CAAtB,CAV4C,CAapD,OAAOioB,EAtB+B,CAAlB,CAuBtBhqB,CAvBsB,CAjyBxB,CAg1BI+K,GAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,EAAG,EAExBA,CAAApM,UAAA0J,KAAA,CAA8B6hB,QAAS,CAACvoB,CAAD,CAAaR,CAAb,CAAqB,CACxD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI4lB,EAAJ,CAAmBxoB,CAAnB,CAAjB,CADiD,CAG5D,OAAOoJ,EANqB,CAAZ,EAh1BpB,CAw1BIof,GAAkB,QAAS,CAACpU,CAAD,CAAS,CAEpCoU,QAASA,EAAc,CAACvqB,CAAD,CAAc,CAC7B4E,CAAAA;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA4lB,SAAA,CAAiB,CAAA,CACjB5lB,EAAAwC,YAAA,CAAoB,EACpBxC,EAAAgR,cAAA,CAAsB,EACtB,OAAOhR,EAL0B,CADrCnG,CAAA,CAAU8rB,CAAV,CAA0BpU,CAA1B,CAQAoU,EAAAxrB,UAAA4X,MAAA,CAAiC8T,QAAS,CAACxkB,CAAD,CAAa,CACnD,IAAAmB,YAAAqK,KAAA,CAAsBxL,CAAtB,CADmD,CAGvDskB,EAAAxrB,UAAAgY,UAAA,CAAqC2T,QAAS,EAAG,CAC7C,IAAItjB,EAAc,IAAAA,YAAlB,CACIM,EAAMN,CAAA1G,OACV,IAAY,CAAZ,GAAIgH,CAAJ,CACI,IAAA1H,YAAAiC,SAAA,EADJ,KAGK,CACD,IAAK,IAAIM,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,EAA4B8iB,CAAA,IAAAA,SAA5B,CAA2CjoB,CAAA,EAA3C,CAAgD,CAC5C,IAAI0D,EAAamB,CAAA,CAAY7E,CAAZ,CAAjB,CACIkI,EAAelF,CAAA,CAAkB,IAAlB,CAAwBU,CAAxB,CAAoCA,CAApC,CAAgD1D,CAAhD,CACf,KAAAqT,cAAJ,EACI,IAAAA,cAAAnE,KAAA,CAAwBhH,CAAxB,CAEJ,KAAAjI,IAAA,CAASiI,CAAT,CAN4C,CAQhD,IAAArD,YAAA,CAAmB,IATlB,CANwC,CAkBjDmjB,EAAAxrB,UAAA4Q,WAAA,CAAsCgb,QAAS,CAACjlB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACtG,GAAKga,CAAA,IAAAA,SAAL,CAAoB,CAChB,IAAAA,SAAA,CAAgB,CAAA,CAChB,KAASjoB,CAAT,CAAa,CAAb,CAAgBA,CAAhB,CAAoB,IAAAqT,cAAAlV,OAApB,CAA+C6B,CAAA,EAA/C,CACQA,CAAJ;AAAUoD,CAAV,GACQ8E,CAEJ,CAFmB,IAAAmL,cAAA,CAAmBrT,CAAnB,CAEnB,CADAkI,CAAA9B,YAAA,EACA,CAAA,IAAAwJ,OAAA,CAAY1H,CAAZ,CAHJ,CAMJ,KAAAmL,cAAA,CAAqB,IATL,CAWpB,IAAA5V,YAAAyC,KAAA,CAAsBglB,CAAtB,CAZsG,CAc1G,OAAO8C,EA5C6B,CAAlB,CA6CpBhD,CA7CoB,CAx1BtB,CA6/BIxb,GAAe,QAAS,EAAG,CAC3BA,QAASA,EAAW,CAACjI,CAAD,CAAiB,CACjC,IAAAA,eAAA,CAAsBA,CADW,CAGrCiI,CAAAhN,UAAA0J,KAAA,CAA6BmiB,QAAS,CAAC7oB,CAAD,CAAaR,CAAb,CAAqB,CACvD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIkmB,EAAJ,CAAkB9oB,CAAlB,CAA8B,IAAA+B,eAA9B,CAAjB,CADgD,CAG3D,OAAOiI,EAPoB,CAAZ,EA7/BnB,CAsgCI8e,GAAiB,QAAS,CAAC1U,CAAD,CAAS,CAEnC0U,QAASA,EAAa,CAAC7qB,CAAD,CAAc8D,CAAd,CAA8B6D,CAA9B,CAAsC,CACzC,IAAK,EAApB,GAAIA,CAAJ,GAAyBA,CAAzB,CAAkC3I,MAAAC,OAAA,CAAc,IAAd,CAAlC,CACI2F,EAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAkmB,UAAA,CAAkB,EAClBlmB,EAAAqc,OAAA,CAAe,CACfrc,EAAAd,eAAA,CAAkD,UAA3B,GAAC,MAAOA,EAAR,CAAyCA,CAAzC,CAA0D,IACjFc,EAAA+C,OAAA,CAAeA,CACf,OAAO/C,EAPiD,CAD5DnG,CAAA,CAAUosB,CAAV,CAAyB1U,CAAzB,CAUA0U,EAAA9rB,UAAA4X,MAAA,CAAgCoU,QAAS,CAAC5oB,CAAD,CAAQ,CAC7C,IAAI2oB,EAAY,IAAAA,UACZ9mB;CAAA,CAAQ7B,CAAR,CAAJ,CACI2oB,CAAArZ,KAAA,CAAe,IAAIuZ,EAAJ,CAAwB7oB,CAAxB,CAAf,CADJ,CAGoC,UAA/B,GAAI,MAAOA,EAAA,CAAMmE,CAAN,CAAX,CACDwkB,CAAArZ,KAAA,CAAe,IAAIwZ,EAAJ,CAAmB9oB,CAAA,CAAMmE,CAAN,CAAA,EAAnB,CAAf,CADC,CAIDwkB,CAAArZ,KAAA,CAAe,IAAIyZ,EAAJ,CAAsB,IAAAlrB,YAAtB,CAAwC,IAAxC,CAA8CmC,CAA9C,CAAf,CATyC,CAYjD0oB,EAAA9rB,UAAAgY,UAAA,CAAoCoU,QAAS,EAAG,CAC5C,IAAIL,EAAY,IAAAA,UAAhB,CACIpjB,EAAMojB,CAAApqB,OACV,KAAAiI,YAAA,EACA,IAAY,CAAZ,GAAIjB,CAAJ,CACI,IAAA1H,YAAAiC,SAAA,EADJ,KAAA,CAIA,IAAAgf,OAAA,CAAcvZ,CACd,KAAK,IAAInF,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI6D,EAAc0kB,CAAA,CAAUvoB,CAAV,CACd6D,EAAAglB,kBAAJ,CACsB,IAAAprB,YAClBwC,IAAA,CAAgB4D,CAAAzB,UAAA,CAAsByB,CAAtB,CAAmC7D,CAAnC,CAAhB,CAFJ,CAKI,IAAA0e,OAAA,EAPsB,CAL9B,CAJ4C,CAoBhD4J,EAAA9rB,UAAAssB,eAAA,CAAyCC,QAAS,EAAG,CACjD,IAAArK,OAAA,EACoB,EAApB,GAAI,IAAAA,OAAJ,EACI,IAAAjhB,YAAAiC,SAAA,EAH6C,CAMrD4oB,EAAA9rB,UAAAwsB,eAAA,CAAyCC,QAAS,EAAG,CAIjD,IAHA,IAAIV;AAAY,IAAAA,UAAhB,CACIpjB,EAAMojB,CAAApqB,OADV,CAEIV,EAAc,IAAAA,YAFlB,CAGSuC,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI6D,EAAc0kB,CAAA,CAAUvoB,CAAV,CAClB,IAAoC,UAApC,GAAI,MAAO6D,EAAA4B,SAAX,EAAmD,CAAA5B,CAAA4B,SAAA,EAAnD,CACI,MAHsB,CAQ9B,IAFA,IAAIyjB,EAAiB,CAAA,CAArB,CACI5oB,EAAO,EADX,CAESN,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI6D,EAAc0kB,CAAA,CAAUvoB,CAAV,CAAlB,CACIkD,EAASW,CAAA3D,KAAA,EACT2D,EAAAqe,aAAA,EAAJ,GACIgH,CADJ,CACqB,CAAA,CADrB,CAGA,IAAIhmB,CAAAc,KAAJ,CAAiB,CACbvG,CAAAiC,SAAA,EACA,OAFa,CAIjBY,CAAA4O,KAAA,CAAUhM,CAAAtD,MAAV,CAV0B,CAY1B,IAAA2B,eAAJ,CACI,IAAA4nB,mBAAA,CAAwB7oB,CAAxB,CADJ,CAII7C,CAAAyC,KAAA,CAAiBI,CAAjB,CAEA4oB,EAAJ,EACIzrB,CAAAiC,SAAA,EA/B6C,CAkCrD4oB,EAAA9rB,UAAA2sB,mBAAA,CAA6CC,QAAS,CAAC9oB,CAAD,CAAO,CACzD,IAAI4C,CACJ,IAAI,CACAA,CAAA,CAAS,IAAA3B,eAAAC,MAAA,CAA0B,IAA1B,CAAgClB,CAAhC,CADT,CAGJ,MAAOxD,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAW,YAAAyC,KAAA,CAAsBgD,CAAtB,CATyD,CAW7D,OAAOolB,EA9F4B,CAAlB,CA+FnBzqB,CA/FmB,CAtgCrB,CAsmCI6qB,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAAC7kB,CAAD,CAAc,CACjC,IAAAE,SAAA;AAAgBF,CAChB,KAAAwlB,WAAA,CAAkBxlB,CAAA3D,KAAA,EAFe,CAIrCwoB,CAAAlsB,UAAAiJ,SAAA,CAAoC6jB,QAAS,EAAG,CAC5C,MAAO,CAAA,CADqC,CAGhDZ,EAAAlsB,UAAA0D,KAAA,CAAgCqpB,QAAS,EAAG,CACxC,IAAIrmB,EAAS,IAAAmmB,WACb,KAAAA,WAAA,CAAkB,IAAAtlB,SAAA7D,KAAA,EAClB,OAAOgD,EAHiC,CAK5CwlB,EAAAlsB,UAAA0lB,aAAA,CAAwCsH,QAAS,EAAG,CAChD,IAAIH,EAAa,IAAAA,WACjB,OAAOA,EAAP,EAAqBA,CAAArlB,KAF2B,CAIpD,OAAO0kB,EAjBuB,CAAZ,EAtmCtB,CAynCID,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,CAAC1J,CAAD,CAAQ,CAChC,IAAAA,MAAA,CAAaA,CAEb,KAAA5gB,OAAA,CADA,IAAA8J,MACA,CADa,CAEb,KAAA9J,OAAA,CAAc4gB,CAAA5gB,OAJkB,CAMpCsqB,CAAAjsB,UAAA,CAA8BuH,CAA9B,CAAA,CAA0C,QAAS,EAAG,CAClD,MAAO,KAD2C,CAGtD0kB,EAAAjsB,UAAA0D,KAAA,CAAqCupB,QAAS,CAAC7pB,CAAD,CAAQ,CAC9CI,CAAAA,CAAI,IAAAiI,MAAA,EACR,KAAI8W,EAAQ,IAAAA,MACZ,OAAO/e,EAAA,CAAI,IAAA7B,OAAJ,CAAkB,CAAEyB,MAAOmf,CAAA,CAAM/e,CAAN,CAAT,CAAmBgE,KAAM,CAAA,CAAzB,CAAlB,CAAqD,CAAEpE,MAAO,IAAT,CAAeoE,KAAM,CAAA,CAArB,CAHV,CAKtDykB;CAAAjsB,UAAAiJ,SAAA,CAAyCikB,QAAS,EAAG,CACjD,MAAO,KAAA3K,MAAA5gB,OAAP,CAA2B,IAAA8J,MADsB,CAGrDwgB,EAAAjsB,UAAA0lB,aAAA,CAA6CyH,QAAS,EAAG,CACrD,MAAO,KAAA5K,MAAA5gB,OAAP,GAA6B,IAAA8J,MADwB,CAGzD,OAAOwgB,EArB4B,CAAZ,EAznC3B,CAgpCIE,GAAqB,QAAS,CAAC/U,CAAD,CAAS,CAEvC+U,QAASA,EAAiB,CAAClrB,CAAD,CAAckY,CAAd,CAAsBjS,CAAtB,CAAkC,CACpDrB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAsT,OAAA,CAAeA,CACftT,EAAAqB,WAAA,CAAmBA,CACnBrB,EAAAwmB,kBAAA,CAA0B,CAAA,CAC1BxmB,EAAA2kB,OAAA,CAAe,EACf3kB,EAAAyL,WAAA,CAAmB,CAAA,CACnB,OAAOzL,EAPiD,CAD5DnG,CAAA,CAAUysB,CAAV,CAA6B/U,CAA7B,CAUA+U,EAAAnsB,UAAA,CAA4BuH,CAA5B,CAAA,CAAwC,QAAS,EAAG,CAChD,MAAO,KADyC,CAGpD4kB,EAAAnsB,UAAA0D,KAAA,CAAmC0pB,QAAS,EAAG,CAC3C,IAAI5C,EAAS,IAAAA,OACb,OAAsB,EAAtB,GAAIA,CAAA7oB,OAAJ,EAA2B,IAAA2P,WAA3B,CACW,CAAElO,MAAO,IAAT,CAAeoE,KAAM,CAAA,CAArB,CADX,CAIW,CAAEpE,MAAOonB,CAAAtkB,MAAA,EAAT,CAAyBsB,KAAM,CAAA,CAA/B,CANgC,CAS/C2kB,EAAAnsB,UAAAiJ,SAAA,CAAuCokB,QAAS,EAAG,CAC/C,MAA4B,EAA5B;AAAO,IAAA7C,OAAA7oB,OADwC,CAGnDwqB,EAAAnsB,UAAA0lB,aAAA,CAA2C4H,QAAS,EAAG,CACnD,MAA8B,EAA9B,GAAO,IAAA9C,OAAA7oB,OAAP,EAAmC,IAAA2P,WADgB,CAGvD6a,EAAAnsB,UAAA8oB,eAAA,CAA6CyE,QAAS,EAAG,CAC5B,CAAzB,CAAI,IAAA/C,OAAA7oB,OAAJ,EACI,IAAA2P,WACA,CADkB,CAAA,CAClB,CAAA,IAAA6H,OAAAmT,eAAA,EAFJ,EAKI,IAAArrB,YAAAiC,SAAA,EANiD,CASzDipB,EAAAnsB,UAAA4Q,WAAA,CAAyC4c,QAAS,CAAC7mB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACzG,IAAA+Y,OAAA9X,KAAA,CAAiBgW,CAAjB,CACA,KAAAvP,OAAAqT,eAAA,EAFyG,CAI7GL,EAAAnsB,UAAA4F,UAAA,CAAwC6nB,QAAS,CAACrqB,CAAD,CAAQqI,CAAR,CAAe,CAC5D,MAAOjF,EAAA,CAAkB,IAAlB,CAAwB,IAAAU,WAAxB,CAAyC,IAAzC,CAA+CuE,CAA/C,CADqD,CAGhE,OAAO0gB,EA7CgC,CAAlB,CA8CvB3D,CA9CuB,CAhpCzB,CAqsCIpb,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACF,CAAD,CAAmB,CACrC,IAAAA,iBAAA,CAAwBA,CADa,CAGzCE,CAAApN,UAAA0J,KAAA,CAA+BgkB,QAAS,CAAC1qB,CAAD;AAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+nB,EAAJ,CAAoB3qB,CAApB,CAAgC,IAAAkK,iBAAhC,CAAjB,CADkD,CAG7D,OAAOE,EAPsB,CAAZ,EArsCrB,CA8sCIugB,GAAmB,QAAS,CAACvW,CAAD,CAAS,CAErCuW,QAASA,EAAe,CAAC1sB,CAAD,CAAciM,CAAd,CAAgC,CAChDrH,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAqH,iBAAA,CAAyBA,CACzBrH,EAAAoD,SAAA,CAAiB,CAAA,CACjB,OAAOpD,EAJ6C,CADxDnG,CAAA,CAAUiuB,CAAV,CAA2BvW,CAA3B,CAOAuW,EAAA3tB,UAAA4X,MAAA,CAAkCgW,QAAS,CAACxqB,CAAD,CAAQ,CAC/C,IAAAA,MAAA,CAAaA,CACb,KAAA6F,SAAA,CAAgB,CAAA,CAChB,IAAK4kB,CAAA,IAAAA,UAAL,CAAqB,CACjB,IAAIrP,EAAW,IAAK,EACpB,IAAI,CACA,IAAItR,EAAmB,IAAAA,iBAAvB,CACAsR,EAAWtR,CAAA,CAAiB9J,CAAjB,CAFX,CAIJ,MAAO9C,CAAP,CAAY,CACR,MAAO,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADC,CAGRyqB,CAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwBgY,CAAxB,CACnBuM,EAAAA,CAAL,EAA0BA,CAAA3pB,OAA1B,CACI,IAAAyQ,cAAA,EADJ,CAII,IAAApO,IAAA,CAAS,IAAAoqB,UAAT,CAA0B9C,CAA1B,CAda,CAH0B,CAqBnD4C,EAAA3tB,UAAA6R,cAAA,CAA0Cic,QAAS,EAAG,CAAA,IACnC1qB,EAANlC,IAAckC,MAD2B,CACjB6F,EAAxB/H,IAAmC+H,SADM,CACO4kB,EAAhD3sB,IAA4D2sB,UACjEA;CAAJ,GACI,IAAAza,OAAA,CAAYya,CAAZ,CAEA,CADA,IAAAA,UACA,CADiB,IACjB,CAAAA,CAAAjkB,YAAA,EAHJ,CAKIX,EAAJ,GACI,IAAA7F,MAEA,CAFa,IAEb,CADA,IAAA6F,SACA,CADgB,CAAA,CAChB,CAAA,IAAAhI,YAAAyC,KAAA,CAAsBN,CAAtB,CAHJ,CAPkD,CAatDuqB,EAAA3tB,UAAA4Q,WAAA,CAAuCmd,QAAS,CAACpnB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiD,CAC7F,IAAA9W,cAAA,EAD6F,CAGjG8b,EAAA3tB,UAAA8oB,eAAA,CAA2CkF,QAAS,EAAG,CACnD,IAAAnc,cAAA,EADmD,CAGvD,OAAO8b,EAhD8B,CAAlB,CAiDrBnF,CAjDqB,CA9sCvB,CA2wCIyF,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACC,CAAD,CAAkB,CACrC,IAAAA,gBAAA,CAAuBA,CADc,CAGzCD,CAAAjuB,UAAA0J,KAAA,CAAgCykB,QAAS,CAACnrB,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIwoB,EAAJ,CAAqBprB,CAArB,CAAiC,IAAAkrB,gBAAjC,CAAjB,CADmD,CAG9D,OAAOD,EAPuB,CAAZ,EA3wCtB,CAoxCIG,GAAoB,QAAS,CAAChX,CAAD,CAAS,CAEtCgX,QAASA,EAAgB,CAACntB,CAAD,CAAcitB,CAAd,CAA+B,CAChDroB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA2kB,OAAA,CAAe,EACf3kB,EAAApC,IAAA,CAAU+C,CAAA,CAAkBX,CAAlB,CAAyBqoB,CAAzB,CAAV,CACA,OAAOroB,EAJ6C,CADxDnG,CAAA,CAAU0uB,CAAV,CAA4BhX,CAA5B,CAOAgX,EAAApuB,UAAA4X,MAAA;AAAmCyW,QAAS,CAACjrB,CAAD,CAAQ,CAChD,IAAAonB,OAAA9X,KAAA,CAAiBtP,CAAjB,CADgD,CAGpDgrB,EAAApuB,UAAA4Q,WAAA,CAAwC0d,QAAS,CAAC3nB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACpG+Y,CAAAA,CAAS,IAAAA,OACb,KAAAA,OAAA,CAAc,EACd,KAAAvpB,YAAAyC,KAAA,CAAsB8mB,CAAtB,CAHwG,CAK5G,OAAO4D,EAhB+B,CAAlB,CAiBtB5F,CAjBsB,CApxCxB,CA6yCI+F,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,CAACtd,CAAD,CAAaud,CAAb,CAA+B,CACvD,IAAAvd,WAAA,CAAkBA,CAMd,KAAAwd,gBAAA,CAJJ,CADA,IAAAD,iBACA,CADwBA,CACxB,GAAyBvd,CAAzB,GAAwCud,CAAxC,CAI2BE,EAJ3B,CAC2BC,EAJ4B,CAU3DJ,CAAAvuB,UAAA0J,KAAA,CAAqCklB,QAAS,CAAC5rB,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI,IAAA6oB,gBAAJ,CAAyBzrB,CAAzB,CAAqC,IAAAiO,WAArC,CAAsD,IAAAud,iBAAtD,CAAjB,CADwD,CAGnE,OAAOD,EAd4B,CAAZ,EA7yC3B,CA6zCII,GAAyB,QAAS,CAACvX,CAAD,CAAS,CAE3CuX,QAASA,EAAqB,CAAC1tB,CAAD,CAAcgQ,CAAd,CAA0B,CAChDpL,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAoL,WAAA,CAAmBA,CACnBpL,EAAA2kB,OAAA,CAAe,EACf,OAAO3kB,EAJ6C,CADxDnG,CAAA,CAAUivB,CAAV,CAAiCvX,CAAjC,CAOAuX,EAAA3uB,UAAA4X,MAAA,CAAwCiX,QAAS,CAACzrB,CAAD,CAAQ,CACrD,IAAIonB;AAAS,IAAAA,OACbA,EAAA9X,KAAA,CAAYtP,CAAZ,CACIonB,EAAA7oB,OAAJ,EAAqB,IAAAsP,WAArB,GACI,IAAAhQ,YAAAyC,KAAA,CAAsB8mB,CAAtB,CACA,CAAA,IAAAA,OAAA,CAAc,EAFlB,CAHqD,CAQzDmE,EAAA3uB,UAAAgY,UAAA,CAA4C8W,QAAS,EAAG,CACpD,IAAItE,EAAS,IAAAA,OACO,EAApB,CAAIA,CAAA7oB,OAAJ,EACI,IAAAV,YAAAyC,KAAA,CAAsB8mB,CAAtB,CAEJpT,EAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CALoD,CAOxD,OAAOilB,EAvBoC,CAAlB,CAwB3BttB,CAxB2B,CA7zC7B,CAs1CIqtB,GAA6B,QAAS,CAACtX,CAAD,CAAS,CAE/CsX,QAASA,EAAyB,CAACztB,CAAD,CAAcgQ,CAAd,CAA0Bud,CAA1B,CAA4C,CACtE3oB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAoL,WAAA,CAAmBA,CACnBpL,EAAA2oB,iBAAA,CAAyBA,CACzB3oB,EAAAkpB,QAAA,CAAgB,EAChBlpB,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EANmE,CAD9EnG,CAAA,CAAUgvB,CAAV,CAAqCtX,CAArC,CASAsX,EAAA1uB,UAAA4X,MAAA,CAA4CoX,QAAS,CAAC5rB,CAAD,CAAQ,CAAA,IAC1C6N,EAAN/P,IAAmB+P,WAD6B,CACdud,EAAlCttB,IAAqDstB,iBADL,CAC0BO,EAA1E7tB,IAAoF6tB,QADpC,CACgDxiB,EAAhGrL,IAAwGqL,MACjH,KAAAA,MAAA,EACiC,EAAjC,GAAIA,CAAJ,CAAYiiB,CAAZ,EACIO,CAAArc,KAAA,CAAa,EAAb,CAEJ,KAASlP,CAAT;AAAaurB,CAAAptB,OAAb,CAA6B6B,CAAA,EAA7B,CAAA,CACQgnB,CAEJ,CAFauE,CAAA,CAAQvrB,CAAR,CAEb,CADAgnB,CAAA9X,KAAA,CAAYtP,CAAZ,CACA,CAAIonB,CAAA7oB,OAAJ,GAAsBsP,CAAtB,GACI8d,CAAA/X,OAAA,CAAexT,CAAf,CAAkB,CAAlB,CACA,CAAA,IAAAvC,YAAAyC,KAAA,CAAsB8mB,CAAtB,CAFJ,CATqD,CAe7DkE,EAAA1uB,UAAAgY,UAAA,CAAgDiX,QAAS,EAAG,CAExD,IAFwD,IACzCF,EAAN7tB,IAAgB6tB,QAD+B,CACnB9tB,EAA5BC,IAA0CD,YACnD,CAAwB,CAAxB,CAAO8tB,CAAAptB,OAAP,CAAA,CAA2B,CACvB,IAAI6oB,EAASuE,CAAA7oB,MAAA,EACO,EAApB,CAAIskB,CAAA7oB,OAAJ,EACIV,CAAAyC,KAAA,CAAiB8mB,CAAjB,CAHmB,CAM3BpT,CAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CARwD,CAU5D,OAAOglB,EAnCwC,CAAlB,CAoC/BrtB,CApC+B,CAt1CjC,CA+4CI6tB,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAACxhB,CAAD,CAAiBE,CAAjB,CAAyCuhB,CAAzC,CAAwDvsB,CAAxD,CAAmE,CAC1F,IAAA8K,eAAA,CAAsBA,CACtB,KAAAE,uBAAA,CAA8BA,CAC9B,KAAAuhB,cAAA,CAAqBA,CACrB,KAAAvsB,UAAA,CAAiBA,CAJyE,CAM9FssB,CAAAlvB,UAAA0J,KAAA,CAAoC0lB,QAAS,CAACpsB,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIypB,EAAJ,CAAyBrsB,CAAzB,CAAqC,IAAA0K,eAArC,CAA0D,IAAAE,uBAA1D,CAAuF,IAAAuhB,cAAvF;AAA2G,IAAAvsB,UAA3G,CAAjB,CADuD,CAGlE,OAAOssB,EAV2B,CAAZ,EA/4C1B,CA25CII,GAAW,QAAS,EAAG,CAIvB,MAHAA,SAAgB,EAAG,CACf,IAAA9E,OAAA,CAAc,EADC,CADI,CAAZ,EA35Cf,CAi6CI6E,GAAwB,QAAS,CAACjY,CAAD,CAAS,CAE1CiY,QAASA,EAAoB,CAACpuB,CAAD,CAAcyM,CAAd,CAA8BE,CAA9B,CAAsDuhB,CAAtD,CAAqEvsB,CAArE,CAAgF,CACrGiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA6H,eAAA,CAAuBA,CACvB7H,EAAA+H,uBAAA,CAA+BA,CAC/B/H,EAAAspB,cAAA,CAAsBA,CACtBtpB,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAA0pB,SAAA,CAAiB,EACbrqB,EAAAA,CAAUW,CAAA2H,YAAA,EACd3H,EAAA2pB,aAAA,CAA+C,IAA/C,EAAqB5hB,CAArB,EAAgF,CAAhF,CAAuDA,CACvD,IAAI/H,CAAA2pB,aAAJ,CAEI3pB,CAAApC,IAAA,CAAUyB,CAAAuI,YAAV,CAAgC7K,CAAAK,SAAA,CAAmBoK,EAAnB,CAA+CK,CAA/C,CADR+hB,CAAEzsB,WAAY6C,CAAd4pB,CAAqBvqB,QAASA,CAA9BuqB,CAAuC/hB,eAAgBA,CAAvD+hB,CACQ,CAAhC,CAFJ,KAIK,CAED,IAAIC,EAAgB,CAAEhiB,eAAgBA,CAAlB,CAAkCE,uBAAwBA,CAA1D,CAAkF5K,WAAY6C,CAA9F,CAAqGjD,UAAWA,CAAhH,CACpBiD,EAAApC,IAAA,CAAUyB,CAAAuI,YAAV,CAAgC7K,CAAAK,SAAA,CAAmB4K,EAAnB,CAAwCH,CAAxC,CAFfiiB,CAAE3sB,WAAY6C,CAAd8pB;AAAqBzqB,QAASA,CAA9ByqB,CAEe,CAAhC,CACA9pB,EAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmB0K,EAAnB,CAA2CC,CAA3C,CAAmE8hB,CAAnE,CAAV,CAJC,CAML,MAAO7pB,EAnBkG,CAD7GnG,CAAA,CAAU2vB,CAAV,CAAgCjY,CAAhC,CAsBAiY,EAAArvB,UAAA4X,MAAA,CAAuCgY,QAAS,CAACxsB,CAAD,CAAQ,CAIpD,IAHA,IAAImsB,EAAW,IAAAA,SAAf,CACI5mB,EAAM4mB,CAAA5tB,OADV,CAEIkuB,CAFJ,CAGSrsB,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAIssB,EAAYP,CAAA,CAAS/rB,CAAT,CAAhB,CACIgnB,EAASsF,CAAAtF,OACbA,EAAA9X,KAAA,CAAYtP,CAAZ,CACIonB,EAAA7oB,OAAJ,EAAqB,IAAAwtB,cAArB,GACIU,CADJ,CAC0BC,CAD1B,CAJ0B,CAQ9B,GAAID,CAAJ,CACI,IAAAE,aAAA,CAAkBF,CAAlB,CAbgD,CAgBxDR,EAAArvB,UAAA8X,OAAA,CAAwCkY,QAAS,CAAC1vB,CAAD,CAAM,CACnD,IAAAivB,SAAA5tB,OAAA,CAAuB,CACvByV,EAAApX,UAAA8X,OAAApO,KAAA,CAA6B,IAA7B,CAAmCpJ,CAAnC,CAFmD,CAIvD+uB,EAAArvB,UAAAgY,UAAA,CAA2CiY,QAAS,EAAG,CAEnD,IAFmD,IACpCV,EAANruB,IAAiBquB,SADyB,CACZtuB,EAA9BC,IAA4CD,YACrD,CAAyB,CAAzB,CAAOsuB,CAAA5tB,OAAP,CAAA,CAA4B,CACxB,IAAIuuB,EAAYX,CAAArpB,MAAA,EAChBjF,EAAAyC,KAAA,CAAiBwsB,CAAA1F,OAAjB,CAFwB,CAI5BpT,CAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CANmD,CAQvD2lB,EAAArvB,UAAAsW,aAAA,CAA8C6Z,QAAS,EAAG,CACtD,IAAAZ,SAAA;AAAgB,IADsC,CAG1DF,EAAArvB,UAAA+vB,aAAA,CAA8CK,QAAS,CAAClrB,CAAD,CAAU,CAC7D,IAAAqI,aAAA,CAAkBrI,CAAlB,CACIuI,EAAAA,CAAcvI,CAAAuI,YAClBA,EAAA7D,YAAA,EACA,KAAAwJ,OAAA,CAAY3F,CAAZ,CACA,IAAKrM,CAAA,IAAAA,OAAL,EAAoB,IAAAouB,aAApB,CAAuC,CACnCtqB,CAAA,CAAU,IAAAsI,YAAA,EACV,KAAIE,EAAiB,IAAAA,eAErB,KAAAjK,IAAA,CAASyB,CAAAuI,YAAT,CAA+B,IAAA7K,UAAAK,SAAA,CAAwBoK,EAAxB,CAAoDK,CAApD,CADP+hB,CAAEzsB,WAAY,IAAdysB,CAAoBvqB,QAASA,CAA7BuqB,CAAsC/hB,eAAgBA,CAAtD+hB,CACO,CAA/B,CAJmC,CALsB,CAYjEJ,EAAArvB,UAAAwN,YAAA,CAA6C6iB,QAAS,EAAG,CACrD,IAAInrB,EAAU,IAAIoqB,EAClB,KAAAC,SAAA7c,KAAA,CAAmBxN,CAAnB,CACA,OAAOA,EAH8C,CAKzDmqB,EAAArvB,UAAAuN,aAAA,CAA8C+iB,QAAS,CAACprB,CAAD,CAAU,CAC7D,IAAAjE,YAAAyC,KAAA,CAAsBwB,CAAAslB,OAAtB,CACA,KAAI+E,EAAW,IAAAA,SAEI,EAAnB,GADkBA,CAAAgB,CAAWhB,CAAA3Y,QAAA,CAAiB1R,CAAjB,CAAXqrB,CAAwC,EAC1D,GACIhB,CAAAvY,OAAA,CAAgBuY,CAAA3Y,QAAA,CAAiB1R,CAAjB,CAAhB;AAA2C,CAA3C,CALyD,CAQjE,OAAOmqB,EA/EmC,CAAlB,CAgF1BhuB,CAhF0B,CAj6C5B,CAghDImvB,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,CAACC,CAAD,CAAWC,CAAX,CAA4B,CACrD,IAAAD,SAAA,CAAgBA,CAChB,KAAAC,gBAAA,CAAuBA,CAF8B,CAIzDF,CAAAxwB,UAAA0J,KAAA,CAAsCinB,QAAS,CAAC3tB,CAAD,CAAaR,CAAb,CAAqB,CAChE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIgrB,EAAJ,CAA2B5tB,CAA3B,CAAuC,IAAAytB,SAAvC,CAAsD,IAAAC,gBAAtD,CAAjB,CADyD,CAGpE,OAAOF,EAR6B,CAAZ,EAhhD5B,CA0hDII,GAA0B,QAAS,CAACxZ,CAAD,CAAS,CAE5CwZ,QAASA,EAAsB,CAAC3vB,CAAD,CAAcwvB,CAAd,CAAwBC,CAAxB,CAAyC,CAChE7qB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA4qB,SAAA,CAAiBA,CACjB5qB,EAAA6qB,gBAAA,CAAwBA,CACxB7qB,EAAA0pB,SAAA,CAAiB,EACjB1pB,EAAApC,IAAA,CAAU+C,CAAA,CAAkBX,CAAlB,CAAyB4qB,CAAzB,CAAV,CACA,OAAO5qB,EAN6D,CADxEnG,CAAA,CAAUkxB,CAAV,CAAkCxZ,CAAlC,CASAwZ,EAAA5wB,UAAA4X,MAAA,CAAyCiZ,QAAS,CAACztB,CAAD,CAAQ,CAGtD,IAFA,IAAImsB,EAAW,IAAAA,SAAf,CACI5mB,EAAM4mB,CAAA5tB,OADV,CAES6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI+rB,CAAA,CAAS/rB,CAAT,CAAAgnB,OAAA9X,KAAA,CAAwBtP,CAAxB,CAJkD,CAO1DwtB,EAAA5wB,UAAA8X,OAAA,CAA0CgZ,QAAS,CAACxwB,CAAD,CAAM,CAErD,IADA,IAAIivB,EAAW,IAAAA,SACf,CAAyB,CAAzB,CAAOA,CAAA5tB,OAAP,CAAA,CAA4B,CACxB,IAAImuB,EAAYP,CAAArpB,MAAA,EAChB4pB;CAAApkB,aAAA9B,YAAA,EACAkmB,EAAAtF,OAAA,CAAmB,IACnBsF,EAAApkB,aAAA,CAAyB,IAJD,CAM5B,IAAA6jB,SAAA,CAAgB,IAChBnY,EAAApX,UAAA8X,OAAApO,KAAA,CAA6B,IAA7B,CAAmCpJ,CAAnC,CATqD,CAWzDswB,EAAA5wB,UAAAgY,UAAA,CAA6C+Y,QAAS,EAAG,CAErD,IADA,IAAIxB,EAAW,IAAAA,SACf,CAAyB,CAAzB,CAAOA,CAAA5tB,OAAP,CAAA,CAA4B,CACxB,IAAIuuB,EAAYX,CAAArpB,MAAA,EAChB,KAAAjF,YAAAyC,KAAA,CAAsBwsB,CAAA1F,OAAtB,CACA0F,EAAAxkB,aAAA9B,YAAA,EACAsmB,EAAA1F,OAAA,CAAmB,IACnB0F,EAAAxkB,aAAA,CAAyB,IALD,CAO5B,IAAA6jB,SAAA,CAAgB,IAChBnY,EAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CAVqD,CAYzDknB,EAAA5wB,UAAA4Q,WAAA,CAA8CogB,QAAS,CAACrqB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC9G9K,CAAA,CAAa,IAAAsqB,YAAA,CAAiBtqB,CAAjB,CAAb,CAA4C,IAAAuqB,WAAA,CAAgBxI,CAAhB,CADkE,CAGlHkI,EAAA5wB,UAAA8oB,eAAA,CAAkDqI,QAAS,CAAC1f,CAAD,CAAW,CAClE,IAAAwf,YAAA,CAAiBxf,CAAAvM,QAAjB,CADkE,CAGtE0rB;CAAA5wB,UAAAkxB,WAAA,CAA8CE,QAAS,CAAChuB,CAAD,CAAQ,CAC3D,GAAI,CAEA,IAAI8qB,EADkB,IAAAwC,gBACAhnB,KAAA,CAAqB,IAArB,CAA2BtG,CAA3B,CAClB8qB,EAAJ,EACI,IAAAmD,aAAA,CAAkBnD,CAAlB,CAJJ,CAOJ,MAAO5tB,CAAP,CAAY,CACR,IAAAwX,OAAA,CAAYxX,CAAZ,CADQ,CAR+C,CAY/DswB,EAAA5wB,UAAAixB,YAAA,CAA+CK,QAAS,CAACpsB,CAAD,CAAU,CAC9D,IAAIqqB,EAAW,IAAAA,SACf,IAAIA,CAAJ,EAAgBrqB,CAAhB,CAAyB,CACrB,IAA6BwG,EAAexG,CAAAwG,aAC5C,KAAAzK,YAAAyC,KAAA,CADawB,CAAAslB,OACb,CACA+E,EAAAvY,OAAA,CAAgBuY,CAAA3Y,QAAA,CAAiB1R,CAAjB,CAAhB,CAA2C,CAA3C,CACA,KAAAkO,OAAA,CAAY1H,CAAZ,CACAA,EAAA9B,YAAA,EALqB,CAFqC,CAUlEgnB,EAAA5wB,UAAAqxB,aAAA,CAAgDE,QAAS,CAACrD,CAAD,CAAkB,CACvE,IAAIqB,EAAW,IAAAA,SAAf,CAEI7jB,EAAe,IAAInI,CAFvB,CAGI2B,EAAU,CAAEslB,OAFHA,EAEC,CAAkB9e,aAAcA,CAAhC,CACd6jB,EAAA7c,KAAA,CAAcxN,CAAd,CACI6lB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwB0nB,CAAxB,CAAyChpB,CAAzC,CACnB6lB,EAAAA,CAAL,EAA0BA,CAAA3pB,OAA1B,CACI,IAAA6vB,YAAA,CAAiB/rB,CAAjB,CADJ,EAII6lB,CAAA7lB,QAEA,CAF4BA,CAE5B,CADA,IAAAzB,IAAA,CAASsnB,CAAT,CACA,CAAArf,CAAAjI,IAAA,CAAiBsnB,CAAjB,CANJ,CAPuE,CAgB3E,OAAO6F,EApFqC,CAAlB,CAqF5BpI,CArF4B,CA1hD9B;AAsnDIgJ,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAACd,CAAD,CAAkB,CACzC,IAAAA,gBAAA,CAAuBA,CADkB,CAG7Cc,CAAAxxB,UAAA0J,KAAA,CAAoC+nB,QAAS,CAACzuB,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI8rB,EAAJ,CAAyB1uB,CAAzB,CAAqC,IAAA0tB,gBAArC,CAAjB,CADuD,CAGlE,OAAOc,EAP2B,CAAZ,EAtnD1B,CA+nDIE,GAAwB,QAAS,CAACta,CAAD,CAAS,CAE1Csa,QAASA,EAAoB,CAACzwB,CAAD,CAAcyvB,CAAd,CAA+B,CACpD7qB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA6qB,gBAAA,CAAwBA,CACxB7qB,EAAA8rB,YAAA,CAAoB,CAAA,CACpB9rB,EAAAqrB,WAAA,EACA,OAAOrrB,EALiD,CAD5DnG,CAAA,CAAUgyB,CAAV,CAAgCta,CAAhC,CAQAsa,EAAA1xB,UAAA4X,MAAA,CAAuCga,QAAS,CAACxuB,CAAD,CAAQ,CACpD,IAAAonB,OAAA9X,KAAA,CAAiBtP,CAAjB,CADoD,CAGxDsuB,EAAA1xB,UAAAgY,UAAA,CAA2C6Z,QAAS,EAAG,CACnD,IAAIrH,EAAS,IAAAA,OACTA,EAAJ,EACI,IAAAvpB,YAAAyC,KAAA,CAAsB8mB,CAAtB,CAEJpT,EAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CALmD,CAOvDgoB,EAAA1xB,UAAAsW,aAAA,CAA8Cwb,QAAS,EAAG,CACtD,IAAAtH,OAAA,CAAc,IACd,KAAAmH,YAAA;AAAmB,CAAA,CAFmC,CAI1DD,EAAA1xB,UAAA4Q,WAAA,CAA4CmhB,QAAS,CAACprB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC5G,IAAAyf,WAAA,EAD4G,CAGhHQ,EAAA1xB,UAAA8oB,eAAA,CAAgDkJ,QAAS,EAAG,CACpD,IAAAL,YAAJ,CACI,IAAAzuB,SAAA,EADJ,CAII,IAAAguB,WAAA,EALoD,CAQ5DQ,EAAA1xB,UAAAkxB,WAAA,CAA4Ce,QAAS,EAAG,CACpD,IAAIC,EAAsB,IAAAA,oBACtBA,EAAJ,GACI,IAAA9e,OAAA,CAAY8e,CAAZ,CACA,CAAAA,CAAAtoB,YAAA,EAFJ,CAKA,EADI4gB,CACJ,CADa,IAAAA,OACb,GACI,IAAAvpB,YAAAyC,KAAA,CAAsB8mB,CAAtB,CAEJ,KAAAA,OAAA,CAAc,EACd,KAAI0D,CACJ,IAAI,CACA,IAAIwC,EAAkB,IAAAA,gBACtBxC,EAAA,CAAkBwC,CAAA,EAFlB,CAIJ,MAAOpwB,CAAP,CAAY,CACR,MAAO,KAAA2D,MAAA,CAAW3D,CAAX,CADC,CAIZ,IAAA4xB,oBAAA,CADAA,CACA,CADsB,IAAI3uB,CAE1B,KAAAE,IAAA,CAASyuB,CAAT,CACA,KAAAP,YAAA,CAAmB,CAAA,CACnBO,EAAAzuB,IAAA,CAAwB+C,CAAA,CAAkB,IAAlB,CAAwB0nB,CAAxB,CAAxB,CACA,KAAAyD,YAAA,CAAmB,CAAA,CAxBiC,CA0BxD,OAAOD,EA5DmC,CAAlB,CA6D1BlJ,CA7D0B,CA/nD5B;AAqsDI2J,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACniB,CAAD,CAAW,CAC7B,IAAAA,SAAA,CAAgBA,CADa,CAGjCmiB,CAAAnyB,UAAA0J,KAAA,CAA+B0oB,QAAS,CAACpvB,CAAD,CAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIysB,EAAJ,CAAoBrvB,CAApB,CAAgC,IAAAgN,SAAhC,CAA+C,IAAAsiB,OAA/C,CAAjB,CADkD,CAG7D,OAAOH,EAPsB,CAAZ,EArsDrB,CA8sDIE,GAAmB,QAAS,CAACjb,CAAD,CAAS,CAErCib,QAASA,EAAe,CAACpxB,CAAD,CAAc+O,CAAd,CAAwBsiB,CAAxB,CAAgC,CAChDzsB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmK,SAAA,CAAiBA,CACjBnK,EAAAysB,OAAA,CAAeA,CACf,OAAOzsB,EAJ6C,CADxDnG,CAAA,CAAU2yB,CAAV,CAA2Bjb,CAA3B,CAOAib,EAAAryB,UAAAiE,MAAA,CAAkCsuB,QAAS,CAACjyB,CAAD,CAAM,CAC7C,GAAKa,CAAA,IAAAA,UAAL,CAAqB,CACjB,IAAIuF,EAAS,IAAK,EAClB,IAAI,CACAA,CAAA,CAAS,IAAAsJ,SAAA,CAAc1P,CAAd,CAAmB,IAAAgyB,OAAnB,CADT,CAGJ,MAAOE,CAAP,CAAa,CACTpb,CAAApX,UAAAiE,MAAAyF,KAAA,CAA4B,IAA5B,CAAkC8oB,CAAlC,CACA,OAFS,CAIb,IAAAna,uBAAA,EACIxR,EAAAA,CAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0Bd,IAAAA,EAA1B,CAAqCA,IAAAA,EAArC,CACtB,KAAAvC,IAAA,CAASoD,CAAT,CACIkkB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwBE,CAAxB,CAAgCV,IAAAA,EAAhC,CAA2CA,IAAAA,EAA3C,CAAsDa,CAAtD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B,EACI,IAAApD,IAAA,CAASsnB,CAAT,CAda,CADwB,CAmBjD;MAAOsH,EA3B8B,CAAlB,CA4BrB7J,CA5BqB,CA9sDvB,CAkxDIiK,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACzmB,CAAD,CAAYxJ,CAAZ,CAAoB,CACtC,IAAAwJ,UAAA,CAAiBA,CACjB,KAAAxJ,OAAA,CAAcA,CAFwB,CAI1CiwB,CAAAzyB,UAAA0J,KAAA,CAA+BgpB,QAAS,CAAC1vB,CAAD,CAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+sB,EAAJ,CAAoB3vB,CAApB,CAAgC,IAAAgJ,UAAhC,CAAgD,IAAAxJ,OAAhD,CAAjB,CADkD,CAG7D,OAAOiwB,EARsB,CAAZ,EAlxDrB,CA4xDIE,GAAmB,QAAS,CAACvb,CAAD,CAAS,CAErCub,QAASA,EAAe,CAAC1xB,CAAD,CAAc+K,CAAd,CAAyBxJ,CAAzB,CAAiC,CACjDqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAArD,OAAA,CAAeA,CACfqD,EAAA0G,MAAA,CAAc,CACd1G,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAN8C,CADzDnG,CAAA,CAAUizB,CAAV,CAA2Bvb,CAA3B,CASAub,EAAA3yB,UAAA4X,MAAA,CAAkCgb,QAAS,CAACxvB,CAAD,CAAQ,CAC3C,IAAA4I,UAAJ,CACI,IAAA6mB,cAAA,CAAmBzvB,CAAnB,CADJ,CAII,IAAAmJ,MAAA,EAL2C,CAQnDomB,EAAA3yB,UAAA6yB,cAAA,CAA0CC,QAAS,CAAC1vB,CAAD,CAAQ,CACvD,IAAIsD,CACJ,IAAI,CACAA,CAAA,CAAS,IAAAsF,UAAA,CAAe5I,CAAf,CAAsB,IAAAqI,MAAA,EAAtB,CAAoC,IAAAjJ,OAApC,CADT,CAGJ,MAAOlC,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA;MAFQ,CAIRoG,CAAJ,EACI,IAAA6F,MAAA,EAVmD,CAa3DomB,EAAA3yB,UAAAgY,UAAA,CAAsC+a,QAAS,EAAG,CAC9C,IAAA9xB,YAAAyC,KAAA,CAAsB,IAAA6I,MAAtB,CACA,KAAAtL,YAAAiC,SAAA,EAF8C,CAIlD,OAAOyvB,EAnC8B,CAAlB,CAoCrBtxB,CApCqB,CA5xDvB,CAq0DI2xB,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAAC9lB,CAAD,CAAmB,CACxC,IAAAA,iBAAA,CAAwBA,CADgB,CAG5C8lB,CAAAhzB,UAAA0J,KAAA,CAAkCupB,QAAS,CAACjwB,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIstB,EAAJ,CAAuBlwB,CAAvB,CAAmC,IAAAkK,iBAAnC,CAAjB,CADqD,CAGhE,OAAO8lB,EAPyB,CAAZ,EAr0DxB,CA80DIE,GAAsB,QAAS,CAAC9b,CAAD,CAAS,CAExC8b,QAASA,EAAkB,CAACjyB,CAAD,CAAciM,CAAd,CAAgC,CACnDrH,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAqH,iBAAA,CAAyBA,CACzBrH,EAAAoD,SAAA,CAAiB,CAAA,CACjBpD,EAAAstB,qBAAA,CAA6B,IAC7B,OAAOttB,EALgD,CAD3DnG,CAAA,CAAUwzB,CAAV,CAA8B9b,CAA9B,CAQA8b,EAAAlzB,UAAA4X,MAAA,CAAqCwb,QAAS,CAAChwB,CAAD,CAAQ,CAClD,GAAI,CACA,IAAIsD,EAAS,IAAAwG,iBAAAxD,KAAA,CAA2B,IAA3B,CAAiCtG,CAAjC,CACTsD,EAAJ,EACI,IAAAgkB,SAAA,CAActnB,CAAd;AAAqBsD,CAArB,CAHJ,CAMJ,MAAOpG,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CAPsC,CAWtD4yB,EAAAlzB,UAAAgY,UAAA,CAAyCqb,QAAS,EAAG,CACjD,IAAAC,UAAA,EACA,KAAAryB,YAAAiC,SAAA,EAFiD,CAIrDgwB,EAAAlzB,UAAA0qB,SAAA,CAAwC6I,QAAS,CAACnwB,CAAD,CAAQob,CAAR,CAAkB,CAC/D,IAAI9S,EAAe,IAAAynB,qBACnB,KAAA/vB,MAAA,CAAaA,CACb,KAAA6F,SAAA,CAAgB,CAAA,CACZyC,EAAJ,GACIA,CAAA9B,YAAA,EACA,CAAA,IAAAwJ,OAAA,CAAY1H,CAAZ,CAFJ,CAKA,EADAA,CACA,CADelF,CAAA,CAAkB,IAAlB,CAAwBgY,CAAxB,CACf,GAAqBpd,CAAAsK,CAAAtK,OAArB,EACI,IAAAqC,IAAA,CAAS,IAAA0vB,qBAAT,CAAqCznB,CAArC,CAV2D,CAanEwnB,EAAAlzB,UAAA4Q,WAAA,CAA0C4iB,QAAS,CAAC7sB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC1G,IAAA6hB,UAAA,EAD0G,CAG9GJ,EAAAlzB,UAAA8oB,eAAA,CAA8C2K,QAAS,EAAG,CACtD,IAAAH,UAAA,EADsD,CAG1DJ,EAAAlzB,UAAAszB,UAAA,CAAyCI,QAAS,EAAG,CACjD,GAAI,IAAAzqB,SAAJ,CAAmB,CACf,IAAI7F,EAAQ,IAAAA,MAAZ;AACIsI,EAAe,IAAAynB,qBACfznB,EAAJ,GACI,IAAAynB,qBAEA,CAF4B,IAE5B,CADAznB,CAAA9B,YAAA,EACA,CAAA,IAAAwJ,OAAA,CAAY1H,CAAZ,CAHJ,CAKA,KAAAtI,MAAA,CAAa,IACb,KAAA6F,SAAA,CAAgB,CAAA,CAChBmO,EAAApX,UAAA4X,MAAAlO,KAAA,CAA4B,IAA5B,CAAkCtG,CAAlC,CAVe,CAD8B,CAcrD,OAAO8vB,EAzDiC,CAAlB,CA0DxB1K,CA1DwB,CA90D1B,CA84DImL,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,CAAClnB,CAAD,CAAU7J,CAAV,CAAqB,CAC9C,IAAA6J,QAAA,CAAeA,CACf,KAAA7J,UAAA,CAAiBA,CAF6B,CAIlD+wB,CAAA3zB,UAAA0J,KAAA,CAAsCkqB,QAAS,CAAC5wB,CAAD,CAAaR,CAAb,CAAqB,CAChE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIiuB,EAAJ,CAA2B7wB,CAA3B,CAAuC,IAAAyJ,QAAvC,CAAqD,IAAA7J,UAArD,CAAjB,CADyD,CAGpE,OAAO+wB,EAR6B,CAAZ,EA94D5B,CAw5DIE,GAA0B,QAAS,CAACzc,CAAD,CAAS,CAE5Cyc,QAASA,EAAsB,CAAC5yB,CAAD,CAAcwL,CAAd,CAAuB7J,CAAvB,CAAkC,CACzDiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA4G,QAAA,CAAgBA,CAChB5G,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAiuB,sBAAA,CAA8B,IAC9BjuB,EAAAkuB,UAAA,CAAkB,IAClBluB,EAAAoD,SAAA,CAAiB,CAAA,CACjB,OAAOpD,EAPsD,CADjEnG,CAAA,CAAUm0B,CAAV,CAAkCzc,CAAlC,CAUAyc,EAAA7zB,UAAA4X,MAAA;AAAyCoc,QAAS,CAAC5wB,CAAD,CAAQ,CACtD,IAAA6wB,cAAA,EACA,KAAAF,UAAA,CAAiB3wB,CACjB,KAAA6F,SAAA,CAAgB,CAAA,CAChB,KAAAxF,IAAA,CAAS,IAAAqwB,sBAAT,CAAsC,IAAAlxB,UAAAK,SAAA,CAAwB+K,EAAxB,CAAwC,IAAAvB,QAAxC,CAAsD,IAAtD,CAAtC,CAJsD,CAM1DonB,EAAA7zB,UAAAgY,UAAA,CAA6Ckc,QAAS,EAAG,CACrD,IAAAjmB,cAAA,EACA,KAAAhN,YAAAiC,SAAA,EAFqD,CAIzD2wB,EAAA7zB,UAAAiO,cAAA,CAAiDkmB,QAAS,EAAG,CACzD,IAAAF,cAAA,EACA,IAAI,IAAAhrB,SAAJ,CAAmB,CACf,IAAI8qB,EAAY,IAAAA,UAChB,KAAAA,UAAA,CAAiB,IACjB,KAAA9qB,SAAA,CAAgB,CAAA,CAChB,KAAAhI,YAAAyC,KAAA,CAAsBqwB,CAAtB,CAJe,CAFsC,CAS7DF,EAAA7zB,UAAAi0B,cAAA,CAAiDG,QAAS,EAAG,CACzD,IAAIN,EAAwB,IAAAA,sBACE,KAA9B,GAAIA,CAAJ,GACI,IAAA1gB,OAAA,CAAY0gB,CAAZ,CAEA,CADAA,CAAAlqB,YAAA,EACA;AAAA,IAAAkqB,sBAAA,CAA6B,IAHjC,CAFyD,CAQ7D,OAAOD,EAtCqC,CAAlB,CAuC5BxyB,CAvC4B,CAx5D9B,CAw8DI+M,GAA0B,QAAS,EAAG,CACtCA,QAASA,EAAsB,CAACD,CAAD,CAAe,CAC1C,IAAAA,aAAA,CAAoBA,CADsB,CAG9CC,CAAApO,UAAA0J,KAAA,CAAwC2qB,QAAS,CAACrxB,CAAD,CAAaR,CAAb,CAAqB,CAClE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI0uB,EAAJ,CAA6BtxB,CAA7B,CAAyC,IAAAmL,aAAzC,CAAjB,CAD2D,CAGtE,OAAOC,EAP+B,CAAZ,EAx8D9B,CAi9DIkmB,GAA4B,QAAS,CAACld,CAAD,CAAS,CAE9Ckd,QAASA,EAAwB,CAACrzB,CAAD,CAAckN,CAAd,CAA4B,CACrDtI,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAsI,aAAA,CAAqBA,CACrBtI,EAAA0uB,QAAA,CAAgB,CAAA,CAChB,OAAO1uB,EAJkD,CAD7DnG,CAAA,CAAU40B,CAAV,CAAoCld,CAApC,CAOAkd,EAAAt0B,UAAA4X,MAAA,CAA2C4c,QAAS,CAACpxB,CAAD,CAAQ,CACxD,IAAAmxB,QAAA,CAAe,CAAA,CACf,KAAAtzB,YAAAyC,KAAA,CAAsBN,CAAtB,CAFwD,CAI5DkxB,EAAAt0B,UAAAgY,UAAA,CAA+Cyc,QAAS,EAAG,CACnD,IAAAF,QAAJ,EACI,IAAAtzB,YAAAyC,KAAA,CAAsB,IAAAyK,aAAtB,CAEJ,KAAAlN,YAAAiC,SAAA,EAJuD,CAM3D,OAAOoxB,EAlBuC,CAAlB,CAmB9BjzB,CAnB8B,CAj9DhC,CAg/DIqzB,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACrU,CAAD;AAAQzd,CAAR,CAAmB,CACrC,IAAAyd,MAAA,CAAaA,CACb,KAAAzd,UAAA,CAAiBA,CAFoB,CAIzC8xB,CAAA10B,UAAA0J,KAAA,CAA+BirB,QAAS,CAAC3xB,CAAD,CAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIgvB,EAAJ,CAAoB5xB,CAApB,CAAgC,IAAAqd,MAAhC,CAA4C,IAAAzd,UAA5C,CAAjB,CADkD,CAG7D,OAAO8xB,EARsB,CAAZ,EAh/DrB,CA0/DIE,GAAmB,QAAS,CAACxd,CAAD,CAAS,CAErCwd,QAASA,EAAe,CAAC3zB,CAAD,CAAcof,CAAd,CAAqBzd,CAArB,CAAgC,CAChDiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAwa,MAAA,CAAcA,CACdxa,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAwc,MAAA,CAAc,EACdxc,EAAAqc,OAAA,CAAe,CAAA,CACfrc,EAAAqb,QAAA,CAAgB,CAAA,CAChB,OAAOrb,EAP6C,CADxDnG,CAAA,CAAUk1B,CAAV,CAA2Bxd,CAA3B,CAUAwd,EAAA1wB,SAAA,CAA2B2wB,QAAS,CAACvvB,CAAD,CAAQ,CAKxC,IAJA,IAAI9C,EAAS8C,CAAA9C,OAAb,CACI6f,EAAQ7f,CAAA6f,MADZ,CAEIzf,EAAY0C,CAAA1C,UAFhB,CAGI3B,EAAcqE,CAAArE,YAClB,CAAsB,CAAtB,CAAOohB,CAAA1gB,OAAP,EAAgE,CAAhE,EAA4B0gB,CAAA,CAAM,CAAN,CAAAkD,KAA5B,CAA4C3iB,CAAAiK,IAAA,EAA5C,CAAA,CACIwV,CAAAnc,MAAA,EAAA8d,aAAArB,QAAA,CAAmC1hB,CAAnC,CAEe,EAAnB,CAAIohB,CAAA1gB,OAAJ,EACQmzB,CACJ,CADc1iB,IAAAoT,IAAA,CAAS,CAAT,CAAYnD,CAAA,CAAM,CAAN,CAAAkD,KAAZ,CAA4B3iB,CAAAiK,IAAA,EAA5B,CACd,CAAA,IAAA5J,SAAA,CAAcqC,CAAd,CAAqBwvB,CAArB,CAFJ,GAKI,IAAAlrB,YAAA,EACA,CAAApH,CAAA0f,OAAA;AAAgB,CAAA,CANpB,CARwC,CAiB5C0S,EAAA50B,UAAA+0B,UAAA,CAAsCC,QAAS,CAACpyB,CAAD,CAAY,CACvD,IAAAsf,OAAA,CAAc,CAAA,CACI,KAAAjhB,YAClBwC,IAAA,CAAgBb,CAAAK,SAAA,CAAmB2xB,CAAA1wB,SAAnB,CAA6C,IAAAmc,MAA7C,CAAyD,CACrE7d,OAAQ,IAD6D,CACvDvB,YAAa,IAAAA,YAD0C,CACxB2B,UAAWA,CADa,CAAzD,CAAhB,CAHuD,CAO3DgyB,EAAA50B,UAAAi1B,qBAAA,CAAiDC,QAAS,CAAClR,CAAD,CAAe,CACrE,GAAqB,CAAA,CAArB,GAAI,IAAA9C,QAAJ,CAAA,CAGA,IAAIte,EAAY,IAAAA,UACZoT,EAAAA,CAAU,IAAImf,EAAJ,CAAiBvyB,CAAAiK,IAAA,EAAjB,CAAmC,IAAAwT,MAAnC,CAA+C2D,CAA/C,CACd,KAAA3B,MAAA3P,KAAA,CAAgBsD,CAAhB,CACoB,EAAA,CAApB,GAAI,IAAAkM,OAAJ,EACI,IAAA6S,UAAA,CAAenyB,CAAf,CAPJ,CADqE,CAWzEgyB,EAAA50B,UAAA4X,MAAA,CAAkCwd,QAAS,CAAChyB,CAAD,CAAQ,CAC/C,IAAA6xB,qBAAA,CAA0BxS,CAAAW,WAAA,CAAwBhgB,CAAxB,CAA1B,CAD+C,CAGnDwxB,EAAA50B,UAAA8X,OAAA,CAAmCud,QAAS,CAAC/0B,CAAD,CAAM,CAC9C,IAAA4gB,QAAA,CAAe,CAAA,CACf,KAAAmB,MAAA,CAAa,EACb,KAAAphB,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA;IAAAsJ,YAAA,EAJ8C,CAMlDgrB,EAAA50B,UAAAgY,UAAA,CAAsCsd,QAAS,EAAG,CAC9C,IAAAL,qBAAA,CAA0BxS,CAAAgB,eAAA,EAA1B,CACA,KAAA7Z,YAAA,EAF8C,CAIlD,OAAOgrB,EA3D8B,CAAlB,CA4DrBvzB,CA5DqB,CA1/DvB,CAujEI8zB,GAAgB,QAAS,EAAG,CAK5B,MAJAA,SAAqB,CAAC5P,CAAD,CAAOvB,CAAP,CAAqB,CACtC,IAAAuB,KAAA,CAAYA,CACZ,KAAAvB,aAAA,CAAoBA,CAFkB,CADd,CAAZ,EAvjEpB,CAwkEIuR,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACC,CAAD,CAAwB,CAC9C,IAAAA,sBAAA,CAA6BA,CADiB,CAGlDD,CAAAv1B,UAAA0J,KAAA,CAAmC+rB,QAAS,CAACzyB,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI8vB,EAAJ,CAAwB1yB,CAAxB,CAAoC,IAAAwyB,sBAApC,CAAjB,CADsD,CAGjE,OAAOD,EAP0B,CAAZ,EAxkEzB,CAilEIG,GAAuB,QAAS,CAACte,CAAD,CAAS,CAEzCse,QAASA,EAAmB,CAACz0B,CAAD,CAAcu0B,CAAd,CAAqC,CACzD3vB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA2vB,sBAAA,CAA8BA,CAC9B3vB,EAAAiD,UAAA,CAAkB,CAAA,CAClBjD,EAAA8vB,2BAAA,CAAmC,EACnC9vB,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EANsD;AADjEnG,CAAA,CAAUg2B,CAAV,CAA+Bte,CAA/B,CASAse,EAAA11B,UAAA4Q,WAAA,CAA2CglB,QAAS,CAACjvB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC3G,IAAAxQ,YAAAyC,KAAA,CAAsBiD,CAAtB,CACA,KAAAkvB,mBAAA,CAAwBpkB,CAAxB,CACA,KAAAqkB,YAAA,EAH2G,CAK/GJ,EAAA11B,UAAA4oB,YAAA,CAA4CmN,QAAS,CAAC9xB,CAAD,CAAQwN,CAAR,CAAkB,CACnE,IAAAqG,OAAA,CAAY7T,CAAZ,CADmE,CAGvEyxB,EAAA11B,UAAA8oB,eAAA,CAA+CkN,QAAS,CAACvkB,CAAD,CAAW,CAE/D,CADIrO,CACJ,CADY,IAAAyyB,mBAAA,CAAwBpkB,CAAxB,CACZ,GACI,IAAAxQ,YAAAyC,KAAA,CAAsBN,CAAtB,CAEJ,KAAA0yB,YAAA,EAL+D,CAOnEJ,EAAA11B,UAAA4X,MAAA,CAAsCqe,QAAS,CAAC7yB,CAAD,CAAQ,CACnD,IAAIqI,EAAQ,IAAAA,MAAA,EACZ,IAAI,CACA,IAAIyqB,EAAgB,IAAAV,sBAAA,CAA2BpyB,CAA3B,CAAkCqI,CAAlC,CAChByqB,EAAJ,EACI,IAAAC,SAAA,CAAcD,CAAd,CAA6B9yB,CAA7B,CAHJ,CAMJ,MAAO9C,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CARuC,CAYvDo1B,EAAA11B,UAAAgY,UAAA,CAA0Coe,QAAS,EAAG,CAClD,IAAAttB,UAAA,CAAiB,CAAA,CACjB,KAAAgtB,YAAA,EACA;IAAAlsB,YAAA,EAHkD,CAKtD8rB,EAAA11B,UAAA61B,mBAAA,CAAmDQ,QAAS,CAAC3qB,CAAD,CAAe,CACvEA,CAAA9B,YAAA,EACA,KAAI0sB,EAAkB,IAAAX,2BAAA/e,QAAA,CAAwClL,CAAxC,CACG,GAAzB,GAAI4qB,CAAJ,EACI,IAAAX,2BAAA3e,OAAA,CAAuCsf,CAAvC,CAAwD,CAAxD,CAEJ,OAAO5qB,EAAA/E,WANgE,CAQ3E+uB,EAAA11B,UAAAm2B,SAAA,CAAyCI,QAAS,CAACL,CAAD,CAAgB9yB,CAAhB,CAAuB,CAErE,CADIozB,CACJ,CAD2BhwB,CAAA,CAAkB,IAAlB,CAAwB0vB,CAAxB,CAAuC9yB,CAAvC,CAC3B,GAA6BhC,CAAAo1B,CAAAp1B,OAA7B,GACsB,IAAAH,YAClBwC,IAAA,CAAgB+yB,CAAhB,CACA,CAAA,IAAAb,2BAAAjjB,KAAA,CAAqC8jB,CAArC,CAHJ,CAFqE,CAQzEd,EAAA11B,UAAA81B,YAAA,CAA4CW,QAAS,EAAG,CAChD,IAAA3tB,UAAJ,EAAiE,CAAjE,GAAsB,IAAA6sB,2BAAAh0B,OAAtB,EACI,IAAAV,YAAAiC,SAAA,EAFgD,CAKxD,OAAOwyB,EA/DkC,CAAlB,CAgEzBlN,CAhEyB,CAjlE3B,CAkpEIkO,GAA+B,QAAS,CAACtf,CAAD,CAAS,CAEjDsf,QAASA,EAA2B,CAACl0B,CAAD,CAASm0B,CAAT,CAA4B,CAC5D,IAAI9wB;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAArD,OAAA,CAAeA,CACfqD,EAAA8wB,kBAAA,CAA0BA,CAC1B,OAAO9wB,EAJqD,CADhEnG,CAAA,CAAUg3B,CAAV,CAAuCtf,CAAvC,CAOAsf,EAAA12B,UAAAsZ,WAAA,CAAmDsd,QAAS,CAAC5zB,CAAD,CAAa,CACrE,IAAA2zB,kBAAA/wB,UAAA,CAAiC,IAAIixB,EAAJ,CAAgC7zB,CAAhC,CAA4C,IAAAR,OAA5C,CAAjC,CADqE,CAGzE,OAAOk0B,EAX0C,CAAlB,CAYjC3zB,CAZiC,CAlpEnC,CA+pEI8zB,GAA+B,QAAS,CAACzf,CAAD,CAAS,CAEjDyf,QAASA,EAA2B,CAAC1d,CAAD,CAAS3W,CAAT,CAAiB,CACjD,IAAIqD,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAAsT,OAAA,CAAeA,CACftT,EAAArD,OAAA,CAAeA,CACfqD,EAAAixB,iBAAA,CAAyB,CAAA,CACzB,OAAOjxB,EAL0C,CADrDnG,CAAA,CAAUm3B,CAAV,CAAuCzf,CAAvC,CAQAyf,EAAA72B,UAAA4X,MAAA,CAA8Cmf,QAAS,CAAC9M,CAAD,CAAS,CAC5D,IAAA+M,kBAAA,EAD4D,CAGhEH,EAAA72B,UAAA8X,OAAA,CAA+Cmf,QAAS,CAAC32B,CAAD,CAAM,CAC1D,IAAAsJ,YAAA,EACA,KAAAuP,OAAAlV,MAAA,CAAkB3D,CAAlB,CAF0D,CAI9Du2B,EAAA72B,UAAAgY,UAAA,CAAkDkf,QAAS,EAAG,CAC1D,IAAAttB,YAAA,EACA,KAAAotB,kBAAA,EAF0D,CAI9DH,EAAA72B,UAAAg3B,kBAAA;AAA0DG,QAAS,EAAG,CAC7D,IAAAL,iBAAL,GACI,IAAAA,iBAEA,CAFwB,CAAA,CAExB,CADA,IAAAltB,YAAA,EACA,CAAA,IAAApH,OAAAoD,UAAA,CAAsB,IAAAuT,OAAtB,CAHJ,CADkE,CAOtE,OAAO0d,EA3B0C,CAAlB,CA4BjCx1B,CA5BiC,CA/pEnC,CAksEI+1B,GAAyB,QAAS,EAAG,CACrCA,QAASA,EAAqB,EAAG,EAEjCA,CAAAp3B,UAAA0J,KAAA,CAAuC2tB,QAAS,CAACr0B,CAAD,CAAaR,CAAb,CAAqB,CACjE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI0xB,EAAJ,CAA4Bt0B,CAA5B,CAAjB,CAD0D,CAGrE,OAAOo0B,EAN8B,CAAZ,EAlsE7B,CA0sEIE,GAA2B,QAAS,CAAClgB,CAAD,CAAS,CAE7CkgB,QAASA,EAAuB,CAACr2B,CAAD,CAAc,CAC1C,MAAOmW,EAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAP,EAAyC,IADC,CAD9CvB,CAAA,CAAU43B,CAAV,CAAmClgB,CAAnC,CAIAkgB,EAAAt3B,UAAA4X,MAAA,CAA0C2f,QAAS,CAACn0B,CAAD,CAAQ,CACvDA,CAAAuf,QAAA,CAAc,IAAA1hB,YAAd,CADuD,CAG3D,OAAOq2B,EARsC,CAAlB,CAS7Bj2B,CAT6B,CA1sE/B,CAwtEIm2B,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAACjpB,CAAD,CAAckpB,CAAd,CAAuB,CAC5C,IAAAlpB,YAAA,CAAmBA,CACnB,KAAAkpB,QAAA,CAAeA,CAF6B,CAIhDD,CAAAx3B,UAAA0J,KAAA,CAAkCguB,QAAS,CAAC10B,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+xB,EAAJ,CAAuB30B,CAAvB,CAAmC,IAAAuL,YAAnC;AAAqD,IAAAkpB,QAArD,CAAjB,CADqD,CAGhE,OAAOD,EARyB,CAAZ,EAxtExB,CAkuEIG,GAAsB,QAAS,CAACvgB,CAAD,CAAS,CAExCugB,QAASA,EAAkB,CAAC12B,CAAD,CAAcsN,CAAd,CAA2BkpB,CAA3B,CAAoC,CACvD5xB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA0I,YAAA,CAAoBA,CACpB1I,EAAA+C,OAAA,CAAe,IAAIgvB,GACfH,EAAJ,EACI5xB,CAAApC,IAAA,CAAU+C,CAAA,CAAkBX,CAAlB,CAAyB4xB,CAAzB,CAAV,CAEJ,OAAO5xB,EAPoD,CAD/DnG,CAAA,CAAUi4B,CAAV,CAA8BvgB,CAA9B,CAUAugB,EAAA33B,UAAA4Q,WAAA,CAA0CinB,QAAS,CAAClxB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC1G,IAAA7I,OAAA+V,MAAA,EAD0G,CAG9GgZ,EAAA33B,UAAA4oB,YAAA,CAA2CkP,QAAS,CAAC7zB,CAAD,CAAQwN,CAAR,CAAkB,CAClE,IAAAqG,OAAA,CAAY7T,CAAZ,CADkE,CAGtE0zB,EAAA33B,UAAA4X,MAAA,CAAqCmgB,QAAS,CAAC30B,CAAD,CAAQ,CAC9C,IAAAmL,YAAJ,CACI,IAAAypB,gBAAA,CAAqB50B,CAArB,CADJ,CAII,IAAA60B,cAAA,CAAmB70B,CAAnB,CAA0BA,CAA1B,CAL8C,CAQtDu0B,EAAA33B,UAAAg4B,gBAAA,CAA+CE,QAAS,CAAC90B,CAAD,CAAQ,CAC5D,IAAI8F,CAAJ,CACIjI,EAAc,IAAAA,YAClB,IAAI,CACAiI,CAAA,CAAM,IAAAqF,YAAA,CAAiBnL,CAAjB,CADN,CAGJ,MAAO9C,CAAP,CAAY,CACRW,CAAAgD,MAAA,CAAkB3D,CAAlB,CACA,OAFQ,CAIZ,IAAA23B,cAAA,CAAmB/uB,CAAnB;AAAwB9F,CAAxB,CAV4D,CAYhEu0B,EAAA33B,UAAAi4B,cAAA,CAA6CE,QAAS,CAACjvB,CAAD,CAAM9F,CAAN,CAAa,CAC/D,IAAIwF,EAAS,IAAAA,OACRA,EAAAwvB,IAAA,CAAWlvB,CAAX,CAAL,GACIN,CAAAnF,IAAA,CAAWyF,CAAX,CACA,CAAA,IAAAjI,YAAAyC,KAAA,CAAsBN,CAAtB,CAFJ,CAF+D,CAOnE,OAAOu0B,EA5CiC,CAAlB,CA6CxBnP,CA7CwB,CAluE1B,CAoxEIha,GAAgC,QAAS,EAAG,CAC5CA,QAASA,EAA4B,CAACF,CAAD,CAAUC,CAAV,CAAuB,CACxD,IAAAD,QAAA,CAAeA,CACf,KAAAC,YAAA,CAAmBA,CAFqC,CAI5DC,CAAAxO,UAAA0J,KAAA,CAA8C2uB,QAAS,CAACr1B,CAAD,CAAaR,CAAb,CAAqB,CACxE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI0yB,EAAJ,CAAmCt1B,CAAnC,CAA+C,IAAAsL,QAA/C,CAA6D,IAAAC,YAA7D,CAAjB,CADiE,CAG5E,OAAOC,EARqC,CAAZ,EApxEpC,CA8xEI8pB,GAAkC,QAAS,CAAClhB,CAAD,CAAS,CAEpDkhB,QAASA,EAA8B,CAACr3B,CAAD,CAAcqN,CAAd,CAAuBC,CAAvB,CAAoC,CACnE1I,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA0I,YAAA,CAAoBA,CACpB1I,EAAA0yB,OAAA,CAAe,CAAA,CACQ,WAAvB,GAAI,MAAOjqB,EAAX,GACIzI,CAAAyI,QADJ,CACoBA,CADpB,CAGA,OAAOzI,EAPgE,CAD3EnG,CAAA,CAAU44B,CAAV,CAA0ClhB,CAA1C,CAUAkhB,EAAAt4B,UAAAsO,QAAA,CAAmDkqB,QAAS,CAACp4B,CAAD,CAAIq4B,CAAJ,CAAO,CAC/D,MAAOr4B,EAAP,GAAaq4B,CADkD,CAGnEH,EAAAt4B,UAAA4X,MAAA,CAAiD8gB,QAAS,CAACt1B,CAAD,CAAQ,CAC9D,IAAI8F,CACJ;GAAI,CACA,IAAIqF,EAAc,IAAAA,YAClBrF,EAAA,CAAMqF,CAAA,CAAcA,CAAA,CAAYnL,CAAZ,CAAd,CAAmCA,CAFzC,CAIJ,MAAO9C,CAAP,CAAY,CACR,MAAO,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADC,CAGRoG,CAAAA,CAAS,CAAA,CACb,IAAI,IAAA6xB,OAAJ,CACI,GAAI,CACA,IAAIjqB,EAAU,IAAAA,QAAd,CACA5H,EAAS4H,CAAA,CAAQ,IAAApF,IAAR,CAAkBA,CAAlB,CAFT,CAIJ,MAAO5I,CAAP,CAAY,CACR,MAAO,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADC,CALhB,IAUI,KAAAi4B,OAAA,CAAc,CAAA,CAEb7xB,EAAL,GACI,IAAAwC,IACA,CADWA,CACX,CAAA,IAAAjI,YAAAyC,KAAA,CAAsBN,CAAtB,CAFJ,CAtB8D,CA2BlE,OAAOk1B,EAzC6C,CAAlB,CA0CpCj3B,CA1CoC,CA9xEtC,CAo1EIuN,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,CAACF,CAAD,CAAe,CACxC,IAAAA,aAAA,CAAoBA,CADoB,CAG5CE,CAAA5O,UAAA0J,KAAA,CAAsCivB,QAAS,CAAC31B,CAAD,CAAaR,CAAb,CAAqB,CAChE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIgzB,EAAJ,CAA2B51B,CAA3B,CAAuC,IAAA0L,aAAvC,CAAjB,CADyD,CAGpE,OAAOE,EAP6B,CAAZ,EAp1E5B,CA61EIgqB,GAA0B,QAAS,CAACxhB,CAAD,CAAS,CAE5CwhB,QAASA,EAAsB,CAAC33B,CAAD,CAAcyN,CAAd,CAA4B,CACnD7I,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA6I,aAAA,CAAqBA,CACrB7I,EAAAoD,SAAA,CAAiB,CAAA,CACjB,OAAOpD,EAJgD,CAD3DnG,CAAA,CAAUk5B,CAAV,CAAkCxhB,CAAlC,CAOAwhB,EAAA54B,UAAA4X,MAAA;AAAyCihB,QAAS,CAACz1B,CAAD,CAAQ,CACtD,IAAA6F,SAAA,CAAgB,CAAA,CAChB,KAAAhI,YAAAyC,KAAA,CAAsBN,CAAtB,CAFsD,CAI1Dw1B,EAAA54B,UAAAgY,UAAA,CAA6C8gB,QAAS,EAAG,CACrD,GAAK,IAAA7vB,SAAL,CAWI,MAAO,KAAAhI,YAAAiC,SAAA,EAVP,KAAI5C,EAAM,IAAK,EACf,IAAI,CACAA,CAAA,CAAM,IAAAoO,aAAA,EADN,CAGJ,MAAOlF,CAAP,CAAU,CACNlJ,CAAA,CAAMkJ,CADA,CAGV,IAAAvI,YAAAgD,MAAA,CAAuB3D,CAAvB,CATiD,CAezD,OAAOs4B,EA3BqC,CAAlB,CA4B5Bv3B,CA5B4B,CA71E9B,CAw4EI0N,GAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,CAACgqB,CAAD,CAAQ,CACzB,IAAAA,MAAA,CAAaA,CACb,IAAiB,CAAjB,CAAI,IAAAA,MAAJ,CACI,KAAM,KAAI/Q,CAAV,CAHqB,CAM7BjZ,CAAA/O,UAAA0J,KAAA,CAA8BsvB,QAAS,CAACh2B,CAAD,CAAaR,CAAb,CAAqB,CACxD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIqzB,EAAJ,CAAmBj2B,CAAnB,CAA+B,IAAA+1B,MAA/B,CAAjB,CADiD,CAG5D,OAAOhqB,EAVqB,CAAZ,EAx4EpB,CAo5EIkqB,GAAkB,QAAS,CAAC7hB,CAAD,CAAS,CAEpC6hB,QAASA,EAAc,CAACh4B,CAAD,CAAc83B,CAAd,CAAqB,CACpClzB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAkzB,MAAA,CAAcA,CACdlzB,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EAJiC,CAD5CnG,CAAA,CAAUu5B,CAAV,CAA0B7hB,CAA1B,CAOA6hB,EAAAj5B,UAAA4X,MAAA,CAAiCshB,QAAS,CAAC91B,CAAD,CAAQ,CAC9C,IAAI21B;AAAQ,IAAAA,MAAZ,CACIxsB,EAAQ,EAAE,IAAAA,MACVA,EAAJ,EAAawsB,CAAb,GACI,IAAA93B,YAAAyC,KAAA,CAAsBN,CAAtB,CACA,CAAImJ,CAAJ,GAAcwsB,CAAd,GACI,IAAA93B,YAAAiC,SAAA,EACA,CAAA,IAAA0G,YAAA,EAFJ,CAFJ,CAH8C,CAWlD,OAAOqvB,EAnB6B,CAAlB,CAoBpB53B,CApBoB,CAp5EtB,CA+7EI83B,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACntB,CAAD,CAAYvH,CAAZ,CAAqBjC,CAArB,CAA6B,CAC/C,IAAAwJ,UAAA,CAAiBA,CACjB,KAAAvH,QAAA,CAAeA,CACf,KAAAjC,OAAA,CAAcA,CAHiC,CAKnD22B,CAAAn5B,UAAA0J,KAAA,CAA+B0vB,QAAS,CAACp4B,CAAD,CAAWwB,CAAX,CAAmB,CACvD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIyzB,EAAJ,CAAoBr4B,CAApB,CAA8B,IAAAgL,UAA9B,CAA8C,IAAAvH,QAA9C,CAA4D,IAAAjC,OAA5D,CAAjB,CADgD,CAG3D,OAAO22B,EATsB,CAAZ,EA/7ErB,CA08EIE,GAAmB,QAAS,CAACjiB,CAAD,CAAS,CAErCiiB,QAASA,EAAe,CAACp4B,CAAD,CAAc+K,CAAd,CAAyBvH,CAAzB,CAAkCjC,CAAlC,CAA0C,CAC1DqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAApB,QAAA,CAAgBA,CAChBoB,EAAArD,OAAA,CAAeA,CACfqD,EAAA4F,MAAA,CAAc,CACd5F,EAAApB,QAAA,CAAgBA,CAAhB,EAA2BoB,CAC3B,OAAOA,EAPuD,CADlEnG,CAAA,CAAU25B,CAAV,CAA2BjiB,CAA3B,CAUAiiB,EAAAr5B,UAAA8oB,eAAA,CAA2CwQ,QAAS,CAACC,CAAD,CAAkB,CAClE,IAAAt4B,YAAAyC,KAAA,CAAsB61B,CAAtB,CACA;IAAAt4B,YAAAiC,SAAA,EAFkE,CAItEm2B,EAAAr5B,UAAA4X,MAAA,CAAkC4hB,QAAS,CAACp2B,CAAD,CAAQ,CAC/C,IAAIsD,EAAS,CAAA,CACb,IAAI,CACAA,CAAA,CAAS,IAAAsF,UAAAtC,KAAA,CAAoB,IAAAjF,QAApB,CAAkCrB,CAAlC,CAAyC,IAAAqI,MAAA,EAAzC,CAAuD,IAAAjJ,OAAvD,CADT,CAGJ,MAAOlC,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIPoG,CAAL,EACI,IAAAoiB,eAAA,CAAoB,CAAA,CAApB,CAV2C,CAanDuQ,EAAAr5B,UAAAgY,UAAA,CAAsCyhB,QAAS,EAAG,CAC9C,IAAA3Q,eAAA,CAAoB,CAAA,CAApB,CAD8C,CAGlD,OAAOuQ,EA/B8B,CAAlB,CAgCrBh4B,CAhCqB,CA18EvB,CA++EIq4B,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,EAAG,EAE/BA,CAAA15B,UAAA0J,KAAA,CAAqCiwB,QAAS,CAAC32B,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIg0B,EAAJ,CAA0B52B,CAA1B,CAAjB,CADwD,CAGnE,OAAO02B,EAN4B,CAAZ,EA/+E3B,CAu/EIE,GAAyB,QAAS,CAACxiB,CAAD,CAAS,CAE3CwiB,QAASA,EAAqB,CAAC34B,CAAD,CAAc,CACpC4E,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA6f,aAAA,CAAqB,CAAA,CACrB7f,EAAAg0B,gBAAA,CAAwB,CAAA,CACxB,OAAOh0B,EAJiC,CAD5CnG,CAAA,CAAUk6B,CAAV,CAAiCxiB,CAAjC,CAOAwiB,EAAA55B,UAAA4X,MAAA;AAAwCkiB,QAAS,CAAC12B,CAAD,CAAQ,CAChD,IAAAy2B,gBAAL,GACI,IAAAA,gBACA,CADuB,CAAA,CACvB,CAAA,IAAAp2B,IAAA,CAAS+C,CAAA,CAAkB,IAAlB,CAAwBpD,CAAxB,CAAT,CAFJ,CADqD,CAMzDw2B,EAAA55B,UAAAgY,UAAA,CAA4C+hB,QAAS,EAAG,CACpD,IAAArU,aAAA,CAAoB,CAAA,CACf,KAAAmU,gBAAL,EACI,IAAA54B,YAAAiC,SAAA,EAHgD,CAMxD02B,EAAA55B,UAAA8oB,eAAA,CAAiDkR,QAAS,CAACvoB,CAAD,CAAW,CACjE,IAAA2B,OAAA,CAAY3B,CAAZ,CACA,KAAAooB,gBAAA,CAAuB,CAAA,CACnB,KAAAnU,aAAJ,EACI,IAAAzkB,YAAAiC,SAAA,EAJ6D,CAOrE,OAAO02B,EA3BoC,CAAlB,CA4B3BpR,CA5B2B,CAv/E7B,CA6hFIvZ,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAACzK,CAAD,CAAU,CACjC,IAAAA,QAAA,CAAeA,CADkB,CAGrCyK,CAAAjP,UAAA0J,KAAA,CAAoCuwB,QAAS,CAACj3B,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIs0B,EAAJ,CAAyBl3B,CAAzB,CAAqC,IAAAwB,QAArC,CAAjB,CADuD,CAGlE,OAAOyK,EAP2B,CAAZ,EA7hF1B,CAsiFIirB,GAAwB,QAAS,CAAC9iB,CAAD,CAAS,CAE1C8iB,QAASA,EAAoB,CAACj5B,CAAD,CAAcuD,CAAd,CAAuB,CAC5CqB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E;AAA0C,IAC9CA,EAAArB,QAAA,CAAgBA,CAChBqB,EAAAg0B,gBAAA,CAAwB,CAAA,CACxBh0B,EAAA6f,aAAA,CAAqB,CAAA,CACrB7f,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EANyC,CADpDnG,CAAA,CAAUw6B,CAAV,CAAgC9iB,CAAhC,CASA8iB,EAAAl6B,UAAA4X,MAAA,CAAuCuiB,QAAS,CAAC/2B,CAAD,CAAQ,CAC/C,IAAAy2B,gBAAL,EACI,IAAAO,QAAA,CAAah3B,CAAb,CAFgD,CAKxD82B,EAAAl6B,UAAAo6B,QAAA,CAAyCC,QAAS,CAACj3B,CAAD,CAAQ,CACtD,IAAIsD,CAAJ,CACI+E,EAAQ,IAAAA,MAAA,EACZ,IAAI,CACA/E,CAAA,CAAS,IAAAlC,QAAA,CAAapB,CAAb,CAAoBqI,CAApB,CADT,CAGJ,MAAOnL,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAu5B,gBAAA,CAAuB,CAAA,CACvB,KAAAjP,UAAA,CAAelkB,CAAf,CAAuBtD,CAAvB,CAA8BqI,CAA9B,CAXsD,CAa1DyuB,EAAAl6B,UAAA4qB,UAAA,CAA2C0P,QAAS,CAAC5zB,CAAD,CAAStD,CAAT,CAAgBqI,CAAhB,CAAuB,CACnE5E,CAAAA,CAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0B1D,CAA1B,CAAiCqI,CAAjC,CAClBxK,EAAAA,CAAc,IAAAA,YAClBA,EAAAwC,IAAA,CAAgBoD,CAAhB,CACIkkB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwBE,CAAxB,CAAgCV,IAAAA,EAAhC,CAA2CA,IAAAA,EAA3C,CAAsDa,CAAtD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B,EACI5F,CAAAwC,IAAA,CAAgBsnB,CAAhB,CANmE,CAS3EmP,EAAAl6B,UAAAgY,UAAA,CAA2CuiB,QAAS,EAAG,CACnD,IAAA7U,aAAA,CAAoB,CAAA,CACf,KAAAmU,gBAAL;AACI,IAAA54B,YAAAiC,SAAA,EAEJ,KAAA0G,YAAA,EALmD,CAOvDswB,EAAAl6B,UAAA4Q,WAAA,CAA4C4pB,QAAS,CAAC7zB,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC5G,IAAAxQ,YAAAyC,KAAA,CAAsBglB,CAAtB,CAD4G,CAGhHwR,EAAAl6B,UAAA4oB,YAAA,CAA6C6R,QAAS,CAACn6B,CAAD,CAAM,CACxD,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADwD,CAG5D45B,EAAAl6B,UAAA8oB,eAAA,CAAgD4R,QAAS,CAACjpB,CAAD,CAAW,CAC9C,IAAAxQ,YAClBmS,OAAA,CAAmB3B,CAAnB,CACA,KAAAooB,gBAAA,CAAuB,CAAA,CACnB,KAAAnU,aAAJ,EACI,IAAAzkB,YAAAiC,SAAA,EAL4D,CAQpE,OAAOg3B,EA1DmC,CAAlB,CA2D1B1R,CA3D0B,CAtiF5B,CAymFImS,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACn2B,CAAD,CAAUqD,CAAV,CAAsBjF,CAAtB,CAAiC,CACpD,IAAA4B,QAAA,CAAeA,CACf,KAAAqD,WAAA,CAAkBA,CAClB,KAAAjF,UAAA,CAAiBA,CAHmC,CAKxD+3B,CAAA36B,UAAA0J,KAAA,CAAgCkxB,QAAS,CAAC53B,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIi1B,EAAJ,CAAqB73B,CAArB,CAAiC,IAAAwB,QAAjC,CAA+C,IAAAqD,WAA/C;AAAgE,IAAAjF,UAAhE,CAAjB,CADmD,CAG9D,OAAO+3B,EATuB,CAAZ,EAzmFtB,CAonFIE,GAAoB,QAAS,CAACzjB,CAAD,CAAS,CAEtCyjB,QAASA,EAAgB,CAAC55B,CAAD,CAAcuD,CAAd,CAAuBqD,CAAvB,CAAmCjF,CAAnC,CAA8C,CAC/DiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAArB,QAAA,CAAgBA,CAChBqB,EAAAgC,WAAA,CAAmBA,CACnBhC,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAA4F,MAAA,CAAc,CACd5F,EAAAqc,OAAA,CAAe,CACfrc,EAAA6f,aAAA,CAAqB,CAAA,CACjB7d,EAAJ,CAAiBC,MAAAC,kBAAjB,GACIlC,CAAA2kB,OADJ,CACmB,EADnB,CAGA,OAAO3kB,EAX4D,CADvEnG,CAAA,CAAUm7B,CAAV,CAA4BzjB,CAA5B,CAcAyjB,EAAA32B,SAAA,CAA4B42B,QAAS,CAACz0B,CAAD,CAAM,CACtBA,CAAArD,WACjB+3B,sBAAA,CAD0C10B,CAAAK,OAC1C,CAD8DL,CAAAjD,MAC9D,CADiFiD,CAAAoF,MACjF,CAFuC,CAI3CovB,EAAA76B,UAAA4X,MAAA,CAAmCojB,QAAS,CAAC53B,CAAD,CAAQ,CAChD,IAAInC,EAAc,IAAAA,YAClB,IAAIA,CAAAG,OAAJ,CACI,IAAA4W,UAAA,EADJ,KAAA,CAIA,IAAIvM,EAAQ,IAAAA,MAAA,EACZ,IAAI,IAAAyW,OAAJ,CAAkB,IAAAra,WAAlB,CAAmC,CAC/B5G,CAAAyC,KAAA,CAAiBN,CAAjB,CACA,IAAI,CACA,IAAIoB,EAAU,IAAAA,QAAd,CACIkC,EAASlC,CAAA,CAAQpB,CAAR,CAAeqI,CAAf,CACR,KAAA7I,UAAL;AAKwB,IAAA3B,YACpBwC,IAAA,CAAkB,IAAAb,UAAAK,SAAA,CAAwB43B,CAAA32B,SAAxB,CAAmD,CAAnD,CAFNoB,CAAEtC,WAAY,IAAdsC,CAAoBoB,OAAQA,CAA5BpB,CAAoClC,MAAOA,CAA3CkC,CAAkDmG,MAAOA,CAAzDnG,CAEM,CAAlB,CANJ,CACI,IAAAy1B,sBAAA,CAA2Br0B,CAA3B,CAAmCtD,CAAnC,CAA0CqI,CAA1C,CAJJ,CAYJ,MAAOjC,CAAP,CAAU,CACNvI,CAAAgD,MAAA,CAAkBuF,CAAlB,CADM,CAdqB,CAAnC,IAmBI,KAAAghB,OAAA9X,KAAA,CAAiBtP,CAAjB,CAxBJ,CAFgD,CA6BpDy3B,EAAA76B,UAAA+6B,sBAAA,CAAmDE,QAAS,CAACv0B,CAAD,CAAStD,CAAT,CAAgBqI,CAAhB,CAAuB,CAC/E,IAAAyW,OAAA,EACkB,KAAAjhB,YAClBwC,IAAA,CAAgB+C,CAAA,CAAkB,IAAlB,CAAwBE,CAAxB,CAAgCtD,CAAhC,CAAuCqI,CAAvC,CAAhB,CAH+E,CAKnFovB,EAAA76B,UAAAgY,UAAA,CAAuCkjB,QAAS,EAAG,CAE/C,CADA,IAAAxV,aACI,CADgB,CAAA,CAChB,CAAqC,CAArC,GAAqB,IAAAxD,OAAzB,GACI,IAAAjhB,YAAAiC,SAAA,EAEJ,KAAA0G,YAAA,EAL+C,CAOnDixB,EAAA76B,UAAA4Q,WAAA,CAAwCuqB,QAAS,CAACx0B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACxG,IAAAmG,MAAA,CAAW8Q,CAAX,CADwG,CAG5GmS,EAAA76B,UAAA8oB,eAAA,CAA4CsS,QAAS,CAAC3pB,CAAD,CAAW,CAC5D,IAAI+Y;AAAS,IAAAA,OACK,KAAAvpB,YAClBmS,OAAA,CAAmB3B,CAAnB,CACA,KAAAyQ,OAAA,EACIsI,EAAJ,EAA8B,CAA9B,CAAcA,CAAA7oB,OAAd,EACI,IAAAiW,MAAA,CAAW4S,CAAAtkB,MAAA,EAAX,CAEA,KAAAwf,aAAJ,EAAyC,CAAzC,GAAyB,IAAAxD,OAAzB,EACI,IAAAjhB,YAAAiC,SAAA,EATwD,CAYhE,OAAO23B,EA3E+B,CAAlB,CA4EtBrS,CA5EsB,CApnFxB,CAqsFI6S,GAAmB,QAAS,EAAG,CAC/BA,QAASA,EAAe,CAACC,CAAD,CAAW,CAC/B,IAAAA,SAAA,CAAgBA,CADe,CAGnCD,CAAAr7B,UAAA0J,KAAA,CAAiC6xB,QAAS,CAACv4B,CAAD,CAAaR,CAAb,CAAqB,CAC3D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI41B,EAAJ,CAAsBx4B,CAAtB,CAAkC,IAAAs4B,SAAlC,CAAjB,CADoD,CAG/D,OAAOD,EAPwB,CAAZ,EArsFvB,CA8sFIG,GAAqB,QAAS,CAACpkB,CAAD,CAAS,CAEvCokB,QAASA,EAAiB,CAACv6B,CAAD,CAAcq6B,CAAd,CAAwB,CAC1Cz1B,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAApC,IAAA,CAAU,IAAIF,CAAJ,CAAiB+3B,CAAjB,CAAV,CACA,OAAOz1B,EAHuC,CADlDnG,CAAA,CAAU87B,CAAV,CAA6BpkB,CAA7B,CAMA,OAAOokB,EAPgC,CAAlB,CAQvBn6B,CARuB,CA9sFzB,CA8tFIo6B,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACzvB,CAAD,CAAYxJ,CAAZ,CAAoBk5B,CAApB,CAAgCj3B,CAAhC,CAAyC,CAC/D,IAAAuH,UAAA,CAAiBA,CACjB,KAAAxJ,OAAA,CAAcA,CACd,KAAAk5B,WAAA,CAAkBA,CAClB,KAAAj3B,QAAA,CAAeA,CAJgD,CAMnEg3B,CAAAz7B,UAAA0J,KAAA;AAAmCiyB,QAAS,CAAC36B,CAAD,CAAWwB,CAAX,CAAmB,CAC3D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIg2B,EAAJ,CAAwB56B,CAAxB,CAAkC,IAAAgL,UAAlC,CAAkD,IAAAxJ,OAAlD,CAA+D,IAAAk5B,WAA/D,CAAgF,IAAAj3B,QAAhF,CAAjB,CADoD,CAG/D,OAAOg3B,EAV0B,CAAZ,EA9tFzB,CA0uFIG,GAAuB,QAAS,CAACxkB,CAAD,CAAS,CAEzCwkB,QAASA,EAAmB,CAAC36B,CAAD,CAAc+K,CAAd,CAAyBxJ,CAAzB,CAAiCk5B,CAAjC,CAA6Cj3B,CAA7C,CAAsD,CAC1EoB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAArD,OAAA,CAAeA,CACfqD,EAAA61B,WAAA,CAAmBA,CACnB71B,EAAApB,QAAA,CAAgBA,CAChBoB,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAPuE,CADlFnG,CAAA,CAAUk8B,CAAV,CAA+BxkB,CAA/B,CAUAwkB,EAAA57B,UAAA8oB,eAAA,CAA+C+S,QAAS,CAACz4B,CAAD,CAAQ,CAC5D,IAAInC,EAAc,IAAAA,YAClBA,EAAAyC,KAAA,CAAiBN,CAAjB,CACAnC,EAAAiC,SAAA,EACA,KAAA0G,YAAA,EAJ4D,CAMhEgyB,EAAA57B,UAAA4X,MAAA,CAAsCkkB,QAAS,CAAC14B,CAAD,CAAQ,CAAA,IACpC4I,EAAN9K,IAAkB8K,UADwB,CACVvH,EAAhCvD,IAA0CuD,QADA,CAE/CgH,EAAQ,IAAAA,MAAA,EACZ,IAAI,CACaO,CAAAtC,KAAAhD,CAAejC,CAAfiC,EAA0B,IAA1BA,CAAgCtD,CAAhCsD,CAAuC+E,CAAvC/E,CAA8C,IAAAlE,OAA9CkE,CACb,EACI,IAAAoiB,eAAA,CAAoB,IAAA4S,WAAA;AAAkBjwB,CAAlB,CAA0BrI,CAA9C,CAHJ,CAMJ,MAAO9C,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CATuC,CAavDs7B,EAAA57B,UAAAgY,UAAA,CAA0C+jB,QAAS,EAAG,CAClD,IAAAjT,eAAA,CAAoB,IAAA4S,WAAA,CAAmB,EAAnB,CAAuB11B,IAAAA,EAA3C,CADkD,CAGtD,OAAO41B,EAjCkC,CAAlB,CAkCzBv6B,CAlCyB,CA1uF3B,CA4xFI26B,GAA0B,QAAS,EAAG,CACtCA,QAASA,EAAsB,EAAG,EAElCA,CAAAh8B,UAAA0J,KAAA,CAAwCuyB,QAAS,CAACj5B,CAAD,CAAaR,CAAb,CAAqB,CAClE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIs2B,EAAJ,CAA6Bl5B,CAA7B,CAAjB,CAD2D,CAGtE,OAAOg5B,EAN+B,CAAZ,EA5xF9B,CAoyFIE,GAA4B,QAAS,CAAC9kB,CAAD,CAAS,CAE9C8kB,QAASA,EAAwB,EAAG,CAChC,MAAkB,KAAlB,GAAO9kB,CAAP,EAA0BA,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA1B,EAA2D,IAD3B,CADpChC,CAAA,CAAUw8B,CAAV,CAAoC9kB,CAApC,CAIA8kB,EAAAl8B,UAAA4X,MAAA,CAA2CukB,QAAS,CAAClS,CAAD,CAAS,EAE7D,OAAOiS,EAPuC,CAAlB,CAQ9B76B,CAR8B,CApyFhC,CAizFI+6B,GAAmB,QAAS,EAAG,CAC/BA,QAASA,EAAe,EAAG,EAE3BA,CAAAp8B,UAAA0J,KAAA,CAAiC2yB,QAAS,CAACr7B,CAAD,CAAWwB,CAAX,CAAmB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI02B,EAAJ,CAAsBt7B,CAAtB,CAAjB,CADkD,CAG7D,OAAOo7B,EANwB,CAAZ,EAjzFvB,CAyzFIE,GAAqB,QAAS,CAACllB,CAAD,CAAS,CAEvCklB,QAASA,EAAiB,CAACr7B,CAAD,CAAc,CACpC,MAAOmW,EAAA1N,KAAA,CAAY,IAAZ;AAAkBzI,CAAlB,CAAP,EAAyC,IADL,CADxCvB,CAAA,CAAU48B,CAAV,CAA6BllB,CAA7B,CAIAklB,EAAAt8B,UAAA8oB,eAAA,CAA6CyT,QAAS,CAAChI,CAAD,CAAU,CAC5D,IAAItzB,EAAc,IAAAA,YAClBA,EAAAyC,KAAA,CAAiB6wB,CAAjB,CACAtzB,EAAAiC,SAAA,EAH4D,CAKhEo5B,EAAAt8B,UAAA4X,MAAA,CAAoC4kB,QAAS,CAACp5B,CAAD,CAAQ,CACjD,IAAA0lB,eAAA,CAAoB,CAAA,CAApB,CADiD,CAGrDwT,EAAAt8B,UAAAgY,UAAA,CAAwCykB,QAAS,EAAG,CAChD,IAAA3T,eAAA,CAAoB,CAAA,CAApB,CADgD,CAGpD,OAAOwT,EAhBgC,CAAlB,CAiBvBj7B,CAjBuB,CAzzFzB,CAs1FI+N,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAAC2pB,CAAD,CAAQ,CAC7B,IAAAA,MAAA,CAAaA,CACb,IAAiB,CAAjB,CAAI,IAAAA,MAAJ,CACI,KAAM,KAAI/Q,CAAV,CAHyB,CAMjC5Y,CAAApP,UAAA0J,KAAA,CAAkCgzB,QAAS,CAAC15B,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+2B,EAAJ,CAAuB35B,CAAvB,CAAmC,IAAA+1B,MAAnC,CAAjB,CADqD,CAGhE,OAAO3pB,EAVyB,CAAZ,EAt1FxB,CAk2FIutB,GAAsB,QAAS,CAACvlB,CAAD,CAAS,CAExCulB,QAASA,EAAkB,CAAC17B,CAAD,CAAc83B,CAAd,CAAqB,CACxClzB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAkzB,MAAA,CAAcA,CACdlzB,EAAA+2B,KAAA,CAAa,EACb/2B,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EALqC,CADhDnG,CAAA,CAAUi9B,CAAV,CAA8BvlB,CAA9B,CAQAulB,EAAA38B,UAAA4X,MAAA;AAAqCilB,QAAS,CAACz5B,CAAD,CAAQ,CAClD,IAAIw5B,EAAO,IAAAA,KAAX,CACI7D,EAAQ,IAAAA,MADZ,CAEIxsB,EAAQ,IAAAA,MAAA,EACRqwB,EAAAj7B,OAAJ,CAAkBo3B,CAAlB,CACI6D,CAAAlqB,KAAA,CAAUtP,CAAV,CADJ,CAKIw5B,CAAA,CADYrwB,CACZ,CADoBwsB,CACpB,CALJ,CAKkB31B,CATgC,CAYtDu5B,EAAA38B,UAAAgY,UAAA,CAAyC8kB,QAAS,EAAG,CACjD,IAAI77B,EAAc,IAAAA,YAAlB,CACIsL,EAAQ,IAAAA,MACZ,IAAY,CAAZ,CAAIA,CAAJ,CAGI,IAFA,IAAIwsB,EAAQ,IAAAxsB,MAAA,EAAc,IAAAwsB,MAAd,CAA2B,IAAAA,MAA3B,CAAwC,IAAAxsB,MAApD,CACIqwB,EAAO,IAAAA,KADX,CAESp5B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBu1B,CAApB,CAA2Bv1B,CAAA,EAA3B,CAAgC,CAC5B,IAAIu5B,EAAOxwB,CAAA,EAAPwwB,CAAkBhE,CACtB93B,EAAAyC,KAAA,CAAiBk5B,CAAA,CAAKG,CAAL,CAAjB,CAF4B,CAKpC97B,CAAAiC,SAAA,EAXiD,CAarD,OAAOy5B,EAlCiC,CAAlB,CAmCxBt7B,CAnCwB,CAl2F1B,CA+4FI27B,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAAC55B,CAAD,CAAQ,CAC1B,IAAAA,MAAA,CAAaA,CADa,CAG9B45B,CAAAh9B,UAAA0J,KAAA,CAA+BuzB,QAAS,CAACj6B,CAAD,CAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIs3B,EAAJ,CAAoBl6B,CAApB,CAAgC,IAAAI,MAAhC,CAAjB,CADkD,CAG7D,OAAO45B,EAPsB,CAAZ,EA/4FrB,CAw5FIE,GAAmB,QAAS,CAAC9lB,CAAD,CAAS,CAErC8lB,QAASA,EAAe,CAACj8B,CAAD,CAAcmC,CAAd,CAAqB,CACrCyC,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAzC,MAAA,CAAcA,CACd,OAAOyC,EAHkC,CAD7CnG,CAAA,CAAUw9B,CAAV,CAA2B9lB,CAA3B,CAMA8lB;CAAAl9B,UAAA4X,MAAA,CAAkCulB,QAAS,CAAC/8B,CAAD,CAAI,CAC3C,IAAAa,YAAAyC,KAAA,CAAsB,IAAAN,MAAtB,CAD2C,CAG/C,OAAO85B,EAV8B,CAAlB,CAWrB77B,CAXqB,CAx5FvB,CA06FI+7B,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,EAAG,EAE/BA,CAAAp9B,UAAA0J,KAAA,CAAqC2zB,QAAS,CAACr6B,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI03B,EAAJ,CAA0Bt6B,CAA1B,CAAjB,CADwD,CAGnE,OAAOo6B,EAN4B,CAAZ,EA16F3B,CAk7FIE,GAAyB,QAAS,CAAClmB,CAAD,CAAS,CAE3CkmB,QAASA,EAAqB,CAACr8B,CAAD,CAAc,CACxC,MAAOmW,EAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAP,EAAyC,IADD,CAD5CvB,CAAA,CAAU49B,CAAV,CAAiClmB,CAAjC,CAIAkmB,EAAAt9B,UAAA4X,MAAA,CAAwC2lB,QAAS,CAACn6B,CAAD,CAAQ,CACrD,IAAAnC,YAAAyC,KAAA,CAAsB+e,CAAAW,WAAA,CAAwBhgB,CAAxB,CAAtB,CADqD,CAGzDk6B,EAAAt9B,UAAA8X,OAAA,CAAyC0lB,QAAS,CAACl9B,CAAD,CAAM,CACpD,IAAIW,EAAc,IAAAA,YAClBA,EAAAyC,KAAA,CAAiB+e,CAAAc,YAAA,CAAyBjjB,CAAzB,CAAjB,CACAW,EAAAiC,SAAA,EAHoD,CAKxDo6B,EAAAt9B,UAAAgY,UAAA,CAA4CylB,QAAS,EAAG,CACpD,IAAIx8B,EAAc,IAAAA,YAClBA,EAAAyC,KAAA,CAAiB+e,CAAAgB,eAAA,EAAjB,CACAxiB,EAAAiC,SAAA,EAHoD,CAKxD;MAAOo6B,EAlBoC,CAAlB,CAmB3Bj8B,CAnB2B,CAl7F7B,CAg9FIqO,GAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,CAACJ,CAAD,CAAcC,CAAd,CAAoBC,CAApB,CAA6B,CAC9B,IAAK,EAArB,GAAIA,CAAJ,GAA0BA,CAA1B,CAAoC,CAAA,CAApC,CACA,KAAAF,YAAA,CAAmBA,CACnB,KAAAC,KAAA,CAAYA,CACZ,KAAAC,QAAA,CAAeA,CAJ+B,CAMlDE,CAAA1P,UAAA0J,KAAA,CAA8Bg0B,QAAS,CAAC16B,CAAD,CAAaR,CAAb,CAAqB,CACxD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+3B,EAAJ,CAAmB36B,CAAnB,CAA+B,IAAAsM,YAA/B,CAAiD,IAAAC,KAAjD,CAA4D,IAAAC,QAA5D,CAAjB,CADiD,CAG5D,OAAOE,EAVqB,CAAZ,EAh9FpB,CA49FIiuB,GAAkB,QAAS,CAACvmB,CAAD,CAAS,CAEpCumB,QAASA,EAAc,CAAC18B,CAAD,CAAcqO,CAAd,CAA2BsuB,CAA3B,CAAkCpuB,CAAlC,CAA2C,CAC1D3J,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAyJ,YAAA,CAAoBA,CACpBzJ,EAAA+3B,MAAA,CAAcA,CACd/3B,EAAA2J,QAAA,CAAgBA,CAChB3J,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EANuD,CADlEnG,CAAA,CAAUi+B,CAAV,CAA0BvmB,CAA1B,CASAnX,OAAAyf,eAAA,CAAsBie,CAAA39B,UAAtB,CAAgD,MAAhD,CAAwD,CACpDme,IAAKA,QAAS,EAAG,CACb,MAAO,KAAAyf,MADM,CADmC,CAIpDvf,IAAKA,QAAS,CAACjb,CAAD,CAAQ,CAClB,IAAAoM,QAAA,CAAe,CAAA,CACf,KAAAouB,MAAA,CAAax6B,CAFK,CAJ8B,CAQpDwc,WAAY,CAAA,CARwC,CASpDC,aAAc,CAAA,CATsC,CAAxD,CAWA8d,EAAA39B,UAAA4X,MAAA;AAAiCimB,QAAS,CAACz6B,CAAD,CAAQ,CAC9C,GAAK,IAAAoM,QAAL,CAKI,MAAO,KAAAkb,SAAA,CAActnB,CAAd,CAJP,KAAAmM,KAAA,CAAYnM,CACZ,KAAAnC,YAAAyC,KAAA,CAAsBN,CAAtB,CAH0C,CASlDu6B,EAAA39B,UAAA0qB,SAAA,CAAoCoT,QAAS,CAAC16B,CAAD,CAAQ,CACjD,IAAIqI,EAAQ,IAAAA,MAAA,EAAZ,CACI/E,CACJ,IAAI,CACAA,CAAA,CAAS,IAAA4I,YAAA,CAAiB,IAAAC,KAAjB,CAA4BnM,CAA5B,CAAmCqI,CAAnC,CADT,CAGJ,MAAOnL,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CAGZ,IAAAiP,KAAA,CAAY7I,CACZ,KAAAzF,YAAAyC,KAAA,CAAsBgD,CAAtB,CAViD,CAYrD,OAAOi3B,EA1C6B,CAAlB,CA2CpBt8B,CA3CoB,CA59FtB,CAkjGI08B,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACzuB,CAAD,CAAcC,CAAd,CAAoB1H,CAApB,CAAgC,CACtD,IAAAyH,YAAA,CAAmBA,CACnB,KAAAC,KAAA,CAAYA,CACZ,KAAA1H,WAAA,CAAkBA,CAHoC,CAK1Dk2B,CAAA/9B,UAAA0J,KAAA,CAAmCs0B,QAAS,CAACh7B,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIq4B,EAAJ,CAAwBj7B,CAAxB,CAAoC,IAAAsM,YAApC,CAAsD,IAAAC,KAAtD,CAAiE,IAAA1H,WAAjE,CAAjB,CADsD,CAGjE,OAAOk2B,EAT0B,CAAZ,EAljGzB,CA6jGIE,GAAuB,QAAS,CAAC7mB,CAAD,CAAS,CAEzC6mB,QAASA,EAAmB,CAACh9B,CAAD,CAAcqO,CAAd,CAA2BO,CAA3B,CAAgChI,CAAhC,CAA4C,CAChEhC,CAAAA;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAyJ,YAAA,CAAoBA,CACpBzJ,EAAAgK,IAAA,CAAYA,CACZhK,EAAAgC,WAAA,CAAmBA,CACnBhC,EAAAoD,SAAA,CAAiB,CAAA,CACjBpD,EAAA6f,aAAA,CAAqB,CAAA,CACrB7f,EAAA2kB,OAAA,CAAe,EACf3kB,EAAAqc,OAAA,CAAe,CACfrc,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAV6D,CADxEnG,CAAA,CAAUu+B,CAAV,CAA+B7mB,CAA/B,CAaA6mB,EAAAj+B,UAAA4X,MAAA,CAAsCsmB,QAAS,CAAC96B,CAAD,CAAQ,CACnD,GAAI,IAAA8e,OAAJ,CAAkB,IAAAra,WAAlB,CAAmC,CAC/B,IAAI4D,EAAQ,IAAAA,MAAA,EAAZ,CACIxK,EAAc,IAAAA,YADlB,CAEI6pB,EAAM,IAAK,EACf,IAAI,CACA,IAAIxb,EAAc,IAAAA,YAAlB,CACAwb,EAAMxb,CAAA,CAAY,IAAAO,IAAZ,CAAsBzM,CAAtB,CAA6BqI,CAA7B,CAFN,CAIJ,MAAOjC,CAAP,CAAU,CACN,MAAOvI,EAAAgD,MAAA,CAAkBuF,CAAlB,CADD,CAGV,IAAA0Y,OAAA,EACA,KAAA0I,UAAA,CAAeE,CAAf,CAAoB1nB,CAApB,CAA2BqI,CAA3B,CAZ+B,CAAnC,IAeI,KAAA+e,OAAA9X,KAAA,CAAiBtP,CAAjB,CAhB+C,CAmBvD66B,EAAAj+B,UAAA4qB,UAAA,CAA0CuT,QAAS,CAACrT,CAAD,CAAM1nB,CAAN,CAAaqI,CAAb,CAAoB,CAC/D5E,CAAAA,CAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0B1D,CAA1B,CAAiCqI,CAAjC,CAClBxK,EAAAA,CAAc,IAAAA,YAClBA,EAAAwC,IAAA,CAAgBoD,CAAhB,CACIkkB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwBskB,CAAxB,CAA6B9kB,IAAAA,EAA7B,CAAwCA,IAAAA,EAAxC,CAAmDa,CAAnD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B;AACI5F,CAAAwC,IAAA,CAAgBsnB,CAAhB,CAN+D,CASvEkT,EAAAj+B,UAAAgY,UAAA,CAA0ComB,QAAS,EAAG,CAClD,IAAA1Y,aAAA,CAAoB,CAAA,CACA,EAApB,GAAI,IAAAxD,OAAJ,EAAgD,CAAhD,GAAyB,IAAAsI,OAAA7oB,OAAzB,GAC0B,CAAA,CAGtB,GAHI,IAAAsH,SAGJ,EAFI,IAAAhI,YAAAyC,KAAA,CAAsB,IAAAmM,IAAtB,CAEJ,CAAA,IAAA5O,YAAAiC,SAAA,EAJJ,CAMA,KAAA0G,YAAA,EARkD,CAUtDq0B,EAAAj+B,UAAA4Q,WAAA,CAA2CytB,QAAS,CAAC13B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACvGxQ,CAAAA,CAAc,IAAAA,YAClB,KAAA4O,IAAA,CAAW6Y,CACX,KAAAzf,SAAA,CAAgB,CAAA,CAChBhI,EAAAyC,KAAA,CAAiBglB,CAAjB,CAJ2G,CAM/GuV,EAAAj+B,UAAA8oB,eAAA,CAA+CwV,QAAS,CAAC7sB,CAAD,CAAW,CAC/D,IAAI+Y,EAAS,IAAAA,OACK,KAAAvpB,YAClBmS,OAAA,CAAmB3B,CAAnB,CACA,KAAAyQ,OAAA,EACoB,EAApB,CAAIsI,CAAA7oB,OAAJ,CACI,IAAAiW,MAAA,CAAW4S,CAAAtkB,MAAA,EAAX,CADJ,CAGyB,CAHzB,GAGS,IAAAgc,OAHT,EAG8B,IAAAwD,aAH9B,GAI0B,CAAA,CAGtB,GAHI,IAAAzc,SAGJ,EAFI,IAAAhI,YAAAyC,KAAA,CAAsB,IAAAmM,IAAtB,CAEJ;AAAA,IAAA5O,YAAAiC,SAAA,EAPJ,CAL+D,CAenE,OAAO+6B,EAzEkC,CAAlB,CA0EzBzV,CA1EyB,CA7jG3B,CAoqGIrY,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACD,CAAD,CAAiBF,CAAjB,CAA2B,CACjD,IAAAE,eAAA,CAAsBA,CACtB,KAAAF,SAAA,CAAgBA,CAFiC,CAIrDG,CAAAnQ,UAAA0J,KAAA,CAAmC60B,QAAS,CAACv7B,CAAD,CAAaR,CAAb,CAAqB,CAC7D,IAAIwN,EAAW,IAAAA,SAAf,CACI7K,EAAU,IAAA+K,eAAA,EACVxE,EAAAA,CAAesE,CAAA,CAAS7K,CAAT,CAAAS,UAAA,CAA4B5C,CAA5B,CACnB0I,EAAAjI,IAAA,CAAiBjB,CAAAoD,UAAA,CAAiBT,CAAjB,CAAjB,CACA,OAAOuG,EALsD,CAOjE,OAAOyE,EAZ0B,CAAZ,EApqGzB,CA6rGIquB,GAA6B,QAAS,EAAG,CACzCA,QAASA,EAAyB,CAACC,CAAD,CAAc,CAC5C,IAAAA,YAAA,CAAmBA,CADyB,CAGhDD,CAAAx+B,UAAA0J,KAAA,CAA2Cg1B,QAAS,CAAC17B,CAAD,CAAaR,CAAb,CAAqB,CACrE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+4B,EAAJ,CAAgC37B,CAAhC,CAA4C,IAAAy7B,YAA5C,CAAjB,CAD8D,CAGzE,OAAOD,EAPkC,CAAZ,EA7rGjC,CAssGIG,GAA+B,QAAS,CAACvnB,CAAD,CAAS,CAEjDunB,QAASA,EAA2B,CAAC19B,CAAD,CAAcw9B,CAAd,CAA2B,CAC3D,IAAI54B,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAA44B,YAAA,CAAoBA,CACpB,OAAO54B,EAJoD,CAD/DnG,CAAA,CAAUi/B,CAAV,CAAuCvnB,CAAvC,CAOAunB,EAAA3+B,UAAA4oB,YAAA;AAAoDgW,QAAS,CAAC36B,CAAD,CAAQwN,CAAR,CAAkB,CAC3E,IAAAotB,sBAAA,EAD2E,CAG/EF,EAAA3+B,UAAA8oB,eAAA,CAAuDgW,QAAS,CAACrtB,CAAD,CAAW,CACvE,IAAAotB,sBAAA,EADuE,CAG3EF,EAAA3+B,UAAA8X,OAAA,CAA+CinB,QAAS,CAACz+B,CAAD,CAAM,CAC1D,IAAAu+B,sBAAA,EACA,KAAAj1B,YAAA,EAF0D,CAI9D+0B,EAAA3+B,UAAAgY,UAAA,CAAkDgnB,QAAS,EAAG,CAC1D,IAAAH,sBAAA,EACA,KAAAj1B,YAAA,EAF0D,CAI9D+0B,EAAA3+B,UAAA6+B,sBAAA,CAA8DI,QAAS,EAAG,CACtE,IAAIv7B,EAAO,IAAA+6B,YAAAv4B,MAAA,EACX,IAAMxC,CAAN,CAAY,CACR,IAAImD,EAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0Bd,IAAAA,EAA1B,CAAqCA,IAAAA,EAArC,CAAtB,CACI/E,EAAc,IAAAA,YAClBA,EAAAwC,IAAA,CAAgBoD,CAAhB,CACIkkB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwB9C,CAAxB,CAA8BsC,IAAAA,EAA9B,CAAyCA,IAAAA,EAAzC,CAAoDa,CAApD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B,EACI5F,CAAAwC,IAAA,CAAgBsnB,CAAhB,CANI,CAAZ,IAUI,KAAA9pB,YAAAiC,SAAA,EAZkE,CAe1E,OAAOy7B,EArC0C,CAAlB,CAsCjCnW,CAtCiC,CAtsGnC;AAivGI0W,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,EAAG,EAE5BA,CAAAl/B,UAAA0J,KAAA,CAAkCy1B,QAAS,CAACn8B,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIw5B,EAAJ,CAAuBp8B,CAAvB,CAAjB,CADqD,CAGhE,OAAOk8B,EANyB,CAAZ,EAjvGxB,CAyvGIE,GAAsB,QAAS,CAAChoB,CAAD,CAAS,CAExCgoB,QAASA,EAAkB,CAACn+B,CAAD,CAAc,CACjC4E,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAw5B,QAAA,CAAgB,CAAA,CAChB,OAAOx5B,EAH8B,CADzCnG,CAAA,CAAU0/B,CAAV,CAA8BhoB,CAA9B,CAMAgoB,EAAAp/B,UAAA4X,MAAA,CAAqC0nB,QAAS,CAACl8B,CAAD,CAAQ,CAClD,IAAIm8B,CACA,KAAAF,QAAJ,CACIE,CADJ,CACW,CAAC,IAAAx9B,KAAD,CAAYqB,CAAZ,CADX,CAII,IAAAi8B,QAJJ,CAImB,CAAA,CAEnB,KAAAt9B,KAAA,CAAYqB,CACRm8B,EAAJ,EACI,IAAAt+B,YAAAyC,KAAA,CAAsB67B,CAAtB,CAV8C,CAatD,OAAOH,EApBiC,CAAlB,CAqBxB/9B,CArBwB,CAzvG1B,CAq2GIm+B,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACjzB,CAAD,CAAQ/J,CAAR,CAAgB,CACnC,IAAA+J,MAAA,CAAaA,CACb,KAAA/J,OAAA,CAAcA,CAFqB,CAIvCg9B,CAAAx/B,UAAA0J,KAAA,CAAgC+1B,QAAS,CAACz8B,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI85B,EAAJ,CAAqB18B,CAArB,CAAiC,IAAAuJ,MAAjC,CAA6C,IAAA/J,OAA7C,CAAjB,CADmD,CAG9D,OAAOg9B,EARuB,CAAZ,EAr2GtB,CA+2GIE,GAAoB,QAAS,CAACtoB,CAAD,CAAS,CAEtCsoB,QAASA,EAAgB,CAACz+B,CAAD,CAAcsL,CAAd;AAAqB/J,CAArB,CAA6B,CAC9CqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA0G,MAAA,CAAcA,CACd1G,EAAArD,OAAA,CAAeA,CACf,OAAOqD,EAJ2C,CADtDnG,CAAA,CAAUggC,CAAV,CAA4BtoB,CAA5B,CAOAsoB,EAAA1/B,UAAAkD,SAAA,CAAsCy8B,QAAS,EAAG,CAC9C,GAAKx+B,CAAA,IAAAA,UAAL,CAAqB,CAAA,IACFqB,EAANtB,IAAesB,OADP,CACkB+J,EAA1BrL,IAAkCqL,MAC3C,IAAc,CAAd,GAAIA,CAAJ,CACI,MAAO6K,EAAApX,UAAAkD,SAAAwG,KAAA,CAA+B,IAA/B,CAEO,GAAb,CAAI6C,CAAJ,GACD,IAAAA,MADC,CACYA,CADZ,CACoB,CADpB,CAGL/J,EAAAoD,UAAA,CAAiB,IAAAyS,uBAAA,EAAjB,CARiB,CADyB,CAYlD,OAAOqnB,EApB+B,CAAlB,CAqBtBr+B,CArBsB,CA/2GxB,CAy4GIu+B,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAACC,CAAD,CAAW,CAClC,IAAAA,SAAA,CAAgBA,CADkB,CAGtCD,CAAA5/B,UAAA0J,KAAA,CAAoCo2B,QAAS,CAAC98B,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIm6B,EAAJ,CAAyB/8B,CAAzB,CAAqC,IAAA68B,SAArC,CAAoDr9B,CAApD,CAAjB,CADuD,CAGlE,OAAOo9B,EAP2B,CAAZ,EAz4G1B,CAk5GIG,GAAwB,QAAS,CAAC3oB,CAAD,CAAS,CAE1C2oB,QAASA,EAAoB,CAAC9+B,CAAD,CAAc4+B,CAAd,CAAwBr9B,CAAxB,CAAgC,CACrDqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAg6B,SAAA,CAAiBA,CACjBh6B,EAAArD,OAAA,CAAeA,CACfqD,EAAAm6B,0BAAA;AAAkC,CAAA,CAClC,OAAOn6B,EALkD,CAD7DnG,CAAA,CAAUqgC,CAAV,CAAgC3oB,CAAhC,CAQA2oB,EAAA//B,UAAA4Q,WAAA,CAA4CqvB,QAAS,CAACt5B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC5G,IAAAuuB,0BAAA,CAAiC,CAAA,CACjC,KAAAx9B,OAAAoD,UAAA,CAAsB,IAAtB,CAF4G,CAIhHm6B,EAAA//B,UAAA8oB,eAAA,CAAgDoX,QAAS,CAACzuB,CAAD,CAAW,CAChE,GAAuC,CAAA,CAAvC,GAAI,IAAAuuB,0BAAJ,CACI,MAAO5oB,EAAApX,UAAAkD,SAAAwG,KAAA,CAA+B,IAA/B,CAFqD,CAKpEq2B,EAAA//B,UAAAkD,SAAA,CAA0Ci9B,QAAS,EAAG,CAClD,IAAAH,0BAAA,CAAiC,CAAA,CACjC,IAAK7+B,CAAA,IAAAA,UAAL,CAAqB,CACZ,IAAAi/B,QAAL,EACI,IAAAC,mBAAA,EAEJ,IAAKC,CAAA,IAAAA,oBAAL,EAAiC,IAAAA,oBAAAl/B,OAAjC,CACI,MAAOgW,EAAApX,UAAAkD,SAAAwG,KAAA,CAA+B,IAA/B,CAEX,KAAA2O,uBAAA,EACA,KAAAkoB,cAAA78B,KAAA,EARiB,CAF6B,CAatDq8B;CAAA//B,UAAAsW,aAAA,CAA8CkqB,QAAS,EAAG,CAAA,IACvCD,EAANr/B,IAAsBq/B,cADuB,CACLD,EAAxCp/B,IAA8Do/B,oBACnEC,EAAJ,GACIA,CAAA32B,YAAA,EACA,CAAA,IAAA22B,cAAA,CAAqB,IAFzB,CAIID,EAAJ,GACIA,CAAA12B,YAAA,EACA,CAAA,IAAA02B,oBAAA,CAA2B,IAF/B,CAIA,KAAAF,QAAA,CAAe,IAVuC,CAY1DL,EAAA//B,UAAAqY,uBAAA,CAAwDooB,QAAS,EAAG,CAChE,IAAInqB,EAAe,IAAAA,aACnB,KAAAA,aAAA,CAAoB,IACpBc,EAAApX,UAAAqY,uBAAA3O,KAAA,CAA6C,IAA7C,CACA,KAAA4M,aAAA,CAAoBA,CACpB,OAAO,KALyD,CAOpEypB,EAAA//B,UAAAqgC,mBAAA,CAAoDK,QAAS,EAAG,CAC5D,IAAAH,cAAA,CAAqB,IAAIzvB,CACzB,KAAIsvB,CACJ,IAAI,CACA,IAAIP,EAAW,IAAAA,SACfO,EAAA,CAAUP,CAAA,CAAS,IAAAU,cAAT,CAFV,CAIJ,MAAO/2B,CAAP,CAAU,CACN,MAAO4N,EAAApX,UAAAkD,SAAAwG,KAAA,CAA+B,IAA/B,CADD,CAGV,IAAA02B,QAAA;AAAeA,CACf,KAAAE,oBAAA,CAA2B95B,CAAA,CAAkB,IAAlB,CAAwB45B,CAAxB,CAXiC,CAahE,OAAOL,EA/DmC,CAAlB,CAgE1BvX,CAhE0B,CAl5G5B,CAw9GImY,GAAiB,QAAS,EAAG,CAC7BA,QAASA,EAAa,CAACp0B,CAAD,CAAQ/J,CAAR,CAAgB,CAClC,IAAA+J,MAAA,CAAaA,CACb,KAAA/J,OAAA,CAAcA,CAFoB,CAItCm+B,CAAA3gC,UAAA0J,KAAA,CAA+Bk3B,QAAS,CAAC59B,CAAD,CAAaR,CAAb,CAAqB,CACzD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIi7B,EAAJ,CAAoB79B,CAApB,CAAgC,IAAAuJ,MAAhC,CAA4C,IAAA/J,OAA5C,CAAjB,CADkD,CAG7D,OAAOm+B,EARsB,CAAZ,EAx9GrB,CAk+GIE,GAAmB,QAAS,CAACzpB,CAAD,CAAS,CAErCypB,QAASA,EAAe,CAAC5/B,CAAD,CAAcsL,CAAd,CAAqB/J,CAArB,CAA6B,CAC7CqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA0G,MAAA,CAAcA,CACd1G,EAAArD,OAAA,CAAeA,CACf,OAAOqD,EAJ0C,CADrDnG,CAAA,CAAUmhC,CAAV,CAA2BzpB,CAA3B,CAOAypB,EAAA7gC,UAAAiE,MAAA,CAAkC68B,QAAS,CAACxgC,CAAD,CAAM,CAC7C,GAAKa,CAAA,IAAAA,UAAL,CAAqB,CAAA,IACFqB,EAANtB,IAAesB,OADP,CACkB+J,EAA1BrL,IAAkCqL,MAC3C,IAAc,CAAd,GAAIA,CAAJ,CACI,MAAO6K,EAAApX,UAAAiE,MAAAyF,KAAA,CAA4B,IAA5B,CAAkCpJ,CAAlC,CAEO,GAAb,CAAIiM,CAAJ,GACD,IAAAA,MADC,CACYA,CADZ,CACoB,CADpB,CAGL/J,EAAAoD,UAAA,CAAiB,IAAAyS,uBAAA,EAAjB,CARiB,CADwB,CAYjD,OAAOwoB,EApB8B,CAAlB,CAqBrBx/B,CArBqB,CAl+GvB;AA4/GI0/B,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAAClB,CAAD,CAAWr9B,CAAX,CAAmB,CACzC,IAAAq9B,SAAA,CAAgBA,CAChB,KAAAr9B,OAAA,CAAcA,CAF2B,CAI7Cu+B,CAAA/gC,UAAA0J,KAAA,CAAmCs3B,QAAS,CAACh+B,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIq7B,EAAJ,CAAwBj+B,CAAxB,CAAoC,IAAA68B,SAApC,CAAmD,IAAAr9B,OAAnD,CAAjB,CADsD,CAGjE,OAAOu+B,EAR0B,CAAZ,EA5/GzB,CAsgHIE,GAAuB,QAAS,CAAC7pB,CAAD,CAAS,CAEzC6pB,QAASA,EAAmB,CAAChgC,CAAD,CAAc4+B,CAAd,CAAwBr9B,CAAxB,CAAgC,CACpDqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAg6B,SAAA,CAAiBA,CACjBh6B,EAAArD,OAAA,CAAeA,CACf,OAAOqD,EAJiD,CAD5DnG,CAAA,CAAUuhC,CAAV,CAA+B7pB,CAA/B,CAOA6pB,EAAAjhC,UAAAiE,MAAA,CAAsCi9B,QAAS,CAAC5gC,CAAD,CAAM,CACjD,GAAKa,CAAA,IAAAA,UAAL,CAAqB,CACjB,IAAIT,EAAS,IAAAA,OAAb,CACI0/B,EAAU,IAAAA,QADd,CAEIE,EAAsB,IAAAA,oBAC1B,IAAKF,CAAL,CAaI,IAAAE,oBAAA,CADA,IAAA5/B,OACA,CADc,IAZlB,KAAc,CACVA,CAAA,CAAS,IAAIoQ,CACb,IAAI,CACA,IAAI+uB,EAAW,IAAAA,SAAf,CACAO,EAAUP,CAAA,CAASn/B,CAAT,CAFV,CAIJ,MAAO8I,CAAP,CAAU,CACN,MAAO4N,EAAApX,UAAAiE,MAAAyF,KAAA,CAA4B,IAA5B;AAAkCF,CAAlC,CADD,CAGV82B,CAAA,CAAsB95B,CAAA,CAAkB,IAAlB,CAAwB45B,CAAxB,CATZ,CAed,IAAA/nB,uBAAA,EACA,KAAA3X,OAAA,CAAcA,CACd,KAAA0/B,QAAA,CAAeA,CACf,KAAAE,oBAAA,CAA2BA,CAC3B5/B,EAAAgD,KAAA,CAAYpD,CAAZ,CAvBiB,CAD4B,CA2BrD2gC,EAAAjhC,UAAAsW,aAAA,CAA6C6qB,QAAS,EAAG,CAAA,IACtCzgC,EAANQ,IAAeR,OAD6B,CAClB4/B,EAA1Bp/B,IAAgDo/B,oBACrD5/B,EAAJ,GACIA,CAAAkJ,YAAA,EACA,CAAA,IAAAlJ,OAAA,CAAc,IAFlB,CAII4/B,EAAJ,GACIA,CAAA12B,YAAA,EACA,CAAA,IAAA02B,oBAAA,CAA2B,IAF/B,CAIA,KAAAF,QAAA,CAAe,IAVsC,CAYzDa,EAAAjhC,UAAA4Q,WAAA,CAA2CwwB,QAAS,CAACz6B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACvG6E,CAAAA,CAAe,IAAAA,aACnB,KAAAA,aAAA,CAAoB,IACpB,KAAA+B,uBAAA,EACA,KAAA/B,aAAA,CAAoBA,CACpB,KAAA9T,OAAAoD,UAAA,CAAsB,IAAtB,CAL2G,CAO/G,OAAOq7B,EAtDkC,CAAlB,CAuDzBzY,CAvDyB,CAtgH3B,CAkkHI6Y,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACxB,CAAD,CAAW,CAC9B,IAAAA,SAAA;AAAgBA,CADc,CAGlCwB,CAAArhC,UAAA0J,KAAA,CAAgC43B,QAAS,CAACt+B,CAAD,CAAaR,CAAb,CAAqB,CACtD++B,CAAAA,CAAmB,IAAIC,EAAJ,CAAqBx+B,CAArB,CACnB0I,EAAAA,CAAelJ,CAAAoD,UAAA,CAAiB27B,CAAjB,CACnB71B,EAAAjI,IAAA,CAAiB+C,CAAA,CAAkB+6B,CAAlB,CAAoC,IAAA1B,SAApC,CAAjB,CACA,OAAOn0B,EAJmD,CAM9D,OAAO21B,EAVuB,CAAZ,EAlkHtB,CA8kHIG,GAAoB,QAAS,CAACpqB,CAAD,CAAS,CAEtCoqB,QAASA,EAAgB,EAAG,CACxB,IAAI37B,EAAmB,IAAnBA,GAAQuR,CAARvR,EAA2BuR,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA3BmE,EAA4D,IAChEA,EAAAoD,SAAA,CAAiB,CAAA,CACjB,OAAOpD,EAHiB,CAD5BnG,CAAA,CAAU8hC,CAAV,CAA4BpqB,CAA5B,CAMAoqB,EAAAxhC,UAAA4X,MAAA,CAAmC6pB,QAAS,CAACr+B,CAAD,CAAQ,CAChD,IAAAA,MAAA,CAAaA,CACb,KAAA6F,SAAA,CAAgB,CAAA,CAFgC,CAIpDu4B,EAAAxhC,UAAA4Q,WAAA,CAAwC8wB,QAAS,CAAC/6B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACxG,IAAA6hB,UAAA,EADwG,CAG5GkO,EAAAxhC,UAAA8oB,eAAA,CAA4C6Y,QAAS,EAAG,CACpD,IAAArO,UAAA,EADoD,CAGxDkO,EAAAxhC,UAAAszB,UAAA,CAAuCsO,QAAS,EAAG,CAC3C,IAAA34B,SAAJ,GACI,IAAAA,SACA,CADgB,CAAA,CAChB,CAAA,IAAAhI,YAAAyC,KAAA,CAAsB,IAAAN,MAAtB,CAFJ,CAD+C,CAMnD,OAAOo+B,EAvB+B,CAAlB,CAwBtBhZ,CAxBsB,CA9kHxB;AA4mHIqZ,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAAC52B,CAAD,CAASrI,CAAT,CAAoB,CAC3C,IAAAqI,OAAA,CAAcA,CACd,KAAArI,UAAA,CAAiBA,CAF0B,CAI/Ci/B,CAAA7hC,UAAA0J,KAAA,CAAoCo4B,QAAS,CAAC9+B,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIm8B,EAAJ,CAAyB/+B,CAAzB,CAAqC,IAAAiI,OAArC,CAAkD,IAAArI,UAAlD,CAAjB,CADuD,CAGlE,OAAOi/B,EAR2B,CAAZ,EA5mH1B,CAsnHIE,GAAwB,QAAS,CAAC3qB,CAAD,CAAS,CAE1C2qB,QAASA,EAAoB,CAAC9gC,CAAD,CAAcgK,CAAd,CAAsBrI,CAAtB,CAAiC,CACtDiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAoF,OAAA,CAAeA,CACfpF,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAoD,SAAA,CAAiB,CAAA,CACjBpD,EAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmB0N,EAAnB,CAAyC1F,CAAzC,CAAiD,CAAEjI,WAAY6C,CAAd,CAAqBoF,OAAQA,CAA7B,CAAjD,CAAV,CACA,OAAOpF,EANmD,CAD9DnG,CAAA,CAAUqiC,CAAV,CAAgC3qB,CAAhC,CASA2qB,EAAA/hC,UAAA4X,MAAA,CAAuCoqB,QAAS,CAAC5+B,CAAD,CAAQ,CACpD,IAAA2wB,UAAA,CAAiB3wB,CACjB,KAAA6F,SAAA,CAAgB,CAAA,CAFoC,CAIxD84B,EAAA/hC,UAAA4Q,WAAA,CAA4CqxB,QAAS,EAAG,CAChD,IAAAh5B,SAAJ,GACI,IAAAA,SACA,CADgB,CAAA,CAChB,CAAA,IAAAhI,YAAAyC,KAAA,CAAsB,IAAAqwB,UAAtB,CAFJ,CADoD,CAMxD,OAAOgO,EApBmC,CAAlB,CAqB1B1gC,CArB0B,CAtnH5B;AAqpHI6gC,GAAyB,QAAS,EAAG,CACrCA,QAASA,EAAqB,CAACC,CAAD,CAAYC,CAAZ,CAAwB,CAClD,IAAAD,UAAA,CAAiBA,CACjB,KAAAC,WAAA,CAAkBA,CAFgC,CAItDF,CAAAliC,UAAA0J,KAAA,CAAuC24B,QAAS,CAACr/B,CAAD,CAAaR,CAAb,CAAqB,CACjE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI08B,EAAJ,CAA4Bt/B,CAA5B,CAAwC,IAAAm/B,UAAxC,CAAwD,IAAAC,WAAxD,CAAjB,CAD0D,CAGrE,OAAOF,EAR8B,CAAZ,EArpH7B,CA+pHII,GAA2B,QAAS,CAAClrB,CAAD,CAAS,CAE7CkrB,QAASA,EAAuB,CAACrhC,CAAD,CAAckhC,CAAd,CAAyBC,CAAzB,CAAqC,CACjE,IAAIv8B,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAs8B,UAAA,CAAkBA,CAClBt8B,EAAAu8B,WAAA,CAAmBA,CACnBv8B,EAAA3E,GAAA,CAAW,EACX2E,EAAAmL,GAAA,CAAW,EACXnL,EAAA08B,aAAA,CAAqB,CAAA,CACrB18B,EAAA5E,YAAAwC,IAAA,CAAsB0+B,CAAAv8B,UAAA,CAAoB,IAAI48B,EAAJ,CAAqCvhC,CAArC,CAAkD4E,CAAlD,CAApB,CAAtB,CACA,OAAOA,EAR0D,CADrEnG,CAAA,CAAU4iC,CAAV,CAAmClrB,CAAnC,CAWAkrB,EAAAtiC,UAAA4X,MAAA,CAA0C6qB,QAAS,CAACr/B,CAAD,CAAQ,CACnD,IAAAm/B,aAAJ,EAA4C,CAA5C,GAAyB,IAAAvxB,GAAArP,OAAzB,CACI,IAAA+gC,KAAA,CAAU,CAAA,CAAV,CADJ,EAII,IAAAxhC,GAAAwR,KAAA,CAAatP,CAAb,CACA,CAAA,IAAAu/B,YAAA,EALJ,CADuD,CAS3DL,EAAAtiC,UAAAgY,UAAA,CAA8C4qB,QAAS,EAAG,CAClD,IAAAL,aAAJ;AACI,IAAAG,KAAA,CAA6B,CAA7B,GAAU,IAAAxhC,GAAAS,OAAV,EAAqD,CAArD,GAAkC,IAAAqP,GAAArP,OAAlC,CADJ,CAII,IAAA4gC,aAJJ,CAIwB,CAAA,CAExB,KAAA34B,YAAA,EAPsD,CAS1D04B,EAAAtiC,UAAA2iC,YAAA,CAAgDE,QAAS,EAAG,CAExD,IAFwD,IACzC3hC,EAANgQ,IAAWhQ,GADoC,CAC7B8P,EAAlBE,IAAuBF,GADwB,CACjBoxB,EAA9BlxB,IAA2CkxB,WACpD,CAAmB,CAAnB,CAAOlhC,CAAAS,OAAP,EAAoC,CAApC,CAAwBqP,CAAArP,OAAxB,CAAA,CAAuC,CACnC,IAAIqG,EAAI9G,CAAAgF,MAAA,EAAR,CACItG,EAAIoR,CAAA9K,MAAA,EADR,CAEI48B,EAAW,CAAA,CACf,IAAI,CACAA,CAAA,CAAWV,CAAA,CAAaA,CAAA,CAAWp6B,CAAX,CAAcpI,CAAd,CAAb,CAAgCoI,CAAhC,GAAsCpI,CADjD,CAGJ,MAAO4J,CAAP,CAAU,CACN,IAAAvI,YAAAgD,MAAA,CAAuBuF,CAAvB,CADM,CAGLs5B,CAAL,EACI,IAAAJ,KAAA,CAAU,CAAA,CAAV,CAX+B,CAFiB,CAiB5DJ,EAAAtiC,UAAA0iC,KAAA,CAAyCK,QAAS,CAAC3/B,CAAD,CAAQ,CACtD,IAAInC,EAAc,IAAAA,YAClBA,EAAAyC,KAAA,CAAiBN,CAAjB,CACAnC,EAAAiC,SAAA,EAHsD,CAK1Do/B,EAAAtiC,UAAAgjC,MAAA,CAA0CC,QAAS,CAAC7/B,CAAD,CAAQ,CACnD,IAAAm/B,aAAJ,EAA4C,CAA5C,GAAyB,IAAArhC,GAAAS,OAAzB,CACI,IAAA+gC,KAAA,CAAU,CAAA,CAAV,CADJ,EAII,IAAA1xB,GAAA0B,KAAA,CAAatP,CAAb,CACA,CAAA,IAAAu/B,YAAA,EALJ,CADuD,CAS3DL;CAAAtiC,UAAAkjC,UAAA,CAA8CC,QAAS,EAAG,CAClD,IAAAZ,aAAJ,CACI,IAAAG,KAAA,CAA6B,CAA7B,GAAU,IAAAxhC,GAAAS,OAAV,EAAqD,CAArD,GAAkC,IAAAqP,GAAArP,OAAlC,CADJ,CAII,IAAA4gC,aAJJ,CAIwB,CAAA,CAL8B,CAQ1D,OAAOD,EArEsC,CAAlB,CAsE7BjhC,CAtE6B,CA/pH/B,CAsuHImhC,GAAoC,QAAS,CAACprB,CAAD,CAAS,CAEtDorB,QAASA,EAAgC,CAACvhC,CAAD,CAAckY,CAAd,CAAsB,CACvDtT,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAsT,OAAA,CAAeA,CACf,OAAOtT,EAHoD,CAD/DnG,CAAA,CAAU8iC,CAAV,CAA4CprB,CAA5C,CAMAorB,EAAAxiC,UAAA4X,MAAA,CAAmDwrB,QAAS,CAAChgC,CAAD,CAAQ,CAChE,IAAA+V,OAAA6pB,MAAA,CAAkB5/B,CAAlB,CADgE,CAGpEo/B,EAAAxiC,UAAA8X,OAAA,CAAoDurB,QAAS,CAAC/iC,CAAD,CAAM,CAC/D,IAAA6Y,OAAAlV,MAAA,CAAkB3D,CAAlB,CACA,KAAAsJ,YAAA,EAF+D,CAInE44B,EAAAxiC,UAAAgY,UAAA,CAAuDsrB,QAAS,EAAG,CAC/D,IAAAnqB,OAAA+pB,UAAA,EACA,KAAAt5B,YAAA,EAF+D,CAInE,OAAO44B,EAlB+C,CAAlB,CAmBtCnhC,CAnBsC,CAtuHxC,CA0zHIkiC,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACv3B,CAAD,CAAYxJ,CAAZ,CAAoB,CACvC,IAAAwJ,UAAA,CAAiBA,CACjB,KAAAxJ,OAAA,CAAcA,CAFyB,CAI3C+gC,CAAAvjC,UAAA0J,KAAA;AAAgC85B,QAAS,CAACxgC,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI69B,EAAJ,CAAqBzgC,CAArB,CAAiC,IAAAgJ,UAAjC,CAAiD,IAAAxJ,OAAjD,CAAjB,CADmD,CAG9D,OAAO+gC,EARuB,CAAZ,EA1zHtB,CAo0HIE,GAAoB,QAAS,CAACrsB,CAAD,CAAS,CAEtCqsB,QAASA,EAAgB,CAACxiC,CAAD,CAAc+K,CAAd,CAAyBxJ,CAAzB,CAAiC,CAClDqD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAArD,OAAA,CAAeA,CACfqD,EAAA69B,UAAA,CAAkB,CAAA,CAClB79B,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAN+C,CAD1DnG,CAAA,CAAU+jC,CAAV,CAA4BrsB,CAA5B,CASAqsB,EAAAzjC,UAAA2jC,iBAAA,CAA8CC,QAAS,CAACxgC,CAAD,CAAQ,CACvD,IAAAsgC,UAAJ,CACI,IAAAziC,YAAAgD,MAAA,CAAuB,yCAAvB,CADJ,EAII,IAAAy/B,UACA,CADiB,CAAA,CACjB,CAAA,IAAAG,YAAA,CAAmBzgC,CALvB,CAD2D,CAS/DqgC,EAAAzjC,UAAA4X,MAAA,CAAmCksB,QAAS,CAAC1gC,CAAD,CAAQ,CAChD,IAAIqI,EAAQ,IAAAA,MAAA,EACR,KAAAO,UAAJ,CACI,IAAAouB,QAAA,CAAah3B,CAAb,CAAoBqI,CAApB,CADJ,CAII,IAAAk4B,iBAAA,CAAsBvgC,CAAtB,CAN4C,CASpDqgC,EAAAzjC,UAAAo6B,QAAA,CAAqC2J,QAAS,CAAC3gC,CAAD;AAAQqI,CAAR,CAAe,CACzD,GAAI,CACI,IAAAO,UAAA,CAAe5I,CAAf,CAAsBqI,CAAtB,CAA6B,IAAAjJ,OAA7B,CAAJ,EACI,IAAAmhC,iBAAA,CAAsBvgC,CAAtB,CAFJ,CAKJ,MAAO9C,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CAN6C,CAU7DmjC,EAAAzjC,UAAAgY,UAAA,CAAuCgsB,QAAS,EAAG,CAC/C,IAAI/iC,EAAc,IAAAA,YACD,EAAjB,CAAI,IAAAwK,MAAJ,EACIxK,CAAAyC,KAAA,CAAiB,IAAAggC,UAAA,CAAiB,IAAAG,YAAjB,CAAoC79B,IAAAA,EAArD,CACA,CAAA/E,CAAAiC,SAAA,EAFJ,EAKIjC,CAAAgD,MAAA,CAAkB,IAAI4K,EAAtB,CAP2C,CAUnD,OAAO40B,EAhD+B,CAAlB,CAiDtBpiC,CAjDsB,CAp0HxB,CA03HI4iC,GAAgB,QAAS,EAAG,CAC5BA,QAASA,EAAY,CAAClL,CAAD,CAAQ,CACzB,IAAAA,MAAA,CAAaA,CADY,CAG7BkL,CAAAjkC,UAAA0J,KAAA,CAA8Bw6B,QAAS,CAAClhC,CAAD,CAAaR,CAAb,CAAqB,CACxD,MAAOA,EAAAoD,UAAA,CAAiB,IAAIu+B,EAAJ,CAAmBnhC,CAAnB,CAA+B,IAAA+1B,MAA/B,CAAjB,CADiD,CAG5D,OAAOkL,EAPqB,CAAZ,EA13HpB,CAm4HIE,GAAkB,QAAS,CAAC/sB,CAAD,CAAS,CAEpC+sB,QAASA,EAAc,CAACljC,CAAD,CAAc83B,CAAd,CAAqB,CACpClzB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAkzB,MAAA,CAAcA,CACdlzB,EAAA0G,MAAA,CAAc,CACd,OAAO1G,EAJiC,CAD5CnG,CAAA,CAAUykC,CAAV,CAA0B/sB,CAA1B,CAOA+sB,EAAAnkC,UAAA4X,MAAA,CAAiCwsB,QAAS,CAAChkC,CAAD,CAAI,CACtC,EAAE,IAAAmM,MAAN;AAAmB,IAAAwsB,MAAnB,EACI,IAAA93B,YAAAyC,KAAA,CAAsBtD,CAAtB,CAFsC,CAK9C,OAAO+jC,EAb6B,CAAlB,CAcpB9iC,CAdoB,CAn4HtB,CAs5HIgjC,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAACC,CAAD,CAAa,CAClC,IAAAA,WAAA,CAAkBA,CAClB,IAAsB,CAAtB,CAAI,IAAAA,WAAJ,CACI,KAAM,KAAItc,CAAV,CAH8B,CAMtCqc,CAAArkC,UAAA0J,KAAA,CAAkC66B,QAAS,CAACvhC,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAwB,EAAxB,GAAI,IAAA8hC,WAAJ,CACW9hC,CAAAoD,UAAA,CAAiB,IAAIvE,CAAJ,CAAe2B,CAAf,CAAjB,CADX,CAIWR,CAAAoD,UAAA,CAAiB,IAAI4+B,EAAJ,CAAuBxhC,CAAvB,CAAmC,IAAAshC,WAAnC,CAAjB,CALiD,CAQhE,OAAOD,EAfyB,CAAZ,EAt5HxB,CAu6HIG,GAAsB,QAAS,CAACptB,CAAD,CAAS,CAExCotB,QAASA,EAAkB,CAACvjC,CAAD,CAAcqjC,CAAd,CAA0B,CAC7Cz+B,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAy+B,WAAA,CAAmBA,CACnBz+B,EAAA4+B,OAAA,CAAe,CACf5+B,EAAA6+B,MAAA,CAAkB77B,KAAJ,CAAUy7B,CAAV,CACd,OAAOz+B,EAL0C,CADrDnG,CAAA,CAAU8kC,CAAV,CAA8BptB,CAA9B,CAQAotB,EAAAxkC,UAAA4X,MAAA,CAAqC+sB,QAAS,CAACvhC,CAAD,CAAQ,CAClD,IAAIwhC,EAAY,IAAAN,WAAhB,CACI/3B,EAAQ,IAAAk4B,OAAA,EACZ,IAAIl4B,CAAJ,CAAYq4B,CAAZ,CACI,IAAAF,MAAA,CAAWn4B,CAAX,CAAA,CAAoBnJ,CADxB,KAGK,CACGyhC,IAAAA,EAAet4B,CAAfs4B,CAAuBD,CAAvBC,CACAjI,EAAO,IAAA8H,MADPG,CAEAC,EAAWlI,CAAA,CAAKiI,CAAL,CACfjI;CAAA,CAAKiI,CAAL,CAAA,CAAqBzhC,CACrB,KAAAnC,YAAAyC,KAAA,CAAsBohC,CAAtB,CALC,CAN6C,CActD,OAAON,EAvBiC,CAAlB,CAwBxBnjC,CAxBwB,CAv6H1B,CAo8HI0jC,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAAClF,CAAD,CAAW,CACjC,IAAAA,SAAA,CAAgBA,CADiB,CAGrCkF,CAAA/kC,UAAA0J,KAAA,CAAmCs7B,QAAS,CAAC/jC,CAAD,CAAcuB,CAAd,CAAsB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIq/B,EAAJ,CAAwBhkC,CAAxB,CAAqC,IAAA4+B,SAArC,CAAjB,CADuD,CAGlE,OAAOkF,EAP0B,CAAZ,EAp8HzB,CA68HIE,GAAuB,QAAS,CAAC7tB,CAAD,CAAS,CAEzC6tB,QAASA,EAAmB,CAAChkC,CAAD,CAAc4+B,CAAd,CAAwB,CAC5Ch6B,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAoD,SAAA,CAAiB,CAAA,CACjB,KAAIpC,EAAkB,IAAIC,CAAJ,CAAoBjB,CAApB,CAA2BG,IAAAA,EAA3B,CAAsCA,IAAAA,EAAtC,CACtBH,EAAApC,IAAA,CAAUoD,CAAV,CACAhB,EAAAklB,kBAAA,CAA0BlkB,CACtBkkB,EAAAA,CAAoBvkB,CAAA,CAAkBX,CAAlB,CAAyBg6B,CAAzB,CAAmC75B,IAAAA,EAAnC,CAA8CA,IAAAA,EAA9C,CAAyDa,CAAzD,CACpBkkB,EAAJ,GAA0BlkB,CAA1B,GACIhB,CAAApC,IAAA,CAAUsnB,CAAV,CACA,CAAAllB,CAAAklB,kBAAA,CAA0BA,CAF9B,CAIA,OAAOllB,EAXyC,CADpDnG,CAAA,CAAUulC,CAAV,CAA+B7tB,CAA/B,CAcA6tB,EAAAjlC,UAAA4X,MAAA,CAAsCstB,QAAS,CAAC9hC,CAAD,CAAQ,CAC/C,IAAA6F,SAAJ,EACImO,CAAApX,UAAA4X,MAAAlO,KAAA,CAA4B,IAA5B,CAAkCtG,CAAlC,CAF+C,CAKvD6hC,EAAAjlC,UAAA4Q,WAAA,CAA2Cu0B,QAAS,CAACx+B,CAAD,CAAa+hB,CAAb;AAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC3G,IAAAxI,SAAA,CAAgB,CAAA,CACZ,KAAA8hB,kBAAJ,EACI,IAAAA,kBAAAnhB,YAAA,EAHuG,CAM/Gq7B,EAAAjlC,UAAA8oB,eAAA,CAA+Csc,QAAS,EAAG,EAE3D,OAAOH,EA5BkC,CAAlB,CA6BzBzc,CA7ByB,CA78H3B,CA++HI6c,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACr5B,CAAD,CAAY,CAClC,IAAAA,UAAA,CAAiBA,CADiB,CAGtCq5B,CAAArlC,UAAA0J,KAAA,CAAmC47B,QAAS,CAACtiC,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI2/B,EAAJ,CAAwBviC,CAAxB,CAAoC,IAAAgJ,UAApC,CAAjB,CADsD,CAGjE,OAAOq5B,EAP0B,CAAZ,EA/+HzB,CAw/HIE,GAAuB,QAAS,CAACnuB,CAAD,CAAS,CAEzCmuB,QAASA,EAAmB,CAACtkC,CAAD,CAAc+K,CAAd,CAAyB,CAC7CnG,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAA2/B,SAAA,CAAiB,CAAA,CACjB3/B,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAL0C,CADrDnG,CAAA,CAAU6lC,CAAV,CAA+BnuB,CAA/B,CAQAmuB,EAAAvlC,UAAA4X,MAAA,CAAsC6tB,QAAS,CAACriC,CAAD,CAAQ,CACnD,IAAInC,EAAc,IAAAA,YACd,KAAAukC,SAAJ,EACI,IAAAE,iBAAA,CAAsBtiC,CAAtB,CAEC,KAAAoiC,SAAL,EACIvkC,CAAAyC,KAAA,CAAiBN,CAAjB,CAN+C,CASvDmiC,EAAAvlC,UAAA0lC,iBAAA;AAAiDC,QAAS,CAACviC,CAAD,CAAQ,CAC9D,GAAI,CAEA,IAAAoiC,SAAA,CAAgB,CADH9+B,CAAA,IAAAsF,UAAAtF,CAAetD,CAAfsD,CAAsB,IAAA+E,MAAA,EAAtB/E,CADb,CAIJ,MAAOpG,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CADQ,CALkD,CASlE,OAAOilC,EA3BkC,CAAlB,CA4BzBlkC,CA5ByB,CAx/H3B,CAqiIIukC,GAAyB,QAAS,CAACxuB,CAAD,CAAS,CAE3CwuB,QAASA,EAAqB,CAACpjC,CAAD,CAASqjC,CAAT,CAAoBjjC,CAApB,CAA+B,CACvC,IAAK,EAAvB,GAAIijC,CAAJ,GAA4BA,CAA5B,CAAwC,CAAxC,CACkB,KAAK,EAAvB,GAAIjjC,CAAJ,GAA4BA,CAA5B,CAAwC4jB,EAAxC,CACA,KAAI3gB,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAArD,OAAA,CAAeA,CACfqD,EAAAggC,UAAA,CAAkBA,CAClBhgC,EAAAjD,UAAA,CAAkBA,CAClB,IAAK,CAAAgI,CAAA,CAAUi7B,CAAV,CAAL,EAAyC,CAAzC,CAA6BA,CAA7B,CACIhgC,CAAAggC,UAAA,CAAkB,CAEjBjjC,EAAL,EAAgD,UAAhD,GAAkB,MAAOA,EAAAK,SAAzB,GACI4C,CAAAjD,UADJ,CACsB4jB,EADtB,CAGA,OAAO3gB,EAbkD,CAD7DnG,CAAA,CAAUkmC,CAAV,CAAiCxuB,CAAjC,CAgBAwuB,EAAA1lC,OAAA,CAA+B4lC,QAAS,CAACtjC,CAAD,CAAS6d,CAAT,CAAgBzd,CAAhB,CAA2B,CACjD,IAAK,EAAnB,GAAIyd,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACkB,KAAK,EAAvB,GAAIzd,CAAJ,GAA4BA,CAA5B,CAAwC4jB,EAAxC,CACA,OAAO,KAAIof,CAAJ,CAA0BpjC,CAA1B,CAAkC6d,CAAlC,CAAyCzd,CAAzC,CAHwD,CAKnEgjC,EAAA1hC,SAAA,CAAiC6hC,QAAS,CAAC1/B,CAAD,CAAM,CAE5C,MAAO,KAAA5C,IAAA,CADM4C,CAAA7D,OACGoD,UAAA,CADsBS,CAAArD,WACtB,CAAT,CAFqC,CAIhD4iC,EAAA5lC,UAAAsZ,WAAA;AAA6C0sB,QAAS,CAAChjC,CAAD,CAAa,CAI/D,MADgB,KAAAJ,UACTK,SAAA,CAAmB2iC,CAAA1hC,SAAnB,CAHK,IAAA2hC,UAGL,CAA0D,CAC7DrjC,OAHS,IAAAA,OAEoD,CAC7CQ,WAAYA,CADiC,CAA1D,CAJwD,CAQnE,OAAO4iC,EAlCoC,CAAlB,CAmC3B7iC,CAnC2B,CAriI7B,CAglIIkjC,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,CAACrjC,CAAD,CAAYyd,CAAZ,CAAmB,CAC3C,IAAAzd,UAAA,CAAiBA,CACjB,KAAAyd,MAAA,CAAaA,CAF8B,CAI/C4lB,CAAAjmC,UAAA0J,KAAA,CAAqCw8B,QAAS,CAACljC,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOoD,CAAA,IAAIggC,EAAJ,CAA0BpjC,CAA1B,CAAkC,IAAA6d,MAAlC,CAA8C,IAAAzd,UAA9C,CAAAgD,WAAA,CAAwE5C,CAAxE,CADwD,CAGnE,OAAOijC,EAR4B,CAAZ,EAhlI3B,CAimIIt0B,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACnN,CAAD,CAAU,CAChC,IAAAA,QAAA,CAAeA,CADiB,CAGpCmN,CAAA3R,UAAA0J,KAAA,CAAmCy8B,QAAS,CAACnjC,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIwgC,EAAJ,CAAwBpjC,CAAxB,CAAoC,IAAAwB,QAApC,CAAjB,CADsD,CAGjE,OAAOmN,EAP0B,CAAZ,EAjmIzB,CA0mIIy0B,GAAuB,QAAS,CAAChvB,CAAD,CAAS,CAEzCgvB,QAASA,EAAmB,CAACnlC,CAAD,CAAcuD,CAAd,CAAuB,CAC3CqB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAArB,QAAA,CAAgBA,CAChBqB,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EAJwC,CADnDnG,CAAA,CAAU0mC,CAAV,CAA+BhvB,CAA/B,CAOAgvB;CAAApmC,UAAA4X,MAAA,CAAsCyuB,QAAS,CAACjjC,CAAD,CAAQ,CACnD,IAAIsD,CAAJ,CACI+E,EAAQ,IAAAA,MAAA,EACZ,IAAI,CACA/E,CAAA,CAAS,IAAAlC,QAAA,CAAapB,CAAb,CAAoBqI,CAApB,CADT,CAGJ,MAAOxH,CAAP,CAAc,CACV,IAAAhD,YAAAgD,MAAA,CAAuBA,CAAvB,CACA,OAFU,CAId,IAAA2mB,UAAA,CAAelkB,CAAf,CAAuBtD,CAAvB,CAA8BqI,CAA9B,CAVmD,CAYvD26B,EAAApmC,UAAA4qB,UAAA,CAA0C0b,QAAS,CAAC5/B,CAAD,CAAStD,CAAT,CAAgBqI,CAAhB,CAAuB,CACtE,IAAIsf,EAAoB,IAAAA,kBACpBA,EAAJ,EACIA,CAAAnhB,YAAA,EAEA/C,EAAAA,CAAkB,IAAIC,CAAJ,CAAoB,IAApB,CAA0B1D,CAA1B,CAAiCqI,CAAjC,CAClBxK,EAAAA,CAAc,IAAAA,YAClBA,EAAAwC,IAAA,CAAgBoD,CAAhB,CACA,KAAAkkB,kBAAA,CAAyBvkB,CAAA,CAAkB,IAAlB,CAAwBE,CAAxB,CAAgCV,IAAAA,EAAhC,CAA2CA,IAAAA,EAA3C,CAAsDa,CAAtD,CACrB,KAAAkkB,kBAAJ,GAA+BlkB,CAA/B,EACI5F,CAAAwC,IAAA,CAAgB,IAAAsnB,kBAAhB,CAVkE,CAa1Eqb,EAAApmC,UAAAgY,UAAA,CAA0CuuB,QAAS,EAAG,CAClD,IAAIxb,EAAoB,IAAAA,kBACnBA,EAAL,EAA0B3pB,CAAA2pB,CAAA3pB,OAA1B,EACIgW,CAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CAEJ,KAAAE,YAAA,EALkD,CAOtDw8B;CAAApmC,UAAAsW,aAAA,CAA6CkwB,QAAS,EAAG,CACrD,IAAAzb,kBAAA,CAAyB,IAD4B,CAGzDqb,EAAApmC,UAAA8oB,eAAA,CAA+C2d,QAAS,CAACh1B,CAAD,CAAW,CAC7C,IAAAxQ,YAClBmS,OAAA,CAAmB3B,CAAnB,CACA,KAAAsZ,kBAAA,CAAyB,IACrB,KAAA5pB,UAAJ,EACIiW,CAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CAL2D,CAQnE08B,EAAApmC,UAAA4Q,WAAA,CAA2C81B,QAAS,CAAC//B,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC3G,IAAAxQ,YAAAyC,KAAA,CAAsBglB,CAAtB,CAD2G,CAG/G,OAAO0d,EAtDkC,CAAlB,CAuDzB5d,CAvDyB,CA1mI3B,CA8qIIme,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAAC9G,CAAD,CAAW,CACjC,IAAAA,SAAA,CAAgBA,CADiB,CAGrC8G,CAAA3mC,UAAA0J,KAAA,CAAmCk9B,QAAS,CAAC5jC,CAAD,CAAaR,CAAb,CAAqB,CACzDqkC,CAAAA,CAAsB,IAAIC,EAAJ,CAAwB9jC,CAAxB,CAC1B,KAAIwzB,EAAuBhwB,CAAA,CAAkBqgC,CAAlB,CAAuC,IAAAhH,SAAvC,CAC3B,OAAIrJ,EAAJ,EAA6BkN,CAAAmD,CAAAnD,UAA7B,EACImD,CAAApjC,IAAA,CAAwB+yB,CAAxB,CACO,CAAAh0B,CAAAoD,UAAA,CAAiBihC,CAAjB,CAFX,EAIOA,CAPsD,CASjE,OAAOF,EAb0B,CAAZ,EA9qIzB,CA6rIIG,GAAuB,QAAS,CAAC1vB,CAAD,CAAS,CAEzC0vB,QAASA,EAAmB,CAAC7lC,CAAD,CAAc,CAClC4E,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ;AAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA69B,UAAA,CAAkB,CAAA,CAClB,OAAO79B,EAH+B,CAD1CnG,CAAA,CAAUonC,CAAV,CAA+B1vB,CAA/B,CAMA0vB,EAAA9mC,UAAA4Q,WAAA,CAA2Cm2B,QAAS,CAACpgC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC3G,IAAAiyB,UAAA,CAAiB,CAAA,CACjB,KAAAxgC,SAAA,EAF2G,CAI/G4jC,EAAA9mC,UAAA8oB,eAAA,CAA+Cke,QAAS,EAAG,EAE3D,OAAOF,EAbkC,CAAlB,CAczBte,CAdyB,CA7rI3B,CAmtIIye,GAAqB,QAAS,EAAG,CACjCA,QAASA,EAAiB,CAACj7B,CAAD,CAAYk7B,CAAZ,CAAuB,CAC7C,IAAAl7B,UAAA,CAAiBA,CACjB,KAAAk7B,UAAA,CAAiBA,CAF4B,CAIjDD,CAAAjnC,UAAA0J,KAAA,CAAmCy9B,QAAS,CAACnkC,CAAD,CAAaR,CAAb,CAAqB,CAC7D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIwhC,EAAJ,CAAwBpkC,CAAxB,CAAoC,IAAAgJ,UAApC,CAAoD,IAAAk7B,UAApD,CAAjB,CADsD,CAGjE,OAAOD,EAR0B,CAAZ,EAntIzB,CA6tIIG,GAAuB,QAAS,CAAChwB,CAAD,CAAS,CAEzCgwB,QAASA,EAAmB,CAACnmC,CAAD,CAAc+K,CAAd,CAAyBk7B,CAAzB,CAAoC,CACxDrhC,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmG,UAAA,CAAkBA,CAClBnG,EAAAqhC,UAAA,CAAkBA,CAClBrhC,EAAA4F,MAAA,CAAc,CACd,OAAO5F,EALqD,CADhEnG,CAAA,CAAU0nC,CAAV,CAA+BhwB,CAA/B,CAQAgwB,EAAApnC,UAAA4X,MAAA,CAAsCyvB,QAAS,CAACjkC,CAAD,CAAQ,CACnD,IAAInC,EAAc,IAAAA,YAAlB;AACIyF,CACJ,IAAI,CACAA,CAAA,CAAS,IAAAsF,UAAA,CAAe5I,CAAf,CAAsB,IAAAqI,MAAA,EAAtB,CADT,CAGJ,MAAOnL,CAAP,CAAY,CACRW,CAAAgD,MAAA,CAAkB3D,CAAlB,CACA,OAFQ,CAIZ,IAAAgnC,eAAA,CAAoBlkC,CAApB,CAA2BsD,CAA3B,CAVmD,CAYvD0gC,EAAApnC,UAAAsnC,eAAA,CAA+CC,QAAS,CAACnkC,CAAD,CAAQokC,CAAR,CAAyB,CAC7E,IAAIvmC,EAAc,IAAAA,YACNumC,EAAZ,CACIvmC,CAAAyC,KAAA,CAAiBN,CAAjB,CADJ,EAIQ,IAAA8jC,UAGJ,EAFIjmC,CAAAyC,KAAA,CAAiBN,CAAjB,CAEJ,CAAAnC,CAAAiC,SAAA,EAPJ,CAF6E,CAYjF,OAAOkkC,EAjCkC,CAAlB,CAkCzB/lC,CAlCyB,CA7tI3B,CAswIIomC,GAAc,QAAS,EAAG,CAC1BA,QAASA,EAAU,CAACxkB,CAAD,CAAiBhf,CAAjB,CAAwBf,CAAxB,CAAkC,CACjD,IAAA+f,eAAA,CAAsBA,CACtB,KAAAhf,MAAA,CAAaA,CACb,KAAAf,SAAA,CAAgBA,CAHiC,CAKrDukC,CAAAznC,UAAA0J,KAAA,CAA4Bg+B,QAAS,CAAC1kC,CAAD,CAAaR,CAAb,CAAqB,CACtD,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+hC,EAAJ,CAAkB3kC,CAAlB,CAA8B,IAAAigB,eAA9B,CAAmD,IAAAhf,MAAnD,CAA+D,IAAAf,SAA/D,CAAjB,CAD+C,CAG1D,OAAOukC,EATmB,CAAZ,EAtwIlB,CAixIIE,GAAiB,QAAS,CAACvwB,CAAD,CAAS,CAEnCuwB,QAASA,EAAa,CAAC1mC,CAAD,CAAcuX,CAAd,CAA8BvU,CAA9B,CAAqCf,CAArC,CAA+C,CAC7D2C,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA+hC,SAAA,CAAiBtmC,CACjBuE,EAAAgiC,UAAA;AAAkBvmC,CAClBuE,EAAAiiC,aAAA,CAAqBxmC,CACrBuE,EAAAgiC,UAAA,CAAkB5jC,CAAlB,EAA2B3C,CAC3BuE,EAAAiiC,aAAA,CAAqB5kC,CAArB,EAAiC5B,CAC7BnB,EAAA,CAAWqY,CAAX,CAAJ,EACI3S,CAAA6S,SACA,CADiB7S,CACjB,CAAAA,CAAA+hC,SAAA,CAAiBpvB,CAFrB,EAISA,CAJT,GAKI3S,CAAA6S,SAGA,CAHiBF,CAGjB,CAFA3S,CAAA+hC,SAEA,CAFiBpvB,CAAA9U,KAEjB,EAFwCpC,CAExC,CADAuE,CAAAgiC,UACA,CADkBrvB,CAAAvU,MAClB,EAD0C3C,CAC1C,CAAAuE,CAAAiiC,aAAA,CAAqBtvB,CAAAtV,SAArB,EAAgD5B,CARpD,CAUA,OAAOuE,EAjB0D,CADrEnG,CAAA,CAAUioC,CAAV,CAAyBvwB,CAAzB,CAoBAuwB,EAAA3nC,UAAA4X,MAAA,CAAgCmwB,QAAS,CAAC3kC,CAAD,CAAQ,CAC7C,GAAI,CACA,IAAAwkC,SAAAl+B,KAAA,CAAmB,IAAAgP,SAAnB,CAAkCtV,CAAlC,CADA,CAGJ,MAAO9C,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAW,YAAAyC,KAAA,CAAsBN,CAAtB,CAR6C,CAUjDukC,EAAA3nC,UAAA8X,OAAA,CAAiCkwB,QAAS,CAAC1nC,CAAD,CAAM,CAC5C,GAAI,CACA,IAAAunC,UAAAn+B,KAAA,CAAoB,IAAAgP,SAApB,CAAmCpY,CAAnC,CADA,CAGJ,MAAOA,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CAR4C,CAUhDqnC,EAAA3nC,UAAAgY,UAAA,CAAoCiwB,QAAS,EAAG,CAC5C,GAAI,CACA,IAAAH,aAAAp+B,KAAA,CAAuB,IAAAgP,SAAvB,CADA,CAGJ,MAAOpY,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA;MAFQ,CAIZ,MAAO,KAAAW,YAAAiC,SAAA,EARqC,CAUhD,OAAOykC,EAnD4B,CAAlB,CAoDnBtmC,CApDmB,CAjxIrB,CAu0II6mC,GAAwB,CACxBC,QAAS,CAAA,CADe,CAExBC,SAAU,CAAA,CAFc,CAv0I5B,CA+0IIC,GAAoB,QAAS,EAAG,CAChCA,QAASA,EAAgB,CAACn7B,CAAD,CAAmBi7B,CAAnB,CAA4BC,CAA5B,CAAsC,CAC3D,IAAAl7B,iBAAA,CAAwBA,CACxB,KAAAi7B,QAAA,CAAeA,CACf,KAAAC,SAAA,CAAgBA,CAH2C,CAK/DC,CAAAroC,UAAA0J,KAAA,CAAkC4+B,QAAS,CAACtlC,CAAD,CAAaR,CAAb,CAAqB,CAC5D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI2iC,EAAJ,CAAuBvlC,CAAvB,CAAmC,IAAAkK,iBAAnC,CAA0D,IAAAi7B,QAA1D,CAAwE,IAAAC,SAAxE,CAAjB,CADqD,CAGhE,OAAOC,EATyB,CAAZ,EA/0IxB,CA01IIE,GAAsB,QAAS,CAACnxB,CAAD,CAAS,CAExCmxB,QAASA,EAAkB,CAACtnC,CAAD,CAAciM,CAAd,CAAgCs7B,CAAhC,CAA0CC,CAA1C,CAAqD,CAC5E,IAAI5iC,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAAqH,iBAAA,CAAyBA,CACzBrH,EAAA2iC,SAAA,CAAiBA,CACjB3iC,EAAA4iC,UAAA,CAAkBA,CAClB5iC,EAAA6iC,UAAA,CAAkB,CAAA,CAClB,OAAO7iC,EAPqE,CADhFnG,CAAA,CAAU6oC,CAAV,CAA8BnxB,CAA9B,CAUAmxB,EAAAvoC,UAAA4X,MAAA,CAAqC+wB,QAAS,CAACvlC,CAAD,CAAQ,CAClD,IAAAslC,UAAA,CAAiB,CAAA,CACjB,KAAAE,WAAA;AAAkBxlC,CACb,KAAAylC,WAAL,GACQ,IAAAL,SAAJ,CACI,IAAAM,KAAA,EADJ,CAII,IAAAC,SAAA,CAAc3lC,CAAd,CALR,CAHkD,CAYtDmlC,EAAAvoC,UAAA8oC,KAAA,CAAoCE,QAAS,EAAG,CAC5C,IAAyCJ,EAAhC1nC,IAA6C0nC,WAA7C1nC,KAAkBwnC,UAC3B,GACI,IAAAznC,YAAAyC,KAAA,CAAsBklC,CAAtB,CACA,CAAA,IAAAG,SAAA,CAAcH,CAAd,CAFJ,CAIA,KAAAF,UAAA,CAAiB,CAAA,CACjB,KAAAE,WAAA,CAAkB,IAP0B,CAShDL,EAAAvoC,UAAA+oC,SAAA,CAAwCE,QAAS,CAAC7lC,CAAD,CAAQ,CAErD,CADIob,CACJ,CADe,IAAA0qB,oBAAA,CAAyB9lC,CAAzB,CACf,GACI,IAAAK,IAAA,CAAS,IAAAolC,WAAT,CAA2BriC,CAAA,CAAkB,IAAlB,CAAwBgY,CAAxB,CAA3B,CAHiD,CAMzD+pB,EAAAvoC,UAAAkpC,oBAAA,CAAmDC,QAAS,CAAC/lC,CAAD,CAAQ,CAChE,GAAI,CACA,MAAO,KAAA8J,iBAAA,CAAsB9J,CAAtB,CADP,CAGJ,MAAO9C,CAAP,CAAY,CAER,MADA,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACO,CAAA,IAFC,CAJoD,CASpEioC,EAAAvoC,UAAAopC,eAAA,CAA8CC,QAAS,EAAG,CAAA,IACvCR,EAAN3nC,IAAmB2nC,WAD0B;AACXJ,EAAlCvnC,IAA8CunC,UACnDI,EAAJ,EACIA,CAAAj/B,YAAA,EAEJ,KAAAi/B,WAAA,CAAkB,IACdJ,EAAJ,EACI,IAAAK,KAAA,EAPkD,CAU1DP,EAAAvoC,UAAA4Q,WAAA,CAA0C04B,QAAS,CAAC3iC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC1G,IAAA23B,eAAA,EAD0G,CAG9Gb,EAAAvoC,UAAA8oB,eAAA,CAA8CygB,QAAS,EAAG,CACtD,IAAAH,eAAA,EADsD,CAG1D,OAAOb,EA/DiC,CAAlB,CAgExB/f,CAhEwB,CA11I1B,CAi6IIghB,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,CAAChrB,CAAD,CAAW5b,CAAX,CAAsBulC,CAAtB,CAA+BC,CAA/B,CAAyC,CAClE,IAAA5pB,SAAA,CAAgBA,CAChB,KAAA5b,UAAA,CAAiBA,CACjB,KAAAulC,QAAA,CAAeA,CACf,KAAAC,SAAA,CAAgBA,CAJkD,CAMtEoB,CAAAxpC,UAAA0J,KAAA,CAAsC+/B,QAAS,CAACzmC,CAAD,CAAaR,CAAb,CAAqB,CAChE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI8jC,EAAJ,CAA2B1mC,CAA3B,CAAuC,IAAAwb,SAAvC,CAAsD,IAAA5b,UAAtD,CAAsE,IAAAulC,QAAtE,CAAoF,IAAAC,SAApF,CAAjB,CADyD,CAGpE,OAAOoB,EAV6B,CAAZ,EAj6I5B,CA66IIE,GAA0B,QAAS,CAACtyB,CAAD,CAAS,CAE5CsyB,QAASA,EAAsB,CAACzoC,CAAD,CAAcud,CAAd,CAAwB5b,CAAxB,CAAmCulC,CAAnC,CAA4CC,CAA5C,CAAsD,CAC7EviC,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA;CAAA2Y,SAAA,CAAiBA,CACjB3Y,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAsiC,QAAA,CAAgBA,CAChBtiC,EAAAuiC,SAAA,CAAiBA,CACjBviC,EAAA8jC,kBAAA,CAA0B,CAAA,CAC1B9jC,EAAA+jC,eAAA,CAAuB,IACvB,OAAO/jC,EAR0E,CADrFnG,CAAA,CAAUgqC,CAAV,CAAkCtyB,CAAlC,CAWAsyB,EAAA1pC,UAAA4X,MAAA,CAAyCiyB,QAAS,CAACzmC,CAAD,CAAQ,CAClD,IAAAyqB,UAAJ,CACQ,IAAAua,SADR,GAEQ,IAAAwB,eACA,CADsBxmC,CACtB,CAAA,IAAAumC,kBAAA,CAAyB,CAAA,CAHjC,GAOI,IAAAlmC,IAAA,CAAS,IAAAoqB,UAAT,CAA0B,IAAAjrB,UAAAK,SAAA,CAAwB2O,EAAxB,CAAwC,IAAA4M,SAAxC,CAAuD,CAAExb,WAAY,IAAd,CAAvD,CAA1B,CACA,CAAI,IAAAmlC,QAAJ,CACI,IAAAlnC,YAAAyC,KAAA,CAAsBN,CAAtB,CADJ,CAGS,IAAAglC,SAHT,GAII,IAAAwB,eACA,CADsBxmC,CACtB,CAAA,IAAAumC,kBAAA,CAAyB,CAAA,CAL7B,CARJ,CADsD,CAkB1DD,EAAA1pC,UAAAgY,UAAA,CAA6C8xB,QAAS,EAAG,CACjD,IAAAH,kBAAJ,EACI,IAAA1oC,YAAAyC,KAAA,CAAsB,IAAAkmC,eAAtB,CACA;IAAA3oC,YAAAiC,SAAA,EAHiD,CASzDwmC,EAAA1pC,UAAA6R,cAAA,CAAiDk4B,QAAS,EAAG,CACzD,IAAIlc,EAAY,IAAAA,UACZA,EAAJ,GACQ,IAAAua,SAOJ,EAPqB,IAAAuB,kBAOrB,GANI,IAAA1oC,YAAAyC,KAAA,CAAsB,IAAAkmC,eAAtB,CAEA,CADA,IAAAA,eACA,CADsB,IACtB,CAAA,IAAAD,kBAAA,CAAyB,CAAA,CAI7B,EAFA9b,CAAAjkB,YAAA,EAEA,CADA,IAAAwJ,OAAA,CAAYya,CAAZ,CACA,CAAA,IAAAA,UAAA,CAAiB,IARrB,CAFyD,CAa7D,OAAO6b,EApDqC,CAAlB,CAqD5BroC,CArD4B,CA76I9B,CAo/II2oC,GAAgB,QAAS,EAAG,CAK5B,MAJAA,SAAqB,CAAC5mC,CAAD,CAAQ6mC,CAAR,CAAkB,CACnC,IAAA7mC,MAAA,CAAaA,CACb,KAAA6mC,SAAA,CAAgBA,CAFmB,CADX,CAAZ,EAp/IpB,CAogJI33B,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,CAACH,CAAD,CAAUH,CAAV,CAA2BD,CAA3B,CAA2CnP,CAA3C,CAAsD,CAC9E,IAAAuP,QAAA,CAAeA,CACf,KAAAH,gBAAA,CAAuBA,CACvB,KAAAD,eAAA,CAAsBA,CACtB,KAAAnP,UAAA,CAAiBA,CAJ6D,CAMlF0P,CAAAtS,UAAA0J,KAAA,CAAqCwgC,QAAS,CAAClnC,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIukC,EAAJ,CAA0BnnC,CAA1B;AAAsC,IAAAgP,gBAAtC,CAA4D,IAAAG,QAA5D,CAA0E,IAAAJ,eAA1E,CAA+F,IAAAnP,UAA/F,CAAjB,CADwD,CAGnE,OAAO0P,EAV4B,CAAZ,EApgJ3B,CAghJI63B,GAAyB,QAAS,CAAC/yB,CAAD,CAAS,CAE3C+yB,QAASA,EAAqB,CAAClpC,CAAD,CAAc+Q,CAAd,CAA+BG,CAA/B,CAAwCJ,CAAxC,CAAwDnP,CAAxD,CAAmE,CACzFiD,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAmM,gBAAA,CAAwBA,CACxBnM,EAAAsM,QAAA,CAAgBA,CAChBtM,EAAAkM,eAAA,CAAuBA,CACvBlM,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAiI,OAAA,CAAe,IACfjI,EAAAukC,gBAAA,EACA,OAAOvkC,EARsF,CADjGnG,CAAA,CAAUyqC,CAAV,CAAiC/yB,CAAjC,CAWA+yB,EAAAE,gBAAA,CAAwCC,QAAS,CAACtnC,CAAD,CAAa,CAC1D,IAAI+O,EAAiB/O,CAAA+O,eACrB/O,EAAAqV,uBAAA,EACArV,EAAAS,IAAA,CAAe+C,CAAA,CAAkBxD,CAAlB,CAA8B+O,CAA9B,CAAf,CAH0D,CAK9Do4B,EAAAnqC,UAAAoqC,gBAAA,CAAkDG,QAAS,EAAG,CAC1D,IAAIz8B,EAAS,IAAAA,OACTA,EAAJ,CACI,IAAAA,OADJ,CACkBA,CAAA7K,SAAA,CAAgB,IAAhB,CAAsB,IAAAkP,QAAtB,CADlB,CAII,IAAA1O,IAAA,CAAS,IAAAqK,OAAT,CAAuB,IAAAlL,UAAAK,SAAA,CAAwBknC,CAAAE,gBAAxB;AAA+D,IAAAl4B,QAA/D,CAA6E,IAA7E,CAAvB,CANsD,CAS9Dg4B,EAAAnqC,UAAA4X,MAAA,CAAwC4yB,QAAS,CAACpnC,CAAD,CAAQ,CAChD,IAAA4O,gBAAL,EACI,IAAAo4B,gBAAA,EAEJhzB,EAAApX,UAAA4X,MAAAlO,KAAA,CAA4B,IAA5B,CAAkCtG,CAAlC,CAJqD,CAMzD+mC,EAAAnqC,UAAAsW,aAAA,CAA+Cm0B,QAAS,EAAG,CAGvD,IAAA14B,eAAA,CADA,IAAAnP,UACA,CAFA,IAAAkL,OAEA,CAFc,IADyC,CAK3D,OAAOq8B,EArCoC,CAAlB,CAsC3B3hB,CAtC2B,CAhhJ7B,CAikJIkiB,GAAa,QAAS,EAAG,CAKzB,MAJAA,SAAkB,CAACtnC,CAAD,CAAQunC,CAAR,CAAmB,CACjC,IAAAvnC,MAAA,CAAaA,CACb,KAAAunC,UAAA,CAAiBA,CAFgB,CADZ,CAAZ,EAjkJjB,CAylJIC,GAAkB,QAAS,EAAG,CAC9BA,QAASA,EAAc,CAACC,CAAD,CAAmB,CACtC,IAAAA,iBAAA,CAAwBA,CADc,CAG1CD,CAAA5qC,UAAA0J,KAAA,CAAgCohC,QAAS,CAAC9nC,CAAD,CAAaR,CAAb,CAAqB,CACtDuoC,CAAAA,CAAmB,IAAIC,EAAJ,CAAqBhoC,CAArB,CACnBioC,EAAAA,CAAqBzoC,CAAAoD,UAAA,CAAiBmlC,CAAjB,CACpBE,EAAA7pC,OAAL,EACI2pC,CAAAtnC,IAAA,CAAqB+C,CAAA,CAAkBukC,CAAlB,CAAoC,IAAAF,iBAApC,CAArB,CAEJ,OAAOI,EANmD,CAQ9D,OAAOL,EAZuB,CAAZ,EAzlJtB,CAumJII,GAAoB,QAAS,CAAC5zB,CAAD,CAAS,CAEtC4zB,QAASA,EAAgB,CAAC/pC,CAAD,CAAc,CACnC,IAAI4E;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAgN,OAAA,CAAe,IAAI/B,CACnB7P,EAAAyC,KAAA,CAAiBmC,CAAAgN,OAAjB,CACA,OAAOhN,EAJ4B,CADvCnG,CAAA,CAAUsrC,CAAV,CAA4B5zB,CAA5B,CAOA4zB,EAAAhrC,UAAA4Q,WAAA,CAAwCs6B,QAAS,CAACvkC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACxG,IAAAsB,WAAA,EADwG,CAG5Gi4B,EAAAhrC,UAAA4oB,YAAA,CAAyCuiB,QAAS,CAAClnC,CAAD,CAAQwN,CAAR,CAAkB,CAChE,IAAAqG,OAAA,CAAY7T,CAAZ,CADgE,CAGpE+mC,EAAAhrC,UAAA8oB,eAAA,CAA4CsiB,QAAS,CAAC35B,CAAD,CAAW,CAC5D,IAAAuG,UAAA,EAD4D,CAGhEgzB,EAAAhrC,UAAA4X,MAAA,CAAmCyzB,QAAS,CAACjoC,CAAD,CAAQ,CAChD,IAAAyP,OAAAnP,KAAA,CAAiBN,CAAjB,CADgD,CAGpD4nC,EAAAhrC,UAAA8X,OAAA,CAAoCwzB,QAAS,CAAChrC,CAAD,CAAM,CAC/C,IAAAuS,OAAA5O,MAAA,CAAkB3D,CAAlB,CACA,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CAF+C,CAInD0qC,EAAAhrC,UAAAgY,UAAA,CAAuCuzB,QAAS,EAAG,CAC/C,IAAA14B,OAAA3P,SAAA,EACA,KAAAjC,YAAAiC,SAAA,EAF+C,CAInD8nC,EAAAhrC,UAAAsW,aAAA,CAA0Ck1B,QAAS,EAAG,CAClD,IAAA34B,OAAA;AAAc,IADoC,CAGtDm4B,EAAAhrC,UAAA+S,WAAA,CAAwC04B,QAAS,EAAG,CAChD,IAAIC,EAAa,IAAA74B,OACb64B,EAAJ,EACIA,CAAAxoC,SAAA,EAEAjC,KAAAA,EAAc,IAAAA,YAAdA,CACA0qC,EAAY,IAAA94B,OAAZ84B,CAA0B,IAAI76B,CAClC7P,EAAAyC,KAAA,CAAiBioC,CAAjB,CAPgD,CASpD,OAAOX,EAxC+B,CAAlB,CAyCtBxiB,CAzCsB,CAvmJxB,CAwpJIojB,GAAuB,QAAS,EAAG,CACnCA,QAASA,EAAmB,CAACC,CAAD,CAAaC,CAAb,CAA+B,CACvD,IAAAD,WAAA,CAAkBA,CAClB,KAAAC,iBAAA,CAAwBA,CAF+B,CAI3DF,CAAA5rC,UAAA0J,KAAA,CAAqCqiC,QAAS,CAAC/oC,CAAD,CAAaR,CAAb,CAAqB,CAC/D,MAAOA,EAAAoD,UAAA,CAAiB,IAAIomC,EAAJ,CAA0BhpC,CAA1B,CAAsC,IAAA6oC,WAAtC,CAAuD,IAAAC,iBAAvD,CAAjB,CADwD,CAGnE,OAAOF,EAR4B,CAAZ,EAxpJ3B,CAkqJII,GAAyB,QAAS,CAAC50B,CAAD,CAAS,CAE3C40B,QAASA,EAAqB,CAAC/qC,CAAD,CAAc4qC,CAAd,CAA0BC,CAA1B,CAA4C,CACtE,IAAIjmC,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAAgmC,WAAA,CAAmBA,CACnBhmC,EAAAimC,iBAAA,CAAyBA,CACzBjmC,EAAAomC,QAAA,CAAgB,CAAC,IAAIn7B,CAAL,CAChBjL,EAAA0G,MAAA,CAAc,CACdtL,EAAAyC,KAAA,CAAiBmC,CAAAomC,QAAA,CAAc,CAAd,CAAjB,CACA,OAAOpmC,EAR+D,CAD1EnG,CAAA,CAAUssC,CAAV,CAAiC50B,CAAjC,CAWA40B;CAAAhsC,UAAA4X,MAAA,CAAwCs0B,QAAS,CAAC9oC,CAAD,CAAQ,CAMrD,IALA,IAAI0oC,EAA4C,CAAzB,CAAC,IAAAA,iBAAD,CAA8B,IAAAA,iBAA9B,CAAsD,IAAAD,WAA7E,CACI5qC,EAAc,IAAAA,YADlB,CAEI4qC,EAAa,IAAAA,WAFjB,CAGII,EAAU,IAAAA,QAHd,CAIItjC,EAAMsjC,CAAAtqC,OAJV,CAKS6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,EAA4BvH,CAAA,IAAAA,OAA5B,CAAyCoC,CAAA,EAAzC,CACIyoC,CAAA,CAAQzoC,CAAR,CAAAE,KAAA,CAAgBN,CAAhB,CAEA+oC,EAAAA,CAAI,IAAA5/B,MAAJ4/B,CAAiBN,CAAjBM,CAA8B,CACzB,EAAT,EAAIA,CAAJ,EAAuC,CAAvC,GAAcA,CAAd,CAAkBL,CAAlB,EAA6C1qC,CAAA,IAAAA,OAA7C,EACI6qC,CAAA/lC,MAAA,EAAAhD,SAAA,EAEoC,EAAxC,GAAI,EAAE,IAAAqJ,MAAN,CAAmBu/B,CAAnB,EAA8C,IAAA1qC,OAA9C,GACQgrC,CAEJ,CAFe,IAAIt7B,CAEnB,CADAm7B,CAAAv5B,KAAA,CAAa05B,CAAb,CACA,CAAAnrC,CAAAyC,KAAA,CAAiB0oC,CAAjB,CAHJ,CAbqD,CAmBzDJ,EAAAhsC,UAAA8X,OAAA,CAAyCu0B,QAAS,CAAC/rC,CAAD,CAAM,CACpD,IAAI2rC,EAAU,IAAAA,QACd,IAAIA,CAAJ,CACI,IAAA,CAAwB,CAAxB,CAAOA,CAAAtqC,OAAP,EAA8BP,CAAA,IAAAA,OAA9B,CAAA,CACI6qC,CAAA/lC,MAAA,EAAAjC,MAAA,CAAsB3D,CAAtB,CAGR,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CAPoD,CASxD0rC,EAAAhsC,UAAAgY,UAAA,CAA4Cs0B,QAAS,EAAG,CACpD,IAAIL;AAAU,IAAAA,QACd,IAAIA,CAAJ,CACI,IAAA,CAAwB,CAAxB,CAAOA,CAAAtqC,OAAP,EAA8BP,CAAA,IAAAA,OAA9B,CAAA,CACI6qC,CAAA/lC,MAAA,EAAAhD,SAAA,EAGR,KAAAjC,YAAAiC,SAAA,EAPoD,CASxD8oC,EAAAhsC,UAAAsW,aAAA,CAA+Ci2B,QAAS,EAAG,CACvD,IAAAhgC,MAAA,CAAa,CACb,KAAA0/B,QAAA,CAAe,IAFwC,CAI3D,OAAOD,EArDoC,CAAlB,CAsD3B3qC,CAtD2B,CAlqJ7B,CAivJImrC,GAAsB,QAAS,EAAG,CAClCA,QAASA,EAAkB,CAAC55B,CAAD,CAAiBK,CAAjB,CAAyCw5B,CAAzC,CAAwD7pC,CAAxD,CAAmE,CAC1F,IAAAgQ,eAAA,CAAsBA,CACtB,KAAAK,uBAAA,CAA8BA,CAC9B,KAAAw5B,cAAA,CAAqBA,CACrB,KAAA7pC,UAAA,CAAiBA,CAJyE,CAM9F4pC,CAAAxsC,UAAA0J,KAAA,CAAoCgjC,QAAS,CAAC1pC,CAAD,CAAaR,CAAb,CAAqB,CAC9D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI+mC,EAAJ,CAAyB3pC,CAAzB,CAAqC,IAAA4P,eAArC,CAA0D,IAAAK,uBAA1D,CAAuF,IAAAw5B,cAAvF,CAA2G,IAAA7pC,UAA3G,CAAjB,CADuD,CAGlE,OAAO4pC,EAV2B,CAAZ,EAjvJ1B,CA6vJII,GAAkB,QAAS,CAACx1B,CAAD,CAAS,CAEpCw1B,QAASA,EAAc,EAAG,CACtB,IAAI/mC,EAAmB,IAAnBA;AAAQuR,CAARvR,EAA2BuR,CAAApS,MAAA,CAAa,IAAb,CAAmBtD,SAAnB,CAA3BmE,EAA4D,IAChEA,EAAAgnC,sBAAA,CAA8B,CAC9B,OAAOhnC,EAHe,CAD1BnG,CAAA,CAAUktC,CAAV,CAA0Bx1B,CAA1B,CAMAw1B,EAAA5sC,UAAA0D,KAAA,CAAgCopC,QAAS,CAAC1pC,CAAD,CAAQ,CAC7C,IAAAypC,sBAAA,EACAz1B,EAAApX,UAAA0D,KAAAgG,KAAA,CAA2B,IAA3B,CAAiCtG,CAAjC,CAF6C,CAIjDnD,OAAAyf,eAAA,CAAsBktB,CAAA5sC,UAAtB,CAAgD,sBAAhD,CAAwE,CACpEme,IAAKA,QAAS,EAAG,CACb,MAAO,KAAA0uB,sBADM,CADmD,CAIpEjtB,WAAY,CAAA,CAJwD,CAKpEC,aAAc,CAAA,CALsD,CAAxE,CAOA,OAAO+sB,EAlB6B,CAAlB,CAmBpB97B,CAnBoB,CA7vJtB,CAixJI67B,GAAwB,QAAS,CAACv1B,CAAD,CAAS,CAE1Cu1B,QAASA,EAAoB,CAAC1rC,CAAD,CAAc2R,CAAd,CAA8BK,CAA9B,CAAsDw5B,CAAtD,CAAqE7pC,CAArE,CAAgF,CACzG,IAAIiD,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAA+M,eAAA,CAAuBA,CACvB/M,EAAAoN,uBAAA,CAA+BA,CAC/BpN,EAAA4mC,cAAA,CAAsBA,CACtB5mC,EAAAjD,UAAA,CAAkBA,CAClBiD,EAAAomC,QAAA,CAAgB,EACZp5B,EAAAA,CAAShN,CAAAkN,WAAA,EACkB;IAA/B,GAAIE,CAAJ,EAAiE,CAAjE,EAAuCA,CAAvC,EAEQyc,CAEJ,CAFoB,CAAE9c,eAAgBA,CAAlB,CAAkCK,uBAAwBA,CAA1D,CAAkFjQ,WAAY6C,CAA9F,CAAqGjD,UAAWA,CAAhH,CAEpB,CADAiD,CAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmBiQ,EAAnB,CAAwCN,CAAxC,CAFO+c,CAAE3sB,WAAY6C,CAAd8pB,CAAqB9c,OAAQA,CAA7B8c,CAAqCzqB,QAAS,IAA9CyqB,CAEP,CAAV,CACA,CAAA9pB,CAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmB+P,EAAnB,CAA2CC,CAA3C,CAAmEyc,CAAnE,CAAV,CAJJ,EAQI7pB,CAAApC,IAAA,CAAUb,CAAAK,SAAA,CAAmB0P,EAAnB,CAA+CC,CAA/C,CADc6c,CAAEzsB,WAAY6C,CAAd4pB,CAAqB5c,OAAQA,CAA7B4c,CAAqC7c,eAAgBA,CAArD6c,CACd,CAAV,CAEJ,OAAO5pB,EAnBkG,CAD7GnG,CAAA,CAAUitC,CAAV,CAAgCv1B,CAAhC,CAsBAu1B,EAAA3sC,UAAA4X,MAAA,CAAuCm1B,QAAS,CAAC3pC,CAAD,CAAQ,CAGpD,IAFA,IAAI6oC,EAAU,IAAAA,QAAd,CACItjC,EAAMsjC,CAAAtqC,OADV,CAES6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI4oC,EAAWH,CAAA,CAAQzoC,CAAR,CACV4oC,EAAAhrC,OAAL,GACIgrC,CAAA1oC,KAAA,CAAcN,CAAd,CACA,CAAIgpC,CAAAY,qBAAJ,EAAqC,IAAAP,cAArC,EACI,IAAA35B,YAAA,CAAiBs5B,CAAjB,CAHR,CAF0B,CAHsB,CAaxDO,EAAA3sC,UAAA8X,OAAA,CAAwCm1B,QAAS,CAAC3sC,CAAD,CAAM,CAEnD,IADA,IAAI2rC,EAAU,IAAAA,QACd,CAAwB,CAAxB,CAAOA,CAAAtqC,OAAP,CAAA,CACIsqC,CAAA/lC,MAAA,EAAAjC,MAAA,CAAsB3D,CAAtB,CAEJ;IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CALmD,CAOvDqsC,EAAA3sC,UAAAgY,UAAA,CAA2Ck1B,QAAS,EAAG,CAEnD,IADA,IAAIjB,EAAU,IAAAA,QACd,CAAwB,CAAxB,CAAOA,CAAAtqC,OAAP,CAAA,CAA2B,CACvB,IAAIwrC,EAAWlB,CAAA/lC,MAAA,EACVinC,EAAA/rC,OAAL,EACI+rC,CAAAjqC,SAAA,EAHmB,CAM3B,IAAAjC,YAAAiC,SAAA,EARmD,CAUvDypC,EAAA3sC,UAAA+S,WAAA,CAA4Cq6B,QAAS,EAAG,CACpD,IAAIv6B,EAAS,IAAI+5B,EACjB,KAAAX,QAAAv5B,KAAA,CAAkBG,CAAlB,CACkB,KAAA5R,YAClByC,KAAA,CAAiBmP,CAAjB,CACA,OAAOA,EAL6C,CAOxD85B,EAAA3sC,UAAA8S,YAAA,CAA6Cu6B,QAAS,CAACx6B,CAAD,CAAS,CAC3DA,CAAA3P,SAAA,EACA,KAAI+oC,EAAU,IAAAA,QACdA,EAAAj1B,OAAA,CAAei1B,CAAAr1B,QAAA,CAAgB/D,CAAhB,CAAf,CAAwC,CAAxC,CAH2D,CAK/D,OAAO85B,EAjEmC,CAAlB,CAkE1BtrC,CAlE0B,CAjxJ5B,CAi3JIisC,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,CAAC7c,CAAD,CAAWC,CAAX,CAA4B,CACrD,IAAAD,SAAA,CAAgBA,CAChB,KAAAC,gBAAA,CAAuBA,CAF8B,CAIzD4c,CAAAttC,UAAA0J,KAAA,CAAsC6jC,QAAS,CAACvqC,CAAD,CAAaR,CAAb,CAAqB,CAChE,MAAOA,EAAAoD,UAAA,CAAiB,IAAI4nC,EAAJ,CAA2BxqC,CAA3B;AAAuC,IAAAytB,SAAvC,CAAsD,IAAAC,gBAAtD,CAAjB,CADyD,CAGpE,OAAO4c,EAR6B,CAAZ,EAj3J5B,CA23JIE,GAA0B,QAAS,CAACp2B,CAAD,CAAS,CAE5Co2B,QAASA,EAAsB,CAACvsC,CAAD,CAAcwvB,CAAd,CAAwBC,CAAxB,CAAyC,CAChE7qB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA4qB,SAAA,CAAiBA,CACjB5qB,EAAA6qB,gBAAA,CAAwBA,CACxB7qB,EAAA0pB,SAAA,CAAiB,EACjB1pB,EAAApC,IAAA,CAAUoC,CAAA4nC,iBAAV,CAAmCjnC,CAAA,CAAkBX,CAAlB,CAAyB4qB,CAAzB,CAAmCA,CAAnC,CAAnC,CACA,OAAO5qB,EAN6D,CADxEnG,CAAA,CAAU8tC,CAAV,CAAkCp2B,CAAlC,CASAo2B,EAAAxtC,UAAA4X,MAAA,CAAyC81B,QAAS,CAACtqC,CAAD,CAAQ,CACtD,IAAImsB,EAAW,IAAAA,SACf,IAAIA,CAAJ,CAEI,IADA,IAAI5mB,EAAM4mB,CAAA5tB,OAAV,CACS6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI+rB,CAAA,CAAS/rB,CAAT,CAAAqP,OAAAnP,KAAA,CAAwBN,CAAxB,CAL8C,CAS1DoqC,EAAAxtC,UAAA8X,OAAA,CAA0C61B,QAAS,CAACrtC,CAAD,CAAM,CACrD,IAAIivB,EAAW,IAAAA,SACf,KAAAA,SAAA,CAAgB,IAChB,IAAIA,CAAJ,CAGI,IAFA,IAAI5mB,EAAM4mB,CAAA5tB,OAAV,CACI8J,EAAS,EACb,CAAO,EAAEA,CAAT,CAAiB9C,CAAjB,CAAA,CAAsB,CAClB,IAAImnB,EAAYP,CAAA,CAAS9jB,CAAT,CAChBqkB,EAAAjd,OAAA5O,MAAA,CAAuB3D,CAAvB,CACAwvB,EAAApkB,aAAA9B,YAAA,EAHkB,CAM1BwN,CAAApX,UAAA8X,OAAApO,KAAA,CAA6B,IAA7B;AAAmCpJ,CAAnC,CAZqD,CAczDktC,EAAAxtC,UAAAgY,UAAA,CAA6C41B,QAAS,EAAG,CACrD,IAAIre,EAAW,IAAAA,SACf,KAAAA,SAAA,CAAgB,IAChB,IAAIA,CAAJ,CAGI,IAFA,IAAI5mB,EAAM4mB,CAAA5tB,OAAV,CACI8J,EAAS,EACb,CAAO,EAAEA,CAAT,CAAiB9C,CAAjB,CAAA,CAAsB,CAClB,IAAIunB,EAAYX,CAAA,CAAS9jB,CAAT,CAChBykB,EAAArd,OAAA3P,SAAA,EACAgtB,EAAAxkB,aAAA9B,YAAA,EAHkB,CAM1BwN,CAAApX,UAAAgY,UAAAtO,KAAA,CAAgC,IAAhC,CAZqD,CAczD8jC,EAAAxtC,UAAAsW,aAAA,CAAgDu3B,QAAS,EAAG,CACxD,IAAIte,EAAW,IAAAA,SACf,KAAAA,SAAA,CAAgB,IAChB,IAAIA,CAAJ,CAGI,IAFA,IAAI5mB,EAAM4mB,CAAA5tB,OAAV,CACI8J,EAAS,EACb,CAAO,EAAEA,CAAT,CAAiB9C,CAAjB,CAAA,CAAsB,CAClB,IAAImlC,EAAYve,CAAA,CAAS9jB,CAAT,CAChBqiC,EAAAj7B,OAAAjJ,YAAA,EACAkkC,EAAApiC,aAAA9B,YAAA,EAHkB,CAN8B,CAa5D4jC,EAAAxtC,UAAA4Q,WAAA,CAA8Cm9B,QAAS,CAACpnC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAC9G,GAAI9K,CAAJ,GAAmB,IAAA8pB,SAAnB,CAAkC,CAC1BvC,CAAAA,CAAkB,IAAK,EAC3B,IAAI,CACA,IAAIwC,EAAkB,IAAAA,gBACtBxC,EAAA,CAAkBwC,CAAA,CAAgBhI,CAAhB,CAFlB,CAIJ,MAAOlf,CAAP,CAAU,CACN,MAAO,KAAAvF,MAAA,CAAWuF,CAAX,CADD,CAGN4iC,CAAAA;AAAW,IAAIt7B,CACfpF,EAAAA,CAAe,IAAInI,CACnByqC,EAAAA,CAAY,CAAEn7B,OAAQu5B,CAAV,CAAoB1gC,aAAcA,CAAlC,CAChB,KAAA6jB,SAAA7c,KAAA,CAAmBs7B,CAAnB,CACIjjB,EAAAA,CAAoBvkB,CAAA,CAAkB,IAAlB,CAAwB0nB,CAAxB,CAAyC8f,CAAzC,CACpBjjB,EAAA3pB,OAAJ,CACI,IAAA0R,YAAA,CAAiB,IAAAyc,SAAA5tB,OAAjB,CAAwC,CAAxC,CADJ,EAIIopB,CAAA7lB,QACA,CAD4B8oC,CAC5B,CAAAtiC,CAAAjI,IAAA,CAAiBsnB,CAAjB,CALJ,CAOA,KAAA9pB,YAAAyC,KAAA,CAAsB0oC,CAAtB,CArB8B,CAAlC,IAwBI,KAAAt5B,YAAA,CAAiB,IAAAyc,SAAA3Y,QAAA,CAAsBjQ,CAAtB,CAAjB,CAzB0G,CA4BlH6mC,EAAAxtC,UAAA4oB,YAAA,CAA+CqlB,QAAS,CAAC3tC,CAAD,CAAM,CAC1D,IAAA2D,MAAA,CAAW3D,CAAX,CAD0D,CAG9DktC,EAAAxtC,UAAA8oB,eAAA,CAAkDolB,QAAS,CAACC,CAAD,CAAQ,CAC3DA,CAAJ,GAAc,IAAAV,iBAAd,EACI,IAAA36B,YAAA,CAAiB,IAAAyc,SAAA3Y,QAAA,CAAsBu3B,CAAAjpC,QAAtB,CAAjB,CAF2D,CAKnEsoC,EAAAxtC,UAAA8S,YAAA,CAA+Cs7B,QAAS,CAAC3iC,CAAD,CAAQ,CAC5D,GAAe,EAAf,GAAIA,CAAJ,CAAA,CAGA,IAAI8jB,EAAW,IAAAA,SAAf,CACIrqB,EAAUqqB,CAAA,CAAS9jB,CAAT,CADd,CAEIoH,EAAS3N,CAAA2N,OAFb,CAE6BnH,EAAexG,CAAAwG,aAC5C6jB,EAAAvY,OAAA,CAAgBvL,CAAhB;AAAuB,CAAvB,CACAoH,EAAA3P,SAAA,EACAwI,EAAA9B,YAAA,EARA,CAD4D,CAWhE,OAAO4jC,EA3GqC,CAAlB,CA4G5BhlB,CA5G4B,CA33J9B,CA8+JI6lB,GAAoB,QAAS,EAAG,CAChCzD,QAASA,EAAc,CAACla,CAAD,CAAkB,CACrC,IAAAA,gBAAA,CAAuBA,CADc,CAGzCka,CAAA5qC,UAAA0J,KAAA,CAAgCohC,QAAS,CAAC9nC,CAAD,CAAaR,CAAb,CAAqB,CAC1D,MAAOA,EAAAoD,UAAA,CAAiB,IAAI0oC,EAAJ,CAAuBtrC,CAAvB,CAAmC,IAAA0tB,gBAAnC,CAAjB,CADmD,CAG9D,OAAOka,EAPyB,CAAZ,EA9+JxB,CAu/JI0D,GAAsB,QAAS,CAACl3B,CAAD,CAAS,CAExC4zB,QAASA,EAAgB,CAAC/pC,CAAD,CAAcyvB,CAAd,CAA+B,CACpD,IAAI7qB,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAA5E,YAAA,CAAoBA,CACpB4E,EAAA6qB,gBAAA,CAAwBA,CACxB7qB,EAAAkN,WAAA,EACA,OAAOlN,EAL6C,CADxDnG,CAAA,CAAUsrC,CAAV,CAA4B5zB,CAA5B,CAQA4zB,EAAAhrC,UAAA4Q,WAAA,CAAwCs6B,QAAS,CAACvkC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CACxG,IAAAsB,WAAA,CAAgBtB,CAAhB,CADwG,CAG5Gu5B,EAAAhrC,UAAA4oB,YAAA,CAAyCuiB,QAAS,CAAClnC,CAAD,CAAQwN,CAAR,CAAkB,CAChE,IAAAqG,OAAA,CAAY7T,CAAZ,CADgE,CAGpE+mC,EAAAhrC,UAAA8oB,eAAA,CAA4CsiB,QAAS,CAAC35B,CAAD,CAAW,CAC5D,IAAAsB,WAAA,CAAgBtB,CAAhB,CAD4D,CAGhEu5B,EAAAhrC,UAAA4X,MAAA;AAAmCyzB,QAAS,CAACjoC,CAAD,CAAQ,CAChD,IAAAyP,OAAAnP,KAAA,CAAiBN,CAAjB,CADgD,CAGpD4nC,EAAAhrC,UAAA8X,OAAA,CAAoCwzB,QAAS,CAAChrC,CAAD,CAAM,CAC/C,IAAAuS,OAAA5O,MAAA,CAAkB3D,CAAlB,CACA,KAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,KAAAiuC,+BAAA,EAH+C,CAKnDvD,EAAAhrC,UAAAgY,UAAA,CAAuCuzB,QAAS,EAAG,CAC/C,IAAA14B,OAAA3P,SAAA,EACA,KAAAjC,YAAAiC,SAAA,EACA,KAAAqrC,+BAAA,EAH+C,CAKnDvD,EAAAhrC,UAAAuuC,+BAAA,CAA4DC,QAAS,EAAG,CAChE,IAAAC,oBAAJ,EACI,IAAAA,oBAAA7kC,YAAA,EAFgE,CAKxEohC,EAAAhrC,UAAA+S,WAAA,CAAwC04B,QAAS,CAACh6B,CAAD,CAAW,CACvC,IAAK,EAAtB,GAAIA,CAAJ,GAA2BA,CAA3B,CAAsC,IAAtC,CACIA,EAAJ,GACI,IAAA2B,OAAA,CAAY3B,CAAZ,CACA,CAAAA,CAAA7H,YAAA,EAFJ,CAKA,EADI8hC,CACJ,CADiB,IAAA74B,OACjB;AACI64B,CAAAxoC,SAAA,EAEA2P,EAAAA,CAAS,IAAAA,OAATA,CAAuB,IAAI/B,CAC/B,KAAA7P,YAAAyC,KAAA,CAAsBmP,CAAtB,CACA,KAAIqb,CACJ,IAAI,CACA,IAAIwC,EAAkB,IAAAA,gBACtBxC,EAAA,CAAkBwC,CAAA,EAFlB,CAIJ,MAAOlnB,CAAP,CAAU,CACN,IAAAvI,YAAAgD,MAAA,CAAuBuF,CAAvB,CACA,KAAAqJ,OAAA5O,MAAA,CAAkBuF,CAAlB,CACA,OAHM,CAKV,IAAA/F,IAAA,CAAS,IAAAgrC,oBAAT,CAAoCjoC,CAAA,CAAkB,IAAlB,CAAwB0nB,CAAxB,CAApC,CAtBwD,CAwB5D,OAAO8c,EA5DiC,CAAlB,CA6DxBxiB,CA7DwB,CAv/J1B,CAokKIkmB,GAA0B,QAAS,EAAG,CACtCA,QAASA,EAAsB,CAACrmC,CAAD,CAAc7D,CAAd,CAAuB,CAClD,IAAA6D,YAAA,CAAmBA,CACnB,KAAA7D,QAAA,CAAeA,CAFmC,CAItDkqC,CAAA1uC,UAAA0J,KAAA,CAAwCilC,QAAS,CAAC3rC,CAAD,CAAaR,CAAb,CAAqB,CAClE,MAAOA,EAAAoD,UAAA,CAAiB,IAAIgpC,EAAJ,CAA6B5rC,CAA7B,CAAyC,IAAAqF,YAAzC,CAA2D,IAAA7D,QAA3D,CAAjB,CAD2D,CAGtE,OAAOkqC,EAR+B,CAAZ,EApkK9B,CA8kKIE,GAA4B,QAAS,CAACx3B,CAAD,CAAS,CAE9Cw3B,QAASA,EAAwB,CAAC3tC,CAAD,CAAcoH,CAAd,CAA2B7D,CAA3B,CAAoC,CAC7DqB,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAwC,YAAA,CAAoBA,CACpBxC,EAAArB,QAAA,CAAgBA,CAChBqB,EAAAkkB,UAAA,CAAkB,EACdphB,EAAAA,CAAMN,CAAA1G,OACVkE;CAAA+C,OAAA,CAAmBC,KAAJ,CAAUF,CAAV,CACf,KAAK,IAAInF,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACIqC,CAAAkkB,UAAArX,KAAA,CAAqBlP,CAArB,CAEJ,KAASA,CAAT,CAAa,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CAA8B,CAC1B,IAAI0D,EAAamB,CAAA,CAAY7E,CAAZ,CACjBqC,EAAApC,IAAA,CAAU+C,CAAA,CAAkBX,CAAlB,CAAyBqB,CAAzB,CAAqCA,CAArC,CAAiD1D,CAAjD,CAAV,CAF0B,CAI9B,MAAOqC,EAd0D,CADrEnG,CAAA,CAAUkvC,CAAV,CAAoCx3B,CAApC,CAiBAw3B,EAAA5uC,UAAA4Q,WAAA,CAAgDi+B,QAAS,CAACloC,CAAD,CAAa+hB,CAAb,CAAyB9hB,CAAzB,CAAqC+hB,CAArC,CAAiDlX,CAAjD,CAA2D,CAChH,IAAA7I,OAAA,CAAYhC,CAAZ,CAAA,CAA0B8hB,CACtBqB,EAAAA,CAAY,IAAAA,UACO,EAAvB,CAAIA,CAAApoB,OAAJ,GACQmtC,CACJ,CADY/kB,CAAAnT,QAAA,CAAkBhQ,CAAlB,CACZ,CAAe,EAAf,GAAIkoC,CAAJ,EACI/kB,CAAA/S,OAAA,CAAiB83B,CAAjB,CAAwB,CAAxB,CAHR,CAHgH,CAUpHF,EAAA5uC,UAAA8oB,eAAA,CAAoDimB,QAAS,EAAG,EAEhEH,EAAA5uC,UAAA4X,MAAA,CAA2Co3B,QAAS,CAAC5rC,CAAD,CAAQ,CAC1B,CAA9B,GAAI,IAAA2mB,UAAApoB,OAAJ,GACQmC,CACJ,CADW,CAACV,CAAD,CAAAvC,OAAA,CAAe,IAAA+H,OAAf,CACX,CAAI,IAAApE,QAAJ,CACI,IAAAyqC,YAAA,CAAiBnrC,CAAjB,CADJ,CAII,IAAA7C,YAAAyC,KAAA,CAAsBI,CAAtB,CANR,CADwD,CAW5D8qC,EAAA5uC,UAAAivC,YAAA,CAAiDC,QAAS,CAACprC,CAAD,CAAO,CAC7D,IAAI4C,CACJ,IAAI,CACAA,CAAA,CAAS,IAAAlC,QAAAQ,MAAA,CAAmB,IAAnB;AAAyBlB,CAAzB,CADT,CAGJ,MAAOxD,CAAP,CAAY,CACR,IAAAW,YAAAgD,MAAA,CAAuB3D,CAAvB,CACA,OAFQ,CAIZ,IAAAW,YAAAyC,KAAA,CAAsBgD,CAAtB,CAT6D,CAWjE,OAAOkoC,EApDuC,CAAlB,CAqD9BpmB,CArD8B,CA9kKhC,CAqpKI2mB,GAA0BlvC,MAAAmvC,OAAA,CAAc,CACxCniC,MAAOA,EADiC,CAExCoiC,UAt5HJA,QAAkB,CAAC7wB,CAAD,CAAW5b,CAAX,CAAsB,CAClB,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAOM,GAAA,CAAM,QAAS,EAAG,CAAE,MAAOT,GAAA,CAAMgS,CAAN,CAAgB5b,CAAhB,CAAT,CAAlB,CAF6B,CAo5HI,CAGxC4nB,OAl5HJA,QAAe,CAAC0D,CAAD,CAAkB,CAC7B,MAAOohB,SAA+B,CAAC9sC,CAAD,CAAS,CAC3C,MAAOA,EAAAC,KAAA,CAAY,IAAIwrB,EAAJ,CAAmBC,CAAnB,CAAZ,CADoC,CADlB,CA+4HW,CAIxCqhB,YAl3HJA,QAAoB,CAACt+B,CAAD,CAAaud,CAAb,CAA+B,CACtB,IAAK,EAA9B,GAAIA,CAAJ,GAAmCA,CAAnC,CAAsD,IAAtD,CACA,OAAOghB,SAAoC,CAAChtC,CAAD,CAAS,CAChD,MAAOA,EAAAC,KAAA,CAAY,IAAI8rB,EAAJ,CAAwBtd,CAAxB,CAAoCud,CAApC,CAAZ,CADyC,CAFL,CA82HP,CAKxCihB,WA9xHJA,QAAmB,CAAC/hC,CAAD,CAAiB,CAChC,IAAI/L,EAASD,SAAAC,OAAb,CACIiB,EAAY+J,CACZxJ,EAAA,CAAYzB,SAAA,CAAUA,SAAAC,OAAV,CAA6B,CAA7B,CAAZ,CAAJ,GACIiB,CACA,CADYlB,SAAA,CAAUA,SAAAC,OAAV,CAA6B,CAA7B,CACZ,CAAAA,CAAA,EAFJ,CAIA,KAAIiM,EAAyB,IACf,EAAd,EAAIjM,CAAJ,GACIiM,CADJ,CAC6BlM,SAAA,CAAU,CAAV,CAD7B,CAGA;IAAIytB,EAAgBrnB,MAAAC,kBACN,EAAd,EAAIpG,CAAJ,GACIwtB,CADJ,CACoBztB,SAAA,CAAU,CAAV,CADpB,CAGA,OAAOguC,SAAmC,CAACltC,CAAD,CAAS,CAC/C,MAAOA,EAAAC,KAAA,CAAY,IAAIysB,EAAJ,CAAuBxhB,CAAvB,CAAuCE,CAAvC,CAA+DuhB,CAA/D,CAA8EvsB,CAA9E,CAAZ,CADwC,CAfnB,CAyxHQ,CAMxC+sC,aAhpHJA,QAAqB,CAAClf,CAAD,CAAWC,CAAX,CAA4B,CAC7C,MAAOkf,SAAqC,CAACptC,CAAD,CAAS,CACjD,MAAOA,EAAAC,KAAA,CAAY,IAAI+tB,EAAJ,CAAyBC,CAAzB,CAAmCC,CAAnC,CAAZ,CAD0C,CADR,CA0oHL,CAOxCmf,WA3iHJA,QAAmB,CAACnf,CAAD,CAAkB,CACjC,MAAO,SAAS,CAACluB,CAAD,CAAS,CACrB,MAAOA,EAAAC,KAAA,CAAY,IAAI+uB,EAAJ,CAAuBd,CAAvB,CAAZ,CADc,CADQ,CAoiHO,CAQxCof,WA/9GJA,QAAmB,CAAC9/B,CAAD,CAAW,CAC1B,MAAO+/B,SAAmC,CAACvtC,CAAD,CAAS,CAC/C,IAAIgX,EAAW,IAAI2Y,EAAJ,CAAkBniB,CAAlB,CACXsiB,EAAAA,CAAS9vB,CAAAC,KAAA,CAAY+W,CAAZ,CACb,OAAQA,EAAA8Y,OAAR,CAA0BA,CAHqB,CADzB,CAu9Gc,CASxC0d,WAl7GJA,QAAmB,CAACxrC,CAAD,CAAU,CACzB,MAAO,SAAS,CAAChC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIinB,EAAJ,CAA0BllB,CAA1B,CAAZ,CAAT,CADA,CAy6Ge,CAUxCyrC,cA/6GJC,QAAwB,EAAG,CAEvB,IADA,IAAI7nC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,KAAI+C,EAAU,IACqC;UAAnD,GAAI,MAAO6D,EAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CAAX,GACI6C,CADJ,CACc6D,CAAAtE,IAAA,EADd,CAG2B,EAA3B,GAAIsE,CAAA1G,OAAJ,EAAgCsD,CAAA,CAAQoD,CAAA,CAAY,CAAZ,CAAR,CAAhC,GACIA,CADJ,CACkBA,CAAA,CAAY,CAAZ,CAAAoB,MAAA,EADlB,CAGA,OAAO,SAAS,CAACjH,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAAiH,KAAA,CAAiB/B,CAAA,CAAK,CAACnF,CAAD,CAAA3B,OAAA,CAAgBwH,CAAhB,CAAL,CAAjB,CAAqD,IAAIqhB,EAAJ,CAA0BllB,CAA1B,CAArD,CAAT,CAZF,CAq6GiB,CAWxC3D,OAj6GJsvC,QAAiB,EAAG,CAEhB,IADA,IAAI9nC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,OAAO,SAAS,CAACe,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAAiH,KAAA,CAAiB7I,EAAAmE,MAAA,CAAa,IAAK,EAAlB,CAAqB,CAACxC,CAAD,CAAA3B,OAAA,CAAgBwH,CAAhB,CAArB,CAAjB,CAAT,CALT,CAs5GwB,CAYxCD,UAAWA,EAZ6B,CAaxC2F,UAAWA,EAb6B,CAcxCqiC,YAx5GJA,QAAoB,CAACC,CAAD,CAAkBtrC,CAAlB,CAAkC,CAClD,MAAOgJ,GAAA,CAAU,QAAS,EAAG,CAAE,MAAOsiC,EAAT,CAAtB,CAAmDtrC,CAAnD,CAD2C,CA04GV,CAexCwH,MAr5GJA,QAAc,CAACP,CAAD,CAAY,CACtB,MAAO,SAAS,CAACxJ,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIgwB,EAAJ,CAAkBzmB,CAAlB,CAA6BxJ,CAA7B,CAAZ,CAAT,CADH,CAs4GkB,CAgBxC8tC,SAn2GJA,QAAiB,CAACpjC,CAAD,CAAmB,CAChC,MAAO,SAAS,CAAC1K,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIuwB,EAAJ,CAAqB9lB,CAArB,CAAZ,CAAT,CADO,CAm1GQ;AAiBxCqjC,aA5xGJA,QAAqB,CAAC9jC,CAAD,CAAU7J,CAAV,CAAqB,CACpB,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAO,SAAS,CAACnK,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIkxB,EAAJ,CAAyBlnB,CAAzB,CAAkC7J,CAAlC,CAAZ,CAAT,CAFa,CA2wGE,CAkBxCsL,eAAgBA,EAlBwB,CAmBxCmS,MA9rGJA,QAAc,CAACA,CAAD,CAAQzd,CAAR,CAAmB,CACX,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CAEA,KAAI6jC,EADuBnwB,CACZ,WANSpO,KAMT,EANkB,CAAAC,KAAA,CAAM,CAKZmO,CALM,CAMlB,CAAiB,CAACA,CAAlB,CAA0Bzd,CAAAiK,IAAA,EAA1B,CAA6CuF,IAAAC,IAAA,CAASgO,CAAT,CAC5D,OAAO,SAAS,CAAC7d,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIiyB,EAAJ,CAAkB8b,CAAlB,CAA4B5tC,CAA5B,CAAZ,CAAT,CAJI,CA2qGW,CAoBxC6tC,UA1mGJA,QAAkB,CAACjb,CAAD,CAAwBmB,CAAxB,CAA2C,CACzD,MAAIA,EAAJ,CACW,QAAS,CAACn0B,CAAD,CAAS,CACrB,MAAOC,CAAA,IAAIi0B,EAAJ,CAAgCl0B,CAAhC,CAAwCm0B,CAAxC,CAAAl0B,MAAA,CACG,IAAI8yB,EAAJ,CAAsBC,CAAtB,CADH,CADc,CAD7B,CAMO,QAAS,CAAChzB,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI8yB,EAAJ,CAAsBC,CAAtB,CAAZ,CAAT,CAPgC,CAslGjB,CAqBxCkb,cA7+FJA,QAAsB,EAAG,CACrB,MAAOC,SAAsC,CAACnuC,CAAD,CAAS,CAClD,MAAOA,EAAAC,KAAA,CAAY,IAAI20B,EAAhB,CAD2C,CADjC,CAw9FmB,CAsBxCwZ,SAt9FJA,QAAiB,CAACriC,CAAD,CAAckpB,CAAd,CAAuB,CACpC,MAAO,SAAS,CAACj1B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI+0B,EAAJ,CAAqBjpB,CAArB;AAAkCkpB,CAAlC,CAAZ,CAAT,CADW,CAg8FI,CAuBxCppB,qBAAsBA,EAvBkB,CAwBxCwiC,wBAn2FJA,QAAgC,CAAC3nC,CAAD,CAAMoF,CAAN,CAAe,CAC3C,MAAOD,GAAA,CAAqB,QAAS,CAACjO,CAAD,CAAIq4B,CAAJ,CAAO,CAAE,MAAOnqB,EAAA,CAAUA,CAAA,CAAQlO,CAAA,CAAE8I,CAAF,CAAR,CAAgBuvB,CAAA,CAAEvvB,CAAF,CAAhB,CAAV,CAAoC9I,CAAA,CAAE8I,CAAF,CAApC,GAA+CuvB,CAAA,CAAEvvB,CAAF,CAAxD,CAArC,CADoC,CA20FH,CAyBxC4nC,UApwFJA,QAAkB,CAACrlC,CAAD,CAAQ0C,CAAR,CAAsB,CACpC,GAAY,CAAZ,CAAI1C,CAAJ,CACI,KAAM,KAAIuc,CAAV,CAEJ,IAAI+oB,EAAsC,CAAtCA,EAAkBrvC,SAAAC,OACtB,OAAO,SAAS,CAACa,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYwK,CAAA,CAAO,QAAS,CAACilC,CAAD,CAAIxtC,CAAJ,CAAO,CAAE,MAAOA,EAAP,GAAaiI,CAAf,CAAvB,CAAZ,CAA6DqD,EAAA,CAAK,CAAL,CAA7D,CAAsEiiC,CAAA,CAClG7iC,EAAA,CAAeC,CAAf,CADkG,CAElGM,EAAA,CAAa,QAAS,EAAG,CAAE,MAAO,KAAIuZ,CAAb,CAAzB,CAF4B,CAAT,CALW,CA2uFI,CA0BxCipB,QA3vFJA,QAAgB,EAAG,CAEf,IADA,IAAI1uB,EAAQ,EAAZ,CACS9gB,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI8gB,CAAA,CAAM9gB,CAAN,CAAA,CAAYC,SAAA,CAAUD,CAAV,CAEhB,OAAO,SAAS,CAACe,CAAD,CAAS,CAAE,MAAO3B,GAAA,CAAO2B,CAAP,CAAeqB,EAAAmB,MAAA,CAAS,IAAK,EAAd,CAAiBud,CAAjB,CAAf,CAAT,CALV,CAiuFyB,CA2BxC2uB,MApvFJA,QAAc,CAACllC,CAAD,CAAYvH,CAAZ,CAAqB,CAC/B,MAAO,SAAS,CAACjC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI02B,EAAJ,CAAkBntB,CAAlB,CAA6BvH,CAA7B;AAAsCjC,CAAtC,CAAZ,CAAT,CADM,CAytFS,CA4BxC2uC,QArsFJA,QAAgB,EAAG,CACf,MAAO,SAAS,CAAC3uC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIi3B,EAAhB,CAAT,CADV,CAyqFyB,CA6BxC1qB,WAAYA,EA7B4B,CA8BxCoiC,OAhlFJA,QAAe,CAAC5sC,CAAD,CAAUqD,CAAV,CAAsBjF,CAAtB,CAAiC,CACzB,IAAK,EAAxB,GAAIiF,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACkB,KAAK,EAAvB,GAAInF,CAAJ,GAA4BA,CAA5B,CAAwCoD,IAAAA,EAAxC,CACA6B,EAAA,CAAiC,CAApB,EAACA,CAAD,EAAe,CAAf,EAAwBC,MAAAC,kBAAxB,CAAmDF,CAChE,OAAO,SAAS,CAACrF,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIk4B,EAAJ,CAAmBn2B,CAAnB,CAA4BqD,CAA5B,CAAwCjF,CAAxC,CAAZ,CAAT,CAJmB,CAkjFJ,CA+BxCmJ,OAAQA,CA/BgC,CAgCxCslC,SAn/EJA,QAAiB,CAAC/V,CAAD,CAAW,CACxB,MAAO,SAAS,CAAC94B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI44B,EAAJ,CAAoBC,CAApB,CAAZ,CAAT,CADD,CAm9EgB,CAiCxCgW,KA99EJA,QAAa,CAACtlC,CAAD,CAAYvH,CAAZ,CAAqB,CAC9B,GAAyB,UAAzB,GAAI,MAAOuH,EAAX,CACI,KAAM,KAAIrH,SAAJ,CAAc,6BAAd,CAAN,CAEJ,MAAO,SAAS,CAACnC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIg5B,EAAJ,CAAsBzvB,CAAtB,CAAiCxJ,CAAjC,CAAyC,CAAA,CAAzC,CAAgDiC,CAAhD,CAAZ,CAAT,CAJK,CA67EU,CAkCxC8sC,UAz6EJA,QAAkB,CAACvlC,CAAD;AAAYvH,CAAZ,CAAqB,CACnC,MAAO,SAAS,CAACjC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIg5B,EAAJ,CAAsBzvB,CAAtB,CAAiCxJ,CAAjC,CAAyC,CAAA,CAAzC,CAA+CiC,CAA/C,CAAZ,CAAT,CADU,CAu4EK,CAmCxC4G,MAt6EJA,QAAc,CAACW,CAAD,CAAYmC,CAAZ,CAA0B,CACpC,IAAI4iC,EAAsC,CAAtCA,EAAkBrvC,SAAAC,OACtB,OAAO,SAAS,CAACa,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYyK,CAAA,CAAYD,CAAA,CAAO,QAAS,CAACilC,CAAD,CAAIxtC,CAAJ,CAAO,CAAE,MAAOwI,EAAA,CAAUglC,CAAV,CAAaxtC,CAAb,CAAgBhB,CAAhB,CAAT,CAAvB,CAAZ,CAA0E8B,CAAtF,CAAgGwK,EAAA,CAAK,CAAL,CAAhG,CAAyGiiC,CAAA,CAAkB7iC,EAAA,CAAeC,CAAf,CAAlB,CAAiDM,EAAA,CAAa,QAAS,EAAG,CAAE,MAAO,KAAII,EAAb,CAAzB,CAA1J,CAAT,CAFW,CAm4EI,CAoCxC2iC,QA1/MJA,QAAgB,CAACjjC,CAAD,CAAciP,CAAd,CAA+BtQ,CAA/B,CAAiDuQ,CAAjD,CAAkE,CAC9E,MAAO,SAAS,CAACjb,CAAD,CAAS,CACrB,MAAOA,EAAAC,KAAA,CAAY,IAAI8a,EAAJ,CAAoBhP,CAApB,CAAiCiP,CAAjC,CAAkDtQ,CAAlD,CAAoEuQ,CAApE,CAAZ,CADc,CADqD,CAs9MtC,CAqCxCg0B,eAn6EJA,QAAuB,EAAG,CACtB,MAAOC,SAAuC,CAAClvC,CAAD,CAAS,CACnD,MAAOA,EAAAC,KAAA,CAAY,IAAIu5B,EAAhB,CAD4C,CADjC,CA83EkB,CAsCxCzH,QA74EJA,QAAgB,EAAG,CACf,MAAO,SAAS,CAAC/xB,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI25B,EAAhB,CAAT,CADV,CAu2EyB,CAuCxCjxB,KArzEJA,QAAa,CAACa,CAAD,CAAYmC,CAAZ,CAA0B,CACnC,IAAI4iC,EAAsC,CAAtCA,EAAkBrvC,SAAAC,OACtB,OAAO,SAAS,CAACa,CAAD,CAAS,CAAE,MAAOA,EAAAjB,KAAA,CAAYyK,CAAA;AAAYD,CAAA,CAAO,QAAS,CAACilC,CAAD,CAAIxtC,CAAJ,CAAO,CAAE,MAAOwI,EAAA,CAAUglC,CAAV,CAAaxtC,CAAb,CAAgBhB,CAAhB,CAAT,CAAvB,CAAZ,CAA0E8B,CAAtF,CAAgG4K,EAAA,CAAS,CAAT,CAAhG,CAA6G6hC,CAAA,CAAkB7iC,EAAA,CAAeC,CAAf,CAAlB,CAAiDM,EAAA,CAAa,QAAS,EAAG,CAAE,MAAO,KAAII,EAAb,CAAzB,CAA9J,CAAT,CAFU,CA8wEK,CAwCxCtK,IAAKA,CAxCmC,CAyCxCotC,MAlzEJA,QAAc,CAACvuC,CAAD,CAAQ,CAClB,MAAO,SAAS,CAACZ,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIu6B,EAAJ,CAAkB55B,CAAlB,CAAZ,CAAT,CADP,CAywEsB,CA0CxCwuC,YA1xEJA,QAAoB,EAAG,CACnB,MAAOC,SAAoC,CAACrvC,CAAD,CAAS,CAChD,MAAOA,EAAAC,KAAA,CAAY,IAAI26B,EAAhB,CADyC,CADjC,CAgvEqB,CA2CxC5X,IA5qEJA,QAAY,CAACssB,CAAD,CAAW,CAInB,MAAOnxC,GAAA,CAHwB,UAArB6kB,GAAC,MAAOssB,EAARtsB,CACJ,QAAS,CAACplB,CAAD,CAAIq4B,CAAJ,CAAO,CAAE,MAAwB,EAAjB,CAAAqZ,CAAA,CAAS1xC,CAAT,CAAYq4B,CAAZ,CAAA,CAAqBr4B,CAArB,CAAyBq4B,CAAlC,CADZjT,CAEJ,QAAS,CAACplB,CAAD,CAAIq4B,CAAJ,CAAO,CAAE,MAAOr4B,EAAA,CAAIq4B,CAAJ,CAAQr4B,CAAR,CAAYq4B,CAArB,CACf,CAJY,CAioEqB,CA4CxCvtB,MAtqEJ6mC,QAAgB,EAAG,CAEf,IADA,IAAI1pC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,OAAO,SAAS,CAACe,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAAiH,KAAA,CAAiBwB,EAAAlG,MAAA,CAAY,IAAK,EAAjB,CAAoB,CAACxC,CAAD,CAAA3B,OAAA,CAAgBwH,CAAhB,CAApB,CAAjB,CAAT,CALV,CA0nEyB,CA6CxCF,SAAUA,EA7C8B,CA8CxCP,SAAUA,CA9C8B;AA+CxCoqC,QAASpqC,CA/C+B,CAgDxCqqC,WAlqEJA,QAAmB,CAAC5B,CAAD,CAAkBtrC,CAAlB,CAAkC8C,CAAlC,CAA8C,CAC1C,IAAK,EAAxB,GAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACA,IAA8B,UAA9B,GAAI,MAAOhD,EAAX,CACI,MAAO6C,EAAA,CAAS,QAAS,EAAG,CAAE,MAAOyoC,EAAT,CAArB,CAAkDtrC,CAAlD,CAAkE8C,CAAlE,CAEmB,SAA9B,GAAI,MAAO9C,EAAX,GACI8C,CADJ,CACiB9C,CADjB,CAGA,OAAO6C,EAAA,CAAS,QAAS,EAAG,CAAE,MAAOyoC,EAAT,CAArB,CAAkDxoC,CAAlD,CARsD,CAknErB,CAiDxCqqC,UAxpEJA,QAAkB,CAAC5iC,CAAD,CAAcC,CAAd,CAAoB1H,CAApB,CAAgC,CAC3B,IAAK,EAAxB,GAAIA,CAAJ,GAA6BA,CAA7B,CAA0CC,MAAAC,kBAA1C,CACA,OAAO,SAAS,CAACvF,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIs7B,EAAJ,CAAsBzuB,CAAtB,CAAmCC,CAAnC,CAAyC1H,CAAzC,CAAZ,CAAT,CAFqB,CAumEN,CAkDxCsqC,IA9jEJA,QAAY,CAACL,CAAD,CAAW,CAInB,MAAOnxC,GAAA,CAHwB,UAArBwxC,GAAC,MAAOL,EAARK,CACJ,QAAS,CAAC/xC,CAAD,CAAIq4B,CAAJ,CAAO,CAAE,MAAwB,EAAjB,CAAAqZ,CAAA,CAAS1xC,CAAT,CAAYq4B,CAAZ,CAAA,CAAqBr4B,CAArB,CAAyBq4B,CAAlC,CADZ0Z,CAEJ,QAAS,CAAC/xC,CAAD,CAAIq4B,CAAJ,CAAO,CAAE,MAAOr4B,EAAA,CAAIq4B,CAAJ,CAAQr4B,CAAR,CAAYq4B,CAArB,CACf,CAJY,CA4gEqB,CAmDxC3oB,UAAWA,CAnD6B,CAoDxCsiC,UAz9LJA,QAAkB,CAACxvC,CAAD,CAAYyd,CAAZ,CAAmB,CACnB,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAOgyB,SAAkC,CAAC7vC,CAAD,CAAS,CAC9C,MAAOA,EAAAC,KAAA,CAAY,IAAImhB,EAAJ,CAAsBhhB,CAAtB;AAAiCyd,CAAjC,CAAZ,CADuC,CAFjB,CAq6LO,CAqDxCjV,kBAvhEJknC,QAA4B,EAAG,CAE3B,IADA,IAAI7T,EAAc,EAAlB,CACSh9B,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIg9B,CAAA,CAAYh9B,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEK,EAA3B,GAAIg9B,CAAA98B,OAAJ,EAAgCsD,CAAA,CAAQw5B,CAAA,CAAY,CAAZ,CAAR,CAAhC,GACIA,CADJ,CACkBA,CAAA,CAAY,CAAZ,CADlB,CAGA,OAAO,SAAS,CAACj8B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI+7B,EAAJ,CAA8BC,CAA9B,CAAZ,CAAT,CARE,CAk+Da,CAsDxC8T,SA79DJA,QAAiB,EAAG,CAChB,MAAO,SAAS,CAAC/vC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIy8B,EAAhB,CAAT,CADT,CAu6DwB,CAuDxCsT,UA57DJC,QAAoB,CAACzmC,CAAD,CAAYvH,CAAZ,CAAqB,CACrC,MAAO,SAAS,CAACjC,CAAD,CAAS,CAAE,MAAO,CAC9BuJ,CAAA,CAAOC,CAAP,CAAkBvH,CAAlB,CAAA,CAA2BjC,CAA3B,CAD8B,CAE9BuJ,CAAA,CAAOH,EAAA,CAAII,CAAJ,CAAevH,CAAf,CAAP,CAAA,CAAgCjC,CAAhC,CAF8B,CAAT,CADY,CAq4DG,CAwDxCkwC,MAt7DJA,QAAc,EAAG,CAEb,IADA,IAAIC,EAAa,EAAjB,CACSlxC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIkxC,CAAA,CAAWlxC,CAAX,CAAA,CAAiBC,SAAA,CAAUD,CAAV,CAErB,KAAIE,EAASgxC,CAAAhxC,OACb,IAAe,CAAf,GAAIA,CAAJ,CACI,KAAUU,MAAJ,CAAU,qCAAV,CAAN,CAEJ,MAAO,SAAS,CAACG,CAAD,CAAS,CAAE,MAAO+B,EAAA,CAAI+L,EAAA,CAAQqiC,CAAR,CAAoBhxC,CAApB,CAAJ,CAAA,CAAiCa,CAAjC,CAAT,CATZ,CA83D2B;AAyDxCowC,QA35DJA,QAAgB,CAAC5iC,CAAD,CAAW,CACvB,MAAOA,EAAA,CACHF,CAAA,CAAU,QAAS,EAAG,CAAE,MAAO,KAAIgB,CAAb,CAAtB,CAAiDd,CAAjD,CADG,CAEHF,CAAA,CAAU,IAAIgB,CAAd,CAHmB,CAk2DiB,CA0DxC+hC,gBAt5DJA,QAAwB,CAACzvC,CAAD,CAAQ,CAC5B,MAAO,SAAS,CAACZ,CAAD,CAAS,CAAE,MAAOsN,EAAA,CAAU,IAAI0P,EAAJ,CAAoBpc,CAApB,CAAV,CAAA,CAAsCZ,CAAtC,CAAT,CADG,CA41DY,CA2DxCswC,YAn5DJA,QAAoB,EAAG,CACnB,MAAO,SAAS,CAACtwC,CAAD,CAAS,CAAE,MAAOsN,EAAA,CAAU,IAAIvK,CAAd,CAAA,CAA8B/C,CAA9B,CAAT,CADN,CAw1DqB,CA4DxCuwC,cAh5DJA,QAAsB,CAAC9hC,CAAD,CAAaE,CAAb,CAAyB6hC,CAAzB,CAA8CpwC,CAA9C,CAAyD,CACvEowC,CAAJ,EAA0D,UAA1D,GAA2B,MAAOA,EAAlC,GACIpwC,CADJ,CACgBowC,CADhB,CAGA,KAAIhjC,EAA0C,UAA/B,GAAA,MAAOgjC,EAAP,CAA4CA,CAA5C,CAAkEhtC,IAAAA,EAAjF,CACIb,EAAU,IAAIqM,CAAJ,CAAkBP,CAAlB,CAA8BE,CAA9B,CAA0CvO,CAA1C,CACd,OAAO,SAAS,CAACJ,CAAD,CAAS,CAAE,MAAOsN,EAAA,CAAU,QAAS,EAAG,CAAE,MAAO3K,EAAT,CAAtB,CAA2C6K,CAA3C,CAAA,CAAqDxN,CAArD,CAAT,CANkD,CAo1DnC,CA6DxC2J,KAx4DJ8mC,QAAe,EAAG,CAEd,IADA,IAAI5qC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,OAAOyxC,SAA6B,CAAC1wC,CAAD,CAAS,CACd,CAA3B,GAAI6F,CAAA1G,OAAJ,EAAgCsD,CAAA,CAAQoD,CAAA,CAAY,CAAZ,CAAR,CAAhC,GACIA,CADJ,CACkBA,CAAA,CAAY,CAAZ,CADlB,CAGA;MAAO7F,EAAAC,KAAAiH,KAAA,CAAiByC,EAAAnH,MAAA,CAAW,IAAK,EAAhB,CAAmB,CAACxC,CAAD,CAAA3B,OAAA,CAAgBwH,CAAhB,CAAnB,CAAjB,CAJkC,CAL/B,CA20D0B,CA8DxC1H,OAAQA,EA9DgC,CA+DxCwyC,OA73DJA,QAAe,CAAC5mC,CAAD,CAAQ,CACL,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAiC,EAAjC,CACA,OAAO,SAAS,CAAC/J,CAAD,CAAS,CACrB,MAAc,EAAd,GAAI+J,CAAJ,CACW5J,CAAA,EADX,CAGiB,CAAZ,CAAI4J,CAAJ,CACM/J,CAAAC,KAAA,CAAY,IAAI+8B,EAAJ,CAAoB,EAApB,CAAuBh9B,CAAvB,CAAZ,CADN,CAIMA,CAAAC,KAAA,CAAY,IAAI+8B,EAAJ,CAAmBjzB,CAAnB,CAA2B,CAA3B,CAA8B/J,CAA9B,CAAZ,CARU,CAFN,CA8zDqB,CAgExC4wC,WA/0DJA,QAAmB,CAACvT,CAAD,CAAW,CAC1B,MAAO,SAAS,CAACr9B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIm9B,EAAJ,CAAuBC,CAAvB,CAAZ,CAAT,CADC,CA+wDc,CAiExCwT,MAlwDJA,QAAc,CAAC9mC,CAAD,CAAQ,CACJ,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAiC,EAAjC,CACA,OAAO,SAAS,CAAC/J,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIk+B,EAAJ,CAAkBp0B,CAAlB,CAAyB/J,CAAzB,CAAZ,CAAT,CAFP,CAisDsB,CAkExC8wC,UA9tDJA,QAAkB,CAACzT,CAAD,CAAW,CACzB,MAAO,SAAS,CAACr9B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIs+B,EAAJ,CAAsBlB,CAAtB,CAAgCr9B,CAAhC,CAAZ,CAAT,CADA,CA4pDe,CAmExCF,SAAUA,EAnE8B,CAoExCixC,OA1pDJA,QAAe,CAAC1T,CAAD,CAAW,CACtB,MAAO,SAAS,CAACr9B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI4+B,EAAJ,CAAmBxB,CAAnB,CAAZ,CAAT,CADH,CAslDkB,CAqExC2T,WAlnDJA,QAAmB,CAACvoC,CAAD;AAASrI,CAAT,CAAoB,CACjB,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAO,SAAS,CAACnK,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIo/B,EAAJ,CAAuB52B,CAAvB,CAA+BrI,CAA/B,CAAZ,CAAT,CAFU,CA6iDK,CAsExCyM,KAAMA,EAtEkC,CAuExCokC,cA1kDJA,QAAsB,CAACtR,CAAD,CAAYC,CAAZ,CAAwB,CAC1C,MAAO,SAAS,CAAC5/B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIy/B,EAAJ,CAA0BC,CAA1B,CAAqCC,CAArC,CAAZ,CAAT,CADiB,CAmgDF,CAwExCsR,MA/9CJA,QAAc,EAAG,CACb,MAAO,SAAS,CAAClxC,CAAD,CAAS,CAAE,MAAOF,GAAA,EAAA,CAAWwN,CAAA,CAAUe,EAAV,CAAA,CAA+BrO,CAA/B,CAAX,CAAT,CADZ,CAu5C2B,CAyExCmxC,YA59CJA,QAAoB,CAACC,CAAD,CAAqBziC,CAArB,CAAiCvO,CAAjC,CAA4C,CAC5D,IAAIT,CAEAA,EAAA,CADAyxC,CAAJ,EAAwD,QAAxD,GAA0B,MAAOA,EAAjC,CACaA,CADb,CAIa,CACL3iC,WAAY2iC,CADP,CAELziC,WAAYA,CAFP,CAGL7O,SAAU,CAAA,CAHL,CAILM,UAAWA,CAJN,CAOb,OAAO,SAAS,CAACJ,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAYsO,EAAA,CAAoB5O,CAApB,CAAZ,CAAT,CAbmC,CAm5CpB,CA0ExC0xC,OAx6CJA,QAAe,CAAC7nC,CAAD,CAAY,CACvB,MAAO,SAAS,CAACxJ,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI8gC,EAAJ,CAAmBv3B,CAAnB,CAA8BxJ,CAA9B,CAAZ,CAAT,CADF,CA81CiB,CA2ExCsxC,KAz2CJA,QAAa,CAACvnC,CAAD,CAAQ,CACjB,MAAO,SAAS,CAAC/J,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIwhC,EAAJ,CAAiB13B,CAAjB,CAAZ,CAAT,CADR,CA8xCuB,CA4ExCwnC,SA90CJA,QAAiB,CAACxnC,CAAD,CAAQ,CACrB,MAAO,SAAS,CAAC/J,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI4hC,EAAJ,CAAqB93B,CAArB,CAAZ,CAAT,CADJ,CAkwCmB;AA6ExCynC,UAjyCJA,QAAkB,CAACnU,CAAD,CAAW,CACzB,MAAO,SAAS,CAACr9B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIsiC,EAAJ,CAAsBlF,CAAtB,CAAZ,CAAT,CADA,CAotCe,CA8ExCoU,UAvvCJA,QAAkB,CAACjoC,CAAD,CAAY,CAC1B,MAAO,SAAS,CAACxJ,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI4iC,EAAJ,CAAsBr5B,CAAtB,CAAZ,CAAT,CADC,CAyqCc,CA+ExCkoC,UA9sCJA,QAAkB,EAAG,CAEjB,IADA,IAAI3xB,EAAQ,EAAZ,CACS9gB,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI8gB,CAAA,CAAM9gB,CAAN,CAAA,CAAYC,SAAA,CAAUD,CAAV,CAEhB,KAAImB,EAAY2f,CAAA,CAAMA,CAAA5gB,OAAN,CAAqB,CAArB,CAChB,OAAIwB,EAAA,CAAYP,CAAZ,CAAJ,EACI2f,CAAAxe,IAAA,EACO,CAAA,QAAS,CAACvB,CAAD,CAAS,CAAE,MAAO3B,GAAA,CAAO0hB,CAAP,CAAc/f,CAAd,CAAsBI,CAAtB,CAAT,CAF7B,EAKW,QAAS,CAACJ,CAAD,CAAS,CAAE,MAAO3B,GAAA,CAAO0hB,CAAP,CAAc/f,CAAd,CAAT,CAXZ,CA+nCuB,CAgFxC2xC,YA3pCJA,QAAoB,CAACvxC,CAAD,CAAYyd,CAAZ,CAAmB,CACrB,IAAK,EAAnB,GAAIA,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAO+zB,SAAoC,CAAC5xC,CAAD,CAAS,CAChD,MAAOA,EAAAC,KAAA,CAAY,IAAIwjC,EAAJ,CAAwBrjC,CAAxB,CAAmCyd,CAAnC,CAAZ,CADyC,CAFjB,CA2kCK,CAiFxCg0B,UAnkCJA,QAAkB,EAAG,CACjB,MAAO3iC,GAAA,CAAUpN,CAAV,CADU,CAk/BuB,CAkFxCoN,UAAWA,EAlF6B,CAmFxC4iC,YAjkCJA,QAAoB,CAACjE,CAAD,CAAkBtrC,CAAlB,CAAkC,CAClD,MAAOA,EAAA,CAAiB2M,EAAA,CAAU,QAAS,EAAG,CAAE,MAAO2+B,EAAT,CAAtB;AAAmDtrC,CAAnD,CAAjB,CAAsF2M,EAAA,CAAU,QAAS,EAAG,CAAE,MAAO2+B,EAAT,CAAtB,CAD3C,CA8+BV,CAoFxCvhC,KAAMA,EApFkC,CAqFxCI,SAAUA,EArF8B,CAsFxCqlC,UAhkCJA,QAAkB,CAAC1U,CAAD,CAAW,CACzB,MAAO,SAAS,CAACr9B,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIkkC,EAAJ,CAAsB9G,CAAtB,CAAZ,CAAT,CADA,CA0+Be,CAuFxC2U,UA/hCJA,QAAkB,CAACxoC,CAAD,CAAYk7B,CAAZ,CAAuB,CACnB,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC,CAAA,CAAxC,CACA,OAAO,SAAS,CAAC1kC,CAAD,CAAS,CACrB,MAAOA,EAAAC,KAAA,CAAY,IAAIwkC,EAAJ,CAAsBj7B,CAAtB,CAAiCk7B,CAAjC,CAAZ,CADc,CAFY,CAw8BG,CAwFxCuN,IA5+BJA,QAAY,CAACxxB,CAAD,CAAiBhf,CAAjB,CAAwBf,CAAxB,CAAkC,CAC1C,MAAOwxC,SAA4B,CAAClyC,CAAD,CAAS,CACxC,MAAOA,EAAAC,KAAA,CAAY,IAAIglC,EAAJ,CAAexkB,CAAf,CAA+Bhf,CAA/B,CAAsCf,CAAtC,CAAZ,CADiC,CADF,CAo5BF,CAyFxC6lC,SAn6BJA,QAAiB,CAAC77B,CAAD,CAAmB/K,CAAnB,CAA2B,CACzB,IAAK,EAApB,GAAIA,CAAJ,GAAyBA,CAAzB,CAAkC+lC,EAAlC,CACA,OAAO,SAAS,CAAC1lC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI4lC,EAAJ,CAAqBn7B,CAArB,CAAuC/K,CAAAgmC,QAAvC,CAAuDhmC,CAAAimC,SAAvD,CAAZ,CAAT,CAFe,CA00BA,CA0FxCuM,aAn1BJA,QAAqB,CAACn2B,CAAD,CAAW5b,CAAX,CAAsBT,CAAtB,CAA8B,CAC7B,IAAK,EAAvB,GAAIS,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACe,KAAK,EAApB,GAAIxK,CAAJ,GAAyBA,CAAzB,CAAkC+lC,EAAlC,CACA,OAAO,SAAS,CAAC1lC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI+mC,EAAJ,CAAyBhrB,CAAzB,CAAmC5b,CAAnC,CAA8CT,CAAAgmC,QAA9C;AAA8DhmC,CAAAimC,SAA9D,CAAZ,CAAT,CAHsB,CAyvBP,CA2FxC35B,aAAcA,EA3F0B,CA4FxCmmC,aAzwBJA,QAAqB,CAAChyC,CAAD,CAAY,CACX,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAO,SAAS,CAACnK,CAAD,CAAS,CAAE,MAAO8F,GAAA,CAAM,QAAS,EAAG,CAChD,MAAO9F,EAAAjB,KAAA,CAAY8N,EAAA,CAAK,QAAS,CAACnO,CAAD,CAAKkC,CAAL,CAAY,CACrCyxC,CAAAA,CAAU3zC,CAAA2zC,QACd,OAAQ,CAAEzxC,MAAOA,CAAT,CAAgByxC,QAASjyC,CAAAiK,IAAA,EAAzB,CAA0C1B,KAAM0pC,CAAhD,CAFiC,CAA1B,CAGhB,CAAEA,QAASjyC,CAAAiK,IAAA,EAAX,CAA4BzJ,MAAO4C,IAAAA,EAAnC,CAA8CmF,KAAMnF,IAAAA,EAApD,CAHgB,CAAZ,CAG8DzB,CAAA,CAAI,QAAS,CAACrD,CAAD,CAAK,CAEnF,MAAO,KAAI8oC,EAAJ,CAD2C9oC,CAAAkC,MAC3C,CADOlC,CAAA2zC,QACP,CAD0B3zC,CAAAiK,KAC1B,CAF4E,CAAlB,CAH9D,CADyC,CAAlB,CAAT,CAFI,CA6qBW,CA6FxC2pC,QA1rBJA,QAAgB,CAACloC,CAAD,CAAMhK,CAAN,CAAiB,CACX,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAOmF,GAAA,CAAYlF,CAAZ,CAAiB5I,EAAA,CAAW,IAAImkB,EAAf,CAAjB,CAAiDvlB,CAAjD,CAFsB,CA6lBW,CA8FxCkP,YAAaA,EA9F2B,CA+FxC64B,UAvrBJA,QAAkB,CAAC/nC,CAAD,CAAY,CACR,IAAK,EAAvB,GAAIA,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,OAAOpI,EAAA,CAAI,QAAS,CAACnB,CAAD,CAAQ,CAAE,MAAO,KAAIsnC,EAAJ,CAActnC,CAAd,CAAqBR,CAAAiK,IAAA,EAArB,CAAT,CAArB,CAFmB,CAwlBc,CAgGxCkoC,QArqBJA,QAAgB,EAAG,CACf,MAAOp0C,GAAA,CAAO4R,EAAP;AAAuB,EAAvB,CADQ,CAqkByB,CAiGxCM,OAlqBJmiC,QAAiB,CAACnK,CAAD,CAAmB,CAChC,MAAOoK,SAA+B,CAACzyC,CAAD,CAAS,CAC3C,MAAOA,EAAAC,KAAA,CAAY,IAAImoC,EAAJ,CAAmBC,CAAnB,CAAZ,CADoC,CADf,CAikBQ,CAkGxCqK,YArmBJA,QAAoB,CAACrJ,CAAD,CAAaC,CAAb,CAA+B,CACtB,IAAK,EAA9B,GAAIA,CAAJ,GAAmCA,CAAnC,CAAsD,CAAtD,CACA,OAAOqJ,SAAoC,CAAC3yC,CAAD,CAAS,CAChD,MAAOA,EAAAC,KAAA,CAAY,IAAImpC,EAAJ,CAAwBC,CAAxB,CAAoCC,CAApC,CAAZ,CADyC,CAFL,CAmgBP,CAmGxC36B,WA9hBJA,QAAmB,CAACyB,CAAD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAChC,IAAIhQ,EAAY+J,CAAhB,CACIsG,EAAyB,IAD7B,CAEIw5B,EAAgB3kC,MAAAC,kBAChB5E,EAAA,CAAY,CAAZ,CAAJ,GACIP,CADJ,CACgB,CADhB,CAGIO,EAAA,CAAY,CAAZ,CAAJ,CACIP,CADJ,CACgB,CADhB,CAGSgI,CAAA,CAAU,CAAV,CAHT,GAII6hC,CAJJ,CAIoB,CAJpB,CAMItpC,EAAA,CAAY,CAAZ,CAAJ,CACIP,CADJ,CACgB,CADhB,CAGSgI,CAAA,CAAU,CAAV,CAHT,GAIIqI,CAJJ,CAI6B,CAJ7B,CAMA,OAAOmiC,SAAmC,CAAC5yC,CAAD,CAAS,CAC/C,MAAOA,EAAAC,KAAA,CAAY,IAAI+pC,EAAJ,CAAuB55B,CAAvB,CAAuCK,CAAvC,CAA+Dw5B,CAA/D,CAA8E7pC,CAA9E,CAAZ,CADwC,CAnBnB,CA2bQ,CAoGxCyyC,aA3YJA,QAAqB,CAAC5kB,CAAD,CAAWC,CAAX,CAA4B,CAC7C,MAAO,SAAS,CAACluB,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAI6qC,EAAJ,CAAyB7c,CAAzB,CAAmCC,CAAnC,CAAZ,CAAT,CADoB,CAuSL,CAqGxC4kB,WAjRJA,QAAmB,CAAC5kB,CAAD,CAAkB,CACjC,MAAO6kB,SAAmC,CAAC/yC,CAAD,CAAS,CAC/C,MAAOA,EAAAC,KAAA,CAAY,IAAI4rC,EAAJ,CAAqB3d,CAArB,CAAZ,CADwC,CADlB,CA4KO,CAsGxC8kB,eArMJA,QAAuB,EAAG,CAEtB,IADA,IAAI1xC;AAAO,EAAX,CACSrC,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIqC,CAAA,CAAKrC,CAAL,CAAA,CAAWC,SAAA,CAAUD,CAAV,CAEf,OAAO,SAAS,CAACe,CAAD,CAAS,CACrB,IAAIgC,CACiC,WAArC,GAAI,MAAOV,EAAA,CAAKA,CAAAnC,OAAL,CAAmB,CAAnB,CAAX,GACI6C,CADJ,CACcV,CAAAC,IAAA,EADd,CAIA,OAAOvB,EAAAC,KAAA,CAAY,IAAIisC,EAAJ,CADD5qC,CACC,CAAwCU,CAAxC,CAAZ,CANc,CALH,CA+FkB,CAuGxCuI,IAvHJ0oC,QAAc,EAAG,CAEb,IADA,IAAIptC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAEtB,OAAOi0C,SAA4B,CAAClzC,CAAD,CAAS,CACxC,MAAOA,EAAAC,KAAAiH,KAAA,CAAiBqD,EAAA/H,MAAA,CAAU,IAAK,EAAf,CAAkB,CAACxC,CAAD,CAAA3B,OAAA,CAAgBwH,CAAhB,CAAlB,CAAjB,CADiC,CAL/B,CAgB2B,CAwGxCstC,OA9GJA,QAAe,CAACnxC,CAAD,CAAU,CACrB,MAAO,SAAS,CAAChC,CAAD,CAAS,CAAE,MAAOA,EAAAC,KAAA,CAAY,IAAIuK,EAAJ,CAAgBxI,CAAhB,CAAZ,CAAT,CADJ,CAMmB,CAAd,CArpK9B,CAgwKIoxC,GAAmB,QAAS,EAAG,CAM/B,MALAA,SAAwB,CAACC,CAAD,CAAkBC,CAAlB,CAAqC,CAC/B,IAAK,EAA/B,GAAIA,CAAJ,GAAoCA,CAApC,CAAwDhuC,MAAAC,kBAAxD,CACA,KAAA8tC,gBAAA,CAAuBA,CACvB,KAAAC,kBAAA,CAAyBA,CAHgC,CAD9B,CAAZ,EAhwKvB,CAywKIC,GAAwB,QAAS,EAAG,CACpCA,QAASA,EAAoB,EAAG,CAC5B,IAAAl/B,cAAA;AAAqB,EADO,CAGhCk/B,CAAA/1C,UAAAg2C,mBAAA,CAAoDC,QAAS,EAAG,CAC5D,IAAAp/B,cAAAnE,KAAA,CAAwB,IAAIkjC,EAAJ,CAAoB,IAAAhzC,UAAAiK,IAAA,EAApB,CAAxB,CACA,OAAO,KAAAgK,cAAAlV,OAAP,CAAmC,CAFyB,CAIhEo0C,EAAA/1C,UAAAk2C,qBAAA,CAAsDC,QAAS,CAAC1qC,CAAD,CAAQ,CACnE,IAAI2qC,EAAmB,IAAAv/B,cAEvBu/B,EAAA,CAAiB3qC,CAAjB,CAAA,CAA0B,IAAImqC,EAAJ,CADDQ,CAAAC,CAAiB5qC,CAAjB4qC,CACqBR,gBAApB,CAAwD,IAAAjzC,UAAAiK,IAAA,EAAxD,CAHyC,CAKvE,OAAOkpC,EAb6B,CAAZ,EAzwK5B,CAoyKIO,GAAkB,QAAS,CAACl/B,CAAD,CAAS,CAEpCk/B,QAASA,EAAc,CAACC,CAAD,CAAW3zC,CAAX,CAAsB,CACzC,IAAIiD,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB,QAAS,CAAC1G,CAAD,CAAa,CAChD,IAAIkE,EAAa,IAAjB,CACIuE,EAAQvE,CAAA8uC,mBAAA,EADZ,CAEItqC,EAAe,IAAInI,CACvBmI,EAAAjI,IAAA,CAAiB,IAAIF,CAAJ,CAAiB,QAAS,EAAG,CAC1C2D,CAAAgvC,qBAAA,CAAgCzqC,CAAhC,CAD0C,CAA7B,CAAjB,CAGAvE,EAAAsvC,iBAAA,CAA4BxzC,CAA5B,CACA,OAAO0I,EARyC,CAAxC,CAAR7F,EASE,IACNA,EAAA0wC,SAAA,CAAiBA,CACjB1wC,EAAAgR,cAAA,CAAsB,EACtBhR;CAAAjD,UAAA,CAAkBA,CAClB,OAAOiD,EAdkC,CAD7CnG,CAAA,CAAU42C,CAAV,CAA0Bl/B,CAA1B,CAiBAk/B,EAAAt2C,UAAAw2C,iBAAA,CAA4CC,QAAS,CAACzzC,CAAD,CAAa,CAE9D,IADA,IAAI0zC,EAAiB,IAAAH,SAAA50C,OAArB,CACS6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBkzC,CAApB,CAAoClzC,CAAA,EAApC,CAAyC,CACrC,IAAIwS,EAAU,IAAAugC,SAAA,CAAc/yC,CAAd,CACdR,EAAAS,IAAA,CAAe,IAAAb,UAAAK,SAAA,CAAwB,QAAS,CAAC/B,CAAD,CAAK,CACnCA,CAAA8U,QACdgO,aAAArB,QAAA,CADuCzhB,CAAA8B,WACvC,CAFiD,CAAtC,CAGZgT,CAAAsR,MAHY,CAGG,CAAEtR,QAASA,CAAX,CAAoBhT,WAAYA,CAAhC,CAHH,CAAf,CAFqC,CAFqB,CAUlE,OAAOszC,EA5B6B,CAAlB,CA6BpBvzC,CA7BoB,CA8BtBsQ,GAAA,CAAYijC,EAAZ,CAA4B,CAACP,EAAD,CAA5B,CAEA,KAAIY,GAAiB,QAAS,CAACv/B,CAAD,CAAS,CAEnCu/B,QAASA,EAAa,CAACJ,CAAD,CAAW3zC,CAAX,CAAsB,CACxC,IAAIiD,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjCA,EAAA0wC,SAAA,CAAiBA,CACjB1wC,EAAAgR,cAAA,CAAsB,EACtBhR,EAAAjD,UAAA,CAAkBA,CAClB,OAAOiD,EALiC,CAD5CnG,CAAA,CAAUi3C,CAAV,CAAyBv/B,CAAzB,CAQAu/B,EAAA32C,UAAAsZ,WAAA,CAAqCs9B,QAAS,CAAC5zC,CAAD,CAAa,CACvD,IAAImC,EAAU,IAAd,CACIsG,EAAQtG,CAAA6wC,mBAAA,EADZ,CAEItqC,EAAe,IAAInI,CACvBmI,EAAAjI,IAAA,CAAiB,IAAIF,CAAJ,CAAiB,QAAS,EAAG,CAC1C4B,CAAA+wC,qBAAA,CAA6BzqC,CAA7B,CAD0C,CAA7B,CAAjB,CAGAC;CAAAjI,IAAA,CAAiB2T,CAAApX,UAAAsZ,WAAA5P,KAAA,CAAiC,IAAjC,CAAuC1G,CAAvC,CAAjB,CACA,OAAO0I,EARgD,CAU3DirC,EAAA32C,UAAA62C,MAAA,CAAgCC,QAAS,EAAG,CAGxC,IAFA,IAAI3xC,EAAU,IAAd,CACIuxC,EAAiBvxC,CAAAoxC,SAAA50C,OADrB,CAES6B,EAAI,CAAb,CAAgBA,CAAhB,CAAoBkzC,CAApB,CAAoClzC,CAAA,EAApC,CACK,SAAS,EAAG,CACT,IAAIwS,EAAU7Q,CAAAoxC,SAAA,CAAiB/yC,CAAjB,CACd2B,EAAAvC,UAAAK,SAAA,CAA2B,QAAS,EAAG,CAAE+S,CAAAgO,aAAArB,QAAA,CAA6Bxd,CAA7B,CAAF,CAAvC,CAAmF6Q,CAAAsR,MAAnF,CAFS,CAAZ,CAAD,EAJoC,CAU5C,OAAOqvB,EA7B4B,CAAlB,CA8BnB7lC,CA9BmB,CA+BrBuC,GAAA,CAAYsjC,EAAZ,CAA2B,CAACZ,EAAD,CAA3B,CAGA,KAAIgB,GAAiB,QAAS,CAAC3/B,CAAD,CAAS,CAEnC2/B,QAASA,EAAa,CAACC,CAAD,CAAkB,CACpC,IAAInxC,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkB2d,EAAlB,CAJE4vB,GAIF,CAARpxC,EAA6D,IACjEA,EAAAmxC,gBAAA,CAAwBA,CACxBnxC,EAAAqxC,eAAA,CAAuB,EACvBrxC,EAAAsxC,gBAAA,CAAwB,EACxBtxC,EAAAuxC,WAAA,CAAmB,EACnBvxC,EAAAwxC,QAAA,CAAgB,CAAA,CAChB,OAAOxxC,EAP6B,CADxCnG,CAAA,CAAUq3C,CAAV,CAAyB3/B,CAAzB,CAUA2/B,EAAA/2C,UAAAs3C,WAAA,CAAqCC,QAAS,CAACC,CAAD,CAAU,CAChD5gC,CAAAA,CAAU4gC,CAAA5gC,QAAA,CAAgB,GAAhB,CACd,IAAiB,EAAjB,GAAIA,CAAJ,CACI,KAAUvU,MAAJ,CAAU,6DAAV,CAAN;AAEJ,MAAOuU,EAAP,CAAiBmgC,CAAAvvB,gBALmC,CAOxDuvB,EAAA/2C,UAAAy3C,qBAAA,CAA+CC,QAAS,CAACF,CAAD,CAAU5uC,CAAV,CAAkB3E,CAAlB,CAAyB,CAC7E,GAA8B,EAA9B,GAAIuzC,CAAA5gC,QAAA,CAAgB,GAAhB,CAAJ,CACI,KAAUvU,MAAJ,CAAU,qDAAV,CAAN,CAEJ,GAA8B,EAA9B,GAAIm1C,CAAA5gC,QAAA,CAAgB,GAAhB,CAAJ,CACI,KAAUvU,MAAJ,CAAU,uDAAV,CAAN,CAEAk0C,CAAAA,CAAWQ,CAAAY,aAAA,CAA2BH,CAA3B,CAAoC5uC,CAApC,CAA4C3E,CAA5C,CAAmD+B,IAAAA,EAAnD,CAA8D,IAAAqxC,QAA9D,CACXO,EAAAA,CAAO,IAAItB,EAAJ,CAAmBC,CAAnB,CAA6B,IAA7B,CACX,KAAAY,gBAAAzkC,KAAA,CAA0BklC,CAA1B,CACA,OAAOA,EAVsE,CAYjFb,EAAA/2C,UAAA63C,oBAAA,CAA8CC,QAAS,CAACN,CAAD,CAAU5uC,CAAV,CAAkB3E,CAAlB,CAAyB,CAC5E,GAA8B,EAA9B,GAAIuzC,CAAA5gC,QAAA,CAAgB,GAAhB,CAAJ,CACI,KAAUvU,MAAJ,CAAU,sDAAV,CAAN,CAEAk0C,CAAAA,CAAWQ,CAAAY,aAAA,CAA2BH,CAA3B;AAAoC5uC,CAApC,CAA4C3E,CAA5C,CAAmD+B,IAAAA,EAAnD,CAA8D,IAAAqxC,QAA9D,CACXlyC,EAAAA,CAAU,IAAIwxC,EAAJ,CAAkBJ,CAAlB,CAA4B,IAA5B,CACd,KAAAW,eAAAxkC,KAAA,CAAyBvN,CAAzB,CACA,OAAOA,EAPqE,CAShF4xC,EAAA/2C,UAAA+3C,2BAAA,CAAqDC,QAAS,CAAC9wC,CAAD,CAAa+wC,CAAb,CAAyB,CACnF,IAAIpyC,EAAQ,IAAZ,CACI0wC,EAAW,EACfrvC,EAAAtB,UAAA,CAAqB,QAAS,CAACxC,CAAD,CAAQ,CAClCmzC,CAAA7jC,KAAA,CAAc,CAAE4U,MAAOzhB,CAAAyhB,MAAPA,CAAqB2wB,CAAvB,CAAmCj0B,aAAcvB,CAAAW,WAAA,CAAwBhgB,CAAxB,CAAjD,CAAd,CADkC,CAAtC,CAEG,QAAS,CAAC9C,CAAD,CAAM,CACdi2C,CAAA7jC,KAAA,CAAc,CAAE4U,MAAOzhB,CAAAyhB,MAAPA,CAAqB2wB,CAAvB,CAAmCj0B,aAAcvB,CAAAc,YAAA,CAAyBjjB,CAAzB,CAAjD,CAAd,CADc,CAFlB,CAIG,QAAS,EAAG,CACXi2C,CAAA7jC,KAAA,CAAc,CAAE4U,MAAOzhB,CAAAyhB,MAAPA,CAAqB2wB,CAAvB,CAAmCj0B,aAAcvB,CAAAgB,eAAA,EAAjD,CAAd,CADW,CAJf,CAOA,OAAO8yB,EAV4E,CAYvFQ,EAAA/2C,UAAAk4C,iBAAA,CAA2CC,QAAS,CAACjxC,CAAD,CAAakxC,CAAb,CAAkC,CAClF,IAAIvyC,EAAQ,IACgB,KAAK,EAAjC,GAAIuyC,CAAJ,GAAsCA,CAAtC,CAA4D,IAA5D,CACA,KAAIC,EAAS,EAAb,CACIC,EAAY,CAAED,OAAQA,CAAV,CAAkBE,MAAO,CAAA,CAAzB,CACZC,EAAAA,CAAqBzB,CAAA0B,4BAAA,CAA0CL,CAA1C;AAA+D,IAAAf,QAA/D,CAGzB,KAAIqB,EAAsBF,CAAA1C,kBAA1B,CACIpqC,CACJ,KAAAzI,SAAA,CAAc,QAAS,EAAG,CACtByI,CAAA,CAAexE,CAAAtB,UAAA,CAAqB,QAAS,CAACxF,CAAD,CAAI,CAC7C,IAAIgD,EAAQhD,CACRA,EAAJ,WAAiB2C,EAAjB,GACIK,CADJ,CACYyC,CAAAkyC,2BAAA,CAAiC30C,CAAjC,CAAwCyC,CAAAyhB,MAAxC,CADZ,CAGA+wB,EAAA3lC,KAAA,CAAY,CAAE4U,MAAOzhB,CAAAyhB,MAAT,CAAsBtD,aAAcvB,CAAAW,WAAA,CAAwBhgB,CAAxB,CAApC,CAAZ,CAL6C,CAAlC,CAMZ,QAAS,CAAC9C,CAAD,CAAM,CACd+3C,CAAA3lC,KAAA,CAAY,CAAE4U,MAAOzhB,CAAAyhB,MAAT,CAAsBtD,aAAcvB,CAAAc,YAAA,CAAyBjjB,CAAzB,CAApC,CAAZ,CADc,CANH,CAQZ,QAAS,EAAG,CACX+3C,CAAA3lC,KAAA,CAAY,CAAE4U,MAAOzhB,CAAAyhB,MAAT,CAAsBtD,aAAcvB,CAAAgB,eAAA,EAApC,CAAZ,CADW,CARA,CADO,CAA1B,CAJwB+0B,CAAA3C,gBAAA8C,GAAuC7wC,MAAAC,kBAAvC4wC,CACpB,CADoBA,CAChBH,CAAA3C,gBAGR,CAaI6C,EAAJ,GAA4B5wC,MAAAC,kBAA5B,EACI,IAAA9E,SAAA,CAAc,QAAS,EAAG,CAAE,MAAOyI,EAAA9B,YAAA,EAAT,CAA1B,CAAkE8uC,CAAlE,CAEJ,KAAAtB,WAAA1kC,KAAA,CAAqB4lC,CAArB,CACA;IAAIjB,EAAU,IAAAA,QACd,OAAO,CACHuB,KAAMA,QAAS,CAACpB,CAAD,CAAU5uC,CAAV,CAAkBuY,CAAlB,CAA8B,CACzCm3B,CAAAC,MAAA,CAAkB,CAAA,CAClBD,EAAAO,SAAA,CAAqB9B,CAAAY,aAAA,CAA2BH,CAA3B,CAAoC5uC,CAApC,CAA4CuY,CAA5C,CAAwD,CAAA,CAAxD,CAA8Dk2B,CAA9D,CAFoB,CAD1C,CA5B2E,CAmCtFN,EAAA/2C,UAAA84C,oBAAA,CAA8CC,QAAS,CAACC,CAAD,CAAyB,CAC5E,IAAIV,EAAY,CAAED,OAAQW,CAAV,CAAkCT,MAAO,CAAA,CAAzC,CAChB,KAAAnB,WAAA1kC,KAAA,CAAqB4lC,CAArB,CACA,KAAIjB,EAAU,IAAAA,QACd,OAAO,CACHuB,KAAMA,QAAS,CAACpB,CAAD,CAAU,CACjByB,CAAAA,CAAmC,QAApB,GAAC,MAAOzB,EAAR,CAAgC,CAACA,CAAD,CAAhC,CAA4CA,CAC/Dc,EAAAC,MAAA,CAAkB,CAAA,CAClBD,EAAAO,SAAA,CAAqBI,CAAA10C,IAAA,CAAiB,QAAS,CAACizC,CAAD,CAAU,CACrD,MAAOT,EAAA0B,4BAAA,CAA0CjB,CAA1C,CAAmDH,CAAnD,CAD8C,CAApC,CAHA,CADtB,CAJqE,CAchFN,EAAA/2C,UAAA2gB,MAAA,CAAgCu4B,QAAS,EAAG,CAGxC,IAFA,IAAIrzC,EAAQ,IAAZ,CACIqxC,EAAiB,IAAAA,eACrB,CAA+B,CAA/B,CAAOA,CAAAv1C,OAAP,CAAA,CACIu1C,CAAAhxC,MAAA,EAAA2wC,MAAA,EAEJz/B,EAAApX,UAAA2gB,MAAAjX,KAAA,CAA4B,IAA5B,CACA,KAAA0tC,WAAA,CAAkB,IAAAA,WAAArrC,OAAA,CAAuB,QAAS,CAACotC,CAAD,CAAO,CACrD,MAAIA,EAAAZ,MAAJ;CACI1yC,CAAAmxC,gBAAA,CAAsBmC,CAAAd,OAAtB,CAAmCc,CAAAN,SAAnC,CACO,CAAA,CAAA,CAFX,EAIO,CAAA,CAL8C,CAAvC,CAPsB,CAe5C9B,EAAA0B,4BAAA,CAA4CW,QAAS,CAAC5B,CAAD,CAAUH,CAAV,CAAmB,CACpE,IAAIxxC,EAAQ,IACI,KAAK,EAArB,GAAIwxC,CAAJ,GAA0BA,CAA1B,CAAoC,CAAA,CAApC,CACA,IAAuB,QAAvB,GAAI,MAAOG,EAAX,CACI,MAAO,KAAI5B,EAAJ,CAAoB9tC,MAAAC,kBAApB,CAgFX,KA9EA,IAAIY,EAAM6uC,CAAA71C,OAAV,CACI03C,EAAc,EADlB,CAEIV,EAAoB7wC,MAAAC,kBAFxB,CAGI2wC,EAAsB5wC,MAAAC,kBAH1B,CAIIuf,EAAQ,CAJZ,CAKIte,EAAUA,QAAS,CAACxF,CAAD,CAAI,CACvB,IAAI81C,EAAYhyB,CAAhB,CACIiyB,EAAiBA,QAAS,CAAChtC,CAAD,CAAQ,CAClC+sC,CAAA,EAAa/sC,CAAb,CAAqB1G,CAAA2hB,gBADa,CADtC,CAII2kB,EAAIqL,CAAA,CAAQh0C,CAAR,CACR,QAAQ2oC,CAAR,EACI,KAAK,GAAL,CACSkL,CAAL,EACIkC,CAAA,CAAe,CAAf,CAEJ,MACJ,MAAK,GAAL,CACIA,CAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIF,CAAA,CAAa/xB,CACbiyB,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIF,CAAA,CAAc,EACdE,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACI,GAAIZ,CAAJ,GAA0B7wC,MAAAC,kBAA1B,CACI,KAAU1F,MAAJ,CAAU,gGAAV,CAAN;AAGJs2C,CAAA,CAAkC,EAAd,CAAAU,CAAA,CAAkBA,CAAlB,CAA+B/xB,CACnDiyB,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACI,GAAIb,CAAJ,GAA4B5wC,MAAAC,kBAA5B,CACI,KAAU1F,MAAJ,CAAU,gGAAV,CAAN,CAGJq2C,CAAA,CAAoC,EAAd,CAAAW,CAAA,CAAkBA,CAAlB,CAA+B/xB,CACrD,MACJ,SACI,GAAI+vB,CAAJ,EAAelL,CAAAqN,MAAA,CAAQ,SAAR,CAAf,GACc,CADd,GACQh2C,CADR,EACsC,GADtC,GACmBg0C,CAAA,CAAQh0C,CAAR,CAAY,CAAZ,CADnB,EAC2C,CAEnC,IAAIg2C,EADShC,CAAA/tC,MAAA+gB,CAAchnB,CAAdgnB,CACDgvB,MAAA,CAAa,iCAAb,CACZ,IAAIA,CAAJ,CAAW,CACPh2C,CAAA,EAAKg2C,CAAA,CAAM,CAAN,CAAA73C,OAAL,CAAuB,CACnB6c,KAAAA,EAAW1T,UAAA,CAAW0uC,CAAA,CAAM,CAAN,CAAX,CAAXh7B,CAEAi7B,EAAe,IAAK,EACxB,QAFWD,CAAAE,CAAM,CAANA,CAEX,EACI,KAAK,IAAL,CACID,CAAA,CAAej7B,CACf,MACJ,MAAK,GAAL,CACIi7B,CAAA,CAA0B,GAA1B,CAAej7B,CACf,MACJ,MAAK,GAAL,CACIi7B,CAAA,CAAiC,GAAjC,CAAej7B,CARvB,CAaA+6B,CAAA,CAAeE,CAAf,CAA8BE,CAAAnyB,gBAA9B,CACA,MAnBO,CAHwB,CA0B3C,KAAUnlB,MAAJ,CAAU,yFAAV;AACgD8pC,CADhD,CACoD,IADpD,CAAN,CA5DR,CA+DA7kB,CAAA,CAAQgyB,CACRM,EAAA,CAAUp2C,CAtEa,CAL3B,CA6EIm2C,EAAS,IA7Eb,CA6EmBC,CA7EnB,CA8ESp2C,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACIwF,CAAA,CAAQxF,CAAR,CACA,CAAAA,CAAA,CAAIo2C,CAER,OAA0B,EAA1B,CAAIlB,CAAJ,CACW,IAAI9C,EAAJ,CAAoB+C,CAApB,CADX,CAIW,IAAI/C,EAAJ,CAAoB+C,CAApB,CAAuCD,CAAvC,CA5FyD,CA+FxE3B,EAAAY,aAAA,CAA6BkC,QAAS,CAACrC,CAAD,CAAU5uC,CAAV,CAAkBuY,CAAlB,CAA8B24B,CAA9B,CAA2DzC,CAA3D,CAAoE,CACtG,IAAIxxC,EAAQ,IACwB,KAAK,EAAzC,GAAIi0C,CAAJ,GAA8CA,CAA9C,CAA4E,CAAA,CAA5E,CACgB,KAAK,EAArB,GAAIzC,CAAJ,GAA0BA,CAA1B,CAAoC,CAAA,CAApC,CACA,IAA8B,EAA9B,GAAIG,CAAA5gC,QAAA,CAAgB,GAAhB,CAAJ,CACI,KAAUvU,MAAJ,CAAU,wEAAV,CAAN,CA0FJ,IAvFA,IAAIsG,EAAM6uC,CAAA71C,OAAV,CACIo4C,EAAe,EADnB,CAEIC,EAAW3C,CAAA,CAAUG,CAAAyC,QAAA,CAAgB,OAAhB,CAAyB,EAAzB,CAAArjC,QAAA,CAAqC,GAArC,CAAV,CAAsD4gC,CAAA5gC,QAAA,CAAgB,GAAhB,CAFrE,CAGI0Q,EAAsB,EAAd,GAAA0yB,CAAA,CAAkB,CAAlB,CAAuBA,CAAvB,CAAkC,CAAC,IAAAxyB,gBAH/C,CAII7H,EAA6B,QAAlB,GAAA,MAAO/W,EAAP,CACX,QAAS,CAACxI,CAAD,CAAI,CAAE,MAAOA,EAAT,CADF,CAEX,QAAS,CAACA,CAAD,CAAI,CACT,MAAI05C,EAAJ,EAAmClxC,CAAA,CAAOxI,CAAP,CAAnC,UAAwDk2C,GAAxD,CACW1tC,CAAA,CAAOxI,CAAP,CAAAm2C,SADX,CAGO3tC,CAAA,CAAOxI,CAAP,CAJE,CANjB,CAYIi5C,EAAc,EAZlB,CAaIa,EAAUA,QAAS,CAAC12C,CAAD,CAAI,CACvB,IAAI81C;AAAYhyB,CAAhB,CACIiyB,EAAiBA,QAAS,CAAChtC,CAAD,CAAQ,CAClC+sC,CAAA,EAAa/sC,CAAb,CAAqB1G,CAAA2hB,gBADa,CADtC,CAIIxD,EAAe,IAAK,EAJxB,CAKImoB,EAAIqL,CAAA,CAAQh0C,CAAR,CACR,QAAQ2oC,CAAR,EACI,KAAK,GAAL,CACSkL,CAAL,EACIkC,CAAA,CAAe,CAAf,CAEJ,MACJ,MAAK,GAAL,CACIA,CAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIF,CAAA,CAAa/xB,CACbiyB,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIF,CAAA,CAAc,EACdE,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIv1B,CAAA,CAAevB,CAAAgB,eAAA,EACf81B,EAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIA,CAAA,CAAe,CAAf,CACA,MACJ,MAAK,GAAL,CACIv1B,CAAA,CAAevB,CAAAc,YAAA,CAAyBpC,CAAzB,EAAuC,OAAvC,CACfo4B,EAAA,CAAe,CAAf,CACA,MACJ,SACI,GAAIlC,CAAJ,EAAelL,CAAAqN,MAAA,CAAQ,SAAR,CAAf,GACc,CADd,GACQh2C,CADR,EACsC,GADtC,GACmBg0C,CAAA,CAAQh0C,CAAR,CAAY,CAAZ,CADnB,EAC2C,CAEnC,IAAIg2C,EADShC,CAAA/tC,MAAA+gB,CAAchnB,CAAdgnB,CACDgvB,MAAA,CAAa,iCAAb,CACZ,IAAIA,CAAJ,CAAW,CACPh2C,CAAA,EAAKg2C,CAAA,CAAM,CAAN,CAAA73C,OAAL,CAAuB,CACnB6c,KAAAA,EAAW1T,UAAA,CAAW0uC,CAAA,CAAM,CAAN,CAAX,CAAXh7B,CAEAi7B,EAAe,IAAK,EACxB,QAFWD,CAAAE,CAAM,CAANA,CAEX,EACI,KAAK,IAAL,CACID,CAAA,CAAej7B,CACf,MACJ,MAAK,GAAL,CACIi7B,CAAA,CAA0B,GAA1B,CAAej7B,CACf,MACJ,MAAK,GAAL,CACIi7B,CAAA;AAAiC,GAAjC,CAAej7B,CARvB,CAaA+6B,CAAA,CAAeE,CAAf,CAA8BU,CAAA3yB,gBAA9B,CACA,MAnBO,CAHwB,CA0B3CxD,CAAA,CAAevB,CAAAW,WAAA,CAAwBzD,CAAA,CAASwsB,CAAT,CAAxB,CACfoN,EAAA,CAAe,CAAf,CAzDR,CA4DIv1B,CAAJ,EACI+1B,CAAArnC,KAAA,CAAkB,CAAE4U,MAAqB,EAAd,CAAA+xB,CAAA,CAAkBA,CAAlB,CAA+B/xB,CAAxC,CAA+CtD,aAAcA,CAA7D,CAAlB,CAEJsD,EAAA,CAAQgyB,CACRc,EAAA,CAAU52C,CAvEa,CAb3B,CAsFI22C,EAAS,IAtFb,CAsFmBC,CAtFnB,CAuFS52C,EAAI,CAAb,CAAgBA,CAAhB,CAAoBmF,CAApB,CAAyBnF,CAAA,EAAzB,CACI02C,CAAA,CAAQ12C,CAAR,CACA,CAAAA,CAAA,CAAI42C,CAER,OAAOL,EAnG+F,CAqG1GhD,EAAA/2C,UAAAq6C,IAAA,CAA8BC,QAAS,CAAChf,CAAD,CAAW,CAC9C,IAAIif,EAAsBxD,CAAAvvB,gBAA1B,CACIgzB,EAAgB,IAAApzB,UACpB2vB,EAAAvvB,gBAAA,CAAgC,CAChC,KAAAJ,UAAA,CAAiBtf,MAAAC,kBACjB,KAAAsvC,QAAA,CAAe,CAAA,CACfr1B,EAAAC,SAAA,CAA0B,IAC1B,KAAIw4B,EAAU,CACV7C,KAAM,IAAAH,qBAAAh/B,KAAA,CAA+B,IAA/B,CADI,CAEViiC,IAAK,IAAA7C,oBAAAp/B,KAAA,CAA8B,IAA9B,CAFK,CAGVkI,MAAO,IAAAA,MAAAlI,KAAA,CAAgB,IAAhB,CAHG,CAIVy/B,iBAAkB,IAAAA,iBAAAz/B,KAAA,CAA2B,IAA3B,CAJR,CAKVqgC,oBAAqB,IAAAA,oBAAArgC,KAAA,CAA8B,IAA9B,CALX,CAOd;GAAI,CACA,IAAIkiC,EAAMrf,CAAA,CAASmf,CAAT,CACV,KAAA95B,MAAA,EACA,OAAOg6B,EAHP,CAAJ,OAKQ,CACJ5D,CAAAvvB,gBAGA,CAHgC+yB,CAGhC,CAFA,IAAAnzB,UAEA,CAFiBozB,CAEjB,CADA,IAAAnD,QACA,CADe,CAAA,CACf,CAAAr1B,CAAAC,SAAA,CAA0Bjc,IAAAA,EAJtB,CAnBsC,CA0BlD,OAAO+wC,EAjV4B,CAAlB,CAkVnB5vB,EAlVmB,CAArB,CAsVIyzB,GAAwB36C,MAAAmvC,OAAA,CAAc,CACtC2H,cAAeA,EADuB,CAAd,CAtV5B,CA2VI8D,GAAyB,WAAzBA,GAAS,MAAOC,KAAhBD,EAAqE,WAArEA,GAAwC,MAAOE,kBAA/CF,EACAC,IADAD,WACgBE,kBADhBF,EACqCC,IA5VzC,CA6VIE,GAA6B,WAA7BA,GAAW,MAAO77C,OAAlB67C,EAA4C77C,MA7VhD,CA8VI87C,EAJ6B,WAI7BA,GAJW,MAAOpoC,OAIlBooC,EAJ4CpoC,MAI5CooC,EAAoBD,EAApBC,EAAgCJ,EAEhC,IAAKI,CAAAA,CAAL,CACI,KAAU54C,MAAJ,CAAU,+DAAV,CAAN,CAwDR,IAAIoS,GAAclQ,CAAA,CAAI,QAAS,CAACnE,CAAD,CAAIqL,CAAJ,CAAW,CAAE,MAAOrL,EAAAyU,SAAT,CAAxB,CAAlB,CASIZ,EAAkB,QAAS,CAACmD,CAAD,CAAS,CAEpCnD,QAASA,EAAc,CAACinC,CAAD,CAAe,CAClC,IAAIr1C;AAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IAAjC,CACIs1C,EAAU,CACVxuC,MAAO,CAAA,CADG,CAEVyuC,UAAWA,QAAS,EAAG,CACZ,IAAA,CAAA,IAAA,IAAAC,YAAA,CAnEnB,GAAIJ,CAAAK,eAAJ,CACI,CAAA,CAAO,IAAIL,CAAAK,eADf,KAGK,IAAML,CAAAM,eAAN,CACD,CAAA,CAAO,IAAIN,CAAAM,eADV,KAID,MAAUl5C,MAAJ,CAAU,uCAAV,CAAN,CA4De,IAxDnB,IAAI44C,CAAAK,eAAJ,CACI,CAAA,CAAO,IAAIL,CAAAK,eADf,KAGK,CACD,IAAIE,EAAS,IAAK,EAClB,IAAI,CAEA,IADA,IAAIC,EAAU,CAAC,gBAAD,CAAmB,mBAAnB,CAAwC,oBAAxC,CAAd,CACSj4C,EAAI,CAAb,CAAoB,CAApB,CAAgBA,CAAhB,CAAuBA,CAAA,EAAvB,CACI,GAAI,CACAg4C,CAAA,CAASC,CAAA,CAAQj4C,CAAR,CACL,KAAIy3C,CAAAS,cAAJ,CAAwBF,CAAxB,CACA,MAHJ,CAMJ,MAAOhyC,CAAP,CAAU,EAGd,CAAA,CAAO,IAAIyxC,CAAAS,cAAJ,CAAwBF,CAAxB,CAZP,CAcJ,MAAOhyC,CAAP,CAAU,CACN,KAAUnH,MAAJ,CAAU,iDAAV,CAAN;AADM,CAhBT,CAqDO,MAAO,EADY,CAFb,CAKVg5C,YAAa,CAAA,CALH,CAMVM,gBAAiB,CAAA,CANP,CAOV3nC,QAAS,EAPC,CAQVE,OAAQ,KARE,CASVQ,aAAc,MATJ,CAUVogC,QAAS,CAVC,CAYd,IAA4B,QAA5B,GAAI,MAAOoG,EAAX,CACIC,CAAApnC,IAAA,CAAcmnC,CADlB,KAII,KAAKU,IAAIA,CAAT,GAAiBV,EAAjB,CACQA,CAAA9lC,eAAA,CAA4BwmC,CAA5B,CAAJ,GACIT,CAAA,CAAQS,CAAR,CADJ,CACoBV,CAAA,CAAaU,CAAb,CADpB,CAKR/1C,EAAAs1C,QAAA,CAAgBA,CAChB,OAAOt1C,EAzB2B,CADtCnG,CAAA,CAAUuU,CAAV,CAA0BmD,CAA1B,CA4BAnD,EAAAjU,UAAAsZ,WAAA,CAAsCuiC,QAAS,CAAC74C,CAAD,CAAa,CACxD,MAAO,KAAI84C,EAAJ,CAAmB94C,CAAnB,CAA+B,IAAAm4C,QAA/B,CADiD,CAG5DlnC,EAAA/T,OAAA,CAAyB,QAAS,EAAG,CACjC,IAAIA,EAASA,QAAS,CAACg7C,CAAD,CAAe,CACjC,MAAO,KAAIjnC,CAAJ,CAAmBinC,CAAnB,CAD0B,CAGrCh7C,EAAAie,IAAA,CAAarK,EACb5T,EAAA67C,KAAA,CAAc5nC,EACdjU,EAAA6e,OAAA,CAAgB1K,EAChBnU,EAAA87C,IAAA,CAAa1nC,EACbpU,EAAA+7C,MAAA,CAAe1nC,EACfrU,EAAAg8C,QAAA,CAAiB1nC,EACjB,OAAOtU,EAV0B,CAAb,EAYxB,OAAO+T,EA5C6B,CAAlB,CA6CpBlR,CA7CoB,CATtB,CAuDI+4C,GAAkB,QAAS,CAAC1kC,CAAD,CAAS,CAEpC0kC,QAASA,EAAc,CAAC76C,CAAD,CAAck6C,CAAd,CAAuB,CACtCt1C,CAAAA,CAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAkBzI,CAAlB,CAAR4E,EAA0C,IAC9CA,EAAAs1C,QAAA,CAAgBA,CAChBt1C,EAAA2B,KAAA,CAAa,CAAA,CACb,KAAIwM;AAAUmnC,CAAAnnC,QAAVA,CAA4BmnC,CAAAnnC,QAA5BA,EAA+C,EAC9CmnC,EAAAE,YAAL,EAA6Bx1C,CAAAs2C,UAAA,CAAgBnoC,CAAhB,CAAyB,kBAAzB,CAA7B,GACIA,CAAA,CAAQ,kBAAR,CADJ,CACkC,gBADlC,CAGwBnO,EAAAs2C,UAAAC,CAAgBpoC,CAAhBooC,CAAyB,cAAzBA,CACxB,EAA4BnB,CAAAoB,SAA5B,EAA8ClB,CAAA/mC,KAA9C,WAAsE6mC,EAAAoB,SAAtE,EAAiH,WAAjH,GAAyF,MAAOlB,EAAA/mC,KAAhG,GACIJ,CAAA,CAAQ,cAAR,CADJ,CAC8B,qDAD9B,CAGAmnC,EAAA/mC,KAAA,CAAevO,CAAAy2C,cAAA,CAAoBnB,CAAA/mC,KAApB,CAAkCvO,CAAAs2C,UAAA,CAAgBhB,CAAAnnC,QAAhB,CAAiC,cAAjC,CAAlC,CACfnO,EAAAijC,KAAA,EACA,OAAOjjC,EAdmC,CAD9CnG,CAAA,CAAUo8C,CAAV,CAA0B1kC,CAA1B,CAiBA0kC,EAAA97C,UAAA0D,KAAA,CAAgC64C,QAAS,CAAC/yC,CAAD,CAAI,CACzC,IAAAhC,KAAA,CAAY,CAAA,CAD6B,KAE1BoN,EAAN1T,IAAY0T,IAFoB,CAEZumC,EAApBj6C,IAA8Bi6C,QAFE,CAEUl6C,EAA1CC,IAAwDD,YAFxB,CAGrCyF,CACJ,IAAI,CACAA,CAAA,CAAS,IAAI81C,EAAJ,CAAiBhzC,CAAjB,CAAoBoL,CAApB,CAAyBumC,CAAzB,CADT,CAGJ,MAAO76C,CAAP,CAAY,CACR,MAAOW,EAAAgD,MAAA,CAAkB3D,CAAlB,CADC,CAGZW,CAAAyC,KAAA,CAAiBgD,CAAjB,CAVyC,CAY7Co1C;CAAA97C,UAAA8oC,KAAA,CAAgC2T,QAAS,EAAG,CAAA,IACzBtB,EAANj6C,IAAgBi6C,QADe,CACHnqC,EAA5B9P,IAAiCi6C,QADF,CACcuB,EAAO1rC,CAAA0rC,KADrB,CAC8BxoC,EAASlD,CAAAkD,OADvC,CACkDH,EAAM/C,CAAA+C,IADxD,CACgEpH,EAAQqE,CAAArE,MADxE,CACkFgwC,EAAW3rC,CAAA2rC,SAD7F,CAC0G3oC,EAAUhD,CAAAgD,QADpH,CACgII,EAAOpD,CAAAoD,KAC/K,IAAI,CACA,IAAIQ,EAAM,IAAAA,IAANA,CAAiBumC,CAAAC,UAAA,EACrB,KAAAwB,YAAA,CAAiBhoC,CAAjB,CAAsBumC,CAAtB,CACIuB,EAAJ,CACI9nC,CAAAioC,KAAA,CAAS3oC,CAAT,CAAiBH,CAAjB,CAAsBpH,CAAtB,CAA6B+vC,CAA7B,CAAmCC,CAAnC,CADJ,CAII/nC,CAAAioC,KAAA,CAAS3oC,CAAT,CAAiBH,CAAjB,CAAsBpH,CAAtB,CAEAA,EAAJ,GACIiI,CAAAkgC,QACA,CADcqG,CAAArG,QACd,CAAAlgC,CAAAF,aAAA,CAAmBymC,CAAAzmC,aAFvB,CAII,kBAAJ,EAAyBE,EAAzB,GACIA,CAAA+mC,gBADJ,CAC0B,CAAEA,CAAAR,CAAAQ,gBAD5B,CAGA,KAAAmB,WAAA,CAAgBloC,CAAhB,CAAqBZ,CAArB,CACII,EAAJ,CACIQ,CAAAk0B,KAAA,CAAS10B,CAAT,CADJ,CAIIQ,CAAAk0B,KAAA,EArBJ,CAwBJ,MAAOxoC,EAAP,CAAY,CACR,IAAA2D,MAAA,CAAW3D,EAAX,CADQ,CA1B4B,CA8B5Cw7C,EAAA97C,UAAAs8C,cAAA,CAAyCS,QAAS,CAAC3oC,CAAD,CAAO4oC,CAAP,CAAoB,CAI7D,GAHA5oC,CAAAA,CAGA,EAHwB,QAGxB,GAHQ,MAAOA,EAGf,EAAI6mC,CAAAoB,SAAJ,EAAsBjoC,CAAtB;AAAsC6mC,CAAAoB,SAAtC,CACD,MAAOjoC,EAEX,IAAI4oC,CAAJ,CAAiB,CACb,IAAIC,EAAaD,CAAApmC,QAAA,CAAoB,GAApB,CACG,GAApB,GAAIqmC,CAAJ,GACID,CADJ,CACkBA,CAAAE,UAAA,CAAsB,CAAtB,CAAyBD,CAAzB,CADlB,CAFa,CAMjB,OAAQD,CAAR,EACI,KAAK,mCAAL,CACI,MAAO/8C,OAAAyI,KAAA,CAAY0L,CAAZ,CAAA7P,IAAA,CAAsB,QAAS,CAAC2E,CAAD,CAAM,CAAE,MAAOi0C,mBAAA,CAAmBj0C,CAAnB,CAAP,CAAiC,MAAjC,CAAuCi0C,kBAAA,CAAmB/oC,CAAA,CAAKlL,CAAL,CAAnB,CAAzC,CAArC,CAAAgN,KAAA,CAAqH,MAArH,CACX,MAAK,kBAAL,CACI,MAAOpB,KAAAsoC,UAAA,CAAehpC,CAAf,CACX,SACI,MAAOA,EANf,CAbkE,CAsBtE0nC,EAAA97C,UAAA88C,WAAA,CAAsCO,QAAS,CAACzoC,CAAD,CAAMZ,CAAN,CAAe,CAC1D,IAAK9K,IAAIA,CAAT,GAAgB8K,EAAhB,CACQA,CAAAoB,eAAA,CAAuBlM,CAAvB,CAAJ,EACI0L,CAAA0oC,iBAAA,CAAqBp0C,CAArB,CAA0B8K,CAAA,CAAQ9K,CAAR,CAA1B,CAHkD,CAO9D4yC,EAAA97C,UAAAm8C,UAAA,CAAqCoB,QAAS,CAACvpC,CAAD,CAAUwpC,CAAV,CAAsB,CAChE,IAAKt0C,IAAIA,CAAT,GAAgB8K,EAAhB,CACI,GAAI9K,CAAAu0C,YAAA,EAAJ,GAA0BD,CAAAC,YAAA,EAA1B,CACI,MAAOzpC,EAAA,CAAQ9K,CAAR,CAHiD,CAQpE4yC;CAAA97C,UAAA48C,YAAA,CAAuCc,QAAS,CAAC9oC,CAAD,CAAMumC,CAAN,CAAe,CAE3DwC,QAASA,EAAU,CAACn0C,CAAD,CAAI,CAAA,IACExG,EAAZ26C,CAAyB36C,WADf,CAC8B46C,EAAxCD,CAA6DC,mBADnD,CAC0EzC,EAApFwC,CAA8FxC,QACnGyC,EAAJ,EACIA,CAAA35C,MAAA,CAAyBuF,CAAzB,CAEJ,KAAIvF,CACJ,IAAI,CACAA,CAAA,CAAQ,IAAI45C,EAAJ,CAAqB,IAArB,CAA2B1C,CAA3B,CADR,CAGJ,MAAO76C,EAAP,CAAY,CACR2D,CAAA,CAAQ3D,EADA,CAGZ0C,CAAAiB,MAAA,CAAiBA,CAAjB,CAZmB,CAqDvB65C,QAASA,EAAmB,CAACt0C,CAAD,CAAI,EAOhCu0C,QAASA,EAAO,CAACv0C,CAAD,CAAI,CAAA,IACExG,EAAT+6C,CAAsB/6C,WADf,CAC8B46C,EAArCG,CAA0DH,mBADnD,CAC0EzC,EAAjF4C,CAA2F5C,QACpG,IAAwB,CAAxB,GAAI,IAAA6C,WAAJ,CAA2B,CACvB,IAAIC,EAA2B,IAAhB,GAAA,IAAAC,OAAA,CAAuB,GAAvB,CAA6B,IAAAA,OAA5C,CACIrpC,EAAkC,MAAtB,GAAA,IAAAH,aAAA,CAAgC,IAAAG,SAAhC,EAAiD,IAAAG,aAAjD,CAAsE,IAAAH,SACrE,EAAjB,GAAIopC,CAAJ,GACIA,CADJ,CACeppC,CAAA,CAAW,GAAX,CAAiB,CADhC,CAGA,IAAe,GAAf,CAAIopC,CAAJ,CACQL,CAIJ,EAHIA,CAAA16C,SAAA,EAGJ,CADAF,CAAAU,KAAA,CAAgB8F,CAAhB,CACA,CAAAxG,CAAAE,SAAA,EALJ,KAOK,CACG06C,CAAJ,EACIA,CAAA35C,MAAA,CAAyBuF,CAAzB,CAEAvF,EAAAA,CAAQ,IAAK,EACjB,IAAI,CACAA,CAAA,CAAQ,IAAIk6C,EAAJ,CAAc,aAAd;AAA8BF,CAA9B,CAAwC,IAAxC,CAA8C9C,CAA9C,CADR,CAGJ,MAAO76C,EAAP,CAAY,CACR2D,CAAA,CAAQ3D,EADA,CAGZ0C,CAAAiB,MAAA,CAAiBA,CAAjB,CAXC,CAbkB,CAFX,CA7DpB,IAAI25C,EAAqBzC,CAAAyC,mBAezBhpC,EAAAwpC,UAAA,CAAgBT,CAChBA,EAAAxC,QAAA,CAAqBA,CACrBwC,EAAA36C,WAAA,CAAwB,IACxB26C,EAAAC,mBAAA,CAAgCA,CAChC,IAAIhpC,CAAAypC,OAAJ,EAAkB,iBAAlB,EAAuCzpC,EAAvC,CAA4C,CACxC,GAAIgpC,CAAJ,CAAwB,CACpB,IAAIU,CACJA,EAAA,CAAgBA,QAAS,CAAC90C,CAAD,CAAI,CACA80C,CAAAV,mBACzBl6C,KAAA,CAAwB8F,CAAxB,CAFyB,CAIzByxC,EAAAM,eAAJ,CACI3mC,CAAA2pC,WADJ,CACqBD,CADrB,CAII1pC,CAAAypC,OAAAE,WAJJ,CAI4BD,CAE5BA,EAAAV,mBAAA,CAAmCA,CAZf,CAcxB,IAAIY,CACJA,EAAA,CAAaA,QAAS,CAACh1C,CAAD,CAAI,CAAA,IACDo0C,EAAZY,CAAiCZ,mBADpB,CAC2C56C,EAAxDw7C,CAAqEx7C,WADxD,CACuEm4C,EAApFqD,CAA8FrD,QACnGyC,EAAJ,EACIA,CAAA35C,MAAA,CAAyBuF,CAAzB,CAEJ,KAAIvF,CACJ,IAAI,CACAA,CAAA,CAAQ,IAAIk6C,EAAJ,CAAc,YAAd,CAA4B,IAA5B,CAAkChD,CAAlC,CADR,CAGJ,MAAO76C,EAAP,CAAY,CACR2D,CAAA,CAAQ3D,EADA,CAGZ0C,CAAAiB,MAAA,CAAiBA,CAAjB,CAZsB,CAc1B2Q,EAAA6pC,QAAA,CAAcD,CACdA,EAAArD,QAAA,CAAqBA,CACrBqD,EAAAx7C,WAAA,CAAwB,IACxBw7C,EAAAZ,mBAAA;AAAgCA,CAjCQ,CAsC5ChpC,CAAA8pC,mBAAA,CAAyBZ,CACzBA,EAAA96C,WAAA,CAAiC,IACjC86C,EAAAF,mBAAA,CAAyCA,CACzCE,EAAA3C,QAAA,CAA8BA,CA+B9BvmC,EAAA+pC,OAAA,CAAaZ,CACbA,EAAA/6C,WAAA,CAAqB,IACrB+6C,EAAAH,mBAAA,CAA6BA,CAC7BG,EAAA5C,QAAA,CAAkBA,CA/FyC,CAiG/DW,EAAA97C,UAAA4J,YAAA,CAAuCg1C,QAAS,EAAG,CAC/C,IAA+BhqC,EAAtB1T,IAA4B0T,IAAfpN,EAAbtG,IAAasG,KACtB,EAAaoN,CAAb,EAAuC,CAAvC,GAAoBA,CAAAopC,WAApB,EAAiE,UAAjE,GAA4C,MAAOppC,EAAAiqC,MAAnD,EACIjqC,CAAAiqC,MAAA,EAEJznC,EAAApX,UAAA4J,YAAAF,KAAA,CAAkC,IAAlC,CAL+C,CAOnD,OAAOoyC,EAzM6B,CAAlB,CA0MpBz6C,CA1MoB,CAvDtB,CAkQIm7C,GAAgB,QAAS,EAAG,CAS5B,MARAA,SAAqB,CAACsC,CAAD,CAAgBlqC,CAAhB,CAAqBumC,CAArB,CAA8B,CAC/C,IAAA2D,cAAA,CAAqBA,CACrB,KAAAlqC,IAAA,CAAWA,CACX,KAAAumC,QAAA,CAAeA,CACf,KAAA+C,OAAA,CAActpC,CAAAspC,OACd,KAAAxpC,aAAA,CAAoBE,CAAAF,aAApB,EAAwCymC,CAAAzmC,aACxC,KAAAG,SAAA,CAAgBF,EAAA,CAAiB,IAAAD,aAAjB;AAAoCE,CAApC,CAN+B,CADvB,CAAZ,EAlQpB,CA4RIupC,GAfiB,QAAS,EAAG,CAC7BY,QAASA,EAAa,CAAC/oC,CAAD,CAAUpB,CAAV,CAAeumC,CAAf,CAAwB,CAC1C94C,KAAAqH,KAAA,CAAW,IAAX,CACA,KAAAsM,QAAA,CAAeA,CACf,KAAAG,KAAA,CAAY,WACZ,KAAAvB,IAAA,CAAWA,CACX,KAAAumC,QAAA,CAAeA,CACf,KAAA+C,OAAA,CAActpC,CAAAspC,OACd,KAAAxpC,aAAA,CAAoBE,CAAAF,aAApB,EAAwCymC,CAAAzmC,aACxC,KAAAG,SAAA,CAAgBF,EAAA,CAAiB,IAAAD,aAAjB,CAAoCE,CAApC,CAChB,OAAO,KATmC,CAW9CmqC,CAAA/+C,UAAA,CAA0BC,MAAAC,OAAA,CAAcmC,KAAArC,UAAd,CAC1B,OAAO++C,EAbsB,CAAbA,EA7QpB,CAqTIlB,GALJmB,QAA6B,CAACpqC,CAAD,CAAMumC,CAAN,CAAe,CACxCgD,EAAAz0C,KAAA,CAAe,IAAf,CAAqB,cAArB,CAAqCkL,CAArC,CAA0CumC,CAA1C,CACA,KAAAhlC,KAAA,CAAY,kBACZ,OAAO,KAHiC,CAhT5C,CA2TI8oC,GAAqBh/C,MAAAmvC,OAAA,CAAc,CACnC8P,KAL6BjrC,CAAA/T,OAIM,CAEnCs8C,aAAcA,EAFqB,CAGnC2B,UAAWA,EAHwB,CAInCN,iBAAkBA,EAJiB,CAAd,CA3TzB,CAkUIsB,GAA2B,CAC3BprC,IAAK,EADsB,CAE3BqrC,aAAcA,QAAS,CAAC51C,CAAD,CAAI,CAAE,MAAOsL,KAAAC,MAAA,CAAWvL,CAAA61C,KAAX,CAAT,CAFA;AAG3BC,WAAYA,QAAS,CAACl8C,CAAD,CAAQ,CAAE,MAAO0R,KAAAsoC,UAAA,CAAeh6C,CAAf,CAAT,CAHF,CAlU/B,CAwUIm8C,GAAoB,QAAS,CAACnoC,CAAD,CAAS,CAEtCmoC,QAASA,EAAgB,CAACC,CAAD,CAAoBv+C,CAApB,CAAiC,CACtD,IAAI4E,EAAQuR,CAAA1N,KAAA,CAAY,IAAZ,CAAR7D,EAA6B,IACjC,IAAI25C,CAAJ,WAAiCz8C,EAAjC,CACI8C,CAAA5E,YACA,CADoBA,CACpB,CAAA4E,CAAArD,OAAA,CAAeg9C,CAFnB,KAIK,CACGr9C,CAAAA,CAAS0D,CAAA45C,QAATt9C,CAAyBkT,EAAA,CAAS,EAAT,CAAa8pC,EAAb,CAC7Bt5C,EAAA65C,QAAA,CAAgB,IAAI5uC,CACpB,IAAiC,QAAjC,GAAI,MAAO0uC,EAAX,CACIr9C,CAAA4R,IAAA,CAAayrC,CADjB,KAII,KAAKt2C,IAAIA,CAAT,GAAgBs2C,EAAhB,CACQA,CAAApqC,eAAA,CAAiClM,CAAjC,CAAJ,GACI/G,CAAA,CAAO+G,CAAP,CADJ,CACkBs2C,CAAA,CAAkBt2C,CAAlB,CADlB,CAKR,IAAKy2C,CAAAx9C,CAAAw9C,cAAL,EAA6BC,SAA7B,CACIz9C,CAAAw9C,cAAA,CAAuBC,SAD3B,KAGK,IAAKD,CAAAx9C,CAAAw9C,cAAL,CACD,KAAUt9C,MAAJ,CAAU,uCAAV,CAAN,CAEJwD,CAAA5E,YAAA,CAAoB,IAAIuQ,CAnBvB,CAqBL,MAAO3L,EA3B+C,CAD1DnG,CAAA,CAAU6/C,CAAV,CAA4BnoC,CAA5B,CA8BAmoC,EAAAv/C,UAAAyC,KAAA,CAAkCo9C,QAAS,CAACrmC,CAAD,CAAW,CAClD,IAAIsmC,EAAO,IAAIP,CAAJ,CAAqB,IAAAE,QAArB;AAAmC,IAAAx+C,YAAnC,CACX6+C,EAAAtmC,SAAA,CAAgBA,CAChBsmC,EAAAt9C,OAAA,CAAc,IACd,OAAOs9C,EAJ2C,CAMtDP,EAAAv/C,UAAA+/C,YAAA,CAAyCC,QAAS,EAAG,CACjD,IAAAC,QAAA,CAAe,IACV,KAAAz9C,OAAL,GACI,IAAAvB,YADJ,CACuB,IAAIuQ,CAD3B,CAGA,KAAAkuC,QAAA,CAAe,IAAI5uC,CAL8B,CAOrDyuC,EAAAv/C,UAAAkgD,UAAA,CAAuCC,QAAS,CAACC,CAAD,CAASC,CAAT,CAAmBC,CAAnB,CAAkC,CAC9E,IAAIxF,EAAO,IACX,OAAO,KAAI/3C,CAAJ,CAAe,QAAS,CAAC/B,CAAD,CAAW,CACtC,GAAI,CACA85C,CAAAp3C,KAAA,CAAU08C,CAAA,EAAV,CADA,CAGJ,MAAO9/C,CAAP,CAAY,CACRU,CAAAiD,MAAA,CAAe3D,CAAf,CADQ,CAGZ,IAAIoL,EAAeovC,CAAAl1C,UAAA,CAAe,QAAS,CAACxF,CAAD,CAAI,CAC3C,GAAI,CACIkgD,CAAA,CAAclgD,CAAd,CAAJ,EACIY,CAAA0C,KAAA,CAActD,CAAd,CAFJ,CAKJ,MAAOE,CAAP,CAAY,CACRU,CAAAiD,MAAA,CAAe3D,CAAf,CADQ,CAN+B,CAA5B,CAShB,QAAS,CAACA,CAAD,CAAM,CAAE,MAAOU,EAAAiD,MAAA,CAAe3D,CAAf,CAAT,CATC,CASgC,QAAS,EAAG,CAAE,MAAOU,EAAAkC,SAAA,EAAT,CAT5C,CAUnB,OAAO,SAAS,EAAG,CACf,GAAI,CACA43C,CAAAp3C,KAAA,CAAU28C,CAAA,EAAV,CADA,CAGJ,MAAO//C,CAAP,CAAY,CACRU,CAAAiD,MAAA,CAAe3D,CAAf,CADQ,CAGZoL,CAAA9B,YAAA,EAPe,CAjBmB,CAAnC,CAFuE,CA8BlF21C,EAAAv/C,UAAAugD,eAAA;AAA4CC,QAAS,EAAG,CACpD,IAAI36C,EAAQ,IAAZ,CACI3E,EAAK,IAAAu+C,QADT,CACuBE,EAAgBz+C,CAAAy+C,cADvC,CACyDc,EAAWv/C,CAAAu/C,SADpE,CACiF1sC,EAAM7S,CAAA6S,IADvF,CAC+F2sC,EAAax/C,CAAAw/C,WAD5G,CAEI1/C,EAAW,IAAA0+C,QAFf,CAGIiB,EAAS,IACb,IAAI,CAIA,IAAAV,QACA,CAJAU,CAIA,CAJSF,CAAA,CACL,IAAId,CAAJ,CAAkB5rC,CAAlB,CAAuB0sC,CAAvB,CADK,CAEL,IAAId,CAAJ,CAAkB5rC,CAAlB,CAEJ,CAAI2sC,CAAJ,GACI,IAAAT,QAAAS,WADJ,CAC8BA,CAD9B,CALA,CASJ,MAAOl3C,CAAP,CAAU,CACNxI,CAAAiD,MAAA,CAAeuF,CAAf,CACA,OAFM,CAIV,IAAIkC,EAAe,IAAInI,CAAJ,CAAiB,QAAS,EAAG,CAC5CsC,CAAAo6C,QAAA,CAAgB,IACZU,EAAJ,EAAoC,CAApC,GAAcA,CAAA3C,WAAd,EACI2C,CAAAC,MAAA,EAHwC,CAA7B,CAMnBD,EAAAE,OAAA,CAAgBC,QAAS,CAACt3C,CAAD,CAAI,CAEzB,GADc3D,CAAAo6C,QACd,CAAA,CAKA,IAAIc,EAAel7C,CAAA45C,QAAAsB,aACfA,EAAJ,EACIA,CAAAr9C,KAAA,CAAkB8F,CAAlB,CAEA6Y,EAAAA,CAAQxc,CAAA5E,YACZ4E,EAAA5E,YAAA,CAAoBI,CAAAnB,OAAA,CAAkB,QAAS,CAACE,CAAD,CAAI,CAC/C,GAA0B,CAA1B,GAAIugD,CAAA3C,WAAJ,CACI,GAAI,CACA,IAAIsB,EAAaz5C,CAAA45C,QAAAH,WACjBqB,EAAA7X,KAAA,CAAYwW,CAAA,CAAWl/C,CAAX,CAAZ,CAFA,CAIJ,MAAOoJ,EAAP,CAAU,CACN3D,CAAA5E,YAAAgD,MAAA,CAAwBuF,EAAxB,CADM,CANiC,CAA/B;AAUjB,QAAS,CAACA,CAAD,CAAI,CACZ,IAAIw3C,EAAkBn7C,CAAA45C,QAAAuB,gBAClBA,EAAJ,EACIA,CAAAt9C,KAAA,CAAqBsC,IAAAA,EAArB,CAEAwD,EAAJ,EAASA,CAAAy3C,KAAT,CACIN,CAAAC,MAAA,CAAap3C,CAAAy3C,KAAb,CAAqBz3C,CAAA03C,OAArB,CADJ,CAIIlgD,CAAAiD,MAAA,CAAe,IAAIU,SAAJ,CAlISw8C,mIAkIT,CAAf,CAEJt7C,EAAAk6C,YAAA,EAXY,CAVI,CAsBjB,QAAS,EAAG,CACX,IAAIiB,EAAkBn7C,CAAA45C,QAAAuB,gBAClBA,EAAJ,EACIA,CAAAt9C,KAAA,CAAqBsC,IAAAA,EAArB,CAEJ26C,EAAAC,MAAA,EACA/6C,EAAAk6C,YAAA,EANW,CAtBK,CA8BhB19B,EAAJ,EAAaA,CAAb,WAA8B7Q,EAA9B,EACI9F,CAAAjI,IAAA,CAAiB4e,CAAAzc,UAAA,CAAgBC,CAAA5E,YAAhB,CAAjB,CAzCJ,CAAA,IACI0/C,EAAAC,MAAA,EACA,CAAA/6C,CAAAk6C,YAAA,EAJqB,CA8C7BY,EAAAlC,QAAA,CAAiB2C,QAAS,CAAC53C,CAAD,CAAI,CAC1B3D,CAAAk6C,YAAA,EACA/+C,EAAAiD,MAAA,CAAeuF,CAAf,CAF0B,CAI9Bm3C,EAAAU,QAAA;AAAiBC,QAAS,CAAC93C,CAAD,CAAI,CAC1B3D,CAAAk6C,YAAA,EACA,KAAIwB,EAAgB17C,CAAA45C,QAAA8B,cAChBA,EAAJ,EACIA,CAAA79C,KAAA,CAAmB8F,CAAnB,CAEAA,EAAAg4C,SAAJ,CACIxgD,CAAAkC,SAAA,EADJ,CAIIlC,CAAAiD,MAAA,CAAeuF,CAAf,CAVsB,CAa9Bm3C,EAAAc,UAAA,CAAmBC,QAAS,CAACl4C,CAAD,CAAI,CAC5B,GAAI,CACA,IAAI41C,EAAev5C,CAAA45C,QAAAL,aACnBp+C,EAAA0C,KAAA,CAAc07C,CAAA,CAAa51C,CAAb,CAAd,CAFA,CAIJ,MAAOlJ,EAAP,CAAY,CACRU,CAAAiD,MAAA,CAAe3D,EAAf,CADQ,CALgB,CAvFoB,CAiGxDi/C,EAAAv/C,UAAAsZ,WAAA,CAAwCqoC,QAAS,CAAC3+C,CAAD,CAAa,CAC1D,IAAI6C,EAAQ,IAAZ,CACIrD,EAAS,IAAAA,OACb,IAAIA,CAAJ,CACI,MAAOA,EAAAoD,UAAA,CAAiB5C,CAAjB,CAEN,KAAAi9C,QAAL,EACI,IAAAM,eAAA,EAEJ,KAAAb,QAAA95C,UAAA,CAAuB5C,CAAvB,CACAA,EAAAS,IAAA,CAAe,QAAS,EAAG,CACvB,IAAIw8C,EAAUp6C,CAAAo6C,QACyB,EAAvC,GAAIp6C,CAAA65C,QAAA/kC,UAAAhZ,OAAJ,GACQs+C,CAGJ,EAHsC,CAGtC,GAHeA,CAAAjC,WAGf,EAFIiC,CAAAW,MAAA,EAEJ,CAAA/6C,CAAAk6C,YAAA,EAJJ,CAFuB,CAA3B,CASA,OAAO/8C,EAnBmD,CAqB9Du8C,EAAAv/C,UAAA4J,YAAA;AAAyCg4C,QAAS,EAAG,CACjD,IAAI3B,EAAU,IAAAA,QACVA,EAAJ,EAAsC,CAAtC,GAAeA,CAAAjC,WAAf,EACIiC,CAAAW,MAAA,EAEJ,KAAAb,YAAA,EACA3oC,EAAApX,UAAA4J,YAAAF,KAAA,CAAkC,IAAlC,CANiD,CAQrD,OAAO61C,EAxM+B,CAAlB,CAyMtBvkC,EAzMsB,CAxUxB,CAyhBI6mC,GAA0B5hD,MAAAmvC,OAAA,CAAc,CACxC0S,UAPJA,QAAkB,CAACtC,CAAD,CAAoB,CAClC,MAAO,KAAID,EAAJ,CAAqBC,CAArB,CAD2B,CAMM,CAExCD,iBAAkBA,EAFsB,CAAd,CAzhB9B,CAqlBIwC,GARsB9hD,MAAAmvC,OAAA4S,CAAc,CACpCC,UAhDJA,QAAkB,CAACngD,CAAD,CAAQogD,CAAR,CAAc,CAC5B,MAAO,KAAIn/C,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIm/C,EAAa,IAAIC,eAArB,CACIC,EAASF,CAAAE,OADb,CAGIC,EAAY,CAAA,CAHhB,CAIIC,EAAe,CAAA,CACfL,EAAJ,EACQA,CAAAG,OAaJ,GAZQH,CAAAG,OAAAG,QAAJ,CACIL,CAAAtD,MAAA,EADJ,CASIqD,CAAAG,OAAAx4C,iBAAA,CAA6B,OAA7B,CALqB44C,QAAS,EAAG,CACxBJ,CAAAG,QAAL,EACIL,CAAAtD,MAAA,EAFyB,CAKjC,CAGR,EAAAqD,CAAA,CAAO7sC,EAAA,CAAS,EAAT,CAAa6sC,CAAb,CAAmB,CAAEG,OAAQA,CAAV,CAAnB,CAdX,EAiBIH,CAjBJ,CAiBW,CAAEG,OAAQA,CAAV,CAEXK,MAAA,CAAM5gD,CAAN,CAAaogD,CAAb,CAAA37C,KAAA,CAAwB,QAAS,CAACsO,CAAD,CAAW,CACxCytC,CAAA,CAAY,CAAA,CACZt/C;CAAAU,KAAA,CAAgBmR,CAAhB,CACA7R,EAAAE,SAAA,EAHwC,CAA5C,CAAAy/C,MAAA,CAIS,QAAS,CAACriD,CAAD,CAAM,CACpBgiD,CAAA,CAAY,CAAA,CACPC,EAAL,EACIv/C,CAAAiB,MAAA,CAAiB3D,CAAjB,CAHgB,CAJxB,CAUA,OAAO,SAAS,EAAG,CACfiiD,CAAA,CAAe,CAAA,CACXD,EAAJ,EACIH,CAAAtD,MAAA,EAHW,CAnCqB,CAArC,CADqB,CA+CQ,CAAdmD,CAU1B3iD,EAAAujD,UAAA,CANgBzT,EAOhB9vC,EAAAwjD,QAAA,CANcjI,EAOdv7C,EAAA6/C,KAAA,CANaD,EAOb5/C,EAAAyiD,UAAA,CANkBD,EAOlBxiD,EAAAqjD,MAAA,CAAgBX,EAChB1iD,EAAA0D,WAAA,CAAqBA,CACrB1D,EAAAmd,sBAAA,CAAgCA,EAChCnd,EAAAkf,kBAAA,CAA4BA,EAC5Blf,EAAA6H,WAAA,CAAqBA,CACrB7H,EAAAyR,QAAA,CAAkBA,CAClBzR,EAAAmgB,gBAAA,CAA0BA,EAC1BngB,EAAAmS,cAAA,CAAwBA,CACxBnS,EAAAkG,aAAA,CAAuBA,CACvBlG,EAAAyjD,cAAA,CAAwBt8B,EACxBnnB,EAAA0jD,eAAA,CAAyBp2C,CACzBtN,EAAA2jD,eAAA,CAAyB3gC,EACzBhjB,EAAA4jD,wBAAA,CAAkCj8B,EAClC3nB,EAAA8nB,qBAAA,CAA+BA,EAC/B9nB,EAAAgoB,cAAA,CAAwBA,EACxBhoB,EAAAuiB,UAAA,CAAoBA,EACpBviB,EAAAkE,aAAA,CAAuBA,CACvBlE,EAAAgC,WAAA,CAAqBA,CACrBhC,EAAAojB,aAAA;AAAuBA,CACvBpjB,EAAAkC,KAAA,CAAeA,EACflC,EAAAiC,KAAA,CAAeA,CACfjC,EAAAiF,SAAA,CAAmBA,CACnBjF,EAAA6jD,aAAA,CApsNAA,QAAqB,CAACv3C,CAAD,CAAM,CACvB,MAAO,CAAEA,CAAAA,CAAT,GAAiBA,CAAjB,WAAgC5I,EAAhC,EAAmE,UAAnE,GAA+C,MAAO4I,EAAAlJ,KAAtD,EAA0G,UAA1G,GAAiF,MAAOkJ,EAAA/F,UAAxF,CADuB,CAqsN3BvG,EAAA2oB,wBAAA,CAAkCA,CAClC3oB,EAAAwP,WAAA,CAAqBA,EACrBxP,EAAAkb,wBAAA,CAAkCA,CAClClb,EAAAyB,oBAAA,CAA8BA,CAC9BzB,EAAA8oB,aAAA,CAAuBA,EACvB9oB,EAAAwF,aAAA,CAAuBA,EACvBxF,EAAA0G,iBAAA,CAA2BA,EAC3B1G,EAAA4wC,cAAA,CAhzMAA,QAAsB,EAAG,CAErB,IADA,IAAI5nC,EAAc,EAAlB,CACS5G,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACI4G,CAAA,CAAY5G,CAAZ,CAAA,CAAkBC,SAAA,CAAUD,CAAV,CAGtB,KAAImB,EADAmC,CACAnC,CADiB,IAEjBO,EAAA,CAAYkF,CAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CAAZ,CAAJ,GACIiB,CADJ,CACgByF,CAAAtE,IAAA,EADhB,CAGmD,WAAnD,GAAI,MAAOsE,EAAA,CAAYA,CAAA1G,OAAZ,CAAiC,CAAjC,CAAX,GACIoD,CADJ,CACqBsD,CAAAtE,IAAA,EADrB,CAG2B,EAA3B,GAAIsE,CAAA1G,OAAJ,EAAgCsD,CAAA,CAAQoD,CAAA,CAAY,CAAZ,CAAR,CAAhC;CACIA,CADJ,CACkBA,CAAA,CAAY,CAAZ,CADlB,CAGA,OAAO1E,EAAA,CAAU0E,CAAV,CAAuBzF,CAAvB,CAAAH,KAAA,CAAuC,IAAIinB,EAAJ,CAA0B3kB,CAA1B,CAAvC,CAhBc,CAizMzB1F,EAAAwB,OAAA,CAAiBA,EACjBxB,EAAAiJ,MAAA,CAAgBA,EAChBjJ,EAAAyW,MAAA,CAAgBnT,CAChBtD,EAAA8jD,SAAA,CAn/LAA,QAAiB,EAAG,CAEhB,IADA,IAAI16C,EAAU,EAAd,CACShH,EAAK,CAAd,CAAiBA,CAAjB,CAAsBC,SAAAC,OAAtB,CAAwCF,CAAA,EAAxC,CACIgH,CAAA,CAAQhH,CAAR,CAAA,CAAcC,SAAA,CAAUD,CAAV,CAElB,IAAuB,CAAvB,GAAIgH,CAAA9G,OAAJ,CAA0B,CACtB,IAAIyhD,EAAU36C,CAAA,CAAQ,CAAR,CACd,IAAIxD,CAAA,CAAQm+C,CAAR,CAAJ,CACI,MAAO56C,GAAA,CAAiB46C,CAAjB,CAA0B,IAA1B,CAEX,IAAI5iD,EAAA,CAAS4iD,CAAT,CAAJ,EAAyBnjD,MAAAojD,eAAA,CAAsBD,CAAtB,CAAzB,GAA4DnjD,MAAAD,UAA5D,CAEI,MADI0I,EACG,CADIzI,MAAAyI,KAAA,CAAY06C,CAAZ,CACJ,CAAA56C,EAAA,CAAiBE,CAAAnE,IAAA,CAAS,QAAS,CAAC2E,CAAD,CAAM,CAAE,MAAOk6C,EAAA,CAAQl6C,CAAR,CAAT,CAAxB,CAAjB,CAAoER,CAApE,CAPW,CAU1B,GAA2C,UAA3C,GAAI,MAAOD,EAAA,CAAQA,CAAA9G,OAAR,CAAyB,CAAzB,CAAX,CAAuD,CACnD,IAAI2hD,EAAmB76C,CAAA1E,IAAA,EAAvB,CACA0E,EAA8B,CAApB,GAACA,CAAA9G,OAAD,EAAyBsD,CAAA,CAAQwD,CAAA,CAAQ,CAAR,CAAR,CAAzB,CAAgDA,CAAA,CAAQ,CAAR,CAAhD,CAA6DA,CACvE,OAAOD,GAAA,CAAiBC,CAAjB,CAA0B,IAA1B,CAAAlH,KAAA,CAAqCgD,CAAA,CAAI,QAAS,CAACT,CAAD,CAAO,CAAE,MAAOw/C,EAAAt+C,MAAA,CAAuB,IAAK,EAA5B,CAA+BlB,CAA/B,CAAT,CAApB,CAArC,CAH4C,CAKvD,MAAO0E,GAAA,CAAiBC,CAAjB,CAA0B,IAA1B,CApBS,CAo/LpBpJ,EAAAsI,KAAA,CAAeA,CACftI,EAAA8J,UAAA;AAAoBA,EACpB9J,EAAA8K,iBAAA,CAA2BA,EAC3B9K,EAAAkkD,SAAA,CAp2LAA,QAAiB,CAACC,CAAD,CAAwBh5C,CAAxB,CAAmCE,CAAnC,CAA4C+4C,CAA5C,CAAwE7gD,CAAxE,CAAmF,CAChG,IAAImC,CAAJ,CACI2+C,CACoB,EAAxB,EAAIhiD,SAAAC,OAAJ,EAEI+hD,CAIA,CALcF,CACCE,aAIf,CAHAl5C,CAGA,CALcg5C,CAEFh5C,UAGZ,CAFAE,CAEA,CALc84C,CAGJ94C,QAEV,CADA3F,CACA,CALcy+C,CAIGz+C,eACjB,EAD2CT,CAC3C,CAAA1B,CAAA,CALc4gD,CAKF5gD,UANhB,EAQwCoD,IAAAA,EAAnC,GAAIy9C,CAAJ,EAAgDtgD,CAAA,CAAYsgD,CAAZ,CAAhD,EACDC,CAEA,CAFeF,CAEf,CADAz+C,CACA,CADiBT,CACjB,CAAA1B,CAAA,CAAY6gD,CAHX,GAMDC,CACA,CADeF,CACf,CAAAz+C,CAAA,CAAiB0+C,CAPhB,CASL,OAAO,KAAI1gD,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAIsC,EAAQo+C,CACZ,IAAI9gD,CAAJ,CACI,MAAOA,EAAAK,SAAA,CAAmBsH,EAAnB,CAA+B,CAA/B,CAAkC,CACrCvH,WAAYA,CADyB,CAErC0H,QAASA,CAF4B,CAGrCF,UAAWA,CAH0B,CAIrCzF,eAAgBA,CAJqB,CAKrCO,MAAOA,CAL8B,CAAlC,CAQX,GAAG,CACC,GAAIkF,CAAJ,CAAe,CACX,IAAIG,EAAkB,IAAK,EAC3B,IAAI,CACAA,CAAA,CAAkBH,CAAA,CAAUlF,CAAV,CADlB,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,MAFQ,CAIZ,GAAKqK,CAAAA,CAAL,CAAsB,CAClB3H,CAAAE,SAAA,EACA,MAFkB,CATX,CAcXE,CAAAA,CAAQ,IAAK,EACjB,IAAI,CACAA,CAAA,CAAQ2B,CAAA,CAAeO,CAAf,CADR,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,MAFQ,CAIZ0C,CAAAU,KAAA,CAAgBN,CAAhB,CACA,IAAIJ,CAAA5B,OAAJ,CACI,KAEJ,IAAI,CACAkE,CAAA,CAAQoF,CAAA,CAAQpF,CAAR,CADR,CAGJ,MAAOhF,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA;KAFQ,CA9Bb,CAAH,MAkCS,CAlCT,CAXwC,CAArC,CApByF,CAq2LpGjB,EAAAskD,IAAA,CA5uLAA,QAAY,CAACn5C,CAAD,CAAYo5C,CAAZ,CAAwBC,CAAxB,CAAqC,CAC1B,IAAK,EAAxB,GAAID,CAAJ,GAA6BA,CAA7B,CAA0C9gD,CAA1C,CACoB,KAAK,EAAzB,GAAI+gD,CAAJ,GAA8BA,CAA9B,CAA4C/gD,CAA5C,CACA,OAAOwF,GAAA,CAAM,QAAS,EAAG,CAAE,MAAOkC,EAAA,EAAA,CAAco5C,CAAd,CAA2BC,CAApC,CAAlB,CAHsC,CA6uLjDxkD,EAAA4qC,SAAA,CAnuLAA,QAAiB,CAACh/B,CAAD,CAASrI,CAAT,CAAoB,CAClB,IAAK,EAApB,GAAIqI,CAAJ,GAAyBA,CAAzB,CAAkC,CAAlC,CACkB,KAAK,EAAvB,GAAIrI,CAAJ,GAA4BA,CAA5B,CAAwC+J,CAAxC,CACA,IAAK,CAAA/B,CAAA,CAAUK,CAAV,CAAL,EAAmC,CAAnC,CAA0BA,CAA1B,CACIA,CAAA,CAAS,CAERrI,EAAL,EAAgD,UAAhD,GAAkB,MAAOA,EAAAK,SAAzB,GACIL,CADJ,CACgB+J,CADhB,CAGA,OAAO,KAAI5J,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxCA,CAAAS,IAAA,CAAeb,CAAAK,SAAA,CAAmB8H,EAAnB,CAA+BE,CAA/B,CAAuC,CAAEjI,WAAYA,CAAd,CAA0BgI,QAAS,CAAnC,CAAsCC,OAAQA,CAA9C,CAAvC,CAAf,CACA,OAAOjI,EAFiC,CAArC,CAT0B,CAouLrC3D,EAAA6L,MAAA,CAAgBA,EAChB7L,EAAAykD,MAAA,CAzrLAA,QAAc,EAAG,CACb,MAAO34B,GADM,CA0rLjB9rB,EAAAwE,GAAA,CAAaA,EACbxE,EAAA+L,kBAAA,CAA4BA,EAC5B/L,EAAA0kD,MAAA,CAlqLAA,QAAc,CAACp4C,CAAD,CAAM/I,CAAN,CAAiB,CAC3B,MAAKA,EAAL,CAaW,IAAIG,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAI0F,EAAOzI,MAAAyI,KAAA,CAAYiD,CAAZ,CAAX,CACID,EAAe,IAAInI,CACvBmI,EAAAjI,IAAA,CAAiBb,CAAAK,SAAA,CAAmBuI,EAAnB;AAA+B,CAA/B,CAAkC,CAAE9C,KAAMA,CAAR,CAAc+C,MAAO,CAArB,CAAwBzI,WAAYA,CAApC,CAAgD0I,aAAcA,CAA9D,CAA4EC,IAAKA,CAAjF,CAAlC,CAAjB,CACA,OAAOD,EAJiC,CAArC,CAbX,CACW,IAAI3I,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAExC,IADA,IAAI0F,EAAOzI,MAAAyI,KAAA,CAAYiD,CAAZ,CAAX,CACSnI,EAAI,CAAb,CAAgBA,CAAhB,CAAoBkF,CAAA/G,OAApB,EAAoCP,CAAA4B,CAAA5B,OAApC,CAAuDoC,CAAA,EAAvD,CAA4D,CACxD,IAAI0F,EAAMR,CAAA,CAAKlF,CAAL,CACNmI,EAAAyJ,eAAA,CAAmBlM,CAAnB,CAAJ,EACIlG,CAAAU,KAAA,CAAgB,CAACwF,CAAD,CAAMyC,CAAA,CAAIzC,CAAJ,CAAN,CAAhB,CAHoD,CAM5DlG,CAAAE,SAAA,EARwC,CAArC,CAFgB,CAmqL/B7D,EAAAmzC,UAAA,CA9kLAA,QAAkB,CAAChwC,CAAD,CAASwJ,CAAT,CAAoBvH,CAApB,CAA6B,CAC3C,MAAO,CACHsH,CAAA,CAAOC,CAAP,CAAkBvH,CAAlB,CAAA,CAA2B,IAAI1B,CAAJ,CAAegE,EAAA,CAAYvE,CAAZ,CAAf,CAA3B,CADG,CAEHuJ,CAAA,CAAOH,EAAA,CAAII,CAAJ,CAAevH,CAAf,CAAP,CAAA,CAAgC,IAAI1B,CAAJ,CAAegE,EAAA,CAAYvE,CAAZ,CAAf,CAAhC,CAFG,CADoC,CA+kL/CnD,EAAA8M,KAAA,CAAeA,EACf9M,EAAA2kD,MAAA,CAngLAA,QAAc,CAAC13C,CAAD,CAAQC,CAAR,CAAe3J,CAAf,CAA0B,CACtB,IAAK,EAAnB,GAAI0J,CAAJ,GAAwBA,CAAxB,CAAgC,CAAhC,CACA,OAAO,KAAIvJ,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CAC1BgD,IAAAA,EAAd,GAAIuG,CAAJ,GACIA,CACA,CADQD,CACR,CAAAA,CAAA,CAAQ,CAFZ,CAIA,KAAIb,EAAQ,CAAZ,CACIopC,EAAUvoC,CACd,IAAI1J,CAAJ,CACI,MAAOA,EAAAK,SAAA,CAAmBoJ,EAAnB,CAA+B,CAA/B,CAAkC,CACrCZ,MAAOA,CAD8B,CACvBc,MAAOA,CADgB,CACTD,MAAOA,CADE,CACKtJ,WAAYA,CADjB,CAAlC,CAKP,GAAG,CACC,GAAIyI,CAAA,EAAJ,EAAec,CAAf,CAAsB,CAClBvJ,CAAAE,SAAA,EACA,MAFkB,CAItBF,CAAAU,KAAA,CAAgBmxC,CAAA,EAAhB,CACA;GAAI7xC,CAAA5B,OAAJ,CACI,KAPL,CAAH,MASS,CATT,CAboC,CAArC,CAF6B,CAogLxC/B,EAAA2E,WAAA,CAAqBA,EACrB3E,EAAAmN,MAAA,CAAgBA,EAChBnN,EAAA4kD,MAAA,CAx7KAA,QAAc,CAACC,CAAD,CAAkB37C,CAAlB,CAAqC,CAC/C,MAAO,KAAIxF,CAAJ,CAAe,QAAS,CAACC,CAAD,CAAa,CACxC,IAAImhD,CACJ,IAAI,CACAA,CAAA,CAAWD,CAAA,EADX,CAGJ,MAAO5jD,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAIZ,IAAIoG,CACJ,IAAI,CACAA,CAAA,CAAS6B,CAAA,CAAkB47C,CAAlB,CADT,CAGJ,MAAO7jD,CAAP,CAAY,CACR0C,CAAAiB,MAAA,CAAiB3D,CAAjB,CACA,OAFQ,CAKZ,IAAIoL,EAAe9F,CADNc,CAAAlE,CAASmF,CAAA,CAAKjB,CAAL,CAATlE,CAAwBM,CAClB8C,WAAA,CAAiB5C,CAAjB,CACnB,OAAO,SAAS,EAAG,CACf0I,CAAA9B,YAAA,EACIu6C,EAAJ,EACIA,CAAAv6C,YAAA,EAHW,CAnBqB,CAArC,CADwC,CAy7KnDvK,EAAA0N,IAAA,CAAcA,EACd1N,EAAAoI,UAAA,CAAoBA,EACpBpI,EAAAyD,MAAA,CAAgBA,CAChBzD,EAAA8rB,MAAA,CAAgBA,EAChB9rB,EAAA8C,OAAA,CAAiBA,CAEjBlC,OAAAyf,eAAA,CAAsBrgB,CAAtB,CAA+B,YAA/B,CAA6C,CAAE+D,MAAO,CAAA,CAAT,CAA7C,CAvqRwB,CAJ3B;","sources":["../Input_0"],"names":["global","factory","exports","module","define","amd","rxjs","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","isFunction","x","hostReportError","err","setTimeout","isObject","flattenUnsubscriptionErrors","errors","reduce","errs","concat","UnsubscriptionError","canReportError","observer","destination","_a","isStopped","closed","Subscriber","noop","pipe","fns","_i","arguments","length","pipeFromArray","piped","input","prev","fn","getPromiseCtor","promiseCtor","config","Promise","Error","refCount","refCountOperatorFunction","source","lift","RefCountOperator","empty$1","scheduler","emptyScheduled","EMPTY","Observable","subscriber","schedule","complete","isScheduler","value","scheduleArray","sub","Subscription","i","add","next","fromArray","subscribeToArray","of","args","pop","throwError","error","dispatch","findAndClearHandle","handle","activeHandles","identity","map","project","thisArg","mapOperation","TypeError","MapOperator","bindCallback","callbackFunc","resultSelector","apply","isArray","context","subject","params","dispatch$1","state","AsyncSubject","handler","innerArgs","console","warn","subscribe","_this","dispatchNext","bindNodeCallback","undefined","dispatch$2","shift","dispatchError$1","dispatchNext$1","arg","isPromise","then","subscribeToResult","outerSubscriber","result","outerValue","outerIndex","innerSubscriber","InnerSubscriber","subscribeTo","scheduleObservable","observable$$1","observable","schedulePromise","scheduleIterable","iterator$$1","return","iterator","done","scheduled","isArrayLike","from","mergeMap","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","mergeAll","concatAll","observables","defer","observableFactory","forkJoinInternal","sources","keys","len","values","Array","completed","emitted","_loop_1","hasValue","key","fromEvent","target","eventName","options","setupSubscription","e","slice","call","sourceObj","unsubscribe","addEventListener","removeEventListener","on","off","addListener","removeListener","fromEventPattern","addHandler","removeHandler","retValue","dispatch$3","condition","needIterate","iterate","conditionResult","isNumeric","val","parseFloat","dispatch$4","counter","period","merge","last","onErrorResumeNext","first","remainder","subNext","dispatch$5","index","subscription","obj","not","pred","notPred","filter","predicate","filterOperatorFunction","FilterOperator","race","RaceOperator","dispatch$6","start","count","timer","dueTime","periodOrScheduler","async","due","now","dispatch$7","zip","ZipOperator","audit","durationSelector","auditOperatorFunction","AuditOperator","dispatchBufferTimeSpanOnly","prevContext","closeContext","openContext","closeAction","bufferTimeSpan","dispatchBufferCreation","bufferCreationInterval","dispatchBufferClose","action","concatMap","dispatchNext$2","debouncedNext","defaultIfEmpty","defaultValue","DefaultIfEmptyOperator","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","EmptyError","take","TakeOperator","exhaustMap","ExhaustMapOperator","takeLast","takeLastOperatorFunction","TakeLastOperator","scan","accumulator","seed","hasSeed","scanOperatorFunction","ScanOperator","reduceOperatorFunctionWithSeed","reduceOperatorFunction","acc","multicast","subjectOrSubjectFactory","selector","multicastOperatorFunction","subjectFactory","MulticastOperator","connectable","connectableObservableDescriptor","plucker","props","mapper","currentProp","p","dispatchNotification","notifyNext","shareSubjectFactory","Subject","shareReplayOperator","_b","bufferSize","_c","windowTime","useRefCount","hasError","isComplete","shareReplayOperation","ReplaySubject","innerSub","switchMap","SwitchMapOperator","dispatchNext$3","clearThrottle","timeoutWith","withObservable","absoluteTimeout","Date","isNaN","waitFor","Math","abs","TimeoutWithOperator","toArrayReducer","arr","item","push","dispatchWindowTimeSpanOnly","windowTimeSpan","window","closeWindow","openWindow","dispatchWindowCreation","windowCreationInterval","dispatchWindowClose","timeSpanState","remove","applyMixins","derivedCtor","baseCtors","baseCtor","propertyKeys","getOwnPropertyNames","j","len2","name_1","ajaxGet","url","headers","AjaxObservable","method","ajaxPost","body","ajaxDelete","ajaxPut","ajaxPatch","ajaxGetJSON","mapResponse","responseType","parseXhrResponse","xhr","response","JSON","parse","responseText","responseXML","setPrototypeOf","__proto__","hasOwnProperty","__assign","assign","t","s","n","_enable_super_gross_mode_that_will_cause_bad_things","useDeprecatedSynchronousErrorHandling","stack","log","empty","UnsubscriptionErrorImpl","message","toString","join","name","_subscriptions","_parentOrParents","_unsubscribe","Subscription.prototype.unsubscribe","parent_1","Subscription.prototype.add","teardown","tmp","indexOf","subscriptions","Subscription.prototype.remove","subscriptionIndex","splice","rxSubscriber","Symbol","random","_super","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","SafeSubscriber","Subscriber.create","Subscriber.prototype.next","_next","Subscriber.prototype.error","_error","Subscriber.prototype.complete","_complete","Subscriber.prototype.unsubscribe","Subscriber.prototype._next","Subscriber.prototype._error","Subscriber.prototype._complete","_unsubscribeAndRecycle","Subscriber.prototype._unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","SafeSubscriber.prototype.next","__tryOrSetError","__tryOrUnsub","SafeSubscriber.prototype.error","SafeSubscriber.prototype.complete","wrappedComplete","SafeSubscriber.prototype.__tryOrUnsub","SafeSubscriber.prototype.__tryOrSetError","parent","SafeSubscriber.prototype._unsubscribe","_isScalar","_subscribe","Observable.prototype.lift","operator","Observable.prototype.subscribe","sink","_trySubscribe","Observable.prototype._trySubscribe","forEach","Observable.prototype.forEach","resolve","reject","Observable.prototype._subscribe","Observable.prototype.pipe","operations","toPromise","Observable.prototype.toPromise","Observable.create","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","SubjectSubscription.prototype.unsubscribe","observers","subscriberIndex","SubjectSubscriber","thrownError","Subject.prototype.lift","AnonymousSubject","Subject.prototype.next","copy","Subject.prototype.error","Subject.prototype.complete","Subject.prototype.unsubscribe","Subject.prototype._trySubscribe","Subject.prototype._subscribe","asObservable","Subject.prototype.asObservable","Subject.create","AnonymousSubject.prototype.next","AnonymousSubject.prototype.error","AnonymousSubject.prototype.complete","AnonymousSubject.prototype._subscribe","RefCountOperator.prototype.call","_refCount","refCounter","RefCountSubscriber","connection","connect","RefCountSubscriber.prototype._unsubscribe","sharedConnection","_connection","ConnectableObservable","_isComplete","ConnectableObservable.prototype._subscribe","getSubject","ConnectableObservable.prototype.getSubject","_subject","ConnectableObservable.prototype.connect","ConnectableSubscriber","ConnectableObservable.prototype.refCount","connectableProto","writable","ConnectableSubscriber.prototype._error","ConnectableSubscriber.prototype._complete","ConnectableSubscriber.prototype._unsubscribe","refCount$$1","GroupByOperator","elementSelector","subjectSelector","GroupByOperator.prototype.call","GroupBySubscriber","groups","attemptedToUnsubscribe","GroupBySubscriber.prototype._next","_group","GroupBySubscriber.prototype._group","Map","group","get","element","set","groupedObservable","GroupedObservable","duration","GroupDurationSubscriber","GroupBySubscriber.prototype._error","clear","GroupBySubscriber.prototype._complete","removeGroup","GroupBySubscriber.prototype.removeGroup","delete","GroupBySubscriber.prototype.unsubscribe","GroupDurationSubscriber.prototype._next","GroupDurationSubscriber.prototype._unsubscribe","groupSubject","refCountSubscription","GroupedObservable.prototype._subscribe","InnerRefCountSubscription","InnerRefCountSubscription.prototype.unsubscribe","BehaviorSubject","_value","defineProperty","getValue","enumerable","configurable","BehaviorSubject.prototype._subscribe","BehaviorSubject.prototype.getValue","BehaviorSubject.prototype.next","AsyncAction","work","pending","AsyncAction.prototype.schedule","delay","id","recycleAsyncId","requestAsyncId","AsyncAction.prototype.requestAsyncId","setInterval","flush","AsyncAction.prototype.recycleAsyncId","clearInterval","execute","AsyncAction.prototype.execute","_execute","AsyncAction.prototype._execute","errored","errorValue","AsyncAction.prototype._unsubscribe","actions","Action","Action.prototype.schedule","QueueAction","QueueAction.prototype.schedule","QueueAction.prototype.execute","QueueAction.prototype.requestAsyncId","Scheduler","SchedulerAction","Scheduler.prototype.schedule","Scheduler.now","AsyncScheduler","delegate","active","AsyncScheduler.prototype.schedule","AsyncScheduler.prototype.flush","queue","QueueScheduler","array","NotificationKind","Notification","kind","observe","Notification.prototype.observe","do","Notification.prototype.do","accept","Notification.prototype.accept","nextOrObserver","toObservable","Notification.prototype.toObservable","createNext","Notification.createNext","undefinedValueNotification","createError","Notification.createError","createComplete","Notification.createComplete","completeNotification","ObserveOnOperator","ObserveOnOperator.prototype.call","ObserveOnSubscriber","ObserveOnSubscriber.dispatch","notification","scheduleMessage","ObserveOnSubscriber.prototype.scheduleMessage","ObserveOnMessage","ObserveOnSubscriber.prototype._next","ObserveOnSubscriber.prototype._error","ObserveOnSubscriber.prototype._complete","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplaySubject.prototype.nextInfiniteTimeWindow","ReplaySubject.prototype.nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","ReplaySubject.prototype._subscribe","ReplaySubject.prototype._getNow","ReplaySubject.prototype._trimBufferThenGetEvents","eventsCount","spliceCount","time","max","hasNext","hasCompleted","AsyncSubject.prototype._subscribe","AsyncSubject.prototype.next","AsyncSubject.prototype.error","AsyncSubject.prototype.complete","nextHandle","RESOLVED","Immediate","setImmediate","cb","clearImmediate","AsapAction","AsapAction.prototype.requestAsyncId","AsapAction.prototype.recycleAsyncId","asap","AsapScheduler","AsapScheduler.prototype.flush","AnimationFrameAction","AnimationFrameAction.prototype.requestAsyncId","requestAnimationFrame","AnimationFrameAction.prototype.recycleAsyncId","cancelAnimationFrame","animationFrame","AnimationFrameScheduler","AnimationFrameScheduler.prototype.flush","VirtualTimeScheduler","maxFrames","VirtualAction","frame","VirtualTimeScheduler.prototype.flush","frameTimeFactor","VirtualAction.prototype.schedule","VirtualAction.prototype.requestAsyncId","sort","sortActions","VirtualAction.prototype.recycleAsyncId","VirtualAction.prototype._execute","VirtualAction.sortActions","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","TimeoutError","TimeoutErrorImpl","MapOperator.prototype.call","MapSubscriber","MapSubscriber.prototype._next","OuterSubscriber","OuterSubscriber.prototype.notifyNext","innerValue","innerIndex","notifyError","OuterSubscriber.prototype.notifyError","notifyComplete","OuterSubscriber.prototype.notifyComplete","InnerSubscriber.prototype._next","InnerSubscriber.prototype._error","InnerSubscriber.prototype._complete","subscribeToPromise","promise","subscribeToIterable","iterable","subscribeToObservable","obs","NONE","CombineLatestOperator","CombineLatestOperator.prototype.call","CombineLatestSubscriber","CombineLatestSubscriber.prototype._next","CombineLatestSubscriber.prototype._complete","toRespond","CombineLatestSubscriber.prototype.notifyComplete","unused","CombineLatestSubscriber.prototype.notifyNext","oldVal","_tryResultSelector","CombineLatestSubscriber.prototype._tryResultSelector","MergeMapOperator.prototype.call","MergeMapSubscriber","buffer","MergeMapSubscriber.prototype._next","_tryNext","MergeMapSubscriber.prototype._tryNext","_innerSub","MergeMapSubscriber.prototype._innerSub","ish","innerSubscription","MergeMapSubscriber.prototype._complete","MergeMapSubscriber.prototype.notifyNext","MergeMapSubscriber.prototype.notifyComplete","NEVER","FilterOperator.prototype.call","FilterSubscriber","FilterSubscriber.prototype._next","RaceOperator.prototype.call","RaceSubscriber","hasFirst","RaceSubscriber.prototype._next","RaceSubscriber.prototype._complete","RaceSubscriber.prototype.notifyNext","ZipOperator.prototype.call","ZipSubscriber","iterators","ZipSubscriber.prototype._next","StaticArrayIterator","StaticIterator","ZipBufferIterator","ZipSubscriber.prototype._complete","stillUnsubscribed","notifyInactive","ZipSubscriber.prototype.notifyInactive","checkIterators","ZipSubscriber.prototype.checkIterators","shouldComplete","_tryresultSelector","ZipSubscriber.prototype._tryresultSelector","nextResult","StaticIterator.prototype.hasValue","StaticIterator.prototype.next","StaticIterator.prototype.hasCompleted","StaticArrayIterator.prototype.next","StaticArrayIterator.prototype.hasValue","StaticArrayIterator.prototype.hasCompleted","ZipBufferIterator.prototype.next","ZipBufferIterator.prototype.hasValue","ZipBufferIterator.prototype.hasCompleted","ZipBufferIterator.prototype.notifyComplete","ZipBufferIterator.prototype.notifyNext","ZipBufferIterator.prototype.subscribe","AuditOperator.prototype.call","AuditSubscriber","AuditSubscriber.prototype._next","throttled","AuditSubscriber.prototype.clearThrottle","AuditSubscriber.prototype.notifyNext","AuditSubscriber.prototype.notifyComplete","BufferOperator","closingNotifier","BufferOperator.prototype.call","BufferSubscriber","BufferSubscriber.prototype._next","BufferSubscriber.prototype.notifyNext","BufferCountOperator","startBufferEvery","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","BufferCountOperator.prototype.call","BufferCountSubscriber.prototype._next","BufferCountSubscriber.prototype._complete","buffers","BufferSkipCountSubscriber.prototype._next","BufferSkipCountSubscriber.prototype._complete","BufferTimeOperator","maxBufferSize","BufferTimeOperator.prototype.call","BufferTimeSubscriber","Context","contexts","timespanOnly","timeSpanOnlyState","creationState","closeState","BufferTimeSubscriber.prototype._next","filledBufferContext","context_1","onBufferFull","BufferTimeSubscriber.prototype._error","BufferTimeSubscriber.prototype._complete","context_2","BufferTimeSubscriber.prototype._unsubscribe","BufferTimeSubscriber.prototype.onBufferFull","BufferTimeSubscriber.prototype.openContext","BufferTimeSubscriber.prototype.closeContext","spliceIndex","BufferToggleOperator","openings","closingSelector","BufferToggleOperator.prototype.call","BufferToggleSubscriber","BufferToggleSubscriber.prototype._next","BufferToggleSubscriber.prototype._error","BufferToggleSubscriber.prototype._complete","BufferToggleSubscriber.prototype.notifyNext","closeBuffer","openBuffer","BufferToggleSubscriber.prototype.notifyComplete","BufferToggleSubscriber.prototype.openBuffer","trySubscribe","BufferToggleSubscriber.prototype.closeBuffer","BufferToggleSubscriber.prototype.trySubscribe","BufferWhenOperator","BufferWhenOperator.prototype.call","BufferWhenSubscriber","subscribing","BufferWhenSubscriber.prototype._next","BufferWhenSubscriber.prototype._complete","BufferWhenSubscriber.prototype._unsubscribe","BufferWhenSubscriber.prototype.notifyNext","BufferWhenSubscriber.prototype.notifyComplete","BufferWhenSubscriber.prototype.openBuffer","closingSubscription","CatchOperator","CatchOperator.prototype.call","CatchSubscriber","caught","CatchSubscriber.prototype.error","err2","CountOperator","CountOperator.prototype.call","CountSubscriber","CountSubscriber.prototype._next","_tryPredicate","CountSubscriber.prototype._tryPredicate","CountSubscriber.prototype._complete","DebounceOperator","DebounceOperator.prototype.call","DebounceSubscriber","durationSubscription","DebounceSubscriber.prototype._next","DebounceSubscriber.prototype._complete","emitValue","DebounceSubscriber.prototype._tryNext","DebounceSubscriber.prototype.notifyNext","DebounceSubscriber.prototype.notifyComplete","DebounceSubscriber.prototype.emitValue","DebounceTimeOperator","DebounceTimeOperator.prototype.call","DebounceTimeSubscriber","debouncedSubscription","lastValue","DebounceTimeSubscriber.prototype._next","clearDebounce","DebounceTimeSubscriber.prototype._complete","DebounceTimeSubscriber.prototype.debouncedNext","DebounceTimeSubscriber.prototype.clearDebounce","DefaultIfEmptyOperator.prototype.call","DefaultIfEmptySubscriber","isEmpty","DefaultIfEmptySubscriber.prototype._next","DefaultIfEmptySubscriber.prototype._complete","DelayOperator","DelayOperator.prototype.call","DelaySubscriber","DelaySubscriber.dispatch","delay_1","_schedule","DelaySubscriber.prototype._schedule","scheduleNotification","DelaySubscriber.prototype.scheduleNotification","DelayMessage","DelaySubscriber.prototype._next","DelaySubscriber.prototype._error","DelaySubscriber.prototype._complete","DelayWhenOperator","delayDurationSelector","DelayWhenOperator.prototype.call","DelayWhenSubscriber","delayNotifierSubscriptions","DelayWhenSubscriber.prototype.notifyNext","removeSubscription","tryComplete","DelayWhenSubscriber.prototype.notifyError","DelayWhenSubscriber.prototype.notifyComplete","DelayWhenSubscriber.prototype._next","delayNotifier","tryDelay","DelayWhenSubscriber.prototype._complete","DelayWhenSubscriber.prototype.removeSubscription","subscriptionIdx","DelayWhenSubscriber.prototype.tryDelay","notifierSubscription","DelayWhenSubscriber.prototype.tryComplete","SubscriptionDelayObservable","subscriptionDelay","SubscriptionDelayObservable.prototype._subscribe","SubscriptionDelaySubscriber","sourceSubscribed","SubscriptionDelaySubscriber.prototype._next","subscribeToSource","SubscriptionDelaySubscriber.prototype._error","SubscriptionDelaySubscriber.prototype._complete","SubscriptionDelaySubscriber.prototype.subscribeToSource","DeMaterializeOperator","DeMaterializeOperator.prototype.call","DeMaterializeSubscriber","DeMaterializeSubscriber.prototype._next","DistinctOperator","flushes","DistinctOperator.prototype.call","DistinctSubscriber","Set","DistinctSubscriber.prototype.notifyNext","DistinctSubscriber.prototype.notifyError","DistinctSubscriber.prototype._next","_useKeySelector","_finalizeNext","DistinctSubscriber.prototype._useKeySelector","DistinctSubscriber.prototype._finalizeNext","has","DistinctUntilChangedOperator.prototype.call","DistinctUntilChangedSubscriber","hasKey","DistinctUntilChangedSubscriber.prototype.compare","y","DistinctUntilChangedSubscriber.prototype._next","ThrowIfEmptyOperator.prototype.call","ThrowIfEmptySubscriber","ThrowIfEmptySubscriber.prototype._next","ThrowIfEmptySubscriber.prototype._complete","total","TakeOperator.prototype.call","TakeSubscriber","TakeSubscriber.prototype._next","EveryOperator","EveryOperator.prototype.call","EverySubscriber","EverySubscriber.prototype.notifyComplete","everyValueMatch","EverySubscriber.prototype._next","EverySubscriber.prototype._complete","SwitchFirstOperator","SwitchFirstOperator.prototype.call","SwitchFirstSubscriber","hasSubscription","SwitchFirstSubscriber.prototype._next","SwitchFirstSubscriber.prototype._complete","SwitchFirstSubscriber.prototype.notifyComplete","ExhaustMapOperator.prototype.call","ExhaustMapSubscriber","ExhaustMapSubscriber.prototype._next","tryNext","ExhaustMapSubscriber.prototype.tryNext","ExhaustMapSubscriber.prototype._innerSub","ExhaustMapSubscriber.prototype._complete","ExhaustMapSubscriber.prototype.notifyNext","ExhaustMapSubscriber.prototype.notifyError","ExhaustMapSubscriber.prototype.notifyComplete","ExpandOperator","ExpandOperator.prototype.call","ExpandSubscriber","ExpandSubscriber.dispatch","subscribeToProjection","ExpandSubscriber.prototype._next","ExpandSubscriber.prototype.subscribeToProjection","ExpandSubscriber.prototype._complete","ExpandSubscriber.prototype.notifyNext","ExpandSubscriber.prototype.notifyComplete","FinallyOperator","callback","FinallyOperator.prototype.call","FinallySubscriber","FindValueOperator","yieldIndex","FindValueOperator.prototype.call","FindValueSubscriber","FindValueSubscriber.prototype.notifyComplete","FindValueSubscriber.prototype._next","FindValueSubscriber.prototype._complete","IgnoreElementsOperator","IgnoreElementsOperator.prototype.call","IgnoreElementsSubscriber","IgnoreElementsSubscriber.prototype._next","IsEmptyOperator","IsEmptyOperator.prototype.call","IsEmptySubscriber","IsEmptySubscriber.prototype.notifyComplete","IsEmptySubscriber.prototype._next","IsEmptySubscriber.prototype._complete","TakeLastOperator.prototype.call","TakeLastSubscriber","ring","TakeLastSubscriber.prototype._next","TakeLastSubscriber.prototype._complete","idx","MapToOperator","MapToOperator.prototype.call","MapToSubscriber","MapToSubscriber.prototype._next","MaterializeOperator","MaterializeOperator.prototype.call","MaterializeSubscriber","MaterializeSubscriber.prototype._next","MaterializeSubscriber.prototype._error","MaterializeSubscriber.prototype._complete","ScanOperator.prototype.call","ScanSubscriber","_seed","ScanSubscriber.prototype._next","ScanSubscriber.prototype._tryNext","MergeScanOperator","MergeScanOperator.prototype.call","MergeScanSubscriber","MergeScanSubscriber.prototype._next","MergeScanSubscriber.prototype._innerSub","MergeScanSubscriber.prototype._complete","MergeScanSubscriber.prototype.notifyNext","MergeScanSubscriber.prototype.notifyComplete","MulticastOperator.prototype.call","OnErrorResumeNextOperator","nextSources","OnErrorResumeNextOperator.prototype.call","OnErrorResumeNextSubscriber","OnErrorResumeNextSubscriber.prototype.notifyError","subscribeToNextSource","OnErrorResumeNextSubscriber.prototype.notifyComplete","OnErrorResumeNextSubscriber.prototype._error","OnErrorResumeNextSubscriber.prototype._complete","OnErrorResumeNextSubscriber.prototype.subscribeToNextSource","PairwiseOperator","PairwiseOperator.prototype.call","PairwiseSubscriber","hasPrev","PairwiseSubscriber.prototype._next","pair","RepeatOperator","RepeatOperator.prototype.call","RepeatSubscriber","RepeatSubscriber.prototype.complete","RepeatWhenOperator","notifier","RepeatWhenOperator.prototype.call","RepeatWhenSubscriber","sourceIsBeingSubscribedTo","RepeatWhenSubscriber.prototype.notifyNext","RepeatWhenSubscriber.prototype.notifyComplete","RepeatWhenSubscriber.prototype.complete","retries","subscribeToRetries","retriesSubscription","notifications","RepeatWhenSubscriber.prototype._unsubscribe","RepeatWhenSubscriber.prototype._unsubscribeAndRecycle","RepeatWhenSubscriber.prototype.subscribeToRetries","RetryOperator","RetryOperator.prototype.call","RetrySubscriber","RetrySubscriber.prototype.error","RetryWhenOperator","RetryWhenOperator.prototype.call","RetryWhenSubscriber","RetryWhenSubscriber.prototype.error","RetryWhenSubscriber.prototype._unsubscribe","RetryWhenSubscriber.prototype.notifyNext","SampleOperator","SampleOperator.prototype.call","sampleSubscriber","SampleSubscriber","SampleSubscriber.prototype._next","SampleSubscriber.prototype.notifyNext","SampleSubscriber.prototype.notifyComplete","SampleSubscriber.prototype.emitValue","SampleTimeOperator","SampleTimeOperator.prototype.call","SampleTimeSubscriber","SampleTimeSubscriber.prototype._next","SampleTimeSubscriber.prototype.notifyNext","SequenceEqualOperator","compareTo","comparator","SequenceEqualOperator.prototype.call","SequenceEqualSubscriber","_oneComplete","SequenceEqualCompareToSubscriber","SequenceEqualSubscriber.prototype._next","emit","checkValues","SequenceEqualSubscriber.prototype._complete","SequenceEqualSubscriber.prototype.checkValues","areEqual","SequenceEqualSubscriber.prototype.emit","nextB","SequenceEqualSubscriber.prototype.nextB","completeB","SequenceEqualSubscriber.prototype.completeB","SequenceEqualCompareToSubscriber.prototype._next","SequenceEqualCompareToSubscriber.prototype._error","SequenceEqualCompareToSubscriber.prototype._complete","SingleOperator","SingleOperator.prototype.call","SingleSubscriber","seenValue","applySingleValue","SingleSubscriber.prototype.applySingleValue","singleValue","SingleSubscriber.prototype._next","SingleSubscriber.prototype.tryNext","SingleSubscriber.prototype._complete","SkipOperator","SkipOperator.prototype.call","SkipSubscriber","SkipSubscriber.prototype._next","SkipLastOperator","_skipCount","SkipLastOperator.prototype.call","SkipLastSubscriber","_count","_ring","SkipLastSubscriber.prototype._next","skipCount","currentIndex","oldValue","SkipUntilOperator","SkipUntilOperator.prototype.call","SkipUntilSubscriber","SkipUntilSubscriber.prototype._next","SkipUntilSubscriber.prototype.notifyNext","SkipUntilSubscriber.prototype.notifyComplete","SkipWhileOperator","SkipWhileOperator.prototype.call","SkipWhileSubscriber","skipping","SkipWhileSubscriber.prototype._next","tryCallPredicate","SkipWhileSubscriber.prototype.tryCallPredicate","SubscribeOnObservable","delayTime","SubscribeOnObservable.create","SubscribeOnObservable.dispatch","SubscribeOnObservable.prototype._subscribe","SubscribeOnOperator","SubscribeOnOperator.prototype.call","SwitchMapOperator.prototype.call","SwitchMapSubscriber","SwitchMapSubscriber.prototype._next","SwitchMapSubscriber.prototype._innerSub","SwitchMapSubscriber.prototype._complete","SwitchMapSubscriber.prototype._unsubscribe","SwitchMapSubscriber.prototype.notifyComplete","SwitchMapSubscriber.prototype.notifyNext","TakeUntilOperator","TakeUntilOperator.prototype.call","takeUntilSubscriber","TakeUntilSubscriber","TakeUntilSubscriber.prototype.notifyNext","TakeUntilSubscriber.prototype.notifyComplete","TakeWhileOperator","inclusive","TakeWhileOperator.prototype.call","TakeWhileSubscriber","TakeWhileSubscriber.prototype._next","nextOrComplete","TakeWhileSubscriber.prototype.nextOrComplete","predicateResult","DoOperator","DoOperator.prototype.call","TapSubscriber","_tapNext","_tapError","_tapComplete","TapSubscriber.prototype._next","TapSubscriber.prototype._error","TapSubscriber.prototype._complete","defaultThrottleConfig","leading","trailing","ThrottleOperator","ThrottleOperator.prototype.call","ThrottleSubscriber","_leading","_trailing","_hasValue","ThrottleSubscriber.prototype._next","_sendValue","_throttled","send","throttle","ThrottleSubscriber.prototype.send","ThrottleSubscriber.prototype.throttle","tryDurationSelector","ThrottleSubscriber.prototype.tryDurationSelector","throttlingDone","ThrottleSubscriber.prototype.throttlingDone","ThrottleSubscriber.prototype.notifyNext","ThrottleSubscriber.prototype.notifyComplete","ThrottleTimeOperator","ThrottleTimeOperator.prototype.call","ThrottleTimeSubscriber","_hasTrailingValue","_trailingValue","ThrottleTimeSubscriber.prototype._next","ThrottleTimeSubscriber.prototype._complete","ThrottleTimeSubscriber.prototype.clearThrottle","TimeInterval","interval","TimeoutWithOperator.prototype.call","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","TimeoutWithSubscriber.dispatchTimeout","TimeoutWithSubscriber.prototype.scheduleTimeout","TimeoutWithSubscriber.prototype._next","TimeoutWithSubscriber.prototype._unsubscribe","Timestamp","timestamp","WindowOperator","windowBoundaries","WindowOperator.prototype.call","windowSubscriber","WindowSubscriber","sourceSubscription","WindowSubscriber.prototype.notifyNext","WindowSubscriber.prototype.notifyError","WindowSubscriber.prototype.notifyComplete","WindowSubscriber.prototype._next","WindowSubscriber.prototype._error","WindowSubscriber.prototype._complete","WindowSubscriber.prototype._unsubscribe","WindowSubscriber.prototype.openWindow","prevWindow","newWindow","WindowCountOperator","windowSize","startWindowEvery","WindowCountOperator.prototype.call","WindowCountSubscriber","windows","WindowCountSubscriber.prototype._next","c","window_1","WindowCountSubscriber.prototype._error","WindowCountSubscriber.prototype._complete","WindowCountSubscriber.prototype._unsubscribe","WindowTimeOperator","maxWindowSize","WindowTimeOperator.prototype.call","WindowTimeSubscriber","CountedSubject","_numberOfNextedValues","CountedSubject.prototype.next","WindowTimeSubscriber.prototype._next","numberOfNextedValues","WindowTimeSubscriber.prototype._error","WindowTimeSubscriber.prototype._complete","window_2","WindowTimeSubscriber.prototype.openWindow","WindowTimeSubscriber.prototype.closeWindow","WindowToggleOperator","WindowToggleOperator.prototype.call","WindowToggleSubscriber","openSubscription","WindowToggleSubscriber.prototype._next","WindowToggleSubscriber.prototype._error","WindowToggleSubscriber.prototype._complete","WindowToggleSubscriber.prototype._unsubscribe","context_3","WindowToggleSubscriber.prototype.notifyNext","context_4","WindowToggleSubscriber.prototype.notifyError","WindowToggleSubscriber.prototype.notifyComplete","inner","WindowToggleSubscriber.prototype.closeWindow","WindowOperator$1","WindowSubscriber$1","unsubscribeClosingNotification","WindowSubscriber.prototype.unsubscribeClosingNotification","closingNotification","WithLatestFromOperator","WithLatestFromOperator.prototype.call","WithLatestFromSubscriber","WithLatestFromSubscriber.prototype.notifyNext","found","WithLatestFromSubscriber.prototype.notifyComplete","WithLatestFromSubscriber.prototype._next","_tryProject","WithLatestFromSubscriber.prototype._tryProject","_operators","freeze","auditTime","bufferOperatorFunction","bufferCount","bufferCountOperatorFunction","bufferTime","bufferTimeOperatorFunction","bufferToggle","bufferToggleOperatorFunction","bufferWhen","catchError","catchErrorOperatorFunction","combineAll","combineLatest","combineLatest$1","concat$1","concatMapTo","innerObservable","debounce","debounceTime","delayFor","delayWhen","dematerialize","dematerializeOperatorFunction","distinct","distinctUntilKeyChanged","elementAt","hasDefaultValue","v","endWith","every","exhaust","expand","finalize","find","findIndex","groupBy","ignoreElements","ignoreElementsOperatorFunction","mapTo","materialize","materializeOperatorFunction","comparer","merge$1","flatMap","mergeMapTo","mergeScan","min","observeOn","observeOnOperatorFunction","onErrorResumeNext$1","pairwise","partition","partition$1","pluck","properties","publish","publishBehavior","publishLast","publishReplay","selectorOrScheduler","race$1","raceOperatorFunction","repeat","repeatWhen","retry","retryWhen","sample","sampleTime","sequenceEqual","share","shareReplay","configOrBufferSize","single","skip","skipLast","skipUntil","skipWhile","startWith","subscribeOn","subscribeOnOperatorFunction","switchAll","switchMapTo","takeUntil","takeWhile","tap","tapOperatorFunction","throttleTime","timeInterval","current","timeout","toArray","window$1","windowOperatorFunction","windowCount","windowCountOperatorFunction","windowTimeOperatorFunction","windowToggle","windowWhen","windowWhenOperatorFunction","withLatestFrom","zip$1","zipOperatorFunction","zipAll","SubscriptionLog","subscribedFrame","unsubscribedFrame","SubscriptionLoggable","logSubscribedFrame","SubscriptionLoggable.prototype.logSubscribedFrame","logUnsubscribedFrame","SubscriptionLoggable.prototype.logUnsubscribedFrame","subscriptionLogs","oldSubscriptionLog","ColdObservable","messages","scheduleMessages","ColdObservable.prototype.scheduleMessages","messagesLength","HotObservable","HotObservable.prototype._subscribe","setup","HotObservable.prototype.setup","TestScheduler","assertDeepEqual","defaultMaxFrame","hotObservables","coldObservables","flushTests","runMode","createTime","TestScheduler.prototype.createTime","marbles","createColdObservable","TestScheduler.prototype.createColdObservable","parseMarbles","cold","createHotObservable","TestScheduler.prototype.createHotObservable","materializeInnerObservable","TestScheduler.prototype.materializeInnerObservable","outerFrame","expectObservable","TestScheduler.prototype.expectObservable","subscriptionMarbles","actual","flushTest","ready","subscriptionParsed","parseMarblesAsSubscriptions","unsubscriptionFrame","subscriptionFrame","toBe","expected","expectSubscriptions","TestScheduler.prototype.expectSubscriptions","actualSubscriptionLogs","marblesArray","TestScheduler.prototype.flush","test","TestScheduler.parseMarblesAsSubscriptions","groupStart","nextFrame","advanceFrameBy","match","durationInMs","unit","this_1","out_i_1","TestScheduler.parseMarbles","materializeInnerObservables","testMessages","subIndex","replace","_loop_2","this_2","out_i_2","run","TestScheduler.prototype.run","prevFrameTimeFactor","prevMaxFrames","helpers","hot","ret","_testing","__self","self","WorkerGlobalScope","__global","_root","urlOrRequest","request","createXHR","crossDomain","XMLHttpRequest","XDomainRequest","progId","progIds","ActiveXObject","withCredentials","prop","AjaxObservable.prototype._subscribe","AjaxSubscriber","post","put","patch","getJSON","getHeader","contentTypeHeader","FormData","serializeBody","AjaxSubscriber.prototype.next","AjaxResponse","AjaxSubscriber.prototype.send","user","password","setupEvents","open","setHeaders","AjaxSubscriber.prototype.serializeBody","contentType","splitIndex","substring","encodeURIComponent","stringify","AjaxSubscriber.prototype.setHeaders","setRequestHeader","AjaxSubscriber.prototype.getHeader","headerName","toLowerCase","AjaxSubscriber.prototype.setupEvents","xhrTimeout","progressSubscriber","AjaxTimeoutError","xhrReadyStateChange","xhrLoad","readyState","status_1","status","AjaxError","ontimeout","upload","xhrProgress_1","onprogress","xhrError_1","onerror","onreadystatechange","onload","AjaxSubscriber.prototype.unsubscribe","abort","originalEvent","AjaxErrorImpl","AjaxTimeoutErrorImpl","_ajax","ajax","DEFAULT_WEBSOCKET_CONFIG","deserializer","data","serializer","WebSocketSubject","urlConfigOrSource","_config","_output","WebSocketCtor","WebSocket","WebSocketSubject.prototype.lift","sock","_resetState","WebSocketSubject.prototype._resetState","_socket","multiplex","WebSocketSubject.prototype.multiplex","subMsg","unsubMsg","messageFilter","_connectSocket","WebSocketSubject.prototype._connectSocket","protocol","binaryType","socket","close","onopen","socket.onopen","openObserver","closingObserver","code","reason","WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT","socket.onerror","onclose","socket.onclose","closeObserver","wasClean","onmessage","socket.onmessage","WebSocketSubject.prototype._subscribe","WebSocketSubject.prototype.unsubscribe","_webSocket","webSocket","fetch$1","_fetch","fromFetch","init","controller","AbortController","signal","abortable","unsubscribed","aborted","outerSignalHandler","fetch","catch","operators","testing","asapScheduler","asyncScheduler","queueScheduler","animationFrameScheduler","isObservable","forkJoin","first_1","getPrototypeOf","resultSelector_1","generate","initialStateOrOptions","resultSelectorOrObservable","initialState","iif","trueResult","falseResult","never","pairs","range","using","resourceFactory","resource"]}
diff --git a/node_modules/rxjs/fetch/index.d.ts b/node_modules/rxjs/fetch/index.d.ts
deleted file mode 100644
index e6ff01d..0000000
--- a/node_modules/rxjs/fetch/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { fromFetch } from '../internal/observable/dom/fetch';
diff --git a/node_modules/rxjs/fetch/index.js b/node_modules/rxjs/fetch/index.js
deleted file mode 100644
index ca5d62f..0000000
--- a/node_modules/rxjs/fetch/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var fetch_1 = require("../internal/observable/dom/fetch");
-exports.fromFetch = fetch_1.fromFetch;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/fetch/index.js.map b/node_modules/rxjs/fetch/index.js.map
deleted file mode 100644
index 0f14a63..0000000
--- a/node_modules/rxjs/fetch/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/fetch/index.ts"],"names":[],"mappings":";;AAAA,0DAA6D;AAApD,4BAAA,SAAS,CAAA"}
diff --git a/node_modules/rxjs/fetch/package.json b/node_modules/rxjs/fetch/package.json
deleted file mode 100644
index dff5519..0000000
--- a/node_modules/rxjs/fetch/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/fetch",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/fetch/index.js",
-  "es2015": "../_esm2015/fetch/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/index.d.ts b/node_modules/rxjs/index.d.ts
deleted file mode 100644
index d33af3b..0000000
--- a/node_modules/rxjs/index.d.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-export { Observable } from './internal/Observable';
-export { ConnectableObservable } from './internal/observable/ConnectableObservable';
-export { GroupedObservable } from './internal/operators/groupBy';
-export { Operator } from './internal/Operator';
-export { observable } from './internal/symbol/observable';
-export { Subject } from './internal/Subject';
-export { BehaviorSubject } from './internal/BehaviorSubject';
-export { ReplaySubject } from './internal/ReplaySubject';
-export { AsyncSubject } from './internal/AsyncSubject';
-export { asap as asapScheduler } from './internal/scheduler/asap';
-export { async as asyncScheduler } from './internal/scheduler/async';
-export { queue as queueScheduler } from './internal/scheduler/queue';
-export { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';
-export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';
-export { Scheduler } from './internal/Scheduler';
-export { Subscription } from './internal/Subscription';
-export { Subscriber } from './internal/Subscriber';
-export { Notification, NotificationKind } from './internal/Notification';
-export { pipe } from './internal/util/pipe';
-export { noop } from './internal/util/noop';
-export { identity } from './internal/util/identity';
-export { isObservable } from './internal/util/isObservable';
-export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from './internal/util/EmptyError';
-export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';
-export { UnsubscriptionError } from './internal/util/UnsubscriptionError';
-export { TimeoutError } from './internal/util/TimeoutError';
-export { bindCallback } from './internal/observable/bindCallback';
-export { bindNodeCallback } from './internal/observable/bindNodeCallback';
-export { combineLatest } from './internal/observable/combineLatest';
-export { concat } from './internal/observable/concat';
-export { defer } from './internal/observable/defer';
-export { empty } from './internal/observable/empty';
-export { forkJoin } from './internal/observable/forkJoin';
-export { from } from './internal/observable/from';
-export { fromEvent } from './internal/observable/fromEvent';
-export { fromEventPattern } from './internal/observable/fromEventPattern';
-export { generate } from './internal/observable/generate';
-export { iif } from './internal/observable/iif';
-export { interval } from './internal/observable/interval';
-export { merge } from './internal/observable/merge';
-export { never } from './internal/observable/never';
-export { of } from './internal/observable/of';
-export { onErrorResumeNext } from './internal/observable/onErrorResumeNext';
-export { pairs } from './internal/observable/pairs';
-export { partition } from './internal/observable/partition';
-export { race } from './internal/observable/race';
-export { range } from './internal/observable/range';
-export { throwError } from './internal/observable/throwError';
-export { timer } from './internal/observable/timer';
-export { using } from './internal/observable/using';
-export { zip } from './internal/observable/zip';
-export { scheduled } from './internal/scheduled/scheduled';
-export { EMPTY } from './internal/observable/empty';
-export { NEVER } from './internal/observable/never';
-export * from './internal/types';
-export { config } from './internal/config';
diff --git a/node_modules/rxjs/index.js b/node_modules/rxjs/index.js
deleted file mode 100644
index 042b7e6..0000000
--- a/node_modules/rxjs/index.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("./internal/Observable");
-exports.Observable = Observable_1.Observable;
-var ConnectableObservable_1 = require("./internal/observable/ConnectableObservable");
-exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable;
-var groupBy_1 = require("./internal/operators/groupBy");
-exports.GroupedObservable = groupBy_1.GroupedObservable;
-var observable_1 = require("./internal/symbol/observable");
-exports.observable = observable_1.observable;
-var Subject_1 = require("./internal/Subject");
-exports.Subject = Subject_1.Subject;
-var BehaviorSubject_1 = require("./internal/BehaviorSubject");
-exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject;
-var ReplaySubject_1 = require("./internal/ReplaySubject");
-exports.ReplaySubject = ReplaySubject_1.ReplaySubject;
-var AsyncSubject_1 = require("./internal/AsyncSubject");
-exports.AsyncSubject = AsyncSubject_1.AsyncSubject;
-var asap_1 = require("./internal/scheduler/asap");
-exports.asapScheduler = asap_1.asap;
-var async_1 = require("./internal/scheduler/async");
-exports.asyncScheduler = async_1.async;
-var queue_1 = require("./internal/scheduler/queue");
-exports.queueScheduler = queue_1.queue;
-var animationFrame_1 = require("./internal/scheduler/animationFrame");
-exports.animationFrameScheduler = animationFrame_1.animationFrame;
-var VirtualTimeScheduler_1 = require("./internal/scheduler/VirtualTimeScheduler");
-exports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler;
-exports.VirtualAction = VirtualTimeScheduler_1.VirtualAction;
-var Scheduler_1 = require("./internal/Scheduler");
-exports.Scheduler = Scheduler_1.Scheduler;
-var Subscription_1 = require("./internal/Subscription");
-exports.Subscription = Subscription_1.Subscription;
-var Subscriber_1 = require("./internal/Subscriber");
-exports.Subscriber = Subscriber_1.Subscriber;
-var Notification_1 = require("./internal/Notification");
-exports.Notification = Notification_1.Notification;
-exports.NotificationKind = Notification_1.NotificationKind;
-var pipe_1 = require("./internal/util/pipe");
-exports.pipe = pipe_1.pipe;
-var noop_1 = require("./internal/util/noop");
-exports.noop = noop_1.noop;
-var identity_1 = require("./internal/util/identity");
-exports.identity = identity_1.identity;
-var isObservable_1 = require("./internal/util/isObservable");
-exports.isObservable = isObservable_1.isObservable;
-var ArgumentOutOfRangeError_1 = require("./internal/util/ArgumentOutOfRangeError");
-exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-var EmptyError_1 = require("./internal/util/EmptyError");
-exports.EmptyError = EmptyError_1.EmptyError;
-var ObjectUnsubscribedError_1 = require("./internal/util/ObjectUnsubscribedError");
-exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError;
-var UnsubscriptionError_1 = require("./internal/util/UnsubscriptionError");
-exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError;
-var TimeoutError_1 = require("./internal/util/TimeoutError");
-exports.TimeoutError = TimeoutError_1.TimeoutError;
-var bindCallback_1 = require("./internal/observable/bindCallback");
-exports.bindCallback = bindCallback_1.bindCallback;
-var bindNodeCallback_1 = require("./internal/observable/bindNodeCallback");
-exports.bindNodeCallback = bindNodeCallback_1.bindNodeCallback;
-var combineLatest_1 = require("./internal/observable/combineLatest");
-exports.combineLatest = combineLatest_1.combineLatest;
-var concat_1 = require("./internal/observable/concat");
-exports.concat = concat_1.concat;
-var defer_1 = require("./internal/observable/defer");
-exports.defer = defer_1.defer;
-var empty_1 = require("./internal/observable/empty");
-exports.empty = empty_1.empty;
-var forkJoin_1 = require("./internal/observable/forkJoin");
-exports.forkJoin = forkJoin_1.forkJoin;
-var from_1 = require("./internal/observable/from");
-exports.from = from_1.from;
-var fromEvent_1 = require("./internal/observable/fromEvent");
-exports.fromEvent = fromEvent_1.fromEvent;
-var fromEventPattern_1 = require("./internal/observable/fromEventPattern");
-exports.fromEventPattern = fromEventPattern_1.fromEventPattern;
-var generate_1 = require("./internal/observable/generate");
-exports.generate = generate_1.generate;
-var iif_1 = require("./internal/observable/iif");
-exports.iif = iif_1.iif;
-var interval_1 = require("./internal/observable/interval");
-exports.interval = interval_1.interval;
-var merge_1 = require("./internal/observable/merge");
-exports.merge = merge_1.merge;
-var never_1 = require("./internal/observable/never");
-exports.never = never_1.never;
-var of_1 = require("./internal/observable/of");
-exports.of = of_1.of;
-var onErrorResumeNext_1 = require("./internal/observable/onErrorResumeNext");
-exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext;
-var pairs_1 = require("./internal/observable/pairs");
-exports.pairs = pairs_1.pairs;
-var partition_1 = require("./internal/observable/partition");
-exports.partition = partition_1.partition;
-var race_1 = require("./internal/observable/race");
-exports.race = race_1.race;
-var range_1 = require("./internal/observable/range");
-exports.range = range_1.range;
-var throwError_1 = require("./internal/observable/throwError");
-exports.throwError = throwError_1.throwError;
-var timer_1 = require("./internal/observable/timer");
-exports.timer = timer_1.timer;
-var using_1 = require("./internal/observable/using");
-exports.using = using_1.using;
-var zip_1 = require("./internal/observable/zip");
-exports.zip = zip_1.zip;
-var scheduled_1 = require("./internal/scheduled/scheduled");
-exports.scheduled = scheduled_1.scheduled;
-var empty_2 = require("./internal/observable/empty");
-exports.EMPTY = empty_2.EMPTY;
-var never_2 = require("./internal/observable/never");
-exports.NEVER = never_2.NEVER;
-var config_1 = require("./internal/config");
-exports.config = config_1.config;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/index.js.map b/node_modules/rxjs/index.js.map
deleted file mode 100644
index 226fe84..0000000
--- a/node_modules/rxjs/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["src/index.ts"],"names":[],"mappings":";;AACA,oDAAmD;AAA1C,kCAAA,UAAU,CAAA;AACnB,qFAAoF;AAA3E,wDAAA,qBAAqB,CAAA;AAC9B,wDAAiE;AAAxD,sCAAA,iBAAiB,CAAA;AAE1B,2DAA0D;AAAjD,kCAAA,UAAU,CAAA;AAGnB,8CAA6C;AAApC,4BAAA,OAAO,CAAA;AAChB,8DAA6D;AAApD,4CAAA,eAAe,CAAA;AACxB,0DAAyD;AAAhD,wCAAA,aAAa,CAAA;AACtB,wDAAuD;AAA9C,sCAAA,YAAY,CAAA;AAGrB,kDAAkE;AAAzD,+BAAA,IAAI,CAAiB;AAC9B,oDAAqE;AAA5D,iCAAA,KAAK,CAAkB;AAChC,oDAAqE;AAA5D,iCAAA,KAAK,CAAkB;AAChC,sEAAgG;AAAvF,mDAAA,cAAc,CAA2B;AAClD,kFAAgG;AAAvF,sDAAA,oBAAoB,CAAA;AAAE,+CAAA,aAAa,CAAA;AAC5C,kDAAiD;AAAxC,gCAAA,SAAS,CAAA;AAGlB,wDAAuD;AAA9C,sCAAA,YAAY,CAAA;AACrB,oDAAmD;AAA1C,kCAAA,UAAU,CAAA;AAGnB,wDAAyE;AAAhE,sCAAA,YAAY,CAAA;AAAE,0CAAA,gBAAgB,CAAA;AAGvC,6CAA4C;AAAnC,sBAAA,IAAI,CAAA;AACb,6CAA4C;AAAnC,sBAAA,IAAI,CAAA;AACb,qDAAoD;AAA3C,8BAAA,QAAQ,CAAA;AACjB,6DAA4D;AAAnD,sCAAA,YAAY,CAAA;AAGrB,mFAAkF;AAAzE,4DAAA,uBAAuB,CAAA;AAChC,yDAAwD;AAA/C,kCAAA,UAAU,CAAA;AACnB,mFAAkF;AAAzE,4DAAA,uBAAuB,CAAA;AAChC,2EAA0E;AAAjE,oDAAA,mBAAmB,CAAA;AAC5B,6DAA4D;AAAnD,sCAAA,YAAY,CAAA;AAGrB,mEAAkE;AAAzD,sCAAA,YAAY,CAAA;AACrB,2EAA0E;AAAjE,8CAAA,gBAAgB,CAAA;AACzB,qEAAoE;AAA3D,wCAAA,aAAa,CAAA;AACtB,uDAAsD;AAA7C,0BAAA,MAAM,CAAA;AACf,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,mDAAkD;AAAzC,sBAAA,IAAI,CAAA;AACb,6DAA4D;AAAnD,gCAAA,SAAS,CAAA;AAClB,2EAA0E;AAAjE,8CAAA,gBAAgB,CAAA;AACzB,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,iDAAgD;AAAvC,oBAAA,GAAG,CAAA;AACZ,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,+CAA8C;AAArC,kBAAA,EAAE,CAAA;AACX,6EAA4E;AAAnE,gDAAA,iBAAiB,CAAA;AAC1B,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,6DAA4D;AAAnD,gCAAA,SAAS,CAAA;AAClB,mDAAkD;AAAzC,sBAAA,IAAI,CAAA;AACb,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,+DAA8D;AAArD,kCAAA,UAAU,CAAA;AACnB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,iDAAgD;AAAvC,oBAAA,GAAG,CAAA;AACZ,4DAA2D;AAAlD,gCAAA,SAAS,CAAA;AAGlB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AAMd,4CAA2C;AAAlC,0BAAA,MAAM,CAAA"}
diff --git a/node_modules/rxjs/interfaces.d.ts b/node_modules/rxjs/interfaces.d.ts
deleted file mode 100644
index 5d5821d..0000000
--- a/node_modules/rxjs/interfaces.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/interfaces';
diff --git a/node_modules/rxjs/interfaces.js b/node_modules/rxjs/interfaces.js
deleted file mode 100644
index db91911..0000000
--- a/node_modules/rxjs/interfaces.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=interfaces.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/interfaces.js.map b/node_modules/rxjs/interfaces.js.map
deleted file mode 100644
index 21fafaa..0000000
--- a/node_modules/rxjs/interfaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interfaces.js","sources":["src/interfaces.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/internal-compatibility/index.d.ts b/node_modules/rxjs/internal-compatibility/index.d.ts
deleted file mode 100644
index 3f2c80e..0000000
--- a/node_modules/rxjs/internal-compatibility/index.d.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-export { config } from '../internal/config';
-export { InnerSubscriber } from '../internal/InnerSubscriber';
-export { OuterSubscriber } from '../internal/OuterSubscriber';
-export { Scheduler } from '../internal/Scheduler';
-export { AnonymousSubject } from '../internal/Subject';
-export { SubjectSubscription } from '../internal/SubjectSubscription';
-export { Subscriber } from '../internal/Subscriber';
-export { fromPromise } from '../internal/observable/fromPromise';
-export { fromIterable } from '../internal/observable/fromIterable';
-export { ajax } from '../internal/observable/dom/ajax';
-export { webSocket } from '../internal/observable/dom/webSocket';
-export { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-export { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-export { CombineLatestOperator } from '../internal/observable/combineLatest';
-export { EventTargetLike } from '../internal/observable/fromEvent';
-export { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate';
-export { dispatch } from '../internal/observable/range';
-export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';
-export { Timestamp } from '../internal/operators/timestamp';
-export { TimeInterval } from '../internal/operators/timeInterval';
-export { GroupedObservable } from '../internal/operators/groupBy';
-export { ShareReplayConfig } from '../internal/operators/shareReplay';
-export { ThrottleConfig, defaultThrottleConfig } from '../internal/operators/throttle';
-export { rxSubscriber } from '../internal/symbol/rxSubscriber';
-export { iterator } from '../internal/symbol/iterator';
-export { observable } from '../internal/symbol/observable';
-export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from '../internal/util/EmptyError';
-export { Immediate } from '../internal/util/Immediate';
-export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError';
-export { TimeoutError } from '../internal/util/TimeoutError';
-export { UnsubscriptionError } from '../internal/util/UnsubscriptionError';
-export { applyMixins } from '../internal/util/applyMixins';
-export { errorObject } from '../internal/util/errorObject';
-export { hostReportError } from '../internal/util/hostReportError';
-export { identity } from '../internal/util/identity';
-export { isArray } from '../internal/util/isArray';
-export { isArrayLike } from '../internal/util/isArrayLike';
-export { isDate } from '../internal/util/isDate';
-export { isFunction } from '../internal/util/isFunction';
-export { isIterable } from '../internal/util/isIterable';
-export { isNumeric } from '../internal/util/isNumeric';
-export { isObject } from '../internal/util/isObject';
-export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable';
-export { isPromise } from '../internal/util/isPromise';
-export { isScheduler } from '../internal/util/isScheduler';
-export { noop } from '../internal/util/noop';
-export { not } from '../internal/util/not';
-export { pipe } from '../internal/util/pipe';
-export { root } from '../internal/util/root';
-export { subscribeTo } from '../internal/util/subscribeTo';
-export { subscribeToArray } from '../internal/util/subscribeToArray';
-export { subscribeToIterable } from '../internal/util/subscribeToIterable';
-export { subscribeToObservable } from '../internal/util/subscribeToObservable';
-export { subscribeToPromise } from '../internal/util/subscribeToPromise';
-export { subscribeToResult } from '../internal/util/subscribeToResult';
-export { toSubscriber } from '../internal/util/toSubscriber';
-export { tryCatch } from '../internal/util/tryCatch';
diff --git a/node_modules/rxjs/internal-compatibility/index.js b/node_modules/rxjs/internal-compatibility/index.js
deleted file mode 100644
index d0e265e..0000000
--- a/node_modules/rxjs/internal-compatibility/index.js
+++ /dev/null
@@ -1,123 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var config_1 = require("../internal/config");
-exports.config = config_1.config;
-var InnerSubscriber_1 = require("../internal/InnerSubscriber");
-exports.InnerSubscriber = InnerSubscriber_1.InnerSubscriber;
-var OuterSubscriber_1 = require("../internal/OuterSubscriber");
-exports.OuterSubscriber = OuterSubscriber_1.OuterSubscriber;
-var Scheduler_1 = require("../internal/Scheduler");
-exports.Scheduler = Scheduler_1.Scheduler;
-var Subject_1 = require("../internal/Subject");
-exports.AnonymousSubject = Subject_1.AnonymousSubject;
-var SubjectSubscription_1 = require("../internal/SubjectSubscription");
-exports.SubjectSubscription = SubjectSubscription_1.SubjectSubscription;
-var Subscriber_1 = require("../internal/Subscriber");
-exports.Subscriber = Subscriber_1.Subscriber;
-var fromPromise_1 = require("../internal/observable/fromPromise");
-exports.fromPromise = fromPromise_1.fromPromise;
-var fromIterable_1 = require("../internal/observable/fromIterable");
-exports.fromIterable = fromIterable_1.fromIterable;
-var ajax_1 = require("../internal/observable/dom/ajax");
-exports.ajax = ajax_1.ajax;
-var webSocket_1 = require("../internal/observable/dom/webSocket");
-exports.webSocket = webSocket_1.webSocket;
-var AjaxObservable_1 = require("../internal/observable/dom/AjaxObservable");
-exports.ajaxGet = AjaxObservable_1.ajaxGet;
-exports.ajaxPost = AjaxObservable_1.ajaxPost;
-exports.ajaxDelete = AjaxObservable_1.ajaxDelete;
-exports.ajaxPut = AjaxObservable_1.ajaxPut;
-exports.ajaxPatch = AjaxObservable_1.ajaxPatch;
-exports.ajaxGetJSON = AjaxObservable_1.ajaxGetJSON;
-exports.AjaxObservable = AjaxObservable_1.AjaxObservable;
-exports.AjaxSubscriber = AjaxObservable_1.AjaxSubscriber;
-exports.AjaxResponse = AjaxObservable_1.AjaxResponse;
-exports.AjaxError = AjaxObservable_1.AjaxError;
-exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError;
-var WebSocketSubject_1 = require("../internal/observable/dom/WebSocketSubject");
-exports.WebSocketSubject = WebSocketSubject_1.WebSocketSubject;
-var combineLatest_1 = require("../internal/observable/combineLatest");
-exports.CombineLatestOperator = combineLatest_1.CombineLatestOperator;
-var range_1 = require("../internal/observable/range");
-exports.dispatch = range_1.dispatch;
-var SubscribeOnObservable_1 = require("../internal/observable/SubscribeOnObservable");
-exports.SubscribeOnObservable = SubscribeOnObservable_1.SubscribeOnObservable;
-var timestamp_1 = require("../internal/operators/timestamp");
-exports.Timestamp = timestamp_1.Timestamp;
-var timeInterval_1 = require("../internal/operators/timeInterval");
-exports.TimeInterval = timeInterval_1.TimeInterval;
-var groupBy_1 = require("../internal/operators/groupBy");
-exports.GroupedObservable = groupBy_1.GroupedObservable;
-var throttle_1 = require("../internal/operators/throttle");
-exports.defaultThrottleConfig = throttle_1.defaultThrottleConfig;
-var rxSubscriber_1 = require("../internal/symbol/rxSubscriber");
-exports.rxSubscriber = rxSubscriber_1.rxSubscriber;
-var iterator_1 = require("../internal/symbol/iterator");
-exports.iterator = iterator_1.iterator;
-var observable_1 = require("../internal/symbol/observable");
-exports.observable = observable_1.observable;
-var ArgumentOutOfRangeError_1 = require("../internal/util/ArgumentOutOfRangeError");
-exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-var EmptyError_1 = require("../internal/util/EmptyError");
-exports.EmptyError = EmptyError_1.EmptyError;
-var Immediate_1 = require("../internal/util/Immediate");
-exports.Immediate = Immediate_1.Immediate;
-var ObjectUnsubscribedError_1 = require("../internal/util/ObjectUnsubscribedError");
-exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError;
-var TimeoutError_1 = require("../internal/util/TimeoutError");
-exports.TimeoutError = TimeoutError_1.TimeoutError;
-var UnsubscriptionError_1 = require("../internal/util/UnsubscriptionError");
-exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError;
-var applyMixins_1 = require("../internal/util/applyMixins");
-exports.applyMixins = applyMixins_1.applyMixins;
-var errorObject_1 = require("../internal/util/errorObject");
-exports.errorObject = errorObject_1.errorObject;
-var hostReportError_1 = require("../internal/util/hostReportError");
-exports.hostReportError = hostReportError_1.hostReportError;
-var identity_1 = require("../internal/util/identity");
-exports.identity = identity_1.identity;
-var isArray_1 = require("../internal/util/isArray");
-exports.isArray = isArray_1.isArray;
-var isArrayLike_1 = require("../internal/util/isArrayLike");
-exports.isArrayLike = isArrayLike_1.isArrayLike;
-var isDate_1 = require("../internal/util/isDate");
-exports.isDate = isDate_1.isDate;
-var isFunction_1 = require("../internal/util/isFunction");
-exports.isFunction = isFunction_1.isFunction;
-var isIterable_1 = require("../internal/util/isIterable");
-exports.isIterable = isIterable_1.isIterable;
-var isNumeric_1 = require("../internal/util/isNumeric");
-exports.isNumeric = isNumeric_1.isNumeric;
-var isObject_1 = require("../internal/util/isObject");
-exports.isObject = isObject_1.isObject;
-var isInteropObservable_1 = require("../internal/util/isInteropObservable");
-exports.isObservable = isInteropObservable_1.isInteropObservable;
-var isPromise_1 = require("../internal/util/isPromise");
-exports.isPromise = isPromise_1.isPromise;
-var isScheduler_1 = require("../internal/util/isScheduler");
-exports.isScheduler = isScheduler_1.isScheduler;
-var noop_1 = require("../internal/util/noop");
-exports.noop = noop_1.noop;
-var not_1 = require("../internal/util/not");
-exports.not = not_1.not;
-var pipe_1 = require("../internal/util/pipe");
-exports.pipe = pipe_1.pipe;
-var root_1 = require("../internal/util/root");
-exports.root = root_1.root;
-var subscribeTo_1 = require("../internal/util/subscribeTo");
-exports.subscribeTo = subscribeTo_1.subscribeTo;
-var subscribeToArray_1 = require("../internal/util/subscribeToArray");
-exports.subscribeToArray = subscribeToArray_1.subscribeToArray;
-var subscribeToIterable_1 = require("../internal/util/subscribeToIterable");
-exports.subscribeToIterable = subscribeToIterable_1.subscribeToIterable;
-var subscribeToObservable_1 = require("../internal/util/subscribeToObservable");
-exports.subscribeToObservable = subscribeToObservable_1.subscribeToObservable;
-var subscribeToPromise_1 = require("../internal/util/subscribeToPromise");
-exports.subscribeToPromise = subscribeToPromise_1.subscribeToPromise;
-var subscribeToResult_1 = require("../internal/util/subscribeToResult");
-exports.subscribeToResult = subscribeToResult_1.subscribeToResult;
-var toSubscriber_1 = require("../internal/util/toSubscriber");
-exports.toSubscriber = toSubscriber_1.toSubscriber;
-var tryCatch_1 = require("../internal/util/tryCatch");
-exports.tryCatch = tryCatch_1.tryCatch;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal-compatibility/index.js.map b/node_modules/rxjs/internal-compatibility/index.js.map
deleted file mode 100644
index 2119394..0000000
--- a/node_modules/rxjs/internal-compatibility/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/internal-compatibility/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal-compatibility/package.json b/node_modules/rxjs/internal-compatibility/package.json
deleted file mode 100644
index 5ff05a6..0000000
--- a/node_modules/rxjs/internal-compatibility/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/internal-compatibility",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/internal-compatibility/index.js",
-  "es2015": "../_esm2015/internal-compatibility/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/internal/AsyncSubject.d.ts b/node_modules/rxjs/internal/AsyncSubject.d.ts
deleted file mode 100644
index fde2be1..0000000
--- a/node_modules/rxjs/internal/AsyncSubject.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Subject } from './Subject';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-/**
- * A variant of Subject that only emits a value when it completes. It will emit
- * its latest value to all its observers on completion.
- *
- * @class AsyncSubject<T>
- */
-export declare class AsyncSubject<T> extends Subject<T> {
-    private value;
-    private hasNext;
-    private hasCompleted;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<any>): Subscription;
-    next(value: T): void;
-    error(error: any): void;
-    complete(): void;
-}
diff --git a/node_modules/rxjs/internal/AsyncSubject.js b/node_modules/rxjs/internal/AsyncSubject.js
deleted file mode 100644
index 55d028b..0000000
--- a/node_modules/rxjs/internal/AsyncSubject.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("./Subject");
-var Subscription_1 = require("./Subscription");
-var AsyncSubject = (function (_super) {
-    __extends(AsyncSubject, _super);
-    function AsyncSubject() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.value = null;
-        _this.hasNext = false;
-        _this.hasCompleted = false;
-        return _this;
-    }
-    AsyncSubject.prototype._subscribe = function (subscriber) {
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription_1.Subscription.EMPTY;
-        }
-        else if (this.hasCompleted && this.hasNext) {
-            subscriber.next(this.value);
-            subscriber.complete();
-            return Subscription_1.Subscription.EMPTY;
-        }
-        return _super.prototype._subscribe.call(this, subscriber);
-    };
-    AsyncSubject.prototype.next = function (value) {
-        if (!this.hasCompleted) {
-            this.value = value;
-            this.hasNext = true;
-        }
-    };
-    AsyncSubject.prototype.error = function (error) {
-        if (!this.hasCompleted) {
-            _super.prototype.error.call(this, error);
-        }
-    };
-    AsyncSubject.prototype.complete = function () {
-        this.hasCompleted = true;
-        if (this.hasNext) {
-            _super.prototype.next.call(this, this.value);
-        }
-        _super.prototype.complete.call(this);
-    };
-    return AsyncSubject;
-}(Subject_1.Subject));
-exports.AsyncSubject = AsyncSubject;
-//# sourceMappingURL=AsyncSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/AsyncSubject.js.map b/node_modules/rxjs/internal/AsyncSubject.js.map
deleted file mode 100644
index 56ffa67..0000000
--- a/node_modules/rxjs/internal/AsyncSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncSubject.js","sources":["../src/internal/AsyncSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,+CAA8C;AAQ9C;IAAqC,gCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,iBAAO,GAsC3C;AAtCY,oCAAY"}
diff --git a/node_modules/rxjs/internal/BehaviorSubject.d.ts b/node_modules/rxjs/internal/BehaviorSubject.d.ts
deleted file mode 100644
index c84b212..0000000
--- a/node_modules/rxjs/internal/BehaviorSubject.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Subject } from './Subject';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-/**
- * A variant of Subject that requires an initial value and emits its current
- * value whenever it is subscribed to.
- *
- * @class BehaviorSubject<T>
- */
-export declare class BehaviorSubject<T> extends Subject<T> {
-    private _value;
-    constructor(_value: T);
-    readonly value: T;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-    getValue(): T;
-    next(value: T): void;
-}
diff --git a/node_modules/rxjs/internal/BehaviorSubject.js b/node_modules/rxjs/internal/BehaviorSubject.js
deleted file mode 100644
index 99435d6..0000000
--- a/node_modules/rxjs/internal/BehaviorSubject.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("./Subject");
-var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
-var BehaviorSubject = (function (_super) {
-    __extends(BehaviorSubject, _super);
-    function BehaviorSubject(_value) {
-        var _this = _super.call(this) || this;
-        _this._value = _value;
-        return _this;
-    }
-    Object.defineProperty(BehaviorSubject.prototype, "value", {
-        get: function () {
-            return this.getValue();
-        },
-        enumerable: true,
-        configurable: true
-    });
-    BehaviorSubject.prototype._subscribe = function (subscriber) {
-        var subscription = _super.prototype._subscribe.call(this, subscriber);
-        if (subscription && !subscription.closed) {
-            subscriber.next(this._value);
-        }
-        return subscription;
-    };
-    BehaviorSubject.prototype.getValue = function () {
-        if (this.hasError) {
-            throw this.thrownError;
-        }
-        else if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        else {
-            return this._value;
-        }
-    };
-    BehaviorSubject.prototype.next = function (value) {
-        _super.prototype.next.call(this, this._value = value);
-    };
-    return BehaviorSubject;
-}(Subject_1.Subject));
-exports.BehaviorSubject = BehaviorSubject;
-//# sourceMappingURL=BehaviorSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/BehaviorSubject.js.map b/node_modules/rxjs/internal/BehaviorSubject.js.map
deleted file mode 100644
index 54d4006..0000000
--- a/node_modules/rxjs/internal/BehaviorSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BehaviorSubject.js","sources":["../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAIpC,0EAAyE;AAQzE;IAAwC,mCAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,iBAAO,GAgC9C;AAhCY,0CAAe"}
diff --git a/node_modules/rxjs/internal/InnerSubscriber.d.ts b/node_modules/rxjs/internal/InnerSubscriber.d.ts
deleted file mode 100644
index da9c606..0000000
--- a/node_modules/rxjs/internal/InnerSubscriber.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { OuterSubscriber } from './OuterSubscriber';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class InnerSubscriber<T, R> extends Subscriber<R> {
-    private parent;
-    outerValue: T;
-    outerIndex: number;
-    private index;
-    constructor(parent: OuterSubscriber<T, R>, outerValue: T, outerIndex: number);
-    protected _next(value: R): void;
-    protected _error(error: any): void;
-    protected _complete(): void;
-}
diff --git a/node_modules/rxjs/internal/InnerSubscriber.js b/node_modules/rxjs/internal/InnerSubscriber.js
deleted file mode 100644
index d9b6dc4..0000000
--- a/node_modules/rxjs/internal/InnerSubscriber.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("./Subscriber");
-var InnerSubscriber = (function (_super) {
-    __extends(InnerSubscriber, _super);
-    function InnerSubscriber(parent, outerValue, outerIndex) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        _this.outerValue = outerValue;
-        _this.outerIndex = outerIndex;
-        _this.index = 0;
-        return _this;
-    }
-    InnerSubscriber.prototype._next = function (value) {
-        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
-    };
-    InnerSubscriber.prototype._error = function (error) {
-        this.parent.notifyError(error, this);
-        this.unsubscribe();
-    };
-    InnerSubscriber.prototype._complete = function () {
-        this.parent.notifyComplete(this);
-        this.unsubscribe();
-    };
-    return InnerSubscriber;
-}(Subscriber_1.Subscriber));
-exports.InnerSubscriber = InnerSubscriber;
-//# sourceMappingURL=InnerSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/InnerSubscriber.js.map b/node_modules/rxjs/internal/InnerSubscriber.js.map
deleted file mode 100644
index 4b50244..0000000
--- a/node_modules/rxjs/internal/InnerSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"InnerSubscriber.js","sources":["../src/internal/InnerSubscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0C;AAQ1C;IAA2C,mCAAa;IAGtD,yBAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAAlG,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAuB;QAAS,gBAAU,GAAV,UAAU,CAAG;QAAS,gBAAU,GAAV,UAAU,CAAQ;QAF1F,WAAK,GAAG,CAAC,CAAC;;IAIlB,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,gCAAM,GAAhB,UAAiB,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AApBD,CAA2C,uBAAU,GAoBpD;AApBY,0CAAe"}
diff --git a/node_modules/rxjs/internal/Notification.d.ts b/node_modules/rxjs/internal/Notification.d.ts
deleted file mode 100644
index ad94554..0000000
--- a/node_modules/rxjs/internal/Notification.d.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import { PartialObserver } from './types';
-import { Observable } from './Observable';
-/**
- * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.
- */
-export declare enum NotificationKind {
-    NEXT = "N",
-    ERROR = "E",
-    COMPLETE = "C"
-}
-/**
- * Represents a push-based event or value that an {@link Observable} can emit.
- * This class is particularly useful for operators that manage notifications,
- * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and
- * others. Besides wrapping the actual delivered value, it also annotates it
- * with metadata of, for instance, what type of push message it is (`next`,
- * `error`, or `complete`).
- *
- * @see {@link materialize}
- * @see {@link dematerialize}
- * @see {@link observeOn}
- *
- * @class Notification<T>
- */
-export declare class Notification<T> {
-    kind: 'N' | 'E' | 'C';
-    value?: T;
-    error?: any;
-    hasValue: boolean;
-    constructor(kind: 'N' | 'E' | 'C', value?: T, error?: any);
-    /**
-     * Delivers to the given `observer` the value wrapped by this Notification.
-     * @param {Observer} observer
-     * @return
-     */
-    observe(observer: PartialObserver<T>): any;
-    /**
-     * Given some {@link Observer} callbacks, deliver the value represented by the
-     * current Notification to the correctly corresponding callback.
-     * @param {function(value: T): void} next An Observer `next` callback.
-     * @param {function(err: any): void} [error] An Observer `error` callback.
-     * @param {function(): void} [complete] An Observer `complete` callback.
-     * @return {any}
-     */
-    do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any;
-    /**
-     * Takes an Observer or its individual callback functions, and calls `observe`
-     * or `do` methods accordingly.
-     * @param {Observer|function(value: T): void} nextOrObserver An Observer or
-     * the `next` callback.
-     * @param {function(err: any): void} [error] An Observer `error` callback.
-     * @param {function(): void} [complete] An Observer `complete` callback.
-     * @return {any}
-     */
-    accept(nextOrObserver: PartialObserver<T> | ((value: T) => void), error?: (err: any) => void, complete?: () => void): any;
-    /**
-     * Returns a simple Observable that just delivers the notification represented
-     * by this Notification instance.
-     * @return {any}
-     */
-    toObservable(): Observable<T>;
-    private static completeNotification;
-    private static undefinedValueNotification;
-    /**
-     * A shortcut to create a Notification instance of the type `next` from a
-     * given value.
-     * @param {T} value The `next` value.
-     * @return {Notification<T>} The "next" Notification representing the
-     * argument.
-     * @nocollapse
-     */
-    static createNext<T>(value: T): Notification<T>;
-    /**
-     * A shortcut to create a Notification instance of the type `error` from a
-     * given error.
-     * @param {any} [err] The `error` error.
-     * @return {Notification<T>} The "error" Notification representing the
-     * argument.
-     * @nocollapse
-     */
-    static createError<T>(err?: any): Notification<T>;
-    /**
-     * A shortcut to create a Notification instance of the type `complete`.
-     * @return {Notification<any>} The valueless "complete" Notification.
-     * @nocollapse
-     */
-    static createComplete(): Notification<any>;
-}
diff --git a/node_modules/rxjs/internal/Notification.js b/node_modules/rxjs/internal/Notification.js
deleted file mode 100644
index dc3eeb6..0000000
--- a/node_modules/rxjs/internal/Notification.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var empty_1 = require("./observable/empty");
-var of_1 = require("./observable/of");
-var throwError_1 = require("./observable/throwError");
-var NotificationKind;
-(function (NotificationKind) {
-    NotificationKind["NEXT"] = "N";
-    NotificationKind["ERROR"] = "E";
-    NotificationKind["COMPLETE"] = "C";
-})(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {}));
-var Notification = (function () {
-    function Notification(kind, value, error) {
-        this.kind = kind;
-        this.value = value;
-        this.error = error;
-        this.hasValue = kind === 'N';
-    }
-    Notification.prototype.observe = function (observer) {
-        switch (this.kind) {
-            case 'N':
-                return observer.next && observer.next(this.value);
-            case 'E':
-                return observer.error && observer.error(this.error);
-            case 'C':
-                return observer.complete && observer.complete();
-        }
-    };
-    Notification.prototype.do = function (next, error, complete) {
-        var kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return next && next(this.value);
-            case 'E':
-                return error && error(this.error);
-            case 'C':
-                return complete && complete();
-        }
-    };
-    Notification.prototype.accept = function (nextOrObserver, error, complete) {
-        if (nextOrObserver && typeof nextOrObserver.next === 'function') {
-            return this.observe(nextOrObserver);
-        }
-        else {
-            return this.do(nextOrObserver, error, complete);
-        }
-    };
-    Notification.prototype.toObservable = function () {
-        var kind = this.kind;
-        switch (kind) {
-            case 'N':
-                return of_1.of(this.value);
-            case 'E':
-                return throwError_1.throwError(this.error);
-            case 'C':
-                return empty_1.empty();
-        }
-        throw new Error('unexpected notification kind value');
-    };
-    Notification.createNext = function (value) {
-        if (typeof value !== 'undefined') {
-            return new Notification('N', value);
-        }
-        return Notification.undefinedValueNotification;
-    };
-    Notification.createError = function (err) {
-        return new Notification('E', undefined, err);
-    };
-    Notification.createComplete = function () {
-        return Notification.completeNotification;
-    };
-    Notification.completeNotification = new Notification('C');
-    Notification.undefinedValueNotification = new Notification('N', undefined);
-    return Notification;
-}());
-exports.Notification = Notification;
-//# sourceMappingURL=Notification.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Notification.js.map b/node_modules/rxjs/internal/Notification.js.map
deleted file mode 100644
index 64be5a0..0000000
--- a/node_modules/rxjs/internal/Notification.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Notification.js","sources":["../src/internal/Notification.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/Observable.d.ts b/node_modules/rxjs/internal/Observable.d.ts
deleted file mode 100644
index 6c5c2da..0000000
--- a/node_modules/rxjs/internal/Observable.d.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Operator } from './Operator';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';
-import { iif } from './observable/iif';
-import { throwError } from './observable/throwError';
-/**
- * A representation of any set of values over any amount of time. This is the most basic building block
- * of RxJS.
- *
- * @class Observable<T>
- */
-export declare class Observable<T> implements Subscribable<T> {
-    /** Internal implementation detail, do not use directly. */
-    _isScalar: boolean;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    source: Observable<any>;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    operator: Operator<any, T>;
-    /**
-     * @constructor
-     * @param {Function} subscribe the function that is called when the Observable is
-     * initially subscribed to. This function is given a Subscriber, to which new values
-     * can be `next`ed, or an `error` method can be called to raise an error, or
-     * `complete` can be called to notify of a successful completion.
-     */
-    constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic);
-    /**
-     * Creates a new cold Observable by calling the Observable constructor
-     * @static true
-     * @owner Observable
-     * @method create
-     * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
-     * @return {Observable} a new cold observable
-     * @nocollapse
-     * @deprecated use new Observable() instead
-     */
-    static create: Function;
-    /**
-     * Creates a new Observable, with this Observable as the source, and the passed
-     * operator defined as the new observable's operator.
-     * @method lift
-     * @param {Operator} operator the operator defining the operation to take on the observable
-     * @return {Observable} a new observable with the Operator applied
-     */
-    lift<R>(operator: Operator<T, R>): Observable<R>;
-    subscribe(observer?: PartialObserver<T>): Subscription;
-    /** @deprecated Use an observer instead of a complete callback */
-    subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;
-    /** @deprecated Use an observer instead of an error callback */
-    subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;
-    /** @deprecated Use an observer instead of a complete callback */
-    subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;
-    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _trySubscribe(sink: Subscriber<T>): TeardownLogic;
-    /**
-     * @method forEach
-     * @param {Function} next a handler for each value emitted by the observable
-     * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise
-     * @return {Promise} a promise that either resolves on observable completion or
-     *  rejects with the handled error
-     */
-    forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void>;
-    /** @internal This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<any>): TeardownLogic;
-    /**
-     * @nocollapse
-     * @deprecated In favor of iif creation function: import { iif } from 'rxjs';
-     */
-    static if: typeof iif;
-    /**
-     * @nocollapse
-     * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';
-     */
-    static throw: typeof throwError;
-    pipe(): Observable<T>;
-    pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;
-    pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;
-    pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;
-    pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;
-    pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;
-    pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;
-    pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;
-    pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;
-    pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;
-    pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<{}>;
-    toPromise<T>(this: Observable<T>): Promise<T>;
-    toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;
-    toPromise<T>(this: Observable<T>, PromiseCtor: PromiseConstructorLike): Promise<T>;
-}
diff --git a/node_modules/rxjs/internal/Observable.js b/node_modules/rxjs/internal/Observable.js
deleted file mode 100644
index 780998b..0000000
--- a/node_modules/rxjs/internal/Observable.js
+++ /dev/null
@@ -1,117 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var canReportError_1 = require("./util/canReportError");
-var toSubscriber_1 = require("./util/toSubscriber");
-var observable_1 = require("./symbol/observable");
-var pipe_1 = require("./util/pipe");
-var config_1 = require("./config");
-var Observable = (function () {
-    function Observable(subscribe) {
-        this._isScalar = false;
-        if (subscribe) {
-            this._subscribe = subscribe;
-        }
-    }
-    Observable.prototype.lift = function (operator) {
-        var observable = new Observable();
-        observable.source = this;
-        observable.operator = operator;
-        return observable;
-    };
-    Observable.prototype.subscribe = function (observerOrNext, error, complete) {
-        var operator = this.operator;
-        var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);
-        if (operator) {
-            sink.add(operator.call(sink, this.source));
-        }
-        else {
-            sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
-                this._subscribe(sink) :
-                this._trySubscribe(sink));
-        }
-        if (config_1.config.useDeprecatedSynchronousErrorHandling) {
-            if (sink.syncErrorThrowable) {
-                sink.syncErrorThrowable = false;
-                if (sink.syncErrorThrown) {
-                    throw sink.syncErrorValue;
-                }
-            }
-        }
-        return sink;
-    };
-    Observable.prototype._trySubscribe = function (sink) {
-        try {
-            return this._subscribe(sink);
-        }
-        catch (err) {
-            if (config_1.config.useDeprecatedSynchronousErrorHandling) {
-                sink.syncErrorThrown = true;
-                sink.syncErrorValue = err;
-            }
-            if (canReportError_1.canReportError(sink)) {
-                sink.error(err);
-            }
-            else {
-                console.warn(err);
-            }
-        }
-    };
-    Observable.prototype.forEach = function (next, promiseCtor) {
-        var _this = this;
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor(function (resolve, reject) {
-            var subscription;
-            subscription = _this.subscribe(function (value) {
-                try {
-                    next(value);
-                }
-                catch (err) {
-                    reject(err);
-                    if (subscription) {
-                        subscription.unsubscribe();
-                    }
-                }
-            }, reject, resolve);
-        });
-    };
-    Observable.prototype._subscribe = function (subscriber) {
-        var source = this.source;
-        return source && source.subscribe(subscriber);
-    };
-    Observable.prototype[observable_1.observable] = function () {
-        return this;
-    };
-    Observable.prototype.pipe = function () {
-        var operations = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            operations[_i] = arguments[_i];
-        }
-        if (operations.length === 0) {
-            return this;
-        }
-        return pipe_1.pipeFromArray(operations)(this);
-    };
-    Observable.prototype.toPromise = function (promiseCtor) {
-        var _this = this;
-        promiseCtor = getPromiseCtor(promiseCtor);
-        return new promiseCtor(function (resolve, reject) {
-            var value;
-            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
-        });
-    };
-    Observable.create = function (subscribe) {
-        return new Observable(subscribe);
-    };
-    return Observable;
-}());
-exports.Observable = Observable;
-function getPromiseCtor(promiseCtor) {
-    if (!promiseCtor) {
-        promiseCtor = config_1.config.Promise || Promise;
-    }
-    if (!promiseCtor) {
-        throw new Error('no Promise impl found');
-    }
-    return promiseCtor;
-}
-//# sourceMappingURL=Observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Observable.js.map b/node_modules/rxjs/internal/Observable.js.map
deleted file mode 100644
index 4119f09..0000000
--- a/node_modules/rxjs/internal/Observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observable.js","sources":["../src/internal/Observable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/Observer.d.ts b/node_modules/rxjs/internal/Observer.d.ts
deleted file mode 100644
index 454905d..0000000
--- a/node_modules/rxjs/internal/Observer.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Observer } from './types';
-export declare const empty: Observer<any>;
diff --git a/node_modules/rxjs/internal/Observer.js b/node_modules/rxjs/internal/Observer.js
deleted file mode 100644
index e457b5f..0000000
--- a/node_modules/rxjs/internal/Observer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var config_1 = require("./config");
-var hostReportError_1 = require("./util/hostReportError");
-exports.empty = {
-    closed: true,
-    next: function (value) { },
-    error: function (err) {
-        if (config_1.config.useDeprecatedSynchronousErrorHandling) {
-            throw err;
-        }
-        else {
-            hostReportError_1.hostReportError(err);
-        }
-    },
-    complete: function () { }
-};
-//# sourceMappingURL=Observer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Observer.js.map b/node_modules/rxjs/internal/Observer.js.map
deleted file mode 100644
index 6d12ace..0000000
--- a/node_modules/rxjs/internal/Observer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Observer.js","sources":["../src/internal/Observer.ts"],"names":[],"mappings":";;AACA,mCAAkC;AAClC,0DAAyD;AAE5C,QAAA,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,EAAJ,UAAK,KAAU,IAAoB,CAAC;IACpC,KAAK,EAAL,UAAM,GAAQ;QACZ,IAAI,eAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,iCAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,EAAR,cAA4B,CAAC;CAC9B,CAAC"}
diff --git a/node_modules/rxjs/internal/Operator.d.ts b/node_modules/rxjs/internal/Operator.d.ts
deleted file mode 100644
index a1054c1..0000000
--- a/node_modules/rxjs/internal/Operator.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { TeardownLogic } from './types';
-export interface Operator<T, R> {
-    call(subscriber: Subscriber<R>, source: any): TeardownLogic;
-}
diff --git a/node_modules/rxjs/internal/Operator.js b/node_modules/rxjs/internal/Operator.js
deleted file mode 100644
index 3c44713..0000000
--- a/node_modules/rxjs/internal/Operator.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=Operator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Operator.js.map b/node_modules/rxjs/internal/Operator.js.map
deleted file mode 100644
index e883033..0000000
--- a/node_modules/rxjs/internal/Operator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Operator.js","sources":["../src/internal/Operator.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/internal/OuterSubscriber.d.ts b/node_modules/rxjs/internal/OuterSubscriber.d.ts
deleted file mode 100644
index 1550120..0000000
--- a/node_modules/rxjs/internal/OuterSubscriber.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { InnerSubscriber } from './InnerSubscriber';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class OuterSubscriber<T, R> extends Subscriber<T> {
-    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;
-    notifyError(error: any, innerSub: InnerSubscriber<T, R>): void;
-    notifyComplete(innerSub: InnerSubscriber<T, R>): void;
-}
diff --git a/node_modules/rxjs/internal/OuterSubscriber.js b/node_modules/rxjs/internal/OuterSubscriber.js
deleted file mode 100644
index c2377b1..0000000
--- a/node_modules/rxjs/internal/OuterSubscriber.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("./Subscriber");
-var OuterSubscriber = (function (_super) {
-    __extends(OuterSubscriber, _super);
-    function OuterSubscriber() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    OuterSubscriber.prototype.notifyError = function (error, innerSub) {
-        this.destination.error(error);
-    };
-    OuterSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.destination.complete();
-    };
-    return OuterSubscriber;
-}(Subscriber_1.Subscriber));
-exports.OuterSubscriber = OuterSubscriber;
-//# sourceMappingURL=OuterSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/OuterSubscriber.js.map b/node_modules/rxjs/internal/OuterSubscriber.js.map
deleted file mode 100644
index 37860d5..0000000
--- a/node_modules/rxjs/internal/OuterSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"OuterSubscriber.js","sources":["../src/internal/OuterSubscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0C;AAQ1C;IAA2C,mCAAa;IAAxD;;IAcA,CAAC;IAbC,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wCAAc,GAAd,UAAe,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AAdD,CAA2C,uBAAU,GAcpD;AAdY,0CAAe"}
diff --git a/node_modules/rxjs/internal/ReplaySubject.d.ts b/node_modules/rxjs/internal/ReplaySubject.d.ts
deleted file mode 100644
index 28383d0..0000000
--- a/node_modules/rxjs/internal/ReplaySubject.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Subject } from './Subject';
-import { SchedulerLike } from './types';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-/**
- * A variant of Subject that "replays" or emits old values to new subscribers.
- * It buffers a set number of values and will emit those values immediately to
- * any new subscribers in addition to emitting new values to existing subscribers.
- *
- * @class ReplaySubject<T>
- */
-export declare class ReplaySubject<T> extends Subject<T> {
-    private scheduler?;
-    private _events;
-    private _bufferSize;
-    private _windowTime;
-    private _infiniteTimeWindow;
-    constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike);
-    private nextInfiniteTimeWindow;
-    private nextTimeWindow;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-    _getNow(): number;
-    private _trimBufferThenGetEvents;
-}
diff --git a/node_modules/rxjs/internal/ReplaySubject.js b/node_modules/rxjs/internal/ReplaySubject.js
deleted file mode 100644
index 673884f..0000000
--- a/node_modules/rxjs/internal/ReplaySubject.js
+++ /dev/null
@@ -1,126 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("./Subject");
-var queue_1 = require("./scheduler/queue");
-var Subscription_1 = require("./Subscription");
-var observeOn_1 = require("./operators/observeOn");
-var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
-var SubjectSubscription_1 = require("./SubjectSubscription");
-var ReplaySubject = (function (_super) {
-    __extends(ReplaySubject, _super);
-    function ReplaySubject(bufferSize, windowTime, scheduler) {
-        if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }
-        if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }
-        var _this = _super.call(this) || this;
-        _this.scheduler = scheduler;
-        _this._events = [];
-        _this._infiniteTimeWindow = false;
-        _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
-        _this._windowTime = windowTime < 1 ? 1 : windowTime;
-        if (windowTime === Number.POSITIVE_INFINITY) {
-            _this._infiniteTimeWindow = true;
-            _this.next = _this.nextInfiniteTimeWindow;
-        }
-        else {
-            _this.next = _this.nextTimeWindow;
-        }
-        return _this;
-    }
-    ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {
-        var _events = this._events;
-        _events.push(value);
-        if (_events.length > this._bufferSize) {
-            _events.shift();
-        }
-        _super.prototype.next.call(this, value);
-    };
-    ReplaySubject.prototype.nextTimeWindow = function (value) {
-        this._events.push(new ReplayEvent(this._getNow(), value));
-        this._trimBufferThenGetEvents();
-        _super.prototype.next.call(this, value);
-    };
-    ReplaySubject.prototype._subscribe = function (subscriber) {
-        var _infiniteTimeWindow = this._infiniteTimeWindow;
-        var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
-        var scheduler = this.scheduler;
-        var len = _events.length;
-        var subscription;
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        else if (this.isStopped || this.hasError) {
-            subscription = Subscription_1.Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            subscription = new SubjectSubscription_1.SubjectSubscription(this, subscriber);
-        }
-        if (scheduler) {
-            subscriber.add(subscriber = new observeOn_1.ObserveOnSubscriber(subscriber, scheduler));
-        }
-        if (_infiniteTimeWindow) {
-            for (var i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i]);
-            }
-        }
-        else {
-            for (var i = 0; i < len && !subscriber.closed; i++) {
-                subscriber.next(_events[i].value);
-            }
-        }
-        if (this.hasError) {
-            subscriber.error(this.thrownError);
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-        }
-        return subscription;
-    };
-    ReplaySubject.prototype._getNow = function () {
-        return (this.scheduler || queue_1.queue).now();
-    };
-    ReplaySubject.prototype._trimBufferThenGetEvents = function () {
-        var now = this._getNow();
-        var _bufferSize = this._bufferSize;
-        var _windowTime = this._windowTime;
-        var _events = this._events;
-        var eventsCount = _events.length;
-        var spliceCount = 0;
-        while (spliceCount < eventsCount) {
-            if ((now - _events[spliceCount].time) < _windowTime) {
-                break;
-            }
-            spliceCount++;
-        }
-        if (eventsCount > _bufferSize) {
-            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
-        }
-        if (spliceCount > 0) {
-            _events.splice(0, spliceCount);
-        }
-        return _events;
-    };
-    return ReplaySubject;
-}(Subject_1.Subject));
-exports.ReplaySubject = ReplaySubject;
-var ReplayEvent = (function () {
-    function ReplayEvent(time, value) {
-        this.time = time;
-        this.value = value;
-    }
-    return ReplayEvent;
-}());
-//# sourceMappingURL=ReplaySubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/ReplaySubject.js.map b/node_modules/rxjs/internal/ReplaySubject.js.map
deleted file mode 100644
index b04e61c..0000000
--- a/node_modules/rxjs/internal/ReplaySubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ReplaySubject.js","sources":["../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/Rx.d.ts b/node_modules/rxjs/internal/Rx.d.ts
deleted file mode 100644
index ad8b666..0000000
--- a/node_modules/rxjs/internal/Rx.d.ts
+++ /dev/null
@@ -1,195 +0,0 @@
-export { Subject, AnonymousSubject } from './Subject';
-export { Observable } from './Observable';
-export { config } from './config';
-import 'rxjs-compat/add/observable/bindCallback';
-import 'rxjs-compat/add/observable/bindNodeCallback';
-import 'rxjs-compat/add/observable/combineLatest';
-import 'rxjs-compat/add/observable/concat';
-import 'rxjs-compat/add/observable/defer';
-import 'rxjs-compat/add/observable/empty';
-import 'rxjs-compat/add/observable/forkJoin';
-import 'rxjs-compat/add/observable/from';
-import 'rxjs-compat/add/observable/fromEvent';
-import 'rxjs-compat/add/observable/fromEventPattern';
-import 'rxjs-compat/add/observable/fromPromise';
-import 'rxjs-compat/add/observable/generate';
-import 'rxjs-compat/add/observable/if';
-import 'rxjs-compat/add/observable/interval';
-import 'rxjs-compat/add/observable/merge';
-import 'rxjs-compat/add/observable/race';
-import 'rxjs-compat/add/observable/never';
-import 'rxjs-compat/add/observable/of';
-import 'rxjs-compat/add/observable/onErrorResumeNext';
-import 'rxjs-compat/add/observable/pairs';
-import 'rxjs-compat/add/observable/range';
-import 'rxjs-compat/add/observable/using';
-import 'rxjs-compat/add/observable/throw';
-import 'rxjs-compat/add/observable/timer';
-import 'rxjs-compat/add/observable/zip';
-import 'rxjs-compat/add/observable/dom/ajax';
-import 'rxjs-compat/add/observable/dom/webSocket';
-import 'rxjs-compat/add/operator/buffer';
-import 'rxjs-compat/add/operator/bufferCount';
-import 'rxjs-compat/add/operator/bufferTime';
-import 'rxjs-compat/add/operator/bufferToggle';
-import 'rxjs-compat/add/operator/bufferWhen';
-import 'rxjs-compat/add/operator/catch';
-import 'rxjs-compat/add/operator/combineAll';
-import 'rxjs-compat/add/operator/combineLatest';
-import 'rxjs-compat/add/operator/concat';
-import 'rxjs-compat/add/operator/concatAll';
-import 'rxjs-compat/add/operator/concatMap';
-import 'rxjs-compat/add/operator/concatMapTo';
-import 'rxjs-compat/add/operator/count';
-import 'rxjs-compat/add/operator/dematerialize';
-import 'rxjs-compat/add/operator/debounce';
-import 'rxjs-compat/add/operator/debounceTime';
-import 'rxjs-compat/add/operator/defaultIfEmpty';
-import 'rxjs-compat/add/operator/delay';
-import 'rxjs-compat/add/operator/delayWhen';
-import 'rxjs-compat/add/operator/distinct';
-import 'rxjs-compat/add/operator/distinctUntilChanged';
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
-import 'rxjs-compat/add/operator/do';
-import 'rxjs-compat/add/operator/exhaust';
-import 'rxjs-compat/add/operator/exhaustMap';
-import 'rxjs-compat/add/operator/expand';
-import 'rxjs-compat/add/operator/elementAt';
-import 'rxjs-compat/add/operator/filter';
-import 'rxjs-compat/add/operator/finally';
-import 'rxjs-compat/add/operator/find';
-import 'rxjs-compat/add/operator/findIndex';
-import 'rxjs-compat/add/operator/first';
-import 'rxjs-compat/add/operator/groupBy';
-import 'rxjs-compat/add/operator/ignoreElements';
-import 'rxjs-compat/add/operator/isEmpty';
-import 'rxjs-compat/add/operator/audit';
-import 'rxjs-compat/add/operator/auditTime';
-import 'rxjs-compat/add/operator/last';
-import 'rxjs-compat/add/operator/let';
-import 'rxjs-compat/add/operator/every';
-import 'rxjs-compat/add/operator/map';
-import 'rxjs-compat/add/operator/mapTo';
-import 'rxjs-compat/add/operator/materialize';
-import 'rxjs-compat/add/operator/max';
-import 'rxjs-compat/add/operator/merge';
-import 'rxjs-compat/add/operator/mergeAll';
-import 'rxjs-compat/add/operator/mergeMap';
-import 'rxjs-compat/add/operator/mergeMapTo';
-import 'rxjs-compat/add/operator/mergeScan';
-import 'rxjs-compat/add/operator/min';
-import 'rxjs-compat/add/operator/multicast';
-import 'rxjs-compat/add/operator/observeOn';
-import 'rxjs-compat/add/operator/onErrorResumeNext';
-import 'rxjs-compat/add/operator/pairwise';
-import 'rxjs-compat/add/operator/partition';
-import 'rxjs-compat/add/operator/pluck';
-import 'rxjs-compat/add/operator/publish';
-import 'rxjs-compat/add/operator/publishBehavior';
-import 'rxjs-compat/add/operator/publishReplay';
-import 'rxjs-compat/add/operator/publishLast';
-import 'rxjs-compat/add/operator/race';
-import 'rxjs-compat/add/operator/reduce';
-import 'rxjs-compat/add/operator/repeat';
-import 'rxjs-compat/add/operator/repeatWhen';
-import 'rxjs-compat/add/operator/retry';
-import 'rxjs-compat/add/operator/retryWhen';
-import 'rxjs-compat/add/operator/sample';
-import 'rxjs-compat/add/operator/sampleTime';
-import 'rxjs-compat/add/operator/scan';
-import 'rxjs-compat/add/operator/sequenceEqual';
-import 'rxjs-compat/add/operator/share';
-import 'rxjs-compat/add/operator/shareReplay';
-import 'rxjs-compat/add/operator/single';
-import 'rxjs-compat/add/operator/skip';
-import 'rxjs-compat/add/operator/skipLast';
-import 'rxjs-compat/add/operator/skipUntil';
-import 'rxjs-compat/add/operator/skipWhile';
-import 'rxjs-compat/add/operator/startWith';
-import 'rxjs-compat/add/operator/subscribeOn';
-import 'rxjs-compat/add/operator/switch';
-import 'rxjs-compat/add/operator/switchMap';
-import 'rxjs-compat/add/operator/switchMapTo';
-import 'rxjs-compat/add/operator/take';
-import 'rxjs-compat/add/operator/takeLast';
-import 'rxjs-compat/add/operator/takeUntil';
-import 'rxjs-compat/add/operator/takeWhile';
-import 'rxjs-compat/add/operator/throttle';
-import 'rxjs-compat/add/operator/throttleTime';
-import 'rxjs-compat/add/operator/timeInterval';
-import 'rxjs-compat/add/operator/timeout';
-import 'rxjs-compat/add/operator/timeoutWith';
-import 'rxjs-compat/add/operator/timestamp';
-import 'rxjs-compat/add/operator/toArray';
-import 'rxjs-compat/add/operator/toPromise';
-import 'rxjs-compat/add/operator/window';
-import 'rxjs-compat/add/operator/windowCount';
-import 'rxjs-compat/add/operator/windowTime';
-import 'rxjs-compat/add/operator/windowToggle';
-import 'rxjs-compat/add/operator/windowWhen';
-import 'rxjs-compat/add/operator/withLatestFrom';
-import 'rxjs-compat/add/operator/zip';
-import 'rxjs-compat/add/operator/zipAll';
-export { Operator } from './Operator';
-export { Observer } from './types';
-export { Subscription } from './Subscription';
-export { Subscriber } from './Subscriber';
-export { AsyncSubject } from './AsyncSubject';
-export { ReplaySubject } from './ReplaySubject';
-export { BehaviorSubject } from './BehaviorSubject';
-export { ConnectableObservable } from './observable/ConnectableObservable';
-export { Notification, NotificationKind } from './Notification';
-export { EmptyError } from './util/EmptyError';
-export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError';
-export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-export { TimeoutError } from './util/TimeoutError';
-export { UnsubscriptionError } from './util/UnsubscriptionError';
-export { TimeInterval } from './operators/timeInterval';
-export { Timestamp } from './operators/timestamp';
-export { TestScheduler } from './testing/TestScheduler';
-export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler';
-export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable';
-export { pipe } from './util/pipe';
-import { AsapScheduler } from './scheduler/AsapScheduler';
-import { AsyncScheduler } from './scheduler/AsyncScheduler';
-import { QueueScheduler } from './scheduler/QueueScheduler';
-import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';
-import * as _operators from './operators/index';
-export declare const operators: typeof _operators;
-/**
- * @typedef {Object} Rx.Scheduler
- * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same
- * queue used for promises. Basically after the current job, but before the next job.
- * Use this for asynchronous conversions.
- * @property {SchedulerLike} queue Schedules on a queue in the current event frame
- * (trampoline scheduler). Use this for iteration operations.
- * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`.
- * Use this for synchronizing with the platform's painting.
- * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for
- * time-based operations.
- */
-declare let Scheduler: {
-    asap: AsapScheduler;
-    queue: QueueScheduler;
-    animationFrame: AnimationFrameScheduler;
-    async: AsyncScheduler;
-};
-/**
- * @typedef {Object} Rx.Symbol
- * @property {Symbol|string} rxSubscriber A symbol to use as a property name to
- * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as
- * an object that has all of the traits of an Rx Subscriber, including the
- * ability to add and remove subscriptions to the subscription chain and
- * guarantees involving event triggering (can't "next" after unsubscription,
- * etc).
- * @property {Symbol|string} observable A symbol to use as a property name to
- * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable).
- * @property {Symbol|string} iterator The ES6 symbol to use as a property name
- * to retrieve an iterator from an object.
- */
-declare let Symbol: {
-    rxSubscriber: string | symbol;
-    observable: string | symbol;
-    iterator: symbol;
-};
-export { Scheduler, Symbol };
diff --git a/node_modules/rxjs/internal/Rx.js b/node_modules/rxjs/internal/Rx.js
deleted file mode 100644
index 8de0b0f..0000000
--- a/node_modules/rxjs/internal/Rx.js
+++ /dev/null
@@ -1,200 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("./Subject");
-exports.Subject = Subject_1.Subject;
-exports.AnonymousSubject = Subject_1.AnonymousSubject;
-var Observable_1 = require("./Observable");
-exports.Observable = Observable_1.Observable;
-var config_1 = require("./config");
-exports.config = config_1.config;
-require("rxjs-compat/add/observable/bindCallback");
-require("rxjs-compat/add/observable/bindNodeCallback");
-require("rxjs-compat/add/observable/combineLatest");
-require("rxjs-compat/add/observable/concat");
-require("rxjs-compat/add/observable/defer");
-require("rxjs-compat/add/observable/empty");
-require("rxjs-compat/add/observable/forkJoin");
-require("rxjs-compat/add/observable/from");
-require("rxjs-compat/add/observable/fromEvent");
-require("rxjs-compat/add/observable/fromEventPattern");
-require("rxjs-compat/add/observable/fromPromise");
-require("rxjs-compat/add/observable/generate");
-require("rxjs-compat/add/observable/if");
-require("rxjs-compat/add/observable/interval");
-require("rxjs-compat/add/observable/merge");
-require("rxjs-compat/add/observable/race");
-require("rxjs-compat/add/observable/never");
-require("rxjs-compat/add/observable/of");
-require("rxjs-compat/add/observable/onErrorResumeNext");
-require("rxjs-compat/add/observable/pairs");
-require("rxjs-compat/add/observable/range");
-require("rxjs-compat/add/observable/using");
-require("rxjs-compat/add/observable/throw");
-require("rxjs-compat/add/observable/timer");
-require("rxjs-compat/add/observable/zip");
-require("rxjs-compat/add/observable/dom/ajax");
-require("rxjs-compat/add/observable/dom/webSocket");
-require("rxjs-compat/add/operator/buffer");
-require("rxjs-compat/add/operator/bufferCount");
-require("rxjs-compat/add/operator/bufferTime");
-require("rxjs-compat/add/operator/bufferToggle");
-require("rxjs-compat/add/operator/bufferWhen");
-require("rxjs-compat/add/operator/catch");
-require("rxjs-compat/add/operator/combineAll");
-require("rxjs-compat/add/operator/combineLatest");
-require("rxjs-compat/add/operator/concat");
-require("rxjs-compat/add/operator/concatAll");
-require("rxjs-compat/add/operator/concatMap");
-require("rxjs-compat/add/operator/concatMapTo");
-require("rxjs-compat/add/operator/count");
-require("rxjs-compat/add/operator/dematerialize");
-require("rxjs-compat/add/operator/debounce");
-require("rxjs-compat/add/operator/debounceTime");
-require("rxjs-compat/add/operator/defaultIfEmpty");
-require("rxjs-compat/add/operator/delay");
-require("rxjs-compat/add/operator/delayWhen");
-require("rxjs-compat/add/operator/distinct");
-require("rxjs-compat/add/operator/distinctUntilChanged");
-require("rxjs-compat/add/operator/distinctUntilKeyChanged");
-require("rxjs-compat/add/operator/do");
-require("rxjs-compat/add/operator/exhaust");
-require("rxjs-compat/add/operator/exhaustMap");
-require("rxjs-compat/add/operator/expand");
-require("rxjs-compat/add/operator/elementAt");
-require("rxjs-compat/add/operator/filter");
-require("rxjs-compat/add/operator/finally");
-require("rxjs-compat/add/operator/find");
-require("rxjs-compat/add/operator/findIndex");
-require("rxjs-compat/add/operator/first");
-require("rxjs-compat/add/operator/groupBy");
-require("rxjs-compat/add/operator/ignoreElements");
-require("rxjs-compat/add/operator/isEmpty");
-require("rxjs-compat/add/operator/audit");
-require("rxjs-compat/add/operator/auditTime");
-require("rxjs-compat/add/operator/last");
-require("rxjs-compat/add/operator/let");
-require("rxjs-compat/add/operator/every");
-require("rxjs-compat/add/operator/map");
-require("rxjs-compat/add/operator/mapTo");
-require("rxjs-compat/add/operator/materialize");
-require("rxjs-compat/add/operator/max");
-require("rxjs-compat/add/operator/merge");
-require("rxjs-compat/add/operator/mergeAll");
-require("rxjs-compat/add/operator/mergeMap");
-require("rxjs-compat/add/operator/mergeMapTo");
-require("rxjs-compat/add/operator/mergeScan");
-require("rxjs-compat/add/operator/min");
-require("rxjs-compat/add/operator/multicast");
-require("rxjs-compat/add/operator/observeOn");
-require("rxjs-compat/add/operator/onErrorResumeNext");
-require("rxjs-compat/add/operator/pairwise");
-require("rxjs-compat/add/operator/partition");
-require("rxjs-compat/add/operator/pluck");
-require("rxjs-compat/add/operator/publish");
-require("rxjs-compat/add/operator/publishBehavior");
-require("rxjs-compat/add/operator/publishReplay");
-require("rxjs-compat/add/operator/publishLast");
-require("rxjs-compat/add/operator/race");
-require("rxjs-compat/add/operator/reduce");
-require("rxjs-compat/add/operator/repeat");
-require("rxjs-compat/add/operator/repeatWhen");
-require("rxjs-compat/add/operator/retry");
-require("rxjs-compat/add/operator/retryWhen");
-require("rxjs-compat/add/operator/sample");
-require("rxjs-compat/add/operator/sampleTime");
-require("rxjs-compat/add/operator/scan");
-require("rxjs-compat/add/operator/sequenceEqual");
-require("rxjs-compat/add/operator/share");
-require("rxjs-compat/add/operator/shareReplay");
-require("rxjs-compat/add/operator/single");
-require("rxjs-compat/add/operator/skip");
-require("rxjs-compat/add/operator/skipLast");
-require("rxjs-compat/add/operator/skipUntil");
-require("rxjs-compat/add/operator/skipWhile");
-require("rxjs-compat/add/operator/startWith");
-require("rxjs-compat/add/operator/subscribeOn");
-require("rxjs-compat/add/operator/switch");
-require("rxjs-compat/add/operator/switchMap");
-require("rxjs-compat/add/operator/switchMapTo");
-require("rxjs-compat/add/operator/take");
-require("rxjs-compat/add/operator/takeLast");
-require("rxjs-compat/add/operator/takeUntil");
-require("rxjs-compat/add/operator/takeWhile");
-require("rxjs-compat/add/operator/throttle");
-require("rxjs-compat/add/operator/throttleTime");
-require("rxjs-compat/add/operator/timeInterval");
-require("rxjs-compat/add/operator/timeout");
-require("rxjs-compat/add/operator/timeoutWith");
-require("rxjs-compat/add/operator/timestamp");
-require("rxjs-compat/add/operator/toArray");
-require("rxjs-compat/add/operator/toPromise");
-require("rxjs-compat/add/operator/window");
-require("rxjs-compat/add/operator/windowCount");
-require("rxjs-compat/add/operator/windowTime");
-require("rxjs-compat/add/operator/windowToggle");
-require("rxjs-compat/add/operator/windowWhen");
-require("rxjs-compat/add/operator/withLatestFrom");
-require("rxjs-compat/add/operator/zip");
-require("rxjs-compat/add/operator/zipAll");
-var Subscription_1 = require("./Subscription");
-exports.Subscription = Subscription_1.Subscription;
-var Subscriber_1 = require("./Subscriber");
-exports.Subscriber = Subscriber_1.Subscriber;
-var AsyncSubject_1 = require("./AsyncSubject");
-exports.AsyncSubject = AsyncSubject_1.AsyncSubject;
-var ReplaySubject_1 = require("./ReplaySubject");
-exports.ReplaySubject = ReplaySubject_1.ReplaySubject;
-var BehaviorSubject_1 = require("./BehaviorSubject");
-exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject;
-var ConnectableObservable_1 = require("./observable/ConnectableObservable");
-exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable;
-var Notification_1 = require("./Notification");
-exports.Notification = Notification_1.Notification;
-exports.NotificationKind = Notification_1.NotificationKind;
-var EmptyError_1 = require("./util/EmptyError");
-exports.EmptyError = EmptyError_1.EmptyError;
-var ArgumentOutOfRangeError_1 = require("./util/ArgumentOutOfRangeError");
-exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
-exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError;
-var TimeoutError_1 = require("./util/TimeoutError");
-exports.TimeoutError = TimeoutError_1.TimeoutError;
-var UnsubscriptionError_1 = require("./util/UnsubscriptionError");
-exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError;
-var timeInterval_1 = require("./operators/timeInterval");
-exports.TimeInterval = timeInterval_1.TimeInterval;
-var timestamp_1 = require("./operators/timestamp");
-exports.Timestamp = timestamp_1.Timestamp;
-var TestScheduler_1 = require("./testing/TestScheduler");
-exports.TestScheduler = TestScheduler_1.TestScheduler;
-var VirtualTimeScheduler_1 = require("./scheduler/VirtualTimeScheduler");
-exports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler;
-var AjaxObservable_1 = require("./observable/dom/AjaxObservable");
-exports.AjaxResponse = AjaxObservable_1.AjaxResponse;
-exports.AjaxError = AjaxObservable_1.AjaxError;
-exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError;
-var pipe_1 = require("./util/pipe");
-exports.pipe = pipe_1.pipe;
-var asap_1 = require("./scheduler/asap");
-var async_1 = require("./scheduler/async");
-var queue_1 = require("./scheduler/queue");
-var animationFrame_1 = require("./scheduler/animationFrame");
-var rxSubscriber_1 = require("./symbol/rxSubscriber");
-var iterator_1 = require("./symbol/iterator");
-var observable_1 = require("./symbol/observable");
-var _operators = require("./operators/index");
-exports.operators = _operators;
-var Scheduler = {
-    asap: asap_1.asap,
-    queue: queue_1.queue,
-    animationFrame: animationFrame_1.animationFrame,
-    async: async_1.async
-};
-exports.Scheduler = Scheduler;
-var Symbol = {
-    rxSubscriber: rxSubscriber_1.rxSubscriber,
-    observable: observable_1.observable,
-    iterator: iterator_1.iterator
-};
-exports.Symbol = Symbol;
-//# sourceMappingURL=Rx.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Rx.js.map b/node_modules/rxjs/internal/Rx.js.map
deleted file mode 100644
index 98bfde4..0000000
--- a/node_modules/rxjs/internal/Rx.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Rx.js","sources":["../src/internal/Rx.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/Scheduler.d.ts b/node_modules/rxjs/internal/Scheduler.d.ts
deleted file mode 100644
index 47c34db..0000000
--- a/node_modules/rxjs/internal/Scheduler.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { Action } from './scheduler/Action';
-import { Subscription } from './Subscription';
-import { SchedulerLike, SchedulerAction } from './types';
-/**
- * An execution context and a data structure to order tasks and schedule their
- * execution. Provides a notion of (potentially virtual) time, through the
- * `now()` getter method.
- *
- * Each unit of work in a Scheduler is called an `Action`.
- *
- * ```ts
- * class Scheduler {
- *   now(): number;
- *   schedule(work, delay?, state?): Subscription;
- * }
- * ```
- *
- * @class Scheduler
- * @deprecated Scheduler is an internal implementation detail of RxJS, and
- * should not be used directly. Rather, create your own class and implement
- * {@link SchedulerLike}
- */
-export declare class Scheduler implements SchedulerLike {
-    private SchedulerAction;
-    /**
-     * Note: the extra arrow function wrapper is to make testing by overriding
-     * Date.now easier.
-     * @nocollapse
-     */
-    static now: () => number;
-    constructor(SchedulerAction: typeof Action, now?: () => number);
-    /**
-     * A getter method that returns a number representing the current time
-     * (at the time this function was called) according to the scheduler's own
-     * internal clock.
-     * @return {number} A number that represents the current time. May or may not
-     * have a relation to wall-clock time. May or may not refer to a time unit
-     * (e.g. milliseconds).
-     */
-    now: () => number;
-    /**
-     * Schedules a function, `work`, for execution. May happen at some point in
-     * the future, according to the `delay` parameter, if specified. May be passed
-     * some context object, `state`, which will be passed to the `work` function.
-     *
-     * The given arguments will be processed an stored as an Action object in a
-     * queue of actions.
-     *
-     * @param {function(state: ?T): ?Subscription} work A function representing a
-     * task, or some unit of work to be executed by the Scheduler.
-     * @param {number} [delay] Time to wait before executing the work, where the
-     * time unit is implicit and defined by the Scheduler itself.
-     * @param {T} [state] Some contextual data that the `work` function uses when
-     * called by the Scheduler.
-     * @return {Subscription} A subscription in order to be able to unsubscribe
-     * the scheduled work.
-     */
-    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
-}
diff --git a/node_modules/rxjs/internal/Scheduler.js b/node_modules/rxjs/internal/Scheduler.js
deleted file mode 100644
index 38b0969..0000000
--- a/node_modules/rxjs/internal/Scheduler.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Scheduler = (function () {
-    function Scheduler(SchedulerAction, now) {
-        if (now === void 0) { now = Scheduler.now; }
-        this.SchedulerAction = SchedulerAction;
-        this.now = now;
-    }
-    Scheduler.prototype.schedule = function (work, delay, state) {
-        if (delay === void 0) { delay = 0; }
-        return new this.SchedulerAction(this, work).schedule(state, delay);
-    };
-    Scheduler.now = function () { return Date.now(); };
-    return Scheduler;
-}());
-exports.Scheduler = Scheduler;
-//# sourceMappingURL=Scheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Scheduler.js.map b/node_modules/rxjs/internal/Scheduler.js.map
deleted file mode 100644
index de55d2d..0000000
--- a/node_modules/rxjs/internal/Scheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Scheduler.js","sources":["../src/internal/Scheduler.ts"],"names":[],"mappings":";;AAuBA;IASE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,4BAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IApCa,aAAG,GAAiB,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAC;IAqCrD,gBAAC;CAAA,AA5CD,IA4CC;AA5CY,8BAAS"}
diff --git a/node_modules/rxjs/internal/Subject.d.ts b/node_modules/rxjs/internal/Subject.d.ts
deleted file mode 100644
index dc86c2f..0000000
--- a/node_modules/rxjs/internal/Subject.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Operator } from './Operator';
-import { Observable } from './Observable';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { Observer, SubscriptionLike, TeardownLogic } from './types';
-/**
- * @class SubjectSubscriber<T>
- */
-export declare class SubjectSubscriber<T> extends Subscriber<T> {
-    protected destination: Subject<T>;
-    constructor(destination: Subject<T>);
-}
-/**
- * A Subject is a special type of Observable that allows values to be
- * multicasted to many Observers. Subjects are like EventEmitters.
- *
- * Every Subject is an Observable and an Observer. You can subscribe to a
- * Subject, and you can call next to feed values as well as error and complete.
- *
- * @class Subject<T>
- */
-export declare class Subject<T> extends Observable<T> implements SubscriptionLike {
-    observers: Observer<T>[];
-    closed: boolean;
-    isStopped: boolean;
-    hasError: boolean;
-    thrownError: any;
-    constructor();
-    /**@nocollapse
-     * @deprecated use new Subject() instead
-    */
-    static create: Function;
-    lift<R>(operator: Operator<T, R>): Observable<R>;
-    next(value?: T): void;
-    error(err: any): void;
-    complete(): void;
-    unsubscribe(): void;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _trySubscribe(subscriber: Subscriber<T>): TeardownLogic;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-    /**
-     * Creates a new Observable with this Subject as the source. You can do this
-     * to create customize Observer-side logic of the Subject and conceal it from
-     * code that uses the Observable.
-     * @return {Observable} Observable that the Subject casts to
-     */
-    asObservable(): Observable<T>;
-}
-/**
- * @class AnonymousSubject<T>
- */
-export declare class AnonymousSubject<T> extends Subject<T> {
-    protected destination?: Observer<T>;
-    constructor(destination?: Observer<T>, source?: Observable<T>);
-    next(value: T): void;
-    error(err: any): void;
-    complete(): void;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-}
diff --git a/node_modules/rxjs/internal/Subject.js b/node_modules/rxjs/internal/Subject.js
deleted file mode 100644
index 644e14d..0000000
--- a/node_modules/rxjs/internal/Subject.js
+++ /dev/null
@@ -1,171 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("./Observable");
-var Subscriber_1 = require("./Subscriber");
-var Subscription_1 = require("./Subscription");
-var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError");
-var SubjectSubscription_1 = require("./SubjectSubscription");
-var rxSubscriber_1 = require("../internal/symbol/rxSubscriber");
-var SubjectSubscriber = (function (_super) {
-    __extends(SubjectSubscriber, _super);
-    function SubjectSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        return _this;
-    }
-    return SubjectSubscriber;
-}(Subscriber_1.Subscriber));
-exports.SubjectSubscriber = SubjectSubscriber;
-var Subject = (function (_super) {
-    __extends(Subject, _super);
-    function Subject() {
-        var _this = _super.call(this) || this;
-        _this.observers = [];
-        _this.closed = false;
-        _this.isStopped = false;
-        _this.hasError = false;
-        _this.thrownError = null;
-        return _this;
-    }
-    Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {
-        return new SubjectSubscriber(this);
-    };
-    Subject.prototype.lift = function (operator) {
-        var subject = new AnonymousSubject(this, this);
-        subject.operator = operator;
-        return subject;
-    };
-    Subject.prototype.next = function (value) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        if (!this.isStopped) {
-            var observers = this.observers;
-            var len = observers.length;
-            var copy = observers.slice();
-            for (var i = 0; i < len; i++) {
-                copy[i].next(value);
-            }
-        }
-    };
-    Subject.prototype.error = function (err) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        this.hasError = true;
-        this.thrownError = err;
-        this.isStopped = true;
-        var observers = this.observers;
-        var len = observers.length;
-        var copy = observers.slice();
-        for (var i = 0; i < len; i++) {
-            copy[i].error(err);
-        }
-        this.observers.length = 0;
-    };
-    Subject.prototype.complete = function () {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        this.isStopped = true;
-        var observers = this.observers;
-        var len = observers.length;
-        var copy = observers.slice();
-        for (var i = 0; i < len; i++) {
-            copy[i].complete();
-        }
-        this.observers.length = 0;
-    };
-    Subject.prototype.unsubscribe = function () {
-        this.isStopped = true;
-        this.closed = true;
-        this.observers = null;
-    };
-    Subject.prototype._trySubscribe = function (subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        else {
-            return _super.prototype._trySubscribe.call(this, subscriber);
-        }
-    };
-    Subject.prototype._subscribe = function (subscriber) {
-        if (this.closed) {
-            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();
-        }
-        else if (this.hasError) {
-            subscriber.error(this.thrownError);
-            return Subscription_1.Subscription.EMPTY;
-        }
-        else if (this.isStopped) {
-            subscriber.complete();
-            return Subscription_1.Subscription.EMPTY;
-        }
-        else {
-            this.observers.push(subscriber);
-            return new SubjectSubscription_1.SubjectSubscription(this, subscriber);
-        }
-    };
-    Subject.prototype.asObservable = function () {
-        var observable = new Observable_1.Observable();
-        observable.source = this;
-        return observable;
-    };
-    Subject.create = function (destination, source) {
-        return new AnonymousSubject(destination, source);
-    };
-    return Subject;
-}(Observable_1.Observable));
-exports.Subject = Subject;
-var AnonymousSubject = (function (_super) {
-    __extends(AnonymousSubject, _super);
-    function AnonymousSubject(destination, source) {
-        var _this = _super.call(this) || this;
-        _this.destination = destination;
-        _this.source = source;
-        return _this;
-    }
-    AnonymousSubject.prototype.next = function (value) {
-        var destination = this.destination;
-        if (destination && destination.next) {
-            destination.next(value);
-        }
-    };
-    AnonymousSubject.prototype.error = function (err) {
-        var destination = this.destination;
-        if (destination && destination.error) {
-            this.destination.error(err);
-        }
-    };
-    AnonymousSubject.prototype.complete = function () {
-        var destination = this.destination;
-        if (destination && destination.complete) {
-            this.destination.complete();
-        }
-    };
-    AnonymousSubject.prototype._subscribe = function (subscriber) {
-        var source = this.source;
-        if (source) {
-            return this.source.subscribe(subscriber);
-        }
-        else {
-            return Subscription_1.Subscription.EMPTY;
-        }
-    };
-    return AnonymousSubject;
-}(Subject));
-exports.AnonymousSubject = AnonymousSubject;
-//# sourceMappingURL=Subject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Subject.js.map b/node_modules/rxjs/internal/Subject.js.map
deleted file mode 100644
index 4008ca1..0000000
--- a/node_modules/rxjs/internal/Subject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subject.js","sources":["../src/internal/Subject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/SubjectSubscription.d.ts b/node_modules/rxjs/internal/SubjectSubscription.d.ts
deleted file mode 100644
index ed533ee..0000000
--- a/node_modules/rxjs/internal/SubjectSubscription.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Subject } from './Subject';
-import { Observer } from './types';
-import { Subscription } from './Subscription';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class SubjectSubscription<T> extends Subscription {
-    subject: Subject<T>;
-    subscriber: Observer<T>;
-    closed: boolean;
-    constructor(subject: Subject<T>, subscriber: Observer<T>);
-    unsubscribe(): void;
-}
diff --git a/node_modules/rxjs/internal/SubjectSubscription.js b/node_modules/rxjs/internal/SubjectSubscription.js
deleted file mode 100644
index 2409d40..0000000
--- a/node_modules/rxjs/internal/SubjectSubscription.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscription_1 = require("./Subscription");
-var SubjectSubscription = (function (_super) {
-    __extends(SubjectSubscription, _super);
-    function SubjectSubscription(subject, subscriber) {
-        var _this = _super.call(this) || this;
-        _this.subject = subject;
-        _this.subscriber = subscriber;
-        _this.closed = false;
-        return _this;
-    }
-    SubjectSubscription.prototype.unsubscribe = function () {
-        if (this.closed) {
-            return;
-        }
-        this.closed = true;
-        var subject = this.subject;
-        var observers = subject.observers;
-        this.subject = null;
-        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
-            return;
-        }
-        var subscriberIndex = observers.indexOf(this.subscriber);
-        if (subscriberIndex !== -1) {
-            observers.splice(subscriberIndex, 1);
-        }
-    };
-    return SubjectSubscription;
-}(Subscription_1.Subscription));
-exports.SubjectSubscription = SubjectSubscription;
-//# sourceMappingURL=SubjectSubscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/SubjectSubscription.js.map b/node_modules/rxjs/internal/SubjectSubscription.js.map
deleted file mode 100644
index f1fe1b9..0000000
--- a/node_modules/rxjs/internal/SubjectSubscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubjectSubscription.js","sources":["../src/internal/SubjectSubscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+CAA8C;AAO9C;IAA4C,uCAAY;IAGtD,6BAAmB,OAAmB,EAAS,UAAuB;QAAtE,YACE,iBAAO,SACR;QAFkB,aAAO,GAAP,OAAO,CAAY;QAAS,gBAAU,GAAV,UAAU,CAAa;QAFtE,YAAM,GAAY,KAAK,CAAC;;IAIxB,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA7BD,CAA4C,2BAAY,GA6BvD;AA7BY,kDAAmB"}
diff --git a/node_modules/rxjs/internal/Subscriber.d.ts b/node_modules/rxjs/internal/Subscriber.d.ts
deleted file mode 100644
index d841126..0000000
--- a/node_modules/rxjs/internal/Subscriber.d.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Observer, PartialObserver } from './types';
-import { Subscription } from './Subscription';
-/**
- * Implements the {@link Observer} interface and extends the
- * {@link Subscription} class. While the {@link Observer} is the public API for
- * consuming the values of an {@link Observable}, all Observers get converted to
- * a Subscriber, in order to provide Subscription-like capabilities such as
- * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for
- * implementing operators, but it is rarely used as a public API.
- *
- * @class Subscriber<T>
- */
-export declare class Subscriber<T> extends Subscription implements Observer<T> {
-    /**
-     * A static factory for a Subscriber, given a (potentially partial) definition
-     * of an Observer.
-     * @param {function(x: ?T): void} [next] The `next` callback of an Observer.
-     * @param {function(e: ?any): void} [error] The `error` callback of an
-     * Observer.
-     * @param {function(): void} [complete] The `complete` callback of an
-     * Observer.
-     * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)
-     * Observer represented by the given arguments.
-     * @nocollapse
-     */
-    static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T>;
-    /** @internal */ syncErrorValue: any;
-    /** @internal */ syncErrorThrown: boolean;
-    /** @internal */ syncErrorThrowable: boolean;
-    protected isStopped: boolean;
-    protected destination: PartialObserver<any> | Subscriber<any>;
-    /**
-     * @param {Observer|function(value: T): void} [destinationOrNext] A partially
-     * defined Observer or a `next` callback function.
-     * @param {function(e: ?any): void} [error] The `error` callback of an
-     * Observer.
-     * @param {function(): void} [complete] The `complete` callback of an
-     * Observer.
-     */
-    constructor(destinationOrNext?: PartialObserver<any> | ((value: T) => void), error?: (e?: any) => void, complete?: () => void);
-    /**
-     * The {@link Observer} callback to receive notifications of type `next` from
-     * the Observable, with a value. The Observable may call this method 0 or more
-     * times.
-     * @param {T} [value] The `next` value.
-     * @return {void}
-     */
-    next(value?: T): void;
-    /**
-     * The {@link Observer} callback to receive notifications of type `error` from
-     * the Observable, with an attached `Error`. Notifies the Observer that
-     * the Observable has experienced an error condition.
-     * @param {any} [err] The `error` exception.
-     * @return {void}
-     */
-    error(err?: any): void;
-    /**
-     * The {@link Observer} callback to receive a valueless notification of type
-     * `complete` from the Observable. Notifies the Observer that the Observable
-     * has finished sending push-based notifications.
-     * @return {void}
-     */
-    complete(): void;
-    unsubscribe(): void;
-    protected _next(value: T): void;
-    protected _error(err: any): void;
-    protected _complete(): void;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _unsubscribeAndRecycle(): Subscriber<T>;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class SafeSubscriber<T> extends Subscriber<T> {
-    private _parentSubscriber;
-    private _context;
-    constructor(_parentSubscriber: Subscriber<T>, observerOrNext?: PartialObserver<T> | ((value: T) => void), error?: (e?: any) => void, complete?: () => void);
-    next(value?: T): void;
-    error(err?: any): void;
-    complete(): void;
-    private __tryOrUnsub;
-    private __tryOrSetError;
-    /** @internal This is an internal implementation detail, do not use. */
-    _unsubscribe(): void;
-}
diff --git a/node_modules/rxjs/internal/Subscriber.js b/node_modules/rxjs/internal/Subscriber.js
deleted file mode 100644
index 08a57fd..0000000
--- a/node_modules/rxjs/internal/Subscriber.js
+++ /dev/null
@@ -1,246 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var isFunction_1 = require("./util/isFunction");
-var Observer_1 = require("./Observer");
-var Subscription_1 = require("./Subscription");
-var rxSubscriber_1 = require("../internal/symbol/rxSubscriber");
-var config_1 = require("./config");
-var hostReportError_1 = require("./util/hostReportError");
-var Subscriber = (function (_super) {
-    __extends(Subscriber, _super);
-    function Subscriber(destinationOrNext, error, complete) {
-        var _this = _super.call(this) || this;
-        _this.syncErrorValue = null;
-        _this.syncErrorThrown = false;
-        _this.syncErrorThrowable = false;
-        _this.isStopped = false;
-        switch (arguments.length) {
-            case 0:
-                _this.destination = Observer_1.empty;
-                break;
-            case 1:
-                if (!destinationOrNext) {
-                    _this.destination = Observer_1.empty;
-                    break;
-                }
-                if (typeof destinationOrNext === 'object') {
-                    if (destinationOrNext instanceof Subscriber) {
-                        _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
-                        _this.destination = destinationOrNext;
-                        destinationOrNext.add(_this);
-                    }
-                    else {
-                        _this.syncErrorThrowable = true;
-                        _this.destination = new SafeSubscriber(_this, destinationOrNext);
-                    }
-                    break;
-                }
-            default:
-                _this.syncErrorThrowable = true;
-                _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
-                break;
-        }
-        return _this;
-    }
-    Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };
-    Subscriber.create = function (next, error, complete) {
-        var subscriber = new Subscriber(next, error, complete);
-        subscriber.syncErrorThrowable = false;
-        return subscriber;
-    };
-    Subscriber.prototype.next = function (value) {
-        if (!this.isStopped) {
-            this._next(value);
-        }
-    };
-    Subscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._error(err);
-        }
-    };
-    Subscriber.prototype.complete = function () {
-        if (!this.isStopped) {
-            this.isStopped = true;
-            this._complete();
-        }
-    };
-    Subscriber.prototype.unsubscribe = function () {
-        if (this.closed) {
-            return;
-        }
-        this.isStopped = true;
-        _super.prototype.unsubscribe.call(this);
-    };
-    Subscriber.prototype._next = function (value) {
-        this.destination.next(value);
-    };
-    Subscriber.prototype._error = function (err) {
-        this.destination.error(err);
-        this.unsubscribe();
-    };
-    Subscriber.prototype._complete = function () {
-        this.destination.complete();
-        this.unsubscribe();
-    };
-    Subscriber.prototype._unsubscribeAndRecycle = function () {
-        var _parentOrParents = this._parentOrParents;
-        this._parentOrParents = null;
-        this.unsubscribe();
-        this.closed = false;
-        this.isStopped = false;
-        this._parentOrParents = _parentOrParents;
-        return this;
-    };
-    return Subscriber;
-}(Subscription_1.Subscription));
-exports.Subscriber = Subscriber;
-var SafeSubscriber = (function (_super) {
-    __extends(SafeSubscriber, _super);
-    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
-        var _this = _super.call(this) || this;
-        _this._parentSubscriber = _parentSubscriber;
-        var next;
-        var context = _this;
-        if (isFunction_1.isFunction(observerOrNext)) {
-            next = observerOrNext;
-        }
-        else if (observerOrNext) {
-            next = observerOrNext.next;
-            error = observerOrNext.error;
-            complete = observerOrNext.complete;
-            if (observerOrNext !== Observer_1.empty) {
-                context = Object.create(observerOrNext);
-                if (isFunction_1.isFunction(context.unsubscribe)) {
-                    _this.add(context.unsubscribe.bind(context));
-                }
-                context.unsubscribe = _this.unsubscribe.bind(_this);
-            }
-        }
-        _this._context = context;
-        _this._next = next;
-        _this._error = error;
-        _this._complete = complete;
-        return _this;
-    }
-    SafeSubscriber.prototype.next = function (value) {
-        if (!this.isStopped && this._next) {
-            var _parentSubscriber = this._parentSubscriber;
-            if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                this.__tryOrUnsub(this._next, value);
-            }
-            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var _parentSubscriber = this._parentSubscriber;
-            var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;
-            if (this._error) {
-                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(this._error, err);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, this._error, err);
-                    this.unsubscribe();
-                }
-            }
-            else if (!_parentSubscriber.syncErrorThrowable) {
-                this.unsubscribe();
-                if (useDeprecatedSynchronousErrorHandling) {
-                    throw err;
-                }
-                hostReportError_1.hostReportError(err);
-            }
-            else {
-                if (useDeprecatedSynchronousErrorHandling) {
-                    _parentSubscriber.syncErrorValue = err;
-                    _parentSubscriber.syncErrorThrown = true;
-                }
-                else {
-                    hostReportError_1.hostReportError(err);
-                }
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.complete = function () {
-        var _this = this;
-        if (!this.isStopped) {
-            var _parentSubscriber = this._parentSubscriber;
-            if (this._complete) {
-                var wrappedComplete = function () { return _this._complete.call(_this._context); };
-                if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-                    this.__tryOrUnsub(wrappedComplete);
-                    this.unsubscribe();
-                }
-                else {
-                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);
-                    this.unsubscribe();
-                }
-            }
-            else {
-                this.unsubscribe();
-            }
-        }
-    };
-    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            this.unsubscribe();
-            if (config_1.config.useDeprecatedSynchronousErrorHandling) {
-                throw err;
-            }
-            else {
-                hostReportError_1.hostReportError(err);
-            }
-        }
-    };
-    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
-        if (!config_1.config.useDeprecatedSynchronousErrorHandling) {
-            throw new Error('bad call');
-        }
-        try {
-            fn.call(this._context, value);
-        }
-        catch (err) {
-            if (config_1.config.useDeprecatedSynchronousErrorHandling) {
-                parent.syncErrorValue = err;
-                parent.syncErrorThrown = true;
-                return true;
-            }
-            else {
-                hostReportError_1.hostReportError(err);
-                return true;
-            }
-        }
-        return false;
-    };
-    SafeSubscriber.prototype._unsubscribe = function () {
-        var _parentSubscriber = this._parentSubscriber;
-        this._context = null;
-        this._parentSubscriber = null;
-        _parentSubscriber.unsubscribe();
-    };
-    return SafeSubscriber;
-}(Subscriber));
-exports.SafeSubscriber = SafeSubscriber;
-//# sourceMappingURL=Subscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Subscriber.js.map b/node_modules/rxjs/internal/Subscriber.js.map
deleted file mode 100644
index 3b07b8c..0000000
--- a/node_modules/rxjs/internal/Subscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscriber.js","sources":["../src/internal/Subscriber.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/Subscription.d.ts b/node_modules/rxjs/internal/Subscription.d.ts
deleted file mode 100644
index bf8ccca..0000000
--- a/node_modules/rxjs/internal/Subscription.d.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { SubscriptionLike, TeardownLogic } from './types';
-/**
- * Represents a disposable resource, such as the execution of an Observable. A
- * Subscription has one important method, `unsubscribe`, that takes no argument
- * and just disposes the resource held by the subscription.
- *
- * Additionally, subscriptions may be grouped together through the `add()`
- * method, which will attach a child Subscription to the current Subscription.
- * When a Subscription is unsubscribed, all its children (and its grandchildren)
- * will be unsubscribed as well.
- *
- * @class Subscription
- */
-export declare class Subscription implements SubscriptionLike {
-    /** @nocollapse */
-    static EMPTY: Subscription;
-    /**
-     * A flag to indicate whether this Subscription has already been unsubscribed.
-     * @type {boolean}
-     */
-    closed: boolean;
-    /** @internal */
-    protected _parentOrParents: Subscription | Subscription[];
-    /** @internal */
-    private _subscriptions;
-    /**
-     * @param {function(): void} [unsubscribe] A function describing how to
-     * perform the disposal of resources when the `unsubscribe` method is called.
-     */
-    constructor(unsubscribe?: () => void);
-    /**
-     * Disposes the resources held by the subscription. May, for instance, cancel
-     * an ongoing Observable execution or cancel any other type of work that
-     * started when the Subscription was created.
-     * @return {void}
-     */
-    unsubscribe(): void;
-    /**
-     * Adds a tear down to be called during the unsubscribe() of this
-     * Subscription. Can also be used to add a child subscription.
-     *
-     * If the tear down being added is a subscription that is already
-     * unsubscribed, is the same reference `add` is being called on, or is
-     * `Subscription.EMPTY`, it will not be added.
-     *
-     * If this subscription is already in an `closed` state, the passed
-     * tear down logic will be executed immediately.
-     *
-     * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.
-     *
-     * @param {TeardownLogic} teardown The additional logic to execute on
-     * teardown.
-     * @return {Subscription} Returns the Subscription used or created to be
-     * added to the inner subscriptions list. This Subscription can be used with
-     * `remove()` to remove the passed teardown logic from the inner subscriptions
-     * list.
-     */
-    add(teardown: TeardownLogic): Subscription;
-    /**
-     * Removes a Subscription from the internal list of subscriptions that will
-     * unsubscribe during the unsubscribe process of this Subscription.
-     * @param {Subscription} subscription The subscription to remove.
-     * @return {void}
-     */
-    remove(subscription: Subscription): void;
-}
diff --git a/node_modules/rxjs/internal/Subscription.js b/node_modules/rxjs/internal/Subscription.js
deleted file mode 100644
index d2d68a5..0000000
--- a/node_modules/rxjs/internal/Subscription.js
+++ /dev/null
@@ -1,137 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isArray_1 = require("./util/isArray");
-var isObject_1 = require("./util/isObject");
-var isFunction_1 = require("./util/isFunction");
-var UnsubscriptionError_1 = require("./util/UnsubscriptionError");
-var Subscription = (function () {
-    function Subscription(unsubscribe) {
-        this.closed = false;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (unsubscribe) {
-            this._unsubscribe = unsubscribe;
-        }
-    }
-    Subscription.prototype.unsubscribe = function () {
-        var errors;
-        if (this.closed) {
-            return;
-        }
-        var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
-        this.closed = true;
-        this._parentOrParents = null;
-        this._subscriptions = null;
-        if (_parentOrParents instanceof Subscription) {
-            _parentOrParents.remove(this);
-        }
-        else if (_parentOrParents !== null) {
-            for (var index = 0; index < _parentOrParents.length; ++index) {
-                var parent_1 = _parentOrParents[index];
-                parent_1.remove(this);
-            }
-        }
-        if (isFunction_1.isFunction(_unsubscribe)) {
-            try {
-                _unsubscribe.call(this);
-            }
-            catch (e) {
-                errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
-            }
-        }
-        if (isArray_1.isArray(_subscriptions)) {
-            var index = -1;
-            var len = _subscriptions.length;
-            while (++index < len) {
-                var sub = _subscriptions[index];
-                if (isObject_1.isObject(sub)) {
-                    try {
-                        sub.unsubscribe();
-                    }
-                    catch (e) {
-                        errors = errors || [];
-                        if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {
-                            errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
-                        }
-                        else {
-                            errors.push(e);
-                        }
-                    }
-                }
-            }
-        }
-        if (errors) {
-            throw new UnsubscriptionError_1.UnsubscriptionError(errors);
-        }
-    };
-    Subscription.prototype.add = function (teardown) {
-        var subscription = teardown;
-        if (!teardown) {
-            return Subscription.EMPTY;
-        }
-        switch (typeof teardown) {
-            case 'function':
-                subscription = new Subscription(teardown);
-            case 'object':
-                if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
-                    return subscription;
-                }
-                else if (this.closed) {
-                    subscription.unsubscribe();
-                    return subscription;
-                }
-                else if (!(subscription instanceof Subscription)) {
-                    var tmp = subscription;
-                    subscription = new Subscription();
-                    subscription._subscriptions = [tmp];
-                }
-                break;
-            default: {
-                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
-            }
-        }
-        var _parentOrParents = subscription._parentOrParents;
-        if (_parentOrParents === null) {
-            subscription._parentOrParents = this;
-        }
-        else if (_parentOrParents instanceof Subscription) {
-            if (_parentOrParents === this) {
-                return subscription;
-            }
-            subscription._parentOrParents = [_parentOrParents, this];
-        }
-        else if (_parentOrParents.indexOf(this) === -1) {
-            _parentOrParents.push(this);
-        }
-        else {
-            return subscription;
-        }
-        var subscriptions = this._subscriptions;
-        if (subscriptions === null) {
-            this._subscriptions = [subscription];
-        }
-        else {
-            subscriptions.push(subscription);
-        }
-        return subscription;
-    };
-    Subscription.prototype.remove = function (subscription) {
-        var subscriptions = this._subscriptions;
-        if (subscriptions) {
-            var subscriptionIndex = subscriptions.indexOf(subscription);
-            if (subscriptionIndex !== -1) {
-                subscriptions.splice(subscriptionIndex, 1);
-            }
-        }
-    };
-    Subscription.EMPTY = (function (empty) {
-        empty.closed = true;
-        return empty;
-    }(new Subscription()));
-    return Subscription;
-}());
-exports.Subscription = Subscription;
-function flattenUnsubscriptionErrors(errors) {
-    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);
-}
-//# sourceMappingURL=Subscription.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/Subscription.js.map b/node_modules/rxjs/internal/Subscription.js.map
deleted file mode 100644
index f5974c9..0000000
--- a/node_modules/rxjs/internal/Subscription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Subscription.js","sources":["../src/internal/Subscription.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/config.d.ts b/node_modules/rxjs/internal/config.d.ts
deleted file mode 100644
index 7e62207..0000000
--- a/node_modules/rxjs/internal/config.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * The global configuration object for RxJS, used to configure things
- * like what Promise contructor should used to create Promises
- */
-export declare const config: {
-    /**
-     * The promise constructor used by default for methods such as
-     * {@link toPromise} and {@link forEach}
-     */
-    Promise: PromiseConstructorLike;
-    /**
-     * If true, turns on synchronous error rethrowing, which is a deprecated behavior
-     * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe
-     * call in a try/catch block. It also enables producer interference, a nasty bug
-     * where a multicast can be broken for all observers by a downstream consumer with
-     * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME
-     * FOR MIGRATION REASONS.
-     */
-    useDeprecatedSynchronousErrorHandling: boolean;
-};
diff --git a/node_modules/rxjs/internal/config.js b/node_modules/rxjs/internal/config.js
deleted file mode 100644
index ec56be9..0000000
--- a/node_modules/rxjs/internal/config.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var _enable_super_gross_mode_that_will_cause_bad_things = false;
-exports.config = {
-    Promise: undefined,
-    set useDeprecatedSynchronousErrorHandling(value) {
-        if (value) {
-            var error = new Error();
-            console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
-        }
-        else if (_enable_super_gross_mode_that_will_cause_bad_things) {
-            console.log('RxJS: Back to a better error behavior. Thank you. <3');
-        }
-        _enable_super_gross_mode_that_will_cause_bad_things = value;
-    },
-    get useDeprecatedSynchronousErrorHandling() {
-        return _enable_super_gross_mode_that_will_cause_bad_things;
-    },
-};
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/config.js.map b/node_modules/rxjs/internal/config.js.map
deleted file mode 100644
index d8f2929..0000000
--- a/node_modules/rxjs/internal/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sources":["../src/internal/config.ts"],"names":[],"mappings":";;AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMnD,QAAA,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts b/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts
deleted file mode 100644
index fe3a8e8..0000000
--- a/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Subject } from '../Subject';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-/**
- * @class ConnectableObservable<T>
- */
-export declare class ConnectableObservable<T> extends Observable<T> {
-    source: Observable<T>;
-    protected subjectFactory: () => Subject<T>;
-    protected _subject: Subject<T>;
-    protected _refCount: number;
-    protected _connection: Subscription;
-    /** @internal */
-    _isComplete: boolean;
-    constructor(source: Observable<T>, subjectFactory: () => Subject<T>);
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-    protected getSubject(): Subject<T>;
-    connect(): Subscription;
-    refCount(): Observable<T>;
-}
-export declare const connectableObservableDescriptor: PropertyDescriptorMap;
diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.js b/node_modules/rxjs/internal/observable/ConnectableObservable.js
deleted file mode 100644
index 9772f58..0000000
--- a/node_modules/rxjs/internal/observable/ConnectableObservable.js
+++ /dev/null
@@ -1,155 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var Observable_1 = require("../Observable");
-var Subscriber_1 = require("../Subscriber");
-var Subscription_1 = require("../Subscription");
-var refCount_1 = require("../operators/refCount");
-var ConnectableObservable = (function (_super) {
-    __extends(ConnectableObservable, _super);
-    function ConnectableObservable(source, subjectFactory) {
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.subjectFactory = subjectFactory;
-        _this._refCount = 0;
-        _this._isComplete = false;
-        return _this;
-    }
-    ConnectableObservable.prototype._subscribe = function (subscriber) {
-        return this.getSubject().subscribe(subscriber);
-    };
-    ConnectableObservable.prototype.getSubject = function () {
-        var subject = this._subject;
-        if (!subject || subject.isStopped) {
-            this._subject = this.subjectFactory();
-        }
-        return this._subject;
-    };
-    ConnectableObservable.prototype.connect = function () {
-        var connection = this._connection;
-        if (!connection) {
-            this._isComplete = false;
-            connection = this._connection = new Subscription_1.Subscription();
-            connection.add(this.source
-                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
-            if (connection.closed) {
-                this._connection = null;
-                connection = Subscription_1.Subscription.EMPTY;
-            }
-        }
-        return connection;
-    };
-    ConnectableObservable.prototype.refCount = function () {
-        return refCount_1.refCount()(this);
-    };
-    return ConnectableObservable;
-}(Observable_1.Observable));
-exports.ConnectableObservable = ConnectableObservable;
-exports.connectableObservableDescriptor = (function () {
-    var connectableProto = ConnectableObservable.prototype;
-    return {
-        operator: { value: null },
-        _refCount: { value: 0, writable: true },
-        _subject: { value: null, writable: true },
-        _connection: { value: null, writable: true },
-        _subscribe: { value: connectableProto._subscribe },
-        _isComplete: { value: connectableProto._isComplete, writable: true },
-        getSubject: { value: connectableProto.getSubject },
-        connect: { value: connectableProto.connect },
-        refCount: { value: connectableProto.refCount }
-    };
-})();
-var ConnectableSubscriber = (function (_super) {
-    __extends(ConnectableSubscriber, _super);
-    function ConnectableSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    ConnectableSubscriber.prototype._error = function (err) {
-        this._unsubscribe();
-        _super.prototype._error.call(this, err);
-    };
-    ConnectableSubscriber.prototype._complete = function () {
-        this.connectable._isComplete = true;
-        this._unsubscribe();
-        _super.prototype._complete.call(this);
-    };
-    ConnectableSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (connectable) {
-            this.connectable = null;
-            var connection = connectable._connection;
-            connectable._refCount = 0;
-            connectable._subject = null;
-            connectable._connection = null;
-            if (connection) {
-                connection.unsubscribe();
-            }
-        }
-    };
-    return ConnectableSubscriber;
-}(Subject_1.SubjectSubscriber));
-var RefCountOperator = (function () {
-    function RefCountOperator(connectable) {
-        this.connectable = connectable;
-    }
-    RefCountOperator.prototype.call = function (subscriber, source) {
-        var connectable = this.connectable;
-        connectable._refCount++;
-        var refCounter = new RefCountSubscriber(subscriber, connectable);
-        var subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    };
-    return RefCountOperator;
-}());
-var RefCountSubscriber = (function (_super) {
-    __extends(RefCountSubscriber, _super);
-    function RefCountSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    RefCountSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        var refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        var connection = this.connection;
-        var sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    };
-    return RefCountSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=ConnectableObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/internal/observable/ConnectableObservable.js.map
deleted file mode 100644
index b8b17ac..0000000
--- a/node_modules/rxjs/internal/observable/ConnectableObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ConnectableObservable.js","sources":["../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts b/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts
deleted file mode 100644
index 0a42c0e..0000000
--- a/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { SchedulerLike, SchedulerAction } from '../types';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-export interface DispatchArg<T> {
-    source: Observable<T>;
-    subscriber: Subscriber<T>;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
-export declare class SubscribeOnObservable<T> extends Observable<T> {
-    source: Observable<T>;
-    private delayTime;
-    private scheduler;
-    /** @nocollapse */
-    static create<T>(source: Observable<T>, delay?: number, scheduler?: SchedulerLike): Observable<T>;
-    /** @nocollapse */
-    static dispatch<T>(this: SchedulerAction<T>, arg: DispatchArg<T>): Subscription;
-    constructor(source: Observable<T>, delayTime?: number, scheduler?: SchedulerLike);
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-}
diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js
deleted file mode 100644
index e79b2d2..0000000
--- a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var asap_1 = require("../scheduler/asap");
-var isNumeric_1 = require("../util/isNumeric");
-var SubscribeOnObservable = (function (_super) {
-    __extends(SubscribeOnObservable, _super);
-    function SubscribeOnObservable(source, delayTime, scheduler) {
-        if (delayTime === void 0) { delayTime = 0; }
-        if (scheduler === void 0) { scheduler = asap_1.asap; }
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.delayTime = delayTime;
-        _this.scheduler = scheduler;
-        if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) {
-            _this.delayTime = 0;
-        }
-        if (!scheduler || typeof scheduler.schedule !== 'function') {
-            _this.scheduler = asap_1.asap;
-        }
-        return _this;
-    }
-    SubscribeOnObservable.create = function (source, delay, scheduler) {
-        if (delay === void 0) { delay = 0; }
-        if (scheduler === void 0) { scheduler = asap_1.asap; }
-        return new SubscribeOnObservable(source, delay, scheduler);
-    };
-    SubscribeOnObservable.dispatch = function (arg) {
-        var source = arg.source, subscriber = arg.subscriber;
-        return this.add(source.subscribe(subscriber));
-    };
-    SubscribeOnObservable.prototype._subscribe = function (subscriber) {
-        var delay = this.delayTime;
-        var source = this.source;
-        var scheduler = this.scheduler;
-        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {
-            source: source, subscriber: subscriber
-        });
-    };
-    return SubscribeOnObservable;
-}(Observable_1.Observable));
-exports.SubscribeOnObservable = SubscribeOnObservable;
-//# sourceMappingURL=SubscribeOnObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map
deleted file mode 100644
index de7d5ea..0000000
--- a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscribeOnObservable.js","sources":["../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,4CAA2C;AAC3C,0CAAyC;AACzC,+CAA8C;AAY9C;IAA8C,yCAAa;IAYzD,+BAAmB,MAAqB,EACpB,SAAqB,EACrB,SAA+B;QAD/B,0BAAA,EAAA,aAAqB;QACrB,0BAAA,EAAA,YAA2B,WAAI;QAFnD,YAGE,iBAAO,SAOR;QAVkB,YAAM,GAAN,MAAM,CAAe;QACpB,eAAS,GAAT,SAAS,CAAY;QACrB,eAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,qBAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,KAAI,CAAC,SAAS,GAAG,WAAI,CAAC;SACvB;;IACH,CAAC;IApBM,4BAAM,GAAb,UAAiB,MAAqB,EAAE,KAAiB,EAAE,SAA+B;QAAlD,sBAAA,EAAA,SAAiB;QAAE,0BAAA,EAAA,YAA2B,WAAI;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGM,8BAAQ,GAAf,UAA6C,GAAmB;QACtD,IAAA,mBAAM,EAAE,2BAAU,CAAS;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,0CAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,QAAA,EAAE,UAAU,YAAA;SACnB,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAlCD,CAA8C,uBAAU,GAkCvD;AAlCY,sDAAqB"}
diff --git a/node_modules/rxjs/internal/observable/bindCallback.d.ts b/node_modules/rxjs/internal/observable/bindCallback.d.ts
deleted file mode 100644
index 39fd17f..0000000
--- a/node_modules/rxjs/internal/observable/bindCallback.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { SchedulerLike } from '../types';
-import { Observable } from '../Observable';
-/** @deprecated resultSelector is no longer supported, use a mapping function. */
-export declare function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
-export declare function bindCallback<R1, R2, R3, R4>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable<any[]>;
-export declare function bindCallback<R1, R2, R3>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;
-export declare function bindCallback<R1, R2>(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;
-export declare function bindCallback<R1>(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;
-export declare function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable<void>;
-export declare function bindCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<any[]>;
-export declare function bindCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;
-export declare function bindCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;
-export declare function bindCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;
-export declare function bindCallback<A1>(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;
-export declare function bindCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<any[]>;
-export declare function bindCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;
-export declare function bindCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;
-export declare function bindCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;
-export declare function bindCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;
-export declare function bindCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<any[]>;
-export declare function bindCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;
-export declare function bindCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;
-export declare function bindCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;
-export declare function bindCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;
-export declare function bindCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<any[]>;
-export declare function bindCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;
-export declare function bindCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;
-export declare function bindCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;
-export declare function bindCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;
-export declare function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<any[]>;
-export declare function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;
-export declare function bindCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;
-export declare function bindCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;
-export declare function bindCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;
-export declare function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((result: R) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R>;
-export declare function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((...results: R[]) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R[]>;
-export declare function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
diff --git a/node_modules/rxjs/internal/observable/bindCallback.js b/node_modules/rxjs/internal/observable/bindCallback.js
deleted file mode 100644
index ac6efeb..0000000
--- a/node_modules/rxjs/internal/observable/bindCallback.js
+++ /dev/null
@@ -1,107 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var AsyncSubject_1 = require("../AsyncSubject");
-var map_1 = require("../operators/map");
-var canReportError_1 = require("../util/canReportError");
-var isArray_1 = require("../util/isArray");
-var isScheduler_1 = require("../util/isScheduler");
-function bindCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler_1.isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return function () {
-                var args = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    args[_i] = arguments[_i];
-                }
-                return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-            };
-        }
-    }
-    return function () {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        var context = this;
-        var subject;
-        var params = {
-            context: context,
-            subject: subject,
-            callbackFunc: callbackFunc,
-            scheduler: scheduler,
-        };
-        return new Observable_1.Observable(function (subscriber) {
-            if (!scheduler) {
-                if (!subject) {
-                    subject = new AsyncSubject_1.AsyncSubject();
-                    var handler = function () {
-                        var innerArgs = [];
-                        for (var _i = 0; _i < arguments.length; _i++) {
-                            innerArgs[_i] = arguments[_i];
-                        }
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, args.concat([handler]));
-                    }
-                    catch (err) {
-                        if (canReportError_1.canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                var state = {
-                    args: args, subscriber: subscriber, params: params,
-                };
-                return scheduler.schedule(dispatch, 0, state);
-            }
-        });
-    };
-}
-exports.bindCallback = bindCallback;
-function dispatch(state) {
-    var _this = this;
-    var self = this;
-    var args = state.args, subscriber = state.subscriber, params = state.params;
-    var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;
-    var subject = params.subject;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject_1.AsyncSubject();
-        var handler = function () {
-            var innerArgs = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                innerArgs[_i] = arguments[_i];
-            }
-            var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-            _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
-        };
-        try {
-            callbackFunc.apply(context, args.concat([handler]));
-        }
-        catch (err) {
-            subject.error(err);
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(state) {
-    var value = state.value, subject = state.subject;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(state) {
-    var err = state.err, subject = state.subject;
-    subject.error(err);
-}
-//# sourceMappingURL=bindCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/bindCallback.js.map b/node_modules/rxjs/internal/observable/bindCallback.js.map
deleted file mode 100644
index 52b31da..0000000
--- a/node_modules/rxjs/internal/observable/bindCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindCallback.js","sources":["../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts b/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts
deleted file mode 100644
index 5a2f62b..0000000
--- a/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-/** @deprecated resultSelector is deprecated, pipe to map instead */
-export declare function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
-export declare function bindNodeCallback<R1, R2, R3, R4>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<R1, R2, R3>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<R1, R2>(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;
-export declare function bindNodeCallback<R1>(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;
-export declare function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable<void>;
-export declare function bindNodeCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;
-export declare function bindNodeCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;
-export declare function bindNodeCallback<A1>(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;
-export declare function bindNodeCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;
-export declare function bindNodeCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;
-export declare function bindNodeCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;
-export declare function bindNodeCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;
-export declare function bindNodeCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;
-export declare function bindNodeCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;
-export declare function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;
-export declare function bindNodeCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;
-export declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;
-export declare function bindNodeCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;
-export declare function bindNodeCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;
-export declare function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.js b/node_modules/rxjs/internal/observable/bindNodeCallback.js
deleted file mode 100644
index 135bbd2..0000000
--- a/node_modules/rxjs/internal/observable/bindNodeCallback.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var AsyncSubject_1 = require("../AsyncSubject");
-var map_1 = require("../operators/map");
-var canReportError_1 = require("../util/canReportError");
-var isScheduler_1 = require("../util/isScheduler");
-var isArray_1 = require("../util/isArray");
-function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
-    if (resultSelector) {
-        if (isScheduler_1.isScheduler(resultSelector)) {
-            scheduler = resultSelector;
-        }
-        else {
-            return function () {
-                var args = [];
-                for (var _i = 0; _i < arguments.length; _i++) {
-                    args[_i] = arguments[_i];
-                }
-                return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-            };
-        }
-    }
-    return function () {
-        var args = [];
-        for (var _i = 0; _i < arguments.length; _i++) {
-            args[_i] = arguments[_i];
-        }
-        var params = {
-            subject: undefined,
-            args: args,
-            callbackFunc: callbackFunc,
-            scheduler: scheduler,
-            context: this,
-        };
-        return new Observable_1.Observable(function (subscriber) {
-            var context = params.context;
-            var subject = params.subject;
-            if (!scheduler) {
-                if (!subject) {
-                    subject = params.subject = new AsyncSubject_1.AsyncSubject();
-                    var handler = function () {
-                        var innerArgs = [];
-                        for (var _i = 0; _i < arguments.length; _i++) {
-                            innerArgs[_i] = arguments[_i];
-                        }
-                        var err = innerArgs.shift();
-                        if (err) {
-                            subject.error(err);
-                            return;
-                        }
-                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-                        subject.complete();
-                    };
-                    try {
-                        callbackFunc.apply(context, args.concat([handler]));
-                    }
-                    catch (err) {
-                        if (canReportError_1.canReportError(subject)) {
-                            subject.error(err);
-                        }
-                        else {
-                            console.warn(err);
-                        }
-                    }
-                }
-                return subject.subscribe(subscriber);
-            }
-            else {
-                return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });
-            }
-        });
-    };
-}
-exports.bindNodeCallback = bindNodeCallback;
-function dispatch(state) {
-    var _this = this;
-    var params = state.params, subscriber = state.subscriber, context = state.context;
-    var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
-    var subject = params.subject;
-    if (!subject) {
-        subject = params.subject = new AsyncSubject_1.AsyncSubject();
-        var handler = function () {
-            var innerArgs = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                innerArgs[_i] = arguments[_i];
-            }
-            var err = innerArgs.shift();
-            if (err) {
-                _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
-            }
-            else {
-                var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-                _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
-            }
-        };
-        try {
-            callbackFunc.apply(context, args.concat([handler]));
-        }
-        catch (err) {
-            this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
-        }
-    }
-    this.add(subject.subscribe(subscriber));
-}
-function dispatchNext(arg) {
-    var value = arg.value, subject = arg.subject;
-    subject.next(value);
-    subject.complete();
-}
-function dispatchError(arg) {
-    var err = arg.err, subject = arg.subject;
-    subject.error(err);
-}
-//# sourceMappingURL=bindNodeCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/internal/observable/bindNodeCallback.js.map
deleted file mode 100644
index 025fdc5..0000000
--- a/node_modules/rxjs/internal/observable/bindNodeCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindNodeCallback.js","sources":["../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/combineLatest.d.ts b/node_modules/rxjs/internal/observable/combineLatest.d.ts
deleted file mode 100644
index e17d8df..0000000
--- a/node_modules/rxjs/internal/observable/combineLatest.d.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { Operator } from '../Operator';
-import { InnerSubscriber } from '../InnerSubscriber';
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, R>(sources: [O1], resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O extends ObservableInput<any>, R>(sources: O[], resultSelector: (...args: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O extends ObservableInput<any>>(sources: O[], scheduler: SchedulerLike): Observable<ObservedValueOf<O>[]>;
-export declare function combineLatest<O1 extends ObservableInput<any>>(sources: [O1]): Observable<[ObservedValueOf<O1>]>;
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-export declare function combineLatest<O extends ObservableInput<any>>(sources: O[]): Observable<ObservedValueOf<O>[]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O extends ObservableInput<any>>(...observables: O[]): Observable<any[]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export declare function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function combineLatest<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O extends ObservableInput<any>>(...observables: Array<O | SchedulerLike>): Observable<any[]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike>): Observable<R>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export declare function combineLatest<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R) | SchedulerLike>): Observable<R>;
-export declare class CombineLatestOperator<T, R> implements Operator<T, R> {
-    private resultSelector?;
-    constructor(resultSelector?: (...values: Array<any>) => R);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class CombineLatestSubscriber<T, R> extends OuterSubscriber<T, R> {
-    private resultSelector?;
-    private active;
-    private values;
-    private observables;
-    private toRespond;
-    constructor(destination: Subscriber<R>, resultSelector?: (...values: Array<any>) => R);
-    protected _next(observable: any): void;
-    protected _complete(): void;
-    notifyComplete(unused: Subscriber<R>): void;
-    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;
-    private _tryResultSelector;
-}
diff --git a/node_modules/rxjs/internal/observable/combineLatest.js b/node_modules/rxjs/internal/observable/combineLatest.js
deleted file mode 100644
index 2308236..0000000
--- a/node_modules/rxjs/internal/observable/combineLatest.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var isScheduler_1 = require("../util/isScheduler");
-var isArray_1 = require("../util/isArray");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var fromArray_1 = require("./fromArray");
-var NONE = {};
-function combineLatest() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var resultSelector = null;
-    var scheduler = null;
-    if (isScheduler_1.isScheduler(observables[observables.length - 1])) {
-        scheduler = observables.pop();
-    }
-    if (typeof observables[observables.length - 1] === 'function') {
-        resultSelector = observables.pop();
-    }
-    if (observables.length === 1 && isArray_1.isArray(observables[0])) {
-        observables = observables[0];
-    }
-    return fromArray_1.fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
-}
-exports.combineLatest = combineLatest;
-var CombineLatestOperator = (function () {
-    function CombineLatestOperator(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    CombineLatestOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
-    };
-    return CombineLatestOperator;
-}());
-exports.CombineLatestOperator = CombineLatestOperator;
-var CombineLatestSubscriber = (function (_super) {
-    __extends(CombineLatestSubscriber, _super);
-    function CombineLatestSubscriber(destination, resultSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.resultSelector = resultSelector;
-        _this.active = 0;
-        _this.values = [];
-        _this.observables = [];
-        return _this;
-    }
-    CombineLatestSubscriber.prototype._next = function (observable) {
-        this.values.push(NONE);
-        this.observables.push(observable);
-    };
-    CombineLatestSubscriber.prototype._complete = function () {
-        var observables = this.observables;
-        var len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            this.active = len;
-            this.toRespond = len;
-            for (var i = 0; i < len; i++) {
-                var observable = observables[i];
-                this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i));
-            }
-        }
-    };
-    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {
-        if ((this.active -= 1) === 0) {
-            this.destination.complete();
-        }
-    };
-    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var values = this.values;
-        var oldVal = values[outerIndex];
-        var toRespond = !this.toRespond
-            ? 0
-            : oldVal === NONE ? --this.toRespond : this.toRespond;
-        values[outerIndex] = innerValue;
-        if (toRespond === 0) {
-            if (this.resultSelector) {
-                this._tryResultSelector(values);
-            }
-            else {
-                this.destination.next(values.slice());
-            }
-        }
-    };
-    CombineLatestSubscriber.prototype._tryResultSelector = function (values) {
-        var result;
-        try {
-            result = this.resultSelector.apply(this, values);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return CombineLatestSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.CombineLatestSubscriber = CombineLatestSubscriber;
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/combineLatest.js.map b/node_modules/rxjs/internal/observable/combineLatest.js.map
deleted file mode 100644
index 3d2d9da..0000000
--- a/node_modules/rxjs/internal/observable/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/concat.d.ts b/node_modules/rxjs/internal/observable/concat.d.ts
deleted file mode 100644
index c547774..0000000
--- a/node_modules/rxjs/internal/observable/concat.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>>(v1: O1, scheduler: SchedulerLike): Observable<ObservedValueOf<O1>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;
-export declare function concat<O1 extends ObservableInput<any>>(v1: O1): Observable<ObservedValueOf<O1>>;
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;
-export declare function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;
-export declare function concat<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<O extends ObservableInput<any>>(...observables: (O | SchedulerLike)[]): Observable<ObservedValueOf<O>>;
-export declare function concat<R>(...observables: ObservableInput<any>[]): Observable<R>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export declare function concat<R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>;
diff --git a/node_modules/rxjs/internal/observable/concat.js b/node_modules/rxjs/internal/observable/concat.js
deleted file mode 100644
index 2f1061b..0000000
--- a/node_modules/rxjs/internal/observable/concat.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var of_1 = require("./of");
-var concatAll_1 = require("../operators/concatAll");
-function concat() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return concatAll_1.concatAll()(of_1.of.apply(void 0, observables));
-}
-exports.concat = concat;
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/concat.js.map b/node_modules/rxjs/internal/observable/concat.js.map
deleted file mode 100644
index 4337db2..0000000
--- a/node_modules/rxjs/internal/observable/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../src/internal/observable/concat.ts"],"names":[],"mappings":";;AAGA,2BAA0B;AAE1B,oDAAmD;AA2InD,SAAgB,MAAM;IAAoC,qBAAwC;SAAxC,UAAwC,EAAxC,qBAAwC,EAAxC,IAAwC;QAAxC,gCAAwC;;IAChG,OAAO,qBAAS,EAAK,CAAC,OAAE,eAAI,WAAW,EAAE,CAAC;AAC5C,CAAC;AAFD,wBAEC"}
diff --git a/node_modules/rxjs/internal/observable/defer.d.ts b/node_modules/rxjs/internal/observable/defer.d.ts
deleted file mode 100644
index 67ca07e..0000000
--- a/node_modules/rxjs/internal/observable/defer.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservedValueOf, ObservableInput } from '../types';
-/**
- * Creates an Observable that, on subscribe, calls an Observable factory to
- * make an Observable for each new Observer.
- *
- * <span class="informal">Creates the Observable lazily, that is, only when it
- * is subscribed.
- * </span>
- *
- * ![](defer.png)
- *
- * `defer` allows you to create the Observable only when the Observer
- * subscribes, and create a fresh Observable for each Observer. It waits until
- * an Observer subscribes to it, and then it generates an Observable,
- * typically with an Observable factory function. It does this afresh for each
- * subscriber, so although each subscriber may think it is subscribing to the
- * same Observable, in fact each subscriber gets its own individual
- * Observable.
- *
- * ## Example
- * ### Subscribe to either an Observable of clicks or an Observable of interval, at random
- * ```ts
- * import { defer, fromEvent, interval } from 'rxjs';
- *
- * const clicksOrInterval = defer(function () {
- *   return Math.random() > 0.5
- *     ? fromEvent(document, 'click')
- *     : interval(1000);
- * });
- * clicksOrInterval.subscribe(x => console.log(x));
- *
- * // Results in the following behavior:
- * // If the result of Math.random() is greater than 0.5 it will listen
- * // for clicks anywhere on the "document"; when document is clicked it
- * // will log a MouseEvent object to the console. If the result is less
- * // than 0.5 it will emit ascending numbers, one every second(1000ms).
- * ```
- *
- * @see {@link Observable}
- *
- * @param {function(): SubscribableOrPromise} observableFactory The Observable
- * factory function to invoke for each Observer that subscribes to the output
- * Observable. May also return a Promise, which will be converted on the fly
- * to an Observable.
- * @return {Observable} An Observable whose Observers' subscriptions trigger
- * an invocation of the given Observable factory function.
- * @static true
- * @name defer
- * @owner Observable
- */
-export declare function defer<R extends ObservableInput<any> | void>(observableFactory: () => R): Observable<ObservedValueOf<R>>;
diff --git a/node_modules/rxjs/internal/observable/defer.js b/node_modules/rxjs/internal/observable/defer.js
deleted file mode 100644
index 7278515..0000000
--- a/node_modules/rxjs/internal/observable/defer.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var from_1 = require("./from");
-var empty_1 = require("./empty");
-function defer(observableFactory) {
-    return new Observable_1.Observable(function (subscriber) {
-        var input;
-        try {
-            input = observableFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var source = input ? from_1.from(input) : empty_1.empty();
-        return source.subscribe(subscriber);
-    });
-}
-exports.defer = defer;
-//# sourceMappingURL=defer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/defer.js.map b/node_modules/rxjs/internal/observable/defer.js.map
deleted file mode 100644
index 8a635af..0000000
--- a/node_modules/rxjs/internal/observable/defer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defer.js","sources":["../../src/internal/observable/defer.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,iCAAgC;AAmDhC,SAAgB,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,uBAAU,CAAqB,UAAA,UAAU;QAClD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,aAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAZD,sBAYC"}
diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts b/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts
deleted file mode 100644
index a88eda7..0000000
--- a/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-import { Observable } from '../../Observable';
-import { Subscriber } from '../../Subscriber';
-import { TeardownLogic } from '../../types';
-export interface AjaxRequest {
-    url?: string;
-    body?: any;
-    user?: string;
-    async?: boolean;
-    method?: string;
-    headers?: Object;
-    timeout?: number;
-    password?: string;
-    hasContent?: boolean;
-    crossDomain?: boolean;
-    withCredentials?: boolean;
-    createXHR?: () => XMLHttpRequest;
-    progressSubscriber?: Subscriber<any>;
-    responseType?: string;
-}
-export interface AjaxCreationMethod {
-    (urlOrRequest: string | AjaxRequest): Observable<AjaxResponse>;
-    get(url: string, headers?: Object): Observable<AjaxResponse>;
-    post(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-    put(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-    patch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-    delete(url: string, headers?: Object): Observable<AjaxResponse>;
-    getJSON<T>(url: string, headers?: Object): Observable<T>;
-}
-export declare function ajaxGet(url: string, headers?: Object): AjaxObservable<AjaxResponse>;
-export declare function ajaxPost(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-export declare function ajaxDelete(url: string, headers?: Object): Observable<AjaxResponse>;
-export declare function ajaxPut(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-export declare function ajaxPatch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-export declare function ajaxGetJSON<T>(url: string, headers?: Object): Observable<T>;
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
-export declare class AjaxObservable<T> extends Observable<T> {
-    /**
-     * Creates an observable for an Ajax request with either a request object with
-     * url, headers, etc or a string for a URL.
-     *
-     * ## Example
-     * ```ts
-     * import { ajax } from 'rxjs/ajax';
-   *
-     * const source1 = ajax('/products');
-     * const source2 = ajax({ url: 'products', method: 'GET' });
-     * ```
-     *
-     * @param {string|Object} request Can be one of the following:
-     *   A string of the URL to make the Ajax call.
-     *   An object with the following properties
-     *   - url: URL of the request
-     *   - body: The body of the request
-     *   - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE
-     *   - async: Whether the request is async
-     *   - headers: Optional headers
-     *   - crossDomain: true if a cross domain request, else false
-     *   - createXHR: a function to override if you need to use an alternate
-     *   XMLHttpRequest implementation.
-     *   - resultSelector: a function to use to alter the output value type of
-     *   the Observable. Gets {@link AjaxResponse} as an argument.
-     * @return {Observable} An observable sequence containing the XMLHttpRequest.
-     * @static true
-     * @name ajax
-     * @owner Observable
-     * @nocollapse
-    */
-    static create: AjaxCreationMethod;
-    private request;
-    constructor(urlOrRequest: string | AjaxRequest);
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): TeardownLogic;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class AjaxSubscriber<T> extends Subscriber<Event> {
-    request: AjaxRequest;
-    private xhr;
-    private done;
-    constructor(destination: Subscriber<T>, request: AjaxRequest);
-    next(e: Event): void;
-    private send;
-    private serializeBody;
-    private setHeaders;
-    private getHeader;
-    private setupEvents;
-    unsubscribe(): void;
-}
-/**
- * A normalized AJAX response.
- *
- * @see {@link ajax}
- *
- * @class AjaxResponse
- */
-export declare class AjaxResponse {
-    originalEvent: Event;
-    xhr: XMLHttpRequest;
-    request: AjaxRequest;
-    /** @type {number} The HTTP status code */
-    status: number;
-    /** @type {string|ArrayBuffer|Document|object|any} The response data */
-    response: any;
-    /** @type {string} The raw responseText */
-    responseText: string;
-    /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */
-    responseType: string;
-    constructor(originalEvent: Event, xhr: XMLHttpRequest, request: AjaxRequest);
-}
-export declare type AjaxErrorNames = 'AjaxError' | 'AjaxTimeoutError';
-/**
- * A normalized AJAX error.
- *
- * @see {@link ajax}
- *
- * @class AjaxError
- */
-export interface AjaxError extends Error {
-    /** @type {XMLHttpRequest} The XHR instance associated with the error */
-    xhr: XMLHttpRequest;
-    /** @type {AjaxRequest} The AjaxRequest associated with the error */
-    request: AjaxRequest;
-    /** @type {number} The HTTP status code */
-    status: number;
-    /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */
-    responseType: string;
-    /** @type {string|ArrayBuffer|Document|object|any} The response data */
-    response: any;
-}
-export interface AjaxErrorCtor {
-    new (message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError;
-}
-export declare const AjaxError: AjaxErrorCtor;
-export interface AjaxTimeoutError extends AjaxError {
-}
-export interface AjaxTimeoutErrorCtor {
-    new (xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError;
-}
-/**
- * @see {@link ajax}
- *
- * @class AjaxTimeoutError
- */
-export declare const AjaxTimeoutError: AjaxTimeoutErrorCtor;
diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js
deleted file mode 100644
index 432d777..0000000
--- a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js
+++ /dev/null
@@ -1,391 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var root_1 = require("../../util/root");
-var Observable_1 = require("../../Observable");
-var Subscriber_1 = require("../../Subscriber");
-var map_1 = require("../../operators/map");
-function getCORSRequest() {
-    if (root_1.root.XMLHttpRequest) {
-        return new root_1.root.XMLHttpRequest();
-    }
-    else if (!!root_1.root.XDomainRequest) {
-        return new root_1.root.XDomainRequest();
-    }
-    else {
-        throw new Error('CORS is not supported by your browser');
-    }
-}
-function getXMLHttpRequest() {
-    if (root_1.root.XMLHttpRequest) {
-        return new root_1.root.XMLHttpRequest();
-    }
-    else {
-        var progId = void 0;
-        try {
-            var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-            for (var i = 0; i < 3; i++) {
-                try {
-                    progId = progIds[i];
-                    if (new root_1.root.ActiveXObject(progId)) {
-                        break;
-                    }
-                }
-                catch (e) {
-                }
-            }
-            return new root_1.root.ActiveXObject(progId);
-        }
-        catch (e) {
-            throw new Error('XMLHttpRequest is not supported by your browser');
-        }
-    }
-}
-function ajaxGet(url, headers) {
-    if (headers === void 0) { headers = null; }
-    return new AjaxObservable({ method: 'GET', url: url, headers: headers });
-}
-exports.ajaxGet = ajaxGet;
-function ajaxPost(url, body, headers) {
-    return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });
-}
-exports.ajaxPost = ajaxPost;
-function ajaxDelete(url, headers) {
-    return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });
-}
-exports.ajaxDelete = ajaxDelete;
-function ajaxPut(url, body, headers) {
-    return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });
-}
-exports.ajaxPut = ajaxPut;
-function ajaxPatch(url, body, headers) {
-    return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });
-}
-exports.ajaxPatch = ajaxPatch;
-var mapResponse = map_1.map(function (x, index) { return x.response; });
-function ajaxGetJSON(url, headers) {
-    return mapResponse(new AjaxObservable({
-        method: 'GET',
-        url: url,
-        responseType: 'json',
-        headers: headers
-    }));
-}
-exports.ajaxGetJSON = ajaxGetJSON;
-var AjaxObservable = (function (_super) {
-    __extends(AjaxObservable, _super);
-    function AjaxObservable(urlOrRequest) {
-        var _this = _super.call(this) || this;
-        var request = {
-            async: true,
-            createXHR: function () {
-                return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();
-            },
-            crossDomain: true,
-            withCredentials: false,
-            headers: {},
-            method: 'GET',
-            responseType: 'json',
-            timeout: 0
-        };
-        if (typeof urlOrRequest === 'string') {
-            request.url = urlOrRequest;
-        }
-        else {
-            for (var prop in urlOrRequest) {
-                if (urlOrRequest.hasOwnProperty(prop)) {
-                    request[prop] = urlOrRequest[prop];
-                }
-            }
-        }
-        _this.request = request;
-        return _this;
-    }
-    AjaxObservable.prototype._subscribe = function (subscriber) {
-        return new AjaxSubscriber(subscriber, this.request);
-    };
-    AjaxObservable.create = (function () {
-        var create = function (urlOrRequest) {
-            return new AjaxObservable(urlOrRequest);
-        };
-        create.get = ajaxGet;
-        create.post = ajaxPost;
-        create.delete = ajaxDelete;
-        create.put = ajaxPut;
-        create.patch = ajaxPatch;
-        create.getJSON = ajaxGetJSON;
-        return create;
-    })();
-    return AjaxObservable;
-}(Observable_1.Observable));
-exports.AjaxObservable = AjaxObservable;
-var AjaxSubscriber = (function (_super) {
-    __extends(AjaxSubscriber, _super);
-    function AjaxSubscriber(destination, request) {
-        var _this = _super.call(this, destination) || this;
-        _this.request = request;
-        _this.done = false;
-        var headers = request.headers = request.headers || {};
-        if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {
-            headers['X-Requested-With'] = 'XMLHttpRequest';
-        }
-        var contentTypeHeader = _this.getHeader(headers, 'Content-Type');
-        if (!contentTypeHeader && !(root_1.root.FormData && request.body instanceof root_1.root.FormData) && typeof request.body !== 'undefined') {
-            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
-        }
-        request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));
-        _this.send();
-        return _this;
-    }
-    AjaxSubscriber.prototype.next = function (e) {
-        this.done = true;
-        var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;
-        var result;
-        try {
-            result = new AjaxResponse(e, xhr, request);
-        }
-        catch (err) {
-            return destination.error(err);
-        }
-        destination.next(result);
-    };
-    AjaxSubscriber.prototype.send = function () {
-        var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;
-        try {
-            var xhr = this.xhr = request.createXHR();
-            this.setupEvents(xhr, request);
-            if (user) {
-                xhr.open(method, url, async, user, password);
-            }
-            else {
-                xhr.open(method, url, async);
-            }
-            if (async) {
-                xhr.timeout = request.timeout;
-                xhr.responseType = request.responseType;
-            }
-            if ('withCredentials' in xhr) {
-                xhr.withCredentials = !!request.withCredentials;
-            }
-            this.setHeaders(xhr, headers);
-            if (body) {
-                xhr.send(body);
-            }
-            else {
-                xhr.send();
-            }
-        }
-        catch (err) {
-            this.error(err);
-        }
-    };
-    AjaxSubscriber.prototype.serializeBody = function (body, contentType) {
-        if (!body || typeof body === 'string') {
-            return body;
-        }
-        else if (root_1.root.FormData && body instanceof root_1.root.FormData) {
-            return body;
-        }
-        if (contentType) {
-            var splitIndex = contentType.indexOf(';');
-            if (splitIndex !== -1) {
-                contentType = contentType.substring(0, splitIndex);
-            }
-        }
-        switch (contentType) {
-            case 'application/x-www-form-urlencoded':
-                return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&');
-            case 'application/json':
-                return JSON.stringify(body);
-            default:
-                return body;
-        }
-    };
-    AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {
-        for (var key in headers) {
-            if (headers.hasOwnProperty(key)) {
-                xhr.setRequestHeader(key, headers[key]);
-            }
-        }
-    };
-    AjaxSubscriber.prototype.getHeader = function (headers, headerName) {
-        for (var key in headers) {
-            if (key.toLowerCase() === headerName.toLowerCase()) {
-                return headers[key];
-            }
-        }
-        return undefined;
-    };
-    AjaxSubscriber.prototype.setupEvents = function (xhr, request) {
-        var progressSubscriber = request.progressSubscriber;
-        function xhrTimeout(e) {
-            var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-            if (progressSubscriber) {
-                progressSubscriber.error(e);
-            }
-            var error;
-            try {
-                error = new exports.AjaxTimeoutError(this, request);
-            }
-            catch (err) {
-                error = err;
-            }
-            subscriber.error(error);
-        }
-        xhr.ontimeout = xhrTimeout;
-        xhrTimeout.request = request;
-        xhrTimeout.subscriber = this;
-        xhrTimeout.progressSubscriber = progressSubscriber;
-        if (xhr.upload && 'withCredentials' in xhr) {
-            if (progressSubscriber) {
-                var xhrProgress_1;
-                xhrProgress_1 = function (e) {
-                    var progressSubscriber = xhrProgress_1.progressSubscriber;
-                    progressSubscriber.next(e);
-                };
-                if (root_1.root.XDomainRequest) {
-                    xhr.onprogress = xhrProgress_1;
-                }
-                else {
-                    xhr.upload.onprogress = xhrProgress_1;
-                }
-                xhrProgress_1.progressSubscriber = progressSubscriber;
-            }
-            var xhrError_1;
-            xhrError_1 = function (e) {
-                var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;
-                if (progressSubscriber) {
-                    progressSubscriber.error(e);
-                }
-                var error;
-                try {
-                    error = new exports.AjaxError('ajax error', this, request);
-                }
-                catch (err) {
-                    error = err;
-                }
-                subscriber.error(error);
-            };
-            xhr.onerror = xhrError_1;
-            xhrError_1.request = request;
-            xhrError_1.subscriber = this;
-            xhrError_1.progressSubscriber = progressSubscriber;
-        }
-        function xhrReadyStateChange(e) {
-            return;
-        }
-        xhr.onreadystatechange = xhrReadyStateChange;
-        xhrReadyStateChange.subscriber = this;
-        xhrReadyStateChange.progressSubscriber = progressSubscriber;
-        xhrReadyStateChange.request = request;
-        function xhrLoad(e) {
-            var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;
-            if (this.readyState === 4) {
-                var status_1 = this.status === 1223 ? 204 : this.status;
-                var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);
-                if (status_1 === 0) {
-                    status_1 = response ? 200 : 0;
-                }
-                if (status_1 < 400) {
-                    if (progressSubscriber) {
-                        progressSubscriber.complete();
-                    }
-                    subscriber.next(e);
-                    subscriber.complete();
-                }
-                else {
-                    if (progressSubscriber) {
-                        progressSubscriber.error(e);
-                    }
-                    var error = void 0;
-                    try {
-                        error = new exports.AjaxError('ajax error ' + status_1, this, request);
-                    }
-                    catch (err) {
-                        error = err;
-                    }
-                    subscriber.error(error);
-                }
-            }
-        }
-        xhr.onload = xhrLoad;
-        xhrLoad.subscriber = this;
-        xhrLoad.progressSubscriber = progressSubscriber;
-        xhrLoad.request = request;
-    };
-    AjaxSubscriber.prototype.unsubscribe = function () {
-        var _a = this, done = _a.done, xhr = _a.xhr;
-        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {
-            xhr.abort();
-        }
-        _super.prototype.unsubscribe.call(this);
-    };
-    return AjaxSubscriber;
-}(Subscriber_1.Subscriber));
-exports.AjaxSubscriber = AjaxSubscriber;
-var AjaxResponse = (function () {
-    function AjaxResponse(originalEvent, xhr, request) {
-        this.originalEvent = originalEvent;
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-    }
-    return AjaxResponse;
-}());
-exports.AjaxResponse = AjaxResponse;
-var AjaxErrorImpl = (function () {
-    function AjaxErrorImpl(message, xhr, request) {
-        Error.call(this);
-        this.message = message;
-        this.name = 'AjaxError';
-        this.xhr = xhr;
-        this.request = request;
-        this.status = xhr.status;
-        this.responseType = xhr.responseType || request.responseType;
-        this.response = parseXhrResponse(this.responseType, xhr);
-        return this;
-    }
-    AjaxErrorImpl.prototype = Object.create(Error.prototype);
-    return AjaxErrorImpl;
-})();
-exports.AjaxError = AjaxErrorImpl;
-function parseJson(xhr) {
-    if ('response' in xhr) {
-        return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');
-    }
-    else {
-        return JSON.parse(xhr.responseText || 'null');
-    }
-}
-function parseXhrResponse(responseType, xhr) {
-    switch (responseType) {
-        case 'json':
-            return parseJson(xhr);
-        case 'xml':
-            return xhr.responseXML;
-        case 'text':
-        default:
-            return ('response' in xhr) ? xhr.response : xhr.responseText;
-    }
-}
-function AjaxTimeoutErrorImpl(xhr, request) {
-    exports.AjaxError.call(this, 'ajax timeout', xhr, request);
-    this.name = 'AjaxTimeoutError';
-    return this;
-}
-exports.AjaxTimeoutError = AjaxTimeoutErrorImpl;
-//# sourceMappingURL=AjaxObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map
deleted file mode 100644
index 3c5a93e..0000000
--- a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AjaxObservable.js","sources":["../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts
deleted file mode 100644
index 84cc6f1..0000000
--- a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts
+++ /dev/null
@@ -1,170 +0,0 @@
-import { Subject, AnonymousSubject } from '../../Subject';
-import { Subscriber } from '../../Subscriber';
-import { Observable } from '../../Observable';
-import { Subscription } from '../../Subscription';
-import { Operator } from '../../Operator';
-import { Observer, NextObserver } from '../../types';
-/**
- * WebSocketSubjectConfig is a plain Object that allows us to make our
- * webSocket configurable.
- *
- * <span class="informal">Provides flexibility to {@link webSocket}</span>
- *
- * It defines a set of properties to provide custom behavior in specific
- * moments of the socket's lifecycle. When the connection opens we can
- * use `openObserver`, when the connection is closed `closeObserver`, if we
- * are interested in listening for data comming from server: `deserializer`,
- * which allows us to customize the deserialization strategy of data before passing it
- * to the socket client. By default `deserializer` is going to apply `JSON.parse` to each message comming
- * from the Server.
- *
- * ## Example
- * **deserializer**, the default for this property is `JSON.parse` but since there are just two options
- * for incomming data, either be text or binarydata. We can apply a custom deserialization strategy
- * or just simply skip the default behaviour.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- * //Apply any transformation of your choice.
- *     deserializer: ({data}) => data
- * });
- *
- * wsSubject.subscribe(console.log);
- *
- * // Let's suppose we have this on the Server: ws.send("This is a msg from the server")
- * //output
- * //
- * // This is a msg from the server
- * ```
- *
- * **serializer** allows us tom apply custom serialization strategy but for the outgoing messages
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- * //Apply any transformation of your choice.
- *     serializer: msg => JSON.stringify({channel: "webDevelopment", msg: msg})
- * });
- *
- * wsSubject.subscribe(() => subject.next("msg to the server"));
- *
- * // Let's suppose we have this on the Server: ws.send("This is a msg from the server")
- * //output
- * //
- * // {"channel":"webDevelopment","msg":"msg to the server"}
- * ```
- *
- * **closeObserver** allows us to set a custom error when an error raise up.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- *     closeObserver: {
-        next(closeEvent) {
-            const customError = { code: 6666, reason: "Custom evil reason" }
-            console.log(`code: ${customError.code}, reason: ${customError.reason}`);
-        }
-    }
- * });
- *
- * //output
- * // code: 6666, reason: Custom evil reason
- * ```
- *
- * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the
- * webSocket or sending notification that the connection was successful, this is when
- * openObserver is usefull for.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- *     openObserver: {
- *         next: () => {
- *             console.log('connetion ok');
- *         }
- *     },
- * });
- *
- * //output
- * // connetion ok`
- * ```
- * */
-export interface WebSocketSubjectConfig<T> {
-    /** The url of the socket server to connect to */
-    url: string;
-    /** The protocol to use to connect */
-    protocol?: string | Array<string>;
-    /** @deprecated use {@link deserializer} */
-    resultSelector?: (e: MessageEvent) => T;
-    /**
-     * A serializer used to create messages from passed values before the
-     * messages are sent to the server. Defaults to JSON.stringify.
-     */
-    serializer?: (value: T) => WebSocketMessage;
-    /**
-     * A deserializer used for messages arriving on the socket from the
-     * server. Defaults to JSON.parse.
-     */
-    deserializer?: (e: MessageEvent) => T;
-    /**
-     * An Observer that watches when open events occur on the underlying web socket.
-     */
-    openObserver?: NextObserver<Event>;
-    /**
-     * An Observer than watches when close events occur on the underlying webSocket
-     */
-    closeObserver?: NextObserver<CloseEvent>;
-    /**
-     * An Observer that watches when a close is about to occur due to
-     * unsubscription.
-     */
-    closingObserver?: NextObserver<void>;
-    /**
-     * A WebSocket constructor to use. This is useful for situations like using a
-     * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket
-     * for testing purposes
-     */
-    WebSocketCtor?: {
-        new (url: string, protocols?: string | string[]): WebSocket;
-    };
-    /** Sets the `binaryType` property of the underlying WebSocket. */
-    binaryType?: 'blob' | 'arraybuffer';
-}
-export declare type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView;
-export declare class WebSocketSubject<T> extends AnonymousSubject<T> {
-    private _config;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _output: Subject<T>;
-    private _socket;
-    constructor(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>);
-    lift<R>(operator: Operator<T, R>): WebSocketSubject<R>;
-    private _resetState;
-    /**
-     * Creates an {@link Observable}, that when subscribed to, sends a message,
-     * defined by the `subMsg` function, to the server over the socket to begin a
-     * subscription to data over that socket. Once data arrives, the
-     * `messageFilter` argument will be used to select the appropriate data for
-     * the resulting Observable. When teardown occurs, either due to
-     * unsubscription, completion or error, a message defined by the `unsubMsg`
-     * argument will be send to the server over the WebSocketSubject.
-     *
-     * @param subMsg A function to generate the subscription message to be sent to
-     * the server. This will still be processed by the serializer in the
-     * WebSocketSubject's config. (Which defaults to JSON serialization)
-     * @param unsubMsg A function to generate the unsubscription message to be
-     * sent to the server at teardown. This will still be processed by the
-     * serializer in the WebSocketSubject's config.
-     * @param messageFilter A predicate for selecting the appropriate messages
-     * from the server for the output stream.
-     */
-    multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean): Observable<any>;
-    private _connectSocket;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-    unsubscribe(): void;
-}
diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js
deleted file mode 100644
index d3edd3c..0000000
--- a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js
+++ /dev/null
@@ -1,241 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-var __assign = (this && this.__assign) || function () {
-    __assign = Object.assign || function(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-                t[p] = s[p];
-        }
-        return t;
-    };
-    return __assign.apply(this, arguments);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../../Subject");
-var Subscriber_1 = require("../../Subscriber");
-var Observable_1 = require("../../Observable");
-var Subscription_1 = require("../../Subscription");
-var ReplaySubject_1 = require("../../ReplaySubject");
-var DEFAULT_WEBSOCKET_CONFIG = {
-    url: '',
-    deserializer: function (e) { return JSON.parse(e.data); },
-    serializer: function (value) { return JSON.stringify(value); },
-};
-var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
-var WebSocketSubject = (function (_super) {
-    __extends(WebSocketSubject, _super);
-    function WebSocketSubject(urlConfigOrSource, destination) {
-        var _this = _super.call(this) || this;
-        if (urlConfigOrSource instanceof Observable_1.Observable) {
-            _this.destination = destination;
-            _this.source = urlConfigOrSource;
-        }
-        else {
-            var config = _this._config = __assign({}, DEFAULT_WEBSOCKET_CONFIG);
-            _this._output = new Subject_1.Subject();
-            if (typeof urlConfigOrSource === 'string') {
-                config.url = urlConfigOrSource;
-            }
-            else {
-                for (var key in urlConfigOrSource) {
-                    if (urlConfigOrSource.hasOwnProperty(key)) {
-                        config[key] = urlConfigOrSource[key];
-                    }
-                }
-            }
-            if (!config.WebSocketCtor && WebSocket) {
-                config.WebSocketCtor = WebSocket;
-            }
-            else if (!config.WebSocketCtor) {
-                throw new Error('no WebSocket constructor can be found');
-            }
-            _this.destination = new ReplaySubject_1.ReplaySubject();
-        }
-        return _this;
-    }
-    WebSocketSubject.prototype.lift = function (operator) {
-        var sock = new WebSocketSubject(this._config, this.destination);
-        sock.operator = operator;
-        sock.source = this;
-        return sock;
-    };
-    WebSocketSubject.prototype._resetState = function () {
-        this._socket = null;
-        if (!this.source) {
-            this.destination = new ReplaySubject_1.ReplaySubject();
-        }
-        this._output = new Subject_1.Subject();
-    };
-    WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {
-        var self = this;
-        return new Observable_1.Observable(function (observer) {
-            try {
-                self.next(subMsg());
-            }
-            catch (err) {
-                observer.error(err);
-            }
-            var subscription = self.subscribe(function (x) {
-                try {
-                    if (messageFilter(x)) {
-                        observer.next(x);
-                    }
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-            }, function (err) { return observer.error(err); }, function () { return observer.complete(); });
-            return function () {
-                try {
-                    self.next(unsubMsg());
-                }
-                catch (err) {
-                    observer.error(err);
-                }
-                subscription.unsubscribe();
-            };
-        });
-    };
-    WebSocketSubject.prototype._connectSocket = function () {
-        var _this = this;
-        var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;
-        var observer = this._output;
-        var socket = null;
-        try {
-            socket = protocol ?
-                new WebSocketCtor(url, protocol) :
-                new WebSocketCtor(url);
-            this._socket = socket;
-            if (binaryType) {
-                this._socket.binaryType = binaryType;
-            }
-        }
-        catch (e) {
-            observer.error(e);
-            return;
-        }
-        var subscription = new Subscription_1.Subscription(function () {
-            _this._socket = null;
-            if (socket && socket.readyState === 1) {
-                socket.close();
-            }
-        });
-        socket.onopen = function (e) {
-            var _socket = _this._socket;
-            if (!_socket) {
-                socket.close();
-                _this._resetState();
-                return;
-            }
-            var openObserver = _this._config.openObserver;
-            if (openObserver) {
-                openObserver.next(e);
-            }
-            var queue = _this.destination;
-            _this.destination = Subscriber_1.Subscriber.create(function (x) {
-                if (socket.readyState === 1) {
-                    try {
-                        var serializer = _this._config.serializer;
-                        socket.send(serializer(x));
-                    }
-                    catch (e) {
-                        _this.destination.error(e);
-                    }
-                }
-            }, function (e) {
-                var closingObserver = _this._config.closingObserver;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                if (e && e.code) {
-                    socket.close(e.code, e.reason);
-                }
-                else {
-                    observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
-                }
-                _this._resetState();
-            }, function () {
-                var closingObserver = _this._config.closingObserver;
-                if (closingObserver) {
-                    closingObserver.next(undefined);
-                }
-                socket.close();
-                _this._resetState();
-            });
-            if (queue && queue instanceof ReplaySubject_1.ReplaySubject) {
-                subscription.add(queue.subscribe(_this.destination));
-            }
-        };
-        socket.onerror = function (e) {
-            _this._resetState();
-            observer.error(e);
-        };
-        socket.onclose = function (e) {
-            _this._resetState();
-            var closeObserver = _this._config.closeObserver;
-            if (closeObserver) {
-                closeObserver.next(e);
-            }
-            if (e.wasClean) {
-                observer.complete();
-            }
-            else {
-                observer.error(e);
-            }
-        };
-        socket.onmessage = function (e) {
-            try {
-                var deserializer = _this._config.deserializer;
-                observer.next(deserializer(e));
-            }
-            catch (err) {
-                observer.error(err);
-            }
-        };
-    };
-    WebSocketSubject.prototype._subscribe = function (subscriber) {
-        var _this = this;
-        var source = this.source;
-        if (source) {
-            return source.subscribe(subscriber);
-        }
-        if (!this._socket) {
-            this._connectSocket();
-        }
-        this._output.subscribe(subscriber);
-        subscriber.add(function () {
-            var _socket = _this._socket;
-            if (_this._output.observers.length === 0) {
-                if (_socket && _socket.readyState === 1) {
-                    _socket.close();
-                }
-                _this._resetState();
-            }
-        });
-        return subscriber;
-    };
-    WebSocketSubject.prototype.unsubscribe = function () {
-        var _socket = this._socket;
-        if (_socket && _socket.readyState === 1) {
-            _socket.close();
-        }
-        this._resetState();
-        _super.prototype.unsubscribe.call(this);
-    };
-    return WebSocketSubject;
-}(Subject_1.AnonymousSubject));
-exports.WebSocketSubject = WebSocketSubject;
-//# sourceMappingURL=WebSocketSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map
deleted file mode 100644
index da0ce6a..0000000
--- a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WebSocketSubject.js","sources":["../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/dom/ajax.d.ts b/node_modules/rxjs/internal/observable/dom/ajax.d.ts
deleted file mode 100644
index 72e29f4..0000000
--- a/node_modules/rxjs/internal/observable/dom/ajax.d.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { AjaxCreationMethod } from './AjaxObservable';
-/**
- * There is an ajax operator on the Rx object.
- *
- * It creates an observable for an Ajax request with either a request object with
- * url, headers, etc or a string for a URL.
- *
- *
- * ## Using ajax() to fetch the response object that is being returned from API.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax(`https://api.github.com/users?per_page=5`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax.getJSON() to fetch data from API.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax.getJSON(`https://api.github.com/users?per_page=5`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax() with object as argument and method POST with a two seconds delay.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { of } from 'rxjs';
- *
- * const users = ajax({
- *   url: 'https://httpbin.org/delay/2',
- *   method: 'POST',
- *   headers: {
- *     'Content-Type': 'application/json',
- *     'rxjs-custom-header': 'Rxjs'
- *   },
- *   body: {
- *     rxjs: 'Hello World!'
- *   }
- * }).pipe(
- *   map(response => console.log('response: ', response)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax() to fetch. An error object that is being returned from the request.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax(`https://api.github.com/404`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- */
-export declare const ajax: AjaxCreationMethod;
diff --git a/node_modules/rxjs/internal/observable/dom/ajax.js b/node_modules/rxjs/internal/observable/dom/ajax.js
deleted file mode 100644
index b7399e1..0000000
--- a/node_modules/rxjs/internal/observable/dom/ajax.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AjaxObservable_1 = require("./AjaxObservable");
-exports.ajax = (function () { return AjaxObservable_1.AjaxObservable.create; })();
-//# sourceMappingURL=ajax.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/dom/ajax.js.map b/node_modules/rxjs/internal/observable/dom/ajax.js.map
deleted file mode 100644
index 8f4e299..0000000
--- a/node_modules/rxjs/internal/observable/dom/ajax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajax.js","sources":["../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":";;AAAA,mDAAwE;AAiF3D,QAAA,IAAI,GAAuB,CAAC,cAAM,OAAA,+BAAc,CAAC,MAAM,EAArB,CAAqB,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/dom/fetch.d.ts b/node_modules/rxjs/internal/observable/dom/fetch.d.ts
deleted file mode 100644
index 9713f42..0000000
--- a/node_modules/rxjs/internal/observable/dom/fetch.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Observable } from '../../Observable';
-/**
- * Uses [the Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to
- * make an HTTP request.
- *
- * **WARNING** Parts of the fetch API are still experimental. `AbortController` is
- * required for this implementation to work and use cancellation appropriately.
- *
- * Will automatically set up an internal [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)
- * in order to teardown the internal `fetch` when the subscription tears down.
- *
- * If a `signal` is provided via the `init` argument, it will behave like it usually does with
- * `fetch`. If the provided `signal` aborts, the error that `fetch` normally rejects with
- * in that scenario will be emitted as an error from the observable.
- *
- * ### Basic Use
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { fromFetch } from 'rxjs/fetch';
- * import { switchMap, catchError } from 'rxjs/operators';
- *
- * const data$ = fromFetch('https://api.github.com/users?per_page=5').pipe(
- *  switchMap(response => {
- *    if (response.ok) {
- *      // OK return data
- *      return response.json();
- *    } else {
- *      // Server is returning a status requiring the client to try something else.
- *      return of({ error: true, message: `Error ${response.status}` });
- *    }
- *  }),
- *  catchError(err => {
- *    // Network or other error, handle appropriately
- *    console.error(err);
- *    return of({ error: true, message: err.message })
- *  })
- * );
- *
- * data$.subscribe({
- *  next: result => console.log(result),
- *  complete: () => console.log('done')
- * })
- * ```
- *
- * @param input The resource you would like to fetch. Can be a url or a request object.
- * @param init A configuration object for the fetch.
- * [See MDN for more details](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
- * @returns An Observable, that when subscribed to performs an HTTP request using the native `fetch`
- * function. The {@link Subscription} is tied to an `AbortController` for the the fetch.
- */
-export declare function fromFetch(input: string | Request, init?: RequestInit): Observable<Response>;
diff --git a/node_modules/rxjs/internal/observable/dom/fetch.js b/node_modules/rxjs/internal/observable/dom/fetch.js
deleted file mode 100644
index 4a5b258..0000000
--- a/node_modules/rxjs/internal/observable/dom/fetch.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-var __assign = (this && this.__assign) || function () {
-    __assign = Object.assign || function(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-                t[p] = s[p];
-        }
-        return t;
-    };
-    return __assign.apply(this, arguments);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../../Observable");
-function fromFetch(input, init) {
-    return new Observable_1.Observable(function (subscriber) {
-        var controller = new AbortController();
-        var signal = controller.signal;
-        var outerSignalHandler;
-        var abortable = true;
-        var unsubscribed = false;
-        if (init) {
-            if (init.signal) {
-                if (init.signal.aborted) {
-                    controller.abort();
-                }
-                else {
-                    outerSignalHandler = function () {
-                        if (!signal.aborted) {
-                            controller.abort();
-                        }
-                    };
-                    init.signal.addEventListener('abort', outerSignalHandler);
-                }
-            }
-            init = __assign({}, init, { signal: signal });
-        }
-        else {
-            init = { signal: signal };
-        }
-        fetch(input, init).then(function (response) {
-            abortable = false;
-            subscriber.next(response);
-            subscriber.complete();
-        }).catch(function (err) {
-            abortable = false;
-            if (!unsubscribed) {
-                subscriber.error(err);
-            }
-        });
-        return function () {
-            unsubscribed = true;
-            if (abortable) {
-                controller.abort();
-            }
-        };
-    });
-}
-exports.fromFetch = fromFetch;
-//# sourceMappingURL=fetch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/dom/fetch.js.map b/node_modules/rxjs/internal/observable/dom/fetch.js.map
deleted file mode 100644
index 2263a1e..0000000
--- a/node_modules/rxjs/internal/observable/dom/fetch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fetch.js","sources":["../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAA8C;AAoD9C,SAAgB,SAAS,CAAC,KAAuB,EAAE,IAAkB;IACnE,OAAO,IAAI,uBAAU,CAAW,UAAA,UAAU;QACxC,IAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,kBAA8B,CAAC;QACnC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,kBAAkB,GAAG;wBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;iBAC3D;aACF;YACD,IAAI,gBAAQ,IAAI,IAAE,MAAM,QAAA,GAAE,CAAC;SAC5B;aAAM;YACL,IAAI,GAAG,EAAE,MAAM,QAAA,EAAE,CAAC;SACnB;QAED,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ;YAC9B,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG;YACV,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA9CD,8BA8CC"}
diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.d.ts b/node_modules/rxjs/internal/observable/dom/webSocket.d.ts
deleted file mode 100644
index e78db13..0000000
--- a/node_modules/rxjs/internal/observable/dom/webSocket.d.ts
+++ /dev/null
@@ -1,153 +0,0 @@
-import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject';
-/**
- * Wrapper around the w3c-compatible WebSocket object provided by the browser.
- *
- * <span class="informal">{@link Subject} that communicates with a server via WebSocket</span>
- *
- * `webSocket` is a factory function that produces a `WebSocketSubject`,
- * which can be used to make WebSocket connection with an arbitrary endpoint.
- * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an
- * {@link WebSocketSubjectConfig} object for providing additional configuration, as
- * well as Observers for tracking lifecycle of WebSocket connection.
- *
- * When `WebSocketSubject` is subscribed, it attempts to make a socket connection,
- * unless there is one made already. This means that many subscribers will always listen
- * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`,
- * even if these two were provided with the same url, they will attempt to make separate
- * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed,
- * only if there are no more subscribers still listening. If after some time a consumer starts
- * subscribing again, connection is reestablished.
- *
- * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that
- * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you
- * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector`
- * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without
- * any errors. If at any point (starting, maintaining or closing a connection) there is an error,
- * stream will also error with whatever WebSocket API has thrown.
- *
- * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order
- * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind
- * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand,
- * before calling `next` with a result. Note also that if at the moment of nexting value
- * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection
- * is finally established. `complete` method closes socket connection. `error` does the same,
- * as well as notifying the server that something went wrong via status code and string with details of what happened.
- * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`,
- * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code`
- * property with status code number and optional `reason` property with string describing details
- * of an error.
- *
- * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no
- * information that something was sent to the server (unless of course the server
- * responds somehow to a message). On the other hand, since calling `complete` triggers
- * an attempt to close socket connection. If that connection is closed without any errors, stream will
- * complete, thus notifying all subscribers. And since calling `error` closes
- * socket connection as well, just with a different status code for the server, if closing itself proceeds
- * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases
- * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream
- * will error.
- *
- * **Multiplexing**
- *
- * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is
- * used to simulate opening several socket connections, while in reality maintaining only one.
- * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions,
- * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket
- * endpoints, running on separate machines with only GUI combining them together. Having a socket connection
- * for each functionality could become too resource expensive. It is a common pattern to have single
- * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services).
- * Even though there is a single connection in a client app, having the ability to manipulate streams as if it
- * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for
- * given service and filter out messages of interest. This is exactly what `multiplex` method is for.
- *
- * Method accepts three parameters. First two are functions returning subscription and unsubscription messages
- * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable
- * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop
- * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier,
- * gateway server can decide that it should connect to real sport news service and start forwarding messages from it.
- * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just
- * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and
- * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server
- * might stop sending messages, since it got unsubscription message. This needs to be handled
- * on the server or using {@link publish} on a Observable returned from 'multiplex'.
- *
- * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages
- * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these
- * messages with some kind of string identifier on a message object and `messageFilter` would return `true`
- * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped,
- * and are not passed down the stream.
- *
- * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this
- * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the
- * server, use root `WebSocketSubject`.
- *
- * ### Examples
- * #### Listening for messages from the server
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket("ws://localhost:8081");
- *
- * subject.subscribe(
- *    msg => console.log('message received: ' + msg), // Called whenever there is a message from the server.
- *    err => console.log(err), // Called if at any point WebSocket API signals some kind of error.
- *    () => console.log('complete') // Called when connection is closed (for whatever reason).
- *  );
- * ```
- *
- * #### Pushing messages to the server
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket('ws://localhost:8081');
- *
- * subject.subscribe();
- * // Note that at least one consumer has to subscribe to the created subject - otherwise "nexted" values will be just buffered and not sent,
- * // since no connection was established!
- *
- * subject.next({message: 'some message'});
- * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default!
- *
- * subject.complete(); // Closes the connection.
- *
- * subject.error({code: 4000, reason: 'I think our app just broke!'});
- * // Also closes the connection, but let's the server know that this closing is caused by some error.
- * ```
- *
- * #### Multiplexing WebSocket
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket('ws://localhost:8081');
- *
- * const observableA = subject.multiplex(
- *   () => ({subscribe: 'A'}), // When server gets this message, it will start sending messages for 'A'...
- *   () => ({unsubscribe: 'A'}), // ...and when gets this one, it will stop.
- *   message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false.
- * );
- *
- * const observableB = subject.multiplex( // And the same goes for 'B'.
- *   () => ({subscribe: 'B'}),
- *   () => ({unsubscribe: 'B'}),
- *   message => message.type === 'B'
- * );
- *
- * const subA = observableA.subscribe(messageForA => console.log(messageForA));
- * // At this moment WebSocket connection is established. Server gets '{"subscribe": "A"}' message and starts sending messages for 'A',
- * // which we log here.
- *
- * const subB = observableB.subscribe(messageForB => console.log(messageForB));
- * // Since we already have a connection, we just send '{"subscribe": "B"}' message to the server. It starts sending messages for 'B',
- * // which we log here.
- *
- * subB.unsubscribe();
- * // Message '{"unsubscribe": "B"}' is sent to the server, which stops sending 'B' messages.
- *
- * subA.unsubscribe();
- * // Message '{"unsubscribe": "A"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject,
- * // socket connection closes.
- * ```
- *
- *
- * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with
- * configuration and additional Observers.
- * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection.
- */
-export declare function webSocket<T>(urlConfigOrSource: string | WebSocketSubjectConfig<T>): WebSocketSubject<T>;
diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.js b/node_modules/rxjs/internal/observable/dom/webSocket.js
deleted file mode 100644
index 714cf95..0000000
--- a/node_modules/rxjs/internal/observable/dom/webSocket.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var WebSocketSubject_1 = require("./WebSocketSubject");
-function webSocket(urlConfigOrSource) {
-    return new WebSocketSubject_1.WebSocketSubject(urlConfigOrSource);
-}
-exports.webSocket = webSocket;
-//# sourceMappingURL=webSocket.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/internal/observable/dom/webSocket.js.map
deleted file mode 100644
index 1d0f249..0000000
--- a/node_modules/rxjs/internal/observable/dom/webSocket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"webSocket.js","sources":["../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":";;AAAA,uDAA8E;AAyJ9E,SAAgB,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,mCAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC;AAFD,8BAEC"}
diff --git a/node_modules/rxjs/internal/observable/empty.d.ts b/node_modules/rxjs/internal/observable/empty.d.ts
deleted file mode 100644
index 0a370e9..0000000
--- a/node_modules/rxjs/internal/observable/empty.d.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-/**
- * The same Observable instance returned by any call to {@link empty} without a
- * `scheduler`. It is preferrable to use this over `empty()`.
- */
-export declare const EMPTY: Observable<never>;
-/**
- * Creates an Observable that emits no items to the Observer and immediately
- * emits a complete notification.
- *
- * <span class="informal">Just emits 'complete', and nothing else.
- * </span>
- *
- * ![](empty.png)
- *
- * This static operator is useful for creating a simple Observable that only
- * emits the complete notification. It can be used for composing with other
- * Observables, such as in a {@link mergeMap}.
- *
- * ## Examples
- * ### Emit the number 7, then complete
- * ```ts
- * import { empty } from 'rxjs';
- * import { startWith } from 'rxjs/operators';
- *
- * const result = empty().pipe(startWith(7));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'
- * ```ts
- * import { empty, interval, of } from 'rxjs';
- * import { mergeMap } from 'rxjs/operators';
- *
- * const interval$ = interval(1000);
- * const result = interval$.pipe(
- *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),
- * );
- * result.subscribe(x => console.log(x));
- *
- * // Results in the following to the console:
- * // x is equal to the count on the interval eg(0,1,2,3,...)
- * // x will occur every 1000ms
- * // if x % 2 is equal to 1 print abc
- * // if x % 2 is not equal to 1 nothing will be output
- * ```
- *
- * @see {@link Observable}
- * @see {@link never}
- * @see {@link of}
- * @see {@link throwError}
- *
- * @param scheduler A {@link SchedulerLike} to use for scheduling
- * the emission of the complete notification.
- * @return An "empty" Observable: emits only the complete
- * notification.
- * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)
- */
-export declare function empty(scheduler?: SchedulerLike): Observable<never>;
diff --git a/node_modules/rxjs/internal/observable/empty.js b/node_modules/rxjs/internal/observable/empty.js
deleted file mode 100644
index cfa90b6..0000000
--- a/node_modules/rxjs/internal/observable/empty.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-exports.EMPTY = new Observable_1.Observable(function (subscriber) { return subscriber.complete(); });
-function empty(scheduler) {
-    return scheduler ? emptyScheduled(scheduler) : exports.EMPTY;
-}
-exports.empty = empty;
-function emptyScheduled(scheduler) {
-    return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
-}
-//# sourceMappingURL=empty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/empty.js.map b/node_modules/rxjs/internal/observable/empty.js.map
deleted file mode 100644
index 7192f67..0000000
--- a/node_modules/rxjs/internal/observable/empty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"empty.js","sources":["../../src/internal/observable/empty.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAO9B,QAAA,KAAK,GAAG,IAAI,uBAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC;AAsDhF,SAAgB,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC;AACvD,CAAC;AAFD,sBAEC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,uBAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,EAA/C,CAA+C,CAAC,CAAC;AAC9F,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/forkJoin.d.ts b/node_modules/rxjs/internal/observable/forkJoin.d.ts
deleted file mode 100644
index 176490a..0000000
--- a/node_modules/rxjs/internal/observable/forkJoin.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T>(v1: SubscribableOrPromise<T>): Observable<[T]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<[T, T2]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<[T, T2, T3]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<[T, T2, T3, T4]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<[T, T2, T3, T4, T5]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<[T, T2, T3, T4, T5, T6]>;
-export declare function forkJoin<A>(sources: [ObservableInput<A>]): Observable<[A]>;
-export declare function forkJoin<A, B>(sources: [ObservableInput<A>, ObservableInput<B>]): Observable<[A, B]>;
-export declare function forkJoin<A, B, C>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<[A, B, C]>;
-export declare function forkJoin<A, B, C, D>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<[A, B, C, D]>;
-export declare function forkJoin<A, B, C, D, E>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<[A, B, C, D, E]>;
-export declare function forkJoin<A, B, C, D, E, F>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>, ObservableInput<F>]): Observable<[A, B, C, D, E, F]>;
-export declare function forkJoin<A extends ObservableInput<any>[]>(sources: A): Observable<ObservedValuesFromArray<A>[]>;
-export declare function forkJoin(sourcesObject: {}): Observable<never>;
-export declare function forkJoin<T, K extends keyof T>(sourcesObject: T): Observable<{
-    [K in keyof T]: ObservedValueOf<T[K]>;
-}>;
-/** @deprecated resultSelector is deprecated, pipe to map instead */
-export declare function forkJoin(...args: Array<ObservableInput<any> | Function>): Observable<any>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export declare function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;
diff --git a/node_modules/rxjs/internal/observable/forkJoin.js b/node_modules/rxjs/internal/observable/forkJoin.js
deleted file mode 100644
index 40870ad..0000000
--- a/node_modules/rxjs/internal/observable/forkJoin.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var isArray_1 = require("../util/isArray");
-var map_1 = require("../operators/map");
-var isObject_1 = require("../util/isObject");
-var from_1 = require("./from");
-function forkJoin() {
-    var sources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        sources[_i] = arguments[_i];
-    }
-    if (sources.length === 1) {
-        var first_1 = sources[0];
-        if (isArray_1.isArray(first_1)) {
-            return forkJoinInternal(first_1, null);
-        }
-        if (isObject_1.isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {
-            var keys = Object.keys(first_1);
-            return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);
-        }
-    }
-    if (typeof sources[sources.length - 1] === 'function') {
-        var resultSelector_1 = sources.pop();
-        sources = (sources.length === 1 && isArray_1.isArray(sources[0])) ? sources[0] : sources;
-        return forkJoinInternal(sources, null).pipe(map_1.map(function (args) { return resultSelector_1.apply(void 0, args); }));
-    }
-    return forkJoinInternal(sources, null);
-}
-exports.forkJoin = forkJoin;
-function forkJoinInternal(sources, keys) {
-    return new Observable_1.Observable(function (subscriber) {
-        var len = sources.length;
-        if (len === 0) {
-            subscriber.complete();
-            return;
-        }
-        var values = new Array(len);
-        var completed = 0;
-        var emitted = 0;
-        var _loop_1 = function (i) {
-            var source = from_1.from(sources[i]);
-            var hasValue = false;
-            subscriber.add(source.subscribe({
-                next: function (value) {
-                    if (!hasValue) {
-                        hasValue = true;
-                        emitted++;
-                    }
-                    values[i] = value;
-                },
-                error: function (err) { return subscriber.error(err); },
-                complete: function () {
-                    completed++;
-                    if (completed === len || !hasValue) {
-                        if (emitted === len) {
-                            subscriber.next(keys ?
-                                keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :
-                                values);
-                        }
-                        subscriber.complete();
-                    }
-                }
-            }));
-        };
-        for (var i = 0; i < len; i++) {
-            _loop_1(i);
-        }
-    });
-}
-//# sourceMappingURL=forkJoin.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/forkJoin.js.map b/node_modules/rxjs/internal/observable/forkJoin.js.map
deleted file mode 100644
index 8d99a74..0000000
--- a/node_modules/rxjs/internal/observable/forkJoin.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forkJoin.js","sources":["../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/from.d.ts b/node_modules/rxjs/internal/observable/from.d.ts
deleted file mode 100644
index 8691d02..0000000
--- a/node_modules/rxjs/internal/observable/from.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-export declare function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;
-/** @deprecated use {@link scheduled} instead. */
-export declare function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike): Observable<ObservedValueOf<O>>;
diff --git a/node_modules/rxjs/internal/observable/from.js b/node_modules/rxjs/internal/observable/from.js
deleted file mode 100644
index 4f6069f..0000000
--- a/node_modules/rxjs/internal/observable/from.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var subscribeTo_1 = require("../util/subscribeTo");
-var scheduled_1 = require("../scheduled/scheduled");
-function from(input, scheduler) {
-    if (!scheduler) {
-        if (input instanceof Observable_1.Observable) {
-            return input;
-        }
-        return new Observable_1.Observable(subscribeTo_1.subscribeTo(input));
-    }
-    else {
-        return scheduled_1.scheduled(input, scheduler);
-    }
-}
-exports.from = from;
-//# sourceMappingURL=from.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/from.js.map b/node_modules/rxjs/internal/observable/from.js.map
deleted file mode 100644
index effad4d..0000000
--- a/node_modules/rxjs/internal/observable/from.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"from.js","sources":["../../src/internal/observable/from.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,mDAAkD;AAElD,oDAAmD;AAyGnD,SAAgB,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,uBAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,uBAAU,CAAI,yBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,qBAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC;AATD,oBASC"}
diff --git a/node_modules/rxjs/internal/observable/fromArray.d.ts b/node_modules/rxjs/internal/observable/fromArray.d.ts
deleted file mode 100644
index 76b4ffe..0000000
--- a/node_modules/rxjs/internal/observable/fromArray.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function fromArray<T>(input: ArrayLike<T>, scheduler?: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/fromArray.js b/node_modules/rxjs/internal/observable/fromArray.js
deleted file mode 100644
index 545e587..0000000
--- a/node_modules/rxjs/internal/observable/fromArray.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var subscribeToArray_1 = require("../util/subscribeToArray");
-var scheduleArray_1 = require("../scheduled/scheduleArray");
-function fromArray(input, scheduler) {
-    if (!scheduler) {
-        return new Observable_1.Observable(subscribeToArray_1.subscribeToArray(input));
-    }
-    else {
-        return scheduleArray_1.scheduleArray(input, scheduler);
-    }
-}
-exports.fromArray = fromArray;
-//# sourceMappingURL=fromArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/fromArray.js.map b/node_modules/rxjs/internal/observable/fromArray.js.map
deleted file mode 100644
index a1dde84..0000000
--- a/node_modules/rxjs/internal/observable/fromArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromArray.js","sources":["../../src/internal/observable/fromArray.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,6DAA4D;AAC5D,4DAA2D;AAE3D,SAAgB,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,mCAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,6BAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC;AAND,8BAMC"}
diff --git a/node_modules/rxjs/internal/observable/fromEvent.d.ts b/node_modules/rxjs/internal/observable/fromEvent.d.ts
deleted file mode 100644
index a093358..0000000
--- a/node_modules/rxjs/internal/observable/fromEvent.d.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Observable } from '../Observable';
-export interface NodeStyleEventEmitter {
-    addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;
-    removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;
-}
-export declare type NodeEventHandler = (...args: any[]) => void;
-export interface NodeCompatibleEventEmitter {
-    addListener: (eventName: string, handler: NodeEventHandler) => void | {};
-    removeListener: (eventName: string, handler: NodeEventHandler) => void | {};
-}
-export interface JQueryStyleEventEmitter {
-    on: (eventName: string, handler: Function) => void;
-    off: (eventName: string, handler: Function) => void;
-}
-export interface HasEventTargetAddRemove<E> {
-    addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;
-    removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;
-}
-export declare type EventTargetLike<T> = HasEventTargetAddRemove<T> | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;
-export declare type FromEventTarget<T> = EventTargetLike<T> | ArrayLike<EventTargetLike<T>>;
-export interface EventListenerOptions {
-    capture?: boolean;
-    passive?: boolean;
-    once?: boolean;
-}
-export interface AddEventListenerOptions extends EventListenerOptions {
-    once?: boolean;
-    passive?: boolean;
-}
-export declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, resultSelector: (...args: any[]) => T): Observable<T>;
-export declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/fromEvent.js b/node_modules/rxjs/internal/observable/fromEvent.js
deleted file mode 100644
index 5355c43..0000000
--- a/node_modules/rxjs/internal/observable/fromEvent.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var isArray_1 = require("../util/isArray");
-var isFunction_1 = require("../util/isFunction");
-var map_1 = require("../operators/map");
-var toString = (function () { return Object.prototype.toString; })();
-function fromEvent(target, eventName, options, resultSelector) {
-    if (isFunction_1.isFunction(options)) {
-        resultSelector = options;
-        options = undefined;
-    }
-    if (resultSelector) {
-        return fromEvent(target, eventName, options).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        function handler(e) {
-            if (arguments.length > 1) {
-                subscriber.next(Array.prototype.slice.call(arguments));
-            }
-            else {
-                subscriber.next(e);
-            }
-        }
-        setupSubscription(target, eventName, handler, subscriber, options);
-    });
-}
-exports.fromEvent = fromEvent;
-function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
-    var unsubscribe;
-    if (isEventTarget(sourceObj)) {
-        var source_1 = sourceObj;
-        sourceObj.addEventListener(eventName, handler, options);
-        unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };
-    }
-    else if (isJQueryStyleEventEmitter(sourceObj)) {
-        var source_2 = sourceObj;
-        sourceObj.on(eventName, handler);
-        unsubscribe = function () { return source_2.off(eventName, handler); };
-    }
-    else if (isNodeStyleEventEmitter(sourceObj)) {
-        var source_3 = sourceObj;
-        sourceObj.addListener(eventName, handler);
-        unsubscribe = function () { return source_3.removeListener(eventName, handler); };
-    }
-    else if (sourceObj && sourceObj.length) {
-        for (var i = 0, len = sourceObj.length; i < len; i++) {
-            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
-        }
-    }
-    else {
-        throw new TypeError('Invalid event target');
-    }
-    subscriber.add(unsubscribe);
-}
-function isNodeStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
-}
-function isJQueryStyleEventEmitter(sourceObj) {
-    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
-}
-function isEventTarget(sourceObj) {
-    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
-}
-//# sourceMappingURL=fromEvent.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/fromEvent.js.map b/node_modules/rxjs/internal/observable/fromEvent.js.map
deleted file mode 100644
index 9e948ef..0000000
--- a/node_modules/rxjs/internal/observable/fromEvent.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEvent.js","sources":["../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.d.ts b/node_modules/rxjs/internal/observable/fromEventPattern.d.ts
deleted file mode 100644
index e8b8247..0000000
--- a/node_modules/rxjs/internal/observable/fromEventPattern.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-import { NodeEventHandler } from './fromEvent';
-export declare function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export declare function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.js b/node_modules/rxjs/internal/observable/fromEventPattern.js
deleted file mode 100644
index 6cb21b1..0000000
--- a/node_modules/rxjs/internal/observable/fromEventPattern.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var isArray_1 = require("../util/isArray");
-var isFunction_1 = require("../util/isFunction");
-var map_1 = require("../operators/map");
-function fromEventPattern(addHandler, removeHandler, resultSelector) {
-    if (resultSelector) {
-        return fromEventPattern(addHandler, removeHandler).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        var handler = function () {
-            var e = [];
-            for (var _i = 0; _i < arguments.length; _i++) {
-                e[_i] = arguments[_i];
-            }
-            return subscriber.next(e.length === 1 ? e[0] : e);
-        };
-        var retValue;
-        try {
-            retValue = addHandler(handler);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!isFunction_1.isFunction(removeHandler)) {
-            return undefined;
-        }
-        return function () { return removeHandler(handler, retValue); };
-    });
-}
-exports.fromEventPattern = fromEventPattern;
-//# sourceMappingURL=fromEventPattern.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/internal/observable/fromEventPattern.js.map
deleted file mode 100644
index f49bcb0..0000000
--- a/node_modules/rxjs/internal/observable/fromEventPattern.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEventPattern.js","sources":["../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,2CAA0C;AAC1C,iDAAgD;AAEhD,wCAAuC;AAwIvC,SAAgB,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,SAAG,CAAC,UAAA,IAAI,IAAI,OAAA,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,eAAI,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAA9D,CAA8D,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,uBAAU,CAAU,UAAA,UAAU;QACvC,IAAM,OAAO,GAAG;YAAC,WAAS;iBAAT,UAAS,EAAT,qBAAS,EAAT,IAAS;gBAAT,sBAAS;;YAAK,OAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAA1C,CAA0C,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,cAAM,OAAA,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAhC,CAAgC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,4CA4BC"}
diff --git a/node_modules/rxjs/internal/observable/fromIterable.d.ts b/node_modules/rxjs/internal/observable/fromIterable.d.ts
deleted file mode 100644
index f36d19a..0000000
--- a/node_modules/rxjs/internal/observable/fromIterable.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function fromIterable<T>(input: Iterable<T>, scheduler?: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/fromIterable.js b/node_modules/rxjs/internal/observable/fromIterable.js
deleted file mode 100644
index 8d319a4..0000000
--- a/node_modules/rxjs/internal/observable/fromIterable.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var subscribeToIterable_1 = require("../util/subscribeToIterable");
-var scheduleIterable_1 = require("../scheduled/scheduleIterable");
-function fromIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    if (!scheduler) {
-        return new Observable_1.Observable(subscribeToIterable_1.subscribeToIterable(input));
-    }
-    else {
-        return scheduleIterable_1.scheduleIterable(input, scheduler);
-    }
-}
-exports.fromIterable = fromIterable;
-//# sourceMappingURL=fromIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/fromIterable.js.map b/node_modules/rxjs/internal/observable/fromIterable.js.map
deleted file mode 100644
index 59e88a4..0000000
--- a/node_modules/rxjs/internal/observable/fromIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromIterable.js","sources":["../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,mEAAkE;AAClE,kEAAiE;AAEjE,SAAgB,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,yCAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,mCAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC;AATD,oCASC"}
diff --git a/node_modules/rxjs/internal/observable/fromPromise.d.ts b/node_modules/rxjs/internal/observable/fromPromise.d.ts
deleted file mode 100644
index 2220b09..0000000
--- a/node_modules/rxjs/internal/observable/fromPromise.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function fromPromise<T>(input: PromiseLike<T>, scheduler?: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/fromPromise.js b/node_modules/rxjs/internal/observable/fromPromise.js
deleted file mode 100644
index 2d15d4c..0000000
--- a/node_modules/rxjs/internal/observable/fromPromise.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var subscribeToPromise_1 = require("../util/subscribeToPromise");
-var schedulePromise_1 = require("../scheduled/schedulePromise");
-function fromPromise(input, scheduler) {
-    if (!scheduler) {
-        return new Observable_1.Observable(subscribeToPromise_1.subscribeToPromise(input));
-    }
-    else {
-        return schedulePromise_1.schedulePromise(input, scheduler);
-    }
-}
-exports.fromPromise = fromPromise;
-//# sourceMappingURL=fromPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/fromPromise.js.map b/node_modules/rxjs/internal/observable/fromPromise.js.map
deleted file mode 100644
index c4a2fdf..0000000
--- a/node_modules/rxjs/internal/observable/fromPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromPromise.js","sources":["../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,iEAAgE;AAChE,gEAA+D;AAE/D,SAAgB,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC;AAND,kCAMC"}
diff --git a/node_modules/rxjs/internal/observable/generate.d.ts b/node_modules/rxjs/internal/observable/generate.d.ts
deleted file mode 100644
index 301c39d..0000000
--- a/node_modules/rxjs/internal/observable/generate.d.ts
+++ /dev/null
@@ -1,231 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare type ConditionFunc<S> = (state: S) => boolean;
-export declare type IterateFunc<S> = (state: S) => S;
-export declare type ResultFunc<S, T> = (state: S) => T;
-export interface GenerateBaseOptions<S> {
-    /**
-     * Initial state.
-     */
-    initialState: S;
-    /**
-     * Condition function that accepts state and returns boolean.
-     * When it returns false, the generator stops.
-     * If not specified, a generator never stops.
-     */
-    condition?: ConditionFunc<S>;
-    /**
-     * Iterate function that accepts state and returns new state.
-     */
-    iterate: IterateFunc<S>;
-    /**
-     * SchedulerLike to use for generation process.
-     * By default, a generator starts immediately.
-     */
-    scheduler?: SchedulerLike;
-}
-export interface GenerateOptions<T, S> extends GenerateBaseOptions<S> {
-    /**
-     * Result selection function that accepts state and returns a value to emit.
-     */
-    resultSelector: ResultFunc<S, T>;
-}
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate(0, x => x < 10, x => x + 1, x => x);
- *
- * @example <caption>Using asap scheduler, produces sequence of 2, 3, 5, then completes.</caption>
- * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {S} initialState Initial state.
- * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).
- * @param {function (state: S): S} iterate Iteration step function.
- * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.
- * @returns {Observable<T>} The generated sequence.
- */
-export declare function generate<T, S>(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, resultSelector: ResultFunc<S, T>, scheduler?: SchedulerLike): Observable<T>;
-/**
- * Generates an Observable by running a state-driven loop
- * that emits an element on each iteration.
- *
- * <span class="informal">Use it instead of nexting values in a for loop.</span>
- *
- * <img src="./img/generate.png" width="100%">
- *
- * `generate` allows you to create stream of values generated with a loop very similar to
- * traditional for loop. First argument of `generate` is a beginning value. Second argument
- * is a function that accepts this value and tests if some condition still holds. If it does,
- * loop continues, if not, it stops. Third value is a function which takes previously defined
- * value and modifies it in some way on each iteration. Note how these three parameters
- * are direct equivalents of three expressions in regular for loop: first expression
- * initializes some state (for example numeric index), second tests if loop can make next
- * iteration (for example if index is lower than 10) and third states how defined value
- * will be modified on every step (index will be incremented by one).
- *
- * Return value of a `generate` operator is an Observable that on each loop iteration
- * emits a value. First, condition function is ran. If it returned true, Observable
- * emits currently stored value (initial value at the first iteration) and then updates
- * that value with iterate function. If at some point condition returned false, Observable
- * completes at that moment.
- *
- * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you
- * to immediately map value that would normally be emitted by an Observable.
- *
- * If you find three anonymous functions in `generate` call hard to read, you can provide
- * single object to the operator instead. That object has properties: `initialState`,
- * `condition`, `iterate` and `resultSelector`, which should have respective values that you
- * would normally pass to `generate`. `resultSelector` is still optional, but that form
- * of calling `generate` allows you to omit `condition` as well. If you omit it, that means
- * condition always holds, so output Observable will never complete.
- *
- * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,
- * scheduler simply comes as a last argument (no matter if there is resultSelector
- * function or not). In case of single-parameter call, you can provide it as a
- * `scheduler` property on object passed to the operator. In both cases scheduler decides when
- * next iteration of the loop will happen and therefore when next value will be emitted
- * by the Observable. For example to ensure that each value is pushed to the observer
- * on separate task in event loop, you could use `async` scheduler. Note that
- * by default (when no scheduler is passed) values are simply emitted synchronously.
- *
- *
- * @example <caption>Use with condition and iterate functions.</caption>
- * const generated = generate(0, x => x < 3, x => x + 1);
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1
- * // 2
- * // "Yo!"
- *
- *
- * @example <caption>Use with condition, iterate and resultSelector functions.</caption>
- * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // "Yo!"
- *
- *
- * @example <caption>Use with options object.</caption>
- * const generated = generate({
- *   initialState: 0,
- *   condition(value) { return value < 3; },
- *   iterate(value) { return value + 1; },
- *   resultSelector(value) { return value * 1000; }
- * });
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // "Yo!"
- *
- * @example <caption>Use options object without condition function.</caption>
- * const generated = generate({
- *   initialState: 0,
- *   iterate(value) { return value + 1; },
- *   resultSelector(value) { return value * 1000; }
- * });
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!') // This will never run.
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // 3000
- * // ...and never stops.
- *
- *
- * @see {@link from}
- * @see {@link index/Observable.create}
- *
- * @param {S} initialState Initial state.
- * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).
- * @param {function (state: S): S} iterate Iteration step function.
- * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.
- * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.
- * @return {Observable<T>} The generated sequence.
- */
-export declare function generate<S>(initialState: S, condition: ConditionFunc<S>, iterate: IterateFunc<S>, scheduler?: SchedulerLike): Observable<S>;
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- * The overload accepts options object that might contain initial state, iterate,
- * condition and scheduler.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate({
- *   initialState: 0,
- *   condition: x => x < 10,
- *   iterate: x => x + 1,
- * });
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {GenerateBaseOptions<S>} options Object that must contain initialState, iterate and might contain condition and scheduler.
- * @returns {Observable<S>} The generated sequence.
- */
-export declare function generate<S>(options: GenerateBaseOptions<S>): Observable<S>;
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- * The overload accepts options object that might contain initial state, iterate,
- * condition, result selector and scheduler.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate({
- *   initialState: 0,
- *   condition: x => x < 10,
- *   iterate: x => x + 1,
- *   resultSelector: x => x,
- * });
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {GenerateOptions<T, S>} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.
- * @returns {Observable<T>} The generated sequence.
- */
-export declare function generate<T, S>(options: GenerateOptions<T, S>): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/generate.js b/node_modules/rxjs/internal/observable/generate.js
deleted file mode 100644
index 4aa193e..0000000
--- a/node_modules/rxjs/internal/observable/generate.js
+++ /dev/null
@@ -1,127 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var identity_1 = require("../util/identity");
-var isScheduler_1 = require("../util/isScheduler");
-function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
-    var resultSelector;
-    var initialState;
-    if (arguments.length == 1) {
-        var options = initialStateOrOptions;
-        initialState = options.initialState;
-        condition = options.condition;
-        iterate = options.iterate;
-        resultSelector = options.resultSelector || identity_1.identity;
-        scheduler = options.scheduler;
-    }
-    else if (resultSelectorOrObservable === undefined || isScheduler_1.isScheduler(resultSelectorOrObservable)) {
-        initialState = initialStateOrOptions;
-        resultSelector = identity_1.identity;
-        scheduler = resultSelectorOrObservable;
-    }
-    else {
-        initialState = initialStateOrOptions;
-        resultSelector = resultSelectorOrObservable;
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        var state = initialState;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                subscriber: subscriber,
-                iterate: iterate,
-                condition: condition,
-                resultSelector: resultSelector,
-                state: state
-            });
-        }
-        do {
-            if (condition) {
-                var conditionResult = void 0;
-                try {
-                    conditionResult = condition(state);
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return undefined;
-                }
-                if (!conditionResult) {
-                    subscriber.complete();
-                    break;
-                }
-            }
-            var value = void 0;
-            try {
-                value = resultSelector(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-            subscriber.next(value);
-            if (subscriber.closed) {
-                break;
-            }
-            try {
-                state = iterate(state);
-            }
-            catch (err) {
-                subscriber.error(err);
-                return undefined;
-            }
-        } while (true);
-        return undefined;
-    });
-}
-exports.generate = generate;
-function dispatch(state) {
-    var subscriber = state.subscriber, condition = state.condition;
-    if (subscriber.closed) {
-        return undefined;
-    }
-    if (state.needIterate) {
-        try {
-            state.state = state.iterate(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-    }
-    else {
-        state.needIterate = true;
-    }
-    if (condition) {
-        var conditionResult = void 0;
-        try {
-            conditionResult = condition(state.state);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        if (!conditionResult) {
-            subscriber.complete();
-            return undefined;
-        }
-        if (subscriber.closed) {
-            return undefined;
-        }
-    }
-    var value;
-    try {
-        value = state.resultSelector(state.state);
-    }
-    catch (err) {
-        subscriber.error(err);
-        return undefined;
-    }
-    if (subscriber.closed) {
-        return undefined;
-    }
-    subscriber.next(value);
-    if (subscriber.closed) {
-        return undefined;
-    }
-    return this.schedule(state);
-}
-//# sourceMappingURL=generate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/generate.js.map b/node_modules/rxjs/internal/observable/generate.js.map
deleted file mode 100644
index 9286ebf..0000000
--- a/node_modules/rxjs/internal/observable/generate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generate.js","sources":["../../src/internal/observable/generate.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/iif.d.ts b/node_modules/rxjs/internal/observable/iif.d.ts
deleted file mode 100644
index 2efbe10..0000000
--- a/node_modules/rxjs/internal/observable/iif.d.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Observable } from '../Observable';
-import { SubscribableOrPromise } from '../types';
-/**
- * Decides at subscription time which Observable will actually be subscribed.
- *
- * <span class="informal">`If` statement for Observables.</span>
- *
- * `iif` accepts a condition function and two Observables. When
- * an Observable returned by the operator is subscribed, condition function will be called.
- * Based on what boolean it returns at that moment, consumer will subscribe either to
- * the first Observable (if condition was true) or to the second (if condition was false). Condition
- * function may also not return anything - in that case condition will be evaluated as false and
- * second Observable will be subscribed.
- *
- * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that
- * was left undefined, resulting stream will simply complete immediately. That allows you to, rather
- * than controlling which Observable will be subscribed, decide at runtime if consumer should have access
- * to given Observable or not.
- *
- * If you have more complex logic that requires decision between more than two Observables, {@link defer}
- * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}
- * and exists only for convenience and readability reasons.
- *
- *
- * ## Examples
- * ### Change at runtime which Observable will be subscribed
- * ```ts
- * import { iif, of } from 'rxjs';
- *
- * let subscribeToFirst;
- * const firstOrSecond = iif(
- *   () => subscribeToFirst,
- *   of('first'),
- *   of('second'),
- * );
- *
- * subscribeToFirst = true;
- * firstOrSecond.subscribe(value => console.log(value));
- *
- * // Logs:
- * // "first"
- *
- * subscribeToFirst = false;
- * firstOrSecond.subscribe(value => console.log(value));
- *
- * // Logs:
- * // "second"
- *
- * ```
- *
- * ### Control an access to an Observable
- * ```ts
- * let accessGranted;
- * const observableIfYouHaveAccess = iif(
- *   () => accessGranted,
- *   of('It seems you have an access...'), // Note that only one Observable is passed to the operator.
- * );
- *
- * accessGranted = true;
- * observableIfYouHaveAccess.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('The end'),
- * );
- *
- * // Logs:
- * // "It seems you have an access..."
- * // "The end"
- *
- * accessGranted = false;
- * observableIfYouHaveAccess.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('The end'),
- * );
- *
- * // Logs:
- * // "The end"
- * ```
- *
- * @see {@link defer}
- *
- * @param {function(): boolean} condition Condition which Observable should be chosen.
- * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.
- * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.
- * @return {Observable} Either first or second Observable, depending on condition.
- * @static true
- * @name iif
- * @owner Observable
-*/
-export declare function iif<T = never, F = never>(condition: () => boolean, trueResult?: SubscribableOrPromise<T>, falseResult?: SubscribableOrPromise<F>): Observable<T | F>;
diff --git a/node_modules/rxjs/internal/observable/iif.js b/node_modules/rxjs/internal/observable/iif.js
deleted file mode 100644
index 48341d5..0000000
--- a/node_modules/rxjs/internal/observable/iif.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var defer_1 = require("./defer");
-var empty_1 = require("./empty");
-function iif(condition, trueResult, falseResult) {
-    if (trueResult === void 0) { trueResult = empty_1.EMPTY; }
-    if (falseResult === void 0) { falseResult = empty_1.EMPTY; }
-    return defer_1.defer(function () { return condition() ? trueResult : falseResult; });
-}
-exports.iif = iif;
-//# sourceMappingURL=iif.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/iif.js.map b/node_modules/rxjs/internal/observable/iif.js.map
deleted file mode 100644
index 0b39bff..0000000
--- a/node_modules/rxjs/internal/observable/iif.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iif.js","sources":["../../src/internal/observable/iif.ts"],"names":[],"mappings":";;AACA,iCAAgC;AAChC,iCAAgC;AA2FhC,SAAgB,GAAG,CACjB,SAAwB,EACxB,UAA4C,EAC5C,WAA6C;IAD7C,2BAAA,EAAA,aAAuC,aAAK;IAC5C,4BAAA,EAAA,cAAwC,aAAK;IAE7C,OAAO,aAAK,CAAC,cAAM,OAAA,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAtC,CAAsC,CAAC,CAAC;AAC7D,CAAC;AAND,kBAMC"}
diff --git a/node_modules/rxjs/internal/observable/interval.d.ts b/node_modules/rxjs/internal/observable/interval.d.ts
deleted file mode 100644
index 3881ab9..0000000
--- a/node_modules/rxjs/internal/observable/interval.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-/**
- * Creates an Observable that emits sequential numbers every specified
- * interval of time, on a specified {@link SchedulerLike}.
- *
- * <span class="informal">Emits incremental numbers periodically in time.
- * </span>
- *
- * ![](interval.png)
- *
- * `interval` returns an Observable that emits an infinite sequence of
- * ascending integers, with a constant interval of time of your choosing
- * between those emissions. The first emission is not sent immediately, but
- * only after the first period has passed. By default, this operator uses the
- * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any
- * {@link SchedulerLike} to it.
- *
- * ## Example
- * Emits ascending numbers, one every second (1000ms) up to the number 3
- * ```ts
- * import { interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const numbers = interval(1000);
- *
- * const takeFourNumbers = numbers.pipe(take(4));
- *
- * takeFourNumbers.subscribe(x => console.log('Next: ', x));
- *
- * // Logs:
- * // Next: 0
- * // Next: 1
- * // Next: 2
- * // Next: 3
- * ```
- *
- * @see {@link timer}
- * @see {@link delay}
- *
- * @param {number} [period=0] The interval size in milliseconds (by default)
- * or the time unit determined by the scheduler's clock.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling
- * the emission of values, and providing a notion of "time".
- * @return {Observable} An Observable that emits a sequential number each time
- * interval.
- * @static true
- * @name interval
- * @owner Observable
- */
-export declare function interval(period?: number, scheduler?: SchedulerLike): Observable<number>;
diff --git a/node_modules/rxjs/internal/observable/interval.js b/node_modules/rxjs/internal/observable/interval.js
deleted file mode 100644
index 7e8a836..0000000
--- a/node_modules/rxjs/internal/observable/interval.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var async_1 = require("../scheduler/async");
-var isNumeric_1 = require("../util/isNumeric");
-function interval(period, scheduler) {
-    if (period === void 0) { period = 0; }
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    if (!isNumeric_1.isNumeric(period) || period < 0) {
-        period = 0;
-    }
-    if (!scheduler || typeof scheduler.schedule !== 'function') {
-        scheduler = async_1.async;
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));
-        return subscriber;
-    });
-}
-exports.interval = interval;
-function dispatch(state) {
-    var subscriber = state.subscriber, counter = state.counter, period = state.period;
-    subscriber.next(counter);
-    this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);
-}
-//# sourceMappingURL=interval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/interval.js.map b/node_modules/rxjs/internal/observable/interval.js.map
deleted file mode 100644
index b0d3b87..0000000
--- a/node_modules/rxjs/internal/observable/interval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interval.js","sources":["../../src/internal/observable/interval.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,4CAA2C;AAE3C,+CAA8C;AAmD9C,SAAgB,QAAQ,CAAC,MAAU,EACV,SAAgC;IADhC,uBAAA,EAAA,UAAU;IACV,0BAAA,EAAA,YAA2B,aAAK;IACvD,IAAI,CAAC,qBAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,aAAK,CAAC;KACnB;IAED,OAAO,IAAI,uBAAU,CAAS,UAAA,UAAU;QACtC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,4BAgBC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAClE,IAAA,6BAAU,EAAE,uBAAO,EAAE,qBAAM,CAAW;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,QAAA,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/merge.d.ts b/node_modules/rxjs/internal/observable/merge.d.ts
deleted file mode 100644
index 14bf24e..0000000
--- a/node_modules/rxjs/internal/observable/merge.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike } from '../types';
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T>(v1: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T>(v1: ObservableInput<T>, concurrent: number, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export declare function merge<T>(v1: ObservableInput<T>): Observable<T>;
-export declare function merge<T>(v1: ObservableInput<T>, concurrent?: number): Observable<T>;
-export declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<T | T2>;
-export declare function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent?: number): Observable<T | T2>;
-export declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<T | T2 | T3>;
-export declare function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number): Observable<T | T2 | T3>;
-export declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<T | T2 | T3 | T4>;
-export declare function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number): Observable<T | T2 | T3 | T4>;
-export declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<T | T2 | T3 | T4 | T5>;
-export declare function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5>;
-export declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export declare function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export declare function merge<T>(...observables: (ObservableInput<T> | number)[]): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T>(...observables: (ObservableInput<T> | SchedulerLike | number)[]): Observable<T>;
-export declare function merge<T, R>(...observables: (ObservableInput<any> | number)[]): Observable<R>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export declare function merge<T, R>(...observables: (ObservableInput<any> | SchedulerLike | number)[]): Observable<R>;
diff --git a/node_modules/rxjs/internal/observable/merge.js b/node_modules/rxjs/internal/observable/merge.js
deleted file mode 100644
index 89d5e8e..0000000
--- a/node_modules/rxjs/internal/observable/merge.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var isScheduler_1 = require("../util/isScheduler");
-var mergeAll_1 = require("../operators/mergeAll");
-var fromArray_1 = require("./fromArray");
-function merge() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var concurrent = Number.POSITIVE_INFINITY;
-    var scheduler = null;
-    var last = observables[observables.length - 1];
-    if (isScheduler_1.isScheduler(last)) {
-        scheduler = observables.pop();
-        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
-            concurrent = observables.pop();
-        }
-    }
-    else if (typeof last === 'number') {
-        concurrent = observables.pop();
-    }
-    if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable_1.Observable) {
-        return observables[0];
-    }
-    return mergeAll_1.mergeAll(concurrent)(fromArray_1.fromArray(observables, scheduler));
-}
-exports.merge = merge;
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/merge.js.map b/node_modules/rxjs/internal/observable/merge.js.map
deleted file mode 100644
index bfd65e0..0000000
--- a/node_modules/rxjs/internal/observable/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../src/internal/observable/merge.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,mDAAkD;AAClD,kDAAiD;AACjD,yCAAwC;AAqHxC,SAAgB,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,yBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,uBAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,mBAAQ,CAAI,UAAU,CAAC,CAAC,qBAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC;AAlBD,sBAkBC"}
diff --git a/node_modules/rxjs/internal/observable/never.d.ts b/node_modules/rxjs/internal/observable/never.d.ts
deleted file mode 100644
index b080ec4..0000000
--- a/node_modules/rxjs/internal/observable/never.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Observable } from '../Observable';
-/**
- * An Observable that emits no items to the Observer and never completes.
- *
- * ![](never.png)
- *
- * A simple Observable that emits neither values nor errors nor the completion
- * notification. It can be used for testing purposes or for composing with other
- * Observables. Please note that by never emitting a complete notification, this
- * Observable keeps the subscription from being disposed automatically.
- * Subscriptions need to be manually disposed.
- *
- * ##  Example
- * ### Emit the number 7, then never emit anything else (not even complete)
- * ```ts
- * import { NEVER } from 'rxjs';
- * import { startWith } from 'rxjs/operators';
- *
- * function info() {
- *   console.log('Will not be called');
- * }
- * const result = NEVER.pipe(startWith(7));
- * result.subscribe(x => console.log(x), info, info);
- *
- * ```
- *
- * @see {@link Observable}
- * @see {@link index/EMPTY}
- * @see {@link of}
- * @see {@link throwError}
- */
-export declare const NEVER: Observable<never>;
-/**
- * @deprecated Deprecated in favor of using {@link NEVER} constant.
- */
-export declare function never(): Observable<never>;
diff --git a/node_modules/rxjs/internal/observable/never.js b/node_modules/rxjs/internal/observable/never.js
deleted file mode 100644
index 13e437c..0000000
--- a/node_modules/rxjs/internal/observable/never.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var noop_1 = require("../util/noop");
-exports.NEVER = new Observable_1.Observable(noop_1.noop);
-function never() {
-    return exports.NEVER;
-}
-exports.never = never;
-//# sourceMappingURL=never.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/never.js.map b/node_modules/rxjs/internal/observable/never.js.map
deleted file mode 100644
index 8c023d1..0000000
--- a/node_modules/rxjs/internal/observable/never.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"never.js","sources":["../../src/internal/observable/never.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,qCAAoC;AAgCvB,QAAA,KAAK,GAAG,IAAI,uBAAU,CAAQ,WAAI,CAAC,CAAC;AAKjD,SAAgB,KAAK;IACnB,OAAO,aAAK,CAAC;AACf,CAAC;AAFD,sBAEC"}
diff --git a/node_modules/rxjs/internal/observable/of.d.ts b/node_modules/rxjs/internal/observable/of.d.ts
deleted file mode 100644
index f3337db..0000000
--- a/node_modules/rxjs/internal/observable/of.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { SchedulerLike } from '../types';
-import { Observable } from '../Observable';
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
-export declare function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;
-export declare function of<T>(a: T): Observable<T>;
-export declare function of<T, T2>(a: T, b: T2): Observable<T | T2>;
-export declare function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;
-export declare function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;
-export declare function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;
-export declare function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export declare function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7): Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
-export declare function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
-export declare function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9): Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
-export declare function of<T>(...args: T[]): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/of.js b/node_modules/rxjs/internal/observable/of.js
deleted file mode 100644
index 05ab045..0000000
--- a/node_modules/rxjs/internal/observable/of.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isScheduler_1 = require("../util/isScheduler");
-var fromArray_1 = require("./fromArray");
-var scheduleArray_1 = require("../scheduled/scheduleArray");
-function of() {
-    var args = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        args[_i] = arguments[_i];
-    }
-    var scheduler = args[args.length - 1];
-    if (isScheduler_1.isScheduler(scheduler)) {
-        args.pop();
-        return scheduleArray_1.scheduleArray(args, scheduler);
-    }
-    else {
-        return fromArray_1.fromArray(args);
-    }
-}
-exports.of = of;
-//# sourceMappingURL=of.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/of.js.map b/node_modules/rxjs/internal/observable/of.js.map
deleted file mode 100644
index 5a30ddd..0000000
--- a/node_modules/rxjs/internal/observable/of.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"of.js","sources":["../../src/internal/observable/of.ts"],"names":[],"mappings":";;AACA,mDAAkD;AAClD,yCAAwC;AAExC,4DAA2D;AAiG3D,SAAgB,EAAE;IAAI,cAAiC;SAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;QAAjC,yBAAiC;;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,yBAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,6BAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,qBAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC;AARD,gBAQC"}
diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts
deleted file mode 100644
index 5b81cce..0000000
--- a/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput } from '../types';
-export declare function onErrorResumeNext<R>(v: ObservableInput<R>): Observable<R>;
-export declare function onErrorResumeNext<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;
-export declare function onErrorResumeNext<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;
-export declare function onErrorResumeNext<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;
-export declare function onErrorResumeNext<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;
-export declare function onErrorResumeNext<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-export declare function onErrorResumeNext<R>(array: ObservableInput<any>[]): Observable<R>;
diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/internal/observable/onErrorResumeNext.js
deleted file mode 100644
index 3eba9e2..0000000
--- a/node_modules/rxjs/internal/observable/onErrorResumeNext.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var from_1 = require("./from");
-var isArray_1 = require("../util/isArray");
-var empty_1 = require("./empty");
-function onErrorResumeNext() {
-    var sources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        sources[_i] = arguments[_i];
-    }
-    if (sources.length === 0) {
-        return empty_1.EMPTY;
-    }
-    var first = sources[0], remainder = sources.slice(1);
-    if (sources.length === 1 && isArray_1.isArray(first)) {
-        return onErrorResumeNext.apply(void 0, first);
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };
-        return from_1.from(first).subscribe({
-            next: function (value) { subscriber.next(value); },
-            error: subNext,
-            complete: subNext,
-        });
-    });
-}
-exports.onErrorResumeNext = onErrorResumeNext;
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map
deleted file mode 100644
index 9305eb6..0000000
--- a/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,2CAA0C;AAC1C,iCAAgC;AAwEhC,SAAgB,iBAAiB;IAAO,iBAEqD;SAFrD,UAEqD,EAFrD,qBAEqD,EAFrD,IAEqD;QAFrD,4BAEqD;;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,aAAK,CAAC;KACd;IAEO,IAAA,kBAAK,EAAE,4BAAY,CAAa;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,eAAI,KAAK,EAAE;KACpC;IAED,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,OAAO,GAAG,cAAM,OAAA,UAAU,CAAC,GAAG,CAClC,iBAAiB,eAAI,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CACtD,EAFqB,CAErB,CAAC;QAEF,OAAO,WAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,YAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAzBD,8CAyBC"}
diff --git a/node_modules/rxjs/internal/observable/pairs.d.ts b/node_modules/rxjs/internal/observable/pairs.d.ts
deleted file mode 100644
index 5e915e6..0000000
--- a/node_modules/rxjs/internal/observable/pairs.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-/**
- * Convert an object into an Observable of `[key, value]` pairs.
- *
- * <span class="informal">Turn entries of an object into a stream.</span>
- *
- * <img src="./img/pairs.png" width="100%">
- *
- * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each
- * emitted array has exactly two elements - the first is a key from the object
- * and the second is a value corresponding to that key. Keys are extracted from
- * an object via `Object.keys` function, which means that they will be only
- * enumerable keys that are present on an object directly - not ones inherited
- * via prototype chain.
- *
- * By default these arrays are emitted synchronously. To change that you can
- * pass a {@link SchedulerLike} as a second argument to `pairs`.
- *
- * @example <caption>Converts a javascript object to an Observable</caption>
- * ```ts
- * import { pairs } from 'rxjs';
- *
- * const obj = {
- *   foo: 42,
- *   bar: 56,
- *   baz: 78
- * };
- *
- * pairs(obj)
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('the end!')
- * );
- *
- * // Logs:
- * // ["foo", 42],
- * // ["bar", 56],
- * // ["baz", 78],
- * // "the end!"
- * ```
- *
- * @param {Object} obj The object to inspect and turn into an
- * Observable sequence.
- * @param {Scheduler} [scheduler] An optional IScheduler to schedule
- * when resulting Observable will emit values.
- * @returns {(Observable<Array<string|T>>)} An observable sequence of
- * [key, value] pairs from the object.
- */
-export declare function pairs<T>(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]>;
-/** @internal */
-export declare function dispatch<T>(this: SchedulerAction<any>, state: {
-    keys: string[];
-    index: number;
-    subscriber: Subscriber<[string, T]>;
-    subscription: Subscription;
-    obj: Object;
-}): void;
diff --git a/node_modules/rxjs/internal/observable/pairs.js b/node_modules/rxjs/internal/observable/pairs.js
deleted file mode 100644
index 10037fe..0000000
--- a/node_modules/rxjs/internal/observable/pairs.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-function pairs(obj, scheduler) {
-    if (!scheduler) {
-        return new Observable_1.Observable(function (subscriber) {
-            var keys = Object.keys(obj);
-            for (var i = 0; i < keys.length && !subscriber.closed; i++) {
-                var key = keys[i];
-                if (obj.hasOwnProperty(key)) {
-                    subscriber.next([key, obj[key]]);
-                }
-            }
-            subscriber.complete();
-        });
-    }
-    else {
-        return new Observable_1.Observable(function (subscriber) {
-            var keys = Object.keys(obj);
-            var subscription = new Subscription_1.Subscription();
-            subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));
-            return subscription;
-        });
-    }
-}
-exports.pairs = pairs;
-function dispatch(state) {
-    var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;
-    if (!subscriber.closed) {
-        if (index < keys.length) {
-            var key = keys[index];
-            subscriber.next([key, obj[key]]);
-            subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));
-        }
-        else {
-            subscriber.complete();
-        }
-    }
-}
-exports.dispatch = dispatch;
-//# sourceMappingURL=pairs.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/pairs.js.map b/node_modules/rxjs/internal/observable/pairs.js.map
deleted file mode 100644
index 12065a4..0000000
--- a/node_modules/rxjs/internal/observable/pairs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairs.js","sources":["../../src/internal/observable/pairs.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAG3C,gDAA+C;AAkD/C,SAAgB,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,uBAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAtBD,sBAsBC;AAGD,SAAgB,QAAQ,CACI,KAAsH;IACxI,IAAA,iBAAI,EAAE,mBAAK,EAAE,6BAAU,EAAE,iCAAY,EAAE,eAAG,CAAW;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC;AAZD,4BAYC"}
diff --git a/node_modules/rxjs/internal/observable/partition.d.ts b/node_modules/rxjs/internal/observable/partition.d.ts
deleted file mode 100644
index e750027..0000000
--- a/node_modules/rxjs/internal/observable/partition.d.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { ObservableInput } from '../types';
-import { Observable } from '../Observable';
-/**
- * Splits the source Observable into two, one with values that satisfy a
- * predicate, and another with values that don't satisfy the predicate.
- *
- * <span class="informal">It's like {@link filter}, but returns two Observables:
- * one like the output of {@link filter}, and the other with values that did not
- * pass the condition.</span>
- *
- * ![](partition.png)
- *
- * `partition` outputs an array with two Observables that partition the values
- * from the source Observable through the given `predicate` function. The first
- * Observable in that array emits source values for which the predicate argument
- * returns true. The second Observable emits source values for which the
- * predicate returns false. The first behaves like {@link filter} and the second
- * behaves like {@link filter} with the predicate negated.
- *
- * ## Example
- * Partition a set of numbers into odds and evens observables
- * ```ts
- * import { of, partition } from 'rxjs';
- *
- * const observableValues = of(1, 2, 3, 4, 5, 6);
- * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);
- *
- * odds$.subscribe(x => console.log('odds', x));
- * evens$.subscribe(x => console.log('evens', x));
- *
- * // Logs:
- * // odds 1
- * // odds 3
- * // odds 5
- * // evens 2
- * // evens 4
- * // evens 6
- * ```
- *
- * @see {@link filter}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates each value emitted by the source Observable. If it returns `true`,
- * the value is emitted on the first Observable in the returned array, if
- * `false` the value is emitted on the second Observable in the array. The
- * `index` parameter is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {[Observable<T>, Observable<T>]} An array with two Observables: one
- * with values that passed the predicate, and another with values that did not
- * pass the predicate.
- */
-export declare function partition<T>(source: ObservableInput<T>, predicate: (value: T, index: number) => boolean, thisArg?: any): [Observable<T>, Observable<T>];
diff --git a/node_modules/rxjs/internal/observable/partition.js b/node_modules/rxjs/internal/observable/partition.js
deleted file mode 100644
index dc33aff..0000000
--- a/node_modules/rxjs/internal/observable/partition.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var not_1 = require("../util/not");
-var subscribeTo_1 = require("../util/subscribeTo");
-var filter_1 = require("../operators/filter");
-var Observable_1 = require("../Observable");
-function partition(source, predicate, thisArg) {
-    return [
-        filter_1.filter(predicate, thisArg)(new Observable_1.Observable(subscribeTo_1.subscribeTo(source))),
-        filter_1.filter(not_1.not(predicate, thisArg))(new Observable_1.Observable(subscribeTo_1.subscribeTo(source)))
-    ];
-}
-exports.partition = partition;
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/partition.js.map b/node_modules/rxjs/internal/observable/partition.js.map
deleted file mode 100644
index 91ed70e..0000000
--- a/node_modules/rxjs/internal/observable/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../src/internal/observable/partition.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,mDAAkD;AAClD,8CAA6C;AAE7C,4CAA2C;AAqD3C,SAAgB,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,eAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,uBAAU,CAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,eAAM,CAAC,SAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,uBAAU,CAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC;AATD,8BASC"}
diff --git a/node_modules/rxjs/internal/observable/race.d.ts b/node_modules/rxjs/internal/observable/race.d.ts
deleted file mode 100644
index b9f9a55..0000000
--- a/node_modules/rxjs/internal/observable/race.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { TeardownLogic, ObservableInput } from '../types';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-export declare function race<A>(arg: [ObservableInput<A>]): Observable<A>;
-export declare function race<A, B>(arg: [ObservableInput<A>, ObservableInput<B>]): Observable<A | B>;
-export declare function race<A, B, C>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<A | B | C>;
-export declare function race<A, B, C, D>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<A | B | C | D>;
-export declare function race<A, B, C, D, E>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<A | B | C | D | E>;
-export declare function race<T>(arg: ObservableInput<T>[]): Observable<T>;
-export declare function race(arg: ObservableInput<any>[]): Observable<{}>;
-export declare function race<A>(a: ObservableInput<A>): Observable<A>;
-export declare function race<A, B>(a: ObservableInput<A>, b: ObservableInput<B>): Observable<A | B>;
-export declare function race<A, B, C>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>): Observable<A | B | C>;
-export declare function race<A, B, C, D>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>): Observable<A | B | C | D>;
-export declare function race<A, B, C, D, E>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>, e: ObservableInput<E>): Observable<A | B | C | D | E>;
-export declare function race<T>(observables: ObservableInput<T>[]): Observable<T>;
-export declare function race(observables: ObservableInput<any>[]): Observable<{}>;
-export declare function race<T>(...observables: ObservableInput<T>[]): Observable<T>;
-export declare function race(...observables: ObservableInput<any>[]): Observable<{}>;
-export declare class RaceOperator<T> implements Operator<T, T> {
-    call(subscriber: Subscriber<T>, source: any): TeardownLogic;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class RaceSubscriber<T> extends OuterSubscriber<T, T> {
-    private hasFirst;
-    private observables;
-    private subscriptions;
-    constructor(destination: Subscriber<T>);
-    protected _next(observable: any): void;
-    protected _complete(): void;
-    notifyNext(outerValue: T, innerValue: T, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, T>): void;
-}
diff --git a/node_modules/rxjs/internal/observable/race.js b/node_modules/rxjs/internal/observable/race.js
deleted file mode 100644
index b4319d3..0000000
--- a/node_modules/rxjs/internal/observable/race.js
+++ /dev/null
@@ -1,92 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var isArray_1 = require("../util/isArray");
-var fromArray_1 = require("./fromArray");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function race() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    if (observables.length === 1) {
-        if (isArray_1.isArray(observables[0])) {
-            observables = observables[0];
-        }
-        else {
-            return observables[0];
-        }
-    }
-    return fromArray_1.fromArray(observables, undefined).lift(new RaceOperator());
-}
-exports.race = race;
-var RaceOperator = (function () {
-    function RaceOperator() {
-    }
-    RaceOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RaceSubscriber(subscriber));
-    };
-    return RaceOperator;
-}());
-exports.RaceOperator = RaceOperator;
-var RaceSubscriber = (function (_super) {
-    __extends(RaceSubscriber, _super);
-    function RaceSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasFirst = false;
-        _this.observables = [];
-        _this.subscriptions = [];
-        return _this;
-    }
-    RaceSubscriber.prototype._next = function (observable) {
-        this.observables.push(observable);
-    };
-    RaceSubscriber.prototype._complete = function () {
-        var observables = this.observables;
-        var len = observables.length;
-        if (len === 0) {
-            this.destination.complete();
-        }
-        else {
-            for (var i = 0; i < len && !this.hasFirst; i++) {
-                var observable = observables[i];
-                var subscription = subscribeToResult_1.subscribeToResult(this, observable, observable, i);
-                if (this.subscriptions) {
-                    this.subscriptions.push(subscription);
-                }
-                this.add(subscription);
-            }
-            this.observables = null;
-        }
-    };
-    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (!this.hasFirst) {
-            this.hasFirst = true;
-            for (var i = 0; i < this.subscriptions.length; i++) {
-                if (i !== outerIndex) {
-                    var subscription = this.subscriptions[i];
-                    subscription.unsubscribe();
-                    this.remove(subscription);
-                }
-            }
-            this.subscriptions = null;
-        }
-        this.destination.next(innerValue);
-    };
-    return RaceSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.RaceSubscriber = RaceSubscriber;
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/race.js.map b/node_modules/rxjs/internal/observable/race.js.map
deleted file mode 100644
index d77440d..0000000
--- a/node_modules/rxjs/internal/observable/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../src/internal/observable/race.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/observable/range.d.ts b/node_modules/rxjs/internal/observable/range.d.ts
deleted file mode 100644
index 8aad405..0000000
--- a/node_modules/rxjs/internal/observable/range.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { SchedulerAction, SchedulerLike } from '../types';
-import { Observable } from '../Observable';
-/**
- * Creates an Observable that emits a sequence of numbers within a specified
- * range.
- *
- * <span class="informal">Emits a sequence of numbers in a range.</span>
- *
- * ![](range.png)
- *
- * `range` operator emits a range of sequential integers, in order, where you
- * select the `start` of the range and its `length`. By default, uses no
- * {@link SchedulerLike} and just delivers the notifications synchronously, but may use
- * an optional {@link SchedulerLike} to regulate those deliveries.
- *
- * ## Example
- * Emits the numbers 1 to 10</caption>
- * ```ts
- * import { range } from 'rxjs';
- *
- * const numbers = range(1, 10);
- * numbers.subscribe(x => console.log(x));
- * ```
- * @see {@link timer}
- * @see {@link index/interval}
- *
- * @param {number} [start=0] The value of the first integer in the sequence.
- * @param {number} count The number of sequential integers to generate.
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling
- * the emissions of the notifications.
- * @return {Observable} An Observable of numbers that emits a finite range of
- * sequential integers.
- * @static true
- * @name range
- * @owner Observable
- */
-export declare function range(start?: number, count?: number, scheduler?: SchedulerLike): Observable<number>;
-/** @internal */
-export declare function dispatch(this: SchedulerAction<any>, state: any): void;
diff --git a/node_modules/rxjs/internal/observable/range.js b/node_modules/rxjs/internal/observable/range.js
deleted file mode 100644
index 8e5c0df..0000000
--- a/node_modules/rxjs/internal/observable/range.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-function range(start, count, scheduler) {
-    if (start === void 0) { start = 0; }
-    return new Observable_1.Observable(function (subscriber) {
-        if (count === undefined) {
-            count = start;
-            start = 0;
-        }
-        var index = 0;
-        var current = start;
-        if (scheduler) {
-            return scheduler.schedule(dispatch, 0, {
-                index: index, count: count, start: start, subscriber: subscriber
-            });
-        }
-        else {
-            do {
-                if (index++ >= count) {
-                    subscriber.complete();
-                    break;
-                }
-                subscriber.next(current++);
-                if (subscriber.closed) {
-                    break;
-                }
-            } while (true);
-        }
-        return undefined;
-    });
-}
-exports.range = range;
-function dispatch(state) {
-    var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;
-    if (index >= count) {
-        subscriber.complete();
-        return;
-    }
-    subscriber.next(start);
-    if (subscriber.closed) {
-        return;
-    }
-    state.index = index + 1;
-    state.start = start + 1;
-    this.schedule(state);
-}
-exports.dispatch = dispatch;
-//# sourceMappingURL=range.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/range.js.map b/node_modules/rxjs/internal/observable/range.js.map
deleted file mode 100644
index 01cde87..0000000
--- a/node_modules/rxjs/internal/observable/range.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"range.js","sources":["../../src/internal/observable/range.ts"],"names":[],"mappings":";;AACA,4CAA2C;AAoC3C,SAAgB,KAAK,CAAC,KAAiB,EACjB,KAAc,EACd,SAAyB;IAFzB,sBAAA,EAAA,SAAiB;IAGrC,OAAO,IAAI,uBAAU,CAAS,UAAA,UAAU;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA/BD,sBA+BC;AAGD,SAAgB,QAAQ,CAA6B,KAAU;IACrD,IAAA,mBAAK,EAAE,mBAAK,EAAE,mBAAK,EAAE,6BAAU,CAAW;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAlBD,4BAkBC"}
diff --git a/node_modules/rxjs/internal/observable/throwError.d.ts b/node_modules/rxjs/internal/observable/throwError.d.ts
deleted file mode 100644
index cb833c4..0000000
--- a/node_modules/rxjs/internal/observable/throwError.d.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-/**
- * Creates an Observable that emits no items to the Observer and immediately
- * emits an error notification.
- *
- * <span class="informal">Just emits 'error', and nothing else.
- * </span>
- *
- * ![](throw.png)
- *
- * This static operator is useful for creating a simple Observable that only
- * emits the error notification. It can be used for composing with other
- * Observables, such as in a {@link mergeMap}.
- *
- * ## Examples
- * ### Emit the number 7, then emit an error
- * ```ts
- * import { throwError, concat, of } from 'rxjs';
- *
- * const result = concat(of(7), throwError(new Error('oops!')));
- * result.subscribe(x => console.log(x), e => console.error(e));
- *
- * // Logs:
- * // 7
- * // Error: oops!
- * ```
- *
- * ---
- *
- * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2
- * ```ts
- * import { throwError, interval, of } from 'rxjs';
- * import { mergeMap } from 'rxjs/operators';
- *
- * interval(1000).pipe(
- *   mergeMap(x => x === 2
- *     ? throwError('Twos are bad')
- *     : of('a', 'b', 'c')
- *   ),
- * ).subscribe(x => console.log(x), e => console.error(e));
- *
- * // Logs:
- * // a
- * // b
- * // c
- * // a
- * // b
- * // c
- * // Twos are bad
- * ```
- *
- * @see {@link Observable}
- * @see {@link empty}
- * @see {@link never}
- * @see {@link of}
- *
- * @param {any} error The particular Error to pass to the error notification.
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling
- * the emission of the error notification.
- * @return {Observable} An error Observable: emits only the error notification
- * using the given error argument.
- * @static true
- * @name throwError
- * @owner Observable
- */
-export declare function throwError(error: any, scheduler?: SchedulerLike): Observable<never>;
diff --git a/node_modules/rxjs/internal/observable/throwError.js b/node_modules/rxjs/internal/observable/throwError.js
deleted file mode 100644
index 0d28544..0000000
--- a/node_modules/rxjs/internal/observable/throwError.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-function throwError(error, scheduler) {
-    if (!scheduler) {
-        return new Observable_1.Observable(function (subscriber) { return subscriber.error(error); });
-    }
-    else {
-        return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });
-    }
-}
-exports.throwError = throwError;
-function dispatch(_a) {
-    var error = _a.error, subscriber = _a.subscriber;
-    subscriber.error(error);
-}
-//# sourceMappingURL=throwError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/throwError.js.map b/node_modules/rxjs/internal/observable/throwError.js.map
deleted file mode 100644
index def5d43..0000000
--- a/node_modules/rxjs/internal/observable/throwError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwError.js","sources":["../../src/internal/observable/throwError.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAoE3C,SAAgB,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;KAC7F;AACH,CAAC;AAND,gCAMC;AAOD,SAAS,QAAQ,CAAC,EAAkC;QAAhC,gBAAK,EAAE,0BAAU;IACnC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/timer.d.ts b/node_modules/rxjs/internal/observable/timer.d.ts
deleted file mode 100644
index ce684a3..0000000
--- a/node_modules/rxjs/internal/observable/timer.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-/**
- * Creates an Observable that starts emitting after an `dueTime` and
- * emits ever increasing numbers after each `period` of time thereafter.
- *
- * <span class="informal">Its like {@link index/interval}, but you can specify when
- * should the emissions start.</span>
- *
- * ![](timer.png)
- *
- * `timer` returns an Observable that emits an infinite sequence of ascending
- * integers, with a constant interval of time, `period` of your choosing
- * between those emissions. The first emission happens after the specified
- * `dueTime`. The initial delay may be a `Date`. By default, this
- * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you
- * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output
- * Observable emits only one value, `0`. Otherwise, it emits an infinite
- * sequence.
- *
- * ## Examples
- * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds
- * ```ts
- * import { timer } from 'rxjs';
- *
- * const numbers = timer(3000, 1000);
- * numbers.subscribe(x => console.log(x));
- * ```
- *
- * ### Emits one number after five seconds
- * ```ts
- * import { timer } from 'rxjs';
- *
- * const numbers = timer(5000);
- * numbers.subscribe(x => console.log(x));
- * ```
- * @see {@link index/interval}
- * @see {@link delay}
- *
- * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting
- * milliseconds to wait before emitting the first value of 0`.
- * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the
- * subsequent numbers.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling
- * the emission of values, and providing a notion of "time".
- * @return {Observable} An Observable that emits a `0` after the
- * `dueTime` and ever increasing numbers after each `period` of time
- * thereafter.
- * @static true
- * @name timer
- * @owner Observable
- */
-export declare function timer(dueTime?: number | Date, periodOrScheduler?: number | SchedulerLike, scheduler?: SchedulerLike): Observable<number>;
diff --git a/node_modules/rxjs/internal/observable/timer.js b/node_modules/rxjs/internal/observable/timer.js
deleted file mode 100644
index f7a928d..0000000
--- a/node_modules/rxjs/internal/observable/timer.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var async_1 = require("../scheduler/async");
-var isNumeric_1 = require("../util/isNumeric");
-var isScheduler_1 = require("../util/isScheduler");
-function timer(dueTime, periodOrScheduler, scheduler) {
-    if (dueTime === void 0) { dueTime = 0; }
-    var period = -1;
-    if (isNumeric_1.isNumeric(periodOrScheduler)) {
-        period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
-    }
-    else if (isScheduler_1.isScheduler(periodOrScheduler)) {
-        scheduler = periodOrScheduler;
-    }
-    if (!isScheduler_1.isScheduler(scheduler)) {
-        scheduler = async_1.async;
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        var due = isNumeric_1.isNumeric(dueTime)
-            ? dueTime
-            : (+dueTime - scheduler.now());
-        return scheduler.schedule(dispatch, due, {
-            index: 0, period: period, subscriber: subscriber
-        });
-    });
-}
-exports.timer = timer;
-function dispatch(state) {
-    var index = state.index, period = state.period, subscriber = state.subscriber;
-    subscriber.next(index);
-    if (subscriber.closed) {
-        return;
-    }
-    else if (period === -1) {
-        return subscriber.complete();
-    }
-    state.index = index + 1;
-    this.schedule(state, period);
-}
-//# sourceMappingURL=timer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/timer.js.map b/node_modules/rxjs/internal/observable/timer.js.map
deleted file mode 100644
index adf2a57..0000000
--- a/node_modules/rxjs/internal/observable/timer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timer.js","sources":["../../src/internal/observable/timer.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,4CAA2C;AAC3C,+CAA8C;AAC9C,mDAAkD;AAqDlD,SAAgB,KAAK,CAAC,OAA0B,EAC1B,iBAA0C,EAC1C,SAAyB;IAFzB,wBAAA,EAAA,WAA0B;IAG9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,qBAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,yBAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,yBAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,aAAK,CAAC;KACnB;IAED,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,GAAG,GAAG,qBAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAvBD,sBAuBC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IAC5D,IAAA,mBAAK,EAAE,qBAAM,EAAE,6BAAU,CAAW;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/internal/observable/using.d.ts b/node_modules/rxjs/internal/observable/using.d.ts
deleted file mode 100644
index 21014e4..0000000
--- a/node_modules/rxjs/internal/observable/using.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Observable } from '../Observable';
-import { Unsubscribable, ObservableInput } from '../types';
-/**
- * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.
- *
- * <span class="informal">Use it when you catch yourself cleaning up after an Observable.</span>
- *
- * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.
- * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with
- * that object and should return an Observable. That Observable can use resource object during its execution.
- * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor
- * resource object will be shared in any way between subscriptions.
- *
- * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed
- * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output
- * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,
- * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which
- * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone
- * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make
- * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.
- *
- * @see {@link defer}
- *
- * @param {function(): ISubscription} resourceFactory A function which creates any resource object
- * that implements `unsubscribe` method.
- * @param {function(resource: ISubscription): Observable<T>} observableFactory A function which
- * creates an Observable, that can use injected resource object.
- * @return {Observable<T>} An Observable that behaves the same as Observable returned by `observableFactory`, but
- * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.
- */
-export declare function using<T>(resourceFactory: () => Unsubscribable | void, observableFactory: (resource: Unsubscribable | void) => ObservableInput<T> | void): Observable<T>;
diff --git a/node_modules/rxjs/internal/observable/using.js b/node_modules/rxjs/internal/observable/using.js
deleted file mode 100644
index 063ca57..0000000
--- a/node_modules/rxjs/internal/observable/using.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var from_1 = require("./from");
-var empty_1 = require("./empty");
-function using(resourceFactory, observableFactory) {
-    return new Observable_1.Observable(function (subscriber) {
-        var resource;
-        try {
-            resource = resourceFactory();
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var result;
-        try {
-            result = observableFactory(resource);
-        }
-        catch (err) {
-            subscriber.error(err);
-            return undefined;
-        }
-        var source = result ? from_1.from(result) : empty_1.EMPTY;
-        var subscription = source.subscribe(subscriber);
-        return function () {
-            subscription.unsubscribe();
-            if (resource) {
-                resource.unsubscribe();
-            }
-        };
-    });
-}
-exports.using = using;
-//# sourceMappingURL=using.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/using.js.map b/node_modules/rxjs/internal/observable/using.js.map
deleted file mode 100644
index 4747304..0000000
--- a/node_modules/rxjs/internal/observable/using.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"using.js","sources":["../../src/internal/observable/using.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,iCAAgC;AA8BhC,SAAgB,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC;QAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,sBA6BC"}
diff --git a/node_modules/rxjs/internal/observable/zip.d.ts b/node_modules/rxjs/internal/observable/zip.d.ts
deleted file mode 100644
index 27da764..0000000
--- a/node_modules/rxjs/internal/observable/zip.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { ObservableInput, ObservedValueOf } from '../types';
-import { Subscriber } from '../Subscriber';
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): Observable<R>;
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export declare function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-export declare function zip<O extends ObservableInput<any>>(array: O[]): Observable<ObservedValueOf<O>[]>;
-export declare function zip<R>(array: ObservableInput<any>[]): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export declare function zip<R>(array: ObservableInput<any>[], resultSelector: (...values: any[]) => R): Observable<R>;
-export declare function zip<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>[]>;
-export declare function zip<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>): Observable<R>;
-export declare function zip<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-export declare class ZipOperator<T, R> implements Operator<T, R> {
-    resultSelector: (...values: Array<any>) => R;
-    constructor(resultSelector?: (...values: Array<any>) => R);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class ZipSubscriber<T, R> extends Subscriber<T> {
-    private values;
-    private resultSelector;
-    private iterators;
-    private active;
-    constructor(destination: Subscriber<R>, resultSelector?: (...values: Array<any>) => R, values?: any);
-    protected _next(value: any): void;
-    protected _complete(): void;
-    notifyInactive(): void;
-    checkIterators(): void;
-    protected _tryresultSelector(args: any[]): void;
-}
diff --git a/node_modules/rxjs/internal/observable/zip.js b/node_modules/rxjs/internal/observable/zip.js
deleted file mode 100644
index 1bfd530..0000000
--- a/node_modules/rxjs/internal/observable/zip.js
+++ /dev/null
@@ -1,230 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var fromArray_1 = require("./fromArray");
-var isArray_1 = require("../util/isArray");
-var Subscriber_1 = require("../Subscriber");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var iterator_1 = require("../../internal/symbol/iterator");
-function zip() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var resultSelector = observables[observables.length - 1];
-    if (typeof resultSelector === 'function') {
-        observables.pop();
-    }
-    return fromArray_1.fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
-}
-exports.zip = zip;
-var ZipOperator = (function () {
-    function ZipOperator(resultSelector) {
-        this.resultSelector = resultSelector;
-    }
-    ZipOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
-    };
-    return ZipOperator;
-}());
-exports.ZipOperator = ZipOperator;
-var ZipSubscriber = (function (_super) {
-    __extends(ZipSubscriber, _super);
-    function ZipSubscriber(destination, resultSelector, values) {
-        if (values === void 0) { values = Object.create(null); }
-        var _this = _super.call(this, destination) || this;
-        _this.iterators = [];
-        _this.active = 0;
-        _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
-        _this.values = values;
-        return _this;
-    }
-    ZipSubscriber.prototype._next = function (value) {
-        var iterators = this.iterators;
-        if (isArray_1.isArray(value)) {
-            iterators.push(new StaticArrayIterator(value));
-        }
-        else if (typeof value[iterator_1.iterator] === 'function') {
-            iterators.push(new StaticIterator(value[iterator_1.iterator]()));
-        }
-        else {
-            iterators.push(new ZipBufferIterator(this.destination, this, value));
-        }
-    };
-    ZipSubscriber.prototype._complete = function () {
-        var iterators = this.iterators;
-        var len = iterators.length;
-        this.unsubscribe();
-        if (len === 0) {
-            this.destination.complete();
-            return;
-        }
-        this.active = len;
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            if (iterator.stillUnsubscribed) {
-                var destination = this.destination;
-                destination.add(iterator.subscribe(iterator, i));
-            }
-            else {
-                this.active--;
-            }
-        }
-    };
-    ZipSubscriber.prototype.notifyInactive = function () {
-        this.active--;
-        if (this.active === 0) {
-            this.destination.complete();
-        }
-    };
-    ZipSubscriber.prototype.checkIterators = function () {
-        var iterators = this.iterators;
-        var len = iterators.length;
-        var destination = this.destination;
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
-                return;
-            }
-        }
-        var shouldComplete = false;
-        var args = [];
-        for (var i = 0; i < len; i++) {
-            var iterator = iterators[i];
-            var result = iterator.next();
-            if (iterator.hasCompleted()) {
-                shouldComplete = true;
-            }
-            if (result.done) {
-                destination.complete();
-                return;
-            }
-            args.push(result.value);
-        }
-        if (this.resultSelector) {
-            this._tryresultSelector(args);
-        }
-        else {
-            destination.next(args);
-        }
-        if (shouldComplete) {
-            destination.complete();
-        }
-    };
-    ZipSubscriber.prototype._tryresultSelector = function (args) {
-        var result;
-        try {
-            result = this.resultSelector.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return ZipSubscriber;
-}(Subscriber_1.Subscriber));
-exports.ZipSubscriber = ZipSubscriber;
-var StaticIterator = (function () {
-    function StaticIterator(iterator) {
-        this.iterator = iterator;
-        this.nextResult = iterator.next();
-    }
-    StaticIterator.prototype.hasValue = function () {
-        return true;
-    };
-    StaticIterator.prototype.next = function () {
-        var result = this.nextResult;
-        this.nextResult = this.iterator.next();
-        return result;
-    };
-    StaticIterator.prototype.hasCompleted = function () {
-        var nextResult = this.nextResult;
-        return nextResult && nextResult.done;
-    };
-    return StaticIterator;
-}());
-var StaticArrayIterator = (function () {
-    function StaticArrayIterator(array) {
-        this.array = array;
-        this.index = 0;
-        this.length = 0;
-        this.length = array.length;
-    }
-    StaticArrayIterator.prototype[iterator_1.iterator] = function () {
-        return this;
-    };
-    StaticArrayIterator.prototype.next = function (value) {
-        var i = this.index++;
-        var array = this.array;
-        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
-    };
-    StaticArrayIterator.prototype.hasValue = function () {
-        return this.array.length > this.index;
-    };
-    StaticArrayIterator.prototype.hasCompleted = function () {
-        return this.array.length === this.index;
-    };
-    return StaticArrayIterator;
-}());
-var ZipBufferIterator = (function (_super) {
-    __extends(ZipBufferIterator, _super);
-    function ZipBufferIterator(destination, parent, observable) {
-        var _this = _super.call(this, destination) || this;
-        _this.parent = parent;
-        _this.observable = observable;
-        _this.stillUnsubscribed = true;
-        _this.buffer = [];
-        _this.isComplete = false;
-        return _this;
-    }
-    ZipBufferIterator.prototype[iterator_1.iterator] = function () {
-        return this;
-    };
-    ZipBufferIterator.prototype.next = function () {
-        var buffer = this.buffer;
-        if (buffer.length === 0 && this.isComplete) {
-            return { value: null, done: true };
-        }
-        else {
-            return { value: buffer.shift(), done: false };
-        }
-    };
-    ZipBufferIterator.prototype.hasValue = function () {
-        return this.buffer.length > 0;
-    };
-    ZipBufferIterator.prototype.hasCompleted = function () {
-        return this.buffer.length === 0 && this.isComplete;
-    };
-    ZipBufferIterator.prototype.notifyComplete = function () {
-        if (this.buffer.length > 0) {
-            this.isComplete = true;
-            this.parent.notifyInactive();
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.buffer.push(innerValue);
-        this.parent.checkIterators();
-    };
-    ZipBufferIterator.prototype.subscribe = function (value, index) {
-        return subscribeToResult_1.subscribeToResult(this, this.observable, this, index);
-    };
-    return ZipBufferIterator;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/observable/zip.js.map b/node_modules/rxjs/internal/observable/zip.js.map
deleted file mode 100644
index 55b78fd..0000000
--- a/node_modules/rxjs/internal/observable/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/audit.d.ts b/node_modules/rxjs/internal/operators/audit.d.ts
deleted file mode 100644
index d7b250a..0000000
--- a/node_modules/rxjs/internal/operators/audit.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';
-/**
- * Ignores source values for a duration determined by another Observable, then
- * emits the most recent value from the source Observable, then repeats this
- * process.
- *
- * <span class="informal">It's like {@link auditTime}, but the silencing
- * duration is determined by a second Observable.</span>
- *
- * ![](audit.png)
- *
- * `audit` is similar to `throttle`, but emits the last value from the silenced
- * time window, instead of the first value. `audit` emits the most recent value
- * from the source Observable on the output Observable as soon as its internal
- * timer becomes disabled, and ignores source values while the timer is enabled.
- * Initially, the timer is disabled. As soon as the first source value arrives,
- * the timer is enabled by calling the `durationSelector` function with the
- * source value, which returns the "duration" Observable. When the duration
- * Observable emits a value or completes, the timer is disabled, then the most
- * recent source value is emitted on the output Observable, and this process
- * repeats for the next source value.
- *
- * ## Example
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { audit } from 'rxjs/operators'
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(audit(ev => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- * @see {@link auditTime}
- * @see {@link debounce}
- * @see {@link delayWhen}
- * @see {@link sample}
- * @see {@link throttle}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the silencing
- * duration, returned as an Observable or a Promise.
- * @return {Observable<T>} An Observable that performs rate-limiting of
- * emissions from the source Observable.
- * @method audit
- * @owner Observable
- */
-export declare function audit<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/audit.js b/node_modules/rxjs/internal/operators/audit.js
deleted file mode 100644
index e6e13ca..0000000
--- a/node_modules/rxjs/internal/operators/audit.js
+++ /dev/null
@@ -1,83 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function audit(durationSelector) {
-    return function auditOperatorFunction(source) {
-        return source.lift(new AuditOperator(durationSelector));
-    };
-}
-exports.audit = audit;
-var AuditOperator = (function () {
-    function AuditOperator(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    AuditOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
-    };
-    return AuditOperator;
-}());
-var AuditSubscriber = (function (_super) {
-    __extends(AuditSubscriber, _super);
-    function AuditSubscriber(destination, durationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.durationSelector = durationSelector;
-        _this.hasValue = false;
-        return _this;
-    }
-    AuditSubscriber.prototype._next = function (value) {
-        this.value = value;
-        this.hasValue = true;
-        if (!this.throttled) {
-            var duration = void 0;
-            try {
-                var durationSelector = this.durationSelector;
-                duration = durationSelector(value);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-            var innerSubscription = subscribeToResult_1.subscribeToResult(this, duration);
-            if (!innerSubscription || innerSubscription.closed) {
-                this.clearThrottle();
-            }
-            else {
-                this.add(this.throttled = innerSubscription);
-            }
-        }
-    };
-    AuditSubscriber.prototype.clearThrottle = function () {
-        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;
-        if (throttled) {
-            this.remove(throttled);
-            this.throttled = null;
-            throttled.unsubscribe();
-        }
-        if (hasValue) {
-            this.value = null;
-            this.hasValue = false;
-            this.destination.next(value);
-        }
-    };
-    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {
-        this.clearThrottle();
-    };
-    AuditSubscriber.prototype.notifyComplete = function () {
-        this.clearThrottle();
-    };
-    return AuditSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=audit.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/audit.js.map b/node_modules/rxjs/internal/operators/audit.js.map
deleted file mode 100644
index 2ecdf90..0000000
--- a/node_modules/rxjs/internal/operators/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../../src/internal/operators/audit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,sDAAqD;AACrD,+DAA8D;AAgD9D,SAAgB,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAJD,sBAIC;AAED;IACE,uBAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAoC,mCAAqB;IAMvD,yBAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,SAAA,CAAC;YACb,IAAI;gBACM,IAAA,wCAAgB,CAAU;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;YACD,IAAM,iBAAiB,GAAG,qCAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,uCAAa,GAAb;QACQ,IAAA,SAAqC,EAAnC,gBAAK,EAAE,sBAAQ,EAAE,wBAAS,CAAU;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAAE,UAAkB,EAAE,UAAkB;QAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,wCAAc,GAAd;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApDD,CAAoC,iCAAe,GAoDlD"}
diff --git a/node_modules/rxjs/internal/operators/auditTime.d.ts b/node_modules/rxjs/internal/operators/auditTime.d.ts
deleted file mode 100644
index 5c2f910..0000000
--- a/node_modules/rxjs/internal/operators/auditTime.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Ignores source values for `duration` milliseconds, then emits the most recent
- * value from the source Observable, then repeats this process.
- *
- * <span class="informal">When it sees a source value, it ignores that plus
- * the next ones for `duration` milliseconds, and then it emits the most recent
- * value from the source.</span>
- *
- * ![](auditTime.png)
- *
- * `auditTime` is similar to `throttleTime`, but emits the last value from the
- * silenced time window, instead of the first value. `auditTime` emits the most
- * recent value from the source Observable on the output Observable as soon as
- * its internal timer becomes disabled, and ignores source values while the
- * timer is enabled. Initially, the timer is disabled. As soon as the first
- * source value arrives, the timer is enabled. After `duration` milliseconds (or
- * the time unit determined internally by the optional `scheduler`) has passed,
- * the timer is disabled, then the most recent source value is emitted on the
- * output Observable, and this process repeats for the next source value.
- * Optionally takes a {@link SchedulerLike} for managing timers.
- *
- * ## Example
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { auditTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(auditTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttleTime}
- *
- * @param {number} duration Time to wait before emitting the most recent source
- * value, measured in milliseconds or the time unit determined internally
- * by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the rate-limiting behavior.
- * @return {Observable<T>} An Observable that performs rate-limiting of
- * emissions from the source Observable.
- * @method auditTime
- * @owner Observable
- */
-export declare function auditTime<T>(duration: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/auditTime.js b/node_modules/rxjs/internal/operators/auditTime.js
deleted file mode 100644
index 195f261..0000000
--- a/node_modules/rxjs/internal/operators/auditTime.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var audit_1 = require("./audit");
-var timer_1 = require("../observable/timer");
-function auditTime(duration, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return audit_1.audit(function () { return timer_1.timer(duration, scheduler); });
-}
-exports.auditTime = auditTime;
-//# sourceMappingURL=auditTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/auditTime.js.map b/node_modules/rxjs/internal/operators/auditTime.js.map
deleted file mode 100644
index 7042a37..0000000
--- a/node_modules/rxjs/internal/operators/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../../src/internal/operators/auditTime.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,iCAAgC;AAChC,6CAA4C;AAoD5C,SAAgB,SAAS,CAAI,QAAgB,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC7E,OAAO,aAAK,CAAC,cAAM,OAAA,aAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA1B,CAA0B,CAAC,CAAC;AACjD,CAAC;AAFD,8BAEC"}
diff --git a/node_modules/rxjs/internal/operators/buffer.d.ts b/node_modules/rxjs/internal/operators/buffer.d.ts
deleted file mode 100644
index ee4f507..0000000
--- a/node_modules/rxjs/internal/operators/buffer.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Buffers the source Observable values until `closingNotifier` emits.
- *
- * <span class="informal">Collects values from the past as an array, and emits
- * that array only when another Observable emits.</span>
- *
- * ![](buffer.png)
- *
- * Buffers the incoming Observable values until the given `closingNotifier`
- * Observable emits a value, at which point it emits the buffer on the output
- * Observable and starts a new buffer internally, awaiting the next time
- * `closingNotifier` emits.
- *
- * ## Example
- *
- * On every click, emit array of most recent interval events
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { buffer } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const intervalEvents = interval(1000);
- * const buffered = intervalEvents.pipe(buffer(clicks));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link bufferWhen}
- * @see {@link window}
- *
- * @param {Observable<any>} closingNotifier An Observable that signals the
- * buffer to be emitted on the output Observable.
- * @return {Observable<T[]>} An Observable of buffers, which are arrays of
- * values.
- * @method buffer
- * @owner Observable
- */
-export declare function buffer<T>(closingNotifier: Observable<any>): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/buffer.js b/node_modules/rxjs/internal/operators/buffer.js
deleted file mode 100644
index d978765..0000000
--- a/node_modules/rxjs/internal/operators/buffer.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function buffer(closingNotifier) {
-    return function bufferOperatorFunction(source) {
-        return source.lift(new BufferOperator(closingNotifier));
-    };
-}
-exports.buffer = buffer;
-var BufferOperator = (function () {
-    function BufferOperator(closingNotifier) {
-        this.closingNotifier = closingNotifier;
-    }
-    BufferOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
-    };
-    return BufferOperator;
-}());
-var BufferSubscriber = (function (_super) {
-    __extends(BufferSubscriber, _super);
-    function BufferSubscriber(destination, closingNotifier) {
-        var _this = _super.call(this, destination) || this;
-        _this.buffer = [];
-        _this.add(subscribeToResult_1.subscribeToResult(_this, closingNotifier));
-        return _this;
-    }
-    BufferSubscriber.prototype._next = function (value) {
-        this.buffer.push(value);
-    };
-    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var buffer = this.buffer;
-        this.buffer = [];
-        this.destination.next(buffer);
-    };
-    return BufferSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=buffer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/buffer.js.map b/node_modules/rxjs/internal/operators/buffer.js.map
deleted file mode 100644
index d9a54cb..0000000
--- a/node_modules/rxjs/internal/operators/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../../src/internal/operators/buffer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,sDAAqD;AAErD,+DAA8D;AA2C9D,SAAgB,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,wBAIC;AAED;IAEE,wBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAAuB;IAGvD,0BAAY,WAA4B,EAAE,eAAgC;QAA1E,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAQ,EAAE,CAAC;QAIvB,KAAI,CAAC,GAAG,CAAC,qCAAiB,CAAC,KAAI,EAAE,eAAe,CAAC,CAAC,CAAC;;IACrD,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,uBAAC;AAAD,CAAC,AAnBD,CAAkC,iCAAe,GAmBhD"}
diff --git a/node_modules/rxjs/internal/operators/bufferCount.d.ts b/node_modules/rxjs/internal/operators/bufferCount.d.ts
deleted file mode 100644
index dd764e6..0000000
--- a/node_modules/rxjs/internal/operators/bufferCount.d.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Buffers the source Observable values until the size hits the maximum
- * `bufferSize` given.
- *
- * <span class="informal">Collects values from the past as an array, and emits
- * that array only when its size reaches `bufferSize`.</span>
- *
- * ![](bufferCount.png)
- *
- * Buffers a number of values from the source Observable by `bufferSize` then
- * emits the buffer and clears it, and starts a new buffer each
- * `startBufferEvery` values. If `startBufferEvery` is not provided or is
- * `null`, then new buffers are started immediately at the start of the source
- * and when each buffer closes and is emitted.
- *
- * ## Examples
- *
- * Emit the last two click events as an array
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferCount } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferCount(2));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * On every click, emit the last two click events as an array
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferCount } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferCount(2, 1));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link bufferWhen}
- * @see {@link pairwise}
- * @see {@link windowCount}
- *
- * @param {number} bufferSize The maximum size of the buffer emitted.
- * @param {number} [startBufferEvery] Interval at which to start a new buffer.
- * For example if `startBufferEvery` is `2`, then a new buffer will be started
- * on every other value from the source. A new buffer is started at the
- * beginning of the source by default.
- * @return {Observable<T[]>} An Observable of arrays of buffered values.
- * @method bufferCount
- * @owner Observable
- */
-export declare function bufferCount<T>(bufferSize: number, startBufferEvery?: number): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/bufferCount.js b/node_modules/rxjs/internal/operators/bufferCount.js
deleted file mode 100644
index 39dd40e..0000000
--- a/node_modules/rxjs/internal/operators/bufferCount.js
+++ /dev/null
@@ -1,102 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function bufferCount(bufferSize, startBufferEvery) {
-    if (startBufferEvery === void 0) { startBufferEvery = null; }
-    return function bufferCountOperatorFunction(source) {
-        return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));
-    };
-}
-exports.bufferCount = bufferCount;
-var BufferCountOperator = (function () {
-    function BufferCountOperator(bufferSize, startBufferEvery) {
-        this.bufferSize = bufferSize;
-        this.startBufferEvery = startBufferEvery;
-        if (!startBufferEvery || bufferSize === startBufferEvery) {
-            this.subscriberClass = BufferCountSubscriber;
-        }
-        else {
-            this.subscriberClass = BufferSkipCountSubscriber;
-        }
-    }
-    BufferCountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
-    };
-    return BufferCountOperator;
-}());
-var BufferCountSubscriber = (function (_super) {
-    __extends(BufferCountSubscriber, _super);
-    function BufferCountSubscriber(destination, bufferSize) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferSize = bufferSize;
-        _this.buffer = [];
-        return _this;
-    }
-    BufferCountSubscriber.prototype._next = function (value) {
-        var buffer = this.buffer;
-        buffer.push(value);
-        if (buffer.length == this.bufferSize) {
-            this.destination.next(buffer);
-            this.buffer = [];
-        }
-    };
-    BufferCountSubscriber.prototype._complete = function () {
-        var buffer = this.buffer;
-        if (buffer.length > 0) {
-            this.destination.next(buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    return BufferCountSubscriber;
-}(Subscriber_1.Subscriber));
-var BufferSkipCountSubscriber = (function (_super) {
-    __extends(BufferSkipCountSubscriber, _super);
-    function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferSize = bufferSize;
-        _this.startBufferEvery = startBufferEvery;
-        _this.buffers = [];
-        _this.count = 0;
-        return _this;
-    }
-    BufferSkipCountSubscriber.prototype._next = function (value) {
-        var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;
-        this.count++;
-        if (count % startBufferEvery === 0) {
-            buffers.push([]);
-        }
-        for (var i = buffers.length; i--;) {
-            var buffer = buffers[i];
-            buffer.push(value);
-            if (buffer.length === bufferSize) {
-                buffers.splice(i, 1);
-                this.destination.next(buffer);
-            }
-        }
-    };
-    BufferSkipCountSubscriber.prototype._complete = function () {
-        var _a = this, buffers = _a.buffers, destination = _a.destination;
-        while (buffers.length > 0) {
-            var buffer = buffers.shift();
-            if (buffer.length > 0) {
-                destination.next(buffer);
-            }
-        }
-        _super.prototype._complete.call(this);
-    };
-    return BufferSkipCountSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=bufferCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/bufferCount.js.map b/node_modules/rxjs/internal/operators/bufferCount.js.map
deleted file mode 100644
index dcaa26f..0000000
--- a/node_modules/rxjs/internal/operators/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/bufferTime.d.ts b/node_modules/rxjs/internal/operators/bufferTime.d.ts
deleted file mode 100644
index b68efb1..0000000
--- a/node_modules/rxjs/internal/operators/bufferTime.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { OperatorFunction, SchedulerLike } from '../types';
-export declare function bufferTime<T>(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
-export declare function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
-export declare function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/bufferTime.js b/node_modules/rxjs/internal/operators/bufferTime.js
deleted file mode 100644
index 1cd2203..0000000
--- a/node_modules/rxjs/internal/operators/bufferTime.js
+++ /dev/null
@@ -1,162 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var Subscriber_1 = require("../Subscriber");
-var isScheduler_1 = require("../util/isScheduler");
-function bufferTime(bufferTimeSpan) {
-    var length = arguments.length;
-    var scheduler = async_1.async;
-    if (isScheduler_1.isScheduler(arguments[arguments.length - 1])) {
-        scheduler = arguments[arguments.length - 1];
-        length--;
-    }
-    var bufferCreationInterval = null;
-    if (length >= 2) {
-        bufferCreationInterval = arguments[1];
-    }
-    var maxBufferSize = Number.POSITIVE_INFINITY;
-    if (length >= 3) {
-        maxBufferSize = arguments[2];
-    }
-    return function bufferTimeOperatorFunction(source) {
-        return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
-    };
-}
-exports.bufferTime = bufferTime;
-var BufferTimeOperator = (function () {
-    function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        this.bufferTimeSpan = bufferTimeSpan;
-        this.bufferCreationInterval = bufferCreationInterval;
-        this.maxBufferSize = maxBufferSize;
-        this.scheduler = scheduler;
-    }
-    BufferTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));
-    };
-    return BufferTimeOperator;
-}());
-var Context = (function () {
-    function Context() {
-        this.buffer = [];
-    }
-    return Context;
-}());
-var BufferTimeSubscriber = (function (_super) {
-    __extends(BufferTimeSubscriber, _super);
-    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.bufferTimeSpan = bufferTimeSpan;
-        _this.bufferCreationInterval = bufferCreationInterval;
-        _this.maxBufferSize = maxBufferSize;
-        _this.scheduler = scheduler;
-        _this.contexts = [];
-        var context = _this.openContext();
-        _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
-        if (_this.timespanOnly) {
-            var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };
-            _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-        else {
-            var closeState = { subscriber: _this, context: context };
-            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };
-            _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));
-            _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));
-        }
-        return _this;
-    }
-    BufferTimeSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        var len = contexts.length;
-        var filledBufferContext;
-        for (var i = 0; i < len; i++) {
-            var context_1 = contexts[i];
-            var buffer = context_1.buffer;
-            buffer.push(value);
-            if (buffer.length == this.maxBufferSize) {
-                filledBufferContext = context_1;
-            }
-        }
-        if (filledBufferContext) {
-            this.onBufferFull(filledBufferContext);
-        }
-    };
-    BufferTimeSubscriber.prototype._error = function (err) {
-        this.contexts.length = 0;
-        _super.prototype._error.call(this, err);
-    };
-    BufferTimeSubscriber.prototype._complete = function () {
-        var _a = this, contexts = _a.contexts, destination = _a.destination;
-        while (contexts.length > 0) {
-            var context_2 = contexts.shift();
-            destination.next(context_2.buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    BufferTimeSubscriber.prototype._unsubscribe = function () {
-        this.contexts = null;
-    };
-    BufferTimeSubscriber.prototype.onBufferFull = function (context) {
-        this.closeContext(context);
-        var closeAction = context.closeAction;
-        closeAction.unsubscribe();
-        this.remove(closeAction);
-        if (!this.closed && this.timespanOnly) {
-            context = this.openContext();
-            var bufferTimeSpan = this.bufferTimeSpan;
-            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };
-            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-        }
-    };
-    BufferTimeSubscriber.prototype.openContext = function () {
-        var context = new Context();
-        this.contexts.push(context);
-        return context;
-    };
-    BufferTimeSubscriber.prototype.closeContext = function (context) {
-        this.destination.next(context.buffer);
-        var contexts = this.contexts;
-        var spliceIndex = contexts ? contexts.indexOf(context) : -1;
-        if (spliceIndex >= 0) {
-            contexts.splice(contexts.indexOf(context), 1);
-        }
-    };
-    return BufferTimeSubscriber;
-}(Subscriber_1.Subscriber));
-function dispatchBufferTimeSpanOnly(state) {
-    var subscriber = state.subscriber;
-    var prevContext = state.context;
-    if (prevContext) {
-        subscriber.closeContext(prevContext);
-    }
-    if (!subscriber.closed) {
-        state.context = subscriber.openContext();
-        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
-    }
-}
-function dispatchBufferCreation(state) {
-    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;
-    var context = subscriber.openContext();
-    var action = this;
-    if (!subscriber.closed) {
-        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));
-        action.schedule(state, bufferCreationInterval);
-    }
-}
-function dispatchBufferClose(arg) {
-    var subscriber = arg.subscriber, context = arg.context;
-    subscriber.closeContext(context);
-}
-//# sourceMappingURL=bufferTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/bufferTime.js.map b/node_modules/rxjs/internal/operators/bufferTime.js.map
deleted file mode 100644
index a94eba2..0000000
--- a/node_modules/rxjs/internal/operators/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/bufferToggle.d.ts b/node_modules/rxjs/internal/operators/bufferToggle.d.ts
deleted file mode 100644
index 87afb80..0000000
--- a/node_modules/rxjs/internal/operators/bufferToggle.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { OperatorFunction, SubscribableOrPromise } from '../types';
-/**
- * Buffers the source Observable values starting from an emission from
- * `openings` and ending when the output of `closingSelector` emits.
- *
- * <span class="informal">Collects values from the past as an array. Starts
- * collecting only when `opening` emits, and calls the `closingSelector`
- * function to get an Observable that tells when to close the buffer.</span>
- *
- * ![](bufferToggle.png)
- *
- * Buffers values from the source by opening the buffer via signals from an
- * Observable provided to `openings`, and closing and sending the buffers when
- * a Subscribable or Promise returned by the `closingSelector` function emits.
- *
- * ## Example
- *
- * Every other second, emit the click events from the next 500ms
- *
- * ```ts
- * import { fromEvent, interval, EMPTY } from 'rxjs';
- * import { bufferToggle } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const openings = interval(1000);
- * const buffered = clicks.pipe(bufferToggle(openings, i =>
- *   i % 2 ? interval(500) : EMPTY
- * ));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferWhen}
- * @see {@link windowToggle}
- *
- * @param {SubscribableOrPromise<O>} openings A Subscribable or Promise of notifications to start new
- * buffers.
- * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes
- * the value emitted by the `openings` observable and returns a Subscribable or Promise,
- * which, when it emits, signals that the associated buffer should be emitted
- * and cleared.
- * @return {Observable<T[]>} An observable of arrays of buffered values.
- * @method bufferToggle
- * @owner Observable
- */
-export declare function bufferToggle<T, O>(openings: SubscribableOrPromise<O>, closingSelector: (value: O) => SubscribableOrPromise<any>): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/bufferToggle.js b/node_modules/rxjs/internal/operators/bufferToggle.js
deleted file mode 100644
index 2cdc9fa..0000000
--- a/node_modules/rxjs/internal/operators/bufferToggle.js
+++ /dev/null
@@ -1,121 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscription_1 = require("../Subscription");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-function bufferToggle(openings, closingSelector) {
-    return function bufferToggleOperatorFunction(source) {
-        return source.lift(new BufferToggleOperator(openings, closingSelector));
-    };
-}
-exports.bufferToggle = bufferToggle;
-var BufferToggleOperator = (function () {
-    function BufferToggleOperator(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    BufferToggleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    };
-    return BufferToggleOperator;
-}());
-var BufferToggleSubscriber = (function (_super) {
-    __extends(BufferToggleSubscriber, _super);
-    function BufferToggleSubscriber(destination, openings, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.openings = openings;
-        _this.closingSelector = closingSelector;
-        _this.contexts = [];
-        _this.add(subscribeToResult_1.subscribeToResult(_this, openings));
-        return _this;
-    }
-    BufferToggleSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        var len = contexts.length;
-        for (var i = 0; i < len; i++) {
-            contexts[i].buffer.push(value);
-        }
-    };
-    BufferToggleSubscriber.prototype._error = function (err) {
-        var contexts = this.contexts;
-        while (contexts.length > 0) {
-            var context_1 = contexts.shift();
-            context_1.subscription.unsubscribe();
-            context_1.buffer = null;
-            context_1.subscription = null;
-        }
-        this.contexts = null;
-        _super.prototype._error.call(this, err);
-    };
-    BufferToggleSubscriber.prototype._complete = function () {
-        var contexts = this.contexts;
-        while (contexts.length > 0) {
-            var context_2 = contexts.shift();
-            this.destination.next(context_2.buffer);
-            context_2.subscription.unsubscribe();
-            context_2.buffer = null;
-            context_2.subscription = null;
-        }
-        this.contexts = null;
-        _super.prototype._complete.call(this);
-    };
-    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
-    };
-    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.closeBuffer(innerSub.context);
-    };
-    BufferToggleSubscriber.prototype.openBuffer = function (value) {
-        try {
-            var closingSelector = this.closingSelector;
-            var closingNotifier = closingSelector.call(this, value);
-            if (closingNotifier) {
-                this.trySubscribe(closingNotifier);
-            }
-        }
-        catch (err) {
-            this._error(err);
-        }
-    };
-    BufferToggleSubscriber.prototype.closeBuffer = function (context) {
-        var contexts = this.contexts;
-        if (contexts && context) {
-            var buffer = context.buffer, subscription = context.subscription;
-            this.destination.next(buffer);
-            contexts.splice(contexts.indexOf(context), 1);
-            this.remove(subscription);
-            subscription.unsubscribe();
-        }
-    };
-    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {
-        var contexts = this.contexts;
-        var buffer = [];
-        var subscription = new Subscription_1.Subscription();
-        var context = { buffer: buffer, subscription: subscription };
-        contexts.push(context);
-        var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context);
-        if (!innerSubscription || innerSubscription.closed) {
-            this.closeBuffer(context);
-        }
-        else {
-            innerSubscription.context = context;
-            this.add(innerSubscription);
-            subscription.add(innerSubscription);
-        }
-    };
-    return BufferToggleSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=bufferToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/bufferToggle.js.map b/node_modules/rxjs/internal/operators/bufferToggle.js.map
deleted file mode 100644
index 41cced9..0000000
--- a/node_modules/rxjs/internal/operators/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/bufferWhen.d.ts b/node_modules/rxjs/internal/operators/bufferWhen.d.ts
deleted file mode 100644
index cffbe35..0000000
--- a/node_modules/rxjs/internal/operators/bufferWhen.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Buffers the source Observable values, using a factory function of closing
- * Observables to determine when to close, emit, and reset the buffer.
- *
- * <span class="informal">Collects values from the past as an array. When it
- * starts collecting values, it calls a function that returns an Observable that
- * tells when to close the buffer and restart collecting.</span>
- *
- * ![](bufferWhen.png)
- *
- * Opens a buffer immediately, then closes the buffer when the observable
- * returned by calling `closingSelector` function emits a value. When it closes
- * the buffer, it immediately opens a new buffer and repeats the process.
- *
- * ## Example
- *
- * Emit an array of the last clicks every [1-5] random seconds
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { bufferWhen } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferWhen(() =>
- *   interval(1000 + Math.random() * 4000)
- * ));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link windowWhen}
- *
- * @param {function(): Observable} closingSelector A function that takes no
- * arguments and returns an Observable that signals buffer closure.
- * @return {Observable<T[]>} An observable of arrays of buffered values.
- * @method bufferWhen
- * @owner Observable
- */
-export declare function bufferWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/bufferWhen.js b/node_modules/rxjs/internal/operators/bufferWhen.js
deleted file mode 100644
index 159f2fc..0000000
--- a/node_modules/rxjs/internal/operators/bufferWhen.js
+++ /dev/null
@@ -1,96 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscription_1 = require("../Subscription");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function bufferWhen(closingSelector) {
-    return function (source) {
-        return source.lift(new BufferWhenOperator(closingSelector));
-    };
-}
-exports.bufferWhen = bufferWhen;
-var BufferWhenOperator = (function () {
-    function BufferWhenOperator(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    BufferWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
-    };
-    return BufferWhenOperator;
-}());
-var BufferWhenSubscriber = (function (_super) {
-    __extends(BufferWhenSubscriber, _super);
-    function BufferWhenSubscriber(destination, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.closingSelector = closingSelector;
-        _this.subscribing = false;
-        _this.openBuffer();
-        return _this;
-    }
-    BufferWhenSubscriber.prototype._next = function (value) {
-        this.buffer.push(value);
-    };
-    BufferWhenSubscriber.prototype._complete = function () {
-        var buffer = this.buffer;
-        if (buffer) {
-            this.destination.next(buffer);
-        }
-        _super.prototype._complete.call(this);
-    };
-    BufferWhenSubscriber.prototype._unsubscribe = function () {
-        this.buffer = null;
-        this.subscribing = false;
-    };
-    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openBuffer();
-    };
-    BufferWhenSubscriber.prototype.notifyComplete = function () {
-        if (this.subscribing) {
-            this.complete();
-        }
-        else {
-            this.openBuffer();
-        }
-    };
-    BufferWhenSubscriber.prototype.openBuffer = function () {
-        var closingSubscription = this.closingSubscription;
-        if (closingSubscription) {
-            this.remove(closingSubscription);
-            closingSubscription.unsubscribe();
-        }
-        var buffer = this.buffer;
-        if (this.buffer) {
-            this.destination.next(buffer);
-        }
-        this.buffer = [];
-        var closingNotifier;
-        try {
-            var closingSelector = this.closingSelector;
-            closingNotifier = closingSelector();
-        }
-        catch (err) {
-            return this.error(err);
-        }
-        closingSubscription = new Subscription_1.Subscription();
-        this.closingSubscription = closingSubscription;
-        this.add(closingSubscription);
-        this.subscribing = true;
-        closingSubscription.add(subscribeToResult_1.subscribeToResult(this, closingNotifier));
-        this.subscribing = false;
-    };
-    return BufferWhenSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=bufferWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/bufferWhen.js.map b/node_modules/rxjs/internal/operators/bufferWhen.js.map
deleted file mode 100644
index 4098d1b..0000000
--- a/node_modules/rxjs/internal/operators/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/catchError.d.ts b/node_modules/rxjs/internal/operators/catchError.d.ts
deleted file mode 100644
index 3c4759b..0000000
--- a/node_modules/rxjs/internal/operators/catchError.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function catchError<T, O extends ObservableInput<any>>(selector: (err: any, caught: Observable<T>) => O): OperatorFunction<T, T | ObservedValueOf<O>>;
diff --git a/node_modules/rxjs/internal/operators/catchError.js b/node_modules/rxjs/internal/operators/catchError.js
deleted file mode 100644
index 55a06a0..0000000
--- a/node_modules/rxjs/internal/operators/catchError.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function catchError(selector) {
-    return function catchErrorOperatorFunction(source) {
-        var operator = new CatchOperator(selector);
-        var caught = source.lift(operator);
-        return (operator.caught = caught);
-    };
-}
-exports.catchError = catchError;
-var CatchOperator = (function () {
-    function CatchOperator(selector) {
-        this.selector = selector;
-    }
-    CatchOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
-    };
-    return CatchOperator;
-}());
-var CatchSubscriber = (function (_super) {
-    __extends(CatchSubscriber, _super);
-    function CatchSubscriber(destination, selector, caught) {
-        var _this = _super.call(this, destination) || this;
-        _this.selector = selector;
-        _this.caught = caught;
-        return _this;
-    }
-    CatchSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var result = void 0;
-            try {
-                result = this.selector(err, this.caught);
-            }
-            catch (err2) {
-                _super.prototype.error.call(this, err2);
-                return;
-            }
-            this._unsubscribeAndRecycle();
-            var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined);
-            this.add(innerSubscriber);
-            var innerSubscription = subscribeToResult_1.subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                this.add(innerSubscription);
-            }
-        }
-    };
-    return CatchSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=catchError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/catchError.js.map b/node_modules/rxjs/internal/operators/catchError.js.map
deleted file mode 100644
index 9a8694d..0000000
--- a/node_modules/rxjs/internal/operators/catchError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catchError.js","sources":["../../src/internal/operators/catchError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,sDAAqD;AACrD,sDAAqD;AACrD,+DAA8D;AAmF9D,SAAgB,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,IAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AARD,gCAQC;AAED;IAGE,uBAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAoC,mCAAyB;IAC3D,yBAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA6D;QACrE,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAOD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAM,SAAK,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,iBAAM,KAAK,YAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,IAAM,iBAAiB,GAAG,qCAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAIjG,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAoC,iCAAe,GAiClD"}
diff --git a/node_modules/rxjs/internal/operators/combineAll.d.ts b/node_modules/rxjs/internal/operators/combineAll.d.ts
deleted file mode 100644
index ba3b82f..0000000
--- a/node_modules/rxjs/internal/operators/combineAll.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { OperatorFunction, ObservableInput } from '../types';
-export declare function combineAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;
-export declare function combineAll<T>(): OperatorFunction<any, T[]>;
-export declare function combineAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;
-export declare function combineAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;
diff --git a/node_modules/rxjs/internal/operators/combineAll.js b/node_modules/rxjs/internal/operators/combineAll.js
deleted file mode 100644
index aa6f42e..0000000
--- a/node_modules/rxjs/internal/operators/combineAll.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var combineLatest_1 = require("../observable/combineLatest");
-function combineAll(project) {
-    return function (source) { return source.lift(new combineLatest_1.CombineLatestOperator(project)); };
-}
-exports.combineAll = combineAll;
-//# sourceMappingURL=combineAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/combineAll.js.map b/node_modules/rxjs/internal/operators/combineAll.js.map
deleted file mode 100644
index a19279a..0000000
--- a/node_modules/rxjs/internal/operators/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../../src/internal/operators/combineAll.ts"],"names":[],"mappings":";;AAAA,6DAAoE;AAsDpE,SAAgB,UAAU,CAAO,OAAsC;IACrE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,qCAAqB,CAAC,OAAO,CAAC,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAFD,gCAEC"}
diff --git a/node_modules/rxjs/internal/operators/combineLatest.d.ts b/node_modules/rxjs/internal/operators/combineLatest.d.ts
deleted file mode 100644
index d087978..0000000
--- a/node_modules/rxjs/internal/operators/combineLatest.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { ObservableInput, OperatorFunction } from '../types';
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, R>(array: ObservableInput<T>[]): OperatorFunction<T, Array<T>>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export declare function combineLatest<T, TOther, R>(array: ObservableInput<TOther>[], project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/combineLatest.js b/node_modules/rxjs/internal/operators/combineLatest.js
deleted file mode 100644
index 7902e0a..0000000
--- a/node_modules/rxjs/internal/operators/combineLatest.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isArray_1 = require("../util/isArray");
-var combineLatest_1 = require("../observable/combineLatest");
-var from_1 = require("../observable/from");
-var none = {};
-function combineLatest() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    var project = null;
-    if (typeof observables[observables.length - 1] === 'function') {
-        project = observables.pop();
-    }
-    if (observables.length === 1 && isArray_1.isArray(observables[0])) {
-        observables = observables[0].slice();
-    }
-    return function (source) { return source.lift.call(from_1.from([source].concat(observables)), new combineLatest_1.CombineLatestOperator(project)); };
-}
-exports.combineLatest = combineLatest;
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/combineLatest.js.map b/node_modules/rxjs/internal/operators/combineLatest.js.map
deleted file mode 100644
index b4d58f0..0000000
--- a/node_modules/rxjs/internal/operators/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":";;AACA,2CAA0C;AAC1C,6DAAoE;AACpE,2CAA0C;AAI1C,IAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,SAAgB,aAAa;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAI,EAAE,MAAM,SAAK,WAAW,EAAE,EAAE,IAAI,qCAAqB,CAAC,OAAO,CAAC,CAAC,EAApF,CAAoF,CAAC;AACzH,CAAC;AAfD,sCAeC"}
diff --git a/node_modules/rxjs/internal/operators/concat.d.ts b/node_modules/rxjs/internal/operators/concat.d.ts
deleted file mode 100644
index 2b588f7..0000000
--- a/node_modules/rxjs/internal/operators/concat.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T>(...observables: Array<ObservableInput<T> | SchedulerLike>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static concat. */
-export declare function concat<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike>): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/concat.js b/node_modules/rxjs/internal/operators/concat.js
deleted file mode 100644
index f3b05e5..0000000
--- a/node_modules/rxjs/internal/operators/concat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var concat_1 = require("../observable/concat");
-function concat() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function (source) { return source.lift.call(concat_1.concat.apply(void 0, [source].concat(observables))); };
-}
-exports.concat = concat;
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/concat.js.map b/node_modules/rxjs/internal/operators/concat.js.map
deleted file mode 100644
index 01ef183..0000000
--- a/node_modules/rxjs/internal/operators/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../../src/internal/operators/concat.ts"],"names":[],"mappings":";;AAAA,+CAA+D;AA0B/D,SAAgB,MAAM;IAAO,qBAA2D;SAA3D,UAA2D,EAA3D,qBAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAY,gBAAC,MAAM,SAAK,WAAW,GAAE,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAFD,wBAEC"}
diff --git a/node_modules/rxjs/internal/operators/concatAll.d.ts b/node_modules/rxjs/internal/operators/concatAll.d.ts
deleted file mode 100644
index 7b7d929..0000000
--- a/node_modules/rxjs/internal/operators/concatAll.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { OperatorFunction, ObservableInput } from '../types';
-export declare function concatAll<T>(): OperatorFunction<ObservableInput<T>, T>;
-export declare function concatAll<R>(): OperatorFunction<any, R>;
diff --git a/node_modules/rxjs/internal/operators/concatAll.js b/node_modules/rxjs/internal/operators/concatAll.js
deleted file mode 100644
index fb98840..0000000
--- a/node_modules/rxjs/internal/operators/concatAll.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var mergeAll_1 = require("./mergeAll");
-function concatAll() {
-    return mergeAll_1.mergeAll(1);
-}
-exports.concatAll = concatAll;
-//# sourceMappingURL=concatAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/concatAll.js.map b/node_modules/rxjs/internal/operators/concatAll.js.map
deleted file mode 100644
index e79dff9..0000000
--- a/node_modules/rxjs/internal/operators/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../../src/internal/operators/concatAll.ts"],"names":[],"mappings":";;AACA,uCAAsC;AAgEtC,SAAgB,SAAS;IACvB,OAAO,mBAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC;AAFD,8BAEC"}
diff --git a/node_modules/rxjs/internal/operators/concatMap.d.ts b/node_modules/rxjs/internal/operators/concatMap.d.ts
deleted file mode 100644
index 9dcf300..0000000
--- a/node_modules/rxjs/internal/operators/concatMap.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export declare function concatMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/concatMap.js b/node_modules/rxjs/internal/operators/concatMap.js
deleted file mode 100644
index 91ac226..0000000
--- a/node_modules/rxjs/internal/operators/concatMap.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var mergeMap_1 = require("./mergeMap");
-function concatMap(project, resultSelector) {
-    return mergeMap_1.mergeMap(project, resultSelector, 1);
-}
-exports.concatMap = concatMap;
-//# sourceMappingURL=concatMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/concatMap.js.map b/node_modules/rxjs/internal/operators/concatMap.js.map
deleted file mode 100644
index 3e80fad..0000000
--- a/node_modules/rxjs/internal/operators/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../../src/internal/operators/concatMap.ts"],"names":[],"mappings":";;AAAA,uCAAsC;AAuEtC,SAAgB,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,mBAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AALD,8BAKC"}
diff --git a/node_modules/rxjs/internal/operators/concatMapTo.d.ts b/node_modules/rxjs/internal/operators/concatMapTo.d.ts
deleted file mode 100644
index ab69336..0000000
--- a/node_modules/rxjs/internal/operators/concatMapTo.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function concatMapTo<T, O extends ObservableInput<any>>(observable: O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated */
-export declare function concatMapTo<T, O extends ObservableInput<any>>(observable: O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated */
-export declare function concatMapTo<T, R, O extends ObservableInput<any>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/concatMapTo.js b/node_modules/rxjs/internal/operators/concatMapTo.js
deleted file mode 100644
index fe4d95c..0000000
--- a/node_modules/rxjs/internal/operators/concatMapTo.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var concatMap_1 = require("./concatMap");
-function concatMapTo(innerObservable, resultSelector) {
-    return concatMap_1.concatMap(function () { return innerObservable; }, resultSelector);
-}
-exports.concatMapTo = concatMapTo;
-//# sourceMappingURL=concatMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/concatMapTo.js.map b/node_modules/rxjs/internal/operators/concatMapTo.js.map
deleted file mode 100644
index fc24b2c..0000000
--- a/node_modules/rxjs/internal/operators/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AAmExC,SAAgB,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC;AALD,kCAKC"}
diff --git a/node_modules/rxjs/internal/operators/count.d.ts b/node_modules/rxjs/internal/operators/count.d.ts
deleted file mode 100644
index b6f5e32..0000000
--- a/node_modules/rxjs/internal/operators/count.d.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Counts the number of emissions on the source and emits that number when the
- * source completes.
- *
- * <span class="informal">Tells how many values were emitted, when the source
- * completes.</span>
- *
- * ![](count.png)
- *
- * `count` transforms an Observable that emits values into an Observable that
- * emits a single value that represents the number of values emitted by the
- * source Observable. If the source Observable terminates with an error, `count`
- * will pass this error notification along without emitting a value first. If
- * the source Observable does not terminate at all, `count` will neither emit
- * a value nor terminate. This operator takes an optional `predicate` function
- * as argument, in which case the output emission will represent the number of
- * source values that matched `true` with the `predicate`.
- *
- * ## Examples
- *
- * Counts how many seconds have passed before the first click happened
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { count, takeUntil } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));
- * const result = secondsBeforeClick.pipe(count());
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Counts how many odd numbers are there between 1 and 7
- * ```ts
- * import { range } from 'rxjs';
- * import { count } from 'rxjs/operators';
- *
- * const numbers = range(1, 7);
- * const result = numbers.pipe(count(i => i % 2 === 1));
- * result.subscribe(x => console.log(x));
- * // Results in:
- * // 4
- * ```
- *
- * @see {@link max}
- * @see {@link min}
- * @see {@link reduce}
- *
- * @param {function(value: T, i: number, source: Observable<T>): boolean} [predicate] A
- * boolean function to select what values are to be counted. It is provided with
- * arguments of:
- * - `value`: the value from the source Observable.
- * - `index`: the (zero-based) "index" of the value from the source Observable.
- * - `source`: the source Observable instance itself.
- * @return {Observable} An Observable of one number that represents the count as
- * described above.
- * @method count
- * @owner Observable
- */
-export declare function count<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): OperatorFunction<T, number>;
diff --git a/node_modules/rxjs/internal/operators/count.js b/node_modules/rxjs/internal/operators/count.js
deleted file mode 100644
index 2dfc616..0000000
--- a/node_modules/rxjs/internal/operators/count.js
+++ /dev/null
@@ -1,68 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function count(predicate) {
-    return function (source) { return source.lift(new CountOperator(predicate, source)); };
-}
-exports.count = count;
-var CountOperator = (function () {
-    function CountOperator(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    CountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
-    };
-    return CountOperator;
-}());
-var CountSubscriber = (function (_super) {
-    __extends(CountSubscriber, _super);
-    function CountSubscriber(destination, predicate, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.count = 0;
-        _this.index = 0;
-        return _this;
-    }
-    CountSubscriber.prototype._next = function (value) {
-        if (this.predicate) {
-            this._tryPredicate(value);
-        }
-        else {
-            this.count++;
-        }
-    };
-    CountSubscriber.prototype._tryPredicate = function (value) {
-        var result;
-        try {
-            result = this.predicate(value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.count++;
-        }
-    };
-    CountSubscriber.prototype._complete = function () {
-        this.destination.next(this.count);
-        this.destination.complete();
-    };
-    return CountSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=count.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/count.js.map b/node_modules/rxjs/internal/operators/count.js.map
deleted file mode 100644
index 9d09853..0000000
--- a/node_modules/rxjs/internal/operators/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../../src/internal/operators/count.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,4CAA2C;AA6D3C,SAAgB,KAAK,CAAI,SAAuE;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAjD,CAAiD,CAAC;AACtF,CAAC;AAFD,sBAEC;AAED;IACE,uBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,mCAAa;IAI5C,yBAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,uCAAa,GAArB,UAAsB,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AArCD,CAAiC,uBAAU,GAqC1C"}
diff --git a/node_modules/rxjs/internal/operators/debounce.d.ts b/node_modules/rxjs/internal/operators/debounce.d.ts
deleted file mode 100644
index 3ef496b..0000000
--- a/node_modules/rxjs/internal/operators/debounce.d.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';
-/**
- * Emits a value from the source Observable only after a particular time span
- * determined by another Observable has passed without another source emission.
- *
- * <span class="informal">It's like {@link debounceTime}, but the time span of
- * emission silence is determined by a second Observable.</span>
- *
- * ![](debounce.png)
- *
- * `debounce` delays values emitted by the source Observable, but drops previous
- * pending delayed emissions if a new value arrives on the source Observable.
- * This operator keeps track of the most recent value from the source
- * Observable, and spawns a duration Observable by calling the
- * `durationSelector` function. The value is emitted only when the duration
- * Observable emits a value or completes, and if no other value was emitted on
- * the source Observable since the duration Observable was spawned. If a new
- * value appears before the duration Observable emits, the previous value will
- * be dropped and will not be emitted on the output Observable.
- *
- * Like {@link debounceTime}, this is a rate-limiting operator, and also a
- * delay-like operator since output emissions do not necessarily occur at the
- * same time as they did on the source Observable.
- *
- * ## Example
- * Emit the most recent click after a burst of clicks
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { debounce } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(debounce(() => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounceTime}
- * @see {@link delayWhen}
- * @see {@link throttle}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the timeout
- * duration for each source value, returned as an Observable or a Promise.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified duration Observable returned by
- * `durationSelector`, and may drop some values if they occur too frequently.
- * @method debounce
- * @owner Observable
- */
-export declare function debounce<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/debounce.js b/node_modules/rxjs/internal/operators/debounce.js
deleted file mode 100644
index 4568bc0..0000000
--- a/node_modules/rxjs/internal/operators/debounce.js
+++ /dev/null
@@ -1,90 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function debounce(durationSelector) {
-    return function (source) { return source.lift(new DebounceOperator(durationSelector)); };
-}
-exports.debounce = debounce;
-var DebounceOperator = (function () {
-    function DebounceOperator(durationSelector) {
-        this.durationSelector = durationSelector;
-    }
-    DebounceOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
-    };
-    return DebounceOperator;
-}());
-var DebounceSubscriber = (function (_super) {
-    __extends(DebounceSubscriber, _super);
-    function DebounceSubscriber(destination, durationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.durationSelector = durationSelector;
-        _this.hasValue = false;
-        _this.durationSubscription = null;
-        return _this;
-    }
-    DebounceSubscriber.prototype._next = function (value) {
-        try {
-            var result = this.durationSelector.call(this, value);
-            if (result) {
-                this._tryNext(value, result);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    DebounceSubscriber.prototype._complete = function () {
-        this.emitValue();
-        this.destination.complete();
-    };
-    DebounceSubscriber.prototype._tryNext = function (value, duration) {
-        var subscription = this.durationSubscription;
-        this.value = value;
-        this.hasValue = true;
-        if (subscription) {
-            subscription.unsubscribe();
-            this.remove(subscription);
-        }
-        subscription = subscribeToResult_1.subscribeToResult(this, duration);
-        if (subscription && !subscription.closed) {
-            this.add(this.durationSubscription = subscription);
-        }
-    };
-    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    };
-    DebounceSubscriber.prototype.notifyComplete = function () {
-        this.emitValue();
-    };
-    DebounceSubscriber.prototype.emitValue = function () {
-        if (this.hasValue) {
-            var value = this.value;
-            var subscription = this.durationSubscription;
-            if (subscription) {
-                this.durationSubscription = null;
-                subscription.unsubscribe();
-                this.remove(subscription);
-            }
-            this.value = null;
-            this.hasValue = false;
-            _super.prototype._next.call(this, value);
-        }
-    };
-    return DebounceSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=debounce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/debounce.js.map b/node_modules/rxjs/internal/operators/debounce.js.map
deleted file mode 100644
index fdc463d..0000000
--- a/node_modules/rxjs/internal/operators/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../../src/internal/operators/debounce.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/debounceTime.d.ts b/node_modules/rxjs/internal/operators/debounceTime.d.ts
deleted file mode 100644
index cc9bc7b..0000000
--- a/node_modules/rxjs/internal/operators/debounceTime.d.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Emits a value from the source Observable only after a particular time span
- * has passed without another source emission.
- *
- * <span class="informal">It's like {@link delay}, but passes only the most
- * recent value from each burst of emissions.</span>
- *
- * ![](debounceTime.png)
- *
- * `debounceTime` delays values emitted by the source Observable, but drops
- * previous pending delayed emissions if a new value arrives on the source
- * Observable. This operator keeps track of the most recent value from the
- * source Observable, and emits that only when `dueTime` enough time has passed
- * without any other value appearing on the source Observable. If a new value
- * appears before `dueTime` silence occurs, the previous value will be dropped
- * and will not be emitted on the output Observable.
- *
- * This is a rate-limiting operator, because it is impossible for more than one
- * value to be emitted in any time window of duration `dueTime`, but it is also
- * a delay-like operator since output emissions do not occur at the same time as
- * they did on the source Observable. Optionally takes a {@link SchedulerLike} for
- * managing timers.
- *
- * ## Example
- * Emit the most recent click after a burst of clicks
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { debounceTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(debounceTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link auditTime}
- * @see {@link debounce}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttleTime}
- *
- * @param {number} dueTime The timeout duration in milliseconds (or the time
- * unit determined internally by the optional `scheduler`) for the window of
- * time required to wait for emission silence before emitting the most recent
- * source value.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the timeout for each value.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified `dueTime`, and may drop some values if they occur
- * too frequently.
- * @method debounceTime
- * @owner Observable
- */
-export declare function debounceTime<T>(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/debounceTime.js b/node_modules/rxjs/internal/operators/debounceTime.js
deleted file mode 100644
index df37b18..0000000
--- a/node_modules/rxjs/internal/operators/debounceTime.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var async_1 = require("../scheduler/async");
-function debounceTime(dueTime, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };
-}
-exports.debounceTime = debounceTime;
-var DebounceTimeOperator = (function () {
-    function DebounceTimeOperator(dueTime, scheduler) {
-        this.dueTime = dueTime;
-        this.scheduler = scheduler;
-    }
-    DebounceTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
-    };
-    return DebounceTimeOperator;
-}());
-var DebounceTimeSubscriber = (function (_super) {
-    __extends(DebounceTimeSubscriber, _super);
-    function DebounceTimeSubscriber(destination, dueTime, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.dueTime = dueTime;
-        _this.scheduler = scheduler;
-        _this.debouncedSubscription = null;
-        _this.lastValue = null;
-        _this.hasValue = false;
-        return _this;
-    }
-    DebounceTimeSubscriber.prototype._next = function (value) {
-        this.clearDebounce();
-        this.lastValue = value;
-        this.hasValue = true;
-        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));
-    };
-    DebounceTimeSubscriber.prototype._complete = function () {
-        this.debouncedNext();
-        this.destination.complete();
-    };
-    DebounceTimeSubscriber.prototype.debouncedNext = function () {
-        this.clearDebounce();
-        if (this.hasValue) {
-            var lastValue = this.lastValue;
-            this.lastValue = null;
-            this.hasValue = false;
-            this.destination.next(lastValue);
-        }
-    };
-    DebounceTimeSubscriber.prototype.clearDebounce = function () {
-        var debouncedSubscription = this.debouncedSubscription;
-        if (debouncedSubscription !== null) {
-            this.remove(debouncedSubscription);
-            debouncedSubscription.unsubscribe();
-            this.debouncedSubscription = null;
-        }
-    };
-    return DebounceTimeSubscriber;
-}(Subscriber_1.Subscriber));
-function dispatchNext(subscriber) {
-    subscriber.debouncedNext();
-}
-//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/debounceTime.js.map b/node_modules/rxjs/internal/operators/debounceTime.js.map
deleted file mode 100644
index ea09c21..0000000
--- a/node_modules/rxjs/internal/operators/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,4CAA2C;AAuD3C,SAAgB,YAAY,CAAI,OAAe,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC/E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAAC;AAC9F,CAAC;AAFD,oCAEC;AAED;IACE,8BAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,0CAAa;IAKnD,gCAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAQ;QACf,eAAS,GAAT,SAAS,CAAe;QANpC,2BAAqB,GAAiB,IAAI,CAAC;QAC3C,eAAS,GAAM,IAAI,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,8CAAa,GAAb;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACT,IAAA,0BAAS,CAAU;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,8CAAa,GAArB;QACE,IAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,CAAwC,uBAAU,GAgDjD;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"}
diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts b/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts
deleted file mode 100644
index bd66791..0000000
--- a/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-export declare function defaultIfEmpty<T>(defaultValue?: T): MonoTypeOperatorFunction<T>;
-export declare function defaultIfEmpty<T, R>(defaultValue?: R): OperatorFunction<T, T | R>;
diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/internal/operators/defaultIfEmpty.js
deleted file mode 100644
index 5c955f3..0000000
--- a/node_modules/rxjs/internal/operators/defaultIfEmpty.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function defaultIfEmpty(defaultValue) {
-    if (defaultValue === void 0) { defaultValue = null; }
-    return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };
-}
-exports.defaultIfEmpty = defaultIfEmpty;
-var DefaultIfEmptyOperator = (function () {
-    function DefaultIfEmptyOperator(defaultValue) {
-        this.defaultValue = defaultValue;
-    }
-    DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
-    };
-    return DefaultIfEmptyOperator;
-}());
-var DefaultIfEmptySubscriber = (function (_super) {
-    __extends(DefaultIfEmptySubscriber, _super);
-    function DefaultIfEmptySubscriber(destination, defaultValue) {
-        var _this = _super.call(this, destination) || this;
-        _this.defaultValue = defaultValue;
-        _this.isEmpty = true;
-        return _this;
-    }
-    DefaultIfEmptySubscriber.prototype._next = function (value) {
-        this.isEmpty = false;
-        this.destination.next(value);
-    };
-    DefaultIfEmptySubscriber.prototype._complete = function () {
-        if (this.isEmpty) {
-            this.destination.next(this.defaultValue);
-        }
-        this.destination.complete();
-    };
-    return DefaultIfEmptySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=defaultIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map
deleted file mode 100644
index 4af7d5d..0000000
--- a/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA4C3C,SAAgB,cAAc,CAAO,YAAsB;IAAtB,6BAAA,EAAA,mBAAsB;IACzD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,EAA1E,CAA0E,CAAC;AAC/G,CAAC;AAFD,wCAEC;AAED;IAEE,gCAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,qCAAI,GAAJ,UAAK,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAA6C,4CAAa;IAGxD,kCAAY,WAA8B,EAAU,YAAe;QAAnE,YACE,kBAAM,WAAW,CAAC,SACnB;QAFmD,kBAAY,GAAZ,YAAY,CAAG;QAF3D,aAAO,GAAY,IAAI,CAAC;;IAIhC,CAAC;IAES,wCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,4CAAS,GAAnB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,+BAAC;AAAD,CAAC,AAlBD,CAA6C,uBAAU,GAkBtD"}
diff --git a/node_modules/rxjs/internal/operators/delay.d.ts b/node_modules/rxjs/internal/operators/delay.d.ts
deleted file mode 100644
index 4b3e2f0..0000000
--- a/node_modules/rxjs/internal/operators/delay.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Delays the emission of items from the source Observable by a given timeout or
- * until a given Date.
- *
- * <span class="informal">Time shifts each item by some specified amount of
- * milliseconds.</span>
- *
- * ![](delay.png)
- *
- * If the delay argument is a Number, this operator time shifts the source
- * Observable by that amount of time expressed in milliseconds. The relative
- * time intervals between the values are preserved.
- *
- * If the delay argument is a Date, this operator time shifts the start of the
- * Observable execution until the given date occurs.
- *
- * ## Examples
- * Delay each click by one second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { delay } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second
- * delayedClicks.subscribe(x => console.log(x));
- * ```
- *
- * Delay all clicks until a future date happens
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { delay } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const date = new Date('March 15, 2050 12:00:00'); // in the future
- * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date
- * delayedClicks.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link debounceTime}
- * @see {@link delayWhen}
- *
- * @param {number|Date} delay The delay duration in milliseconds (a `number`) or
- * a `Date` until which the emission of the source items is delayed.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the time-shift for each item.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified timeout or Date.
- * @method delay
- * @owner Observable
- */
-export declare function delay<T>(delay: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/delay.js b/node_modules/rxjs/internal/operators/delay.js
deleted file mode 100644
index b05d8b8..0000000
--- a/node_modules/rxjs/internal/operators/delay.js
+++ /dev/null
@@ -1,105 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var isDate_1 = require("../util/isDate");
-var Subscriber_1 = require("../Subscriber");
-var Notification_1 = require("../Notification");
-function delay(delay, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    var absoluteDelay = isDate_1.isDate(delay);
-    var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);
-    return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };
-}
-exports.delay = delay;
-var DelayOperator = (function () {
-    function DelayOperator(delay, scheduler) {
-        this.delay = delay;
-        this.scheduler = scheduler;
-    }
-    DelayOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
-    };
-    return DelayOperator;
-}());
-var DelaySubscriber = (function (_super) {
-    __extends(DelaySubscriber, _super);
-    function DelaySubscriber(destination, delay, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.delay = delay;
-        _this.scheduler = scheduler;
-        _this.queue = [];
-        _this.active = false;
-        _this.errored = false;
-        return _this;
-    }
-    DelaySubscriber.dispatch = function (state) {
-        var source = state.source;
-        var queue = source.queue;
-        var scheduler = state.scheduler;
-        var destination = state.destination;
-        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
-            queue.shift().notification.observe(destination);
-        }
-        if (queue.length > 0) {
-            var delay_1 = Math.max(0, queue[0].time - scheduler.now());
-            this.schedule(state, delay_1);
-        }
-        else {
-            this.unsubscribe();
-            source.active = false;
-        }
-    };
-    DelaySubscriber.prototype._schedule = function (scheduler) {
-        this.active = true;
-        var destination = this.destination;
-        destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {
-            source: this, destination: this.destination, scheduler: scheduler
-        }));
-    };
-    DelaySubscriber.prototype.scheduleNotification = function (notification) {
-        if (this.errored === true) {
-            return;
-        }
-        var scheduler = this.scheduler;
-        var message = new DelayMessage(scheduler.now() + this.delay, notification);
-        this.queue.push(message);
-        if (this.active === false) {
-            this._schedule(scheduler);
-        }
-    };
-    DelaySubscriber.prototype._next = function (value) {
-        this.scheduleNotification(Notification_1.Notification.createNext(value));
-    };
-    DelaySubscriber.prototype._error = function (err) {
-        this.errored = true;
-        this.queue = [];
-        this.destination.error(err);
-        this.unsubscribe();
-    };
-    DelaySubscriber.prototype._complete = function () {
-        this.scheduleNotification(Notification_1.Notification.createComplete());
-        this.unsubscribe();
-    };
-    return DelaySubscriber;
-}(Subscriber_1.Subscriber));
-var DelayMessage = (function () {
-    function DelayMessage(time, notification) {
-        this.time = time;
-        this.notification = notification;
-    }
-    return DelayMessage;
-}());
-//# sourceMappingURL=delay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/delay.js.map b/node_modules/rxjs/internal/operators/delay.js.map
deleted file mode 100644
index 5453347..0000000
--- a/node_modules/rxjs/internal/operators/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../../src/internal/operators/delay.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,yCAAwC;AAExC,4CAA2C;AAE3C,gDAA+C;AAsD/C,SAAgB,KAAK,CAAI,KAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IACvD,IAAM,aAAa,GAAG,eAAM,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAS,KAAK,CAAC,CAAC;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAnD,CAAmD,CAAC;AACxF,CAAC;AALD,sBAKC;AAED;IACE,uBAAoB,KAAa,EACb,SAAwB;QADxB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAaD;IAAiC,mCAAa;IAwB5C,yBAAY,WAA0B,EAClB,KAAa,EACb,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,eAAS,GAAT,SAAS,CAAe;QAzBpC,WAAK,GAA2B,EAAE,CAAC;QACnC,YAAM,GAAY,KAAK,CAAC;QACxB,aAAO,GAAY,KAAK,CAAC;;IAyBjC,CAAC;IAvBc,wBAAQ,GAAvB,UAAiE,KAAoB;QACnF,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;YACjE,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAM,OAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;IACH,CAAC;IAQO,mCAAS,GAAjB,UAAkB,SAAwB;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE;YACtF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS;SAClE,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,8CAAoB,GAA5B,UAA6B,YAA6B;QACxD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3B;IACH,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAES,gCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,oBAAoB,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AAnED,CAAiC,uBAAU,GAmE1C;AAED;IACE,sBAA4B,IAAY,EACZ,YAA6B;QAD7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAiB;IACzD,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,IAIC"}
diff --git a/node_modules/rxjs/internal/operators/delayWhen.d.ts b/node_modules/rxjs/internal/operators/delayWhen.d.ts
deleted file mode 100644
index 8ead9aa..0000000
--- a/node_modules/rxjs/internal/operators/delayWhen.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */
-export declare function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<never>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;
-export declare function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<any>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/delayWhen.js b/node_modules/rxjs/internal/operators/delayWhen.js
deleted file mode 100644
index c7451da..0000000
--- a/node_modules/rxjs/internal/operators/delayWhen.js
+++ /dev/null
@@ -1,146 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Observable_1 = require("../Observable");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function delayWhen(delayDurationSelector, subscriptionDelay) {
-    if (subscriptionDelay) {
-        return function (source) {
-            return new SubscriptionDelayObservable(source, subscriptionDelay)
-                .lift(new DelayWhenOperator(delayDurationSelector));
-        };
-    }
-    return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };
-}
-exports.delayWhen = delayWhen;
-var DelayWhenOperator = (function () {
-    function DelayWhenOperator(delayDurationSelector) {
-        this.delayDurationSelector = delayDurationSelector;
-    }
-    DelayWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
-    };
-    return DelayWhenOperator;
-}());
-var DelayWhenSubscriber = (function (_super) {
-    __extends(DelayWhenSubscriber, _super);
-    function DelayWhenSubscriber(destination, delayDurationSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.delayDurationSelector = delayDurationSelector;
-        _this.completed = false;
-        _this.delayNotifierSubscriptions = [];
-        _this.index = 0;
-        return _this;
-    }
-    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(outerValue);
-        this.removeSubscription(innerSub);
-        this.tryComplete();
-    };
-    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-        var value = this.removeSubscription(innerSub);
-        if (value) {
-            this.destination.next(value);
-        }
-        this.tryComplete();
-    };
-    DelayWhenSubscriber.prototype._next = function (value) {
-        var index = this.index++;
-        try {
-            var delayNotifier = this.delayDurationSelector(value, index);
-            if (delayNotifier) {
-                this.tryDelay(delayNotifier, value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    DelayWhenSubscriber.prototype._complete = function () {
-        this.completed = true;
-        this.tryComplete();
-        this.unsubscribe();
-    };
-    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {
-        subscription.unsubscribe();
-        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
-        if (subscriptionIdx !== -1) {
-            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
-        }
-        return subscription.outerValue;
-    };
-    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {
-        var notifierSubscription = subscribeToResult_1.subscribeToResult(this, delayNotifier, value);
-        if (notifierSubscription && !notifierSubscription.closed) {
-            var destination = this.destination;
-            destination.add(notifierSubscription);
-            this.delayNotifierSubscriptions.push(notifierSubscription);
-        }
-    };
-    DelayWhenSubscriber.prototype.tryComplete = function () {
-        if (this.completed && this.delayNotifierSubscriptions.length === 0) {
-            this.destination.complete();
-        }
-    };
-    return DelayWhenSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-var SubscriptionDelayObservable = (function (_super) {
-    __extends(SubscriptionDelayObservable, _super);
-    function SubscriptionDelayObservable(source, subscriptionDelay) {
-        var _this = _super.call(this) || this;
-        _this.source = source;
-        _this.subscriptionDelay = subscriptionDelay;
-        return _this;
-    }
-    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {
-        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
-    };
-    return SubscriptionDelayObservable;
-}(Observable_1.Observable));
-var SubscriptionDelaySubscriber = (function (_super) {
-    __extends(SubscriptionDelaySubscriber, _super);
-    function SubscriptionDelaySubscriber(parent, source) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        _this.source = source;
-        _this.sourceSubscribed = false;
-        return _this;
-    }
-    SubscriptionDelaySubscriber.prototype._next = function (unused) {
-        this.subscribeToSource();
-    };
-    SubscriptionDelaySubscriber.prototype._error = function (err) {
-        this.unsubscribe();
-        this.parent.error(err);
-    };
-    SubscriptionDelaySubscriber.prototype._complete = function () {
-        this.unsubscribe();
-        this.subscribeToSource();
-    };
-    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {
-        if (!this.sourceSubscribed) {
-            this.sourceSubscribed = true;
-            this.unsubscribe();
-            this.source.subscribe(this.parent);
-        }
-    };
-    return SubscriptionDelaySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/delayWhen.js.map b/node_modules/rxjs/internal/operators/delayWhen.js.map
deleted file mode 100644
index e34ba76..0000000
--- a/node_modules/rxjs/internal/operators/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/dematerialize.d.ts b/node_modules/rxjs/internal/operators/dematerialize.d.ts
deleted file mode 100644
index 063d26d..0000000
--- a/node_modules/rxjs/internal/operators/dematerialize.d.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Notification } from '../Notification';
-import { OperatorFunction } from '../types';
-/**
- * Converts an Observable of {@link Notification} objects into the emissions
- * that they represent.
- *
- * <span class="informal">Unwraps {@link Notification} objects as actual `next`,
- * `error` and `complete` emissions. The opposite of {@link materialize}.</span>
- *
- * ![](dematerialize.png)
- *
- * `dematerialize` is assumed to operate an Observable that only emits
- * {@link Notification} objects as `next` emissions, and does not emit any
- * `error`. Such Observable is the output of a `materialize` operation. Those
- * notifications are then unwrapped using the metadata they contain, and emitted
- * as `next`, `error`, and `complete` on the output Observable.
- *
- * Use this operator in conjunction with {@link materialize}.
- *
- * ## Example
- * Convert an Observable of Notifications to an actual Observable
- * ```ts
- * import { of, Notification } from 'rxjs';
- * import { dematerialize } from 'rxjs/operators';
- *
- * const notifA = new Notification('N', 'A');
- * const notifB = new Notification('N', 'B');
- * const notifE = new Notification('E', undefined,
- *   new TypeError('x.toUpperCase is not a function')
- * );
- * const materialized = of(notifA, notifB, notifE);
- * const upperCase = materialized.pipe(dematerialize());
- * upperCase.subscribe(x => console.log(x), e => console.error(e));
- *
- * // Results in:
- * // A
- * // B
- * // TypeError: x.toUpperCase is not a function
- * ```
- *
- * @see {@link Notification}
- * @see {@link materialize}
- *
- * @return {Observable} An Observable that emits items and notifications
- * embedded in Notification objects emitted by the source Observable.
- * @method dematerialize
- * @owner Observable
- */
-export declare function dematerialize<T>(): OperatorFunction<Notification<T>, T>;
diff --git a/node_modules/rxjs/internal/operators/dematerialize.js b/node_modules/rxjs/internal/operators/dematerialize.js
deleted file mode 100644
index c43aa3f..0000000
--- a/node_modules/rxjs/internal/operators/dematerialize.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function dematerialize() {
-    return function dematerializeOperatorFunction(source) {
-        return source.lift(new DeMaterializeOperator());
-    };
-}
-exports.dematerialize = dematerialize;
-var DeMaterializeOperator = (function () {
-    function DeMaterializeOperator() {
-    }
-    DeMaterializeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DeMaterializeSubscriber(subscriber));
-    };
-    return DeMaterializeOperator;
-}());
-var DeMaterializeSubscriber = (function (_super) {
-    __extends(DeMaterializeSubscriber, _super);
-    function DeMaterializeSubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    DeMaterializeSubscriber.prototype._next = function (value) {
-        value.observe(this.destination);
-    };
-    return DeMaterializeSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=dematerialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/dematerialize.js.map b/node_modules/rxjs/internal/operators/dematerialize.js.map
deleted file mode 100644
index 0e28116..0000000
--- a/node_modules/rxjs/internal/operators/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAkD3C,SAAgB,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAJD,sCAIC;AAED;IAAA;IAIA,CAAC;IAHC,oCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACH,4BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAmE,2CAAa;IAC9E,iCAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,uCAAK,GAAf,UAAgB,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAAmE,uBAAU,GAQ5E"}
diff --git a/node_modules/rxjs/internal/operators/distinct.d.ts b/node_modules/rxjs/internal/operators/distinct.d.ts
deleted file mode 100644
index 3356046..0000000
--- a/node_modules/rxjs/internal/operators/distinct.d.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.
- *
- * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will
- * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the
- * source observable directly with an equality check against previous values.
- *
- * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.
- *
- * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the
- * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`
- * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so
- * that the internal `Set` can be "flushed", basically clearing it of values.
- *
- * ## Examples
- * A simple example with numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { distinct } from 'rxjs/operators';
- *
- * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(
- *     distinct(),
- *   )
- *   .subscribe(x => console.log(x)); // 1, 2, 3, 4
- * ```
- *
- * An example using a keySelector function
- * ```typescript
- * import { of } from 'rxjs';
- * import { distinct } from 'rxjs/operators';
- *
- * interface Person {
- *    age: number,
- *    name: string
- * }
- *
- * of<Person>(
- *     { age: 4, name: 'Foo'},
- *     { age: 7, name: 'Bar'},
- *     { age: 5, name: 'Foo'},
- *   ).pipe(
- *     distinct((p: Person) => p.name),
- *   )
- *   .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo' }
- * // { age: 7, name: 'Bar' }
- * ```
- * @see {@link distinctUntilChanged}
- * @see {@link distinctUntilKeyChanged}
- *
- * @param {function} [keySelector] Optional function to select which value you want to check as distinct.
- * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.
- * @return {Observable} An Observable that emits items from the source Observable with distinct values.
- * @method distinct
- * @owner Observable
- */
-export declare function distinct<T, K>(keySelector?: (value: T) => K, flushes?: Observable<any>): MonoTypeOperatorFunction<T>;
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class DistinctSubscriber<T, K> extends OuterSubscriber<T, T> {
-    private keySelector;
-    private values;
-    constructor(destination: Subscriber<T>, keySelector: (value: T) => K, flushes: Observable<any>);
-    notifyNext(outerValue: T, innerValue: T, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, T>): void;
-    notifyError(error: any, innerSub: InnerSubscriber<T, T>): void;
-    protected _next(value: T): void;
-    private _useKeySelector;
-    private _finalizeNext;
-}
diff --git a/node_modules/rxjs/internal/operators/distinct.js b/node_modules/rxjs/internal/operators/distinct.js
deleted file mode 100644
index f9c7d84..0000000
--- a/node_modules/rxjs/internal/operators/distinct.js
+++ /dev/null
@@ -1,79 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function distinct(keySelector, flushes) {
-    return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };
-}
-exports.distinct = distinct;
-var DistinctOperator = (function () {
-    function DistinctOperator(keySelector, flushes) {
-        this.keySelector = keySelector;
-        this.flushes = flushes;
-    }
-    DistinctOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
-    };
-    return DistinctOperator;
-}());
-var DistinctSubscriber = (function (_super) {
-    __extends(DistinctSubscriber, _super);
-    function DistinctSubscriber(destination, keySelector, flushes) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.values = new Set();
-        if (flushes) {
-            _this.add(subscribeToResult_1.subscribeToResult(_this, flushes));
-        }
-        return _this;
-    }
-    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values.clear();
-    };
-    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    DistinctSubscriber.prototype._next = function (value) {
-        if (this.keySelector) {
-            this._useKeySelector(value);
-        }
-        else {
-            this._finalizeNext(value, value);
-        }
-    };
-    DistinctSubscriber.prototype._useKeySelector = function (value) {
-        var key;
-        var destination = this.destination;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this._finalizeNext(key, value);
-    };
-    DistinctSubscriber.prototype._finalizeNext = function (key, value) {
-        var values = this.values;
-        if (!values.has(key)) {
-            values.add(key);
-            this.destination.next(value);
-        }
-    };
-    return DistinctSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.DistinctSubscriber = DistinctSubscriber;
-//# sourceMappingURL=distinct.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/distinct.js.map b/node_modules/rxjs/internal/operators/distinct.js.map
deleted file mode 100644
index 390ca98..0000000
--- a/node_modules/rxjs/internal/operators/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../../src/internal/operators/distinct.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,sDAAqD;AAErD,+DAA8D;AA6D9D,SAAgB,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAvD,CAAuD,CAAC;AAC5F,CAAC;AAHD,4BAGC;AAED;IACE,0BAAoB,WAA4B,EAAU,OAAwB;QAA9D,gBAAW,GAAX,WAAW,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAiB;IAClF,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAA8C,sCAAqB;IAGjE,4BAAY,WAA0B,EAAU,WAA4B,EAAE,OAAwB;QAAtG,YACE,kBAAM,WAAW,CAAC,SAKnB;QAN+C,iBAAW,GAAX,WAAW,CAAiB;QAFpE,YAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,GAAG,CAAC,qCAAiB,CAAC,KAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAC5C;;IACH,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,wCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,4CAAe,GAAvB,UAAwB,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,0CAAa,GAArB,UAAsB,GAAQ,EAAE,KAAQ;QAC9B,IAAA,oBAAM,CAAU;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEH,yBAAC;AAAD,CAAC,AAjDD,CAA8C,iCAAe,GAiD5D;AAjDY,gDAAkB"}
diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts b/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts
deleted file mode 100644
index 74eb5e9..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-export declare function distinctUntilChanged<T>(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction<T>;
-export declare function distinctUntilChanged<T, K>(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/internal/operators/distinctUntilChanged.js
deleted file mode 100644
index 58ef57a..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilChanged.js
+++ /dev/null
@@ -1,74 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function distinctUntilChanged(compare, keySelector) {
-    return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };
-}
-exports.distinctUntilChanged = distinctUntilChanged;
-var DistinctUntilChangedOperator = (function () {
-    function DistinctUntilChangedOperator(compare, keySelector) {
-        this.compare = compare;
-        this.keySelector = keySelector;
-    }
-    DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
-    };
-    return DistinctUntilChangedOperator;
-}());
-var DistinctUntilChangedSubscriber = (function (_super) {
-    __extends(DistinctUntilChangedSubscriber, _super);
-    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.hasKey = false;
-        if (typeof compare === 'function') {
-            _this.compare = compare;
-        }
-        return _this;
-    }
-    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {
-        return x === y;
-    };
-    DistinctUntilChangedSubscriber.prototype._next = function (value) {
-        var key;
-        try {
-            var keySelector = this.keySelector;
-            key = keySelector ? keySelector(value) : value;
-        }
-        catch (err) {
-            return this.destination.error(err);
-        }
-        var result = false;
-        if (this.hasKey) {
-            try {
-                var compare = this.compare;
-                result = compare(this.key, key);
-            }
-            catch (err) {
-                return this.destination.error(err);
-            }
-        }
-        else {
-            this.hasKey = true;
-        }
-        if (!result) {
-            this.key = key;
-            this.destination.next(value);
-        }
-    };
-    return DistinctUntilChangedSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=distinctUntilChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map
deleted file mode 100644
index df1be47..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA8D3C,SAAgB,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,EAAzE,CAAyE,CAAC;AAC9G,CAAC;AAFD,oDAEC;AAED;IACE,sCAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,2CAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;IACH,mCAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAmD,kDAAa;IAI9D,wCAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAInB;QALmB,iBAAW,GAAX,WAAW,CAAa;QAJpC,YAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;;IACH,CAAC;IAEO,gDAAO,GAAf,UAAgB,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,8CAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACM,IAAA,8BAAW,CAAU;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,qCAAC;AAAD,CAAC,AAzCD,CAAmD,uBAAU,GAyC5D"}
diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts
deleted file mode 100644
index bfe67a8..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-export declare function distinctUntilKeyChanged<T>(key: keyof T): MonoTypeOperatorFunction<T>;
-export declare function distinctUntilKeyChanged<T, K extends keyof T>(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js
deleted file mode 100644
index f63e466..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var distinctUntilChanged_1 = require("./distinctUntilChanged");
-function distinctUntilKeyChanged(key, compare) {
-    return distinctUntilChanged_1.distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
-}
-exports.distinctUntilKeyChanged = distinctUntilKeyChanged;
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map
deleted file mode 100644
index b631320..0000000
--- a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AA8E9D,SAAgB,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,2CAAoB,CAAC,UAAC,CAAI,EAAE,CAAI,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC;AACrG,CAAC;AAFD,0DAEC"}
diff --git a/node_modules/rxjs/internal/operators/elementAt.d.ts b/node_modules/rxjs/internal/operators/elementAt.d.ts
deleted file mode 100644
index 0b96023..0000000
--- a/node_modules/rxjs/internal/operators/elementAt.d.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Emits the single value at the specified `index` in a sequence of emissions
- * from the source Observable.
- *
- * <span class="informal">Emits only the i-th value, then completes.</span>
- *
- * ![](elementAt.png)
- *
- * `elementAt` returns an Observable that emits the item at the specified
- * `index` in the source Observable, or a default value if that `index` is out
- * of range and the `default` argument is provided. If the `default` argument is
- * not given and the `index` is out of range, the output Observable will emit an
- * `ArgumentOutOfRangeError` error.
- *
- * ## Example
- * Emit only the third click event
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { elementAt } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(elementAt(2));
- * result.subscribe(x => console.log(x));
- *
- * // Results in:
- * // click 1 = nothing
- * // click 2 = nothing
- * // click 3 = MouseEvent object logged to console
- * ```
- *
- * @see {@link first}
- * @see {@link last}
- * @see {@link skip}
- * @see {@link single}
- * @see {@link take}
- *
- * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the
- * Observable has completed before emitting the i-th `next` notification.
- *
- * @param {number} index Is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {T} [defaultValue] The default value returned for missing indices.
- * @return {Observable} An Observable that emits a single item, if it is found.
- * Otherwise, will emit the default value if given. If not, then emits an error.
- * @method elementAt
- * @owner Observable
- */
-export declare function elementAt<T>(index: number, defaultValue?: T): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/elementAt.js b/node_modules/rxjs/internal/operators/elementAt.js
deleted file mode 100644
index 55ff96c..0000000
--- a/node_modules/rxjs/internal/operators/elementAt.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError");
-var filter_1 = require("./filter");
-var throwIfEmpty_1 = require("./throwIfEmpty");
-var defaultIfEmpty_1 = require("./defaultIfEmpty");
-var take_1 = require("./take");
-function elementAt(index, defaultValue) {
-    if (index < 0) {
-        throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError();
-    }
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) { return source.pipe(filter_1.filter(function (v, i) { return i === index; }), take_1.take(1), hasDefaultValue
-        ? defaultIfEmpty_1.defaultIfEmpty(defaultValue)
-        : throwIfEmpty_1.throwIfEmpty(function () { return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); })); };
-}
-exports.elementAt = elementAt;
-//# sourceMappingURL=elementAt.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/elementAt.js.map b/node_modules/rxjs/internal/operators/elementAt.js.map
deleted file mode 100644
index 853a912..0000000
--- a/node_modules/rxjs/internal/operators/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../../src/internal/operators/elementAt.ts"],"names":[],"mappings":";;AAEA,2EAA0E;AAG1E,mCAAkC;AAClC,+CAA8C;AAC9C,mDAAkD;AAClD,+BAA8B;AAkD9B,SAAgB,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,iDAAuB,EAAE,CAAC;KAAE;IACvD,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAC7B,WAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,+BAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,iDAAuB,EAAE,EAA7B,CAA6B,CAAC,CACtD,EANiC,CAMjC,CAAC;AACJ,CAAC;AAVD,8BAUC"}
diff --git a/node_modules/rxjs/internal/operators/endWith.d.ts b/node_modules/rxjs/internal/operators/endWith.d.ts
deleted file mode 100644
index 4fbb425..0000000
--- a/node_modules/rxjs/internal/operators/endWith.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types';
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A>(v1: A, scheduler: SchedulerLike): OperatorFunction<T, T | A>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A, B>(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction<T, T | A | B>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A, B, C>(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E | F>;
-export declare function endWith<T, A>(v1: A): OperatorFunction<T, T | A>;
-export declare function endWith<T, A, B>(v1: A, v2: B): OperatorFunction<T, T | A | B>;
-export declare function endWith<T, A, B, C>(v1: A, v2: B, v3: C): OperatorFunction<T, T | A | B | C>;
-export declare function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D): OperatorFunction<T, T | A | B | C | D>;
-export declare function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction<T, T | A | B | C | D | E>;
-export declare function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction<T, T | A | B | C | D | E | F>;
-export declare function endWith<T, Z = T>(...array: Z[]): OperatorFunction<T, T | Z>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export declare function endWith<T, Z = T>(...array: Array<Z | SchedulerLike>): OperatorFunction<T, T | Z>;
diff --git a/node_modules/rxjs/internal/operators/endWith.js b/node_modules/rxjs/internal/operators/endWith.js
deleted file mode 100644
index 028bd4e..0000000
--- a/node_modules/rxjs/internal/operators/endWith.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var concat_1 = require("../observable/concat");
-var of_1 = require("../observable/of");
-function endWith() {
-    var array = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        array[_i] = arguments[_i];
-    }
-    return function (source) { return concat_1.concat(source, of_1.of.apply(void 0, array)); };
-}
-exports.endWith = endWith;
-//# sourceMappingURL=endWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/endWith.js.map b/node_modules/rxjs/internal/operators/endWith.js.map
deleted file mode 100644
index 67e08f6..0000000
--- a/node_modules/rxjs/internal/operators/endWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"endWith.js","sources":["../../src/internal/operators/endWith.ts"],"names":[],"mappings":";;AACA,+CAA8C;AAC9C,uCAAsC;AA8DtC,SAAgB,OAAO;IAAI,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAC3D,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,MAAM,EAAE,OAAE,eAAI,KAAK,EAAmB,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,0BAEC"}
diff --git a/node_modules/rxjs/internal/operators/every.d.ts b/node_modules/rxjs/internal/operators/every.d.ts
deleted file mode 100644
index a99efaa..0000000
--- a/node_modules/rxjs/internal/operators/every.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.
- *
- * ## Example
- * A simple example emitting true if all elements are less than 5, false otherwise
- * ```ts
- * import { of } from 'rxjs';
- * import { every } from 'rxjs/operators';
- *
- *  of(1, 2, 3, 4, 5, 6).pipe(
- *     every(x => x < 5),
- * )
- * .subscribe(x => console.log(x)); // -> false
- * ```
- *
- * @param {function} predicate A function for determining if an item meets a specified condition.
- * @param {any} [thisArg] Optional object to use for `this` in the callback.
- * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.
- * @method every
- * @owner Observable
- */
-export declare function every<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, boolean>;
diff --git a/node_modules/rxjs/internal/operators/every.js b/node_modules/rxjs/internal/operators/every.js
deleted file mode 100644
index 9189215..0000000
--- a/node_modules/rxjs/internal/operators/every.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function every(predicate, thisArg) {
-    return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };
-}
-exports.every = every;
-var EveryOperator = (function () {
-    function EveryOperator(predicate, thisArg, source) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-        this.source = source;
-    }
-    EveryOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
-    };
-    return EveryOperator;
-}());
-var EverySubscriber = (function (_super) {
-    __extends(EverySubscriber, _super);
-    function EverySubscriber(destination, predicate, thisArg, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.thisArg = thisArg;
-        _this.source = source;
-        _this.index = 0;
-        _this.thisArg = thisArg || _this;
-        return _this;
-    }
-    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {
-        this.destination.next(everyValueMatch);
-        this.destination.complete();
-    };
-    EverySubscriber.prototype._next = function (value) {
-        var result = false;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.index++, this.source);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (!result) {
-            this.notifyComplete(false);
-        }
-    };
-    EverySubscriber.prototype._complete = function () {
-        this.notifyComplete(true);
-    };
-    return EverySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=every.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/every.js.map b/node_modules/rxjs/internal/operators/every.js.map
deleted file mode 100644
index 502036e..0000000
--- a/node_modules/rxjs/internal/operators/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../../src/internal/operators/every.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAwB3C,SAAgB,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAA1D,CAA0D,CAAC;AAC/F,CAAC;AAHD,sBAGC;AAED;IACE,uBAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAiC,mCAAa;IAG5C,yBAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QAH1C,YAIE,kBAAM,WAAW,CAAC,SAEnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,aAAO,GAAP,OAAO,CAAK;QACZ,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAOxB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAEO,wCAAc,GAAtB,UAAuB,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAiC,uBAAU,GAiC1C"}
diff --git a/node_modules/rxjs/internal/operators/exhaust.d.ts b/node_modules/rxjs/internal/operators/exhaust.d.ts
deleted file mode 100644
index d4a1e67..0000000
--- a/node_modules/rxjs/internal/operators/exhaust.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { ObservableInput, OperatorFunction } from '../types';
-export declare function exhaust<T>(): OperatorFunction<ObservableInput<T>, T>;
-export declare function exhaust<R>(): OperatorFunction<any, R>;
diff --git a/node_modules/rxjs/internal/operators/exhaust.js b/node_modules/rxjs/internal/operators/exhaust.js
deleted file mode 100644
index 8b1c1ef..0000000
--- a/node_modules/rxjs/internal/operators/exhaust.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function exhaust() {
-    return function (source) { return source.lift(new SwitchFirstOperator()); };
-}
-exports.exhaust = exhaust;
-var SwitchFirstOperator = (function () {
-    function SwitchFirstOperator() {
-    }
-    SwitchFirstOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SwitchFirstSubscriber(subscriber));
-    };
-    return SwitchFirstOperator;
-}());
-var SwitchFirstSubscriber = (function (_super) {
-    __extends(SwitchFirstSubscriber, _super);
-    function SwitchFirstSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasCompleted = false;
-        _this.hasSubscription = false;
-        return _this;
-    }
-    SwitchFirstSubscriber.prototype._next = function (value) {
-        if (!this.hasSubscription) {
-            this.hasSubscription = true;
-            this.add(subscribeToResult_1.subscribeToResult(this, value));
-        }
-    };
-    SwitchFirstSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-    };
-    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return SwitchFirstSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=exhaust.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/exhaust.js.map b/node_modules/rxjs/internal/operators/exhaust.js.map
deleted file mode 100644
index 12e163c..0000000
--- a/node_modules/rxjs/internal/operators/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../../src/internal/operators/exhaust.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,sDAAqD;AACrD,+DAA8D;AAkD9D,SAAgB,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAFD,0BAEC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,yCAAqB;IAI1D,+BAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QALO,kBAAY,GAAY,KAAK,CAAC;QAC9B,qBAAe,GAAY,KAAK,CAAC;;IAIzC,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,qCAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,yCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,8CAAc,GAAd,UAAe,QAAsB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AA7BD,CAAuC,iCAAe,GA6BrD"}
diff --git a/node_modules/rxjs/internal/operators/exhaustMap.d.ts b/node_modules/rxjs/internal/operators/exhaustMap.d.ts
deleted file mode 100644
index 840948a..0000000
--- a/node_modules/rxjs/internal/operators/exhaustMap.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported. Use inner map instead. */
-export declare function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported. Use inner map instead. */
-export declare function exhaustMap<T, I, R>(project: (value: T, index: number) => ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/exhaustMap.js b/node_modules/rxjs/internal/operators/exhaustMap.js
deleted file mode 100644
index 1560618..0000000
--- a/node_modules/rxjs/internal/operators/exhaustMap.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var map_1 = require("./map");
-var from_1 = require("../observable/from");
-function exhaustMap(project, resultSelector) {
-    if (resultSelector) {
-        return function (source) { return source.pipe(exhaustMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-    }
-    return function (source) {
-        return source.lift(new ExhaustMapOperator(project));
-    };
-}
-exports.exhaustMap = exhaustMap;
-var ExhaustMapOperator = (function () {
-    function ExhaustMapOperator(project) {
-        this.project = project;
-    }
-    ExhaustMapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
-    };
-    return ExhaustMapOperator;
-}());
-var ExhaustMapSubscriber = (function (_super) {
-    __extends(ExhaustMapSubscriber, _super);
-    function ExhaustMapSubscriber(destination, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.hasSubscription = false;
-        _this.hasCompleted = false;
-        _this.index = 0;
-        return _this;
-    }
-    ExhaustMapSubscriber.prototype._next = function (value) {
-        if (!this.hasSubscription) {
-            this.tryNext(value);
-        }
-    };
-    ExhaustMapSubscriber.prototype.tryNext = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.hasSubscription = true;
-        this._innerSub(result, value, index);
-    };
-    ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {
-        var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult_1.subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    ExhaustMapSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (!this.hasSubscription) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    ExhaustMapSubscriber.prototype.notifyError = function (err) {
-        this.destination.error(err);
-    };
-    ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.hasSubscription = false;
-        if (this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return ExhaustMapSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=exhaustMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/exhaustMap.js.map b/node_modules/rxjs/internal/operators/exhaustMap.js.map
deleted file mode 100644
index f957e58..0000000
--- a/node_modules/rxjs/internal/operators/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/expand.d.ts b/node_modules/rxjs/internal/operators/expand.d.ts
deleted file mode 100644
index 9164357..0000000
--- a/node_modules/rxjs/internal/operators/expand.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';
-export declare function expand<T, R>(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, R>;
-export declare function expand<T>(project: (value: T, index: number) => ObservableInput<T>, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-export declare class ExpandOperator<T, R> implements Operator<T, R> {
-    private project;
-    private concurrent;
-    private scheduler;
-    constructor(project: (value: T, index: number) => ObservableInput<R>, concurrent: number, scheduler: SchedulerLike);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class ExpandSubscriber<T, R> extends OuterSubscriber<T, R> {
-    private project;
-    private concurrent;
-    private scheduler;
-    private index;
-    private active;
-    private hasCompleted;
-    private buffer;
-    constructor(destination: Subscriber<R>, project: (value: T, index: number) => ObservableInput<R>, concurrent: number, scheduler: SchedulerLike);
-    private static dispatch;
-    protected _next(value: any): void;
-    private subscribeToProjection;
-    protected _complete(): void;
-    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;
-    notifyComplete(innerSub: Subscription): void;
-}
diff --git a/node_modules/rxjs/internal/operators/expand.js b/node_modules/rxjs/internal/operators/expand.js
deleted file mode 100644
index adcbb31..0000000
--- a/node_modules/rxjs/internal/operators/expand.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function expand(project, concurrent, scheduler) {
-    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-    if (scheduler === void 0) { scheduler = undefined; }
-    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
-    return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };
-}
-exports.expand = expand;
-var ExpandOperator = (function () {
-    function ExpandOperator(project, concurrent, scheduler) {
-        this.project = project;
-        this.concurrent = concurrent;
-        this.scheduler = scheduler;
-    }
-    ExpandOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
-    };
-    return ExpandOperator;
-}());
-exports.ExpandOperator = ExpandOperator;
-var ExpandSubscriber = (function (_super) {
-    __extends(ExpandSubscriber, _super);
-    function ExpandSubscriber(destination, project, concurrent, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.concurrent = concurrent;
-        _this.scheduler = scheduler;
-        _this.index = 0;
-        _this.active = 0;
-        _this.hasCompleted = false;
-        if (concurrent < Number.POSITIVE_INFINITY) {
-            _this.buffer = [];
-        }
-        return _this;
-    }
-    ExpandSubscriber.dispatch = function (arg) {
-        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;
-        subscriber.subscribeToProjection(result, value, index);
-    };
-    ExpandSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        if (destination.closed) {
-            this._complete();
-            return;
-        }
-        var index = this.index++;
-        if (this.active < this.concurrent) {
-            destination.next(value);
-            try {
-                var project = this.project;
-                var result = project(value, index);
-                if (!this.scheduler) {
-                    this.subscribeToProjection(result, value, index);
-                }
-                else {
-                    var state = { subscriber: this, result: result, value: value, index: index };
-                    var destination_1 = this.destination;
-                    destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));
-                }
-            }
-            catch (e) {
-                destination.error(e);
-            }
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {
-        this.active++;
-        var destination = this.destination;
-        destination.add(subscribeToResult_1.subscribeToResult(this, result, value, index));
-    };
-    ExpandSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this._next(innerValue);
-    };
-    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer && buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        if (this.hasCompleted && this.active === 0) {
-            this.destination.complete();
-        }
-    };
-    return ExpandSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.ExpandSubscriber = ExpandSubscriber;
-//# sourceMappingURL=expand.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/expand.js.map b/node_modules/rxjs/internal/operators/expand.js.map
deleted file mode 100644
index f9c7a6e..0000000
--- a/node_modules/rxjs/internal/operators/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../../src/internal/operators/expand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,sDAAqD;AAErD,+DAA8D;AA4D9D,SAAgB,MAAM,CAAO,OAAwD,EACxD,UAA6C,EAC7C,SAAoC;IADpC,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAC7C,0BAAA,EAAA,qBAAoC;IAC/D,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAA/D,CAA+D,CAAC;AACpG,CAAC;AAND,wBAMC;AAED;IACE,wBAAoB,OAAwD,EACxD,UAAkB,EAClB,SAAwB;QAFxB,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC;IACH,qBAAC;AAAD,CAAC,AATD,IASC;AATY,wCAAc;AAuB3B;IAA4C,oCAAqB;IAM/D,0BAAY,WAA0B,EAClB,OAAwD,EACxD,UAAkB,EAClB,SAAwB;QAH5C,YAIE,kBAAM,WAAW,CAAC,SAInB;QAPmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAQ;QAClB,eAAS,GAAT,SAAS,CAAe;QARpC,WAAK,GAAW,CAAC,CAAC;QAClB,YAAM,GAAW,CAAC,CAAC;QACnB,kBAAY,GAAY,KAAK,CAAC;QAQpC,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE;YACzC,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;;IACH,CAAC;IAEc,yBAAQ,GAAvB,UAA8B,GAAsB;QAC3C,IAAA,2BAAU,EAAE,mBAAM,EAAE,iBAAK,EAAE,iBAAK,CAAQ;QAC/C,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAU;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBAClD;qBAAM;oBACL,IAAM,KAAK,GAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAC;oBAC5E,IAAM,aAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;oBACrD,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAoB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;iBAClG;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,gDAAqB,GAA7B,UAA8B,MAAW,EAAE,KAAQ,EAAE,KAAa;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,qCAAiB,CAAO,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,yCAAc,GAAd,UAAe,QAAsB;QACnC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAlFD,CAA4C,iCAAe,GAkF1D;AAlFY,4CAAgB"}
diff --git a/node_modules/rxjs/internal/operators/filter.d.ts b/node_modules/rxjs/internal/operators/filter.d.ts
deleted file mode 100644
index b4c9bba..0000000
--- a/node_modules/rxjs/internal/operators/filter.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-export declare function filter<T, S extends T>(predicate: (value: T, index: number) => value is S, thisArg?: any): OperatorFunction<T, S>;
-export declare function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/filter.js b/node_modules/rxjs/internal/operators/filter.js
deleted file mode 100644
index 11ebd79..0000000
--- a/node_modules/rxjs/internal/operators/filter.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function filter(predicate, thisArg) {
-    return function filterOperatorFunction(source) {
-        return source.lift(new FilterOperator(predicate, thisArg));
-    };
-}
-exports.filter = filter;
-var FilterOperator = (function () {
-    function FilterOperator(predicate, thisArg) {
-        this.predicate = predicate;
-        this.thisArg = thisArg;
-    }
-    FilterOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
-    };
-    return FilterOperator;
-}());
-var FilterSubscriber = (function (_super) {
-    __extends(FilterSubscriber, _super);
-    function FilterSubscriber(destination, predicate, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.thisArg = thisArg;
-        _this.count = 0;
-        return _this;
-    }
-    FilterSubscriber.prototype._next = function (value) {
-        var result;
-        try {
-            result = this.predicate.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        if (result) {
-            this.destination.next(value);
-        }
-    };
-    return FilterSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=filter.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/filter.js.map b/node_modules/rxjs/internal/operators/filter.js.map
deleted file mode 100644
index 3d84b19..0000000
--- a/node_modules/rxjs/internal/operators/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../../src/internal/operators/filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAwD3C,SAAgB,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AALD,wBAKC;AAED;IACE,wBAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAAa;IAI7C,0BAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAFhC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAsC;QAC/C,aAAO,GAAP,OAAO,CAAK;QAJhC,WAAK,GAAW,CAAC,CAAC;;IAMlB,CAAC;IAIS,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,CAAkC,uBAAU,GAwB3C"}
diff --git a/node_modules/rxjs/internal/operators/finalize.d.ts b/node_modules/rxjs/internal/operators/finalize.d.ts
deleted file mode 100644
index 0dcc0f5..0000000
--- a/node_modules/rxjs/internal/operators/finalize.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that mirrors the source Observable, but will call a specified function when
- * the source terminates on complete or error.
- * @param {function} callback Function to be called when source terminates.
- * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.
- * @method finally
- * @owner Observable
- */
-export declare function finalize<T>(callback: () => void): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/finalize.js b/node_modules/rxjs/internal/operators/finalize.js
deleted file mode 100644
index 855db40..0000000
--- a/node_modules/rxjs/internal/operators/finalize.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Subscription_1 = require("../Subscription");
-function finalize(callback) {
-    return function (source) { return source.lift(new FinallyOperator(callback)); };
-}
-exports.finalize = finalize;
-var FinallyOperator = (function () {
-    function FinallyOperator(callback) {
-        this.callback = callback;
-    }
-    FinallyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new FinallySubscriber(subscriber, this.callback));
-    };
-    return FinallyOperator;
-}());
-var FinallySubscriber = (function (_super) {
-    __extends(FinallySubscriber, _super);
-    function FinallySubscriber(destination, callback) {
-        var _this = _super.call(this, destination) || this;
-        _this.add(new Subscription_1.Subscription(callback));
-        return _this;
-    }
-    return FinallySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=finalize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/finalize.js.map b/node_modules/rxjs/internal/operators/finalize.js.map
deleted file mode 100644
index ef4f02c..0000000
--- a/node_modules/rxjs/internal/operators/finalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finalize.js","sources":["../../src/internal/operators/finalize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,gDAA+C;AAY/C,SAAgB,QAAQ,CAAI,QAAoB;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAA1C,CAA0C,CAAC;AAC/E,CAAC;AAFD,4BAEC;AAED;IACE,yBAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,8BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IACH,sBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAmC,qCAAa;IAC9C,2BAAY,WAA0B,EAAE,QAAoB;QAA5D,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC,AALD,CAAmC,uBAAU,GAK5C"}
diff --git a/node_modules/rxjs/internal/operators/find.d.ts b/node_modules/rxjs/internal/operators/find.d.ts
deleted file mode 100644
index 9da6850..0000000
--- a/node_modules/rxjs/internal/operators/find.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction } from '../types';
-export declare function find<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, thisArg?: any): OperatorFunction<T, S | undefined>;
-export declare function find<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, T | undefined>;
-export declare class FindValueOperator<T> implements Operator<T, T | number | undefined> {
-    private predicate;
-    private source;
-    private yieldIndex;
-    private thisArg?;
-    constructor(predicate: (value: T, index: number, source: Observable<T>) => boolean, source: Observable<T>, yieldIndex: boolean, thisArg?: any);
-    call(observer: Subscriber<T>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class FindValueSubscriber<T> extends Subscriber<T> {
-    private predicate;
-    private source;
-    private yieldIndex;
-    private thisArg?;
-    private index;
-    constructor(destination: Subscriber<T>, predicate: (value: T, index: number, source: Observable<T>) => boolean, source: Observable<T>, yieldIndex: boolean, thisArg?: any);
-    private notifyComplete;
-    protected _next(value: T): void;
-    protected _complete(): void;
-}
diff --git a/node_modules/rxjs/internal/operators/find.js b/node_modules/rxjs/internal/operators/find.js
deleted file mode 100644
index 899eb8e..0000000
--- a/node_modules/rxjs/internal/operators/find.js
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function find(predicate, thisArg) {
-    if (typeof predicate !== 'function') {
-        throw new TypeError('predicate is not a function');
-    }
-    return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };
-}
-exports.find = find;
-var FindValueOperator = (function () {
-    function FindValueOperator(predicate, source, yieldIndex, thisArg) {
-        this.predicate = predicate;
-        this.source = source;
-        this.yieldIndex = yieldIndex;
-        this.thisArg = thisArg;
-    }
-    FindValueOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
-    };
-    return FindValueOperator;
-}());
-exports.FindValueOperator = FindValueOperator;
-var FindValueSubscriber = (function (_super) {
-    __extends(FindValueSubscriber, _super);
-    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.yieldIndex = yieldIndex;
-        _this.thisArg = thisArg;
-        _this.index = 0;
-        return _this;
-    }
-    FindValueSubscriber.prototype.notifyComplete = function (value) {
-        var destination = this.destination;
-        destination.next(value);
-        destination.complete();
-        this.unsubscribe();
-    };
-    FindValueSubscriber.prototype._next = function (value) {
-        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;
-        var index = this.index++;
-        try {
-            var result = predicate.call(thisArg || this, value, index, this.source);
-            if (result) {
-                this.notifyComplete(this.yieldIndex ? index : value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    FindValueSubscriber.prototype._complete = function () {
-        this.notifyComplete(this.yieldIndex ? -1 : undefined);
-    };
-    return FindValueSubscriber;
-}(Subscriber_1.Subscriber));
-exports.FindValueSubscriber = FindValueSubscriber;
-//# sourceMappingURL=find.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/find.js.map b/node_modules/rxjs/internal/operators/find.js.map
deleted file mode 100644
index ab62452..0000000
--- a/node_modules/rxjs/internal/operators/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../../src/internal/operators/find.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAAyC;AA8CzC,SAAgB,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,EAAlG,CAAkG,CAAC;AACvI,CAAC;AAND,oBAMC;AAED;IACE,2BAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,gCAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IACH,wBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,8CAAiB;AAiB9B;IAA4C,uCAAa;IAGvD,6BAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAJjC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,YAAM,GAAN,MAAM,CAAe;QACrB,gBAAU,GAAV,UAAU,CAAS;QACnB,aAAO,GAAP,OAAO,CAAM;QANzB,WAAK,GAAW,CAAC,CAAC;;IAQ1B,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAU;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QAChB,IAAA,SAA2B,EAA1B,wBAAS,EAAE,oBAAO,CAAS;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,IAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IACH,0BAAC;AAAD,CAAC,AAnCD,CAA4C,uBAAU,GAmCrD;AAnCY,kDAAmB"}
diff --git a/node_modules/rxjs/internal/operators/findIndex.d.ts b/node_modules/rxjs/internal/operators/findIndex.d.ts
deleted file mode 100644
index 036117e..0000000
--- a/node_modules/rxjs/internal/operators/findIndex.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Emits only the index of the first value emitted by the source Observable that
- * meets some condition.
- *
- * <span class="informal">It's like {@link find}, but emits the index of the
- * found value, not the value itself.</span>
- *
- * ![](findIndex.png)
- *
- * `findIndex` searches for the first item in the source Observable that matches
- * the specified condition embodied by the `predicate`, and returns the
- * (zero-based) index of the first occurrence in the source. Unlike
- * {@link first}, the `predicate` is required in `findIndex`, and does not emit
- * an error if a valid value is not found.
- *
- * ## Example
- * Emit the index of first click that happens on a DIV element
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { findIndex } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link filter}
- * @see {@link find}
- * @see {@link first}
- * @see {@link take}
- *
- * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate
- * A function called with each item to test for condition matching.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {Observable} An Observable of the index of the first item that
- * matches the condition.
- * @method find
- * @owner Observable
- */
-export declare function findIndex<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, number>;
diff --git a/node_modules/rxjs/internal/operators/findIndex.js b/node_modules/rxjs/internal/operators/findIndex.js
deleted file mode 100644
index 255982c..0000000
--- a/node_modules/rxjs/internal/operators/findIndex.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var find_1 = require("../operators/find");
-function findIndex(predicate, thisArg) {
-    return function (source) { return source.lift(new find_1.FindValueOperator(predicate, source, true, thisArg)); };
-}
-exports.findIndex = findIndex;
-//# sourceMappingURL=findIndex.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/findIndex.js.map b/node_modules/rxjs/internal/operators/findIndex.js.map
deleted file mode 100644
index be3d4c9..0000000
--- a/node_modules/rxjs/internal/operators/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../../src/internal/operators/findIndex.ts"],"names":[],"mappings":";;AACA,0CAAsD;AA0CtD,SAAgB,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,EAAvF,CAAuF,CAAC;AAC5H,CAAC;AAHD,8BAGC"}
diff --git a/node_modules/rxjs/internal/operators/first.d.ts b/node_modules/rxjs/internal/operators/first.d.ts
deleted file mode 100644
index 53523e5..0000000
--- a/node_modules/rxjs/internal/operators/first.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../../internal/types';
-export declare function first<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;
-export declare function first<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>;
-export declare function first<T, D = T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>;
diff --git a/node_modules/rxjs/internal/operators/first.js b/node_modules/rxjs/internal/operators/first.js
deleted file mode 100644
index 1eb7f09..0000000
--- a/node_modules/rxjs/internal/operators/first.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EmptyError_1 = require("../util/EmptyError");
-var filter_1 = require("./filter");
-var take_1 = require("./take");
-var defaultIfEmpty_1 = require("./defaultIfEmpty");
-var throwIfEmpty_1 = require("./throwIfEmpty");
-var identity_1 = require("../util/identity");
-function first(predicate, defaultValue) {
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) { return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); })); };
-}
-exports.first = first;
-//# sourceMappingURL=first.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/first.js.map b/node_modules/rxjs/internal/operators/first.js.map
deleted file mode 100644
index 56d058f..0000000
--- a/node_modules/rxjs/internal/operators/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../../src/internal/operators/first.ts"],"names":[],"mappings":";;AAGA,iDAAgD;AAEhD,mCAAkC;AAClC,+BAA8B;AAC9B,mDAAkD;AAClD,+CAA8C;AAC9C,6CAA4C;AAuE5C,SAAgB,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,mBAAQ,EAChE,WAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,+BAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,uBAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC;AAVD,sBAUC"}
diff --git a/node_modules/rxjs/internal/operators/groupBy.d.ts b/node_modules/rxjs/internal/operators/groupBy.d.ts
deleted file mode 100644
index 2125bab..0000000
--- a/node_modules/rxjs/internal/operators/groupBy.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { OperatorFunction } from '../types';
-export declare function groupBy<T, K>(keySelector: (value: T) => K): OperatorFunction<T, GroupedObservable<K, T>>;
-export declare function groupBy<T, K>(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable<K, T>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, T>>;
-export declare function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, R>>;
-export declare function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>, subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>>;
-export interface RefCountSubscription {
-    count: number;
-    unsubscribe: () => void;
-    closed: boolean;
-    attemptedToUnsubscribe: boolean;
-}
-/**
- * An Observable representing values belonging to the same group represented by
- * a common key. The values emitted by a GroupedObservable come from the source
- * Observable. The common key is available as the field `key` on a
- * GroupedObservable instance.
- *
- * @class GroupedObservable<K, T>
- */
-export declare class GroupedObservable<K, T> extends Observable<T> {
-    key: K;
-    private groupSubject;
-    private refCountSubscription?;
-    /** @deprecated Do not construct this type. Internal use only */
-    constructor(key: K, groupSubject: Subject<T>, refCountSubscription?: RefCountSubscription);
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<T>): Subscription;
-}
diff --git a/node_modules/rxjs/internal/operators/groupBy.js b/node_modules/rxjs/internal/operators/groupBy.js
deleted file mode 100644
index 116ddab..0000000
--- a/node_modules/rxjs/internal/operators/groupBy.js
+++ /dev/null
@@ -1,196 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Subscription_1 = require("../Subscription");
-var Observable_1 = require("../Observable");
-var Subject_1 = require("../Subject");
-function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
-    return function (source) {
-        return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
-    };
-}
-exports.groupBy = groupBy;
-var GroupByOperator = (function () {
-    function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
-        this.keySelector = keySelector;
-        this.elementSelector = elementSelector;
-        this.durationSelector = durationSelector;
-        this.subjectSelector = subjectSelector;
-    }
-    GroupByOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
-    };
-    return GroupByOperator;
-}());
-var GroupBySubscriber = (function (_super) {
-    __extends(GroupBySubscriber, _super);
-    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.keySelector = keySelector;
-        _this.elementSelector = elementSelector;
-        _this.durationSelector = durationSelector;
-        _this.subjectSelector = subjectSelector;
-        _this.groups = null;
-        _this.attemptedToUnsubscribe = false;
-        _this.count = 0;
-        return _this;
-    }
-    GroupBySubscriber.prototype._next = function (value) {
-        var key;
-        try {
-            key = this.keySelector(value);
-        }
-        catch (err) {
-            this.error(err);
-            return;
-        }
-        this._group(value, key);
-    };
-    GroupBySubscriber.prototype._group = function (value, key) {
-        var groups = this.groups;
-        if (!groups) {
-            groups = this.groups = new Map();
-        }
-        var group = groups.get(key);
-        var element;
-        if (this.elementSelector) {
-            try {
-                element = this.elementSelector(value);
-            }
-            catch (err) {
-                this.error(err);
-            }
-        }
-        else {
-            element = value;
-        }
-        if (!group) {
-            group = (this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject());
-            groups.set(key, group);
-            var groupedObservable = new GroupedObservable(key, group, this);
-            this.destination.next(groupedObservable);
-            if (this.durationSelector) {
-                var duration = void 0;
-                try {
-                    duration = this.durationSelector(new GroupedObservable(key, group));
-                }
-                catch (err) {
-                    this.error(err);
-                    return;
-                }
-                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
-            }
-        }
-        if (!group.closed) {
-            group.next(element);
-        }
-    };
-    GroupBySubscriber.prototype._error = function (err) {
-        var groups = this.groups;
-        if (groups) {
-            groups.forEach(function (group, key) {
-                group.error(err);
-            });
-            groups.clear();
-        }
-        this.destination.error(err);
-    };
-    GroupBySubscriber.prototype._complete = function () {
-        var groups = this.groups;
-        if (groups) {
-            groups.forEach(function (group, key) {
-                group.complete();
-            });
-            groups.clear();
-        }
-        this.destination.complete();
-    };
-    GroupBySubscriber.prototype.removeGroup = function (key) {
-        this.groups.delete(key);
-    };
-    GroupBySubscriber.prototype.unsubscribe = function () {
-        if (!this.closed) {
-            this.attemptedToUnsubscribe = true;
-            if (this.count === 0) {
-                _super.prototype.unsubscribe.call(this);
-            }
-        }
-    };
-    return GroupBySubscriber;
-}(Subscriber_1.Subscriber));
-var GroupDurationSubscriber = (function (_super) {
-    __extends(GroupDurationSubscriber, _super);
-    function GroupDurationSubscriber(key, group, parent) {
-        var _this = _super.call(this, group) || this;
-        _this.key = key;
-        _this.group = group;
-        _this.parent = parent;
-        return _this;
-    }
-    GroupDurationSubscriber.prototype._next = function (value) {
-        this.complete();
-    };
-    GroupDurationSubscriber.prototype._unsubscribe = function () {
-        var _a = this, parent = _a.parent, key = _a.key;
-        this.key = this.parent = null;
-        if (parent) {
-            parent.removeGroup(key);
-        }
-    };
-    return GroupDurationSubscriber;
-}(Subscriber_1.Subscriber));
-var GroupedObservable = (function (_super) {
-    __extends(GroupedObservable, _super);
-    function GroupedObservable(key, groupSubject, refCountSubscription) {
-        var _this = _super.call(this) || this;
-        _this.key = key;
-        _this.groupSubject = groupSubject;
-        _this.refCountSubscription = refCountSubscription;
-        return _this;
-    }
-    GroupedObservable.prototype._subscribe = function (subscriber) {
-        var subscription = new Subscription_1.Subscription();
-        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
-        if (refCountSubscription && !refCountSubscription.closed) {
-            subscription.add(new InnerRefCountSubscription(refCountSubscription));
-        }
-        subscription.add(groupSubject.subscribe(subscriber));
-        return subscription;
-    };
-    return GroupedObservable;
-}(Observable_1.Observable));
-exports.GroupedObservable = GroupedObservable;
-var InnerRefCountSubscription = (function (_super) {
-    __extends(InnerRefCountSubscription, _super);
-    function InnerRefCountSubscription(parent) {
-        var _this = _super.call(this) || this;
-        _this.parent = parent;
-        parent.count++;
-        return _this;
-    }
-    InnerRefCountSubscription.prototype.unsubscribe = function () {
-        var parent = this.parent;
-        if (!parent.closed && !this.closed) {
-            _super.prototype.unsubscribe.call(this);
-            parent.count -= 1;
-            if (parent.count === 0 && parent.attemptedToUnsubscribe) {
-                parent.unsubscribe();
-            }
-        }
-    };
-    return InnerRefCountSubscription;
-}(Subscription_1.Subscription));
-//# sourceMappingURL=groupBy.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/groupBy.js.map b/node_modules/rxjs/internal/operators/groupBy.js.map
deleted file mode 100644
index 95f7fe2..0000000
--- a/node_modules/rxjs/internal/operators/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../../src/internal/operators/groupBy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAA+C;AAC/C,4CAA2C;AAE3C,sCAAqC;AAoGrC,SAAgB,OAAO,CAAU,WAA4B,EAC5B,eAA0C,EAC1C,gBAAwE,EACxE,eAAkC;IACjE,OAAO,UAAC,MAAqB;QAC3B,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAAjG,CAAiG,CAAC;AACtG,CAAC;AAND,0BAMC;AASD;IACE,yBAAoB,WAA4B,EAC5B,eAA0C,EAC1C,gBAAwE,EACxE,eAAkC;QAHlC,gBAAW,GAAX,WAAW,CAAiB;QAC5B,oBAAe,GAAf,eAAe,CAA2B;QAC1C,qBAAgB,GAAhB,gBAAgB,CAAwD;QACxE,oBAAe,GAAf,eAAe,CAAmB;IACtD,CAAC;IAED,8BAAI,GAAJ,UAAK,UAA+C,EAAE,MAAW;QAC/D,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAC3C,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAChG,CAAC,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,AAZD,IAYC;AAOD;IAAyC,qCAAa;IAKpD,2BAAY,WAAgD,EACxC,WAA4B,EAC5B,eAA0C,EAC1C,gBAAwE,EACxE,eAAkC;QAJtD,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,iBAAW,GAAX,WAAW,CAAiB;QAC5B,qBAAe,GAAf,eAAe,CAA2B;QAC1C,sBAAgB,GAAhB,gBAAgB,CAAwD;QACxE,qBAAe,GAAf,eAAe,CAAmB;QAR9C,YAAM,GAA2B,IAAI,CAAC;QACvC,4BAAsB,GAAY,KAAK,CAAC;QACxC,WAAK,GAAW,CAAC,CAAC;;IAQzB,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,GAAM,CAAC;QACX,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO;SACR;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,kCAAM,GAAd,UAAe,KAAQ,EAAE,GAAM;QAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;SACrD;QAED,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,IAAI,OAAU,CAAC;QACf,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI;gBACF,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACvC;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACjB;SACF;aAAM;YACL,OAAO,GAAQ,KAAK,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,iBAAO,EAAK,CAAmB,CAAC;YAC7F,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,IAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,QAAQ,SAAK,CAAC;gBAClB,IAAI;oBACF,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,CAAO,GAAG,EAAc,KAAK,CAAC,CAAC,CAAC;iBACvF;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChB,OAAO;iBACR;gBACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aAC7E;SACF;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrB;IACH,CAAC;IAES,kCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,GAAG;gBACxB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,qCAAS,GAAnB;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,GAAG;gBACxB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,uCAAW,GAAX,UAAY,GAAM;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,uCAAW,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBACpB,iBAAM,WAAW,WAAE,CAAC;aACrB;SACF;IACH,CAAC;IACH,wBAAC;AAAD,CAAC,AAvGD,CAAyC,uBAAU,GAuGlD;AAOD;IAA4C,2CAAa;IACvD,iCAAoB,GAAM,EACN,KAAiB,EACjB,MAA0C;QAF9D,YAGE,kBAAM,KAAK,CAAC,SACb;QAJmB,SAAG,GAAH,GAAG,CAAG;QACN,WAAK,GAAL,KAAK,CAAY;QACjB,YAAM,GAAN,MAAM,CAAoC;;IAE9D,CAAC;IAES,uCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAGD,8CAAY,GAAZ;QACQ,IAAA,SAAsB,EAApB,kBAAM,EAAE,YAAG,CAAU;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACzB;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,AAnBD,CAA4C,uBAAU,GAmBrD;AAUD;IAA6C,qCAAa;IAExD,2BAAmB,GAAM,EACL,YAAwB,EACxB,oBAA2C;QAF/D,YAGE,iBAAO,SACR;QAJkB,SAAG,GAAH,GAAG,CAAG;QACL,kBAAY,GAAZ,YAAY,CAAY;QACxB,0BAAoB,GAApB,oBAAoB,CAAuB;;IAE/D,CAAC;IAGD,sCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QAClC,IAAA,SAA6C,EAA3C,8CAAoB,EAAE,8BAAY,CAAU;QACpD,IAAI,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;YACxD,YAAY,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACvE;QACD,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,wBAAC;AAAD,CAAC,AAlBD,CAA6C,uBAAU,GAkBtD;AAlBY,8CAAiB;AAyB9B;IAAwC,6CAAY;IAClD,mCAAoB,MAA4B;QAAhD,YACE,iBAAO,SAER;QAHmB,YAAM,GAAN,MAAM,CAAsB;QAE9C,MAAM,CAAC,KAAK,EAAE,CAAC;;IACjB,CAAC;IAED,+CAAW,GAAX;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAClC,iBAAM,WAAW,WAAE,CAAC;YACpB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAClB,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,sBAAsB,EAAE;gBACvD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;SACF;IACH,CAAC;IACH,gCAAC;AAAD,CAAC,AAhBD,CAAwC,2BAAY,GAgBnD"}
diff --git a/node_modules/rxjs/internal/operators/ignoreElements.d.ts b/node_modules/rxjs/internal/operators/ignoreElements.d.ts
deleted file mode 100644
index ba78b73..0000000
--- a/node_modules/rxjs/internal/operators/ignoreElements.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.
- *
- * ![](ignoreElements.png)
- *
- * ## Examples
- * ### Ignores emitted values, reacts to observable's completion.
- * ```ts
- * import { of } from 'rxjs';
- * import { ignoreElements } from 'rxjs/operators';
- *
- * of('you', 'talking', 'to', 'me').pipe(
- *   ignoreElements(),
- * )
- * .subscribe(
- *   word => console.log(word),
- *   err => console.log('error:', err),
- *   () => console.log('the end'),
- * );
- * // result:
- * // 'the end'
- * ```
- * @return {Observable} An empty Observable that only calls `complete`
- * or `error`, based on which one is called by the source Observable.
- * @method ignoreElements
- * @owner Observable
- */
-export declare function ignoreElements(): OperatorFunction<any, never>;
diff --git a/node_modules/rxjs/internal/operators/ignoreElements.js b/node_modules/rxjs/internal/operators/ignoreElements.js
deleted file mode 100644
index ea43cd2..0000000
--- a/node_modules/rxjs/internal/operators/ignoreElements.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function ignoreElements() {
-    return function ignoreElementsOperatorFunction(source) {
-        return source.lift(new IgnoreElementsOperator());
-    };
-}
-exports.ignoreElements = ignoreElements;
-var IgnoreElementsOperator = (function () {
-    function IgnoreElementsOperator() {
-    }
-    IgnoreElementsOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new IgnoreElementsSubscriber(subscriber));
-    };
-    return IgnoreElementsOperator;
-}());
-var IgnoreElementsSubscriber = (function (_super) {
-    __extends(IgnoreElementsSubscriber, _super);
-    function IgnoreElementsSubscriber() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    IgnoreElementsSubscriber.prototype._next = function (unused) {
-    };
-    return IgnoreElementsSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=ignoreElements.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/ignoreElements.js.map b/node_modules/rxjs/internal/operators/ignoreElements.js.map
deleted file mode 100644
index 94a3ed8..0000000
--- a/node_modules/rxjs/internal/operators/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA8B3C,SAAgB,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAJD,wCAIC;AAED;IAAA;IAIA,CAAC;IAHC,qCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAA0C,4CAAa;IAAvD;;IAIA,CAAC;IAHW,wCAAK,GAAf,UAAgB,MAAS;IAEzB,CAAC;IACH,+BAAC;AAAD,CAAC,AAJD,CAA0C,uBAAU,GAInD"}
diff --git a/node_modules/rxjs/internal/operators/index.d.ts b/node_modules/rxjs/internal/operators/index.d.ts
deleted file mode 100644
index 7321559..0000000
--- a/node_modules/rxjs/internal/operators/index.d.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-export { audit } from './audit';
-export { auditTime } from './auditTime';
-export { buffer } from './buffer';
-export { bufferCount } from './bufferCount';
-export { bufferTime } from './bufferTime';
-export { bufferToggle } from './bufferToggle';
-export { bufferWhen } from './bufferWhen';
-export { catchError } from './catchError';
-export { combineAll } from './combineAll';
-export { combineLatest } from './combineLatest';
-export { concat } from './concat';
-export { concatAll } from './concatAll';
-export { concatMap } from './concatMap';
-export { concatMapTo } from './concatMapTo';
-export { count } from './count';
-export { debounce } from './debounce';
-export { debounceTime } from './debounceTime';
-export { defaultIfEmpty } from './defaultIfEmpty';
-export { delay } from './delay';
-export { delayWhen } from './delayWhen';
-export { dematerialize } from './dematerialize';
-export { distinct } from './distinct';
-export { distinctUntilChanged } from './distinctUntilChanged';
-export { distinctUntilKeyChanged } from './distinctUntilKeyChanged';
-export { elementAt } from './elementAt';
-export { every } from './every';
-export { exhaust } from './exhaust';
-export { exhaustMap } from './exhaustMap';
-export { expand } from './expand';
-export { filter } from './filter';
-export { finalize } from './finalize';
-export { find } from './find';
-export { findIndex } from './findIndex';
-export { first } from './first';
-export { groupBy } from './groupBy';
-export { ignoreElements } from './ignoreElements';
-export { isEmpty } from './isEmpty';
-export { last } from './last';
-export { map } from './map';
-export { mapTo } from './mapTo';
-export { materialize } from './materialize';
-export { max } from './max';
-export { merge } from './merge';
-export { mergeAll } from './mergeAll';
-export { mergeMap } from './mergeMap';
-export { mergeMap as flatMap } from './mergeMap';
-export { mergeMapTo } from './mergeMapTo';
-export { mergeScan } from './mergeScan';
-export { min } from './min';
-export { multicast } from './multicast';
-export { observeOn } from './observeOn';
-export { onErrorResumeNext } from './onErrorResumeNext';
-export { pairwise } from './pairwise';
-export { partition } from './partition';
-export { pluck } from './pluck';
-export { publish } from './publish';
-export { publishBehavior } from './publishBehavior';
-export { publishLast } from './publishLast';
-export { publishReplay } from './publishReplay';
-export { race } from './race';
-export { reduce } from './reduce';
-export { repeat } from './repeat';
-export { repeatWhen } from './repeatWhen';
-export { retry } from './retry';
-export { retryWhen } from './retryWhen';
-export { refCount } from './refCount';
-export { sample } from './sample';
-export { sampleTime } from './sampleTime';
-export { scan } from './scan';
-export { sequenceEqual } from './sequenceEqual';
-export { share } from './share';
-export { shareReplay } from './shareReplay';
-export { single } from './single';
-export { skip } from './skip';
-export { skipLast } from './skipLast';
-export { skipUntil } from './skipUntil';
-export { skipWhile } from './skipWhile';
-export { startWith } from './startWith';
-export { subscribeOn } from './subscribeOn';
-export { switchAll } from './switchAll';
-export { switchMap } from './switchMap';
-export { switchMapTo } from './switchMapTo';
-export { take } from './take';
-export { takeLast } from './takeLast';
-export { takeUntil } from './takeUntil';
-export { takeWhile } from './takeWhile';
-export { tap } from './tap';
-export { throttle } from './throttle';
-export { throttleTime } from './throttleTime';
-export { timeInterval } from './timeInterval';
-export { timeout } from './timeout';
-export { timeoutWith } from './timeoutWith';
-export { timestamp } from './timestamp';
-export { toArray } from './toArray';
-export { window } from './window';
-export { windowCount } from './windowCount';
-export { windowTime } from './windowTime';
-export { windowToggle } from './windowToggle';
-export { windowWhen } from './windowWhen';
-export { withLatestFrom } from './withLatestFrom';
-export { zip } from './zip';
-export { zipAll } from './zipAll';
diff --git a/node_modules/rxjs/internal/operators/index.js b/node_modules/rxjs/internal/operators/index.js
deleted file mode 100644
index b83f946..0000000
--- a/node_modules/rxjs/internal/operators/index.js
+++ /dev/null
@@ -1,207 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var audit_1 = require("./audit");
-exports.audit = audit_1.audit;
-var auditTime_1 = require("./auditTime");
-exports.auditTime = auditTime_1.auditTime;
-var buffer_1 = require("./buffer");
-exports.buffer = buffer_1.buffer;
-var bufferCount_1 = require("./bufferCount");
-exports.bufferCount = bufferCount_1.bufferCount;
-var bufferTime_1 = require("./bufferTime");
-exports.bufferTime = bufferTime_1.bufferTime;
-var bufferToggle_1 = require("./bufferToggle");
-exports.bufferToggle = bufferToggle_1.bufferToggle;
-var bufferWhen_1 = require("./bufferWhen");
-exports.bufferWhen = bufferWhen_1.bufferWhen;
-var catchError_1 = require("./catchError");
-exports.catchError = catchError_1.catchError;
-var combineAll_1 = require("./combineAll");
-exports.combineAll = combineAll_1.combineAll;
-var combineLatest_1 = require("./combineLatest");
-exports.combineLatest = combineLatest_1.combineLatest;
-var concat_1 = require("./concat");
-exports.concat = concat_1.concat;
-var concatAll_1 = require("./concatAll");
-exports.concatAll = concatAll_1.concatAll;
-var concatMap_1 = require("./concatMap");
-exports.concatMap = concatMap_1.concatMap;
-var concatMapTo_1 = require("./concatMapTo");
-exports.concatMapTo = concatMapTo_1.concatMapTo;
-var count_1 = require("./count");
-exports.count = count_1.count;
-var debounce_1 = require("./debounce");
-exports.debounce = debounce_1.debounce;
-var debounceTime_1 = require("./debounceTime");
-exports.debounceTime = debounceTime_1.debounceTime;
-var defaultIfEmpty_1 = require("./defaultIfEmpty");
-exports.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty;
-var delay_1 = require("./delay");
-exports.delay = delay_1.delay;
-var delayWhen_1 = require("./delayWhen");
-exports.delayWhen = delayWhen_1.delayWhen;
-var dematerialize_1 = require("./dematerialize");
-exports.dematerialize = dematerialize_1.dematerialize;
-var distinct_1 = require("./distinct");
-exports.distinct = distinct_1.distinct;
-var distinctUntilChanged_1 = require("./distinctUntilChanged");
-exports.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged;
-var distinctUntilKeyChanged_1 = require("./distinctUntilKeyChanged");
-exports.distinctUntilKeyChanged = distinctUntilKeyChanged_1.distinctUntilKeyChanged;
-var elementAt_1 = require("./elementAt");
-exports.elementAt = elementAt_1.elementAt;
-var every_1 = require("./every");
-exports.every = every_1.every;
-var exhaust_1 = require("./exhaust");
-exports.exhaust = exhaust_1.exhaust;
-var exhaustMap_1 = require("./exhaustMap");
-exports.exhaustMap = exhaustMap_1.exhaustMap;
-var expand_1 = require("./expand");
-exports.expand = expand_1.expand;
-var filter_1 = require("./filter");
-exports.filter = filter_1.filter;
-var finalize_1 = require("./finalize");
-exports.finalize = finalize_1.finalize;
-var find_1 = require("./find");
-exports.find = find_1.find;
-var findIndex_1 = require("./findIndex");
-exports.findIndex = findIndex_1.findIndex;
-var first_1 = require("./first");
-exports.first = first_1.first;
-var groupBy_1 = require("./groupBy");
-exports.groupBy = groupBy_1.groupBy;
-var ignoreElements_1 = require("./ignoreElements");
-exports.ignoreElements = ignoreElements_1.ignoreElements;
-var isEmpty_1 = require("./isEmpty");
-exports.isEmpty = isEmpty_1.isEmpty;
-var last_1 = require("./last");
-exports.last = last_1.last;
-var map_1 = require("./map");
-exports.map = map_1.map;
-var mapTo_1 = require("./mapTo");
-exports.mapTo = mapTo_1.mapTo;
-var materialize_1 = require("./materialize");
-exports.materialize = materialize_1.materialize;
-var max_1 = require("./max");
-exports.max = max_1.max;
-var merge_1 = require("./merge");
-exports.merge = merge_1.merge;
-var mergeAll_1 = require("./mergeAll");
-exports.mergeAll = mergeAll_1.mergeAll;
-var mergeMap_1 = require("./mergeMap");
-exports.mergeMap = mergeMap_1.mergeMap;
-var mergeMap_2 = require("./mergeMap");
-exports.flatMap = mergeMap_2.mergeMap;
-var mergeMapTo_1 = require("./mergeMapTo");
-exports.mergeMapTo = mergeMapTo_1.mergeMapTo;
-var mergeScan_1 = require("./mergeScan");
-exports.mergeScan = mergeScan_1.mergeScan;
-var min_1 = require("./min");
-exports.min = min_1.min;
-var multicast_1 = require("./multicast");
-exports.multicast = multicast_1.multicast;
-var observeOn_1 = require("./observeOn");
-exports.observeOn = observeOn_1.observeOn;
-var onErrorResumeNext_1 = require("./onErrorResumeNext");
-exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext;
-var pairwise_1 = require("./pairwise");
-exports.pairwise = pairwise_1.pairwise;
-var partition_1 = require("./partition");
-exports.partition = partition_1.partition;
-var pluck_1 = require("./pluck");
-exports.pluck = pluck_1.pluck;
-var publish_1 = require("./publish");
-exports.publish = publish_1.publish;
-var publishBehavior_1 = require("./publishBehavior");
-exports.publishBehavior = publishBehavior_1.publishBehavior;
-var publishLast_1 = require("./publishLast");
-exports.publishLast = publishLast_1.publishLast;
-var publishReplay_1 = require("./publishReplay");
-exports.publishReplay = publishReplay_1.publishReplay;
-var race_1 = require("./race");
-exports.race = race_1.race;
-var reduce_1 = require("./reduce");
-exports.reduce = reduce_1.reduce;
-var repeat_1 = require("./repeat");
-exports.repeat = repeat_1.repeat;
-var repeatWhen_1 = require("./repeatWhen");
-exports.repeatWhen = repeatWhen_1.repeatWhen;
-var retry_1 = require("./retry");
-exports.retry = retry_1.retry;
-var retryWhen_1 = require("./retryWhen");
-exports.retryWhen = retryWhen_1.retryWhen;
-var refCount_1 = require("./refCount");
-exports.refCount = refCount_1.refCount;
-var sample_1 = require("./sample");
-exports.sample = sample_1.sample;
-var sampleTime_1 = require("./sampleTime");
-exports.sampleTime = sampleTime_1.sampleTime;
-var scan_1 = require("./scan");
-exports.scan = scan_1.scan;
-var sequenceEqual_1 = require("./sequenceEqual");
-exports.sequenceEqual = sequenceEqual_1.sequenceEqual;
-var share_1 = require("./share");
-exports.share = share_1.share;
-var shareReplay_1 = require("./shareReplay");
-exports.shareReplay = shareReplay_1.shareReplay;
-var single_1 = require("./single");
-exports.single = single_1.single;
-var skip_1 = require("./skip");
-exports.skip = skip_1.skip;
-var skipLast_1 = require("./skipLast");
-exports.skipLast = skipLast_1.skipLast;
-var skipUntil_1 = require("./skipUntil");
-exports.skipUntil = skipUntil_1.skipUntil;
-var skipWhile_1 = require("./skipWhile");
-exports.skipWhile = skipWhile_1.skipWhile;
-var startWith_1 = require("./startWith");
-exports.startWith = startWith_1.startWith;
-var subscribeOn_1 = require("./subscribeOn");
-exports.subscribeOn = subscribeOn_1.subscribeOn;
-var switchAll_1 = require("./switchAll");
-exports.switchAll = switchAll_1.switchAll;
-var switchMap_1 = require("./switchMap");
-exports.switchMap = switchMap_1.switchMap;
-var switchMapTo_1 = require("./switchMapTo");
-exports.switchMapTo = switchMapTo_1.switchMapTo;
-var take_1 = require("./take");
-exports.take = take_1.take;
-var takeLast_1 = require("./takeLast");
-exports.takeLast = takeLast_1.takeLast;
-var takeUntil_1 = require("./takeUntil");
-exports.takeUntil = takeUntil_1.takeUntil;
-var takeWhile_1 = require("./takeWhile");
-exports.takeWhile = takeWhile_1.takeWhile;
-var tap_1 = require("./tap");
-exports.tap = tap_1.tap;
-var throttle_1 = require("./throttle");
-exports.throttle = throttle_1.throttle;
-var throttleTime_1 = require("./throttleTime");
-exports.throttleTime = throttleTime_1.throttleTime;
-var timeInterval_1 = require("./timeInterval");
-exports.timeInterval = timeInterval_1.timeInterval;
-var timeout_1 = require("./timeout");
-exports.timeout = timeout_1.timeout;
-var timeoutWith_1 = require("./timeoutWith");
-exports.timeoutWith = timeoutWith_1.timeoutWith;
-var timestamp_1 = require("./timestamp");
-exports.timestamp = timestamp_1.timestamp;
-var toArray_1 = require("./toArray");
-exports.toArray = toArray_1.toArray;
-var window_1 = require("./window");
-exports.window = window_1.window;
-var windowCount_1 = require("./windowCount");
-exports.windowCount = windowCount_1.windowCount;
-var windowTime_1 = require("./windowTime");
-exports.windowTime = windowTime_1.windowTime;
-var windowToggle_1 = require("./windowToggle");
-exports.windowToggle = windowToggle_1.windowToggle;
-var windowWhen_1 = require("./windowWhen");
-exports.windowWhen = windowWhen_1.windowWhen;
-var withLatestFrom_1 = require("./withLatestFrom");
-exports.withLatestFrom = withLatestFrom_1.withLatestFrom;
-var zip_1 = require("./zip");
-exports.zip = zip_1.zip;
-var zipAll_1 = require("./zipAll");
-exports.zipAll = zipAll_1.zipAll;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/index.js.map b/node_modules/rxjs/internal/operators/index.js.map
deleted file mode 100644
index d2d604f..0000000
--- a/node_modules/rxjs/internal/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../../src/internal/operators/index.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,iDAAgD;AAAvC,wCAAA,aAAa,CAAA;AACtB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,mDAAkD;AAAzC,0CAAA,cAAc,CAAA;AACvB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,iDAAgD;AAAvC,wCAAA,aAAa,CAAA;AACtB,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,+DAA8D;AAArD,sDAAA,oBAAoB,CAAA;AAC7B,qEAAoE;AAA3D,4DAAA,uBAAuB,CAAA;AAChC,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,mDAAkD;AAAzC,0CAAA,cAAc,CAAA;AACvB,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,6BAA4B;AAAnB,oBAAA,GAAG,CAAA;AACZ,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,6BAA4B;AAAnB,oBAAA,GAAG,CAAA;AACZ,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,uCAAiD;AAAxC,6BAAA,QAAQ,CAAW;AAC5B,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,6BAA4B;AAAnB,oBAAA,GAAG,CAAA;AACZ,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yDAAwD;AAA/C,gDAAA,iBAAiB,CAAA;AAC1B,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,qDAAoD;AAA3C,4CAAA,eAAe,CAAA;AACxB,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,iDAAgD;AAAvC,wCAAA,aAAa,CAAA;AACtB,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,iDAAgD;AAAvC,wCAAA,aAAa,CAAA;AACtB,iCAAgC;AAAvB,wBAAA,KAAK,CAAA;AACd,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,+BAA8B;AAArB,sBAAA,IAAI,CAAA;AACb,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,6BAA4B;AAAnB,oBAAA,GAAG,CAAA;AACZ,uCAAsC;AAA7B,8BAAA,QAAQ,CAAA;AACjB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA;AAClB,qCAAoC;AAA3B,4BAAA,OAAO,CAAA;AAChB,mCAAkC;AAAzB,0BAAA,MAAM,CAAA;AACf,6CAA4C;AAAnC,oCAAA,WAAW,CAAA;AACpB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,+CAA8C;AAArC,sCAAA,YAAY,CAAA;AACrB,2CAA0C;AAAjC,kCAAA,UAAU,CAAA;AACnB,mDAAkD;AAAzC,0CAAA,cAAc,CAAA;AACvB,6BAA4B;AAAnB,oBAAA,GAAG,CAAA;AACZ,mCAAkC;AAAzB,0BAAA,MAAM,CAAA"}
diff --git a/node_modules/rxjs/internal/operators/isEmpty.d.ts b/node_modules/rxjs/internal/operators/isEmpty.d.ts
deleted file mode 100644
index 404d14c..0000000
--- a/node_modules/rxjs/internal/operators/isEmpty.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Emits false if the input observable emits any values, or emits true if the
- * input observable completes without emitting any values.
- *
- * <span class="informal">Tells whether any values are emitted by an observable</span>
- *
- * ![](isEmpty.png)
- *
- * `isEmpty` transforms an Observable that emits values into an Observable that
- * emits a single boolean value representing whether or not any values were
- * emitted by the source Observable. As soon as the source Observable emits a
- * value, `isEmpty` will emit a `false` and complete.  If the source Observable
- * completes having not emitted anything, `isEmpty` will emit a `true` and
- * complete.
- *
- * A similar effect could be achieved with {@link count}, but `isEmpty` can emit
- * a `false` value sooner.
- *
- * ## Examples
- *
- * Emit `false` for a non-empty Observable
- * ```javascript
- * import { Subject } from 'rxjs';
- * import { isEmpty } from 'rxjs/operators';
- *
- * const source = new Subject<string>();
- * const result = source.pipe(isEmpty());
- * source.subscribe(x => console.log(x));
- * result.subscribe(x => console.log(x));
- * source.next('a');
- * source.next('b');
- * source.next('c');
- * source.complete();
- *
- * // Results in:
- * // a
- * // false
- * // b
- * // c
- * ```
- *
- * Emit `true` for an empty Observable
- * ```javascript
- * import { EMPTY } from 'rxjs';
- * import { isEmpty } from 'rxjs/operators';
- *
- * const result = EMPTY.pipe(isEmpty());
- * result.subscribe(x => console.log(x));
- * // Results in:
- * // true
- * ```
- *
- * @see {@link count}
- * @see {@link EMPTY}
- *
- * @return {OperatorFunction<T, boolean>} An Observable of a boolean value indicating whether observable was empty or not
- * @method isEmpty
- * @owner Observable
- */
-export declare function isEmpty<T>(): OperatorFunction<T, boolean>;
diff --git a/node_modules/rxjs/internal/operators/isEmpty.js b/node_modules/rxjs/internal/operators/isEmpty.js
deleted file mode 100644
index 8309141..0000000
--- a/node_modules/rxjs/internal/operators/isEmpty.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function isEmpty() {
-    return function (source) { return source.lift(new IsEmptyOperator()); };
-}
-exports.isEmpty = isEmpty;
-var IsEmptyOperator = (function () {
-    function IsEmptyOperator() {
-    }
-    IsEmptyOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new IsEmptySubscriber(observer));
-    };
-    return IsEmptyOperator;
-}());
-var IsEmptySubscriber = (function (_super) {
-    __extends(IsEmptySubscriber, _super);
-    function IsEmptySubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {
-        var destination = this.destination;
-        destination.next(isEmpty);
-        destination.complete();
-    };
-    IsEmptySubscriber.prototype._next = function (value) {
-        this.notifyComplete(false);
-    };
-    IsEmptySubscriber.prototype._complete = function () {
-        this.notifyComplete(true);
-    };
-    return IsEmptySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=isEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/isEmpty.js.map b/node_modules/rxjs/internal/operators/isEmpty.js.map
deleted file mode 100644
index e37d07f..0000000
--- a/node_modules/rxjs/internal/operators/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAgE3C,SAAgB,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,EAAlC,CAAkC,CAAC;AACvE,CAAC;AAFD,0BAEC;AAED;IAAA;IAIA,CAAC;IAHC,8BAAI,GAAJ,UAAM,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAgC,qCAAe;IAC7C,2BAAY,WAAgC;eAC1C,kBAAM,WAAW,CAAC;IACpB,CAAC;IAEO,0CAAc,GAAtB,UAAuB,OAAgB;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,qCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,wBAAC;AAAD,CAAC,AAnBD,CAAgC,uBAAU,GAmBzC"}
diff --git a/node_modules/rxjs/internal/operators/last.d.ts b/node_modules/rxjs/internal/operators/last.d.ts
deleted file mode 100644
index b34069f..0000000
--- a/node_modules/rxjs/internal/operators/last.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../../internal/types';
-export declare function last<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;
-export declare function last<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>;
-export declare function last<T, D = T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>;
diff --git a/node_modules/rxjs/internal/operators/last.js b/node_modules/rxjs/internal/operators/last.js
deleted file mode 100644
index 19fc0a9..0000000
--- a/node_modules/rxjs/internal/operators/last.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EmptyError_1 = require("../util/EmptyError");
-var filter_1 = require("./filter");
-var takeLast_1 = require("./takeLast");
-var throwIfEmpty_1 = require("./throwIfEmpty");
-var defaultIfEmpty_1 = require("./defaultIfEmpty");
-var identity_1 = require("../util/identity");
-function last(predicate, defaultValue) {
-    var hasDefaultValue = arguments.length >= 2;
-    return function (source) { return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); })); };
-}
-exports.last = last;
-//# sourceMappingURL=last.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/last.js.map b/node_modules/rxjs/internal/operators/last.js.map
deleted file mode 100644
index 966952b..0000000
--- a/node_modules/rxjs/internal/operators/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../../src/internal/operators/last.ts"],"names":[],"mappings":";;AAGA,iDAAgD;AAEhD,mCAAkC;AAClC,uCAAsC;AACtC,+CAA8C;AAC9C,mDAAkD;AAClD,6CAA4C;AAkC5C,SAAgB,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,mBAAQ,EAChE,mBAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,+BAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,uBAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC;AAVD,oBAUC"}
diff --git a/node_modules/rxjs/internal/operators/map.d.ts b/node_modules/rxjs/internal/operators/map.d.ts
deleted file mode 100644
index 6a4e0ab..0000000
--- a/node_modules/rxjs/internal/operators/map.d.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction } from '../types';
-/**
- * Applies a given `project` function to each value emitted by the source
- * Observable, and emits the resulting values as an Observable.
- *
- * <span class="informal">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),
- * it passes each source value through a transformation function to get
- * corresponding output values.</span>
- *
- * ![](map.png)
- *
- * Similar to the well known `Array.prototype.map` function, this operator
- * applies a projection to each value and emits that projection in the output
- * Observable.
- *
- * ## Example
- * Map every click to the clientX position of that click
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { map } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const positions = clicks.pipe(map(ev => ev.clientX));
- * positions.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link mapTo}
- * @see {@link pluck}
- *
- * @param {function(value: T, index: number): R} project The function to apply
- * to each `value` emitted by the source Observable. The `index` parameter is
- * the number `i` for the i-th emission that has happened since the
- * subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to define what `this` is in the
- * `project` function.
- * @return {Observable<R>} An Observable that emits the values from the source
- * Observable transformed by the given `project` function.
- * @method map
- * @owner Observable
- */
-export declare function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R>;
-export declare class MapOperator<T, R> implements Operator<T, R> {
-    private project;
-    private thisArg;
-    constructor(project: (value: T, index: number) => R, thisArg: any);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
diff --git a/node_modules/rxjs/internal/operators/map.js b/node_modules/rxjs/internal/operators/map.js
deleted file mode 100644
index 29bb166..0000000
--- a/node_modules/rxjs/internal/operators/map.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function map(project, thisArg) {
-    return function mapOperation(source) {
-        if (typeof project !== 'function') {
-            throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
-        }
-        return source.lift(new MapOperator(project, thisArg));
-    };
-}
-exports.map = map;
-var MapOperator = (function () {
-    function MapOperator(project, thisArg) {
-        this.project = project;
-        this.thisArg = thisArg;
-    }
-    MapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
-    };
-    return MapOperator;
-}());
-exports.MapOperator = MapOperator;
-var MapSubscriber = (function (_super) {
-    __extends(MapSubscriber, _super);
-    function MapSubscriber(destination, project, thisArg) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.count = 0;
-        _this.thisArg = thisArg || _this;
-        return _this;
-    }
-    MapSubscriber.prototype._next = function (value) {
-        var result;
-        try {
-            result = this.project.call(this.thisArg, value, this.count++);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return MapSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=map.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/map.js.map b/node_modules/rxjs/internal/operators/map.js.map
deleted file mode 100644
index e8e5dde..0000000
--- a/node_modules/rxjs/internal/operators/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../../src/internal/operators/map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA2C3C,SAAgB,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAPD,kBAOC;AAED;IACE,qBAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,0BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,kBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,kCAAW;AAcxB;IAAkC,iCAAa;IAI7C,uBAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QAFxB,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,aAAO,GAAP,OAAO,CAAgC;QAJ3D,WAAK,GAAW,CAAC,CAAC;QAOhB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAIS,6BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AAvBD,CAAkC,uBAAU,GAuB3C"}
diff --git a/node_modules/rxjs/internal/operators/mapTo.d.ts b/node_modules/rxjs/internal/operators/mapTo.d.ts
deleted file mode 100644
index f4cf9f6..0000000
--- a/node_modules/rxjs/internal/operators/mapTo.d.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Emits the given constant value on the output Observable every time the source
- * Observable emits a value.
- *
- * <span class="informal">Like {@link map}, but it maps every source value to
- * the same output value every time.</span>
- *
- * ![](mapTo.png)
- *
- * Takes a constant `value` as argument, and emits that whenever the source
- * Observable emits a value. In other words, ignores the actual source value,
- * and simply uses the emission moment to know when to emit the given `value`.
- *
- * ## Example
- * Map every click to the string 'Hi'
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { mapTo } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const greetings = clicks.pipe(mapTo('Hi'));
- * greetings.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link map}
- *
- * @param {any} value The value to map each source value to.
- * @return {Observable} An Observable that emits the given `value` every time
- * the source Observable emits something.
- * @method mapTo
- * @owner Observable
- */
-export declare function mapTo<T, R>(value: R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/mapTo.js b/node_modules/rxjs/internal/operators/mapTo.js
deleted file mode 100644
index 1433a34..0000000
--- a/node_modules/rxjs/internal/operators/mapTo.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function mapTo(value) {
-    return function (source) { return source.lift(new MapToOperator(value)); };
-}
-exports.mapTo = mapTo;
-var MapToOperator = (function () {
-    function MapToOperator(value) {
-        this.value = value;
-    }
-    MapToOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MapToSubscriber(subscriber, this.value));
-    };
-    return MapToOperator;
-}());
-var MapToSubscriber = (function (_super) {
-    __extends(MapToSubscriber, _super);
-    function MapToSubscriber(destination, value) {
-        var _this = _super.call(this, destination) || this;
-        _this.value = value;
-        return _this;
-    }
-    MapToSubscriber.prototype._next = function (x) {
-        this.destination.next(this.value);
-    };
-    return MapToSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=mapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/mapTo.js.map b/node_modules/rxjs/internal/operators/mapTo.js.map
deleted file mode 100644
index 803ca32..0000000
--- a/node_modules/rxjs/internal/operators/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../../src/internal/operators/mapTo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAoC3C,SAAgB,KAAK,CAAO,KAAQ;IAClC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAFD,sBAEC;AAED;IAIE,uBAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACH,oBAAC;AAAD,CAAC,AAXD,IAWC;AAOD;IAAoC,mCAAa;IAI/C,yBAAY,WAA0B,EAAE,KAAQ;QAAhD,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IAES,+BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,sBAAC;AAAD,CAAC,AAZD,CAAoC,uBAAU,GAY7C"}
diff --git a/node_modules/rxjs/internal/operators/materialize.d.ts b/node_modules/rxjs/internal/operators/materialize.d.ts
deleted file mode 100644
index 82b9e5a..0000000
--- a/node_modules/rxjs/internal/operators/materialize.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Notification } from '../Notification';
-import { OperatorFunction } from '../types';
-/**
- * Represents all of the notifications from the source Observable as `next`
- * emissions marked with their original types within {@link Notification}
- * objects.
- *
- * <span class="informal">Wraps `next`, `error` and `complete` emissions in
- * {@link Notification} objects, emitted as `next` on the output Observable.
- * </span>
- *
- * ![](materialize.png)
- *
- * `materialize` returns an Observable that emits a `next` notification for each
- * `next`, `error`, or `complete` emission of the source Observable. When the
- * source Observable emits `complete`, the output Observable will emit `next` as
- * a Notification of type "complete", and then it will emit `complete` as well.
- * When the source Observable emits `error`, the output will emit `next` as a
- * Notification of type "error", and then `complete`.
- *
- * This operator is useful for producing metadata of the source Observable, to
- * be consumed as `next` emissions. Use it in conjunction with
- * {@link dematerialize}.
- *
- * ## Example
- * Convert a faulty Observable to an Observable of Notifications
- * ```ts
- * import { of } from 'rxjs';
- * import { materialize, map } from 'rxjs/operators';
- *
- * const letters = of('a', 'b', 13, 'd');
- * const upperCase = letters.pipe(map(x => x.toUpperCase()));
- * const materialized = upperCase.pipe(materialize());
- * materialized.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // - Notification {kind: "N", value: "A", error: undefined, hasValue: true}
- * // - Notification {kind: "N", value: "B", error: undefined, hasValue: true}
- * // - Notification {kind: "E", value: undefined, error: TypeError:
- * //   x.toUpperCase is not a function at MapSubscriber.letters.map.x
- * //   [as project] (http://1…, hasValue: false}
- * ```
- *
- * @see {@link Notification}
- * @see {@link dematerialize}
- *
- * @return {Observable<Notification<T>>} An Observable that emits
- * {@link Notification} objects that wrap the original emissions from the source
- * Observable with metadata.
- * @method materialize
- * @owner Observable
- */
-export declare function materialize<T>(): OperatorFunction<T, Notification<T>>;
diff --git a/node_modules/rxjs/internal/operators/materialize.js b/node_modules/rxjs/internal/operators/materialize.js
deleted file mode 100644
index 61aeb68..0000000
--- a/node_modules/rxjs/internal/operators/materialize.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Notification_1 = require("../Notification");
-function materialize() {
-    return function materializeOperatorFunction(source) {
-        return source.lift(new MaterializeOperator());
-    };
-}
-exports.materialize = materialize;
-var MaterializeOperator = (function () {
-    function MaterializeOperator() {
-    }
-    MaterializeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MaterializeSubscriber(subscriber));
-    };
-    return MaterializeOperator;
-}());
-var MaterializeSubscriber = (function (_super) {
-    __extends(MaterializeSubscriber, _super);
-    function MaterializeSubscriber(destination) {
-        return _super.call(this, destination) || this;
-    }
-    MaterializeSubscriber.prototype._next = function (value) {
-        this.destination.next(Notification_1.Notification.createNext(value));
-    };
-    MaterializeSubscriber.prototype._error = function (err) {
-        var destination = this.destination;
-        destination.next(Notification_1.Notification.createError(err));
-        destination.complete();
-    };
-    MaterializeSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        destination.next(Notification_1.Notification.createComplete());
-        destination.complete();
-    };
-    return MaterializeSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=materialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/materialize.js.map b/node_modules/rxjs/internal/operators/materialize.js.map
deleted file mode 100644
index 5e4171d..0000000
--- a/node_modules/rxjs/internal/operators/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../../src/internal/operators/materialize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,gDAA+C;AAqD/C,SAAgB,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,yCAAa;IAClD,+BAAY,WAAwC;eAClD,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,yCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AApBD,CAAuC,uBAAU,GAoBhD"}
diff --git a/node_modules/rxjs/internal/operators/max.d.ts b/node_modules/rxjs/internal/operators/max.d.ts
deleted file mode 100644
index 460413d..0000000
--- a/node_modules/rxjs/internal/operators/max.d.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),
- * and when source Observable completes it emits a single item: the item with the largest value.
- *
- * ![](max.png)
- *
- * ## Examples
- * Get the maximal value of a series of numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { max } from 'rxjs/operators';
- *
- * of(5, 4, 7, 2, 8).pipe(
- *   max(),
- * )
- * .subscribe(x => console.log(x)); // -> 8
- * ```
- *
- * Use a comparer function to get the maximal item
- * ```typescript
- * import { of } from 'rxjs';
- * import { max } from 'rxjs/operators';
- *
- * interface Person {
- *   age: number,
- *   name: string
- * }
- * of<Person>(
- *   {age: 7, name: 'Foo'},
- *   {age: 5, name: 'Bar'},
- *   {age: 9, name: 'Beer'},
- * ).pipe(
- *   max<Person>((a: Person, b: Person) => a.age < b.age ? -1 : 1),
- * )
- * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'
- * ```
- *
- * @see {@link min}
- *
- * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the
- * value of two items.
- * @return {Observable} An Observable that emits item with the largest value.
- * @method max
- * @owner Observable
- */
-export declare function max<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/max.js b/node_modules/rxjs/internal/operators/max.js
deleted file mode 100644
index a91824d..0000000
--- a/node_modules/rxjs/internal/operators/max.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var reduce_1 = require("./reduce");
-function max(comparer) {
-    var max = (typeof comparer === 'function')
-        ? function (x, y) { return comparer(x, y) > 0 ? x : y; }
-        : function (x, y) { return x > y ? x : y; };
-    return reduce_1.reduce(max);
-}
-exports.max = max;
-//# sourceMappingURL=max.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/max.js.map b/node_modules/rxjs/internal/operators/max.js.map
deleted file mode 100644
index 44da4c9..0000000
--- a/node_modules/rxjs/internal/operators/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../../src/internal/operators/max.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAgDlC,SAAgB,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAE5B,OAAO,eAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAND,kBAMC"}
diff --git a/node_modules/rxjs/internal/operators/merge.d.ts b/node_modules/rxjs/internal/operators/merge.d.ts
deleted file mode 100644
index eff80b8..0000000
--- a/node_modules/rxjs/internal/operators/merge.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T>(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2>(v2: ObservableInput<T2>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T>(...observables: Array<ObservableInput<T> | SchedulerLike | number>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export declare function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/merge.js b/node_modules/rxjs/internal/operators/merge.js
deleted file mode 100644
index 29cabb3..0000000
--- a/node_modules/rxjs/internal/operators/merge.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var merge_1 = require("../observable/merge");
-function merge() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function (source) { return source.lift.call(merge_1.merge.apply(void 0, [source].concat(observables))); };
-}
-exports.merge = merge;
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/merge.js.map b/node_modules/rxjs/internal/operators/merge.js.map
deleted file mode 100644
index a93c984..0000000
--- a/node_modules/rxjs/internal/operators/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../../src/internal/operators/merge.ts"],"names":[],"mappings":";;AAAA,6CAA2D;AAsC3D,SAAgB,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAW,gBAAC,MAAM,SAAK,WAAW,GAAE,EAArD,CAAqD,CAAC;AAC1F,CAAC;AAFD,sBAEC"}
diff --git a/node_modules/rxjs/internal/operators/mergeAll.d.ts b/node_modules/rxjs/internal/operators/mergeAll.d.ts
deleted file mode 100644
index 0d2a8f3..0000000
--- a/node_modules/rxjs/internal/operators/mergeAll.d.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { OperatorFunction, ObservableInput } from '../types';
-/**
- * Converts a higher-order Observable into a first-order Observable which
- * concurrently delivers all values that are emitted on the inner Observables.
- *
- * <span class="informal">Flattens an Observable-of-Observables.</span>
- *
- * ![](mergeAll.png)
- *
- * `mergeAll` subscribes to an Observable that emits Observables, also known as
- * a higher-order Observable. Each time it observes one of these emitted inner
- * Observables, it subscribes to that and delivers all the values from the
- * inner Observable on the output Observable. The output Observable only
- * completes once all inner Observables have completed. Any error delivered by
- * a inner Observable will be immediately emitted on the output Observable.
- *
- * ## Examples
- * Spawn a new interval Observable for each click event, and blend their outputs as one Observable
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { map, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(map((ev) => interval(1000)));
- * const firstOrder = higherOrder.pipe(mergeAll());
- * firstOrder.subscribe(x => console.log(x));
- * ```
- *
- * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { take, map, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(
- *   map((ev) => interval(1000).pipe(take(10))),
- * );
- * const firstOrder = higherOrder.pipe(mergeAll(2));
- * firstOrder.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link combineAll}
- * @see {@link concatAll}
- * @see {@link exhaust}
- * @see {@link merge}
- * @see {@link mergeMap}
- * @see {@link mergeMapTo}
- * @see {@link mergeScan}
- * @see {@link switchAll}
- * @see {@link switchMap}
- * @see {@link zipAll}
- *
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner
- * Observables being subscribed to concurrently.
- * @return {Observable} An Observable that emits values coming from all the
- * inner Observables emitted by the source Observable.
- * @method mergeAll
- * @owner Observable
- */
-export declare function mergeAll<T>(concurrent?: number): OperatorFunction<ObservableInput<T>, T>;
diff --git a/node_modules/rxjs/internal/operators/mergeAll.js b/node_modules/rxjs/internal/operators/mergeAll.js
deleted file mode 100644
index 4c732d2..0000000
--- a/node_modules/rxjs/internal/operators/mergeAll.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var mergeMap_1 = require("./mergeMap");
-var identity_1 = require("../util/identity");
-function mergeAll(concurrent) {
-    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-    return mergeMap_1.mergeMap(identity_1.identity, concurrent);
-}
-exports.mergeAll = mergeAll;
-//# sourceMappingURL=mergeAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/mergeAll.js.map b/node_modules/rxjs/internal/operators/mergeAll.js.map
deleted file mode 100644
index 726ab22..0000000
--- a/node_modules/rxjs/internal/operators/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":";;AACA,uCAAsC;AACtC,6CAA4C;AA6D5C,SAAgB,QAAQ,CAAI,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,mBAAQ,CAAC,mBAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAFD,4BAEC"}
diff --git a/node_modules/rxjs/internal/operators/mergeMap.d.ts b/node_modules/rxjs/internal/operators/mergeMap.d.ts
deleted file mode 100644
index f2fb80d..0000000
--- a/node_modules/rxjs/internal/operators/mergeMap.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export declare function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
-export declare class MergeMapOperator<T, R> implements Operator<T, R> {
-    private project;
-    private concurrent;
-    constructor(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number);
-    call(observer: Subscriber<R>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class MergeMapSubscriber<T, R> extends OuterSubscriber<T, R> {
-    private project;
-    private concurrent;
-    private hasCompleted;
-    private buffer;
-    private active;
-    protected index: number;
-    constructor(destination: Subscriber<R>, project: (value: T, index: number) => ObservableInput<R>, concurrent?: number);
-    protected _next(value: T): void;
-    protected _tryNext(value: T): void;
-    private _innerSub;
-    protected _complete(): void;
-    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;
-    notifyComplete(innerSub: Subscription): void;
-}
diff --git a/node_modules/rxjs/internal/operators/mergeMap.js b/node_modules/rxjs/internal/operators/mergeMap.js
deleted file mode 100644
index 4e2c6aa..0000000
--- a/node_modules/rxjs/internal/operators/mergeMap.js
+++ /dev/null
@@ -1,111 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var map_1 = require("./map");
-var from_1 = require("../observable/from");
-function mergeMap(project, resultSelector, concurrent) {
-    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-    if (typeof resultSelector === 'function') {
-        return function (source) { return source.pipe(mergeMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };
-    }
-    else if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };
-}
-exports.mergeMap = mergeMap;
-var MergeMapOperator = (function () {
-    function MergeMapOperator(project, concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        this.project = project;
-        this.concurrent = concurrent;
-    }
-    MergeMapOperator.prototype.call = function (observer, source) {
-        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
-    };
-    return MergeMapOperator;
-}());
-exports.MergeMapOperator = MergeMapOperator;
-var MergeMapSubscriber = (function (_super) {
-    __extends(MergeMapSubscriber, _super);
-    function MergeMapSubscriber(destination, project, concurrent) {
-        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.concurrent = concurrent;
-        _this.hasCompleted = false;
-        _this.buffer = [];
-        _this.active = 0;
-        _this.index = 0;
-        return _this;
-    }
-    MergeMapSubscriber.prototype._next = function (value) {
-        if (this.active < this.concurrent) {
-            this._tryNext(value);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    MergeMapSubscriber.prototype._tryNext = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.active++;
-        this._innerSub(result, value, index);
-    };
-    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {
-        var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult_1.subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    MergeMapSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        this.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            this.destination.complete();
-        }
-    };
-    return MergeMapSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.MergeMapSubscriber = MergeMapSubscriber;
-//# sourceMappingURL=mergeMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/mergeMap.js.map b/node_modules/rxjs/internal/operators/mergeMap.js.map
deleted file mode 100644
index fb90613..0000000
--- a/node_modules/rxjs/internal/operators/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.d.ts b/node_modules/rxjs/internal/operators/mergeMapTo.d.ts
deleted file mode 100644
index cd1d5a1..0000000
--- a/node_modules/rxjs/internal/operators/mergeMapTo.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { OperatorFunction, ObservedValueOf } from '../../internal/types';
-import { ObservableInput } from '../types';
-export declare function mergeMapTo<T, O extends ObservableInput<any>>(innerObservable: O, concurrent?: number): OperatorFunction<any, ObservedValueOf<O>>;
-/** @deprecated */
-export declare function mergeMapTo<T, R, O extends ObservableInput<any>>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.js b/node_modules/rxjs/internal/operators/mergeMapTo.js
deleted file mode 100644
index c3522a2..0000000
--- a/node_modules/rxjs/internal/operators/mergeMapTo.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var mergeMap_1 = require("./mergeMap");
-function mergeMapTo(innerObservable, resultSelector, concurrent) {
-    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-    if (typeof resultSelector === 'function') {
-        return mergeMap_1.mergeMap(function () { return innerObservable; }, resultSelector, concurrent);
-    }
-    if (typeof resultSelector === 'number') {
-        concurrent = resultSelector;
-    }
-    return mergeMap_1.mergeMap(function () { return innerObservable; }, concurrent);
-}
-exports.mergeMapTo = mergeMapTo;
-//# sourceMappingURL=mergeMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/internal/operators/mergeMapTo.js.map
deleted file mode 100644
index bb4a5ab..0000000
--- a/node_modules/rxjs/internal/operators/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":";;AAEA,uCAAsC;AAiDtC,SAAgB,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,mBAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,mBAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AAZD,gCAYC"}
diff --git a/node_modules/rxjs/internal/operators/mergeScan.d.ts b/node_modules/rxjs/internal/operators/mergeScan.d.ts
deleted file mode 100644
index eeabf3b..0000000
--- a/node_modules/rxjs/internal/operators/mergeScan.d.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { ObservableInput, OperatorFunction } from '../types';
-/**
- * Applies an accumulator function over the source Observable where the
- * accumulator function itself returns an Observable, then each intermediate
- * Observable returned is merged into the output Observable.
- *
- * <span class="informal">It's like {@link scan}, but the Observables returned
- * by the accumulator are merged into the outer Observable.</span>
- *
- * ## Example
- * Count the number of click events
- * ```ts
- * import { fromEvent, of } from 'rxjs';
- * import { mapTo, mergeScan } from 'rxjs/operators';
- *
- * const click$ = fromEvent(document, 'click');
- * const one$ = click$.pipe(mapTo(1));
- * const seed = 0;
- * const count$ = one$.pipe(
- *   mergeScan((acc, one) => of(acc + one), seed),
- * );
- * count$.subscribe(x => console.log(x));
- *
- * // Results:
- * // 1
- * // 2
- * // 3
- * // 4
- * // ...and so on for each click
- * ```
- *
- * @param {function(acc: R, value: T): Observable<R>} accumulator
- * The accumulator function called on each source value.
- * @param seed The initial accumulation value.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of
- * input Observables being subscribed to concurrently.
- * @return {Observable<R>} An observable of the accumulated values.
- * @method mergeScan
- * @owner Observable
- */
-export declare function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent?: number): OperatorFunction<T, R>;
-export declare class MergeScanOperator<T, R> implements Operator<T, R> {
-    private accumulator;
-    private seed;
-    private concurrent;
-    constructor(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent: number);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class MergeScanSubscriber<T, R> extends OuterSubscriber<T, R> {
-    private accumulator;
-    private acc;
-    private concurrent;
-    private hasValue;
-    private hasCompleted;
-    private buffer;
-    private active;
-    protected index: number;
-    constructor(destination: Subscriber<R>, accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, acc: R, concurrent: number);
-    protected _next(value: any): void;
-    private _innerSub;
-    protected _complete(): void;
-    notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber<T, R>): void;
-    notifyComplete(innerSub: Subscription): void;
-}
diff --git a/node_modules/rxjs/internal/operators/mergeScan.js b/node_modules/rxjs/internal/operators/mergeScan.js
deleted file mode 100644
index 523eb4a..0000000
--- a/node_modules/rxjs/internal/operators/mergeScan.js
+++ /dev/null
@@ -1,112 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-function mergeScan(accumulator, seed, concurrent) {
-    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }
-    return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };
-}
-exports.mergeScan = mergeScan;
-var MergeScanOperator = (function () {
-    function MergeScanOperator(accumulator, seed, concurrent) {
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.concurrent = concurrent;
-    }
-    MergeScanOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));
-    };
-    return MergeScanOperator;
-}());
-exports.MergeScanOperator = MergeScanOperator;
-var MergeScanSubscriber = (function (_super) {
-    __extends(MergeScanSubscriber, _super);
-    function MergeScanSubscriber(destination, accumulator, acc, concurrent) {
-        var _this = _super.call(this, destination) || this;
-        _this.accumulator = accumulator;
-        _this.acc = acc;
-        _this.concurrent = concurrent;
-        _this.hasValue = false;
-        _this.hasCompleted = false;
-        _this.buffer = [];
-        _this.active = 0;
-        _this.index = 0;
-        return _this;
-    }
-    MergeScanSubscriber.prototype._next = function (value) {
-        if (this.active < this.concurrent) {
-            var index = this.index++;
-            var destination = this.destination;
-            var ish = void 0;
-            try {
-                var accumulator = this.accumulator;
-                ish = accumulator(this.acc, value, index);
-            }
-            catch (e) {
-                return destination.error(e);
-            }
-            this.active++;
-            this._innerSub(ish, value, index);
-        }
-        else {
-            this.buffer.push(value);
-        }
-    };
-    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {
-        var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        var innerSubscription = subscribeToResult_1.subscribeToResult(this, ish, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            destination.add(innerSubscription);
-        }
-    };
-    MergeScanSubscriber.prototype._complete = function () {
-        this.hasCompleted = true;
-        if (this.active === 0 && this.buffer.length === 0) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-        this.unsubscribe();
-    };
-    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var destination = this.destination;
-        this.acc = innerValue;
-        this.hasValue = true;
-        destination.next(innerValue);
-    };
-    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {
-        var buffer = this.buffer;
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.active--;
-        if (buffer.length > 0) {
-            this._next(buffer.shift());
-        }
-        else if (this.active === 0 && this.hasCompleted) {
-            if (this.hasValue === false) {
-                this.destination.next(this.acc);
-            }
-            this.destination.complete();
-        }
-    };
-    return MergeScanSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-exports.MergeScanSubscriber = MergeScanSubscriber;
-//# sourceMappingURL=mergeScan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/mergeScan.js.map b/node_modules/rxjs/internal/operators/mergeScan.js.map
deleted file mode 100644
index a20a90f..0000000
--- a/node_modules/rxjs/internal/operators/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/min.d.ts b/node_modules/rxjs/internal/operators/min.d.ts
deleted file mode 100644
index 72abf65..0000000
--- a/node_modules/rxjs/internal/operators/min.d.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),
- * and when source Observable completes it emits a single item: the item with the smallest value.
- *
- * ![](min.png)
- *
- * ## Examples
- * Get the minimal value of a series of numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { min } from 'rxjs/operators';
- *
- * of(5, 4, 7, 2, 8).pipe(
- *   min(),
- * )
- * .subscribe(x => console.log(x)); // -> 2
- * ```
- *
- * Use a comparer function to get the minimal item
- * ```typescript
- * import { of } from 'rxjs';
- * import { min } from 'rxjs/operators';
- *
- * interface Person {
- *   age: number,
- *   name: string
- * }
- * of<Person>(
- *   {age: 7, name: 'Foo'},
- *   {age: 5, name: 'Bar'},
- *   {age: 9, name: 'Beer'},
- * ).pipe(
- *   min<Person>( (a: Person, b: Person) => a.age < b.age ? -1 : 1),
- * )
- * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'
- * ```
- * @see {@link max}
- *
- * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the
- * value of two items.
- * @return {Observable<R>} An Observable that emits item with the smallest value.
- * @method min
- * @owner Observable
- */
-export declare function min<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/min.js b/node_modules/rxjs/internal/operators/min.js
deleted file mode 100644
index 780cf3e..0000000
--- a/node_modules/rxjs/internal/operators/min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var reduce_1 = require("./reduce");
-function min(comparer) {
-    var min = (typeof comparer === 'function')
-        ? function (x, y) { return comparer(x, y) < 0 ? x : y; }
-        : function (x, y) { return x < y ? x : y; };
-    return reduce_1.reduce(min);
-}
-exports.min = min;
-//# sourceMappingURL=min.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/min.js.map b/node_modules/rxjs/internal/operators/min.js.map
deleted file mode 100644
index f17a17e..0000000
--- a/node_modules/rxjs/internal/operators/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../../src/internal/operators/min.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AA+ClC,SAAgB,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAC5B,OAAO,eAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AALD,kBAKC"}
diff --git a/node_modules/rxjs/internal/operators/multicast.d.ts b/node_modules/rxjs/internal/operators/multicast.d.ts
deleted file mode 100644
index e00592e..0000000
--- a/node_modules/rxjs/internal/operators/multicast.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Subject } from '../Subject';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';
-export declare function multicast<T>(subject: Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export declare function multicast<T, O extends ObservableInput<any>>(subject: Subject<T>, selector: (shared: Observable<T>) => O): UnaryFunction<Observable<T>, ConnectableObservable<ObservedValueOf<O>>>;
-export declare function multicast<T>(subjectFactory: (this: Observable<T>) => Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export declare function multicast<T, O extends ObservableInput<any>>(SubjectFactory: (this: Observable<T>) => Subject<T>, selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;
-export declare class MulticastOperator<T, R> implements Operator<T, R> {
-    private subjectFactory;
-    private selector;
-    constructor(subjectFactory: () => Subject<T>, selector: (source: Observable<T>) => Observable<R>);
-    call(subscriber: Subscriber<R>, source: any): any;
-}
diff --git a/node_modules/rxjs/internal/operators/multicast.js b/node_modules/rxjs/internal/operators/multicast.js
deleted file mode 100644
index 2782102..0000000
--- a/node_modules/rxjs/internal/operators/multicast.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ConnectableObservable_1 = require("../observable/ConnectableObservable");
-function multicast(subjectOrSubjectFactory, selector) {
-    return function multicastOperatorFunction(source) {
-        var subjectFactory;
-        if (typeof subjectOrSubjectFactory === 'function') {
-            subjectFactory = subjectOrSubjectFactory;
-        }
-        else {
-            subjectFactory = function subjectFactory() {
-                return subjectOrSubjectFactory;
-            };
-        }
-        if (typeof selector === 'function') {
-            return source.lift(new MulticastOperator(subjectFactory, selector));
-        }
-        var connectable = Object.create(source, ConnectableObservable_1.connectableObservableDescriptor);
-        connectable.source = source;
-        connectable.subjectFactory = subjectFactory;
-        return connectable;
-    };
-}
-exports.multicast = multicast;
-var MulticastOperator = (function () {
-    function MulticastOperator(subjectFactory, selector) {
-        this.subjectFactory = subjectFactory;
-        this.selector = selector;
-    }
-    MulticastOperator.prototype.call = function (subscriber, source) {
-        var selector = this.selector;
-        var subject = this.subjectFactory();
-        var subscription = selector(subject).subscribe(subscriber);
-        subscription.add(source.subscribe(subject));
-        return subscription;
-    };
-    return MulticastOperator;
-}());
-exports.MulticastOperator = MulticastOperator;
-//# sourceMappingURL=multicast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/multicast.js.map b/node_modules/rxjs/internal/operators/multicast.js.map
deleted file mode 100644
index e2cc508..0000000
--- a/node_modules/rxjs/internal/operators/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../../src/internal/operators/multicast.ts"],"names":[],"mappings":";;AAIA,6EAA6G;AA6B7G,SAAgB,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,IAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uDAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAtBD,8BAsBC;AAED;IACE,2BAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACjC,IAAA,wBAAQ,CAAU;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,wBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,8CAAiB"}
diff --git a/node_modules/rxjs/internal/operators/observeOn.d.ts b/node_modules/rxjs/internal/operators/observeOn.d.ts
deleted file mode 100644
index 3034ace..0000000
--- a/node_modules/rxjs/internal/operators/observeOn.d.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-/**
- *
- * Re-emits all notifications from source Observable with specified scheduler.
- *
- * <span class="informal">Ensure a specific scheduler is used, from outside of an Observable.</span>
- *
- * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule
- * notifications emitted by the source Observable. It might be useful, if you do not have control over
- * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.
- *
- * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,
- * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal
- * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits
- * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.
- * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split
- * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source
- * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a
- * little bit more, to ensure that they are emitted at expected moments.
- *
- * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications
- * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`
- * will delay all notifications - including error notifications - while `delay` will pass through error
- * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator
- * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used
- * for notification emissions in general.
- *
- * ## Example
- * Ensure values in subscribe are called just before browser repaint.
- * ```ts
- * import { interval } from 'rxjs';
- * import { observeOn } from 'rxjs/operators';
- *
- * const intervals = interval(10);                // Intervals are scheduled
- *                                                // with async scheduler by default...
- * intervals.pipe(
- *   observeOn(animationFrameScheduler),          // ...but we will observe on animationFrame
- * )                                              // scheduler to ensure smooth animation.
- * .subscribe(val => {
- *   someDiv.style.height = val + 'px';
- * });
- * ```
- *
- * @see {@link delay}
- *
- * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.
- * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.
- * @return {Observable<T>} Observable that emits the same notifications as the source Observable,
- * but with provided scheduler.
- *
- * @method observeOn
- * @owner Observable
- */
-export declare function observeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>;
-export declare class ObserveOnOperator<T> implements Operator<T, T> {
-    private scheduler;
-    private delay;
-    constructor(scheduler: SchedulerLike, delay?: number);
-    call(subscriber: Subscriber<T>, source: any): TeardownLogic;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class ObserveOnSubscriber<T> extends Subscriber<T> {
-    private scheduler;
-    private delay;
-    /** @nocollapse */
-    static dispatch(this: SchedulerAction<ObserveOnMessage>, arg: ObserveOnMessage): void;
-    constructor(destination: Subscriber<T>, scheduler: SchedulerLike, delay?: number);
-    private scheduleMessage;
-    protected _next(value: T): void;
-    protected _error(err: any): void;
-    protected _complete(): void;
-}
-export declare class ObserveOnMessage {
-    notification: Notification<any>;
-    destination: PartialObserver<any>;
-    constructor(notification: Notification<any>, destination: PartialObserver<any>);
-}
diff --git a/node_modules/rxjs/internal/operators/observeOn.js b/node_modules/rxjs/internal/operators/observeOn.js
deleted file mode 100644
index 3ace8fb..0000000
--- a/node_modules/rxjs/internal/operators/observeOn.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Notification_1 = require("../Notification");
-function observeOn(scheduler, delay) {
-    if (delay === void 0) { delay = 0; }
-    return function observeOnOperatorFunction(source) {
-        return source.lift(new ObserveOnOperator(scheduler, delay));
-    };
-}
-exports.observeOn = observeOn;
-var ObserveOnOperator = (function () {
-    function ObserveOnOperator(scheduler, delay) {
-        if (delay === void 0) { delay = 0; }
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    ObserveOnOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
-    };
-    return ObserveOnOperator;
-}());
-exports.ObserveOnOperator = ObserveOnOperator;
-var ObserveOnSubscriber = (function (_super) {
-    __extends(ObserveOnSubscriber, _super);
-    function ObserveOnSubscriber(destination, scheduler, delay) {
-        if (delay === void 0) { delay = 0; }
-        var _this = _super.call(this, destination) || this;
-        _this.scheduler = scheduler;
-        _this.delay = delay;
-        return _this;
-    }
-    ObserveOnSubscriber.dispatch = function (arg) {
-        var notification = arg.notification, destination = arg.destination;
-        notification.observe(destination);
-        this.unsubscribe();
-    };
-    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {
-        var destination = this.destination;
-        destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
-    };
-    ObserveOnSubscriber.prototype._next = function (value) {
-        this.scheduleMessage(Notification_1.Notification.createNext(value));
-    };
-    ObserveOnSubscriber.prototype._error = function (err) {
-        this.scheduleMessage(Notification_1.Notification.createError(err));
-        this.unsubscribe();
-    };
-    ObserveOnSubscriber.prototype._complete = function () {
-        this.scheduleMessage(Notification_1.Notification.createComplete());
-        this.unsubscribe();
-    };
-    return ObserveOnSubscriber;
-}(Subscriber_1.Subscriber));
-exports.ObserveOnSubscriber = ObserveOnSubscriber;
-var ObserveOnMessage = (function () {
-    function ObserveOnMessage(notification, destination) {
-        this.notification = notification;
-        this.destination = destination;
-    }
-    return ObserveOnMessage;
-}());
-exports.ObserveOnMessage = ObserveOnMessage;
-//# sourceMappingURL=observeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/observeOn.js.map b/node_modules/rxjs/internal/operators/observeOn.js.map
deleted file mode 100644
index 8d5b133..0000000
--- a/node_modules/rxjs/internal/operators/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,gDAA+C;AAuD/C,SAAgB,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAJD,8BAIC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,8CAAiB;AAc9B;IAA4C,uCAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,uBAAU,GAoCrD;AApCY,kDAAmB;AAsChC;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4CAAgB"}
diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts b/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts
deleted file mode 100644
index 2c2bf86..0000000
--- a/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction } from '../types';
-export declare function onErrorResumeNext<T>(): OperatorFunction<T, T>;
-export declare function onErrorResumeNext<T, T2>(v: ObservableInput<T2>): OperatorFunction<T, T | T2>;
-export declare function onErrorResumeNext<T, T2, T3>(v: ObservableInput<T2>, v2: ObservableInput<T3>): OperatorFunction<T, T | T2 | T3>;
-export declare function onErrorResumeNext<T, T2, T3, T4>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>): OperatorFunction<T, T | T2 | T3 | T4>;
-export declare function onErrorResumeNext<T, T2, T3, T4, T5>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-export declare function onErrorResumeNext<T, T2, T3, T4, T5, T6>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-export declare function onErrorResumeNext<T, T2, T3, T4, T5, T6, T7>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>, v6: ObservableInput<T7>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6 | T7>;
-export declare function onErrorResumeNext<T, R>(...observables: Array<ObservableInput<any>>): OperatorFunction<T, T | R>;
-export declare function onErrorResumeNext<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, T | R>;
-export declare function onErrorResumeNextStatic<R>(v: ObservableInput<R>): Observable<R>;
-export declare function onErrorResumeNextStatic<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;
-export declare function onErrorResumeNextStatic<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;
-export declare function onErrorResumeNextStatic<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;
-export declare function onErrorResumeNextStatic<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;
-export declare function onErrorResumeNextStatic<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-export declare function onErrorResumeNextStatic<R>(array: ObservableInput<any>[]): Observable<R>;
diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/internal/operators/onErrorResumeNext.js
deleted file mode 100644
index b4dfcbf..0000000
--- a/node_modules/rxjs/internal/operators/onErrorResumeNext.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var from_1 = require("../observable/from");
-var isArray_1 = require("../util/isArray");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function onErrorResumeNext() {
-    var nextSources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        nextSources[_i] = arguments[_i];
-    }
-    if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };
-}
-exports.onErrorResumeNext = onErrorResumeNext;
-function onErrorResumeNextStatic() {
-    var nextSources = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        nextSources[_i] = arguments[_i];
-    }
-    var source = null;
-    if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) {
-        nextSources = nextSources[0];
-    }
-    source = nextSources.shift();
-    return from_1.from(source, null).lift(new OnErrorResumeNextOperator(nextSources));
-}
-exports.onErrorResumeNextStatic = onErrorResumeNextStatic;
-var OnErrorResumeNextOperator = (function () {
-    function OnErrorResumeNextOperator(nextSources) {
-        this.nextSources = nextSources;
-    }
-    OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
-    };
-    return OnErrorResumeNextOperator;
-}());
-var OnErrorResumeNextSubscriber = (function (_super) {
-    __extends(OnErrorResumeNextSubscriber, _super);
-    function OnErrorResumeNextSubscriber(destination, nextSources) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.nextSources = nextSources;
-        return _this;
-    }
-    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {
-        this.subscribeToNextSource();
-    };
-    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.subscribeToNextSource();
-    };
-    OnErrorResumeNextSubscriber.prototype._error = function (err) {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    };
-    OnErrorResumeNextSubscriber.prototype._complete = function () {
-        this.subscribeToNextSource();
-        this.unsubscribe();
-    };
-    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {
-        var next = this.nextSources.shift();
-        if (!!next) {
-            var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, undefined, undefined);
-            var destination = this.destination;
-            destination.add(innerSubscriber);
-            var innerSubscription = subscribeToResult_1.subscribeToResult(this, next, undefined, undefined, innerSubscriber);
-            if (innerSubscription !== innerSubscriber) {
-                destination.add(innerSubscription);
-            }
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    return OnErrorResumeNextSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map
deleted file mode 100644
index aba1fc7..0000000
--- a/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/pairwise.d.ts b/node_modules/rxjs/internal/operators/pairwise.d.ts
deleted file mode 100644
index 901aac1..0000000
--- a/node_modules/rxjs/internal/operators/pairwise.d.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Groups pairs of consecutive emissions together and emits them as an array of
- * two values.
- *
- * <span class="informal">Puts the current value and previous value together as
- * an array, and emits that.</span>
- *
- * ![](pairwise.png)
- *
- * The Nth emission from the source Observable will cause the output Observable
- * to emit an array [(N-1)th, Nth] of the previous and the current value, as a
- * pair. For this reason, `pairwise` emits on the second and subsequent
- * emissions from the source Observable, but not on the first emission, because
- * there is no previous value in that case.
- *
- * ## Example
- * On every click (starting from the second), emit the relative distance to the previous click
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { pairwise, map } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const pairs = clicks.pipe(pairwise());
- * const distance = pairs.pipe(
- *   map(pair => {
- *     const x0 = pair[0].clientX;
- *     const y0 = pair[0].clientY;
- *     const x1 = pair[1].clientX;
- *     const y1 = pair[1].clientY;
- *     return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));
- *   }),
- * );
- * distance.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- *
- * @return {Observable<Array<T>>} An Observable of pairs (as arrays) of
- * consecutive values from the source Observable.
- * @method pairwise
- * @owner Observable
- */
-export declare function pairwise<T>(): OperatorFunction<T, [T, T]>;
diff --git a/node_modules/rxjs/internal/operators/pairwise.js b/node_modules/rxjs/internal/operators/pairwise.js
deleted file mode 100644
index 1311dfe..0000000
--- a/node_modules/rxjs/internal/operators/pairwise.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function pairwise() {
-    return function (source) { return source.lift(new PairwiseOperator()); };
-}
-exports.pairwise = pairwise;
-var PairwiseOperator = (function () {
-    function PairwiseOperator() {
-    }
-    PairwiseOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new PairwiseSubscriber(subscriber));
-    };
-    return PairwiseOperator;
-}());
-var PairwiseSubscriber = (function (_super) {
-    __extends(PairwiseSubscriber, _super);
-    function PairwiseSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasPrev = false;
-        return _this;
-    }
-    PairwiseSubscriber.prototype._next = function (value) {
-        var pair;
-        if (this.hasPrev) {
-            pair = [this.prev, value];
-        }
-        else {
-            this.hasPrev = true;
-        }
-        this.prev = value;
-        if (pair) {
-            this.destination.next(pair);
-        }
-    };
-    return PairwiseSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=pairwise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/pairwise.js.map b/node_modules/rxjs/internal/operators/pairwise.js.map
deleted file mode 100644
index bfd8233..0000000
--- a/node_modules/rxjs/internal/operators/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../../src/internal/operators/pairwise.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA8C3C,SAAgB,QAAQ;IACtB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAnC,CAAmC,CAAC;AACxE,CAAC;AAFD,4BAEC;AAED;IAAA;IAIA,CAAC;IAHC,+BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA+B;QAA3C,YACE,kBAAM,WAAW,CAAC,SACnB;QAJO,aAAO,GAAY,KAAK,CAAC;;IAIjC,CAAC;IAED,kCAAK,GAAL,UAAM,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAvBD,CAAoC,uBAAU,GAuB7C"}
diff --git a/node_modules/rxjs/internal/operators/partition.d.ts b/node_modules/rxjs/internal/operators/partition.d.ts
deleted file mode 100644
index 0022014..0000000
--- a/node_modules/rxjs/internal/operators/partition.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Observable } from '../Observable';
-import { UnaryFunction } from '../types';
-/**
- * Splits the source Observable into two, one with values that satisfy a
- * predicate, and another with values that don't satisfy the predicate.
- *
- * <span class="informal">It's like {@link filter}, but returns two Observables:
- * one like the output of {@link filter}, and the other with values that did not
- * pass the condition.</span>
- *
- * ![](partition.png)
- *
- * `partition` outputs an array with two Observables that partition the values
- * from the source Observable through the given `predicate` function. The first
- * Observable in that array emits source values for which the predicate argument
- * returns true. The second Observable emits source values for which the
- * predicate returns false. The first behaves like {@link filter} and the second
- * behaves like {@link filter} with the predicate negated.
- *
- * ## Example
- * Partition click events into those on DIV elements and those elsewhere
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { partition } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));
- * const clicksOnDivs = parts[0];
- * const clicksElsewhere = parts[1];
- * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));
- * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));
- * ```
- *
- * @see {@link filter}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates each value emitted by the source Observable. If it returns `true`,
- * the value is emitted on the first Observable in the returned array, if
- * `false` the value is emitted on the second Observable in the array. The
- * `index` parameter is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {[Observable<T>, Observable<T>]} An array with two Observables: one
- * with values that passed the predicate, and another with values that did not
- * pass the predicate.
- * @method partition
- * @owner Observable
- * @deprecated use `partition` static creation function instead
- */
-export declare function partition<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): UnaryFunction<Observable<T>, [Observable<T>, Observable<T>]>;
diff --git a/node_modules/rxjs/internal/operators/partition.js b/node_modules/rxjs/internal/operators/partition.js
deleted file mode 100644
index ae96c71..0000000
--- a/node_modules/rxjs/internal/operators/partition.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var not_1 = require("../util/not");
-var filter_1 = require("./filter");
-function partition(predicate, thisArg) {
-    return function (source) { return [
-        filter_1.filter(predicate, thisArg)(source),
-        filter_1.filter(not_1.not(predicate, thisArg))(source)
-    ]; };
-}
-exports.partition = partition;
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/partition.js.map b/node_modules/rxjs/internal/operators/partition.js.map
deleted file mode 100644
index b1241fe..0000000
--- a/node_modules/rxjs/internal/operators/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../../src/internal/operators/partition.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,mCAAkC;AAoDlC,SAAgB,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA;QAChC,eAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,eAAM,CAAC,SAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,EAHD,CAGC,CAAC;AACtC,CAAC;AAND,8BAMC"}
diff --git a/node_modules/rxjs/internal/operators/pluck.d.ts b/node_modules/rxjs/internal/operators/pluck.d.ts
deleted file mode 100644
index 301780e..0000000
--- a/node_modules/rxjs/internal/operators/pluck.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { OperatorFunction } from '../types';
-export declare function pluck<T, K1 extends keyof T>(k1: K1): OperatorFunction<T, T[K1]>;
-export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1]>(k1: K1, k2: K2): OperatorFunction<T, T[K1][K2]>;
-export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(k1: K1, k2: K2, k3: K3): OperatorFunction<T, T[K1][K2][K3]>;
-export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3]>(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction<T, T[K1][K2][K3][K4]>;
-export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction<T, T[K1][K2][K3][K4][K5]>;
-export declare function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction<T, T[K1][K2][K3][K4][K5][K6]>;
-export declare function pluck<T, R>(...properties: string[]): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/pluck.js b/node_modules/rxjs/internal/operators/pluck.js
deleted file mode 100644
index bddb581..0000000
--- a/node_modules/rxjs/internal/operators/pluck.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var map_1 = require("./map");
-function pluck() {
-    var properties = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        properties[_i] = arguments[_i];
-    }
-    var length = properties.length;
-    if (length === 0) {
-        throw new Error('list of properties cannot be empty.');
-    }
-    return function (source) { return map_1.map(plucker(properties, length))(source); };
-}
-exports.pluck = pluck;
-function plucker(props, length) {
-    var mapper = function (x) {
-        var currentProp = x;
-        for (var i = 0; i < length; i++) {
-            var p = currentProp[props[i]];
-            if (typeof p !== 'undefined') {
-                currentProp = p;
-            }
-            else {
-                return undefined;
-            }
-        }
-        return currentProp;
-    };
-    return mapper;
-}
-//# sourceMappingURL=pluck.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/pluck.js.map b/node_modules/rxjs/internal/operators/pluck.js.map
deleted file mode 100644
index 262c7cb..0000000
--- a/node_modules/rxjs/internal/operators/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../../src/internal/operators/pluck.ts"],"names":[],"mappings":";;AACA,6BAA4B;AA6C5B,SAAgB,KAAK;IAAO,oBAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,+BAAuB;;IACjD,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAND,sBAMC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,IAAM,MAAM,GAAG,UAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
diff --git a/node_modules/rxjs/internal/operators/publish.d.ts b/node_modules/rxjs/internal/operators/publish.d.ts
deleted file mode 100644
index 7757de5..0000000
--- a/node_modules/rxjs/internal/operators/publish.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Observable } from '../Observable';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types';
-export declare function publish<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export declare function publish<T, O extends ObservableInput<any>>(selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;
-export declare function publish<T>(selector: MonoTypeOperatorFunction<T>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/publish.js b/node_modules/rxjs/internal/operators/publish.js
deleted file mode 100644
index a921c25..0000000
--- a/node_modules/rxjs/internal/operators/publish.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var multicast_1 = require("./multicast");
-function publish(selector) {
-    return selector ?
-        multicast_1.multicast(function () { return new Subject_1.Subject(); }, selector) :
-        multicast_1.multicast(new Subject_1.Subject());
-}
-exports.publish = publish;
-//# sourceMappingURL=publish.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/publish.js.map b/node_modules/rxjs/internal/operators/publish.js.map
deleted file mode 100644
index ab2c9b1..0000000
--- a/node_modules/rxjs/internal/operators/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../../src/internal/operators/publish.ts"],"names":[],"mappings":";;AACA,sCAAqC;AACrC,yCAAwC;AA4DxC,SAAgB,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,qBAAS,CAAC,cAAM,OAAA,IAAI,iBAAO,EAAK,EAAhB,CAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,qBAAS,CAAC,IAAI,iBAAO,EAAK,CAAC,CAAC;AAChC,CAAC;AAJD,0BAIC"}
diff --git a/node_modules/rxjs/internal/operators/publishBehavior.d.ts b/node_modules/rxjs/internal/operators/publishBehavior.d.ts
deleted file mode 100644
index e1d44d6..0000000
--- a/node_modules/rxjs/internal/operators/publishBehavior.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Observable } from '../Observable';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { UnaryFunction } from '../types';
-/**
- * @param value
- * @return {ConnectableObservable<T>}
- * @method publishBehavior
- * @owner Observable
- */
-export declare function publishBehavior<T>(value: T): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
diff --git a/node_modules/rxjs/internal/operators/publishBehavior.js b/node_modules/rxjs/internal/operators/publishBehavior.js
deleted file mode 100644
index 6131a40..0000000
--- a/node_modules/rxjs/internal/operators/publishBehavior.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var BehaviorSubject_1 = require("../BehaviorSubject");
-var multicast_1 = require("./multicast");
-function publishBehavior(value) {
-    return function (source) { return multicast_1.multicast(new BehaviorSubject_1.BehaviorSubject(value))(source); };
-}
-exports.publishBehavior = publishBehavior;
-//# sourceMappingURL=publishBehavior.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/publishBehavior.js.map b/node_modules/rxjs/internal/operators/publishBehavior.js.map
deleted file mode 100644
index a831305..0000000
--- a/node_modules/rxjs/internal/operators/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":";;AACA,sDAAqD;AACrD,yCAAwC;AAUxC,SAAgB,eAAe,CAAI,KAAQ;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,IAAI,iCAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,EAA5E,CAA4E,CAAC;AACjH,CAAC;AAFD,0CAEC"}
diff --git a/node_modules/rxjs/internal/operators/publishLast.d.ts b/node_modules/rxjs/internal/operators/publishLast.d.ts
deleted file mode 100644
index 0012786..0000000
--- a/node_modules/rxjs/internal/operators/publishLast.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { Observable } from '../Observable';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { UnaryFunction } from '../types';
-/**
- * Returns a connectable observable sequence that shares a single subscription to the
- * underlying sequence containing only the last notification.
- *
- * ![](publishLast.png)
- *
- * Similar to {@link publish}, but it waits until the source observable completes and stores
- * the last emitted value.
- * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last
- * value even if it has no more subscribers. If subsequent subscriptions happen, they will
- * immediately get that last stored value and complete.
- *
- * ## Example
- *
- * ```ts
- * import { interval } from 'rxjs';
- * import { publishLast, tap, take } from 'rxjs/operators';
- *
- * const connectable =
- *   interval(1000)
- *     .pipe(
- *       tap(x => console.log("side effect", x)),
- *       take(3),
- *       publishLast());
- *
- * connectable.subscribe(
- *   x => console.log(  "Sub. A", x),
- *   err => console.log("Sub. A Error", err),
- *   () => console.log( "Sub. A Complete"));
- *
- * connectable.subscribe(
- *   x => console.log(  "Sub. B", x),
- *   err => console.log("Sub. B Error", err),
- *   () => console.log( "Sub. B Complete"));
- *
- * connectable.connect();
- *
- * // Results:
- * //    "side effect 0"
- * //    "side effect 1"
- * //    "side effect 2"
- * //    "Sub. A 2"
- * //    "Sub. B 2"
- * //    "Sub. A Complete"
- * //    "Sub. B Complete"
- * ```
- *
- * @see {@link ConnectableObservable}
- * @see {@link publish}
- * @see {@link publishReplay}
- * @see {@link publishBehavior}
- *
- * @return {ConnectableObservable} An observable sequence that contains the elements of a
- * sequence produced by multicasting the source sequence.
- * @method publishLast
- * @owner Observable
- */
-export declare function publishLast<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
diff --git a/node_modules/rxjs/internal/operators/publishLast.js b/node_modules/rxjs/internal/operators/publishLast.js
deleted file mode 100644
index 2765417..0000000
--- a/node_modules/rxjs/internal/operators/publishLast.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncSubject_1 = require("../AsyncSubject");
-var multicast_1 = require("./multicast");
-function publishLast() {
-    return function (source) { return multicast_1.multicast(new AsyncSubject_1.AsyncSubject())(source); };
-}
-exports.publishLast = publishLast;
-//# sourceMappingURL=publishLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/publishLast.js.map b/node_modules/rxjs/internal/operators/publishLast.js.map
deleted file mode 100644
index d8ad7ef..0000000
--- a/node_modules/rxjs/internal/operators/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../../src/internal/operators/publishLast.ts"],"names":[],"mappings":";;AACA,gDAA+C;AAC/C,yCAAwC;AA8DxC,SAAgB,WAAW;IACzB,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,IAAI,2BAAY,EAAK,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAFD,kCAEC"}
diff --git a/node_modules/rxjs/internal/operators/publishReplay.d.ts b/node_modules/rxjs/internal/operators/publishReplay.d.ts
deleted file mode 100644
index 6e39cff..0000000
--- a/node_modules/rxjs/internal/operators/publishReplay.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';
-export declare function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-export declare function publishReplay<T, O extends ObservableInput<any>>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable<T>) => O, scheduler?: SchedulerLike): OperatorFunction<T, ObservedValueOf<O>>;
diff --git a/node_modules/rxjs/internal/operators/publishReplay.js b/node_modules/rxjs/internal/operators/publishReplay.js
deleted file mode 100644
index bae5b00..0000000
--- a/node_modules/rxjs/internal/operators/publishReplay.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ReplaySubject_1 = require("../ReplaySubject");
-var multicast_1 = require("./multicast");
-function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {
-    if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
-        scheduler = selectorOrScheduler;
-    }
-    var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
-    var subject = new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler);
-    return function (source) { return multicast_1.multicast(function () { return subject; }, selector)(source); };
-}
-exports.publishReplay = publishReplay;
-//# sourceMappingURL=publishReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/publishReplay.js.map b/node_modules/rxjs/internal/operators/publishReplay.js.map
deleted file mode 100644
index 1c95a44..0000000
--- a/node_modules/rxjs/internal/operators/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AACjD,yCAAwC;AASxC,SAAgB,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,IAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,IAAM,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,cAAM,OAAA,OAAO,EAAP,CAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,EAAtE,CAAsE,CAAC;AAC3G,CAAC;AAbD,sCAaC"}
diff --git a/node_modules/rxjs/internal/operators/race.d.ts b/node_modules/rxjs/internal/operators/race.d.ts
deleted file mode 100644
index 6020a76..0000000
--- a/node_modules/rxjs/internal/operators/race.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, OperatorFunction } from '../types';
-/** @deprecated Deprecated in favor of static race. */
-export declare function race<T>(observables: Array<Observable<T>>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static race. */
-export declare function race<T, R>(observables: Array<Observable<T>>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static race. */
-export declare function race<T>(...observables: Array<Observable<T> | Array<Observable<T>>>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static race. */
-export declare function race<T, R>(...observables: Array<Observable<any> | Array<Observable<any>>>): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/race.js b/node_modules/rxjs/internal/operators/race.js
deleted file mode 100644
index b59dcf5..0000000
--- a/node_modules/rxjs/internal/operators/race.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isArray_1 = require("../util/isArray");
-var race_1 = require("../observable/race");
-function race() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function raceOperatorFunction(source) {
-        if (observables.length === 1 && isArray_1.isArray(observables[0])) {
-            observables = observables[0];
-        }
-        return source.lift.call(race_1.race.apply(void 0, [source].concat(observables)));
-    };
-}
-exports.race = race;
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/race.js.map b/node_modules/rxjs/internal/operators/race.js.map
deleted file mode 100644
index 3e37321..0000000
--- a/node_modules/rxjs/internal/operators/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../../src/internal/operators/race.ts"],"names":[],"mappings":";;AACA,2CAA0C;AAE1C,2CAAwD;AAsBxD,SAAgB,IAAI;IAAI,qBAAmD;SAAnD,UAAmD,EAAnD,qBAAmD,EAAnD,IAAmD;QAAnD,gCAAmD;;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAU,gBAAC,MAAM,SAAM,WAA+B,GAAE,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC;AAVD,oBAUC"}
diff --git a/node_modules/rxjs/internal/operators/reduce.d.ts b/node_modules/rxjs/internal/operators/reduce.d.ts
deleted file mode 100644
index da75389..0000000
--- a/node_modules/rxjs/internal/operators/reduce.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-export declare function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;
-export declare function reduce<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;
-export declare function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/reduce.js b/node_modules/rxjs/internal/operators/reduce.js
deleted file mode 100644
index 63296cf..0000000
--- a/node_modules/rxjs/internal/operators/reduce.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var scan_1 = require("./scan");
-var takeLast_1 = require("./takeLast");
-var defaultIfEmpty_1 = require("./defaultIfEmpty");
-var pipe_1 = require("../util/pipe");
-function reduce(accumulator, seed) {
-    if (arguments.length >= 2) {
-        return function reduceOperatorFunctionWithSeed(source) {
-            return pipe_1.pipe(scan_1.scan(accumulator, seed), takeLast_1.takeLast(1), defaultIfEmpty_1.defaultIfEmpty(seed))(source);
-        };
-    }
-    return function reduceOperatorFunction(source) {
-        return pipe_1.pipe(scan_1.scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast_1.takeLast(1))(source);
-    };
-}
-exports.reduce = reduce;
-//# sourceMappingURL=reduce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/reduce.js.map b/node_modules/rxjs/internal/operators/reduce.js.map
deleted file mode 100644
index 93baad8..0000000
--- a/node_modules/rxjs/internal/operators/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../../src/internal/operators/reduce.ts"],"names":[],"mappings":";;AACA,+BAA8B;AAC9B,uCAAsC;AACtC,mDAAkD;AAElD,qCAAoC;AA2DpC,SAAgB,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,WAAI,CAAC,WAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,mBAAQ,CAAC,CAAC,CAAC,EAAE,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,WAAI,CACT,WAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAK,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EACzE,mBAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAjBD,wBAiBC"}
diff --git a/node_modules/rxjs/internal/operators/refCount.d.ts b/node_modules/rxjs/internal/operators/refCount.d.ts
deleted file mode 100644
index e74e9ec..0000000
--- a/node_modules/rxjs/internal/operators/refCount.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way
- * you can connect to it.
- *
- * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if
- * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it
- * unsubscribes from the source. This way you can make sure that everything before the *published*
- * refCount has only a single subscription independently of the number of subscribers to the target
- * observable.
- *
- * Note that using the {@link share} operator is exactly the same as using the *publish* operator
- * (making the observable hot) and the *refCount* operator in a sequence.
- *
- * ![](refCount.png)
- *
- * ## Example
- *
- * In the following example there are two intervals turned into connectable observables
- * by using the *publish* operator. The first one uses the *refCount* operator, the
- * second one does not use it. You will notice that a connectable observable does nothing
- * until you call its connect function.
- *
- * ```ts
- * import { interval } from 'rxjs';
- * import { tap, publish, refCount } from 'rxjs/operators';
- *
- * // Turn the interval observable into a ConnectableObservable (hot)
- * const refCountInterval = interval(400).pipe(
- *   tap((num) => console.log(`refCount ${num}`)),
- *   publish(),
- *   refCount()
- * );
- *
- * const publishedInterval = interval(400).pipe(
- *   tap((num) => console.log(`publish ${num}`)),
- *   publish()
- * );
- *
- * refCountInterval.subscribe();
- * refCountInterval.subscribe();
- * // 'refCount 0' -----> 'refCount 1' -----> etc
- * // All subscriptions will receive the same value and the tap (and
- * // every other operator) before the publish operator will be executed
- * // only once per event independently of the number of subscriptions.
- *
- * publishedInterval.subscribe();
- * // Nothing happens until you call .connect() on the observable.
- * ```
- *
- * @see {@link ConnectableObservable}
- * @see {@link share}
- * @see {@link publish}
- */
-export declare function refCount<T>(): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/refCount.js b/node_modules/rxjs/internal/operators/refCount.js
deleted file mode 100644
index 5684ba9..0000000
--- a/node_modules/rxjs/internal/operators/refCount.js
+++ /dev/null
@@ -1,72 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function refCount() {
-    return function refCountOperatorFunction(source) {
-        return source.lift(new RefCountOperator(source));
-    };
-}
-exports.refCount = refCount;
-var RefCountOperator = (function () {
-    function RefCountOperator(connectable) {
-        this.connectable = connectable;
-    }
-    RefCountOperator.prototype.call = function (subscriber, source) {
-        var connectable = this.connectable;
-        connectable._refCount++;
-        var refCounter = new RefCountSubscriber(subscriber, connectable);
-        var subscription = source.subscribe(refCounter);
-        if (!refCounter.closed) {
-            refCounter.connection = connectable.connect();
-        }
-        return subscription;
-    };
-    return RefCountOperator;
-}());
-var RefCountSubscriber = (function (_super) {
-    __extends(RefCountSubscriber, _super);
-    function RefCountSubscriber(destination, connectable) {
-        var _this = _super.call(this, destination) || this;
-        _this.connectable = connectable;
-        return _this;
-    }
-    RefCountSubscriber.prototype._unsubscribe = function () {
-        var connectable = this.connectable;
-        if (!connectable) {
-            this.connection = null;
-            return;
-        }
-        this.connectable = null;
-        var refCount = connectable._refCount;
-        if (refCount <= 0) {
-            this.connection = null;
-            return;
-        }
-        connectable._refCount = refCount - 1;
-        if (refCount > 1) {
-            this.connection = null;
-            return;
-        }
-        var connection = this.connection;
-        var sharedConnection = connectable._connection;
-        this.connection = null;
-        if (sharedConnection && (!connection || sharedConnection === connection)) {
-            sharedConnection.unsubscribe();
-        }
-    };
-    return RefCountSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=refCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/refCount.js.map b/node_modules/rxjs/internal/operators/refCount.js.map
deleted file mode 100644
index bbc4ca6..0000000
--- a/node_modules/rxjs/internal/operators/refCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"refCount.js","sources":["../../src/internal/operators/refCount.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA2D3C,SAAgB,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAJD,4BAIC;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QAEjC,IAAA,8BAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,IAiBC;AAED;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAClB,WAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,yCAAY,GAAtB;QAEU,IAAA,8BAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BO,IAAA,4BAAU,CAAU;QAC5B,IAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA9DD,CAAoC,uBAAU,GA8D7C"}
diff --git a/node_modules/rxjs/internal/operators/repeat.d.ts b/node_modules/rxjs/internal/operators/repeat.d.ts
deleted file mode 100644
index d1ecb28..0000000
--- a/node_modules/rxjs/internal/operators/repeat.d.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times.
- *
- * <span class="informal">Repeats all values emitted on the source. It's like {@link retry}, but for non error cases.</span>
- *
- * ![](repeat.png)
- *
- * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases.
- * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm.
- *
- * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever
- *
- * ## Example
- * Repeat a message stream
- * ```ts
- * import { of } from 'rxjs';
- * import { repeat, delay } from 'rxjs/operators';
- *
- * const source = of('Repeat message');
- * const example = source.pipe(repeat(3));
- * example.subscribe(x => console.log(x));
- *
- * // Results
- * // Repeat message
- * // Repeat message
- * // Repeat message
- * ```
- *
- * Repeat 3 values, 2 times
- * ```ts
- * import { interval } from 'rxjs';
- * import { repeat, take } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(take(3), repeat(2));
- * example.subscribe(x => console.log(x));
- *
- * // Results every second
- * // 0
- * // 1
- * // 2
- * // 0
- * // 1
- * // 2
- * ```
- *
- * @see {@link repeatWhen}
- * @see {@link retry}
- *
- * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield
- * an empty Observable.
- * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes
- * , at most count times.
- * @method repeat
- * @owner Observable
- */
-export declare function repeat<T>(count?: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/repeat.js b/node_modules/rxjs/internal/operators/repeat.js
deleted file mode 100644
index 0460a95..0000000
--- a/node_modules/rxjs/internal/operators/repeat.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var empty_1 = require("../observable/empty");
-function repeat(count) {
-    if (count === void 0) { count = -1; }
-    return function (source) {
-        if (count === 0) {
-            return empty_1.empty();
-        }
-        else if (count < 0) {
-            return source.lift(new RepeatOperator(-1, source));
-        }
-        else {
-            return source.lift(new RepeatOperator(count - 1, source));
-        }
-    };
-}
-exports.repeat = repeat;
-var RepeatOperator = (function () {
-    function RepeatOperator(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    RepeatOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
-    };
-    return RepeatOperator;
-}());
-var RepeatSubscriber = (function (_super) {
-    __extends(RepeatSubscriber, _super);
-    function RepeatSubscriber(destination, count, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.count = count;
-        _this.source = source;
-        return _this;
-    }
-    RepeatSubscriber.prototype.complete = function () {
-        if (!this.isStopped) {
-            var _a = this, source = _a.source, count = _a.count;
-            if (count === 0) {
-                return _super.prototype.complete.call(this);
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    };
-    return RepeatSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=repeat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/repeat.js.map b/node_modules/rxjs/internal/operators/repeat.js.map
deleted file mode 100644
index a923cdc..0000000
--- a/node_modules/rxjs/internal/operators/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../../src/internal/operators/repeat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAE3C,6CAA4C;AA2D5C,SAAgB,MAAM,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IAC1C,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAVD,wBAUC;AAED;IACE,wBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,qBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAkC,oCAAa;IAC7C,0BAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,mCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,QAAQ,WAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,uBAAU,GAiB3C"}
diff --git a/node_modules/rxjs/internal/operators/repeatWhen.d.ts b/node_modules/rxjs/internal/operators/repeatWhen.d.ts
deleted file mode 100644
index 17a225e..0000000
--- a/node_modules/rxjs/internal/operators/repeatWhen.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source
- * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable
- * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise
- * this method will resubscribe to the source Observable.
- *
- * ![](repeatWhen.png)
- *
- * ## Example
- * Repeat a message stream on click
- * ```ts
- * import { of, fromEvent } from 'rxjs';
- * import { repeatWhen } from 'rxjs/operators';
- *
- * const source = of('Repeat message');
- * const documentClick$ = fromEvent(document, 'click');
- *
- * source.pipe(repeatWhen(() => documentClick$)
- * ).subscribe(data => console.log(data))
- * ```
- * @see {@link repeat}
- * @see {@link retry}
- * @see {@link retryWhen}
- *
- * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with
- * which a user can `complete` or `error`, aborting the repetition.
- * @return {Observable} The source Observable modified with repeat logic.
- * @method repeatWhen
- * @owner Observable
- */
-export declare function repeatWhen<T>(notifier: (notifications: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/repeatWhen.js b/node_modules/rxjs/internal/operators/repeatWhen.js
deleted file mode 100644
index 1c1d12e..0000000
--- a/node_modules/rxjs/internal/operators/repeatWhen.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function repeatWhen(notifier) {
-    return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };
-}
-exports.repeatWhen = repeatWhen;
-var RepeatWhenOperator = (function () {
-    function RepeatWhenOperator(notifier) {
-        this.notifier = notifier;
-    }
-    RepeatWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
-    };
-    return RepeatWhenOperator;
-}());
-var RepeatWhenSubscriber = (function (_super) {
-    __extends(RepeatWhenSubscriber, _super);
-    function RepeatWhenSubscriber(destination, notifier, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.notifier = notifier;
-        _this.source = source;
-        _this.sourceIsBeingSubscribedTo = true;
-        return _this;
-    }
-    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.sourceIsBeingSubscribedTo = true;
-        this.source.subscribe(this);
-    };
-    RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {
-        if (this.sourceIsBeingSubscribedTo === false) {
-            return _super.prototype.complete.call(this);
-        }
-    };
-    RepeatWhenSubscriber.prototype.complete = function () {
-        this.sourceIsBeingSubscribedTo = false;
-        if (!this.isStopped) {
-            if (!this.retries) {
-                this.subscribeToRetries();
-            }
-            if (!this.retriesSubscription || this.retriesSubscription.closed) {
-                return _super.prototype.complete.call(this);
-            }
-            this._unsubscribeAndRecycle();
-            this.notifications.next();
-        }
-    };
-    RepeatWhenSubscriber.prototype._unsubscribe = function () {
-        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;
-        if (notifications) {
-            notifications.unsubscribe();
-            this.notifications = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    };
-    RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {
-        var _unsubscribe = this._unsubscribe;
-        this._unsubscribe = null;
-        _super.prototype._unsubscribeAndRecycle.call(this);
-        this._unsubscribe = _unsubscribe;
-        return this;
-    };
-    RepeatWhenSubscriber.prototype.subscribeToRetries = function () {
-        this.notifications = new Subject_1.Subject();
-        var retries;
-        try {
-            var notifier = this.notifier;
-            retries = notifier(this.notifications);
-        }
-        catch (e) {
-            return _super.prototype.complete.call(this);
-        }
-        this.retries = retries;
-        this.retriesSubscription = subscribeToResult_1.subscribeToResult(this, retries);
-    };
-    return RepeatWhenSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=repeatWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/repeatWhen.js.map b/node_modules/rxjs/internal/operators/repeatWhen.js.map
deleted file mode 100644
index bb4620d..0000000
--- a/node_modules/rxjs/internal/operators/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/retry.d.ts b/node_modules/rxjs/internal/operators/retry.d.ts
deleted file mode 100644
index 0608256..0000000
--- a/node_modules/rxjs/internal/operators/retry.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable
- * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given
- * as a number parameter) rather than propagating the `error` call.
- *
- * ![](retry.png)
- *
- * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted
- * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second
- * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications
- * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].
- *
- * ## Example
- * ```ts
- * import { interval, of, throwError } from 'rxjs';
- * import { mergeMap, retry } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(
- *   mergeMap(val => {
- *     if(val > 5){
- *       return throwError('Error!');
- *     }
- *     return of(val);
- *   }),
- *   //retry 2 times on error
- *   retry(2)
- * );
- *
- * const subscribe = example.subscribe({
- *   next: val => console.log(val),
- *   error: val => console.log(`${val}: Retried 2 times then quit!`)
- * });
- *
- * // Output:
- * // 0..1..2..3..4..5..
- * // 0..1..2..3..4..5..
- * // 0..1..2..3..4..5..
- * // "Error!: Retried 2 times then quit!"
- * ```
- *
- * @param {number} count - Number of retry attempts before failing.
- * @return {Observable} The source Observable modified with the retry logic.
- * @method retry
- * @owner Observable
- */
-export declare function retry<T>(count?: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/retry.js b/node_modules/rxjs/internal/operators/retry.js
deleted file mode 100644
index 6f0e873..0000000
--- a/node_modules/rxjs/internal/operators/retry.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function retry(count) {
-    if (count === void 0) { count = -1; }
-    return function (source) { return source.lift(new RetryOperator(count, source)); };
-}
-exports.retry = retry;
-var RetryOperator = (function () {
-    function RetryOperator(count, source) {
-        this.count = count;
-        this.source = source;
-    }
-    RetryOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
-    };
-    return RetryOperator;
-}());
-var RetrySubscriber = (function (_super) {
-    __extends(RetrySubscriber, _super);
-    function RetrySubscriber(destination, count, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.count = count;
-        _this.source = source;
-        return _this;
-    }
-    RetrySubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var _a = this, source = _a.source, count = _a.count;
-            if (count === 0) {
-                return _super.prototype.error.call(this, err);
-            }
-            else if (count > -1) {
-                this.count = count - 1;
-            }
-            source.subscribe(this._unsubscribeAndRecycle());
-        }
-    };
-    return RetrySubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=retry.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/retry.js.map b/node_modules/rxjs/internal/operators/retry.js.map
deleted file mode 100644
index 0551f61..0000000
--- a/node_modules/rxjs/internal/operators/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../../src/internal/operators/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAmD3C,SAAgB,KAAK,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,sBAEC;AAED;IACE,uBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,mCAAa;IAC5C,yBAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,KAAK,YAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjBD,CAAiC,uBAAU,GAiB1C"}
diff --git a/node_modules/rxjs/internal/operators/retryWhen.d.ts b/node_modules/rxjs/internal/operators/retryWhen.d.ts
deleted file mode 100644
index cb55ffe..0000000
--- a/node_modules/rxjs/internal/operators/retryWhen.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable
- * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.
- * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child
- * subscription. Otherwise this method will resubscribe to the source Observable.
- *
- * ![](retryWhen.png)
- *
- * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a
- * user can `complete` or `error`, aborting the retry.
- * @return {Observable} The source Observable modified with retry logic.
- * @method retryWhen
- * @owner Observable
- */
-export declare function retryWhen<T>(notifier: (errors: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/retryWhen.js b/node_modules/rxjs/internal/operators/retryWhen.js
deleted file mode 100644
index b543dd1..0000000
--- a/node_modules/rxjs/internal/operators/retryWhen.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function retryWhen(notifier) {
-    return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };
-}
-exports.retryWhen = retryWhen;
-var RetryWhenOperator = (function () {
-    function RetryWhenOperator(notifier, source) {
-        this.notifier = notifier;
-        this.source = source;
-    }
-    RetryWhenOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
-    };
-    return RetryWhenOperator;
-}());
-var RetryWhenSubscriber = (function (_super) {
-    __extends(RetryWhenSubscriber, _super);
-    function RetryWhenSubscriber(destination, notifier, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.notifier = notifier;
-        _this.source = source;
-        return _this;
-    }
-    RetryWhenSubscriber.prototype.error = function (err) {
-        if (!this.isStopped) {
-            var errors = this.errors;
-            var retries = this.retries;
-            var retriesSubscription = this.retriesSubscription;
-            if (!retries) {
-                errors = new Subject_1.Subject();
-                try {
-                    var notifier = this.notifier;
-                    retries = notifier(errors);
-                }
-                catch (e) {
-                    return _super.prototype.error.call(this, e);
-                }
-                retriesSubscription = subscribeToResult_1.subscribeToResult(this, retries);
-            }
-            else {
-                this.errors = null;
-                this.retriesSubscription = null;
-            }
-            this._unsubscribeAndRecycle();
-            this.errors = errors;
-            this.retries = retries;
-            this.retriesSubscription = retriesSubscription;
-            errors.next(err);
-        }
-    };
-    RetryWhenSubscriber.prototype._unsubscribe = function () {
-        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;
-        if (errors) {
-            errors.unsubscribe();
-            this.errors = null;
-        }
-        if (retriesSubscription) {
-            retriesSubscription.unsubscribe();
-            this.retriesSubscription = null;
-        }
-        this.retries = null;
-    };
-    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        var _unsubscribe = this._unsubscribe;
-        this._unsubscribe = null;
-        this._unsubscribeAndRecycle();
-        this._unsubscribe = _unsubscribe;
-        this.source.subscribe(this);
-    };
-    return RetryWhenSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=retryWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/retryWhen.js.map b/node_modules/rxjs/internal/operators/retryWhen.js.map
deleted file mode 100644
index a412bea..0000000
--- a/node_modules/rxjs/internal/operators/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/sample.d.ts b/node_modules/rxjs/internal/operators/sample.d.ts
deleted file mode 100644
index f2ba124..0000000
--- a/node_modules/rxjs/internal/operators/sample.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Emits the most recently emitted value from the source Observable whenever
- * another Observable, the `notifier`, emits.
- *
- * <span class="informal">It's like {@link sampleTime}, but samples whenever
- * the `notifier` Observable emits something.</span>
- *
- * ![](sample.png)
- *
- * Whenever the `notifier` Observable emits a value or completes, `sample`
- * looks at the source Observable and emits whichever value it has most recently
- * emitted since the previous sampling, unless the source has not emitted
- * anything since the previous sampling. The `notifier` is subscribed to as soon
- * as the output Observable is subscribed.
- *
- * ## Example
- * On every click, sample the most recent "seconds" timer
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { sample } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const result = seconds.pipe(sample(clicks));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounce}
- * @see {@link sampleTime}
- * @see {@link throttle}
- *
- * @param {Observable<any>} notifier The Observable to use for sampling the
- * source Observable.
- * @return {Observable<T>} An Observable that emits the results of sampling the
- * values emitted by the source Observable whenever the notifier Observable
- * emits value or completes.
- * @method sample
- * @owner Observable
- */
-export declare function sample<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/sample.js b/node_modules/rxjs/internal/operators/sample.js
deleted file mode 100644
index 127273d..0000000
--- a/node_modules/rxjs/internal/operators/sample.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function sample(notifier) {
-    return function (source) { return source.lift(new SampleOperator(notifier)); };
-}
-exports.sample = sample;
-var SampleOperator = (function () {
-    function SampleOperator(notifier) {
-        this.notifier = notifier;
-    }
-    SampleOperator.prototype.call = function (subscriber, source) {
-        var sampleSubscriber = new SampleSubscriber(subscriber);
-        var subscription = source.subscribe(sampleSubscriber);
-        subscription.add(subscribeToResult_1.subscribeToResult(sampleSubscriber, this.notifier));
-        return subscription;
-    };
-    return SampleOperator;
-}());
-var SampleSubscriber = (function (_super) {
-    __extends(SampleSubscriber, _super);
-    function SampleSubscriber() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this.hasValue = false;
-        return _this;
-    }
-    SampleSubscriber.prototype._next = function (value) {
-        this.value = value;
-        this.hasValue = true;
-    };
-    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.emitValue();
-    };
-    SampleSubscriber.prototype.notifyComplete = function () {
-        this.emitValue();
-    };
-    SampleSubscriber.prototype.emitValue = function () {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.value);
-        }
-    };
-    return SampleSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=sample.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/sample.js.map b/node_modules/rxjs/internal/operators/sample.js.map
deleted file mode 100644
index 18b9212..0000000
--- a/node_modules/rxjs/internal/operators/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../../src/internal/operators/sample.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,sDAAqD;AAErD,+DAA8D;AA4C9D,SAAgB,MAAM,CAAI,QAAyB;IACjD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAFD,wBAEC;AAED;IACE,wBAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,qCAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAqC,oCAAqB;IAA1D;QAAA,qEAyBC;QAvBS,cAAQ,GAAY,KAAK,CAAC;;IAuBpC,CAAC;IArBW,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,oCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAzBD,CAAqC,iCAAe,GAyBnD"}
diff --git a/node_modules/rxjs/internal/operators/sampleTime.d.ts b/node_modules/rxjs/internal/operators/sampleTime.d.ts
deleted file mode 100644
index 9083f1e..0000000
--- a/node_modules/rxjs/internal/operators/sampleTime.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Emits the most recently emitted value from the source Observable within
- * periodic time intervals.
- *
- * <span class="informal">Samples the source Observable at periodic time
- * intervals, emitting what it samples.</span>
- *
- * ![](sampleTime.png)
- *
- * `sampleTime` periodically looks at the source Observable and emits whichever
- * value it has most recently emitted since the previous sampling, unless the
- * source has not emitted anything since the previous sampling. The sampling
- * happens periodically in time every `period` milliseconds (or the time unit
- * defined by the optional `scheduler` argument). The sampling starts as soon as
- * the output Observable is subscribed.
- *
- * ## Example
- * Every second, emit the most recent click at most once
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { sampleTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(sampleTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link auditTime}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sample}
- * @see {@link throttleTime}
- *
- * @param {number} period The sampling period expressed in milliseconds or the
- * time unit determined internally by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the sampling.
- * @return {Observable<T>} An Observable that emits the results of sampling the
- * values emitted by the source Observable at the specified time interval.
- * @method sampleTime
- * @owner Observable
- */
-export declare function sampleTime<T>(period: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/sampleTime.js b/node_modules/rxjs/internal/operators/sampleTime.js
deleted file mode 100644
index 525580b..0000000
--- a/node_modules/rxjs/internal/operators/sampleTime.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var async_1 = require("../scheduler/async");
-function sampleTime(period, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };
-}
-exports.sampleTime = sampleTime;
-var SampleTimeOperator = (function () {
-    function SampleTimeOperator(period, scheduler) {
-        this.period = period;
-        this.scheduler = scheduler;
-    }
-    SampleTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
-    };
-    return SampleTimeOperator;
-}());
-var SampleTimeSubscriber = (function (_super) {
-    __extends(SampleTimeSubscriber, _super);
-    function SampleTimeSubscriber(destination, period, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.period = period;
-        _this.scheduler = scheduler;
-        _this.hasValue = false;
-        _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));
-        return _this;
-    }
-    SampleTimeSubscriber.prototype._next = function (value) {
-        this.lastValue = value;
-        this.hasValue = true;
-    };
-    SampleTimeSubscriber.prototype.notifyNext = function () {
-        if (this.hasValue) {
-            this.hasValue = false;
-            this.destination.next(this.lastValue);
-        }
-    };
-    return SampleTimeSubscriber;
-}(Subscriber_1.Subscriber));
-function dispatchNotification(state) {
-    var subscriber = state.subscriber, period = state.period;
-    subscriber.notifyNext();
-    this.schedule(state, period);
-}
-//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/sampleTime.js.map b/node_modules/rxjs/internal/operators/sampleTime.js.map
deleted file mode 100644
index 071346b..0000000
--- a/node_modules/rxjs/internal/operators/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,4CAA2C;AA6C3C,SAAgB,UAAU,CAAI,MAAc,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC5E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAFD,gCAEC;AAED;IACE,4BAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAsC,wCAAa;IAIjD,8BAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,YAAM,GAAN,MAAM,CAAQ;QACd,eAAS,GAAT,SAAS,CAAe;QAJ5C,cAAQ,GAAY,KAAK,CAAC;QAMxB,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC;;IAC3F,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,yCAAU,GAAV;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAtBD,CAAsC,uBAAU,GAsB/C;AAED,SAAS,oBAAoB,CAAgC,KAAU;IAC/D,IAAA,6BAAU,EAAE,qBAAM,CAAW;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"}
diff --git a/node_modules/rxjs/internal/operators/scan.d.ts b/node_modules/rxjs/internal/operators/scan.d.ts
deleted file mode 100644
index 8e03bc5..0000000
--- a/node_modules/rxjs/internal/operators/scan.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-export declare function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;
-export declare function scan<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;
-export declare function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/scan.js b/node_modules/rxjs/internal/operators/scan.js
deleted file mode 100644
index b43c1b7..0000000
--- a/node_modules/rxjs/internal/operators/scan.js
+++ /dev/null
@@ -1,83 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function scan(accumulator, seed) {
-    var hasSeed = false;
-    if (arguments.length >= 2) {
-        hasSeed = true;
-    }
-    return function scanOperatorFunction(source) {
-        return source.lift(new ScanOperator(accumulator, seed, hasSeed));
-    };
-}
-exports.scan = scan;
-var ScanOperator = (function () {
-    function ScanOperator(accumulator, seed, hasSeed) {
-        if (hasSeed === void 0) { hasSeed = false; }
-        this.accumulator = accumulator;
-        this.seed = seed;
-        this.hasSeed = hasSeed;
-    }
-    ScanOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
-    };
-    return ScanOperator;
-}());
-var ScanSubscriber = (function (_super) {
-    __extends(ScanSubscriber, _super);
-    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {
-        var _this = _super.call(this, destination) || this;
-        _this.accumulator = accumulator;
-        _this._seed = _seed;
-        _this.hasSeed = hasSeed;
-        _this.index = 0;
-        return _this;
-    }
-    Object.defineProperty(ScanSubscriber.prototype, "seed", {
-        get: function () {
-            return this._seed;
-        },
-        set: function (value) {
-            this.hasSeed = true;
-            this._seed = value;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    ScanSubscriber.prototype._next = function (value) {
-        if (!this.hasSeed) {
-            this.seed = value;
-            this.destination.next(value);
-        }
-        else {
-            return this._tryNext(value);
-        }
-    };
-    ScanSubscriber.prototype._tryNext = function (value) {
-        var index = this.index++;
-        var result;
-        try {
-            result = this.accumulator(this.seed, value, index);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-        this.seed = result;
-        this.destination.next(result);
-    };
-    return ScanSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=scan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/scan.js.map b/node_modules/rxjs/internal/operators/scan.js.map
deleted file mode 100644
index a27e6bf..0000000
--- a/node_modules/rxjs/internal/operators/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../../src/internal/operators/scan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAoD3C,SAAgB,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAdD,oBAcC;AAED;IACE,sBAAoB,WAAmD,EAAU,IAAY,EAAU,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;IACH,mBAAC;AAAD,CAAC,AAND,IAMC;AAOD;IAAmC,kCAAa;IAY9C,wBAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QADpC,YAEE,kBAAM,WAAW,CAAC,SACnB;QAH+C,iBAAW,GAAX,WAAW,CAAwC;QAAU,WAAK,GAAL,KAAK,CAAO;QACrG,aAAO,GAAP,OAAO,CAAS;QAZ5B,WAAK,GAAW,CAAC,CAAC;;IAc1B,CAAC;IAZD,sBAAI,gCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAY;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OALA;IAYS,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,iCAAQ,GAAhB,UAAiB,KAAQ;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,qBAAC;AAAD,CAAC,AArCD,CAAmC,uBAAU,GAqC5C"}
diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.d.ts b/node_modules/rxjs/internal/operators/sequenceEqual.d.ts
deleted file mode 100644
index 67ee97b..0000000
--- a/node_modules/rxjs/internal/operators/sequenceEqual.d.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Observer, OperatorFunction } from '../types';
-/**
- * Compares all values of two observables in sequence using an optional comparator function
- * and returns an observable of a single boolean value representing whether or not the two sequences
- * are equal.
- *
- * <span class="informal">Checks to see of all values emitted by both observables are equal, in order.</span>
- *
- * ![](sequenceEqual.png)
- *
- * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either
- * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom
- * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the
- * observables completes, the operator will wait for the other observable to complete; If the other
- * observable emits before completing, the returned observable will emit `false` and complete. If one observable never
- * completes or emits after the other complets, the returned observable will never complete.
- *
- * ## Example
- * figure out if the Konami code matches
- * ```ts
- * import { from, fromEvent } from 'rxjs';
- * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';
- *
- * const codes = from([
- *   'ArrowUp',
- *   'ArrowUp',
- *   'ArrowDown',
- *   'ArrowDown',
- *   'ArrowLeft',
- *   'ArrowRight',
- *   'ArrowLeft',
- *   'ArrowRight',
- *   'KeyB',
- *   'KeyA',
- *   'Enter', // no start key, clearly.
- * ]);
- *
- * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));
- * const matches = keys.pipe(
- *   bufferCount(11, 1),
- *   mergeMap(
- *     last11 => from(last11).pipe(sequenceEqual(codes)),
- *   ),
- * );
- * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));
- * ```
- *
- * @see {@link combineLatest}
- * @see {@link zip}
- * @see {@link withLatestFrom}
- *
- * @param {Observable} compareTo The observable sequence to compare the source sequence to.
- * @param {function} [comparator] An optional function to compare each value pair
- * @return {Observable} An Observable of a single boolean value representing whether or not
- * the values emitted by both observables were equal in sequence.
- * @method sequenceEqual
- * @owner Observable
- */
-export declare function sequenceEqual<T>(compareTo: Observable<T>, comparator?: (a: T, b: T) => boolean): OperatorFunction<T, boolean>;
-export declare class SequenceEqualOperator<T> implements Operator<T, boolean> {
-    private compareTo;
-    private comparator;
-    constructor(compareTo: Observable<T>, comparator: (a: T, b: T) => boolean);
-    call(subscriber: Subscriber<boolean>, source: any): any;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class SequenceEqualSubscriber<T, R> extends Subscriber<T> {
-    private compareTo;
-    private comparator;
-    private _a;
-    private _b;
-    private _oneComplete;
-    constructor(destination: Observer<R>, compareTo: Observable<T>, comparator: (a: T, b: T) => boolean);
-    protected _next(value: T): void;
-    _complete(): void;
-    checkValues(): void;
-    emit(value: boolean): void;
-    nextB(value: T): void;
-    completeB(): void;
-}
diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.js b/node_modules/rxjs/internal/operators/sequenceEqual.js
deleted file mode 100644
index dbb6bce..0000000
--- a/node_modules/rxjs/internal/operators/sequenceEqual.js
+++ /dev/null
@@ -1,124 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function sequenceEqual(compareTo, comparator) {
-    return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };
-}
-exports.sequenceEqual = sequenceEqual;
-var SequenceEqualOperator = (function () {
-    function SequenceEqualOperator(compareTo, comparator) {
-        this.compareTo = compareTo;
-        this.comparator = comparator;
-    }
-    SequenceEqualOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));
-    };
-    return SequenceEqualOperator;
-}());
-exports.SequenceEqualOperator = SequenceEqualOperator;
-var SequenceEqualSubscriber = (function (_super) {
-    __extends(SequenceEqualSubscriber, _super);
-    function SequenceEqualSubscriber(destination, compareTo, comparator) {
-        var _this = _super.call(this, destination) || this;
-        _this.compareTo = compareTo;
-        _this.comparator = comparator;
-        _this._a = [];
-        _this._b = [];
-        _this._oneComplete = false;
-        _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));
-        return _this;
-    }
-    SequenceEqualSubscriber.prototype._next = function (value) {
-        if (this._oneComplete && this._b.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._a.push(value);
-            this.checkValues();
-        }
-    };
-    SequenceEqualSubscriber.prototype._complete = function () {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-        this.unsubscribe();
-    };
-    SequenceEqualSubscriber.prototype.checkValues = function () {
-        var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;
-        while (_a.length > 0 && _b.length > 0) {
-            var a = _a.shift();
-            var b = _b.shift();
-            var areEqual = false;
-            try {
-                areEqual = comparator ? comparator(a, b) : a === b;
-            }
-            catch (e) {
-                this.destination.error(e);
-            }
-            if (!areEqual) {
-                this.emit(false);
-            }
-        }
-    };
-    SequenceEqualSubscriber.prototype.emit = function (value) {
-        var destination = this.destination;
-        destination.next(value);
-        destination.complete();
-    };
-    SequenceEqualSubscriber.prototype.nextB = function (value) {
-        if (this._oneComplete && this._a.length === 0) {
-            this.emit(false);
-        }
-        else {
-            this._b.push(value);
-            this.checkValues();
-        }
-    };
-    SequenceEqualSubscriber.prototype.completeB = function () {
-        if (this._oneComplete) {
-            this.emit(this._a.length === 0 && this._b.length === 0);
-        }
-        else {
-            this._oneComplete = true;
-        }
-    };
-    return SequenceEqualSubscriber;
-}(Subscriber_1.Subscriber));
-exports.SequenceEqualSubscriber = SequenceEqualSubscriber;
-var SequenceEqualCompareToSubscriber = (function (_super) {
-    __extends(SequenceEqualCompareToSubscriber, _super);
-    function SequenceEqualCompareToSubscriber(destination, parent) {
-        var _this = _super.call(this, destination) || this;
-        _this.parent = parent;
-        return _this;
-    }
-    SequenceEqualCompareToSubscriber.prototype._next = function (value) {
-        this.parent.nextB(value);
-    };
-    SequenceEqualCompareToSubscriber.prototype._error = function (err) {
-        this.parent.error(err);
-        this.unsubscribe();
-    };
-    SequenceEqualCompareToSubscriber.prototype._complete = function () {
-        this.parent.completeB();
-        this.unsubscribe();
-    };
-    return SequenceEqualCompareToSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=sequenceEqual.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/internal/operators/sequenceEqual.js.map
deleted file mode 100644
index 7ec29c1..0000000
--- a/node_modules/rxjs/internal/operators/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/share.d.ts b/node_modules/rxjs/internal/operators/share.d.ts
deleted file mode 100644
index e8439ab..0000000
--- a/node_modules/rxjs/internal/operators/share.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one
- * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will
- * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.
- * This is an alias for `multicast(() => new Subject()), refCount()`.
- *
- * ![](share.png)
- *
- * @return {Observable<T>} An Observable that upon connection causes the source Observable to emit items to its Observers.
- * @method share
- * @owner Observable
- */
-export declare function share<T>(): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/share.js b/node_modules/rxjs/internal/operators/share.js
deleted file mode 100644
index 398eeb8..0000000
--- a/node_modules/rxjs/internal/operators/share.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var multicast_1 = require("./multicast");
-var refCount_1 = require("./refCount");
-var Subject_1 = require("../Subject");
-function shareSubjectFactory() {
-    return new Subject_1.Subject();
-}
-function share() {
-    return function (source) { return refCount_1.refCount()(multicast_1.multicast(shareSubjectFactory)(source)); };
-}
-exports.share = share;
-//# sourceMappingURL=share.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/share.js.map b/node_modules/rxjs/internal/operators/share.js.map
deleted file mode 100644
index aaf1dea..0000000
--- a/node_modules/rxjs/internal/operators/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../../src/internal/operators/share.ts"],"names":[],"mappings":";;AACA,yCAAwC;AACxC,uCAAsC;AACtC,sCAAqC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,iBAAO,EAAE,CAAC;AACvB,CAAC;AAcD,SAAgB,KAAK;IACnB,OAAO,UAAC,MAAqB,IAAK,OAAA,mBAAQ,EAAE,CAAC,qBAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAFD,sBAEC"}
diff --git a/node_modules/rxjs/internal/operators/shareReplay.d.ts b/node_modules/rxjs/internal/operators/shareReplay.d.ts
deleted file mode 100644
index 2b52778..0000000
--- a/node_modules/rxjs/internal/operators/shareReplay.d.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-export interface ShareReplayConfig {
-    bufferSize?: number;
-    windowTime?: number;
-    refCount: boolean;
-    scheduler?: SchedulerLike;
-}
-/**
- * Share source and replay specified number of emissions on subscription.
- *
- * This operator is a specialization of `replay` that connects to a source observable
- * and multicasts through a `ReplaySubject` constructed with the specified arguments.
- * A successfully completed source will stay cached in the `shareReplayed observable` forever,
- * but an errored source can be retried.
- *
- * ## Why use shareReplay?
- * You generally want to use `shareReplay` when you have side-effects or taxing computations
- * that you do not wish to be executed amongst multiple subscribers.
- * It may also be valuable in situations where you know you will have late subscribers to
- * a stream that need access to previously emitted values.
- * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.
- *
- * ![](shareReplay.png)
- *
- * ## Example
- * ```ts
- * import { interval } from 'rxjs';
- * import { shareReplay, take } from 'rxjs/operators';
- *
- * const obs$ = interval(1000);
- * const shared$ = obs$.pipe(
- *   take(4),
- *   shareReplay(3)
- * );
- * shared$.subscribe(x => console.log('source A: ', x));
- * shared$.subscribe(y => console.log('source B: ', y));
- *
- * ```
- *
- * @see {@link publish}
- * @see {@link share}
- * @see {@link publishReplay}
- *
- * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.
- * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.
- * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function
- * will be invoked on.
- * @return {Observable} An observable sequence that contains the elements of a sequence produced
- * by multicasting the source sequence within a selector function.
- * @method shareReplay
- * @owner Observable
- */
-export declare function shareReplay<T>(config: ShareReplayConfig): MonoTypeOperatorFunction<T>;
-export declare function shareReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/shareReplay.js b/node_modules/rxjs/internal/operators/shareReplay.js
deleted file mode 100644
index 93d515b..0000000
--- a/node_modules/rxjs/internal/operators/shareReplay.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ReplaySubject_1 = require("../ReplaySubject");
-function shareReplay(configOrBufferSize, windowTime, scheduler) {
-    var config;
-    if (configOrBufferSize && typeof configOrBufferSize === 'object') {
-        config = configOrBufferSize;
-    }
-    else {
-        config = {
-            bufferSize: configOrBufferSize,
-            windowTime: windowTime,
-            refCount: false,
-            scheduler: scheduler
-        };
-    }
-    return function (source) { return source.lift(shareReplayOperator(config)); };
-}
-exports.shareReplay = shareReplay;
-function shareReplayOperator(_a) {
-    var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;
-    var subject;
-    var refCount = 0;
-    var subscription;
-    var hasError = false;
-    var isComplete = false;
-    return function shareReplayOperation(source) {
-        refCount++;
-        if (!subject || hasError) {
-            hasError = false;
-            subject = new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler);
-            subscription = source.subscribe({
-                next: function (value) { subject.next(value); },
-                error: function (err) {
-                    hasError = true;
-                    subject.error(err);
-                },
-                complete: function () {
-                    isComplete = true;
-                    subscription = undefined;
-                    subject.complete();
-                },
-            });
-        }
-        var innerSub = subject.subscribe(this);
-        this.add(function () {
-            refCount--;
-            innerSub.unsubscribe();
-            if (subscription && !isComplete && useRefCount && refCount === 0) {
-                subscription.unsubscribe();
-                subscription = undefined;
-                subject = undefined;
-            }
-        });
-    };
-}
-//# sourceMappingURL=shareReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/shareReplay.js.map b/node_modules/rxjs/internal/operators/shareReplay.js.map
deleted file mode 100644
index 2d5df70..0000000
--- a/node_modules/rxjs/internal/operators/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AA2DjD,SAAgB,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU,YAAA;YACV,QAAQ,EAAE,KAAK;YACf,SAAS,WAAA;SACV,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAjBD,kCAiBC;AAED,SAAS,mBAAmB,CAAI,EAKZ;QAJlB,kBAAqC,EAArC,0DAAqC,EACrC,kBAAqC,EAArC,0DAAqC,EACrC,yBAAqB,EACrB,wBAAS;IAET,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
diff --git a/node_modules/rxjs/internal/operators/single.d.ts b/node_modules/rxjs/internal/operators/single.d.ts
deleted file mode 100644
index d5deef7..0000000
--- a/node_modules/rxjs/internal/operators/single.d.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that emits the single item emitted by the source Observable that matches a specified
- * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no
- * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable
- * emits items but none match the specified predicate then `undefined` is emitted.
- *
- * <span class="informal">Like {@link first}, but emit with error notification if there is more than one value.</span>
- * ![](single.png)
- *
- * ## Example
- * emits 'error'
- * ```ts
- * import { range } from 'rxjs';
- * import { single } from 'rxjs/operators';
- *
- * const numbers = range(1,5).pipe(single());
- * numbers.subscribe(x => console.log('never get called'), e => console.log('error'));
- * // result
- * // 'error'
- * ```
- *
- * emits 'undefined'
- * ```ts
- * import { range } from 'rxjs';
- * import { single } from 'rxjs/operators';
- *
- * const numbers = range(1,5).pipe(single(x => x === 10));
- * numbers.subscribe(x => console.log(x));
- * // result
- * // 'undefined'
- * ```
- *
- * @see {@link first}
- * @see {@link find}
- * @see {@link findIndex}
- * @see {@link elementAt}
- *
- * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`
- * callback if the Observable completes before any `next` notification was sent.
- * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.
- * @return {Observable<T>} An Observable that emits the single item emitted by the source Observable that matches
- * the predicate or `undefined` when no items match.
- *
- * @method single
- * @owner Observable
- */
-export declare function single<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/single.js b/node_modules/rxjs/internal/operators/single.js
deleted file mode 100644
index b99c2d8..0000000
--- a/node_modules/rxjs/internal/operators/single.js
+++ /dev/null
@@ -1,82 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var EmptyError_1 = require("../util/EmptyError");
-function single(predicate) {
-    return function (source) { return source.lift(new SingleOperator(predicate, source)); };
-}
-exports.single = single;
-var SingleOperator = (function () {
-    function SingleOperator(predicate, source) {
-        this.predicate = predicate;
-        this.source = source;
-    }
-    SingleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
-    };
-    return SingleOperator;
-}());
-var SingleSubscriber = (function (_super) {
-    __extends(SingleSubscriber, _super);
-    function SingleSubscriber(destination, predicate, source) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.source = source;
-        _this.seenValue = false;
-        _this.index = 0;
-        return _this;
-    }
-    SingleSubscriber.prototype.applySingleValue = function (value) {
-        if (this.seenValue) {
-            this.destination.error('Sequence contains more than one element');
-        }
-        else {
-            this.seenValue = true;
-            this.singleValue = value;
-        }
-    };
-    SingleSubscriber.prototype._next = function (value) {
-        var index = this.index++;
-        if (this.predicate) {
-            this.tryNext(value, index);
-        }
-        else {
-            this.applySingleValue(value);
-        }
-    };
-    SingleSubscriber.prototype.tryNext = function (value, index) {
-        try {
-            if (this.predicate(value, index, this.source)) {
-                this.applySingleValue(value);
-            }
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    SingleSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        if (this.index > 0) {
-            destination.next(this.seenValue ? this.singleValue : undefined);
-            destination.complete();
-        }
-        else {
-            destination.error(new EmptyError_1.EmptyError);
-        }
-    };
-    return SingleSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=single.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/single.js.map b/node_modules/rxjs/internal/operators/single.js.map
deleted file mode 100644
index 1ad14fb..0000000
--- a/node_modules/rxjs/internal/operators/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../../src/internal/operators/single.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,iDAAgD;AAkDhD,SAAgB,MAAM,CAAI,SAAuE;IAC/F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAlD,CAAkD,CAAC;AACvF,CAAC;AAFD,wBAEC;AAED;IACE,wBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAAa;IAK7C,0BAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QANlC,eAAS,GAAY,KAAK,CAAC;QAE3B,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAEO,2CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,kCAAO,GAAf,UAAgB,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,oCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,uBAAU,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAlDD,CAAkC,uBAAU,GAkD3C"}
diff --git a/node_modules/rxjs/internal/operators/skip.d.ts b/node_modules/rxjs/internal/operators/skip.d.ts
deleted file mode 100644
index dedad7d..0000000
--- a/node_modules/rxjs/internal/operators/skip.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that skips the first `count` items emitted by the source Observable.
- *
- * ![](skip.png)
- *
- * @param {Number} count - The number of times, items emitted by source Observable should be skipped.
- * @return {Observable} An Observable that skips values emitted by the source Observable.
- *
- * @method skip
- * @owner Observable
- */
-export declare function skip<T>(count: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/skip.js b/node_modules/rxjs/internal/operators/skip.js
deleted file mode 100644
index 0bd54a0..0000000
--- a/node_modules/rxjs/internal/operators/skip.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function skip(count) {
-    return function (source) { return source.lift(new SkipOperator(count)); };
-}
-exports.skip = skip;
-var SkipOperator = (function () {
-    function SkipOperator(total) {
-        this.total = total;
-    }
-    SkipOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SkipSubscriber(subscriber, this.total));
-    };
-    return SkipOperator;
-}());
-var SkipSubscriber = (function (_super) {
-    __extends(SkipSubscriber, _super);
-    function SkipSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.count = 0;
-        return _this;
-    }
-    SkipSubscriber.prototype._next = function (x) {
-        if (++this.count > this.total) {
-            this.destination.next(x);
-        }
-    };
-    return SkipSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=skip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/skip.js.map b/node_modules/rxjs/internal/operators/skip.js.map
deleted file mode 100644
index 5a7a06e..0000000
--- a/node_modules/rxjs/internal/operators/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../../src/internal/operators/skip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAe3C,SAAgB,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,CAAC;AACzE,CAAC;AAFD,oBAEC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAgC,kCAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAF7D,WAAK,GAAW,CAAC,CAAC;;IAIlB,CAAC;IAES,8BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,CAAgC,uBAAU,GAYzC"}
diff --git a/node_modules/rxjs/internal/operators/skipLast.d.ts b/node_modules/rxjs/internal/operators/skipLast.d.ts
deleted file mode 100644
index 46ab8c2..0000000
--- a/node_modules/rxjs/internal/operators/skipLast.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Skip the last `count` values emitted by the source Observable.
- *
- * ![](skipLast.png)
- *
- * `skipLast` returns an Observable that accumulates a queue with a length
- * enough to store the first `count` values. As more values are received,
- * values are taken from the front of the queue and produced on the result
- * sequence. This causes values to be delayed.
- *
- * ## Example
- * Skip the last 2 values of an Observable with many values
- * ```ts
- * import { range } from 'rxjs';
- * import { skipLast } from 'rxjs/operators';
- *
- * const many = range(1, 5);
- * const skipLastTwo = many.pipe(skipLast(2));
- * skipLastTwo.subscribe(x => console.log(x));
- *
- * // Results in:
- * // 1 2 3
- * ```
- *
- * @see {@link skip}
- * @see {@link skipUntil}
- * @see {@link skipWhile}
- * @see {@link take}
- *
- * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws
- * ArgumentOutOrRangeError if `i < 0`.
- *
- * @param {number} count Number of elements to skip from the end of the source Observable.
- * @returns {Observable<T>} An Observable that skips the last count values
- * emitted by the source Observable.
- * @method skipLast
- * @owner Observable
- */
-export declare function skipLast<T>(count: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/skipLast.js b/node_modules/rxjs/internal/operators/skipLast.js
deleted file mode 100644
index 4e407ab..0000000
--- a/node_modules/rxjs/internal/operators/skipLast.js
+++ /dev/null
@@ -1,64 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError");
-function skipLast(count) {
-    return function (source) { return source.lift(new SkipLastOperator(count)); };
-}
-exports.skipLast = skipLast;
-var SkipLastOperator = (function () {
-    function SkipLastOperator(_skipCount) {
-        this._skipCount = _skipCount;
-        if (this._skipCount < 0) {
-            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-        }
-    }
-    SkipLastOperator.prototype.call = function (subscriber, source) {
-        if (this._skipCount === 0) {
-            return source.subscribe(new Subscriber_1.Subscriber(subscriber));
-        }
-        else {
-            return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
-        }
-    };
-    return SkipLastOperator;
-}());
-var SkipLastSubscriber = (function (_super) {
-    __extends(SkipLastSubscriber, _super);
-    function SkipLastSubscriber(destination, _skipCount) {
-        var _this = _super.call(this, destination) || this;
-        _this._skipCount = _skipCount;
-        _this._count = 0;
-        _this._ring = new Array(_skipCount);
-        return _this;
-    }
-    SkipLastSubscriber.prototype._next = function (value) {
-        var skipCount = this._skipCount;
-        var count = this._count++;
-        if (count < skipCount) {
-            this._ring[count] = value;
-        }
-        else {
-            var currentIndex = count % skipCount;
-            var ring = this._ring;
-            var oldValue = ring[currentIndex];
-            ring[currentIndex] = value;
-            this.destination.next(oldValue);
-        }
-    };
-    return SkipLastSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=skipLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/skipLast.js.map b/node_modules/rxjs/internal/operators/skipLast.js.map
deleted file mode 100644
index aa08a67..0000000
--- a/node_modules/rxjs/internal/operators/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../../src/internal/operators/skipLast.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AA0C1E,SAAgB,QAAQ,CAAI,KAAa;IACvC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAFD,4BAEC;AAED;IACE,0BAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAhBD,IAgBC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAAU,UAAkB;QAAlE,YACE,kBAAM,WAAW,CAAC,SAEnB;QAH+C,gBAAU,GAAV,UAAU,CAAQ;QAF1D,YAAM,GAAW,CAAC,CAAC;QAIzB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;;IACxC,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,IAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAxBD,CAAoC,uBAAU,GAwB7C"}
diff --git a/node_modules/rxjs/internal/operators/skipUntil.d.ts b/node_modules/rxjs/internal/operators/skipUntil.d.ts
deleted file mode 100644
index bd9be1b..0000000
--- a/node_modules/rxjs/internal/operators/skipUntil.d.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.
- *
- * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value.
- * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by.
- *
- * ![](skipUntil.png)
- *
- * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission
- * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source*
- * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting
- * a value before.
- *
- * ## Example
- *
- * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page.
- *
- * ```ts
- * import { interval, fromEvent } from 'rxjs';
- * import { skipUntil } from 'rxjs/operators';
- *
- * const intervalObservable = interval(1000);
- * const click = fromEvent(document, 'click');
- *
- * const emitAfterClick = intervalObservable.pipe(
- *   skipUntil(click)
- * );
- * // clicked at 4.6s. output: 5...6...7...8........ or
- * // clicked at 7.3s. output: 8...9...10..11.......
- * const subscribe = emitAfterClick.subscribe(value => console.log(value));
- * ```
- *
- * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to
- * be mirrored by the resulting Observable.
- * @return {Observable<T>} An Observable that skips items from the source Observable until the second Observable emits
- * an item, then emits the remaining items.
- * @method skipUntil
- * @owner Observable
- */
-export declare function skipUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/skipUntil.js b/node_modules/rxjs/internal/operators/skipUntil.js
deleted file mode 100644
index fefbdd7..0000000
--- a/node_modules/rxjs/internal/operators/skipUntil.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function skipUntil(notifier) {
-    return function (source) { return source.lift(new SkipUntilOperator(notifier)); };
-}
-exports.skipUntil = skipUntil;
-var SkipUntilOperator = (function () {
-    function SkipUntilOperator(notifier) {
-        this.notifier = notifier;
-    }
-    SkipUntilOperator.prototype.call = function (destination, source) {
-        return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
-    };
-    return SkipUntilOperator;
-}());
-var SkipUntilSubscriber = (function (_super) {
-    __extends(SkipUntilSubscriber, _super);
-    function SkipUntilSubscriber(destination, notifier) {
-        var _this = _super.call(this, destination) || this;
-        _this.hasValue = false;
-        var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(_this, undefined, undefined);
-        _this.add(innerSubscriber);
-        _this.innerSubscription = innerSubscriber;
-        var innerSubscription = subscribeToResult_1.subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);
-        if (innerSubscription !== innerSubscriber) {
-            _this.add(innerSubscription);
-            _this.innerSubscription = innerSubscription;
-        }
-        return _this;
-    }
-    SkipUntilSubscriber.prototype._next = function (value) {
-        if (this.hasValue) {
-            _super.prototype._next.call(this, value);
-        }
-    };
-    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.hasValue = true;
-        if (this.innerSubscription) {
-            this.innerSubscription.unsubscribe();
-        }
-    };
-    SkipUntilSubscriber.prototype.notifyComplete = function () {
-    };
-    return SkipUntilSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=skipUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/skipUntil.js.map b/node_modules/rxjs/internal/operators/skipUntil.js.map
deleted file mode 100644
index 871b4cc..0000000
--- a/node_modules/rxjs/internal/operators/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,sDAAqD;AACrD,sDAAqD;AACrD,+DAA8D;AA2C9D,SAAgB,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,uCAAqB;IAK3D,6BAAY,WAA0B,EAAE,QAA8B;QAAtE,YACE,kBAAM,WAAW,CAAC,SAYnB;QAhBO,cAAQ,GAAY,KAAK,CAAC;QAKhC,IAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,KAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,KAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,KAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,IAAM,iBAAiB,GAAG,qCAAiB,CAAC,KAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAInG,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;;IACH,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAtCD,CAAwC,iCAAe,GAsCtD"}
diff --git a/node_modules/rxjs/internal/operators/skipWhile.d.ts b/node_modules/rxjs/internal/operators/skipWhile.d.ts
deleted file mode 100644
index a5ae21b..0000000
--- a/node_modules/rxjs/internal/operators/skipWhile.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds
- * true, but emits all further source items as soon as the condition becomes false.
- *
- * ![](skipWhile.png)
- *
- * @param {Function} predicate - A function to test each item emitted from the source Observable.
- * @return {Observable<T>} An Observable that begins emitting items emitted by the source Observable when the
- * specified predicate becomes false.
- * @method skipWhile
- * @owner Observable
- */
-export declare function skipWhile<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/skipWhile.js b/node_modules/rxjs/internal/operators/skipWhile.js
deleted file mode 100644
index 8196342..0000000
--- a/node_modules/rxjs/internal/operators/skipWhile.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function skipWhile(predicate) {
-    return function (source) { return source.lift(new SkipWhileOperator(predicate)); };
-}
-exports.skipWhile = skipWhile;
-var SkipWhileOperator = (function () {
-    function SkipWhileOperator(predicate) {
-        this.predicate = predicate;
-    }
-    SkipWhileOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
-    };
-    return SkipWhileOperator;
-}());
-var SkipWhileSubscriber = (function (_super) {
-    __extends(SkipWhileSubscriber, _super);
-    function SkipWhileSubscriber(destination, predicate) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.skipping = true;
-        _this.index = 0;
-        return _this;
-    }
-    SkipWhileSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        if (this.skipping) {
-            this.tryCallPredicate(value);
-        }
-        if (!this.skipping) {
-            destination.next(value);
-        }
-    };
-    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {
-        try {
-            var result = this.predicate(value, this.index++);
-            this.skipping = Boolean(result);
-        }
-        catch (err) {
-            this.destination.error(err);
-        }
-    };
-    return SkipWhileSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=skipWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/skipWhile.js.map b/node_modules/rxjs/internal/operators/skipWhile.js.map
deleted file mode 100644
index f22aaca..0000000
--- a/node_modules/rxjs/internal/operators/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAe3C,SAAgB,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,uCAAa;IAIhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAJ3D,cAAQ,GAAY,IAAI,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,uBAAU,GA4B9C"}
diff --git a/node_modules/rxjs/internal/operators/startWith.d.ts b/node_modules/rxjs/internal/operators/startWith.d.ts
deleted file mode 100644
index e3c2c8c..0000000
--- a/node_modules/rxjs/internal/operators/startWith.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D>(v1: D, scheduler: SchedulerLike): OperatorFunction<T, T | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D, E>(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction<T, T | D | E>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D, E, F>(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D, E, F, G>(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H | I>;
-export declare function startWith<T, D>(v1: D): OperatorFunction<T, T | D>;
-export declare function startWith<T, D, E>(v1: D, v2: E): OperatorFunction<T, T | D | E>;
-export declare function startWith<T, D, E, F>(v1: D, v2: E, v3: F): OperatorFunction<T, T | D | E | F>;
-export declare function startWith<T, D, E, F, G>(v1: D, v2: E, v3: F, v4: G): OperatorFunction<T, T | D | E | F | G>;
-export declare function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction<T, T | D | E | F | G | H>;
-export declare function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction<T, T | D | E | F | G | H | I>;
-export declare function startWith<T, D = T>(...array: D[]): OperatorFunction<T, T | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export declare function startWith<T, D = T>(...array: Array<D | SchedulerLike>): OperatorFunction<T, T | D>;
diff --git a/node_modules/rxjs/internal/operators/startWith.js b/node_modules/rxjs/internal/operators/startWith.js
deleted file mode 100644
index fd72f0c..0000000
--- a/node_modules/rxjs/internal/operators/startWith.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var concat_1 = require("../observable/concat");
-var isScheduler_1 = require("../util/isScheduler");
-function startWith() {
-    var array = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        array[_i] = arguments[_i];
-    }
-    var scheduler = array[array.length - 1];
-    if (isScheduler_1.isScheduler(scheduler)) {
-        array.pop();
-        return function (source) { return concat_1.concat(array, source, scheduler); };
-    }
-    else {
-        return function (source) { return concat_1.concat(array, source); };
-    }
-}
-exports.startWith = startWith;
-//# sourceMappingURL=startWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/startWith.js.map b/node_modules/rxjs/internal/operators/startWith.js.map
deleted file mode 100644
index 542326a..0000000
--- a/node_modules/rxjs/internal/operators/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../../src/internal/operators/startWith.ts"],"names":[],"mappings":";;AACA,+CAA8C;AAC9C,mDAAkD;AAiElD,SAAgB,SAAS;IAAO,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,yBAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAvC,CAAuC,CAAC;KAC3E;SAAM;QACL,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,KAAY,EAAE,MAAM,CAAC,EAA5B,CAA4B,CAAC;KAChE;AACH,CAAC;AATD,8BASC"}
diff --git a/node_modules/rxjs/internal/operators/subscribeOn.d.ts b/node_modules/rxjs/internal/operators/subscribeOn.d.ts
deleted file mode 100644
index b67954e..0000000
--- a/node_modules/rxjs/internal/operators/subscribeOn.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.
- *
- * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.
- *
- * Schedulers control the speed and order of emissions to observers from an Observable stream.
- *
- * ![](subscribeOn.png)
- *
- * ## Example
- * Given the following code:
- * ```javascript
- * import { of, merge } from 'rxjs';
- *
- * const a = of(1, 2, 3, 4);
- * const b = of(5, 6, 7, 8, 9);
- * merge(a, b).subscribe(console.log);
- * ```
- *
- * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.
- * This will result in the output of `1 2 3 4 5 6 7 8 9`.
- *
- * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`:
- * ```javascript
- * import { of, merge, asyncScheduler } from 'rxjs';
- * import { subscribeOn } from 'rxjs/operators';
- *
- * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));
- * const b = of(5, 6, 7, 8, 9);
- * merge(a, b).subscribe(console.log);
- * ```
- *
- * The output will instead be `5 6 7 8 9 1 2 3 4`.
- * The reason for this is that Observable `b` emits its values directly and synchronously like before
- * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.
- *
- * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.
- * @return {Observable<T>} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.
- .
- * @method subscribeOn
- * @owner Observable
- */
-export declare function subscribeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/subscribeOn.js b/node_modules/rxjs/internal/operators/subscribeOn.js
deleted file mode 100644
index 92042f5..0000000
--- a/node_modules/rxjs/internal/operators/subscribeOn.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SubscribeOnObservable_1 = require("../observable/SubscribeOnObservable");
-function subscribeOn(scheduler, delay) {
-    if (delay === void 0) { delay = 0; }
-    return function subscribeOnOperatorFunction(source) {
-        return source.lift(new SubscribeOnOperator(scheduler, delay));
-    };
-}
-exports.subscribeOn = subscribeOn;
-var SubscribeOnOperator = (function () {
-    function SubscribeOnOperator(scheduler, delay) {
-        this.scheduler = scheduler;
-        this.delay = delay;
-    }
-    SubscribeOnOperator.prototype.call = function (subscriber, source) {
-        return new SubscribeOnObservable_1.SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);
-    };
-    return SubscribeOnOperator;
-}());
-//# sourceMappingURL=subscribeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/subscribeOn.js.map b/node_modules/rxjs/internal/operators/subscribeOn.js.map
deleted file mode 100644
index d4bd464..0000000
--- a/node_modules/rxjs/internal/operators/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":";;AAGA,6EAA4E;AA6C5E,SAAgB,WAAW,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC;AAED;IACE,6BAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,6CAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACH,0BAAC;AAAD,CAAC,AATD,IASC"}
diff --git a/node_modules/rxjs/internal/operators/switchAll.d.ts b/node_modules/rxjs/internal/operators/switchAll.d.ts
deleted file mode 100644
index a184147..0000000
--- a/node_modules/rxjs/internal/operators/switchAll.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { OperatorFunction, ObservableInput } from '../types';
-export declare function switchAll<T>(): OperatorFunction<ObservableInput<T>, T>;
-export declare function switchAll<R>(): OperatorFunction<any, R>;
diff --git a/node_modules/rxjs/internal/operators/switchAll.js b/node_modules/rxjs/internal/operators/switchAll.js
deleted file mode 100644
index f01f86d..0000000
--- a/node_modules/rxjs/internal/operators/switchAll.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var switchMap_1 = require("./switchMap");
-var identity_1 = require("../util/identity");
-function switchAll() {
-    return switchMap_1.switchMap(identity_1.identity);
-}
-exports.switchAll = switchAll;
-//# sourceMappingURL=switchAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/switchAll.js.map b/node_modules/rxjs/internal/operators/switchAll.js.map
deleted file mode 100644
index 509b3ee..0000000
--- a/node_modules/rxjs/internal/operators/switchAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchAll.js","sources":["../../src/internal/operators/switchAll.ts"],"names":[],"mappings":";;AACA,yCAAwC;AACxC,6CAA4C;AA4D5C,SAAgB,SAAS;IACvB,OAAO,qBAAS,CAAC,mBAAQ,CAAC,CAAC;AAC7B,CAAC;AAFD,8BAEC"}
diff --git a/node_modules/rxjs/internal/operators/switchMap.d.ts b/node_modules/rxjs/internal/operators/switchMap.d.ts
deleted file mode 100644
index ecf9c96..0000000
--- a/node_modules/rxjs/internal/operators/switchMap.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported, use inner map instead */
-export declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported, use inner map instead */
-export declare function switchMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/switchMap.js b/node_modules/rxjs/internal/operators/switchMap.js
deleted file mode 100644
index f522e8c..0000000
--- a/node_modules/rxjs/internal/operators/switchMap.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-var map_1 = require("./map");
-var from_1 = require("../observable/from");
-function switchMap(project, resultSelector) {
-    if (typeof resultSelector === 'function') {
-        return function (source) { return source.pipe(switchMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
-    }
-    return function (source) { return source.lift(new SwitchMapOperator(project)); };
-}
-exports.switchMap = switchMap;
-var SwitchMapOperator = (function () {
-    function SwitchMapOperator(project) {
-        this.project = project;
-    }
-    SwitchMapOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
-    };
-    return SwitchMapOperator;
-}());
-var SwitchMapSubscriber = (function (_super) {
-    __extends(SwitchMapSubscriber, _super);
-    function SwitchMapSubscriber(destination, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.project = project;
-        _this.index = 0;
-        return _this;
-    }
-    SwitchMapSubscriber.prototype._next = function (value) {
-        var result;
-        var index = this.index++;
-        try {
-            result = this.project(value, index);
-        }
-        catch (error) {
-            this.destination.error(error);
-            return;
-        }
-        this._innerSub(result, value, index);
-    };
-    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {
-        var innerSubscription = this.innerSubscription;
-        if (innerSubscription) {
-            innerSubscription.unsubscribe();
-        }
-        var innerSubscriber = new InnerSubscriber_1.InnerSubscriber(this, value, index);
-        var destination = this.destination;
-        destination.add(innerSubscriber);
-        this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-        if (this.innerSubscription !== innerSubscriber) {
-            destination.add(this.innerSubscription);
-        }
-    };
-    SwitchMapSubscriber.prototype._complete = function () {
-        var innerSubscription = this.innerSubscription;
-        if (!innerSubscription || innerSubscription.closed) {
-            _super.prototype._complete.call(this);
-        }
-        this.unsubscribe();
-    };
-    SwitchMapSubscriber.prototype._unsubscribe = function () {
-        this.innerSubscription = null;
-    };
-    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {
-        var destination = this.destination;
-        destination.remove(innerSub);
-        this.innerSubscription = null;
-        if (this.isStopped) {
-            _super.prototype._complete.call(this);
-        }
-    };
-    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.destination.next(innerValue);
-    };
-    return SwitchMapSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=switchMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/switchMap.js.map b/node_modules/rxjs/internal/operators/switchMap.js.map
deleted file mode 100644
index f57106f..0000000
--- a/node_modules/rxjs/internal/operators/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/switchMapTo.d.ts b/node_modules/rxjs/internal/operators/switchMapTo.d.ts
deleted file mode 100644
index 798178e..0000000
--- a/node_modules/rxjs/internal/operators/switchMapTo.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ObservableInput, OperatorFunction } from '../types';
-export declare function switchMapTo<R>(observable: ObservableInput<R>): OperatorFunction<any, R>;
-/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */
-export declare function switchMapTo<T, R>(observable: ObservableInput<R>, resultSelector: undefined): OperatorFunction<T, R>;
-/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */
-export declare function switchMapTo<T, I, R>(observable: ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/switchMapTo.js b/node_modules/rxjs/internal/operators/switchMapTo.js
deleted file mode 100644
index 2874b69..0000000
--- a/node_modules/rxjs/internal/operators/switchMapTo.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var switchMap_1 = require("./switchMap");
-function switchMapTo(innerObservable, resultSelector) {
-    return resultSelector ? switchMap_1.switchMap(function () { return innerObservable; }, resultSelector) : switchMap_1.switchMap(function () { return innerObservable; });
-}
-exports.switchMapTo = switchMapTo;
-//# sourceMappingURL=switchMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/switchMapTo.js.map b/node_modules/rxjs/internal/operators/switchMapTo.js.map
deleted file mode 100644
index 606527e..0000000
--- a/node_modules/rxjs/internal/operators/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":";;AAQA,yCAAwC;AAkDxC,SAAgB,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,CAAC,CAAC;AAC9G,CAAC;AALD,kCAKC"}
diff --git a/node_modules/rxjs/internal/operators/take.d.ts b/node_modules/rxjs/internal/operators/take.d.ts
deleted file mode 100644
index 35ec284..0000000
--- a/node_modules/rxjs/internal/operators/take.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Emits only the first `count` values emitted by the source Observable.
- *
- * <span class="informal">Takes the first `count` values from the source, then
- * completes.</span>
- *
- * ![](take.png)
- *
- * `take` returns an Observable that emits only the first `count` values emitted
- * by the source Observable. If the source emits fewer than `count` values then
- * all of its values are emitted. After that, it completes, regardless if the
- * source completes.
- *
- * ## Example
- * Take the first 5 seconds of an infinite 1-second interval Observable
- * ```ts
- * import { interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const intervalCount = interval(1000);
- * const takeFive = intervalCount.pipe(take(5));
- * takeFive.subscribe(x => console.log(x));
- *
- * // Logs:
- * // 0
- * // 1
- * // 2
- * // 3
- * // 4
- * ```
- *
- * @see {@link takeLast}
- * @see {@link takeUntil}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.
- *
- * @param {number} count The maximum number of `next` values to emit.
- * @return {Observable<T>} An Observable that emits only the first `count`
- * values emitted by the source Observable, or all of the values from the source
- * if the source emits fewer than `count` values.
- * @method take
- * @owner Observable
- */
-export declare function take<T>(count: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/take.js b/node_modules/rxjs/internal/operators/take.js
deleted file mode 100644
index 745296a..0000000
--- a/node_modules/rxjs/internal/operators/take.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError");
-var empty_1 = require("../observable/empty");
-function take(count) {
-    return function (source) {
-        if (count === 0) {
-            return empty_1.empty();
-        }
-        else {
-            return source.lift(new TakeOperator(count));
-        }
-    };
-}
-exports.take = take;
-var TakeOperator = (function () {
-    function TakeOperator(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-        }
-    }
-    TakeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeSubscriber(subscriber, this.total));
-    };
-    return TakeOperator;
-}());
-var TakeSubscriber = (function (_super) {
-    __extends(TakeSubscriber, _super);
-    function TakeSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.count = 0;
-        return _this;
-    }
-    TakeSubscriber.prototype._next = function (value) {
-        var total = this.total;
-        var count = ++this.count;
-        if (count <= total) {
-            this.destination.next(value);
-            if (count === total) {
-                this.destination.complete();
-                this.unsubscribe();
-            }
-        }
-    };
-    return TakeSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=take.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/take.js.map b/node_modules/rxjs/internal/operators/take.js.map
deleted file mode 100644
index 0f11175..0000000
--- a/node_modules/rxjs/internal/operators/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../../src/internal/operators/take.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AAC1E,6CAA4C;AAkD5C,SAAgB,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AARD,oBAQC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAgC,kCAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAFrD,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAlBD,CAAgC,uBAAU,GAkBzC"}
diff --git a/node_modules/rxjs/internal/operators/takeLast.d.ts b/node_modules/rxjs/internal/operators/takeLast.d.ts
deleted file mode 100644
index e6e127a..0000000
--- a/node_modules/rxjs/internal/operators/takeLast.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Emits only the last `count` values emitted by the source Observable.
- *
- * <span class="informal">Remembers the latest `count` values, then emits those
- * only when the source completes.</span>
- *
- * ![](takeLast.png)
- *
- * `takeLast` returns an Observable that emits at most the last `count` values
- * emitted by the source Observable. If the source emits fewer than `count`
- * values then all of its values are emitted. This operator must wait until the
- * `complete` notification emission from the source in order to emit the `next`
- * values on the output Observable, because otherwise it is impossible to know
- * whether or not more values will be emitted on the source. For this reason,
- * all values are emitted synchronously, followed by the complete notification.
- *
- * ## Example
- * Take the last 3 values of an Observable with many values
- * ```ts
- * import { range } from 'rxjs';
- * import { takeLast } from 'rxjs/operators';
- *
- * const many = range(1, 100);
- * const lastThree = many.pipe(takeLast(3));
- * lastThree.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link take}
- * @see {@link takeUntil}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.
- *
- * @param {number} count The maximum number of values to emit from the end of
- * the sequence of values emitted by the source Observable.
- * @return {Observable<T>} An Observable that emits at most the last count
- * values emitted by the source Observable.
- * @method takeLast
- * @owner Observable
- */
-export declare function takeLast<T>(count: number): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/takeLast.js b/node_modules/rxjs/internal/operators/takeLast.js
deleted file mode 100644
index 8ab4475..0000000
--- a/node_modules/rxjs/internal/operators/takeLast.js
+++ /dev/null
@@ -1,78 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError");
-var empty_1 = require("../observable/empty");
-function takeLast(count) {
-    return function takeLastOperatorFunction(source) {
-        if (count === 0) {
-            return empty_1.empty();
-        }
-        else {
-            return source.lift(new TakeLastOperator(count));
-        }
-    };
-}
-exports.takeLast = takeLast;
-var TakeLastOperator = (function () {
-    function TakeLastOperator(total) {
-        this.total = total;
-        if (this.total < 0) {
-            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
-        }
-    }
-    TakeLastOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
-    };
-    return TakeLastOperator;
-}());
-var TakeLastSubscriber = (function (_super) {
-    __extends(TakeLastSubscriber, _super);
-    function TakeLastSubscriber(destination, total) {
-        var _this = _super.call(this, destination) || this;
-        _this.total = total;
-        _this.ring = new Array();
-        _this.count = 0;
-        return _this;
-    }
-    TakeLastSubscriber.prototype._next = function (value) {
-        var ring = this.ring;
-        var total = this.total;
-        var count = this.count++;
-        if (ring.length < total) {
-            ring.push(value);
-        }
-        else {
-            var index = count % total;
-            ring[index] = value;
-        }
-    };
-    TakeLastSubscriber.prototype._complete = function () {
-        var destination = this.destination;
-        var count = this.count;
-        if (count > 0) {
-            var total = this.count >= this.total ? this.total : this.count;
-            var ring = this.ring;
-            for (var i = 0; i < total; i++) {
-                var idx = (count++) % total;
-                destination.next(ring[idx]);
-            }
-        }
-        destination.complete();
-    };
-    return TakeLastSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=takeLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/takeLast.js.map b/node_modules/rxjs/internal/operators/takeLast.js.map
deleted file mode 100644
index 9a6b3a8..0000000
--- a/node_modules/rxjs/internal/operators/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../../src/internal/operators/takeLast.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AAC1E,6CAA4C;AA8C5C,SAAgB,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AARD,4BAQC;AAED;IACE,0BAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAHrD,UAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,IAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,IAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,yBAAC;AAAD,CAAC,AArCD,CAAoC,uBAAU,GAqC7C"}
diff --git a/node_modules/rxjs/internal/operators/takeUntil.d.ts b/node_modules/rxjs/internal/operators/takeUntil.d.ts
deleted file mode 100644
index 8bff772..0000000
--- a/node_modules/rxjs/internal/operators/takeUntil.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * Emits the values emitted by the source Observable until a `notifier`
- * Observable emits a value.
- *
- * <span class="informal">Lets values pass until a second Observable,
- * `notifier`, emits a value. Then, it completes.</span>
- *
- * ![](takeUntil.png)
- *
- * `takeUntil` subscribes and begins mirroring the source Observable. It also
- * monitors a second Observable, `notifier` that you provide. If the `notifier`
- * emits a value, the output Observable stops mirroring the source Observable
- * and completes. If the `notifier` doesn't emit any value and completes
- * then `takeUntil` will pass all values.
- *
- * ## Example
- * Tick every second until the first click happens
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { takeUntil } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const result = source.pipe(takeUntil(clicks));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link take}
- * @see {@link takeLast}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @param {Observable} notifier The Observable whose first emitted value will
- * cause the output Observable of `takeUntil` to stop emitting values from the
- * source Observable.
- * @return {Observable<T>} An Observable that emits the values from the source
- * Observable until such time as `notifier` emits its first value.
- * @method takeUntil
- * @owner Observable
- */
-export declare function takeUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/takeUntil.js b/node_modules/rxjs/internal/operators/takeUntil.js
deleted file mode 100644
index 6add143..0000000
--- a/node_modules/rxjs/internal/operators/takeUntil.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function takeUntil(notifier) {
-    return function (source) { return source.lift(new TakeUntilOperator(notifier)); };
-}
-exports.takeUntil = takeUntil;
-var TakeUntilOperator = (function () {
-    function TakeUntilOperator(notifier) {
-        this.notifier = notifier;
-    }
-    TakeUntilOperator.prototype.call = function (subscriber, source) {
-        var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
-        var notifierSubscription = subscribeToResult_1.subscribeToResult(takeUntilSubscriber, this.notifier);
-        if (notifierSubscription && !takeUntilSubscriber.seenValue) {
-            takeUntilSubscriber.add(notifierSubscription);
-            return source.subscribe(takeUntilSubscriber);
-        }
-        return takeUntilSubscriber;
-    };
-    return TakeUntilOperator;
-}());
-var TakeUntilSubscriber = (function (_super) {
-    __extends(TakeUntilSubscriber, _super);
-    function TakeUntilSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.seenValue = false;
-        return _this;
-    }
-    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.seenValue = true;
-        this.complete();
-    };
-    TakeUntilSubscriber.prototype.notifyComplete = function () {
-    };
-    return TakeUntilSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=takeUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/takeUntil.js.map b/node_modules/rxjs/internal/operators/takeUntil.js.map
deleted file mode 100644
index f95db7b..0000000
--- a/node_modules/rxjs/internal/operators/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,sDAAqD;AAErD,+DAA8D;AA4C9D,SAAgB,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAM,oBAAoB,GAAG,qCAAiB,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,wBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAwC,uCAAqB;IAG3D,6BAAY,WAA4B;QAAxC,YACE,kBAAM,WAAW,CAAC,SACnB;QAJD,eAAS,GAAG,KAAK,CAAC;;IAIlB,CAAC;IAED,wCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAjBD,CAAwC,iCAAe,GAiBtD"}
diff --git a/node_modules/rxjs/internal/operators/takeWhile.d.ts b/node_modules/rxjs/internal/operators/takeWhile.d.ts
deleted file mode 100644
index 324812c..0000000
--- a/node_modules/rxjs/internal/operators/takeWhile.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-export declare function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;
-export declare function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction<T, S>;
-export declare function takeWhile<T>(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/takeWhile.js b/node_modules/rxjs/internal/operators/takeWhile.js
deleted file mode 100644
index 360da38..0000000
--- a/node_modules/rxjs/internal/operators/takeWhile.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function takeWhile(predicate, inclusive) {
-    if (inclusive === void 0) { inclusive = false; }
-    return function (source) {
-        return source.lift(new TakeWhileOperator(predicate, inclusive));
-    };
-}
-exports.takeWhile = takeWhile;
-var TakeWhileOperator = (function () {
-    function TakeWhileOperator(predicate, inclusive) {
-        this.predicate = predicate;
-        this.inclusive = inclusive;
-    }
-    TakeWhileOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
-    };
-    return TakeWhileOperator;
-}());
-var TakeWhileSubscriber = (function (_super) {
-    __extends(TakeWhileSubscriber, _super);
-    function TakeWhileSubscriber(destination, predicate, inclusive) {
-        var _this = _super.call(this, destination) || this;
-        _this.predicate = predicate;
-        _this.inclusive = inclusive;
-        _this.index = 0;
-        return _this;
-    }
-    TakeWhileSubscriber.prototype._next = function (value) {
-        var destination = this.destination;
-        var result;
-        try {
-            result = this.predicate(value, this.index++);
-        }
-        catch (err) {
-            destination.error(err);
-            return;
-        }
-        this.nextOrComplete(value, result);
-    };
-    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {
-        var destination = this.destination;
-        if (Boolean(predicateResult)) {
-            destination.next(value);
-        }
-        else {
-            if (this.inclusive) {
-                destination.next(value);
-            }
-            destination.complete();
-        }
-    };
-    return TakeWhileSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=takeWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/takeWhile.js.map b/node_modules/rxjs/internal/operators/takeWhile.js.map
deleted file mode 100644
index 74291cc..0000000
--- a/node_modules/rxjs/internal/operators/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAmD3C,SAAgB,SAAS,CACrB,SAA+C,EAC/C,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IACnB,OAAO,UAAC,MAAqB;QAClB,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAAxD,CAAwD,CAAC;AACtE,CAAC;AALD,8BAKC;AAED;IACE,2BACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACH,wBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAqC,uCAAa;IAGhD,6BACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAH9B,YAIE,kBAAM,WAAW,CAAC,SACnB;QAHW,eAAS,GAAT,SAAS,CAAsC;QAC/C,eAAS,GAAT,SAAS,CAAS;QALtB,WAAK,GAAW,CAAC,CAAC;;IAO1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAAqC,uBAAU,GAiC9C"}
diff --git a/node_modules/rxjs/internal/operators/tap.d.ts b/node_modules/rxjs/internal/operators/tap.d.ts
deleted file mode 100644
index 72a4db2..0000000
--- a/node_modules/rxjs/internal/operators/tap.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { MonoTypeOperatorFunction, PartialObserver } from '../types';
-/** @deprecated Use an observer instead of a complete callback */
-export declare function tap<T>(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;
-/** @deprecated Use an observer instead of an error callback */
-export declare function tap<T>(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;
-/** @deprecated Use an observer instead of a complete callback */
-export declare function tap<T>(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;
-export declare function tap<T>(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;
-export declare function tap<T>(observer: PartialObserver<T>): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/tap.js b/node_modules/rxjs/internal/operators/tap.js
deleted file mode 100644
index 01eec10..0000000
--- a/node_modules/rxjs/internal/operators/tap.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var noop_1 = require("../util/noop");
-var isFunction_1 = require("../util/isFunction");
-function tap(nextOrObserver, error, complete) {
-    return function tapOperatorFunction(source) {
-        return source.lift(new DoOperator(nextOrObserver, error, complete));
-    };
-}
-exports.tap = tap;
-var DoOperator = (function () {
-    function DoOperator(nextOrObserver, error, complete) {
-        this.nextOrObserver = nextOrObserver;
-        this.error = error;
-        this.complete = complete;
-    }
-    DoOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
-    };
-    return DoOperator;
-}());
-var TapSubscriber = (function (_super) {
-    __extends(TapSubscriber, _super);
-    function TapSubscriber(destination, observerOrNext, error, complete) {
-        var _this = _super.call(this, destination) || this;
-        _this._tapNext = noop_1.noop;
-        _this._tapError = noop_1.noop;
-        _this._tapComplete = noop_1.noop;
-        _this._tapError = error || noop_1.noop;
-        _this._tapComplete = complete || noop_1.noop;
-        if (isFunction_1.isFunction(observerOrNext)) {
-            _this._context = _this;
-            _this._tapNext = observerOrNext;
-        }
-        else if (observerOrNext) {
-            _this._context = observerOrNext;
-            _this._tapNext = observerOrNext.next || noop_1.noop;
-            _this._tapError = observerOrNext.error || noop_1.noop;
-            _this._tapComplete = observerOrNext.complete || noop_1.noop;
-        }
-        return _this;
-    }
-    TapSubscriber.prototype._next = function (value) {
-        try {
-            this._tapNext.call(this._context, value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(value);
-    };
-    TapSubscriber.prototype._error = function (err) {
-        try {
-            this._tapError.call(this._context, err);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.error(err);
-    };
-    TapSubscriber.prototype._complete = function () {
-        try {
-            this._tapComplete.call(this._context);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        return this.destination.complete();
-    };
-    return TapSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=tap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/tap.js.map b/node_modules/rxjs/internal/operators/tap.js.map
deleted file mode 100644
index fc7c148..0000000
--- a/node_modules/rxjs/internal/operators/tap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tap.js","sources":["../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/throttle.d.ts b/node_modules/rxjs/internal/operators/throttle.d.ts
deleted file mode 100644
index 5a3302f..0000000
--- a/node_modules/rxjs/internal/operators/throttle.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types';
-export interface ThrottleConfig {
-    leading?: boolean;
-    trailing?: boolean;
-}
-export declare const defaultThrottleConfig: ThrottleConfig;
-/**
- * Emits a value from the source Observable, then ignores subsequent source
- * values for a duration determined by another Observable, then repeats this
- * process.
- *
- * <span class="informal">It's like {@link throttleTime}, but the silencing
- * duration is determined by a second Observable.</span>
- *
- * ![](throttle.png)
- *
- * `throttle` emits the source Observable values on the output Observable
- * when its internal timer is disabled, and ignores source values when the timer
- * is enabled. Initially, the timer is disabled. As soon as the first source
- * value arrives, it is forwarded to the output Observable, and then the timer
- * is enabled by calling the `durationSelector` function with the source value,
- * which returns the "duration" Observable. When the duration Observable emits a
- * value or completes, the timer is disabled, and this process repeats for the
- * next source value.
- *
- * ## Example
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { throttle } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(throttle(ev => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounce}
- * @see {@link delayWhen}
- * @see {@link sample}
- * @see {@link throttleTime}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the silencing
- * duration for each source value, returned as an Observable or a Promise.
- * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults
- * to `{ leading: true, trailing: false }`.
- * @return {Observable<T>} An Observable that performs the throttle operation to
- * limit the rate of emissions from the source.
- * @method throttle
- * @owner Observable
- */
-export declare function throttle<T>(durationSelector: (value: T) => SubscribableOrPromise<any>, config?: ThrottleConfig): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/throttle.js b/node_modules/rxjs/internal/operators/throttle.js
deleted file mode 100644
index 4347483..0000000
--- a/node_modules/rxjs/internal/operators/throttle.js
+++ /dev/null
@@ -1,103 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-exports.defaultThrottleConfig = {
-    leading: true,
-    trailing: false
-};
-function throttle(durationSelector, config) {
-    if (config === void 0) { config = exports.defaultThrottleConfig; }
-    return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };
-}
-exports.throttle = throttle;
-var ThrottleOperator = (function () {
-    function ThrottleOperator(durationSelector, leading, trailing) {
-        this.durationSelector = durationSelector;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    ThrottleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));
-    };
-    return ThrottleOperator;
-}());
-var ThrottleSubscriber = (function (_super) {
-    __extends(ThrottleSubscriber, _super);
-    function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.durationSelector = durationSelector;
-        _this._leading = _leading;
-        _this._trailing = _trailing;
-        _this._hasValue = false;
-        return _this;
-    }
-    ThrottleSubscriber.prototype._next = function (value) {
-        this._hasValue = true;
-        this._sendValue = value;
-        if (!this._throttled) {
-            if (this._leading) {
-                this.send();
-            }
-            else {
-                this.throttle(value);
-            }
-        }
-    };
-    ThrottleSubscriber.prototype.send = function () {
-        var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;
-        if (_hasValue) {
-            this.destination.next(_sendValue);
-            this.throttle(_sendValue);
-        }
-        this._hasValue = false;
-        this._sendValue = null;
-    };
-    ThrottleSubscriber.prototype.throttle = function (value) {
-        var duration = this.tryDurationSelector(value);
-        if (!!duration) {
-            this.add(this._throttled = subscribeToResult_1.subscribeToResult(this, duration));
-        }
-    };
-    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {
-        try {
-            return this.durationSelector(value);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return null;
-        }
-    };
-    ThrottleSubscriber.prototype.throttlingDone = function () {
-        var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;
-        if (_throttled) {
-            _throttled.unsubscribe();
-        }
-        this._throttled = null;
-        if (_trailing) {
-            this.send();
-        }
-    };
-    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.throttlingDone();
-    };
-    ThrottleSubscriber.prototype.notifyComplete = function () {
-        this.throttlingDone();
-    };
-    return ThrottleSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=throttle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/throttle.js.map b/node_modules/rxjs/internal/operators/throttle.js.map
deleted file mode 100644
index 1bfaeca..0000000
--- a/node_modules/rxjs/internal/operators/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/throttleTime.d.ts b/node_modules/rxjs/internal/operators/throttleTime.d.ts
deleted file mode 100644
index af02ffa..0000000
--- a/node_modules/rxjs/internal/operators/throttleTime.d.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { ThrottleConfig } from './throttle';
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- * Emits a value from the source Observable, then ignores subsequent source
- * values for `duration` milliseconds, then repeats this process.
- *
- * <span class="informal">Lets a value pass, then ignores source values for the
- * next `duration` milliseconds.</span>
- *
- * ![](throttleTime.png)
- *
- * `throttleTime` emits the source Observable values on the output Observable
- * when its internal timer is disabled, and ignores source values when the timer
- * is enabled. Initially, the timer is disabled. As soon as the first source
- * value arrives, it is forwarded to the output Observable, and then the timer
- * is enabled. After `duration` milliseconds (or the time unit determined
- * internally by the optional `scheduler`) has passed, the timer is disabled,
- * and this process repeats for the next source value. Optionally takes a
- * {@link SchedulerLike} for managing timers.
- *
- * ## Examples
- *
- * #### Limit click rate
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { throttleTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(throttleTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * #### Double Click
- *
- * The following example only emits clicks which happen within a subsequent
- * delay of 400ms of the previous click. This for example can emulate a double
- * click. It makes use of the `trailing` parameter of the throttle configuration.
- *
- * ```ts
- * import { fromEvent, asyncScheduler } from 'rxjs';
- * import { throttleTime, withLatestFrom } from 'rxjs/operators';
- *
- * // defaultThottleConfig = { leading: true, trailing: false }
- * const throttleConfig = {
- *   leading: false,
- *   trailing: true
- * }
- *
- * const click = fromEvent(document, 'click');
- * const doubleClick = click.pipe(
- *   throttleTime(400, asyncScheduler, throttleConfig)
- * );
- *
- * doubleClick.subscribe((throttleValue: Event) => {
- *   console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);
- * });
- * ```
- *
- * If you enable the `leading` parameter in this example, the output would be the primary click and
- * the double click, but restricts additional clicks within 400ms.
- *
- * @see {@link auditTime}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttle}
- *
- * @param {number} duration Time to wait before emitting another value after
- * emitting the last value, measured in milliseconds or the time unit determined
- * internally by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the throttling.
- * @param {Object} config a configuration object to define `leading` and
- * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.
- * @return {Observable<T>} An Observable that performs the throttle operation to
- * limit the rate of emissions from the source.
- * @method throttleTime
- * @owner Observable
- */
-export declare function throttleTime<T>(duration: number, scheduler?: SchedulerLike, config?: ThrottleConfig): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/throttleTime.js b/node_modules/rxjs/internal/operators/throttleTime.js
deleted file mode 100644
index 156c44b..0000000
--- a/node_modules/rxjs/internal/operators/throttleTime.js
+++ /dev/null
@@ -1,95 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var async_1 = require("../scheduler/async");
-var throttle_1 = require("./throttle");
-function throttleTime(duration, scheduler, config) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    if (config === void 0) { config = throttle_1.defaultThrottleConfig; }
-    return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };
-}
-exports.throttleTime = throttleTime;
-var ThrottleTimeOperator = (function () {
-    function ThrottleTimeOperator(duration, scheduler, leading, trailing) {
-        this.duration = duration;
-        this.scheduler = scheduler;
-        this.leading = leading;
-        this.trailing = trailing;
-    }
-    ThrottleTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));
-    };
-    return ThrottleTimeOperator;
-}());
-var ThrottleTimeSubscriber = (function (_super) {
-    __extends(ThrottleTimeSubscriber, _super);
-    function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {
-        var _this = _super.call(this, destination) || this;
-        _this.duration = duration;
-        _this.scheduler = scheduler;
-        _this.leading = leading;
-        _this.trailing = trailing;
-        _this._hasTrailingValue = false;
-        _this._trailingValue = null;
-        return _this;
-    }
-    ThrottleTimeSubscriber.prototype._next = function (value) {
-        if (this.throttled) {
-            if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-        else {
-            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));
-            if (this.leading) {
-                this.destination.next(value);
-            }
-            else if (this.trailing) {
-                this._trailingValue = value;
-                this._hasTrailingValue = true;
-            }
-        }
-    };
-    ThrottleTimeSubscriber.prototype._complete = function () {
-        if (this._hasTrailingValue) {
-            this.destination.next(this._trailingValue);
-            this.destination.complete();
-        }
-        else {
-            this.destination.complete();
-        }
-    };
-    ThrottleTimeSubscriber.prototype.clearThrottle = function () {
-        var throttled = this.throttled;
-        if (throttled) {
-            if (this.trailing && this._hasTrailingValue) {
-                this.destination.next(this._trailingValue);
-                this._trailingValue = null;
-                this._hasTrailingValue = false;
-            }
-            throttled.unsubscribe();
-            this.remove(throttled);
-            this.throttled = null;
-        }
-    };
-    return ThrottleTimeSubscriber;
-}(Subscriber_1.Subscriber));
-function dispatchNext(arg) {
-    var subscriber = arg.subscriber;
-    subscriber.clearThrottle();
-}
-//# sourceMappingURL=throttleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/throttleTime.js.map b/node_modules/rxjs/internal/operators/throttleTime.js.map
deleted file mode 100644
index 343f02d..0000000
--- a/node_modules/rxjs/internal/operators/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts b/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts
deleted file mode 100644
index 1238bca..0000000
--- a/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { MonoTypeOperatorFunction } from '../types';
-/**
- * If the source observable completes without emitting a value, it will emit
- * an error. The error will be created at that time by the optional
- * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.
- *
- * ![](throwIfEmpty.png)
- *
- * ## Example
- * ```ts
- * import { fromEvent, timer } from 'rxjs';
- * import { throwIfEmpty, takeUntil } from 'rxjs/operators';
- *
- * const click$ = fromEvent(document, 'click');
- *
- * click$.pipe(
- *   takeUntil(timer(1000)),
- *   throwIfEmpty(
- *     () => new Error('the document was not clicked within 1 second')
- *   ),
- * )
- * .subscribe({
- *   next() { console.log('The button was clicked'); },
- *   error(err) { console.error(err); }
- * });
- * ```
- *
- * @param errorFactory A factory function called to produce the
- * error to be thrown when the source observable completes without emitting a
- * value.
- */
-export declare function throwIfEmpty<T>(errorFactory?: (() => any)): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.js b/node_modules/rxjs/internal/operators/throwIfEmpty.js
deleted file mode 100644
index 7722c34..0000000
--- a/node_modules/rxjs/internal/operators/throwIfEmpty.js
+++ /dev/null
@@ -1,66 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var EmptyError_1 = require("../util/EmptyError");
-var Subscriber_1 = require("../Subscriber");
-function throwIfEmpty(errorFactory) {
-    if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }
-    return function (source) {
-        return source.lift(new ThrowIfEmptyOperator(errorFactory));
-    };
-}
-exports.throwIfEmpty = throwIfEmpty;
-var ThrowIfEmptyOperator = (function () {
-    function ThrowIfEmptyOperator(errorFactory) {
-        this.errorFactory = errorFactory;
-    }
-    ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
-    };
-    return ThrowIfEmptyOperator;
-}());
-var ThrowIfEmptySubscriber = (function (_super) {
-    __extends(ThrowIfEmptySubscriber, _super);
-    function ThrowIfEmptySubscriber(destination, errorFactory) {
-        var _this = _super.call(this, destination) || this;
-        _this.errorFactory = errorFactory;
-        _this.hasValue = false;
-        return _this;
-    }
-    ThrowIfEmptySubscriber.prototype._next = function (value) {
-        this.hasValue = true;
-        this.destination.next(value);
-    };
-    ThrowIfEmptySubscriber.prototype._complete = function () {
-        if (!this.hasValue) {
-            var err = void 0;
-            try {
-                err = this.errorFactory();
-            }
-            catch (e) {
-                err = e;
-            }
-            this.destination.error(err);
-        }
-        else {
-            return this.destination.complete();
-        }
-    };
-    return ThrowIfEmptySubscriber;
-}(Subscriber_1.Subscriber));
-function defaultErrorFactory() {
-    return new EmptyError_1.EmptyError();
-}
-//# sourceMappingURL=throwIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/internal/operators/throwIfEmpty.js.map
deleted file mode 100644
index 5817ed7..0000000
--- a/node_modules/rxjs/internal/operators/throwIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwIfEmpty.js","sources":["../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAgD;AAGhD,4CAA2C;AAiC3C,SAAgB,YAAY,CAAK,YAA+C;IAA/C,6BAAA,EAAA,kCAA+C;IAC9E,OAAO,UAAC,MAAqB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,oCAIC;AAED;IACE,8BAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAwC,0CAAa;IAGnD,gCAAY,WAA0B,EAAU,YAAuB;QAAvE,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,kBAAY,GAAZ,YAAY,CAAW;QAF/D,cAAQ,GAAY,KAAK,CAAC;;IAIlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAG,SAAK,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,CAAwC,uBAAU,GAyBjD;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,uBAAU,EAAE,CAAC;AAC1B,CAAC"}
diff --git a/node_modules/rxjs/internal/operators/timeInterval.d.ts b/node_modules/rxjs/internal/operators/timeInterval.d.ts
deleted file mode 100644
index 029c2e2..0000000
--- a/node_modules/rxjs/internal/operators/timeInterval.d.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { SchedulerLike, OperatorFunction } from '../types';
-/**
- *
- * Emits an object containing the current value, and the time that has
- * passed between emitting the current value and the previous value, which is
- * calculated by using the provided `scheduler`'s `now()` method to retrieve
- * the current time at each emission, then calculating the difference. The `scheduler`
- * defaults to {@link asyncScheduler}, so by default, the `interval` will be in
- * milliseconds.
- *
- * <span class="informal">Convert an Observable that emits items into one that
- * emits indications of the amount of time elapsed between those emissions.</span>
- *
- * ![](timeinterval.png)
- *
- * ## Examples
- * Emit inteval between current value with the last value
- *
- * ```ts
- * const seconds = interval(1000);
- *
- * seconds.pipe(timeInterval())
- * .subscribe(
- *     value => console.log(value),
- *     err => console.log(err),
- * );
- *
- * seconds.pipe(timeout(900))
- * .subscribe(
- *     value => console.log(value),
- *     err => console.log(err),
- * );
- *
- * // NOTE: The values will never be this precise,
- * // intervals created with `interval` or `setInterval`
- * // are non-deterministic.
- *
- * // {value: 0, interval: 1000}
- * // {value: 1, interval: 1000}
- * // {value: 2, interval: 1000}
- * ```
- *
- * @param {SchedulerLike} [scheduler] Scheduler used to get the current time.
- * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval
- * @method timeInterval
- */
-export declare function timeInterval<T>(scheduler?: SchedulerLike): OperatorFunction<T, TimeInterval<T>>;
-/**
- * @deprecated exposed API, use as interface only.
- */
-export declare class TimeInterval<T> {
-    value: T;
-    interval: number;
-    constructor(value: T, interval: number);
-}
diff --git a/node_modules/rxjs/internal/operators/timeInterval.js b/node_modules/rxjs/internal/operators/timeInterval.js
deleted file mode 100644
index 9ed2bc0..0000000
--- a/node_modules/rxjs/internal/operators/timeInterval.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var scan_1 = require("./scan");
-var defer_1 = require("../observable/defer");
-var map_1 = require("./map");
-function timeInterval(scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return function (source) { return defer_1.defer(function () {
-        return source.pipe(scan_1.scan(function (_a, value) {
-            var current = _a.current;
-            return ({ value: value, current: scheduler.now(), last: current });
-        }, { current: scheduler.now(), value: undefined, last: undefined }), map_1.map(function (_a) {
-            var current = _a.current, last = _a.last, value = _a.value;
-            return new TimeInterval(value, current - last);
-        }));
-    }); };
-}
-exports.timeInterval = timeInterval;
-var TimeInterval = (function () {
-    function TimeInterval(value, interval) {
-        this.value = value;
-        this.interval = interval;
-    }
-    return TimeInterval;
-}());
-exports.TimeInterval = TimeInterval;
-//# sourceMappingURL=timeInterval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/timeInterval.js.map b/node_modules/rxjs/internal/operators/timeInterval.js.map
deleted file mode 100644
index d915b13..0000000
--- a/node_modules/rxjs/internal/operators/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":";;AAEA,4CAA2C;AAE3C,+BAA8B;AAC9B,6CAA4C;AAC5C,6BAA4B;AA+C5B,SAAgB,YAAY,CAAI,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC9D,OAAO,UAAC,MAAqB,IAAK,OAAA,aAAK,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAEhB,WAAI,CACF,UAAC,EAAW,EAAE,KAAK;gBAAhB,oBAAO;YAAc,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAApD,CAAoD,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,SAAG,CAAuB,UAAC,EAAwB;gBAAtB,oBAAO,EAAE,cAAI,EAAE,gBAAK;YAAO,OAAA,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAAvC,CAAuC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,EATgC,CAShC,CAAC;AACL,CAAC;AAXD,oCAWC;AAQD;IACE,sBAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAC1D,mBAAC;AAAD,CAAC,AAFD,IAEC;AAFY,oCAAY"}
diff --git a/node_modules/rxjs/internal/operators/timeout.d.ts b/node_modules/rxjs/internal/operators/timeout.d.ts
deleted file mode 100644
index 8d4ac4e..0000000
--- a/node_modules/rxjs/internal/operators/timeout.d.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-/**
- *
- * Errors if Observable does not emit a value in given time span.
- *
- * <span class="informal">Timeouts on Observable that doesn't emit values fast enough.</span>
- *
- * ![](timeout.png)
- *
- * `timeout` operator accepts as an argument either a number or a Date.
- *
- * If number was provided, it returns an Observable that behaves like a source
- * Observable, unless there is a period of time where there is no value emitted.
- * So if you provide `100` as argument and first value comes after 50ms from
- * the moment of subscription, this value will be simply re-emitted by the resulting
- * Observable. If however after that 100ms passes without a second value being emitted,
- * stream will end with an error and source Observable will be unsubscribed.
- * These checks are performed throughout whole lifecycle of Observable - from the moment
- * it was subscribed to, until it completes or errors itself. Thus every value must be
- * emitted within specified period since previous value.
- *
- * If provided argument was Date, returned Observable behaves differently. It throws
- * if Observable did not complete before provided Date. This means that periods between
- * emission of particular values do not matter in this case. If Observable did not complete
- * before provided Date, source Observable will be unsubscribed. Other than that, resulting
- * stream behaves just as source Observable.
- *
- * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)
- * when returned Observable will check if source stream emitted value or completed.
- *
- * ## Examples
- * Check if ticks are emitted within certain timespan
- * ```ts
- * import { interval } from 'rxjs';
- * import { timeout } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- *
- * seconds.pipe(timeout(1100))      // Let's use bigger timespan to be safe,
- *                                  // since `interval` might fire a bit later then scheduled.
- * .subscribe(
- *     value => console.log(value), // Will emit numbers just as regular `interval` would.
- *     err => console.log(err),     // Will never be called.
- * );
- *
- * seconds.pipe(timeout(900))
- * .subscribe(
- *     value => console.log(value), // Will never be called.
- *     err => console.log(err),     // Will emit error before even first value is emitted,
- *                                  // since it did not arrive within 900ms period.
- * );
- * ```
- *
- * Use Date to check if Observable completed
- * ```ts
- * import { interval } from 'rxjs';
- * import { timeout } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- *
- * seconds.pipe(
- *   timeout(new Date("December 17, 2020 03:24:00")),
- * )
- * .subscribe(
- *     value => console.log(value), // Will emit values as regular `interval` would
- *                                  // until December 17, 2020 at 03:24:00.
- *     err => console.log(err)      // On December 17, 2020 at 03:24:00 it will emit an error,
- *                                  // since Observable did not complete by then.
- * );
- * ```
- * @see {@link timeoutWith}
- *
- * @param {number|Date} due Number specifying period within which Observable must emit values
- *                          or Date specifying before when Observable should complete
- * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.
- * @return {Observable<T>} Observable that mirrors behaviour of source, unless timeout checks fail.
- * @method timeout
- * @owner Observable
- */
-export declare function timeout<T>(due: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
diff --git a/node_modules/rxjs/internal/operators/timeout.js b/node_modules/rxjs/internal/operators/timeout.js
deleted file mode 100644
index 0241d2a..0000000
--- a/node_modules/rxjs/internal/operators/timeout.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var TimeoutError_1 = require("../util/TimeoutError");
-var timeoutWith_1 = require("./timeoutWith");
-var throwError_1 = require("../observable/throwError");
-function timeout(due, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return timeoutWith_1.timeoutWith(due, throwError_1.throwError(new TimeoutError_1.TimeoutError()), scheduler);
-}
-exports.timeout = timeout;
-//# sourceMappingURL=timeout.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/timeout.js.map b/node_modules/rxjs/internal/operators/timeout.js.map
deleted file mode 100644
index 8935e58..0000000
--- a/node_modules/rxjs/internal/operators/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../../src/internal/operators/timeout.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAK3C,qDAAoD;AAEpD,6CAA4C;AAC5C,uDAAsD;AAgFtD,SAAgB,OAAO,CAAI,GAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IACzD,OAAO,yBAAW,CAAC,GAAG,EAAE,uBAAU,CAAC,IAAI,2BAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAHD,0BAGC"}
diff --git a/node_modules/rxjs/internal/operators/timeoutWith.d.ts b/node_modules/rxjs/internal/operators/timeoutWith.d.ts
deleted file mode 100644
index 05ea509..0000000
--- a/node_modules/rxjs/internal/operators/timeoutWith.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { ObservableInput, OperatorFunction, SchedulerLike } from '../types';
-export declare function timeoutWith<T, R>(due: number | Date, withObservable: ObservableInput<R>, scheduler?: SchedulerLike): OperatorFunction<T, T | R>;
diff --git a/node_modules/rxjs/internal/operators/timeoutWith.js b/node_modules/rxjs/internal/operators/timeoutWith.js
deleted file mode 100644
index 3d4727e..0000000
--- a/node_modules/rxjs/internal/operators/timeoutWith.js
+++ /dev/null
@@ -1,80 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var isDate_1 = require("../util/isDate");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function timeoutWith(due, withObservable, scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return function (source) {
-        var absoluteTimeout = isDate_1.isDate(due);
-        var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
-        return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
-    };
-}
-exports.timeoutWith = timeoutWith;
-var TimeoutWithOperator = (function () {
-    function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {
-        this.waitFor = waitFor;
-        this.absoluteTimeout = absoluteTimeout;
-        this.withObservable = withObservable;
-        this.scheduler = scheduler;
-    }
-    TimeoutWithOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
-    };
-    return TimeoutWithOperator;
-}());
-var TimeoutWithSubscriber = (function (_super) {
-    __extends(TimeoutWithSubscriber, _super);
-    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.absoluteTimeout = absoluteTimeout;
-        _this.waitFor = waitFor;
-        _this.withObservable = withObservable;
-        _this.scheduler = scheduler;
-        _this.action = null;
-        _this.scheduleTimeout();
-        return _this;
-    }
-    TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {
-        var withObservable = subscriber.withObservable;
-        subscriber._unsubscribeAndRecycle();
-        subscriber.add(subscribeToResult_1.subscribeToResult(subscriber, withObservable));
-    };
-    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {
-        var action = this.action;
-        if (action) {
-            this.action = action.schedule(this, this.waitFor);
-        }
-        else {
-            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
-        }
-    };
-    TimeoutWithSubscriber.prototype._next = function (value) {
-        if (!this.absoluteTimeout) {
-            this.scheduleTimeout();
-        }
-        _super.prototype._next.call(this, value);
-    };
-    TimeoutWithSubscriber.prototype._unsubscribe = function () {
-        this.action = null;
-        this.scheduler = null;
-        this.withObservable = null;
-    };
-    return TimeoutWithSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=timeoutWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/timeoutWith.js.map b/node_modules/rxjs/internal/operators/timeoutWith.js.map
deleted file mode 100644
index 426c577..0000000
--- a/node_modules/rxjs/internal/operators/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,yCAAwC;AACxC,sDAAqD;AACrD,+DAA8D;AA4D9D,SAAgB,WAAW,CAAO,GAAkB,EAClB,cAAkC,EAClC,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAChE,OAAO,UAAC,MAAqB;QAC3B,IAAI,eAAe,GAAG,eAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;AACJ,CAAC;AARD,kCAQC;AAED;IACE,6BAAoB,OAAe,EACf,eAAwB,EACxB,cAAoC,EACpC,SAAwB;QAHxB,YAAO,GAAP,OAAO,CAAQ;QACf,oBAAe,GAAf,eAAe,CAAS;QACxB,mBAAc,GAAd,cAAc,CAAsB;QACpC,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAC/C,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CACpF,CAAC,CAAC;IACL,CAAC;IACH,0BAAC;AAAD,CAAC,AAZD,IAYC;AAOD;IAA0C,yCAAqB;IAI7D,+BAAY,WAA0B,EAClB,eAAwB,EACxB,OAAe,EACf,cAAoC,EACpC,SAAwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAEnB;QANmB,qBAAe,GAAf,eAAe,CAAS;QACxB,aAAO,GAAP,OAAO,CAAQ;QACf,oBAAc,GAAd,cAAc,CAAsB;QACpC,eAAS,GAAT,SAAS,CAAe;QANpC,YAAM,GAAiD,IAAI,CAAC;QAQlE,KAAI,CAAC,eAAe,EAAE,CAAC;;IACzB,CAAC;IAEc,qCAAe,GAA9B,UAAqC,UAAuC;QAClE,IAAA,0CAAc,CAAgB;QAC/B,UAAW,CAAC,sBAAsB,EAAE,CAAC;QAC5C,UAAU,CAAC,GAAG,CAAC,qCAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,+CAAe,GAAvB;QACU,IAAA,oBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YAMV,IAAI,CAAC,MAAM,GAAmD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAE,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAmD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC5F,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CACzD,CAAC,CAAC;SACL;IACH,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAGD,4CAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IACH,4BAAC;AAAD,CAAC,AAhDD,CAA0C,iCAAe,GAgDxD"}
diff --git a/node_modules/rxjs/internal/operators/timestamp.d.ts b/node_modules/rxjs/internal/operators/timestamp.d.ts
deleted file mode 100644
index f7e5ee7..0000000
--- a/node_modules/rxjs/internal/operators/timestamp.d.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';
-/**
- * Attaches a timestamp to each item emitted by an observable indicating when it was emitted
- *
- * The `timestamp` operator maps the *source* observable stream to an object of type
- * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value
- * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By
- * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01
- * 00:00:00:000) and therefore is of type `number`.
- *
- * ![](timestamp.png)
- *
- * ## Example
- *
- * In this example there is a timestamp attached to the documents click event.
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { timestamp } from 'rxjs/operators';
- *
- * const clickWithTimestamp = fromEvent(document, 'click').pipe(
- *   timestamp()
- * );
- *
- * // Emits data of type {value: MouseEvent, timestamp: number}
- * clickWithTimestamp.subscribe(data => {
- *   console.log(data);
- * });
- * ```
- *
- * @param scheduler
- * @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>}
- * @method timestamp
- * @owner Observable
- */
-export declare function timestamp<T>(scheduler?: SchedulerLike): OperatorFunction<T, Timestamp<T>>;
-export declare class Timestamp<T> implements TimestampInterface<T> {
-    value: T;
-    timestamp: number;
-    constructor(value: T, timestamp: number);
-}
diff --git a/node_modules/rxjs/internal/operators/timestamp.js b/node_modules/rxjs/internal/operators/timestamp.js
deleted file mode 100644
index 52bb279..0000000
--- a/node_modules/rxjs/internal/operators/timestamp.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var async_1 = require("../scheduler/async");
-var map_1 = require("./map");
-function timestamp(scheduler) {
-    if (scheduler === void 0) { scheduler = async_1.async; }
-    return map_1.map(function (value) { return new Timestamp(value, scheduler.now()); });
-}
-exports.timestamp = timestamp;
-var Timestamp = (function () {
-    function Timestamp(value, timestamp) {
-        this.value = value;
-        this.timestamp = timestamp;
-    }
-    return Timestamp;
-}());
-exports.Timestamp = Timestamp;
-//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/timestamp.js.map b/node_modules/rxjs/internal/operators/timestamp.js.map
deleted file mode 100644
index 66f136a..0000000
--- a/node_modules/rxjs/internal/operators/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../../src/internal/operators/timestamp.ts"],"names":[],"mappings":";;AACA,4CAA2C;AAE3C,6BAA4B;AAoC5B,SAAgB,SAAS,CAAI,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC3D,OAAO,SAAG,CAAC,UAAC,KAAQ,IAAK,OAAA,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;AAElE,CAAC;AAHD,8BAGC;AAED;IACE,mBAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;IACH,gBAAC;AAAD,CAAC,AAHD,IAGC;AAHY,8BAAS"}
diff --git a/node_modules/rxjs/internal/operators/toArray.d.ts b/node_modules/rxjs/internal/operators/toArray.d.ts
deleted file mode 100644
index 2103751..0000000
--- a/node_modules/rxjs/internal/operators/toArray.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { OperatorFunction } from '../types';
-/**
- * Collects all source emissions and emits them as an array when the source completes.
- *
- * <span class="informal">Get all values inside an array when the source completes</span>
- *
- * ![](toArray.png)
- *
- * `toArray` will wait until the source Observable completes before emitting
- * the array containing all emissions. When the source Observable errors no
- * array will be emitted.
- *
- *  ## Example
- * ```ts
- * import { interval } from 'rxjs';
- * import { toArray, take } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(
- *   take(10),
- *   toArray()
- * );
- *
- * const subscribe = example.subscribe(val => console.log(val));
- *
- * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- *
- * ```
-* @return An array from an observable sequence.
-* @method toArray
-* @owner Observable
-*/
-export declare function toArray<T>(): OperatorFunction<T, T[]>;
diff --git a/node_modules/rxjs/internal/operators/toArray.js b/node_modules/rxjs/internal/operators/toArray.js
deleted file mode 100644
index ca6639f..0000000
--- a/node_modules/rxjs/internal/operators/toArray.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var reduce_1 = require("./reduce");
-function toArrayReducer(arr, item, index) {
-    if (index === 0) {
-        return [item];
-    }
-    arr.push(item);
-    return arr;
-}
-function toArray() {
-    return reduce_1.reduce(toArrayReducer, []);
-}
-exports.toArray = toArray;
-//# sourceMappingURL=toArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/toArray.js.map b/node_modules/rxjs/internal/operators/toArray.js.map
deleted file mode 100644
index 5064cfa..0000000
--- a/node_modules/rxjs/internal/operators/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../../src/internal/operators/toArray.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,SAAgB,OAAO;IACrB,OAAO,eAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC;AAFD,0BAEC"}
diff --git a/node_modules/rxjs/internal/operators/window.d.ts b/node_modules/rxjs/internal/operators/window.d.ts
deleted file mode 100644
index ae29815..0000000
--- a/node_modules/rxjs/internal/operators/window.d.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Branch out the source Observable values as a nested Observable whenever
- * `windowBoundaries` emits.
- *
- * <span class="informal">It's like {@link buffer}, but emits a nested Observable
- * instead of an array.</span>
- *
- * ![](window.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits connected, non-overlapping
- * windows. It emits the current window and opens a new one whenever the
- * Observable `windowBoundaries` emits an item. Because each window is an
- * Observable, the output is a higher-order Observable.
- *
- * ## Example
- * In every window of 1 second each, emit at most 2 click events
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { window, mergeAll, map, take } from 'rxjs/operators';
- *
- *  const clicks = fromEvent(document, 'click');
- *  const sec = interval(1000);
- *  const result = clicks.pipe(
- *      window(sec),
- *      map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *      mergeAll(),              // flatten the Observable-of-Observables
- *  );
- *  result.subscribe(x => console.log(x));
- * ```
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link buffer}
- *
- * @param {Observable<any>} windowBoundaries An Observable that completes the
- * previous window and starts a new window.
- * @return {Observable<Observable<T>>} An Observable of windows, which are
- * Observables emitting values of the source Observable.
- * @method window
- * @owner Observable
- */
-export declare function window<T>(windowBoundaries: Observable<any>): OperatorFunction<T, Observable<T>>;
diff --git a/node_modules/rxjs/internal/operators/window.js b/node_modules/rxjs/internal/operators/window.js
deleted file mode 100644
index 338b9fe..0000000
--- a/node_modules/rxjs/internal/operators/window.js
+++ /dev/null
@@ -1,81 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function window(windowBoundaries) {
-    return function windowOperatorFunction(source) {
-        return source.lift(new WindowOperator(windowBoundaries));
-    };
-}
-exports.window = window;
-var WindowOperator = (function () {
-    function WindowOperator(windowBoundaries) {
-        this.windowBoundaries = windowBoundaries;
-    }
-    WindowOperator.prototype.call = function (subscriber, source) {
-        var windowSubscriber = new WindowSubscriber(subscriber);
-        var sourceSubscription = source.subscribe(windowSubscriber);
-        if (!sourceSubscription.closed) {
-            windowSubscriber.add(subscribeToResult_1.subscribeToResult(windowSubscriber, this.windowBoundaries));
-        }
-        return sourceSubscription;
-    };
-    return WindowOperator;
-}());
-var WindowSubscriber = (function (_super) {
-    __extends(WindowSubscriber, _super);
-    function WindowSubscriber(destination) {
-        var _this = _super.call(this, destination) || this;
-        _this.window = new Subject_1.Subject();
-        destination.next(_this.window);
-        return _this;
-    }
-    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow();
-    };
-    WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-        this._complete();
-    };
-    WindowSubscriber.prototype._next = function (value) {
-        this.window.next(value);
-    };
-    WindowSubscriber.prototype._error = function (err) {
-        this.window.error(err);
-        this.destination.error(err);
-    };
-    WindowSubscriber.prototype._complete = function () {
-        this.window.complete();
-        this.destination.complete();
-    };
-    WindowSubscriber.prototype._unsubscribe = function () {
-        this.window = null;
-    };
-    WindowSubscriber.prototype.openWindow = function () {
-        var prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        var destination = this.destination;
-        var newWindow = this.window = new Subject_1.Subject();
-        destination.next(newWindow);
-    };
-    return WindowSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=window.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/window.js.map b/node_modules/rxjs/internal/operators/window.js.map
deleted file mode 100644
index 0b6b505..0000000
--- a/node_modules/rxjs/internal/operators/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../../src/internal/operators/window.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,sCAAqC;AAErC,sDAAqD;AAErD,+DAA8D;AA8C9D,SAAgB,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAJD,wBAIC;AAED;IAEE,wBAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,qCAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAClF;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACH,qBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAkC,oCAAuB;IAIvD,0BAAY,WAAsC;QAAlD,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAe,IAAI,iBAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;;IAChC,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa,EAAE,UAAe,EAC9B,UAAkB,EAAE,UAAkB,EACtC,QAAiC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,sCAAW,GAAX,UAAY,KAAU,EAAE,QAAiC;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,yCAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,iCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAGD,uCAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEO,qCAAU,GAAlB;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IACH,uBAAC;AAAD,CAAC,AAnDD,CAAkC,iCAAe,GAmDhD"}
diff --git a/node_modules/rxjs/internal/operators/windowCount.d.ts b/node_modules/rxjs/internal/operators/windowCount.d.ts
deleted file mode 100644
index 3e5ed18..0000000
--- a/node_modules/rxjs/internal/operators/windowCount.d.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Branch out the source Observable values as a nested Observable with each
- * nested Observable emitting at most `windowSize` values.
- *
- * <span class="informal">It's like {@link bufferCount}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowCount.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits windows every `startWindowEvery`
- * items, each containing no more than `windowSize` items. When the source
- * Observable completes or encounters an error, the output Observable emits
- * the current window and propagates the notification from the source
- * Observable. If `startWindowEvery` is not provided, then new windows are
- * started immediately at the start of the source and when each window completes
- * with size `windowSize`.
- *
- * ## Examples
- * Ignore every 3rd click event, starting from the first one
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowCount, map, mergeAll, skip } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowCount(3),
- *   map(win => win.pipe(skip(1))), // skip first of every 3 clicks
- *   mergeAll()                     // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Ignore every 3rd click event, starting from the third one
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowCount, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowCount(2, 3),
- *   mergeAll(),              // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link bufferCount}
- *
- * @param {number} windowSize The maximum number of values emitted by each
- * window.
- * @param {number} [startWindowEvery] Interval at which to start a new window.
- * For example if `startWindowEvery` is `2`, then a new window will be started
- * on every other value from the source. A new window is started at the
- * beginning of the source by default.
- * @return {Observable<Observable<T>>} An Observable of windows, which in turn
- * are Observable of values.
- * @method windowCount
- * @owner Observable
- */
-export declare function windowCount<T>(windowSize: number, startWindowEvery?: number): OperatorFunction<T, Observable<T>>;
diff --git a/node_modules/rxjs/internal/operators/windowCount.js b/node_modules/rxjs/internal/operators/windowCount.js
deleted file mode 100644
index 0bc25a0..0000000
--- a/node_modules/rxjs/internal/operators/windowCount.js
+++ /dev/null
@@ -1,90 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var Subject_1 = require("../Subject");
-function windowCount(windowSize, startWindowEvery) {
-    if (startWindowEvery === void 0) { startWindowEvery = 0; }
-    return function windowCountOperatorFunction(source) {
-        return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
-    };
-}
-exports.windowCount = windowCount;
-var WindowCountOperator = (function () {
-    function WindowCountOperator(windowSize, startWindowEvery) {
-        this.windowSize = windowSize;
-        this.startWindowEvery = startWindowEvery;
-    }
-    WindowCountOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
-    };
-    return WindowCountOperator;
-}());
-var WindowCountSubscriber = (function (_super) {
-    __extends(WindowCountSubscriber, _super);
-    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.windowSize = windowSize;
-        _this.startWindowEvery = startWindowEvery;
-        _this.windows = [new Subject_1.Subject()];
-        _this.count = 0;
-        destination.next(_this.windows[0]);
-        return _this;
-    }
-    WindowCountSubscriber.prototype._next = function (value) {
-        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
-        var destination = this.destination;
-        var windowSize = this.windowSize;
-        var windows = this.windows;
-        var len = windows.length;
-        for (var i = 0; i < len && !this.closed; i++) {
-            windows[i].next(value);
-        }
-        var c = this.count - windowSize + 1;
-        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
-            windows.shift().complete();
-        }
-        if (++this.count % startWindowEvery === 0 && !this.closed) {
-            var window_1 = new Subject_1.Subject();
-            windows.push(window_1);
-            destination.next(window_1);
-        }
-    };
-    WindowCountSubscriber.prototype._error = function (err) {
-        var windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().error(err);
-            }
-        }
-        this.destination.error(err);
-    };
-    WindowCountSubscriber.prototype._complete = function () {
-        var windows = this.windows;
-        if (windows) {
-            while (windows.length > 0 && !this.closed) {
-                windows.shift().complete();
-            }
-        }
-        this.destination.complete();
-    };
-    WindowCountSubscriber.prototype._unsubscribe = function () {
-        this.count = 0;
-        this.windows = null;
-    };
-    return WindowCountSubscriber;
-}(Subscriber_1.Subscriber));
-//# sourceMappingURL=windowCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/windowCount.js.map b/node_modules/rxjs/internal/operators/windowCount.js.map
deleted file mode 100644
index 5ac86c0..0000000
--- a/node_modules/rxjs/internal/operators/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/windowTime.d.ts b/node_modules/rxjs/internal/operators/windowTime.d.ts
deleted file mode 100644
index 2d793d5..0000000
--- a/node_modules/rxjs/internal/operators/windowTime.d.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction, SchedulerLike } from '../types';
-/**
- * Branch out the source Observable values as a nested Observable periodically
- * in time.
- *
- * <span class="informal">It's like {@link bufferTime}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowTime.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable starts a new window periodically, as
- * determined by the `windowCreationInterval` argument. It emits each window
- * after a fixed timespan, specified by the `windowTimeSpan` argument. When the
- * source Observable completes or encounters an error, the output Observable
- * emits the current window and propagates the notification from the source
- * Observable. If `windowCreationInterval` is not provided, the output
- * Observable starts a new window when the previous window of duration
- * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window
- * will emit at most fixed number of values. Window will complete immediately
- * after emitting last value and next one still will open as specified by
- * `windowTimeSpan` and `windowCreationInterval` arguments.
- *
- * ## Examples
- * In every window of 1 second each, emit at most 2 click events
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000),
- *   map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *   mergeAll(),                    // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000, 5000),
- *   map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *   mergeAll(),                    // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Same as example above but with maxWindowCount instead of take
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000, 5000, 2), // each window has still at most 2 emissions
- *   mergeAll(),                // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link bufferTime}
- *
- * @param {number} windowTimeSpan The amount of time to fill each window.
- * @param {number} [windowCreationInterval] The interval at which to start new
- * windows.
- * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of
- * values each window can emit before completion.
- * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the
- * intervals that determine window boundaries.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowTime
- * @owner Observable
- */
-export declare function windowTime<T>(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
-export declare function windowTime<T>(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
-export declare function windowTime<T>(windowTimeSpan: number, windowCreationInterval: number, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
diff --git a/node_modules/rxjs/internal/operators/windowTime.js b/node_modules/rxjs/internal/operators/windowTime.js
deleted file mode 100644
index aa1ac21..0000000
--- a/node_modules/rxjs/internal/operators/windowTime.js
+++ /dev/null
@@ -1,169 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var async_1 = require("../scheduler/async");
-var Subscriber_1 = require("../Subscriber");
-var isNumeric_1 = require("../util/isNumeric");
-var isScheduler_1 = require("../util/isScheduler");
-function windowTime(windowTimeSpan) {
-    var scheduler = async_1.async;
-    var windowCreationInterval = null;
-    var maxWindowSize = Number.POSITIVE_INFINITY;
-    if (isScheduler_1.isScheduler(arguments[3])) {
-        scheduler = arguments[3];
-    }
-    if (isScheduler_1.isScheduler(arguments[2])) {
-        scheduler = arguments[2];
-    }
-    else if (isNumeric_1.isNumeric(arguments[2])) {
-        maxWindowSize = arguments[2];
-    }
-    if (isScheduler_1.isScheduler(arguments[1])) {
-        scheduler = arguments[1];
-    }
-    else if (isNumeric_1.isNumeric(arguments[1])) {
-        windowCreationInterval = arguments[1];
-    }
-    return function windowTimeOperatorFunction(source) {
-        return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
-    };
-}
-exports.windowTime = windowTime;
-var WindowTimeOperator = (function () {
-    function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        this.windowTimeSpan = windowTimeSpan;
-        this.windowCreationInterval = windowCreationInterval;
-        this.maxWindowSize = maxWindowSize;
-        this.scheduler = scheduler;
-    }
-    WindowTimeOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));
-    };
-    return WindowTimeOperator;
-}());
-var CountedSubject = (function (_super) {
-    __extends(CountedSubject, _super);
-    function CountedSubject() {
-        var _this = _super !== null && _super.apply(this, arguments) || this;
-        _this._numberOfNextedValues = 0;
-        return _this;
-    }
-    CountedSubject.prototype.next = function (value) {
-        this._numberOfNextedValues++;
-        _super.prototype.next.call(this, value);
-    };
-    Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", {
-        get: function () {
-            return this._numberOfNextedValues;
-        },
-        enumerable: true,
-        configurable: true
-    });
-    return CountedSubject;
-}(Subject_1.Subject));
-var WindowTimeSubscriber = (function (_super) {
-    __extends(WindowTimeSubscriber, _super);
-    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.windowTimeSpan = windowTimeSpan;
-        _this.windowCreationInterval = windowCreationInterval;
-        _this.maxWindowSize = maxWindowSize;
-        _this.scheduler = scheduler;
-        _this.windows = [];
-        var window = _this.openWindow();
-        if (windowCreationInterval !== null && windowCreationInterval >= 0) {
-            var closeState = { subscriber: _this, window: window, context: null };
-            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };
-            _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));
-            _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));
-        }
-        else {
-            var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };
-            _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
-        }
-        return _this;
-    }
-    WindowTimeSubscriber.prototype._next = function (value) {
-        var windows = this.windows;
-        var len = windows.length;
-        for (var i = 0; i < len; i++) {
-            var window_1 = windows[i];
-            if (!window_1.closed) {
-                window_1.next(value);
-                if (window_1.numberOfNextedValues >= this.maxWindowSize) {
-                    this.closeWindow(window_1);
-                }
-            }
-        }
-    };
-    WindowTimeSubscriber.prototype._error = function (err) {
-        var windows = this.windows;
-        while (windows.length > 0) {
-            windows.shift().error(err);
-        }
-        this.destination.error(err);
-    };
-    WindowTimeSubscriber.prototype._complete = function () {
-        var windows = this.windows;
-        while (windows.length > 0) {
-            var window_2 = windows.shift();
-            if (!window_2.closed) {
-                window_2.complete();
-            }
-        }
-        this.destination.complete();
-    };
-    WindowTimeSubscriber.prototype.openWindow = function () {
-        var window = new CountedSubject();
-        this.windows.push(window);
-        var destination = this.destination;
-        destination.next(window);
-        return window;
-    };
-    WindowTimeSubscriber.prototype.closeWindow = function (window) {
-        window.complete();
-        var windows = this.windows;
-        windows.splice(windows.indexOf(window), 1);
-    };
-    return WindowTimeSubscriber;
-}(Subscriber_1.Subscriber));
-function dispatchWindowTimeSpanOnly(state) {
-    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;
-    if (window) {
-        subscriber.closeWindow(window);
-    }
-    state.window = subscriber.openWindow();
-    this.schedule(state, windowTimeSpan);
-}
-function dispatchWindowCreation(state) {
-    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;
-    var window = subscriber.openWindow();
-    var action = this;
-    var context = { action: action, subscription: null };
-    var timeSpanState = { subscriber: subscriber, window: window, context: context };
-    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);
-    action.add(context.subscription);
-    action.schedule(state, windowCreationInterval);
-}
-function dispatchWindowClose(state) {
-    var subscriber = state.subscriber, window = state.window, context = state.context;
-    if (context && context.action && context.subscription) {
-        context.action.remove(context.subscription);
-    }
-    subscriber.closeWindow(window);
-}
-//# sourceMappingURL=windowTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/windowTime.js.map b/node_modules/rxjs/internal/operators/windowTime.js.map
deleted file mode 100644
index 549193c..0000000
--- a/node_modules/rxjs/internal/operators/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../../src/internal/operators/windowTime.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/windowToggle.d.ts b/node_modules/rxjs/internal/operators/windowToggle.d.ts
deleted file mode 100644
index b71f351..0000000
--- a/node_modules/rxjs/internal/operators/windowToggle.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Branch out the source Observable values as a nested Observable starting from
- * an emission from `openings` and ending when the output of `closingSelector`
- * emits.
- *
- * <span class="informal">It's like {@link bufferToggle}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowToggle.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits windows that contain those items
- * emitted by the source Observable between the time when the `openings`
- * Observable emits an item and when the Observable returned by
- * `closingSelector` emits an item.
- *
- * ## Example
- * Every other second, emit the click events from the next 500ms
- * ```ts
- * import { fromEvent, interval, EMPTY } from 'rxjs';
- * import { windowToggle, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const openings = interval(1000);
- * const result = clicks.pipe(
- *   windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),
- *   mergeAll()
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowWhen}
- * @see {@link bufferToggle}
- *
- * @param {Observable<O>} openings An observable of notifications to start new
- * windows.
- * @param {function(value: O): Observable} closingSelector A function that takes
- * the value emitted by the `openings` observable and returns an Observable,
- * which, when it emits (either `next` or `complete`), signals that the
- * associated window should complete.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowToggle
- * @owner Observable
- */
-export declare function windowToggle<T, O>(openings: Observable<O>, closingSelector: (openValue: O) => Observable<any>): OperatorFunction<T, Observable<T>>;
diff --git a/node_modules/rxjs/internal/operators/windowToggle.js b/node_modules/rxjs/internal/operators/windowToggle.js
deleted file mode 100644
index c0d144a..0000000
--- a/node_modules/rxjs/internal/operators/windowToggle.js
+++ /dev/null
@@ -1,143 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var Subscription_1 = require("../Subscription");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function windowToggle(openings, closingSelector) {
-    return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };
-}
-exports.windowToggle = windowToggle;
-var WindowToggleOperator = (function () {
-    function WindowToggleOperator(openings, closingSelector) {
-        this.openings = openings;
-        this.closingSelector = closingSelector;
-    }
-    WindowToggleOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));
-    };
-    return WindowToggleOperator;
-}());
-var WindowToggleSubscriber = (function (_super) {
-    __extends(WindowToggleSubscriber, _super);
-    function WindowToggleSubscriber(destination, openings, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.openings = openings;
-        _this.closingSelector = closingSelector;
-        _this.contexts = [];
-        _this.add(_this.openSubscription = subscribeToResult_1.subscribeToResult(_this, openings, openings));
-        return _this;
-    }
-    WindowToggleSubscriber.prototype._next = function (value) {
-        var contexts = this.contexts;
-        if (contexts) {
-            var len = contexts.length;
-            for (var i = 0; i < len; i++) {
-                contexts[i].window.next(value);
-            }
-        }
-    };
-    WindowToggleSubscriber.prototype._error = function (err) {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_1 = contexts[index];
-                context_1.window.error(err);
-                context_1.subscription.unsubscribe();
-            }
-        }
-        _super.prototype._error.call(this, err);
-    };
-    WindowToggleSubscriber.prototype._complete = function () {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_2 = contexts[index];
-                context_2.window.complete();
-                context_2.subscription.unsubscribe();
-            }
-        }
-        _super.prototype._complete.call(this);
-    };
-    WindowToggleSubscriber.prototype._unsubscribe = function () {
-        var contexts = this.contexts;
-        this.contexts = null;
-        if (contexts) {
-            var len = contexts.length;
-            var index = -1;
-            while (++index < len) {
-                var context_3 = contexts[index];
-                context_3.window.unsubscribe();
-                context_3.subscription.unsubscribe();
-            }
-        }
-    };
-    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        if (outerValue === this.openings) {
-            var closingNotifier = void 0;
-            try {
-                var closingSelector = this.closingSelector;
-                closingNotifier = closingSelector(innerValue);
-            }
-            catch (e) {
-                return this.error(e);
-            }
-            var window_1 = new Subject_1.Subject();
-            var subscription = new Subscription_1.Subscription();
-            var context_4 = { window: window_1, subscription: subscription };
-            this.contexts.push(context_4);
-            var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context_4);
-            if (innerSubscription.closed) {
-                this.closeWindow(this.contexts.length - 1);
-            }
-            else {
-                innerSubscription.context = context_4;
-                subscription.add(innerSubscription);
-            }
-            this.destination.next(window_1);
-        }
-        else {
-            this.closeWindow(this.contexts.indexOf(outerValue));
-        }
-    };
-    WindowToggleSubscriber.prototype.notifyError = function (err) {
-        this.error(err);
-    };
-    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {
-        if (inner !== this.openSubscription) {
-            this.closeWindow(this.contexts.indexOf(inner.context));
-        }
-    };
-    WindowToggleSubscriber.prototype.closeWindow = function (index) {
-        if (index === -1) {
-            return;
-        }
-        var contexts = this.contexts;
-        var context = contexts[index];
-        var window = context.window, subscription = context.subscription;
-        contexts.splice(index, 1);
-        window.complete();
-        subscription.unsubscribe();
-    };
-    return WindowToggleSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=windowToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/windowToggle.js.map b/node_modules/rxjs/internal/operators/windowToggle.js.map
deleted file mode 100644
index 7cd4830..0000000
--- a/node_modules/rxjs/internal/operators/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/windowWhen.d.ts b/node_modules/rxjs/internal/operators/windowWhen.d.ts
deleted file mode 100644
index bb92a73..0000000
--- a/node_modules/rxjs/internal/operators/windowWhen.d.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-/**
- * Branch out the source Observable values as a nested Observable using a
- * factory function of closing Observables to determine when to start a new
- * window.
- *
- * <span class="informal">It's like {@link bufferWhen}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowWhen.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits connected, non-overlapping windows.
- * It emits the current window and opens a new one whenever the Observable
- * produced by the specified `closingSelector` function emits an item. The first
- * window is opened immediately when subscribing to the output Observable.
- *
- * ## Example
- * Emit only the first two clicks events in every window of [1-5] random seconds
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { windowWhen, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowWhen(() => interval(1000 + Math.random() * 4000)),
- *   map(win => win.pipe(take(2))),     // each window has at most 2 emissions
- *   mergeAll()                         // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link bufferWhen}
- *
- * @param {function(): Observable} closingSelector A function that takes no
- * arguments and returns an Observable that signals (on either `next` or
- * `complete`) when to close the previous window and start a new one.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowWhen
- * @owner Observable
- */
-export declare function windowWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, Observable<T>>;
diff --git a/node_modules/rxjs/internal/operators/windowWhen.js b/node_modules/rxjs/internal/operators/windowWhen.js
deleted file mode 100644
index acd73c4..0000000
--- a/node_modules/rxjs/internal/operators/windowWhen.js
+++ /dev/null
@@ -1,96 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function windowWhen(closingSelector) {
-    return function windowWhenOperatorFunction(source) {
-        return source.lift(new WindowOperator(closingSelector));
-    };
-}
-exports.windowWhen = windowWhen;
-var WindowOperator = (function () {
-    function WindowOperator(closingSelector) {
-        this.closingSelector = closingSelector;
-    }
-    WindowOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));
-    };
-    return WindowOperator;
-}());
-var WindowSubscriber = (function (_super) {
-    __extends(WindowSubscriber, _super);
-    function WindowSubscriber(destination, closingSelector) {
-        var _this = _super.call(this, destination) || this;
-        _this.destination = destination;
-        _this.closingSelector = closingSelector;
-        _this.openWindow();
-        return _this;
-    }
-    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.openWindow(innerSub);
-    };
-    WindowSubscriber.prototype.notifyError = function (error, innerSub) {
-        this._error(error);
-    };
-    WindowSubscriber.prototype.notifyComplete = function (innerSub) {
-        this.openWindow(innerSub);
-    };
-    WindowSubscriber.prototype._next = function (value) {
-        this.window.next(value);
-    };
-    WindowSubscriber.prototype._error = function (err) {
-        this.window.error(err);
-        this.destination.error(err);
-        this.unsubscribeClosingNotification();
-    };
-    WindowSubscriber.prototype._complete = function () {
-        this.window.complete();
-        this.destination.complete();
-        this.unsubscribeClosingNotification();
-    };
-    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {
-        if (this.closingNotification) {
-            this.closingNotification.unsubscribe();
-        }
-    };
-    WindowSubscriber.prototype.openWindow = function (innerSub) {
-        if (innerSub === void 0) { innerSub = null; }
-        if (innerSub) {
-            this.remove(innerSub);
-            innerSub.unsubscribe();
-        }
-        var prevWindow = this.window;
-        if (prevWindow) {
-            prevWindow.complete();
-        }
-        var window = this.window = new Subject_1.Subject();
-        this.destination.next(window);
-        var closingNotifier;
-        try {
-            var closingSelector = this.closingSelector;
-            closingNotifier = closingSelector();
-        }
-        catch (e) {
-            this.destination.error(e);
-            this.window.error(e);
-            return;
-        }
-        this.add(this.closingNotification = subscribeToResult_1.subscribeToResult(this, closingNotifier));
-    };
-    return WindowSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=windowWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/windowWhen.js.map b/node_modules/rxjs/internal/operators/windowWhen.js.map
deleted file mode 100644
index 3e37ef0..0000000
--- a/node_modules/rxjs/internal/operators/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.d.ts b/node_modules/rxjs/internal/operators/withLatestFrom.d.ts
deleted file mode 100644
index 7732a85..0000000
--- a/node_modules/rxjs/internal/operators/withLatestFrom.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-export declare function withLatestFrom<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, R>(source2: O2, project: (v1: T, v2: ObservedValueOf<O2>) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>>(source2: O2): OperatorFunction<T, [T, ObservedValueOf<O2>]>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v2: O2, v3: O3): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export declare function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-export declare function withLatestFrom<T, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, R>;
-export declare function withLatestFrom<T, R>(array: ObservableInput<any>[], project: (...values: Array<any>) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.js b/node_modules/rxjs/internal/operators/withLatestFrom.js
deleted file mode 100644
index 100c92c..0000000
--- a/node_modules/rxjs/internal/operators/withLatestFrom.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var OuterSubscriber_1 = require("../OuterSubscriber");
-var subscribeToResult_1 = require("../util/subscribeToResult");
-function withLatestFrom() {
-    var args = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        args[_i] = arguments[_i];
-    }
-    return function (source) {
-        var project;
-        if (typeof args[args.length - 1] === 'function') {
-            project = args.pop();
-        }
-        var observables = args;
-        return source.lift(new WithLatestFromOperator(observables, project));
-    };
-}
-exports.withLatestFrom = withLatestFrom;
-var WithLatestFromOperator = (function () {
-    function WithLatestFromOperator(observables, project) {
-        this.observables = observables;
-        this.project = project;
-    }
-    WithLatestFromOperator.prototype.call = function (subscriber, source) {
-        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
-    };
-    return WithLatestFromOperator;
-}());
-var WithLatestFromSubscriber = (function (_super) {
-    __extends(WithLatestFromSubscriber, _super);
-    function WithLatestFromSubscriber(destination, observables, project) {
-        var _this = _super.call(this, destination) || this;
-        _this.observables = observables;
-        _this.project = project;
-        _this.toRespond = [];
-        var len = observables.length;
-        _this.values = new Array(len);
-        for (var i = 0; i < len; i++) {
-            _this.toRespond.push(i);
-        }
-        for (var i = 0; i < len; i++) {
-            var observable = observables[i];
-            _this.add(subscribeToResult_1.subscribeToResult(_this, observable, observable, i));
-        }
-        return _this;
-    }
-    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
-        this.values[outerIndex] = innerValue;
-        var toRespond = this.toRespond;
-        if (toRespond.length > 0) {
-            var found = toRespond.indexOf(outerIndex);
-            if (found !== -1) {
-                toRespond.splice(found, 1);
-            }
-        }
-    };
-    WithLatestFromSubscriber.prototype.notifyComplete = function () {
-    };
-    WithLatestFromSubscriber.prototype._next = function (value) {
-        if (this.toRespond.length === 0) {
-            var args = [value].concat(this.values);
-            if (this.project) {
-                this._tryProject(args);
-            }
-            else {
-                this.destination.next(args);
-            }
-        }
-    };
-    WithLatestFromSubscriber.prototype._tryProject = function (args) {
-        var result;
-        try {
-            result = this.project.apply(this, args);
-        }
-        catch (err) {
-            this.destination.error(err);
-            return;
-        }
-        this.destination.next(result);
-    };
-    return WithLatestFromSubscriber;
-}(OuterSubscriber_1.OuterSubscriber));
-//# sourceMappingURL=withLatestFrom.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/internal/operators/withLatestFrom.js.map
deleted file mode 100644
index 6547f7e..0000000
--- a/node_modules/rxjs/internal/operators/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/operators/zip.d.ts b/node_modules/rxjs/internal/operators/zip.d.ts
deleted file mode 100644
index eadea67..0000000
--- a/node_modules/rxjs/internal/operators/zip.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { ObservableInput, OperatorFunction } from '../types';
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, R>(array: Array<ObservableInput<T>>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export declare function zip<T, TOther, R>(array: Array<ObservableInput<TOther>>, project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;
diff --git a/node_modules/rxjs/internal/operators/zip.js b/node_modules/rxjs/internal/operators/zip.js
deleted file mode 100644
index 8e0620e..0000000
--- a/node_modules/rxjs/internal/operators/zip.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var zip_1 = require("../observable/zip");
-function zip() {
-    var observables = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        observables[_i] = arguments[_i];
-    }
-    return function zipOperatorFunction(source) {
-        return source.lift.call(zip_1.zip.apply(void 0, [source].concat(observables)));
-    };
-}
-exports.zip = zip;
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/zip.js.map b/node_modules/rxjs/internal/operators/zip.js.map
deleted file mode 100644
index 3396fe7..0000000
--- a/node_modules/rxjs/internal/operators/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../../src/internal/operators/zip.ts"],"names":[],"mappings":";;AAAA,yCAAqD;AAsCrD,SAAgB,GAAG;IAAO,qBAA4E;SAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,gBAAI,MAAM,SAAK,WAAW,GAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAJD,kBAIC"}
diff --git a/node_modules/rxjs/internal/operators/zipAll.d.ts b/node_modules/rxjs/internal/operators/zipAll.d.ts
deleted file mode 100644
index d14e5aa..0000000
--- a/node_modules/rxjs/internal/operators/zipAll.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { OperatorFunction, ObservableInput } from '../types';
-export declare function zipAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;
-export declare function zipAll<T>(): OperatorFunction<any, T[]>;
-export declare function zipAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;
-export declare function zipAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;
diff --git a/node_modules/rxjs/internal/operators/zipAll.js b/node_modules/rxjs/internal/operators/zipAll.js
deleted file mode 100644
index 40f88aa..0000000
--- a/node_modules/rxjs/internal/operators/zipAll.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var zip_1 = require("../observable/zip");
-function zipAll(project) {
-    return function (source) { return source.lift(new zip_1.ZipOperator(project)); };
-}
-exports.zipAll = zipAll;
-//# sourceMappingURL=zipAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/operators/zipAll.js.map b/node_modules/rxjs/internal/operators/zipAll.js.map
deleted file mode 100644
index b2e5895..0000000
--- a/node_modules/rxjs/internal/operators/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../../src/internal/operators/zipAll.ts"],"names":[],"mappings":";;AAAA,yCAAgD;AAShD,SAAgB,MAAM,CAAO,OAAsC;IACjE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAW,CAAC,OAAO,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAFD,wBAEC"}
diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts b/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts
deleted file mode 100644
index bd519ce..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.js b/node_modules/rxjs/internal/scheduled/scheduleArray.js
deleted file mode 100644
index 31938d2..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleArray.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-function scheduleArray(input, scheduler) {
-    return new Observable_1.Observable(function (subscriber) {
-        var sub = new Subscription_1.Subscription();
-        var i = 0;
-        sub.add(scheduler.schedule(function () {
-            if (i === input.length) {
-                subscriber.complete();
-                return;
-            }
-            subscriber.next(input[i++]);
-            if (!subscriber.closed) {
-                sub.add(this.schedule());
-            }
-        }));
-        return sub;
-    });
-}
-exports.scheduleArray = scheduleArray;
-//# sourceMappingURL=scheduleArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/internal/scheduled/scheduleArray.js.map
deleted file mode 100644
index 4fb17f3..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleArray.js","sources":["../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAE/C,SAAgB,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,sCAgBC"}
diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts b/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts
deleted file mode 100644
index baf3d96..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/internal/scheduled/scheduleIterable.js
deleted file mode 100644
index 3cf6bc0..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleIterable.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-var iterator_1 = require("../symbol/iterator");
-function scheduleIterable(input, scheduler) {
-    if (!input) {
-        throw new Error('Iterable cannot be null');
-    }
-    return new Observable_1.Observable(function (subscriber) {
-        var sub = new Subscription_1.Subscription();
-        var iterator;
-        sub.add(function () {
-            if (iterator && typeof iterator.return === 'function') {
-                iterator.return();
-            }
-        });
-        sub.add(scheduler.schedule(function () {
-            iterator = input[iterator_1.iterator]();
-            sub.add(scheduler.schedule(function () {
-                if (subscriber.closed) {
-                    return;
-                }
-                var value;
-                var done;
-                try {
-                    var result = iterator.next();
-                    value = result.value;
-                    done = result.done;
-                }
-                catch (err) {
-                    subscriber.error(err);
-                    return;
-                }
-                if (done) {
-                    subscriber.complete();
-                }
-                else {
-                    subscriber.next(value);
-                    this.schedule();
-                }
-            }));
-        }));
-        return sub;
-    });
-}
-exports.scheduleIterable = scheduleIterable;
-//# sourceMappingURL=scheduleIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map
deleted file mode 100644
index 018a115..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleIterable.js","sources":["../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAC/C,+CAAiE;AAEjE,SAAgB,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC;YAEN,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,QAAQ,GAAG,KAAK,CAAC,mBAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAvCD,4CAuCC"}
diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts b/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts
deleted file mode 100644
index 22b23b1..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { InteropObservable, SchedulerLike } from '../types';
-export declare function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/internal/scheduled/scheduleObservable.js
deleted file mode 100644
index 83e49c8..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleObservable.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-var observable_1 = require("../symbol/observable");
-function scheduleObservable(input, scheduler) {
-    return new Observable_1.Observable(function (subscriber) {
-        var sub = new Subscription_1.Subscription();
-        sub.add(scheduler.schedule(function () {
-            var observable = input[observable_1.observable]();
-            sub.add(observable.subscribe({
-                next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },
-                error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },
-                complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },
-            }));
-        }));
-        return sub;
-    });
-}
-exports.scheduleObservable = scheduleObservable;
-//# sourceMappingURL=scheduleObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map
deleted file mode 100644
index 14955a9..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduleObservable.js","sources":["../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,gDAA+C;AAC/C,mDAAuE;AAGvE,SAAgB,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAM,UAAU,GAAoB,KAAK,CAAC,uBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,YAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,YAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,gBAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,gDAaC"}
diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts b/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts
deleted file mode 100644
index 9d56ab0..0000000
--- a/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-export declare function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.js b/node_modules/rxjs/internal/scheduled/schedulePromise.js
deleted file mode 100644
index 826910d..0000000
--- a/node_modules/rxjs/internal/scheduled/schedulePromise.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-function schedulePromise(input, scheduler) {
-    return new Observable_1.Observable(function (subscriber) {
-        var sub = new Subscription_1.Subscription();
-        sub.add(scheduler.schedule(function () { return input.then(function (value) {
-            sub.add(scheduler.schedule(function () {
-                subscriber.next(value);
-                sub.add(scheduler.schedule(function () { return subscriber.complete(); }));
-            }));
-        }, function (err) {
-            sub.add(scheduler.schedule(function () { return subscriber.error(err); }));
-        }); }));
-        return sub;
-    });
-}
-exports.schedulePromise = schedulePromise;
-//# sourceMappingURL=schedulePromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/internal/scheduled/schedulePromise.js.map
deleted file mode 100644
index f38e834..0000000
--- a/node_modules/rxjs/internal/scheduled/schedulePromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"schedulePromise.js","sources":["../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAE/C,SAAgB,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CACzC,UAAA,KAAK;YACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,UAAA,GAAG;YACD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,EAVgC,CAUhC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,0CAgBC"}
diff --git a/node_modules/rxjs/internal/scheduled/scheduled.d.ts b/node_modules/rxjs/internal/scheduled/scheduled.d.ts
deleted file mode 100644
index 2f95c4e..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduled.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ObservableInput, SchedulerLike, Observable } from 'rxjs';
-/**
- * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions
- * are scheduled on the provided scheduler.
- *
- * @see from
- * @see of
- *
- * @param input The observable, array, promise, iterable, etc you would like to schedule
- * @param scheduler The scheduler to use to schedule the subscription and emissions from
- * the returned observable.
- */
-export declare function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;
diff --git a/node_modules/rxjs/internal/scheduled/scheduled.js b/node_modules/rxjs/internal/scheduled/scheduled.js
deleted file mode 100644
index 4fd1554..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduled.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var scheduleObservable_1 = require("./scheduleObservable");
-var schedulePromise_1 = require("./schedulePromise");
-var scheduleArray_1 = require("./scheduleArray");
-var scheduleIterable_1 = require("./scheduleIterable");
-var isInteropObservable_1 = require("../util/isInteropObservable");
-var isPromise_1 = require("../util/isPromise");
-var isArrayLike_1 = require("../util/isArrayLike");
-var isIterable_1 = require("../util/isIterable");
-function scheduled(input, scheduler) {
-    if (input != null) {
-        if (isInteropObservable_1.isInteropObservable(input)) {
-            return scheduleObservable_1.scheduleObservable(input, scheduler);
-        }
-        else if (isPromise_1.isPromise(input)) {
-            return schedulePromise_1.schedulePromise(input, scheduler);
-        }
-        else if (isArrayLike_1.isArrayLike(input)) {
-            return scheduleArray_1.scheduleArray(input, scheduler);
-        }
-        else if (isIterable_1.isIterable(input) || typeof input === 'string') {
-            return scheduleIterable_1.scheduleIterable(input, scheduler);
-        }
-    }
-    throw new TypeError((input !== null && typeof input || input) + ' is not observable');
-}
-exports.scheduled = scheduled;
-//# sourceMappingURL=scheduled.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduled/scheduled.js.map b/node_modules/rxjs/internal/scheduled/scheduled.js.map
deleted file mode 100644
index 5d9e86c..0000000
--- a/node_modules/rxjs/internal/scheduled/scheduled.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scheduled.js","sources":["../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":";;AAAA,2DAA0D;AAC1D,qDAAoD;AACpD,iDAAgD;AAChD,uDAAsD;AAEtD,mEAAkE;AAClE,+CAA8C;AAC9C,mDAAkD;AAClD,iDAAgD;AAahD,SAAgB,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,yCAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,uCAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,qBAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,yBAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,6BAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,mCAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC;AAdD,8BAcC"}
diff --git a/node_modules/rxjs/internal/scheduler/Action.d.ts b/node_modules/rxjs/internal/scheduler/Action.d.ts
deleted file mode 100644
index f1a860a..0000000
--- a/node_modules/rxjs/internal/scheduler/Action.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { Subscription } from '../Subscription';
-import { SchedulerAction } from '../types';
-/**
- * A unit of work to be executed in a `scheduler`. An action is typically
- * created from within a {@link SchedulerLike} and an RxJS user does not need to concern
- * themselves about creating and manipulating an Action.
- *
- * ```ts
- * class Action<T> extends Subscription {
- *   new (scheduler: Scheduler, work: (state?: T) => void);
- *   schedule(state?: T, delay: number = 0): Subscription;
- * }
- * ```
- *
- * @class Action<T>
- */
-export declare class Action<T> extends Subscription {
-    constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void);
-    /**
-     * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed
-     * some context object, `state`. May happen at some point in the future,
-     * according to the `delay` parameter, if specified.
-     * @param {T} [state] Some contextual data that the `work` function uses when
-     * called by the Scheduler.
-     * @param {number} [delay] Time to wait before executing the work, where the
-     * time unit is implicit and defined by the Scheduler.
-     * @return {void}
-     */
-    schedule(state?: T, delay?: number): Subscription;
-}
diff --git a/node_modules/rxjs/internal/scheduler/Action.js b/node_modules/rxjs/internal/scheduler/Action.js
deleted file mode 100644
index 6c4e62c..0000000
--- a/node_modules/rxjs/internal/scheduler/Action.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscription_1 = require("../Subscription");
-var Action = (function (_super) {
-    __extends(Action, _super);
-    function Action(scheduler, work) {
-        return _super.call(this) || this;
-    }
-    Action.prototype.schedule = function (state, delay) {
-        if (delay === void 0) { delay = 0; }
-        return this;
-    };
-    return Action;
-}(Subscription_1.Subscription));
-exports.Action = Action;
-//# sourceMappingURL=Action.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/Action.js.map b/node_modules/rxjs/internal/scheduler/Action.js.map
deleted file mode 100644
index bd02c3a..0000000
--- a/node_modules/rxjs/internal/scheduler/Action.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Action.js","sources":["../../src/internal/scheduler/Action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gDAA+C;AAiB/C;IAA+B,0BAAY;IACzC,gBAAY,SAAoB,EAAE,IAAmD;eACnF,iBAAO;IACT,CAAC;IAWM,yBAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,CAA+B,2BAAY,GAiB1C;AAjBY,wBAAM"}
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts
deleted file mode 100644
index 5ff0afa..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-import { SchedulerAction } from '../types';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class AnimationFrameAction<T> extends AsyncAction<T> {
-    protected scheduler: AnimationFrameScheduler;
-    protected work: (this: SchedulerAction<T>, state?: T) => void;
-    constructor(scheduler: AnimationFrameScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
-    protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any;
-    protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js
deleted file mode 100644
index 92625aa..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncAction_1 = require("./AsyncAction");
-var AnimationFrameAction = (function (_super) {
-    __extends(AnimationFrameAction, _super);
-    function AnimationFrameAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (delay !== null && delay > 0) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));
-    };
-    AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            cancelAnimationFrame(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    };
-    return AnimationFrameAction;
-}(AsyncAction_1.AsyncAction));
-exports.AnimationFrameAction = AnimationFrameAction;
-//# sourceMappingURL=AnimationFrameAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map
deleted file mode 100644
index 570c451..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameAction.js","sources":["../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA4C;AAS5C;IAA6C,wCAAc;IAEzD,8BAAsB,SAAkC,EAClC,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAyB;QAClC,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AArCD,CAA6C,yBAAW,GAqCvD;AArCY,oDAAoB"}
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts
deleted file mode 100644
index ff6d5fb..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-export declare class AnimationFrameScheduler extends AsyncScheduler {
-    flush(action?: AsyncAction<any>): void;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js
deleted file mode 100644
index 79ffe05..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncScheduler_1 = require("./AsyncScheduler");
-var AnimationFrameScheduler = (function (_super) {
-    __extends(AnimationFrameScheduler, _super);
-    function AnimationFrameScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    AnimationFrameScheduler.prototype.flush = function (action) {
-        this.active = true;
-        this.scheduled = undefined;
-        var actions = this.actions;
-        var error;
-        var index = -1;
-        var count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AnimationFrameScheduler;
-}(AsyncScheduler_1.AsyncScheduler));
-exports.AnimationFrameScheduler = AnimationFrameScheduler;
-//# sourceMappingURL=AnimationFrameScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map
deleted file mode 100644
index 7f5bfa5..0000000
--- a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAkD;AAElD;IAA6C,2CAAc;IAA3D;;IA2BA,CAAC;IA1BQ,uCAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,AA3BD,CAA6C,+BAAc,GA2B1D;AA3BY,0DAAuB"}
diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.d.ts b/node_modules/rxjs/internal/scheduler/AsapAction.d.ts
deleted file mode 100644
index cafb969..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapAction.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsapScheduler } from './AsapScheduler';
-import { SchedulerAction } from '../types';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class AsapAction<T> extends AsyncAction<T> {
-    protected scheduler: AsapScheduler;
-    protected work: (this: SchedulerAction<T>, state?: T) => void;
-    constructor(scheduler: AsapScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
-    protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any;
-    protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.js b/node_modules/rxjs/internal/scheduler/AsapAction.js
deleted file mode 100644
index 021809e..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapAction.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Immediate_1 = require("../util/Immediate");
-var AsyncAction_1 = require("./AsyncAction");
-var AsapAction = (function (_super) {
-    __extends(AsapAction, _super);
-    function AsapAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (delay !== null && delay > 0) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        scheduler.actions.push(this);
-        return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));
-    };
-    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
-        }
-        if (scheduler.actions.length === 0) {
-            Immediate_1.Immediate.clearImmediate(id);
-            scheduler.scheduled = undefined;
-        }
-        return undefined;
-    };
-    return AsapAction;
-}(AsyncAction_1.AsyncAction));
-exports.AsapAction = AsapAction;
-//# sourceMappingURL=AsapAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/internal/scheduler/AsapAction.js.map
deleted file mode 100644
index 2c8f130..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapAction.js","sources":["../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,6CAA4C;AAQ5C;IAAmC,8BAAc;IAE/C,oBAAsB,SAAwB,EACxB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAe;QACxB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,qBAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,iBAAC;AAAD,CAAC,AAtCD,CAAmC,yBAAW,GAsC7C;AAtCY,gCAAU"}
diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts
deleted file mode 100644
index 708c6c9..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-export declare class AsapScheduler extends AsyncScheduler {
-    flush(action?: AsyncAction<any>): void;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/internal/scheduler/AsapScheduler.js
deleted file mode 100644
index b66249d..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapScheduler.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncScheduler_1 = require("./AsyncScheduler");
-var AsapScheduler = (function (_super) {
-    __extends(AsapScheduler, _super);
-    function AsapScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    AsapScheduler.prototype.flush = function (action) {
-        this.active = true;
-        this.scheduled = undefined;
-        var actions = this.actions;
-        var error;
-        var index = -1;
-        var count = actions.length;
-        action = action || actions.shift();
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (++index < count && (action = actions.shift()));
-        this.active = false;
-        if (error) {
-            while (++index < count && (action = actions.shift())) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AsapScheduler;
-}(AsyncScheduler_1.AsyncScheduler));
-exports.AsapScheduler = AsapScheduler;
-//# sourceMappingURL=AsapScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map
deleted file mode 100644
index 193eb05..0000000
--- a/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsapScheduler.js","sources":["../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAkD;AAElD;IAAmC,iCAAc;IAAjD;;IA2BA,CAAC;IA1BQ,6BAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA3BD,CAAmC,+BAAc,GA2BhD;AA3BY,sCAAa"}
diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts b/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts
deleted file mode 100644
index b4f5d0c..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Action } from './Action';
-import { SchedulerAction } from '../types';
-import { Subscription } from '../Subscription';
-import { AsyncScheduler } from './AsyncScheduler';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class AsyncAction<T> extends Action<T> {
-    protected scheduler: AsyncScheduler;
-    protected work: (this: SchedulerAction<T>, state?: T) => void;
-    id: any;
-    state: T;
-    delay: number;
-    protected pending: boolean;
-    constructor(scheduler: AsyncScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
-    schedule(state?: T, delay?: number): Subscription;
-    protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay?: number): any;
-    protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay?: number): any;
-    /**
-     * Immediately executes this action and the `work` it contains.
-     * @return {any}
-     */
-    execute(state: T, delay: number): any;
-    protected _execute(state: T, delay: number): any;
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _unsubscribe(): void;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.js b/node_modules/rxjs/internal/scheduler/AsyncAction.js
deleted file mode 100644
index 123d707..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncAction.js
+++ /dev/null
@@ -1,102 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Action_1 = require("./Action");
-var AsyncAction = (function (_super) {
-    __extends(AsyncAction, _super);
-    function AsyncAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        _this.pending = false;
-        return _this;
-    }
-    AsyncAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (this.closed) {
-            return this;
-        }
-        this.state = state;
-        var id = this.id;
-        var scheduler = this.scheduler;
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, delay);
-        }
-        this.pending = true;
-        this.delay = delay;
-        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
-        return this;
-    };
-    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        return setInterval(scheduler.flush.bind(scheduler, this), delay);
-    };
-    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (delay !== null && this.delay === delay && this.pending === false) {
-            return id;
-        }
-        clearInterval(id);
-        return undefined;
-    };
-    AsyncAction.prototype.execute = function (state, delay) {
-        if (this.closed) {
-            return new Error('executing a cancelled action');
-        }
-        this.pending = false;
-        var error = this._execute(state, delay);
-        if (error) {
-            return error;
-        }
-        else if (this.pending === false && this.id != null) {
-            this.id = this.recycleAsyncId(this.scheduler, this.id, null);
-        }
-    };
-    AsyncAction.prototype._execute = function (state, delay) {
-        var errored = false;
-        var errorValue = undefined;
-        try {
-            this.work(state);
-        }
-        catch (e) {
-            errored = true;
-            errorValue = !!e && e || new Error(e);
-        }
-        if (errored) {
-            this.unsubscribe();
-            return errorValue;
-        }
-    };
-    AsyncAction.prototype._unsubscribe = function () {
-        var id = this.id;
-        var scheduler = this.scheduler;
-        var actions = scheduler.actions;
-        var index = actions.indexOf(this);
-        this.work = null;
-        this.state = null;
-        this.pending = false;
-        this.scheduler = null;
-        if (index !== -1) {
-            actions.splice(index, 1);
-        }
-        if (id != null) {
-            this.id = this.recycleAsyncId(scheduler, id, null);
-        }
-        this.delay = null;
-    };
-    return AsyncAction;
-}(Action_1.Action));
-exports.AsyncAction = AsyncAction;
-//# sourceMappingURL=AsyncAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/internal/scheduler/AsyncAction.js.map
deleted file mode 100644
index 65b5273..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncAction.js","sources":["../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts
deleted file mode 100644
index 950adea..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { Action } from './Action';
-import { AsyncAction } from './AsyncAction';
-import { SchedulerAction } from '../types';
-import { Subscription } from '../Subscription';
-export declare class AsyncScheduler extends Scheduler {
-    static delegate?: Scheduler;
-    actions: Array<AsyncAction<any>>;
-    /**
-     * A flag to indicate whether the Scheduler is currently executing a batch of
-     * queued actions.
-     * @type {boolean}
-     * @deprecated internal use only
-     */
-    active: boolean;
-    /**
-     * An internal ID used to track the latest asynchronous task such as those
-     * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and
-     * others.
-     * @type {any}
-     * @deprecated internal use only
-     */
-    scheduled: any;
-    constructor(SchedulerAction: typeof Action, now?: () => number);
-    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
-    flush(action: AsyncAction<any>): void;
-}
diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js
deleted file mode 100644
index 10e9a12..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Scheduler_1 = require("../Scheduler");
-var AsyncScheduler = (function (_super) {
-    __extends(AsyncScheduler, _super);
-    function AsyncScheduler(SchedulerAction, now) {
-        if (now === void 0) { now = Scheduler_1.Scheduler.now; }
-        var _this = _super.call(this, SchedulerAction, function () {
-            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {
-                return AsyncScheduler.delegate.now();
-            }
-            else {
-                return now();
-            }
-        }) || this;
-        _this.actions = [];
-        _this.active = false;
-        _this.scheduled = undefined;
-        return _this;
-    }
-    AsyncScheduler.prototype.schedule = function (work, delay, state) {
-        if (delay === void 0) { delay = 0; }
-        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-            return AsyncScheduler.delegate.schedule(work, delay, state);
-        }
-        else {
-            return _super.prototype.schedule.call(this, work, delay, state);
-        }
-    };
-    AsyncScheduler.prototype.flush = function (action) {
-        var actions = this.actions;
-        if (this.active) {
-            actions.push(action);
-            return;
-        }
-        var error;
-        this.active = true;
-        do {
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        } while (action = actions.shift());
-        this.active = false;
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    return AsyncScheduler;
-}(Scheduler_1.Scheduler));
-exports.AsyncScheduler = AsyncScheduler;
-//# sourceMappingURL=AsyncScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map
deleted file mode 100644
index c710074..0000000
--- a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AsyncScheduler.js","sources":["../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0CAAyC;AAMzC;IAAoC,kCAAS;IAmB3C,wBAAY,eAA8B,EAC9B,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,qBAAS,CAAC,GAAG;QAD7C,YAEE,kBAAM,eAAe,EAAE;YACrB,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,KAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,SACH;QA1BM,aAAO,GAA4B,EAAE,CAAC;QAOtC,YAAM,GAAY,KAAK,CAAC;QAQxB,eAAS,GAAQ,SAAS,CAAC;;IAWlC,CAAC;IAEM,iCAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,iBAAM,QAAQ,YAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,8BAAK,GAAZ,UAAa,MAAwB;QAE5B,IAAA,sBAAO,CAAS;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjED,CAAoC,qBAAS,GAiE5C;AAjEY,wCAAc"}
diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.d.ts b/node_modules/rxjs/internal/scheduler/QueueAction.d.ts
deleted file mode 100644
index e263c30..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueAction.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { Subscription } from '../Subscription';
-import { QueueScheduler } from './QueueScheduler';
-import { SchedulerAction } from '../types';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class QueueAction<T> extends AsyncAction<T> {
-    protected scheduler: QueueScheduler;
-    protected work: (this: SchedulerAction<T>, state?: T) => void;
-    constructor(scheduler: QueueScheduler, work: (this: SchedulerAction<T>, state?: T) => void);
-    schedule(state?: T, delay?: number): Subscription;
-    execute(state: T, delay: number): any;
-    protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay?: number): any;
-}
diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.js b/node_modules/rxjs/internal/scheduler/QueueAction.js
deleted file mode 100644
index ded9219..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueAction.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncAction_1 = require("./AsyncAction");
-var QueueAction = (function (_super) {
-    __extends(QueueAction, _super);
-    function QueueAction(scheduler, work) {
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        return _this;
-    }
-    QueueAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (delay > 0) {
-            return _super.prototype.schedule.call(this, state, delay);
-        }
-        this.delay = delay;
-        this.state = state;
-        this.scheduler.flush(this);
-        return this;
-    };
-    QueueAction.prototype.execute = function (state, delay) {
-        return (delay > 0 || this.closed) ?
-            _super.prototype.execute.call(this, state, delay) :
-            this._execute(state, delay);
-    };
-    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
-        }
-        return scheduler.flush(this);
-    };
-    return QueueAction;
-}(AsyncAction_1.AsyncAction));
-exports.QueueAction = QueueAction;
-//# sourceMappingURL=QueueAction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/internal/scheduler/QueueAction.js.map
deleted file mode 100644
index bf808e1..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueAction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueAction.js","sources":["../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA4C;AAU5C;IAAoC,+BAAc;IAEhD,qBAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAEM,8BAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,iBAAM,QAAQ,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAO,GAAd,UAAe,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,iBAAM,OAAO,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,kBAAC;AAAD,CAAC,AAjCD,CAAoC,yBAAW,GAiC9C;AAjCY,kCAAW"}
diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts b/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts
deleted file mode 100644
index bdde0f6..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-export declare class QueueScheduler extends AsyncScheduler {
-}
diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/internal/scheduler/QueueScheduler.js
deleted file mode 100644
index e831d1d..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueScheduler.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncScheduler_1 = require("./AsyncScheduler");
-var QueueScheduler = (function (_super) {
-    __extends(QueueScheduler, _super);
-    function QueueScheduler() {
-        return _super !== null && _super.apply(this, arguments) || this;
-    }
-    return QueueScheduler;
-}(AsyncScheduler_1.AsyncScheduler));
-exports.QueueScheduler = QueueScheduler;
-//# sourceMappingURL=QueueScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map
deleted file mode 100644
index 618ceec..0000000
--- a/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"QueueScheduler.js","sources":["../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAkD;AAElD;IAAoC,kCAAc;IAAlD;;IACA,CAAC;IAAD,qBAAC;AAAD,CAAC,AADD,CAAoC,+BAAc,GACjD;AADY,wCAAc"}
diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts
deleted file mode 100644
index ef062b1..0000000
--- a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { Subscription } from '../Subscription';
-import { AsyncScheduler } from './AsyncScheduler';
-import { SchedulerAction } from '../types';
-export declare class VirtualTimeScheduler extends AsyncScheduler {
-    maxFrames: number;
-    protected static frameTimeFactor: number;
-    frame: number;
-    index: number;
-    constructor(SchedulerAction?: typeof AsyncAction, maxFrames?: number);
-    /**
-     * Prompt the Scheduler to execute all of its queued actions, therefore
-     * clearing its queue.
-     * @return {void}
-     */
-    flush(): void;
-}
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @nodoc
- */
-export declare class VirtualAction<T> extends AsyncAction<T> {
-    protected scheduler: VirtualTimeScheduler;
-    protected work: (this: SchedulerAction<T>, state?: T) => void;
-    protected index: number;
-    protected active: boolean;
-    constructor(scheduler: VirtualTimeScheduler, work: (this: SchedulerAction<T>, state?: T) => void, index?: number);
-    schedule(state?: T, delay?: number): Subscription;
-    protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any;
-    protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any;
-    protected _execute(state: T, delay: number): any;
-    static sortActions<T>(a: VirtualAction<T>, b: VirtualAction<T>): 1 | 0 | -1;
-}
diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js
deleted file mode 100644
index fcf7da0..0000000
--- a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js
+++ /dev/null
@@ -1,111 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncAction_1 = require("./AsyncAction");
-var AsyncScheduler_1 = require("./AsyncScheduler");
-var VirtualTimeScheduler = (function (_super) {
-    __extends(VirtualTimeScheduler, _super);
-    function VirtualTimeScheduler(SchedulerAction, maxFrames) {
-        if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }
-        if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }
-        var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;
-        _this.maxFrames = maxFrames;
-        _this.frame = 0;
-        _this.index = -1;
-        return _this;
-    }
-    VirtualTimeScheduler.prototype.flush = function () {
-        var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
-        var error, action;
-        while ((action = actions[0]) && action.delay <= maxFrames) {
-            actions.shift();
-            this.frame = action.delay;
-            if (error = action.execute(action.state, action.delay)) {
-                break;
-            }
-        }
-        if (error) {
-            while (action = actions.shift()) {
-                action.unsubscribe();
-            }
-            throw error;
-        }
-    };
-    VirtualTimeScheduler.frameTimeFactor = 10;
-    return VirtualTimeScheduler;
-}(AsyncScheduler_1.AsyncScheduler));
-exports.VirtualTimeScheduler = VirtualTimeScheduler;
-var VirtualAction = (function (_super) {
-    __extends(VirtualAction, _super);
-    function VirtualAction(scheduler, work, index) {
-        if (index === void 0) { index = scheduler.index += 1; }
-        var _this = _super.call(this, scheduler, work) || this;
-        _this.scheduler = scheduler;
-        _this.work = work;
-        _this.index = index;
-        _this.active = true;
-        _this.index = scheduler.index = index;
-        return _this;
-    }
-    VirtualAction.prototype.schedule = function (state, delay) {
-        if (delay === void 0) { delay = 0; }
-        if (!this.id) {
-            return _super.prototype.schedule.call(this, state, delay);
-        }
-        this.active = false;
-        var action = new VirtualAction(this.scheduler, this.work);
-        this.add(action);
-        return action.schedule(state, delay);
-    };
-    VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        this.delay = scheduler.frame + delay;
-        var actions = scheduler.actions;
-        actions.push(this);
-        actions.sort(VirtualAction.sortActions);
-        return true;
-    };
-    VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
-        if (delay === void 0) { delay = 0; }
-        return undefined;
-    };
-    VirtualAction.prototype._execute = function (state, delay) {
-        if (this.active === true) {
-            return _super.prototype._execute.call(this, state, delay);
-        }
-    };
-    VirtualAction.sortActions = function (a, b) {
-        if (a.delay === b.delay) {
-            if (a.index === b.index) {
-                return 0;
-            }
-            else if (a.index > b.index) {
-                return 1;
-            }
-            else {
-                return -1;
-            }
-        }
-        else if (a.delay > b.delay) {
-            return 1;
-        }
-        else {
-            return -1;
-        }
-    };
-    return VirtualAction;
-}(AsyncAction_1.AsyncAction));
-exports.VirtualAction = VirtualAction;
-//# sourceMappingURL=VirtualTimeScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map
deleted file mode 100644
index 2f0c0f0..0000000
--- a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.d.ts b/node_modules/rxjs/internal/scheduler/animationFrame.d.ts
deleted file mode 100644
index 5ca2936..0000000
--- a/node_modules/rxjs/internal/scheduler/animationFrame.d.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-/**
- *
- * Animation Frame Scheduler
- *
- * <span class="informal">Perform task when `window.requestAnimationFrame` would fire</span>
- *
- * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler
- * behaviour.
- *
- * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.
- * It makes sure scheduled task will happen just before next browser content repaint,
- * thus performing animations as efficiently as possible.
- *
- * ## Example
- * Schedule div height animation
- * ```ts
- * // html: <div style="background: #0ff;"></div>
- * import { animationFrameScheduler } from 'rxjs';
- *
- * const div = document.querySelector('div');
- *
- * animationFrameScheduler.schedule(function(height) {
- *   div.style.height = height + "px";
- *
- *   this.schedule(height + 1);  // `this` references currently executing Action,
- *                               // which we reschedule with new state
- * }, 0, 0);
- *
- * // You will see a div element growing in height
- * ```
- *
- * @static true
- * @name animationFrame
- * @owner Scheduler
- */
-export declare const animationFrame: AnimationFrameScheduler;
diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.js b/node_modules/rxjs/internal/scheduler/animationFrame.js
deleted file mode 100644
index b1329a0..0000000
--- a/node_modules/rxjs/internal/scheduler/animationFrame.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AnimationFrameAction_1 = require("./AnimationFrameAction");
-var AnimationFrameScheduler_1 = require("./AnimationFrameScheduler");
-exports.animationFrame = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction);
-//# sourceMappingURL=animationFrame.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/internal/scheduler/animationFrame.js.map
deleted file mode 100644
index cdbd954..0000000
--- a/node_modules/rxjs/internal/scheduler/animationFrame.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"animationFrame.js","sources":["../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAC9D,qEAAoE;AAsCvD,QAAA,cAAc,GAAG,IAAI,iDAAuB,CAAC,2CAAoB,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/scheduler/asap.d.ts b/node_modules/rxjs/internal/scheduler/asap.d.ts
deleted file mode 100644
index c423fe5..0000000
--- a/node_modules/rxjs/internal/scheduler/asap.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { AsapScheduler } from './AsapScheduler';
-/**
- *
- * Asap Scheduler
- *
- * <span class="informal">Perform task as fast as it can be performed asynchronously</span>
- *
- * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task
- * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing
- * code to end and then it will try to execute given task as fast as possible.
- *
- * `asap` scheduler will do its best to minimize time between end of currently executing code
- * and start of scheduled task. This makes it best candidate for performing so called "deferring".
- * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves
- * some (although minimal) unwanted delay.
- *
- * Note that using `asap` scheduler does not necessarily mean that your task will be first to process
- * after currently executing code. In particular, if some task was also scheduled with `asap` before,
- * that task will execute first. That being said, if you need to schedule task asynchronously, but
- * as soon as possible, `asap` scheduler is your best bet.
- *
- * ## Example
- * Compare async and asap scheduler<
- * ```ts
- * import { asapScheduler, asyncScheduler } from 'rxjs';
- *
- * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...
- * asapScheduler.schedule(() => console.log('asap'));
- *
- * // Logs:
- * // "asap"
- * // "async"
- * // ... but 'asap' goes first!
- * ```
- * @static true
- * @name asap
- * @owner Scheduler
- */
-export declare const asap: AsapScheduler;
diff --git a/node_modules/rxjs/internal/scheduler/asap.js b/node_modules/rxjs/internal/scheduler/asap.js
deleted file mode 100644
index 5fe7d29..0000000
--- a/node_modules/rxjs/internal/scheduler/asap.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsapAction_1 = require("./AsapAction");
-var AsapScheduler_1 = require("./AsapScheduler");
-exports.asap = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);
-//# sourceMappingURL=asap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/asap.js.map b/node_modules/rxjs/internal/scheduler/asap.js.map
deleted file mode 100644
index 1e2595b..0000000
--- a/node_modules/rxjs/internal/scheduler/asap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"asap.js","sources":["../../src/internal/scheduler/asap.ts"],"names":[],"mappings":";;AAAA,2CAA0C;AAC1C,iDAAgD;AAwCnC,QAAA,IAAI,GAAG,IAAI,6BAAa,CAAC,uBAAU,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/scheduler/async.d.ts b/node_modules/rxjs/internal/scheduler/async.d.ts
deleted file mode 100644
index 8700792..0000000
--- a/node_modules/rxjs/internal/scheduler/async.d.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-/**
- *
- * Async Scheduler
- *
- * <span class="informal">Schedule task as if you used setTimeout(task, duration)</span>
- *
- * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript
- * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating
- * in intervals.
- *
- * If you just want to "defer" task, that is to perform it right after currently
- * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),
- * better choice will be the {@link asapScheduler} scheduler.
- *
- * ## Examples
- * Use async scheduler to delay task
- * ```ts
- * import { asyncScheduler } from 'rxjs';
- *
- * const task = () => console.log('it works!');
- *
- * asyncScheduler.schedule(task, 2000);
- *
- * // After 2 seconds logs:
- * // "it works!"
- * ```
- *
- * Use async scheduler to repeat task in intervals
- * ```ts
- * import { asyncScheduler } from 'rxjs';
- *
- * function task(state) {
- *   console.log(state);
- *   this.schedule(state + 1, 1000); // `this` references currently executing Action,
- *                                   // which we reschedule with new state and delay
- * }
- *
- * asyncScheduler.schedule(task, 3000, 0);
- *
- * // Logs:
- * // 0 after 3s
- * // 1 after 4s
- * // 2 after 5s
- * // 3 after 6s
- * ```
- *
- * @static true
- * @name async
- * @owner Scheduler
- */
-export declare const async: AsyncScheduler;
diff --git a/node_modules/rxjs/internal/scheduler/async.js b/node_modules/rxjs/internal/scheduler/async.js
deleted file mode 100644
index 2a91f47..0000000
--- a/node_modules/rxjs/internal/scheduler/async.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var AsyncAction_1 = require("./AsyncAction");
-var AsyncScheduler_1 = require("./AsyncScheduler");
-exports.async = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);
-//# sourceMappingURL=async.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/async.js.map b/node_modules/rxjs/internal/scheduler/async.js.map
deleted file mode 100644
index 6618989..0000000
--- a/node_modules/rxjs/internal/scheduler/async.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"async.js","sources":["../../src/internal/scheduler/async.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,mDAAkD;AAqDrC,QAAA,KAAK,GAAG,IAAI,+BAAc,CAAC,yBAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/scheduler/queue.d.ts b/node_modules/rxjs/internal/scheduler/queue.d.ts
deleted file mode 100644
index 1a59c06..0000000
--- a/node_modules/rxjs/internal/scheduler/queue.d.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { QueueScheduler } from './QueueScheduler';
-/**
- *
- * Queue Scheduler
- *
- * <span class="informal">Put every next task on a queue, instead of executing it immediately</span>
- *
- * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.
- *
- * When used without delay, it schedules given task synchronously - executes it right when
- * it is scheduled. However when called recursively, that is when inside the scheduled task,
- * another task is scheduled with queue scheduler, instead of executing immediately as well,
- * that task will be put on a queue and wait for current one to finish.
- *
- * This means that when you execute task with `queue` scheduler, you are sure it will end
- * before any other task scheduled with that scheduler will start.
- *
- * ## Examples
- * Schedule recursively first, then do something
- * ```ts
- * import { queueScheduler } from 'rxjs';
- *
- * queueScheduler.schedule(() => {
- *   queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue
- *
- *   console.log('first');
- * });
- *
- * // Logs:
- * // "first"
- * // "second"
- * ```
- *
- * Reschedule itself recursively
- * ```ts
- * import { queueScheduler } from 'rxjs';
- *
- * queueScheduler.schedule(function(state) {
- *   if (state !== 0) {
- *     console.log('before', state);
- *     this.schedule(state - 1); // `this` references currently executing Action,
- *                               // which we reschedule with new state
- *     console.log('after', state);
- *   }
- * }, 0, 3);
- *
- * // In scheduler that runs recursively, you would expect:
- * // "before", 3
- * // "before", 2
- * // "before", 1
- * // "after", 1
- * // "after", 2
- * // "after", 3
- *
- * // But with queue it logs:
- * // "before", 3
- * // "after", 3
- * // "before", 2
- * // "after", 2
- * // "before", 1
- * // "after", 1
- * ```
- *
- * @static true
- * @name queue
- * @owner Scheduler
- */
-export declare const queue: QueueScheduler;
diff --git a/node_modules/rxjs/internal/scheduler/queue.js b/node_modules/rxjs/internal/scheduler/queue.js
deleted file mode 100644
index 4a08520..0000000
--- a/node_modules/rxjs/internal/scheduler/queue.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var QueueAction_1 = require("./QueueAction");
-var QueueScheduler_1 = require("./QueueScheduler");
-exports.queue = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);
-//# sourceMappingURL=queue.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/scheduler/queue.js.map b/node_modules/rxjs/internal/scheduler/queue.js.map
deleted file mode 100644
index 2ef8154..0000000
--- a/node_modules/rxjs/internal/scheduler/queue.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"queue.js","sources":["../../src/internal/scheduler/queue.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,mDAAkD;AAqErC,QAAA,KAAK,GAAG,IAAI,+BAAc,CAAC,yBAAW,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/symbol/iterator.d.ts b/node_modules/rxjs/internal/symbol/iterator.d.ts
deleted file mode 100644
index edce2b4..0000000
--- a/node_modules/rxjs/internal/symbol/iterator.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export declare function getSymbolIterator(): symbol;
-export declare const iterator: symbol;
-/**
- * @deprecated use {@link iterator} instead
- */
-export declare const $$iterator: symbol;
diff --git a/node_modules/rxjs/internal/symbol/iterator.js b/node_modules/rxjs/internal/symbol/iterator.js
deleted file mode 100644
index 3855934..0000000
--- a/node_modules/rxjs/internal/symbol/iterator.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function getSymbolIterator() {
-    if (typeof Symbol !== 'function' || !Symbol.iterator) {
-        return '@@iterator';
-    }
-    return Symbol.iterator;
-}
-exports.getSymbolIterator = getSymbolIterator;
-exports.iterator = getSymbolIterator();
-exports.$$iterator = exports.iterator;
-//# sourceMappingURL=iterator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/symbol/iterator.js.map b/node_modules/rxjs/internal/symbol/iterator.js.map
deleted file mode 100644
index c140dc4..0000000
--- a/node_modules/rxjs/internal/symbol/iterator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iterator.js","sources":["../../src/internal/symbol/iterator.ts"],"names":[],"mappings":";;AAAA,SAAgB,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAND,8CAMC;AAEY,QAAA,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK/B,QAAA,UAAU,GAAG,gBAAQ,CAAC"}
diff --git a/node_modules/rxjs/internal/symbol/observable.d.ts b/node_modules/rxjs/internal/symbol/observable.d.ts
deleted file mode 100644
index 7d27016..0000000
--- a/node_modules/rxjs/internal/symbol/observable.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/** Symbol.observable addition */
-declare global {
-    interface SymbolConstructor {
-        readonly observable: symbol;
-    }
-}
-/** Symbol.observable or a string "@@observable". Used for interop */
-export declare const observable: string | symbol;
diff --git a/node_modules/rxjs/internal/symbol/observable.js b/node_modules/rxjs/internal/symbol/observable.js
deleted file mode 100644
index ddf72de..0000000
--- a/node_modules/rxjs/internal/symbol/observable.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();
-//# sourceMappingURL=observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/symbol/observable.js.map b/node_modules/rxjs/internal/symbol/observable.js.map
deleted file mode 100644
index 49e2047..0000000
--- a/node_modules/rxjs/internal/symbol/observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observable.js","sources":["../../src/internal/symbol/observable.ts"],"names":[],"mappings":";;AAUa,QAAA,UAAU,GAAG,CAAC,cAAM,OAAA,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,EAAnE,CAAmE,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts b/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts
deleted file mode 100644
index 20da948..0000000
--- a/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/** @deprecated do not use, this is no longer checked by RxJS internals */
-export declare const rxSubscriber: string | symbol;
-/**
- * @deprecated use rxSubscriber instead
- */
-export declare const $$rxSubscriber: string | symbol;
diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.js b/node_modules/rxjs/internal/symbol/rxSubscriber.js
deleted file mode 100644
index dfddcd1..0000000
--- a/node_modules/rxjs/internal/symbol/rxSubscriber.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.rxSubscriber = (function () {
-    return typeof Symbol === 'function'
-        ? Symbol('rxSubscriber')
-        : '@@rxSubscriber_' + Math.random();
-})();
-exports.$$rxSubscriber = exports.rxSubscriber;
-//# sourceMappingURL=rxSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/internal/symbol/rxSubscriber.js.map
deleted file mode 100644
index f739995..0000000
--- a/node_modules/rxjs/internal/symbol/rxSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rxSubscriber.js","sources":["../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":";;AACa,QAAA,YAAY,GAAG,CAAC;IAC3B,OAAA,OAAO,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE;AAFrC,CAEqC,CAAC,EAAE,CAAC;AAK9B,QAAA,cAAc,GAAG,oBAAY,CAAC"}
diff --git a/node_modules/rxjs/internal/testing/ColdObservable.d.ts b/node_modules/rxjs/internal/testing/ColdObservable.d.ts
deleted file mode 100644
index b1d4a76..0000000
--- a/node_modules/rxjs/internal/testing/ColdObservable.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Observable } from '../Observable';
-import { Scheduler } from '../Scheduler';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { Subscriber } from '../Subscriber';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class ColdObservable<T> extends Observable<T> implements SubscriptionLoggable {
-    messages: TestMessage[];
-    subscriptions: SubscriptionLog[];
-    scheduler: Scheduler;
-    logSubscribedFrame: () => number;
-    logUnsubscribedFrame: (index: number) => void;
-    constructor(messages: TestMessage[], scheduler: Scheduler);
-    scheduleMessages(subscriber: Subscriber<any>): void;
-}
diff --git a/node_modules/rxjs/internal/testing/ColdObservable.js b/node_modules/rxjs/internal/testing/ColdObservable.js
deleted file mode 100644
index 7829307..0000000
--- a/node_modules/rxjs/internal/testing/ColdObservable.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Subscription_1 = require("../Subscription");
-var SubscriptionLoggable_1 = require("./SubscriptionLoggable");
-var applyMixins_1 = require("../util/applyMixins");
-var ColdObservable = (function (_super) {
-    __extends(ColdObservable, _super);
-    function ColdObservable(messages, scheduler) {
-        var _this = _super.call(this, function (subscriber) {
-            var observable = this;
-            var index = observable.logSubscribedFrame();
-            var subscription = new Subscription_1.Subscription();
-            subscription.add(new Subscription_1.Subscription(function () {
-                observable.logUnsubscribedFrame(index);
-            }));
-            observable.scheduleMessages(subscriber);
-            return subscription;
-        }) || this;
-        _this.messages = messages;
-        _this.subscriptions = [];
-        _this.scheduler = scheduler;
-        return _this;
-    }
-    ColdObservable.prototype.scheduleMessages = function (subscriber) {
-        var messagesLength = this.messages.length;
-        for (var i = 0; i < messagesLength; i++) {
-            var message = this.messages[i];
-            subscriber.add(this.scheduler.schedule(function (_a) {
-                var message = _a.message, subscriber = _a.subscriber;
-                message.notification.observe(subscriber);
-            }, message.frame, { message: message, subscriber: subscriber }));
-        }
-    };
-    return ColdObservable;
-}(Observable_1.Observable));
-exports.ColdObservable = ColdObservable;
-applyMixins_1.applyMixins(ColdObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);
-//# sourceMappingURL=ColdObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/ColdObservable.js.map b/node_modules/rxjs/internal/testing/ColdObservable.js.map
deleted file mode 100644
index 9de5e97..0000000
--- a/node_modules/rxjs/internal/testing/ColdObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ColdObservable.js","sources":["../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAA+C;AAI/C,+DAA8D;AAC9D,mDAAkD;AAQlD;IAAuC,kCAAa;IAMlD,wBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,kBAAM,UAA+B,UAA2B;YAC9D,IAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC;gBAChC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,SAEH;QAbkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAiB3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAC,EAAuB;oBAArB,oBAAO,EAAE,0BAAU;gBAAS,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAhCD,CAAuC,uBAAU,GAgChD;AAhCY,wCAAc;AAiC3B,yBAAW,CAAC,cAAc,EAAE,CAAC,2CAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/testing/HotObservable.d.ts b/node_modules/rxjs/internal/testing/HotObservable.d.ts
deleted file mode 100644
index 083d11e..0000000
--- a/node_modules/rxjs/internal/testing/HotObservable.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Subject } from '../Subject';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Scheduler } from '../Scheduler';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export declare class HotObservable<T> extends Subject<T> implements SubscriptionLoggable {
-    messages: TestMessage[];
-    subscriptions: SubscriptionLog[];
-    scheduler: Scheduler;
-    logSubscribedFrame: () => number;
-    logUnsubscribedFrame: (index: number) => void;
-    constructor(messages: TestMessage[], scheduler: Scheduler);
-    /** @deprecated This is an internal implementation detail, do not use. */
-    _subscribe(subscriber: Subscriber<any>): Subscription;
-    setup(): void;
-}
diff --git a/node_modules/rxjs/internal/testing/HotObservable.js b/node_modules/rxjs/internal/testing/HotObservable.js
deleted file mode 100644
index f387cef..0000000
--- a/node_modules/rxjs/internal/testing/HotObservable.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subject_1 = require("../Subject");
-var Subscription_1 = require("../Subscription");
-var SubscriptionLoggable_1 = require("./SubscriptionLoggable");
-var applyMixins_1 = require("../util/applyMixins");
-var HotObservable = (function (_super) {
-    __extends(HotObservable, _super);
-    function HotObservable(messages, scheduler) {
-        var _this = _super.call(this) || this;
-        _this.messages = messages;
-        _this.subscriptions = [];
-        _this.scheduler = scheduler;
-        return _this;
-    }
-    HotObservable.prototype._subscribe = function (subscriber) {
-        var subject = this;
-        var index = subject.logSubscribedFrame();
-        var subscription = new Subscription_1.Subscription();
-        subscription.add(new Subscription_1.Subscription(function () {
-            subject.logUnsubscribedFrame(index);
-        }));
-        subscription.add(_super.prototype._subscribe.call(this, subscriber));
-        return subscription;
-    };
-    HotObservable.prototype.setup = function () {
-        var subject = this;
-        var messagesLength = subject.messages.length;
-        for (var i = 0; i < messagesLength; i++) {
-            (function () {
-                var message = subject.messages[i];
-                subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);
-            })();
-        }
-    };
-    return HotObservable;
-}(Subject_1.Subject));
-exports.HotObservable = HotObservable;
-applyMixins_1.applyMixins(HotObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);
-//# sourceMappingURL=HotObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/HotObservable.js.map b/node_modules/rxjs/internal/testing/HotObservable.js.map
deleted file mode 100644
index 12c26c7..0000000
--- a/node_modules/rxjs/internal/testing/HotObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"HotObservable.js","sources":["../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAqC;AAErC,gDAA+C;AAI/C,+DAA8D;AAC9D,mDAAkD;AAOlD;IAAsC,iCAAU;IAM9C,uBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,iBAAO,SAER;QAJkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAQ3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAGD,kCAAU,GAAV,UAAW,UAA2B;QACpC,IAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,IAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC;YAChC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC;gBACC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,cAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAvCD,CAAsC,iBAAO,GAuC5C;AAvCY,sCAAa;AAwC1B,yBAAW,CAAC,aAAa,EAAE,CAAC,2CAAoB,CAAC,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts b/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts
deleted file mode 100644
index 73b23b4..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare class SubscriptionLog {
-    subscribedFrame: number;
-    unsubscribedFrame: number;
-    constructor(subscribedFrame: number, unsubscribedFrame?: number);
-}
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.js b/node_modules/rxjs/internal/testing/SubscriptionLog.js
deleted file mode 100644
index 718a1dd..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLog.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SubscriptionLog = (function () {
-    function SubscriptionLog(subscribedFrame, unsubscribedFrame) {
-        if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }
-        this.subscribedFrame = subscribedFrame;
-        this.unsubscribedFrame = unsubscribedFrame;
-    }
-    return SubscriptionLog;
-}());
-exports.SubscriptionLog = SubscriptionLog;
-//# sourceMappingURL=SubscriptionLog.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/internal/testing/SubscriptionLog.js.map
deleted file mode 100644
index cbffe53..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLog.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLog.js","sources":["../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":";;AAAA;IACE,yBAAmB,eAAuB,EACvB,iBAAoD;QAApD,kCAAA,EAAA,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,0CAAe"}
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts b/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts
deleted file mode 100644
index cc95434..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { SubscriptionLog } from './SubscriptionLog';
-export declare class SubscriptionLoggable {
-    subscriptions: SubscriptionLog[];
-    scheduler: Scheduler;
-    logSubscribedFrame(): number;
-    logUnsubscribedFrame(index: number): void;
-}
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js
deleted file mode 100644
index fd8597f..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SubscriptionLog_1 = require("./SubscriptionLog");
-var SubscriptionLoggable = (function () {
-    function SubscriptionLoggable() {
-        this.subscriptions = [];
-    }
-    SubscriptionLoggable.prototype.logSubscribedFrame = function () {
-        this.subscriptions.push(new SubscriptionLog_1.SubscriptionLog(this.scheduler.now()));
-        return this.subscriptions.length - 1;
-    };
-    SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {
-        var subscriptionLogs = this.subscriptions;
-        var oldSubscriptionLog = subscriptionLogs[index];
-        subscriptionLogs[index] = new SubscriptionLog_1.SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());
-    };
-    return SubscriptionLoggable;
-}());
-exports.SubscriptionLoggable = SubscriptionLoggable;
-//# sourceMappingURL=SubscriptionLoggable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map
deleted file mode 100644
index c3f4734..0000000
--- a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscriptionLoggable.js","sources":["../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":";;AACA,qDAAoD;AAEpD;IAAA;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,iDAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,iCAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mDAAoB,GAApB,UAAqB,KAAa;QAChC,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,iCAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,oDAAoB"}
diff --git a/node_modules/rxjs/internal/testing/TestMessage.d.ts b/node_modules/rxjs/internal/testing/TestMessage.d.ts
deleted file mode 100644
index 1181d60..0000000
--- a/node_modules/rxjs/internal/testing/TestMessage.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Notification } from '../Notification';
-export interface TestMessage {
-    frame: number;
-    notification: Notification<any>;
-    isGhost?: boolean;
-}
diff --git a/node_modules/rxjs/internal/testing/TestMessage.js b/node_modules/rxjs/internal/testing/TestMessage.js
deleted file mode 100644
index 7bb158d..0000000
--- a/node_modules/rxjs/internal/testing/TestMessage.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=TestMessage.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/TestMessage.js.map b/node_modules/rxjs/internal/testing/TestMessage.js.map
deleted file mode 100644
index ae60ae3..0000000
--- a/node_modules/rxjs/internal/testing/TestMessage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestMessage.js","sources":["../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/internal/testing/TestScheduler.d.ts b/node_modules/rxjs/internal/testing/TestScheduler.d.ts
deleted file mode 100644
index a2a40c3..0000000
--- a/node_modules/rxjs/internal/testing/TestScheduler.d.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Observable } from '../Observable';
-import { ColdObservable } from './ColdObservable';
-import { HotObservable } from './HotObservable';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { VirtualTimeScheduler } from '../scheduler/VirtualTimeScheduler';
-export interface RunHelpers {
-    cold: typeof TestScheduler.prototype.createColdObservable;
-    hot: typeof TestScheduler.prototype.createHotObservable;
-    flush: typeof TestScheduler.prototype.flush;
-    expectObservable: typeof TestScheduler.prototype.expectObservable;
-    expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions;
-}
-export declare type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void;
-export declare type subscriptionLogsToBeFn = (marbles: string | string[]) => void;
-export declare class TestScheduler extends VirtualTimeScheduler {
-    assertDeepEqual: (actual: any, expected: any) => boolean | void;
-    readonly hotObservables: HotObservable<any>[];
-    readonly coldObservables: ColdObservable<any>[];
-    private flushTests;
-    private runMode;
-    constructor(assertDeepEqual: (actual: any, expected: any) => boolean | void);
-    createTime(marbles: string): number;
-    /**
-     * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.
-     * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.
-     * @param error The error to use for the `#` marble (if present).
-     */
-    createColdObservable<T = string>(marbles: string, values?: {
-        [marble: string]: T;
-    }, error?: any): ColdObservable<T>;
-    /**
-     * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.
-     * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.
-     * @param error The error to use for the `#` marble (if present).
-     */
-    createHotObservable<T = string>(marbles: string, values?: {
-        [marble: string]: T;
-    }, error?: any): HotObservable<T>;
-    private materializeInnerObservable;
-    expectObservable(observable: Observable<any>, subscriptionMarbles?: string): ({
-        toBe: observableToBeFn;
-    });
-    expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({
-        toBe: subscriptionLogsToBeFn;
-    });
-    flush(): void;
-    /** @nocollapse */
-    static parseMarblesAsSubscriptions(marbles: string, runMode?: boolean): SubscriptionLog;
-    /** @nocollapse */
-    static parseMarbles(marbles: string, values?: any, errorValue?: any, materializeInnerObservables?: boolean, runMode?: boolean): TestMessage[];
-    run<T>(callback: (helpers: RunHelpers) => T): T;
-}
diff --git a/node_modules/rxjs/internal/testing/TestScheduler.js b/node_modules/rxjs/internal/testing/TestScheduler.js
deleted file mode 100644
index 6bf509c..0000000
--- a/node_modules/rxjs/internal/testing/TestScheduler.js
+++ /dev/null
@@ -1,364 +0,0 @@
-"use strict";
-var __extends = (this && this.__extends) || (function () {
-    var extendStatics = function (d, b) {
-        extendStatics = Object.setPrototypeOf ||
-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
-        return extendStatics(d, b);
-    }
-    return function (d, b) {
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-var Notification_1 = require("../Notification");
-var ColdObservable_1 = require("./ColdObservable");
-var HotObservable_1 = require("./HotObservable");
-var SubscriptionLog_1 = require("./SubscriptionLog");
-var VirtualTimeScheduler_1 = require("../scheduler/VirtualTimeScheduler");
-var AsyncScheduler_1 = require("../scheduler/AsyncScheduler");
-var defaultMaxFrame = 750;
-var TestScheduler = (function (_super) {
-    __extends(TestScheduler, _super);
-    function TestScheduler(assertDeepEqual) {
-        var _this = _super.call(this, VirtualTimeScheduler_1.VirtualAction, defaultMaxFrame) || this;
-        _this.assertDeepEqual = assertDeepEqual;
-        _this.hotObservables = [];
-        _this.coldObservables = [];
-        _this.flushTests = [];
-        _this.runMode = false;
-        return _this;
-    }
-    TestScheduler.prototype.createTime = function (marbles) {
-        var indexOf = marbles.indexOf('|');
-        if (indexOf === -1) {
-            throw new Error('marble diagram for time should have a completion marker "|"');
-        }
-        return indexOf * TestScheduler.frameTimeFactor;
-    };
-    TestScheduler.prototype.createColdObservable = function (marbles, values, error) {
-        if (marbles.indexOf('^') !== -1) {
-            throw new Error('cold observable cannot have subscription offset "^"');
-        }
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('cold observable cannot have unsubscription marker "!"');
-        }
-        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        var cold = new ColdObservable_1.ColdObservable(messages, this);
-        this.coldObservables.push(cold);
-        return cold;
-    };
-    TestScheduler.prototype.createHotObservable = function (marbles, values, error) {
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('hot observable cannot have unsubscription marker "!"');
-        }
-        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-        var subject = new HotObservable_1.HotObservable(messages, this);
-        this.hotObservables.push(subject);
-        return subject;
-    };
-    TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {
-        var _this = this;
-        var messages = [];
-        observable.subscribe(function (value) {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createNext(value) });
-        }, function (err) {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createError(err) });
-        }, function () {
-            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createComplete() });
-        });
-        return messages;
-    };
-    TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {
-        var _this = this;
-        if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }
-        var actual = [];
-        var flushTest = { actual: actual, ready: false };
-        var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
-        var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?
-            0 : subscriptionParsed.subscribedFrame;
-        var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
-        var subscription;
-        this.schedule(function () {
-            subscription = observable.subscribe(function (x) {
-                var value = x;
-                if (x instanceof Observable_1.Observable) {
-                    value = _this.materializeInnerObservable(value, _this.frame);
-                }
-                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createNext(value) });
-            }, function (err) {
-                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createError(err) });
-            }, function () {
-                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createComplete() });
-            });
-        }, subscriptionFrame);
-        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-            this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);
-        }
-        this.flushTests.push(flushTest);
-        var runMode = this.runMode;
-        return {
-            toBe: function (marbles, values, errorValue) {
-                flushTest.ready = true;
-                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
-            }
-        };
-    };
-    TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {
-        var flushTest = { actual: actualSubscriptionLogs, ready: false };
-        this.flushTests.push(flushTest);
-        var runMode = this.runMode;
-        return {
-            toBe: function (marbles) {
-                var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;
-                flushTest.ready = true;
-                flushTest.expected = marblesArray.map(function (marbles) {
-                    return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);
-                });
-            }
-        };
-    };
-    TestScheduler.prototype.flush = function () {
-        var _this = this;
-        var hotObservables = this.hotObservables;
-        while (hotObservables.length > 0) {
-            hotObservables.shift().setup();
-        }
-        _super.prototype.flush.call(this);
-        this.flushTests = this.flushTests.filter(function (test) {
-            if (test.ready) {
-                _this.assertDeepEqual(test.actual, test.expected);
-                return false;
-            }
-            return true;
-        });
-    };
-    TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {
-        var _this = this;
-        if (runMode === void 0) { runMode = false; }
-        if (typeof marbles !== 'string') {
-            return new SubscriptionLog_1.SubscriptionLog(Number.POSITIVE_INFINITY);
-        }
-        var len = marbles.length;
-        var groupStart = -1;
-        var subscriptionFrame = Number.POSITIVE_INFINITY;
-        var unsubscriptionFrame = Number.POSITIVE_INFINITY;
-        var frame = 0;
-        var _loop_1 = function (i) {
-            var nextFrame = frame;
-            var advanceFrameBy = function (count) {
-                nextFrame += count * _this.frameTimeFactor;
-            };
-            var c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    subscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    advanceFrameBy(1);
-                    break;
-                case '!':
-                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-                        throw new Error('found a second subscription point \'^\' in a ' +
-                            'subscription marble diagram. There can only be one.');
-                    }
-                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            var buffer = marbles.slice(i);
-                            var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                var duration = parseFloat(match[1]);
-                                var unit = match[2];
-                                var durationInMs = void 0;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this_1.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    throw new Error('there can only be \'^\' and \'!\' markers in a ' +
-                        'subscription marble diagram. Found instead \'' + c + '\'.');
-            }
-            frame = nextFrame;
-            out_i_1 = i;
-        };
-        var this_1 = this, out_i_1;
-        for (var i = 0; i < len; i++) {
-            _loop_1(i);
-            i = out_i_1;
-        }
-        if (unsubscriptionFrame < 0) {
-            return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame);
-        }
-        else {
-            return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
-        }
-    };
-    TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {
-        var _this = this;
-        if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }
-        if (runMode === void 0) { runMode = false; }
-        if (marbles.indexOf('!') !== -1) {
-            throw new Error('conventional marble diagrams cannot have the ' +
-                'unsubscription marker "!"');
-        }
-        var len = marbles.length;
-        var testMessages = [];
-        var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
-        var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);
-        var getValue = typeof values !== 'object' ?
-            function (x) { return x; } :
-            function (x) {
-                if (materializeInnerObservables && values[x] instanceof ColdObservable_1.ColdObservable) {
-                    return values[x].messages;
-                }
-                return values[x];
-            };
-        var groupStart = -1;
-        var _loop_2 = function (i) {
-            var nextFrame = frame;
-            var advanceFrameBy = function (count) {
-                nextFrame += count * _this.frameTimeFactor;
-            };
-            var notification = void 0;
-            var c = marbles[i];
-            switch (c) {
-                case ' ':
-                    if (!runMode) {
-                        advanceFrameBy(1);
-                    }
-                    break;
-                case '-':
-                    advanceFrameBy(1);
-                    break;
-                case '(':
-                    groupStart = frame;
-                    advanceFrameBy(1);
-                    break;
-                case ')':
-                    groupStart = -1;
-                    advanceFrameBy(1);
-                    break;
-                case '|':
-                    notification = Notification_1.Notification.createComplete();
-                    advanceFrameBy(1);
-                    break;
-                case '^':
-                    advanceFrameBy(1);
-                    break;
-                case '#':
-                    notification = Notification_1.Notification.createError(errorValue || 'error');
-                    advanceFrameBy(1);
-                    break;
-                default:
-                    if (runMode && c.match(/^[0-9]$/)) {
-                        if (i === 0 || marbles[i - 1] === ' ') {
-                            var buffer = marbles.slice(i);
-                            var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-                            if (match) {
-                                i += match[0].length - 1;
-                                var duration = parseFloat(match[1]);
-                                var unit = match[2];
-                                var durationInMs = void 0;
-                                switch (unit) {
-                                    case 'ms':
-                                        durationInMs = duration;
-                                        break;
-                                    case 's':
-                                        durationInMs = duration * 1000;
-                                        break;
-                                    case 'm':
-                                        durationInMs = duration * 1000 * 60;
-                                        break;
-                                    default:
-                                        break;
-                                }
-                                advanceFrameBy(durationInMs / this_2.frameTimeFactor);
-                                break;
-                            }
-                        }
-                    }
-                    notification = Notification_1.Notification.createNext(getValue(c));
-                    advanceFrameBy(1);
-                    break;
-            }
-            if (notification) {
-                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });
-            }
-            frame = nextFrame;
-            out_i_2 = i;
-        };
-        var this_2 = this, out_i_2;
-        for (var i = 0; i < len; i++) {
-            _loop_2(i);
-            i = out_i_2;
-        }
-        return testMessages;
-    };
-    TestScheduler.prototype.run = function (callback) {
-        var prevFrameTimeFactor = TestScheduler.frameTimeFactor;
-        var prevMaxFrames = this.maxFrames;
-        TestScheduler.frameTimeFactor = 1;
-        this.maxFrames = Number.POSITIVE_INFINITY;
-        this.runMode = true;
-        AsyncScheduler_1.AsyncScheduler.delegate = this;
-        var helpers = {
-            cold: this.createColdObservable.bind(this),
-            hot: this.createHotObservable.bind(this),
-            flush: this.flush.bind(this),
-            expectObservable: this.expectObservable.bind(this),
-            expectSubscriptions: this.expectSubscriptions.bind(this),
-        };
-        try {
-            var ret = callback(helpers);
-            this.flush();
-            return ret;
-        }
-        finally {
-            TestScheduler.frameTimeFactor = prevFrameTimeFactor;
-            this.maxFrames = prevMaxFrames;
-            this.runMode = false;
-            AsyncScheduler_1.AsyncScheduler.delegate = undefined;
-        }
-    };
-    return TestScheduler;
-}(VirtualTimeScheduler_1.VirtualTimeScheduler));
-exports.TestScheduler = TestScheduler;
-//# sourceMappingURL=TestScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/testing/TestScheduler.js.map b/node_modules/rxjs/internal/testing/TestScheduler.js.map
deleted file mode 100644
index 4fe018c..0000000
--- a/node_modules/rxjs/internal/testing/TestScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TestScheduler.js","sources":["../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/internal/types.d.ts b/node_modules/rxjs/internal/types.d.ts
deleted file mode 100644
index 145d2d5..0000000
--- a/node_modules/rxjs/internal/types.d.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { Observable } from './Observable';
-import { Subscription } from './Subscription';
-/** OPERATOR INTERFACES */
-export interface UnaryFunction<T, R> {
-    (source: T): R;
-}
-export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
-}
-export declare type FactoryOrValue<T> = T | (() => T);
-export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {
-}
-export interface Timestamp<T> {
-    value: T;
-    timestamp: number;
-}
-export interface TimeInterval<T> {
-    value: T;
-    interval: number;
-}
-/** SUBSCRIPTION INTERFACES */
-export interface Unsubscribable {
-    unsubscribe(): void;
-}
-export declare type TeardownLogic = Unsubscribable | Function | void;
-export interface SubscriptionLike extends Unsubscribable {
-    unsubscribe(): void;
-    readonly closed: boolean;
-}
-export declare type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
-/** OBSERVABLE INTERFACES */
-export interface Subscribable<T> {
-    subscribe(observer?: PartialObserver<T>): Unsubscribable;
-    /** @deprecated Use an observer instead of a complete callback */
-    subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
-    /** @deprecated Use an observer instead of an error callback */
-    subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
-    /** @deprecated Use an observer instead of a complete callback */
-    subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
-    subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
-}
-export declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
-/** @deprecated use {@link InteropObservable } */
-export declare type ObservableLike<T> = InteropObservable<T>;
-export declare type InteropObservable<T> = {
-    [Symbol.observable]: () => Subscribable<T>;
-};
-/** OBSERVER INTERFACES */
-export interface NextObserver<T> {
-    closed?: boolean;
-    next: (value: T) => void;
-    error?: (err: any) => void;
-    complete?: () => void;
-}
-export interface ErrorObserver<T> {
-    closed?: boolean;
-    next?: (value: T) => void;
-    error: (err: any) => void;
-    complete?: () => void;
-}
-export interface CompletionObserver<T> {
-    closed?: boolean;
-    next?: (value: T) => void;
-    error?: (err: any) => void;
-    complete: () => void;
-}
-export declare type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
-export interface Observer<T> {
-    closed?: boolean;
-    next: (value: T) => void;
-    error: (err: any) => void;
-    complete: () => void;
-}
-/** SCHEDULER INTERFACES */
-export interface SchedulerLike {
-    now(): number;
-    schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
-}
-export interface SchedulerAction<T> extends Subscription {
-    schedule(state?: T, delay?: number): Subscription;
-}
-export declare type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
-export declare type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
diff --git a/node_modules/rxjs/internal/types.js b/node_modules/rxjs/internal/types.js
deleted file mode 100644
index 11e638d..0000000
--- a/node_modules/rxjs/internal/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/types.js.map b/node_modules/rxjs/internal/types.js.map
deleted file mode 100644
index 92d4483..0000000
--- a/node_modules/rxjs/internal/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sources":["../src/internal/types.ts"],"names":[],"mappings":""}
diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts
deleted file mode 100644
index 830b291..0000000
--- a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export interface ArgumentOutOfRangeError extends Error {
-}
-export interface ArgumentOutOfRangeErrorCtor {
-    new (): ArgumentOutOfRangeError;
-}
-/**
- * An error thrown when an element was queried at a certain index of an
- * Observable, but no such index or position exists in that sequence.
- *
- * @see {@link elementAt}
- * @see {@link take}
- * @see {@link takeLast}
- *
- * @class ArgumentOutOfRangeError
- */
-export declare const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor;
diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js
deleted file mode 100644
index 121be11..0000000
--- a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ArgumentOutOfRangeErrorImpl = (function () {
-    function ArgumentOutOfRangeErrorImpl() {
-        Error.call(this);
-        this.message = 'argument out of range';
-        this.name = 'ArgumentOutOfRangeError';
-        return this;
-    }
-    ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);
-    return ArgumentOutOfRangeErrorImpl;
-})();
-exports.ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
-//# sourceMappingURL=ArgumentOutOfRangeError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map
deleted file mode 100644
index 1beb7e5..0000000
--- a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":";;AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYQ,QAAA,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/internal/util/EmptyError.d.ts b/node_modules/rxjs/internal/util/EmptyError.d.ts
deleted file mode 100644
index f3b499e..0000000
--- a/node_modules/rxjs/internal/util/EmptyError.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export interface EmptyError extends Error {
-}
-export interface EmptyErrorCtor {
-    new (): EmptyError;
-}
-/**
- * An error thrown when an Observable or a sequence was queried but has no
- * elements.
- *
- * @see {@link first}
- * @see {@link last}
- * @see {@link single}
- *
- * @class EmptyError
- */
-export declare const EmptyError: EmptyErrorCtor;
diff --git a/node_modules/rxjs/internal/util/EmptyError.js b/node_modules/rxjs/internal/util/EmptyError.js
deleted file mode 100644
index 1824ca8..0000000
--- a/node_modules/rxjs/internal/util/EmptyError.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var EmptyErrorImpl = (function () {
-    function EmptyErrorImpl() {
-        Error.call(this);
-        this.message = 'no elements in sequence';
-        this.name = 'EmptyError';
-        return this;
-    }
-    EmptyErrorImpl.prototype = Object.create(Error.prototype);
-    return EmptyErrorImpl;
-})();
-exports.EmptyError = EmptyErrorImpl;
-//# sourceMappingURL=EmptyError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/EmptyError.js.map b/node_modules/rxjs/internal/util/EmptyError.js.map
deleted file mode 100644
index 3cdbb22..0000000
--- a/node_modules/rxjs/internal/util/EmptyError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"EmptyError.js","sources":["../../src/internal/util/EmptyError.ts"],"names":[],"mappings":";;AAOA,IAAM,cAAc,GAAG,CAAC;IACtB,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYQ,QAAA,UAAU,GAAmB,cAAqB,CAAC"}
diff --git a/node_modules/rxjs/internal/util/Immediate.d.ts b/node_modules/rxjs/internal/util/Immediate.d.ts
deleted file mode 100644
index 87fc247..0000000
--- a/node_modules/rxjs/internal/util/Immediate.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Helper functions to schedule and unschedule microtasks.
- */
-export declare const Immediate: {
-    setImmediate(cb: () => void): number;
-    clearImmediate(handle: number): void;
-};
-/**
- * Used for internal testing purposes only. Do not export from library.
- */
-export declare const TestTools: {
-    pending(): number;
-};
diff --git a/node_modules/rxjs/internal/util/Immediate.js b/node_modules/rxjs/internal/util/Immediate.js
deleted file mode 100644
index 02ccec2..0000000
--- a/node_modules/rxjs/internal/util/Immediate.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var nextHandle = 1;
-var RESOLVED = (function () { return Promise.resolve(); })();
-var activeHandles = {};
-function findAndClearHandle(handle) {
-    if (handle in activeHandles) {
-        delete activeHandles[handle];
-        return true;
-    }
-    return false;
-}
-exports.Immediate = {
-    setImmediate: function (cb) {
-        var handle = nextHandle++;
-        activeHandles[handle] = true;
-        RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });
-        return handle;
-    },
-    clearImmediate: function (handle) {
-        findAndClearHandle(handle);
-    },
-};
-exports.TestTools = {
-    pending: function () {
-        return Object.keys(activeHandles).length;
-    }
-};
-//# sourceMappingURL=Immediate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/Immediate.js.map b/node_modules/rxjs/internal/util/Immediate.js.map
deleted file mode 100644
index 659e145..0000000
--- a/node_modules/rxjs/internal/util/Immediate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Immediate.js","sources":["../../src/internal/util/Immediate.ts"],"names":[],"mappings":";;AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAM,QAAQ,GAAG,CAAC,cAAM,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC,EAAE,CAAC;AAC7C,IAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKY,QAAA,SAAS,GAAG;IACvB,YAAY,EAAZ,UAAa,EAAc;QACzB,IAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,cAAM,OAAA,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAlC,CAAkC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,EAAd,UAAe,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKW,QAAA,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"}
diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts
deleted file mode 100644
index b94c151..0000000
--- a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-export interface ObjectUnsubscribedError extends Error {
-}
-export interface ObjectUnsubscribedErrorCtor {
-    new (): ObjectUnsubscribedError;
-}
-/**
- * An error thrown when an action is invalid because the object has been
- * unsubscribed.
- *
- * @see {@link Subject}
- * @see {@link BehaviorSubject}
- *
- * @class ObjectUnsubscribedError
- */
-export declare const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor;
diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js
deleted file mode 100644
index 3838aa4..0000000
--- a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var ObjectUnsubscribedErrorImpl = (function () {
-    function ObjectUnsubscribedErrorImpl() {
-        Error.call(this);
-        this.message = 'object unsubscribed';
-        this.name = 'ObjectUnsubscribedError';
-        return this;
-    }
-    ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);
-    return ObjectUnsubscribedErrorImpl;
-})();
-exports.ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
-//# sourceMappingURL=ObjectUnsubscribedError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map
deleted file mode 100644
index c9125ba..0000000
--- a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":";;AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWQ,QAAA,uBAAuB,GAAgC,2BAAkC,CAAC"}
diff --git a/node_modules/rxjs/internal/util/TimeoutError.d.ts b/node_modules/rxjs/internal/util/TimeoutError.d.ts
deleted file mode 100644
index e42ab0d..0000000
--- a/node_modules/rxjs/internal/util/TimeoutError.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-export interface TimeoutError extends Error {
-}
-export interface TimeoutErrorCtor {
-    new (): TimeoutError;
-}
-/**
- * An error thrown when duetime elapses.
- *
- * @see {@link operators/timeout}
- *
- * @class TimeoutError
- */
-export declare const TimeoutError: TimeoutErrorCtor;
diff --git a/node_modules/rxjs/internal/util/TimeoutError.js b/node_modules/rxjs/internal/util/TimeoutError.js
deleted file mode 100644
index 3127694..0000000
--- a/node_modules/rxjs/internal/util/TimeoutError.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var TimeoutErrorImpl = (function () {
-    function TimeoutErrorImpl() {
-        Error.call(this);
-        this.message = 'Timeout has occurred';
-        this.name = 'TimeoutError';
-        return this;
-    }
-    TimeoutErrorImpl.prototype = Object.create(Error.prototype);
-    return TimeoutErrorImpl;
-})();
-exports.TimeoutError = TimeoutErrorImpl;
-//# sourceMappingURL=TimeoutError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/TimeoutError.js.map b/node_modules/rxjs/internal/util/TimeoutError.js.map
deleted file mode 100644
index ff38247..0000000
--- a/node_modules/rxjs/internal/util/TimeoutError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TimeoutError.js","sources":["../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":";;AAOA,IAAM,gBAAgB,GAAG,CAAC;IACxB,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASQ,QAAA,YAAY,GAAqB,gBAAuB,CAAC"}
diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts b/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts
deleted file mode 100644
index c10c91c..0000000
--- a/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export interface UnsubscriptionError extends Error {
-    readonly errors: any[];
-}
-export interface UnsubscriptionErrorCtor {
-    new (errors: any[]): UnsubscriptionError;
-}
-/**
- * An error thrown when one or more errors have occurred during the
- * `unsubscribe` of a {@link Subscription}.
- */
-export declare const UnsubscriptionError: UnsubscriptionErrorCtor;
diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.js b/node_modules/rxjs/internal/util/UnsubscriptionError.js
deleted file mode 100644
index 34c8c27..0000000
--- a/node_modules/rxjs/internal/util/UnsubscriptionError.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var UnsubscriptionErrorImpl = (function () {
-    function UnsubscriptionErrorImpl(errors) {
-        Error.call(this);
-        this.message = errors ?
-            errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n  ') : '';
-        this.name = 'UnsubscriptionError';
-        this.errors = errors;
-        return this;
-    }
-    UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
-    return UnsubscriptionErrorImpl;
-})();
-exports.UnsubscriptionError = UnsubscriptionErrorImpl;
-//# sourceMappingURL=UnsubscriptionError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/internal/util/UnsubscriptionError.js.map
deleted file mode 100644
index 6d0170b..0000000
--- a/node_modules/rxjs/internal/util/UnsubscriptionError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UnsubscriptionError.js","sources":["../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":";;AAQA,IAAM,uBAAuB,GAAG,CAAC;IAC/B,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,iDACpB,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAG,CAAC,GAAG,CAAC,UAAK,GAAG,CAAC,QAAQ,EAAI,EAA7B,CAA6B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAMQ,QAAA,mBAAmB,GAA4B,uBAA8B,CAAC"}
diff --git a/node_modules/rxjs/internal/util/applyMixins.d.ts b/node_modules/rxjs/internal/util/applyMixins.d.ts
deleted file mode 100644
index aaefdf3..0000000
--- a/node_modules/rxjs/internal/util/applyMixins.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void;
diff --git a/node_modules/rxjs/internal/util/applyMixins.js b/node_modules/rxjs/internal/util/applyMixins.js
deleted file mode 100644
index 6c6114a..0000000
--- a/node_modules/rxjs/internal/util/applyMixins.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function applyMixins(derivedCtor, baseCtors) {
-    for (var i = 0, len = baseCtors.length; i < len; i++) {
-        var baseCtor = baseCtors[i];
-        var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
-        for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {
-            var name_1 = propertyKeys[j];
-            derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];
-        }
-    }
-}
-exports.applyMixins = applyMixins;
-//# sourceMappingURL=applyMixins.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/applyMixins.js.map b/node_modules/rxjs/internal/util/applyMixins.js.map
deleted file mode 100644
index 7981377..0000000
--- a/node_modules/rxjs/internal/util/applyMixins.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyMixins.js","sources":["../../src/internal/util/applyMixins.ts"],"names":[],"mappings":";;AAAA,SAAgB,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,IAAM,MAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC;AATD,kCASC"}
diff --git a/node_modules/rxjs/internal/util/canReportError.d.ts b/node_modules/rxjs/internal/util/canReportError.d.ts
deleted file mode 100644
index 0757e79..0000000
--- a/node_modules/rxjs/internal/util/canReportError.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subject } from '../Subject';
-/**
- * Determines whether the ErrorObserver is closed or stopped or has a
- * destination that is closed or stopped - in which case errors will
- * need to be reported via a different mechanism.
- * @param observer the observer
- */
-export declare function canReportError(observer: Subscriber<any> | Subject<any>): boolean;
diff --git a/node_modules/rxjs/internal/util/canReportError.js b/node_modules/rxjs/internal/util/canReportError.js
deleted file mode 100644
index 971f871..0000000
--- a/node_modules/rxjs/internal/util/canReportError.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-function canReportError(observer) {
-    while (observer) {
-        var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;
-        if (closed_1 || isStopped) {
-            return false;
-        }
-        else if (destination && destination instanceof Subscriber_1.Subscriber) {
-            observer = destination;
-        }
-        else {
-            observer = null;
-        }
-    }
-    return true;
-}
-exports.canReportError = canReportError;
-//# sourceMappingURL=canReportError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/canReportError.js.map b/node_modules/rxjs/internal/util/canReportError.js.map
deleted file mode 100644
index 01531e9..0000000
--- a/node_modules/rxjs/internal/util/canReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"canReportError.js","sources":["../../src/internal/util/canReportError.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAS3C,SAAgB,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,uBAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,wCAYC"}
diff --git a/node_modules/rxjs/internal/util/errorObject.d.ts b/node_modules/rxjs/internal/util/errorObject.d.ts
deleted file mode 100644
index d9dcd08..0000000
--- a/node_modules/rxjs/internal/util/errorObject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const errorObject: any;
diff --git a/node_modules/rxjs/internal/util/errorObject.js b/node_modules/rxjs/internal/util/errorObject.js
deleted file mode 100644
index e77b450..0000000
--- a/node_modules/rxjs/internal/util/errorObject.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.errorObject = { e: {} };
-//# sourceMappingURL=errorObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/errorObject.js.map b/node_modules/rxjs/internal/util/errorObject.js.map
deleted file mode 100644
index dd3398f..0000000
--- a/node_modules/rxjs/internal/util/errorObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"errorObject.js","sources":["../../src/internal/util/errorObject.ts"],"names":[],"mappings":";;AACa,QAAA,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"}
diff --git a/node_modules/rxjs/internal/util/hostReportError.d.ts b/node_modules/rxjs/internal/util/hostReportError.d.ts
deleted file mode 100644
index 5ab22b1..0000000
--- a/node_modules/rxjs/internal/util/hostReportError.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * Throws an error on another job so that it's picked up by the runtime's
- * uncaught error handling mechanism.
- * @param err the error to throw
- */
-export declare function hostReportError(err: any): void;
diff --git a/node_modules/rxjs/internal/util/hostReportError.js b/node_modules/rxjs/internal/util/hostReportError.js
deleted file mode 100644
index 2fb7fa5..0000000
--- a/node_modules/rxjs/internal/util/hostReportError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function hostReportError(err) {
-    setTimeout(function () { throw err; }, 0);
-}
-exports.hostReportError = hostReportError;
-//# sourceMappingURL=hostReportError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/hostReportError.js.map b/node_modules/rxjs/internal/util/hostReportError.js.map
deleted file mode 100644
index 3f018e2..0000000
--- a/node_modules/rxjs/internal/util/hostReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hostReportError.js","sources":["../../src/internal/util/hostReportError.ts"],"names":[],"mappings":";;AAKA,SAAgB,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,cAAQ,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAFD,0CAEC"}
diff --git a/node_modules/rxjs/internal/util/identity.d.ts b/node_modules/rxjs/internal/util/identity.d.ts
deleted file mode 100644
index 1b8a3fc..0000000
--- a/node_modules/rxjs/internal/util/identity.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function identity<T>(x: T): T;
diff --git a/node_modules/rxjs/internal/util/identity.js b/node_modules/rxjs/internal/util/identity.js
deleted file mode 100644
index dd4e60f..0000000
--- a/node_modules/rxjs/internal/util/identity.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function identity(x) {
-    return x;
-}
-exports.identity = identity;
-//# sourceMappingURL=identity.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/identity.js.map b/node_modules/rxjs/internal/util/identity.js.map
deleted file mode 100644
index 57e80c4..0000000
--- a/node_modules/rxjs/internal/util/identity.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"identity.js","sources":["../../src/internal/util/identity.ts"],"names":[],"mappings":";;AAAA,SAAgB,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC;AAFD,4BAEC"}
diff --git a/node_modules/rxjs/internal/util/isArray.d.ts b/node_modules/rxjs/internal/util/isArray.d.ts
deleted file mode 100644
index a920d3f..0000000
--- a/node_modules/rxjs/internal/util/isArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const isArray: (arg: any) => arg is any[];
diff --git a/node_modules/rxjs/internal/util/isArray.js b/node_modules/rxjs/internal/util/isArray.js
deleted file mode 100644
index e9c093c..0000000
--- a/node_modules/rxjs/internal/util/isArray.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();
-//# sourceMappingURL=isArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isArray.js.map b/node_modules/rxjs/internal/util/isArray.js.map
deleted file mode 100644
index 87b20b0..0000000
--- a/node_modules/rxjs/internal/util/isArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArray.js","sources":["../../src/internal/util/isArray.ts"],"names":[],"mappings":";;AAAa,QAAA,OAAO,GAAG,CAAC,cAAM,OAAA,KAAK,CAAC,OAAO,IAAI,CAAC,UAAI,CAAM,IAAe,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAjC,CAAiC,CAAC,EAA7E,CAA6E,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/internal/util/isArrayLike.d.ts b/node_modules/rxjs/internal/util/isArrayLike.d.ts
deleted file mode 100644
index 2a0fa76..0000000
--- a/node_modules/rxjs/internal/util/isArrayLike.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const isArrayLike: <T>(x: any) => x is ArrayLike<T>;
diff --git a/node_modules/rxjs/internal/util/isArrayLike.js b/node_modules/rxjs/internal/util/isArrayLike.js
deleted file mode 100644
index 1013f97..0000000
--- a/node_modules/rxjs/internal/util/isArrayLike.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
-//# sourceMappingURL=isArrayLike.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isArrayLike.js.map b/node_modules/rxjs/internal/util/isArrayLike.js.map
deleted file mode 100644
index 933e980..0000000
--- a/node_modules/rxjs/internal/util/isArrayLike.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArrayLike.js","sources":["../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,CAAC,UAAI,CAAM,IAAwB,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAA5D,CAA4D,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/util/isDate.d.ts b/node_modules/rxjs/internal/util/isDate.d.ts
deleted file mode 100644
index 1cfe00f..0000000
--- a/node_modules/rxjs/internal/util/isDate.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function isDate(value: any): value is Date;
diff --git a/node_modules/rxjs/internal/util/isDate.js b/node_modules/rxjs/internal/util/isDate.js
deleted file mode 100644
index 7c8970a..0000000
--- a/node_modules/rxjs/internal/util/isDate.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function isDate(value) {
-    return value instanceof Date && !isNaN(+value);
-}
-exports.isDate = isDate;
-//# sourceMappingURL=isDate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isDate.js.map b/node_modules/rxjs/internal/util/isDate.js.map
deleted file mode 100644
index e7b060f..0000000
--- a/node_modules/rxjs/internal/util/isDate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isDate.js","sources":["../../src/internal/util/isDate.ts"],"names":[],"mappings":";;AAAA,SAAgB,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAFD,wBAEC"}
diff --git a/node_modules/rxjs/internal/util/isFunction.d.ts b/node_modules/rxjs/internal/util/isFunction.d.ts
deleted file mode 100644
index 190c29e..0000000
--- a/node_modules/rxjs/internal/util/isFunction.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function isFunction(x: any): x is Function;
diff --git a/node_modules/rxjs/internal/util/isFunction.js b/node_modules/rxjs/internal/util/isFunction.js
deleted file mode 100644
index 8868691..0000000
--- a/node_modules/rxjs/internal/util/isFunction.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function isFunction(x) {
-    return typeof x === 'function';
-}
-exports.isFunction = isFunction;
-//# sourceMappingURL=isFunction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isFunction.js.map b/node_modules/rxjs/internal/util/isFunction.js.map
deleted file mode 100644
index a90c244..0000000
--- a/node_modules/rxjs/internal/util/isFunction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isFunction.js","sources":["../../src/internal/util/isFunction.ts"],"names":[],"mappings":";;AAAA,SAAgB,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC;AAFD,gCAEC"}
diff --git a/node_modules/rxjs/internal/util/isInteropObservable.d.ts b/node_modules/rxjs/internal/util/isInteropObservable.d.ts
deleted file mode 100644
index e34e59e..0000000
--- a/node_modules/rxjs/internal/util/isInteropObservable.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { InteropObservable } from '../types';
-/** Identifies an input as being Observable (but not necessary an Rx Observable) */
-export declare function isInteropObservable(input: any): input is InteropObservable<any>;
diff --git a/node_modules/rxjs/internal/util/isInteropObservable.js b/node_modules/rxjs/internal/util/isInteropObservable.js
deleted file mode 100644
index ea65a07..0000000
--- a/node_modules/rxjs/internal/util/isInteropObservable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var observable_1 = require("../symbol/observable");
-function isInteropObservable(input) {
-    return input && typeof input[observable_1.observable] === 'function';
-}
-exports.isInteropObservable = isInteropObservable;
-//# sourceMappingURL=isInteropObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isInteropObservable.js.map b/node_modules/rxjs/internal/util/isInteropObservable.js.map
deleted file mode 100644
index 0a4094e..0000000
--- a/node_modules/rxjs/internal/util/isInteropObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isInteropObservable.js","sources":["../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":";;AACA,mDAAuE;AAGvE,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,uBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC;AAFD,kDAEC"}
diff --git a/node_modules/rxjs/internal/util/isIterable.d.ts b/node_modules/rxjs/internal/util/isIterable.d.ts
deleted file mode 100644
index 38764c3..0000000
--- a/node_modules/rxjs/internal/util/isIterable.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-/** Identifies an input as being an Iterable */
-export declare function isIterable(input: any): input is Iterable<any>;
diff --git a/node_modules/rxjs/internal/util/isIterable.js b/node_modules/rxjs/internal/util/isIterable.js
deleted file mode 100644
index afcc62f..0000000
--- a/node_modules/rxjs/internal/util/isIterable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var iterator_1 = require("../symbol/iterator");
-function isIterable(input) {
-    return input && typeof input[iterator_1.iterator] === 'function';
-}
-exports.isIterable = isIterable;
-//# sourceMappingURL=isIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isIterable.js.map b/node_modules/rxjs/internal/util/isIterable.js.map
deleted file mode 100644
index a0eb186..0000000
--- a/node_modules/rxjs/internal/util/isIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isIterable.js","sources":["../../src/internal/util/isIterable.ts"],"names":[],"mappings":";;AAAA,+CAAiE;AAGjE,SAAgB,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,mBAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC;AAFD,gCAEC"}
diff --git a/node_modules/rxjs/internal/util/isNumeric.d.ts b/node_modules/rxjs/internal/util/isNumeric.d.ts
deleted file mode 100644
index c9b173d..0000000
--- a/node_modules/rxjs/internal/util/isNumeric.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function isNumeric(val: any): val is number | string;
diff --git a/node_modules/rxjs/internal/util/isNumeric.js b/node_modules/rxjs/internal/util/isNumeric.js
deleted file mode 100644
index 22fb0e5..0000000
--- a/node_modules/rxjs/internal/util/isNumeric.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var isArray_1 = require("./isArray");
-function isNumeric(val) {
-    return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0;
-}
-exports.isNumeric = isNumeric;
-//# sourceMappingURL=isNumeric.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isNumeric.js.map b/node_modules/rxjs/internal/util/isNumeric.js.map
deleted file mode 100644
index 5ec1c26..0000000
--- a/node_modules/rxjs/internal/util/isNumeric.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isNumeric.js","sources":["../../src/internal/util/isNumeric.ts"],"names":[],"mappings":";;AAAA,qCAAoC;AAEpC,SAAgB,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAND,8BAMC"}
diff --git a/node_modules/rxjs/internal/util/isObject.d.ts b/node_modules/rxjs/internal/util/isObject.d.ts
deleted file mode 100644
index 124e1ad..0000000
--- a/node_modules/rxjs/internal/util/isObject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function isObject(x: any): x is Object;
diff --git a/node_modules/rxjs/internal/util/isObject.js b/node_modules/rxjs/internal/util/isObject.js
deleted file mode 100644
index 58fe8dd..0000000
--- a/node_modules/rxjs/internal/util/isObject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function isObject(x) {
-    return x !== null && typeof x === 'object';
-}
-exports.isObject = isObject;
-//# sourceMappingURL=isObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isObject.js.map b/node_modules/rxjs/internal/util/isObject.js.map
deleted file mode 100644
index acc3a6c..0000000
--- a/node_modules/rxjs/internal/util/isObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObject.js","sources":["../../src/internal/util/isObject.ts"],"names":[],"mappings":";;AAAA,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC;AAFD,4BAEC"}
diff --git a/node_modules/rxjs/internal/util/isObservable.d.ts b/node_modules/rxjs/internal/util/isObservable.d.ts
deleted file mode 100644
index d370834..0000000
--- a/node_modules/rxjs/internal/util/isObservable.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Observable } from '../Observable';
-/**
- * Tests to see if the object is an RxJS {@link Observable}
- * @param obj the object to test
- */
-export declare function isObservable<T>(obj: any): obj is Observable<T>;
diff --git a/node_modules/rxjs/internal/util/isObservable.js b/node_modules/rxjs/internal/util/isObservable.js
deleted file mode 100644
index c4c522a..0000000
--- a/node_modules/rxjs/internal/util/isObservable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Observable_1 = require("../Observable");
-function isObservable(obj) {
-    return !!obj && (obj instanceof Observable_1.Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
-}
-exports.isObservable = isObservable;
-//# sourceMappingURL=isObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isObservable.js.map b/node_modules/rxjs/internal/util/isObservable.js.map
deleted file mode 100644
index 787db5c..0000000
--- a/node_modules/rxjs/internal/util/isObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObservable.js","sources":["../../src/internal/util/isObservable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAO3C,SAAgB,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,uBAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC;AAFD,oCAEC"}
diff --git a/node_modules/rxjs/internal/util/isPromise.d.ts b/node_modules/rxjs/internal/util/isPromise.d.ts
deleted file mode 100644
index 11f1972..0000000
--- a/node_modules/rxjs/internal/util/isPromise.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * Tests to see if the object is an ES2015 (ES6) Promise
- * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}
- * @param value the object to test
- */
-export declare function isPromise(value: any): value is PromiseLike<any>;
diff --git a/node_modules/rxjs/internal/util/isPromise.js b/node_modules/rxjs/internal/util/isPromise.js
deleted file mode 100644
index 916910d..0000000
--- a/node_modules/rxjs/internal/util/isPromise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function isPromise(value) {
-    return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
-}
-exports.isPromise = isPromise;
-//# sourceMappingURL=isPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isPromise.js.map b/node_modules/rxjs/internal/util/isPromise.js.map
deleted file mode 100644
index e5e836f..0000000
--- a/node_modules/rxjs/internal/util/isPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isPromise.js","sources":["../../src/internal/util/isPromise.ts"],"names":[],"mappings":";;AAKA,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC;AAFD,8BAEC"}
diff --git a/node_modules/rxjs/internal/util/isScheduler.d.ts b/node_modules/rxjs/internal/util/isScheduler.d.ts
deleted file mode 100644
index 8acc3ab..0000000
--- a/node_modules/rxjs/internal/util/isScheduler.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { SchedulerLike } from '../types';
-export declare function isScheduler(value: any): value is SchedulerLike;
diff --git a/node_modules/rxjs/internal/util/isScheduler.js b/node_modules/rxjs/internal/util/isScheduler.js
deleted file mode 100644
index 5e05a9e..0000000
--- a/node_modules/rxjs/internal/util/isScheduler.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function isScheduler(value) {
-    return value && typeof value.schedule === 'function';
-}
-exports.isScheduler = isScheduler;
-//# sourceMappingURL=isScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/isScheduler.js.map b/node_modules/rxjs/internal/util/isScheduler.js.map
deleted file mode 100644
index a955773..0000000
--- a/node_modules/rxjs/internal/util/isScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isScheduler.js","sources":["../../src/internal/util/isScheduler.ts"],"names":[],"mappings":";;AAEA,SAAgB,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC;AAFD,kCAEC"}
diff --git a/node_modules/rxjs/internal/util/noop.d.ts b/node_modules/rxjs/internal/util/noop.d.ts
deleted file mode 100644
index 940809c..0000000
--- a/node_modules/rxjs/internal/util/noop.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function noop(): void;
diff --git a/node_modules/rxjs/internal/util/noop.js b/node_modules/rxjs/internal/util/noop.js
deleted file mode 100644
index 043ca7f..0000000
--- a/node_modules/rxjs/internal/util/noop.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function noop() { }
-exports.noop = noop;
-//# sourceMappingURL=noop.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/noop.js.map b/node_modules/rxjs/internal/util/noop.js.map
deleted file mode 100644
index 91af752..0000000
--- a/node_modules/rxjs/internal/util/noop.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"noop.js","sources":["../../src/internal/util/noop.ts"],"names":[],"mappings":";;AACA,SAAgB,IAAI,KAAK,CAAC;AAA1B,oBAA0B"}
diff --git a/node_modules/rxjs/internal/util/not.d.ts b/node_modules/rxjs/internal/util/not.d.ts
deleted file mode 100644
index 5369220..0000000
--- a/node_modules/rxjs/internal/util/not.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function not(pred: Function, thisArg: any): Function;
diff --git a/node_modules/rxjs/internal/util/not.js b/node_modules/rxjs/internal/util/not.js
deleted file mode 100644
index e2518ad..0000000
--- a/node_modules/rxjs/internal/util/not.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function not(pred, thisArg) {
-    function notPred() {
-        return !(notPred.pred.apply(notPred.thisArg, arguments));
-    }
-    notPred.pred = pred;
-    notPred.thisArg = thisArg;
-    return notPred;
-}
-exports.not = not;
-//# sourceMappingURL=not.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/not.js.map b/node_modules/rxjs/internal/util/not.js.map
deleted file mode 100644
index f177040..0000000
--- a/node_modules/rxjs/internal/util/not.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"not.js","sources":["../../src/internal/util/not.ts"],"names":[],"mappings":";;AAAA,SAAgB,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,kBAOC"}
diff --git a/node_modules/rxjs/internal/util/pipe.d.ts b/node_modules/rxjs/internal/util/pipe.d.ts
deleted file mode 100644
index 2ec1b79..0000000
--- a/node_modules/rxjs/internal/util/pipe.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { UnaryFunction } from '../types';
-export declare function pipe<T>(): UnaryFunction<T, T>;
-export declare function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;
-export declare function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;
-export declare function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;
-export declare function pipe<T, A, B, C, D>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>): UnaryFunction<T, D>;
-export declare function pipe<T, A, B, C, D, E>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>): UnaryFunction<T, E>;
-export declare function pipe<T, A, B, C, D, E, F>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>): UnaryFunction<T, F>;
-export declare function pipe<T, A, B, C, D, E, F, G>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>): UnaryFunction<T, G>;
-export declare function pipe<T, A, B, C, D, E, F, G, H>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>): UnaryFunction<T, H>;
-export declare function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>): UnaryFunction<T, I>;
-export declare function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>, ...fns: UnaryFunction<any, any>[]): UnaryFunction<T, {}>;
-/** @internal */
-export declare function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R>;
diff --git a/node_modules/rxjs/internal/util/pipe.js b/node_modules/rxjs/internal/util/pipe.js
deleted file mode 100644
index 5305efd..0000000
--- a/node_modules/rxjs/internal/util/pipe.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var noop_1 = require("./noop");
-function pipe() {
-    var fns = [];
-    for (var _i = 0; _i < arguments.length; _i++) {
-        fns[_i] = arguments[_i];
-    }
-    return pipeFromArray(fns);
-}
-exports.pipe = pipe;
-function pipeFromArray(fns) {
-    if (!fns) {
-        return noop_1.noop;
-    }
-    if (fns.length === 1) {
-        return fns[0];
-    }
-    return function piped(input) {
-        return fns.reduce(function (prev, fn) { return fn(prev); }, input);
-    };
-}
-exports.pipeFromArray = pipeFromArray;
-//# sourceMappingURL=pipe.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/pipe.js.map b/node_modules/rxjs/internal/util/pipe.js.map
deleted file mode 100644
index 1782d00..0000000
--- a/node_modules/rxjs/internal/util/pipe.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pipe.js","sources":["../../src/internal/util/pipe.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAiB9B,SAAgB,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAGD,SAAgB,aAAa,CAAO,GAA+B;IACjE,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,WAA+B,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAZD,sCAYC"}
diff --git a/node_modules/rxjs/internal/util/root.d.ts b/node_modules/rxjs/internal/util/root.d.ts
deleted file mode 100644
index 7501631..0000000
--- a/node_modules/rxjs/internal/util/root.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _root: any;
-export { _root as root };
diff --git a/node_modules/rxjs/internal/util/root.js b/node_modules/rxjs/internal/util/root.js
deleted file mode 100644
index 506861e..0000000
--- a/node_modules/rxjs/internal/util/root.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var __window = typeof window !== 'undefined' && window;
-var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
-    self instanceof WorkerGlobalScope && self;
-var __global = typeof global !== 'undefined' && global;
-var _root = __window || __global || __self;
-exports.root = _root;
-(function () {
-    if (!_root) {
-        throw new Error('RxJS could not find any global context (window, self, global)');
-    }
-})();
-//# sourceMappingURL=root.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/root.js.map b/node_modules/rxjs/internal/util/root.js.map
deleted file mode 100644
index 71fca0b..0000000
--- a/node_modules/rxjs/internal/util/root.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"root.js","sources":["../../src/internal/util/root.ts"],"names":[],"mappings":";;AAeA,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAWhC,qBAAI;AANtB,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeTo.d.ts b/node_modules/rxjs/internal/util/subscribeTo.d.ts
deleted file mode 100644
index 491b43a..0000000
--- a/node_modules/rxjs/internal/util/subscribeTo.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { ObservableInput } from '../types';
-import { Subscription } from '../Subscription';
-import { Subscriber } from '../Subscriber';
-export declare const subscribeTo: <T>(result: ObservableInput<T>) => (subscriber: Subscriber<T>) => void | Subscription;
diff --git a/node_modules/rxjs/internal/util/subscribeTo.js b/node_modules/rxjs/internal/util/subscribeTo.js
deleted file mode 100644
index b5ffb57..0000000
--- a/node_modules/rxjs/internal/util/subscribeTo.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var subscribeToArray_1 = require("./subscribeToArray");
-var subscribeToPromise_1 = require("./subscribeToPromise");
-var subscribeToIterable_1 = require("./subscribeToIterable");
-var subscribeToObservable_1 = require("./subscribeToObservable");
-var isArrayLike_1 = require("./isArrayLike");
-var isPromise_1 = require("./isPromise");
-var isObject_1 = require("./isObject");
-var iterator_1 = require("../symbol/iterator");
-var observable_1 = require("../symbol/observable");
-exports.subscribeTo = function (result) {
-    if (!!result && typeof result[observable_1.observable] === 'function') {
-        return subscribeToObservable_1.subscribeToObservable(result);
-    }
-    else if (isArrayLike_1.isArrayLike(result)) {
-        return subscribeToArray_1.subscribeToArray(result);
-    }
-    else if (isPromise_1.isPromise(result)) {
-        return subscribeToPromise_1.subscribeToPromise(result);
-    }
-    else if (!!result && typeof result[iterator_1.iterator] === 'function') {
-        return subscribeToIterable_1.subscribeToIterable(result);
-    }
-    else {
-        var value = isObject_1.isObject(result) ? 'an invalid object' : "'" + result + "'";
-        var msg = "You provided " + value + " where a stream was expected."
-            + ' You can provide an Observable, Promise, Array, or Iterable.';
-        throw new TypeError(msg);
-    }
-};
-//# sourceMappingURL=subscribeTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeTo.js.map b/node_modules/rxjs/internal/util/subscribeTo.js.map
deleted file mode 100644
index 9654d86..0000000
--- a/node_modules/rxjs/internal/util/subscribeTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeTo.js","sources":["../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":";;AACA,uDAAsD;AACtD,2DAA0D;AAC1D,6DAA4D;AAC5D,iEAAgE;AAChE,6CAA4C;AAC5C,yCAAwC;AACxC,uCAAsC;AACtC,+CAAiE;AACjE,mDAAuE;AAI1D,QAAA,WAAW,GAAG,UAAI,MAA0B;IACvD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,uBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,6CAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,yBAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,mCAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,qBAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,uCAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,mBAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,yCAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,IAAM,KAAK,GAAG,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAI,MAAM,MAAG,CAAC;QACrE,IAAM,GAAG,GAAG,kBAAgB,KAAK,kCAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeToArray.d.ts b/node_modules/rxjs/internal/util/subscribeToArray.d.ts
deleted file mode 100644
index ddc93fd..0000000
--- a/node_modules/rxjs/internal/util/subscribeToArray.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Subscriber } from '../Subscriber';
-/**
- * Subscribes to an ArrayLike with a subscriber
- * @param array The array or array-like to subscribe to
- */
-export declare const subscribeToArray: <T>(array: ArrayLike<T>) => (subscriber: Subscriber<T>) => void;
diff --git a/node_modules/rxjs/internal/util/subscribeToArray.js b/node_modules/rxjs/internal/util/subscribeToArray.js
deleted file mode 100644
index 029c232..0000000
--- a/node_modules/rxjs/internal/util/subscribeToArray.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.subscribeToArray = function (array) { return function (subscriber) {
-    for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {
-        subscriber.next(array[i]);
-    }
-    subscriber.complete();
-}; };
-//# sourceMappingURL=subscribeToArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeToArray.js.map b/node_modules/rxjs/internal/util/subscribeToArray.js.map
deleted file mode 100644
index 4c659e2..0000000
--- a/node_modules/rxjs/internal/util/subscribeToArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToArray.js","sources":["../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":";;AAMa,QAAA,gBAAgB,GAAG,UAAI,KAAmB,IAAK,OAAA,UAAC,UAAyB;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,EAL2D,CAK3D,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.d.ts b/node_modules/rxjs/internal/util/subscribeToIterable.d.ts
deleted file mode 100644
index 948a705..0000000
--- a/node_modules/rxjs/internal/util/subscribeToIterable.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export declare const subscribeToIterable: <T>(iterable: Iterable<T>) => (subscriber: Subscriber<T>) => Subscriber<T>;
diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.js b/node_modules/rxjs/internal/util/subscribeToIterable.js
deleted file mode 100644
index ba7d546..0000000
--- a/node_modules/rxjs/internal/util/subscribeToIterable.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var iterator_1 = require("../symbol/iterator");
-exports.subscribeToIterable = function (iterable) { return function (subscriber) {
-    var iterator = iterable[iterator_1.iterator]();
-    do {
-        var item = iterator.next();
-        if (item.done) {
-            subscriber.complete();
-            break;
-        }
-        subscriber.next(item.value);
-        if (subscriber.closed) {
-            break;
-        }
-    } while (true);
-    if (typeof iterator.return === 'function') {
-        subscriber.add(function () {
-            if (iterator.return) {
-                iterator.return();
-            }
-        });
-    }
-    return subscriber;
-}; };
-//# sourceMappingURL=subscribeToIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/internal/util/subscribeToIterable.js.map
deleted file mode 100644
index 33a4490..0000000
--- a/node_modules/rxjs/internal/util/subscribeToIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToIterable.js","sources":["../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":";;AACA,+CAAiE;AAEpD,QAAA,mBAAmB,GAAG,UAAI,QAAqB,IAAK,OAAA,UAAC,UAAyB;IACzF,IAAM,QAAQ,GAAG,QAAQ,CAAC,mBAAe,CAAC,EAAE,CAAC;IAC7C,GAAG;QACD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC;YACb,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,EAxBgE,CAwBhE,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.d.ts b/node_modules/rxjs/internal/util/subscribeToObservable.d.ts
deleted file mode 100644
index 9cbc1e3..0000000
--- a/node_modules/rxjs/internal/util/subscribeToObservable.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Subscriber } from '../Subscriber';
-/**
- * Subscribes to an object that implements Symbol.observable with the given
- * Subscriber.
- * @param obj An object that implements Symbol.observable
- */
-export declare const subscribeToObservable: <T>(obj: any) => (subscriber: Subscriber<T>) => any;
diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.js b/node_modules/rxjs/internal/util/subscribeToObservable.js
deleted file mode 100644
index 9fd034f..0000000
--- a/node_modules/rxjs/internal/util/subscribeToObservable.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var observable_1 = require("../symbol/observable");
-exports.subscribeToObservable = function (obj) { return function (subscriber) {
-    var obs = obj[observable_1.observable]();
-    if (typeof obs.subscribe !== 'function') {
-        throw new TypeError('Provided object does not correctly implement Symbol.observable');
-    }
-    else {
-        return obs.subscribe(subscriber);
-    }
-}; };
-//# sourceMappingURL=subscribeToObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/internal/util/subscribeToObservable.js.map
deleted file mode 100644
index 8ca42bb..0000000
--- a/node_modules/rxjs/internal/util/subscribeToObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToObservable.js","sources":["../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":";;AACA,mDAAuE;AAO1D,QAAA,qBAAqB,GAAG,UAAI,GAAQ,IAAK,OAAA,UAAC,UAAyB;IAC9E,IAAM,GAAG,GAAG,GAAG,CAAC,uBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,EARqD,CAQrD,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.d.ts b/node_modules/rxjs/internal/util/subscribeToPromise.d.ts
deleted file mode 100644
index dae7811..0000000
--- a/node_modules/rxjs/internal/util/subscribeToPromise.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Subscriber } from '../Subscriber';
-export declare const subscribeToPromise: <T>(promise: PromiseLike<T>) => (subscriber: Subscriber<T>) => Subscriber<T>;
diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.js b/node_modules/rxjs/internal/util/subscribeToPromise.js
deleted file mode 100644
index 6125789..0000000
--- a/node_modules/rxjs/internal/util/subscribeToPromise.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var hostReportError_1 = require("./hostReportError");
-exports.subscribeToPromise = function (promise) { return function (subscriber) {
-    promise.then(function (value) {
-        if (!subscriber.closed) {
-            subscriber.next(value);
-            subscriber.complete();
-        }
-    }, function (err) { return subscriber.error(err); })
-        .then(null, hostReportError_1.hostReportError);
-    return subscriber;
-}; };
-//# sourceMappingURL=subscribeToPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/internal/util/subscribeToPromise.js.map
deleted file mode 100644
index ad8dd81..0000000
--- a/node_modules/rxjs/internal/util/subscribeToPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToPromise.js","sources":["../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":";;AACA,qDAAoD;AAEvC,QAAA,kBAAkB,GAAG,UAAI,OAAuB,IAAK,OAAA,UAAC,UAAyB;IAC1F,OAAO,CAAC,IAAI,CACV,UAAC,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,UAAC,GAAQ,IAAK,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,iCAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,EAZiE,CAYjE,CAAC"}
diff --git a/node_modules/rxjs/internal/util/subscribeToResult.d.ts b/node_modules/rxjs/internal/util/subscribeToResult.d.ts
deleted file mode 100644
index 859f416..0000000
--- a/node_modules/rxjs/internal/util/subscribeToResult.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Subscription } from '../Subscription';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-export declare function subscribeToResult<T, R>(outerSubscriber: OuterSubscriber<T, R>, result: any, outerValue: undefined, outerIndex: undefined, innerSubscriber: InnerSubscriber<T, R>): Subscription | undefined;
-export declare function subscribeToResult<T, R>(outerSubscriber: OuterSubscriber<T, R>, result: any, outerValue?: T, outerIndex?: number): Subscription | undefined;
diff --git a/node_modules/rxjs/internal/util/subscribeToResult.js b/node_modules/rxjs/internal/util/subscribeToResult.js
deleted file mode 100644
index 421ce98..0000000
--- a/node_modules/rxjs/internal/util/subscribeToResult.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var InnerSubscriber_1 = require("../InnerSubscriber");
-var subscribeTo_1 = require("./subscribeTo");
-var Observable_1 = require("../Observable");
-function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {
-    if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex); }
-    if (innerSubscriber.closed) {
-        return undefined;
-    }
-    if (result instanceof Observable_1.Observable) {
-        return result.subscribe(innerSubscriber);
-    }
-    return subscribeTo_1.subscribeTo(result)(innerSubscriber);
-}
-exports.subscribeToResult = subscribeToResult;
-//# sourceMappingURL=subscribeToResult.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/subscribeToResult.js.map b/node_modules/rxjs/internal/util/subscribeToResult.js.map
deleted file mode 100644
index 9f66d74..0000000
--- a/node_modules/rxjs/internal/util/subscribeToResult.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToResult.js","sources":["../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":";;AACA,sDAAqD;AAGrD,6CAA4C;AAC5C,4CAA2C;AAiB3C,SAAgB,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,eAA6F;IAA7F,gCAAA,EAAA,sBAAqC,iCAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,uBAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,yBAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC;AAdD,8CAcC"}
diff --git a/node_modules/rxjs/internal/util/toSubscriber.d.ts b/node_modules/rxjs/internal/util/toSubscriber.d.ts
deleted file mode 100644
index 6ae2897..0000000
--- a/node_modules/rxjs/internal/util/toSubscriber.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { PartialObserver } from '../types';
-export declare function toSubscriber<T>(nextOrObserver?: PartialObserver<T> | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscriber<T>;
diff --git a/node_modules/rxjs/internal/util/toSubscriber.js b/node_modules/rxjs/internal/util/toSubscriber.js
deleted file mode 100644
index 07fd52c..0000000
--- a/node_modules/rxjs/internal/util/toSubscriber.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = require("../Subscriber");
-var rxSubscriber_1 = require("../symbol/rxSubscriber");
-var Observer_1 = require("../Observer");
-function toSubscriber(nextOrObserver, error, complete) {
-    if (nextOrObserver) {
-        if (nextOrObserver instanceof Subscriber_1.Subscriber) {
-            return nextOrObserver;
-        }
-        if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {
-            return nextOrObserver[rxSubscriber_1.rxSubscriber]();
-        }
-    }
-    if (!nextOrObserver && !error && !complete) {
-        return new Subscriber_1.Subscriber(Observer_1.empty);
-    }
-    return new Subscriber_1.Subscriber(nextOrObserver, error, complete);
-}
-exports.toSubscriber = toSubscriber;
-//# sourceMappingURL=toSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/toSubscriber.js.map b/node_modules/rxjs/internal/util/toSubscriber.js.map
deleted file mode 100644
index 7e9793a..0000000
--- a/node_modules/rxjs/internal/util/toSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toSubscriber.js","sources":["../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,uDAA4E;AAC5E,wCAAqD;AAGrD,SAAgB,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,uBAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,2BAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,2BAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,uBAAU,CAAC,gBAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,uBAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AApBD,oCAoBC"}
diff --git a/node_modules/rxjs/internal/util/tryCatch.d.ts b/node_modules/rxjs/internal/util/tryCatch.d.ts
deleted file mode 100644
index e241e6e..0000000
--- a/node_modules/rxjs/internal/util/tryCatch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function tryCatch<T extends Function>(fn: T): T;
diff --git a/node_modules/rxjs/internal/util/tryCatch.js b/node_modules/rxjs/internal/util/tryCatch.js
deleted file mode 100644
index 42f2191..0000000
--- a/node_modules/rxjs/internal/util/tryCatch.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var errorObject_1 = require("./errorObject");
-var tryCatchTarget;
-function tryCatcher() {
-    errorObject_1.errorObject.e = undefined;
-    try {
-        return tryCatchTarget.apply(this, arguments);
-    }
-    catch (e) {
-        errorObject_1.errorObject.e = e;
-        return errorObject_1.errorObject;
-    }
-    finally {
-        tryCatchTarget = undefined;
-    }
-}
-function tryCatch(fn) {
-    tryCatchTarget = fn;
-    return tryCatcher;
-}
-exports.tryCatch = tryCatch;
-//# sourceMappingURL=tryCatch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/internal/util/tryCatch.js.map b/node_modules/rxjs/internal/util/tryCatch.js.map
deleted file mode 100644
index 4f5ccde..0000000
--- a/node_modules/rxjs/internal/util/tryCatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tryCatch.js","sources":["../../src/internal/util/tryCatch.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,yBAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,yBAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,yBAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,SAAgB,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC;AAHD,4BAGC"}
diff --git a/node_modules/rxjs/migrations/collection.json b/node_modules/rxjs/migrations/collection.json
deleted file mode 100644
index 7eb1124..0000000
--- a/node_modules/rxjs/migrations/collection.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "schematics": {
-    "rxjs-migration-01": {
-      "description": "Adds rxjs-compat package to the project to ensure compatability with RxJS 5",
-      "version": "6.0.0-rc.0",
-      "factory": "./update-6_0_0/index#rxjsV6MigrationSchematic"
-    }
-  }
-}
diff --git a/node_modules/rxjs/migrations/update-6_0_0/index.js b/node_modules/rxjs/migrations/update-6_0_0/index.js
deleted file mode 100644
index acf57b5..0000000
--- a/node_modules/rxjs/migrations/update-6_0_0/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var schematics_1 = require("@angular-devkit/schematics");
-var tasks_1 = require("@angular-devkit/schematics/tasks");
-var rxjsCompatVersion = '^6.0.0-rc.0';
-function rxjsV6MigrationSchematic(_options) {
-    return function (tree, context) {
-        var pkgPath = '/package.json';
-        var buffer = tree.read(pkgPath);
-        if (buffer == null) {
-            throw new schematics_1.SchematicsException('Could not read package.json');
-        }
-        var content = buffer.toString();
-        var pkg = JSON.parse(content);
-        if (pkg === null || typeof pkg !== 'object' || Array.isArray(pkg)) {
-            throw new schematics_1.SchematicsException('Error reading package.json');
-        }
-        if (!pkg.dependencies) {
-            pkg.dependencies = {};
-        }
-        pkg.dependencies['rxjs-compat'] = rxjsCompatVersion;
-        tree.overwrite(pkgPath, JSON.stringify(pkg, null, 2));
-        context.addTask(new tasks_1.NodePackageInstallTask());
-        return tree;
-    };
-}
-exports.rxjsV6MigrationSchematic = rxjsV6MigrationSchematic;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/migrations/update-6_0_0/index.js.map b/node_modules/rxjs/migrations/update-6_0_0/index.js.map
deleted file mode 100644
index 50d6d87..0000000
--- a/node_modules/rxjs/migrations/update-6_0_0/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../migrations/update-6_0_0/index.ts"],"names":[],"mappings":";;AAAA,yDAAwG;AACxG,0DAA0E;AAE1E,IAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,SAAgB,wBAAwB,CAAC,QAAa;IACpD,OAAO,UAAC,IAAU,EAAE,OAAyB;QACzC,IAAM,OAAO,GAAG,eAAe,CAAC;QAChC,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,IAAI,gCAAmB,CAAC,6BAA6B,CAAC,CAAC;SAC9D;QACD,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjE,MAAM,IAAI,gCAAmB,CAAC,4BAA4B,CAAC,CAAC;SAC7D;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACrB,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;SACvB;QAED,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;QAEpD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAzBD,4DAyBC"}
\ No newline at end of file
diff --git a/node_modules/rxjs/node_modules/tslib/CopyrightNotice.txt b/node_modules/rxjs/node_modules/tslib/CopyrightNotice.txt
deleted file mode 100644
index 0f6db1f..0000000
--- a/node_modules/rxjs/node_modules/tslib/CopyrightNotice.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. All rights reserved. 

-Licensed under the Apache License, Version 2.0 (the "License"); you may not use

-this file except in compliance with the License. You may obtain a copy of the

-License at http://www.apache.org/licenses/LICENSE-2.0  

- 

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 

-MERCHANTABLITY OR NON-INFRINGEMENT. 

- 

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-

diff --git a/node_modules/rxjs/node_modules/tslib/LICENSE.txt b/node_modules/rxjs/node_modules/tslib/LICENSE.txt
deleted file mode 100644
index 8746124..0000000
--- a/node_modules/rxjs/node_modules/tslib/LICENSE.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License

-

-Version 2.0, January 2004

-

-http://www.apache.org/licenses/ 

-

-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-1. Definitions.

-

-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

-

-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

-

-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

-

-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

-

-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

-

-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

-

-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

-

-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

-

-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

-

-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

-

-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

-

-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

-

-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

-

-You must give any other recipients of the Work or Derivative Works a copy of this License; and

-

-You must cause any modified files to carry prominent notices stating that You changed the files; and

-

-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

-

-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

-

-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

-

-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

-

-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

-

-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

-

-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

-

-END OF TERMS AND CONDITIONS

diff --git a/node_modules/rxjs/node_modules/tslib/README.md b/node_modules/rxjs/node_modules/tslib/README.md
deleted file mode 100644
index a6b55e7..0000000
--- a/node_modules/rxjs/node_modules/tslib/README.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# tslib

-

-This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.

-

-This library is primarily used by the `--importHelpers` flag in TypeScript.

-When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:

-

-```ts

-var __assign = (this && this.__assign) || Object.assign || function(t) {

-    for (var s, i = 1, n = arguments.length; i < n; i++) {

-        s = arguments[i];

-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))

-            t[p] = s[p];

-    }

-    return t;

-};

-exports.x = {};

-exports.y = __assign({}, exports.x);

-

-```

-

-will instead be emitted as something like the following:

-

-```ts

-var tslib_1 = require("tslib");

-exports.x = {};

-exports.y = tslib_1.__assign({}, exports.x);

-```

-

-Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.

-For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.

-

-# Installing

-

-For the latest stable version, run:

-

-## npm

-

-```sh

-# TypeScript 2.3.3 or later

-npm install --save tslib

-

-# TypeScript 2.3.2 or earlier

-npm install --save tslib@1.6.1

-```

-

-## yarn

-

-```sh

-# TypeScript 2.3.3 or later

-yarn add tslib

-

-# TypeScript 2.3.2 or earlier

-yarn add tslib@1.6.1

-```

-

-## bower

-

-```sh

-# TypeScript 2.3.3 or later

-bower install tslib

-

-# TypeScript 2.3.2 or earlier

-bower install tslib@1.6.1

-```

-

-## JSPM

-

-```sh

-# TypeScript 2.3.3 or later

-jspm install tslib

-

-# TypeScript 2.3.2 or earlier

-jspm install tslib@1.6.1

-```

-

-# Usage

-

-Set the `importHelpers` compiler option on the command line:

-

-```

-tsc --importHelpers file.ts

-```

-

-or in your tsconfig.json:

-

-```json

-{

-    "compilerOptions": {

-        "importHelpers": true

-    }

-}

-```

-

-#### For bower and JSPM users

-

-You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:

-

-```json

-{

-    "compilerOptions": {

-        "module": "amd",

-        "importHelpers": true,

-        "baseUrl": "./",

-        "paths": {

-            "tslib" : ["bower_components/tslib/tslib.d.ts"]

-        }

-    }

-}

-```

-

-For JSPM users:

-

-```json

-{

-    "compilerOptions": {

-        "module": "system",

-        "importHelpers": true,

-        "baseUrl": "./",

-        "paths": {

-            "tslib" : ["jspm_packages/npm/tslib@1.11.1/tslib.d.ts"]

-        }

-    }

-}

-```

-

-

-# Contribute

-

-There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.

-

-* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.

-* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).

-* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).

-* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.

-* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).

-* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).

-

-# Documentation

-

-* [Quick tutorial](http://www.typescriptlang.org/Tutorial)

-* [Programming handbook](http://www.typescriptlang.org/Handbook)

-* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)

-* [Homepage](http://www.typescriptlang.org/)

diff --git a/node_modules/rxjs/node_modules/tslib/package.json b/node_modules/rxjs/node_modules/tslib/package.json
deleted file mode 100644
index 7d3b98c..0000000
--- a/node_modules/rxjs/node_modules/tslib/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "name": "tslib",
-    "author": "Microsoft Corp.",
-    "homepage": "https://www.typescriptlang.org/",
-    "version": "1.11.1",
-    "license": "Apache-2.0",
-    "description": "Runtime library for TypeScript helper functions",
-    "keywords": [
-        "TypeScript",
-        "Microsoft",
-        "compiler",
-        "language",
-        "javascript",
-        "tslib",
-        "runtime"
-    ],
-    "bugs": {
-        "url": "https://github.com/Microsoft/TypeScript/issues"
-    },
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/Microsoft/tslib.git"
-    },
-    "main": "tslib.js",
-    "module": "tslib.es6.js",
-    "jsnext:main": "tslib.es6.js",
-    "typings": "tslib.d.ts",
-    "sideEffects": false
-}
diff --git a/node_modules/rxjs/node_modules/tslib/tslib.d.ts b/node_modules/rxjs/node_modules/tslib/tslib.d.ts
deleted file mode 100644
index fbfded6..0000000
--- a/node_modules/rxjs/node_modules/tslib/tslib.d.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. All rights reserved.

-Licensed under the Apache License, Version 2.0 (the "License"); you may not use

-this file except in compliance with the License. You may obtain a copy of the

-License at http://www.apache.org/licenses/LICENSE-2.0

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-export declare function __extends(d: Function, b: Function): void;

-export declare function __assign(t: any, ...sources: any[]): any;

-export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;

-export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;

-export declare function __param(paramIndex: number, decorator: Function): Function;

-export declare function __metadata(metadataKey: any, metadataValue: any): Function;

-export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;

-export declare function __generator(thisArg: any, body: Function): any;

-export declare function __exportStar(m: any, exports: any): void;

-export declare function __values(o: any): any;

-export declare function __read(o: any, n?: number): any[];

-export declare function __spread(...args: any[][]): any[];

-export declare function __spreadArrays(...args: any[][]): any[];

-export declare function __await(v: any): any;

-export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;

-export declare function __asyncDelegator(o: any): any;

-export declare function __asyncValues(o: any): any;

-export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;

-export declare function __importStar<T>(mod: T): T;

-export declare function __importDefault<T>(mod: T): T | { default: T };

-export declare function __classPrivateFieldGet<T extends object, V>(receiver: T, privateMap: { has(o: T): boolean, get(o: T): V | undefined }): V;

-export declare function __classPrivateFieldSet<T extends object, V>(receiver: T, privateMap: { has(o: T): boolean, set(o: T, value: V): any }, value: V): V;

diff --git a/node_modules/rxjs/node_modules/tslib/tslib.es6.html b/node_modules/rxjs/node_modules/tslib/tslib.es6.html
deleted file mode 100644
index b122e41..0000000
--- a/node_modules/rxjs/node_modules/tslib/tslib.es6.html
+++ /dev/null
@@ -1 +0,0 @@
-<script src="tslib.es6.js"></script>
\ No newline at end of file
diff --git a/node_modules/rxjs/node_modules/tslib/tslib.es6.js b/node_modules/rxjs/node_modules/tslib/tslib.es6.js
deleted file mode 100644
index 4d84182..0000000
--- a/node_modules/rxjs/node_modules/tslib/tslib.es6.js
+++ /dev/null
@@ -1,213 +0,0 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. All rights reserved.

-Licensed under the Apache License, Version 2.0 (the "License"); you may not use

-this file except in compliance with the License. You may obtain a copy of the

-License at http://www.apache.org/licenses/LICENSE-2.0

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-/* global Reflect, Promise */

-

-var extendStatics = function(d, b) {

-    extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-    return extendStatics(d, b);

-};

-

-export function __extends(d, b) {

-    extendStatics(d, b);

-    function __() { this.constructor = d; }

-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-}

-

-export var __assign = function() {

-    __assign = Object.assign || function __assign(t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

-    }

-    return __assign.apply(this, arguments);

-}

-

-export function __rest(s, e) {

-    var t = {};

-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)

-        t[p] = s[p];

-    if (s != null && typeof Object.getOwnPropertySymbols === "function")

-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

-            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))

-                t[p[i]] = s[p[i]];

-        }

-    return t;

-}

-

-export function __decorate(decorators, target, key, desc) {

-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;

-    return c > 3 && r && Object.defineProperty(target, key, r), r;

-}

-

-export function __param(paramIndex, decorator) {

-    return function (target, key) { decorator(target, key, paramIndex); }

-}

-

-export function __metadata(metadataKey, metadataValue) {

-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);

-}

-

-export function __awaiter(thisArg, _arguments, P, generator) {

-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

-    return new (P || (P = Promise))(function (resolve, reject) {

-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }

-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }

-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }

-        step((generator = generator.apply(thisArg, _arguments || [])).next());

-    });

-}

-

-export function __generator(thisArg, body) {

-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;

-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;

-    function verb(n) { return function (v) { return step([n, v]); }; }

-    function step(op) {

-        if (f) throw new TypeError("Generator is already executing.");

-        while (_) try {

-            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;

-            if (y = 0, t) op = [op[0] & 2, t.value];

-            switch (op[0]) {

-                case 0: case 1: t = op; break;

-                case 4: _.label++; return { value: op[1], done: false };

-                case 5: _.label++; y = op[1]; op = [0]; continue;

-                case 7: op = _.ops.pop(); _.trys.pop(); continue;

-                default:

-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }

-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }

-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }

-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }

-                    if (t[2]) _.ops.pop();

-                    _.trys.pop(); continue;

-            }

-            op = body.call(thisArg, _);

-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }

-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };

-    }

-}

-

-export function __exportStar(m, exports) {

-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];

-}

-

-export function __values(o) {

-    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;

-    if (m) return m.call(o);

-    if (o && typeof o.length === "number") return {

-        next: function () {

-            if (o && i >= o.length) o = void 0;

-            return { value: o && o[i++], done: !o };

-        }

-    };

-    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");

-}

-

-export function __read(o, n) {

-    var m = typeof Symbol === "function" && o[Symbol.iterator];

-    if (!m) return o;

-    var i = m.call(o), r, ar = [], e;

-    try {

-        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);

-    }

-    catch (error) { e = { error: error }; }

-    finally {

-        try {

-            if (r && !r.done && (m = i["return"])) m.call(i);

-        }

-        finally { if (e) throw e.error; }

-    }

-    return ar;

-}

-

-export function __spread() {

-    for (var ar = [], i = 0; i < arguments.length; i++)

-        ar = ar.concat(__read(arguments[i]));

-    return ar;

-}

-

-export function __spreadArrays() {

-    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;

-    for (var r = Array(s), k = 0, i = 0; i < il; i++)

-        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

-            r[k] = a[j];

-    return r;

-};

-

-export function __await(v) {

-    return this instanceof __await ? (this.v = v, this) : new __await(v);

-}

-

-export function __asyncGenerator(thisArg, _arguments, generator) {

-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-    var g = generator.apply(thisArg, _arguments || []), i, q = [];

-    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;

-    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }

-    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

-    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }

-    function fulfill(value) { resume("next", value); }

-    function reject(value) { resume("throw", value); }

-    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

-}

-

-export function __asyncDelegator(o) {

-    var i, p;

-    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;

-    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }

-}

-

-export function __asyncValues(o) {

-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-    var m = o[Symbol.asyncIterator], i;

-    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);

-    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }

-    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }

-}

-

-export function __makeTemplateObject(cooked, raw) {

-    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }

-    return cooked;

-};

-

-export function __importStar(mod) {

-    if (mod && mod.__esModule) return mod;

-    var result = {};

-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];

-    result.default = mod;

-    return result;

-}

-

-export function __importDefault(mod) {

-    return (mod && mod.__esModule) ? mod : { default: mod };

-}

-

-export function __classPrivateFieldGet(receiver, privateMap) {

-    if (!privateMap.has(receiver)) {

-        throw new TypeError("attempted to get private field on non-instance");

-    }

-    return privateMap.get(receiver);

-}

-

-export function __classPrivateFieldSet(receiver, privateMap, value) {

-    if (!privateMap.has(receiver)) {

-        throw new TypeError("attempted to set private field on non-instance");

-    }

-    privateMap.set(receiver, value);

-    return value;

-}

diff --git a/node_modules/rxjs/node_modules/tslib/tslib.html b/node_modules/rxjs/node_modules/tslib/tslib.html
deleted file mode 100644
index 44c9ba5..0000000
--- a/node_modules/rxjs/node_modules/tslib/tslib.html
+++ /dev/null
@@ -1 +0,0 @@
-<script src="tslib.js"></script>
\ No newline at end of file
diff --git a/node_modules/rxjs/node_modules/tslib/tslib.js b/node_modules/rxjs/node_modules/tslib/tslib.js
deleted file mode 100644
index 459b59e..0000000
--- a/node_modules/rxjs/node_modules/tslib/tslib.js
+++ /dev/null
@@ -1,276 +0,0 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. All rights reserved.

-Licensed under the Apache License, Version 2.0 (the "License"); you may not use

-this file except in compliance with the License. You may obtain a copy of the

-License at http://www.apache.org/licenses/LICENSE-2.0

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-/* global global, define, System, Reflect, Promise */

-var __extends;

-var __assign;

-var __rest;

-var __decorate;

-var __param;

-var __metadata;

-var __awaiter;

-var __generator;

-var __exportStar;

-var __values;

-var __read;

-var __spread;

-var __spreadArrays;

-var __await;

-var __asyncGenerator;

-var __asyncDelegator;

-var __asyncValues;

-var __makeTemplateObject;

-var __importStar;

-var __importDefault;

-var __classPrivateFieldGet;

-var __classPrivateFieldSet;

-(function (factory) {

-    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};

-    if (typeof define === "function" && define.amd) {

-        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });

-    }

-    else if (typeof module === "object" && typeof module.exports === "object") {

-        factory(createExporter(root, createExporter(module.exports)));

-    }

-    else {

-        factory(createExporter(root));

-    }

-    function createExporter(exports, previous) {

-        if (exports !== root) {

-            if (typeof Object.create === "function") {

-                Object.defineProperty(exports, "__esModule", { value: true });

-            }

-            else {

-                exports.__esModule = true;

-            }

-        }

-        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };

-    }

-})

-(function (exporter) {

-    var extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-

-    __extends = function (d, b) {

-        extendStatics(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    };

-

-    __assign = Object.assign || function (t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

-    };

-

-    __rest = function (s, e) {

-        var t = {};

-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)

-            t[p] = s[p];

-        if (s != null && typeof Object.getOwnPropertySymbols === "function")

-            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

-                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))

-                    t[p[i]] = s[p[i]];

-            }

-        return t;

-    };

-

-    __decorate = function (decorators, target, key, desc) {

-        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

-        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

-        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;

-        return c > 3 && r && Object.defineProperty(target, key, r), r;

-    };

-

-    __param = function (paramIndex, decorator) {

-        return function (target, key) { decorator(target, key, paramIndex); }

-    };

-

-    __metadata = function (metadataKey, metadataValue) {

-        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);

-    };

-

-    __awaiter = function (thisArg, _arguments, P, generator) {

-        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

-        return new (P || (P = Promise))(function (resolve, reject) {

-            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }

-            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }

-            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }

-            step((generator = generator.apply(thisArg, _arguments || [])).next());

-        });

-    };

-

-    __generator = function (thisArg, body) {

-        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;

-        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;

-        function verb(n) { return function (v) { return step([n, v]); }; }

-        function step(op) {

-            if (f) throw new TypeError("Generator is already executing.");

-            while (_) try {

-                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;

-                if (y = 0, t) op = [op[0] & 2, t.value];

-                switch (op[0]) {

-                    case 0: case 1: t = op; break;

-                    case 4: _.label++; return { value: op[1], done: false };

-                    case 5: _.label++; y = op[1]; op = [0]; continue;

-                    case 7: op = _.ops.pop(); _.trys.pop(); continue;

-                    default:

-                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }

-                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }

-                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }

-                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }

-                        if (t[2]) _.ops.pop();

-                        _.trys.pop(); continue;

-                }

-                op = body.call(thisArg, _);

-            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }

-            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };

-        }

-    };

-

-    __exportStar = function (m, exports) {

-        for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];

-    };

-

-    __values = function (o) {

-        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;

-        if (m) return m.call(o);

-        if (o && typeof o.length === "number") return {

-            next: function () {

-                if (o && i >= o.length) o = void 0;

-                return { value: o && o[i++], done: !o };

-            }

-        };

-        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");

-    };

-

-    __read = function (o, n) {

-        var m = typeof Symbol === "function" && o[Symbol.iterator];

-        if (!m) return o;

-        var i = m.call(o), r, ar = [], e;

-        try {

-            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);

-        }

-        catch (error) { e = { error: error }; }

-        finally {

-            try {

-                if (r && !r.done && (m = i["return"])) m.call(i);

-            }

-            finally { if (e) throw e.error; }

-        }

-        return ar;

-    };

-

-    __spread = function () {

-        for (var ar = [], i = 0; i < arguments.length; i++)

-            ar = ar.concat(__read(arguments[i]));

-        return ar;

-    };

-

-    __spreadArrays = function () {

-        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;

-        for (var r = Array(s), k = 0, i = 0; i < il; i++)

-            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

-                r[k] = a[j];

-        return r;

-    };

-

-    __await = function (v) {

-        return this instanceof __await ? (this.v = v, this) : new __await(v);

-    };

-

-    __asyncGenerator = function (thisArg, _arguments, generator) {

-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-        var g = generator.apply(thisArg, _arguments || []), i, q = [];

-        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;

-        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }

-        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

-        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }

-        function fulfill(value) { resume("next", value); }

-        function reject(value) { resume("throw", value); }

-        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

-    };

-

-    __asyncDelegator = function (o) {

-        var i, p;

-        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;

-        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }

-    };

-

-    __asyncValues = function (o) {

-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-        var m = o[Symbol.asyncIterator], i;

-        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);

-        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }

-        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }

-    };

-

-    __makeTemplateObject = function (cooked, raw) {

-        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }

-        return cooked;

-    };

-

-    __importStar = function (mod) {

-        if (mod && mod.__esModule) return mod;

-        var result = {};

-        if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];

-        result["default"] = mod;

-        return result;

-    };

-

-    __importDefault = function (mod) {

-        return (mod && mod.__esModule) ? mod : { "default": mod };

-    };

-

-    __classPrivateFieldGet = function (receiver, privateMap) {

-        if (!privateMap.has(receiver)) {

-            throw new TypeError("attempted to get private field on non-instance");

-        }

-        return privateMap.get(receiver);

-    };

-

-    __classPrivateFieldSet = function (receiver, privateMap, value) {

-        if (!privateMap.has(receiver)) {

-            throw new TypeError("attempted to set private field on non-instance");

-        }

-        privateMap.set(receiver, value);

-        return value;

-    }

-

-    exporter("__extends", __extends);

-    exporter("__assign", __assign);

-    exporter("__rest", __rest);

-    exporter("__decorate", __decorate);

-    exporter("__param", __param);

-    exporter("__metadata", __metadata);

-    exporter("__awaiter", __awaiter);

-    exporter("__generator", __generator);

-    exporter("__exportStar", __exportStar);

-    exporter("__values", __values);

-    exporter("__read", __read);

-    exporter("__spread", __spread);

-    exporter("__spreadArrays", __spreadArrays);

-    exporter("__await", __await);

-    exporter("__asyncGenerator", __asyncGenerator);

-    exporter("__asyncDelegator", __asyncDelegator);

-    exporter("__asyncValues", __asyncValues);

-    exporter("__makeTemplateObject", __makeTemplateObject);

-    exporter("__importStar", __importStar);

-    exporter("__importDefault", __importDefault);

-    exporter("__classPrivateFieldGet", __classPrivateFieldGet);

-    exporter("__classPrivateFieldSet", __classPrivateFieldSet);

-});

diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.d.ts b/node_modules/rxjs/observable/ArrayLikeObservable.d.ts
deleted file mode 100644
index 30da288..0000000
--- a/node_modules/rxjs/observable/ArrayLikeObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ArrayLikeObservable';
diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.js b/node_modules/rxjs/observable/ArrayLikeObservable.js
deleted file mode 100644
index b280ef6..0000000
--- a/node_modules/rxjs/observable/ArrayLikeObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ArrayLikeObservable"));
-//# sourceMappingURL=ArrayLikeObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.js.map b/node_modules/rxjs/observable/ArrayLikeObservable.js.map
deleted file mode 100644
index 4012874..0000000
--- a/node_modules/rxjs/observable/ArrayLikeObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArrayLikeObservable.js","sources":["../src/observable/ArrayLikeObservable.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"}
diff --git a/node_modules/rxjs/observable/ArrayObservable.d.ts b/node_modules/rxjs/observable/ArrayObservable.d.ts
deleted file mode 100644
index ce2da26..0000000
--- a/node_modules/rxjs/observable/ArrayObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ArrayObservable';
diff --git a/node_modules/rxjs/observable/ArrayObservable.js b/node_modules/rxjs/observable/ArrayObservable.js
deleted file mode 100644
index 7b3b628..0000000
--- a/node_modules/rxjs/observable/ArrayObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ArrayObservable"));
-//# sourceMappingURL=ArrayObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ArrayObservable.js.map b/node_modules/rxjs/observable/ArrayObservable.js.map
deleted file mode 100644
index 5ba74a5..0000000
--- a/node_modules/rxjs/observable/ArrayObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArrayObservable.js","sources":["../src/observable/ArrayObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.d.ts b/node_modules/rxjs/observable/BoundCallbackObservable.d.ts
deleted file mode 100644
index 1790306..0000000
--- a/node_modules/rxjs/observable/BoundCallbackObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/BoundCallbackObservable';
diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.js b/node_modules/rxjs/observable/BoundCallbackObservable.js
deleted file mode 100644
index e68ac03..0000000
--- a/node_modules/rxjs/observable/BoundCallbackObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/BoundCallbackObservable"));
-//# sourceMappingURL=BoundCallbackObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.js.map b/node_modules/rxjs/observable/BoundCallbackObservable.js.map
deleted file mode 100644
index 46f11d4..0000000
--- a/node_modules/rxjs/observable/BoundCallbackObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BoundCallbackObservable.js","sources":["../src/observable/BoundCallbackObservable.ts"],"names":[],"mappings":";;;;;AAAA,oEAA+D"}
diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts b/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts
deleted file mode 100644
index 7d0eb03..0000000
--- a/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/BoundNodeCallbackObservable';
diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js
deleted file mode 100644
index f6efca6..0000000
--- a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/BoundNodeCallbackObservable"));
-//# sourceMappingURL=BoundNodeCallbackObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map
deleted file mode 100644
index 44975e5..0000000
--- a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"BoundNodeCallbackObservable.js","sources":["../src/observable/BoundNodeCallbackObservable.ts"],"names":[],"mappings":";;;;;AAAA,wEAAmE"}
diff --git a/node_modules/rxjs/observable/ConnectableObservable.d.ts b/node_modules/rxjs/observable/ConnectableObservable.d.ts
deleted file mode 100644
index a21b3cc..0000000
--- a/node_modules/rxjs/observable/ConnectableObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ConnectableObservable';
diff --git a/node_modules/rxjs/observable/ConnectableObservable.js b/node_modules/rxjs/observable/ConnectableObservable.js
deleted file mode 100644
index a90ea58..0000000
--- a/node_modules/rxjs/observable/ConnectableObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ConnectableObservable"));
-//# sourceMappingURL=ConnectableObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ConnectableObservable.js.map b/node_modules/rxjs/observable/ConnectableObservable.js.map
deleted file mode 100644
index 04ca51d..0000000
--- a/node_modules/rxjs/observable/ConnectableObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ConnectableObservable.js","sources":["../src/observable/ConnectableObservable.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"}
diff --git a/node_modules/rxjs/observable/DeferObservable.d.ts b/node_modules/rxjs/observable/DeferObservable.d.ts
deleted file mode 100644
index cec9147..0000000
--- a/node_modules/rxjs/observable/DeferObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/DeferObservable';
diff --git a/node_modules/rxjs/observable/DeferObservable.js b/node_modules/rxjs/observable/DeferObservable.js
deleted file mode 100644
index e03517f..0000000
--- a/node_modules/rxjs/observable/DeferObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/DeferObservable"));
-//# sourceMappingURL=DeferObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/DeferObservable.js.map b/node_modules/rxjs/observable/DeferObservable.js.map
deleted file mode 100644
index 7b92c50..0000000
--- a/node_modules/rxjs/observable/DeferObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DeferObservable.js","sources":["../src/observable/DeferObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/EmptyObservable.d.ts b/node_modules/rxjs/observable/EmptyObservable.d.ts
deleted file mode 100644
index 6f9f0ba..0000000
--- a/node_modules/rxjs/observable/EmptyObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/EmptyObservable';
diff --git a/node_modules/rxjs/observable/EmptyObservable.js b/node_modules/rxjs/observable/EmptyObservable.js
deleted file mode 100644
index 309ce0c..0000000
--- a/node_modules/rxjs/observable/EmptyObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/EmptyObservable"));
-//# sourceMappingURL=EmptyObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/EmptyObservable.js.map b/node_modules/rxjs/observable/EmptyObservable.js.map
deleted file mode 100644
index 7d46670..0000000
--- a/node_modules/rxjs/observable/EmptyObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"EmptyObservable.js","sources":["../src/observable/EmptyObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/ErrorObservable.d.ts b/node_modules/rxjs/observable/ErrorObservable.d.ts
deleted file mode 100644
index 68a7dce..0000000
--- a/node_modules/rxjs/observable/ErrorObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ErrorObservable';
diff --git a/node_modules/rxjs/observable/ErrorObservable.js b/node_modules/rxjs/observable/ErrorObservable.js
deleted file mode 100644
index 1943818..0000000
--- a/node_modules/rxjs/observable/ErrorObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ErrorObservable"));
-//# sourceMappingURL=ErrorObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ErrorObservable.js.map b/node_modules/rxjs/observable/ErrorObservable.js.map
deleted file mode 100644
index d263732..0000000
--- a/node_modules/rxjs/observable/ErrorObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ErrorObservable.js","sources":["../src/observable/ErrorObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/ForkJoinObservable.d.ts b/node_modules/rxjs/observable/ForkJoinObservable.d.ts
deleted file mode 100644
index c9fa4dd..0000000
--- a/node_modules/rxjs/observable/ForkJoinObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ForkJoinObservable';
diff --git a/node_modules/rxjs/observable/ForkJoinObservable.js b/node_modules/rxjs/observable/ForkJoinObservable.js
deleted file mode 100644
index e7962f5..0000000
--- a/node_modules/rxjs/observable/ForkJoinObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ForkJoinObservable"));
-//# sourceMappingURL=ForkJoinObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ForkJoinObservable.js.map b/node_modules/rxjs/observable/ForkJoinObservable.js.map
deleted file mode 100644
index 14eb12b..0000000
--- a/node_modules/rxjs/observable/ForkJoinObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ForkJoinObservable.js","sources":["../src/observable/ForkJoinObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/observable/FromEventObservable.d.ts b/node_modules/rxjs/observable/FromEventObservable.d.ts
deleted file mode 100644
index 04291ab..0000000
--- a/node_modules/rxjs/observable/FromEventObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromEventObservable';
diff --git a/node_modules/rxjs/observable/FromEventObservable.js b/node_modules/rxjs/observable/FromEventObservable.js
deleted file mode 100644
index a25de71..0000000
--- a/node_modules/rxjs/observable/FromEventObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/FromEventObservable"));
-//# sourceMappingURL=FromEventObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/FromEventObservable.js.map b/node_modules/rxjs/observable/FromEventObservable.js.map
deleted file mode 100644
index 77b8c5e..0000000
--- a/node_modules/rxjs/observable/FromEventObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FromEventObservable.js","sources":["../src/observable/FromEventObservable.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"}
diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.d.ts b/node_modules/rxjs/observable/FromEventPatternObservable.d.ts
deleted file mode 100644
index e0a473c..0000000
--- a/node_modules/rxjs/observable/FromEventPatternObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromEventPatternObservable';
diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.js b/node_modules/rxjs/observable/FromEventPatternObservable.js
deleted file mode 100644
index b45e61b..0000000
--- a/node_modules/rxjs/observable/FromEventPatternObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/FromEventPatternObservable"));
-//# sourceMappingURL=FromEventPatternObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.js.map b/node_modules/rxjs/observable/FromEventPatternObservable.js.map
deleted file mode 100644
index 213645a..0000000
--- a/node_modules/rxjs/observable/FromEventPatternObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FromEventPatternObservable.js","sources":["../src/observable/FromEventPatternObservable.ts"],"names":[],"mappings":";;;;;AAAA,uEAAkE"}
diff --git a/node_modules/rxjs/observable/FromObservable.d.ts b/node_modules/rxjs/observable/FromObservable.d.ts
deleted file mode 100644
index c4ec664..0000000
--- a/node_modules/rxjs/observable/FromObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromObservable';
diff --git a/node_modules/rxjs/observable/FromObservable.js b/node_modules/rxjs/observable/FromObservable.js
deleted file mode 100644
index 036e800..0000000
--- a/node_modules/rxjs/observable/FromObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/FromObservable"));
-//# sourceMappingURL=FromObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/FromObservable.js.map b/node_modules/rxjs/observable/FromObservable.js.map
deleted file mode 100644
index 63805da..0000000
--- a/node_modules/rxjs/observable/FromObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FromObservable.js","sources":["../src/observable/FromObservable.ts"],"names":[],"mappings":";;;;;AAAA,2DAAsD"}
diff --git a/node_modules/rxjs/observable/GenerateObservable.d.ts b/node_modules/rxjs/observable/GenerateObservable.d.ts
deleted file mode 100644
index 8441d24..0000000
--- a/node_modules/rxjs/observable/GenerateObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/GenerateObservable';
diff --git a/node_modules/rxjs/observable/GenerateObservable.js b/node_modules/rxjs/observable/GenerateObservable.js
deleted file mode 100644
index ad7086c..0000000
--- a/node_modules/rxjs/observable/GenerateObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/GenerateObservable"));
-//# sourceMappingURL=GenerateObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/GenerateObservable.js.map b/node_modules/rxjs/observable/GenerateObservable.js.map
deleted file mode 100644
index de2b2a5..0000000
--- a/node_modules/rxjs/observable/GenerateObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"GenerateObservable.js","sources":["../src/observable/GenerateObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/observable/IfObservable.d.ts b/node_modules/rxjs/observable/IfObservable.d.ts
deleted file mode 100644
index 5eb484a..0000000
--- a/node_modules/rxjs/observable/IfObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IfObservable';
diff --git a/node_modules/rxjs/observable/IfObservable.js b/node_modules/rxjs/observable/IfObservable.js
deleted file mode 100644
index cdb4680..0000000
--- a/node_modules/rxjs/observable/IfObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/IfObservable"));
-//# sourceMappingURL=IfObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/IfObservable.js.map b/node_modules/rxjs/observable/IfObservable.js.map
deleted file mode 100644
index 28c6ea8..0000000
--- a/node_modules/rxjs/observable/IfObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"IfObservable.js","sources":["../src/observable/IfObservable.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/observable/IntervalObservable.d.ts b/node_modules/rxjs/observable/IntervalObservable.d.ts
deleted file mode 100644
index dfe181f..0000000
--- a/node_modules/rxjs/observable/IntervalObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IntervalObservable';
diff --git a/node_modules/rxjs/observable/IntervalObservable.js b/node_modules/rxjs/observable/IntervalObservable.js
deleted file mode 100644
index afc8a95..0000000
--- a/node_modules/rxjs/observable/IntervalObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/IntervalObservable"));
-//# sourceMappingURL=IntervalObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/IntervalObservable.js.map b/node_modules/rxjs/observable/IntervalObservable.js.map
deleted file mode 100644
index dcff25e..0000000
--- a/node_modules/rxjs/observable/IntervalObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"IntervalObservable.js","sources":["../src/observable/IntervalObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/observable/IteratorObservable.d.ts b/node_modules/rxjs/observable/IteratorObservable.d.ts
deleted file mode 100644
index 860fbef..0000000
--- a/node_modules/rxjs/observable/IteratorObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IteratorObservable';
diff --git a/node_modules/rxjs/observable/IteratorObservable.js b/node_modules/rxjs/observable/IteratorObservable.js
deleted file mode 100644
index 643ea91..0000000
--- a/node_modules/rxjs/observable/IteratorObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/IteratorObservable"));
-//# sourceMappingURL=IteratorObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/IteratorObservable.js.map b/node_modules/rxjs/observable/IteratorObservable.js.map
deleted file mode 100644
index 1864fbc..0000000
--- a/node_modules/rxjs/observable/IteratorObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"IteratorObservable.js","sources":["../src/observable/IteratorObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/observable/NeverObservable.d.ts b/node_modules/rxjs/observable/NeverObservable.d.ts
deleted file mode 100644
index de44057..0000000
--- a/node_modules/rxjs/observable/NeverObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/NeverObservable';
diff --git a/node_modules/rxjs/observable/NeverObservable.js b/node_modules/rxjs/observable/NeverObservable.js
deleted file mode 100644
index a53c68a..0000000
--- a/node_modules/rxjs/observable/NeverObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/NeverObservable"));
-//# sourceMappingURL=NeverObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/NeverObservable.js.map b/node_modules/rxjs/observable/NeverObservable.js.map
deleted file mode 100644
index 70245d1..0000000
--- a/node_modules/rxjs/observable/NeverObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"NeverObservable.js","sources":["../src/observable/NeverObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/PairsObservable.d.ts b/node_modules/rxjs/observable/PairsObservable.d.ts
deleted file mode 100644
index d030788..0000000
--- a/node_modules/rxjs/observable/PairsObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/PairsObservable';
diff --git a/node_modules/rxjs/observable/PairsObservable.js b/node_modules/rxjs/observable/PairsObservable.js
deleted file mode 100644
index a352afb..0000000
--- a/node_modules/rxjs/observable/PairsObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/PairsObservable"));
-//# sourceMappingURL=PairsObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/PairsObservable.js.map b/node_modules/rxjs/observable/PairsObservable.js.map
deleted file mode 100644
index b35691d..0000000
--- a/node_modules/rxjs/observable/PairsObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PairsObservable.js","sources":["../src/observable/PairsObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/PromiseObservable.d.ts b/node_modules/rxjs/observable/PromiseObservable.d.ts
deleted file mode 100644
index ae0aac2..0000000
--- a/node_modules/rxjs/observable/PromiseObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/PromiseObservable';
diff --git a/node_modules/rxjs/observable/PromiseObservable.js b/node_modules/rxjs/observable/PromiseObservable.js
deleted file mode 100644
index 2660a27..0000000
--- a/node_modules/rxjs/observable/PromiseObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/PromiseObservable"));
-//# sourceMappingURL=PromiseObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/PromiseObservable.js.map b/node_modules/rxjs/observable/PromiseObservable.js.map
deleted file mode 100644
index 05f774a..0000000
--- a/node_modules/rxjs/observable/PromiseObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PromiseObservable.js","sources":["../src/observable/PromiseObservable.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"}
diff --git a/node_modules/rxjs/observable/RangeObservable.d.ts b/node_modules/rxjs/observable/RangeObservable.d.ts
deleted file mode 100644
index f500c0a..0000000
--- a/node_modules/rxjs/observable/RangeObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/RangeObservable';
diff --git a/node_modules/rxjs/observable/RangeObservable.js b/node_modules/rxjs/observable/RangeObservable.js
deleted file mode 100644
index f24002a..0000000
--- a/node_modules/rxjs/observable/RangeObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/RangeObservable"));
-//# sourceMappingURL=RangeObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/RangeObservable.js.map b/node_modules/rxjs/observable/RangeObservable.js.map
deleted file mode 100644
index 9432594..0000000
--- a/node_modules/rxjs/observable/RangeObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RangeObservable.js","sources":["../src/observable/RangeObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/ScalarObservable.d.ts b/node_modules/rxjs/observable/ScalarObservable.d.ts
deleted file mode 100644
index a353068..0000000
--- a/node_modules/rxjs/observable/ScalarObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ScalarObservable';
diff --git a/node_modules/rxjs/observable/ScalarObservable.js b/node_modules/rxjs/observable/ScalarObservable.js
deleted file mode 100644
index be97f28..0000000
--- a/node_modules/rxjs/observable/ScalarObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/ScalarObservable"));
-//# sourceMappingURL=ScalarObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/ScalarObservable.js.map b/node_modules/rxjs/observable/ScalarObservable.js.map
deleted file mode 100644
index 4c560ad..0000000
--- a/node_modules/rxjs/observable/ScalarObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ScalarObservable.js","sources":["../src/observable/ScalarObservable.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"}
diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.d.ts b/node_modules/rxjs/observable/SubscribeOnObservable.d.ts
deleted file mode 100644
index 6435727..0000000
--- a/node_modules/rxjs/observable/SubscribeOnObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/SubscribeOnObservable';
diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.js b/node_modules/rxjs/observable/SubscribeOnObservable.js
deleted file mode 100644
index f354b93..0000000
--- a/node_modules/rxjs/observable/SubscribeOnObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/SubscribeOnObservable"));
-//# sourceMappingURL=SubscribeOnObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/observable/SubscribeOnObservable.js.map
deleted file mode 100644
index a9f14f3..0000000
--- a/node_modules/rxjs/observable/SubscribeOnObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SubscribeOnObservable.js","sources":["../src/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"}
diff --git a/node_modules/rxjs/observable/TimerObservable.d.ts b/node_modules/rxjs/observable/TimerObservable.d.ts
deleted file mode 100644
index 02b4a51..0000000
--- a/node_modules/rxjs/observable/TimerObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/TimerObservable';
diff --git a/node_modules/rxjs/observable/TimerObservable.js b/node_modules/rxjs/observable/TimerObservable.js
deleted file mode 100644
index 5058bef..0000000
--- a/node_modules/rxjs/observable/TimerObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/TimerObservable"));
-//# sourceMappingURL=TimerObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/TimerObservable.js.map b/node_modules/rxjs/observable/TimerObservable.js.map
deleted file mode 100644
index fc5ea45..0000000
--- a/node_modules/rxjs/observable/TimerObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TimerObservable.js","sources":["../src/observable/TimerObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/UsingObservable.d.ts b/node_modules/rxjs/observable/UsingObservable.d.ts
deleted file mode 100644
index c24410f..0000000
--- a/node_modules/rxjs/observable/UsingObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/UsingObservable';
diff --git a/node_modules/rxjs/observable/UsingObservable.js b/node_modules/rxjs/observable/UsingObservable.js
deleted file mode 100644
index fbb19bc..0000000
--- a/node_modules/rxjs/observable/UsingObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/UsingObservable"));
-//# sourceMappingURL=UsingObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/UsingObservable.js.map b/node_modules/rxjs/observable/UsingObservable.js.map
deleted file mode 100644
index a94931e..0000000
--- a/node_modules/rxjs/observable/UsingObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UsingObservable.js","sources":["../src/observable/UsingObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/observable/bindCallback.d.ts b/node_modules/rxjs/observable/bindCallback.d.ts
deleted file mode 100644
index aab5734..0000000
--- a/node_modules/rxjs/observable/bindCallback.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/bindCallback';
diff --git a/node_modules/rxjs/observable/bindCallback.js b/node_modules/rxjs/observable/bindCallback.js
deleted file mode 100644
index fb1bde4..0000000
--- a/node_modules/rxjs/observable/bindCallback.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/bindCallback"));
-//# sourceMappingURL=bindCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/bindCallback.js.map b/node_modules/rxjs/observable/bindCallback.js.map
deleted file mode 100644
index b9438f4..0000000
--- a/node_modules/rxjs/observable/bindCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindCallback.js","sources":["../src/observable/bindCallback.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/observable/bindNodeCallback.d.ts b/node_modules/rxjs/observable/bindNodeCallback.d.ts
deleted file mode 100644
index d5bfe5d..0000000
--- a/node_modules/rxjs/observable/bindNodeCallback.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/bindNodeCallback';
diff --git a/node_modules/rxjs/observable/bindNodeCallback.js b/node_modules/rxjs/observable/bindNodeCallback.js
deleted file mode 100644
index 826c090..0000000
--- a/node_modules/rxjs/observable/bindNodeCallback.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/bindNodeCallback"));
-//# sourceMappingURL=bindNodeCallback.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/bindNodeCallback.js.map b/node_modules/rxjs/observable/bindNodeCallback.js.map
deleted file mode 100644
index e9420ef..0000000
--- a/node_modules/rxjs/observable/bindNodeCallback.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bindNodeCallback.js","sources":["../src/observable/bindNodeCallback.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"}
diff --git a/node_modules/rxjs/observable/combineLatest.d.ts b/node_modules/rxjs/observable/combineLatest.d.ts
deleted file mode 100644
index d4b7033..0000000
--- a/node_modules/rxjs/observable/combineLatest.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/combineLatest';
diff --git a/node_modules/rxjs/observable/combineLatest.js b/node_modules/rxjs/observable/combineLatest.js
deleted file mode 100644
index e6424b4..0000000
--- a/node_modules/rxjs/observable/combineLatest.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/combineLatest"));
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/combineLatest.js.map b/node_modules/rxjs/observable/combineLatest.js.map
deleted file mode 100644
index bf27da3..0000000
--- a/node_modules/rxjs/observable/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../src/observable/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/observable/concat.d.ts b/node_modules/rxjs/observable/concat.d.ts
deleted file mode 100644
index 673b315..0000000
--- a/node_modules/rxjs/observable/concat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/concat';
diff --git a/node_modules/rxjs/observable/concat.js b/node_modules/rxjs/observable/concat.js
deleted file mode 100644
index 766857a..0000000
--- a/node_modules/rxjs/observable/concat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/concat"));
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/concat.js.map b/node_modules/rxjs/observable/concat.js.map
deleted file mode 100644
index 6b7a005..0000000
--- a/node_modules/rxjs/observable/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../src/observable/concat.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/observable/defer.d.ts b/node_modules/rxjs/observable/defer.d.ts
deleted file mode 100644
index 1a02f81..0000000
--- a/node_modules/rxjs/observable/defer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/defer';
diff --git a/node_modules/rxjs/observable/defer.js b/node_modules/rxjs/observable/defer.js
deleted file mode 100644
index 4ada85e..0000000
--- a/node_modules/rxjs/observable/defer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/defer"));
-//# sourceMappingURL=defer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/defer.js.map b/node_modules/rxjs/observable/defer.js.map
deleted file mode 100644
index 4826a98..0000000
--- a/node_modules/rxjs/observable/defer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defer.js","sources":["../src/observable/defer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.d.ts b/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
deleted file mode 100644
index e216730..0000000
--- a/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/AjaxObservable';
diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.js b/node_modules/rxjs/observable/dom/AjaxObservable.js
deleted file mode 100644
index 91ef18a..0000000
--- a/node_modules/rxjs/observable/dom/AjaxObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/dom/AjaxObservable"));
-//# sourceMappingURL=AjaxObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/observable/dom/AjaxObservable.js.map
deleted file mode 100644
index 2e838d7..0000000
--- a/node_modules/rxjs/observable/dom/AjaxObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"AjaxObservable.js","sources":["../../src/observable/dom/AjaxObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts b/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
deleted file mode 100644
index d528bf5..0000000
--- a/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/WebSocketSubject';
diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.js b/node_modules/rxjs/observable/dom/WebSocketSubject.js
deleted file mode 100644
index bf02ae9..0000000
--- a/node_modules/rxjs/observable/dom/WebSocketSubject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/dom/WebSocketSubject"));
-//# sourceMappingURL=WebSocketSubject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/observable/dom/WebSocketSubject.js.map
deleted file mode 100644
index 60a64ee..0000000
--- a/node_modules/rxjs/observable/dom/WebSocketSubject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"WebSocketSubject.js","sources":["../../src/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":";;;;;AAAA,iEAA4D"}
diff --git a/node_modules/rxjs/observable/dom/ajax.d.ts b/node_modules/rxjs/observable/dom/ajax.d.ts
deleted file mode 100644
index 495c98d..0000000
--- a/node_modules/rxjs/observable/dom/ajax.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/ajax';
diff --git a/node_modules/rxjs/observable/dom/ajax.js b/node_modules/rxjs/observable/dom/ajax.js
deleted file mode 100644
index cd1cc87..0000000
--- a/node_modules/rxjs/observable/dom/ajax.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/dom/ajax"));
-//# sourceMappingURL=ajax.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/dom/ajax.js.map b/node_modules/rxjs/observable/dom/ajax.js.map
deleted file mode 100644
index 1b33988..0000000
--- a/node_modules/rxjs/observable/dom/ajax.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ajax.js","sources":["../../src/observable/dom/ajax.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/observable/dom/webSocket.d.ts b/node_modules/rxjs/observable/dom/webSocket.d.ts
deleted file mode 100644
index c2fa408..0000000
--- a/node_modules/rxjs/observable/dom/webSocket.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/webSocket';
diff --git a/node_modules/rxjs/observable/dom/webSocket.js b/node_modules/rxjs/observable/dom/webSocket.js
deleted file mode 100644
index 36b767b..0000000
--- a/node_modules/rxjs/observable/dom/webSocket.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/dom/webSocket"));
-//# sourceMappingURL=webSocket.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/dom/webSocket.js.map b/node_modules/rxjs/observable/dom/webSocket.js.map
deleted file mode 100644
index 6933d74..0000000
--- a/node_modules/rxjs/observable/dom/webSocket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"webSocket.js","sources":["../../src/observable/dom/webSocket.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/observable/empty.d.ts b/node_modules/rxjs/observable/empty.d.ts
deleted file mode 100644
index d7ed9cb..0000000
--- a/node_modules/rxjs/observable/empty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/empty';
diff --git a/node_modules/rxjs/observable/empty.js b/node_modules/rxjs/observable/empty.js
deleted file mode 100644
index 02a2c46..0000000
--- a/node_modules/rxjs/observable/empty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/empty"));
-//# sourceMappingURL=empty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/empty.js.map b/node_modules/rxjs/observable/empty.js.map
deleted file mode 100644
index 27530bf..0000000
--- a/node_modules/rxjs/observable/empty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"empty.js","sources":["../src/observable/empty.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/forkJoin.d.ts b/node_modules/rxjs/observable/forkJoin.d.ts
deleted file mode 100644
index 3720625..0000000
--- a/node_modules/rxjs/observable/forkJoin.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/forkJoin';
diff --git a/node_modules/rxjs/observable/forkJoin.js b/node_modules/rxjs/observable/forkJoin.js
deleted file mode 100644
index c036f46..0000000
--- a/node_modules/rxjs/observable/forkJoin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/forkJoin"));
-//# sourceMappingURL=forkJoin.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/forkJoin.js.map b/node_modules/rxjs/observable/forkJoin.js.map
deleted file mode 100644
index 53dc311..0000000
--- a/node_modules/rxjs/observable/forkJoin.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"forkJoin.js","sources":["../src/observable/forkJoin.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/observable/from.d.ts b/node_modules/rxjs/observable/from.d.ts
deleted file mode 100644
index 37d2b3a..0000000
--- a/node_modules/rxjs/observable/from.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/from';
diff --git a/node_modules/rxjs/observable/from.js b/node_modules/rxjs/observable/from.js
deleted file mode 100644
index d9a0f58..0000000
--- a/node_modules/rxjs/observable/from.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/from"));
-//# sourceMappingURL=from.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/from.js.map b/node_modules/rxjs/observable/from.js.map
deleted file mode 100644
index f4e79c4..0000000
--- a/node_modules/rxjs/observable/from.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"from.js","sources":["../src/observable/from.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/observable/fromArray.d.ts b/node_modules/rxjs/observable/fromArray.d.ts
deleted file mode 100644
index 97f8377..0000000
--- a/node_modules/rxjs/observable/fromArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromArray';
diff --git a/node_modules/rxjs/observable/fromArray.js b/node_modules/rxjs/observable/fromArray.js
deleted file mode 100644
index cf2bdc8..0000000
--- a/node_modules/rxjs/observable/fromArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/fromArray"));
-//# sourceMappingURL=fromArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/fromArray.js.map b/node_modules/rxjs/observable/fromArray.js.map
deleted file mode 100644
index bad30db..0000000
--- a/node_modules/rxjs/observable/fromArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromArray.js","sources":["../src/observable/fromArray.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/observable/fromEvent.d.ts b/node_modules/rxjs/observable/fromEvent.d.ts
deleted file mode 100644
index 0312e3e..0000000
--- a/node_modules/rxjs/observable/fromEvent.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromEvent';
diff --git a/node_modules/rxjs/observable/fromEvent.js b/node_modules/rxjs/observable/fromEvent.js
deleted file mode 100644
index bb8a1b0..0000000
--- a/node_modules/rxjs/observable/fromEvent.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/fromEvent"));
-//# sourceMappingURL=fromEvent.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/fromEvent.js.map b/node_modules/rxjs/observable/fromEvent.js.map
deleted file mode 100644
index 5417b2b..0000000
--- a/node_modules/rxjs/observable/fromEvent.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEvent.js","sources":["../src/observable/fromEvent.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/observable/fromEventPattern.d.ts b/node_modules/rxjs/observable/fromEventPattern.d.ts
deleted file mode 100644
index 6662550..0000000
--- a/node_modules/rxjs/observable/fromEventPattern.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromEventPattern';
diff --git a/node_modules/rxjs/observable/fromEventPattern.js b/node_modules/rxjs/observable/fromEventPattern.js
deleted file mode 100644
index fe42d97..0000000
--- a/node_modules/rxjs/observable/fromEventPattern.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/fromEventPattern"));
-//# sourceMappingURL=fromEventPattern.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/fromEventPattern.js.map b/node_modules/rxjs/observable/fromEventPattern.js.map
deleted file mode 100644
index ae39447..0000000
--- a/node_modules/rxjs/observable/fromEventPattern.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromEventPattern.js","sources":["../src/observable/fromEventPattern.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"}
diff --git a/node_modules/rxjs/observable/fromIterable.d.ts b/node_modules/rxjs/observable/fromIterable.d.ts
deleted file mode 100644
index ee359a2..0000000
--- a/node_modules/rxjs/observable/fromIterable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromIterable';
diff --git a/node_modules/rxjs/observable/fromIterable.js b/node_modules/rxjs/observable/fromIterable.js
deleted file mode 100644
index fe33fa5..0000000
--- a/node_modules/rxjs/observable/fromIterable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/fromIterable"));
-//# sourceMappingURL=fromIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/fromIterable.js.map b/node_modules/rxjs/observable/fromIterable.js.map
deleted file mode 100644
index 64c2777..0000000
--- a/node_modules/rxjs/observable/fromIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromIterable.js","sources":["../src/observable/fromIterable.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/observable/fromPromise.d.ts b/node_modules/rxjs/observable/fromPromise.d.ts
deleted file mode 100644
index b580adc..0000000
--- a/node_modules/rxjs/observable/fromPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromPromise';
diff --git a/node_modules/rxjs/observable/fromPromise.js b/node_modules/rxjs/observable/fromPromise.js
deleted file mode 100644
index d0c6e20..0000000
--- a/node_modules/rxjs/observable/fromPromise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/fromPromise"));
-//# sourceMappingURL=fromPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/fromPromise.js.map b/node_modules/rxjs/observable/fromPromise.js.map
deleted file mode 100644
index 8affd77..0000000
--- a/node_modules/rxjs/observable/fromPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fromPromise.js","sources":["../src/observable/fromPromise.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/observable/generate.d.ts b/node_modules/rxjs/observable/generate.d.ts
deleted file mode 100644
index ad23753..0000000
--- a/node_modules/rxjs/observable/generate.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/generate';
diff --git a/node_modules/rxjs/observable/generate.js b/node_modules/rxjs/observable/generate.js
deleted file mode 100644
index 719f66f..0000000
--- a/node_modules/rxjs/observable/generate.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/generate"));
-//# sourceMappingURL=generate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/generate.js.map b/node_modules/rxjs/observable/generate.js.map
deleted file mode 100644
index ee7be9d..0000000
--- a/node_modules/rxjs/observable/generate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"generate.js","sources":["../src/observable/generate.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/observable/if.d.ts b/node_modules/rxjs/observable/if.d.ts
deleted file mode 100644
index 71a71a4..0000000
--- a/node_modules/rxjs/observable/if.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/if';
diff --git a/node_modules/rxjs/observable/if.js b/node_modules/rxjs/observable/if.js
deleted file mode 100644
index 2d260ed..0000000
--- a/node_modules/rxjs/observable/if.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/if"));
-//# sourceMappingURL=if.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/if.js.map b/node_modules/rxjs/observable/if.js.map
deleted file mode 100644
index d64bec1..0000000
--- a/node_modules/rxjs/observable/if.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"if.js","sources":["../src/observable/if.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/observable/interval.d.ts b/node_modules/rxjs/observable/interval.d.ts
deleted file mode 100644
index 273374a..0000000
--- a/node_modules/rxjs/observable/interval.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/interval';
diff --git a/node_modules/rxjs/observable/interval.js b/node_modules/rxjs/observable/interval.js
deleted file mode 100644
index b746865..0000000
--- a/node_modules/rxjs/observable/interval.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/interval"));
-//# sourceMappingURL=interval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/interval.js.map b/node_modules/rxjs/observable/interval.js.map
deleted file mode 100644
index ed258a4..0000000
--- a/node_modules/rxjs/observable/interval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"interval.js","sources":["../src/observable/interval.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/observable/merge.d.ts b/node_modules/rxjs/observable/merge.d.ts
deleted file mode 100644
index 5cbace9..0000000
--- a/node_modules/rxjs/observable/merge.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/merge';
diff --git a/node_modules/rxjs/observable/merge.js b/node_modules/rxjs/observable/merge.js
deleted file mode 100644
index 39ccb55..0000000
--- a/node_modules/rxjs/observable/merge.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/merge"));
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/merge.js.map b/node_modules/rxjs/observable/merge.js.map
deleted file mode 100644
index 01c6ef4..0000000
--- a/node_modules/rxjs/observable/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../src/observable/merge.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/never.d.ts b/node_modules/rxjs/observable/never.d.ts
deleted file mode 100644
index 8d8b24c..0000000
--- a/node_modules/rxjs/observable/never.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/never';
diff --git a/node_modules/rxjs/observable/never.js b/node_modules/rxjs/observable/never.js
deleted file mode 100644
index dd4b5f6..0000000
--- a/node_modules/rxjs/observable/never.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/never"));
-//# sourceMappingURL=never.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/never.js.map b/node_modules/rxjs/observable/never.js.map
deleted file mode 100644
index 22eda3d..0000000
--- a/node_modules/rxjs/observable/never.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"never.js","sources":["../src/observable/never.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/of.d.ts b/node_modules/rxjs/observable/of.d.ts
deleted file mode 100644
index b61ca78..0000000
--- a/node_modules/rxjs/observable/of.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/of';
diff --git a/node_modules/rxjs/observable/of.js b/node_modules/rxjs/observable/of.js
deleted file mode 100644
index 7c2d953..0000000
--- a/node_modules/rxjs/observable/of.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/of"));
-//# sourceMappingURL=of.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/of.js.map b/node_modules/rxjs/observable/of.js.map
deleted file mode 100644
index bd1d12e..0000000
--- a/node_modules/rxjs/observable/of.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"of.js","sources":["../src/observable/of.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/observable/onErrorResumeNext.d.ts
deleted file mode 100644
index 8b46336..0000000
--- a/node_modules/rxjs/observable/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/onErrorResumeNext';
diff --git a/node_modules/rxjs/observable/onErrorResumeNext.js b/node_modules/rxjs/observable/onErrorResumeNext.js
deleted file mode 100644
index 5b4c7e5..0000000
--- a/node_modules/rxjs/observable/onErrorResumeNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/onErrorResumeNext"));
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/onErrorResumeNext.js.map b/node_modules/rxjs/observable/onErrorResumeNext.js.map
deleted file mode 100644
index cb1ccc3..0000000
--- a/node_modules/rxjs/observable/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../src/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"}
diff --git a/node_modules/rxjs/observable/pairs.d.ts b/node_modules/rxjs/observable/pairs.d.ts
deleted file mode 100644
index 59ea93e..0000000
--- a/node_modules/rxjs/observable/pairs.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/pairs';
diff --git a/node_modules/rxjs/observable/pairs.js b/node_modules/rxjs/observable/pairs.js
deleted file mode 100644
index 836bddd..0000000
--- a/node_modules/rxjs/observable/pairs.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/pairs"));
-//# sourceMappingURL=pairs.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/pairs.js.map b/node_modules/rxjs/observable/pairs.js.map
deleted file mode 100644
index 71bd4e2..0000000
--- a/node_modules/rxjs/observable/pairs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairs.js","sources":["../src/observable/pairs.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/race.d.ts b/node_modules/rxjs/observable/race.d.ts
deleted file mode 100644
index 5c05cde..0000000
--- a/node_modules/rxjs/observable/race.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/race';
diff --git a/node_modules/rxjs/observable/race.js b/node_modules/rxjs/observable/race.js
deleted file mode 100644
index 4272a67..0000000
--- a/node_modules/rxjs/observable/race.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/race"));
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/race.js.map b/node_modules/rxjs/observable/race.js.map
deleted file mode 100644
index 13c3366..0000000
--- a/node_modules/rxjs/observable/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../src/observable/race.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/observable/range.d.ts b/node_modules/rxjs/observable/range.d.ts
deleted file mode 100644
index 297046c..0000000
--- a/node_modules/rxjs/observable/range.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/range';
diff --git a/node_modules/rxjs/observable/range.js b/node_modules/rxjs/observable/range.js
deleted file mode 100644
index cd4af4a..0000000
--- a/node_modules/rxjs/observable/range.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/range"));
-//# sourceMappingURL=range.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/range.js.map b/node_modules/rxjs/observable/range.js.map
deleted file mode 100644
index 0fbcf41..0000000
--- a/node_modules/rxjs/observable/range.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"range.js","sources":["../src/observable/range.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/throw.d.ts b/node_modules/rxjs/observable/throw.d.ts
deleted file mode 100644
index 30d4362..0000000
--- a/node_modules/rxjs/observable/throw.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/throw';
diff --git a/node_modules/rxjs/observable/throw.js b/node_modules/rxjs/observable/throw.js
deleted file mode 100644
index 9a2fb7e..0000000
--- a/node_modules/rxjs/observable/throw.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/throw"));
-//# sourceMappingURL=throw.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/throw.js.map b/node_modules/rxjs/observable/throw.js.map
deleted file mode 100644
index b8fee0b..0000000
--- a/node_modules/rxjs/observable/throw.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throw.js","sources":["../src/observable/throw.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/timer.d.ts b/node_modules/rxjs/observable/timer.d.ts
deleted file mode 100644
index ac3d484..0000000
--- a/node_modules/rxjs/observable/timer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/timer';
diff --git a/node_modules/rxjs/observable/timer.js b/node_modules/rxjs/observable/timer.js
deleted file mode 100644
index 340ae41..0000000
--- a/node_modules/rxjs/observable/timer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/timer"));
-//# sourceMappingURL=timer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/timer.js.map b/node_modules/rxjs/observable/timer.js.map
deleted file mode 100644
index 4a5f8b4..0000000
--- a/node_modules/rxjs/observable/timer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timer.js","sources":["../src/observable/timer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/using.d.ts b/node_modules/rxjs/observable/using.d.ts
deleted file mode 100644
index 2a9d0e7..0000000
--- a/node_modules/rxjs/observable/using.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/using';
diff --git a/node_modules/rxjs/observable/using.js b/node_modules/rxjs/observable/using.js
deleted file mode 100644
index 423a870..0000000
--- a/node_modules/rxjs/observable/using.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/using"));
-//# sourceMappingURL=using.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/using.js.map b/node_modules/rxjs/observable/using.js.map
deleted file mode 100644
index 268d152..0000000
--- a/node_modules/rxjs/observable/using.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"using.js","sources":["../src/observable/using.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/observable/zip.d.ts b/node_modules/rxjs/observable/zip.d.ts
deleted file mode 100644
index 286e225..0000000
--- a/node_modules/rxjs/observable/zip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/zip';
diff --git a/node_modules/rxjs/observable/zip.js b/node_modules/rxjs/observable/zip.js
deleted file mode 100644
index 907f828..0000000
--- a/node_modules/rxjs/observable/zip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/observable/zip"));
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/observable/zip.js.map b/node_modules/rxjs/observable/zip.js.map
deleted file mode 100644
index 45beb4c..0000000
--- a/node_modules/rxjs/observable/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../src/observable/zip.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/audit.d.ts b/node_modules/rxjs/operator/audit.d.ts
deleted file mode 100644
index f99039c..0000000
--- a/node_modules/rxjs/operator/audit.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/audit';
diff --git a/node_modules/rxjs/operator/audit.js b/node_modules/rxjs/operator/audit.js
deleted file mode 100644
index 88b896f..0000000
--- a/node_modules/rxjs/operator/audit.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/audit"));
-//# sourceMappingURL=audit.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/audit.js.map b/node_modules/rxjs/operator/audit.js.map
deleted file mode 100644
index 554885c..0000000
--- a/node_modules/rxjs/operator/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../src/operator/audit.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/auditTime.d.ts b/node_modules/rxjs/operator/auditTime.d.ts
deleted file mode 100644
index 16dcc21..0000000
--- a/node_modules/rxjs/operator/auditTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/auditTime';
diff --git a/node_modules/rxjs/operator/auditTime.js b/node_modules/rxjs/operator/auditTime.js
deleted file mode 100644
index e263d78..0000000
--- a/node_modules/rxjs/operator/auditTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/auditTime"));
-//# sourceMappingURL=auditTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/auditTime.js.map b/node_modules/rxjs/operator/auditTime.js.map
deleted file mode 100644
index 650a742..0000000
--- a/node_modules/rxjs/operator/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../src/operator/auditTime.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/buffer.d.ts b/node_modules/rxjs/operator/buffer.d.ts
deleted file mode 100644
index ae0e349..0000000
--- a/node_modules/rxjs/operator/buffer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/buffer';
diff --git a/node_modules/rxjs/operator/buffer.js b/node_modules/rxjs/operator/buffer.js
deleted file mode 100644
index 77268c1..0000000
--- a/node_modules/rxjs/operator/buffer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/buffer"));
-//# sourceMappingURL=buffer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/buffer.js.map b/node_modules/rxjs/operator/buffer.js.map
deleted file mode 100644
index eb49020..0000000
--- a/node_modules/rxjs/operator/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../src/operator/buffer.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/bufferCount.d.ts b/node_modules/rxjs/operator/bufferCount.d.ts
deleted file mode 100644
index 9883c58..0000000
--- a/node_modules/rxjs/operator/bufferCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferCount';
diff --git a/node_modules/rxjs/operator/bufferCount.js b/node_modules/rxjs/operator/bufferCount.js
deleted file mode 100644
index dfbf90d..0000000
--- a/node_modules/rxjs/operator/bufferCount.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/bufferCount"));
-//# sourceMappingURL=bufferCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/bufferCount.js.map b/node_modules/rxjs/operator/bufferCount.js.map
deleted file mode 100644
index 7f5908c..0000000
--- a/node_modules/rxjs/operator/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../src/operator/bufferCount.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/bufferTime.d.ts b/node_modules/rxjs/operator/bufferTime.d.ts
deleted file mode 100644
index 74845b4..0000000
--- a/node_modules/rxjs/operator/bufferTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferTime';
diff --git a/node_modules/rxjs/operator/bufferTime.js b/node_modules/rxjs/operator/bufferTime.js
deleted file mode 100644
index 4800190..0000000
--- a/node_modules/rxjs/operator/bufferTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/bufferTime"));
-//# sourceMappingURL=bufferTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/bufferTime.js.map b/node_modules/rxjs/operator/bufferTime.js.map
deleted file mode 100644
index 732765b..0000000
--- a/node_modules/rxjs/operator/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../src/operator/bufferTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/bufferToggle.d.ts b/node_modules/rxjs/operator/bufferToggle.d.ts
deleted file mode 100644
index 3a3ccff..0000000
--- a/node_modules/rxjs/operator/bufferToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferToggle';
diff --git a/node_modules/rxjs/operator/bufferToggle.js b/node_modules/rxjs/operator/bufferToggle.js
deleted file mode 100644
index d2d957f..0000000
--- a/node_modules/rxjs/operator/bufferToggle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/bufferToggle"));
-//# sourceMappingURL=bufferToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/bufferToggle.js.map b/node_modules/rxjs/operator/bufferToggle.js.map
deleted file mode 100644
index 8e48646..0000000
--- a/node_modules/rxjs/operator/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../src/operator/bufferToggle.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operator/bufferWhen.d.ts b/node_modules/rxjs/operator/bufferWhen.d.ts
deleted file mode 100644
index f394a58..0000000
--- a/node_modules/rxjs/operator/bufferWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferWhen';
diff --git a/node_modules/rxjs/operator/bufferWhen.js b/node_modules/rxjs/operator/bufferWhen.js
deleted file mode 100644
index dc48cf7..0000000
--- a/node_modules/rxjs/operator/bufferWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/bufferWhen"));
-//# sourceMappingURL=bufferWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/bufferWhen.js.map b/node_modules/rxjs/operator/bufferWhen.js.map
deleted file mode 100644
index 3f532c0..0000000
--- a/node_modules/rxjs/operator/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../src/operator/bufferWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/catch.d.ts b/node_modules/rxjs/operator/catch.d.ts
deleted file mode 100644
index 39c2412..0000000
--- a/node_modules/rxjs/operator/catch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/catch';
diff --git a/node_modules/rxjs/operator/catch.js b/node_modules/rxjs/operator/catch.js
deleted file mode 100644
index f9bfb59..0000000
--- a/node_modules/rxjs/operator/catch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/catch"));
-//# sourceMappingURL=catch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/catch.js.map b/node_modules/rxjs/operator/catch.js.map
deleted file mode 100644
index f72afa7..0000000
--- a/node_modules/rxjs/operator/catch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catch.js","sources":["../src/operator/catch.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/combineAll.d.ts b/node_modules/rxjs/operator/combineAll.d.ts
deleted file mode 100644
index 47ead4a..0000000
--- a/node_modules/rxjs/operator/combineAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/combineAll';
diff --git a/node_modules/rxjs/operator/combineAll.js b/node_modules/rxjs/operator/combineAll.js
deleted file mode 100644
index febfab5..0000000
--- a/node_modules/rxjs/operator/combineAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/combineAll"));
-//# sourceMappingURL=combineAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/combineAll.js.map b/node_modules/rxjs/operator/combineAll.js.map
deleted file mode 100644
index 5826513..0000000
--- a/node_modules/rxjs/operator/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../src/operator/combineAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/combineLatest.d.ts b/node_modules/rxjs/operator/combineLatest.d.ts
deleted file mode 100644
index 5719796..0000000
--- a/node_modules/rxjs/operator/combineLatest.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/combineLatest';
diff --git a/node_modules/rxjs/operator/combineLatest.js b/node_modules/rxjs/operator/combineLatest.js
deleted file mode 100644
index 1ab3ad1..0000000
--- a/node_modules/rxjs/operator/combineLatest.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/combineLatest"));
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/combineLatest.js.map b/node_modules/rxjs/operator/combineLatest.js.map
deleted file mode 100644
index 776b9c6..0000000
--- a/node_modules/rxjs/operator/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../src/operator/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operator/concat.d.ts b/node_modules/rxjs/operator/concat.d.ts
deleted file mode 100644
index 7937d7a..0000000
--- a/node_modules/rxjs/operator/concat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concat';
diff --git a/node_modules/rxjs/operator/concat.js b/node_modules/rxjs/operator/concat.js
deleted file mode 100644
index 5ab71fa..0000000
--- a/node_modules/rxjs/operator/concat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/concat"));
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/concat.js.map b/node_modules/rxjs/operator/concat.js.map
deleted file mode 100644
index 64da967..0000000
--- a/node_modules/rxjs/operator/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../src/operator/concat.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/concatAll.d.ts b/node_modules/rxjs/operator/concatAll.d.ts
deleted file mode 100644
index ac3f202..0000000
--- a/node_modules/rxjs/operator/concatAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatAll';
diff --git a/node_modules/rxjs/operator/concatAll.js b/node_modules/rxjs/operator/concatAll.js
deleted file mode 100644
index c7bedea..0000000
--- a/node_modules/rxjs/operator/concatAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/concatAll"));
-//# sourceMappingURL=concatAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/concatAll.js.map b/node_modules/rxjs/operator/concatAll.js.map
deleted file mode 100644
index 7567e9e..0000000
--- a/node_modules/rxjs/operator/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../src/operator/concatAll.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/concatMap.d.ts b/node_modules/rxjs/operator/concatMap.d.ts
deleted file mode 100644
index 96cf01f..0000000
--- a/node_modules/rxjs/operator/concatMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatMap';
diff --git a/node_modules/rxjs/operator/concatMap.js b/node_modules/rxjs/operator/concatMap.js
deleted file mode 100644
index 80fa956..0000000
--- a/node_modules/rxjs/operator/concatMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/concatMap"));
-//# sourceMappingURL=concatMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/concatMap.js.map b/node_modules/rxjs/operator/concatMap.js.map
deleted file mode 100644
index 6ea83a3..0000000
--- a/node_modules/rxjs/operator/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../src/operator/concatMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/concatMapTo.d.ts b/node_modules/rxjs/operator/concatMapTo.d.ts
deleted file mode 100644
index ccc3cd5..0000000
--- a/node_modules/rxjs/operator/concatMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatMapTo';
diff --git a/node_modules/rxjs/operator/concatMapTo.js b/node_modules/rxjs/operator/concatMapTo.js
deleted file mode 100644
index 1af3dbc..0000000
--- a/node_modules/rxjs/operator/concatMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/concatMapTo"));
-//# sourceMappingURL=concatMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/concatMapTo.js.map b/node_modules/rxjs/operator/concatMapTo.js.map
deleted file mode 100644
index 44c0185..0000000
--- a/node_modules/rxjs/operator/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../src/operator/concatMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/count.d.ts b/node_modules/rxjs/operator/count.d.ts
deleted file mode 100644
index d9b4699..0000000
--- a/node_modules/rxjs/operator/count.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/count';
diff --git a/node_modules/rxjs/operator/count.js b/node_modules/rxjs/operator/count.js
deleted file mode 100644
index dced2d3..0000000
--- a/node_modules/rxjs/operator/count.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/count"));
-//# sourceMappingURL=count.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/count.js.map b/node_modules/rxjs/operator/count.js.map
deleted file mode 100644
index 8464a9f..0000000
--- a/node_modules/rxjs/operator/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../src/operator/count.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/debounce.d.ts b/node_modules/rxjs/operator/debounce.d.ts
deleted file mode 100644
index 69fffd9..0000000
--- a/node_modules/rxjs/operator/debounce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/debounce';
diff --git a/node_modules/rxjs/operator/debounce.js b/node_modules/rxjs/operator/debounce.js
deleted file mode 100644
index f79e230..0000000
--- a/node_modules/rxjs/operator/debounce.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/debounce"));
-//# sourceMappingURL=debounce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/debounce.js.map b/node_modules/rxjs/operator/debounce.js.map
deleted file mode 100644
index a79e6ac..0000000
--- a/node_modules/rxjs/operator/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../src/operator/debounce.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/debounceTime.d.ts b/node_modules/rxjs/operator/debounceTime.d.ts
deleted file mode 100644
index 5e51c65..0000000
--- a/node_modules/rxjs/operator/debounceTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/debounceTime';
diff --git a/node_modules/rxjs/operator/debounceTime.js b/node_modules/rxjs/operator/debounceTime.js
deleted file mode 100644
index 547fcf8..0000000
--- a/node_modules/rxjs/operator/debounceTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/debounceTime"));
-//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/debounceTime.js.map b/node_modules/rxjs/operator/debounceTime.js.map
deleted file mode 100644
index 1d4370b..0000000
--- a/node_modules/rxjs/operator/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../src/operator/debounceTime.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operator/defaultIfEmpty.d.ts b/node_modules/rxjs/operator/defaultIfEmpty.d.ts
deleted file mode 100644
index 6f5c620..0000000
--- a/node_modules/rxjs/operator/defaultIfEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/defaultIfEmpty';
diff --git a/node_modules/rxjs/operator/defaultIfEmpty.js b/node_modules/rxjs/operator/defaultIfEmpty.js
deleted file mode 100644
index 136ea11..0000000
--- a/node_modules/rxjs/operator/defaultIfEmpty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/defaultIfEmpty"));
-//# sourceMappingURL=defaultIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/defaultIfEmpty.js.map b/node_modules/rxjs/operator/defaultIfEmpty.js.map
deleted file mode 100644
index df88f6c..0000000
--- a/node_modules/rxjs/operator/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../src/operator/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operator/delay.d.ts b/node_modules/rxjs/operator/delay.d.ts
deleted file mode 100644
index 823ded3..0000000
--- a/node_modules/rxjs/operator/delay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/delay';
diff --git a/node_modules/rxjs/operator/delay.js b/node_modules/rxjs/operator/delay.js
deleted file mode 100644
index e5ac4f4..0000000
--- a/node_modules/rxjs/operator/delay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/delay"));
-//# sourceMappingURL=delay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/delay.js.map b/node_modules/rxjs/operator/delay.js.map
deleted file mode 100644
index 0bde8f5..0000000
--- a/node_modules/rxjs/operator/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../src/operator/delay.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/delayWhen.d.ts b/node_modules/rxjs/operator/delayWhen.d.ts
deleted file mode 100644
index b28322a..0000000
--- a/node_modules/rxjs/operator/delayWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/delayWhen';
diff --git a/node_modules/rxjs/operator/delayWhen.js b/node_modules/rxjs/operator/delayWhen.js
deleted file mode 100644
index afe0bf4..0000000
--- a/node_modules/rxjs/operator/delayWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/delayWhen"));
-//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/delayWhen.js.map b/node_modules/rxjs/operator/delayWhen.js.map
deleted file mode 100644
index 994f496..0000000
--- a/node_modules/rxjs/operator/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../src/operator/delayWhen.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/dematerialize.d.ts b/node_modules/rxjs/operator/dematerialize.d.ts
deleted file mode 100644
index 83f8da9..0000000
--- a/node_modules/rxjs/operator/dematerialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/dematerialize';
diff --git a/node_modules/rxjs/operator/dematerialize.js b/node_modules/rxjs/operator/dematerialize.js
deleted file mode 100644
index 2092fd4..0000000
--- a/node_modules/rxjs/operator/dematerialize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/dematerialize"));
-//# sourceMappingURL=dematerialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/dematerialize.js.map b/node_modules/rxjs/operator/dematerialize.js.map
deleted file mode 100644
index 75c1c99..0000000
--- a/node_modules/rxjs/operator/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../src/operator/dematerialize.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operator/distinct.d.ts b/node_modules/rxjs/operator/distinct.d.ts
deleted file mode 100644
index b97b8ee..0000000
--- a/node_modules/rxjs/operator/distinct.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinct';
diff --git a/node_modules/rxjs/operator/distinct.js b/node_modules/rxjs/operator/distinct.js
deleted file mode 100644
index 5c8afd9..0000000
--- a/node_modules/rxjs/operator/distinct.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/distinct"));
-//# sourceMappingURL=distinct.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/distinct.js.map b/node_modules/rxjs/operator/distinct.js.map
deleted file mode 100644
index 7e21988..0000000
--- a/node_modules/rxjs/operator/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../src/operator/distinct.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/distinctUntilChanged.d.ts b/node_modules/rxjs/operator/distinctUntilChanged.d.ts
deleted file mode 100644
index 3a5bbc3..0000000
--- a/node_modules/rxjs/operator/distinctUntilChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinctUntilChanged';
diff --git a/node_modules/rxjs/operator/distinctUntilChanged.js b/node_modules/rxjs/operator/distinctUntilChanged.js
deleted file mode 100644
index 846fb6c..0000000
--- a/node_modules/rxjs/operator/distinctUntilChanged.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/distinctUntilChanged"));
-//# sourceMappingURL=distinctUntilChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/distinctUntilChanged.js.map b/node_modules/rxjs/operator/distinctUntilChanged.js.map
deleted file mode 100644
index 2b851f7..0000000
--- a/node_modules/rxjs/operator/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../src/operator/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"}
diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts
deleted file mode 100644
index 22d42b1..0000000
--- a/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.js b/node_modules/rxjs/operator/distinctUntilKeyChanged.js
deleted file mode 100644
index c6e9dbd..0000000
--- a/node_modules/rxjs/operator/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/distinctUntilKeyChanged"));
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map b/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map
deleted file mode 100644
index 5fb6b8d..0000000
--- a/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../src/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"}
diff --git a/node_modules/rxjs/operator/do.d.ts b/node_modules/rxjs/operator/do.d.ts
deleted file mode 100644
index 3b3a79b..0000000
--- a/node_modules/rxjs/operator/do.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/do';
diff --git a/node_modules/rxjs/operator/do.js b/node_modules/rxjs/operator/do.js
deleted file mode 100644
index 27b13bb..0000000
--- a/node_modules/rxjs/operator/do.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/do"));
-//# sourceMappingURL=do.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/do.js.map b/node_modules/rxjs/operator/do.js.map
deleted file mode 100644
index e4984e8..0000000
--- a/node_modules/rxjs/operator/do.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"do.js","sources":["../src/operator/do.ts"],"names":[],"mappings":";;;;;AAAA,6CAAwC"}
diff --git a/node_modules/rxjs/operator/elementAt.d.ts b/node_modules/rxjs/operator/elementAt.d.ts
deleted file mode 100644
index bcdf798..0000000
--- a/node_modules/rxjs/operator/elementAt.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/elementAt';
diff --git a/node_modules/rxjs/operator/elementAt.js b/node_modules/rxjs/operator/elementAt.js
deleted file mode 100644
index 8536820..0000000
--- a/node_modules/rxjs/operator/elementAt.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/elementAt"));
-//# sourceMappingURL=elementAt.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/elementAt.js.map b/node_modules/rxjs/operator/elementAt.js.map
deleted file mode 100644
index e293593..0000000
--- a/node_modules/rxjs/operator/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../src/operator/elementAt.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/every.d.ts b/node_modules/rxjs/operator/every.d.ts
deleted file mode 100644
index af7e790..0000000
--- a/node_modules/rxjs/operator/every.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/every';
diff --git a/node_modules/rxjs/operator/every.js b/node_modules/rxjs/operator/every.js
deleted file mode 100644
index 44ae6ea..0000000
--- a/node_modules/rxjs/operator/every.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/every"));
-//# sourceMappingURL=every.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/every.js.map b/node_modules/rxjs/operator/every.js.map
deleted file mode 100644
index b205b7c..0000000
--- a/node_modules/rxjs/operator/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../src/operator/every.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/exhaust.d.ts b/node_modules/rxjs/operator/exhaust.d.ts
deleted file mode 100644
index 7af3d2f..0000000
--- a/node_modules/rxjs/operator/exhaust.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/exhaust';
diff --git a/node_modules/rxjs/operator/exhaust.js b/node_modules/rxjs/operator/exhaust.js
deleted file mode 100644
index 20713a3..0000000
--- a/node_modules/rxjs/operator/exhaust.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/exhaust"));
-//# sourceMappingURL=exhaust.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/exhaust.js.map b/node_modules/rxjs/operator/exhaust.js.map
deleted file mode 100644
index 339cfeb..0000000
--- a/node_modules/rxjs/operator/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../src/operator/exhaust.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/exhaustMap.d.ts b/node_modules/rxjs/operator/exhaustMap.d.ts
deleted file mode 100644
index 822438a..0000000
--- a/node_modules/rxjs/operator/exhaustMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/exhaustMap';
diff --git a/node_modules/rxjs/operator/exhaustMap.js b/node_modules/rxjs/operator/exhaustMap.js
deleted file mode 100644
index 203ff36..0000000
--- a/node_modules/rxjs/operator/exhaustMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/exhaustMap"));
-//# sourceMappingURL=exhaustMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/exhaustMap.js.map b/node_modules/rxjs/operator/exhaustMap.js.map
deleted file mode 100644
index 62db5c3..0000000
--- a/node_modules/rxjs/operator/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../src/operator/exhaustMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/expand.d.ts b/node_modules/rxjs/operator/expand.d.ts
deleted file mode 100644
index 11df701..0000000
--- a/node_modules/rxjs/operator/expand.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/expand';
diff --git a/node_modules/rxjs/operator/expand.js b/node_modules/rxjs/operator/expand.js
deleted file mode 100644
index 9068f9d..0000000
--- a/node_modules/rxjs/operator/expand.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/expand"));
-//# sourceMappingURL=expand.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/expand.js.map b/node_modules/rxjs/operator/expand.js.map
deleted file mode 100644
index 339c0f2..0000000
--- a/node_modules/rxjs/operator/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../src/operator/expand.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/filter.d.ts b/node_modules/rxjs/operator/filter.d.ts
deleted file mode 100644
index ccc2f24..0000000
--- a/node_modules/rxjs/operator/filter.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/filter';
diff --git a/node_modules/rxjs/operator/filter.js b/node_modules/rxjs/operator/filter.js
deleted file mode 100644
index 9c52bd7..0000000
--- a/node_modules/rxjs/operator/filter.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/filter"));
-//# sourceMappingURL=filter.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/filter.js.map b/node_modules/rxjs/operator/filter.js.map
deleted file mode 100644
index 6caec4d..0000000
--- a/node_modules/rxjs/operator/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../src/operator/filter.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/finally.d.ts b/node_modules/rxjs/operator/finally.d.ts
deleted file mode 100644
index a21b3e1..0000000
--- a/node_modules/rxjs/operator/finally.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/finally';
diff --git a/node_modules/rxjs/operator/finally.js b/node_modules/rxjs/operator/finally.js
deleted file mode 100644
index ab766d9..0000000
--- a/node_modules/rxjs/operator/finally.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/finally"));
-//# sourceMappingURL=finally.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/finally.js.map b/node_modules/rxjs/operator/finally.js.map
deleted file mode 100644
index 5454dfb..0000000
--- a/node_modules/rxjs/operator/finally.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finally.js","sources":["../src/operator/finally.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/find.d.ts b/node_modules/rxjs/operator/find.d.ts
deleted file mode 100644
index face44b..0000000
--- a/node_modules/rxjs/operator/find.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/find';
diff --git a/node_modules/rxjs/operator/find.js b/node_modules/rxjs/operator/find.js
deleted file mode 100644
index 03d1ccd..0000000
--- a/node_modules/rxjs/operator/find.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/find"));
-//# sourceMappingURL=find.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/find.js.map b/node_modules/rxjs/operator/find.js.map
deleted file mode 100644
index 1da869d..0000000
--- a/node_modules/rxjs/operator/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../src/operator/find.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/findIndex.d.ts b/node_modules/rxjs/operator/findIndex.d.ts
deleted file mode 100644
index dd0297a..0000000
--- a/node_modules/rxjs/operator/findIndex.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/findIndex';
diff --git a/node_modules/rxjs/operator/findIndex.js b/node_modules/rxjs/operator/findIndex.js
deleted file mode 100644
index 94311e3..0000000
--- a/node_modules/rxjs/operator/findIndex.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/findIndex"));
-//# sourceMappingURL=findIndex.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/findIndex.js.map b/node_modules/rxjs/operator/findIndex.js.map
deleted file mode 100644
index a69337e..0000000
--- a/node_modules/rxjs/operator/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../src/operator/findIndex.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/first.d.ts b/node_modules/rxjs/operator/first.d.ts
deleted file mode 100644
index 86843ed..0000000
--- a/node_modules/rxjs/operator/first.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/first';
diff --git a/node_modules/rxjs/operator/first.js b/node_modules/rxjs/operator/first.js
deleted file mode 100644
index 051ee8e..0000000
--- a/node_modules/rxjs/operator/first.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/first"));
-//# sourceMappingURL=first.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/first.js.map b/node_modules/rxjs/operator/first.js.map
deleted file mode 100644
index cdadf42..0000000
--- a/node_modules/rxjs/operator/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../src/operator/first.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/groupBy.d.ts b/node_modules/rxjs/operator/groupBy.d.ts
deleted file mode 100644
index 648fac9..0000000
--- a/node_modules/rxjs/operator/groupBy.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/groupBy';
diff --git a/node_modules/rxjs/operator/groupBy.js b/node_modules/rxjs/operator/groupBy.js
deleted file mode 100644
index 4bb164a..0000000
--- a/node_modules/rxjs/operator/groupBy.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/groupBy"));
-//# sourceMappingURL=groupBy.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/groupBy.js.map b/node_modules/rxjs/operator/groupBy.js.map
deleted file mode 100644
index 64094ed..0000000
--- a/node_modules/rxjs/operator/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../src/operator/groupBy.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/ignoreElements.d.ts b/node_modules/rxjs/operator/ignoreElements.d.ts
deleted file mode 100644
index b9c3eef..0000000
--- a/node_modules/rxjs/operator/ignoreElements.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/ignoreElements';
diff --git a/node_modules/rxjs/operator/ignoreElements.js b/node_modules/rxjs/operator/ignoreElements.js
deleted file mode 100644
index 99e70f5..0000000
--- a/node_modules/rxjs/operator/ignoreElements.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/ignoreElements"));
-//# sourceMappingURL=ignoreElements.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/ignoreElements.js.map b/node_modules/rxjs/operator/ignoreElements.js.map
deleted file mode 100644
index f5c6715..0000000
--- a/node_modules/rxjs/operator/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../src/operator/ignoreElements.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operator/isEmpty.d.ts b/node_modules/rxjs/operator/isEmpty.d.ts
deleted file mode 100644
index 03da532..0000000
--- a/node_modules/rxjs/operator/isEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/isEmpty';
diff --git a/node_modules/rxjs/operator/isEmpty.js b/node_modules/rxjs/operator/isEmpty.js
deleted file mode 100644
index ccdc3f3..0000000
--- a/node_modules/rxjs/operator/isEmpty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/isEmpty"));
-//# sourceMappingURL=isEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/isEmpty.js.map b/node_modules/rxjs/operator/isEmpty.js.map
deleted file mode 100644
index f321f6d..0000000
--- a/node_modules/rxjs/operator/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../src/operator/isEmpty.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/last.d.ts b/node_modules/rxjs/operator/last.d.ts
deleted file mode 100644
index 2d42da8..0000000
--- a/node_modules/rxjs/operator/last.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/last';
diff --git a/node_modules/rxjs/operator/last.js b/node_modules/rxjs/operator/last.js
deleted file mode 100644
index f2e9c4d..0000000
--- a/node_modules/rxjs/operator/last.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/last"));
-//# sourceMappingURL=last.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/last.js.map b/node_modules/rxjs/operator/last.js.map
deleted file mode 100644
index df2ee70..0000000
--- a/node_modules/rxjs/operator/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../src/operator/last.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/let.d.ts b/node_modules/rxjs/operator/let.d.ts
deleted file mode 100644
index 0f25011..0000000
--- a/node_modules/rxjs/operator/let.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/let';
diff --git a/node_modules/rxjs/operator/let.js b/node_modules/rxjs/operator/let.js
deleted file mode 100644
index 0d9ac56..0000000
--- a/node_modules/rxjs/operator/let.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/let"));
-//# sourceMappingURL=let.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/let.js.map b/node_modules/rxjs/operator/let.js.map
deleted file mode 100644
index cec78e6..0000000
--- a/node_modules/rxjs/operator/let.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"let.js","sources":["../src/operator/let.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/operator/map.d.ts b/node_modules/rxjs/operator/map.d.ts
deleted file mode 100644
index 00af2a0..0000000
--- a/node_modules/rxjs/operator/map.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/map';
diff --git a/node_modules/rxjs/operator/map.js b/node_modules/rxjs/operator/map.js
deleted file mode 100644
index 00a3de5..0000000
--- a/node_modules/rxjs/operator/map.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/map"));
-//# sourceMappingURL=map.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/map.js.map b/node_modules/rxjs/operator/map.js.map
deleted file mode 100644
index 2e5a328..0000000
--- a/node_modules/rxjs/operator/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../src/operator/map.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/operator/mapTo.d.ts b/node_modules/rxjs/operator/mapTo.d.ts
deleted file mode 100644
index ad51274..0000000
--- a/node_modules/rxjs/operator/mapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mapTo';
diff --git a/node_modules/rxjs/operator/mapTo.js b/node_modules/rxjs/operator/mapTo.js
deleted file mode 100644
index bd36257..0000000
--- a/node_modules/rxjs/operator/mapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/mapTo"));
-//# sourceMappingURL=mapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/mapTo.js.map b/node_modules/rxjs/operator/mapTo.js.map
deleted file mode 100644
index 4e0bb6d..0000000
--- a/node_modules/rxjs/operator/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../src/operator/mapTo.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/materialize.d.ts b/node_modules/rxjs/operator/materialize.d.ts
deleted file mode 100644
index 57d501d..0000000
--- a/node_modules/rxjs/operator/materialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/materialize';
diff --git a/node_modules/rxjs/operator/materialize.js b/node_modules/rxjs/operator/materialize.js
deleted file mode 100644
index f9de722..0000000
--- a/node_modules/rxjs/operator/materialize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/materialize"));
-//# sourceMappingURL=materialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/materialize.js.map b/node_modules/rxjs/operator/materialize.js.map
deleted file mode 100644
index 8609265..0000000
--- a/node_modules/rxjs/operator/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../src/operator/materialize.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/max.d.ts b/node_modules/rxjs/operator/max.d.ts
deleted file mode 100644
index e7efcd7..0000000
--- a/node_modules/rxjs/operator/max.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/max';
diff --git a/node_modules/rxjs/operator/max.js b/node_modules/rxjs/operator/max.js
deleted file mode 100644
index abbad54..0000000
--- a/node_modules/rxjs/operator/max.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/max"));
-//# sourceMappingURL=max.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/max.js.map b/node_modules/rxjs/operator/max.js.map
deleted file mode 100644
index c359d66..0000000
--- a/node_modules/rxjs/operator/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../src/operator/max.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/operator/merge.d.ts b/node_modules/rxjs/operator/merge.d.ts
deleted file mode 100644
index 039a0d2..0000000
--- a/node_modules/rxjs/operator/merge.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/merge';
diff --git a/node_modules/rxjs/operator/merge.js b/node_modules/rxjs/operator/merge.js
deleted file mode 100644
index 00b6dc4..0000000
--- a/node_modules/rxjs/operator/merge.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/merge"));
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/merge.js.map b/node_modules/rxjs/operator/merge.js.map
deleted file mode 100644
index 78f822b..0000000
--- a/node_modules/rxjs/operator/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../src/operator/merge.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/mergeAll.d.ts b/node_modules/rxjs/operator/mergeAll.d.ts
deleted file mode 100644
index 1527cc9..0000000
--- a/node_modules/rxjs/operator/mergeAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeAll';
diff --git a/node_modules/rxjs/operator/mergeAll.js b/node_modules/rxjs/operator/mergeAll.js
deleted file mode 100644
index a989c61..0000000
--- a/node_modules/rxjs/operator/mergeAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/mergeAll"));
-//# sourceMappingURL=mergeAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/mergeAll.js.map b/node_modules/rxjs/operator/mergeAll.js.map
deleted file mode 100644
index 20c167c..0000000
--- a/node_modules/rxjs/operator/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../src/operator/mergeAll.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/mergeMap.d.ts b/node_modules/rxjs/operator/mergeMap.d.ts
deleted file mode 100644
index d091762..0000000
--- a/node_modules/rxjs/operator/mergeMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeMap';
diff --git a/node_modules/rxjs/operator/mergeMap.js b/node_modules/rxjs/operator/mergeMap.js
deleted file mode 100644
index f980c46..0000000
--- a/node_modules/rxjs/operator/mergeMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/mergeMap"));
-//# sourceMappingURL=mergeMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/mergeMap.js.map b/node_modules/rxjs/operator/mergeMap.js.map
deleted file mode 100644
index c371a3a..0000000
--- a/node_modules/rxjs/operator/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../src/operator/mergeMap.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/mergeMapTo.d.ts b/node_modules/rxjs/operator/mergeMapTo.d.ts
deleted file mode 100644
index 2503ab4..0000000
--- a/node_modules/rxjs/operator/mergeMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeMapTo';
diff --git a/node_modules/rxjs/operator/mergeMapTo.js b/node_modules/rxjs/operator/mergeMapTo.js
deleted file mode 100644
index 949cc81..0000000
--- a/node_modules/rxjs/operator/mergeMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/mergeMapTo"));
-//# sourceMappingURL=mergeMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/mergeMapTo.js.map b/node_modules/rxjs/operator/mergeMapTo.js.map
deleted file mode 100644
index 78c2f57..0000000
--- a/node_modules/rxjs/operator/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../src/operator/mergeMapTo.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/mergeScan.d.ts b/node_modules/rxjs/operator/mergeScan.d.ts
deleted file mode 100644
index f8fd1be..0000000
--- a/node_modules/rxjs/operator/mergeScan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeScan';
diff --git a/node_modules/rxjs/operator/mergeScan.js b/node_modules/rxjs/operator/mergeScan.js
deleted file mode 100644
index 1f004ab..0000000
--- a/node_modules/rxjs/operator/mergeScan.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/mergeScan"));
-//# sourceMappingURL=mergeScan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/mergeScan.js.map b/node_modules/rxjs/operator/mergeScan.js.map
deleted file mode 100644
index 83e1600..0000000
--- a/node_modules/rxjs/operator/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../src/operator/mergeScan.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/min.d.ts b/node_modules/rxjs/operator/min.d.ts
deleted file mode 100644
index b082666..0000000
--- a/node_modules/rxjs/operator/min.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/min';
diff --git a/node_modules/rxjs/operator/min.js b/node_modules/rxjs/operator/min.js
deleted file mode 100644
index 16a81e6..0000000
--- a/node_modules/rxjs/operator/min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/min"));
-//# sourceMappingURL=min.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/min.js.map b/node_modules/rxjs/operator/min.js.map
deleted file mode 100644
index 645b413..0000000
--- a/node_modules/rxjs/operator/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../src/operator/min.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/operator/multicast.d.ts b/node_modules/rxjs/operator/multicast.d.ts
deleted file mode 100644
index 16822ab..0000000
--- a/node_modules/rxjs/operator/multicast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/multicast';
diff --git a/node_modules/rxjs/operator/multicast.js b/node_modules/rxjs/operator/multicast.js
deleted file mode 100644
index f3fca31..0000000
--- a/node_modules/rxjs/operator/multicast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/multicast"));
-//# sourceMappingURL=multicast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/multicast.js.map b/node_modules/rxjs/operator/multicast.js.map
deleted file mode 100644
index 23aae0a..0000000
--- a/node_modules/rxjs/operator/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../src/operator/multicast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/observeOn.d.ts b/node_modules/rxjs/operator/observeOn.d.ts
deleted file mode 100644
index 49d52cf..0000000
--- a/node_modules/rxjs/operator/observeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/observeOn';
diff --git a/node_modules/rxjs/operator/observeOn.js b/node_modules/rxjs/operator/observeOn.js
deleted file mode 100644
index 2f7b797..0000000
--- a/node_modules/rxjs/operator/observeOn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/observeOn"));
-//# sourceMappingURL=observeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/observeOn.js.map b/node_modules/rxjs/operator/observeOn.js.map
deleted file mode 100644
index ebe37d5..0000000
--- a/node_modules/rxjs/operator/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../src/operator/observeOn.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/onErrorResumeNext.d.ts b/node_modules/rxjs/operator/onErrorResumeNext.d.ts
deleted file mode 100644
index dee5c58..0000000
--- a/node_modules/rxjs/operator/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/onErrorResumeNext';
diff --git a/node_modules/rxjs/operator/onErrorResumeNext.js b/node_modules/rxjs/operator/onErrorResumeNext.js
deleted file mode 100644
index e6b1b6b..0000000
--- a/node_modules/rxjs/operator/onErrorResumeNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/onErrorResumeNext"));
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/onErrorResumeNext.js.map b/node_modules/rxjs/operator/onErrorResumeNext.js.map
deleted file mode 100644
index ff363fb..0000000
--- a/node_modules/rxjs/operator/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../src/operator/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/operator/pairwise.d.ts b/node_modules/rxjs/operator/pairwise.d.ts
deleted file mode 100644
index 2db66e0..0000000
--- a/node_modules/rxjs/operator/pairwise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/pairwise';
diff --git a/node_modules/rxjs/operator/pairwise.js b/node_modules/rxjs/operator/pairwise.js
deleted file mode 100644
index c65339a..0000000
--- a/node_modules/rxjs/operator/pairwise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/pairwise"));
-//# sourceMappingURL=pairwise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/pairwise.js.map b/node_modules/rxjs/operator/pairwise.js.map
deleted file mode 100644
index 2bcd50d..0000000
--- a/node_modules/rxjs/operator/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../src/operator/pairwise.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/partition.d.ts b/node_modules/rxjs/operator/partition.d.ts
deleted file mode 100644
index ffb693b..0000000
--- a/node_modules/rxjs/operator/partition.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/partition';
diff --git a/node_modules/rxjs/operator/partition.js b/node_modules/rxjs/operator/partition.js
deleted file mode 100644
index 5127c15..0000000
--- a/node_modules/rxjs/operator/partition.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/partition"));
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/partition.js.map b/node_modules/rxjs/operator/partition.js.map
deleted file mode 100644
index 1a025ca..0000000
--- a/node_modules/rxjs/operator/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../src/operator/partition.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/pluck.d.ts b/node_modules/rxjs/operator/pluck.d.ts
deleted file mode 100644
index cd308f2..0000000
--- a/node_modules/rxjs/operator/pluck.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/pluck';
diff --git a/node_modules/rxjs/operator/pluck.js b/node_modules/rxjs/operator/pluck.js
deleted file mode 100644
index 023f73d..0000000
--- a/node_modules/rxjs/operator/pluck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/pluck"));
-//# sourceMappingURL=pluck.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/pluck.js.map b/node_modules/rxjs/operator/pluck.js.map
deleted file mode 100644
index 1dd7d98..0000000
--- a/node_modules/rxjs/operator/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../src/operator/pluck.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/publish.d.ts b/node_modules/rxjs/operator/publish.d.ts
deleted file mode 100644
index 44f7a52..0000000
--- a/node_modules/rxjs/operator/publish.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publish';
diff --git a/node_modules/rxjs/operator/publish.js b/node_modules/rxjs/operator/publish.js
deleted file mode 100644
index d7ba991..0000000
--- a/node_modules/rxjs/operator/publish.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/publish"));
-//# sourceMappingURL=publish.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/publish.js.map b/node_modules/rxjs/operator/publish.js.map
deleted file mode 100644
index a28014f..0000000
--- a/node_modules/rxjs/operator/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../src/operator/publish.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/publishBehavior.d.ts b/node_modules/rxjs/operator/publishBehavior.d.ts
deleted file mode 100644
index ae6df51..0000000
--- a/node_modules/rxjs/operator/publishBehavior.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishBehavior';
diff --git a/node_modules/rxjs/operator/publishBehavior.js b/node_modules/rxjs/operator/publishBehavior.js
deleted file mode 100644
index c506071..0000000
--- a/node_modules/rxjs/operator/publishBehavior.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/publishBehavior"));
-//# sourceMappingURL=publishBehavior.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/publishBehavior.js.map b/node_modules/rxjs/operator/publishBehavior.js.map
deleted file mode 100644
index 2e06416..0000000
--- a/node_modules/rxjs/operator/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../src/operator/publishBehavior.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/operator/publishLast.d.ts b/node_modules/rxjs/operator/publishLast.d.ts
deleted file mode 100644
index b8b857f..0000000
--- a/node_modules/rxjs/operator/publishLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishLast';
diff --git a/node_modules/rxjs/operator/publishLast.js b/node_modules/rxjs/operator/publishLast.js
deleted file mode 100644
index c627f74..0000000
--- a/node_modules/rxjs/operator/publishLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/publishLast"));
-//# sourceMappingURL=publishLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/publishLast.js.map b/node_modules/rxjs/operator/publishLast.js.map
deleted file mode 100644
index 7a5491e..0000000
--- a/node_modules/rxjs/operator/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../src/operator/publishLast.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/publishReplay.d.ts b/node_modules/rxjs/operator/publishReplay.d.ts
deleted file mode 100644
index d515665..0000000
--- a/node_modules/rxjs/operator/publishReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishReplay';
diff --git a/node_modules/rxjs/operator/publishReplay.js b/node_modules/rxjs/operator/publishReplay.js
deleted file mode 100644
index 5c1e4bd..0000000
--- a/node_modules/rxjs/operator/publishReplay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/publishReplay"));
-//# sourceMappingURL=publishReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/publishReplay.js.map b/node_modules/rxjs/operator/publishReplay.js.map
deleted file mode 100644
index cc770ca..0000000
--- a/node_modules/rxjs/operator/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../src/operator/publishReplay.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operator/race.d.ts b/node_modules/rxjs/operator/race.d.ts
deleted file mode 100644
index 1371230..0000000
--- a/node_modules/rxjs/operator/race.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/race';
diff --git a/node_modules/rxjs/operator/race.js b/node_modules/rxjs/operator/race.js
deleted file mode 100644
index 038bf34..0000000
--- a/node_modules/rxjs/operator/race.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/race"));
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/race.js.map b/node_modules/rxjs/operator/race.js.map
deleted file mode 100644
index 374e415..0000000
--- a/node_modules/rxjs/operator/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../src/operator/race.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/reduce.d.ts b/node_modules/rxjs/operator/reduce.d.ts
deleted file mode 100644
index 3051a59..0000000
--- a/node_modules/rxjs/operator/reduce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/reduce';
diff --git a/node_modules/rxjs/operator/reduce.js b/node_modules/rxjs/operator/reduce.js
deleted file mode 100644
index 47c6002..0000000
--- a/node_modules/rxjs/operator/reduce.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/reduce"));
-//# sourceMappingURL=reduce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/reduce.js.map b/node_modules/rxjs/operator/reduce.js.map
deleted file mode 100644
index af7569e..0000000
--- a/node_modules/rxjs/operator/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../src/operator/reduce.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/repeat.d.ts b/node_modules/rxjs/operator/repeat.d.ts
deleted file mode 100644
index 3cf8344..0000000
--- a/node_modules/rxjs/operator/repeat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/repeat';
diff --git a/node_modules/rxjs/operator/repeat.js b/node_modules/rxjs/operator/repeat.js
deleted file mode 100644
index 8ab3b5a..0000000
--- a/node_modules/rxjs/operator/repeat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/repeat"));
-//# sourceMappingURL=repeat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/repeat.js.map b/node_modules/rxjs/operator/repeat.js.map
deleted file mode 100644
index b1b305d..0000000
--- a/node_modules/rxjs/operator/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../src/operator/repeat.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/repeatWhen.d.ts b/node_modules/rxjs/operator/repeatWhen.d.ts
deleted file mode 100644
index c8ab403..0000000
--- a/node_modules/rxjs/operator/repeatWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/repeatWhen';
diff --git a/node_modules/rxjs/operator/repeatWhen.js b/node_modules/rxjs/operator/repeatWhen.js
deleted file mode 100644
index 1285196..0000000
--- a/node_modules/rxjs/operator/repeatWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/repeatWhen"));
-//# sourceMappingURL=repeatWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/repeatWhen.js.map b/node_modules/rxjs/operator/repeatWhen.js.map
deleted file mode 100644
index 83becb3..0000000
--- a/node_modules/rxjs/operator/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../src/operator/repeatWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/retry.d.ts b/node_modules/rxjs/operator/retry.d.ts
deleted file mode 100644
index ea76932..0000000
--- a/node_modules/rxjs/operator/retry.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/retry';
diff --git a/node_modules/rxjs/operator/retry.js b/node_modules/rxjs/operator/retry.js
deleted file mode 100644
index 7c8febb..0000000
--- a/node_modules/rxjs/operator/retry.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/retry"));
-//# sourceMappingURL=retry.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/retry.js.map b/node_modules/rxjs/operator/retry.js.map
deleted file mode 100644
index d27a262..0000000
--- a/node_modules/rxjs/operator/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../src/operator/retry.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/retryWhen.d.ts b/node_modules/rxjs/operator/retryWhen.d.ts
deleted file mode 100644
index c1c4a4d..0000000
--- a/node_modules/rxjs/operator/retryWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/retryWhen';
diff --git a/node_modules/rxjs/operator/retryWhen.js b/node_modules/rxjs/operator/retryWhen.js
deleted file mode 100644
index 918d177..0000000
--- a/node_modules/rxjs/operator/retryWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/retryWhen"));
-//# sourceMappingURL=retryWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/retryWhen.js.map b/node_modules/rxjs/operator/retryWhen.js.map
deleted file mode 100644
index e6126f6..0000000
--- a/node_modules/rxjs/operator/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../src/operator/retryWhen.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/sample.d.ts b/node_modules/rxjs/operator/sample.d.ts
deleted file mode 100644
index 50c4485..0000000
--- a/node_modules/rxjs/operator/sample.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sample';
diff --git a/node_modules/rxjs/operator/sample.js b/node_modules/rxjs/operator/sample.js
deleted file mode 100644
index f0b65f7..0000000
--- a/node_modules/rxjs/operator/sample.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/sample"));
-//# sourceMappingURL=sample.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/sample.js.map b/node_modules/rxjs/operator/sample.js.map
deleted file mode 100644
index 1f24b84..0000000
--- a/node_modules/rxjs/operator/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../src/operator/sample.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/sampleTime.d.ts b/node_modules/rxjs/operator/sampleTime.d.ts
deleted file mode 100644
index 6a88266..0000000
--- a/node_modules/rxjs/operator/sampleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sampleTime';
diff --git a/node_modules/rxjs/operator/sampleTime.js b/node_modules/rxjs/operator/sampleTime.js
deleted file mode 100644
index b46e3b3..0000000
--- a/node_modules/rxjs/operator/sampleTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/sampleTime"));
-//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/sampleTime.js.map b/node_modules/rxjs/operator/sampleTime.js.map
deleted file mode 100644
index 383ebf0..0000000
--- a/node_modules/rxjs/operator/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../src/operator/sampleTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/scan.d.ts b/node_modules/rxjs/operator/scan.d.ts
deleted file mode 100644
index 07d5f63..0000000
--- a/node_modules/rxjs/operator/scan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/scan';
diff --git a/node_modules/rxjs/operator/scan.js b/node_modules/rxjs/operator/scan.js
deleted file mode 100644
index 09347a2..0000000
--- a/node_modules/rxjs/operator/scan.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/scan"));
-//# sourceMappingURL=scan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/scan.js.map b/node_modules/rxjs/operator/scan.js.map
deleted file mode 100644
index cec991e..0000000
--- a/node_modules/rxjs/operator/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../src/operator/scan.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/sequenceEqual.d.ts b/node_modules/rxjs/operator/sequenceEqual.d.ts
deleted file mode 100644
index 8a324c2..0000000
--- a/node_modules/rxjs/operator/sequenceEqual.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sequenceEqual';
diff --git a/node_modules/rxjs/operator/sequenceEqual.js b/node_modules/rxjs/operator/sequenceEqual.js
deleted file mode 100644
index 42e3723..0000000
--- a/node_modules/rxjs/operator/sequenceEqual.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/sequenceEqual"));
-//# sourceMappingURL=sequenceEqual.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/sequenceEqual.js.map b/node_modules/rxjs/operator/sequenceEqual.js.map
deleted file mode 100644
index 18a613d..0000000
--- a/node_modules/rxjs/operator/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../src/operator/sequenceEqual.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operator/share.d.ts b/node_modules/rxjs/operator/share.d.ts
deleted file mode 100644
index 7dcde39..0000000
--- a/node_modules/rxjs/operator/share.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/share';
diff --git a/node_modules/rxjs/operator/share.js b/node_modules/rxjs/operator/share.js
deleted file mode 100644
index d94a634..0000000
--- a/node_modules/rxjs/operator/share.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/share"));
-//# sourceMappingURL=share.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/share.js.map b/node_modules/rxjs/operator/share.js.map
deleted file mode 100644
index c5eb0b5..0000000
--- a/node_modules/rxjs/operator/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../src/operator/share.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operator/shareReplay.d.ts b/node_modules/rxjs/operator/shareReplay.d.ts
deleted file mode 100644
index 7889029..0000000
--- a/node_modules/rxjs/operator/shareReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/shareReplay';
diff --git a/node_modules/rxjs/operator/shareReplay.js b/node_modules/rxjs/operator/shareReplay.js
deleted file mode 100644
index d3a1717..0000000
--- a/node_modules/rxjs/operator/shareReplay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/shareReplay"));
-//# sourceMappingURL=shareReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/shareReplay.js.map b/node_modules/rxjs/operator/shareReplay.js.map
deleted file mode 100644
index 9c032b9..0000000
--- a/node_modules/rxjs/operator/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../src/operator/shareReplay.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/single.d.ts b/node_modules/rxjs/operator/single.d.ts
deleted file mode 100644
index 0b289da..0000000
--- a/node_modules/rxjs/operator/single.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/single';
diff --git a/node_modules/rxjs/operator/single.js b/node_modules/rxjs/operator/single.js
deleted file mode 100644
index 0d9761e..0000000
--- a/node_modules/rxjs/operator/single.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/single"));
-//# sourceMappingURL=single.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/single.js.map b/node_modules/rxjs/operator/single.js.map
deleted file mode 100644
index 477a990..0000000
--- a/node_modules/rxjs/operator/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../src/operator/single.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/skip.d.ts b/node_modules/rxjs/operator/skip.d.ts
deleted file mode 100644
index 830890c..0000000
--- a/node_modules/rxjs/operator/skip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skip';
diff --git a/node_modules/rxjs/operator/skip.js b/node_modules/rxjs/operator/skip.js
deleted file mode 100644
index 955b451..0000000
--- a/node_modules/rxjs/operator/skip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/skip"));
-//# sourceMappingURL=skip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/skip.js.map b/node_modules/rxjs/operator/skip.js.map
deleted file mode 100644
index 31c1010..0000000
--- a/node_modules/rxjs/operator/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../src/operator/skip.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/skipLast.d.ts b/node_modules/rxjs/operator/skipLast.d.ts
deleted file mode 100644
index 504d7d7..0000000
--- a/node_modules/rxjs/operator/skipLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipLast';
diff --git a/node_modules/rxjs/operator/skipLast.js b/node_modules/rxjs/operator/skipLast.js
deleted file mode 100644
index 3e7d601..0000000
--- a/node_modules/rxjs/operator/skipLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/skipLast"));
-//# sourceMappingURL=skipLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/skipLast.js.map b/node_modules/rxjs/operator/skipLast.js.map
deleted file mode 100644
index 1a84e51..0000000
--- a/node_modules/rxjs/operator/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../src/operator/skipLast.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/skipUntil.d.ts b/node_modules/rxjs/operator/skipUntil.d.ts
deleted file mode 100644
index c942abc..0000000
--- a/node_modules/rxjs/operator/skipUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipUntil';
diff --git a/node_modules/rxjs/operator/skipUntil.js b/node_modules/rxjs/operator/skipUntil.js
deleted file mode 100644
index b4e7b0e..0000000
--- a/node_modules/rxjs/operator/skipUntil.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/skipUntil"));
-//# sourceMappingURL=skipUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/skipUntil.js.map b/node_modules/rxjs/operator/skipUntil.js.map
deleted file mode 100644
index 4b9a445..0000000
--- a/node_modules/rxjs/operator/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../src/operator/skipUntil.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/skipWhile.d.ts b/node_modules/rxjs/operator/skipWhile.d.ts
deleted file mode 100644
index 1ec1baf..0000000
--- a/node_modules/rxjs/operator/skipWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipWhile';
diff --git a/node_modules/rxjs/operator/skipWhile.js b/node_modules/rxjs/operator/skipWhile.js
deleted file mode 100644
index d737910..0000000
--- a/node_modules/rxjs/operator/skipWhile.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/skipWhile"));
-//# sourceMappingURL=skipWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/skipWhile.js.map b/node_modules/rxjs/operator/skipWhile.js.map
deleted file mode 100644
index 89540c4..0000000
--- a/node_modules/rxjs/operator/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../src/operator/skipWhile.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/startWith.d.ts b/node_modules/rxjs/operator/startWith.d.ts
deleted file mode 100644
index 88b22fb..0000000
--- a/node_modules/rxjs/operator/startWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/startWith';
diff --git a/node_modules/rxjs/operator/startWith.js b/node_modules/rxjs/operator/startWith.js
deleted file mode 100644
index f4f88ab..0000000
--- a/node_modules/rxjs/operator/startWith.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/startWith"));
-//# sourceMappingURL=startWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/startWith.js.map b/node_modules/rxjs/operator/startWith.js.map
deleted file mode 100644
index c8c02e2..0000000
--- a/node_modules/rxjs/operator/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../src/operator/startWith.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/subscribeOn.d.ts b/node_modules/rxjs/operator/subscribeOn.d.ts
deleted file mode 100644
index d5fe5c3..0000000
--- a/node_modules/rxjs/operator/subscribeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/subscribeOn';
diff --git a/node_modules/rxjs/operator/subscribeOn.js b/node_modules/rxjs/operator/subscribeOn.js
deleted file mode 100644
index bd9c58c..0000000
--- a/node_modules/rxjs/operator/subscribeOn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/subscribeOn"));
-//# sourceMappingURL=subscribeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/subscribeOn.js.map b/node_modules/rxjs/operator/subscribeOn.js.map
deleted file mode 100644
index 359d96f..0000000
--- a/node_modules/rxjs/operator/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../src/operator/subscribeOn.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/switch.d.ts b/node_modules/rxjs/operator/switch.d.ts
deleted file mode 100644
index 2cbae8f..0000000
--- a/node_modules/rxjs/operator/switch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switch';
diff --git a/node_modules/rxjs/operator/switch.js b/node_modules/rxjs/operator/switch.js
deleted file mode 100644
index d08843a..0000000
--- a/node_modules/rxjs/operator/switch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/switch"));
-//# sourceMappingURL=switch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/switch.js.map b/node_modules/rxjs/operator/switch.js.map
deleted file mode 100644
index 7967958..0000000
--- a/node_modules/rxjs/operator/switch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switch.js","sources":["../src/operator/switch.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/switchMap.d.ts b/node_modules/rxjs/operator/switchMap.d.ts
deleted file mode 100644
index cd5ce95..0000000
--- a/node_modules/rxjs/operator/switchMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switchMap';
diff --git a/node_modules/rxjs/operator/switchMap.js b/node_modules/rxjs/operator/switchMap.js
deleted file mode 100644
index 5cca87e..0000000
--- a/node_modules/rxjs/operator/switchMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/switchMap"));
-//# sourceMappingURL=switchMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/switchMap.js.map b/node_modules/rxjs/operator/switchMap.js.map
deleted file mode 100644
index fc40d12..0000000
--- a/node_modules/rxjs/operator/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../src/operator/switchMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/switchMapTo.d.ts b/node_modules/rxjs/operator/switchMapTo.d.ts
deleted file mode 100644
index bd59ce3..0000000
--- a/node_modules/rxjs/operator/switchMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switchMapTo';
diff --git a/node_modules/rxjs/operator/switchMapTo.js b/node_modules/rxjs/operator/switchMapTo.js
deleted file mode 100644
index 855a06e..0000000
--- a/node_modules/rxjs/operator/switchMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/switchMapTo"));
-//# sourceMappingURL=switchMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/switchMapTo.js.map b/node_modules/rxjs/operator/switchMapTo.js.map
deleted file mode 100644
index d5f1d4b..0000000
--- a/node_modules/rxjs/operator/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../src/operator/switchMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/take.d.ts b/node_modules/rxjs/operator/take.d.ts
deleted file mode 100644
index c915fc3..0000000
--- a/node_modules/rxjs/operator/take.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/take';
diff --git a/node_modules/rxjs/operator/take.js b/node_modules/rxjs/operator/take.js
deleted file mode 100644
index 71296c3..0000000
--- a/node_modules/rxjs/operator/take.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/take"));
-//# sourceMappingURL=take.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/take.js.map b/node_modules/rxjs/operator/take.js.map
deleted file mode 100644
index 44e394a..0000000
--- a/node_modules/rxjs/operator/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../src/operator/take.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operator/takeLast.d.ts b/node_modules/rxjs/operator/takeLast.d.ts
deleted file mode 100644
index 78509e5..0000000
--- a/node_modules/rxjs/operator/takeLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeLast';
diff --git a/node_modules/rxjs/operator/takeLast.js b/node_modules/rxjs/operator/takeLast.js
deleted file mode 100644
index 0bc2a2b..0000000
--- a/node_modules/rxjs/operator/takeLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/takeLast"));
-//# sourceMappingURL=takeLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/takeLast.js.map b/node_modules/rxjs/operator/takeLast.js.map
deleted file mode 100644
index cb94a1c..0000000
--- a/node_modules/rxjs/operator/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../src/operator/takeLast.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/takeUntil.d.ts b/node_modules/rxjs/operator/takeUntil.d.ts
deleted file mode 100644
index 38b927b..0000000
--- a/node_modules/rxjs/operator/takeUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeUntil';
diff --git a/node_modules/rxjs/operator/takeUntil.js b/node_modules/rxjs/operator/takeUntil.js
deleted file mode 100644
index 107586c..0000000
--- a/node_modules/rxjs/operator/takeUntil.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/takeUntil"));
-//# sourceMappingURL=takeUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/takeUntil.js.map b/node_modules/rxjs/operator/takeUntil.js.map
deleted file mode 100644
index f2d2c0b..0000000
--- a/node_modules/rxjs/operator/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../src/operator/takeUntil.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/takeWhile.d.ts b/node_modules/rxjs/operator/takeWhile.d.ts
deleted file mode 100644
index b1772bd..0000000
--- a/node_modules/rxjs/operator/takeWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeWhile';
diff --git a/node_modules/rxjs/operator/takeWhile.js b/node_modules/rxjs/operator/takeWhile.js
deleted file mode 100644
index 95bf169..0000000
--- a/node_modules/rxjs/operator/takeWhile.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/takeWhile"));
-//# sourceMappingURL=takeWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/takeWhile.js.map b/node_modules/rxjs/operator/takeWhile.js.map
deleted file mode 100644
index f81cc02..0000000
--- a/node_modules/rxjs/operator/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../src/operator/takeWhile.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/throttle.d.ts b/node_modules/rxjs/operator/throttle.d.ts
deleted file mode 100644
index 9c2effc..0000000
--- a/node_modules/rxjs/operator/throttle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/throttle';
diff --git a/node_modules/rxjs/operator/throttle.js b/node_modules/rxjs/operator/throttle.js
deleted file mode 100644
index 00ba913..0000000
--- a/node_modules/rxjs/operator/throttle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/throttle"));
-//# sourceMappingURL=throttle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/throttle.js.map b/node_modules/rxjs/operator/throttle.js.map
deleted file mode 100644
index 52f17f5..0000000
--- a/node_modules/rxjs/operator/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../src/operator/throttle.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operator/throttleTime.d.ts b/node_modules/rxjs/operator/throttleTime.d.ts
deleted file mode 100644
index 7385eb0..0000000
--- a/node_modules/rxjs/operator/throttleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/throttleTime';
diff --git a/node_modules/rxjs/operator/throttleTime.js b/node_modules/rxjs/operator/throttleTime.js
deleted file mode 100644
index 27308d0..0000000
--- a/node_modules/rxjs/operator/throttleTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/throttleTime"));
-//# sourceMappingURL=throttleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/throttleTime.js.map b/node_modules/rxjs/operator/throttleTime.js.map
deleted file mode 100644
index 136f9fe..0000000
--- a/node_modules/rxjs/operator/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../src/operator/throttleTime.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operator/timeInterval.d.ts b/node_modules/rxjs/operator/timeInterval.d.ts
deleted file mode 100644
index 5f5283b..0000000
--- a/node_modules/rxjs/operator/timeInterval.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeInterval';
diff --git a/node_modules/rxjs/operator/timeInterval.js b/node_modules/rxjs/operator/timeInterval.js
deleted file mode 100644
index ca7eec1..0000000
--- a/node_modules/rxjs/operator/timeInterval.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/timeInterval"));
-//# sourceMappingURL=timeInterval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/timeInterval.js.map b/node_modules/rxjs/operator/timeInterval.js.map
deleted file mode 100644
index 2696672..0000000
--- a/node_modules/rxjs/operator/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../src/operator/timeInterval.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operator/timeout.d.ts b/node_modules/rxjs/operator/timeout.d.ts
deleted file mode 100644
index 56e0cc3..0000000
--- a/node_modules/rxjs/operator/timeout.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeout';
diff --git a/node_modules/rxjs/operator/timeout.js b/node_modules/rxjs/operator/timeout.js
deleted file mode 100644
index f2a7dd4..0000000
--- a/node_modules/rxjs/operator/timeout.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/timeout"));
-//# sourceMappingURL=timeout.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/timeout.js.map b/node_modules/rxjs/operator/timeout.js.map
deleted file mode 100644
index 05fb848..0000000
--- a/node_modules/rxjs/operator/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../src/operator/timeout.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/timeoutWith.d.ts b/node_modules/rxjs/operator/timeoutWith.d.ts
deleted file mode 100644
index e746c05..0000000
--- a/node_modules/rxjs/operator/timeoutWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeoutWith';
diff --git a/node_modules/rxjs/operator/timeoutWith.js b/node_modules/rxjs/operator/timeoutWith.js
deleted file mode 100644
index fb52eed..0000000
--- a/node_modules/rxjs/operator/timeoutWith.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/timeoutWith"));
-//# sourceMappingURL=timeoutWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/timeoutWith.js.map b/node_modules/rxjs/operator/timeoutWith.js.map
deleted file mode 100644
index ee855d4..0000000
--- a/node_modules/rxjs/operator/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../src/operator/timeoutWith.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/timestamp.d.ts b/node_modules/rxjs/operator/timestamp.d.ts
deleted file mode 100644
index 77a94e8..0000000
--- a/node_modules/rxjs/operator/timestamp.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timestamp';
diff --git a/node_modules/rxjs/operator/timestamp.js b/node_modules/rxjs/operator/timestamp.js
deleted file mode 100644
index bd87451..0000000
--- a/node_modules/rxjs/operator/timestamp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/timestamp"));
-//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/timestamp.js.map b/node_modules/rxjs/operator/timestamp.js.map
deleted file mode 100644
index 81a1dc1..0000000
--- a/node_modules/rxjs/operator/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../src/operator/timestamp.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/toArray.d.ts b/node_modules/rxjs/operator/toArray.d.ts
deleted file mode 100644
index 57c8ee1..0000000
--- a/node_modules/rxjs/operator/toArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/toArray';
diff --git a/node_modules/rxjs/operator/toArray.js b/node_modules/rxjs/operator/toArray.js
deleted file mode 100644
index 297835e..0000000
--- a/node_modules/rxjs/operator/toArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/toArray"));
-//# sourceMappingURL=toArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/toArray.js.map b/node_modules/rxjs/operator/toArray.js.map
deleted file mode 100644
index 0de6115..0000000
--- a/node_modules/rxjs/operator/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../src/operator/toArray.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operator/toPromise.d.ts b/node_modules/rxjs/operator/toPromise.d.ts
deleted file mode 100644
index b9f8cae..0000000
--- a/node_modules/rxjs/operator/toPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/toPromise';
diff --git a/node_modules/rxjs/operator/toPromise.js b/node_modules/rxjs/operator/toPromise.js
deleted file mode 100644
index c1a450c..0000000
--- a/node_modules/rxjs/operator/toPromise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/toPromise"));
-//# sourceMappingURL=toPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/toPromise.js.map b/node_modules/rxjs/operator/toPromise.js.map
deleted file mode 100644
index d7395a3..0000000
--- a/node_modules/rxjs/operator/toPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toPromise.js","sources":["../src/operator/toPromise.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operator/window.d.ts b/node_modules/rxjs/operator/window.d.ts
deleted file mode 100644
index 937f174..0000000
--- a/node_modules/rxjs/operator/window.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/window';
diff --git a/node_modules/rxjs/operator/window.js b/node_modules/rxjs/operator/window.js
deleted file mode 100644
index b43e00d..0000000
--- a/node_modules/rxjs/operator/window.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/window"));
-//# sourceMappingURL=window.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/window.js.map b/node_modules/rxjs/operator/window.js.map
deleted file mode 100644
index b4bdbc3..0000000
--- a/node_modules/rxjs/operator/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../src/operator/window.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operator/windowCount.d.ts b/node_modules/rxjs/operator/windowCount.d.ts
deleted file mode 100644
index 87392c7..0000000
--- a/node_modules/rxjs/operator/windowCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowCount';
diff --git a/node_modules/rxjs/operator/windowCount.js b/node_modules/rxjs/operator/windowCount.js
deleted file mode 100644
index bce9e1b..0000000
--- a/node_modules/rxjs/operator/windowCount.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/windowCount"));
-//# sourceMappingURL=windowCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/windowCount.js.map b/node_modules/rxjs/operator/windowCount.js.map
deleted file mode 100644
index 6dd2b1a..0000000
--- a/node_modules/rxjs/operator/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../src/operator/windowCount.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operator/windowTime.d.ts b/node_modules/rxjs/operator/windowTime.d.ts
deleted file mode 100644
index 52798df..0000000
--- a/node_modules/rxjs/operator/windowTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowTime';
diff --git a/node_modules/rxjs/operator/windowTime.js b/node_modules/rxjs/operator/windowTime.js
deleted file mode 100644
index 1652b4b..0000000
--- a/node_modules/rxjs/operator/windowTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/windowTime"));
-//# sourceMappingURL=windowTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/windowTime.js.map b/node_modules/rxjs/operator/windowTime.js.map
deleted file mode 100644
index 6ab686e..0000000
--- a/node_modules/rxjs/operator/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../src/operator/windowTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/windowToggle.d.ts b/node_modules/rxjs/operator/windowToggle.d.ts
deleted file mode 100644
index c2d8b4e..0000000
--- a/node_modules/rxjs/operator/windowToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowToggle';
diff --git a/node_modules/rxjs/operator/windowToggle.js b/node_modules/rxjs/operator/windowToggle.js
deleted file mode 100644
index 5533997..0000000
--- a/node_modules/rxjs/operator/windowToggle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/windowToggle"));
-//# sourceMappingURL=windowToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/windowToggle.js.map b/node_modules/rxjs/operator/windowToggle.js.map
deleted file mode 100644
index ac16ccf..0000000
--- a/node_modules/rxjs/operator/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../src/operator/windowToggle.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operator/windowWhen.d.ts b/node_modules/rxjs/operator/windowWhen.d.ts
deleted file mode 100644
index 1d4e2ef..0000000
--- a/node_modules/rxjs/operator/windowWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowWhen';
diff --git a/node_modules/rxjs/operator/windowWhen.js b/node_modules/rxjs/operator/windowWhen.js
deleted file mode 100644
index 3623a02..0000000
--- a/node_modules/rxjs/operator/windowWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/windowWhen"));
-//# sourceMappingURL=windowWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/windowWhen.js.map b/node_modules/rxjs/operator/windowWhen.js.map
deleted file mode 100644
index 7793ae2..0000000
--- a/node_modules/rxjs/operator/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../src/operator/windowWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operator/withLatestFrom.d.ts b/node_modules/rxjs/operator/withLatestFrom.d.ts
deleted file mode 100644
index b31197a..0000000
--- a/node_modules/rxjs/operator/withLatestFrom.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/withLatestFrom';
diff --git a/node_modules/rxjs/operator/withLatestFrom.js b/node_modules/rxjs/operator/withLatestFrom.js
deleted file mode 100644
index 889291a..0000000
--- a/node_modules/rxjs/operator/withLatestFrom.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/withLatestFrom"));
-//# sourceMappingURL=withLatestFrom.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/withLatestFrom.js.map b/node_modules/rxjs/operator/withLatestFrom.js.map
deleted file mode 100644
index 4104e3a..0000000
--- a/node_modules/rxjs/operator/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../src/operator/withLatestFrom.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operator/zip.d.ts b/node_modules/rxjs/operator/zip.d.ts
deleted file mode 100644
index 25eea26..0000000
--- a/node_modules/rxjs/operator/zip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/zip';
diff --git a/node_modules/rxjs/operator/zip.js b/node_modules/rxjs/operator/zip.js
deleted file mode 100644
index be4b205..0000000
--- a/node_modules/rxjs/operator/zip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/zip"));
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/zip.js.map b/node_modules/rxjs/operator/zip.js.map
deleted file mode 100644
index ec90001..0000000
--- a/node_modules/rxjs/operator/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../src/operator/zip.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/operator/zipAll.d.ts b/node_modules/rxjs/operator/zipAll.d.ts
deleted file mode 100644
index 1098d9d..0000000
--- a/node_modules/rxjs/operator/zipAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/zipAll';
diff --git a/node_modules/rxjs/operator/zipAll.js b/node_modules/rxjs/operator/zipAll.js
deleted file mode 100644
index 5b99781..0000000
--- a/node_modules/rxjs/operator/zipAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operator/zipAll"));
-//# sourceMappingURL=zipAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operator/zipAll.js.map b/node_modules/rxjs/operator/zipAll.js.map
deleted file mode 100644
index 9895fc4..0000000
--- a/node_modules/rxjs/operator/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../src/operator/zipAll.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/audit.d.ts b/node_modules/rxjs/operators/audit.d.ts
deleted file mode 100644
index 0e5b597..0000000
--- a/node_modules/rxjs/operators/audit.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/audit';
diff --git a/node_modules/rxjs/operators/audit.js b/node_modules/rxjs/operators/audit.js
deleted file mode 100644
index 37a4ad6..0000000
--- a/node_modules/rxjs/operators/audit.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/audit"));
-//# sourceMappingURL=audit.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/audit.js.map b/node_modules/rxjs/operators/audit.js.map
deleted file mode 100644
index 4d64b1e..0000000
--- a/node_modules/rxjs/operators/audit.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"audit.js","sources":["../src/operators/audit.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/auditTime.d.ts b/node_modules/rxjs/operators/auditTime.d.ts
deleted file mode 100644
index 72a4c00..0000000
--- a/node_modules/rxjs/operators/auditTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/auditTime';
diff --git a/node_modules/rxjs/operators/auditTime.js b/node_modules/rxjs/operators/auditTime.js
deleted file mode 100644
index 25543c3..0000000
--- a/node_modules/rxjs/operators/auditTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/auditTime"));
-//# sourceMappingURL=auditTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/auditTime.js.map b/node_modules/rxjs/operators/auditTime.js.map
deleted file mode 100644
index 007138c..0000000
--- a/node_modules/rxjs/operators/auditTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auditTime.js","sources":["../src/operators/auditTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/buffer.d.ts b/node_modules/rxjs/operators/buffer.d.ts
deleted file mode 100644
index 7007461..0000000
--- a/node_modules/rxjs/operators/buffer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/buffer';
diff --git a/node_modules/rxjs/operators/buffer.js b/node_modules/rxjs/operators/buffer.js
deleted file mode 100644
index 5feb7da..0000000
--- a/node_modules/rxjs/operators/buffer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/buffer"));
-//# sourceMappingURL=buffer.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/buffer.js.map b/node_modules/rxjs/operators/buffer.js.map
deleted file mode 100644
index 9f503dd..0000000
--- a/node_modules/rxjs/operators/buffer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"buffer.js","sources":["../src/operators/buffer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/bufferCount.d.ts b/node_modules/rxjs/operators/bufferCount.d.ts
deleted file mode 100644
index 767b33c..0000000
--- a/node_modules/rxjs/operators/bufferCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferCount';
diff --git a/node_modules/rxjs/operators/bufferCount.js b/node_modules/rxjs/operators/bufferCount.js
deleted file mode 100644
index 935b8e3..0000000
--- a/node_modules/rxjs/operators/bufferCount.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/bufferCount"));
-//# sourceMappingURL=bufferCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/bufferCount.js.map b/node_modules/rxjs/operators/bufferCount.js.map
deleted file mode 100644
index 3213996..0000000
--- a/node_modules/rxjs/operators/bufferCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferCount.js","sources":["../src/operators/bufferCount.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/bufferTime.d.ts b/node_modules/rxjs/operators/bufferTime.d.ts
deleted file mode 100644
index 085acfb..0000000
--- a/node_modules/rxjs/operators/bufferTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferTime';
diff --git a/node_modules/rxjs/operators/bufferTime.js b/node_modules/rxjs/operators/bufferTime.js
deleted file mode 100644
index 393865b..0000000
--- a/node_modules/rxjs/operators/bufferTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/bufferTime"));
-//# sourceMappingURL=bufferTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/bufferTime.js.map b/node_modules/rxjs/operators/bufferTime.js.map
deleted file mode 100644
index 36c2a33..0000000
--- a/node_modules/rxjs/operators/bufferTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferTime.js","sources":["../src/operators/bufferTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/bufferToggle.d.ts b/node_modules/rxjs/operators/bufferToggle.d.ts
deleted file mode 100644
index f554f73..0000000
--- a/node_modules/rxjs/operators/bufferToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferToggle';
diff --git a/node_modules/rxjs/operators/bufferToggle.js b/node_modules/rxjs/operators/bufferToggle.js
deleted file mode 100644
index 261ab0f..0000000
--- a/node_modules/rxjs/operators/bufferToggle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/bufferToggle"));
-//# sourceMappingURL=bufferToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/bufferToggle.js.map b/node_modules/rxjs/operators/bufferToggle.js.map
deleted file mode 100644
index eeabae9..0000000
--- a/node_modules/rxjs/operators/bufferToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferToggle.js","sources":["../src/operators/bufferToggle.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/bufferWhen.d.ts b/node_modules/rxjs/operators/bufferWhen.d.ts
deleted file mode 100644
index 7e0b79f..0000000
--- a/node_modules/rxjs/operators/bufferWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferWhen';
diff --git a/node_modules/rxjs/operators/bufferWhen.js b/node_modules/rxjs/operators/bufferWhen.js
deleted file mode 100644
index 5007f94..0000000
--- a/node_modules/rxjs/operators/bufferWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/bufferWhen"));
-//# sourceMappingURL=bufferWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/bufferWhen.js.map b/node_modules/rxjs/operators/bufferWhen.js.map
deleted file mode 100644
index 8664e61..0000000
--- a/node_modules/rxjs/operators/bufferWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bufferWhen.js","sources":["../src/operators/bufferWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/catchError.d.ts b/node_modules/rxjs/operators/catchError.d.ts
deleted file mode 100644
index 4ea9351..0000000
--- a/node_modules/rxjs/operators/catchError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/catchError';
diff --git a/node_modules/rxjs/operators/catchError.js b/node_modules/rxjs/operators/catchError.js
deleted file mode 100644
index 344f887..0000000
--- a/node_modules/rxjs/operators/catchError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/catchError"));
-//# sourceMappingURL=catchError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/catchError.js.map b/node_modules/rxjs/operators/catchError.js.map
deleted file mode 100644
index 4eaac47..0000000
--- a/node_modules/rxjs/operators/catchError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"catchError.js","sources":["../src/operators/catchError.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/combineAll.d.ts b/node_modules/rxjs/operators/combineAll.d.ts
deleted file mode 100644
index 13f2758..0000000
--- a/node_modules/rxjs/operators/combineAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/combineAll';
diff --git a/node_modules/rxjs/operators/combineAll.js b/node_modules/rxjs/operators/combineAll.js
deleted file mode 100644
index 4f1d270..0000000
--- a/node_modules/rxjs/operators/combineAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/combineAll"));
-//# sourceMappingURL=combineAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/combineAll.js.map b/node_modules/rxjs/operators/combineAll.js.map
deleted file mode 100644
index be08874..0000000
--- a/node_modules/rxjs/operators/combineAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineAll.js","sources":["../src/operators/combineAll.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/combineLatest.d.ts b/node_modules/rxjs/operators/combineLatest.d.ts
deleted file mode 100644
index cefd4d0..0000000
--- a/node_modules/rxjs/operators/combineLatest.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/combineLatest';
diff --git a/node_modules/rxjs/operators/combineLatest.js b/node_modules/rxjs/operators/combineLatest.js
deleted file mode 100644
index b6a775f..0000000
--- a/node_modules/rxjs/operators/combineLatest.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/combineLatest"));
-//# sourceMappingURL=combineLatest.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/combineLatest.js.map b/node_modules/rxjs/operators/combineLatest.js.map
deleted file mode 100644
index 07d6248..0000000
--- a/node_modules/rxjs/operators/combineLatest.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"combineLatest.js","sources":["../src/operators/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operators/concat.d.ts b/node_modules/rxjs/operators/concat.d.ts
deleted file mode 100644
index e2fae80..0000000
--- a/node_modules/rxjs/operators/concat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concat';
diff --git a/node_modules/rxjs/operators/concat.js b/node_modules/rxjs/operators/concat.js
deleted file mode 100644
index 7082e98..0000000
--- a/node_modules/rxjs/operators/concat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/concat"));
-//# sourceMappingURL=concat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/concat.js.map b/node_modules/rxjs/operators/concat.js.map
deleted file mode 100644
index 86ab797..0000000
--- a/node_modules/rxjs/operators/concat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concat.js","sources":["../src/operators/concat.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/concatAll.d.ts b/node_modules/rxjs/operators/concatAll.d.ts
deleted file mode 100644
index 4e90bf3..0000000
--- a/node_modules/rxjs/operators/concatAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatAll';
diff --git a/node_modules/rxjs/operators/concatAll.js b/node_modules/rxjs/operators/concatAll.js
deleted file mode 100644
index bc95de8..0000000
--- a/node_modules/rxjs/operators/concatAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/concatAll"));
-//# sourceMappingURL=concatAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/concatAll.js.map b/node_modules/rxjs/operators/concatAll.js.map
deleted file mode 100644
index 243d55d..0000000
--- a/node_modules/rxjs/operators/concatAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatAll.js","sources":["../src/operators/concatAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/concatMap.d.ts b/node_modules/rxjs/operators/concatMap.d.ts
deleted file mode 100644
index fb26bc0..0000000
--- a/node_modules/rxjs/operators/concatMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatMap';
diff --git a/node_modules/rxjs/operators/concatMap.js b/node_modules/rxjs/operators/concatMap.js
deleted file mode 100644
index a5ff308..0000000
--- a/node_modules/rxjs/operators/concatMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/concatMap"));
-//# sourceMappingURL=concatMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/concatMap.js.map b/node_modules/rxjs/operators/concatMap.js.map
deleted file mode 100644
index db045ca..0000000
--- a/node_modules/rxjs/operators/concatMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMap.js","sources":["../src/operators/concatMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/concatMapTo.d.ts b/node_modules/rxjs/operators/concatMapTo.d.ts
deleted file mode 100644
index f5aef40..0000000
--- a/node_modules/rxjs/operators/concatMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatMapTo';
diff --git a/node_modules/rxjs/operators/concatMapTo.js b/node_modules/rxjs/operators/concatMapTo.js
deleted file mode 100644
index c24370a..0000000
--- a/node_modules/rxjs/operators/concatMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/concatMapTo"));
-//# sourceMappingURL=concatMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/concatMapTo.js.map b/node_modules/rxjs/operators/concatMapTo.js.map
deleted file mode 100644
index 0d92af1..0000000
--- a/node_modules/rxjs/operators/concatMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"concatMapTo.js","sources":["../src/operators/concatMapTo.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/count.d.ts b/node_modules/rxjs/operators/count.d.ts
deleted file mode 100644
index db7cfe3..0000000
--- a/node_modules/rxjs/operators/count.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/count';
diff --git a/node_modules/rxjs/operators/count.js b/node_modules/rxjs/operators/count.js
deleted file mode 100644
index e909f54..0000000
--- a/node_modules/rxjs/operators/count.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/count"));
-//# sourceMappingURL=count.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/count.js.map b/node_modules/rxjs/operators/count.js.map
deleted file mode 100644
index b899345..0000000
--- a/node_modules/rxjs/operators/count.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"count.js","sources":["../src/operators/count.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/debounce.d.ts b/node_modules/rxjs/operators/debounce.d.ts
deleted file mode 100644
index ed62cb8..0000000
--- a/node_modules/rxjs/operators/debounce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/debounce';
diff --git a/node_modules/rxjs/operators/debounce.js b/node_modules/rxjs/operators/debounce.js
deleted file mode 100644
index ce3a18e..0000000
--- a/node_modules/rxjs/operators/debounce.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/debounce"));
-//# sourceMappingURL=debounce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/debounce.js.map b/node_modules/rxjs/operators/debounce.js.map
deleted file mode 100644
index 24240e3..0000000
--- a/node_modules/rxjs/operators/debounce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounce.js","sources":["../src/operators/debounce.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/debounceTime.d.ts b/node_modules/rxjs/operators/debounceTime.d.ts
deleted file mode 100644
index fb73d33..0000000
--- a/node_modules/rxjs/operators/debounceTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/debounceTime';
diff --git a/node_modules/rxjs/operators/debounceTime.js b/node_modules/rxjs/operators/debounceTime.js
deleted file mode 100644
index 0332391..0000000
--- a/node_modules/rxjs/operators/debounceTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/debounceTime"));
-//# sourceMappingURL=debounceTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/debounceTime.js.map b/node_modules/rxjs/operators/debounceTime.js.map
deleted file mode 100644
index 40494b2..0000000
--- a/node_modules/rxjs/operators/debounceTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"debounceTime.js","sources":["../src/operators/debounceTime.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/defaultIfEmpty.d.ts b/node_modules/rxjs/operators/defaultIfEmpty.d.ts
deleted file mode 100644
index 04b9e61..0000000
--- a/node_modules/rxjs/operators/defaultIfEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/defaultIfEmpty';
diff --git a/node_modules/rxjs/operators/defaultIfEmpty.js b/node_modules/rxjs/operators/defaultIfEmpty.js
deleted file mode 100644
index 59a8dec..0000000
--- a/node_modules/rxjs/operators/defaultIfEmpty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/defaultIfEmpty"));
-//# sourceMappingURL=defaultIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/defaultIfEmpty.js.map b/node_modules/rxjs/operators/defaultIfEmpty.js.map
deleted file mode 100644
index 7e3e29b..0000000
--- a/node_modules/rxjs/operators/defaultIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"defaultIfEmpty.js","sources":["../src/operators/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/operators/delay.d.ts b/node_modules/rxjs/operators/delay.d.ts
deleted file mode 100644
index d34f33d..0000000
--- a/node_modules/rxjs/operators/delay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/delay';
diff --git a/node_modules/rxjs/operators/delay.js b/node_modules/rxjs/operators/delay.js
deleted file mode 100644
index 2c431df..0000000
--- a/node_modules/rxjs/operators/delay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/delay"));
-//# sourceMappingURL=delay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/delay.js.map b/node_modules/rxjs/operators/delay.js.map
deleted file mode 100644
index 6acb026..0000000
--- a/node_modules/rxjs/operators/delay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delay.js","sources":["../src/operators/delay.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/delayWhen.d.ts b/node_modules/rxjs/operators/delayWhen.d.ts
deleted file mode 100644
index 4de1452..0000000
--- a/node_modules/rxjs/operators/delayWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/delayWhen';
diff --git a/node_modules/rxjs/operators/delayWhen.js b/node_modules/rxjs/operators/delayWhen.js
deleted file mode 100644
index 18de036..0000000
--- a/node_modules/rxjs/operators/delayWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/delayWhen"));
-//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/delayWhen.js.map b/node_modules/rxjs/operators/delayWhen.js.map
deleted file mode 100644
index 9d11aa8..0000000
--- a/node_modules/rxjs/operators/delayWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"delayWhen.js","sources":["../src/operators/delayWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/dematerialize.d.ts b/node_modules/rxjs/operators/dematerialize.d.ts
deleted file mode 100644
index a689bf0..0000000
--- a/node_modules/rxjs/operators/dematerialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/dematerialize';
diff --git a/node_modules/rxjs/operators/dematerialize.js b/node_modules/rxjs/operators/dematerialize.js
deleted file mode 100644
index eeb1107..0000000
--- a/node_modules/rxjs/operators/dematerialize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/dematerialize"));
-//# sourceMappingURL=dematerialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/dematerialize.js.map b/node_modules/rxjs/operators/dematerialize.js.map
deleted file mode 100644
index 6306ce0..0000000
--- a/node_modules/rxjs/operators/dematerialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dematerialize.js","sources":["../src/operators/dematerialize.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operators/distinct.d.ts b/node_modules/rxjs/operators/distinct.d.ts
deleted file mode 100644
index 9d8288a..0000000
--- a/node_modules/rxjs/operators/distinct.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinct';
diff --git a/node_modules/rxjs/operators/distinct.js b/node_modules/rxjs/operators/distinct.js
deleted file mode 100644
index c5b7eee..0000000
--- a/node_modules/rxjs/operators/distinct.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/distinct"));
-//# sourceMappingURL=distinct.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/distinct.js.map b/node_modules/rxjs/operators/distinct.js.map
deleted file mode 100644
index 7e6f21c..0000000
--- a/node_modules/rxjs/operators/distinct.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinct.js","sources":["../src/operators/distinct.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/distinctUntilChanged.d.ts b/node_modules/rxjs/operators/distinctUntilChanged.d.ts
deleted file mode 100644
index 1fc4eda..0000000
--- a/node_modules/rxjs/operators/distinctUntilChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinctUntilChanged';
diff --git a/node_modules/rxjs/operators/distinctUntilChanged.js b/node_modules/rxjs/operators/distinctUntilChanged.js
deleted file mode 100644
index b311cc3..0000000
--- a/node_modules/rxjs/operators/distinctUntilChanged.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/distinctUntilChanged"));
-//# sourceMappingURL=distinctUntilChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/distinctUntilChanged.js.map b/node_modules/rxjs/operators/distinctUntilChanged.js.map
deleted file mode 100644
index b762a0c..0000000
--- a/node_modules/rxjs/operators/distinctUntilChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilChanged.js","sources":["../src/operators/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"}
diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts
deleted file mode 100644
index d8fa76a..0000000
--- a/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/operators/distinctUntilKeyChanged.js
deleted file mode 100644
index 86a90f8..0000000
--- a/node_modules/rxjs/operators/distinctUntilKeyChanged.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/distinctUntilKeyChanged"));
-//# sourceMappingURL=distinctUntilKeyChanged.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map
deleted file mode 100644
index cf3ad89..0000000
--- a/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../src/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;;;;AAAA,mEAA8D"}
diff --git a/node_modules/rxjs/operators/elementAt.d.ts b/node_modules/rxjs/operators/elementAt.d.ts
deleted file mode 100644
index 4f5d5b3..0000000
--- a/node_modules/rxjs/operators/elementAt.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/elementAt';
diff --git a/node_modules/rxjs/operators/elementAt.js b/node_modules/rxjs/operators/elementAt.js
deleted file mode 100644
index b8088a2..0000000
--- a/node_modules/rxjs/operators/elementAt.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/elementAt"));
-//# sourceMappingURL=elementAt.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/elementAt.js.map b/node_modules/rxjs/operators/elementAt.js.map
deleted file mode 100644
index 9a1673a..0000000
--- a/node_modules/rxjs/operators/elementAt.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"elementAt.js","sources":["../src/operators/elementAt.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/every.d.ts b/node_modules/rxjs/operators/every.d.ts
deleted file mode 100644
index 15b9f46..0000000
--- a/node_modules/rxjs/operators/every.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/every';
diff --git a/node_modules/rxjs/operators/every.js b/node_modules/rxjs/operators/every.js
deleted file mode 100644
index 164b937..0000000
--- a/node_modules/rxjs/operators/every.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/every"));
-//# sourceMappingURL=every.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/every.js.map b/node_modules/rxjs/operators/every.js.map
deleted file mode 100644
index 0cff6cd..0000000
--- a/node_modules/rxjs/operators/every.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"every.js","sources":["../src/operators/every.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/exhaust.d.ts b/node_modules/rxjs/operators/exhaust.d.ts
deleted file mode 100644
index 19a3637..0000000
--- a/node_modules/rxjs/operators/exhaust.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/exhaust';
diff --git a/node_modules/rxjs/operators/exhaust.js b/node_modules/rxjs/operators/exhaust.js
deleted file mode 100644
index f0cc429..0000000
--- a/node_modules/rxjs/operators/exhaust.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/exhaust"));
-//# sourceMappingURL=exhaust.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/exhaust.js.map b/node_modules/rxjs/operators/exhaust.js.map
deleted file mode 100644
index 212e77e..0000000
--- a/node_modules/rxjs/operators/exhaust.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaust.js","sources":["../src/operators/exhaust.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/exhaustMap.d.ts b/node_modules/rxjs/operators/exhaustMap.d.ts
deleted file mode 100644
index cf4ae30..0000000
--- a/node_modules/rxjs/operators/exhaustMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/exhaustMap';
diff --git a/node_modules/rxjs/operators/exhaustMap.js b/node_modules/rxjs/operators/exhaustMap.js
deleted file mode 100644
index 6a4d4f2..0000000
--- a/node_modules/rxjs/operators/exhaustMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/exhaustMap"));
-//# sourceMappingURL=exhaustMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/exhaustMap.js.map b/node_modules/rxjs/operators/exhaustMap.js.map
deleted file mode 100644
index 0a4cd45..0000000
--- a/node_modules/rxjs/operators/exhaustMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"exhaustMap.js","sources":["../src/operators/exhaustMap.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/expand.d.ts b/node_modules/rxjs/operators/expand.d.ts
deleted file mode 100644
index 0cef04c..0000000
--- a/node_modules/rxjs/operators/expand.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/expand';
diff --git a/node_modules/rxjs/operators/expand.js b/node_modules/rxjs/operators/expand.js
deleted file mode 100644
index cbb1caa..0000000
--- a/node_modules/rxjs/operators/expand.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/expand"));
-//# sourceMappingURL=expand.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/expand.js.map b/node_modules/rxjs/operators/expand.js.map
deleted file mode 100644
index 1a3d2b8..0000000
--- a/node_modules/rxjs/operators/expand.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"expand.js","sources":["../src/operators/expand.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/filter.d.ts b/node_modules/rxjs/operators/filter.d.ts
deleted file mode 100644
index 23b8666..0000000
--- a/node_modules/rxjs/operators/filter.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/filter';
diff --git a/node_modules/rxjs/operators/filter.js b/node_modules/rxjs/operators/filter.js
deleted file mode 100644
index a784384..0000000
--- a/node_modules/rxjs/operators/filter.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/filter"));
-//# sourceMappingURL=filter.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/filter.js.map b/node_modules/rxjs/operators/filter.js.map
deleted file mode 100644
index f21633b..0000000
--- a/node_modules/rxjs/operators/filter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"filter.js","sources":["../src/operators/filter.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/finalize.d.ts b/node_modules/rxjs/operators/finalize.d.ts
deleted file mode 100644
index 9c32dfc..0000000
--- a/node_modules/rxjs/operators/finalize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/finalize';
diff --git a/node_modules/rxjs/operators/finalize.js b/node_modules/rxjs/operators/finalize.js
deleted file mode 100644
index 73fc972..0000000
--- a/node_modules/rxjs/operators/finalize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/finalize"));
-//# sourceMappingURL=finalize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/finalize.js.map b/node_modules/rxjs/operators/finalize.js.map
deleted file mode 100644
index 92a552d..0000000
--- a/node_modules/rxjs/operators/finalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"finalize.js","sources":["../src/operators/finalize.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/find.d.ts b/node_modules/rxjs/operators/find.d.ts
deleted file mode 100644
index 98a272d..0000000
--- a/node_modules/rxjs/operators/find.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/find';
diff --git a/node_modules/rxjs/operators/find.js b/node_modules/rxjs/operators/find.js
deleted file mode 100644
index 62f15d4..0000000
--- a/node_modules/rxjs/operators/find.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/find"));
-//# sourceMappingURL=find.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/find.js.map b/node_modules/rxjs/operators/find.js.map
deleted file mode 100644
index b830080..0000000
--- a/node_modules/rxjs/operators/find.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find.js","sources":["../src/operators/find.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/findIndex.d.ts b/node_modules/rxjs/operators/findIndex.d.ts
deleted file mode 100644
index 167707f..0000000
--- a/node_modules/rxjs/operators/findIndex.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/findIndex';
diff --git a/node_modules/rxjs/operators/findIndex.js b/node_modules/rxjs/operators/findIndex.js
deleted file mode 100644
index 1a455c2..0000000
--- a/node_modules/rxjs/operators/findIndex.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/findIndex"));
-//# sourceMappingURL=findIndex.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/findIndex.js.map b/node_modules/rxjs/operators/findIndex.js.map
deleted file mode 100644
index 71628ca..0000000
--- a/node_modules/rxjs/operators/findIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findIndex.js","sources":["../src/operators/findIndex.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/first.d.ts b/node_modules/rxjs/operators/first.d.ts
deleted file mode 100644
index c0266e3..0000000
--- a/node_modules/rxjs/operators/first.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/first';
diff --git a/node_modules/rxjs/operators/first.js b/node_modules/rxjs/operators/first.js
deleted file mode 100644
index cbab035..0000000
--- a/node_modules/rxjs/operators/first.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/first"));
-//# sourceMappingURL=first.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/first.js.map b/node_modules/rxjs/operators/first.js.map
deleted file mode 100644
index b972107..0000000
--- a/node_modules/rxjs/operators/first.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"first.js","sources":["../src/operators/first.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/groupBy.d.ts b/node_modules/rxjs/operators/groupBy.d.ts
deleted file mode 100644
index 52c6f58..0000000
--- a/node_modules/rxjs/operators/groupBy.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/groupBy';
diff --git a/node_modules/rxjs/operators/groupBy.js b/node_modules/rxjs/operators/groupBy.js
deleted file mode 100644
index 86f796a..0000000
--- a/node_modules/rxjs/operators/groupBy.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/groupBy"));
-//# sourceMappingURL=groupBy.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/groupBy.js.map b/node_modules/rxjs/operators/groupBy.js.map
deleted file mode 100644
index bf03677..0000000
--- a/node_modules/rxjs/operators/groupBy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"groupBy.js","sources":["../src/operators/groupBy.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/ignoreElements.d.ts b/node_modules/rxjs/operators/ignoreElements.d.ts
deleted file mode 100644
index 590bf88..0000000
--- a/node_modules/rxjs/operators/ignoreElements.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/ignoreElements';
diff --git a/node_modules/rxjs/operators/ignoreElements.js b/node_modules/rxjs/operators/ignoreElements.js
deleted file mode 100644
index a2cd5ba..0000000
--- a/node_modules/rxjs/operators/ignoreElements.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/ignoreElements"));
-//# sourceMappingURL=ignoreElements.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/ignoreElements.js.map b/node_modules/rxjs/operators/ignoreElements.js.map
deleted file mode 100644
index 730e49e..0000000
--- a/node_modules/rxjs/operators/ignoreElements.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ignoreElements.js","sources":["../src/operators/ignoreElements.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/operators/index.d.ts b/node_modules/rxjs/operators/index.d.ts
deleted file mode 100644
index efc0708..0000000
--- a/node_modules/rxjs/operators/index.d.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-export { audit } from '../internal/operators/audit';
-export { auditTime } from '../internal/operators/auditTime';
-export { buffer } from '../internal/operators/buffer';
-export { bufferCount } from '../internal/operators/bufferCount';
-export { bufferTime } from '../internal/operators/bufferTime';
-export { bufferToggle } from '../internal/operators/bufferToggle';
-export { bufferWhen } from '../internal/operators/bufferWhen';
-export { catchError } from '../internal/operators/catchError';
-export { combineAll } from '../internal/operators/combineAll';
-export { combineLatest } from '../internal/operators/combineLatest';
-export { concat } from '../internal/operators/concat';
-export { concatAll } from '../internal/operators/concatAll';
-export { concatMap } from '../internal/operators/concatMap';
-export { concatMapTo } from '../internal/operators/concatMapTo';
-export { count } from '../internal/operators/count';
-export { debounce } from '../internal/operators/debounce';
-export { debounceTime } from '../internal/operators/debounceTime';
-export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';
-export { delay } from '../internal/operators/delay';
-export { delayWhen } from '../internal/operators/delayWhen';
-export { dematerialize } from '../internal/operators/dematerialize';
-export { distinct } from '../internal/operators/distinct';
-export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';
-export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';
-export { elementAt } from '../internal/operators/elementAt';
-export { endWith } from '../internal/operators/endWith';
-export { every } from '../internal/operators/every';
-export { exhaust } from '../internal/operators/exhaust';
-export { exhaustMap } from '../internal/operators/exhaustMap';
-export { expand } from '../internal/operators/expand';
-export { filter } from '../internal/operators/filter';
-export { finalize } from '../internal/operators/finalize';
-export { find } from '../internal/operators/find';
-export { findIndex } from '../internal/operators/findIndex';
-export { first } from '../internal/operators/first';
-export { groupBy } from '../internal/operators/groupBy';
-export { ignoreElements } from '../internal/operators/ignoreElements';
-export { isEmpty } from '../internal/operators/isEmpty';
-export { last } from '../internal/operators/last';
-export { map } from '../internal/operators/map';
-export { mapTo } from '../internal/operators/mapTo';
-export { materialize } from '../internal/operators/materialize';
-export { max } from '../internal/operators/max';
-export { merge } from '../internal/operators/merge';
-export { mergeAll } from '../internal/operators/mergeAll';
-export { mergeMap } from '../internal/operators/mergeMap';
-export { mergeMap as flatMap } from '../internal/operators/mergeMap';
-export { mergeMapTo } from '../internal/operators/mergeMapTo';
-export { mergeScan } from '../internal/operators/mergeScan';
-export { min } from '../internal/operators/min';
-export { multicast } from '../internal/operators/multicast';
-export { observeOn } from '../internal/operators/observeOn';
-export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';
-export { pairwise } from '../internal/operators/pairwise';
-export { partition } from '../internal/operators/partition';
-export { pluck } from '../internal/operators/pluck';
-export { publish } from '../internal/operators/publish';
-export { publishBehavior } from '../internal/operators/publishBehavior';
-export { publishLast } from '../internal/operators/publishLast';
-export { publishReplay } from '../internal/operators/publishReplay';
-export { race } from '../internal/operators/race';
-export { reduce } from '../internal/operators/reduce';
-export { repeat } from '../internal/operators/repeat';
-export { repeatWhen } from '../internal/operators/repeatWhen';
-export { retry } from '../internal/operators/retry';
-export { retryWhen } from '../internal/operators/retryWhen';
-export { refCount } from '../internal/operators/refCount';
-export { sample } from '../internal/operators/sample';
-export { sampleTime } from '../internal/operators/sampleTime';
-export { scan } from '../internal/operators/scan';
-export { sequenceEqual } from '../internal/operators/sequenceEqual';
-export { share } from '../internal/operators/share';
-export { shareReplay } from '../internal/operators/shareReplay';
-export { single } from '../internal/operators/single';
-export { skip } from '../internal/operators/skip';
-export { skipLast } from '../internal/operators/skipLast';
-export { skipUntil } from '../internal/operators/skipUntil';
-export { skipWhile } from '../internal/operators/skipWhile';
-export { startWith } from '../internal/operators/startWith';
-export { subscribeOn } from '../internal/operators/subscribeOn';
-export { switchAll } from '../internal/operators/switchAll';
-export { switchMap } from '../internal/operators/switchMap';
-export { switchMapTo } from '../internal/operators/switchMapTo';
-export { take } from '../internal/operators/take';
-export { takeLast } from '../internal/operators/takeLast';
-export { takeUntil } from '../internal/operators/takeUntil';
-export { takeWhile } from '../internal/operators/takeWhile';
-export { tap } from '../internal/operators/tap';
-export { throttle } from '../internal/operators/throttle';
-export { throttleTime } from '../internal/operators/throttleTime';
-export { throwIfEmpty } from '../internal/operators/throwIfEmpty';
-export { timeInterval } from '../internal/operators/timeInterval';
-export { timeout } from '../internal/operators/timeout';
-export { timeoutWith } from '../internal/operators/timeoutWith';
-export { timestamp } from '../internal/operators/timestamp';
-export { toArray } from '../internal/operators/toArray';
-export { window } from '../internal/operators/window';
-export { windowCount } from '../internal/operators/windowCount';
-export { windowTime } from '../internal/operators/windowTime';
-export { windowToggle } from '../internal/operators/windowToggle';
-export { windowWhen } from '../internal/operators/windowWhen';
-export { withLatestFrom } from '../internal/operators/withLatestFrom';
-export { zip } from '../internal/operators/zip';
-export { zipAll } from '../internal/operators/zipAll';
diff --git a/node_modules/rxjs/operators/index.js b/node_modules/rxjs/operators/index.js
deleted file mode 100644
index 81ce760..0000000
--- a/node_modules/rxjs/operators/index.js
+++ /dev/null
@@ -1,211 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var audit_1 = require("../internal/operators/audit");
-exports.audit = audit_1.audit;
-var auditTime_1 = require("../internal/operators/auditTime");
-exports.auditTime = auditTime_1.auditTime;
-var buffer_1 = require("../internal/operators/buffer");
-exports.buffer = buffer_1.buffer;
-var bufferCount_1 = require("../internal/operators/bufferCount");
-exports.bufferCount = bufferCount_1.bufferCount;
-var bufferTime_1 = require("../internal/operators/bufferTime");
-exports.bufferTime = bufferTime_1.bufferTime;
-var bufferToggle_1 = require("../internal/operators/bufferToggle");
-exports.bufferToggle = bufferToggle_1.bufferToggle;
-var bufferWhen_1 = require("../internal/operators/bufferWhen");
-exports.bufferWhen = bufferWhen_1.bufferWhen;
-var catchError_1 = require("../internal/operators/catchError");
-exports.catchError = catchError_1.catchError;
-var combineAll_1 = require("../internal/operators/combineAll");
-exports.combineAll = combineAll_1.combineAll;
-var combineLatest_1 = require("../internal/operators/combineLatest");
-exports.combineLatest = combineLatest_1.combineLatest;
-var concat_1 = require("../internal/operators/concat");
-exports.concat = concat_1.concat;
-var concatAll_1 = require("../internal/operators/concatAll");
-exports.concatAll = concatAll_1.concatAll;
-var concatMap_1 = require("../internal/operators/concatMap");
-exports.concatMap = concatMap_1.concatMap;
-var concatMapTo_1 = require("../internal/operators/concatMapTo");
-exports.concatMapTo = concatMapTo_1.concatMapTo;
-var count_1 = require("../internal/operators/count");
-exports.count = count_1.count;
-var debounce_1 = require("../internal/operators/debounce");
-exports.debounce = debounce_1.debounce;
-var debounceTime_1 = require("../internal/operators/debounceTime");
-exports.debounceTime = debounceTime_1.debounceTime;
-var defaultIfEmpty_1 = require("../internal/operators/defaultIfEmpty");
-exports.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty;
-var delay_1 = require("../internal/operators/delay");
-exports.delay = delay_1.delay;
-var delayWhen_1 = require("../internal/operators/delayWhen");
-exports.delayWhen = delayWhen_1.delayWhen;
-var dematerialize_1 = require("../internal/operators/dematerialize");
-exports.dematerialize = dematerialize_1.dematerialize;
-var distinct_1 = require("../internal/operators/distinct");
-exports.distinct = distinct_1.distinct;
-var distinctUntilChanged_1 = require("../internal/operators/distinctUntilChanged");
-exports.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged;
-var distinctUntilKeyChanged_1 = require("../internal/operators/distinctUntilKeyChanged");
-exports.distinctUntilKeyChanged = distinctUntilKeyChanged_1.distinctUntilKeyChanged;
-var elementAt_1 = require("../internal/operators/elementAt");
-exports.elementAt = elementAt_1.elementAt;
-var endWith_1 = require("../internal/operators/endWith");
-exports.endWith = endWith_1.endWith;
-var every_1 = require("../internal/operators/every");
-exports.every = every_1.every;
-var exhaust_1 = require("../internal/operators/exhaust");
-exports.exhaust = exhaust_1.exhaust;
-var exhaustMap_1 = require("../internal/operators/exhaustMap");
-exports.exhaustMap = exhaustMap_1.exhaustMap;
-var expand_1 = require("../internal/operators/expand");
-exports.expand = expand_1.expand;
-var filter_1 = require("../internal/operators/filter");
-exports.filter = filter_1.filter;
-var finalize_1 = require("../internal/operators/finalize");
-exports.finalize = finalize_1.finalize;
-var find_1 = require("../internal/operators/find");
-exports.find = find_1.find;
-var findIndex_1 = require("../internal/operators/findIndex");
-exports.findIndex = findIndex_1.findIndex;
-var first_1 = require("../internal/operators/first");
-exports.first = first_1.first;
-var groupBy_1 = require("../internal/operators/groupBy");
-exports.groupBy = groupBy_1.groupBy;
-var ignoreElements_1 = require("../internal/operators/ignoreElements");
-exports.ignoreElements = ignoreElements_1.ignoreElements;
-var isEmpty_1 = require("../internal/operators/isEmpty");
-exports.isEmpty = isEmpty_1.isEmpty;
-var last_1 = require("../internal/operators/last");
-exports.last = last_1.last;
-var map_1 = require("../internal/operators/map");
-exports.map = map_1.map;
-var mapTo_1 = require("../internal/operators/mapTo");
-exports.mapTo = mapTo_1.mapTo;
-var materialize_1 = require("../internal/operators/materialize");
-exports.materialize = materialize_1.materialize;
-var max_1 = require("../internal/operators/max");
-exports.max = max_1.max;
-var merge_1 = require("../internal/operators/merge");
-exports.merge = merge_1.merge;
-var mergeAll_1 = require("../internal/operators/mergeAll");
-exports.mergeAll = mergeAll_1.mergeAll;
-var mergeMap_1 = require("../internal/operators/mergeMap");
-exports.mergeMap = mergeMap_1.mergeMap;
-var mergeMap_2 = require("../internal/operators/mergeMap");
-exports.flatMap = mergeMap_2.mergeMap;
-var mergeMapTo_1 = require("../internal/operators/mergeMapTo");
-exports.mergeMapTo = mergeMapTo_1.mergeMapTo;
-var mergeScan_1 = require("../internal/operators/mergeScan");
-exports.mergeScan = mergeScan_1.mergeScan;
-var min_1 = require("../internal/operators/min");
-exports.min = min_1.min;
-var multicast_1 = require("../internal/operators/multicast");
-exports.multicast = multicast_1.multicast;
-var observeOn_1 = require("../internal/operators/observeOn");
-exports.observeOn = observeOn_1.observeOn;
-var onErrorResumeNext_1 = require("../internal/operators/onErrorResumeNext");
-exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext;
-var pairwise_1 = require("../internal/operators/pairwise");
-exports.pairwise = pairwise_1.pairwise;
-var partition_1 = require("../internal/operators/partition");
-exports.partition = partition_1.partition;
-var pluck_1 = require("../internal/operators/pluck");
-exports.pluck = pluck_1.pluck;
-var publish_1 = require("../internal/operators/publish");
-exports.publish = publish_1.publish;
-var publishBehavior_1 = require("../internal/operators/publishBehavior");
-exports.publishBehavior = publishBehavior_1.publishBehavior;
-var publishLast_1 = require("../internal/operators/publishLast");
-exports.publishLast = publishLast_1.publishLast;
-var publishReplay_1 = require("../internal/operators/publishReplay");
-exports.publishReplay = publishReplay_1.publishReplay;
-var race_1 = require("../internal/operators/race");
-exports.race = race_1.race;
-var reduce_1 = require("../internal/operators/reduce");
-exports.reduce = reduce_1.reduce;
-var repeat_1 = require("../internal/operators/repeat");
-exports.repeat = repeat_1.repeat;
-var repeatWhen_1 = require("../internal/operators/repeatWhen");
-exports.repeatWhen = repeatWhen_1.repeatWhen;
-var retry_1 = require("../internal/operators/retry");
-exports.retry = retry_1.retry;
-var retryWhen_1 = require("../internal/operators/retryWhen");
-exports.retryWhen = retryWhen_1.retryWhen;
-var refCount_1 = require("../internal/operators/refCount");
-exports.refCount = refCount_1.refCount;
-var sample_1 = require("../internal/operators/sample");
-exports.sample = sample_1.sample;
-var sampleTime_1 = require("../internal/operators/sampleTime");
-exports.sampleTime = sampleTime_1.sampleTime;
-var scan_1 = require("../internal/operators/scan");
-exports.scan = scan_1.scan;
-var sequenceEqual_1 = require("../internal/operators/sequenceEqual");
-exports.sequenceEqual = sequenceEqual_1.sequenceEqual;
-var share_1 = require("../internal/operators/share");
-exports.share = share_1.share;
-var shareReplay_1 = require("../internal/operators/shareReplay");
-exports.shareReplay = shareReplay_1.shareReplay;
-var single_1 = require("../internal/operators/single");
-exports.single = single_1.single;
-var skip_1 = require("../internal/operators/skip");
-exports.skip = skip_1.skip;
-var skipLast_1 = require("../internal/operators/skipLast");
-exports.skipLast = skipLast_1.skipLast;
-var skipUntil_1 = require("../internal/operators/skipUntil");
-exports.skipUntil = skipUntil_1.skipUntil;
-var skipWhile_1 = require("../internal/operators/skipWhile");
-exports.skipWhile = skipWhile_1.skipWhile;
-var startWith_1 = require("../internal/operators/startWith");
-exports.startWith = startWith_1.startWith;
-var subscribeOn_1 = require("../internal/operators/subscribeOn");
-exports.subscribeOn = subscribeOn_1.subscribeOn;
-var switchAll_1 = require("../internal/operators/switchAll");
-exports.switchAll = switchAll_1.switchAll;
-var switchMap_1 = require("../internal/operators/switchMap");
-exports.switchMap = switchMap_1.switchMap;
-var switchMapTo_1 = require("../internal/operators/switchMapTo");
-exports.switchMapTo = switchMapTo_1.switchMapTo;
-var take_1 = require("../internal/operators/take");
-exports.take = take_1.take;
-var takeLast_1 = require("../internal/operators/takeLast");
-exports.takeLast = takeLast_1.takeLast;
-var takeUntil_1 = require("../internal/operators/takeUntil");
-exports.takeUntil = takeUntil_1.takeUntil;
-var takeWhile_1 = require("../internal/operators/takeWhile");
-exports.takeWhile = takeWhile_1.takeWhile;
-var tap_1 = require("../internal/operators/tap");
-exports.tap = tap_1.tap;
-var throttle_1 = require("../internal/operators/throttle");
-exports.throttle = throttle_1.throttle;
-var throttleTime_1 = require("../internal/operators/throttleTime");
-exports.throttleTime = throttleTime_1.throttleTime;
-var throwIfEmpty_1 = require("../internal/operators/throwIfEmpty");
-exports.throwIfEmpty = throwIfEmpty_1.throwIfEmpty;
-var timeInterval_1 = require("../internal/operators/timeInterval");
-exports.timeInterval = timeInterval_1.timeInterval;
-var timeout_1 = require("../internal/operators/timeout");
-exports.timeout = timeout_1.timeout;
-var timeoutWith_1 = require("../internal/operators/timeoutWith");
-exports.timeoutWith = timeoutWith_1.timeoutWith;
-var timestamp_1 = require("../internal/operators/timestamp");
-exports.timestamp = timestamp_1.timestamp;
-var toArray_1 = require("../internal/operators/toArray");
-exports.toArray = toArray_1.toArray;
-var window_1 = require("../internal/operators/window");
-exports.window = window_1.window;
-var windowCount_1 = require("../internal/operators/windowCount");
-exports.windowCount = windowCount_1.windowCount;
-var windowTime_1 = require("../internal/operators/windowTime");
-exports.windowTime = windowTime_1.windowTime;
-var windowToggle_1 = require("../internal/operators/windowToggle");
-exports.windowToggle = windowToggle_1.windowToggle;
-var windowWhen_1 = require("../internal/operators/windowWhen");
-exports.windowWhen = windowWhen_1.windowWhen;
-var withLatestFrom_1 = require("../internal/operators/withLatestFrom");
-exports.withLatestFrom = withLatestFrom_1.withLatestFrom;
-var zip_1 = require("../internal/operators/zip");
-exports.zip = zip_1.zip;
-var zipAll_1 = require("../internal/operators/zipAll");
-exports.zipAll = zipAll_1.zipAll;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/index.js.map b/node_modules/rxjs/operators/index.js.map
deleted file mode 100644
index e2c8202..0000000
--- a/node_modules/rxjs/operators/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/operators/index.ts"],"names":[],"mappings":"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"}
diff --git a/node_modules/rxjs/operators/isEmpty.d.ts b/node_modules/rxjs/operators/isEmpty.d.ts
deleted file mode 100644
index fd1d1af..0000000
--- a/node_modules/rxjs/operators/isEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/isEmpty';
diff --git a/node_modules/rxjs/operators/isEmpty.js b/node_modules/rxjs/operators/isEmpty.js
deleted file mode 100644
index 2defbb2..0000000
--- a/node_modules/rxjs/operators/isEmpty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/isEmpty"));
-//# sourceMappingURL=isEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/isEmpty.js.map b/node_modules/rxjs/operators/isEmpty.js.map
deleted file mode 100644
index 48e47eb..0000000
--- a/node_modules/rxjs/operators/isEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isEmpty.js","sources":["../src/operators/isEmpty.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/last.d.ts b/node_modules/rxjs/operators/last.d.ts
deleted file mode 100644
index c8464bf..0000000
--- a/node_modules/rxjs/operators/last.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/last';
diff --git a/node_modules/rxjs/operators/last.js b/node_modules/rxjs/operators/last.js
deleted file mode 100644
index caebab4..0000000
--- a/node_modules/rxjs/operators/last.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/last"));
-//# sourceMappingURL=last.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/last.js.map b/node_modules/rxjs/operators/last.js.map
deleted file mode 100644
index c47a012..0000000
--- a/node_modules/rxjs/operators/last.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"last.js","sources":["../src/operators/last.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/map.d.ts b/node_modules/rxjs/operators/map.d.ts
deleted file mode 100644
index 7e8cb1f..0000000
--- a/node_modules/rxjs/operators/map.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/map';
diff --git a/node_modules/rxjs/operators/map.js b/node_modules/rxjs/operators/map.js
deleted file mode 100644
index 38d90af..0000000
--- a/node_modules/rxjs/operators/map.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/map"));
-//# sourceMappingURL=map.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/map.js.map b/node_modules/rxjs/operators/map.js.map
deleted file mode 100644
index a874325..0000000
--- a/node_modules/rxjs/operators/map.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"map.js","sources":["../src/operators/map.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operators/mapTo.d.ts b/node_modules/rxjs/operators/mapTo.d.ts
deleted file mode 100644
index 72b4d9e..0000000
--- a/node_modules/rxjs/operators/mapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mapTo';
diff --git a/node_modules/rxjs/operators/mapTo.js b/node_modules/rxjs/operators/mapTo.js
deleted file mode 100644
index 9433d0c..0000000
--- a/node_modules/rxjs/operators/mapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/mapTo"));
-//# sourceMappingURL=mapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/mapTo.js.map b/node_modules/rxjs/operators/mapTo.js.map
deleted file mode 100644
index a0c6b03..0000000
--- a/node_modules/rxjs/operators/mapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mapTo.js","sources":["../src/operators/mapTo.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/materialize.d.ts b/node_modules/rxjs/operators/materialize.d.ts
deleted file mode 100644
index e050f1e..0000000
--- a/node_modules/rxjs/operators/materialize.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/materialize';
diff --git a/node_modules/rxjs/operators/materialize.js b/node_modules/rxjs/operators/materialize.js
deleted file mode 100644
index d0e3267..0000000
--- a/node_modules/rxjs/operators/materialize.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/materialize"));
-//# sourceMappingURL=materialize.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/materialize.js.map b/node_modules/rxjs/operators/materialize.js.map
deleted file mode 100644
index de58757..0000000
--- a/node_modules/rxjs/operators/materialize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"materialize.js","sources":["../src/operators/materialize.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/max.d.ts b/node_modules/rxjs/operators/max.d.ts
deleted file mode 100644
index 044da47..0000000
--- a/node_modules/rxjs/operators/max.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/max';
diff --git a/node_modules/rxjs/operators/max.js b/node_modules/rxjs/operators/max.js
deleted file mode 100644
index e4e8ef4..0000000
--- a/node_modules/rxjs/operators/max.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/max"));
-//# sourceMappingURL=max.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/max.js.map b/node_modules/rxjs/operators/max.js.map
deleted file mode 100644
index 4600fdb..0000000
--- a/node_modules/rxjs/operators/max.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"max.js","sources":["../src/operators/max.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operators/merge.d.ts b/node_modules/rxjs/operators/merge.d.ts
deleted file mode 100644
index 7583aee..0000000
--- a/node_modules/rxjs/operators/merge.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/merge';
diff --git a/node_modules/rxjs/operators/merge.js b/node_modules/rxjs/operators/merge.js
deleted file mode 100644
index 4a41728..0000000
--- a/node_modules/rxjs/operators/merge.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/merge"));
-//# sourceMappingURL=merge.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/merge.js.map b/node_modules/rxjs/operators/merge.js.map
deleted file mode 100644
index d95ebb9..0000000
--- a/node_modules/rxjs/operators/merge.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"merge.js","sources":["../src/operators/merge.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/mergeAll.d.ts b/node_modules/rxjs/operators/mergeAll.d.ts
deleted file mode 100644
index b5c5b38..0000000
--- a/node_modules/rxjs/operators/mergeAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeAll';
diff --git a/node_modules/rxjs/operators/mergeAll.js b/node_modules/rxjs/operators/mergeAll.js
deleted file mode 100644
index 574fd44..0000000
--- a/node_modules/rxjs/operators/mergeAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/mergeAll"));
-//# sourceMappingURL=mergeAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/mergeAll.js.map b/node_modules/rxjs/operators/mergeAll.js.map
deleted file mode 100644
index 7cb38bd..0000000
--- a/node_modules/rxjs/operators/mergeAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeAll.js","sources":["../src/operators/mergeAll.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/mergeMap.d.ts b/node_modules/rxjs/operators/mergeMap.d.ts
deleted file mode 100644
index af5c7c1..0000000
--- a/node_modules/rxjs/operators/mergeMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeMap';
diff --git a/node_modules/rxjs/operators/mergeMap.js b/node_modules/rxjs/operators/mergeMap.js
deleted file mode 100644
index a711dec..0000000
--- a/node_modules/rxjs/operators/mergeMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/mergeMap"));
-//# sourceMappingURL=mergeMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/mergeMap.js.map b/node_modules/rxjs/operators/mergeMap.js.map
deleted file mode 100644
index b484a44..0000000
--- a/node_modules/rxjs/operators/mergeMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMap.js","sources":["../src/operators/mergeMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/mergeMapTo.d.ts b/node_modules/rxjs/operators/mergeMapTo.d.ts
deleted file mode 100644
index 67b6cb7..0000000
--- a/node_modules/rxjs/operators/mergeMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeMapTo';
diff --git a/node_modules/rxjs/operators/mergeMapTo.js b/node_modules/rxjs/operators/mergeMapTo.js
deleted file mode 100644
index 13f37f0..0000000
--- a/node_modules/rxjs/operators/mergeMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/mergeMapTo"));
-//# sourceMappingURL=mergeMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/mergeMapTo.js.map b/node_modules/rxjs/operators/mergeMapTo.js.map
deleted file mode 100644
index dae529f..0000000
--- a/node_modules/rxjs/operators/mergeMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeMapTo.js","sources":["../src/operators/mergeMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/mergeScan.d.ts b/node_modules/rxjs/operators/mergeScan.d.ts
deleted file mode 100644
index ef73adc..0000000
--- a/node_modules/rxjs/operators/mergeScan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeScan';
diff --git a/node_modules/rxjs/operators/mergeScan.js b/node_modules/rxjs/operators/mergeScan.js
deleted file mode 100644
index 3bde4ec..0000000
--- a/node_modules/rxjs/operators/mergeScan.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/mergeScan"));
-//# sourceMappingURL=mergeScan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/mergeScan.js.map b/node_modules/rxjs/operators/mergeScan.js.map
deleted file mode 100644
index 00177d7..0000000
--- a/node_modules/rxjs/operators/mergeScan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mergeScan.js","sources":["../src/operators/mergeScan.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/min.d.ts b/node_modules/rxjs/operators/min.d.ts
deleted file mode 100644
index 3706e3f..0000000
--- a/node_modules/rxjs/operators/min.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/min';
diff --git a/node_modules/rxjs/operators/min.js b/node_modules/rxjs/operators/min.js
deleted file mode 100644
index f9ae8e9..0000000
--- a/node_modules/rxjs/operators/min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/min"));
-//# sourceMappingURL=min.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/min.js.map b/node_modules/rxjs/operators/min.js.map
deleted file mode 100644
index 8343640..0000000
--- a/node_modules/rxjs/operators/min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"min.js","sources":["../src/operators/min.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operators/multicast.d.ts b/node_modules/rxjs/operators/multicast.d.ts
deleted file mode 100644
index 9470284..0000000
--- a/node_modules/rxjs/operators/multicast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/multicast';
diff --git a/node_modules/rxjs/operators/multicast.js b/node_modules/rxjs/operators/multicast.js
deleted file mode 100644
index 50944ec..0000000
--- a/node_modules/rxjs/operators/multicast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/multicast"));
-//# sourceMappingURL=multicast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/multicast.js.map b/node_modules/rxjs/operators/multicast.js.map
deleted file mode 100644
index 81a2af0..0000000
--- a/node_modules/rxjs/operators/multicast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"multicast.js","sources":["../src/operators/multicast.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/observeOn.d.ts b/node_modules/rxjs/operators/observeOn.d.ts
deleted file mode 100644
index 0f6d414..0000000
--- a/node_modules/rxjs/operators/observeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/observeOn';
diff --git a/node_modules/rxjs/operators/observeOn.js b/node_modules/rxjs/operators/observeOn.js
deleted file mode 100644
index 6750c7e..0000000
--- a/node_modules/rxjs/operators/observeOn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/observeOn"));
-//# sourceMappingURL=observeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/observeOn.js.map b/node_modules/rxjs/operators/observeOn.js.map
deleted file mode 100644
index 8586b76..0000000
--- a/node_modules/rxjs/operators/observeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observeOn.js","sources":["../src/operators/observeOn.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/onErrorResumeNext.d.ts b/node_modules/rxjs/operators/onErrorResumeNext.d.ts
deleted file mode 100644
index 0b19815..0000000
--- a/node_modules/rxjs/operators/onErrorResumeNext.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/onErrorResumeNext';
diff --git a/node_modules/rxjs/operators/onErrorResumeNext.js b/node_modules/rxjs/operators/onErrorResumeNext.js
deleted file mode 100644
index d112fc4..0000000
--- a/node_modules/rxjs/operators/onErrorResumeNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/onErrorResumeNext"));
-//# sourceMappingURL=onErrorResumeNext.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/onErrorResumeNext.js.map b/node_modules/rxjs/operators/onErrorResumeNext.js.map
deleted file mode 100644
index 8ddaa18..0000000
--- a/node_modules/rxjs/operators/onErrorResumeNext.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"onErrorResumeNext.js","sources":["../src/operators/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"}
diff --git a/node_modules/rxjs/operators/package.json b/node_modules/rxjs/operators/package.json
deleted file mode 100644
index eefac38..0000000
--- a/node_modules/rxjs/operators/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/operators",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/operators/index.js",
-  "es2015": "../_esm2015/operators/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/operators/pairwise.d.ts b/node_modules/rxjs/operators/pairwise.d.ts
deleted file mode 100644
index f83f732..0000000
--- a/node_modules/rxjs/operators/pairwise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/pairwise';
diff --git a/node_modules/rxjs/operators/pairwise.js b/node_modules/rxjs/operators/pairwise.js
deleted file mode 100644
index c2c1c47..0000000
--- a/node_modules/rxjs/operators/pairwise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/pairwise"));
-//# sourceMappingURL=pairwise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/pairwise.js.map b/node_modules/rxjs/operators/pairwise.js.map
deleted file mode 100644
index fcd346e..0000000
--- a/node_modules/rxjs/operators/pairwise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pairwise.js","sources":["../src/operators/pairwise.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/partition.d.ts b/node_modules/rxjs/operators/partition.d.ts
deleted file mode 100644
index 3c82843..0000000
--- a/node_modules/rxjs/operators/partition.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/partition';
diff --git a/node_modules/rxjs/operators/partition.js b/node_modules/rxjs/operators/partition.js
deleted file mode 100644
index aebe750..0000000
--- a/node_modules/rxjs/operators/partition.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/partition"));
-//# sourceMappingURL=partition.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/partition.js.map b/node_modules/rxjs/operators/partition.js.map
deleted file mode 100644
index bcaac0b..0000000
--- a/node_modules/rxjs/operators/partition.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"partition.js","sources":["../src/operators/partition.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/pluck.d.ts b/node_modules/rxjs/operators/pluck.d.ts
deleted file mode 100644
index 2ac910a..0000000
--- a/node_modules/rxjs/operators/pluck.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/pluck';
diff --git a/node_modules/rxjs/operators/pluck.js b/node_modules/rxjs/operators/pluck.js
deleted file mode 100644
index 55abcab..0000000
--- a/node_modules/rxjs/operators/pluck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/pluck"));
-//# sourceMappingURL=pluck.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/pluck.js.map b/node_modules/rxjs/operators/pluck.js.map
deleted file mode 100644
index a9a2a49..0000000
--- a/node_modules/rxjs/operators/pluck.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pluck.js","sources":["../src/operators/pluck.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/publish.d.ts b/node_modules/rxjs/operators/publish.d.ts
deleted file mode 100644
index a21951d..0000000
--- a/node_modules/rxjs/operators/publish.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publish';
diff --git a/node_modules/rxjs/operators/publish.js b/node_modules/rxjs/operators/publish.js
deleted file mode 100644
index 7af4aea..0000000
--- a/node_modules/rxjs/operators/publish.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/publish"));
-//# sourceMappingURL=publish.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/publish.js.map b/node_modules/rxjs/operators/publish.js.map
deleted file mode 100644
index 40530d7..0000000
--- a/node_modules/rxjs/operators/publish.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publish.js","sources":["../src/operators/publish.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/publishBehavior.d.ts b/node_modules/rxjs/operators/publishBehavior.d.ts
deleted file mode 100644
index 53cbc37..0000000
--- a/node_modules/rxjs/operators/publishBehavior.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishBehavior';
diff --git a/node_modules/rxjs/operators/publishBehavior.js b/node_modules/rxjs/operators/publishBehavior.js
deleted file mode 100644
index cc52d3a..0000000
--- a/node_modules/rxjs/operators/publishBehavior.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/publishBehavior"));
-//# sourceMappingURL=publishBehavior.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/publishBehavior.js.map b/node_modules/rxjs/operators/publishBehavior.js.map
deleted file mode 100644
index 3bca777..0000000
--- a/node_modules/rxjs/operators/publishBehavior.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishBehavior.js","sources":["../src/operators/publishBehavior.ts"],"names":[],"mappings":";;;;;AAAA,2DAAsD"}
diff --git a/node_modules/rxjs/operators/publishLast.d.ts b/node_modules/rxjs/operators/publishLast.d.ts
deleted file mode 100644
index 0fcb439..0000000
--- a/node_modules/rxjs/operators/publishLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishLast';
diff --git a/node_modules/rxjs/operators/publishLast.js b/node_modules/rxjs/operators/publishLast.js
deleted file mode 100644
index e9c94d6..0000000
--- a/node_modules/rxjs/operators/publishLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/publishLast"));
-//# sourceMappingURL=publishLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/publishLast.js.map b/node_modules/rxjs/operators/publishLast.js.map
deleted file mode 100644
index f3fab1a..0000000
--- a/node_modules/rxjs/operators/publishLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishLast.js","sources":["../src/operators/publishLast.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/publishReplay.d.ts b/node_modules/rxjs/operators/publishReplay.d.ts
deleted file mode 100644
index ff87a2d..0000000
--- a/node_modules/rxjs/operators/publishReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishReplay';
diff --git a/node_modules/rxjs/operators/publishReplay.js b/node_modules/rxjs/operators/publishReplay.js
deleted file mode 100644
index f280e18..0000000
--- a/node_modules/rxjs/operators/publishReplay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/publishReplay"));
-//# sourceMappingURL=publishReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/publishReplay.js.map b/node_modules/rxjs/operators/publishReplay.js.map
deleted file mode 100644
index 50c7316..0000000
--- a/node_modules/rxjs/operators/publishReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"publishReplay.js","sources":["../src/operators/publishReplay.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operators/race.d.ts b/node_modules/rxjs/operators/race.d.ts
deleted file mode 100644
index 95047c7..0000000
--- a/node_modules/rxjs/operators/race.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/race';
diff --git a/node_modules/rxjs/operators/race.js b/node_modules/rxjs/operators/race.js
deleted file mode 100644
index dae6776..0000000
--- a/node_modules/rxjs/operators/race.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/race"));
-//# sourceMappingURL=race.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/race.js.map b/node_modules/rxjs/operators/race.js.map
deleted file mode 100644
index 4e14245..0000000
--- a/node_modules/rxjs/operators/race.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"race.js","sources":["../src/operators/race.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/reduce.d.ts b/node_modules/rxjs/operators/reduce.d.ts
deleted file mode 100644
index abb05c3..0000000
--- a/node_modules/rxjs/operators/reduce.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/reduce';
diff --git a/node_modules/rxjs/operators/reduce.js b/node_modules/rxjs/operators/reduce.js
deleted file mode 100644
index 83c2fab..0000000
--- a/node_modules/rxjs/operators/reduce.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/reduce"));
-//# sourceMappingURL=reduce.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/reduce.js.map b/node_modules/rxjs/operators/reduce.js.map
deleted file mode 100644
index c1424d3..0000000
--- a/node_modules/rxjs/operators/reduce.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"reduce.js","sources":["../src/operators/reduce.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/refCount.d.ts b/node_modules/rxjs/operators/refCount.d.ts
deleted file mode 100644
index 3c38baa..0000000
--- a/node_modules/rxjs/operators/refCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/refCount';
diff --git a/node_modules/rxjs/operators/refCount.js b/node_modules/rxjs/operators/refCount.js
deleted file mode 100644
index 7dc9b93..0000000
--- a/node_modules/rxjs/operators/refCount.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/refCount"));
-//# sourceMappingURL=refCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/refCount.js.map b/node_modules/rxjs/operators/refCount.js.map
deleted file mode 100644
index 03f81ae..0000000
--- a/node_modules/rxjs/operators/refCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"refCount.js","sources":["../src/operators/refCount.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/repeat.d.ts b/node_modules/rxjs/operators/repeat.d.ts
deleted file mode 100644
index 1f36353..0000000
--- a/node_modules/rxjs/operators/repeat.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/repeat';
diff --git a/node_modules/rxjs/operators/repeat.js b/node_modules/rxjs/operators/repeat.js
deleted file mode 100644
index 614eee6..0000000
--- a/node_modules/rxjs/operators/repeat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/repeat"));
-//# sourceMappingURL=repeat.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/repeat.js.map b/node_modules/rxjs/operators/repeat.js.map
deleted file mode 100644
index 0571937..0000000
--- a/node_modules/rxjs/operators/repeat.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeat.js","sources":["../src/operators/repeat.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/repeatWhen.d.ts b/node_modules/rxjs/operators/repeatWhen.d.ts
deleted file mode 100644
index df052ac..0000000
--- a/node_modules/rxjs/operators/repeatWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/repeatWhen';
diff --git a/node_modules/rxjs/operators/repeatWhen.js b/node_modules/rxjs/operators/repeatWhen.js
deleted file mode 100644
index 25b5348..0000000
--- a/node_modules/rxjs/operators/repeatWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/repeatWhen"));
-//# sourceMappingURL=repeatWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/repeatWhen.js.map b/node_modules/rxjs/operators/repeatWhen.js.map
deleted file mode 100644
index 261d64f..0000000
--- a/node_modules/rxjs/operators/repeatWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"repeatWhen.js","sources":["../src/operators/repeatWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/retry.d.ts b/node_modules/rxjs/operators/retry.d.ts
deleted file mode 100644
index b8d2fee..0000000
--- a/node_modules/rxjs/operators/retry.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/retry';
diff --git a/node_modules/rxjs/operators/retry.js b/node_modules/rxjs/operators/retry.js
deleted file mode 100644
index 32e814e..0000000
--- a/node_modules/rxjs/operators/retry.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/retry"));
-//# sourceMappingURL=retry.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/retry.js.map b/node_modules/rxjs/operators/retry.js.map
deleted file mode 100644
index e714e35..0000000
--- a/node_modules/rxjs/operators/retry.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retry.js","sources":["../src/operators/retry.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/retryWhen.d.ts b/node_modules/rxjs/operators/retryWhen.d.ts
deleted file mode 100644
index 00f9bdf..0000000
--- a/node_modules/rxjs/operators/retryWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/retryWhen';
diff --git a/node_modules/rxjs/operators/retryWhen.js b/node_modules/rxjs/operators/retryWhen.js
deleted file mode 100644
index 1f2912e..0000000
--- a/node_modules/rxjs/operators/retryWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/retryWhen"));
-//# sourceMappingURL=retryWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/retryWhen.js.map b/node_modules/rxjs/operators/retryWhen.js.map
deleted file mode 100644
index 8d736e4..0000000
--- a/node_modules/rxjs/operators/retryWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"retryWhen.js","sources":["../src/operators/retryWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/sample.d.ts b/node_modules/rxjs/operators/sample.d.ts
deleted file mode 100644
index 0e05a4b..0000000
--- a/node_modules/rxjs/operators/sample.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sample';
diff --git a/node_modules/rxjs/operators/sample.js b/node_modules/rxjs/operators/sample.js
deleted file mode 100644
index 0160e20..0000000
--- a/node_modules/rxjs/operators/sample.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/sample"));
-//# sourceMappingURL=sample.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/sample.js.map b/node_modules/rxjs/operators/sample.js.map
deleted file mode 100644
index 5d09870..0000000
--- a/node_modules/rxjs/operators/sample.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sample.js","sources":["../src/operators/sample.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/sampleTime.d.ts b/node_modules/rxjs/operators/sampleTime.d.ts
deleted file mode 100644
index 5041a51..0000000
--- a/node_modules/rxjs/operators/sampleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sampleTime';
diff --git a/node_modules/rxjs/operators/sampleTime.js b/node_modules/rxjs/operators/sampleTime.js
deleted file mode 100644
index 8686c55..0000000
--- a/node_modules/rxjs/operators/sampleTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/sampleTime"));
-//# sourceMappingURL=sampleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/sampleTime.js.map b/node_modules/rxjs/operators/sampleTime.js.map
deleted file mode 100644
index 986c3d6..0000000
--- a/node_modules/rxjs/operators/sampleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sampleTime.js","sources":["../src/operators/sampleTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/scan.d.ts b/node_modules/rxjs/operators/scan.d.ts
deleted file mode 100644
index acaee73..0000000
--- a/node_modules/rxjs/operators/scan.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/scan';
diff --git a/node_modules/rxjs/operators/scan.js b/node_modules/rxjs/operators/scan.js
deleted file mode 100644
index 68d2483..0000000
--- a/node_modules/rxjs/operators/scan.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/scan"));
-//# sourceMappingURL=scan.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/scan.js.map b/node_modules/rxjs/operators/scan.js.map
deleted file mode 100644
index 322d5c0..0000000
--- a/node_modules/rxjs/operators/scan.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scan.js","sources":["../src/operators/scan.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/sequenceEqual.d.ts b/node_modules/rxjs/operators/sequenceEqual.d.ts
deleted file mode 100644
index 0a6e3cb..0000000
--- a/node_modules/rxjs/operators/sequenceEqual.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sequenceEqual';
diff --git a/node_modules/rxjs/operators/sequenceEqual.js b/node_modules/rxjs/operators/sequenceEqual.js
deleted file mode 100644
index 1a7bc9c..0000000
--- a/node_modules/rxjs/operators/sequenceEqual.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/sequenceEqual"));
-//# sourceMappingURL=sequenceEqual.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/sequenceEqual.js.map b/node_modules/rxjs/operators/sequenceEqual.js.map
deleted file mode 100644
index 0eb7640..0000000
--- a/node_modules/rxjs/operators/sequenceEqual.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sequenceEqual.js","sources":["../src/operators/sequenceEqual.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/operators/share.d.ts b/node_modules/rxjs/operators/share.d.ts
deleted file mode 100644
index fd113fd..0000000
--- a/node_modules/rxjs/operators/share.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/share';
diff --git a/node_modules/rxjs/operators/share.js b/node_modules/rxjs/operators/share.js
deleted file mode 100644
index 1884717..0000000
--- a/node_modules/rxjs/operators/share.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/share"));
-//# sourceMappingURL=share.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/share.js.map b/node_modules/rxjs/operators/share.js.map
deleted file mode 100644
index 31089f1..0000000
--- a/node_modules/rxjs/operators/share.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"share.js","sources":["../src/operators/share.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/operators/shareReplay.d.ts b/node_modules/rxjs/operators/shareReplay.d.ts
deleted file mode 100644
index d489c81..0000000
--- a/node_modules/rxjs/operators/shareReplay.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/shareReplay';
diff --git a/node_modules/rxjs/operators/shareReplay.js b/node_modules/rxjs/operators/shareReplay.js
deleted file mode 100644
index 4cd6e79..0000000
--- a/node_modules/rxjs/operators/shareReplay.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/shareReplay"));
-//# sourceMappingURL=shareReplay.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/shareReplay.js.map b/node_modules/rxjs/operators/shareReplay.js.map
deleted file mode 100644
index e21e1fa..0000000
--- a/node_modules/rxjs/operators/shareReplay.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"shareReplay.js","sources":["../src/operators/shareReplay.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/single.d.ts b/node_modules/rxjs/operators/single.d.ts
deleted file mode 100644
index 096d4b4..0000000
--- a/node_modules/rxjs/operators/single.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/single';
diff --git a/node_modules/rxjs/operators/single.js b/node_modules/rxjs/operators/single.js
deleted file mode 100644
index 8558c1a..0000000
--- a/node_modules/rxjs/operators/single.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/single"));
-//# sourceMappingURL=single.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/single.js.map b/node_modules/rxjs/operators/single.js.map
deleted file mode 100644
index 177faad..0000000
--- a/node_modules/rxjs/operators/single.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"single.js","sources":["../src/operators/single.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/skip.d.ts b/node_modules/rxjs/operators/skip.d.ts
deleted file mode 100644
index 002baeb..0000000
--- a/node_modules/rxjs/operators/skip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skip';
diff --git a/node_modules/rxjs/operators/skip.js b/node_modules/rxjs/operators/skip.js
deleted file mode 100644
index 36aedaf..0000000
--- a/node_modules/rxjs/operators/skip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/skip"));
-//# sourceMappingURL=skip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/skip.js.map b/node_modules/rxjs/operators/skip.js.map
deleted file mode 100644
index c205efa..0000000
--- a/node_modules/rxjs/operators/skip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skip.js","sources":["../src/operators/skip.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/skipLast.d.ts b/node_modules/rxjs/operators/skipLast.d.ts
deleted file mode 100644
index 15d1c49..0000000
--- a/node_modules/rxjs/operators/skipLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipLast';
diff --git a/node_modules/rxjs/operators/skipLast.js b/node_modules/rxjs/operators/skipLast.js
deleted file mode 100644
index 1cc0d95..0000000
--- a/node_modules/rxjs/operators/skipLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/skipLast"));
-//# sourceMappingURL=skipLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/skipLast.js.map b/node_modules/rxjs/operators/skipLast.js.map
deleted file mode 100644
index 3681a82..0000000
--- a/node_modules/rxjs/operators/skipLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipLast.js","sources":["../src/operators/skipLast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/skipUntil.d.ts b/node_modules/rxjs/operators/skipUntil.d.ts
deleted file mode 100644
index 4193fe2..0000000
--- a/node_modules/rxjs/operators/skipUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipUntil';
diff --git a/node_modules/rxjs/operators/skipUntil.js b/node_modules/rxjs/operators/skipUntil.js
deleted file mode 100644
index 8c3a835..0000000
--- a/node_modules/rxjs/operators/skipUntil.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/skipUntil"));
-//# sourceMappingURL=skipUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/skipUntil.js.map b/node_modules/rxjs/operators/skipUntil.js.map
deleted file mode 100644
index 7a5b403..0000000
--- a/node_modules/rxjs/operators/skipUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipUntil.js","sources":["../src/operators/skipUntil.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/skipWhile.d.ts b/node_modules/rxjs/operators/skipWhile.d.ts
deleted file mode 100644
index 34fb4d6..0000000
--- a/node_modules/rxjs/operators/skipWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipWhile';
diff --git a/node_modules/rxjs/operators/skipWhile.js b/node_modules/rxjs/operators/skipWhile.js
deleted file mode 100644
index ef5af62..0000000
--- a/node_modules/rxjs/operators/skipWhile.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/skipWhile"));
-//# sourceMappingURL=skipWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/skipWhile.js.map b/node_modules/rxjs/operators/skipWhile.js.map
deleted file mode 100644
index af6476f..0000000
--- a/node_modules/rxjs/operators/skipWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"skipWhile.js","sources":["../src/operators/skipWhile.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/startWith.d.ts b/node_modules/rxjs/operators/startWith.d.ts
deleted file mode 100644
index 901bbba..0000000
--- a/node_modules/rxjs/operators/startWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/startWith';
diff --git a/node_modules/rxjs/operators/startWith.js b/node_modules/rxjs/operators/startWith.js
deleted file mode 100644
index 91f8d0f..0000000
--- a/node_modules/rxjs/operators/startWith.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/startWith"));
-//# sourceMappingURL=startWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/startWith.js.map b/node_modules/rxjs/operators/startWith.js.map
deleted file mode 100644
index df03b11..0000000
--- a/node_modules/rxjs/operators/startWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"startWith.js","sources":["../src/operators/startWith.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/subscribeOn.d.ts b/node_modules/rxjs/operators/subscribeOn.d.ts
deleted file mode 100644
index eb1c233..0000000
--- a/node_modules/rxjs/operators/subscribeOn.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/subscribeOn';
diff --git a/node_modules/rxjs/operators/subscribeOn.js b/node_modules/rxjs/operators/subscribeOn.js
deleted file mode 100644
index 76672d6..0000000
--- a/node_modules/rxjs/operators/subscribeOn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/subscribeOn"));
-//# sourceMappingURL=subscribeOn.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/subscribeOn.js.map b/node_modules/rxjs/operators/subscribeOn.js.map
deleted file mode 100644
index 347c48e..0000000
--- a/node_modules/rxjs/operators/subscribeOn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeOn.js","sources":["../src/operators/subscribeOn.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/switchAll.d.ts b/node_modules/rxjs/operators/switchAll.d.ts
deleted file mode 100644
index 37a8c20..0000000
--- a/node_modules/rxjs/operators/switchAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchAll';
diff --git a/node_modules/rxjs/operators/switchAll.js b/node_modules/rxjs/operators/switchAll.js
deleted file mode 100644
index 5545f36..0000000
--- a/node_modules/rxjs/operators/switchAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/switchAll"));
-//# sourceMappingURL=switchAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/switchAll.js.map b/node_modules/rxjs/operators/switchAll.js.map
deleted file mode 100644
index b2c25f7..0000000
--- a/node_modules/rxjs/operators/switchAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchAll.js","sources":["../src/operators/switchAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/switchMap.d.ts b/node_modules/rxjs/operators/switchMap.d.ts
deleted file mode 100644
index 840c2c7..0000000
--- a/node_modules/rxjs/operators/switchMap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchMap';
diff --git a/node_modules/rxjs/operators/switchMap.js b/node_modules/rxjs/operators/switchMap.js
deleted file mode 100644
index 0b32ced..0000000
--- a/node_modules/rxjs/operators/switchMap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/switchMap"));
-//# sourceMappingURL=switchMap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/switchMap.js.map b/node_modules/rxjs/operators/switchMap.js.map
deleted file mode 100644
index 6cf7fe0..0000000
--- a/node_modules/rxjs/operators/switchMap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMap.js","sources":["../src/operators/switchMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/switchMapTo.d.ts b/node_modules/rxjs/operators/switchMapTo.d.ts
deleted file mode 100644
index fbefdfe..0000000
--- a/node_modules/rxjs/operators/switchMapTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchMapTo';
diff --git a/node_modules/rxjs/operators/switchMapTo.js b/node_modules/rxjs/operators/switchMapTo.js
deleted file mode 100644
index 73735d7..0000000
--- a/node_modules/rxjs/operators/switchMapTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/switchMapTo"));
-//# sourceMappingURL=switchMapTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/switchMapTo.js.map b/node_modules/rxjs/operators/switchMapTo.js.map
deleted file mode 100644
index 45d2c8b..0000000
--- a/node_modules/rxjs/operators/switchMapTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"switchMapTo.js","sources":["../src/operators/switchMapTo.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/take.d.ts b/node_modules/rxjs/operators/take.d.ts
deleted file mode 100644
index 1176ad7..0000000
--- a/node_modules/rxjs/operators/take.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/take';
diff --git a/node_modules/rxjs/operators/take.js b/node_modules/rxjs/operators/take.js
deleted file mode 100644
index 8877ecd..0000000
--- a/node_modules/rxjs/operators/take.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/take"));
-//# sourceMappingURL=take.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/take.js.map b/node_modules/rxjs/operators/take.js.map
deleted file mode 100644
index f577342..0000000
--- a/node_modules/rxjs/operators/take.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"take.js","sources":["../src/operators/take.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/operators/takeLast.d.ts b/node_modules/rxjs/operators/takeLast.d.ts
deleted file mode 100644
index 35e85f2..0000000
--- a/node_modules/rxjs/operators/takeLast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeLast';
diff --git a/node_modules/rxjs/operators/takeLast.js b/node_modules/rxjs/operators/takeLast.js
deleted file mode 100644
index 4f0c1c7..0000000
--- a/node_modules/rxjs/operators/takeLast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/takeLast"));
-//# sourceMappingURL=takeLast.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/takeLast.js.map b/node_modules/rxjs/operators/takeLast.js.map
deleted file mode 100644
index 3d8dd40..0000000
--- a/node_modules/rxjs/operators/takeLast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeLast.js","sources":["../src/operators/takeLast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/takeUntil.d.ts b/node_modules/rxjs/operators/takeUntil.d.ts
deleted file mode 100644
index 828abef..0000000
--- a/node_modules/rxjs/operators/takeUntil.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeUntil';
diff --git a/node_modules/rxjs/operators/takeUntil.js b/node_modules/rxjs/operators/takeUntil.js
deleted file mode 100644
index e22bd65..0000000
--- a/node_modules/rxjs/operators/takeUntil.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/takeUntil"));
-//# sourceMappingURL=takeUntil.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/takeUntil.js.map b/node_modules/rxjs/operators/takeUntil.js.map
deleted file mode 100644
index e1866a7..0000000
--- a/node_modules/rxjs/operators/takeUntil.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeUntil.js","sources":["../src/operators/takeUntil.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/takeWhile.d.ts b/node_modules/rxjs/operators/takeWhile.d.ts
deleted file mode 100644
index c3edb4e..0000000
--- a/node_modules/rxjs/operators/takeWhile.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeWhile';
diff --git a/node_modules/rxjs/operators/takeWhile.js b/node_modules/rxjs/operators/takeWhile.js
deleted file mode 100644
index 57dd0bd..0000000
--- a/node_modules/rxjs/operators/takeWhile.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/takeWhile"));
-//# sourceMappingURL=takeWhile.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/takeWhile.js.map b/node_modules/rxjs/operators/takeWhile.js.map
deleted file mode 100644
index bcb90c4..0000000
--- a/node_modules/rxjs/operators/takeWhile.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"takeWhile.js","sources":["../src/operators/takeWhile.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/tap.d.ts b/node_modules/rxjs/operators/tap.d.ts
deleted file mode 100644
index 6190e75..0000000
--- a/node_modules/rxjs/operators/tap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/tap';
diff --git a/node_modules/rxjs/operators/tap.js b/node_modules/rxjs/operators/tap.js
deleted file mode 100644
index 03e5305..0000000
--- a/node_modules/rxjs/operators/tap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/tap"));
-//# sourceMappingURL=tap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/tap.js.map b/node_modules/rxjs/operators/tap.js.map
deleted file mode 100644
index fbbdbcc..0000000
--- a/node_modules/rxjs/operators/tap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tap.js","sources":["../src/operators/tap.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operators/throttle.d.ts b/node_modules/rxjs/operators/throttle.d.ts
deleted file mode 100644
index f887a2f..0000000
--- a/node_modules/rxjs/operators/throttle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throttle';
diff --git a/node_modules/rxjs/operators/throttle.js b/node_modules/rxjs/operators/throttle.js
deleted file mode 100644
index 6d22ee1..0000000
--- a/node_modules/rxjs/operators/throttle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/throttle"));
-//# sourceMappingURL=throttle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/throttle.js.map b/node_modules/rxjs/operators/throttle.js.map
deleted file mode 100644
index 719fa20..0000000
--- a/node_modules/rxjs/operators/throttle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttle.js","sources":["../src/operators/throttle.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"}
diff --git a/node_modules/rxjs/operators/throttleTime.d.ts b/node_modules/rxjs/operators/throttleTime.d.ts
deleted file mode 100644
index 8fbd3c8..0000000
--- a/node_modules/rxjs/operators/throttleTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throttleTime';
diff --git a/node_modules/rxjs/operators/throttleTime.js b/node_modules/rxjs/operators/throttleTime.js
deleted file mode 100644
index f8678a7..0000000
--- a/node_modules/rxjs/operators/throttleTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/throttleTime"));
-//# sourceMappingURL=throttleTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/throttleTime.js.map b/node_modules/rxjs/operators/throttleTime.js.map
deleted file mode 100644
index b72849c..0000000
--- a/node_modules/rxjs/operators/throttleTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throttleTime.js","sources":["../src/operators/throttleTime.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/throwIfEmpty.d.ts b/node_modules/rxjs/operators/throwIfEmpty.d.ts
deleted file mode 100644
index 6bb64cd..0000000
--- a/node_modules/rxjs/operators/throwIfEmpty.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throwIfEmpty';
diff --git a/node_modules/rxjs/operators/throwIfEmpty.js b/node_modules/rxjs/operators/throwIfEmpty.js
deleted file mode 100644
index cbbedaf..0000000
--- a/node_modules/rxjs/operators/throwIfEmpty.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/throwIfEmpty"));
-//# sourceMappingURL=throwIfEmpty.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/throwIfEmpty.js.map b/node_modules/rxjs/operators/throwIfEmpty.js.map
deleted file mode 100644
index 97ff196..0000000
--- a/node_modules/rxjs/operators/throwIfEmpty.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"throwIfEmpty.js","sources":["../src/operators/throwIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/timeInterval.d.ts b/node_modules/rxjs/operators/timeInterval.d.ts
deleted file mode 100644
index 6af3911..0000000
--- a/node_modules/rxjs/operators/timeInterval.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeInterval';
diff --git a/node_modules/rxjs/operators/timeInterval.js b/node_modules/rxjs/operators/timeInterval.js
deleted file mode 100644
index a26261c..0000000
--- a/node_modules/rxjs/operators/timeInterval.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/timeInterval"));
-//# sourceMappingURL=timeInterval.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/timeInterval.js.map b/node_modules/rxjs/operators/timeInterval.js.map
deleted file mode 100644
index dbc2e59..0000000
--- a/node_modules/rxjs/operators/timeInterval.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeInterval.js","sources":["../src/operators/timeInterval.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/timeout.d.ts b/node_modules/rxjs/operators/timeout.d.ts
deleted file mode 100644
index c4a43f1..0000000
--- a/node_modules/rxjs/operators/timeout.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeout';
diff --git a/node_modules/rxjs/operators/timeout.js b/node_modules/rxjs/operators/timeout.js
deleted file mode 100644
index f16b42e..0000000
--- a/node_modules/rxjs/operators/timeout.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/timeout"));
-//# sourceMappingURL=timeout.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/timeout.js.map b/node_modules/rxjs/operators/timeout.js.map
deleted file mode 100644
index d7840c6..0000000
--- a/node_modules/rxjs/operators/timeout.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeout.js","sources":["../src/operators/timeout.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/timeoutWith.d.ts b/node_modules/rxjs/operators/timeoutWith.d.ts
deleted file mode 100644
index 2cfcad8..0000000
--- a/node_modules/rxjs/operators/timeoutWith.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeoutWith';
diff --git a/node_modules/rxjs/operators/timeoutWith.js b/node_modules/rxjs/operators/timeoutWith.js
deleted file mode 100644
index 44b98a6..0000000
--- a/node_modules/rxjs/operators/timeoutWith.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/timeoutWith"));
-//# sourceMappingURL=timeoutWith.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/timeoutWith.js.map b/node_modules/rxjs/operators/timeoutWith.js.map
deleted file mode 100644
index e0d8e13..0000000
--- a/node_modules/rxjs/operators/timeoutWith.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timeoutWith.js","sources":["../src/operators/timeoutWith.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/timestamp.d.ts b/node_modules/rxjs/operators/timestamp.d.ts
deleted file mode 100644
index 6580e38..0000000
--- a/node_modules/rxjs/operators/timestamp.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timestamp';
diff --git a/node_modules/rxjs/operators/timestamp.js b/node_modules/rxjs/operators/timestamp.js
deleted file mode 100644
index 503edd0..0000000
--- a/node_modules/rxjs/operators/timestamp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/timestamp"));
-//# sourceMappingURL=timestamp.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/timestamp.js.map b/node_modules/rxjs/operators/timestamp.js.map
deleted file mode 100644
index 1b99816..0000000
--- a/node_modules/rxjs/operators/timestamp.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"timestamp.js","sources":["../src/operators/timestamp.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/operators/toArray.d.ts b/node_modules/rxjs/operators/toArray.d.ts
deleted file mode 100644
index 7f678db..0000000
--- a/node_modules/rxjs/operators/toArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/toArray';
diff --git a/node_modules/rxjs/operators/toArray.js b/node_modules/rxjs/operators/toArray.js
deleted file mode 100644
index c7ddd80..0000000
--- a/node_modules/rxjs/operators/toArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/toArray"));
-//# sourceMappingURL=toArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/toArray.js.map b/node_modules/rxjs/operators/toArray.js.map
deleted file mode 100644
index fde0f54..0000000
--- a/node_modules/rxjs/operators/toArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toArray.js","sources":["../src/operators/toArray.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/operators/window.d.ts b/node_modules/rxjs/operators/window.d.ts
deleted file mode 100644
index 2642141..0000000
--- a/node_modules/rxjs/operators/window.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/window';
diff --git a/node_modules/rxjs/operators/window.js b/node_modules/rxjs/operators/window.js
deleted file mode 100644
index a9a47f1..0000000
--- a/node_modules/rxjs/operators/window.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/window"));
-//# sourceMappingURL=window.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/window.js.map b/node_modules/rxjs/operators/window.js.map
deleted file mode 100644
index 826df0d..0000000
--- a/node_modules/rxjs/operators/window.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"window.js","sources":["../src/operators/window.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/operators/windowCount.d.ts b/node_modules/rxjs/operators/windowCount.d.ts
deleted file mode 100644
index b774707..0000000
--- a/node_modules/rxjs/operators/windowCount.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowCount';
diff --git a/node_modules/rxjs/operators/windowCount.js b/node_modules/rxjs/operators/windowCount.js
deleted file mode 100644
index fce57b9..0000000
--- a/node_modules/rxjs/operators/windowCount.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/windowCount"));
-//# sourceMappingURL=windowCount.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/windowCount.js.map b/node_modules/rxjs/operators/windowCount.js.map
deleted file mode 100644
index 413156a..0000000
--- a/node_modules/rxjs/operators/windowCount.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowCount.js","sources":["../src/operators/windowCount.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/operators/windowTime.d.ts b/node_modules/rxjs/operators/windowTime.d.ts
deleted file mode 100644
index 2cbf76f..0000000
--- a/node_modules/rxjs/operators/windowTime.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowTime';
diff --git a/node_modules/rxjs/operators/windowTime.js b/node_modules/rxjs/operators/windowTime.js
deleted file mode 100644
index 3befdf0..0000000
--- a/node_modules/rxjs/operators/windowTime.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/windowTime"));
-//# sourceMappingURL=windowTime.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/windowTime.js.map b/node_modules/rxjs/operators/windowTime.js.map
deleted file mode 100644
index 4da1799..0000000
--- a/node_modules/rxjs/operators/windowTime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowTime.js","sources":["../src/operators/windowTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/windowToggle.d.ts b/node_modules/rxjs/operators/windowToggle.d.ts
deleted file mode 100644
index b116f17..0000000
--- a/node_modules/rxjs/operators/windowToggle.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowToggle';
diff --git a/node_modules/rxjs/operators/windowToggle.js b/node_modules/rxjs/operators/windowToggle.js
deleted file mode 100644
index d055c84..0000000
--- a/node_modules/rxjs/operators/windowToggle.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/windowToggle"));
-//# sourceMappingURL=windowToggle.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/windowToggle.js.map b/node_modules/rxjs/operators/windowToggle.js.map
deleted file mode 100644
index 8724be9..0000000
--- a/node_modules/rxjs/operators/windowToggle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowToggle.js","sources":["../src/operators/windowToggle.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/operators/windowWhen.d.ts b/node_modules/rxjs/operators/windowWhen.d.ts
deleted file mode 100644
index 782d4dc..0000000
--- a/node_modules/rxjs/operators/windowWhen.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowWhen';
diff --git a/node_modules/rxjs/operators/windowWhen.js b/node_modules/rxjs/operators/windowWhen.js
deleted file mode 100644
index f786334..0000000
--- a/node_modules/rxjs/operators/windowWhen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/windowWhen"));
-//# sourceMappingURL=windowWhen.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/windowWhen.js.map b/node_modules/rxjs/operators/windowWhen.js.map
deleted file mode 100644
index f05c5ae..0000000
--- a/node_modules/rxjs/operators/windowWhen.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"windowWhen.js","sources":["../src/operators/windowWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/operators/withLatestFrom.d.ts b/node_modules/rxjs/operators/withLatestFrom.d.ts
deleted file mode 100644
index 15f7450..0000000
--- a/node_modules/rxjs/operators/withLatestFrom.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/withLatestFrom';
diff --git a/node_modules/rxjs/operators/withLatestFrom.js b/node_modules/rxjs/operators/withLatestFrom.js
deleted file mode 100644
index f39e3de..0000000
--- a/node_modules/rxjs/operators/withLatestFrom.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/withLatestFrom"));
-//# sourceMappingURL=withLatestFrom.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/withLatestFrom.js.map b/node_modules/rxjs/operators/withLatestFrom.js.map
deleted file mode 100644
index 1175b2e..0000000
--- a/node_modules/rxjs/operators/withLatestFrom.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"withLatestFrom.js","sources":["../src/operators/withLatestFrom.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/operators/zip.d.ts b/node_modules/rxjs/operators/zip.d.ts
deleted file mode 100644
index c75d56f..0000000
--- a/node_modules/rxjs/operators/zip.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/zip';
diff --git a/node_modules/rxjs/operators/zip.js b/node_modules/rxjs/operators/zip.js
deleted file mode 100644
index eabdfa4..0000000
--- a/node_modules/rxjs/operators/zip.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/zip"));
-//# sourceMappingURL=zip.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/zip.js.map b/node_modules/rxjs/operators/zip.js.map
deleted file mode 100644
index 24f8f22..0000000
--- a/node_modules/rxjs/operators/zip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zip.js","sources":["../src/operators/zip.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/operators/zipAll.d.ts b/node_modules/rxjs/operators/zipAll.d.ts
deleted file mode 100644
index 3e69835..0000000
--- a/node_modules/rxjs/operators/zipAll.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/zipAll';
diff --git a/node_modules/rxjs/operators/zipAll.js b/node_modules/rxjs/operators/zipAll.js
deleted file mode 100644
index 2a5ebe6..0000000
--- a/node_modules/rxjs/operators/zipAll.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/operators/zipAll"));
-//# sourceMappingURL=zipAll.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/operators/zipAll.js.map b/node_modules/rxjs/operators/zipAll.js.map
deleted file mode 100644
index c6e0168..0000000
--- a/node_modules/rxjs/operators/zipAll.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"zipAll.js","sources":["../src/operators/zipAll.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/package.json b/node_modules/rxjs/package.json
deleted file mode 100644
index 5b49a01..0000000
--- a/node_modules/rxjs/package.json
+++ /dev/null
@@ -1,180 +0,0 @@
-{
-  "name": "rxjs",
-  "version": "6.5.4",
-  "description": "Reactive Extensions for modern JavaScript",
-  "main": "./index.js",
-  "sideEffects": false,
-  "config": {
-    "commitizen": {
-      "path": "cz-conventional-changelog"
-    }
-  },
-  "nyc": {
-    "include": [
-      "src/*.ts",
-      "src/**/*.ts"
-    ],
-    "exclude": [
-      "node_modules",
-      "dist",
-      "*.d.ts",
-      "src/**/MiscJSDoc.ts"
-    ],
-    "extension": [
-      ".ts"
-    ],
-    "reporter": [
-      "html"
-    ],
-    "all": true
-  },
-  "lint-staged": {
-    "linters": {
-      "*.@(js)": [
-        "eslint --fix",
-        "git add"
-      ],
-      "*.@(ts)": [
-        "tslint --fix",
-        "git add"
-      ]
-    },
-    "ignore": [
-      "spec-dtslint/**/*.{js,ts}"
-    ]
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/reactivex/rxjs.git"
-  },
-  "keywords": [
-    "Rx",
-    "RxJS",
-    "ReactiveX",
-    "ReactiveExtensions",
-    "Streams",
-    "Observables",
-    "Observable",
-    "Stream",
-    "ES6",
-    "ES2015"
-  ],
-  "author": "Ben Lesh <ben@benlesh.com>",
-  "contributors": [
-    {
-      "name": "Ben Lesh",
-      "email": "ben@benlesh.com"
-    },
-    {
-      "name": "Paul Taylor",
-      "email": "paul.e.taylor@me.com"
-    },
-    {
-      "name": "Jeff Cross",
-      "email": "crossj@google.com"
-    },
-    {
-      "name": "Matthew Podwysocki",
-      "email": "matthewp@microsoft.com"
-    },
-    {
-      "name": "OJ Kwon",
-      "email": "kwon.ohjoong@gmail.com"
-    },
-    {
-      "name": "Andre Staltz",
-      "email": "andre@staltz.com"
-    }
-  ],
-  "license": "Apache-2.0",
-  "bugs": {
-    "url": "https://github.com/ReactiveX/RxJS/issues"
-  },
-  "homepage": "https://github.com/ReactiveX/RxJS",
-  "dependencies": {
-    "tslib": "^1.9.0"
-  },
-  "devDependencies": {
-    "@angular-devkit/build-optimizer": "0.4.6",
-    "@angular-devkit/schematics": "^0.5.4",
-    "@types/chai": "4.1.2",
-    "@types/lodash": "4.14.102",
-    "@types/mocha": "2.2.48",
-    "@types/node": "9.4.5",
-    "@types/sinon": "4.1.3",
-    "@types/sinon-chai": "2.7.29",
-    "@types/source-map": "^0.5.2",
-    "babel-polyfill": "6.26.0",
-    "benchmark": "2.1.0",
-    "benchpress": "2.0.0-beta.1",
-    "chai": "4.1.2",
-    "check-side-effects": "0.0.20",
-    "color": "3.0.0",
-    "colors": "1.1.2",
-    "commitizen": "2.9.6",
-    "coveralls": "3.0.0",
-    "cross-env": "5.1.3",
-    "cz-conventional-changelog": "1.2.0",
-    "danger": "1.1.0",
-    "dependency-cruiser": "2.13.0",
-    "doctoc": "1.3.0",
-    "dtslint": "0.6.1",
-    "escape-string-regexp": "1.0.5",
-    "esdoc": "0.4.7",
-    "eslint": "4.17.0",
-    "eslint-plugin-jasmine": "^2.10.1",
-    "fs-extra": "5.0.0",
-    "get-folder-size": "1.0.1",
-    "glob": "7.1.2",
-    "gm": "1.23.1",
-    "google-closure-compiler-js": "20170218.0.0",
-    "gzip-size": "4.1.0",
-    "http-server": "0.11.1",
-    "husky": "0.14.3",
-    "klaw-sync": "3.0.2",
-    "lint-staged": "7.1.1",
-    "lodash": "4.17.5",
-    "markdown-doctest": "0.9.1",
-    "minimist": "1.2.0",
-    "mkdirp": "0.5.1",
-    "mocha": "5.0.0",
-    "mocha-in-sauce": "0.0.1",
-    "npm-run-all": "4.1.2",
-    "nyc": "11.4.1",
-    "opn-cli": "3.1.0",
-    "platform": "1.3.5",
-    "promise": "8.0.1",
-    "protractor": "3.1.1",
-    "rollup": "0.66.6",
-    "rollup-plugin-alias": "1.4.0",
-    "rollup-plugin-inject": "2.0.0",
-    "rollup-plugin-node-resolve": "2.0.0",
-    "rx": "latest",
-    "rxjs": "^5.5.7",
-    "shx": "0.2.2",
-    "sinon": "4.3.0",
-    "sinon-chai": "2.14.0",
-    "source-map-support": "0.5.3",
-    "symbol-observable": "1.0.1",
-    "systemjs": "^0.21.0",
-    "ts-node": "6.1.0",
-    "tsconfig-paths": "3.2.0",
-    "tslint": "5.9.1",
-    "tslint-etc": "1.2.6",
-    "tslint-no-toplevel-property-access": "0.0.2",
-    "tslint-no-unused-expression-chai": "0.0.3",
-    "typescript": "^3.0.1",
-    "validate-commit-msg": "2.14.0",
-    "webpack": "1.13.1",
-    "xmlhttprequest": "1.8.0"
-  },
-  "engines": {
-    "npm": ">=2.0.0"
-  },
-  "typings": "./index.d.ts",
-  "ng-update": {
-    "migrations": "./migrations/collection.json"
-  },
-  "module": "./_esm5/index.js",
-  "es2015": "./_esm2015/index.js"
-}
diff --git a/node_modules/rxjs/scheduler/animationFrame.d.ts b/node_modules/rxjs/scheduler/animationFrame.d.ts
deleted file mode 100644
index f293624..0000000
--- a/node_modules/rxjs/scheduler/animationFrame.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/animationFrame';
diff --git a/node_modules/rxjs/scheduler/animationFrame.js b/node_modules/rxjs/scheduler/animationFrame.js
deleted file mode 100644
index c010af9..0000000
--- a/node_modules/rxjs/scheduler/animationFrame.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/scheduler/animationFrame"));
-//# sourceMappingURL=animationFrame.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/scheduler/animationFrame.js.map b/node_modules/rxjs/scheduler/animationFrame.js.map
deleted file mode 100644
index 9e0de76..0000000
--- a/node_modules/rxjs/scheduler/animationFrame.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"animationFrame.js","sources":["../src/scheduler/animationFrame.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/scheduler/asap.d.ts b/node_modules/rxjs/scheduler/asap.d.ts
deleted file mode 100644
index 934d4b5..0000000
--- a/node_modules/rxjs/scheduler/asap.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/asap';
diff --git a/node_modules/rxjs/scheduler/asap.js b/node_modules/rxjs/scheduler/asap.js
deleted file mode 100644
index 287a6f8..0000000
--- a/node_modules/rxjs/scheduler/asap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/scheduler/asap"));
-//# sourceMappingURL=asap.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/scheduler/asap.js.map b/node_modules/rxjs/scheduler/asap.js.map
deleted file mode 100644
index 115c33e..0000000
--- a/node_modules/rxjs/scheduler/asap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"asap.js","sources":["../src/scheduler/asap.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/scheduler/async.d.ts b/node_modules/rxjs/scheduler/async.d.ts
deleted file mode 100644
index ed5a613..0000000
--- a/node_modules/rxjs/scheduler/async.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/async';
diff --git a/node_modules/rxjs/scheduler/async.js b/node_modules/rxjs/scheduler/async.js
deleted file mode 100644
index a60a16c..0000000
--- a/node_modules/rxjs/scheduler/async.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/scheduler/async"));
-//# sourceMappingURL=async.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/scheduler/async.js.map b/node_modules/rxjs/scheduler/async.js.map
deleted file mode 100644
index 35f600b..0000000
--- a/node_modules/rxjs/scheduler/async.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"async.js","sources":["../src/scheduler/async.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/scheduler/queue.d.ts b/node_modules/rxjs/scheduler/queue.d.ts
deleted file mode 100644
index daea584..0000000
--- a/node_modules/rxjs/scheduler/queue.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/queue';
diff --git a/node_modules/rxjs/scheduler/queue.js b/node_modules/rxjs/scheduler/queue.js
deleted file mode 100644
index 3d8dcb9..0000000
--- a/node_modules/rxjs/scheduler/queue.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/scheduler/queue"));
-//# sourceMappingURL=queue.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/scheduler/queue.js.map b/node_modules/rxjs/scheduler/queue.js.map
deleted file mode 100644
index 2278582..0000000
--- a/node_modules/rxjs/scheduler/queue.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"queue.js","sources":["../src/scheduler/queue.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/src/AsyncSubject.ts b/node_modules/rxjs/src/AsyncSubject.ts
deleted file mode 100644
index 2c4d977..0000000
--- a/node_modules/rxjs/src/AsyncSubject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/AsyncSubject';
diff --git a/node_modules/rxjs/src/BehaviorSubject.ts b/node_modules/rxjs/src/BehaviorSubject.ts
deleted file mode 100644
index f8b4f44..0000000
--- a/node_modules/rxjs/src/BehaviorSubject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/BehaviorSubject';
diff --git a/node_modules/rxjs/src/InnerSubscriber.ts b/node_modules/rxjs/src/InnerSubscriber.ts
deleted file mode 100644
index 79e3b4a..0000000
--- a/node_modules/rxjs/src/InnerSubscriber.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/InnerSubscriber';
diff --git a/node_modules/rxjs/src/LICENSE.txt b/node_modules/rxjs/src/LICENSE.txt
deleted file mode 100644
index 031ce38..0000000
--- a/node_modules/rxjs/src/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                               Apache License
-                         Version 2.0, January 2004
-                      http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
-    "License" shall mean the terms and conditions for use, reproduction,
-    and distribution as defined by Sections 1 through 9 of this document.
-
-    "Licensor" shall mean the copyright owner or entity authorized by
-    the copyright owner that is granting the License.
-
-    "Legal Entity" shall mean the union of the acting entity and all
-    other entities that control, are controlled by, or are under common
-    control with that entity. For the purposes of this definition,
-    "control" means (i) the power, direct or indirect, to cause the
-    direction or management of such entity, whether by contract or
-    otherwise, or (ii) ownership of fifty percent (50%) or more of the
-    outstanding shares, or (iii) beneficial ownership of such entity.
-
-    "You" (or "Your") shall mean an individual or Legal Entity
-    exercising permissions granted by this License.
-
-    "Source" form shall mean the preferred form for making modifications,
-    including but not limited to software source code, documentation
-    source, and configuration files.
-
-    "Object" form shall mean any form resulting from mechanical
-    transformation or translation of a Source form, including but
-    not limited to compiled object code, generated documentation,
-    and conversions to other media types.
-
-    "Work" shall mean the work of authorship, whether in Source or
-    Object form, made available under the License, as indicated by a
-    copyright notice that is included in or attached to the work
-    (an example is provided in the Appendix below).
-
-    "Derivative Works" shall mean any work, whether in Source or Object
-    form, that is based on (or derived from) the Work and for which the
-    editorial revisions, annotations, elaborations, or other modifications
-    represent, as a whole, an original work of authorship. For the purposes
-    of this License, Derivative Works shall not include works that remain
-    separable from, or merely link (or bind by name) to the interfaces of,
-    the Work and Derivative Works thereof.
-
-    "Contribution" shall mean any work of authorship, including
-    the original version of the Work and any modifications or additions
-    to that Work or Derivative Works thereof, that is intentionally
-    submitted to Licensor for inclusion in the Work by the copyright owner
-    or by an individual or Legal Entity authorized to submit on behalf of
-    the copyright owner. For the purposes of this definition, "submitted"
-    means any form of electronic, verbal, or written communication sent
-    to the Licensor or its representatives, including but not limited to
-    communication on electronic mailing lists, source code control systems,
-    and issue tracking systems that are managed by, or on behalf of, the
-    Licensor for the purpose of discussing and improving the Work, but
-    excluding communication that is conspicuously marked or otherwise
-    designated in writing by the copyright owner as "Not a Contribution."
-
-    "Contributor" shall mean Licensor and any individual or Legal Entity
-    on behalf of whom a Contribution has been received by Licensor and
-    subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    copyright license to reproduce, prepare Derivative Works of,
-    publicly display, publicly perform, sublicense, and distribute the
-    Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
-    this License, each Contributor hereby grants to You a perpetual,
-    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-    (except as stated in this section) patent license to make, have made,
-    use, offer to sell, sell, import, and otherwise transfer the Work,
-    where such license applies only to those patent claims licensable
-    by such Contributor that are necessarily infringed by their
-    Contribution(s) alone or by combination of their Contribution(s)
-    with the Work to which such Contribution(s) was submitted. If You
-    institute patent litigation against any entity (including a
-    cross-claim or counterclaim in a lawsuit) alleging that the Work
-    or a Contribution incorporated within the Work constitutes direct
-    or contributory patent infringement, then any patent licenses
-    granted to You under this License for that Work shall terminate
-    as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
-    Work or Derivative Works thereof in any medium, with or without
-    modifications, and in Source or Object form, provided that You
-    meet the following conditions:
-
-    (a) You must give any other recipients of the Work or
-        Derivative Works a copy of this License; and
-
-    (b) You must cause any modified files to carry prominent notices
-        stating that You changed the files; and
-
-    (c) You must retain, in the Source form of any Derivative Works
-        that You distribute, all copyright, patent, trademark, and
-        attribution notices from the Source form of the Work,
-        excluding those notices that do not pertain to any part of
-        the Derivative Works; and
-
-    (d) If the Work includes a "NOTICE" text file as part of its
-        distribution, then any Derivative Works that You distribute must
-        include a readable copy of the attribution notices contained
-        within such NOTICE file, excluding those notices that do not
-        pertain to any part of the Derivative Works, in at least one
-        of the following places: within a NOTICE text file distributed
-        as part of the Derivative Works; within the Source form or
-        documentation, if provided along with the Derivative Works; or,
-        within a display generated by the Derivative Works, if and
-        wherever such third-party notices normally appear. The contents
-        of the NOTICE file are for informational purposes only and
-        do not modify the License. You may add Your own attribution
-        notices within Derivative Works that You distribute, alongside
-        or as an addendum to the NOTICE text from the Work, provided
-        that such additional attribution notices cannot be construed
-        as modifying the License.
-
-    You may add Your own copyright statement to Your modifications and
-    may provide additional or different license terms and conditions
-    for use, reproduction, or distribution of Your modifications, or
-    for any such Derivative Works as a whole, provided Your use,
-    reproduction, and distribution of the Work otherwise complies with
-    the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
-    any Contribution intentionally submitted for inclusion in the Work
-    by You to the Licensor shall be under the terms and conditions of
-    this License, without any additional terms or conditions.
-    Notwithstanding the above, nothing herein shall supersede or modify
-    the terms of any separate license agreement you may have executed
-    with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
-    names, trademarks, service marks, or product names of the Licensor,
-    except as required for reasonable and customary use in describing the
-    origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
-    agreed to in writing, Licensor provides the Work (and each
-    Contributor provides its Contributions) on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-    implied, including, without limitation, any warranties or conditions
-    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-    PARTICULAR PURPOSE. You are solely responsible for determining the
-    appropriateness of using or redistributing the Work and assume any
-    risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
-    whether in tort (including negligence), contract, or otherwise,
-    unless required by applicable law (such as deliberate and grossly
-    negligent acts) or agreed to in writing, shall any Contributor be
-    liable to You for damages, including any direct, indirect, special,
-    incidental, or consequential damages of any character arising as a
-    result of this License or out of the use or inability to use the
-    Work (including but not limited to damages for loss of goodwill,
-    work stoppage, computer failure or malfunction, or any and all
-    other commercial damages or losses), even if such Contributor
-    has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
-    the Work or Derivative Works thereof, You may choose to offer,
-    and charge a fee for, acceptance of support, warranty, indemnity,
-    or other liability obligations and/or rights consistent with this
-    License. However, in accepting such obligations, You may act only
-    on Your own behalf and on Your sole responsibility, not on behalf
-    of any other Contributor, and only if You agree to indemnify,
-    defend, and hold each Contributor harmless for any liability
-    incurred by, or claims asserted against, such Contributor by reason
-    of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- 
diff --git a/node_modules/rxjs/src/MiscJSDoc.ts b/node_modules/rxjs/src/MiscJSDoc.ts
deleted file mode 100644
index 5cf5d67..0000000
--- a/node_modules/rxjs/src/MiscJSDoc.ts
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * This file and its definitions are needed just so that ESDoc sees these
- * JSDoc documentation comments. Originally they were meant for some TypeScript
- * interfaces, but TypeScript strips away JSDoc comments near interfaces. Hence,
- * we need these bogus classes, which are not stripped away. This file on the
- * other hand, is not included in the release bundle.
- */
-import { Observer, TeardownLogic } from './internal/types';
-import { Observable } from './internal/Observable';
-import './internal/observable/dom/MiscJSDoc';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
-export class ObservableDoc {
-  /**
-   * Creates a new Observable, that will execute the specified function when an
-   * {@link Observer} subscribes to it.
-   *
-   * <span class="informal">Create custom Observable, that does whatever you like.</span>
-   *
-   * ![](create.png)
-   *
-   * `create` converts an `onSubscription` function to an actual Observable.
-   * Whenever someone subscribes to that Observable, the function will be called
-   * with an {@link Observer} instance as a first and only parameter. `onSubscription` should
-   * then invoke the Observers `next`, `error` and `complete` methods.
-   *
-   * Calling `next` with a value will emit that value to the observer. Calling `complete`
-   * means that Observable finished emitting and will not do anything else.
-   * Calling `error` means that something went wrong - value passed to `error` method should
-   * provide details on what exactly happened.
-   *
-   * A well-formed Observable can emit as many values as it needs via `next` method,
-   * but `complete` and `error` methods can be called only once and nothing else can be called
-   * thereafter. If you try to invoke `next`, `complete` or `error` methods after created
-   * Observable already completed or ended with an error, these calls will be ignored to
-   * preserve so called *Observable Contract*. Note that you are not required to call
-   * `complete` at any point - it is perfectly fine to create an Observable that never ends,
-   * depending on your needs.
-   *
-   * `onSubscription` can optionally return either a function or an object with
-   * `unsubscribe` method. In both cases function or method will be called when
-   * subscription to Observable is being cancelled and should be used to clean up all
-   * resources. So, for example, if you are using `setTimeout` in your custom
-   * Observable, when someone unsubscribes, you can clear planned timeout, so that
-   * it does not fire needlessly and browser (or other environment) does not waste
-   * computing power on timing event that no one will listen to anyways.
-   *
-   * Most of the times you should not need to use `create`, because existing
-   * operators allow you to create an Observable for most of the use cases.
-   * That being said, `create` is low-level mechanism allowing you to create
-   * any Observable, if you have very specific needs.
-   *
-   * **TypeScript signature issue**
-   *
-   * Because Observable extends class which already has defined static `create` function,
-   * but with different type signature, it was impossible to assign proper signature to
-   * `Observable.create`. Because of that, it has very general type `Function` and thus
-   * function passed to `create` will not be type checked, unless you explicitly state
-   * what signature it should have.
-   *
-   * When using TypeScript we recommend to declare type signature of function passed to
-   * `create` as `(observer: Observer) => TeardownLogic`, where {@link Observer}
-   * and {@link TeardownLogic} are interfaces provided by the library.
-   *
-   * @example <caption>Emit three numbers, then complete.</caption>
-   * var observable = Rx.Observable.create(function (observer) {
-   *   observer.next(1);
-   *   observer.next(2);
-   *   observer.next(3);
-   *   observer.complete();
-   * });
-   * observable.subscribe(
-   *   value => console.log(value),
-   *   err => {},
-   *   () => console.log('this is the end')
-   * );
-   *
-   * // Logs
-   * // 1
-   * // 2
-   * // 3
-   * // "this is the end"
-   *
-   *
-   * @example <caption>Emit an error</caption>
-   * const observable = Rx.Observable.create((observer) => {
-   *   observer.error('something went really wrong...');
-   * });
-   *
-   * observable.subscribe(
-   *   value => console.log(value), // will never be called
-   *   err => console.log(err),
-   *   () => console.log('complete') // will never be called
-   * );
-   *
-   * // Logs
-   * // "something went really wrong..."
-   *
-   *
-   * @example <caption>Return unsubscribe function</caption>
-   *
-   * const observable = Rx.Observable.create(observer => {
-   *   const id = setTimeout(() => observer.next('...'), 5000); // emit value after 5s
-   *
-   *   return () => { clearTimeout(id); console.log('cleared!'); };
-   * });
-   *
-   * const subscription = observable.subscribe(value => console.log(value));
-   *
-   * setTimeout(() => subscription.unsubscribe(), 3000); // cancel subscription after 3s
-   *
-   * // Logs:
-   * // "cleared!" after 3s
-   *
-   * // Never logs "..."
-   *
-   *
-   * @see {@link empty}
-   * @see {@link never}
-   * @see {@link of}
-   * @see {@link throw}
-   *
-   * @param {function(observer: Observer): TeardownLogic} onSubscription A
-   * function that accepts an Observer, and invokes its `next`,
-   * `error`, and `complete` methods as appropriate, and optionally returns some
-   * logic for cleaning up resources.
-   * @return {Observable} An Observable that, whenever subscribed, will execute the
-   * specified function.
-   * @static true
-   * @name create
-   * @owner Observable
-   * @nocollapse
-   */
-  static create<T>(onSubscription: <R>(observer: Observer<R>) => TeardownLogic): Observable<T> {
-    return new Observable<T>(onSubscription);
-  }
-}
-
-/**
- * An interface for a consumer of push-based notifications delivered by an
- * {@link Observable}.
- *
- * ```ts
- * interface Observer<T> {
- *   closed?: boolean;
- *   next: (value: T) => void;
- *   error: (err: any) => void;
- *   complete: () => void;
- * }
- * ```
- *
- * An object conforming to the Observer interface is usually
- * given to the `observable.subscribe(observer)` method, and the Observable will
- * call the Observer's `next(value)` method to provide notifications. A
- * well-behaved Observable will call an Observer's `complete()` method exactly
- * once or the Observer's `error(err)` method exactly once, as the last
- * notification delivered.
- *
- * @interface
- * @name Observer
- * @noimport true
- */
-export class ObserverDoc<T> {
-  /**
-   * An optional flag to indicate whether this Observer, when used as a
-   * subscriber, has already been unsubscribed from its Observable.
-   * @type {boolean}
-   */
-  closed: boolean = false;
-  /**
-   * The callback to receive notifications of type `next` from the Observable,
-   * with a value. The Observable may call this method 0 or more times.
-   * @param {T} value The `next` value.
-   * @return {void}
-   */
-  next(value: T): void {
-    return void 0;
-  }
-  /**
-   * The callback to receive notifications of type `error` from the Observable,
-   * with an attached {@link Error}. Notifies the Observer that the Observable
-   * has experienced an error condition.
-   * @param {any} err The `error` exception.
-   * @return {void}
-   */
-  error(err: any): void {
-    return void 0;
-  }
-  /**
-   * The callback to receive a valueless notification of type `complete` from
-   * the Observable. Notifies the Observer that the Observable has finished
-   * sending push-based notifications.
-   * @return {void}
-   */
-  complete(): void {
-    return void 0;
-  }
-}
-
-/**
- * `SubscribableOrPromise` interface describes values that behave like either
- * Observables or Promises. Every operator that accepts arguments annotated
- * with this interface, can be also used with parameters that are not necessarily
- * RxJS Observables.
- *
- * Following types of values might be passed to operators expecting this interface:
- *
- * ## Observable
- *
- * RxJS {@link Observable} instance.
- *
- * ## Observable-like (Subscribable)
- *
- * This might be any object that has `Symbol.observable` method. This method,
- * when called, should return object with `subscribe` method on it, which should
- * behave the same as RxJS `Observable.subscribe`.
- *
- * `Symbol.observable` is part of https://github.com/tc39/proposal-observable proposal.
- * Since currently it is not supported natively, and every symbol is equal only to itself,
- * you should use https://github.com/blesh/symbol-observable polyfill, when implementing
- * custom Observable-likes.
- *
- * **TypeScript Subscribable interface issue**
- *
- * Although TypeScript interface claims that Subscribable is an object that has `subscribe`
- * method declared directly on it, passing custom objects that have `subscribe`
- * method but not `Symbol.observable` method will fail at runtime. Conversely, passing
- * objects with `Symbol.observable` but without `subscribe` will fail at compile time
- * (if you use TypeScript).
- *
- * TypeScript has problem supporting interfaces with methods defined as symbol
- * properties. To get around that, you should implement `subscribe` directly on
- * passed object, and make `Symbol.observable` method simply return `this`. That way
- * everything will work as expected, and compiler will not complain. If you really
- * do not want to put `subscribe` directly on your object, you will have to type cast
- * it to `any`, before passing it to an operator.
- *
- * When this issue is resolved, Subscribable interface will only permit Observable-like
- * objects with `Symbol.observable` defined, no matter if they themselves implement
- * `subscribe` method or not.
- *
- * ## ES6 Promise
- *
- * Promise can be interpreted as Observable that emits value and completes
- * when it is resolved or errors when it is rejected.
- *
- * ## Promise-like (Thenable)
- *
- * Promises passed to operators do not have to be native ES6 Promises.
- * They can be implementations from popular Promise libraries, polyfills
- * or even custom ones. They just need to have `then` method that works
- * as the same as ES6 Promise `then`.
- *
- * @example <caption>Use merge and then map with non-RxJS observable</caption>
- * const nonRxJSObservable = {
- *   subscribe(observer) {
- *     observer.next(1000);
- *     observer.complete();
- *   },
- *   [Symbol.observable]() {
- *     return this;
- *   }
- * };
- *
- * Rx.Observable.merge(nonRxJSObservable)
- * .map(value => "This value is " + value)
- * .subscribe(result => console.log(result)); // Logs "This value is 1000"
- *
- *
- * @example <caption>Use combineLatest with ES6 Promise</caption>
- * Rx.Observable.combineLatest(Promise.resolve(5), Promise.resolve(10), Promise.resolve(15))
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('the end!')
- * );
- * // Logs
- * // [5, 10, 15]
- * // "the end!"
- *
- *
- * @interface
- * @name SubscribableOrPromise
- * @noimport true
- */
-export class SubscribableOrPromiseDoc<T> {
-
-}
-
-/**
- * `ObservableInput` interface describes all values that are either an
- * {@link SubscribableOrPromise} or some kind of collection of values that
- * can be transformed to Observable emitting that values. Every operator that
- * accepts arguments annotated with this interface, can be also used with
- * parameters that are not necessarily RxJS Observables.
- *
- * `ObservableInput` extends {@link SubscribableOrPromise} with following types:
- *
- * ## Array
- *
- * Arrays can be interpreted as observables that emit all values in array one by one,
- * from left to right, and then complete immediately.
- *
- * ## Array-like
- *
- * Arrays passed to operators do not have to be built-in JavaScript Arrays. They
- * can be also, for example, `arguments` property available inside every function,
- * [DOM NodeList](https://developer.mozilla.org/pl/docs/Web/API/NodeList),
- * or, actually, any object that has `length` property (which is a number)
- * and stores values under non-negative (zero and up) integers.
- *
- * ## ES6 Iterable
- *
- * Operators will accept both built-in and custom ES6 Iterables, by treating them as
- * observables that emit all its values in order of iteration and then complete
- * when iteration ends. Note that contrary to arrays, Iterables do not have to
- * necessarily be finite, so creating Observables that never complete is possible as well.
- *
- * Note that you can make iterator an instance of Iterable by having it return itself
- * in `Symbol.iterator` method. It means that every operator accepting Iterables accepts,
- * though indirectly, iterators themselves as well. All native ES6 iterators are instances
- * of Iterable by default, so you do not have to implement their `Symbol.iterator` method
- * yourself.
- *
- * **TypeScript Iterable interface issue**
- *
- * TypeScript `ObservableInput` interface actually lacks type signature for Iterables,
- * because of issues it caused in some projects (see [this issue](https://github.com/ReactiveX/rxjs/issues/2306)).
- * If you want to use Iterable as argument for operator, cast it to `any` first.
- * Remember of course that, because of casting, you have to yourself ensure that passed
- * argument really implements said interface.
- *
- *
- * @example <caption>Use merge with arrays</caption>
- * Rx.Observable.merge([1, 2], [4], [5, 6])
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('ta dam!')
- * );
- *
- * // Logs
- * // 1
- * // 2
- * // 3
- * // 4
- * // 5
- * // 6
- * // "ta dam!"
- *
- *
- * @example <caption>Use merge with array-like</caption>
- * Rx.Observable.merge({0: 1, 1: 2, length: 2}, {0: 3, length: 1})
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('nice, huh?')
- * );
- *
- * // Logs
- * // 1
- * // 2
- * // 3
- * // "nice, huh?"
- *
- * @example <caption>Use merge with an Iterable (Map)</caption>
- * const firstMap = new Map([[1, 'a'], [2, 'b']]);
- * const secondMap = new Map([[3, 'c'], [4, 'd']]);
- *
- * Rx.Observable.merge(
- *   firstMap,          // pass Iterable
- *   secondMap.values() // pass iterator, which is itself an Iterable
- * ).subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('yup!')
- * );
- *
- * // Logs
- * // [1, "a"]
- * // [2, "b"]
- * // "c"
- * // "d"
- * // "yup!"
- *
- * @example <caption>Use from with generator (returning infinite iterator)</caption>
- * // infinite stream of incrementing numbers
- * const infinite = function* () {
- *   let i = 0;
- *
- *   while (true) {
- *     yield i++;
- *   }
- * };
- *
- * Rx.Observable.from(infinite())
- * .take(3) // only take 3, cause this is infinite
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('ta dam!')
- * );
- *
- * // Logs
- * // 0
- * // 1
- * // 2
- * // "ta dam!"
- *
- * @interface
- * @name ObservableInput
- * @noimport true
- */
-export class ObservableInputDoc<T> {
-
-}
-
-/**
- *
- * This interface describes what should be returned by function passed to Observable
- * constructor or static {@link create} function. Value of that interface will be used
- * to cancel subscription for given Observable.
- *
- * `TeardownLogic` can be:
- *
- * ## Function
- *
- * Function that takes no parameters. When consumer of created Observable calls `unsubscribe`,
- * that function will be called
- *
- * ## AnonymousSubscription
- *
- * `AnonymousSubscription` is simply an object with `unsubscribe` method on it. That method
- * will work the same as function
- *
- * ## void
- *
- * If created Observable does not have any resources to clean up, function does not have to
- * return anything.
- *
- * @interface
- * @name TeardownLogic
- * @noimport true
- */
-export class TeardownLogicDoc {
-
-}
diff --git a/node_modules/rxjs/src/Notification.ts b/node_modules/rxjs/src/Notification.ts
deleted file mode 100644
index 5d9956d..0000000
--- a/node_modules/rxjs/src/Notification.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Notification';
diff --git a/node_modules/rxjs/src/Observable.ts b/node_modules/rxjs/src/Observable.ts
deleted file mode 100644
index cc1e68d..0000000
--- a/node_modules/rxjs/src/Observable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Observable';
diff --git a/node_modules/rxjs/src/Observer.ts b/node_modules/rxjs/src/Observer.ts
deleted file mode 100644
index 867ce2f..0000000
--- a/node_modules/rxjs/src/Observer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Observer';
diff --git a/node_modules/rxjs/src/Operator.ts b/node_modules/rxjs/src/Operator.ts
deleted file mode 100644
index fb9a9f9..0000000
--- a/node_modules/rxjs/src/Operator.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Operator';
diff --git a/node_modules/rxjs/src/OuterSubscriber.ts b/node_modules/rxjs/src/OuterSubscriber.ts
deleted file mode 100644
index 9060ae7..0000000
--- a/node_modules/rxjs/src/OuterSubscriber.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/OuterSubscriber';
diff --git a/node_modules/rxjs/src/README.md b/node_modules/rxjs/src/README.md
deleted file mode 100644
index e9204f0..0000000
--- a/node_modules/rxjs/src/README.md
+++ /dev/null
@@ -1,145 +0,0 @@
-<img src="doc/asset/Rx_Logo_S.png" alt="RxJS Logo" width="86" height="86"> RxJS: Reactive Extensions For JavaScript
-======================================
-
-
-[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x)
-[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs)
-[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-# RxJS 6 Stable
-
-### MIGRATION AND RELEASE INFORMATION:
-
-Find out how to update to v6, **automatically update your TypeScript code**, and more!
-
-- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md)
-
-### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x)
-
-Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
-
-[Apache 2.0 License](LICENSE.txt)
-
-- [Code of Conduct](CODE_OF_CONDUCT.md)
-- [Contribution Guidelines](CONTRIBUTING.md)
-- [Maintainer Guidelines](doc/maintainer-guidelines.md)
-- [Creating Operators](doc/operator-creation.md)
-- [API Documentation (WIP)](https://rxjs.dev/)
-
-## Versions In This Repository
-
-- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now
-- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs`
-
-## Important
-
-By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity.
-
-## Installation and Usage
-
-### ES6 via npm
-
-```sh
-npm install rxjs
-```
-
-It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`.
-
-```js
-import { range } from 'rxjs';
-import { map, filter } from 'rxjs/operators';
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information.
-
-### CommonJS via npm
-
-To install this library for CommonJS (CJS) usage, use the following command:
-
-```sh
-npm install rxjs
-```
-
-(Note: destructuring available in Node 8+)
-
-```js
-const { range } = require('rxjs');
-const { map, filter } = require('rxjs/operators');
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-### CDN
-
-For CDN, you can use [unpkg](https://unpkg.com/):
-
-https://unpkg.com/rxjs/bundles/rxjs.umd.min.js
-
-The global namespace for rxjs is `rxjs`:
-
-```js
-const { range } = rxjs;
-const { map, filter } = rxjs.operators;
-
-range(1, 200).pipe(
-  filter(x => x % 2 === 1),
-  map(x => x + x)
-).subscribe(x => console.log(x));
-```
-
-## Goals
-
-- Smaller overall bundles sizes
-- Provide better performance than preceding versions of RxJS
-- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable
-- Provide more modular file structure in a variety of formats
-- Provide more debuggable call stacks than preceding versions of RxJS
-
-## Building/Testing
-
-- `npm run build_all` - builds everything
-- `npm test` - runs tests
-- `npm run test_no_cache` - run test with `ts-node` set to false
-
-## Performance Tests
-
-Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`.
-
-Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator.
-
-## Adding documentation
-We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app).
-
-## Generating PNG marble diagrams
-
-The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`.
-
-For Mac OS X with [Homebrew](http://brew.sh/):
-
-- `brew install imagemagick`
-- `brew install graphicsmagick`
-- `brew install ghostscript`
-- You may need to install the Ghostscript fonts manually:
-  - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts)
-  - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript`
-
-For Debian Linux:
-
-- `sudo add-apt-repository ppa:dhor/myway`
-- `apt-get install imagemagick`
-- `apt-get install graphicsmagick`
-- `apt-get install ghostscript`
-
-For Windows and other Operating Systems, check the download instructions here:
-
-- http://imagemagick.org
-- http://www.graphicsmagick.org
-- http://www.ghostscript.com/
diff --git a/node_modules/rxjs/src/ReplaySubject.ts b/node_modules/rxjs/src/ReplaySubject.ts
deleted file mode 100644
index b66aea9..0000000
--- a/node_modules/rxjs/src/ReplaySubject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/ReplaySubject';
diff --git a/node_modules/rxjs/src/Rx.global.js b/node_modules/rxjs/src/Rx.global.js
deleted file mode 100644
index d75682b..0000000
--- a/node_modules/rxjs/src/Rx.global.js
+++ /dev/null
@@ -1,5 +0,0 @@
-(function (root, factory) {
-  root.Rx = factory();
-})(window || global || this, function () {
-  return require('../dist/package/Rx');
-});
\ No newline at end of file
diff --git a/node_modules/rxjs/src/Rx.ts b/node_modules/rxjs/src/Rx.ts
deleted file mode 100644
index e04c752..0000000
--- a/node_modules/rxjs/src/Rx.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-
-export * from 'rxjs-compat';
diff --git a/node_modules/rxjs/src/Scheduler.ts b/node_modules/rxjs/src/Scheduler.ts
deleted file mode 100644
index c21eb1f..0000000
--- a/node_modules/rxjs/src/Scheduler.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Scheduler';
diff --git a/node_modules/rxjs/src/Subject.ts b/node_modules/rxjs/src/Subject.ts
deleted file mode 100644
index 7448233..0000000
--- a/node_modules/rxjs/src/Subject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subject';
diff --git a/node_modules/rxjs/src/SubjectSubscription.ts b/node_modules/rxjs/src/SubjectSubscription.ts
deleted file mode 100644
index 4f481ce..0000000
--- a/node_modules/rxjs/src/SubjectSubscription.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/SubjectSubscription';
diff --git a/node_modules/rxjs/src/Subscriber.ts b/node_modules/rxjs/src/Subscriber.ts
deleted file mode 100644
index 15356d5..0000000
--- a/node_modules/rxjs/src/Subscriber.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subscriber';
diff --git a/node_modules/rxjs/src/Subscription.ts b/node_modules/rxjs/src/Subscription.ts
deleted file mode 100644
index 028cf4c..0000000
--- a/node_modules/rxjs/src/Subscription.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/Subscription';
diff --git a/node_modules/rxjs/src/add/observable/bindCallback.ts b/node_modules/rxjs/src/add/observable/bindCallback.ts
deleted file mode 100644
index 7926a09..0000000
--- a/node_modules/rxjs/src/add/observable/bindCallback.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/bindCallback';
diff --git a/node_modules/rxjs/src/add/observable/bindNodeCallback.ts b/node_modules/rxjs/src/add/observable/bindNodeCallback.ts
deleted file mode 100644
index 049f9a7..0000000
--- a/node_modules/rxjs/src/add/observable/bindNodeCallback.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/bindNodeCallback';
diff --git a/node_modules/rxjs/src/add/observable/combineLatest.ts b/node_modules/rxjs/src/add/observable/combineLatest.ts
deleted file mode 100644
index 7163d7a..0000000
--- a/node_modules/rxjs/src/add/observable/combineLatest.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/combineLatest';
diff --git a/node_modules/rxjs/src/add/observable/concat.ts b/node_modules/rxjs/src/add/observable/concat.ts
deleted file mode 100644
index b392cb2..0000000
--- a/node_modules/rxjs/src/add/observable/concat.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/concat';
diff --git a/node_modules/rxjs/src/add/observable/defer.ts b/node_modules/rxjs/src/add/observable/defer.ts
deleted file mode 100644
index b4e2966..0000000
--- a/node_modules/rxjs/src/add/observable/defer.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/defer';
diff --git a/node_modules/rxjs/src/add/observable/dom/ajax.ts b/node_modules/rxjs/src/add/observable/dom/ajax.ts
deleted file mode 100644
index 2b32efe..0000000
--- a/node_modules/rxjs/src/add/observable/dom/ajax.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/dom/ajax';
diff --git a/node_modules/rxjs/src/add/observable/dom/webSocket.ts b/node_modules/rxjs/src/add/observable/dom/webSocket.ts
deleted file mode 100644
index bc5d3f3..0000000
--- a/node_modules/rxjs/src/add/observable/dom/webSocket.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/dom/webSocket';
diff --git a/node_modules/rxjs/src/add/observable/empty.ts b/node_modules/rxjs/src/add/observable/empty.ts
deleted file mode 100644
index d261ad7..0000000
--- a/node_modules/rxjs/src/add/observable/empty.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/empty';
diff --git a/node_modules/rxjs/src/add/observable/forkJoin.ts b/node_modules/rxjs/src/add/observable/forkJoin.ts
deleted file mode 100644
index 2a581e2..0000000
--- a/node_modules/rxjs/src/add/observable/forkJoin.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/forkJoin';
diff --git a/node_modules/rxjs/src/add/observable/from.ts b/node_modules/rxjs/src/add/observable/from.ts
deleted file mode 100644
index 06572d8..0000000
--- a/node_modules/rxjs/src/add/observable/from.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/from';
diff --git a/node_modules/rxjs/src/add/observable/fromEvent.ts b/node_modules/rxjs/src/add/observable/fromEvent.ts
deleted file mode 100644
index 0d6e05b..0000000
--- a/node_modules/rxjs/src/add/observable/fromEvent.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromEvent';
diff --git a/node_modules/rxjs/src/add/observable/fromEventPattern.ts b/node_modules/rxjs/src/add/observable/fromEventPattern.ts
deleted file mode 100644
index c7241f8..0000000
--- a/node_modules/rxjs/src/add/observable/fromEventPattern.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromEventPattern';
diff --git a/node_modules/rxjs/src/add/observable/fromPromise.ts b/node_modules/rxjs/src/add/observable/fromPromise.ts
deleted file mode 100644
index c262242..0000000
--- a/node_modules/rxjs/src/add/observable/fromPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/fromPromise';
diff --git a/node_modules/rxjs/src/add/observable/generate.ts b/node_modules/rxjs/src/add/observable/generate.ts
deleted file mode 100644
index 3203a9b..0000000
--- a/node_modules/rxjs/src/add/observable/generate.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/generate';
diff --git a/node_modules/rxjs/src/add/observable/if.ts b/node_modules/rxjs/src/add/observable/if.ts
deleted file mode 100644
index 5767d74..0000000
--- a/node_modules/rxjs/src/add/observable/if.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/if';
diff --git a/node_modules/rxjs/src/add/observable/interval.ts b/node_modules/rxjs/src/add/observable/interval.ts
deleted file mode 100644
index 6cd2b31..0000000
--- a/node_modules/rxjs/src/add/observable/interval.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/interval';
diff --git a/node_modules/rxjs/src/add/observable/merge.ts b/node_modules/rxjs/src/add/observable/merge.ts
deleted file mode 100644
index 7a111a5..0000000
--- a/node_modules/rxjs/src/add/observable/merge.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/merge';
diff --git a/node_modules/rxjs/src/add/observable/never.ts b/node_modules/rxjs/src/add/observable/never.ts
deleted file mode 100644
index 4c464d0..0000000
--- a/node_modules/rxjs/src/add/observable/never.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/never';
diff --git a/node_modules/rxjs/src/add/observable/of.ts b/node_modules/rxjs/src/add/observable/of.ts
deleted file mode 100644
index c0720f6..0000000
--- a/node_modules/rxjs/src/add/observable/of.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/of';
diff --git a/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts
deleted file mode 100644
index 80a4d91..0000000
--- a/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/onErrorResumeNext';
diff --git a/node_modules/rxjs/src/add/observable/pairs.ts b/node_modules/rxjs/src/add/observable/pairs.ts
deleted file mode 100644
index 3af25b6..0000000
--- a/node_modules/rxjs/src/add/observable/pairs.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/pairs';
diff --git a/node_modules/rxjs/src/add/observable/race.ts b/node_modules/rxjs/src/add/observable/race.ts
deleted file mode 100644
index 9b45c4e..0000000
--- a/node_modules/rxjs/src/add/observable/race.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/race';
diff --git a/node_modules/rxjs/src/add/observable/range.ts b/node_modules/rxjs/src/add/observable/range.ts
deleted file mode 100644
index 2ae274e..0000000
--- a/node_modules/rxjs/src/add/observable/range.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/range';
diff --git a/node_modules/rxjs/src/add/observable/throw.ts b/node_modules/rxjs/src/add/observable/throw.ts
deleted file mode 100644
index 7405653..0000000
--- a/node_modules/rxjs/src/add/observable/throw.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/throw';
diff --git a/node_modules/rxjs/src/add/observable/timer.ts b/node_modules/rxjs/src/add/observable/timer.ts
deleted file mode 100644
index 60e2f9b..0000000
--- a/node_modules/rxjs/src/add/observable/timer.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/timer';
diff --git a/node_modules/rxjs/src/add/observable/using.ts b/node_modules/rxjs/src/add/observable/using.ts
deleted file mode 100644
index c7ac49a..0000000
--- a/node_modules/rxjs/src/add/observable/using.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/using';
diff --git a/node_modules/rxjs/src/add/observable/zip.ts b/node_modules/rxjs/src/add/observable/zip.ts
deleted file mode 100644
index 5c72041..0000000
--- a/node_modules/rxjs/src/add/observable/zip.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/observable/zip';
diff --git a/node_modules/rxjs/src/add/operator/audit.ts b/node_modules/rxjs/src/add/operator/audit.ts
deleted file mode 100644
index a3eb5a4..0000000
--- a/node_modules/rxjs/src/add/operator/audit.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/audit';
diff --git a/node_modules/rxjs/src/add/operator/auditTime.ts b/node_modules/rxjs/src/add/operator/auditTime.ts
deleted file mode 100644
index 41f68da..0000000
--- a/node_modules/rxjs/src/add/operator/auditTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/auditTime';
diff --git a/node_modules/rxjs/src/add/operator/buffer.ts b/node_modules/rxjs/src/add/operator/buffer.ts
deleted file mode 100644
index b501cae..0000000
--- a/node_modules/rxjs/src/add/operator/buffer.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/buffer';
diff --git a/node_modules/rxjs/src/add/operator/bufferCount.ts b/node_modules/rxjs/src/add/operator/bufferCount.ts
deleted file mode 100644
index 96237e5..0000000
--- a/node_modules/rxjs/src/add/operator/bufferCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferCount';
diff --git a/node_modules/rxjs/src/add/operator/bufferTime.ts b/node_modules/rxjs/src/add/operator/bufferTime.ts
deleted file mode 100644
index abd78ab..0000000
--- a/node_modules/rxjs/src/add/operator/bufferTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferTime';
diff --git a/node_modules/rxjs/src/add/operator/bufferToggle.ts b/node_modules/rxjs/src/add/operator/bufferToggle.ts
deleted file mode 100644
index 2dbdf86..0000000
--- a/node_modules/rxjs/src/add/operator/bufferToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferToggle';
diff --git a/node_modules/rxjs/src/add/operator/bufferWhen.ts b/node_modules/rxjs/src/add/operator/bufferWhen.ts
deleted file mode 100644
index 4ad636f..0000000
--- a/node_modules/rxjs/src/add/operator/bufferWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/bufferWhen';
diff --git a/node_modules/rxjs/src/add/operator/catch.ts b/node_modules/rxjs/src/add/operator/catch.ts
deleted file mode 100644
index 316a29e..0000000
--- a/node_modules/rxjs/src/add/operator/catch.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/catch';
diff --git a/node_modules/rxjs/src/add/operator/combineAll.ts b/node_modules/rxjs/src/add/operator/combineAll.ts
deleted file mode 100644
index 0cf4be8..0000000
--- a/node_modules/rxjs/src/add/operator/combineAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/combineAll';
diff --git a/node_modules/rxjs/src/add/operator/combineLatest.ts b/node_modules/rxjs/src/add/operator/combineLatest.ts
deleted file mode 100644
index 88333e7..0000000
--- a/node_modules/rxjs/src/add/operator/combineLatest.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/combineLatest';
diff --git a/node_modules/rxjs/src/add/operator/concat.ts b/node_modules/rxjs/src/add/operator/concat.ts
deleted file mode 100644
index c743a6b..0000000
--- a/node_modules/rxjs/src/add/operator/concat.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concat';
diff --git a/node_modules/rxjs/src/add/operator/concatAll.ts b/node_modules/rxjs/src/add/operator/concatAll.ts
deleted file mode 100644
index cf9157f..0000000
--- a/node_modules/rxjs/src/add/operator/concatAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatAll';
diff --git a/node_modules/rxjs/src/add/operator/concatMap.ts b/node_modules/rxjs/src/add/operator/concatMap.ts
deleted file mode 100644
index dadc722..0000000
--- a/node_modules/rxjs/src/add/operator/concatMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatMap';
diff --git a/node_modules/rxjs/src/add/operator/concatMapTo.ts b/node_modules/rxjs/src/add/operator/concatMapTo.ts
deleted file mode 100644
index 9a843a6..0000000
--- a/node_modules/rxjs/src/add/operator/concatMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/concatMapTo';
diff --git a/node_modules/rxjs/src/add/operator/count.ts b/node_modules/rxjs/src/add/operator/count.ts
deleted file mode 100644
index 85c6832..0000000
--- a/node_modules/rxjs/src/add/operator/count.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/count';
diff --git a/node_modules/rxjs/src/add/operator/debounce.ts b/node_modules/rxjs/src/add/operator/debounce.ts
deleted file mode 100644
index e5ff5db..0000000
--- a/node_modules/rxjs/src/add/operator/debounce.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/debounce';
diff --git a/node_modules/rxjs/src/add/operator/debounceTime.ts b/node_modules/rxjs/src/add/operator/debounceTime.ts
deleted file mode 100644
index 8ffedf9..0000000
--- a/node_modules/rxjs/src/add/operator/debounceTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/debounceTime';
diff --git a/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts b/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts
deleted file mode 100644
index d8e0070..0000000
--- a/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/defaultIfEmpty';
diff --git a/node_modules/rxjs/src/add/operator/delay.ts b/node_modules/rxjs/src/add/operator/delay.ts
deleted file mode 100644
index 96d2017..0000000
--- a/node_modules/rxjs/src/add/operator/delay.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/delay';
diff --git a/node_modules/rxjs/src/add/operator/delayWhen.ts b/node_modules/rxjs/src/add/operator/delayWhen.ts
deleted file mode 100644
index a50cebb..0000000
--- a/node_modules/rxjs/src/add/operator/delayWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/delayWhen';
diff --git a/node_modules/rxjs/src/add/operator/dematerialize.ts b/node_modules/rxjs/src/add/operator/dematerialize.ts
deleted file mode 100644
index 18f368b..0000000
--- a/node_modules/rxjs/src/add/operator/dematerialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/dematerialize';
diff --git a/node_modules/rxjs/src/add/operator/distinct.ts b/node_modules/rxjs/src/add/operator/distinct.ts
deleted file mode 100644
index 330f8f9..0000000
--- a/node_modules/rxjs/src/add/operator/distinct.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinct';
diff --git a/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts b/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts
deleted file mode 100644
index 8273e9e..0000000
--- a/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinctUntilChanged';
diff --git a/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts
deleted file mode 100644
index f556b82..0000000
--- a/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/src/add/operator/do.ts b/node_modules/rxjs/src/add/operator/do.ts
deleted file mode 100644
index 9eee7cd..0000000
--- a/node_modules/rxjs/src/add/operator/do.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/do';
diff --git a/node_modules/rxjs/src/add/operator/elementAt.ts b/node_modules/rxjs/src/add/operator/elementAt.ts
deleted file mode 100644
index 8fe8f29..0000000
--- a/node_modules/rxjs/src/add/operator/elementAt.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/elementAt';
diff --git a/node_modules/rxjs/src/add/operator/every.ts b/node_modules/rxjs/src/add/operator/every.ts
deleted file mode 100644
index 789d3c1..0000000
--- a/node_modules/rxjs/src/add/operator/every.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/every';
diff --git a/node_modules/rxjs/src/add/operator/exhaust.ts b/node_modules/rxjs/src/add/operator/exhaust.ts
deleted file mode 100644
index d0cae89..0000000
--- a/node_modules/rxjs/src/add/operator/exhaust.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/exhaust';
diff --git a/node_modules/rxjs/src/add/operator/exhaustMap.ts b/node_modules/rxjs/src/add/operator/exhaustMap.ts
deleted file mode 100644
index 6e231be..0000000
--- a/node_modules/rxjs/src/add/operator/exhaustMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/exhaustMap';
diff --git a/node_modules/rxjs/src/add/operator/expand.ts b/node_modules/rxjs/src/add/operator/expand.ts
deleted file mode 100644
index 035ea49..0000000
--- a/node_modules/rxjs/src/add/operator/expand.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/expand';
diff --git a/node_modules/rxjs/src/add/operator/filter.ts b/node_modules/rxjs/src/add/operator/filter.ts
deleted file mode 100644
index 1cfe74a..0000000
--- a/node_modules/rxjs/src/add/operator/filter.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/filter';
diff --git a/node_modules/rxjs/src/add/operator/finally.ts b/node_modules/rxjs/src/add/operator/finally.ts
deleted file mode 100644
index 7db9d99..0000000
--- a/node_modules/rxjs/src/add/operator/finally.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/finally';
diff --git a/node_modules/rxjs/src/add/operator/find.ts b/node_modules/rxjs/src/add/operator/find.ts
deleted file mode 100644
index 2255ba4..0000000
--- a/node_modules/rxjs/src/add/operator/find.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/find';
diff --git a/node_modules/rxjs/src/add/operator/findIndex.ts b/node_modules/rxjs/src/add/operator/findIndex.ts
deleted file mode 100644
index 8d98469..0000000
--- a/node_modules/rxjs/src/add/operator/findIndex.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/findIndex';
diff --git a/node_modules/rxjs/src/add/operator/first.ts b/node_modules/rxjs/src/add/operator/first.ts
deleted file mode 100644
index b12264f..0000000
--- a/node_modules/rxjs/src/add/operator/first.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/first';
diff --git a/node_modules/rxjs/src/add/operator/groupBy.ts b/node_modules/rxjs/src/add/operator/groupBy.ts
deleted file mode 100644
index 932d1f4..0000000
--- a/node_modules/rxjs/src/add/operator/groupBy.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/groupBy';
diff --git a/node_modules/rxjs/src/add/operator/ignoreElements.ts b/node_modules/rxjs/src/add/operator/ignoreElements.ts
deleted file mode 100644
index 28b04ba..0000000
--- a/node_modules/rxjs/src/add/operator/ignoreElements.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/ignoreElements';
diff --git a/node_modules/rxjs/src/add/operator/isEmpty.ts b/node_modules/rxjs/src/add/operator/isEmpty.ts
deleted file mode 100644
index b84aaa9..0000000
--- a/node_modules/rxjs/src/add/operator/isEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/isEmpty';
diff --git a/node_modules/rxjs/src/add/operator/last.ts b/node_modules/rxjs/src/add/operator/last.ts
deleted file mode 100644
index 0b222df..0000000
--- a/node_modules/rxjs/src/add/operator/last.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/last';
diff --git a/node_modules/rxjs/src/add/operator/let.ts b/node_modules/rxjs/src/add/operator/let.ts
deleted file mode 100644
index 5b92015..0000000
--- a/node_modules/rxjs/src/add/operator/let.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/let';
diff --git a/node_modules/rxjs/src/add/operator/map.ts b/node_modules/rxjs/src/add/operator/map.ts
deleted file mode 100644
index e9f2a7f..0000000
--- a/node_modules/rxjs/src/add/operator/map.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/map';
diff --git a/node_modules/rxjs/src/add/operator/mapTo.ts b/node_modules/rxjs/src/add/operator/mapTo.ts
deleted file mode 100644
index a49f787..0000000
--- a/node_modules/rxjs/src/add/operator/mapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mapTo';
diff --git a/node_modules/rxjs/src/add/operator/materialize.ts b/node_modules/rxjs/src/add/operator/materialize.ts
deleted file mode 100644
index e773199..0000000
--- a/node_modules/rxjs/src/add/operator/materialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/materialize';
diff --git a/node_modules/rxjs/src/add/operator/max.ts b/node_modules/rxjs/src/add/operator/max.ts
deleted file mode 100644
index c66f7ae..0000000
--- a/node_modules/rxjs/src/add/operator/max.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/max';
diff --git a/node_modules/rxjs/src/add/operator/merge.ts b/node_modules/rxjs/src/add/operator/merge.ts
deleted file mode 100644
index dfa5c46..0000000
--- a/node_modules/rxjs/src/add/operator/merge.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/merge';
diff --git a/node_modules/rxjs/src/add/operator/mergeAll.ts b/node_modules/rxjs/src/add/operator/mergeAll.ts
deleted file mode 100644
index 06cdc4f..0000000
--- a/node_modules/rxjs/src/add/operator/mergeAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeAll';
diff --git a/node_modules/rxjs/src/add/operator/mergeMap.ts b/node_modules/rxjs/src/add/operator/mergeMap.ts
deleted file mode 100644
index d8ec3cc..0000000
--- a/node_modules/rxjs/src/add/operator/mergeMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeMap';
diff --git a/node_modules/rxjs/src/add/operator/mergeMapTo.ts b/node_modules/rxjs/src/add/operator/mergeMapTo.ts
deleted file mode 100644
index 0d8e15f..0000000
--- a/node_modules/rxjs/src/add/operator/mergeMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeMapTo';
diff --git a/node_modules/rxjs/src/add/operator/mergeScan.ts b/node_modules/rxjs/src/add/operator/mergeScan.ts
deleted file mode 100644
index 17c5fcc..0000000
--- a/node_modules/rxjs/src/add/operator/mergeScan.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/mergeScan';
diff --git a/node_modules/rxjs/src/add/operator/min.ts b/node_modules/rxjs/src/add/operator/min.ts
deleted file mode 100644
index 5fa91d5..0000000
--- a/node_modules/rxjs/src/add/operator/min.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/min';
diff --git a/node_modules/rxjs/src/add/operator/multicast.ts b/node_modules/rxjs/src/add/operator/multicast.ts
deleted file mode 100644
index 03b0670..0000000
--- a/node_modules/rxjs/src/add/operator/multicast.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/multicast';
diff --git a/node_modules/rxjs/src/add/operator/observeOn.ts b/node_modules/rxjs/src/add/operator/observeOn.ts
deleted file mode 100644
index 4ade085..0000000
--- a/node_modules/rxjs/src/add/operator/observeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/observeOn';
diff --git a/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts b/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts
deleted file mode 100644
index 0d2aa97..0000000
--- a/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/onErrorResumeNext';
diff --git a/node_modules/rxjs/src/add/operator/pairwise.ts b/node_modules/rxjs/src/add/operator/pairwise.ts
deleted file mode 100644
index 2930fd3..0000000
--- a/node_modules/rxjs/src/add/operator/pairwise.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/pairwise';
diff --git a/node_modules/rxjs/src/add/operator/partition.ts b/node_modules/rxjs/src/add/operator/partition.ts
deleted file mode 100644
index 7b8c869..0000000
--- a/node_modules/rxjs/src/add/operator/partition.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/partition';
diff --git a/node_modules/rxjs/src/add/operator/pluck.ts b/node_modules/rxjs/src/add/operator/pluck.ts
deleted file mode 100644
index 0af0f3b..0000000
--- a/node_modules/rxjs/src/add/operator/pluck.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/pluck';
diff --git a/node_modules/rxjs/src/add/operator/publish.ts b/node_modules/rxjs/src/add/operator/publish.ts
deleted file mode 100644
index b7198cc..0000000
--- a/node_modules/rxjs/src/add/operator/publish.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publish';
diff --git a/node_modules/rxjs/src/add/operator/publishBehavior.ts b/node_modules/rxjs/src/add/operator/publishBehavior.ts
deleted file mode 100644
index 3bc5e01..0000000
--- a/node_modules/rxjs/src/add/operator/publishBehavior.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishBehavior';
diff --git a/node_modules/rxjs/src/add/operator/publishLast.ts b/node_modules/rxjs/src/add/operator/publishLast.ts
deleted file mode 100644
index 243d07c..0000000
--- a/node_modules/rxjs/src/add/operator/publishLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishLast';
diff --git a/node_modules/rxjs/src/add/operator/publishReplay.ts b/node_modules/rxjs/src/add/operator/publishReplay.ts
deleted file mode 100644
index 06bc922..0000000
--- a/node_modules/rxjs/src/add/operator/publishReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/publishReplay';
diff --git a/node_modules/rxjs/src/add/operator/race.ts b/node_modules/rxjs/src/add/operator/race.ts
deleted file mode 100644
index b113466..0000000
--- a/node_modules/rxjs/src/add/operator/race.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/race';
diff --git a/node_modules/rxjs/src/add/operator/reduce.ts b/node_modules/rxjs/src/add/operator/reduce.ts
deleted file mode 100644
index c8db530..0000000
--- a/node_modules/rxjs/src/add/operator/reduce.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/reduce';
diff --git a/node_modules/rxjs/src/add/operator/repeat.ts b/node_modules/rxjs/src/add/operator/repeat.ts
deleted file mode 100644
index 4290613..0000000
--- a/node_modules/rxjs/src/add/operator/repeat.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/repeat';
diff --git a/node_modules/rxjs/src/add/operator/repeatWhen.ts b/node_modules/rxjs/src/add/operator/repeatWhen.ts
deleted file mode 100644
index ca5471a..0000000
--- a/node_modules/rxjs/src/add/operator/repeatWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/repeatWhen';
diff --git a/node_modules/rxjs/src/add/operator/retry.ts b/node_modules/rxjs/src/add/operator/retry.ts
deleted file mode 100644
index fb9316b..0000000
--- a/node_modules/rxjs/src/add/operator/retry.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/retry';
diff --git a/node_modules/rxjs/src/add/operator/retryWhen.ts b/node_modules/rxjs/src/add/operator/retryWhen.ts
deleted file mode 100644
index c455337..0000000
--- a/node_modules/rxjs/src/add/operator/retryWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/retryWhen';
diff --git a/node_modules/rxjs/src/add/operator/sample.ts b/node_modules/rxjs/src/add/operator/sample.ts
deleted file mode 100644
index 441255f..0000000
--- a/node_modules/rxjs/src/add/operator/sample.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sample';
diff --git a/node_modules/rxjs/src/add/operator/sampleTime.ts b/node_modules/rxjs/src/add/operator/sampleTime.ts
deleted file mode 100644
index 153d8b0..0000000
--- a/node_modules/rxjs/src/add/operator/sampleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sampleTime';
diff --git a/node_modules/rxjs/src/add/operator/scan.ts b/node_modules/rxjs/src/add/operator/scan.ts
deleted file mode 100644
index baf8162..0000000
--- a/node_modules/rxjs/src/add/operator/scan.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/scan';
diff --git a/node_modules/rxjs/src/add/operator/sequenceEqual.ts b/node_modules/rxjs/src/add/operator/sequenceEqual.ts
deleted file mode 100644
index f47a31d..0000000
--- a/node_modules/rxjs/src/add/operator/sequenceEqual.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/sequenceEqual';
diff --git a/node_modules/rxjs/src/add/operator/share.ts b/node_modules/rxjs/src/add/operator/share.ts
deleted file mode 100644
index 6db65af..0000000
--- a/node_modules/rxjs/src/add/operator/share.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/share';
diff --git a/node_modules/rxjs/src/add/operator/shareReplay.ts b/node_modules/rxjs/src/add/operator/shareReplay.ts
deleted file mode 100644
index 7f31ff4..0000000
--- a/node_modules/rxjs/src/add/operator/shareReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/shareReplay';
diff --git a/node_modules/rxjs/src/add/operator/single.ts b/node_modules/rxjs/src/add/operator/single.ts
deleted file mode 100644
index d35b3cd..0000000
--- a/node_modules/rxjs/src/add/operator/single.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/single';
diff --git a/node_modules/rxjs/src/add/operator/skip.ts b/node_modules/rxjs/src/add/operator/skip.ts
deleted file mode 100644
index 1456f1e..0000000
--- a/node_modules/rxjs/src/add/operator/skip.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skip';
diff --git a/node_modules/rxjs/src/add/operator/skipLast.ts b/node_modules/rxjs/src/add/operator/skipLast.ts
deleted file mode 100644
index 0c432c9..0000000
--- a/node_modules/rxjs/src/add/operator/skipLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipLast';
diff --git a/node_modules/rxjs/src/add/operator/skipUntil.ts b/node_modules/rxjs/src/add/operator/skipUntil.ts
deleted file mode 100644
index 21ea6b2..0000000
--- a/node_modules/rxjs/src/add/operator/skipUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipUntil';
diff --git a/node_modules/rxjs/src/add/operator/skipWhile.ts b/node_modules/rxjs/src/add/operator/skipWhile.ts
deleted file mode 100644
index 496218b..0000000
--- a/node_modules/rxjs/src/add/operator/skipWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/skipWhile';
diff --git a/node_modules/rxjs/src/add/operator/startWith.ts b/node_modules/rxjs/src/add/operator/startWith.ts
deleted file mode 100644
index 9c9e670..0000000
--- a/node_modules/rxjs/src/add/operator/startWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/startWith';
diff --git a/node_modules/rxjs/src/add/operator/subscribeOn.ts b/node_modules/rxjs/src/add/operator/subscribeOn.ts
deleted file mode 100644
index a1b5d6d..0000000
--- a/node_modules/rxjs/src/add/operator/subscribeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/subscribeOn';
diff --git a/node_modules/rxjs/src/add/operator/switch.ts b/node_modules/rxjs/src/add/operator/switch.ts
deleted file mode 100644
index d2d3f48..0000000
--- a/node_modules/rxjs/src/add/operator/switch.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switch';
diff --git a/node_modules/rxjs/src/add/operator/switchMap.ts b/node_modules/rxjs/src/add/operator/switchMap.ts
deleted file mode 100644
index b1dfdfa..0000000
--- a/node_modules/rxjs/src/add/operator/switchMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switchMap';
diff --git a/node_modules/rxjs/src/add/operator/switchMapTo.ts b/node_modules/rxjs/src/add/operator/switchMapTo.ts
deleted file mode 100644
index 320b844..0000000
--- a/node_modules/rxjs/src/add/operator/switchMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/switchMapTo';
diff --git a/node_modules/rxjs/src/add/operator/take.ts b/node_modules/rxjs/src/add/operator/take.ts
deleted file mode 100644
index 08c3bcb..0000000
--- a/node_modules/rxjs/src/add/operator/take.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/take';
diff --git a/node_modules/rxjs/src/add/operator/takeLast.ts b/node_modules/rxjs/src/add/operator/takeLast.ts
deleted file mode 100644
index 13d0816..0000000
--- a/node_modules/rxjs/src/add/operator/takeLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeLast';
diff --git a/node_modules/rxjs/src/add/operator/takeUntil.ts b/node_modules/rxjs/src/add/operator/takeUntil.ts
deleted file mode 100644
index 78c8e55..0000000
--- a/node_modules/rxjs/src/add/operator/takeUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeUntil';
diff --git a/node_modules/rxjs/src/add/operator/takeWhile.ts b/node_modules/rxjs/src/add/operator/takeWhile.ts
deleted file mode 100644
index 06ff174..0000000
--- a/node_modules/rxjs/src/add/operator/takeWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/takeWhile';
diff --git a/node_modules/rxjs/src/add/operator/throttle.ts b/node_modules/rxjs/src/add/operator/throttle.ts
deleted file mode 100644
index 825457b..0000000
--- a/node_modules/rxjs/src/add/operator/throttle.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/throttle';
diff --git a/node_modules/rxjs/src/add/operator/throttleTime.ts b/node_modules/rxjs/src/add/operator/throttleTime.ts
deleted file mode 100644
index c683297..0000000
--- a/node_modules/rxjs/src/add/operator/throttleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/throttleTime';
diff --git a/node_modules/rxjs/src/add/operator/timeInterval.ts b/node_modules/rxjs/src/add/operator/timeInterval.ts
deleted file mode 100644
index 198a616..0000000
--- a/node_modules/rxjs/src/add/operator/timeInterval.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeInterval';
diff --git a/node_modules/rxjs/src/add/operator/timeout.ts b/node_modules/rxjs/src/add/operator/timeout.ts
deleted file mode 100644
index 2a69ffd..0000000
--- a/node_modules/rxjs/src/add/operator/timeout.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeout';
diff --git a/node_modules/rxjs/src/add/operator/timeoutWith.ts b/node_modules/rxjs/src/add/operator/timeoutWith.ts
deleted file mode 100644
index cd4ec44..0000000
--- a/node_modules/rxjs/src/add/operator/timeoutWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timeoutWith';
diff --git a/node_modules/rxjs/src/add/operator/timestamp.ts b/node_modules/rxjs/src/add/operator/timestamp.ts
deleted file mode 100644
index 16402c8..0000000
--- a/node_modules/rxjs/src/add/operator/timestamp.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/timestamp';
diff --git a/node_modules/rxjs/src/add/operator/toArray.ts b/node_modules/rxjs/src/add/operator/toArray.ts
deleted file mode 100644
index a0f1a4f..0000000
--- a/node_modules/rxjs/src/add/operator/toArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/toArray';
diff --git a/node_modules/rxjs/src/add/operator/toPromise.ts b/node_modules/rxjs/src/add/operator/toPromise.ts
deleted file mode 100644
index cc7b16e..0000000
--- a/node_modules/rxjs/src/add/operator/toPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/toPromise';
diff --git a/node_modules/rxjs/src/add/operator/window.ts b/node_modules/rxjs/src/add/operator/window.ts
deleted file mode 100644
index 450c41f..0000000
--- a/node_modules/rxjs/src/add/operator/window.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/window';
diff --git a/node_modules/rxjs/src/add/operator/windowCount.ts b/node_modules/rxjs/src/add/operator/windowCount.ts
deleted file mode 100644
index da7eccf..0000000
--- a/node_modules/rxjs/src/add/operator/windowCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowCount';
diff --git a/node_modules/rxjs/src/add/operator/windowTime.ts b/node_modules/rxjs/src/add/operator/windowTime.ts
deleted file mode 100644
index 1d82ec6..0000000
--- a/node_modules/rxjs/src/add/operator/windowTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowTime';
diff --git a/node_modules/rxjs/src/add/operator/windowToggle.ts b/node_modules/rxjs/src/add/operator/windowToggle.ts
deleted file mode 100644
index 9ed25df..0000000
--- a/node_modules/rxjs/src/add/operator/windowToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowToggle';
diff --git a/node_modules/rxjs/src/add/operator/windowWhen.ts b/node_modules/rxjs/src/add/operator/windowWhen.ts
deleted file mode 100644
index f5d8564..0000000
--- a/node_modules/rxjs/src/add/operator/windowWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/windowWhen';
diff --git a/node_modules/rxjs/src/add/operator/withLatestFrom.ts b/node_modules/rxjs/src/add/operator/withLatestFrom.ts
deleted file mode 100644
index 9f71574..0000000
--- a/node_modules/rxjs/src/add/operator/withLatestFrom.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/withLatestFrom';
diff --git a/node_modules/rxjs/src/add/operator/zip.ts b/node_modules/rxjs/src/add/operator/zip.ts
deleted file mode 100644
index 414202a..0000000
--- a/node_modules/rxjs/src/add/operator/zip.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/zip';
diff --git a/node_modules/rxjs/src/add/operator/zipAll.ts b/node_modules/rxjs/src/add/operator/zipAll.ts
deleted file mode 100644
index cf8877f..0000000
--- a/node_modules/rxjs/src/add/operator/zipAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-import 'rxjs-compat/add/operator/zipAll';
diff --git a/node_modules/rxjs/src/ajax/index.ts b/node_modules/rxjs/src/ajax/index.ts
deleted file mode 100644
index 73cb0cc..0000000
--- a/node_modules/rxjs/src/ajax/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { ajax } from '../internal/observable/dom/ajax';
-export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
diff --git a/node_modules/rxjs/src/ajax/package.json b/node_modules/rxjs/src/ajax/package.json
deleted file mode 100644
index 898cd05..0000000
--- a/node_modules/rxjs/src/ajax/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/ajax",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/ajax/index.js",
-  "es2015": "../_esm2015/ajax/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/src/fetch/index.ts b/node_modules/rxjs/src/fetch/index.ts
deleted file mode 100644
index e6ff01d..0000000
--- a/node_modules/rxjs/src/fetch/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { fromFetch } from '../internal/observable/dom/fetch';
diff --git a/node_modules/rxjs/src/fetch/package.json b/node_modules/rxjs/src/fetch/package.json
deleted file mode 100644
index dff5519..0000000
--- a/node_modules/rxjs/src/fetch/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/fetch",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/fetch/index.js",
-  "es2015": "../_esm2015/fetch/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/src/index.ts b/node_modules/rxjs/src/index.ts
deleted file mode 100644
index 624a92b..0000000
--- a/node_modules/rxjs/src/index.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Observable */
-export { Observable } from './internal/Observable';
-export { ConnectableObservable } from './internal/observable/ConnectableObservable';
-export { GroupedObservable } from './internal/operators/groupBy';
-export { Operator } from './internal/Operator';
-export { observable } from './internal/symbol/observable';
-
-/* Subjects */
-export { Subject } from './internal/Subject';
-export { BehaviorSubject } from './internal/BehaviorSubject';
-export { ReplaySubject } from './internal/ReplaySubject';
-export { AsyncSubject } from './internal/AsyncSubject';
-
-/* Schedulers */
-export { asap as asapScheduler } from './internal/scheduler/asap';
-export { async as asyncScheduler } from './internal/scheduler/async';
-export { queue as queueScheduler } from './internal/scheduler/queue';
-export { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';
-export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';
-export { Scheduler } from './internal/Scheduler';
-
-/* Subscription */
-export { Subscription } from './internal/Subscription';
-export { Subscriber } from './internal/Subscriber';
-
-/* Notification */
-export { Notification, NotificationKind } from './internal/Notification';
-
-/* Utils */
-export { pipe } from './internal/util/pipe';
-export { noop } from './internal/util/noop';
-export { identity } from './internal/util/identity';
-export { isObservable } from './internal/util/isObservable';
-
-/* Error types */
-export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from './internal/util/EmptyError';
-export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';
-export { UnsubscriptionError } from './internal/util/UnsubscriptionError';
-export { TimeoutError } from './internal/util/TimeoutError';
-
-/* Static observable creation exports */
-export { bindCallback } from './internal/observable/bindCallback';
-export { bindNodeCallback } from './internal/observable/bindNodeCallback';
-export { combineLatest } from './internal/observable/combineLatest';
-export { concat } from './internal/observable/concat';
-export { defer } from './internal/observable/defer';
-export { empty } from './internal/observable/empty';
-export { forkJoin } from './internal/observable/forkJoin';
-export { from } from './internal/observable/from';
-export { fromEvent } from './internal/observable/fromEvent';
-export { fromEventPattern } from './internal/observable/fromEventPattern';
-export { generate } from './internal/observable/generate';
-export { iif } from './internal/observable/iif';
-export { interval } from './internal/observable/interval';
-export { merge } from './internal/observable/merge';
-export { never } from './internal/observable/never';
-export { of } from './internal/observable/of';
-export { onErrorResumeNext } from './internal/observable/onErrorResumeNext';
-export { pairs } from './internal/observable/pairs';
-export { partition } from './internal/observable/partition';
-export { race } from './internal/observable/race';
-export { range } from './internal/observable/range';
-export { throwError } from './internal/observable/throwError';
-export { timer } from './internal/observable/timer';
-export { using } from './internal/observable/using';
-export { zip } from './internal/observable/zip';
-export { scheduled } from './internal/scheduled/scheduled';
-
-/* Constants */
-export { EMPTY } from './internal/observable/empty';
-export { NEVER } from './internal/observable/never';
-
-/* Types */
-export * from './internal/types';
-
-/* Config */
-export { config } from './internal/config';
diff --git a/node_modules/rxjs/src/interfaces.ts b/node_modules/rxjs/src/interfaces.ts
deleted file mode 100644
index 5d5821d..0000000
--- a/node_modules/rxjs/src/interfaces.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/interfaces';
diff --git a/node_modules/rxjs/src/internal-compatibility/index.ts b/node_modules/rxjs/src/internal-compatibility/index.ts
deleted file mode 100644
index c7b0058..0000000
--- a/node_modules/rxjs/src/internal-compatibility/index.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-
-export { config } from '../internal/config';
-export { InnerSubscriber } from '../internal/InnerSubscriber';
-export { OuterSubscriber } from '../internal/OuterSubscriber';
-export { Scheduler } from '../internal/Scheduler';
-export { AnonymousSubject } from '../internal/Subject';
-export { SubjectSubscription } from '../internal/SubjectSubscription';
-export { Subscriber } from '../internal/Subscriber';
-
-export { fromPromise } from '../internal/observable/fromPromise';
-export { fromIterable } from '../internal/observable/fromIterable';
-export { ajax } from '../internal/observable/dom/ajax';
-export { webSocket } from '../internal/observable/dom/webSocket';
-export { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON,
-  AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';
-export { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject';
-export { CombineLatestOperator } from '../internal/observable/combineLatest';
-export { EventTargetLike } from '../internal/observable/fromEvent';
-export { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate';
-export { dispatch } from '../internal/observable/range';
-export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';
-
-export { Timestamp } from '../internal/operators/timestamp';
-export { TimeInterval } from '../internal/operators/timeInterval';
-export { GroupedObservable } from '../internal/operators/groupBy';
-export { ShareReplayConfig } from '../internal/operators/shareReplay';
-export { ThrottleConfig, defaultThrottleConfig } from '../internal/operators/throttle';
-
-export { rxSubscriber } from '../internal/symbol/rxSubscriber';
-export { iterator } from '../internal/symbol/iterator';
-export { observable } from '../internal/symbol/observable';
-
-export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError';
-export { EmptyError } from '../internal/util/EmptyError';
-export { Immediate } from '../internal/util/Immediate';
-export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError';
-export { TimeoutError } from '../internal/util/TimeoutError';
-export { UnsubscriptionError } from '../internal/util/UnsubscriptionError';
-export { applyMixins } from '../internal/util/applyMixins';
-export { errorObject } from '../internal/util/errorObject';
-export { hostReportError } from '../internal/util/hostReportError';
-export { identity } from '../internal/util/identity';
-export { isArray } from '../internal/util/isArray';
-export { isArrayLike } from '../internal/util/isArrayLike';
-export { isDate } from '../internal/util/isDate';
-export { isFunction } from '../internal/util/isFunction';
-export { isIterable } from '../internal/util/isIterable';
-export { isNumeric } from '../internal/util/isNumeric';
-export { isObject } from '../internal/util/isObject';
-export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable';
-export { isPromise } from '../internal/util/isPromise';
-export { isScheduler } from '../internal/util/isScheduler';
-export { noop } from '../internal/util/noop';
-export { not } from '../internal/util/not';
-export { pipe } from '../internal/util/pipe';
-export { root } from '../internal/util/root';
-export { subscribeTo } from '../internal/util/subscribeTo';
-export { subscribeToArray } from '../internal/util/subscribeToArray';
-export { subscribeToIterable } from '../internal/util/subscribeToIterable';
-export { subscribeToObservable } from '../internal/util/subscribeToObservable';
-export { subscribeToPromise } from '../internal/util/subscribeToPromise';
-export { subscribeToResult } from '../internal/util/subscribeToResult';
-export { toSubscriber } from '../internal/util/toSubscriber';
-export { tryCatch } from '../internal/util/tryCatch';
diff --git a/node_modules/rxjs/src/internal-compatibility/package.json b/node_modules/rxjs/src/internal-compatibility/package.json
deleted file mode 100644
index 5ff05a6..0000000
--- a/node_modules/rxjs/src/internal-compatibility/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/internal-compatibility",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/internal-compatibility/index.js",
-  "es2015": "../_esm2015/internal-compatibility/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/src/internal/AsyncSubject.ts b/node_modules/rxjs/src/internal/AsyncSubject.ts
deleted file mode 100644
index 218e8d2..0000000
--- a/node_modules/rxjs/src/internal/AsyncSubject.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Subject } from './Subject';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-
-/**
- * A variant of Subject that only emits a value when it completes. It will emit
- * its latest value to all its observers on completion.
- *
- * @class AsyncSubject<T>
- */
-export class AsyncSubject<T> extends Subject<T> {
-  private value: T = null;
-  private hasNext: boolean = false;
-  private hasCompleted: boolean = false;
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<any>): Subscription {
-    if (this.hasError) {
-      subscriber.error(this.thrownError);
-      return Subscription.EMPTY;
-    } else if (this.hasCompleted && this.hasNext) {
-      subscriber.next(this.value);
-      subscriber.complete();
-      return Subscription.EMPTY;
-    }
-    return super._subscribe(subscriber);
-  }
-
-  next(value: T): void {
-    if (!this.hasCompleted) {
-      this.value = value;
-      this.hasNext = true;
-    }
-  }
-
-  error(error: any): void {
-    if (!this.hasCompleted) {
-      super.error(error);
-    }
-  }
-
-  complete(): void {
-    this.hasCompleted = true;
-    if (this.hasNext) {
-      super.next(this.value);
-    }
-    super.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/BehaviorSubject.ts b/node_modules/rxjs/src/internal/BehaviorSubject.ts
deleted file mode 100644
index 20de21c..0000000
--- a/node_modules/rxjs/src/internal/BehaviorSubject.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Subject } from './Subject';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { SubscriptionLike } from './types';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-
-/**
- * A variant of Subject that requires an initial value and emits its current
- * value whenever it is subscribed to.
- *
- * @class BehaviorSubject<T>
- */
-export class BehaviorSubject<T> extends Subject<T> {
-
-  constructor(private _value: T) {
-    super();
-  }
-
-  get value(): T {
-    return this.getValue();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): Subscription {
-    const subscription = super._subscribe(subscriber);
-    if (subscription && !(<SubscriptionLike>subscription).closed) {
-      subscriber.next(this._value);
-    }
-    return subscription;
-  }
-
-  getValue(): T {
-    if (this.hasError) {
-      throw this.thrownError;
-    } else if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    } else {
-      return this._value;
-    }
-  }
-
-  next(value: T): void {
-    super.next(this._value = value);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/InnerSubscriber.ts b/node_modules/rxjs/src/internal/InnerSubscriber.ts
deleted file mode 100644
index 048e9a3..0000000
--- a/node_modules/rxjs/src/internal/InnerSubscriber.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { OuterSubscriber } from './OuterSubscriber';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class InnerSubscriber<T, R> extends Subscriber<R> {
-  private index = 0;
-
-  constructor(private parent: OuterSubscriber<T, R>, public outerValue: T, public outerIndex: number) {
-    super();
-  }
-
-  protected _next(value: R): void {
-    this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
-  }
-
-  protected _error(error: any): void {
-    this.parent.notifyError(error, this);
-    this.unsubscribe();
-  }
-
-  protected _complete(): void {
-    this.parent.notifyComplete(this);
-    this.unsubscribe();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Notification.ts b/node_modules/rxjs/src/internal/Notification.ts
deleted file mode 100644
index f65f70c..0000000
--- a/node_modules/rxjs/src/internal/Notification.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-import { PartialObserver } from './types';
-import { Observable } from './Observable';
-import { empty } from './observable/empty';
-import { of } from './observable/of';
-import { throwError } from './observable/throwError';
-import { deprecate } from 'util';
-
-// TODO: When this enum is removed, replace it with a type alias. See #4556.
-/**
- * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead.
- */
-export enum NotificationKind {
-  NEXT = 'N',
-  ERROR = 'E',
-  COMPLETE = 'C',
-}
-
-/**
- * Represents a push-based event or value that an {@link Observable} can emit.
- * This class is particularly useful for operators that manage notifications,
- * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and
- * others. Besides wrapping the actual delivered value, it also annotates it
- * with metadata of, for instance, what type of push message it is (`next`,
- * `error`, or `complete`).
- *
- * @see {@link materialize}
- * @see {@link dematerialize}
- * @see {@link observeOn}
- *
- * @class Notification<T>
- */
-export class Notification<T> {
-  hasValue: boolean;
-
-  constructor(public kind: 'N' | 'E' | 'C', public value?: T, public error?: any) {
-    this.hasValue = kind === 'N';
-  }
-
-  /**
-   * Delivers to the given `observer` the value wrapped by this Notification.
-   * @param {Observer} observer
-   * @return
-   */
-  observe(observer: PartialObserver<T>): any {
-    switch (this.kind) {
-      case 'N':
-        return observer.next && observer.next(this.value);
-      case 'E':
-        return observer.error && observer.error(this.error);
-      case 'C':
-        return observer.complete && observer.complete();
-    }
-  }
-
-  /**
-   * Given some {@link Observer} callbacks, deliver the value represented by the
-   * current Notification to the correctly corresponding callback.
-   * @param {function(value: T): void} next An Observer `next` callback.
-   * @param {function(err: any): void} [error] An Observer `error` callback.
-   * @param {function(): void} [complete] An Observer `complete` callback.
-   * @return {any}
-   */
-  do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any {
-    const kind = this.kind;
-    switch (kind) {
-      case 'N':
-        return next && next(this.value);
-      case 'E':
-        return error && error(this.error);
-      case 'C':
-        return complete && complete();
-    }
-  }
-
-  /**
-   * Takes an Observer or its individual callback functions, and calls `observe`
-   * or `do` methods accordingly.
-   * @param {Observer|function(value: T): void} nextOrObserver An Observer or
-   * the `next` callback.
-   * @param {function(err: any): void} [error] An Observer `error` callback.
-   * @param {function(): void} [complete] An Observer `complete` callback.
-   * @return {any}
-   */
-  accept(nextOrObserver: PartialObserver<T> | ((value: T) => void), error?: (err: any) => void, complete?: () => void) {
-    if (nextOrObserver && typeof (<PartialObserver<T>>nextOrObserver).next === 'function') {
-      return this.observe(<PartialObserver<T>>nextOrObserver);
-    } else {
-      return this.do(<(value: T) => void>nextOrObserver, error, complete);
-    }
-  }
-
-  /**
-   * Returns a simple Observable that just delivers the notification represented
-   * by this Notification instance.
-   * @return {any}
-   */
-  toObservable(): Observable<T> {
-    const kind = this.kind;
-    switch (kind) {
-      case 'N':
-        return of(this.value);
-      case 'E':
-        return throwError(this.error);
-      case 'C':
-        return empty();
-    }
-    throw new Error('unexpected notification kind value');
-  }
-
-  private static completeNotification: Notification<any> = new Notification('C');
-  private static undefinedValueNotification: Notification<any> = new Notification('N', undefined);
-
-  /**
-   * A shortcut to create a Notification instance of the type `next` from a
-   * given value.
-   * @param {T} value The `next` value.
-   * @return {Notification<T>} The "next" Notification representing the
-   * argument.
-   * @nocollapse
-   */
-  static createNext<T>(value: T): Notification<T> {
-    if (typeof value !== 'undefined') {
-      return new Notification('N', value);
-    }
-    return Notification.undefinedValueNotification;
-  }
-
-  /**
-   * A shortcut to create a Notification instance of the type `error` from a
-   * given error.
-   * @param {any} [err] The `error` error.
-   * @return {Notification<T>} The "error" Notification representing the
-   * argument.
-   * @nocollapse
-   */
-  static createError<T>(err?: any): Notification<T> {
-    return new Notification('E', undefined, err);
-  }
-
-  /**
-   * A shortcut to create a Notification instance of the type `complete`.
-   * @return {Notification<any>} The valueless "complete" Notification.
-   * @nocollapse
-   */
-  static createComplete(): Notification<any> {
-    return Notification.completeNotification;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Observable.ts b/node_modules/rxjs/src/internal/Observable.ts
deleted file mode 100644
index c677428..0000000
--- a/node_modules/rxjs/src/internal/Observable.ts
+++ /dev/null
@@ -1,382 +0,0 @@
-import { Operator } from './Operator';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';
-import { canReportError } from './util/canReportError';
-import { toSubscriber } from './util/toSubscriber';
-import { iif } from './observable/iif';
-import { throwError } from './observable/throwError';
-import { observable as Symbol_observable } from './symbol/observable';
-import { pipeFromArray } from './util/pipe';
-import { config } from './config';
-
-/**
- * A representation of any set of values over any amount of time. This is the most basic building block
- * of RxJS.
- *
- * @class Observable<T>
- */
-export class Observable<T> implements Subscribable<T> {
-
-  /** Internal implementation detail, do not use directly. */
-  public _isScalar: boolean = false;
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  source: Observable<any>;
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  operator: Operator<any, T>;
-
-  /**
-   * @constructor
-   * @param {Function} subscribe the function that is called when the Observable is
-   * initially subscribed to. This function is given a Subscriber, to which new values
-   * can be `next`ed, or an `error` method can be called to raise an error, or
-   * `complete` can be called to notify of a successful completion.
-   */
-  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {
-    if (subscribe) {
-      this._subscribe = subscribe;
-    }
-  }
-
-  // HACK: Since TypeScript inherits static properties too, we have to
-  // fight against TypeScript here so Subject can have a different static create signature
-  /**
-   * Creates a new cold Observable by calling the Observable constructor
-   * @static true
-   * @owner Observable
-   * @method create
-   * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor
-   * @return {Observable} a new cold observable
-   * @nocollapse
-   * @deprecated use new Observable() instead
-   */
-  static create: Function = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {
-    return new Observable<T>(subscribe);
-  }
-
-  /**
-   * Creates a new Observable, with this Observable as the source, and the passed
-   * operator defined as the new observable's operator.
-   * @method lift
-   * @param {Operator} operator the operator defining the operation to take on the observable
-   * @return {Observable} a new observable with the Operator applied
-   */
-  lift<R>(operator: Operator<T, R>): Observable<R> {
-    const observable = new Observable<R>();
-    observable.source = this;
-    observable.operator = operator;
-    return observable;
-  }
-
-  subscribe(observer?: PartialObserver<T>): Subscription;
-  /** @deprecated Use an observer instead of a complete callback */
-  subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;
-  /** @deprecated Use an observer instead of an error callback */
-  subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;
-  /** @deprecated Use an observer instead of a complete callback */
-  subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;
-  subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
-  /**
-   * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.
-   *
-   * <span class="informal">Use it when you have all these Observables, but still nothing is happening.</span>
-   *
-   * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It
-   * might be for example a function that you passed to Observable's constructor, but most of the time it is
-   * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means
-   * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often
-   * the thought.
-   *
-   * Apart from starting the execution of an Observable, this method allows you to listen for values
-   * that an Observable emits, as well as for when it completes or errors. You can achieve this in two
-   * of the following ways.
-   *
-   * The first way is creating an object that implements {@link Observer} interface. It should have methods
-   * defined by that interface, but note that it should be just a regular JavaScript object, which you can create
-   * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do
-   * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also
-   * that your object does not have to implement all methods. If you find yourself creating a method that doesn't
-   * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will
-   * be left uncaught.
-   *
-   * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.
-   * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent
-   * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,
-   * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,
-   * since `subscribe` recognizes these functions by where they were placed in function call. When it comes
-   * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.
-   *
-   * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.
-   * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean
-   * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback
-   * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.
-   *
-   * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.
-   * It is an Observable itself that decides when these functions will be called. For example {@link of}
-   * by default emits all its values synchronously. Always check documentation for how given Observable
-   * will behave when subscribed and if its default behavior can be modified with a `scheduler`.
-   *
-   * ## Example
-   * ### Subscribe with an Observer
-   * ```ts
-   * import { of } from 'rxjs';
-   *
-   * const sumObserver = {
-   *   sum: 0,
-   *   next(value) {
-   *     console.log('Adding: ' + value);
-   *     this.sum = this.sum + value;
-   *   },
-   *   error() {
-   *     // We actually could just remove this method,
-   *     // since we do not really care about errors right now.
-   *   },
-   *   complete() {
-   *     console.log('Sum equals: ' + this.sum);
-   *   }
-   * };
-   *
-   * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.
-   *   .subscribe(sumObserver);
-   *
-   * // Logs:
-   * // "Adding: 1"
-   * // "Adding: 2"
-   * // "Adding: 3"
-   * // "Sum equals: 6"
-   * ```
-   *
-   * ### Subscribe with functions
-   * ```ts
-   * import { of } from 'rxjs'
-   *
-   * let sum = 0;
-   *
-   * of(1, 2, 3).subscribe(
-   *   value => {
-   *     console.log('Adding: ' + value);
-   *     sum = sum + value;
-   *   },
-   *   undefined,
-   *   () => console.log('Sum equals: ' + sum)
-   * );
-   *
-   * // Logs:
-   * // "Adding: 1"
-   * // "Adding: 2"
-   * // "Adding: 3"
-   * // "Sum equals: 6"
-   * ```
-   *
-   * ### Cancel a subscription
-   * ```ts
-   * import { interval } from 'rxjs';
-   *
-   * const subscription = interval(1000).subscribe(
-   *   num => console.log(num),
-   *   undefined,
-   *   () => {
-   *     // Will not be called, even when cancelling subscription.
-   *     console.log('completed!');
-   *   }
-   * );
-   *
-   * setTimeout(() => {
-   *   subscription.unsubscribe();
-   *   console.log('unsubscribed!');
-   * }, 2500);
-   *
-   * // Logs:
-   * // 0 after 1s
-   * // 1 after 2s
-   * // "unsubscribed!" after 2.5s
-   * ```
-   *
-   * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,
-   *  or the first of three possible handlers, which is the handler for each value emitted from the subscribed
-   *  Observable.
-   * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,
-   *  the error will be thrown as unhandled.
-   * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.
-   * @return {ISubscription} a subscription reference to the registered handlers
-   * @method subscribe
-   */
-  subscribe(observerOrNext?: PartialObserver<T> | ((value: T) => void),
-            error?: (error: any) => void,
-            complete?: () => void): Subscription {
-
-    const { operator } = this;
-    const sink = toSubscriber(observerOrNext, error, complete);
-
-    if (operator) {
-      sink.add(operator.call(sink, this.source));
-    } else {
-      sink.add(
-        this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
-        this._subscribe(sink) :
-        this._trySubscribe(sink)
-      );
-    }
-
-    if (config.useDeprecatedSynchronousErrorHandling) {
-      if (sink.syncErrorThrowable) {
-        sink.syncErrorThrowable = false;
-        if (sink.syncErrorThrown) {
-          throw sink.syncErrorValue;
-        }
-      }
-    }
-
-    return sink;
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _trySubscribe(sink: Subscriber<T>): TeardownLogic {
-    try {
-      return this._subscribe(sink);
-    } catch (err) {
-      if (config.useDeprecatedSynchronousErrorHandling) {
-        sink.syncErrorThrown = true;
-        sink.syncErrorValue = err;
-      }
-      if (canReportError(sink)) {
-        sink.error(err);
-      } else {
-        console.warn(err);
-      }
-    }
-  }
-
-  /**
-   * @method forEach
-   * @param {Function} next a handler for each value emitted by the observable
-   * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise
-   * @return {Promise} a promise that either resolves on observable completion or
-   *  rejects with the handled error
-   */
-  forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {
-    promiseCtor = getPromiseCtor(promiseCtor);
-
-    return new promiseCtor<void>((resolve, reject) => {
-      // Must be declared in a separate statement to avoid a ReferenceError when
-      // accessing subscription below in the closure due to Temporal Dead Zone.
-      let subscription: Subscription;
-      subscription = this.subscribe((value) => {
-        try {
-          next(value);
-        } catch (err) {
-          reject(err);
-          if (subscription) {
-            subscription.unsubscribe();
-          }
-        }
-      }, reject, resolve);
-    }) as Promise<void>;
-  }
-
-  /** @internal This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<any>): TeardownLogic {
-    const { source } = this;
-    return source && source.subscribe(subscriber);
-  }
-
-  // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in
-  // favor of iif and throwError functions.
-  /**
-   * @nocollapse
-   * @deprecated In favor of iif creation function: import { iif } from 'rxjs';
-   */
-  static if: typeof iif;
-  /**
-   * @nocollapse
-   * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';
-   */
-  static throw: typeof throwError;
-
-  /**
-   * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable
-   * @method Symbol.observable
-   * @return {Observable} this instance of the observable
-   */
-  [Symbol_observable]() {
-    return this;
-  }
-
-  /* tslint:disable:max-line-length */
-  pipe(): Observable<T>;
-  pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;
-  pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;
-  pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;
-  pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;
-  pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;
-  pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;
-  pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;
-  pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;
-  pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;
-  pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<{}>;
-  /* tslint:enable:max-line-length */
-
-  /**
-   * Used to stitch together functional operators into a chain.
-   * @method pipe
-   * @return {Observable} the Observable result of all of the operators having
-   * been called in the order they were passed in.
-   *
-   * ### Example
-   * ```ts
-   * import { interval } from 'rxjs';
-   * import { map, filter, scan } from 'rxjs/operators';
-   *
-   * interval(1000)
-   *   .pipe(
-   *     filter(x => x % 2 === 0),
-   *     map(x => x + x),
-   *     scan((acc, x) => acc + x)
-   *   )
-   *   .subscribe(x => console.log(x))
-   * ```
-   */
-  pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {
-    if (operations.length === 0) {
-      return this as any;
-    }
-
-    return pipeFromArray(operations)(this);
-  }
-
-  /* tslint:disable:max-line-length */
-  toPromise<T>(this: Observable<T>): Promise<T>;
-  toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;
-  toPromise<T>(this: Observable<T>, PromiseCtor: PromiseConstructorLike): Promise<T>;
-  /* tslint:enable:max-line-length */
-
-  toPromise(promiseCtor?: PromiseConstructorLike): Promise<T> {
-    promiseCtor = getPromiseCtor(promiseCtor);
-
-    return new promiseCtor((resolve, reject) => {
-      let value: any;
-      this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));
-    }) as Promise<T>;
-  }
-}
-
-/**
- * Decides between a passed promise constructor from consuming code,
- * A default configured promise constructor, and the native promise
- * constructor and returns it. If nothing can be found, it will throw
- * an error.
- * @param promiseCtor The optional promise constructor to passed by consuming code
- */
-function getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {
-  if (!promiseCtor) {
-    promiseCtor = config.Promise || Promise;
-  }
-
-  if (!promiseCtor) {
-    throw new Error('no Promise impl found');
-  }
-
-  return promiseCtor;
-}
diff --git a/node_modules/rxjs/src/internal/Observer.ts b/node_modules/rxjs/src/internal/Observer.ts
deleted file mode 100644
index 3ae9243..0000000
--- a/node_modules/rxjs/src/internal/Observer.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Observer } from './types';
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-
-export const empty: Observer<any> = {
-  closed: true,
-  next(value: any): void { /* noop */},
-  error(err: any): void {
-    if (config.useDeprecatedSynchronousErrorHandling) {
-      throw err;
-    } else {
-      hostReportError(err);
-    }
-  },
-  complete(): void { /*noop*/ }
-};
diff --git a/node_modules/rxjs/src/internal/Operator.ts b/node_modules/rxjs/src/internal/Operator.ts
deleted file mode 100644
index 93b65e6..0000000
--- a/node_modules/rxjs/src/internal/Operator.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { TeardownLogic } from './types';
-
-export interface Operator<T, R> {
-  call(subscriber: Subscriber<R>, source: any): TeardownLogic;
-}
diff --git a/node_modules/rxjs/src/internal/OuterSubscriber.ts b/node_modules/rxjs/src/internal/OuterSubscriber.ts
deleted file mode 100644
index b051321..0000000
--- a/node_modules/rxjs/src/internal/OuterSubscriber.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Subscriber } from './Subscriber';
-import { InnerSubscriber } from './InnerSubscriber';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class OuterSubscriber<T, R> extends Subscriber<T> {
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.destination.next(innerValue);
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, R>): void {
-    this.destination.error(error);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, R>): void {
-    this.destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/ReplaySubject.ts b/node_modules/rxjs/src/internal/ReplaySubject.ts
deleted file mode 100644
index d6d8eb7..0000000
--- a/node_modules/rxjs/src/internal/ReplaySubject.ts
+++ /dev/null
@@ -1,136 +0,0 @@
-import { Subject } from './Subject';
-import { SchedulerLike } from './types';
-import { queue } from './scheduler/queue';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { ObserveOnSubscriber } from './operators/observeOn';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-/**
- * A variant of Subject that "replays" or emits old values to new subscribers.
- * It buffers a set number of values and will emit those values immediately to
- * any new subscribers in addition to emitting new values to existing subscribers.
- *
- * @class ReplaySubject<T>
- */
-export class ReplaySubject<T> extends Subject<T> {
-  private _events: (ReplayEvent<T> | T)[] = [];
-  private _bufferSize: number;
-  private _windowTime: number;
-  private _infiniteTimeWindow: boolean = false;
-
-  constructor(bufferSize: number = Number.POSITIVE_INFINITY,
-              windowTime: number = Number.POSITIVE_INFINITY,
-              private scheduler?: SchedulerLike) {
-    super();
-    this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
-    this._windowTime = windowTime < 1 ? 1 : windowTime;
-
-    if (windowTime === Number.POSITIVE_INFINITY) {
-      this._infiniteTimeWindow = true;
-      this.next = this.nextInfiniteTimeWindow;
-    } else {
-      this.next = this.nextTimeWindow;
-    }
-  }
-
-  private nextInfiniteTimeWindow(value: T): void {
-    const _events = this._events;
-    _events.push(value);
-    // Since this method is invoked in every next() call than the buffer
-    // can overgrow the max size only by one item
-    if (_events.length > this._bufferSize) {
-      _events.shift();
-    }
-
-    super.next(value);
-  }
-
-  private nextTimeWindow(value: T): void {
-    this._events.push(new ReplayEvent(this._getNow(), value));
-    this._trimBufferThenGetEvents();
-
-    super.next(value);
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): Subscription {
-    // When `_infiniteTimeWindow === true` then the buffer is already trimmed
-    const _infiniteTimeWindow = this._infiniteTimeWindow;
-    const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
-    const scheduler = this.scheduler;
-    const len = _events.length;
-    let subscription: Subscription;
-
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    } else if (this.isStopped || this.hasError) {
-      subscription = Subscription.EMPTY;
-    } else {
-      this.observers.push(subscriber);
-      subscription = new SubjectSubscription(this, subscriber);
-    }
-
-    if (scheduler) {
-      subscriber.add(subscriber = new ObserveOnSubscriber<T>(subscriber, scheduler));
-    }
-
-    if (_infiniteTimeWindow) {
-      for (let i = 0; i < len && !subscriber.closed; i++) {
-        subscriber.next(<T>_events[i]);
-      }
-    } else {
-      for (let i = 0; i < len && !subscriber.closed; i++) {
-        subscriber.next((<ReplayEvent<T>>_events[i]).value);
-      }
-    }
-
-    if (this.hasError) {
-      subscriber.error(this.thrownError);
-    } else if (this.isStopped) {
-      subscriber.complete();
-    }
-
-    return subscription;
-  }
-
-  _getNow(): number {
-    return (this.scheduler || queue).now();
-  }
-
-  private _trimBufferThenGetEvents(): ReplayEvent<T>[] {
-    const now = this._getNow();
-    const _bufferSize = this._bufferSize;
-    const _windowTime = this._windowTime;
-    const _events = <ReplayEvent<T>[]>this._events;
-
-    const eventsCount = _events.length;
-    let spliceCount = 0;
-
-    // Trim events that fall out of the time window.
-    // Start at the front of the list. Break early once
-    // we encounter an event that falls within the window.
-    while (spliceCount < eventsCount) {
-      if ((now - _events[spliceCount].time) < _windowTime) {
-        break;
-      }
-      spliceCount++;
-    }
-
-    if (eventsCount > _bufferSize) {
-      spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
-    }
-
-    if (spliceCount > 0) {
-      _events.splice(0, spliceCount);
-    }
-
-    return _events;
-  }
-
-}
-
-class ReplayEvent<T> {
-  constructor(public time: number, public value: T) {
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Rx.ts b/node_modules/rxjs/src/internal/Rx.ts
deleted file mode 100644
index ee6ef89..0000000
--- a/node_modules/rxjs/src/internal/Rx.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-/* tslint:disable:no-unused-variable */
-// Subject imported before Observable to bypass circular dependency issue since
-// Subject extends Observable and Observable references Subject in it's
-// definition
-export {Subject, AnonymousSubject} from './Subject';
-/* tslint:enable:no-unused-variable */
-export {Observable} from './Observable';
-
-export { config } from './config';
-
-// statics
-/* tslint:disable:no-use-before-declare */
-import 'rxjs-compat/add/observable/bindCallback';
-import 'rxjs-compat/add/observable/bindNodeCallback';
-import 'rxjs-compat/add/observable/combineLatest';
-import 'rxjs-compat/add/observable/concat';
-import 'rxjs-compat/add/observable/defer';
-import 'rxjs-compat/add/observable/empty';
-import 'rxjs-compat/add/observable/forkJoin';
-import 'rxjs-compat/add/observable/from';
-import 'rxjs-compat/add/observable/fromEvent';
-import 'rxjs-compat/add/observable/fromEventPattern';
-import 'rxjs-compat/add/observable/fromPromise';
-import 'rxjs-compat/add/observable/generate';
-import 'rxjs-compat/add/observable/if';
-import 'rxjs-compat/add/observable/interval';
-import 'rxjs-compat/add/observable/merge';
-import 'rxjs-compat/add/observable/race';
-import 'rxjs-compat/add/observable/never';
-import 'rxjs-compat/add/observable/of';
-import 'rxjs-compat/add/observable/onErrorResumeNext';
-import 'rxjs-compat/add/observable/pairs';
-import 'rxjs-compat/add/observable/range';
-import 'rxjs-compat/add/observable/using';
-import 'rxjs-compat/add/observable/throw';
-import 'rxjs-compat/add/observable/timer';
-import 'rxjs-compat/add/observable/zip';
-
-//dom
-import 'rxjs-compat/add/observable/dom/ajax';
-import 'rxjs-compat/add/observable/dom/webSocket';
-
-//internal/operators
-import 'rxjs-compat/add/operator/buffer';
-import 'rxjs-compat/add/operator/bufferCount';
-import 'rxjs-compat/add/operator/bufferTime';
-import 'rxjs-compat/add/operator/bufferToggle';
-import 'rxjs-compat/add/operator/bufferWhen';
-import 'rxjs-compat/add/operator/catch';
-import 'rxjs-compat/add/operator/combineAll';
-import 'rxjs-compat/add/operator/combineLatest';
-import 'rxjs-compat/add/operator/concat';
-import 'rxjs-compat/add/operator/concatAll';
-import 'rxjs-compat/add/operator/concatMap';
-import 'rxjs-compat/add/operator/concatMapTo';
-import 'rxjs-compat/add/operator/count';
-import 'rxjs-compat/add/operator/dematerialize';
-import 'rxjs-compat/add/operator/debounce';
-import 'rxjs-compat/add/operator/debounceTime';
-import 'rxjs-compat/add/operator/defaultIfEmpty';
-import 'rxjs-compat/add/operator/delay';
-import 'rxjs-compat/add/operator/delayWhen';
-import 'rxjs-compat/add/operator/distinct';
-import 'rxjs-compat/add/operator/distinctUntilChanged';
-import 'rxjs-compat/add/operator/distinctUntilKeyChanged';
-import 'rxjs-compat/add/operator/do';
-import 'rxjs-compat/add/operator/exhaust';
-import 'rxjs-compat/add/operator/exhaustMap';
-import 'rxjs-compat/add/operator/expand';
-import 'rxjs-compat/add/operator/elementAt';
-import 'rxjs-compat/add/operator/filter';
-import 'rxjs-compat/add/operator/finally';
-import 'rxjs-compat/add/operator/find';
-import 'rxjs-compat/add/operator/findIndex';
-import 'rxjs-compat/add/operator/first';
-import 'rxjs-compat/add/operator/groupBy';
-import 'rxjs-compat/add/operator/ignoreElements';
-import 'rxjs-compat/add/operator/isEmpty';
-import 'rxjs-compat/add/operator/audit';
-import 'rxjs-compat/add/operator/auditTime';
-import 'rxjs-compat/add/operator/last';
-import 'rxjs-compat/add/operator/let';
-import 'rxjs-compat/add/operator/every';
-import 'rxjs-compat/add/operator/map';
-import 'rxjs-compat/add/operator/mapTo';
-import 'rxjs-compat/add/operator/materialize';
-import 'rxjs-compat/add/operator/max';
-import 'rxjs-compat/add/operator/merge';
-import 'rxjs-compat/add/operator/mergeAll';
-import 'rxjs-compat/add/operator/mergeMap';
-import 'rxjs-compat/add/operator/mergeMapTo';
-import 'rxjs-compat/add/operator/mergeScan';
-import 'rxjs-compat/add/operator/min';
-import 'rxjs-compat/add/operator/multicast';
-import 'rxjs-compat/add/operator/observeOn';
-import 'rxjs-compat/add/operator/onErrorResumeNext';
-import 'rxjs-compat/add/operator/pairwise';
-import 'rxjs-compat/add/operator/partition';
-import 'rxjs-compat/add/operator/pluck';
-import 'rxjs-compat/add/operator/publish';
-import 'rxjs-compat/add/operator/publishBehavior';
-import 'rxjs-compat/add/operator/publishReplay';
-import 'rxjs-compat/add/operator/publishLast';
-import 'rxjs-compat/add/operator/race';
-import 'rxjs-compat/add/operator/reduce';
-import 'rxjs-compat/add/operator/repeat';
-import 'rxjs-compat/add/operator/repeatWhen';
-import 'rxjs-compat/add/operator/retry';
-import 'rxjs-compat/add/operator/retryWhen';
-import 'rxjs-compat/add/operator/sample';
-import 'rxjs-compat/add/operator/sampleTime';
-import 'rxjs-compat/add/operator/scan';
-import 'rxjs-compat/add/operator/sequenceEqual';
-import 'rxjs-compat/add/operator/share';
-import 'rxjs-compat/add/operator/shareReplay';
-import 'rxjs-compat/add/operator/single';
-import 'rxjs-compat/add/operator/skip';
-import 'rxjs-compat/add/operator/skipLast';
-import 'rxjs-compat/add/operator/skipUntil';
-import 'rxjs-compat/add/operator/skipWhile';
-import 'rxjs-compat/add/operator/startWith';
-import 'rxjs-compat/add/operator/subscribeOn';
-import 'rxjs-compat/add/operator/switch';
-import 'rxjs-compat/add/operator/switchMap';
-import 'rxjs-compat/add/operator/switchMapTo';
-import 'rxjs-compat/add/operator/take';
-import 'rxjs-compat/add/operator/takeLast';
-import 'rxjs-compat/add/operator/takeUntil';
-import 'rxjs-compat/add/operator/takeWhile';
-import 'rxjs-compat/add/operator/throttle';
-import 'rxjs-compat/add/operator/throttleTime';
-import 'rxjs-compat/add/operator/timeInterval';
-import 'rxjs-compat/add/operator/timeout';
-import 'rxjs-compat/add/operator/timeoutWith';
-import 'rxjs-compat/add/operator/timestamp';
-import 'rxjs-compat/add/operator/toArray';
-import 'rxjs-compat/add/operator/toPromise';
-import 'rxjs-compat/add/operator/window';
-import 'rxjs-compat/add/operator/windowCount';
-import 'rxjs-compat/add/operator/windowTime';
-import 'rxjs-compat/add/operator/windowToggle';
-import 'rxjs-compat/add/operator/windowWhen';
-import 'rxjs-compat/add/operator/withLatestFrom';
-import 'rxjs-compat/add/operator/zip';
-import 'rxjs-compat/add/operator/zipAll';
-
-/* tslint:disable:no-unused-variable */
-export {Operator} from './Operator';
-export {Observer} from './types';
-export {Subscription} from './Subscription';
-export {Subscriber} from './Subscriber';
-export {AsyncSubject} from './AsyncSubject';
-export {ReplaySubject} from './ReplaySubject';
-export {BehaviorSubject} from './BehaviorSubject';
-export {ConnectableObservable} from './observable/ConnectableObservable';
-export {Notification, NotificationKind} from './Notification';
-export {EmptyError} from './util/EmptyError';
-export {ArgumentOutOfRangeError} from './util/ArgumentOutOfRangeError';
-export {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError';
-export {TimeoutError} from './util/TimeoutError';
-export {UnsubscriptionError} from './util/UnsubscriptionError';
-export {TimeInterval} from './operators/timeInterval';
-export {Timestamp} from './operators/timestamp';
-export {TestScheduler} from './testing/TestScheduler';
-export {VirtualTimeScheduler} from './scheduler/VirtualTimeScheduler';
-export {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from './observable/dom/AjaxObservable';
-export { pipe } from './util/pipe';
-
-import { asap } from './scheduler/asap';
-import { async } from './scheduler/async';
-import { queue } from './scheduler/queue';
-import { animationFrame } from './scheduler/animationFrame';
-import { AsapScheduler } from './scheduler/AsapScheduler';
-import { AsyncScheduler } from './scheduler/AsyncScheduler';
-import { QueueScheduler } from './scheduler/QueueScheduler';
-import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';
-import { rxSubscriber } from './symbol/rxSubscriber';
-import { iterator } from './symbol/iterator';
-import { observable } from './symbol/observable';
-
-import * as _operators from './operators/index';
-
-export const operators = _operators;
-
-/* tslint:enable:no-unused-variable */
-
-/**
- * @typedef {Object} Rx.Scheduler
- * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same
- * queue used for promises. Basically after the current job, but before the next job.
- * Use this for asynchronous conversions.
- * @property {SchedulerLike} queue Schedules on a queue in the current event frame
- * (trampoline scheduler). Use this for iteration operations.
- * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`.
- * Use this for synchronizing with the platform's painting.
- * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for
- * time-based operations.
- */
-let Scheduler = {
-  asap,
-  queue,
-  animationFrame,
-  async
-};
-
-/**
- * @typedef {Object} Rx.Symbol
- * @property {Symbol|string} rxSubscriber A symbol to use as a property name to
- * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as
- * an object that has all of the traits of an Rx Subscriber, including the
- * ability to add and remove subscriptions to the subscription chain and
- * guarantees involving event triggering (can't "next" after unsubscription,
- * etc).
- * @property {Symbol|string} observable A symbol to use as a property name to
- * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable).
- * @property {Symbol|string} iterator The ES6 symbol to use as a property name
- * to retrieve an iterator from an object.
- */
-let Symbol = {
-  rxSubscriber,
-  observable,
-  iterator
-};
-
-export {
-    Scheduler,
-    Symbol
-};
diff --git a/node_modules/rxjs/src/internal/Scheduler.ts b/node_modules/rxjs/src/internal/Scheduler.ts
deleted file mode 100644
index e41e41b..0000000
--- a/node_modules/rxjs/src/internal/Scheduler.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Action } from './scheduler/Action';
-import { Subscription } from './Subscription';
-import { SchedulerLike, SchedulerAction } from './types';
-
-/**
- * An execution context and a data structure to order tasks and schedule their
- * execution. Provides a notion of (potentially virtual) time, through the
- * `now()` getter method.
- *
- * Each unit of work in a Scheduler is called an `Action`.
- *
- * ```ts
- * class Scheduler {
- *   now(): number;
- *   schedule(work, delay?, state?): Subscription;
- * }
- * ```
- *
- * @class Scheduler
- * @deprecated Scheduler is an internal implementation detail of RxJS, and
- * should not be used directly. Rather, create your own class and implement
- * {@link SchedulerLike}
- */
-export class Scheduler implements SchedulerLike {
-
-  /**
-   * Note: the extra arrow function wrapper is to make testing by overriding
-   * Date.now easier.
-   * @nocollapse
-   */
-  public static now: () => number = () => Date.now();
-
-  constructor(private SchedulerAction: typeof Action,
-              now: () => number = Scheduler.now) {
-    this.now = now;
-  }
-
-  /**
-   * A getter method that returns a number representing the current time
-   * (at the time this function was called) according to the scheduler's own
-   * internal clock.
-   * @return {number} A number that represents the current time. May or may not
-   * have a relation to wall-clock time. May or may not refer to a time unit
-   * (e.g. milliseconds).
-   */
-  public now: () => number;
-
-  /**
-   * Schedules a function, `work`, for execution. May happen at some point in
-   * the future, according to the `delay` parameter, if specified. May be passed
-   * some context object, `state`, which will be passed to the `work` function.
-   *
-   * The given arguments will be processed an stored as an Action object in a
-   * queue of actions.
-   *
-   * @param {function(state: ?T): ?Subscription} work A function representing a
-   * task, or some unit of work to be executed by the Scheduler.
-   * @param {number} [delay] Time to wait before executing the work, where the
-   * time unit is implicit and defined by the Scheduler itself.
-   * @param {T} [state] Some contextual data that the `work` function uses when
-   * called by the Scheduler.
-   * @return {Subscription} A subscription in order to be able to unsubscribe
-   * the scheduled work.
-   */
-  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {
-    return new this.SchedulerAction<T>(this, work).schedule(state, delay);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Subject.ts b/node_modules/rxjs/src/internal/Subject.ts
deleted file mode 100644
index d5b4734..0000000
--- a/node_modules/rxjs/src/internal/Subject.ts
+++ /dev/null
@@ -1,188 +0,0 @@
-import { Operator } from './Operator';
-import { Observable } from './Observable';
-import { Subscriber } from './Subscriber';
-import { Subscription } from './Subscription';
-import { Observer, SubscriptionLike, TeardownLogic } from './types';
-import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
-import { SubjectSubscription } from './SubjectSubscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-
-/**
- * @class SubjectSubscriber<T>
- */
-export class SubjectSubscriber<T> extends Subscriber<T> {
-  constructor(protected destination: Subject<T>) {
-    super(destination);
-  }
-}
-
-/**
- * A Subject is a special type of Observable that allows values to be
- * multicasted to many Observers. Subjects are like EventEmitters.
- *
- * Every Subject is an Observable and an Observer. You can subscribe to a
- * Subject, and you can call next to feed values as well as error and complete.
- *
- * @class Subject<T>
- */
-export class Subject<T> extends Observable<T> implements SubscriptionLike {
-
-  [rxSubscriberSymbol]() {
-    return new SubjectSubscriber(this);
-  }
-
-  observers: Observer<T>[] = [];
-
-  closed = false;
-
-  isStopped = false;
-
-  hasError = false;
-
-  thrownError: any = null;
-
-  constructor() {
-    super();
-  }
-
-  /**@nocollapse
-   * @deprecated use new Subject() instead
-  */
-  static create: Function = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {
-    return new AnonymousSubject<T>(destination, source);
-  }
-
-  lift<R>(operator: Operator<T, R>): Observable<R> {
-    const subject = new AnonymousSubject(this, this);
-    subject.operator = <any>operator;
-    return <any>subject;
-  }
-
-  next(value?: T) {
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    }
-    if (!this.isStopped) {
-      const { observers } = this;
-      const len = observers.length;
-      const copy = observers.slice();
-      for (let i = 0; i < len; i++) {
-        copy[i].next(value);
-      }
-    }
-  }
-
-  error(err: any) {
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    }
-    this.hasError = true;
-    this.thrownError = err;
-    this.isStopped = true;
-    const { observers } = this;
-    const len = observers.length;
-    const copy = observers.slice();
-    for (let i = 0; i < len; i++) {
-      copy[i].error(err);
-    }
-    this.observers.length = 0;
-  }
-
-  complete() {
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    }
-    this.isStopped = true;
-    const { observers } = this;
-    const len = observers.length;
-    const copy = observers.slice();
-    for (let i = 0; i < len; i++) {
-      copy[i].complete();
-    }
-    this.observers.length = 0;
-  }
-
-  unsubscribe() {
-    this.isStopped = true;
-    this.closed = true;
-    this.observers = null;
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    } else {
-      return super._trySubscribe(subscriber);
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): Subscription {
-    if (this.closed) {
-      throw new ObjectUnsubscribedError();
-    } else if (this.hasError) {
-      subscriber.error(this.thrownError);
-      return Subscription.EMPTY;
-    } else if (this.isStopped) {
-      subscriber.complete();
-      return Subscription.EMPTY;
-    } else {
-      this.observers.push(subscriber);
-      return new SubjectSubscription(this, subscriber);
-    }
-  }
-
-  /**
-   * Creates a new Observable with this Subject as the source. You can do this
-   * to create customize Observer-side logic of the Subject and conceal it from
-   * code that uses the Observable.
-   * @return {Observable} Observable that the Subject casts to
-   */
-  asObservable(): Observable<T> {
-    const observable = new Observable<T>();
-    (<any>observable).source = this;
-    return observable;
-  }
-}
-
-/**
- * @class AnonymousSubject<T>
- */
-export class AnonymousSubject<T> extends Subject<T> {
-  constructor(protected destination?: Observer<T>, source?: Observable<T>) {
-    super();
-    this.source = source;
-  }
-
-  next(value: T) {
-    const { destination } = this;
-    if (destination && destination.next) {
-      destination.next(value);
-    }
-  }
-
-  error(err: any) {
-    const { destination } = this;
-    if (destination && destination.error) {
-      this.destination.error(err);
-    }
-  }
-
-  complete() {
-    const { destination } = this;
-    if (destination && destination.complete) {
-      this.destination.complete();
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): Subscription {
-    const { source } = this;
-    if (source) {
-      return this.source.subscribe(subscriber);
-    } else {
-      return Subscription.EMPTY;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/SubjectSubscription.ts b/node_modules/rxjs/src/internal/SubjectSubscription.ts
deleted file mode 100644
index 99af066..0000000
--- a/node_modules/rxjs/src/internal/SubjectSubscription.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Subject } from './Subject';
-import { Observer } from './types';
-import { Subscription } from './Subscription';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class SubjectSubscription<T> extends Subscription {
-  closed: boolean = false;
-
-  constructor(public subject: Subject<T>, public subscriber: Observer<T>) {
-    super();
-  }
-
-  unsubscribe() {
-    if (this.closed) {
-      return;
-    }
-
-    this.closed = true;
-
-    const subject = this.subject;
-    const observers = subject.observers;
-
-    this.subject = null;
-
-    if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
-      return;
-    }
-
-    const subscriberIndex = observers.indexOf(this.subscriber);
-
-    if (subscriberIndex !== -1) {
-      observers.splice(subscriberIndex, 1);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Subscriber.ts b/node_modules/rxjs/src/internal/Subscriber.ts
deleted file mode 100644
index 4e65584..0000000
--- a/node_modules/rxjs/src/internal/Subscriber.ts
+++ /dev/null
@@ -1,302 +0,0 @@
-import { isFunction } from './util/isFunction';
-import { empty as emptyObserver } from './Observer';
-import { Observer, PartialObserver, TeardownLogic } from './types';
-import { Subscription } from './Subscription';
-import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
-import { config } from './config';
-import { hostReportError } from './util/hostReportError';
-
-/**
- * Implements the {@link Observer} interface and extends the
- * {@link Subscription} class. While the {@link Observer} is the public API for
- * consuming the values of an {@link Observable}, all Observers get converted to
- * a Subscriber, in order to provide Subscription-like capabilities such as
- * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for
- * implementing operators, but it is rarely used as a public API.
- *
- * @class Subscriber<T>
- */
-export class Subscriber<T> extends Subscription implements Observer<T> {
-
-  [rxSubscriberSymbol]() { return this; }
-
-  /**
-   * A static factory for a Subscriber, given a (potentially partial) definition
-   * of an Observer.
-   * @param {function(x: ?T): void} [next] The `next` callback of an Observer.
-   * @param {function(e: ?any): void} [error] The `error` callback of an
-   * Observer.
-   * @param {function(): void} [complete] The `complete` callback of an
-   * Observer.
-   * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)
-   * Observer represented by the given arguments.
-   * @nocollapse
-   */
-  static create<T>(next?: (x?: T) => void,
-                   error?: (e?: any) => void,
-                   complete?: () => void): Subscriber<T> {
-    const subscriber = new Subscriber(next, error, complete);
-    subscriber.syncErrorThrowable = false;
-    return subscriber;
-  }
-
-  /** @internal */ syncErrorValue: any = null;
-  /** @internal */ syncErrorThrown: boolean = false;
-  /** @internal */ syncErrorThrowable: boolean = false;
-
-  protected isStopped: boolean = false;
-  protected destination: PartialObserver<any> | Subscriber<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)
-
-  /**
-   * @param {Observer|function(value: T): void} [destinationOrNext] A partially
-   * defined Observer or a `next` callback function.
-   * @param {function(e: ?any): void} [error] The `error` callback of an
-   * Observer.
-   * @param {function(): void} [complete] The `complete` callback of an
-   * Observer.
-   */
-  constructor(destinationOrNext?: PartialObserver<any> | ((value: T) => void),
-              error?: (e?: any) => void,
-              complete?: () => void) {
-    super();
-
-    switch (arguments.length) {
-      case 0:
-        this.destination = emptyObserver;
-        break;
-      case 1:
-        if (!destinationOrNext) {
-          this.destination = emptyObserver;
-          break;
-        }
-        if (typeof destinationOrNext === 'object') {
-          if (destinationOrNext instanceof Subscriber) {
-            this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
-            this.destination = destinationOrNext;
-            destinationOrNext.add(this);
-          } else {
-            this.syncErrorThrowable = true;
-            this.destination = new SafeSubscriber<T>(this, <PartialObserver<any>> destinationOrNext);
-          }
-          break;
-        }
-      default:
-        this.syncErrorThrowable = true;
-        this.destination = new SafeSubscriber<T>(this, <((value: T) => void)> destinationOrNext, error, complete);
-        break;
-    }
-  }
-
-  /**
-   * The {@link Observer} callback to receive notifications of type `next` from
-   * the Observable, with a value. The Observable may call this method 0 or more
-   * times.
-   * @param {T} [value] The `next` value.
-   * @return {void}
-   */
-  next(value?: T): void {
-    if (!this.isStopped) {
-      this._next(value);
-    }
-  }
-
-  /**
-   * The {@link Observer} callback to receive notifications of type `error` from
-   * the Observable, with an attached `Error`. Notifies the Observer that
-   * the Observable has experienced an error condition.
-   * @param {any} [err] The `error` exception.
-   * @return {void}
-   */
-  error(err?: any): void {
-    if (!this.isStopped) {
-      this.isStopped = true;
-      this._error(err);
-    }
-  }
-
-  /**
-   * The {@link Observer} callback to receive a valueless notification of type
-   * `complete` from the Observable. Notifies the Observer that the Observable
-   * has finished sending push-based notifications.
-   * @return {void}
-   */
-  complete(): void {
-    if (!this.isStopped) {
-      this.isStopped = true;
-      this._complete();
-    }
-  }
-
-  unsubscribe(): void {
-    if (this.closed) {
-      return;
-    }
-    this.isStopped = true;
-    super.unsubscribe();
-  }
-
-  protected _next(value: T): void {
-    this.destination.next(value);
-  }
-
-  protected _error(err: any): void {
-    this.destination.error(err);
-    this.unsubscribe();
-  }
-
-  protected _complete(): void {
-    this.destination.complete();
-    this.unsubscribe();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribeAndRecycle(): Subscriber<T> {
-    const {  _parentOrParents } = this;
-    this._parentOrParents = null;
-    this.unsubscribe();
-    this.closed = false;
-    this.isStopped = false;
-    this._parentOrParents = _parentOrParents;
-    return this;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class SafeSubscriber<T> extends Subscriber<T> {
-
-  private _context: any;
-
-  constructor(private _parentSubscriber: Subscriber<T>,
-              observerOrNext?: PartialObserver<T> | ((value: T) => void),
-              error?: (e?: any) => void,
-              complete?: () => void) {
-    super();
-
-    let next: ((value: T) => void);
-    let context: any = this;
-
-    if (isFunction(observerOrNext)) {
-      next = (<((value: T) => void)> observerOrNext);
-    } else if (observerOrNext) {
-      next = (<PartialObserver<T>> observerOrNext).next;
-      error = (<PartialObserver<T>> observerOrNext).error;
-      complete = (<PartialObserver<T>> observerOrNext).complete;
-      if (observerOrNext !== emptyObserver) {
-        context = Object.create(observerOrNext);
-        if (isFunction(context.unsubscribe)) {
-          this.add(<() => void> context.unsubscribe.bind(context));
-        }
-        context.unsubscribe = this.unsubscribe.bind(this);
-      }
-    }
-
-    this._context = context;
-    this._next = next;
-    this._error = error;
-    this._complete = complete;
-  }
-
-  next(value?: T): void {
-    if (!this.isStopped && this._next) {
-      const { _parentSubscriber } = this;
-      if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-        this.__tryOrUnsub(this._next, value);
-      } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
-        this.unsubscribe();
-      }
-    }
-  }
-
-  error(err?: any): void {
-    if (!this.isStopped) {
-      const { _parentSubscriber } = this;
-      const { useDeprecatedSynchronousErrorHandling } = config;
-      if (this._error) {
-        if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-          this.__tryOrUnsub(this._error, err);
-          this.unsubscribe();
-        } else {
-          this.__tryOrSetError(_parentSubscriber, this._error, err);
-          this.unsubscribe();
-        }
-      } else if (!_parentSubscriber.syncErrorThrowable) {
-        this.unsubscribe();
-        if (useDeprecatedSynchronousErrorHandling) {
-          throw err;
-        }
-        hostReportError(err);
-      } else {
-        if (useDeprecatedSynchronousErrorHandling) {
-          _parentSubscriber.syncErrorValue = err;
-          _parentSubscriber.syncErrorThrown = true;
-        } else {
-          hostReportError(err);
-        }
-        this.unsubscribe();
-      }
-    }
-  }
-
-  complete(): void {
-    if (!this.isStopped) {
-      const { _parentSubscriber } = this;
-      if (this._complete) {
-        const wrappedComplete = () => this._complete.call(this._context);
-
-        if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
-          this.__tryOrUnsub(wrappedComplete);
-          this.unsubscribe();
-        } else {
-          this.__tryOrSetError(_parentSubscriber, wrappedComplete);
-          this.unsubscribe();
-        }
-      } else {
-        this.unsubscribe();
-      }
-    }
-  }
-
-  private __tryOrUnsub(fn: Function, value?: any): void {
-    try {
-      fn.call(this._context, value);
-    } catch (err) {
-      this.unsubscribe();
-      if (config.useDeprecatedSynchronousErrorHandling) {
-        throw err;
-      } else {
-        hostReportError(err);
-      }
-    }
-  }
-
-  private __tryOrSetError(parent: Subscriber<T>, fn: Function, value?: any): boolean {
-    if (!config.useDeprecatedSynchronousErrorHandling) {
-      throw new Error('bad call');
-    }
-    try {
-      fn.call(this._context, value);
-    } catch (err) {
-      if (config.useDeprecatedSynchronousErrorHandling) {
-        parent.syncErrorValue = err;
-        parent.syncErrorThrown = true;
-        return true;
-      } else {
-        hostReportError(err);
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /** @internal This is an internal implementation detail, do not use. */
-  _unsubscribe(): void {
-    const { _parentSubscriber } = this;
-    this._context = null;
-    this._parentSubscriber = null;
-    _parentSubscriber.unsubscribe();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/Subscription.ts b/node_modules/rxjs/src/internal/Subscription.ts
deleted file mode 100644
index 1a07ffa..0000000
--- a/node_modules/rxjs/src/internal/Subscription.ts
+++ /dev/null
@@ -1,211 +0,0 @@
-import { isArray } from './util/isArray';
-import { isObject } from './util/isObject';
-import { isFunction } from './util/isFunction';
-import { UnsubscriptionError } from './util/UnsubscriptionError';
-import { SubscriptionLike, TeardownLogic } from './types';
-
-/**
- * Represents a disposable resource, such as the execution of an Observable. A
- * Subscription has one important method, `unsubscribe`, that takes no argument
- * and just disposes the resource held by the subscription.
- *
- * Additionally, subscriptions may be grouped together through the `add()`
- * method, which will attach a child Subscription to the current Subscription.
- * When a Subscription is unsubscribed, all its children (and its grandchildren)
- * will be unsubscribed as well.
- *
- * @class Subscription
- */
-export class Subscription implements SubscriptionLike {
-  /** @nocollapse */
-  public static EMPTY: Subscription = (function(empty: any) {
-    empty.closed = true;
-    return empty;
-  }(new Subscription()));
-
-  /**
-   * A flag to indicate whether this Subscription has already been unsubscribed.
-   * @type {boolean}
-   */
-  public closed: boolean = false;
-
-  /** @internal */
-  protected _parentOrParents: Subscription | Subscription[] = null;
-  /** @internal */
-  private _subscriptions: SubscriptionLike[] = null;
-
-  /**
-   * @param {function(): void} [unsubscribe] A function describing how to
-   * perform the disposal of resources when the `unsubscribe` method is called.
-   */
-  constructor(unsubscribe?: () => void) {
-    if (unsubscribe) {
-      (<any> this)._unsubscribe = unsubscribe;
-    }
-  }
-
-  /**
-   * Disposes the resources held by the subscription. May, for instance, cancel
-   * an ongoing Observable execution or cancel any other type of work that
-   * started when the Subscription was created.
-   * @return {void}
-   */
-  unsubscribe(): void {
-    let errors: any[];
-
-    if (this.closed) {
-      return;
-    }
-
-    let { _parentOrParents, _unsubscribe, _subscriptions } = (<any> this);
-
-    this.closed = true;
-    this._parentOrParents = null;
-    // null out _subscriptions first so any child subscriptions that attempt
-    // to remove themselves from this subscription will noop
-    this._subscriptions = null;
-
-    if (_parentOrParents instanceof Subscription) {
-      _parentOrParents.remove(this);
-    } else if (_parentOrParents !== null) {
-      for (let index = 0; index < _parentOrParents.length; ++index) {
-        const parent = _parentOrParents[index];
-        parent.remove(this);
-      }
-    }
-
-    if (isFunction(_unsubscribe)) {
-      try {
-        _unsubscribe.call(this);
-      } catch (e) {
-        errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];
-      }
-    }
-
-    if (isArray(_subscriptions)) {
-      let index = -1;
-      let len = _subscriptions.length;
-
-      while (++index < len) {
-        const sub = _subscriptions[index];
-        if (isObject(sub)) {
-          try {
-            sub.unsubscribe();
-          } catch (e) {
-            errors = errors || [];
-            if (e instanceof UnsubscriptionError) {
-              errors = errors.concat(flattenUnsubscriptionErrors(e.errors));
-            } else {
-              errors.push(e);
-            }
-          }
-        }
-      }
-    }
-
-    if (errors) {
-      throw new UnsubscriptionError(errors);
-    }
-  }
-
-  /**
-   * Adds a tear down to be called during the unsubscribe() of this
-   * Subscription. Can also be used to add a child subscription.
-   *
-   * If the tear down being added is a subscription that is already
-   * unsubscribed, is the same reference `add` is being called on, or is
-   * `Subscription.EMPTY`, it will not be added.
-   *
-   * If this subscription is already in an `closed` state, the passed
-   * tear down logic will be executed immediately.
-   *
-   * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.
-   *
-   * @param {TeardownLogic} teardown The additional logic to execute on
-   * teardown.
-   * @return {Subscription} Returns the Subscription used or created to be
-   * added to the inner subscriptions list. This Subscription can be used with
-   * `remove()` to remove the passed teardown logic from the inner subscriptions
-   * list.
-   */
-  add(teardown: TeardownLogic): Subscription {
-    let subscription = (<Subscription>teardown);
-
-    if (!(<any>teardown)) {
-      return Subscription.EMPTY;
-    }
-
-    switch (typeof teardown) {
-      case 'function':
-        subscription = new Subscription(<(() => void)>teardown);
-      case 'object':
-        if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {
-          // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.
-          return subscription;
-        } else if (this.closed) {
-          subscription.unsubscribe();
-          return subscription;
-        } else if (!(subscription instanceof Subscription)) {
-          const tmp = subscription;
-          subscription = new Subscription();
-          subscription._subscriptions = [tmp];
-        }
-        break;
-      default: {
-        throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
-      }
-    }
-
-    // Add `this` as parent of `subscription` if that's not already the case.
-    let { _parentOrParents } = subscription;
-    if (_parentOrParents === null) {
-      // If we don't have a parent, then set `subscription._parents` to
-      // the `this`, which is the common case that we optimize for.
-      subscription._parentOrParents = this;
-    } else if (_parentOrParents instanceof Subscription) {
-      if (_parentOrParents === this) {
-        // The `subscription` already has `this` as a parent.
-        return subscription;
-      }
-      // If there's already one parent, but not multiple, allocate an
-      // Array to store the rest of the parent Subscriptions.
-      subscription._parentOrParents = [_parentOrParents, this];
-    } else if (_parentOrParents.indexOf(this) === -1) {
-      // Only add `this` to the _parentOrParents list if it's not already there.
-      _parentOrParents.push(this);
-    } else {
-      // The `subscription` already has `this` as a parent.
-      return subscription;
-    }
-
-    // Optimize for the common case when adding the first subscription.
-    const subscriptions = this._subscriptions;
-    if (subscriptions === null) {
-      this._subscriptions = [subscription];
-    } else {
-      subscriptions.push(subscription);
-    }
-
-    return subscription;
-  }
-
-  /**
-   * Removes a Subscription from the internal list of subscriptions that will
-   * unsubscribe during the unsubscribe process of this Subscription.
-   * @param {Subscription} subscription The subscription to remove.
-   * @return {void}
-   */
-  remove(subscription: Subscription): void {
-    const subscriptions = this._subscriptions;
-    if (subscriptions) {
-      const subscriptionIndex = subscriptions.indexOf(subscription);
-      if (subscriptionIndex !== -1) {
-        subscriptions.splice(subscriptionIndex, 1);
-      }
-    }
-  }
-}
-
-function flattenUnsubscriptionErrors(errors: any[]) {
- return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);
-}
diff --git a/node_modules/rxjs/src/internal/config.ts b/node_modules/rxjs/src/internal/config.ts
deleted file mode 100644
index bb38008..0000000
--- a/node_modules/rxjs/src/internal/config.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-let _enable_super_gross_mode_that_will_cause_bad_things = false;
-
-/**
- * The global configuration object for RxJS, used to configure things
- * like what Promise contructor should used to create Promises
- */
-export const config = {
-  /**
-   * The promise constructor used by default for methods such as
-   * {@link toPromise} and {@link forEach}
-   */
-  Promise: undefined as PromiseConstructorLike,
-
-  /**
-   * If true, turns on synchronous error rethrowing, which is a deprecated behavior
-   * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe
-   * call in a try/catch block. It also enables producer interference, a nasty bug
-   * where a multicast can be broken for all observers by a downstream consumer with
-   * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME
-   * FOR MIGRATION REASONS.
-   */
-  set useDeprecatedSynchronousErrorHandling(value: boolean) {
-    if (value) {
-      const error = new Error();
-      console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
-    } else if (_enable_super_gross_mode_that_will_cause_bad_things) {
-      console.log('RxJS: Back to a better error behavior. Thank you. <3');
-    }
-    _enable_super_gross_mode_that_will_cause_bad_things = value;
-  },
-
-  get useDeprecatedSynchronousErrorHandling() {
-    return _enable_super_gross_mode_that_will_cause_bad_things;
-  },
-};
diff --git a/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts b/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts
deleted file mode 100644
index 4e7ffbf..0000000
--- a/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-import { Subject, SubjectSubscriber } from '../Subject';
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { TeardownLogic } from '../types';
-import { refCount as higherOrderRefCount } from '../operators/refCount';
-
-/**
- * @class ConnectableObservable<T>
- */
-export class ConnectableObservable<T> extends Observable<T> {
-
-  protected _subject: Subject<T>;
-  protected _refCount: number = 0;
-  protected _connection: Subscription;
-  /** @internal */
-  _isComplete = false;
-
-  constructor(public source: Observable<T>,
-              protected subjectFactory: () => Subject<T>) {
-    super();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>) {
-    return this.getSubject().subscribe(subscriber);
-  }
-
-  protected getSubject(): Subject<T> {
-    const subject = this._subject;
-    if (!subject || subject.isStopped) {
-      this._subject = this.subjectFactory();
-    }
-    return this._subject;
-  }
-
-  connect(): Subscription {
-    let connection = this._connection;
-    if (!connection) {
-      this._isComplete = false;
-      connection = this._connection = new Subscription();
-      connection.add(this.source
-        .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
-      if (connection.closed) {
-        this._connection = null;
-        connection = Subscription.EMPTY;
-      }
-    }
-    return connection;
-  }
-
-  refCount(): Observable<T> {
-    return higherOrderRefCount()(this) as Observable<T>;
-  }
-}
-
-export const connectableObservableDescriptor: PropertyDescriptorMap = (() => {
-  const connectableProto = <any>ConnectableObservable.prototype;
-  return {
-    operator: { value: null as null },
-    _refCount: { value: 0, writable: true },
-    _subject: { value: null as null, writable: true },
-    _connection: { value: null as null, writable: true },
-    _subscribe: { value: connectableProto._subscribe },
-    _isComplete: { value: connectableProto._isComplete, writable: true },
-    getSubject: { value: connectableProto.getSubject },
-    connect: { value: connectableProto.connect },
-    refCount: { value: connectableProto.refCount }
-  };
-})();
-
-class ConnectableSubscriber<T> extends SubjectSubscriber<T> {
-  constructor(destination: Subject<T>,
-              private connectable: ConnectableObservable<T>) {
-    super(destination);
-  }
-  protected _error(err: any): void {
-    this._unsubscribe();
-    super._error(err);
-  }
-  protected _complete(): void {
-    this.connectable._isComplete = true;
-    this._unsubscribe();
-    super._complete();
-  }
-  protected _unsubscribe() {
-    const connectable = <any>this.connectable;
-    if (connectable) {
-      this.connectable = null;
-      const connection = connectable._connection;
-      connectable._refCount = 0;
-      connectable._subject = null;
-      connectable._connection = null;
-      if (connection) {
-        connection.unsubscribe();
-      }
-    }
-  }
-}
-
-class RefCountOperator<T> implements Operator<T, T> {
-  constructor(private connectable: ConnectableObservable<T>) {
-  }
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-
-    const { connectable } = this;
-    (<any> connectable)._refCount++;
-
-    const refCounter = new RefCountSubscriber(subscriber, connectable);
-    const subscription = source.subscribe(refCounter);
-
-    if (!refCounter.closed) {
-      (<any> refCounter).connection = connectable.connect();
-    }
-
-    return subscription;
-  }
-}
-
-class RefCountSubscriber<T> extends Subscriber<T> {
-
-  private connection: Subscription;
-
-  constructor(destination: Subscriber<T>,
-              private connectable: ConnectableObservable<T>) {
-    super(destination);
-  }
-
-  protected _unsubscribe() {
-
-    const { connectable } = this;
-    if (!connectable) {
-      this.connection = null;
-      return;
-    }
-
-    this.connectable = null;
-    const refCount = (<any> connectable)._refCount;
-    if (refCount <= 0) {
-      this.connection = null;
-      return;
-    }
-
-    (<any> connectable)._refCount = refCount - 1;
-    if (refCount > 1) {
-      this.connection = null;
-      return;
-    }
-
-    ///
-    // Compare the local RefCountSubscriber's connection Subscription to the
-    // connection Subscription on the shared ConnectableObservable. In cases
-    // where the ConnectableObservable source synchronously emits values, and
-    // the RefCountSubscriber's downstream Observers synchronously unsubscribe,
-    // execution continues to here before the RefCountOperator has a chance to
-    // supply the RefCountSubscriber with the shared connection Subscription.
-    // For example:
-    // ```
-    // range(0, 10).pipe(
-    //   publish(),
-    //   refCount(),
-    //   take(5),
-    // ).subscribe();
-    // ```
-    // In order to account for this case, RefCountSubscriber should only dispose
-    // the ConnectableObservable's shared connection Subscription if the
-    // connection Subscription exists, *and* either:
-    //   a. RefCountSubscriber doesn't have a reference to the shared connection
-    //      Subscription yet, or,
-    //   b. RefCountSubscriber's connection Subscription reference is identical
-    //      to the shared connection Subscription
-    ///
-    const { connection } = this;
-    const sharedConnection = (<any> connectable)._connection;
-    this.connection = null;
-
-    if (sharedConnection && (!connection || sharedConnection === connection)) {
-      sharedConnection.unsubscribe();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts b/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts
deleted file mode 100644
index d66e3b1..0000000
--- a/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { SchedulerLike, SchedulerAction } from '../types';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { asap } from '../scheduler/asap';
-import { isNumeric } from '../util/isNumeric';
-
-export interface DispatchArg<T> {
-  source: Observable<T>;
-  subscriber: Subscriber<T>;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
-export class SubscribeOnObservable<T> extends Observable<T> {
-  /** @nocollapse */
-  static create<T>(source: Observable<T>, delay: number = 0, scheduler: SchedulerLike = asap): Observable<T> {
-    return new SubscribeOnObservable(source, delay, scheduler);
-  }
-
-  /** @nocollapse */
-  static dispatch<T>(this: SchedulerAction<T>, arg: DispatchArg<T>): Subscription {
-    const { source, subscriber } = arg;
-    return this.add(source.subscribe(subscriber));
-  }
-
-  constructor(public source: Observable<T>,
-              private delayTime: number = 0,
-              private scheduler: SchedulerLike = asap) {
-    super();
-    if (!isNumeric(delayTime) || delayTime < 0) {
-      this.delayTime = 0;
-    }
-    if (!scheduler || typeof scheduler.schedule !== 'function') {
-      this.scheduler = asap;
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>) {
-    const delay = this.delayTime;
-    const source = this.source;
-    const scheduler = this.scheduler;
-
-    return scheduler.schedule<DispatchArg<any>>(SubscribeOnObservable.dispatch, delay, {
-      source, subscriber
-    });
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/bindCallback.ts b/node_modules/rxjs/src/internal/observable/bindCallback.ts
deleted file mode 100644
index b48801d..0000000
--- a/node_modules/rxjs/src/internal/observable/bindCallback.ts
+++ /dev/null
@@ -1,290 +0,0 @@
-import { SchedulerLike, SchedulerAction } from '../types';
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { Subscriber } from '../Subscriber';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isArray } from '../util/isArray';
-import { isScheduler } from '../util/isScheduler';
-
-// tslint:disable:max-line-length
-/** @deprecated resultSelector is no longer supported, use a mapping function. */
-export function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
-
-export function bindCallback<R1, R2, R3, R4>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable<any[]>;
-export function bindCallback<R1, R2, R3>(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;
-export function bindCallback<R1, R2>(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;
-export function bindCallback<R1>(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;
-export function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable<void>;
-
-export function bindCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<any[]>;
-export function bindCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;
-export function bindCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;
-export function bindCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;
-export function bindCallback<A1>(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;
-
-export function bindCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<any[]>;
-export function bindCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;
-export function bindCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;
-export function bindCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;
-export function bindCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;
-
-export function bindCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<any[]>;
-export function bindCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;
-export function bindCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;
-export function bindCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;
-export function bindCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;
-
-export function bindCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<any[]>;
-export function bindCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;
-export function bindCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;
-export function bindCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;
-export function bindCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;
-
-export function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<any[]>;
-export function bindCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;
-export function bindCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;
-export function bindCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;
-export function bindCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>;
-
-export function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((result: R) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R>;
-export function bindCallback<A, R>(callbackFunc: (...args: Array<A | ((...results: R[]) => any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable<R[]>;
-
-export function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
-
-// tslint:enable:max-line-length
-
-/**
- * Converts a callback API to a function that returns an Observable.
- *
- * <span class="informal">Give it a function `f` of type `f(x, callback)` and
- * it will return a function `g` that when called as `g(x)` will output an
- * Observable.</span>
- *
- * `bindCallback` is not an operator because its input and output are not
- * Observables. The input is a function `func` with some parameters. The
- * last parameter must be a callback function that `func` calls when it is
- * done.
- *
- * The output of `bindCallback` is a function that takes the same parameters
- * as `func`, except the last one (the callback). When the output function
- * is called with arguments it will return an Observable. If function `func`
- * calls its callback with one argument, the Observable will emit that value.
- * If on the other hand the callback is called with multiple values the resulting
- * Observable will emit an array with said values as arguments.
- *
- * It is **very important** to remember that input function `func` is not called
- * when the output function is, but rather when the Observable returned by the output
- * function is subscribed. This means if `func` makes an AJAX request, that request
- * will be made every time someone subscribes to the resulting Observable, but not before.
- *
- * The last optional parameter - `scheduler` - can be used to control when the call
- * to `func` happens after someone subscribes to Observable, as well as when results
- * passed to callback will be emitted. By default, the subscription to an Observable calls `func`
- * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`,
- * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler
- * and call `subscribe` on the output Observable, all function calls that are currently executing
- * will end before `func` is invoked.
- *
- * By default, results passed to the callback are emitted immediately after `func` invokes the callback.
- * In particular, if the callback is called synchronously, then the subscription of the resulting Observable
- * will call the `next` function synchronously as well.  If you want to defer that call,
- * you may use {@link asyncScheduler} just as before.  This means that by using `Scheduler.async` you can
- * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo.
- *
- * Note that the Observable created by the output function will always emit a single value
- * and then complete immediately. If `func` calls the callback multiple times, values from subsequent
- * calls will not appear in the stream. If you need to listen for multiple calls,
- *  you probably want to use {@link fromEvent} or {@link fromEventPattern} instead.
- *
- * If `func` depends on some context (`this` property) and is not already bound, the context of `func`
- * will be the context that the output function has at call time. In particular, if `func`
- * is called as a method of some objec and if `func` is not already bound, in order to preserve the context
- * it is recommended that the context of the output function is set to that object as well.
- *
- * If the input function calls its callback in the "node style" (i.e. first argument to callback is
- * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback}
- * provides convenient error handling and probably is a better choice.
- * `bindCallback` will treat such functions the same as any other and error parameters
- * (whether passed or not) will always be interpreted as regular callback argument.
- *
- * ## Examples
- *
- * ### Convert jQuery's getJSON to an Observable API
- * ```ts
- * import { bindCallback } from 'rxjs';
- * import * as jQuery from 'jquery';
- *
- * // Suppose we have jQuery.getJSON('/my/url', callback)
- * const getJSONAsObservable = bindCallback(jQuery.getJSON);
- * const result = getJSONAsObservable('/my/url');
- * result.subscribe(x => console.log(x), e => console.error(e));
- * ```
- *
- * ### Receive an array of arguments passed to a callback
- * ```ts
- * import { bindCallback } from 'rxjs';
- *
- * const someFunction = (a, b, c) => {
- *   console.log(a); // 5
- *   console.log(b); // 'some string'
- *   console.log(c); // {someProperty: 'someValue'}
- * };
- *
- * const boundSomeFunction = bindCallback(someFunction);
- * boundSomeFunction().subscribe(values => {
- *   console.log(values) // [5, 'some string', {someProperty: 'someValue'}]
- * });
- * ```
- *
- * ### Compare behaviour with and without async Scheduler
- * ```ts
- * import { bindCallback } from 'rxjs';
- *
- * function iCallMyCallbackSynchronously(cb) {
- *   cb();
- * }
- *
- * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously);
- * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async);
- *
- * boundSyncFn().subscribe(() => console.log('I was sync!'));
- * boundAsyncFn().subscribe(() => console.log('I was async!'));
- * console.log('This happened...');
- *
- * // Logs:
- * // I was sync!
- * // This happened...
- * // I was async!
- * ```
- *
- * ### Use bindCallback on an object method
- * ```ts
- * import { bindCallback } from 'rxjs';
- *
- * const boundMethod = bindCallback(someObject.methodWithCallback);
- * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject
- * .subscribe(subscriber);
- * ```
- *
- * @see {@link bindNodeCallback}
- * @see {@link from}
- *
- * @param {function} func A function with a callback as the last parameter.
- * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the
- * callbacks.
- * @return {function(...params: *): Observable} A function which returns the
- * Observable that delivers the same values the callback would deliver.
- * @name bindCallback
- */
-export function bindCallback<T>(
-  callbackFunc: Function,
-  resultSelector?: Function|SchedulerLike,
-  scheduler?: SchedulerLike
-): (...args: any[]) => Observable<T> {
-  if (resultSelector) {
-    if (isScheduler(resultSelector)) {
-      scheduler = resultSelector;
-    } else {
-      // DEPRECATED PATH
-      return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe(
-        map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)),
-      );
-    }
-  }
-
-  return function (this: any, ...args: any[]): Observable<T> {
-    const context = this;
-    let subject: AsyncSubject<T>;
-    const params = {
-      context,
-      subject,
-      callbackFunc,
-      scheduler,
-    };
-    return new Observable<T>(subscriber => {
-      if (!scheduler) {
-        if (!subject) {
-          subject = new AsyncSubject<T>();
-          const handler = (...innerArgs: any[]) => {
-            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-            subject.complete();
-          };
-
-          try {
-            callbackFunc.apply(context, [...args, handler]);
-          } catch (err) {
-            if (canReportError(subject)) {
-              subject.error(err);
-            } else {
-              console.warn(err);
-            }
-          }
-        }
-        return subject.subscribe(subscriber);
-      } else {
-        const state: DispatchState<T> = {
-          args, subscriber, params,
-        };
-        return scheduler.schedule<DispatchState<T>>(dispatch, 0, state);
-      }
-    });
-  };
-}
-
-interface DispatchState<T> {
-  args: any[];
-  subscriber: Subscriber<T>;
-  params: ParamsContext<T>;
-}
-
-interface ParamsContext<T> {
-  callbackFunc: Function;
-  scheduler: SchedulerLike;
-  context: any;
-  subject: AsyncSubject<T>;
-}
-
-function dispatch<T>(this: SchedulerAction<DispatchState<T>>, state: DispatchState<T>) {
-  const self = this;
-  const { args, subscriber, params } = state;
-  const { callbackFunc, context, scheduler } = params;
-  let { subject } = params;
-  if (!subject) {
-    subject = params.subject = new AsyncSubject<T>();
-
-    const handler = (...innerArgs: any[]) => {
-      const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-      this.add(scheduler.schedule<NextState<T>>(dispatchNext, 0, { value, subject }));
-    };
-
-    try {
-      callbackFunc.apply(context, [...args, handler]);
-    } catch (err) {
-      subject.error(err);
-    }
-  }
-
-  this.add(subject.subscribe(subscriber));
-}
-
-interface NextState<T> {
-  subject: AsyncSubject<T>;
-  value: T;
-}
-
-function dispatchNext<T>(this: SchedulerAction<NextState<T>>, state: NextState<T>) {
-  const { value, subject } = state;
-  subject.next(value);
-  subject.complete();
-}
-
-interface ErrorState<T> {
-  subject: AsyncSubject<T>;
-  err: any;
-}
-
-function dispatchError<T>(this: SchedulerAction<ErrorState<T>>, state: ErrorState<T>) {
-  const { err, subject } = state;
-  subject.error(err);
-}
diff --git a/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts b/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts
deleted file mode 100644
index 605961a..0000000
--- a/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts
+++ /dev/null
@@ -1,278 +0,0 @@
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { Subscriber } from '../Subscriber';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { map } from '../operators/map';
-import { canReportError } from '../util/canReportError';
-import { isScheduler } from '../util/isScheduler';
-import { isArray } from '../util/isArray';
-
-/* tslint:disable:max-line-length */
-/** @deprecated resultSelector is deprecated, pipe to map instead */
-export function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any>;
-
-export function bindNodeCallback<R1, R2, R3, R4>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<R1, R2, R3>(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<R1, R2>(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>;
-export function bindNodeCallback<R1>(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable<R1>;
-export function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable<void>;
-
-export function bindNodeCallback<A1, R1, R2, R3, R4>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<A1, R1, R2, R3>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<A1, R1, R2>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>;
-export function bindNodeCallback<A1, R1>(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<R1>;
-export function bindNodeCallback<A1>(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<void>;
-
-export function bindNodeCallback<A1, A2, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<A1, A2, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<A1, A2, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>;
-export function bindNodeCallback<A1, A2, R1>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<R1>;
-export function bindNodeCallback<A1, A2>(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<void>;
-
-export function bindNodeCallback<A1, A2, A3, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<A1, A2, A3, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<A1, A2, A3, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>;
-export function bindNodeCallback<A1, A2, A3, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<R1>;
-export function bindNodeCallback<A1, A2, A3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<void>;
-
-export function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<A1, A2, A3, A4, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<A1, A2, A3, A4, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>;
-export function bindNodeCallback<A1, A2, A3, A4, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<R1>;
-export function bindNodeCallback<A1, A2, A3, A4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<void>;
-
-export function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3, R4>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-export function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2, R3>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>;
-export function bindNodeCallback<A1, A2, A3, A4, A5, R1, R2>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>;
-export function bindNodeCallback<A1, A2, A3, A4, A5, R1>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<R1>;
-export function bindNodeCallback<A1, A2, A3, A4, A5>(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<void>; /* tslint:enable:max-line-length */
-
-export function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable<any[]>;
-/**
- * Converts a Node.js-style callback API to a function that returns an
- * Observable.
- *
- * <span class="informal">It's just like {@link bindCallback}, but the
- * callback is expected to be of type `callback(error, result)`.</span>
- *
- * `bindNodeCallback` is not an operator because its input and output are not
- * Observables. The input is a function `func` with some parameters, but the
- * last parameter must be a callback function that `func` calls when it is
- * done. The callback function is expected to follow Node.js conventions,
- * where the first argument to the callback is an error object, signaling
- * whether call was successful. If that object is passed to callback, it means
- * something went wrong.
- *
- * The output of `bindNodeCallback` is a function that takes the same
- * parameters as `func`, except the last one (the callback). When the output
- * function is called with arguments, it will return an Observable.
- * If `func` calls its callback with error parameter present, Observable will
- * error with that value as well. If error parameter is not passed, Observable will emit
- * second parameter. If there are more parameters (third and so on),
- * Observable will emit an array with all arguments, except first error argument.
- *
- * Note that `func` will not be called at the same time output function is,
- * but rather whenever resulting Observable is subscribed. By default call to
- * `func` will happen synchronously after subscription, but that can be changed
- * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike}
- * can also control when values from callback will be emitted by Observable.
- * To find out more, check out documentation for {@link bindCallback}, where
- * {@link SchedulerLike} works exactly the same.
- *
- * As in {@link bindCallback}, context (`this` property) of input function will be set to context
- * of returned function, when it is called.
- *
- * After Observable emits value, it will complete immediately. This means
- * even if `func` calls callback again, values from second and consecutive
- * calls will never appear on the stream. If you need to handle functions
- * that call callbacks multiple times, check out {@link fromEvent} or
- * {@link fromEventPattern} instead.
- *
- * Note that `bindNodeCallback` can be used in non-Node.js environments as well.
- * "Node.js-style" callbacks are just a convention, so if you write for
- * browsers or any other environment and API you use implements that callback style,
- * `bindNodeCallback` can be safely used on that API functions as well.
- *
- * Remember that Error object passed to callback does not have to be an instance
- * of JavaScript built-in `Error` object. In fact, it does not even have to an object.
- * Error parameter of callback function is interpreted as "present", when value
- * of that parameter is truthy. It could be, for example, non-zero number, non-empty
- * string or boolean `true`. In all of these cases resulting Observable would error
- * with that value. This means usually regular style callbacks will fail very often when
- * `bindNodeCallback` is used. If your Observable errors much more often then you
- * would expect, check if callback really is called in Node.js-style and, if not,
- * switch to {@link bindCallback} instead.
- *
- * Note that even if error parameter is technically present in callback, but its value
- * is falsy, it still won't appear in array emitted by Observable.
- *
- * ## Examples
- * ###  Read a file from the filesystem and get the data as an Observable
- * ```ts
- * import * as fs from 'fs';
- * const readFileAsObservable = bindNodeCallback(fs.readFile);
- * const result = readFileAsObservable('./roadNames.txt', 'utf8');
- * result.subscribe(x => console.log(x), e => console.error(e));
- * ```
- *
- * ### Use on function calling callback with multiple arguments
- * ```ts
- * someFunction((err, a, b) => {
- *   console.log(err); // null
- *   console.log(a); // 5
- *   console.log(b); // "some string"
- * });
- * const boundSomeFunction = bindNodeCallback(someFunction);
- * boundSomeFunction()
- * .subscribe(value => {
- *   console.log(value); // [5, "some string"]
- * });
- * ```
- *
- * ### Use on function calling callback in regular style
- * ```ts
- * someFunction(a => {
- *   console.log(a); // 5
- * });
- * const boundSomeFunction = bindNodeCallback(someFunction);
- * boundSomeFunction()
- * .subscribe(
- *   value => {}             // never gets called
- *   err => console.log(err) // 5
- * );
- * ```
- *
- * @see {@link bindCallback}
- * @see {@link from}
- *
- * @param {function} func Function with a Node.js-style callback as the last parameter.
- * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the
- * callbacks.
- * @return {function(...params: *): Observable} A function which returns the
- * Observable that delivers the same values the Node.js callback would
- * deliver.
- * @name bindNodeCallback
- */
-export function bindNodeCallback<T>(
-  callbackFunc: Function,
-  resultSelector: Function|SchedulerLike,
-  scheduler?: SchedulerLike
-): (...args: any[]) => Observable<T> {
-
-  if (resultSelector) {
-    if (isScheduler(resultSelector)) {
-      scheduler = resultSelector;
-    } else {
-      // DEPRECATED PATH
-      return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(
-        map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))
-      );
-    }
-  }
-
-  return function(this: any, ...args: any[]): Observable<T> {
-    const params: ParamsState<T> = {
-      subject: undefined,
-      args,
-      callbackFunc,
-      scheduler,
-      context: this,
-    };
-    return new Observable<T>(subscriber => {
-      const { context } = params;
-      let { subject } = params;
-      if (!scheduler) {
-        if (!subject) {
-          subject = params.subject = new AsyncSubject<T>();
-          const handler = (...innerArgs: any[]) => {
-            const err = innerArgs.shift();
-
-            if (err) {
-              subject.error(err);
-              return;
-            }
-
-            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
-            subject.complete();
-          };
-
-          try {
-            callbackFunc.apply(context, [...args, handler]);
-          } catch (err) {
-            if (canReportError(subject)) {
-              subject.error(err);
-            } else {
-              console.warn(err);
-            }
-          }
-        }
-        return subject.subscribe(subscriber);
-      } else {
-        return scheduler.schedule<DispatchState<T>>(dispatch, 0, { params, subscriber, context });
-      }
-    });
-  };
-}
-
-interface DispatchState<T> {
-  subscriber: Subscriber<T>;
-  context: any;
-  params: ParamsState<T>;
-}
-
-interface ParamsState<T> {
-  callbackFunc: Function;
-  args: any[];
-  scheduler: SchedulerLike;
-  subject: AsyncSubject<T>;
-  context: any;
-}
-
-function dispatch<T>(this: SchedulerAction<DispatchState<T>>, state: DispatchState<T>) {
-  const { params, subscriber, context } = state;
-  const { callbackFunc, args, scheduler } = params;
-  let subject = params.subject;
-
-  if (!subject) {
-    subject = params.subject = new AsyncSubject<T>();
-
-    const handler = (...innerArgs: any[]) => {
-      const err = innerArgs.shift();
-      if (err) {
-        this.add(scheduler.schedule<DispatchErrorArg<T>>(dispatchError, 0, { err, subject }));
-      } else {
-        const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
-        this.add(scheduler.schedule<DispatchNextArg<T>>(dispatchNext, 0, { value, subject }));
-      }
-    };
-
-    try {
-      callbackFunc.apply(context, [...args, handler]);
-    } catch (err) {
-      this.add(scheduler.schedule<DispatchErrorArg<T>>(dispatchError, 0, { err, subject }));
-    }
-  }
-
-  this.add(subject.subscribe(subscriber));
-}
-
-interface DispatchNextArg<T> {
-  subject: AsyncSubject<T>;
-  value: T;
-}
-
-function dispatchNext<T>(arg: DispatchNextArg<T>) {
-  const { value, subject } = arg;
-  subject.next(value);
-  subject.complete();
-}
-
-interface DispatchErrorArg<T> {
-  subject: AsyncSubject<T>;
-  err: any;
-}
-
-function dispatchError<T>(arg: DispatchErrorArg<T>) {
-  const { err, subject } = arg;
-  subject.error(err);
-}
diff --git a/node_modules/rxjs/src/internal/observable/combineLatest.ts b/node_modules/rxjs/src/internal/observable/combineLatest.ts
deleted file mode 100644
index ce093c9..0000000
--- a/node_modules/rxjs/src/internal/observable/combineLatest.ts
+++ /dev/null
@@ -1,328 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-import { isScheduler  } from '../util/isScheduler';
-import { isArray  } from '../util/isArray';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { Operator } from '../Operator';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { fromArray } from './fromArray';
-
-const NONE = {};
-
-/* tslint:disable:max-line-length */
-
-// If called with a single array, it "auto-spreads" the array, with result selector
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, R>(sources: [O1], resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O extends ObservableInput<any>, R>(sources: O[], resultSelector: (...args: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;
-
-// standard call, but with a result selector
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R, scheduler?: SchedulerLike): Observable<R>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R, scheduler?: SchedulerLike): Observable<R>;
-
-// With a scheduler (deprecated)
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O extends ObservableInput<any>>(sources: O[], scheduler: SchedulerLike): Observable<ObservedValueOf<O>[]>;
-
-// Best case
-export function combineLatest<O1 extends ObservableInput<any>>(sources: [O1]): Observable<[ObservedValueOf<O1>]>;
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(sources: [O1, O2]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(sources: [O1, O2, O3]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-export function combineLatest<O extends ObservableInput<any>>(sources: O[]): Observable<ObservedValueOf<O>[]>;
-
-// Standard calls
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O extends ObservableInput<any>>(...observables: O[]): Observable<any[]>;
-
-/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */
-export function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function combineLatest<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R, scheduler?: SchedulerLike): Observable<R>;
-
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O extends ObservableInput<any>>(...observables: Array<O | SchedulerLike>): Observable<any[]>;
-
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike>): Observable<R>;
-
-/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */
-export function combineLatest<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R) | SchedulerLike>): Observable<R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Combines multiple Observables to create an Observable whose values are
- * calculated from the latest values of each of its input Observables.
- *
- * <span class="informal">Whenever any input Observable emits a value, it
- * computes a formula using the latest values from all the inputs, then emits
- * the output of that formula.</span>
- *
- * ![](combineLatest.png)
- *
- * `combineLatest` combines the values from all the Observables passed as
- * arguments. This is done by subscribing to each Observable in order and,
- * whenever any Observable emits, collecting an array of the most recent
- * values from each Observable. So if you pass `n` Observables to operator,
- * returned Observable will always emit an array of `n` values, in order
- * corresponding to order of passed Observables (value from the first Observable
- * on the first place and so on).
- *
- * Static version of `combineLatest` accepts either an array of Observables
- * or each Observable can be put directly as an argument. Note that array of
- * Observables is good choice, if you don't know beforehand how many Observables
- * you will combine. Passing empty array will result in Observable that
- * completes immediately.
- *
- * To ensure output array has always the same length, `combineLatest` will
- * actually wait for all input Observables to emit at least once,
- * before it starts emitting results. This means if some Observable emits
- * values before other Observables started emitting, all these values but the last
- * will be lost. On the other hand, if some Observable does not emit a value but
- * completes, resulting Observable will complete at the same moment without
- * emitting anything, since it will be now impossible to include value from
- * completed Observable in resulting array. Also, if some input Observable does
- * not emit any value and never completes, `combineLatest` will also never emit
- * and never complete, since, again, it will wait for all streams to emit some
- * value.
- *
- * If at least one Observable was passed to `combineLatest` and all passed Observables
- * emitted something, resulting Observable will complete when all combined
- * streams complete. So even if some Observable completes, result of
- * `combineLatest` will still emit values when other Observables do. In case
- * of completed Observable, its value from now on will always be the last
- * emitted value. On the other hand, if any Observable errors, `combineLatest`
- * will error immediately as well, and all other Observables will be unsubscribed.
- *
- * `combineLatest` accepts as optional parameter `project` function, which takes
- * as arguments all values that would normally be emitted by resulting Observable.
- * `project` can return any kind of value, which will be then emitted by Observable
- * instead of default array. Note that `project` does not take as argument that array
- * of values, but values themselves. That means default `project` can be imagined
- * as function that takes all its arguments and puts them into an array.
- *
- * ## Examples
- * ### Combine two timer Observables
- * ```ts
- * import { combineLatest, timer } from 'rxjs';
- *
- * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now
- * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now
- * const combinedTimers = combineLatest(firstTimer, secondTimer);
- * combinedTimers.subscribe(value => console.log(value));
- * // Logs
- * // [0, 0] after 0.5s
- * // [1, 0] after 1s
- * // [1, 1] after 1.5s
- * // [2, 1] after 2s
- * ```
- *
- * ### Combine an array of Observables
- * ```ts
- * import { combineLatest, of } from 'rxjs';
- * import { delay, starWith } from 'rxjs/operators';
- *
- * const observables = [1, 5, 10].map(
- *   n => of(n).pipe(
- *     delay(n * 1000),   // emit 0 and then emit n after n seconds
- *     startWith(0),
- *   )
- * );
- * const combined = combineLatest(observables);
- * combined.subscribe(value => console.log(value));
- * // Logs
- * // [0, 0, 0] immediately
- * // [1, 0, 0] after 1s
- * // [1, 5, 0] after 5s
- * // [1, 5, 10] after 10s
- * ```
- *
- *
- * ### Use project function to dynamically calculate the Body-Mass Index
- * ```ts
- * import { combineLatest, of } from 'rxjs';
- * import { map } from 'rxjs/operators';
- *
- * const weight = of(70, 72, 76, 79, 75);
- * const height = of(1.76, 1.77, 1.78);
- * const bmi = combineLatest(weight, height).pipe(
- *   map(([w, h]) => w / (h * h)),
- * );
- * bmi.subscribe(x => console.log('BMI is ' + x));
- *
- * // With output to console:
- * // BMI is 24.212293388429753
- * // BMI is 23.93948099205209
- * // BMI is 23.671253629592222
- * ```
- *
- * @see {@link combineAll}
- * @see {@link merge}
- * @see {@link withLatestFrom}
- *
- * @param {ObservableInput} observable1 An input Observable to combine with other Observables.
- * @param {ObservableInput} observable2 An input Observable to combine with other Observables.
- * More than one input Observables may be given as arguments
- * or an array of Observables may be given as the first argument.
- * @param {function} [project] An optional function to project the values from
- * the combined latest values into a new value on the output Observable.
- * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to
- * each input Observable.
- * @return {Observable} An Observable of projected values from the most recent
- * values from each input Observable, or an array of the most recent values from
- * each input Observable.
- */
-export function combineLatest<O extends ObservableInput<any>, R>(
-  ...observables: (O | ((...values: ObservedValueOf<O>[]) => R) | SchedulerLike)[]
-): Observable<R> {
-  let resultSelector: (...values: Array<any>) => R =  null;
-  let scheduler: SchedulerLike = null;
-
-  if (isScheduler(observables[observables.length - 1])) {
-    scheduler = observables.pop() as SchedulerLike;
-  }
-
-  if (typeof observables[observables.length - 1] === 'function') {
-    resultSelector = observables.pop() as (...values: Array<any>) => R;
-  }
-
-  // if the first and only other argument besides the resultSelector is an array
-  // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)`
-  if (observables.length === 1 && isArray(observables[0])) {
-    observables = observables[0] as any;
-  }
-
-  return fromArray(observables, scheduler).lift(new CombineLatestOperator<ObservedValueOf<O>, R>(resultSelector));
-}
-
-export class CombineLatestOperator<T, R> implements Operator<T, R> {
-  constructor(private resultSelector?: (...values: Array<any>) => R) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class CombineLatestSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private active: number = 0;
-  private values: any[] = [];
-  private observables: any[] = [];
-  private toRespond: number;
-
-  constructor(destination: Subscriber<R>, private resultSelector?: (...values: Array<any>) => R) {
-    super(destination);
-  }
-
-  protected _next(observable: any) {
-    this.values.push(NONE);
-    this.observables.push(observable);
-  }
-
-  protected _complete() {
-    const observables = this.observables;
-    const len = observables.length;
-    if (len === 0) {
-      this.destination.complete();
-    } else {
-      this.active = len;
-      this.toRespond = len;
-      for (let i = 0; i < len; i++) {
-        const observable = observables[i];
-        this.add(subscribeToResult(this, observable, observable, i));
-      }
-    }
-  }
-
-  notifyComplete(unused: Subscriber<R>): void {
-    if ((this.active -= 1) === 0) {
-      this.destination.complete();
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    const values = this.values;
-    const oldVal = values[outerIndex];
-    const toRespond = !this.toRespond
-      ? 0
-      : oldVal === NONE ? --this.toRespond : this.toRespond;
-    values[outerIndex] = innerValue;
-
-    if (toRespond === 0) {
-      if (this.resultSelector) {
-        this._tryResultSelector(values);
-      } else {
-        this.destination.next(values.slice());
-      }
-    }
-  }
-
-  private _tryResultSelector(values: any[]) {
-    let result: any;
-    try {
-      result = this.resultSelector.apply(this, values);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.next(result);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/concat.ts b/node_modules/rxjs/src/internal/observable/concat.ts
deleted file mode 100644
index 5949742..0000000
--- a/node_modules/rxjs/src/internal/observable/concat.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-import { isScheduler } from '../util/isScheduler';
-import { of } from './of';
-import { from } from './from';
-import { concatAll } from '../operators/concatAll';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>>(v1: O1, scheduler: SchedulerLike): Observable<ObservedValueOf<O1>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;
-
-export function concat<O1 extends ObservableInput<any>>(v1: O1): Observable<ObservedValueOf<O1>>;
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<ObservedValueOf<O1> | ObservedValueOf<O2>>;
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3>>;
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4>>;
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5>>;
-export function concat<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<ObservedValueOf<O1> | ObservedValueOf<O2> | ObservedValueOf<O3> | ObservedValueOf<O4> | ObservedValueOf<O5> | ObservedValueOf<O6>>;
-export function concat<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<O extends ObservableInput<any>>(...observables: (O | SchedulerLike)[]): Observable<ObservedValueOf<O>>;
-export function concat<R>(...observables: ObservableInput<any>[]): Observable<R>;
-/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */
-export function concat<R>(...observables: (ObservableInput<any> | SchedulerLike)[]): Observable<R>;
-/* tslint:enable:max-line-length */
-/**
- * Creates an output Observable which sequentially emits all values from given
- * Observable and then moves on to the next.
- *
- * <span class="informal">Concatenates multiple Observables together by
- * sequentially emitting their values, one Observable after the other.</span>
- *
- * ![](concat.png)
- *
- * `concat` joins multiple Observables together, by subscribing to them one at a time and
- * merging their results into the output Observable. You can pass either an array of
- * Observables, or put them directly as arguments. Passing an empty array will result
- * in Observable that completes immediately.
- *
- * `concat` will subscribe to first input Observable and emit all its values, without
- * changing or affecting them in any way. When that Observable completes, it will
- * subscribe to then next Observable passed and, again, emit its values. This will be
- * repeated, until the operator runs out of Observables. When last input Observable completes,
- * `concat` will complete as well. At any given moment only one Observable passed to operator
- * emits values. If you would like to emit values from passed Observables concurrently, check out
- * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,
- * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.
- *
- * Note that if some input Observable never completes, `concat` will also never complete
- * and Observables following the one that did not complete will never be subscribed. On the other
- * hand, if some Observable simply completes immediately after it is subscribed, it will be
- * invisible for `concat`, which will just move on to the next Observable.
- *
- * If any Observable in chain errors, instead of passing control to the next Observable,
- * `concat` will error immediately as well. Observables that would be subscribed after
- * the one that emitted error, never will.
- *
- * If you pass to `concat` the same Observable many times, its stream of values
- * will be "replayed" on every subscription, which means you can repeat given Observable
- * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,
- * you can always use {@link repeat}.
- *
- * ## Examples
- * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10
- * ```ts
- * import { concat, interval, range } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const timer = interval(1000).pipe(take(4));
- * const sequence = range(1, 10);
- * const result = concat(timer, sequence);
- * result.subscribe(x => console.log(x));
- *
- * // results in:
- * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10
- * ```
- *
- * ### Concatenate 3 Observables
- * ```ts
- * import { concat, interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const timer1 = interval(1000).pipe(take(10));
- * const timer2 = interval(2000).pipe(take(6));
- * const timer3 = interval(500).pipe(take(10));
- *
- * const result = concat(timer1, timer2, timer3);
- * result.subscribe(x => console.log(x));
- *
- * // results in the following:
- * // (Prints to console sequentially)
- * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9
- * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5
- * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9
- * ```
- *
- * ### Concatenate the same Observable to repeat it
- * ```ts
- * import { concat, interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const timer = interval(1000).pipe(take(2));
- *
- * concat(timer, timer) // concatenating the same Observable!
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('...and it is done!')
- * );
- *
- * // Logs:
- * // 0 after 1s
- * // 1 after 2s
- * // 0 after 3s
- * // 1 after 4s
- * // "...and it is done!" also after 4s
- * ```
- *
- * @see {@link concatAll}
- * @see {@link concatMap}
- * @see {@link concatMapTo}
- * @see {@link startWith}
- * @see {@link endWith}
- *
- * @param {ObservableInput} input1 An input Observable to concatenate with others.
- * @param {ObservableInput} input2 An input Observable to concatenate with others.
- * More than one input Observables may be given as argument.
- * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each
- * Observable subscription on.
- * @return {Observable} All values of each passed Observable merged into a
- * single Observable, in order, in serial fashion.
- * @static true
- * @name concat
- * @owner Observable
- */
-export function concat<O extends ObservableInput<any>, R>(...observables: Array<O | SchedulerLike>): Observable<ObservedValueOf<O> | R> {
-  return concatAll<R>()(of(...observables));
-}
diff --git a/node_modules/rxjs/src/internal/observable/defer.ts b/node_modules/rxjs/src/internal/observable/defer.ts
deleted file mode 100644
index df6c7aa..0000000
--- a/node_modules/rxjs/src/internal/observable/defer.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Observable } from '../Observable';
-import { SubscribableOrPromise, ObservedValueOf, ObservableInput } from '../types';
-import { from } from './from'; // lol
-import { empty } from './empty';
-
-/**
- * Creates an Observable that, on subscribe, calls an Observable factory to
- * make an Observable for each new Observer.
- *
- * <span class="informal">Creates the Observable lazily, that is, only when it
- * is subscribed.
- * </span>
- *
- * ![](defer.png)
- *
- * `defer` allows you to create the Observable only when the Observer
- * subscribes, and create a fresh Observable for each Observer. It waits until
- * an Observer subscribes to it, and then it generates an Observable,
- * typically with an Observable factory function. It does this afresh for each
- * subscriber, so although each subscriber may think it is subscribing to the
- * same Observable, in fact each subscriber gets its own individual
- * Observable.
- *
- * ## Example
- * ### Subscribe to either an Observable of clicks or an Observable of interval, at random
- * ```ts
- * import { defer, fromEvent, interval } from 'rxjs';
- *
- * const clicksOrInterval = defer(function () {
- *   return Math.random() > 0.5
- *     ? fromEvent(document, 'click')
- *     : interval(1000);
- * });
- * clicksOrInterval.subscribe(x => console.log(x));
- *
- * // Results in the following behavior:
- * // If the result of Math.random() is greater than 0.5 it will listen
- * // for clicks anywhere on the "document"; when document is clicked it
- * // will log a MouseEvent object to the console. If the result is less
- * // than 0.5 it will emit ascending numbers, one every second(1000ms).
- * ```
- *
- * @see {@link Observable}
- *
- * @param {function(): SubscribableOrPromise} observableFactory The Observable
- * factory function to invoke for each Observer that subscribes to the output
- * Observable. May also return a Promise, which will be converted on the fly
- * to an Observable.
- * @return {Observable} An Observable whose Observers' subscriptions trigger
- * an invocation of the given Observable factory function.
- * @static true
- * @name defer
- * @owner Observable
- */
-export function defer<R extends ObservableInput<any> | void>(observableFactory: () => R): Observable<ObservedValueOf<R>> {
-  return new Observable<ObservedValueOf<R>>(subscriber => {
-    let input: R | void;
-    try {
-      input = observableFactory();
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-    const source = input ? from(input as ObservableInput<ObservedValueOf<R>>) : empty();
-    return source.subscribe(subscriber);
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts b/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts
deleted file mode 100644
index d1f3f91..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts
+++ /dev/null
@@ -1,550 +0,0 @@
-import { root } from '../../util/root';
-import { Observable } from '../../Observable';
-import { Subscriber } from '../../Subscriber';
-import { TeardownLogic } from '../../types';
-import { map } from '../../operators/map';
-
-export interface AjaxRequest {
-  url?: string;
-  body?: any;
-  user?: string;
-  async?: boolean;
-  method?: string;
-  headers?: Object;
-  timeout?: number;
-  password?: string;
-  hasContent?: boolean;
-  crossDomain?: boolean;
-  withCredentials?: boolean;
-  createXHR?: () => XMLHttpRequest;
-  progressSubscriber?: Subscriber<any>;
-  responseType?: string;
-}
-
-function getCORSRequest(): XMLHttpRequest {
-  if (root.XMLHttpRequest) {
-    return new root.XMLHttpRequest();
-  } else if (!!root.XDomainRequest) {
-    return new root.XDomainRequest();
-  } else {
-    throw new Error('CORS is not supported by your browser');
-  }
-}
-
-function getXMLHttpRequest(): XMLHttpRequest {
-  if (root.XMLHttpRequest) {
-    return new root.XMLHttpRequest();
-  } else {
-    let progId: string;
-    try {
-      const progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-      for (let i = 0; i < 3; i++) {
-        try {
-          progId = progIds[i];
-          if (new root.ActiveXObject(progId)) {
-            break;
-          }
-        } catch (e) {
-          //suppress exceptions
-        }
-      }
-      return new root.ActiveXObject(progId);
-    } catch (e) {
-      throw new Error('XMLHttpRequest is not supported by your browser');
-    }
-  }
-}
-
-export interface AjaxCreationMethod {
-  (urlOrRequest: string | AjaxRequest): Observable<AjaxResponse>;
-  get(url: string, headers?: Object): Observable<AjaxResponse>;
-  post(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-  put(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-  patch(url: string, body?: any, headers?: Object): Observable<AjaxResponse>;
-  delete(url: string, headers?: Object): Observable<AjaxResponse>;
-  getJSON<T>(url: string, headers?: Object): Observable<T>;
-}
-
-export function ajaxGet(url: string, headers: Object = null) {
-  return new AjaxObservable<AjaxResponse>({ method: 'GET', url, headers });
-}
-
-export function ajaxPost(url: string, body?: any, headers?: Object): Observable<AjaxResponse> {
-  return new AjaxObservable<AjaxResponse>({ method: 'POST', url, body, headers });
-}
-
-export function ajaxDelete(url: string, headers?: Object): Observable<AjaxResponse> {
-  return new AjaxObservable<AjaxResponse>({ method: 'DELETE', url, headers });
-}
-
-export function ajaxPut(url: string, body?: any, headers?: Object): Observable<AjaxResponse> {
-  return new AjaxObservable<AjaxResponse>({ method: 'PUT', url, body, headers });
-}
-
-export function ajaxPatch(url: string, body?: any, headers?: Object): Observable<AjaxResponse> {
-  return new AjaxObservable<AjaxResponse>({ method: 'PATCH', url, body, headers });
-}
-
-const mapResponse = map((x: AjaxResponse, index: number) => x.response);
-
-export function ajaxGetJSON<T>(url: string, headers?: Object): Observable<T> {
-  return mapResponse(
-    new AjaxObservable<AjaxResponse>({
-      method: 'GET',
-      url,
-      responseType: 'json',
-      headers
-    })
-  );
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @extends {Ignored}
- * @hide true
- */
-export class AjaxObservable<T> extends Observable<T> {
-  /**
-   * Creates an observable for an Ajax request with either a request object with
-   * url, headers, etc or a string for a URL.
-   *
-   * ## Example
-   * ```ts
-   * import { ajax } from 'rxjs/ajax';
- *
-   * const source1 = ajax('/products');
-   * const source2 = ajax({ url: 'products', method: 'GET' });
-   * ```
-   *
-   * @param {string|Object} request Can be one of the following:
-   *   A string of the URL to make the Ajax call.
-   *   An object with the following properties
-   *   - url: URL of the request
-   *   - body: The body of the request
-   *   - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE
-   *   - async: Whether the request is async
-   *   - headers: Optional headers
-   *   - crossDomain: true if a cross domain request, else false
-   *   - createXHR: a function to override if you need to use an alternate
-   *   XMLHttpRequest implementation.
-   *   - resultSelector: a function to use to alter the output value type of
-   *   the Observable. Gets {@link AjaxResponse} as an argument.
-   * @return {Observable} An observable sequence containing the XMLHttpRequest.
-   * @static true
-   * @name ajax
-   * @owner Observable
-   * @nocollapse
-  */
-  static create: AjaxCreationMethod = (() => {
-    const create: any = (urlOrRequest: string | AjaxRequest) => {
-      return new AjaxObservable(urlOrRequest);
-    };
-
-    create.get = ajaxGet;
-    create.post = ajaxPost;
-    create.delete = ajaxDelete;
-    create.put = ajaxPut;
-    create.patch = ajaxPatch;
-    create.getJSON = ajaxGetJSON;
-
-    return <AjaxCreationMethod>create;
-  })();
-
-  private request: AjaxRequest;
-
-  constructor(urlOrRequest: string | AjaxRequest) {
-    super();
-
-    const request: AjaxRequest = {
-      async: true,
-      createXHR: function(this: AjaxRequest) {
-        return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();
-      },
-      crossDomain: true,
-      withCredentials: false,
-      headers: {},
-      method: 'GET',
-      responseType: 'json',
-      timeout: 0
-    };
-
-    if (typeof urlOrRequest === 'string') {
-      request.url = urlOrRequest;
-    } else {
-      for (const prop in urlOrRequest) {
-        if (urlOrRequest.hasOwnProperty(prop)) {
-          request[prop] = urlOrRequest[prop];
-        }
-      }
-    }
-
-    this.request = request;
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): TeardownLogic {
-    return new AjaxSubscriber(subscriber, this.request);
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class AjaxSubscriber<T> extends Subscriber<Event> {
-  private xhr: XMLHttpRequest;
-  private done: boolean = false;
-
-  constructor(destination: Subscriber<T>, public request: AjaxRequest) {
-    super(destination);
-
-    const headers = request.headers = request.headers || {};
-
-    // force CORS if requested
-    if (!request.crossDomain && !this.getHeader(headers, 'X-Requested-With')) {
-      headers['X-Requested-With'] = 'XMLHttpRequest';
-    }
-
-    // ensure content type is set
-    let contentTypeHeader = this.getHeader(headers, 'Content-Type');
-    if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {
-      headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
-    }
-
-    // properly serialize body
-    request.body = this.serializeBody(request.body, this.getHeader(request.headers, 'Content-Type'));
-
-    this.send();
-  }
-
-  next(e: Event): void {
-    this.done = true;
-    const { xhr, request, destination } = this;
-    let result;
-    try {
-      result = new AjaxResponse(e, xhr, request);
-    } catch (err) {
-      return destination.error(err);
-    }
-    destination.next(result);
-  }
-
-  private send(): void {
-    const {
-      request,
-      request: { user, method, url, async, password, headers, body }
-    } = this;
-    try {
-      const xhr = this.xhr = request.createXHR();
-
-      // set up the events before open XHR
-      // https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
-      // You need to add the event listeners before calling open() on the request.
-      // Otherwise the progress events will not fire.
-      this.setupEvents(xhr, request);
-      // open XHR
-      if (user) {
-        xhr.open(method, url, async, user, password);
-      } else {
-        xhr.open(method, url, async);
-      }
-
-      // timeout, responseType and withCredentials can be set once the XHR is open
-      if (async) {
-        xhr.timeout = request.timeout;
-        xhr.responseType = request.responseType as any;
-      }
-
-      if ('withCredentials' in xhr) {
-        xhr.withCredentials = !!request.withCredentials;
-      }
-
-      // set headers
-      this.setHeaders(xhr, headers);
-
-      // finally send the request
-      if (body) {
-        xhr.send(body);
-      } else {
-        xhr.send();
-      }
-    } catch (err) {
-      this.error(err);
-    }
-  }
-
-  private serializeBody(body: any, contentType?: string) {
-    if (!body || typeof body === 'string') {
-      return body;
-    } else if (root.FormData && body instanceof root.FormData) {
-      return body;
-    }
-
-    if (contentType) {
-      const splitIndex = contentType.indexOf(';');
-      if (splitIndex !== -1) {
-        contentType = contentType.substring(0, splitIndex);
-      }
-    }
-
-    switch (contentType) {
-      case 'application/x-www-form-urlencoded':
-        return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&');
-      case 'application/json':
-        return JSON.stringify(body);
-      default:
-        return body;
-    }
-  }
-
-  private setHeaders(xhr: XMLHttpRequest, headers: Object) {
-    for (let key in headers) {
-      if (headers.hasOwnProperty(key)) {
-        xhr.setRequestHeader(key, headers[key]);
-      }
-    }
-  }
-
-  private getHeader(headers: {}, headerName: string): any {
-    for (let key in headers) {
-      if (key.toLowerCase() === headerName.toLowerCase()) {
-        return headers[key];
-      }
-    }
-
-    return undefined;
-  }
-
-  private setupEvents(xhr: XMLHttpRequest, request: AjaxRequest) {
-    const progressSubscriber = request.progressSubscriber;
-
-    function xhrTimeout(this: XMLHttpRequest, e: ProgressEvent): void {
-      const {subscriber, progressSubscriber, request } = (<any>xhrTimeout);
-      if (progressSubscriber) {
-        progressSubscriber.error(e);
-      }
-      let error;
-      try {
-        error = new AjaxTimeoutError(this, request); // TODO: Make betterer.
-      } catch (err) {
-        error = err;
-      }
-      subscriber.error(error);
-    }
-    xhr.ontimeout = xhrTimeout;
-    (<any>xhrTimeout).request = request;
-    (<any>xhrTimeout).subscriber = this;
-    (<any>xhrTimeout).progressSubscriber = progressSubscriber;
-    if (xhr.upload && 'withCredentials' in xhr) {
-      if (progressSubscriber) {
-        let xhrProgress: (e: ProgressEvent) => void;
-        xhrProgress = function(e: ProgressEvent) {
-          const { progressSubscriber } = (<any>xhrProgress);
-          progressSubscriber.next(e);
-        };
-        if (root.XDomainRequest) {
-          xhr.onprogress = xhrProgress;
-        } else {
-          xhr.upload.onprogress = xhrProgress;
-        }
-        (<any>xhrProgress).progressSubscriber = progressSubscriber;
-      }
-      let xhrError: (e: any) => void;
-      xhrError = function(this: XMLHttpRequest, e: ErrorEvent) {
-        const { progressSubscriber, subscriber, request } = (<any>xhrError);
-        if (progressSubscriber) {
-          progressSubscriber.error(e);
-        }
-        let error;
-        try {
-          error = new AjaxError('ajax error', this, request);
-        } catch (err) {
-          error = err;
-        }
-        subscriber.error(error);
-      };
-      xhr.onerror = xhrError;
-      (<any>xhrError).request = request;
-      (<any>xhrError).subscriber = this;
-      (<any>xhrError).progressSubscriber = progressSubscriber;
-    }
-
-    function xhrReadyStateChange(this: XMLHttpRequest, e: Event) {
-      return;
-    }
-    xhr.onreadystatechange = xhrReadyStateChange;
-    (<any>xhrReadyStateChange).subscriber = this;
-    (<any>xhrReadyStateChange).progressSubscriber = progressSubscriber;
-    (<any>xhrReadyStateChange).request = request;
-
-    function xhrLoad(this: XMLHttpRequest, e: Event) {
-      const { subscriber, progressSubscriber, request } = (<any>xhrLoad);
-      if (this.readyState === 4) {
-        // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)
-        let status: number = this.status === 1223 ? 204 : this.status;
-        let response: any = (this.responseType === 'text' ?  (
-          this.response || this.responseText) : this.response);
-
-        // fix status code when it is 0 (0 status is undocumented).
-        // Occurs when accessing file resources or on Android 4.1 stock browser
-        // while retrieving files from application cache.
-        if (status === 0) {
-          status = response ? 200 : 0;
-        }
-
-        // 4xx and 5xx should error (https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)
-        if (status < 400) {
-          if (progressSubscriber) {
-            progressSubscriber.complete();
-          }
-          subscriber.next(e);
-          subscriber.complete();
-        } else {
-          if (progressSubscriber) {
-            progressSubscriber.error(e);
-          }
-          let error;
-          try {
-            error = new AjaxError('ajax error ' + status, this, request);
-          } catch (err) {
-            error = err;
-          }
-          subscriber.error(error);
-        }
-      }
-    }
-    xhr.onload = xhrLoad;
-    (<any>xhrLoad).subscriber = this;
-    (<any>xhrLoad).progressSubscriber = progressSubscriber;
-    (<any>xhrLoad).request = request;
-  }
-
-  unsubscribe() {
-    const { done, xhr } = this;
-    if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {
-      xhr.abort();
-    }
-    super.unsubscribe();
-  }
-}
-
-/**
- * A normalized AJAX response.
- *
- * @see {@link ajax}
- *
- * @class AjaxResponse
- */
-export class AjaxResponse {
-  /** @type {number} The HTTP status code */
-  status: number;
-
-  /** @type {string|ArrayBuffer|Document|object|any} The response data */
-  response: any;
-
-  /** @type {string} The raw responseText */
-  responseText: string;
-
-  /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */
-  responseType: string;
-
-  constructor(public originalEvent: Event, public xhr: XMLHttpRequest, public request: AjaxRequest) {
-    this.status = xhr.status;
-    this.responseType = xhr.responseType || request.responseType;
-    this.response = parseXhrResponse(this.responseType, xhr);
-  }
-}
-
-export type AjaxErrorNames = 'AjaxError' | 'AjaxTimeoutError';
-
-/**
- * A normalized AJAX error.
- *
- * @see {@link ajax}
- *
- * @class AjaxError
- */
-export interface AjaxError extends Error {
-  /** @type {XMLHttpRequest} The XHR instance associated with the error */
-  xhr: XMLHttpRequest;
-
-  /** @type {AjaxRequest} The AjaxRequest associated with the error */
-  request: AjaxRequest;
-
-  /** @type {number} The HTTP status code */
-  status: number;
-
-  /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */
-  responseType: string;
-
-  /** @type {string|ArrayBuffer|Document|object|any} The response data */
-  response: any;
-}
-
-export interface AjaxErrorCtor {
-  new(message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError;
-}
-
-const AjaxErrorImpl = (() => {
-  function AjaxErrorImpl(this: any, message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError {
-    Error.call(this);
-    this.message = message;
-    this.name = 'AjaxError';
-    this.xhr = xhr;
-    this.request = request;
-    this.status = xhr.status;
-    this.responseType = xhr.responseType || request.responseType;
-    this.response = parseXhrResponse(this.responseType, xhr);
-    return this;
-  }
-  AjaxErrorImpl.prototype = Object.create(Error.prototype);
-  return AjaxErrorImpl;
-})();
-
-export const AjaxError: AjaxErrorCtor = AjaxErrorImpl as any;
-
-function parseJson(xhr: XMLHttpRequest) {
-  // HACK(benlesh): TypeScript shennanigans
-  // tslint:disable-next-line:no-any XMLHttpRequest is defined to always have 'response' inferring xhr as never for the else clause.
-  if ('response' in (xhr as any)) {
-    //IE does not support json as responseType, parse it internally
-    return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');
-  } else {
-    return JSON.parse((xhr as any).responseText || 'null');
-  }
-}
-
-function parseXhrResponse(responseType: string, xhr: XMLHttpRequest) {
-  switch (responseType) {
-    case 'json':
-        return parseJson(xhr);
-      case 'xml':
-        return xhr.responseXML;
-      case 'text':
-      default:
-          // HACK(benlesh): TypeScript shennanigans
-          // tslint:disable-next-line:no-any XMLHttpRequest is defined to always have 'response' inferring xhr as never for the else sub-expression.
-          return  ('response' in (xhr as any)) ? xhr.response : xhr.responseText;
-  }
-}
-
-export interface AjaxTimeoutError extends AjaxError {
-}
-
-export interface AjaxTimeoutErrorCtor {
-  new(xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError;
-}
-
-function AjaxTimeoutErrorImpl(this: any, xhr: XMLHttpRequest, request: AjaxRequest) {
-  AjaxError.call(this, 'ajax timeout', xhr, request);
-  this.name = 'AjaxTimeoutError';
-  return this;
-}
-
-/**
- * @see {@link ajax}
- *
- * @class AjaxTimeoutError
- */
-export const AjaxTimeoutError: AjaxTimeoutErrorCtor = AjaxTimeoutErrorImpl as any;
diff --git a/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts b/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts
deleted file mode 100644
index 6fe7e81..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { Subscriber } from '../../Subscriber';
-import { AjaxResponse } from './AjaxObservable';
-
-/**
- * @see {@link ajax}
- *
- * @interface
- * @name AjaxRequest
- * @noimport true
- */
-export class AjaxRequestDoc {
-  /**
-   * @type {string}
-   */
-  url: string = '';
-  /**
-   * @type {number}
-   */
-  body: any = 0;
-  /**
-   * @type {string}
-   */
-  user: string = '';
-  /**
-   * @type {boolean}
-   */
-  async: boolean = false;
-  /**
-   * @type {string}
-   */
-  method: string = '';
-  /**
-   * @type {Object}
-   */
-  headers: Object = null;
-  /**
-   * @type {number}
-   */
-  timeout: number = 0;
-  /**
-   * @type {string}
-   */
-  password: string = '';
-  /**
-   * @type {boolean}
-   */
-  hasContent: boolean = false;
-  /**
-   * @type {boolean}
-   */
-  crossDomain: boolean = false;
-  /**
-   * @type {boolean}
-   */
-  withCredentials: boolean = false;
-  /**
-   * @return {XMLHttpRequest}
-   */
-  createXHR(): XMLHttpRequest {
-    return null;
-  }
-  /**
-   * @type {Subscriber}
-   */
-  progressSubscriber: Subscriber<any> = null;
-  /**
-   * @param {AjaxResponse} response
-   * @return {T}
-   */
-  resultSelector<T>(response: AjaxResponse): T {
-    return null;
-  }
-  /**
-   * @type {string}
-   */
-  responseType: string = '';
-}
diff --git a/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts b/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts
deleted file mode 100644
index 0700382..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts
+++ /dev/null
@@ -1,387 +0,0 @@
-import { Subject, AnonymousSubject } from '../../Subject';
-import { Subscriber } from '../../Subscriber';
-import { Observable } from '../../Observable';
-import { Subscription } from '../../Subscription';
-import { Operator } from '../../Operator';
-import { ReplaySubject } from '../../ReplaySubject';
-import { Observer, NextObserver } from '../../types';
-
-/**
- * WebSocketSubjectConfig is a plain Object that allows us to make our
- * webSocket configurable.
- *
- * <span class="informal">Provides flexibility to {@link webSocket}</span>
- *
- * It defines a set of properties to provide custom behavior in specific
- * moments of the socket's lifecycle. When the connection opens we can
- * use `openObserver`, when the connection is closed `closeObserver`, if we
- * are interested in listening for data comming from server: `deserializer`,
- * which allows us to customize the deserialization strategy of data before passing it
- * to the socket client. By default `deserializer` is going to apply `JSON.parse` to each message comming
- * from the Server.
- *
- * ## Example
- * **deserializer**, the default for this property is `JSON.parse` but since there are just two options
- * for incomming data, either be text or binarydata. We can apply a custom deserialization strategy
- * or just simply skip the default behaviour.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- * //Apply any transformation of your choice.
- *     deserializer: ({data}) => data
- * });
- *
- * wsSubject.subscribe(console.log);
- *
- * // Let's suppose we have this on the Server: ws.send("This is a msg from the server")
- * //output
- * //
- * // This is a msg from the server
- * ```
- *
- * **serializer** allows us tom apply custom serialization strategy but for the outgoing messages
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- * //Apply any transformation of your choice.
- *     serializer: msg => JSON.stringify({channel: "webDevelopment", msg: msg})
- * });
- *
- * wsSubject.subscribe(() => subject.next("msg to the server"));
- *
- * // Let's suppose we have this on the Server: ws.send("This is a msg from the server")
- * //output
- * //
- * // {"channel":"webDevelopment","msg":"msg to the server"}
- * ```
- *
- * **closeObserver** allows us to set a custom error when an error raise up.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- *     closeObserver: {
-        next(closeEvent) {
-            const customError = { code: 6666, reason: "Custom evil reason" }
-            console.log(`code: ${customError.code}, reason: ${customError.reason}`);
-        }
-    }
- * });
- *
- * //output
- * // code: 6666, reason: Custom evil reason
- * ```
- *
- * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the
- * webSocket or sending notification that the connection was successful, this is when
- * openObserver is usefull for.
- * ```ts
- * import { webSocket } from 'rxjs/webSocket';
- *
- * const wsSubject = webSocket({
- *     url: 'ws://localhost:8081',
- *     openObserver: {
- *         next: () => {
- *             console.log('connetion ok');
- *         }
- *     },
- * });
- *
- * //output
- * // connetion ok`
- * ```
- * */
-
-export interface WebSocketSubjectConfig<T> {
-  /** The url of the socket server to connect to */
-  url: string;
-  /** The protocol to use to connect */
-  protocol?: string | Array<string>;
-  /** @deprecated use {@link deserializer} */
-  resultSelector?: (e: MessageEvent) => T;
-  /**
-   * A serializer used to create messages from passed values before the
-   * messages are sent to the server. Defaults to JSON.stringify.
-   */
-  serializer?: (value: T) => WebSocketMessage;
-  /**
-   * A deserializer used for messages arriving on the socket from the
-   * server. Defaults to JSON.parse.
-   */
-  deserializer?: (e: MessageEvent) => T;
-  /**
-   * An Observer that watches when open events occur on the underlying web socket.
-   */
-  openObserver?: NextObserver<Event>;
-  /**
-   * An Observer than watches when close events occur on the underlying webSocket
-   */
-  closeObserver?: NextObserver<CloseEvent>;
-  /**
-   * An Observer that watches when a close is about to occur due to
-   * unsubscription.
-   */
-  closingObserver?: NextObserver<void>;
-  /**
-   * A WebSocket constructor to use. This is useful for situations like using a
-   * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket
-   * for testing purposes
-   */
-  WebSocketCtor?: { new(url: string, protocols?: string|string[]): WebSocket };
-  /** Sets the `binaryType` property of the underlying WebSocket. */
-  binaryType?: 'blob' | 'arraybuffer';
-}
-
-const DEFAULT_WEBSOCKET_CONFIG: WebSocketSubjectConfig<any> = {
-  url: '',
-  deserializer: (e: MessageEvent) => JSON.parse(e.data),
-  serializer: (value: any) => JSON.stringify(value),
-};
-
-const WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT =
-  'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
-
-export type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView;
-
-export class WebSocketSubject<T> extends AnonymousSubject<T> {
-
-  private _config: WebSocketSubjectConfig<T>;
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _output: Subject<T>;
-
-  private _socket: WebSocket;
-
-  constructor(urlConfigOrSource: string | WebSocketSubjectConfig<T> | Observable<T>, destination?: Observer<T>) {
-    super();
-    if (urlConfigOrSource instanceof Observable) {
-      this.destination = destination;
-      this.source = urlConfigOrSource as Observable<T>;
-    } else {
-      const config = this._config = { ...DEFAULT_WEBSOCKET_CONFIG };
-      this._output = new Subject<T>();
-      if (typeof urlConfigOrSource === 'string') {
-        config.url = urlConfigOrSource;
-      } else {
-        for (let key in urlConfigOrSource) {
-          if (urlConfigOrSource.hasOwnProperty(key)) {
-            config[key] = urlConfigOrSource[key];
-          }
-        }
-      }
-
-      if (!config.WebSocketCtor && WebSocket) {
-        config.WebSocketCtor = WebSocket;
-      } else if (!config.WebSocketCtor) {
-        throw new Error('no WebSocket constructor can be found');
-      }
-      this.destination = new ReplaySubject();
-    }
-  }
-
-  lift<R>(operator: Operator<T, R>): WebSocketSubject<R> {
-    const sock = new WebSocketSubject<R>(this._config as WebSocketSubjectConfig<any>, <any> this.destination);
-    sock.operator = operator;
-    sock.source = this;
-    return sock;
-  }
-
-  private _resetState() {
-    this._socket = null;
-    if (!this.source) {
-      this.destination = new ReplaySubject();
-    }
-    this._output = new Subject<T>();
-  }
-
-  /**
-   * Creates an {@link Observable}, that when subscribed to, sends a message,
-   * defined by the `subMsg` function, to the server over the socket to begin a
-   * subscription to data over that socket. Once data arrives, the
-   * `messageFilter` argument will be used to select the appropriate data for
-   * the resulting Observable. When teardown occurs, either due to
-   * unsubscription, completion or error, a message defined by the `unsubMsg`
-   * argument will be send to the server over the WebSocketSubject.
-   *
-   * @param subMsg A function to generate the subscription message to be sent to
-   * the server. This will still be processed by the serializer in the
-   * WebSocketSubject's config. (Which defaults to JSON serialization)
-   * @param unsubMsg A function to generate the unsubscription message to be
-   * sent to the server at teardown. This will still be processed by the
-   * serializer in the WebSocketSubject's config.
-   * @param messageFilter A predicate for selecting the appropriate messages
-   * from the server for the output stream.
-   */
-  multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean) {
-    const self = this;
-    return new Observable((observer: Observer<any>) => {
-      try {
-        self.next(subMsg());
-      } catch (err) {
-        observer.error(err);
-      }
-
-      const subscription = self.subscribe(x => {
-        try {
-          if (messageFilter(x)) {
-            observer.next(x);
-          }
-        } catch (err) {
-          observer.error(err);
-        }
-      },
-        err => observer.error(err),
-        () => observer.complete());
-
-      return () => {
-        try {
-          self.next(unsubMsg());
-        } catch (err) {
-          observer.error(err);
-        }
-        subscription.unsubscribe();
-      };
-    });
-  }
-
-  private _connectSocket() {
-    const { WebSocketCtor, protocol, url, binaryType } = this._config;
-    const observer = this._output;
-
-    let socket: WebSocket = null;
-    try {
-      socket = protocol ?
-        new WebSocketCtor(url, protocol) :
-        new WebSocketCtor(url);
-      this._socket = socket;
-      if (binaryType) {
-        this._socket.binaryType = binaryType;
-      }
-    } catch (e) {
-      observer.error(e);
-      return;
-    }
-
-    const subscription = new Subscription(() => {
-      this._socket = null;
-      if (socket && socket.readyState === 1) {
-        socket.close();
-      }
-    });
-
-    socket.onopen = (e: Event) => {
-      const { _socket } = this;
-      if (!_socket) {
-        socket.close();
-        this._resetState();
-        return;
-      }
-      const { openObserver } = this._config;
-      if (openObserver) {
-        openObserver.next(e);
-      }
-
-      const queue = this.destination;
-
-      this.destination = Subscriber.create<T>(
-        (x) => {
-          if (socket.readyState === 1) {
-            try {
-              const { serializer } = this._config;
-              socket.send(serializer(x));
-              } catch (e) {
-              this.destination.error(e);
-            }
-          }
-        },
-        (e) => {
-          const { closingObserver } = this._config;
-          if (closingObserver) {
-            closingObserver.next(undefined);
-          }
-          if (e && e.code) {
-            socket.close(e.code, e.reason);
-          } else {
-            observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
-          }
-          this._resetState();
-        },
-        () => {
-          const { closingObserver } = this._config;
-          if (closingObserver) {
-            closingObserver.next(undefined);
-          }
-          socket.close();
-          this._resetState();
-        }
-      ) as Subscriber<any>;
-
-      if (queue && queue instanceof ReplaySubject) {
-        subscription.add((<ReplaySubject<T>>queue).subscribe(this.destination));
-      }
-    };
-
-    socket.onerror = (e: Event) => {
-      this._resetState();
-      observer.error(e);
-    };
-
-    socket.onclose = (e: CloseEvent) => {
-      this._resetState();
-      const { closeObserver } = this._config;
-      if (closeObserver) {
-        closeObserver.next(e);
-      }
-      if (e.wasClean) {
-        observer.complete();
-      } else {
-        observer.error(e);
-      }
-    };
-
-    socket.onmessage = (e: MessageEvent) => {
-      try {
-        const { deserializer } = this._config;
-        observer.next(deserializer(e));
-      } catch (err) {
-        observer.error(err);
-      }
-    };
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>): Subscription {
-    const { source } = this;
-    if (source) {
-      return source.subscribe(subscriber);
-    }
-    if (!this._socket) {
-      this._connectSocket();
-    }
-    this._output.subscribe(subscriber);
-    subscriber.add(() => {
-      const { _socket } = this;
-      if (this._output.observers.length === 0) {
-        if (_socket && _socket.readyState === 1) {
-          _socket.close();
-        }
-        this._resetState();
-      }
-    });
-    return subscriber;
-  }
-
-  unsubscribe() {
-    const { _socket } = this;
-    if (_socket && _socket.readyState === 1) {
-      _socket.close();
-    }
-    this._resetState();
-    super.unsubscribe();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/dom/ajax.ts b/node_modules/rxjs/src/internal/observable/dom/ajax.ts
deleted file mode 100644
index d0885c1..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/ajax.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import {  AjaxObservable, AjaxCreationMethod  } from './AjaxObservable';
-/**
- * There is an ajax operator on the Rx object.
- *
- * It creates an observable for an Ajax request with either a request object with
- * url, headers, etc or a string for a URL.
- *
- *
- * ## Using ajax() to fetch the response object that is being returned from API.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax(`https://api.github.com/users?per_page=5`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax.getJSON() to fetch data from API.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax.getJSON(`https://api.github.com/users?per_page=5`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax() with object as argument and method POST with a two seconds delay.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { of } from 'rxjs';
- *
- * const users = ajax({
- *   url: 'https://httpbin.org/delay/2',
- *   method: 'POST',
- *   headers: {
- *     'Content-Type': 'application/json',
- *     'rxjs-custom-header': 'Rxjs'
- *   },
- *   body: {
- *     rxjs: 'Hello World!'
- *   }
- * }).pipe(
- *   map(response => console.log('response: ', response)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- *
- * ## Using ajax() to fetch. An error object that is being returned from the request.
- * ```ts
- * import { ajax } from 'rxjs/ajax';
- * import { map, catchError } from 'rxjs/operators';
- * import { of } from 'rxjs';
- *
- * const obs$ = ajax(`https://api.github.com/404`).pipe(
- *   map(userResponse => console.log('users: ', userResponse)),
- *   catchError(error => {
- *     console.log('error: ', error);
- *     return of(error);
- *   })
- * );
- *
- * ```
- */
-export const ajax: AjaxCreationMethod = (() => AjaxObservable.create)();
diff --git a/node_modules/rxjs/src/internal/observable/dom/fetch.ts b/node_modules/rxjs/src/internal/observable/dom/fetch.ts
deleted file mode 100644
index b91f8a7..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/fetch.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import { Observable } from '../../Observable';
-
-/**
- * Uses [the Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to
- * make an HTTP request.
- *
- * **WARNING** Parts of the fetch API are still experimental. `AbortController` is
- * required for this implementation to work and use cancellation appropriately.
- *
- * Will automatically set up an internal [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)
- * in order to teardown the internal `fetch` when the subscription tears down.
- *
- * If a `signal` is provided via the `init` argument, it will behave like it usually does with
- * `fetch`. If the provided `signal` aborts, the error that `fetch` normally rejects with
- * in that scenario will be emitted as an error from the observable.
- *
- * ### Basic Use
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { fromFetch } from 'rxjs/fetch';
- * import { switchMap, catchError } from 'rxjs/operators';
- *
- * const data$ = fromFetch('https://api.github.com/users?per_page=5').pipe(
- *  switchMap(response => {
- *    if (response.ok) {
- *      // OK return data
- *      return response.json();
- *    } else {
- *      // Server is returning a status requiring the client to try something else.
- *      return of({ error: true, message: `Error ${response.status}` });
- *    }
- *  }),
- *  catchError(err => {
- *    // Network or other error, handle appropriately
- *    console.error(err);
- *    return of({ error: true, message: err.message })
- *  })
- * );
- *
- * data$.subscribe({
- *  next: result => console.log(result),
- *  complete: () => console.log('done')
- * })
- * ```
- *
- * @param input The resource you would like to fetch. Can be a url or a request object.
- * @param init A configuration object for the fetch.
- * [See MDN for more details](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)
- * @returns An Observable, that when subscribed to performs an HTTP request using the native `fetch`
- * function. The {@link Subscription} is tied to an `AbortController` for the the fetch.
- */
-export function fromFetch(input: string | Request, init?: RequestInit): Observable<Response> {
-  return new Observable<Response>(subscriber => {
-    const controller = new AbortController();
-    const signal = controller.signal;
-    let outerSignalHandler: () => void;
-    let abortable = true;
-    let unsubscribed = false;
-
-    if (init) {
-      // If a signal is provided, just have it teardown. It's a cancellation token, basically.
-      if (init.signal) {
-        if (init.signal.aborted) {
-          controller.abort();
-        } else {
-          outerSignalHandler = () => {
-            if (!signal.aborted) {
-              controller.abort();
-            }
-          };
-          init.signal.addEventListener('abort', outerSignalHandler);
-        }
-      }
-      init = { ...init, signal };
-    } else {
-      init = { signal };
-    }
-
-    fetch(input, init).then(response => {
-      abortable = false;
-      subscriber.next(response);
-      subscriber.complete();
-    }).catch(err => {
-      abortable = false;
-      if (!unsubscribed) {
-        // Only forward the error if it wasn't an abort.
-        subscriber.error(err);
-      }
-    });
-
-    return () => {
-      unsubscribed = true;
-      if (abortable) {
-        controller.abort();
-      }
-    };
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/dom/webSocket.ts b/node_modules/rxjs/src/internal/observable/dom/webSocket.ts
deleted file mode 100644
index e115607..0000000
--- a/node_modules/rxjs/src/internal/observable/dom/webSocket.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject';
-
-/**
- * Wrapper around the w3c-compatible WebSocket object provided by the browser.
- *
- * <span class="informal">{@link Subject} that communicates with a server via WebSocket</span>
- *
- * `webSocket` is a factory function that produces a `WebSocketSubject`,
- * which can be used to make WebSocket connection with an arbitrary endpoint.
- * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an
- * {@link WebSocketSubjectConfig} object for providing additional configuration, as
- * well as Observers for tracking lifecycle of WebSocket connection.
- *
- * When `WebSocketSubject` is subscribed, it attempts to make a socket connection,
- * unless there is one made already. This means that many subscribers will always listen
- * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`,
- * even if these two were provided with the same url, they will attempt to make separate
- * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed,
- * only if there are no more subscribers still listening. If after some time a consumer starts
- * subscribing again, connection is reestablished.
- *
- * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that
- * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you
- * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector`
- * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without
- * any errors. If at any point (starting, maintaining or closing a connection) there is an error,
- * stream will also error with whatever WebSocket API has thrown.
- *
- * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order
- * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind
- * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand,
- * before calling `next` with a result. Note also that if at the moment of nexting value
- * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection
- * is finally established. `complete` method closes socket connection. `error` does the same,
- * as well as notifying the server that something went wrong via status code and string with details of what happened.
- * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`,
- * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code`
- * property with status code number and optional `reason` property with string describing details
- * of an error.
- *
- * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no
- * information that something was sent to the server (unless of course the server
- * responds somehow to a message). On the other hand, since calling `complete` triggers
- * an attempt to close socket connection. If that connection is closed without any errors, stream will
- * complete, thus notifying all subscribers. And since calling `error` closes
- * socket connection as well, just with a different status code for the server, if closing itself proceeds
- * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases
- * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream
- * will error.
- *
- * **Multiplexing**
- *
- * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is
- * used to simulate opening several socket connections, while in reality maintaining only one.
- * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions,
- * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket
- * endpoints, running on separate machines with only GUI combining them together. Having a socket connection
- * for each functionality could become too resource expensive. It is a common pattern to have single
- * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services).
- * Even though there is a single connection in a client app, having the ability to manipulate streams as if it
- * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for
- * given service and filter out messages of interest. This is exactly what `multiplex` method is for.
- *
- * Method accepts three parameters. First two are functions returning subscription and unsubscription messages
- * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable
- * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop
- * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier,
- * gateway server can decide that it should connect to real sport news service and start forwarding messages from it.
- * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just
- * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and
- * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server
- * might stop sending messages, since it got unsubscription message. This needs to be handled
- * on the server or using {@link publish} on a Observable returned from 'multiplex'.
- *
- * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages
- * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these
- * messages with some kind of string identifier on a message object and `messageFilter` would return `true`
- * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped,
- * and are not passed down the stream.
- *
- * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this
- * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the
- * server, use root `WebSocketSubject`.
- *
- * ### Examples
- * #### Listening for messages from the server
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket("ws://localhost:8081");
- *
- * subject.subscribe(
- *    msg => console.log('message received: ' + msg), // Called whenever there is a message from the server.
- *    err => console.log(err), // Called if at any point WebSocket API signals some kind of error.
- *    () => console.log('complete') // Called when connection is closed (for whatever reason).
- *  );
- * ```
- *
- * #### Pushing messages to the server
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket('ws://localhost:8081');
- *
- * subject.subscribe();
- * // Note that at least one consumer has to subscribe to the created subject - otherwise "nexted" values will be just buffered and not sent,
- * // since no connection was established!
- *
- * subject.next({message: 'some message'});
- * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default!
- *
- * subject.complete(); // Closes the connection.
- *
- * subject.error({code: 4000, reason: 'I think our app just broke!'});
- * // Also closes the connection, but let's the server know that this closing is caused by some error.
- * ```
- *
- * #### Multiplexing WebSocket
- * ```ts
- * import { webSocket } from "rxjs/webSocket";
- * const subject = webSocket('ws://localhost:8081');
- *
- * const observableA = subject.multiplex(
- *   () => ({subscribe: 'A'}), // When server gets this message, it will start sending messages for 'A'...
- *   () => ({unsubscribe: 'A'}), // ...and when gets this one, it will stop.
- *   message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false.
- * );
- *
- * const observableB = subject.multiplex( // And the same goes for 'B'.
- *   () => ({subscribe: 'B'}),
- *   () => ({unsubscribe: 'B'}),
- *   message => message.type === 'B'
- * );
- *
- * const subA = observableA.subscribe(messageForA => console.log(messageForA));
- * // At this moment WebSocket connection is established. Server gets '{"subscribe": "A"}' message and starts sending messages for 'A',
- * // which we log here.
- *
- * const subB = observableB.subscribe(messageForB => console.log(messageForB));
- * // Since we already have a connection, we just send '{"subscribe": "B"}' message to the server. It starts sending messages for 'B',
- * // which we log here.
- *
- * subB.unsubscribe();
- * // Message '{"unsubscribe": "B"}' is sent to the server, which stops sending 'B' messages.
- *
- * subA.unsubscribe();
- * // Message '{"unsubscribe": "A"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject,
- * // socket connection closes.
- * ```
- *
- *
- * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with
- * configuration and additional Observers.
- * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection.
- */
-export function webSocket<T>(urlConfigOrSource: string | WebSocketSubjectConfig<T>): WebSocketSubject<T> {
-  return new WebSocketSubject<T>(urlConfigOrSource);
-}
diff --git a/node_modules/rxjs/src/internal/observable/empty.ts b/node_modules/rxjs/src/internal/observable/empty.ts
deleted file mode 100644
index 179afe6..0000000
--- a/node_modules/rxjs/src/internal/observable/empty.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-
-/**
- * The same Observable instance returned by any call to {@link empty} without a
- * `scheduler`. It is preferrable to use this over `empty()`.
- */
-export const EMPTY = new Observable<never>(subscriber => subscriber.complete());
-
-/**
- * Creates an Observable that emits no items to the Observer and immediately
- * emits a complete notification.
- *
- * <span class="informal">Just emits 'complete', and nothing else.
- * </span>
- *
- * ![](empty.png)
- *
- * This static operator is useful for creating a simple Observable that only
- * emits the complete notification. It can be used for composing with other
- * Observables, such as in a {@link mergeMap}.
- *
- * ## Examples
- * ### Emit the number 7, then complete
- * ```ts
- * import { empty } from 'rxjs';
- * import { startWith } from 'rxjs/operators';
- *
- * const result = empty().pipe(startWith(7));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c'
- * ```ts
- * import { empty, interval, of } from 'rxjs';
- * import { mergeMap } from 'rxjs/operators';
- *
- * const interval$ = interval(1000);
- * const result = interval$.pipe(
- *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()),
- * );
- * result.subscribe(x => console.log(x));
- *
- * // Results in the following to the console:
- * // x is equal to the count on the interval eg(0,1,2,3,...)
- * // x will occur every 1000ms
- * // if x % 2 is equal to 1 print abc
- * // if x % 2 is not equal to 1 nothing will be output
- * ```
- *
- * @see {@link Observable}
- * @see {@link never}
- * @see {@link of}
- * @see {@link throwError}
- *
- * @param scheduler A {@link SchedulerLike} to use for scheduling
- * the emission of the complete notification.
- * @return An "empty" Observable: emits only the complete
- * notification.
- * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`)
- */
-export function empty(scheduler?: SchedulerLike) {
-  return scheduler ? emptyScheduled(scheduler) : EMPTY;
-}
-
-function emptyScheduled(scheduler: SchedulerLike) {
-  return new Observable<never>(subscriber => scheduler.schedule(() => subscriber.complete()));
-}
diff --git a/node_modules/rxjs/src/internal/observable/forkJoin.ts b/node_modules/rxjs/src/internal/observable/forkJoin.ts
deleted file mode 100644
index 400e54f..0000000
--- a/node_modules/rxjs/src/internal/observable/forkJoin.ts
+++ /dev/null
@@ -1,204 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types';
-import { isArray } from '../util/isArray';
-import { map } from '../operators/map';
-import { isObject } from '../util/isObject';
-import { isObservable } from '../util/isObservable';
-import { from } from './from';
-
-/* tslint:disable:max-line-length */
-
-// forkJoin(a$, b$, c$)
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T>(v1: SubscribableOrPromise<T>): Observable<[T]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<[T, T2]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<[T, T2, T3]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<[T, T2, T3, T4]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<[T, T2, T3, T4, T5]>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<[T, T2, T3, T4, T5, T6]>;
-
-// forkJoin([a$, b$, c$]);
-// TODO(benlesh): Uncomment for TS 3.0
-// export function forkJoin(sources: []): Observable<never>;
-export function forkJoin<A>(sources: [ObservableInput<A>]): Observable<[A]>;
-export function forkJoin<A, B>(sources: [ObservableInput<A>, ObservableInput<B>]): Observable<[A, B]>;
-export function forkJoin<A, B, C>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<[A, B, C]>;
-export function forkJoin<A, B, C, D>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<[A, B, C, D]>;
-export function forkJoin<A, B, C, D, E>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<[A, B, C, D, E]>;
-export function forkJoin<A, B, C, D, E, F>(sources: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>, ObservableInput<F>]): Observable<[A, B, C, D, E, F]>;
-export function forkJoin<A extends ObservableInput<any>[]>(sources: A): Observable<ObservedValuesFromArray<A>[]>;
-
-// forkJoin({})
-export function forkJoin(sourcesObject: {}): Observable<never>;
-export function forkJoin<T, K extends keyof T>(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf<T[K]> }>;
-
-/** @deprecated resultSelector is deprecated, pipe to map instead */
-export function forkJoin(...args: Array<ObservableInput<any>|Function>): Observable<any>;
-/** @deprecated Use the version that takes an array of Observables instead */
-export function forkJoin<T>(...sources: ObservableInput<T>[]): Observable<T[]>;
-/* tslint:enable:max-line-length */
-
-/**
- * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns
- * an {@link Observable} that emits either an array of values in the exact same order as the passed array,
- * or a dictionary of values in the same shape as the passed dictionary.
- *
- * <span class="informal">Wait for Observables to complete and then combine last values they emitted.</span>
- *
- * ![](forkJoin.png)
- *
- * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array
- * or a dictionary of input observables. If no input observables are provided, resulting stream will complete
- * immediately.
- *
- * `forkJoin` will wait for all passed observables to complete and then it will emit an array or an object with last
- * values from corresponding observables.
- *
- * If you pass an array of `n` observables to the operator, resulting
- * array will have `n` values, where first value is the last thing emitted by the first observable,
- * second value is the last thing emitted by the second observable and so on.
- *
- * If you pass a dictionary of observables to the operator, resulting
- * objects will have the same keys as the dictionary passed, with their last values they've emitted
- * located at the corresponding key.
- *
- * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined
- * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest}
- * or {@link zip} instead.
- *
- * In order for resulting array to have the same length as the number of input observables, whenever any of
- * that observables completes without emitting any value, `forkJoin` will complete at that moment as well
- * and it will not emit anything either, even if it already has some last values from other observables.
- * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well,
- * unless at any point some other observable completes without emitting value, which brings us back to
- * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments
- * have to emit something at least once and complete.
- *
- * If any input observable errors at some point, `forkJoin` will error as well and all other observables
- * will be immediately unsubscribed.
- *
- * Optionally `forkJoin` accepts project function, that will be called with values which normally
- * would land in emitted array. Whatever is returned by project function, will appear in output
- * observable instead. This means that default project can be thought of as a function that takes
- * all its arguments and puts them into an array. Note that project function will be called only
- * when output observable is supposed to emit a result.
- *
- * ## Examples
- *
- * ### Use forkJoin with a dictionary of observable inputs
- * ```ts
- * import { forkJoin, of, timer } from 'rxjs';
- *
- * const observable = forkJoin({
- *   foo: of(1, 2, 3, 4),
- *   bar: Promise.resolve(8),
- *   baz: timer(4000),
- * });
- * observable.subscribe({
- *  next: value => console.log(value),
- *  complete: () => console.log('This is how it ends!'),
- * });
- *
- * // Logs:
- * // { foo: 4, bar: 8, baz: 0 } after 4 seconds
- * // "This is how it ends!" immediately after
- * ```
- *
- * ### Use forkJoin with an array of observable inputs
- * ```ts
- * import { forkJoin, of } from 'rxjs';
- *
- * const observable = forkJoin([
- *   of(1, 2, 3, 4),
- *   Promise.resolve(8),
- *   timer(4000),
- * ]);
- * observable.subscribe({
- *  next: value => console.log(value),
- *  complete: () => console.log('This is how it ends!'),
- * });
- *
- * // Logs:
- * // [4, 8, 0] after 4 seconds
- * // "This is how it ends!" immediately after
- * ```
- *
- * @see {@link combineLatest}
- * @see {@link zip}
- *
- * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments
- * passed directly to the operator.
- * @param {function} [project] Function that takes values emitted by input Observables and returns value
- * that will appear in resulting Observable instead of default array.
- * @return {Observable} Observable emitting either an array of last values emitted by passed Observables
- * or value from project function.
- */
-export function forkJoin(
-  ...sources: any[]
-): Observable<any> {
-  if (sources.length === 1) {
-    const first = sources[0];
-    if (isArray(first)) {
-      return forkJoinInternal(first, null);
-    }
-    // TODO(benlesh): isObservable check will not be necessary when deprecated path is removed.
-    if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {
-      const keys = Object.keys(first);
-      return forkJoinInternal(keys.map(key => first[key]), keys);
-    }
-  }
-
-  // DEPRECATED PATHS BELOW HERE
-  if (typeof sources[sources.length - 1] === 'function') {
-    const resultSelector = sources.pop() as Function;
-    sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;
-    return forkJoinInternal(sources, null).pipe(
-      map((args: any[]) => resultSelector(...args))
-    );
-  }
-
-  return forkJoinInternal(sources, null);
-}
-
-function forkJoinInternal(sources: ObservableInput<any>[], keys: string[] | null): Observable<any> {
-  return new Observable(subscriber => {
-    const len = sources.length;
-    if (len === 0) {
-      subscriber.complete();
-      return;
-    }
-    const values = new Array(len);
-    let completed = 0;
-    let emitted = 0;
-    for (let i = 0; i < len; i++) {
-      const source = from(sources[i]);
-      let hasValue = false;
-      subscriber.add(source.subscribe({
-        next: value => {
-          if (!hasValue) {
-            hasValue = true;
-            emitted++;
-          }
-          values[i] = value;
-        },
-        error: err => subscriber.error(err),
-        complete: () => {
-          completed++;
-          if (completed === len || !hasValue) {
-            if (emitted === len) {
-              subscriber.next(keys ?
-                keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :
-                values);
-            }
-            subscriber.complete();
-          }
-        }
-      }));
-    }
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/from.ts b/node_modules/rxjs/src/internal/observable/from.ts
deleted file mode 100644
index 697e928..0000000
--- a/node_modules/rxjs/src/internal/observable/from.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeTo } from '../util/subscribeTo';
-import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';
-import { scheduled } from '../scheduled/scheduled';
-
-export function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;
-/** @deprecated use {@link scheduled} instead. */
-export function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike): Observable<ObservedValueOf<O>>;
-
-/**
- * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.
- *
- * <span class="informal">Converts almost anything to an Observable.</span>
- *
- * ![](from.png)
- *
- * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an
- * <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable" target="_blank">iterable</a>
- * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated
- * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be
- * converted through this operator.
- *
- * ## Examples
- *
- * ### Converts an array to an Observable
- *
- * ```ts
- * import { from } from 'rxjs';
- *
- * const array = [10, 20, 30];
- * const result = from(array);
- *
- * result.subscribe(x => console.log(x));
- *
- * // Logs:
- * // 10
- * // 20
- * // 30
- * ```
- *
- * ---
- *
- * ### Convert an infinite iterable (from a generator) to an Observable
- *
- * ```ts
- * import { from } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * function* generateDoubles(seed) {
- *    let i = seed;
- *    while (true) {
- *      yield i;
- *      i = 2 * i; // double it
- *    }
- * }
- *
- * const iterator = generateDoubles(3);
- * const result = from(iterator).pipe(take(10));
- *
- * result.subscribe(x => console.log(x));
- *
- * // Logs:
- * // 3
- * // 6
- * // 12
- * // 24
- * // 48
- * // 96
- * // 192
- * // 384
- * // 768
- * // 1536
- * ```
- *
- * ---
- *
- * ### With async scheduler
- *
- * ```ts
- * import { from, asyncScheduler } from 'rxjs';
- *
- * console.log('start');
- *
- * const array = [10, 20, 30];
- * const result = from(array, asyncScheduler);
- *
- * result.subscribe(x => console.log(x));
- *
- * console.log('end');
- *
- * // Logs:
- * // start
- * // end
- * // 10
- * // 20
- * // 30
- * ```
- *
- * @see {@link fromEvent}
- * @see {@link fromEventPattern}
- *
- * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,
- * an Array, an iterable, or an array-like object to be converted.
- * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.
- * @return {Observable<T>}
- * @name from
- * @owner Observable
- */
-export function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {
-  if (!scheduler) {
-    if (input instanceof Observable) {
-      return input;
-    }
-    return new Observable<T>(subscribeTo(input));
-  } else {
-    return scheduled(input, scheduler);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromArray.ts b/node_modules/rxjs/src/internal/observable/fromArray.ts
deleted file mode 100644
index b5953be..0000000
--- a/node_modules/rxjs/src/internal/observable/fromArray.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { subscribeToArray } from '../util/subscribeToArray';
-import { scheduleArray } from '../scheduled/scheduleArray';
-
-export function fromArray<T>(input: ArrayLike<T>, scheduler?: SchedulerLike) {
-  if (!scheduler) {
-    return new Observable<T>(subscribeToArray(input));
-  } else {
-    return scheduleArray(input, scheduler);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromEvent.ts b/node_modules/rxjs/src/internal/observable/fromEvent.ts
deleted file mode 100644
index 015f56c..0000000
--- a/node_modules/rxjs/src/internal/observable/fromEvent.ts
+++ /dev/null
@@ -1,245 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { Subscriber } from '../Subscriber';
-import { map } from '../operators/map';
-
-const toString: Function = (() => Object.prototype.toString)();
-
-export interface NodeStyleEventEmitter {
-  addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;
-  removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;
-}
-
-export type NodeEventHandler = (...args: any[]) => void;
-
-// For APIs that implement `addListener` and `removeListener` methods that may
-// not use the same arguments or return EventEmitter values
-// such as React Native
-export interface NodeCompatibleEventEmitter {
-  addListener: (eventName: string, handler: NodeEventHandler) => void | {};
-  removeListener: (eventName: string, handler: NodeEventHandler) => void | {};
-}
-
-export interface JQueryStyleEventEmitter {
-  on: (eventName: string, handler: Function) => void;
-  off: (eventName: string, handler: Function) => void;
-}
-
-export interface HasEventTargetAddRemove<E> {
-  addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;
-  removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;
-}
-
-export type EventTargetLike<T> = HasEventTargetAddRemove<T> | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;
-
-export type FromEventTarget<T> = EventTargetLike<T> | ArrayLike<EventTargetLike<T>>;
-
-export interface EventListenerOptions {
-  capture?: boolean;
-  passive?: boolean;
-  once?: boolean;
-}
-
-export interface AddEventListenerOptions extends EventListenerOptions {
-  once?: boolean;
-  passive?: boolean;
-}
-
-/* tslint:disable:max-line-length */
-export function fromEvent<T>(target: FromEventTarget<T>, eventName: string): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function fromEvent<T>(target: FromEventTarget<T>, eventName: string, resultSelector: (...args: any[]) => T): Observable<T>;
-export function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function fromEvent<T>(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Creates an Observable that emits events of a specific type coming from the
- * given event target.
- *
- * <span class="informal">Creates an Observable from DOM events, or Node.js
- * EventEmitter events or others.</span>
- *
- * ![](fromEvent.png)
- *
- * `fromEvent` accepts as a first argument event target, which is an object with methods
- * for registering event handler functions. As a second argument it takes string that indicates
- * type of event we want to listen for. `fromEvent` supports selected types of event targets,
- * which are described in detail below. If your event target does not match any of the ones listed,
- * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.
- * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event
- * handler functions have different names, but they all accept a string describing event type
- * and function itself, which will be called whenever said event happens.
- *
- * Every time resulting Observable is subscribed, event handler function will be registered
- * to event target on given event type. When that event fires, value
- * passed as a first argument to registered function will be emitted by output Observable.
- * When Observable is unsubscribed, function will be unregistered from event target.
- *
- * Note that if event target calls registered function with more than one argument, second
- * and following arguments will not appear in resulting stream. In order to get access to them,
- * you can pass to `fromEvent` optional project function, which will be called with all arguments
- * passed to event handler. Output Observable will then emit value returned by project function,
- * instead of the usual value.
- *
- * Remember that event targets listed below are checked via duck typing. It means that
- * no matter what kind of object you have and no matter what environment you work in,
- * you can safely use `fromEvent` on that object if it exposes described methods (provided
- * of course they behave as was described above). So for example if Node.js library exposes
- * event target which has the same method names as DOM EventTarget, `fromEvent` is still
- * a good choice.
- *
- * If the API you use is more callback then event handler oriented (subscribed
- * callback function fires only once and thus there is no need to manually
- * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}
- * instead.
- *
- * `fromEvent` supports following types of event targets:
- *
- * **DOM EventTarget**
- *
- * This is an object with `addEventListener` and `removeEventListener` methods.
- *
- * In the browser, `addEventListener` accepts - apart from event type string and event
- * handler function arguments - optional third parameter, which is either an object or boolean,
- * both used for additional configuration how and when passed function will be called. When
- * `fromEvent` is used with event target of that type, you can provide this values
- * as third parameter as well.
- *
- * **Node.js EventEmitter**
- *
- * An object with `addListener` and `removeListener` methods.
- *
- * **JQuery-style event target**
- *
- * An object with `on` and `off` methods
- *
- * **DOM NodeList**
- *
- * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.
- *
- * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes
- * it contains and install event handler function in every of them. When returned Observable
- * is unsubscribed, function will be removed from all Nodes.
- *
- * **DOM HtmlCollection**
- *
- * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is
- * installed and removed in each of elements.
- *
- *
- * ## Examples
- * ### Emits clicks happening on the DOM document
- * ```ts
- * import { fromEvent } from 'rxjs';
- *
- * const clicks = fromEvent(document, 'click');
- * clicks.subscribe(x => console.log(x));
- *
- * // Results in:
- * // MouseEvent object logged to console every time a click
- * // occurs on the document.
- * ```
- *
- * ### Use addEventListener with capture option
- * ```ts
- * import { fromEvent } from 'rxjs';
- *
- * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter
- *                                                              // which will be passed to addEventListener
- * const clicksInDiv = fromEvent(someDivInDocument, 'click');
- *
- * clicksInDocument.subscribe(() => console.log('document'));
- * clicksInDiv.subscribe(() => console.log('div'));
- *
- * // By default events bubble UP in DOM tree, so normally
- * // when we would click on div in document
- * // "div" would be logged first and then "document".
- * // Since we specified optional `capture` option, document
- * // will catch event when it goes DOWN DOM tree, so console
- * // will log "document" and then "div".
- * ```
- *
- * @see {@link bindCallback}
- * @see {@link bindNodeCallback}
- * @see {@link fromEventPattern}
- *
- * @param {FromEventTarget<T>} target The DOM EventTarget, Node.js
- * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.
- * @param {string} eventName The event name of interest, being emitted by the
- * `target`.
- * @param {EventListenerOptions} [options] Options to pass through to addEventListener
- * @return {Observable<T>}
- * @name fromEvent
- */
-export function fromEvent<T>(
-  target: FromEventTarget<T>,
-  eventName: string,
-  options?: EventListenerOptions | ((...args: any[]) => T),
-  resultSelector?: ((...args: any[]) => T)
-): Observable<T> {
-
-  if (isFunction(options)) {
-    // DEPRECATED PATH
-    resultSelector = options;
-    options = undefined;
-  }
-  if (resultSelector) {
-    // DEPRECATED PATH
-    return fromEvent<T>(target, eventName, <EventListenerOptions | undefined>options).pipe(
-      map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))
-    );
-  }
-
-  return new Observable<T>(subscriber => {
-    function handler(e: T) {
-      if (arguments.length > 1) {
-        subscriber.next(Array.prototype.slice.call(arguments));
-      } else {
-        subscriber.next(e);
-      }
-    }
-    setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);
-  });
-}
-
-function setupSubscription<T>(sourceObj: FromEventTarget<T>, eventName: string,
-                              handler: (...args: any[]) => void, subscriber: Subscriber<T>,
-                              options?: EventListenerOptions) {
-  let unsubscribe: () => void;
-  if (isEventTarget(sourceObj)) {
-    const source = sourceObj;
-    sourceObj.addEventListener(eventName, handler, options);
-    unsubscribe = () => source.removeEventListener(eventName, handler, options);
-  } else if (isJQueryStyleEventEmitter(sourceObj)) {
-    const source = sourceObj;
-    sourceObj.on(eventName, handler);
-    unsubscribe = () => source.off(eventName, handler);
-  } else if (isNodeStyleEventEmitter(sourceObj)) {
-    const source = sourceObj;
-    sourceObj.addListener(eventName, handler as NodeEventHandler);
-    unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);
-  } else if (sourceObj && (sourceObj as any).length) {
-    for (let i = 0, len = (sourceObj as any).length; i < len; i++) {
-      setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
-    }
-  } else {
-    throw new TypeError('Invalid event target');
-  }
-
-  subscriber.add(unsubscribe);
-}
-
-function isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {
-  return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
-}
-
-function isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {
-  return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
-}
-
-function isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove<any> {
-  return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromEventPattern.ts b/node_modules/rxjs/src/internal/observable/fromEventPattern.ts
deleted file mode 100644
index f83b8d4..0000000
--- a/node_modules/rxjs/src/internal/observable/fromEventPattern.ts
+++ /dev/null
@@ -1,169 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { isFunction } from '../util/isFunction';
-import { NodeEventHandler } from './fromEvent';
-import { map } from '../operators/map';
-
-/* tslint:disable:max-line-length */
-export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable<T>;
-/** @deprecated resultSelector no longer supported, pipe to map instead */
-export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Creates an Observable from an arbitrary API for registering event handlers.
- *
- * <span class="informal">When that method for adding event handler was something {@link fromEvent}
- * was not prepared for.</span>
- *
- * ![](fromEventPattern.png)
- *
- * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions
- * for events. It is similar to {@link fromEvent}, but far
- * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by
- * `fromEventPattern` (although in slightly more verbose way).
- *
- * This operator accepts as a first argument an `addHandler` function, which will be injected with
- * handler parameter. That handler is actually an event handler function that you now can pass
- * to API expecting it. `addHandler` will be called whenever Observable
- * returned by the operator is subscribed, so registering handler in API will not
- * necessarily happen when `fromEventPattern` is called.
- *
- * After registration, every time an event that we listen to happens,
- * Observable returned by `fromEventPattern` will emit value that event handler
- * function was called with. Note that if event handler was called with more
- * then one argument, second and following arguments will not appear in the Observable.
- *
- * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern`
- * another function - `removeHandler` - as a second parameter. It will be injected
- * with the same handler function as before, which now you can use to unregister
- * it from the API. `removeHandler` will be called when consumer of resulting Observable
- * unsubscribes from it.
- *
- * In some APIs unregistering is actually handled differently. Method registering an event handler
- * returns some kind of token, which is later used to identify which function should
- * be unregistered or it itself has method that unregisters event handler.
- * If that is the case with your API, make sure token returned
- * by registering method is returned by `addHandler`. Then it will be passed
- * as a second argument to `removeHandler`, where you will be able to use it.
- *
- * If you need access to all event handler parameters (not only the first one),
- * or you need to transform them in any way, you can call `fromEventPattern` with optional
- * third parameter - project function which will accept all arguments passed to
- * event handler when it is called. Whatever is returned from project function will appear on
- * resulting stream instead of usual event handlers first argument. This means
- * that default project can be thought of as function that takes its first parameter
- * and ignores the rest.
- *
- * ## Example
- * ### Emits clicks happening on the DOM document
- *
- * ```ts
- * import { fromEventPattern } from 'rxjs';
- *
- * function addClickHandler(handler) {
- *   document.addEventListener('click', handler);
- * }
- *
- * function removeClickHandler(handler) {
- *   document.removeEventListener('click', handler);
- * }
- *
- * const clicks = fromEventPattern(
- *   addClickHandler,
- *   removeClickHandler
- * );
- * clicks.subscribe(x => console.log(x));
- *
- * // Whenever you click anywhere in the browser, DOM MouseEvent
- * // object will be logged.
- * ```
- *
- * ## Example
- * ### Use with API that returns cancellation token
- *
- * ```ts
- * import { fromEventPattern } from 'rxjs';
- *
- * const token = someAPI.registerEventHandler(function() {});
- * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts
- *                                        // not handler itself, but special token.
- *
- * const someAPIObservable = fromEventPattern(
- *   function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here...
- *   function(handler, token) { someAPI.unregisterEventHandler(token); }  // ...to then use it here.
- * );
- * ```
- *
- * ## Example
- * ### Use with project function
- *
- * ```ts
- * import { fromEventPattern } from 'rxjs';
- *
- * someAPI.registerEventHandler((eventType, eventMessage) => {
- *   console.log(eventType, eventMessage); // Logs "EVENT_TYPE" "EVENT_MESSAGE" to console.
- * });
- *
- * const someAPIObservable = fromEventPattern(
- *   handler => someAPI.registerEventHandler(handler),
- *   handler => someAPI.unregisterEventHandler(handler)
- *   (eventType, eventMessage) => eventType + " --- " + eventMessage // without that function only "EVENT_TYPE"
- * );                                                                // would be emitted by the Observable
- *
- * someAPIObservable.subscribe(value => console.log(value));
- *
- * // Logs:
- * // "EVENT_TYPE --- EVENT_MESSAGE"
- * ```
- *
- * @see {@link fromEvent}
- * @see {@link bindCallback}
- * @see {@link bindNodeCallback}
- *
- * @param {function(handler: Function): any} addHandler A function that takes
- * a `handler` function as argument and attaches it somehow to the actual
- * source of events.
- * @param {function(handler: Function, token?: any): void} [removeHandler] A function that
- * takes a `handler` function as an argument and removes it from the event source. If `addHandler`
- * returns some kind of token, `removeHandler` function will have it as a second parameter.
- * @param {function(...args: any): T} [project] A function to
- * transform results. It takes the arguments from the event handler and
- * should return a single value.
- * @return {Observable<T>} Observable which, when an event happens, emits first parameter
- * passed to registered event handler. Alternatively it emits whatever project function returns
- * at that moment.
- * @static true
- * @name fromEventPattern
- * @owner Observable
- */
-
-export function fromEventPattern<T>(addHandler: (handler: NodeEventHandler) => any,
-                                    removeHandler?: (handler: NodeEventHandler, signal?: any) => void,
-                                    resultSelector?: (...args: any[]) => T): Observable<T | T[]> {
-
-  if (resultSelector) {
-    // DEPRECATED PATH
-    return fromEventPattern<T>(addHandler, removeHandler).pipe(
-      map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))
-    );
-  }
-
-  return new Observable<T | T[]>(subscriber => {
-    const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);
-
-    let retValue: any;
-    try {
-      retValue = addHandler(handler);
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-
-    if (!isFunction(removeHandler)) {
-      return undefined;
-    }
-
-    return () => removeHandler(handler, retValue) ;
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromIterable.ts b/node_modules/rxjs/src/internal/observable/fromIterable.ts
deleted file mode 100644
index e7ffd2b..0000000
--- a/node_modules/rxjs/src/internal/observable/fromIterable.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { subscribeToIterable } from '../util/subscribeToIterable';
-import { scheduleIterable } from '../scheduled/scheduleIterable';
-
-export function fromIterable<T>(input: Iterable<T>, scheduler?: SchedulerLike) {
-  if (!input) {
-    throw new Error('Iterable cannot be null');
-  }
-  if (!scheduler) {
-    return new Observable<T>(subscribeToIterable(input));
-  } else {
-    return scheduleIterable(input, scheduler);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromObservable.ts b/node_modules/rxjs/src/internal/observable/fromObservable.ts
deleted file mode 100644
index 6a297b4..0000000
--- a/node_modules/rxjs/src/internal/observable/fromObservable.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Observable } from '../Observable';
-import { subscribeToObservable } from '../util/subscribeToObservable';
-import { InteropObservable, SchedulerLike } from '../types';
-import { scheduleObservable } from '../scheduled/scheduleObservable';
-
-export function fromObservable<T>(input: InteropObservable<T>, scheduler?: SchedulerLike) {
-  if (!scheduler) {
-    return new Observable<T>(subscribeToObservable(input));
-  } else {
-    return scheduleObservable(input, scheduler);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/fromPromise.ts b/node_modules/rxjs/src/internal/observable/fromPromise.ts
deleted file mode 100644
index 28ebef6..0000000
--- a/node_modules/rxjs/src/internal/observable/fromPromise.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { subscribeToPromise } from '../util/subscribeToPromise';
-import { schedulePromise } from '../scheduled/schedulePromise';
-
-export function fromPromise<T>(input: PromiseLike<T>, scheduler?: SchedulerLike) {
-  if (!scheduler) {
-    return new Observable<T>(subscribeToPromise(input));
-  } else {
-    return schedulePromise(input, scheduler);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/generate.ts b/node_modules/rxjs/src/internal/observable/generate.ts
deleted file mode 100644
index c160c18..0000000
--- a/node_modules/rxjs/src/internal/observable/generate.ts
+++ /dev/null
@@ -1,379 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { identity } from '../util/identity';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { isScheduler } from '../util/isScheduler';
-
-export type ConditionFunc<S> = (state: S) => boolean;
-export type IterateFunc<S> = (state: S) => S;
-export type ResultFunc<S, T> = (state: S) => T;
-
-interface SchedulerState<T, S> {
-  needIterate?: boolean;
-  state: S;
-  subscriber: Subscriber<T>;
-  condition?: ConditionFunc<S>;
-  iterate: IterateFunc<S>;
-  resultSelector: ResultFunc<S, T>;
-}
-
-export interface GenerateBaseOptions<S> {
-  /**
-   * Initial state.
-   */
-  initialState: S;
-  /**
-   * Condition function that accepts state and returns boolean.
-   * When it returns false, the generator stops.
-   * If not specified, a generator never stops.
-   */
-  condition?: ConditionFunc<S>;
-  /**
-   * Iterate function that accepts state and returns new state.
-   */
-  iterate: IterateFunc<S>;
-  /**
-   * SchedulerLike to use for generation process.
-   * By default, a generator starts immediately.
-   */
-  scheduler?: SchedulerLike;
-}
-
-export interface GenerateOptions<T, S> extends GenerateBaseOptions<S> {
-  /**
-   * Result selection function that accepts state and returns a value to emit.
-   */
-  resultSelector: ResultFunc<S, T>;
-}
-
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate(0, x => x < 10, x => x + 1, x => x);
- *
- * @example <caption>Using asap scheduler, produces sequence of 2, 3, 5, then completes.</caption>
- * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap);
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {S} initialState Initial state.
- * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).
- * @param {function (state: S): S} iterate Iteration step function.
- * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.
- * @returns {Observable<T>} The generated sequence.
- */
-  export function generate<T, S>(initialState: S,
-                                 condition: ConditionFunc<S>,
-                                 iterate: IterateFunc<S>,
-                                 resultSelector: ResultFunc<S, T>,
-                                 scheduler?: SchedulerLike): Observable<T>;
-
-/**
- * Generates an Observable by running a state-driven loop
- * that emits an element on each iteration.
- *
- * <span class="informal">Use it instead of nexting values in a for loop.</span>
- *
- * <img src="./img/generate.png" width="100%">
- *
- * `generate` allows you to create stream of values generated with a loop very similar to
- * traditional for loop. First argument of `generate` is a beginning value. Second argument
- * is a function that accepts this value and tests if some condition still holds. If it does,
- * loop continues, if not, it stops. Third value is a function which takes previously defined
- * value and modifies it in some way on each iteration. Note how these three parameters
- * are direct equivalents of three expressions in regular for loop: first expression
- * initializes some state (for example numeric index), second tests if loop can make next
- * iteration (for example if index is lower than 10) and third states how defined value
- * will be modified on every step (index will be incremented by one).
- *
- * Return value of a `generate` operator is an Observable that on each loop iteration
- * emits a value. First, condition function is ran. If it returned true, Observable
- * emits currently stored value (initial value at the first iteration) and then updates
- * that value with iterate function. If at some point condition returned false, Observable
- * completes at that moment.
- *
- * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you
- * to immediately map value that would normally be emitted by an Observable.
- *
- * If you find three anonymous functions in `generate` call hard to read, you can provide
- * single object to the operator instead. That object has properties: `initialState`,
- * `condition`, `iterate` and `resultSelector`, which should have respective values that you
- * would normally pass to `generate`. `resultSelector` is still optional, but that form
- * of calling `generate` allows you to omit `condition` as well. If you omit it, that means
- * condition always holds, so output Observable will never complete.
- *
- * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call,
- * scheduler simply comes as a last argument (no matter if there is resultSelector
- * function or not). In case of single-parameter call, you can provide it as a
- * `scheduler` property on object passed to the operator. In both cases scheduler decides when
- * next iteration of the loop will happen and therefore when next value will be emitted
- * by the Observable. For example to ensure that each value is pushed to the observer
- * on separate task in event loop, you could use `async` scheduler. Note that
- * by default (when no scheduler is passed) values are simply emitted synchronously.
- *
- *
- * @example <caption>Use with condition and iterate functions.</caption>
- * const generated = generate(0, x => x < 3, x => x + 1);
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1
- * // 2
- * // "Yo!"
- *
- *
- * @example <caption>Use with condition, iterate and resultSelector functions.</caption>
- * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000);
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // "Yo!"
- *
- *
- * @example <caption>Use with options object.</caption>
- * const generated = generate({
- *   initialState: 0,
- *   condition(value) { return value < 3; },
- *   iterate(value) { return value + 1; },
- *   resultSelector(value) { return value * 1000; }
- * });
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!')
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // "Yo!"
- *
- * @example <caption>Use options object without condition function.</caption>
- * const generated = generate({
- *   initialState: 0,
- *   iterate(value) { return value + 1; },
- *   resultSelector(value) { return value * 1000; }
- * });
- *
- * generated.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('Yo!') // This will never run.
- * );
- *
- * // Logs:
- * // 0
- * // 1000
- * // 2000
- * // 3000
- * // ...and never stops.
- *
- *
- * @see {@link from}
- * @see {@link index/Observable.create}
- *
- * @param {S} initialState Initial state.
- * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).
- * @param {function (state: S): S} iterate Iteration step function.
- * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence.
- * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately.
- * @return {Observable<T>} The generated sequence.
- */
-export function generate<S>(initialState: S,
-                            condition: ConditionFunc<S>,
-                            iterate: IterateFunc<S>,
-                            scheduler?: SchedulerLike): Observable<S>;
-
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- * The overload accepts options object that might contain initial state, iterate,
- * condition and scheduler.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate({
- *   initialState: 0,
- *   condition: x => x < 10,
- *   iterate: x => x + 1,
- * });
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {GenerateBaseOptions<S>} options Object that must contain initialState, iterate and might contain condition and scheduler.
- * @returns {Observable<S>} The generated sequence.
- */
-export function generate<S>(options: GenerateBaseOptions<S>): Observable<S>;
-
-/**
- * Generates an observable sequence by running a state-driven loop
- * producing the sequence's elements, using the specified scheduler
- * to send out observer messages.
- * The overload accepts options object that might contain initial state, iterate,
- * condition, result selector and scheduler.
- *
- * ![](generate.png)
- *
- * @example <caption>Produces sequence of 0, 1, 2, ... 9, then completes.</caption>
- * const res = generate({
- *   initialState: 0,
- *   condition: x => x < 10,
- *   iterate: x => x + 1,
- *   resultSelector: x => x,
- * });
- *
- * @see {@link from}
- * @see {@link Observable}
- *
- * @param {GenerateOptions<T, S>} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler.
- * @returns {Observable<T>} The generated sequence.
- */
-export function generate<T, S>(options: GenerateOptions<T, S>): Observable<T>;
-
-export function generate<T, S>(initialStateOrOptions: S | GenerateOptions<T, S>,
-                               condition?: ConditionFunc<S>,
-                               iterate?: IterateFunc<S>,
-                               resultSelectorOrObservable?: (ResultFunc<S, T>) | SchedulerLike,
-                               scheduler?: SchedulerLike): Observable<T> {
-
-  let resultSelector: ResultFunc<S, T>;
-  let initialState: S;
-
-  if (arguments.length == 1) {
-    const options = initialStateOrOptions as GenerateOptions<T, S>;
-    initialState = options.initialState;
-    condition = options.condition;
-    iterate = options.iterate;
-    resultSelector = options.resultSelector || identity as ResultFunc<S, T>;
-    scheduler = options.scheduler;
-  } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {
-    initialState = initialStateOrOptions as S;
-    resultSelector = identity as ResultFunc<S, T>;
-    scheduler = resultSelectorOrObservable as SchedulerLike;
-  } else {
-    initialState = initialStateOrOptions as S;
-    resultSelector = resultSelectorOrObservable as ResultFunc<S, T>;
-  }
-
-  return new Observable<T>(subscriber => {
-    let state = initialState;
-    if (scheduler) {
-      return scheduler.schedule<SchedulerState<T, S>>(dispatch, 0, {
-        subscriber,
-        iterate,
-        condition,
-        resultSelector,
-        state
-      });
-    }
-
-    do {
-      if (condition) {
-        let conditionResult: boolean;
-        try {
-          conditionResult = condition(state);
-        } catch (err) {
-          subscriber.error(err);
-          return undefined;
-        }
-        if (!conditionResult) {
-          subscriber.complete();
-          break;
-        }
-      }
-      let value: T;
-      try {
-        value = resultSelector(state);
-      } catch (err) {
-        subscriber.error(err);
-        return undefined;
-      }
-      subscriber.next(value);
-      if (subscriber.closed) {
-        break;
-      }
-      try {
-        state = iterate(state);
-      } catch (err) {
-        subscriber.error(err);
-        return undefined;
-      }
-    } while (true);
-
-    return undefined;
-  });
-}
-
-function dispatch<T, S>(this: SchedulerAction<SchedulerState<T, S>>, state: SchedulerState<T, S>) {
-  const { subscriber, condition } = state;
-  if (subscriber.closed) {
-    return undefined;
-  }
-  if (state.needIterate) {
-    try {
-      state.state = state.iterate(state.state);
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-  } else {
-    state.needIterate = true;
-  }
-  if (condition) {
-    let conditionResult: boolean;
-    try {
-      conditionResult = condition(state.state);
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-    if (!conditionResult) {
-      subscriber.complete();
-      return undefined;
-    }
-    if (subscriber.closed) {
-      return undefined;
-    }
-  }
-  let value: T;
-  try {
-    value = state.resultSelector(state.state);
-  } catch (err) {
-    subscriber.error(err);
-    return undefined;
-  }
-  if (subscriber.closed) {
-    return undefined;
-  }
-  subscriber.next(value);
-  if (subscriber.closed) {
-    return undefined;
-  }
-  return this.schedule(state);
-}
diff --git a/node_modules/rxjs/src/internal/observable/iif.ts b/node_modules/rxjs/src/internal/observable/iif.ts
deleted file mode 100644
index 6618739..0000000
--- a/node_modules/rxjs/src/internal/observable/iif.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Observable } from '../Observable';
-import { defer } from './defer';
-import { EMPTY } from './empty';
-import { SubscribableOrPromise } from '../types';
-
-/**
- * Decides at subscription time which Observable will actually be subscribed.
- *
- * <span class="informal">`If` statement for Observables.</span>
- *
- * `iif` accepts a condition function and two Observables. When
- * an Observable returned by the operator is subscribed, condition function will be called.
- * Based on what boolean it returns at that moment, consumer will subscribe either to
- * the first Observable (if condition was true) or to the second (if condition was false). Condition
- * function may also not return anything - in that case condition will be evaluated as false and
- * second Observable will be subscribed.
- *
- * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that
- * was left undefined, resulting stream will simply complete immediately. That allows you to, rather
- * than controlling which Observable will be subscribed, decide at runtime if consumer should have access
- * to given Observable or not.
- *
- * If you have more complex logic that requires decision between more than two Observables, {@link defer}
- * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer}
- * and exists only for convenience and readability reasons.
- *
- *
- * ## Examples
- * ### Change at runtime which Observable will be subscribed
- * ```ts
- * import { iif, of } from 'rxjs';
- *
- * let subscribeToFirst;
- * const firstOrSecond = iif(
- *   () => subscribeToFirst,
- *   of('first'),
- *   of('second'),
- * );
- *
- * subscribeToFirst = true;
- * firstOrSecond.subscribe(value => console.log(value));
- *
- * // Logs:
- * // "first"
- *
- * subscribeToFirst = false;
- * firstOrSecond.subscribe(value => console.log(value));
- *
- * // Logs:
- * // "second"
- *
- * ```
- *
- * ### Control an access to an Observable
- * ```ts
- * let accessGranted;
- * const observableIfYouHaveAccess = iif(
- *   () => accessGranted,
- *   of('It seems you have an access...'), // Note that only one Observable is passed to the operator.
- * );
- *
- * accessGranted = true;
- * observableIfYouHaveAccess.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('The end'),
- * );
- *
- * // Logs:
- * // "It seems you have an access..."
- * // "The end"
- *
- * accessGranted = false;
- * observableIfYouHaveAccess.subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('The end'),
- * );
- *
- * // Logs:
- * // "The end"
- * ```
- *
- * @see {@link defer}
- *
- * @param {function(): boolean} condition Condition which Observable should be chosen.
- * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true.
- * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false.
- * @return {Observable} Either first or second Observable, depending on condition.
- * @static true
- * @name iif
- * @owner Observable
-*/
-export function iif<T = never, F = never>(
-  condition: () => boolean,
-  trueResult: SubscribableOrPromise<T> = EMPTY,
-  falseResult: SubscribableOrPromise<F> = EMPTY
-): Observable<T|F> {
-  return defer(() => condition() ? trueResult : falseResult);
-}
diff --git a/node_modules/rxjs/src/internal/observable/interval.ts b/node_modules/rxjs/src/internal/observable/interval.ts
deleted file mode 100644
index fc9d3f9..0000000
--- a/node_modules/rxjs/src/internal/observable/interval.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { isNumeric } from '../util/isNumeric';
-import { Subscriber } from '../Subscriber';
-
-/**
- * Creates an Observable that emits sequential numbers every specified
- * interval of time, on a specified {@link SchedulerLike}.
- *
- * <span class="informal">Emits incremental numbers periodically in time.
- * </span>
- *
- * ![](interval.png)
- *
- * `interval` returns an Observable that emits an infinite sequence of
- * ascending integers, with a constant interval of time of your choosing
- * between those emissions. The first emission is not sent immediately, but
- * only after the first period has passed. By default, this operator uses the
- * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any
- * {@link SchedulerLike} to it.
- *
- * ## Example
- * Emits ascending numbers, one every second (1000ms) up to the number 3
- * ```ts
- * import { interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const numbers = interval(1000);
- *
- * const takeFourNumbers = numbers.pipe(take(4));
- *
- * takeFourNumbers.subscribe(x => console.log('Next: ', x));
- *
- * // Logs:
- * // Next: 0
- * // Next: 1
- * // Next: 2
- * // Next: 3
- * ```
- *
- * @see {@link timer}
- * @see {@link delay}
- *
- * @param {number} [period=0] The interval size in milliseconds (by default)
- * or the time unit determined by the scheduler's clock.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling
- * the emission of values, and providing a notion of "time".
- * @return {Observable} An Observable that emits a sequential number each time
- * interval.
- * @static true
- * @name interval
- * @owner Observable
- */
-export function interval(period = 0,
-                         scheduler: SchedulerLike = async): Observable<number> {
-  if (!isNumeric(period) || period < 0) {
-    period = 0;
-  }
-
-  if (!scheduler || typeof scheduler.schedule !== 'function') {
-    scheduler = async;
-  }
-
-  return new Observable<number>(subscriber => {
-    subscriber.add(
-      scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })
-    );
-    return subscriber;
-  });
-}
-
-function dispatch(this: SchedulerAction<IntervalState>, state: IntervalState) {
-  const { subscriber, counter, period } = state;
-  subscriber.next(counter);
-  this.schedule({ subscriber, counter: counter + 1, period }, period);
-}
-
-interface IntervalState {
-  subscriber: Subscriber<number>;
-  counter: number;
-  period: number;
-}
diff --git a/node_modules/rxjs/src/internal/observable/merge.ts b/node_modules/rxjs/src/internal/observable/merge.ts
deleted file mode 100644
index f9f1faa..0000000
--- a/node_modules/rxjs/src/internal/observable/merge.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput, SchedulerLike} from '../types';
-import { isScheduler } from '../util/isScheduler';
-import { mergeAll } from '../operators/mergeAll';
-import { fromArray } from './fromArray';
-
-/* tslint:disable:max-line-length */
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T>(v1: ObservableInput<T>, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T>(v1: ObservableInput<T>, concurrent: number, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-
-export function merge<T>(v1: ObservableInput<T>): Observable<T>;
-export function merge<T>(v1: ObservableInput<T>, concurrent?: number): Observable<T>;
-export function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>): Observable<T | T2>;
-export function merge<T, T2>(v1: ObservableInput<T>, v2: ObservableInput<T2>, concurrent?: number): Observable<T | T2>;
-export function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<T | T2 | T3>;
-export function merge<T, T2, T3>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number): Observable<T | T2 | T3>;
-export function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<T | T2 | T3 | T4>;
-export function merge<T, T2, T3, T4>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number): Observable<T | T2 | T3 | T4>;
-export function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<T | T2 | T3 | T4 | T5>;
-export function merge<T, T2, T3, T4, T5>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5>;
-export function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export function merge<T, T2, T3, T4, T5, T6>(v1: ObservableInput<T>, v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export function merge<T>(...observables: (ObservableInput<T> | number)[]): Observable<T>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T>(...observables: (ObservableInput<T> | SchedulerLike | number)[]): Observable<T>;
-export function merge<T, R>(...observables: (ObservableInput<any> | number)[]): Observable<R>;
-/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/
-export function merge<T, R>(...observables: (ObservableInput<any> | SchedulerLike | number)[]): Observable<R>;
-/* tslint:enable:max-line-length */
-/**
- * Creates an output Observable which concurrently emits all values from every
- * given input Observable.
- *
- * <span class="informal">Flattens multiple Observables together by blending
- * their values into one Observable.</span>
- *
- * ![](merge.png)
- *
- * `merge` subscribes to each given input Observable (as arguments), and simply
- * forwards (without doing any transformation) all the values from all the input
- * Observables to the output Observable. The output Observable only completes
- * once all input Observables have completed. Any error delivered by an input
- * Observable will be immediately emitted on the output Observable.
- *
- * ## Examples
- * ### Merge together two Observables: 1s interval and clicks
- * ```ts
- * import { merge, fromEvent, interval } from 'rxjs';
- *
- * const clicks = fromEvent(document, 'click');
- * const timer = interval(1000);
- * const clicksOrTimer = merge(clicks, timer);
- * clicksOrTimer.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // timer will emit ascending values, one every second(1000ms) to console
- * // clicks logs MouseEvents to console everytime the "document" is clicked
- * // Since the two streams are merged you see these happening
- * // as they occur.
- * ```
- *
- * ### Merge together 3 Observables, but only 2 run concurrently
- * ```ts
- * import { merge, interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const timer1 = interval(1000).pipe(take(10));
- * const timer2 = interval(2000).pipe(take(6));
- * const timer3 = interval(500).pipe(take(10));
- * const concurrent = 2; // the argument
- * const merged = merge(timer1, timer2, timer3, concurrent);
- * merged.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // - First timer1 and timer2 will run concurrently
- * // - timer1 will emit a value every 1000ms for 10 iterations
- * // - timer2 will emit a value every 2000ms for 6 iterations
- * // - after timer1 hits it's max iteration, timer2 will
- * //   continue, and timer3 will start to run concurrently with timer2
- * // - when timer2 hits it's max iteration it terminates, and
- * //   timer3 will continue to emit a value every 500ms until it is complete
- * ```
- *
- * @see {@link mergeAll}
- * @see {@link mergeMap}
- * @see {@link mergeMapTo}
- * @see {@link mergeScan}
- *
- * @param {...ObservableInput} observables Input Observables to merge together.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input
- * Observables being subscribed to concurrently.
- * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing
- * concurrency of input Observables.
- * @return {Observable} an Observable that emits items that are the result of
- * every input Observable.
- * @static true
- * @name merge
- * @owner Observable
- */
-export function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): Observable<R> {
- let concurrent = Number.POSITIVE_INFINITY;
- let scheduler: SchedulerLike = null;
-  let last: any = observables[observables.length - 1];
-  if (isScheduler(last)) {
-    scheduler = <SchedulerLike>observables.pop();
-    if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
-      concurrent = <number>observables.pop();
-    }
-  } else if (typeof last === 'number') {
-    concurrent = <number>observables.pop();
-  }
-
-  if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {
-    return <Observable<R>>observables[0];
-  }
-
-  return mergeAll<R>(concurrent)(fromArray<any>(observables, scheduler));
-}
diff --git a/node_modules/rxjs/src/internal/observable/never.ts b/node_modules/rxjs/src/internal/observable/never.ts
deleted file mode 100644
index 280ea4e..0000000
--- a/node_modules/rxjs/src/internal/observable/never.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Observable } from '../Observable';
-import { noop } from '../util/noop';
-
-/**
- * An Observable that emits no items to the Observer and never completes.
- *
- * ![](never.png)
- *
- * A simple Observable that emits neither values nor errors nor the completion
- * notification. It can be used for testing purposes or for composing with other
- * Observables. Please note that by never emitting a complete notification, this
- * Observable keeps the subscription from being disposed automatically.
- * Subscriptions need to be manually disposed.
- *
- * ##  Example
- * ### Emit the number 7, then never emit anything else (not even complete)
- * ```ts
- * import { NEVER } from 'rxjs';
- * import { startWith } from 'rxjs/operators';
- *
- * function info() {
- *   console.log('Will not be called');
- * }
- * const result = NEVER.pipe(startWith(7));
- * result.subscribe(x => console.log(x), info, info);
- *
- * ```
- *
- * @see {@link Observable}
- * @see {@link index/EMPTY}
- * @see {@link of}
- * @see {@link throwError}
- */
-export const NEVER = new Observable<never>(noop);
-
-/**
- * @deprecated Deprecated in favor of using {@link NEVER} constant.
- */
-export function never () {
-  return NEVER;
-}
diff --git a/node_modules/rxjs/src/internal/observable/of.ts b/node_modules/rxjs/src/internal/observable/of.ts
deleted file mode 100644
index 752d4a2..0000000
--- a/node_modules/rxjs/src/internal/observable/of.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import { SchedulerLike } from '../types';
-import { isScheduler } from '../util/isScheduler';
-import { fromArray } from './fromArray';
-import { Observable } from '../Observable';
-import { scheduleArray } from '../scheduled/scheduleArray';
-
-/* tslint:disable:max-line-length */
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T>(a: T, scheduler: SchedulerLike): Observable<T>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2>(a: T, b: T2, scheduler: SchedulerLike): Observable<T | T2>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3>(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable<T | T2 | T3>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
-/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */
-export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
-export function of<T>(...args: (T | SchedulerLike)[]): Observable<T>;
-
-// TODO(benlesh): Update the typings for this when we can switch to TS 3.x
-export function of<T>(a: T): Observable<T>;
-export function of<T, T2>(a: T, b: T2): Observable<T | T2>;
-export function of<T, T2, T3>(a: T, b: T2, c: T3): Observable<T | T2 | T3>;
-export function of<T, T2, T3, T4>(a: T, b: T2, c: T3, d: T4): Observable<T | T2 | T3 | T4>;
-export function of<T, T2, T3, T4, T5>(a: T, b: T2, c: T3, d: T4, e: T5): Observable<T | T2 | T3 | T4 | T5>;
-export function of<T, T2, T3, T4, T5, T6>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable<T | T2 | T3 | T4 | T5 | T6>;
-export function of<T, T2, T3, T4, T5, T6, T7>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7>;
-export function of<T, T2, T3, T4, T5, T6, T7, T8>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
-export function of<T, T2, T3, T4, T5, T6, T7, T8, T9>(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9):
-  Observable<T | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
-export function of<T>(...args: T[]): Observable<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Converts the arguments to an observable sequence.
- *
- * <span class="informal">Each argument becomes a `next` notification.</span>
- *
- * ![](of.png)
- *
- * Unlike {@link from}, it does not do any flattening and emits each argument in whole
- * as a separate `next` notification.
- *
- * ## Examples
- *
- * Emit the values `10, 20, 30`
- *
- * ```ts
- * import { of } from 'rxjs';
- *
- * of(10, 20, 30)
- * .subscribe(
- *   next => console.log('next:', next),
- *   err => console.log('error:', err),
- *   () => console.log('the end'),
- * );
- * // result:
- * // 'next: 10'
- * // 'next: 20'
- * // 'next: 30'
- *
- * ```
- *
- * Emit the array `[1,2,3]`
- *
- * ```ts
- * import { of } from 'rxjs';
- *
- * of([1,2,3])
- * .subscribe(
- *   next => console.log('next:', next),
- *   err => console.log('error:', err),
- *   () => console.log('the end'),
- * );
- * // result:
- * // 'next: [1,2,3]'
- * ```
- *
- * @see {@link from}
- * @see {@link range}
- *
- * @param {...T} values A comma separated list of arguments you want to be emitted
- * @return {Observable} An Observable that emits the arguments
- * described above and then completes.
- * @method of
- * @owner Observable
- */
-
-export function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {
-  let scheduler = args[args.length - 1] as SchedulerLike;
-  if (isScheduler(scheduler)) {
-    args.pop();
-    return scheduleArray(args as T[], scheduler);
-  } else {
-    return fromArray(args as T[]);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts
deleted file mode 100644
index 9f0900e..0000000
--- a/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput } from '../types';
-import { from } from './from';
-import { isArray } from '../util/isArray';
-import { EMPTY } from './empty';
-
-/* tslint:disable:max-line-length */
-export function onErrorResumeNext<R>(v: ObservableInput<R>): Observable<R>;
-export function onErrorResumeNext<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;
-export function onErrorResumeNext<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;
-export function onErrorResumeNext<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;
-export function onErrorResumeNext<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;
-
-export function onErrorResumeNext<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-export function onErrorResumeNext<R>(array: ObservableInput<any>[]): Observable<R>;
-/* tslint:enable:max-line-length */
-
-/**
- * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one
- * that was passed.
- *
- * <span class="informal">Execute series of Observables no matter what, even if it means swallowing errors.</span>
- *
- * ![](onErrorResumeNext.png)
- *
- * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order.
- * If the source it's subscribed to emits an error or completes, it will move to the next source
- * without error.
- *
- * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}.
- *
- * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its
- * sources emits an error.
- *
- * Note that there is no way to handle any errors thrown by sources via the result of
- * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can
- * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`.
- *
- * ## Example
- * Subscribe to the next Observable after map fails</caption>
- * ```ts
- * import { onErrorResumeNext, of } from 'rxjs';
- * import { map } from 'rxjs/operators';
- *
- * onErrorResumeNext(
- *  of(1, 2, 3, 0).pipe(
- *    map(x => {
- *      if (x === 0) throw Error();
- *      return 10 / x;
- *    })
- *  ),
- *  of(1, 2, 3),
- * )
- * .subscribe(
- *   val => console.log(val),
- *   err => console.log(err),          // Will never be called.
- *   () => console.log('done'),
- * );
- *
- * // Logs:
- * // 10
- * // 5
- * // 3.3333333333333335
- * // 1
- * // 2
- * // 3
- * // "done"
- * ```
- *
- * @see {@link concat}
- * @see {@link catchError}
- *
- * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array.
- * @return {Observable} An Observable that concatenates all sources, one after the other,
- * ignoring all errors, such that any error causes it to move on to the next source.
- */
-export function onErrorResumeNext<T, R>(...sources: Array<ObservableInput<any> |
-                                                              Array<ObservableInput<any>> |
-                                                              ((...values: Array<any>) => R)>): Observable<R> {
-
-  if (sources.length === 0) {
-    return EMPTY;
-  }
-
-  const [ first, ...remainder ] = sources;
-
-  if (sources.length === 1 && isArray(first)) {
-    return onErrorResumeNext(...first);
-  }
-
-  return new Observable(subscriber => {
-    const subNext = () => subscriber.add(
-      onErrorResumeNext(...remainder).subscribe(subscriber)
-    );
-
-    return from(first).subscribe({
-      next(value) { subscriber.next(value); },
-      error: subNext,
-      complete: subNext,
-    });
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/pairs.ts b/node_modules/rxjs/src/internal/observable/pairs.ts
deleted file mode 100644
index 85bd81c..0000000
--- a/node_modules/rxjs/src/internal/observable/pairs.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-
-/**
- * Convert an object into an Observable of `[key, value]` pairs.
- *
- * <span class="informal">Turn entries of an object into a stream.</span>
- *
- * <img src="./img/pairs.png" width="100%">
- *
- * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each
- * emitted array has exactly two elements - the first is a key from the object
- * and the second is a value corresponding to that key. Keys are extracted from
- * an object via `Object.keys` function, which means that they will be only
- * enumerable keys that are present on an object directly - not ones inherited
- * via prototype chain.
- *
- * By default these arrays are emitted synchronously. To change that you can
- * pass a {@link SchedulerLike} as a second argument to `pairs`.
- *
- * @example <caption>Converts a javascript object to an Observable</caption>
- * ```ts
- * import { pairs } from 'rxjs';
- *
- * const obj = {
- *   foo: 42,
- *   bar: 56,
- *   baz: 78
- * };
- *
- * pairs(obj)
- * .subscribe(
- *   value => console.log(value),
- *   err => {},
- *   () => console.log('the end!')
- * );
- *
- * // Logs:
- * // ["foo", 42],
- * // ["bar", 56],
- * // ["baz", 78],
- * // "the end!"
- * ```
- *
- * @param {Object} obj The object to inspect and turn into an
- * Observable sequence.
- * @param {Scheduler} [scheduler] An optional IScheduler to schedule
- * when resulting Observable will emit values.
- * @returns {(Observable<Array<string|T>>)} An observable sequence of
- * [key, value] pairs from the object.
- */
-export function pairs<T>(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> {
-  if (!scheduler) {
-    return new Observable<[string, T]>(subscriber => {
-      const keys = Object.keys(obj);
-      for (let i = 0; i < keys.length && !subscriber.closed; i++) {
-        const key = keys[i];
-        if (obj.hasOwnProperty(key)) {
-          subscriber.next([key, obj[key]]);
-        }
-      }
-      subscriber.complete();
-    });
-  } else {
-    return new Observable<[string, T]>(subscriber => {
-      const keys = Object.keys(obj);
-      const subscription = new Subscription();
-      subscription.add(
-        scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }>
-          (dispatch, 0, { keys, index: 0, subscriber, subscription, obj }));
-      return subscription;
-    });
-  }
-}
-
-/** @internal */
-export function dispatch<T>(this: SchedulerAction<any>,
-                            state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) {
-  const { keys, index, subscriber, subscription, obj } = state;
-  if (!subscriber.closed) {
-    if (index < keys.length) {
-      const key = keys[index];
-      subscriber.next([key, obj[key]]);
-      subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj }));
-    } else {
-      subscriber.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/partition.ts b/node_modules/rxjs/src/internal/observable/partition.ts
deleted file mode 100644
index 637172f..0000000
--- a/node_modules/rxjs/src/internal/observable/partition.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { not } from '../util/not';
-import { subscribeTo } from '../util/subscribeTo';
-import { filter } from '../operators/filter';
-import { ObservableInput } from '../types';
-import { Observable } from '../Observable';
-
-/**
- * Splits the source Observable into two, one with values that satisfy a
- * predicate, and another with values that don't satisfy the predicate.
- *
- * <span class="informal">It's like {@link filter}, but returns two Observables:
- * one like the output of {@link filter}, and the other with values that did not
- * pass the condition.</span>
- *
- * ![](partition.png)
- *
- * `partition` outputs an array with two Observables that partition the values
- * from the source Observable through the given `predicate` function. The first
- * Observable in that array emits source values for which the predicate argument
- * returns true. The second Observable emits source values for which the
- * predicate returns false. The first behaves like {@link filter} and the second
- * behaves like {@link filter} with the predicate negated.
- *
- * ## Example
- * Partition a set of numbers into odds and evens observables
- * ```ts
- * import { of, partition } from 'rxjs';
- *
- * const observableValues = of(1, 2, 3, 4, 5, 6);
- * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0);
- *
- * odds$.subscribe(x => console.log('odds', x));
- * evens$.subscribe(x => console.log('evens', x));
- *
- * // Logs:
- * // odds 1
- * // odds 3
- * // odds 5
- * // evens 2
- * // evens 4
- * // evens 6
- * ```
- *
- * @see {@link filter}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates each value emitted by the source Observable. If it returns `true`,
- * the value is emitted on the first Observable in the returned array, if
- * `false` the value is emitted on the second Observable in the array. The
- * `index` parameter is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {[Observable<T>, Observable<T>]} An array with two Observables: one
- * with values that passed the predicate, and another with values that did not
- * pass the predicate.
- */
-export function partition<T>(
-  source: ObservableInput<T>,
-  predicate: (value: T, index: number) => boolean,
-  thisArg?: any
-): [Observable<T>, Observable<T>] {
-  return [
-    filter(predicate, thisArg)(new Observable<T>(subscribeTo(source))),
-    filter(not(predicate, thisArg) as any)(new Observable<T>(subscribeTo(source)))
-  ] as [Observable<T>, Observable<T>];
-}
diff --git a/node_modules/rxjs/src/internal/observable/race.ts b/node_modules/rxjs/src/internal/observable/race.ts
deleted file mode 100644
index e6e13de..0000000
--- a/node_modules/rxjs/src/internal/observable/race.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { fromArray } from './fromArray';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { TeardownLogic, ObservableInput } from '../types';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-// tslint:disable:max-line-length
-export function race<A>(arg: [ObservableInput<A>]): Observable<A>;
-export function race<A, B>(arg: [ObservableInput<A>, ObservableInput<B>]): Observable<A | B>;
-export function race<A, B, C>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>]): Observable<A | B | C>;
-export function race<A, B, C, D>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>]): Observable<A | B | C | D>;
-export function race<A, B, C, D, E>(arg: [ObservableInput<A>, ObservableInput<B>, ObservableInput<C>, ObservableInput<D>, ObservableInput<E>]): Observable<A | B | C | D | E>;
-export function race<T>(arg: ObservableInput<T>[]): Observable<T>;
-export function race(arg: ObservableInput<any>[]): Observable<{}>;
-
-export function race<A>(a: ObservableInput<A>): Observable<A>;
-export function race<A, B>(a: ObservableInput<A>, b: ObservableInput<B>): Observable<A | B>;
-export function race<A, B, C>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>): Observable<A | B | C>;
-export function race<A, B, C, D>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>): Observable<A | B | C | D>;
-export function race<A, B, C, D, E>(a: ObservableInput<A>, b: ObservableInput<B>, c: ObservableInput<C>, d: ObservableInput<D>, e: ObservableInput<E>): Observable<A | B | C | D | E>;
-// tslint:enable:max-line-length
-
-export function race<T>(observables: ObservableInput<T>[]): Observable<T>;
-export function race(observables: ObservableInput<any>[]): Observable<{}>;
-export function race<T>(...observables: ObservableInput<T>[]): Observable<T>;
-export function race(...observables: ObservableInput<any>[]): Observable<{}>;
-
-/**
- * Returns an Observable that mirrors the first source Observable to emit an item.
- *
- * ## Example
- * ### Subscribes to the observable that was the first to start emitting.
- *
- * ```ts
- * import { race, interval } from 'rxjs';
- * import { mapTo } from 'rxjs/operators';
- *
- * const obs1 = interval(1000).pipe(mapTo('fast one'));
- * const obs2 = interval(3000).pipe(mapTo('medium one'));
- * const obs3 = interval(5000).pipe(mapTo('slow one'));
- *
- * race(obs3, obs1, obs2)
- * .subscribe(
- *   winner => console.log(winner)
- * );
- *
- * // result:
- * // a series of 'fast one'
- * ```
- *
- * @param {...Observables} ...observables sources used to race for which Observable emits first.
- * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.
- * @static true
- * @name race
- * @owner Observable
- */
-export function race<T>(...observables: ObservableInput<any>[]): Observable<T> {
-  // if the only argument is an array, it was most likely called with
-  // `race([obs1, obs2, ...])`
-  if (observables.length === 1) {
-    if (isArray(observables[0])) {
-      observables = observables[0] as Observable<any>[];
-    } else {
-      return observables[0] as Observable<T>;
-    }
-  }
-
-  return fromArray(observables, undefined).lift(new RaceOperator<T>());
-}
-
-export class RaceOperator<T> implements Operator<T, T> {
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new RaceSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class RaceSubscriber<T> extends OuterSubscriber<T, T> {
-  private hasFirst: boolean = false;
-  private observables: Observable<any>[] = [];
-  private subscriptions: Subscription[] = [];
-
-  constructor(destination: Subscriber<T>) {
-    super(destination);
-  }
-
-  protected _next(observable: any): void {
-    this.observables.push(observable);
-  }
-
-  protected _complete() {
-    const observables = this.observables;
-    const len = observables.length;
-
-    if (len === 0) {
-      this.destination.complete();
-    } else {
-      for (let i = 0; i < len && !this.hasFirst; i++) {
-        let observable = observables[i];
-        let subscription = subscribeToResult(this, observable, observable as any, i);
-
-        if (this.subscriptions) {
-          this.subscriptions.push(subscription);
-        }
-        this.add(subscription);
-      }
-      this.observables = null;
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: T,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, T>): void {
-    if (!this.hasFirst) {
-      this.hasFirst = true;
-
-      for (let i = 0; i < this.subscriptions.length; i++) {
-        if (i !== outerIndex) {
-          let subscription = this.subscriptions[i];
-
-          subscription.unsubscribe();
-          this.remove(subscription);
-        }
-      }
-
-      this.subscriptions = null;
-    }
-
-    this.destination.next(innerValue);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/observable/range.ts b/node_modules/rxjs/src/internal/observable/range.ts
deleted file mode 100644
index 316d378..0000000
--- a/node_modules/rxjs/src/internal/observable/range.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-import { SchedulerAction, SchedulerLike } from '../types';
-import { Observable } from '../Observable';
-
-/**
- * Creates an Observable that emits a sequence of numbers within a specified
- * range.
- *
- * <span class="informal">Emits a sequence of numbers in a range.</span>
- *
- * ![](range.png)
- *
- * `range` operator emits a range of sequential integers, in order, where you
- * select the `start` of the range and its `length`. By default, uses no
- * {@link SchedulerLike} and just delivers the notifications synchronously, but may use
- * an optional {@link SchedulerLike} to regulate those deliveries.
- *
- * ## Example
- * Emits the numbers 1 to 10</caption>
- * ```ts
- * import { range } from 'rxjs';
- *
- * const numbers = range(1, 10);
- * numbers.subscribe(x => console.log(x));
- * ```
- * @see {@link timer}
- * @see {@link index/interval}
- *
- * @param {number} [start=0] The value of the first integer in the sequence.
- * @param {number} count The number of sequential integers to generate.
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling
- * the emissions of the notifications.
- * @return {Observable} An Observable of numbers that emits a finite range of
- * sequential integers.
- * @static true
- * @name range
- * @owner Observable
- */
-export function range(start: number = 0,
-                      count?: number,
-                      scheduler?: SchedulerLike): Observable<number> {
-  return new Observable<number>(subscriber => {
-    if (count === undefined) {
-      count = start;
-      start = 0;
-    }
-
-    let index = 0;
-    let current = start;
-
-    if (scheduler) {
-      return scheduler.schedule(dispatch, 0, {
-        index, count, start, subscriber
-      });
-    } else {
-      do {
-        if (index++ >= count) {
-          subscriber.complete();
-          break;
-        }
-        subscriber.next(current++);
-        if (subscriber.closed) {
-          break;
-        }
-      } while (true);
-    }
-
-    return undefined;
-  });
-}
-
-/** @internal */
-export function dispatch(this: SchedulerAction<any>, state: any) {
-  const { start, index, count, subscriber } = state;
-
-  if (index >= count) {
-    subscriber.complete();
-    return;
-  }
-
-  subscriber.next(start);
-
-  if (subscriber.closed) {
-    return;
-  }
-
-  state.index = index + 1;
-  state.start = start + 1;
-
-  this.schedule(state);
-}
diff --git a/node_modules/rxjs/src/internal/observable/throwError.ts b/node_modules/rxjs/src/internal/observable/throwError.ts
deleted file mode 100644
index 4beb397..0000000
--- a/node_modules/rxjs/src/internal/observable/throwError.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { Subscriber } from '../Subscriber';
-
-/**
- * Creates an Observable that emits no items to the Observer and immediately
- * emits an error notification.
- *
- * <span class="informal">Just emits 'error', and nothing else.
- * </span>
- *
- * ![](throw.png)
- *
- * This static operator is useful for creating a simple Observable that only
- * emits the error notification. It can be used for composing with other
- * Observables, such as in a {@link mergeMap}.
- *
- * ## Examples
- * ### Emit the number 7, then emit an error
- * ```ts
- * import { throwError, concat, of } from 'rxjs';
- *
- * const result = concat(of(7), throwError(new Error('oops!')));
- * result.subscribe(x => console.log(x), e => console.error(e));
- *
- * // Logs:
- * // 7
- * // Error: oops!
- * ```
- *
- * ---
- *
- * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2
- * ```ts
- * import { throwError, interval, of } from 'rxjs';
- * import { mergeMap } from 'rxjs/operators';
- *
- * interval(1000).pipe(
- *   mergeMap(x => x === 2
- *     ? throwError('Twos are bad')
- *     : of('a', 'b', 'c')
- *   ),
- * ).subscribe(x => console.log(x), e => console.error(e));
- *
- * // Logs:
- * // a
- * // b
- * // c
- * // a
- * // b
- * // c
- * // Twos are bad
- * ```
- *
- * @see {@link Observable}
- * @see {@link empty}
- * @see {@link never}
- * @see {@link of}
- *
- * @param {any} error The particular Error to pass to the error notification.
- * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling
- * the emission of the error notification.
- * @return {Observable} An error Observable: emits only the error notification
- * using the given error argument.
- * @static true
- * @name throwError
- * @owner Observable
- */
-export function throwError(error: any, scheduler?: SchedulerLike): Observable<never> {
-  if (!scheduler) {
-    return new Observable(subscriber => subscriber.error(error));
-  } else {
-    return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));
-  }
-}
-
-interface DispatchArg {
-  error: any;
-  subscriber: Subscriber<any>;
-}
-
-function dispatch({ error, subscriber }: DispatchArg) {
-  subscriber.error(error);
-}
diff --git a/node_modules/rxjs/src/internal/observable/timer.ts b/node_modules/rxjs/src/internal/observable/timer.ts
deleted file mode 100644
index a061060..0000000
--- a/node_modules/rxjs/src/internal/observable/timer.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerAction, SchedulerLike } from '../types';
-import { async } from '../scheduler/async';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-import { Subscriber } from '../Subscriber';
-
-/**
- * Creates an Observable that starts emitting after an `dueTime` and
- * emits ever increasing numbers after each `period` of time thereafter.
- *
- * <span class="informal">Its like {@link index/interval}, but you can specify when
- * should the emissions start.</span>
- *
- * ![](timer.png)
- *
- * `timer` returns an Observable that emits an infinite sequence of ascending
- * integers, with a constant interval of time, `period` of your choosing
- * between those emissions. The first emission happens after the specified
- * `dueTime`. The initial delay may be a `Date`. By default, this
- * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you
- * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output
- * Observable emits only one value, `0`. Otherwise, it emits an infinite
- * sequence.
- *
- * ## Examples
- * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds
- * ```ts
- * import { timer } from 'rxjs';
- *
- * const numbers = timer(3000, 1000);
- * numbers.subscribe(x => console.log(x));
- * ```
- *
- * ### Emits one number after five seconds
- * ```ts
- * import { timer } from 'rxjs';
- *
- * const numbers = timer(5000);
- * numbers.subscribe(x => console.log(x));
- * ```
- * @see {@link index/interval}
- * @see {@link delay}
- *
- * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting
- * milliseconds to wait before emitting the first value of 0`.
- * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the
- * subsequent numbers.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling
- * the emission of values, and providing a notion of "time".
- * @return {Observable} An Observable that emits a `0` after the
- * `dueTime` and ever increasing numbers after each `period` of time
- * thereafter.
- * @static true
- * @name timer
- * @owner Observable
- */
-export function timer(dueTime: number | Date = 0,
-                      periodOrScheduler?: number | SchedulerLike,
-                      scheduler?: SchedulerLike): Observable<number> {
-  let period = -1;
-  if (isNumeric(periodOrScheduler)) {
-    period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
-  } else if (isScheduler(periodOrScheduler)) {
-    scheduler = periodOrScheduler as any;
-  }
-
-  if (!isScheduler(scheduler)) {
-    scheduler = async;
-  }
-
-  return new Observable(subscriber => {
-    const due = isNumeric(dueTime)
-      ? (dueTime as number)
-      : (+dueTime - scheduler.now());
-
-    return scheduler.schedule(dispatch, due, {
-      index: 0, period, subscriber
-    });
-  });
-}
-
-interface TimerState {
-  index: number;
-  period: number;
-  subscriber: Subscriber<number>;
-}
-
-function dispatch(this: SchedulerAction<TimerState>, state: TimerState) {
-  const { index, period, subscriber } = state;
-  subscriber.next(index);
-
-  if (subscriber.closed) {
-    return;
-  } else if (period === -1) {
-    return subscriber.complete();
-  }
-
-  state.index = index + 1;
-  this.schedule(state, period);
-}
diff --git a/node_modules/rxjs/src/internal/observable/using.ts b/node_modules/rxjs/src/internal/observable/using.ts
deleted file mode 100644
index 568d7a8..0000000
--- a/node_modules/rxjs/src/internal/observable/using.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { Observable } from '../Observable';
-import { Unsubscribable, ObservableInput } from '../types';
-import { from } from './from'; // from from from! LAWL
-import { EMPTY } from './empty';
-
-/**
- * Creates an Observable that uses a resource which will be disposed at the same time as the Observable.
- *
- * <span class="informal">Use it when you catch yourself cleaning up after an Observable.</span>
- *
- * `using` is a factory operator, which accepts two functions. First function returns a disposable resource.
- * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with
- * that object and should return an Observable. That Observable can use resource object during its execution.
- * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor
- * resource object will be shared in any way between subscriptions.
- *
- * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed
- * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output
- * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself,
- * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which
- * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone
- * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make
- * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time.
- *
- * @see {@link defer}
- *
- * @param {function(): ISubscription} resourceFactory A function which creates any resource object
- * that implements `unsubscribe` method.
- * @param {function(resource: ISubscription): Observable<T>} observableFactory A function which
- * creates an Observable, that can use injected resource object.
- * @return {Observable<T>} An Observable that behaves the same as Observable returned by `observableFactory`, but
- * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object.
- */
-export function using<T>(resourceFactory: () => Unsubscribable | void,
-                         observableFactory: (resource: Unsubscribable | void) => ObservableInput<T> | void): Observable<T> {
-  return new Observable<T>(subscriber => {
-    let resource: Unsubscribable | void;
-
-    try {
-      resource = resourceFactory();
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-
-    let result: ObservableInput<T> | void;
-    try {
-      result = observableFactory(resource);
-    } catch (err) {
-      subscriber.error(err);
-      return undefined;
-    }
-
-    const source = result ? from(result) : EMPTY;
-    const subscription = source.subscribe(subscriber);
-    return () => {
-      subscription.unsubscribe();
-      if (resource) {
-        resource.unsubscribe();
-      }
-    };
-  });
-}
diff --git a/node_modules/rxjs/src/internal/observable/zip.ts b/node_modules/rxjs/src/internal/observable/zip.ts
deleted file mode 100644
index fbe0756..0000000
--- a/node_modules/rxjs/src/internal/observable/zip.ts
+++ /dev/null
@@ -1,330 +0,0 @@
-import { Observable } from '../Observable';
-import { fromArray } from './fromArray';
-import { isArray } from '../util/isArray';
-import { Operator } from '../Operator';
-import { ObservableInput, PartialObserver, ObservedValueOf } from '../types';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { iterator as Symbol_iterator } from '../../internal/symbol/iterator';
-
-/* tslint:disable:max-line-length */
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, R>(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): Observable<R>;
-
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>>(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>;
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export function zip<O1 extends ObservableInput<any>, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-
-export function zip<O extends ObservableInput<any>>(array: O[]): Observable<ObservedValueOf<O>[]>;
-export function zip<R>(array: ObservableInput<any>[]): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<O extends ObservableInput<any>, R>(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R): Observable<R>;
-/** @deprecated resultSelector is no longer supported, pipe to map instead */
-export function zip<R>(array: ObservableInput<any>[], resultSelector: (...values: any[]) => R): Observable<R>;
-
-export function zip<O extends ObservableInput<any>>(...observables: O[]): Observable<ObservedValueOf<O>[]>;
-export function zip<O extends ObservableInput<any>, R>(...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>): Observable<R>;
-export function zip<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each
- * of its input Observables.
- *
- * If the last parameter is a function, this function is used to compute the created value from the input values.
- * Otherwise, an array of the input values is returned.
- *
- * ## Example
- * Combine age and name from different sources
- * ```ts
- * import { zip, of } from 'rxjs';
- * import { map } from 'rxjs/operators';
- *
- * let age$ = of<number>(27, 25, 29);
- * let name$ = of<string>('Foo', 'Bar', 'Beer');
- * let isDev$ = of<boolean>(true, true, false);
- *
- * zip(age$, name$, isDev$).pipe(
- *   map(([age, name, isDev]) => ({ age, name, isDev })),
- * )
- * .subscribe(x => console.log(x));
- *
- * // outputs
- * // { age: 27, name: 'Foo', isDev: true }
- * // { age: 25, name: 'Bar', isDev: true }
- * // { age: 29, name: 'Beer', isDev: false }
- * ```
- * @param observables
- * @return {Observable<R>}
- * @static true
- * @name zip
- * @owner Observable
- */
-export function zip<O extends ObservableInput<any>, R>(
-  ...observables: Array<O | ((...values: ObservedValueOf<O>[]) => R)>
-): Observable<ObservedValueOf<O>[]|R> {
-  const resultSelector = <((...ys: Array<any>) => R)> observables[observables.length - 1];
-  if (typeof resultSelector === 'function') {
-    observables.pop();
-  }
-  return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));
-}
-
-export class ZipOperator<T, R> implements Operator<T, R> {
-
-  resultSelector: (...values: Array<any>) => R;
-
-  constructor(resultSelector?: (...values: Array<any>) => R) {
-    this.resultSelector = resultSelector;
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class ZipSubscriber<T, R> extends Subscriber<T> {
-  private values: any;
-  private resultSelector: (...values: Array<any>) => R;
-  private iterators: LookAheadIterator<any>[] = [];
-  private active = 0;
-
-  constructor(destination: Subscriber<R>,
-              resultSelector?: (...values: Array<any>) => R,
-              values: any = Object.create(null)) {
-    super(destination);
-    this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
-    this.values = values;
-  }
-
-  protected _next(value: any) {
-    const iterators = this.iterators;
-    if (isArray(value)) {
-      iterators.push(new StaticArrayIterator(value));
-    } else if (typeof value[Symbol_iterator] === 'function') {
-      iterators.push(new StaticIterator(value[Symbol_iterator]()));
-    } else {
-      iterators.push(new ZipBufferIterator(this.destination, this, value));
-    }
-  }
-
-  protected _complete() {
-    const iterators = this.iterators;
-    const len = iterators.length;
-
-    this.unsubscribe();
-
-    if (len === 0) {
-      this.destination.complete();
-      return;
-    }
-
-    this.active = len;
-    for (let i = 0; i < len; i++) {
-      let iterator: ZipBufferIterator<any, any> = <any>iterators[i];
-      if (iterator.stillUnsubscribed) {
-        const destination = this.destination as Subscription;
-        destination.add(iterator.subscribe(iterator, i));
-      } else {
-        this.active--; // not an observable
-      }
-    }
-  }
-
-  notifyInactive() {
-    this.active--;
-    if (this.active === 0) {
-      this.destination.complete();
-    }
-  }
-
-  checkIterators() {
-    const iterators = this.iterators;
-    const len = iterators.length;
-    const destination = this.destination;
-
-    // abort if not all of them have values
-    for (let i = 0; i < len; i++) {
-      let iterator = iterators[i];
-      if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
-        return;
-      }
-    }
-
-    let shouldComplete = false;
-    const args: any[] = [];
-    for (let i = 0; i < len; i++) {
-      let iterator = iterators[i];
-      let result = iterator.next();
-
-      // check to see if it's completed now that you've gotten
-      // the next value.
-      if (iterator.hasCompleted()) {
-        shouldComplete = true;
-      }
-
-      if (result.done) {
-        destination.complete();
-        return;
-      }
-
-      args.push(result.value);
-    }
-
-    if (this.resultSelector) {
-      this._tryresultSelector(args);
-    } else {
-      destination.next(args);
-    }
-
-    if (shouldComplete) {
-      destination.complete();
-    }
-  }
-
-  protected _tryresultSelector(args: any[]) {
-    let result: any;
-    try {
-      result = this.resultSelector.apply(this, args);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.next(result);
-  }
-}
-
-interface LookAheadIterator<T> extends Iterator<T> {
-  hasValue(): boolean;
-  hasCompleted(): boolean;
-}
-
-class StaticIterator<T> implements LookAheadIterator<T> {
-  private nextResult: IteratorResult<T>;
-
-  constructor(private iterator: Iterator<T>) {
-    this.nextResult = iterator.next();
-  }
-
-  hasValue() {
-    return true;
-  }
-
-  next(): IteratorResult<T> {
-    const result = this.nextResult;
-    this.nextResult = this.iterator.next();
-    return result;
-  }
-
-  hasCompleted() {
-    const nextResult = this.nextResult;
-    return nextResult && nextResult.done;
-  }
-}
-
-class StaticArrayIterator<T> implements LookAheadIterator<T> {
-  private index = 0;
-  private length = 0;
-
-  constructor(private array: T[]) {
-    this.length = array.length;
-  }
-
-  [Symbol_iterator]() {
-    return this;
-  }
-
-  next(value?: any): IteratorResult<T> {
-    const i = this.index++;
-    const array = this.array;
-    return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
-  }
-
-  hasValue() {
-    return this.array.length > this.index;
-  }
-
-  hasCompleted() {
-    return this.array.length === this.index;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class ZipBufferIterator<T, R> extends OuterSubscriber<T, R> implements LookAheadIterator<T> {
-  stillUnsubscribed = true;
-  buffer: T[] = [];
-  isComplete = false;
-
-  constructor(destination: PartialObserver<T>,
-              private parent: ZipSubscriber<T, R>,
-              private observable: Observable<T>) {
-    super(destination);
-  }
-
-  [Symbol_iterator]() {
-    return this;
-  }
-
-  // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next
-  //    this is legit because `next()` will never be called by a subscription in this case.
-  next(): IteratorResult<T> {
-    const buffer = this.buffer;
-    if (buffer.length === 0 && this.isComplete) {
-      return { value: null, done: true };
-    } else {
-      return { value: buffer.shift(), done: false };
-    }
-  }
-
-  hasValue() {
-    return this.buffer.length > 0;
-  }
-
-  hasCompleted() {
-    return this.buffer.length === 0 && this.isComplete;
-  }
-
-  notifyComplete() {
-    if (this.buffer.length > 0) {
-      this.isComplete = true;
-      this.parent.notifyInactive();
-    } else {
-      this.destination.complete();
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.buffer.push(innerValue);
-    this.parent.checkIterators();
-  }
-
-  subscribe(value: any, index: number) {
-    return subscribeToResult<any, any>(this, this.observable, this, index);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/audit.ts b/node_modules/rxjs/src/internal/operators/audit.ts
deleted file mode 100644
index 9028abd..0000000
--- a/node_modules/rxjs/src/internal/operators/audit.ts
+++ /dev/null
@@ -1,128 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-/**
- * Ignores source values for a duration determined by another Observable, then
- * emits the most recent value from the source Observable, then repeats this
- * process.
- *
- * <span class="informal">It's like {@link auditTime}, but the silencing
- * duration is determined by a second Observable.</span>
- *
- * ![](audit.png)
- *
- * `audit` is similar to `throttle`, but emits the last value from the silenced
- * time window, instead of the first value. `audit` emits the most recent value
- * from the source Observable on the output Observable as soon as its internal
- * timer becomes disabled, and ignores source values while the timer is enabled.
- * Initially, the timer is disabled. As soon as the first source value arrives,
- * the timer is enabled by calling the `durationSelector` function with the
- * source value, which returns the "duration" Observable. When the duration
- * Observable emits a value or completes, the timer is disabled, then the most
- * recent source value is emitted on the output Observable, and this process
- * repeats for the next source value.
- *
- * ## Example
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { audit } from 'rxjs/operators'
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(audit(ev => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- * @see {@link auditTime}
- * @see {@link debounce}
- * @see {@link delayWhen}
- * @see {@link sample}
- * @see {@link throttle}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the silencing
- * duration, returned as an Observable or a Promise.
- * @return {Observable<T>} An Observable that performs rate-limiting of
- * emissions from the source Observable.
- * @method audit
- * @owner Observable
- */
-export function audit<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T> {
-  return function auditOperatorFunction(source: Observable<T>) {
-    return source.lift(new AuditOperator(durationSelector));
-  };
-}
-
-class AuditOperator<T> implements Operator<T, T> {
-  constructor(private durationSelector: (value: T) => SubscribableOrPromise<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new AuditSubscriber<T, T>(subscriber, this.durationSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class AuditSubscriber<T, R> extends OuterSubscriber<T, R> {
-
-  private value: T;
-  private hasValue: boolean = false;
-  private throttled: Subscription;
-
-  constructor(destination: Subscriber<T>,
-              private durationSelector: (value: T) => SubscribableOrPromise<any>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    this.value = value;
-    this.hasValue = true;
-    if (!this.throttled) {
-      let duration;
-      try {
-        const { durationSelector } = this;
-        duration = durationSelector(value);
-      } catch (err) {
-        return this.destination.error(err);
-      }
-      const innerSubscription = subscribeToResult(this, duration);
-      if (!innerSubscription || innerSubscription.closed) {
-        this.clearThrottle();
-      } else {
-        this.add(this.throttled = innerSubscription);
-      }
-    }
-  }
-
-  clearThrottle() {
-    const { value, hasValue, throttled } = this;
-    if (throttled) {
-      this.remove(throttled);
-      this.throttled = null;
-      throttled.unsubscribe();
-    }
-    if (hasValue) {
-      this.value = null;
-      this.hasValue = false;
-      this.destination.next(value);
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number): void {
-    this.clearThrottle();
-  }
-
-  notifyComplete(): void {
-    this.clearThrottle();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/auditTime.ts b/node_modules/rxjs/src/internal/operators/auditTime.ts
deleted file mode 100644
index 50facdc..0000000
--- a/node_modules/rxjs/src/internal/operators/auditTime.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { async } from '../scheduler/async';
-import { audit } from './audit';
-import { timer } from '../observable/timer';
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-
-/**
- * Ignores source values for `duration` milliseconds, then emits the most recent
- * value from the source Observable, then repeats this process.
- *
- * <span class="informal">When it sees a source value, it ignores that plus
- * the next ones for `duration` milliseconds, and then it emits the most recent
- * value from the source.</span>
- *
- * ![](auditTime.png)
- *
- * `auditTime` is similar to `throttleTime`, but emits the last value from the
- * silenced time window, instead of the first value. `auditTime` emits the most
- * recent value from the source Observable on the output Observable as soon as
- * its internal timer becomes disabled, and ignores source values while the
- * timer is enabled. Initially, the timer is disabled. As soon as the first
- * source value arrives, the timer is enabled. After `duration` milliseconds (or
- * the time unit determined internally by the optional `scheduler`) has passed,
- * the timer is disabled, then the most recent source value is emitted on the
- * output Observable, and this process repeats for the next source value.
- * Optionally takes a {@link SchedulerLike} for managing timers.
- *
- * ## Example
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { auditTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(auditTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttleTime}
- *
- * @param {number} duration Time to wait before emitting the most recent source
- * value, measured in milliseconds or the time unit determined internally
- * by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the rate-limiting behavior.
- * @return {Observable<T>} An Observable that performs rate-limiting of
- * emissions from the source Observable.
- * @method auditTime
- * @owner Observable
- */
-export function auditTime<T>(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T> {
-  return audit(() => timer(duration, scheduler));
-}
diff --git a/node_modules/rxjs/src/internal/operators/buffer.ts b/node_modules/rxjs/src/internal/operators/buffer.ts
deleted file mode 100644
index a1abae4..0000000
--- a/node_modules/rxjs/src/internal/operators/buffer.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OperatorFunction } from '../types';
-
-/**
- * Buffers the source Observable values until `closingNotifier` emits.
- *
- * <span class="informal">Collects values from the past as an array, and emits
- * that array only when another Observable emits.</span>
- *
- * ![](buffer.png)
- *
- * Buffers the incoming Observable values until the given `closingNotifier`
- * Observable emits a value, at which point it emits the buffer on the output
- * Observable and starts a new buffer internally, awaiting the next time
- * `closingNotifier` emits.
- *
- * ## Example
- *
- * On every click, emit array of most recent interval events
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { buffer } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const intervalEvents = interval(1000);
- * const buffered = intervalEvents.pipe(buffer(clicks));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link bufferWhen}
- * @see {@link window}
- *
- * @param {Observable<any>} closingNotifier An Observable that signals the
- * buffer to be emitted on the output Observable.
- * @return {Observable<T[]>} An Observable of buffers, which are arrays of
- * values.
- * @method buffer
- * @owner Observable
- */
-export function buffer<T>(closingNotifier: Observable<any>): OperatorFunction<T, T[]> {
-  return function bufferOperatorFunction(source: Observable<T>) {
-    return source.lift(new BufferOperator<T>(closingNotifier));
-  };
-}
-
-class BufferOperator<T> implements Operator<T, T[]> {
-
-  constructor(private closingNotifier: Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T[]>, source: any): any {
-    return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferSubscriber<T> extends OuterSubscriber<T, any> {
-  private buffer: T[] = [];
-
-  constructor(destination: Subscriber<T[]>, closingNotifier: Observable<any>) {
-    super(destination);
-    this.add(subscribeToResult(this, closingNotifier));
-  }
-
-  protected _next(value: T) {
-    this.buffer.push(value);
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, any>): void {
-    const buffer = this.buffer;
-    this.buffer = [];
-    this.destination.next(buffer);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/bufferCount.ts b/node_modules/rxjs/src/internal/operators/bufferCount.ts
deleted file mode 100644
index ea01b6a..0000000
--- a/node_modules/rxjs/src/internal/operators/bufferCount.ts
+++ /dev/null
@@ -1,158 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Buffers the source Observable values until the size hits the maximum
- * `bufferSize` given.
- *
- * <span class="informal">Collects values from the past as an array, and emits
- * that array only when its size reaches `bufferSize`.</span>
- *
- * ![](bufferCount.png)
- *
- * Buffers a number of values from the source Observable by `bufferSize` then
- * emits the buffer and clears it, and starts a new buffer each
- * `startBufferEvery` values. If `startBufferEvery` is not provided or is
- * `null`, then new buffers are started immediately at the start of the source
- * and when each buffer closes and is emitted.
- *
- * ## Examples
- *
- * Emit the last two click events as an array
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferCount } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferCount(2));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * On every click, emit the last two click events as an array
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferCount } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferCount(2, 1));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link bufferWhen}
- * @see {@link pairwise}
- * @see {@link windowCount}
- *
- * @param {number} bufferSize The maximum size of the buffer emitted.
- * @param {number} [startBufferEvery] Interval at which to start a new buffer.
- * For example if `startBufferEvery` is `2`, then a new buffer will be started
- * on every other value from the source. A new buffer is started at the
- * beginning of the source by default.
- * @return {Observable<T[]>} An Observable of arrays of buffered values.
- * @method bufferCount
- * @owner Observable
- */
-export function bufferCount<T>(bufferSize: number, startBufferEvery: number = null): OperatorFunction<T, T[]> {
-  return function bufferCountOperatorFunction(source: Observable<T>) {
-    return source.lift(new BufferCountOperator<T>(bufferSize, startBufferEvery));
-  };
-}
-
-class BufferCountOperator<T> implements Operator<T, T[]> {
-  private subscriberClass: any;
-
-  constructor(private bufferSize: number, private startBufferEvery: number) {
-    if (!startBufferEvery || bufferSize === startBufferEvery) {
-      this.subscriberClass = BufferCountSubscriber;
-    } else {
-      this.subscriberClass = BufferSkipCountSubscriber;
-    }
-  }
-
-  call(subscriber: Subscriber<T[]>, source: any): TeardownLogic {
-    return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferCountSubscriber<T> extends Subscriber<T> {
-  private buffer: T[] = [];
-
-  constructor(destination: Subscriber<T[]>, private bufferSize: number) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const buffer = this.buffer;
-
-    buffer.push(value);
-
-    if (buffer.length == this.bufferSize) {
-      this.destination.next(buffer);
-      this.buffer = [];
-    }
-  }
-
-  protected _complete(): void {
-    const buffer = this.buffer;
-    if (buffer.length > 0) {
-      this.destination.next(buffer);
-    }
-    super._complete();
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferSkipCountSubscriber<T> extends Subscriber<T> {
-  private buffers: Array<T[]> = [];
-  private count: number = 0;
-
-  constructor(destination: Subscriber<T[]>, private bufferSize: number, private startBufferEvery: number) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const { bufferSize, startBufferEvery, buffers, count } = this;
-
-    this.count++;
-    if (count % startBufferEvery === 0) {
-      buffers.push([]);
-    }
-
-    for (let i = buffers.length; i--; ) {
-      const buffer = buffers[i];
-      buffer.push(value);
-      if (buffer.length === bufferSize) {
-        buffers.splice(i, 1);
-        this.destination.next(buffer);
-      }
-    }
-  }
-
-  protected _complete(): void {
-    const { buffers, destination } = this;
-
-    while (buffers.length > 0) {
-      let buffer = buffers.shift();
-      if (buffer.length > 0) {
-        destination.next(buffer);
-      }
-    }
-    super._complete();
-  }
-
-}
diff --git a/node_modules/rxjs/src/internal/operators/bufferTime.ts b/node_modules/rxjs/src/internal/operators/bufferTime.ts
deleted file mode 100644
index 6edc64b..0000000
--- a/node_modules/rxjs/src/internal/operators/bufferTime.ts
+++ /dev/null
@@ -1,250 +0,0 @@
-import { Operator } from '../Operator';
-import { async } from '../scheduler/async';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { isScheduler } from '../util/isScheduler';
-import { OperatorFunction, SchedulerAction, SchedulerLike } from '../types';
-
-/* tslint:disable:max-line-length */
-export function bufferTime<T>(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
-export function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
-export function bufferTime<T>(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction<T, T[]>;
-/* tslint:enable:max-line-length */
-
-/**
- * Buffers the source Observable values for a specific time period.
- *
- * <span class="informal">Collects values from the past as an array, and emits
- * those arrays periodically in time.</span>
- *
- * ![](bufferTime.png)
- *
- * Buffers values from the source for a specific time duration `bufferTimeSpan`.
- * Unless the optional argument `bufferCreationInterval` is given, it emits and
- * resets the buffer every `bufferTimeSpan` milliseconds. If
- * `bufferCreationInterval` is given, this operator opens the buffer every
- * `bufferCreationInterval` milliseconds and closes (emits and resets) the
- * buffer every `bufferTimeSpan` milliseconds. When the optional argument
- * `maxBufferSize` is specified, the buffer will be closed either after
- * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements.
- *
- * ## Examples
- *
- * Every second, emit an array of the recent click events
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferTime(1000));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * Every 5 seconds, emit the click events from the next 2 seconds
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { bufferTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferTime(2000, 5000));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- * @see {@link bufferToggle}
- * @see {@link bufferWhen}
- * @see {@link windowTime}
- *
- * @param {number} bufferTimeSpan The amount of time to fill each buffer array.
- * @param {number} [bufferCreationInterval] The interval at which to start new
- * buffers.
- * @param {number} [maxBufferSize] The maximum buffer size.
- * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the
- * intervals that determine buffer boundaries.
- * @return {Observable<T[]>} An observable of arrays of buffered values.
- * @method bufferTime
- * @owner Observable
- */
-export function bufferTime<T>(bufferTimeSpan: number): OperatorFunction<T, T[]> {
-  let length: number = arguments.length;
-
-  let scheduler: SchedulerLike = async;
-  if (isScheduler(arguments[arguments.length - 1])) {
-    scheduler = arguments[arguments.length - 1];
-    length--;
-  }
-
-  let bufferCreationInterval: number = null;
-  if (length >= 2) {
-    bufferCreationInterval = arguments[1];
-  }
-
-  let maxBufferSize: number = Number.POSITIVE_INFINITY;
-  if (length >= 3) {
-    maxBufferSize = arguments[2];
-  }
-
-  return function bufferTimeOperatorFunction(source: Observable<T>) {
-    return source.lift(new BufferTimeOperator<T>(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
-  };
-}
-
-class BufferTimeOperator<T> implements Operator<T, T[]> {
-  constructor(private bufferTimeSpan: number,
-              private bufferCreationInterval: number,
-              private maxBufferSize: number,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<T[]>, source: any): any {
-    return source.subscribe(new BufferTimeSubscriber(
-      subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler
-    ));
-  }
-}
-
-class Context<T> {
-  buffer: T[] = [];
-  closeAction: Subscription;
-}
-
-interface DispatchCreateArg<T> {
-  bufferTimeSpan: number;
-  bufferCreationInterval: number;
-  subscriber: BufferTimeSubscriber<T>;
-  scheduler: SchedulerLike;
-}
-
-interface DispatchCloseArg<T> {
-  subscriber: BufferTimeSubscriber<T>;
-  context: Context<T>;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferTimeSubscriber<T> extends Subscriber<T> {
-  private contexts: Array<Context<T>> = [];
-  private timespanOnly: boolean;
-
-  constructor(destination: Subscriber<T[]>,
-              private bufferTimeSpan: number,
-              private bufferCreationInterval: number,
-              private maxBufferSize: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-    const context = this.openContext();
-    this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
-    if (this.timespanOnly) {
-      const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };
-      this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-    } else {
-      const closeState = { subscriber: this, context };
-      const creationState: DispatchCreateArg<T> = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };
-      this.add(context.closeAction = scheduler.schedule<DispatchCloseArg<T>>(dispatchBufferClose, bufferTimeSpan, closeState));
-      this.add(scheduler.schedule<DispatchCreateArg<T>>(dispatchBufferCreation, bufferCreationInterval, creationState));
-    }
-  }
-
-  protected _next(value: T) {
-    const contexts = this.contexts;
-    const len = contexts.length;
-    let filledBufferContext: Context<T>;
-    for (let i = 0; i < len; i++) {
-      const context = contexts[i];
-      const buffer = context.buffer;
-      buffer.push(value);
-      if (buffer.length == this.maxBufferSize) {
-        filledBufferContext = context;
-      }
-    }
-
-    if (filledBufferContext) {
-      this.onBufferFull(filledBufferContext);
-    }
-  }
-
-  protected _error(err: any) {
-    this.contexts.length = 0;
-    super._error(err);
-  }
-
-  protected _complete() {
-    const { contexts, destination } = this;
-    while (contexts.length > 0) {
-      const context = contexts.shift();
-      destination.next(context.buffer);
-    }
-    super._complete();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    this.contexts = null;
-  }
-
-  protected onBufferFull(context: Context<T>) {
-    this.closeContext(context);
-    const closeAction = context.closeAction;
-    closeAction.unsubscribe();
-    this.remove(closeAction);
-
-    if (!this.closed && this.timespanOnly) {
-      context = this.openContext();
-      const bufferTimeSpan = this.bufferTimeSpan;
-      const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };
-      this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
-    }
-  }
-
-  openContext(): Context<T> {
-    const context: Context<T> = new Context<T>();
-    this.contexts.push(context);
-    return context;
-  }
-
-  closeContext(context: Context<T>) {
-    this.destination.next(context.buffer);
-    const contexts = this.contexts;
-
-    const spliceIndex = contexts ? contexts.indexOf(context) : -1;
-    if (spliceIndex >= 0) {
-      contexts.splice(contexts.indexOf(context), 1);
-    }
-  }
-}
-
-function dispatchBufferTimeSpanOnly(this: SchedulerAction<any>, state: any) {
-  const subscriber: BufferTimeSubscriber<any> = state.subscriber;
-
-  const prevContext = state.context;
-  if (prevContext) {
-    subscriber.closeContext(prevContext);
-  }
-
-  if (!subscriber.closed) {
-    state.context = subscriber.openContext();
-    state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
-  }
-}
-
-function dispatchBufferCreation<T>(this: SchedulerAction<DispatchCreateArg<T>>, state: DispatchCreateArg<T>) {
-  const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;
-  const context = subscriber.openContext();
-  const action = <SchedulerAction<DispatchCreateArg<T>>>this;
-  if (!subscriber.closed) {
-    subscriber.add(context.closeAction = scheduler.schedule<DispatchCloseArg<T>>(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));
-    action.schedule(state, bufferCreationInterval);
-  }
-}
-
-function dispatchBufferClose<T>(arg: DispatchCloseArg<T>) {
-  const { subscriber, context } = arg;
-  subscriber.closeContext(context);
-}
diff --git a/node_modules/rxjs/src/internal/operators/bufferToggle.ts b/node_modules/rxjs/src/internal/operators/bufferToggle.ts
deleted file mode 100644
index 8676fa7..0000000
--- a/node_modules/rxjs/src/internal/operators/bufferToggle.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { OperatorFunction, SubscribableOrPromise } from '../types';
-
-/**
- * Buffers the source Observable values starting from an emission from
- * `openings` and ending when the output of `closingSelector` emits.
- *
- * <span class="informal">Collects values from the past as an array. Starts
- * collecting only when `opening` emits, and calls the `closingSelector`
- * function to get an Observable that tells when to close the buffer.</span>
- *
- * ![](bufferToggle.png)
- *
- * Buffers values from the source by opening the buffer via signals from an
- * Observable provided to `openings`, and closing and sending the buffers when
- * a Subscribable or Promise returned by the `closingSelector` function emits.
- *
- * ## Example
- *
- * Every other second, emit the click events from the next 500ms
- *
- * ```ts
- * import { fromEvent, interval, EMPTY } from 'rxjs';
- * import { bufferToggle } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const openings = interval(1000);
- * const buffered = clicks.pipe(bufferToggle(openings, i =>
- *   i % 2 ? interval(500) : EMPTY
- * ));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferWhen}
- * @see {@link windowToggle}
- *
- * @param {SubscribableOrPromise<O>} openings A Subscribable or Promise of notifications to start new
- * buffers.
- * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes
- * the value emitted by the `openings` observable and returns a Subscribable or Promise,
- * which, when it emits, signals that the associated buffer should be emitted
- * and cleared.
- * @return {Observable<T[]>} An observable of arrays of buffered values.
- * @method bufferToggle
- * @owner Observable
- */
-export function bufferToggle<T, O>(
-  openings: SubscribableOrPromise<O>,
-  closingSelector: (value: O) => SubscribableOrPromise<any>
-): OperatorFunction<T, T[]> {
-  return function bufferToggleOperatorFunction(source: Observable<T>) {
-    return source.lift(new BufferToggleOperator<T, O>(openings, closingSelector));
-  };
-}
-
-class BufferToggleOperator<T, O> implements Operator<T, T[]> {
-
-  constructor(private openings: SubscribableOrPromise<O>,
-              private closingSelector: (value: O) => SubscribableOrPromise<any>) {
-  }
-
-  call(subscriber: Subscriber<T[]>, source: any): any {
-    return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
-  }
-}
-
-interface BufferContext<T> {
-  buffer: T[];
-  subscription: Subscription;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferToggleSubscriber<T, O> extends OuterSubscriber<T, O> {
-  private contexts: Array<BufferContext<T>> = [];
-
-  constructor(destination: Subscriber<T[]>,
-              private openings: SubscribableOrPromise<O>,
-              private closingSelector: (value: O) => SubscribableOrPromise<any> | void) {
-    super(destination);
-    this.add(subscribeToResult(this, openings));
-  }
-
-  protected _next(value: T): void {
-    const contexts = this.contexts;
-    const len = contexts.length;
-    for (let i = 0; i < len; i++) {
-      contexts[i].buffer.push(value);
-    }
-  }
-
-  protected _error(err: any): void {
-    const contexts = this.contexts;
-    while (contexts.length > 0) {
-      const context = contexts.shift();
-      context.subscription.unsubscribe();
-      context.buffer = null;
-      context.subscription = null;
-    }
-    this.contexts = null;
-    super._error(err);
-  }
-
-  protected _complete(): void {
-    const contexts = this.contexts;
-    while (contexts.length > 0) {
-      const context = contexts.shift();
-      this.destination.next(context.buffer);
-      context.subscription.unsubscribe();
-      context.buffer = null;
-      context.subscription = null;
-    }
-    this.contexts = null;
-    super._complete();
-  }
-
-  notifyNext(outerValue: any, innerValue: O,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, O>): void {
-    outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, O>): void {
-    this.closeBuffer((<any> innerSub).context);
-  }
-
-  private openBuffer(value: O): void {
-    try {
-      const closingSelector = this.closingSelector;
-      const closingNotifier = closingSelector.call(this, value);
-      if (closingNotifier) {
-        this.trySubscribe(closingNotifier);
-      }
-    } catch (err) {
-      this._error(err);
-    }
-  }
-
-  private closeBuffer(context: BufferContext<T>): void {
-    const contexts = this.contexts;
-
-    if (contexts && context) {
-      const { buffer, subscription } = context;
-      this.destination.next(buffer);
-      contexts.splice(contexts.indexOf(context), 1);
-      this.remove(subscription);
-      subscription.unsubscribe();
-    }
-  }
-
-  private trySubscribe(closingNotifier: any): void {
-    const contexts = this.contexts;
-
-    const buffer: Array<T> = [];
-    const subscription = new Subscription();
-    const context = { buffer, subscription };
-    contexts.push(context);
-
-    const innerSubscription = subscribeToResult(this, closingNotifier, <any>context);
-
-    if (!innerSubscription || innerSubscription.closed) {
-      this.closeBuffer(context);
-    } else {
-      (<any> innerSubscription).context = context;
-
-      this.add(innerSubscription);
-      subscription.add(innerSubscription);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/bufferWhen.ts b/node_modules/rxjs/src/internal/operators/bufferWhen.ts
deleted file mode 100644
index 2c3e96b..0000000
--- a/node_modules/rxjs/src/internal/operators/bufferWhen.ts
+++ /dev/null
@@ -1,144 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OperatorFunction } from '../types';
-
-/**
- * Buffers the source Observable values, using a factory function of closing
- * Observables to determine when to close, emit, and reset the buffer.
- *
- * <span class="informal">Collects values from the past as an array. When it
- * starts collecting values, it calls a function that returns an Observable that
- * tells when to close the buffer and restart collecting.</span>
- *
- * ![](bufferWhen.png)
- *
- * Opens a buffer immediately, then closes the buffer when the observable
- * returned by calling `closingSelector` function emits a value. When it closes
- * the buffer, it immediately opens a new buffer and repeats the process.
- *
- * ## Example
- *
- * Emit an array of the last clicks every [1-5] random seconds
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { bufferWhen } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const buffered = clicks.pipe(bufferWhen(() =>
- *   interval(1000 + Math.random() * 4000)
- * ));
- * buffered.subscribe(x => console.log(x));
- * ```
- *
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- * @see {@link bufferTime}
- * @see {@link bufferToggle}
- * @see {@link windowWhen}
- *
- * @param {function(): Observable} closingSelector A function that takes no
- * arguments and returns an Observable that signals buffer closure.
- * @return {Observable<T[]>} An observable of arrays of buffered values.
- * @method bufferWhen
- * @owner Observable
- */
-export function bufferWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, T[]> {
-  return function (source: Observable<T>) {
-    return source.lift(new BufferWhenOperator(closingSelector));
-  };
-}
-
-class BufferWhenOperator<T> implements Operator<T, T[]> {
-
-  constructor(private closingSelector: () => Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T[]>, source: any): any {
-    return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class BufferWhenSubscriber<T> extends OuterSubscriber<T, any> {
-  private buffer: T[];
-  private subscribing: boolean = false;
-  private closingSubscription: Subscription;
-
-  constructor(destination: Subscriber<T[]>, private closingSelector: () => Observable<any>) {
-    super(destination);
-    this.openBuffer();
-  }
-
-  protected _next(value: T) {
-    this.buffer.push(value);
-  }
-
-  protected _complete() {
-    const buffer = this.buffer;
-    if (buffer) {
-      this.destination.next(buffer);
-    }
-    super._complete();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    this.buffer = null;
-    this.subscribing = false;
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, any>): void {
-    this.openBuffer();
-  }
-
-  notifyComplete(): void {
-    if (this.subscribing) {
-      this.complete();
-    } else {
-      this.openBuffer();
-    }
-  }
-
-  openBuffer() {
-    let { closingSubscription } = this;
-
-    if (closingSubscription) {
-      this.remove(closingSubscription);
-      closingSubscription.unsubscribe();
-    }
-
-    const buffer = this.buffer;
-    if (this.buffer) {
-      this.destination.next(buffer);
-    }
-
-    this.buffer = [];
-
-    let closingNotifier;
-    try {
-      const { closingSelector } = this;
-      closingNotifier = closingSelector();
-    } catch (err) {
-      return this.error(err);
-    }
-    closingSubscription = new Subscription();
-    this.closingSubscription = closingSubscription;
-    this.add(closingSubscription);
-    this.subscribing = true;
-    closingSubscription.add(subscribeToResult(this, closingNotifier));
-    this.subscribing = false;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/catchError.ts b/node_modules/rxjs/src/internal/operators/catchError.ts
deleted file mode 100644
index 5aeb76f..0000000
--- a/node_modules/rxjs/src/internal/operators/catchError.ts
+++ /dev/null
@@ -1,149 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function catchError<T, O extends ObservableInput<any>>(selector: (err: any, caught: Observable<T>) => O): OperatorFunction<T, T | ObservedValueOf<O>>;
-/* tslint:enable:max-line-length */
-
-/**
- * Catches errors on the observable to be handled by returning a new observable or throwing an error.
- *
- * ![](catch.png)
- *
- * ## Examples
- * Continues with a different Observable when there's an error
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { map, catchError } from 'rxjs/operators';
- *
- * of(1, 2, 3, 4, 5).pipe(
- *     map(n => {
- *   	   if (n === 4) {
- * 	       throw 'four!';
- *       }
- *	     return n;
- *     }),
- *     catchError(err => of('I', 'II', 'III', 'IV', 'V')),
- *   )
- *   .subscribe(x => console.log(x));
- *   // 1, 2, 3, I, II, III, IV, V
- * ```
- *
- * Retries the caught source Observable again in case of error, similar to retry() operator
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { map, catchError, take } from 'rxjs/operators';
- *
- * of(1, 2, 3, 4, 5).pipe(
- *     map(n => {
- *   	   if (n === 4) {
- *   	     throw 'four!';
- *       }
- * 	     return n;
- *     }),
- *     catchError((err, caught) => caught),
- *     take(30),
- *   )
- *   .subscribe(x => console.log(x));
- *   // 1, 2, 3, 1, 2, 3, ...
- * ```
- *
- * Throws a new error when the source Observable throws an error
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { map, catchError } from 'rxjs/operators';
- *
- * of(1, 2, 3, 4, 5).pipe(
- *     map(n => {
- *       if (n === 4) {
- *         throw 'four!';
- *       }
- *       return n;
- *     }),
- *     catchError(err => {
- *       throw 'error in source. Details: ' + err;
- *     }),
- *   )
- *   .subscribe(
- *     x => console.log(x),
- *     err => console.log(err)
- *   );
- *   // 1, 2, 3, error in source. Details: four!
- * ```
- *
- *  @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which
- *  is the source observable, in case you'd like to "retry" that observable by returning it again. Whatever observable
- *  is returned by the `selector` will be used to continue the observable chain.
- * @return {Observable} An observable that originates from either the source or the observable returned by the
- *  catch `selector` function.
- * @name catchError
- */
-export function catchError<T, O extends ObservableInput<any>>(
-  selector: (err: any, caught: Observable<T>) => O
-): OperatorFunction<T, T | ObservedValueOf<O>> {
-  return function catchErrorOperatorFunction(source: Observable<T>): Observable<T | ObservedValueOf<O>> {
-    const operator = new CatchOperator(selector);
-    const caught = source.lift(operator);
-    return (operator.caught = caught as Observable<T>);
-  };
-}
-
-class CatchOperator<T, R> implements Operator<T, T | R> {
-  caught: Observable<T>;
-
-  constructor(private selector: (err: any, caught: Observable<T>) => ObservableInput<T | R>) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class CatchSubscriber<T, R> extends OuterSubscriber<T, T | R> {
-  constructor(destination: Subscriber<any>,
-              private selector: (err: any, caught: Observable<T>) => ObservableInput<T | R>,
-              private caught: Observable<T>) {
-    super(destination);
-  }
-
-  // NOTE: overriding `error` instead of `_error` because we don't want
-  // to have this flag this subscriber as `isStopped`. We can mimic the
-  // behavior of the RetrySubscriber (from the `retry` operator), where
-  // we unsubscribe from our source chain, reset our Subscriber flags,
-  // then subscribe to the selector result.
-  error(err: any) {
-    if (!this.isStopped) {
-      let result: any;
-      try {
-        result = this.selector(err, this.caught);
-      } catch (err2) {
-        super.error(err2);
-        return;
-      }
-      this._unsubscribeAndRecycle();
-      const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-      this.add(innerSubscriber);
-      const innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-      // The returned subscription will usually be the subscriber that was
-      // passed. However, interop subscribers will be wrapped and for
-      // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-      if (innerSubscription !== innerSubscriber) {
-        this.add(innerSubscription);
-      }
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/combineAll.ts b/node_modules/rxjs/src/internal/operators/combineAll.ts
deleted file mode 100644
index f696000..0000000
--- a/node_modules/rxjs/src/internal/operators/combineAll.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { CombineLatestOperator } from '../observable/combineLatest';
-import { Observable } from '../Observable';
-import { OperatorFunction, ObservableInput } from '../types';
-
-export function combineAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;
-export function combineAll<T>(): OperatorFunction<any, T[]>;
-export function combineAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;
-export function combineAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;
-/**
- * Flattens an Observable-of-Observables by applying {@link combineLatest} when the Observable-of-Observables completes.
- *
- * ![](combineAll.png)
- *
- * `combineAll` takes an Observable of Observables, and collects all Observables from it. Once the outer Observable completes,
- * it subscribes to all collected Observables and combines their values using the {@link combineLatest}</a> strategy, such that:
- *
- * * Every time an inner Observable emits, the output Observable emits
- * * When the returned observable emits, it emits all of the latest values by:
- *    * If a `project` function is provided, it is called with each recent value from each inner Observable in whatever order they
- *      arrived, and the result of the `project` function is what is emitted by the output Observable.
- *    * If there is no `project` function, an array of all the most recent values is emitted by the output Observable.
- *
- * ---
- *
- * ## Examples
- *
- * ### Map two click events to a finite interval Observable, then apply `combineAll`
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { map, combineAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(
- *   map(ev =>
- *      interval(Math.random() * 2000).pipe(take(3))
- *   ),
- *   take(2)
- * );
- * const result = higherOrder.pipe(
- *   combineAll()
- * );
- *
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link combineLatest}
- * @see {@link mergeAll}
- *
- * @param {function(...values: Array<any>)} An optional function to map the most recent values from each inner Observable into a new result.
- * Takes each of the most recent values from each collected inner Observable as arguments, in order.
- * @return {Observable<T>}
- * @name combineAll
- */
-export function combineAll<T, R>(project?: (...values: Array<any>) => R): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift(new CombineLatestOperator(project));
-}
diff --git a/node_modules/rxjs/src/internal/operators/combineLatest.ts b/node_modules/rxjs/src/internal/operators/combineLatest.ts
deleted file mode 100644
index ad984f6..0000000
--- a/node_modules/rxjs/src/internal/operators/combineLatest.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-
-import { isArray } from '../util/isArray';
-import { CombineLatestOperator } from '../observable/combineLatest';
-import { from } from '../observable/from';
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction } from '../types';
-
-const none = {};
-
-/* tslint:disable:max-line-length */
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R> ;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]> ;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, R>(array: ObservableInput<T>[]): OperatorFunction<T, Array<T>>;
-/** @deprecated Deprecated in favor of static combineLatest. */
-export function combineLatest<T, TOther, R>(array: ObservableInput<TOther>[], project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * @deprecated Deprecated in favor of static {@link combineLatest}.
- */
-export function combineLatest<T, R>(...observables: Array<ObservableInput<any> |
-                                                    Array<ObservableInput<any>> |
-                                                    ((...values: Array<any>) => R)>): OperatorFunction<T, R> {
-  let project: (...values: Array<any>) => R = null;
-  if (typeof observables[observables.length - 1] === 'function') {
-    project = <(...values: Array<any>) => R>observables.pop();
-  }
-
-  // if the first and only other argument besides the resultSelector is an array
-  // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`
-  if (observables.length === 1 && isArray(observables[0])) {
-    observables = (<any>observables[0]).slice();
-  }
-
-  return (source: Observable<T>) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project));
-}
diff --git a/node_modules/rxjs/src/internal/operators/concat.ts b/node_modules/rxjs/src/internal/operators/concat.ts
deleted file mode 100644
index aee6466..0000000
--- a/node_modules/rxjs/src/internal/operators/concat.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import {  concat as concatStatic } from '../observable/concat';
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T>(...observables: Array<ObservableInput<T> | SchedulerLike>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static concat. */
-export function concat<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike>): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * @deprecated Deprecated in favor of static {@link concat}.
- */
-export function concat<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike>): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift.call(concatStatic(source, ...observables));
-}
diff --git a/node_modules/rxjs/src/internal/operators/concatAll.ts b/node_modules/rxjs/src/internal/operators/concatAll.ts
deleted file mode 100644
index a6716bb..0000000
--- a/node_modules/rxjs/src/internal/operators/concatAll.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-
-import { mergeAll } from './mergeAll';
-import { OperatorFunction, ObservableInput } from '../types';
-
-export function concatAll<T>(): OperatorFunction<ObservableInput<T>, T>;
-export function concatAll<R>(): OperatorFunction<any, R>;
-
-/**
- * Converts a higher-order Observable into a first-order Observable by
- * concatenating the inner Observables in order.
- *
- * <span class="informal">Flattens an Observable-of-Observables by putting one
- * inner Observable after the other.</span>
- *
- * ![](concatAll.png)
- *
- * Joins every Observable emitted by the source (a higher-order Observable), in
- * a serial fashion. It subscribes to each inner Observable only after the
- * previous inner Observable has completed, and merges all of their values into
- * the returned observable.
- *
- * __Warning:__ If the source Observable emits Observables quickly and
- * endlessly, and the inner Observables it emits generally complete slower than
- * the source emits, you can run into memory issues as the incoming Observables
- * collect in an unbounded buffer.
- *
- * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set
- * to `1`.
- *
- * ## Example
- *
- * For each click event, tick every second from 0 to 3, with no concurrency
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { map, take, concatAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(
- *   map(ev => interval(1000).pipe(take(4))),
- * );
- * const firstOrder = higherOrder.pipe(concatAll());
- * firstOrder.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // (results are not concurrent)
- * // For every click on the "document" it will emit values 0 to 3 spaced
- * // on a 1000ms interval
- * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3
- * ```
- *
- * @see {@link combineAll}
- * @see {@link concat}
- * @see {@link concatMap}
- * @see {@link concatMapTo}
- * @see {@link exhaust}
- * @see {@link mergeAll}
- * @see {@link switchAll}
- * @see {@link switchMap}
- * @see {@link zipAll}
- *
- * @return {Observable} An Observable emitting values from all the inner
- * Observables concatenated.
- * @method concatAll
- * @owner Observable
- */
-export function concatAll<T>(): OperatorFunction<ObservableInput<T>, T> {
-  return mergeAll<T>(1);
-}
diff --git a/node_modules/rxjs/src/internal/operators/concatMap.ts b/node_modules/rxjs/src/internal/operators/concatMap.ts
deleted file mode 100644
index 64b0ba0..0000000
--- a/node_modules/rxjs/src/internal/operators/concatMap.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { mergeMap } from './mergeMap';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) =>  O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export function concatMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) =>  O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to an Observable which is merged in the output
- * Observable, in a serialized fashion waiting for each one to complete before
- * merging the next.
- *
- * <span class="informal">Maps each value to an Observable, then flattens all of
- * these inner Observables using {@link concatAll}.</span>
- *
- * ![](concatMap.png)
- *
- * Returns an Observable that emits items based on applying a function that you
- * supply to each item emitted by the source Observable, where that function
- * returns an (so-called "inner") Observable. Each new inner Observable is
- * concatenated with the previous inner Observable.
- *
- * __Warning:__ if source values arrive endlessly and faster than their
- * corresponding inner Observables can complete, it will result in memory issues
- * as inner Observables amass in an unbounded buffer waiting for their turn to
- * be subscribed to.
- *
- * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set
- * to `1`.
- *
- * ## Example
- * For each click event, tick every second from 0 to 3, with no concurrency
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { concatMap, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   concatMap(ev => interval(1000).pipe(take(4)))
- * );
- * result.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // (results are not concurrent)
- * // For every click on the "document" it will emit values 0 to 3 spaced
- * // on a 1000ms interval
- * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3
- * ```
- *
- * @see {@link concat}
- * @see {@link concatAll}
- * @see {@link concatMapTo}
- * @see {@link exhaustMap}
- * @see {@link mergeMap}
- * @see {@link switchMap}
- *
- * @param {function(value: T, ?index: number): ObservableInput} project A function
- * that, when applied to an item emitted by the source Observable, returns an
- * Observable.
- * @return {Observable} An Observable that emits the result of applying the
- * projection function (and the optional deprecated `resultSelector`) to each item emitted
- * by the source Observable and taking values from each projected inner
- * Observable sequentially.
- * @method concatMap
- * @owner Observable
- */
-export function concatMap<T, R, O extends ObservableInput<any>>(
-  project: (value: T, index: number) => O,
-  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  return mergeMap(project, resultSelector, 1);
-}
diff --git a/node_modules/rxjs/src/internal/operators/concatMapTo.ts b/node_modules/rxjs/src/internal/operators/concatMapTo.ts
deleted file mode 100644
index 3f52fc6..0000000
--- a/node_modules/rxjs/src/internal/operators/concatMapTo.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import { concatMap } from './concatMap';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function concatMapTo<T, O extends ObservableInput<any>>(observable: O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated */
-export function concatMapTo<T, O extends ObservableInput<any>>(observable: O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated */
-export function concatMapTo<T, R, O extends ObservableInput<any>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to the same Observable which is merged multiple
- * times in a serialized fashion on the output Observable.
- *
- * <span class="informal">It's like {@link concatMap}, but maps each value
- * always to the same inner Observable.</span>
- *
- * ![](concatMapTo.png)
- *
- * Maps each source value to the given Observable `innerObservable` regardless
- * of the source value, and then flattens those resulting Observables into one
- * single Observable, which is the output Observable. Each new `innerObservable`
- * instance emitted on the output Observable is concatenated with the previous
- * `innerObservable` instance.
- *
- * __Warning:__ if source values arrive endlessly and faster than their
- * corresponding inner Observables can complete, it will result in memory issues
- * as inner Observables amass in an unbounded buffer waiting for their turn to
- * be subscribed to.
- *
- * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter
- * set to `1`.
- *
- * ## Example
- * For each click event, tick every second from 0 to 3, with no concurrency
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { concatMapTo, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   concatMapTo(interval(1000).pipe(take(4))),
- * );
- * result.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // (results are not concurrent)
- * // For every click on the "document" it will emit values 0 to 3 spaced
- * // on a 1000ms interval
- * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3
- * ```
- *
- * @see {@link concat}
- * @see {@link concatAll}
- * @see {@link concatMap}
- * @see {@link mergeMapTo}
- * @see {@link switchMapTo}
- *
- * @param {ObservableInput} innerObservable An Observable to replace each value from
- * the source Observable.
- * @return {Observable} An observable of values merged together by joining the
- * passed observable with itself, one after the other, for each value emitted
- * from the source.
- * @method concatMapTo
- * @owner Observable
- */
-export function concatMapTo<T, R, O extends ObservableInput<any>>(
-  innerObservable: O,
-  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  return concatMap(() => innerObservable, resultSelector);
-}
diff --git a/node_modules/rxjs/src/internal/operators/count.ts b/node_modules/rxjs/src/internal/operators/count.ts
deleted file mode 100644
index 1c33a9a..0000000
--- a/node_modules/rxjs/src/internal/operators/count.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Observer, OperatorFunction } from '../types';
-import { Subscriber } from '../Subscriber';
-/**
- * Counts the number of emissions on the source and emits that number when the
- * source completes.
- *
- * <span class="informal">Tells how many values were emitted, when the source
- * completes.</span>
- *
- * ![](count.png)
- *
- * `count` transforms an Observable that emits values into an Observable that
- * emits a single value that represents the number of values emitted by the
- * source Observable. If the source Observable terminates with an error, `count`
- * will pass this error notification along without emitting a value first. If
- * the source Observable does not terminate at all, `count` will neither emit
- * a value nor terminate. This operator takes an optional `predicate` function
- * as argument, in which case the output emission will represent the number of
- * source values that matched `true` with the `predicate`.
- *
- * ## Examples
- *
- * Counts how many seconds have passed before the first click happened
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { count, takeUntil } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const secondsBeforeClick = seconds.pipe(takeUntil(clicks));
- * const result = secondsBeforeClick.pipe(count());
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Counts how many odd numbers are there between 1 and 7
- * ```ts
- * import { range } from 'rxjs';
- * import { count } from 'rxjs/operators';
- *
- * const numbers = range(1, 7);
- * const result = numbers.pipe(count(i => i % 2 === 1));
- * result.subscribe(x => console.log(x));
- * // Results in:
- * // 4
- * ```
- *
- * @see {@link max}
- * @see {@link min}
- * @see {@link reduce}
- *
- * @param {function(value: T, i: number, source: Observable<T>): boolean} [predicate] A
- * boolean function to select what values are to be counted. It is provided with
- * arguments of:
- * - `value`: the value from the source Observable.
- * - `index`: the (zero-based) "index" of the value from the source Observable.
- * - `source`: the source Observable instance itself.
- * @return {Observable} An Observable of one number that represents the count as
- * described above.
- * @method count
- * @owner Observable
- */
-
-export function count<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): OperatorFunction<T, number> {
-  return (source: Observable<T>) => source.lift(new CountOperator(predicate, source));
-}
-
-class CountOperator<T> implements Operator<T, number> {
-  constructor(private predicate?: (value: T, index: number, source: Observable<T>) => boolean,
-              private source?: Observable<T>) {
-  }
-
-  call(subscriber: Subscriber<number>, source: any): any {
-    return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class CountSubscriber<T> extends Subscriber<T> {
-  private count: number = 0;
-  private index: number = 0;
-
-  constructor(destination: Observer<number>,
-              private predicate?: (value: T, index: number, source: Observable<T>) => boolean,
-              private source?: Observable<T>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    if (this.predicate) {
-      this._tryPredicate(value);
-    } else {
-      this.count++;
-    }
-  }
-
-  private _tryPredicate(value: T) {
-    let result: any;
-
-    try {
-      result = this.predicate(value, this.index++, this.source);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-
-    if (result) {
-      this.count++;
-    }
-  }
-
-  protected _complete(): void {
-    this.destination.next(this.count);
-    this.destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/debounce.ts b/node_modules/rxjs/src/internal/operators/debounce.ts
deleted file mode 100644
index be2167d..0000000
--- a/node_modules/rxjs/src/internal/operators/debounce.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-/**
- * Emits a value from the source Observable only after a particular time span
- * determined by another Observable has passed without another source emission.
- *
- * <span class="informal">It's like {@link debounceTime}, but the time span of
- * emission silence is determined by a second Observable.</span>
- *
- * ![](debounce.png)
- *
- * `debounce` delays values emitted by the source Observable, but drops previous
- * pending delayed emissions if a new value arrives on the source Observable.
- * This operator keeps track of the most recent value from the source
- * Observable, and spawns a duration Observable by calling the
- * `durationSelector` function. The value is emitted only when the duration
- * Observable emits a value or completes, and if no other value was emitted on
- * the source Observable since the duration Observable was spawned. If a new
- * value appears before the duration Observable emits, the previous value will
- * be dropped and will not be emitted on the output Observable.
- *
- * Like {@link debounceTime}, this is a rate-limiting operator, and also a
- * delay-like operator since output emissions do not necessarily occur at the
- * same time as they did on the source Observable.
- *
- * ## Example
- * Emit the most recent click after a burst of clicks
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { debounce } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(debounce(() => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounceTime}
- * @see {@link delayWhen}
- * @see {@link throttle}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the timeout
- * duration for each source value, returned as an Observable or a Promise.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified duration Observable returned by
- * `durationSelector`, and may drop some values if they occur too frequently.
- * @method debounce
- * @owner Observable
- */
-export function debounce<T>(durationSelector: (value: T) => SubscribableOrPromise<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new DebounceOperator(durationSelector));
-}
-
-class DebounceOperator<T> implements Operator<T, T> {
-  constructor(private durationSelector: (value: T) => SubscribableOrPromise<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DebounceSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private value: T;
-  private hasValue: boolean = false;
-  private durationSubscription: Subscription = null;
-
-  constructor(destination: Subscriber<R>,
-              private durationSelector: (value: T) => SubscribableOrPromise<any>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    try {
-      const result = this.durationSelector.call(this, value);
-
-      if (result) {
-        this._tryNext(value, result);
-      }
-    } catch (err) {
-      this.destination.error(err);
-    }
-  }
-
-  protected _complete(): void {
-    this.emitValue();
-    this.destination.complete();
-  }
-
-  private _tryNext(value: T, duration: SubscribableOrPromise<any>): void {
-    let subscription = this.durationSubscription;
-    this.value = value;
-    this.hasValue = true;
-    if (subscription) {
-      subscription.unsubscribe();
-      this.remove(subscription);
-    }
-
-    subscription = subscribeToResult(this, duration);
-    if (subscription && !subscription.closed) {
-      this.add(this.durationSubscription = subscription);
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.emitValue();
-  }
-
-  notifyComplete(): void {
-    this.emitValue();
-  }
-
-  emitValue(): void {
-    if (this.hasValue) {
-      const value = this.value;
-      const subscription = this.durationSubscription;
-      if (subscription) {
-        this.durationSubscription = null;
-        subscription.unsubscribe();
-        this.remove(subscription);
-      }
-      // This must be done *before* passing the value
-      // along to the destination because it's possible for
-      // the value to synchronously re-enter this operator
-      // recursively if the duration selector Observable
-      // emits synchronously
-      this.value = null;
-      this.hasValue = false;
-      super._next(value);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/debounceTime.ts b/node_modules/rxjs/src/internal/operators/debounceTime.ts
deleted file mode 100644
index 8244d49..0000000
--- a/node_modules/rxjs/src/internal/operators/debounceTime.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { async } from '../scheduler/async';
-import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- * Emits a value from the source Observable only after a particular time span
- * has passed without another source emission.
- *
- * <span class="informal">It's like {@link delay}, but passes only the most
- * recent value from each burst of emissions.</span>
- *
- * ![](debounceTime.png)
- *
- * `debounceTime` delays values emitted by the source Observable, but drops
- * previous pending delayed emissions if a new value arrives on the source
- * Observable. This operator keeps track of the most recent value from the
- * source Observable, and emits that only when `dueTime` enough time has passed
- * without any other value appearing on the source Observable. If a new value
- * appears before `dueTime` silence occurs, the previous value will be dropped
- * and will not be emitted on the output Observable.
- *
- * This is a rate-limiting operator, because it is impossible for more than one
- * value to be emitted in any time window of duration `dueTime`, but it is also
- * a delay-like operator since output emissions do not occur at the same time as
- * they did on the source Observable. Optionally takes a {@link SchedulerLike} for
- * managing timers.
- *
- * ## Example
- * Emit the most recent click after a burst of clicks
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { debounceTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(debounceTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link auditTime}
- * @see {@link debounce}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttleTime}
- *
- * @param {number} dueTime The timeout duration in milliseconds (or the time
- * unit determined internally by the optional `scheduler`) for the window of
- * time required to wait for emission silence before emitting the most recent
- * source value.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the timeout for each value.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified `dueTime`, and may drop some values if they occur
- * too frequently.
- * @method debounceTime
- * @owner Observable
- */
-export function debounceTime<T>(dueTime: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new DebounceTimeOperator(dueTime, scheduler));
-}
-
-class DebounceTimeOperator<T> implements Operator<T, T> {
-  constructor(private dueTime: number, private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DebounceTimeSubscriber<T> extends Subscriber<T> {
-  private debouncedSubscription: Subscription = null;
-  private lastValue: T = null;
-  private hasValue: boolean = false;
-
-  constructor(destination: Subscriber<T>,
-              private dueTime: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-  }
-
-  protected _next(value: T) {
-    this.clearDebounce();
-    this.lastValue = value;
-    this.hasValue = true;
-    this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));
-  }
-
-  protected _complete() {
-    this.debouncedNext();
-    this.destination.complete();
-  }
-
-  debouncedNext(): void {
-    this.clearDebounce();
-
-    if (this.hasValue) {
-      const { lastValue } = this;
-      // This must be done *before* passing the value
-      // along to the destination because it's possible for
-      // the value to synchronously re-enter this operator
-      // recursively when scheduled with things like
-      // VirtualScheduler/TestScheduler.
-      this.lastValue = null;
-      this.hasValue = false;
-      this.destination.next(lastValue);
-    }
-  }
-
-  private clearDebounce(): void {
-    const debouncedSubscription = this.debouncedSubscription;
-
-    if (debouncedSubscription !== null) {
-      this.remove(debouncedSubscription);
-      debouncedSubscription.unsubscribe();
-      this.debouncedSubscription = null;
-    }
-  }
-}
-
-function dispatchNext(subscriber: DebounceTimeSubscriber<any>) {
-  subscriber.debouncedNext();
-}
diff --git a/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts b/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts
deleted file mode 100644
index 6d6123e..0000000
--- a/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts
+++ /dev/null
@@ -1,84 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function defaultIfEmpty<T>(defaultValue?: T): MonoTypeOperatorFunction<T>;
-export function defaultIfEmpty<T, R>(defaultValue?: R): OperatorFunction<T, T | R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Emits a given value if the source Observable completes without emitting any
- * `next` value, otherwise mirrors the source Observable.
- *
- * <span class="informal">If the source Observable turns out to be empty, then
- * this operator will emit a default value.</span>
- *
- * ![](defaultIfEmpty.png)
- *
- * `defaultIfEmpty` emits the values emitted by the source Observable or a
- * specified default value if the source Observable is empty (completes without
- * having emitted any `next` value).
- *
- * ## Example
- * If no clicks happen in 5 seconds, then emit "no clicks"
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { defaultIfEmpty, takeUntil } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));
- * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link empty}
- * @see {@link last}
- *
- * @param {any} [defaultValue=null] The default value used if the source
- * Observable is empty.
- * @return {Observable} An Observable that emits either the specified
- * `defaultValue` if the source Observable emits no items, or the values emitted
- * by the source Observable.
- * @method defaultIfEmpty
- * @owner Observable
- */
-export function defaultIfEmpty<T, R>(defaultValue: R = null): OperatorFunction<T, T | R> {
-  return (source: Observable<T>) => source.lift(new DefaultIfEmptyOperator(defaultValue)) as Observable<T | R>;
-}
-
-class DefaultIfEmptyOperator<T, R> implements Operator<T, T | R> {
-
-  constructor(private defaultValue: R) {
-  }
-
-  call(subscriber: Subscriber<T | R>, source: any): any {
-    return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DefaultIfEmptySubscriber<T, R> extends Subscriber<T> {
-  private isEmpty: boolean = true;
-
-  constructor(destination: Subscriber<T | R>, private defaultValue: R) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    this.isEmpty = false;
-    this.destination.next(value);
-  }
-
-  protected _complete(): void {
-    if (this.isEmpty) {
-      this.destination.next(this.defaultValue);
-    }
-    this.destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/delay.ts b/node_modules/rxjs/src/internal/operators/delay.ts
deleted file mode 100644
index 0f10f18..0000000
--- a/node_modules/rxjs/src/internal/operators/delay.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Notification } from '../Notification';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- * Delays the emission of items from the source Observable by a given timeout or
- * until a given Date.
- *
- * <span class="informal">Time shifts each item by some specified amount of
- * milliseconds.</span>
- *
- * ![](delay.png)
- *
- * If the delay argument is a Number, this operator time shifts the source
- * Observable by that amount of time expressed in milliseconds. The relative
- * time intervals between the values are preserved.
- *
- * If the delay argument is a Date, this operator time shifts the start of the
- * Observable execution until the given date occurs.
- *
- * ## Examples
- * Delay each click by one second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { delay } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second
- * delayedClicks.subscribe(x => console.log(x));
- * ```
- *
- * Delay all clicks until a future date happens
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { delay } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const date = new Date('March 15, 2050 12:00:00'); // in the future
- * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date
- * delayedClicks.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link debounceTime}
- * @see {@link delayWhen}
- *
- * @param {number|Date} delay The delay duration in milliseconds (a `number`) or
- * a `Date` until which the emission of the source items is delayed.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the time-shift for each item.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by the specified timeout or Date.
- * @method delay
- * @owner Observable
- */
-export function delay<T>(delay: number|Date,
-                         scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T> {
-  const absoluteDelay = isDate(delay);
-  const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(<number>delay);
-  return (source: Observable<T>) => source.lift(new DelayOperator(delayFor, scheduler));
-}
-
-class DelayOperator<T> implements Operator<T, T> {
-  constructor(private delay: number,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
-  }
-}
-
-interface DelayState<T> {
-  source: DelaySubscriber<T>;
-  destination: PartialObserver<T>;
-  scheduler: SchedulerLike;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DelaySubscriber<T> extends Subscriber<T> {
-  private queue: Array<DelayMessage<T>> = [];
-  private active: boolean = false;
-  private errored: boolean = false;
-
-  private static dispatch<T>(this: SchedulerAction<DelayState<T>>, state: DelayState<T>): void {
-    const source = state.source;
-    const queue = source.queue;
-    const scheduler = state.scheduler;
-    const destination = state.destination;
-
-    while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
-      queue.shift().notification.observe(destination);
-    }
-
-    if (queue.length > 0) {
-      const delay = Math.max(0, queue[0].time - scheduler.now());
-      this.schedule(state, delay);
-    } else {
-      this.unsubscribe();
-      source.active = false;
-    }
-  }
-
-  constructor(destination: Subscriber<T>,
-              private delay: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-  }
-
-  private _schedule(scheduler: SchedulerLike): void {
-    this.active = true;
-    const destination = this.destination as Subscription;
-    destination.add(scheduler.schedule<DelayState<T>>(DelaySubscriber.dispatch, this.delay, {
-      source: this, destination: this.destination, scheduler: scheduler
-    }));
-  }
-
-  private scheduleNotification(notification: Notification<T>): void {
-    if (this.errored === true) {
-      return;
-    }
-
-    const scheduler = this.scheduler;
-    const message = new DelayMessage(scheduler.now() + this.delay, notification);
-    this.queue.push(message);
-
-    if (this.active === false) {
-      this._schedule(scheduler);
-    }
-  }
-
-  protected _next(value: T) {
-    this.scheduleNotification(Notification.createNext(value));
-  }
-
-  protected _error(err: any) {
-    this.errored = true;
-    this.queue = [];
-    this.destination.error(err);
-    this.unsubscribe();
-  }
-
-  protected _complete() {
-    this.scheduleNotification(Notification.createComplete());
-    this.unsubscribe();
-  }
-}
-
-class DelayMessage<T> {
-  constructor(public readonly time: number,
-              public readonly notification: Notification<T>) {
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/delayWhen.ts b/node_modules/rxjs/src/internal/operators/delayWhen.ts
deleted file mode 100644
index ce41541..0000000
--- a/node_modules/rxjs/src/internal/operators/delayWhen.ts
+++ /dev/null
@@ -1,225 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */
-export function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<never>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;
-export function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<any>, subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T>;
-/* tslint:disable:max-line-length */
-
-/**
- * Delays the emission of items from the source Observable by a given time span
- * determined by the emissions of another Observable.
- *
- * <span class="informal">It's like {@link delay}, but the time span of the
- * delay duration is determined by a second Observable.</span>
- *
- * ![](delayWhen.png)
- *
- * `delayWhen` time shifts each emitted value from the source Observable by a
- * time span determined by another Observable. When the source emits a value,
- * the `delayDurationSelector` function is called with the source value as
- * argument, and should return an Observable, called the "duration" Observable.
- * The source value is emitted on the output Observable only when the duration
- * Observable emits a value or completes.
- * The completion of the notifier triggering the emission of the source value
- * is deprecated behavior and will be removed in future versions.
- *
- * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which
- * is an Observable. When `subscriptionDelay` emits its first value or
- * completes, the source Observable is subscribed to and starts behaving like
- * described in the previous paragraph. If `subscriptionDelay` is not provided,
- * `delayWhen` will subscribe to the source Observable as soon as the output
- * Observable is subscribed.
- *
- * ## Example
- * Delay each click by a random amount of time, between 0 and 5 seconds
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { delayWhen } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const delayedClicks = clicks.pipe(
- *   delayWhen(event => interval(Math.random() * 5000)),
- * );
- * delayedClicks.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link delay}
- * @see {@link throttle}
- * @see {@link throttleTime}
- * @see {@link debounce}
- * @see {@link debounceTime}
- * @see {@link sample}
- * @see {@link sampleTime}
- * @see {@link audit}
- * @see {@link auditTime}
- *
- * @param {function(value: T, index: number): Observable} delayDurationSelector A function that
- * returns an Observable for each value emitted by the source Observable, which
- * is then used to delay the emission of that item on the output Observable
- * until the Observable returned from this function emits a value.
- * @param {Observable} subscriptionDelay An Observable that triggers the
- * subscription to the source Observable once it emits any value.
- * @return {Observable} An Observable that delays the emissions of the source
- * Observable by an amount of time specified by the Observable returned by
- * `delayDurationSelector`.
- * @method delayWhen
- * @owner Observable
- */
-export function delayWhen<T>(delayDurationSelector: (value: T, index: number) => Observable<any>,
-                             subscriptionDelay?: Observable<any>): MonoTypeOperatorFunction<T> {
-  if (subscriptionDelay) {
-    return (source: Observable<T>) =>
-      new SubscriptionDelayObservable(source, subscriptionDelay)
-        .lift(new DelayWhenOperator(delayDurationSelector));
-  }
-  return (source: Observable<T>) => source.lift(new DelayWhenOperator(delayDurationSelector));
-}
-
-class DelayWhenOperator<T> implements Operator<T, T> {
-  constructor(private delayDurationSelector: (value: T, index: number) => Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DelayWhenSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private completed: boolean = false;
-  private delayNotifierSubscriptions: Array<Subscription> = [];
-  private index: number = 0;
-
-  constructor(destination: Subscriber<T>,
-              private delayDurationSelector: (value: T, index: number) => Observable<any>) {
-    super(destination);
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.destination.next(outerValue);
-    this.removeSubscription(innerSub);
-    this.tryComplete();
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, R>): void {
-    this._error(error);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, R>): void {
-    const value = this.removeSubscription(innerSub);
-    if (value) {
-      this.destination.next(value);
-    }
-    this.tryComplete();
-  }
-
-  protected _next(value: T): void {
-    const index = this.index++;
-    try {
-      const delayNotifier = this.delayDurationSelector(value, index);
-      if (delayNotifier) {
-        this.tryDelay(delayNotifier, value);
-      }
-    } catch (err) {
-      this.destination.error(err);
-    }
-  }
-
-  protected _complete(): void {
-    this.completed = true;
-    this.tryComplete();
-    this.unsubscribe();
-  }
-
-  private removeSubscription(subscription: InnerSubscriber<T, R>): T {
-    subscription.unsubscribe();
-
-    const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
-    if (subscriptionIdx !== -1) {
-      this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
-    }
-
-    return subscription.outerValue;
-  }
-
-  private tryDelay(delayNotifier: Observable<any>, value: T): void {
-    const notifierSubscription = subscribeToResult(this, delayNotifier, value);
-
-    if (notifierSubscription && !notifierSubscription.closed) {
-      const destination = this.destination as Subscription;
-      destination.add(notifierSubscription);
-      this.delayNotifierSubscriptions.push(notifierSubscription);
-    }
-  }
-
-  private tryComplete(): void {
-    if (this.completed && this.delayNotifierSubscriptions.length === 0) {
-      this.destination.complete();
-    }
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SubscriptionDelayObservable<T> extends Observable<T> {
-  constructor(public source: Observable<T>, private subscriptionDelay: Observable<any>) {
-    super();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>) {
-    this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SubscriptionDelaySubscriber<T> extends Subscriber<T> {
-  private sourceSubscribed: boolean = false;
-
-  constructor(private parent: Subscriber<T>, private source: Observable<T>) {
-    super();
-  }
-
-  protected _next(unused: any) {
-    this.subscribeToSource();
-  }
-
-  protected _error(err: any) {
-    this.unsubscribe();
-    this.parent.error(err);
-  }
-
-  protected _complete() {
-    this.unsubscribe();
-    this.subscribeToSource();
-  }
-
-  private subscribeToSource(): void {
-    if (!this.sourceSubscribed) {
-      this.sourceSubscribed = true;
-      this.unsubscribe();
-      this.source.subscribe(this.parent);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/dematerialize.ts b/node_modules/rxjs/src/internal/operators/dematerialize.ts
deleted file mode 100644
index ba1dcb1..0000000
--- a/node_modules/rxjs/src/internal/operators/dematerialize.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-import { OperatorFunction } from '../types';
-
-/**
- * Converts an Observable of {@link Notification} objects into the emissions
- * that they represent.
- *
- * <span class="informal">Unwraps {@link Notification} objects as actual `next`,
- * `error` and `complete` emissions. The opposite of {@link materialize}.</span>
- *
- * ![](dematerialize.png)
- *
- * `dematerialize` is assumed to operate an Observable that only emits
- * {@link Notification} objects as `next` emissions, and does not emit any
- * `error`. Such Observable is the output of a `materialize` operation. Those
- * notifications are then unwrapped using the metadata they contain, and emitted
- * as `next`, `error`, and `complete` on the output Observable.
- *
- * Use this operator in conjunction with {@link materialize}.
- *
- * ## Example
- * Convert an Observable of Notifications to an actual Observable
- * ```ts
- * import { of, Notification } from 'rxjs';
- * import { dematerialize } from 'rxjs/operators';
- *
- * const notifA = new Notification('N', 'A');
- * const notifB = new Notification('N', 'B');
- * const notifE = new Notification('E', undefined,
- *   new TypeError('x.toUpperCase is not a function')
- * );
- * const materialized = of(notifA, notifB, notifE);
- * const upperCase = materialized.pipe(dematerialize());
- * upperCase.subscribe(x => console.log(x), e => console.error(e));
- *
- * // Results in:
- * // A
- * // B
- * // TypeError: x.toUpperCase is not a function
- * ```
- *
- * @see {@link Notification}
- * @see {@link materialize}
- *
- * @return {Observable} An Observable that emits items and notifications
- * embedded in Notification objects emitted by the source Observable.
- * @method dematerialize
- * @owner Observable
- */
-export function dematerialize<T>(): OperatorFunction<Notification<T>, T> {
-  return function dematerializeOperatorFunction(source: Observable<Notification<T>>) {
-    return source.lift(new DeMaterializeOperator());
-  };
-}
-
-class DeMaterializeOperator<T extends Notification<any>, R> implements Operator<T, R> {
-  call(subscriber: Subscriber<any>, source: any): any {
-    return source.subscribe(new DeMaterializeSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DeMaterializeSubscriber<T extends Notification<any>> extends Subscriber<T> {
-  constructor(destination: Subscriber<any>) {
-    super(destination);
-  }
-
-  protected _next(value: T) {
-    value.observe(this.destination);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/distinct.ts b/node_modules/rxjs/src/internal/operators/distinct.ts
deleted file mode 100644
index b464420..0000000
--- a/node_modules/rxjs/src/internal/operators/distinct.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.
- *
- * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will
- * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the
- * source observable directly with an equality check against previous values.
- *
- * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.
- *
- * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the
- * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`
- * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so
- * that the internal `Set` can be "flushed", basically clearing it of values.
- *
- * ## Examples
- * A simple example with numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { distinct } from 'rxjs/operators';
- *
- * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe(
- *     distinct(),
- *   )
- *   .subscribe(x => console.log(x)); // 1, 2, 3, 4
- * ```
- *
- * An example using a keySelector function
- * ```typescript
- * import { of } from 'rxjs';
- * import { distinct } from 'rxjs/operators';
- *
- * interface Person {
- *    age: number,
- *    name: string
- * }
- *
- * of<Person>(
- *     { age: 4, name: 'Foo'},
- *     { age: 7, name: 'Bar'},
- *     { age: 5, name: 'Foo'},
- *   ).pipe(
- *     distinct((p: Person) => p.name),
- *   )
- *   .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo' }
- * // { age: 7, name: 'Bar' }
- * ```
- * @see {@link distinctUntilChanged}
- * @see {@link distinctUntilKeyChanged}
- *
- * @param {function} [keySelector] Optional function to select which value you want to check as distinct.
- * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator.
- * @return {Observable} An Observable that emits items from the source Observable with distinct values.
- * @method distinct
- * @owner Observable
- */
-export function distinct<T, K>(keySelector?: (value: T) => K,
-                               flushes?: Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new DistinctOperator(keySelector, flushes));
-}
-
-class DistinctOperator<T, K> implements Operator<T, T> {
-  constructor(private keySelector: (value: T) => K, private flushes: Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class DistinctSubscriber<T, K> extends OuterSubscriber<T, T> {
-  private values = new Set<K>();
-
-  constructor(destination: Subscriber<T>, private keySelector: (value: T) => K, flushes: Observable<any>) {
-    super(destination);
-
-    if (flushes) {
-      this.add(subscribeToResult(this, flushes));
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: T,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, T>): void {
-    this.values.clear();
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, T>): void {
-    this._error(error);
-  }
-
-  protected _next(value: T): void {
-    if (this.keySelector) {
-      this._useKeySelector(value);
-    } else {
-      this._finalizeNext(value, value);
-    }
-  }
-
-  private _useKeySelector(value: T): void {
-    let key: K;
-    const { destination } = this;
-    try {
-      key = this.keySelector(value);
-    } catch (err) {
-      destination.error(err);
-      return;
-    }
-    this._finalizeNext(key, value);
-  }
-
-  private _finalizeNext(key: K|T, value: T) {
-    const { values } = this;
-    if (!values.has(<K>key)) {
-      values.add(<K>key);
-      this.destination.next(value);
-    }
-  }
-
-}
diff --git a/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts b/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts
deleted file mode 100644
index 6eef0b2..0000000
--- a/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts
+++ /dev/null
@@ -1,124 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/* tslint:disable:max-line-length */
-export function distinctUntilChanged<T>(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction<T>;
-export function distinctUntilChanged<T, K>(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.
- *
- * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.
- *
- * If a comparator function is not provided, an equality check is used by default.
- *
- * ## Example
- * A simple example with numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { distinctUntilChanged } from 'rxjs/operators';
- *
- * of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4).pipe(
- *     distinctUntilChanged(),
- *   )
- *   .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4
- * ```
- *
- * An example using a compare function
- * ```typescript
- * import { of } from 'rxjs';
- * import { distinctUntilChanged } from 'rxjs/operators';
- *
- * interface Person {
- *    age: number,
- *    name: string
- * }
- *
- * of<Person>(
- *     { age: 4, name: 'Foo'},
- *     { age: 7, name: 'Bar'},
- *     { age: 5, name: 'Foo'},
- *     { age: 6, name: 'Foo'},
- *   ).pipe(
- *     distinctUntilChanged((p: Person, q: Person) => p.name === q.name),
- *   )
- *   .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo' }
- * // { age: 7, name: 'Bar' }
- * // { age: 5, name: 'Foo' }
- * ```
- *
- * @see {@link distinct}
- * @see {@link distinctUntilKeyChanged}
- *
- * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.
- * @return {Observable} An Observable that emits items from the source Observable with distinct values.
- * @method distinctUntilChanged
- * @owner Observable
- */
-export function distinctUntilChanged<T, K>(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new DistinctUntilChangedOperator<T, K>(compare, keySelector));
-}
-
-class DistinctUntilChangedOperator<T, K> implements Operator<T, T> {
-  constructor(private compare: (x: K, y: K) => boolean,
-              private keySelector: (x: T) => K) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class DistinctUntilChangedSubscriber<T, K> extends Subscriber<T> {
-  private key: K;
-  private hasKey: boolean = false;
-
-  constructor(destination: Subscriber<T>,
-              compare: (x: K, y: K) => boolean,
-              private keySelector: (x: T) => K) {
-    super(destination);
-    if (typeof compare === 'function') {
-      this.compare = compare;
-    }
-  }
-
-  private compare(x: any, y: any): boolean {
-    return x === y;
-  }
-
-  protected _next(value: T): void {
-    let key: any;
-    try {
-      const { keySelector } = this;
-      key = keySelector ? keySelector(value) : value;
-    } catch (err) {
-      return this.destination.error(err);
-    }
-    let result = false;
-    if (this.hasKey) {
-      try {
-        const { compare } = this;
-        result = compare(this.key, key);
-      } catch (err) {
-        return this.destination.error(err);
-      }
-    } else {
-      this.hasKey = true;
-    }
-    if (!result) {
-      this.key = key;
-      this.destination.next(value);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts
deleted file mode 100644
index b649fc5..0000000
--- a/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import { distinctUntilChanged } from './distinctUntilChanged';
-import { MonoTypeOperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function distinctUntilKeyChanged<T>(key: keyof T): MonoTypeOperatorFunction<T>;
-export function distinctUntilKeyChanged<T, K extends keyof T>(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,
- * using a property accessed by using the key provided to check if the two items are distinct.
- *
- * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.
- *
- * If a comparator function is not provided, an equality check is used by default.
- *
- * ## Examples
- * An example comparing the name of persons
- * ```typescript
- * import { of } from 'rxjs';
- * import { distinctUntilKeyChanged } from 'rxjs/operators';
- *
- *  interface Person {
- *     age: number,
- *     name: string
- *  }
- *
- * of<Person>(
- *     { age: 4, name: 'Foo'},
- *     { age: 7, name: 'Bar'},
- *     { age: 5, name: 'Foo'},
- *     { age: 6, name: 'Foo'},
- *   ).pipe(
- *     distinctUntilKeyChanged('name'),
- *   )
- *   .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo' }
- * // { age: 7, name: 'Bar' }
- * // { age: 5, name: 'Foo' }
- * ```
- *
- * An example comparing the first letters of the name
- * ```typescript
- * import { of } from 'rxjs';
- * import { distinctUntilKeyChanged } from 'rxjs/operators';
- *
- * interface Person {
- *     age: number,
- *     name: string
- *  }
- *
- * of<Person>(
- *     { age: 4, name: 'Foo1'},
- *     { age: 7, name: 'Bar'},
- *     { age: 5, name: 'Foo2'},
- *     { age: 6, name: 'Foo3'},
- *   ).pipe(
- *     distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3)),
- *   )
- *   .subscribe(x => console.log(x));
- *
- * // displays:
- * // { age: 4, name: 'Foo1' }
- * // { age: 7, name: 'Bar' }
- * // { age: 5, name: 'Foo2' }
- * ```
- *
- * @see {@link distinct}
- * @see {@link distinctUntilChanged}
- *
- * @param {string} key String key for object property lookup on each item.
- * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.
- * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified.
- * @method distinctUntilKeyChanged
- * @owner Observable
- */
-export function distinctUntilKeyChanged<T, K extends keyof T>(key: K, compare?: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction<T> {
-  return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]);
-}
diff --git a/node_modules/rxjs/src/internal/operators/elementAt.ts b/node_modules/rxjs/src/internal/operators/elementAt.ts
deleted file mode 100644
index 5cee983..0000000
--- a/node_modules/rxjs/src/internal/operators/elementAt.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-import { filter } from './filter';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { take } from './take';
-
-/**
- * Emits the single value at the specified `index` in a sequence of emissions
- * from the source Observable.
- *
- * <span class="informal">Emits only the i-th value, then completes.</span>
- *
- * ![](elementAt.png)
- *
- * `elementAt` returns an Observable that emits the item at the specified
- * `index` in the source Observable, or a default value if that `index` is out
- * of range and the `default` argument is provided. If the `default` argument is
- * not given and the `index` is out of range, the output Observable will emit an
- * `ArgumentOutOfRangeError` error.
- *
- * ## Example
- * Emit only the third click event
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { elementAt } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(elementAt(2));
- * result.subscribe(x => console.log(x));
- *
- * // Results in:
- * // click 1 = nothing
- * // click 2 = nothing
- * // click 3 = MouseEvent object logged to console
- * ```
- *
- * @see {@link first}
- * @see {@link last}
- * @see {@link skip}
- * @see {@link single}
- * @see {@link take}
- *
- * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the
- * Observable has completed before emitting the i-th `next` notification.
- *
- * @param {number} index Is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {T} [defaultValue] The default value returned for missing indices.
- * @return {Observable} An Observable that emits a single item, if it is found.
- * Otherwise, will emit the default value if given. If not, then emits an error.
- * @method elementAt
- * @owner Observable
- */
-export function elementAt<T>(index: number, defaultValue?: T): MonoTypeOperatorFunction<T> {
-  if (index < 0) { throw new ArgumentOutOfRangeError(); }
-  const hasDefaultValue = arguments.length >= 2;
-  return (source: Observable<T>) => source.pipe(
-    filter((v, i) => i === index),
-    take(1),
-    hasDefaultValue
-      ? defaultIfEmpty(defaultValue)
-      : throwIfEmpty(() => new ArgumentOutOfRangeError()),
-  );
-}
diff --git a/node_modules/rxjs/src/internal/operators/endWith.ts b/node_modules/rxjs/src/internal/operators/endWith.ts
deleted file mode 100644
index 46aa651..0000000
--- a/node_modules/rxjs/src/internal/operators/endWith.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Observable } from '../Observable';
-import { concat } from '../observable/concat';
-import { of } from '../observable/of';
-import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A>(v1: A, scheduler: SchedulerLike): OperatorFunction<T, T | A>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A, B>(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction<T, T | A | B>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A, B, C>(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction<T, T | A | B | C | D | E | F>;
-
-export function endWith<T, A>(v1: A): OperatorFunction<T, T | A>;
-export function endWith<T, A, B>(v1: A, v2: B): OperatorFunction<T, T | A | B>;
-export function endWith<T, A, B, C>(v1: A, v2: B, v3: C): OperatorFunction<T, T | A | B | C>;
-export function endWith<T, A, B, C, D>(v1: A, v2: B, v3: C, v4: D): OperatorFunction<T, T | A | B | C | D>;
-export function endWith<T, A, B, C, D, E>(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction<T, T | A | B | C | D | E>;
-export function endWith<T, A, B, C, D, E, F>(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction<T, T | A | B | C | D | E | F>;
-export function endWith<T, Z = T>(...array: Z[]): OperatorFunction<T, T | Z>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */
-export function endWith<T, Z = T>(...array: Array<Z | SchedulerLike>): OperatorFunction<T, T | Z>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits the items you specify as arguments after it finishes emitting
- * items emitted by the source Observable.
- *
- * ![](endWith.png)
- *
- * ## Example
- * ### After the source observable completes, appends an emission and then completes too.
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { endWith } from 'rxjs/operators';
- *
- * of('hi', 'how are you?', 'sorry, I have to go now').pipe(
- *   endWith('goodbye!'),
- * )
- * .subscribe(word => console.log(word));
- * // result:
- * // 'hi'
- * // 'how are you?'
- * // 'sorry, I have to go now'
- * // 'goodbye!'
- * ```
- *
- * @param {...T} values - Items you want the modified Observable to emit last.
- * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling
- * the emissions of the `next` notifications.
- * @return {Observable} An Observable that emits the items emitted by the source Observable
- *  and then emits the items in the specified Iterable.
- * @method endWith
- * @owner Observable
- */
-export function endWith<T>(...array: Array<T | SchedulerLike>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => concat(source, of(...array)) as Observable<T>;
-}
diff --git a/node_modules/rxjs/src/internal/operators/every.ts b/node_modules/rxjs/src/internal/operators/every.ts
deleted file mode 100644
index 5e2c9a6..0000000
--- a/node_modules/rxjs/src/internal/operators/every.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Observer, OperatorFunction } from '../types';
-
-/**
- * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.
- *
- * ## Example
- * A simple example emitting true if all elements are less than 5, false otherwise
- * ```ts
- * import { of } from 'rxjs';
- * import { every } from 'rxjs/operators';
- *
- *  of(1, 2, 3, 4, 5, 6).pipe(
- *     every(x => x < 5),
- * )
- * .subscribe(x => console.log(x)); // -> false
- * ```
- *
- * @param {function} predicate A function for determining if an item meets a specified condition.
- * @param {any} [thisArg] Optional object to use for `this` in the callback.
- * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified.
- * @method every
- * @owner Observable
- */
-export function every<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean,
-                         thisArg?: any): OperatorFunction<T, boolean> {
-  return (source: Observable<T>) => source.lift(new EveryOperator(predicate, thisArg, source));
-}
-
-class EveryOperator<T> implements Operator<T, boolean> {
-  constructor(private predicate: (value: T, index: number, source: Observable<T>) => boolean,
-              private thisArg?: any,
-              private source?: Observable<T>) {
-  }
-
-  call(observer: Subscriber<boolean>, source: any): any {
-    return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class EverySubscriber<T> extends Subscriber<T> {
-  private index: number = 0;
-
-  constructor(destination: Observer<boolean>,
-              private predicate: (value: T, index: number, source: Observable<T>) => boolean,
-              private thisArg: any,
-              private source?: Observable<T>) {
-    super(destination);
-    this.thisArg = thisArg || this;
-  }
-
-  private notifyComplete(everyValueMatch: boolean): void {
-    this.destination.next(everyValueMatch);
-    this.destination.complete();
-  }
-
-  protected _next(value: T): void {
-    let result = false;
-    try {
-      result = this.predicate.call(this.thisArg, value, this.index++, this.source);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-
-    if (!result) {
-      this.notifyComplete(false);
-    }
-  }
-
-  protected _complete(): void {
-    this.notifyComplete(true);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/exhaust.ts b/node_modules/rxjs/src/internal/operators/exhaust.ts
deleted file mode 100644
index ad14b76..0000000
--- a/node_modules/rxjs/src/internal/operators/exhaust.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, TeardownLogic } from '../types';
-
-export function exhaust<T>(): OperatorFunction<ObservableInput<T>, T>;
-export function exhaust<R>(): OperatorFunction<any, R>;
-
-/**
- * Converts a higher-order Observable into a first-order Observable by dropping
- * inner Observables while the previous inner Observable has not yet completed.
- *
- * <span class="informal">Flattens an Observable-of-Observables by dropping the
- * next inner Observables while the current inner is still executing.</span>
- *
- * ![](exhaust.png)
- *
- * `exhaust` subscribes to an Observable that emits Observables, also known as a
- * higher-order Observable. Each time it observes one of these emitted inner
- * Observables, the output Observable begins emitting the items emitted by that
- * inner Observable. So far, it behaves like {@link mergeAll}. However,
- * `exhaust` ignores every new inner Observable if the previous Observable has
- * not yet completed. Once that one completes, it will accept and flatten the
- * next inner Observable and repeat this process.
- *
- * ## Example
- * Run a finite timer for each click, only if there is no currently active timer
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { exhaust, map, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(
- *   map((ev) => interval(1000).pipe(take(5))),
- * );
- * const result = higherOrder.pipe(exhaust());
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link combineAll}
- * @see {@link concatAll}
- * @see {@link switchAll}
- * @see {@link switchMap}
- * @see {@link mergeAll}
- * @see {@link exhaustMap}
- * @see {@link zipAll}
- *
- * @return {Observable} An Observable that takes a source of Observables and propagates the first observable
- * exclusively until it completes before subscribing to the next.
- * @method exhaust
- * @owner Observable
- */
-export function exhaust<T>(): OperatorFunction<any, T> {
-  return (source: Observable<T>) => source.lift(new SwitchFirstOperator<T>());
-}
-
-class SwitchFirstOperator<T> implements Operator<T, T> {
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SwitchFirstSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SwitchFirstSubscriber<T> extends OuterSubscriber<T, T> {
-  private hasCompleted: boolean = false;
-  private hasSubscription: boolean = false;
-
-  constructor(destination: Subscriber<T>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    if (!this.hasSubscription) {
-      this.hasSubscription = true;
-      this.add(subscribeToResult(this, value));
-    }
-  }
-
-  protected _complete(): void {
-    this.hasCompleted = true;
-    if (!this.hasSubscription) {
-      this.destination.complete();
-    }
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    this.remove(innerSub);
-    this.hasSubscription = false;
-    if (this.hasCompleted) {
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/exhaustMap.ts b/node_modules/rxjs/src/internal/operators/exhaustMap.ts
deleted file mode 100644
index 3bf6ff4..0000000
--- a/node_modules/rxjs/src/internal/operators/exhaustMap.ts
+++ /dev/null
@@ -1,164 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-import { map } from './map';
-import { from } from '../observable/from';
-
-/* tslint:disable:max-line-length */
-export function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported. Use inner map instead. */
-export function exhaustMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported. Use inner map instead. */
-export function exhaustMap<T, I, R>(project: (value: T, index: number) => ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to an Observable which is merged in the output
- * Observable only if the previous projected Observable has completed.
- *
- * <span class="informal">Maps each value to an Observable, then flattens all of
- * these inner Observables using {@link exhaust}.</span>
- *
- * ![](exhaustMap.png)
- *
- * Returns an Observable that emits items based on applying a function that you
- * supply to each item emitted by the source Observable, where that function
- * returns an (so-called "inner") Observable. When it projects a source value to
- * an Observable, the output Observable begins emitting the items emitted by
- * that projected Observable. However, `exhaustMap` ignores every new projected
- * Observable if the previous projected Observable has not yet completed. Once
- * that one completes, it will accept and flatten the next projected Observable
- * and repeat this process.
- *
- * ## Example
- * Run a finite timer for each click, only if there is no currently active timer
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { exhaustMap, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   exhaustMap(ev => interval(1000).pipe(take(5)))
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link concatMap}
- * @see {@link exhaust}
- * @see {@link mergeMap}
- * @see {@link switchMap}
- *
- * @param {function(value: T, ?index: number): ObservableInput} project A function
- * that, when applied to an item emitted by the source Observable, returns an
- * Observable.
- * @return {Observable} An Observable containing projected Observables
- * of each item of the source, ignoring projected Observables that start before
- * their preceding Observable has completed.
- * @method exhaustMap
- * @owner Observable
- */
-export function exhaustMap<T, R, O extends ObservableInput<any>>(
-  project: (value: T, index: number) => O,
-  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  if (resultSelector) {
-    // DEPRECATED PATH
-    return (source: Observable<T>) => source.pipe(
-      exhaustMap((a, i) => from(project(a, i)).pipe(
-        map((b: any, ii: any) => resultSelector(a, b, i, ii)),
-      )),
-    );
-  }
-  return (source: Observable<T>) =>
-    source.lift(new ExhaustMapOperator(project));
-}
-
-class ExhaustMapOperator<T, R> implements Operator<T, R> {
-  constructor(private project: (value: T, index: number) => ObservableInput<R>) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class ExhaustMapSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private hasSubscription = false;
-  private hasCompleted = false;
-  private index = 0;
-
-  constructor(destination: Subscriber<R>,
-              private project: (value: T, index: number) => ObservableInput<R>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    if (!this.hasSubscription) {
-      this.tryNext(value);
-    }
-  }
-
-  private tryNext(value: T): void {
-    let result: ObservableInput<R>;
-    const index = this.index++;
-    try {
-      result = this.project(value, index);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.hasSubscription = true;
-    this._innerSub(result, value, index);
-  }
-
-  private _innerSub(result: ObservableInput<R>, value: T, index: number): void {
-    const innerSubscriber = new InnerSubscriber(this, value, index);
-    const destination = this.destination as Subscription;
-    destination.add(innerSubscriber);
-    const innerSubscription = subscribeToResult<T, R>(this, result, undefined, undefined, innerSubscriber);
-    // The returned subscription will usually be the subscriber that was
-    // passed. However, interop subscribers will be wrapped and for
-    // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-    if (innerSubscription !== innerSubscriber) {
-      destination.add(innerSubscription);
-    }
-  }
-
-  protected _complete(): void {
-    this.hasCompleted = true;
-    if (!this.hasSubscription) {
-      this.destination.complete();
-    }
-    this.unsubscribe();
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.destination.next(innerValue);
-  }
-
-  notifyError(err: any): void {
-    this.destination.error(err);
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    const destination = this.destination as Subscription;
-    destination.remove(innerSub);
-
-    this.hasSubscription = false;
-    if (this.hasCompleted) {
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/expand.ts b/node_modules/rxjs/src/internal/operators/expand.ts
deleted file mode 100644
index b686d61..0000000
--- a/node_modules/rxjs/src/internal/operators/expand.ts
+++ /dev/null
@@ -1,180 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types';
-
-/* tslint:disable:max-line-length */
-export function expand<T, R>(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, R>;
-export function expand<T>(project: (value: T, index: number) => ObservableInput<T>, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Recursively projects each source value to an Observable which is merged in
- * the output Observable.
- *
- * <span class="informal">It's similar to {@link mergeMap}, but applies the
- * projection function to every source value as well as every output value.
- * It's recursive.</span>
- *
- * ![](expand.png)
- *
- * Returns an Observable that emits items based on applying a function that you
- * supply to each item emitted by the source Observable, where that function
- * returns an Observable, and then merging those resulting Observables and
- * emitting the results of this merger. *Expand* will re-emit on the output
- * Observable every source value. Then, each output value is given to the
- * `project` function which returns an inner Observable to be merged on the
- * output Observable. Those output values resulting from the projection are also
- * given to the `project` function to produce new output values. This is how
- * *expand* behaves recursively.
- *
- * ## Example
- * Start emitting the powers of two on every click, at most 10 of them
- * ```ts
- * import { fromEvent, of } from 'rxjs';
- * import { expand, mapTo, delay, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const powersOfTwo = clicks.pipe(
- *   mapTo(1),
- *   expand(x => of(2 * x).pipe(delay(1000))),
- *   take(10),
- * );
- * powersOfTwo.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link mergeMap}
- * @see {@link mergeScan}
- *
- * @param {function(value: T, index: number) => Observable} project A function
- * that, when applied to an item emitted by the source or the output Observable,
- * returns an Observable.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input
- * Observables being subscribed to concurrently.
- * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to
- * each projected inner Observable.
- * @return {Observable} An Observable that emits the source values and also
- * result of applying the projection function to each value emitted on the
- * output Observable and and merging the results of the Observables obtained
- * from this transformation.
- * @method expand
- * @owner Observable
- */
-export function expand<T, R>(project: (value: T, index: number) => ObservableInput<R>,
-                             concurrent: number = Number.POSITIVE_INFINITY,
-                             scheduler: SchedulerLike = undefined): OperatorFunction<T, R> {
-  concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
-
-  return (source: Observable<T>) => source.lift(new ExpandOperator(project, concurrent, scheduler));
-}
-
-export class ExpandOperator<T, R> implements Operator<T, R> {
-  constructor(private project: (value: T, index: number) => ObservableInput<R>,
-              private concurrent: number,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
-  }
-}
-
-interface DispatchArg<T, R> {
-  subscriber: ExpandSubscriber<T, R>;
-  result: ObservableInput<R>;
-  value: any;
-  index: number;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class ExpandSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private index: number = 0;
-  private active: number = 0;
-  private hasCompleted: boolean = false;
-  private buffer: any[];
-
-  constructor(destination: Subscriber<R>,
-              private project: (value: T, index: number) => ObservableInput<R>,
-              private concurrent: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-    if (concurrent < Number.POSITIVE_INFINITY) {
-      this.buffer = [];
-    }
-  }
-
-  private static dispatch<T, R>(arg: DispatchArg<T, R>): void {
-    const {subscriber, result, value, index} = arg;
-    subscriber.subscribeToProjection(result, value, index);
-  }
-
-  protected _next(value: any): void {
-    const destination = this.destination;
-
-    if (destination.closed) {
-      this._complete();
-      return;
-    }
-
-    const index = this.index++;
-    if (this.active < this.concurrent) {
-      destination.next(value);
-      try {
-        const { project } = this;
-        const result = project(value, index);
-        if (!this.scheduler) {
-          this.subscribeToProjection(result, value, index);
-        } else {
-          const state: DispatchArg<T, R> = { subscriber: this, result, value, index };
-          const destination = this.destination as Subscription;
-          destination.add(this.scheduler.schedule<DispatchArg<T, R>>(ExpandSubscriber.dispatch, 0, state));
-        }
-      } catch (e) {
-        destination.error(e);
-      }
-    } else {
-      this.buffer.push(value);
-    }
-  }
-
-  private subscribeToProjection(result: any, value: T, index: number): void {
-    this.active++;
-    const destination = this.destination as Subscription;
-    destination.add(subscribeToResult<T, R>(this, result, value, index));
-  }
-
-  protected _complete(): void {
-    this.hasCompleted = true;
-    if (this.hasCompleted && this.active === 0) {
-      this.destination.complete();
-    }
-    this.unsubscribe();
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this._next(innerValue);
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    const buffer = this.buffer;
-    const destination = this.destination as Subscription;
-    destination.remove(innerSub);
-    this.active--;
-    if (buffer && buffer.length > 0) {
-      this._next(buffer.shift());
-    }
-    if (this.hasCompleted && this.active === 0) {
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/filter.ts b/node_modules/rxjs/src/internal/operators/filter.ts
deleted file mode 100644
index 953aacc..0000000
--- a/node_modules/rxjs/src/internal/operators/filter.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/* tslint:disable:max-line-length */
-export function filter<T, S extends T>(predicate: (value: T, index: number) => value is S,
-                                       thisArg?: any): OperatorFunction<T, S>;
-export function filter<T>(predicate: (value: T, index: number) => boolean,
-                          thisArg?: any): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Filter items emitted by the source Observable by only emitting those that
- * satisfy a specified predicate.
- *
- * <span class="informal">Like
- * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),
- * it only emits a value from the source if it passes a criterion function.</span>
- *
- * ![](filter.png)
- *
- * Similar to the well-known `Array.prototype.filter` method, this operator
- * takes values from the source Observable, passes them through a `predicate`
- * function and only emits those values that yielded `true`.
- *
- * ## Example
- * Emit only click events whose target was a DIV element
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { filter } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV'));
- * clicksOnDivs.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link distinct}
- * @see {@link distinctUntilChanged}
- * @see {@link distinctUntilKeyChanged}
- * @see {@link ignoreElements}
- * @see {@link partition}
- * @see {@link skip}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates each value emitted by the source Observable. If it returns `true`,
- * the value is emitted, if `false` the value is not passed to the output
- * Observable. The `index` parameter is the number `i` for the i-th source
- * emission that has happened since the subscription, starting from the number
- * `0`.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {Observable} An Observable of values from the source that were
- * allowed by the `predicate` function.
- * @method filter
- * @owner Observable
- */
-export function filter<T>(predicate: (value: T, index: number) => boolean,
-                          thisArg?: any): MonoTypeOperatorFunction<T> {
-  return function filterOperatorFunction(source: Observable<T>): Observable<T> {
-    return source.lift(new FilterOperator(predicate, thisArg));
-  };
-}
-
-class FilterOperator<T> implements Operator<T, T> {
-  constructor(private predicate: (value: T, index: number) => boolean,
-              private thisArg?: any) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class FilterSubscriber<T> extends Subscriber<T> {
-
-  count: number = 0;
-
-  constructor(destination: Subscriber<T>,
-              private predicate: (value: T, index: number) => boolean,
-              private thisArg: any) {
-    super(destination);
-  }
-
-  // the try catch block below is left specifically for
-  // optimization and perf reasons. a tryCatcher is not necessary here.
-  protected _next(value: T) {
-    let result: any;
-    try {
-      result = this.predicate.call(this.thisArg, value, this.count++);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    if (result) {
-      this.destination.next(value);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/finalize.ts b/node_modules/rxjs/src/internal/operators/finalize.ts
deleted file mode 100644
index d19d613..0000000
--- a/node_modules/rxjs/src/internal/operators/finalize.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that mirrors the source Observable, but will call a specified function when
- * the source terminates on complete or error.
- * @param {function} callback Function to be called when source terminates.
- * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination.
- * @method finally
- * @owner Observable
- */
-export function finalize<T>(callback: () => void): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new FinallyOperator(callback));
-}
-
-class FinallyOperator<T> implements Operator<T, T> {
-  constructor(private callback: () => void) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new FinallySubscriber(subscriber, this.callback));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class FinallySubscriber<T> extends Subscriber<T> {
-  constructor(destination: Subscriber<T>, callback: () => void) {
-    super(destination);
-    this.add(new Subscription(callback));
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/find.ts b/node_modules/rxjs/src/internal/operators/find.ts
deleted file mode 100644
index 31cd7cc..0000000
--- a/node_modules/rxjs/src/internal/operators/find.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-import {Observable} from '../Observable';
-import {Operator} from '../Operator';
-import {Subscriber} from '../Subscriber';
-import {OperatorFunction} from '../types';
-
-export function find<T, S extends T>(predicate: (value: T, index: number, source: Observable<T>) => value is S,
-                                     thisArg?: any): OperatorFunction<T, S | undefined>;
-export function find<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean,
-                        thisArg?: any): OperatorFunction<T, T | undefined>;
-/**
- * Emits only the first value emitted by the source Observable that meets some
- * condition.
- *
- * <span class="informal">Finds the first value that passes some test and emits
- * that.</span>
- *
- * ![](find.png)
- *
- * `find` searches for the first item in the source Observable that matches the
- * specified condition embodied by the `predicate`, and returns the first
- * occurrence in the source. Unlike {@link first}, the `predicate` is required
- * in `find`, and does not emit an error if a valid value is not found.
- *
- * ## Example
- * Find and emit the first click that happens on a DIV element
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { find } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(find(ev => ev.target.tagName === 'DIV'));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link filter}
- * @see {@link first}
- * @see {@link findIndex}
- * @see {@link take}
- *
- * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate
- * A function called with each item to test for condition matching.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {Observable<T>} An Observable of the first item that matches the
- * condition.
- * @method find
- * @owner Observable
- */
-export function find<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean,
-                        thisArg?: any): OperatorFunction<T, T | undefined> {
-  if (typeof predicate !== 'function') {
-    throw new TypeError('predicate is not a function');
-  }
-  return (source: Observable<T>) => source.lift(new FindValueOperator(predicate, source, false, thisArg)) as Observable<T | undefined>;
-}
-
-export class FindValueOperator<T> implements Operator<T, T | number | undefined> {
-  constructor(private predicate: (value: T, index: number, source: Observable<T>) => boolean,
-              private source: Observable<T>,
-              private yieldIndex: boolean,
-              private thisArg?: any) {
-  }
-
-  call(observer: Subscriber<T>, source: any): any {
-    return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class FindValueSubscriber<T> extends Subscriber<T> {
-  private index: number = 0;
-
-  constructor(destination: Subscriber<T>,
-              private predicate: (value: T, index: number, source: Observable<T>) => boolean,
-              private source: Observable<T>,
-              private yieldIndex: boolean,
-              private thisArg?: any) {
-    super(destination);
-  }
-
-  private notifyComplete(value: any): void {
-    const destination = this.destination;
-
-    destination.next(value);
-    destination.complete();
-    this.unsubscribe();
-  }
-
-  protected _next(value: T): void {
-    const {predicate, thisArg} = this;
-    const index = this.index++;
-    try {
-      const result = predicate.call(thisArg || this, value, index, this.source);
-      if (result) {
-        this.notifyComplete(this.yieldIndex ? index : value);
-      }
-    } catch (err) {
-      this.destination.error(err);
-    }
-  }
-
-  protected _complete(): void {
-    this.notifyComplete(this.yieldIndex ? -1 : undefined);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/findIndex.ts b/node_modules/rxjs/src/internal/operators/findIndex.ts
deleted file mode 100644
index bdb62d4..0000000
--- a/node_modules/rxjs/src/internal/operators/findIndex.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Observable } from '../Observable';
-import { FindValueOperator } from '../operators/find';
-import { OperatorFunction } from '../types';
-/**
- * Emits only the index of the first value emitted by the source Observable that
- * meets some condition.
- *
- * <span class="informal">It's like {@link find}, but emits the index of the
- * found value, not the value itself.</span>
- *
- * ![](findIndex.png)
- *
- * `findIndex` searches for the first item in the source Observable that matches
- * the specified condition embodied by the `predicate`, and returns the
- * (zero-based) index of the first occurrence in the source. Unlike
- * {@link first}, the `predicate` is required in `findIndex`, and does not emit
- * an error if a valid value is not found.
- *
- * ## Example
- * Emit the index of first click that happens on a DIV element
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { findIndex } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV'));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link filter}
- * @see {@link find}
- * @see {@link first}
- * @see {@link take}
- *
- * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate
- * A function called with each item to test for condition matching.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {Observable} An Observable of the index of the first item that
- * matches the condition.
- * @method find
- * @owner Observable
- */
-export function findIndex<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean,
-                             thisArg?: any): OperatorFunction<T, number> {
-  return (source: Observable<T>) => source.lift(new FindValueOperator(predicate, source, true, thisArg)) as Observable<any>;
-}
diff --git a/node_modules/rxjs/src/internal/operators/first.ts b/node_modules/rxjs/src/internal/operators/first.ts
deleted file mode 100644
index 80ad111..0000000
--- a/node_modules/rxjs/src/internal/operators/first.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { EmptyError } from '../util/EmptyError';
-import { OperatorFunction } from '../../internal/types';
-import { filter } from './filter';
-import { take } from './take';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { throwIfEmpty } from './throwIfEmpty';
-import { identity } from '../util/identity';
-
-/* tslint:disable:max-line-length */
-export function first<T, D = T>(
-  predicate?: null,
-  defaultValue?: D
-): OperatorFunction<T, T | D>;
-export function first<T, S extends T>(
-  predicate: (value: T, index: number, source: Observable<T>) => value is S,
-  defaultValue?: S
-): OperatorFunction<T, S>;
-export function first<T, D = T>(
-  predicate: (value: T, index: number, source: Observable<T>) => boolean,
-  defaultValue?: D
-): OperatorFunction<T, T | D>;
-/* tslint:enable:max-line-length */
-
-/**
- * Emits only the first value (or the first value that meets some condition)
- * emitted by the source Observable.
- *
- * <span class="informal">Emits only the first value. Or emits only the first
- * value that passes some test.</span>
- *
- * ![](first.png)
- *
- * If called with no arguments, `first` emits the first value of the source
- * Observable, then completes. If called with a `predicate` function, `first`
- * emits the first value of the source that matches the specified condition. It
- * may also take a deprecated `resultSelector` function to produce the output
- * value from the input value, and a `defaultValue` to emit in case the source
- * completes before it is able to emit a valid value. Throws an error if
- * `defaultValue` was not provided and a matching element is not found.
- *
- * ## Examples
- * Emit only the first click that happens on the DOM
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { first } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(first());
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Emits the first click that happens on a DIV
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { first } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV'));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link filter}
- * @see {@link find}
- * @see {@link take}
- *
- * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`
- * callback if the Observable completes before any `next` notification was sent.
- *
- * @param {function(value: T, index: number, source: Observable<T>): boolean} [predicate]
- * An optional function called with each item to test for condition matching.
- * @param {R} [defaultValue] The default value emitted in case no valid value
- * was found on the source.
- * @return {Observable<T|R>} An Observable of the first item that matches the
- * condition.
- * @method first
- * @owner Observable
- */
-export function first<T, D>(
-  predicate?: ((value: T, index: number, source: Observable<T>) => boolean) | null,
-  defaultValue?: D
-): OperatorFunction<T, T | D> {
-  const hasDefaultValue = arguments.length >= 2;
-  return (source: Observable<T>) => source.pipe(
-    predicate ? filter((v, i) => predicate(v, i, source)) : identity,
-    take(1),
-    hasDefaultValue ? defaultIfEmpty<T | D>(defaultValue) : throwIfEmpty(() => new EmptyError()),
-  );
-}
diff --git a/node_modules/rxjs/src/internal/operators/groupBy.ts b/node_modules/rxjs/src/internal/operators/groupBy.ts
deleted file mode 100644
index 3f6343f..0000000
--- a/node_modules/rxjs/src/internal/operators/groupBy.ts
+++ /dev/null
@@ -1,319 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subject } from '../Subject';
-import { OperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function groupBy<T, K>(keySelector: (value: T) => K): OperatorFunction<T, GroupedObservable<K, T>>;
-export function groupBy<T, K>(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable<K, T>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, T>>;
-export function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>): OperatorFunction<T, GroupedObservable<K, R>>;
-export function groupBy<T, K, R>(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>, subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>>;
-/* tslint:enable:max-line-length */
-
-/**
- * Groups the items emitted by an Observable according to a specified criterion,
- * and emits these grouped items as `GroupedObservables`, one
- * {@link GroupedObservable} per group.
- *
- * ![](groupBy.png)
- *
- * When the Observable emits an item, a key is computed for this item with the keySelector function.
- *
- * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Elsewhere, a new
- * {@link GroupedObservable} for this key is created and emits.
- *
- * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common
- * key is available as the key field of a {@link GroupedObservable} instance.
- *
- * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements
- * returned by the elementSelector function.
- *
- * ## Examples
- *
- * ### Group objects by id and return as array
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { mergeMap, groupBy, reduce } from 'rxjs/operators';
- *
- * of(
- *   {id: 1, name: 'JavaScript'},
- *   {id: 2, name: 'Parcel'},
- *   {id: 2, name: 'webpack'},
- *   {id: 1, name: 'TypeScript'},
- *   {id: 3, name: 'TSLint'}
- * ).pipe(
- *   groupBy(p => p.id),
- *   mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))),
- * )
- * .subscribe(p => console.log(p));
- *
- * // displays:
- * // [ { id: 1, name: 'JavaScript'},
- * //   { id: 1, name: 'TypeScript'} ]
- * //
- * // [ { id: 2, name: 'Parcel'},
- * //   { id: 2, name: 'webpack'} ]
- * //
- * // [ { id: 3, name: 'TSLint'} ]
- * ```
- *
- * ### Pivot data on the id field
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { groupBy, map, mergeMap, reduce } from 'rxjs/operators';
- *
- * of(
- *   { id: 1, name: 'JavaScript' },
- *   { id: 2, name: 'Parcel' },
- *   { id: 2, name: 'webpack' },
- *   { id: 1, name: 'TypeScript' },
- *   { id: 3, name: 'TSLint' }
- * )
- *   .pipe(
- *     groupBy(p => p.id, p => p.name),
- *     mergeMap(group$ =>
- *       group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))
- *     ),
- *     map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) }))
- *  )
- *  .subscribe(p => console.log(p));
- *
- * // displays:
- * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] }
- * // { id: 2, values: [ 'Parcel', 'webpack' ] }
- * // { id: 3, values: [ 'TSLint' ] }
- * ```
- *
- * @param {function(value: T): K} keySelector A function that extracts the key
- * for each item.
- * @param {function(value: T): R} [elementSelector] A function that extracts the
- * return element for each item.
- * @param {function(grouped: GroupedObservable<K,R>): Observable<any>} [durationSelector]
- * A function that returns an Observable to determine how long each group should
- * exist.
- * @return {Observable<GroupedObservable<K,R>>} An Observable that emits
- * GroupedObservables, each of which corresponds to a unique key value and each
- * of which emits those items from the source Observable that share that key
- * value.
- * @method groupBy
- * @owner Observable
- */
-export function groupBy<T, K, R>(keySelector: (value: T) => K,
-                                 elementSelector?: ((value: T) => R) | void,
-                                 durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,
-                                 subjectSelector?: () => Subject<R>): OperatorFunction<T, GroupedObservable<K, R>> {
-  return (source: Observable<T>) =>
-    source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
-}
-
-export interface RefCountSubscription {
-  count: number;
-  unsubscribe: () => void;
-  closed: boolean;
-  attemptedToUnsubscribe: boolean;
-}
-
-class GroupByOperator<T, K, R> implements Operator<T, GroupedObservable<K, R>> {
-  constructor(private keySelector: (value: T) => K,
-              private elementSelector?: ((value: T) => R) | void,
-              private durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,
-              private subjectSelector?: () => Subject<R>) {
-  }
-
-  call(subscriber: Subscriber<GroupedObservable<K, R>>, source: any): any {
-    return source.subscribe(new GroupBySubscriber(
-      subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector
-    ));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class GroupBySubscriber<T, K, R> extends Subscriber<T> implements RefCountSubscription {
-  private groups: Map<K, Subject<T | R>> = null;
-  public attemptedToUnsubscribe: boolean = false;
-  public count: number = 0;
-
-  constructor(destination: Subscriber<GroupedObservable<K, R>>,
-              private keySelector: (value: T) => K,
-              private elementSelector?: ((value: T) => R) | void,
-              private durationSelector?: (grouped: GroupedObservable<K, R>) => Observable<any>,
-              private subjectSelector?: () => Subject<R>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    let key: K;
-    try {
-      key = this.keySelector(value);
-    } catch (err) {
-      this.error(err);
-      return;
-    }
-
-    this._group(value, key);
-  }
-
-  private _group(value: T, key: K) {
-    let groups = this.groups;
-
-    if (!groups) {
-      groups = this.groups = new Map<K, Subject<T | R>>();
-    }
-
-    let group = groups.get(key);
-
-    let element: R;
-    if (this.elementSelector) {
-      try {
-        element = this.elementSelector(value);
-      } catch (err) {
-        this.error(err);
-      }
-    } else {
-      element = <any>value;
-    }
-
-    if (!group) {
-      group = (this.subjectSelector ? this.subjectSelector() : new Subject<R>()) as Subject<T | R>;
-      groups.set(key, group);
-      const groupedObservable = new GroupedObservable(key, group, this);
-      this.destination.next(groupedObservable);
-      if (this.durationSelector) {
-        let duration: any;
-        try {
-          duration = this.durationSelector(new GroupedObservable<K, R>(key, <Subject<R>>group));
-        } catch (err) {
-          this.error(err);
-          return;
-        }
-        this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
-      }
-    }
-
-    if (!group.closed) {
-      group.next(element);
-    }
-  }
-
-  protected _error(err: any): void {
-    const groups = this.groups;
-    if (groups) {
-      groups.forEach((group, key) => {
-        group.error(err);
-      });
-
-      groups.clear();
-    }
-    this.destination.error(err);
-  }
-
-  protected _complete(): void {
-    const groups = this.groups;
-    if (groups) {
-      groups.forEach((group, key) => {
-        group.complete();
-      });
-
-      groups.clear();
-    }
-    this.destination.complete();
-  }
-
-  removeGroup(key: K): void {
-    this.groups.delete(key);
-  }
-
-  unsubscribe() {
-    if (!this.closed) {
-      this.attemptedToUnsubscribe = true;
-      if (this.count === 0) {
-        super.unsubscribe();
-      }
-    }
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class GroupDurationSubscriber<K, T> extends Subscriber<T> {
-  constructor(private key: K,
-              private group: Subject<T>,
-              private parent: GroupBySubscriber<any, K, T | any>) {
-    super(group);
-  }
-
-  protected _next(value: T): void {
-    this.complete();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    const { parent, key } = this;
-    this.key = this.parent = null;
-    if (parent) {
-      parent.removeGroup(key);
-    }
-  }
-}
-
-/**
- * An Observable representing values belonging to the same group represented by
- * a common key. The values emitted by a GroupedObservable come from the source
- * Observable. The common key is available as the field `key` on a
- * GroupedObservable instance.
- *
- * @class GroupedObservable<K, T>
- */
-export class GroupedObservable<K, T> extends Observable<T> {
-  /** @deprecated Do not construct this type. Internal use only */
-  constructor(public key: K,
-              private groupSubject: Subject<T>,
-              private refCountSubscription?: RefCountSubscription) {
-    super();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<T>) {
-    const subscription = new Subscription();
-    const { refCountSubscription, groupSubject } = this;
-    if (refCountSubscription && !refCountSubscription.closed) {
-      subscription.add(new InnerRefCountSubscription(refCountSubscription));
-    }
-    subscription.add(groupSubject.subscribe(subscriber));
-    return subscription;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class InnerRefCountSubscription extends Subscription {
-  constructor(private parent: RefCountSubscription) {
-    super();
-    parent.count++;
-  }
-
-  unsubscribe() {
-    const parent = this.parent;
-    if (!parent.closed && !this.closed) {
-      super.unsubscribe();
-      parent.count -= 1;
-      if (parent.count === 0 && parent.attemptedToUnsubscribe) {
-        parent.unsubscribe();
-      }
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/ignoreElements.ts b/node_modules/rxjs/src/internal/operators/ignoreElements.ts
deleted file mode 100644
index e153e77..0000000
--- a/node_modules/rxjs/src/internal/operators/ignoreElements.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction } from '../types';
-
-/**
- * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.
- *
- * ![](ignoreElements.png)
- *
- * ## Examples
- * ### Ignores emitted values, reacts to observable's completion.
- * ```ts
- * import { of } from 'rxjs';
- * import { ignoreElements } from 'rxjs/operators';
- *
- * of('you', 'talking', 'to', 'me').pipe(
- *   ignoreElements(),
- * )
- * .subscribe(
- *   word => console.log(word),
- *   err => console.log('error:', err),
- *   () => console.log('the end'),
- * );
- * // result:
- * // 'the end'
- * ```
- * @return {Observable} An empty Observable that only calls `complete`
- * or `error`, based on which one is called by the source Observable.
- * @method ignoreElements
- * @owner Observable
- */
-export function ignoreElements(): OperatorFunction<any, never> {
-  return function ignoreElementsOperatorFunction(source: Observable<any>) {
-    return source.lift(new IgnoreElementsOperator());
-  };
-}
-
-class IgnoreElementsOperator<T, R> implements Operator<T, R> {
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new IgnoreElementsSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class IgnoreElementsSubscriber<T> extends Subscriber<T> {
-  protected _next(unused: T): void {
-    // Do nothing
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/index.ts b/node_modules/rxjs/src/internal/operators/index.ts
deleted file mode 100644
index 7321559..0000000
--- a/node_modules/rxjs/src/internal/operators/index.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-export { audit } from './audit';
-export { auditTime } from './auditTime';
-export { buffer } from './buffer';
-export { bufferCount } from './bufferCount';
-export { bufferTime } from './bufferTime';
-export { bufferToggle } from './bufferToggle';
-export { bufferWhen } from './bufferWhen';
-export { catchError } from './catchError';
-export { combineAll } from './combineAll';
-export { combineLatest } from './combineLatest';
-export { concat } from './concat';
-export { concatAll } from './concatAll';
-export { concatMap } from './concatMap';
-export { concatMapTo } from './concatMapTo';
-export { count } from './count';
-export { debounce } from './debounce';
-export { debounceTime } from './debounceTime';
-export { defaultIfEmpty } from './defaultIfEmpty';
-export { delay } from './delay';
-export { delayWhen } from './delayWhen';
-export { dematerialize } from './dematerialize';
-export { distinct } from './distinct';
-export { distinctUntilChanged } from './distinctUntilChanged';
-export { distinctUntilKeyChanged } from './distinctUntilKeyChanged';
-export { elementAt } from './elementAt';
-export { every } from './every';
-export { exhaust } from './exhaust';
-export { exhaustMap } from './exhaustMap';
-export { expand } from './expand';
-export { filter } from './filter';
-export { finalize } from './finalize';
-export { find } from './find';
-export { findIndex } from './findIndex';
-export { first } from './first';
-export { groupBy } from './groupBy';
-export { ignoreElements } from './ignoreElements';
-export { isEmpty } from './isEmpty';
-export { last } from './last';
-export { map } from './map';
-export { mapTo } from './mapTo';
-export { materialize } from './materialize';
-export { max } from './max';
-export { merge } from './merge';
-export { mergeAll } from './mergeAll';
-export { mergeMap } from './mergeMap';
-export { mergeMap as flatMap } from './mergeMap';
-export { mergeMapTo } from './mergeMapTo';
-export { mergeScan } from './mergeScan';
-export { min } from './min';
-export { multicast } from './multicast';
-export { observeOn } from './observeOn';
-export { onErrorResumeNext } from './onErrorResumeNext';
-export { pairwise } from './pairwise';
-export { partition } from './partition';
-export { pluck } from './pluck';
-export { publish } from './publish';
-export { publishBehavior } from './publishBehavior';
-export { publishLast } from './publishLast';
-export { publishReplay } from './publishReplay';
-export { race } from './race';
-export { reduce } from './reduce';
-export { repeat } from './repeat';
-export { repeatWhen } from './repeatWhen';
-export { retry } from './retry';
-export { retryWhen } from './retryWhen';
-export { refCount } from './refCount';
-export { sample } from './sample';
-export { sampleTime } from './sampleTime';
-export { scan } from './scan';
-export { sequenceEqual } from './sequenceEqual';
-export { share } from './share';
-export { shareReplay } from './shareReplay';
-export { single } from './single';
-export { skip } from './skip';
-export { skipLast } from './skipLast';
-export { skipUntil } from './skipUntil';
-export { skipWhile } from './skipWhile';
-export { startWith } from './startWith';
-export { subscribeOn } from './subscribeOn';
-export { switchAll } from './switchAll';
-export { switchMap } from './switchMap';
-export { switchMapTo } from './switchMapTo';
-export { take } from './take';
-export { takeLast } from './takeLast';
-export { takeUntil } from './takeUntil';
-export { takeWhile } from './takeWhile';
-export { tap } from './tap';
-export { throttle } from './throttle';
-export { throttleTime } from './throttleTime';
-export { timeInterval } from './timeInterval';
-export { timeout } from './timeout';
-export { timeoutWith } from './timeoutWith';
-export { timestamp } from './timestamp';
-export { toArray } from './toArray';
-export { window } from './window';
-export { windowCount } from './windowCount';
-export { windowTime } from './windowTime';
-export { windowToggle } from './windowToggle';
-export { windowWhen } from './windowWhen';
-export { withLatestFrom } from './withLatestFrom';
-export { zip } from './zip';
-export { zipAll } from './zipAll';
diff --git a/node_modules/rxjs/src/internal/operators/isEmpty.ts b/node_modules/rxjs/src/internal/operators/isEmpty.ts
deleted file mode 100644
index 37a0467..0000000
--- a/node_modules/rxjs/src/internal/operators/isEmpty.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-
-/**
- * Emits false if the input observable emits any values, or emits true if the
- * input observable completes without emitting any values.
- *
- * <span class="informal">Tells whether any values are emitted by an observable</span>
- *
- * ![](isEmpty.png)
- *
- * `isEmpty` transforms an Observable that emits values into an Observable that
- * emits a single boolean value representing whether or not any values were
- * emitted by the source Observable. As soon as the source Observable emits a
- * value, `isEmpty` will emit a `false` and complete.  If the source Observable
- * completes having not emitted anything, `isEmpty` will emit a `true` and
- * complete.
- *
- * A similar effect could be achieved with {@link count}, but `isEmpty` can emit
- * a `false` value sooner.
- *
- * ## Examples
- *
- * Emit `false` for a non-empty Observable
- * ```javascript
- * import { Subject } from 'rxjs';
- * import { isEmpty } from 'rxjs/operators';
- *
- * const source = new Subject<string>();
- * const result = source.pipe(isEmpty());
- * source.subscribe(x => console.log(x));
- * result.subscribe(x => console.log(x));
- * source.next('a');
- * source.next('b');
- * source.next('c');
- * source.complete();
- *
- * // Results in:
- * // a
- * // false
- * // b
- * // c
- * ```
- *
- * Emit `true` for an empty Observable
- * ```javascript
- * import { EMPTY } from 'rxjs';
- * import { isEmpty } from 'rxjs/operators';
- *
- * const result = EMPTY.pipe(isEmpty());
- * result.subscribe(x => console.log(x));
- * // Results in:
- * // true
- * ```
- *
- * @see {@link count}
- * @see {@link EMPTY}
- *
- * @return {OperatorFunction<T, boolean>} An Observable of a boolean value indicating whether observable was empty or not
- * @method isEmpty
- * @owner Observable
- */
-
-export function isEmpty<T>(): OperatorFunction<T, boolean> {
-  return (source: Observable<T>) => source.lift(new IsEmptyOperator());
-}
-
-class IsEmptyOperator implements Operator<any, boolean> {
-  call (observer: Subscriber<boolean>, source: any): any {
-    return source.subscribe(new IsEmptySubscriber(observer));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class IsEmptySubscriber extends Subscriber<any> {
-  constructor(destination: Subscriber<boolean>) {
-    super(destination);
-  }
-
-  private notifyComplete(isEmpty: boolean): void {
-    const destination = this.destination;
-
-    destination.next(isEmpty);
-    destination.complete();
-  }
-
-  protected _next(value: boolean) {
-    this.notifyComplete(false);
-  }
-
-  protected _complete() {
-    this.notifyComplete(true);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/last.ts b/node_modules/rxjs/src/internal/operators/last.ts
deleted file mode 100644
index 23626c5..0000000
--- a/node_modules/rxjs/src/internal/operators/last.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { EmptyError } from '../util/EmptyError';
-import { OperatorFunction } from '../../internal/types';
-import { filter } from './filter';
-import { takeLast } from './takeLast';
-import { throwIfEmpty } from './throwIfEmpty';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { identity } from '../util/identity';
-
-/* tslint:disable:max-line-length */
-export function last<T, D = T>(
-  predicate?: null,
-  defaultValue?: D
-): OperatorFunction<T, T | D>;
-export function last<T, S extends T>(
-  predicate: (value: T, index: number, source: Observable<T>) => value is S,
-  defaultValue?: S
-): OperatorFunction<T, S>;
-export function last<T, D = T>(
-  predicate: (value: T, index: number, source: Observable<T>) => boolean,
-  defaultValue?: D
-): OperatorFunction<T, T | D>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits only the last item emitted by the source Observable.
- * It optionally takes a predicate function as a parameter, in which case, rather than emitting
- * the last item from the source Observable, the resulting Observable will emit the last item
- * from the source Observable that satisfies the predicate.
- *
- * ![](last.png)
- *
- * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`
- * callback if the Observable completes before any `next` notification was sent.
- * @param {function} [predicate] - The condition any source emitted item has to satisfy.
- * @param {any} [defaultValue] - An optional default value to provide if last
- * predicate isn't met or no values were emitted.
- * @return {Observable} An Observable that emits only the last item satisfying the given condition
- * from the source, or an NoSuchElementException if no such items are emitted.
- * @throws - Throws if no items that match the predicate are emitted by the source Observable.
- */
-export function last<T, D>(
-  predicate?: ((value: T, index: number, source: Observable<T>) => boolean) | null,
-  defaultValue?: D
-): OperatorFunction<T, T | D> {
-  const hasDefaultValue = arguments.length >= 2;
-  return (source: Observable<T>) => source.pipe(
-    predicate ? filter((v, i) => predicate(v, i, source)) : identity,
-    takeLast(1),
-    hasDefaultValue ? defaultIfEmpty<T | D>(defaultValue) : throwIfEmpty(() => new EmptyError()),
-  );
-}
diff --git a/node_modules/rxjs/src/internal/operators/map.ts b/node_modules/rxjs/src/internal/operators/map.ts
deleted file mode 100644
index f969ed6..0000000
--- a/node_modules/rxjs/src/internal/operators/map.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-
-/**
- * Applies a given `project` function to each value emitted by the source
- * Observable, and emits the resulting values as an Observable.
- *
- * <span class="informal">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),
- * it passes each source value through a transformation function to get
- * corresponding output values.</span>
- *
- * ![](map.png)
- *
- * Similar to the well known `Array.prototype.map` function, this operator
- * applies a projection to each value and emits that projection in the output
- * Observable.
- *
- * ## Example
- * Map every click to the clientX position of that click
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { map } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const positions = clicks.pipe(map(ev => ev.clientX));
- * positions.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link mapTo}
- * @see {@link pluck}
- *
- * @param {function(value: T, index: number): R} project The function to apply
- * to each `value` emitted by the source Observable. The `index` parameter is
- * the number `i` for the i-th emission that has happened since the
- * subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to define what `this` is in the
- * `project` function.
- * @return {Observable<R>} An Observable that emits the values from the source
- * Observable transformed by the given `project` function.
- * @method map
- * @owner Observable
- */
-export function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {
-  return function mapOperation(source: Observable<T>): Observable<R> {
-    if (typeof project !== 'function') {
-      throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
-    }
-    return source.lift(new MapOperator(project, thisArg));
-  };
-}
-
-export class MapOperator<T, R> implements Operator<T, R> {
-  constructor(private project: (value: T, index: number) => R, private thisArg: any) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class MapSubscriber<T, R> extends Subscriber<T> {
-  count: number = 0;
-  private thisArg: any;
-
-  constructor(destination: Subscriber<R>,
-              private project: (value: T, index: number) => R,
-              thisArg: any) {
-    super(destination);
-    this.thisArg = thisArg || this;
-  }
-
-  // NOTE: This looks unoptimized, but it's actually purposefully NOT
-  // using try/catch optimizations.
-  protected _next(value: T) {
-    let result: R;
-    try {
-      result = this.project.call(this.thisArg, value, this.count++);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.next(result);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/mapTo.ts b/node_modules/rxjs/src/internal/operators/mapTo.ts
deleted file mode 100644
index a072604..0000000
--- a/node_modules/rxjs/src/internal/operators/mapTo.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-
-/**
- * Emits the given constant value on the output Observable every time the source
- * Observable emits a value.
- *
- * <span class="informal">Like {@link map}, but it maps every source value to
- * the same output value every time.</span>
- *
- * ![](mapTo.png)
- *
- * Takes a constant `value` as argument, and emits that whenever the source
- * Observable emits a value. In other words, ignores the actual source value,
- * and simply uses the emission moment to know when to emit the given `value`.
- *
- * ## Example
- * Map every click to the string 'Hi'
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { mapTo } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const greetings = clicks.pipe(mapTo('Hi'));
- * greetings.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link map}
- *
- * @param {any} value The value to map each source value to.
- * @return {Observable} An Observable that emits the given `value` every time
- * the source Observable emits something.
- * @method mapTo
- * @owner Observable
- */
-export function mapTo<T, R>(value: R): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift(new MapToOperator(value));
-}
-
-class MapToOperator<T, R> implements Operator<T, R> {
-
-  value: R;
-
-  constructor(value: R) {
-    this.value = value;
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new MapToSubscriber(subscriber, this.value));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class MapToSubscriber<T, R> extends Subscriber<T> {
-
-  value: R;
-
-  constructor(destination: Subscriber<R>, value: R) {
-    super(destination);
-    this.value = value;
-  }
-
-  protected _next(x: T) {
-    this.destination.next(this.value);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/materialize.ts b/node_modules/rxjs/src/internal/operators/materialize.ts
deleted file mode 100644
index deff345..0000000
--- a/node_modules/rxjs/src/internal/operators/materialize.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Notification } from '../Notification';
-import { OperatorFunction } from '../types';
-
-/**
- * Represents all of the notifications from the source Observable as `next`
- * emissions marked with their original types within {@link Notification}
- * objects.
- *
- * <span class="informal">Wraps `next`, `error` and `complete` emissions in
- * {@link Notification} objects, emitted as `next` on the output Observable.
- * </span>
- *
- * ![](materialize.png)
- *
- * `materialize` returns an Observable that emits a `next` notification for each
- * `next`, `error`, or `complete` emission of the source Observable. When the
- * source Observable emits `complete`, the output Observable will emit `next` as
- * a Notification of type "complete", and then it will emit `complete` as well.
- * When the source Observable emits `error`, the output will emit `next` as a
- * Notification of type "error", and then `complete`.
- *
- * This operator is useful for producing metadata of the source Observable, to
- * be consumed as `next` emissions. Use it in conjunction with
- * {@link dematerialize}.
- *
- * ## Example
- * Convert a faulty Observable to an Observable of Notifications
- * ```ts
- * import { of } from 'rxjs';
- * import { materialize, map } from 'rxjs/operators';
- *
- * const letters = of('a', 'b', 13, 'd');
- * const upperCase = letters.pipe(map(x => x.toUpperCase()));
- * const materialized = upperCase.pipe(materialize());
- * materialized.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // - Notification {kind: "N", value: "A", error: undefined, hasValue: true}
- * // - Notification {kind: "N", value: "B", error: undefined, hasValue: true}
- * // - Notification {kind: "E", value: undefined, error: TypeError:
- * //   x.toUpperCase is not a function at MapSubscriber.letters.map.x
- * //   [as project] (http://1…, hasValue: false}
- * ```
- *
- * @see {@link Notification}
- * @see {@link dematerialize}
- *
- * @return {Observable<Notification<T>>} An Observable that emits
- * {@link Notification} objects that wrap the original emissions from the source
- * Observable with metadata.
- * @method materialize
- * @owner Observable
- */
-export function materialize<T>(): OperatorFunction<T, Notification<T>> {
-  return function materializeOperatorFunction(source: Observable<T>) {
-    return source.lift(new MaterializeOperator());
-  };
-}
-
-class MaterializeOperator<T> implements Operator<T, Notification<T>> {
-  call(subscriber: Subscriber<Notification<T>>, source: any): any {
-    return source.subscribe(new MaterializeSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class MaterializeSubscriber<T> extends Subscriber<T> {
-  constructor(destination: Subscriber<Notification<T>>) {
-    super(destination);
-  }
-
-  protected _next(value: T) {
-    this.destination.next(Notification.createNext(value));
-  }
-
-  protected _error(err: any) {
-    const destination = this.destination;
-    destination.next(Notification.createError(err));
-    destination.complete();
-  }
-
-  protected _complete() {
-    const destination = this.destination;
-    destination.next(Notification.createComplete());
-    destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/max.ts b/node_modules/rxjs/src/internal/operators/max.ts
deleted file mode 100644
index d135aa6..0000000
--- a/node_modules/rxjs/src/internal/operators/max.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { reduce } from './reduce';
-import { MonoTypeOperatorFunction } from '../types';
-
-/**
- * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function),
- * and when source Observable completes it emits a single item: the item with the largest value.
- *
- * ![](max.png)
- *
- * ## Examples
- * Get the maximal value of a series of numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { max } from 'rxjs/operators';
- *
- * of(5, 4, 7, 2, 8).pipe(
- *   max(),
- * )
- * .subscribe(x => console.log(x)); // -> 8
- * ```
- *
- * Use a comparer function to get the maximal item
- * ```typescript
- * import { of } from 'rxjs';
- * import { max } from 'rxjs/operators';
- *
- * interface Person {
- *   age: number,
- *   name: string
- * }
- * of<Person>(
- *   {age: 7, name: 'Foo'},
- *   {age: 5, name: 'Bar'},
- *   {age: 9, name: 'Beer'},
- * ).pipe(
- *   max<Person>((a: Person, b: Person) => a.age < b.age ? -1 : 1),
- * )
- * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer'
- * ```
- *
- * @see {@link min}
- *
- * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the
- * value of two items.
- * @return {Observable} An Observable that emits item with the largest value.
- * @method max
- * @owner Observable
- */
-export function max<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T> {
-  const max: (x: T, y: T) => T = (typeof comparer === 'function')
-    ? (x, y) => comparer(x, y) > 0 ? x : y
-    : (x, y) => x > y ? x : y;
-
-  return reduce(max);
-}
diff --git a/node_modules/rxjs/src/internal/operators/merge.ts b/node_modules/rxjs/src/internal/operators/merge.ts
deleted file mode 100644
index cb628cf..0000000
--- a/node_modules/rxjs/src/internal/operators/merge.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { merge as mergeStatic } from '../observable/merge';
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T>(scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T>(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2>(v2: ObservableInput<T2>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2>(v2: ObservableInput<T2>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T>(...observables: Array<ObservableInput<T> | SchedulerLike | number>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static merge. */
-export function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * @deprecated Deprecated in favor of static {@link merge}.
- */
-export function merge<T, R>(...observables: Array<ObservableInput<any> | SchedulerLike | number>): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift.call(mergeStatic(source, ...observables));
-}
diff --git a/node_modules/rxjs/src/internal/operators/mergeAll.ts b/node_modules/rxjs/src/internal/operators/mergeAll.ts
deleted file mode 100644
index 6659290..0000000
--- a/node_modules/rxjs/src/internal/operators/mergeAll.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-
-import { mergeMap } from './mergeMap';
-import { identity } from '../util/identity';
-import { OperatorFunction, ObservableInput } from '../types';
-
-/**
- * Converts a higher-order Observable into a first-order Observable which
- * concurrently delivers all values that are emitted on the inner Observables.
- *
- * <span class="informal">Flattens an Observable-of-Observables.</span>
- *
- * ![](mergeAll.png)
- *
- * `mergeAll` subscribes to an Observable that emits Observables, also known as
- * a higher-order Observable. Each time it observes one of these emitted inner
- * Observables, it subscribes to that and delivers all the values from the
- * inner Observable on the output Observable. The output Observable only
- * completes once all inner Observables have completed. Any error delivered by
- * a inner Observable will be immediately emitted on the output Observable.
- *
- * ## Examples
- * Spawn a new interval Observable for each click event, and blend their outputs as one Observable
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { map, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(map((ev) => interval(1000)));
- * const firstOrder = higherOrder.pipe(mergeAll());
- * firstOrder.subscribe(x => console.log(x));
- * ```
- *
- * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { take, map, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const higherOrder = clicks.pipe(
- *   map((ev) => interval(1000).pipe(take(10))),
- * );
- * const firstOrder = higherOrder.pipe(mergeAll(2));
- * firstOrder.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link combineAll}
- * @see {@link concatAll}
- * @see {@link exhaust}
- * @see {@link merge}
- * @see {@link mergeMap}
- * @see {@link mergeMapTo}
- * @see {@link mergeScan}
- * @see {@link switchAll}
- * @see {@link switchMap}
- * @see {@link zipAll}
- *
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner
- * Observables being subscribed to concurrently.
- * @return {Observable} An Observable that emits values coming from all the
- * inner Observables emitted by the source Observable.
- * @method mergeAll
- * @owner Observable
- */
-export function mergeAll<T>(concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction<ObservableInput<T>, T> {
-  return mergeMap(identity, concurrent);
-}
diff --git a/node_modules/rxjs/src/internal/operators/mergeMap.ts b/node_modules/rxjs/src/internal/operators/mergeMap.ts
deleted file mode 100644
index b8360ce..0000000
--- a/node_modules/rxjs/src/internal/operators/mergeMap.ts
+++ /dev/null
@@ -1,181 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-import { map } from './map';
-import { from } from '../observable/from';
-
-/* tslint:disable:max-line-length */
-export function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector no longer supported, use inner map instead */
-export function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to an Observable which is merged in the output
- * Observable.
- *
- * <span class="informal">Maps each value to an Observable, then flattens all of
- * these inner Observables using {@link mergeAll}.</span>
- *
- * ![](mergeMap.png)
- *
- * Returns an Observable that emits items based on applying a function that you
- * supply to each item emitted by the source Observable, where that function
- * returns an Observable, and then merging those resulting Observables and
- * emitting the results of this merger.
- *
- * ## Example
- * Map and flatten each letter to an Observable ticking every 1 second
- * ```ts
- * import { of, interval } from 'rxjs';
- * import { mergeMap, map } from 'rxjs/operators';
- *
- * const letters = of('a', 'b', 'c');
- * const result = letters.pipe(
- *   mergeMap(x => interval(1000).pipe(map(i => x+i))),
- * );
- * result.subscribe(x => console.log(x));
- *
- * // Results in the following:
- * // a0
- * // b0
- * // c0
- * // a1
- * // b1
- * // c1
- * // continues to list a,b,c with respective ascending integers
- * ```
- *
- * @see {@link concatMap}
- * @see {@link exhaustMap}
- * @see {@link merge}
- * @see {@link mergeAll}
- * @see {@link mergeMapTo}
- * @see {@link mergeScan}
- * @see {@link switchMap}
- *
- * @param {function(value: T, ?index: number): ObservableInput} project A function
- * that, when applied to an item emitted by the source Observable, returns an
- * Observable.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input
- * Observables being subscribed to concurrently.
- * @return {Observable} An Observable that emits the result of applying the
- * projection function (and the optional deprecated `resultSelector`) to each item
- * emitted by the source Observable and merging the results of the Observables
- * obtained from this transformation.
- * @method mergeMap
- * @owner Observable
- */
-export function mergeMap<T, R, O extends ObservableInput<any>>(
-  project: (value: T, index: number) => O,
-  resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,
-  concurrent: number = Number.POSITIVE_INFINITY
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  if (typeof resultSelector === 'function') {
-    // DEPRECATED PATH
-    return (source: Observable<T>) => source.pipe(
-      mergeMap((a, i) => from(project(a, i)).pipe(
-        map((b: any, ii: number) => resultSelector(a, b, i, ii)),
-      ), concurrent)
-    );
-  } else if (typeof resultSelector === 'number') {
-    concurrent = resultSelector;
-  }
-  return (source: Observable<T>) => source.lift(new MergeMapOperator(project, concurrent));
-}
-
-export class MergeMapOperator<T, R> implements Operator<T, R> {
-  constructor(private project: (value: T, index: number) => ObservableInput<R>,
-              private concurrent: number = Number.POSITIVE_INFINITY) {
-  }
-
-  call(observer: Subscriber<R>, source: any): any {
-    return source.subscribe(new MergeMapSubscriber(
-      observer, this.project, this.concurrent
-    ));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class MergeMapSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private hasCompleted: boolean = false;
-  private buffer: T[] = [];
-  private active: number = 0;
-  protected index: number = 0;
-
-  constructor(destination: Subscriber<R>,
-              private project: (value: T, index: number) => ObservableInput<R>,
-              private concurrent: number = Number.POSITIVE_INFINITY) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    if (this.active < this.concurrent) {
-      this._tryNext(value);
-    } else {
-      this.buffer.push(value);
-    }
-  }
-
-  protected _tryNext(value: T) {
-    let result: ObservableInput<R>;
-    const index = this.index++;
-    try {
-      result = this.project(value, index);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.active++;
-    this._innerSub(result, value, index);
-  }
-
-  private _innerSub(ish: ObservableInput<R>, value: T, index: number): void {
-    const innerSubscriber = new InnerSubscriber(this, value, index);
-    const destination = this.destination as Subscription;
-    destination.add(innerSubscriber);
-    const innerSubscription = subscribeToResult<T, R>(this, ish, undefined, undefined, innerSubscriber);
-    // The returned subscription will usually be the subscriber that was
-    // passed. However, interop subscribers will be wrapped and for
-    // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-    if (innerSubscription !== innerSubscriber) {
-      destination.add(innerSubscription);
-    }
-  }
-
-  protected _complete(): void {
-    this.hasCompleted = true;
-    if (this.active === 0 && this.buffer.length === 0) {
-      this.destination.complete();
-    }
-    this.unsubscribe();
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.destination.next(innerValue);
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    const buffer = this.buffer;
-    this.remove(innerSub);
-    this.active--;
-    if (buffer.length > 0) {
-      this._next(buffer.shift());
-    } else if (this.active === 0 && this.hasCompleted) {
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/mergeMapTo.ts b/node_modules/rxjs/src/internal/operators/mergeMapTo.ts
deleted file mode 100644
index 6f7e62f..0000000
--- a/node_modules/rxjs/src/internal/operators/mergeMapTo.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction, ObservedValueOf } from '../../internal/types';
-import { mergeMap } from './mergeMap';
-import { ObservableInput } from '../types';
-
-/* tslint:disable:max-line-length */
-export function mergeMapTo<T, O extends ObservableInput<any>>(innerObservable: O, concurrent?: number): OperatorFunction<any, ObservedValueOf<O>>;
-/** @deprecated */
-export function mergeMapTo<T, R, O extends ObservableInput<any>>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to the same Observable which is merged multiple
- * times in the output Observable.
- *
- * <span class="informal">It's like {@link mergeMap}, but maps each value always
- * to the same inner Observable.</span>
- *
- * ![](mergeMapTo.png)
- *
- * Maps each source value to the given Observable `innerObservable` regardless
- * of the source value, and then merges those resulting Observables into one
- * single Observable, which is the output Observable.
- *
- * ## Example
- * For each click event, start an interval Observable ticking every 1 second
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { mergeMapTo } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(mergeMapTo(interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link concatMapTo}
- * @see {@link merge}
- * @see {@link mergeAll}
- * @see {@link mergeMap}
- * @see {@link mergeScan}
- * @see {@link switchMapTo}
- *
- * @param {ObservableInput} innerObservable An Observable to replace each value from
- * the source Observable.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input
- * Observables being subscribed to concurrently.
- * @return {Observable} An Observable that emits items from the given
- * `innerObservable`
- * @method mergeMapTo
- * @owner Observable
- */
-export function mergeMapTo<T, R, O extends ObservableInput<any>>(
-  innerObservable: O,
-  resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,
-  concurrent: number = Number.POSITIVE_INFINITY
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  if (typeof resultSelector === 'function') {
-    return mergeMap(() => innerObservable, resultSelector, concurrent);
-  }
-  if (typeof resultSelector === 'number') {
-    concurrent = resultSelector;
-  }
-  return mergeMap(() => innerObservable, concurrent);
-}
diff --git a/node_modules/rxjs/src/internal/operators/mergeScan.ts b/node_modules/rxjs/src/internal/operators/mergeScan.ts
deleted file mode 100644
index 60ff288..0000000
--- a/node_modules/rxjs/src/internal/operators/mergeScan.ts
+++ /dev/null
@@ -1,152 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { ObservableInput, OperatorFunction } from '../types';
-
-/**
- * Applies an accumulator function over the source Observable where the
- * accumulator function itself returns an Observable, then each intermediate
- * Observable returned is merged into the output Observable.
- *
- * <span class="informal">It's like {@link scan}, but the Observables returned
- * by the accumulator are merged into the outer Observable.</span>
- *
- * ## Example
- * Count the number of click events
- * ```ts
- * import { fromEvent, of } from 'rxjs';
- * import { mapTo, mergeScan } from 'rxjs/operators';
- *
- * const click$ = fromEvent(document, 'click');
- * const one$ = click$.pipe(mapTo(1));
- * const seed = 0;
- * const count$ = one$.pipe(
- *   mergeScan((acc, one) => of(acc + one), seed),
- * );
- * count$.subscribe(x => console.log(x));
- *
- * // Results:
- * // 1
- * // 2
- * // 3
- * // 4
- * // ...and so on for each click
- * ```
- *
- * @param {function(acc: R, value: T): Observable<R>} accumulator
- * The accumulator function called on each source value.
- * @param seed The initial accumulation value.
- * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of
- * input Observables being subscribed to concurrently.
- * @return {Observable<R>} An observable of the accumulated values.
- * @method mergeScan
- * @owner Observable
- */
-export function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>,
-                                seed: R,
-                                concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift(new MergeScanOperator(accumulator, seed, concurrent));
-}
-
-export class MergeScanOperator<T, R> implements Operator<T, R> {
-  constructor(private accumulator: (acc: R, value: T, index: number) => ObservableInput<R>,
-              private seed: R,
-              private concurrent: number) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new MergeScanSubscriber(
-      subscriber, this.accumulator, this.seed, this.concurrent
-    ));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class MergeScanSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private hasValue: boolean = false;
-  private hasCompleted: boolean = false;
-  private buffer: Observable<any>[] = [];
-  private active: number = 0;
-  protected index: number = 0;
-
-  constructor(destination: Subscriber<R>,
-              private accumulator: (acc: R, value: T, index: number) => ObservableInput<R>,
-              private acc: R,
-              private concurrent: number) {
-    super(destination);
-  }
-
-  protected _next(value: any): void {
-    if (this.active < this.concurrent) {
-      const index = this.index++;
-      const destination = this.destination;
-      let ish;
-      try {
-        const { accumulator } = this;
-        ish = accumulator(this.acc, value, index);
-      } catch (e) {
-        return destination.error(e);
-      }
-      this.active++;
-      this._innerSub(ish, value, index);
-    } else {
-      this.buffer.push(value);
-    }
-  }
-
-  private _innerSub(ish: any, value: T, index: number): void {
-    const innerSubscriber = new InnerSubscriber(this, value, index);
-    const destination = this.destination as Subscription;
-    destination.add(innerSubscriber);
-    const innerSubscription = subscribeToResult<T, R>(this, ish, undefined, undefined, innerSubscriber);
-    // The returned subscription will usually be the subscriber that was
-    // passed. However, interop subscribers will be wrapped and for
-    // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-    if (innerSubscription !== innerSubscriber) {
-      destination.add(innerSubscription);
-    }
-  }
-
-  protected _complete(): void {
-    this.hasCompleted = true;
-    if (this.active === 0 && this.buffer.length === 0) {
-      if (this.hasValue === false) {
-        this.destination.next(this.acc);
-      }
-      this.destination.complete();
-    }
-    this.unsubscribe();
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    const { destination } = this;
-    this.acc = innerValue;
-    this.hasValue = true;
-    destination.next(innerValue);
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    const buffer = this.buffer;
-    const destination = this.destination as Subscription;
-    destination.remove(innerSub);
-    this.active--;
-    if (buffer.length > 0) {
-      this._next(buffer.shift());
-    } else if (this.active === 0 && this.hasCompleted) {
-      if (this.hasValue === false) {
-        this.destination.next(this.acc);
-      }
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/min.ts b/node_modules/rxjs/src/internal/operators/min.ts
deleted file mode 100644
index c7c0e2c..0000000
--- a/node_modules/rxjs/src/internal/operators/min.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { reduce } from './reduce';
-import { MonoTypeOperatorFunction } from '../types';
-
-/**
- * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function),
- * and when source Observable completes it emits a single item: the item with the smallest value.
- *
- * ![](min.png)
- *
- * ## Examples
- * Get the minimal value of a series of numbers
- * ```ts
- * import { of } from 'rxjs';
- * import { min } from 'rxjs/operators';
- *
- * of(5, 4, 7, 2, 8).pipe(
- *   min(),
- * )
- * .subscribe(x => console.log(x)); // -> 2
- * ```
- *
- * Use a comparer function to get the minimal item
- * ```typescript
- * import { of } from 'rxjs';
- * import { min } from 'rxjs/operators';
- *
- * interface Person {
- *   age: number,
- *   name: string
- * }
- * of<Person>(
- *   {age: 7, name: 'Foo'},
- *   {age: 5, name: 'Bar'},
- *   {age: 9, name: 'Beer'},
- * ).pipe(
- *   min<Person>( (a: Person, b: Person) => a.age < b.age ? -1 : 1),
- * )
- * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar'
- * ```
- * @see {@link max}
- *
- * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the
- * value of two items.
- * @return {Observable<R>} An Observable that emits item with the smallest value.
- * @method min
- * @owner Observable
- */
-export function min<T>(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction<T> {
-  const min: (x: T, y: T) => T = (typeof comparer === 'function')
-    ? (x, y) => comparer(x, y) < 0 ? x : y
-    : (x, y) => x < y ? x : y;
-  return reduce(min);
-}
diff --git a/node_modules/rxjs/src/internal/operators/multicast.ts b/node_modules/rxjs/src/internal/operators/multicast.ts
deleted file mode 100644
index 97d28d5..0000000
--- a/node_modules/rxjs/src/internal/operators/multicast.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Subject } from '../Subject';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { ConnectableObservable, connectableObservableDescriptor } from '../observable/ConnectableObservable';
-import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';
-
-/* tslint:disable:max-line-length */
-export function multicast<T>(subject: Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export function multicast<T, O extends ObservableInput<any>>(subject: Subject<T>, selector: (shared: Observable<T>) => O): UnaryFunction<Observable<T>, ConnectableObservable<ObservedValueOf<O>>>;
-export function multicast<T>(subjectFactory: (this: Observable<T>) => Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export function multicast<T, O extends ObservableInput<any>>(SubjectFactory: (this: Observable<T>) => Subject<T>, selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits the results of invoking a specified selector on items
- * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.
- *
- * ![](multicast.png)
- *
- * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through
- * which the source sequence's elements will be multicast to the selector function
- * or Subject to push source elements into.
- * @param {Function} [selector] - Optional selector function that can use the multicasted source stream
- * as many times as needed, without causing multiple subscriptions to the source stream.
- * Subscribers to the given source will receive all notifications of the source from the
- * time of the subscription forward.
- * @return {Observable} An Observable that emits the results of invoking the selector
- * on the items emitted by a `ConnectableObservable` that shares a single subscription to
- * the underlying stream.
- * @method multicast
- * @owner Observable
- */
-export function multicast<T, R>(subjectOrSubjectFactory: Subject<T> | (() => Subject<T>),
-                                selector?: (source: Observable<T>) => Observable<R>): OperatorFunction<T, R> {
-  return function multicastOperatorFunction(source: Observable<T>): Observable<R> {
-    let subjectFactory: () => Subject<T>;
-    if (typeof subjectOrSubjectFactory === 'function') {
-      subjectFactory = <() => Subject<T>>subjectOrSubjectFactory;
-    } else {
-      subjectFactory = function subjectFactory() {
-        return <Subject<T>>subjectOrSubjectFactory;
-      };
-    }
-
-    if (typeof selector === 'function') {
-      return source.lift(new MulticastOperator(subjectFactory, selector));
-    }
-
-    const connectable: any = Object.create(source, connectableObservableDescriptor);
-    connectable.source = source;
-    connectable.subjectFactory = subjectFactory;
-
-    return <ConnectableObservable<R>> connectable;
-  };
-}
-
-export class MulticastOperator<T, R> implements Operator<T, R> {
-  constructor(private subjectFactory: () => Subject<T>,
-              private selector: (source: Observable<T>) => Observable<R>) {
-  }
-  call(subscriber: Subscriber<R>, source: any): any {
-    const { selector } = this;
-    const subject = this.subjectFactory();
-    const subscription = selector(subject).subscribe(subscriber);
-    subscription.add(source.subscribe(subject));
-    return subscription;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/observeOn.ts b/node_modules/rxjs/src/internal/operators/observeOn.ts
deleted file mode 100644
index 8a5bd66..0000000
--- a/node_modules/rxjs/src/internal/operators/observeOn.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Notification } from '../Notification';
-import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- *
- * Re-emits all notifications from source Observable with specified scheduler.
- *
- * <span class="informal">Ensure a specific scheduler is used, from outside of an Observable.</span>
- *
- * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule
- * notifications emitted by the source Observable. It might be useful, if you do not have control over
- * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.
- *
- * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,
- * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal
- * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits
- * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.
- * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split
- * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source
- * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a
- * little bit more, to ensure that they are emitted at expected moments.
- *
- * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications
- * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`
- * will delay all notifications - including error notifications - while `delay` will pass through error
- * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator
- * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used
- * for notification emissions in general.
- *
- * ## Example
- * Ensure values in subscribe are called just before browser repaint.
- * ```ts
- * import { interval } from 'rxjs';
- * import { observeOn } from 'rxjs/operators';
- *
- * const intervals = interval(10);                // Intervals are scheduled
- *                                                // with async scheduler by default...
- * intervals.pipe(
- *   observeOn(animationFrameScheduler),          // ...but we will observe on animationFrame
- * )                                              // scheduler to ensure smooth animation.
- * .subscribe(val => {
- *   someDiv.style.height = val + 'px';
- * });
- * ```
- *
- * @see {@link delay}
- *
- * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable.
- * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.
- * @return {Observable<T>} Observable that emits the same notifications as the source Observable,
- * but with provided scheduler.
- *
- * @method observeOn
- * @owner Observable
- */
-export function observeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {
-  return function observeOnOperatorFunction(source: Observable<T>): Observable<T> {
-    return source.lift(new ObserveOnOperator(scheduler, delay));
-  };
-}
-
-export class ObserveOnOperator<T> implements Operator<T, T> {
-  constructor(private scheduler: SchedulerLike, private delay: number = 0) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class ObserveOnSubscriber<T> extends Subscriber<T> {
-  /** @nocollapse */
-  static dispatch(this: SchedulerAction<ObserveOnMessage>, arg: ObserveOnMessage) {
-    const { notification, destination } = arg;
-    notification.observe(destination);
-    this.unsubscribe();
-  }
-
-  constructor(destination: Subscriber<T>,
-              private scheduler: SchedulerLike,
-              private delay: number = 0) {
-    super(destination);
-  }
-
-  private scheduleMessage(notification: Notification<any>): void {
-    const destination = this.destination as Subscription;
-    destination.add(this.scheduler.schedule(
-      ObserveOnSubscriber.dispatch,
-      this.delay,
-      new ObserveOnMessage(notification, this.destination)
-    ));
-  }
-
-  protected _next(value: T): void {
-    this.scheduleMessage(Notification.createNext(value));
-  }
-
-  protected _error(err: any): void {
-    this.scheduleMessage(Notification.createError(err));
-    this.unsubscribe();
-  }
-
-  protected _complete(): void {
-    this.scheduleMessage(Notification.createComplete());
-    this.unsubscribe();
-  }
-}
-
-export class ObserveOnMessage {
-  constructor(public notification: Notification<any>,
-              public destination: PartialObserver<any>) {
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts b/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts
deleted file mode 100644
index 058ca8e..0000000
--- a/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts
+++ /dev/null
@@ -1,176 +0,0 @@
-import { Observable } from '../Observable';
-import { from } from '../observable/from';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { isArray } from '../util/isArray';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function onErrorResumeNext<T>(): OperatorFunction<T, T>;
-export function onErrorResumeNext<T, T2>(v: ObservableInput<T2>): OperatorFunction<T, T | T2>;
-export function onErrorResumeNext<T, T2, T3>(v: ObservableInput<T2>, v2: ObservableInput<T3>): OperatorFunction<T, T | T2 | T3>;
-export function onErrorResumeNext<T, T2, T3, T4>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>): OperatorFunction<T, T | T2 | T3 | T4>;
-export function onErrorResumeNext<T, T2, T3, T4, T5>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>): OperatorFunction<T, T | T2 | T3 | T4 | T5>;
-export function onErrorResumeNext<T, T2, T3, T4, T5, T6>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6>;
-export function onErrorResumeNext<T, T2, T3, T4, T5, T6, T7>(v: ObservableInput<T2>, v2: ObservableInput<T3>, v3: ObservableInput<T4>, v4: ObservableInput<T5>, v5: ObservableInput<T6>, v6: ObservableInput<T7>): OperatorFunction<T, T | T2 | T3 | T4 | T5 | T6 | T7>;
-export function onErrorResumeNext<T, R>(...observables: Array<ObservableInput<any>>): OperatorFunction<T, T | R>;
-export function onErrorResumeNext<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, T | R>;
-/* tslint:enable:max-line-length */
-
-/**
- * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one
- * that was passed.
- *
- * <span class="informal">Execute series of Observables no matter what, even if it means swallowing errors.</span>
- *
- * ![](onErrorResumeNext.png)
- *
- * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as
- * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same
- * as the source.
- *
- * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable.
- * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext`
- * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting
- * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another
- * Observable in provided series, no matter if previous Observable completed or ended with an error. This will
- * be happening until there is no more Observables left in the series, at which point returned Observable will
- * complete - even if the last subscribed stream ended with an error.
- *
- * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive
- * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable
- * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with
- * an error.
- *
- * Note that you do not get any access to errors emitted by the Observables. In particular do not
- * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take
- * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead.
- *
- *
- * ## Example
- * Subscribe to the next Observable after map fails
- * ```ts
- * import { of } from 'rxjs';
- * import { onErrorResumeNext, map } from 'rxjs/operators';
- *
- * of(1, 2, 3, 0).pipe(
- *   map(x => {
- *       if (x === 0) { throw Error(); }
- *        return 10 / x;
- *   }),
- *   onErrorResumeNext(of(1, 2, 3)),
- * )
- * .subscribe(
- *   val => console.log(val),
- *   err => console.log(err),          // Will never be called.
- *   () => console.log('that\'s it!')
- * );
- *
- * // Logs:
- * // 10
- * // 5
- * // 3.3333333333333335
- * // 1
- * // 2
- * // 3
- * // "that's it!"
- * ```
- *
- * @see {@link concat}
- * @see {@link catchError}
- *
- * @param {...ObservableInput} observables Observables passed either directly or as an array.
- * @return {Observable} An Observable that emits values from source Observable, but - if it errors - subscribes
- * to the next passed Observable and so on, until it completes or runs out of Observables.
- * @method onErrorResumeNext
- * @owner Observable
- */
-
-export function onErrorResumeNext<T, R>(...nextSources: Array<ObservableInput<any> |
-                                                       Array<ObservableInput<any>>>): OperatorFunction<T, R> {
-  if (nextSources.length === 1 && isArray(nextSources[0])) {
-    nextSources = <Array<Observable<any>>>nextSources[0];
-  }
-
-  return (source: Observable<T>) => source.lift(new OnErrorResumeNextOperator<T, R>(nextSources));
-}
-
-/* tslint:disable:max-line-length */
-export function onErrorResumeNextStatic<R>(v: ObservableInput<R>): Observable<R>;
-export function onErrorResumeNextStatic<T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): Observable<R>;
-export function onErrorResumeNextStatic<T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): Observable<R>;
-export function onErrorResumeNextStatic<T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): Observable<R>;
-export function onErrorResumeNextStatic<T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): Observable<R>;
-
-export function onErrorResumeNextStatic<R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): Observable<R>;
-export function onErrorResumeNextStatic<R>(array: ObservableInput<any>[]): Observable<R>;
-/* tslint:enable:max-line-length */
-
-export function onErrorResumeNextStatic<T, R>(...nextSources: Array<ObservableInput<any> |
-  Array<ObservableInput<any>> |
-  ((...values: Array<any>) => R)>): Observable<R> {
-  let source: ObservableInput<any> = null;
-
-  if (nextSources.length === 1 && isArray(nextSources[0])) {
-    nextSources = <Array<ObservableInput<any>>>nextSources[0];
-  }
-  source = nextSources.shift();
-
-  return from(source, null).lift(new OnErrorResumeNextOperator<T, R>(nextSources));
-}
-
-class OnErrorResumeNextOperator<T, R> implements Operator<T, R> {
-  constructor(private nextSources: Array<ObservableInput<any>>) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
-  }
-}
-
-class OnErrorResumeNextSubscriber<T, R> extends OuterSubscriber<T, R> {
-  constructor(protected destination: Subscriber<T>,
-              private nextSources: Array<ObservableInput<any>>) {
-    super(destination);
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, any>): void {
-    this.subscribeToNextSource();
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, any>): void {
-    this.subscribeToNextSource();
-  }
-
-  protected _error(err: any): void {
-    this.subscribeToNextSource();
-    this.unsubscribe();
-  }
-
-  protected _complete(): void {
-    this.subscribeToNextSource();
-    this.unsubscribe();
-  }
-
-  private subscribeToNextSource(): void {
-    const next = this.nextSources.shift();
-    if (!!next) {
-      const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-      const destination = this.destination as Subscription;
-      destination.add(innerSubscriber);
-      const innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);
-      // The returned subscription will usually be the subscriber that was
-      // passed. However, interop subscribers will be wrapped and for
-      // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-      if (innerSubscription !== innerSubscriber) {
-        destination.add(innerSubscription);
-      }
-    } else {
-      this.destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/pairwise.ts b/node_modules/rxjs/src/internal/operators/pairwise.ts
deleted file mode 100644
index 8c2eb26..0000000
--- a/node_modules/rxjs/src/internal/operators/pairwise.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction } from '../types';
-
-/**
- * Groups pairs of consecutive emissions together and emits them as an array of
- * two values.
- *
- * <span class="informal">Puts the current value and previous value together as
- * an array, and emits that.</span>
- *
- * ![](pairwise.png)
- *
- * The Nth emission from the source Observable will cause the output Observable
- * to emit an array [(N-1)th, Nth] of the previous and the current value, as a
- * pair. For this reason, `pairwise` emits on the second and subsequent
- * emissions from the source Observable, but not on the first emission, because
- * there is no previous value in that case.
- *
- * ## Example
- * On every click (starting from the second), emit the relative distance to the previous click
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { pairwise, map } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const pairs = clicks.pipe(pairwise());
- * const distance = pairs.pipe(
- *   map(pair => {
- *     const x0 = pair[0].clientX;
- *     const y0 = pair[0].clientY;
- *     const x1 = pair[1].clientX;
- *     const y1 = pair[1].clientY;
- *     return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));
- *   }),
- * );
- * distance.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link buffer}
- * @see {@link bufferCount}
- *
- * @return {Observable<Array<T>>} An Observable of pairs (as arrays) of
- * consecutive values from the source Observable.
- * @method pairwise
- * @owner Observable
- */
-export function pairwise<T>(): OperatorFunction<T, [T, T]> {
-  return (source: Observable<T>) => source.lift(new PairwiseOperator());
-}
-
-class PairwiseOperator<T> implements Operator<T, [T, T]> {
-  call(subscriber: Subscriber<[T, T]>, source: any): any {
-    return source.subscribe(new PairwiseSubscriber(subscriber));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class PairwiseSubscriber<T> extends Subscriber<T> {
-  private prev: T;
-  private hasPrev: boolean = false;
-
-  constructor(destination: Subscriber<[T, T]>) {
-    super(destination);
-  }
-
-  _next(value: T): void {
-    let pair: [T, T] | undefined;
-
-    if (this.hasPrev) {
-      pair = [this.prev, value];
-    } else {
-      this.hasPrev = true;
-    }
-
-    this.prev = value;
-
-    if (pair) {
-      this.destination.next(pair);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/partition.ts b/node_modules/rxjs/src/internal/operators/partition.ts
deleted file mode 100644
index c2aef15..0000000
--- a/node_modules/rxjs/src/internal/operators/partition.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { not } from '../util/not';
-import { filter } from './filter';
-import { Observable } from '../Observable';
-import { UnaryFunction } from '../types';
-
-/**
- * Splits the source Observable into two, one with values that satisfy a
- * predicate, and another with values that don't satisfy the predicate.
- *
- * <span class="informal">It's like {@link filter}, but returns two Observables:
- * one like the output of {@link filter}, and the other with values that did not
- * pass the condition.</span>
- *
- * ![](partition.png)
- *
- * `partition` outputs an array with two Observables that partition the values
- * from the source Observable through the given `predicate` function. The first
- * Observable in that array emits source values for which the predicate argument
- * returns true. The second Observable emits source values for which the
- * predicate returns false. The first behaves like {@link filter} and the second
- * behaves like {@link filter} with the predicate negated.
- *
- * ## Example
- * Partition click events into those on DIV elements and those elsewhere
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { partition } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));
- * const clicksOnDivs = parts[0];
- * const clicksElsewhere = parts[1];
- * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));
- * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));
- * ```
- *
- * @see {@link filter}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates each value emitted by the source Observable. If it returns `true`,
- * the value is emitted on the first Observable in the returned array, if
- * `false` the value is emitted on the second Observable in the array. The
- * `index` parameter is the number `i` for the i-th source emission that has
- * happened since the subscription, starting from the number `0`.
- * @param {any} [thisArg] An optional argument to determine the value of `this`
- * in the `predicate` function.
- * @return {[Observable<T>, Observable<T>]} An array with two Observables: one
- * with values that passed the predicate, and another with values that did not
- * pass the predicate.
- * @method partition
- * @owner Observable
- * @deprecated use `partition` static creation function instead
- */
-export function partition<T>(predicate: (value: T, index: number) => boolean,
-                             thisArg?: any): UnaryFunction<Observable<T>, [Observable<T>, Observable<T>]> {
-  return (source: Observable<T>) => [
-    filter(predicate, thisArg)(source),
-    filter(not(predicate, thisArg) as any)(source)
-  ] as [Observable<T>, Observable<T>];
-}
diff --git a/node_modules/rxjs/src/internal/operators/pluck.ts b/node_modules/rxjs/src/internal/operators/pluck.ts
deleted file mode 100644
index dbe050f..0000000
--- a/node_modules/rxjs/src/internal/operators/pluck.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { Observable } from '../Observable';
-import { map } from './map';
-import { OperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function pluck<T, K1 extends keyof T>(k1: K1): OperatorFunction<T, T[K1]>;
-export function pluck<T, K1 extends keyof T, K2 extends keyof T[K1]>(k1: K1, k2: K2): OperatorFunction<T, T[K1][K2]>;
-export function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2]>(k1: K1, k2: K2, k3: K3): OperatorFunction<T, T[K1][K2][K3]>;
-export function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3]>(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction<T, T[K1][K2][K3][K4]>;
-export function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction<T, T[K1][K2][K3][K4][K5]>;
-export function pluck<T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5]>(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction<T, T[K1][K2][K3][K4][K5][K6]>;
-export function pluck<T, R>(...properties: string[]): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Maps each source value (an object) to its specified nested property.
- *
- * <span class="informal">Like {@link map}, but meant only for picking one of
- * the nested properties of every emitted object.</span>
- *
- * ![](pluck.png)
- *
- * Given a list of strings describing a path to an object property, retrieves
- * the value of a specified nested property from all values in the source
- * Observable. If a property can't be resolved, it will return `undefined` for
- * that value.
- *
- * ## Example
- * Map every click to the tagName of the clicked target element
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { pluck } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const tagNames = clicks.pipe(pluck('target', 'tagName'));
- * tagNames.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link map}
- *
- * @param {...string} properties The nested properties to pluck from each source
- * value (an object).
- * @return {Observable} A new Observable of property values from the source values.
- * @method pluck
- * @owner Observable
- */
-export function pluck<T, R>(...properties: string[]): OperatorFunction<T, R> {
-  const length = properties.length;
-  if (length === 0) {
-    throw new Error('list of properties cannot be empty.');
-  }
-  return (source: Observable<T>) => map(plucker(properties, length))(source as any);
-}
-
-function plucker(props: string[], length: number): (x: string) => any {
-  const mapper = (x: string) => {
-    let currentProp = x;
-    for (let i = 0; i < length; i++) {
-      const p = currentProp[props[i]];
-      if (typeof p !== 'undefined') {
-        currentProp = p;
-      } else {
-        return undefined;
-      }
-    }
-    return currentProp;
-  };
-
-  return mapper;
-}
diff --git a/node_modules/rxjs/src/internal/operators/publish.ts b/node_modules/rxjs/src/internal/operators/publish.ts
deleted file mode 100644
index e4596f3..0000000
--- a/node_modules/rxjs/src/internal/operators/publish.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { multicast } from './multicast';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function publish<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>>;
-export function publish<T, O extends ObservableInput<any>>(selector: (shared: Observable<T>) => O): OperatorFunction<T, ObservedValueOf<O>>;
-export function publish<T>(selector: MonoTypeOperatorFunction<T>): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called
- * before it begins emitting items to those Observers that have subscribed to it.
- *
- * <span class="informal">Makes a cold Observable hot</span>
- *
- * ![](publish.png)
- *
- * ## Examples
- * Make source$ hot by applying publish operator, then merge each inner observable into a single one
- * and subscribe.
- * ```ts
- * import { of, zip, interval, merge } from "rxjs";
- * import { map, publish, tap } from "rxjs/operators";
- *
- * const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)).pipe(
- *   map(values => values[1])
- * );
- *
- * source$
- *   .pipe(
- *     publish(multicasted$ =>
- *       merge(
- *         multicasted$.pipe(tap(x => console.log('Stream 1:', x))),
- *         multicasted$.pipe(tap(x => console.log('Stream 2:', x))),
- *         multicasted$.pipe(tap(x => console.log('Stream 3:', x))),
- *       )
- *     )
- *   )
- *   .subscribe();
- *
- * // Results every two seconds
- * // Stream 1: 1
- * // Stream 2: 1
- * // Stream 3: 1
- * // ...
- * // Stream 1: 9
- * // Stream 2: 9
- * // Stream 3: 9
- * ```
- *
- * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times
- * as needed, without causing multiple subscriptions to the source sequence.
- * Subscribers to the given source will receive all notifications of the source from the time of the subscription on.
- * @return A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.
- * @method publish
- * @owner Observable
- *
- *
- */
-export function publish<T, R>(selector?: OperatorFunction<T, R>): MonoTypeOperatorFunction<T> | OperatorFunction<T, R> {
-  return selector ?
-    multicast(() => new Subject<T>(), selector) :
-    multicast(new Subject<T>());
-}
diff --git a/node_modules/rxjs/src/internal/operators/publishBehavior.ts b/node_modules/rxjs/src/internal/operators/publishBehavior.ts
deleted file mode 100644
index 792b315..0000000
--- a/node_modules/rxjs/src/internal/operators/publishBehavior.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Observable } from '../Observable';
-import { BehaviorSubject } from '../BehaviorSubject';
-import { multicast } from './multicast';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { UnaryFunction } from '../types';
-
-/**
- * @param value
- * @return {ConnectableObservable<T>}
- * @method publishBehavior
- * @owner Observable
- */
-export function publishBehavior<T>(value: T):  UnaryFunction<Observable<T>, ConnectableObservable<T>> {
-  return (source: Observable<T>) => multicast(new BehaviorSubject<T>(value))(source) as ConnectableObservable<T>;
-}
diff --git a/node_modules/rxjs/src/internal/operators/publishLast.ts b/node_modules/rxjs/src/internal/operators/publishLast.ts
deleted file mode 100644
index e431657..0000000
--- a/node_modules/rxjs/src/internal/operators/publishLast.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Observable } from '../Observable';
-import { AsyncSubject } from '../AsyncSubject';
-import { multicast } from './multicast';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { UnaryFunction } from '../types';
-
-/**
- * Returns a connectable observable sequence that shares a single subscription to the
- * underlying sequence containing only the last notification.
- *
- * ![](publishLast.png)
- *
- * Similar to {@link publish}, but it waits until the source observable completes and stores
- * the last emitted value.
- * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last
- * value even if it has no more subscribers. If subsequent subscriptions happen, they will
- * immediately get that last stored value and complete.
- *
- * ## Example
- *
- * ```ts
- * import { interval } from 'rxjs';
- * import { publishLast, tap, take } from 'rxjs/operators';
- *
- * const connectable =
- *   interval(1000)
- *     .pipe(
- *       tap(x => console.log("side effect", x)),
- *       take(3),
- *       publishLast());
- *
- * connectable.subscribe(
- *   x => console.log(  "Sub. A", x),
- *   err => console.log("Sub. A Error", err),
- *   () => console.log( "Sub. A Complete"));
- *
- * connectable.subscribe(
- *   x => console.log(  "Sub. B", x),
- *   err => console.log("Sub. B Error", err),
- *   () => console.log( "Sub. B Complete"));
- *
- * connectable.connect();
- *
- * // Results:
- * //    "side effect 0"
- * //    "side effect 1"
- * //    "side effect 2"
- * //    "Sub. A 2"
- * //    "Sub. B 2"
- * //    "Sub. A Complete"
- * //    "Sub. B Complete"
- * ```
- *
- * @see {@link ConnectableObservable}
- * @see {@link publish}
- * @see {@link publishReplay}
- * @see {@link publishBehavior}
- *
- * @return {ConnectableObservable} An observable sequence that contains the elements of a
- * sequence produced by multicasting the source sequence.
- * @method publishLast
- * @owner Observable
- */
-
-export function publishLast<T>(): UnaryFunction<Observable<T>, ConnectableObservable<T>> {
-  return (source: Observable<T>) => multicast(new AsyncSubject<T>())(source);
-}
diff --git a/node_modules/rxjs/src/internal/operators/publishReplay.ts b/node_modules/rxjs/src/internal/operators/publishReplay.ts
deleted file mode 100644
index a64b52a..0000000
--- a/node_modules/rxjs/src/internal/operators/publishReplay.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Observable } from '../Observable';
-import { ReplaySubject } from '../ReplaySubject';
-import { multicast } from './multicast';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-export function publishReplay<T, O extends ObservableInput<any>>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable<T>) => O, scheduler?: SchedulerLike): OperatorFunction<T, ObservedValueOf<O>>;
-/* tslint:enable:max-line-length */
-
-export function publishReplay<T, R>(bufferSize?: number,
-                                    windowTime?: number,
-                                    selectorOrScheduler?: SchedulerLike | OperatorFunction<T, R>,
-                                    scheduler?: SchedulerLike): UnaryFunction<Observable<T>, ConnectableObservable<R>> {
-
-  if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
-    scheduler = selectorOrScheduler;
-  }
-
-  const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
-  const subject = new ReplaySubject<T>(bufferSize, windowTime, scheduler);
-
-  return (source: Observable<T>) => multicast(() => subject, selector)(source) as ConnectableObservable<R>;
-}
diff --git a/node_modules/rxjs/src/internal/operators/race.ts b/node_modules/rxjs/src/internal/operators/race.ts
deleted file mode 100644
index 75b51d3..0000000
--- a/node_modules/rxjs/src/internal/operators/race.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Observable } from '../Observable';
-import { isArray } from '../util/isArray';
-import { MonoTypeOperatorFunction, OperatorFunction } from '../types';
-import { race as raceStatic } from '../observable/race';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Deprecated in favor of static race. */
-export function race<T>(observables: Array<Observable<T>>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static race. */
-export function race<T, R>(observables: Array<Observable<T>>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static race. */
-export function race<T>(...observables: Array<Observable<T> | Array<Observable<T>>>): MonoTypeOperatorFunction<T>;
-/** @deprecated Deprecated in favor of static race. */
-export function race<T, R>(...observables: Array<Observable<any> | Array<Observable<any>>>): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that mirrors the first source Observable to emit a next,
- * error or complete notification from the combination of this Observable and supplied Observables.
- * @param {...Observables} ...observables Sources used to race for which Observable emits first.
- * @return {Observable} An Observable that mirrors the output of the first Observable to emit an item.
- * @method race
- * @owner Observable
- * @deprecated Deprecated in favor of static {@link race}.
- */
-export function race<T>(...observables: (Observable<T> | Observable<T>[])[]): MonoTypeOperatorFunction<T> {
-  return function raceOperatorFunction(source: Observable<T>) {
-    // if the only argument is an array, it was most likely called with
-    // `pair([obs1, obs2, ...])`
-    if (observables.length === 1 && isArray(observables[0])) {
-      observables = observables[0] as Observable<T>[];
-    }
-
-    return source.lift.call(raceStatic(source, ...(observables as Observable<T>[])));
-  };
-}
diff --git a/node_modules/rxjs/src/internal/operators/reduce.ts b/node_modules/rxjs/src/internal/operators/reduce.ts
deleted file mode 100644
index 6039fdb..0000000
--- a/node_modules/rxjs/src/internal/operators/reduce.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import { Observable } from '../Observable';
-import { scan } from './scan';
-import { takeLast } from './takeLast';
-import { defaultIfEmpty } from './defaultIfEmpty';
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-import { pipe } from '../util/pipe';
-
-/* tslint:disable:max-line-length */
-export function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;
-export function reduce<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;
-export function reduce<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Applies an accumulator function over the source Observable, and returns the
- * accumulated result when the source completes, given an optional seed value.
- *
- * <span class="informal">Combines together all values emitted on the source,
- * using an accumulator function that knows how to join a new source value into
- * the accumulation from the past.</span>
- *
- * ![](reduce.png)
- *
- * Like
- * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),
- * `reduce` applies an `accumulator` function against an accumulation and each
- * value of the source Observable (from the past) to reduce it to a single
- * value, emitted on the output Observable. Note that `reduce` will only emit
- * one value, only when the source Observable completes. It is equivalent to
- * applying operator {@link scan} followed by operator {@link last}.
- *
- * Returns an Observable that applies a specified `accumulator` function to each
- * item emitted by the source Observable. If a `seed` value is specified, then
- * that value will be used as the initial value for the accumulator. If no seed
- * value is specified, the first item of the source is used as the seed.
- *
- * ## Example
- * Count the number of click events that happened in 5 seconds
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { reduce, takeUntil, mapTo } from 'rxjs/operators';
- *
- * const clicksInFiveSeconds = fromEvent(document, 'click').pipe(
- *   takeUntil(interval(5000)),
- * );
- * const ones = clicksInFiveSeconds.pipe(mapTo(1));
- * const seed = 0;
- * const count = ones.pipe(reduce((acc, one) => acc + one, seed));
- * count.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link count}
- * @see {@link expand}
- * @see {@link mergeScan}
- * @see {@link scan}
- *
- * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function
- * called on each source value.
- * @param {R} [seed] The initial accumulation value.
- * @return {Observable<R>} An Observable that emits a single value that is the
- * result of accumulating the values emitted by the source Observable.
- * @method reduce
- * @owner Observable
- */
-export function reduce<T, R>(accumulator: (acc: T | R, value: T, index?: number) => T | R, seed?: T | R): OperatorFunction<T, T | R> {
-  // providing a seed of `undefined` *should* be valid and trigger
-  // hasSeed! so don't use `seed !== undefined` checks!
-  // For this reason, we have to check it here at the original call site
-  // otherwise inside Operator/Subscriber we won't know if `undefined`
-  // means they didn't provide anything or if they literally provided `undefined`
-  if (arguments.length >= 2) {
-    return function reduceOperatorFunctionWithSeed(source: Observable<T>): Observable<T | R> {
-      return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);
-    };
-  }
-  return function reduceOperatorFunction(source: Observable<T>): Observable<T | R> {
-    return pipe(
-      scan<T, T | R>((acc, value, index) => accumulator(acc, value, index + 1)),
-      takeLast(1),
-    )(source);
-  };
-}
diff --git a/node_modules/rxjs/src/internal/operators/refCount.ts b/node_modules/rxjs/src/internal/operators/refCount.ts
deleted file mode 100644
index 227c366..0000000
--- a/node_modules/rxjs/src/internal/operators/refCount.ts
+++ /dev/null
@@ -1,148 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-import { ConnectableObservable } from '../observable/ConnectableObservable';
-import { Observable } from '../Observable';
-
-/**
- * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way
- * you can connect to it.
- *
- * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if
- * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it
- * unsubscribes from the source. This way you can make sure that everything before the *published*
- * refCount has only a single subscription independently of the number of subscribers to the target
- * observable.
- *
- * Note that using the {@link share} operator is exactly the same as using the *publish* operator
- * (making the observable hot) and the *refCount* operator in a sequence.
- *
- * ![](refCount.png)
- *
- * ## Example
- *
- * In the following example there are two intervals turned into connectable observables
- * by using the *publish* operator. The first one uses the *refCount* operator, the
- * second one does not use it. You will notice that a connectable observable does nothing
- * until you call its connect function.
- *
- * ```ts
- * import { interval } from 'rxjs';
- * import { tap, publish, refCount } from 'rxjs/operators';
- *
- * // Turn the interval observable into a ConnectableObservable (hot)
- * const refCountInterval = interval(400).pipe(
- *   tap((num) => console.log(`refCount ${num}`)),
- *   publish(),
- *   refCount()
- * );
- *
- * const publishedInterval = interval(400).pipe(
- *   tap((num) => console.log(`publish ${num}`)),
- *   publish()
- * );
- *
- * refCountInterval.subscribe();
- * refCountInterval.subscribe();
- * // 'refCount 0' -----> 'refCount 1' -----> etc
- * // All subscriptions will receive the same value and the tap (and
- * // every other operator) before the publish operator will be executed
- * // only once per event independently of the number of subscriptions.
- *
- * publishedInterval.subscribe();
- * // Nothing happens until you call .connect() on the observable.
- * ```
- *
- * @see {@link ConnectableObservable}
- * @see {@link share}
- * @see {@link publish}
- */
-export function refCount<T>(): MonoTypeOperatorFunction<T> {
-  return function refCountOperatorFunction(source: ConnectableObservable<T>): Observable<T> {
-    return source.lift(new RefCountOperator(source));
-  } as MonoTypeOperatorFunction<T>;
-}
-
-class RefCountOperator<T> implements Operator<T, T> {
-  constructor(private connectable: ConnectableObservable<T>) {
-  }
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-
-    const { connectable } = this;
-    (<any> connectable)._refCount++;
-
-    const refCounter = new RefCountSubscriber(subscriber, connectable);
-    const subscription = source.subscribe(refCounter);
-
-    if (!refCounter.closed) {
-      (<any> refCounter).connection = connectable.connect();
-    }
-
-    return subscription;
-  }
-}
-
-class RefCountSubscriber<T> extends Subscriber<T> {
-
-  private connection: Subscription;
-
-  constructor(destination: Subscriber<T>,
-              private connectable: ConnectableObservable<T>) {
-    super(destination);
-  }
-
-  protected _unsubscribe() {
-
-    const { connectable } = this;
-    if (!connectable) {
-      this.connection = null;
-      return;
-    }
-
-    this.connectable = null;
-    const refCount = (<any> connectable)._refCount;
-    if (refCount <= 0) {
-      this.connection = null;
-      return;
-    }
-
-    (<any> connectable)._refCount = refCount - 1;
-    if (refCount > 1) {
-      this.connection = null;
-      return;
-    }
-
-    ///
-    // Compare the local RefCountSubscriber's connection Subscription to the
-    // connection Subscription on the shared ConnectableObservable. In cases
-    // where the ConnectableObservable source synchronously emits values, and
-    // the RefCountSubscriber's downstream Observers synchronously unsubscribe,
-    // execution continues to here before the RefCountOperator has a chance to
-    // supply the RefCountSubscriber with the shared connection Subscription.
-    // For example:
-    // ```
-    // range(0, 10).pipe(
-    //   publish(),
-    //   refCount(),
-    //   take(5),
-    // )
-    // .subscribe();
-    // ```
-    // In order to account for this case, RefCountSubscriber should only dispose
-    // the ConnectableObservable's shared connection Subscription if the
-    // connection Subscription exists, *and* either:
-    //   a. RefCountSubscriber doesn't have a reference to the shared connection
-    //      Subscription yet, or,
-    //   b. RefCountSubscriber's connection Subscription reference is identical
-    //      to the shared connection Subscription
-    ///
-    const { connection } = this;
-    const sharedConnection = (<any> connectable)._connection;
-    this.connection = null;
-
-    if (sharedConnection && (!connection || sharedConnection === connection)) {
-      sharedConnection.unsubscribe();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/repeat.ts b/node_modules/rxjs/src/internal/operators/repeat.ts
deleted file mode 100644
index 7bde309..0000000
--- a/node_modules/rxjs/src/internal/operators/repeat.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { empty } from '../observable/empty';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times.
- *
- * <span class="informal">Repeats all values emitted on the source. It's like {@link retry}, but for non error cases.</span>
- *
- * ![](repeat.png)
- *
- * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases.
- * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm.
- *
- * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever
- *
- * ## Example
- * Repeat a message stream
- * ```ts
- * import { of } from 'rxjs';
- * import { repeat, delay } from 'rxjs/operators';
- *
- * const source = of('Repeat message');
- * const example = source.pipe(repeat(3));
- * example.subscribe(x => console.log(x));
- *
- * // Results
- * // Repeat message
- * // Repeat message
- * // Repeat message
- * ```
- *
- * Repeat 3 values, 2 times
- * ```ts
- * import { interval } from 'rxjs';
- * import { repeat, take } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(take(3), repeat(2));
- * example.subscribe(x => console.log(x));
- *
- * // Results every second
- * // 0
- * // 1
- * // 2
- * // 0
- * // 1
- * // 2
- * ```
- *
- * @see {@link repeatWhen}
- * @see {@link retry}
- *
- * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield
- * an empty Observable.
- * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes
- * , at most count times.
- * @method repeat
- * @owner Observable
- */
-export function repeat<T>(count: number = -1): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => {
-    if (count === 0) {
-      return empty();
-    } else if (count < 0) {
-      return source.lift(new RepeatOperator(-1, source));
-    } else {
-      return source.lift(new RepeatOperator(count - 1, source));
-    }
-  };
-}
-
-class RepeatOperator<T> implements Operator<T, T> {
-  constructor(private count: number,
-              private source: Observable<T>) {
-  }
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class RepeatSubscriber<T> extends Subscriber<T> {
-  constructor(destination: Subscriber<any>,
-              private count: number,
-              private source: Observable<T>) {
-    super(destination);
-  }
-  complete() {
-    if (!this.isStopped) {
-      const { source, count } = this;
-      if (count === 0) {
-        return super.complete();
-      } else if (count > -1) {
-        this.count = count - 1;
-      }
-      source.subscribe(this._unsubscribeAndRecycle());
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/repeatWhen.ts b/node_modules/rxjs/src/internal/operators/repeatWhen.ts
deleted file mode 100644
index ecdbe31..0000000
--- a/node_modules/rxjs/src/internal/operators/repeatWhen.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source
- * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable
- * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise
- * this method will resubscribe to the source Observable.
- *
- * ![](repeatWhen.png)
- *
- * ## Example
- * Repeat a message stream on click
- * ```ts
- * import { of, fromEvent } from 'rxjs';
- * import { repeatWhen } from 'rxjs/operators';
- *
- * const source = of('Repeat message');
- * const documentClick$ = fromEvent(document, 'click');
- *
- * source.pipe(repeatWhen(() => documentClick$)
- * ).subscribe(data => console.log(data))
- * ```
- * @see {@link repeat}
- * @see {@link retry}
- * @see {@link retryWhen}
- *
- * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with
- * which a user can `complete` or `error`, aborting the repetition.
- * @return {Observable} The source Observable modified with repeat logic.
- * @method repeatWhen
- * @owner Observable
- */
-export function repeatWhen<T>(notifier: (notifications: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new RepeatWhenOperator(notifier));
-}
-
-class RepeatWhenOperator<T> implements Operator<T, T> {
-  constructor(protected notifier: (notifications: Observable<any>) => Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class RepeatWhenSubscriber<T, R> extends OuterSubscriber<T, R> {
-
-  private notifications: Subject<any>;
-  private retries: Observable<any>;
-  private retriesSubscription: Subscription;
-  private sourceIsBeingSubscribedTo: boolean = true;
-
-  constructor(destination: Subscriber<R>,
-              private notifier: (notifications: Observable<any>) => Observable<any>,
-              private source: Observable<T>) {
-    super(destination);
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.sourceIsBeingSubscribedTo = true;
-    this.source.subscribe(this);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, R>): void {
-    if (this.sourceIsBeingSubscribedTo === false) {
-      return super.complete();
-    }
-  }
-
-  complete() {
-    this.sourceIsBeingSubscribedTo = false;
-
-    if (!this.isStopped) {
-      if (!this.retries) {
-        this.subscribeToRetries();
-      }
-      if (!this.retriesSubscription || this.retriesSubscription.closed) {
-        return super.complete();
-      }
-
-      this._unsubscribeAndRecycle();
-      this.notifications.next();
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    const { notifications, retriesSubscription } = this;
-    if (notifications) {
-      notifications.unsubscribe();
-      this.notifications = null;
-    }
-    if (retriesSubscription) {
-      retriesSubscription.unsubscribe();
-      this.retriesSubscription = null;
-    }
-    this.retries = null;
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribeAndRecycle(): Subscriber<T> {
-    const { _unsubscribe } = this;
-
-    this._unsubscribe = null;
-    super._unsubscribeAndRecycle();
-    this._unsubscribe = _unsubscribe;
-
-    return this;
-  }
-
-  private subscribeToRetries() {
-    this.notifications = new Subject();
-    let retries;
-    try {
-      const { notifier } = this;
-      retries = notifier(this.notifications);
-    } catch (e) {
-      return super.complete();
-    }
-    this.retries = retries;
-    this.retriesSubscription = subscribeToResult(this, retries);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/retry.ts b/node_modules/rxjs/src/internal/operators/retry.ts
deleted file mode 100644
index a6ce566..0000000
--- a/node_modules/rxjs/src/internal/operators/retry.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable
- * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given
- * as a number parameter) rather than propagating the `error` call.
- *
- * ![](retry.png)
- *
- * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted
- * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second
- * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications
- * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].
- *
- * ## Example
- * ```ts
- * import { interval, of, throwError } from 'rxjs';
- * import { mergeMap, retry } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(
- *   mergeMap(val => {
- *     if(val > 5){
- *       return throwError('Error!');
- *     }
- *     return of(val);
- *   }),
- *   //retry 2 times on error
- *   retry(2)
- * );
- *
- * const subscribe = example.subscribe({
- *   next: val => console.log(val),
- *   error: val => console.log(`${val}: Retried 2 times then quit!`)
- * });
- *
- * // Output:
- * // 0..1..2..3..4..5..
- * // 0..1..2..3..4..5..
- * // 0..1..2..3..4..5..
- * // "Error!: Retried 2 times then quit!"
- * ```
- *
- * @param {number} count - Number of retry attempts before failing.
- * @return {Observable} The source Observable modified with the retry logic.
- * @method retry
- * @owner Observable
- */
-export function retry<T>(count: number = -1): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new RetryOperator(count, source));
-}
-
-class RetryOperator<T> implements Operator<T, T> {
-  constructor(private count: number,
-              private source: Observable<T>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class RetrySubscriber<T> extends Subscriber<T> {
-  constructor(destination: Subscriber<any>,
-              private count: number,
-              private source: Observable<T>) {
-    super(destination);
-  }
-  error(err: any) {
-    if (!this.isStopped) {
-      const { source, count } = this;
-      if (count === 0) {
-        return super.error(err);
-      } else if (count > -1) {
-        this.count = count - 1;
-      }
-      source.subscribe(this._unsubscribeAndRecycle());
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/retryWhen.ts b/node_modules/rxjs/src/internal/operators/retryWhen.ts
deleted file mode 100644
index 325742d..0000000
--- a/node_modules/rxjs/src/internal/operators/retryWhen.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable
- * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`.
- * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child
- * subscription. Otherwise this method will resubscribe to the source Observable.
- *
- * ![](retryWhen.png)
- *
- * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a
- * user can `complete` or `error`, aborting the retry.
- * @return {Observable} The source Observable modified with retry logic.
- * @method retryWhen
- * @owner Observable
- */
-export function retryWhen<T>(notifier: (errors: Observable<any>) => Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new RetryWhenOperator(notifier, source));
-}
-
-class RetryWhenOperator<T> implements Operator<T, T> {
-  constructor(protected notifier: (errors: Observable<any>) => Observable<any>,
-              protected source: Observable<T>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class RetryWhenSubscriber<T, R> extends OuterSubscriber<T, R> {
-
-  private errors: Subject<any>;
-  private retries: Observable<any>;
-  private retriesSubscription: Subscription;
-
-  constructor(destination: Subscriber<R>,
-              private notifier: (errors: Observable<any>) => Observable<any>,
-              private source: Observable<T>) {
-    super(destination);
-  }
-
-  error(err: any) {
-    if (!this.isStopped) {
-
-      let errors = this.errors;
-      let retries: any = this.retries;
-      let retriesSubscription = this.retriesSubscription;
-
-      if (!retries) {
-        errors = new Subject();
-        try {
-          const { notifier } = this;
-          retries = notifier(errors);
-        } catch (e) {
-          return super.error(e);
-        }
-        retriesSubscription = subscribeToResult(this, retries);
-      } else {
-        this.errors = null;
-        this.retriesSubscription = null;
-      }
-
-      this._unsubscribeAndRecycle();
-
-      this.errors = errors;
-      this.retries = retries;
-      this.retriesSubscription = retriesSubscription;
-
-      errors.next(err);
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    const { errors, retriesSubscription } = this;
-    if (errors) {
-      errors.unsubscribe();
-      this.errors = null;
-    }
-    if (retriesSubscription) {
-      retriesSubscription.unsubscribe();
-      this.retriesSubscription = null;
-    }
-    this.retries = null;
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    const { _unsubscribe } = this;
-
-    this._unsubscribe = null;
-    this._unsubscribeAndRecycle();
-    this._unsubscribe = _unsubscribe;
-
-    this.source.subscribe(this);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/sample.ts b/node_modules/rxjs/src/internal/operators/sample.ts
deleted file mode 100644
index 5665dec..0000000
--- a/node_modules/rxjs/src/internal/operators/sample.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Emits the most recently emitted value from the source Observable whenever
- * another Observable, the `notifier`, emits.
- *
- * <span class="informal">It's like {@link sampleTime}, but samples whenever
- * the `notifier` Observable emits something.</span>
- *
- * ![](sample.png)
- *
- * Whenever the `notifier` Observable emits a value or completes, `sample`
- * looks at the source Observable and emits whichever value it has most recently
- * emitted since the previous sampling, unless the source has not emitted
- * anything since the previous sampling. The `notifier` is subscribed to as soon
- * as the output Observable is subscribed.
- *
- * ## Example
- * On every click, sample the most recent "seconds" timer
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { sample } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const result = seconds.pipe(sample(clicks));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounce}
- * @see {@link sampleTime}
- * @see {@link throttle}
- *
- * @param {Observable<any>} notifier The Observable to use for sampling the
- * source Observable.
- * @return {Observable<T>} An Observable that emits the results of sampling the
- * values emitted by the source Observable whenever the notifier Observable
- * emits value or completes.
- * @method sample
- * @owner Observable
- */
-export function sample<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SampleOperator(notifier));
-}
-
-class SampleOperator<T> implements Operator<T, T> {
-  constructor(private notifier: Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    const sampleSubscriber = new SampleSubscriber(subscriber);
-    const subscription = source.subscribe(sampleSubscriber);
-    subscription.add(subscribeToResult(sampleSubscriber, this.notifier));
-    return subscription;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SampleSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private value: T;
-  private hasValue: boolean = false;
-
-  protected _next(value: T) {
-    this.value = value;
-    this.hasValue = true;
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.emitValue();
-  }
-
-  notifyComplete(): void {
-    this.emitValue();
-  }
-
-  emitValue() {
-    if (this.hasValue) {
-      this.hasValue = false;
-      this.destination.next(this.value);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/sampleTime.ts b/node_modules/rxjs/src/internal/operators/sampleTime.ts
deleted file mode 100644
index 0ff1227..0000000
--- a/node_modules/rxjs/src/internal/operators/sampleTime.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-import { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- * Emits the most recently emitted value from the source Observable within
- * periodic time intervals.
- *
- * <span class="informal">Samples the source Observable at periodic time
- * intervals, emitting what it samples.</span>
- *
- * ![](sampleTime.png)
- *
- * `sampleTime` periodically looks at the source Observable and emits whichever
- * value it has most recently emitted since the previous sampling, unless the
- * source has not emitted anything since the previous sampling. The sampling
- * happens periodically in time every `period` milliseconds (or the time unit
- * defined by the optional `scheduler` argument). The sampling starts as soon as
- * the output Observable is subscribed.
- *
- * ## Example
- * Every second, emit the most recent click at most once
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { sampleTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(sampleTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link auditTime}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sample}
- * @see {@link throttleTime}
- *
- * @param {number} period The sampling period expressed in milliseconds or the
- * time unit determined internally by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the sampling.
- * @return {Observable<T>} An Observable that emits the results of sampling the
- * values emitted by the source Observable at the specified time interval.
- * @method sampleTime
- * @owner Observable
- */
-export function sampleTime<T>(period: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SampleTimeOperator(period, scheduler));
-}
-
-class SampleTimeOperator<T> implements Operator<T, T> {
-  constructor(private period: number,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SampleTimeSubscriber<T> extends Subscriber<T> {
-  lastValue: T;
-  hasValue: boolean = false;
-
-  constructor(destination: Subscriber<T>,
-              private period: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-    this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period }));
-  }
-
-  protected _next(value: T) {
-    this.lastValue = value;
-    this.hasValue = true;
-  }
-
-  notifyNext() {
-    if (this.hasValue) {
-      this.hasValue = false;
-      this.destination.next(this.lastValue);
-    }
-  }
-}
-
-function dispatchNotification<T>(this: SchedulerAction<any>, state: any) {
-  let { subscriber, period } = state;
-  subscriber.notifyNext();
-  this.schedule(state, period);
-}
diff --git a/node_modules/rxjs/src/internal/operators/scan.ts b/node_modules/rxjs/src/internal/operators/scan.ts
deleted file mode 100644
index a1eb511..0000000
--- a/node_modules/rxjs/src/internal/operators/scan.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction, MonoTypeOperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction<T, R>;
-export function scan<T>(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction<T>;
-export function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Applies an accumulator function over the source Observable, and returns each
- * intermediate result, with an optional seed value.
- *
- * <span class="informal">It's like {@link reduce}, but emits the current
- * accumulation whenever the source emits a value.</span>
- *
- * ![](scan.png)
- *
- * Combines together all values emitted on the source, using an accumulator
- * function that knows how to join a new source value into the accumulation from
- * the past. Is similar to {@link reduce}, but emits the intermediate
- * accumulations.
- *
- * Returns an Observable that applies a specified `accumulator` function to each
- * item emitted by the source Observable. If a `seed` value is specified, then
- * that value will be used as the initial value for the accumulator. If no seed
- * value is specified, the first item of the source is used as the seed.
- *
- * ## Example
- * Count the number of click events
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { scan, mapTo } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const ones = clicks.pipe(mapTo(1));
- * const seed = 0;
- * const count = ones.pipe(scan((acc, one) => acc + one, seed));
- * count.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link expand}
- * @see {@link mergeScan}
- * @see {@link reduce}
- *
- * @param {function(acc: R, value: T, index: number): R} accumulator
- * The accumulator function called on each source value.
- * @param {T|R} [seed] The initial accumulation value.
- * @return {Observable<R>} An observable of the accumulated values.
- * @method scan
- * @owner Observable
- */
-export function scan<T, R>(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction<T, R> {
-  let hasSeed = false;
-  // providing a seed of `undefined` *should* be valid and trigger
-  // hasSeed! so don't use `seed !== undefined` checks!
-  // For this reason, we have to check it here at the original call site
-  // otherwise inside Operator/Subscriber we won't know if `undefined`
-  // means they didn't provide anything or if they literally provided `undefined`
-  if (arguments.length >= 2) {
-    hasSeed = true;
-  }
-
-  return function scanOperatorFunction(source: Observable<T>): Observable<R> {
-    return source.lift(new ScanOperator(accumulator, seed, hasSeed));
-  };
-}
-
-class ScanOperator<T, R> implements Operator<T, R> {
-  constructor(private accumulator: (acc: R, value: T, index: number) => R, private seed?: T | R, private hasSeed: boolean = false) {}
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class ScanSubscriber<T, R> extends Subscriber<T> {
-  private index: number = 0;
-
-  get seed(): T | R {
-    return this._seed;
-  }
-
-  set seed(value: T | R) {
-    this.hasSeed = true;
-    this._seed = value;
-  }
-
-  constructor(destination: Subscriber<R>, private accumulator: (acc: R, value: T, index: number) => R, private _seed: T | R,
-              private hasSeed: boolean) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    if (!this.hasSeed) {
-      this.seed = value;
-      this.destination.next(value);
-    } else {
-      return this._tryNext(value);
-    }
-  }
-
-  private _tryNext(value: T): void {
-    const index = this.index++;
-    let result: any;
-    try {
-      result = this.accumulator(<R>this.seed, value, index);
-    } catch (err) {
-      this.destination.error(err);
-    }
-    this.seed = result;
-    this.destination.next(result);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/sequenceEqual.ts b/node_modules/rxjs/src/internal/operators/sequenceEqual.ts
deleted file mode 100644
index a614c49..0000000
--- a/node_modules/rxjs/src/internal/operators/sequenceEqual.ts
+++ /dev/null
@@ -1,174 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-
-import { Observer, OperatorFunction } from '../types';
-
-/**
- * Compares all values of two observables in sequence using an optional comparator function
- * and returns an observable of a single boolean value representing whether or not the two sequences
- * are equal.
- *
- * <span class="informal">Checks to see of all values emitted by both observables are equal, in order.</span>
- *
- * ![](sequenceEqual.png)
- *
- * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either
- * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom
- * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the
- * observables completes, the operator will wait for the other observable to complete; If the other
- * observable emits before completing, the returned observable will emit `false` and complete. If one observable never
- * completes or emits after the other complets, the returned observable will never complete.
- *
- * ## Example
- * figure out if the Konami code matches
- * ```ts
- * import { from, fromEvent } from 'rxjs';
- * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators';
- *
- * const codes = from([
- *   'ArrowUp',
- *   'ArrowUp',
- *   'ArrowDown',
- *   'ArrowDown',
- *   'ArrowLeft',
- *   'ArrowRight',
- *   'ArrowLeft',
- *   'ArrowRight',
- *   'KeyB',
- *   'KeyA',
- *   'Enter', // no start key, clearly.
- * ]);
- *
- * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code));
- * const matches = keys.pipe(
- *   bufferCount(11, 1),
- *   mergeMap(
- *     last11 => from(last11).pipe(sequenceEqual(codes)),
- *   ),
- * );
- * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));
- * ```
- *
- * @see {@link combineLatest}
- * @see {@link zip}
- * @see {@link withLatestFrom}
- *
- * @param {Observable} compareTo The observable sequence to compare the source sequence to.
- * @param {function} [comparator] An optional function to compare each value pair
- * @return {Observable} An Observable of a single boolean value representing whether or not
- * the values emitted by both observables were equal in sequence.
- * @method sequenceEqual
- * @owner Observable
- */
-export function sequenceEqual<T>(compareTo: Observable<T>,
-                                 comparator?: (a: T, b: T) => boolean): OperatorFunction<T, boolean> {
-  return (source: Observable<T>) => source.lift(new SequenceEqualOperator(compareTo, comparator));
-}
-
-export class SequenceEqualOperator<T> implements Operator<T, boolean> {
-  constructor(private compareTo: Observable<T>,
-              private comparator: (a: T, b: T) => boolean) {
-  }
-
-  call(subscriber: Subscriber<boolean>, source: any): any {
-    return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class SequenceEqualSubscriber<T, R> extends Subscriber<T> {
-  private _a: T[] = [];
-  private _b: T[] = [];
-  private _oneComplete = false;
-
-  constructor(destination: Observer<R>,
-              private compareTo: Observable<T>,
-              private comparator: (a: T, b: T) => boolean) {
-    super(destination);
-    (this.destination as Subscription).add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));
-  }
-
-  protected _next(value: T): void {
-    if (this._oneComplete && this._b.length === 0) {
-      this.emit(false);
-    } else {
-      this._a.push(value);
-      this.checkValues();
-    }
-  }
-
-  public _complete(): void {
-    if (this._oneComplete) {
-      this.emit(this._a.length === 0 && this._b.length === 0);
-    } else {
-      this._oneComplete = true;
-    }
-    this.unsubscribe();
-  }
-
-  checkValues() {
-    const { _a, _b, comparator } = this;
-    while (_a.length > 0 && _b.length > 0) {
-      let a = _a.shift();
-      let b = _b.shift();
-      let areEqual = false;
-      try {
-        areEqual = comparator ? comparator(a, b) : a === b;
-      } catch (e) {
-        this.destination.error(e);
-      }
-      if (!areEqual) {
-        this.emit(false);
-      }
-    }
-  }
-
-  emit(value: boolean) {
-    const { destination } = this;
-    destination.next(value);
-    destination.complete();
-  }
-
-  nextB(value: T) {
-    if (this._oneComplete && this._a.length === 0) {
-      this.emit(false);
-    } else {
-      this._b.push(value);
-      this.checkValues();
-    }
-  }
-
-  completeB() {
-    if (this._oneComplete) {
-      this.emit(this._a.length === 0 && this._b.length === 0);
-    } else {
-      this._oneComplete = true;
-    }
-  }
-}
-
-class SequenceEqualCompareToSubscriber<T, R> extends Subscriber<T> {
-  constructor(destination: Observer<R>, private parent: SequenceEqualSubscriber<T, R>) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    this.parent.nextB(value);
-  }
-
-  protected _error(err: any): void {
-    this.parent.error(err);
-    this.unsubscribe();
-  }
-
-  protected _complete(): void {
-    this.parent.completeB();
-    this.unsubscribe();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/share.ts b/node_modules/rxjs/src/internal/operators/share.ts
deleted file mode 100644
index f055968..0000000
--- a/node_modules/rxjs/src/internal/operators/share.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Observable } from '../Observable';
-import { multicast } from './multicast';
-import { refCount } from './refCount';
-import { Subject } from '../Subject';
-
-import { MonoTypeOperatorFunction } from '../types';
-
-function shareSubjectFactory() {
-  return new Subject();
-}
-
-/**
- * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one
- * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will
- * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.
- * This is an alias for `multicast(() => new Subject()), refCount()`.
- *
- * ![](share.png)
- *
- * @return {Observable<T>} An Observable that upon connection causes the source Observable to emit items to its Observers.
- * @method share
- * @owner Observable
- */
-export function share<T>(): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => refCount()(multicast(shareSubjectFactory)(source)) as Observable<T>;
-}
diff --git a/node_modules/rxjs/src/internal/operators/shareReplay.ts b/node_modules/rxjs/src/internal/operators/shareReplay.ts
deleted file mode 100644
index 400ddc8..0000000
--- a/node_modules/rxjs/src/internal/operators/shareReplay.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { Observable } from '../Observable';
-import { ReplaySubject } from '../ReplaySubject';
-import { Subscription } from '../Subscription';
-import { MonoTypeOperatorFunction, SchedulerLike } from '../types';
-import { Subscriber } from '../Subscriber';
-
-export interface ShareReplayConfig {
-  bufferSize?: number;
-  windowTime?: number;
-  refCount: boolean;
-  scheduler?: SchedulerLike;
-}
-
-/**
- * Share source and replay specified number of emissions on subscription.
- *
- * This operator is a specialization of `replay` that connects to a source observable
- * and multicasts through a `ReplaySubject` constructed with the specified arguments.
- * A successfully completed source will stay cached in the `shareReplayed observable` forever,
- * but an errored source can be retried.
- *
- * ## Why use shareReplay?
- * You generally want to use `shareReplay` when you have side-effects or taxing computations
- * that you do not wish to be executed amongst multiple subscribers.
- * It may also be valuable in situations where you know you will have late subscribers to
- * a stream that need access to previously emitted values.
- * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`.
- *
- * ![](shareReplay.png)
- *
- * ## Example
- * ```ts
- * import { interval } from 'rxjs';
- * import { shareReplay, take } from 'rxjs/operators';
- *
- * const obs$ = interval(1000);
- * const shared$ = obs$.pipe(
- *   take(4),
- *   shareReplay(3)
- * );
- * shared$.subscribe(x => console.log('source A: ', x));
- * shared$.subscribe(y => console.log('source B: ', y));
- *
- * ```
- *
- * @see {@link publish}
- * @see {@link share}
- * @see {@link publishReplay}
- *
- * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer.
- * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds.
- * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function
- * will be invoked on.
- * @return {Observable} An observable sequence that contains the elements of a sequence produced
- * by multicasting the source sequence within a selector function.
- * @method shareReplay
- * @owner Observable
- */
-export function shareReplay<T>(config: ShareReplayConfig): MonoTypeOperatorFunction<T>;
-export function shareReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
-export function shareReplay<T>(
-  configOrBufferSize?: ShareReplayConfig | number,
-  windowTime?: number,
-  scheduler?: SchedulerLike
-): MonoTypeOperatorFunction<T> {
-  let config: ShareReplayConfig;
-  if (configOrBufferSize && typeof configOrBufferSize === 'object') {
-    config = configOrBufferSize as ShareReplayConfig;
-  } else {
-    config = {
-      bufferSize: configOrBufferSize as number | undefined,
-      windowTime,
-      refCount: false,
-      scheduler
-    };
-  }
-  return (source: Observable<T>) => source.lift(shareReplayOperator(config));
-}
-
-function shareReplayOperator<T>({
-  bufferSize = Number.POSITIVE_INFINITY,
-  windowTime = Number.POSITIVE_INFINITY,
-  refCount: useRefCount,
-  scheduler
-}: ShareReplayConfig) {
-  let subject: ReplaySubject<T> | undefined;
-  let refCount = 0;
-  let subscription: Subscription | undefined;
-  let hasError = false;
-  let isComplete = false;
-
-  return function shareReplayOperation(this: Subscriber<T>, source: Observable<T>) {
-    refCount++;
-    if (!subject || hasError) {
-      hasError = false;
-      subject = new ReplaySubject<T>(bufferSize, windowTime, scheduler);
-      subscription = source.subscribe({
-        next(value) { subject.next(value); },
-        error(err) {
-          hasError = true;
-          subject.error(err);
-        },
-        complete() {
-          isComplete = true;
-          subscription = undefined;
-          subject.complete();
-        },
-      });
-    }
-
-    const innerSub = subject.subscribe(this);
-    this.add(() => {
-      refCount--;
-      innerSub.unsubscribe();
-      if (subscription && !isComplete && useRefCount && refCount === 0) {
-        subscription.unsubscribe();
-        subscription = undefined;
-        subject = undefined;
-      }
-    });
-  };
-}
diff --git a/node_modules/rxjs/src/internal/operators/single.ts b/node_modules/rxjs/src/internal/operators/single.ts
deleted file mode 100644
index e23e147..0000000
--- a/node_modules/rxjs/src/internal/operators/single.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { EmptyError } from '../util/EmptyError';
-
-import { Observer, MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that emits the single item emitted by the source Observable that matches a specified
- * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no
- * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable
- * emits items but none match the specified predicate then `undefined` is emitted.
- *
- * <span class="informal">Like {@link first}, but emit with error notification if there is more than one value.</span>
- * ![](single.png)
- *
- * ## Example
- * emits 'error'
- * ```ts
- * import { range } from 'rxjs';
- * import { single } from 'rxjs/operators';
- *
- * const numbers = range(1,5).pipe(single());
- * numbers.subscribe(x => console.log('never get called'), e => console.log('error'));
- * // result
- * // 'error'
- * ```
- *
- * emits 'undefined'
- * ```ts
- * import { range } from 'rxjs';
- * import { single } from 'rxjs/operators';
- *
- * const numbers = range(1,5).pipe(single(x => x === 10));
- * numbers.subscribe(x => console.log(x));
- * // result
- * // 'undefined'
- * ```
- *
- * @see {@link first}
- * @see {@link find}
- * @see {@link findIndex}
- * @see {@link elementAt}
- *
- * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`
- * callback if the Observable completes before any `next` notification was sent.
- * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable.
- * @return {Observable<T>} An Observable that emits the single item emitted by the source Observable that matches
- * the predicate or `undefined` when no items match.
- *
- * @method single
- * @owner Observable
- */
-export function single<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SingleOperator(predicate, source));
-}
-
-class SingleOperator<T> implements Operator<T, T> {
-  constructor(private predicate?: (value: T, index: number, source: Observable<T>) => boolean,
-              private source?: Observable<T>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SingleSubscriber<T> extends Subscriber<T> {
-  private seenValue: boolean = false;
-  private singleValue: T;
-  private index: number = 0;
-
-  constructor(destination: Observer<T>,
-              private predicate?: (value: T, index: number, source: Observable<T>) => boolean,
-              private source?: Observable<T>) {
-    super(destination);
-  }
-
-  private applySingleValue(value: T): void {
-    if (this.seenValue) {
-      this.destination.error('Sequence contains more than one element');
-    } else {
-      this.seenValue = true;
-      this.singleValue = value;
-    }
-  }
-
-  protected _next(value: T): void {
-    const index = this.index++;
-
-    if (this.predicate) {
-      this.tryNext(value, index);
-    } else {
-      this.applySingleValue(value);
-    }
-  }
-
-  private tryNext(value: T, index: number): void {
-    try {
-      if (this.predicate(value, index, this.source)) {
-        this.applySingleValue(value);
-      }
-    } catch (err) {
-      this.destination.error(err);
-    }
-  }
-
-  protected _complete(): void {
-    const destination = this.destination;
-
-    if (this.index > 0) {
-      destination.next(this.seenValue ? this.singleValue : undefined);
-      destination.complete();
-    } else {
-      destination.error(new EmptyError);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/skip.ts b/node_modules/rxjs/src/internal/operators/skip.ts
deleted file mode 100644
index b5b7f2a..0000000
--- a/node_modules/rxjs/src/internal/operators/skip.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that skips the first `count` items emitted by the source Observable.
- *
- * ![](skip.png)
- *
- * @param {Number} count - The number of times, items emitted by source Observable should be skipped.
- * @return {Observable} An Observable that skips values emitted by the source Observable.
- *
- * @method skip
- * @owner Observable
- */
-export function skip<T>(count: number): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SkipOperator(count));
-}
-
-class SkipOperator<T> implements Operator<T, T> {
-  constructor(private total: number) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SkipSubscriber(subscriber, this.total));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SkipSubscriber<T> extends Subscriber<T> {
-  count: number = 0;
-
-  constructor(destination: Subscriber<T>, private total: number) {
-    super(destination);
-  }
-
-  protected _next(x: T) {
-    if (++this.count > this.total) {
-      this.destination.next(x);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/skipLast.ts b/node_modules/rxjs/src/internal/operators/skipLast.ts
deleted file mode 100644
index 60b6087..0000000
--- a/node_modules/rxjs/src/internal/operators/skipLast.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Skip the last `count` values emitted by the source Observable.
- *
- * ![](skipLast.png)
- *
- * `skipLast` returns an Observable that accumulates a queue with a length
- * enough to store the first `count` values. As more values are received,
- * values are taken from the front of the queue and produced on the result
- * sequence. This causes values to be delayed.
- *
- * ## Example
- * Skip the last 2 values of an Observable with many values
- * ```ts
- * import { range } from 'rxjs';
- * import { skipLast } from 'rxjs/operators';
- *
- * const many = range(1, 5);
- * const skipLastTwo = many.pipe(skipLast(2));
- * skipLastTwo.subscribe(x => console.log(x));
- *
- * // Results in:
- * // 1 2 3
- * ```
- *
- * @see {@link skip}
- * @see {@link skipUntil}
- * @see {@link skipWhile}
- * @see {@link take}
- *
- * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws
- * ArgumentOutOrRangeError if `i < 0`.
- *
- * @param {number} count Number of elements to skip from the end of the source Observable.
- * @returns {Observable<T>} An Observable that skips the last count values
- * emitted by the source Observable.
- * @method skipLast
- * @owner Observable
- */
-export function skipLast<T>(count: number): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SkipLastOperator(count));
-}
-
-class SkipLastOperator<T> implements Operator<T, T> {
-  constructor(private _skipCount: number) {
-    if (this._skipCount < 0) {
-      throw new ArgumentOutOfRangeError;
-    }
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    if (this._skipCount === 0) {
-      // If we don't want to skip any values then just subscribe
-      // to Subscriber without any further logic.
-      return source.subscribe(new Subscriber(subscriber));
-    } else {
-      return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
-    }
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SkipLastSubscriber<T> extends Subscriber<T> {
-  private _ring: T[];
-  private _count: number = 0;
-
-  constructor(destination: Subscriber<T>, private _skipCount: number) {
-    super(destination);
-    this._ring = new Array<T>(_skipCount);
-  }
-
-  protected _next(value: T): void {
-    const skipCount = this._skipCount;
-    const count = this._count++;
-
-    if (count < skipCount) {
-      this._ring[count] = value;
-    } else {
-      const currentIndex = count % skipCount;
-      const ring = this._ring;
-      const oldValue = ring[currentIndex];
-
-      ring[currentIndex] = value;
-      this.destination.next(oldValue);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/skipUntil.ts b/node_modules/rxjs/src/internal/operators/skipUntil.ts
deleted file mode 100644
index 8310adc..0000000
--- a/node_modules/rxjs/src/internal/operators/skipUntil.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { MonoTypeOperatorFunction, TeardownLogic, ObservableInput } from '../types';
-import { Subscription } from '../Subscription';
-
-/**
- * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.
- *
- * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value.
- * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by.
- *
- * ![](skipUntil.png)
- *
- * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission
- * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source*
- * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting
- * a value before.
- *
- * ## Example
- *
- * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page.
- *
- * ```ts
- * import { interval, fromEvent } from 'rxjs';
- * import { skipUntil } from 'rxjs/operators';
- *
- * const intervalObservable = interval(1000);
- * const click = fromEvent(document, 'click');
- *
- * const emitAfterClick = intervalObservable.pipe(
- *   skipUntil(click)
- * );
- * // clicked at 4.6s. output: 5...6...7...8........ or
- * // clicked at 7.3s. output: 8...9...10..11.......
- * const subscribe = emitAfterClick.subscribe(value => console.log(value));
- * ```
- *
- * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to
- * be mirrored by the resulting Observable.
- * @return {Observable<T>} An Observable that skips items from the source Observable until the second Observable emits
- * an item, then emits the remaining items.
- * @method skipUntil
- * @owner Observable
- */
-export function skipUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SkipUntilOperator(notifier));
-}
-
-class SkipUntilOperator<T> implements Operator<T, T> {
-  constructor(private notifier: Observable<any>) {
-  }
-
-  call(destination: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SkipUntilSubscriber<T, R> extends OuterSubscriber<T, R> {
-
-  private hasValue: boolean = false;
-  private innerSubscription: Subscription;
-
-  constructor(destination: Subscriber<R>, notifier: ObservableInput<any>) {
-    super(destination);
-    const innerSubscriber = new InnerSubscriber(this, undefined, undefined);
-    this.add(innerSubscriber);
-    this.innerSubscription = innerSubscriber;
-    const innerSubscription = subscribeToResult(this, notifier, undefined, undefined, innerSubscriber);
-    // The returned subscription will usually be the subscriber that was
-    // passed. However, interop subscribers will be wrapped and for
-    // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-    if (innerSubscription !== innerSubscriber) {
-      this.add(innerSubscription);
-      this.innerSubscription = innerSubscription;
-    }
-  }
-
-  protected _next(value: T) {
-    if (this.hasValue) {
-      super._next(value);
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.hasValue = true;
-    if (this.innerSubscription) {
-      this.innerSubscription.unsubscribe();
-    }
-  }
-
-  notifyComplete() {
-    /* do nothing */
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/skipWhile.ts b/node_modules/rxjs/src/internal/operators/skipWhile.ts
deleted file mode 100644
index 5647f13..0000000
--- a/node_modules/rxjs/src/internal/operators/skipWhile.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds
- * true, but emits all further source items as soon as the condition becomes false.
- *
- * ![](skipWhile.png)
- *
- * @param {Function} predicate - A function to test each item emitted from the source Observable.
- * @return {Observable<T>} An Observable that begins emitting items emitted by the source Observable when the
- * specified predicate becomes false.
- * @method skipWhile
- * @owner Observable
- */
-export function skipWhile<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new SkipWhileOperator(predicate));
-}
-
-class SkipWhileOperator<T> implements Operator<T, T> {
-  constructor(private predicate: (value: T, index: number) => boolean) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SkipWhileSubscriber<T> extends Subscriber<T> {
-  private skipping: boolean = true;
-  private index: number = 0;
-
-  constructor(destination: Subscriber<T>,
-              private predicate: (value: T, index: number) => boolean) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const destination = this.destination;
-    if (this.skipping) {
-      this.tryCallPredicate(value);
-    }
-
-    if (!this.skipping) {
-      destination.next(value);
-    }
-  }
-
-  private tryCallPredicate(value: T): void {
-    try {
-      const result = this.predicate(value, this.index++);
-      this.skipping = Boolean(result);
-    } catch (err) {
-      this.destination.error(err);
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/startWith.ts b/node_modules/rxjs/src/internal/operators/startWith.ts
deleted file mode 100644
index 81ce063..0000000
--- a/node_modules/rxjs/src/internal/operators/startWith.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { Observable } from '../Observable';
-import { concat } from '../observable/concat';
-import { isScheduler } from '../util/isScheduler';
-import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T>(scheduler: SchedulerLike): MonoTypeOperatorFunction<T>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D>(v1: D, scheduler: SchedulerLike): OperatorFunction<T, T | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D, E>(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction<T, T | D | E>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D, E, F>(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D, E, F, G>(v1: D, v2:  E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction<T, T | D | E | F | G | H | I>;
-
-export function startWith<T, D>(v1: D): OperatorFunction<T, T | D>;
-export function startWith<T, D, E>(v1: D, v2: E): OperatorFunction<T, T | D | E>;
-export function startWith<T, D, E, F>(v1: D, v2: E, v3: F): OperatorFunction<T, T | D | E | F>;
-export function startWith<T, D, E, F, G>(v1: D, v2:  E, v3: F, v4: G): OperatorFunction<T, T | D | E | F | G>;
-export function startWith<T, D, E, F, G, H>(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction<T, T | D | E | F | G | H>;
-export function startWith<T, D, E, F, G, H, I>(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction<T, T | D | E | F | G | H | I>;
-export function startWith<T, D = T>(...array: D[]): OperatorFunction<T, T | D>;
-/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */
-export function startWith<T, D = T>(...array: Array<D | SchedulerLike>): OperatorFunction<T, T | D>;
-/* tslint:enable:max-line-length */
-
-/**
- * Returns an Observable that emits the items you specify as arguments before it begins to emit
- * items emitted by the source Observable.
- *
- * <span class="informal">First emits its arguments in order, and then any
- * emissions from the source.</span>
- *
- * ![](startWith.png)
- *
- * ## Examples
- *
- * Start the chain of emissions with `"first"`, `"second"`
- *
- * ```ts
- * import { of } from 'rxjs';
- * import { startWith } from 'rxjs/operators';
- *
- * of("from source")
- *   .pipe(startWith("first", "second"))
- *   .subscribe(x => console.log(x));
- *
- * // results:
- * //   "first"
- * //   "second"
- * //   "from source"
- * ```
- *
- * @param {...T} values - Items you want the modified Observable to emit first.
- * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling
- * the emissions of the `next` notifications.
- * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items
- * emitted by the source Observable.
- * @method startWith
- * @owner Observable
- */
-export function startWith<T, D>(...array: Array<T | SchedulerLike>): OperatorFunction<T, T | D> {
-  const scheduler = array[array.length - 1] as SchedulerLike;
-  if (isScheduler(scheduler)) {
-    // deprecated path
-    array.pop();
-    return (source: Observable<T>) => concat(array as T[], source, scheduler);
-  } else {
-    return (source: Observable<T>) => concat(array as T[], source);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/subscribeOn.ts b/node_modules/rxjs/src/internal/operators/subscribeOn.ts
deleted file mode 100644
index 3c5a4c1..0000000
--- a/node_modules/rxjs/src/internal/operators/subscribeOn.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';
-import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.
- *
- * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.
- *
- * Schedulers control the speed and order of emissions to observers from an Observable stream.
- *
- * ![](subscribeOn.png)
- *
- * ## Example
- * Given the following code:
- * ```javascript
- * import { of, merge } from 'rxjs';
- *
- * const a = of(1, 2, 3, 4);
- * const b = of(5, 6, 7, 8, 9);
- * merge(a, b).subscribe(console.log);
- * ```
- *
- * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.
- * This will result in the output of `1 2 3 4 5 6 7 8 9`.
- *
- * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`:
- * ```javascript
- * import { of, merge, asyncScheduler } from 'rxjs';
- * import { subscribeOn } from 'rxjs/operators';
- *
- * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));
- * const b = of(5, 6, 7, 8, 9);
- * merge(a, b).subscribe(console.log);
- * ```
- *
- * The output will instead be `5 6 7 8 9 1 2 3 4`.
- * The reason for this is that Observable `b` emits its values directly and synchronously like before
- * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.
- *
- * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on.
- * @return {Observable<T>} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}.
- .
- * @method subscribeOn
- * @owner Observable
- */
-export function subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {
-  return function subscribeOnOperatorFunction(source: Observable<T>): Observable<T> {
-    return source.lift(new SubscribeOnOperator<T>(scheduler, delay));
-  };
-}
-
-class SubscribeOnOperator<T> implements Operator<T, T> {
-  constructor(private scheduler: SchedulerLike,
-              private delay: number) {
-  }
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return new SubscribeOnObservable<T>(
-      source, this.delay, this.scheduler
-    ).subscribe(subscriber);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/switchAll.ts b/node_modules/rxjs/src/internal/operators/switchAll.ts
deleted file mode 100644
index 5fd82a4..0000000
--- a/node_modules/rxjs/src/internal/operators/switchAll.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import {OperatorFunction, ObservableInput} from '../types';
-import { switchMap } from './switchMap';
-import { identity } from '../util/identity';
-
-export function switchAll<T>(): OperatorFunction<ObservableInput<T>, T>;
-export function switchAll<R>(): OperatorFunction<any, R>;
-
-/**
- * Converts a higher-order Observable into a first-order Observable
- * producing values only from the most recent observable sequence
- *
- * <span class="informal">Flattens an Observable-of-Observables.</span>
- *
- * ![](switchAll.png)
- *
- * `switchAll` subscribes to a source that is an observable of observables, also known as a
- * "higher-order observable" (or `Observable<Observable<T>>`). It subscribes to the most recently
- * provided "inner observable" emitted by the source, unsubscribing from any previously subscribed
- * to inner observable, such that only the most recent inner observable may be subscribed to at
- * any point in time. The resulting observable returned by `switchAll` will only complete if the
- * source observable completes, *and* any currently subscribed to inner observable also has completed,
- * if there are any.
- *
- * ## Examples
- * Spawn a new interval observable for each click event, but for every new
- * click, cancel the previous interval and subscribe to the new one.
- *
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { switchAll, map, tap } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click')));
- * const source = clicks.pipe(map((ev) => interval(1000)));
- *
- * source.pipe(
- *   switchAll()
- * ).subscribe(x => console.log(x));
- *
- /* Output
- *  click
- *  1
- *  2
- *  3
- *  4
- *  ...
- *  click
- *  1
- *  2
- *  3
- *  ...
- *  click
- *  ...
- * ```
- *
- * @see {@link combineAll}
- * @see {@link concatAll}
- * @see {@link exhaust}
- * @see {@link switchMap}
- * @see {@link switchMapTo}
- * @see {@link mergeAll}
- */
-
-export function switchAll<T>(): OperatorFunction<ObservableInput<T>, T> {
-  return switchMap(identity);
-}
diff --git a/node_modules/rxjs/src/internal/operators/switchMap.ts b/node_modules/rxjs/src/internal/operators/switchMap.ts
deleted file mode 100644
index c3c831a..0000000
--- a/node_modules/rxjs/src/internal/operators/switchMap.ts
+++ /dev/null
@@ -1,174 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-import { map } from './map';
-import { from } from '../observable/from';
-
-/* tslint:disable:max-line-length */
-export function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported, use inner map instead */
-export function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
-/** @deprecated resultSelector is no longer supported, use inner map instead */
-export function switchMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to an Observable which is merged in the output
- * Observable, emitting values only from the most recently projected Observable.
- *
- * <span class="informal">Maps each value to an Observable, then flattens all of
- * these inner Observables.</span>
- *
- * ![](switchMap.png)
- *
- * Returns an Observable that emits items based on applying a function that you
- * supply to each item emitted by the source Observable, where that function
- * returns an (so-called "inner") Observable. Each time it observes one of these
- * inner Observables, the output Observable begins emitting the items emitted by
- * that inner Observable. When a new inner Observable is emitted, `switchMap`
- * stops emitting items from the earlier-emitted inner Observable and begins
- * emitting items from the new one. It continues to behave like this for
- * subsequent inner Observables.
- *
- * ## Example
- * Generate new Observable according to source Observable values
- * ```typescript
- * import { of } from 'rxjs';
- * import { switchMap } from 'rxjs/operators';
- *
- * const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3)));
- * switched.subscribe(x => console.log(x));
- * // outputs
- * // 1
- * // 1
- * // 1
- * // 2
- * // 4
- * // 8
- * // ... and so on
- * ```
- *
- * Rerun an interval Observable on every click event
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { switchMap } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(switchMap((ev) => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link concatMap}
- * @see {@link exhaustMap}
- * @see {@link mergeMap}
- * @see {@link switchAll}
- * @see {@link switchMapTo}
- *
- * @param {function(value: T, ?index: number): ObservableInput} project A function
- * that, when applied to an item emitted by the source Observable, returns an
- * Observable.
- * @return {Observable} An Observable that emits the result of applying the
- * projection function (and the optional deprecated `resultSelector`) to each item
- * emitted by the source Observable and taking only the values from the most recently
- * projected inner Observable.
- * @method switchMap
- * @owner Observable
- */
-export function switchMap<T, R, O extends ObservableInput<any>>(
-  project: (value: T, index: number) => O,
-  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,
-): OperatorFunction<T, ObservedValueOf<O>|R> {
-  if (typeof resultSelector === 'function') {
-    return (source: Observable<T>) => source.pipe(
-      switchMap((a, i) => from(project(a, i)).pipe(
-        map((b, ii) => resultSelector(a, b, i, ii))
-      ))
-    );
-  }
-  return (source: Observable<T>) => source.lift(new SwitchMapOperator(project));
-}
-
-class SwitchMapOperator<T, R> implements Operator<T, R> {
-  constructor(private project: (value: T, index: number) => ObservableInput<R>) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class SwitchMapSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private index: number = 0;
-  private innerSubscription: Subscription;
-
-  constructor(destination: Subscriber<R>,
-              private project: (value: T, index: number) => ObservableInput<R>) {
-    super(destination);
-  }
-
-  protected _next(value: T) {
-    let result: ObservableInput<R>;
-    const index = this.index++;
-    try {
-      result = this.project(value, index);
-    } catch (error) {
-      this.destination.error(error);
-      return;
-    }
-    this._innerSub(result, value, index);
-  }
-
-  private _innerSub(result: ObservableInput<R>, value: T, index: number) {
-    const innerSubscription = this.innerSubscription;
-    if (innerSubscription) {
-      innerSubscription.unsubscribe();
-    }
-    const innerSubscriber = new InnerSubscriber(this, value, index);
-    const destination = this.destination as Subscription;
-    destination.add(innerSubscriber);
-    this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);
-    // The returned subscription will usually be the subscriber that was
-    // passed. However, interop subscribers will be wrapped and for
-    // unsubscriptions to chain correctly, the wrapper needs to be added, too.
-    if (this.innerSubscription !== innerSubscriber) {
-      destination.add(this.innerSubscription);
-    }
-  }
-
-  protected _complete(): void {
-    const {innerSubscription} = this;
-    if (!innerSubscription || innerSubscription.closed) {
-      super._complete();
-    }
-    this.unsubscribe();
-  }
-
-  protected _unsubscribe() {
-    this.innerSubscription = null;
-  }
-
-  notifyComplete(innerSub: Subscription): void {
-    const destination = this.destination as Subscription;
-    destination.remove(innerSub);
-    this.innerSubscription = null;
-    if (this.isStopped) {
-      super._complete();
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-      this.destination.next(innerValue);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/switchMapTo.ts b/node_modules/rxjs/src/internal/operators/switchMapTo.ts
deleted file mode 100644
index 8442474..0000000
--- a/node_modules/rxjs/src/internal/operators/switchMapTo.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction } from '../types';
-import { switchMap } from './switchMap';
-
-/* tslint:disable:max-line-length */
-export function switchMapTo<R>(observable: ObservableInput<R>): OperatorFunction<any, R>;
-/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */
-export function switchMapTo<T, R>(observable: ObservableInput<R>, resultSelector: undefined): OperatorFunction<T, R>;
-/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */
-export function switchMapTo<T, I, R>(observable: ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * Projects each source value to the same Observable which is flattened multiple
- * times with {@link switchMap} in the output Observable.
- *
- * <span class="informal">It's like {@link switchMap}, but maps each value
- * always to the same inner Observable.</span>
- *
- * ![](switchMapTo.png)
- *
- * Maps each source value to the given Observable `innerObservable` regardless
- * of the source value, and then flattens those resulting Observables into one
- * single Observable, which is the output Observable. The output Observables
- * emits values only from the most recently emitted instance of
- * `innerObservable`.
- *
- * ## Example
- * Rerun an interval Observable on every click event
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { switchMapTo } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(switchMapTo(interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link concatMapTo}
- * @see {@link switchAll}
- * @see {@link switchMap}
- * @see {@link mergeMapTo}
- *
- * @param {ObservableInput} innerObservable An Observable to replace each value from
- * the source Observable.
- * @return {Observable} An Observable that emits items from the given
- * `innerObservable` (and optionally transformed through the deprecated `resultSelector`)
- * every time a value is emitted on the source Observable, and taking only the values
- * from the most recently projected inner Observable.
- * @method switchMapTo
- * @owner Observable
- */
-export function switchMapTo<T, I, R>(
-  innerObservable: ObservableInput<I>,
-  resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R
-): OperatorFunction<T, I|R> {
-  return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);
-}
diff --git a/node_modules/rxjs/src/internal/operators/take.ts b/node_modules/rxjs/src/internal/operators/take.ts
deleted file mode 100644
index b43205c..0000000
--- a/node_modules/rxjs/src/internal/operators/take.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Emits only the first `count` values emitted by the source Observable.
- *
- * <span class="informal">Takes the first `count` values from the source, then
- * completes.</span>
- *
- * ![](take.png)
- *
- * `take` returns an Observable that emits only the first `count` values emitted
- * by the source Observable. If the source emits fewer than `count` values then
- * all of its values are emitted. After that, it completes, regardless if the
- * source completes.
- *
- * ## Example
- * Take the first 5 seconds of an infinite 1-second interval Observable
- * ```ts
- * import { interval } from 'rxjs';
- * import { take } from 'rxjs/operators';
- *
- * const intervalCount = interval(1000);
- * const takeFive = intervalCount.pipe(take(5));
- * takeFive.subscribe(x => console.log(x));
- *
- * // Logs:
- * // 0
- * // 1
- * // 2
- * // 3
- * // 4
- * ```
- *
- * @see {@link takeLast}
- * @see {@link takeUntil}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.
- *
- * @param {number} count The maximum number of `next` values to emit.
- * @return {Observable<T>} An Observable that emits only the first `count`
- * values emitted by the source Observable, or all of the values from the source
- * if the source emits fewer than `count` values.
- * @method take
- * @owner Observable
- */
-export function take<T>(count: number): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => {
-    if (count === 0) {
-      return empty();
-    } else {
-      return source.lift(new TakeOperator(count));
-    }
-  };
-}
-
-class TakeOperator<T> implements Operator<T, T> {
-  constructor(private total: number) {
-    if (this.total < 0) {
-      throw new ArgumentOutOfRangeError;
-    }
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new TakeSubscriber(subscriber, this.total));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class TakeSubscriber<T> extends Subscriber<T> {
-  private count: number = 0;
-
-  constructor(destination: Subscriber<T>, private total: number) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const total = this.total;
-    const count = ++this.count;
-    if (count <= total) {
-      this.destination.next(value);
-      if (count === total) {
-        this.destination.complete();
-        this.unsubscribe();
-      }
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/takeLast.ts b/node_modules/rxjs/src/internal/operators/takeLast.ts
deleted file mode 100644
index 5d215f6..0000000
--- a/node_modules/rxjs/src/internal/operators/takeLast.ts
+++ /dev/null
@@ -1,114 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';
-import { empty } from '../observable/empty';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Emits only the last `count` values emitted by the source Observable.
- *
- * <span class="informal">Remembers the latest `count` values, then emits those
- * only when the source completes.</span>
- *
- * ![](takeLast.png)
- *
- * `takeLast` returns an Observable that emits at most the last `count` values
- * emitted by the source Observable. If the source emits fewer than `count`
- * values then all of its values are emitted. This operator must wait until the
- * `complete` notification emission from the source in order to emit the `next`
- * values on the output Observable, because otherwise it is impossible to know
- * whether or not more values will be emitted on the source. For this reason,
- * all values are emitted synchronously, followed by the complete notification.
- *
- * ## Example
- * Take the last 3 values of an Observable with many values
- * ```ts
- * import { range } from 'rxjs';
- * import { takeLast } from 'rxjs/operators';
- *
- * const many = range(1, 100);
- * const lastThree = many.pipe(takeLast(3));
- * lastThree.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link take}
- * @see {@link takeUntil}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an
- * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.
- *
- * @param {number} count The maximum number of values to emit from the end of
- * the sequence of values emitted by the source Observable.
- * @return {Observable<T>} An Observable that emits at most the last count
- * values emitted by the source Observable.
- * @method takeLast
- * @owner Observable
- */
-export function takeLast<T>(count: number): MonoTypeOperatorFunction<T> {
-  return function takeLastOperatorFunction(source: Observable<T>): Observable<T> {
-    if (count === 0) {
-      return empty();
-    } else {
-      return source.lift(new TakeLastOperator(count));
-    }
-  };
-}
-
-class TakeLastOperator<T> implements Operator<T, T> {
-  constructor(private total: number) {
-    if (this.total < 0) {
-      throw new ArgumentOutOfRangeError;
-    }
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class TakeLastSubscriber<T> extends Subscriber<T> {
-  private ring: Array<T> = new Array();
-  private count: number = 0;
-
-  constructor(destination: Subscriber<T>, private total: number) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const ring = this.ring;
-    const total = this.total;
-    const count = this.count++;
-
-    if (ring.length < total) {
-      ring.push(value);
-    } else {
-      const index = count % total;
-      ring[index] = value;
-    }
-  }
-
-  protected _complete(): void {
-    const destination = this.destination;
-    let count = this.count;
-
-    if (count > 0) {
-      const total = this.count >= this.total ? this.total : this.count;
-      const ring  = this.ring;
-
-      for (let i = 0; i < total; i++) {
-        const idx = (count++) % total;
-        destination.next(ring[idx]);
-      }
-    }
-
-    destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/takeUntil.ts b/node_modules/rxjs/src/internal/operators/takeUntil.ts
deleted file mode 100644
index 84ea1c7..0000000
--- a/node_modules/rxjs/src/internal/operators/takeUntil.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-import { MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-/**
- * Emits the values emitted by the source Observable until a `notifier`
- * Observable emits a value.
- *
- * <span class="informal">Lets values pass until a second Observable,
- * `notifier`, emits a value. Then, it completes.</span>
- *
- * ![](takeUntil.png)
- *
- * `takeUntil` subscribes and begins mirroring the source Observable. It also
- * monitors a second Observable, `notifier` that you provide. If the `notifier`
- * emits a value, the output Observable stops mirroring the source Observable
- * and completes. If the `notifier` doesn't emit any value and completes
- * then `takeUntil` will pass all values.
- *
- * ## Example
- * Tick every second until the first click happens
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { takeUntil } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const clicks = fromEvent(document, 'click');
- * const result = source.pipe(takeUntil(clicks));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link take}
- * @see {@link takeLast}
- * @see {@link takeWhile}
- * @see {@link skip}
- *
- * @param {Observable} notifier The Observable whose first emitted value will
- * cause the output Observable of `takeUntil` to stop emitting values from the
- * source Observable.
- * @return {Observable<T>} An Observable that emits the values from the source
- * Observable until such time as `notifier` emits its first value.
- * @method takeUntil
- * @owner Observable
- */
-export function takeUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new TakeUntilOperator(notifier));
-}
-
-class TakeUntilOperator<T> implements Operator<T, T> {
-  constructor(private notifier: Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
-    const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);
-    if (notifierSubscription && !takeUntilSubscriber.seenValue) {
-      takeUntilSubscriber.add(notifierSubscription);
-      return source.subscribe(takeUntilSubscriber);
-    }
-    return takeUntilSubscriber;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class TakeUntilSubscriber<T, R> extends OuterSubscriber<T, R> {
-  seenValue = false;
-
-  constructor(destination: Subscriber<any>, ) {
-    super(destination);
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.seenValue = true;
-    this.complete();
-  }
-
-  notifyComplete(): void {
-    // noop
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/takeWhile.ts b/node_modules/rxjs/src/internal/operators/takeWhile.ts
deleted file mode 100644
index 473169b..0000000
--- a/node_modules/rxjs/src/internal/operators/takeWhile.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types';
-
-export function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;
-export function takeWhile<T, S extends T>(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction<T, S>;
-export function takeWhile<T>(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction<T>;
-
-/**
- * Emits values emitted by the source Observable so long as each value satisfies
- * the given `predicate`, and then completes as soon as this `predicate` is not
- * satisfied.
- *
- * <span class="informal">Takes values from the source only while they pass the
- * condition given. When the first value does not satisfy, it completes.</span>
- *
- * ![](takeWhile.png)
- *
- * `takeWhile` subscribes and begins mirroring the source Observable. Each value
- * emitted on the source is given to the `predicate` function which returns a
- * boolean, representing a condition to be satisfied by the source values. The
- * output Observable emits the source values until such time as the `predicate`
- * returns false, at which point `takeWhile` stops mirroring the source
- * Observable and completes the output Observable.
- *
- * ## Example
- * Emit click events only while the clientX property is greater than 200
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { takeWhile } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link take}
- * @see {@link takeLast}
- * @see {@link takeUntil}
- * @see {@link skip}
- *
- * @param {function(value: T, index: number): boolean} predicate A function that
- * evaluates a value emitted by the source Observable and returns a boolean.
- * Also takes the (zero-based) index as the second argument.
- * @param {boolean} inclusive When set to `true` the value that caused
- * `predicate` to return `false` will also be emitted.
- * @return {Observable<T>} An Observable that emits the values from the source
- * Observable so long as each value satisfies the condition defined by the
- * `predicate`, then completes.
- * @method takeWhile
- * @owner Observable
- */
-export function takeWhile<T>(
-    predicate: (value: T, index: number) => boolean,
-    inclusive = false): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) =>
-             source.lift(new TakeWhileOperator(predicate, inclusive));
-}
-
-class TakeWhileOperator<T> implements Operator<T, T> {
-  constructor(
-      private predicate: (value: T, index: number) => boolean,
-      private inclusive: boolean) {}
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(
-        new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class TakeWhileSubscriber<T> extends Subscriber<T> {
-  private index: number = 0;
-
-  constructor(
-      destination: Subscriber<T>,
-      private predicate: (value: T, index: number) => boolean,
-      private inclusive: boolean) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    const destination = this.destination;
-    let result: boolean;
-    try {
-      result = this.predicate(value, this.index++);
-    } catch (err) {
-      destination.error(err);
-      return;
-    }
-    this.nextOrComplete(value, result);
-  }
-
-  private nextOrComplete(value: T, predicateResult: boolean): void {
-    const destination = this.destination;
-    if (Boolean(predicateResult)) {
-      destination.next(value);
-    } else {
-      if (this.inclusive) {
-        destination.next(value);
-      }
-      destination.complete();
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/tap.ts b/node_modules/rxjs/src/internal/operators/tap.ts
deleted file mode 100644
index 57087a0..0000000
--- a/node_modules/rxjs/src/internal/operators/tap.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { MonoTypeOperatorFunction, PartialObserver, TeardownLogic } from '../types';
-import { noop } from '../util/noop';
-import { isFunction } from '../util/isFunction';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Use an observer instead of a complete callback */
-export function tap<T>(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;
-/** @deprecated Use an observer instead of an error callback */
-export function tap<T>(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;
-/** @deprecated Use an observer instead of a complete callback */
-export function tap<T>(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction<T>;
-export function tap<T>(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction<T>;
-export function tap<T>(observer: PartialObserver<T>): MonoTypeOperatorFunction<T>;
-/* tslint:enable:max-line-length */
-
-/**
- * Perform a side effect for every emission on the source Observable, but return
- * an Observable that is identical to the source.
- *
- * <span class="informal">Intercepts each emission on the source and runs a
- * function, but returns an output which is identical to the source as long as errors don't occur.</span>
- *
- * ![](do.png)
- *
- * Returns a mirrored Observable of the source Observable, but modified so that
- * the provided Observer is called to perform a side effect for every value,
- * error, and completion emitted by the source. Any errors that are thrown in
- * the aforementioned Observer or handlers are safely sent down the error path
- * of the output Observable.
- *
- * This operator is useful for debugging your Observables for the correct values
- * or performing other side effects.
- *
- * Note: this is different to a `subscribe` on the Observable. If the Observable
- * returned by `tap` is not subscribed, the side effects specified by the
- * Observer will never happen. `tap` therefore simply spies on existing
- * execution, it does not trigger an execution to happen like `subscribe` does.
- *
- * ## Example
- * Map every click to the clientX position of that click, while also logging the click event
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { tap, map } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const positions = clicks.pipe(
- *   tap(ev => console.log(ev)),
- *   map(ev => ev.clientX),
- * );
- * positions.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link map}
- * @see {@link Observable#subscribe}
- *
- * @param {Observer|function} [nextOrObserver] A normal Observer object or a
- * callback for `next`.
- * @param {function} [error] Callback for errors in the source.
- * @param {function} [complete] Callback for the completion of the source.
- * @return {Observable} An Observable identical to the source, but runs the
- * specified Observer or callback(s) for each item.
- * @name tap
- */
-export function tap<T>(nextOrObserver?: PartialObserver<T> | ((x: T) => void),
-                       error?: (e: any) => void,
-                       complete?: () => void): MonoTypeOperatorFunction<T> {
-  return function tapOperatorFunction(source: Observable<T>): Observable<T> {
-    return source.lift(new DoOperator(nextOrObserver, error, complete));
-  };
-}
-
-class DoOperator<T> implements Operator<T, T> {
-  constructor(private nextOrObserver?: PartialObserver<T> | ((x: T) => void),
-              private error?: (e: any) => void,
-              private complete?: () => void) {
-  }
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-
-class TapSubscriber<T> extends Subscriber<T> {
-  private _context: any;
-
-  private _tapNext: ((value: T) => void) = noop;
-
-  private _tapError: ((err: any) => void) = noop;
-
-  private _tapComplete: (() => void) = noop;
-
-  constructor(destination: Subscriber<T>,
-              observerOrNext?: PartialObserver<T> | ((value: T) => void),
-              error?: (e?: any) => void,
-              complete?: () => void) {
-      super(destination);
-      this._tapError = error || noop;
-      this._tapComplete = complete || noop;
-      if (isFunction(observerOrNext)) {
-        this._context = this;
-        this._tapNext = observerOrNext;
-      } else if (observerOrNext) {
-        this._context = observerOrNext;
-        this._tapNext = observerOrNext.next || noop;
-        this._tapError = observerOrNext.error || noop;
-        this._tapComplete = observerOrNext.complete || noop;
-      }
-    }
-
-  _next(value: T) {
-    try {
-      this._tapNext.call(this._context, value);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.next(value);
-  }
-
-  _error(err: any) {
-    try {
-      this._tapError.call(this._context, err);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.error(err);
-  }
-
-  _complete() {
-    try {
-      this._tapComplete.call(this._context, );
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    return this.destination.complete();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/throttle.ts b/node_modules/rxjs/src/internal/operators/throttle.ts
deleted file mode 100644
index e855ff0..0000000
--- a/node_modules/rxjs/src/internal/operators/throttle.ts
+++ /dev/null
@@ -1,163 +0,0 @@
-import { Operator } from '../Operator';
-import { Observable } from '../Observable';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-
-import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types';
-
-export interface ThrottleConfig {
-  leading?: boolean;
-  trailing?: boolean;
-}
-
-export const defaultThrottleConfig: ThrottleConfig = {
-  leading: true,
-  trailing: false
-};
-
-/**
- * Emits a value from the source Observable, then ignores subsequent source
- * values for a duration determined by another Observable, then repeats this
- * process.
- *
- * <span class="informal">It's like {@link throttleTime}, but the silencing
- * duration is determined by a second Observable.</span>
- *
- * ![](throttle.png)
- *
- * `throttle` emits the source Observable values on the output Observable
- * when its internal timer is disabled, and ignores source values when the timer
- * is enabled. Initially, the timer is disabled. As soon as the first source
- * value arrives, it is forwarded to the output Observable, and then the timer
- * is enabled by calling the `durationSelector` function with the source value,
- * which returns the "duration" Observable. When the duration Observable emits a
- * value or completes, the timer is disabled, and this process repeats for the
- * next source value.
- *
- * ## Example
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { throttle } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(throttle(ev => interval(1000)));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link audit}
- * @see {@link debounce}
- * @see {@link delayWhen}
- * @see {@link sample}
- * @see {@link throttleTime}
- *
- * @param {function(value: T): SubscribableOrPromise} durationSelector A function
- * that receives a value from the source Observable, for computing the silencing
- * duration for each source value, returned as an Observable or a Promise.
- * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults
- * to `{ leading: true, trailing: false }`.
- * @return {Observable<T>} An Observable that performs the throttle operation to
- * limit the rate of emissions from the source.
- * @method throttle
- * @owner Observable
- */
-export function throttle<T>(durationSelector: (value: T) => SubscribableOrPromise<any>,
-                            config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing));
-}
-
-class ThrottleOperator<T> implements Operator<T, T> {
-  constructor(private durationSelector: (value: T) => SubscribableOrPromise<any>,
-              private leading: boolean,
-              private trailing: boolean) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(
-      new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)
-    );
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc
- * @ignore
- * @extends {Ignored}
- */
-class ThrottleSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private _throttled: Subscription;
-  private _sendValue: T;
-  private _hasValue = false;
-
-  constructor(protected destination: Subscriber<T>,
-              private durationSelector: (value: T) => SubscribableOrPromise<number>,
-              private _leading: boolean,
-              private _trailing: boolean) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    this._hasValue = true;
-    this._sendValue = value;
-
-    if (!this._throttled) {
-      if (this._leading) {
-        this.send();
-      } else {
-        this.throttle(value);
-      }
-    }
-  }
-
-  private send() {
-    const { _hasValue, _sendValue } = this;
-    if (_hasValue) {
-      this.destination.next(_sendValue);
-      this.throttle(_sendValue);
-    }
-    this._hasValue = false;
-    this._sendValue = null;
-  }
-
-  private throttle(value: T): void {
-    const duration = this.tryDurationSelector(value);
-    if (!!duration) {
-      this.add(this._throttled = subscribeToResult(this, duration));
-    }
-  }
-
-  private tryDurationSelector(value: T): SubscribableOrPromise<any> {
-    try {
-      return this.durationSelector(value);
-    } catch (err) {
-      this.destination.error(err);
-      return null;
-    }
-  }
-
-  private throttlingDone() {
-    const { _throttled, _trailing } = this;
-    if (_throttled) {
-      _throttled.unsubscribe();
-    }
-    this._throttled = null;
-
-    if (_trailing) {
-      this.send();
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.throttlingDone();
-  }
-
-  notifyComplete(): void {
-    this.throttlingDone();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/throttleTime.ts b/node_modules/rxjs/src/internal/operators/throttleTime.ts
deleted file mode 100644
index baed778..0000000
--- a/node_modules/rxjs/src/internal/operators/throttleTime.ts
+++ /dev/null
@@ -1,174 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { async } from '../scheduler/async';
-import { Observable } from '../Observable';
-import { ThrottleConfig, defaultThrottleConfig } from './throttle';
-import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types';
-
-/**
- * Emits a value from the source Observable, then ignores subsequent source
- * values for `duration` milliseconds, then repeats this process.
- *
- * <span class="informal">Lets a value pass, then ignores source values for the
- * next `duration` milliseconds.</span>
- *
- * ![](throttleTime.png)
- *
- * `throttleTime` emits the source Observable values on the output Observable
- * when its internal timer is disabled, and ignores source values when the timer
- * is enabled. Initially, the timer is disabled. As soon as the first source
- * value arrives, it is forwarded to the output Observable, and then the timer
- * is enabled. After `duration` milliseconds (or the time unit determined
- * internally by the optional `scheduler`) has passed, the timer is disabled,
- * and this process repeats for the next source value. Optionally takes a
- * {@link SchedulerLike} for managing timers.
- *
- * ## Examples
- *
- * #### Limit click rate
- *
- * Emit clicks at a rate of at most one click per second
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { throttleTime } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(throttleTime(1000));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * #### Double Click
- *
- * The following example only emits clicks which happen within a subsequent
- * delay of 400ms of the previous click. This for example can emulate a double
- * click. It makes use of the `trailing` parameter of the throttle configuration.
- *
- * ```ts
- * import { fromEvent, asyncScheduler } from 'rxjs';
- * import { throttleTime, withLatestFrom } from 'rxjs/operators';
- *
- * // defaultThottleConfig = { leading: true, trailing: false }
- * const throttleConfig = {
- *   leading: false,
- *   trailing: true
- * }
- *
- * const click = fromEvent(document, 'click');
- * const doubleClick = click.pipe(
- *   throttleTime(400, asyncScheduler, throttleConfig)
- * );
- *
- * doubleClick.subscribe((throttleValue: Event) => {
- *   console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);
- * });
- * ```
- *
- * If you enable the `leading` parameter in this example, the output would be the primary click and
- * the double click, but restricts additional clicks within 400ms.
- *
- * @see {@link auditTime}
- * @see {@link debounceTime}
- * @see {@link delay}
- * @see {@link sampleTime}
- * @see {@link throttle}
- *
- * @param {number} duration Time to wait before emitting another value after
- * emitting the last value, measured in milliseconds or the time unit determined
- * internally by the optional `scheduler`.
- * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for
- * managing the timers that handle the throttling.
- * @param {Object} config a configuration object to define `leading` and
- * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`.
- * @return {Observable<T>} An Observable that performs the throttle operation to
- * limit the rate of emissions from the source.
- * @method throttleTime
- * @owner Observable
- */
-export function throttleTime<T>(duration: number,
-                                scheduler: SchedulerLike = async,
-                                config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));
-}
-
-class ThrottleTimeOperator<T> implements Operator<T, T> {
-  constructor(private duration: number,
-              private scheduler: SchedulerLike,
-              private leading: boolean,
-              private trailing: boolean) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(
-      new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)
-    );
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class ThrottleTimeSubscriber<T> extends Subscriber<T> {
-  private throttled: Subscription;
-  private _hasTrailingValue: boolean = false;
-  private _trailingValue: T = null;
-
-  constructor(destination: Subscriber<T>,
-              private duration: number,
-              private scheduler: SchedulerLike,
-              private leading: boolean,
-              private trailing: boolean) {
-    super(destination);
-  }
-
-  protected _next(value: T) {
-    if (this.throttled) {
-      if (this.trailing) {
-        this._trailingValue = value;
-        this._hasTrailingValue = true;
-      }
-    } else {
-      this.add(this.throttled = this.scheduler.schedule<DispatchArg<T>>(dispatchNext, this.duration, { subscriber: this }));
-      if (this.leading) {
-        this.destination.next(value);
-      } else if (this.trailing) {
-        this._trailingValue = value;
-        this._hasTrailingValue = true;
-      }
-    }
-  }
-
-  protected _complete() {
-    if (this._hasTrailingValue) {
-      this.destination.next(this._trailingValue);
-      this.destination.complete();
-    } else {
-      this.destination.complete();
-    }
-  }
-
-  clearThrottle() {
-    const throttled = this.throttled;
-    if (throttled) {
-      if (this.trailing && this._hasTrailingValue) {
-        this.destination.next(this._trailingValue);
-        this._trailingValue = null;
-        this._hasTrailingValue = false;
-      }
-      throttled.unsubscribe();
-      this.remove(throttled);
-      this.throttled = null;
-    }
-  }
-}
-
-interface DispatchArg<T> {
-  subscriber: ThrottleTimeSubscriber<T>;
-}
-
-function dispatchNext<T>(arg: DispatchArg<T>) {
-  const { subscriber } = arg;
-  subscriber.clearThrottle();
-}
diff --git a/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts b/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts
deleted file mode 100644
index 7f39c4e..0000000
--- a/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import { EmptyError } from '../util/EmptyError';
-import { Observable } from '../Observable';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { TeardownLogic, MonoTypeOperatorFunction } from '../types';
-
-/**
- * If the source observable completes without emitting a value, it will emit
- * an error. The error will be created at that time by the optional
- * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.
- *
- * ![](throwIfEmpty.png)
- *
- * ## Example
- * ```ts
- * import { fromEvent, timer } from 'rxjs';
- * import { throwIfEmpty, takeUntil } from 'rxjs/operators';
- *
- * const click$ = fromEvent(document, 'click');
- *
- * click$.pipe(
- *   takeUntil(timer(1000)),
- *   throwIfEmpty(
- *     () => new Error('the document was not clicked within 1 second')
- *   ),
- * )
- * .subscribe({
- *   next() { console.log('The button was clicked'); },
- *   error(err) { console.error(err); }
- * });
- * ```
- *
- * @param errorFactory A factory function called to produce the
- * error to be thrown when the source observable completes without emitting a
- * value.
- */
-export function throwIfEmpty <T>(errorFactory: (() => any) = defaultErrorFactory): MonoTypeOperatorFunction<T> {
-  return (source: Observable<T>) => {
-    return source.lift(new ThrowIfEmptyOperator(errorFactory));
-  };
-}
-
-class ThrowIfEmptyOperator<T> implements Operator<T, T> {
-  constructor(private errorFactory: () => any) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));
-  }
-}
-
-class ThrowIfEmptySubscriber<T> extends Subscriber<T> {
-  private hasValue: boolean = false;
-
-  constructor(destination: Subscriber<T>, private errorFactory: () => any) {
-    super(destination);
-  }
-
-  protected _next(value: T): void {
-    this.hasValue = true;
-    this.destination.next(value);
-  }
-
-  protected _complete() {
-    if (!this.hasValue) {
-      let err: any;
-      try {
-        err = this.errorFactory();
-      } catch (e) {
-        err = e;
-      }
-      this.destination.error(err);
-    } else {
-        return this.destination.complete();
-    }
-  }
-}
-
-function defaultErrorFactory() {
-  return new EmptyError();
-}
diff --git a/node_modules/rxjs/src/internal/operators/timeInterval.ts b/node_modules/rxjs/src/internal/operators/timeInterval.ts
deleted file mode 100644
index 02e77ce..0000000
--- a/node_modules/rxjs/src/internal/operators/timeInterval.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-
-import { Observable } from '../Observable';
-import { async } from '../scheduler/async';
-import { SchedulerLike, OperatorFunction } from '../types';
-import { scan } from './scan';
-import { defer } from '../observable/defer';
-import { map } from './map';
-
-/**
- *
- * Emits an object containing the current value, and the time that has
- * passed between emitting the current value and the previous value, which is
- * calculated by using the provided `scheduler`'s `now()` method to retrieve
- * the current time at each emission, then calculating the difference. The `scheduler`
- * defaults to {@link asyncScheduler}, so by default, the `interval` will be in
- * milliseconds.
- *
- * <span class="informal">Convert an Observable that emits items into one that
- * emits indications of the amount of time elapsed between those emissions.</span>
- *
- * ![](timeinterval.png)
- *
- * ## Examples
- * Emit inteval between current value with the last value
- *
- * ```ts
- * const seconds = interval(1000);
- *
- * seconds.pipe(timeInterval())
- * .subscribe(
- *     value => console.log(value),
- *     err => console.log(err),
- * );
- *
- * seconds.pipe(timeout(900))
- * .subscribe(
- *     value => console.log(value),
- *     err => console.log(err),
- * );
- *
- * // NOTE: The values will never be this precise,
- * // intervals created with `interval` or `setInterval`
- * // are non-deterministic.
- *
- * // {value: 0, interval: 1000}
- * // {value: 1, interval: 1000}
- * // {value: 2, interval: 1000}
- * ```
- *
- * @param {SchedulerLike} [scheduler] Scheduler used to get the current time.
- * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval
- * @method timeInterval
- */
-export function timeInterval<T>(scheduler: SchedulerLike = async): OperatorFunction<T, TimeInterval<T>> {
-  return (source: Observable<T>) => defer(() => {
-    return source.pipe(
-      // TODO(benlesh): correct these typings.
-      scan(
-        ({ current }, value) => ({ value, current: scheduler.now(), last: current }),
-        { current: scheduler.now(), value: undefined,  last: undefined }
-      ) as any,
-      map<any, TimeInterval<T>>(({ current, last, value }) => new TimeInterval(value, current - last)),
-    );
-  });
-}
-
-// TODO(benlesh): make this an interface, export the interface, but not the implemented class,
-// there's no reason users should be manually creating this type.
-
-/**
- * @deprecated exposed API, use as interface only.
- */
-export class TimeInterval<T> {
-  constructor(public value: T, public interval: number) {}
-}
diff --git a/node_modules/rxjs/src/internal/operators/timeout.ts b/node_modules/rxjs/src/internal/operators/timeout.ts
deleted file mode 100644
index b049e73..0000000
--- a/node_modules/rxjs/src/internal/operators/timeout.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import { async } from '../scheduler/async';
-import { isDate } from '../util/isDate';
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { TimeoutError } from '../util/TimeoutError';
-import { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-import { timeoutWith } from './timeoutWith';
-import { throwError } from '../observable/throwError';
-
-/**
- *
- * Errors if Observable does not emit a value in given time span.
- *
- * <span class="informal">Timeouts on Observable that doesn't emit values fast enough.</span>
- *
- * ![](timeout.png)
- *
- * `timeout` operator accepts as an argument either a number or a Date.
- *
- * If number was provided, it returns an Observable that behaves like a source
- * Observable, unless there is a period of time where there is no value emitted.
- * So if you provide `100` as argument and first value comes after 50ms from
- * the moment of subscription, this value will be simply re-emitted by the resulting
- * Observable. If however after that 100ms passes without a second value being emitted,
- * stream will end with an error and source Observable will be unsubscribed.
- * These checks are performed throughout whole lifecycle of Observable - from the moment
- * it was subscribed to, until it completes or errors itself. Thus every value must be
- * emitted within specified period since previous value.
- *
- * If provided argument was Date, returned Observable behaves differently. It throws
- * if Observable did not complete before provided Date. This means that periods between
- * emission of particular values do not matter in this case. If Observable did not complete
- * before provided Date, source Observable will be unsubscribed. Other than that, resulting
- * stream behaves just as source Observable.
- *
- * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments)
- * when returned Observable will check if source stream emitted value or completed.
- *
- * ## Examples
- * Check if ticks are emitted within certain timespan
- * ```ts
- * import { interval } from 'rxjs';
- * import { timeout } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- *
- * seconds.pipe(timeout(1100))      // Let's use bigger timespan to be safe,
- *                                  // since `interval` might fire a bit later then scheduled.
- * .subscribe(
- *     value => console.log(value), // Will emit numbers just as regular `interval` would.
- *     err => console.log(err),     // Will never be called.
- * );
- *
- * seconds.pipe(timeout(900))
- * .subscribe(
- *     value => console.log(value), // Will never be called.
- *     err => console.log(err),     // Will emit error before even first value is emitted,
- *                                  // since it did not arrive within 900ms period.
- * );
- * ```
- *
- * Use Date to check if Observable completed
- * ```ts
- * import { interval } from 'rxjs';
- * import { timeout } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- *
- * seconds.pipe(
- *   timeout(new Date("December 17, 2020 03:24:00")),
- * )
- * .subscribe(
- *     value => console.log(value), // Will emit values as regular `interval` would
- *                                  // until December 17, 2020 at 03:24:00.
- *     err => console.log(err)      // On December 17, 2020 at 03:24:00 it will emit an error,
- *                                  // since Observable did not complete by then.
- * );
- * ```
- * @see {@link timeoutWith}
- *
- * @param {number|Date} due Number specifying period within which Observable must emit values
- *                          or Date specifying before when Observable should complete
- * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.
- * @return {Observable<T>} Observable that mirrors behaviour of source, unless timeout checks fail.
- * @method timeout
- * @owner Observable
- */
-export function timeout<T>(due: number | Date,
-                           scheduler: SchedulerLike = async): MonoTypeOperatorFunction<T> {
-  return timeoutWith(due, throwError(new TimeoutError()), scheduler);
-}
diff --git a/node_modules/rxjs/src/internal/operators/timeoutWith.ts b/node_modules/rxjs/src/internal/operators/timeoutWith.ts
deleted file mode 100644
index 753b167..0000000
--- a/node_modules/rxjs/src/internal/operators/timeoutWith.ts
+++ /dev/null
@@ -1,144 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { async } from '../scheduler/async';
-import { Observable } from '../Observable';
-import { isDate } from '../util/isDate';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types';
-
-/* tslint:disable:max-line-length */
-export function timeoutWith<T, R>(due: number | Date, withObservable: ObservableInput<R>, scheduler?: SchedulerLike): OperatorFunction<T, T | R>;
-/* tslint:enable:max-line-length */
-
-/**
- *
- * Errors if Observable does not emit a value in given time span, in case of which
- * subscribes to the second Observable.
- *
- * <span class="informal">It's a version of `timeout` operator that let's you specify fallback Observable.</span>
- *
- * ![](timeoutWith.png)
- *
- * `timeoutWith` is a variation of `timeout` operator. It behaves exactly the same,
- * still accepting as a first argument either a number or a Date, which control - respectively -
- * when values of source Observable should be emitted or when it should complete.
- *
- * The only difference is that it accepts a second, required parameter. This parameter
- * should be an Observable which will be subscribed when source Observable fails any timeout check.
- * So whenever regular `timeout` would emit an error, `timeoutWith` will instead start re-emitting
- * values from second Observable. Note that this fallback Observable is not checked for timeouts
- * itself, so it can emit values and complete at arbitrary points in time. From the moment of a second
- * subscription, Observable returned from `timeoutWith` simply mirrors fallback stream. When that
- * stream completes, it completes as well.
- *
- * Scheduler, which in case of `timeout` is provided as as second argument, can be still provided
- * here - as a third, optional parameter. It still is used to schedule timeout checks and -
- * as a consequence - when second Observable will be subscribed, since subscription happens
- * immediately after failing check.
- *
- * ## Example
- * Add fallback observable
- * ```ts
- * import { intrerval } from 'rxjs';
- * import { timeoutWith } from 'rxjs/operators';
- *
- * const seconds = interval(1000);
- * const minutes = interval(60 * 1000);
- *
- * seconds.pipe(timeoutWith(900, minutes))
- *   .subscribe(
- *     value => console.log(value), // After 900ms, will start emitting `minutes`,
- *                                  // since first value of `seconds` will not arrive fast enough.
- *     err => console.log(err),     // Would be called after 900ms in case of `timeout`,
- *                                  // but here will never be called.
- *   );
- * ```
- *
- * @param {number|Date} due Number specifying period within which Observable must emit values
- *                          or Date specifying before when Observable should complete
- * @param {Observable<T>} withObservable Observable which will be subscribed if source fails timeout check.
- * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur.
- * @return {Observable<T>} Observable that mirrors behaviour of source or, when timeout check fails, of an Observable
- *                          passed as a second parameter.
- * @method timeoutWith
- * @owner Observable
- */
-export function timeoutWith<T, R>(due: number | Date,
-                                  withObservable: ObservableInput<R>,
-                                  scheduler: SchedulerLike = async): OperatorFunction<T, T | R> {
-  return (source: Observable<T>) => {
-    let absoluteTimeout = isDate(due);
-    let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(<number>due);
-    return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
-  };
-}
-
-class TimeoutWithOperator<T> implements Operator<T, T> {
-  constructor(private waitFor: number,
-              private absoluteTimeout: boolean,
-              private withObservable: ObservableInput<any>,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<T>, source: any): TeardownLogic {
-    return source.subscribe(new TimeoutWithSubscriber(
-      subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler
-    ));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class TimeoutWithSubscriber<T, R> extends OuterSubscriber<T, R> {
-
-  private action: SchedulerAction<TimeoutWithSubscriber<T, R>> = null;
-
-  constructor(destination: Subscriber<T>,
-              private absoluteTimeout: boolean,
-              private waitFor: number,
-              private withObservable: ObservableInput<any>,
-              private scheduler: SchedulerLike) {
-    super(destination);
-    this.scheduleTimeout();
-  }
-
-  private static dispatchTimeout<T, R>(subscriber: TimeoutWithSubscriber<T, R>): void {
-    const { withObservable } = subscriber;
-    (<any> subscriber)._unsubscribeAndRecycle();
-    subscriber.add(subscribeToResult(subscriber, withObservable));
-  }
-
-  private scheduleTimeout(): void {
-    const { action } = this;
-    if (action) {
-      // Recycle the action if we've already scheduled one. All the production
-      // Scheduler Actions mutate their state/delay time and return themeselves.
-      // VirtualActions are immutable, so they create and return a clone. In this
-      // case, we need to set the action reference to the most recent VirtualAction,
-      // to ensure that's the one we clone from next time.
-      this.action = (<SchedulerAction<TimeoutWithSubscriber<T, R>>> action.schedule(this, this.waitFor));
-    } else {
-      this.add(this.action = (<SchedulerAction<TimeoutWithSubscriber<T, R>>> this.scheduler.schedule<TimeoutWithSubscriber<T, R>>(
-        TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this
-      )));
-    }
-  }
-
-  protected _next(value: T): void {
-    if (!this.absoluteTimeout) {
-      this.scheduleTimeout();
-    }
-    super._next(value);
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    this.action = null;
-    this.scheduler = null;
-    this.withObservable = null;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/timestamp.ts b/node_modules/rxjs/src/internal/operators/timestamp.ts
deleted file mode 100644
index d4061c8..0000000
--- a/node_modules/rxjs/src/internal/operators/timestamp.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-
-import { async } from '../scheduler/async';
-import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types';
-import { map } from './map';
-
-/**
- * Attaches a timestamp to each item emitted by an observable indicating when it was emitted
- *
- * The `timestamp` operator maps the *source* observable stream to an object of type
- * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value
- * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By
- * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01
- * 00:00:00:000) and therefore is of type `number`.
- *
- * ![](timestamp.png)
- *
- * ## Example
- *
- * In this example there is a timestamp attached to the documents click event.
- *
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { timestamp } from 'rxjs/operators';
- *
- * const clickWithTimestamp = fromEvent(document, 'click').pipe(
- *   timestamp()
- * );
- *
- * // Emits data of type {value: MouseEvent, timestamp: number}
- * clickWithTimestamp.subscribe(data => {
- *   console.log(data);
- * });
- * ```
- *
- * @param scheduler
- * @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>}
- * @method timestamp
- * @owner Observable
- */
-export function timestamp<T>(scheduler: SchedulerLike = async): OperatorFunction<T, Timestamp<T>> {
-  return map((value: T) => new Timestamp(value, scheduler.now()));
-  // return (source: Observable<T>) => source.lift(new TimestampOperator(scheduler));
-}
-
-export class Timestamp<T> implements TimestampInterface<T> {
-  constructor(public value: T, public timestamp: number) {
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/toArray.ts b/node_modules/rxjs/src/internal/operators/toArray.ts
deleted file mode 100644
index 40d0560..0000000
--- a/node_modules/rxjs/src/internal/operators/toArray.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { reduce } from './reduce';
-import { OperatorFunction } from '../types';
-
-function toArrayReducer<T>(arr: T[], item: T, index: number) {
-  if (index === 0) {
-    return [item];
-  }
-  arr.push(item);
-  return arr;
-}
-
-/**
- * Collects all source emissions and emits them as an array when the source completes.
- *
- * <span class="informal">Get all values inside an array when the source completes</span>
- *
- * ![](toArray.png)
- *
- * `toArray` will wait until the source Observable completes before emitting
- * the array containing all emissions. When the source Observable errors no
- * array will be emitted.
- *
- *  ## Example
- * ```ts
- * import { interval } from 'rxjs';
- * import { toArray, take } from 'rxjs/operators';
- *
- * const source = interval(1000);
- * const example = source.pipe(
- *   take(10),
- *   toArray()
- * );
- *
- * const subscribe = example.subscribe(val => console.log(val));
- *
- * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- *
- * ```
-* @return An array from an observable sequence.
-* @method toArray
-* @owner Observable
-*/
-export function toArray<T>(): OperatorFunction<T, T[]> {
-  return reduce(toArrayReducer, [] as T[]);
-}
diff --git a/node_modules/rxjs/src/internal/operators/window.ts b/node_modules/rxjs/src/internal/operators/window.ts
deleted file mode 100644
index f373dbc..0000000
--- a/node_modules/rxjs/src/internal/operators/window.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import { Observable } from '../Observable';
-import { OperatorFunction } from '../types';
-import { Subject } from '../Subject';
-import { Subscriber } from '../Subscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { Operator } from '../Operator';
-
-/**
- * Branch out the source Observable values as a nested Observable whenever
- * `windowBoundaries` emits.
- *
- * <span class="informal">It's like {@link buffer}, but emits a nested Observable
- * instead of an array.</span>
- *
- * ![](window.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits connected, non-overlapping
- * windows. It emits the current window and opens a new one whenever the
- * Observable `windowBoundaries` emits an item. Because each window is an
- * Observable, the output is a higher-order Observable.
- *
- * ## Example
- * In every window of 1 second each, emit at most 2 click events
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { window, mergeAll, map, take } from 'rxjs/operators';
- *
- *  const clicks = fromEvent(document, 'click');
- *  const sec = interval(1000);
- *  const result = clicks.pipe(
- *      window(sec),
- *      map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *      mergeAll(),              // flatten the Observable-of-Observables
- *  );
- *  result.subscribe(x => console.log(x));
- * ```
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link buffer}
- *
- * @param {Observable<any>} windowBoundaries An Observable that completes the
- * previous window and starts a new window.
- * @return {Observable<Observable<T>>} An Observable of windows, which are
- * Observables emitting values of the source Observable.
- * @method window
- * @owner Observable
- */
-export function window<T>(windowBoundaries: Observable<any>): OperatorFunction<T, Observable<T>> {
-  return function windowOperatorFunction(source: Observable<T>) {
-    return source.lift(new WindowOperator(windowBoundaries));
-  };
-}
-
-class WindowOperator<T> implements Operator<T, Observable<T>> {
-
-  constructor(private windowBoundaries: Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<Observable<T>>, source: any): any {
-    const windowSubscriber = new WindowSubscriber(subscriber);
-    const sourceSubscription = source.subscribe(windowSubscriber);
-    if (!sourceSubscription.closed) {
-      windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));
-    }
-    return sourceSubscription;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WindowSubscriber<T> extends OuterSubscriber<T, any> {
-
-  private window: Subject<T> = new Subject<T>();
-
-  constructor(destination: Subscriber<Observable<T>>) {
-    super(destination);
-    destination.next(this.window);
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, any>): void {
-    this.openWindow();
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, any>): void {
-    this._error(error);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, any>): void {
-    this._complete();
-  }
-
-  protected _next(value: T): void {
-    this.window.next(value);
-  }
-
-  protected _error(err: any): void {
-    this.window.error(err);
-    this.destination.error(err);
-  }
-
-  protected _complete(): void {
-    this.window.complete();
-    this.destination.complete();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    this.window = null;
-  }
-
-  private openWindow(): void  {
-    const prevWindow = this.window;
-    if (prevWindow) {
-      prevWindow.complete();
-    }
-    const destination = this.destination;
-    const newWindow = this.window = new Subject<T>();
-    destination.next(newWindow);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/windowCount.ts b/node_modules/rxjs/src/internal/operators/windowCount.ts
deleted file mode 100644
index cccfd35..0000000
--- a/node_modules/rxjs/src/internal/operators/windowCount.ts
+++ /dev/null
@@ -1,149 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { OperatorFunction } from '../types';
-
-/**
- * Branch out the source Observable values as a nested Observable with each
- * nested Observable emitting at most `windowSize` values.
- *
- * <span class="informal">It's like {@link bufferCount}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowCount.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits windows every `startWindowEvery`
- * items, each containing no more than `windowSize` items. When the source
- * Observable completes or encounters an error, the output Observable emits
- * the current window and propagates the notification from the source
- * Observable. If `startWindowEvery` is not provided, then new windows are
- * started immediately at the start of the source and when each window completes
- * with size `windowSize`.
- *
- * ## Examples
- * Ignore every 3rd click event, starting from the first one
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowCount, map, mergeAll, skip } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowCount(3),
- *   map(win => win.pipe(skip(1))), // skip first of every 3 clicks
- *   mergeAll()                     // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Ignore every 3rd click event, starting from the third one
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowCount, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowCount(2, 3),
- *   mergeAll(),              // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link bufferCount}
- *
- * @param {number} windowSize The maximum number of values emitted by each
- * window.
- * @param {number} [startWindowEvery] Interval at which to start a new window.
- * For example if `startWindowEvery` is `2`, then a new window will be started
- * on every other value from the source. A new window is started at the
- * beginning of the source by default.
- * @return {Observable<Observable<T>>} An Observable of windows, which in turn
- * are Observable of values.
- * @method windowCount
- * @owner Observable
- */
-export function windowCount<T>(windowSize: number,
-                               startWindowEvery: number = 0): OperatorFunction<T, Observable<T>> {
-  return function windowCountOperatorFunction(source: Observable<T>) {
-    return source.lift(new WindowCountOperator<T>(windowSize, startWindowEvery));
-  };
-}
-
-class WindowCountOperator<T> implements Operator<T, Observable<T>> {
-
-  constructor(private windowSize: number,
-              private startWindowEvery: number) {
-  }
-
-  call(subscriber: Subscriber<Observable<T>>, source: any): any {
-    return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WindowCountSubscriber<T> extends Subscriber<T> {
-  private windows: Subject<T>[] = [ new Subject<T>() ];
-  private count: number = 0;
-
-  constructor(protected destination: Subscriber<Observable<T>>,
-              private windowSize: number,
-              private startWindowEvery: number) {
-    super(destination);
-    destination.next(this.windows[0]);
-  }
-
-  protected _next(value: T) {
-    const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
-    const destination = this.destination;
-    const windowSize = this.windowSize;
-    const windows = this.windows;
-    const len = windows.length;
-
-    for (let i = 0; i < len && !this.closed; i++) {
-      windows[i].next(value);
-    }
-    const c = this.count - windowSize + 1;
-    if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
-      windows.shift().complete();
-    }
-    if (++this.count % startWindowEvery === 0 && !this.closed) {
-      const window = new Subject<T>();
-      windows.push(window);
-      destination.next(window);
-    }
-  }
-
-  protected _error(err: any) {
-    const windows = this.windows;
-    if (windows) {
-      while (windows.length > 0 && !this.closed) {
-        windows.shift().error(err);
-      }
-    }
-    this.destination.error(err);
-  }
-
-  protected _complete() {
-    const windows = this.windows;
-    if (windows) {
-      while (windows.length > 0 && !this.closed) {
-        windows.shift().complete();
-      }
-    }
-    this.destination.complete();
-  }
-
-  protected _unsubscribe() {
-    this.count = 0;
-    this.windows = null;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/windowTime.ts b/node_modules/rxjs/src/internal/operators/windowTime.ts
deleted file mode 100644
index 46c1252..0000000
--- a/node_modules/rxjs/src/internal/operators/windowTime.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-import { Subject } from '../Subject';
-import { Operator } from '../Operator';
-import { async } from '../scheduler/async';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { isNumeric } from '../util/isNumeric';
-import { isScheduler } from '../util/isScheduler';
-import { OperatorFunction, SchedulerLike, SchedulerAction } from '../types';
-
-/**
- * Branch out the source Observable values as a nested Observable periodically
- * in time.
- *
- * <span class="informal">It's like {@link bufferTime}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowTime.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable starts a new window periodically, as
- * determined by the `windowCreationInterval` argument. It emits each window
- * after a fixed timespan, specified by the `windowTimeSpan` argument. When the
- * source Observable completes or encounters an error, the output Observable
- * emits the current window and propagates the notification from the source
- * Observable. If `windowCreationInterval` is not provided, the output
- * Observable starts a new window when the previous window of duration
- * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window
- * will emit at most fixed number of values. Window will complete immediately
- * after emitting last value and next one still will open as specified by
- * `windowTimeSpan` and `windowCreationInterval` arguments.
- *
- * ## Examples
- * In every window of 1 second each, emit at most 2 click events
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000),
- *   map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *   mergeAll(),                    // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000, 5000),
- *   map(win => win.pipe(take(2))), // each window has at most 2 emissions
- *   mergeAll(),                    // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * Same as example above but with maxWindowCount instead of take
- * ```ts
- * import { fromEvent } from 'rxjs';
- * import { windowTime, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowTime(1000, 5000, 2), // each window has still at most 2 emissions
- *   mergeAll(),                // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowToggle}
- * @see {@link windowWhen}
- * @see {@link bufferTime}
- *
- * @param {number} windowTimeSpan The amount of time to fill each window.
- * @param {number} [windowCreationInterval] The interval at which to start new
- * windows.
- * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of
- * values each window can emit before completion.
- * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the
- * intervals that determine window boundaries.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowTime
- * @owner Observable
- */
-export function windowTime<T>(windowTimeSpan: number,
-                              scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
-export function windowTime<T>(windowTimeSpan: number,
-                              windowCreationInterval: number,
-                              scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
-export function windowTime<T>(windowTimeSpan: number,
-                              windowCreationInterval: number,
-                              maxWindowSize: number,
-                              scheduler?: SchedulerLike): OperatorFunction<T, Observable<T>>;
-
-export function windowTime<T>(windowTimeSpan: number): OperatorFunction<T, Observable<T>> {
-  let scheduler: SchedulerLike = async;
-  let windowCreationInterval: number = null;
-  let maxWindowSize: number = Number.POSITIVE_INFINITY;
-
-  if (isScheduler(arguments[3])) {
-    scheduler = arguments[3];
-  }
-
-  if (isScheduler(arguments[2])) {
-    scheduler = arguments[2];
-  } else if (isNumeric(arguments[2])) {
-    maxWindowSize = arguments[2];
-  }
-
-  if (isScheduler(arguments[1])) {
-    scheduler = arguments[1];
-  } else if (isNumeric(arguments[1])) {
-    windowCreationInterval = arguments[1];
-  }
-
-  return function windowTimeOperatorFunction(source: Observable<T>) {
-    return source.lift(new WindowTimeOperator<T>(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
-  };
-}
-
-class WindowTimeOperator<T> implements Operator<T, Observable<T>> {
-
-  constructor(private windowTimeSpan: number,
-              private windowCreationInterval: number | null,
-              private maxWindowSize: number,
-              private scheduler: SchedulerLike) {
-  }
-
-  call(subscriber: Subscriber<Observable<T>>, source: any): any {
-    return source.subscribe(new WindowTimeSubscriber(
-      subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler
-    ));
-  }
-}
-
-interface CreationState<T> {
-  windowTimeSpan: number;
-  windowCreationInterval: number;
-  subscriber: WindowTimeSubscriber<T>;
-  scheduler: SchedulerLike;
-}
-
-interface TimeSpanOnlyState<T> {
-    window: CountedSubject<T>;
-    windowTimeSpan: number;
-    subscriber: WindowTimeSubscriber<T>;
-  }
-
-interface CloseWindowContext<T> {
-  action: SchedulerAction<CreationState<T>>;
-  subscription: Subscription;
-}
-
-interface CloseState<T> {
-  subscriber: WindowTimeSubscriber<T>;
-  window: CountedSubject<T>;
-  context: CloseWindowContext<T>;
-}
-
-class CountedSubject<T> extends Subject<T> {
-  private _numberOfNextedValues: number = 0;
-
-  next(value?: T): void {
-    this._numberOfNextedValues++;
-    super.next(value);
-  }
-
-  get numberOfNextedValues(): number {
-    return this._numberOfNextedValues;
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WindowTimeSubscriber<T> extends Subscriber<T> {
-  private windows: CountedSubject<T>[] = [];
-
-  constructor(protected destination: Subscriber<Observable<T>>,
-              private windowTimeSpan: number,
-              private windowCreationInterval: number | null,
-              private maxWindowSize: number,
-              private scheduler: SchedulerLike) {
-    super(destination);
-
-    const window = this.openWindow();
-    if (windowCreationInterval !== null && windowCreationInterval >= 0) {
-      const closeState: CloseState<T> = { subscriber: this, window, context: <any>null };
-      const creationState: CreationState<T> = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler };
-      this.add(scheduler.schedule<CloseState<T>>(dispatchWindowClose, windowTimeSpan, closeState));
-      this.add(scheduler.schedule<CreationState<T>>(dispatchWindowCreation, windowCreationInterval, creationState));
-    } else {
-      const timeSpanOnlyState: TimeSpanOnlyState<T> = { subscriber: this, window, windowTimeSpan };
-      this.add(scheduler.schedule<TimeSpanOnlyState<T>>(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
-    }
-  }
-
-  protected _next(value: T): void {
-    const windows = this.windows;
-    const len = windows.length;
-    for (let i = 0; i < len; i++) {
-      const window = windows[i];
-      if (!window.closed) {
-        window.next(value);
-        if (window.numberOfNextedValues >= this.maxWindowSize) {
-          this.closeWindow(window);
-        }
-      }
-    }
-  }
-
-  protected _error(err: any): void {
-    const windows = this.windows;
-    while (windows.length > 0) {
-      windows.shift().error(err);
-    }
-    this.destination.error(err);
-  }
-
-  protected _complete(): void {
-    const windows = this.windows;
-    while (windows.length > 0) {
-      const window = windows.shift();
-      if (!window.closed) {
-        window.complete();
-      }
-    }
-    this.destination.complete();
-  }
-
-  public openWindow(): CountedSubject<T> {
-    const window = new CountedSubject<T>();
-    this.windows.push(window);
-    const destination = this.destination;
-    destination.next(window);
-    return window;
-  }
-
-  public closeWindow(window: CountedSubject<T>): void {
-    window.complete();
-    const windows = this.windows;
-    windows.splice(windows.indexOf(window), 1);
-  }
-}
-
-function dispatchWindowTimeSpanOnly<T>(this: SchedulerAction<TimeSpanOnlyState<T>>, state: TimeSpanOnlyState<T>): void {
-  const { subscriber, windowTimeSpan, window } = state;
-  if (window) {
-    subscriber.closeWindow(window);
-  }
-  state.window = subscriber.openWindow();
-  this.schedule(state, windowTimeSpan);
-}
-
-function dispatchWindowCreation<T>(this: SchedulerAction<CreationState<T>>, state: CreationState<T>): void {
-  const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state;
-  const window = subscriber.openWindow();
-  const action = this;
-  let context: CloseWindowContext<T> = { action, subscription: <any>null };
-  const timeSpanState: CloseState<T> = { subscriber, window, context };
-  context.subscription = scheduler.schedule<CloseState<T>>(dispatchWindowClose, windowTimeSpan, timeSpanState);
-  action.add(context.subscription);
-  action.schedule(state, windowCreationInterval);
-}
-
-function dispatchWindowClose<T>(state: CloseState<T>): void {
-  const { subscriber, window, context } = state;
-  if (context && context.action && context.subscription) {
-    context.action.remove(context.subscription);
-  }
-  subscriber.closeWindow(window);
-}
diff --git a/node_modules/rxjs/src/internal/operators/windowToggle.ts b/node_modules/rxjs/src/internal/operators/windowToggle.ts
deleted file mode 100644
index c2fc218..0000000
--- a/node_modules/rxjs/src/internal/operators/windowToggle.ts
+++ /dev/null
@@ -1,211 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OperatorFunction } from '../types';
-
-/**
- * Branch out the source Observable values as a nested Observable starting from
- * an emission from `openings` and ending when the output of `closingSelector`
- * emits.
- *
- * <span class="informal">It's like {@link bufferToggle}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowToggle.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits windows that contain those items
- * emitted by the source Observable between the time when the `openings`
- * Observable emits an item and when the Observable returned by
- * `closingSelector` emits an item.
- *
- * ## Example
- * Every other second, emit the click events from the next 500ms
- * ```ts
- * import { fromEvent, interval, EMPTY } from 'rxjs';
- * import { windowToggle, mergeAll } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const openings = interval(1000);
- * const result = clicks.pipe(
- *   windowToggle(openings, i => i % 2 ? interval(500) : EMPTY),
- *   mergeAll()
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowWhen}
- * @see {@link bufferToggle}
- *
- * @param {Observable<O>} openings An observable of notifications to start new
- * windows.
- * @param {function(value: O): Observable} closingSelector A function that takes
- * the value emitted by the `openings` observable and returns an Observable,
- * which, when it emits (either `next` or `complete`), signals that the
- * associated window should complete.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowToggle
- * @owner Observable
- */
-export function windowToggle<T, O>(openings: Observable<O>,
-                                   closingSelector: (openValue: O) => Observable<any>): OperatorFunction<T, Observable<T>> {
-  return (source: Observable<T>) => source.lift(new WindowToggleOperator<T, O>(openings, closingSelector));
-}
-
-class WindowToggleOperator<T, O> implements Operator<T, Observable<T>> {
-
-  constructor(private openings: Observable<O>,
-              private closingSelector: (openValue: O) => Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<Observable<T>>, source: any): any {
-    return source.subscribe(new WindowToggleSubscriber(
-      subscriber, this.openings, this.closingSelector
-    ));
-  }
-}
-
-interface WindowContext<T> {
-  window: Subject<T>;
-  subscription: Subscription;
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WindowToggleSubscriber<T, O> extends OuterSubscriber<T, any> {
-  private contexts: WindowContext<T>[] = [];
-  private openSubscription: Subscription;
-
-  constructor(destination: Subscriber<Observable<T>>,
-              private openings: Observable<O>,
-              private closingSelector: (openValue: O) => Observable<any>) {
-    super(destination);
-    this.add(this.openSubscription = subscribeToResult(this, openings, openings as any));
-  }
-
-  protected _next(value: T) {
-    const { contexts } = this;
-    if (contexts) {
-      const len = contexts.length;
-      for (let i = 0; i < len; i++) {
-        contexts[i].window.next(value);
-      }
-    }
-  }
-
-  protected _error(err: any) {
-
-    const { contexts } = this;
-    this.contexts = null;
-
-    if (contexts) {
-      const len = contexts.length;
-      let index = -1;
-
-      while (++index < len) {
-        const context = contexts[index];
-        context.window.error(err);
-        context.subscription.unsubscribe();
-      }
-    }
-
-    super._error(err);
-  }
-
-  protected _complete() {
-    const { contexts } = this;
-    this.contexts = null;
-    if (contexts) {
-      const len = contexts.length;
-      let index = -1;
-      while (++index < len) {
-        const context = contexts[index];
-        context.window.complete();
-        context.subscription.unsubscribe();
-      }
-    }
-    super._complete();
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-    const { contexts } = this;
-    this.contexts = null;
-    if (contexts) {
-      const len = contexts.length;
-      let index = -1;
-      while (++index < len) {
-        const context = contexts[index];
-        context.window.unsubscribe();
-        context.subscription.unsubscribe();
-      }
-    }
-  }
-
-  notifyNext(outerValue: any, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, any>): void {
-
-    if (outerValue === this.openings) {
-      let closingNotifier;
-      try {
-        const { closingSelector } = this;
-        closingNotifier = closingSelector(innerValue);
-      } catch (e) {
-        return this.error(e);
-      }
-
-      const window = new Subject<T>();
-      const subscription = new Subscription();
-      const context = { window, subscription };
-      this.contexts.push(context);
-      const innerSubscription = subscribeToResult(this, closingNotifier, context as any);
-
-      if (innerSubscription.closed) {
-        this.closeWindow(this.contexts.length - 1);
-      } else {
-        (<any>innerSubscription).context = context;
-        subscription.add(innerSubscription);
-      }
-
-      this.destination.next(window);
-    } else {
-      this.closeWindow(this.contexts.indexOf(outerValue));
-    }
-  }
-
-  notifyError(err: any): void {
-    this.error(err);
-  }
-
-  notifyComplete(inner: Subscription): void {
-    if (inner !== this.openSubscription) {
-      this.closeWindow(this.contexts.indexOf((<any> inner).context));
-    }
-  }
-
-  private closeWindow(index: number): void {
-    if (index === -1) {
-      return;
-    }
-
-    const { contexts } = this;
-    const context = contexts[index];
-    const { window, subscription } = context;
-    contexts.splice(index, 1);
-    window.complete();
-    subscription.unsubscribe();
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/windowWhen.ts b/node_modules/rxjs/src/internal/operators/windowWhen.ts
deleted file mode 100644
index aa0cf2c..0000000
--- a/node_modules/rxjs/src/internal/operators/windowWhen.ts
+++ /dev/null
@@ -1,147 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { Subject } from '../Subject';
-import { Subscription } from '../Subscription';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { OperatorFunction } from '../types';
-
-/**
- * Branch out the source Observable values as a nested Observable using a
- * factory function of closing Observables to determine when to start a new
- * window.
- *
- * <span class="informal">It's like {@link bufferWhen}, but emits a nested
- * Observable instead of an array.</span>
- *
- * ![](windowWhen.png)
- *
- * Returns an Observable that emits windows of items it collects from the source
- * Observable. The output Observable emits connected, non-overlapping windows.
- * It emits the current window and opens a new one whenever the Observable
- * produced by the specified `closingSelector` function emits an item. The first
- * window is opened immediately when subscribing to the output Observable.
- *
- * ## Example
- * Emit only the first two clicks events in every window of [1-5] random seconds
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { windowWhen, map, mergeAll, take } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const result = clicks.pipe(
- *   windowWhen(() => interval(1000 + Math.random() * 4000)),
- *   map(win => win.pipe(take(2))),     // each window has at most 2 emissions
- *   mergeAll()                         // flatten the Observable-of-Observables
- * );
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link window}
- * @see {@link windowCount}
- * @see {@link windowTime}
- * @see {@link windowToggle}
- * @see {@link bufferWhen}
- *
- * @param {function(): Observable} closingSelector A function that takes no
- * arguments and returns an Observable that signals (on either `next` or
- * `complete`) when to close the previous window and start a new one.
- * @return {Observable<Observable<T>>} An observable of windows, which in turn
- * are Observables.
- * @method windowWhen
- * @owner Observable
- */
-export function windowWhen<T>(closingSelector: () => Observable<any>): OperatorFunction<T, Observable<T>> {
-  return function windowWhenOperatorFunction(source: Observable<T>) {
-    return source.lift(new WindowOperator<T>(closingSelector));
-  };
-}
-
-class WindowOperator<T> implements Operator<T, Observable<T>> {
-  constructor(private closingSelector: () => Observable<any>) {
-  }
-
-  call(subscriber: Subscriber<Observable<T>>, source: any): any {
-    return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WindowSubscriber<T> extends OuterSubscriber<T, any> {
-  private window: Subject<T>;
-  private closingNotification: Subscription;
-
-  constructor(protected destination: Subscriber<Observable<T>>,
-              private closingSelector: () => Observable<any>) {
-    super(destination);
-    this.openWindow();
-  }
-
-  notifyNext(outerValue: T, innerValue: any,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, any>): void {
-    this.openWindow(innerSub);
-  }
-
-  notifyError(error: any, innerSub: InnerSubscriber<T, any>): void {
-    this._error(error);
-  }
-
-  notifyComplete(innerSub: InnerSubscriber<T, any>): void {
-    this.openWindow(innerSub);
-  }
-
-  protected _next(value: T): void {
-    this.window.next(value);
-  }
-
-  protected _error(err: any): void {
-    this.window.error(err);
-    this.destination.error(err);
-    this.unsubscribeClosingNotification();
-  }
-
-  protected _complete(): void {
-    this.window.complete();
-    this.destination.complete();
-    this.unsubscribeClosingNotification();
-  }
-
-  private unsubscribeClosingNotification(): void {
-    if (this.closingNotification) {
-      this.closingNotification.unsubscribe();
-    }
-  }
-
-  private openWindow(innerSub: InnerSubscriber<T, any> = null): void {
-    if (innerSub) {
-      this.remove(innerSub);
-      innerSub.unsubscribe();
-    }
-
-    const prevWindow = this.window;
-    if (prevWindow) {
-      prevWindow.complete();
-    }
-
-    const window = this.window = new Subject<T>();
-    this.destination.next(window);
-
-    let closingNotifier;
-    try {
-      const { closingSelector } = this;
-      closingNotifier = closingSelector();
-    } catch (e) {
-      this.destination.error(e);
-      this.window.error(e);
-      return;
-    }
-    this.add(this.closingNotification = subscribeToResult(this, closingNotifier));
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/withLatestFrom.ts b/node_modules/rxjs/src/internal/operators/withLatestFrom.ts
deleted file mode 100644
index 85586b3..0000000
--- a/node_modules/rxjs/src/internal/operators/withLatestFrom.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { Operator } from '../Operator';
-import { Subscriber } from '../Subscriber';
-import { Observable } from '../Observable';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
-import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
-
-/* tslint:disable:max-line-length */
-export function withLatestFrom<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, R>(source2: O2, project: (v1: T, v2: ObservedValueOf<O2>) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): OperatorFunction<T, R>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>>(source2: O2): OperatorFunction<T, [T, ObservedValueOf<O2>]>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>>(v2: O2, v3: O3): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>]>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>;
-export function withLatestFrom<T, O2 extends ObservableInput<any>, O3 extends ObservableInput<any>, O4 extends ObservableInput<any>, O5 extends ObservableInput<any>, O6 extends ObservableInput<any>>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction<T, [T, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>;
-export function withLatestFrom<T, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): OperatorFunction<T, R>;
-export function withLatestFrom<T, R>(array: ObservableInput<any>[]): OperatorFunction<T, R>;
-export function withLatestFrom<T, R>(array: ObservableInput<any>[], project: (...values: Array<any>) => R): OperatorFunction<T, R>;
-
-/* tslint:enable:max-line-length */
-
-/**
- * Combines the source Observable with other Observables to create an Observable
- * whose values are calculated from the latest values of each, only when the
- * source emits.
- *
- * <span class="informal">Whenever the source Observable emits a value, it
- * computes a formula using that value plus the latest values from other input
- * Observables, then emits the output of that formula.</span>
- *
- * ![](withLatestFrom.png)
- *
- * `withLatestFrom` combines each value from the source Observable (the
- * instance) with the latest values from the other input Observables only when
- * the source emits a value, optionally using a `project` function to determine
- * the value to be emitted on the output Observable. All input Observables must
- * emit at least one value before the output Observable will emit a value.
- *
- * ## Example
- * On every click event, emit an array with the latest timer event plus the click event
- * ```ts
- * import { fromEvent, interval } from 'rxjs';
- * import { withLatestFrom } from 'rxjs/operators';
- *
- * const clicks = fromEvent(document, 'click');
- * const timer = interval(1000);
- * const result = clicks.pipe(withLatestFrom(timer));
- * result.subscribe(x => console.log(x));
- * ```
- *
- * @see {@link combineLatest}
- *
- * @param {ObservableInput} other An input Observable to combine with the source
- * Observable. More than one input Observables may be given as argument.
- * @param {Function} [project] Projection function for combining values
- * together. Receives all values in order of the Observables passed, where the
- * first parameter is a value from the source Observable. (e.g.
- * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not
- * passed, arrays will be emitted on the output Observable.
- * @return {Observable} An Observable of projected values from the most recent
- * values from each input Observable, or an array of the most recent values from
- * each input Observable.
- * @method withLatestFrom
- * @owner Observable
- */
-export function withLatestFrom<T, R>(...args: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): OperatorFunction<T, R> {
-  return (source: Observable<T>) => {
-    let project: any;
-    if (typeof args[args.length - 1] === 'function') {
-      project = args.pop();
-    }
-    const observables = <Observable<any>[]>args;
-    return source.lift(new WithLatestFromOperator(observables, project));
-  };
-}
-
-class WithLatestFromOperator<T, R> implements Operator<T, R> {
-  constructor(private observables: Observable<any>[],
-              private project?: (...values: any[]) => Observable<R>) {
-  }
-
-  call(subscriber: Subscriber<R>, source: any): any {
-    return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-class WithLatestFromSubscriber<T, R> extends OuterSubscriber<T, R> {
-  private values: any[];
-  private toRespond: number[] = [];
-
-  constructor(destination: Subscriber<R>,
-              private observables: Observable<any>[],
-              private project?: (...values: any[]) => Observable<R>) {
-    super(destination);
-    const len = observables.length;
-    this.values = new Array(len);
-
-    for (let i = 0; i < len; i++) {
-      this.toRespond.push(i);
-    }
-
-    for (let i = 0; i < len; i++) {
-      let observable = observables[i];
-      this.add(subscribeToResult<T, R>(this, observable, <any>observable, i));
-    }
-  }
-
-  notifyNext(outerValue: T, innerValue: R,
-             outerIndex: number, innerIndex: number,
-             innerSub: InnerSubscriber<T, R>): void {
-    this.values[outerIndex] = innerValue;
-    const toRespond = this.toRespond;
-    if (toRespond.length > 0) {
-      const found = toRespond.indexOf(outerIndex);
-      if (found !== -1) {
-        toRespond.splice(found, 1);
-      }
-    }
-  }
-
-  notifyComplete() {
-    // noop
-  }
-
-  protected _next(value: T) {
-    if (this.toRespond.length === 0) {
-      const args = [value, ...this.values];
-      if (this.project) {
-        this._tryProject(args);
-      } else {
-        this.destination.next(args);
-      }
-    }
-  }
-
-  private _tryProject(args: any[]) {
-    let result: any;
-    try {
-      result = this.project.apply(this, args);
-    } catch (err) {
-      this.destination.error(err);
-      return;
-    }
-    this.destination.next(result);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/operators/zip.ts b/node_modules/rxjs/src/internal/operators/zip.ts
deleted file mode 100644
index b02ffc9..0000000
--- a/node_modules/rxjs/src/internal/operators/zip.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { zip as zipStatic } from '../observable/zip';
-import { Observable } from '../Observable';
-import { ObservableInput, OperatorFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, R>(project: (v1: T) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, R>(v2: ObservableInput<T2>, project: (v1: T, v2: T2) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4, T5, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4, T5, T6, R>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction<T, R> ;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2>(v2: ObservableInput<T2>): OperatorFunction<T, [T, T2]>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3>(v2: ObservableInput<T2>, v3: ObservableInput<T3>): OperatorFunction<T, [T, T2, T3]>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>): OperatorFunction<T, [T, T2, T3, T4]>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4, T5>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>): OperatorFunction<T, [T, T2, T3, T4, T5]>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, T2, T3, T4, T5, T6>(v2: ObservableInput<T2>, v3: ObservableInput<T3>, v4: ObservableInput<T4>, v5: ObservableInput<T5>, v6: ObservableInput<T6>): OperatorFunction<T, [T, T2, T3, T4, T5, T6]> ;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, R>(...observables: Array<ObservableInput<T> | ((...values: Array<T>) => R)>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, R>(array: Array<ObservableInput<T>>): OperatorFunction<T, R>;
-/** @deprecated Deprecated in favor of static zip. */
-export function zip<T, TOther, R>(array: Array<ObservableInput<TOther>>, project: (v1: T, ...values: Array<TOther>) => R): OperatorFunction<T, R>;
-/* tslint:enable:max-line-length */
-
-/**
- * @deprecated Deprecated in favor of static {@link zip}.
- */
-export function zip<T, R>(...observables: Array<ObservableInput<any> | ((...values: Array<any>) => R)>): OperatorFunction<T, R> {
-  return function zipOperatorFunction(source: Observable<T>) {
-    return source.lift.call(zipStatic<R>(source, ...observables));
-  };
-}
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/operators/zipAll.ts b/node_modules/rxjs/src/internal/operators/zipAll.ts
deleted file mode 100644
index 163ae43..0000000
--- a/node_modules/rxjs/src/internal/operators/zipAll.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ZipOperator } from '../observable/zip';
-import { Observable } from '../Observable';
-import { OperatorFunction, ObservableInput } from '../types';
-
-export function zipAll<T>(): OperatorFunction<ObservableInput<T>, T[]>;
-export function zipAll<T>(): OperatorFunction<any, T[]>;
-export function zipAll<T, R>(project: (...values: T[]) => R): OperatorFunction<ObservableInput<T>, R>;
-export function zipAll<R>(project: (...values: Array<any>) => R): OperatorFunction<any, R>;
-
-export function zipAll<T, R>(project?: (...values: Array<any>) => R): OperatorFunction<T, R> {
-  return (source: Observable<T>) => source.lift(new ZipOperator(project));
-}
diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts b/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts
deleted file mode 100644
index 1b56860..0000000
--- a/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { Subscription } from '../Subscription';
-
-export function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {
-  return new Observable<T>(subscriber => {
-    const sub = new Subscription();
-    let i = 0;
-    sub.add(scheduler.schedule(function () {
-      if (i === input.length) {
-        subscriber.complete();
-        return;
-      }
-      subscriber.next(input[i++]);
-      if (!subscriber.closed) {
-        sub.add(this.schedule());
-      }
-    }));
-    return sub;
-  });
-}
diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts b/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts
deleted file mode 100644
index dc90438..0000000
--- a/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { Subscription } from '../Subscription';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-
-export function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {
-  if (!input) {
-    throw new Error('Iterable cannot be null');
-  }
-  return new Observable<T>(subscriber => {
-    const sub = new Subscription();
-    let iterator: Iterator<T>;
-    sub.add(() => {
-      // Finalize generators
-      if (iterator && typeof iterator.return === 'function') {
-        iterator.return();
-      }
-    });
-    sub.add(scheduler.schedule(() => {
-      iterator = input[Symbol_iterator]();
-      sub.add(scheduler.schedule(function () {
-        if (subscriber.closed) {
-          return;
-        }
-        let value: T;
-        let done: boolean;
-        try {
-          const result = iterator.next();
-          value = result.value;
-          done = result.done;
-        } catch (err) {
-          subscriber.error(err);
-          return;
-        }
-        if (done) {
-          subscriber.complete();
-        } else {
-          subscriber.next(value);
-          this.schedule();
-        }
-      }));
-    }));
-    return sub;
-  });
-}
diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts b/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts
deleted file mode 100644
index 9e970c0..0000000
--- a/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { observable as Symbol_observable } from '../symbol/observable';
-import { InteropObservable, SchedulerLike, Subscribable } from '../types';
-
-export function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {
-  return new Observable<T>(subscriber => {
-    const sub = new Subscription();
-    sub.add(scheduler.schedule(() => {
-      const observable: Subscribable<T> = input[Symbol_observable]();
-      sub.add(observable.subscribe({
-        next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },
-        error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },
-        complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },
-      }));
-    }));
-    return sub;
-  });
-}
diff --git a/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts b/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts
deleted file mode 100644
index ec1bfaf..0000000
--- a/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Observable } from '../Observable';
-import { SchedulerLike } from '../types';
-import { Subscription } from '../Subscription';
-
-export function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {
-  return new Observable<T>(subscriber => {
-    const sub = new Subscription();
-    sub.add(scheduler.schedule(() => input.then(
-      value => {
-        sub.add(scheduler.schedule(() => {
-          subscriber.next(value);
-          sub.add(scheduler.schedule(() => subscriber.complete()));
-        }));
-      },
-      err => {
-        sub.add(scheduler.schedule(() => subscriber.error(err)));
-      }
-    )));
-    return sub;
-  });
-}
diff --git a/node_modules/rxjs/src/internal/scheduled/scheduled.ts b/node_modules/rxjs/src/internal/scheduled/scheduled.ts
deleted file mode 100644
index ec819f7..0000000
--- a/node_modules/rxjs/src/internal/scheduled/scheduled.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { scheduleObservable } from './scheduleObservable';
-import { schedulePromise } from './schedulePromise';
-import { scheduleArray } from './scheduleArray';
-import { scheduleIterable } from './scheduleIterable';
-import { ObservableInput, SchedulerLike, Observable } from 'rxjs';
-import { isInteropObservable } from '../util/isInteropObservable';
-import { isPromise } from '../util/isPromise';
-import { isArrayLike } from '../util/isArrayLike';
-import { isIterable } from '../util/isIterable';
-
-/**
- * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions
- * are scheduled on the provided scheduler.
- *
- * @see from
- * @see of
- *
- * @param input The observable, array, promise, iterable, etc you would like to schedule
- * @param scheduler The scheduler to use to schedule the subscription and emissions from
- * the returned observable.
- */
-export function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {
-  if (input != null) {
-    if (isInteropObservable(input)) {
-      return scheduleObservable(input, scheduler);
-    } else if (isPromise(input)) {
-      return schedulePromise(input, scheduler);
-    } else if (isArrayLike(input)) {
-      return scheduleArray(input, scheduler);
-    }  else if (isIterable(input) || typeof input === 'string') {
-      return scheduleIterable(input, scheduler);
-    }
-  }
-
-  throw new TypeError((input !== null && typeof input || input) + ' is not observable');
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/Action.ts b/node_modules/rxjs/src/internal/scheduler/Action.ts
deleted file mode 100644
index 6cf91bc..0000000
--- a/node_modules/rxjs/src/internal/scheduler/Action.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { Subscription } from '../Subscription';
-import { SchedulerAction } from '../types';
-
-/**
- * A unit of work to be executed in a `scheduler`. An action is typically
- * created from within a {@link SchedulerLike} and an RxJS user does not need to concern
- * themselves about creating and manipulating an Action.
- *
- * ```ts
- * class Action<T> extends Subscription {
- *   new (scheduler: Scheduler, work: (state?: T) => void);
- *   schedule(state?: T, delay: number = 0): Subscription;
- * }
- * ```
- *
- * @class Action<T>
- */
-export class Action<T> extends Subscription {
-  constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {
-    super();
-  }
-  /**
-   * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed
-   * some context object, `state`. May happen at some point in the future,
-   * according to the `delay` parameter, if specified.
-   * @param {T} [state] Some contextual data that the `work` function uses when
-   * called by the Scheduler.
-   * @param {number} [delay] Time to wait before executing the work, where the
-   * time unit is implicit and defined by the Scheduler.
-   * @return {void}
-   */
-  public schedule(state?: T, delay: number = 0): Subscription {
-    return this;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts b/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts
deleted file mode 100644
index e9ea64f..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-import { SchedulerAction } from '../types';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class AnimationFrameAction<T> extends AsyncAction<T> {
-
-  constructor(protected scheduler: AnimationFrameScheduler,
-              protected work: (this: SchedulerAction<T>, state?: T) => void) {
-    super(scheduler, work);
-  }
-
-  protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {
-    // If delay is greater than 0, request as an async action.
-    if (delay !== null && delay > 0) {
-      return super.requestAsyncId(scheduler, id, delay);
-    }
-    // Push the action to the end of the scheduler queue.
-    scheduler.actions.push(this);
-    // If an animation frame has already been requested, don't request another
-    // one. If an animation frame hasn't been requested yet, request one. Return
-    // the current animation frame request id.
-    return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(
-      () => scheduler.flush(null)));
-  }
-  protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any {
-    // If delay exists and is greater than 0, or if the delay is null (the
-    // action wasn't rescheduled) but was originally scheduled as an async
-    // action, then recycle as an async action.
-    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-      return super.recycleAsyncId(scheduler, id, delay);
-    }
-    // If the scheduler queue is empty, cancel the requested animation frame and
-    // set the scheduled flag to undefined so the next AnimationFrameAction will
-    // request its own.
-    if (scheduler.actions.length === 0) {
-      cancelAnimationFrame(id);
-      scheduler.scheduled = undefined;
-    }
-    // Return undefined so the action knows to request a new async id if it's rescheduled.
-    return undefined;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts
deleted file mode 100644
index c550429..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-
-export class AnimationFrameScheduler extends AsyncScheduler {
-  public flush(action?: AsyncAction<any>): void {
-
-    this.active = true;
-    this.scheduled = undefined;
-
-    const {actions} = this;
-    let error: any;
-    let index: number = -1;
-    let count: number = actions.length;
-    action = action || actions.shift();
-
-    do {
-      if (error = action.execute(action.state, action.delay)) {
-        break;
-      }
-    } while (++index < count && (action = actions.shift()));
-
-    this.active = false;
-
-    if (error) {
-      while (++index < count && (action = actions.shift())) {
-        action.unsubscribe();
-      }
-      throw error;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AsapAction.ts b/node_modules/rxjs/src/internal/scheduler/AsapAction.ts
deleted file mode 100644
index 1fe1622..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AsapAction.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Immediate } from '../util/Immediate';
-import { AsyncAction } from './AsyncAction';
-import { AsapScheduler } from './AsapScheduler';
-import { SchedulerAction } from '../types';
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class AsapAction<T> extends AsyncAction<T> {
-
-  constructor(protected scheduler: AsapScheduler,
-              protected work: (this: SchedulerAction<T>, state?: T) => void) {
-    super(scheduler, work);
-  }
-
-  protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {
-    // If delay is greater than 0, request as an async action.
-    if (delay !== null && delay > 0) {
-      return super.requestAsyncId(scheduler, id, delay);
-    }
-    // Push the action to the end of the scheduler queue.
-    scheduler.actions.push(this);
-    // If a microtask has already been scheduled, don't schedule another
-    // one. If a microtask hasn't been scheduled yet, schedule one now. Return
-    // the current scheduled microtask id.
-    return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(
-      scheduler.flush.bind(scheduler, null)
-    ));
-  }
-  protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any {
-    // If delay exists and is greater than 0, or if the delay is null (the
-    // action wasn't rescheduled) but was originally scheduled as an async
-    // action, then recycle as an async action.
-    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-      return super.recycleAsyncId(scheduler, id, delay);
-    }
-    // If the scheduler queue is empty, cancel the requested microtask and
-    // set the scheduled flag to undefined so the next AsapAction will schedule
-    // its own.
-    if (scheduler.actions.length === 0) {
-      Immediate.clearImmediate(id);
-      scheduler.scheduled = undefined;
-    }
-    // Return undefined so the action knows to request a new async id if it's rescheduled.
-    return undefined;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts
deleted file mode 100644
index 659aa58..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-
-export class AsapScheduler extends AsyncScheduler {
-  public flush(action?: AsyncAction<any>): void {
-
-    this.active = true;
-    this.scheduled = undefined;
-
-    const {actions} = this;
-    let error: any;
-    let index: number = -1;
-    let count: number = actions.length;
-    action = action || actions.shift();
-
-    do {
-      if (error = action.execute(action.state, action.delay)) {
-        break;
-      }
-    } while (++index < count && (action = actions.shift()));
-
-    this.active = false;
-
-    if (error) {
-      while (++index < count && (action = actions.shift())) {
-        action.unsubscribe();
-      }
-      throw error;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts b/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts
deleted file mode 100644
index 05f128f..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { Action } from './Action';
-import { SchedulerAction } from '../types';
-import { Subscription } from '../Subscription';
-import { AsyncScheduler } from './AsyncScheduler';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class AsyncAction<T> extends Action<T> {
-
-  public id: any;
-  public state: T;
-  public delay: number;
-  protected pending: boolean = false;
-
-  constructor(protected scheduler: AsyncScheduler,
-              protected work: (this: SchedulerAction<T>, state?: T) => void) {
-    super(scheduler, work);
-  }
-
-  public schedule(state?: T, delay: number = 0): Subscription {
-
-    if (this.closed) {
-      return this;
-    }
-
-    // Always replace the current state with the new state.
-    this.state = state;
-
-    const id = this.id;
-    const scheduler = this.scheduler;
-
-    //
-    // Important implementation note:
-    //
-    // Actions only execute once by default, unless rescheduled from within the
-    // scheduled callback. This allows us to implement single and repeat
-    // actions via the same code path, without adding API surface area, as well
-    // as mimic traditional recursion but across asynchronous boundaries.
-    //
-    // However, JS runtimes and timers distinguish between intervals achieved by
-    // serial `setTimeout` calls vs. a single `setInterval` call. An interval of
-    // serial `setTimeout` calls can be individually delayed, which delays
-    // scheduling the next `setTimeout`, and so on. `setInterval` attempts to
-    // guarantee the interval callback will be invoked more precisely to the
-    // interval period, regardless of load.
-    //
-    // Therefore, we use `setInterval` to schedule single and repeat actions.
-    // If the action reschedules itself with the same delay, the interval is not
-    // canceled. If the action doesn't reschedule, or reschedules with a
-    // different delay, the interval will be canceled after scheduled callback
-    // execution.
-    //
-    if (id != null) {
-      this.id = this.recycleAsyncId(scheduler, id, delay);
-    }
-
-    // Set the pending flag indicating that this action has been scheduled, or
-    // has recursively rescheduled itself.
-    this.pending = true;
-
-    this.delay = delay;
-    // If this action has already an async Id, don't request a new one.
-    this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
-
-    return this;
-  }
-
-  protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay: number = 0): any {
-    return setInterval(scheduler.flush.bind(scheduler, this), delay);
-  }
-
-  protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any {
-    // If this action is rescheduled with the same delay time, don't clear the interval id.
-    if (delay !== null && this.delay === delay && this.pending === false) {
-      return id;
-    }
-    // Otherwise, if the action's delay time is different from the current delay,
-    // or the action has been rescheduled before it's executed, clear the interval id
-    clearInterval(id);
-    return undefined;
-  }
-
-  /**
-   * Immediately executes this action and the `work` it contains.
-   * @return {any}
-   */
-  public execute(state: T, delay: number): any {
-
-    if (this.closed) {
-      return new Error('executing a cancelled action');
-    }
-
-    this.pending = false;
-    const error = this._execute(state, delay);
-    if (error) {
-      return error;
-    } else if (this.pending === false && this.id != null) {
-      // Dequeue if the action didn't reschedule itself. Don't call
-      // unsubscribe(), because the action could reschedule later.
-      // For example:
-      // ```
-      // scheduler.schedule(function doWork(counter) {
-      //   /* ... I'm a busy worker bee ... */
-      //   var originalAction = this;
-      //   /* wait 100ms before rescheduling the action */
-      //   setTimeout(function () {
-      //     originalAction.schedule(counter + 1);
-      //   }, 100);
-      // }, 1000);
-      // ```
-      this.id = this.recycleAsyncId(this.scheduler, this.id, null);
-    }
-  }
-
-  protected _execute(state: T, delay: number): any {
-    let errored: boolean = false;
-    let errorValue: any = undefined;
-    try {
-      this.work(state);
-    } catch (e) {
-      errored = true;
-      errorValue = !!e && e || new Error(e);
-    }
-    if (errored) {
-      this.unsubscribe();
-      return errorValue;
-    }
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _unsubscribe() {
-
-    const id = this.id;
-    const scheduler = this.scheduler;
-    const actions = scheduler.actions;
-    const index = actions.indexOf(this);
-
-    this.work  = null;
-    this.state = null;
-    this.pending = false;
-    this.scheduler = null;
-
-    if (index !== -1) {
-      actions.splice(index, 1);
-    }
-
-    if (id != null) {
-      this.id = this.recycleAsyncId(scheduler, id, null);
-    }
-
-    this.delay = null;
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts
deleted file mode 100644
index aad77ea..0000000
--- a/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { Action } from './Action';
-import { AsyncAction } from './AsyncAction';
-import { SchedulerAction } from '../types';
-import { Subscription } from '../Subscription';
-
-export class AsyncScheduler extends Scheduler {
-  public static delegate?: Scheduler;
-  public actions: Array<AsyncAction<any>> = [];
-  /**
-   * A flag to indicate whether the Scheduler is currently executing a batch of
-   * queued actions.
-   * @type {boolean}
-   * @deprecated internal use only
-   */
-  public active: boolean = false;
-  /**
-   * An internal ID used to track the latest asynchronous task such as those
-   * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and
-   * others.
-   * @type {any}
-   * @deprecated internal use only
-   */
-  public scheduled: any = undefined;
-
-  constructor(SchedulerAction: typeof Action,
-              now: () => number = Scheduler.now) {
-    super(SchedulerAction, () => {
-      if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-        return AsyncScheduler.delegate.now();
-      } else {
-        return now();
-      }
-    });
-  }
-
-  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {
-    if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
-      return AsyncScheduler.delegate.schedule(work, delay, state);
-    } else {
-      return super.schedule(work, delay, state);
-    }
-  }
-
-  public flush(action: AsyncAction<any>): void {
-
-    const {actions} = this;
-
-    if (this.active) {
-      actions.push(action);
-      return;
-    }
-
-    let error: any;
-    this.active = true;
-
-    do {
-      if (error = action.execute(action.state, action.delay)) {
-        break;
-      }
-    } while (action = actions.shift()); // exhaust the scheduler queue
-
-    this.active = false;
-
-    if (error) {
-      while (action = actions.shift()) {
-        action.unsubscribe();
-      }
-      throw error;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/QueueAction.ts b/node_modules/rxjs/src/internal/scheduler/QueueAction.ts
deleted file mode 100644
index b5a8b51..0000000
--- a/node_modules/rxjs/src/internal/scheduler/QueueAction.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { Subscription } from '../Subscription';
-import { QueueScheduler } from './QueueScheduler';
-import { SchedulerAction } from '../types';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class QueueAction<T> extends AsyncAction<T> {
-
-  constructor(protected scheduler: QueueScheduler,
-              protected work: (this: SchedulerAction<T>, state?: T) => void) {
-    super(scheduler, work);
-  }
-
-  public schedule(state?: T, delay: number = 0): Subscription {
-    if (delay > 0) {
-      return super.schedule(state, delay);
-    }
-    this.delay = delay;
-    this.state = state;
-    this.scheduler.flush(this);
-    return this;
-  }
-
-  public execute(state: T, delay: number): any {
-    return (delay > 0 || this.closed) ?
-      super.execute(state, delay) :
-      this._execute(state, delay) ;
-  }
-
-  protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any {
-    // If delay exists and is greater than 0, or if the delay is null (the
-    // action wasn't rescheduled) but was originally scheduled as an async
-    // action, then recycle as an async action.
-    if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
-      return super.requestAsyncId(scheduler, id, delay);
-    }
-    // Otherwise flush the scheduler starting with this action.
-    return scheduler.flush(this);
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts b/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts
deleted file mode 100644
index e9dab3d..0000000
--- a/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { AsyncScheduler } from './AsyncScheduler';
-
-export class QueueScheduler extends AsyncScheduler {
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts b/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts
deleted file mode 100644
index 7017ea5..0000000
--- a/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { Subscription } from '../Subscription';
-import { AsyncScheduler } from './AsyncScheduler';
-import { SchedulerAction } from '../types';
-
-export class VirtualTimeScheduler extends AsyncScheduler {
-
-  protected static frameTimeFactor: number = 10;
-
-  public frame: number = 0;
-  public index: number = -1;
-
-  constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any,
-              public maxFrames: number = Number.POSITIVE_INFINITY) {
-    super(SchedulerAction, () => this.frame);
-  }
-
-  /**
-   * Prompt the Scheduler to execute all of its queued actions, therefore
-   * clearing its queue.
-   * @return {void}
-   */
-  public flush(): void {
-
-    const {actions, maxFrames} = this;
-    let error: any, action: AsyncAction<any>;
-
-    while ((action = actions[0]) && action.delay <= maxFrames) {
-      actions.shift();
-      this.frame = action.delay;
-
-      if (error = action.execute(action.state, action.delay)) {
-        break;
-      }
-    }
-
-    if (error) {
-      while (action = actions.shift()) {
-        action.unsubscribe();
-      }
-      throw error;
-    }
-  }
-}
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @nodoc
- */
-export class VirtualAction<T> extends AsyncAction<T> {
-
-  protected active: boolean = true;
-
-  constructor(protected scheduler: VirtualTimeScheduler,
-              protected work: (this: SchedulerAction<T>, state?: T) => void,
-              protected index: number = scheduler.index += 1) {
-    super(scheduler, work);
-    this.index = scheduler.index = index;
-  }
-
-  public schedule(state?: T, delay: number = 0): Subscription {
-    if (!this.id) {
-      return super.schedule(state, delay);
-    }
-    this.active = false;
-    // If an action is rescheduled, we save allocations by mutating its state,
-    // pushing it to the end of the scheduler queue, and recycling the action.
-    // But since the VirtualTimeScheduler is used for testing, VirtualActions
-    // must be immutable so they can be inspected later.
-    const action = new VirtualAction(this.scheduler, this.work);
-    this.add(action);
-    return action.schedule(state, delay);
-  }
-
-  protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {
-    this.delay = scheduler.frame + delay;
-    const {actions} = scheduler;
-    actions.push(this);
-    (actions as Array<VirtualAction<T>>).sort(VirtualAction.sortActions);
-    return true;
-  }
-
-  protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any {
-    return undefined;
-  }
-
-  protected _execute(state: T, delay: number): any {
-    if (this.active === true) {
-      return super._execute(state, delay);
-    }
-  }
-
-  public static sortActions<T>(a: VirtualAction<T>, b: VirtualAction<T>) {
-    if (a.delay === b.delay) {
-      if (a.index === b.index) {
-        return 0;
-      } else if (a.index > b.index) {
-        return 1;
-      } else {
-        return -1;
-      }
-    } else if (a.delay > b.delay) {
-      return 1;
-    } else {
-      return -1;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/scheduler/animationFrame.ts b/node_modules/rxjs/src/internal/scheduler/animationFrame.ts
deleted file mode 100644
index 6f16fd6..0000000
--- a/node_modules/rxjs/src/internal/scheduler/animationFrame.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { AnimationFrameAction } from './AnimationFrameAction';
-import { AnimationFrameScheduler } from './AnimationFrameScheduler';
-
-/**
- *
- * Animation Frame Scheduler
- *
- * <span class="informal">Perform task when `window.requestAnimationFrame` would fire</span>
- *
- * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler
- * behaviour.
- *
- * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.
- * It makes sure scheduled task will happen just before next browser content repaint,
- * thus performing animations as efficiently as possible.
- *
- * ## Example
- * Schedule div height animation
- * ```ts
- * // html: <div style="background: #0ff;"></div>
- * import { animationFrameScheduler } from 'rxjs';
- *
- * const div = document.querySelector('div');
- *
- * animationFrameScheduler.schedule(function(height) {
- *   div.style.height = height + "px";
- *
- *   this.schedule(height + 1);  // `this` references currently executing Action,
- *                               // which we reschedule with new state
- * }, 0, 0);
- *
- * // You will see a div element growing in height
- * ```
- *
- * @static true
- * @name animationFrame
- * @owner Scheduler
- */
-
-export const animationFrame = new AnimationFrameScheduler(AnimationFrameAction);
diff --git a/node_modules/rxjs/src/internal/scheduler/asap.ts b/node_modules/rxjs/src/internal/scheduler/asap.ts
deleted file mode 100644
index 93878a1..0000000
--- a/node_modules/rxjs/src/internal/scheduler/asap.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { AsapAction } from './AsapAction';
-import { AsapScheduler } from './AsapScheduler';
-
-/**
- *
- * Asap Scheduler
- *
- * <span class="informal">Perform task as fast as it can be performed asynchronously</span>
- *
- * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task
- * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing
- * code to end and then it will try to execute given task as fast as possible.
- *
- * `asap` scheduler will do its best to minimize time between end of currently executing code
- * and start of scheduled task. This makes it best candidate for performing so called "deferring".
- * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves
- * some (although minimal) unwanted delay.
- *
- * Note that using `asap` scheduler does not necessarily mean that your task will be first to process
- * after currently executing code. In particular, if some task was also scheduled with `asap` before,
- * that task will execute first. That being said, if you need to schedule task asynchronously, but
- * as soon as possible, `asap` scheduler is your best bet.
- *
- * ## Example
- * Compare async and asap scheduler<
- * ```ts
- * import { asapScheduler, asyncScheduler } from 'rxjs';
- *
- * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...
- * asapScheduler.schedule(() => console.log('asap'));
- *
- * // Logs:
- * // "asap"
- * // "async"
- * // ... but 'asap' goes first!
- * ```
- * @static true
- * @name asap
- * @owner Scheduler
- */
-
-export const asap = new AsapScheduler(AsapAction);
diff --git a/node_modules/rxjs/src/internal/scheduler/async.ts b/node_modules/rxjs/src/internal/scheduler/async.ts
deleted file mode 100644
index 0a8257a..0000000
--- a/node_modules/rxjs/src/internal/scheduler/async.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { AsyncAction } from './AsyncAction';
-import { AsyncScheduler } from './AsyncScheduler';
-
-/**
- *
- * Async Scheduler
- *
- * <span class="informal">Schedule task as if you used setTimeout(task, duration)</span>
- *
- * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript
- * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating
- * in intervals.
- *
- * If you just want to "defer" task, that is to perform it right after currently
- * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),
- * better choice will be the {@link asapScheduler} scheduler.
- *
- * ## Examples
- * Use async scheduler to delay task
- * ```ts
- * import { asyncScheduler } from 'rxjs';
- *
- * const task = () => console.log('it works!');
- *
- * asyncScheduler.schedule(task, 2000);
- *
- * // After 2 seconds logs:
- * // "it works!"
- * ```
- *
- * Use async scheduler to repeat task in intervals
- * ```ts
- * import { asyncScheduler } from 'rxjs';
- *
- * function task(state) {
- *   console.log(state);
- *   this.schedule(state + 1, 1000); // `this` references currently executing Action,
- *                                   // which we reschedule with new state and delay
- * }
- *
- * asyncScheduler.schedule(task, 3000, 0);
- *
- * // Logs:
- * // 0 after 3s
- * // 1 after 4s
- * // 2 after 5s
- * // 3 after 6s
- * ```
- *
- * @static true
- * @name async
- * @owner Scheduler
- */
-
-export const async = new AsyncScheduler(AsyncAction);
diff --git a/node_modules/rxjs/src/internal/scheduler/queue.ts b/node_modules/rxjs/src/internal/scheduler/queue.ts
deleted file mode 100644
index f11002f..0000000
--- a/node_modules/rxjs/src/internal/scheduler/queue.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import { QueueAction } from './QueueAction';
-import { QueueScheduler } from './QueueScheduler';
-
-/**
- *
- * Queue Scheduler
- *
- * <span class="informal">Put every next task on a queue, instead of executing it immediately</span>
- *
- * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.
- *
- * When used without delay, it schedules given task synchronously - executes it right when
- * it is scheduled. However when called recursively, that is when inside the scheduled task,
- * another task is scheduled with queue scheduler, instead of executing immediately as well,
- * that task will be put on a queue and wait for current one to finish.
- *
- * This means that when you execute task with `queue` scheduler, you are sure it will end
- * before any other task scheduled with that scheduler will start.
- *
- * ## Examples
- * Schedule recursively first, then do something
- * ```ts
- * import { queueScheduler } from 'rxjs';
- *
- * queueScheduler.schedule(() => {
- *   queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue
- *
- *   console.log('first');
- * });
- *
- * // Logs:
- * // "first"
- * // "second"
- * ```
- *
- * Reschedule itself recursively
- * ```ts
- * import { queueScheduler } from 'rxjs';
- *
- * queueScheduler.schedule(function(state) {
- *   if (state !== 0) {
- *     console.log('before', state);
- *     this.schedule(state - 1); // `this` references currently executing Action,
- *                               // which we reschedule with new state
- *     console.log('after', state);
- *   }
- * }, 0, 3);
- *
- * // In scheduler that runs recursively, you would expect:
- * // "before", 3
- * // "before", 2
- * // "before", 1
- * // "after", 1
- * // "after", 2
- * // "after", 3
- *
- * // But with queue it logs:
- * // "before", 3
- * // "after", 3
- * // "before", 2
- * // "after", 2
- * // "before", 1
- * // "after", 1
- * ```
- *
- * @static true
- * @name queue
- * @owner Scheduler
- */
-
-export const queue = new QueueScheduler(QueueAction);
diff --git a/node_modules/rxjs/src/internal/symbol/iterator.ts b/node_modules/rxjs/src/internal/symbol/iterator.ts
deleted file mode 100644
index 8e9871a..0000000
--- a/node_modules/rxjs/src/internal/symbol/iterator.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export function getSymbolIterator(): symbol {
-  if (typeof Symbol !== 'function' || !Symbol.iterator) {
-    return '@@iterator' as any;
-  }
-
-  return Symbol.iterator;
-}
-
-export const iterator = getSymbolIterator();
-
-/**
- * @deprecated use {@link iterator} instead
- */
-export const $$iterator = iterator;
diff --git a/node_modules/rxjs/src/internal/symbol/observable.ts b/node_modules/rxjs/src/internal/symbol/observable.ts
deleted file mode 100644
index a321d71..0000000
--- a/node_modules/rxjs/src/internal/symbol/observable.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/** Symbol.observable addition */
-/* Note: This will add Symbol.observable globally for all TypeScript users,
-  however, we are no longer polyfilling Symbol.observable */
-declare global {
-  interface SymbolConstructor {
-    readonly observable: symbol;
-  }
-}
-
-/** Symbol.observable or a string "@@observable". Used for interop */
-export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();
diff --git a/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts b/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts
deleted file mode 100644
index 3a558e3..0000000
--- a/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/** @deprecated do not use, this is no longer checked by RxJS internals */
-export const rxSubscriber = (() =>
-  typeof Symbol === 'function'
-    ? Symbol('rxSubscriber')
-    : '@@rxSubscriber_' + Math.random())();
-
-/**
- * @deprecated use rxSubscriber instead
- */
-export const $$rxSubscriber = rxSubscriber;
diff --git a/node_modules/rxjs/src/internal/testing/ColdObservable.ts b/node_modules/rxjs/src/internal/testing/ColdObservable.ts
deleted file mode 100644
index 29f620e..0000000
--- a/node_modules/rxjs/src/internal/testing/ColdObservable.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Observable } from '../Observable';
-import { Subscription } from '../Subscription';
-import { Scheduler } from '../Scheduler';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-import { Subscriber } from '../Subscriber';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class ColdObservable<T> extends Observable<T> implements SubscriptionLoggable {
-  public subscriptions: SubscriptionLog[] = [];
-  scheduler: Scheduler;
-  logSubscribedFrame: () => number;
-  logUnsubscribedFrame: (index: number) => void;
-
-  constructor(public messages: TestMessage[],
-              scheduler: Scheduler) {
-    super(function (this: Observable<T>, subscriber: Subscriber<any>) {
-      const observable: ColdObservable<T> = this as any;
-      const index = observable.logSubscribedFrame();
-      const subscription = new Subscription();
-      subscription.add(new Subscription(() => {
-        observable.logUnsubscribedFrame(index);
-      }));
-      observable.scheduleMessages(subscriber);
-      return subscription;
-    });
-    this.scheduler = scheduler;
-  }
-
-  scheduleMessages(subscriber: Subscriber<any>) {
-    const messagesLength = this.messages.length;
-    for (let i = 0; i < messagesLength; i++) {
-      const message = this.messages[i];
-      subscriber.add(
-        this.scheduler.schedule(({ message, subscriber }) => { message.notification.observe(subscriber); },
-          message.frame,
-          { message, subscriber })
-      );
-    }
-  }
-}
-applyMixins(ColdObservable, [SubscriptionLoggable]);
diff --git a/node_modules/rxjs/src/internal/testing/HotObservable.ts b/node_modules/rxjs/src/internal/testing/HotObservable.ts
deleted file mode 100644
index 34dcb60..0000000
--- a/node_modules/rxjs/src/internal/testing/HotObservable.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Subject } from '../Subject';
-import { Subscriber } from '../Subscriber';
-import { Subscription } from '../Subscription';
-import { Scheduler } from '../Scheduler';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { SubscriptionLoggable } from './SubscriptionLoggable';
-import { applyMixins } from '../util/applyMixins';
-
-/**
- * We need this JSDoc comment for affecting ESDoc.
- * @ignore
- * @extends {Ignored}
- */
-export class HotObservable<T> extends Subject<T> implements SubscriptionLoggable {
-  public subscriptions: SubscriptionLog[] = [];
-  scheduler: Scheduler;
-  logSubscribedFrame: () => number;
-  logUnsubscribedFrame: (index: number) => void;
-
-  constructor(public messages: TestMessage[],
-              scheduler: Scheduler) {
-    super();
-    this.scheduler = scheduler;
-  }
-
-  /** @deprecated This is an internal implementation detail, do not use. */
-  _subscribe(subscriber: Subscriber<any>): Subscription {
-    const subject: HotObservable<T> = this;
-    const index = subject.logSubscribedFrame();
-    const subscription = new Subscription();
-    subscription.add(new Subscription(() => {
-      subject.logUnsubscribedFrame(index);
-    }));
-    subscription.add(super._subscribe(subscriber));
-    return subscription;
-  }
-
-  setup() {
-    const subject = this;
-    const messagesLength = subject.messages.length;
-    /* tslint:disable:no-var-keyword */
-    for (var i = 0; i < messagesLength; i++) {
-      (() => {
-        var message = subject.messages[i];
-   /* tslint:enable */
-        subject.scheduler.schedule(
-          () => { message.notification.observe(subject); },
-          message.frame
-        );
-      })();
-    }
-  }
-}
-applyMixins(HotObservable, [SubscriptionLoggable]);
diff --git a/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts b/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts
deleted file mode 100644
index 03858bf..0000000
--- a/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export class SubscriptionLog {
-  constructor(public subscribedFrame: number,
-              public unsubscribedFrame: number = Number.POSITIVE_INFINITY) {
-  }
-}
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts b/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts
deleted file mode 100644
index 1724137..0000000
--- a/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Scheduler } from '../Scheduler';
-import { SubscriptionLog } from './SubscriptionLog';
-
-export class SubscriptionLoggable {
-  public subscriptions: SubscriptionLog[] = [];
-  scheduler: Scheduler;
-
-  logSubscribedFrame(): number {
-    this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));
-    return this.subscriptions.length - 1;
-  }
-
-  logUnsubscribedFrame(index: number) {
-    const subscriptionLogs = this.subscriptions;
-    const oldSubscriptionLog = subscriptionLogs[index];
-    subscriptionLogs[index] = new SubscriptionLog(
-      oldSubscriptionLog.subscribedFrame,
-      this.scheduler.now()
-    );
-  }
-}
diff --git a/node_modules/rxjs/src/internal/testing/TestMessage.ts b/node_modules/rxjs/src/internal/testing/TestMessage.ts
deleted file mode 100644
index a95c71c..0000000
--- a/node_modules/rxjs/src/internal/testing/TestMessage.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Notification } from '../Notification';
-
-export interface TestMessage {
-  frame: number;
-  notification: Notification<any>;
-  isGhost?: boolean;
-}
diff --git a/node_modules/rxjs/src/internal/testing/TestScheduler.ts b/node_modules/rxjs/src/internal/testing/TestScheduler.ts
deleted file mode 100644
index 7c7dc9e..0000000
--- a/node_modules/rxjs/src/internal/testing/TestScheduler.ts
+++ /dev/null
@@ -1,401 +0,0 @@
-import { Observable } from '../Observable';
-import { Notification } from '../Notification';
-import { ColdObservable } from './ColdObservable';
-import { HotObservable } from './HotObservable';
-import { TestMessage } from './TestMessage';
-import { SubscriptionLog } from './SubscriptionLog';
-import { Subscription } from '../Subscription';
-import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';
-import { AsyncScheduler } from '../scheduler/AsyncScheduler';
-
-const defaultMaxFrame: number = 750;
-
-export interface RunHelpers {
-  cold: typeof TestScheduler.prototype.createColdObservable;
-  hot: typeof TestScheduler.prototype.createHotObservable;
-  flush: typeof TestScheduler.prototype.flush;
-  expectObservable: typeof TestScheduler.prototype.expectObservable;
-  expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions;
-}
-
-interface FlushableTest {
-  ready: boolean;
-  actual?: any[];
-  expected?: any[];
-}
-
-export type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void;
-export type subscriptionLogsToBeFn = (marbles: string | string[]) => void;
-
-export class TestScheduler extends VirtualTimeScheduler {
-  public readonly hotObservables: HotObservable<any>[] = [];
-  public readonly coldObservables: ColdObservable<any>[] = [];
-  private flushTests: FlushableTest[] = [];
-  private runMode = false;
-
-  constructor(public assertDeepEqual: (actual: any, expected: any) => boolean | void) {
-    super(VirtualAction, defaultMaxFrame);
-  }
-
-  createTime(marbles: string): number {
-    const indexOf: number = marbles.indexOf('|');
-    if (indexOf === -1) {
-      throw new Error('marble diagram for time should have a completion marker "|"');
-    }
-    return indexOf * TestScheduler.frameTimeFactor;
-  }
-
-  /**
-   * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.
-   * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.
-   * @param error The error to use for the `#` marble (if present).
-   */
-  createColdObservable<T = string>(marbles: string, values?: { [marble: string]: T }, error?: any): ColdObservable<T> {
-    if (marbles.indexOf('^') !== -1) {
-      throw new Error('cold observable cannot have subscription offset "^"');
-    }
-    if (marbles.indexOf('!') !== -1) {
-      throw new Error('cold observable cannot have unsubscription marker "!"');
-    }
-    const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-    const cold = new ColdObservable<T>(messages, this);
-    this.coldObservables.push(cold);
-    return cold;
-  }
-
-  /**
-   * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided.
-   * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used.
-   * @param error The error to use for the `#` marble (if present).
-   */
-  createHotObservable<T = string>(marbles: string, values?: { [marble: string]: T }, error?: any): HotObservable<T> {
-    if (marbles.indexOf('!') !== -1) {
-      throw new Error('hot observable cannot have unsubscription marker "!"');
-    }
-    const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
-    const subject = new HotObservable<T>(messages, this);
-    this.hotObservables.push(subject);
-    return subject;
-  }
-
-  private materializeInnerObservable(observable: Observable<any>,
-                                     outerFrame: number): TestMessage[] {
-    const messages: TestMessage[] = [];
-    observable.subscribe((value) => {
-      messages.push({ frame: this.frame - outerFrame, notification: Notification.createNext(value) });
-    }, (err) => {
-      messages.push({ frame: this.frame - outerFrame, notification: Notification.createError(err) });
-    }, () => {
-      messages.push({ frame: this.frame - outerFrame, notification: Notification.createComplete() });
-    });
-    return messages;
-  }
-
-  expectObservable(observable: Observable<any>,
-                   subscriptionMarbles: string = null): ({ toBe: observableToBeFn }) {
-    const actual: TestMessage[] = [];
-    const flushTest: FlushableTest = { actual, ready: false };
-    const subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
-    const subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?
-      0 : subscriptionParsed.subscribedFrame;
-    const unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
-    let subscription: Subscription;
-
-    this.schedule(() => {
-      subscription = observable.subscribe(x => {
-        let value = x;
-        // Support Observable-of-Observables
-        if (x instanceof Observable) {
-          value = this.materializeInnerObservable(value, this.frame);
-        }
-        actual.push({ frame: this.frame, notification: Notification.createNext(value) });
-      }, (err) => {
-        actual.push({ frame: this.frame, notification: Notification.createError(err) });
-      }, () => {
-        actual.push({ frame: this.frame, notification: Notification.createComplete() });
-      });
-    }, subscriptionFrame);
-
-    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-      this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame);
-    }
-
-    this.flushTests.push(flushTest);
-    const { runMode } = this;
-
-    return {
-      toBe(marbles: string, values?: any, errorValue?: any) {
-        flushTest.ready = true;
-        flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
-      }
-    };
-  }
-
-  expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({ toBe: subscriptionLogsToBeFn }) {
-    const flushTest: FlushableTest = { actual: actualSubscriptionLogs, ready: false };
-    this.flushTests.push(flushTest);
-    const { runMode } = this;
-    return {
-      toBe(marbles: string | string[]) {
-        const marblesArray: string[] = (typeof marbles === 'string') ? [marbles] : marbles;
-        flushTest.ready = true;
-        flushTest.expected = marblesArray.map(marbles =>
-          TestScheduler.parseMarblesAsSubscriptions(marbles, runMode)
-        );
-      }
-    };
-  }
-
-  flush() {
-    const hotObservables = this.hotObservables;
-    while (hotObservables.length > 0) {
-      hotObservables.shift().setup();
-    }
-
-    super.flush();
-
-    this.flushTests = this.flushTests.filter(test => {
-      if (test.ready) {
-        this.assertDeepEqual(test.actual, test.expected);
-        return false;
-      }
-      return true;
-    });
-  }
-
-  /** @nocollapse */
-  static parseMarblesAsSubscriptions(marbles: string, runMode = false): SubscriptionLog {
-    if (typeof marbles !== 'string') {
-      return new SubscriptionLog(Number.POSITIVE_INFINITY);
-    }
-    const len = marbles.length;
-    let groupStart = -1;
-    let subscriptionFrame = Number.POSITIVE_INFINITY;
-    let unsubscriptionFrame = Number.POSITIVE_INFINITY;
-    let frame = 0;
-
-    for (let i = 0; i < len; i++) {
-      let nextFrame = frame;
-      const advanceFrameBy = (count: number) => {
-        nextFrame += count * this.frameTimeFactor;
-      };
-      const c = marbles[i];
-      switch (c) {
-        case ' ':
-          // Whitespace no longer advances time
-          if (!runMode) {
-            advanceFrameBy(1);
-          }
-          break;
-        case '-':
-          advanceFrameBy(1);
-          break;
-        case '(':
-          groupStart = frame;
-          advanceFrameBy(1);
-          break;
-        case ')':
-          groupStart = -1;
-          advanceFrameBy(1);
-          break;
-        case '^':
-          if (subscriptionFrame !== Number.POSITIVE_INFINITY) {
-            throw new Error('found a second subscription point \'^\' in a ' +
-              'subscription marble diagram. There can only be one.');
-          }
-          subscriptionFrame = groupStart > -1 ? groupStart : frame;
-          advanceFrameBy(1);
-          break;
-        case '!':
-          if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {
-            throw new Error('found a second subscription point \'^\' in a ' +
-              'subscription marble diagram. There can only be one.');
-          }
-          unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
-          break;
-        default:
-          // time progression syntax
-          if (runMode && c.match(/^[0-9]$/)) {
-            // Time progression must be preceeded by at least one space
-            // if it's not at the beginning of the diagram
-            if (i === 0 || marbles[i - 1] === ' ') {
-              const buffer = marbles.slice(i);
-              const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-              if (match) {
-                i += match[0].length - 1;
-                const duration = parseFloat(match[1]);
-                const unit = match[2];
-                let durationInMs: number;
-
-                switch (unit) {
-                  case 'ms':
-                    durationInMs = duration;
-                    break;
-                  case 's':
-                    durationInMs = duration * 1000;
-                    break;
-                  case 'm':
-                    durationInMs = duration * 1000 * 60;
-                    break;
-                  default:
-                    break;
-                }
-
-                advanceFrameBy(durationInMs / this.frameTimeFactor);
-                break;
-              }
-            }
-          }
-
-          throw new Error('there can only be \'^\' and \'!\' markers in a ' +
-            'subscription marble diagram. Found instead \'' + c + '\'.');
-      }
-
-      frame = nextFrame;
-    }
-
-    if (unsubscriptionFrame < 0) {
-      return new SubscriptionLog(subscriptionFrame);
-    } else {
-      return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
-    }
-  }
-
-  /** @nocollapse */
-  static parseMarbles(marbles: string,
-                      values?: any,
-                      errorValue?: any,
-                      materializeInnerObservables: boolean = false,
-                      runMode = false): TestMessage[] {
-    if (marbles.indexOf('!') !== -1) {
-      throw new Error('conventional marble diagrams cannot have the ' +
-        'unsubscription marker "!"');
-    }
-    const len = marbles.length;
-    const testMessages: TestMessage[] = [];
-    const subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
-    let frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);
-    const getValue = typeof values !== 'object' ?
-      (x: any) => x :
-      (x: any) => {
-        // Support Observable-of-Observables
-        if (materializeInnerObservables && values[x] instanceof ColdObservable) {
-          return values[x].messages;
-        }
-        return values[x];
-      };
-    let groupStart = -1;
-
-    for (let i = 0; i < len; i++) {
-      let nextFrame = frame;
-      const advanceFrameBy = (count: number) => {
-        nextFrame += count * this.frameTimeFactor;
-      };
-
-      let notification: Notification<any>;
-      const c = marbles[i];
-      switch (c) {
-        case ' ':
-          // Whitespace no longer advances time
-          if (!runMode) {
-            advanceFrameBy(1);
-          }
-          break;
-        case '-':
-          advanceFrameBy(1);
-          break;
-        case '(':
-          groupStart = frame;
-          advanceFrameBy(1);
-          break;
-        case ')':
-          groupStart = -1;
-          advanceFrameBy(1);
-          break;
-        case '|':
-          notification = Notification.createComplete();
-          advanceFrameBy(1);
-          break;
-        case '^':
-          advanceFrameBy(1);
-          break;
-        case '#':
-          notification = Notification.createError(errorValue || 'error');
-          advanceFrameBy(1);
-          break;
-        default:
-          // Might be time progression syntax, or a value literal
-          if (runMode && c.match(/^[0-9]$/)) {
-            // Time progression must be preceeded by at least one space
-            // if it's not at the beginning of the diagram
-            if (i === 0 || marbles[i - 1] === ' ') {
-              const buffer = marbles.slice(i);
-              const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
-              if (match) {
-                i += match[0].length - 1;
-                const duration = parseFloat(match[1]);
-                const unit = match[2];
-                let durationInMs: number;
-
-                switch (unit) {
-                  case 'ms':
-                    durationInMs = duration;
-                    break;
-                  case 's':
-                    durationInMs = duration * 1000;
-                    break;
-                  case 'm':
-                    durationInMs = duration * 1000 * 60;
-                    break;
-                  default:
-                    break;
-                }
-
-                advanceFrameBy(durationInMs / this.frameTimeFactor);
-                break;
-              }
-            }
-          }
-
-          notification = Notification.createNext(getValue(c));
-          advanceFrameBy(1);
-          break;
-      }
-
-      if (notification) {
-        testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification });
-      }
-
-      frame = nextFrame;
-    }
-    return testMessages;
-  }
-
-  run<T>(callback: (helpers: RunHelpers) => T): T {
-    const prevFrameTimeFactor = TestScheduler.frameTimeFactor;
-    const prevMaxFrames = this.maxFrames;
-
-    TestScheduler.frameTimeFactor = 1;
-    this.maxFrames = Number.POSITIVE_INFINITY;
-    this.runMode = true;
-    AsyncScheduler.delegate = this;
-
-    const helpers = {
-      cold: this.createColdObservable.bind(this),
-      hot: this.createHotObservable.bind(this),
-      flush: this.flush.bind(this),
-      expectObservable: this.expectObservable.bind(this),
-      expectSubscriptions: this.expectSubscriptions.bind(this),
-    };
-    try {
-      const ret = callback(helpers);
-      this.flush();
-      return ret;
-    } finally {
-      TestScheduler.frameTimeFactor = prevFrameTimeFactor;
-      this.maxFrames = prevMaxFrames;
-      this.runMode = false;
-      AsyncScheduler.delegate = undefined;
-    }
-  }
-}
diff --git a/node_modules/rxjs/src/internal/types.ts b/node_modules/rxjs/src/internal/types.ts
deleted file mode 100644
index e532dc8..0000000
--- a/node_modules/rxjs/src/internal/types.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import { Observable } from './Observable';
-import { Subscription } from './Subscription';
-
-/** OPERATOR INTERFACES */
-
-export interface UnaryFunction<T, R> { (source: T): R; }
-
-export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {}
-
-export type FactoryOrValue<T> = T | (() => T);
-
-export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {}
-
-export interface Timestamp<T> {
-  value: T;
-  timestamp: number;
-}
-
-export interface TimeInterval<T> {
-  value: T;
-  interval: number;
-}
-
-/** SUBSCRIPTION INTERFACES */
-
-export interface Unsubscribable {
-  unsubscribe(): void;
-}
-
-export type TeardownLogic = Unsubscribable | Function | void;
-
-export interface SubscriptionLike extends Unsubscribable {
-  unsubscribe(): void;
-  readonly closed: boolean;
-}
-
-export type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
-
-/** OBSERVABLE INTERFACES */
-
-export interface Subscribable<T> {
-  subscribe(observer?: PartialObserver<T>): Unsubscribable;
-  /** @deprecated Use an observer instead of a complete callback */
-  subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
-  /** @deprecated Use an observer instead of an error callback */
-  subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
-  /** @deprecated Use an observer instead of a complete callback */
-  subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
-  subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
-}
-
-export type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
-
-/** @deprecated use {@link InteropObservable } */
-export type ObservableLike<T> = InteropObservable<T>;
-
-export type InteropObservable<T> = { [Symbol.observable]: () => Subscribable<T>; };
-
-/** OBSERVER INTERFACES */
-
-export interface NextObserver<T> {
-  closed?: boolean;
-  next: (value: T) => void;
-  error?: (err: any) => void;
-  complete?: () => void;
-}
-
-export interface ErrorObserver<T> {
-  closed?: boolean;
-  next?: (value: T) => void;
-  error: (err: any) => void;
-  complete?: () => void;
-}
-
-export interface CompletionObserver<T> {
-  closed?: boolean;
-  next?: (value: T) => void;
-  error?: (err: any) => void;
-  complete: () => void;
-}
-
-export type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
-
-export interface Observer<T> {
-  closed?: boolean;
-  next: (value: T) => void;
-  error: (err: any) => void;
-  complete: () => void;
-}
-
-/** SCHEDULER INTERFACES */
-
-export interface SchedulerLike {
-  now(): number;
-  schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
-}
-export interface SchedulerAction<T> extends Subscription {
-  schedule(state?: T, delay?: number): Subscription;
-}
-
-export type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
-
-export type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
diff --git a/node_modules/rxjs/src/internal/umd.ts b/node_modules/rxjs/src/internal/umd.ts
deleted file mode 100644
index e81c574..0000000
--- a/node_modules/rxjs/src/internal/umd.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-  NOTE: This is the global export file for rxjs v6 and higher.
- */
-
-/* rxjs */
-export * from '../index';
-
-/* rxjs.operators */
-import * as _operators from '../operators/index';
-export const operators = _operators;
-
-/* rxjs.testing */
-import * as _testing from '../testing/index';
-export const testing = _testing;
-
-/* rxjs.ajax */
-import * as _ajax from '../ajax/index';
-export const ajax = _ajax;
-
-/* rxjs.webSocket */
-import * as _webSocket from '../webSocket/index';
-export const webSocket = _webSocket;
-
-/* rxjs.fetch */
-import * as _fetch from '../fetch/index';
-export const fetch = _fetch;
diff --git a/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts b/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts
deleted file mode 100644
index b9bd72d..0000000
--- a/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-export interface ArgumentOutOfRangeError extends Error {
-}
-
-export interface ArgumentOutOfRangeErrorCtor {
-  new(): ArgumentOutOfRangeError;
-}
-
-const ArgumentOutOfRangeErrorImpl = (() => {
-  function ArgumentOutOfRangeErrorImpl(this: any) {
-    Error.call(this);
-    this.message = 'argument out of range';
-    this.name = 'ArgumentOutOfRangeError';
-    return this;
-  }
-
-  ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);
-
-  return ArgumentOutOfRangeErrorImpl;
-})();
-
-/**
- * An error thrown when an element was queried at a certain index of an
- * Observable, but no such index or position exists in that sequence.
- *
- * @see {@link elementAt}
- * @see {@link take}
- * @see {@link takeLast}
- *
- * @class ArgumentOutOfRangeError
- */
-export const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = ArgumentOutOfRangeErrorImpl as any;
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/EmptyError.ts b/node_modules/rxjs/src/internal/util/EmptyError.ts
deleted file mode 100644
index 6eb1d07..0000000
--- a/node_modules/rxjs/src/internal/util/EmptyError.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-export interface EmptyError extends Error {
-}
-
-export interface EmptyErrorCtor {
-  new(): EmptyError;
-}
-
-const EmptyErrorImpl = (() => {
-  function EmptyErrorImpl(this: any) {
-    Error.call(this);
-    this.message = 'no elements in sequence';
-    this.name = 'EmptyError';
-    return this;
-  }
-
-  EmptyErrorImpl.prototype = Object.create(Error.prototype);
-
-  return EmptyErrorImpl;
-})();
-
-/**
- * An error thrown when an Observable or a sequence was queried but has no
- * elements.
- *
- * @see {@link first}
- * @see {@link last}
- * @see {@link single}
- *
- * @class EmptyError
- */
-export const EmptyError: EmptyErrorCtor = EmptyErrorImpl as any;
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/Immediate.ts b/node_modules/rxjs/src/internal/util/Immediate.ts
deleted file mode 100644
index ba29661..0000000
--- a/node_modules/rxjs/src/internal/util/Immediate.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-let nextHandle = 1;
-const RESOLVED = (() => Promise.resolve())();
-const activeHandles: { [key: number]: any } = {};
-
-/**
- * Finds the handle in the list of active handles, and removes it.
- * Returns `true` if found, `false` otherwise. Used both to clear
- * Immediate scheduled tasks, and to identify if a task should be scheduled.
- */
-function findAndClearHandle(handle: number): boolean {
-  if (handle in activeHandles) {
-    delete activeHandles[handle];
-    return true;
-  }
-  return false;
-}
-
-/**
- * Helper functions to schedule and unschedule microtasks.
- */
-export const Immediate = {
-  setImmediate(cb: () => void): number {
-    const handle = nextHandle++;
-    activeHandles[handle] = true;
-    RESOLVED.then(() => findAndClearHandle(handle) && cb());
-    return handle;
-  },
-
-  clearImmediate(handle: number): void {
-    findAndClearHandle(handle);
-  },
-};
-
-/**
- * Used for internal testing purposes only. Do not export from library.
- */
-export const TestTools = {
-  pending() {
-    return Object.keys(activeHandles).length;
-  }
-};
diff --git a/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts b/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts
deleted file mode 100644
index 45d2066..0000000
--- a/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-export interface ObjectUnsubscribedError extends Error {
-}
-
-export interface ObjectUnsubscribedErrorCtor {
-  new(): ObjectUnsubscribedError;
-}
-
-const ObjectUnsubscribedErrorImpl = (() => {
-  function ObjectUnsubscribedErrorImpl(this: any) {
-    Error.call(this);
-    this.message = 'object unsubscribed';
-    this.name = 'ObjectUnsubscribedError';
-    return this;
-  }
-
-  ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);
-
-  return ObjectUnsubscribedErrorImpl;
-})();
-
-/**
- * An error thrown when an action is invalid because the object has been
- * unsubscribed.
- *
- * @see {@link Subject}
- * @see {@link BehaviorSubject}
- *
- * @class ObjectUnsubscribedError
- */
-export const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/TimeoutError.ts b/node_modules/rxjs/src/internal/util/TimeoutError.ts
deleted file mode 100644
index fd0ae50..0000000
--- a/node_modules/rxjs/src/internal/util/TimeoutError.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-export interface TimeoutError extends Error {
-}
-
-export interface TimeoutErrorCtor {
-  new(): TimeoutError;
-}
-
-const TimeoutErrorImpl = (() => {
-  function TimeoutErrorImpl(this: any) {
-    Error.call(this);
-    this.message = 'Timeout has occurred';
-    this.name = 'TimeoutError';
-    return this;
-  }
-
-  TimeoutErrorImpl.prototype = Object.create(Error.prototype);
-
-  return TimeoutErrorImpl;
-})();
-
-/**
- * An error thrown when duetime elapses.
- *
- * @see {@link operators/timeout}
- *
- * @class TimeoutError
- */
-export const TimeoutError: TimeoutErrorCtor = TimeoutErrorImpl as any;
diff --git a/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts b/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts
deleted file mode 100644
index 02f1a0d..0000000
--- a/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-export interface UnsubscriptionError extends Error {
-  readonly errors: any[];
-}
-
-export interface UnsubscriptionErrorCtor {
-  new(errors: any[]): UnsubscriptionError;
-}
-
-const UnsubscriptionErrorImpl = (() => {
-  function UnsubscriptionErrorImpl(this: any, errors: any[]) {
-    Error.call(this);
-    this.message = errors ?
-      `${errors.length} errors occurred during unsubscription:
-${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n  ')}` : '';
-    this.name = 'UnsubscriptionError';
-    this.errors = errors;
-    return this;
-  }
-
-  UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);
-
-  return UnsubscriptionErrorImpl;
-})();
-
-/**
- * An error thrown when one or more errors have occurred during the
- * `unsubscribe` of a {@link Subscription}.
- */
-export const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/applyMixins.ts b/node_modules/rxjs/src/internal/util/applyMixins.ts
deleted file mode 100644
index 7c1ed24..0000000
--- a/node_modules/rxjs/src/internal/util/applyMixins.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export function applyMixins(derivedCtor: any, baseCtors: any[]) {
-  for (let i = 0, len = baseCtors.length; i < len; i++) {
-    const baseCtor = baseCtors[i];
-    const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
-    for (let j = 0, len2 = propertyKeys.length; j < len2; j++) {
-      const name = propertyKeys[j];
-      derivedCtor.prototype[name] = baseCtor.prototype[name];
-    }
-  }
-}
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/canReportError.ts b/node_modules/rxjs/src/internal/util/canReportError.ts
deleted file mode 100644
index deed48e..0000000
--- a/node_modules/rxjs/src/internal/util/canReportError.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { Subject } from '../Subject';
-
-/**
- * Determines whether the ErrorObserver is closed or stopped or has a
- * destination that is closed or stopped - in which case errors will
- * need to be reported via a different mechanism.
- * @param observer the observer
- */
-export function canReportError(observer: Subscriber<any> | Subject<any>): boolean {
-  while (observer) {
-    const { closed, destination, isStopped } = observer as any;
-    if (closed || isStopped) {
-      return false;
-    } else if (destination && destination instanceof Subscriber) {
-      observer = destination;
-    } else {
-      observer = null;
-    }
-  }
-  return true;
-}
diff --git a/node_modules/rxjs/src/internal/util/errorObject.ts b/node_modules/rxjs/src/internal/util/errorObject.ts
deleted file mode 100644
index 63e2c7f..0000000
--- a/node_modules/rxjs/src/internal/util/errorObject.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-// typeof any so that it we don't have to cast when comparing a result to the error object
-export const errorObject: any = { e: {} };
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/hostReportError.ts b/node_modules/rxjs/src/internal/util/hostReportError.ts
deleted file mode 100644
index 6d0082a..0000000
--- a/node_modules/rxjs/src/internal/util/hostReportError.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Throws an error on another job so that it's picked up by the runtime's
- * uncaught error handling mechanism.
- * @param err the error to throw
- */
-export function hostReportError(err: any) {
-  setTimeout(() => { throw err; }, 0);
-}
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/identity.ts b/node_modules/rxjs/src/internal/util/identity.ts
deleted file mode 100644
index 6589842..0000000
--- a/node_modules/rxjs/src/internal/util/identity.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function identity<T>(x: T): T {
-  return x;
-}
diff --git a/node_modules/rxjs/src/internal/util/isArray.ts b/node_modules/rxjs/src/internal/util/isArray.ts
deleted file mode 100644
index 092f8a2..0000000
--- a/node_modules/rxjs/src/internal/util/isArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isArray = (() => Array.isArray || (<T>(x: any): x is T[] => x && typeof x.length === 'number'))();
diff --git a/node_modules/rxjs/src/internal/util/isArrayLike.ts b/node_modules/rxjs/src/internal/util/isArrayLike.ts
deleted file mode 100644
index 6f634d4..0000000
--- a/node_modules/rxjs/src/internal/util/isArrayLike.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/isDate.ts b/node_modules/rxjs/src/internal/util/isDate.ts
deleted file mode 100644
index b18edf0..0000000
--- a/node_modules/rxjs/src/internal/util/isDate.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function isDate(value: any): value is Date {
-  return value instanceof Date && !isNaN(+value);
-}
diff --git a/node_modules/rxjs/src/internal/util/isFunction.ts b/node_modules/rxjs/src/internal/util/isFunction.ts
deleted file mode 100644
index 287e887..0000000
--- a/node_modules/rxjs/src/internal/util/isFunction.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function isFunction(x: any): x is Function {
-  return typeof x === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/util/isInteropObservable.ts b/node_modules/rxjs/src/internal/util/isInteropObservable.ts
deleted file mode 100644
index fbd8fc4..0000000
--- a/node_modules/rxjs/src/internal/util/isInteropObservable.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { InteropObservable } from '../types';
-import { observable as Symbol_observable } from '../symbol/observable';
-
-/** Identifies an input as being Observable (but not necessary an Rx Observable) */
-export function isInteropObservable(input: any): input is InteropObservable<any> {
-  return input && typeof input[Symbol_observable] === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/util/isIterable.ts b/node_modules/rxjs/src/internal/util/isIterable.ts
deleted file mode 100644
index fc8fd07..0000000
--- a/node_modules/rxjs/src/internal/util/isIterable.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-
-/** Identifies an input as being an Iterable */
-export function isIterable(input: any): input is Iterable<any> {
-  return input && typeof input[Symbol_iterator] === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/util/isNumeric.ts b/node_modules/rxjs/src/internal/util/isNumeric.ts
deleted file mode 100644
index 7983f47..0000000
--- a/node_modules/rxjs/src/internal/util/isNumeric.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { isArray } from './isArray';
-
-export function isNumeric(val: any): val is number | string {
-  // parseFloat NaNs numeric-cast false positives (null|true|false|"")
-  // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
-  // subtraction forces infinities to NaN
-  // adding 1 corrects loss of precision from parseFloat (#15100)
-  return !isArray(val) && (val - parseFloat(val) + 1) >= 0;
-}
diff --git a/node_modules/rxjs/src/internal/util/isObject.ts b/node_modules/rxjs/src/internal/util/isObject.ts
deleted file mode 100644
index 536a52e..0000000
--- a/node_modules/rxjs/src/internal/util/isObject.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function isObject(x: any): x is Object {
-  return x !== null && typeof x === 'object';
-}
diff --git a/node_modules/rxjs/src/internal/util/isObservable.ts b/node_modules/rxjs/src/internal/util/isObservable.ts
deleted file mode 100644
index f3df524..0000000
--- a/node_modules/rxjs/src/internal/util/isObservable.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Observable } from '../Observable';
-import { ObservableInput } from '../types';
-
-/**
- * Tests to see if the object is an RxJS {@link Observable}
- * @param obj the object to test
- */
-export function isObservable<T>(obj: any): obj is Observable<T> {
-  return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
-}
diff --git a/node_modules/rxjs/src/internal/util/isPromise.ts b/node_modules/rxjs/src/internal/util/isPromise.ts
deleted file mode 100644
index 20ee36d..0000000
--- a/node_modules/rxjs/src/internal/util/isPromise.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Tests to see if the object is an ES2015 (ES6) Promise
- * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects}
- * @param value the object to test
- */
-export function isPromise(value: any): value is PromiseLike<any> {
-  return !!value && typeof (<any>value).subscribe !== 'function' && typeof (value as any).then === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/util/isScheduler.ts b/node_modules/rxjs/src/internal/util/isScheduler.ts
deleted file mode 100644
index 594f195..0000000
--- a/node_modules/rxjs/src/internal/util/isScheduler.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { SchedulerLike } from '../types';
-
-export function isScheduler(value: any): value is SchedulerLike {
-  return value && typeof (<any>value).schedule === 'function';
-}
diff --git a/node_modules/rxjs/src/internal/util/noop.ts b/node_modules/rxjs/src/internal/util/noop.ts
deleted file mode 100644
index fc857f2..0000000
--- a/node_modules/rxjs/src/internal/util/noop.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-/* tslint:disable:no-empty */
-export function noop() { }
diff --git a/node_modules/rxjs/src/internal/util/not.ts b/node_modules/rxjs/src/internal/util/not.ts
deleted file mode 100644
index e5e6952..0000000
--- a/node_modules/rxjs/src/internal/util/not.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export function not(pred: Function, thisArg: any): Function {
-  function notPred(): any {
-    return !((<any> notPred).pred.apply((<any> notPred).thisArg, arguments));
-  }
-  (<any> notPred).pred = pred;
-  (<any> notPred).thisArg = thisArg;
-  return notPred;
-}
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/pipe.ts b/node_modules/rxjs/src/internal/util/pipe.ts
deleted file mode 100644
index 206f566..0000000
--- a/node_modules/rxjs/src/internal/util/pipe.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { noop } from './noop';
-import { UnaryFunction } from '../types';
-
-/* tslint:disable:max-line-length */
-export function pipe<T>(): UnaryFunction<T, T>;
-export function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;
-export function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;
-export function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;
-export function pipe<T, A, B, C, D>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>): UnaryFunction<T, D>;
-export function pipe<T, A, B, C, D, E>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>): UnaryFunction<T, E>;
-export function pipe<T, A, B, C, D, E, F>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>): UnaryFunction<T, F>;
-export function pipe<T, A, B, C, D, E, F, G>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>): UnaryFunction<T, G>;
-export function pipe<T, A, B, C, D, E, F, G, H>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>): UnaryFunction<T, H>;
-export function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>): UnaryFunction<T, I>;
-export function pipe<T, A, B, C, D, E, F, G, H, I>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>, fn4: UnaryFunction<C, D>, fn5: UnaryFunction<D, E>, fn6: UnaryFunction<E, F>, fn7: UnaryFunction<F, G>, fn8: UnaryFunction<G, H>, fn9: UnaryFunction<H, I>, ...fns: UnaryFunction<any, any>[]): UnaryFunction<T, {}>;
-/* tslint:enable:max-line-length */
-
-export function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {
-  return pipeFromArray(fns);
-}
-
-/** @internal */
-export function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {
-  if (!fns) {
-    return noop as UnaryFunction<any, any>;
-  }
-
-  if (fns.length === 1) {
-    return fns[0];
-  }
-
-  return function piped(input: T): R {
-    return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);
-  };
-}
diff --git a/node_modules/rxjs/src/internal/util/root.ts b/node_modules/rxjs/src/internal/util/root.ts
deleted file mode 100644
index 7ab51e5..0000000
--- a/node_modules/rxjs/src/internal/util/root.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-declare let global: any;
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-
-declare var WorkerGlobalScope: any;
-// CommonJS / Node have global context exposed as "global" variable.
-// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake
-// the global "global" var for now.
-
-const __window = typeof window !== 'undefined' && window;
-const __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&
-    self instanceof WorkerGlobalScope && self;
-const __global = typeof global !== 'undefined' && global;
-const _root: any = __window || __global || __self;
-
-// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.
-// This is needed when used with angular/tsickle which inserts a goog.module statement.
-// Wrap in IIFE
-(function () {
-  if (!_root) {
-    throw new Error('RxJS could not find any global context (window, self, global)');
-  }
-})();
-
-export { _root as root };
\ No newline at end of file
diff --git a/node_modules/rxjs/src/internal/util/subscribeTo.ts b/node_modules/rxjs/src/internal/util/subscribeTo.ts
deleted file mode 100644
index c872f6a..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeTo.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { ObservableInput } from '../types';
-import { subscribeToArray } from './subscribeToArray';
-import { subscribeToPromise } from './subscribeToPromise';
-import { subscribeToIterable } from './subscribeToIterable';
-import { subscribeToObservable } from './subscribeToObservable';
-import { isArrayLike } from './isArrayLike';
-import { isPromise } from './isPromise';
-import { isObject } from './isObject';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-import { observable as Symbol_observable } from '../symbol/observable';
-import { Subscription } from '../Subscription';
-import { Subscriber } from '../Subscriber';
-
-export const subscribeTo = <T>(result: ObservableInput<T>): (subscriber: Subscriber<T>) => Subscription | void => {
-  if (!!result && typeof result[Symbol_observable] === 'function') {
-    return subscribeToObservable(result as any);
-  } else if (isArrayLike(result)) {
-    return subscribeToArray(result);
-  } else if (isPromise(result)) {
-    return subscribeToPromise(result as Promise<any>);
-  } else if (!!result && typeof result[Symbol_iterator] === 'function') {
-    return subscribeToIterable(result as any);
-  } else {
-    const value = isObject(result) ? 'an invalid object' : `'${result}'`;
-    const msg = `You provided ${value} where a stream was expected.`
-      + ' You can provide an Observable, Promise, Array, or Iterable.';
-    throw new TypeError(msg);
-  }
-};
diff --git a/node_modules/rxjs/src/internal/util/subscribeToArray.ts b/node_modules/rxjs/src/internal/util/subscribeToArray.ts
deleted file mode 100644
index 0ca5294..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeToArray.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Subscriber } from '../Subscriber';
-
-/**
- * Subscribes to an ArrayLike with a subscriber
- * @param array The array or array-like to subscribe to
- */
-export const subscribeToArray = <T>(array: ArrayLike<T>) => (subscriber: Subscriber<T>) => {
-  for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {
-    subscriber.next(array[i]);
-  }
-  subscriber.complete();
-};
diff --git a/node_modules/rxjs/src/internal/util/subscribeToIterable.ts b/node_modules/rxjs/src/internal/util/subscribeToIterable.ts
deleted file mode 100644
index 6d20f68..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeToIterable.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { iterator as Symbol_iterator } from '../symbol/iterator';
-
-export const subscribeToIterable = <T>(iterable: Iterable<T>) => (subscriber: Subscriber<T>) => {
-  const iterator = iterable[Symbol_iterator]();
-  do {
-    const item = iterator.next();
-    if (item.done) {
-      subscriber.complete();
-      break;
-    }
-    subscriber.next(item.value);
-    if (subscriber.closed) {
-      break;
-    }
-  } while (true);
-
-  // Finalize the iterator if it happens to be a Generator
-  if (typeof iterator.return === 'function') {
-    subscriber.add(() => {
-      if (iterator.return) {
-        iterator.return();
-      }
-    });
-  }
-
-  return subscriber;
-};
diff --git a/node_modules/rxjs/src/internal/util/subscribeToObservable.ts b/node_modules/rxjs/src/internal/util/subscribeToObservable.ts
deleted file mode 100644
index b53c566..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeToObservable.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { observable as Symbol_observable } from '../symbol/observable';
-
-/**
- * Subscribes to an object that implements Symbol.observable with the given
- * Subscriber.
- * @param obj An object that implements Symbol.observable
- */
-export const subscribeToObservable = <T>(obj: any) => (subscriber: Subscriber<T>) => {
-  const obs = obj[Symbol_observable]();
-  if (typeof obs.subscribe !== 'function') {
-    // Should be caught by observable subscribe function error handling.
-    throw new TypeError('Provided object does not correctly implement Symbol.observable');
-  } else {
-    return obs.subscribe(subscriber);
-  }
-};
diff --git a/node_modules/rxjs/src/internal/util/subscribeToPromise.ts b/node_modules/rxjs/src/internal/util/subscribeToPromise.ts
deleted file mode 100644
index c64c850..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeToPromise.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { hostReportError } from './hostReportError';
-
-export const subscribeToPromise = <T>(promise: PromiseLike<T>) => (subscriber: Subscriber<T>) => {
-  promise.then(
-    (value) => {
-      if (!subscriber.closed) {
-        subscriber.next(value);
-        subscriber.complete();
-      }
-    },
-    (err: any) => subscriber.error(err)
-  )
-  .then(null, hostReportError);
-  return subscriber;
-};
diff --git a/node_modules/rxjs/src/internal/util/subscribeToResult.ts b/node_modules/rxjs/src/internal/util/subscribeToResult.ts
deleted file mode 100644
index 31368ce..0000000
--- a/node_modules/rxjs/src/internal/util/subscribeToResult.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Subscription } from '../Subscription';
-import { InnerSubscriber } from '../InnerSubscriber';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { Subscriber } from '../Subscriber';
-import { subscribeTo } from './subscribeTo';
-import { Observable } from '../Observable';
-
-export function subscribeToResult<T, R>(
-  outerSubscriber: OuterSubscriber<T, R>,
-  result: any,
-  outerValue: undefined,
-  outerIndex: undefined,
-  innerSubscriber: InnerSubscriber<T, R>
-): Subscription | undefined;
-
-export function subscribeToResult<T, R>(
-  outerSubscriber: OuterSubscriber<T, R>,
-  result: any,
-  outerValue?: T,
-  outerIndex?: number
-): Subscription | undefined;
-
-export function subscribeToResult<T, R>(
-  outerSubscriber: OuterSubscriber<T, R>,
-  result: any,
-  outerValue?: T,
-  outerIndex?: number,
-  innerSubscriber: Subscriber<R> = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)
-): Subscription | undefined {
-  if (innerSubscriber.closed) {
-    return undefined;
-  }
-  if (result instanceof Observable) {
-    return result.subscribe(innerSubscriber);
-  }
-  return subscribeTo(result)(innerSubscriber) as Subscription;
-}
diff --git a/node_modules/rxjs/src/internal/util/toSubscriber.ts b/node_modules/rxjs/src/internal/util/toSubscriber.ts
deleted file mode 100644
index e03d140..0000000
--- a/node_modules/rxjs/src/internal/util/toSubscriber.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Subscriber } from '../Subscriber';
-import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';
-import { empty as emptyObserver } from '../Observer';
-import { PartialObserver } from '../types';
-
-export function toSubscriber<T>(
-  nextOrObserver?: PartialObserver<T> | ((value: T) => void),
-  error?: (error: any) => void,
-  complete?: () => void): Subscriber<T> {
-
-  if (nextOrObserver) {
-    if (nextOrObserver instanceof Subscriber) {
-      return (<Subscriber<T>> nextOrObserver);
-    }
-
-    if (nextOrObserver[rxSubscriberSymbol]) {
-      return nextOrObserver[rxSubscriberSymbol]();
-    }
-  }
-
-  if (!nextOrObserver && !error && !complete) {
-    return new Subscriber(emptyObserver);
-  }
-
-  return new Subscriber(nextOrObserver, error, complete);
-}
diff --git a/node_modules/rxjs/src/internal/util/tryCatch.ts b/node_modules/rxjs/src/internal/util/tryCatch.ts
deleted file mode 100644
index 1745421..0000000
--- a/node_modules/rxjs/src/internal/util/tryCatch.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { errorObject } from './errorObject';
-
-let tryCatchTarget: Function;
-
-function tryCatcher(this: any): any {
-  errorObject.e = undefined;
-  try {
-    return tryCatchTarget.apply(this, arguments);
-  } catch (e) {
-    errorObject.e = e;
-    return errorObject;
-  } finally {
-    tryCatchTarget = undefined;
-  }
-}
-
-export function tryCatch<T extends Function>(fn: T): T {
-  tryCatchTarget = fn;
-  return <any>tryCatcher;
-}
diff --git a/node_modules/rxjs/src/observable/ArrayLikeObservable.ts b/node_modules/rxjs/src/observable/ArrayLikeObservable.ts
deleted file mode 100644
index 30da288..0000000
--- a/node_modules/rxjs/src/observable/ArrayLikeObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ArrayLikeObservable';
diff --git a/node_modules/rxjs/src/observable/ArrayObservable.ts b/node_modules/rxjs/src/observable/ArrayObservable.ts
deleted file mode 100644
index ce2da26..0000000
--- a/node_modules/rxjs/src/observable/ArrayObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ArrayObservable';
diff --git a/node_modules/rxjs/src/observable/BoundCallbackObservable.ts b/node_modules/rxjs/src/observable/BoundCallbackObservable.ts
deleted file mode 100644
index 1790306..0000000
--- a/node_modules/rxjs/src/observable/BoundCallbackObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/BoundCallbackObservable';
diff --git a/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts b/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts
deleted file mode 100644
index 7d0eb03..0000000
--- a/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/BoundNodeCallbackObservable';
diff --git a/node_modules/rxjs/src/observable/ConnectableObservable.ts b/node_modules/rxjs/src/observable/ConnectableObservable.ts
deleted file mode 100644
index a21b3cc..0000000
--- a/node_modules/rxjs/src/observable/ConnectableObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ConnectableObservable';
diff --git a/node_modules/rxjs/src/observable/DeferObservable.ts b/node_modules/rxjs/src/observable/DeferObservable.ts
deleted file mode 100644
index cec9147..0000000
--- a/node_modules/rxjs/src/observable/DeferObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/DeferObservable';
diff --git a/node_modules/rxjs/src/observable/EmptyObservable.ts b/node_modules/rxjs/src/observable/EmptyObservable.ts
deleted file mode 100644
index 6f9f0ba..0000000
--- a/node_modules/rxjs/src/observable/EmptyObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/EmptyObservable';
diff --git a/node_modules/rxjs/src/observable/ErrorObservable.ts b/node_modules/rxjs/src/observable/ErrorObservable.ts
deleted file mode 100644
index 68a7dce..0000000
--- a/node_modules/rxjs/src/observable/ErrorObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ErrorObservable';
diff --git a/node_modules/rxjs/src/observable/ForkJoinObservable.ts b/node_modules/rxjs/src/observable/ForkJoinObservable.ts
deleted file mode 100644
index c9fa4dd..0000000
--- a/node_modules/rxjs/src/observable/ForkJoinObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ForkJoinObservable';
diff --git a/node_modules/rxjs/src/observable/FromEventObservable.ts b/node_modules/rxjs/src/observable/FromEventObservable.ts
deleted file mode 100644
index 04291ab..0000000
--- a/node_modules/rxjs/src/observable/FromEventObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromEventObservable';
diff --git a/node_modules/rxjs/src/observable/FromEventPatternObservable.ts b/node_modules/rxjs/src/observable/FromEventPatternObservable.ts
deleted file mode 100644
index e0a473c..0000000
--- a/node_modules/rxjs/src/observable/FromEventPatternObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromEventPatternObservable';
diff --git a/node_modules/rxjs/src/observable/FromObservable.ts b/node_modules/rxjs/src/observable/FromObservable.ts
deleted file mode 100644
index c4ec664..0000000
--- a/node_modules/rxjs/src/observable/FromObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/FromObservable';
diff --git a/node_modules/rxjs/src/observable/GenerateObservable.ts b/node_modules/rxjs/src/observable/GenerateObservable.ts
deleted file mode 100644
index 8441d24..0000000
--- a/node_modules/rxjs/src/observable/GenerateObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/GenerateObservable';
diff --git a/node_modules/rxjs/src/observable/IfObservable.ts b/node_modules/rxjs/src/observable/IfObservable.ts
deleted file mode 100644
index 5eb484a..0000000
--- a/node_modules/rxjs/src/observable/IfObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IfObservable';
diff --git a/node_modules/rxjs/src/observable/IntervalObservable.ts b/node_modules/rxjs/src/observable/IntervalObservable.ts
deleted file mode 100644
index dfe181f..0000000
--- a/node_modules/rxjs/src/observable/IntervalObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IntervalObservable';
diff --git a/node_modules/rxjs/src/observable/IteratorObservable.ts b/node_modules/rxjs/src/observable/IteratorObservable.ts
deleted file mode 100644
index 860fbef..0000000
--- a/node_modules/rxjs/src/observable/IteratorObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/IteratorObservable';
diff --git a/node_modules/rxjs/src/observable/NeverObservable.ts b/node_modules/rxjs/src/observable/NeverObservable.ts
deleted file mode 100644
index de44057..0000000
--- a/node_modules/rxjs/src/observable/NeverObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/NeverObservable';
diff --git a/node_modules/rxjs/src/observable/PairsObservable.ts b/node_modules/rxjs/src/observable/PairsObservable.ts
deleted file mode 100644
index d030788..0000000
--- a/node_modules/rxjs/src/observable/PairsObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/PairsObservable';
diff --git a/node_modules/rxjs/src/observable/PromiseObservable.ts b/node_modules/rxjs/src/observable/PromiseObservable.ts
deleted file mode 100644
index ae0aac2..0000000
--- a/node_modules/rxjs/src/observable/PromiseObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/PromiseObservable';
diff --git a/node_modules/rxjs/src/observable/RangeObservable.ts b/node_modules/rxjs/src/observable/RangeObservable.ts
deleted file mode 100644
index f500c0a..0000000
--- a/node_modules/rxjs/src/observable/RangeObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/RangeObservable';
diff --git a/node_modules/rxjs/src/observable/ScalarObservable.ts b/node_modules/rxjs/src/observable/ScalarObservable.ts
deleted file mode 100644
index a353068..0000000
--- a/node_modules/rxjs/src/observable/ScalarObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/ScalarObservable';
diff --git a/node_modules/rxjs/src/observable/SubscribeOnObservable.ts b/node_modules/rxjs/src/observable/SubscribeOnObservable.ts
deleted file mode 100644
index 6435727..0000000
--- a/node_modules/rxjs/src/observable/SubscribeOnObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/SubscribeOnObservable';
diff --git a/node_modules/rxjs/src/observable/TimerObservable.ts b/node_modules/rxjs/src/observable/TimerObservable.ts
deleted file mode 100644
index 02b4a51..0000000
--- a/node_modules/rxjs/src/observable/TimerObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/TimerObservable';
diff --git a/node_modules/rxjs/src/observable/UsingObservable.ts b/node_modules/rxjs/src/observable/UsingObservable.ts
deleted file mode 100644
index c24410f..0000000
--- a/node_modules/rxjs/src/observable/UsingObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/UsingObservable';
diff --git a/node_modules/rxjs/src/observable/bindCallback.ts b/node_modules/rxjs/src/observable/bindCallback.ts
deleted file mode 100644
index aab5734..0000000
--- a/node_modules/rxjs/src/observable/bindCallback.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/bindCallback';
diff --git a/node_modules/rxjs/src/observable/bindNodeCallback.ts b/node_modules/rxjs/src/observable/bindNodeCallback.ts
deleted file mode 100644
index d5bfe5d..0000000
--- a/node_modules/rxjs/src/observable/bindNodeCallback.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/bindNodeCallback';
diff --git a/node_modules/rxjs/src/observable/combineLatest.ts b/node_modules/rxjs/src/observable/combineLatest.ts
deleted file mode 100644
index d4b7033..0000000
--- a/node_modules/rxjs/src/observable/combineLatest.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/combineLatest';
diff --git a/node_modules/rxjs/src/observable/concat.ts b/node_modules/rxjs/src/observable/concat.ts
deleted file mode 100644
index 673b315..0000000
--- a/node_modules/rxjs/src/observable/concat.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/concat';
diff --git a/node_modules/rxjs/src/observable/defer.ts b/node_modules/rxjs/src/observable/defer.ts
deleted file mode 100644
index 1a02f81..0000000
--- a/node_modules/rxjs/src/observable/defer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/defer';
diff --git a/node_modules/rxjs/src/observable/dom/AjaxObservable.ts b/node_modules/rxjs/src/observable/dom/AjaxObservable.ts
deleted file mode 100644
index 5325060..0000000
--- a/node_modules/rxjs/src/observable/dom/AjaxObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/AjaxObservable';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts b/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts
deleted file mode 100644
index fb01a6b..0000000
--- a/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/WebSocketSubject';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/observable/dom/ajax.ts b/node_modules/rxjs/src/observable/dom/ajax.ts
deleted file mode 100644
index fd13b94..0000000
--- a/node_modules/rxjs/src/observable/dom/ajax.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/ajax';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/observable/dom/webSocket.ts b/node_modules/rxjs/src/observable/dom/webSocket.ts
deleted file mode 100644
index 9656f0f..0000000
--- a/node_modules/rxjs/src/observable/dom/webSocket.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/dom/webSocket';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/observable/empty.ts b/node_modules/rxjs/src/observable/empty.ts
deleted file mode 100644
index d7ed9cb..0000000
--- a/node_modules/rxjs/src/observable/empty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/empty';
diff --git a/node_modules/rxjs/src/observable/forkJoin.ts b/node_modules/rxjs/src/observable/forkJoin.ts
deleted file mode 100644
index 3720625..0000000
--- a/node_modules/rxjs/src/observable/forkJoin.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/forkJoin';
diff --git a/node_modules/rxjs/src/observable/from.ts b/node_modules/rxjs/src/observable/from.ts
deleted file mode 100644
index 37d2b3a..0000000
--- a/node_modules/rxjs/src/observable/from.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/from';
diff --git a/node_modules/rxjs/src/observable/fromArray.ts b/node_modules/rxjs/src/observable/fromArray.ts
deleted file mode 100644
index 97f8377..0000000
--- a/node_modules/rxjs/src/observable/fromArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromArray';
diff --git a/node_modules/rxjs/src/observable/fromEvent.ts b/node_modules/rxjs/src/observable/fromEvent.ts
deleted file mode 100644
index 0312e3e..0000000
--- a/node_modules/rxjs/src/observable/fromEvent.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromEvent';
diff --git a/node_modules/rxjs/src/observable/fromEventPattern.ts b/node_modules/rxjs/src/observable/fromEventPattern.ts
deleted file mode 100644
index 6662550..0000000
--- a/node_modules/rxjs/src/observable/fromEventPattern.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromEventPattern';
diff --git a/node_modules/rxjs/src/observable/fromIterable.ts b/node_modules/rxjs/src/observable/fromIterable.ts
deleted file mode 100644
index ee359a2..0000000
--- a/node_modules/rxjs/src/observable/fromIterable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromIterable';
diff --git a/node_modules/rxjs/src/observable/fromPromise.ts b/node_modules/rxjs/src/observable/fromPromise.ts
deleted file mode 100644
index b580adc..0000000
--- a/node_modules/rxjs/src/observable/fromPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/fromPromise';
diff --git a/node_modules/rxjs/src/observable/generate.ts b/node_modules/rxjs/src/observable/generate.ts
deleted file mode 100644
index ad23753..0000000
--- a/node_modules/rxjs/src/observable/generate.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/generate';
diff --git a/node_modules/rxjs/src/observable/if.ts b/node_modules/rxjs/src/observable/if.ts
deleted file mode 100644
index 71a71a4..0000000
--- a/node_modules/rxjs/src/observable/if.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/if';
diff --git a/node_modules/rxjs/src/observable/interval.ts b/node_modules/rxjs/src/observable/interval.ts
deleted file mode 100644
index 273374a..0000000
--- a/node_modules/rxjs/src/observable/interval.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/interval';
diff --git a/node_modules/rxjs/src/observable/merge.ts b/node_modules/rxjs/src/observable/merge.ts
deleted file mode 100644
index 5cbace9..0000000
--- a/node_modules/rxjs/src/observable/merge.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/merge';
diff --git a/node_modules/rxjs/src/observable/never.ts b/node_modules/rxjs/src/observable/never.ts
deleted file mode 100644
index 8d8b24c..0000000
--- a/node_modules/rxjs/src/observable/never.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/never';
diff --git a/node_modules/rxjs/src/observable/of.ts b/node_modules/rxjs/src/observable/of.ts
deleted file mode 100644
index b61ca78..0000000
--- a/node_modules/rxjs/src/observable/of.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/of';
diff --git a/node_modules/rxjs/src/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/observable/onErrorResumeNext.ts
deleted file mode 100644
index 8b46336..0000000
--- a/node_modules/rxjs/src/observable/onErrorResumeNext.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/onErrorResumeNext';
diff --git a/node_modules/rxjs/src/observable/pairs.ts b/node_modules/rxjs/src/observable/pairs.ts
deleted file mode 100644
index 59ea93e..0000000
--- a/node_modules/rxjs/src/observable/pairs.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/pairs';
diff --git a/node_modules/rxjs/src/observable/race.ts b/node_modules/rxjs/src/observable/race.ts
deleted file mode 100644
index 5c05cde..0000000
--- a/node_modules/rxjs/src/observable/race.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/race';
diff --git a/node_modules/rxjs/src/observable/range.ts b/node_modules/rxjs/src/observable/range.ts
deleted file mode 100644
index 297046c..0000000
--- a/node_modules/rxjs/src/observable/range.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/range';
diff --git a/node_modules/rxjs/src/observable/throw.ts b/node_modules/rxjs/src/observable/throw.ts
deleted file mode 100644
index 30d4362..0000000
--- a/node_modules/rxjs/src/observable/throw.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/throw';
diff --git a/node_modules/rxjs/src/observable/timer.ts b/node_modules/rxjs/src/observable/timer.ts
deleted file mode 100644
index ac3d484..0000000
--- a/node_modules/rxjs/src/observable/timer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/timer';
diff --git a/node_modules/rxjs/src/observable/using.ts b/node_modules/rxjs/src/observable/using.ts
deleted file mode 100644
index 2a9d0e7..0000000
--- a/node_modules/rxjs/src/observable/using.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/using';
diff --git a/node_modules/rxjs/src/observable/zip.ts b/node_modules/rxjs/src/observable/zip.ts
deleted file mode 100644
index 286e225..0000000
--- a/node_modules/rxjs/src/observable/zip.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/observable/zip';
diff --git a/node_modules/rxjs/src/operator/audit.ts b/node_modules/rxjs/src/operator/audit.ts
deleted file mode 100644
index f99039c..0000000
--- a/node_modules/rxjs/src/operator/audit.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/audit';
diff --git a/node_modules/rxjs/src/operator/auditTime.ts b/node_modules/rxjs/src/operator/auditTime.ts
deleted file mode 100644
index 16dcc21..0000000
--- a/node_modules/rxjs/src/operator/auditTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/auditTime';
diff --git a/node_modules/rxjs/src/operator/buffer.ts b/node_modules/rxjs/src/operator/buffer.ts
deleted file mode 100644
index ae0e349..0000000
--- a/node_modules/rxjs/src/operator/buffer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/buffer';
diff --git a/node_modules/rxjs/src/operator/bufferCount.ts b/node_modules/rxjs/src/operator/bufferCount.ts
deleted file mode 100644
index 9883c58..0000000
--- a/node_modules/rxjs/src/operator/bufferCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferCount';
diff --git a/node_modules/rxjs/src/operator/bufferTime.ts b/node_modules/rxjs/src/operator/bufferTime.ts
deleted file mode 100644
index 74845b4..0000000
--- a/node_modules/rxjs/src/operator/bufferTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferTime';
diff --git a/node_modules/rxjs/src/operator/bufferToggle.ts b/node_modules/rxjs/src/operator/bufferToggle.ts
deleted file mode 100644
index 3a3ccff..0000000
--- a/node_modules/rxjs/src/operator/bufferToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferToggle';
diff --git a/node_modules/rxjs/src/operator/bufferWhen.ts b/node_modules/rxjs/src/operator/bufferWhen.ts
deleted file mode 100644
index f394a58..0000000
--- a/node_modules/rxjs/src/operator/bufferWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/bufferWhen';
diff --git a/node_modules/rxjs/src/operator/catch.ts b/node_modules/rxjs/src/operator/catch.ts
deleted file mode 100644
index 39c2412..0000000
--- a/node_modules/rxjs/src/operator/catch.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/catch';
diff --git a/node_modules/rxjs/src/operator/combineAll.ts b/node_modules/rxjs/src/operator/combineAll.ts
deleted file mode 100644
index 47ead4a..0000000
--- a/node_modules/rxjs/src/operator/combineAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/combineAll';
diff --git a/node_modules/rxjs/src/operator/combineLatest.ts b/node_modules/rxjs/src/operator/combineLatest.ts
deleted file mode 100644
index 5719796..0000000
--- a/node_modules/rxjs/src/operator/combineLatest.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/combineLatest';
diff --git a/node_modules/rxjs/src/operator/concat.ts b/node_modules/rxjs/src/operator/concat.ts
deleted file mode 100644
index 7937d7a..0000000
--- a/node_modules/rxjs/src/operator/concat.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concat';
diff --git a/node_modules/rxjs/src/operator/concatAll.ts b/node_modules/rxjs/src/operator/concatAll.ts
deleted file mode 100644
index ac3f202..0000000
--- a/node_modules/rxjs/src/operator/concatAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatAll';
diff --git a/node_modules/rxjs/src/operator/concatMap.ts b/node_modules/rxjs/src/operator/concatMap.ts
deleted file mode 100644
index 96cf01f..0000000
--- a/node_modules/rxjs/src/operator/concatMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatMap';
diff --git a/node_modules/rxjs/src/operator/concatMapTo.ts b/node_modules/rxjs/src/operator/concatMapTo.ts
deleted file mode 100644
index ccc3cd5..0000000
--- a/node_modules/rxjs/src/operator/concatMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/concatMapTo';
diff --git a/node_modules/rxjs/src/operator/count.ts b/node_modules/rxjs/src/operator/count.ts
deleted file mode 100644
index d9b4699..0000000
--- a/node_modules/rxjs/src/operator/count.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/count';
diff --git a/node_modules/rxjs/src/operator/debounce.ts b/node_modules/rxjs/src/operator/debounce.ts
deleted file mode 100644
index 69fffd9..0000000
--- a/node_modules/rxjs/src/operator/debounce.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/debounce';
diff --git a/node_modules/rxjs/src/operator/debounceTime.ts b/node_modules/rxjs/src/operator/debounceTime.ts
deleted file mode 100644
index 5e51c65..0000000
--- a/node_modules/rxjs/src/operator/debounceTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/debounceTime';
diff --git a/node_modules/rxjs/src/operator/defaultIfEmpty.ts b/node_modules/rxjs/src/operator/defaultIfEmpty.ts
deleted file mode 100644
index 6f5c620..0000000
--- a/node_modules/rxjs/src/operator/defaultIfEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/defaultIfEmpty';
diff --git a/node_modules/rxjs/src/operator/delay.ts b/node_modules/rxjs/src/operator/delay.ts
deleted file mode 100644
index 823ded3..0000000
--- a/node_modules/rxjs/src/operator/delay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/delay';
diff --git a/node_modules/rxjs/src/operator/delayWhen.ts b/node_modules/rxjs/src/operator/delayWhen.ts
deleted file mode 100644
index b28322a..0000000
--- a/node_modules/rxjs/src/operator/delayWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/delayWhen';
diff --git a/node_modules/rxjs/src/operator/dematerialize.ts b/node_modules/rxjs/src/operator/dematerialize.ts
deleted file mode 100644
index 83f8da9..0000000
--- a/node_modules/rxjs/src/operator/dematerialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/dematerialize';
diff --git a/node_modules/rxjs/src/operator/distinct.ts b/node_modules/rxjs/src/operator/distinct.ts
deleted file mode 100644
index b97b8ee..0000000
--- a/node_modules/rxjs/src/operator/distinct.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinct';
diff --git a/node_modules/rxjs/src/operator/distinctUntilChanged.ts b/node_modules/rxjs/src/operator/distinctUntilChanged.ts
deleted file mode 100644
index 3a5bbc3..0000000
--- a/node_modules/rxjs/src/operator/distinctUntilChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinctUntilChanged';
diff --git a/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts
deleted file mode 100644
index 22d42b1..0000000
--- a/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/src/operator/do.ts b/node_modules/rxjs/src/operator/do.ts
deleted file mode 100644
index 3b3a79b..0000000
--- a/node_modules/rxjs/src/operator/do.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/do';
diff --git a/node_modules/rxjs/src/operator/elementAt.ts b/node_modules/rxjs/src/operator/elementAt.ts
deleted file mode 100644
index bcdf798..0000000
--- a/node_modules/rxjs/src/operator/elementAt.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/elementAt';
diff --git a/node_modules/rxjs/src/operator/every.ts b/node_modules/rxjs/src/operator/every.ts
deleted file mode 100644
index af7e790..0000000
--- a/node_modules/rxjs/src/operator/every.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/every';
diff --git a/node_modules/rxjs/src/operator/exhaust.ts b/node_modules/rxjs/src/operator/exhaust.ts
deleted file mode 100644
index 7af3d2f..0000000
--- a/node_modules/rxjs/src/operator/exhaust.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/exhaust';
diff --git a/node_modules/rxjs/src/operator/exhaustMap.ts b/node_modules/rxjs/src/operator/exhaustMap.ts
deleted file mode 100644
index 822438a..0000000
--- a/node_modules/rxjs/src/operator/exhaustMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/exhaustMap';
diff --git a/node_modules/rxjs/src/operator/expand.ts b/node_modules/rxjs/src/operator/expand.ts
deleted file mode 100644
index 11df701..0000000
--- a/node_modules/rxjs/src/operator/expand.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/expand';
diff --git a/node_modules/rxjs/src/operator/filter.ts b/node_modules/rxjs/src/operator/filter.ts
deleted file mode 100644
index ccc2f24..0000000
--- a/node_modules/rxjs/src/operator/filter.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/filter';
diff --git a/node_modules/rxjs/src/operator/finally.ts b/node_modules/rxjs/src/operator/finally.ts
deleted file mode 100644
index a21b3e1..0000000
--- a/node_modules/rxjs/src/operator/finally.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/finally';
diff --git a/node_modules/rxjs/src/operator/find.ts b/node_modules/rxjs/src/operator/find.ts
deleted file mode 100644
index face44b..0000000
--- a/node_modules/rxjs/src/operator/find.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/find';
diff --git a/node_modules/rxjs/src/operator/findIndex.ts b/node_modules/rxjs/src/operator/findIndex.ts
deleted file mode 100644
index dd0297a..0000000
--- a/node_modules/rxjs/src/operator/findIndex.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/findIndex';
diff --git a/node_modules/rxjs/src/operator/first.ts b/node_modules/rxjs/src/operator/first.ts
deleted file mode 100644
index 86843ed..0000000
--- a/node_modules/rxjs/src/operator/first.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/first';
diff --git a/node_modules/rxjs/src/operator/groupBy.ts b/node_modules/rxjs/src/operator/groupBy.ts
deleted file mode 100644
index 648fac9..0000000
--- a/node_modules/rxjs/src/operator/groupBy.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/groupBy';
diff --git a/node_modules/rxjs/src/operator/ignoreElements.ts b/node_modules/rxjs/src/operator/ignoreElements.ts
deleted file mode 100644
index b9c3eef..0000000
--- a/node_modules/rxjs/src/operator/ignoreElements.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/ignoreElements';
diff --git a/node_modules/rxjs/src/operator/isEmpty.ts b/node_modules/rxjs/src/operator/isEmpty.ts
deleted file mode 100644
index 03da532..0000000
--- a/node_modules/rxjs/src/operator/isEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/isEmpty';
diff --git a/node_modules/rxjs/src/operator/last.ts b/node_modules/rxjs/src/operator/last.ts
deleted file mode 100644
index 2d42da8..0000000
--- a/node_modules/rxjs/src/operator/last.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/last';
diff --git a/node_modules/rxjs/src/operator/let.ts b/node_modules/rxjs/src/operator/let.ts
deleted file mode 100644
index 0f25011..0000000
--- a/node_modules/rxjs/src/operator/let.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/let';
diff --git a/node_modules/rxjs/src/operator/map.ts b/node_modules/rxjs/src/operator/map.ts
deleted file mode 100644
index 00af2a0..0000000
--- a/node_modules/rxjs/src/operator/map.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/map';
diff --git a/node_modules/rxjs/src/operator/mapTo.ts b/node_modules/rxjs/src/operator/mapTo.ts
deleted file mode 100644
index ad51274..0000000
--- a/node_modules/rxjs/src/operator/mapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mapTo';
diff --git a/node_modules/rxjs/src/operator/materialize.ts b/node_modules/rxjs/src/operator/materialize.ts
deleted file mode 100644
index 57d501d..0000000
--- a/node_modules/rxjs/src/operator/materialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/materialize';
diff --git a/node_modules/rxjs/src/operator/max.ts b/node_modules/rxjs/src/operator/max.ts
deleted file mode 100644
index e7efcd7..0000000
--- a/node_modules/rxjs/src/operator/max.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/max';
diff --git a/node_modules/rxjs/src/operator/merge.ts b/node_modules/rxjs/src/operator/merge.ts
deleted file mode 100644
index 039a0d2..0000000
--- a/node_modules/rxjs/src/operator/merge.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/merge';
diff --git a/node_modules/rxjs/src/operator/mergeAll.ts b/node_modules/rxjs/src/operator/mergeAll.ts
deleted file mode 100644
index 1527cc9..0000000
--- a/node_modules/rxjs/src/operator/mergeAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeAll';
diff --git a/node_modules/rxjs/src/operator/mergeMap.ts b/node_modules/rxjs/src/operator/mergeMap.ts
deleted file mode 100644
index d091762..0000000
--- a/node_modules/rxjs/src/operator/mergeMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeMap';
diff --git a/node_modules/rxjs/src/operator/mergeMapTo.ts b/node_modules/rxjs/src/operator/mergeMapTo.ts
deleted file mode 100644
index 2503ab4..0000000
--- a/node_modules/rxjs/src/operator/mergeMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeMapTo';
diff --git a/node_modules/rxjs/src/operator/mergeScan.ts b/node_modules/rxjs/src/operator/mergeScan.ts
deleted file mode 100644
index f8fd1be..0000000
--- a/node_modules/rxjs/src/operator/mergeScan.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/mergeScan';
diff --git a/node_modules/rxjs/src/operator/min.ts b/node_modules/rxjs/src/operator/min.ts
deleted file mode 100644
index b082666..0000000
--- a/node_modules/rxjs/src/operator/min.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/min';
diff --git a/node_modules/rxjs/src/operator/multicast.ts b/node_modules/rxjs/src/operator/multicast.ts
deleted file mode 100644
index 16822ab..0000000
--- a/node_modules/rxjs/src/operator/multicast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/multicast';
diff --git a/node_modules/rxjs/src/operator/observeOn.ts b/node_modules/rxjs/src/operator/observeOn.ts
deleted file mode 100644
index 49d52cf..0000000
--- a/node_modules/rxjs/src/operator/observeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/observeOn';
diff --git a/node_modules/rxjs/src/operator/onErrorResumeNext.ts b/node_modules/rxjs/src/operator/onErrorResumeNext.ts
deleted file mode 100644
index dee5c58..0000000
--- a/node_modules/rxjs/src/operator/onErrorResumeNext.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/onErrorResumeNext';
diff --git a/node_modules/rxjs/src/operator/pairwise.ts b/node_modules/rxjs/src/operator/pairwise.ts
deleted file mode 100644
index 2db66e0..0000000
--- a/node_modules/rxjs/src/operator/pairwise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/pairwise';
diff --git a/node_modules/rxjs/src/operator/partition.ts b/node_modules/rxjs/src/operator/partition.ts
deleted file mode 100644
index ffb693b..0000000
--- a/node_modules/rxjs/src/operator/partition.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/partition';
diff --git a/node_modules/rxjs/src/operator/pluck.ts b/node_modules/rxjs/src/operator/pluck.ts
deleted file mode 100644
index cd308f2..0000000
--- a/node_modules/rxjs/src/operator/pluck.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/pluck';
diff --git a/node_modules/rxjs/src/operator/publish.ts b/node_modules/rxjs/src/operator/publish.ts
deleted file mode 100644
index 44f7a52..0000000
--- a/node_modules/rxjs/src/operator/publish.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publish';
diff --git a/node_modules/rxjs/src/operator/publishBehavior.ts b/node_modules/rxjs/src/operator/publishBehavior.ts
deleted file mode 100644
index ae6df51..0000000
--- a/node_modules/rxjs/src/operator/publishBehavior.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishBehavior';
diff --git a/node_modules/rxjs/src/operator/publishLast.ts b/node_modules/rxjs/src/operator/publishLast.ts
deleted file mode 100644
index b8b857f..0000000
--- a/node_modules/rxjs/src/operator/publishLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishLast';
diff --git a/node_modules/rxjs/src/operator/publishReplay.ts b/node_modules/rxjs/src/operator/publishReplay.ts
deleted file mode 100644
index d515665..0000000
--- a/node_modules/rxjs/src/operator/publishReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/publishReplay';
diff --git a/node_modules/rxjs/src/operator/race.ts b/node_modules/rxjs/src/operator/race.ts
deleted file mode 100644
index 1371230..0000000
--- a/node_modules/rxjs/src/operator/race.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/race';
diff --git a/node_modules/rxjs/src/operator/reduce.ts b/node_modules/rxjs/src/operator/reduce.ts
deleted file mode 100644
index 3051a59..0000000
--- a/node_modules/rxjs/src/operator/reduce.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/reduce';
diff --git a/node_modules/rxjs/src/operator/repeat.ts b/node_modules/rxjs/src/operator/repeat.ts
deleted file mode 100644
index 3cf8344..0000000
--- a/node_modules/rxjs/src/operator/repeat.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/repeat';
diff --git a/node_modules/rxjs/src/operator/repeatWhen.ts b/node_modules/rxjs/src/operator/repeatWhen.ts
deleted file mode 100644
index c8ab403..0000000
--- a/node_modules/rxjs/src/operator/repeatWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/repeatWhen';
diff --git a/node_modules/rxjs/src/operator/retry.ts b/node_modules/rxjs/src/operator/retry.ts
deleted file mode 100644
index ea76932..0000000
--- a/node_modules/rxjs/src/operator/retry.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/retry';
diff --git a/node_modules/rxjs/src/operator/retryWhen.ts b/node_modules/rxjs/src/operator/retryWhen.ts
deleted file mode 100644
index c1c4a4d..0000000
--- a/node_modules/rxjs/src/operator/retryWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/retryWhen';
diff --git a/node_modules/rxjs/src/operator/sample.ts b/node_modules/rxjs/src/operator/sample.ts
deleted file mode 100644
index 50c4485..0000000
--- a/node_modules/rxjs/src/operator/sample.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sample';
diff --git a/node_modules/rxjs/src/operator/sampleTime.ts b/node_modules/rxjs/src/operator/sampleTime.ts
deleted file mode 100644
index 6a88266..0000000
--- a/node_modules/rxjs/src/operator/sampleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sampleTime';
diff --git a/node_modules/rxjs/src/operator/scan.ts b/node_modules/rxjs/src/operator/scan.ts
deleted file mode 100644
index 07d5f63..0000000
--- a/node_modules/rxjs/src/operator/scan.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/scan';
diff --git a/node_modules/rxjs/src/operator/sequenceEqual.ts b/node_modules/rxjs/src/operator/sequenceEqual.ts
deleted file mode 100644
index 8a324c2..0000000
--- a/node_modules/rxjs/src/operator/sequenceEqual.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/sequenceEqual';
diff --git a/node_modules/rxjs/src/operator/share.ts b/node_modules/rxjs/src/operator/share.ts
deleted file mode 100644
index 7dcde39..0000000
--- a/node_modules/rxjs/src/operator/share.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/share';
diff --git a/node_modules/rxjs/src/operator/shareReplay.ts b/node_modules/rxjs/src/operator/shareReplay.ts
deleted file mode 100644
index 7889029..0000000
--- a/node_modules/rxjs/src/operator/shareReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/shareReplay';
diff --git a/node_modules/rxjs/src/operator/single.ts b/node_modules/rxjs/src/operator/single.ts
deleted file mode 100644
index 0b289da..0000000
--- a/node_modules/rxjs/src/operator/single.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/single';
diff --git a/node_modules/rxjs/src/operator/skip.ts b/node_modules/rxjs/src/operator/skip.ts
deleted file mode 100644
index 830890c..0000000
--- a/node_modules/rxjs/src/operator/skip.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skip';
diff --git a/node_modules/rxjs/src/operator/skipLast.ts b/node_modules/rxjs/src/operator/skipLast.ts
deleted file mode 100644
index 504d7d7..0000000
--- a/node_modules/rxjs/src/operator/skipLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipLast';
diff --git a/node_modules/rxjs/src/operator/skipUntil.ts b/node_modules/rxjs/src/operator/skipUntil.ts
deleted file mode 100644
index c942abc..0000000
--- a/node_modules/rxjs/src/operator/skipUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipUntil';
diff --git a/node_modules/rxjs/src/operator/skipWhile.ts b/node_modules/rxjs/src/operator/skipWhile.ts
deleted file mode 100644
index 1ec1baf..0000000
--- a/node_modules/rxjs/src/operator/skipWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/skipWhile';
diff --git a/node_modules/rxjs/src/operator/startWith.ts b/node_modules/rxjs/src/operator/startWith.ts
deleted file mode 100644
index 88b22fb..0000000
--- a/node_modules/rxjs/src/operator/startWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/startWith';
diff --git a/node_modules/rxjs/src/operator/subscribeOn.ts b/node_modules/rxjs/src/operator/subscribeOn.ts
deleted file mode 100644
index d5fe5c3..0000000
--- a/node_modules/rxjs/src/operator/subscribeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/subscribeOn';
diff --git a/node_modules/rxjs/src/operator/switch.ts b/node_modules/rxjs/src/operator/switch.ts
deleted file mode 100644
index 2cbae8f..0000000
--- a/node_modules/rxjs/src/operator/switch.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switch';
diff --git a/node_modules/rxjs/src/operator/switchMap.ts b/node_modules/rxjs/src/operator/switchMap.ts
deleted file mode 100644
index cd5ce95..0000000
--- a/node_modules/rxjs/src/operator/switchMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switchMap';
diff --git a/node_modules/rxjs/src/operator/switchMapTo.ts b/node_modules/rxjs/src/operator/switchMapTo.ts
deleted file mode 100644
index bd59ce3..0000000
--- a/node_modules/rxjs/src/operator/switchMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/switchMapTo';
diff --git a/node_modules/rxjs/src/operator/take.ts b/node_modules/rxjs/src/operator/take.ts
deleted file mode 100644
index c915fc3..0000000
--- a/node_modules/rxjs/src/operator/take.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/take';
diff --git a/node_modules/rxjs/src/operator/takeLast.ts b/node_modules/rxjs/src/operator/takeLast.ts
deleted file mode 100644
index 78509e5..0000000
--- a/node_modules/rxjs/src/operator/takeLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeLast';
diff --git a/node_modules/rxjs/src/operator/takeUntil.ts b/node_modules/rxjs/src/operator/takeUntil.ts
deleted file mode 100644
index 38b927b..0000000
--- a/node_modules/rxjs/src/operator/takeUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeUntil';
diff --git a/node_modules/rxjs/src/operator/takeWhile.ts b/node_modules/rxjs/src/operator/takeWhile.ts
deleted file mode 100644
index b1772bd..0000000
--- a/node_modules/rxjs/src/operator/takeWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/takeWhile';
diff --git a/node_modules/rxjs/src/operator/throttle.ts b/node_modules/rxjs/src/operator/throttle.ts
deleted file mode 100644
index 9c2effc..0000000
--- a/node_modules/rxjs/src/operator/throttle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/throttle';
diff --git a/node_modules/rxjs/src/operator/throttleTime.ts b/node_modules/rxjs/src/operator/throttleTime.ts
deleted file mode 100644
index 7385eb0..0000000
--- a/node_modules/rxjs/src/operator/throttleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/throttleTime';
diff --git a/node_modules/rxjs/src/operator/timeInterval.ts b/node_modules/rxjs/src/operator/timeInterval.ts
deleted file mode 100644
index 5f5283b..0000000
--- a/node_modules/rxjs/src/operator/timeInterval.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeInterval';
diff --git a/node_modules/rxjs/src/operator/timeout.ts b/node_modules/rxjs/src/operator/timeout.ts
deleted file mode 100644
index 56e0cc3..0000000
--- a/node_modules/rxjs/src/operator/timeout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeout';
diff --git a/node_modules/rxjs/src/operator/timeoutWith.ts b/node_modules/rxjs/src/operator/timeoutWith.ts
deleted file mode 100644
index e746c05..0000000
--- a/node_modules/rxjs/src/operator/timeoutWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timeoutWith';
diff --git a/node_modules/rxjs/src/operator/timestamp.ts b/node_modules/rxjs/src/operator/timestamp.ts
deleted file mode 100644
index 77a94e8..0000000
--- a/node_modules/rxjs/src/operator/timestamp.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/timestamp';
diff --git a/node_modules/rxjs/src/operator/toArray.ts b/node_modules/rxjs/src/operator/toArray.ts
deleted file mode 100644
index 57c8ee1..0000000
--- a/node_modules/rxjs/src/operator/toArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/toArray';
diff --git a/node_modules/rxjs/src/operator/toPromise.ts b/node_modules/rxjs/src/operator/toPromise.ts
deleted file mode 100644
index b9f8cae..0000000
--- a/node_modules/rxjs/src/operator/toPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/toPromise';
diff --git a/node_modules/rxjs/src/operator/window.ts b/node_modules/rxjs/src/operator/window.ts
deleted file mode 100644
index 937f174..0000000
--- a/node_modules/rxjs/src/operator/window.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/window';
diff --git a/node_modules/rxjs/src/operator/windowCount.ts b/node_modules/rxjs/src/operator/windowCount.ts
deleted file mode 100644
index 87392c7..0000000
--- a/node_modules/rxjs/src/operator/windowCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowCount';
diff --git a/node_modules/rxjs/src/operator/windowTime.ts b/node_modules/rxjs/src/operator/windowTime.ts
deleted file mode 100644
index 52798df..0000000
--- a/node_modules/rxjs/src/operator/windowTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowTime';
diff --git a/node_modules/rxjs/src/operator/windowToggle.ts b/node_modules/rxjs/src/operator/windowToggle.ts
deleted file mode 100644
index c2d8b4e..0000000
--- a/node_modules/rxjs/src/operator/windowToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowToggle';
diff --git a/node_modules/rxjs/src/operator/windowWhen.ts b/node_modules/rxjs/src/operator/windowWhen.ts
deleted file mode 100644
index 1d4e2ef..0000000
--- a/node_modules/rxjs/src/operator/windowWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/windowWhen';
diff --git a/node_modules/rxjs/src/operator/withLatestFrom.ts b/node_modules/rxjs/src/operator/withLatestFrom.ts
deleted file mode 100644
index b31197a..0000000
--- a/node_modules/rxjs/src/operator/withLatestFrom.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/withLatestFrom';
diff --git a/node_modules/rxjs/src/operator/zip.ts b/node_modules/rxjs/src/operator/zip.ts
deleted file mode 100644
index 25eea26..0000000
--- a/node_modules/rxjs/src/operator/zip.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/zip';
diff --git a/node_modules/rxjs/src/operator/zipAll.ts b/node_modules/rxjs/src/operator/zipAll.ts
deleted file mode 100644
index 1098d9d..0000000
--- a/node_modules/rxjs/src/operator/zipAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operator/zipAll';
diff --git a/node_modules/rxjs/src/operators/audit.ts b/node_modules/rxjs/src/operators/audit.ts
deleted file mode 100644
index 0e5b597..0000000
--- a/node_modules/rxjs/src/operators/audit.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/audit';
diff --git a/node_modules/rxjs/src/operators/auditTime.ts b/node_modules/rxjs/src/operators/auditTime.ts
deleted file mode 100644
index 72a4c00..0000000
--- a/node_modules/rxjs/src/operators/auditTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/auditTime';
diff --git a/node_modules/rxjs/src/operators/buffer.ts b/node_modules/rxjs/src/operators/buffer.ts
deleted file mode 100644
index 7007461..0000000
--- a/node_modules/rxjs/src/operators/buffer.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/buffer';
diff --git a/node_modules/rxjs/src/operators/bufferCount.ts b/node_modules/rxjs/src/operators/bufferCount.ts
deleted file mode 100644
index 767b33c..0000000
--- a/node_modules/rxjs/src/operators/bufferCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferCount';
diff --git a/node_modules/rxjs/src/operators/bufferTime.ts b/node_modules/rxjs/src/operators/bufferTime.ts
deleted file mode 100644
index 085acfb..0000000
--- a/node_modules/rxjs/src/operators/bufferTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferTime';
diff --git a/node_modules/rxjs/src/operators/bufferToggle.ts b/node_modules/rxjs/src/operators/bufferToggle.ts
deleted file mode 100644
index f554f73..0000000
--- a/node_modules/rxjs/src/operators/bufferToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferToggle';
diff --git a/node_modules/rxjs/src/operators/bufferWhen.ts b/node_modules/rxjs/src/operators/bufferWhen.ts
deleted file mode 100644
index 7e0b79f..0000000
--- a/node_modules/rxjs/src/operators/bufferWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/bufferWhen';
diff --git a/node_modules/rxjs/src/operators/catchError.ts b/node_modules/rxjs/src/operators/catchError.ts
deleted file mode 100644
index 4ea9351..0000000
--- a/node_modules/rxjs/src/operators/catchError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/catchError';
diff --git a/node_modules/rxjs/src/operators/combineAll.ts b/node_modules/rxjs/src/operators/combineAll.ts
deleted file mode 100644
index 13f2758..0000000
--- a/node_modules/rxjs/src/operators/combineAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/combineAll';
diff --git a/node_modules/rxjs/src/operators/combineLatest.ts b/node_modules/rxjs/src/operators/combineLatest.ts
deleted file mode 100644
index cefd4d0..0000000
--- a/node_modules/rxjs/src/operators/combineLatest.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/combineLatest';
diff --git a/node_modules/rxjs/src/operators/concat.ts b/node_modules/rxjs/src/operators/concat.ts
deleted file mode 100644
index d2b7050..0000000
--- a/node_modules/rxjs/src/operators/concat.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concat';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/operators/concatAll.ts b/node_modules/rxjs/src/operators/concatAll.ts
deleted file mode 100644
index 4e90bf3..0000000
--- a/node_modules/rxjs/src/operators/concatAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatAll';
diff --git a/node_modules/rxjs/src/operators/concatMap.ts b/node_modules/rxjs/src/operators/concatMap.ts
deleted file mode 100644
index fb26bc0..0000000
--- a/node_modules/rxjs/src/operators/concatMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatMap';
diff --git a/node_modules/rxjs/src/operators/concatMapTo.ts b/node_modules/rxjs/src/operators/concatMapTo.ts
deleted file mode 100644
index f5aef40..0000000
--- a/node_modules/rxjs/src/operators/concatMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/concatMapTo';
diff --git a/node_modules/rxjs/src/operators/count.ts b/node_modules/rxjs/src/operators/count.ts
deleted file mode 100644
index db7cfe3..0000000
--- a/node_modules/rxjs/src/operators/count.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/count';
diff --git a/node_modules/rxjs/src/operators/debounce.ts b/node_modules/rxjs/src/operators/debounce.ts
deleted file mode 100644
index ed62cb8..0000000
--- a/node_modules/rxjs/src/operators/debounce.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/debounce';
diff --git a/node_modules/rxjs/src/operators/debounceTime.ts b/node_modules/rxjs/src/operators/debounceTime.ts
deleted file mode 100644
index fb73d33..0000000
--- a/node_modules/rxjs/src/operators/debounceTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/debounceTime';
diff --git a/node_modules/rxjs/src/operators/defaultIfEmpty.ts b/node_modules/rxjs/src/operators/defaultIfEmpty.ts
deleted file mode 100644
index 04b9e61..0000000
--- a/node_modules/rxjs/src/operators/defaultIfEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/defaultIfEmpty';
diff --git a/node_modules/rxjs/src/operators/delay.ts b/node_modules/rxjs/src/operators/delay.ts
deleted file mode 100644
index d34f33d..0000000
--- a/node_modules/rxjs/src/operators/delay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/delay';
diff --git a/node_modules/rxjs/src/operators/delayWhen.ts b/node_modules/rxjs/src/operators/delayWhen.ts
deleted file mode 100644
index 4de1452..0000000
--- a/node_modules/rxjs/src/operators/delayWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/delayWhen';
diff --git a/node_modules/rxjs/src/operators/dematerialize.ts b/node_modules/rxjs/src/operators/dematerialize.ts
deleted file mode 100644
index a689bf0..0000000
--- a/node_modules/rxjs/src/operators/dematerialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/dematerialize';
diff --git a/node_modules/rxjs/src/operators/distinct.ts b/node_modules/rxjs/src/operators/distinct.ts
deleted file mode 100644
index 9d8288a..0000000
--- a/node_modules/rxjs/src/operators/distinct.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinct';
diff --git a/node_modules/rxjs/src/operators/distinctUntilChanged.ts b/node_modules/rxjs/src/operators/distinctUntilChanged.ts
deleted file mode 100644
index 1fc4eda..0000000
--- a/node_modules/rxjs/src/operators/distinctUntilChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinctUntilChanged';
diff --git a/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts
deleted file mode 100644
index d8fa76a..0000000
--- a/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/distinctUntilKeyChanged';
diff --git a/node_modules/rxjs/src/operators/elementAt.ts b/node_modules/rxjs/src/operators/elementAt.ts
deleted file mode 100644
index 4f5d5b3..0000000
--- a/node_modules/rxjs/src/operators/elementAt.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/elementAt';
diff --git a/node_modules/rxjs/src/operators/every.ts b/node_modules/rxjs/src/operators/every.ts
deleted file mode 100644
index 15b9f46..0000000
--- a/node_modules/rxjs/src/operators/every.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/every';
diff --git a/node_modules/rxjs/src/operators/exhaust.ts b/node_modules/rxjs/src/operators/exhaust.ts
deleted file mode 100644
index 19a3637..0000000
--- a/node_modules/rxjs/src/operators/exhaust.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/exhaust';
diff --git a/node_modules/rxjs/src/operators/exhaustMap.ts b/node_modules/rxjs/src/operators/exhaustMap.ts
deleted file mode 100644
index cf4ae30..0000000
--- a/node_modules/rxjs/src/operators/exhaustMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/exhaustMap';
diff --git a/node_modules/rxjs/src/operators/expand.ts b/node_modules/rxjs/src/operators/expand.ts
deleted file mode 100644
index 0cef04c..0000000
--- a/node_modules/rxjs/src/operators/expand.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/expand';
diff --git a/node_modules/rxjs/src/operators/filter.ts b/node_modules/rxjs/src/operators/filter.ts
deleted file mode 100644
index 23b8666..0000000
--- a/node_modules/rxjs/src/operators/filter.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/filter';
diff --git a/node_modules/rxjs/src/operators/finalize.ts b/node_modules/rxjs/src/operators/finalize.ts
deleted file mode 100644
index 9c32dfc..0000000
--- a/node_modules/rxjs/src/operators/finalize.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/finalize';
diff --git a/node_modules/rxjs/src/operators/find.ts b/node_modules/rxjs/src/operators/find.ts
deleted file mode 100644
index 98a272d..0000000
--- a/node_modules/rxjs/src/operators/find.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/find';
diff --git a/node_modules/rxjs/src/operators/findIndex.ts b/node_modules/rxjs/src/operators/findIndex.ts
deleted file mode 100644
index 167707f..0000000
--- a/node_modules/rxjs/src/operators/findIndex.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/findIndex';
diff --git a/node_modules/rxjs/src/operators/first.ts b/node_modules/rxjs/src/operators/first.ts
deleted file mode 100644
index c0266e3..0000000
--- a/node_modules/rxjs/src/operators/first.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/first';
diff --git a/node_modules/rxjs/src/operators/groupBy.ts b/node_modules/rxjs/src/operators/groupBy.ts
deleted file mode 100644
index 52c6f58..0000000
--- a/node_modules/rxjs/src/operators/groupBy.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/groupBy';
diff --git a/node_modules/rxjs/src/operators/ignoreElements.ts b/node_modules/rxjs/src/operators/ignoreElements.ts
deleted file mode 100644
index 590bf88..0000000
--- a/node_modules/rxjs/src/operators/ignoreElements.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/ignoreElements';
diff --git a/node_modules/rxjs/src/operators/index.ts b/node_modules/rxjs/src/operators/index.ts
deleted file mode 100644
index 53b8e69..0000000
--- a/node_modules/rxjs/src/operators/index.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-
-/* Operator exports */
-export { audit } from '../internal/operators/audit';
-export { auditTime } from '../internal/operators/auditTime';
-export { buffer } from '../internal/operators/buffer';
-export { bufferCount } from '../internal/operators/bufferCount';
-export { bufferTime } from '../internal/operators/bufferTime';
-export { bufferToggle } from '../internal/operators/bufferToggle';
-export { bufferWhen } from '../internal/operators/bufferWhen';
-export { catchError } from '../internal/operators/catchError';
-export { combineAll } from '../internal/operators/combineAll';
-export { combineLatest } from '../internal/operators/combineLatest';
-export { concat } from '../internal/operators/concat';
-export { concatAll } from '../internal/operators/concatAll';
-export { concatMap } from '../internal/operators/concatMap';
-export { concatMapTo } from '../internal/operators/concatMapTo';
-export { count } from '../internal/operators/count';
-export { debounce } from '../internal/operators/debounce';
-export { debounceTime } from '../internal/operators/debounceTime';
-export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty';
-export { delay } from '../internal/operators/delay';
-export { delayWhen } from '../internal/operators/delayWhen';
-export { dematerialize } from '../internal/operators/dematerialize';
-export { distinct } from '../internal/operators/distinct';
-export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged';
-export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged';
-export { elementAt } from '../internal/operators/elementAt';
-export { endWith } from '../internal/operators/endWith';
-export { every } from '../internal/operators/every';
-export { exhaust } from '../internal/operators/exhaust';
-export { exhaustMap } from '../internal/operators/exhaustMap';
-export { expand } from '../internal/operators/expand';
-export { filter } from '../internal/operators/filter';
-export { finalize } from '../internal/operators/finalize';
-export { find } from '../internal/operators/find';
-export { findIndex } from '../internal/operators/findIndex';
-export { first } from '../internal/operators/first';
-export { groupBy } from '../internal/operators/groupBy';
-export { ignoreElements } from '../internal/operators/ignoreElements';
-export { isEmpty } from '../internal/operators/isEmpty';
-export { last } from '../internal/operators/last';
-export { map } from '../internal/operators/map';
-export { mapTo } from '../internal/operators/mapTo';
-export { materialize } from '../internal/operators/materialize';
-export { max } from '../internal/operators/max';
-export { merge } from '../internal/operators/merge';
-export { mergeAll } from '../internal/operators/mergeAll';
-export { mergeMap } from '../internal/operators/mergeMap';
-export { mergeMap as flatMap } from '../internal/operators/mergeMap';
-export { mergeMapTo } from '../internal/operators/mergeMapTo';
-export { mergeScan } from '../internal/operators/mergeScan';
-export { min } from '../internal/operators/min';
-export { multicast } from '../internal/operators/multicast';
-export { observeOn } from '../internal/operators/observeOn';
-export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext';
-export { pairwise } from '../internal/operators/pairwise';
-export { partition } from '../internal/operators/partition';
-export { pluck } from '../internal/operators/pluck';
-export { publish } from '../internal/operators/publish';
-export { publishBehavior } from '../internal/operators/publishBehavior';
-export { publishLast } from '../internal/operators/publishLast';
-export { publishReplay } from '../internal/operators/publishReplay';
-export { race } from '../internal/operators/race';
-export { reduce } from '../internal/operators/reduce';
-export { repeat } from '../internal/operators/repeat';
-export { repeatWhen } from '../internal/operators/repeatWhen';
-export { retry } from '../internal/operators/retry';
-export { retryWhen } from '../internal/operators/retryWhen';
-export { refCount } from '../internal/operators/refCount';
-export { sample } from '../internal/operators/sample';
-export { sampleTime } from '../internal/operators/sampleTime';
-export { scan } from '../internal/operators/scan';
-export { sequenceEqual } from '../internal/operators/sequenceEqual';
-export { share } from '../internal/operators/share';
-export { shareReplay } from '../internal/operators/shareReplay';
-export { single } from '../internal/operators/single';
-export { skip } from '../internal/operators/skip';
-export { skipLast } from '../internal/operators/skipLast';
-export { skipUntil } from '../internal/operators/skipUntil';
-export { skipWhile } from '../internal/operators/skipWhile';
-export { startWith } from '../internal/operators/startWith';
-export { subscribeOn } from '../internal/operators/subscribeOn';
-export { switchAll } from '../internal/operators/switchAll';
-export { switchMap } from '../internal/operators/switchMap';
-export { switchMapTo } from '../internal/operators/switchMapTo';
-export { take } from '../internal/operators/take';
-export { takeLast } from '../internal/operators/takeLast';
-export { takeUntil } from '../internal/operators/takeUntil';
-export { takeWhile } from '../internal/operators/takeWhile';
-export { tap } from '../internal/operators/tap';
-export { throttle } from '../internal/operators/throttle';
-export { throttleTime } from '../internal/operators/throttleTime';
-export { throwIfEmpty } from '../internal/operators/throwIfEmpty';
-export { timeInterval } from '../internal/operators/timeInterval';
-export { timeout } from '../internal/operators/timeout';
-export { timeoutWith } from '../internal/operators/timeoutWith';
-export { timestamp } from '../internal/operators/timestamp';
-export { toArray } from '../internal/operators/toArray';
-export { window } from '../internal/operators/window';
-export { windowCount } from '../internal/operators/windowCount';
-export { windowTime } from '../internal/operators/windowTime';
-export { windowToggle } from '../internal/operators/windowToggle';
-export { windowWhen } from '../internal/operators/windowWhen';
-export { withLatestFrom } from '../internal/operators/withLatestFrom';
-export { zip } from '../internal/operators/zip';
-export { zipAll } from '../internal/operators/zipAll';
diff --git a/node_modules/rxjs/src/operators/isEmpty.ts b/node_modules/rxjs/src/operators/isEmpty.ts
deleted file mode 100644
index fd1d1af..0000000
--- a/node_modules/rxjs/src/operators/isEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/isEmpty';
diff --git a/node_modules/rxjs/src/operators/last.ts b/node_modules/rxjs/src/operators/last.ts
deleted file mode 100644
index c8464bf..0000000
--- a/node_modules/rxjs/src/operators/last.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/last';
diff --git a/node_modules/rxjs/src/operators/map.ts b/node_modules/rxjs/src/operators/map.ts
deleted file mode 100644
index 7e8cb1f..0000000
--- a/node_modules/rxjs/src/operators/map.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/map';
diff --git a/node_modules/rxjs/src/operators/mapTo.ts b/node_modules/rxjs/src/operators/mapTo.ts
deleted file mode 100644
index 72b4d9e..0000000
--- a/node_modules/rxjs/src/operators/mapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mapTo';
diff --git a/node_modules/rxjs/src/operators/materialize.ts b/node_modules/rxjs/src/operators/materialize.ts
deleted file mode 100644
index e050f1e..0000000
--- a/node_modules/rxjs/src/operators/materialize.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/materialize';
diff --git a/node_modules/rxjs/src/operators/max.ts b/node_modules/rxjs/src/operators/max.ts
deleted file mode 100644
index 044da47..0000000
--- a/node_modules/rxjs/src/operators/max.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/max';
diff --git a/node_modules/rxjs/src/operators/merge.ts b/node_modules/rxjs/src/operators/merge.ts
deleted file mode 100644
index 7d9f674..0000000
--- a/node_modules/rxjs/src/operators/merge.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/merge';
\ No newline at end of file
diff --git a/node_modules/rxjs/src/operators/mergeAll.ts b/node_modules/rxjs/src/operators/mergeAll.ts
deleted file mode 100644
index b5c5b38..0000000
--- a/node_modules/rxjs/src/operators/mergeAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeAll';
diff --git a/node_modules/rxjs/src/operators/mergeMap.ts b/node_modules/rxjs/src/operators/mergeMap.ts
deleted file mode 100644
index af5c7c1..0000000
--- a/node_modules/rxjs/src/operators/mergeMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeMap';
diff --git a/node_modules/rxjs/src/operators/mergeMapTo.ts b/node_modules/rxjs/src/operators/mergeMapTo.ts
deleted file mode 100644
index 67b6cb7..0000000
--- a/node_modules/rxjs/src/operators/mergeMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeMapTo';
diff --git a/node_modules/rxjs/src/operators/mergeScan.ts b/node_modules/rxjs/src/operators/mergeScan.ts
deleted file mode 100644
index ef73adc..0000000
--- a/node_modules/rxjs/src/operators/mergeScan.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/mergeScan';
diff --git a/node_modules/rxjs/src/operators/min.ts b/node_modules/rxjs/src/operators/min.ts
deleted file mode 100644
index 3706e3f..0000000
--- a/node_modules/rxjs/src/operators/min.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/min';
diff --git a/node_modules/rxjs/src/operators/multicast.ts b/node_modules/rxjs/src/operators/multicast.ts
deleted file mode 100644
index 9470284..0000000
--- a/node_modules/rxjs/src/operators/multicast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/multicast';
diff --git a/node_modules/rxjs/src/operators/observeOn.ts b/node_modules/rxjs/src/operators/observeOn.ts
deleted file mode 100644
index 0f6d414..0000000
--- a/node_modules/rxjs/src/operators/observeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/observeOn';
diff --git a/node_modules/rxjs/src/operators/onErrorResumeNext.ts b/node_modules/rxjs/src/operators/onErrorResumeNext.ts
deleted file mode 100644
index 0b19815..0000000
--- a/node_modules/rxjs/src/operators/onErrorResumeNext.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/onErrorResumeNext';
diff --git a/node_modules/rxjs/src/operators/package.json b/node_modules/rxjs/src/operators/package.json
deleted file mode 100644
index eefac38..0000000
--- a/node_modules/rxjs/src/operators/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/operators",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/operators/index.js",
-  "es2015": "../_esm2015/operators/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/src/operators/pairwise.ts b/node_modules/rxjs/src/operators/pairwise.ts
deleted file mode 100644
index f83f732..0000000
--- a/node_modules/rxjs/src/operators/pairwise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/pairwise';
diff --git a/node_modules/rxjs/src/operators/partition.ts b/node_modules/rxjs/src/operators/partition.ts
deleted file mode 100644
index 3c82843..0000000
--- a/node_modules/rxjs/src/operators/partition.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/partition';
diff --git a/node_modules/rxjs/src/operators/pluck.ts b/node_modules/rxjs/src/operators/pluck.ts
deleted file mode 100644
index 2ac910a..0000000
--- a/node_modules/rxjs/src/operators/pluck.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/pluck';
diff --git a/node_modules/rxjs/src/operators/publish.ts b/node_modules/rxjs/src/operators/publish.ts
deleted file mode 100644
index a21951d..0000000
--- a/node_modules/rxjs/src/operators/publish.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publish';
diff --git a/node_modules/rxjs/src/operators/publishBehavior.ts b/node_modules/rxjs/src/operators/publishBehavior.ts
deleted file mode 100644
index 53cbc37..0000000
--- a/node_modules/rxjs/src/operators/publishBehavior.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishBehavior';
diff --git a/node_modules/rxjs/src/operators/publishLast.ts b/node_modules/rxjs/src/operators/publishLast.ts
deleted file mode 100644
index 0fcb439..0000000
--- a/node_modules/rxjs/src/operators/publishLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishLast';
diff --git a/node_modules/rxjs/src/operators/publishReplay.ts b/node_modules/rxjs/src/operators/publishReplay.ts
deleted file mode 100644
index ff87a2d..0000000
--- a/node_modules/rxjs/src/operators/publishReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/publishReplay';
diff --git a/node_modules/rxjs/src/operators/race.ts b/node_modules/rxjs/src/operators/race.ts
deleted file mode 100644
index 95047c7..0000000
--- a/node_modules/rxjs/src/operators/race.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/race';
diff --git a/node_modules/rxjs/src/operators/reduce.ts b/node_modules/rxjs/src/operators/reduce.ts
deleted file mode 100644
index abb05c3..0000000
--- a/node_modules/rxjs/src/operators/reduce.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/reduce';
diff --git a/node_modules/rxjs/src/operators/refCount.ts b/node_modules/rxjs/src/operators/refCount.ts
deleted file mode 100644
index 3c38baa..0000000
--- a/node_modules/rxjs/src/operators/refCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/refCount';
diff --git a/node_modules/rxjs/src/operators/repeat.ts b/node_modules/rxjs/src/operators/repeat.ts
deleted file mode 100644
index 1f36353..0000000
--- a/node_modules/rxjs/src/operators/repeat.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/repeat';
diff --git a/node_modules/rxjs/src/operators/repeatWhen.ts b/node_modules/rxjs/src/operators/repeatWhen.ts
deleted file mode 100644
index df052ac..0000000
--- a/node_modules/rxjs/src/operators/repeatWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/repeatWhen';
diff --git a/node_modules/rxjs/src/operators/retry.ts b/node_modules/rxjs/src/operators/retry.ts
deleted file mode 100644
index b8d2fee..0000000
--- a/node_modules/rxjs/src/operators/retry.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/retry';
diff --git a/node_modules/rxjs/src/operators/retryWhen.ts b/node_modules/rxjs/src/operators/retryWhen.ts
deleted file mode 100644
index 00f9bdf..0000000
--- a/node_modules/rxjs/src/operators/retryWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/retryWhen';
diff --git a/node_modules/rxjs/src/operators/sample.ts b/node_modules/rxjs/src/operators/sample.ts
deleted file mode 100644
index 0e05a4b..0000000
--- a/node_modules/rxjs/src/operators/sample.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sample';
diff --git a/node_modules/rxjs/src/operators/sampleTime.ts b/node_modules/rxjs/src/operators/sampleTime.ts
deleted file mode 100644
index 5041a51..0000000
--- a/node_modules/rxjs/src/operators/sampleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sampleTime';
diff --git a/node_modules/rxjs/src/operators/scan.ts b/node_modules/rxjs/src/operators/scan.ts
deleted file mode 100644
index acaee73..0000000
--- a/node_modules/rxjs/src/operators/scan.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/scan';
diff --git a/node_modules/rxjs/src/operators/sequenceEqual.ts b/node_modules/rxjs/src/operators/sequenceEqual.ts
deleted file mode 100644
index 0a6e3cb..0000000
--- a/node_modules/rxjs/src/operators/sequenceEqual.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/sequenceEqual';
diff --git a/node_modules/rxjs/src/operators/share.ts b/node_modules/rxjs/src/operators/share.ts
deleted file mode 100644
index fd113fd..0000000
--- a/node_modules/rxjs/src/operators/share.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/share';
diff --git a/node_modules/rxjs/src/operators/shareReplay.ts b/node_modules/rxjs/src/operators/shareReplay.ts
deleted file mode 100644
index d489c81..0000000
--- a/node_modules/rxjs/src/operators/shareReplay.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/shareReplay';
diff --git a/node_modules/rxjs/src/operators/single.ts b/node_modules/rxjs/src/operators/single.ts
deleted file mode 100644
index 096d4b4..0000000
--- a/node_modules/rxjs/src/operators/single.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/single';
diff --git a/node_modules/rxjs/src/operators/skip.ts b/node_modules/rxjs/src/operators/skip.ts
deleted file mode 100644
index 002baeb..0000000
--- a/node_modules/rxjs/src/operators/skip.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skip';
diff --git a/node_modules/rxjs/src/operators/skipLast.ts b/node_modules/rxjs/src/operators/skipLast.ts
deleted file mode 100644
index 15d1c49..0000000
--- a/node_modules/rxjs/src/operators/skipLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipLast';
diff --git a/node_modules/rxjs/src/operators/skipUntil.ts b/node_modules/rxjs/src/operators/skipUntil.ts
deleted file mode 100644
index 4193fe2..0000000
--- a/node_modules/rxjs/src/operators/skipUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipUntil';
diff --git a/node_modules/rxjs/src/operators/skipWhile.ts b/node_modules/rxjs/src/operators/skipWhile.ts
deleted file mode 100644
index 34fb4d6..0000000
--- a/node_modules/rxjs/src/operators/skipWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/skipWhile';
diff --git a/node_modules/rxjs/src/operators/startWith.ts b/node_modules/rxjs/src/operators/startWith.ts
deleted file mode 100644
index 901bbba..0000000
--- a/node_modules/rxjs/src/operators/startWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/startWith';
diff --git a/node_modules/rxjs/src/operators/subscribeOn.ts b/node_modules/rxjs/src/operators/subscribeOn.ts
deleted file mode 100644
index eb1c233..0000000
--- a/node_modules/rxjs/src/operators/subscribeOn.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/subscribeOn';
diff --git a/node_modules/rxjs/src/operators/switchAll.ts b/node_modules/rxjs/src/operators/switchAll.ts
deleted file mode 100644
index 37a8c20..0000000
--- a/node_modules/rxjs/src/operators/switchAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchAll';
diff --git a/node_modules/rxjs/src/operators/switchMap.ts b/node_modules/rxjs/src/operators/switchMap.ts
deleted file mode 100644
index 840c2c7..0000000
--- a/node_modules/rxjs/src/operators/switchMap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchMap';
diff --git a/node_modules/rxjs/src/operators/switchMapTo.ts b/node_modules/rxjs/src/operators/switchMapTo.ts
deleted file mode 100644
index fbefdfe..0000000
--- a/node_modules/rxjs/src/operators/switchMapTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/switchMapTo';
diff --git a/node_modules/rxjs/src/operators/take.ts b/node_modules/rxjs/src/operators/take.ts
deleted file mode 100644
index 1176ad7..0000000
--- a/node_modules/rxjs/src/operators/take.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/take';
diff --git a/node_modules/rxjs/src/operators/takeLast.ts b/node_modules/rxjs/src/operators/takeLast.ts
deleted file mode 100644
index 35e85f2..0000000
--- a/node_modules/rxjs/src/operators/takeLast.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeLast';
diff --git a/node_modules/rxjs/src/operators/takeUntil.ts b/node_modules/rxjs/src/operators/takeUntil.ts
deleted file mode 100644
index 828abef..0000000
--- a/node_modules/rxjs/src/operators/takeUntil.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeUntil';
diff --git a/node_modules/rxjs/src/operators/takeWhile.ts b/node_modules/rxjs/src/operators/takeWhile.ts
deleted file mode 100644
index c3edb4e..0000000
--- a/node_modules/rxjs/src/operators/takeWhile.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/takeWhile';
diff --git a/node_modules/rxjs/src/operators/tap.ts b/node_modules/rxjs/src/operators/tap.ts
deleted file mode 100644
index 6190e75..0000000
--- a/node_modules/rxjs/src/operators/tap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/tap';
diff --git a/node_modules/rxjs/src/operators/throttle.ts b/node_modules/rxjs/src/operators/throttle.ts
deleted file mode 100644
index f887a2f..0000000
--- a/node_modules/rxjs/src/operators/throttle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throttle';
diff --git a/node_modules/rxjs/src/operators/throttleTime.ts b/node_modules/rxjs/src/operators/throttleTime.ts
deleted file mode 100644
index 8fbd3c8..0000000
--- a/node_modules/rxjs/src/operators/throttleTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throttleTime';
diff --git a/node_modules/rxjs/src/operators/throwIfEmpty.ts b/node_modules/rxjs/src/operators/throwIfEmpty.ts
deleted file mode 100644
index 6bb64cd..0000000
--- a/node_modules/rxjs/src/operators/throwIfEmpty.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/throwIfEmpty';
diff --git a/node_modules/rxjs/src/operators/timeInterval.ts b/node_modules/rxjs/src/operators/timeInterval.ts
deleted file mode 100644
index 6af3911..0000000
--- a/node_modules/rxjs/src/operators/timeInterval.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeInterval';
diff --git a/node_modules/rxjs/src/operators/timeout.ts b/node_modules/rxjs/src/operators/timeout.ts
deleted file mode 100644
index c4a43f1..0000000
--- a/node_modules/rxjs/src/operators/timeout.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeout';
diff --git a/node_modules/rxjs/src/operators/timeoutWith.ts b/node_modules/rxjs/src/operators/timeoutWith.ts
deleted file mode 100644
index 2cfcad8..0000000
--- a/node_modules/rxjs/src/operators/timeoutWith.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timeoutWith';
diff --git a/node_modules/rxjs/src/operators/timestamp.ts b/node_modules/rxjs/src/operators/timestamp.ts
deleted file mode 100644
index 6580e38..0000000
--- a/node_modules/rxjs/src/operators/timestamp.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/timestamp';
diff --git a/node_modules/rxjs/src/operators/toArray.ts b/node_modules/rxjs/src/operators/toArray.ts
deleted file mode 100644
index 7f678db..0000000
--- a/node_modules/rxjs/src/operators/toArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/toArray';
diff --git a/node_modules/rxjs/src/operators/window.ts b/node_modules/rxjs/src/operators/window.ts
deleted file mode 100644
index 2642141..0000000
--- a/node_modules/rxjs/src/operators/window.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/window';
diff --git a/node_modules/rxjs/src/operators/windowCount.ts b/node_modules/rxjs/src/operators/windowCount.ts
deleted file mode 100644
index b774707..0000000
--- a/node_modules/rxjs/src/operators/windowCount.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowCount';
diff --git a/node_modules/rxjs/src/operators/windowTime.ts b/node_modules/rxjs/src/operators/windowTime.ts
deleted file mode 100644
index 2cbf76f..0000000
--- a/node_modules/rxjs/src/operators/windowTime.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowTime';
diff --git a/node_modules/rxjs/src/operators/windowToggle.ts b/node_modules/rxjs/src/operators/windowToggle.ts
deleted file mode 100644
index b116f17..0000000
--- a/node_modules/rxjs/src/operators/windowToggle.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowToggle';
diff --git a/node_modules/rxjs/src/operators/windowWhen.ts b/node_modules/rxjs/src/operators/windowWhen.ts
deleted file mode 100644
index 782d4dc..0000000
--- a/node_modules/rxjs/src/operators/windowWhen.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/windowWhen';
diff --git a/node_modules/rxjs/src/operators/withLatestFrom.ts b/node_modules/rxjs/src/operators/withLatestFrom.ts
deleted file mode 100644
index 15f7450..0000000
--- a/node_modules/rxjs/src/operators/withLatestFrom.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/withLatestFrom';
diff --git a/node_modules/rxjs/src/operators/zip.ts b/node_modules/rxjs/src/operators/zip.ts
deleted file mode 100644
index c75d56f..0000000
--- a/node_modules/rxjs/src/operators/zip.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/zip';
diff --git a/node_modules/rxjs/src/operators/zipAll.ts b/node_modules/rxjs/src/operators/zipAll.ts
deleted file mode 100644
index 3e69835..0000000
--- a/node_modules/rxjs/src/operators/zipAll.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/operators/zipAll';
diff --git a/node_modules/rxjs/src/scheduler/animationFrame.ts b/node_modules/rxjs/src/scheduler/animationFrame.ts
deleted file mode 100644
index f293624..0000000
--- a/node_modules/rxjs/src/scheduler/animationFrame.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/animationFrame';
diff --git a/node_modules/rxjs/src/scheduler/asap.ts b/node_modules/rxjs/src/scheduler/asap.ts
deleted file mode 100644
index 934d4b5..0000000
--- a/node_modules/rxjs/src/scheduler/asap.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/asap';
diff --git a/node_modules/rxjs/src/scheduler/async.ts b/node_modules/rxjs/src/scheduler/async.ts
deleted file mode 100644
index ed5a613..0000000
--- a/node_modules/rxjs/src/scheduler/async.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/async';
diff --git a/node_modules/rxjs/src/scheduler/queue.ts b/node_modules/rxjs/src/scheduler/queue.ts
deleted file mode 100644
index daea584..0000000
--- a/node_modules/rxjs/src/scheduler/queue.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/scheduler/queue';
diff --git a/node_modules/rxjs/src/symbol/iterator.ts b/node_modules/rxjs/src/symbol/iterator.ts
deleted file mode 100644
index 7090360..0000000
--- a/node_modules/rxjs/src/symbol/iterator.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/iterator';
diff --git a/node_modules/rxjs/src/symbol/observable.ts b/node_modules/rxjs/src/symbol/observable.ts
deleted file mode 100644
index c5fc191..0000000
--- a/node_modules/rxjs/src/symbol/observable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/observable';
diff --git a/node_modules/rxjs/src/symbol/rxSubscriber.ts b/node_modules/rxjs/src/symbol/rxSubscriber.ts
deleted file mode 100644
index cf3866a..0000000
--- a/node_modules/rxjs/src/symbol/rxSubscriber.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/rxSubscriber';
diff --git a/node_modules/rxjs/src/testing/index.ts b/node_modules/rxjs/src/testing/index.ts
deleted file mode 100644
index 4c23a72..0000000
--- a/node_modules/rxjs/src/testing/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { TestScheduler } from '../internal/testing/TestScheduler';
diff --git a/node_modules/rxjs/src/testing/package.json b/node_modules/rxjs/src/testing/package.json
deleted file mode 100644
index 1a11a9f..0000000
--- a/node_modules/rxjs/src/testing/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/testing",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/testing/index.js",
-  "es2015": "../_esm2015/testing/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/src/tsconfig.json b/node_modules/rxjs/src/tsconfig.json
deleted file mode 100644
index 14e7621..0000000
--- a/node_modules/rxjs/src/tsconfig.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "compilerOptions": {
-    "removeComments": true,
-    "preserveConstEnums": true,
-    "sourceMap": true,
-    "strictFunctionTypes": true,
-    "noImplicitAny": true,
-    "noImplicitReturns": true,
-    "noImplicitThis": true,
-    "suppressImplicitAnyIndexErrors": true,
-    "moduleResolution": "node",
-    "stripInternal": false,
-    "target": "es5",
-    "outDir": "./.out",
-    "lib": [
-      "es5",
-      "es2015.iterable",
-      "es2015.collection",
-      "es2015.promise",
-      "es2015.symbol",
-      "es2015.symbol.wellknown",
-      "dom"
-    ]
-  },
-  "formatCodeOptions": {
-    "indentSize": 2,
-    "tabSize": 2
-  },
-  "bazelOptions": {
-    "suppressTsconfigOverrideWarnings": true
-  }
-}
diff --git a/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts b/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts
deleted file mode 100644
index 48e4712..0000000
--- a/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/ArgumentOutOfRangeError';
diff --git a/node_modules/rxjs/src/util/EmptyError.ts b/node_modules/rxjs/src/util/EmptyError.ts
deleted file mode 100644
index 8d25892..0000000
--- a/node_modules/rxjs/src/util/EmptyError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/EmptyError';
diff --git a/node_modules/rxjs/src/util/Immediate.ts b/node_modules/rxjs/src/util/Immediate.ts
deleted file mode 100644
index 2bfaf13..0000000
--- a/node_modules/rxjs/src/util/Immediate.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/Immediate';
diff --git a/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts b/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts
deleted file mode 100644
index 3ae25a9..0000000
--- a/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/ObjectUnsubscribedError';
diff --git a/node_modules/rxjs/src/util/TimeoutError.ts b/node_modules/rxjs/src/util/TimeoutError.ts
deleted file mode 100644
index 31aae0b..0000000
--- a/node_modules/rxjs/src/util/TimeoutError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/TimeoutError';
diff --git a/node_modules/rxjs/src/util/UnsubscriptionError.ts b/node_modules/rxjs/src/util/UnsubscriptionError.ts
deleted file mode 100644
index fbf4c1c..0000000
--- a/node_modules/rxjs/src/util/UnsubscriptionError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/UnsubscriptionError';
diff --git a/node_modules/rxjs/src/util/applyMixins.ts b/node_modules/rxjs/src/util/applyMixins.ts
deleted file mode 100644
index b5ef81c..0000000
--- a/node_modules/rxjs/src/util/applyMixins.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/applyMixins';
diff --git a/node_modules/rxjs/src/util/errorObject.ts b/node_modules/rxjs/src/util/errorObject.ts
deleted file mode 100644
index 3dad2b9..0000000
--- a/node_modules/rxjs/src/util/errorObject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/errorObject';
diff --git a/node_modules/rxjs/src/util/hostReportError.ts b/node_modules/rxjs/src/util/hostReportError.ts
deleted file mode 100644
index 74d0de4..0000000
--- a/node_modules/rxjs/src/util/hostReportError.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/hostReportError';
diff --git a/node_modules/rxjs/src/util/identity.ts b/node_modules/rxjs/src/util/identity.ts
deleted file mode 100644
index 685e462..0000000
--- a/node_modules/rxjs/src/util/identity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/identity';
diff --git a/node_modules/rxjs/src/util/isArray.ts b/node_modules/rxjs/src/util/isArray.ts
deleted file mode 100644
index 5ca2e21..0000000
--- a/node_modules/rxjs/src/util/isArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isArray';
diff --git a/node_modules/rxjs/src/util/isArrayLike.ts b/node_modules/rxjs/src/util/isArrayLike.ts
deleted file mode 100644
index a8b03d2..0000000
--- a/node_modules/rxjs/src/util/isArrayLike.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isArrayLike';
diff --git a/node_modules/rxjs/src/util/isDate.ts b/node_modules/rxjs/src/util/isDate.ts
deleted file mode 100644
index c5ebb01..0000000
--- a/node_modules/rxjs/src/util/isDate.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isDate';
diff --git a/node_modules/rxjs/src/util/isFunction.ts b/node_modules/rxjs/src/util/isFunction.ts
deleted file mode 100644
index 7b4a54a..0000000
--- a/node_modules/rxjs/src/util/isFunction.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isFunction';
diff --git a/node_modules/rxjs/src/util/isIterable.ts b/node_modules/rxjs/src/util/isIterable.ts
deleted file mode 100644
index e7ffaae..0000000
--- a/node_modules/rxjs/src/util/isIterable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isIterable';
diff --git a/node_modules/rxjs/src/util/isNumeric.ts b/node_modules/rxjs/src/util/isNumeric.ts
deleted file mode 100644
index eeefcc2..0000000
--- a/node_modules/rxjs/src/util/isNumeric.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isNumeric';
diff --git a/node_modules/rxjs/src/util/isObject.ts b/node_modules/rxjs/src/util/isObject.ts
deleted file mode 100644
index 4b57d81..0000000
--- a/node_modules/rxjs/src/util/isObject.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isObject';
diff --git a/node_modules/rxjs/src/util/isObservable.ts b/node_modules/rxjs/src/util/isObservable.ts
deleted file mode 100644
index cdf34ca..0000000
--- a/node_modules/rxjs/src/util/isObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isObservable';
diff --git a/node_modules/rxjs/src/util/isPromise.ts b/node_modules/rxjs/src/util/isPromise.ts
deleted file mode 100644
index 1494a4b..0000000
--- a/node_modules/rxjs/src/util/isPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isPromise';
diff --git a/node_modules/rxjs/src/util/isScheduler.ts b/node_modules/rxjs/src/util/isScheduler.ts
deleted file mode 100644
index fd1a1f2..0000000
--- a/node_modules/rxjs/src/util/isScheduler.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isScheduler';
diff --git a/node_modules/rxjs/src/util/noop.ts b/node_modules/rxjs/src/util/noop.ts
deleted file mode 100644
index 0fe22e1..0000000
--- a/node_modules/rxjs/src/util/noop.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/noop';
diff --git a/node_modules/rxjs/src/util/not.ts b/node_modules/rxjs/src/util/not.ts
deleted file mode 100644
index 3831576..0000000
--- a/node_modules/rxjs/src/util/not.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/not';
diff --git a/node_modules/rxjs/src/util/pipe.ts b/node_modules/rxjs/src/util/pipe.ts
deleted file mode 100644
index da6342a..0000000
--- a/node_modules/rxjs/src/util/pipe.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/pipe';
diff --git a/node_modules/rxjs/src/util/root.ts b/node_modules/rxjs/src/util/root.ts
deleted file mode 100644
index 25b6c79..0000000
--- a/node_modules/rxjs/src/util/root.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/root';
diff --git a/node_modules/rxjs/src/util/subscribeTo.ts b/node_modules/rxjs/src/util/subscribeTo.ts
deleted file mode 100644
index 471f192..0000000
--- a/node_modules/rxjs/src/util/subscribeTo.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeTo';
diff --git a/node_modules/rxjs/src/util/subscribeToArray.ts b/node_modules/rxjs/src/util/subscribeToArray.ts
deleted file mode 100644
index 9220f62..0000000
--- a/node_modules/rxjs/src/util/subscribeToArray.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToArray';
diff --git a/node_modules/rxjs/src/util/subscribeToIterable.ts b/node_modules/rxjs/src/util/subscribeToIterable.ts
deleted file mode 100644
index 6edb1ef..0000000
--- a/node_modules/rxjs/src/util/subscribeToIterable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToIterable';
diff --git a/node_modules/rxjs/src/util/subscribeToObservable.ts b/node_modules/rxjs/src/util/subscribeToObservable.ts
deleted file mode 100644
index 88495b8..0000000
--- a/node_modules/rxjs/src/util/subscribeToObservable.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToObservable';
diff --git a/node_modules/rxjs/src/util/subscribeToPromise.ts b/node_modules/rxjs/src/util/subscribeToPromise.ts
deleted file mode 100644
index 4540e11..0000000
--- a/node_modules/rxjs/src/util/subscribeToPromise.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToPromise';
diff --git a/node_modules/rxjs/src/util/subscribeToResult.ts b/node_modules/rxjs/src/util/subscribeToResult.ts
deleted file mode 100644
index 2ab44cc..0000000
--- a/node_modules/rxjs/src/util/subscribeToResult.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToResult';
diff --git a/node_modules/rxjs/src/util/toSubscriber.ts b/node_modules/rxjs/src/util/toSubscriber.ts
deleted file mode 100644
index 61e1c7f..0000000
--- a/node_modules/rxjs/src/util/toSubscriber.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/toSubscriber';
diff --git a/node_modules/rxjs/src/util/tryCatch.ts b/node_modules/rxjs/src/util/tryCatch.ts
deleted file mode 100644
index 57c45c7..0000000
--- a/node_modules/rxjs/src/util/tryCatch.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/tryCatch';
diff --git a/node_modules/rxjs/src/webSocket/index.ts b/node_modules/rxjs/src/webSocket/index.ts
deleted file mode 100644
index 833d950..0000000
--- a/node_modules/rxjs/src/webSocket/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { webSocket as webSocket } from '../internal/observable/dom/webSocket';
-export { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject';
diff --git a/node_modules/rxjs/src/webSocket/package.json b/node_modules/rxjs/src/webSocket/package.json
deleted file mode 100644
index 34020bd..0000000
--- a/node_modules/rxjs/src/webSocket/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/webSocket",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/webSocket/index.js",
-  "es2015": "../_esm2015/webSocket/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/symbol/iterator.d.ts b/node_modules/rxjs/symbol/iterator.d.ts
deleted file mode 100644
index 7090360..0000000
--- a/node_modules/rxjs/symbol/iterator.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/iterator';
diff --git a/node_modules/rxjs/symbol/iterator.js b/node_modules/rxjs/symbol/iterator.js
deleted file mode 100644
index e843ac9..0000000
--- a/node_modules/rxjs/symbol/iterator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/symbol/iterator"));
-//# sourceMappingURL=iterator.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/symbol/iterator.js.map b/node_modules/rxjs/symbol/iterator.js.map
deleted file mode 100644
index 0ed8d47..0000000
--- a/node_modules/rxjs/symbol/iterator.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"iterator.js","sources":["../src/symbol/iterator.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/symbol/observable.d.ts b/node_modules/rxjs/symbol/observable.d.ts
deleted file mode 100644
index c5fc191..0000000
--- a/node_modules/rxjs/symbol/observable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/observable';
diff --git a/node_modules/rxjs/symbol/observable.js b/node_modules/rxjs/symbol/observable.js
deleted file mode 100644
index 1cccc45..0000000
--- a/node_modules/rxjs/symbol/observable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/symbol/observable"));
-//# sourceMappingURL=observable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/symbol/observable.js.map b/node_modules/rxjs/symbol/observable.js.map
deleted file mode 100644
index 03c9bd7..0000000
--- a/node_modules/rxjs/symbol/observable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"observable.js","sources":["../src/symbol/observable.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/symbol/rxSubscriber.d.ts b/node_modules/rxjs/symbol/rxSubscriber.d.ts
deleted file mode 100644
index cf3866a..0000000
--- a/node_modules/rxjs/symbol/rxSubscriber.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/symbol/rxSubscriber';
diff --git a/node_modules/rxjs/symbol/rxSubscriber.js b/node_modules/rxjs/symbol/rxSubscriber.js
deleted file mode 100644
index fe2c8fb..0000000
--- a/node_modules/rxjs/symbol/rxSubscriber.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/symbol/rxSubscriber"));
-//# sourceMappingURL=rxSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/symbol/rxSubscriber.js.map b/node_modules/rxjs/symbol/rxSubscriber.js.map
deleted file mode 100644
index a044a41..0000000
--- a/node_modules/rxjs/symbol/rxSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rxSubscriber.js","sources":["../src/symbol/rxSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"}
diff --git a/node_modules/rxjs/testing/index.d.ts b/node_modules/rxjs/testing/index.d.ts
deleted file mode 100644
index 4c23a72..0000000
--- a/node_modules/rxjs/testing/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { TestScheduler } from '../internal/testing/TestScheduler';
diff --git a/node_modules/rxjs/testing/index.js b/node_modules/rxjs/testing/index.js
deleted file mode 100644
index 755148d..0000000
--- a/node_modules/rxjs/testing/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var TestScheduler_1 = require("../internal/testing/TestScheduler");
-exports.TestScheduler = TestScheduler_1.TestScheduler;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/testing/index.js.map b/node_modules/rxjs/testing/index.js.map
deleted file mode 100644
index 910637e..0000000
--- a/node_modules/rxjs/testing/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/testing/index.ts"],"names":[],"mappings":";;AAAA,mEAAkE;AAAzD,wCAAA,aAAa,CAAA"}
diff --git a/node_modules/rxjs/testing/package.json b/node_modules/rxjs/testing/package.json
deleted file mode 100644
index 1a11a9f..0000000
--- a/node_modules/rxjs/testing/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/testing",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/testing/index.js",
-  "es2015": "../_esm2015/testing/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts b/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts
deleted file mode 100644
index 48e4712..0000000
--- a/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/ArgumentOutOfRangeError';
diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/util/ArgumentOutOfRangeError.js
deleted file mode 100644
index 493a895..0000000
--- a/node_modules/rxjs/util/ArgumentOutOfRangeError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/ArgumentOutOfRangeError"));
-//# sourceMappingURL=ArgumentOutOfRangeError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map
deleted file mode 100644
index fc8bea3..0000000
--- a/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../src/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"}
diff --git a/node_modules/rxjs/util/EmptyError.d.ts b/node_modules/rxjs/util/EmptyError.d.ts
deleted file mode 100644
index 8d25892..0000000
--- a/node_modules/rxjs/util/EmptyError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/EmptyError';
diff --git a/node_modules/rxjs/util/EmptyError.js b/node_modules/rxjs/util/EmptyError.js
deleted file mode 100644
index 781eaac..0000000
--- a/node_modules/rxjs/util/EmptyError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/EmptyError"));
-//# sourceMappingURL=EmptyError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/EmptyError.js.map b/node_modules/rxjs/util/EmptyError.js.map
deleted file mode 100644
index 43f933f..0000000
--- a/node_modules/rxjs/util/EmptyError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"EmptyError.js","sources":["../src/util/EmptyError.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/util/Immediate.d.ts b/node_modules/rxjs/util/Immediate.d.ts
deleted file mode 100644
index 2bfaf13..0000000
--- a/node_modules/rxjs/util/Immediate.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/Immediate';
diff --git a/node_modules/rxjs/util/Immediate.js b/node_modules/rxjs/util/Immediate.js
deleted file mode 100644
index 763687f..0000000
--- a/node_modules/rxjs/util/Immediate.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/Immediate"));
-//# sourceMappingURL=Immediate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/Immediate.js.map b/node_modules/rxjs/util/Immediate.js.map
deleted file mode 100644
index 58b1722..0000000
--- a/node_modules/rxjs/util/Immediate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Immediate.js","sources":["../src/util/Immediate.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts b/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts
deleted file mode 100644
index 3ae25a9..0000000
--- a/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/ObjectUnsubscribedError';
diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.js b/node_modules/rxjs/util/ObjectUnsubscribedError.js
deleted file mode 100644
index 3f694db..0000000
--- a/node_modules/rxjs/util/ObjectUnsubscribedError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/ObjectUnsubscribedError"));
-//# sourceMappingURL=ObjectUnsubscribedError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/util/ObjectUnsubscribedError.js.map
deleted file mode 100644
index 65e5099..0000000
--- a/node_modules/rxjs/util/ObjectUnsubscribedError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../src/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"}
diff --git a/node_modules/rxjs/util/TimeoutError.d.ts b/node_modules/rxjs/util/TimeoutError.d.ts
deleted file mode 100644
index 31aae0b..0000000
--- a/node_modules/rxjs/util/TimeoutError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/TimeoutError';
diff --git a/node_modules/rxjs/util/TimeoutError.js b/node_modules/rxjs/util/TimeoutError.js
deleted file mode 100644
index 11ddb2d..0000000
--- a/node_modules/rxjs/util/TimeoutError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/TimeoutError"));
-//# sourceMappingURL=TimeoutError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/TimeoutError.js.map b/node_modules/rxjs/util/TimeoutError.js.map
deleted file mode 100644
index 6fcb847..0000000
--- a/node_modules/rxjs/util/TimeoutError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TimeoutError.js","sources":["../src/util/TimeoutError.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/util/UnsubscriptionError.d.ts b/node_modules/rxjs/util/UnsubscriptionError.d.ts
deleted file mode 100644
index fbf4c1c..0000000
--- a/node_modules/rxjs/util/UnsubscriptionError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/UnsubscriptionError';
diff --git a/node_modules/rxjs/util/UnsubscriptionError.js b/node_modules/rxjs/util/UnsubscriptionError.js
deleted file mode 100644
index 53d3e1d..0000000
--- a/node_modules/rxjs/util/UnsubscriptionError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/UnsubscriptionError"));
-//# sourceMappingURL=UnsubscriptionError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/UnsubscriptionError.js.map b/node_modules/rxjs/util/UnsubscriptionError.js.map
deleted file mode 100644
index 58684c5..0000000
--- a/node_modules/rxjs/util/UnsubscriptionError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"UnsubscriptionError.js","sources":["../src/util/UnsubscriptionError.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/util/applyMixins.d.ts b/node_modules/rxjs/util/applyMixins.d.ts
deleted file mode 100644
index b5ef81c..0000000
--- a/node_modules/rxjs/util/applyMixins.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/applyMixins';
diff --git a/node_modules/rxjs/util/applyMixins.js b/node_modules/rxjs/util/applyMixins.js
deleted file mode 100644
index 96dd781..0000000
--- a/node_modules/rxjs/util/applyMixins.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/applyMixins"));
-//# sourceMappingURL=applyMixins.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/applyMixins.js.map b/node_modules/rxjs/util/applyMixins.js.map
deleted file mode 100644
index 31bdb17..0000000
--- a/node_modules/rxjs/util/applyMixins.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"applyMixins.js","sources":["../src/util/applyMixins.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/util/errorObject.d.ts b/node_modules/rxjs/util/errorObject.d.ts
deleted file mode 100644
index 3dad2b9..0000000
--- a/node_modules/rxjs/util/errorObject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/errorObject';
diff --git a/node_modules/rxjs/util/errorObject.js b/node_modules/rxjs/util/errorObject.js
deleted file mode 100644
index 01dec18..0000000
--- a/node_modules/rxjs/util/errorObject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/errorObject"));
-//# sourceMappingURL=errorObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/errorObject.js.map b/node_modules/rxjs/util/errorObject.js.map
deleted file mode 100644
index 1806438..0000000
--- a/node_modules/rxjs/util/errorObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"errorObject.js","sources":["../src/util/errorObject.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/util/hostReportError.d.ts b/node_modules/rxjs/util/hostReportError.d.ts
deleted file mode 100644
index 74d0de4..0000000
--- a/node_modules/rxjs/util/hostReportError.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/hostReportError';
diff --git a/node_modules/rxjs/util/hostReportError.js b/node_modules/rxjs/util/hostReportError.js
deleted file mode 100644
index 670bc65..0000000
--- a/node_modules/rxjs/util/hostReportError.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/hostReportError"));
-//# sourceMappingURL=hostReportError.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/hostReportError.js.map b/node_modules/rxjs/util/hostReportError.js.map
deleted file mode 100644
index f4eb9bd..0000000
--- a/node_modules/rxjs/util/hostReportError.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hostReportError.js","sources":["../src/util/hostReportError.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"}
diff --git a/node_modules/rxjs/util/identity.d.ts b/node_modules/rxjs/util/identity.d.ts
deleted file mode 100644
index 685e462..0000000
--- a/node_modules/rxjs/util/identity.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/identity';
diff --git a/node_modules/rxjs/util/identity.js b/node_modules/rxjs/util/identity.js
deleted file mode 100644
index f021096..0000000
--- a/node_modules/rxjs/util/identity.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/identity"));
-//# sourceMappingURL=identity.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/identity.js.map b/node_modules/rxjs/util/identity.js.map
deleted file mode 100644
index e437626..0000000
--- a/node_modules/rxjs/util/identity.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"identity.js","sources":["../src/util/identity.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/util/isArray.d.ts b/node_modules/rxjs/util/isArray.d.ts
deleted file mode 100644
index 5ca2e21..0000000
--- a/node_modules/rxjs/util/isArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isArray';
diff --git a/node_modules/rxjs/util/isArray.js b/node_modules/rxjs/util/isArray.js
deleted file mode 100644
index 123665b..0000000
--- a/node_modules/rxjs/util/isArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isArray"));
-//# sourceMappingURL=isArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isArray.js.map b/node_modules/rxjs/util/isArray.js.map
deleted file mode 100644
index 4b49835..0000000
--- a/node_modules/rxjs/util/isArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArray.js","sources":["../src/util/isArray.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"}
diff --git a/node_modules/rxjs/util/isArrayLike.d.ts b/node_modules/rxjs/util/isArrayLike.d.ts
deleted file mode 100644
index a8b03d2..0000000
--- a/node_modules/rxjs/util/isArrayLike.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isArrayLike';
diff --git a/node_modules/rxjs/util/isArrayLike.js b/node_modules/rxjs/util/isArrayLike.js
deleted file mode 100644
index 83f5ecf..0000000
--- a/node_modules/rxjs/util/isArrayLike.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isArrayLike"));
-//# sourceMappingURL=isArrayLike.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isArrayLike.js.map b/node_modules/rxjs/util/isArrayLike.js.map
deleted file mode 100644
index 541be63..0000000
--- a/node_modules/rxjs/util/isArrayLike.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isArrayLike.js","sources":["../src/util/isArrayLike.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/util/isDate.d.ts b/node_modules/rxjs/util/isDate.d.ts
deleted file mode 100644
index c5ebb01..0000000
--- a/node_modules/rxjs/util/isDate.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isDate';
diff --git a/node_modules/rxjs/util/isDate.js b/node_modules/rxjs/util/isDate.js
deleted file mode 100644
index 8ab33c3..0000000
--- a/node_modules/rxjs/util/isDate.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isDate"));
-//# sourceMappingURL=isDate.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isDate.js.map b/node_modules/rxjs/util/isDate.js.map
deleted file mode 100644
index 668a2c2..0000000
--- a/node_modules/rxjs/util/isDate.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isDate.js","sources":["../src/util/isDate.ts"],"names":[],"mappings":";;;;;AAAA,6CAAwC"}
diff --git a/node_modules/rxjs/util/isFunction.d.ts b/node_modules/rxjs/util/isFunction.d.ts
deleted file mode 100644
index 7b4a54a..0000000
--- a/node_modules/rxjs/util/isFunction.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isFunction';
diff --git a/node_modules/rxjs/util/isFunction.js b/node_modules/rxjs/util/isFunction.js
deleted file mode 100644
index 0f720e9..0000000
--- a/node_modules/rxjs/util/isFunction.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isFunction"));
-//# sourceMappingURL=isFunction.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isFunction.js.map b/node_modules/rxjs/util/isFunction.js.map
deleted file mode 100644
index 1662a61..0000000
--- a/node_modules/rxjs/util/isFunction.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isFunction.js","sources":["../src/util/isFunction.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/util/isIterable.d.ts b/node_modules/rxjs/util/isIterable.d.ts
deleted file mode 100644
index e7ffaae..0000000
--- a/node_modules/rxjs/util/isIterable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isIterable';
diff --git a/node_modules/rxjs/util/isIterable.js b/node_modules/rxjs/util/isIterable.js
deleted file mode 100644
index 59afc85..0000000
--- a/node_modules/rxjs/util/isIterable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isIterable"));
-//# sourceMappingURL=isIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isIterable.js.map b/node_modules/rxjs/util/isIterable.js.map
deleted file mode 100644
index a7c5645..0000000
--- a/node_modules/rxjs/util/isIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isIterable.js","sources":["../src/util/isIterable.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"}
diff --git a/node_modules/rxjs/util/isNumeric.d.ts b/node_modules/rxjs/util/isNumeric.d.ts
deleted file mode 100644
index eeefcc2..0000000
--- a/node_modules/rxjs/util/isNumeric.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isNumeric';
diff --git a/node_modules/rxjs/util/isNumeric.js b/node_modules/rxjs/util/isNumeric.js
deleted file mode 100644
index ada8604..0000000
--- a/node_modules/rxjs/util/isNumeric.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isNumeric"));
-//# sourceMappingURL=isNumeric.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isNumeric.js.map b/node_modules/rxjs/util/isNumeric.js.map
deleted file mode 100644
index 4156a54..0000000
--- a/node_modules/rxjs/util/isNumeric.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isNumeric.js","sources":["../src/util/isNumeric.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/util/isObject.d.ts b/node_modules/rxjs/util/isObject.d.ts
deleted file mode 100644
index 4b57d81..0000000
--- a/node_modules/rxjs/util/isObject.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isObject';
diff --git a/node_modules/rxjs/util/isObject.js b/node_modules/rxjs/util/isObject.js
deleted file mode 100644
index 0a0d27f..0000000
--- a/node_modules/rxjs/util/isObject.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isObject"));
-//# sourceMappingURL=isObject.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isObject.js.map b/node_modules/rxjs/util/isObject.js.map
deleted file mode 100644
index 957d301..0000000
--- a/node_modules/rxjs/util/isObject.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObject.js","sources":["../src/util/isObject.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/util/isObservable.d.ts b/node_modules/rxjs/util/isObservable.d.ts
deleted file mode 100644
index cdf34ca..0000000
--- a/node_modules/rxjs/util/isObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isObservable';
diff --git a/node_modules/rxjs/util/isObservable.js b/node_modules/rxjs/util/isObservable.js
deleted file mode 100644
index 82aaee1..0000000
--- a/node_modules/rxjs/util/isObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isObservable"));
-//# sourceMappingURL=isObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isObservable.js.map b/node_modules/rxjs/util/isObservable.js.map
deleted file mode 100644
index 0f49141..0000000
--- a/node_modules/rxjs/util/isObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isObservable.js","sources":["../src/util/isObservable.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/util/isPromise.d.ts b/node_modules/rxjs/util/isPromise.d.ts
deleted file mode 100644
index 1494a4b..0000000
--- a/node_modules/rxjs/util/isPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isPromise';
diff --git a/node_modules/rxjs/util/isPromise.js b/node_modules/rxjs/util/isPromise.js
deleted file mode 100644
index 9c20b95..0000000
--- a/node_modules/rxjs/util/isPromise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isPromise"));
-//# sourceMappingURL=isPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isPromise.js.map b/node_modules/rxjs/util/isPromise.js.map
deleted file mode 100644
index 0bf0d89..0000000
--- a/node_modules/rxjs/util/isPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isPromise.js","sources":["../src/util/isPromise.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"}
diff --git a/node_modules/rxjs/util/isScheduler.d.ts b/node_modules/rxjs/util/isScheduler.d.ts
deleted file mode 100644
index fd1a1f2..0000000
--- a/node_modules/rxjs/util/isScheduler.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/isScheduler';
diff --git a/node_modules/rxjs/util/isScheduler.js b/node_modules/rxjs/util/isScheduler.js
deleted file mode 100644
index addd047..0000000
--- a/node_modules/rxjs/util/isScheduler.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/isScheduler"));
-//# sourceMappingURL=isScheduler.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/isScheduler.js.map b/node_modules/rxjs/util/isScheduler.js.map
deleted file mode 100644
index 2b8dfb0..0000000
--- a/node_modules/rxjs/util/isScheduler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isScheduler.js","sources":["../src/util/isScheduler.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/util/noop.d.ts b/node_modules/rxjs/util/noop.d.ts
deleted file mode 100644
index 0fe22e1..0000000
--- a/node_modules/rxjs/util/noop.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/noop';
diff --git a/node_modules/rxjs/util/noop.js b/node_modules/rxjs/util/noop.js
deleted file mode 100644
index c8c32ae..0000000
--- a/node_modules/rxjs/util/noop.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/noop"));
-//# sourceMappingURL=noop.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/noop.js.map b/node_modules/rxjs/util/noop.js.map
deleted file mode 100644
index 55d6e35..0000000
--- a/node_modules/rxjs/util/noop.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"noop.js","sources":["../src/util/noop.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"}
diff --git a/node_modules/rxjs/util/not.d.ts b/node_modules/rxjs/util/not.d.ts
deleted file mode 100644
index 3831576..0000000
--- a/node_modules/rxjs/util/not.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/not';
diff --git a/node_modules/rxjs/util/not.js b/node_modules/rxjs/util/not.js
deleted file mode 100644
index 5ab75a3..0000000
--- a/node_modules/rxjs/util/not.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/not"));
-//# sourceMappingURL=not.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/not.js.map b/node_modules/rxjs/util/not.js.map
deleted file mode 100644
index 0b543b5..0000000
--- a/node_modules/rxjs/util/not.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"not.js","sources":["../src/util/not.ts"],"names":[],"mappings":";;;;;AAAA,0CAAqC"}
diff --git a/node_modules/rxjs/util/pipe.d.ts b/node_modules/rxjs/util/pipe.d.ts
deleted file mode 100644
index da6342a..0000000
--- a/node_modules/rxjs/util/pipe.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/pipe';
diff --git a/node_modules/rxjs/util/pipe.js b/node_modules/rxjs/util/pipe.js
deleted file mode 100644
index aab054c..0000000
--- a/node_modules/rxjs/util/pipe.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/pipe"));
-//# sourceMappingURL=pipe.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/pipe.js.map b/node_modules/rxjs/util/pipe.js.map
deleted file mode 100644
index 6808847..0000000
--- a/node_modules/rxjs/util/pipe.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pipe.js","sources":["../src/util/pipe.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"}
diff --git a/node_modules/rxjs/util/root.d.ts b/node_modules/rxjs/util/root.d.ts
deleted file mode 100644
index 25b6c79..0000000
--- a/node_modules/rxjs/util/root.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/root';
diff --git a/node_modules/rxjs/util/root.js b/node_modules/rxjs/util/root.js
deleted file mode 100644
index 03e889e..0000000
--- a/node_modules/rxjs/util/root.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/root"));
-//# sourceMappingURL=root.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/root.js.map b/node_modules/rxjs/util/root.js.map
deleted file mode 100644
index fe0aa14..0000000
--- a/node_modules/rxjs/util/root.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"root.js","sources":["../src/util/root.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"}
diff --git a/node_modules/rxjs/util/subscribeTo.d.ts b/node_modules/rxjs/util/subscribeTo.d.ts
deleted file mode 100644
index 471f192..0000000
--- a/node_modules/rxjs/util/subscribeTo.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeTo';
diff --git a/node_modules/rxjs/util/subscribeTo.js b/node_modules/rxjs/util/subscribeTo.js
deleted file mode 100644
index f206984..0000000
--- a/node_modules/rxjs/util/subscribeTo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeTo"));
-//# sourceMappingURL=subscribeTo.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeTo.js.map b/node_modules/rxjs/util/subscribeTo.js.map
deleted file mode 100644
index f916ff9..0000000
--- a/node_modules/rxjs/util/subscribeTo.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeTo.js","sources":["../src/util/subscribeTo.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"}
diff --git a/node_modules/rxjs/util/subscribeToArray.d.ts b/node_modules/rxjs/util/subscribeToArray.d.ts
deleted file mode 100644
index 9220f62..0000000
--- a/node_modules/rxjs/util/subscribeToArray.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToArray';
diff --git a/node_modules/rxjs/util/subscribeToArray.js b/node_modules/rxjs/util/subscribeToArray.js
deleted file mode 100644
index a64fea5..0000000
--- a/node_modules/rxjs/util/subscribeToArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeToArray"));
-//# sourceMappingURL=subscribeToArray.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeToArray.js.map b/node_modules/rxjs/util/subscribeToArray.js.map
deleted file mode 100644
index c0715f3..0000000
--- a/node_modules/rxjs/util/subscribeToArray.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToArray.js","sources":["../src/util/subscribeToArray.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"}
diff --git a/node_modules/rxjs/util/subscribeToIterable.d.ts b/node_modules/rxjs/util/subscribeToIterable.d.ts
deleted file mode 100644
index 6edb1ef..0000000
--- a/node_modules/rxjs/util/subscribeToIterable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToIterable';
diff --git a/node_modules/rxjs/util/subscribeToIterable.js b/node_modules/rxjs/util/subscribeToIterable.js
deleted file mode 100644
index 1c47e68..0000000
--- a/node_modules/rxjs/util/subscribeToIterable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeToIterable"));
-//# sourceMappingURL=subscribeToIterable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeToIterable.js.map b/node_modules/rxjs/util/subscribeToIterable.js.map
deleted file mode 100644
index ed148b7..0000000
--- a/node_modules/rxjs/util/subscribeToIterable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToIterable.js","sources":["../src/util/subscribeToIterable.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"}
diff --git a/node_modules/rxjs/util/subscribeToObservable.d.ts b/node_modules/rxjs/util/subscribeToObservable.d.ts
deleted file mode 100644
index 88495b8..0000000
--- a/node_modules/rxjs/util/subscribeToObservable.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToObservable';
diff --git a/node_modules/rxjs/util/subscribeToObservable.js b/node_modules/rxjs/util/subscribeToObservable.js
deleted file mode 100644
index c25a8d5..0000000
--- a/node_modules/rxjs/util/subscribeToObservable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeToObservable"));
-//# sourceMappingURL=subscribeToObservable.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeToObservable.js.map b/node_modules/rxjs/util/subscribeToObservable.js.map
deleted file mode 100644
index c7419fd..0000000
--- a/node_modules/rxjs/util/subscribeToObservable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToObservable.js","sources":["../src/util/subscribeToObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"}
diff --git a/node_modules/rxjs/util/subscribeToPromise.d.ts b/node_modules/rxjs/util/subscribeToPromise.d.ts
deleted file mode 100644
index 4540e11..0000000
--- a/node_modules/rxjs/util/subscribeToPromise.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToPromise';
diff --git a/node_modules/rxjs/util/subscribeToPromise.js b/node_modules/rxjs/util/subscribeToPromise.js
deleted file mode 100644
index 15c6aa3..0000000
--- a/node_modules/rxjs/util/subscribeToPromise.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeToPromise"));
-//# sourceMappingURL=subscribeToPromise.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeToPromise.js.map b/node_modules/rxjs/util/subscribeToPromise.js.map
deleted file mode 100644
index cf2f9cc..0000000
--- a/node_modules/rxjs/util/subscribeToPromise.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToPromise.js","sources":["../src/util/subscribeToPromise.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"}
diff --git a/node_modules/rxjs/util/subscribeToResult.d.ts b/node_modules/rxjs/util/subscribeToResult.d.ts
deleted file mode 100644
index 2ab44cc..0000000
--- a/node_modules/rxjs/util/subscribeToResult.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/subscribeToResult';
diff --git a/node_modules/rxjs/util/subscribeToResult.js b/node_modules/rxjs/util/subscribeToResult.js
deleted file mode 100644
index 0ce16c8..0000000
--- a/node_modules/rxjs/util/subscribeToResult.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/subscribeToResult"));
-//# sourceMappingURL=subscribeToResult.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/subscribeToResult.js.map b/node_modules/rxjs/util/subscribeToResult.js.map
deleted file mode 100644
index dad2ba6..0000000
--- a/node_modules/rxjs/util/subscribeToResult.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscribeToResult.js","sources":["../src/util/subscribeToResult.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"}
diff --git a/node_modules/rxjs/util/toSubscriber.d.ts b/node_modules/rxjs/util/toSubscriber.d.ts
deleted file mode 100644
index 61e1c7f..0000000
--- a/node_modules/rxjs/util/toSubscriber.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/toSubscriber';
diff --git a/node_modules/rxjs/util/toSubscriber.js b/node_modules/rxjs/util/toSubscriber.js
deleted file mode 100644
index be519c1..0000000
--- a/node_modules/rxjs/util/toSubscriber.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/toSubscriber"));
-//# sourceMappingURL=toSubscriber.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/toSubscriber.js.map b/node_modules/rxjs/util/toSubscriber.js.map
deleted file mode 100644
index 616740e..0000000
--- a/node_modules/rxjs/util/toSubscriber.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"toSubscriber.js","sources":["../src/util/toSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"}
diff --git a/node_modules/rxjs/util/tryCatch.d.ts b/node_modules/rxjs/util/tryCatch.d.ts
deleted file mode 100644
index 57c45c7..0000000
--- a/node_modules/rxjs/util/tryCatch.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from 'rxjs-compat/util/tryCatch';
diff --git a/node_modules/rxjs/util/tryCatch.js b/node_modules/rxjs/util/tryCatch.js
deleted file mode 100644
index 58e4f2b..0000000
--- a/node_modules/rxjs/util/tryCatch.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-function __export(m) {
-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(require("rxjs-compat/util/tryCatch"));
-//# sourceMappingURL=tryCatch.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/util/tryCatch.js.map b/node_modules/rxjs/util/tryCatch.js.map
deleted file mode 100644
index 34f3abf..0000000
--- a/node_modules/rxjs/util/tryCatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tryCatch.js","sources":["../src/util/tryCatch.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"}
diff --git a/node_modules/rxjs/webSocket/index.d.ts b/node_modules/rxjs/webSocket/index.d.ts
deleted file mode 100644
index 833d950..0000000
--- a/node_modules/rxjs/webSocket/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { webSocket as webSocket } from '../internal/observable/dom/webSocket';
-export { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject';
diff --git a/node_modules/rxjs/webSocket/index.js b/node_modules/rxjs/webSocket/index.js
deleted file mode 100644
index 475f11b..0000000
--- a/node_modules/rxjs/webSocket/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var webSocket_1 = require("../internal/observable/dom/webSocket");
-exports.webSocket = webSocket_1.webSocket;
-var WebSocketSubject_1 = require("../internal/observable/dom/WebSocketSubject");
-exports.WebSocketSubject = WebSocketSubject_1.WebSocketSubject;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/node_modules/rxjs/webSocket/index.js.map b/node_modules/rxjs/webSocket/index.js.map
deleted file mode 100644
index be7b7db..0000000
--- a/node_modules/rxjs/webSocket/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sources":["../src/webSocket/index.ts"],"names":[],"mappings":";;AAAA,kEAA8E;AAArE,gCAAA,SAAS,CAAa;AAC/B,gFAAuG;AAA9F,8CAAA,gBAAgB,CAAA"}
diff --git a/node_modules/rxjs/webSocket/package.json b/node_modules/rxjs/webSocket/package.json
deleted file mode 100644
index 34020bd..0000000
--- a/node_modules/rxjs/webSocket/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "name": "rxjs/webSocket",
-  "typings": "./index.d.ts",
-  "main": "./index.js",
-  "module": "../_esm5/webSocket/index.js",
-  "es2015": "../_esm2015/webSocket/index.js",
-  "sideEffects": false
-}
diff --git a/node_modules/side-channel/.eslintrc b/node_modules/side-channel/.eslintrc
deleted file mode 100644
index 850ac1f..0000000
--- a/node_modules/side-channel/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"max-lines-per-function": 0,
-		"max-params": 0,
-		"new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }],
-	},
-}
diff --git a/node_modules/side-channel/.github/FUNDING.yml b/node_modules/side-channel/.github/FUNDING.yml
deleted file mode 100644
index 2a94840..0000000
--- a/node_modules/side-channel/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/side-channel
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/side-channel/.github/workflows/rebase.yml b/node_modules/side-channel/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/side-channel/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/side-channel/.travis.yml b/node_modules/side-channel/.travis.yml
deleted file mode 100644
index 5ed0fa5..0000000
--- a/node_modules/side-channel/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
diff --git a/node_modules/side-channel/CHANGELOG.md b/node_modules/side-channel/CHANGELOG.md
deleted file mode 100644
index 705d80c..0000000
--- a/node_modules/side-channel/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
-
-## [v1.0.2](https://github.com/ljharb/side-channel/compare/v1.0.1...v1.0.2) - 2019-12-20
-
-### Commits
-
-- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`4a526df`](https://github.com/ljharb/side-channel/commit/4a526df44e4701566ed001ec78546193f818b082)
-- [Deps] update `es-abstract` [`d4f6e62`](https://github.com/ljharb/side-channel/commit/d4f6e629b6fb93a07415db7f30d3c90fd7f264fe)
-
-## [v1.0.1](https://github.com/ljharb/side-channel/compare/v1.0.0...v1.0.1) - 2019-12-02
-
-### Commits
-
-- [Fix] add missing "exports" [`d212907`](https://github.com/ljharb/side-channel/commit/d2129073abf0701a5343bf28aa2145617604dc2e)
-
-## v1.0.0 - 2019-12-02
-
-### Commits
-
-- Initial implementation [`dbebd3a`](https://github.com/ljharb/side-channel/commit/dbebd3a4b5ed64242f9a6810efe7c4214cd8cde4)
-- Initial tests [`73bdefe`](https://github.com/ljharb/side-channel/commit/73bdefe568c9076cf8c0b8719bc2141aec0e19b8)
-- Initial commit [`43c03e1`](https://github.com/ljharb/side-channel/commit/43c03e1c2849ec50a87b7a5cd76238a62b0b8770)
-- npm init [`5c090a7`](https://github.com/ljharb/side-channel/commit/5c090a765d66a5527d9889b89aeff78dee91348c)
-- [meta] add `auto-changelog` [`a5c4e56`](https://github.com/ljharb/side-channel/commit/a5c4e5675ec02d5eb4d84b4243aeea2a1d38fbec)
-- [actions] add automatic rebasing / merge commit blocking [`bab1683`](https://github.com/ljharb/side-channel/commit/bab1683d8f9754b086e94397699fdc645e0d7077)
-- [meta] add `funding` field; create FUNDING.yml [`63d7aea`](https://github.com/ljharb/side-channel/commit/63d7aeaf34f5650650ae97ca4b9fae685bd0937c)
-- [Tests] add `npm run lint` [`46a5a81`](https://github.com/ljharb/side-channel/commit/46a5a81705cd2664f83df232c01dbbf2ee952885)
-- Only apps should have lockfiles [`8b16b03`](https://github.com/ljharb/side-channel/commit/8b16b0305f00895d90c4e2e5773c854cfea0e448)
-- [meta] add `safe-publish-latest` [`2f098ef`](https://github.com/ljharb/side-channel/commit/2f098ef092a39399cfe548b19a1fc03c2fd2f490)
diff --git a/node_modules/side-channel/LICENSE b/node_modules/side-channel/LICENSE
deleted file mode 100644
index 3900dd7..0000000
--- a/node_modules/side-channel/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Jordan Harband
-
-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.
diff --git a/node_modules/side-channel/README.md b/node_modules/side-channel/README.md
deleted file mode 100644
index 7fa4f06..0000000
--- a/node_modules/side-channel/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# side-channel
-Store information about any JS value in a side channel. Uses WeakMap if available.
diff --git a/node_modules/side-channel/index.js b/node_modules/side-channel/index.js
deleted file mode 100644
index e1fc174..0000000
--- a/node_modules/side-channel/index.js
+++ /dev/null
@@ -1,107 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('es-abstract/GetIntrinsic');
-var callBound = require('es-abstract/helpers/callBound');
-var inspect = require('object-inspect');
-
-var $TypeError = GetIntrinsic('%TypeError%');
-var $WeakMap = GetIntrinsic('%WeakMap%', true);
-var $Map = GetIntrinsic('%Map%', true);
-var $push = callBound('Array.prototype.push');
-
-var $weakMapGet = callBound('WeakMap.prototype.get', true);
-var $weakMapSet = callBound('WeakMap.prototype.set', true);
-var $weakMapHas = callBound('WeakMap.prototype.has', true);
-var $mapGet = callBound('Map.prototype.get', true);
-var $mapSet = callBound('Map.prototype.set', true);
-var $mapHas = callBound('Map.prototype.has', true);
-var objectGet = function (objects, key) { // eslint-disable-line consistent-return
-	for (var i = 0; i < objects.length; i += 1) {
-		if (objects[i].key === key) {
-			return objects[i].value;
-		}
-	}
-};
-var objectSet = function (objects, key, value) {
-	for (var i = 0; i < objects.length; i += 1) {
-		if (objects[i].key === key) {
-			objects[i].value = value; // eslint-disable-line no-param-reassign
-			return;
-		}
-	}
-	$push(objects, {
-		key: key,
-		value: value
-	});
-};
-var objectHas = function (objects, key) {
-	for (var i = 0; i < objects.length; i += 1) {
-		if (objects[i].key === key) {
-			return true;
-		}
-	}
-	return false;
-};
-
-module.exports = function getSideChannel() {
-	var $wm;
-	var $m;
-	var $o;
-	var channel = {
-		assert: function (key) {
-			if (!channel.has(key)) {
-				throw new $TypeError('Side channel does not contain ' + inspect(key));
-			}
-		},
-		get: function (key) { // eslint-disable-line consistent-return
-			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
-				if ($wm) {
-					return $weakMapGet($wm, key);
-				}
-			} else if ($Map) {
-				if ($m) {
-					return $mapGet($m, key);
-				}
-			} else {
-				if ($o) { // eslint-disable-line no-lonely-if
-					return objectGet($o, key);
-				}
-			}
-		},
-		has: function (key) {
-			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
-				if ($wm) {
-					return $weakMapHas($wm, key);
-				}
-			} else if ($Map) {
-				if ($m) {
-					return $mapHas($m, key);
-				}
-			} else {
-				if ($o) { // eslint-disable-line no-lonely-if
-					return objectHas($o, key);
-				}
-			}
-			return false;
-		},
-		set: function (key, value) {
-			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
-				if (!$wm) {
-					$wm = new $WeakMap();
-				}
-				$weakMapSet($wm, key, value);
-			} else if ($Map) {
-				if (!$m) {
-					$m = new $Map();
-				}
-				$mapSet($m, key, value);
-			} else {
-				if (!$o) {
-					$o = [];
-				}
-				objectSet($o, key, value);
-			}
-		}
-	};
-	return channel;
-};
diff --git a/node_modules/side-channel/package.json b/node_modules/side-channel/package.json
deleted file mode 100644
index 3c3ce7f..0000000
--- a/node_modules/side-channel/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-	"name": "side-channel",
-	"version": "1.0.2",
-	"description": "Store information about any JS value in a side channel. Uses WeakMap if available.",
-	"main": "index.js",
-	"exports": {
-		".": [
-			{
-				"default": "./index.js"
-			},
-			"./index.js"
-		]
-	},
-	"scripts": {
-		"prepublish": "safe-publish-latest",
-		"lint": "eslint .",
-		"pretest": "npm run lint",
-		"tests-only": "node test",
-		"test": "npm run tests-only",
-		"posttest": "npx aud",
-		"version": "auto-changelog && git add CHANGELOG.md",
-		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
-	},
-	"repository": {
-		"type": "git",
-		"url": "git+https://github.com/ljharb/side-channel.git"
-	},
-	"keywords": [
-		"weakmap",
-		"map",
-		"side",
-		"channel",
-		"metadata"
-	],
-	"author": "Jordan Harband <ljharb@gmail.com>",
-	"funding": {
-		"url": "https://github.com/sponsors/ljharb"
-	},
-	"license": "MIT",
-	"bugs": {
-		"url": "https://github.com/ljharb/side-channel/issues"
-	},
-	"homepage": "https://github.com/ljharb/side-channel#readme",
-	"devDependencies": {
-		"@ljharb/eslint-config": "^15.1.0",
-		"auto-changelog": "^1.16.2",
-		"eslint": "^6.7.2",
-		"safe-publish-latest": "^1.1.4",
-		"tape": "^4.12.0"
-	},
-	"dependencies": {
-		"es-abstract": "^1.17.0-next.1",
-		"object-inspect": "^1.7.0"
-	},
-	"auto-changelog": {
-		"output": "CHANGELOG.md",
-		"template": "keepachangelog",
-		"unreleased": false,
-		"commitLimit": false,
-		"backfillLimit": false
-	}
-}
diff --git a/node_modules/side-channel/test/index.js b/node_modules/side-channel/test/index.js
deleted file mode 100644
index 064f4a2..0000000
--- a/node_modules/side-channel/test/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-var getSideChannel = require('../');
-
-test('export', function (t) {
-	t.equal(typeof getSideChannel, 'function', 'is a function');
-	t.equal(getSideChannel.length, 0, 'takes no arguments');
-
-	var channel = getSideChannel();
-	t.ok(channel, 'is truthy');
-	t.equal(typeof channel, 'object', 'is an object');
-
-	t.end();
-});
-
-test('assert', function (t) {
-	var channel = getSideChannel();
-	t['throws'](
-		function () { channel.assert({}); },
-		TypeError,
-		'nonexistent value throws'
-	);
-
-	var o = {};
-	channel.set(o, 'data');
-	t.doesNotThrow(function () { channel.assert(o); }, 'existent value noops');
-
-	t.end();
-});
-
-test('has', function (t) {
-	var channel = getSideChannel();
-	var o = [];
-
-	t.equal(channel.has(o), false, 'nonexistent value yields false');
-
-	channel.set(o, 'foo');
-	t.equal(channel.has(o), true, 'existent value yields true');
-
-	t.end();
-});
-
-test('get', function (t) {
-	var channel = getSideChannel();
-	var o = {};
-	t.equal(channel.get(o), undefined, 'nonexistent value yields undefined');
-
-	var data = {};
-	channel.set(o, data);
-	t.equal(channel.get(o), data, '"get" yields data set by "set"');
-
-	t.end();
-});
-
-test('set', function (t) {
-	var channel = getSideChannel();
-	var o = function () {};
-	t.equal(channel.get(o), undefined, 'value not set');
-
-	channel.set(o, 42);
-	t.equal(channel.get(o), 42, 'value was set');
-
-	channel.set(o, Infinity);
-	t.equal(channel.get(o), Infinity, 'value was set again');
-
-	t.end();
-});
diff --git a/node_modules/string-width/node_modules/emoji-regex/README.md b/node_modules/string-width/node_modules/emoji-regex/README.md
deleted file mode 100644
index f10e173..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex)
-
-_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard.
-
-This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
-
-## Installation
-
-Via [npm](https://www.npmjs.com/):
-
-```bash
-npm install emoji-regex
-```
-
-In [Node.js](https://nodejs.org/):
-
-```js
-const emojiRegex = require('emoji-regex');
-// Note: because the regular expression has the global flag set, this module
-// exports a function that returns the regex rather than exporting the regular
-// expression itself, to make it impossible to (accidentally) mutate the
-// original regular expression.
-
-const text = `
-\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
-\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
-\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
-\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
-`;
-
-const regex = emojiRegex();
-let match;
-while (match = regex.exec(text)) {
-  const emoji = match[0];
-  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
-}
-```
-
-Console output:
-
-```
-Matched sequence ⌚ — code points: 1
-Matched sequence ⌚ — code points: 1
-Matched sequence ↔️ — code points: 2
-Matched sequence ↔️ — code points: 2
-Matched sequence 👩 — code points: 1
-Matched sequence 👩 — code points: 1
-Matched sequence 👩🏿 — code points: 2
-Matched sequence 👩🏿 — code points: 2
-```
-
-To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex:
-
-```js
-const emojiRegex = require('emoji-regex/text.js');
-```
-
-Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes:
-
-```js
-const emojiRegex = require('emoji-regex/es2015/index.js');
-const emojiRegexText = require('emoji-regex/es2015/text.js');
-```
-
-## Author
-
-| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|
-| [Mathias Bynens](https://mathiasbynens.be/) |
-
-## License
-
-_emoji-regex_ is available under the [MIT](https://mths.be/mit) license.
diff --git a/node_modules/string-width/node_modules/emoji-regex/es2015/index.js b/node_modules/string-width/node_modules/emoji-regex/es2015/index.js
deleted file mode 100644
index b4cf3dc..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/es2015/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = () => {
-  // https://mths.be/emoji
-  return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu;
-};
diff --git a/node_modules/string-width/node_modules/emoji-regex/es2015/text.js b/node_modules/string-width/node_modules/emoji-regex/es2015/text.js
deleted file mode 100644
index 780309d..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/es2015/text.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = () => {
-  // https://mths.be/emoji
-  return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu;
-};
diff --git a/node_modules/string-width/node_modules/emoji-regex/index.d.ts b/node_modules/string-width/node_modules/emoji-regex/index.d.ts
deleted file mode 100644
index 1955b47..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/index.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-declare module 'emoji-regex' {
-    function emojiRegex(): RegExp;
-
-    export default emojiRegex;
-}
-
-declare module 'emoji-regex/text' {
-    function emojiRegex(): RegExp;
-
-    export default emojiRegex;
-}
-
-declare module 'emoji-regex/es2015' {
-    function emojiRegex(): RegExp;
-
-    export default emojiRegex;
-}
-
-declare module 'emoji-regex/es2015/text' {
-    function emojiRegex(): RegExp;
-
-    export default emojiRegex;
-}
diff --git a/node_modules/string-width/node_modules/emoji-regex/index.js b/node_modules/string-width/node_modules/emoji-regex/index.js
deleted file mode 100644
index d993a3a..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
-  // https://mths.be/emoji
-  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
-};
diff --git a/node_modules/string-width/node_modules/emoji-regex/package.json b/node_modules/string-width/node_modules/emoji-regex/package.json
deleted file mode 100644
index 6d32352..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "name": "emoji-regex",
-  "version": "8.0.0",
-  "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
-  "homepage": "https://mths.be/emoji-regex",
-  "main": "index.js",
-  "types": "index.d.ts",
-  "keywords": [
-    "unicode",
-    "regex",
-    "regexp",
-    "regular expressions",
-    "code points",
-    "symbols",
-    "characters",
-    "emoji"
-  ],
-  "license": "MIT",
-  "author": {
-    "name": "Mathias Bynens",
-    "url": "https://mathiasbynens.be/"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mathiasbynens/emoji-regex.git"
-  },
-  "bugs": "https://github.com/mathiasbynens/emoji-regex/issues",
-  "files": [
-    "LICENSE-MIT.txt",
-    "index.js",
-    "index.d.ts",
-    "text.js",
-    "es2015/index.js",
-    "es2015/text.js"
-  ],
-  "scripts": {
-    "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js",
-    "test": "mocha",
-    "test:watch": "npm run test -- --watch"
-  },
-  "devDependencies": {
-    "@babel/cli": "^7.2.3",
-    "@babel/core": "^7.3.4",
-    "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
-    "@babel/preset-env": "^7.3.4",
-    "mocha": "^6.0.2",
-    "regexgen": "^1.3.0",
-    "unicode-12.0.0": "^0.7.9"
-  }
-}
diff --git a/node_modules/string-width/node_modules/emoji-regex/text.js b/node_modules/string-width/node_modules/emoji-regex/text.js
deleted file mode 100644
index 0a55ce2..0000000
--- a/node_modules/string-width/node_modules/emoji-regex/text.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
-  // https://mths.be/emoji
-  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
-};
diff --git a/node_modules/string.prototype.matchall/.eslintignore b/node_modules/string.prototype.matchall/.eslintignore
deleted file mode 100644
index 4ebc8ae..0000000
--- a/node_modules/string.prototype.matchall/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage
diff --git a/node_modules/string.prototype.matchall/.eslintrc b/node_modules/string.prototype.matchall/.eslintrc
deleted file mode 100644
index a966149..0000000
--- a/node_modules/string.prototype.matchall/.eslintrc
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"complexity": [2, 12],
-		"func-name-matching": 0,
-		"id-length": 0,
-		"max-nested-callbacks": [2, 3],
-		"max-params": [2, 4],
-		"max-statements-per-line": [2, { "max": 2 }],
-		"max-statements": [2, 24],
-		"new-cap": [2, {
-			"capIsNewExceptions": [
-				"AdvanceStringIndex",
-				"Call",
-				"Construct",
-				"CreateIterResultObject",
-				"CreateRegExpStringIterator",
-				"Get",
-				"GetIntrinsic",
-				"GetMethod",
-				"Invoke",
-				"IsRegExp",
-				"MatchAllIterator",
-				"ObjectCreate",
-				"RegExpExec",
-				"RequireObjectCoercible",
-				"Set",
-				"SpeciesConstructor",
-				"ToBoolean",
-				"ToLength",
-				"ToString",
-				"Type",
-			],
-		}],
-		"no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"],
-		"operator-linebreak": [2, "before"],
-	},
-
-	"overrides": [
-		{
-			"files": "test/**",
-			"rules": {
-				"max-lines-per-function": 0,
-				"max-nested-callbacks": 0,
-				"prefer-regex-literals": 0,
-			},
-		},
-	],
-}
diff --git a/node_modules/string.prototype.matchall/.github/FUNDING.yml b/node_modules/string.prototype.matchall/.github/FUNDING.yml
deleted file mode 100644
index 48a1cbc..0000000
--- a/node_modules/string.prototype.matchall/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/string.prototype.matchall
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/string.prototype.matchall/.github/workflows/rebase.yml b/node_modules/string.prototype.matchall/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/string.prototype.matchall/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/string.prototype.matchall/.travis.yml b/node_modules/string.prototype.matchall/.travis.yml
deleted file mode 100644
index 2d1c1d2..0000000
--- a/node_modules/string.prototype.matchall/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
-  allow_failures:
-    - env: COVERAGE=true
diff --git a/node_modules/string.prototype.matchall/CHANGELOG.md b/node_modules/string.prototype.matchall/CHANGELOG.md
deleted file mode 100644
index f2979a5..0000000
--- a/node_modules/string.prototype.matchall/CHANGELOG.md
+++ /dev/null
@@ -1,64 +0,0 @@
-4.0.2 / 2019-12-22
-==================
-  * [Refactor] use `internal-slot`
-  * [Refactor] use `side-channel` instead of "hidden" helper
-  * [Deps] update `es-abstract`, `internal-slot`, `regexp.prototype.flags`, `side-channel`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
-
-4.0.1 / 2019-12-13
-==================
-  * [Refactor] use split-up `es-abstract` (61% bundle size decrease)
-  * [Fix] fix error message: matchAll requires *global*
-  * [Deps] update `es-abstract`, `has-symbols`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `object-inspect`, `evalmd`, `object.entries`; add `safe-publish-latest`
-  * [meta] add `funding` field
-  * [Tests] use shared travis-ci configs
-  * [actions] add automatic rebasing / merge commit blocking
-
-4.0.0 / 2019-10-03
-==================
-  * [Breaking] throw on non-global/nullish flags
-  * [Deps] update `es-abstract`
-
-3.0.2 / 2019-10-02
-==================
-  * [Fix] ensure that `flagsGetter` is only used when there is no `flags` property on the regex
-  * [Fix] `RegExp.prototype[Symbol.matchAll]`: ToString the `flags` property
-  * [Refactor] provide a consistent way to determine the polyfill for `RegExp.prototype[Symbol.matchAll]`
-  * [meta] create FUNDING.yml
-  * [Deps] update `es-abstract`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `evalmd`, `functions-have-names`, `es5-shim`, `es6-shim`, `object.entries`, `tape`
-  * [Tests] up to `node` `v12.11`, `v11.15`, `v10.16`, `v8.16`, `v6.17`
-  * [Tests] use `functions-have-names`
-  * [Tests] bump audit level, due to https://github.com/reggi/evalmd/issues/13
-  * [Tests] use `npx aud` instead of `npm audit` with hoops
-
-3.0.1 / 2018-12-11
-==================
-  * [Fix] update spec to follow committee feedback
-  * [Deps] update `define-properties`
-  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es5-shim`, `es6-shim`, `tape`
-  * [Tests] use `npm audit` instead of `nsp`
-  * [Tests] up to `node` `v11.4`, `v10.14`, `v8.14`, `v6.15`
-
-3.0.0 / 2018-05-31
-==================
-  * [Breaking] update to match latest spec
-  * [Deps] update `es-abstract`
-  * [Dev Deps] update `eslint`, `nsp`, `object-inspect`, `tape`
-  * [Tests] up to `node` `v10.3`, `v9.11`, `v8.11`, `v6.14`, `v4.9`
-  * [Tests] regexes now have a "groups" property in ES2018
-  * [Tests] run evalmd in prelint
-
-2.0.0 / 2018-01-24
-==================
-  * [Breaking] change to handle nonmatching regexes
-  * [Breaking] non-regex arguments that are thus coerced to RegExp now get the global flag
-  * [Deps] update `es-abstract`, `regexp.prototype.flags`
-  * [Dev Deps] update `es5-shim`, `eslint`, `object.assign`
-  * [Tests] up to `node` `v9.4`, `v8.9`, `v6.12`; pin included builds to LTS
-  * [Tests] improve and correct tests and failure messages
-
-1.0.0 / 2017-09-28
-==================
-  * Initial release
diff --git a/node_modules/string.prototype.matchall/LICENSE b/node_modules/string.prototype.matchall/LICENSE
deleted file mode 100644
index b43df44..0000000
--- a/node_modules/string.prototype.matchall/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Jordan Harband
-
-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.
-
diff --git a/node_modules/string.prototype.matchall/README.md b/node_modules/string.prototype.matchall/README.md
deleted file mode 100644
index cacaf3e..0000000
--- a/node_modules/string.prototype.matchall/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# string.prototype.matchall <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-ES Proposal spec-compliant shim for String.prototype.matchAll. Invoke its "shim" method to shim `String.prototype.matchAll` if it is unavailable or noncompliant.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment, and complies with the [proposed spec](https://github.com/tc39/proposal-string-matchall).
-
-Most common usage:
-```js
-const assert = require('assert');
-const matchAll = require('string.prototype.matchall');
-
-const str = 'aabc';
-const nonRegexStr = 'ab';
-const globalRegex = /[ac]/g;
-const nonGlobalRegex = /[bc]/i;
-
-// non-regex arguments are coerced into a global regex
-assert.deepEqual(
-	[...matchAll(str, nonRegexStr)],
-	[...matchAll(str, new RegExp(nonRegexStr, 'g'))]
-);
-
-assert.deepEqual([...matchAll(str, globalRegex)], [
-	Object.assign(['a'], { index: 0, input: str, groups: undefined }),
-	Object.assign(['a'], { index: 1, input: str, groups: undefined }),
-	Object.assign(['c'], { index: 3, input: str, groups: undefined }),
-]);
-
-assert.throws(() => matchAll(str, nonGlobalRegex)); // non-global regexes throw
-
-matchAll.shim(); // will be a no-op if not needed
-
-// non-regex arguments are coerced into a global regex
-assert.deepEqual(
-	[...str.matchAll(nonRegexStr)],
-	[...str.matchAll(new RegExp(nonRegexStr, 'g'))]
-);
-
-assert.deepEqual([...str.matchAll(globalRegex)], [
-	Object.assign(['a'], { index: 0, input: str, groups: undefined }),
-	Object.assign(['a'], { index: 1, input: str, groups: undefined }),
-	Object.assign(['c'], { index: 3, input: str, groups: undefined }),
-]);
-
-assert.throws(() => matchAll(str, nonGlobalRegex)); // non-global regexes throw
-
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.com/package/string.prototype.matchall
-[npm-version-svg]: http://versionbadg.es/es-shims/String.prototype.matchAll.svg
-[travis-svg]: https://travis-ci.org/es-shims/String.prototype.matchAll.svg
-[travis-url]: https://travis-ci.org/es-shims/String.prototype.matchAll
-[deps-svg]: https://david-dm.org/es-shims/String.prototype.matchAll.svg
-[deps-url]: https://david-dm.org/es-shims/String.prototype.matchAll
-[dev-deps-svg]: https://david-dm.org/es-shims/String.prototype.matchAll/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/String.prototype.matchAll#info=devDependencies
-[testling-svg]: https://ci.testling.com/es-shims/String.prototype.matchAll.png
-[testling-url]: https://ci.testling.com/es-shims/String.prototype.matchAll
-[npm-badge-png]: https://nodei.co/npm/string.prototype.matchall.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/string.prototype.matchall.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/string.prototype.matchall.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=string.prototype.matchall
diff --git a/node_modules/string.prototype.matchall/auto.js b/node_modules/string.prototype.matchall/auto.js
deleted file mode 100644
index 8ebf606..0000000
--- a/node_modules/string.prototype.matchall/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/node_modules/string.prototype.matchall/helpers/MatchAllIterator.js b/node_modules/string.prototype.matchall/helpers/MatchAllIterator.js
deleted file mode 100644
index 193c24c..0000000
--- a/node_modules/string.prototype.matchall/helpers/MatchAllIterator.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-
-var Get = require('es-abstract/2019/Get');
-var IsRegExp = require('es-abstract/2019/IsRegExp');
-var Set = require('es-abstract/2019/Set');
-var SpeciesConstructor = require('es-abstract/2019/SpeciesConstructor');
-var ToBoolean = require('es-abstract/2019/ToBoolean');
-var ToLength = require('es-abstract/2019/ToLength');
-var ToString = require('es-abstract/2019/ToString');
-var flagsGetter = require('regexp.prototype.flags');
-
-var RegExpStringIterator = require('./RegExpStringIterator');
-var OrigRegExp = RegExp;
-
-module.exports = function MatchAllIterator(R, O) {
-	var S = ToString(O);
-
-	var matcher, global, fullUnicode, flags;
-	if (IsRegExp(R)) {
-		var C = SpeciesConstructor(R, OrigRegExp);
-		flags = Get(R, 'flags');
-		if (typeof flags === 'string') {
-			matcher = new C(R, flags); // Construct(C, [R, flags]);
-		} else if (C === OrigRegExp) {
-			// workaround for older engines that lack RegExp.prototype.flags
-			matcher = new C(R.source, flagsGetter(R)); // Construct(C, [R.source, flagsGetter(R)]);
-		} else {
-			matcher = new C(R, flagsGetter(R)); // Construct(C, [R, flagsGetter(R)]);
-		}
-		global = ToBoolean(Get(matcher, 'global'));
-		fullUnicode = ToBoolean(Get(matcher, 'unicode'));
-		var lastIndex = ToLength(Get(R, 'lastIndex'));
-		Set(matcher, 'lastIndex', lastIndex, true);
-	} else {
-		flags = 'g';
-		matcher = new OrigRegExp(R, flags);
-		global = true;
-		fullUnicode = false;
-		if (Get(matcher, 'lastIndex') !== 0) {
-			throw new TypeError('Assertion failed: newly constructed RegExp had a lastIndex !== 0. Please report this!');
-		}
-	}
-	return new RegExpStringIterator(matcher, S, global, fullUnicode);
-};
diff --git a/node_modules/string.prototype.matchall/helpers/RegExpStringIterator.js b/node_modules/string.prototype.matchall/helpers/RegExpStringIterator.js
deleted file mode 100644
index 674e965..0000000
--- a/node_modules/string.prototype.matchall/helpers/RegExpStringIterator.js
+++ /dev/null
@@ -1,110 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var AdvanceStringIndex = require('es-abstract/2019/AdvanceStringIndex');
-var CreateIterResultObject = require('es-abstract/2019/CreateIterResultObject');
-var Get = require('es-abstract/2019/Get');
-var GetIntrinsic = require('es-abstract/GetIntrinsic');
-var ObjectCreate = require('es-abstract/2019/ObjectCreate');
-var RegExpExec = require('es-abstract/2019/RegExpExec');
-var Set = require('es-abstract/2019/Set');
-var ToLength = require('es-abstract/2019/ToLength');
-var ToString = require('es-abstract/2019/ToString');
-var Type = require('es-abstract/2019/Type');
-var hasSymbols = require('has-symbols')();
-
-var SLOT = require('internal-slot');
-var undefined;
-
-var RegExpStringIterator = function RegExpStringIterator(R, S, global, fullUnicode) {
-	if (Type(S) !== 'String') {
-		throw new TypeError('S must be a string');
-	}
-	if (Type(global) !== 'Boolean') {
-		throw new TypeError('global must be a boolean');
-	}
-	if (Type(fullUnicode) !== 'Boolean') {
-		throw new TypeError('fullUnicode must be a boolean');
-	}
-	SLOT.set(this, '[[IteratingRegExp]]', R);
-	SLOT.set(this, '[[IteratedString]]', S);
-	SLOT.set(this, '[[Global]]', global);
-	SLOT.set(this, '[[Unicode]]', fullUnicode);
-	SLOT.set(this, '[[Done]]', false);
-};
-
-var IteratorPrototype = GetIntrinsic('%IteratorPrototype%', true);
-if (IteratorPrototype) {
-	RegExpStringIterator.prototype = ObjectCreate(IteratorPrototype);
-}
-
-define(RegExpStringIterator.prototype, {
-	next: function next() {
-		var O = this;
-		if (Type(O) !== 'Object') {
-			throw new TypeError('receiver must be an object');
-		}
-		if (
-			!(O instanceof RegExpStringIterator)
-			|| !SLOT.has(O, '[[IteratingRegExp]]')
-			|| !SLOT.has(O, '[[IteratedString]]')
-			|| !SLOT.has(O, '[[Global]]')
-			|| !SLOT.has(O, '[[Unicode]]')
-			|| !SLOT.has(O, '[[Done]]')
-		) {
-			throw new TypeError('"this" value must be a RegExpStringIterator instance');
-		}
-		if (SLOT.get(O, '[[Done]]')) {
-			return CreateIterResultObject(undefined, true);
-		}
-		var R = SLOT.get(O, '[[IteratingRegExp]]');
-		var S = SLOT.get(O, '[[IteratedString]]');
-		var global = SLOT.get(O, '[[Global]]');
-		var fullUnicode = SLOT.get(O, '[[Unicode]]');
-		var match = RegExpExec(R, S);
-		if (match === null) {
-			SLOT.set(O, '[[Done]]', true);
-			return CreateIterResultObject(undefined, true);
-		}
-		if (global) {
-			var matchStr = ToString(Get(match, '0'));
-			if (matchStr === '') {
-				var thisIndex = ToLength(Get(R, 'lastIndex'));
-				var nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode);
-				Set(R, 'lastIndex', nextIndex, true);
-			}
-			return CreateIterResultObject(match, false);
-		}
-		SLOT.set(O, '[[Done]]', true);
-		return CreateIterResultObject(match, false);
-	}
-});
-if (hasSymbols) {
-	var defineP = Object.defineProperty;
-	if (Symbol.toStringTag) {
-		if (defineP) {
-			defineP(RegExpStringIterator.prototype, Symbol.toStringTag, {
-				configurable: true,
-				enumerable: false,
-				value: 'RegExp String Iterator',
-				writable: false
-			});
-		} else {
-			RegExpStringIterator.prototype[Symbol.toStringTag] = 'RegExp String Iterator';
-		}
-	}
-
-	if (!IteratorPrototype && Symbol.iterator) {
-		var func = {};
-		func[Symbol.iterator] = RegExpStringIterator.prototype[Symbol.iterator] || function SymbolIterator() {
-			return this;
-		};
-		var predicate = {};
-		predicate[Symbol.iterator] = function () {
-			return RegExpStringIterator.prototype[Symbol.iterator] !== func[Symbol.iterator];
-		};
-		define(RegExpStringIterator.prototype, func, predicate);
-	}
-}
-
-module.exports = RegExpStringIterator;
diff --git a/node_modules/string.prototype.matchall/helpers/hidden.js b/node_modules/string.prototype.matchall/helpers/hidden.js
deleted file mode 100644
index fbdad0e..0000000
--- a/node_modules/string.prototype.matchall/helpers/hidden.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-// TODO, semver-major: delete this file
-
-module.exports = require('side-channel');
diff --git a/node_modules/string.prototype.matchall/implementation.js b/node_modules/string.prototype.matchall/implementation.js
deleted file mode 100644
index 76b3f88..0000000
--- a/node_modules/string.prototype.matchall/implementation.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-var Call = require('es-abstract/2019/Call');
-var Get = require('es-abstract/2019/Get');
-var GetMethod = require('es-abstract/2019/GetMethod');
-var IsRegExp = require('es-abstract/2019/IsRegExp');
-var ToString = require('es-abstract/2019/ToString');
-var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible');
-var callBound = require('es-abstract/helpers/callBound');
-var hasSymbols = require('has-symbols')();
-var flagsGetter = require('regexp.prototype.flags');
-
-var $indexOf = callBound('String.prototype.indexOf');
-
-var regexpMatchAllPolyfill = require('./polyfill-regexp-matchall');
-
-var getMatcher = function getMatcher(regexp) { // eslint-disable-line consistent-return
-	var matcherPolyfill = regexpMatchAllPolyfill();
-	if (hasSymbols && typeof Symbol.matchAll === 'symbol') {
-		var matcher = GetMethod(regexp, Symbol.matchAll);
-		if (matcher === RegExp.prototype[Symbol.matchAll] && matcher !== matcherPolyfill) {
-			return matcherPolyfill;
-		}
-		return matcher;
-	}
-	// fallback for pre-Symbol.matchAll environments
-	if (IsRegExp(regexp)) {
-		return matcherPolyfill;
-	}
-};
-
-module.exports = function matchAll(regexp) {
-	var O = RequireObjectCoercible(this);
-
-	if (typeof regexp !== 'undefined' && regexp !== null) {
-		var isRegExp = IsRegExp(regexp);
-		if (isRegExp) {
-			// workaround for older engines that lack RegExp.prototype.flags
-			var flags = 'flags' in regexp ? Get(regexp, 'flags') : flagsGetter(regexp);
-			RequireObjectCoercible(flags);
-			if ($indexOf(ToString(flags), 'g') < 0) {
-				throw new TypeError('matchAll requires a global regular expression');
-			}
-		}
-
-		var matcher = getMatcher(regexp);
-		if (typeof matcher !== 'undefined') {
-			return Call(matcher, regexp, [O]);
-		}
-	}
-
-	var S = ToString(O);
-	// var rx = RegExpCreate(regexp, 'g');
-	var rx = new RegExp(regexp, 'g');
-	return Call(getMatcher(rx), rx, [S]);
-};
diff --git a/node_modules/string.prototype.matchall/index.js b/node_modules/string.prototype.matchall/index.js
deleted file mode 100644
index e0ece12..0000000
--- a/node_modules/string.prototype.matchall/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var callBind = require('es-abstract/helpers/callBind');
-var define = require('define-properties');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var boundMatchAll = callBind(implementation);
-
-define(boundMatchAll, {
-	getPolyfill: getPolyfill,
-	implementation: implementation,
-	shim: shim
-});
-
-module.exports = boundMatchAll;
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/.eslintrc b/node_modules/string.prototype.matchall/node_modules/has-symbols/.eslintrc
deleted file mode 100644
index 2d9a66a..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-	"root": true,
-
-	"extends": "@ljharb",
-
-	"rules": {
-		"max-statements-per-line": [2, { "max": 2 }],
-		"no-magic-numbers": 0,
-		"multiline-comment-style": 0,
-	}
-}
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/FUNDING.yml
deleted file mode 100644
index 04cf87e..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/has-symbols
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/workflows/rebase.yml b/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/workflows/rebase.yml
deleted file mode 100644
index 436cb79..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request]
-
-jobs:
-  _:
-    name: "Automatic Rebase"
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v1
-    - uses: ljharb/rebase@master
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/.travis.yml b/node_modules/string.prototype.matchall/node_modules/has-symbols/.travis.yml
deleted file mode 100644
index 2d1c1d2..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: ~> 1.0
-language: node_js
-os:
- - linux
-import:
- - ljharb/travis-ci:node/all.yml
- - ljharb/travis-ci:node/pretest.yml
- - ljharb/travis-ci:node/posttest.yml
- - ljharb/travis-ci:node/coverage.yml
-matrix:
-  allow_failures:
-    - env: COVERAGE=true
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/CHANGELOG.md b/node_modules/string.prototype.matchall/node_modules/has-symbols/CHANGELOG.md
deleted file mode 100644
index 4dcac04..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/CHANGELOG.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
-
-## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-17
-
-### Commits
-
-- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229)
-- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b)
-- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c)
-- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91)
-- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4)
-- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa)
-- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193)
-- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0)
-- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0)
-
-## v1.0.0 - 2016-09-19
-
-### Commits
-
-- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d)
-- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a)
-- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c)
-- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb)
-- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c)
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/LICENSE b/node_modules/string.prototype.matchall/node_modules/has-symbols/LICENSE
deleted file mode 100644
index df31cbf..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016 Jordan Harband
-
-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.
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/README.md b/node_modules/string.prototype.matchall/node_modules/has-symbols/README.md
deleted file mode 100644
index b27b31a..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# has-symbols <sup>[![Version Badge][2]][1]</sup>
-
-[![Build Status][3]][4]
-[![dependency status][5]][6]
-[![dev dependency status][7]][8]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][11]][1]
-
-Determine if the JS environment has Symbol support. Supports spec, or shams.
-
-## Example
-
-```js
-var hasSymbols = require('has-symbols');
-
-hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable.
-
-var hasSymbolsKinda = require('has-symbols/shams');
-hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec.
-```
-
-## Supported Symbol shams
- - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols)
- - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js)
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[1]: https://npmjs.org/package/has-symbols
-[2]: http://versionbadg.es/ljharb/has-symbols.svg
-[3]: https://travis-ci.org/ljharb/has-symbols.svg
-[4]: https://travis-ci.org/ljharb/has-symbols
-[5]: https://david-dm.org/ljharb/has-symbols.svg
-[6]: https://david-dm.org/ljharb/has-symbols
-[7]: https://david-dm.org/ljharb/has-symbols/dev-status.svg
-[8]: https://david-dm.org/ljharb/has-symbols#info=devDependencies
-[9]: https://ci.testling.com/ljharb/has-symbols.png
-[10]: https://ci.testling.com/ljharb/has-symbols
-[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/has-symbols.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/has-symbols.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=has-symbols
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/index.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/index.js
deleted file mode 100644
index f72159e..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var origSymbol = global.Symbol;
-var hasSymbolSham = require('./shams');
-
-module.exports = function hasNativeSymbols() {
-	if (typeof origSymbol !== 'function') { return false; }
-	if (typeof Symbol !== 'function') { return false; }
-	if (typeof origSymbol('foo') !== 'symbol') { return false; }
-	if (typeof Symbol('bar') !== 'symbol') { return false; }
-
-	return hasSymbolSham();
-};
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/package.json b/node_modules/string.prototype.matchall/node_modules/has-symbols/package.json
deleted file mode 100644
index d15b512..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
-	"name": "has-symbols",
-	"version": "1.0.1",
-	"author": {
-		"name": "Jordan Harband",
-		"email": "ljharb@gmail.com",
-		"url": "http://ljharb.codes"
-	},
-	"funding": {
-		"url": "https://github.com/sponsors/ljharb"
-	},
-	"contributors": [
-		{
-			"name": "Jordan Harband",
-			"email": "ljharb@gmail.com",
-			"url": "http://ljharb.codes"
-		}
-	],
-	"description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
-	"license": "MIT",
-	"main": "index.js",
-	"scripts": {
-		"prepublish": "safe-publish-latest",
-		"pretest": "npm run --silent lint",
-		"test": "npm run --silent tests-only",
-		"posttest": "npx aud",
-		"tests-only": "npm run --silent test:stock && npm run --silent test:staging && npm run --silent test:shams",
-		"test:stock": "node test",
-		"test:staging": "node --harmony --es-staging test",
-		"test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
-		"test:shams:corejs": "node test/shams/core-js.js",
-		"test:shams:getownpropertysymbols": "node test/shams/get-own-property-symbols.js",
-		"lint": "eslint *.js",
-		"version": "auto-changelog && git add CHANGELOG.md",
-		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
-	},
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/ljharb/has-symbols.git"
-	},
-	"keywords": [
-		"Symbol",
-		"symbols",
-		"typeof",
-		"sham",
-		"polyfill",
-		"native",
-		"core-js",
-		"ES6"
-	],
-	"dependencies": {},
-	"devDependencies": {
-		"@ljharb/eslint-config": "^15.0.1",
-		"auto-changelog": "^1.16.2",
-		"core-js": "^2.6.10",
-		"eslint": "^6.6.0",
-		"get-own-property-symbols": "^0.9.4",
-		"safe-publish-latest": "^1.1.4",
-		"tape": "^4.11.0"
-	},
-	"testling": {
-		"files": "test/index.js",
-		"browsers": [
-			"iexplore/6.0..latest",
-			"firefox/3.0..6.0",
-			"firefox/15.0..latest",
-			"firefox/nightly",
-			"chrome/4.0..10.0",
-			"chrome/20.0..latest",
-			"chrome/canary",
-			"opera/10.0..latest",
-			"opera/next",
-			"safari/4.0..latest",
-			"ipad/6.0..latest",
-			"iphone/6.0..latest",
-			"android-browser/4.2"
-		]
-	},
-	"engines": {
-		"node": ">= 0.4"
-	},
-	"auto-changelog": {
-		"output": "CHANGELOG.md",
-		"template": "keepachangelog",
-		"unreleased": false,
-		"commitLimit": false,
-		"backfillLimit": false
-	}
-}
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/shams.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/shams.js
deleted file mode 100644
index 9f80f79..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/shams.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
-	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
-	if (typeof Symbol.iterator === 'symbol') { return true; }
-
-	var obj = {};
-	var sym = Symbol('test');
-	var symObj = Object(sym);
-	if (typeof sym === 'string') { return false; }
-
-	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
-	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
-	// temp disabled per https://github.com/ljharb/object.assign/issues/17
-	// if (sym instanceof Symbol) { return false; }
-	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
-	// if (!(symObj instanceof Symbol)) { return false; }
-
-	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
-	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
-	var symVal = 42;
-	obj[sym] = symVal;
-	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
-	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
-	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
-	var syms = Object.getOwnPropertySymbols(obj);
-	if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
-	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
-	if (typeof Object.getOwnPropertyDescriptor === 'function') {
-		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
-		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
-	}
-
-	return true;
-};
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/index.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/test/index.js
deleted file mode 100644
index fc32aff..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var hasSymbols = require('../');
-var runSymbolTests = require('./tests');
-
-test('interface', function (t) {
- 	t.equal(typeof hasSymbols, 'function', 'is a function');
-	t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean');
-	t.end();
-});
-
-test('Symbols are supported', { skip: !hasSymbols() }, function (t) {
-	runSymbolTests(t);
-	t.end();
-});
-
-test('Symbols are not supported', { skip: hasSymbols() }, function (t) {
-	t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined');
-	t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist');
-	t.end();
-});
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/core-js.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/core-js.js
deleted file mode 100644
index df5365c..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/core-js.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
-	test('has native Symbol support', function (t) {
-		t.equal(typeof Symbol, 'function');
-		t.equal(typeof Symbol(), 'symbol');
-		t.end();
-	});
-	return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
-	/* eslint-disable global-require */
-	t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
-	require('core-js/fn/symbol');
-	require('core-js/fn/symbol/to-string-tag');
-
-	require('../tests')(t);
-
-	var hasSymbolsAfter = hasSymbols();
-	t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
-	/* eslint-enable global-require */
-	t.end();
-});
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/get-own-property-symbols.js
deleted file mode 100644
index 9191b24..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/shams/get-own-property-symbols.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
-	test('has native Symbol support', function (t) {
-		t.equal(typeof Symbol, 'function');
-		t.equal(typeof Symbol(), 'symbol');
-		t.end();
-	});
-	return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
-	/* eslint-disable global-require */
-	t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
-
-	require('get-own-property-symbols');
-
-	require('../tests')(t);
-
-	var hasSymbolsAfter = hasSymbols();
-	t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
-	/* eslint-enable global-require */
-	t.end();
-});
diff --git a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/tests.js b/node_modules/string.prototype.matchall/node_modules/has-symbols/test/tests.js
deleted file mode 100644
index 93ff0ea..0000000
--- a/node_modules/string.prototype.matchall/node_modules/has-symbols/test/tests.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-module.exports = function runSymbolTests(t) {
-	t.equal(typeof Symbol, 'function', 'global Symbol is a function');
-
-	if (typeof Symbol !== 'function') { return false };
-
-	t.notEqual(Symbol(), Symbol(), 'two symbols are not equal');
-
-	/*
-	t.equal(
-		Symbol.prototype.toString.call(Symbol('foo')),
-		Symbol.prototype.toString.call(Symbol('foo')),
-		'two symbols with the same description stringify the same'
-	);
-	*/
-
-	var foo = Symbol('foo');
-
-	/*
-	t.notEqual(
-		String(foo),
-		String(Symbol('bar')),
-		'two symbols with different descriptions do not stringify the same'
-	);
-	*/
-
-	t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function');
-	// t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol');
-
-	t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function');
-
-	var obj = {};
-	var sym = Symbol('test');
-	var symObj = Object(sym);
-	t.notEqual(typeof sym, 'string', 'Symbol is not a string');
-	t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly');
-	t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly');
-
-	var symVal = 42;
-	obj[sym] = symVal;
-	for (sym in obj) { t.fail('symbol property key was found in for..in of object'); }
-
-	t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object');
-	t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object');
-	t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object');
-	t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable');
-	t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), {
-		configurable: true,
-		enumerable: true,
-		value: 42,
-		writable: true
-	}, 'property descriptor is correct');
-};
diff --git a/node_modules/string.prototype.matchall/package.json b/node_modules/string.prototype.matchall/package.json
deleted file mode 100644
index de943d4..0000000
--- a/node_modules/string.prototype.matchall/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-	"name": "string.prototype.matchall",
-	"version": "4.0.2",
-	"description": "Spec-compliant polyfill for String.prototype.matchAll ESnext proposal.",
-	"main": "index.js",
-	"scripts": {
-		"prepublish": "safe-publish-latest",
-		"pretest": "npm run lint",
-		"test": "es-shim-api --bound && npm run tests-only",
-		"posttest": "npx aud",
-		"tests-only": "npm run test:module && npm run test:shim",
-		"test:module": "node test",
-		"test:shim": "node test/shimmed",
-		"prelint": "evalmd *.md",
-		"lint": "eslint ."
-	},
-	"repository": {
-		"type": "git",
-		"url": "git+https://github.com/ljharb/String.prototype.matchAll.git"
-	},
-	"keywords": [
-		"String.prototype.matchAll",
-		"matchAll",
-		"match",
-		"regex",
-		"regexp",
-		"regular",
-		"expression",
-		"matches"
-	],
-	"author": "Jordan Harband <ljharb@gmail.com>",
-	"funding": {
-		"url": "https://github.com/sponsors/ljharb"
-	},
-	"license": "MIT",
-	"bugs": {
-		"url": "https://github.com/ljharb/String.prototype.matchAll/issues"
-	},
-	"homepage": "https://github.com/ljharb/String.prototype.matchAll#readme",
-	"dependencies": {
-		"define-properties": "^1.1.3",
-		"es-abstract": "^1.17.0",
-		"has-symbols": "^1.0.1",
-		"internal-slot": "^1.0.2",
-		"regexp.prototype.flags": "^1.3.0",
-		"side-channel": "^1.0.2"
-	},
-	"devDependencies": {
-		"@es-shims/api": "^2.1.2",
-		"@ljharb/eslint-config": "^15.1.0",
-		"es5-shim": "^4.5.13",
-		"es6-shim": "^0.35.5",
-		"eslint": "^6.8.0",
-		"evalmd": "0.0.19",
-		"foreach": "^2.0.5",
-		"function-bind": "^1.1.1",
-		"functions-have-names": "^1.2.0",
-		"object-inspect": "^1.7.0",
-		"object.assign": "^4.1.0",
-		"object.entries": "^1.1.1",
-		"safe-publish-latest": "^1.1.4",
-		"tape": "^4.12.0"
-	}
-}
diff --git a/node_modules/string.prototype.matchall/polyfill-regexp-matchall.js b/node_modules/string.prototype.matchall/polyfill-regexp-matchall.js
deleted file mode 100644
index 6c39baf..0000000
--- a/node_modules/string.prototype.matchall/polyfill-regexp-matchall.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-var hasSymbols = require('has-symbols')();
-var regexpMatchAll = require('./regexp-matchall');
-
-module.exports = function getRegExpMatchAllPolyfill() {
-	if (!hasSymbols || typeof Symbol.matchAll !== 'symbol' || typeof RegExp.prototype[Symbol.matchAll] !== 'function') {
-		return regexpMatchAll;
-	}
-	return RegExp.prototype[Symbol.matchAll];
-};
diff --git a/node_modules/string.prototype.matchall/polyfill.js b/node_modules/string.prototype.matchall/polyfill.js
deleted file mode 100644
index c9e0df4..0000000
--- a/node_modules/string.prototype.matchall/polyfill.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
-	if (String.prototype.matchAll) {
-		try {
-			''.matchAll(RegExp.prototype);
-		} catch (e) {
-			return String.prototype.matchAll;
-		}
-	}
-	return implementation;
-};
diff --git a/node_modules/string.prototype.matchall/regexp-matchall.js b/node_modules/string.prototype.matchall/regexp-matchall.js
deleted file mode 100644
index c474f31..0000000
--- a/node_modules/string.prototype.matchall/regexp-matchall.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-// var Construct = require('es-abstract/2019/Construct');
-var Get = require('es-abstract/2019/Get');
-var Set = require('es-abstract/2019/Set');
-var SpeciesConstructor = require('es-abstract/2019/SpeciesConstructor');
-var ToLength = require('es-abstract/2019/ToLength');
-var ToString = require('es-abstract/2019/ToString');
-var Type = require('es-abstract/2019/Type');
-var flagsGetter = require('regexp.prototype.flags');
-
-var RegExpStringIterator = require('./helpers/RegExpStringIterator');
-var OrigRegExp = RegExp;
-
-var CreateRegExpStringIterator = function CreateRegExpStringIterator(R, S, global, fullUnicode) {
-	if (Type(S) !== 'String') {
-		throw new TypeError('"S" value must be a String');
-	}
-	if (Type(global) !== 'Boolean') {
-		throw new TypeError('"global" value must be a Boolean');
-	}
-	if (Type(fullUnicode) !== 'Boolean') {
-		throw new TypeError('"fullUnicode" value must be a Boolean');
-	}
-
-	var iterator = new RegExpStringIterator(R, S, global, fullUnicode);
-	return iterator;
-};
-
-var supportsConstructingWithFlags = 'flags' in RegExp.prototype;
-
-var constructRegexWithFlags = function constructRegex(C, R) {
-	var matcher;
-	// workaround for older engines that lack RegExp.prototype.flags
-	var flags = 'flags' in R ? Get(R, 'flags') : ToString(flagsGetter(R));
-	if (supportsConstructingWithFlags && typeof flags === 'string') {
-		matcher = new C(R, flags);
-	} else if (C === OrigRegExp) {
-		// workaround for older engines that can not construct a RegExp with flags
-		matcher = new C(R.source, flags);
-	} else {
-		matcher = new C(R, flags);
-	}
-	return { flags: flags, matcher: matcher };
-};
-
-var regexMatchAll = function SymbolMatchAll(string) {
-	var R = this;
-	if (Type(R) !== 'Object') {
-		throw new TypeError('"this" value must be an Object');
-	}
-	var S = ToString(string);
-	var C = SpeciesConstructor(R, OrigRegExp);
-
-	var tmp = constructRegexWithFlags(C, R);
-	// var flags = ToString(Get(R, 'flags'));
-	var flags = tmp.flags;
-	// var matcher = Construct(C, [R, flags]);
-	var matcher = tmp.matcher;
-
-	var lastIndex = ToLength(Get(R, 'lastIndex'));
-	Set(matcher, 'lastIndex', lastIndex, true);
-	var global = flags.indexOf('g') > -1;
-	var fullUnicode = flags.indexOf('u') > -1;
-	return CreateRegExpStringIterator(matcher, S, global, fullUnicode);
-};
-
-var defineP = Object.defineProperty;
-var gOPD = Object.getOwnPropertyDescriptor;
-
-if (defineP && gOPD) {
-	var desc = gOPD(regexMatchAll, 'name');
-	if (desc && desc.configurable) {
-		defineP(regexMatchAll, 'name', { value: '[Symbol.matchAll]' });
-	}
-}
-
-module.exports = regexMatchAll;
diff --git a/node_modules/string.prototype.matchall/shim.js b/node_modules/string.prototype.matchall/shim.js
deleted file mode 100644
index 2dd4a24..0000000
--- a/node_modules/string.prototype.matchall/shim.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var hasSymbols = require('has-symbols')();
-var getPolyfill = require('./polyfill');
-var regexpMatchAllPolyfill = require('./polyfill-regexp-matchall');
-
-var defineP = Object.defineProperty;
-var gOPD = Object.getOwnPropertyDescriptor;
-
-module.exports = function shimMatchAll() {
-	var polyfill = getPolyfill();
-	define(
-		String.prototype,
-		{ matchAll: polyfill },
-		{ matchAll: function () { return String.prototype.matchAll !== polyfill; } }
-	);
-	if (hasSymbols) {
-		// eslint-disable-next-line no-restricted-properties
-		var symbol = Symbol.matchAll || (Symbol['for'] ? Symbol['for']('Symbol.matchAll') : Symbol('Symbol.matchAll'));
-		define(
-			Symbol,
-			{ matchAll: symbol },
-			{ matchAll: function () { return Symbol.matchAll !== symbol; } }
-		);
-
-		if (defineP && gOPD) {
-			var desc = gOPD(Symbol, symbol);
-			if (!desc || desc.configurable) {
-				defineP(Symbol, symbol, {
-					configurable: false,
-					enumerable: false,
-					value: symbol,
-					writable: false
-				});
-			}
-		}
-
-		var regexpMatchAll = regexpMatchAllPolyfill();
-		var func = {};
-		func[symbol] = regexpMatchAll;
-		var predicate = {};
-		predicate[symbol] = function () {
-			return RegExp.prototype[symbol] !== regexpMatchAll;
-		};
-		define(RegExp.prototype, func, predicate);
-	}
-	return polyfill;
-};
diff --git a/node_modules/string.prototype.matchall/test/index.js b/node_modules/string.prototype.matchall/test/index.js
deleted file mode 100644
index 86daec8..0000000
--- a/node_modules/string.prototype.matchall/test/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var matchAllShim = require('../');
-var regexMatchAll = require('../regexp-matchall');
-var test = require('tape');
-
-var runTests = require('./tests');
-
-test('as a function', function (t) {
-	runTests(matchAllShim, regexMatchAll, t);
-
-	t.end();
-});
diff --git a/node_modules/string.prototype.matchall/test/shimmed.js b/node_modules/string.prototype.matchall/test/shimmed.js
deleted file mode 100644
index f6b2f7c..0000000
--- a/node_modules/string.prototype.matchall/test/shimmed.js
+++ /dev/null
@@ -1,77 +0,0 @@
-'use strict';
-
-require('es5-shim');
-require('es6-shim');
-var matchAllShim = require('../');
-matchAllShim.shim();
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var bind = require('function-bind');
-var hasSymbols = require('has-symbols')();
-var regexMatchAll = require('../regexp-matchall');
-
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names')();
-var functionNamesConfigurable = require('functions-have-names').functionsHaveConfigurableNames();
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
-	t.equal(String.prototype.matchAll.length, 1, 'String#matchAll has a length of 1');
-	t.test('Function name', { skip: !functionsHaveNames }, function (st) {
-		st.equal(String.prototype.matchAll.name, 'matchAll', 'String#matchAll has name "matchAll"');
-		st.end();
-	});
-
-	t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
-		et.equal(false, isEnumerable.call(String.prototype, 'matchAll'), 'String#matchAll is not enumerable');
-		et.end();
-	});
-
-	t.test('Symbol.matchAll', { skip: !hasSymbols }, function (st) {
-		st.equal(typeof Symbol.matchAll, 'symbol', 'Symbol.matchAll is a symbol');
-
-		st.equal(typeof RegExp.prototype[Symbol.matchAll], 'function', 'Symbol.matchAll function is on RegExp.prototype');
-
-		st.test('Function name', { skip: !functionsHaveNames }, function (s2t) {
-			if (functionNamesConfigurable) {
-				s2t.equal(RegExp.prototype[Symbol.matchAll].name, '[Symbol.matchAll]', 'RegExp.prototype[Symbol.matchAll] has name "[Symbol.matchAll]"');
-			} else {
-				s2t.equal(RegExp.prototype[Symbol.matchAll].name, 'SymbolMatchAll', 'RegExp.prototype[Symbol.matchAll] has best guess name "SymbolMatchAll"');
-			}
-			s2t.end();
-		});
-
-		st.test('no symbol present', function (s2t) {
-			var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, Symbol.matchAll);
-
-			s2t.doesNotThrow(function () { 'abc'.matchAll('b'); }, 'does not throw on string input, with the symbol on regex prototype');
-
-			// eslint-disable-next-line no-extend-native
-			Object.defineProperty(RegExp.prototype, Symbol.matchAll, {
-				configurable: true,
-				enumerable: false,
-				value: undefined,
-				writable: true
-			});
-
-			s2t['throws'](function () { 'abc'.matchAll('b'); }, 'throws on string input, without the symbol on regex prototype');
-
-			// eslint-disable-next-line no-extend-native
-			Object.defineProperty(RegExp.prototype, Symbol.matchAll, desc);
-
-			s2t.end();
-		});
-
-		st.end();
-	});
-
-	runTests(
-		bind.call(Function.call, String.prototype.matchAll),
-		bind.call(Function.call, hasSymbols ? RegExp.prototype[Symbol.matchAll] : regexMatchAll),
-		t
-	);
-
-	t.end();
-});
diff --git a/node_modules/string.prototype.matchall/test/tests.js b/node_modules/string.prototype.matchall/test/tests.js
deleted file mode 100644
index 7214b47..0000000
--- a/node_modules/string.prototype.matchall/test/tests.js
+++ /dev/null
@@ -1,247 +0,0 @@
-'use strict';
-
-var forEach = require('foreach');
-var has = Object.prototype.hasOwnProperty;
-var assign = require('object.assign');
-var define = require('define-properties');
-var entries = require('object.entries');
-var inspect = require('object-inspect');
-
-var hasSticky = typeof (/a/).sticky === 'boolean';
-var hasGroups = 'groups' in (/a/).exec('a');
-
-var groups = function groups(matchObject) {
-	return hasGroups ? assign(matchObject, { groups: matchObject.groups }, matchObject) : matchObject;
-};
-
-var arraySpread = function arraySpread(iterator) {
-	if (Array.isArray(iterator)) { return iterator; }
-	var result;
-	var values = [];
-	do {
-		result = iterator.next();
-		values.push(result);
-	} while (!result.done);
-	return values;
-};
-
-var testResults = function (t, iterator, expectedResults, item) {
-	var prefix = arguments.length > 3 ? inspect(item) + ': ' : '';
-	var results = arraySpread(iterator);
-	var expecteds = arraySpread(expectedResults);
-	t.test(prefix + 'actual vs expected result lengths', function (st) {
-		st.equal(results.length, expecteds.length, 'actual and expected result counts are the same');
-		st.end();
-	});
-	t.test(prefix + 'actual vs expected results', { skip: results.length !== expecteds.length }, function (st) {
-		forEach(expecteds, function (expected, index) {
-			var result = results.shift();
-			st.equal(result.done, expected.done, 'result ' + (index + 1) + ' is ' + (expected.done ? '' : 'not ') + 'done');
-			st.test('result ' + (index + 1), { skip: result.done !== expected.done }, function (s2t) {
-				if (expected.done) {
-					s2t.equal(result.value, undefined, 'result ' + (index + 1) + ' value is undefined');
-				} else {
-					s2t.equal(Array.isArray(result.value), true, 'result ' + (index + 1) + ' value is an array');
-					s2t.deepEqual(entries(result.value || {}), entries(expected.value || {}), 'result ' + (index + 1) + ' has the same entries');
-					s2t.deepEqual(result.value, expected.value, 'result ' + (index + 1) + ' value is expected value');
-				}
-				s2t.end();
-			});
-		});
-	});
-};
-
-module.exports = function (matchAll, regexMatchAll, t) {
-	t.test('non-regexes', function (st) {
-		var notRegexes = [
-			[null, [{ value: undefined, done: true }]],
-			[undefined, [
-				{ value: assign([''], groups({ index: 0, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 1, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 2, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 3, input: 'abc' })), done: false },
-				{ value: undefined, done: true }
-			]],
-			[NaN, [{ value: undefined, done: true }]],
-			[42, [{ value: undefined, done: true }]],
-			[new Date(), [{ value: undefined, done: true }]],
-			[{}, [
-				{ value: assign(['b'], groups({ index: 1, input: 'abc' })), done: false },
-				{ value: assign(['c'], groups({ index: 2, input: 'abc' })), done: false },
-				{ value: undefined, done: true }
-			]],
-			[[], [
-				{ value: assign([''], groups({ index: 0, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 1, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 2, input: 'abc' })), done: false },
-				{ value: assign([''], groups({ index: 3, input: 'abc' })), done: false },
-				{ value: undefined, done: true }
-			]]
-		];
-		var str = 'abc';
-		forEach(notRegexes, function (notRegex) {
-			testResults(st, matchAll(str, notRegex[0]), notRegex[1], notRegex[0]);
-		});
-		st.end();
-	});
-
-	t.test('passing a string instead of a regex', function (st) {
-		var str = 'aabcaba';
-		testResults(st, matchAll(str, 'a'), matchAll(str, /a/g));
-		st.end();
-	});
-
-	t.test('ToString-able objects', function (st) {
-		var str = 'aabc';
-		var strObj = { toString: function () { return str; } };
-		var regex = /[ac]/g;
-		var expectedResults = [
-			{ value: assign(['a'], groups({ index: 0, input: str })), done: false },
-			{ value: assign(['a'], groups({ index: 1, input: str })), done: false },
-			{ value: assign(['c'], groups({ index: 3, input: str })), done: false },
-			{ value: undefined, done: true }
-		];
-		testResults(st, matchAll(strObj, regex), expectedResults);
-		st.end();
-	});
-
-	t.test('#flags', function (st) {
-		st.test('without a flags property', function (s2t) {
-			var str = 'aabc';
-			var regex = /[ac]/g;
-			if (define.supportsDescriptors) {
-				Object.defineProperty(regex, 'flags', { value: undefined });
-			}
-			s2t.equal(regex.flags, undefined, 'regex has an undefined "flags" property');
-			s2t['throws'](
-				function () { matchAll(str, regex); },
-				'undefined flags throws'
-			);
-			s2t.end();
-		});
-
-		st.test('with a static flags property', function (s2t) {
-			var str = 'AaBC';
-			var regex = /[ac]/;
-			define(regex, { flags: 'ig' }, { flags: function () { return true; } });
-			try {
-				define(regex, { global: true }, { global: function () { return true; } });
-				s2t.equal(regex.global, true);
-			} catch (e) {
-				s2t.comment('# SKIP in node < 6, `global` is not configurable on regexes');
-				return s2t.end();
-			}
-			s2t.equal(regex.flags, 'ig');
-			var expectedResults = [
-				{ value: assign(['A'], groups({ index: 0, input: str })), done: false },
-				{ value: assign(['a'], groups({ index: 1, input: str })), done: false },
-				{ value: assign(['C'], groups({ index: 3, input: str })), done: false },
-				{ value: undefined, done: true }
-			];
-			testResults(s2t, matchAll(str, regex), expectedResults);
-			return s2t.end();
-		});
-
-		st.test('respects flags', function (s2t) {
-			var str = 'A\na\nb\nC';
-			var regex = /^[ac]/img;
-			var expectedResults = [
-				{ value: assign(['A'], groups({ index: 0, input: str })), done: false },
-				{ value: assign(['a'], groups({ index: 2, input: str })), done: false },
-				{ value: assign(['C'], groups({ index: 6, input: str })), done: false },
-				{ value: undefined, done: true }
-			];
-			testResults(s2t, matchAll(str, regex), expectedResults);
-			s2t.end();
-		});
-
-		st.test('throws with a non-global regex', function (s2t) {
-			var str = 'AaBbCc';
-			var regex = /[bc]/i;
-			s2t['throws'](
-				function () { matchAll(str, regex); },
-				TypeError,
-				'a non-global regex throws'
-			);
-			s2t.end();
-		});
-
-		st.test('works with a global non-sticky regex', function (s2t) {
-			var str = 'AaBbCc';
-			var regex = /[bc]/gi;
-			var expectedResults = [
-				{ value: assign(['B'], groups({ index: 2, input: str })), done: false },
-				{ value: assign(['b'], groups({ index: 3, input: str })), done: false },
-				{ value: assign(['C'], groups({ index: 4, input: str })), done: false },
-				{ value: assign(['c'], groups({ index: 5, input: str })), done: false },
-				{ value: undefined, done: true }
-			];
-			testResults(s2t, matchAll(str, regex), expectedResults);
-			s2t.end();
-		});
-	});
-
-	t.test('returns an iterator', function (st) {
-		var str = 'aabc';
-		var iterator = matchAll(str, /[ac]/g);
-		st.ok(iterator, 'iterator is truthy');
-		st.equal(has.call(iterator, 'next'), false, 'iterator does not have own property "next"');
-		for (var key in iterator) {
-			st.fail('iterator has enumerable properties: ' + key);
-		}
-		var expectedResults = [
-			{ value: assign(['a'], groups({ index: 0, input: str })), done: false },
-			{ value: assign(['a'], groups({ index: 1, input: str })), done: false },
-			{ value: assign(['c'], groups({ index: 3, input: str })), done: false },
-			{ value: undefined, done: true }
-		];
-		testResults(st, iterator, expectedResults);
-		st.end();
-	});
-
-	t.test('zero-width matches', function (st) {
-		var str = 'abcde';
-
-		st.test('global', function (s2t) {
-			var expectedResults = [
-				{ value: assign([''], groups({ index: 1, input: str })), done: false },
-				{ value: assign([''], groups({ index: 2, input: str })), done: false },
-				{ value: assign([''], groups({ index: 3, input: str })), done: false },
-				{ value: assign([''], groups({ index: 4, input: str })), done: false },
-				{ value: undefined, done: true }
-			];
-			testResults(s2t, matchAll(str, /\B/g), expectedResults);
-			s2t.end();
-		});
-
-		st.test('sticky', { skip: !hasSticky }, function (s2t) {
-			var expectedResults = [
-				{ value: undefined, done: true }
-			];
-
-			/* eslint no-invalid-regexp: [2, { "allowConstructorFlags": ["y"] }] */
-			var regex = new RegExp('\\B', 'y');
-			s2t['throws'](
-				function () { matchAll(str, regex); },
-				TypeError,
-				'non-global sticky regex throws'
-			);
-
-			/* eslint no-invalid-regexp: [2, { "allowConstructorFlags": ["y"] }] */
-			testResults(s2t, matchAll(str, new RegExp('\\B', 'gy')), expectedResults);
-
-			s2t.end();
-		});
-
-		st.test('unflagged', function (s2t) {
-			s2t['throws'](
-				function () { matchAll(str, /\B/); },
-				TypeError,
-				'unflagged regex throws'
-			);
-			s2t.end();
-		});
-
-		st.end();
-	});
-};
diff --git a/node_modules/strip-bom/index.js b/node_modules/strip-bom/index.js
index 82f9175..b00feb9 100644
--- a/node_modules/strip-bom/index.js
+++ b/node_modules/strip-bom/index.js
@@ -1,15 +1,14 @@
 'use strict';
-
-module.exports = string => {
-	if (typeof string !== 'string') {
-		throw new TypeError(`Expected a string, got ${typeof string}`);
+module.exports = x => {
+	if (typeof x !== 'string') {
+		throw new TypeError('Expected a string, got ' + typeof x);
 	}
 
 	// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
 	// conversion translates it to FEFF (UTF-16 BOM)
-	if (string.charCodeAt(0) === 0xFEFF) {
-		return string.slice(1);
+	if (x.charCodeAt(0) === 0xFEFF) {
+		return x.slice(1);
 	}
 
-	return string;
+	return x;
 };
diff --git a/node_modules/strip-bom/license b/node_modules/strip-bom/license
index e7af2f7..654d0bf 100644
--- a/node_modules/strip-bom/license
+++ b/node_modules/strip-bom/license
@@ -1,9 +1,21 @@
-MIT License
+The MIT License (MIT)
 
 Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
 
-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:
+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 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.
+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.
diff --git a/node_modules/strip-bom/package.json b/node_modules/strip-bom/package.json
index f96ba34..10f8fdd 100644
--- a/node_modules/strip-bom/package.json
+++ b/node_modules/strip-bom/package.json
@@ -1,42 +1,40 @@
 {
-	"name": "strip-bom",
-	"version": "4.0.0",
-	"description": "Strip UTF-8 byte order mark (BOM) from a string",
-	"license": "MIT",
-	"repository": "sindresorhus/strip-bom",
-	"author": {
-		"name": "Sindre Sorhus",
-		"email": "sindresorhus@gmail.com",
-		"url": "sindresorhus.com"
-	},
-	"engines": {
-		"node": ">=8"
-	},
-	"scripts": {
-		"test": "xo && ava && tsd"
-	},
-	"files": [
-		"index.js",
-		"index.d.ts"
-	],
-	"keywords": [
-		"strip",
-		"bom",
-		"byte",
-		"order",
-		"mark",
-		"unicode",
-		"utf8",
-		"utf-8",
-		"remove",
-		"delete",
-		"trim",
-		"text",
-		"string"
-	],
-	"devDependencies": {
-		"ava": "^1.4.1",
-		"tsd": "^0.7.2",
-		"xo": "^0.24.0"
-	}
+  "name": "strip-bom",
+  "version": "3.0.0",
+  "description": "Strip UTF-8 byte order mark (BOM) from a string",
+  "license": "MIT",
+  "repository": "sindresorhus/strip-bom",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "engines": {
+    "node": ">=4"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "files": [
+    "index.js"
+  ],
+  "keywords": [
+    "strip",
+    "bom",
+    "byte",
+    "order",
+    "mark",
+    "unicode",
+    "utf8",
+    "utf-8",
+    "remove",
+    "delete",
+    "trim",
+    "text",
+    "string"
+  ],
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  }
 }
diff --git a/node_modules/strip-bom/readme.md b/node_modules/strip-bom/readme.md
index e826851..812a980 100644
--- a/node_modules/strip-bom/readme.md
+++ b/node_modules/strip-bom/readme.md
@@ -1,29 +1,16 @@
 # strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
 
-> Strip UTF-8 [byte order mark](https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
+> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
 
 From Wikipedia:
 
 > The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
 
----
-
-<div align="center">
-	<b>
-		<a href="https://tidelift.com/subscription/pkg/npm-strip-bom?utm_source=npm-strip-bom&utm_medium=referral&utm_campaign=readme">Get professional support for 'strip-bom' with a Tidelift subscription</a>
-	</b>
-	<br>
-	<sub>
-		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
-	</sub>
-</div>
-
----
 
 ## Install
 
 ```
-$ npm install strip-bom
+$ npm install --save strip-bom
 ```
 
 
@@ -37,11 +24,6 @@
 ```
 
 
-## Security
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
-
-
 ## Related
 
 - [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
diff --git a/node_modules/string-width/node_modules/emoji-regex/LICENSE-MIT.txt b/node_modules/table/node_modules/emoji-regex/LICENSE-MIT.txt
similarity index 100%
rename from node_modules/string-width/node_modules/emoji-regex/LICENSE-MIT.txt
rename to node_modules/table/node_modules/emoji-regex/LICENSE-MIT.txt
diff --git a/node_modules/table/node_modules/emoji-regex/README.md b/node_modules/table/node_modules/emoji-regex/README.md
new file mode 100644
index 0000000..37cf14e
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/README.md
@@ -0,0 +1,73 @@
+# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex)
+
+_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard.
+
+This repository contains a script that generates this regular expression based on [the data from Unicode Technical Report #51](https://github.com/mathiasbynens/unicode-tr51). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.
+
+## Installation
+
+Via [npm](https://www.npmjs.com/):
+
+```bash
+npm install emoji-regex
+```
+
+In [Node.js](https://nodejs.org/):
+
+```js
+const emojiRegex = require('emoji-regex');
+// Note: because the regular expression has the global flag set, this module
+// exports a function that returns the regex rather than exporting the regular
+// expression itself, to make it impossible to (accidentally) mutate the
+// original regular expression.
+
+const text = `
+\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
+\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
+\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
+\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
+`;
+
+const regex = emojiRegex();
+let match;
+while (match = regex.exec(text)) {
+  const emoji = match[0];
+  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
+}
+```
+
+Console output:
+
+```
+Matched sequence ⌚ — code points: 1
+Matched sequence ⌚ — code points: 1
+Matched sequence ↔️ — code points: 2
+Matched sequence ↔️ — code points: 2
+Matched sequence 👩 — code points: 1
+Matched sequence 👩 — code points: 1
+Matched sequence 👩🏿 — code points: 2
+Matched sequence 👩🏿 — code points: 2
+```
+
+To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex:
+
+```js
+const emojiRegex = require('emoji-regex/text.js');
+```
+
+Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes:
+
+```js
+const emojiRegex = require('emoji-regex/es2015/index.js');
+const emojiRegexText = require('emoji-regex/es2015/text.js');
+```
+
+## Author
+
+| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
+|---|
+| [Mathias Bynens](https://mathiasbynens.be/) |
+
+## License
+
+_emoji-regex_ is available under the [MIT](https://mths.be/mit) license.
diff --git a/node_modules/table/node_modules/emoji-regex/es2015/index.js b/node_modules/table/node_modules/emoji-regex/es2015/index.js
new file mode 100644
index 0000000..0216db9
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/es2015/index.js
@@ -0,0 +1,6 @@
+"use strict";
+
+module.exports = () => {
+  // https://mths.be/emoji
+  return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu;
+};
diff --git a/node_modules/table/node_modules/emoji-regex/es2015/text.js b/node_modules/table/node_modules/emoji-regex/es2015/text.js
new file mode 100644
index 0000000..d0a771d
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/es2015/text.js
@@ -0,0 +1,6 @@
+"use strict";
+
+module.exports = () => {
+  // https://mths.be/emoji
+  return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu;
+};
diff --git a/node_modules/table/node_modules/emoji-regex/index.d.ts b/node_modules/table/node_modules/emoji-regex/index.d.ts
new file mode 100644
index 0000000..2c317cd
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/index.d.ts
@@ -0,0 +1,5 @@
+declare module 'emoji-regex' {
+    function emojiRegex(): RegExp;
+
+    export default emojiRegex;
+}
diff --git a/node_modules/table/node_modules/emoji-regex/index.js b/node_modules/table/node_modules/emoji-regex/index.js
new file mode 100644
index 0000000..e2237a4
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/index.js
@@ -0,0 +1,6 @@
+"use strict";
+
+module.exports = function () {
+  // https://mths.be/emoji
+  return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g;
+};
diff --git a/node_modules/table/node_modules/emoji-regex/package.json b/node_modules/table/node_modules/emoji-regex/package.json
new file mode 100644
index 0000000..ed68e52
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/package.json
@@ -0,0 +1,51 @@
+{
+  "name": "emoji-regex",
+  "version": "7.0.3",
+  "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
+  "homepage": "https://mths.be/emoji-regex",
+  "main": "index.js",
+  "types": "index.d.ts",
+  "keywords": [
+    "unicode",
+    "regex",
+    "regexp",
+    "regular expressions",
+    "code points",
+    "symbols",
+    "characters",
+    "emoji"
+  ],
+  "license": "MIT",
+  "author": {
+    "name": "Mathias Bynens",
+    "url": "https://mathiasbynens.be/"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/mathiasbynens/emoji-regex.git"
+  },
+  "bugs": "https://github.com/mathiasbynens/emoji-regex/issues",
+  "files": [
+    "LICENSE-MIT.txt",
+    "index.js",
+    "index.d.ts",
+    "text.js",
+    "es2015/index.js",
+    "es2015/text.js"
+  ],
+  "scripts": {
+    "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js",
+    "test": "mocha",
+    "test:watch": "npm run test -- --watch"
+  },
+  "devDependencies": {
+    "@babel/cli": "^7.0.0",
+    "@babel/core": "^7.0.0",
+    "@babel/plugin-proposal-unicode-property-regex": "^7.0.0",
+    "@babel/preset-env": "^7.0.0",
+    "mocha": "^5.2.0",
+    "regexgen": "^1.3.0",
+    "unicode-11.0.0": "^0.7.7",
+    "unicode-tr51": "^9.0.1"
+  }
+}
diff --git a/node_modules/table/node_modules/emoji-regex/text.js b/node_modules/table/node_modules/emoji-regex/text.js
new file mode 100644
index 0000000..199ae3b
--- /dev/null
+++ b/node_modules/table/node_modules/emoji-regex/text.js
@@ -0,0 +1,6 @@
+"use strict";
+
+module.exports = function () {
+  // https://mths.be/emoji
+  return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g;
+};
diff --git a/node_modules/through/.travis.yml b/node_modules/through/.travis.yml
deleted file mode 100644
index c693a93..0000000
--- a/node_modules/through/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-  - 0.8
-  - "0.10"
diff --git a/node_modules/through/LICENSE.APACHE2 b/node_modules/through/LICENSE.APACHE2
deleted file mode 100644
index 6366c04..0000000
--- a/node_modules/through/LICENSE.APACHE2
+++ /dev/null
@@ -1,15 +0,0 @@
-Apache License, Version 2.0
-
-Copyright (c) 2011 Dominic Tarr
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/node_modules/through/LICENSE.MIT b/node_modules/through/LICENSE.MIT
deleted file mode 100644
index 6eafbd7..0000000
--- a/node_modules/through/LICENSE.MIT
+++ /dev/null
@@ -1,24 +0,0 @@
-The MIT License
-
-Copyright (c) 2011 Dominic Tarr
-
-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.
diff --git a/node_modules/through/index.js b/node_modules/through/index.js
deleted file mode 100644
index ca5fc59..0000000
--- a/node_modules/through/index.js
+++ /dev/null
@@ -1,108 +0,0 @@
-var Stream = require('stream')
-
-// through
-//
-// a stream that does nothing but re-emit the input.
-// useful for aggregating a series of changing but not ending streams into one stream)
-
-exports = module.exports = through
-through.through = through
-
-//create a readable writable stream.
-
-function through (write, end, opts) {
-  write = write || function (data) { this.queue(data) }
-  end = end || function () { this.queue(null) }
-
-  var ended = false, destroyed = false, buffer = [], _ended = false
-  var stream = new Stream()
-  stream.readable = stream.writable = true
-  stream.paused = false
-
-//  stream.autoPause   = !(opts && opts.autoPause   === false)
-  stream.autoDestroy = !(opts && opts.autoDestroy === false)
-
-  stream.write = function (data) {
-    write.call(this, data)
-    return !stream.paused
-  }
-
-  function drain() {
-    while(buffer.length && !stream.paused) {
-      var data = buffer.shift()
-      if(null === data)
-        return stream.emit('end')
-      else
-        stream.emit('data', data)
-    }
-  }
-
-  stream.queue = stream.push = function (data) {
-//    console.error(ended)
-    if(_ended) return stream
-    if(data === null) _ended = true
-    buffer.push(data)
-    drain()
-    return stream
-  }
-
-  //this will be registered as the first 'end' listener
-  //must call destroy next tick, to make sure we're after any
-  //stream piped from here.
-  //this is only a problem if end is not emitted synchronously.
-  //a nicer way to do this is to make sure this is the last listener for 'end'
-
-  stream.on('end', function () {
-    stream.readable = false
-    if(!stream.writable && stream.autoDestroy)
-      process.nextTick(function () {
-        stream.destroy()
-      })
-  })
-
-  function _end () {
-    stream.writable = false
-    end.call(stream)
-    if(!stream.readable && stream.autoDestroy)
-      stream.destroy()
-  }
-
-  stream.end = function (data) {
-    if(ended) return
-    ended = true
-    if(arguments.length) stream.write(data)
-    _end() // will emit or queue
-    return stream
-  }
-
-  stream.destroy = function () {
-    if(destroyed) return
-    destroyed = true
-    ended = true
-    buffer.length = 0
-    stream.writable = stream.readable = false
-    stream.emit('close')
-    return stream
-  }
-
-  stream.pause = function () {
-    if(stream.paused) return
-    stream.paused = true
-    return stream
-  }
-
-  stream.resume = function () {
-    if(stream.paused) {
-      stream.paused = false
-      stream.emit('resume')
-    }
-    drain()
-    //may have become paused again,
-    //as drain emits 'data'.
-    if(!stream.paused)
-      stream.emit('drain')
-    return stream
-  }
-  return stream
-}
-
diff --git a/node_modules/through/package.json b/node_modules/through/package.json
deleted file mode 100644
index 9862189..0000000
--- a/node_modules/through/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "through",
-  "version": "2.3.8",
-  "description": "simplified stream construction",
-  "main": "index.js",
-  "scripts": {
-    "test": "set -e; for t in test/*.js; do node $t; done"
-  },
-  "devDependencies": {
-    "stream-spec": "~0.3.5",
-    "tape": "~2.3.2",
-    "from": "~0.1.3"
-  },
-  "keywords": [
-    "stream",
-    "streams",
-    "user-streams",
-    "pipe"
-  ],
-  "author": "Dominic Tarr <dominic.tarr@gmail.com> (dominictarr.com)",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/dominictarr/through.git"
-  },
-  "homepage": "https://github.com/dominictarr/through",
-  "testling": {
-    "browsers": [
-      "ie/8..latest",
-      "ff/15..latest",
-      "chrome/20..latest",
-      "safari/5.1..latest"
-    ],
-    "files": "test/*.js"
-  }
-}
diff --git a/node_modules/through/readme.markdown b/node_modules/through/readme.markdown
deleted file mode 100644
index cb34c81..0000000
--- a/node_modules/through/readme.markdown
+++ /dev/null
@@ -1,64 +0,0 @@
-#through
-
-[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through)
-[![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through)
-
-Easy way to create a `Stream` that is both `readable` and `writable`. 
-
-* Pass in optional `write` and `end` methods.
-* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`.
-* Use `this.pause()` and `this.resume()` to manage flow.
-* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`).
-
-This function is the basis for most of the synchronous streams in 
-[event-stream](http://github.com/dominictarr/event-stream).
-
-``` js
-var through = require('through')
-
-through(function write(data) {
-    this.queue(data) //data *must* not be null
-  },
-  function end () { //optional
-    this.queue(null)
-  })
-```
-
-Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`,
-and this.emit('end')
-
-``` js
-var through = require('through')
-
-through(function write(data) {
-    this.emit('data', data)
-    //this.pause() 
-  },
-  function end () { //optional
-    this.emit('end')
-  })
-```
-
-## Extended Options
-
-You will probably not need these 99% of the time.
-
-### autoDestroy=false
-
-By default, `through` emits close when the writable
-and readable side of the stream has ended.
-If that is not desired, set `autoDestroy=false`.
-
-``` js
-var through = require('through')
-
-//like this
-var ts = through(write, end, {autoDestroy: false})
-//or like this
-var ts = through(write, end)
-ts.autoDestroy = false
-```
-
-## License
-
-MIT / Apache2
diff --git a/node_modules/through/test/async.js b/node_modules/through/test/async.js
deleted file mode 100644
index 46bdbae..0000000
--- a/node_modules/through/test/async.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var from = require('from')
-var through = require('../')
-
-var tape = require('tape')
-
-tape('simple async example', function (t) {
- 
-  var n = 0, expected = [1,2,3,4,5], actual = []
-  from(expected)
-  .pipe(through(function(data) {
-    this.pause()
-    n ++
-    setTimeout(function(){
-      console.log('pushing data', data)
-      this.push(data)
-      this.resume()
-    }.bind(this), 300)
-  })).pipe(through(function(data) {
-    console.log('pushing data second time', data);
-    this.push(data)
-  })).on('data', function (d) {
-    actual.push(d)
-  }).on('end', function() {
-    t.deepEqual(actual, expected)
-    t.end()
-  })
-
-})
diff --git a/node_modules/through/test/auto-destroy.js b/node_modules/through/test/auto-destroy.js
deleted file mode 100644
index 9a8fd00..0000000
--- a/node_modules/through/test/auto-destroy.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var test = require('tape')
-var through = require('../')
-
-// must emit end before close.
-
-test('end before close', function (assert) {
-  var ts = through()
-  ts.autoDestroy = false
-  var ended = false, closed = false
-
-  ts.on('end', function () {
-    assert.ok(!closed)
-    ended = true
-  })
-  ts.on('close', function () {
-    assert.ok(ended)
-    closed = true
-  })
-
-  ts.write(1)
-  ts.write(2)
-  ts.write(3)
-  ts.end()
-  assert.ok(ended)
-  assert.notOk(closed)
-  ts.destroy()
-  assert.ok(closed)
-  assert.end()
-})
-
diff --git a/node_modules/through/test/buffering.js b/node_modules/through/test/buffering.js
deleted file mode 100644
index b0084bf..0000000
--- a/node_modules/through/test/buffering.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var test = require('tape')
-var through = require('../')
-
-// must emit end before close.
-
-test('buffering', function(assert) {
-  var ts = through(function (data) {
-    this.queue(data)
-  }, function () {
-    this.queue(null)
-  })
-
-  var ended = false,  actual = []
-
-  ts.on('data', actual.push.bind(actual))
-  ts.on('end', function () {
-    ended = true
-  })
-
-  ts.write(1)
-  ts.write(2)
-  ts.write(3)
-  assert.deepEqual(actual, [1, 2, 3])
-  ts.pause()
-  ts.write(4)
-  ts.write(5)
-  ts.write(6)
-  assert.deepEqual(actual, [1, 2, 3])
-  ts.resume()
-  assert.deepEqual(actual, [1, 2, 3, 4, 5, 6])
-  ts.pause()
-  ts.end()
-  assert.ok(!ended)
-  ts.resume()
-  assert.ok(ended)
-  assert.end()
-})
-
-test('buffering has data in queue, when ends', function (assert) {
-
-  /*
-   * If stream ends while paused with data in the queue,
-   * stream should still emit end after all data is written
-   * on resume.
-   */
-
-  var ts = through(function (data) {
-    this.queue(data)
-  }, function () {
-    this.queue(null)
-  })
-
-  var ended = false,  actual = []
-
-  ts.on('data', actual.push.bind(actual))
-  ts.on('end', function () {
-    ended = true
-  })
-
-  ts.pause()
-  ts.write(1)
-  ts.write(2)
-  ts.write(3)
-  ts.end()
-  assert.deepEqual(actual, [], 'no data written yet, still paused')
-  assert.ok(!ended, 'end not emitted yet, still paused')
-  ts.resume()
-  assert.deepEqual(actual, [1, 2, 3], 'resumed, all data should be delivered')
-  assert.ok(ended, 'end should be emitted once all data was delivered')
-  assert.end();
-})
diff --git a/node_modules/through/test/end.js b/node_modules/through/test/end.js
deleted file mode 100644
index fa113f5..0000000
--- a/node_modules/through/test/end.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var test = require('tape')
-var through = require('../')
-
-// must emit end before close.
-
-test('end before close', function (assert) {
-  var ts = through()
-  var ended = false, closed = false
-
-  ts.on('end', function () {
-    assert.ok(!closed)
-    ended = true
-  })
-  ts.on('close', function () {
-    assert.ok(ended)
-    closed = true
-  })
-
-  ts.write(1)
-  ts.write(2)
-  ts.write(3)
-  ts.end()
-  assert.ok(ended)
-  assert.ok(closed)
-  assert.end()
-})
-
-test('end only once', function (t) {
-
-  var ts = through()
-  var ended = false, closed = false
-
-  ts.on('end', function () {
-    t.equal(ended, false)
-    ended = true
-  })
-
-  ts.queue(null)
-  ts.queue(null)
-  ts.queue(null)
-
-  ts.resume()
-
-  t.end()
-})
diff --git a/node_modules/through/test/index.js b/node_modules/through/test/index.js
deleted file mode 100644
index 96da82f..0000000
--- a/node_modules/through/test/index.js
+++ /dev/null
@@ -1,133 +0,0 @@
-
-var test = require('tape')
-var spec = require('stream-spec')
-var through = require('../')
-
-/*
-  I'm using these two functions, and not streams and pipe
-  so there is less to break. if this test fails it must be
-  the implementation of _through_
-*/
-
-function write(array, stream) {
-  array = array.slice()
-  function next() {
-    while(array.length)
-      if(stream.write(array.shift()) === false)
-        return stream.once('drain', next)
-    
-    stream.end()
-  }
-
-  next()
-}
-
-function read(stream, callback) {
-  var actual = []
-  stream.on('data', function (data) {
-    actual.push(data)
-  })
-  stream.once('end', function () {
-    callback(null, actual)
-  })
-  stream.once('error', function (err) {
-    callback(err)
-  })
-}
-
-test('simple defaults', function(assert) {
-
-  var l = 1000
-    , expected = []
-
-  while(l--) expected.push(l * Math.random())
-
-  var t = through()
-  var s = spec(t).through().pausable()
-
-  read(t, function (err, actual) {
-    assert.ifError(err)
-    assert.deepEqual(actual, expected)
-    assert.end()
-  })
-
-  t.on('close', s.validate)
-
-  write(expected, t)
-});
-
-test('simple functions', function(assert) {
-
-  var l = 1000
-    , expected = [] 
-
-  while(l--) expected.push(l * Math.random())
-
-  var t = through(function (data) {
-      this.emit('data', data*2)
-    }) 
-  var s = spec(t).through().pausable()
-      
-
-  read(t, function (err, actual) {
-    assert.ifError(err)
-    assert.deepEqual(actual, expected.map(function (data) {
-      return data*2
-    }))
-    assert.end()
-  })
-
-  t.on('close', s.validate)
-
-  write(expected, t)
-})
-
-test('pauses', function(assert) {
-
-  var l = 1000
-    , expected = [] 
-
-  while(l--) expected.push(l) //Math.random())
-
-  var t = through()    
- 
-  var s = spec(t)
-      .through()
-      .pausable()
-
-  t.on('data', function () {
-    if(Math.random() > 0.1) return
-    t.pause()
-    process.nextTick(function () {
-      t.resume()
-    })
-  })
-
-  read(t, function (err, actual) {
-    assert.ifError(err)
-    assert.deepEqual(actual, expected)
-  })
-
-  t.on('close', function () {
-    s.validate()
-    assert.end()
-  })
-
-  write(expected, t)
-})
-
-test('does not soft-end on `undefined`', function(assert) {
-  var stream = through()
-    , count = 0
-
-  stream.on('data', function (data) {
-    count++
-  })
-
-  stream.write(undefined)
-  stream.write(undefined)
-
-  assert.equal(count, 2)
-
-  assert.end()
-})
diff --git a/node_modules/tmp/LICENSE b/node_modules/tmp/LICENSE
deleted file mode 100644
index 72418bd..0000000
--- a/node_modules/tmp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 KARASZI István
-
-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.
diff --git a/node_modules/tmp/README.md b/node_modules/tmp/README.md
deleted file mode 100644
index 810b048..0000000
--- a/node_modules/tmp/README.md
+++ /dev/null
@@ -1,314 +0,0 @@
-# Tmp
-
-A simple temporary file and directory creator for [node.js.][1]
-
-[![Build Status](https://travis-ci.org/raszi/node-tmp.svg?branch=master)](https://travis-ci.org/raszi/node-tmp)
-[![Dependencies](https://david-dm.org/raszi/node-tmp.svg)](https://david-dm.org/raszi/node-tmp)
-[![npm version](https://badge.fury.io/js/tmp.svg)](https://badge.fury.io/js/tmp)
-[![API documented](https://img.shields.io/badge/API-documented-brightgreen.svg)](https://raszi.github.io/node-tmp/)
-[![Known Vulnerabilities](https://snyk.io/test/npm/tmp/badge.svg)](https://snyk.io/test/npm/tmp)
-
-## About
-
-This is a [widely used library][2] to create temporary files and directories
-in a [node.js][1] environment.
-
-Tmp offers both an asynchronous and a synchronous API. For all API calls, all
-the parameters are optional. There also exists a promisified version of the
-API, see (5) under references below.
-
-Tmp uses crypto for determining random file names, or, when using templates,
-a six letter random identifier. And just in case that you do not have that much
-entropy left on your system, Tmp will fall back to pseudo random numbers.
-
-You can set whether you want to remove the temporary file on process exit or
-not, and the destination directory can also be set.
-
-## How to install
-
-```bash
-npm install tmp
-```
-
-## Usage
-
-Please also check [API docs][4].
-
-### Asynchronous file creation
-
-Simple temporary file creation, the file will be closed and unlinked on process exit.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file(function _tempFileCreated(err, path, fd, cleanupCallback) {
-  if (err) throw err;
-
-  console.log('File: ', path);
-  console.log('Filedescriptor: ', fd);
-  
-  // If we don't need the file anymore we could manually call the cleanupCallback
-  // But that is not necessary if we didn't pass the keep option because the library
-  // will clean after itself.
-  cleanupCallback();
-});
-```
-
-### Synchronous file creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.fileSync();
-console.log('File: ', tmpobj.name);
-console.log('Filedescriptor: ', tmpobj.fd);
-  
-// If we don't need the file anymore we could manually call the removeCallback
-// But that is not necessary if we didn't pass the keep option because the library
-// will clean after itself.
-tmpobj.removeCallback();
-```
-
-Note that this might throw an exception if either the maximum limit of retries
-for creating a temporary name fails, or, in case that you do not have the permission
-to write to the directory where the temporary file should be created in.
-
-### Asynchronous directory creation
-
-Simple temporary directory creation, it will be removed on process exit.
-
-If the directory still contains items on process exit, then it won't be removed.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir(function _tempDirCreated(err, path, cleanupCallback) {
-  if (err) throw err;
-
-  console.log('Dir: ', path);
-  
-  // Manual cleanup
-  cleanupCallback();
-});
-```
-
-If you want to cleanup the directory even when there are entries in it, then
-you can pass the `unsafeCleanup` option when creating it.
-
-### Synchronous directory creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync();
-console.log('Dir: ', tmpobj.name);
-// Manual cleanup
-tmpobj.removeCallback();
-```
-
-Note that this might throw an exception if either the maximum limit of retries
-for creating a temporary name fails, or, in case that you do not have the permission
-to write to the directory where the temporary directory should be created in.
-
-### Asynchronous filename generation
-
-It is possible with this library to generate a unique filename in the specified
-directory.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.tmpName(function _tempNameGenerated(err, path) {
-    if (err) throw err;
-
-    console.log('Created temporary filename: ', path);
-});
-```
-
-### Synchronous filename generation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var name = tmp.tmpNameSync();
-console.log('Created temporary filename: ', name);
-```
-
-## Advanced usage
-
-### Asynchronous file creation
-
-Creates a file with mode `0644`, prefix will be `prefix-` and postfix will be `.txt`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file({ mode: 0644, prefix: 'prefix-', postfix: '.txt' }, function _tempFileCreated(err, path, fd) {
-  if (err) throw err;
-
-  console.log('File: ', path);
-  console.log('Filedescriptor: ', fd);
-});
-```
-
-### Synchronous file creation
-
-A synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.fileSync({ mode: 0644, prefix: 'prefix-', postfix: '.txt' });
-console.log('File: ', tmpobj.name);
-console.log('Filedescriptor: ', tmpobj.fd);
-```
-
-### Controlling the Descriptor
-
-As a side effect of creating a unique file `tmp` gets a file descriptor that is
-returned to the user as the `fd` parameter.  The descriptor may be used by the
-application and is closed when the `removeCallback` is invoked.
-
-In some use cases the application does not need the descriptor, needs to close it
-without removing the file, or needs to remove the file without closing the
-descriptor.  Two options control how the descriptor is managed:
-
-* `discardDescriptor` - if `true` causes `tmp` to close the descriptor after the file
-  is created.  In this case the `fd` parameter is undefined.
-* `detachDescriptor` - if `true` causes `tmp` to return the descriptor in the `fd`
-  parameter, but it is the application's responsibility to close it when it is no
-  longer needed.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file({ discardDescriptor: true }, function _tempFileCreated(err, path, fd, cleanupCallback) {
-  if (err) throw err;
-  // fd will be undefined, allowing application to use fs.createReadStream(path)
-  // without holding an unused descriptor open.
-});
-```
-
-```javascript
-var tmp = require('tmp');
-
-tmp.file({ detachDescriptor: true }, function _tempFileCreated(err, path, fd, cleanupCallback) {
-  if (err) throw err;
-
-  cleanupCallback();
-  // Application can store data through fd here; the space used will automatically
-  // be reclaimed by the operating system when the descriptor is closed or program
-  // terminates.
-});
-```
-
-### Asynchronous directory creation
-
-Creates a directory with mode `0755`, prefix will be `myTmpDir_`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir({ mode: 0750, prefix: 'myTmpDir_' }, function _tempDirCreated(err, path) {
-  if (err) throw err;
-
-  console.log('Dir: ', path);
-});
-```
-
-### Synchronous directory creation
-
-Again, a synchronous version of the above.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync({ mode: 0750, prefix: 'myTmpDir_' });
-console.log('Dir: ', tmpobj.name);
-```
-
-### mkstemp like, asynchronously
-
-Creates a new temporary directory with mode `0700` and filename like `/tmp/tmp-nk2J1u`.
-
-```javascript
-var tmp = require('tmp');
-
-tmp.dir({ template: '/tmp/tmp-XXXXXX' }, function _tempDirCreated(err, path) {
-  if (err) throw err;
-
-  console.log('Dir: ', path);
-});
-```
-
-### mkstemp like, synchronously
-
-This will behave similarly to the asynchronous version.
-
-```javascript
-var tmp = require('tmp');
-
-var tmpobj = tmp.dirSync({ template: '/tmp/tmp-XXXXXX' });
-console.log('Dir: ', tmpobj.name);
-```
-
-### Asynchronous filename generation
-
-The `tmpName()` function accepts the `prefix`, `postfix`, `dir`, etc. parameters also:
-
-```javascript
-var tmp = require('tmp');
-
-tmp.tmpName({ template: '/tmp/tmp-XXXXXX' }, function _tempNameGenerated(err, path) {
-    if (err) throw err;
-
-    console.log('Created temporary filename: ', path);
-});
-```
-
-### Synchronous filename generation
-
-The `tmpNameSync()` function works similarly to `tmpName()`.
-
-```javascript
-var tmp = require('tmp');
-var tmpname = tmp.tmpNameSync({ template: '/tmp/tmp-XXXXXX' });
-console.log('Created temporary filename: ', tmpname);
-```
-
-## Graceful cleanup
-
-One may want to cleanup the temporary files even when an uncaught exception
-occurs. To enforce this, you can call the `setGracefulCleanup()` method:
-
-```javascript
-var tmp = require('tmp');
-
-tmp.setGracefulCleanup();
-```
-
-## Options
-
-All options are optional :)
-
-  * `mode`: the file mode to create with, it fallbacks to `0600` on file creation and `0700` on directory creation
-  * `prefix`: the optional prefix, fallbacks to `tmp-` if not provided
-  * `postfix`: the optional postfix, fallbacks to `.tmp` on file creation
-  * `template`: [`mkstemp`][3] like filename template, no default
-  * `dir`: the optional temporary directory, fallbacks to system default (guesses from environment)
-  * `tries`: how many times should the function try to get a unique filename before giving up, default `3`
-  * `keep`: signals that the temporary file or directory should not be deleted on exit, default is `false`, means delete
-    * Please keep in mind that it is recommended in this case to call the provided `cleanupCallback` function manually.
-  * `unsafeCleanup`: recursively removes the created temporary directory, even when it's not empty. default is `false`
-
-[1]: http://nodejs.org/
-[2]: https://www.npmjs.com/browse/depended/tmp
-[3]: http://www.kernel.org/doc/man-pages/online/pages/man3/mkstemp.3.html
-[4]: https://raszi.github.io/node-tmp/
-[5]: https://github.com/benjamingr/tmp-promise
diff --git a/node_modules/tmp/lib/tmp.js b/node_modules/tmp/lib/tmp.js
deleted file mode 100644
index 41b83db..0000000
--- a/node_modules/tmp/lib/tmp.js
+++ /dev/null
@@ -1,611 +0,0 @@
-/*!
- * Tmp
- *
- * Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
- *
- * MIT Licensed
- */
-
-/*
- * Module dependencies.
- */
-const fs = require('fs');
-const path = require('path');
-const crypto = require('crypto');
-const osTmpDir = require('os-tmpdir');
-const _c = process.binding('constants');
-
-/*
- * The working inner variables.
- */
-const
-  /**
-   * The temporary directory.
-   * @type {string}
-   */
-  tmpDir = osTmpDir(),
-
-  // the random characters to choose from
-  RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
-
-  TEMPLATE_PATTERN = /XXXXXX/,
-
-  DEFAULT_TRIES = 3,
-
-  CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),
-
-  EBADF = _c.EBADF || _c.os.errno.EBADF,
-  ENOENT = _c.ENOENT || _c.os.errno.ENOENT,
-
-  DIR_MODE = 448 /* 0o700 */,
-  FILE_MODE = 384 /* 0o600 */,
-
-  // this will hold the objects need to be removed on exit
-  _removeObjects = [];
-
-var
-  _gracefulCleanup = false,
-  _uncaughtException = false;
-
-/**
- * Random name generator based on crypto.
- * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
- *
- * @param {number} howMany
- * @returns {string} the generated random name
- * @private
- */
-function _randomChars(howMany) {
-  var
-    value = [],
-    rnd = null;
-
-  // make sure that we do not fail because we ran out of entropy
-  try {
-    rnd = crypto.randomBytes(howMany);
-  } catch (e) {
-    rnd = crypto.pseudoRandomBytes(howMany);
-  }
-
-  for (var i = 0; i < howMany; i++) {
-    value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
-  }
-
-  return value.join('');
-}
-
-/**
- * Checks whether the `obj` parameter is defined or not.
- *
- * @param {Object} obj
- * @returns {boolean} true if the object is undefined
- * @private
- */
-function _isUndefined(obj) {
-  return typeof obj === 'undefined';
-}
-
-/**
- * Parses the function arguments.
- *
- * This function helps to have optional arguments.
- *
- * @param {(Options|Function)} options
- * @param {Function} callback
- * @returns {Array} parsed arguments
- * @private
- */
-function _parseArguments(options, callback) {
-  if (typeof options == 'function') {
-    return [callback || {}, options];
-  }
-
-  if (_isUndefined(options)) {
-    return [{}, callback];
-  }
-
-  return [options, callback];
-}
-
-/**
- * Generates a new temporary name.
- *
- * @param {Object} opts
- * @returns {string} the new random name according to opts
- * @private
- */
-function _generateTmpName(opts) {
-  if (opts.name) {
-    return path.join(opts.dir || tmpDir, opts.name);
-  }
-
-  // mkstemps like template
-  if (opts.template) {
-    return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6));
-  }
-
-  // prefix and postfix
-  const name = [
-    opts.prefix || 'tmp-',
-    process.pid,
-    _randomChars(12),
-    opts.postfix || ''
-  ].join('');
-
-  return path.join(opts.dir || tmpDir, name);
-}
-
-/**
- * Gets a temporary file name.
- *
- * @param {(Options|tmpNameCallback)} options options or callback
- * @param {?tmpNameCallback} callback the callback function
- */
-function tmpName(options, callback) {
-  var
-    args = _parseArguments(options, callback),
-    opts = args[0],
-    cb = args[1],
-    tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES;
-
-  if (isNaN(tries) || tries < 0)
-    return cb(new Error('Invalid tries'));
-
-  if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
-    return cb(new Error('Invalid template provided'));
-
-  (function _getUniqueName() {
-    const name = _generateTmpName(opts);
-
-    // check whether the path exists then retry if needed
-    fs.stat(name, function (err) {
-      if (!err) {
-        if (tries-- > 0) return _getUniqueName();
-
-        return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));
-      }
-
-      cb(null, name);
-    });
-  }());
-}
-
-/**
- * Synchronous version of tmpName.
- *
- * @param {Object} options
- * @returns {string} the generated random name
- * @throws {Error} if the options are invalid or could not generate a filename
- */
-function tmpNameSync(options) {
-  var
-    args = _parseArguments(options),
-    opts = args[0],
-    tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES;
-
-  if (isNaN(tries) || tries < 0)
-    throw new Error('Invalid tries');
-
-  if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
-    throw new Error('Invalid template provided');
-
-  do {
-    const name = _generateTmpName(opts);
-    try {
-      fs.statSync(name);
-    } catch (e) {
-      return name;
-    }
-  } while (tries-- > 0);
-
-  throw new Error('Could not get a unique tmp filename, max tries reached');
-}
-
-/**
- * Creates and opens a temporary file.
- *
- * @param {(Options|fileCallback)} options the config options or the callback function
- * @param {?fileCallback} callback
- */
-function file(options, callback) {
-  var
-    args = _parseArguments(options, callback),
-    opts = args[0],
-    cb = args[1];
-
-  opts.postfix = (_isUndefined(opts.postfix)) ? '.tmp' : opts.postfix;
-
-  // gets a temporary filename
-  tmpName(opts, function _tmpNameCreated(err, name) {
-    if (err) return cb(err);
-
-    // create and open the file
-    fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
-      if (err) return cb(err);
-
-      if (opts.discardDescriptor) {
-        return fs.close(fd, function _discardCallback(err) {
-          if (err) {
-            // Low probability, and the file exists, so this could be
-            // ignored.  If it isn't we certainly need to unlink the
-            // file, and if that fails too its error is more
-            // important.
-            try {
-              fs.unlinkSync(name);
-            } catch (e) {
-              if (!isENOENT(e)) {
-                err = e;
-              }
-            }
-            return cb(err);
-          }
-          cb(null, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts));
-        });
-      }
-      if (opts.detachDescriptor) {
-        return cb(null, name, fd, _prepareTmpFileRemoveCallback(name, -1, opts));
-      }
-      cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
-    });
-  });
-}
-
-/**
- * Synchronous version of file.
- *
- * @param {Options} options
- * @returns {FileSyncObject} object consists of name, fd and removeCallback
- * @throws {Error} if cannot create a file
- */
-function fileSync(options) {
-  var
-    args = _parseArguments(options),
-    opts = args[0];
-
-  opts.postfix = opts.postfix || '.tmp';
-
-  const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;
-  const name = tmpNameSync(opts);
-  var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
-  if (opts.discardDescriptor) {
-    fs.closeSync(fd); 
-    fd = undefined;
-  }
-
-  return {
-    name: name,
-    fd: fd,
-    removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts)
-  };
-}
-
-/**
- * Removes files and folders in a directory recursively.
- *
- * @param {string} root
- * @private
- */
-function _rmdirRecursiveSync(root) {
-  const dirs = [root];
-
-  do {
-    var
-      dir = dirs.pop(),
-      deferred = false,
-      files = fs.readdirSync(dir);
-
-    for (var i = 0, length = files.length; i < length; i++) {
-      var
-        file = path.join(dir, files[i]),
-        stat = fs.lstatSync(file); // lstat so we don't recurse into symlinked directories
-
-      if (stat.isDirectory()) {
-        if (!deferred) {
-          deferred = true;
-          dirs.push(dir);
-        }
-        dirs.push(file);
-      } else {
-        fs.unlinkSync(file);
-      }
-    }
-
-    if (!deferred) {
-      fs.rmdirSync(dir);
-    }
-  } while (dirs.length !== 0);
-}
-
-/**
- * Creates a temporary directory.
- *
- * @param {(Options|dirCallback)} options the options or the callback function
- * @param {?dirCallback} callback
- */
-function dir(options, callback) {
-  var
-    args = _parseArguments(options, callback),
-    opts = args[0],
-    cb = args[1];
-
-  // gets a temporary filename
-  tmpName(opts, function _tmpNameCreated(err, name) {
-    if (err) return cb(err);
-
-    // create the directory
-    fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
-      if (err) return cb(err);
-
-      cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
-    });
-  });
-}
-
-/**
- * Synchronous version of dir.
- *
- * @param {Options} options
- * @returns {DirSyncObject} object consists of name and removeCallback
- * @throws {Error} if it cannot create a directory
- */
-function dirSync(options) {
-  var
-    args = _parseArguments(options),
-    opts = args[0];
-
-  const name = tmpNameSync(opts);
-  fs.mkdirSync(name, opts.mode || DIR_MODE);
-
-  return {
-    name: name,
-    removeCallback: _prepareTmpDirRemoveCallback(name, opts)
-  };
-}
-
-/**
- * Prepares the callback for removal of the temporary file.
- *
- * @param {string} name the path of the file
- * @param {number} fd file descriptor
- * @param {Object} opts
- * @returns {fileCallback}
- * @private
- */
-function _prepareTmpFileRemoveCallback(name, fd, opts) {
-  const removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
-    try {
-      if (0 <= fdPath[0]) {
-        fs.closeSync(fdPath[0]);
-      }
-    }
-    catch (e) {
-      // under some node/windows related circumstances, a temporary file
-      // may have not be created as expected or the file was already closed
-      // by the user, in which case we will simply ignore the error
-      if (!isEBADF(e) && !isENOENT(e)) {
-        // reraise any unanticipated error
-        throw e;
-      }
-    }
-    try {
-      fs.unlinkSync(fdPath[1]);
-    }
-    catch (e) {
-      if (!isENOENT(e)) {
-        // reraise any unanticipated error
-        throw e;
-      }
-    }
-  }, [fd, name]);
-
-  if (!opts.keep) {
-    _removeObjects.unshift(removeCallback);
-  }
-
-  return removeCallback;
-}
-
-/**
- * Prepares the callback for removal of the temporary directory.
- *
- * @param {string} name
- * @param {Object} opts
- * @returns {Function} the callback
- * @private
- */
-function _prepareTmpDirRemoveCallback(name, opts) {
-  const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs.rmdirSync.bind(fs);
-  const removeCallback = _prepareRemoveCallback(removeFunction, name);
-
-  if (!opts.keep) {
-    _removeObjects.unshift(removeCallback);
-  }
-
-  return removeCallback;
-}
-
-/**
- * Creates a guarded function wrapping the removeFunction call.
- *
- * @param {Function} removeFunction
- * @param {Object} arg
- * @returns {Function}
- * @private
- */
-function _prepareRemoveCallback(removeFunction, arg) {
-  var called = false;
-
-  return function _cleanupCallback(next) {
-    if (!called) {
-      const index = _removeObjects.indexOf(_cleanupCallback);
-      if (index >= 0) {
-        _removeObjects.splice(index, 1);
-      }
-
-      called = true;
-      removeFunction(arg);
-    }
-
-    if (next) next(null);
-  };
-}
-
-/**
- * The garbage collector.
- *
- * @private
- */
-function _garbageCollector() {
-  if (_uncaughtException && !_gracefulCleanup) {
-    return;
-  }
-
-  // the function being called removes itself from _removeObjects,
-  // loop until _removeObjects is empty
-  while (_removeObjects.length) {
-    try {
-      _removeObjects[0].call(null);
-    } catch (e) {
-      // already removed?
-    }
-  }
-}
-
-/**
- * Helper for testing against EBADF to compensate changes made to Node 7.x under Windows.
- */
-function isEBADF(error) {
-  return isExpectedError(error, -EBADF, 'EBADF');
-}
-
-/**
- * Helper for testing against ENOENT to compensate changes made to Node 7.x under Windows.
- */
-function isENOENT(error) {
-  return isExpectedError(error, -ENOENT, 'ENOENT');
-}
-
-/**
- * Helper to determine whether the expected error code matches the actual code and errno,
- * which will differ between the supported node versions.
- *
- * - Node >= 7.0:
- *   error.code {String}
- *   error.errno {String|Number} any numerical value will be negated
- *
- * - Node >= 6.0 < 7.0:
- *   error.code {String}
- *   error.errno {Number} negated
- *
- * - Node >= 4.0 < 6.0: introduces SystemError
- *   error.code {String}
- *   error.errno {Number} negated
- *
- * - Node >= 0.10 < 4.0:
- *   error.code {Number} negated
- *   error.errno n/a
- */
-function isExpectedError(error, code, errno) {
-  return error.code == code || error.code == errno;
-}
-
-/**
- * Sets the graceful cleanup.
- *
- * Also removes the created files and directories when an uncaught exception occurs.
- */
-function setGracefulCleanup() {
-  _gracefulCleanup = true;
-}
-
-const version = process.versions.node.split('.').map(function (value) {
-  return parseInt(value, 10);
-});
-
-if (version[0] === 0 && (version[1] < 9 || version[1] === 9 && version[2] < 5)) {
-  process.addListener('uncaughtException', function _uncaughtExceptionThrown(err) {
-    _uncaughtException = true;
-    _garbageCollector();
-
-    throw err;
-  });
-}
-
-process.addListener('exit', function _exit(code) {
-  if (code) _uncaughtException = true;
-  _garbageCollector();
-});
-
-/**
- * Configuration options.
- *
- * @typedef {Object} Options
- * @property {?number} tries the number of tries before give up the name generation
- * @property {?string} template the "mkstemp" like filename template
- * @property {?string} name fix name
- * @property {?string} dir the tmp directory to use
- * @property {?string} prefix prefix for the generated name
- * @property {?string} postfix postfix for the generated name
- */
-
-/**
- * @typedef {Object} FileSyncObject
- * @property {string} name the name of the file
- * @property {string} fd the file descriptor
- * @property {fileCallback} removeCallback the callback function to remove the file
- */
-
-/**
- * @typedef {Object} DirSyncObject
- * @property {string} name the name of the directory
- * @property {fileCallback} removeCallback the callback function to remove the directory
- */
-
-/**
- * @callback tmpNameCallback
- * @param {?Error} err the error object if anything goes wrong
- * @param {string} name the temporary file name
- */
-
-/**
- * @callback fileCallback
- * @param {?Error} err the error object if anything goes wrong
- * @param {string} name the temporary file name
- * @param {number} fd the file descriptor
- * @param {cleanupCallback} fn the cleanup callback function
- */
-
-/**
- * @callback dirCallback
- * @param {?Error} err the error object if anything goes wrong
- * @param {string} name the temporary file name
- * @param {cleanupCallback} fn the cleanup callback function
- */
-
-/**
- * Removes the temporary created file or directory.
- *
- * @callback cleanupCallback
- * @param {simpleCallback} [next] function to call after entry was removed
- */
-
-/**
- * Callback function for function composition.
- * @see {@link https://github.com/raszi/node-tmp/issues/57|raszi/node-tmp#57}
- *
- * @callback simpleCallback
- */
-
-// exporting all the needed methods
-module.exports.tmpdir = tmpDir;
-
-module.exports.dir = dir;
-module.exports.dirSync = dirSync;
-
-module.exports.file = file;
-module.exports.fileSync = fileSync;
-
-module.exports.tmpName = tmpName;
-module.exports.tmpNameSync = tmpNameSync;
-
-module.exports.setGracefulCleanup = setGracefulCleanup;
diff --git a/node_modules/tmp/package.json b/node_modules/tmp/package.json
deleted file mode 100644
index e8aaf3b..0000000
--- a/node_modules/tmp/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "name": "tmp",
-  "version": "0.0.33",
-  "description": "Temporary file and directory creator",
-  "author": "KARASZI István <github@spam.raszi.hu> (http://raszi.hu/)",
-  "keywords": [
-    "temporary",
-    "tmp",
-    "temp",
-    "tempdir",
-    "tempfile",
-    "tmpdir",
-    "tmpfile"
-  ],
-  "license": "MIT",
-  "repository": "raszi/node-tmp",
-  "homepage": "http://github.com/raszi/node-tmp",
-  "bugs": {
-    "url": "http://github.com/raszi/node-tmp/issues"
-  },
-  "engines": {
-    "node": ">=0.6.0"
-  },
-  "dependencies": {
-    "os-tmpdir": "~1.0.2"
-  },
-  "devDependencies": {
-    "vows": "~0.7.0"
-  },
-  "main": "lib/tmp.js",
-  "files": [
-    "lib/"
-  ],
-  "scripts": {
-    "test": "vows test/*-test.js",
-    "doc": "jsdoc -c .jsdoc.json"
-  }
-}
diff --git a/node_modules/tsconfig-paths/.nycrc.json b/node_modules/tsconfig-paths/.nycrc.json
new file mode 100644
index 0000000..08e0ea0
--- /dev/null
+++ b/node_modules/tsconfig-paths/.nycrc.json
@@ -0,0 +1,8 @@
+{
+  "include": ["src/**/*.{ts,tsx}"],
+  "exclude": ["src/register.ts"],
+  "extension": [".ts", ".tsx"],
+  "reporter": ["json"],
+  "sourceMap": true,
+  "all": true
+}
diff --git a/node_modules/tsconfig-paths/CHANGELOG.md b/node_modules/tsconfig-paths/CHANGELOG.md
new file mode 100644
index 0000000..03bdc18
--- /dev/null
+++ b/node_modules/tsconfig-paths/CHANGELOG.md
@@ -0,0 +1,307 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/)
+and this project adheres to [Semantic Versioning](http://semver.org/).
+
+## [Unreleased]
+
+## [3.8.0] - 2019-02-05
+
+### Added
+
+- Add option to avoid adding a match-all rule. See PR [#73](https://github.com/dividab/tsconfig-paths/pull/73) and issue [72](https://github.com/dividab/tsconfig-paths/issues/72). Thanks to [@Swatinem](https://github.com/Swatinem) for this addition!
+
+## [3.7.0] - 2018-11-11
+
+### Added
+
+- Allow cleanup of register(). See PR [#64](https://github.com/dividab/tsconfig-paths/pull/64) and issue [63](https://github.com/dividab/tsconfig-paths/issues/63). Thanks to [@TylorS](https://github.com/TylorS) for this addition!
+
+## [3.6.0] - 2018-09-10
+
+### Added
+
+- Prefer Node's core modules over file modules. See PR [#60](https://github.com/dividab/tsconfig-paths/pull/60) and issue [56](https://github.com/dividab/tsconfig-paths/issues/56). Thanks to @ljani for this addition!
+
+## [3.5.0] - 2018-07-28
+
+### Added
+
+- Add support for trailing commas in tsconfig.json (use JSON5 to parse). See issue [#48](https://github.com/dividab/tsconfig-paths/issues/48), and PR [#58](https://github.com/dividab/tsconfig-paths/pull/58). Thanks to [@jshado1](https://github.com/jshado1) for this addition!
+
+## [3.4.2] - 2018-06-30
+
+### Fixed
+
+- Do not resolve directories, only files, sse issue [#51](https://github.com/dividab/tsconfig-paths/issues/51).
+
+## [3.4.1] - 2018-06-24
+
+### Fixed
+
+- Ignore field name mappings in package.json files that are not paths of existing files [#46](https://github.com/dividab/tsconfig-paths/pull/45). Thanks to [@christoffer](https://github.com/christoffer) for this fix!
+
+## [3.4.0] - 2018-06-12
+
+### Added
+
+- Add support for providing a list of field names to try instead of just using "main", [#45](https://github.com/dividab/tsconfig-paths/pull/45). Thanks to [@christoffer-dropbox](https://github.com/christoffer-dropbox) for this addition!
+
+## [3.3.2] - 2018-05-07
+
+### Fixed
+
+- Adding json file extention to extends property, [#40](https://github.com/dividab/tsconfig-paths/pull/40). Thanks to [@cwhite-connectfirst](https://github.com/cwhite-connectfirst) for this fixing this!
+
+## [3.3.1] - 2018-04-17
+
+### Fixed
+
+- Fix project undefined error when calling register, [#37](https://github.com/dividab/tsconfig-paths/issues/37). Thanks to [@natedanner](https://github.com/natedanner) for this fixing this!
+
+## [3.3.0] - 2018-04-14
+
+### Added
+
+- Add possibility to indicate explicitly tsconfig location, [#35](https://github.com/dividab/tsconfig-paths/issues/35). Thanks to [@procopenco](https://github.com/procopenco) for this adding this!
+
+## [3.2.0] - 2018-03-31
+
+### Added
+
+- Added support for passing a filename as cwd, see issue [#31](https://github.com/dividab/tsconfig-paths/issues/31) and PR [#32](https://github.com/dividab/tsconfig-paths/pull/32). Thanks to [@amodm](https://github.com/amodm) for this adding this!
+
+## [3.1.3] - 2018-03-14
+
+### Fixed
+
+- Fix async recursion, see [#30](https://github.com/dividab/tsconfig-paths/pull/30). Thanks to [@Nayni](https://github.com/Nayni) for this fix!
+
+## [3.1.2] - 2018-03-13
+
+### Fixed
+
+- Fix a forgotten return when doneCallback is invoked, see [#29](https://github.com/dividab/tsconfig-paths/pull/29). Thanks to [@Nayni](https://github.com/Nayni) for this fix!
+
+## [3.1.1] - 2018-01-13
+
+### Fixed
+
+- Fix read json async when it does not exist
+
+## [3.1.0] - 2018-01-13
+
+### Added
+
+- Implement default async json reader function.
+
+## [3.0.0] - 2018-01-13
+
+### Changed
+
+- Remove parameter `absoluteSourceFileName` from the `MatchPath` and `matchFromAbsolutePaths` functions. It was not used internally.
+- `matchFromAbsolutePaths` now accepts a pre-sorted array of `MappingEntry`s instead of a dictionary. This was done so the sorting could be done once which should give better performance.
+
+### Added
+
+- `createMatchPathAsync`, creates an async version of the `MatchPath` function. Can be used for example by webpack plugins.
+- `matchFromAbsolutePathsAsync`, async version of `matchFromAbsolutePaths`.
+
+## [2.7.3]
+
+### Fixed
+
+- Only resolve path if tsconfig present [#25](https://github.com/dividab/tsconfig-paths/pull/25). Thanks to @nicoschoenmaker for the PR.
+
+## [2.7.2]
+
+### Fixed
+
+- Return absolute path to tsconfig.json.
+
+## [2.7.1]
+
+### Fixed
+
+- Remove left over console.log.
+
+## [2.7.0]
+
+### Added
+
+- Support `baseUrl` to exist in base tsconfig.json when using `extends`, see [#23](https://github.com/dividab/tsconfig-paths/issues/23).
+
+## [2.6.0]
+
+### Added
+
+- Add `baseUrl` and `configFileAbsolutePath` to the result of `loadConfig`.
+
+## [2.5.0]
+
+### Added
+
+- New function in Programmatic API `loadConfig`.
+
+## [2.4.3]
+
+### Fixed
+
+- Export MatchPth typing.
+
+## [2.4.2]
+
+### Fixed
+
+- Add missing types field in package.json.
+
+## [2.4.1]
+
+### Fixed
+
+- Include declaration files. Fixes [#22](https://github.com/dividab/tsconfig-paths/issues/22).
+
+## [2.4.0]
+
+### Changed
+
+- Removed dependency for package `tsconfig`.
+
+### Fixed
+
+- Support for config inheritance with `extends`. Fixes [#17](https://github.com/dividab/tsconfig-paths/issues/17).
+
+## [2.2.0]
+
+### Fixed
+
+- Fixed issue [#7](https://github.com/dividab/tsconfig-paths/issues/7).
+
+## [2.1.2]
+
+### Fixed
+
+- Fixed issue [#6](https://github.com/dividab/tsconfig-paths/issues/6).
+
+## [2.1.1]
+
+### Fixed
+
+- Fixed issue [#4](https://github.com/dividab/tsconfig-paths/issues/4)
+
+## [2.1.0]
+
+### Fixed
+
+- Fixed issue [#3](https://github.com/dividab/tsconfig-paths/issues/3)
+
+## [2.0.0]
+
+### Added
+
+- We now look at `process.env.TS_NODE_PROJECT`
+- Functionality to bootstrap tsconfig-paths. Documentation in [README](https://github.com/dividab/tsconfig-paths/blob/master/README.md)
+
+### Changed
+
+- Changed signature for `createMatchPath`. Now only takes absoluteUrl and paths.
+
+## [1.1.0]
+
+### Added
+
+- More explanation to readme.
+- Match all extensions in require.extensions.
+- Match longest pattern prefix first as typesript does.
+- Match file in main field of package.json.
+- Check for index files explicitly.
+
+## [1.0.0] - 2016-12-30
+
+- First stable release.
+
+## [0.4.0] - 2016-12-30
+
+### Changed
+
+- Renamed project to `tsocnfig-paths`.
+
+## [0.3.0] - 2016-12-30
+
+### Added
+
+- API documentation.
+- `createMatchPath` function.
+- `matchFromAbsolutePaths` function.
+
+### Removed
+
+- `findPath` function.
+
+## [0.2.1] - 2016-12-29
+
+### Fixed
+
+- `tsconfig-paths/register` was not available.
+
+## [0.2.0] - 2016-12-29
+
+### Fixed
+
+- Paths for files in sub-dirs.
+
+### Added
+
+- Programmatic use.
+
+## [0.1.2] - 2016-12-28
+
+### Fixed
+
+- Fixed wrong name of the package in README.
+- Add missing files on publish.
+
+## [0.1.1] - 2016-12-28
+
+### Added
+
+- Loading of tsconfig.
+- Example.
+- Publish scripts.
+
+## [0.1.0] - 2016-12-28
+
+- Initial version.
+
+[unreleased]: https://github.com/dividab/tsconfig-paths/compare/3.8.0...master
+[3.8.0]: https://github.com/dividab/tsconfig-paths/compare/3.7.0...3.8.0
+[3.7.0]: https://github.com/dividab/tsconfig-paths/compare/3.6.0...3.7.0
+[3.6.0]: https://github.com/dividab/tsconfig-paths/compare/3.5.0...3.6.0
+[3.5.0]: https://github.com/dividab/tsconfig-paths/compare/3.4.2...3.5.0
+[3.4.2]: https://github.com/dividab/tsconfig-paths/compare/3.4.1...3.4.2
+[3.4.1]: https://github.com/dividab/tsconfig-paths/compare/3.4.0...3.4.1
+[3.4.0]: https://github.com/dividab/tsconfig-paths/compare/3.3.2...3.4.0
+[3.3.2]: https://github.com/dividab/tsconfig-paths/compare/3.3.1...3.3.2
+[3.3.1]: https://github.com/dividab/tsconfig-paths/compare/3.3.0...3.3.1
+[3.3.0]: https://github.com/dividab/tsconfig-paths/compare/3.2.0...3.3.0
+[3.2.0]: https://github.com/dividab/tsconfig-paths/compare/3.1.3...3.2.0
+[3.1.3]: https://github.com/dividab/tsconfig-paths/compare/3.1.2...3.1.3
+[3.1.2]: https://github.com/dividab/tsconfig-paths/compare/3.1.1...3.1.2
+[3.1.1]: https://github.com/dividab/tsconfig-paths/compare/3.1.0...3.1.1
+[3.1.0]: https://github.com/dividab/tsconfig-paths/compare/3.0.0...3.1.0
+[3.0.0]: https://github.com/dividab/tsconfig-paths/compare/2.7.3...3.0.0
+[2.7.3]: https://github.com/dividab/tsconfig-paths/compare/2.7.2...2.7.3
+[2.7.2]: https://github.com/dividab/tsconfig-paths/compare/2.7.1...2.7.2
+[2.7.1]: https://github.com/dividab/tsconfig-paths/compare/2.7.0...2.7.1
+[2.7.0]: https://github.com/dividab/tsconfig-paths/compare/2.6.0...2.7.0
+[2.6.0]: https://github.com/dividab/tsconfig-paths/compare/2.5.0...2.6.0
+[2.5.0]: https://github.com/dividab/tsconfig-paths/compare/2.4.3...2.5.0
+[2.4.3]: https://github.com/dividab/tsconfig-paths/compare/2.4.2...2.4.3
+[2.4.2]: https://github.com/dividab/tsconfig-paths/compare/2.4.1...2.4.2
+[2.4.1]: https://github.com/dividab/tsconfig-paths/compare/2.4.0...2.4.1
+[2.4.0]: https://github.com/dividab/tsconfig-paths/compare/2.2.0...2.4.0
+[2.2.0]: https://github.com/dividab/tsconfig-paths/compare/2.1.2...2.2.0
+[2.1.2]: https://github.com/dividab/tsconfig-paths/compare/2.1.1...2.1.2
+[2.1.1]: https://github.com/dividab/tsconfig-paths/compare/2.1.0...2.1.1
diff --git a/node_modules/tsconfig-paths/LICENSE b/node_modules/tsconfig-paths/LICENSE
new file mode 100644
index 0000000..884c7e3
--- /dev/null
+++ b/node_modules/tsconfig-paths/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Jonas Kello
+
+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.
diff --git a/node_modules/tsconfig-paths/README.md b/node_modules/tsconfig-paths/README.md
new file mode 100644
index 0000000..491e637
--- /dev/null
+++ b/node_modules/tsconfig-paths/README.md
@@ -0,0 +1,231 @@
+# tsconfig-paths
+
+[![npm version][version-image]][version-url]
+[![travis build][travis-image]][travis-url]
+[![Coverage Status][codecov-image]][codecov-url]
+[![MIT license][license-image]][license-url]
+[![code style: prettier][prettier-image]][prettier-url]
+
+Use this to load modules whose location is specified in the `paths` section of `tsconfig.json`. Both loading at run-time and via API are supported.
+
+Typescript by default mimics the Node.js runtime resolution strategy of modules. But it also allows the use of [path mapping](https://www.typescriptlang.org/docs/handbook/module-resolution.html) which allows arbitrary module paths (that doesn't start with "/" or ".") to be specified and mapped to physical paths in the filesystem. The typescript compiler can resolve these paths from `tsconfig` so it will compile OK. But if you then try to execute the compiled files with node (or ts-node), it will only look in the `node_modules` folders all the way up to the root of the filesystem and thus will not find the modules specified by `paths` in `tsconfig`.
+
+If you require this package's `tsconfig-paths/register` module it will read the `paths` from `tsconfig.json` and convert node's module loading calls into to physcial file paths that node can load.
+
+## How to install
+
+```
+yarn add --dev tsconfig-paths
+```
+
+or
+
+```
+npm install --save-dev tsconfig-paths
+```
+
+## How to use
+
+### With node
+
+`node -r tsconfig-paths/register main.js`
+
+### With ts-node
+
+`ts-node -r tsconfig-paths/register main.ts`
+
+If `process.env.TS_NODE_PROJECT` is set it will be used to resolved tsconfig.json
+
+### With webpack
+
+For webpack please use the [tsconfig-paths-webpack-plugin](https://github.com/dividab/tsconfig-paths-webpack-plugin).
+
+### With mocha and ts-node
+
+As of Mocha >= 4.0.0 the `--compiler` was [deprecated](https://github.com/mochajs/mocha/wiki/compilers-deprecation). Instead `--require` should be used. You also have to specify a glob that includes `.ts` files because mocha looks after files with `.js` extension by default.
+
+```bash
+mocha -r ts-node/register -r tsconfig-paths/register "test/**/*.ts"
+```
+
+### With other commands
+
+As long as the command has something similar to a `--require` option that can load a module before it starts, tsconfig-paths should be able to work with it.
+
+## Bootstraping with explicit params
+
+If you want more granular control over tsconfig-paths you can bootstrap it. This can be useful if you for instance have compiled with `tsc` to another directory where `tsconfig.json` doesn't exists.
+
+```javascript
+const tsConfig = require("./tsconfig.json");
+const tsConfigPaths = require("tsconfig-paths");
+
+const baseUrl = "./"; // Either absolute or relative path. If relative it's resolved to current working directory.
+const cleanup = tsConfigPaths.register({
+  baseUrl,
+  paths: tsConfig.compilerOptions.paths
+});
+
+// When path registration is no longer needed
+cleanup();
+```
+
+Then run with:
+
+`node -r ./tsconfig-paths-bootstrap.js main.js`
+
+## Configuration Options
+
+You can set options by passing them before the script path, via programmatic usage or via environment variables.
+
+```bash
+ts-node --project customLocation/tsconfig.json -r tsconfig-paths/register "test/**/*.ts"
+```
+
+### CLI and Programmatic Options
+
+_Environment variable denoted in parentheses._
+
+- `-P, --project [path]` Path to TypeScript JSON project file (`TS_NODE_PROJECT`)
+
+## Config loading process
+
+1.  Use explicit params passed to register
+2.  Use `process.env.TS_NODE_PROJECT` to resolve tsConfig.json and the specified baseUrl and paths.
+3.  Resolves tsconfig.json from current working directory and the specified baseUrl and paths.
+
+## Programmatic use
+
+The public API consists of these functions:
+
+- [register](#register)
+- [loadConfig](#loadConfig)
+- [createMatchPath](#createMatchPath) / [createMatchPathAsync](#createMatchPathAsync)
+- [matchFromAbsolutePaths](#matchFromAbsolutePaths) / [matchFromAbsolutePathsAsync](#matchFromAbsolutePathsAsync)
+
+### register
+
+```typescript
+export interface ExplicitParams {
+  baseUrl: string;
+  paths: { [key: string]: Array<string> };
+  mainFields?: Array<string>;
+  addMatchAll?: boolean;
+}
+
+/**
+ * Installs a custom module load function that can adhere to paths in tsconfig.
+ */
+export function register(explicitParams: ExplicitParams): () => void;
+```
+
+This function will patch the node's module loading so it will look for modules in paths specified by tsconfig.json.
+A function is returned for you to reinstate Node's original module loading.
+
+### loadConfig
+
+```typescript
+export function loadConfig(cwd: string = process.cwd()): ConfigLoaderResult;
+
+export type ConfigLoaderResult =
+  | ConfigLoaderSuccessResult
+  | ConfigLoaderFailResult;
+
+export interface ConfigLoaderSuccessResult {
+  resultType: "success";
+  absoluteBaseUrl: string;
+  paths: { [key: string]: Array<string> };
+}
+
+export interface ConfigLoaderFailResult {
+  resultType: "failed";
+  message: string;
+}
+```
+
+This function loads the tsconfig.json. It will start searching from the specified `cwd` directory. Passing the tsconfig.json file directly instead of a directory also works.
+
+### createMatchPath
+
+```typescript
+/**
+ * Function that can match a path
+ */
+export interface MatchPath {
+  (
+    requestedModule: string,
+    readJson?: Filesystem.ReadJsonSync,
+    fileExists?: (name: string) => boolean,
+    extensions?: ReadonlyArray<string>
+  ): string | undefined;
+}
+
+/**
+ * Creates a function that can resolve paths according to tsconfig paths property.
+ * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.
+ * @param paths The paths as specified in tsconfig.
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @param addMatchAll Add a match-all "*" rule if none is present
+ * @returns a function that can resolve paths.
+ */
+export function createMatchPath(
+  absoluteBaseUrl: string,
+  paths: { [key: string]: Array<string> },
+  mainFields: string[] = ["main"],
+  addMatchAll: boolean = true
+): MatchPath {
+```
+
+The `createMatchPath` function will create a function that can match paths. It accepts `baseUrl` and `paths` directly as they are specified in tsconfig and will handle resolving paths to absolute form. The created function has the signare specified by the type `MatchPath` above.
+
+### matchFromAbsolutePaths
+
+```typescript
+/**
+ * Finds a path from tsconfig that matches a module load request.
+ * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.
+ * @param requestedModule The required module name.
+ * @param readJson Function that can read json from a path (useful for testing).
+ * @param fileExists Function that checks for existance of a file at a path (useful for testing).
+ * @param extensions File extensions to probe for (useful for testing).
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @returns the found path, or undefined if no path was found.
+ */
+export function matchFromAbsolutePaths(
+  absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,
+  requestedModule: string,
+  readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,
+  fileExists: Filesystem.FileExistsSync = Filesystem.fileExistsSync,
+  extensions: Array<string> = Object.keys(require.extensions),
+  mainFields: string[] = ["main"]
+): string | undefined {
+```
+
+This function is lower level and requries that the paths as already been resolved to absolute form and sorted in correct order into an array.
+
+### createMatchPathAsync
+
+This is the async version of `createMatchPath`. It has the same signature but with a callback parameter for the result.
+
+### matchFromAbsolutePathsAsync
+
+This is the async version of `matchFromAbsolutePaths`. It has the same signature but with a callback parameter for the result.
+
+## How to publish
+
+```
+yarn version --patch
+yarn version --minor
+yarn version --major
+```
+
+[version-image]: https://img.shields.io/npm/v/tsconfig-paths.svg?style=flat
+[version-url]: https://www.npmjs.com/package/tsconfig-paths
+[travis-image]: https://travis-ci.com/dividab/tsconfig-paths.svg?branch=master&style=flat
+[travis-url]: https://travis-ci.com/dividab/tsconfig-paths
+[codecov-image]: https://codecov.io/gh/dividab/tsconfig-paths/branch/master/graph/badge.svg
+[codecov-url]: https://codecov.io/gh/dividab/tsconfig-paths
+[license-image]: https://img.shields.io/github/license/dividab/tsconfig-paths.svg?style=flat
+[license-url]: https://opensource.org/licenses/MIT
+[prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg
+[prettier-url]: https://github.com/prettier/prettier
diff --git a/node_modules/tsconfig-paths/lib/config-loader.d.ts b/node_modules/tsconfig-paths/lib/config-loader.d.ts
new file mode 100644
index 0000000..537ac22
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/config-loader.d.ts
@@ -0,0 +1,33 @@
+import * as TsConfigLoader from "./tsconfig-loader";
+export interface ExplicitParams {
+    baseUrl: string;
+    paths: {
+        [key: string]: Array<string>;
+    };
+    mainFields?: Array<string>;
+    addMatchAll?: boolean;
+}
+export declare type TsConfigLoader = (params: TsConfigLoader.TsConfigLoaderParams) => TsConfigLoader.TsConfigLoaderResult;
+export interface ConfigLoaderParams {
+    cwd: string;
+    explicitParams?: ExplicitParams;
+    tsConfigLoader?: TsConfigLoader;
+}
+export interface ConfigLoaderSuccessResult {
+    resultType: "success";
+    configFileAbsolutePath: string;
+    baseUrl: string;
+    absoluteBaseUrl: string;
+    paths: {
+        [key: string]: Array<string>;
+    };
+    mainFields?: Array<string>;
+    addMatchAll?: boolean;
+}
+export interface ConfigLoaderFailResult {
+    resultType: "failed";
+    message: string;
+}
+export declare type ConfigLoaderResult = ConfigLoaderSuccessResult | ConfigLoaderFailResult;
+export declare function loadConfig(cwd?: string): ConfigLoaderResult;
+export declare function configLoader({ cwd, explicitParams, tsConfigLoader }: ConfigLoaderParams): ConfigLoaderResult;
diff --git a/node_modules/tsconfig-paths/lib/config-loader.js b/node_modules/tsconfig-paths/lib/config-loader.js
new file mode 100644
index 0000000..aa145b6
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/config-loader.js
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var TsConfigLoader = require("./tsconfig-loader");
+var path = require("path");
+var options_1 = require("./options");
+function loadConfig(cwd) {
+    if (cwd === void 0) { cwd = options_1.options.cwd; }
+    return configLoader({ cwd: cwd });
+}
+exports.loadConfig = loadConfig;
+function configLoader(_a) {
+    var cwd = _a.cwd, explicitParams = _a.explicitParams, _b = _a.tsConfigLoader, tsConfigLoader = _b === void 0 ? TsConfigLoader.tsConfigLoader : _b;
+    if (explicitParams) {
+        // tslint:disable-next-line:no-shadowed-variable
+        var absoluteBaseUrl_1 = path.isAbsolute(explicitParams.baseUrl)
+            ? explicitParams.baseUrl
+            : path.join(cwd, explicitParams.baseUrl);
+        return {
+            resultType: "success",
+            configFileAbsolutePath: "",
+            baseUrl: explicitParams.baseUrl,
+            absoluteBaseUrl: absoluteBaseUrl_1,
+            paths: explicitParams.paths,
+            mainFields: explicitParams.mainFields,
+            addMatchAll: explicitParams.addMatchAll
+        };
+    }
+    // Load tsconfig and create path matching function
+    var loadResult = tsConfigLoader({
+        cwd: cwd,
+        getEnv: function (key) { return process.env[key]; }
+    });
+    if (!loadResult.tsConfigPath) {
+        return {
+            resultType: "failed",
+            message: "Couldn't find tsconfig.json"
+        };
+    }
+    if (!loadResult.baseUrl) {
+        return {
+            resultType: "failed",
+            message: "Missing baseUrl in compilerOptions"
+        };
+    }
+    var tsConfigDir = path.dirname(loadResult.tsConfigPath);
+    var absoluteBaseUrl = path.join(tsConfigDir, loadResult.baseUrl);
+    return {
+        resultType: "success",
+        configFileAbsolutePath: loadResult.tsConfigPath,
+        baseUrl: loadResult.baseUrl,
+        absoluteBaseUrl: absoluteBaseUrl,
+        paths: loadResult.paths || {}
+    };
+}
+exports.configLoader = configLoader;
diff --git a/node_modules/tsconfig-paths/lib/filesystem.d.ts b/node_modules/tsconfig-paths/lib/filesystem.d.ts
new file mode 100644
index 0000000..44cfdae
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/filesystem.d.ts
@@ -0,0 +1,33 @@
+/**
+ * Typing for the fields of package.json we care about
+ */
+export interface PackageJson {
+    [key: string]: string;
+}
+/**
+ * A function that json from a file
+ */
+export interface ReadJsonSync {
+    (packageJsonPath: string): any | undefined;
+}
+export interface FileExistsSync {
+    (name: string): boolean;
+}
+export interface FileExistsAsync {
+    (path: string, callback: (err?: Error, exists?: boolean) => void): void;
+}
+export interface ReadJsonAsyncCallback {
+    (err?: Error, content?: any): void;
+}
+export interface ReadJsonAsync {
+    (path: string, callback: ReadJsonAsyncCallback): void;
+}
+export declare function fileExistsSync(path: string): boolean;
+/**
+ * Reads package.json from disk
+ * @param file Path to package.json
+ */
+export declare function readJsonFromDiskSync(packageJsonPath: string): any | undefined;
+export declare function readJsonFromDiskAsync(path: string, callback: (err?: Error, content?: any) => void): void;
+export declare function fileExistsAsync(path2: string, callback2: (err?: Error, exists?: boolean) => void): void;
+export declare function removeExtension(path: string): string;
diff --git a/node_modules/tsconfig-paths/lib/filesystem.js b/node_modules/tsconfig-paths/lib/filesystem.js
new file mode 100644
index 0000000..eb6397d
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/filesystem.js
@@ -0,0 +1,53 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var fs = require("fs");
+function fileExistsSync(path) {
+    try {
+        var stats = fs.statSync(path);
+        return stats.isFile();
+    }
+    catch (err) {
+        // If error, assume file did not exist
+        return false;
+    }
+}
+exports.fileExistsSync = fileExistsSync;
+/**
+ * Reads package.json from disk
+ * @param file Path to package.json
+ */
+// tslint:disable-next-line:no-any
+function readJsonFromDiskSync(packageJsonPath) {
+    if (!fs.existsSync(packageJsonPath)) {
+        return undefined;
+    }
+    return require(packageJsonPath);
+}
+exports.readJsonFromDiskSync = readJsonFromDiskSync;
+function readJsonFromDiskAsync(path, 
+// tslint:disable-next-line:no-any
+callback) {
+    fs.readFile(path, "utf8", function (err, result) {
+        // If error, assume file did not exist
+        if (err || !result) {
+            return callback();
+        }
+        var json = JSON.parse(result);
+        return callback(undefined, json);
+    });
+}
+exports.readJsonFromDiskAsync = readJsonFromDiskAsync;
+function fileExistsAsync(path2, callback2) {
+    fs.stat(path2, function (err, stats) {
+        if (err) {
+            // If error assume file does not exist
+            return callback2(undefined, false);
+        }
+        callback2(undefined, stats ? stats.isFile() : false);
+    });
+}
+exports.fileExistsAsync = fileExistsAsync;
+function removeExtension(path) {
+    return path.substring(0, path.lastIndexOf(".")) || path;
+}
+exports.removeExtension = removeExtension;
diff --git a/node_modules/tsconfig-paths/lib/index.d.ts b/node_modules/tsconfig-paths/lib/index.d.ts
new file mode 100644
index 0000000..02373e9
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/index.d.ts
@@ -0,0 +1,5 @@
+export { createMatchPath, matchFromAbsolutePaths, MatchPath } from "./match-path-sync";
+export { createMatchPathAsync, matchFromAbsolutePathsAsync, MatchPathAsync } from "./match-path-async";
+export { register } from "./register";
+export { loadConfig, ConfigLoaderResult, ConfigLoaderSuccessResult, ConfigLoaderFailResult } from "./config-loader";
+export { ReadJsonSync, ReadJsonAsync, FileExistsSync, FileExistsAsync } from "./filesystem";
diff --git a/node_modules/tsconfig-paths/lib/index.js b/node_modules/tsconfig-paths/lib/index.js
new file mode 100644
index 0000000..c08ca7f
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/index.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+// register is used from register.js in root dir
+var match_path_sync_1 = require("./match-path-sync");
+exports.createMatchPath = match_path_sync_1.createMatchPath;
+exports.matchFromAbsolutePaths = match_path_sync_1.matchFromAbsolutePaths;
+var match_path_async_1 = require("./match-path-async");
+exports.createMatchPathAsync = match_path_async_1.createMatchPathAsync;
+exports.matchFromAbsolutePathsAsync = match_path_async_1.matchFromAbsolutePathsAsync;
+var register_1 = require("./register");
+exports.register = register_1.register;
+var config_loader_1 = require("./config-loader");
+exports.loadConfig = config_loader_1.loadConfig;
diff --git a/node_modules/tsconfig-paths/lib/mapping-entry.d.ts b/node_modules/tsconfig-paths/lib/mapping-entry.d.ts
new file mode 100644
index 0000000..35669f7
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/mapping-entry.d.ts
@@ -0,0 +1,17 @@
+export interface MappingEntry {
+    readonly pattern: string;
+    readonly paths: ReadonlyArray<string>;
+}
+export interface Paths {
+    readonly [key: string]: ReadonlyArray<string>;
+}
+/**
+ * Converts an absolute baseUrl and paths to an array of absolute mapping entries.
+ * The array is sorted by longest prefix.
+ * Having an array with entries allows us to keep a sorting order rather than
+ * sort by keys each time we use the mappings.
+ * @param absoluteBaseUrl
+ * @param paths
+ * @param addMatchAll
+ */
+export declare function getAbsoluteMappingEntries(absoluteBaseUrl: string, paths: Paths, addMatchAll: boolean): ReadonlyArray<MappingEntry>;
diff --git a/node_modules/tsconfig-paths/lib/mapping-entry.js b/node_modules/tsconfig-paths/lib/mapping-entry.js
new file mode 100644
index 0000000..a8762f7
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/mapping-entry.js
@@ -0,0 +1,51 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var path = require("path");
+/**
+ * Converts an absolute baseUrl and paths to an array of absolute mapping entries.
+ * The array is sorted by longest prefix.
+ * Having an array with entries allows us to keep a sorting order rather than
+ * sort by keys each time we use the mappings.
+ * @param absoluteBaseUrl
+ * @param paths
+ * @param addMatchAll
+ */
+function getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll) {
+    // Resolve all paths to absolute form once here, and sort them by
+    // longest prefix once here, this saves time on each request later.
+    // We need to put them in an array to preseve the sorting order.
+    var sortedKeys = sortByLongestPrefix(Object.keys(paths));
+    var absolutePaths = [];
+    for (var _i = 0, sortedKeys_1 = sortedKeys; _i < sortedKeys_1.length; _i++) {
+        var key = sortedKeys_1[_i];
+        absolutePaths.push({
+            pattern: key,
+            paths: paths[key].map(function (pathToResolve) {
+                return path.join(absoluteBaseUrl, pathToResolve);
+            })
+        });
+    }
+    // If there is no match-all path specified in the paths section of tsconfig, then try to match
+    // all paths relative to baseUrl, this is how typescript works.
+    if (!paths["*"] && addMatchAll) {
+        absolutePaths.push({
+            pattern: "*",
+            paths: [absoluteBaseUrl.replace(/\/$/, "") + "/*"]
+        });
+    }
+    return absolutePaths;
+}
+exports.getAbsoluteMappingEntries = getAbsoluteMappingEntries;
+/**
+ * Sort path patterns.
+ * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.
+ */
+function sortByLongestPrefix(arr) {
+    return arr
+        .concat()
+        .sort(function (a, b) { return getPrefixLength(b) - getPrefixLength(a); });
+}
+function getPrefixLength(pattern) {
+    var prefixLength = pattern.indexOf("*");
+    return pattern.substr(0, prefixLength).length;
+}
diff --git a/node_modules/tsconfig-paths/lib/match-path-async.d.ts b/node_modules/tsconfig-paths/lib/match-path-async.d.ts
new file mode 100644
index 0000000..c199f9f
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/match-path-async.d.ts
@@ -0,0 +1,21 @@
+import * as MappingEntry from "./mapping-entry";
+import * as Filesystem from "./filesystem";
+/**
+ * Function that can match a path async
+ */
+export interface MatchPathAsync {
+    (requestedModule: string, readJson: Filesystem.ReadJsonAsync | undefined, fileExists: Filesystem.FileExistsAsync | undefined, extensions: ReadonlyArray<string> | undefined, callback: MatchPathAsyncCallback): void;
+}
+export interface MatchPathAsyncCallback {
+    (err?: Error, path?: string): void;
+}
+/**
+ * See the sync version for docs.
+ */
+export declare function createMatchPathAsync(absoluteBaseUrl: string, paths: {
+    [key: string]: Array<string>;
+}, mainFields?: string[], addMatchAll?: boolean): MatchPathAsync;
+/**
+ * See the sync version for docs.
+ */
+export declare function matchFromAbsolutePathsAsync(absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>, requestedModule: string, readJson: Filesystem.ReadJsonAsync | undefined, fileExists: Filesystem.FileExistsAsync | undefined, extensions: ReadonlyArray<string> | undefined, callback: MatchPathAsyncCallback, mainFields?: string[]): void;
diff --git a/node_modules/tsconfig-paths/lib/match-path-async.js b/node_modules/tsconfig-paths/lib/match-path-async.js
new file mode 100644
index 0000000..511cfb7
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/match-path-async.js
@@ -0,0 +1,113 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var path = require("path");
+var TryPath = require("./try-path");
+var MappingEntry = require("./mapping-entry");
+var Filesystem = require("./filesystem");
+/**
+ * See the sync version for docs.
+ */
+function createMatchPathAsync(absoluteBaseUrl, paths, mainFields, addMatchAll) {
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    if (addMatchAll === void 0) { addMatchAll = true; }
+    var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
+    return function (requestedModule, readJson, fileExists, extensions, callback) {
+        return matchFromAbsolutePathsAsync(absolutePaths, requestedModule, readJson, fileExists, extensions, callback, mainFields);
+    };
+}
+exports.createMatchPathAsync = createMatchPathAsync;
+/**
+ * See the sync version for docs.
+ */
+function matchFromAbsolutePathsAsync(absolutePathMappings, requestedModule, readJson, fileExists, extensions, callback, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskAsync; }
+    if (fileExists === void 0) { fileExists = Filesystem.fileExistsAsync; }
+    if (extensions === void 0) { extensions = Object.keys(require.extensions); }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
+    if (!tryPaths) {
+        return callback();
+    }
+    findFirstExistingPath(tryPaths, readJson, fileExists, callback, 0, mainFields);
+}
+exports.matchFromAbsolutePathsAsync = matchFromAbsolutePathsAsync;
+function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index) {
+    if (index === void 0) { index = 0; }
+    if (index >= mainFields.length) {
+        return doneCallback(undefined, undefined);
+    }
+    var tryNext = function () {
+        return findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index + 1);
+    };
+    var mainFieldMapping = packageJson[mainFields[index]];
+    if (typeof mainFieldMapping !== "string") {
+        // Skip mappings that are not pointers to replacement files
+        return tryNext();
+    }
+    var mappedFilePath = path.join(path.dirname(packageJsonPath), mainFieldMapping);
+    fileExistsAsync(mappedFilePath, function (err, exists) {
+        if (err) {
+            return doneCallback(err);
+        }
+        if (exists) {
+            return doneCallback(undefined, mappedFilePath);
+        }
+        return tryNext();
+    });
+}
+// Recursive loop to probe for physical files
+function findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index, mainFields) {
+    if (index === void 0) { index = 0; }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPath = tryPaths[index];
+    if (tryPath.type === "file" ||
+        tryPath.type === "extension" ||
+        tryPath.type === "index") {
+        fileExists(tryPath.path, function (err, exists) {
+            if (err) {
+                return doneCallback(err);
+            }
+            if (exists) {
+                // Not sure why we don't just return the full path? Why strip it?
+                return doneCallback(undefined, TryPath.getStrippedPath(tryPath));
+            }
+            if (index === tryPaths.length - 1) {
+                return doneCallback();
+            }
+            // Continue with the next path
+            return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+        });
+    }
+    else if (tryPath.type === "package") {
+        readJson(tryPath.path, function (err, packageJson) {
+            if (err) {
+                return doneCallback(err);
+            }
+            if (packageJson) {
+                return findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists, function (mainFieldErr, mainFieldMappedFile) {
+                    if (mainFieldErr) {
+                        return doneCallback(mainFieldErr);
+                    }
+                    if (mainFieldMappedFile) {
+                        // Not sure why we don't just return the full path? Why strip it?
+                        return doneCallback(undefined, Filesystem.removeExtension(mainFieldMappedFile));
+                    }
+                    // No field in package json was a valid option. Continue with the next path.
+                    return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+                });
+            }
+            // This is async code, we need to return unconditionally, otherwise the code still falls
+            // through and keeps recursing. While this might work in general, libraries that use neo-async
+            // like Webpack will actually not allow you to call the same callback twice.
+            //
+            // An example of where this caused issues:
+            // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11
+            //
+            // Continue with the next path
+            return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+        });
+    }
+    else {
+        TryPath.exhaustiveTypeException(tryPath.type);
+    }
+}
diff --git a/node_modules/tsconfig-paths/lib/match-path-sync.d.ts b/node_modules/tsconfig-paths/lib/match-path-sync.d.ts
new file mode 100644
index 0000000..090d438
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/match-path-sync.d.ts
@@ -0,0 +1,30 @@
+import * as Filesystem from "./filesystem";
+import * as MappingEntry from "./mapping-entry";
+/**
+ * Function that can match a path
+ */
+export interface MatchPath {
+    (requestedModule: string, readJson?: Filesystem.ReadJsonSync, fileExists?: (name: string) => boolean, extensions?: ReadonlyArray<string>): string | undefined;
+}
+/**
+ * Creates a function that can resolve paths according to tsconfig paths property.
+ * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.
+ * @param paths The paths as specified in tsconfig.
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @param addMatchAll Add a match-all "*" rule if none is present
+ * @returns a function that can resolve paths.
+ */
+export declare function createMatchPath(absoluteBaseUrl: string, paths: {
+    [key: string]: Array<string>;
+}, mainFields?: string[], addMatchAll?: boolean): MatchPath;
+/**
+ * Finds a path from tsconfig that matches a module load request.
+ * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.
+ * @param requestedModule The required module name.
+ * @param readJson Function that can read json from a path (useful for testing).
+ * @param fileExists Function that checks for existance of a file at a path (useful for testing).
+ * @param extensions File extensions to probe for (useful for testing).
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @returns the found path, or undefined if no path was found.
+ */
+export declare function matchFromAbsolutePaths(absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>, requestedModule: string, readJson?: Filesystem.ReadJsonSync, fileExists?: Filesystem.FileExistsSync, extensions?: Array<string>, mainFields?: string[]): string | undefined;
diff --git a/node_modules/tsconfig-paths/lib/match-path-sync.js b/node_modules/tsconfig-paths/lib/match-path-sync.js
new file mode 100644
index 0000000..b701337
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/match-path-sync.js
@@ -0,0 +1,87 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var path = require("path");
+var Filesystem = require("./filesystem");
+var MappingEntry = require("./mapping-entry");
+var TryPath = require("./try-path");
+/**
+ * Creates a function that can resolve paths according to tsconfig paths property.
+ * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.
+ * @param paths The paths as specified in tsconfig.
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @param addMatchAll Add a match-all "*" rule if none is present
+ * @returns a function that can resolve paths.
+ */
+function createMatchPath(absoluteBaseUrl, paths, mainFields, addMatchAll) {
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    if (addMatchAll === void 0) { addMatchAll = true; }
+    var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
+    return function (requestedModule, readJson, fileExists, extensions) {
+        return matchFromAbsolutePaths(absolutePaths, requestedModule, readJson, fileExists, extensions, mainFields);
+    };
+}
+exports.createMatchPath = createMatchPath;
+/**
+ * Finds a path from tsconfig that matches a module load request.
+ * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.
+ * @param requestedModule The required module name.
+ * @param readJson Function that can read json from a path (useful for testing).
+ * @param fileExists Function that checks for existance of a file at a path (useful for testing).
+ * @param extensions File extensions to probe for (useful for testing).
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @returns the found path, or undefined if no path was found.
+ */
+function matchFromAbsolutePaths(absolutePathMappings, requestedModule, readJson, fileExists, extensions, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskSync; }
+    if (fileExists === void 0) { fileExists = Filesystem.fileExistsSync; }
+    if (extensions === void 0) { extensions = Object.keys(require.extensions); }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
+    if (!tryPaths) {
+        return undefined;
+    }
+    return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);
+}
+exports.matchFromAbsolutePaths = matchFromAbsolutePaths;
+function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExists) {
+    for (var index = 0; index < mainFields.length; index++) {
+        var mainFieldName = mainFields[index];
+        var candidateMapping = packageJson[mainFieldName];
+        if (candidateMapping && typeof candidateMapping === "string") {
+            var candidateFilePath = path.join(path.dirname(packageJsonPath), candidateMapping);
+            if (fileExists(candidateFilePath)) {
+                return candidateFilePath;
+            }
+        }
+    }
+    return undefined;
+}
+function findFirstExistingPath(tryPaths, readJson, fileExists, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskSync; }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    for (var _i = 0, tryPaths_1 = tryPaths; _i < tryPaths_1.length; _i++) {
+        var tryPath = tryPaths_1[_i];
+        if (tryPath.type === "file" ||
+            tryPath.type === "extension" ||
+            tryPath.type === "index") {
+            if (fileExists(tryPath.path)) {
+                // Not sure why we don't just return the full path? Why strip it?
+                return TryPath.getStrippedPath(tryPath);
+            }
+        }
+        else if (tryPath.type === "package") {
+            var packageJson = readJson(tryPath.path);
+            if (packageJson) {
+                var mainFieldMappedFile = findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists);
+                if (mainFieldMappedFile) {
+                    // Not sure why we don't just return the full path? Why strip it?
+                    return Filesystem.removeExtension(mainFieldMappedFile);
+                }
+            }
+        }
+        else {
+            TryPath.exhaustiveTypeException(tryPath.type);
+        }
+    }
+    return undefined;
+}
diff --git a/node_modules/tsconfig-paths/lib/options.d.ts b/node_modules/tsconfig-paths/lib/options.d.ts
new file mode 100644
index 0000000..dc7748e
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/options.d.ts
@@ -0,0 +1,4 @@
+export interface Options {
+    cwd: string;
+}
+export declare const options: Options;
diff --git a/node_modules/tsconfig-paths/lib/options.js b/node_modules/tsconfig-paths/lib/options.js
new file mode 100644
index 0000000..2581f9a
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/options.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var minimist = require("minimist");
+var argv = minimist(process.argv.slice(2), {
+    string: ["project"],
+    alias: {
+        project: ["P"]
+    }
+});
+var project = argv && argv.project;
+exports.options = {
+    cwd: project || process.cwd()
+};
diff --git a/node_modules/tsconfig-paths/lib/register.d.ts b/node_modules/tsconfig-paths/lib/register.d.ts
new file mode 100644
index 0000000..7487226
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/register.d.ts
@@ -0,0 +1,6 @@
+import { ExplicitParams } from "./config-loader";
+/**
+ * Installs a custom module load function that can adhere to paths in tsconfig.
+ * Returns a function to undo paths registration.
+ */
+export declare function register(explicitParams: ExplicitParams): () => void;
diff --git a/node_modules/tsconfig-paths/lib/register.js b/node_modules/tsconfig-paths/lib/register.js
new file mode 100644
index 0000000..c12b996
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/register.js
@@ -0,0 +1,82 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var match_path_sync_1 = require("./match-path-sync");
+var config_loader_1 = require("./config-loader");
+var options_1 = require("./options");
+var noOp = function () { return void 0; };
+function getCoreModules(builtinModules) {
+    builtinModules = builtinModules || [
+        "assert",
+        "buffer",
+        "child_process",
+        "cluster",
+        "crypto",
+        "dgram",
+        "dns",
+        "domain",
+        "events",
+        "fs",
+        "http",
+        "https",
+        "net",
+        "os",
+        "path",
+        "punycode",
+        "querystring",
+        "readline",
+        "stream",
+        "string_decoder",
+        "tls",
+        "tty",
+        "url",
+        "util",
+        "v8",
+        "vm",
+        "zlib"
+    ];
+    var coreModules = {};
+    for (var _i = 0, builtinModules_1 = builtinModules; _i < builtinModules_1.length; _i++) {
+        var module_1 = builtinModules_1[_i];
+        coreModules[module_1] = true;
+    }
+    return coreModules;
+}
+/**
+ * Installs a custom module load function that can adhere to paths in tsconfig.
+ * Returns a function to undo paths registration.
+ */
+function register(explicitParams) {
+    var configLoaderResult = config_loader_1.configLoader({
+        cwd: options_1.options.cwd,
+        explicitParams: explicitParams
+    });
+    if (configLoaderResult.resultType === "failed") {
+        console.warn(configLoaderResult.message + ". tsconfig-paths will be skipped");
+        return noOp;
+    }
+    var matchPath = match_path_sync_1.createMatchPath(configLoaderResult.absoluteBaseUrl, configLoaderResult.paths, configLoaderResult.mainFields, configLoaderResult.addMatchAll);
+    // Patch node's module loading
+    // tslint:disable-next-line:no-require-imports variable-name
+    var Module = require("module");
+    var originalResolveFilename = Module._resolveFilename;
+    var coreModules = getCoreModules(Module.builtinModules);
+    // tslint:disable-next-line:no-any
+    Module._resolveFilename = function (request, _parent) {
+        var isCoreModule = coreModules.hasOwnProperty(request);
+        if (!isCoreModule) {
+            var found = matchPath(request);
+            if (found) {
+                var modifiedArguments = [found].concat([].slice.call(arguments, 1)); // Passes all arguments. Even those that is not specified above.
+                // tslint:disable-next-line:no-invalid-this
+                return originalResolveFilename.apply(this, modifiedArguments);
+            }
+        }
+        // tslint:disable-next-line:no-invalid-this
+        return originalResolveFilename.apply(this, arguments);
+    };
+    return function () {
+        // Return node's module loading to original state.
+        Module._resolveFilename = originalResolveFilename;
+    };
+}
+exports.register = register;
diff --git a/node_modules/tsconfig-paths/lib/try-path.d.ts b/node_modules/tsconfig-paths/lib/try-path.d.ts
new file mode 100644
index 0000000..5130fc5
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/try-path.d.ts
@@ -0,0 +1,15 @@
+import { MappingEntry } from "./mapping-entry";
+export interface TryPath {
+    readonly type: "file" | "extension" | "index" | "package";
+    readonly path: string;
+}
+/**
+ * Builds a list of all physical paths to try by:
+ * 1. Check for file named exactly as request.
+ * 2. Check for files named as request ending in any of the extensions.
+ * 3. Check for file specified in package.json's main property.
+ * 4. Check for files named as request ending in "index" with any of the extensions.
+ */
+export declare function getPathsToTry(extensions: ReadonlyArray<string>, absolutePathMappings: ReadonlyArray<MappingEntry>, requestedModule: string): ReadonlyArray<TryPath> | undefined;
+export declare function getStrippedPath(tryPath: TryPath): string;
+export declare function exhaustiveTypeException(check: never): never;
diff --git a/node_modules/tsconfig-paths/lib/try-path.js b/node_modules/tsconfig-paths/lib/try-path.js
new file mode 100644
index 0000000..26d4b21
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/try-path.js
@@ -0,0 +1,91 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var path = require("path");
+var path_1 = require("path");
+var filesystem_1 = require("./filesystem");
+/**
+ * Builds a list of all physical paths to try by:
+ * 1. Check for file named exactly as request.
+ * 2. Check for files named as request ending in any of the extensions.
+ * 3. Check for file specified in package.json's main property.
+ * 4. Check for files named as request ending in "index" with any of the extensions.
+ */
+function getPathsToTry(extensions, absolutePathMappings, requestedModule) {
+    if (!absolutePathMappings ||
+        !requestedModule ||
+        requestedModule[0] === "." ||
+        requestedModule[0] === path.sep) {
+        return undefined;
+    }
+    var pathsToTry = [];
+    for (var _i = 0, absolutePathMappings_1 = absolutePathMappings; _i < absolutePathMappings_1.length; _i++) {
+        var entry = absolutePathMappings_1[_i];
+        var starMatch = entry.pattern === requestedModule
+            ? ""
+            : matchStar(entry.pattern, requestedModule);
+        if (starMatch !== undefined) {
+            var _loop_1 = function (physicalPathPattern) {
+                var physicalPath = physicalPathPattern.replace("*", starMatch);
+                pathsToTry.push({ type: "file", path: physicalPath });
+                pathsToTry.push.apply(pathsToTry, extensions.map(function (e) { return ({ type: "extension", path: physicalPath + e }); }));
+                pathsToTry.push({
+                    type: "package",
+                    path: path.join(physicalPath, "/package.json")
+                });
+                var indexPath = path.join(physicalPath, "/index");
+                pathsToTry.push.apply(pathsToTry, extensions.map(function (e) { return ({ type: "index", path: indexPath + e }); }));
+            };
+            for (var _a = 0, _b = entry.paths; _a < _b.length; _a++) {
+                var physicalPathPattern = _b[_a];
+                _loop_1(physicalPathPattern);
+            }
+        }
+    }
+    return pathsToTry.length === 0 ? undefined : pathsToTry;
+}
+exports.getPathsToTry = getPathsToTry;
+// Not sure why we don't just return the full found path?
+function getStrippedPath(tryPath) {
+    return tryPath.type === "index"
+        ? path_1.dirname(tryPath.path)
+        : tryPath.type === "file"
+            ? tryPath.path
+            : tryPath.type === "extension"
+                ? filesystem_1.removeExtension(tryPath.path)
+                : tryPath.type === "package"
+                    ? tryPath.path
+                    : exhaustiveTypeException(tryPath.type);
+}
+exports.getStrippedPath = getStrippedPath;
+function exhaustiveTypeException(check) {
+    throw new Error("Unknown type " + check);
+}
+exports.exhaustiveTypeException = exhaustiveTypeException;
+/**
+ * Matches pattern with a single star against search.
+ * Star must match at least one character to be considered a match.
+ * @param patttern for example "foo*"
+ * @param search for example "fooawesomebar"
+ * @returns the part of search that * matches, or undefined if no match.
+ */
+function matchStar(pattern, search) {
+    if (search.length < pattern.length) {
+        return undefined;
+    }
+    if (pattern === "*") {
+        return search;
+    }
+    var star = pattern.indexOf("*");
+    if (star === -1) {
+        return undefined;
+    }
+    var part1 = pattern.substring(0, star);
+    var part2 = pattern.substring(star + 1);
+    if (search.substr(0, star) !== part1) {
+        return undefined;
+    }
+    if (search.substr(search.length - part2.length) !== part2) {
+        return undefined;
+    }
+    return search.substr(star, search.length - part2.length);
+}
diff --git a/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts b/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts
new file mode 100644
index 0000000..bcf5ace
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts
@@ -0,0 +1,28 @@
+/**
+ * Typing for the parts of tsconfig that we care about
+ */
+export interface Tsconfig {
+    extends?: string;
+    compilerOptions?: {
+        baseUrl?: string;
+        paths?: {
+            [key: string]: Array<string>;
+        };
+        strict?: boolean;
+    };
+}
+export interface TsConfigLoaderResult {
+    tsConfigPath: string | undefined;
+    baseUrl: string | undefined;
+    paths: {
+        [key: string]: Array<string>;
+    } | undefined;
+}
+export interface TsConfigLoaderParams {
+    getEnv: (key: string) => string | undefined;
+    cwd: string;
+    loadSync?(cwd: string, filename?: string): TsConfigLoaderResult;
+}
+export declare function tsConfigLoader({ getEnv, cwd, loadSync }: TsConfigLoaderParams): TsConfigLoaderResult;
+export declare function walkForTsConfig(directory: string, existsSync?: (path: string) => boolean): string | undefined;
+export declare function loadTsconfig(configFilePath: string, existsSync?: (path: string) => boolean, readFileSync?: (filename: string) => string): Tsconfig | undefined;
diff --git a/node_modules/tsconfig-paths/lib/tsconfig-loader.js b/node_modules/tsconfig-paths/lib/tsconfig-loader.js
new file mode 100644
index 0000000..684247d
--- /dev/null
+++ b/node_modules/tsconfig-paths/lib/tsconfig-loader.js
@@ -0,0 +1,97 @@
+"use strict";
+var __assign = (this && this.__assign) || Object.assign || function(t) {
+    for (var s, i = 1, n = arguments.length; i < n; i++) {
+        s = arguments[i];
+        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+            t[p] = s[p];
+    }
+    return t;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var path = require("path");
+var fs = require("fs");
+// tslint:disable:no-require-imports
+var JSON5 = require("json5");
+var StripBom = require("strip-bom");
+function tsConfigLoader(_a) {
+    var getEnv = _a.getEnv, cwd = _a.cwd, _b = _a.loadSync, loadSync = _b === void 0 ? loadSyncDefault : _b;
+    var TS_NODE_PROJECT = getEnv("TS_NODE_PROJECT");
+    // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory
+    var loadResult = loadSync(cwd, TS_NODE_PROJECT);
+    return loadResult;
+}
+exports.tsConfigLoader = tsConfigLoader;
+function loadSyncDefault(cwd, filename) {
+    // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename
+    var configPath = resolveConfigPath(cwd, filename);
+    if (!configPath) {
+        return {
+            tsConfigPath: undefined,
+            baseUrl: undefined,
+            paths: undefined
+        };
+    }
+    var config = loadTsconfig(configPath);
+    return {
+        tsConfigPath: configPath,
+        baseUrl: config && config.compilerOptions && config.compilerOptions.baseUrl,
+        paths: config && config.compilerOptions && config.compilerOptions.paths
+    };
+}
+function resolveConfigPath(cwd, filename) {
+    if (filename) {
+        var absolutePath = fs.lstatSync(filename).isDirectory()
+            ? path.resolve(filename, "./tsconfig.json")
+            : path.resolve(cwd, filename);
+        return absolutePath;
+    }
+    if (fs.statSync(cwd).isFile()) {
+        return path.resolve(cwd);
+    }
+    var configAbsolutePath = walkForTsConfig(cwd);
+    return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;
+}
+function walkForTsConfig(directory, existsSync) {
+    if (existsSync === void 0) { existsSync = fs.existsSync; }
+    var configPath = path.join(directory, "./tsconfig.json");
+    if (existsSync(configPath)) {
+        return configPath;
+    }
+    var parentDirectory = path.join(directory, "../");
+    // If we reached the top
+    if (directory === parentDirectory) {
+        return undefined;
+    }
+    return walkForTsConfig(parentDirectory, existsSync);
+}
+exports.walkForTsConfig = walkForTsConfig;
+function loadTsconfig(configFilePath, existsSync, readFileSync) {
+    if (existsSync === void 0) { existsSync = fs.existsSync; }
+    if (readFileSync === void 0) { readFileSync = function (filename) {
+        return fs.readFileSync(filename, "utf8");
+    }; }
+    if (!existsSync(configFilePath)) {
+        return undefined;
+    }
+    var configString = readFileSync(configFilePath);
+    var cleanedJson = StripBom(configString);
+    var config = JSON5.parse(cleanedJson);
+    var extendedConfig = config.extends;
+    if (extendedConfig) {
+        if (typeof extendedConfig === "string" &&
+            extendedConfig.indexOf(".json") === -1) {
+            extendedConfig += ".json";
+        }
+        var currentDir = path.dirname(configFilePath);
+        var base = loadTsconfig(path.join(currentDir, extendedConfig), existsSync, readFileSync) || {};
+        // baseUrl should be interpreted as relative to the base tsconfig,
+        // but we need to update it so it is relative to the original tsconfig being loaded
+        if (base && base.compilerOptions && base.compilerOptions.baseUrl) {
+            var extendsDir = path.dirname(extendedConfig);
+            base.compilerOptions.baseUrl = path.join(extendsDir, base.compilerOptions.baseUrl);
+        }
+        return __assign({}, base, config, { compilerOptions: __assign({}, base.compilerOptions, config.compilerOptions) });
+    }
+    return config;
+}
+exports.loadTsconfig = loadTsconfig;
diff --git a/node_modules/tsconfig-paths/node_modules/.bin/json5 b/node_modules/tsconfig-paths/node_modules/.bin/json5
new file mode 120000
index 0000000..217f379
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/.bin/json5
@@ -0,0 +1 @@
+../json5/lib/cli.js
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/CHANGELOG.md b/node_modules/tsconfig-paths/node_modules/json5/CHANGELOG.md
new file mode 100644
index 0000000..be9e98d
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/CHANGELOG.md
@@ -0,0 +1,274 @@
+### v1.0.1 [[code][c1.0.1], [diff][d1.0.1]]
+
+[c1.0.1]: https://github.com/json5/json5/tree/v1.0.1
+[d1.0.1]: https://github.com/json5/json5/compare/v1.0.0...v1.0.1
+
+This release includes a bug fix and minor change.
+
+- Fix: `parse` throws on unclosed objects and arrays.
+
+- New: `package.json5` has been removed until an easier way to keep it in sync
+  with `package.json` is found.
+
+
+### v1.0.0 [[code][c1.0.0], [diff][d1.0.0]]
+
+[c1.0.0]: https://github.com/json5/json5/tree/v1.0.0
+[d1.0.0]: https://github.com/json5/json5/compare/v0.5.1...v1.0.0
+
+This release includes major internal changes and public API enhancements.
+
+- **Major** JSON5 officially supports Node.js v4 and later. Support for Node.js
+  v0.10 and v0.12 have been dropped.
+
+- New: Unicode property names and Unicode escapes in property names are
+  supported. ([#1])
+
+- New: `stringify` outputs trailing commas in objects and arrays when a `space`
+  option is provided. ([#66])
+
+- New: JSON5 allows line and paragraph separator characters (U+2028 and U+2029)
+  in strings in order to be compatible with JSON. However, ES5 does not allow
+  these characters in strings, so JSON5 gives a warning when they are parsed and
+  escapes them when they are stringified. ([#70])
+
+- New: `stringify` accepts an options object as its second argument. The
+  supported options are `replacer`, `space`, and a new `quote` option that
+  specifies the quote character used in strings. ([#71])
+
+- New: The CLI supports STDIN and STDOUT and adds `--out-file`, `--space`, and
+  `--validate` options. See `json5 --help` for more information. ([#72], [#84],
+  and [#108])
+
+- New: In addition to the white space characters space `\t`, `\v`, `\f`, `\n`,
+  `\r`, and `\xA0`, the additional white space characters `\u2028`, `\u2029`,
+  and all other characters in the Space Separator Unicode category are allowed.
+
+- New: In addition to the character escapes `\'`, `\"`, `\\`, `\b`, `\f`, `\n`,
+  `\r`, and `\t`, the additional character escapes `\v` and `\0`, hexadecimal
+  escapes like `\x0F`, and unnecessary escapes like `\a` are allowed in string
+  values and string property names.
+
+- New: `stringify` outputs strings with single quotes by default but
+  intelligently uses double quotes if there are more single quotes than double
+  quotes inside the string. (i.e. `stringify('Stay here.')` outputs
+  `'Stay here.'` while `stringify('Let\'s go.')` outputs `"Let's go."`)
+
+- New: When a character is not allowed in a string, `stringify` outputs a
+  character escape like `\t` when available, a hexadecimal escape like `\x0F`
+  when the Unicode code point is less than 256, or a Unicode character escape
+  like `\u01FF`, in that order.
+
+- New: `stringify` checks for a `toJSON5` method on objects and, if it exists,
+  stringifies its return value instead of the object. `toJSON5` overrides
+  `toJSON` if they both exist.
+
+- New: To `require` or `import` JSON5 files, use `require('json5/lib/register')`
+  or `import 'json5/lib/register'`. Previous versions used `json5/lib/require`,
+  which still exists for backward compatibility but is deprecated and will give
+  a warning.
+
+- New: To use JSON5 in browsers, use the file at `dist/index.js` or
+  `https://unpkg.com/json5@^1.0.0`.
+
+- Fix: `stringify` properly outputs `Infinity` and `NaN`. ([#67])
+
+- Fix: `isWord` no longer becomes a property of `JSON5` after calling
+  `stringify`. ([#68] and [#89])
+
+- Fix: `stringify` no longer throws when an object does not have a `prototype`.
+  ([#154])
+
+- Fix: `stringify` properly handles the `key` argument of `toJSON(key)` methods.
+  `toJSON5(key)` follows this pattern.
+
+- Fix: `stringify` accepts `Number` and `String` objects as its `space`
+  argument.
+
+- Fix: In addition to a function, `stringify` also accepts an array of keys to
+  include in the output as its `replacer` argument. Numbers, `Number` objects,
+  and `String` objects will be converted to a string if they are given as array
+  values.
+
+
+### v0.5.1 [[code][c0.5.1], [diff][d0.5.1]]
+
+[c0.5.1]: https://github.com/json5/json5/tree/v0.5.1
+[d0.5.1]: https://github.com/json5/json5/compare/v0.5.0...v0.5.1
+
+This release includes a minor fix for indentations when stringifying empty
+arrays.
+
+- Fix: Indents no longer appear in empty arrays when stringified. ([#134])
+
+
+### v0.5.0 [[code][c0.5.0], [diff][d0.5.0]]
+
+[c0.5.0]: https://github.com/json5/json5/tree/v0.5.0
+[d0.5.0]: https://github.com/json5/json5/compare/v0.4.0...v0.5.0
+
+This release includes major internal changes and public API enhancements.
+
+- **Major:** JSON5 officially supports Node.js v4 LTS and v5. Support for
+  Node.js v0.6 and v0.8 have been dropped, while support for v0.10 and v0.12
+  remain.
+
+- Fix: YUI Compressor no longer fails when compressing json5.js. ([#97])
+
+- New: `parse` and the CLI provide line and column numbers when displaying error
+  messages. ([#101]; awesome work by [@amb26].)
+
+
+### v0.4.0 [[code][c0.4.0], [diff][d0.4.0]]
+
+[c0.4.0]: https://github.com/json5/json5/tree/v0.4.0
+[d0.4.0]: https://github.com/json5/json5/compare/v0.2.0...v0.4.0
+
+Note that v0.3.0 was tagged, but never published to npm, so this v0.4.0
+changelog entry includes v0.3.0 features.
+
+This is a massive release that adds `stringify` support, among other things.
+
+- **Major:** `JSON5.stringify()` now exists!
+  This method is analogous to the native `JSON.stringify()`;
+  it just avoids quoting keys where possible.
+  See the [usage documentation](./README.md#usage) for more.
+  ([#32]; huge thanks and props [@aeisenberg]!)
+
+- New: `NaN` and `-NaN` are now allowed number literals.
+  ([#30]; thanks [@rowanhill].)
+
+- New: Duplicate object keys are now allowed; the last value is used.
+  This is the same behavior as JSON. ([#57]; thanks [@jordanbtucker].)
+
+- Fix: Properly handle various whitespace and newline cases now.
+  E.g. JSON5 now properly supports escaped CR and CRLF newlines in strings,
+  and JSON5 now accepts the same whitespace as JSON (stricter than ES5).
+  ([#58], [#60], and [#63]; thanks [@jordanbtucker].)
+
+- New: Negative hexadecimal numbers (e.g. `-0xC8`) are allowed again.
+  (They were disallowed in v0.2.0; see below.)
+  It turns out they *are* valid in ES5, so JSON5 supports them now too.
+  ([#36]; thanks [@jordanbtucker]!)
+
+
+### v0.2.0 [[code][c0.2.0], [diff][d0.2.0]]
+
+[c0.2.0]: https://github.com/json5/json5/tree/v0.2.0
+[d0.2.0]: https://github.com/json5/json5/compare/v0.1.0...v0.2.0
+
+This release fixes some bugs and adds some more utility features to help you
+express data more easily:
+
+- **Breaking:** Negative hexadecimal numbers (e.g. `-0xC8`) are rejected now.
+  While V8 (e.g. Chrome and Node) supported them, it turns out they're invalid
+  in ES5. This has been [fixed in V8][v8-hex-fix] (and by extension, Chrome
+  and Node), so JSON5 officially rejects them now, too. ([#36])
+
+- New: Trailing decimal points in decimal numbers are allowed again.
+  (They were disallowed in v0.1.0; see below.)
+  They're allowed by ES5, and differentiating between integers and floats may
+  make sense on some platforms. ([#16]; thanks [@Midar].)
+
+- New: `Infinity` and `-Infinity` are now allowed number literals.
+  ([#30]; thanks [@pepkin88].)
+
+- New: Plus signs (`+`) in front of numbers are now allowed, since it can
+  be helpful in some contexts to explicitly mark numbers as positive.
+  (E.g. when a property represents changes or deltas.)
+
+- Fix: unescaped newlines in strings are rejected now.
+  ([#24]; thanks [@Midar].)
+
+
+### v0.1.0 [[code][c0.1.0], [diff][d0.1.0]]
+
+[c0.1.0]: https://github.com/json5/json5/tree/v0.1.0
+[d0.1.0]: https://github.com/json5/json5/compare/v0.0.1...v0.1.0
+
+This release tightens JSON5 support and adds helpful utility features:
+
+- New: Support hexadecimal numbers. (Thanks [@MaxNanasy].)
+
+- Fix: Reject octal numbers properly now. Previously, they were accepted but
+  improperly parsed as base-10 numbers. (Thanks [@MaxNanasy].)
+
+- **Breaking:** Reject "noctal" numbers now (base-10 numbers that begin with a
+  leading zero). These are disallowed by both JSON5 and JSON, as well as by
+  ES5's strict mode. (Thanks [@MaxNanasy].)
+
+- New: Support leading decimal points in decimal numbers.
+  (Thanks [@MaxNanasy].)
+
+- **Breaking:** Reject trailing decimal points in decimal numbers now. These
+  are disallowed by both JSON5 and JSON. (Thanks [@MaxNanasy].)
+
+- **Breaking:** Reject omitted elements in arrays now. These are disallowed by
+  both JSON5 and JSON.
+
+- Fix: Throw proper `SyntaxError` instances on errors now.
+
+- New: Add Node.js `require()` hook. Register via `json5/lib/require`.
+
+- New: Add Node.js `json5` executable to compile JSON5 files to JSON.
+
+
+### v0.0.1 [[code][c0.0.1], [diff][d0.0.1]]
+
+[c0.0.1]: https://github.com/json5/json5/tree/v0.0.1
+[d0.0.1]: https://github.com/json5/json5/compare/v0.0.0...v0.0.1
+
+This was the first implementation of this JSON5 parser.
+
+- Support unquoted object keys, including reserved words. Unicode characters
+  and escape sequences sequences aren't yet supported.
+
+- Support single-quoted strings.
+
+- Support multi-line strings.
+
+- Support trailing commas in arrays and objects.
+
+- Support comments, both inline and block.
+
+
+### v0.0.0 [[code](https://github.com/json5/json5/tree/v0.0.0)]
+
+Let's consider this to be Douglas Crockford's original [json_parse.js] — a
+parser for the regular JSON format.
+
+
+[json_parse.js]: https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js
+[v8-hex-fix]: http://code.google.com/p/v8/issues/detail?id=2240
+
+[@MaxNanasy]: https://github.com/MaxNanasy
+[@Midar]: https://github.com/Midar
+[@pepkin88]: https://github.com/pepkin88
+[@rowanhill]: https://github.com/rowanhill
+[@aeisenberg]: https://github.com/aeisenberg
+[@jordanbtucker]: https://github.com/jordanbtucker
+[@amb26]: https://github.com/amb26
+
+[#1]: https://github.com/json5/json5/issues/1
+[#16]: https://github.com/json5/json5/issues/16
+[#24]: https://github.com/json5/json5/issues/24
+[#30]: https://github.com/json5/json5/issues/30
+[#32]: https://github.com/json5/json5/issues/32
+[#36]: https://github.com/json5/json5/issues/36
+[#57]: https://github.com/json5/json5/issues/57
+[#58]: https://github.com/json5/json5/pull/58
+[#60]: https://github.com/json5/json5/pull/60
+[#63]: https://github.com/json5/json5/pull/63
+[#66]: https://github.com/json5/json5/issues/66
+[#67]: https://github.com/json5/json5/issues/67
+[#68]: https://github.com/json5/json5/issues/68
+[#70]: https://github.com/json5/json5/issues/70
+[#71]: https://github.com/json5/json5/issues/71
+[#72]: https://github.com/json5/json5/issues/72
+[#84]: https://github.com/json5/json5/pull/84
+[#89]: https://github.com/json5/json5/pull/89
+[#97]: https://github.com/json5/json5/pull/97
+[#101]: https://github.com/json5/json5/pull/101
+[#108]: https://github.com/json5/json5/pull/108
+[#134]: https://github.com/json5/json5/pull/134
+[#154]: https://github.com/json5/json5/issues/154
diff --git a/node_modules/tsconfig-paths/node_modules/json5/LICENSE.md b/node_modules/tsconfig-paths/node_modules/json5/LICENSE.md
new file mode 100644
index 0000000..2171aca
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/LICENSE.md
@@ -0,0 +1,23 @@
+MIT License
+
+Copyright (c) 2012-2018 Aseem Kishore, and [others].
+
+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.
+
+[others]: https://github.com/json5/json5/contributors
diff --git a/node_modules/tsconfig-paths/node_modules/json5/README.md b/node_modules/tsconfig-paths/node_modules/json5/README.md
new file mode 100644
index 0000000..8e03554
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/README.md
@@ -0,0 +1,234 @@
+# JSON5 – JSON for Humans
+
+[![Build Status](https://travis-ci.org/json5/json5.svg)][Build Status]
+[![Coverage
+Status](https://coveralls.io/repos/github/json5/json5/badge.svg)][Coverage
+Status]
+
+The JSON5 Data Interchange Format (JSON5) is a superset of [JSON] that aims to
+alleviate some of the limitations of JSON by expanding its syntax to include
+some productions from [ECMAScript 5.1].
+
+This JavaScript library is the official reference implementation for JSON5
+parsing and serialization libraries.
+
+[Build Status]: https://travis-ci.org/json5/json5
+
+[Coverage Status]: https://coveralls.io/github/json5/json5
+
+[JSON]: https://tools.ietf.org/html/rfc7159
+
+[ECMAScript 5.1]: https://www.ecma-international.org/ecma-262/5.1/
+
+## Summary of Features
+The following ECMAScript 5.1 features, which are not supported in JSON, have
+been extended to JSON5.
+
+### Objects
+- Object keys may be an ECMAScript 5.1 _[IdentifierName]_.
+- Objects may have a single trailing comma.
+
+### Arrays
+- Arrays may have a single trailing comma.
+
+### Strings
+- Strings may be single quoted.
+- Strings may span multiple lines by escaping new line characters.
+- Strings may include character escapes.
+
+### Numbers
+- Numbers may be hexadecimal.
+- Numbers may have a leading or trailing decimal point.
+- Numbers may be [IEEE 754] positive infinity, negative infinity, and NaN.
+- Numbers may begin with an explicit plus sign.
+
+### Comments
+- Single and multi-line comments are allowed.
+
+### White Space
+- Additional white space characters are allowed.
+
+[IdentifierName]: https://www.ecma-international.org/ecma-262/5.1/#sec-7.6
+
+[IEEE 754]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+
+## Short Example
+```js
+{
+  // comments
+  unquoted: 'and you can quote me on that',
+  singleQuotes: 'I can use "double quotes" here',
+  lineBreaks: "Look, Mom! \
+No \\n's!",
+  hexadecimal: 0xdecaf,
+  leadingDecimalPoint: .8675309, andTrailing: 8675309.,
+  positiveSign: +1,
+  trailingComma: 'in objects', andIn: ['arrays',],
+  "backwardsCompatible": "with JSON",
+}
+```
+
+## Specification
+For a detailed explanation of the JSON5 format, please read the [official
+specification](https://json5.github.io/json5-spec/).
+
+## Installation
+### Node.js
+```sh
+npm install json5
+```
+
+```js
+const JSON5 = require('json5')
+```
+
+### Browsers
+```html
+<script src="https://unpkg.com/json5@^1.0.0"></script>
+```
+
+This will create a global `JSON5` variable.
+
+## API
+The JSON5 API is compatible with the [JSON API].
+
+[JSON API]:
+https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON
+
+### JSON5.parse()
+Parses a JSON5 string, constructing the JavaScript value or object described by
+the string. An optional reviver function can be provided to perform a
+transformation on the resulting object before it is returned.
+
+#### Syntax
+    JSON5.parse(text[, reviver])
+
+#### Parameters
+- `text`: The string to parse as JSON5.
+- `reviver`: If a function, this prescribes how the value originally produced by
+  parsing is transformed, before being returned.
+
+#### Return value
+The object corresponding to the given JSON5 text.
+
+### JSON5.stringify()
+Converts a JavaScript value to a JSON5 string, optionally replacing values if a
+replacer function is specified, or optionally including only the specified
+properties if a replacer array is specified.
+
+#### Syntax
+    JSON5.stringify(value[, replacer[, space]])
+    JSON5.stringify(value[, options])
+
+#### Parameters
+- `value`: The value to convert to a JSON5 string.
+- `replacer`: A function that alters the behavior of the stringification
+  process, or an array of String and Number objects that serve as a whitelist
+  for selecting/filtering the properties of the value object to be included in
+  the JSON5 string. If this value is null or not provided, all properties of the
+  object are included in the resulting JSON5 string.
+- `space`: A String or Number object that's used to insert white space into the
+  output JSON5 string for readability purposes. If this is a Number, it
+  indicates the number of space characters to use as white space; this number is
+  capped at 10 (if it is greater, the value is just 10). Values less than 1
+  indicate that no space should be used. If this is a String, the string (or the
+  first 10 characters of the string, if it's longer than that) is used as white
+  space. If this parameter is not provided (or is null), no white space is used.
+  If white space is used, trailing commas will be used in objects and arrays.
+- `options`: An object with the following properties:
+  - `replacer`: Same as the `replacer` parameter.
+  - `space`: Same as the `space` parameter.
+  - `quote`: A String representing the quote character to use when serializing
+    strings.
+
+#### Return value
+A JSON5 string representing the value.
+
+### Node.js `require()` JSON5 files
+When using Node.js, you can `require()` JSON5 files by adding the following
+statement.
+
+```js
+require('json5/lib/register')
+```
+
+Then you can load a JSON5 file with a Node.js `require()` statement. For
+example:
+
+```js
+const config = require('./config.json5')
+```
+
+## CLI
+Since JSON is more widely used than JSON5, this package includes a CLI for
+converting JSON5 to JSON and for validating the syntax of JSON5 documents.
+
+### Installation
+```sh
+npm install --global json5
+```
+
+### Usage
+```sh
+json5 [options] <file>
+```
+
+If `<file>` is not provided, then STDIN is used.
+
+#### Options:
+- `-s`, `--space`: The number of spaces to indent or `t` for tabs
+- `-o`, `--out-file [file]`: Output to the specified file, otherwise STDOUT
+- `-v`, `--validate`: Validate JSON5 but do not output JSON
+- `-V`, `--version`: Output the version number
+- `-h`, `--help`: Output usage information
+
+## Contibuting
+### Development
+```sh
+git clone https://github.com/json5/json5
+cd json5
+npm install
+```
+
+When contributing code, please write relevant tests and run `npm test` and `npm
+run lint` before submitting pull requests. Please use an editor that supports
+[EditorConfig](http://editorconfig.org/).
+
+### Issues
+To report bugs or request features regarding the JSON5 data format, please
+submit an issue to the [official specification
+repository](https://github.com/json5/json5-spec).
+
+To report bugs or request features regarding the JavaScript implentation of
+JSON5, please submit an issue to this repository.
+
+## License
+MIT. See [LICENSE.md](./LICENSE.md) for details.
+
+## Credits
+[Assem Kishore](https://github.com/aseemk) founded this project.
+
+[Michael Bolin](http://bolinfest.com/) independently arrived at and published
+some of these same ideas with awesome explanations and detail. Recommended
+reading: [Suggested Improvements to JSON](http://bolinfest.com/essays/json.html)
+
+[Douglas Crockford](http://www.crockford.com/) of course designed and built
+JSON, but his state machine diagrams on the [JSON website](http://json.org/), as
+cheesy as it may sound, gave us motivation and confidence that building a new
+parser to implement these ideas was within reach! The original
+implementation of JSON5 was also modeled directly off of Doug’s open-source
+[json_parse.js] parser. We’re grateful for that clean and well-documented
+code.
+
+[json_parse.js]:
+https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js
+
+[Max Nanasy](https://github.com/MaxNanasy) has been an early and prolific
+supporter, contributing multiple patches and ideas.
+
+[Andrew Eisenberg](https://github.com/aeisenberg) contributed the original
+`stringify` method.
+
+[Jordan Tucker](https://github.com/jordanbtucker) has aligned JSON5 more closely
+with ES5, wrote the official JSON5 specification, completely rewrote the
+codebase from the ground up, and is actively maintaining this project.
diff --git a/node_modules/tsconfig-paths/node_modules/json5/dist/index.js b/node_modules/tsconfig-paths/node_modules/json5/dist/index.js
new file mode 100644
index 0000000..bfc960b
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/dist/index.js
@@ -0,0 +1 @@
+!function(u,D){"object"==typeof exports&&"undefined"!=typeof module?module.exports=D():"function"==typeof define&&define.amd?define(D):u.JSON5=D()}(this,function(){"use strict";var u,D,F=(function(u,D){Object.defineProperty(D,"__esModule",{value:!0});D.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,D.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,D.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/}(u={exports:{}},u.exports),u.exports);(D=F)&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")&&D.default;var e=F.Space_Separator,C=F.ID_Start,A=F.ID_Continue;function r(u){return u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||C.test(u)}function t(u){return u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||A.test(u)}function E(u){return/[0-9]/.test(u)}function n(u){return/[0-9A-Fa-f]/.test(u)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(u){return typeof u}:function(u){return u&&"function"==typeof Symbol&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},o=void 0,a=void 0,B=void 0,c=void 0,s=void 0,f=void 0,d=void 0,l=void 0,v=void 0;var m=void 0,p=void 0,h=void 0,y=void 0,w=void 0;function b(){for(m="default",p="",h=!1,y=1;;){w=g();var u=x[m]();if(u)return u}}function g(){if(o[c])return String.fromCodePoint(o.codePointAt(c))}function S(){var u=g();return"\n"===u?(s++,f=0):u?f+=u.length:f++,u&&(c+=u.length),u}var x={default:function(){switch(w){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void S();case"/":return S(),void(m="comment");case void 0:return S(),N("eof")}if(!function(u){return e.test(u)}(w))return x[a]();S()},comment:function(){switch(w){case"*":return S(),void(m="multiLineComment");case"/":return S(),void(m="singleLineComment")}throw j(S())},multiLineComment:function(){switch(w){case"*":return S(),void(m="multiLineCommentAsterisk");case void 0:throw j(S())}S()},multiLineCommentAsterisk:function(){switch(w){case"*":return void S();case"/":return S(),void(m="default");case void 0:throw j(S())}S(),m="multiLineComment"},singleLineComment:function(){switch(w){case"\n":case"\r":case"\u2028":case"\u2029":return S(),void(m="default");case void 0:return S(),N("eof")}S()},value:function(){switch(w){case"{":case"[":return N("punctuator",S());case"n":return S(),P("ull"),N("null",null);case"t":return S(),P("rue"),N("boolean",!0);case"f":return S(),P("alse"),N("boolean",!1);case"-":case"+":return"-"===S()&&(y=-1),void(m="sign");case".":return p=S(),void(m="decimalPointLeading");case"0":return p=S(),void(m="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return p=S(),void(m="decimalInteger");case"I":return S(),P("nfinity"),N("numeric",1/0);case"N":return S(),P("aN"),N("numeric",NaN);case'"':case"'":return h='"'===S(),p="",void(m="string")}throw j(S())},identifierNameStartEscape:function(){if("u"!==w)throw j(S());S();var u=O();switch(u){case"$":case"_":break;default:if(!r(u))throw L()}p+=u,m="identifierName"},identifierName:function(){switch(w){case"$":case"_":case"‌":case"‍":return void(p+=S());case"\\":return S(),void(m="identifierNameEscape")}if(!t(w))return N("identifier",p);p+=S()},identifierNameEscape:function(){if("u"!==w)throw j(S());S();var u=O();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!t(u))throw L()}p+=u,m="identifierName"},sign:function(){switch(w){case".":return p=S(),void(m="decimalPointLeading");case"0":return p=S(),void(m="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return p=S(),void(m="decimalInteger");case"I":return S(),P("nfinity"),N("numeric",y*(1/0));case"N":return S(),P("aN"),N("numeric",NaN)}throw j(S())},zero:function(){switch(w){case".":return p+=S(),void(m="decimalPoint");case"e":case"E":return p+=S(),void(m="decimalExponent");case"x":case"X":return p+=S(),void(m="hexadecimal")}return N("numeric",0*y)},decimalInteger:function(){switch(w){case".":return p+=S(),void(m="decimalPoint");case"e":case"E":return p+=S(),void(m="decimalExponent")}if(!E(w))return N("numeric",y*Number(p));p+=S()},decimalPointLeading:function(){if(E(w))return p+=S(),void(m="decimalFraction");throw j(S())},decimalPoint:function(){switch(w){case"e":case"E":return p+=S(),void(m="decimalExponent")}return E(w)?(p+=S(),void(m="decimalFraction")):N("numeric",y*Number(p))},decimalFraction:function(){switch(w){case"e":case"E":return p+=S(),void(m="decimalExponent")}if(!E(w))return N("numeric",y*Number(p));p+=S()},decimalExponent:function(){switch(w){case"+":case"-":return p+=S(),void(m="decimalExponentSign")}if(E(w))return p+=S(),void(m="decimalExponentInteger");throw j(S())},decimalExponentSign:function(){if(E(w))return p+=S(),void(m="decimalExponentInteger");throw j(S())},decimalExponentInteger:function(){if(!E(w))return N("numeric",y*Number(p));p+=S()},hexadecimal:function(){if(n(w))return p+=S(),void(m="hexadecimalInteger");throw j(S())},hexadecimalInteger:function(){if(!n(w))return N("numeric",y*Number(p));p+=S()},string:function(){switch(w){case"\\":return S(),void(p+=function(){switch(g()){case"b":return S(),"\b";case"f":return S(),"\f";case"n":return S(),"\n";case"r":return S(),"\r";case"t":return S(),"\t";case"v":return S(),"\v";case"0":if(S(),E(g()))throw j(S());return"\0";case"x":return S(),function(){var u="",D=g();if(!n(D))throw j(S());if(u+=S(),!n(D=g()))throw j(S());return u+=S(),String.fromCodePoint(parseInt(u,16))}();case"u":return S(),O();case"\n":case"\u2028":case"\u2029":return S(),"";case"\r":return S(),"\n"===g()&&S(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw j(S())}return S()}());case'"':return h?(S(),N("string",p)):void(p+=S());case"'":return h?void(p+=S()):(S(),N("string",p));case"\n":case"\r":throw j(S());case"\u2028":case"\u2029":!function(u){console.warn("JSON5: '"+u+"' is not valid ECMAScript; consider escaping")}(w);break;case void 0:throw j(S())}p+=S()},start:function(){switch(w){case"{":case"[":return N("punctuator",S())}m="value"},beforePropertyName:function(){switch(w){case"$":case"_":return p=S(),void(m="identifierName");case"\\":return S(),void(m="identifierNameStartEscape");case"}":return N("punctuator",S());case'"':case"'":return h='"'===S(),void(m="string")}if(r(w))return p+=S(),void(m="identifierName");throw j(S())},afterPropertyName:function(){if(":"===w)return N("punctuator",S());throw j(S())},beforePropertyValue:function(){m="value"},afterPropertyValue:function(){switch(w){case",":case"}":return N("punctuator",S())}throw j(S())},beforeArrayValue:function(){if("]"===w)return N("punctuator",S());m="value"},afterArrayValue:function(){switch(w){case",":case"]":return N("punctuator",S())}throw j(S())},end:function(){throw j(S())}};function N(u,D){return{type:u,value:D,line:s,column:f}}function P(u){var D=!0,F=!1,e=void 0;try{for(var C,A=u[Symbol.iterator]();!(D=(C=A.next()).done);D=!0){var r=C.value;if(g()!==r)throw j(S());S()}}catch(u){F=!0,e=u}finally{try{!D&&A.return&&A.return()}finally{if(F)throw e}}}function O(){for(var u="",D=4;D-- >0;){if(!n(g()))throw j(S());u+=S()}return String.fromCodePoint(parseInt(u,16))}var I={start:function(){if("eof"===d.type)throw J();_()},beforePropertyName:function(){switch(d.type){case"identifier":case"string":return l=d.value,void(a="afterPropertyName");case"punctuator":return void V();case"eof":throw J()}},afterPropertyName:function(){if("eof"===d.type)throw J();a="beforePropertyValue"},beforePropertyValue:function(){if("eof"===d.type)throw J();_()},beforeArrayValue:function(){if("eof"===d.type)throw J();"punctuator"!==d.type||"]"!==d.value?_():V()},afterPropertyValue:function(){if("eof"===d.type)throw J();switch(d.value){case",":return void(a="beforePropertyName");case"}":V()}},afterArrayValue:function(){if("eof"===d.type)throw J();switch(d.value){case",":return void(a="beforeArrayValue");case"]":V()}},end:function(){}};function _(){var u=void 0;switch(d.type){case"punctuator":switch(d.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=d.value}if(void 0===v)v=u;else{var D=B[B.length-1];Array.isArray(D)?D.push(u):D[l]=u}if(null!==u&&"object"===(void 0===u?"undefined":i(u)))B.push(u),a=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{var F=B[B.length-1];a=null==F?"end":Array.isArray(F)?"afterArrayValue":"afterPropertyValue"}}function V(){B.pop();var u=B[B.length-1];a=null==u?"end":Array.isArray(u)?"afterArrayValue":"afterPropertyValue"}function j(u){return k(void 0===u?"JSON5: invalid end of input at "+s+":"+f:"JSON5: invalid character '"+function(u){var D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){var F=u.charCodeAt(0).toString(16);return"\\x"+("00"+F).substring(F.length)}return u}(u)+"' at "+s+":"+f)}function J(){return k("JSON5: invalid end of input at "+s+":"+f)}function L(){return k("JSON5: invalid identifier character at "+s+":"+(f-=5))}function k(u){var D=new SyntaxError(u);return D.lineNumber=s,D.columnNumber=f,D}return{parse:function(u,D){o=String(u),a="start",B=[],c=0,s=1,f=0,d=void 0,l=void 0,v=void 0;do{d=b(),I[a]()}while("eof"!==d.type);return"function"==typeof D?function u(D,F,e){var C=D[F];if(null!=C&&"object"===(void 0===C?"undefined":i(C)))for(var A in C){var r=u(C,A,e);void 0===r?delete C[A]:C[A]=r}return e.call(D,F,C)}({"":v},"",D):v},stringify:function(u,D,F){var e=[],C="",A=void 0,E=void 0,n="",o=void 0;if(null==D||"object"!==(void 0===D?"undefined":i(D))||Array.isArray(D)||(F=D.space,o=D.quote,D=D.replacer),"function"==typeof D)E=D;else if(Array.isArray(D)){A=[];var a=!0,B=!1,c=void 0;try{for(var s,f=D[Symbol.iterator]();!(a=(s=f.next()).done);a=!0){var d=s.value,l=void 0;"string"==typeof d?l=d:("number"==typeof d||d instanceof String||d instanceof Number)&&(l=String(d)),void 0!==l&&A.indexOf(l)<0&&A.push(l)}}catch(u){B=!0,c=u}finally{try{!a&&f.return&&f.return()}finally{if(B)throw c}}}return F instanceof Number?F=Number(F):F instanceof String&&(F=String(F)),"number"==typeof F?F>0&&(F=Math.min(10,Math.floor(F)),n="          ".substr(0,F)):"string"==typeof F&&(n=F.substr(0,10)),v("",{"":u});function v(u,D){var F=D[u];switch(null!=F&&("function"==typeof F.toJSON5?F=F.toJSON5(u):"function"==typeof F.toJSON&&(F=F.toJSON(u))),E&&(F=E.call(D,u,F)),F instanceof Number?F=Number(F):F instanceof String?F=String(F):F instanceof Boolean&&(F=F.valueOf()),F){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof F?m(F):"number"==typeof F?String(F):"object"===(void 0===F?"undefined":i(F))?Array.isArray(F)?function(u){if(e.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");e.push(u);var D=C;C+=n;for(var F=[],A=0;A<u.length;A++){var r=v(String(A),u);F.push(void 0!==r?r:"null")}var t=void 0;if(0===F.length)t="[]";else if(""===n){var E=F.join(",");t="["+E+"]"}else{var i=",\n"+C,o=F.join(i);t="[\n"+C+o+",\n"+D+"]"}return e.pop(),C=D,t}(F):function(u){if(e.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");e.push(u);var D=C;C+=n;var F=A||Object.keys(u),r=[],t=!0,E=!1,i=void 0;try{for(var o,a=F[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var B=o.value,c=v(B,u);if(void 0!==c){var s=p(B)+":";""!==n&&(s+=" "),s+=c,r.push(s)}}}catch(u){E=!0,i=u}finally{try{!t&&a.return&&a.return()}finally{if(E)throw i}}var f=void 0;if(0===r.length)f="{}";else{var d=void 0;if(""===n)d=r.join(","),f="{"+d+"}";else{var l=",\n"+C;d=r.join(l),f="{\n"+C+d+",\n"+D+"}"}}return e.pop(),C=D,f}(F):void 0}function m(u){var D={"'":.1,'"':.2},F={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},e="",C=!0,A=!1,r=void 0;try{for(var t,E=u[Symbol.iterator]();!(C=(t=E.next()).done);C=!0){var n=t.value;switch(n){case"'":case'"':D[n]++,e+=n;continue}if(F[n])e+=F[n];else if(n<" "){var i=n.charCodeAt(0).toString(16);e+="\\x"+("00"+i).substring(i.length)}else e+=n}}catch(u){A=!0,r=u}finally{try{!C&&E.return&&E.return()}finally{if(A)throw r}}var a=o||Object.keys(D).reduce(function(u,F){return D[u]<D[F]?u:F});return a+(e=e.replace(new RegExp(a,"g"),F[a]))+a}function p(u){if(0===u.length)return m(u);var D=String.fromCodePoint(u.codePointAt(0));if(!r(D))return m(u);for(var F=D.length;F<u.length;F++)if(!t(String.fromCodePoint(u.codePointAt(F))))return m(u);return u}}}});
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/cli.js b/node_modules/tsconfig-paths/node_modules/json5/lib/cli.js
new file mode 100755
index 0000000..d15aef0
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/cli.js
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+'use strict';var _fs=require('fs');var _fs2=_interopRequireDefault(_fs);var _path=require('path');var _path2=_interopRequireDefault(_path);var _minimist=require('minimist');var _minimist2=_interopRequireDefault(_minimist);var _package=require('../package.json');var _package2=_interopRequireDefault(_package);var _=require('./');var _2=_interopRequireDefault(_);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var argv=(0,_minimist2.default)(process.argv.slice(2),{alias:{'convert':'c','space':'s','validate':'v','out-file':'o','version':'V','help':'h'},boolean:['convert','validate','version','help'],string:['space','out-file']});if(argv.version){version()}else if(argv.help){usage()}else{var inFilename=argv._[0];var readStream=void 0;if(inFilename){readStream=_fs2.default.createReadStream(inFilename)}else{readStream=process.stdin}var json5='';readStream.on('data',function(data){json5+=data});readStream.on('end',function(){var space=void 0;if(argv.space==='t'||argv.space==='tab'){space='\t'}else{space=Number(argv.space)}var value=void 0;try{value=_2.default.parse(json5);if(!argv.validate){var json=JSON.stringify(value,null,space);var writeStream=void 0;if(argv.convert&&inFilename&&!argv.o){var parsedFilename=_path2.default.parse(inFilename);var outFilename=_path2.default.format(Object.assign(parsedFilename,{base:_path2.default.basename(parsedFilename.base,parsedFilename.ext)+'.json'}));writeStream=_fs2.default.createWriteStream(outFilename)}else if(argv.o){writeStream=_fs2.default.createWriteStream(argv.o)}else{writeStream=process.stdout}writeStream.write(json)}}catch(err){console.error(err.message);process.exit(1)}})}function version(){console.log(_package2.default.version)}function usage(){console.log('\n  Usage: json5 [options] <file>\n\n  If <file> is not provided, then STDIN is used.\n\n  Options:\n\n    -s, --space              The number of spaces to indent or \'t\' for tabs\n    -o, --out-file [file]    Output to the specified file, otherwise STDOUT\n    -v, --validate           Validate JSON5 but do not output JSON\n    -V, --version            Output the version number\n    -h, --help               Output usage information')}
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/index.js b/node_modules/tsconfig-paths/node_modules/json5/lib/index.js
new file mode 100644
index 0000000..c943e65
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/index.js
@@ -0,0 +1 @@
+'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _parse=require('./parse');var _parse2=_interopRequireDefault(_parse);var _stringify=require('./stringify');var _stringify2=_interopRequireDefault(_stringify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}exports.default={parse:_parse2.default,stringify:_stringify2.default};module.exports=exports['default'];
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/parse.js b/node_modules/tsconfig-paths/node_modules/json5/lib/parse.js
new file mode 100644
index 0000000..a1f756f
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/parse.js
@@ -0,0 +1 @@
+'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _typeof=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==='function'&&obj.constructor===Symbol&&obj!==Symbol.prototype?'symbol':typeof obj};exports.default=parse;var _util=require('./util');var util=_interopRequireWildcard(_util);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}var source=void 0;var parseState=void 0;var stack=void 0;var pos=void 0;var line=void 0;var column=void 0;var token=void 0;var key=void 0;var root=void 0;function parse(text,reviver){source=String(text);parseState='start';stack=[];pos=0;line=1;column=0;token=undefined;key=undefined;root=undefined;do{token=lex();parseStates[parseState]()}while(token.type!=='eof');if(typeof reviver==='function'){return internalize({'':root},'',reviver)}return root}function internalize(holder,name,reviver){var value=holder[name];if(value!=null&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){for(var _key in value){var replacement=internalize(value,_key,reviver);if(replacement===undefined){delete value[_key]}else{value[_key]=replacement}}}return reviver.call(holder,name,value)}var lexState=void 0;var buffer=void 0;var doubleQuote=void 0;var _sign=void 0;var c=void 0;function lex(){lexState='default';buffer='';doubleQuote=false;_sign=1;for(;;){c=peek();var _token=lexStates[lexState]();if(_token){return _token}}}function peek(){if(source[pos]){return String.fromCodePoint(source.codePointAt(pos))}}function read(){var c=peek();if(c==='\n'){line++;column=0}else if(c){column+=c.length}else{column++}if(c){pos+=c.length}return c}var lexStates={default:function _default(){switch(c){case'\t':case'\x0B':case'\f':case' ':case'\xA0':case'\uFEFF':case'\n':case'\r':case'\u2028':case'\u2029':read();return;case'/':read();lexState='comment';return;case undefined:read();return newToken('eof');}if(util.isSpaceSeparator(c)){read();return}return lexStates[parseState]()},comment:function comment(){switch(c){case'*':read();lexState='multiLineComment';return;case'/':read();lexState='singleLineComment';return;}throw invalidChar(read())},multiLineComment:function multiLineComment(){switch(c){case'*':read();lexState='multiLineCommentAsterisk';return;case undefined:throw invalidChar(read());}read()},multiLineCommentAsterisk:function multiLineCommentAsterisk(){switch(c){case'*':read();return;case'/':read();lexState='default';return;case undefined:throw invalidChar(read());}read();lexState='multiLineComment'},singleLineComment:function singleLineComment(){switch(c){case'\n':case'\r':case'\u2028':case'\u2029':read();lexState='default';return;case undefined:read();return newToken('eof');}read()},value:function value(){switch(c){case'{':case'[':return newToken('punctuator',read());case'n':read();literal('ull');return newToken('null',null);case't':read();literal('rue');return newToken('boolean',true);case'f':read();literal('alse');return newToken('boolean',false);case'-':case'+':if(read()==='-'){_sign=-1}lexState='sign';return;case'.':buffer=read();lexState='decimalPointLeading';return;case'0':buffer=read();lexState='zero';return;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':buffer=read();lexState='decimalInteger';return;case'I':read();literal('nfinity');return newToken('numeric',Infinity);case'N':read();literal('aN');return newToken('numeric',NaN);case'"':case'\'':doubleQuote=read()==='"';buffer='';lexState='string';return;}throw invalidChar(read())},identifierNameStartEscape:function identifierNameStartEscape(){if(c!=='u'){throw invalidChar(read())}read();var u=unicodeEscape();switch(u){case'$':case'_':break;default:if(!util.isIdStartChar(u)){throw invalidIdentifier()}break;}buffer+=u;lexState='identifierName'},identifierName:function identifierName(){switch(c){case'$':case'_':case'\u200C':case'\u200D':buffer+=read();return;case'\\':read();lexState='identifierNameEscape';return;}if(util.isIdContinueChar(c)){buffer+=read();return}return newToken('identifier',buffer)},identifierNameEscape:function identifierNameEscape(){if(c!=='u'){throw invalidChar(read())}read();var u=unicodeEscape();switch(u){case'$':case'_':case'\u200C':case'\u200D':break;default:if(!util.isIdContinueChar(u)){throw invalidIdentifier()}break;}buffer+=u;lexState='identifierName'},sign:function sign(){switch(c){case'.':buffer=read();lexState='decimalPointLeading';return;case'0':buffer=read();lexState='zero';return;case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':buffer=read();lexState='decimalInteger';return;case'I':read();literal('nfinity');return newToken('numeric',_sign*Infinity);case'N':read();literal('aN');return newToken('numeric',NaN);}throw invalidChar(read())},zero:function zero(){switch(c){case'.':buffer+=read();lexState='decimalPoint';return;case'e':case'E':buffer+=read();lexState='decimalExponent';return;case'x':case'X':buffer+=read();lexState='hexadecimal';return;}return newToken('numeric',_sign*0)},decimalInteger:function decimalInteger(){switch(c){case'.':buffer+=read();lexState='decimalPoint';return;case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},decimalPointLeading:function decimalPointLeading(){if(util.isDigit(c)){buffer+=read();lexState='decimalFraction';return}throw invalidChar(read())},decimalPoint:function decimalPoint(){switch(c){case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();lexState='decimalFraction';return}return newToken('numeric',_sign*Number(buffer))},decimalFraction:function decimalFraction(){switch(c){case'e':case'E':buffer+=read();lexState='decimalExponent';return;}if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},decimalExponent:function decimalExponent(){switch(c){case'+':case'-':buffer+=read();lexState='decimalExponentSign';return;}if(util.isDigit(c)){buffer+=read();lexState='decimalExponentInteger';return}throw invalidChar(read())},decimalExponentSign:function decimalExponentSign(){if(util.isDigit(c)){buffer+=read();lexState='decimalExponentInteger';return}throw invalidChar(read())},decimalExponentInteger:function decimalExponentInteger(){if(util.isDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},hexadecimal:function hexadecimal(){if(util.isHexDigit(c)){buffer+=read();lexState='hexadecimalInteger';return}throw invalidChar(read())},hexadecimalInteger:function hexadecimalInteger(){if(util.isHexDigit(c)){buffer+=read();return}return newToken('numeric',_sign*Number(buffer))},string:function string(){switch(c){case'\\':read();buffer+=escape();return;case'"':if(doubleQuote){read();return newToken('string',buffer)}buffer+=read();return;case'\'':if(!doubleQuote){read();return newToken('string',buffer)}buffer+=read();return;case'\n':case'\r':throw invalidChar(read());case'\u2028':case'\u2029':separatorChar(c);break;case undefined:throw invalidChar(read());}buffer+=read()},start:function start(){switch(c){case'{':case'[':return newToken('punctuator',read());}lexState='value'},beforePropertyName:function beforePropertyName(){switch(c){case'$':case'_':buffer=read();lexState='identifierName';return;case'\\':read();lexState='identifierNameStartEscape';return;case'}':return newToken('punctuator',read());case'"':case'\'':doubleQuote=read()==='"';lexState='string';return;}if(util.isIdStartChar(c)){buffer+=read();lexState='identifierName';return}throw invalidChar(read())},afterPropertyName:function afterPropertyName(){if(c===':'){return newToken('punctuator',read())}throw invalidChar(read())},beforePropertyValue:function beforePropertyValue(){lexState='value'},afterPropertyValue:function afterPropertyValue(){switch(c){case',':case'}':return newToken('punctuator',read());}throw invalidChar(read())},beforeArrayValue:function beforeArrayValue(){if(c===']'){return newToken('punctuator',read())}lexState='value'},afterArrayValue:function afterArrayValue(){switch(c){case',':case']':return newToken('punctuator',read());}throw invalidChar(read())},end:function end(){throw invalidChar(read())}};function newToken(type,value){return{type:type,value:value,line:line,column:column}}function literal(s){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=s[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _c=_step.value;var p=peek();if(p!==_c){throw invalidChar(read())}read()}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}function escape(){var c=peek();switch(c){case'b':read();return'\b';case'f':read();return'\f';case'n':read();return'\n';case'r':read();return'\r';case't':read();return'\t';case'v':read();return'\x0B';case'0':read();if(util.isDigit(peek())){throw invalidChar(read())}return'\0';case'x':read();return hexEscape();case'u':read();return unicodeEscape();case'\n':case'\u2028':case'\u2029':read();return'';case'\r':read();if(peek()==='\n'){read()}return'';case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':throw invalidChar(read());case undefined:throw invalidChar(read());}return read()}function hexEscape(){var buffer='';var c=peek();if(!util.isHexDigit(c)){throw invalidChar(read())}buffer+=read();c=peek();if(!util.isHexDigit(c)){throw invalidChar(read())}buffer+=read();return String.fromCodePoint(parseInt(buffer,16))}function unicodeEscape(){var buffer='';var count=4;while(count-->0){var _c2=peek();if(!util.isHexDigit(_c2)){throw invalidChar(read())}buffer+=read()}return String.fromCodePoint(parseInt(buffer,16))}var parseStates={start:function start(){if(token.type==='eof'){throw invalidEOF()}push()},beforePropertyName:function beforePropertyName(){switch(token.type){case'identifier':case'string':key=token.value;parseState='afterPropertyName';return;case'punctuator':pop();return;case'eof':throw invalidEOF();}},afterPropertyName:function afterPropertyName(){if(token.type==='eof'){throw invalidEOF()}parseState='beforePropertyValue'},beforePropertyValue:function beforePropertyValue(){if(token.type==='eof'){throw invalidEOF()}push()},beforeArrayValue:function beforeArrayValue(){if(token.type==='eof'){throw invalidEOF()}if(token.type==='punctuator'&&token.value===']'){pop();return}push()},afterPropertyValue:function afterPropertyValue(){if(token.type==='eof'){throw invalidEOF()}switch(token.value){case',':parseState='beforePropertyName';return;case'}':pop();}},afterArrayValue:function afterArrayValue(){if(token.type==='eof'){throw invalidEOF()}switch(token.value){case',':parseState='beforeArrayValue';return;case']':pop();}},end:function end(){}};function push(){var value=void 0;switch(token.type){case'punctuator':switch(token.value){case'{':value={};break;case'[':value=[];break;}break;case'null':case'boolean':case'numeric':case'string':value=token.value;break;}if(root===undefined){root=value}else{var parent=stack[stack.length-1];if(Array.isArray(parent)){parent.push(value)}else{parent[key]=value}}if(value!==null&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){stack.push(value);if(Array.isArray(value)){parseState='beforeArrayValue'}else{parseState='beforePropertyName'}}else{var current=stack[stack.length-1];if(current==null){parseState='end'}else if(Array.isArray(current)){parseState='afterArrayValue'}else{parseState='afterPropertyValue'}}}function pop(){stack.pop();var current=stack[stack.length-1];if(current==null){parseState='end'}else if(Array.isArray(current)){parseState='afterArrayValue'}else{parseState='afterPropertyValue'}}function invalidChar(c){if(c===undefined){return syntaxError('JSON5: invalid end of input at '+line+':'+column)}return syntaxError('JSON5: invalid character \''+formatChar(c)+'\' at '+line+':'+column)}function invalidEOF(){return syntaxError('JSON5: invalid end of input at '+line+':'+column)}function invalidIdentifier(){column-=5;return syntaxError('JSON5: invalid identifier character at '+line+':'+column)}function separatorChar(c){console.warn('JSON5: \''+c+'\' is not valid ECMAScript; consider escaping')}function formatChar(c){var replacements={'\'':'\\\'','"':'\\"','\\':'\\\\','\b':'\\b','\f':'\\f','\n':'\\n','\r':'\\r','\t':'\\t','\x0B':'\\v','\0':'\\0','\u2028':'\\u2028','\u2029':'\\u2029'};if(replacements[c]){return replacements[c]}if(c<' '){var hexString=c.charCodeAt(0).toString(16);return'\\x'+('00'+hexString).substring(hexString.length)}return c}function syntaxError(message){var err=new SyntaxError(message);err.lineNumber=line;err.columnNumber=column;return err}module.exports=exports['default'];
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/register.js b/node_modules/tsconfig-paths/node_modules/json5/lib/register.js
new file mode 100644
index 0000000..aa16e96
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/register.js
@@ -0,0 +1 @@
+'use strict';var _fs=require('fs');var _fs2=_interopRequireDefault(_fs);var _=require('./');var _2=_interopRequireDefault(_);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}require.extensions['.json5']=function(module,filename){var content=_fs2.default.readFileSync(filename,'utf8');try{module.exports=_2.default.parse(content)}catch(err){err.message=filename+': '+err.message;throw err}};
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/require.js b/node_modules/tsconfig-paths/node_modules/json5/lib/require.js
new file mode 100644
index 0000000..dfdc039
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/require.js
@@ -0,0 +1 @@
+"use strict";require("./register");console.warn("'json5/require' is deprecated. Please use 'json5/register' instead.");
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/stringify.js b/node_modules/tsconfig-paths/node_modules/json5/lib/stringify.js
new file mode 100644
index 0000000..ce6917e
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/stringify.js
@@ -0,0 +1 @@
+'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _typeof=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==='function'&&obj.constructor===Symbol&&obj!==Symbol.prototype?'symbol':typeof obj};exports.default=stringify;var _util=require('./util');var util=_interopRequireWildcard(_util);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function stringify(value,replacer,space){var stack=[];var indent='';var propertyList=void 0;var replacerFunc=void 0;var gap='';var quote=void 0;if(replacer!=null&&(typeof replacer==='undefined'?'undefined':_typeof(replacer))==='object'&&!Array.isArray(replacer)){space=replacer.space;quote=replacer.quote;replacer=replacer.replacer}if(typeof replacer==='function'){replacerFunc=replacer}else if(Array.isArray(replacer)){propertyList=[];var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=replacer[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var v=_step.value;var item=void 0;if(typeof v==='string'){item=v}else if(typeof v==='number'||v instanceof String||v instanceof Number){item=String(v)}if(item!==undefined&&propertyList.indexOf(item)<0){propertyList.push(item)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}if(space instanceof Number){space=Number(space)}else if(space instanceof String){space=String(space)}if(typeof space==='number'){if(space>0){space=Math.min(10,Math.floor(space));gap='          '.substr(0,space)}}else if(typeof space==='string'){gap=space.substr(0,10)}return serializeProperty('',{'':value});function serializeProperty(key,holder){var value=holder[key];if(value!=null){if(typeof value.toJSON5==='function'){value=value.toJSON5(key)}else if(typeof value.toJSON==='function'){value=value.toJSON(key)}}if(replacerFunc){value=replacerFunc.call(holder,key,value)}if(value instanceof Number){value=Number(value)}else if(value instanceof String){value=String(value)}else if(value instanceof Boolean){value=value.valueOf()}switch(value){case null:return'null';case true:return'true';case false:return'false';}if(typeof value==='string'){return quoteString(value,false)}if(typeof value==='number'){return String(value)}if((typeof value==='undefined'?'undefined':_typeof(value))==='object'){return Array.isArray(value)?serializeArray(value):serializeObject(value)}return undefined}function quoteString(value){var quotes={'\'':0.1,'"':0.2};var replacements={'\'':'\\\'','"':'\\"','\\':'\\\\','\b':'\\b','\f':'\\f','\n':'\\n','\r':'\\r','\t':'\\t','\x0B':'\\v','\0':'\\0','\u2028':'\\u2028','\u2029':'\\u2029'};var product='';var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=value[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var c=_step2.value;switch(c){case'\'':case'"':quotes[c]++;product+=c;continue;}if(replacements[c]){product+=replacements[c];continue}if(c<' '){var hexString=c.charCodeAt(0).toString(16);product+='\\x'+('00'+hexString).substring(hexString.length);continue}product+=c}}catch(err){_didIteratorError2=true;_iteratorError2=err}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return()}}finally{if(_didIteratorError2){throw _iteratorError2}}}var quoteChar=quote||Object.keys(quotes).reduce(function(a,b){return quotes[a]<quotes[b]?a:b});product=product.replace(new RegExp(quoteChar,'g'),replacements[quoteChar]);return quoteChar+product+quoteChar}function serializeObject(value){if(stack.indexOf(value)>=0){throw TypeError('Converting circular structure to JSON5')}stack.push(value);var stepback=indent;indent=indent+gap;var keys=propertyList||Object.keys(value);var partial=[];var _iteratorNormalCompletion3=true;var _didIteratorError3=false;var _iteratorError3=undefined;try{for(var _iterator3=keys[Symbol.iterator](),_step3;!(_iteratorNormalCompletion3=(_step3=_iterator3.next()).done);_iteratorNormalCompletion3=true){var key=_step3.value;var propertyString=serializeProperty(key,value);if(propertyString!==undefined){var member=serializeKey(key)+':';if(gap!==''){member+=' '}member+=propertyString;partial.push(member)}}}catch(err){_didIteratorError3=true;_iteratorError3=err}finally{try{if(!_iteratorNormalCompletion3&&_iterator3.return){_iterator3.return()}}finally{if(_didIteratorError3){throw _iteratorError3}}}var final=void 0;if(partial.length===0){final='{}'}else{var properties=void 0;if(gap===''){properties=partial.join(',');final='{'+properties+'}'}else{var separator=',\n'+indent;properties=partial.join(separator);final='{\n'+indent+properties+',\n'+stepback+'}'}}stack.pop();indent=stepback;return final}function serializeKey(key){if(key.length===0){return quoteString(key,true)}var firstChar=String.fromCodePoint(key.codePointAt(0));if(!util.isIdStartChar(firstChar)){return quoteString(key,true)}for(var i=firstChar.length;i<key.length;i++){if(!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))){return quoteString(key,true)}}return key}function serializeArray(value){if(stack.indexOf(value)>=0){throw TypeError('Converting circular structure to JSON5')}stack.push(value);var stepback=indent;indent=indent+gap;var partial=[];for(var i=0;i<value.length;i++){var propertyString=serializeProperty(String(i),value);partial.push(propertyString!==undefined?propertyString:'null')}var final=void 0;if(partial.length===0){final='[]'}else{if(gap===''){var properties=partial.join(',');final='['+properties+']'}else{var separator=',\n'+indent;var _properties=partial.join(separator);final='[\n'+indent+_properties+',\n'+stepback+']'}}stack.pop();indent=stepback;return final}}module.exports=exports['default'];
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/unicode.js b/node_modules/tsconfig-paths/node_modules/json5/lib/unicode.js
new file mode 100644
index 0000000..fa664cf
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/unicode.js
@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:true});var Space_Separator=exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/;var ID_Start=exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/;var ID_Continue=exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/lib/util.js b/node_modules/tsconfig-paths/node_modules/json5/lib/util.js
new file mode 100644
index 0000000..d884887
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/lib/util.js
@@ -0,0 +1 @@
+'use strict';Object.defineProperty(exports,'__esModule',{value:true});exports.isSpaceSeparator=isSpaceSeparator;exports.isIdStartChar=isIdStartChar;exports.isIdContinueChar=isIdContinueChar;exports.isDigit=isDigit;exports.isHexDigit=isHexDigit;var _unicode=require('../lib/unicode');var unicode=_interopRequireWildcard(_unicode);function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function isSpaceSeparator(c){return unicode.Space_Separator.test(c)}function isIdStartChar(c){return c>='a'&&c<='z'||c>='A'&&c<='Z'||c==='$'||c==='_'||unicode.ID_Start.test(c)}function isIdContinueChar(c){return c>='a'&&c<='z'||c>='A'&&c<='Z'||c>='0'&&c<='9'||c==='$'||c==='_'||c==='\u200C'||c==='\u200D'||unicode.ID_Continue.test(c)}function isDigit(c){return /[0-9]/.test(c)}function isHexDigit(c){return /[0-9A-Fa-f]/.test(c)}
\ No newline at end of file
diff --git a/node_modules/tsconfig-paths/node_modules/json5/package.json b/node_modules/tsconfig-paths/node_modules/json5/package.json
new file mode 100644
index 0000000..b51b762
--- /dev/null
+++ b/node_modules/tsconfig-paths/node_modules/json5/package.json
@@ -0,0 +1,76 @@
+{
+  "name": "json5",
+  "version": "1.0.1",
+  "description": "JSON for humans.",
+  "main": "lib/index.js",
+  "bin": "lib/cli.js",
+  "browser": "dist/index.js",
+  "files": [
+    "lib/",
+    "dist/"
+  ],
+  "scripts": {
+    "build": "babel-node build/build.js && babel src -d lib && rollup -c",
+    "coverage": "nyc report --reporter=text-lcov | coveralls",
+    "lint": "eslint --fix build src",
+    "prepublishOnly": "npm run lint && npm test && npm run production",
+    "pretest": "cross-env NODE_ENV=test npm run build",
+    "preversion": "npm run lint && npm test && npm run production",
+    "production": "cross-env NODE_ENV=production npm run build",
+    "test": "nyc --reporter=html --reporter=text mocha"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/json5/json5.git"
+  },
+  "keywords": [
+    "json",
+    "json5",
+    "es5",
+    "es2015",
+    "ecmascript"
+  ],
+  "author": "Aseem Kishore <aseem.kishore@gmail.com>",
+  "contributors": [
+    "Max Nanasy <max.nanasy@gmail.com>",
+    "Andrew Eisenberg <andrew@eisenberg.as>",
+    "Jordan Tucker <jordanbtucker@gmail.com>"
+  ],
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/json5/json5/issues"
+  },
+  "homepage": "http://json5.org/",
+  "dependencies": {
+    "minimist": "^1.2.0"
+  },
+  "devDependencies": {
+    "babel-cli": "^6.26.0",
+    "babel-core": "^6.26.0",
+    "babel-plugin-add-module-exports": "^0.2.1",
+    "babel-plugin-external-helpers": "^6.22.0",
+    "babel-plugin-istanbul": "^4.1.5",
+    "babel-preset-env": "^1.6.1",
+    "babel-register": "^6.26.0",
+    "babelrc-rollup": "^3.0.0",
+    "coveralls": "^3.0.0",
+    "cross-env": "^5.1.4",
+    "del": "^3.0.0",
+    "eslint": "^4.18.2",
+    "eslint-config-standard": "^11.0.0",
+    "eslint-plugin-import": "^2.9.0",
+    "eslint-plugin-node": "^6.0.1",
+    "eslint-plugin-promise": "^3.7.0",
+    "eslint-plugin-standard": "^3.0.1",
+    "mocha": "^5.0.4",
+    "nyc": "^11.4.1",
+    "regenerate": "^1.3.3",
+    "rollup": "^0.56.5",
+    "rollup-plugin-babel": "^3.0.3",
+    "rollup-plugin-commonjs": "^9.0.0",
+    "rollup-plugin-node-resolve": "^3.2.0",
+    "rollup-plugin-uglify": "^3.0.0",
+    "sinon": "^4.4.2",
+    "unicode-9.0.0": "^0.7.5"
+  }
+}
diff --git a/node_modules/tsconfig-paths/package.json b/node_modules/tsconfig-paths/package.json
new file mode 100644
index 0000000..0a0b49a
--- /dev/null
+++ b/node_modules/tsconfig-paths/package.json
@@ -0,0 +1,63 @@
+{
+  "name": "tsconfig-paths",
+  "version": "3.9.0",
+  "description": "Load node modules according to tsconfig paths, in run-time or via API.",
+  "main": "lib/index.js",
+  "types": "lib/index",
+  "author": "Jonas Kello",
+  "license": "MIT",
+  "repository": "https://github.com/dividab/tsconfig-paths",
+  "devDependencies": {
+    "@types/chai": "^4.1.4",
+    "@types/minimist": "^1.2.0",
+    "@types/mocha": "^5.2.3",
+    "@types/node": "^6.0.54",
+    "@types/strip-bom": "^3.0.0",
+    "@types/strip-json-comments": "^0.0.30",
+    "chai": "^4.1.2",
+    "codecov": "^3.1.0",
+    "husky": "^0.14.3",
+    "lint-staged": "^4.3.0",
+    "mocha": "^5.2.0",
+    "nyc": "^11.4.1",
+    "prettier": "1.7.4",
+    "rimraf": "^2.6.2",
+    "shelljs": "^0.7.5",
+    "ts-node": "^7.0.0",
+    "tslint": "^5.8.0",
+    "typescript": "^2.4.1"
+  },
+  "dependencies": {
+    "@types/json5": "^0.0.29",
+    "json5": "^1.0.1",
+    "minimist": "^1.2.0",
+    "strip-bom": "^3.0.0"
+  },
+  "scripts": {
+    "start": "cd src && ts-node index.ts",
+    "example:node": "yarn build && cd ./example/node && ts-node -r ../register.js main.ts",
+    "example:project": "yarn build && ts-node -r ./register.js -P ./example/project/tsconfig.json ./example/project/main.ts",
+    "example:api": "cd example/api && ts-node main.ts",
+    "example:perf": "cd example/perf && ts-node main.ts",
+    "test": "mocha",
+    "build": "rimraf lib && tsc -p src",
+    "build:test": "rimraf ./test/js_out && tsc -p test",
+    "lint": "tslint './{src,tests}/**/*.ts{,x}'",
+    "verify": "yarn build && yarn lint && yarn coverage",
+    "coverage": "rimraf coverage .nyc_output && nyc yarn test",
+    "report-coverage": "codecov -f coverage/*.json",
+    "precommit": "lint-staged",
+    "publish:major": "yarn build && node scripts/publish.js major",
+    "publish:minor": "yarn build && node scripts/publish.js minor",
+    "publish:patch": "yarn build && node scripts/publish.js patch",
+    "preversion": "yarn verify",
+    "postversion": "git push --tags && yarn publish --new-version $npm_package_version && git push && echo \"Successfully released version $npm_package_version!\""
+  },
+  "lint-staged": {
+    "*.ts": [
+      "tslint",
+      "prettier --write",
+      "git add"
+    ]
+  }
+}
diff --git a/node_modules/tsconfig-paths/register.js b/node_modules/tsconfig-paths/register.js
new file mode 100644
index 0000000..c7d41ea
--- /dev/null
+++ b/node_modules/tsconfig-paths/register.js
@@ -0,0 +1 @@
+require('./').register();
diff --git a/node_modules/tsconfig-paths/test/config-loader-tests.ts b/node_modules/tsconfig-paths/test/config-loader-tests.ts
new file mode 100644
index 0000000..483ba43
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/config-loader-tests.ts
@@ -0,0 +1,90 @@
+import { assert } from "chai";
+import {
+  configLoader,
+  loadConfig,
+  ConfigLoaderFailResult,
+  ConfigLoaderSuccessResult
+} from "../src/config-loader";
+import { join } from "path";
+
+describe("config-loader", (): void => {
+  it("should use explicitParams when set", () => {
+    const result = configLoader({
+      explicitParams: {
+        baseUrl: "/foo/bar",
+        paths: {
+          asd: ["asd"]
+        }
+      },
+      cwd: "/baz"
+    });
+
+    const successResult = result as ConfigLoaderSuccessResult;
+    assert.equal(successResult.resultType, "success");
+    assert.equal(successResult.absoluteBaseUrl, "/foo/bar");
+    assert.equal(successResult.paths["asd"][0], "asd");
+  });
+
+  it("should use explicitParams when set and add cwd when path is relative", () => {
+    const result = configLoader({
+      explicitParams: {
+        baseUrl: "bar/",
+        paths: {
+          asd: ["asd"]
+        }
+      },
+      cwd: "/baz"
+    });
+
+    const successResult = result as ConfigLoaderSuccessResult;
+    assert.equal(successResult.resultType, "success");
+    assert.equal(successResult.absoluteBaseUrl, join("/baz", "bar/"));
+  });
+
+  it("should fallback to tsConfigLoader when explicitParams is not set", () => {
+    const result = configLoader({
+      explicitParams: undefined,
+      cwd: "/baz",
+      // tslint:disable-next-line:no-any
+      tsConfigLoader: (_: any) => ({
+        tsConfigPath: "/baz/tsconfig.json",
+        baseUrl: "./src",
+        paths: {}
+      })
+    });
+
+    const successResult = result as ConfigLoaderSuccessResult;
+    assert.equal(successResult.resultType, "success");
+    assert.equal(successResult.absoluteBaseUrl, join("/baz", "src"));
+  });
+
+  it("should show an error message when baseUrl is missing", () => {
+    const result = configLoader({
+      explicitParams: undefined,
+      cwd: "/baz",
+      // tslint:disable-next-line:no-any
+      tsConfigLoader: (_: any) => ({
+        tsConfigPath: "/baz/tsconfig.json",
+        baseUrl: undefined,
+        paths: {}
+      })
+    });
+
+    const failResult = result as ConfigLoaderFailResult;
+    assert.equal(failResult.resultType, "failed");
+    assert.isTrue(failResult.message.indexOf("baseUrl") > -1);
+  });
+
+  it("should presume cwd to be a tsconfig file when loadConfig is called with absolute path to tsconfig.json", () => {
+    // using tsconfig-named.json to ensure that future changes to fix
+    // https://github.com/dividab/tsconfig-paths/issues/31
+    // do not pass this test case just because of a directory walk looking
+    // for tsconfig.json
+    const configFile = join(__dirname, "tsconfig-named.json");
+    const result = loadConfig(configFile);
+
+    const successResult = result as ConfigLoaderSuccessResult;
+    assert.equal(successResult.resultType, "success");
+    assert.equal(successResult.configFileAbsolutePath, configFile);
+  });
+});
diff --git a/node_modules/tsconfig-paths/test/data/match-path-data.ts b/node_modules/tsconfig-paths/test/data/match-path-data.ts
new file mode 100644
index 0000000..d0c60a1
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/data/match-path-data.ts
@@ -0,0 +1,212 @@
+import { join, dirname } from "path";
+import { removeExtension } from "../../src/filesystem";
+
+export interface OneTest {
+  readonly name: string;
+  readonly only?: boolean;
+  readonly skip?: boolean;
+  readonly absoluteBaseUrl: string;
+  readonly paths: { [key: string]: Array<string> };
+  readonly mainFields?: string[];
+  readonly addMatchAll?: boolean;
+  readonly existingFiles: ReadonlyArray<string>;
+  readonly requestedModule: string;
+  readonly extensions?: ReadonlyArray<string>;
+  readonly packageJson?: {};
+  readonly expectedPath: string | undefined;
+}
+
+export const tests: ReadonlyArray<OneTest> = [
+  {
+    name: "should locate path that matches with star and exists",
+    absoluteBaseUrl: "/root/",
+    paths: {
+      "lib/*": ["location/*"]
+    },
+    existingFiles: [join("/root", "location", "mylib", "index.ts")],
+    requestedModule: "lib/mylib",
+    expectedPath: dirname(join("/root", "location", "mylib", "index.ts"))
+  },
+  {
+    name: "should resolve to correct path when many are specified",
+    absoluteBaseUrl: "/root/",
+    paths: {
+      "lib/*": ["foo1/*", "foo2/*", "location/*", "foo3/*"]
+    },
+    existingFiles: [join("/root", "location", "mylib", "index.ts")],
+    requestedModule: "lib/mylib",
+    extensions: [".ts"],
+    expectedPath: dirname(join("/root", "location", "mylib", "index.ts"))
+  },
+  {
+    name:
+      "should locate path that matches with star and prioritize pattern with longest prefix",
+    absoluteBaseUrl: "/root/",
+    paths: {
+      "*": ["location/*"],
+      "lib/*": ["location/*"]
+    },
+    existingFiles: [
+      join("/root", "location", "lib", "mylib", "index.ts"),
+      join("/root", "location", "mylib", "index.ts")
+    ],
+    requestedModule: "lib/mylib",
+    expectedPath: dirname(join("/root", "location", "mylib", "index.ts"))
+  },
+  {
+    name: "should locate path that matches with star and exists with extension",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "mylib.myext")],
+    requestedModule: "lib/mylib",
+    extensions: [".js", ".myext"],
+    expectedPath: removeExtension(join("/root", "location", "mylib.myext"))
+  },
+  {
+    name: "should resolve request with extension specified",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "test.jpg")],
+    requestedModule: "lib/test.jpg",
+    expectedPath: join("/root", "location", "test.jpg")
+  },
+  {
+    name: "should locate path that matches without star and exists",
+    absoluteBaseUrl: "/root/",
+    paths: {
+      "lib/foo": ["location/foo"]
+    },
+    existingFiles: [join("/root", "location", "foo.ts")],
+    requestedModule: "lib/foo",
+    expectedPath: removeExtension(join("/root", "location", "foo.ts"))
+  },
+  {
+    name: "should resolve to parent folder when filename is in subfolder",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "mylib", "index.ts")],
+    requestedModule: "lib/mylib",
+    expectedPath: dirname(join("/root", "location", "mylib", "index.ts"))
+  },
+  {
+    name: "should resolve from main field in package.json",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "mylib", "kalle.ts")],
+    packageJson: { main: "./kalle.ts" },
+    requestedModule: "lib/mylib",
+    expectedPath: removeExtension(
+      join("/root", "location", "mylib", "kalle.ts")
+    )
+  },
+  {
+    name: "should resolve from main field in package.json (js)",
+    absoluteBaseUrl: "/root",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "mylib.js", "kalle.js")],
+    packageJson: { main: "./kalle.js" },
+    requestedModule: "lib/mylib.js",
+    extensions: [".ts", ".js"],
+    expectedPath: removeExtension(
+      join("/root", "location", "mylib.js", "kalle.js")
+    )
+  },
+  {
+    name:
+      "should resolve from main field in package.json and correctly remove file extension",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("/root", "location", "mylibjs", "kalle.js")],
+    packageJson: { main: "./kalle.js" },
+    extensions: [".ts", ".js"],
+    requestedModule: "lib/mylibjs",
+    expectedPath: removeExtension(
+      join("/root", "location", "mylibjs", "kalle.js")
+    )
+  },
+  {
+    name: "should resolve from list of fields by priority in package.json",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    mainFields: ["missing", "browser", "main"],
+    packageJson: { main: "./main.js", browser: "./browser.js" },
+    existingFiles: [
+      join("/root", "location", "mylibjs", "main.js"), // mainFilePath
+      join("/root", "location", "mylibjs", "browser.js") // browserFilePath
+    ],
+    extensions: [".ts", ".js"],
+    requestedModule: "lib/mylibjs",
+    expectedPath: removeExtension(
+      join("/root", "location", "mylibjs", "browser.js")
+    )
+  },
+  {
+    name: "should ignore field mappings to missing files in package.json",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    mainFields: ["browser", "main"],
+    existingFiles: [join("/root", "location", "mylibjs", "kalle.js")],
+    requestedModule: "lib/mylibjs",
+    packageJson: {
+      main: "./kalle.js",
+      browser: "./nope.js"
+    },
+    extensions: [".ts", ".js"],
+    expectedPath: removeExtension(
+      join("/root", "location", "mylibjs", "kalle.js")
+    )
+  },
+  {
+    name: "should ignore advanced field mappings in package.json",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [
+      join("/root", "location", "mylibjs", "kalle.js"),
+      join("/root", "location", "mylibjs", "browser.js")
+    ],
+    requestedModule: "lib/mylibjs",
+    packageJson: {
+      main: "./kalle.js",
+      browser: { mylibjs: "./browser.js", "./kalle.js": "./browser.js" }
+    },
+    extensions: [".ts", ".js"],
+    expectedPath: removeExtension(
+      join("/root", "location", "mylibjs", "kalle.js")
+    )
+  },
+  {
+    name: "should resolve to with the help of baseUrl when not explicitly set",
+    absoluteBaseUrl: "/root/",
+    paths: {},
+    existingFiles: [join("/root", "mylib", "index.ts")],
+    requestedModule: "mylib",
+    expectedPath: dirname(join("/root", "mylib", "index.ts"))
+  },
+  {
+    name: "should not resolve with the help of baseUrl when asked not to",
+    absoluteBaseUrl: "/root/",
+    paths: {},
+    addMatchAll: false,
+    existingFiles: [join("/root", "mylib", "index.ts")],
+    requestedModule: "mylib",
+    expectedPath: undefined
+  },
+  {
+    name: "should not locate path that does not match",
+    absoluteBaseUrl: "/root/",
+    paths: { "lib/*": ["location/*"] },
+    existingFiles: [join("root", "location", "mylib")],
+    requestedModule: "mylib",
+    expectedPath: undefined
+  },
+  {
+    name: "should not resolve typings file (index.d.ts)",
+    absoluteBaseUrl: "/root/",
+    paths: {
+      "lib/*": ["location/*"]
+    },
+    existingFiles: [join("/root", "location", "mylib", "index.d.ts")],
+    requestedModule: "lib/mylib",
+    expectedPath: undefined
+  }
+];
diff --git a/node_modules/tsconfig-paths/test/filesystem-tests.ts b/node_modules/tsconfig-paths/test/filesystem-tests.ts
new file mode 100644
index 0000000..49d6058
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/filesystem-tests.ts
@@ -0,0 +1,46 @@
+import { assert } from "chai";
+import * as Filesystem from "../src/filesystem";
+import * as path from "path";
+
+describe("filesystem", () => {
+  const fileThatExists = path.join(__dirname, "../package.json");
+  const fileThatNotExists = path.join(__dirname, "../package2.json");
+
+  it("should find file that exists, sync", () => {
+    const result = Filesystem.fileExistsSync(fileThatExists);
+    assert.equal(result, true);
+  });
+
+  it("should not find file that not exists, sync", () => {
+    const result = Filesystem.fileExistsSync(fileThatNotExists);
+    assert.equal(result, false);
+  });
+
+  it("should find file that exists, async", done => {
+    Filesystem.fileExistsAsync(fileThatExists, (_err, result) => {
+      assert.equal(result, true);
+      done();
+    });
+  });
+
+  it("should not find file that not exists, async", done => {
+    Filesystem.fileExistsAsync(fileThatNotExists, (_err, result) => {
+      assert.equal(result, false);
+      done();
+    });
+  });
+
+  it("should load json, sync", () => {
+    const result = Filesystem.readJsonFromDiskSync(fileThatExists);
+    assert.isOk(result);
+    assert.equal(result.main, "lib/index.js");
+  });
+
+  it("should load json, async", done => {
+    Filesystem.readJsonFromDiskAsync(fileThatExists, (_err, result) => {
+      assert.isOk(result);
+      assert.equal(result.main, "lib/index.js");
+      done();
+    });
+  });
+});
diff --git a/node_modules/tsconfig-paths/test/mapping-entry-test.ts b/node_modules/tsconfig-paths/test/mapping-entry-test.ts
new file mode 100644
index 0000000..004888f
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/mapping-entry-test.ts
@@ -0,0 +1,47 @@
+import { assert } from "chai";
+import { getAbsoluteMappingEntries } from "../src/mapping-entry";
+import { join } from "path";
+
+describe("mapping-entry", () => {
+  it("should change to absolute paths and sort in longest prefix order", () => {
+    const result = getAbsoluteMappingEntries(
+      "/absolute/base/url",
+      {
+        "*": ["/foo1", "/foo2"],
+        "longest/pre/fix/*": ["/foo2/bar"],
+        "pre/fix/*": ["/foo3"]
+      },
+      true
+    );
+    assert.deepEqual(result, [
+      {
+        pattern: "longest/pre/fix/*",
+        paths: [join("/absolute", "base", "url", "foo2", "bar")]
+      },
+      {
+        pattern: "pre/fix/*",
+        paths: [join("/absolute", "base", "url", "foo3")]
+      },
+      {
+        pattern: "*",
+        paths: [
+          join("/absolute", "base", "url", "foo1"),
+          join("/absolute", "base", "url", "foo2")
+        ]
+      }
+    ]);
+  });
+
+  it("should should add a match-all pattern when requested", () => {
+    let result = getAbsoluteMappingEntries("/absolute/base/url", {}, true);
+    assert.deepEqual(result, [
+      {
+        pattern: "*",
+        paths: [join("/absolute", "base", "url", "*")]
+      }
+    ]);
+
+    result = getAbsoluteMappingEntries("/absolute/base/url", {}, false);
+    assert.deepEqual(result, []);
+  });
+});
diff --git a/node_modules/tsconfig-paths/test/match-path-async-tests.ts b/node_modules/tsconfig-paths/test/match-path-async-tests.ts
new file mode 100644
index 0000000..e55bcc6
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/match-path-async-tests.ts
@@ -0,0 +1,27 @@
+import { assert } from "chai";
+import { createMatchPathAsync } from "../src/match-path-async";
+import * as Tests from "./data/match-path-data";
+
+describe("match-path-async", () => {
+  Tests.tests.forEach(t =>
+    it(t.name, done => {
+      const matchPath = createMatchPathAsync(
+        t.absoluteBaseUrl,
+        t.paths,
+        t.mainFields,
+        t.addMatchAll
+      );
+      matchPath(
+        t.requestedModule,
+        (_path, callback) => callback(undefined, t.packageJson),
+        (path, callback) =>
+          callback(undefined, t.existingFiles.indexOf(path) !== -1),
+        t.extensions,
+        (_err, result) => {
+          assert.equal(result, t.expectedPath);
+          done();
+        }
+      );
+    })
+  );
+});
diff --git a/node_modules/tsconfig-paths/test/match-path-sync-tests.ts b/node_modules/tsconfig-paths/test/match-path-sync-tests.ts
new file mode 100644
index 0000000..668bc4a
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/match-path-sync-tests.ts
@@ -0,0 +1,23 @@
+import { assert } from "chai";
+import { createMatchPath } from "../src/match-path-sync";
+import * as Tests from "./data/match-path-data";
+
+describe("match-path-sync", () => {
+  Tests.tests.forEach(t =>
+    it(t.name, () => {
+      const matchPath = createMatchPath(
+        t.absoluteBaseUrl,
+        t.paths,
+        t.mainFields,
+        t.addMatchAll
+      );
+      const result = matchPath(
+        t.requestedModule,
+        (_: string) => t.packageJson,
+        (name: string) => t.existingFiles.indexOf(name) !== -1, // fileExists
+        t.extensions
+      );
+      assert.equal(result, t.expectedPath);
+    })
+  );
+});
diff --git a/node_modules/tsconfig-paths/test/mocha.opts b/node_modules/tsconfig-paths/test/mocha.opts
new file mode 100644
index 0000000..1c00f5f
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/mocha.opts
@@ -0,0 +1,3 @@
+--require ts-node/register
+--recursive test/
+test/**/*.ts
diff --git a/node_modules/tsconfig-paths/test/try-path-tests.ts b/node_modules/tsconfig-paths/test/try-path-tests.ts
new file mode 100644
index 0000000..da8efdf
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/try-path-tests.ts
@@ -0,0 +1,99 @@
+import { assert } from "chai";
+import { getPathsToTry } from "../src/try-path";
+import { join } from "path";
+
+describe("mapping-entry", () => {
+  const abosolutePathMappings = [
+    {
+      pattern: "longest/pre/fix/*",
+      paths: [join("/absolute", "base", "url", "foo2", "bar")]
+    },
+    { pattern: "pre/fix/*", paths: [join("/absolute", "base", "url", "foo3")] },
+    { pattern: "*", paths: [join("/absolute", "base", "url", "foo1")] }
+  ];
+  it("should return no paths for relative requested module", () => {
+    const result = getPathsToTry(
+      [".ts", "tsx"],
+      abosolutePathMappings,
+      "./requested-module"
+    );
+    assert.deepEqual(result, undefined);
+  });
+
+  it("should return no paths if no pattern match the requested module", () => {
+    const result = getPathsToTry(
+      [".ts", "tsx"],
+      [
+        {
+          pattern: "longest/pre/fix/*",
+          paths: [join("/absolute", "base", "url", "foo2", "bar")]
+        },
+        {
+          pattern: "pre/fix/*",
+          paths: [join("/absolute", "base", "url", "foo3")]
+        }
+      ],
+      "requested-module"
+    );
+    assert.deepEqual(result, undefined);
+  });
+
+  it("should get all paths that matches requested module", () => {
+    const result = getPathsToTry(
+      [".ts", ".tsx"],
+      abosolutePathMappings,
+      "longest/pre/fix/requested-module"
+    );
+    assert.deepEqual(result, [
+      // "longest/pre/fix/*"
+      { type: "file", path: join("/absolute", "base", "url", "foo2", "bar") },
+      {
+        type: "extension",
+        path: join("/absolute", "base", "url", "foo2", "bar.ts")
+      },
+      {
+        type: "extension",
+        path: join("/absolute", "base", "url", "foo2", "bar.tsx")
+      },
+      {
+        type: "package",
+        path: join("/absolute", "base", "url", "foo2", "bar", "package.json")
+      },
+      {
+        type: "index",
+        path: join("/absolute", "base", "url", "foo2", "bar", "index.ts")
+      },
+      {
+        type: "index",
+        path: join("/absolute", "base", "url", "foo2", "bar", "index.tsx")
+      },
+      // "*"
+      { type: "file", path: join("/absolute", "base", "url", "foo1") },
+      { type: "extension", path: join("/absolute", "base", "url", "foo1.ts") },
+      { type: "extension", path: join("/absolute", "base", "url", "foo1.tsx") },
+      {
+        type: "package",
+        path: join("/absolute", "base", "url", "foo1", "package.json")
+      },
+      {
+        type: "index",
+        path: join("/absolute", "base", "url", "foo1", "index.ts")
+      },
+      {
+        type: "index",
+        path: join("/absolute", "base", "url", "foo1", "index.tsx")
+      }
+    ]);
+  });
+});
+
+// describe("match-star", () => {
+//   it("should match star in last position", () => {
+//     const result = matchStar("lib/*", "lib/mylib");
+//     assert.equal(result, "mylib");
+//   });
+//   it("should match star in first position", () => {
+//     const result = matchStar("*/lib", "mylib/lib");
+//     assert.equal(result, "mylib");
+//   });
+// });
diff --git a/node_modules/tsconfig-paths/test/tsconfig-loader-tests.ts b/node_modules/tsconfig-paths/test/tsconfig-loader-tests.ts
new file mode 100644
index 0000000..002bcb4
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/tsconfig-loader-tests.ts
@@ -0,0 +1,203 @@
+import { assert } from "chai";
+import {
+  loadTsconfig,
+  tsConfigLoader,
+  walkForTsConfig
+} from "../src/tsconfig-loader";
+import { join } from "path";
+
+describe("tsconfig-loader", () => {
+  it("should find tsconfig in cwd", () => {
+    const result = tsConfigLoader({
+      cwd: "/foo/bar",
+      getEnv: (_: string) => undefined,
+      loadSync: (cwd: string) => {
+        return {
+          tsConfigPath: `${cwd}/tsconfig.json`,
+          baseUrl: "./",
+          paths: {}
+        };
+      }
+    });
+
+    assert.equal(result.tsConfigPath, "/foo/bar/tsconfig.json");
+  });
+
+  it("should return loaderResult.tsConfigPath as undefined when not found", () => {
+    const result = tsConfigLoader({
+      cwd: "/foo/bar",
+      getEnv: (_: string) => undefined,
+      loadSync: (_: string) => {
+        return {
+          tsConfigPath: undefined,
+          baseUrl: "./",
+          paths: {}
+        };
+      }
+    });
+
+    assert.isUndefined(result.tsConfigPath);
+  });
+
+  it("should use TS_NODE_PROJECT env if exists", () => {
+    const result = tsConfigLoader({
+      cwd: "/foo/bar",
+      getEnv: (key: string) =>
+        key === "TS_NODE_PROJECT" ? "/foo/baz" : undefined,
+      loadSync: (cwd: string, fileName: string) => {
+        if (cwd === "/foo/bar" && fileName === "/foo/baz") {
+          return {
+            tsConfigPath: "/foo/baz/tsconfig.json",
+            baseUrl: "./",
+            paths: {}
+          };
+        }
+
+        return {
+          tsConfigPath: undefined,
+          baseUrl: "./",
+          paths: {}
+        };
+      }
+    });
+
+    assert.equal(result.tsConfigPath, "/foo/baz/tsconfig.json");
+  });
+});
+
+describe("walkForTsConfig", () => {
+  it("should find tsconfig in starting directory", () => {
+    const pathToTsconfig = join("/root", "dir1", "tsconfig.json");
+    const res = walkForTsConfig(
+      join("/root", "dir1"),
+      path => path === pathToTsconfig
+    );
+    assert.equal(res, pathToTsconfig);
+  });
+
+  it("should find tsconfig in parent directory", () => {
+    const pathToTsconfig = join("/root", "tsconfig.json");
+    const res = walkForTsConfig(
+      join("/root", "dir1"),
+      path => path === pathToTsconfig
+    );
+    assert.equal(res, pathToTsconfig);
+  });
+
+  it("should return undefined when reaching the top", () => {
+    const res = walkForTsConfig(join("/root", "dir1", "kalle"), () => false);
+    assert.equal(res, undefined);
+  });
+});
+
+describe("loadConfig", () => {
+  it("It should load a config", () => {
+    const config = { compilerOptions: { baseUrl: "hej" } };
+    const res = loadTsconfig(
+      "/root/dir1/tsconfig.json",
+      path => path === "/root/dir1/tsconfig.json",
+      _ => JSON.stringify(config)
+    );
+    assert.deepEqual(res, config);
+  });
+
+  it("It should load a config with comments", () => {
+    const config = { compilerOptions: { baseUrl: "hej" } };
+    const res = loadTsconfig(
+      "/root/dir1/tsconfig.json",
+      path => path === "/root/dir1/tsconfig.json",
+      _ => `{
+          // my comment
+          "compilerOptions": { 
+            "baseUrl": "hej"
+          }
+        }`
+    );
+    assert.deepEqual(res, config);
+  });
+
+  it("It should load a config with trailing commas", () => {
+    const config = { compilerOptions: { baseUrl: "hej" } };
+    const res = loadTsconfig(
+      "/root/dir1/tsconfig.json",
+      path => path === "/root/dir1/tsconfig.json",
+      _ => `{
+          "compilerOptions": { 
+            "baseUrl": "hej",
+          },
+        }`
+    );
+    assert.deepEqual(res, config);
+  });
+
+  it("It should load a config with extends and overwrite all options", () => {
+    const firstConfig = {
+      extends: "../base-config.json",
+      compilerOptions: { baseUrl: "kalle", paths: { foo: ["bar2"] } }
+    };
+    const firstConfigPath = join("/root", "dir1", "tsconfig.json");
+    const baseConfig = {
+      compilerOptions: {
+        baseUrl: "olle",
+        paths: { foo: ["bar1"] },
+        strict: true
+      }
+    };
+    const baseConfigPath = join("/root", "base-config.json");
+    const res = loadTsconfig(
+      join("/root", "dir1", "tsconfig.json"),
+      path => path === firstConfigPath || path === baseConfigPath,
+      path => {
+        if (path === firstConfigPath) {
+          return JSON.stringify(firstConfig);
+        }
+        if (path === baseConfigPath) {
+          return JSON.stringify(baseConfig);
+        }
+        return "";
+      }
+    );
+
+    assert.deepEqual(res, {
+      extends: "../base-config.json",
+      compilerOptions: {
+        baseUrl: "kalle",
+        paths: { foo: ["bar2"] },
+        strict: true
+      }
+    });
+  });
+
+  it("Should use baseUrl relative to location of extended tsconfig", () => {
+    const firstConfig = { compilerOptions: { baseUrl: "." } };
+    const firstConfigPath = join("/root", "first-config.json");
+    const secondConfig = { extends: "../first-config.json" };
+    const secondConfigPath = join("/root", "dir1", "second-config.json");
+    const thirdConfig = { extends: "../second-config.json" };
+    const thirdConfigPath = join("/root", "dir1", "dir2", "third-config.json");
+    const res = loadTsconfig(
+      join("/root", "dir1", "dir2", "third-config.json"),
+      path =>
+        path === firstConfigPath ||
+        path === secondConfigPath ||
+        path === thirdConfigPath,
+      path => {
+        if (path === firstConfigPath) {
+          return JSON.stringify(firstConfig);
+        }
+        if (path === secondConfigPath) {
+          return JSON.stringify(secondConfig);
+        }
+        if (path === thirdConfigPath) {
+          return JSON.stringify(thirdConfig);
+        }
+        return "";
+      }
+    );
+
+    assert.deepEqual(res, {
+      extends: "../second-config.json",
+      compilerOptions: { baseUrl: join("..", "..") }
+    });
+  });
+});
diff --git a/node_modules/tsconfig-paths/test/tsconfig-named.json b/node_modules/tsconfig-paths/test/tsconfig-named.json
new file mode 100644
index 0000000..a337580
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/tsconfig-named.json
@@ -0,0 +1,10 @@
+{
+  "extends": "../base-tsconfig.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "module": "commonjs",
+    "target": "es6",
+    "sourceMap": true,
+    "outDir": "./js_out"
+  }
+}
diff --git a/node_modules/tsconfig-paths/test/tsconfig.json b/node_modules/tsconfig-paths/test/tsconfig.json
new file mode 100644
index 0000000..12f379d
--- /dev/null
+++ b/node_modules/tsconfig-paths/test/tsconfig.json
@@ -0,0 +1,9 @@
+{
+  "extends": "../base-tsconfig.json",
+  "compilerOptions": {
+    "module": "commonjs",
+    "target": "es6",
+    "sourceMap": true,
+    "outDir": "./js_out"
+  }
+}
diff --git a/node_modules/tsconfig-paths/tslint.json b/node_modules/tsconfig-paths/tslint.json
new file mode 100644
index 0000000..4cb0bca
--- /dev/null
+++ b/node_modules/tsconfig-paths/tslint.json
@@ -0,0 +1,88 @@
+{
+  "rules": {
+    "no-any": true,
+    "no-internal-module": true,
+    "no-namespace": true,
+    "no-reference": true,
+    "no-var-requires": true,
+    "typedef": [true, "call-signature", "parameter", "property-declaration"],
+    "typedef-whitespace": [
+      true,
+      {
+        "call-signature": "nospace",
+        "index-signature": "nospace",
+        "parameter": "nospace",
+        "property-declaration": "nospace",
+        "variable-declaration": "nospace"
+      },
+      {
+        "call-signature": "onespace",
+        "index-signature": "onespace",
+        "parameter": "onespace",
+        "property-declaration": "onespace",
+        "variable-declaration": "onespace"
+      }
+    ],
+    "curly": true,
+    "forin": true,
+    "label-position": true,
+    "no-arg": true,
+    "no-bitwise": true,
+    "no-conditional-assignment": true,
+    // "no-console": [
+    //   true,
+    //   "log"
+    // ],
+    "no-construct": true,
+    "no-debugger": true,
+    "no-duplicate-variable": true,
+    "no-empty": true,
+    "no-eval": true,
+    "no-invalid-this": true,
+    // "no-null-keyword": true,
+    "no-shadowed-variable": true,
+    // "no-string-literal": true,
+    "no-switch-case-fall-through": true,
+    "no-unsafe-finally": true,
+    "no-unused-expression": true,
+    "no-var-keyword": true,
+    "radix": true,
+    "switch-default": true,
+    "triple-equals": true,
+    "use-isnan": true,
+    "eofline": true,
+    "indent": [true, "spaces"],
+    "max-file-line-count": [true, 800],
+    "max-line-length": [true, 160],
+    "no-default-export": true,
+    "no-mergeable-namespace": true,
+    "no-require-imports": true,
+    "align": [true, "statements"],
+    //"arrow-parens": true,
+    "class-name": true,
+    "jsdoc-format": true,
+    "new-parens": true,
+    "no-angle-bracket-type-assertion": true,
+    "no-consecutive-blank-lines": [true, 1],
+    "no-parameter-properties": true,
+    // "object-literal-key-quotes": [
+    //   true,
+    //   "as-needed"
+    // ],
+    "one-line": [
+      true,
+      "check-catch",
+      "check-finally",
+      "check-else",
+      "check-open-brace",
+      "check-whitespace"
+    ],
+    "one-variable-per-declaration": [true],
+    "variable-name": [
+      true,
+      "ban-keywords",
+      "check-format",
+      "allow-leading-underscore"
+    ]
+  }
+}
diff --git a/node_modules/whatwg-fetch/LICENSE b/node_modules/whatwg-fetch/LICENSE
deleted file mode 100644
index 0e319d5..0000000
--- a/node_modules/whatwg-fetch/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2014-2016 GitHub, Inc.
-
-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.
diff --git a/node_modules/whatwg-fetch/README.md b/node_modules/whatwg-fetch/README.md
deleted file mode 100644
index 32cc3c2..0000000
--- a/node_modules/whatwg-fetch/README.md
+++ /dev/null
@@ -1,283 +0,0 @@
-# window.fetch polyfill
-
-The `fetch()` function is a Promise-based mechanism for programmatically making
-web requests in the browser. This project is a polyfill that implements a subset
-of the standard [Fetch specification][], enough to make `fetch` a viable
-replacement for most uses of XMLHttpRequest in traditional web applications.
-
-This project adheres to the [Open Code of Conduct][]. By participating, you are
-expected to uphold this code.
-
-## Table of Contents
-
-* [Read this first](#read-this-first)
-* [Installation](#installation)
-* [Usage](#usage)
-  * [HTML](#html)
-  * [JSON](#json)
-  * [Response metadata](#response-metadata)
-  * [Post form](#post-form)
-  * [Post JSON](#post-json)
-  * [File upload](#file-upload)
-  * [Caveats](#caveats)
-    * [Handling HTTP error statuses](#handling-http-error-statuses)
-    * [Sending cookies](#sending-cookies)
-    * [Receiving cookies](#receiving-cookies)
-    * [Obtaining the Response URL](#obtaining-the-response-url)
-* [Browser Support](#browser-support)
-
-## Read this first
-
-* If you believe you found a bug with how `fetch` behaves in Chrome or Firefox,
-  please **don't open an issue in this repository**. This project is a
-  _polyfill_, and since Chrome and Firefox both implement the `window.fetch`
-  function natively, no code from this project actually takes any effect in
-  these browsers. See [Browser support](#browser-support) for detailed
-  information.
-
-* If you have trouble **making a request to another domain** (a different
-  subdomain or port number also constitutes another domain), please familiarize
-  yourself with all the intricacies and limitations of [CORS][] requests.
-  Because CORS requires participation of the server by implementing specific
-  HTTP response headers, it is often nontrivial to set up or debug. CORS is
-  exclusively handled by the browser's internal mechanisms which this polyfill
-  cannot influence.
-
-* If you have trouble **maintaining the user's session** or [CSRF][] protection
-  through `fetch` requests, please ensure that you've read and understood the
-  [Sending cookies](#sending-cookies) section. `fetch` doesn't send cookies
-  unless you ask it to.
-
-* This project **doesn't work under Node.js environments**. It's meant for web
-  browsers only. You should ensure that your application doesn't try to package
-  and run this on the server.
-
-* If you have an idea for a new feature of `fetch`, **submit your feature
-  requests** to the [specification's repository](https://github.com/whatwg/fetch/issues).
-  We only add features and APIs that are part of the [Fetch specification][].
-
-## Installation
-
-* `npm install whatwg-fetch --save`; or
-
-* `bower install fetch`; or
-
-* `yarn add whatwg-fetch`.
-
-You will also need a Promise polyfill for [older browsers](http://caniuse.com/#feat=promises).
-We recommend [taylorhakes/promise-polyfill](https://github.com/taylorhakes/promise-polyfill)
-for its small size and Promises/A+ compatibility.
-
-For use with webpack, add this package in the `entry` configuration option
-before your application entry point:
-
-```javascript
-entry: ['whatwg-fetch', ...]
-```
-
-For Babel and ES2015+, make sure to import the file:
-
-```javascript
-import 'whatwg-fetch'
-```
-
-## Usage
-
-For a more comprehensive API reference that this polyfill supports, refer to
-https://github.github.io/fetch/.
-
-### HTML
-
-```javascript
-fetch('/users.html')
-  .then(function(response) {
-    return response.text()
-  }).then(function(body) {
-    document.body.innerHTML = body
-  })
-```
-
-### JSON
-
-```javascript
-fetch('/users.json')
-  .then(function(response) {
-    return response.json()
-  }).then(function(json) {
-    console.log('parsed json', json)
-  }).catch(function(ex) {
-    console.log('parsing failed', ex)
-  })
-```
-
-### Response metadata
-
-```javascript
-fetch('/users.json').then(function(response) {
-  console.log(response.headers.get('Content-Type'))
-  console.log(response.headers.get('Date'))
-  console.log(response.status)
-  console.log(response.statusText)
-})
-```
-
-### Post form
-
-```javascript
-var form = document.querySelector('form')
-
-fetch('/users', {
-  method: 'POST',
-  body: new FormData(form)
-})
-```
-
-### Post JSON
-
-```javascript
-fetch('/users', {
-  method: 'POST',
-  headers: {
-    'Content-Type': 'application/json'
-  },
-  body: JSON.stringify({
-    name: 'Hubot',
-    login: 'hubot',
-  })
-})
-```
-
-### File upload
-
-```javascript
-var input = document.querySelector('input[type="file"]')
-
-var data = new FormData()
-data.append('file', input.files[0])
-data.append('user', 'hubot')
-
-fetch('/avatars', {
-  method: 'POST',
-  body: data
-})
-```
-
-### Caveats
-
-The `fetch` specification differs from `jQuery.ajax()` in mainly two ways that
-bear keeping in mind:
-
-* The Promise returned from `fetch()` **won't reject on HTTP error status**
-  even if the response is an HTTP 404 or 500. Instead, it will resolve normally,
-  and it will only reject on network failure or if anything prevented the
-  request from completing.
-
-* By default, `fetch` **won't send or receive any cookies** from the server,
-  resulting in unauthenticated requests if the site relies on maintaining a user
-  session. See [Sending cookies](#sending-cookies) for how to opt into cookie
-  handling.
-
-#### Handling HTTP error statuses
-
-To have `fetch` Promise reject on HTTP error statuses, i.e. on any non-2xx
-status, define a custom response handler:
-
-```javascript
-function checkStatus(response) {
-  if (response.status >= 200 && response.status < 300) {
-    return response
-  } else {
-    var error = new Error(response.statusText)
-    error.response = response
-    throw error
-  }
-}
-
-function parseJSON(response) {
-  return response.json()
-}
-
-fetch('/users')
-  .then(checkStatus)
-  .then(parseJSON)
-  .then(function(data) {
-    console.log('request succeeded with JSON response', data)
-  }).catch(function(error) {
-    console.log('request failed', error)
-  })
-```
-
-#### Sending cookies
-
-To automatically send cookies for the current domain, the `credentials` option
-must be provided:
-
-```javascript
-fetch('/users', {
-  credentials: 'same-origin'
-})
-```
-
-The "same-origin" value makes `fetch` behave similarly to XMLHttpRequest with
-regards to cookies. Otherwise, cookies won't get sent, resulting in these
-requests not preserving the authentication session.
-
-For [CORS][] requests, use the "include" value to allow sending credentials to
-other domains:
-
-```javascript
-fetch('https://example.com:1234/users', {
-  credentials: 'include'
-})
-```
-
-#### Receiving cookies
-
-As with XMLHttpRequest, the `Set-Cookie` response header returned from the
-server is a [forbidden header name][] and therefore can't be programmatically
-read with `response.headers.get()`. Instead, it's the browser's responsibility
-to handle new cookies being set (if applicable to the current URL). Unless they
-are HTTP-only, new cookies will be available through `document.cookie`.
-
-Bear in mind that the default behavior of `fetch` is to ignore the `Set-Cookie`
-header completely. To opt into accepting cookies from the server, you must use
-the `credentials` option.
-
-#### Obtaining the Response URL
-
-Due to limitations of XMLHttpRequest, the `response.url` value might not be
-reliable after HTTP redirects on older browsers.
-
-The solution is to configure the server to set the response HTTP header
-`X-Request-URL` to the current URL after any redirect that might have happened.
-It should be safe to set it unconditionally.
-
-``` ruby
-# Ruby on Rails controller example
-response.headers['X-Request-URL'] = request.url
-```
-
-This server workaround is necessary if you need reliable `response.url` in
-Firefox < 32, Chrome < 37, Safari, or IE.
-
-## Browser Support
-
-- Chrome
-- Firefox
-- Safari 6.1+
-- Internet Explorer 10+
-
-Note: modern browsers such as Chrome, Firefox, Microsoft Edge, and Safari contain native
-implementations of `window.fetch`, therefore the code from this polyfill doesn't
-have any effect on those browsers. If you believe you've encountered an error
-with how `window.fetch` is implemented in any of these browsers, you should file
-an issue with that browser vendor instead of this project.
-
-
-  [fetch specification]: https://fetch.spec.whatwg.org
-  [open code of conduct]: http://todogroup.org/opencodeofconduct/#fetch/opensource@github.com
-  [cors]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-    "Cross-origin resource sharing"
-  [csrf]: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
-    "Cross-site request forgery"
-  [forbidden header name]: https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
diff --git a/node_modules/whatwg-fetch/fetch.js b/node_modules/whatwg-fetch/fetch.js
deleted file mode 100644
index f2f466d..0000000
--- a/node_modules/whatwg-fetch/fetch.js
+++ /dev/null
@@ -1,466 +0,0 @@
-(function(self) {
-  'use strict';
-
-  if (self.fetch) {
-    return
-  }
-
-  var support = {
-    searchParams: 'URLSearchParams' in self,
-    iterable: 'Symbol' in self && 'iterator' in Symbol,
-    blob: 'FileReader' in self && 'Blob' in self && (function() {
-      try {
-        new Blob()
-        return true
-      } catch(e) {
-        return false
-      }
-    })(),
-    formData: 'FormData' in self,
-    arrayBuffer: 'ArrayBuffer' in self
-  }
-
-  if (support.arrayBuffer) {
-    var viewClasses = [
-      '[object Int8Array]',
-      '[object Uint8Array]',
-      '[object Uint8ClampedArray]',
-      '[object Int16Array]',
-      '[object Uint16Array]',
-      '[object Int32Array]',
-      '[object Uint32Array]',
-      '[object Float32Array]',
-      '[object Float64Array]'
-    ]
-
-    var isDataView = function(obj) {
-      return obj && DataView.prototype.isPrototypeOf(obj)
-    }
-
-    var isArrayBufferView = ArrayBuffer.isView || function(obj) {
-      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
-    }
-  }
-
-  function normalizeName(name) {
-    if (typeof name !== 'string') {
-      name = String(name)
-    }
-    if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
-      throw new TypeError('Invalid character in header field name')
-    }
-    return name.toLowerCase()
-  }
-
-  function normalizeValue(value) {
-    if (typeof value !== 'string') {
-      value = String(value)
-    }
-    return value
-  }
-
-  // Build a destructive iterator for the value list
-  function iteratorFor(items) {
-    var iterator = {
-      next: function() {
-        var value = items.shift()
-        return {done: value === undefined, value: value}
-      }
-    }
-
-    if (support.iterable) {
-      iterator[Symbol.iterator] = function() {
-        return iterator
-      }
-    }
-
-    return iterator
-  }
-
-  function Headers(headers) {
-    this.map = {}
-
-    if (headers instanceof Headers) {
-      headers.forEach(function(value, name) {
-        this.append(name, value)
-      }, this)
-    } else if (Array.isArray(headers)) {
-      headers.forEach(function(header) {
-        this.append(header[0], header[1])
-      }, this)
-    } else if (headers) {
-      Object.getOwnPropertyNames(headers).forEach(function(name) {
-        this.append(name, headers[name])
-      }, this)
-    }
-  }
-
-  Headers.prototype.append = function(name, value) {
-    name = normalizeName(name)
-    value = normalizeValue(value)
-    var oldValue = this.map[name]
-    this.map[name] = oldValue ? oldValue+','+value : value
-  }
-
-  Headers.prototype['delete'] = function(name) {
-    delete this.map[normalizeName(name)]
-  }
-
-  Headers.prototype.get = function(name) {
-    name = normalizeName(name)
-    return this.has(name) ? this.map[name] : null
-  }
-
-  Headers.prototype.has = function(name) {
-    return this.map.hasOwnProperty(normalizeName(name))
-  }
-
-  Headers.prototype.set = function(name, value) {
-    this.map[normalizeName(name)] = normalizeValue(value)
-  }
-
-  Headers.prototype.forEach = function(callback, thisArg) {
-    for (var name in this.map) {
-      if (this.map.hasOwnProperty(name)) {
-        callback.call(thisArg, this.map[name], name, this)
-      }
-    }
-  }
-
-  Headers.prototype.keys = function() {
-    var items = []
-    this.forEach(function(value, name) { items.push(name) })
-    return iteratorFor(items)
-  }
-
-  Headers.prototype.values = function() {
-    var items = []
-    this.forEach(function(value) { items.push(value) })
-    return iteratorFor(items)
-  }
-
-  Headers.prototype.entries = function() {
-    var items = []
-    this.forEach(function(value, name) { items.push([name, value]) })
-    return iteratorFor(items)
-  }
-
-  if (support.iterable) {
-    Headers.prototype[Symbol.iterator] = Headers.prototype.entries
-  }
-
-  function consumed(body) {
-    if (body.bodyUsed) {
-      return Promise.reject(new TypeError('Already read'))
-    }
-    body.bodyUsed = true
-  }
-
-  function fileReaderReady(reader) {
-    return new Promise(function(resolve, reject) {
-      reader.onload = function() {
-        resolve(reader.result)
-      }
-      reader.onerror = function() {
-        reject(reader.error)
-      }
-    })
-  }
-
-  function readBlobAsArrayBuffer(blob) {
-    var reader = new FileReader()
-    var promise = fileReaderReady(reader)
-    reader.readAsArrayBuffer(blob)
-    return promise
-  }
-
-  function readBlobAsText(blob) {
-    var reader = new FileReader()
-    var promise = fileReaderReady(reader)
-    reader.readAsText(blob)
-    return promise
-  }
-
-  function readArrayBufferAsText(buf) {
-    var view = new Uint8Array(buf)
-    var chars = new Array(view.length)
-
-    for (var i = 0; i < view.length; i++) {
-      chars[i] = String.fromCharCode(view[i])
-    }
-    return chars.join('')
-  }
-
-  function bufferClone(buf) {
-    if (buf.slice) {
-      return buf.slice(0)
-    } else {
-      var view = new Uint8Array(buf.byteLength)
-      view.set(new Uint8Array(buf))
-      return view.buffer
-    }
-  }
-
-  function Body() {
-    this.bodyUsed = false
-
-    this._initBody = function(body) {
-      this._bodyInit = body
-      if (!body) {
-        this._bodyText = ''
-      } else if (typeof body === 'string') {
-        this._bodyText = body
-      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
-        this._bodyBlob = body
-      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
-        this._bodyFormData = body
-      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-        this._bodyText = body.toString()
-      } else if (support.arrayBuffer && support.blob && isDataView(body)) {
-        this._bodyArrayBuffer = bufferClone(body.buffer)
-        // IE 10-11 can't handle a DataView body.
-        this._bodyInit = new Blob([this._bodyArrayBuffer])
-      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
-        this._bodyArrayBuffer = bufferClone(body)
-      } else {
-        throw new Error('unsupported BodyInit type')
-      }
-
-      if (!this.headers.get('content-type')) {
-        if (typeof body === 'string') {
-          this.headers.set('content-type', 'text/plain;charset=UTF-8')
-        } else if (this._bodyBlob && this._bodyBlob.type) {
-          this.headers.set('content-type', this._bodyBlob.type)
-        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
-          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
-        }
-      }
-    }
-
-    if (support.blob) {
-      this.blob = function() {
-        var rejected = consumed(this)
-        if (rejected) {
-          return rejected
-        }
-
-        if (this._bodyBlob) {
-          return Promise.resolve(this._bodyBlob)
-        } else if (this._bodyArrayBuffer) {
-          return Promise.resolve(new Blob([this._bodyArrayBuffer]))
-        } else if (this._bodyFormData) {
-          throw new Error('could not read FormData body as blob')
-        } else {
-          return Promise.resolve(new Blob([this._bodyText]))
-        }
-      }
-
-      this.arrayBuffer = function() {
-        if (this._bodyArrayBuffer) {
-          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
-        } else {
-          return this.blob().then(readBlobAsArrayBuffer)
-        }
-      }
-    }
-
-    this.text = function() {
-      var rejected = consumed(this)
-      if (rejected) {
-        return rejected
-      }
-
-      if (this._bodyBlob) {
-        return readBlobAsText(this._bodyBlob)
-      } else if (this._bodyArrayBuffer) {
-        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
-      } else if (this._bodyFormData) {
-        throw new Error('could not read FormData body as text')
-      } else {
-        return Promise.resolve(this._bodyText)
-      }
-    }
-
-    if (support.formData) {
-      this.formData = function() {
-        return this.text().then(decode)
-      }
-    }
-
-    this.json = function() {
-      return this.text().then(JSON.parse)
-    }
-
-    return this
-  }
-
-  // HTTP methods whose capitalization should be normalized
-  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']
-
-  function normalizeMethod(method) {
-    var upcased = method.toUpperCase()
-    return (methods.indexOf(upcased) > -1) ? upcased : method
-  }
-
-  function Request(input, options) {
-    options = options || {}
-    var body = options.body
-
-    if (input instanceof Request) {
-      if (input.bodyUsed) {
-        throw new TypeError('Already read')
-      }
-      this.url = input.url
-      this.credentials = input.credentials
-      if (!options.headers) {
-        this.headers = new Headers(input.headers)
-      }
-      this.method = input.method
-      this.mode = input.mode
-      if (!body && input._bodyInit != null) {
-        body = input._bodyInit
-        input.bodyUsed = true
-      }
-    } else {
-      this.url = String(input)
-    }
-
-    this.credentials = options.credentials || this.credentials || 'omit'
-    if (options.headers || !this.headers) {
-      this.headers = new Headers(options.headers)
-    }
-    this.method = normalizeMethod(options.method || this.method || 'GET')
-    this.mode = options.mode || this.mode || null
-    this.referrer = null
-
-    if ((this.method === 'GET' || this.method === 'HEAD') && body) {
-      throw new TypeError('Body not allowed for GET or HEAD requests')
-    }
-    this._initBody(body)
-  }
-
-  Request.prototype.clone = function() {
-    return new Request(this, { body: this._bodyInit })
-  }
-
-  function decode(body) {
-    var form = new FormData()
-    body.trim().split('&').forEach(function(bytes) {
-      if (bytes) {
-        var split = bytes.split('=')
-        var name = split.shift().replace(/\+/g, ' ')
-        var value = split.join('=').replace(/\+/g, ' ')
-        form.append(decodeURIComponent(name), decodeURIComponent(value))
-      }
-    })
-    return form
-  }
-
-  function parseHeaders(rawHeaders) {
-    var headers = new Headers()
-    // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
-    // https://tools.ietf.org/html/rfc7230#section-3.2
-    var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ')
-    preProcessedHeaders.split(/\r?\n/).forEach(function(line) {
-      var parts = line.split(':')
-      var key = parts.shift().trim()
-      if (key) {
-        var value = parts.join(':').trim()
-        headers.append(key, value)
-      }
-    })
-    return headers
-  }
-
-  Body.call(Request.prototype)
-
-  function Response(bodyInit, options) {
-    if (!options) {
-      options = {}
-    }
-
-    this.type = 'default'
-    this.status = options.status === undefined ? 200 : options.status
-    this.ok = this.status >= 200 && this.status < 300
-    this.statusText = 'statusText' in options ? options.statusText : 'OK'
-    this.headers = new Headers(options.headers)
-    this.url = options.url || ''
-    this._initBody(bodyInit)
-  }
-
-  Body.call(Response.prototype)
-
-  Response.prototype.clone = function() {
-    return new Response(this._bodyInit, {
-      status: this.status,
-      statusText: this.statusText,
-      headers: new Headers(this.headers),
-      url: this.url
-    })
-  }
-
-  Response.error = function() {
-    var response = new Response(null, {status: 0, statusText: ''})
-    response.type = 'error'
-    return response
-  }
-
-  var redirectStatuses = [301, 302, 303, 307, 308]
-
-  Response.redirect = function(url, status) {
-    if (redirectStatuses.indexOf(status) === -1) {
-      throw new RangeError('Invalid status code')
-    }
-
-    return new Response(null, {status: status, headers: {location: url}})
-  }
-
-  self.Headers = Headers
-  self.Request = Request
-  self.Response = Response
-
-  self.fetch = function(input, init) {
-    return new Promise(function(resolve, reject) {
-      var request = new Request(input, init)
-      var xhr = new XMLHttpRequest()
-
-      xhr.onload = function() {
-        var options = {
-          status: xhr.status,
-          statusText: xhr.statusText,
-          headers: parseHeaders(xhr.getAllResponseHeaders() || '')
-        }
-        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
-        var body = 'response' in xhr ? xhr.response : xhr.responseText
-        resolve(new Response(body, options))
-      }
-
-      xhr.onerror = function() {
-        reject(new TypeError('Network request failed'))
-      }
-
-      xhr.ontimeout = function() {
-        reject(new TypeError('Network request failed'))
-      }
-
-      xhr.open(request.method, request.url, true)
-
-      if (request.credentials === 'include') {
-        xhr.withCredentials = true
-      } else if (request.credentials === 'omit') {
-        xhr.withCredentials = false
-      }
-
-      if ('responseType' in xhr && support.blob) {
-        xhr.responseType = 'blob'
-      }
-
-      request.headers.forEach(function(value, name) {
-        xhr.setRequestHeader(name, value)
-      })
-
-      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
-    })
-  }
-  self.fetch.polyfill = true
-})(typeof self !== 'undefined' ? self : this);
diff --git a/node_modules/whatwg-fetch/package.json b/node_modules/whatwg-fetch/package.json
deleted file mode 100644
index d9581eb..0000000
--- a/node_modules/whatwg-fetch/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "name": "whatwg-fetch",
-  "description": "A window.fetch polyfill.",
-  "version": "2.0.4",
-  "main": "fetch.js",
-  "repository": "github/fetch",
-  "license": "MIT",
-  "devDependencies": {
-    "chai": "1.10.0",
-    "jshint": "2.8.0",
-    "mocha": "2.1.0",
-    "mocha-phantomjs-core": "2.0.1",
-    "promise-polyfill": "6.0.2",
-    "url-search-params": "0.6.1"
-  },
-  "files": [
-    "LICENSE",
-    "fetch.js"
-  ],
-  "scripts": {
-    "test": "make"
-  }
-}
diff --git a/node_modules/xregexp/LICENSE b/node_modules/xregexp/LICENSE
deleted file mode 100644
index 4d80338..0000000
--- a/node_modules/xregexp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2007-present Steven Levithan <http://xregexp.com/>
-
-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.
diff --git a/node_modules/xregexp/README.md b/node_modules/xregexp/README.md
deleted file mode 100644
index e4dccde..0000000
--- a/node_modules/xregexp/README.md
+++ /dev/null
@@ -1,241 +0,0 @@
-# XRegExp 4.3.0
-
-[![Build Status](https://travis-ci.org/slevithan/xregexp.svg?branch=master)](https://travis-ci.org/slevithan/xregexp)
-
-XRegExp provides augmented (and extensible) JavaScript regular expressions. You get modern syntax and flags beyond what browsers support natively. XRegExp is also a regex utility belt with tools to make your grepping and parsing easier, while freeing you from regex cross-browser inconsistencies and other annoyances.
-
-XRegExp supports all native ES6 regular expression syntax. It supports ES5+ browsers, and you can use it with Node.js or as a RequireJS module.
-
-## Performance
-
-XRegExp compiles to native `RegExp` objects. Therefore regexes built with XRegExp perform just as fast as native regular expressions. There is a tiny extra cost when compiling a pattern for the first time.
-
-## Usage examples
-
-```js
-// Using named capture and flag x for free-spacing and line comments
-const date = XRegExp(
-    `(?<year>  [0-9]{4} ) -?  # year
-     (?<month> [0-9]{2} ) -?  # month
-     (?<day>   [0-9]{2} )     # day`, 'x');
-
-// XRegExp.exec gives you named backreferences on the match result
-let match = XRegExp.exec('2017-02-22', date);
-match.year; // -> '2017'
-
-// It also includes optional pos and sticky arguments
-let pos = 3;
-const result = [];
-while (match = XRegExp.exec('<1><2><3>4<5>', /<(\d+)>/, pos, 'sticky')) {
-    result.push(match[1]);
-    pos = match.index + match[0].length;
-}
-// result -> ['2', '3']
-
-// XRegExp.replace allows named backreferences in replacements
-XRegExp.replace('2017-02-22', date, '$<month>/$<day>/$<year>');
-// -> '02/22/2017'
-XRegExp.replace('2017-02-22', date, (match) => {
-    return `${match.month}/${match.day}/${match.year}`;
-});
-// -> '02/22/2017'
-
-// XRegExps compile to RegExps and work perfectly with native methods
-date.test('2017-02-22');
-// -> true
-
-// The only caveat is that named captures must be referenced using
-// numbered backreferences if used with native methods
-'2017-02-22'.replace(date, '$2/$3/$1');
-// -> '02/22/2017'
-
-// Use XRegExp.forEach to extract every other digit from a string
-const evens = [];
-XRegExp.forEach('1a2345', /\d/, (match, i) => {
-    if (i % 2) evens.push(+match[0]);
-});
-// evens -> [2, 4]
-
-// Use XRegExp.matchChain to get numbers within <b> tags
-XRegExp.matchChain('1 <b>2</b> 3 <B>4 \n 56</B>', [
-    XRegExp('(?is)<b>.*?</b>'),
-    /\d+/
-]);
-// -> ['2', '4', '56']
-
-// You can also pass forward and return specific backreferences
-const html =
-    `<a href="http://xregexp.com/">XRegExp</a>
-     <a href="http://www.google.com/">Google</a>`;
-XRegExp.matchChain(html, [
-    {regex: /<a href="([^"]+)">/i, backref: 1},
-    {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'}
-]);
-// -> ['xregexp.com', 'www.google.com']
-
-// Merge strings and regexes, with updated backreferences
-XRegExp.union(['m+a*n', /(bear)\1/, /(pig)\1/], 'i', {conjunction: 'or'});
-// -> /m\+a\*n|(bear)\1|(pig)\2/i
-```
-
-These examples give the flavor of what's possible, but XRegExp has more syntax, flags, methods, options, and browser fixes that aren't shown here. You can also augment XRegExp's regular expression syntax with addons (see below) or write your own. See [xregexp.com](http://xregexp.com/) for details.
-
-## Addons
-
-You can either load addons individually, or bundle all addons with XRegExp by loading `xregexp-all.js` from https://unpkg.com/xregexp/xregexp-all.js.
-
-### Unicode
-
-If not using `xregexp-all.js`, first include the Unicode Base script and then one or more of the addons for Unicode blocks, categories, properties, or scripts.
-
-Then you can do this:
-
-```js
-// Test the Unicode category L (Letter)
-const unicodeWord = XRegExp('^\\pL+$');
-unicodeWord.test('Русский'); // -> true
-unicodeWord.test('日本語'); // -> true
-unicodeWord.test('العربية'); // -> true
-
-// Test some Unicode scripts
-XRegExp('^\\p{Hiragana}+$').test('ひらがな'); // -> true
-XRegExp('^[\\p{Latin}\\p{Common}]+$').test('Über Café.'); // -> true
-```
-
-By default, `\p{…}` and `\P{…}` support the Basic Multilingual Plane (i.e. code points up to `U+FFFF`). You can opt-in to full 21-bit Unicode support (with code points up to `U+10FFFF`) on a per-regex basis by using flag `A`. This is called *astral mode*. You can automatically add flag `A` for all new regexes by running `XRegExp.install('astral')`. When in astral mode, `\p{…}` and `\P{…}` always match a full code point rather than a code unit, using surrogate pairs for code points above `U+FFFF`.
-
-```js
-// Using flag A to match astral code points
-XRegExp('^\\pS$').test('💩'); // -> false
-XRegExp('^\\pS$', 'A').test('💩'); // -> true
-XRegExp('(?A)^\\pS$').test('💩'); // -> true
-// Using surrogate pair U+D83D U+DCA9 to represent U+1F4A9 (pile of poo)
-XRegExp('(?A)^\\pS$').test('\uD83D\uDCA9'); // -> true
-
-// Implicit flag A
-XRegExp.install('astral');
-XRegExp('^\\pS$').test('💩'); // -> true
-```
-
-Opting in to astral mode disables the use of `\p{…}` and `\P{…}` within character classes. In astral mode, use e.g. `(\pL|[0-9_])+` instead of `[\pL0-9_]+`.
-
-XRegExp uses Unicode 12.1.0.
-
-### XRegExp.build
-
-Build regular expressions using named subpatterns, for readability and pattern reuse:
-
-```js
-const time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', {
-    hours: XRegExp.build('{{h12}} : | {{h24}}', {
-        h12: /1[0-2]|0?[1-9]/,
-        h24: /2[0-3]|[01][0-9]/
-    }),
-    minutes: /^[0-5][0-9]$/
-});
-
-time.test('10:59'); // -> true
-XRegExp.exec('10:59', time).minutes; // -> '59'
-```
-
-Named subpatterns can be provided as strings or regex objects. A leading `^` and trailing unescaped `$` are stripped from subpatterns if both are present, which allows embedding independently-useful anchored patterns. `{{…}}` tokens can be quantified as a single unit. Any backreferences in the outer pattern or provided subpatterns are automatically renumbered to work correctly within the larger combined pattern. The syntax `({{name}})` works as shorthand for named capture via `(?<name>{{name}})`. Named subpatterns cannot be embedded within character classes.
-
-#### XRegExp.tag (included with XRegExp.build)
-
-Provides tagged template literals that create regexes with XRegExp syntax and flags:
-
-```js
-const h12 = /1[0-2]|0?[1-9]/;
-const h24 = /2[0-3]|[01][0-9]/;
-const hours = XRegExp.tag('x')`${h12} : | ${h24}`;
-const minutes = /^[0-5][0-9]$/;
-// Note that explicitly naming the 'minutes' group is required for named backreferences
-const time = XRegExp.tag('x')`^ ${hours} (?<minutes>${minutes}) $`;
-time.test('10:59'); // -> true
-XRegExp.exec('10:59', time).minutes; // -> '59'
-```
-
-XRegExp.tag does more than just basic interpolation. For starters, you get all the XRegExp syntax and flags. Even better, since `XRegExp.tag` uses your pattern as a raw string, you no longer need to escape all your backslashes. And since it relies on `XRegExp.build` under the hood, you get all of its extras for free. Leading `^` and trailing unescaped `$` are stripped from interpolated patterns if both are present (to allow embedding independently useful anchored regexes), interpolating into a character class is an error (to avoid unintended meaning in edge cases), interpolated patterns are treated as atomic units when quantified, interpolated strings have their special characters escaped, and any backreferences within an interpolated regex are rewritten to work within the overall pattern.
-
-### XRegExp.matchRecursive
-
-Match recursive constructs using XRegExp pattern strings as left and right delimiters:
-
-```js
-const str1 = '(t((e))s)t()(ing)';
-XRegExp.matchRecursive(str1, '\\(', '\\)', 'g');
-// -> ['t((e))s', '', 'ing']
-
-// Extended information mode with valueNames
-const str2 = 'Here is <div> <div>an</div></div> example';
-XRegExp.matchRecursive(str2, '<div\\s*>', '</div>', 'gi', {
-    valueNames: ['between', 'left', 'match', 'right']
-});
-/* -> [
-{name: 'between', value: 'Here is ',       start: 0,  end: 8},
-{name: 'left',    value: '<div>',          start: 8,  end: 13},
-{name: 'match',   value: ' <div>an</div>', start: 13, end: 27},
-{name: 'right',   value: '</div>',         start: 27, end: 33},
-{name: 'between', value: ' example',       start: 33, end: 41}
-] */
-
-// Omitting unneeded parts with null valueNames, and using escapeChar
-const str3 = '...{1}.\\{{function(x,y){return {y:x}}}';
-XRegExp.matchRecursive(str3, '{', '}', 'g', {
-    valueNames: ['literal', null, 'value', null],
-    escapeChar: '\\'
-});
-/* -> [
-{name: 'literal', value: '...',  start: 0, end: 3},
-{name: 'value',   value: '1',    start: 4, end: 5},
-{name: 'literal', value: '.\\{', start: 6, end: 9},
-{name: 'value',   value: 'function(x,y){return {y:x}}', start: 10, end: 37}
-] */
-
-// Sticky mode via flag y
-const str4 = '<1><<<2>>><3>4<5>';
-XRegExp.matchRecursive(str4, '<', '>', 'gy');
-// -> ['1', '<<2>>', '3']
-```
-
-`XRegExp.matchRecursive` throws an error if it scans past an unbalanced delimiter in the target string.
-
-## Installation and usage
-
-In browsers (bundle XRegExp with all of its addons):
-
-```html
-<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
-```
-
-Using [npm](https://www.npmjs.com/):
-
-```bash
-npm install xregexp
-```
-
-In [Node.js](http://nodejs.org/):
-
-```js
-const XRegExp = require('xregexp');
-```
-
-In an AMD loader like [RequireJS](http://requirejs.org/):
-
-```js
-require({paths: {xregexp: 'xregexp-all'}}, ['xregexp'], (XRegExp) => {
-    console.log(XRegExp.version);
-});
-```
-
-## Credits
-
-XRegExp project collaborators are:
-
-- [Steven Levithan](http://stevenlevithan.com/)
-- [Joseph Frazier](https://github.com/josephfrazier)
-- [Mathias Bynens](https://mathiasbynens.be/)
-
-Thanks to all contributors and others who have submitted code, provided feedback, reported bugs, and inspired new features.
-
-XRegExp is released under the [MIT License](https://mit-license.org/). Learn more at [xregexp.com](http://xregexp.com/).
diff --git a/node_modules/xregexp/lib/addons/build.js b/node_modules/xregexp/lib/addons/build.js
deleted file mode 100644
index eece31f..0000000
--- a/node_modules/xregexp/lib/addons/build.js
+++ /dev/null
@@ -1,260 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
-
-var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
-
-/*!
- * XRegExp.build 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- */
-var _default = function _default(XRegExp) {
-  var REGEX_DATA = 'xregexp';
-  var subParts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-  var parts = XRegExp.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/, subParts], 'g', {
-    conjunction: 'or'
-  });
-  /**
-   * Strips a leading `^` and trailing unescaped `$`, if both are present.
-   *
-   * @private
-   * @param {String} pattern Pattern to process.
-   * @returns {String} Pattern with edge anchors removed.
-   */
-
-  function deanchor(pattern) {
-    // Allow any number of empty noncapturing groups before/after anchors, because regexes
-    // built/generated by XRegExp sometimes include them
-    var leadingAnchor = /^(?:\(\?:\))*\^/;
-    var trailingAnchor = /\$(?:\(\?:\))*$/;
-
-    if (leadingAnchor.test(pattern) && trailingAnchor.test(pattern) && // Ensure that the trailing `$` isn't escaped
-    trailingAnchor.test(pattern.replace(/\\[\s\S]/g, ''))) {
-      return pattern.replace(leadingAnchor, '').replace(trailingAnchor, '');
-    }
-
-    return pattern;
-  }
-  /**
-   * Converts the provided value to an XRegExp. Native RegExp flags are not preserved.
-   *
-   * @private
-   * @param {String|RegExp} value Value to convert.
-   * @param {Boolean} [addFlagX] Whether to apply the `x` flag in cases when `value` is not
-   *   already a regex generated by XRegExp
-   * @returns {RegExp} XRegExp object with XRegExp syntax applied.
-   */
-
-
-  function asXRegExp(value, addFlagX) {
-    var flags = addFlagX ? 'x' : '';
-    return XRegExp.isRegExp(value) ? value[REGEX_DATA] && value[REGEX_DATA].captureNames ? // Don't recompile, to preserve capture names
-    value : // Recompile as XRegExp
-    XRegExp(value.source, flags) : // Compile string as XRegExp
-    XRegExp(value, flags);
-  }
-
-  function interpolate(substitution) {
-    return substitution instanceof RegExp ? substitution : XRegExp.escape(substitution);
-  }
-
-  function reduceToSubpatternsObject(subpatterns, interpolated, subpatternIndex) {
-    subpatterns["subpattern".concat(subpatternIndex)] = interpolated;
-    return subpatterns;
-  }
-
-  function embedSubpatternAfter(raw, subpatternIndex, rawLiterals) {
-    var hasSubpattern = subpatternIndex < rawLiterals.length - 1;
-    return raw + (hasSubpattern ? "{{subpattern".concat(subpatternIndex, "}}") : '');
-  }
-  /**
-   * Provides tagged template literals that create regexes with XRegExp syntax and flags. The
-   * provided pattern is handled as a raw string, so backslashes don't need to be escaped.
-   *
-   * Interpolation of strings and regexes shares the features of `XRegExp.build`. Interpolated
-   * patterns are treated as atomic units when quantified, interpolated strings have their special
-   * characters escaped, a leading `^` and trailing unescaped `$` are stripped from interpolated
-   * regexes if both are present, and any backreferences within an interpolated regex are
-   * rewritten to work within the overall pattern.
-   *
-   * @memberOf XRegExp
-   * @param {String} [flags] Any combination of XRegExp flags.
-   * @returns {Function} Handler for template literals that construct regexes with XRegExp syntax.
-   * @example
-   *
-   * const h12 = /1[0-2]|0?[1-9]/;
-   * const h24 = /2[0-3]|[01][0-9]/;
-   * const hours = XRegExp.tag('x')`${h12} : | ${h24}`;
-   * const minutes = /^[0-5][0-9]$/;
-   * // Note that explicitly naming the 'minutes' group is required for named backreferences
-   * const time = XRegExp.tag('x')`^ ${hours} (?<minutes>${minutes}) $`;
-   * time.test('10:59'); // -> true
-   * XRegExp.exec('10:59', time).minutes; // -> '59'
-   */
-
-
-  XRegExp.tag = function (flags) {
-    return function (literals) {
-      var _context, _context2;
-
-      for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-        substitutions[_key - 1] = arguments[_key];
-      }
-
-      var subpatterns = (0, _reduce.default)(_context = (0, _map.default)(substitutions).call(substitutions, interpolate)).call(_context, reduceToSubpatternsObject, {});
-      var pattern = (0, _map.default)(_context2 = literals.raw).call(_context2, embedSubpatternAfter).join('');
-      return XRegExp.build(pattern, subpatterns, flags);
-    };
-  };
-  /**
-   * Builds regexes using named subpatterns, for readability and pattern reuse. Backreferences in
-   * the outer pattern and provided subpatterns are automatically renumbered to work correctly.
-   * Native flags used by provided subpatterns are ignored in favor of the `flags` argument.
-   *
-   * @memberOf XRegExp
-   * @param {String} pattern XRegExp pattern using `{{name}}` for embedded subpatterns. Allows
-   *   `({{name}})` as shorthand for `(?<name>{{name}})`. Patterns cannot be embedded within
-   *   character classes.
-   * @param {Object} subs Lookup object for named subpatterns. Values can be strings or regexes. A
-   *   leading `^` and trailing unescaped `$` are stripped from subpatterns, if both are present.
-   * @param {String} [flags] Any combination of XRegExp flags.
-   * @returns {RegExp} Regex with interpolated subpatterns.
-   * @example
-   *
-   * const time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', {
-   *   hours: XRegExp.build('{{h12}} : | {{h24}}', {
-   *     h12: /1[0-2]|0?[1-9]/,
-   *     h24: /2[0-3]|[01][0-9]/
-   *   }, 'x'),
-   *   minutes: /^[0-5][0-9]$/
-   * });
-   * time.test('10:59'); // -> true
-   * XRegExp.exec('10:59', time).minutes; // -> '59'
-   */
-
-
-  XRegExp.build = function (pattern, subs, flags) {
-    flags = flags || ''; // Used with `asXRegExp` calls for `pattern` and subpatterns in `subs`, to work around how
-    // some browsers convert `RegExp('\n')` to a regex that contains the literal characters `\`
-    // and `n`. See more details at <https://github.com/slevithan/xregexp/pull/163>.
-
-    var addFlagX = (0, _includes.default)(flags).call(flags, 'x');
-    var inlineFlags = /^\(\?([\w$]+)\)/.exec(pattern); // Add flags within a leading mode modifier to the overall pattern's flags
-
-    if (inlineFlags) {
-      flags = XRegExp._clipDuplicates(flags + inlineFlags[1]);
-    }
-
-    var data = {};
-
-    for (var p in subs) {
-      if (subs.hasOwnProperty(p)) {
-        // Passing to XRegExp enables extended syntax and ensures independent validity,
-        // lest an unescaped `(`, `)`, `[`, or trailing `\` breaks the `(?:)` wrapper. For
-        // subpatterns provided as native regexes, it dies on octals and adds the property
-        // used to hold extended regex instance data, for simplicity.
-        var sub = asXRegExp(subs[p], addFlagX);
-        data[p] = {
-          // Deanchoring allows embedding independently useful anchored regexes. If you
-          // really need to keep your anchors, double them (i.e., `^^...$$`).
-          pattern: deanchor(sub.source),
-          names: sub[REGEX_DATA].captureNames || []
-        };
-      }
-    } // Passing to XRegExp dies on octals and ensures the outer pattern is independently valid;
-    // helps keep this simple. Named captures will be put back.
-
-
-    var patternAsRegex = asXRegExp(pattern, addFlagX); // 'Caps' is short for 'captures'
-
-    var numCaps = 0;
-    var numPriorCaps;
-    var numOuterCaps = 0;
-    var outerCapsMap = [0];
-    var outerCapNames = patternAsRegex[REGEX_DATA].captureNames || [];
-    var output = patternAsRegex.source.replace(parts, function ($0, $1, $2, $3, $4) {
-      var subName = $1 || $2;
-      var capName;
-      var intro;
-      var localCapIndex; // Named subpattern
-
-      if (subName) {
-        var _context3;
-
-        if (!data.hasOwnProperty(subName)) {
-          throw new ReferenceError("Undefined property ".concat($0));
-        } // Named subpattern was wrapped in a capturing group
-
-
-        if ($1) {
-          capName = outerCapNames[numOuterCaps];
-          outerCapsMap[++numOuterCaps] = ++numCaps; // If it's a named group, preserve the name. Otherwise, use the subpattern name
-          // as the capture name
-
-          intro = "(?<".concat(capName || subName, ">");
-        } else {
-          intro = '(?:';
-        }
-
-        numPriorCaps = numCaps;
-        var rewrittenSubpattern = data[subName].pattern.replace(subParts, function (match, paren, backref) {
-          // Capturing group
-          if (paren) {
-            capName = data[subName].names[numCaps - numPriorCaps];
-            ++numCaps; // If the current capture has a name, preserve the name
-
-            if (capName) {
-              return "(?<".concat(capName, ">");
-            } // Backreference
-
-          } else if (backref) {
-            localCapIndex = +backref - 1; // Rewrite the backreference
-
-            return data[subName].names[localCapIndex] ? // Need to preserve the backreference name in case using flag `n`
-            "\\k<".concat(data[subName].names[localCapIndex], ">") : "\\".concat(+backref + numPriorCaps);
-          }
-
-          return match;
-        });
-        return (0, _concat.default)(_context3 = "".concat(intro)).call(_context3, rewrittenSubpattern, ")");
-      } // Capturing group
-
-
-      if ($3) {
-        capName = outerCapNames[numOuterCaps];
-        outerCapsMap[++numOuterCaps] = ++numCaps; // If the current capture has a name, preserve the name
-
-        if (capName) {
-          return "(?<".concat(capName, ">");
-        } // Backreference
-
-      } else if ($4) {
-        localCapIndex = +$4 - 1; // Rewrite the backreference
-
-        return outerCapNames[localCapIndex] ? // Need to preserve the backreference name in case using flag `n`
-        "\\k<".concat(outerCapNames[localCapIndex], ">") : "\\".concat(outerCapsMap[+$4]);
-      }
-
-      return $0;
-    });
-    return XRegExp(output, flags);
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/matchrecursive.js b/node_modules/xregexp/lib/addons/matchrecursive.js
deleted file mode 100644
index 897847e..0000000
--- a/node_modules/xregexp/lib/addons/matchrecursive.js
+++ /dev/null
@@ -1,229 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-/*!
- * XRegExp.matchRecursive 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2009-present MIT License
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Returns a match detail object composed of the provided values.
-   *
-   * @private
-   */
-  function row(name, value, start, end) {
-    return {
-      name: name,
-      value: value,
-      start: start,
-      end: end
-    };
-  }
-  /**
-   * Returns an array of match strings between outermost left and right delimiters, or an array of
-   * objects with detailed match parts and position data. An error is thrown if delimiters are
-   * unbalanced within the data.
-   *
-   * @memberOf XRegExp
-   * @param {String} str String to search.
-   * @param {String} left Left delimiter as an XRegExp pattern.
-   * @param {String} right Right delimiter as an XRegExp pattern.
-   * @param {String} [flags] Any native or XRegExp flags, used for the left and right delimiters.
-   * @param {Object} [options] Lets you specify `valueNames` and `escapeChar` options.
-   * @returns {Array} Array of matches, or an empty array.
-   * @example
-   *
-   * // Basic usage
-   * let str = '(t((e))s)t()(ing)';
-   * XRegExp.matchRecursive(str, '\\(', '\\)', 'g');
-   * // -> ['t((e))s', '', 'ing']
-   *
-   * // Extended information mode with valueNames
-   * str = 'Here is <div> <div>an</div></div> example';
-   * XRegExp.matchRecursive(str, '<div\\s*>', '</div>', 'gi', {
-   *   valueNames: ['between', 'left', 'match', 'right']
-   * });
-   * // -> [
-   * // {name: 'between', value: 'Here is ',       start: 0,  end: 8},
-   * // {name: 'left',    value: '<div>',          start: 8,  end: 13},
-   * // {name: 'match',   value: ' <div>an</div>', start: 13, end: 27},
-   * // {name: 'right',   value: '</div>',         start: 27, end: 33},
-   * // {name: 'between', value: ' example',       start: 33, end: 41}
-   * // ]
-   *
-   * // Omitting unneeded parts with null valueNames, and using escapeChar
-   * str = '...{1}.\\{{function(x,y){return {y:x}}}';
-   * XRegExp.matchRecursive(str, '{', '}', 'g', {
-   *   valueNames: ['literal', null, 'value', null],
-   *   escapeChar: '\\'
-   * });
-   * // -> [
-   * // {name: 'literal', value: '...',  start: 0, end: 3},
-   * // {name: 'value',   value: '1',    start: 4, end: 5},
-   * // {name: 'literal', value: '.\\{', start: 6, end: 9},
-   * // {name: 'value',   value: 'function(x,y){return {y:x}}', start: 10, end: 37}
-   * // ]
-   *
-   * // Sticky mode via flag y
-   * str = '<1><<<2>>><3>4<5>';
-   * XRegExp.matchRecursive(str, '<', '>', 'gy');
-   * // -> ['1', '<<2>>', '3']
-   */
-
-
-  XRegExp.matchRecursive = function (str, left, right, flags, options) {
-    flags = flags || '';
-    options = options || {};
-    var global = (0, _includes.default)(flags).call(flags, 'g');
-    var sticky = (0, _includes.default)(flags).call(flags, 'y'); // Flag `y` is controlled internally
-
-    var basicFlags = flags.replace(/y/g, '');
-    var _options = options,
-        escapeChar = _options.escapeChar;
-    var vN = options.valueNames;
-    var output = [];
-    var openTokens = 0;
-    var delimStart = 0;
-    var delimEnd = 0;
-    var lastOuterEnd = 0;
-    var outerStart;
-    var innerStart;
-    var leftMatch;
-    var rightMatch;
-    var esc;
-    left = XRegExp(left, basicFlags);
-    right = XRegExp(right, basicFlags);
-
-    if (escapeChar) {
-      var _context, _context2;
-
-      if (escapeChar.length > 1) {
-        throw new Error('Cannot use more than one escape character');
-      }
-
-      escapeChar = XRegExp.escape(escapeChar); // Example of concatenated `esc` regex:
-      // `escapeChar`: '%'
-      // `left`: '<'
-      // `right`: '>'
-      // Regex is: /(?:%[\S\s]|(?:(?!<|>)[^%])+)+/
-
-      esc = new RegExp((0, _concat.default)(_context = (0, _concat.default)(_context2 = "(?:".concat(escapeChar, "[\\S\\s]|(?:(?!")).call(_context2, // Using `XRegExp.union` safely rewrites backreferences in `left` and `right`.
-      // Intentionally not passing `basicFlags` to `XRegExp.union` since any syntax
-      // transformation resulting from those flags was already applied to `left` and
-      // `right` when they were passed through the XRegExp constructor above.
-      XRegExp.union([left, right], '', {
-        conjunction: 'or'
-      }).source, ")[^")).call(_context, escapeChar, "])+)+"), // Flags `gy` not needed here
-      flags.replace(/[^imu]+/g, ''));
-    }
-
-    while (true) {
-      // If using an escape character, advance to the delimiter's next starting position,
-      // skipping any escaped characters in between
-      if (escapeChar) {
-        delimEnd += (XRegExp.exec(str, esc, delimEnd, 'sticky') || [''])[0].length;
-      }
-
-      leftMatch = XRegExp.exec(str, left, delimEnd);
-      rightMatch = XRegExp.exec(str, right, delimEnd); // Keep the leftmost match only
-
-      if (leftMatch && rightMatch) {
-        if (leftMatch.index <= rightMatch.index) {
-          rightMatch = null;
-        } else {
-          leftMatch = null;
-        }
-      } // Paths (LM: leftMatch, RM: rightMatch, OT: openTokens):
-      // LM | RM | OT | Result
-      // 1  | 0  | 1  | loop
-      // 1  | 0  | 0  | loop
-      // 0  | 1  | 1  | loop
-      // 0  | 1  | 0  | throw
-      // 0  | 0  | 1  | throw
-      // 0  | 0  | 0  | break
-      // The paths above don't include the sticky mode special case. The loop ends after the
-      // first completed match if not `global`.
-
-
-      if (leftMatch || rightMatch) {
-        delimStart = (leftMatch || rightMatch).index;
-        delimEnd = delimStart + (leftMatch || rightMatch)[0].length;
-      } else if (!openTokens) {
-        break;
-      }
-
-      if (sticky && !openTokens && delimStart > lastOuterEnd) {
-        break;
-      }
-
-      if (leftMatch) {
-        if (!openTokens) {
-          outerStart = delimStart;
-          innerStart = delimEnd;
-        }
-
-        ++openTokens;
-      } else if (rightMatch && openTokens) {
-        if (! --openTokens) {
-          if (vN) {
-            if (vN[0] && outerStart > lastOuterEnd) {
-              output.push(row(vN[0], (0, _slice.default)(str).call(str, lastOuterEnd, outerStart), lastOuterEnd, outerStart));
-            }
-
-            if (vN[1]) {
-              output.push(row(vN[1], (0, _slice.default)(str).call(str, outerStart, innerStart), outerStart, innerStart));
-            }
-
-            if (vN[2]) {
-              output.push(row(vN[2], (0, _slice.default)(str).call(str, innerStart, delimStart), innerStart, delimStart));
-            }
-
-            if (vN[3]) {
-              output.push(row(vN[3], (0, _slice.default)(str).call(str, delimStart, delimEnd), delimStart, delimEnd));
-            }
-          } else {
-            output.push((0, _slice.default)(str).call(str, innerStart, delimStart));
-          }
-
-          lastOuterEnd = delimEnd;
-
-          if (!global) {
-            break;
-          }
-        }
-      } else {
-        throw new Error('Unbalanced delimiter found in string');
-      } // If the delimiter matched an empty string, avoid an infinite loop
-
-
-      if (delimStart === delimEnd) {
-        ++delimEnd;
-      }
-    }
-
-    if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd) {
-      output.push(row(vN[0], (0, _slice.default)(str).call(str, lastOuterEnd), lastOuterEnd, str.length));
-    }
-
-    return output;
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/unicode-base.js b/node_modules/xregexp/lib/addons/unicode-base.js
deleted file mode 100644
index b52fd53..0000000
--- a/node_modules/xregexp/lib/addons/unicode-base.js
+++ /dev/null
@@ -1,292 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/get-iterator"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
-
-/*!
- * XRegExp Unicode Base 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2008-present MIT License
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds base support for Unicode matching:
-   * - Adds syntax `\p{..}` for matching Unicode tokens. Tokens can be inverted using `\P{..}` or
-   *   `\p{^..}`. Token names ignore case, spaces, hyphens, and underscores. You can omit the
-   *   braces for token names that are a single letter (e.g. `\pL` or `PL`).
-   * - Adds flag A (astral), which enables 21-bit Unicode support.
-   * - Adds the `XRegExp.addUnicodeData` method used by other addons to provide character data.
-   *
-   * Unicode Base relies on externally provided Unicode character data. Official addons are
-   * available to provide data for Unicode categories, scripts, blocks, and properties.
-   *
-   * @requires XRegExp
-   */
-  // ==--------------------------==
-  // Private stuff
-  // ==--------------------------==
-  // Storage for Unicode data
-  var unicode = {}; // Reuse utils
-
-  var dec = XRegExp._dec;
-  var hex = XRegExp._hex;
-  var pad4 = XRegExp._pad4; // Generates a token lookup name: lowercase, with hyphens, spaces, and underscores removed
-
-  function normalize(name) {
-    return name.replace(/[- _]+/g, '').toLowerCase();
-  } // Gets the decimal code of a literal code unit, \xHH, \uHHHH, or a backslash-escaped literal
-
-
-  function charCode(chr) {
-    var esc = /^\\[xu](.+)/.exec(chr);
-    return esc ? dec(esc[1]) : chr.charCodeAt(chr[0] === '\\' ? 1 : 0);
-  } // Inverts a list of ordered BMP characters and ranges
-
-
-  function invertBmp(range) {
-    var output = '';
-    var lastEnd = -1;
-    (0, _forEach.default)(XRegExp).call(XRegExp, range, /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/, function (m) {
-      var start = charCode(m[1]);
-
-      if (start > lastEnd + 1) {
-        output += "\\u".concat(pad4(hex(lastEnd + 1)));
-
-        if (start > lastEnd + 2) {
-          output += "-\\u".concat(pad4(hex(start - 1)));
-        }
-      }
-
-      lastEnd = charCode(m[2] || m[1]);
-    });
-
-    if (lastEnd < 0xFFFF) {
-      output += "\\u".concat(pad4(hex(lastEnd + 1)));
-
-      if (lastEnd < 0xFFFE) {
-        output += '-\\uFFFF';
-      }
-    }
-
-    return output;
-  } // Generates an inverted BMP range on first use
-
-
-  function cacheInvertedBmp(slug) {
-    var prop = 'b!';
-    return unicode[slug][prop] || (unicode[slug][prop] = invertBmp(unicode[slug].bmp));
-  } // Combines and optionally negates BMP and astral data
-
-
-  function buildAstral(slug, isNegated) {
-    var item = unicode[slug];
-    var combined = '';
-
-    if (item.bmp && !item.isBmpLast) {
-      var _context;
-
-      combined = (0, _concat.default)(_context = "[".concat(item.bmp, "]")).call(_context, item.astral ? '|' : '');
-    }
-
-    if (item.astral) {
-      combined += item.astral;
-    }
-
-    if (item.isBmpLast && item.bmp) {
-      var _context2;
-
-      combined += (0, _concat.default)(_context2 = "".concat(item.astral ? '|' : '', "[")).call(_context2, item.bmp, "]");
-    } // Astral Unicode tokens always match a code point, never a code unit
-
-
-    return isNegated ? "(?:(?!".concat(combined, ")(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))") : "(?:".concat(combined, ")");
-  } // Builds a complete astral pattern on first use
-
-
-  function cacheAstral(slug, isNegated) {
-    var prop = isNegated ? 'a!' : 'a=';
-    return unicode[slug][prop] || (unicode[slug][prop] = buildAstral(slug, isNegated));
-  } // ==--------------------------==
-  // Core functionality
-  // ==--------------------------==
-
-  /*
-   * Add astral mode (flag A) and Unicode token syntax: `\p{..}`, `\P{..}`, `\p{^..}`, `\pC`.
-   */
-
-
-  XRegExp.addToken( // Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}`
-  /\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/, function (match, scope, flags) {
-    var ERR_DOUBLE_NEG = 'Invalid double negation ';
-    var ERR_UNKNOWN_NAME = 'Unknown Unicode token ';
-    var ERR_UNKNOWN_REF = 'Unicode token missing data ';
-    var ERR_ASTRAL_ONLY = 'Astral mode required for Unicode token ';
-    var ERR_ASTRAL_IN_CLASS = 'Astral mode does not support Unicode tokens within character classes'; // Negated via \P{..} or \p{^..}
-
-    var isNegated = match[1] === 'P' || !!match[2]; // Switch from BMP (0-FFFF) to astral (0-10FFFF) mode via flag A
-
-    var isAstralMode = (0, _includes.default)(flags).call(flags, 'A'); // Token lookup name. Check `[4]` first to avoid passing `undefined` via `\p{}`
-
-    var slug = normalize(match[4] || match[3]); // Token data object
-
-    var item = unicode[slug];
-
-    if (match[1] === 'P' && match[2]) {
-      throw new SyntaxError(ERR_DOUBLE_NEG + match[0]);
-    }
-
-    if (!unicode.hasOwnProperty(slug)) {
-      throw new SyntaxError(ERR_UNKNOWN_NAME + match[0]);
-    } // Switch to the negated form of the referenced Unicode token
-
-
-    if (item.inverseOf) {
-      slug = normalize(item.inverseOf);
-
-      if (!unicode.hasOwnProperty(slug)) {
-        var _context3;
-
-        throw new ReferenceError((0, _concat.default)(_context3 = "".concat(ERR_UNKNOWN_REF + match[0], " -> ")).call(_context3, item.inverseOf));
-      }
-
-      item = unicode[slug];
-      isNegated = !isNegated;
-    }
-
-    if (!(item.bmp || isAstralMode)) {
-      throw new SyntaxError(ERR_ASTRAL_ONLY + match[0]);
-    }
-
-    if (isAstralMode) {
-      if (scope === 'class') {
-        throw new SyntaxError(ERR_ASTRAL_IN_CLASS);
-      }
-
-      return cacheAstral(slug, isNegated);
-    }
-
-    return scope === 'class' ? isNegated ? cacheInvertedBmp(slug) : item.bmp : "".concat((isNegated ? '[^' : '[') + item.bmp, "]");
-  }, {
-    scope: 'all',
-    optionalFlags: 'A',
-    leadChar: '\\'
-  });
-  /**
-   * Adds to the list of Unicode tokens that XRegExp regexes can match via `\p` or `\P`.
-   *
-   * @memberOf XRegExp
-   * @param {Array} data Objects with named character ranges. Each object may have properties
-   *   `name`, `alias`, `isBmpLast`, `inverseOf`, `bmp`, and `astral`. All but `name` are
-   *   optional, although one of `bmp` or `astral` is required (unless `inverseOf` is set). If
-   *   `astral` is absent, the `bmp` data is used for BMP and astral modes. If `bmp` is absent,
-   *   the name errors in BMP mode but works in astral mode. If both `bmp` and `astral` are
-   *   provided, the `bmp` data only is used in BMP mode, and the combination of `bmp` and
-   *   `astral` data is used in astral mode. `isBmpLast` is needed when a token matches orphan
-   *   high surrogates *and* uses surrogate pairs to match astral code points. The `bmp` and
-   *   `astral` data should be a combination of literal characters and `\xHH` or `\uHHHH` escape
-   *   sequences, with hyphens to create ranges. Any regex metacharacters in the data should be
-   *   escaped, apart from range-creating hyphens. The `astral` data can additionally use
-   *   character classes and alternation, and should use surrogate pairs to represent astral code
-   *   points. `inverseOf` can be used to avoid duplicating character data if a Unicode token is
-   *   defined as the exact inverse of another token.
-   * @example
-   *
-   * // Basic use
-   * XRegExp.addUnicodeData([{
-   *   name: 'XDigit',
-   *   alias: 'Hexadecimal',
-   *   bmp: '0-9A-Fa-f'
-   * }]);
-   * XRegExp('\\p{XDigit}:\\p{Hexadecimal}+').test('0:3D'); // -> true
-   */
-
-  XRegExp.addUnicodeData = function (data) {
-    var ERR_NO_NAME = 'Unicode token requires name';
-    var ERR_NO_DATA = 'Unicode token has no character data ';
-    var _iteratorNormalCompletion = true;
-    var _didIteratorError = false;
-    var _iteratorError = undefined;
-
-    try {
-      for (var _iterator = (0, _getIterator2.default)(data), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-        var item = _step.value;
-
-        if (!item.name) {
-          throw new Error(ERR_NO_NAME);
-        }
-
-        if (!(item.inverseOf || item.bmp || item.astral)) {
-          throw new Error(ERR_NO_DATA + item.name);
-        }
-
-        unicode[normalize(item.name)] = item;
-
-        if (item.alias) {
-          unicode[normalize(item.alias)] = item;
-        }
-      } // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and
-      // flags might now produce different results
-
-    } catch (err) {
-      _didIteratorError = true;
-      _iteratorError = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion && _iterator.return != null) {
-          _iterator.return();
-        }
-      } finally {
-        if (_didIteratorError) {
-          throw _iteratorError;
-        }
-      }
-    }
-
-    XRegExp.cache.flush('patterns');
-  };
-  /**
-   * @ignore
-   *
-   * Return a reference to the internal Unicode definition structure for the given Unicode
-   * Property if the given name is a legal Unicode Property for use in XRegExp `\p` or `\P` regex
-   * constructs.
-   *
-   * @memberOf XRegExp
-   * @param {String} name Name by which the Unicode Property may be recognized (case-insensitive),
-   *   e.g. `'N'` or `'Number'`. The given name is matched against all registered Unicode
-   *   Properties and Property Aliases.
-   * @returns {Object} Reference to definition structure when the name matches a Unicode Property.
-   *
-   * @note
-   * For more info on Unicode Properties, see also http://unicode.org/reports/tr18/#Categories.
-   *
-   * @note
-   * This method is *not* part of the officially documented API and may change or be removed in
-   * the future. It is meant for userland code that wishes to reuse the (large) internal Unicode
-   * structures set up by XRegExp.
-   */
-
-
-  XRegExp._getUnicodeProperty = function (name) {
-    var slug = normalize(name);
-    return unicode[slug];
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/unicode-blocks.js b/node_modules/xregexp/lib/addons/unicode-blocks.js
deleted file mode 100644
index 8321593..0000000
--- a/node_modules/xregexp/lib/addons/unicode-blocks.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _blocks = _interopRequireDefault(require("../../tools/output/blocks"));
-
-/*!
- * XRegExp Unicode Blocks 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for all Unicode blocks. Block names use the prefix 'In'. E.g.,
-   * `\p{InBasicLatin}`. Token names are case insensitive, and any spaces, hyphens, and
-   * underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Blocks');
-  }
-
-  XRegExp.addUnicodeData(_blocks.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/unicode-categories.js b/node_modules/xregexp/lib/addons/unicode-categories.js
deleted file mode 100644
index 9fdc383..0000000
--- a/node_modules/xregexp/lib/addons/unicode-categories.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _categories = _interopRequireDefault(require("../../tools/output/categories"));
-
-/*!
- * XRegExp Unicode Categories 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for Unicode's general categories. E.g., `\p{Lu}` or `\p{Uppercase Letter}`. See
-   * category descriptions in UAX #44 <http://unicode.org/reports/tr44/#GC_Values_Table>. Token
-   * names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Categories');
-  }
-
-  XRegExp.addUnicodeData(_categories.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/unicode-properties.js b/node_modules/xregexp/lib/addons/unicode-properties.js
deleted file mode 100644
index 26c9ef5..0000000
--- a/node_modules/xregexp/lib/addons/unicode-properties.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _properties = _interopRequireDefault(require("../../tools/output/properties"));
-
-/*!
- * XRegExp Unicode Properties 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds properties to meet the UTS #18 Level 1 RL1.2 requirements for Unicode regex support. See
-   * <http://unicode.org/reports/tr18/#RL1.2>. Following are definitions of these properties from
-   * UAX #44 <http://unicode.org/reports/tr44/>:
-   *
-   * - Alphabetic
-   *   Characters with the Alphabetic property. Generated from: Lowercase + Uppercase + Lt + Lm +
-   *   Lo + Nl + Other_Alphabetic.
-   *
-   * - Default_Ignorable_Code_Point
-   *   For programmatic determination of default ignorable code points. New characters that should
-   *   be ignored in rendering (unless explicitly supported) will be assigned in these ranges,
-   *   permitting programs to correctly handle the default rendering of such characters when not
-   *   otherwise supported.
-   *
-   * - Lowercase
-   *   Characters with the Lowercase property. Generated from: Ll + Other_Lowercase.
-   *
-   * - Noncharacter_Code_Point
-   *   Code points permanently reserved for internal use.
-   *
-   * - Uppercase
-   *   Characters with the Uppercase property. Generated from: Lu + Other_Uppercase.
-   *
-   * - White_Space
-   *   Spaces, separator characters and other control characters which should be treated by
-   *   programming languages as "white space" for the purpose of parsing elements.
-   *
-   * The properties ASCII, Any, and Assigned are also included but are not defined in UAX #44. UTS
-   * #18 RL1.2 additionally requires support for Unicode scripts and general categories. These are
-   * included in XRegExp's Unicode Categories and Unicode Scripts addons.
-   *
-   * Token names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Properties');
-  }
-
-  var unicodeData = _properties.default; // Add non-generated data
-
-  unicodeData.push({
-    name: 'Assigned',
-    // Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode
-    // Categories addon is required to use this property
-    inverseOf: 'Cn'
-  });
-  XRegExp.addUnicodeData(unicodeData);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/addons/unicode-scripts.js b/node_modules/xregexp/lib/addons/unicode-scripts.js
deleted file mode 100644
index b4dc30c..0000000
--- a/node_modules/xregexp/lib/addons/unicode-scripts.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _scripts = _interopRequireDefault(require("../../tools/output/scripts"));
-
-/*!
- * XRegExp Unicode Scripts 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for all Unicode scripts. E.g., `\p{Latin}`. Token names are case insensitive,
-   * and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Scripts');
-  }
-
-  XRegExp.addUnicodeData(_scripts.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/index.js b/node_modules/xregexp/lib/index.js
deleted file mode 100644
index c72bbb4..0000000
--- a/node_modules/xregexp/lib/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _xregexp = _interopRequireDefault(require("./xregexp"));
-
-var _build = _interopRequireDefault(require("./addons/build"));
-
-var _matchrecursive = _interopRequireDefault(require("./addons/matchrecursive"));
-
-var _unicodeBase = _interopRequireDefault(require("./addons/unicode-base"));
-
-var _unicodeBlocks = _interopRequireDefault(require("./addons/unicode-blocks"));
-
-var _unicodeCategories = _interopRequireDefault(require("./addons/unicode-categories"));
-
-var _unicodeProperties = _interopRequireDefault(require("./addons/unicode-properties"));
-
-var _unicodeScripts = _interopRequireDefault(require("./addons/unicode-scripts"));
-
-(0, _build.default)(_xregexp.default);
-(0, _matchrecursive.default)(_xregexp.default);
-(0, _unicodeBase.default)(_xregexp.default);
-(0, _unicodeBlocks.default)(_xregexp.default);
-(0, _unicodeCategories.default)(_xregexp.default);
-(0, _unicodeProperties.default)(_xregexp.default);
-(0, _unicodeScripts.default)(_xregexp.default);
-var _default = _xregexp.default;
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/lib/xregexp.js b/node_modules/xregexp/lib/xregexp.js
deleted file mode 100644
index 2ec4fe5..0000000
--- a/node_modules/xregexp/lib/xregexp.js
+++ /dev/null
@@ -1,2046 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
-
-var _create = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/create"));
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
-
-var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
-
-var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/get-iterator"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-int"));
-
-var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
-
-var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
-
-var _flags = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flags"));
-
-/*!
- * XRegExp 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2007-present MIT License
- */
-
-/**
- * XRegExp provides augmented, extensible regular expressions. You get additional regex syntax and
- * flags, beyond what browsers support natively. XRegExp is also a regex utility belt with tools to
- * make your client-side grepping simpler and more powerful, while freeing you from related
- * cross-browser inconsistencies.
- */
-// ==--------------------------==
-// Private stuff
-// ==--------------------------==
-// Property name used for extended regex instance data
-var REGEX_DATA = 'xregexp'; // Optional features that can be installed and uninstalled
-
-var features = {
-  astral: false,
-  namespacing: false
-}; // Native methods to use and restore ('native' is an ES3 reserved keyword)
-
-var nativ = {
-  exec: RegExp.prototype.exec,
-  test: RegExp.prototype.test,
-  match: String.prototype.match,
-  replace: String.prototype.replace,
-  split: String.prototype.split
-}; // Storage for fixed/extended native methods
-
-var fixed = {}; // Storage for regexes cached by `XRegExp.cache`
-
-var regexCache = {}; // Storage for pattern details cached by the `XRegExp` constructor
-
-var patternCache = {}; // Storage for regex syntax tokens added internally or by `XRegExp.addToken`
-
-var tokens = []; // Token scopes
-
-var defaultScope = 'default';
-var classScope = 'class'; // Regexes that match native regex syntax, including octals
-
-var nativeTokens = {
-  // Any native multicharacter token in default scope, or any single character
-  'default': /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,
-  // Any native multicharacter token in character class scope, or any single character
-  'class': /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/
-}; // Any backreference or dollar-prefixed character in replacement strings
-
-var replacementToken = /\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g; // Check for correct `exec` handling of nonparticipating capturing groups
-
-var correctExecNpcg = nativ.exec.call(/()??/, '')[1] === undefined; // Check for ES6 `flags` prop support
-
-var hasFlagsProp = (0, _flags.default)(/x/) !== undefined; // Shortcut to `Object.prototype.toString`
-
-var _ref = {},
-    toString = _ref.toString;
-
-function hasNativeFlag(flag) {
-  // Can't check based on the presence of properties/getters since browsers might support such
-  // properties even when they don't support the corresponding flag in regex construction (tested
-  // in Chrome 48, where `'unicode' in /x/` is true but trying to construct a regex with flag `u`
-  // throws an error)
-  var isSupported = true;
-
-  try {
-    // Can't use regex literals for testing even in a `try` because regex literals with
-    // unsupported flags cause a compilation error in IE
-    new RegExp('', flag);
-  } catch (exception) {
-    isSupported = false;
-  }
-
-  return isSupported;
-} // Check for ES6 `u` flag support
-
-
-var hasNativeU = hasNativeFlag('u'); // Check for ES6 `y` flag support
-
-var hasNativeY = hasNativeFlag('y'); // Tracker for known flags, including addon flags
-
-var registeredFlags = {
-  g: true,
-  i: true,
-  m: true,
-  u: hasNativeU,
-  y: hasNativeY
-};
-/**
- * Attaches extended data and `XRegExp.prototype` properties to a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to augment.
- * @param {Array} captureNames Array with capture names, or `null`.
- * @param {String} xSource XRegExp pattern used to generate `regex`, or `null` if N/A.
- * @param {String} xFlags XRegExp flags used to generate `regex`, or `null` if N/A.
- * @param {Boolean} [isInternalOnly=false] Whether the regex will be used only for internal
- *   operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *   skipping some operations like attaching `XRegExp.prototype` properties.
- * @returns {RegExp} Augmented regex.
- */
-
-function augment(regex, captureNames, xSource, xFlags, isInternalOnly) {
-  var _context;
-
-  regex[REGEX_DATA] = {
-    captureNames: captureNames
-  };
-
-  if (isInternalOnly) {
-    return regex;
-  } // Can't auto-inherit these since the XRegExp constructor returns a nonprimitive value
-
-
-  if (regex.__proto__) {
-    regex.__proto__ = XRegExp.prototype;
-  } else {
-    for (var p in XRegExp.prototype) {
-      // An `XRegExp.prototype.hasOwnProperty(p)` check wouldn't be worth it here, since this
-      // is performance sensitive, and enumerable `Object.prototype` or `RegExp.prototype`
-      // extensions exist on `regex.prototype` anyway
-      regex[p] = XRegExp.prototype[p];
-    }
-  }
-
-  regex[REGEX_DATA].source = xSource; // Emulate the ES6 `flags` prop by ensuring flags are in alphabetical order
-
-  regex[REGEX_DATA].flags = xFlags ? (0, _sort.default)(_context = xFlags.split('')).call(_context).join('') : xFlags;
-  return regex;
-}
-/**
- * Removes any duplicate characters from the provided string.
- *
- * @private
- * @param {String} str String to remove duplicate characters from.
- * @returns {String} String with any duplicate characters removed.
- */
-
-
-function clipDuplicates(str) {
-  return nativ.replace.call(str, /([\s\S])(?=[\s\S]*\1)/g, '');
-}
-/**
- * Copies a regex object while preserving extended data and augmenting with `XRegExp.prototype`
- * properties. The copy has a fresh `lastIndex` property (set to zero). Allows adding and removing
- * flags g and y while copying the regex.
- *
- * @private
- * @param {RegExp} regex Regex to copy.
- * @param {Object} [options] Options object with optional properties:
- *   - `addG` {Boolean} Add flag g while copying the regex.
- *   - `addY` {Boolean} Add flag y while copying the regex.
- *   - `removeG` {Boolean} Remove flag g while copying the regex.
- *   - `removeY` {Boolean} Remove flag y while copying the regex.
- *   - `isInternalOnly` {Boolean} Whether the copied regex will be used only for internal
- *     operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *     skipping some operations like attaching `XRegExp.prototype` properties.
- *   - `source` {String} Overrides `<regex>.source`, for special cases.
- * @returns {RegExp} Copy of the provided regex, possibly with modified flags.
- */
-
-
-function copyRegex(regex, options) {
-  var _context2;
-
-  if (!XRegExp.isRegExp(regex)) {
-    throw new TypeError('Type RegExp expected');
-  }
-
-  var xData = regex[REGEX_DATA] || {};
-  var flags = getNativeFlags(regex);
-  var flagsToAdd = '';
-  var flagsToRemove = '';
-  var xregexpSource = null;
-  var xregexpFlags = null;
-  options = options || {};
-
-  if (options.removeG) {
-    flagsToRemove += 'g';
-  }
-
-  if (options.removeY) {
-    flagsToRemove += 'y';
-  }
-
-  if (flagsToRemove) {
-    flags = nativ.replace.call(flags, new RegExp("[".concat(flagsToRemove, "]+"), 'g'), '');
-  }
-
-  if (options.addG) {
-    flagsToAdd += 'g';
-  }
-
-  if (options.addY) {
-    flagsToAdd += 'y';
-  }
-
-  if (flagsToAdd) {
-    flags = clipDuplicates(flags + flagsToAdd);
-  }
-
-  if (!options.isInternalOnly) {
-    if (xData.source !== undefined) {
-      xregexpSource = xData.source;
-    } // null or undefined; don't want to add to `flags` if the previous value was null, since
-    // that indicates we're not tracking original precompilation flags
-
-
-    if ((0, _flags.default)(xData) != null) {
-      // Flags are only added for non-internal regexes by `XRegExp.globalize`. Flags are never
-      // removed for non-internal regexes, so don't need to handle it
-      xregexpFlags = flagsToAdd ? clipDuplicates((0, _flags.default)(xData) + flagsToAdd) : (0, _flags.default)(xData);
-    }
-  } // Augment with `XRegExp.prototype` properties, but use the native `RegExp` constructor to avoid
-  // searching for special tokens. That would be wrong for regexes constructed by `RegExp`, and
-  // unnecessary for regexes constructed by `XRegExp` because the regex has already undergone the
-  // translation to native regex syntax
-
-
-  regex = augment(new RegExp(options.source || regex.source, flags), hasNamedCapture(regex) ? (0, _slice.default)(_context2 = xData.captureNames).call(_context2, 0) : null, xregexpSource, xregexpFlags, options.isInternalOnly);
-  return regex;
-}
-/**
- * Converts hexadecimal to decimal.
- *
- * @private
- * @param {String} hex
- * @returns {Number}
- */
-
-
-function dec(hex) {
-  return (0, _parseInt2.default)(hex, 16);
-}
-/**
- * Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an
- * inline comment or whitespace with flag x. This is used directly as a token handler function
- * passed to `XRegExp.addToken`.
- *
- * @private
- * @param {String} match Match arg of `XRegExp.addToken` handler
- * @param {String} scope Scope arg of `XRegExp.addToken` handler
- * @param {String} flags Flags arg of `XRegExp.addToken` handler
- * @returns {String} Either '' or '(?:)', depending on which is needed in the context of the match.
- */
-
-
-function getContextualTokenSeparator(match, scope, flags) {
-  if ( // No need to separate tokens if at the beginning or end of a group
-  match.input[match.index - 1] === '(' || match.input[match.index + match[0].length] === ')' || // No need to separate tokens if before or after a `|`
-  match.input[match.index - 1] === '|' || match.input[match.index + match[0].length] === '|' || // No need to separate tokens if at the beginning or end of the pattern
-  match.index < 1 || match.index + match[0].length >= match.input.length || // No need to separate tokens if at the beginning of a noncapturing group or lookahead.
-  // The way this is written relies on:
-  // - The search regex matching only 3-char strings.
-  // - Although `substr` gives chars from the end of the string if given a negative index,
-  //   the resulting substring will be too short to match. Ex: `'abcd'.substr(-1, 3) === 'd'`
-  nativ.test.call(/^\(\?[:=!]/, match.input.substr(match.index - 3, 3)) || // Avoid separating tokens when the following token is a quantifier
-  isQuantifierNext(match.input, match.index + match[0].length, flags)) {
-    return '';
-  } // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`.
-  // This also ensures all tokens remain as discrete atoms, e.g. it avoids converting the syntax
-  // error `(? :` into `(?:`.
-
-
-  return '(?:)';
-}
-/**
- * Returns native `RegExp` flags used by a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {String} Native flags in use.
- */
-
-
-function getNativeFlags(regex) {
-  return hasFlagsProp ? (0, _flags.default)(regex) : // Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation
-  // with an empty string) allows this to continue working predictably when
-  // `XRegExp.proptotype.toString` is overridden
-  nativ.exec.call(/\/([a-z]*)$/i, RegExp.prototype.toString.call(regex))[1];
-}
-/**
- * Determines whether a regex has extended instance data used to track capture names.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {Boolean} Whether the regex uses named capture.
- */
-
-
-function hasNamedCapture(regex) {
-  return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames);
-}
-/**
- * Converts decimal to hexadecimal.
- *
- * @private
- * @param {Number|String} dec
- * @returns {String}
- */
-
-
-function hex(dec) {
-  return (0, _parseInt2.default)(dec, 10).toString(16);
-}
-/**
- * Checks whether the next nonignorable token after the specified position is a quantifier.
- *
- * @private
- * @param {String} pattern Pattern to search within.
- * @param {Number} pos Index in `pattern` to search at.
- * @param {String} flags Flags used by the pattern.
- * @returns {Boolean} Whether the next nonignorable token is a quantifier.
- */
-
-
-function isQuantifierNext(pattern, pos, flags) {
-  var inlineCommentPattern = '\\(\\?#[^)]*\\)';
-  var lineCommentPattern = '#[^#\\n]*';
-  var quantifierPattern = '[?*+]|{\\d+(?:,\\d*)?}';
-  return nativ.test.call((0, _includes.default)(flags).call(flags, 'x') ? // Ignore any leading whitespace, line comments, and inline comments
-  /^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/ : // Ignore any leading inline comments
-  /^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/, (0, _slice.default)(pattern).call(pattern, pos));
-}
-/**
- * Determines whether a value is of the specified type, by resolving its internal [[Class]].
- *
- * @private
- * @param {*} value Object to check.
- * @param {String} type Type to check for, in TitleCase.
- * @returns {Boolean} Whether the object matches the type.
- */
-
-
-function isType(value, type) {
-  return toString.call(value) === "[object ".concat(type, "]");
-}
-/**
- * Adds leading zeros if shorter than four characters. Used for fixed-length hexadecimal values.
- *
- * @private
- * @param {String} str
- * @returns {String}
- */
-
-
-function pad4(str) {
-  while (str.length < 4) {
-    str = "0".concat(str);
-  }
-
-  return str;
-}
-/**
- * Checks for flag-related errors, and strips/applies flags in a leading mode modifier. Offloads
- * the flag preparation logic from the `XRegExp` constructor.
- *
- * @private
- * @param {String} pattern Regex pattern, possibly with a leading mode modifier.
- * @param {String} flags Any combination of flags.
- * @returns {Object} Object with properties `pattern` and `flags`.
- */
-
-
-function prepareFlags(pattern, flags) {
-  // Recent browsers throw on duplicate flags, so copy this behavior for nonnative flags
-  if (clipDuplicates(flags) !== flags) {
-    throw new SyntaxError("Invalid duplicate regex flag ".concat(flags));
-  } // Strip and apply a leading mode modifier with any combination of flags except g or y
-
-
-  pattern = nativ.replace.call(pattern, /^\(\?([\w$]+)\)/, function ($0, $1) {
-    if (nativ.test.call(/[gy]/, $1)) {
-      throw new SyntaxError("Cannot use flag g or y in mode modifier ".concat($0));
-    } // Allow duplicate flags within the mode modifier
-
-
-    flags = clipDuplicates(flags + $1);
-    return '';
-  }); // Throw on unknown native or nonnative flags
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = (0, _getIterator2.default)(flags), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      var flag = _step.value;
-
-      if (!registeredFlags[flag]) {
-        throw new SyntaxError("Unknown regex flag ".concat(flag));
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return != null) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-
-  return {
-    pattern: pattern,
-    flags: flags
-  };
-}
-/**
- * Prepares an options object from the given value.
- *
- * @private
- * @param {String|Object} value Value to convert to an options object.
- * @returns {Object} Options object.
- */
-
-
-function prepareOptions(value) {
-  var options = {};
-
-  if (isType(value, 'String')) {
-    (0, _forEach.default)(XRegExp).call(XRegExp, value, /[^\s,]+/, function (match) {
-      options[match] = true;
-    });
-    return options;
-  }
-
-  return value;
-}
-/**
- * Registers a flag so it doesn't throw an 'unknown flag' error.
- *
- * @private
- * @param {String} flag Single-character flag to register.
- */
-
-
-function registerFlag(flag) {
-  if (!/^[\w$]$/.test(flag)) {
-    throw new Error('Flag must be a single character A-Za-z0-9_$');
-  }
-
-  registeredFlags[flag] = true;
-}
-/**
- * Runs built-in and custom regex syntax tokens in reverse insertion order at the specified
- * position, until a match is found.
- *
- * @private
- * @param {String} pattern Original pattern from which an XRegExp object is being built.
- * @param {String} flags Flags being used to construct the regex.
- * @param {Number} pos Position to search for tokens within `pattern`.
- * @param {Number} scope Regex scope to apply: 'default' or 'class'.
- * @param {Object} context Context object to use for token handler functions.
- * @returns {Object} Object with properties `matchLength`, `output`, and `reparse`; or `null`.
- */
-
-
-function runTokens(pattern, flags, pos, scope, context) {
-  var i = tokens.length;
-  var leadChar = pattern[pos];
-  var result = null;
-  var match;
-  var t; // Run in reverse insertion order
-
-  while (i--) {
-    t = tokens[i];
-
-    if (t.leadChar && t.leadChar !== leadChar || t.scope !== scope && t.scope !== 'all' || t.flag && !(0, _includes.default)(flags).call(flags, t.flag)) {
-      continue;
-    }
-
-    match = XRegExp.exec(pattern, t.regex, pos, 'sticky');
-
-    if (match) {
-      result = {
-        matchLength: match[0].length,
-        output: t.handler.call(context, match, scope, flags),
-        reparse: t.reparse
-      }; // Finished with token tests
-
-      break;
-    }
-  }
-
-  return result;
-}
-/**
- * Enables or disables implicit astral mode opt-in. When enabled, flag A is automatically added to
- * all new regexes created by XRegExp. This causes an error to be thrown when creating regexes if
- * the Unicode Base addon is not available, since flag A is registered by that addon.
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-
-
-function setAstral(on) {
-  features.astral = on;
-}
-/**
- * Adds named capture groups to the `groups` property of match arrays. See here for details:
- * https://github.com/tc39/proposal-regexp-named-groups
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-
-
-function setNamespacing(on) {
-  features.namespacing = on;
-}
-/**
- * Returns the object, or throws an error if it is `null` or `undefined`. This is used to follow
- * the ES5 abstract operation `ToObject`.
- *
- * @private
- * @param {*} value Object to check and return.
- * @returns {*} The provided object.
- */
-
-
-function toObject(value) {
-  // null or undefined
-  if (value == null) {
-    throw new TypeError('Cannot convert null or undefined to object');
-  }
-
-  return value;
-} // ==--------------------------==
-// Constructor
-// ==--------------------------==
-
-/**
- * Creates an extended regular expression object for matching text with a pattern. Differs from a
- * native regular expression in that additional syntax and flags are supported. The returned object
- * is in fact a native `RegExp` and works with all native methods.
- *
- * @class XRegExp
- * @constructor
- * @param {String|RegExp} pattern Regex pattern string, or an existing regex object to copy.
- * @param {String} [flags] Any combination of flags.
- *   Native flags:
- *     - `g` - global
- *     - `i` - ignore case
- *     - `m` - multiline anchors
- *     - `u` - unicode (ES6)
- *     - `y` - sticky (Firefox 3+, ES6)
- *   Additional XRegExp flags:
- *     - `n` - explicit capture
- *     - `s` - dot matches all (aka singleline)
- *     - `x` - free-spacing and line comments (aka extended)
- *     - `A` - astral (requires the Unicode Base addon)
- *   Flags cannot be provided when constructing one `RegExp` from another.
- * @returns {RegExp} Extended regular expression object.
- * @example
- *
- * // With named capture and flag x
- * XRegExp(`(?<year>  [0-9]{4} ) -?  # year
- *          (?<month> [0-9]{2} ) -?  # month
- *          (?<day>   [0-9]{2} )     # day`, 'x');
- *
- * // Providing a regex object copies it. Native regexes are recompiled using native (not XRegExp)
- * // syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` properties, and
- * // have fresh `lastIndex` properties (set to zero).
- * XRegExp(/regex/);
- */
-
-
-function XRegExp(pattern, flags) {
-  if (XRegExp.isRegExp(pattern)) {
-    if (flags !== undefined) {
-      throw new TypeError('Cannot supply flags when copying a RegExp');
-    }
-
-    return copyRegex(pattern);
-  } // Copy the argument behavior of `RegExp`
-
-
-  pattern = pattern === undefined ? '' : String(pattern);
-  flags = flags === undefined ? '' : String(flags);
-
-  if (XRegExp.isInstalled('astral') && !(0, _includes.default)(flags).call(flags, 'A')) {
-    // This causes an error to be thrown if the Unicode Base addon is not available
-    flags += 'A';
-  }
-
-  if (!patternCache[pattern]) {
-    patternCache[pattern] = {};
-  }
-
-  if (!patternCache[pattern][flags]) {
-    var context = {
-      hasNamedCapture: false,
-      captureNames: []
-    };
-    var scope = defaultScope;
-    var output = '';
-    var pos = 0;
-    var result; // Check for flag-related errors, and strip/apply flags in a leading mode modifier
-
-    var applied = prepareFlags(pattern, flags);
-    var appliedPattern = applied.pattern;
-    var appliedFlags = (0, _flags.default)(applied); // Use XRegExp's tokens to translate the pattern to a native regex pattern.
-    // `appliedPattern.length` may change on each iteration if tokens use `reparse`
-
-    while (pos < appliedPattern.length) {
-      do {
-        // Check for custom tokens at the current position
-        result = runTokens(appliedPattern, appliedFlags, pos, scope, context); // If the matched token used the `reparse` option, splice its output into the
-        // pattern before running tokens again at the same position
-
-        if (result && result.reparse) {
-          appliedPattern = (0, _slice.default)(appliedPattern).call(appliedPattern, 0, pos) + result.output + (0, _slice.default)(appliedPattern).call(appliedPattern, pos + result.matchLength);
-        }
-      } while (result && result.reparse);
-
-      if (result) {
-        output += result.output;
-        pos += result.matchLength || 1;
-      } else {
-        // Get the native token at the current position
-        var _XRegExp$exec = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, 'sticky'),
-            _XRegExp$exec2 = (0, _slicedToArray2.default)(_XRegExp$exec, 1),
-            token = _XRegExp$exec2[0];
-
-        output += token;
-        pos += token.length;
-
-        if (token === '[' && scope === defaultScope) {
-          scope = classScope;
-        } else if (token === ']' && scope === classScope) {
-          scope = defaultScope;
-        }
-      }
-    }
-
-    patternCache[pattern][flags] = {
-      // Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty
-      // groups are sometimes inserted during regex transpilation in order to keep tokens
-      // separated. However, more than one empty group in a row is never needed.
-      pattern: nativ.replace.call(output, /(?:\(\?:\))+/g, '(?:)'),
-      // Strip all but native flags
-      flags: nativ.replace.call(appliedFlags, /[^gimuy]+/g, ''),
-      // `context.captureNames` has an item for each capturing group, even if unnamed
-      captures: context.hasNamedCapture ? context.captureNames : null
-    };
-  }
-
-  var generated = patternCache[pattern][flags];
-  return augment(new RegExp(generated.pattern, (0, _flags.default)(generated)), generated.captures, pattern, flags);
-} // Add `RegExp.prototype` to the prototype chain
-
-
-XRegExp.prototype = /(?:)/; // ==--------------------------==
-// Public properties
-// ==--------------------------==
-
-/**
- * The XRegExp version number as a string containing three dot-separated parts. For example,
- * '2.0.0-beta-3'.
- *
- * @static
- * @memberOf XRegExp
- * @type String
- */
-
-XRegExp.version = '4.3.0'; // ==--------------------------==
-// Public methods
-// ==--------------------------==
-// Intentionally undocumented; used in tests and addons
-
-XRegExp._clipDuplicates = clipDuplicates;
-XRegExp._hasNativeFlag = hasNativeFlag;
-XRegExp._dec = dec;
-XRegExp._hex = hex;
-XRegExp._pad4 = pad4;
-/**
- * Extends XRegExp syntax and allows custom flags. This is used internally and can be used to
- * create XRegExp addons. If more than one token can match the same string, the last added wins.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex object that matches the new token.
- * @param {Function} handler Function that returns a new pattern string (using native regex syntax)
- *   to replace the matched token within all future XRegExp regexes. Has access to persistent
- *   properties of the regex being built, through `this`. Invoked with three arguments:
- *   - The match array, with named backreference properties.
- *   - The regex scope where the match was found: 'default' or 'class'.
- *   - The flags used by the regex, including any flags in a leading mode modifier.
- *   The handler function becomes part of the XRegExp construction process, so be careful not to
- *   construct XRegExps within the function or you will trigger infinite recursion.
- * @param {Object} [options] Options object with optional properties:
- *   - `scope` {String} Scope where the token applies: 'default', 'class', or 'all'.
- *   - `flag` {String} Single-character flag that triggers the token. This also registers the
- *     flag, which prevents XRegExp from throwing an 'unknown flag' error when the flag is used.
- *   - `optionalFlags` {String} Any custom flags checked for within the token `handler` that are
- *     not required to trigger the token. This registers the flags, to prevent XRegExp from
- *     throwing an 'unknown flag' error when any of the flags are used.
- *   - `reparse` {Boolean} Whether the `handler` function's output should not be treated as
- *     final, and instead be reparseable by other tokens (including the current token). Allows
- *     token chaining or deferring.
- *   - `leadChar` {String} Single character that occurs at the beginning of any successful match
- *     of the token (not always applicable). This doesn't change the behavior of the token unless
- *     you provide an erroneous value. However, providing it can increase the token's performance
- *     since the token can be skipped at any positions where this character doesn't appear.
- * @example
- *
- * // Basic usage: Add \a for the ALERT control code
- * XRegExp.addToken(
- *   /\\a/,
- *   () => '\\x07',
- *   {scope: 'all'}
- * );
- * XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true
- *
- * // Add the U (ungreedy) flag from PCRE and RE2, which reverses greedy and lazy quantifiers.
- * // Since `scope` is not specified, it uses 'default' (i.e., transformations apply outside of
- * // character classes only)
- * XRegExp.addToken(
- *   /([?*+]|{\d+(?:,\d*)?})(\??)/,
- *   (match) => `${match[1]}${match[2] ? '' : '?'}`,
- *   {flag: 'U'}
- * );
- * XRegExp('a+', 'U').exec('aaa')[0]; // -> 'a'
- * XRegExp('a+?', 'U').exec('aaa')[0]; // -> 'aaa'
- */
-
-XRegExp.addToken = function (regex, handler, options) {
-  options = options || {};
-  var _options = options,
-      optionalFlags = _options.optionalFlags;
-
-  if (options.flag) {
-    registerFlag(options.flag);
-  }
-
-  if (optionalFlags) {
-    optionalFlags = nativ.split.call(optionalFlags, '');
-    var _iteratorNormalCompletion2 = true;
-    var _didIteratorError2 = false;
-    var _iteratorError2 = undefined;
-
-    try {
-      for (var _iterator2 = (0, _getIterator2.default)(optionalFlags), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-        var flag = _step2.value;
-        registerFlag(flag);
-      }
-    } catch (err) {
-      _didIteratorError2 = true;
-      _iteratorError2 = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
-          _iterator2.return();
-        }
-      } finally {
-        if (_didIteratorError2) {
-          throw _iteratorError2;
-        }
-      }
-    }
-  } // Add to the private list of syntax tokens
-
-
-  tokens.push({
-    regex: copyRegex(regex, {
-      addG: true,
-      addY: hasNativeY,
-      isInternalOnly: true
-    }),
-    handler: handler,
-    scope: options.scope || defaultScope,
-    flag: options.flag,
-    reparse: options.reparse,
-    leadChar: options.leadChar
-  }); // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and flags
-  // might now produce different results
-
-  XRegExp.cache.flush('patterns');
-};
-/**
- * Caches and returns the result of calling `XRegExp(pattern, flags)`. On any subsequent call with
- * the same pattern and flag combination, the cached copy of the regex is returned.
- *
- * @memberOf XRegExp
- * @param {String} pattern Regex pattern string.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @returns {RegExp} Cached XRegExp object.
- * @example
- *
- * while (match = XRegExp.cache('.', 'gs').exec(str)) {
- *   // The regex is compiled once only
- * }
- */
-
-
-XRegExp.cache = function (pattern, flags) {
-  if (!regexCache[pattern]) {
-    regexCache[pattern] = {};
-  }
-
-  return regexCache[pattern][flags] || (regexCache[pattern][flags] = XRegExp(pattern, flags));
-}; // Intentionally undocumented; used in tests
-
-
-XRegExp.cache.flush = function (cacheName) {
-  if (cacheName === 'patterns') {
-    // Flush the pattern cache used by the `XRegExp` constructor
-    patternCache = {};
-  } else {
-    // Flush the regex cache populated by `XRegExp.cache`
-    regexCache = {};
-  }
-};
-/**
- * Escapes any regular expression metacharacters, for use when matching literal strings. The result
- * can safely be used at any point within a regex that uses any flags.
- *
- * @memberOf XRegExp
- * @param {String} str String to escape.
- * @returns {String} String with regex metacharacters escaped.
- * @example
- *
- * XRegExp.escape('Escaped? <.>');
- * // -> 'Escaped\?\ <\.>'
- */
-
-
-XRegExp.escape = function (str) {
-  return nativ.replace.call(toObject(str), /[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
-};
-/**
- * Executes a regex search in a specified string. Returns a match array or `null`. If the provided
- * regex uses named capture, named backreference properties are included on the match array.
- * Optional `pos` and `sticky` arguments specify the search start position, and whether the match
- * must start at the specified position only. The `lastIndex` property of the provided regex is not
- * used, but is updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.exec` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Array} Match array with named backreference properties, or `null`.
- * @example
- *
- * // Basic use, with named backreference
- * let match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})'));
- * match.hex; // -> '2620'
- *
- * // With pos and sticky, in a loop
- * let pos = 2, result = [], match;
- * while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) {
- *   result.push(match[1]);
- *   pos = match.index + match[0].length;
- * }
- * // result -> ['2', '3', '4']
- */
-
-
-XRegExp.exec = function (str, regex, pos, sticky) {
-  var cacheKey = 'g';
-  var addY = false;
-  var fakeY = false;
-  var match;
-  addY = hasNativeY && !!(sticky || regex.sticky && sticky !== false);
-
-  if (addY) {
-    cacheKey += 'y';
-  } else if (sticky) {
-    // Simulate sticky matching by appending an empty capture to the original regex. The
-    // resulting regex will succeed no matter what at the current index (set with `lastIndex`),
-    // and will not search the rest of the subject string. We'll know that the original regex
-    // has failed if that last capture is `''` rather than `undefined` (i.e., if that last
-    // capture participated in the match).
-    fakeY = true;
-    cacheKey += 'FakeY';
-  }
-
-  regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.match`/`replace`
-
-  var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-    addG: true,
-    addY: addY,
-    source: fakeY ? "".concat(regex.source, "|()") : undefined,
-    removeY: sticky === false,
-    isInternalOnly: true
-  }));
-  pos = pos || 0;
-  r2.lastIndex = pos; // Fixed `exec` required for `lastIndex` fix, named backreferences, etc.
-
-  match = fixed.exec.call(r2, str); // Get rid of the capture added by the pseudo-sticky matcher if needed. An empty string means
-  // the original regexp failed (see above).
-
-  if (fakeY && match && match.pop() === '') {
-    match = null;
-  }
-
-  if (regex.global) {
-    regex.lastIndex = match ? r2.lastIndex : 0;
-  }
-
-  return match;
-};
-/**
- * Executes a provided function once per regex match. Searches always start at the beginning of the
- * string and continue until the end, regardless of the state of the regex's `global` property and
- * initial `lastIndex`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Function} callback Function to execute for each match. Invoked with four arguments:
- *   - The match array, with named backreference properties.
- *   - The zero-based match index.
- *   - The string being traversed.
- *   - The regex object being used to traverse the string.
- * @example
- *
- * // Extracts every other digit from a string
- * const evens = [];
- * XRegExp.forEach('1a2345', /\d/, (match, i) => {
- *   if (i % 2) evens.push(+match[0]);
- * });
- * // evens -> [2, 4]
- */
-
-
-XRegExp.forEach = function (str, regex, callback) {
-  var pos = 0;
-  var i = -1;
-  var match;
-
-  while (match = XRegExp.exec(str, regex, pos)) {
-    // Because `regex` is provided to `callback`, the function could use the deprecated/
-    // nonstandard `RegExp.prototype.compile` to mutate the regex. However, since `XRegExp.exec`
-    // doesn't use `lastIndex` to set the search position, this can't lead to an infinite loop,
-    // at least. Actually, because of the way `XRegExp.exec` caches globalized versions of
-    // regexes, mutating the regex will not have any effect on the iteration or matched strings,
-    // which is a nice side effect that brings extra safety.
-    callback(match, ++i, str, regex);
-    pos = match.index + (match[0].length || 1);
-  }
-};
-/**
- * Copies a regex object and adds flag `g`. The copy maintains extended data, is augmented with
- * `XRegExp.prototype` properties, and has a fresh `lastIndex` property (set to zero). Native
- * regexes are not recompiled using XRegExp syntax.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex to globalize.
- * @returns {RegExp} Copy of the provided regex with flag `g` added.
- * @example
- *
- * const globalCopy = XRegExp.globalize(/regex/);
- * globalCopy.global; // -> true
- */
-
-
-XRegExp.globalize = function (regex) {
-  return copyRegex(regex, {
-    addG: true
-  });
-};
-/**
- * Installs optional features according to the specified options. Can be undone using
- * `XRegExp.uninstall`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.install({
- *   // Enables support for astral code points in Unicode addons (implicitly sets flag A)
- *   astral: true,
- *
- *   // Adds named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.install('astral namespacing');
- */
-
-
-XRegExp.install = function (options) {
-  options = prepareOptions(options);
-
-  if (!features.astral && options.astral) {
-    setAstral(true);
-  }
-
-  if (!features.namespacing && options.namespacing) {
-    setNamespacing(true);
-  }
-};
-/**
- * Checks whether an individual optional feature is installed.
- *
- * @memberOf XRegExp
- * @param {String} feature Name of the feature to check. One of:
- *   - `astral`
- *   - `namespacing`
- * @returns {Boolean} Whether the feature is installed.
- * @example
- *
- * XRegExp.isInstalled('astral');
- */
-
-
-XRegExp.isInstalled = function (feature) {
-  return !!features[feature];
-};
-/**
- * Returns `true` if an object is a regex; `false` if it isn't. This works correctly for regexes
- * created in another frame, when `instanceof` and `constructor` checks would fail.
- *
- * @memberOf XRegExp
- * @param {*} value Object to check.
- * @returns {Boolean} Whether the object is a `RegExp` object.
- * @example
- *
- * XRegExp.isRegExp('string'); // -> false
- * XRegExp.isRegExp(/regex/i); // -> true
- * XRegExp.isRegExp(RegExp('^', 'm')); // -> true
- * XRegExp.isRegExp(XRegExp('(?s).')); // -> true
- */
-
-
-XRegExp.isRegExp = function (value) {
-  return toString.call(value) === '[object RegExp]';
-}; // isType(value, 'RegExp');
-
-/**
- * Returns the first matched string, or in global mode, an array containing all matched strings.
- * This is essentially a more convenient re-implementation of `String.prototype.match` that gives
- * the result types you actually want (string instead of `exec`-style array in match-first mode,
- * and an empty array instead of `null` when no matches are found in match-all mode). It also lets
- * you override flag g and ignore `lastIndex`, and fixes browser bugs.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {String} [scope='one'] Use 'one' to return the first match as a string. Use 'all' to
- *   return an array of all matched strings. If not explicitly specified and `regex` uses flag g,
- *   `scope` is 'all'.
- * @returns {String|Array} In match-first mode: First match as a string, or `null`. In match-all
- *   mode: Array of all matched strings, or an empty array.
- * @example
- *
- * // Match first
- * XRegExp.match('abc', /\w/); // -> 'a'
- * XRegExp.match('abc', /\w/g, 'one'); // -> 'a'
- * XRegExp.match('abc', /x/g, 'one'); // -> null
- *
- * // Match all
- * XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /x/, 'all'); // -> []
- */
-
-
-XRegExp.match = function (str, regex, scope) {
-  var global = regex.global && scope !== 'one' || scope === 'all';
-  var cacheKey = (global ? 'g' : '') + (regex.sticky ? 'y' : '') || 'noGY';
-  regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`replace`
-
-  var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-    addG: !!global,
-    removeG: scope === 'one',
-    isInternalOnly: true
-  }));
-  var result = nativ.match.call(toObject(str), r2);
-
-  if (regex.global) {
-    regex.lastIndex = scope === 'one' && result ? // Can't use `r2.lastIndex` since `r2` is nonglobal in this case
-    result.index + result[0].length : 0;
-  }
-
-  return global ? result || [] : result && result[0];
-};
-/**
- * Retrieves the matches from searching a string using a chain of regexes that successively search
- * within previous matches. The provided `chain` array can contain regexes and or objects with
- * `regex` and `backref` properties. When a backreference is specified, the named or numbered
- * backreference is passed forward to the next regex or returned.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} chain Regexes that each search for matches within preceding results.
- * @returns {Array} Matches by the last regex in the chain, or an empty array.
- * @example
- *
- * // Basic usage; matches numbers within <b> tags
- * XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [
- *   XRegExp('(?is)<b>.*?</b>'),
- *   /\d+/
- * ]);
- * // -> ['2', '4', '56']
- *
- * // Passing forward and returning specific backreferences
- * html = '<a href="http://xregexp.com/api/">XRegExp</a>\
- *         <a href="http://www.google.com/">Google</a>';
- * XRegExp.matchChain(html, [
- *   {regex: /<a href="([^"]+)">/i, backref: 1},
- *   {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'}
- * ]);
- * // -> ['xregexp.com', 'www.google.com']
- */
-
-
-XRegExp.matchChain = function (str, chain) {
-  return function recurseChain(values, level) {
-    var item = chain[level].regex ? chain[level] : {
-      regex: chain[level]
-    };
-    var matches = [];
-
-    function addMatch(match) {
-      if (item.backref) {
-        var ERR_UNDEFINED_GROUP = "Backreference to undefined group: ".concat(item.backref);
-        var isNamedBackref = isNaN(item.backref);
-
-        if (isNamedBackref && XRegExp.isInstalled('namespacing')) {
-          // `groups` has `null` as prototype, so using `in` instead of `hasOwnProperty`
-          if (!(item.backref in match.groups)) {
-            throw new ReferenceError(ERR_UNDEFINED_GROUP);
-          }
-        } else if (!match.hasOwnProperty(item.backref)) {
-          throw new ReferenceError(ERR_UNDEFINED_GROUP);
-        }
-
-        var backrefValue = isNamedBackref && XRegExp.isInstalled('namespacing') ? match.groups[item.backref] : match[item.backref];
-        matches.push(backrefValue || '');
-      } else {
-        matches.push(match[0]);
-      }
-    }
-
-    var _iteratorNormalCompletion3 = true;
-    var _didIteratorError3 = false;
-    var _iteratorError3 = undefined;
-
-    try {
-      for (var _iterator3 = (0, _getIterator2.default)(values), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
-        var value = _step3.value;
-        (0, _forEach.default)(XRegExp).call(XRegExp, value, item.regex, addMatch);
-      }
-    } catch (err) {
-      _didIteratorError3 = true;
-      _iteratorError3 = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
-          _iterator3.return();
-        }
-      } finally {
-        if (_didIteratorError3) {
-          throw _iteratorError3;
-        }
-      }
-    }
-
-    return level === chain.length - 1 || !matches.length ? matches : recurseChain(matches, level + 1);
-  }([str], 0);
-};
-/**
- * Returns a new string with one or all matches of a pattern replaced. The pattern can be a string
- * or regex, and the replacement can be a string or a function to be called for each match. To
- * perform a global search and replace, use the optional `scope` argument or include flag g if using
- * a regex. Replacement strings can use `${n}` or `$<n>` for named and numbered backreferences.
- * Replacement functions can use named backreferences via `arguments[0].name`. Also fixes browser
- * bugs compared to the native `String.prototype.replace` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- *   Replacement strings can include special replacement syntax:
- *     - $$ - Inserts a literal $ character.
- *     - $&, $0 - Inserts the matched substring.
- *     - $` - Inserts the string that precedes the matched substring (left context).
- *     - $' - Inserts the string that follows the matched substring (right context).
- *     - $n, $nn - Where n/nn are digits referencing an existent capturing group, inserts
- *       backreference n/nn.
- *     - ${n}, $<n> - Where n is a name or any number of digits that reference an existent capturing
- *       group, inserts backreference n.
- *   Replacement functions are invoked with three or more arguments:
- *     - The matched substring (corresponds to $& above). Named backreferences are accessible as
- *       properties of this first argument.
- *     - 0..n arguments, one for each backreference (corresponding to $1, $2, etc. above).
- *     - The zero-based index of the match within the total search string.
- *     - The total string being searched.
- * @param {String} [scope='one'] Use 'one' to replace the first match only, or 'all'. If not
- *   explicitly specified and using a regex with flag g, `scope` is 'all'.
- * @returns {String} New string with one or all matches replaced.
- * @example
- *
- * // Regex search, using named backreferences in replacement string
- * const name = XRegExp('(?<first>\\w+) (?<last>\\w+)');
- * XRegExp.replace('John Smith', name, '$<last>, $<first>');
- * // -> 'Smith, John'
- *
- * // Regex search, using named backreferences in replacement function
- * XRegExp.replace('John Smith', name, (match) => `${match.last}, ${match.first}`);
- * // -> 'Smith, John'
- *
- * // String search, with replace-all
- * XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all');
- * // -> 'XRegExp builds XRegExps'
- */
-
-
-XRegExp.replace = function (str, search, replacement, scope) {
-  var isRegex = XRegExp.isRegExp(search);
-  var global = search.global && scope !== 'one' || scope === 'all';
-  var cacheKey = (global ? 'g' : '') + (search.sticky ? 'y' : '') || 'noGY';
-  var s2 = search;
-
-  if (isRegex) {
-    search[REGEX_DATA] = search[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`match`. Since a copy is used, `search`'s
-    // `lastIndex` isn't updated *during* replacement iterations
-
-    s2 = search[REGEX_DATA][cacheKey] || (search[REGEX_DATA][cacheKey] = copyRegex(search, {
-      addG: !!global,
-      removeG: scope === 'one',
-      isInternalOnly: true
-    }));
-  } else if (global) {
-    s2 = new RegExp(XRegExp.escape(String(search)), 'g');
-  } // Fixed `replace` required for named backreferences, etc.
-
-
-  var result = fixed.replace.call(toObject(str), s2, replacement);
-
-  if (isRegex && search.global) {
-    // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-    search.lastIndex = 0;
-  }
-
-  return result;
-};
-/**
- * Performs batch processing of string replacements. Used like `XRegExp.replace`, but accepts an
- * array of replacement details. Later replacements operate on the output of earlier replacements.
- * Replacement details are accepted as an array with a regex or string to search for, the
- * replacement string or function, and an optional scope of 'one' or 'all'. Uses the XRegExp
- * replacement text syntax, which supports named backreference properties via `${name}` or
- * `$<name>`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} replacements Array of replacement detail arrays.
- * @returns {String} New string with all replacements.
- * @example
- *
- * str = XRegExp.replaceEach(str, [
- *   [XRegExp('(?<name>a)'), 'z${name}'],
- *   [/b/gi, 'y'],
- *   [/c/g, 'x', 'one'], // scope 'one' overrides /g
- *   [/d/, 'w', 'all'],  // scope 'all' overrides lack of /g
- *   ['e', 'v', 'all'],  // scope 'all' allows replace-all for strings
- *   [/f/g, ($0) => $0.toUpperCase()]
- * ]);
- */
-
-
-XRegExp.replaceEach = function (str, replacements) {
-  var _iteratorNormalCompletion4 = true;
-  var _didIteratorError4 = false;
-  var _iteratorError4 = undefined;
-
-  try {
-    for (var _iterator4 = (0, _getIterator2.default)(replacements), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
-      var r = _step4.value;
-      str = XRegExp.replace(str, r[0], r[1], r[2]);
-    }
-  } catch (err) {
-    _didIteratorError4 = true;
-    _iteratorError4 = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
-        _iterator4.return();
-      }
-    } finally {
-      if (_didIteratorError4) {
-        throw _iteratorError4;
-      }
-    }
-  }
-
-  return str;
-};
-/**
- * Splits a string into an array of strings using a regex or string separator. Matches of the
- * separator are not included in the result array. However, if `separator` is a regex that contains
- * capturing groups, backreferences are spliced into the result each time `separator` is matched.
- * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably
- * cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to split.
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- * @example
- *
- * // Basic use
- * XRegExp.split('a b c', ' ');
- * // -> ['a', 'b', 'c']
- *
- * // With limit
- * XRegExp.split('a b c', ' ', 2);
- * // -> ['a', 'b']
- *
- * // Backreferences in result array
- * XRegExp.split('..word1..', /([a-z]+)(\d+)/i);
- * // -> ['..', 'word', '1', '..']
- */
-
-
-XRegExp.split = function (str, separator, limit) {
-  return fixed.split.call(toObject(str), separator, limit);
-};
-/**
- * Executes a regex search in a specified string. Returns `true` or `false`. Optional `pos` and
- * `sticky` arguments specify the search start position, and whether the match must start at the
- * specified position only. The `lastIndex` property of the provided regex is not used, but is
- * updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.test` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Boolean} Whether the regex matched the provided value.
- * @example
- *
- * // Basic use
- * XRegExp.test('abc', /c/); // -> true
- *
- * // With pos and sticky
- * XRegExp.test('abc', /c/, 0, 'sticky'); // -> false
- * XRegExp.test('abc', /c/, 2, 'sticky'); // -> true
- */
-// Do this the easy way :-)
-
-
-XRegExp.test = function (str, regex, pos, sticky) {
-  return !!XRegExp.exec(str, regex, pos, sticky);
-};
-/**
- * Uninstalls optional features according to the specified options. All optional features start out
- * uninstalled, so this is used to undo the actions of `XRegExp.install`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.uninstall({
- *   // Disables support for astral code points in Unicode addons
- *   astral: true,
- *
- *   // Don't add named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.uninstall('astral namespacing');
- */
-
-
-XRegExp.uninstall = function (options) {
-  options = prepareOptions(options);
-
-  if (features.astral && options.astral) {
-    setAstral(false);
-  }
-
-  if (features.namespacing && options.namespacing) {
-    setNamespacing(false);
-  }
-};
-/**
- * Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as
- * regex objects or strings. Metacharacters are escaped in patterns provided as strings.
- * Backreferences in provided regex objects are automatically renumbered to work correctly within
- * the larger combined pattern. Native flags used by provided regexes are ignored in favor of the
- * `flags` argument.
- *
- * @memberOf XRegExp
- * @param {Array} patterns Regexes and strings to combine.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @param {Object} [options] Options object with optional properties:
- *   - `conjunction` {String} Type of conjunction to use: 'or' (default) or 'none'.
- * @returns {RegExp} Union of the provided regexes and strings.
- * @example
- *
- * XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i');
- * // -> /a\+b\*c|(dogs)\1|(cats)\2/i
- *
- * XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'});
- * // -> /manbearpig/i
- */
-
-
-XRegExp.union = function (patterns, flags, options) {
-  options = options || {};
-  var conjunction = options.conjunction || 'or';
-  var numCaptures = 0;
-  var numPriorCaptures;
-  var captureNames;
-
-  function rewrite(match, paren, backref) {
-    var name = captureNames[numCaptures - numPriorCaptures]; // Capturing group
-
-    if (paren) {
-      ++numCaptures; // If the current capture has a name, preserve the name
-
-      if (name) {
-        return "(?<".concat(name, ">");
-      } // Backreference
-
-    } else if (backref) {
-      // Rewrite the backreference
-      return "\\".concat(+backref + numPriorCaptures);
-    }
-
-    return match;
-  }
-
-  if (!(isType(patterns, 'Array') && patterns.length)) {
-    throw new TypeError('Must provide a nonempty array of patterns to merge');
-  }
-
-  var parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-  var output = [];
-  var _iteratorNormalCompletion5 = true;
-  var _didIteratorError5 = false;
-  var _iteratorError5 = undefined;
-
-  try {
-    for (var _iterator5 = (0, _getIterator2.default)(patterns), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
-      var pattern = _step5.value;
-
-      if (XRegExp.isRegExp(pattern)) {
-        numPriorCaptures = numCaptures;
-        captureNames = pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames || []; // Rewrite backreferences. Passing to XRegExp dies on octals and ensures patterns are
-        // independently valid; helps keep this simple. Named captures are put back
-
-        output.push(nativ.replace.call(XRegExp(pattern.source).source, parts, rewrite));
-      } else {
-        output.push(XRegExp.escape(pattern));
-      }
-    }
-  } catch (err) {
-    _didIteratorError5 = true;
-    _iteratorError5 = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
-        _iterator5.return();
-      }
-    } finally {
-      if (_didIteratorError5) {
-        throw _iteratorError5;
-      }
-    }
-  }
-
-  var separator = conjunction === 'none' ? '' : '|';
-  return XRegExp(output.join(separator), flags);
-}; // ==--------------------------==
-// Fixed/extended native methods
-// ==--------------------------==
-
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `RegExp.prototype.exec`. Use via `XRegExp.exec`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Array} Match array with named backreference properties, or `null`.
- */
-
-
-fixed.exec = function (str) {
-  var origLastIndex = this.lastIndex;
-  var match = nativ.exec.apply(this, arguments);
-
-  if (match) {
-    // Fix browsers whose `exec` methods don't return `undefined` for nonparticipating capturing
-    // groups. This fixes IE 5.5-8, but not IE 9's quirks mode or emulation of older IEs. IE 9
-    // in standards mode follows the spec.
-    if (!correctExecNpcg && match.length > 1 && (0, _includes.default)(match).call(match, '')) {
-      var _context3;
-
-      var r2 = copyRegex(this, {
-        removeG: true,
-        isInternalOnly: true
-      }); // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
-      // matching due to characters outside the match
-
-      nativ.replace.call((0, _slice.default)(_context3 = String(str)).call(_context3, match.index), r2, function () {
-        var len = arguments.length; // Skip index 0 and the last 2
-
-        for (var i = 1; i < len - 2; ++i) {
-          if ((i < 0 || arguments.length <= i ? undefined : arguments[i]) === undefined) {
-            match[i] = undefined;
-          }
-        }
-      });
-    } // Attach named capture properties
-
-
-    var groupsObject = match;
-
-    if (XRegExp.isInstalled('namespacing')) {
-      // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-      match.groups = (0, _create.default)(null);
-      groupsObject = match.groups;
-    }
-
-    if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) {
-      // Skip index 0
-      for (var i = 1; i < match.length; ++i) {
-        var name = this[REGEX_DATA].captureNames[i - 1];
-
-        if (name) {
-          groupsObject[name] = match[i];
-        }
-      }
-    } // Fix browsers that increment `lastIndex` after zero-length matches
-
-
-    if (this.global && !match[0].length && this.lastIndex > match.index) {
-      this.lastIndex = match.index;
-    }
-  }
-
-  if (!this.global) {
-    // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-    this.lastIndex = origLastIndex;
-  }
-
-  return match;
-};
-/**
- * Fixes browser bugs in the native `RegExp.prototype.test`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Boolean} Whether the regex matched the provided value.
- */
-
-
-fixed.test = function (str) {
-  // Do this the easy way :-)
-  return !!fixed.exec.call(this, str);
-};
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `String.prototype.match`.
- *
- * @memberOf String
- * @param {RegExp|*} regex Regex to search with. If not a regex object, it is passed to `RegExp`.
- * @returns {Array} If `regex` uses flag g, an array of match strings or `null`. Without flag g,
- *   the result of calling `regex.exec(this)`.
- */
-
-
-fixed.match = function (regex) {
-  if (!XRegExp.isRegExp(regex)) {
-    // Use the native `RegExp` rather than `XRegExp`
-    regex = new RegExp(regex);
-  } else if (regex.global) {
-    var result = nativ.match.apply(this, arguments); // Fixes IE bug
-
-    regex.lastIndex = 0;
-    return result;
-  }
-
-  return fixed.exec.call(regex, toObject(this));
-};
-/**
- * Adds support for `${n}` (or `$<n>`) tokens for named and numbered backreferences in replacement
- * text, and provides named backreferences to replacement functions as `arguments[0].name`. Also
- * fixes browser bugs in replacement text syntax when performing a replacement using a nonregex
- * search value, and the value of a replacement regex's `lastIndex` property during replacement
- * iterations and upon completion. Note that this doesn't support SpiderMonkey's proprietary third
- * (`flags`) argument. Use via `XRegExp.replace`.
- *
- * @memberOf String
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- * @returns {String} New string with one or all matches replaced.
- */
-
-
-fixed.replace = function (search, replacement) {
-  var isRegex = XRegExp.isRegExp(search);
-  var origLastIndex;
-  var captureNames;
-  var result;
-
-  if (isRegex) {
-    if (search[REGEX_DATA]) {
-      captureNames = search[REGEX_DATA].captureNames;
-    } // Only needed if `search` is nonglobal
-
-
-    origLastIndex = search.lastIndex;
-  } else {
-    search += ''; // Type-convert
-  } // Don't use `typeof`; some older browsers return 'function' for regex objects
-
-
-  if (isType(replacement, 'Function')) {
-    // Stringifying `this` fixes a bug in IE < 9 where the last argument in replacement
-    // functions isn't type-converted to a string
-    result = nativ.replace.call(String(this), search, function () {
-      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-        args[_key] = arguments[_key];
-      }
-
-      if (captureNames) {
-        var groupsObject;
-
-        if (XRegExp.isInstalled('namespacing')) {
-          // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-          groupsObject = (0, _create.default)(null);
-          args.push(groupsObject);
-        } else {
-          // Change the `args[0]` string primitive to a `String` object that can store
-          // properties. This really does need to use `String` as a constructor
-          args[0] = new String(args[0]);
-          groupsObject = args[0];
-        } // Store named backreferences
-
-
-        for (var i = 0; i < captureNames.length; ++i) {
-          if (captureNames[i]) {
-            groupsObject[captureNames[i]] = args[i + 1];
-          }
-        }
-      } // Update `lastIndex` before calling `replacement`. Fixes IE, Chrome, Firefox, Safari
-      // bug (last tested IE 9, Chrome 17, Firefox 11, Safari 5.1)
-
-
-      if (isRegex && search.global) {
-        search.lastIndex = args[args.length - 2] + args[0].length;
-      } // ES6 specs the context for replacement functions as `undefined`
-
-
-      return replacement.apply(void 0, args);
-    });
-  } else {
-    // Ensure that the last value of `args` will be a string when given nonstring `this`,
-    // while still throwing on null or undefined context
-    result = nativ.replace.call(this == null ? this : String(this), search, function () {
-      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-        args[_key2] = arguments[_key2];
-      }
-
-      return nativ.replace.call(String(replacement), replacementToken, replacer);
-
-      function replacer($0, bracketed, angled, dollarToken) {
-        bracketed = bracketed || angled; // Named or numbered backreference with curly or angled braces
-
-        if (bracketed) {
-          // XRegExp behavior for `${n}` or `$<n>`:
-          // 1. Backreference to numbered capture, if `n` is an integer. Use `0` for the
-          //    entire match. Any number of leading zeros may be used.
-          // 2. Backreference to named capture `n`, if it exists and is not an integer
-          //    overridden by numbered capture. In practice, this does not overlap with
-          //    numbered capture since XRegExp does not allow named capture to use a bare
-          //    integer as the name.
-          // 3. If the name or number does not refer to an existing capturing group, it's
-          //    an error.
-          var n = +bracketed; // Type-convert; drop leading zeros
-
-          if (n <= args.length - 3) {
-            return args[n] || '';
-          } // Groups with the same name is an error, else would need `lastIndexOf`
-
-
-          n = captureNames ? (0, _indexOf.default)(captureNames).call(captureNames, bracketed) : -1;
-
-          if (n < 0) {
-            throw new SyntaxError("Backreference to undefined group ".concat($0));
-          }
-
-          return args[n + 1] || '';
-        } // Else, special variable or numbered backreference without curly braces
-
-
-        if (dollarToken === '$') {
-          // $$
-          return '$';
-        }
-
-        if (dollarToken === '&' || +dollarToken === 0) {
-          // $&, $0 (not followed by 1-9), $00
-          return args[0];
-        }
-
-        if (dollarToken === '`') {
-          var _context4;
-
-          // $` (left context)
-          return (0, _slice.default)(_context4 = args[args.length - 1]).call(_context4, 0, args[args.length - 2]);
-        }
-
-        if (dollarToken === "'") {
-          var _context5;
-
-          // $' (right context)
-          return (0, _slice.default)(_context5 = args[args.length - 1]).call(_context5, args[args.length - 2] + args[0].length);
-        } // Else, numbered backreference without braces
-
-
-        dollarToken = +dollarToken; // Type-convert; drop leading zero
-        // XRegExp behavior for `$n` and `$nn`:
-        // - Backrefs end after 1 or 2 digits. Use `${..}` or `$<..>` for more digits.
-        // - `$1` is an error if no capturing groups.
-        // - `$10` is an error if less than 10 capturing groups. Use `${1}0` or `$<1>0`
-        //   instead.
-        // - `$01` is `$1` if at least one capturing group, else it's an error.
-        // - `$0` (not followed by 1-9) and `$00` are the entire match.
-        // Native behavior, for comparison:
-        // - Backrefs end after 1 or 2 digits. Cannot reference capturing group 100+.
-        // - `$1` is a literal `$1` if no capturing groups.
-        // - `$10` is `$1` followed by a literal `0` if less than 10 capturing groups.
-        // - `$01` is `$1` if at least one capturing group, else it's a literal `$01`.
-        // - `$0` is a literal `$0`.
-
-        if (!isNaN(dollarToken)) {
-          if (dollarToken > args.length - 3) {
-            throw new SyntaxError("Backreference to undefined group ".concat($0));
-          }
-
-          return args[dollarToken] || '';
-        } // `$` followed by an unsupported char is an error, unlike native JS
-
-
-        throw new SyntaxError("Invalid token ".concat($0));
-      }
-    });
-  }
-
-  if (isRegex) {
-    if (search.global) {
-      // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-      search.lastIndex = 0;
-    } else {
-      // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-      search.lastIndex = origLastIndex;
-    }
-  }
-
-  return result;
-};
-/**
- * Fixes browser bugs in the native `String.prototype.split`. Use via `XRegExp.split`.
- *
- * @memberOf String
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- */
-
-
-fixed.split = function (separator, limit) {
-  if (!XRegExp.isRegExp(separator)) {
-    // Browsers handle nonregex split correctly, so use the faster native method
-    return nativ.split.apply(this, arguments);
-  }
-
-  var str = String(this);
-  var output = [];
-  var origLastIndex = separator.lastIndex;
-  var lastLastIndex = 0;
-  var lastLength; // Values for `limit`, per the spec:
-  // If undefined: pow(2,32) - 1
-  // If 0, Infinity, or NaN: 0
-  // If positive number: limit = floor(limit); if (limit >= pow(2,32)) limit -= pow(2,32);
-  // If negative number: pow(2,32) - floor(abs(limit))
-  // If other: Type-convert, then use the above rules
-  // This line fails in very strange ways for some values of `limit` in Opera 10.5-10.63, unless
-  // Opera Dragonfly is open (go figure). It works in at least Opera 9.5-10.1 and 11+
-
-  limit = (limit === undefined ? -1 : limit) >>> 0;
-  (0, _forEach.default)(XRegExp).call(XRegExp, str, separator, function (match) {
-    // This condition is not the same as `if (match[0].length)`
-    if (match.index + match[0].length > lastLastIndex) {
-      output.push((0, _slice.default)(str).call(str, lastLastIndex, match.index));
-
-      if (match.length > 1 && match.index < str.length) {
-        Array.prototype.push.apply(output, (0, _slice.default)(match).call(match, 1));
-      }
-
-      lastLength = match[0].length;
-      lastLastIndex = match.index + lastLength;
-    }
-  });
-
-  if (lastLastIndex === str.length) {
-    if (!nativ.test.call(separator, '') || lastLength) {
-      output.push('');
-    }
-  } else {
-    output.push((0, _slice.default)(str).call(str, lastLastIndex));
-  }
-
-  separator.lastIndex = origLastIndex;
-  return output.length > limit ? (0, _slice.default)(output).call(output, 0, limit) : output;
-}; // ==--------------------------==
-// Built-in syntax/flag tokens
-// ==--------------------------==
-
-/*
- * Letter escapes that natively match literal characters: `\a`, `\A`, etc. These should be
- * SyntaxErrors but are allowed in web reality. XRegExp makes them errors for cross-browser
- * consistency and to reserve their syntax, but lets them be superseded by addons.
- */
-
-
-XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/, function (match, scope) {
-  // \B is allowed in default scope only
-  if (match[1] === 'B' && scope === defaultScope) {
-    return match[0];
-  }
-
-  throw new SyntaxError("Invalid escape ".concat(match[0]));
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Unicode code point escape with curly braces: `\u{N..}`. `N..` is any one or more digit
- * hexadecimal number from 0-10FFFF, and can include leading zeros. Requires the native ES6 `u` flag
- * to support code points greater than U+FFFF. Avoids converting code points above U+FFFF to
- * surrogate pairs (which could be done without flag `u`), since that could lead to broken behavior
- * if you follow a `\u{N..}` token that references a code point above U+FFFF with a quantifier, or
- * if you use the same in a character class.
- */
-
-XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/, function (match, scope, flags) {
-  var code = dec(match[1]);
-
-  if (code > 0x10FFFF) {
-    throw new SyntaxError("Invalid Unicode code point ".concat(match[0]));
-  }
-
-  if (code <= 0xFFFF) {
-    // Converting to \uNNNN avoids needing to escape the literal character and keep it
-    // separate from preceding tokens
-    return "\\u".concat(pad4(hex(code)));
-  } // If `code` is between 0xFFFF and 0x10FFFF, require and defer to native handling
-
-
-  if (hasNativeU && (0, _includes.default)(flags).call(flags, 'u')) {
-    return match[0];
-  }
-
-  throw new SyntaxError('Cannot use Unicode code point above \\u{FFFF} without flag u');
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Empty character class: `[]` or `[^]`. This fixes a critical cross-browser syntax inconsistency.
- * Unless this is standardized (per the ES spec), regex syntax can't be accurately parsed because
- * character class endings can't be determined.
- */
-
-XRegExp.addToken(/\[(\^?)\]/, // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S].
-// (?!) should work like \b\B, but is unreliable in some versions of Firefox
-
-/* eslint-disable no-confusing-arrow */
-function (match) {
-  return match[1] ? '[\\s\\S]' : '\\b\\B';
-},
-/* eslint-enable no-confusing-arrow */
-{
-  leadChar: '['
-});
-/*
- * Comment pattern: `(?# )`. Inline comments are an alternative to the line comments allowed in
- * free-spacing mode (flag x).
- */
-
-XRegExp.addToken(/\(\?#[^)]*\)/, getContextualTokenSeparator, {
-  leadChar: '('
-});
-/*
- * Whitespace and line comments, in free-spacing mode (aka extended mode, flag x) only.
- */
-
-XRegExp.addToken(/\s+|#[^\n]*\n?/, getContextualTokenSeparator, {
-  flag: 'x'
-});
-/*
- * Dot, in dotall mode (aka singleline mode, flag s) only.
- */
-
-XRegExp.addToken(/\./, function () {
-  return '[\\s\\S]';
-}, {
-  flag: 's',
-  leadChar: '.'
-});
-/*
- * Named backreference: `\k<name>`. Backreference names can use the characters A-Z, a-z, 0-9, _,
- * and $ only. Also allows numbered backreferences as `\k<n>`.
- */
-
-XRegExp.addToken(/\\k<([\w$]+)>/, function (match) {
-  var _context6, _context7;
-
-  // Groups with the same name is an error, else would need `lastIndexOf`
-  var index = isNaN(match[1]) ? (0, _indexOf.default)(_context6 = this.captureNames).call(_context6, match[1]) + 1 : +match[1];
-  var endIndex = match.index + match[0].length;
-
-  if (!index || index > this.captureNames.length) {
-    throw new SyntaxError("Backreference to undefined group ".concat(match[0]));
-  } // Keep backreferences separate from subsequent literal numbers. This avoids e.g.
-  // inadvertedly changing `(?<n>)\k<n>1` to `()\11`.
-
-
-  return (0, _concat.default)(_context7 = "\\".concat(index)).call(_context7, endIndex === match.input.length || isNaN(match.input[endIndex]) ? '' : '(?:)');
-}, {
-  leadChar: '\\'
-});
-/*
- * Numbered backreference or octal, plus any following digits: `\0`, `\11`, etc. Octals except `\0`
- * not followed by 0-9 and backreferences to unopened capture groups throw an error. Other matches
- * are returned unaltered. IE < 9 doesn't support backreferences above `\99` in regex syntax.
- */
-
-XRegExp.addToken(/\\(\d+)/, function (match, scope) {
-  if (!(scope === defaultScope && /^[1-9]/.test(match[1]) && +match[1] <= this.captureNames.length) && match[1] !== '0') {
-    throw new SyntaxError("Cannot use octal escape or backreference to undefined group ".concat(match[0]));
-  }
-
-  return match[0];
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Named capturing group; match the opening delimiter only: `(?<name>`. Capture names can use the
- * characters A-Z, a-z, 0-9, _, and $ only. Names can't be integers. Supports Python-style
- * `(?P<name>` as an alternate syntax to avoid issues in some older versions of Opera which natively
- * supported the Python-style syntax. Otherwise, XRegExp might treat numbered backreferences to
- * Python-style named capture as octals.
- */
-
-XRegExp.addToken(/\(\?P?<([\w$]+)>/, function (match) {
-  var _context8;
-
-  // Disallow bare integers as names because named backreferences are added to match arrays
-  // and therefore numeric properties may lead to incorrect lookups
-  if (!isNaN(match[1])) {
-    throw new SyntaxError("Cannot use integer as capture name ".concat(match[0]));
-  }
-
-  if (!XRegExp.isInstalled('namespacing') && (match[1] === 'length' || match[1] === '__proto__')) {
-    throw new SyntaxError("Cannot use reserved word as capture name ".concat(match[0]));
-  }
-
-  if ((0, _includes.default)(_context8 = this.captureNames).call(_context8, match[1])) {
-    throw new SyntaxError("Cannot use same name for multiple groups ".concat(match[0]));
-  }
-
-  this.captureNames.push(match[1]);
-  this.hasNamedCapture = true;
-  return '(';
-}, {
-  leadChar: '('
-});
-/*
- * Capturing group; match the opening parenthesis only. Required for support of named capturing
- * groups. Also adds explicit capture mode (flag n).
- */
-
-XRegExp.addToken(/\((?!\?)/, function (match, scope, flags) {
-  if ((0, _includes.default)(flags).call(flags, 'n')) {
-    return '(?:';
-  }
-
-  this.captureNames.push(null);
-  return '(';
-}, {
-  optionalFlags: 'n',
-  leadChar: '('
-});
-var _default = XRegExp;
-exports.default = _default;
-module.exports = exports["default"];
\ No newline at end of file
diff --git a/node_modules/xregexp/package.json b/node_modules/xregexp/package.json
deleted file mode 100644
index ea8df15..0000000
--- a/node_modules/xregexp/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
-  "name": "xregexp",
-  "version": "4.3.0",
-  "description": "Extended regular expressions",
-  "homepage": "http://xregexp.com/",
-  "author": "Steven Levithan <steves_list@hotmail.com>",
-  "license": "MIT",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/slevithan/xregexp.git"
-  },
-  "keywords": [
-    "regex",
-    "regexp",
-    "regular expression",
-    "unicode"
-  ],
-  "main": "./lib",
-  "files": [
-    "src",
-    "lib",
-    "tools/output",
-    "xregexp-all.js"
-  ],
-  "scripts": {
-    "lint": "eslint .",
-    "babel": "babel src -d lib",
-    "build-unicode-data": "node tools/scripts/block-regex.js && node tools/scripts/category-regex.js && node tools/scripts/property-regex.js && node tools/scripts/script-regex.js",
-    "prebuild": "npm run build-unicode-data && npm run lint && npm run babel",
-    "build": "browserify lib/index.js --standalone XRegExp > xregexp-all.js",
-    "pretest": "npm run build",
-    "test": "jasmine JASMINE_CONFIG_PATH=tests/jasmine.json",
-    "test-saucelabs": "npm run pretest && zuul tests/spec/*.js",
-    "test-browser": "npm run test-saucelabs -- --local --open",
-    "prepublish": "npm test"
-  },
-  "devDependencies": {
-    "@babel/cli": "^7.2.3",
-    "@babel/core": "^7.2.2",
-    "@babel/plugin-transform-runtime": "^7.8.3",
-    "@babel/preset-env": "^7.2.3",
-    "babel-plugin-add-module-exports": "^0.2.1",
-    "babel-plugin-array-includes": "^2.0.3",
-    "babel-plugin-transform-xregexp": "^0.0.6",
-    "browserify": "^16.2.0",
-    "eslint": "^4.19.1",
-    "jasmine": "^3.1.0",
-    "jsesc": "^2.5.1",
-    "unicode-12.1.0": "^0.8.0",
-    "unicode-property-value-aliases": "^3.0.0",
-    "zuul": "^3.11.1"
-  },
-  "dependencies": {
-    "@babel/runtime-corejs3": "^7.8.3"
-  }
-}
diff --git a/node_modules/xregexp/src/addons/build.js b/node_modules/xregexp/src/addons/build.js
deleted file mode 100644
index bd07704..0000000
--- a/node_modules/xregexp/src/addons/build.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/*!
- * XRegExp.build 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- */
-
-export default (XRegExp) => {
-    const REGEX_DATA = 'xregexp';
-    const subParts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-    const parts = XRegExp.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/, subParts], 'g', {
-        conjunction: 'or'
-    });
-
-    /**
-     * Strips a leading `^` and trailing unescaped `$`, if both are present.
-     *
-     * @private
-     * @param {String} pattern Pattern to process.
-     * @returns {String} Pattern with edge anchors removed.
-     */
-    function deanchor(pattern) {
-        // Allow any number of empty noncapturing groups before/after anchors, because regexes
-        // built/generated by XRegExp sometimes include them
-        const leadingAnchor = /^(?:\(\?:\))*\^/;
-        const trailingAnchor = /\$(?:\(\?:\))*$/;
-
-        if (
-            leadingAnchor.test(pattern) &&
-            trailingAnchor.test(pattern) &&
-            // Ensure that the trailing `$` isn't escaped
-            trailingAnchor.test(pattern.replace(/\\[\s\S]/g, ''))
-        ) {
-            return pattern.replace(leadingAnchor, '').replace(trailingAnchor, '');
-        }
-
-        return pattern;
-    }
-
-    /**
-     * Converts the provided value to an XRegExp. Native RegExp flags are not preserved.
-     *
-     * @private
-     * @param {String|RegExp} value Value to convert.
-     * @param {Boolean} [addFlagX] Whether to apply the `x` flag in cases when `value` is not
-     *   already a regex generated by XRegExp
-     * @returns {RegExp} XRegExp object with XRegExp syntax applied.
-     */
-    function asXRegExp(value, addFlagX) {
-        const flags = addFlagX ? 'x' : '';
-        return XRegExp.isRegExp(value) ?
-            (value[REGEX_DATA] && value[REGEX_DATA].captureNames ?
-                // Don't recompile, to preserve capture names
-                value :
-                // Recompile as XRegExp
-                XRegExp(value.source, flags)
-            ) :
-            // Compile string as XRegExp
-            XRegExp(value, flags);
-    }
-
-    function interpolate(substitution) {
-        return substitution instanceof RegExp ? substitution : XRegExp.escape(substitution);
-    }
-
-    function reduceToSubpatternsObject(subpatterns, interpolated, subpatternIndex) {
-        subpatterns[`subpattern${subpatternIndex}`] = interpolated;
-        return subpatterns;
-    }
-
-    function embedSubpatternAfter(raw, subpatternIndex, rawLiterals) {
-        const hasSubpattern = subpatternIndex < rawLiterals.length - 1;
-        return raw + (hasSubpattern ? `{{subpattern${subpatternIndex}}}` : '');
-    }
-
-    /**
-     * Provides tagged template literals that create regexes with XRegExp syntax and flags. The
-     * provided pattern is handled as a raw string, so backslashes don't need to be escaped.
-     *
-     * Interpolation of strings and regexes shares the features of `XRegExp.build`. Interpolated
-     * patterns are treated as atomic units when quantified, interpolated strings have their special
-     * characters escaped, a leading `^` and trailing unescaped `$` are stripped from interpolated
-     * regexes if both are present, and any backreferences within an interpolated regex are
-     * rewritten to work within the overall pattern.
-     *
-     * @memberOf XRegExp
-     * @param {String} [flags] Any combination of XRegExp flags.
-     * @returns {Function} Handler for template literals that construct regexes with XRegExp syntax.
-     * @example
-     *
-     * const h12 = /1[0-2]|0?[1-9]/;
-     * const h24 = /2[0-3]|[01][0-9]/;
-     * const hours = XRegExp.tag('x')`${h12} : | ${h24}`;
-     * const minutes = /^[0-5][0-9]$/;
-     * // Note that explicitly naming the 'minutes' group is required for named backreferences
-     * const time = XRegExp.tag('x')`^ ${hours} (?<minutes>${minutes}) $`;
-     * time.test('10:59'); // -> true
-     * XRegExp.exec('10:59', time).minutes; // -> '59'
-     */
-    XRegExp.tag = (flags) => (literals, ...substitutions) => {
-        const subpatterns = substitutions.map(interpolate).reduce(reduceToSubpatternsObject, {});
-        const pattern = literals.raw.map(embedSubpatternAfter).join('');
-        return XRegExp.build(pattern, subpatterns, flags);
-    };
-
-    /**
-     * Builds regexes using named subpatterns, for readability and pattern reuse. Backreferences in
-     * the outer pattern and provided subpatterns are automatically renumbered to work correctly.
-     * Native flags used by provided subpatterns are ignored in favor of the `flags` argument.
-     *
-     * @memberOf XRegExp
-     * @param {String} pattern XRegExp pattern using `{{name}}` for embedded subpatterns. Allows
-     *   `({{name}})` as shorthand for `(?<name>{{name}})`. Patterns cannot be embedded within
-     *   character classes.
-     * @param {Object} subs Lookup object for named subpatterns. Values can be strings or regexes. A
-     *   leading `^` and trailing unescaped `$` are stripped from subpatterns, if both are present.
-     * @param {String} [flags] Any combination of XRegExp flags.
-     * @returns {RegExp} Regex with interpolated subpatterns.
-     * @example
-     *
-     * const time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', {
-     *   hours: XRegExp.build('{{h12}} : | {{h24}}', {
-     *     h12: /1[0-2]|0?[1-9]/,
-     *     h24: /2[0-3]|[01][0-9]/
-     *   }, 'x'),
-     *   minutes: /^[0-5][0-9]$/
-     * });
-     * time.test('10:59'); // -> true
-     * XRegExp.exec('10:59', time).minutes; // -> '59'
-     */
-    XRegExp.build = (pattern, subs, flags) => {
-        flags = flags || '';
-        // Used with `asXRegExp` calls for `pattern` and subpatterns in `subs`, to work around how
-        // some browsers convert `RegExp('\n')` to a regex that contains the literal characters `\`
-        // and `n`. See more details at <https://github.com/slevithan/xregexp/pull/163>.
-        const addFlagX = flags.includes('x');
-        const inlineFlags = /^\(\?([\w$]+)\)/.exec(pattern);
-        // Add flags within a leading mode modifier to the overall pattern's flags
-        if (inlineFlags) {
-            flags = XRegExp._clipDuplicates(flags + inlineFlags[1]);
-        }
-
-        const data = {};
-        for (const p in subs) {
-            if (subs.hasOwnProperty(p)) {
-                // Passing to XRegExp enables extended syntax and ensures independent validity,
-                // lest an unescaped `(`, `)`, `[`, or trailing `\` breaks the `(?:)` wrapper. For
-                // subpatterns provided as native regexes, it dies on octals and adds the property
-                // used to hold extended regex instance data, for simplicity.
-                const sub = asXRegExp(subs[p], addFlagX);
-                data[p] = {
-                    // Deanchoring allows embedding independently useful anchored regexes. If you
-                    // really need to keep your anchors, double them (i.e., `^^...$$`).
-                    pattern: deanchor(sub.source),
-                    names: sub[REGEX_DATA].captureNames || []
-                };
-            }
-        }
-
-        // Passing to XRegExp dies on octals and ensures the outer pattern is independently valid;
-        // helps keep this simple. Named captures will be put back.
-        const patternAsRegex = asXRegExp(pattern, addFlagX);
-
-        // 'Caps' is short for 'captures'
-        let numCaps = 0;
-        let numPriorCaps;
-        let numOuterCaps = 0;
-        const outerCapsMap = [0];
-        const outerCapNames = patternAsRegex[REGEX_DATA].captureNames || [];
-        const output = patternAsRegex.source.replace(parts, ($0, $1, $2, $3, $4) => {
-            const subName = $1 || $2;
-            let capName;
-            let intro;
-            let localCapIndex;
-            // Named subpattern
-            if (subName) {
-                if (!data.hasOwnProperty(subName)) {
-                    throw new ReferenceError(`Undefined property ${$0}`);
-                }
-                // Named subpattern was wrapped in a capturing group
-                if ($1) {
-                    capName = outerCapNames[numOuterCaps];
-                    outerCapsMap[++numOuterCaps] = ++numCaps;
-                    // If it's a named group, preserve the name. Otherwise, use the subpattern name
-                    // as the capture name
-                    intro = `(?<${capName || subName}>`;
-                } else {
-                    intro = '(?:';
-                }
-                numPriorCaps = numCaps;
-                const rewrittenSubpattern = data[subName].pattern.replace(subParts, (match, paren, backref) => {
-                    // Capturing group
-                    if (paren) {
-                        capName = data[subName].names[numCaps - numPriorCaps];
-                        ++numCaps;
-                        // If the current capture has a name, preserve the name
-                        if (capName) {
-                            return `(?<${capName}>`;
-                        }
-                    // Backreference
-                    } else if (backref) {
-                        localCapIndex = +backref - 1;
-                        // Rewrite the backreference
-                        return data[subName].names[localCapIndex] ?
-                            // Need to preserve the backreference name in case using flag `n`
-                            `\\k<${data[subName].names[localCapIndex]}>` :
-                            `\\${+backref + numPriorCaps}`;
-                    }
-                    return match;
-                });
-                return `${intro}${rewrittenSubpattern})`;
-            }
-            // Capturing group
-            if ($3) {
-                capName = outerCapNames[numOuterCaps];
-                outerCapsMap[++numOuterCaps] = ++numCaps;
-                // If the current capture has a name, preserve the name
-                if (capName) {
-                    return `(?<${capName}>`;
-                }
-            // Backreference
-            } else if ($4) {
-                localCapIndex = +$4 - 1;
-                // Rewrite the backreference
-                return outerCapNames[localCapIndex] ?
-                    // Need to preserve the backreference name in case using flag `n`
-                    `\\k<${outerCapNames[localCapIndex]}>` :
-                    `\\${outerCapsMap[+$4]}`;
-            }
-            return $0;
-        });
-
-        return XRegExp(output, flags);
-    };
-};
diff --git a/node_modules/xregexp/src/addons/matchrecursive.js b/node_modules/xregexp/src/addons/matchrecursive.js
deleted file mode 100644
index 8fe927f..0000000
--- a/node_modules/xregexp/src/addons/matchrecursive.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/*!
- * XRegExp.matchRecursive 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2009-present MIT License
- */
-
-export default (XRegExp) => {
-
-    /**
-     * Returns a match detail object composed of the provided values.
-     *
-     * @private
-     */
-    function row(name, value, start, end) {
-        return {
-            name,
-            value,
-            start,
-            end
-        };
-    }
-
-    /**
-     * Returns an array of match strings between outermost left and right delimiters, or an array of
-     * objects with detailed match parts and position data. An error is thrown if delimiters are
-     * unbalanced within the data.
-     *
-     * @memberOf XRegExp
-     * @param {String} str String to search.
-     * @param {String} left Left delimiter as an XRegExp pattern.
-     * @param {String} right Right delimiter as an XRegExp pattern.
-     * @param {String} [flags] Any native or XRegExp flags, used for the left and right delimiters.
-     * @param {Object} [options] Lets you specify `valueNames` and `escapeChar` options.
-     * @returns {Array} Array of matches, or an empty array.
-     * @example
-     *
-     * // Basic usage
-     * let str = '(t((e))s)t()(ing)';
-     * XRegExp.matchRecursive(str, '\\(', '\\)', 'g');
-     * // -> ['t((e))s', '', 'ing']
-     *
-     * // Extended information mode with valueNames
-     * str = 'Here is <div> <div>an</div></div> example';
-     * XRegExp.matchRecursive(str, '<div\\s*>', '</div>', 'gi', {
-     *   valueNames: ['between', 'left', 'match', 'right']
-     * });
-     * // -> [
-     * // {name: 'between', value: 'Here is ',       start: 0,  end: 8},
-     * // {name: 'left',    value: '<div>',          start: 8,  end: 13},
-     * // {name: 'match',   value: ' <div>an</div>', start: 13, end: 27},
-     * // {name: 'right',   value: '</div>',         start: 27, end: 33},
-     * // {name: 'between', value: ' example',       start: 33, end: 41}
-     * // ]
-     *
-     * // Omitting unneeded parts with null valueNames, and using escapeChar
-     * str = '...{1}.\\{{function(x,y){return {y:x}}}';
-     * XRegExp.matchRecursive(str, '{', '}', 'g', {
-     *   valueNames: ['literal', null, 'value', null],
-     *   escapeChar: '\\'
-     * });
-     * // -> [
-     * // {name: 'literal', value: '...',  start: 0, end: 3},
-     * // {name: 'value',   value: '1',    start: 4, end: 5},
-     * // {name: 'literal', value: '.\\{', start: 6, end: 9},
-     * // {name: 'value',   value: 'function(x,y){return {y:x}}', start: 10, end: 37}
-     * // ]
-     *
-     * // Sticky mode via flag y
-     * str = '<1><<<2>>><3>4<5>';
-     * XRegExp.matchRecursive(str, '<', '>', 'gy');
-     * // -> ['1', '<<2>>', '3']
-     */
-    XRegExp.matchRecursive = (str, left, right, flags, options) => {
-        flags = flags || '';
-        options = options || {};
-        const global = flags.includes('g');
-        const sticky = flags.includes('y');
-        // Flag `y` is controlled internally
-        const basicFlags = flags.replace(/y/g, '');
-        let {escapeChar} = options;
-        const vN = options.valueNames;
-        const output = [];
-        let openTokens = 0;
-        let delimStart = 0;
-        let delimEnd = 0;
-        let lastOuterEnd = 0;
-        let outerStart;
-        let innerStart;
-        let leftMatch;
-        let rightMatch;
-        let esc;
-        left = XRegExp(left, basicFlags);
-        right = XRegExp(right, basicFlags);
-
-        if (escapeChar) {
-            if (escapeChar.length > 1) {
-                throw new Error('Cannot use more than one escape character');
-            }
-            escapeChar = XRegExp.escape(escapeChar);
-            // Example of concatenated `esc` regex:
-            // `escapeChar`: '%'
-            // `left`: '<'
-            // `right`: '>'
-            // Regex is: /(?:%[\S\s]|(?:(?!<|>)[^%])+)+/
-            esc = new RegExp(
-                `(?:${escapeChar}[\\S\\s]|(?:(?!${
-                    // Using `XRegExp.union` safely rewrites backreferences in `left` and `right`.
-                    // Intentionally not passing `basicFlags` to `XRegExp.union` since any syntax
-                    // transformation resulting from those flags was already applied to `left` and
-                    // `right` when they were passed through the XRegExp constructor above.
-                    XRegExp.union([left, right], '', {conjunction: 'or'}).source
-                })[^${escapeChar}])+)+`,
-                // Flags `gy` not needed here
-                flags.replace(/[^imu]+/g, '')
-            );
-        }
-
-        while (true) {
-            // If using an escape character, advance to the delimiter's next starting position,
-            // skipping any escaped characters in between
-            if (escapeChar) {
-                delimEnd += (XRegExp.exec(str, esc, delimEnd, 'sticky') || [''])[0].length;
-            }
-            leftMatch = XRegExp.exec(str, left, delimEnd);
-            rightMatch = XRegExp.exec(str, right, delimEnd);
-            // Keep the leftmost match only
-            if (leftMatch && rightMatch) {
-                if (leftMatch.index <= rightMatch.index) {
-                    rightMatch = null;
-                } else {
-                    leftMatch = null;
-                }
-            }
-            // Paths (LM: leftMatch, RM: rightMatch, OT: openTokens):
-            // LM | RM | OT | Result
-            // 1  | 0  | 1  | loop
-            // 1  | 0  | 0  | loop
-            // 0  | 1  | 1  | loop
-            // 0  | 1  | 0  | throw
-            // 0  | 0  | 1  | throw
-            // 0  | 0  | 0  | break
-            // The paths above don't include the sticky mode special case. The loop ends after the
-            // first completed match if not `global`.
-            if (leftMatch || rightMatch) {
-                delimStart = (leftMatch || rightMatch).index;
-                delimEnd = delimStart + (leftMatch || rightMatch)[0].length;
-            } else if (!openTokens) {
-                break;
-            }
-            if (sticky && !openTokens && delimStart > lastOuterEnd) {
-                break;
-            }
-            if (leftMatch) {
-                if (!openTokens) {
-                    outerStart = delimStart;
-                    innerStart = delimEnd;
-                }
-                ++openTokens;
-            } else if (rightMatch && openTokens) {
-                if (!--openTokens) {
-                    if (vN) {
-                        if (vN[0] && outerStart > lastOuterEnd) {
-                            output.push(row(vN[0], str.slice(lastOuterEnd, outerStart), lastOuterEnd, outerStart));
-                        }
-                        if (vN[1]) {
-                            output.push(row(vN[1], str.slice(outerStart, innerStart), outerStart, innerStart));
-                        }
-                        if (vN[2]) {
-                            output.push(row(vN[2], str.slice(innerStart, delimStart), innerStart, delimStart));
-                        }
-                        if (vN[3]) {
-                            output.push(row(vN[3], str.slice(delimStart, delimEnd), delimStart, delimEnd));
-                        }
-                    } else {
-                        output.push(str.slice(innerStart, delimStart));
-                    }
-                    lastOuterEnd = delimEnd;
-                    if (!global) {
-                        break;
-                    }
-                }
-            } else {
-                throw new Error('Unbalanced delimiter found in string');
-            }
-            // If the delimiter matched an empty string, avoid an infinite loop
-            if (delimStart === delimEnd) {
-                ++delimEnd;
-            }
-        }
-
-        if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd) {
-            output.push(row(vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length));
-        }
-
-        return output;
-    };
-};
diff --git a/node_modules/xregexp/src/addons/unicode-base.js b/node_modules/xregexp/src/addons/unicode-base.js
deleted file mode 100644
index 19784d7..0000000
--- a/node_modules/xregexp/src/addons/unicode-base.js
+++ /dev/null
@@ -1,256 +0,0 @@
-/*!
- * XRegExp Unicode Base 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2008-present MIT License
- */
-
-export default (XRegExp) => {
-
-    /**
-     * Adds base support for Unicode matching:
-     * - Adds syntax `\p{..}` for matching Unicode tokens. Tokens can be inverted using `\P{..}` or
-     *   `\p{^..}`. Token names ignore case, spaces, hyphens, and underscores. You can omit the
-     *   braces for token names that are a single letter (e.g. `\pL` or `PL`).
-     * - Adds flag A (astral), which enables 21-bit Unicode support.
-     * - Adds the `XRegExp.addUnicodeData` method used by other addons to provide character data.
-     *
-     * Unicode Base relies on externally provided Unicode character data. Official addons are
-     * available to provide data for Unicode categories, scripts, blocks, and properties.
-     *
-     * @requires XRegExp
-     */
-
-    // ==--------------------------==
-    // Private stuff
-    // ==--------------------------==
-
-    // Storage for Unicode data
-    const unicode = {};
-
-    // Reuse utils
-    const dec = XRegExp._dec;
-    const hex = XRegExp._hex;
-    const pad4 = XRegExp._pad4;
-
-    // Generates a token lookup name: lowercase, with hyphens, spaces, and underscores removed
-    function normalize(name) {
-        return name.replace(/[- _]+/g, '').toLowerCase();
-    }
-
-    // Gets the decimal code of a literal code unit, \xHH, \uHHHH, or a backslash-escaped literal
-    function charCode(chr) {
-        const esc = /^\\[xu](.+)/.exec(chr);
-        return esc ?
-            dec(esc[1]) :
-            chr.charCodeAt(chr[0] === '\\' ? 1 : 0);
-    }
-
-    // Inverts a list of ordered BMP characters and ranges
-    function invertBmp(range) {
-        let output = '';
-        let lastEnd = -1;
-
-        XRegExp.forEach(
-            range,
-            /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,
-            (m) => {
-                const start = charCode(m[1]);
-                if (start > (lastEnd + 1)) {
-                    output += `\\u${pad4(hex(lastEnd + 1))}`;
-                    if (start > (lastEnd + 2)) {
-                        output += `-\\u${pad4(hex(start - 1))}`;
-                    }
-                }
-                lastEnd = charCode(m[2] || m[1]);
-            }
-        );
-
-        if (lastEnd < 0xFFFF) {
-            output += `\\u${pad4(hex(lastEnd + 1))}`;
-            if (lastEnd < 0xFFFE) {
-                output += '-\\uFFFF';
-            }
-        }
-
-        return output;
-    }
-
-    // Generates an inverted BMP range on first use
-    function cacheInvertedBmp(slug) {
-        const prop = 'b!';
-        return (
-            unicode[slug][prop] ||
-            (unicode[slug][prop] = invertBmp(unicode[slug].bmp))
-        );
-    }
-
-    // Combines and optionally negates BMP and astral data
-    function buildAstral(slug, isNegated) {
-        const item = unicode[slug];
-        let combined = '';
-
-        if (item.bmp && !item.isBmpLast) {
-            combined = `[${item.bmp}]${item.astral ? '|' : ''}`;
-        }
-        if (item.astral) {
-            combined += item.astral;
-        }
-        if (item.isBmpLast && item.bmp) {
-            combined += `${item.astral ? '|' : ''}[${item.bmp}]`;
-        }
-
-        // Astral Unicode tokens always match a code point, never a code unit
-        return isNegated ?
-            `(?:(?!${combined})(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))` :
-            `(?:${combined})`;
-    }
-
-    // Builds a complete astral pattern on first use
-    function cacheAstral(slug, isNegated) {
-        const prop = isNegated ? 'a!' : 'a=';
-        return (
-            unicode[slug][prop] ||
-            (unicode[slug][prop] = buildAstral(slug, isNegated))
-        );
-    }
-
-    // ==--------------------------==
-    // Core functionality
-    // ==--------------------------==
-
-    /*
-     * Add astral mode (flag A) and Unicode token syntax: `\p{..}`, `\P{..}`, `\p{^..}`, `\pC`.
-     */
-    XRegExp.addToken(
-        // Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}`
-        /\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,
-        (match, scope, flags) => {
-            const ERR_DOUBLE_NEG = 'Invalid double negation ';
-            const ERR_UNKNOWN_NAME = 'Unknown Unicode token ';
-            const ERR_UNKNOWN_REF = 'Unicode token missing data ';
-            const ERR_ASTRAL_ONLY = 'Astral mode required for Unicode token ';
-            const ERR_ASTRAL_IN_CLASS = 'Astral mode does not support Unicode tokens within character classes';
-            // Negated via \P{..} or \p{^..}
-            let isNegated = match[1] === 'P' || !!match[2];
-            // Switch from BMP (0-FFFF) to astral (0-10FFFF) mode via flag A
-            const isAstralMode = flags.includes('A');
-            // Token lookup name. Check `[4]` first to avoid passing `undefined` via `\p{}`
-            let slug = normalize(match[4] || match[3]);
-            // Token data object
-            let item = unicode[slug];
-
-            if (match[1] === 'P' && match[2]) {
-                throw new SyntaxError(ERR_DOUBLE_NEG + match[0]);
-            }
-            if (!unicode.hasOwnProperty(slug)) {
-                throw new SyntaxError(ERR_UNKNOWN_NAME + match[0]);
-            }
-
-            // Switch to the negated form of the referenced Unicode token
-            if (item.inverseOf) {
-                slug = normalize(item.inverseOf);
-                if (!unicode.hasOwnProperty(slug)) {
-                    throw new ReferenceError(`${ERR_UNKNOWN_REF + match[0]} -> ${item.inverseOf}`);
-                }
-                item = unicode[slug];
-                isNegated = !isNegated;
-            }
-
-            if (!(item.bmp || isAstralMode)) {
-                throw new SyntaxError(ERR_ASTRAL_ONLY + match[0]);
-            }
-            if (isAstralMode) {
-                if (scope === 'class') {
-                    throw new SyntaxError(ERR_ASTRAL_IN_CLASS);
-                }
-
-                return cacheAstral(slug, isNegated);
-            }
-
-            return scope === 'class' ?
-                (isNegated ? cacheInvertedBmp(slug) : item.bmp) :
-                `${(isNegated ? '[^' : '[') + item.bmp}]`;
-        },
-        {
-            scope: 'all',
-            optionalFlags: 'A',
-            leadChar: '\\'
-        }
-    );
-
-    /**
-     * Adds to the list of Unicode tokens that XRegExp regexes can match via `\p` or `\P`.
-     *
-     * @memberOf XRegExp
-     * @param {Array} data Objects with named character ranges. Each object may have properties
-     *   `name`, `alias`, `isBmpLast`, `inverseOf`, `bmp`, and `astral`. All but `name` are
-     *   optional, although one of `bmp` or `astral` is required (unless `inverseOf` is set). If
-     *   `astral` is absent, the `bmp` data is used for BMP and astral modes. If `bmp` is absent,
-     *   the name errors in BMP mode but works in astral mode. If both `bmp` and `astral` are
-     *   provided, the `bmp` data only is used in BMP mode, and the combination of `bmp` and
-     *   `astral` data is used in astral mode. `isBmpLast` is needed when a token matches orphan
-     *   high surrogates *and* uses surrogate pairs to match astral code points. The `bmp` and
-     *   `astral` data should be a combination of literal characters and `\xHH` or `\uHHHH` escape
-     *   sequences, with hyphens to create ranges. Any regex metacharacters in the data should be
-     *   escaped, apart from range-creating hyphens. The `astral` data can additionally use
-     *   character classes and alternation, and should use surrogate pairs to represent astral code
-     *   points. `inverseOf` can be used to avoid duplicating character data if a Unicode token is
-     *   defined as the exact inverse of another token.
-     * @example
-     *
-     * // Basic use
-     * XRegExp.addUnicodeData([{
-     *   name: 'XDigit',
-     *   alias: 'Hexadecimal',
-     *   bmp: '0-9A-Fa-f'
-     * }]);
-     * XRegExp('\\p{XDigit}:\\p{Hexadecimal}+').test('0:3D'); // -> true
-     */
-    XRegExp.addUnicodeData = (data) => {
-        const ERR_NO_NAME = 'Unicode token requires name';
-        const ERR_NO_DATA = 'Unicode token has no character data ';
-
-        for (const item of data) {
-            if (!item.name) {
-                throw new Error(ERR_NO_NAME);
-            }
-            if (!(item.inverseOf || item.bmp || item.astral)) {
-                throw new Error(ERR_NO_DATA + item.name);
-            }
-            unicode[normalize(item.name)] = item;
-            if (item.alias) {
-                unicode[normalize(item.alias)] = item;
-            }
-        }
-
-        // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and
-        // flags might now produce different results
-        XRegExp.cache.flush('patterns');
-    };
-
-    /**
-     * @ignore
-     *
-     * Return a reference to the internal Unicode definition structure for the given Unicode
-     * Property if the given name is a legal Unicode Property for use in XRegExp `\p` or `\P` regex
-     * constructs.
-     *
-     * @memberOf XRegExp
-     * @param {String} name Name by which the Unicode Property may be recognized (case-insensitive),
-     *   e.g. `'N'` or `'Number'`. The given name is matched against all registered Unicode
-     *   Properties and Property Aliases.
-     * @returns {Object} Reference to definition structure when the name matches a Unicode Property.
-     *
-     * @note
-     * For more info on Unicode Properties, see also http://unicode.org/reports/tr18/#Categories.
-     *
-     * @note
-     * This method is *not* part of the officially documented API and may change or be removed in
-     * the future. It is meant for userland code that wishes to reuse the (large) internal Unicode
-     * structures set up by XRegExp.
-     */
-    XRegExp._getUnicodeProperty = (name) => {
-        const slug = normalize(name);
-        return unicode[slug];
-    };
-};
diff --git a/node_modules/xregexp/src/addons/unicode-blocks.js b/node_modules/xregexp/src/addons/unicode-blocks.js
deleted file mode 100644
index 61f11f9..0000000
--- a/node_modules/xregexp/src/addons/unicode-blocks.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * XRegExp Unicode Blocks 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-
-import blocks from '../../tools/output/blocks';
-
-export default (XRegExp) => {
-
-    /**
-     * Adds support for all Unicode blocks. Block names use the prefix 'In'. E.g.,
-     * `\p{InBasicLatin}`. Token names are case insensitive, and any spaces, hyphens, and
-     * underscores are ignored.
-     *
-     * Uses Unicode 12.1.0.
-     *
-     * @requires XRegExp, Unicode Base
-     */
-
-    if (!XRegExp.addUnicodeData) {
-        throw new ReferenceError('Unicode Base must be loaded before Unicode Blocks');
-    }
-
-    XRegExp.addUnicodeData(blocks);
-};
diff --git a/node_modules/xregexp/src/addons/unicode-categories.js b/node_modules/xregexp/src/addons/unicode-categories.js
deleted file mode 100644
index bdf529b..0000000
--- a/node_modules/xregexp/src/addons/unicode-categories.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * XRegExp Unicode Categories 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-
-import categories from '../../tools/output/categories';
-
-export default (XRegExp) => {
-
-    /**
-     * Adds support for Unicode's general categories. E.g., `\p{Lu}` or `\p{Uppercase Letter}`. See
-     * category descriptions in UAX #44 <http://unicode.org/reports/tr44/#GC_Values_Table>. Token
-     * names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-     *
-     * Uses Unicode 12.1.0.
-     *
-     * @requires XRegExp, Unicode Base
-     */
-
-    if (!XRegExp.addUnicodeData) {
-        throw new ReferenceError('Unicode Base must be loaded before Unicode Categories');
-    }
-
-    XRegExp.addUnicodeData(categories);
-};
diff --git a/node_modules/xregexp/src/addons/unicode-properties.js b/node_modules/xregexp/src/addons/unicode-properties.js
deleted file mode 100644
index c44810a..0000000
--- a/node_modules/xregexp/src/addons/unicode-properties.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*!
- * XRegExp Unicode Properties 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-
-import properties from '../../tools/output/properties';
-
-export default (XRegExp) => {
-
-    /**
-     * Adds properties to meet the UTS #18 Level 1 RL1.2 requirements for Unicode regex support. See
-     * <http://unicode.org/reports/tr18/#RL1.2>. Following are definitions of these properties from
-     * UAX #44 <http://unicode.org/reports/tr44/>:
-     *
-     * - Alphabetic
-     *   Characters with the Alphabetic property. Generated from: Lowercase + Uppercase + Lt + Lm +
-     *   Lo + Nl + Other_Alphabetic.
-     *
-     * - Default_Ignorable_Code_Point
-     *   For programmatic determination of default ignorable code points. New characters that should
-     *   be ignored in rendering (unless explicitly supported) will be assigned in these ranges,
-     *   permitting programs to correctly handle the default rendering of such characters when not
-     *   otherwise supported.
-     *
-     * - Lowercase
-     *   Characters with the Lowercase property. Generated from: Ll + Other_Lowercase.
-     *
-     * - Noncharacter_Code_Point
-     *   Code points permanently reserved for internal use.
-     *
-     * - Uppercase
-     *   Characters with the Uppercase property. Generated from: Lu + Other_Uppercase.
-     *
-     * - White_Space
-     *   Spaces, separator characters and other control characters which should be treated by
-     *   programming languages as "white space" for the purpose of parsing elements.
-     *
-     * The properties ASCII, Any, and Assigned are also included but are not defined in UAX #44. UTS
-     * #18 RL1.2 additionally requires support for Unicode scripts and general categories. These are
-     * included in XRegExp's Unicode Categories and Unicode Scripts addons.
-     *
-     * Token names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-     *
-     * Uses Unicode 12.1.0.
-     *
-     * @requires XRegExp, Unicode Base
-     */
-
-    if (!XRegExp.addUnicodeData) {
-        throw new ReferenceError('Unicode Base must be loaded before Unicode Properties');
-    }
-
-    const unicodeData = properties;
-
-    // Add non-generated data
-    unicodeData.push({
-        name: 'Assigned',
-        // Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode
-        // Categories addon is required to use this property
-        inverseOf: 'Cn'
-    });
-
-    XRegExp.addUnicodeData(unicodeData);
-};
diff --git a/node_modules/xregexp/src/addons/unicode-scripts.js b/node_modules/xregexp/src/addons/unicode-scripts.js
deleted file mode 100644
index 94806b2..0000000
--- a/node_modules/xregexp/src/addons/unicode-scripts.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*!
- * XRegExp Unicode Scripts 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-
-import scripts from '../../tools/output/scripts';
-
-export default (XRegExp) => {
-
-    /**
-     * Adds support for all Unicode scripts. E.g., `\p{Latin}`. Token names are case insensitive,
-     * and any spaces, hyphens, and underscores are ignored.
-     *
-     * Uses Unicode 12.1.0.
-     *
-     * @requires XRegExp, Unicode Base
-     */
-
-    if (!XRegExp.addUnicodeData) {
-        throw new ReferenceError('Unicode Base must be loaded before Unicode Scripts');
-    }
-
-    XRegExp.addUnicodeData(scripts);
-};
diff --git a/node_modules/xregexp/src/index.js b/node_modules/xregexp/src/index.js
deleted file mode 100644
index 8fad874..0000000
--- a/node_modules/xregexp/src/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import XRegExp from './xregexp';
-
-import build from './addons/build';
-import matchRecursive from './addons/matchrecursive';
-import unicodeBase from './addons/unicode-base';
-import unicodeBlocks from './addons/unicode-blocks';
-import unicodeCategories from './addons/unicode-categories';
-import unicodeProperties from './addons/unicode-properties';
-import unicodeScripts from './addons/unicode-scripts';
-
-build(XRegExp);
-matchRecursive(XRegExp);
-unicodeBase(XRegExp);
-unicodeBlocks(XRegExp);
-unicodeCategories(XRegExp);
-unicodeProperties(XRegExp);
-unicodeScripts(XRegExp);
-
-export default XRegExp;
diff --git a/node_modules/xregexp/src/xregexp.js b/node_modules/xregexp/src/xregexp.js
deleted file mode 100644
index 4fec6c0..0000000
--- a/node_modules/xregexp/src/xregexp.js
+++ /dev/null
@@ -1,1881 +0,0 @@
-/*!
- * XRegExp 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2007-present MIT License
- */
-
-/**
- * XRegExp provides augmented, extensible regular expressions. You get additional regex syntax and
- * flags, beyond what browsers support natively. XRegExp is also a regex utility belt with tools to
- * make your client-side grepping simpler and more powerful, while freeing you from related
- * cross-browser inconsistencies.
- */
-
-// ==--------------------------==
-// Private stuff
-// ==--------------------------==
-
-// Property name used for extended regex instance data
-const REGEX_DATA = 'xregexp';
-// Optional features that can be installed and uninstalled
-const features = {
-    astral: false,
-    namespacing: false
-};
-// Native methods to use and restore ('native' is an ES3 reserved keyword)
-const nativ = {
-    exec: RegExp.prototype.exec,
-    test: RegExp.prototype.test,
-    match: String.prototype.match,
-    replace: String.prototype.replace,
-    split: String.prototype.split
-};
-// Storage for fixed/extended native methods
-const fixed = {};
-// Storage for regexes cached by `XRegExp.cache`
-let regexCache = {};
-// Storage for pattern details cached by the `XRegExp` constructor
-let patternCache = {};
-// Storage for regex syntax tokens added internally or by `XRegExp.addToken`
-const tokens = [];
-// Token scopes
-const defaultScope = 'default';
-const classScope = 'class';
-// Regexes that match native regex syntax, including octals
-const nativeTokens = {
-    // Any native multicharacter token in default scope, or any single character
-    'default': /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,
-    // Any native multicharacter token in character class scope, or any single character
-    'class': /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/
-};
-// Any backreference or dollar-prefixed character in replacement strings
-const replacementToken = /\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g;
-// Check for correct `exec` handling of nonparticipating capturing groups
-const correctExecNpcg = nativ.exec.call(/()??/, '')[1] === undefined;
-// Check for ES6 `flags` prop support
-const hasFlagsProp = /x/.flags !== undefined;
-// Shortcut to `Object.prototype.toString`
-const {toString} = {};
-
-function hasNativeFlag(flag) {
-    // Can't check based on the presence of properties/getters since browsers might support such
-    // properties even when they don't support the corresponding flag in regex construction (tested
-    // in Chrome 48, where `'unicode' in /x/` is true but trying to construct a regex with flag `u`
-    // throws an error)
-    let isSupported = true;
-    try {
-        // Can't use regex literals for testing even in a `try` because regex literals with
-        // unsupported flags cause a compilation error in IE
-        new RegExp('', flag);
-    } catch (exception) {
-        isSupported = false;
-    }
-    return isSupported;
-}
-// Check for ES6 `u` flag support
-const hasNativeU = hasNativeFlag('u');
-// Check for ES6 `y` flag support
-const hasNativeY = hasNativeFlag('y');
-// Tracker for known flags, including addon flags
-const registeredFlags = {
-    g: true,
-    i: true,
-    m: true,
-    u: hasNativeU,
-    y: hasNativeY
-};
-
-/**
- * Attaches extended data and `XRegExp.prototype` properties to a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to augment.
- * @param {Array} captureNames Array with capture names, or `null`.
- * @param {String} xSource XRegExp pattern used to generate `regex`, or `null` if N/A.
- * @param {String} xFlags XRegExp flags used to generate `regex`, or `null` if N/A.
- * @param {Boolean} [isInternalOnly=false] Whether the regex will be used only for internal
- *   operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *   skipping some operations like attaching `XRegExp.prototype` properties.
- * @returns {RegExp} Augmented regex.
- */
-function augment(regex, captureNames, xSource, xFlags, isInternalOnly) {
-    regex[REGEX_DATA] = {
-        captureNames
-    };
-
-    if (isInternalOnly) {
-        return regex;
-    }
-
-    // Can't auto-inherit these since the XRegExp constructor returns a nonprimitive value
-    if (regex.__proto__) {
-        regex.__proto__ = XRegExp.prototype;
-    } else {
-        for (const p in XRegExp.prototype) {
-            // An `XRegExp.prototype.hasOwnProperty(p)` check wouldn't be worth it here, since this
-            // is performance sensitive, and enumerable `Object.prototype` or `RegExp.prototype`
-            // extensions exist on `regex.prototype` anyway
-            regex[p] = XRegExp.prototype[p];
-        }
-    }
-
-    regex[REGEX_DATA].source = xSource;
-    // Emulate the ES6 `flags` prop by ensuring flags are in alphabetical order
-    regex[REGEX_DATA].flags = xFlags ? xFlags.split('').sort().join('') : xFlags;
-
-    return regex;
-}
-
-/**
- * Removes any duplicate characters from the provided string.
- *
- * @private
- * @param {String} str String to remove duplicate characters from.
- * @returns {String} String with any duplicate characters removed.
- */
-function clipDuplicates(str) {
-    return nativ.replace.call(str, /([\s\S])(?=[\s\S]*\1)/g, '');
-}
-
-/**
- * Copies a regex object while preserving extended data and augmenting with `XRegExp.prototype`
- * properties. The copy has a fresh `lastIndex` property (set to zero). Allows adding and removing
- * flags g and y while copying the regex.
- *
- * @private
- * @param {RegExp} regex Regex to copy.
- * @param {Object} [options] Options object with optional properties:
- *   - `addG` {Boolean} Add flag g while copying the regex.
- *   - `addY` {Boolean} Add flag y while copying the regex.
- *   - `removeG` {Boolean} Remove flag g while copying the regex.
- *   - `removeY` {Boolean} Remove flag y while copying the regex.
- *   - `isInternalOnly` {Boolean} Whether the copied regex will be used only for internal
- *     operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *     skipping some operations like attaching `XRegExp.prototype` properties.
- *   - `source` {String} Overrides `<regex>.source`, for special cases.
- * @returns {RegExp} Copy of the provided regex, possibly with modified flags.
- */
-function copyRegex(regex, options) {
-    if (!XRegExp.isRegExp(regex)) {
-        throw new TypeError('Type RegExp expected');
-    }
-
-    const xData = regex[REGEX_DATA] || {};
-    let flags = getNativeFlags(regex);
-    let flagsToAdd = '';
-    let flagsToRemove = '';
-    let xregexpSource = null;
-    let xregexpFlags = null;
-
-    options = options || {};
-
-    if (options.removeG) {flagsToRemove += 'g';}
-    if (options.removeY) {flagsToRemove += 'y';}
-    if (flagsToRemove) {
-        flags = nativ.replace.call(flags, new RegExp(`[${flagsToRemove}]+`, 'g'), '');
-    }
-
-    if (options.addG) {flagsToAdd += 'g';}
-    if (options.addY) {flagsToAdd += 'y';}
-    if (flagsToAdd) {
-        flags = clipDuplicates(flags + flagsToAdd);
-    }
-
-    if (!options.isInternalOnly) {
-        if (xData.source !== undefined) {
-            xregexpSource = xData.source;
-        }
-        // null or undefined; don't want to add to `flags` if the previous value was null, since
-        // that indicates we're not tracking original precompilation flags
-        if (xData.flags != null) {
-            // Flags are only added for non-internal regexes by `XRegExp.globalize`. Flags are never
-            // removed for non-internal regexes, so don't need to handle it
-            xregexpFlags = flagsToAdd ? clipDuplicates(xData.flags + flagsToAdd) : xData.flags;
-        }
-    }
-
-    // Augment with `XRegExp.prototype` properties, but use the native `RegExp` constructor to avoid
-    // searching for special tokens. That would be wrong for regexes constructed by `RegExp`, and
-    // unnecessary for regexes constructed by `XRegExp` because the regex has already undergone the
-    // translation to native regex syntax
-    regex = augment(
-        new RegExp(options.source || regex.source, flags),
-        hasNamedCapture(regex) ? xData.captureNames.slice(0) : null,
-        xregexpSource,
-        xregexpFlags,
-        options.isInternalOnly
-    );
-
-    return regex;
-}
-
-/**
- * Converts hexadecimal to decimal.
- *
- * @private
- * @param {String} hex
- * @returns {Number}
- */
-function dec(hex) {
-    return parseInt(hex, 16);
-}
-
-/**
- * Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an
- * inline comment or whitespace with flag x. This is used directly as a token handler function
- * passed to `XRegExp.addToken`.
- *
- * @private
- * @param {String} match Match arg of `XRegExp.addToken` handler
- * @param {String} scope Scope arg of `XRegExp.addToken` handler
- * @param {String} flags Flags arg of `XRegExp.addToken` handler
- * @returns {String} Either '' or '(?:)', depending on which is needed in the context of the match.
- */
-function getContextualTokenSeparator(match, scope, flags) {
-    if (
-        // No need to separate tokens if at the beginning or end of a group
-        match.input[match.index - 1] === '(' ||
-        match.input[match.index + match[0].length] === ')' ||
-
-        // No need to separate tokens if before or after a `|`
-        match.input[match.index - 1] === '|' ||
-        match.input[match.index + match[0].length] === '|' ||
-
-        // No need to separate tokens if at the beginning or end of the pattern
-        match.index < 1 ||
-        match.index + match[0].length >= match.input.length ||
-
-        // No need to separate tokens if at the beginning of a noncapturing group or lookahead.
-        // The way this is written relies on:
-        // - The search regex matching only 3-char strings.
-        // - Although `substr` gives chars from the end of the string if given a negative index,
-        //   the resulting substring will be too short to match. Ex: `'abcd'.substr(-1, 3) === 'd'`
-        nativ.test.call(/^\(\?[:=!]/, match.input.substr(match.index - 3, 3)) ||
-
-        // Avoid separating tokens when the following token is a quantifier
-        isQuantifierNext(match.input, match.index + match[0].length, flags)
-    ) {
-        return '';
-    }
-    // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`.
-    // This also ensures all tokens remain as discrete atoms, e.g. it avoids converting the syntax
-    // error `(? :` into `(?:`.
-    return '(?:)';
-}
-
-/**
- * Returns native `RegExp` flags used by a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {String} Native flags in use.
- */
-function getNativeFlags(regex) {
-    return hasFlagsProp ?
-        regex.flags :
-        // Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation
-        // with an empty string) allows this to continue working predictably when
-        // `XRegExp.proptotype.toString` is overridden
-        nativ.exec.call(/\/([a-z]*)$/i, RegExp.prototype.toString.call(regex))[1];
-}
-
-/**
- * Determines whether a regex has extended instance data used to track capture names.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {Boolean} Whether the regex uses named capture.
- */
-function hasNamedCapture(regex) {
-    return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames);
-}
-
-/**
- * Converts decimal to hexadecimal.
- *
- * @private
- * @param {Number|String} dec
- * @returns {String}
- */
-function hex(dec) {
-    return parseInt(dec, 10).toString(16);
-}
-
-/**
- * Checks whether the next nonignorable token after the specified position is a quantifier.
- *
- * @private
- * @param {String} pattern Pattern to search within.
- * @param {Number} pos Index in `pattern` to search at.
- * @param {String} flags Flags used by the pattern.
- * @returns {Boolean} Whether the next nonignorable token is a quantifier.
- */
-function isQuantifierNext(pattern, pos, flags) {
-    const inlineCommentPattern = '\\(\\?#[^)]*\\)';
-    const lineCommentPattern = '#[^#\\n]*';
-    const quantifierPattern = '[?*+]|{\\d+(?:,\\d*)?}';
-    return nativ.test.call(
-        flags.includes('x') ?
-            // Ignore any leading whitespace, line comments, and inline comments
-            new RegExp(`^(?:\\s|${lineCommentPattern}|${inlineCommentPattern})*(?:${quantifierPattern})`) :
-            // Ignore any leading inline comments
-            new RegExp(`^(?:${inlineCommentPattern})*(?:${quantifierPattern})`),
-        pattern.slice(pos)
-    );
-}
-
-/**
- * Determines whether a value is of the specified type, by resolving its internal [[Class]].
- *
- * @private
- * @param {*} value Object to check.
- * @param {String} type Type to check for, in TitleCase.
- * @returns {Boolean} Whether the object matches the type.
- */
-function isType(value, type) {
-    return toString.call(value) === `[object ${type}]`;
-}
-
-/**
- * Adds leading zeros if shorter than four characters. Used for fixed-length hexadecimal values.
- *
- * @private
- * @param {String} str
- * @returns {String}
- */
-function pad4(str) {
-    while (str.length < 4) {
-        str = `0${str}`;
-    }
-    return str;
-}
-
-/**
- * Checks for flag-related errors, and strips/applies flags in a leading mode modifier. Offloads
- * the flag preparation logic from the `XRegExp` constructor.
- *
- * @private
- * @param {String} pattern Regex pattern, possibly with a leading mode modifier.
- * @param {String} flags Any combination of flags.
- * @returns {Object} Object with properties `pattern` and `flags`.
- */
-function prepareFlags(pattern, flags) {
-    // Recent browsers throw on duplicate flags, so copy this behavior for nonnative flags
-    if (clipDuplicates(flags) !== flags) {
-        throw new SyntaxError(`Invalid duplicate regex flag ${flags}`);
-    }
-
-    // Strip and apply a leading mode modifier with any combination of flags except g or y
-    pattern = nativ.replace.call(pattern, /^\(\?([\w$]+)\)/, ($0, $1) => {
-        if (nativ.test.call(/[gy]/, $1)) {
-            throw new SyntaxError(`Cannot use flag g or y in mode modifier ${$0}`);
-        }
-        // Allow duplicate flags within the mode modifier
-        flags = clipDuplicates(flags + $1);
-        return '';
-    });
-
-    // Throw on unknown native or nonnative flags
-    for (const flag of flags) {
-        if (!registeredFlags[flag]) {
-            throw new SyntaxError(`Unknown regex flag ${flag}`);
-        }
-    }
-
-    return {
-        pattern,
-        flags
-    };
-}
-
-/**
- * Prepares an options object from the given value.
- *
- * @private
- * @param {String|Object} value Value to convert to an options object.
- * @returns {Object} Options object.
- */
-function prepareOptions(value) {
-    const options = {};
-
-    if (isType(value, 'String')) {
-        XRegExp.forEach(value, /[^\s,]+/, (match) => {
-            options[match] = true;
-        });
-
-        return options;
-    }
-
-    return value;
-}
-
-/**
- * Registers a flag so it doesn't throw an 'unknown flag' error.
- *
- * @private
- * @param {String} flag Single-character flag to register.
- */
-function registerFlag(flag) {
-    if (!/^[\w$]$/.test(flag)) {
-        throw new Error('Flag must be a single character A-Za-z0-9_$');
-    }
-
-    registeredFlags[flag] = true;
-}
-
-/**
- * Runs built-in and custom regex syntax tokens in reverse insertion order at the specified
- * position, until a match is found.
- *
- * @private
- * @param {String} pattern Original pattern from which an XRegExp object is being built.
- * @param {String} flags Flags being used to construct the regex.
- * @param {Number} pos Position to search for tokens within `pattern`.
- * @param {Number} scope Regex scope to apply: 'default' or 'class'.
- * @param {Object} context Context object to use for token handler functions.
- * @returns {Object} Object with properties `matchLength`, `output`, and `reparse`; or `null`.
- */
-function runTokens(pattern, flags, pos, scope, context) {
-    let i = tokens.length;
-    const leadChar = pattern[pos];
-    let result = null;
-    let match;
-    let t;
-
-    // Run in reverse insertion order
-    while (i--) {
-        t = tokens[i];
-        if (
-            (t.leadChar && t.leadChar !== leadChar) ||
-            (t.scope !== scope && t.scope !== 'all') ||
-            (t.flag && !flags.includes(t.flag))
-        ) {
-            continue;
-        }
-
-        match = XRegExp.exec(pattern, t.regex, pos, 'sticky');
-        if (match) {
-            result = {
-                matchLength: match[0].length,
-                output: t.handler.call(context, match, scope, flags),
-                reparse: t.reparse
-            };
-            // Finished with token tests
-            break;
-        }
-    }
-
-    return result;
-}
-
-/**
- * Enables or disables implicit astral mode opt-in. When enabled, flag A is automatically added to
- * all new regexes created by XRegExp. This causes an error to be thrown when creating regexes if
- * the Unicode Base addon is not available, since flag A is registered by that addon.
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-function setAstral(on) {
-    features.astral = on;
-}
-
-/**
- * Adds named capture groups to the `groups` property of match arrays. See here for details:
- * https://github.com/tc39/proposal-regexp-named-groups
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-function setNamespacing(on) {
-    features.namespacing = on;
-}
-
-/**
- * Returns the object, or throws an error if it is `null` or `undefined`. This is used to follow
- * the ES5 abstract operation `ToObject`.
- *
- * @private
- * @param {*} value Object to check and return.
- * @returns {*} The provided object.
- */
-function toObject(value) {
-    // null or undefined
-    if (value == null) {
-        throw new TypeError('Cannot convert null or undefined to object');
-    }
-
-    return value;
-}
-
-// ==--------------------------==
-// Constructor
-// ==--------------------------==
-
-/**
- * Creates an extended regular expression object for matching text with a pattern. Differs from a
- * native regular expression in that additional syntax and flags are supported. The returned object
- * is in fact a native `RegExp` and works with all native methods.
- *
- * @class XRegExp
- * @constructor
- * @param {String|RegExp} pattern Regex pattern string, or an existing regex object to copy.
- * @param {String} [flags] Any combination of flags.
- *   Native flags:
- *     - `g` - global
- *     - `i` - ignore case
- *     - `m` - multiline anchors
- *     - `u` - unicode (ES6)
- *     - `y` - sticky (Firefox 3+, ES6)
- *   Additional XRegExp flags:
- *     - `n` - explicit capture
- *     - `s` - dot matches all (aka singleline)
- *     - `x` - free-spacing and line comments (aka extended)
- *     - `A` - astral (requires the Unicode Base addon)
- *   Flags cannot be provided when constructing one `RegExp` from another.
- * @returns {RegExp} Extended regular expression object.
- * @example
- *
- * // With named capture and flag x
- * XRegExp(`(?<year>  [0-9]{4} ) -?  # year
- *          (?<month> [0-9]{2} ) -?  # month
- *          (?<day>   [0-9]{2} )     # day`, 'x');
- *
- * // Providing a regex object copies it. Native regexes are recompiled using native (not XRegExp)
- * // syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` properties, and
- * // have fresh `lastIndex` properties (set to zero).
- * XRegExp(/regex/);
- */
-function XRegExp(pattern, flags) {
-    if (XRegExp.isRegExp(pattern)) {
-        if (flags !== undefined) {
-            throw new TypeError('Cannot supply flags when copying a RegExp');
-        }
-        return copyRegex(pattern);
-    }
-
-    // Copy the argument behavior of `RegExp`
-    pattern = pattern === undefined ? '' : String(pattern);
-    flags = flags === undefined ? '' : String(flags);
-
-    if (XRegExp.isInstalled('astral') && !flags.includes('A')) {
-        // This causes an error to be thrown if the Unicode Base addon is not available
-        flags += 'A';
-    }
-
-    if (!patternCache[pattern]) {
-        patternCache[pattern] = {};
-    }
-
-    if (!patternCache[pattern][flags]) {
-        const context = {
-            hasNamedCapture: false,
-            captureNames: []
-        };
-        let scope = defaultScope;
-        let output = '';
-        let pos = 0;
-        let result;
-
-        // Check for flag-related errors, and strip/apply flags in a leading mode modifier
-        const applied = prepareFlags(pattern, flags);
-        let appliedPattern = applied.pattern;
-        const appliedFlags = applied.flags;
-
-        // Use XRegExp's tokens to translate the pattern to a native regex pattern.
-        // `appliedPattern.length` may change on each iteration if tokens use `reparse`
-        while (pos < appliedPattern.length) {
-            do {
-                // Check for custom tokens at the current position
-                result = runTokens(appliedPattern, appliedFlags, pos, scope, context);
-                // If the matched token used the `reparse` option, splice its output into the
-                // pattern before running tokens again at the same position
-                if (result && result.reparse) {
-                    appliedPattern = appliedPattern.slice(0, pos) +
-                        result.output +
-                        appliedPattern.slice(pos + result.matchLength);
-                }
-            } while (result && result.reparse);
-
-            if (result) {
-                output += result.output;
-                pos += (result.matchLength || 1);
-            } else {
-                // Get the native token at the current position
-                const [token] = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, 'sticky');
-                output += token;
-                pos += token.length;
-                if (token === '[' && scope === defaultScope) {
-                    scope = classScope;
-                } else if (token === ']' && scope === classScope) {
-                    scope = defaultScope;
-                }
-            }
-        }
-
-        patternCache[pattern][flags] = {
-            // Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty
-            // groups are sometimes inserted during regex transpilation in order to keep tokens
-            // separated. However, more than one empty group in a row is never needed.
-            pattern: nativ.replace.call(output, /(?:\(\?:\))+/g, '(?:)'),
-            // Strip all but native flags
-            flags: nativ.replace.call(appliedFlags, /[^gimuy]+/g, ''),
-            // `context.captureNames` has an item for each capturing group, even if unnamed
-            captures: context.hasNamedCapture ? context.captureNames : null
-        };
-    }
-
-    const generated = patternCache[pattern][flags];
-    return augment(
-        new RegExp(generated.pattern, generated.flags),
-        generated.captures,
-        pattern,
-        flags
-    );
-}
-
-// Add `RegExp.prototype` to the prototype chain
-XRegExp.prototype = new RegExp();
-
-// ==--------------------------==
-// Public properties
-// ==--------------------------==
-
-/**
- * The XRegExp version number as a string containing three dot-separated parts. For example,
- * '2.0.0-beta-3'.
- *
- * @static
- * @memberOf XRegExp
- * @type String
- */
-XRegExp.version = '4.3.0';
-
-// ==--------------------------==
-// Public methods
-// ==--------------------------==
-
-// Intentionally undocumented; used in tests and addons
-XRegExp._clipDuplicates = clipDuplicates;
-XRegExp._hasNativeFlag = hasNativeFlag;
-XRegExp._dec = dec;
-XRegExp._hex = hex;
-XRegExp._pad4 = pad4;
-
-/**
- * Extends XRegExp syntax and allows custom flags. This is used internally and can be used to
- * create XRegExp addons. If more than one token can match the same string, the last added wins.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex object that matches the new token.
- * @param {Function} handler Function that returns a new pattern string (using native regex syntax)
- *   to replace the matched token within all future XRegExp regexes. Has access to persistent
- *   properties of the regex being built, through `this`. Invoked with three arguments:
- *   - The match array, with named backreference properties.
- *   - The regex scope where the match was found: 'default' or 'class'.
- *   - The flags used by the regex, including any flags in a leading mode modifier.
- *   The handler function becomes part of the XRegExp construction process, so be careful not to
- *   construct XRegExps within the function or you will trigger infinite recursion.
- * @param {Object} [options] Options object with optional properties:
- *   - `scope` {String} Scope where the token applies: 'default', 'class', or 'all'.
- *   - `flag` {String} Single-character flag that triggers the token. This also registers the
- *     flag, which prevents XRegExp from throwing an 'unknown flag' error when the flag is used.
- *   - `optionalFlags` {String} Any custom flags checked for within the token `handler` that are
- *     not required to trigger the token. This registers the flags, to prevent XRegExp from
- *     throwing an 'unknown flag' error when any of the flags are used.
- *   - `reparse` {Boolean} Whether the `handler` function's output should not be treated as
- *     final, and instead be reparseable by other tokens (including the current token). Allows
- *     token chaining or deferring.
- *   - `leadChar` {String} Single character that occurs at the beginning of any successful match
- *     of the token (not always applicable). This doesn't change the behavior of the token unless
- *     you provide an erroneous value. However, providing it can increase the token's performance
- *     since the token can be skipped at any positions where this character doesn't appear.
- * @example
- *
- * // Basic usage: Add \a for the ALERT control code
- * XRegExp.addToken(
- *   /\\a/,
- *   () => '\\x07',
- *   {scope: 'all'}
- * );
- * XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true
- *
- * // Add the U (ungreedy) flag from PCRE and RE2, which reverses greedy and lazy quantifiers.
- * // Since `scope` is not specified, it uses 'default' (i.e., transformations apply outside of
- * // character classes only)
- * XRegExp.addToken(
- *   /([?*+]|{\d+(?:,\d*)?})(\??)/,
- *   (match) => `${match[1]}${match[2] ? '' : '?'}`,
- *   {flag: 'U'}
- * );
- * XRegExp('a+', 'U').exec('aaa')[0]; // -> 'a'
- * XRegExp('a+?', 'U').exec('aaa')[0]; // -> 'aaa'
- */
-XRegExp.addToken = (regex, handler, options) => {
-    options = options || {};
-    let {optionalFlags} = options;
-
-    if (options.flag) {
-        registerFlag(options.flag);
-    }
-
-    if (optionalFlags) {
-        optionalFlags = nativ.split.call(optionalFlags, '');
-        for (const flag of optionalFlags) {
-            registerFlag(flag);
-        }
-    }
-
-    // Add to the private list of syntax tokens
-    tokens.push({
-        regex: copyRegex(regex, {
-            addG: true,
-            addY: hasNativeY,
-            isInternalOnly: true
-        }),
-        handler,
-        scope: options.scope || defaultScope,
-        flag: options.flag,
-        reparse: options.reparse,
-        leadChar: options.leadChar
-    });
-
-    // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and flags
-    // might now produce different results
-    XRegExp.cache.flush('patterns');
-};
-
-/**
- * Caches and returns the result of calling `XRegExp(pattern, flags)`. On any subsequent call with
- * the same pattern and flag combination, the cached copy of the regex is returned.
- *
- * @memberOf XRegExp
- * @param {String} pattern Regex pattern string.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @returns {RegExp} Cached XRegExp object.
- * @example
- *
- * while (match = XRegExp.cache('.', 'gs').exec(str)) {
- *   // The regex is compiled once only
- * }
- */
-XRegExp.cache = (pattern, flags) => {
-    if (!regexCache[pattern]) {
-        regexCache[pattern] = {};
-    }
-    return regexCache[pattern][flags] || (
-        regexCache[pattern][flags] = XRegExp(pattern, flags)
-    );
-};
-
-// Intentionally undocumented; used in tests
-XRegExp.cache.flush = (cacheName) => {
-    if (cacheName === 'patterns') {
-        // Flush the pattern cache used by the `XRegExp` constructor
-        patternCache = {};
-    } else {
-        // Flush the regex cache populated by `XRegExp.cache`
-        regexCache = {};
-    }
-};
-
-/**
- * Escapes any regular expression metacharacters, for use when matching literal strings. The result
- * can safely be used at any point within a regex that uses any flags.
- *
- * @memberOf XRegExp
- * @param {String} str String to escape.
- * @returns {String} String with regex metacharacters escaped.
- * @example
- *
- * XRegExp.escape('Escaped? <.>');
- * // -> 'Escaped\?\ <\.>'
- */
-XRegExp.escape = (str) => nativ.replace.call(toObject(str), /[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
-
-/**
- * Executes a regex search in a specified string. Returns a match array or `null`. If the provided
- * regex uses named capture, named backreference properties are included on the match array.
- * Optional `pos` and `sticky` arguments specify the search start position, and whether the match
- * must start at the specified position only. The `lastIndex` property of the provided regex is not
- * used, but is updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.exec` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Array} Match array with named backreference properties, or `null`.
- * @example
- *
- * // Basic use, with named backreference
- * let match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})'));
- * match.hex; // -> '2620'
- *
- * // With pos and sticky, in a loop
- * let pos = 2, result = [], match;
- * while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) {
- *   result.push(match[1]);
- *   pos = match.index + match[0].length;
- * }
- * // result -> ['2', '3', '4']
- */
-XRegExp.exec = (str, regex, pos, sticky) => {
-    let cacheKey = 'g';
-    let addY = false;
-    let fakeY = false;
-    let match;
-
-    addY = hasNativeY && !!(sticky || (regex.sticky && sticky !== false));
-    if (addY) {
-        cacheKey += 'y';
-    } else if (sticky) {
-        // Simulate sticky matching by appending an empty capture to the original regex. The
-        // resulting regex will succeed no matter what at the current index (set with `lastIndex`),
-        // and will not search the rest of the subject string. We'll know that the original regex
-        // has failed if that last capture is `''` rather than `undefined` (i.e., if that last
-        // capture participated in the match).
-        fakeY = true;
-        cacheKey += 'FakeY';
-    }
-
-    regex[REGEX_DATA] = regex[REGEX_DATA] || {};
-
-    // Shares cached copies with `XRegExp.match`/`replace`
-    const r2 = regex[REGEX_DATA][cacheKey] || (
-        regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-            addG: true,
-            addY,
-            source: fakeY ? `${regex.source}|()` : undefined,
-            removeY: sticky === false,
-            isInternalOnly: true
-        })
-    );
-
-    pos = pos || 0;
-    r2.lastIndex = pos;
-
-    // Fixed `exec` required for `lastIndex` fix, named backreferences, etc.
-    match = fixed.exec.call(r2, str);
-
-    // Get rid of the capture added by the pseudo-sticky matcher if needed. An empty string means
-    // the original regexp failed (see above).
-    if (fakeY && match && match.pop() === '') {
-        match = null;
-    }
-
-    if (regex.global) {
-        regex.lastIndex = match ? r2.lastIndex : 0;
-    }
-
-    return match;
-};
-
-/**
- * Executes a provided function once per regex match. Searches always start at the beginning of the
- * string and continue until the end, regardless of the state of the regex's `global` property and
- * initial `lastIndex`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Function} callback Function to execute for each match. Invoked with four arguments:
- *   - The match array, with named backreference properties.
- *   - The zero-based match index.
- *   - The string being traversed.
- *   - The regex object being used to traverse the string.
- * @example
- *
- * // Extracts every other digit from a string
- * const evens = [];
- * XRegExp.forEach('1a2345', /\d/, (match, i) => {
- *   if (i % 2) evens.push(+match[0]);
- * });
- * // evens -> [2, 4]
- */
-XRegExp.forEach = (str, regex, callback) => {
-    let pos = 0;
-    let i = -1;
-    let match;
-
-    while ((match = XRegExp.exec(str, regex, pos))) {
-        // Because `regex` is provided to `callback`, the function could use the deprecated/
-        // nonstandard `RegExp.prototype.compile` to mutate the regex. However, since `XRegExp.exec`
-        // doesn't use `lastIndex` to set the search position, this can't lead to an infinite loop,
-        // at least. Actually, because of the way `XRegExp.exec` caches globalized versions of
-        // regexes, mutating the regex will not have any effect on the iteration or matched strings,
-        // which is a nice side effect that brings extra safety.
-        callback(match, ++i, str, regex);
-
-        pos = match.index + (match[0].length || 1);
-    }
-};
-
-/**
- * Copies a regex object and adds flag `g`. The copy maintains extended data, is augmented with
- * `XRegExp.prototype` properties, and has a fresh `lastIndex` property (set to zero). Native
- * regexes are not recompiled using XRegExp syntax.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex to globalize.
- * @returns {RegExp} Copy of the provided regex with flag `g` added.
- * @example
- *
- * const globalCopy = XRegExp.globalize(/regex/);
- * globalCopy.global; // -> true
- */
-XRegExp.globalize = (regex) => copyRegex(regex, {addG: true});
-
-/**
- * Installs optional features according to the specified options. Can be undone using
- * `XRegExp.uninstall`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.install({
- *   // Enables support for astral code points in Unicode addons (implicitly sets flag A)
- *   astral: true,
- *
- *   // Adds named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.install('astral namespacing');
- */
-XRegExp.install = (options) => {
-    options = prepareOptions(options);
-
-    if (!features.astral && options.astral) {
-        setAstral(true);
-    }
-
-    if (!features.namespacing && options.namespacing) {
-        setNamespacing(true);
-    }
-};
-
-/**
- * Checks whether an individual optional feature is installed.
- *
- * @memberOf XRegExp
- * @param {String} feature Name of the feature to check. One of:
- *   - `astral`
- *   - `namespacing`
- * @returns {Boolean} Whether the feature is installed.
- * @example
- *
- * XRegExp.isInstalled('astral');
- */
-XRegExp.isInstalled = (feature) => !!(features[feature]);
-
-/**
- * Returns `true` if an object is a regex; `false` if it isn't. This works correctly for regexes
- * created in another frame, when `instanceof` and `constructor` checks would fail.
- *
- * @memberOf XRegExp
- * @param {*} value Object to check.
- * @returns {Boolean} Whether the object is a `RegExp` object.
- * @example
- *
- * XRegExp.isRegExp('string'); // -> false
- * XRegExp.isRegExp(/regex/i); // -> true
- * XRegExp.isRegExp(RegExp('^', 'm')); // -> true
- * XRegExp.isRegExp(XRegExp('(?s).')); // -> true
- */
-XRegExp.isRegExp = (value) => toString.call(value) === '[object RegExp]'; // isType(value, 'RegExp');
-
-/**
- * Returns the first matched string, or in global mode, an array containing all matched strings.
- * This is essentially a more convenient re-implementation of `String.prototype.match` that gives
- * the result types you actually want (string instead of `exec`-style array in match-first mode,
- * and an empty array instead of `null` when no matches are found in match-all mode). It also lets
- * you override flag g and ignore `lastIndex`, and fixes browser bugs.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {String} [scope='one'] Use 'one' to return the first match as a string. Use 'all' to
- *   return an array of all matched strings. If not explicitly specified and `regex` uses flag g,
- *   `scope` is 'all'.
- * @returns {String|Array} In match-first mode: First match as a string, or `null`. In match-all
- *   mode: Array of all matched strings, or an empty array.
- * @example
- *
- * // Match first
- * XRegExp.match('abc', /\w/); // -> 'a'
- * XRegExp.match('abc', /\w/g, 'one'); // -> 'a'
- * XRegExp.match('abc', /x/g, 'one'); // -> null
- *
- * // Match all
- * XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /x/, 'all'); // -> []
- */
-XRegExp.match = (str, regex, scope) => {
-    const global = (regex.global && scope !== 'one') || scope === 'all';
-    const cacheKey = ((global ? 'g' : '') + (regex.sticky ? 'y' : '')) || 'noGY';
-
-    regex[REGEX_DATA] = regex[REGEX_DATA] || {};
-
-    // Shares cached copies with `XRegExp.exec`/`replace`
-    const r2 = regex[REGEX_DATA][cacheKey] || (
-        regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-            addG: !!global,
-            removeG: scope === 'one',
-            isInternalOnly: true
-        })
-    );
-
-    const result = nativ.match.call(toObject(str), r2);
-
-    if (regex.global) {
-        regex.lastIndex = (
-            (scope === 'one' && result) ?
-                // Can't use `r2.lastIndex` since `r2` is nonglobal in this case
-                (result.index + result[0].length) : 0
-        );
-    }
-
-    return global ? (result || []) : (result && result[0]);
-};
-
-/**
- * Retrieves the matches from searching a string using a chain of regexes that successively search
- * within previous matches. The provided `chain` array can contain regexes and or objects with
- * `regex` and `backref` properties. When a backreference is specified, the named or numbered
- * backreference is passed forward to the next regex or returned.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} chain Regexes that each search for matches within preceding results.
- * @returns {Array} Matches by the last regex in the chain, or an empty array.
- * @example
- *
- * // Basic usage; matches numbers within <b> tags
- * XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [
- *   XRegExp('(?is)<b>.*?</b>'),
- *   /\d+/
- * ]);
- * // -> ['2', '4', '56']
- *
- * // Passing forward and returning specific backreferences
- * html = '<a href="http://xregexp.com/api/">XRegExp</a>\
- *         <a href="http://www.google.com/">Google</a>';
- * XRegExp.matchChain(html, [
- *   {regex: /<a href="([^"]+)">/i, backref: 1},
- *   {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'}
- * ]);
- * // -> ['xregexp.com', 'www.google.com']
- */
-XRegExp.matchChain = (str, chain) => (function recurseChain(values, level) {
-    const item = chain[level].regex ? chain[level] : {regex: chain[level]};
-    const matches = [];
-
-    function addMatch(match) {
-        if (item.backref) {
-            const ERR_UNDEFINED_GROUP = `Backreference to undefined group: ${item.backref}`;
-            const isNamedBackref = isNaN(item.backref);
-
-            if (isNamedBackref && XRegExp.isInstalled('namespacing')) {
-                // `groups` has `null` as prototype, so using `in` instead of `hasOwnProperty`
-                if (!(item.backref in match.groups)) {
-                    throw new ReferenceError(ERR_UNDEFINED_GROUP);
-                }
-            } else if (!match.hasOwnProperty(item.backref)) {
-                throw new ReferenceError(ERR_UNDEFINED_GROUP);
-            }
-
-            const backrefValue = isNamedBackref && XRegExp.isInstalled('namespacing') ?
-                match.groups[item.backref] :
-                match[item.backref];
-
-            matches.push(backrefValue || '');
-        } else {
-            matches.push(match[0]);
-        }
-    }
-
-    for (const value of values) {
-        XRegExp.forEach(value, item.regex, addMatch);
-    }
-
-    return ((level === chain.length - 1) || !matches.length) ?
-        matches :
-        recurseChain(matches, level + 1);
-}([str], 0));
-
-/**
- * Returns a new string with one or all matches of a pattern replaced. The pattern can be a string
- * or regex, and the replacement can be a string or a function to be called for each match. To
- * perform a global search and replace, use the optional `scope` argument or include flag g if using
- * a regex. Replacement strings can use `${n}` or `$<n>` for named and numbered backreferences.
- * Replacement functions can use named backreferences via `arguments[0].name`. Also fixes browser
- * bugs compared to the native `String.prototype.replace` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- *   Replacement strings can include special replacement syntax:
- *     - $$ - Inserts a literal $ character.
- *     - $&, $0 - Inserts the matched substring.
- *     - $` - Inserts the string that precedes the matched substring (left context).
- *     - $' - Inserts the string that follows the matched substring (right context).
- *     - $n, $nn - Where n/nn are digits referencing an existent capturing group, inserts
- *       backreference n/nn.
- *     - ${n}, $<n> - Where n is a name or any number of digits that reference an existent capturing
- *       group, inserts backreference n.
- *   Replacement functions are invoked with three or more arguments:
- *     - The matched substring (corresponds to $& above). Named backreferences are accessible as
- *       properties of this first argument.
- *     - 0..n arguments, one for each backreference (corresponding to $1, $2, etc. above).
- *     - The zero-based index of the match within the total search string.
- *     - The total string being searched.
- * @param {String} [scope='one'] Use 'one' to replace the first match only, or 'all'. If not
- *   explicitly specified and using a regex with flag g, `scope` is 'all'.
- * @returns {String} New string with one or all matches replaced.
- * @example
- *
- * // Regex search, using named backreferences in replacement string
- * const name = XRegExp('(?<first>\\w+) (?<last>\\w+)');
- * XRegExp.replace('John Smith', name, '$<last>, $<first>');
- * // -> 'Smith, John'
- *
- * // Regex search, using named backreferences in replacement function
- * XRegExp.replace('John Smith', name, (match) => `${match.last}, ${match.first}`);
- * // -> 'Smith, John'
- *
- * // String search, with replace-all
- * XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all');
- * // -> 'XRegExp builds XRegExps'
- */
-XRegExp.replace = (str, search, replacement, scope) => {
-    const isRegex = XRegExp.isRegExp(search);
-    const global = (search.global && scope !== 'one') || scope === 'all';
-    const cacheKey = ((global ? 'g' : '') + (search.sticky ? 'y' : '')) || 'noGY';
-    let s2 = search;
-
-    if (isRegex) {
-        search[REGEX_DATA] = search[REGEX_DATA] || {};
-
-        // Shares cached copies with `XRegExp.exec`/`match`. Since a copy is used, `search`'s
-        // `lastIndex` isn't updated *during* replacement iterations
-        s2 = search[REGEX_DATA][cacheKey] || (
-            search[REGEX_DATA][cacheKey] = copyRegex(search, {
-                addG: !!global,
-                removeG: scope === 'one',
-                isInternalOnly: true
-            })
-        );
-    } else if (global) {
-        s2 = new RegExp(XRegExp.escape(String(search)), 'g');
-    }
-
-    // Fixed `replace` required for named backreferences, etc.
-    const result = fixed.replace.call(toObject(str), s2, replacement);
-
-    if (isRegex && search.global) {
-        // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-        search.lastIndex = 0;
-    }
-
-    return result;
-};
-
-/**
- * Performs batch processing of string replacements. Used like `XRegExp.replace`, but accepts an
- * array of replacement details. Later replacements operate on the output of earlier replacements.
- * Replacement details are accepted as an array with a regex or string to search for, the
- * replacement string or function, and an optional scope of 'one' or 'all'. Uses the XRegExp
- * replacement text syntax, which supports named backreference properties via `${name}` or
- * `$<name>`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} replacements Array of replacement detail arrays.
- * @returns {String} New string with all replacements.
- * @example
- *
- * str = XRegExp.replaceEach(str, [
- *   [XRegExp('(?<name>a)'), 'z${name}'],
- *   [/b/gi, 'y'],
- *   [/c/g, 'x', 'one'], // scope 'one' overrides /g
- *   [/d/, 'w', 'all'],  // scope 'all' overrides lack of /g
- *   ['e', 'v', 'all'],  // scope 'all' allows replace-all for strings
- *   [/f/g, ($0) => $0.toUpperCase()]
- * ]);
- */
-XRegExp.replaceEach = (str, replacements) => {
-    for (const r of replacements) {
-        str = XRegExp.replace(str, r[0], r[1], r[2]);
-    }
-
-    return str;
-};
-
-/**
- * Splits a string into an array of strings using a regex or string separator. Matches of the
- * separator are not included in the result array. However, if `separator` is a regex that contains
- * capturing groups, backreferences are spliced into the result each time `separator` is matched.
- * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably
- * cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to split.
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- * @example
- *
- * // Basic use
- * XRegExp.split('a b c', ' ');
- * // -> ['a', 'b', 'c']
- *
- * // With limit
- * XRegExp.split('a b c', ' ', 2);
- * // -> ['a', 'b']
- *
- * // Backreferences in result array
- * XRegExp.split('..word1..', /([a-z]+)(\d+)/i);
- * // -> ['..', 'word', '1', '..']
- */
-XRegExp.split = (str, separator, limit) => fixed.split.call(toObject(str), separator, limit);
-
-/**
- * Executes a regex search in a specified string. Returns `true` or `false`. Optional `pos` and
- * `sticky` arguments specify the search start position, and whether the match must start at the
- * specified position only. The `lastIndex` property of the provided regex is not used, but is
- * updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.test` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Boolean} Whether the regex matched the provided value.
- * @example
- *
- * // Basic use
- * XRegExp.test('abc', /c/); // -> true
- *
- * // With pos and sticky
- * XRegExp.test('abc', /c/, 0, 'sticky'); // -> false
- * XRegExp.test('abc', /c/, 2, 'sticky'); // -> true
- */
-// Do this the easy way :-)
-XRegExp.test = (str, regex, pos, sticky) => !!XRegExp.exec(str, regex, pos, sticky);
-
-/**
- * Uninstalls optional features according to the specified options. All optional features start out
- * uninstalled, so this is used to undo the actions of `XRegExp.install`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.uninstall({
- *   // Disables support for astral code points in Unicode addons
- *   astral: true,
- *
- *   // Don't add named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.uninstall('astral namespacing');
- */
-XRegExp.uninstall = (options) => {
-    options = prepareOptions(options);
-
-    if (features.astral && options.astral) {
-        setAstral(false);
-    }
-
-    if (features.namespacing && options.namespacing) {
-        setNamespacing(false);
-    }
-};
-
-/**
- * Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as
- * regex objects or strings. Metacharacters are escaped in patterns provided as strings.
- * Backreferences in provided regex objects are automatically renumbered to work correctly within
- * the larger combined pattern. Native flags used by provided regexes are ignored in favor of the
- * `flags` argument.
- *
- * @memberOf XRegExp
- * @param {Array} patterns Regexes and strings to combine.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @param {Object} [options] Options object with optional properties:
- *   - `conjunction` {String} Type of conjunction to use: 'or' (default) or 'none'.
- * @returns {RegExp} Union of the provided regexes and strings.
- * @example
- *
- * XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i');
- * // -> /a\+b\*c|(dogs)\1|(cats)\2/i
- *
- * XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'});
- * // -> /manbearpig/i
- */
-XRegExp.union = (patterns, flags, options) => {
-    options = options || {};
-    const conjunction = options.conjunction || 'or';
-    let numCaptures = 0;
-    let numPriorCaptures;
-    let captureNames;
-
-    function rewrite(match, paren, backref) {
-        const name = captureNames[numCaptures - numPriorCaptures];
-
-        // Capturing group
-        if (paren) {
-            ++numCaptures;
-            // If the current capture has a name, preserve the name
-            if (name) {
-                return `(?<${name}>`;
-            }
-        // Backreference
-        } else if (backref) {
-            // Rewrite the backreference
-            return `\\${+backref + numPriorCaptures}`;
-        }
-
-        return match;
-    }
-
-    if (!(isType(patterns, 'Array') && patterns.length)) {
-        throw new TypeError('Must provide a nonempty array of patterns to merge');
-    }
-
-    const parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-    const output = [];
-    for (const pattern of patterns) {
-        if (XRegExp.isRegExp(pattern)) {
-            numPriorCaptures = numCaptures;
-            captureNames = (pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames) || [];
-
-            // Rewrite backreferences. Passing to XRegExp dies on octals and ensures patterns are
-            // independently valid; helps keep this simple. Named captures are put back
-            output.push(nativ.replace.call(XRegExp(pattern.source).source, parts, rewrite));
-        } else {
-            output.push(XRegExp.escape(pattern));
-        }
-    }
-
-    const separator = conjunction === 'none' ? '' : '|';
-    return XRegExp(output.join(separator), flags);
-};
-
-// ==--------------------------==
-// Fixed/extended native methods
-// ==--------------------------==
-
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `RegExp.prototype.exec`. Use via `XRegExp.exec`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Array} Match array with named backreference properties, or `null`.
- */
-fixed.exec = function(str) {
-    const origLastIndex = this.lastIndex;
-    const match = nativ.exec.apply(this, arguments);
-
-    if (match) {
-        // Fix browsers whose `exec` methods don't return `undefined` for nonparticipating capturing
-        // groups. This fixes IE 5.5-8, but not IE 9's quirks mode or emulation of older IEs. IE 9
-        // in standards mode follows the spec.
-        if (!correctExecNpcg && match.length > 1 && match.includes('')) {
-            const r2 = copyRegex(this, {
-                removeG: true,
-                isInternalOnly: true
-            });
-            // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
-            // matching due to characters outside the match
-            nativ.replace.call(String(str).slice(match.index), r2, (...args) => {
-                const len = args.length;
-                // Skip index 0 and the last 2
-                for (let i = 1; i < len - 2; ++i) {
-                    if (args[i] === undefined) {
-                        match[i] = undefined;
-                    }
-                }
-            });
-        }
-
-        // Attach named capture properties
-        let groupsObject = match;
-        if (XRegExp.isInstalled('namespacing')) {
-            // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-            match.groups = Object.create(null);
-            groupsObject = match.groups;
-        }
-        if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) {
-            // Skip index 0
-            for (let i = 1; i < match.length; ++i) {
-                const name = this[REGEX_DATA].captureNames[i - 1];
-                if (name) {
-                    groupsObject[name] = match[i];
-                }
-            }
-        }
-
-        // Fix browsers that increment `lastIndex` after zero-length matches
-        if (this.global && !match[0].length && (this.lastIndex > match.index)) {
-            this.lastIndex = match.index;
-        }
-    }
-
-    if (!this.global) {
-        // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-        this.lastIndex = origLastIndex;
-    }
-
-    return match;
-};
-
-/**
- * Fixes browser bugs in the native `RegExp.prototype.test`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Boolean} Whether the regex matched the provided value.
- */
-fixed.test = function(str) {
-    // Do this the easy way :-)
-    return !!fixed.exec.call(this, str);
-};
-
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `String.prototype.match`.
- *
- * @memberOf String
- * @param {RegExp|*} regex Regex to search with. If not a regex object, it is passed to `RegExp`.
- * @returns {Array} If `regex` uses flag g, an array of match strings or `null`. Without flag g,
- *   the result of calling `regex.exec(this)`.
- */
-fixed.match = function(regex) {
-    if (!XRegExp.isRegExp(regex)) {
-        // Use the native `RegExp` rather than `XRegExp`
-        regex = new RegExp(regex);
-    } else if (regex.global) {
-        const result = nativ.match.apply(this, arguments);
-        // Fixes IE bug
-        regex.lastIndex = 0;
-
-        return result;
-    }
-
-    return fixed.exec.call(regex, toObject(this));
-};
-
-/**
- * Adds support for `${n}` (or `$<n>`) tokens for named and numbered backreferences in replacement
- * text, and provides named backreferences to replacement functions as `arguments[0].name`. Also
- * fixes browser bugs in replacement text syntax when performing a replacement using a nonregex
- * search value, and the value of a replacement regex's `lastIndex` property during replacement
- * iterations and upon completion. Note that this doesn't support SpiderMonkey's proprietary third
- * (`flags`) argument. Use via `XRegExp.replace`.
- *
- * @memberOf String
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- * @returns {String} New string with one or all matches replaced.
- */
-fixed.replace = function(search, replacement) {
-    const isRegex = XRegExp.isRegExp(search);
-    let origLastIndex;
-    let captureNames;
-    let result;
-
-    if (isRegex) {
-        if (search[REGEX_DATA]) {
-            ({captureNames} = search[REGEX_DATA]);
-        }
-        // Only needed if `search` is nonglobal
-        origLastIndex = search.lastIndex;
-    } else {
-        search += ''; // Type-convert
-    }
-
-    // Don't use `typeof`; some older browsers return 'function' for regex objects
-    if (isType(replacement, 'Function')) {
-        // Stringifying `this` fixes a bug in IE < 9 where the last argument in replacement
-        // functions isn't type-converted to a string
-        result = nativ.replace.call(String(this), search, (...args) => {
-            if (captureNames) {
-                let groupsObject;
-
-                if (XRegExp.isInstalled('namespacing')) {
-                    // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-                    groupsObject = Object.create(null);
-                    args.push(groupsObject);
-                } else {
-                    // Change the `args[0]` string primitive to a `String` object that can store
-                    // properties. This really does need to use `String` as a constructor
-                    args[0] = new String(args[0]);
-                    [groupsObject] = args;
-                }
-
-                // Store named backreferences
-                for (let i = 0; i < captureNames.length; ++i) {
-                    if (captureNames[i]) {
-                        groupsObject[captureNames[i]] = args[i + 1];
-                    }
-                }
-            }
-            // Update `lastIndex` before calling `replacement`. Fixes IE, Chrome, Firefox, Safari
-            // bug (last tested IE 9, Chrome 17, Firefox 11, Safari 5.1)
-            if (isRegex && search.global) {
-                search.lastIndex = args[args.length - 2] + args[0].length;
-            }
-            // ES6 specs the context for replacement functions as `undefined`
-            return replacement(...args);
-        });
-    } else {
-        // Ensure that the last value of `args` will be a string when given nonstring `this`,
-        // while still throwing on null or undefined context
-        result = nativ.replace.call(this == null ? this : String(this), search, (...args) => {
-            return nativ.replace.call(String(replacement), replacementToken, replacer);
-
-            function replacer($0, bracketed, angled, dollarToken) {
-                bracketed = bracketed || angled;
-                // Named or numbered backreference with curly or angled braces
-                if (bracketed) {
-                    // XRegExp behavior for `${n}` or `$<n>`:
-                    // 1. Backreference to numbered capture, if `n` is an integer. Use `0` for the
-                    //    entire match. Any number of leading zeros may be used.
-                    // 2. Backreference to named capture `n`, if it exists and is not an integer
-                    //    overridden by numbered capture. In practice, this does not overlap with
-                    //    numbered capture since XRegExp does not allow named capture to use a bare
-                    //    integer as the name.
-                    // 3. If the name or number does not refer to an existing capturing group, it's
-                    //    an error.
-                    let n = +bracketed; // Type-convert; drop leading zeros
-                    if (n <= args.length - 3) {
-                        return args[n] || '';
-                    }
-                    // Groups with the same name is an error, else would need `lastIndexOf`
-                    n = captureNames ? captureNames.indexOf(bracketed) : -1;
-                    if (n < 0) {
-                        throw new SyntaxError(`Backreference to undefined group ${$0}`);
-                    }
-                    return args[n + 1] || '';
-                }
-                // Else, special variable or numbered backreference without curly braces
-                if (dollarToken === '$') { // $$
-                    return '$';
-                }
-                if (dollarToken === '&' || +dollarToken === 0) { // $&, $0 (not followed by 1-9), $00
-                    return args[0];
-                }
-                if (dollarToken === '`') { // $` (left context)
-                    return args[args.length - 1].slice(0, args[args.length - 2]);
-                }
-                if (dollarToken === "'") { // $' (right context)
-                    return args[args.length - 1].slice(args[args.length - 2] + args[0].length);
-                }
-                // Else, numbered backreference without braces
-                dollarToken = +dollarToken; // Type-convert; drop leading zero
-                // XRegExp behavior for `$n` and `$nn`:
-                // - Backrefs end after 1 or 2 digits. Use `${..}` or `$<..>` for more digits.
-                // - `$1` is an error if no capturing groups.
-                // - `$10` is an error if less than 10 capturing groups. Use `${1}0` or `$<1>0`
-                //   instead.
-                // - `$01` is `$1` if at least one capturing group, else it's an error.
-                // - `$0` (not followed by 1-9) and `$00` are the entire match.
-                // Native behavior, for comparison:
-                // - Backrefs end after 1 or 2 digits. Cannot reference capturing group 100+.
-                // - `$1` is a literal `$1` if no capturing groups.
-                // - `$10` is `$1` followed by a literal `0` if less than 10 capturing groups.
-                // - `$01` is `$1` if at least one capturing group, else it's a literal `$01`.
-                // - `$0` is a literal `$0`.
-                if (!isNaN(dollarToken)) {
-                    if (dollarToken > args.length - 3) {
-                        throw new SyntaxError(`Backreference to undefined group ${$0}`);
-                    }
-                    return args[dollarToken] || '';
-                }
-                // `$` followed by an unsupported char is an error, unlike native JS
-                throw new SyntaxError(`Invalid token ${$0}`);
-            }
-        });
-    }
-
-    if (isRegex) {
-        if (search.global) {
-            // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-            search.lastIndex = 0;
-        } else {
-            // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-            search.lastIndex = origLastIndex;
-        }
-    }
-
-    return result;
-};
-
-/**
- * Fixes browser bugs in the native `String.prototype.split`. Use via `XRegExp.split`.
- *
- * @memberOf String
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- */
-fixed.split = function(separator, limit) {
-    if (!XRegExp.isRegExp(separator)) {
-        // Browsers handle nonregex split correctly, so use the faster native method
-        return nativ.split.apply(this, arguments);
-    }
-
-    const str = String(this);
-    const output = [];
-    const origLastIndex = separator.lastIndex;
-    let lastLastIndex = 0;
-    let lastLength;
-
-    // Values for `limit`, per the spec:
-    // If undefined: pow(2,32) - 1
-    // If 0, Infinity, or NaN: 0
-    // If positive number: limit = floor(limit); if (limit >= pow(2,32)) limit -= pow(2,32);
-    // If negative number: pow(2,32) - floor(abs(limit))
-    // If other: Type-convert, then use the above rules
-    // This line fails in very strange ways for some values of `limit` in Opera 10.5-10.63, unless
-    // Opera Dragonfly is open (go figure). It works in at least Opera 9.5-10.1 and 11+
-    limit = (limit === undefined ? -1 : limit) >>> 0;
-
-    XRegExp.forEach(str, separator, (match) => {
-        // This condition is not the same as `if (match[0].length)`
-        if ((match.index + match[0].length) > lastLastIndex) {
-            output.push(str.slice(lastLastIndex, match.index));
-            if (match.length > 1 && match.index < str.length) {
-                Array.prototype.push.apply(output, match.slice(1));
-            }
-            lastLength = match[0].length;
-            lastLastIndex = match.index + lastLength;
-        }
-    });
-
-    if (lastLastIndex === str.length) {
-        if (!nativ.test.call(separator, '') || lastLength) {
-            output.push('');
-        }
-    } else {
-        output.push(str.slice(lastLastIndex));
-    }
-
-    separator.lastIndex = origLastIndex;
-    return output.length > limit ? output.slice(0, limit) : output;
-};
-
-// ==--------------------------==
-// Built-in syntax/flag tokens
-// ==--------------------------==
-
-/*
- * Letter escapes that natively match literal characters: `\a`, `\A`, etc. These should be
- * SyntaxErrors but are allowed in web reality. XRegExp makes them errors for cross-browser
- * consistency and to reserve their syntax, but lets them be superseded by addons.
- */
-XRegExp.addToken(
-    /\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,
-    (match, scope) => {
-        // \B is allowed in default scope only
-        if (match[1] === 'B' && scope === defaultScope) {
-            return match[0];
-        }
-        throw new SyntaxError(`Invalid escape ${match[0]}`);
-    },
-    {
-        scope: 'all',
-        leadChar: '\\'
-    }
-);
-
-/*
- * Unicode code point escape with curly braces: `\u{N..}`. `N..` is any one or more digit
- * hexadecimal number from 0-10FFFF, and can include leading zeros. Requires the native ES6 `u` flag
- * to support code points greater than U+FFFF. Avoids converting code points above U+FFFF to
- * surrogate pairs (which could be done without flag `u`), since that could lead to broken behavior
- * if you follow a `\u{N..}` token that references a code point above U+FFFF with a quantifier, or
- * if you use the same in a character class.
- */
-XRegExp.addToken(
-    /\\u{([\dA-Fa-f]+)}/,
-    (match, scope, flags) => {
-        const code = dec(match[1]);
-        if (code > 0x10FFFF) {
-            throw new SyntaxError(`Invalid Unicode code point ${match[0]}`);
-        }
-        if (code <= 0xFFFF) {
-            // Converting to \uNNNN avoids needing to escape the literal character and keep it
-            // separate from preceding tokens
-            return `\\u${pad4(hex(code))}`;
-        }
-        // If `code` is between 0xFFFF and 0x10FFFF, require and defer to native handling
-        if (hasNativeU && flags.includes('u')) {
-            return match[0];
-        }
-        throw new SyntaxError('Cannot use Unicode code point above \\u{FFFF} without flag u');
-    },
-    {
-        scope: 'all',
-        leadChar: '\\'
-    }
-);
-
-/*
- * Empty character class: `[]` or `[^]`. This fixes a critical cross-browser syntax inconsistency.
- * Unless this is standardized (per the ES spec), regex syntax can't be accurately parsed because
- * character class endings can't be determined.
- */
-XRegExp.addToken(
-    /\[(\^?)\]/,
-    // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S].
-    // (?!) should work like \b\B, but is unreliable in some versions of Firefox
-    /* eslint-disable no-confusing-arrow */
-    (match) => (match[1] ? '[\\s\\S]' : '\\b\\B'),
-    /* eslint-enable no-confusing-arrow */
-    {leadChar: '['}
-);
-
-/*
- * Comment pattern: `(?# )`. Inline comments are an alternative to the line comments allowed in
- * free-spacing mode (flag x).
- */
-XRegExp.addToken(
-    /\(\?#[^)]*\)/,
-    getContextualTokenSeparator,
-    {leadChar: '('}
-);
-
-/*
- * Whitespace and line comments, in free-spacing mode (aka extended mode, flag x) only.
- */
-XRegExp.addToken(
-    /\s+|#[^\n]*\n?/,
-    getContextualTokenSeparator,
-    {flag: 'x'}
-);
-
-/*
- * Dot, in dotall mode (aka singleline mode, flag s) only.
- */
-XRegExp.addToken(
-    /\./,
-    () => '[\\s\\S]',
-    {
-        flag: 's',
-        leadChar: '.'
-    }
-);
-
-/*
- * Named backreference: `\k<name>`. Backreference names can use the characters A-Z, a-z, 0-9, _,
- * and $ only. Also allows numbered backreferences as `\k<n>`.
- */
-XRegExp.addToken(
-    /\\k<([\w$]+)>/,
-    function(match) {
-        // Groups with the same name is an error, else would need `lastIndexOf`
-        const index = isNaN(match[1]) ? (this.captureNames.indexOf(match[1]) + 1) : +match[1];
-        const endIndex = match.index + match[0].length;
-        if (!index || index > this.captureNames.length) {
-            throw new SyntaxError(`Backreference to undefined group ${match[0]}`);
-        }
-        // Keep backreferences separate from subsequent literal numbers. This avoids e.g.
-        // inadvertedly changing `(?<n>)\k<n>1` to `()\11`.
-        return `\\${index}${
-            endIndex === match.input.length || isNaN(match.input[endIndex]) ?
-                '' : '(?:)'
-        }`;
-    },
-    {leadChar: '\\'}
-);
-
-/*
- * Numbered backreference or octal, plus any following digits: `\0`, `\11`, etc. Octals except `\0`
- * not followed by 0-9 and backreferences to unopened capture groups throw an error. Other matches
- * are returned unaltered. IE < 9 doesn't support backreferences above `\99` in regex syntax.
- */
-XRegExp.addToken(
-    /\\(\d+)/,
-    function(match, scope) {
-        if (
-            !(
-                scope === defaultScope &&
-                /^[1-9]/.test(match[1]) &&
-                +match[1] <= this.captureNames.length
-            ) &&
-            match[1] !== '0'
-        ) {
-            throw new SyntaxError(`Cannot use octal escape or backreference to undefined group ${match[0]}`);
-        }
-        return match[0];
-    },
-    {
-        scope: 'all',
-        leadChar: '\\'
-    }
-);
-
-/*
- * Named capturing group; match the opening delimiter only: `(?<name>`. Capture names can use the
- * characters A-Z, a-z, 0-9, _, and $ only. Names can't be integers. Supports Python-style
- * `(?P<name>` as an alternate syntax to avoid issues in some older versions of Opera which natively
- * supported the Python-style syntax. Otherwise, XRegExp might treat numbered backreferences to
- * Python-style named capture as octals.
- */
-XRegExp.addToken(
-    /\(\?P?<([\w$]+)>/,
-    function(match) {
-        // Disallow bare integers as names because named backreferences are added to match arrays
-        // and therefore numeric properties may lead to incorrect lookups
-        if (!isNaN(match[1])) {
-            throw new SyntaxError(`Cannot use integer as capture name ${match[0]}`);
-        }
-        if (!XRegExp.isInstalled('namespacing') && (match[1] === 'length' || match[1] === '__proto__')) {
-            throw new SyntaxError(`Cannot use reserved word as capture name ${match[0]}`);
-        }
-        if (this.captureNames.includes(match[1])) {
-            throw new SyntaxError(`Cannot use same name for multiple groups ${match[0]}`);
-        }
-        this.captureNames.push(match[1]);
-        this.hasNamedCapture = true;
-        return '(';
-    },
-    {leadChar: '('}
-);
-
-/*
- * Capturing group; match the opening parenthesis only. Required for support of named capturing
- * groups. Also adds explicit capture mode (flag n).
- */
-XRegExp.addToken(
-    /\((?!\?)/,
-    function(match, scope, flags) {
-        if (flags.includes('n')) {
-            return '(?:';
-        }
-        this.captureNames.push(null);
-        return '(';
-    },
-    {
-        optionalFlags: 'n',
-        leadChar: '('
-    }
-);
-
-export default XRegExp;
diff --git a/node_modules/xregexp/tools/output/blocks.js b/node_modules/xregexp/tools/output/blocks.js
deleted file mode 100644
index 4adac0c..0000000
--- a/node_modules/xregexp/tools/output/blocks.js
+++ /dev/null
@@ -1,1170 +0,0 @@
-module.exports = [
-    {
-        'name': 'InAdlam',
-        'astral': '\uD83A[\uDD00-\uDD5F]'
-    },
-    {
-        'name': 'InAegean_Numbers',
-        'astral': '\uD800[\uDD00-\uDD3F]'
-    },
-    {
-        'name': 'InAhom',
-        'astral': '\uD805[\uDF00-\uDF3F]'
-    },
-    {
-        'name': 'InAlchemical_Symbols',
-        'astral': '\uD83D[\uDF00-\uDF7F]'
-    },
-    {
-        'name': 'InAlphabetic_Presentation_Forms',
-        'bmp': '\uFB00-\uFB4F'
-    },
-    {
-        'name': 'InAnatolian_Hieroglyphs',
-        'astral': '\uD811[\uDC00-\uDE7F]'
-    },
-    {
-        'name': 'InAncient_Greek_Musical_Notation',
-        'astral': '\uD834[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InAncient_Greek_Numbers',
-        'astral': '\uD800[\uDD40-\uDD8F]'
-    },
-    {
-        'name': 'InAncient_Symbols',
-        'astral': '\uD800[\uDD90-\uDDCF]'
-    },
-    {
-        'name': 'InArabic',
-        'bmp': '\u0600-\u06FF'
-    },
-    {
-        'name': 'InArabic_Extended_A',
-        'bmp': '\u08A0-\u08FF'
-    },
-    {
-        'name': 'InArabic_Mathematical_Alphabetic_Symbols',
-        'astral': '\uD83B[\uDE00-\uDEFF]'
-    },
-    {
-        'name': 'InArabic_Presentation_Forms_A',
-        'bmp': '\uFB50-\uFDFF'
-    },
-    {
-        'name': 'InArabic_Presentation_Forms_B',
-        'bmp': '\uFE70-\uFEFF'
-    },
-    {
-        'name': 'InArabic_Supplement',
-        'bmp': '\u0750-\u077F'
-    },
-    {
-        'name': 'InArmenian',
-        'bmp': '\u0530-\u058F'
-    },
-    {
-        'name': 'InArrows',
-        'bmp': '\u2190-\u21FF'
-    },
-    {
-        'name': 'InAvestan',
-        'astral': '\uD802[\uDF00-\uDF3F]'
-    },
-    {
-        'name': 'InBalinese',
-        'bmp': '\u1B00-\u1B7F'
-    },
-    {
-        'name': 'InBamum',
-        'bmp': '\uA6A0-\uA6FF'
-    },
-    {
-        'name': 'InBamum_Supplement',
-        'astral': '\uD81A[\uDC00-\uDE3F]'
-    },
-    {
-        'name': 'InBasic_Latin',
-        'bmp': '\0-\x7F'
-    },
-    {
-        'name': 'InBassa_Vah',
-        'astral': '\uD81A[\uDED0-\uDEFF]'
-    },
-    {
-        'name': 'InBatak',
-        'bmp': '\u1BC0-\u1BFF'
-    },
-    {
-        'name': 'InBengali',
-        'bmp': '\u0980-\u09FF'
-    },
-    {
-        'name': 'InBhaiksuki',
-        'astral': '\uD807[\uDC00-\uDC6F]'
-    },
-    {
-        'name': 'InBlock_Elements',
-        'bmp': '\u2580-\u259F'
-    },
-    {
-        'name': 'InBopomofo',
-        'bmp': '\u3100-\u312F'
-    },
-    {
-        'name': 'InBopomofo_Extended',
-        'bmp': '\u31A0-\u31BF'
-    },
-    {
-        'name': 'InBox_Drawing',
-        'bmp': '\u2500-\u257F'
-    },
-    {
-        'name': 'InBrahmi',
-        'astral': '\uD804[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InBraille_Patterns',
-        'bmp': '\u2800-\u28FF'
-    },
-    {
-        'name': 'InBuginese',
-        'bmp': '\u1A00-\u1A1F'
-    },
-    {
-        'name': 'InBuhid',
-        'bmp': '\u1740-\u175F'
-    },
-    {
-        'name': 'InByzantine_Musical_Symbols',
-        'astral': '\uD834[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InCJK_Compatibility',
-        'bmp': '\u3300-\u33FF'
-    },
-    {
-        'name': 'InCJK_Compatibility_Forms',
-        'bmp': '\uFE30-\uFE4F'
-    },
-    {
-        'name': 'InCJK_Compatibility_Ideographs',
-        'bmp': '\uF900-\uFAFF'
-    },
-    {
-        'name': 'InCJK_Compatibility_Ideographs_Supplement',
-        'astral': '\uD87E[\uDC00-\uDE1F]'
-    },
-    {
-        'name': 'InCJK_Radicals_Supplement',
-        'bmp': '\u2E80-\u2EFF'
-    },
-    {
-        'name': 'InCJK_Strokes',
-        'bmp': '\u31C0-\u31EF'
-    },
-    {
-        'name': 'InCJK_Symbols_And_Punctuation',
-        'bmp': '\u3000-\u303F'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs',
-        'bmp': '\u4E00-\u9FFF'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_A',
-        'bmp': '\u3400-\u4DBF'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_B',
-        'astral': '[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_C',
-        'astral': '\uD869[\uDF00-\uDFFF]|[\uD86A-\uD86C][\uDC00-\uDFFF]|\uD86D[\uDC00-\uDF3F]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_D',
-        'astral': '\uD86D[\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1F]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_E',
-        'astral': '\uD86E[\uDC20-\uDFFF]|[\uD86F-\uD872][\uDC00-\uDFFF]|\uD873[\uDC00-\uDEAF]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_F',
-        'astral': '\uD873[\uDEB0-\uDFFF]|[\uD874-\uD879][\uDC00-\uDFFF]|\uD87A[\uDC00-\uDFEF]'
-    },
-    {
-        'name': 'InCarian',
-        'astral': '\uD800[\uDEA0-\uDEDF]'
-    },
-    {
-        'name': 'InCaucasian_Albanian',
-        'astral': '\uD801[\uDD30-\uDD6F]'
-    },
-    {
-        'name': 'InChakma',
-        'astral': '\uD804[\uDD00-\uDD4F]'
-    },
-    {
-        'name': 'InCham',
-        'bmp': '\uAA00-\uAA5F'
-    },
-    {
-        'name': 'InCherokee',
-        'bmp': '\u13A0-\u13FF'
-    },
-    {
-        'name': 'InCherokee_Supplement',
-        'bmp': '\uAB70-\uABBF'
-    },
-    {
-        'name': 'InChess_Symbols',
-        'astral': '\uD83E[\uDE00-\uDE6F]'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks',
-        'bmp': '\u0300-\u036F'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_Extended',
-        'bmp': '\u1AB0-\u1AFF'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_For_Symbols',
-        'bmp': '\u20D0-\u20FF'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_Supplement',
-        'bmp': '\u1DC0-\u1DFF'
-    },
-    {
-        'name': 'InCombining_Half_Marks',
-        'bmp': '\uFE20-\uFE2F'
-    },
-    {
-        'name': 'InCommon_Indic_Number_Forms',
-        'bmp': '\uA830-\uA83F'
-    },
-    {
-        'name': 'InControl_Pictures',
-        'bmp': '\u2400-\u243F'
-    },
-    {
-        'name': 'InCoptic',
-        'bmp': '\u2C80-\u2CFF'
-    },
-    {
-        'name': 'InCoptic_Epact_Numbers',
-        'astral': '\uD800[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InCounting_Rod_Numerals',
-        'astral': '\uD834[\uDF60-\uDF7F]'
-    },
-    {
-        'name': 'InCuneiform',
-        'astral': '\uD808[\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InCuneiform_Numbers_And_Punctuation',
-        'astral': '\uD809[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InCurrency_Symbols',
-        'bmp': '\u20A0-\u20CF'
-    },
-    {
-        'name': 'InCypriot_Syllabary',
-        'astral': '\uD802[\uDC00-\uDC3F]'
-    },
-    {
-        'name': 'InCyrillic',
-        'bmp': '\u0400-\u04FF'
-    },
-    {
-        'name': 'InCyrillic_Extended_A',
-        'bmp': '\u2DE0-\u2DFF'
-    },
-    {
-        'name': 'InCyrillic_Extended_B',
-        'bmp': '\uA640-\uA69F'
-    },
-    {
-        'name': 'InCyrillic_Extended_C',
-        'bmp': '\u1C80-\u1C8F'
-    },
-    {
-        'name': 'InCyrillic_Supplement',
-        'bmp': '\u0500-\u052F'
-    },
-    {
-        'name': 'InDeseret',
-        'astral': '\uD801[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InDevanagari',
-        'bmp': '\u0900-\u097F'
-    },
-    {
-        'name': 'InDevanagari_Extended',
-        'bmp': '\uA8E0-\uA8FF'
-    },
-    {
-        'name': 'InDingbats',
-        'bmp': '\u2700-\u27BF'
-    },
-    {
-        'name': 'InDogra',
-        'astral': '\uD806[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InDomino_Tiles',
-        'astral': '\uD83C[\uDC30-\uDC9F]'
-    },
-    {
-        'name': 'InDuployan',
-        'astral': '\uD82F[\uDC00-\uDC9F]'
-    },
-    {
-        'name': 'InEarly_Dynastic_Cuneiform',
-        'astral': '\uD809[\uDC80-\uDD4F]'
-    },
-    {
-        'name': 'InEgyptian_Hieroglyphs',
-        'astral': '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InElbasan',
-        'astral': '\uD801[\uDD00-\uDD2F]'
-    },
-    {
-        'name': 'InEmoticons',
-        'astral': '\uD83D[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InEnclosed_Alphanumeric_Supplement',
-        'astral': '\uD83C[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InEnclosed_Alphanumerics',
-        'bmp': '\u2460-\u24FF'
-    },
-    {
-        'name': 'InEnclosed_CJK_Letters_And_Months',
-        'bmp': '\u3200-\u32FF'
-    },
-    {
-        'name': 'InEnclosed_Ideographic_Supplement',
-        'astral': '\uD83C[\uDE00-\uDEFF]'
-    },
-    {
-        'name': 'InEthiopic',
-        'bmp': '\u1200-\u137F'
-    },
-    {
-        'name': 'InEthiopic_Extended',
-        'bmp': '\u2D80-\u2DDF'
-    },
-    {
-        'name': 'InEthiopic_Extended_A',
-        'bmp': '\uAB00-\uAB2F'
-    },
-    {
-        'name': 'InEthiopic_Supplement',
-        'bmp': '\u1380-\u139F'
-    },
-    {
-        'name': 'InGeneral_Punctuation',
-        'bmp': '\u2000-\u206F'
-    },
-    {
-        'name': 'InGeometric_Shapes',
-        'bmp': '\u25A0-\u25FF'
-    },
-    {
-        'name': 'InGeometric_Shapes_Extended',
-        'astral': '\uD83D[\uDF80-\uDFFF]'
-    },
-    {
-        'name': 'InGeorgian',
-        'bmp': '\u10A0-\u10FF'
-    },
-    {
-        'name': 'InGeorgian_Extended',
-        'bmp': '\u1C90-\u1CBF'
-    },
-    {
-        'name': 'InGeorgian_Supplement',
-        'bmp': '\u2D00-\u2D2F'
-    },
-    {
-        'name': 'InGlagolitic',
-        'bmp': '\u2C00-\u2C5F'
-    },
-    {
-        'name': 'InGlagolitic_Supplement',
-        'astral': '\uD838[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InGothic',
-        'astral': '\uD800[\uDF30-\uDF4F]'
-    },
-    {
-        'name': 'InGrantha',
-        'astral': '\uD804[\uDF00-\uDF7F]'
-    },
-    {
-        'name': 'InGreek_And_Coptic',
-        'bmp': '\u0370-\u03FF'
-    },
-    {
-        'name': 'InGreek_Extended',
-        'bmp': '\u1F00-\u1FFF'
-    },
-    {
-        'name': 'InGujarati',
-        'bmp': '\u0A80-\u0AFF'
-    },
-    {
-        'name': 'InGunjala_Gondi',
-        'astral': '\uD807[\uDD60-\uDDAF]'
-    },
-    {
-        'name': 'InGurmukhi',
-        'bmp': '\u0A00-\u0A7F'
-    },
-    {
-        'name': 'InHalfwidth_And_Fullwidth_Forms',
-        'bmp': '\uFF00-\uFFEF'
-    },
-    {
-        'name': 'InHangul_Compatibility_Jamo',
-        'bmp': '\u3130-\u318F'
-    },
-    {
-        'name': 'InHangul_Jamo',
-        'bmp': '\u1100-\u11FF'
-    },
-    {
-        'name': 'InHangul_Jamo_Extended_A',
-        'bmp': '\uA960-\uA97F'
-    },
-    {
-        'name': 'InHangul_Jamo_Extended_B',
-        'bmp': '\uD7B0-\uD7FF'
-    },
-    {
-        'name': 'InHangul_Syllables',
-        'bmp': '\uAC00-\uD7AF'
-    },
-    {
-        'name': 'InHanifi_Rohingya',
-        'astral': '\uD803[\uDD00-\uDD3F]'
-    },
-    {
-        'name': 'InHanunoo',
-        'bmp': '\u1720-\u173F'
-    },
-    {
-        'name': 'InHatran',
-        'astral': '\uD802[\uDCE0-\uDCFF]'
-    },
-    {
-        'name': 'InHebrew',
-        'bmp': '\u0590-\u05FF'
-    },
-    {
-        'name': 'InHigh_Private_Use_Surrogates',
-        'bmp': '\uDB80-\uDBFF'
-    },
-    {
-        'name': 'InHigh_Surrogates',
-        'bmp': '\uD800-\uDB7F'
-    },
-    {
-        'name': 'InHiragana',
-        'bmp': '\u3040-\u309F'
-    },
-    {
-        'name': 'InIPA_Extensions',
-        'bmp': '\u0250-\u02AF'
-    },
-    {
-        'name': 'InIdeographic_Description_Characters',
-        'bmp': '\u2FF0-\u2FFF'
-    },
-    {
-        'name': 'InIdeographic_Symbols_And_Punctuation',
-        'astral': '\uD81B[\uDFE0-\uDFFF]'
-    },
-    {
-        'name': 'InImperial_Aramaic',
-        'astral': '\uD802[\uDC40-\uDC5F]'
-    },
-    {
-        'name': 'InIndic_Siyaq_Numbers',
-        'astral': '\uD83B[\uDC70-\uDCBF]'
-    },
-    {
-        'name': 'InInscriptional_Pahlavi',
-        'astral': '\uD802[\uDF60-\uDF7F]'
-    },
-    {
-        'name': 'InInscriptional_Parthian',
-        'astral': '\uD802[\uDF40-\uDF5F]'
-    },
-    {
-        'name': 'InJavanese',
-        'bmp': '\uA980-\uA9DF'
-    },
-    {
-        'name': 'InKaithi',
-        'astral': '\uD804[\uDC80-\uDCCF]'
-    },
-    {
-        'name': 'InKana_Extended_A',
-        'astral': '\uD82C[\uDD00-\uDD2F]'
-    },
-    {
-        'name': 'InKana_Supplement',
-        'astral': '\uD82C[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InKanbun',
-        'bmp': '\u3190-\u319F'
-    },
-    {
-        'name': 'InKangxi_Radicals',
-        'bmp': '\u2F00-\u2FDF'
-    },
-    {
-        'name': 'InKannada',
-        'bmp': '\u0C80-\u0CFF'
-    },
-    {
-        'name': 'InKatakana',
-        'bmp': '\u30A0-\u30FF'
-    },
-    {
-        'name': 'InKatakana_Phonetic_Extensions',
-        'bmp': '\u31F0-\u31FF'
-    },
-    {
-        'name': 'InKayah_Li',
-        'bmp': '\uA900-\uA92F'
-    },
-    {
-        'name': 'InKharoshthi',
-        'astral': '\uD802[\uDE00-\uDE5F]'
-    },
-    {
-        'name': 'InKhmer',
-        'bmp': '\u1780-\u17FF'
-    },
-    {
-        'name': 'InKhmer_Symbols',
-        'bmp': '\u19E0-\u19FF'
-    },
-    {
-        'name': 'InKhojki',
-        'astral': '\uD804[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InKhudawadi',
-        'astral': '\uD804[\uDEB0-\uDEFF]'
-    },
-    {
-        'name': 'InLao',
-        'bmp': '\u0E80-\u0EFF'
-    },
-    {
-        'name': 'InLatin_1_Supplement',
-        'bmp': '\x80-\xFF'
-    },
-    {
-        'name': 'InLatin_Extended_A',
-        'bmp': '\u0100-\u017F'
-    },
-    {
-        'name': 'InLatin_Extended_Additional',
-        'bmp': '\u1E00-\u1EFF'
-    },
-    {
-        'name': 'InLatin_Extended_B',
-        'bmp': '\u0180-\u024F'
-    },
-    {
-        'name': 'InLatin_Extended_C',
-        'bmp': '\u2C60-\u2C7F'
-    },
-    {
-        'name': 'InLatin_Extended_D',
-        'bmp': '\uA720-\uA7FF'
-    },
-    {
-        'name': 'InLatin_Extended_E',
-        'bmp': '\uAB30-\uAB6F'
-    },
-    {
-        'name': 'InLepcha',
-        'bmp': '\u1C00-\u1C4F'
-    },
-    {
-        'name': 'InLetterlike_Symbols',
-        'bmp': '\u2100-\u214F'
-    },
-    {
-        'name': 'InLimbu',
-        'bmp': '\u1900-\u194F'
-    },
-    {
-        'name': 'InLinear_A',
-        'astral': '\uD801[\uDE00-\uDF7F]'
-    },
-    {
-        'name': 'InLinear_B_Ideograms',
-        'astral': '\uD800[\uDC80-\uDCFF]'
-    },
-    {
-        'name': 'InLinear_B_Syllabary',
-        'astral': '\uD800[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InLisu',
-        'bmp': '\uA4D0-\uA4FF'
-    },
-    {
-        'name': 'InLow_Surrogates',
-        'bmp': '\uDC00-\uDFFF'
-    },
-    {
-        'name': 'InLycian',
-        'astral': '\uD800[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'InLydian',
-        'astral': '\uD802[\uDD20-\uDD3F]'
-    },
-    {
-        'name': 'InMahajani',
-        'astral': '\uD804[\uDD50-\uDD7F]'
-    },
-    {
-        'name': 'InMahjong_Tiles',
-        'astral': '\uD83C[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InMakasar',
-        'astral': '\uD807[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InMalayalam',
-        'bmp': '\u0D00-\u0D7F'
-    },
-    {
-        'name': 'InMandaic',
-        'bmp': '\u0840-\u085F'
-    },
-    {
-        'name': 'InManichaean',
-        'astral': '\uD802[\uDEC0-\uDEFF]'
-    },
-    {
-        'name': 'InMarchen',
-        'astral': '\uD807[\uDC70-\uDCBF]'
-    },
-    {
-        'name': 'InMasaram_Gondi',
-        'astral': '\uD807[\uDD00-\uDD5F]'
-    },
-    {
-        'name': 'InMathematical_Alphanumeric_Symbols',
-        'astral': '\uD835[\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InMathematical_Operators',
-        'bmp': '\u2200-\u22FF'
-    },
-    {
-        'name': 'InMayan_Numerals',
-        'astral': '\uD834[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InMedefaidrin',
-        'astral': '\uD81B[\uDE40-\uDE9F]'
-    },
-    {
-        'name': 'InMeetei_Mayek',
-        'bmp': '\uABC0-\uABFF'
-    },
-    {
-        'name': 'InMeetei_Mayek_Extensions',
-        'bmp': '\uAAE0-\uAAFF'
-    },
-    {
-        'name': 'InMende_Kikakui',
-        'astral': '\uD83A[\uDC00-\uDCDF]'
-    },
-    {
-        'name': 'InMeroitic_Cursive',
-        'astral': '\uD802[\uDDA0-\uDDFF]'
-    },
-    {
-        'name': 'InMeroitic_Hieroglyphs',
-        'astral': '\uD802[\uDD80-\uDD9F]'
-    },
-    {
-        'name': 'InMiao',
-        'astral': '\uD81B[\uDF00-\uDF9F]'
-    },
-    {
-        'name': 'InMiscellaneous_Mathematical_Symbols_A',
-        'bmp': '\u27C0-\u27EF'
-    },
-    {
-        'name': 'InMiscellaneous_Mathematical_Symbols_B',
-        'bmp': '\u2980-\u29FF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols',
-        'bmp': '\u2600-\u26FF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols_And_Arrows',
-        'bmp': '\u2B00-\u2BFF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols_And_Pictographs',
-        'astral': '\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF]'
-    },
-    {
-        'name': 'InMiscellaneous_Technical',
-        'bmp': '\u2300-\u23FF'
-    },
-    {
-        'name': 'InModi',
-        'astral': '\uD805[\uDE00-\uDE5F]'
-    },
-    {
-        'name': 'InModifier_Tone_Letters',
-        'bmp': '\uA700-\uA71F'
-    },
-    {
-        'name': 'InMongolian',
-        'bmp': '\u1800-\u18AF'
-    },
-    {
-        'name': 'InMongolian_Supplement',
-        'astral': '\uD805[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InMro',
-        'astral': '\uD81A[\uDE40-\uDE6F]'
-    },
-    {
-        'name': 'InMultani',
-        'astral': '\uD804[\uDE80-\uDEAF]'
-    },
-    {
-        'name': 'InMusical_Symbols',
-        'astral': '\uD834[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InMyanmar',
-        'bmp': '\u1000-\u109F'
-    },
-    {
-        'name': 'InMyanmar_Extended_A',
-        'bmp': '\uAA60-\uAA7F'
-    },
-    {
-        'name': 'InMyanmar_Extended_B',
-        'bmp': '\uA9E0-\uA9FF'
-    },
-    {
-        'name': 'InNKo',
-        'bmp': '\u07C0-\u07FF'
-    },
-    {
-        'name': 'InNabataean',
-        'astral': '\uD802[\uDC80-\uDCAF]'
-    },
-    {
-        'name': 'InNew_Tai_Lue',
-        'bmp': '\u1980-\u19DF'
-    },
-    {
-        'name': 'InNewa',
-        'astral': '\uD805[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InNumber_Forms',
-        'bmp': '\u2150-\u218F'
-    },
-    {
-        'name': 'InNushu',
-        'astral': '\uD82C[\uDD70-\uDEFF]'
-    },
-    {
-        'name': 'InOgham',
-        'bmp': '\u1680-\u169F'
-    },
-    {
-        'name': 'InOl_Chiki',
-        'bmp': '\u1C50-\u1C7F'
-    },
-    {
-        'name': 'InOld_Hungarian',
-        'astral': '\uD803[\uDC80-\uDCFF]'
-    },
-    {
-        'name': 'InOld_Italic',
-        'astral': '\uD800[\uDF00-\uDF2F]'
-    },
-    {
-        'name': 'InOld_North_Arabian',
-        'astral': '\uD802[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'InOld_Permic',
-        'astral': '\uD800[\uDF50-\uDF7F]'
-    },
-    {
-        'name': 'InOld_Persian',
-        'astral': '\uD800[\uDFA0-\uDFDF]'
-    },
-    {
-        'name': 'InOld_Sogdian',
-        'astral': '\uD803[\uDF00-\uDF2F]'
-    },
-    {
-        'name': 'InOld_South_Arabian',
-        'astral': '\uD802[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InOld_Turkic',
-        'astral': '\uD803[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InOptical_Character_Recognition',
-        'bmp': '\u2440-\u245F'
-    },
-    {
-        'name': 'InOriya',
-        'bmp': '\u0B00-\u0B7F'
-    },
-    {
-        'name': 'InOrnamental_Dingbats',
-        'astral': '\uD83D[\uDE50-\uDE7F]'
-    },
-    {
-        'name': 'InOsage',
-        'astral': '\uD801[\uDCB0-\uDCFF]'
-    },
-    {
-        'name': 'InOsmanya',
-        'astral': '\uD801[\uDC80-\uDCAF]'
-    },
-    {
-        'name': 'InPahawh_Hmong',
-        'astral': '\uD81A[\uDF00-\uDF8F]'
-    },
-    {
-        'name': 'InPalmyrene',
-        'astral': '\uD802[\uDC60-\uDC7F]'
-    },
-    {
-        'name': 'InPau_Cin_Hau',
-        'astral': '\uD806[\uDEC0-\uDEFF]'
-    },
-    {
-        'name': 'InPhags_Pa',
-        'bmp': '\uA840-\uA87F'
-    },
-    {
-        'name': 'InPhaistos_Disc',
-        'astral': '\uD800[\uDDD0-\uDDFF]'
-    },
-    {
-        'name': 'InPhoenician',
-        'astral': '\uD802[\uDD00-\uDD1F]'
-    },
-    {
-        'name': 'InPhonetic_Extensions',
-        'bmp': '\u1D00-\u1D7F'
-    },
-    {
-        'name': 'InPhonetic_Extensions_Supplement',
-        'bmp': '\u1D80-\u1DBF'
-    },
-    {
-        'name': 'InPlaying_Cards',
-        'astral': '\uD83C[\uDCA0-\uDCFF]'
-    },
-    {
-        'name': 'InPrivate_Use_Area',
-        'bmp': '\uE000-\uF8FF'
-    },
-    {
-        'name': 'InPsalter_Pahlavi',
-        'astral': '\uD802[\uDF80-\uDFAF]'
-    },
-    {
-        'name': 'InRejang',
-        'bmp': '\uA930-\uA95F'
-    },
-    {
-        'name': 'InRumi_Numeral_Symbols',
-        'astral': '\uD803[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InRunic',
-        'bmp': '\u16A0-\u16FF'
-    },
-    {
-        'name': 'InSamaritan',
-        'bmp': '\u0800-\u083F'
-    },
-    {
-        'name': 'InSaurashtra',
-        'bmp': '\uA880-\uA8DF'
-    },
-    {
-        'name': 'InSharada',
-        'astral': '\uD804[\uDD80-\uDDDF]'
-    },
-    {
-        'name': 'InShavian',
-        'astral': '\uD801[\uDC50-\uDC7F]'
-    },
-    {
-        'name': 'InShorthand_Format_Controls',
-        'astral': '\uD82F[\uDCA0-\uDCAF]'
-    },
-    {
-        'name': 'InSiddham',
-        'astral': '\uD805[\uDD80-\uDDFF]'
-    },
-    {
-        'name': 'InSinhala',
-        'bmp': '\u0D80-\u0DFF'
-    },
-    {
-        'name': 'InSinhala_Archaic_Numbers',
-        'astral': '\uD804[\uDDE0-\uDDFF]'
-    },
-    {
-        'name': 'InSmall_Form_Variants',
-        'bmp': '\uFE50-\uFE6F'
-    },
-    {
-        'name': 'InSogdian',
-        'astral': '\uD803[\uDF30-\uDF6F]'
-    },
-    {
-        'name': 'InSora_Sompeng',
-        'astral': '\uD804[\uDCD0-\uDCFF]'
-    },
-    {
-        'name': 'InSoyombo',
-        'astral': '\uD806[\uDE50-\uDEAF]'
-    },
-    {
-        'name': 'InSpacing_Modifier_Letters',
-        'bmp': '\u02B0-\u02FF'
-    },
-    {
-        'name': 'InSpecials',
-        'bmp': '\uFFF0-\uFFFF'
-    },
-    {
-        'name': 'InSundanese',
-        'bmp': '\u1B80-\u1BBF'
-    },
-    {
-        'name': 'InSundanese_Supplement',
-        'bmp': '\u1CC0-\u1CCF'
-    },
-    {
-        'name': 'InSuperscripts_And_Subscripts',
-        'bmp': '\u2070-\u209F'
-    },
-    {
-        'name': 'InSupplemental_Arrows_A',
-        'bmp': '\u27F0-\u27FF'
-    },
-    {
-        'name': 'InSupplemental_Arrows_B',
-        'bmp': '\u2900-\u297F'
-    },
-    {
-        'name': 'InSupplemental_Arrows_C',
-        'astral': '\uD83E[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InSupplemental_Mathematical_Operators',
-        'bmp': '\u2A00-\u2AFF'
-    },
-    {
-        'name': 'InSupplemental_Punctuation',
-        'bmp': '\u2E00-\u2E7F'
-    },
-    {
-        'name': 'InSupplemental_Symbols_And_Pictographs',
-        'astral': '\uD83E[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InSupplementary_Private_Use_Area_A',
-        'astral': '[\uDB80-\uDBBF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InSupplementary_Private_Use_Area_B',
-        'astral': '[\uDBC0-\uDBFF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InSutton_SignWriting',
-        'astral': '\uD836[\uDC00-\uDEAF]'
-    },
-    {
-        'name': 'InSyloti_Nagri',
-        'bmp': '\uA800-\uA82F'
-    },
-    {
-        'name': 'InSyriac',
-        'bmp': '\u0700-\u074F'
-    },
-    {
-        'name': 'InSyriac_Supplement',
-        'bmp': '\u0860-\u086F'
-    },
-    {
-        'name': 'InTagalog',
-        'bmp': '\u1700-\u171F'
-    },
-    {
-        'name': 'InTagbanwa',
-        'bmp': '\u1760-\u177F'
-    },
-    {
-        'name': 'InTags',
-        'astral': '\uDB40[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InTai_Le',
-        'bmp': '\u1950-\u197F'
-    },
-    {
-        'name': 'InTai_Tham',
-        'bmp': '\u1A20-\u1AAF'
-    },
-    {
-        'name': 'InTai_Viet',
-        'bmp': '\uAA80-\uAADF'
-    },
-    {
-        'name': 'InTai_Xuan_Jing_Symbols',
-        'astral': '\uD834[\uDF00-\uDF5F]'
-    },
-    {
-        'name': 'InTakri',
-        'astral': '\uD805[\uDE80-\uDECF]'
-    },
-    {
-        'name': 'InTamil',
-        'bmp': '\u0B80-\u0BFF'
-    },
-    {
-        'name': 'InTangut',
-        'astral': '[\uD81C-\uD821][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InTangut_Components',
-        'astral': '\uD822[\uDC00-\uDEFF]'
-    },
-    {
-        'name': 'InTelugu',
-        'bmp': '\u0C00-\u0C7F'
-    },
-    {
-        'name': 'InThaana',
-        'bmp': '\u0780-\u07BF'
-    },
-    {
-        'name': 'InThai',
-        'bmp': '\u0E00-\u0E7F'
-    },
-    {
-        'name': 'InTibetan',
-        'bmp': '\u0F00-\u0FFF'
-    },
-    {
-        'name': 'InTifinagh',
-        'bmp': '\u2D30-\u2D7F'
-    },
-    {
-        'name': 'InTirhuta',
-        'astral': '\uD805[\uDC80-\uDCDF]'
-    },
-    {
-        'name': 'InTransport_And_Map_Symbols',
-        'astral': '\uD83D[\uDE80-\uDEFF]'
-    },
-    {
-        'name': 'InUgaritic',
-        'astral': '\uD800[\uDF80-\uDF9F]'
-    },
-    {
-        'name': 'InUnified_Canadian_Aboriginal_Syllabics',
-        'bmp': '\u1400-\u167F'
-    },
-    {
-        'name': 'InUnified_Canadian_Aboriginal_Syllabics_Extended',
-        'bmp': '\u18B0-\u18FF'
-    },
-    {
-        'name': 'InVai',
-        'bmp': '\uA500-\uA63F'
-    },
-    {
-        'name': 'InVariation_Selectors',
-        'bmp': '\uFE00-\uFE0F'
-    },
-    {
-        'name': 'InVariation_Selectors_Supplement',
-        'astral': '\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'InVedic_Extensions',
-        'bmp': '\u1CD0-\u1CFF'
-    },
-    {
-        'name': 'InVertical_Forms',
-        'bmp': '\uFE10-\uFE1F'
-    },
-    {
-        'name': 'InWarang_Citi',
-        'astral': '\uD806[\uDCA0-\uDCFF]'
-    },
-    {
-        'name': 'InYi_Radicals',
-        'bmp': '\uA490-\uA4CF'
-    },
-    {
-        'name': 'InYi_Syllables',
-        'bmp': '\uA000-\uA48F'
-    },
-    {
-        'name': 'InYijing_Hexagram_Symbols',
-        'bmp': '\u4DC0-\u4DFF'
-    },
-    {
-        'name': 'InZanabazar_Square',
-        'astral': '\uD806[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'Inundefined',
-        'astral': '\uD803[\uDFE0-\uDFFF]|\uD806[\uDDA0-\uDDFF]|\uD807[\uDFC0-\uDFFF]|\uD80D[\uDC30-\uDC3F]|\uD82C[\uDD30-\uDD6F]|\uD838[\uDD00-\uDD4F\uDEC0-\uDEFF]|\uD83B[\uDD00-\uDD4F]|\uD83E[\uDE70-\uDEFF]'
-    }
-];
diff --git a/node_modules/xregexp/tools/output/categories.js b/node_modules/xregexp/tools/output/categories.js
deleted file mode 100644
index ec4e0f8..0000000
--- a/node_modules/xregexp/tools/output/categories.js
+++ /dev/null
@@ -1,217 +0,0 @@
-module.exports = [
-    {
-        'name': 'C',
-        'alias': 'Other',
-        'isBmpLast': true,
-        'bmp': '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08BE-\u08D2\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D04\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E50-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u4DB6-\u4DBF\u9FF0-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7C7-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB68-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF',
-        'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCBD\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD47-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC60-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD00-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE4-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD6D-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED6-\uDEDF\uDEED-\uDEEF\uDEFB-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C\uDD72\uDD77-\uDD79\uDDA3\uDDA4\uDDAB-\uDDAD\uDDCB\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE74-\uDE77\uDE7B-\uDE7F\uDE83-\uDE8F\uDE96-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]'
-    },
-    {
-        'name': 'Cc',
-        'alias': 'Control',
-        'bmp': '\0-\x1F\x7F-\x9F'
-    },
-    {
-        'name': 'Cf',
-        'alias': 'Format',
-        'bmp': '\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB',
-        'astral': '\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]'
-    },
-    {
-        'name': 'Cn',
-        'alias': 'Unassigned',
-        'bmp': '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u061D\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08BE-\u08D2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D04\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E50-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u4DB6-\u4DBF\u9FF0-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7C7-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB68-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF',
-        'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCC2-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD47-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC60-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD00-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE4-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD6D-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED6-\uDEDF\uDEED-\uDEEF\uDEFB-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C\uDD72\uDD77-\uDD79\uDDA3\uDDA4\uDDAB-\uDDAD\uDDCB\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE74-\uDE77\uDE7B-\uDE7F\uDE83-\uDE8F\uDE96-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]'
-    },
-    {
-        'name': 'Co',
-        'alias': 'Private_Use',
-        'bmp': '\uE000-\uF8FF',
-        'astral': '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]'
-    },
-    {
-        'name': 'Cs',
-        'alias': 'Surrogate',
-        'bmp': '\uD800-\uDFFF'
-    },
-    {
-        'name': 'L',
-        'alias': 'Letter',
-        'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'LC',
-        'alias': 'Cased_Letter',
-        'bmp': 'A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7BF\uA7C2-\uA7C6\uA7FA\uAB30-\uAB5A\uAB60-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDD00-\uDD43]'
-    },
-    {
-        'name': 'Ll',
-        'alias': 'Lowercase_Letter',
-        'bmp': 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7FA\uAB30-\uAB5A\uAB60-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]'
-    },
-    {
-        'name': 'Lm',
-        'alias': 'Modifier_Letter',
-        'bmp': '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E\uFF9F',
-        'astral': '\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD838[\uDD37-\uDD3D]|\uD83A\uDD4B'
-    },
-    {
-        'name': 'Lo',
-        'alias': 'Other_Letter',
-        'bmp': '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD838[\uDD00-\uDD2C\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Lt',
-        'alias': 'Titlecase_Letter',
-        'bmp': '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC'
-    },
-    {
-        'name': 'Lu',
-        'alias': 'Uppercase_Letter',
-        'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C6\uFF21-\uFF3A',
-        'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]'
-    },
-    {
-        'name': 'M',
-        'alias': 'Mark',
-        'bmp': '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F',
-        'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'Mc',
-        'alias': 'Spacing_Mark',
-        'bmp': '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC',
-        'astral': '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]'
-    },
-    {
-        'name': 'Me',
-        'alias': 'Enclosing_Mark',
-        'bmp': '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672'
-    },
-    {
-        'name': 'Mn',
-        'alias': 'Nonspacing_Mark',
-        'bmp': '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F',
-        'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDF46-\uDF50]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'N',
-        'alias': 'Number',
-        'bmp': '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19',
-        'astral': '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]'
-    },
-    {
-        'name': 'Nd',
-        'alias': 'Decimal_Number',
-        'bmp': '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19',
-        'astral': '\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]'
-    },
-    {
-        'name': 'Nl',
-        'alias': 'Letter_Number',
-        'bmp': '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF',
-        'astral': '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]'
-    },
-    {
-        'name': 'No',
-        'alias': 'Other_Number',
-        'bmp': '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835',
-        'astral': '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]'
-    },
-    {
-        'name': 'P',
-        'alias': 'Punctuation',
-        'bmp': '!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65',
-        'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Pc',
-        'alias': 'Connector_Punctuation',
-        'bmp': '_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F'
-    },
-    {
-        'name': 'Pd',
-        'alias': 'Dash_Punctuation',
-        'bmp': '\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D'
-    },
-    {
-        'name': 'Pe',
-        'alias': 'Close_Punctuation',
-        'bmp': '\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63'
-    },
-    {
-        'name': 'Pf',
-        'alias': 'Final_Punctuation',
-        'bmp': '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21'
-    },
-    {
-        'name': 'Pi',
-        'alias': 'Initial_Punctuation',
-        'bmp': '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20'
-    },
-    {
-        'name': 'Po',
-        'alias': 'Other_Punctuation',
-        'bmp': '!-#%-\'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65',
-        'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Ps',
-        'alias': 'Open_Punctuation',
-        'bmp': '\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62'
-    },
-    {
-        'name': 'S',
-        'alias': 'Symbol',
-        'bmp': '\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD',
-        'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]'
-    },
-    {
-        'name': 'Sc',
-        'alias': 'Currency_Symbol',
-        'bmp': '\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6',
-        'astral': '\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0'
-    },
-    {
-        'name': 'Sk',
-        'alias': 'Modifier_Symbol',
-        'bmp': '\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uFBB2-\uFBC1\uFF3E\uFF40\uFFE3',
-        'astral': '\uD83C[\uDFFB-\uDFFF]'
-    },
-    {
-        'name': 'Sm',
-        'alias': 'Math_Symbol',
-        'bmp': '\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC',
-        'astral': '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]'
-    },
-    {
-        'name': 'So',
-        'alias': 'Other_Symbol',
-        'bmp': '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD',
-        'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]'
-    },
-    {
-        'name': 'Z',
-        'alias': 'Separator',
-        'bmp': ' \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000'
-    },
-    {
-        'name': 'Zl',
-        'alias': 'Line_Separator',
-        'bmp': '\u2028'
-    },
-    {
-        'name': 'Zp',
-        'alias': 'Paragraph_Separator',
-        'bmp': '\u2029'
-    },
-    {
-        'name': 'Zs',
-        'alias': 'Space_Separator',
-        'bmp': ' \xA0\u1680\u2000-\u200A\u202F\u205F\u3000'
-    }
-];
diff --git a/node_modules/xregexp/tools/output/properties.js b/node_modules/xregexp/tools/output/properties.js
deleted file mode 100644
index fb73a0d..0000000
--- a/node_modules/xregexp/tools/output/properties.js
+++ /dev/null
@@ -1,41 +0,0 @@
-module.exports = [
-    {
-        'name': 'ASCII',
-        'bmp': '\0-\x7F'
-    },
-    {
-        'name': 'Alphabetic',
-        'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9-\u0AFC\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u108F\u109A-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4B\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C36\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA805\uA807-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FF\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC45\uDC82-\uDCB8\uDCD0-\uDCE8\uDD00-\uDD32\uDD44-\uDD46\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC5F\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDEB8\uDF00-\uDF1A\uDF1D-\uDF2A]|\uD806[\uDC00-\uDC38\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDDF\uDDE1\uDDE3\uDDE4\uDE00-\uDE32\uDE35-\uDE3E\uDE50-\uDE97\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD41\uDD43\uDD46\uDD47\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD96\uDD98\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Any',
-        'isBmpLast': true,
-        'bmp': '\0-\uFFFF',
-        'astral': '[\uD800-\uDBFF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'Default_Ignorable_Code_Point',
-        'bmp': '\xAD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8',
-        'astral': '\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|[\uDB40-\uDB43][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'Lowercase',
-        'bmp': 'a-z\xAA\xB5\xBA\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02B8\u02C0\u02C1\u02E0-\u02E4\u0345\u0371\u0373\u0377\u037A-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1DBF\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u2071\u207F\u2090-\u209C\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2170-\u217F\u2184\u24D0-\u24E9\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7D\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B-\uA69D\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7F8-\uA7FA\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]'
-    },
-    {
-        'name': 'Noncharacter_Code_Point',
-        'bmp': '\uFDD0-\uFDEF\uFFFE\uFFFF',
-        'astral': '[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]'
-    },
-    {
-        'name': 'Uppercase',
-        'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2160-\u216F\u2183\u24B6-\u24CF\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C6\uFF21-\uFF3A',
-        'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]'
-    },
-    {
-        'name': 'White_Space',
-        'bmp': '\t-\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000'
-    }
-];
diff --git a/node_modules/xregexp/tools/output/scripts.js b/node_modules/xregexp/tools/output/scripts.js
deleted file mode 100644
index 77dabde..0000000
--- a/node_modules/xregexp/tools/output/scripts.js
+++ /dev/null
@@ -1,622 +0,0 @@
-module.exports = [
-    {
-        'name': 'Adlam',
-        'astral': '\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Ahom',
-        'astral': '\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF3F]'
-    },
-    {
-        'name': 'Anatolian_Hieroglyphs',
-        'astral': '\uD811[\uDC00-\uDE46]'
-    },
-    {
-        'name': 'Arabic',
-        'bmp': '\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u06FF\u0750-\u077F\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u08FF\uFB50-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFD\uFE70-\uFE74\uFE76-\uFEFC',
-        'astral': '\uD803[\uDE60-\uDE7E]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]'
-    },
-    {
-        'name': 'Armenian',
-        'bmp': '\u0531-\u0556\u0559-\u0588\u058A\u058D-\u058F\uFB13-\uFB17'
-    },
-    {
-        'name': 'Avestan',
-        'astral': '\uD802[\uDF00-\uDF35\uDF39-\uDF3F]'
-    },
-    {
-        'name': 'Balinese',
-        'bmp': '\u1B00-\u1B4B\u1B50-\u1B7C'
-    },
-    {
-        'name': 'Bamum',
-        'bmp': '\uA6A0-\uA6F7',
-        'astral': '\uD81A[\uDC00-\uDE38]'
-    },
-    {
-        'name': 'Bassa_Vah',
-        'astral': '\uD81A[\uDED0-\uDEED\uDEF0-\uDEF5]'
-    },
-    {
-        'name': 'Batak',
-        'bmp': '\u1BC0-\u1BF3\u1BFC-\u1BFF'
-    },
-    {
-        'name': 'Bengali',
-        'bmp': '\u0980-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FE'
-    },
-    {
-        'name': 'Bhaiksuki',
-        'astral': '\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC45\uDC50-\uDC6C]'
-    },
-    {
-        'name': 'Bopomofo',
-        'bmp': '\u02EA\u02EB\u3105-\u312F\u31A0-\u31BA'
-    },
-    {
-        'name': 'Brahmi',
-        'astral': '\uD804[\uDC00-\uDC4D\uDC52-\uDC6F\uDC7F]'
-    },
-    {
-        'name': 'Braille',
-        'bmp': '\u2800-\u28FF'
-    },
-    {
-        'name': 'Buginese',
-        'bmp': '\u1A00-\u1A1B\u1A1E\u1A1F'
-    },
-    {
-        'name': 'Buhid',
-        'bmp': '\u1740-\u1753'
-    },
-    {
-        'name': 'Canadian_Aboriginal',
-        'bmp': '\u1400-\u167F\u18B0-\u18F5'
-    },
-    {
-        'name': 'Carian',
-        'astral': '\uD800[\uDEA0-\uDED0]'
-    },
-    {
-        'name': 'Caucasian_Albanian',
-        'astral': '\uD801[\uDD30-\uDD63\uDD6F]'
-    },
-    {
-        'name': 'Chakma',
-        'astral': '\uD804[\uDD00-\uDD34\uDD36-\uDD46]'
-    },
-    {
-        'name': 'Cham',
-        'bmp': '\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAA5F'
-    },
-    {
-        'name': 'Cherokee',
-        'bmp': '\u13A0-\u13F5\u13F8-\u13FD\uAB70-\uABBF'
-    },
-    {
-        'name': 'Common',
-        'bmp': '\0-@\\[-`\\{-\xA9\xAB-\xB9\xBB-\xBF\xD7\xF7\u02B9-\u02DF\u02E5-\u02E9\u02EC-\u02FF\u0374\u037E\u0385\u0387\u0589\u0605\u060C\u061B\u061F\u0640\u06DD\u08E2\u0964\u0965\u0E3F\u0FD5-\u0FD8\u10FB\u16EB-\u16ED\u1735\u1736\u1802\u1803\u1805\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u2000-\u200B\u200E-\u2064\u2066-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20BF\u2100-\u2125\u2127-\u2129\u212C-\u2131\u2133-\u214D\u214F-\u215F\u2189-\u218B\u2190-\u2426\u2440-\u244A\u2460-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2E00-\u2E4F\u2FF0-\u2FFB\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303C-\u303F\u309B\u309C\u30A0\u30FB\u30FC\u3190-\u319F\u31C0-\u31E3\u3220-\u325F\u327F-\u32CF\u32FF\u3358-\u33FF\u4DC0-\u4DFF\uA700-\uA721\uA788-\uA78A\uA830-\uA839\uA92E\uA9CF\uAB5B\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFF70\uFF9E\uFF9F\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD',
-        'astral': '\uD800[\uDD00-\uDD02\uDD07-\uDD33\uDD37-\uDD3F\uDD90-\uDD9B\uDDD0-\uDDFC\uDEE1-\uDEFB]|\uD81B[\uDFE2\uDFE3]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD66\uDD6A-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDEE0-\uDEF3\uDF00-\uDF56\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDFCB\uDFCE-\uDFFF]|\uD83B[\uDC71-\uDCB4\uDD01-\uDD3D]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD00-\uDD0C\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDDFF\uDE01\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]|\uDB40[\uDC01\uDC20-\uDC7F]'
-    },
-    {
-        'name': 'Coptic',
-        'bmp': '\u03E2-\u03EF\u2C80-\u2CF3\u2CF9-\u2CFF'
-    },
-    {
-        'name': 'Cuneiform',
-        'astral': '\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC70-\uDC74\uDC80-\uDD43]'
-    },
-    {
-        'name': 'Cypriot',
-        'astral': '\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F]'
-    },
-    {
-        'name': 'Cyrillic',
-        'bmp': '\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F'
-    },
-    {
-        'name': 'Deseret',
-        'astral': '\uD801[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'Devanagari',
-        'bmp': '\u0900-\u0950\u0955-\u0963\u0966-\u097F\uA8E0-\uA8FF'
-    },
-    {
-        'name': 'Dogra',
-        'astral': '\uD806[\uDC00-\uDC3B]'
-    },
-    {
-        'name': 'Duployan',
-        'astral': '\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]'
-    },
-    {
-        'name': 'Egyptian_Hieroglyphs',
-        'astral': '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E\uDC30-\uDC38]'
-    },
-    {
-        'name': 'Elbasan',
-        'astral': '\uD801[\uDD00-\uDD27]'
-    },
-    {
-        'name': 'Elymaic',
-        'astral': '\uD803[\uDFE0-\uDFF6]'
-    },
-    {
-        'name': 'Ethiopic',
-        'bmp': '\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E'
-    },
-    {
-        'name': 'Georgian',
-        'bmp': '\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u10FF\u1C90-\u1CBA\u1CBD-\u1CBF\u2D00-\u2D25\u2D27\u2D2D'
-    },
-    {
-        'name': 'Glagolitic',
-        'bmp': '\u2C00-\u2C2E\u2C30-\u2C5E',
-        'astral': '\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]'
-    },
-    {
-        'name': 'Gothic',
-        'astral': '\uD800[\uDF30-\uDF4A]'
-    },
-    {
-        'name': 'Grantha',
-        'astral': '\uD804[\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]'
-    },
-    {
-        'name': 'Greek',
-        'bmp': '\u0370-\u0373\u0375-\u0377\u037A-\u037D\u037F\u0384\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03E1\u03F0-\u03FF\u1D26-\u1D2A\u1D5D-\u1D61\u1D66-\u1D6A\u1DBF\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u2126\uAB65',
-        'astral': '\uD800[\uDD40-\uDD8E\uDDA0]|\uD834[\uDE00-\uDE45]'
-    },
-    {
-        'name': 'Gujarati',
-        'bmp': '\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9-\u0AFF'
-    },
-    {
-        'name': 'Gunjala_Gondi',
-        'astral': '\uD807[\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9]'
-    },
-    {
-        'name': 'Gurmukhi',
-        'bmp': '\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A76'
-    },
-    {
-        'name': 'Han',
-        'bmp': '\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DB5\u4E00-\u9FEF\uF900-\uFA6D\uFA70-\uFAD9',
-        'astral': '[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Hangul',
-        'bmp': '\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC'
-    },
-    {
-        'name': 'Hanifi_Rohingya',
-        'astral': '\uD803[\uDD00-\uDD27\uDD30-\uDD39]'
-    },
-    {
-        'name': 'Hanunoo',
-        'bmp': '\u1720-\u1734'
-    },
-    {
-        'name': 'Hatran',
-        'astral': '\uD802[\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDCFF]'
-    },
-    {
-        'name': 'Hebrew',
-        'bmp': '\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4F'
-    },
-    {
-        'name': 'Hiragana',
-        'bmp': '\u3041-\u3096\u309D-\u309F',
-        'astral': '\uD82C[\uDC01-\uDD1E\uDD50-\uDD52]|\uD83C\uDE00'
-    },
-    {
-        'name': 'Imperial_Aramaic',
-        'astral': '\uD802[\uDC40-\uDC55\uDC57-\uDC5F]'
-    },
-    {
-        'name': 'Inherited',
-        'bmp': '\u0300-\u036F\u0485\u0486\u064B-\u0655\u0670\u0951-\u0954\u1AB0-\u1ABE\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u20D0-\u20F0\u302A-\u302D\u3099\u309A\uFE00-\uFE0F\uFE20-\uFE2D',
-        'astral': '\uD800[\uDDFD\uDEE0]|\uD804\uDF3B|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'Inscriptional_Pahlavi',
-        'astral': '\uD802[\uDF60-\uDF72\uDF78-\uDF7F]'
-    },
-    {
-        'name': 'Inscriptional_Parthian',
-        'astral': '\uD802[\uDF40-\uDF55\uDF58-\uDF5F]'
-    },
-    {
-        'name': 'Javanese',
-        'bmp': '\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE\uA9DF'
-    },
-    {
-        'name': 'Kaithi',
-        'astral': '\uD804[\uDC80-\uDCC1\uDCCD]'
-    },
-    {
-        'name': 'Kannada',
-        'bmp': '\u0C80-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2'
-    },
-    {
-        'name': 'Katakana',
-        'bmp': '\u30A1-\u30FA\u30FD-\u30FF\u31F0-\u31FF\u32D0-\u32FE\u3300-\u3357\uFF66-\uFF6F\uFF71-\uFF9D',
-        'astral': '\uD82C[\uDC00\uDD64-\uDD67]'
-    },
-    {
-        'name': 'Kayah_Li',
-        'bmp': '\uA900-\uA92D\uA92F'
-    },
-    {
-        'name': 'Kharoshthi',
-        'astral': '\uD802[\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58]'
-    },
-    {
-        'name': 'Khmer',
-        'bmp': '\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u19E0-\u19FF'
-    },
-    {
-        'name': 'Khojki',
-        'astral': '\uD804[\uDE00-\uDE11\uDE13-\uDE3E]'
-    },
-    {
-        'name': 'Khudawadi',
-        'astral': '\uD804[\uDEB0-\uDEEA\uDEF0-\uDEF9]'
-    },
-    {
-        'name': 'Lao',
-        'bmp': '\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF'
-    },
-    {
-        'name': 'Latin',
-        'bmp': 'A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uAB66\uAB67\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A'
-    },
-    {
-        'name': 'Lepcha',
-        'bmp': '\u1C00-\u1C37\u1C3B-\u1C49\u1C4D-\u1C4F'
-    },
-    {
-        'name': 'Limbu',
-        'bmp': '\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u194F'
-    },
-    {
-        'name': 'Linear_A',
-        'astral': '\uD801[\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]'
-    },
-    {
-        'name': 'Linear_B',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA]'
-    },
-    {
-        'name': 'Lisu',
-        'bmp': '\uA4D0-\uA4FF'
-    },
-    {
-        'name': 'Lycian',
-        'astral': '\uD800[\uDE80-\uDE9C]'
-    },
-    {
-        'name': 'Lydian',
-        'astral': '\uD802[\uDD20-\uDD39\uDD3F]'
-    },
-    {
-        'name': 'Mahajani',
-        'astral': '\uD804[\uDD50-\uDD76]'
-    },
-    {
-        'name': 'Makasar',
-        'astral': '\uD807[\uDEE0-\uDEF8]'
-    },
-    {
-        'name': 'Malayalam',
-        'bmp': '\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F'
-    },
-    {
-        'name': 'Mandaic',
-        'bmp': '\u0840-\u085B\u085E'
-    },
-    {
-        'name': 'Manichaean',
-        'astral': '\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6]'
-    },
-    {
-        'name': 'Marchen',
-        'astral': '\uD807[\uDC70-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]'
-    },
-    {
-        'name': 'Masaram_Gondi',
-        'astral': '\uD807[\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]'
-    },
-    {
-        'name': 'Medefaidrin',
-        'astral': '\uD81B[\uDE40-\uDE9A]'
-    },
-    {
-        'name': 'Meetei_Mayek',
-        'bmp': '\uAAE0-\uAAF6\uABC0-\uABED\uABF0-\uABF9'
-    },
-    {
-        'name': 'Mende_Kikakui',
-        'astral': '\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]'
-    },
-    {
-        'name': 'Meroitic_Cursive',
-        'astral': '\uD802[\uDDA0-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDDFF]'
-    },
-    {
-        'name': 'Meroitic_Hieroglyphs',
-        'astral': '\uD802[\uDD80-\uDD9F]'
-    },
-    {
-        'name': 'Miao',
-        'astral': '\uD81B[\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F]'
-    },
-    {
-        'name': 'Modi',
-        'astral': '\uD805[\uDE00-\uDE44\uDE50-\uDE59]'
-    },
-    {
-        'name': 'Mongolian',
-        'bmp': '\u1800\u1801\u1804\u1806-\u180E\u1810-\u1819\u1820-\u1878\u1880-\u18AA',
-        'astral': '\uD805[\uDE60-\uDE6C]'
-    },
-    {
-        'name': 'Mro',
-        'astral': '\uD81A[\uDE40-\uDE5E\uDE60-\uDE69\uDE6E\uDE6F]'
-    },
-    {
-        'name': 'Multani',
-        'astral': '\uD804[\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA9]'
-    },
-    {
-        'name': 'Myanmar',
-        'bmp': '\u1000-\u109F\uA9E0-\uA9FE\uAA60-\uAA7F'
-    },
-    {
-        'name': 'Nabataean',
-        'astral': '\uD802[\uDC80-\uDC9E\uDCA7-\uDCAF]'
-    },
-    {
-        'name': 'Nandinagari',
-        'astral': '\uD806[\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE4]'
-    },
-    {
-        'name': 'New_Tai_Lue',
-        'bmp': '\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE\u19DF'
-    },
-    {
-        'name': 'Newa',
-        'astral': '\uD805[\uDC00-\uDC59\uDC5B\uDC5D-\uDC5F]'
-    },
-    {
-        'name': 'Nko',
-        'bmp': '\u07C0-\u07FA\u07FD-\u07FF'
-    },
-    {
-        'name': 'Nushu',
-        'astral': '\uD81B\uDFE1|\uD82C[\uDD70-\uDEFB]'
-    },
-    {
-        'name': 'Nyiakeng_Puachue_Hmong',
-        'astral': '\uD838[\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDD4F]'
-    },
-    {
-        'name': 'Ogham',
-        'bmp': '\u1680-\u169C'
-    },
-    {
-        'name': 'Ol_Chiki',
-        'bmp': '\u1C50-\u1C7F'
-    },
-    {
-        'name': 'Old_Hungarian',
-        'astral': '\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF]'
-    },
-    {
-        'name': 'Old_Italic',
-        'astral': '\uD800[\uDF00-\uDF23\uDF2D-\uDF2F]'
-    },
-    {
-        'name': 'Old_North_Arabian',
-        'astral': '\uD802[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'Old_Permic',
-        'astral': '\uD800[\uDF50-\uDF7A]'
-    },
-    {
-        'name': 'Old_Persian',
-        'astral': '\uD800[\uDFA0-\uDFC3\uDFC8-\uDFD5]'
-    },
-    {
-        'name': 'Old_Sogdian',
-        'astral': '\uD803[\uDF00-\uDF27]'
-    },
-    {
-        'name': 'Old_South_Arabian',
-        'astral': '\uD802[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'Old_Turkic',
-        'astral': '\uD803[\uDC00-\uDC48]'
-    },
-    {
-        'name': 'Oriya',
-        'bmp': '\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77'
-    },
-    {
-        'name': 'Osage',
-        'astral': '\uD801[\uDCB0-\uDCD3\uDCD8-\uDCFB]'
-    },
-    {
-        'name': 'Osmanya',
-        'astral': '\uD801[\uDC80-\uDC9D\uDCA0-\uDCA9]'
-    },
-    {
-        'name': 'Pahawh_Hmong',
-        'astral': '\uD81A[\uDF00-\uDF45\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]'
-    },
-    {
-        'name': 'Palmyrene',
-        'astral': '\uD802[\uDC60-\uDC7F]'
-    },
-    {
-        'name': 'Pau_Cin_Hau',
-        'astral': '\uD806[\uDEC0-\uDEF8]'
-    },
-    {
-        'name': 'Phags_Pa',
-        'bmp': '\uA840-\uA877'
-    },
-    {
-        'name': 'Phoenician',
-        'astral': '\uD802[\uDD00-\uDD1B\uDD1F]'
-    },
-    {
-        'name': 'Psalter_Pahlavi',
-        'astral': '\uD802[\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]'
-    },
-    {
-        'name': 'Rejang',
-        'bmp': '\uA930-\uA953\uA95F'
-    },
-    {
-        'name': 'Runic',
-        'bmp': '\u16A0-\u16EA\u16EE-\u16F8'
-    },
-    {
-        'name': 'Samaritan',
-        'bmp': '\u0800-\u082D\u0830-\u083E'
-    },
-    {
-        'name': 'Saurashtra',
-        'bmp': '\uA880-\uA8C5\uA8CE-\uA8D9'
-    },
-    {
-        'name': 'Sharada',
-        'astral': '\uD804[\uDD80-\uDDCD\uDDD0-\uDDDF]'
-    },
-    {
-        'name': 'Shavian',
-        'astral': '\uD801[\uDC50-\uDC7F]'
-    },
-    {
-        'name': 'Siddham',
-        'astral': '\uD805[\uDD80-\uDDB5\uDDB8-\uDDDD]'
-    },
-    {
-        'name': 'SignWriting',
-        'astral': '\uD836[\uDC00-\uDE8B\uDE9B-\uDE9F\uDEA1-\uDEAF]'
-    },
-    {
-        'name': 'Sinhala',
-        'bmp': '\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4',
-        'astral': '\uD804[\uDDE1-\uDDF4]'
-    },
-    {
-        'name': 'Sogdian',
-        'astral': '\uD803[\uDF30-\uDF59]'
-    },
-    {
-        'name': 'Sora_Sompeng',
-        'astral': '\uD804[\uDCD0-\uDCE8\uDCF0-\uDCF9]'
-    },
-    {
-        'name': 'Soyombo',
-        'astral': '\uD806[\uDE50-\uDEA2]'
-    },
-    {
-        'name': 'Sundanese',
-        'bmp': '\u1B80-\u1BBF\u1CC0-\u1CC7'
-    },
-    {
-        'name': 'Syloti_Nagri',
-        'bmp': '\uA800-\uA82B'
-    },
-    {
-        'name': 'Syriac',
-        'bmp': '\u0700-\u070D\u070F-\u074A\u074D-\u074F\u0860-\u086A'
-    },
-    {
-        'name': 'Tagalog',
-        'bmp': '\u1700-\u170C\u170E-\u1714'
-    },
-    {
-        'name': 'Tagbanwa',
-        'bmp': '\u1760-\u176C\u176E-\u1770\u1772\u1773'
-    },
-    {
-        'name': 'Tai_Le',
-        'bmp': '\u1950-\u196D\u1970-\u1974'
-    },
-    {
-        'name': 'Tai_Tham',
-        'bmp': '\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD'
-    },
-    {
-        'name': 'Tai_Viet',
-        'bmp': '\uAA80-\uAAC2\uAADB-\uAADF'
-    },
-    {
-        'name': 'Takri',
-        'astral': '\uD805[\uDE80-\uDEB8\uDEC0-\uDEC9]'
-    },
-    {
-        'name': 'Tamil',
-        'bmp': '\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA',
-        'astral': '\uD807[\uDFC0-\uDFF1\uDFFF]'
-    },
-    {
-        'name': 'Tangut',
-        'astral': '\uD81B\uDFE0|[\uD81C-\uD820][\uDC00-\uDFFF]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]'
-    },
-    {
-        'name': 'Telugu',
-        'bmp': '\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C77-\u0C7F'
-    },
-    {
-        'name': 'Thaana',
-        'bmp': '\u0780-\u07B1'
-    },
-    {
-        'name': 'Thai',
-        'bmp': '\u0E01-\u0E3A\u0E40-\u0E5B'
-    },
-    {
-        'name': 'Tibetan',
-        'bmp': '\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA'
-    },
-    {
-        'name': 'Tifinagh',
-        'bmp': '\u2D30-\u2D67\u2D6F\u2D70\u2D7F'
-    },
-    {
-        'name': 'Tirhuta',
-        'astral': '\uD805[\uDC80-\uDCC7\uDCD0-\uDCD9]'
-    },
-    {
-        'name': 'Ugaritic',
-        'astral': '\uD800[\uDF80-\uDF9D\uDF9F]'
-    },
-    {
-        'name': 'Vai',
-        'bmp': '\uA500-\uA62B'
-    },
-    {
-        'name': 'Wancho',
-        'astral': '\uD838[\uDEC0-\uDEF9\uDEFF]'
-    },
-    {
-        'name': 'Warang_Citi',
-        'astral': '\uD806[\uDCA0-\uDCF2\uDCFF]'
-    },
-    {
-        'name': 'Yi',
-        'bmp': '\uA000-\uA48C\uA490-\uA4C6'
-    },
-    {
-        'name': 'Zanabazar_Square',
-        'astral': '\uD806[\uDE00-\uDE47]'
-    }
-];
diff --git a/node_modules/xregexp/xregexp-all.js b/node_modules/xregexp/xregexp-all.js
deleted file mode 100644
index a660831..0000000
--- a/node_modules/xregexp/xregexp-all.js
+++ /dev/null
@@ -1,7470 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.XRegExp = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
-
-var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
-
-/*!
- * XRegExp.build 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- */
-var _default = function _default(XRegExp) {
-  var REGEX_DATA = 'xregexp';
-  var subParts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-  var parts = XRegExp.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/, subParts], 'g', {
-    conjunction: 'or'
-  });
-  /**
-   * Strips a leading `^` and trailing unescaped `$`, if both are present.
-   *
-   * @private
-   * @param {String} pattern Pattern to process.
-   * @returns {String} Pattern with edge anchors removed.
-   */
-
-  function deanchor(pattern) {
-    // Allow any number of empty noncapturing groups before/after anchors, because regexes
-    // built/generated by XRegExp sometimes include them
-    var leadingAnchor = /^(?:\(\?:\))*\^/;
-    var trailingAnchor = /\$(?:\(\?:\))*$/;
-
-    if (leadingAnchor.test(pattern) && trailingAnchor.test(pattern) && // Ensure that the trailing `$` isn't escaped
-    trailingAnchor.test(pattern.replace(/\\[\s\S]/g, ''))) {
-      return pattern.replace(leadingAnchor, '').replace(trailingAnchor, '');
-    }
-
-    return pattern;
-  }
-  /**
-   * Converts the provided value to an XRegExp. Native RegExp flags are not preserved.
-   *
-   * @private
-   * @param {String|RegExp} value Value to convert.
-   * @param {Boolean} [addFlagX] Whether to apply the `x` flag in cases when `value` is not
-   *   already a regex generated by XRegExp
-   * @returns {RegExp} XRegExp object with XRegExp syntax applied.
-   */
-
-
-  function asXRegExp(value, addFlagX) {
-    var flags = addFlagX ? 'x' : '';
-    return XRegExp.isRegExp(value) ? value[REGEX_DATA] && value[REGEX_DATA].captureNames ? // Don't recompile, to preserve capture names
-    value : // Recompile as XRegExp
-    XRegExp(value.source, flags) : // Compile string as XRegExp
-    XRegExp(value, flags);
-  }
-
-  function interpolate(substitution) {
-    return substitution instanceof RegExp ? substitution : XRegExp.escape(substitution);
-  }
-
-  function reduceToSubpatternsObject(subpatterns, interpolated, subpatternIndex) {
-    subpatterns["subpattern".concat(subpatternIndex)] = interpolated;
-    return subpatterns;
-  }
-
-  function embedSubpatternAfter(raw, subpatternIndex, rawLiterals) {
-    var hasSubpattern = subpatternIndex < rawLiterals.length - 1;
-    return raw + (hasSubpattern ? "{{subpattern".concat(subpatternIndex, "}}") : '');
-  }
-  /**
-   * Provides tagged template literals that create regexes with XRegExp syntax and flags. The
-   * provided pattern is handled as a raw string, so backslashes don't need to be escaped.
-   *
-   * Interpolation of strings and regexes shares the features of `XRegExp.build`. Interpolated
-   * patterns are treated as atomic units when quantified, interpolated strings have their special
-   * characters escaped, a leading `^` and trailing unescaped `$` are stripped from interpolated
-   * regexes if both are present, and any backreferences within an interpolated regex are
-   * rewritten to work within the overall pattern.
-   *
-   * @memberOf XRegExp
-   * @param {String} [flags] Any combination of XRegExp flags.
-   * @returns {Function} Handler for template literals that construct regexes with XRegExp syntax.
-   * @example
-   *
-   * const h12 = /1[0-2]|0?[1-9]/;
-   * const h24 = /2[0-3]|[01][0-9]/;
-   * const hours = XRegExp.tag('x')`${h12} : | ${h24}`;
-   * const minutes = /^[0-5][0-9]$/;
-   * // Note that explicitly naming the 'minutes' group is required for named backreferences
-   * const time = XRegExp.tag('x')`^ ${hours} (?<minutes>${minutes}) $`;
-   * time.test('10:59'); // -> true
-   * XRegExp.exec('10:59', time).minutes; // -> '59'
-   */
-
-
-  XRegExp.tag = function (flags) {
-    return function (literals) {
-      var _context, _context2;
-
-      for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-        substitutions[_key - 1] = arguments[_key];
-      }
-
-      var subpatterns = (0, _reduce.default)(_context = (0, _map.default)(substitutions).call(substitutions, interpolate)).call(_context, reduceToSubpatternsObject, {});
-      var pattern = (0, _map.default)(_context2 = literals.raw).call(_context2, embedSubpatternAfter).join('');
-      return XRegExp.build(pattern, subpatterns, flags);
-    };
-  };
-  /**
-   * Builds regexes using named subpatterns, for readability and pattern reuse. Backreferences in
-   * the outer pattern and provided subpatterns are automatically renumbered to work correctly.
-   * Native flags used by provided subpatterns are ignored in favor of the `flags` argument.
-   *
-   * @memberOf XRegExp
-   * @param {String} pattern XRegExp pattern using `{{name}}` for embedded subpatterns. Allows
-   *   `({{name}})` as shorthand for `(?<name>{{name}})`. Patterns cannot be embedded within
-   *   character classes.
-   * @param {Object} subs Lookup object for named subpatterns. Values can be strings or regexes. A
-   *   leading `^` and trailing unescaped `$` are stripped from subpatterns, if both are present.
-   * @param {String} [flags] Any combination of XRegExp flags.
-   * @returns {RegExp} Regex with interpolated subpatterns.
-   * @example
-   *
-   * const time = XRegExp.build('(?x)^ {{hours}} ({{minutes}}) $', {
-   *   hours: XRegExp.build('{{h12}} : | {{h24}}', {
-   *     h12: /1[0-2]|0?[1-9]/,
-   *     h24: /2[0-3]|[01][0-9]/
-   *   }, 'x'),
-   *   minutes: /^[0-5][0-9]$/
-   * });
-   * time.test('10:59'); // -> true
-   * XRegExp.exec('10:59', time).minutes; // -> '59'
-   */
-
-
-  XRegExp.build = function (pattern, subs, flags) {
-    flags = flags || ''; // Used with `asXRegExp` calls for `pattern` and subpatterns in `subs`, to work around how
-    // some browsers convert `RegExp('\n')` to a regex that contains the literal characters `\`
-    // and `n`. See more details at <https://github.com/slevithan/xregexp/pull/163>.
-
-    var addFlagX = (0, _includes.default)(flags).call(flags, 'x');
-    var inlineFlags = /^\(\?([\w$]+)\)/.exec(pattern); // Add flags within a leading mode modifier to the overall pattern's flags
-
-    if (inlineFlags) {
-      flags = XRegExp._clipDuplicates(flags + inlineFlags[1]);
-    }
-
-    var data = {};
-
-    for (var p in subs) {
-      if (subs.hasOwnProperty(p)) {
-        // Passing to XRegExp enables extended syntax and ensures independent validity,
-        // lest an unescaped `(`, `)`, `[`, or trailing `\` breaks the `(?:)` wrapper. For
-        // subpatterns provided as native regexes, it dies on octals and adds the property
-        // used to hold extended regex instance data, for simplicity.
-        var sub = asXRegExp(subs[p], addFlagX);
-        data[p] = {
-          // Deanchoring allows embedding independently useful anchored regexes. If you
-          // really need to keep your anchors, double them (i.e., `^^...$$`).
-          pattern: deanchor(sub.source),
-          names: sub[REGEX_DATA].captureNames || []
-        };
-      }
-    } // Passing to XRegExp dies on octals and ensures the outer pattern is independently valid;
-    // helps keep this simple. Named captures will be put back.
-
-
-    var patternAsRegex = asXRegExp(pattern, addFlagX); // 'Caps' is short for 'captures'
-
-    var numCaps = 0;
-    var numPriorCaps;
-    var numOuterCaps = 0;
-    var outerCapsMap = [0];
-    var outerCapNames = patternAsRegex[REGEX_DATA].captureNames || [];
-    var output = patternAsRegex.source.replace(parts, function ($0, $1, $2, $3, $4) {
-      var subName = $1 || $2;
-      var capName;
-      var intro;
-      var localCapIndex; // Named subpattern
-
-      if (subName) {
-        var _context3;
-
-        if (!data.hasOwnProperty(subName)) {
-          throw new ReferenceError("Undefined property ".concat($0));
-        } // Named subpattern was wrapped in a capturing group
-
-
-        if ($1) {
-          capName = outerCapNames[numOuterCaps];
-          outerCapsMap[++numOuterCaps] = ++numCaps; // If it's a named group, preserve the name. Otherwise, use the subpattern name
-          // as the capture name
-
-          intro = "(?<".concat(capName || subName, ">");
-        } else {
-          intro = '(?:';
-        }
-
-        numPriorCaps = numCaps;
-        var rewrittenSubpattern = data[subName].pattern.replace(subParts, function (match, paren, backref) {
-          // Capturing group
-          if (paren) {
-            capName = data[subName].names[numCaps - numPriorCaps];
-            ++numCaps; // If the current capture has a name, preserve the name
-
-            if (capName) {
-              return "(?<".concat(capName, ">");
-            } // Backreference
-
-          } else if (backref) {
-            localCapIndex = +backref - 1; // Rewrite the backreference
-
-            return data[subName].names[localCapIndex] ? // Need to preserve the backreference name in case using flag `n`
-            "\\k<".concat(data[subName].names[localCapIndex], ">") : "\\".concat(+backref + numPriorCaps);
-          }
-
-          return match;
-        });
-        return (0, _concat.default)(_context3 = "".concat(intro)).call(_context3, rewrittenSubpattern, ")");
-      } // Capturing group
-
-
-      if ($3) {
-        capName = outerCapNames[numOuterCaps];
-        outerCapsMap[++numOuterCaps] = ++numCaps; // If the current capture has a name, preserve the name
-
-        if (capName) {
-          return "(?<".concat(capName, ">");
-        } // Backreference
-
-      } else if ($4) {
-        localCapIndex = +$4 - 1; // Rewrite the backreference
-
-        return outerCapNames[localCapIndex] ? // Need to preserve the backreference name in case using flag `n`
-        "\\k<".concat(outerCapNames[localCapIndex], ">") : "\\".concat(outerCapsMap[+$4]);
-      }
-
-      return $0;
-    });
-    return XRegExp(output, flags);
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"@babel/runtime-corejs3/core-js-stable/instance/concat":10,"@babel/runtime-corejs3/core-js-stable/instance/includes":13,"@babel/runtime-corejs3/core-js-stable/instance/map":15,"@babel/runtime-corejs3/core-js-stable/instance/reduce":16,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],2:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-/*!
- * XRegExp.matchRecursive 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2009-present MIT License
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Returns a match detail object composed of the provided values.
-   *
-   * @private
-   */
-  function row(name, value, start, end) {
-    return {
-      name: name,
-      value: value,
-      start: start,
-      end: end
-    };
-  }
-  /**
-   * Returns an array of match strings between outermost left and right delimiters, or an array of
-   * objects with detailed match parts and position data. An error is thrown if delimiters are
-   * unbalanced within the data.
-   *
-   * @memberOf XRegExp
-   * @param {String} str String to search.
-   * @param {String} left Left delimiter as an XRegExp pattern.
-   * @param {String} right Right delimiter as an XRegExp pattern.
-   * @param {String} [flags] Any native or XRegExp flags, used for the left and right delimiters.
-   * @param {Object} [options] Lets you specify `valueNames` and `escapeChar` options.
-   * @returns {Array} Array of matches, or an empty array.
-   * @example
-   *
-   * // Basic usage
-   * let str = '(t((e))s)t()(ing)';
-   * XRegExp.matchRecursive(str, '\\(', '\\)', 'g');
-   * // -> ['t((e))s', '', 'ing']
-   *
-   * // Extended information mode with valueNames
-   * str = 'Here is <div> <div>an</div></div> example';
-   * XRegExp.matchRecursive(str, '<div\\s*>', '</div>', 'gi', {
-   *   valueNames: ['between', 'left', 'match', 'right']
-   * });
-   * // -> [
-   * // {name: 'between', value: 'Here is ',       start: 0,  end: 8},
-   * // {name: 'left',    value: '<div>',          start: 8,  end: 13},
-   * // {name: 'match',   value: ' <div>an</div>', start: 13, end: 27},
-   * // {name: 'right',   value: '</div>',         start: 27, end: 33},
-   * // {name: 'between', value: ' example',       start: 33, end: 41}
-   * // ]
-   *
-   * // Omitting unneeded parts with null valueNames, and using escapeChar
-   * str = '...{1}.\\{{function(x,y){return {y:x}}}';
-   * XRegExp.matchRecursive(str, '{', '}', 'g', {
-   *   valueNames: ['literal', null, 'value', null],
-   *   escapeChar: '\\'
-   * });
-   * // -> [
-   * // {name: 'literal', value: '...',  start: 0, end: 3},
-   * // {name: 'value',   value: '1',    start: 4, end: 5},
-   * // {name: 'literal', value: '.\\{', start: 6, end: 9},
-   * // {name: 'value',   value: 'function(x,y){return {y:x}}', start: 10, end: 37}
-   * // ]
-   *
-   * // Sticky mode via flag y
-   * str = '<1><<<2>>><3>4<5>';
-   * XRegExp.matchRecursive(str, '<', '>', 'gy');
-   * // -> ['1', '<<2>>', '3']
-   */
-
-
-  XRegExp.matchRecursive = function (str, left, right, flags, options) {
-    flags = flags || '';
-    options = options || {};
-    var global = (0, _includes.default)(flags).call(flags, 'g');
-    var sticky = (0, _includes.default)(flags).call(flags, 'y'); // Flag `y` is controlled internally
-
-    var basicFlags = flags.replace(/y/g, '');
-    var _options = options,
-        escapeChar = _options.escapeChar;
-    var vN = options.valueNames;
-    var output = [];
-    var openTokens = 0;
-    var delimStart = 0;
-    var delimEnd = 0;
-    var lastOuterEnd = 0;
-    var outerStart;
-    var innerStart;
-    var leftMatch;
-    var rightMatch;
-    var esc;
-    left = XRegExp(left, basicFlags);
-    right = XRegExp(right, basicFlags);
-
-    if (escapeChar) {
-      var _context, _context2;
-
-      if (escapeChar.length > 1) {
-        throw new Error('Cannot use more than one escape character');
-      }
-
-      escapeChar = XRegExp.escape(escapeChar); // Example of concatenated `esc` regex:
-      // `escapeChar`: '%'
-      // `left`: '<'
-      // `right`: '>'
-      // Regex is: /(?:%[\S\s]|(?:(?!<|>)[^%])+)+/
-
-      esc = new RegExp((0, _concat.default)(_context = (0, _concat.default)(_context2 = "(?:".concat(escapeChar, "[\\S\\s]|(?:(?!")).call(_context2, // Using `XRegExp.union` safely rewrites backreferences in `left` and `right`.
-      // Intentionally not passing `basicFlags` to `XRegExp.union` since any syntax
-      // transformation resulting from those flags was already applied to `left` and
-      // `right` when they were passed through the XRegExp constructor above.
-      XRegExp.union([left, right], '', {
-        conjunction: 'or'
-      }).source, ")[^")).call(_context, escapeChar, "])+)+"), // Flags `gy` not needed here
-      flags.replace(/[^imu]+/g, ''));
-    }
-
-    while (true) {
-      // If using an escape character, advance to the delimiter's next starting position,
-      // skipping any escaped characters in between
-      if (escapeChar) {
-        delimEnd += (XRegExp.exec(str, esc, delimEnd, 'sticky') || [''])[0].length;
-      }
-
-      leftMatch = XRegExp.exec(str, left, delimEnd);
-      rightMatch = XRegExp.exec(str, right, delimEnd); // Keep the leftmost match only
-
-      if (leftMatch && rightMatch) {
-        if (leftMatch.index <= rightMatch.index) {
-          rightMatch = null;
-        } else {
-          leftMatch = null;
-        }
-      } // Paths (LM: leftMatch, RM: rightMatch, OT: openTokens):
-      // LM | RM | OT | Result
-      // 1  | 0  | 1  | loop
-      // 1  | 0  | 0  | loop
-      // 0  | 1  | 1  | loop
-      // 0  | 1  | 0  | throw
-      // 0  | 0  | 1  | throw
-      // 0  | 0  | 0  | break
-      // The paths above don't include the sticky mode special case. The loop ends after the
-      // first completed match if not `global`.
-
-
-      if (leftMatch || rightMatch) {
-        delimStart = (leftMatch || rightMatch).index;
-        delimEnd = delimStart + (leftMatch || rightMatch)[0].length;
-      } else if (!openTokens) {
-        break;
-      }
-
-      if (sticky && !openTokens && delimStart > lastOuterEnd) {
-        break;
-      }
-
-      if (leftMatch) {
-        if (!openTokens) {
-          outerStart = delimStart;
-          innerStart = delimEnd;
-        }
-
-        ++openTokens;
-      } else if (rightMatch && openTokens) {
-        if (! --openTokens) {
-          if (vN) {
-            if (vN[0] && outerStart > lastOuterEnd) {
-              output.push(row(vN[0], (0, _slice.default)(str).call(str, lastOuterEnd, outerStart), lastOuterEnd, outerStart));
-            }
-
-            if (vN[1]) {
-              output.push(row(vN[1], (0, _slice.default)(str).call(str, outerStart, innerStart), outerStart, innerStart));
-            }
-
-            if (vN[2]) {
-              output.push(row(vN[2], (0, _slice.default)(str).call(str, innerStart, delimStart), innerStart, delimStart));
-            }
-
-            if (vN[3]) {
-              output.push(row(vN[3], (0, _slice.default)(str).call(str, delimStart, delimEnd), delimStart, delimEnd));
-            }
-          } else {
-            output.push((0, _slice.default)(str).call(str, innerStart, delimStart));
-          }
-
-          lastOuterEnd = delimEnd;
-
-          if (!global) {
-            break;
-          }
-        }
-      } else {
-        throw new Error('Unbalanced delimiter found in string');
-      } // If the delimiter matched an empty string, avoid an infinite loop
-
-
-      if (delimStart === delimEnd) {
-        ++delimEnd;
-      }
-    }
-
-    if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd) {
-      output.push(row(vN[0], (0, _slice.default)(str).call(str, lastOuterEnd), lastOuterEnd, str.length));
-    }
-
-    return output;
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"@babel/runtime-corejs3/core-js-stable/instance/concat":10,"@babel/runtime-corejs3/core-js-stable/instance/includes":13,"@babel/runtime-corejs3/core-js-stable/instance/slice":17,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],3:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/get-iterator"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
-
-/*!
- * XRegExp Unicode Base 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2008-present MIT License
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds base support for Unicode matching:
-   * - Adds syntax `\p{..}` for matching Unicode tokens. Tokens can be inverted using `\P{..}` or
-   *   `\p{^..}`. Token names ignore case, spaces, hyphens, and underscores. You can omit the
-   *   braces for token names that are a single letter (e.g. `\pL` or `PL`).
-   * - Adds flag A (astral), which enables 21-bit Unicode support.
-   * - Adds the `XRegExp.addUnicodeData` method used by other addons to provide character data.
-   *
-   * Unicode Base relies on externally provided Unicode character data. Official addons are
-   * available to provide data for Unicode categories, scripts, blocks, and properties.
-   *
-   * @requires XRegExp
-   */
-  // ==--------------------------==
-  // Private stuff
-  // ==--------------------------==
-  // Storage for Unicode data
-  var unicode = {}; // Reuse utils
-
-  var dec = XRegExp._dec;
-  var hex = XRegExp._hex;
-  var pad4 = XRegExp._pad4; // Generates a token lookup name: lowercase, with hyphens, spaces, and underscores removed
-
-  function normalize(name) {
-    return name.replace(/[- _]+/g, '').toLowerCase();
-  } // Gets the decimal code of a literal code unit, \xHH, \uHHHH, or a backslash-escaped literal
-
-
-  function charCode(chr) {
-    var esc = /^\\[xu](.+)/.exec(chr);
-    return esc ? dec(esc[1]) : chr.charCodeAt(chr[0] === '\\' ? 1 : 0);
-  } // Inverts a list of ordered BMP characters and ranges
-
-
-  function invertBmp(range) {
-    var output = '';
-    var lastEnd = -1;
-    (0, _forEach.default)(XRegExp).call(XRegExp, range, /(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/, function (m) {
-      var start = charCode(m[1]);
-
-      if (start > lastEnd + 1) {
-        output += "\\u".concat(pad4(hex(lastEnd + 1)));
-
-        if (start > lastEnd + 2) {
-          output += "-\\u".concat(pad4(hex(start - 1)));
-        }
-      }
-
-      lastEnd = charCode(m[2] || m[1]);
-    });
-
-    if (lastEnd < 0xFFFF) {
-      output += "\\u".concat(pad4(hex(lastEnd + 1)));
-
-      if (lastEnd < 0xFFFE) {
-        output += '-\\uFFFF';
-      }
-    }
-
-    return output;
-  } // Generates an inverted BMP range on first use
-
-
-  function cacheInvertedBmp(slug) {
-    var prop = 'b!';
-    return unicode[slug][prop] || (unicode[slug][prop] = invertBmp(unicode[slug].bmp));
-  } // Combines and optionally negates BMP and astral data
-
-
-  function buildAstral(slug, isNegated) {
-    var item = unicode[slug];
-    var combined = '';
-
-    if (item.bmp && !item.isBmpLast) {
-      var _context;
-
-      combined = (0, _concat.default)(_context = "[".concat(item.bmp, "]")).call(_context, item.astral ? '|' : '');
-    }
-
-    if (item.astral) {
-      combined += item.astral;
-    }
-
-    if (item.isBmpLast && item.bmp) {
-      var _context2;
-
-      combined += (0, _concat.default)(_context2 = "".concat(item.astral ? '|' : '', "[")).call(_context2, item.bmp, "]");
-    } // Astral Unicode tokens always match a code point, never a code unit
-
-
-    return isNegated ? "(?:(?!".concat(combined, ")(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))") : "(?:".concat(combined, ")");
-  } // Builds a complete astral pattern on first use
-
-
-  function cacheAstral(slug, isNegated) {
-    var prop = isNegated ? 'a!' : 'a=';
-    return unicode[slug][prop] || (unicode[slug][prop] = buildAstral(slug, isNegated));
-  } // ==--------------------------==
-  // Core functionality
-  // ==--------------------------==
-
-  /*
-   * Add astral mode (flag A) and Unicode token syntax: `\p{..}`, `\P{..}`, `\p{^..}`, `\pC`.
-   */
-
-
-  XRegExp.addToken( // Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}`
-  /\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/, function (match, scope, flags) {
-    var ERR_DOUBLE_NEG = 'Invalid double negation ';
-    var ERR_UNKNOWN_NAME = 'Unknown Unicode token ';
-    var ERR_UNKNOWN_REF = 'Unicode token missing data ';
-    var ERR_ASTRAL_ONLY = 'Astral mode required for Unicode token ';
-    var ERR_ASTRAL_IN_CLASS = 'Astral mode does not support Unicode tokens within character classes'; // Negated via \P{..} or \p{^..}
-
-    var isNegated = match[1] === 'P' || !!match[2]; // Switch from BMP (0-FFFF) to astral (0-10FFFF) mode via flag A
-
-    var isAstralMode = (0, _includes.default)(flags).call(flags, 'A'); // Token lookup name. Check `[4]` first to avoid passing `undefined` via `\p{}`
-
-    var slug = normalize(match[4] || match[3]); // Token data object
-
-    var item = unicode[slug];
-
-    if (match[1] === 'P' && match[2]) {
-      throw new SyntaxError(ERR_DOUBLE_NEG + match[0]);
-    }
-
-    if (!unicode.hasOwnProperty(slug)) {
-      throw new SyntaxError(ERR_UNKNOWN_NAME + match[0]);
-    } // Switch to the negated form of the referenced Unicode token
-
-
-    if (item.inverseOf) {
-      slug = normalize(item.inverseOf);
-
-      if (!unicode.hasOwnProperty(slug)) {
-        var _context3;
-
-        throw new ReferenceError((0, _concat.default)(_context3 = "".concat(ERR_UNKNOWN_REF + match[0], " -> ")).call(_context3, item.inverseOf));
-      }
-
-      item = unicode[slug];
-      isNegated = !isNegated;
-    }
-
-    if (!(item.bmp || isAstralMode)) {
-      throw new SyntaxError(ERR_ASTRAL_ONLY + match[0]);
-    }
-
-    if (isAstralMode) {
-      if (scope === 'class') {
-        throw new SyntaxError(ERR_ASTRAL_IN_CLASS);
-      }
-
-      return cacheAstral(slug, isNegated);
-    }
-
-    return scope === 'class' ? isNegated ? cacheInvertedBmp(slug) : item.bmp : "".concat((isNegated ? '[^' : '[') + item.bmp, "]");
-  }, {
-    scope: 'all',
-    optionalFlags: 'A',
-    leadChar: '\\'
-  });
-  /**
-   * Adds to the list of Unicode tokens that XRegExp regexes can match via `\p` or `\P`.
-   *
-   * @memberOf XRegExp
-   * @param {Array} data Objects with named character ranges. Each object may have properties
-   *   `name`, `alias`, `isBmpLast`, `inverseOf`, `bmp`, and `astral`. All but `name` are
-   *   optional, although one of `bmp` or `astral` is required (unless `inverseOf` is set). If
-   *   `astral` is absent, the `bmp` data is used for BMP and astral modes. If `bmp` is absent,
-   *   the name errors in BMP mode but works in astral mode. If both `bmp` and `astral` are
-   *   provided, the `bmp` data only is used in BMP mode, and the combination of `bmp` and
-   *   `astral` data is used in astral mode. `isBmpLast` is needed when a token matches orphan
-   *   high surrogates *and* uses surrogate pairs to match astral code points. The `bmp` and
-   *   `astral` data should be a combination of literal characters and `\xHH` or `\uHHHH` escape
-   *   sequences, with hyphens to create ranges. Any regex metacharacters in the data should be
-   *   escaped, apart from range-creating hyphens. The `astral` data can additionally use
-   *   character classes and alternation, and should use surrogate pairs to represent astral code
-   *   points. `inverseOf` can be used to avoid duplicating character data if a Unicode token is
-   *   defined as the exact inverse of another token.
-   * @example
-   *
-   * // Basic use
-   * XRegExp.addUnicodeData([{
-   *   name: 'XDigit',
-   *   alias: 'Hexadecimal',
-   *   bmp: '0-9A-Fa-f'
-   * }]);
-   * XRegExp('\\p{XDigit}:\\p{Hexadecimal}+').test('0:3D'); // -> true
-   */
-
-  XRegExp.addUnicodeData = function (data) {
-    var ERR_NO_NAME = 'Unicode token requires name';
-    var ERR_NO_DATA = 'Unicode token has no character data ';
-    var _iteratorNormalCompletion = true;
-    var _didIteratorError = false;
-    var _iteratorError = undefined;
-
-    try {
-      for (var _iterator = (0, _getIterator2.default)(data), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-        var item = _step.value;
-
-        if (!item.name) {
-          throw new Error(ERR_NO_NAME);
-        }
-
-        if (!(item.inverseOf || item.bmp || item.astral)) {
-          throw new Error(ERR_NO_DATA + item.name);
-        }
-
-        unicode[normalize(item.name)] = item;
-
-        if (item.alias) {
-          unicode[normalize(item.alias)] = item;
-        }
-      } // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and
-      // flags might now produce different results
-
-    } catch (err) {
-      _didIteratorError = true;
-      _iteratorError = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion && _iterator.return != null) {
-          _iterator.return();
-        }
-      } finally {
-        if (_didIteratorError) {
-          throw _iteratorError;
-        }
-      }
-    }
-
-    XRegExp.cache.flush('patterns');
-  };
-  /**
-   * @ignore
-   *
-   * Return a reference to the internal Unicode definition structure for the given Unicode
-   * Property if the given name is a legal Unicode Property for use in XRegExp `\p` or `\P` regex
-   * constructs.
-   *
-   * @memberOf XRegExp
-   * @param {String} name Name by which the Unicode Property may be recognized (case-insensitive),
-   *   e.g. `'N'` or `'Number'`. The given name is matched against all registered Unicode
-   *   Properties and Property Aliases.
-   * @returns {Object} Reference to definition structure when the name matches a Unicode Property.
-   *
-   * @note
-   * For more info on Unicode Properties, see also http://unicode.org/reports/tr18/#Categories.
-   *
-   * @note
-   * This method is *not* part of the officially documented API and may change or be removed in
-   * the future. It is meant for userland code that wishes to reuse the (large) internal Unicode
-   * structures set up by XRegExp.
-   */
-
-
-  XRegExp._getUnicodeProperty = function (name) {
-    var slug = normalize(name);
-    return unicode[slug];
-  };
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"@babel/runtime-corejs3/core-js-stable/instance/concat":10,"@babel/runtime-corejs3/core-js-stable/instance/for-each":12,"@babel/runtime-corejs3/core-js-stable/instance/includes":13,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/core-js/get-iterator":23,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],4:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _blocks = _interopRequireDefault(require("../../tools/output/blocks"));
-
-/*!
- * XRegExp Unicode Blocks 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for all Unicode blocks. Block names use the prefix 'In'. E.g.,
-   * `\p{InBasicLatin}`. Token names are case insensitive, and any spaces, hyphens, and
-   * underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Blocks');
-  }
-
-  XRegExp.addUnicodeData(_blocks.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"../../tools/output/blocks":171,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],5:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _categories = _interopRequireDefault(require("../../tools/output/categories"));
-
-/*!
- * XRegExp Unicode Categories 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for Unicode's general categories. E.g., `\p{Lu}` or `\p{Uppercase Letter}`. See
-   * category descriptions in UAX #44 <http://unicode.org/reports/tr44/#GC_Values_Table>. Token
-   * names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Categories');
-  }
-
-  XRegExp.addUnicodeData(_categories.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"../../tools/output/categories":172,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],6:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _properties = _interopRequireDefault(require("../../tools/output/properties"));
-
-/*!
- * XRegExp Unicode Properties 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2012-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds properties to meet the UTS #18 Level 1 RL1.2 requirements for Unicode regex support. See
-   * <http://unicode.org/reports/tr18/#RL1.2>. Following are definitions of these properties from
-   * UAX #44 <http://unicode.org/reports/tr44/>:
-   *
-   * - Alphabetic
-   *   Characters with the Alphabetic property. Generated from: Lowercase + Uppercase + Lt + Lm +
-   *   Lo + Nl + Other_Alphabetic.
-   *
-   * - Default_Ignorable_Code_Point
-   *   For programmatic determination of default ignorable code points. New characters that should
-   *   be ignored in rendering (unless explicitly supported) will be assigned in these ranges,
-   *   permitting programs to correctly handle the default rendering of such characters when not
-   *   otherwise supported.
-   *
-   * - Lowercase
-   *   Characters with the Lowercase property. Generated from: Ll + Other_Lowercase.
-   *
-   * - Noncharacter_Code_Point
-   *   Code points permanently reserved for internal use.
-   *
-   * - Uppercase
-   *   Characters with the Uppercase property. Generated from: Lu + Other_Uppercase.
-   *
-   * - White_Space
-   *   Spaces, separator characters and other control characters which should be treated by
-   *   programming languages as "white space" for the purpose of parsing elements.
-   *
-   * The properties ASCII, Any, and Assigned are also included but are not defined in UAX #44. UTS
-   * #18 RL1.2 additionally requires support for Unicode scripts and general categories. These are
-   * included in XRegExp's Unicode Categories and Unicode Scripts addons.
-   *
-   * Token names are case insensitive, and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Properties');
-  }
-
-  var unicodeData = _properties.default; // Add non-generated data
-
-  unicodeData.push({
-    name: 'Assigned',
-    // Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode
-    // Categories addon is required to use this property
-    inverseOf: 'Cn'
-  });
-  XRegExp.addUnicodeData(unicodeData);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"../../tools/output/properties":173,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],7:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _scripts = _interopRequireDefault(require("../../tools/output/scripts"));
-
-/*!
- * XRegExp Unicode Scripts 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2010-present MIT License
- * Unicode data by Mathias Bynens <mathiasbynens.be>
- */
-var _default = function _default(XRegExp) {
-  /**
-   * Adds support for all Unicode scripts. E.g., `\p{Latin}`. Token names are case insensitive,
-   * and any spaces, hyphens, and underscores are ignored.
-   *
-   * Uses Unicode 12.1.0.
-   *
-   * @requires XRegExp, Unicode Base
-   */
-  if (!XRegExp.addUnicodeData) {
-    throw new ReferenceError('Unicode Base must be loaded before Unicode Scripts');
-  }
-
-  XRegExp.addUnicodeData(_scripts.default);
-};
-
-exports.default = _default;
-module.exports = exports["default"];
-},{"../../tools/output/scripts":174,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],8:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _xregexp = _interopRequireDefault(require("./xregexp"));
-
-var _build = _interopRequireDefault(require("./addons/build"));
-
-var _matchrecursive = _interopRequireDefault(require("./addons/matchrecursive"));
-
-var _unicodeBase = _interopRequireDefault(require("./addons/unicode-base"));
-
-var _unicodeBlocks = _interopRequireDefault(require("./addons/unicode-blocks"));
-
-var _unicodeCategories = _interopRequireDefault(require("./addons/unicode-categories"));
-
-var _unicodeProperties = _interopRequireDefault(require("./addons/unicode-properties"));
-
-var _unicodeScripts = _interopRequireDefault(require("./addons/unicode-scripts"));
-
-(0, _build.default)(_xregexp.default);
-(0, _matchrecursive.default)(_xregexp.default);
-(0, _unicodeBase.default)(_xregexp.default);
-(0, _unicodeBlocks.default)(_xregexp.default);
-(0, _unicodeCategories.default)(_xregexp.default);
-(0, _unicodeProperties.default)(_xregexp.default);
-(0, _unicodeScripts.default)(_xregexp.default);
-var _default = _xregexp.default;
-exports.default = _default;
-module.exports = exports["default"];
-},{"./addons/build":1,"./addons/matchrecursive":2,"./addons/unicode-base":3,"./addons/unicode-blocks":4,"./addons/unicode-categories":5,"./addons/unicode-properties":6,"./addons/unicode-scripts":7,"./xregexp":9,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/helpers/interopRequireDefault":26}],9:[function(require,module,exports){
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
-
-var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
-
-_Object$defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = void 0;
-
-var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
-
-var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
-
-var _create = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/create"));
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
-
-var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
-
-var _getIterator2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/get-iterator"));
-
-var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
-
-var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-int"));
-
-var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
-
-var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
-
-var _flags = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flags"));
-
-/*!
- * XRegExp 4.3.0
- * <xregexp.com>
- * Steven Levithan (c) 2007-present MIT License
- */
-
-/**
- * XRegExp provides augmented, extensible regular expressions. You get additional regex syntax and
- * flags, beyond what browsers support natively. XRegExp is also a regex utility belt with tools to
- * make your client-side grepping simpler and more powerful, while freeing you from related
- * cross-browser inconsistencies.
- */
-// ==--------------------------==
-// Private stuff
-// ==--------------------------==
-// Property name used for extended regex instance data
-var REGEX_DATA = 'xregexp'; // Optional features that can be installed and uninstalled
-
-var features = {
-  astral: false,
-  namespacing: false
-}; // Native methods to use and restore ('native' is an ES3 reserved keyword)
-
-var nativ = {
-  exec: RegExp.prototype.exec,
-  test: RegExp.prototype.test,
-  match: String.prototype.match,
-  replace: String.prototype.replace,
-  split: String.prototype.split
-}; // Storage for fixed/extended native methods
-
-var fixed = {}; // Storage for regexes cached by `XRegExp.cache`
-
-var regexCache = {}; // Storage for pattern details cached by the `XRegExp` constructor
-
-var patternCache = {}; // Storage for regex syntax tokens added internally or by `XRegExp.addToken`
-
-var tokens = []; // Token scopes
-
-var defaultScope = 'default';
-var classScope = 'class'; // Regexes that match native regex syntax, including octals
-
-var nativeTokens = {
-  // Any native multicharacter token in default scope, or any single character
-  'default': /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,
-  // Any native multicharacter token in character class scope, or any single character
-  'class': /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/
-}; // Any backreference or dollar-prefixed character in replacement strings
-
-var replacementToken = /\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g; // Check for correct `exec` handling of nonparticipating capturing groups
-
-var correctExecNpcg = nativ.exec.call(/()??/, '')[1] === undefined; // Check for ES6 `flags` prop support
-
-var hasFlagsProp = (0, _flags.default)(/x/) !== undefined; // Shortcut to `Object.prototype.toString`
-
-var _ref = {},
-    toString = _ref.toString;
-
-function hasNativeFlag(flag) {
-  // Can't check based on the presence of properties/getters since browsers might support such
-  // properties even when they don't support the corresponding flag in regex construction (tested
-  // in Chrome 48, where `'unicode' in /x/` is true but trying to construct a regex with flag `u`
-  // throws an error)
-  var isSupported = true;
-
-  try {
-    // Can't use regex literals for testing even in a `try` because regex literals with
-    // unsupported flags cause a compilation error in IE
-    new RegExp('', flag);
-  } catch (exception) {
-    isSupported = false;
-  }
-
-  return isSupported;
-} // Check for ES6 `u` flag support
-
-
-var hasNativeU = hasNativeFlag('u'); // Check for ES6 `y` flag support
-
-var hasNativeY = hasNativeFlag('y'); // Tracker for known flags, including addon flags
-
-var registeredFlags = {
-  g: true,
-  i: true,
-  m: true,
-  u: hasNativeU,
-  y: hasNativeY
-};
-/**
- * Attaches extended data and `XRegExp.prototype` properties to a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to augment.
- * @param {Array} captureNames Array with capture names, or `null`.
- * @param {String} xSource XRegExp pattern used to generate `regex`, or `null` if N/A.
- * @param {String} xFlags XRegExp flags used to generate `regex`, or `null` if N/A.
- * @param {Boolean} [isInternalOnly=false] Whether the regex will be used only for internal
- *   operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *   skipping some operations like attaching `XRegExp.prototype` properties.
- * @returns {RegExp} Augmented regex.
- */
-
-function augment(regex, captureNames, xSource, xFlags, isInternalOnly) {
-  var _context;
-
-  regex[REGEX_DATA] = {
-    captureNames: captureNames
-  };
-
-  if (isInternalOnly) {
-    return regex;
-  } // Can't auto-inherit these since the XRegExp constructor returns a nonprimitive value
-
-
-  if (regex.__proto__) {
-    regex.__proto__ = XRegExp.prototype;
-  } else {
-    for (var p in XRegExp.prototype) {
-      // An `XRegExp.prototype.hasOwnProperty(p)` check wouldn't be worth it here, since this
-      // is performance sensitive, and enumerable `Object.prototype` or `RegExp.prototype`
-      // extensions exist on `regex.prototype` anyway
-      regex[p] = XRegExp.prototype[p];
-    }
-  }
-
-  regex[REGEX_DATA].source = xSource; // Emulate the ES6 `flags` prop by ensuring flags are in alphabetical order
-
-  regex[REGEX_DATA].flags = xFlags ? (0, _sort.default)(_context = xFlags.split('')).call(_context).join('') : xFlags;
-  return regex;
-}
-/**
- * Removes any duplicate characters from the provided string.
- *
- * @private
- * @param {String} str String to remove duplicate characters from.
- * @returns {String} String with any duplicate characters removed.
- */
-
-
-function clipDuplicates(str) {
-  return nativ.replace.call(str, /([\s\S])(?=[\s\S]*\1)/g, '');
-}
-/**
- * Copies a regex object while preserving extended data and augmenting with `XRegExp.prototype`
- * properties. The copy has a fresh `lastIndex` property (set to zero). Allows adding and removing
- * flags g and y while copying the regex.
- *
- * @private
- * @param {RegExp} regex Regex to copy.
- * @param {Object} [options] Options object with optional properties:
- *   - `addG` {Boolean} Add flag g while copying the regex.
- *   - `addY` {Boolean} Add flag y while copying the regex.
- *   - `removeG` {Boolean} Remove flag g while copying the regex.
- *   - `removeY` {Boolean} Remove flag y while copying the regex.
- *   - `isInternalOnly` {Boolean} Whether the copied regex will be used only for internal
- *     operations, and never exposed to users. For internal-only regexes, we can improve perf by
- *     skipping some operations like attaching `XRegExp.prototype` properties.
- *   - `source` {String} Overrides `<regex>.source`, for special cases.
- * @returns {RegExp} Copy of the provided regex, possibly with modified flags.
- */
-
-
-function copyRegex(regex, options) {
-  var _context2;
-
-  if (!XRegExp.isRegExp(regex)) {
-    throw new TypeError('Type RegExp expected');
-  }
-
-  var xData = regex[REGEX_DATA] || {};
-  var flags = getNativeFlags(regex);
-  var flagsToAdd = '';
-  var flagsToRemove = '';
-  var xregexpSource = null;
-  var xregexpFlags = null;
-  options = options || {};
-
-  if (options.removeG) {
-    flagsToRemove += 'g';
-  }
-
-  if (options.removeY) {
-    flagsToRemove += 'y';
-  }
-
-  if (flagsToRemove) {
-    flags = nativ.replace.call(flags, new RegExp("[".concat(flagsToRemove, "]+"), 'g'), '');
-  }
-
-  if (options.addG) {
-    flagsToAdd += 'g';
-  }
-
-  if (options.addY) {
-    flagsToAdd += 'y';
-  }
-
-  if (flagsToAdd) {
-    flags = clipDuplicates(flags + flagsToAdd);
-  }
-
-  if (!options.isInternalOnly) {
-    if (xData.source !== undefined) {
-      xregexpSource = xData.source;
-    } // null or undefined; don't want to add to `flags` if the previous value was null, since
-    // that indicates we're not tracking original precompilation flags
-
-
-    if ((0, _flags.default)(xData) != null) {
-      // Flags are only added for non-internal regexes by `XRegExp.globalize`. Flags are never
-      // removed for non-internal regexes, so don't need to handle it
-      xregexpFlags = flagsToAdd ? clipDuplicates((0, _flags.default)(xData) + flagsToAdd) : (0, _flags.default)(xData);
-    }
-  } // Augment with `XRegExp.prototype` properties, but use the native `RegExp` constructor to avoid
-  // searching for special tokens. That would be wrong for regexes constructed by `RegExp`, and
-  // unnecessary for regexes constructed by `XRegExp` because the regex has already undergone the
-  // translation to native regex syntax
-
-
-  regex = augment(new RegExp(options.source || regex.source, flags), hasNamedCapture(regex) ? (0, _slice.default)(_context2 = xData.captureNames).call(_context2, 0) : null, xregexpSource, xregexpFlags, options.isInternalOnly);
-  return regex;
-}
-/**
- * Converts hexadecimal to decimal.
- *
- * @private
- * @param {String} hex
- * @returns {Number}
- */
-
-
-function dec(hex) {
-  return (0, _parseInt2.default)(hex, 16);
-}
-/**
- * Returns a pattern that can be used in a native RegExp in place of an ignorable token such as an
- * inline comment or whitespace with flag x. This is used directly as a token handler function
- * passed to `XRegExp.addToken`.
- *
- * @private
- * @param {String} match Match arg of `XRegExp.addToken` handler
- * @param {String} scope Scope arg of `XRegExp.addToken` handler
- * @param {String} flags Flags arg of `XRegExp.addToken` handler
- * @returns {String} Either '' or '(?:)', depending on which is needed in the context of the match.
- */
-
-
-function getContextualTokenSeparator(match, scope, flags) {
-  if ( // No need to separate tokens if at the beginning or end of a group
-  match.input[match.index - 1] === '(' || match.input[match.index + match[0].length] === ')' || // No need to separate tokens if before or after a `|`
-  match.input[match.index - 1] === '|' || match.input[match.index + match[0].length] === '|' || // No need to separate tokens if at the beginning or end of the pattern
-  match.index < 1 || match.index + match[0].length >= match.input.length || // No need to separate tokens if at the beginning of a noncapturing group or lookahead.
-  // The way this is written relies on:
-  // - The search regex matching only 3-char strings.
-  // - Although `substr` gives chars from the end of the string if given a negative index,
-  //   the resulting substring will be too short to match. Ex: `'abcd'.substr(-1, 3) === 'd'`
-  nativ.test.call(/^\(\?[:=!]/, match.input.substr(match.index - 3, 3)) || // Avoid separating tokens when the following token is a quantifier
-  isQuantifierNext(match.input, match.index + match[0].length, flags)) {
-    return '';
-  } // Keep tokens separated. This avoids e.g. inadvertedly changing `\1 1` or `\1(?#)1` to `\11`.
-  // This also ensures all tokens remain as discrete atoms, e.g. it avoids converting the syntax
-  // error `(? :` into `(?:`.
-
-
-  return '(?:)';
-}
-/**
- * Returns native `RegExp` flags used by a regex object.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {String} Native flags in use.
- */
-
-
-function getNativeFlags(regex) {
-  return hasFlagsProp ? (0, _flags.default)(regex) : // Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation
-  // with an empty string) allows this to continue working predictably when
-  // `XRegExp.proptotype.toString` is overridden
-  nativ.exec.call(/\/([a-z]*)$/i, RegExp.prototype.toString.call(regex))[1];
-}
-/**
- * Determines whether a regex has extended instance data used to track capture names.
- *
- * @private
- * @param {RegExp} regex Regex to check.
- * @returns {Boolean} Whether the regex uses named capture.
- */
-
-
-function hasNamedCapture(regex) {
-  return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames);
-}
-/**
- * Converts decimal to hexadecimal.
- *
- * @private
- * @param {Number|String} dec
- * @returns {String}
- */
-
-
-function hex(dec) {
-  return (0, _parseInt2.default)(dec, 10).toString(16);
-}
-/**
- * Checks whether the next nonignorable token after the specified position is a quantifier.
- *
- * @private
- * @param {String} pattern Pattern to search within.
- * @param {Number} pos Index in `pattern` to search at.
- * @param {String} flags Flags used by the pattern.
- * @returns {Boolean} Whether the next nonignorable token is a quantifier.
- */
-
-
-function isQuantifierNext(pattern, pos, flags) {
-  var inlineCommentPattern = '\\(\\?#[^)]*\\)';
-  var lineCommentPattern = '#[^#\\n]*';
-  var quantifierPattern = '[?*+]|{\\d+(?:,\\d*)?}';
-  return nativ.test.call((0, _includes.default)(flags).call(flags, 'x') ? // Ignore any leading whitespace, line comments, and inline comments
-  /^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/ : // Ignore any leading inline comments
-  /^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/, (0, _slice.default)(pattern).call(pattern, pos));
-}
-/**
- * Determines whether a value is of the specified type, by resolving its internal [[Class]].
- *
- * @private
- * @param {*} value Object to check.
- * @param {String} type Type to check for, in TitleCase.
- * @returns {Boolean} Whether the object matches the type.
- */
-
-
-function isType(value, type) {
-  return toString.call(value) === "[object ".concat(type, "]");
-}
-/**
- * Adds leading zeros if shorter than four characters. Used for fixed-length hexadecimal values.
- *
- * @private
- * @param {String} str
- * @returns {String}
- */
-
-
-function pad4(str) {
-  while (str.length < 4) {
-    str = "0".concat(str);
-  }
-
-  return str;
-}
-/**
- * Checks for flag-related errors, and strips/applies flags in a leading mode modifier. Offloads
- * the flag preparation logic from the `XRegExp` constructor.
- *
- * @private
- * @param {String} pattern Regex pattern, possibly with a leading mode modifier.
- * @param {String} flags Any combination of flags.
- * @returns {Object} Object with properties `pattern` and `flags`.
- */
-
-
-function prepareFlags(pattern, flags) {
-  // Recent browsers throw on duplicate flags, so copy this behavior for nonnative flags
-  if (clipDuplicates(flags) !== flags) {
-    throw new SyntaxError("Invalid duplicate regex flag ".concat(flags));
-  } // Strip and apply a leading mode modifier with any combination of flags except g or y
-
-
-  pattern = nativ.replace.call(pattern, /^\(\?([\w$]+)\)/, function ($0, $1) {
-    if (nativ.test.call(/[gy]/, $1)) {
-      throw new SyntaxError("Cannot use flag g or y in mode modifier ".concat($0));
-    } // Allow duplicate flags within the mode modifier
-
-
-    flags = clipDuplicates(flags + $1);
-    return '';
-  }); // Throw on unknown native or nonnative flags
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = (0, _getIterator2.default)(flags), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      var flag = _step.value;
-
-      if (!registeredFlags[flag]) {
-        throw new SyntaxError("Unknown regex flag ".concat(flag));
-      }
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return != null) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-
-  return {
-    pattern: pattern,
-    flags: flags
-  };
-}
-/**
- * Prepares an options object from the given value.
- *
- * @private
- * @param {String|Object} value Value to convert to an options object.
- * @returns {Object} Options object.
- */
-
-
-function prepareOptions(value) {
-  var options = {};
-
-  if (isType(value, 'String')) {
-    (0, _forEach.default)(XRegExp).call(XRegExp, value, /[^\s,]+/, function (match) {
-      options[match] = true;
-    });
-    return options;
-  }
-
-  return value;
-}
-/**
- * Registers a flag so it doesn't throw an 'unknown flag' error.
- *
- * @private
- * @param {String} flag Single-character flag to register.
- */
-
-
-function registerFlag(flag) {
-  if (!/^[\w$]$/.test(flag)) {
-    throw new Error('Flag must be a single character A-Za-z0-9_$');
-  }
-
-  registeredFlags[flag] = true;
-}
-/**
- * Runs built-in and custom regex syntax tokens in reverse insertion order at the specified
- * position, until a match is found.
- *
- * @private
- * @param {String} pattern Original pattern from which an XRegExp object is being built.
- * @param {String} flags Flags being used to construct the regex.
- * @param {Number} pos Position to search for tokens within `pattern`.
- * @param {Number} scope Regex scope to apply: 'default' or 'class'.
- * @param {Object} context Context object to use for token handler functions.
- * @returns {Object} Object with properties `matchLength`, `output`, and `reparse`; or `null`.
- */
-
-
-function runTokens(pattern, flags, pos, scope, context) {
-  var i = tokens.length;
-  var leadChar = pattern[pos];
-  var result = null;
-  var match;
-  var t; // Run in reverse insertion order
-
-  while (i--) {
-    t = tokens[i];
-
-    if (t.leadChar && t.leadChar !== leadChar || t.scope !== scope && t.scope !== 'all' || t.flag && !(0, _includes.default)(flags).call(flags, t.flag)) {
-      continue;
-    }
-
-    match = XRegExp.exec(pattern, t.regex, pos, 'sticky');
-
-    if (match) {
-      result = {
-        matchLength: match[0].length,
-        output: t.handler.call(context, match, scope, flags),
-        reparse: t.reparse
-      }; // Finished with token tests
-
-      break;
-    }
-  }
-
-  return result;
-}
-/**
- * Enables or disables implicit astral mode opt-in. When enabled, flag A is automatically added to
- * all new regexes created by XRegExp. This causes an error to be thrown when creating regexes if
- * the Unicode Base addon is not available, since flag A is registered by that addon.
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-
-
-function setAstral(on) {
-  features.astral = on;
-}
-/**
- * Adds named capture groups to the `groups` property of match arrays. See here for details:
- * https://github.com/tc39/proposal-regexp-named-groups
- *
- * @private
- * @param {Boolean} on `true` to enable; `false` to disable.
- */
-
-
-function setNamespacing(on) {
-  features.namespacing = on;
-}
-/**
- * Returns the object, or throws an error if it is `null` or `undefined`. This is used to follow
- * the ES5 abstract operation `ToObject`.
- *
- * @private
- * @param {*} value Object to check and return.
- * @returns {*} The provided object.
- */
-
-
-function toObject(value) {
-  // null or undefined
-  if (value == null) {
-    throw new TypeError('Cannot convert null or undefined to object');
-  }
-
-  return value;
-} // ==--------------------------==
-// Constructor
-// ==--------------------------==
-
-/**
- * Creates an extended regular expression object for matching text with a pattern. Differs from a
- * native regular expression in that additional syntax and flags are supported. The returned object
- * is in fact a native `RegExp` and works with all native methods.
- *
- * @class XRegExp
- * @constructor
- * @param {String|RegExp} pattern Regex pattern string, or an existing regex object to copy.
- * @param {String} [flags] Any combination of flags.
- *   Native flags:
- *     - `g` - global
- *     - `i` - ignore case
- *     - `m` - multiline anchors
- *     - `u` - unicode (ES6)
- *     - `y` - sticky (Firefox 3+, ES6)
- *   Additional XRegExp flags:
- *     - `n` - explicit capture
- *     - `s` - dot matches all (aka singleline)
- *     - `x` - free-spacing and line comments (aka extended)
- *     - `A` - astral (requires the Unicode Base addon)
- *   Flags cannot be provided when constructing one `RegExp` from another.
- * @returns {RegExp} Extended regular expression object.
- * @example
- *
- * // With named capture and flag x
- * XRegExp(`(?<year>  [0-9]{4} ) -?  # year
- *          (?<month> [0-9]{2} ) -?  # month
- *          (?<day>   [0-9]{2} )     # day`, 'x');
- *
- * // Providing a regex object copies it. Native regexes are recompiled using native (not XRegExp)
- * // syntax. Copies maintain extended data, are augmented with `XRegExp.prototype` properties, and
- * // have fresh `lastIndex` properties (set to zero).
- * XRegExp(/regex/);
- */
-
-
-function XRegExp(pattern, flags) {
-  if (XRegExp.isRegExp(pattern)) {
-    if (flags !== undefined) {
-      throw new TypeError('Cannot supply flags when copying a RegExp');
-    }
-
-    return copyRegex(pattern);
-  } // Copy the argument behavior of `RegExp`
-
-
-  pattern = pattern === undefined ? '' : String(pattern);
-  flags = flags === undefined ? '' : String(flags);
-
-  if (XRegExp.isInstalled('astral') && !(0, _includes.default)(flags).call(flags, 'A')) {
-    // This causes an error to be thrown if the Unicode Base addon is not available
-    flags += 'A';
-  }
-
-  if (!patternCache[pattern]) {
-    patternCache[pattern] = {};
-  }
-
-  if (!patternCache[pattern][flags]) {
-    var context = {
-      hasNamedCapture: false,
-      captureNames: []
-    };
-    var scope = defaultScope;
-    var output = '';
-    var pos = 0;
-    var result; // Check for flag-related errors, and strip/apply flags in a leading mode modifier
-
-    var applied = prepareFlags(pattern, flags);
-    var appliedPattern = applied.pattern;
-    var appliedFlags = (0, _flags.default)(applied); // Use XRegExp's tokens to translate the pattern to a native regex pattern.
-    // `appliedPattern.length` may change on each iteration if tokens use `reparse`
-
-    while (pos < appliedPattern.length) {
-      do {
-        // Check for custom tokens at the current position
-        result = runTokens(appliedPattern, appliedFlags, pos, scope, context); // If the matched token used the `reparse` option, splice its output into the
-        // pattern before running tokens again at the same position
-
-        if (result && result.reparse) {
-          appliedPattern = (0, _slice.default)(appliedPattern).call(appliedPattern, 0, pos) + result.output + (0, _slice.default)(appliedPattern).call(appliedPattern, pos + result.matchLength);
-        }
-      } while (result && result.reparse);
-
-      if (result) {
-        output += result.output;
-        pos += result.matchLength || 1;
-      } else {
-        // Get the native token at the current position
-        var _XRegExp$exec = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, 'sticky'),
-            _XRegExp$exec2 = (0, _slicedToArray2.default)(_XRegExp$exec, 1),
-            token = _XRegExp$exec2[0];
-
-        output += token;
-        pos += token.length;
-
-        if (token === '[' && scope === defaultScope) {
-          scope = classScope;
-        } else if (token === ']' && scope === classScope) {
-          scope = defaultScope;
-        }
-      }
-    }
-
-    patternCache[pattern][flags] = {
-      // Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty
-      // groups are sometimes inserted during regex transpilation in order to keep tokens
-      // separated. However, more than one empty group in a row is never needed.
-      pattern: nativ.replace.call(output, /(?:\(\?:\))+/g, '(?:)'),
-      // Strip all but native flags
-      flags: nativ.replace.call(appliedFlags, /[^gimuy]+/g, ''),
-      // `context.captureNames` has an item for each capturing group, even if unnamed
-      captures: context.hasNamedCapture ? context.captureNames : null
-    };
-  }
-
-  var generated = patternCache[pattern][flags];
-  return augment(new RegExp(generated.pattern, (0, _flags.default)(generated)), generated.captures, pattern, flags);
-} // Add `RegExp.prototype` to the prototype chain
-
-
-XRegExp.prototype = /(?:)/; // ==--------------------------==
-// Public properties
-// ==--------------------------==
-
-/**
- * The XRegExp version number as a string containing three dot-separated parts. For example,
- * '2.0.0-beta-3'.
- *
- * @static
- * @memberOf XRegExp
- * @type String
- */
-
-XRegExp.version = '4.3.0'; // ==--------------------------==
-// Public methods
-// ==--------------------------==
-// Intentionally undocumented; used in tests and addons
-
-XRegExp._clipDuplicates = clipDuplicates;
-XRegExp._hasNativeFlag = hasNativeFlag;
-XRegExp._dec = dec;
-XRegExp._hex = hex;
-XRegExp._pad4 = pad4;
-/**
- * Extends XRegExp syntax and allows custom flags. This is used internally and can be used to
- * create XRegExp addons. If more than one token can match the same string, the last added wins.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex object that matches the new token.
- * @param {Function} handler Function that returns a new pattern string (using native regex syntax)
- *   to replace the matched token within all future XRegExp regexes. Has access to persistent
- *   properties of the regex being built, through `this`. Invoked with three arguments:
- *   - The match array, with named backreference properties.
- *   - The regex scope where the match was found: 'default' or 'class'.
- *   - The flags used by the regex, including any flags in a leading mode modifier.
- *   The handler function becomes part of the XRegExp construction process, so be careful not to
- *   construct XRegExps within the function or you will trigger infinite recursion.
- * @param {Object} [options] Options object with optional properties:
- *   - `scope` {String} Scope where the token applies: 'default', 'class', or 'all'.
- *   - `flag` {String} Single-character flag that triggers the token. This also registers the
- *     flag, which prevents XRegExp from throwing an 'unknown flag' error when the flag is used.
- *   - `optionalFlags` {String} Any custom flags checked for within the token `handler` that are
- *     not required to trigger the token. This registers the flags, to prevent XRegExp from
- *     throwing an 'unknown flag' error when any of the flags are used.
- *   - `reparse` {Boolean} Whether the `handler` function's output should not be treated as
- *     final, and instead be reparseable by other tokens (including the current token). Allows
- *     token chaining or deferring.
- *   - `leadChar` {String} Single character that occurs at the beginning of any successful match
- *     of the token (not always applicable). This doesn't change the behavior of the token unless
- *     you provide an erroneous value. However, providing it can increase the token's performance
- *     since the token can be skipped at any positions where this character doesn't appear.
- * @example
- *
- * // Basic usage: Add \a for the ALERT control code
- * XRegExp.addToken(
- *   /\\a/,
- *   () => '\\x07',
- *   {scope: 'all'}
- * );
- * XRegExp('\\a[\\a-\\n]+').test('\x07\n\x07'); // -> true
- *
- * // Add the U (ungreedy) flag from PCRE and RE2, which reverses greedy and lazy quantifiers.
- * // Since `scope` is not specified, it uses 'default' (i.e., transformations apply outside of
- * // character classes only)
- * XRegExp.addToken(
- *   /([?*+]|{\d+(?:,\d*)?})(\??)/,
- *   (match) => `${match[1]}${match[2] ? '' : '?'}`,
- *   {flag: 'U'}
- * );
- * XRegExp('a+', 'U').exec('aaa')[0]; // -> 'a'
- * XRegExp('a+?', 'U').exec('aaa')[0]; // -> 'aaa'
- */
-
-XRegExp.addToken = function (regex, handler, options) {
-  options = options || {};
-  var _options = options,
-      optionalFlags = _options.optionalFlags;
-
-  if (options.flag) {
-    registerFlag(options.flag);
-  }
-
-  if (optionalFlags) {
-    optionalFlags = nativ.split.call(optionalFlags, '');
-    var _iteratorNormalCompletion2 = true;
-    var _didIteratorError2 = false;
-    var _iteratorError2 = undefined;
-
-    try {
-      for (var _iterator2 = (0, _getIterator2.default)(optionalFlags), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
-        var flag = _step2.value;
-        registerFlag(flag);
-      }
-    } catch (err) {
-      _didIteratorError2 = true;
-      _iteratorError2 = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
-          _iterator2.return();
-        }
-      } finally {
-        if (_didIteratorError2) {
-          throw _iteratorError2;
-        }
-      }
-    }
-  } // Add to the private list of syntax tokens
-
-
-  tokens.push({
-    regex: copyRegex(regex, {
-      addG: true,
-      addY: hasNativeY,
-      isInternalOnly: true
-    }),
-    handler: handler,
-    scope: options.scope || defaultScope,
-    flag: options.flag,
-    reparse: options.reparse,
-    leadChar: options.leadChar
-  }); // Reset the pattern cache used by the `XRegExp` constructor, since the same pattern and flags
-  // might now produce different results
-
-  XRegExp.cache.flush('patterns');
-};
-/**
- * Caches and returns the result of calling `XRegExp(pattern, flags)`. On any subsequent call with
- * the same pattern and flag combination, the cached copy of the regex is returned.
- *
- * @memberOf XRegExp
- * @param {String} pattern Regex pattern string.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @returns {RegExp} Cached XRegExp object.
- * @example
- *
- * while (match = XRegExp.cache('.', 'gs').exec(str)) {
- *   // The regex is compiled once only
- * }
- */
-
-
-XRegExp.cache = function (pattern, flags) {
-  if (!regexCache[pattern]) {
-    regexCache[pattern] = {};
-  }
-
-  return regexCache[pattern][flags] || (regexCache[pattern][flags] = XRegExp(pattern, flags));
-}; // Intentionally undocumented; used in tests
-
-
-XRegExp.cache.flush = function (cacheName) {
-  if (cacheName === 'patterns') {
-    // Flush the pattern cache used by the `XRegExp` constructor
-    patternCache = {};
-  } else {
-    // Flush the regex cache populated by `XRegExp.cache`
-    regexCache = {};
-  }
-};
-/**
- * Escapes any regular expression metacharacters, for use when matching literal strings. The result
- * can safely be used at any point within a regex that uses any flags.
- *
- * @memberOf XRegExp
- * @param {String} str String to escape.
- * @returns {String} String with regex metacharacters escaped.
- * @example
- *
- * XRegExp.escape('Escaped? <.>');
- * // -> 'Escaped\?\ <\.>'
- */
-
-
-XRegExp.escape = function (str) {
-  return nativ.replace.call(toObject(str), /[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
-};
-/**
- * Executes a regex search in a specified string. Returns a match array or `null`. If the provided
- * regex uses named capture, named backreference properties are included on the match array.
- * Optional `pos` and `sticky` arguments specify the search start position, and whether the match
- * must start at the specified position only. The `lastIndex` property of the provided regex is not
- * used, but is updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.exec` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Array} Match array with named backreference properties, or `null`.
- * @example
- *
- * // Basic use, with named backreference
- * let match = XRegExp.exec('U+2620', XRegExp('U\\+(?<hex>[0-9A-F]{4})'));
- * match.hex; // -> '2620'
- *
- * // With pos and sticky, in a loop
- * let pos = 2, result = [], match;
- * while (match = XRegExp.exec('<1><2><3><4>5<6>', /<(\d)>/, pos, 'sticky')) {
- *   result.push(match[1]);
- *   pos = match.index + match[0].length;
- * }
- * // result -> ['2', '3', '4']
- */
-
-
-XRegExp.exec = function (str, regex, pos, sticky) {
-  var cacheKey = 'g';
-  var addY = false;
-  var fakeY = false;
-  var match;
-  addY = hasNativeY && !!(sticky || regex.sticky && sticky !== false);
-
-  if (addY) {
-    cacheKey += 'y';
-  } else if (sticky) {
-    // Simulate sticky matching by appending an empty capture to the original regex. The
-    // resulting regex will succeed no matter what at the current index (set with `lastIndex`),
-    // and will not search the rest of the subject string. We'll know that the original regex
-    // has failed if that last capture is `''` rather than `undefined` (i.e., if that last
-    // capture participated in the match).
-    fakeY = true;
-    cacheKey += 'FakeY';
-  }
-
-  regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.match`/`replace`
-
-  var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-    addG: true,
-    addY: addY,
-    source: fakeY ? "".concat(regex.source, "|()") : undefined,
-    removeY: sticky === false,
-    isInternalOnly: true
-  }));
-  pos = pos || 0;
-  r2.lastIndex = pos; // Fixed `exec` required for `lastIndex` fix, named backreferences, etc.
-
-  match = fixed.exec.call(r2, str); // Get rid of the capture added by the pseudo-sticky matcher if needed. An empty string means
-  // the original regexp failed (see above).
-
-  if (fakeY && match && match.pop() === '') {
-    match = null;
-  }
-
-  if (regex.global) {
-    regex.lastIndex = match ? r2.lastIndex : 0;
-  }
-
-  return match;
-};
-/**
- * Executes a provided function once per regex match. Searches always start at the beginning of the
- * string and continue until the end, regardless of the state of the regex's `global` property and
- * initial `lastIndex`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Function} callback Function to execute for each match. Invoked with four arguments:
- *   - The match array, with named backreference properties.
- *   - The zero-based match index.
- *   - The string being traversed.
- *   - The regex object being used to traverse the string.
- * @example
- *
- * // Extracts every other digit from a string
- * const evens = [];
- * XRegExp.forEach('1a2345', /\d/, (match, i) => {
- *   if (i % 2) evens.push(+match[0]);
- * });
- * // evens -> [2, 4]
- */
-
-
-XRegExp.forEach = function (str, regex, callback) {
-  var pos = 0;
-  var i = -1;
-  var match;
-
-  while (match = XRegExp.exec(str, regex, pos)) {
-    // Because `regex` is provided to `callback`, the function could use the deprecated/
-    // nonstandard `RegExp.prototype.compile` to mutate the regex. However, since `XRegExp.exec`
-    // doesn't use `lastIndex` to set the search position, this can't lead to an infinite loop,
-    // at least. Actually, because of the way `XRegExp.exec` caches globalized versions of
-    // regexes, mutating the regex will not have any effect on the iteration or matched strings,
-    // which is a nice side effect that brings extra safety.
-    callback(match, ++i, str, regex);
-    pos = match.index + (match[0].length || 1);
-  }
-};
-/**
- * Copies a regex object and adds flag `g`. The copy maintains extended data, is augmented with
- * `XRegExp.prototype` properties, and has a fresh `lastIndex` property (set to zero). Native
- * regexes are not recompiled using XRegExp syntax.
- *
- * @memberOf XRegExp
- * @param {RegExp} regex Regex to globalize.
- * @returns {RegExp} Copy of the provided regex with flag `g` added.
- * @example
- *
- * const globalCopy = XRegExp.globalize(/regex/);
- * globalCopy.global; // -> true
- */
-
-
-XRegExp.globalize = function (regex) {
-  return copyRegex(regex, {
-    addG: true
-  });
-};
-/**
- * Installs optional features according to the specified options. Can be undone using
- * `XRegExp.uninstall`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.install({
- *   // Enables support for astral code points in Unicode addons (implicitly sets flag A)
- *   astral: true,
- *
- *   // Adds named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.install('astral namespacing');
- */
-
-
-XRegExp.install = function (options) {
-  options = prepareOptions(options);
-
-  if (!features.astral && options.astral) {
-    setAstral(true);
-  }
-
-  if (!features.namespacing && options.namespacing) {
-    setNamespacing(true);
-  }
-};
-/**
- * Checks whether an individual optional feature is installed.
- *
- * @memberOf XRegExp
- * @param {String} feature Name of the feature to check. One of:
- *   - `astral`
- *   - `namespacing`
- * @returns {Boolean} Whether the feature is installed.
- * @example
- *
- * XRegExp.isInstalled('astral');
- */
-
-
-XRegExp.isInstalled = function (feature) {
-  return !!features[feature];
-};
-/**
- * Returns `true` if an object is a regex; `false` if it isn't. This works correctly for regexes
- * created in another frame, when `instanceof` and `constructor` checks would fail.
- *
- * @memberOf XRegExp
- * @param {*} value Object to check.
- * @returns {Boolean} Whether the object is a `RegExp` object.
- * @example
- *
- * XRegExp.isRegExp('string'); // -> false
- * XRegExp.isRegExp(/regex/i); // -> true
- * XRegExp.isRegExp(RegExp('^', 'm')); // -> true
- * XRegExp.isRegExp(XRegExp('(?s).')); // -> true
- */
-
-
-XRegExp.isRegExp = function (value) {
-  return toString.call(value) === '[object RegExp]';
-}; // isType(value, 'RegExp');
-
-/**
- * Returns the first matched string, or in global mode, an array containing all matched strings.
- * This is essentially a more convenient re-implementation of `String.prototype.match` that gives
- * the result types you actually want (string instead of `exec`-style array in match-first mode,
- * and an empty array instead of `null` when no matches are found in match-all mode). It also lets
- * you override flag g and ignore `lastIndex`, and fixes browser bugs.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {String} [scope='one'] Use 'one' to return the first match as a string. Use 'all' to
- *   return an array of all matched strings. If not explicitly specified and `regex` uses flag g,
- *   `scope` is 'all'.
- * @returns {String|Array} In match-first mode: First match as a string, or `null`. In match-all
- *   mode: Array of all matched strings, or an empty array.
- * @example
- *
- * // Match first
- * XRegExp.match('abc', /\w/); // -> 'a'
- * XRegExp.match('abc', /\w/g, 'one'); // -> 'a'
- * XRegExp.match('abc', /x/g, 'one'); // -> null
- *
- * // Match all
- * XRegExp.match('abc', /\w/g); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /\w/, 'all'); // -> ['a', 'b', 'c']
- * XRegExp.match('abc', /x/, 'all'); // -> []
- */
-
-
-XRegExp.match = function (str, regex, scope) {
-  var global = regex.global && scope !== 'one' || scope === 'all';
-  var cacheKey = (global ? 'g' : '') + (regex.sticky ? 'y' : '') || 'noGY';
-  regex[REGEX_DATA] = regex[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`replace`
-
-  var r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
-    addG: !!global,
-    removeG: scope === 'one',
-    isInternalOnly: true
-  }));
-  var result = nativ.match.call(toObject(str), r2);
-
-  if (regex.global) {
-    regex.lastIndex = scope === 'one' && result ? // Can't use `r2.lastIndex` since `r2` is nonglobal in this case
-    result.index + result[0].length : 0;
-  }
-
-  return global ? result || [] : result && result[0];
-};
-/**
- * Retrieves the matches from searching a string using a chain of regexes that successively search
- * within previous matches. The provided `chain` array can contain regexes and or objects with
- * `regex` and `backref` properties. When a backreference is specified, the named or numbered
- * backreference is passed forward to the next regex or returned.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} chain Regexes that each search for matches within preceding results.
- * @returns {Array} Matches by the last regex in the chain, or an empty array.
- * @example
- *
- * // Basic usage; matches numbers within <b> tags
- * XRegExp.matchChain('1 <b>2</b> 3 <b>4 a 56</b>', [
- *   XRegExp('(?is)<b>.*?</b>'),
- *   /\d+/
- * ]);
- * // -> ['2', '4', '56']
- *
- * // Passing forward and returning specific backreferences
- * html = '<a href="http://xregexp.com/api/">XRegExp</a>\
- *         <a href="http://www.google.com/">Google</a>';
- * XRegExp.matchChain(html, [
- *   {regex: /<a href="([^"]+)">/i, backref: 1},
- *   {regex: XRegExp('(?i)^https?://(?<domain>[^/?#]+)'), backref: 'domain'}
- * ]);
- * // -> ['xregexp.com', 'www.google.com']
- */
-
-
-XRegExp.matchChain = function (str, chain) {
-  return function recurseChain(values, level) {
-    var item = chain[level].regex ? chain[level] : {
-      regex: chain[level]
-    };
-    var matches = [];
-
-    function addMatch(match) {
-      if (item.backref) {
-        var ERR_UNDEFINED_GROUP = "Backreference to undefined group: ".concat(item.backref);
-        var isNamedBackref = isNaN(item.backref);
-
-        if (isNamedBackref && XRegExp.isInstalled('namespacing')) {
-          // `groups` has `null` as prototype, so using `in` instead of `hasOwnProperty`
-          if (!(item.backref in match.groups)) {
-            throw new ReferenceError(ERR_UNDEFINED_GROUP);
-          }
-        } else if (!match.hasOwnProperty(item.backref)) {
-          throw new ReferenceError(ERR_UNDEFINED_GROUP);
-        }
-
-        var backrefValue = isNamedBackref && XRegExp.isInstalled('namespacing') ? match.groups[item.backref] : match[item.backref];
-        matches.push(backrefValue || '');
-      } else {
-        matches.push(match[0]);
-      }
-    }
-
-    var _iteratorNormalCompletion3 = true;
-    var _didIteratorError3 = false;
-    var _iteratorError3 = undefined;
-
-    try {
-      for (var _iterator3 = (0, _getIterator2.default)(values), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
-        var value = _step3.value;
-        (0, _forEach.default)(XRegExp).call(XRegExp, value, item.regex, addMatch);
-      }
-    } catch (err) {
-      _didIteratorError3 = true;
-      _iteratorError3 = err;
-    } finally {
-      try {
-        if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
-          _iterator3.return();
-        }
-      } finally {
-        if (_didIteratorError3) {
-          throw _iteratorError3;
-        }
-      }
-    }
-
-    return level === chain.length - 1 || !matches.length ? matches : recurseChain(matches, level + 1);
-  }([str], 0);
-};
-/**
- * Returns a new string with one or all matches of a pattern replaced. The pattern can be a string
- * or regex, and the replacement can be a string or a function to be called for each match. To
- * perform a global search and replace, use the optional `scope` argument or include flag g if using
- * a regex. Replacement strings can use `${n}` or `$<n>` for named and numbered backreferences.
- * Replacement functions can use named backreferences via `arguments[0].name`. Also fixes browser
- * bugs compared to the native `String.prototype.replace` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- *   Replacement strings can include special replacement syntax:
- *     - $$ - Inserts a literal $ character.
- *     - $&, $0 - Inserts the matched substring.
- *     - $` - Inserts the string that precedes the matched substring (left context).
- *     - $' - Inserts the string that follows the matched substring (right context).
- *     - $n, $nn - Where n/nn are digits referencing an existent capturing group, inserts
- *       backreference n/nn.
- *     - ${n}, $<n> - Where n is a name or any number of digits that reference an existent capturing
- *       group, inserts backreference n.
- *   Replacement functions are invoked with three or more arguments:
- *     - The matched substring (corresponds to $& above). Named backreferences are accessible as
- *       properties of this first argument.
- *     - 0..n arguments, one for each backreference (corresponding to $1, $2, etc. above).
- *     - The zero-based index of the match within the total search string.
- *     - The total string being searched.
- * @param {String} [scope='one'] Use 'one' to replace the first match only, or 'all'. If not
- *   explicitly specified and using a regex with flag g, `scope` is 'all'.
- * @returns {String} New string with one or all matches replaced.
- * @example
- *
- * // Regex search, using named backreferences in replacement string
- * const name = XRegExp('(?<first>\\w+) (?<last>\\w+)');
- * XRegExp.replace('John Smith', name, '$<last>, $<first>');
- * // -> 'Smith, John'
- *
- * // Regex search, using named backreferences in replacement function
- * XRegExp.replace('John Smith', name, (match) => `${match.last}, ${match.first}`);
- * // -> 'Smith, John'
- *
- * // String search, with replace-all
- * XRegExp.replace('RegExp builds RegExps', 'RegExp', 'XRegExp', 'all');
- * // -> 'XRegExp builds XRegExps'
- */
-
-
-XRegExp.replace = function (str, search, replacement, scope) {
-  var isRegex = XRegExp.isRegExp(search);
-  var global = search.global && scope !== 'one' || scope === 'all';
-  var cacheKey = (global ? 'g' : '') + (search.sticky ? 'y' : '') || 'noGY';
-  var s2 = search;
-
-  if (isRegex) {
-    search[REGEX_DATA] = search[REGEX_DATA] || {}; // Shares cached copies with `XRegExp.exec`/`match`. Since a copy is used, `search`'s
-    // `lastIndex` isn't updated *during* replacement iterations
-
-    s2 = search[REGEX_DATA][cacheKey] || (search[REGEX_DATA][cacheKey] = copyRegex(search, {
-      addG: !!global,
-      removeG: scope === 'one',
-      isInternalOnly: true
-    }));
-  } else if (global) {
-    s2 = new RegExp(XRegExp.escape(String(search)), 'g');
-  } // Fixed `replace` required for named backreferences, etc.
-
-
-  var result = fixed.replace.call(toObject(str), s2, replacement);
-
-  if (isRegex && search.global) {
-    // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-    search.lastIndex = 0;
-  }
-
-  return result;
-};
-/**
- * Performs batch processing of string replacements. Used like `XRegExp.replace`, but accepts an
- * array of replacement details. Later replacements operate on the output of earlier replacements.
- * Replacement details are accepted as an array with a regex or string to search for, the
- * replacement string or function, and an optional scope of 'one' or 'all'. Uses the XRegExp
- * replacement text syntax, which supports named backreference properties via `${name}` or
- * `$<name>`.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {Array} replacements Array of replacement detail arrays.
- * @returns {String} New string with all replacements.
- * @example
- *
- * str = XRegExp.replaceEach(str, [
- *   [XRegExp('(?<name>a)'), 'z${name}'],
- *   [/b/gi, 'y'],
- *   [/c/g, 'x', 'one'], // scope 'one' overrides /g
- *   [/d/, 'w', 'all'],  // scope 'all' overrides lack of /g
- *   ['e', 'v', 'all'],  // scope 'all' allows replace-all for strings
- *   [/f/g, ($0) => $0.toUpperCase()]
- * ]);
- */
-
-
-XRegExp.replaceEach = function (str, replacements) {
-  var _iteratorNormalCompletion4 = true;
-  var _didIteratorError4 = false;
-  var _iteratorError4 = undefined;
-
-  try {
-    for (var _iterator4 = (0, _getIterator2.default)(replacements), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
-      var r = _step4.value;
-      str = XRegExp.replace(str, r[0], r[1], r[2]);
-    }
-  } catch (err) {
-    _didIteratorError4 = true;
-    _iteratorError4 = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
-        _iterator4.return();
-      }
-    } finally {
-      if (_didIteratorError4) {
-        throw _iteratorError4;
-      }
-    }
-  }
-
-  return str;
-};
-/**
- * Splits a string into an array of strings using a regex or string separator. Matches of the
- * separator are not included in the result array. However, if `separator` is a regex that contains
- * capturing groups, backreferences are spliced into the result each time `separator` is matched.
- * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably
- * cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to split.
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- * @example
- *
- * // Basic use
- * XRegExp.split('a b c', ' ');
- * // -> ['a', 'b', 'c']
- *
- * // With limit
- * XRegExp.split('a b c', ' ', 2);
- * // -> ['a', 'b']
- *
- * // Backreferences in result array
- * XRegExp.split('..word1..', /([a-z]+)(\d+)/i);
- * // -> ['..', 'word', '1', '..']
- */
-
-
-XRegExp.split = function (str, separator, limit) {
-  return fixed.split.call(toObject(str), separator, limit);
-};
-/**
- * Executes a regex search in a specified string. Returns `true` or `false`. Optional `pos` and
- * `sticky` arguments specify the search start position, and whether the match must start at the
- * specified position only. The `lastIndex` property of the provided regex is not used, but is
- * updated for compatibility. Also fixes browser bugs compared to the native
- * `RegExp.prototype.test` and can be used reliably cross-browser.
- *
- * @memberOf XRegExp
- * @param {String} str String to search.
- * @param {RegExp} regex Regex to search with.
- * @param {Number} [pos=0] Zero-based index at which to start the search.
- * @param {Boolean|String} [sticky=false] Whether the match must start at the specified position
- *   only. The string `'sticky'` is accepted as an alternative to `true`.
- * @returns {Boolean} Whether the regex matched the provided value.
- * @example
- *
- * // Basic use
- * XRegExp.test('abc', /c/); // -> true
- *
- * // With pos and sticky
- * XRegExp.test('abc', /c/, 0, 'sticky'); // -> false
- * XRegExp.test('abc', /c/, 2, 'sticky'); // -> true
- */
-// Do this the easy way :-)
-
-
-XRegExp.test = function (str, regex, pos, sticky) {
-  return !!XRegExp.exec(str, regex, pos, sticky);
-};
-/**
- * Uninstalls optional features according to the specified options. All optional features start out
- * uninstalled, so this is used to undo the actions of `XRegExp.install`.
- *
- * @memberOf XRegExp
- * @param {Object|String} options Options object or string.
- * @example
- *
- * // With an options object
- * XRegExp.uninstall({
- *   // Disables support for astral code points in Unicode addons
- *   astral: true,
- *
- *   // Don't add named capture groups to the `groups` property of matches
- *   namespacing: true
- * });
- *
- * // With an options string
- * XRegExp.uninstall('astral namespacing');
- */
-
-
-XRegExp.uninstall = function (options) {
-  options = prepareOptions(options);
-
-  if (features.astral && options.astral) {
-    setAstral(false);
-  }
-
-  if (features.namespacing && options.namespacing) {
-    setNamespacing(false);
-  }
-};
-/**
- * Returns an XRegExp object that is the union of the given patterns. Patterns can be provided as
- * regex objects or strings. Metacharacters are escaped in patterns provided as strings.
- * Backreferences in provided regex objects are automatically renumbered to work correctly within
- * the larger combined pattern. Native flags used by provided regexes are ignored in favor of the
- * `flags` argument.
- *
- * @memberOf XRegExp
- * @param {Array} patterns Regexes and strings to combine.
- * @param {String} [flags] Any combination of XRegExp flags.
- * @param {Object} [options] Options object with optional properties:
- *   - `conjunction` {String} Type of conjunction to use: 'or' (default) or 'none'.
- * @returns {RegExp} Union of the provided regexes and strings.
- * @example
- *
- * XRegExp.union(['a+b*c', /(dogs)\1/, /(cats)\1/], 'i');
- * // -> /a\+b\*c|(dogs)\1|(cats)\2/i
- *
- * XRegExp.union([/man/, /bear/, /pig/], 'i', {conjunction: 'none'});
- * // -> /manbearpig/i
- */
-
-
-XRegExp.union = function (patterns, flags, options) {
-  options = options || {};
-  var conjunction = options.conjunction || 'or';
-  var numCaptures = 0;
-  var numPriorCaptures;
-  var captureNames;
-
-  function rewrite(match, paren, backref) {
-    var name = captureNames[numCaptures - numPriorCaptures]; // Capturing group
-
-    if (paren) {
-      ++numCaptures; // If the current capture has a name, preserve the name
-
-      if (name) {
-        return "(?<".concat(name, ">");
-      } // Backreference
-
-    } else if (backref) {
-      // Rewrite the backreference
-      return "\\".concat(+backref + numPriorCaptures);
-    }
-
-    return match;
-  }
-
-  if (!(isType(patterns, 'Array') && patterns.length)) {
-    throw new TypeError('Must provide a nonempty array of patterns to merge');
-  }
-
-  var parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
-  var output = [];
-  var _iteratorNormalCompletion5 = true;
-  var _didIteratorError5 = false;
-  var _iteratorError5 = undefined;
-
-  try {
-    for (var _iterator5 = (0, _getIterator2.default)(patterns), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
-      var pattern = _step5.value;
-
-      if (XRegExp.isRegExp(pattern)) {
-        numPriorCaptures = numCaptures;
-        captureNames = pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames || []; // Rewrite backreferences. Passing to XRegExp dies on octals and ensures patterns are
-        // independently valid; helps keep this simple. Named captures are put back
-
-        output.push(nativ.replace.call(XRegExp(pattern.source).source, parts, rewrite));
-      } else {
-        output.push(XRegExp.escape(pattern));
-      }
-    }
-  } catch (err) {
-    _didIteratorError5 = true;
-    _iteratorError5 = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
-        _iterator5.return();
-      }
-    } finally {
-      if (_didIteratorError5) {
-        throw _iteratorError5;
-      }
-    }
-  }
-
-  var separator = conjunction === 'none' ? '' : '|';
-  return XRegExp(output.join(separator), flags);
-}; // ==--------------------------==
-// Fixed/extended native methods
-// ==--------------------------==
-
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `RegExp.prototype.exec`. Use via `XRegExp.exec`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Array} Match array with named backreference properties, or `null`.
- */
-
-
-fixed.exec = function (str) {
-  var origLastIndex = this.lastIndex;
-  var match = nativ.exec.apply(this, arguments);
-
-  if (match) {
-    // Fix browsers whose `exec` methods don't return `undefined` for nonparticipating capturing
-    // groups. This fixes IE 5.5-8, but not IE 9's quirks mode or emulation of older IEs. IE 9
-    // in standards mode follows the spec.
-    if (!correctExecNpcg && match.length > 1 && (0, _includes.default)(match).call(match, '')) {
-      var _context3;
-
-      var r2 = copyRegex(this, {
-        removeG: true,
-        isInternalOnly: true
-      }); // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
-      // matching due to characters outside the match
-
-      nativ.replace.call((0, _slice.default)(_context3 = String(str)).call(_context3, match.index), r2, function () {
-        var len = arguments.length; // Skip index 0 and the last 2
-
-        for (var i = 1; i < len - 2; ++i) {
-          if ((i < 0 || arguments.length <= i ? undefined : arguments[i]) === undefined) {
-            match[i] = undefined;
-          }
-        }
-      });
-    } // Attach named capture properties
-
-
-    var groupsObject = match;
-
-    if (XRegExp.isInstalled('namespacing')) {
-      // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-      match.groups = (0, _create.default)(null);
-      groupsObject = match.groups;
-    }
-
-    if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) {
-      // Skip index 0
-      for (var i = 1; i < match.length; ++i) {
-        var name = this[REGEX_DATA].captureNames[i - 1];
-
-        if (name) {
-          groupsObject[name] = match[i];
-        }
-      }
-    } // Fix browsers that increment `lastIndex` after zero-length matches
-
-
-    if (this.global && !match[0].length && this.lastIndex > match.index) {
-      this.lastIndex = match.index;
-    }
-  }
-
-  if (!this.global) {
-    // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-    this.lastIndex = origLastIndex;
-  }
-
-  return match;
-};
-/**
- * Fixes browser bugs in the native `RegExp.prototype.test`.
- *
- * @memberOf RegExp
- * @param {String} str String to search.
- * @returns {Boolean} Whether the regex matched the provided value.
- */
-
-
-fixed.test = function (str) {
-  // Do this the easy way :-)
-  return !!fixed.exec.call(this, str);
-};
-/**
- * Adds named capture support (with backreferences returned as `result.name`), and fixes browser
- * bugs in the native `String.prototype.match`.
- *
- * @memberOf String
- * @param {RegExp|*} regex Regex to search with. If not a regex object, it is passed to `RegExp`.
- * @returns {Array} If `regex` uses flag g, an array of match strings or `null`. Without flag g,
- *   the result of calling `regex.exec(this)`.
- */
-
-
-fixed.match = function (regex) {
-  if (!XRegExp.isRegExp(regex)) {
-    // Use the native `RegExp` rather than `XRegExp`
-    regex = new RegExp(regex);
-  } else if (regex.global) {
-    var result = nativ.match.apply(this, arguments); // Fixes IE bug
-
-    regex.lastIndex = 0;
-    return result;
-  }
-
-  return fixed.exec.call(regex, toObject(this));
-};
-/**
- * Adds support for `${n}` (or `$<n>`) tokens for named and numbered backreferences in replacement
- * text, and provides named backreferences to replacement functions as `arguments[0].name`. Also
- * fixes browser bugs in replacement text syntax when performing a replacement using a nonregex
- * search value, and the value of a replacement regex's `lastIndex` property during replacement
- * iterations and upon completion. Note that this doesn't support SpiderMonkey's proprietary third
- * (`flags`) argument. Use via `XRegExp.replace`.
- *
- * @memberOf String
- * @param {RegExp|String} search Search pattern to be replaced.
- * @param {String|Function} replacement Replacement string or a function invoked to create it.
- * @returns {String} New string with one or all matches replaced.
- */
-
-
-fixed.replace = function (search, replacement) {
-  var isRegex = XRegExp.isRegExp(search);
-  var origLastIndex;
-  var captureNames;
-  var result;
-
-  if (isRegex) {
-    if (search[REGEX_DATA]) {
-      captureNames = search[REGEX_DATA].captureNames;
-    } // Only needed if `search` is nonglobal
-
-
-    origLastIndex = search.lastIndex;
-  } else {
-    search += ''; // Type-convert
-  } // Don't use `typeof`; some older browsers return 'function' for regex objects
-
-
-  if (isType(replacement, 'Function')) {
-    // Stringifying `this` fixes a bug in IE < 9 where the last argument in replacement
-    // functions isn't type-converted to a string
-    result = nativ.replace.call(String(this), search, function () {
-      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
-        args[_key] = arguments[_key];
-      }
-
-      if (captureNames) {
-        var groupsObject;
-
-        if (XRegExp.isInstalled('namespacing')) {
-          // https://tc39.github.io/proposal-regexp-named-groups/#sec-regexpbuiltinexec
-          groupsObject = (0, _create.default)(null);
-          args.push(groupsObject);
-        } else {
-          // Change the `args[0]` string primitive to a `String` object that can store
-          // properties. This really does need to use `String` as a constructor
-          args[0] = new String(args[0]);
-          groupsObject = args[0];
-        } // Store named backreferences
-
-
-        for (var i = 0; i < captureNames.length; ++i) {
-          if (captureNames[i]) {
-            groupsObject[captureNames[i]] = args[i + 1];
-          }
-        }
-      } // Update `lastIndex` before calling `replacement`. Fixes IE, Chrome, Firefox, Safari
-      // bug (last tested IE 9, Chrome 17, Firefox 11, Safari 5.1)
-
-
-      if (isRegex && search.global) {
-        search.lastIndex = args[args.length - 2] + args[0].length;
-      } // ES6 specs the context for replacement functions as `undefined`
-
-
-      return replacement.apply(void 0, args);
-    });
-  } else {
-    // Ensure that the last value of `args` will be a string when given nonstring `this`,
-    // while still throwing on null or undefined context
-    result = nativ.replace.call(this == null ? this : String(this), search, function () {
-      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-        args[_key2] = arguments[_key2];
-      }
-
-      return nativ.replace.call(String(replacement), replacementToken, replacer);
-
-      function replacer($0, bracketed, angled, dollarToken) {
-        bracketed = bracketed || angled; // Named or numbered backreference with curly or angled braces
-
-        if (bracketed) {
-          // XRegExp behavior for `${n}` or `$<n>`:
-          // 1. Backreference to numbered capture, if `n` is an integer. Use `0` for the
-          //    entire match. Any number of leading zeros may be used.
-          // 2. Backreference to named capture `n`, if it exists and is not an integer
-          //    overridden by numbered capture. In practice, this does not overlap with
-          //    numbered capture since XRegExp does not allow named capture to use a bare
-          //    integer as the name.
-          // 3. If the name or number does not refer to an existing capturing group, it's
-          //    an error.
-          var n = +bracketed; // Type-convert; drop leading zeros
-
-          if (n <= args.length - 3) {
-            return args[n] || '';
-          } // Groups with the same name is an error, else would need `lastIndexOf`
-
-
-          n = captureNames ? (0, _indexOf.default)(captureNames).call(captureNames, bracketed) : -1;
-
-          if (n < 0) {
-            throw new SyntaxError("Backreference to undefined group ".concat($0));
-          }
-
-          return args[n + 1] || '';
-        } // Else, special variable or numbered backreference without curly braces
-
-
-        if (dollarToken === '$') {
-          // $$
-          return '$';
-        }
-
-        if (dollarToken === '&' || +dollarToken === 0) {
-          // $&, $0 (not followed by 1-9), $00
-          return args[0];
-        }
-
-        if (dollarToken === '`') {
-          var _context4;
-
-          // $` (left context)
-          return (0, _slice.default)(_context4 = args[args.length - 1]).call(_context4, 0, args[args.length - 2]);
-        }
-
-        if (dollarToken === "'") {
-          var _context5;
-
-          // $' (right context)
-          return (0, _slice.default)(_context5 = args[args.length - 1]).call(_context5, args[args.length - 2] + args[0].length);
-        } // Else, numbered backreference without braces
-
-
-        dollarToken = +dollarToken; // Type-convert; drop leading zero
-        // XRegExp behavior for `$n` and `$nn`:
-        // - Backrefs end after 1 or 2 digits. Use `${..}` or `$<..>` for more digits.
-        // - `$1` is an error if no capturing groups.
-        // - `$10` is an error if less than 10 capturing groups. Use `${1}0` or `$<1>0`
-        //   instead.
-        // - `$01` is `$1` if at least one capturing group, else it's an error.
-        // - `$0` (not followed by 1-9) and `$00` are the entire match.
-        // Native behavior, for comparison:
-        // - Backrefs end after 1 or 2 digits. Cannot reference capturing group 100+.
-        // - `$1` is a literal `$1` if no capturing groups.
-        // - `$10` is `$1` followed by a literal `0` if less than 10 capturing groups.
-        // - `$01` is `$1` if at least one capturing group, else it's a literal `$01`.
-        // - `$0` is a literal `$0`.
-
-        if (!isNaN(dollarToken)) {
-          if (dollarToken > args.length - 3) {
-            throw new SyntaxError("Backreference to undefined group ".concat($0));
-          }
-
-          return args[dollarToken] || '';
-        } // `$` followed by an unsupported char is an error, unlike native JS
-
-
-        throw new SyntaxError("Invalid token ".concat($0));
-      }
-    });
-  }
-
-  if (isRegex) {
-    if (search.global) {
-      // Fixes IE, Safari bug (last tested IE 9, Safari 5.1)
-      search.lastIndex = 0;
-    } else {
-      // Fixes IE, Opera bug (last tested IE 9, Opera 11.6)
-      search.lastIndex = origLastIndex;
-    }
-  }
-
-  return result;
-};
-/**
- * Fixes browser bugs in the native `String.prototype.split`. Use via `XRegExp.split`.
- *
- * @memberOf String
- * @param {RegExp|String} separator Regex or string to use for separating the string.
- * @param {Number} [limit] Maximum number of items to include in the result array.
- * @returns {Array} Array of substrings.
- */
-
-
-fixed.split = function (separator, limit) {
-  if (!XRegExp.isRegExp(separator)) {
-    // Browsers handle nonregex split correctly, so use the faster native method
-    return nativ.split.apply(this, arguments);
-  }
-
-  var str = String(this);
-  var output = [];
-  var origLastIndex = separator.lastIndex;
-  var lastLastIndex = 0;
-  var lastLength; // Values for `limit`, per the spec:
-  // If undefined: pow(2,32) - 1
-  // If 0, Infinity, or NaN: 0
-  // If positive number: limit = floor(limit); if (limit >= pow(2,32)) limit -= pow(2,32);
-  // If negative number: pow(2,32) - floor(abs(limit))
-  // If other: Type-convert, then use the above rules
-  // This line fails in very strange ways for some values of `limit` in Opera 10.5-10.63, unless
-  // Opera Dragonfly is open (go figure). It works in at least Opera 9.5-10.1 and 11+
-
-  limit = (limit === undefined ? -1 : limit) >>> 0;
-  (0, _forEach.default)(XRegExp).call(XRegExp, str, separator, function (match) {
-    // This condition is not the same as `if (match[0].length)`
-    if (match.index + match[0].length > lastLastIndex) {
-      output.push((0, _slice.default)(str).call(str, lastLastIndex, match.index));
-
-      if (match.length > 1 && match.index < str.length) {
-        Array.prototype.push.apply(output, (0, _slice.default)(match).call(match, 1));
-      }
-
-      lastLength = match[0].length;
-      lastLastIndex = match.index + lastLength;
-    }
-  });
-
-  if (lastLastIndex === str.length) {
-    if (!nativ.test.call(separator, '') || lastLength) {
-      output.push('');
-    }
-  } else {
-    output.push((0, _slice.default)(str).call(str, lastLastIndex));
-  }
-
-  separator.lastIndex = origLastIndex;
-  return output.length > limit ? (0, _slice.default)(output).call(output, 0, limit) : output;
-}; // ==--------------------------==
-// Built-in syntax/flag tokens
-// ==--------------------------==
-
-/*
- * Letter escapes that natively match literal characters: `\a`, `\A`, etc. These should be
- * SyntaxErrors but are allowed in web reality. XRegExp makes them errors for cross-browser
- * consistency and to reserve their syntax, but lets them be superseded by addons.
- */
-
-
-XRegExp.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/, function (match, scope) {
-  // \B is allowed in default scope only
-  if (match[1] === 'B' && scope === defaultScope) {
-    return match[0];
-  }
-
-  throw new SyntaxError("Invalid escape ".concat(match[0]));
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Unicode code point escape with curly braces: `\u{N..}`. `N..` is any one or more digit
- * hexadecimal number from 0-10FFFF, and can include leading zeros. Requires the native ES6 `u` flag
- * to support code points greater than U+FFFF. Avoids converting code points above U+FFFF to
- * surrogate pairs (which could be done without flag `u`), since that could lead to broken behavior
- * if you follow a `\u{N..}` token that references a code point above U+FFFF with a quantifier, or
- * if you use the same in a character class.
- */
-
-XRegExp.addToken(/\\u{([\dA-Fa-f]+)}/, function (match, scope, flags) {
-  var code = dec(match[1]);
-
-  if (code > 0x10FFFF) {
-    throw new SyntaxError("Invalid Unicode code point ".concat(match[0]));
-  }
-
-  if (code <= 0xFFFF) {
-    // Converting to \uNNNN avoids needing to escape the literal character and keep it
-    // separate from preceding tokens
-    return "\\u".concat(pad4(hex(code)));
-  } // If `code` is between 0xFFFF and 0x10FFFF, require and defer to native handling
-
-
-  if (hasNativeU && (0, _includes.default)(flags).call(flags, 'u')) {
-    return match[0];
-  }
-
-  throw new SyntaxError('Cannot use Unicode code point above \\u{FFFF} without flag u');
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Empty character class: `[]` or `[^]`. This fixes a critical cross-browser syntax inconsistency.
- * Unless this is standardized (per the ES spec), regex syntax can't be accurately parsed because
- * character class endings can't be determined.
- */
-
-XRegExp.addToken(/\[(\^?)\]/, // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S].
-// (?!) should work like \b\B, but is unreliable in some versions of Firefox
-
-/* eslint-disable no-confusing-arrow */
-function (match) {
-  return match[1] ? '[\\s\\S]' : '\\b\\B';
-},
-/* eslint-enable no-confusing-arrow */
-{
-  leadChar: '['
-});
-/*
- * Comment pattern: `(?# )`. Inline comments are an alternative to the line comments allowed in
- * free-spacing mode (flag x).
- */
-
-XRegExp.addToken(/\(\?#[^)]*\)/, getContextualTokenSeparator, {
-  leadChar: '('
-});
-/*
- * Whitespace and line comments, in free-spacing mode (aka extended mode, flag x) only.
- */
-
-XRegExp.addToken(/\s+|#[^\n]*\n?/, getContextualTokenSeparator, {
-  flag: 'x'
-});
-/*
- * Dot, in dotall mode (aka singleline mode, flag s) only.
- */
-
-XRegExp.addToken(/\./, function () {
-  return '[\\s\\S]';
-}, {
-  flag: 's',
-  leadChar: '.'
-});
-/*
- * Named backreference: `\k<name>`. Backreference names can use the characters A-Z, a-z, 0-9, _,
- * and $ only. Also allows numbered backreferences as `\k<n>`.
- */
-
-XRegExp.addToken(/\\k<([\w$]+)>/, function (match) {
-  var _context6, _context7;
-
-  // Groups with the same name is an error, else would need `lastIndexOf`
-  var index = isNaN(match[1]) ? (0, _indexOf.default)(_context6 = this.captureNames).call(_context6, match[1]) + 1 : +match[1];
-  var endIndex = match.index + match[0].length;
-
-  if (!index || index > this.captureNames.length) {
-    throw new SyntaxError("Backreference to undefined group ".concat(match[0]));
-  } // Keep backreferences separate from subsequent literal numbers. This avoids e.g.
-  // inadvertedly changing `(?<n>)\k<n>1` to `()\11`.
-
-
-  return (0, _concat.default)(_context7 = "\\".concat(index)).call(_context7, endIndex === match.input.length || isNaN(match.input[endIndex]) ? '' : '(?:)');
-}, {
-  leadChar: '\\'
-});
-/*
- * Numbered backreference or octal, plus any following digits: `\0`, `\11`, etc. Octals except `\0`
- * not followed by 0-9 and backreferences to unopened capture groups throw an error. Other matches
- * are returned unaltered. IE < 9 doesn't support backreferences above `\99` in regex syntax.
- */
-
-XRegExp.addToken(/\\(\d+)/, function (match, scope) {
-  if (!(scope === defaultScope && /^[1-9]/.test(match[1]) && +match[1] <= this.captureNames.length) && match[1] !== '0') {
-    throw new SyntaxError("Cannot use octal escape or backreference to undefined group ".concat(match[0]));
-  }
-
-  return match[0];
-}, {
-  scope: 'all',
-  leadChar: '\\'
-});
-/*
- * Named capturing group; match the opening delimiter only: `(?<name>`. Capture names can use the
- * characters A-Z, a-z, 0-9, _, and $ only. Names can't be integers. Supports Python-style
- * `(?P<name>` as an alternate syntax to avoid issues in some older versions of Opera which natively
- * supported the Python-style syntax. Otherwise, XRegExp might treat numbered backreferences to
- * Python-style named capture as octals.
- */
-
-XRegExp.addToken(/\(\?P?<([\w$]+)>/, function (match) {
-  var _context8;
-
-  // Disallow bare integers as names because named backreferences are added to match arrays
-  // and therefore numeric properties may lead to incorrect lookups
-  if (!isNaN(match[1])) {
-    throw new SyntaxError("Cannot use integer as capture name ".concat(match[0]));
-  }
-
-  if (!XRegExp.isInstalled('namespacing') && (match[1] === 'length' || match[1] === '__proto__')) {
-    throw new SyntaxError("Cannot use reserved word as capture name ".concat(match[0]));
-  }
-
-  if ((0, _includes.default)(_context8 = this.captureNames).call(_context8, match[1])) {
-    throw new SyntaxError("Cannot use same name for multiple groups ".concat(match[0]));
-  }
-
-  this.captureNames.push(match[1]);
-  this.hasNamedCapture = true;
-  return '(';
-}, {
-  leadChar: '('
-});
-/*
- * Capturing group; match the opening parenthesis only. Required for support of named capturing
- * groups. Also adds explicit capture mode (flag n).
- */
-
-XRegExp.addToken(/\((?!\?)/, function (match, scope, flags) {
-  if ((0, _includes.default)(flags).call(flags, 'n')) {
-    return '(?:';
-  }
-
-  this.captureNames.push(null);
-  return '(';
-}, {
-  optionalFlags: 'n',
-  leadChar: '('
-});
-var _default = XRegExp;
-exports.default = _default;
-module.exports = exports["default"];
-},{"@babel/runtime-corejs3/core-js-stable/instance/concat":10,"@babel/runtime-corejs3/core-js-stable/instance/flags":11,"@babel/runtime-corejs3/core-js-stable/instance/for-each":12,"@babel/runtime-corejs3/core-js-stable/instance/includes":13,"@babel/runtime-corejs3/core-js-stable/instance/index-of":14,"@babel/runtime-corejs3/core-js-stable/instance/slice":17,"@babel/runtime-corejs3/core-js-stable/instance/sort":18,"@babel/runtime-corejs3/core-js-stable/object/create":19,"@babel/runtime-corejs3/core-js-stable/object/define-property":20,"@babel/runtime-corejs3/core-js-stable/parse-int":21,"@babel/runtime-corejs3/core-js/get-iterator":23,"@babel/runtime-corejs3/helpers/interopRequireDefault":26,"@babel/runtime-corejs3/helpers/slicedToArray":29}],10:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/concat");
-},{"core-js-pure/stable/instance/concat":159}],11:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/flags");
-},{"core-js-pure/stable/instance/flags":160}],12:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/for-each");
-},{"core-js-pure/stable/instance/for-each":161}],13:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/includes");
-},{"core-js-pure/stable/instance/includes":162}],14:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/index-of");
-},{"core-js-pure/stable/instance/index-of":163}],15:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/map");
-},{"core-js-pure/stable/instance/map":164}],16:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/reduce");
-},{"core-js-pure/stable/instance/reduce":165}],17:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/slice");
-},{"core-js-pure/stable/instance/slice":166}],18:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/instance/sort");
-},{"core-js-pure/stable/instance/sort":167}],19:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/object/create");
-},{"core-js-pure/stable/object/create":168}],20:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/object/define-property");
-},{"core-js-pure/stable/object/define-property":169}],21:[function(require,module,exports){
-module.exports = require("core-js-pure/stable/parse-int");
-},{"core-js-pure/stable/parse-int":170}],22:[function(require,module,exports){
-module.exports = require("core-js-pure/features/array/is-array");
-},{"core-js-pure/features/array/is-array":52}],23:[function(require,module,exports){
-module.exports = require("core-js-pure/features/get-iterator");
-},{"core-js-pure/features/get-iterator":53}],24:[function(require,module,exports){
-module.exports = require("core-js-pure/features/is-iterable");
-},{"core-js-pure/features/is-iterable":54}],25:[function(require,module,exports){
-var _Array$isArray = require("../core-js/array/is-array");
-
-function _arrayWithHoles(arr) {
-  if (_Array$isArray(arr)) return arr;
-}
-
-module.exports = _arrayWithHoles;
-},{"../core-js/array/is-array":22}],26:[function(require,module,exports){
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
-
-module.exports = _interopRequireDefault;
-},{}],27:[function(require,module,exports){
-var _getIterator = require("../core-js/get-iterator");
-
-var _isIterable = require("../core-js/is-iterable");
-
-function _iterableToArrayLimit(arr, i) {
-  if (!(_isIterable(Object(arr)) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
-    return;
-  }
-
-  var _arr = [];
-  var _n = true;
-  var _d = false;
-  var _e = undefined;
-
-  try {
-    for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
-      _arr.push(_s.value);
-
-      if (i && _arr.length === i) break;
-    }
-  } catch (err) {
-    _d = true;
-    _e = err;
-  } finally {
-    try {
-      if (!_n && _i["return"] != null) _i["return"]();
-    } finally {
-      if (_d) throw _e;
-    }
-  }
-
-  return _arr;
-}
-
-module.exports = _iterableToArrayLimit;
-},{"../core-js/get-iterator":23,"../core-js/is-iterable":24}],28:[function(require,module,exports){
-function _nonIterableRest() {
-  throw new TypeError("Invalid attempt to destructure non-iterable instance");
-}
-
-module.exports = _nonIterableRest;
-},{}],29:[function(require,module,exports){
-var arrayWithHoles = require("./arrayWithHoles");
-
-var iterableToArrayLimit = require("./iterableToArrayLimit");
-
-var nonIterableRest = require("./nonIterableRest");
-
-function _slicedToArray(arr, i) {
-  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
-}
-
-module.exports = _slicedToArray;
-},{"./arrayWithHoles":25,"./iterableToArrayLimit":27,"./nonIterableRest":28}],30:[function(require,module,exports){
-require('../../modules/es.array.is-array');
-var path = require('../../internals/path');
-
-module.exports = path.Array.isArray;
-
-},{"../../internals/path":119,"../../modules/es.array.is-array":145}],31:[function(require,module,exports){
-require('../../../modules/es.array.concat');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').concat;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.concat":141}],32:[function(require,module,exports){
-require('../../../modules/es.array.for-each');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').forEach;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.for-each":142}],33:[function(require,module,exports){
-require('../../../modules/es.array.includes');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').includes;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.includes":143}],34:[function(require,module,exports){
-require('../../../modules/es.array.index-of');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').indexOf;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.index-of":144}],35:[function(require,module,exports){
-require('../../../modules/es.array.map');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').map;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.map":147}],36:[function(require,module,exports){
-require('../../../modules/es.array.reduce');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').reduce;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.reduce":148}],37:[function(require,module,exports){
-require('../../../modules/es.array.slice');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').slice;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.slice":149}],38:[function(require,module,exports){
-require('../../../modules/es.array.sort');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('Array').sort;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.array.sort":150}],39:[function(require,module,exports){
-var concat = require('../array/virtual/concat');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.concat;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.concat) ? concat : own;
-};
-
-},{"../array/virtual/concat":31}],40:[function(require,module,exports){
-var flags = require('../regexp/flags');
-
-var RegExpPrototype = RegExp.prototype;
-
-module.exports = function (it) {
-  return (it === RegExpPrototype || it instanceof RegExp) && !('flags' in it) ? flags(it) : it.flags;
-};
-
-},{"../regexp/flags":50}],41:[function(require,module,exports){
-var arrayIncludes = require('../array/virtual/includes');
-var stringIncludes = require('../string/virtual/includes');
-
-var ArrayPrototype = Array.prototype;
-var StringPrototype = String.prototype;
-
-module.exports = function (it) {
-  var own = it.includes;
-  if (it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.includes)) return arrayIncludes;
-  if (typeof it === 'string' || it === StringPrototype || (it instanceof String && own === StringPrototype.includes)) {
-    return stringIncludes;
-  } return own;
-};
-
-},{"../array/virtual/includes":33,"../string/virtual/includes":51}],42:[function(require,module,exports){
-var indexOf = require('../array/virtual/index-of');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.indexOf;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.indexOf) ? indexOf : own;
-};
-
-},{"../array/virtual/index-of":34}],43:[function(require,module,exports){
-var map = require('../array/virtual/map');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.map;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.map) ? map : own;
-};
-
-},{"../array/virtual/map":35}],44:[function(require,module,exports){
-var reduce = require('../array/virtual/reduce');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.reduce;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduce) ? reduce : own;
-};
-
-},{"../array/virtual/reduce":36}],45:[function(require,module,exports){
-var slice = require('../array/virtual/slice');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.slice;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.slice) ? slice : own;
-};
-
-},{"../array/virtual/slice":37}],46:[function(require,module,exports){
-var sort = require('../array/virtual/sort');
-
-var ArrayPrototype = Array.prototype;
-
-module.exports = function (it) {
-  var own = it.sort;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.sort) ? sort : own;
-};
-
-},{"../array/virtual/sort":38}],47:[function(require,module,exports){
-require('../../modules/es.object.create');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-module.exports = function create(P, D) {
-  return Object.create(P, D);
-};
-
-},{"../../internals/path":119,"../../modules/es.object.create":151}],48:[function(require,module,exports){
-require('../../modules/es.object.define-property');
-var path = require('../../internals/path');
-
-var Object = path.Object;
-
-var defineProperty = module.exports = function defineProperty(it, key, desc) {
-  return Object.defineProperty(it, key, desc);
-};
-
-if (Object.defineProperty.sham) defineProperty.sham = true;
-
-},{"../../internals/path":119,"../../modules/es.object.define-property":152}],49:[function(require,module,exports){
-require('../modules/es.parse-int');
-var path = require('../internals/path');
-
-module.exports = path.parseInt;
-
-},{"../internals/path":119,"../modules/es.parse-int":153}],50:[function(require,module,exports){
-require('../../modules/es.regexp.flags');
-var flags = require('../../internals/regexp-flags');
-
-module.exports = function (it) {
-  return flags.call(it);
-};
-
-},{"../../internals/regexp-flags":121,"../../modules/es.regexp.flags":154}],51:[function(require,module,exports){
-require('../../../modules/es.string.includes');
-var entryVirtual = require('../../../internals/entry-virtual');
-
-module.exports = entryVirtual('String').includes;
-
-},{"../../../internals/entry-virtual":81,"../../../modules/es.string.includes":155}],52:[function(require,module,exports){
-var parent = require('../../es/array/is-array');
-
-module.exports = parent;
-
-},{"../../es/array/is-array":30}],53:[function(require,module,exports){
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-var getIterator = require('../internals/get-iterator');
-
-module.exports = getIterator;
-
-},{"../internals/get-iterator":88,"../modules/es.string.iterator":156,"../modules/web.dom-collections.iterator":157}],54:[function(require,module,exports){
-require('../modules/web.dom-collections.iterator');
-require('../modules/es.string.iterator');
-var isIterable = require('../internals/is-iterable');
-
-module.exports = isIterable;
-
-},{"../internals/is-iterable":99,"../modules/es.string.iterator":156,"../modules/web.dom-collections.iterator":157}],55:[function(require,module,exports){
-module.exports = function (it) {
-  if (typeof it != 'function') {
-    throw TypeError(String(it) + ' is not a function');
-  } return it;
-};
-
-},{}],56:[function(require,module,exports){
-var isObject = require('../internals/is-object');
-
-module.exports = function (it) {
-  if (!isObject(it) && it !== null) {
-    throw TypeError("Can't set " + String(it) + ' as a prototype');
-  } return it;
-};
-
-},{"../internals/is-object":100}],57:[function(require,module,exports){
-module.exports = function () { /* empty */ };
-
-},{}],58:[function(require,module,exports){
-var isObject = require('../internals/is-object');
-
-module.exports = function (it) {
-  if (!isObject(it)) {
-    throw TypeError(String(it) + ' is not an object');
-  } return it;
-};
-
-},{"../internals/is-object":100}],59:[function(require,module,exports){
-'use strict';
-var $forEach = require('../internals/array-iteration').forEach;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('forEach');
-var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
-
-// `Array.prototype.forEach` method implementation
-// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
-  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-} : [].forEach;
-
-},{"../internals/array-iteration":61,"../internals/array-method-is-strict":63,"../internals/array-method-uses-to-length":64}],60:[function(require,module,exports){
-var toIndexedObject = require('../internals/to-indexed-object');
-var toLength = require('../internals/to-length');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-
-// `Array.prototype.{ indexOf, includes }` methods implementation
-var createMethod = function (IS_INCLUDES) {
-  return function ($this, el, fromIndex) {
-    var O = toIndexedObject($this);
-    var length = toLength(O.length);
-    var index = toAbsoluteIndex(fromIndex, length);
-    var value;
-    // Array#includes uses SameValueZero equality algorithm
-    // eslint-disable-next-line no-self-compare
-    if (IS_INCLUDES && el != el) while (length > index) {
-      value = O[index++];
-      // eslint-disable-next-line no-self-compare
-      if (value != value) return true;
-    // Array#indexOf ignores holes, Array#includes - not
-    } else for (;length > index; index++) {
-      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
-    } return !IS_INCLUDES && -1;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.includes` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
-  includes: createMethod(true),
-  // `Array.prototype.indexOf` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
-  indexOf: createMethod(false)
-};
-
-},{"../internals/to-absolute-index":130,"../internals/to-indexed-object":131,"../internals/to-length":133}],61:[function(require,module,exports){
-var bind = require('../internals/function-bind-context');
-var IndexedObject = require('../internals/indexed-object');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var arraySpeciesCreate = require('../internals/array-species-create');
-
-var push = [].push;
-
-// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
-var createMethod = function (TYPE) {
-  var IS_MAP = TYPE == 1;
-  var IS_FILTER = TYPE == 2;
-  var IS_SOME = TYPE == 3;
-  var IS_EVERY = TYPE == 4;
-  var IS_FIND_INDEX = TYPE == 6;
-  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
-  return function ($this, callbackfn, that, specificCreate) {
-    var O = toObject($this);
-    var self = IndexedObject(O);
-    var boundFunction = bind(callbackfn, that, 3);
-    var length = toLength(self.length);
-    var index = 0;
-    var create = specificCreate || arraySpeciesCreate;
-    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
-    var value, result;
-    for (;length > index; index++) if (NO_HOLES || index in self) {
-      value = self[index];
-      result = boundFunction(value, index, O);
-      if (TYPE) {
-        if (IS_MAP) target[index] = result; // map
-        else if (result) switch (TYPE) {
-          case 3: return true;              // some
-          case 5: return value;             // find
-          case 6: return index;             // findIndex
-          case 2: push.call(target, value); // filter
-        } else if (IS_EVERY) return false;  // every
-      }
-    }
-    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.forEach` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-  forEach: createMethod(0),
-  // `Array.prototype.map` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.map
-  map: createMethod(1),
-  // `Array.prototype.filter` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.filter
-  filter: createMethod(2),
-  // `Array.prototype.some` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.some
-  some: createMethod(3),
-  // `Array.prototype.every` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.every
-  every: createMethod(4),
-  // `Array.prototype.find` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.find
-  find: createMethod(5),
-  // `Array.prototype.findIndex` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
-  findIndex: createMethod(6)
-};
-
-},{"../internals/array-species-create":66,"../internals/function-bind-context":85,"../internals/indexed-object":94,"../internals/to-length":133,"../internals/to-object":134}],62:[function(require,module,exports){
-var fails = require('../internals/fails');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var V8_VERSION = require('../internals/engine-v8-version');
-
-var SPECIES = wellKnownSymbol('species');
-
-module.exports = function (METHOD_NAME) {
-  // We can't use this feature detection in V8 since it causes
-  // deoptimization and serious performance degradation
-  // https://github.com/zloirock/core-js/issues/677
-  return V8_VERSION >= 51 || !fails(function () {
-    var array = [];
-    var constructor = array.constructor = {};
-    constructor[SPECIES] = function () {
-      return { foo: 1 };
-    };
-    return array[METHOD_NAME](Boolean).foo !== 1;
-  });
-};
-
-},{"../internals/engine-v8-version":80,"../internals/fails":84,"../internals/well-known-symbol":139}],63:[function(require,module,exports){
-'use strict';
-var fails = require('../internals/fails');
-
-module.exports = function (METHOD_NAME, argument) {
-  var method = [][METHOD_NAME];
-  return !!method && fails(function () {
-    // eslint-disable-next-line no-useless-call,no-throw-literal
-    method.call(null, argument || function () { throw 1; }, 1);
-  });
-};
-
-},{"../internals/fails":84}],64:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var fails = require('../internals/fails');
-var has = require('../internals/has');
-
-var defineProperty = Object.defineProperty;
-var cache = {};
-
-var thrower = function (it) { throw it; };
-
-module.exports = function (METHOD_NAME, options) {
-  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
-  if (!options) options = {};
-  var method = [][METHOD_NAME];
-  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
-  var argument0 = has(options, 0) ? options[0] : thrower;
-  var argument1 = has(options, 1) ? options[1] : undefined;
-
-  return cache[METHOD_NAME] = !!method && !fails(function () {
-    if (ACCESSORS && !DESCRIPTORS) return true;
-    var O = { length: -1 };
-
-    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
-    else O[1] = 1;
-
-    method.call(O, argument0, argument1);
-  });
-};
-
-},{"../internals/descriptors":76,"../internals/fails":84,"../internals/has":90}],65:[function(require,module,exports){
-var aFunction = require('../internals/a-function');
-var toObject = require('../internals/to-object');
-var IndexedObject = require('../internals/indexed-object');
-var toLength = require('../internals/to-length');
-
-// `Array.prototype.{ reduce, reduceRight }` methods implementation
-var createMethod = function (IS_RIGHT) {
-  return function (that, callbackfn, argumentsLength, memo) {
-    aFunction(callbackfn);
-    var O = toObject(that);
-    var self = IndexedObject(O);
-    var length = toLength(O.length);
-    var index = IS_RIGHT ? length - 1 : 0;
-    var i = IS_RIGHT ? -1 : 1;
-    if (argumentsLength < 2) while (true) {
-      if (index in self) {
-        memo = self[index];
-        index += i;
-        break;
-      }
-      index += i;
-      if (IS_RIGHT ? index < 0 : length <= index) {
-        throw TypeError('Reduce of empty array with no initial value');
-      }
-    }
-    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
-      memo = callbackfn(memo, self[index], index, O);
-    }
-    return memo;
-  };
-};
-
-module.exports = {
-  // `Array.prototype.reduce` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
-  left: createMethod(false),
-  // `Array.prototype.reduceRight` method
-  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
-  right: createMethod(true)
-};
-
-},{"../internals/a-function":55,"../internals/indexed-object":94,"../internals/to-length":133,"../internals/to-object":134}],66:[function(require,module,exports){
-var isObject = require('../internals/is-object');
-var isArray = require('../internals/is-array');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var SPECIES = wellKnownSymbol('species');
-
-// `ArraySpeciesCreate` abstract operation
-// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
-module.exports = function (originalArray, length) {
-  var C;
-  if (isArray(originalArray)) {
-    C = originalArray.constructor;
-    // cross-realm fallback
-    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
-    else if (isObject(C)) {
-      C = C[SPECIES];
-      if (C === null) C = undefined;
-    }
-  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
-};
-
-},{"../internals/is-array":97,"../internals/is-object":100,"../internals/well-known-symbol":139}],67:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = function (it) {
-  return toString.call(it).slice(8, -1);
-};
-
-},{}],68:[function(require,module,exports){
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var classofRaw = require('../internals/classof-raw');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-// ES3 wrong here
-var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
-
-// fallback for IE11 Script Access Denied error
-var tryGet = function (it, key) {
-  try {
-    return it[key];
-  } catch (error) { /* empty */ }
-};
-
-// getting tag from ES6+ `Object.prototype.toString`
-module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
-  var O, tag, result;
-  return it === undefined ? 'Undefined' : it === null ? 'Null'
-    // @@toStringTag case
-    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
-    // builtinTag case
-    : CORRECT_ARGUMENTS ? classofRaw(O)
-    // ES3 arguments fallback
-    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
-};
-
-},{"../internals/classof-raw":67,"../internals/to-string-tag-support":136,"../internals/well-known-symbol":139}],69:[function(require,module,exports){
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var MATCH = wellKnownSymbol('match');
-
-module.exports = function (METHOD_NAME) {
-  var regexp = /./;
-  try {
-    '/./'[METHOD_NAME](regexp);
-  } catch (e) {
-    try {
-      regexp[MATCH] = false;
-      return '/./'[METHOD_NAME](regexp);
-    } catch (f) { /* empty */ }
-  } return false;
-};
-
-},{"../internals/well-known-symbol":139}],70:[function(require,module,exports){
-var fails = require('../internals/fails');
-
-module.exports = !fails(function () {
-  function F() { /* empty */ }
-  F.prototype.constructor = null;
-  return Object.getPrototypeOf(new F()) !== F.prototype;
-});
-
-},{"../internals/fails":84}],71:[function(require,module,exports){
-'use strict';
-var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
-var create = require('../internals/object-create');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var setToStringTag = require('../internals/set-to-string-tag');
-var Iterators = require('../internals/iterators');
-
-var returnThis = function () { return this; };
-
-module.exports = function (IteratorConstructor, NAME, next) {
-  var TO_STRING_TAG = NAME + ' Iterator';
-  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
-  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
-  Iterators[TO_STRING_TAG] = returnThis;
-  return IteratorConstructor;
-};
-
-},{"../internals/create-property-descriptor":73,"../internals/iterators":104,"../internals/iterators-core":103,"../internals/object-create":109,"../internals/set-to-string-tag":124}],72:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var definePropertyModule = require('../internals/object-define-property');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-
-module.exports = DESCRIPTORS ? function (object, key, value) {
-  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
-} : function (object, key, value) {
-  object[key] = value;
-  return object;
-};
-
-},{"../internals/create-property-descriptor":73,"../internals/descriptors":76,"../internals/object-define-property":111}],73:[function(require,module,exports){
-module.exports = function (bitmap, value) {
-  return {
-    enumerable: !(bitmap & 1),
-    configurable: !(bitmap & 2),
-    writable: !(bitmap & 4),
-    value: value
-  };
-};
-
-},{}],74:[function(require,module,exports){
-'use strict';
-var toPrimitive = require('../internals/to-primitive');
-var definePropertyModule = require('../internals/object-define-property');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-
-module.exports = function (object, key, value) {
-  var propertyKey = toPrimitive(key);
-  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
-  else object[propertyKey] = value;
-};
-
-},{"../internals/create-property-descriptor":73,"../internals/object-define-property":111,"../internals/to-primitive":135}],75:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var createIteratorConstructor = require('../internals/create-iterator-constructor');
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var setPrototypeOf = require('../internals/object-set-prototype-of');
-var setToStringTag = require('../internals/set-to-string-tag');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var redefine = require('../internals/redefine');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-var Iterators = require('../internals/iterators');
-var IteratorsCore = require('../internals/iterators-core');
-
-var IteratorPrototype = IteratorsCore.IteratorPrototype;
-var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
-var ITERATOR = wellKnownSymbol('iterator');
-var KEYS = 'keys';
-var VALUES = 'values';
-var ENTRIES = 'entries';
-
-var returnThis = function () { return this; };
-
-module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
-  createIteratorConstructor(IteratorConstructor, NAME, next);
-
-  var getIterationMethod = function (KIND) {
-    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
-    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
-    switch (KIND) {
-      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
-      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
-      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
-    } return function () { return new IteratorConstructor(this); };
-  };
-
-  var TO_STRING_TAG = NAME + ' Iterator';
-  var INCORRECT_VALUES_NAME = false;
-  var IterablePrototype = Iterable.prototype;
-  var nativeIterator = IterablePrototype[ITERATOR]
-    || IterablePrototype['@@iterator']
-    || DEFAULT && IterablePrototype[DEFAULT];
-  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
-  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
-  var CurrentIteratorPrototype, methods, KEY;
-
-  // fix native
-  if (anyNativeIterator) {
-    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
-    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
-      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
-        if (setPrototypeOf) {
-          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
-        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
-          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
-        }
-      }
-      // Set @@toStringTag to native iterators
-      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
-      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
-    }
-  }
-
-  // fix Array#{values, @@iterator}.name in V8 / FF
-  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
-    INCORRECT_VALUES_NAME = true;
-    defaultIterator = function values() { return nativeIterator.call(this); };
-  }
-
-  // define iterator
-  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
-    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
-  }
-  Iterators[NAME] = defaultIterator;
-
-  // export additional methods
-  if (DEFAULT) {
-    methods = {
-      values: getIterationMethod(VALUES),
-      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
-      entries: getIterationMethod(ENTRIES)
-    };
-    if (FORCED) for (KEY in methods) {
-      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
-        redefine(IterablePrototype, KEY, methods[KEY]);
-      }
-    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
-  }
-
-  return methods;
-};
-
-},{"../internals/create-iterator-constructor":71,"../internals/create-non-enumerable-property":72,"../internals/export":83,"../internals/is-pure":101,"../internals/iterators":104,"../internals/iterators-core":103,"../internals/object-get-prototype-of":113,"../internals/object-set-prototype-of":117,"../internals/redefine":120,"../internals/set-to-string-tag":124,"../internals/well-known-symbol":139}],76:[function(require,module,exports){
-var fails = require('../internals/fails');
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !fails(function () {
-  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
-});
-
-},{"../internals/fails":84}],77:[function(require,module,exports){
-var global = require('../internals/global');
-var isObject = require('../internals/is-object');
-
-var document = global.document;
-// typeof document.createElement is 'object' in old IE
-var EXISTS = isObject(document) && isObject(document.createElement);
-
-module.exports = function (it) {
-  return EXISTS ? document.createElement(it) : {};
-};
-
-},{"../internals/global":89,"../internals/is-object":100}],78:[function(require,module,exports){
-// iterable DOM collections
-// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
-module.exports = {
-  CSSRuleList: 0,
-  CSSStyleDeclaration: 0,
-  CSSValueList: 0,
-  ClientRectList: 0,
-  DOMRectList: 0,
-  DOMStringList: 0,
-  DOMTokenList: 1,
-  DataTransferItemList: 0,
-  FileList: 0,
-  HTMLAllCollection: 0,
-  HTMLCollection: 0,
-  HTMLFormElement: 0,
-  HTMLSelectElement: 0,
-  MediaList: 0,
-  MimeTypeArray: 0,
-  NamedNodeMap: 0,
-  NodeList: 1,
-  PaintRequestList: 0,
-  Plugin: 0,
-  PluginArray: 0,
-  SVGLengthList: 0,
-  SVGNumberList: 0,
-  SVGPathSegList: 0,
-  SVGPointList: 0,
-  SVGStringList: 0,
-  SVGTransformList: 0,
-  SourceBufferList: 0,
-  StyleSheetList: 0,
-  TextTrackCueList: 0,
-  TextTrackList: 0,
-  TouchList: 0
-};
-
-},{}],79:[function(require,module,exports){
-var getBuiltIn = require('../internals/get-built-in');
-
-module.exports = getBuiltIn('navigator', 'userAgent') || '';
-
-},{"../internals/get-built-in":86}],80:[function(require,module,exports){
-var global = require('../internals/global');
-var userAgent = require('../internals/engine-user-agent');
-
-var process = global.process;
-var versions = process && process.versions;
-var v8 = versions && versions.v8;
-var match, version;
-
-if (v8) {
-  match = v8.split('.');
-  version = match[0] + match[1];
-} else if (userAgent) {
-  match = userAgent.match(/Edge\/(\d+)/);
-  if (!match || match[1] >= 74) {
-    match = userAgent.match(/Chrome\/(\d+)/);
-    if (match) version = match[1];
-  }
-}
-
-module.exports = version && +version;
-
-},{"../internals/engine-user-agent":79,"../internals/global":89}],81:[function(require,module,exports){
-var path = require('../internals/path');
-
-module.exports = function (CONSTRUCTOR) {
-  return path[CONSTRUCTOR + 'Prototype'];
-};
-
-},{"../internals/path":119}],82:[function(require,module,exports){
-// IE8- don't enum bug keys
-module.exports = [
-  'constructor',
-  'hasOwnProperty',
-  'isPrototypeOf',
-  'propertyIsEnumerable',
-  'toLocaleString',
-  'toString',
-  'valueOf'
-];
-
-},{}],83:[function(require,module,exports){
-'use strict';
-var global = require('../internals/global');
-var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
-var isForced = require('../internals/is-forced');
-var path = require('../internals/path');
-var bind = require('../internals/function-bind-context');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-
-var wrapConstructor = function (NativeConstructor) {
-  var Wrapper = function (a, b, c) {
-    if (this instanceof NativeConstructor) {
-      switch (arguments.length) {
-        case 0: return new NativeConstructor();
-        case 1: return new NativeConstructor(a);
-        case 2: return new NativeConstructor(a, b);
-      } return new NativeConstructor(a, b, c);
-    } return NativeConstructor.apply(this, arguments);
-  };
-  Wrapper.prototype = NativeConstructor.prototype;
-  return Wrapper;
-};
-
-/*
-  options.target      - name of the target object
-  options.global      - target is the global object
-  options.stat        - export as static methods of target
-  options.proto       - export as prototype methods of target
-  options.real        - real prototype method for the `pure` version
-  options.forced      - export even if the native feature is available
-  options.bind        - bind methods to the target, required for the `pure` version
-  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
-  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
-  options.sham        - add a flag to not completely full polyfills
-  options.enumerable  - export as enumerable property
-  options.noTargetGet - prevent calling a getter on target
-*/
-module.exports = function (options, source) {
-  var TARGET = options.target;
-  var GLOBAL = options.global;
-  var STATIC = options.stat;
-  var PROTO = options.proto;
-
-  var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;
-
-  var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {});
-  var targetPrototype = target.prototype;
-
-  var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;
-  var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;
-
-  for (key in source) {
-    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
-    // contains in native
-    USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key);
-
-    targetProperty = target[key];
-
-    if (USE_NATIVE) if (options.noTargetGet) {
-      descriptor = getOwnPropertyDescriptor(nativeSource, key);
-      nativeProperty = descriptor && descriptor.value;
-    } else nativeProperty = nativeSource[key];
-
-    // export native or implementation
-    sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];
-
-    if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue;
-
-    // bind timers to global for call from export context
-    if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);
-    // wrap global constructors for prevent changs in this version
-    else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);
-    // make static versions for prototype methods
-    else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty);
-    // default case
-    else resultProperty = sourceProperty;
-
-    // add a flag to not completely full polyfills
-    if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {
-      createNonEnumerableProperty(resultProperty, 'sham', true);
-    }
-
-    target[key] = resultProperty;
-
-    if (PROTO) {
-      VIRTUAL_PROTOTYPE = TARGET + 'Prototype';
-      if (!has(path, VIRTUAL_PROTOTYPE)) {
-        createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});
-      }
-      // export virtual prototype methods
-      path[VIRTUAL_PROTOTYPE][key] = sourceProperty;
-      // export real prototype methods
-      if (options.real && targetPrototype && !targetPrototype[key]) {
-        createNonEnumerableProperty(targetPrototype, key, sourceProperty);
-      }
-    }
-  }
-};
-
-},{"../internals/create-non-enumerable-property":72,"../internals/function-bind-context":85,"../internals/global":89,"../internals/has":90,"../internals/is-forced":98,"../internals/object-get-own-property-descriptor":112,"../internals/path":119}],84:[function(require,module,exports){
-module.exports = function (exec) {
-  try {
-    return !!exec();
-  } catch (error) {
-    return true;
-  }
-};
-
-},{}],85:[function(require,module,exports){
-var aFunction = require('../internals/a-function');
-
-// optional / simple context binding
-module.exports = function (fn, that, length) {
-  aFunction(fn);
-  if (that === undefined) return fn;
-  switch (length) {
-    case 0: return function () {
-      return fn.call(that);
-    };
-    case 1: return function (a) {
-      return fn.call(that, a);
-    };
-    case 2: return function (a, b) {
-      return fn.call(that, a, b);
-    };
-    case 3: return function (a, b, c) {
-      return fn.call(that, a, b, c);
-    };
-  }
-  return function (/* ...args */) {
-    return fn.apply(that, arguments);
-  };
-};
-
-},{"../internals/a-function":55}],86:[function(require,module,exports){
-var path = require('../internals/path');
-var global = require('../internals/global');
-
-var aFunction = function (variable) {
-  return typeof variable == 'function' ? variable : undefined;
-};
-
-module.exports = function (namespace, method) {
-  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
-    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
-};
-
-},{"../internals/global":89,"../internals/path":119}],87:[function(require,module,exports){
-var classof = require('../internals/classof');
-var Iterators = require('../internals/iterators');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var ITERATOR = wellKnownSymbol('iterator');
-
-module.exports = function (it) {
-  if (it != undefined) return it[ITERATOR]
-    || it['@@iterator']
-    || Iterators[classof(it)];
-};
-
-},{"../internals/classof":68,"../internals/iterators":104,"../internals/well-known-symbol":139}],88:[function(require,module,exports){
-var anObject = require('../internals/an-object');
-var getIteratorMethod = require('../internals/get-iterator-method');
-
-module.exports = function (it) {
-  var iteratorMethod = getIteratorMethod(it);
-  if (typeof iteratorMethod != 'function') {
-    throw TypeError(String(it) + ' is not iterable');
-  } return anObject(iteratorMethod.call(it));
-};
-
-},{"../internals/an-object":58,"../internals/get-iterator-method":87}],89:[function(require,module,exports){
-(function (global){
-var check = function (it) {
-  return it && it.Math == Math && it;
-};
-
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-module.exports =
-  // eslint-disable-next-line no-undef
-  check(typeof globalThis == 'object' && globalThis) ||
-  check(typeof window == 'object' && window) ||
-  check(typeof self == 'object' && self) ||
-  check(typeof global == 'object' && global) ||
-  // eslint-disable-next-line no-new-func
-  Function('return this')();
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],90:[function(require,module,exports){
-var hasOwnProperty = {}.hasOwnProperty;
-
-module.exports = function (it, key) {
-  return hasOwnProperty.call(it, key);
-};
-
-},{}],91:[function(require,module,exports){
-module.exports = {};
-
-},{}],92:[function(require,module,exports){
-var getBuiltIn = require('../internals/get-built-in');
-
-module.exports = getBuiltIn('document', 'documentElement');
-
-},{"../internals/get-built-in":86}],93:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var fails = require('../internals/fails');
-var createElement = require('../internals/document-create-element');
-
-// Thank's IE8 for his funny defineProperty
-module.exports = !DESCRIPTORS && !fails(function () {
-  return Object.defineProperty(createElement('div'), 'a', {
-    get: function () { return 7; }
-  }).a != 7;
-});
-
-},{"../internals/descriptors":76,"../internals/document-create-element":77,"../internals/fails":84}],94:[function(require,module,exports){
-var fails = require('../internals/fails');
-var classof = require('../internals/classof-raw');
-
-var split = ''.split;
-
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-module.exports = fails(function () {
-  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
-  // eslint-disable-next-line no-prototype-builtins
-  return !Object('z').propertyIsEnumerable(0);
-}) ? function (it) {
-  return classof(it) == 'String' ? split.call(it, '') : Object(it);
-} : Object;
-
-},{"../internals/classof-raw":67,"../internals/fails":84}],95:[function(require,module,exports){
-var store = require('../internals/shared-store');
-
-var functionToString = Function.toString;
-
-// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
-if (typeof store.inspectSource != 'function') {
-  store.inspectSource = function (it) {
-    return functionToString.call(it);
-  };
-}
-
-module.exports = store.inspectSource;
-
-},{"../internals/shared-store":126}],96:[function(require,module,exports){
-var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
-var global = require('../internals/global');
-var isObject = require('../internals/is-object');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var objectHas = require('../internals/has');
-var sharedKey = require('../internals/shared-key');
-var hiddenKeys = require('../internals/hidden-keys');
-
-var WeakMap = global.WeakMap;
-var set, get, has;
-
-var enforce = function (it) {
-  return has(it) ? get(it) : set(it, {});
-};
-
-var getterFor = function (TYPE) {
-  return function (it) {
-    var state;
-    if (!isObject(it) || (state = get(it)).type !== TYPE) {
-      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
-    } return state;
-  };
-};
-
-if (NATIVE_WEAK_MAP) {
-  var store = new WeakMap();
-  var wmget = store.get;
-  var wmhas = store.has;
-  var wmset = store.set;
-  set = function (it, metadata) {
-    wmset.call(store, it, metadata);
-    return metadata;
-  };
-  get = function (it) {
-    return wmget.call(store, it) || {};
-  };
-  has = function (it) {
-    return wmhas.call(store, it);
-  };
-} else {
-  var STATE = sharedKey('state');
-  hiddenKeys[STATE] = true;
-  set = function (it, metadata) {
-    createNonEnumerableProperty(it, STATE, metadata);
-    return metadata;
-  };
-  get = function (it) {
-    return objectHas(it, STATE) ? it[STATE] : {};
-  };
-  has = function (it) {
-    return objectHas(it, STATE);
-  };
-}
-
-module.exports = {
-  set: set,
-  get: get,
-  has: has,
-  enforce: enforce,
-  getterFor: getterFor
-};
-
-},{"../internals/create-non-enumerable-property":72,"../internals/global":89,"../internals/has":90,"../internals/hidden-keys":91,"../internals/is-object":100,"../internals/native-weak-map":106,"../internals/shared-key":125}],97:[function(require,module,exports){
-var classof = require('../internals/classof-raw');
-
-// `IsArray` abstract operation
-// https://tc39.github.io/ecma262/#sec-isarray
-module.exports = Array.isArray || function isArray(arg) {
-  return classof(arg) == 'Array';
-};
-
-},{"../internals/classof-raw":67}],98:[function(require,module,exports){
-var fails = require('../internals/fails');
-
-var replacement = /#|\.prototype\./;
-
-var isForced = function (feature, detection) {
-  var value = data[normalize(feature)];
-  return value == POLYFILL ? true
-    : value == NATIVE ? false
-    : typeof detection == 'function' ? fails(detection)
-    : !!detection;
-};
-
-var normalize = isForced.normalize = function (string) {
-  return String(string).replace(replacement, '.').toLowerCase();
-};
-
-var data = isForced.data = {};
-var NATIVE = isForced.NATIVE = 'N';
-var POLYFILL = isForced.POLYFILL = 'P';
-
-module.exports = isForced;
-
-},{"../internals/fails":84}],99:[function(require,module,exports){
-var classof = require('../internals/classof');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var Iterators = require('../internals/iterators');
-
-var ITERATOR = wellKnownSymbol('iterator');
-
-module.exports = function (it) {
-  var O = Object(it);
-  return O[ITERATOR] !== undefined
-    || '@@iterator' in O
-    // eslint-disable-next-line no-prototype-builtins
-    || Iterators.hasOwnProperty(classof(O));
-};
-
-},{"../internals/classof":68,"../internals/iterators":104,"../internals/well-known-symbol":139}],100:[function(require,module,exports){
-module.exports = function (it) {
-  return typeof it === 'object' ? it !== null : typeof it === 'function';
-};
-
-},{}],101:[function(require,module,exports){
-module.exports = true;
-
-},{}],102:[function(require,module,exports){
-var isObject = require('../internals/is-object');
-var classof = require('../internals/classof-raw');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var MATCH = wellKnownSymbol('match');
-
-// `IsRegExp` abstract operation
-// https://tc39.github.io/ecma262/#sec-isregexp
-module.exports = function (it) {
-  var isRegExp;
-  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
-};
-
-},{"../internals/classof-raw":67,"../internals/is-object":100,"../internals/well-known-symbol":139}],103:[function(require,module,exports){
-'use strict';
-var getPrototypeOf = require('../internals/object-get-prototype-of');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var IS_PURE = require('../internals/is-pure');
-
-var ITERATOR = wellKnownSymbol('iterator');
-var BUGGY_SAFARI_ITERATORS = false;
-
-var returnThis = function () { return this; };
-
-// `%IteratorPrototype%` object
-// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object
-var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
-
-if ([].keys) {
-  arrayIterator = [].keys();
-  // Safari 8 has buggy iterators w/o `next`
-  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
-  else {
-    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
-    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
-  }
-}
-
-if (IteratorPrototype == undefined) IteratorPrototype = {};
-
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {
-  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
-}
-
-module.exports = {
-  IteratorPrototype: IteratorPrototype,
-  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
-};
-
-},{"../internals/create-non-enumerable-property":72,"../internals/has":90,"../internals/is-pure":101,"../internals/object-get-prototype-of":113,"../internals/well-known-symbol":139}],104:[function(require,module,exports){
-arguments[4][91][0].apply(exports,arguments)
-},{"dup":91}],105:[function(require,module,exports){
-var fails = require('../internals/fails');
-
-module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
-  // Chrome 38 Symbol has incorrect toString conversion
-  // eslint-disable-next-line no-undef
-  return !String(Symbol());
-});
-
-},{"../internals/fails":84}],106:[function(require,module,exports){
-var global = require('../internals/global');
-var inspectSource = require('../internals/inspect-source');
-
-var WeakMap = global.WeakMap;
-
-module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
-
-},{"../internals/global":89,"../internals/inspect-source":95}],107:[function(require,module,exports){
-var isRegExp = require('../internals/is-regexp');
-
-module.exports = function (it) {
-  if (isRegExp(it)) {
-    throw TypeError("The method doesn't accept regular expressions");
-  } return it;
-};
-
-},{"../internals/is-regexp":102}],108:[function(require,module,exports){
-var global = require('../internals/global');
-var trim = require('../internals/string-trim').trim;
-var whitespaces = require('../internals/whitespaces');
-
-var $parseInt = global.parseInt;
-var hex = /^[+-]?0[Xx]/;
-var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
-
-// `parseInt` method
-// https://tc39.github.io/ecma262/#sec-parseint-string-radix
-module.exports = FORCED ? function parseInt(string, radix) {
-  var S = trim(String(string));
-  return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
-} : $parseInt;
-
-},{"../internals/global":89,"../internals/string-trim":129,"../internals/whitespaces":140}],109:[function(require,module,exports){
-var anObject = require('../internals/an-object');
-var defineProperties = require('../internals/object-define-properties');
-var enumBugKeys = require('../internals/enum-bug-keys');
-var hiddenKeys = require('../internals/hidden-keys');
-var html = require('../internals/html');
-var documentCreateElement = require('../internals/document-create-element');
-var sharedKey = require('../internals/shared-key');
-
-var GT = '>';
-var LT = '<';
-var PROTOTYPE = 'prototype';
-var SCRIPT = 'script';
-var IE_PROTO = sharedKey('IE_PROTO');
-
-var EmptyConstructor = function () { /* empty */ };
-
-var scriptTag = function (content) {
-  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
-};
-
-// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
-var NullProtoObjectViaActiveX = function (activeXDocument) {
-  activeXDocument.write(scriptTag(''));
-  activeXDocument.close();
-  var temp = activeXDocument.parentWindow.Object;
-  activeXDocument = null; // avoid memory leak
-  return temp;
-};
-
-// Create object with fake `null` prototype: use iframe Object with cleared prototype
-var NullProtoObjectViaIFrame = function () {
-  // Thrash, waste and sodomy: IE GC bug
-  var iframe = documentCreateElement('iframe');
-  var JS = 'java' + SCRIPT + ':';
-  var iframeDocument;
-  iframe.style.display = 'none';
-  html.appendChild(iframe);
-  // https://github.com/zloirock/core-js/issues/475
-  iframe.src = String(JS);
-  iframeDocument = iframe.contentWindow.document;
-  iframeDocument.open();
-  iframeDocument.write(scriptTag('document.F=Object'));
-  iframeDocument.close();
-  return iframeDocument.F;
-};
-
-// Check for document.domain and active x support
-// No need to use active x approach when document.domain is not set
-// see https://github.com/es-shims/es5-shim/issues/150
-// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
-// avoid IE GC bug
-var activeXDocument;
-var NullProtoObject = function () {
-  try {
-    /* global ActiveXObject */
-    activeXDocument = document.domain && new ActiveXObject('htmlfile');
-  } catch (error) { /* ignore */ }
-  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
-  var length = enumBugKeys.length;
-  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
-  return NullProtoObject();
-};
-
-hiddenKeys[IE_PROTO] = true;
-
-// `Object.create` method
-// https://tc39.github.io/ecma262/#sec-object.create
-module.exports = Object.create || function create(O, Properties) {
-  var result;
-  if (O !== null) {
-    EmptyConstructor[PROTOTYPE] = anObject(O);
-    result = new EmptyConstructor();
-    EmptyConstructor[PROTOTYPE] = null;
-    // add "__proto__" for Object.getPrototypeOf polyfill
-    result[IE_PROTO] = O;
-  } else result = NullProtoObject();
-  return Properties === undefined ? result : defineProperties(result, Properties);
-};
-
-},{"../internals/an-object":58,"../internals/document-create-element":77,"../internals/enum-bug-keys":82,"../internals/hidden-keys":91,"../internals/html":92,"../internals/object-define-properties":110,"../internals/shared-key":125}],110:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var definePropertyModule = require('../internals/object-define-property');
-var anObject = require('../internals/an-object');
-var objectKeys = require('../internals/object-keys');
-
-// `Object.defineProperties` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperties
-module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
-  anObject(O);
-  var keys = objectKeys(Properties);
-  var length = keys.length;
-  var index = 0;
-  var key;
-  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
-  return O;
-};
-
-},{"../internals/an-object":58,"../internals/descriptors":76,"../internals/object-define-property":111,"../internals/object-keys":115}],111:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
-var anObject = require('../internals/an-object');
-var toPrimitive = require('../internals/to-primitive');
-
-var nativeDefineProperty = Object.defineProperty;
-
-// `Object.defineProperty` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperty
-exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
-  anObject(O);
-  P = toPrimitive(P, true);
-  anObject(Attributes);
-  if (IE8_DOM_DEFINE) try {
-    return nativeDefineProperty(O, P, Attributes);
-  } catch (error) { /* empty */ }
-  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
-  if ('value' in Attributes) O[P] = Attributes.value;
-  return O;
-};
-
-},{"../internals/an-object":58,"../internals/descriptors":76,"../internals/ie8-dom-define":93,"../internals/to-primitive":135}],112:[function(require,module,exports){
-var DESCRIPTORS = require('../internals/descriptors');
-var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
-var createPropertyDescriptor = require('../internals/create-property-descriptor');
-var toIndexedObject = require('../internals/to-indexed-object');
-var toPrimitive = require('../internals/to-primitive');
-var has = require('../internals/has');
-var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
-
-var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-// `Object.getOwnPropertyDescriptor` method
-// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
-exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
-  O = toIndexedObject(O);
-  P = toPrimitive(P, true);
-  if (IE8_DOM_DEFINE) try {
-    return nativeGetOwnPropertyDescriptor(O, P);
-  } catch (error) { /* empty */ }
-  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
-};
-
-},{"../internals/create-property-descriptor":73,"../internals/descriptors":76,"../internals/has":90,"../internals/ie8-dom-define":93,"../internals/object-property-is-enumerable":116,"../internals/to-indexed-object":131,"../internals/to-primitive":135}],113:[function(require,module,exports){
-var has = require('../internals/has');
-var toObject = require('../internals/to-object');
-var sharedKey = require('../internals/shared-key');
-var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
-
-var IE_PROTO = sharedKey('IE_PROTO');
-var ObjectPrototype = Object.prototype;
-
-// `Object.getPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.getprototypeof
-module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
-  O = toObject(O);
-  if (has(O, IE_PROTO)) return O[IE_PROTO];
-  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
-    return O.constructor.prototype;
-  } return O instanceof Object ? ObjectPrototype : null;
-};
-
-},{"../internals/correct-prototype-getter":70,"../internals/has":90,"../internals/shared-key":125,"../internals/to-object":134}],114:[function(require,module,exports){
-var has = require('../internals/has');
-var toIndexedObject = require('../internals/to-indexed-object');
-var indexOf = require('../internals/array-includes').indexOf;
-var hiddenKeys = require('../internals/hidden-keys');
-
-module.exports = function (object, names) {
-  var O = toIndexedObject(object);
-  var i = 0;
-  var result = [];
-  var key;
-  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
-  // Don't enum bug & hidden keys
-  while (names.length > i) if (has(O, key = names[i++])) {
-    ~indexOf(result, key) || result.push(key);
-  }
-  return result;
-};
-
-},{"../internals/array-includes":60,"../internals/has":90,"../internals/hidden-keys":91,"../internals/to-indexed-object":131}],115:[function(require,module,exports){
-var internalObjectKeys = require('../internals/object-keys-internal');
-var enumBugKeys = require('../internals/enum-bug-keys');
-
-// `Object.keys` method
-// https://tc39.github.io/ecma262/#sec-object.keys
-module.exports = Object.keys || function keys(O) {
-  return internalObjectKeys(O, enumBugKeys);
-};
-
-},{"../internals/enum-bug-keys":82,"../internals/object-keys-internal":114}],116:[function(require,module,exports){
-'use strict';
-var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-// Nashorn ~ JDK8 bug
-var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
-
-// `Object.prototype.propertyIsEnumerable` method implementation
-// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
-exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
-  var descriptor = getOwnPropertyDescriptor(this, V);
-  return !!descriptor && descriptor.enumerable;
-} : nativePropertyIsEnumerable;
-
-},{}],117:[function(require,module,exports){
-var anObject = require('../internals/an-object');
-var aPossiblePrototype = require('../internals/a-possible-prototype');
-
-// `Object.setPrototypeOf` method
-// https://tc39.github.io/ecma262/#sec-object.setprototypeof
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
-  var CORRECT_SETTER = false;
-  var test = {};
-  var setter;
-  try {
-    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
-    setter.call(test, []);
-    CORRECT_SETTER = test instanceof Array;
-  } catch (error) { /* empty */ }
-  return function setPrototypeOf(O, proto) {
-    anObject(O);
-    aPossiblePrototype(proto);
-    if (CORRECT_SETTER) setter.call(O, proto);
-    else O.__proto__ = proto;
-    return O;
-  };
-}() : undefined);
-
-},{"../internals/a-possible-prototype":56,"../internals/an-object":58}],118:[function(require,module,exports){
-'use strict';
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var classof = require('../internals/classof');
-
-// `Object.prototype.toString` method implementation
-// https://tc39.github.io/ecma262/#sec-object.prototype.tostring
-module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
-  return '[object ' + classof(this) + ']';
-};
-
-},{"../internals/classof":68,"../internals/to-string-tag-support":136}],119:[function(require,module,exports){
-arguments[4][91][0].apply(exports,arguments)
-},{"dup":91}],120:[function(require,module,exports){
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-
-module.exports = function (target, key, value, options) {
-  if (options && options.enumerable) target[key] = value;
-  else createNonEnumerableProperty(target, key, value);
-};
-
-},{"../internals/create-non-enumerable-property":72}],121:[function(require,module,exports){
-'use strict';
-var anObject = require('../internals/an-object');
-
-// `RegExp.prototype.flags` getter implementation
-// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
-module.exports = function () {
-  var that = anObject(this);
-  var result = '';
-  if (that.global) result += 'g';
-  if (that.ignoreCase) result += 'i';
-  if (that.multiline) result += 'm';
-  if (that.dotAll) result += 's';
-  if (that.unicode) result += 'u';
-  if (that.sticky) result += 'y';
-  return result;
-};
-
-},{"../internals/an-object":58}],122:[function(require,module,exports){
-// `RequireObjectCoercible` abstract operation
-// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
-module.exports = function (it) {
-  if (it == undefined) throw TypeError("Can't call method on " + it);
-  return it;
-};
-
-},{}],123:[function(require,module,exports){
-var global = require('../internals/global');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-
-module.exports = function (key, value) {
-  try {
-    createNonEnumerableProperty(global, key, value);
-  } catch (error) {
-    global[key] = value;
-  } return value;
-};
-
-},{"../internals/create-non-enumerable-property":72,"../internals/global":89}],124:[function(require,module,exports){
-var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
-var defineProperty = require('../internals/object-define-property').f;
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var has = require('../internals/has');
-var toString = require('../internals/object-to-string');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-module.exports = function (it, TAG, STATIC, SET_METHOD) {
-  if (it) {
-    var target = STATIC ? it : it.prototype;
-    if (!has(target, TO_STRING_TAG)) {
-      defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });
-    }
-    if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {
-      createNonEnumerableProperty(target, 'toString', toString);
-    }
-  }
-};
-
-},{"../internals/create-non-enumerable-property":72,"../internals/has":90,"../internals/object-define-property":111,"../internals/object-to-string":118,"../internals/to-string-tag-support":136,"../internals/well-known-symbol":139}],125:[function(require,module,exports){
-var shared = require('../internals/shared');
-var uid = require('../internals/uid');
-
-var keys = shared('keys');
-
-module.exports = function (key) {
-  return keys[key] || (keys[key] = uid(key));
-};
-
-},{"../internals/shared":127,"../internals/uid":137}],126:[function(require,module,exports){
-var global = require('../internals/global');
-var setGlobal = require('../internals/set-global');
-
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || setGlobal(SHARED, {});
-
-module.exports = store;
-
-},{"../internals/global":89,"../internals/set-global":123}],127:[function(require,module,exports){
-var IS_PURE = require('../internals/is-pure');
-var store = require('../internals/shared-store');
-
-(module.exports = function (key, value) {
-  return store[key] || (store[key] = value !== undefined ? value : {});
-})('versions', []).push({
-  version: '3.6.4',
-  mode: IS_PURE ? 'pure' : 'global',
-  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
-});
-
-},{"../internals/is-pure":101,"../internals/shared-store":126}],128:[function(require,module,exports){
-var toInteger = require('../internals/to-integer');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-// `String.prototype.{ codePointAt, at }` methods implementation
-var createMethod = function (CONVERT_TO_STRING) {
-  return function ($this, pos) {
-    var S = String(requireObjectCoercible($this));
-    var position = toInteger(pos);
-    var size = S.length;
-    var first, second;
-    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
-    first = S.charCodeAt(position);
-    return first < 0xD800 || first > 0xDBFF || position + 1 === size
-      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
-        ? CONVERT_TO_STRING ? S.charAt(position) : first
-        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
-  };
-};
-
-module.exports = {
-  // `String.prototype.codePointAt` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
-  codeAt: createMethod(false),
-  // `String.prototype.at` method
-  // https://github.com/mathiasbynens/String.prototype.at
-  charAt: createMethod(true)
-};
-
-},{"../internals/require-object-coercible":122,"../internals/to-integer":132}],129:[function(require,module,exports){
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var whitespaces = require('../internals/whitespaces');
-
-var whitespace = '[' + whitespaces + ']';
-var ltrim = RegExp('^' + whitespace + whitespace + '*');
-var rtrim = RegExp(whitespace + whitespace + '*$');
-
-// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
-var createMethod = function (TYPE) {
-  return function ($this) {
-    var string = String(requireObjectCoercible($this));
-    if (TYPE & 1) string = string.replace(ltrim, '');
-    if (TYPE & 2) string = string.replace(rtrim, '');
-    return string;
-  };
-};
-
-module.exports = {
-  // `String.prototype.{ trimLeft, trimStart }` methods
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
-  start: createMethod(1),
-  // `String.prototype.{ trimRight, trimEnd }` methods
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
-  end: createMethod(2),
-  // `String.prototype.trim` method
-  // https://tc39.github.io/ecma262/#sec-string.prototype.trim
-  trim: createMethod(3)
-};
-
-},{"../internals/require-object-coercible":122,"../internals/whitespaces":140}],130:[function(require,module,exports){
-var toInteger = require('../internals/to-integer');
-
-var max = Math.max;
-var min = Math.min;
-
-// Helper for a popular repeating case of the spec:
-// Let integer be ? ToInteger(index).
-// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
-module.exports = function (index, length) {
-  var integer = toInteger(index);
-  return integer < 0 ? max(integer + length, 0) : min(integer, length);
-};
-
-},{"../internals/to-integer":132}],131:[function(require,module,exports){
-// toObject with fallback for non-array-like ES3 strings
-var IndexedObject = require('../internals/indexed-object');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-module.exports = function (it) {
-  return IndexedObject(requireObjectCoercible(it));
-};
-
-},{"../internals/indexed-object":94,"../internals/require-object-coercible":122}],132:[function(require,module,exports){
-var ceil = Math.ceil;
-var floor = Math.floor;
-
-// `ToInteger` abstract operation
-// https://tc39.github.io/ecma262/#sec-tointeger
-module.exports = function (argument) {
-  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
-};
-
-},{}],133:[function(require,module,exports){
-var toInteger = require('../internals/to-integer');
-
-var min = Math.min;
-
-// `ToLength` abstract operation
-// https://tc39.github.io/ecma262/#sec-tolength
-module.exports = function (argument) {
-  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
-};
-
-},{"../internals/to-integer":132}],134:[function(require,module,exports){
-var requireObjectCoercible = require('../internals/require-object-coercible');
-
-// `ToObject` abstract operation
-// https://tc39.github.io/ecma262/#sec-toobject
-module.exports = function (argument) {
-  return Object(requireObjectCoercible(argument));
-};
-
-},{"../internals/require-object-coercible":122}],135:[function(require,module,exports){
-var isObject = require('../internals/is-object');
-
-// `ToPrimitive` abstract operation
-// https://tc39.github.io/ecma262/#sec-toprimitive
-// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-// and the second argument - flag - preferred type is a string
-module.exports = function (input, PREFERRED_STRING) {
-  if (!isObject(input)) return input;
-  var fn, val;
-  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
-  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
-  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
-  throw TypeError("Can't convert object to primitive value");
-};
-
-},{"../internals/is-object":100}],136:[function(require,module,exports){
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-var test = {};
-
-test[TO_STRING_TAG] = 'z';
-
-module.exports = String(test) === '[object z]';
-
-},{"../internals/well-known-symbol":139}],137:[function(require,module,exports){
-var id = 0;
-var postfix = Math.random();
-
-module.exports = function (key) {
-  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
-};
-
-},{}],138:[function(require,module,exports){
-var NATIVE_SYMBOL = require('../internals/native-symbol');
-
-module.exports = NATIVE_SYMBOL
-  // eslint-disable-next-line no-undef
-  && !Symbol.sham
-  // eslint-disable-next-line no-undef
-  && typeof Symbol.iterator == 'symbol';
-
-},{"../internals/native-symbol":105}],139:[function(require,module,exports){
-var global = require('../internals/global');
-var shared = require('../internals/shared');
-var has = require('../internals/has');
-var uid = require('../internals/uid');
-var NATIVE_SYMBOL = require('../internals/native-symbol');
-var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
-
-var WellKnownSymbolsStore = shared('wks');
-var Symbol = global.Symbol;
-var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
-
-module.exports = function (name) {
-  if (!has(WellKnownSymbolsStore, name)) {
-    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];
-    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
-  } return WellKnownSymbolsStore[name];
-};
-
-},{"../internals/global":89,"../internals/has":90,"../internals/native-symbol":105,"../internals/shared":127,"../internals/uid":137,"../internals/use-symbol-as-uid":138}],140:[function(require,module,exports){
-// a string of all valid unicode whitespaces
-// eslint-disable-next-line max-len
-module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
-
-},{}],141:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var fails = require('../internals/fails');
-var isArray = require('../internals/is-array');
-var isObject = require('../internals/is-object');
-var toObject = require('../internals/to-object');
-var toLength = require('../internals/to-length');
-var createProperty = require('../internals/create-property');
-var arraySpeciesCreate = require('../internals/array-species-create');
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var V8_VERSION = require('../internals/engine-v8-version');
-
-var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
-var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
-var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
-
-// We can't use this feature detection in V8 since it causes
-// deoptimization and serious performance degradation
-// https://github.com/zloirock/core-js/issues/679
-var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
-  var array = [];
-  array[IS_CONCAT_SPREADABLE] = false;
-  return array.concat()[0] !== array;
-});
-
-var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
-
-var isConcatSpreadable = function (O) {
-  if (!isObject(O)) return false;
-  var spreadable = O[IS_CONCAT_SPREADABLE];
-  return spreadable !== undefined ? !!spreadable : isArray(O);
-};
-
-var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
-
-// `Array.prototype.concat` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.concat
-// with adding support of @@isConcatSpreadable and @@species
-$({ target: 'Array', proto: true, forced: FORCED }, {
-  concat: function concat(arg) { // eslint-disable-line no-unused-vars
-    var O = toObject(this);
-    var A = arraySpeciesCreate(O, 0);
-    var n = 0;
-    var i, k, length, len, E;
-    for (i = -1, length = arguments.length; i < length; i++) {
-      E = i === -1 ? O : arguments[i];
-      if (isConcatSpreadable(E)) {
-        len = toLength(E.length);
-        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
-        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
-      } else {
-        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
-        createProperty(A, n++, E);
-      }
-    }
-    A.length = n;
-    return A;
-  }
-});
-
-},{"../internals/array-method-has-species-support":62,"../internals/array-species-create":66,"../internals/create-property":74,"../internals/engine-v8-version":80,"../internals/export":83,"../internals/fails":84,"../internals/is-array":97,"../internals/is-object":100,"../internals/to-length":133,"../internals/to-object":134,"../internals/well-known-symbol":139}],142:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var forEach = require('../internals/array-for-each');
-
-// `Array.prototype.forEach` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
-$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {
-  forEach: forEach
-});
-
-},{"../internals/array-for-each":59,"../internals/export":83}],143:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var $includes = require('../internals/array-includes').includes;
-var addToUnscopables = require('../internals/add-to-unscopables');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
-
-// `Array.prototype.includes` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.includes
-$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {
-  includes: function includes(el /* , fromIndex = 0 */) {
-    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('includes');
-
-},{"../internals/add-to-unscopables":57,"../internals/array-includes":60,"../internals/array-method-uses-to-length":64,"../internals/export":83}],144:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var $indexOf = require('../internals/array-includes').indexOf;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var nativeIndexOf = [].indexOf;
-
-var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
-var STRICT_METHOD = arrayMethodIsStrict('indexOf');
-var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
-
-// `Array.prototype.indexOf` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
-$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
-  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
-    return NEGATIVE_ZERO
-      // convert -0 to +0
-      ? nativeIndexOf.apply(this, arguments) || 0
-      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-},{"../internals/array-includes":60,"../internals/array-method-is-strict":63,"../internals/array-method-uses-to-length":64,"../internals/export":83}],145:[function(require,module,exports){
-var $ = require('../internals/export');
-var isArray = require('../internals/is-array');
-
-// `Array.isArray` method
-// https://tc39.github.io/ecma262/#sec-array.isarray
-$({ target: 'Array', stat: true }, {
-  isArray: isArray
-});
-
-},{"../internals/export":83,"../internals/is-array":97}],146:[function(require,module,exports){
-'use strict';
-var toIndexedObject = require('../internals/to-indexed-object');
-var addToUnscopables = require('../internals/add-to-unscopables');
-var Iterators = require('../internals/iterators');
-var InternalStateModule = require('../internals/internal-state');
-var defineIterator = require('../internals/define-iterator');
-
-var ARRAY_ITERATOR = 'Array Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
-
-// `Array.prototype.entries` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.entries
-// `Array.prototype.keys` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.keys
-// `Array.prototype.values` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.values
-// `Array.prototype[@@iterator]` method
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator
-// `CreateArrayIterator` internal method
-// https://tc39.github.io/ecma262/#sec-createarrayiterator
-module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
-  setInternalState(this, {
-    type: ARRAY_ITERATOR,
-    target: toIndexedObject(iterated), // target
-    index: 0,                          // next index
-    kind: kind                         // kind
-  });
-// `%ArrayIteratorPrototype%.next` method
-// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next
-}, function () {
-  var state = getInternalState(this);
-  var target = state.target;
-  var kind = state.kind;
-  var index = state.index++;
-  if (!target || index >= target.length) {
-    state.target = undefined;
-    return { value: undefined, done: true };
-  }
-  if (kind == 'keys') return { value: index, done: false };
-  if (kind == 'values') return { value: target[index], done: false };
-  return { value: [index, target[index]], done: false };
-}, 'values');
-
-// argumentsList[@@iterator] is %ArrayProto_values%
-// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject
-// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject
-Iterators.Arguments = Iterators.Array;
-
-// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
-addToUnscopables('keys');
-addToUnscopables('values');
-addToUnscopables('entries');
-
-},{"../internals/add-to-unscopables":57,"../internals/define-iterator":75,"../internals/internal-state":96,"../internals/iterators":104,"../internals/to-indexed-object":131}],147:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var $map = require('../internals/array-iteration').map;
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
-// FF49- issue
-var USES_TO_LENGTH = arrayMethodUsesToLength('map');
-
-// `Array.prototype.map` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.map
-// with adding support of @@species
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  map: function map(callbackfn /* , thisArg */) {
-    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-},{"../internals/array-iteration":61,"../internals/array-method-has-species-support":62,"../internals/array-method-uses-to-length":64,"../internals/export":83}],148:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var $reduce = require('../internals/array-reduce').left;
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var STRICT_METHOD = arrayMethodIsStrict('reduce');
-var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
-
-// `Array.prototype.reduce` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
-$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
-  reduce: function reduce(callbackfn /* , initialValue */) {
-    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-},{"../internals/array-method-is-strict":63,"../internals/array-method-uses-to-length":64,"../internals/array-reduce":65,"../internals/export":83}],149:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var isObject = require('../internals/is-object');
-var isArray = require('../internals/is-array');
-var toAbsoluteIndex = require('../internals/to-absolute-index');
-var toLength = require('../internals/to-length');
-var toIndexedObject = require('../internals/to-indexed-object');
-var createProperty = require('../internals/create-property');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
-var arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');
-
-var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
-var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });
-
-var SPECIES = wellKnownSymbol('species');
-var nativeSlice = [].slice;
-var max = Math.max;
-
-// `Array.prototype.slice` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.slice
-// fallback for not array-like ES3 strings and DOM objects
-$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
-  slice: function slice(start, end) {
-    var O = toIndexedObject(this);
-    var length = toLength(O.length);
-    var k = toAbsoluteIndex(start, length);
-    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
-    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
-    var Constructor, result, n;
-    if (isArray(O)) {
-      Constructor = O.constructor;
-      // cross-realm fallback
-      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
-        Constructor = undefined;
-      } else if (isObject(Constructor)) {
-        Constructor = Constructor[SPECIES];
-        if (Constructor === null) Constructor = undefined;
-      }
-      if (Constructor === Array || Constructor === undefined) {
-        return nativeSlice.call(O, k, fin);
-      }
-    }
-    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
-    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
-    result.length = n;
-    return result;
-  }
-});
-
-},{"../internals/array-method-has-species-support":62,"../internals/array-method-uses-to-length":64,"../internals/create-property":74,"../internals/export":83,"../internals/is-array":97,"../internals/is-object":100,"../internals/to-absolute-index":130,"../internals/to-indexed-object":131,"../internals/to-length":133,"../internals/well-known-symbol":139}],150:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var aFunction = require('../internals/a-function');
-var toObject = require('../internals/to-object');
-var fails = require('../internals/fails');
-var arrayMethodIsStrict = require('../internals/array-method-is-strict');
-
-var test = [];
-var nativeSort = test.sort;
-
-// IE8-
-var FAILS_ON_UNDEFINED = fails(function () {
-  test.sort(undefined);
-});
-// V8 bug
-var FAILS_ON_NULL = fails(function () {
-  test.sort(null);
-});
-// Old WebKit
-var STRICT_METHOD = arrayMethodIsStrict('sort');
-
-var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;
-
-// `Array.prototype.sort` method
-// https://tc39.github.io/ecma262/#sec-array.prototype.sort
-$({ target: 'Array', proto: true, forced: FORCED }, {
-  sort: function sort(comparefn) {
-    return comparefn === undefined
-      ? nativeSort.call(toObject(this))
-      : nativeSort.call(toObject(this), aFunction(comparefn));
-  }
-});
-
-},{"../internals/a-function":55,"../internals/array-method-is-strict":63,"../internals/export":83,"../internals/fails":84,"../internals/to-object":134}],151:[function(require,module,exports){
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var create = require('../internals/object-create');
-
-// `Object.create` method
-// https://tc39.github.io/ecma262/#sec-object.create
-$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
-  create: create
-});
-
-},{"../internals/descriptors":76,"../internals/export":83,"../internals/object-create":109}],152:[function(require,module,exports){
-var $ = require('../internals/export');
-var DESCRIPTORS = require('../internals/descriptors');
-var objectDefinePropertyModile = require('../internals/object-define-property');
-
-// `Object.defineProperty` method
-// https://tc39.github.io/ecma262/#sec-object.defineproperty
-$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
-  defineProperty: objectDefinePropertyModile.f
-});
-
-},{"../internals/descriptors":76,"../internals/export":83,"../internals/object-define-property":111}],153:[function(require,module,exports){
-var $ = require('../internals/export');
-var parseIntImplementation = require('../internals/number-parse-int');
-
-// `parseInt` method
-// https://tc39.github.io/ecma262/#sec-parseint-string-radix
-$({ global: true, forced: parseInt != parseIntImplementation }, {
-  parseInt: parseIntImplementation
-});
-
-},{"../internals/export":83,"../internals/number-parse-int":108}],154:[function(require,module,exports){
-// empty
-
-},{}],155:[function(require,module,exports){
-'use strict';
-var $ = require('../internals/export');
-var notARegExp = require('../internals/not-a-regexp');
-var requireObjectCoercible = require('../internals/require-object-coercible');
-var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
-
-// `String.prototype.includes` method
-// https://tc39.github.io/ecma262/#sec-string.prototype.includes
-$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
-  includes: function includes(searchString /* , position = 0 */) {
-    return !!~String(requireObjectCoercible(this))
-      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
-  }
-});
-
-},{"../internals/correct-is-regexp-logic":69,"../internals/export":83,"../internals/not-a-regexp":107,"../internals/require-object-coercible":122}],156:[function(require,module,exports){
-'use strict';
-var charAt = require('../internals/string-multibyte').charAt;
-var InternalStateModule = require('../internals/internal-state');
-var defineIterator = require('../internals/define-iterator');
-
-var STRING_ITERATOR = 'String Iterator';
-var setInternalState = InternalStateModule.set;
-var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
-
-// `String.prototype[@@iterator]` method
-// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator
-defineIterator(String, 'String', function (iterated) {
-  setInternalState(this, {
-    type: STRING_ITERATOR,
-    string: String(iterated),
-    index: 0
-  });
-// `%StringIteratorPrototype%.next` method
-// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next
-}, function next() {
-  var state = getInternalState(this);
-  var string = state.string;
-  var index = state.index;
-  var point;
-  if (index >= string.length) return { value: undefined, done: true };
-  point = charAt(string, index);
-  state.index += point.length;
-  return { value: point, done: false };
-});
-
-},{"../internals/define-iterator":75,"../internals/internal-state":96,"../internals/string-multibyte":128}],157:[function(require,module,exports){
-require('./es.array.iterator');
-var DOMIterables = require('../internals/dom-iterables');
-var global = require('../internals/global');
-var classof = require('../internals/classof');
-var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
-var Iterators = require('../internals/iterators');
-var wellKnownSymbol = require('../internals/well-known-symbol');
-
-var TO_STRING_TAG = wellKnownSymbol('toStringTag');
-
-for (var COLLECTION_NAME in DOMIterables) {
-  var Collection = global[COLLECTION_NAME];
-  var CollectionPrototype = Collection && Collection.prototype;
-  if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {
-    createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
-  }
-  Iterators[COLLECTION_NAME] = Iterators.Array;
-}
-
-},{"../internals/classof":68,"../internals/create-non-enumerable-property":72,"../internals/dom-iterables":78,"../internals/global":89,"../internals/iterators":104,"../internals/well-known-symbol":139,"./es.array.iterator":146}],158:[function(require,module,exports){
-var parent = require('../../../es/array/virtual/for-each');
-
-module.exports = parent;
-
-},{"../../../es/array/virtual/for-each":32}],159:[function(require,module,exports){
-var parent = require('../../es/instance/concat');
-
-module.exports = parent;
-
-},{"../../es/instance/concat":39}],160:[function(require,module,exports){
-var parent = require('../../es/instance/flags');
-
-module.exports = parent;
-
-},{"../../es/instance/flags":40}],161:[function(require,module,exports){
-require('../../modules/web.dom-collections.iterator');
-var forEach = require('../array/virtual/for-each');
-var classof = require('../../internals/classof');
-var ArrayPrototype = Array.prototype;
-
-var DOMIterables = {
-  DOMTokenList: true,
-  NodeList: true
-};
-
-module.exports = function (it) {
-  var own = it.forEach;
-  return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach)
-    // eslint-disable-next-line no-prototype-builtins
-    || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own;
-};
-
-},{"../../internals/classof":68,"../../modules/web.dom-collections.iterator":157,"../array/virtual/for-each":158}],162:[function(require,module,exports){
-var parent = require('../../es/instance/includes');
-
-module.exports = parent;
-
-},{"../../es/instance/includes":41}],163:[function(require,module,exports){
-var parent = require('../../es/instance/index-of');
-
-module.exports = parent;
-
-},{"../../es/instance/index-of":42}],164:[function(require,module,exports){
-var parent = require('../../es/instance/map');
-
-module.exports = parent;
-
-},{"../../es/instance/map":43}],165:[function(require,module,exports){
-var parent = require('../../es/instance/reduce');
-
-module.exports = parent;
-
-},{"../../es/instance/reduce":44}],166:[function(require,module,exports){
-var parent = require('../../es/instance/slice');
-
-module.exports = parent;
-
-},{"../../es/instance/slice":45}],167:[function(require,module,exports){
-var parent = require('../../es/instance/sort');
-
-module.exports = parent;
-
-},{"../../es/instance/sort":46}],168:[function(require,module,exports){
-var parent = require('../../es/object/create');
-
-module.exports = parent;
-
-},{"../../es/object/create":47}],169:[function(require,module,exports){
-var parent = require('../../es/object/define-property');
-
-module.exports = parent;
-
-},{"../../es/object/define-property":48}],170:[function(require,module,exports){
-var parent = require('../es/parse-int');
-
-module.exports = parent;
-
-},{"../es/parse-int":49}],171:[function(require,module,exports){
-module.exports = [
-    {
-        'name': 'InAdlam',
-        'astral': '\uD83A[\uDD00-\uDD5F]'
-    },
-    {
-        'name': 'InAegean_Numbers',
-        'astral': '\uD800[\uDD00-\uDD3F]'
-    },
-    {
-        'name': 'InAhom',
-        'astral': '\uD805[\uDF00-\uDF3F]'
-    },
-    {
-        'name': 'InAlchemical_Symbols',
-        'astral': '\uD83D[\uDF00-\uDF7F]'
-    },
-    {
-        'name': 'InAlphabetic_Presentation_Forms',
-        'bmp': '\uFB00-\uFB4F'
-    },
-    {
-        'name': 'InAnatolian_Hieroglyphs',
-        'astral': '\uD811[\uDC00-\uDE7F]'
-    },
-    {
-        'name': 'InAncient_Greek_Musical_Notation',
-        'astral': '\uD834[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InAncient_Greek_Numbers',
-        'astral': '\uD800[\uDD40-\uDD8F]'
-    },
-    {
-        'name': 'InAncient_Symbols',
-        'astral': '\uD800[\uDD90-\uDDCF]'
-    },
-    {
-        'name': 'InArabic',
-        'bmp': '\u0600-\u06FF'
-    },
-    {
-        'name': 'InArabic_Extended_A',
-        'bmp': '\u08A0-\u08FF'
-    },
-    {
-        'name': 'InArabic_Mathematical_Alphabetic_Symbols',
-        'astral': '\uD83B[\uDE00-\uDEFF]'
-    },
-    {
-        'name': 'InArabic_Presentation_Forms_A',
-        'bmp': '\uFB50-\uFDFF'
-    },
-    {
-        'name': 'InArabic_Presentation_Forms_B',
-        'bmp': '\uFE70-\uFEFF'
-    },
-    {
-        'name': 'InArabic_Supplement',
-        'bmp': '\u0750-\u077F'
-    },
-    {
-        'name': 'InArmenian',
-        'bmp': '\u0530-\u058F'
-    },
-    {
-        'name': 'InArrows',
-        'bmp': '\u2190-\u21FF'
-    },
-    {
-        'name': 'InAvestan',
-        'astral': '\uD802[\uDF00-\uDF3F]'
-    },
-    {
-        'name': 'InBalinese',
-        'bmp': '\u1B00-\u1B7F'
-    },
-    {
-        'name': 'InBamum',
-        'bmp': '\uA6A0-\uA6FF'
-    },
-    {
-        'name': 'InBamum_Supplement',
-        'astral': '\uD81A[\uDC00-\uDE3F]'
-    },
-    {
-        'name': 'InBasic_Latin',
-        'bmp': '\0-\x7F'
-    },
-    {
-        'name': 'InBassa_Vah',
-        'astral': '\uD81A[\uDED0-\uDEFF]'
-    },
-    {
-        'name': 'InBatak',
-        'bmp': '\u1BC0-\u1BFF'
-    },
-    {
-        'name': 'InBengali',
-        'bmp': '\u0980-\u09FF'
-    },
-    {
-        'name': 'InBhaiksuki',
-        'astral': '\uD807[\uDC00-\uDC6F]'
-    },
-    {
-        'name': 'InBlock_Elements',
-        'bmp': '\u2580-\u259F'
-    },
-    {
-        'name': 'InBopomofo',
-        'bmp': '\u3100-\u312F'
-    },
-    {
-        'name': 'InBopomofo_Extended',
-        'bmp': '\u31A0-\u31BF'
-    },
-    {
-        'name': 'InBox_Drawing',
-        'bmp': '\u2500-\u257F'
-    },
-    {
-        'name': 'InBrahmi',
-        'astral': '\uD804[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InBraille_Patterns',
-        'bmp': '\u2800-\u28FF'
-    },
-    {
-        'name': 'InBuginese',
-        'bmp': '\u1A00-\u1A1F'
-    },
-    {
-        'name': 'InBuhid',
-        'bmp': '\u1740-\u175F'
-    },
-    {
-        'name': 'InByzantine_Musical_Symbols',
-        'astral': '\uD834[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InCJK_Compatibility',
-        'bmp': '\u3300-\u33FF'
-    },
-    {
-        'name': 'InCJK_Compatibility_Forms',
-        'bmp': '\uFE30-\uFE4F'
-    },
-    {
-        'name': 'InCJK_Compatibility_Ideographs',
-        'bmp': '\uF900-\uFAFF'
-    },
-    {
-        'name': 'InCJK_Compatibility_Ideographs_Supplement',
-        'astral': '\uD87E[\uDC00-\uDE1F]'
-    },
-    {
-        'name': 'InCJK_Radicals_Supplement',
-        'bmp': '\u2E80-\u2EFF'
-    },
-    {
-        'name': 'InCJK_Strokes',
-        'bmp': '\u31C0-\u31EF'
-    },
-    {
-        'name': 'InCJK_Symbols_And_Punctuation',
-        'bmp': '\u3000-\u303F'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs',
-        'bmp': '\u4E00-\u9FFF'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_A',
-        'bmp': '\u3400-\u4DBF'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_B',
-        'astral': '[\uD840-\uD868][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_C',
-        'astral': '\uD869[\uDF00-\uDFFF]|[\uD86A-\uD86C][\uDC00-\uDFFF]|\uD86D[\uDC00-\uDF3F]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_D',
-        'astral': '\uD86D[\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1F]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_E',
-        'astral': '\uD86E[\uDC20-\uDFFF]|[\uD86F-\uD872][\uDC00-\uDFFF]|\uD873[\uDC00-\uDEAF]'
-    },
-    {
-        'name': 'InCJK_Unified_Ideographs_Extension_F',
-        'astral': '\uD873[\uDEB0-\uDFFF]|[\uD874-\uD879][\uDC00-\uDFFF]|\uD87A[\uDC00-\uDFEF]'
-    },
-    {
-        'name': 'InCarian',
-        'astral': '\uD800[\uDEA0-\uDEDF]'
-    },
-    {
-        'name': 'InCaucasian_Albanian',
-        'astral': '\uD801[\uDD30-\uDD6F]'
-    },
-    {
-        'name': 'InChakma',
-        'astral': '\uD804[\uDD00-\uDD4F]'
-    },
-    {
-        'name': 'InCham',
-        'bmp': '\uAA00-\uAA5F'
-    },
-    {
-        'name': 'InCherokee',
-        'bmp': '\u13A0-\u13FF'
-    },
-    {
-        'name': 'InCherokee_Supplement',
-        'bmp': '\uAB70-\uABBF'
-    },
-    {
-        'name': 'InChess_Symbols',
-        'astral': '\uD83E[\uDE00-\uDE6F]'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks',
-        'bmp': '\u0300-\u036F'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_Extended',
-        'bmp': '\u1AB0-\u1AFF'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_For_Symbols',
-        'bmp': '\u20D0-\u20FF'
-    },
-    {
-        'name': 'InCombining_Diacritical_Marks_Supplement',
-        'bmp': '\u1DC0-\u1DFF'
-    },
-    {
-        'name': 'InCombining_Half_Marks',
-        'bmp': '\uFE20-\uFE2F'
-    },
-    {
-        'name': 'InCommon_Indic_Number_Forms',
-        'bmp': '\uA830-\uA83F'
-    },
-    {
-        'name': 'InControl_Pictures',
-        'bmp': '\u2400-\u243F'
-    },
-    {
-        'name': 'InCoptic',
-        'bmp': '\u2C80-\u2CFF'
-    },
-    {
-        'name': 'InCoptic_Epact_Numbers',
-        'astral': '\uD800[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InCounting_Rod_Numerals',
-        'astral': '\uD834[\uDF60-\uDF7F]'
-    },
-    {
-        'name': 'InCuneiform',
-        'astral': '\uD808[\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InCuneiform_Numbers_And_Punctuation',
-        'astral': '\uD809[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InCurrency_Symbols',
-        'bmp': '\u20A0-\u20CF'
-    },
-    {
-        'name': 'InCypriot_Syllabary',
-        'astral': '\uD802[\uDC00-\uDC3F]'
-    },
-    {
-        'name': 'InCyrillic',
-        'bmp': '\u0400-\u04FF'
-    },
-    {
-        'name': 'InCyrillic_Extended_A',
-        'bmp': '\u2DE0-\u2DFF'
-    },
-    {
-        'name': 'InCyrillic_Extended_B',
-        'bmp': '\uA640-\uA69F'
-    },
-    {
-        'name': 'InCyrillic_Extended_C',
-        'bmp': '\u1C80-\u1C8F'
-    },
-    {
-        'name': 'InCyrillic_Supplement',
-        'bmp': '\u0500-\u052F'
-    },
-    {
-        'name': 'InDeseret',
-        'astral': '\uD801[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InDevanagari',
-        'bmp': '\u0900-\u097F'
-    },
-    {
-        'name': 'InDevanagari_Extended',
-        'bmp': '\uA8E0-\uA8FF'
-    },
-    {
-        'name': 'InDingbats',
-        'bmp': '\u2700-\u27BF'
-    },
-    {
-        'name': 'InDogra',
-        'astral': '\uD806[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InDomino_Tiles',
-        'astral': '\uD83C[\uDC30-\uDC9F]'
-    },
-    {
-        'name': 'InDuployan',
-        'astral': '\uD82F[\uDC00-\uDC9F]'
-    },
-    {
-        'name': 'InEarly_Dynastic_Cuneiform',
-        'astral': '\uD809[\uDC80-\uDD4F]'
-    },
-    {
-        'name': 'InEgyptian_Hieroglyphs',
-        'astral': '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InElbasan',
-        'astral': '\uD801[\uDD00-\uDD2F]'
-    },
-    {
-        'name': 'InEmoticons',
-        'astral': '\uD83D[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InEnclosed_Alphanumeric_Supplement',
-        'astral': '\uD83C[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InEnclosed_Alphanumerics',
-        'bmp': '\u2460-\u24FF'
-    },
-    {
-        'name': 'InEnclosed_CJK_Letters_And_Months',
-        'bmp': '\u3200-\u32FF'
-    },
-    {
-        'name': 'InEnclosed_Ideographic_Supplement',
-        'astral': '\uD83C[\uDE00-\uDEFF]'
-    },
-    {
-        'name': 'InEthiopic',
-        'bmp': '\u1200-\u137F'
-    },
-    {
-        'name': 'InEthiopic_Extended',
-        'bmp': '\u2D80-\u2DDF'
-    },
-    {
-        'name': 'InEthiopic_Extended_A',
-        'bmp': '\uAB00-\uAB2F'
-    },
-    {
-        'name': 'InEthiopic_Supplement',
-        'bmp': '\u1380-\u139F'
-    },
-    {
-        'name': 'InGeneral_Punctuation',
-        'bmp': '\u2000-\u206F'
-    },
-    {
-        'name': 'InGeometric_Shapes',
-        'bmp': '\u25A0-\u25FF'
-    },
-    {
-        'name': 'InGeometric_Shapes_Extended',
-        'astral': '\uD83D[\uDF80-\uDFFF]'
-    },
-    {
-        'name': 'InGeorgian',
-        'bmp': '\u10A0-\u10FF'
-    },
-    {
-        'name': 'InGeorgian_Extended',
-        'bmp': '\u1C90-\u1CBF'
-    },
-    {
-        'name': 'InGeorgian_Supplement',
-        'bmp': '\u2D00-\u2D2F'
-    },
-    {
-        'name': 'InGlagolitic',
-        'bmp': '\u2C00-\u2C5F'
-    },
-    {
-        'name': 'InGlagolitic_Supplement',
-        'astral': '\uD838[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InGothic',
-        'astral': '\uD800[\uDF30-\uDF4F]'
-    },
-    {
-        'name': 'InGrantha',
-        'astral': '\uD804[\uDF00-\uDF7F]'
-    },
-    {
-        'name': 'InGreek_And_Coptic',
-        'bmp': '\u0370-\u03FF'
-    },
-    {
-        'name': 'InGreek_Extended',
-        'bmp': '\u1F00-\u1FFF'
-    },
-    {
-        'name': 'InGujarati',
-        'bmp': '\u0A80-\u0AFF'
-    },
-    {
-        'name': 'InGunjala_Gondi',
-        'astral': '\uD807[\uDD60-\uDDAF]'
-    },
-    {
-        'name': 'InGurmukhi',
-        'bmp': '\u0A00-\u0A7F'
-    },
-    {
-        'name': 'InHalfwidth_And_Fullwidth_Forms',
-        'bmp': '\uFF00-\uFFEF'
-    },
-    {
-        'name': 'InHangul_Compatibility_Jamo',
-        'bmp': '\u3130-\u318F'
-    },
-    {
-        'name': 'InHangul_Jamo',
-        'bmp': '\u1100-\u11FF'
-    },
-    {
-        'name': 'InHangul_Jamo_Extended_A',
-        'bmp': '\uA960-\uA97F'
-    },
-    {
-        'name': 'InHangul_Jamo_Extended_B',
-        'bmp': '\uD7B0-\uD7FF'
-    },
-    {
-        'name': 'InHangul_Syllables',
-        'bmp': '\uAC00-\uD7AF'
-    },
-    {
-        'name': 'InHanifi_Rohingya',
-        'astral': '\uD803[\uDD00-\uDD3F]'
-    },
-    {
-        'name': 'InHanunoo',
-        'bmp': '\u1720-\u173F'
-    },
-    {
-        'name': 'InHatran',
-        'astral': '\uD802[\uDCE0-\uDCFF]'
-    },
-    {
-        'name': 'InHebrew',
-        'bmp': '\u0590-\u05FF'
-    },
-    {
-        'name': 'InHigh_Private_Use_Surrogates',
-        'bmp': '\uDB80-\uDBFF'
-    },
-    {
-        'name': 'InHigh_Surrogates',
-        'bmp': '\uD800-\uDB7F'
-    },
-    {
-        'name': 'InHiragana',
-        'bmp': '\u3040-\u309F'
-    },
-    {
-        'name': 'InIPA_Extensions',
-        'bmp': '\u0250-\u02AF'
-    },
-    {
-        'name': 'InIdeographic_Description_Characters',
-        'bmp': '\u2FF0-\u2FFF'
-    },
-    {
-        'name': 'InIdeographic_Symbols_And_Punctuation',
-        'astral': '\uD81B[\uDFE0-\uDFFF]'
-    },
-    {
-        'name': 'InImperial_Aramaic',
-        'astral': '\uD802[\uDC40-\uDC5F]'
-    },
-    {
-        'name': 'InIndic_Siyaq_Numbers',
-        'astral': '\uD83B[\uDC70-\uDCBF]'
-    },
-    {
-        'name': 'InInscriptional_Pahlavi',
-        'astral': '\uD802[\uDF60-\uDF7F]'
-    },
-    {
-        'name': 'InInscriptional_Parthian',
-        'astral': '\uD802[\uDF40-\uDF5F]'
-    },
-    {
-        'name': 'InJavanese',
-        'bmp': '\uA980-\uA9DF'
-    },
-    {
-        'name': 'InKaithi',
-        'astral': '\uD804[\uDC80-\uDCCF]'
-    },
-    {
-        'name': 'InKana_Extended_A',
-        'astral': '\uD82C[\uDD00-\uDD2F]'
-    },
-    {
-        'name': 'InKana_Supplement',
-        'astral': '\uD82C[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InKanbun',
-        'bmp': '\u3190-\u319F'
-    },
-    {
-        'name': 'InKangxi_Radicals',
-        'bmp': '\u2F00-\u2FDF'
-    },
-    {
-        'name': 'InKannada',
-        'bmp': '\u0C80-\u0CFF'
-    },
-    {
-        'name': 'InKatakana',
-        'bmp': '\u30A0-\u30FF'
-    },
-    {
-        'name': 'InKatakana_Phonetic_Extensions',
-        'bmp': '\u31F0-\u31FF'
-    },
-    {
-        'name': 'InKayah_Li',
-        'bmp': '\uA900-\uA92F'
-    },
-    {
-        'name': 'InKharoshthi',
-        'astral': '\uD802[\uDE00-\uDE5F]'
-    },
-    {
-        'name': 'InKhmer',
-        'bmp': '\u1780-\u17FF'
-    },
-    {
-        'name': 'InKhmer_Symbols',
-        'bmp': '\u19E0-\u19FF'
-    },
-    {
-        'name': 'InKhojki',
-        'astral': '\uD804[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'InKhudawadi',
-        'astral': '\uD804[\uDEB0-\uDEFF]'
-    },
-    {
-        'name': 'InLao',
-        'bmp': '\u0E80-\u0EFF'
-    },
-    {
-        'name': 'InLatin_1_Supplement',
-        'bmp': '\x80-\xFF'
-    },
-    {
-        'name': 'InLatin_Extended_A',
-        'bmp': '\u0100-\u017F'
-    },
-    {
-        'name': 'InLatin_Extended_Additional',
-        'bmp': '\u1E00-\u1EFF'
-    },
-    {
-        'name': 'InLatin_Extended_B',
-        'bmp': '\u0180-\u024F'
-    },
-    {
-        'name': 'InLatin_Extended_C',
-        'bmp': '\u2C60-\u2C7F'
-    },
-    {
-        'name': 'InLatin_Extended_D',
-        'bmp': '\uA720-\uA7FF'
-    },
-    {
-        'name': 'InLatin_Extended_E',
-        'bmp': '\uAB30-\uAB6F'
-    },
-    {
-        'name': 'InLepcha',
-        'bmp': '\u1C00-\u1C4F'
-    },
-    {
-        'name': 'InLetterlike_Symbols',
-        'bmp': '\u2100-\u214F'
-    },
-    {
-        'name': 'InLimbu',
-        'bmp': '\u1900-\u194F'
-    },
-    {
-        'name': 'InLinear_A',
-        'astral': '\uD801[\uDE00-\uDF7F]'
-    },
-    {
-        'name': 'InLinear_B_Ideograms',
-        'astral': '\uD800[\uDC80-\uDCFF]'
-    },
-    {
-        'name': 'InLinear_B_Syllabary',
-        'astral': '\uD800[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InLisu',
-        'bmp': '\uA4D0-\uA4FF'
-    },
-    {
-        'name': 'InLow_Surrogates',
-        'bmp': '\uDC00-\uDFFF'
-    },
-    {
-        'name': 'InLycian',
-        'astral': '\uD800[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'InLydian',
-        'astral': '\uD802[\uDD20-\uDD3F]'
-    },
-    {
-        'name': 'InMahajani',
-        'astral': '\uD804[\uDD50-\uDD7F]'
-    },
-    {
-        'name': 'InMahjong_Tiles',
-        'astral': '\uD83C[\uDC00-\uDC2F]'
-    },
-    {
-        'name': 'InMakasar',
-        'astral': '\uD807[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InMalayalam',
-        'bmp': '\u0D00-\u0D7F'
-    },
-    {
-        'name': 'InMandaic',
-        'bmp': '\u0840-\u085F'
-    },
-    {
-        'name': 'InManichaean',
-        'astral': '\uD802[\uDEC0-\uDEFF]'
-    },
-    {
-        'name': 'InMarchen',
-        'astral': '\uD807[\uDC70-\uDCBF]'
-    },
-    {
-        'name': 'InMasaram_Gondi',
-        'astral': '\uD807[\uDD00-\uDD5F]'
-    },
-    {
-        'name': 'InMathematical_Alphanumeric_Symbols',
-        'astral': '\uD835[\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InMathematical_Operators',
-        'bmp': '\u2200-\u22FF'
-    },
-    {
-        'name': 'InMayan_Numerals',
-        'astral': '\uD834[\uDEE0-\uDEFF]'
-    },
-    {
-        'name': 'InMedefaidrin',
-        'astral': '\uD81B[\uDE40-\uDE9F]'
-    },
-    {
-        'name': 'InMeetei_Mayek',
-        'bmp': '\uABC0-\uABFF'
-    },
-    {
-        'name': 'InMeetei_Mayek_Extensions',
-        'bmp': '\uAAE0-\uAAFF'
-    },
-    {
-        'name': 'InMende_Kikakui',
-        'astral': '\uD83A[\uDC00-\uDCDF]'
-    },
-    {
-        'name': 'InMeroitic_Cursive',
-        'astral': '\uD802[\uDDA0-\uDDFF]'
-    },
-    {
-        'name': 'InMeroitic_Hieroglyphs',
-        'astral': '\uD802[\uDD80-\uDD9F]'
-    },
-    {
-        'name': 'InMiao',
-        'astral': '\uD81B[\uDF00-\uDF9F]'
-    },
-    {
-        'name': 'InMiscellaneous_Mathematical_Symbols_A',
-        'bmp': '\u27C0-\u27EF'
-    },
-    {
-        'name': 'InMiscellaneous_Mathematical_Symbols_B',
-        'bmp': '\u2980-\u29FF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols',
-        'bmp': '\u2600-\u26FF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols_And_Arrows',
-        'bmp': '\u2B00-\u2BFF'
-    },
-    {
-        'name': 'InMiscellaneous_Symbols_And_Pictographs',
-        'astral': '\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF]'
-    },
-    {
-        'name': 'InMiscellaneous_Technical',
-        'bmp': '\u2300-\u23FF'
-    },
-    {
-        'name': 'InModi',
-        'astral': '\uD805[\uDE00-\uDE5F]'
-    },
-    {
-        'name': 'InModifier_Tone_Letters',
-        'bmp': '\uA700-\uA71F'
-    },
-    {
-        'name': 'InMongolian',
-        'bmp': '\u1800-\u18AF'
-    },
-    {
-        'name': 'InMongolian_Supplement',
-        'astral': '\uD805[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InMro',
-        'astral': '\uD81A[\uDE40-\uDE6F]'
-    },
-    {
-        'name': 'InMultani',
-        'astral': '\uD804[\uDE80-\uDEAF]'
-    },
-    {
-        'name': 'InMusical_Symbols',
-        'astral': '\uD834[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InMyanmar',
-        'bmp': '\u1000-\u109F'
-    },
-    {
-        'name': 'InMyanmar_Extended_A',
-        'bmp': '\uAA60-\uAA7F'
-    },
-    {
-        'name': 'InMyanmar_Extended_B',
-        'bmp': '\uA9E0-\uA9FF'
-    },
-    {
-        'name': 'InNKo',
-        'bmp': '\u07C0-\u07FF'
-    },
-    {
-        'name': 'InNabataean',
-        'astral': '\uD802[\uDC80-\uDCAF]'
-    },
-    {
-        'name': 'InNew_Tai_Lue',
-        'bmp': '\u1980-\u19DF'
-    },
-    {
-        'name': 'InNewa',
-        'astral': '\uD805[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InNumber_Forms',
-        'bmp': '\u2150-\u218F'
-    },
-    {
-        'name': 'InNushu',
-        'astral': '\uD82C[\uDD70-\uDEFF]'
-    },
-    {
-        'name': 'InOgham',
-        'bmp': '\u1680-\u169F'
-    },
-    {
-        'name': 'InOl_Chiki',
-        'bmp': '\u1C50-\u1C7F'
-    },
-    {
-        'name': 'InOld_Hungarian',
-        'astral': '\uD803[\uDC80-\uDCFF]'
-    },
-    {
-        'name': 'InOld_Italic',
-        'astral': '\uD800[\uDF00-\uDF2F]'
-    },
-    {
-        'name': 'InOld_North_Arabian',
-        'astral': '\uD802[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'InOld_Permic',
-        'astral': '\uD800[\uDF50-\uDF7F]'
-    },
-    {
-        'name': 'InOld_Persian',
-        'astral': '\uD800[\uDFA0-\uDFDF]'
-    },
-    {
-        'name': 'InOld_Sogdian',
-        'astral': '\uD803[\uDF00-\uDF2F]'
-    },
-    {
-        'name': 'InOld_South_Arabian',
-        'astral': '\uD802[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InOld_Turkic',
-        'astral': '\uD803[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'InOptical_Character_Recognition',
-        'bmp': '\u2440-\u245F'
-    },
-    {
-        'name': 'InOriya',
-        'bmp': '\u0B00-\u0B7F'
-    },
-    {
-        'name': 'InOrnamental_Dingbats',
-        'astral': '\uD83D[\uDE50-\uDE7F]'
-    },
-    {
-        'name': 'InOsage',
-        'astral': '\uD801[\uDCB0-\uDCFF]'
-    },
-    {
-        'name': 'InOsmanya',
-        'astral': '\uD801[\uDC80-\uDCAF]'
-    },
-    {
-        'name': 'InPahawh_Hmong',
-        'astral': '\uD81A[\uDF00-\uDF8F]'
-    },
-    {
-        'name': 'InPalmyrene',
-        'astral': '\uD802[\uDC60-\uDC7F]'
-    },
-    {
-        'name': 'InPau_Cin_Hau',
-        'astral': '\uD806[\uDEC0-\uDEFF]'
-    },
-    {
-        'name': 'InPhags_Pa',
-        'bmp': '\uA840-\uA87F'
-    },
-    {
-        'name': 'InPhaistos_Disc',
-        'astral': '\uD800[\uDDD0-\uDDFF]'
-    },
-    {
-        'name': 'InPhoenician',
-        'astral': '\uD802[\uDD00-\uDD1F]'
-    },
-    {
-        'name': 'InPhonetic_Extensions',
-        'bmp': '\u1D00-\u1D7F'
-    },
-    {
-        'name': 'InPhonetic_Extensions_Supplement',
-        'bmp': '\u1D80-\u1DBF'
-    },
-    {
-        'name': 'InPlaying_Cards',
-        'astral': '\uD83C[\uDCA0-\uDCFF]'
-    },
-    {
-        'name': 'InPrivate_Use_Area',
-        'bmp': '\uE000-\uF8FF'
-    },
-    {
-        'name': 'InPsalter_Pahlavi',
-        'astral': '\uD802[\uDF80-\uDFAF]'
-    },
-    {
-        'name': 'InRejang',
-        'bmp': '\uA930-\uA95F'
-    },
-    {
-        'name': 'InRumi_Numeral_Symbols',
-        'astral': '\uD803[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'InRunic',
-        'bmp': '\u16A0-\u16FF'
-    },
-    {
-        'name': 'InSamaritan',
-        'bmp': '\u0800-\u083F'
-    },
-    {
-        'name': 'InSaurashtra',
-        'bmp': '\uA880-\uA8DF'
-    },
-    {
-        'name': 'InSharada',
-        'astral': '\uD804[\uDD80-\uDDDF]'
-    },
-    {
-        'name': 'InShavian',
-        'astral': '\uD801[\uDC50-\uDC7F]'
-    },
-    {
-        'name': 'InShorthand_Format_Controls',
-        'astral': '\uD82F[\uDCA0-\uDCAF]'
-    },
-    {
-        'name': 'InSiddham',
-        'astral': '\uD805[\uDD80-\uDDFF]'
-    },
-    {
-        'name': 'InSinhala',
-        'bmp': '\u0D80-\u0DFF'
-    },
-    {
-        'name': 'InSinhala_Archaic_Numbers',
-        'astral': '\uD804[\uDDE0-\uDDFF]'
-    },
-    {
-        'name': 'InSmall_Form_Variants',
-        'bmp': '\uFE50-\uFE6F'
-    },
-    {
-        'name': 'InSogdian',
-        'astral': '\uD803[\uDF30-\uDF6F]'
-    },
-    {
-        'name': 'InSora_Sompeng',
-        'astral': '\uD804[\uDCD0-\uDCFF]'
-    },
-    {
-        'name': 'InSoyombo',
-        'astral': '\uD806[\uDE50-\uDEAF]'
-    },
-    {
-        'name': 'InSpacing_Modifier_Letters',
-        'bmp': '\u02B0-\u02FF'
-    },
-    {
-        'name': 'InSpecials',
-        'bmp': '\uFFF0-\uFFFF'
-    },
-    {
-        'name': 'InSundanese',
-        'bmp': '\u1B80-\u1BBF'
-    },
-    {
-        'name': 'InSundanese_Supplement',
-        'bmp': '\u1CC0-\u1CCF'
-    },
-    {
-        'name': 'InSuperscripts_And_Subscripts',
-        'bmp': '\u2070-\u209F'
-    },
-    {
-        'name': 'InSupplemental_Arrows_A',
-        'bmp': '\u27F0-\u27FF'
-    },
-    {
-        'name': 'InSupplemental_Arrows_B',
-        'bmp': '\u2900-\u297F'
-    },
-    {
-        'name': 'InSupplemental_Arrows_C',
-        'astral': '\uD83E[\uDC00-\uDCFF]'
-    },
-    {
-        'name': 'InSupplemental_Mathematical_Operators',
-        'bmp': '\u2A00-\u2AFF'
-    },
-    {
-        'name': 'InSupplemental_Punctuation',
-        'bmp': '\u2E00-\u2E7F'
-    },
-    {
-        'name': 'InSupplemental_Symbols_And_Pictographs',
-        'astral': '\uD83E[\uDD00-\uDDFF]'
-    },
-    {
-        'name': 'InSupplementary_Private_Use_Area_A',
-        'astral': '[\uDB80-\uDBBF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InSupplementary_Private_Use_Area_B',
-        'astral': '[\uDBC0-\uDBFF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InSutton_SignWriting',
-        'astral': '\uD836[\uDC00-\uDEAF]'
-    },
-    {
-        'name': 'InSyloti_Nagri',
-        'bmp': '\uA800-\uA82F'
-    },
-    {
-        'name': 'InSyriac',
-        'bmp': '\u0700-\u074F'
-    },
-    {
-        'name': 'InSyriac_Supplement',
-        'bmp': '\u0860-\u086F'
-    },
-    {
-        'name': 'InTagalog',
-        'bmp': '\u1700-\u171F'
-    },
-    {
-        'name': 'InTagbanwa',
-        'bmp': '\u1760-\u177F'
-    },
-    {
-        'name': 'InTags',
-        'astral': '\uDB40[\uDC00-\uDC7F]'
-    },
-    {
-        'name': 'InTai_Le',
-        'bmp': '\u1950-\u197F'
-    },
-    {
-        'name': 'InTai_Tham',
-        'bmp': '\u1A20-\u1AAF'
-    },
-    {
-        'name': 'InTai_Viet',
-        'bmp': '\uAA80-\uAADF'
-    },
-    {
-        'name': 'InTai_Xuan_Jing_Symbols',
-        'astral': '\uD834[\uDF00-\uDF5F]'
-    },
-    {
-        'name': 'InTakri',
-        'astral': '\uD805[\uDE80-\uDECF]'
-    },
-    {
-        'name': 'InTamil',
-        'bmp': '\u0B80-\u0BFF'
-    },
-    {
-        'name': 'InTangut',
-        'astral': '[\uD81C-\uD821][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'InTangut_Components',
-        'astral': '\uD822[\uDC00-\uDEFF]'
-    },
-    {
-        'name': 'InTelugu',
-        'bmp': '\u0C00-\u0C7F'
-    },
-    {
-        'name': 'InThaana',
-        'bmp': '\u0780-\u07BF'
-    },
-    {
-        'name': 'InThai',
-        'bmp': '\u0E00-\u0E7F'
-    },
-    {
-        'name': 'InTibetan',
-        'bmp': '\u0F00-\u0FFF'
-    },
-    {
-        'name': 'InTifinagh',
-        'bmp': '\u2D30-\u2D7F'
-    },
-    {
-        'name': 'InTirhuta',
-        'astral': '\uD805[\uDC80-\uDCDF]'
-    },
-    {
-        'name': 'InTransport_And_Map_Symbols',
-        'astral': '\uD83D[\uDE80-\uDEFF]'
-    },
-    {
-        'name': 'InUgaritic',
-        'astral': '\uD800[\uDF80-\uDF9F]'
-    },
-    {
-        'name': 'InUnified_Canadian_Aboriginal_Syllabics',
-        'bmp': '\u1400-\u167F'
-    },
-    {
-        'name': 'InUnified_Canadian_Aboriginal_Syllabics_Extended',
-        'bmp': '\u18B0-\u18FF'
-    },
-    {
-        'name': 'InVai',
-        'bmp': '\uA500-\uA63F'
-    },
-    {
-        'name': 'InVariation_Selectors',
-        'bmp': '\uFE00-\uFE0F'
-    },
-    {
-        'name': 'InVariation_Selectors_Supplement',
-        'astral': '\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'InVedic_Extensions',
-        'bmp': '\u1CD0-\u1CFF'
-    },
-    {
-        'name': 'InVertical_Forms',
-        'bmp': '\uFE10-\uFE1F'
-    },
-    {
-        'name': 'InWarang_Citi',
-        'astral': '\uD806[\uDCA0-\uDCFF]'
-    },
-    {
-        'name': 'InYi_Radicals',
-        'bmp': '\uA490-\uA4CF'
-    },
-    {
-        'name': 'InYi_Syllables',
-        'bmp': '\uA000-\uA48F'
-    },
-    {
-        'name': 'InYijing_Hexagram_Symbols',
-        'bmp': '\u4DC0-\u4DFF'
-    },
-    {
-        'name': 'InZanabazar_Square',
-        'astral': '\uD806[\uDE00-\uDE4F]'
-    },
-    {
-        'name': 'Inundefined',
-        'astral': '\uD803[\uDFE0-\uDFFF]|\uD806[\uDDA0-\uDDFF]|\uD807[\uDFC0-\uDFFF]|\uD80D[\uDC30-\uDC3F]|\uD82C[\uDD30-\uDD6F]|\uD838[\uDD00-\uDD4F\uDEC0-\uDEFF]|\uD83B[\uDD00-\uDD4F]|\uD83E[\uDE70-\uDEFF]'
-    }
-];
-
-},{}],172:[function(require,module,exports){
-module.exports = [
-    {
-        'name': 'C',
-        'alias': 'Other',
-        'isBmpLast': true,
-        'bmp': '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08BE-\u08D2\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D04\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E50-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u4DB6-\u4DBF\u9FF0-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7C7-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB68-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF',
-        'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCBD\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD47-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC60-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD00-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE4-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD6D-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED6-\uDEDF\uDEED-\uDEEF\uDEFB-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C\uDD72\uDD77-\uDD79\uDDA3\uDDA4\uDDAB-\uDDAD\uDDCB\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE74-\uDE77\uDE7B-\uDE7F\uDE83-\uDE8F\uDE96-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]'
-    },
-    {
-        'name': 'Cc',
-        'alias': 'Control',
-        'bmp': '\0-\x1F\x7F-\x9F'
-    },
-    {
-        'name': 'Cf',
-        'alias': 'Format',
-        'bmp': '\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB',
-        'astral': '\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]'
-    },
-    {
-        'name': 'Cn',
-        'alias': 'Unassigned',
-        'bmp': '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u061D\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08BE-\u08D2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D04\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ABF-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2B97\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E50-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u4DB6-\u4DBF\u9FF0-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7C7-\uA7F6\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB68-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF',
-        'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9C-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCC2-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD47-\uDD4F\uDD77-\uDD7F\uDDCE\uDDCF\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5A\uDC5C\uDC60-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD00-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE4-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDD0D-\uDD0F\uDD6D-\uDD6F\uDDAD-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED6-\uDEDF\uDEED-\uDEEF\uDEFB-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE-\uDCFF\uDD0C\uDD72\uDD77-\uDD79\uDDA3\uDDA4\uDDAB-\uDDAD\uDDCB\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE74-\uDE77\uDE7B-\uDE7F\uDE83-\uDE8F\uDE96-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]'
-    },
-    {
-        'name': 'Co',
-        'alias': 'Private_Use',
-        'bmp': '\uE000-\uF8FF',
-        'astral': '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]'
-    },
-    {
-        'name': 'Cs',
-        'alias': 'Surrogate',
-        'bmp': '\uD800-\uDFFF'
-    },
-    {
-        'name': 'L',
-        'alias': 'Letter',
-        'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'LC',
-        'alias': 'Cased_Letter',
-        'bmp': 'A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7BF\uA7C2-\uA7C6\uA7FA\uAB30-\uAB5A\uAB60-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDD00-\uDD43]'
-    },
-    {
-        'name': 'Ll',
-        'alias': 'Lowercase_Letter',
-        'bmp': 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7FA\uAB30-\uAB5A\uAB60-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]'
-    },
-    {
-        'name': 'Lm',
-        'alias': 'Modifier_Letter',
-        'bmp': '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E\uFF9F',
-        'astral': '\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD838[\uDD37-\uDD3D]|\uD83A\uDD4B'
-    },
-    {
-        'name': 'Lo',
-        'alias': 'Other_Letter',
-        'bmp': '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD838[\uDD00-\uDD2C\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Lt',
-        'alias': 'Titlecase_Letter',
-        'bmp': '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC'
-    },
-    {
-        'name': 'Lu',
-        'alias': 'Uppercase_Letter',
-        'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C6\uFF21-\uFF3A',
-        'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]'
-    },
-    {
-        'name': 'M',
-        'alias': 'Mark',
-        'bmp': '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F',
-        'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'Mc',
-        'alias': 'Spacing_Mark',
-        'bmp': '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC',
-        'astral': '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]'
-    },
-    {
-        'name': 'Me',
-        'alias': 'Enclosing_Mark',
-        'bmp': '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672'
-    },
-    {
-        'name': 'Mn',
-        'alias': 'Nonspacing_Mark',
-        'bmp': '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F',
-        'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDF46-\uDF50]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'N',
-        'alias': 'Number',
-        'bmp': '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19',
-        'astral': '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]'
-    },
-    {
-        'name': 'Nd',
-        'alias': 'Decimal_Number',
-        'bmp': '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19',
-        'astral': '\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]'
-    },
-    {
-        'name': 'Nl',
-        'alias': 'Letter_Number',
-        'bmp': '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF',
-        'astral': '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]'
-    },
-    {
-        'name': 'No',
-        'alias': 'Other_Number',
-        'bmp': '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835',
-        'astral': '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]'
-    },
-    {
-        'name': 'P',
-        'alias': 'Punctuation',
-        'bmp': '!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65',
-        'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Pc',
-        'alias': 'Connector_Punctuation',
-        'bmp': '_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F'
-    },
-    {
-        'name': 'Pd',
-        'alias': 'Dash_Punctuation',
-        'bmp': '\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D'
-    },
-    {
-        'name': 'Pe',
-        'alias': 'Close_Punctuation',
-        'bmp': '\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63'
-    },
-    {
-        'name': 'Pf',
-        'alias': 'Final_Punctuation',
-        'bmp': '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21'
-    },
-    {
-        'name': 'Pi',
-        'alias': 'Initial_Punctuation',
-        'bmp': '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20'
-    },
-    {
-        'name': 'Po',
-        'alias': 'Other_Punctuation',
-        'bmp': '!-#%-\'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65',
-        'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Ps',
-        'alias': 'Open_Punctuation',
-        'bmp': '\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62'
-    },
-    {
-        'name': 'S',
-        'alias': 'Symbol',
-        'bmp': '\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD',
-        'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]'
-    },
-    {
-        'name': 'Sc',
-        'alias': 'Currency_Symbol',
-        'bmp': '\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6',
-        'astral': '\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0'
-    },
-    {
-        'name': 'Sk',
-        'alias': 'Modifier_Symbol',
-        'bmp': '\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uFBB2-\uFBC1\uFF3E\uFF40\uFFE3',
-        'astral': '\uD83C[\uDFFB-\uDFFF]'
-    },
-    {
-        'name': 'Sm',
-        'alias': 'Math_Symbol',
-        'bmp': '\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC',
-        'astral': '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]'
-    },
-    {
-        'name': 'So',
-        'alias': 'Other_Symbol',
-        'bmp': '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD',
-        'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9B\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]'
-    },
-    {
-        'name': 'Z',
-        'alias': 'Separator',
-        'bmp': ' \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000'
-    },
-    {
-        'name': 'Zl',
-        'alias': 'Line_Separator',
-        'bmp': '\u2028'
-    },
-    {
-        'name': 'Zp',
-        'alias': 'Paragraph_Separator',
-        'bmp': '\u2029'
-    },
-    {
-        'name': 'Zs',
-        'alias': 'Space_Separator',
-        'bmp': ' \xA0\u1680\u2000-\u200A\u202F\u205F\u3000'
-    }
-];
-
-},{}],173:[function(require,module,exports){
-module.exports = [
-    {
-        'name': 'ASCII',
-        'bmp': '\0-\x7F'
-    },
-    {
-        'name': 'Alphabetic',
-        'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9-\u0AFC\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u108F\u109A-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1713\u1720-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4B\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C36\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA805\uA807-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FF\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC45\uDC82-\uDCB8\uDCD0-\uDCE8\uDD00-\uDD32\uDD44-\uDD46\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC5F\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDEB8\uDF00-\uDF1A\uDF1D-\uDF2A]|\uD806[\uDC00-\uDC38\uDCA0-\uDCDF\uDCFF\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDDF\uDDE1\uDDE3\uDDE4\uDE00-\uDE32\uDE35-\uDE3E\uDE50-\uDE97\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD41\uDD43\uDD46\uDD47\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD96\uDD98\uDEE0-\uDEF6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Any',
-        'isBmpLast': true,
-        'bmp': '\0-\uFFFF',
-        'astral': '[\uD800-\uDBFF][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'Default_Ignorable_Code_Point',
-        'bmp': '\xAD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8',
-        'astral': '\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|[\uDB40-\uDB43][\uDC00-\uDFFF]'
-    },
-    {
-        'name': 'Lowercase',
-        'bmp': 'a-z\xAA\xB5\xBA\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02B8\u02C0\u02C1\u02E0-\u02E4\u0345\u0371\u0373\u0377\u037A-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1DBF\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u2071\u207F\u2090-\u209C\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2170-\u217F\u2184\u24D0-\u24E9\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7D\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B-\uA69D\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7F8-\uA7FA\uAB30-\uAB5A\uAB5C-\uAB67\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A',
-        'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]'
-    },
-    {
-        'name': 'Noncharacter_Code_Point',
-        'bmp': '\uFDD0-\uFDEF\uFFFE\uFFFF',
-        'astral': '[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]'
-    },
-    {
-        'name': 'Uppercase',
-        'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2160-\u216F\u2183\u24B6-\u24CF\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C6\uFF21-\uFF3A',
-        'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]'
-    },
-    {
-        'name': 'White_Space',
-        'bmp': '\t-\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000'
-    }
-];
-
-},{}],174:[function(require,module,exports){
-module.exports = [
-    {
-        'name': 'Adlam',
-        'astral': '\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]'
-    },
-    {
-        'name': 'Ahom',
-        'astral': '\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF3F]'
-    },
-    {
-        'name': 'Anatolian_Hieroglyphs',
-        'astral': '\uD811[\uDC00-\uDE46]'
-    },
-    {
-        'name': 'Arabic',
-        'bmp': '\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u06FF\u0750-\u077F\u08A0-\u08B4\u08B6-\u08BD\u08D3-\u08E1\u08E3-\u08FF\uFB50-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFD\uFE70-\uFE74\uFE76-\uFEFC',
-        'astral': '\uD803[\uDE60-\uDE7E]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]'
-    },
-    {
-        'name': 'Armenian',
-        'bmp': '\u0531-\u0556\u0559-\u0588\u058A\u058D-\u058F\uFB13-\uFB17'
-    },
-    {
-        'name': 'Avestan',
-        'astral': '\uD802[\uDF00-\uDF35\uDF39-\uDF3F]'
-    },
-    {
-        'name': 'Balinese',
-        'bmp': '\u1B00-\u1B4B\u1B50-\u1B7C'
-    },
-    {
-        'name': 'Bamum',
-        'bmp': '\uA6A0-\uA6F7',
-        'astral': '\uD81A[\uDC00-\uDE38]'
-    },
-    {
-        'name': 'Bassa_Vah',
-        'astral': '\uD81A[\uDED0-\uDEED\uDEF0-\uDEF5]'
-    },
-    {
-        'name': 'Batak',
-        'bmp': '\u1BC0-\u1BF3\u1BFC-\u1BFF'
-    },
-    {
-        'name': 'Bengali',
-        'bmp': '\u0980-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FE'
-    },
-    {
-        'name': 'Bhaiksuki',
-        'astral': '\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC45\uDC50-\uDC6C]'
-    },
-    {
-        'name': 'Bopomofo',
-        'bmp': '\u02EA\u02EB\u3105-\u312F\u31A0-\u31BA'
-    },
-    {
-        'name': 'Brahmi',
-        'astral': '\uD804[\uDC00-\uDC4D\uDC52-\uDC6F\uDC7F]'
-    },
-    {
-        'name': 'Braille',
-        'bmp': '\u2800-\u28FF'
-    },
-    {
-        'name': 'Buginese',
-        'bmp': '\u1A00-\u1A1B\u1A1E\u1A1F'
-    },
-    {
-        'name': 'Buhid',
-        'bmp': '\u1740-\u1753'
-    },
-    {
-        'name': 'Canadian_Aboriginal',
-        'bmp': '\u1400-\u167F\u18B0-\u18F5'
-    },
-    {
-        'name': 'Carian',
-        'astral': '\uD800[\uDEA0-\uDED0]'
-    },
-    {
-        'name': 'Caucasian_Albanian',
-        'astral': '\uD801[\uDD30-\uDD63\uDD6F]'
-    },
-    {
-        'name': 'Chakma',
-        'astral': '\uD804[\uDD00-\uDD34\uDD36-\uDD46]'
-    },
-    {
-        'name': 'Cham',
-        'bmp': '\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAA5F'
-    },
-    {
-        'name': 'Cherokee',
-        'bmp': '\u13A0-\u13F5\u13F8-\u13FD\uAB70-\uABBF'
-    },
-    {
-        'name': 'Common',
-        'bmp': '\0-@\\[-`\\{-\xA9\xAB-\xB9\xBB-\xBF\xD7\xF7\u02B9-\u02DF\u02E5-\u02E9\u02EC-\u02FF\u0374\u037E\u0385\u0387\u0589\u0605\u060C\u061B\u061F\u0640\u06DD\u08E2\u0964\u0965\u0E3F\u0FD5-\u0FD8\u10FB\u16EB-\u16ED\u1735\u1736\u1802\u1803\u1805\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u2000-\u200B\u200E-\u2064\u2066-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20BF\u2100-\u2125\u2127-\u2129\u212C-\u2131\u2133-\u214D\u214F-\u215F\u2189-\u218B\u2190-\u2426\u2440-\u244A\u2460-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BFF\u2E00-\u2E4F\u2FF0-\u2FFB\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303C-\u303F\u309B\u309C\u30A0\u30FB\u30FC\u3190-\u319F\u31C0-\u31E3\u3220-\u325F\u327F-\u32CF\u32FF\u3358-\u33FF\u4DC0-\u4DFF\uA700-\uA721\uA788-\uA78A\uA830-\uA839\uA92E\uA9CF\uAB5B\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFF70\uFF9E\uFF9F\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD',
-        'astral': '\uD800[\uDD00-\uDD02\uDD07-\uDD33\uDD37-\uDD3F\uDD90-\uDD9B\uDDD0-\uDDFC\uDEE1-\uDEFB]|\uD81B[\uDFE2\uDFE3]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD66\uDD6A-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDEE0-\uDEF3\uDF00-\uDF56\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDFCB\uDFCE-\uDFFF]|\uD83B[\uDC71-\uDCB4\uDD01-\uDD3D]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD00-\uDD0C\uDD10-\uDD6C\uDD70-\uDDAC\uDDE6-\uDDFF\uDE01\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED5\uDEE0-\uDEEC\uDEF0-\uDEFA\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD00-\uDD0B\uDD0D-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95]|\uDB40[\uDC01\uDC20-\uDC7F]'
-    },
-    {
-        'name': 'Coptic',
-        'bmp': '\u03E2-\u03EF\u2C80-\u2CF3\u2CF9-\u2CFF'
-    },
-    {
-        'name': 'Cuneiform',
-        'astral': '\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC70-\uDC74\uDC80-\uDD43]'
-    },
-    {
-        'name': 'Cypriot',
-        'astral': '\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F]'
-    },
-    {
-        'name': 'Cyrillic',
-        'bmp': '\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F'
-    },
-    {
-        'name': 'Deseret',
-        'astral': '\uD801[\uDC00-\uDC4F]'
-    },
-    {
-        'name': 'Devanagari',
-        'bmp': '\u0900-\u0950\u0955-\u0963\u0966-\u097F\uA8E0-\uA8FF'
-    },
-    {
-        'name': 'Dogra',
-        'astral': '\uD806[\uDC00-\uDC3B]'
-    },
-    {
-        'name': 'Duployan',
-        'astral': '\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]'
-    },
-    {
-        'name': 'Egyptian_Hieroglyphs',
-        'astral': '\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E\uDC30-\uDC38]'
-    },
-    {
-        'name': 'Elbasan',
-        'astral': '\uD801[\uDD00-\uDD27]'
-    },
-    {
-        'name': 'Elymaic',
-        'astral': '\uD803[\uDFE0-\uDFF6]'
-    },
-    {
-        'name': 'Ethiopic',
-        'bmp': '\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E'
-    },
-    {
-        'name': 'Georgian',
-        'bmp': '\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u10FF\u1C90-\u1CBA\u1CBD-\u1CBF\u2D00-\u2D25\u2D27\u2D2D'
-    },
-    {
-        'name': 'Glagolitic',
-        'bmp': '\u2C00-\u2C2E\u2C30-\u2C5E',
-        'astral': '\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]'
-    },
-    {
-        'name': 'Gothic',
-        'astral': '\uD800[\uDF30-\uDF4A]'
-    },
-    {
-        'name': 'Grantha',
-        'astral': '\uD804[\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]'
-    },
-    {
-        'name': 'Greek',
-        'bmp': '\u0370-\u0373\u0375-\u0377\u037A-\u037D\u037F\u0384\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03E1\u03F0-\u03FF\u1D26-\u1D2A\u1D5D-\u1D61\u1D66-\u1D6A\u1DBF\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u2126\uAB65',
-        'astral': '\uD800[\uDD40-\uDD8E\uDDA0]|\uD834[\uDE00-\uDE45]'
-    },
-    {
-        'name': 'Gujarati',
-        'bmp': '\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9-\u0AFF'
-    },
-    {
-        'name': 'Gunjala_Gondi',
-        'astral': '\uD807[\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9]'
-    },
-    {
-        'name': 'Gurmukhi',
-        'bmp': '\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A76'
-    },
-    {
-        'name': 'Han',
-        'bmp': '\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DB5\u4E00-\u9FEF\uF900-\uFA6D\uFA70-\uFAD9',
-        'astral': '[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]'
-    },
-    {
-        'name': 'Hangul',
-        'bmp': '\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC'
-    },
-    {
-        'name': 'Hanifi_Rohingya',
-        'astral': '\uD803[\uDD00-\uDD27\uDD30-\uDD39]'
-    },
-    {
-        'name': 'Hanunoo',
-        'bmp': '\u1720-\u1734'
-    },
-    {
-        'name': 'Hatran',
-        'astral': '\uD802[\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDCFF]'
-    },
-    {
-        'name': 'Hebrew',
-        'bmp': '\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4F'
-    },
-    {
-        'name': 'Hiragana',
-        'bmp': '\u3041-\u3096\u309D-\u309F',
-        'astral': '\uD82C[\uDC01-\uDD1E\uDD50-\uDD52]|\uD83C\uDE00'
-    },
-    {
-        'name': 'Imperial_Aramaic',
-        'astral': '\uD802[\uDC40-\uDC55\uDC57-\uDC5F]'
-    },
-    {
-        'name': 'Inherited',
-        'bmp': '\u0300-\u036F\u0485\u0486\u064B-\u0655\u0670\u0951-\u0954\u1AB0-\u1ABE\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u20D0-\u20F0\u302A-\u302D\u3099\u309A\uFE00-\uFE0F\uFE20-\uFE2D',
-        'astral': '\uD800[\uDDFD\uDEE0]|\uD804\uDF3B|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD]|\uDB40[\uDD00-\uDDEF]'
-    },
-    {
-        'name': 'Inscriptional_Pahlavi',
-        'astral': '\uD802[\uDF60-\uDF72\uDF78-\uDF7F]'
-    },
-    {
-        'name': 'Inscriptional_Parthian',
-        'astral': '\uD802[\uDF40-\uDF55\uDF58-\uDF5F]'
-    },
-    {
-        'name': 'Javanese',
-        'bmp': '\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE\uA9DF'
-    },
-    {
-        'name': 'Kaithi',
-        'astral': '\uD804[\uDC80-\uDCC1\uDCCD]'
-    },
-    {
-        'name': 'Kannada',
-        'bmp': '\u0C80-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2'
-    },
-    {
-        'name': 'Katakana',
-        'bmp': '\u30A1-\u30FA\u30FD-\u30FF\u31F0-\u31FF\u32D0-\u32FE\u3300-\u3357\uFF66-\uFF6F\uFF71-\uFF9D',
-        'astral': '\uD82C[\uDC00\uDD64-\uDD67]'
-    },
-    {
-        'name': 'Kayah_Li',
-        'bmp': '\uA900-\uA92D\uA92F'
-    },
-    {
-        'name': 'Kharoshthi',
-        'astral': '\uD802[\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58]'
-    },
-    {
-        'name': 'Khmer',
-        'bmp': '\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u19E0-\u19FF'
-    },
-    {
-        'name': 'Khojki',
-        'astral': '\uD804[\uDE00-\uDE11\uDE13-\uDE3E]'
-    },
-    {
-        'name': 'Khudawadi',
-        'astral': '\uD804[\uDEB0-\uDEEA\uDEF0-\uDEF9]'
-    },
-    {
-        'name': 'Lao',
-        'bmp': '\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF'
-    },
-    {
-        'name': 'Latin',
-        'bmp': 'A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uAB66\uAB67\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A'
-    },
-    {
-        'name': 'Lepcha',
-        'bmp': '\u1C00-\u1C37\u1C3B-\u1C49\u1C4D-\u1C4F'
-    },
-    {
-        'name': 'Limbu',
-        'bmp': '\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u194F'
-    },
-    {
-        'name': 'Linear_A',
-        'astral': '\uD801[\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]'
-    },
-    {
-        'name': 'Linear_B',
-        'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA]'
-    },
-    {
-        'name': 'Lisu',
-        'bmp': '\uA4D0-\uA4FF'
-    },
-    {
-        'name': 'Lycian',
-        'astral': '\uD800[\uDE80-\uDE9C]'
-    },
-    {
-        'name': 'Lydian',
-        'astral': '\uD802[\uDD20-\uDD39\uDD3F]'
-    },
-    {
-        'name': 'Mahajani',
-        'astral': '\uD804[\uDD50-\uDD76]'
-    },
-    {
-        'name': 'Makasar',
-        'astral': '\uD807[\uDEE0-\uDEF8]'
-    },
-    {
-        'name': 'Malayalam',
-        'bmp': '\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F'
-    },
-    {
-        'name': 'Mandaic',
-        'bmp': '\u0840-\u085B\u085E'
-    },
-    {
-        'name': 'Manichaean',
-        'astral': '\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6]'
-    },
-    {
-        'name': 'Marchen',
-        'astral': '\uD807[\uDC70-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]'
-    },
-    {
-        'name': 'Masaram_Gondi',
-        'astral': '\uD807[\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]'
-    },
-    {
-        'name': 'Medefaidrin',
-        'astral': '\uD81B[\uDE40-\uDE9A]'
-    },
-    {
-        'name': 'Meetei_Mayek',
-        'bmp': '\uAAE0-\uAAF6\uABC0-\uABED\uABF0-\uABF9'
-    },
-    {
-        'name': 'Mende_Kikakui',
-        'astral': '\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]'
-    },
-    {
-        'name': 'Meroitic_Cursive',
-        'astral': '\uD802[\uDDA0-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDDFF]'
-    },
-    {
-        'name': 'Meroitic_Hieroglyphs',
-        'astral': '\uD802[\uDD80-\uDD9F]'
-    },
-    {
-        'name': 'Miao',
-        'astral': '\uD81B[\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F]'
-    },
-    {
-        'name': 'Modi',
-        'astral': '\uD805[\uDE00-\uDE44\uDE50-\uDE59]'
-    },
-    {
-        'name': 'Mongolian',
-        'bmp': '\u1800\u1801\u1804\u1806-\u180E\u1810-\u1819\u1820-\u1878\u1880-\u18AA',
-        'astral': '\uD805[\uDE60-\uDE6C]'
-    },
-    {
-        'name': 'Mro',
-        'astral': '\uD81A[\uDE40-\uDE5E\uDE60-\uDE69\uDE6E\uDE6F]'
-    },
-    {
-        'name': 'Multani',
-        'astral': '\uD804[\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA9]'
-    },
-    {
-        'name': 'Myanmar',
-        'bmp': '\u1000-\u109F\uA9E0-\uA9FE\uAA60-\uAA7F'
-    },
-    {
-        'name': 'Nabataean',
-        'astral': '\uD802[\uDC80-\uDC9E\uDCA7-\uDCAF]'
-    },
-    {
-        'name': 'Nandinagari',
-        'astral': '\uD806[\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE4]'
-    },
-    {
-        'name': 'New_Tai_Lue',
-        'bmp': '\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE\u19DF'
-    },
-    {
-        'name': 'Newa',
-        'astral': '\uD805[\uDC00-\uDC59\uDC5B\uDC5D-\uDC5F]'
-    },
-    {
-        'name': 'Nko',
-        'bmp': '\u07C0-\u07FA\u07FD-\u07FF'
-    },
-    {
-        'name': 'Nushu',
-        'astral': '\uD81B\uDFE1|\uD82C[\uDD70-\uDEFB]'
-    },
-    {
-        'name': 'Nyiakeng_Puachue_Hmong',
-        'astral': '\uD838[\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDD4F]'
-    },
-    {
-        'name': 'Ogham',
-        'bmp': '\u1680-\u169C'
-    },
-    {
-        'name': 'Ol_Chiki',
-        'bmp': '\u1C50-\u1C7F'
-    },
-    {
-        'name': 'Old_Hungarian',
-        'astral': '\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF]'
-    },
-    {
-        'name': 'Old_Italic',
-        'astral': '\uD800[\uDF00-\uDF23\uDF2D-\uDF2F]'
-    },
-    {
-        'name': 'Old_North_Arabian',
-        'astral': '\uD802[\uDE80-\uDE9F]'
-    },
-    {
-        'name': 'Old_Permic',
-        'astral': '\uD800[\uDF50-\uDF7A]'
-    },
-    {
-        'name': 'Old_Persian',
-        'astral': '\uD800[\uDFA0-\uDFC3\uDFC8-\uDFD5]'
-    },
-    {
-        'name': 'Old_Sogdian',
-        'astral': '\uD803[\uDF00-\uDF27]'
-    },
-    {
-        'name': 'Old_South_Arabian',
-        'astral': '\uD802[\uDE60-\uDE7F]'
-    },
-    {
-        'name': 'Old_Turkic',
-        'astral': '\uD803[\uDC00-\uDC48]'
-    },
-    {
-        'name': 'Oriya',
-        'bmp': '\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77'
-    },
-    {
-        'name': 'Osage',
-        'astral': '\uD801[\uDCB0-\uDCD3\uDCD8-\uDCFB]'
-    },
-    {
-        'name': 'Osmanya',
-        'astral': '\uD801[\uDC80-\uDC9D\uDCA0-\uDCA9]'
-    },
-    {
-        'name': 'Pahawh_Hmong',
-        'astral': '\uD81A[\uDF00-\uDF45\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]'
-    },
-    {
-        'name': 'Palmyrene',
-        'astral': '\uD802[\uDC60-\uDC7F]'
-    },
-    {
-        'name': 'Pau_Cin_Hau',
-        'astral': '\uD806[\uDEC0-\uDEF8]'
-    },
-    {
-        'name': 'Phags_Pa',
-        'bmp': '\uA840-\uA877'
-    },
-    {
-        'name': 'Phoenician',
-        'astral': '\uD802[\uDD00-\uDD1B\uDD1F]'
-    },
-    {
-        'name': 'Psalter_Pahlavi',
-        'astral': '\uD802[\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]'
-    },
-    {
-        'name': 'Rejang',
-        'bmp': '\uA930-\uA953\uA95F'
-    },
-    {
-        'name': 'Runic',
-        'bmp': '\u16A0-\u16EA\u16EE-\u16F8'
-    },
-    {
-        'name': 'Samaritan',
-        'bmp': '\u0800-\u082D\u0830-\u083E'
-    },
-    {
-        'name': 'Saurashtra',
-        'bmp': '\uA880-\uA8C5\uA8CE-\uA8D9'
-    },
-    {
-        'name': 'Sharada',
-        'astral': '\uD804[\uDD80-\uDDCD\uDDD0-\uDDDF]'
-    },
-    {
-        'name': 'Shavian',
-        'astral': '\uD801[\uDC50-\uDC7F]'
-    },
-    {
-        'name': 'Siddham',
-        'astral': '\uD805[\uDD80-\uDDB5\uDDB8-\uDDDD]'
-    },
-    {
-        'name': 'SignWriting',
-        'astral': '\uD836[\uDC00-\uDE8B\uDE9B-\uDE9F\uDEA1-\uDEAF]'
-    },
-    {
-        'name': 'Sinhala',
-        'bmp': '\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4',
-        'astral': '\uD804[\uDDE1-\uDDF4]'
-    },
-    {
-        'name': 'Sogdian',
-        'astral': '\uD803[\uDF30-\uDF59]'
-    },
-    {
-        'name': 'Sora_Sompeng',
-        'astral': '\uD804[\uDCD0-\uDCE8\uDCF0-\uDCF9]'
-    },
-    {
-        'name': 'Soyombo',
-        'astral': '\uD806[\uDE50-\uDEA2]'
-    },
-    {
-        'name': 'Sundanese',
-        'bmp': '\u1B80-\u1BBF\u1CC0-\u1CC7'
-    },
-    {
-        'name': 'Syloti_Nagri',
-        'bmp': '\uA800-\uA82B'
-    },
-    {
-        'name': 'Syriac',
-        'bmp': '\u0700-\u070D\u070F-\u074A\u074D-\u074F\u0860-\u086A'
-    },
-    {
-        'name': 'Tagalog',
-        'bmp': '\u1700-\u170C\u170E-\u1714'
-    },
-    {
-        'name': 'Tagbanwa',
-        'bmp': '\u1760-\u176C\u176E-\u1770\u1772\u1773'
-    },
-    {
-        'name': 'Tai_Le',
-        'bmp': '\u1950-\u196D\u1970-\u1974'
-    },
-    {
-        'name': 'Tai_Tham',
-        'bmp': '\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD'
-    },
-    {
-        'name': 'Tai_Viet',
-        'bmp': '\uAA80-\uAAC2\uAADB-\uAADF'
-    },
-    {
-        'name': 'Takri',
-        'astral': '\uD805[\uDE80-\uDEB8\uDEC0-\uDEC9]'
-    },
-    {
-        'name': 'Tamil',
-        'bmp': '\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA',
-        'astral': '\uD807[\uDFC0-\uDFF1\uDFFF]'
-    },
-    {
-        'name': 'Tangut',
-        'astral': '\uD81B\uDFE0|[\uD81C-\uD820][\uDC00-\uDFFF]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEF2]'
-    },
-    {
-        'name': 'Telugu',
-        'bmp': '\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C77-\u0C7F'
-    },
-    {
-        'name': 'Thaana',
-        'bmp': '\u0780-\u07B1'
-    },
-    {
-        'name': 'Thai',
-        'bmp': '\u0E01-\u0E3A\u0E40-\u0E5B'
-    },
-    {
-        'name': 'Tibetan',
-        'bmp': '\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA'
-    },
-    {
-        'name': 'Tifinagh',
-        'bmp': '\u2D30-\u2D67\u2D6F\u2D70\u2D7F'
-    },
-    {
-        'name': 'Tirhuta',
-        'astral': '\uD805[\uDC80-\uDCC7\uDCD0-\uDCD9]'
-    },
-    {
-        'name': 'Ugaritic',
-        'astral': '\uD800[\uDF80-\uDF9D\uDF9F]'
-    },
-    {
-        'name': 'Vai',
-        'bmp': '\uA500-\uA62B'
-    },
-    {
-        'name': 'Wancho',
-        'astral': '\uD838[\uDEC0-\uDEF9\uDEFF]'
-    },
-    {
-        'name': 'Warang_Citi',
-        'astral': '\uD806[\uDCA0-\uDCF2\uDCFF]'
-    },
-    {
-        'name': 'Yi',
-        'bmp': '\uA000-\uA48C\uA490-\uA4C6'
-    },
-    {
-        'name': 'Zanabazar_Square',
-        'astral': '\uD806[\uDE00-\uDE47]'
-    }
-];
-
-},{}]},{},[8])(8)
-});